{"version":3,"file":"signin.ba1550c87e5436786c38.js","mappings":";gjBACIA,EADAC,ECAAC,EACAC,mBCDJ,IAAIC,EAAS,EAAQ,QAGjBC,EAAcC,OAAOC,UAGrBC,EAAiBH,EAAYG,eAO7BC,EAAuBJ,EAAYK,SAGnCC,EAAiBP,EAASA,EAAOQ,iBAAcC,EA6BnDC,EAAOC,QApBP,SAAmBC,GACjB,IAAIC,EAAQT,EAAeU,KAAKF,EAAOL,GACnCQ,EAAMH,EAAML,GAEhB,IACEK,EAAML,QAAkBE,EACxB,IAAIO,GAAW,CACjB,CAAE,MAAOC,GAAI,CAEb,IAAIC,EAASb,EAAqBS,KAAKF,GAQvC,OAPII,IACEH,EACFD,EAAML,GAAkBQ,SAEjBH,EAAML,IAGVW,CACT,8BC1CA,SAASC,EAAuBC,GAC9B,MAAO,yBAAyBA,6CAAgDA,kFAClF,gCAGA,IACIC,EAD+B,KAAyB,mBAAXrB,QAAyBA,OAAOsB,YAAc,eAA5D,GAI/BC,EAAe,IAAMC,KAAKC,SAASnB,SAAS,IAAIoB,UAAU,GAAGC,MAAM,IAAIC,KAAK,KAM5EC,EALc,CAChBC,KAAM,eAA+BP,MACrCQ,QAAS,kBAAkCR,MAC3CS,qBAAsB,IAAM,+BAA+BT,OAqE7D,SAASU,EAAYC,EAASC,EAAgBC,GAC5C,GAAuB,mBAAZF,EACT,MAAM,IAAIG,MAA8ClB,EAAuB,IAEjF,GAA8B,mBAAnBgB,GAAqD,mBAAbC,GAA+C,mBAAbA,GAAmD,mBAAjBE,UAAU,GAC/H,MAAM,IAAID,MAA8ClB,EAAuB,IAMjF,GAJ8B,mBAAnBgB,QAAqD,IAAbC,IACjDA,EAAWD,EACXA,OAAiB,QAEK,IAAbC,EAA0B,CACnC,GAAwB,mBAAbA,EACT,MAAM,IAAIC,MAA8ClB,EAAuB,IAEjF,OAAOiB,EAASH,EAATG,CAAsBF,EAASC,EACxC,CACA,IAAII,EAAiBL,EACjBM,EAAeL,EACfM,EAAmC,IAAIC,IACvCC,EAAgBF,EAChBG,EAAoB,EACpBC,GAAgB,EACpB,SAASC,IACHH,IAAkBF,IACpBE,EAAgC,IAAID,IACpCD,EAAiBM,SAAQ,CAACC,EAAUC,KAClCN,EAAcO,IAAID,EAAKD,EAAS,IAGtC,CACA,SAASG,IACP,GAAIN,EACF,MAAM,IAAIR,MAA8ClB,EAAuB,IAEjF,OAAOqB,CACT,CACA,SAASY,EAAUJ,GACjB,GAAwB,mBAAbA,EACT,MAAM,IAAIX,MAA8ClB,EAAuB,IAEjF,GAAI0B,EACF,MAAM,IAAIR,MAA8ClB,EAAuB,IAEjF,IAAIkC,GAAe,EACnBP,IACA,MAAMQ,EAAaV,IAEnB,OADAD,EAAcO,IAAII,EAAYN,GACvB,WACL,GAAKK,EAAL,CAGA,GAAIR,EACF,MAAM,IAAIR,MAA8ClB,EAAuB,IAEjFkC,GAAe,EACfP,IACAH,EAAcY,OAAOD,GACrBb,EAAmB,IAPnB,CAQF,CACF,CACA,SAASe,EAASC,GAChB,IA9HJ,SAAuBC,GACrB,GAAmB,iBAARA,GAA4B,OAARA,EAC7B,OAAO,EACT,IAAIC,EAAQD,EACZ,KAAwC,OAAjCxD,OAAO0D,eAAeD,IAC3BA,EAAQzD,OAAO0D,eAAeD,GAEhC,OAAOzD,OAAO0D,eAAeF,KAASC,GAAwC,OAA/BzD,OAAO0D,eAAeF,EACvE,CAsHSG,CAAcJ,GACjB,MAAM,IAAIpB,MAA8ClB,EAAuB,IAEjF,QAA2B,IAAhBsC,EAAOK,KAChB,MAAM,IAAIzB,MAA8ClB,EAAuB,IAEjF,GAA2B,iBAAhBsC,EAAOK,KAChB,MAAM,IAAIzB,MAA8ClB,EAAuB,KAEjF,GAAI0B,EACF,MAAM,IAAIR,MAA8ClB,EAAuB,IAEjF,IACE0B,GAAgB,EAChBL,EAAeD,EAAeC,EAAciB,EAC9C,CAAE,QACAZ,GAAgB,CAClB,CAKA,OAJkBJ,EAAmBE,GAC3BI,SAASC,IACjBA,GAAU,IAELS,CACT,CAoDA,OAVAD,EAAS,CACPM,KAAMjC,EAAoBC,OAEd,CACZ0B,WACAJ,YACAD,WACAY,eAhDF,SAAwBC,GACtB,GAA2B,mBAAhBA,EACT,MAAM,IAAI3B,MAA8ClB,EAAuB,KAEjFoB,EAAiByB,EACjBR,EAAS,CACPM,KAAMjC,EAAoBE,SAE9B,EAyCE,CAACV,GAxCH,WACE,MAAM4C,EAAiBb,EACvB,MAAO,CASL,SAAAA,CAAUc,GACR,GAAwB,iBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAI7B,MAA8ClB,EAAuB,KAEjF,SAASgD,IACP,MAAMC,EAAqBF,EACvBE,EAAmBC,MACrBD,EAAmBC,KAAKlB,IAE5B,CAGA,OAFAgB,IAEO,CACLG,YAFkBL,EAAeE,GAIrC,EACA,CAAC9C,KACC,OAAOkD,IACT,EAEJ,EAYF,CAkIA,SAASC,KAAWC,GAClB,OAAqB,IAAjBA,EAAMC,OACAC,GAAQA,EAEG,IAAjBF,EAAMC,OACDD,EAAM,GAERA,EAAMG,QAAO,CAACC,EAAGC,IAAM,IAAIC,IAASF,EAAEC,KAAKC,KACpD,CAGA,SAASC,KAAmBC,GAC1B,OAAQC,GAAiB,CAAChD,EAASC,KACjC,MAAMgD,EAAQD,EAAahD,EAASC,GACpC,IAAIqB,EAAW,KACb,MAAM,IAAInB,MAA8ClB,EAAuB,IAA+H,EAEhN,MAAMiE,EAAgB,CACpBjC,SAAUgC,EAAMhC,SAChBK,SAAU,CAACC,KAAWsB,IAASvB,EAASC,KAAWsB,IAE/CM,EAAQJ,EAAYK,KAAKC,GAAeA,EAAWH,KAEzD,OADA5B,EAAWgB,KAAWa,EAAXb,CAAkBW,EAAM3B,UAC5B,IACF2B,EACH3B,WACD,CAEL,wFCzWA,QAlBA,WACE,IAAIgC,EAAM,CAAC,EAKX,OAJAA,EAAIC,QAAU,IAAIC,SAAQ,SAAUC,EAASC,GAC3CJ,EAAIG,QAAUA,EACdH,EAAII,OAASA,CACf,IACOJ,CACT,gBCGIK,EAAQ,GASRC,EAAY,EAOhB,SAASC,EAAKC,GACZ,IACEC,IACAD,GACF,CAAE,QACAE,GACF,CACF,CAMA,SAASC,EAAKH,GACZH,EAAMO,KAAKJ,GAENF,IACHG,IACAI,IAEJ,CAKA,SAASC,EAAYN,GACnB,IAEE,OADAC,IACOD,GACT,CAAE,QACAK,GACF,CACF,CAMA,SAASJ,IACPH,GACF,CAMA,SAASI,IACPJ,GACF,CAMA,SAASO,IAEP,IAAIL,EAEJ,IAHAE,KAGQJ,QAAwCrF,KAA1BuF,EAAOH,EAAMU,UACjCR,EAAKC,EAET,CAEA,IAAIQ,EAAQ,SAAeC,GACzB,OAAO,SAAUC,GACf,OAAOD,EAASE,MAAK,SAAUC,GAC7B,OAAOC,EAAQD,EAARC,CAAWH,EACpB,GACF,CACF,EACII,EAAY,SAAmBC,GACjC,OAAO,SAAUL,GACf,OAAOK,EAAWL,EACpB,CACF,EACIM,EAAS,SAAgBC,GAC3B,OAAO,SAAUP,GACf,OAAOA,EAAM5C,OAASoD,OAAOD,EAC/B,CACF,EACIE,EAAS,SAAgBF,GAC3B,OAAO,SAAUP,GACf,OAAOA,EAAM5C,OAASmD,CACxB,CACF,EACIG,EAAW,WACb,OAAO,EAAAC,CACT,EACA,SAASR,EAAQI,GAEf,IAAIK,EAA6B,MAAZL,EAAkBG,GAAW,QAASH,GAAWD,GAAS,QAAQC,GAAWT,GAAQ,QAAeS,GAAWD,GAAS,QAAKC,GAAWH,GAAY,QAASG,GAAWE,EAAS,KAEtM,GAAuB,OAAnBG,EACF,MAAM,IAAIjF,MAAM,oBAAsB4E,GAGxC,OAAOK,EAAeL,EACxB,CAEA,IAAIM,EAAM,CACRzD,KAAM,MAEJ0D,EAAQ,SAAe3C,GACzB,OAAOA,GAAKA,EAAEf,OAAS,IACzB,EAyOA,SAAS2D,IACP,IAlFIC,EAEAC,EACAC,EACAC,EAQAC,EAQAC,EA8DAC,GAhFAL,GAAS,EAETE,EADAD,EAAgB,GAShBE,EAA4B,WAC1BD,IAAeD,IAInBC,EAAaD,EAAcK,QAC7B,EAEIF,EAAQ,WAKVJ,GAAS,EACT,IAAIO,EAASN,EAAgBC,EAC7BA,EAAa,GACbK,EAAOnF,SAAQ,SAAUoF,GACvBA,EAAMZ,EACR,GACF,GAEOG,EAAO,CAAC,GAAQ,OAAa,EAAMA,EAAKU,IAAM,SAAa1B,GAMhE,IAAIiB,EAIJ,GAAIH,EAAMd,GACRqB,SAMF,IAFA,IAAIG,EAASN,EAAgBC,EAEpBQ,EAAI,EAAGC,EAAMJ,EAAOxD,OAAQ2D,EAAIC,EAAKD,IAAK,CACjD,IAAIF,EAAQD,EAAOG,GAEfF,EAAM,MAAOzB,KACfyB,EAAMI,SACNJ,EAAMzB,GAEV,CACF,EAAGgB,EAAKc,KAAO,SAAcC,EAAI5B,QACf,IAAZA,IACFA,EAAUO,GAORO,EACFc,EAAGlB,IAILkB,EAAG,MAAS5B,EACZiB,IACAD,EAAWzB,KAAKqC,GAChBA,EAAGF,QAAS,IAAAG,IAAK,WACfZ,KACA,IAAAa,GAAOd,EAAYY,EACrB,IACF,EAAGf,EAAKK,MAAQA,EAAOL,GAInBU,EAAMJ,EAAKI,IAaf,OAXAJ,EAAKI,IAAM,SAAU1B,GACfA,EAAM,MACR0B,EAAI1B,GAINP,GAAK,WACHiC,EAAI1B,EACN,GACF,EAEOsB,CACT,CAEA,IAAIY,EAAU,EACVC,EAAY,EACZC,EAAU,EACVC,EAAO,EAEX,SAASC,EAAevD,EAASgD,GAC/B,IAAIQ,EAAgBxD,EAAQ,OAExB,QAAKwD,KACPR,EAAGF,OAASU,GAGdxD,EAAQyD,KAAKT,GAAI,SAAUU,GACzBV,EAAGU,GAAO,EACZ,GACF,CAEA,IAKIC,EALAC,EAAU,EACVC,EAAa,WACf,QAASD,CACV,EA8OD,SAASE,EAAiBC,GACpBA,EAAaC,aACfD,EAAajB,QAEjB,CAyIA,IAAImB,IAAmBN,EAAmB,CAAC,GAAoB,EAAAO,GAxS/D,SAAuBC,EAAKC,EAAOpB,GACjC,IAAIqB,EAAgBD,EAAME,QACtBA,OAA4B,IAAlBD,EAA2BF,EAAIG,QAAUD,EACnD7C,EAAU4C,EAAM5C,QAChB+C,EAAQH,EAAMG,MAEdC,EAAS,SAAgBvD,GACvBA,aAAiBrE,MACnBoG,EAAG/B,GAAO,IAIRc,EAAMd,IAAWsD,EAKrBvB,EAAG/B,GAJD+B,EAAG,KAKP,EAEA,IACEsB,EAAQvB,KAAKyB,GAAQ,QAAShD,GAAWJ,EAAQI,GAAW,KAC9D,CAAE,MAAOiD,GAEP,YADAzB,EAAGyB,GAAK,EAEV,CAEAzB,EAAGF,OAAS0B,EAAO1B,MACrB,EA4QsFa,EAAiB,EAAAe,GApUvG,SAAsBP,EAAKQ,EAAO3B,GAChC,IAAIsB,EAAUK,EAAML,QAChBtG,EAAS2G,EAAM3G,OACfkC,EAAUyE,EAAMzE,QAOpBQ,GAAK,WACH,IAAIjF,EAEJ,IACEA,GAAU6I,EAAUA,EAAQ3B,IAAMwB,EAAIpG,UAAUC,EAClD,CAAE,MAAO0F,GAEP,YADAV,EAAGU,GAAO,EAEZ,CAEIxD,IAAW,QAAQzE,GACrB8H,EAAe9H,EAAQuH,GAEvBA,EAAGvH,EAEP,GACF,EA0S4HkI,EAAiB,EAAAiB,GAzH7I,SAAsBT,EAAKU,EAAS7B,EAAI8B,GACtC,IAAIC,EAAeD,EAAOC,aACtBC,EAAWpB,EACXqB,EAAOxK,OAAOwK,KAAKJ,GAEvB,GAAoB,IAAhBI,EAAKhG,OAAT,CAKA,IAAIiG,GAAiB,OAA6BL,EAAS7B,GAC3DiC,EAAK3H,SAAQ,SAAUE,GACrBuH,EAAaF,EAAQrH,GAAMwH,EAAUE,EAAe1H,GAAMA,EAC5D,GALA,MAFEwF,GAAG,QAAQ6B,GAAW,GAAK,CAAC,EAQhC,EA2GkKlB,EAAiB,EAAAwB,GAzGnL,SAAuBhB,EAAKU,EAAS7B,EAAIoC,GACvC,IAAIL,EAAeK,EAAOL,aACtBC,EAAWpB,EACXqB,EAAOxK,OAAOwK,KAAKJ,GACnBQ,GAAW,QAAQR,IAAW,OAAiBI,EAAKhG,QAAU,CAAC,EAC/DqG,EAAW,CAAC,EACZC,GAAY,EAChBN,EAAK3H,SAAQ,SAAUE,GACrB,IAAIgI,EAAY,SAAmBC,EAAKC,GAClCH,IAIAG,IAAS,IAAAC,GAAeF,IAE1BzC,EAAGF,SACHE,EAAGyC,EAAKC,KAER1C,EAAGF,SACHyC,GAAY,EACZF,EAAS7H,GAAOiI,EAChBzC,EAAGqC,IAEP,EAEAG,EAAU1C,OAAS,IACnBwC,EAAS9H,GAAOgI,CAClB,IAEAxC,EAAGF,OAAS,WAELyC,IACHA,GAAY,EACZN,EAAK3H,SAAQ,SAAUE,GACrB,OAAO8H,EAAS9H,GAAKsF,QACvB,IAEJ,EAEAmC,EAAK3H,SAAQ,SAAUE,GACjB+H,GAIJR,EAAaF,EAAQrH,GAAMwH,EAAUM,EAAS9H,GAAMA,EACtD,GACF,EA2D0MmG,EAAiB,EAAAiC,GA1Q3N,SAAuBzB,EAAK0B,EAAO7C,EAAI8C,GACrC,IAAIC,EAAUF,EAAME,QAChBC,EAAKH,EAAMG,GACX1G,EAAOuG,EAAMvG,KACbiB,EAAOuF,EAAMvF,KAGjB,IACE,IAAI9E,EAASuK,EAAGC,MAAMF,EAASzG,GAE/B,IAAI,QAAQ7D,GAEV,YADA8H,EAAe9H,EAAQuH,GAIzB,IAAI,QAASvH,GAKX,YAHAyK,GAAK/B,EAAK1I,EAAQ8E,EAAKwF,QAASnC,GAAS,OAAYoC,IAErD,EAAOhD,GAITA,EAAGvH,EACL,CAAE,MAAOiI,GACPV,EAAGU,GAAO,EACZ,CACF,EA+OkPC,EAAiB,KA7OnQ,SAAsBQ,EAAKgC,EAAOnD,GAChC,IAAI+C,EAAUI,EAAMJ,QAChBC,EAAKG,EAAMH,GACX1G,EAAO6G,EAAM7G,KAKjB,IACE,IAAI8G,EAAQ,SAAe3B,EAAKgB,IAC1B,QAAMhB,GACRzB,EAAGyC,GAEHzC,EAAGyB,GAAK,EAEZ,EAEAuB,EAAGC,MAAMF,EAASzG,EAAK+G,OAAOD,IAE1BA,EAAMtD,SACRE,EAAGF,OAASsD,EAAMtD,OAEtB,CAAE,MAAOY,GACPV,EAAGU,GAAO,EACZ,CACF,EAoNwRC,EAAiB,EAAA2C,GAlNzS,SAAuBnC,EAAKoC,EAAOvD,EAAIwD,GACrC,IAAIT,EAAUQ,EAAMR,QAChBC,EAAKO,EAAMP,GACX1G,EAAOiH,EAAMjH,KACbmH,EAAWF,EAAME,SACjBC,EAASF,EAAMjG,KACfoG,EAjKN,SAA4B1E,GAC1B,IAAI8D,EAAU9D,EAAK8D,QACfC,EAAK/D,EAAK+D,GACV1G,EAAO2C,EAAK3C,KAGhB,IACE,IAAI7D,EAASuK,EAAGC,MAAMF,EAASzG,GAE/B,IAAI,QAAS7D,GACX,OAAOA,EAGT,IAAImL,GAAW,EAkBf,OAAO,QAhBI,SAAc1H,GACvB,OAAK0H,EAQI,CACLzL,MAAO+D,EACP2H,MAAM,IATRD,GAAW,EAEJ,CACLzL,MAAOM,EACPoL,OAAO,QAAQpL,IAQrB,GAGF,CAAE,MAAOgJ,GAGP,OAAO,QAAa,WAClB,MAAMA,CACR,GACF,CACF,CA0HqBqC,CAAmB,CACpCf,QAASA,EACTC,GAAIA,EACJ1G,KAAMA,IAEJyH,EAhLN,SAA6BC,EAAUhB,GACrC,OAAIgB,EAASC,eACJ,CACLC,KAAMF,EAASD,KAAKG,OAIjB,OAAYlB,EACrB,CAwKamB,CAAoBR,EAAcX,GAC7CnF,GAAY,WACV,IAAIuG,EAAQlB,GAAK/B,EAAKwC,EAAcD,EAAOX,QAASnC,EAASmD,EAAMN,OAAUzL,GAEzEyL,EACFzD,EAAGoE,GAECA,EAAMpD,aACR0C,EAAOtG,MAAMiH,QAAQD,GACrBpE,EAAGoE,IACMA,EAAME,YACfZ,EAAOtG,MAAMmH,MAAMH,EAAM1D,SAEzBV,EAAGoE,EAGT,GACF,EAsLgUzD,EAAiB,EAAA6D,GApLjV,SAAuBrD,EAAKsD,EAAazE,EAAI0E,GAC3C,IAAInH,EAAOmH,EAAMnH,KAEboH,EAAiB,SAAwBC,EAAY5E,GACvD,GAAI4E,EAAW5D,YAAa,CAC1B,IAAI6D,EAAS,CACXtH,KAAMA,EACNyC,GAAIA,GAGNA,EAAGF,OAAS,WACN8E,EAAW5D,cAAa,IAAAd,GAAO0E,EAAWE,QAASD,EACzD,EAEAD,EAAWE,QAAQnH,KAAKkH,EAC1B,MACMD,EAAWN,YACbtE,EAAG4E,EAAWlE,SAAS,GAEvBV,EAAG4E,EAAWnM,SAGpB,EAEA,IAAI,QAAQgM,GAAc,CACxB,GAA2B,IAAvBA,EAAYxI,OAEd,YADA+D,EAAG,IAIL,IAAIkC,GAAiB,OAA6BuC,EAAazE,GAC/DyE,EAAYnK,SAAQ,SAAUyK,EAAGnF,GAC/B+E,EAAeI,EAAG7C,EAAetC,GACnC,GACF,MACE+E,EAAeF,EAAazE,EAEhC,EA+IwWW,EAAiB,KAvIzX,SAAyBQ,EAAKsD,EAAazE,EAAIgF,GAC7C,IAAIzH,EAAOyH,EAAOzH,KAEdkH,IAAgB,KAClB3D,EAAiBvD,IACR,QAAQkH,GACjBA,EAAYnK,QAAQwG,GAEpBA,EAAiB2D,GAGnBzE,GACF,EA2HsZW,EAAiB,EAAAsE,GAzDva,SAAyB9D,EAAK+D,EAAQlF,GACpC,IAAImF,EAAWD,EAAOC,SAClB7I,EAAO4I,EAAO5I,KAElB,IAEE0D,EADYmF,EAASlC,WAAM,EAAQ,CAAC9B,EAAIzG,YAAY2I,OAAO/G,IAE7D,CAAE,MAAOoE,GACPV,EAAGU,GAAO,EACZ,CACF,EA+CkcC,EAAiB,KA7Cnd,SAA0BQ,EAAKiE,EAAQpF,GACrC,IAAIxB,EAAU4G,EAAO5G,QAEjBe,EA5lBN,SAAiB8F,QACE,IAAbA,IACFA,GAAW,IAAA7M,MAGb,IAAI0G,GAAS,EACTO,EAAS,GAsFb,MAAO,CACLM,KArDF,SAAcC,GAMRd,GAAUmG,EAASC,UACrBtF,EAAGlB,GACOuG,EAASC,WAGnB7F,EAAO9B,KAAKqC,GAEZA,EAAGF,OAAS,YACV,IAAAI,GAAOT,EAAQO,EACjB,GANAA,EAAGqF,EAAStF,OAQhB,EAqCEJ,IAxEF,SAAa1B,GAMX,IAAIiB,EAAJ,CAIA,GAAsB,IAAlBO,EAAOxD,OACT,OAAOoJ,EAAS1F,IAAI1B,GAGbwB,EAAO3B,OAChBkC,CAAG/B,EAPH,CAQF,EAyDEL,MApCF,SAAeoC,GAMTd,GAAUmG,EAASC,UACrBtF,EAAGlB,GAILkB,EAAGqF,EAASzH,QACd,EAyBE0B,MAvBF,WAKE,IAAIJ,EAAJ,CAIAA,GAAS,EACT,IAAIqG,EAAM9F,EACVA,EAAS,GAET,IAAK,IAAIG,EAAI,EAAGC,EAAM0F,EAAItJ,OAAQ2D,EAAIC,EAAKD,KAEzCF,EADY6F,EAAI3F,IACVd,EARR,CAUF,EAQF,CA0fawC,CADE8D,EAAOI,QAEhBC,EAAQrH,EAAQI,GAEhBkB,EAAQ,SAASA,EAAM1E,GACpB+D,EAAM/D,IACTmG,EAAIG,QAAQvB,KAAKL,EAAO+F,GAG1BlG,EAAKI,IAAI3E,EACX,EAEIsE,EAAQC,EAAKD,MAEjBC,EAAKD,MAAQ,WACXI,EAAMI,SACNR,GACF,EAEA6B,EAAIG,QAAQvB,KAAKL,EAAO+F,GACxBzF,EAAGT,EACL,EAsBufoB,EAAiB,KApBxgB,SAA4BQ,EAAKuE,EAAM1F,EAAI2F,GAEzC3F,EADW2F,EAAOpI,KACVqI,cACV,EAiB2iBjF,EAAiB,KAf5jB,SAAwBQ,EAAKG,EAAStB,GACpCsB,EAAQ1D,MAAMoC,EAChB,EAaqlBW,EAAiB,EAAAkF,GAXtmB,SAA6B1E,EAAK2E,EAAM9F,EAAI+F,GAE1C/F,EADW+F,EAAOxI,KACVwF,QAAQ+C,GAClB,EAQ0oBnF,EAAiB,KAN3pB,SAA6BQ,EAAK6E,EAAOhG,EAAIiG,GAC3C,IAAI1I,EAAO0I,EAAO1I,MAClB,OAAkBA,EAAKwF,QAASiD,GAChChG,GACF,EAE+rBW,GAmF/rB,SAASuF,EAAeC,EAAUC,GAChC,OAAOD,EAAW,IAAMC,CAC1B,CAgBA,SAASC,EAAqBC,GAC5B,IAAIpC,EAAOoC,EAASpC,KAChBqC,EAAWD,EAASC,SAExB,OAAIA,EACKrC,EAAO,KAAOgC,EAAeK,EAASJ,SAAUI,EAASH,YAG3DlC,CACT,CAEA,SAASsC,EAAuBC,GAC9B,IAAIC,GAAiB,QAAQ,SAAU9G,GACrC,OAAOA,EAAE8G,cACX,GAAGD,GAEH,OAAKC,EAAezK,OAIb,CAAC,iCAAiCoH,OAAOqD,GAAgBvN,KAAK,MAH5D,EAIX,CAEA,IAAIwN,EAAgB,KAChBF,EAAY,GACZG,EAAe,SAAsBC,GACvCA,EAAMF,cAAgBA,EACtBF,EAAU9I,KAAKkJ,EACjB,EACIC,EAAQ,WACVH,EAAgB,KAChBF,EAAUxK,OAAS,CACrB,EAII8K,EAAmB,SAA0BC,GAC/CL,EAAgBK,CAClB,EAWI,EAAW,WACb,IAAIC,EAAYR,EAAU,GACtBS,EAAaT,EAAUjH,MAAM,GAC7B2H,EAAwBF,EAAUN,cAlExC,SAAgCK,GAC9B,IAAIT,GAAW,OAAYS,GAE3B,OAAIT,EACSA,EAAS5N,KAGA,KAAOuN,EAFZK,EAASJ,SACPI,EAASH,YAKrB,EACT,CAsDwDgB,CAAuBH,EAAUN,eAAiB,KAExG,MAAO,CADY,oCAAsCN,EAAqBY,EAAUlD,OAASoD,EAAwB,6BAA+BA,EAAwB,KAC1J9D,OAAO6D,EAAWrK,KAAI,SAAU8F,GACpD,MAAO,kBAAoB0D,EAAqB1D,EAAEoB,KACpD,IAAI,CAACyC,EAAuBC,KAAatN,KAAK,KAChD,EAqHA,SAAS+J,GAAK/B,EAAKkG,EAAYC,EAAeC,EAAgBxD,EAAMyD,EAAQC,GAK1E,IAAIC,EAAiBvG,EAAIwG,mBAwHzB,SAAmBX,EAAQhF,EAAU4F,IAa/B,QAAQZ,GACVzG,EAAeyG,EAAQY,IACd,QAASZ,GAElB9D,GAAK/B,EAAK6F,EAAQzJ,EAAKwF,QAASf,EAAU+B,GAE1C,EAAO6D,GACEZ,GAAUA,EAAO,EAAAa,KAE1BC,EADmB7G,EAAgB+F,EAAO3L,OAC7B8F,EAAK6F,EAAOe,QAASH,EAAQI,GAG1CJ,EAAOZ,EAEX,IA5IApL,EAAKkE,OAAS,IAGd,IAAImI,EAAW,CACblE,KAAMA,EACNjE,OAiBF,WACMmI,EAASC,SAAW/H,IACtB8H,EAASC,OAAS9H,EAClBxE,EAAK,MAET,EArBEsM,OAAQ/H,GAON5C,EA5IN,SAAiB4D,EAAK8G,EAAUX,EAAeC,EAAgBxD,EAAMyD,EAAQC,GAC3E,IAAIU,OAES,IAATV,IACFA,EAAO,KAGT,IACIW,EACAC,EAFAH,EAAS/H,EAGTmI,EAAc,KACdC,EAA2B,GAC3BxF,EAAUtL,OAAO+Q,OAAOlB,GACxBlK,EA3JN,SAAmB6K,EAAUQ,EAAShB,GACpC,IACIhP,EADAiQ,EAAQ,GAERnG,GAAY,EAOhB,SAASgC,EAAM9C,GACbgH,IACAE,IACAlB,EAAKhG,GAAK,EACZ,CAEA,SAAS4C,EAAQ9G,GACfmL,EAAM/K,KAAKJ,GAEXA,EAAKkK,KAAO,SAAUhF,EAAKC,GACrBH,KAIJ,IAAArC,GAAOwI,EAAOnL,GACdA,EAAKkK,KAAO,IAER/E,EACF6B,EAAM9B,IAEFlF,IAAS0K,IACXxP,EAASgK,GAGNiG,EAAMzM,SACTsG,GAAY,EACZkF,EAAKhP,KAGX,CACF,CAEA,SAASkQ,IACHpG,IAIJA,GAAY,EACZmG,EAAMpO,SAAQ,SAAUyK,GACtBA,EAAE0C,KAAO,IACT1C,EAAEjF,QACJ,IACA4I,EAAQ,GACV,CAEA,OAnDArE,EAAQ4D,GAmDD,CACL5D,QAASA,EACTsE,UAAWA,EACXpE,MAAOA,EACPqE,SArDa,WACb,OAAOF,CACT,EAqDF,CA8FcG,CAAUZ,GAAU,WAC9BM,EAAyB5K,KAAKsF,MAAMsF,EAA0BnL,EAAMwL,WAAW/L,KAAI,SAAUkI,GAC3F,OAAOA,EAAEhB,KAAKG,IAChB,IACF,GAAG4E,GAoBH,SAASA,EAAIrQ,EAAQiK,GACnB,GAAKA,EAWE,CAOL,GANAwF,EAAS7H,EACTuG,EAAa,CACX7C,KAAMA,EACN2C,eAAgB6B,IAGdhL,EAAKiK,OAAQ,CACf,IAAIf,EAAY,IAGhBK,IACA3F,EAAI4H,QAAQtQ,EAAQ,CAClBgO,UAAWA,GAEf,CAEA4B,EAAY5P,EACZ6P,GAAeA,EAAYnL,OAAO1E,EACpC,MA3BMA,IAAW,KACbyP,EAAS9H,EACA8H,IAAW9H,IACpB8H,EAAS5H,GAGX8H,EAAa3P,EACb6P,GAAeA,EAAYpL,QAAQzE,GAsBrC8E,EAAKkK,KAAKhP,EAAQiK,GAClBnF,EAAKuH,QAAQxK,SAAQ,SAAUuK,GAC7BA,EAAO7E,GAAGvH,EAAQiK,EACpB,IACAnF,EAAKuH,QAAU,IACjB,CA0BA,IAAIvH,IAAQ4K,EAAQ,CAAC,GAAS,OAAQ,EAAMA,EAAMa,GAAKzB,EAAgBY,EAAMpE,KAAOA,EAAMoE,EAAMX,OAASA,EAAQW,EAAMpF,QAAUA,EAASoF,EAAMrD,QAAU,GAAIqD,EAAM/K,MAAQA,EAAO+K,EAAMrI,OA3EzL,WACMoI,IAAW/H,IAGb+H,EAAS9H,EACThD,EAAMuL,YAENG,EAAI,MAAa,GAErB,EAkE0MX,EAAMV,KAAOA,EAAMU,EAAMW,IAAMA,EAAKX,EAAMc,WAxBpP,SAAoBjD,IAKlB,OAAkBjD,EAASiD,EAC7B,EAkB6QmC,EAAMe,UAhBnR,WACE,OAAIZ,IAIJA,EAAc,IAEVJ,IAAW7H,EACbiI,EAAYnL,OAAOkL,GACVH,IAAW/H,GACpBmI,EAAYpL,QAAQkL,IARbE,EAAYtL,OAYvB,EAE0SmL,EAAMnH,UAAY,WAC1T,OAAOkH,IAAW/H,CACpB,EAAGgI,EAAMvC,YAAc,WACrB,OAAOsC,IAAW9H,GAAa8H,IAAW/H,GAAW8H,EAASC,SAAW9H,CAC3E,EAAG+H,EAAM7D,UAAY,WACnB,OAAO4D,IAAW7H,CACpB,EAAG8H,EAAM1P,OAAS,WAChB,OAAO2P,CACT,EAAGD,EAAMzH,MAAQ,WACf,OAAO2H,CACT,EAAGF,GACH,OAAO5K,CACT,CA2Ba4L,CAAQhI,EAAK8G,EAAUX,EAAeC,EAAgBxD,EAAMyD,EAAQC,GAC3EO,EAAmB,CACrBzK,KAAMA,EACNwE,aAAcA,GAyBhB,OAPI0F,IACFA,EAAK3H,OAASvC,EAAKuC,QAIrBlE,IAEO2B,EAWP,SAAS3B,EAAKM,EAAKwG,GACjB,IACE,IAAIjK,EAEAiK,GACFjK,EAAS4O,EAAW+B,MAAMlN,GAE1B4K,MACS,OAAa5K,IAOtB+L,EAASC,OAAS9H,EAKlBxE,EAAKkE,SAMLrH,GAAS,QAAK4O,EAAWgC,QAAUhC,EAAWgC,OAAO,MAAe,CAClExF,MAAM,EACN1L,MAAO,OAITM,GAFS,OAAgByD,IAEhB,QAAKmL,EAAWgC,QAAUhC,EAAWgC,SAAW,CACvDxF,MAAM,GAGCwD,EAAWzL,KAAKM,GAGtBzD,EAAOoL,MAMNoE,EAASC,SAAW9H,IACtB6H,EAASC,OAAS5H,GAGpB2H,EAASR,KAAKhP,EAAON,QATrB4J,EAAatJ,EAAON,MAAOoP,EAAgB3L,EAW/C,CAAE,MAAO8E,GACP,GAAIuH,EAASC,SAAW9H,EACtB,MAAMM,EAGRuH,EAASC,OAAS7H,EAClB4H,EAASR,KAAK/G,GAAO,EACvB,CACF,CA+BA,SAASqB,EAAaiF,EAAQO,EAAgBvH,EAAIsJ,QAClC,IAAVA,IACFA,EAAQ,IAGV,IAaIC,EAbAvH,EAAWnB,IAef,SAAS+G,EAAOnF,EAAKC,GACf6G,IAIJA,GAAgB,EAChBvJ,EAAGF,OAAS,IAERqB,EAAIqI,cACF9G,EACFvB,EAAIqI,YAAYC,eAAezH,EAAUS,GAEzCtB,EAAIqI,YAAYE,eAAe1H,EAAUS,IAIzCC,GACFqE,EAAiBC,GAGnBhH,EAAGyC,EAAKC,GACV,CAnCAvB,EAAIqI,aAAerI,EAAIqI,YAAYG,gBAAgB,CACjD3H,SAAUA,EACVuF,eAAgBA,EAChB+B,MAAOA,EACPtC,OAAQA,IAkCVY,EAAO9H,OAAS,IAEhBE,EAAGF,OAAS,WAENyJ,IAIJA,GAAgB,EAChB3B,EAAO9H,SAEP8H,EAAO9H,OAAS,IAEhBqB,EAAIqI,aAAerI,EAAIqI,YAAYI,gBAAgB5H,GACrD,EAEA0F,EAAeV,EAAQhF,EAAU4F,EACnC,CACF,CAIA,SAASiC,GAAQ5K,EAAM6K,GAgBrB,IAfA,IAAIC,EAAe9K,EAAKqC,QACpBA,OAA2B,IAAjByI,EAA0B/K,IAAe+K,EACnDhP,EAAWkE,EAAKlE,SAChBL,EAAWuE,EAAKvE,SAChBsP,EAAe/K,EAAK8D,QACpBA,OAA2B,IAAjBiH,EAA0B,CAAC,EAAIA,EACzCR,EAAcvK,EAAKuK,YACnBS,EAAoBhL,EAAKgL,kBACzBC,EAAejL,EAAK8J,QACpBA,OAA2B,IAAjBmB,EAA0B,IAAWA,EAM1CC,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClG/N,EAAK+N,EAAO,GAAKxQ,UAAUwQ,GAG7B,IA2CI1C,EA3CAN,EAAayC,EAAK7G,WAAM,EAAQ3G,GAMhC0F,EAAWnB,IAuCf,GArCI2I,IAEFA,EAAYc,gBAAkBd,EAAYc,iBAAmB,IAC7Dd,EAAYG,gBAAkBH,EAAYG,iBAAmB,IAC7DH,EAAYE,eAAiBF,EAAYE,gBAAkB,IAC3DF,EAAYC,eAAiBD,EAAYC,gBAAkB,IAC3DD,EAAYI,gBAAkBJ,EAAYI,iBAAmB,IAC7DJ,EAAYe,iBAAmBf,EAAYe,kBAAoB,IAC/Df,EAAYc,gBAAgB,CAC1BtI,SAAUA,EACV8H,KAAMA,EACNxN,KAAMA,KA0BN2N,EAAmB,CACrB,IAAInN,EAAa,IAAQmG,WAAM,EAAQgH,GAEvCtC,EAAoB,SAA2B6C,GAC7C,OAAO,SAAUxD,EAAQhF,EAAU4F,GAKjC,OAAO9K,GAJc,SAAwB2N,GAC3C,OAAOD,EAAUC,EAAKzI,EAAU4F,EAClC,GAEO9K,CAA2BkK,EACpC,CACF,CACF,MACEW,EAAoB,IAGtB,IAAIxG,EAAM,CACRG,QAASA,EACTvG,UAAU,OAAiBA,GAC3BL,SAAUA,EACV8O,YAAaA,EACbT,QAASA,EACTpB,kBAAmBA,GAErB,OAAO9J,GAAY,WACjB,IAAIN,EAAO2F,GAAK/B,EAAKkG,EAAYtE,EAASf,GAAU,OAAY8H,IAEhE,OAAM9R,GAMN,OAJIwR,GACFA,EAAYE,eAAe1H,EAAUzE,GAGhCA,CACT,GACF,CA4DA,MCt5CA,GD41CA,SAA+BmN,GAC7B,IAQIC,EARA1L,OAAiB,IAAVyL,EAAmB,CAAC,EAAIA,EAC/BV,EAAe/K,EAAK8D,QACpBA,OAA2B,IAAjBiH,EAA0B,CAAC,EAAIA,EACzCD,EAAe9K,EAAKqC,QACpBA,OAA2B,IAAjByI,EAA0B/K,IAAe+K,EACnDP,EAAcvK,EAAKuK,YACnBoB,GAAU,OAA8B3L,EAAM,CAAC,UAAW,UAAW,gBAQzE,SAAS4L,EAAelJ,GACtB,IAAIjH,EAAWiH,EAAMjH,SACjBK,EAAW4G,EAAM5G,SAQrB,OAPA4P,EAAed,GAAQiB,KAAK,MAAM,OAAS,CAAC,EAAGF,EAAS,CACtD7H,QAASA,EACTzB,QAASA,EACTvG,SAAUA,EACVL,SAAUA,EACV8O,YAAaA,KAER,SAAU5N,GACf,OAAO,SAAUZ,GACXwO,GAAeA,EAAYe,kBAC7Bf,EAAYe,iBAAiBvP,GAG/B,IAAIvC,EAASmD,EAAKZ,GAGlB,OADAsG,EAAQ3B,IAAI3E,GACLvC,CACT,CACF,CACF,CAkBA,OAhBAoS,EAAeE,IAAM,WAKnB,OAAOJ,EAAa1H,WAAM,EAAQpJ,UACpC,EAEAgR,EAAe5B,WAAa,SAAUjD,IAKpC,OAAkBjD,EAASiD,EAC7B,EAEO6E,CACT,0JE74CA,MAAMG,IAA0BC,EAAAA,EAAAA,QAAO,CACrCC,UAAUD,EAAAA,EAAAA,QAAO,CAAC,GAClBE,QAAQF,EAAAA,EAAAA,QAAO,IACfG,UAAW,KACXC,iBAAiBJ,EAAAA,EAAAA,QAAO,IACxBK,oBAAoBL,EAAAA,EAAAA,QAAO,CACzBM,KAAM,KAERC,gBAAgBP,EAAAA,EAAAA,QAAO,uBCGzB,MAAMQ,GAAW,CACfC,WAnBF,SAAoBC,GAAQV,EAAAA,EAAAA,QAAO,CAAC,GAAIjQ,GACtC,OAAQA,EAAOK,OACRuQ,GAAAA,IACIX,EAAAA,EAAAA,QAAOjQ,EAAO6Q,KAEdF,CAEb,EAaEG,qCAXF,SAA8CH,GAAQ,EAAO3Q,GAC3D,OAAQA,EAAOK,OACR0Q,GAAAA,GACI/Q,EAAOgR,OAEPL,CAEb,GAOA,IAAeM,EAAAA,GAAAA,GAAgBR,qBCrB/B,MAAMS,IAAyBjB,EAAAA,EAAAA,QAAO,CACpCkB,QAAS,sBCJX,MAAMC,IAA2BnB,EAAAA,EAAAA,QAAO,CACtCoB,mBAAoB,qBCFtB,MAAMC,IAAerB,EAAAA,EAAAA,QAAO,CAC1BsB,mBAAoB,KACpBC,eAAevB,EAAAA,EAAAA,QAAO,sBCFxB,MAAMqB,IAAerB,EAAAA,EAAAA,QAAO,qBCC5B,MAAMqB,IAAerB,EAAAA,EAAAA,QAAO,CAC1BwB,WAAW,wECEb,MAAMC,IAAwBzB,EAAAA,EAAAA,QAAO,8ICgB9B,MAAM0B,GAAiB,CAC5BC,QAAQX,EAAAA,GAAAA,GAAgB,CACtBY,QAASC,GACTC,MFlBJ,SAA4BpB,EAAQW,GAActR,GAChD,OAAQA,EAAOK,MACb,KAAK2R,GAAAA,EACH,OAAOrB,EAAMlR,IAAI,aAAa,GAChC,KAAKwS,GAAAA,EACH,OAAOtB,EAAMlR,IAAI,aAAa,GAChC,QACE,OAAOkR,EAEb,EEUIQ,QNhBJ,SAAuBR,EAAQO,GAAwBlR,GACrD,OAAQA,aAAAA,EAAAA,EAAQK,MACd,KAAK6R,GAAAA,GAAsB,KACfvB,EAIgBA,EAJ1B,MAAM/L,EAAI+L,SACF,QADEA,EAAAA,EACNwB,IAAI,kBADExB,IAAAA,OAAAA,EAAAA,EAENyB,WAAW/Q,IAAMA,aAAAA,EAAAA,EAAG8Q,IAAI,WAAWnS,aAAAA,EAAAA,EAAQR,OAC/C,OAAOoF,GAAK,EACR+L,aAAAA,EAAAA,EAAOlR,IAAI,UAAWkR,SAAW,QAAXA,EAAAA,EAAOwB,IAAI,kBAAXxB,IAAAA,OAAAA,EAAAA,EAAuB0B,OAAOzN,IACpD+L,CACN,CACA,KAAK2B,GAAAA,OAECtS,EAUF2Q,EAVF,GAAI3Q,SAAY,QAAZA,EAAAA,EAAQ0K,YAAR1K,IAAAA,OAAAA,EAAAA,EAAcR,IAAK,KACXmR,EAAV,MAAM/L,EAAI+L,SACF,QADEA,EAAAA,EACNwB,IAAI,kBADExB,IAAAA,OAAAA,EAAAA,EAENyB,WAAW/Q,QAAwBrB,SAAlBqB,aAAAA,EAAAA,EAAG8Q,IAAI,WAAWnS,SAAY,QAAZA,EAAAA,EAAQ0K,YAAR1K,IAAAA,OAAAA,EAAAA,EAAcR,IAAI,IACzD,GAAIoF,GAAK,EACP,OAAO+L,CAEX,CACA,OAAOA,aAAAA,EAAAA,EAAOlR,IACZ,UACAkR,SAAW,QAAXA,EAAAA,EAAOwB,IAAI,kBAAXxB,IAAAA,OAAAA,EAAAA,EAAuBhO,MAAKsN,EAAAA,EAAAA,QAAOjQ,aAAAA,EAAAA,EAAQ0K,QAG/C,KAAK6H,GAAAA,GACH,OAAOrB,GACT,QACE,OAAOP,EAEb,EMbI6B,aLpBJ,SAAuB7B,EAAQS,GAA0BpR,GACvD,OAAQA,aAAAA,EAAAA,EAAQK,QACToS,GAAAA,EACI9B,EAAMlR,IAAI,qBAAsBO,EAAOqR,oBAEvCV,CAEb,EKcIa,cJrBJ,SAA8Bb,EAAQW,GAActR,GAClD,OAAQA,EAAOK,OACRqS,GAAAA,GACI/B,EAAMlR,IAAI,iBAAiBwQ,EAAAA,EAAAA,QAAOjQ,EAAO2S,QAEzChC,CAEb,EIeIiC,UHzBJ,SAA0BjC,EAAQW,GAActR,GAC9C,OAAQA,EAAOK,OACRwS,GAAAA,IACI5C,EAAAA,EAAAA,QAAOjQ,EAAO4S,WAEdjC,CAEb,EGmBImC,YCzBJ,SAA4BnC,GAAQV,EAAAA,EAAAA,QAAO,IAAKjQ,GAC9C,OAAQA,EAAOK,MACb,KAAK0S,GAAAA,GACH,OAAO9C,EAAAA,EAAAA,QAAOjQ,EAAO8S,aACvB,KAAKE,GAAAA,GACL,KAAKC,GAAAA,GACH,OAAOhD,EAAAA,EAAAA,QAAO,IAChB,QACE,OAAOU,EAEb,EDgBIuC,gBE3BJ,SAAgCvC,GAAQV,EAAAA,EAAAA,QAAO,IAAKjQ,GAClD,OAAQA,EAAOK,MACb,KAAK8S,GAAAA,EACH,OAAOlD,EAAAA,EAAAA,QAAOjQ,EAAOkT,iBACvB,KAAKF,GAAAA,GACL,KAAKC,GAAAA,GACH,OAAOhD,EAAAA,EAAAA,QAAO,IAChB,QACE,OAAOU,EAEb,EFkBIyC,SG9BJ,SAAyBzC,GAAQV,EAAAA,EAAAA,QAAO,IAAKjQ,GAC3C,MCH0B,0BDGlBA,EAAOK,MAEJ4P,EAAAA,EAAAA,QAAOjQ,EAAOoT,UAEdzC,CAEb,EHwBI0C,UDzBJ,SAA0B1C,EAAQe,GAAuB1R,GACvD,OAAQA,EAAOK,MACb,KAAKiT,GAAAA,GACH,OAAO3C,EAAMhO,MAAKsN,EAAAA,EAAAA,QAAOjQ,EAAOuT,eAElC,KAAKC,GAAAA,GACH,OAAO7C,EAAM8C,MAAM9Q,MAAKsN,EAAAA,EAAAA,QAAOjQ,EAAOuT,eACxC,KAAKG,GAAAA,OAEC1T,EAAJ,OAAIA,SAAoB,QAApBA,EAAAA,EAAQuT,oBAARvT,IAAAA,OAAAA,EAAAA,EAAsB2T,MACjBhD,EAAMiD,QACVjM,GAAMA,EAAEkM,MAAM,CAAC,cAAe,WAAa7T,EAAOuT,aAAaI,OAG7DhD,EAAM8C,MAEf,QACE,OAAO9C,EAEb,ECOImD,SK9BJ,SAAyBnD,GAAQV,EAAAA,EAAAA,QAAO,IAAKjQ,GAC3C,OAAQA,EAAOK,MACb,KAAK0T,GAAAA,EACH,OAAO9D,EAAAA,EAAAA,QAAOjQ,EAAO8T,UACvB,KAAKb,GAAAA,GACH,OAAOhD,EAAAA,EAAAA,QAAO,IAChB,QACE,OAAOU,EAEb,ILuBEqD,YRdF,SAA4BrD,EAAQX,GAAyBhQ,GAC3D,OAAQA,EAAOK,MACb,KAAK4T,GAAAA,GAEH,OAAOtD,EAAMuD,MACX,CAAC,qBAAsBlU,EAAOmU,OAC9BxD,EACGkD,MAAM,CAAC,qBAAsB7T,EAAOmU,QAAQlE,EAAAA,EAAAA,QAAO,CAAC,IACpDmE,MAAMpU,EAAOqU,QAEpB,KAAKpB,GAAAA,GACH,OAAOjD,GACT,KAAKsE,GAAAA,GAAsB,CACzB,MAAMC,EAAQ5D,EACXwB,IAAI,UACJC,WACEzK,GAAM6M,OAAO7M,EAAEkM,MAAM,CAAC,MAAO,UAAYW,OAAOxU,EAAOmU,SAG5D,OAAOxD,EAAMuD,MAAM,CAAC,SAAUK,EAAO,MAAO,QAASvU,EAAOyU,QAC9D,CAEA,KAAKC,GAAAA,GACH,OAAO/D,EACJlR,IAAI,YAAYwQ,EAAAA,EAAAA,QAAOjQ,EAAO0K,KAAKwF,WACnCzQ,IAAI,UAAUwQ,EAAAA,EAAAA,QAAOjQ,EAAO0K,KAAKiK,iBACjClV,IAAI,YAAaO,EAAO0K,KAAK0F,WAC7B3Q,IAAI,QAASO,EAAO0K,KAAKkK,OAC9B,KAAKC,GAAAA,GACH,OAAOlE,EAAMlR,IAAI,mBAAmBwQ,EAAAA,EAAAA,QAAOjQ,EAAOmQ,SACpD,KAAK2E,GAAAA,GACH,OAAOnE,EAAMlR,IAAI,kBAAkBwQ,EAAAA,EAAAA,QAAOjQ,EAAOwQ,iBAEnD,QACE,OAAOG,EAEb,EQrBEoE,QAAQC,EAAAA,EAAAA,eAAcC,GAAAA,IAGXC,GAAuB,CAACC,EAAqB,CAAC,KAEzD,MAAM1E,yUAAW,IAAKkB,GAAmBwD,GAEzC,IAAIC,GAAkBnE,EAAAA,GAAAA,GAAgBR,GAGlC4E,EAAe,GAInB,MAAMC,EAAiB,IAAM,CAAC3E,EAAO3Q,KAEnC,GAAIqV,EAAapU,OAAS,EAAG,CAC3B,MAAMsU,EAAe5E,EAAM6E,eAAeC,IACxCJ,EAAa/V,SAASE,IACpBiW,EAAe3V,OAAON,EAAI,GAC1B,IAGJ,OADA6V,EAAe,GACRD,EAAgBG,EAAcvV,EACvC,CAEA,OAAOoV,EAAgBzE,EAAO3Q,EAAO,EAGjC0V,EAAiB,CACrBC,cAAe,IAAMlF,EACrBmF,eAAiBC,IACfpZ,OAAOqZ,OAAOrF,EAAUoF,GAExBT,GAAkBnE,EAAAA,GAAAA,GAAgBR,GAGlCiF,EAAehU,MAAMpB,eAAegV,IAAiB,EAEvDnU,OAAQmU,IACRS,IAAK,CAACC,EAAkBC,KACtB,MAAMC,EAAkBF,EAAiBpC,QAAO,EAAGpU,MAAKf,cACtD0X,KACEC,KAAS5W,KAAS8K,KAAQ9K,IAAQ6W,KAAW5X,GAC7C,+EAIE6X,QAAQC,IAAI9F,EAAUjR,IAAQiR,EAASjR,KAASf,KAOtDyX,EAAgB5W,SAAQ,EAAGE,MAAKf,cAW9BgS,EAASjR,GAVsB,CAACmR,EAAO3Q,KAEnCA,EAAOK,OAAS4S,GAAAA,IAChBjT,EAAOK,OAAS2S,GAAAA,KAEhBrC,OAAQ3T,GAEHyB,EAAQkS,EAAO3Q,GAGc,IAGxCoV,GAAkBnE,EAAAA,GAAAA,GAAgBR,GAGlCiF,EAAehU,MAAMpB,eAAegV,KAEhCW,GACFA,GACF,EAGF5D,OAAS2D,IACPA,EAAiB1W,SAAQ,EAAGE,iBACnBiR,EAASjR,GAChB6V,EAAa1S,KAAKnD,EAAI,IAIxB4V,GAAkBnE,EAAAA,GAAAA,GAAgBR,EAAS,GAI/C,OAAOiF,CAAc,EMrHjB7F,GAAiB2G,KAGvB,IAAI9U,GAAQ,CAAC,EAET+U,IAAoB,EAExB,SAASC,GAAepF,EAAe,CAAC,EAAG6D,EAAqB,CAAC,GAC/D,MAEMwB,EAAY,CAACpV,EAFEsO,IAAgB+G,EAAAA,EAAAA,kBAAiB3B,GAAAA,KAIhDS,EAAiBR,GAAqBC,GAiB5C,OAfAzT,GAAQlD,EACNkX,EAAevU,QACf8O,EAAAA,EAAAA,QAAOqB,GACPvQ,KAAW4V,IAIbjB,EAAehU,MAAQA,GAGvBA,GAAMmN,QAAUgB,GAAeE,IAC/BrO,GAAMgU,eAAiBA,EACvBhU,GAAMmV,cAAgB,CAAC,EAEvBJ,IAAoB,EACb/U,EACT,YClBAzE,EAAOC,QAZP,SAAuB6F,EAAOM,EAAWyT,EAAWC,GAIlD,IAHA,IAAI9V,EAAS8B,EAAM9B,OACfsT,EAAQuC,GAAaC,EAAY,GAAK,GAElCA,EAAYxC,MAAYA,EAAQtT,GACtC,GAAIoC,EAAUN,EAAMwR,GAAQA,EAAOxR,GACjC,OAAOwR,EAGX,OAAQ,CACV,gDCbA,MAAMyC,EAAU,CACd3W,EACA4W,EACAC,KAEA,IACE,GAAIC,oBAAoBC,oBAAoBC,SAAShX,GAAO,CAC1D,MAAMiX,EAAK,IAAIH,qBAAoBI,IAKjCtV,QAAQC,UAAUuD,MAAK,KACrBwR,EAASM,EAAKC,aAAc,GAC5B,IAWJ,OATAF,EAAGN,QACDva,OAAOqZ,OACL,CACEzV,OACAoX,UAAU,GAEZP,GAAQ,CAAC,IAGNI,CACT,CACF,CAAE,MAAO9Z,GAET,CACM,kBCtCRP,EAAOC,QAAU,IAA0B,wICI3C,SAASwa,EAAexS,EAAG1H,GACzB,OAAO,OAAe0H,KAAM,OAAqBA,EAAG1H,KAAM,OAA2B0H,EAAG1H,KAAM,QAChG,6BCNA,IAAIma,EAAO,EAAQ,QACfC,EAAY,EAAQ,QAGpBC,EAA4C3a,IAAYA,EAAQ4a,UAAY5a,EAG5E6a,EAAaF,GAA4C5a,IAAWA,EAAO6a,UAAY7a,EAMvF+a,EAHgBD,GAAcA,EAAW7a,UAAY2a,EAG5BF,EAAKK,YAAShb,EAsBvCib,GAnBiBD,EAASA,EAAOC,cAAWjb,IAmBf4a,EAEjC3a,EAAOC,QAAU+a,iOC1BbrI,EAAU,CAAC,0HAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OClBnD,MAAMC,EAAgB,uBAC3BC,EAAS,SACTC,GAE8C,EAD3CC,oXAAAA,CAAAA,EAAAA,CAFHF,YACAC,aAGA,OACE,SAACE,EAAAA,2UAAQA,CAAAA,CACPvY,KAAK,OACLoY,WAAWI,EAAAA,EAAAA,GAAK,iBAAkBJ,IAC9BE,cAAAA,UAEHD,oZCEP,MAAMI,EAAqB,IAClB,IAAOC,aAAeA,YAAYC,kBAAoBD,YAAYC,iBAAiB,cAAc,iDCc1G,QALA,SAAkB7b,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,kBChCAF,EAAOC,QAAU,IAA0B,6DCW3CD,EAAOC,QAFoB,6HCP3B,IAAI+b,EAAgB,EAAQ,QAE5Bhc,EAAOC,QAAU+b,IACX1c,OAAO2c,MACkB,iBAAnB3c,OAAOyM,oGCHZ,SAASmQ,EAAgBC,GAC9B,IAAIC,GAAwB,QAAuBD,GACjDE,GAAyB,OAAeD,EAAuB,GAC/DE,EAAeD,EAAuB,GACtCE,EAAiBF,EAAuB,GAC1C,OAAO,IAAUG,iBAAiB,CAChCF,aAAcA,EACdC,eAAgBA,GAEpB,CACO,SAASE,IACd,IAAIC,EAAS,IAAUC,mBACvB,OAAKD,EAAOE,WAGL,CAACF,EAAOJ,aAAcI,EAAOH,gBAF3BG,EAAOJ,YAGlB,qFChBIO,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,uJAAwJ,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kJAAkJ,MAAQ,GAAG,SAAW,4BAA4B,eAAiB,CAAC,6WAA6W,WAAa,MAE5yB,0BCPA/Q,EAAOC,QAAU,IAA0B,sDCA3CD,EAAOC,QAAU,IAA0B,6DCSnC,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJC,WACI,oFAAoFhc,MAChF,KAERic,OAAQ,qHAAqHjc,MACzH,KAEJkc,SAAU,mBAEdC,YACI,8DAA8Dnc,MAC1D,KAERoc,kBAAkB,EAClBC,SACI,8DAA8Drc,MAC1D,KAERsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJC,GAAI,aACJC,IAAK,gCACLC,IAAK,mBACLC,KAAM,qCACNC,KAAM,wBAEVC,SAAU,CACNC,QAAS,WACL,MAAO,YAA+B,IAAjBxa,KAAKya,QAAgB,MAAQ,MAAQ,MAC9D,EACAC,QAAS,WACL,MAAO,YAA+B,IAAjB1a,KAAKya,QAAgB,MAAQ,MAAQ,MAC9D,EACAE,SAAU,WACN,MAAO,YAA+B,IAAjB3a,KAAKya,QAAgB,MAAQ,MAAQ,MAC9D,EACAG,QAAS,WACL,MAAO,YAA+B,IAAjB5a,KAAKya,QAAgB,MAAQ,MAAQ,MAC9D,EACAI,SAAU,WACN,MACI,wBACkB,IAAjB7a,KAAKya,QAAgB,MAAQ,MAC9B,MAER,EACAK,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNpU,EAAG,aACHqU,GAAI,YACJC,EAAG,WACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,qBACxBC,QAAS,SAAUC,EAAQC,GACvB,IAAIC,EACW,IAAXF,EACM,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACA,IAIhB,MAHe,MAAXC,GAA6B,MAAXA,IAClBC,EAAS,KAENF,EAASE,CACpB,EACAC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxGyCC,CAAQ,EAAQ,uECM1D,SAASC,EAASC,GAChB,IAAI9I,GAAS,EACTtT,EAAmB,MAAVoc,EAAiB,EAAIA,EAAOpc,OAGzC,IADAH,KAAKwc,SAAW,IAAI,MACX/I,EAAQtT,GACfH,KAAKiV,IAAIsH,EAAO9I,GAEpB,CAGA6I,EAAS1gB,UAAUqZ,IAAMqH,EAAS1gB,UAAUiG,KCV5C,SAAqBxF,GAEnB,OADA2D,KAAKwc,SAAS7d,IAAItC,EAbC,6BAcZ2D,IACT,EDQAsc,EAAS1gB,UAAU6Z,IEfnB,SAAqBpZ,GACnB,OAAO2D,KAAKwc,SAAS/G,IAAIpZ,EAC3B,EFeA,wRGRA,MAAMogB,EAAuB,8BAkE7B,SAASC,EAAgB5N,EAASqH,GAChC,MAAMwG,EAAMC,IACZ,GAAID,EAAID,gBACN,OAAOC,EAAID,gBAAgB5N,EAASqH,GAGtC,MAAM0G,EAAgBC,EAAyBhO,IACzC,iBAAEiO,EAAkBC,WAAYC,GAAqBnO,EAE3D,OAAO,QAAUA,EAAQoO,OAAO,KAI9B,YAqVoBhhB,KADM8gB,EAtVWC,GAwVlC9G,GACQgH,EAAeH,EAAY7G,GAEnCA,GAAaA,MAzVD,KACb,MAAM+G,GAAQ,UACRF,EAAaI,EAAcF,GAG3BG,EADiBvO,EAAQwO,eAAiBN,EAE5C,IAAI,IACJO,EAAsB,CACpBP,aACAH,gBACAE,mBACAG,UAKN,SAASM,IACPH,EAAWrQ,KACb,CAEA,OANA,OAAiBkQ,EAAOG,IAMjB,QACL,IAAMlH,EAASkH,EAAYG,KAC3B,KAEE,MAAM,OAAEpR,IAAW,QAAWiR,IAC1BA,EAAWI,eAAmBrR,GAAqB,OAAXA,GAC1CiR,EAAWK,UAAU,CAAE7gB,KAAM,KAAmB8gB,QAAS,kBAC3D,GAEH,IAuTP,IAA8BX,CAtTxB,GAEN,CAWA,SAASY,EAAkB9O,GACzB,MAAM6N,EAAMC,IACZ,GAAID,EAAIiB,kBACN,OAAOjB,EAAIiB,kBAAkB9O,GAG/B,MAAM+N,EAAgBC,EAAyBhO,IACzC,iBAAEiO,EAAkBC,WAAYC,GAAqBnO,EAU3D,OANgBA,EAAQoO,MACnB/G,IAAa,QAAUrH,EAAQoO,MAAO/G,QAClBja,IAArB+gB,EACG9G,GAAagH,EAAeF,EAAkB9G,GAC9CA,GAAaA,MAEL,KACb,MAAM+G,GAAQ,UACRF,EAAaI,EAAcF,GAIjC,OAFuBpO,EAAQwO,eAAiBN,EAGvC,IAAI,IAGNO,EAAsB,CAC3BP,aACAH,gBACAE,mBACAG,SACA,GAEN,CAmCA,SAASC,EAAeU,EAAM1H,GAC5B,MAAMwG,EAAMC,IACZ,OAAID,EAAIQ,eACCR,EAAIQ,eAAeU,EAAM1H,IAG3B,SAAU+G,KACf,OAAiBA,EAAOW,QAAQ3hB,GACzBia,EAAS+G,KAEpB,CAwCA,SAASK,GAAsB,WAC7BP,EAAU,cACVH,EAAa,iBACbE,EAAgB,MAChBG,IAIA,KAAK,SACH,OAAO,IAAI,IAGb,MAAMY,GAAiB,UAEvB,IAAID,EACJ,GAAIb,IAAeD,EACjBc,EAuHJ,SAAyBb,EAAYE,EAAOL,GAC1C,MAAM,OAAEkB,EAAM,QAAEC,GAAYhB,EAAWiB,cACjCC,GAAUhB,EAAMiB,eAAeC,sBAAsB3B,KAAgC,QAAcO,GAEnGqB,EAAYH,EACd,IAAI,IAAW,IACVrB,EACHyB,aAAcP,EACdC,UACAE,YAEF,IAAI,IAAuB,CAAEF,aAEjC,QAAmBhB,EAAYqB,GAE/B,MAAME,GAAS,UASf,OARIA,IACFA,EAAOC,KAAK,YAAaH,GAErBxB,EAAc4B,cAChBF,EAAOC,KAAK,UAAWH,IAIpBA,CACT,CAhJWK,CAAgB1B,EAAYE,EAAOL,IAC1C,QAAmBG,EAAYa,QAC1B,GAAIb,EAAY,CAErB,MAAM2B,GAAM,QAAkC3B,IACxC,QAAEgB,EAASD,OAAQO,GAAiBtB,EAAWiB,cAC/CW,GAAgB,QAAc5B,GAEpCa,EAAOgB,EACL,CACEb,UACAM,kBACGzB,GAELK,EACA0B,IAGF,QAAgBf,EAAMc,EACxB,KAAO,CACL,MAAM,QACJX,EAAO,IACPW,EAAG,aACHL,EACAJ,QAASU,GACP,IACCd,EAAegB,2BACf5B,EAAM4B,yBAGXjB,EAAOgB,EACL,CACEb,UACAM,kBACGzB,GAELK,EACA0B,GAGED,IACF,QAAgBd,EAAMc,EAE1B,CAMA,OAJA,OAAad,IAEb,QAAwBA,EAAMX,EAAOY,GAE9BD,CACT,CAOA,SAASf,EAAyBhO,GAChC,MACMiQ,EAAa,CACjBC,cAFUlQ,EAAQmQ,cAAgB,CAAC,GAEjB7F,cACftK,GAGL,GAAIA,EAAQoQ,UAAW,CACrB,MAAMC,EAAM,IAAKJ,GAGjB,OAFAI,EAAIC,gBAAiB,QAAuBtQ,EAAQoQ,kBAC7CC,EAAID,UACJC,CACT,CAEA,OAAOJ,CACT,CAEA,SAASnC,IACP,MAAMyC,GAAU,SAChB,OAAO,OAAwBA,EACjC,CAEA,SAASR,EAAehC,EAAeK,EAAO0B,GAC5C,MAAML,GAAS,UACTzP,EAAWyP,GAAUA,EAAOe,cAAiB,CAAC,GAE9C,KAAElX,EAAO,GAAE,WAAEmX,GAAe1C,GAC3BqB,EAASsB,GAActC,EAAMiB,eAAeC,sBAAsB3B,GACrE,EAAC,IACD,OAAW3N,EAAS,CAClB1G,OACAwW,gBACAW,aACAE,mBAAoB,CAClBrX,OACAwW,mBAIFc,EAAW,IAAI,IAAW,IAC3B7C,EACH0C,WAAY,CACV,CAAC,MAAmC,YACjC1C,EAAc0C,YAEnBrB,YAUF,YARmBhiB,IAAfsjB,GACFE,EAASC,aAAa,KAAuCH,GAG3DjB,GACFA,EAAOC,KAAK,YAAakB,GAGpBA,CACT,CAiCA,SAAStC,EAAcF,GACrB,MAAMW,GAAO,OAAiBX,GAE9B,IAAKW,EACH,OAGF,MAAMU,GAAS,UAEf,OADgBA,EAASA,EAAOe,aAAe,CAAC,GACpCM,4BACH,QAAY/B,GAGdA,CACT,4JC9aIgC,EAAoBnM,OAAO,EAAAoM,QAAQ1iB,MAAM,KAAK,IACvC2iB,EAAU,SAAiBC,EAAKC,GACtB,mBAARD,EACTA,EAAIC,GACsB,YAAjB,OAAQD,IAAqBA,GAAO,YAAaA,IAC1DA,EAAIlb,QAAUmb,EAElB,EAKWC,EAAa,WACtB,IAAK,IAAI7R,EAAOtQ,UAAUoC,OAAQggB,EAAO,IAAI7R,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E4R,EAAK5R,GAAQxQ,UAAUwQ,GAEzB,IAAI6R,EAAUD,EAAKrN,OAAOuN,SAC1B,OAAID,EAAQjgB,QAAU,EACbigB,EAAQ,GAEV,SAAUH,GACfE,EAAK3hB,SAAQ,SAAUwhB,GACrBD,EAAQC,EAAKC,EACf,GACF,CACF,EACWK,EAAgB,WACzB,IAAK,IAAIC,EAAQxiB,UAAUoC,OAAQggB,EAAO,IAAI7R,MAAMiS,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFL,EAAKK,GAASziB,UAAUyiB,GAE1B,OAAO,QAAQ,WACb,OAAON,EAAW/Y,WAAM,EAAQgZ,EAClC,GAAGA,GAAM,SAAUM,EAAM3gB,GACvB,OAAO2gB,EAAKtgB,SAAWL,EAAKK,QAAUsgB,EAAKC,OAAM,SAAUV,EAAKlc,GAC9D,OAAOkc,IAAQlgB,EAAKgE,EACtB,GACF,GACF,EACW6c,EAAa,SAAoBC,GAC1C,IAAIC,EAAiBC,EACrB,IAAKF,EACH,OAAO,EAIT,GAAIG,EAAeH,IAAoBf,GAAqB,GAC1D,OAAO,EAET,IAAItgB,GAAO,IAAAyhB,QAAOJ,GAAmBA,EAAgBrhB,KAAKA,KAAOqhB,EAAgBrhB,KAGjF,SAAoB,mBAATA,GAAgE,QAAtCshB,EAAkBthB,EAAK3D,iBAA2C,IAApBilB,GAA8BA,EAAgBI,QAAW1hB,EAAK2hB,WAAa,EAAAC,gBAK/H,mBAApBP,GAA4F,QAAvDE,EAAwBF,EAAgBhlB,iBAAiD,IAA1BklB,GAAoCA,EAAsBG,QAAWL,EAAgBM,WAAa,EAAAC,WAInN,EACA,SAASJ,EAAed,GACtB,OAAoB,IAAAmB,gBAAenB,MAAU,OAAWA,EAC1D,CACO,IAAIoB,EAAiB,SAAwBpB,GAClD,OAAOc,EAAed,IAASU,EAAWV,EAC5C,EAOWqB,EAAa,SAAoBrB,GAC1C,GAAIA,GAAQc,EAAed,GAAO,CAChC,IAAIsB,EAAMtB,EAIV,OAAOsB,EAAIrX,MAAMsX,qBAAqB,OAASD,EAAIrX,MAAM8V,IAAMuB,EAAIvB,GACrE,CACA,OAAO,IACT,yBC9EQ,SAAW/G,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwF/b,MAC5F,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,2DAA2Drc,MACjE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJE,IAAK,qBACLE,KAAM,4BAEVE,SAAU,CACNC,QAAS,gBACTE,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNpU,EAAG,gBACHqU,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,GACf,IAAIxb,EAAIwb,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxb,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACA2b,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCC,CAAQ,EAAQ,sCCH1D1gB,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzDC,EAA8BC,EAAyB,EAAQ,SAC/DC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIK,EAAe,SAAS/Y,EAAO8V,GAC/B,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAM3B,EAAcO,UAbEe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJksBC,EAAOmC,WAAWd,oBCvHxtB,IAAIpM,EAAO,EAAQ,QAsBnB1a,EAAOC,QAJG,WACR,OAAOya,EAAKmN,KAAKC,KACnB,8BClBAtoB,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+LAAmM,KAAQ,QAAS,MAAS,2GCAjX,MAAM8nB,EAAepQ,IAC1B,MAAM,cACJqQ,EAAa,aACbC,EAAY,aACZC,GACEvQ,EAMJ,OALoB,QAAWA,EAAO,CACpCwQ,wBAAyBH,EACzBI,sBAAuBF,EACvBG,uBAAwBJ,GAER,EAEPK,EAAwB3Q,IACnC,IAAI4Q,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxB,MAAMC,EAAmD,QAAhCN,EAAK5Q,EAAMkR,uBAAoC,IAAPN,EAAgBA,EAAK5Q,EAAMmR,SACtFC,EAAuD,QAAlCP,EAAK7Q,EAAMoR,yBAAsC,IAAPP,EAAgBA,EAAK7Q,EAAMmR,SAC1FE,EAAuD,QAAlCP,EAAK9Q,EAAMqR,yBAAsC,IAAPP,EAAgBA,EAAK9Q,EAAMsR,WAC1FC,EAAuD,QAAlCR,EAAK/Q,EAAMuR,yBAAsC,IAAPR,EAAgBA,GAAK,QAAcG,GAClGM,EAA2D,QAApCR,EAAKhR,EAAMwR,2BAAwC,IAAPR,EAAgBA,GAAK,QAAcI,GACtGK,EAA2D,QAApCR,EAAKjR,EAAMyR,2BAAwC,IAAPR,EAAgBA,GAAK,QAAcI,GACtGK,GAAiB,OAAS,IAAI,KAAiB1R,EAAM2R,cAAe,QAAU,OAAS,OAC7F,MAAO,CACLC,WAAY,IACZC,cAAe,KAAK7R,EAAM8R,2BAA2B9R,EAAM+R,oBAC3DC,cAAe,KAAKhS,EAAM8R,2BAA2B9R,EAAMiS,iBAC3DC,aAAc,KAAKlS,EAAM8R,2BAA2B9R,EAAMmS,oBAC1DxN,aAAc3E,EAAMoS,oBACpBC,YAAarS,EAAMoS,oBACnBE,oBAAqBtS,EAAMuS,YAC3BC,kBAAmBxS,EAAMyS,iBACzBC,QAAS,cACTC,wBAAyB3S,EAAMyS,iBAC/BpC,cAAerQ,EAAM4S,yBAA2B5S,EAAM6S,UACtDC,gBAAiB9S,EAAM4S,yBAA2B5S,EAAM6S,UACxDE,gBAAiB,EAAI/S,EAAM6S,UAC3BvC,aAActQ,EAAMsR,WACpB0B,eAAgBhT,EAAMsR,WAAa,EACnC2B,eAAgBjT,EAAMsR,WAAa,EACnC4B,iBAAkBlT,EAAMmT,kBACxBC,YAAa,cACbC,cAAerT,EAAMsT,UACrBC,mBAAoBvT,EAAMsT,UAC1BE,oBAAqBxT,EAAMsT,UAC3BG,YAAazT,EAAM0T,kBACnBC,aAAc3T,EAAMsT,UACpBM,UAAW5T,EAAMyS,iBACjBoB,mBAAoB7T,EAAMuS,YAC1BuB,2BAA4B9T,EAAMuS,YAClCwB,eAAgB/T,EAAMyS,iBACtBuB,kBAAmBhU,EAAMmT,kBACzBc,wBAAyBjU,EAAMmT,kBAC/Be,gBAAiBlU,EAAMyS,iBACvB0B,mBAAoBnU,EAAMoU,mBAC1BC,yBAA0BrU,EAAMoU,mBAChC1C,iBACAR,kBACAE,oBACAC,oBACAE,oBACAC,sBACAC,sBACAlB,aAAcpnB,KAAKmrB,KAAKtU,EAAMuU,cAAgBrD,EAAkBK,GAAqB,EAAIvR,EAAM6S,UAAW,GAC1G2B,eAAgBrrB,KAAKmrB,KAAKtU,EAAMyU,gBAAkBrD,EAAoBI,GAAuB,EAAIxR,EAAM6S,UAAW,GAClH6B,eAAgBvrB,KAAKmrB,KAAKtU,EAAM2U,gBAAkBtD,EAAoBI,GAAuB,EAAIzR,EAAM6S,UAAW,GACnH,6ECtDH,QAX2B,SAAUzb,EAAQwd,IASzC,OAAuBxd,EAAQwd,EAAM,IACzC,gCCVA/sB,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD8G,EAAgC5G,EAAyB,EAAQ,SACjEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIgG,EAAiB,SAAS1e,EAAO8V,GACjC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMkF,EAAgBtG,UAbAe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJoxBC,EAAOmC,WAAW6E,oBCvH1yB,IAAIC,EAAqB,EAAQ,QAC7B1iB,EAAO,EAAQ,QAsBnBhK,EAAOC,QAbP,SAAsBwnB,GAIpB,IAHA,IAAIjnB,EAASwJ,EAAKyd,GACdzjB,EAASxD,EAAOwD,OAEbA,KAAU,CACf,IAAIzB,EAAM/B,EAAOwD,GACb9D,EAAQunB,EAAOllB,GAEnB/B,EAAOwD,GAAU,CAACzB,EAAKrC,EAAOwsB,EAAmBxsB,GACnD,CACA,OAAOM,CACT,0BCZQ,SAAWsc,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,mJAAmJ/b,MACvJ,KAEJmc,YACI,6DAA6Dnc,MAAM,KACvEqc,SACI,6EAA6Erc,MACzE,KAERsc,cAAe,mCAAmCtc,MAAM,KACxDuc,YAAa,gBAAgBvc,MAAM,KACnCyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJE,IAAK,gCACLE,KAAM,uCAEVE,SAAU,CACNC,QAAS,eACTE,QAAS,iBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNpU,EAAG,mBACHqU,GAAI,eACJC,EAAG,eACHC,GAAI,cACJC,EAAG,cACHC,GAAI,aACJC,EAAG,cACHC,GAAI,cACJC,EAAG,aACHC,GAAI,WACJC,EAAG,aACHC,GAAI,YAERC,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7DyCC,CAAQ,EAAQ,gECLnD,MAAMyM,YAA4B,cAAoB,CAAC,IAE5DC,SAAUC,GACRF,mBCJJ3sB,EAAOC,QAAU,IAA0B,qGCEpC,MAAM6sB,EAAqB,KAChC,MAAOC,IAAgBC,EAAAA,EAAAA,MAEvB,OAAOxtB,OAAOytB,YAAY,IAAIF,GAAc,mBCL9C/sB,EAAOC,QAAU,IAA0B,qFCA3C,MAAMitB,EAA2C,CAC/CC,KAAM,qCACNC,QAAS,wCACTC,IAAK,0CACLC,QAAS,8CACTC,KAAM,0BAGKC,EAAkBC,GACtBP,EAAiBO,kDCP1B,MAAMC,YAAS,sFCEf,SAASC,IACP,OAAO,QAAmB,uBAAuB,IAAM,IAAI,KAC7D,CAGA,SAASC,IACP,OAAO,QAAmB,yBAAyB,IAAM,IAAI,KAC/D,0BCFQ,SAAW9Q,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,6EAA6E/b,MACjF,KAEJmc,YACI,6EAA6Enc,MACzE,KAERqc,SAAU,sCAAsCrc,MAAM,KACtDsc,cAAe,oCAAoCtc,MAAM,KACzDuc,YAAa,mBAAmBvc,MAAM,KACtCwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,6BAEV2P,cAAe,kBACfC,KAAM,SAAU9nB,GACZ,MAAiB,WAAVA,CACX,EACA+nB,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,GACA,WAEA,QAEf,EACA5P,SAAU,CACNC,QAAS,kBACTE,QAAS,mBACTC,SAAU,wBACVC,QAAS,qBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNpU,EAAG,mBACHqU,GAAI,YACJC,EAAG,SACHC,GAAI,UACJC,EAAG,YACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJC,EAAG,OACHC,GAAI,SAERC,uBAAwB,eACxBC,QAAS,SAAUC,GACf,MAAO,MAAQA,CACnB,GAKP,CAtEyCM,CAAQ,EAAQ,sCCNzD,IAAWpT,EAA+KqhB,KAA/KrhB,EAAoL,KAAM,OAAOvM,EAAE,CAAC,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAEtmB,EAAE,MAAMumB,EAAEvmB,EAAE,MAAM+W,EAAE/W,EAAE,MAAMiX,EAAEjX,EAAE,MAAMmX,EAAEnX,EAAE,MAAM/B,EAAE+B,EAAE,MAAMwmB,EAAExmB,EAAE,MAAMuX,EAAEvX,EAAE,MAAM7D,EAAE6D,EAAE,MAAMymB,EAAE,CAACC,KAAK,MAAM,WAAAC,CAAYruB,GAAGsD,KAAKT,KAAK7C,EAAEsD,KAAKgrB,OAAO,KAAKhrB,KAAKirB,YAAY,CAAC,EAAEjrB,KAAKkrB,QAAQ,CAAC,MAAAA,GAASlrB,KAAKmrB,KAAK,IAAI5P,EAAE6P,IAAIprB,KAAKqrB,aAAa,KAAKrrB,KAAKsrB,MAAM,IAAIjpB,EAAEkpB,QAAQvrB,KAAKwrB,OAAO,KAAKxrB,KAAKyrB,QAAQ,KAAKzrB,KAAK0rB,UAAU,KAAK1rB,KAAK2rB,OAAO,CAAC,EAAE3rB,KAAK4rB,OAAO,GAAG5rB,KAAK6rB,aAAa,IAAI1tB,IAAI6B,KAAK8rB,QAAQ,CAAC,EAAE9rB,KAAK+rB,OAAO,CAACC,QAAQ,KAAKC,MAAM,CAAC,EAAE,CAAC,QAAAC,GAAW,OAAOrlB,EAAE,mBAAmBsU,EAAE+Q,SAAS,mCAAmC/Q,EAAE+Q,SAASlsB,KAAK,CAAC,KAAAmsB,IAASzvB,GAAG,OAAO8tB,EAAE4B,WAAW1vB,EAAE,SAASsD,KAAKqsB,QAAQ3vB,EAAE,UAAU,CAAC,KAAA4vB,CAAM5vB,GAAGmK,EAAEnK,GAAG,iBAAiBA,IAAI4R,MAAMie,QAAQ7vB,GAAG,4BAA4BmK,GAAG7G,KAAKwsB,aAAa,2CAA2C,MAAMvjB,EAAEjJ,KAAKysB,QAAQxjB,EAAE6iB,QAAQY,YAAYzjB,EAAE6iB,QAAQY,aAAa,GAAG,IAAI,MAAMtoB,KAAK1H,EAAE,CAAC,MAAM6tB,EAAE7tB,EAAE0H,GAAGyC,EAAE,mBAAmB0jB,EAAE,0BAA0BnmB,EAAE,sBAAsB6E,EAAE6iB,QAAQY,YAAY7qB,KAAK,CAACshB,OAAO/e,EAAEuoB,SAASpC,GAAG,CAAC,OAAOthB,EAAE8iB,OAAOC,SAAQ,EAAG/iB,CAAC,CAAC,QAAA2jB,CAASlwB,GAAG,OAAOmK,OAAE,IAASnK,EAAE,gCAAgCmK,GAAG7G,KAAKwrB,OAAO,4CAA4CxrB,KAAK6sB,UAAU,WAAWnwB,EAAE,CAAC,IAAAowB,CAAKpwB,GAAG,OAAOmK,GAAE,IAAKnK,GAAG,iBAAiBA,EAAE,oBAAoBmK,GAAE,IAAKnK,GAAGsD,KAAKirB,YAAY6B,KAAKpwB,GAAG,OAAOsD,KAAKT,KAAK,8BAA8B7C,GAAGsD,KAAK6sB,UAAU,QAAO,IAAKnwB,OAAE,EAAOA,EAAE,CAAC,QAAQA,EAAEuM,GAAG,OAAOjJ,KAAK2hB,SAAS,UAAUjlB,EAAEuM,EAAE,CAAC,WAAA8jB,CAAYrwB,GAAG,OAAOmK,EAAEnK,GAAG,iBAAiBA,EAAE,0CAA0CsD,KAAK6sB,UAAU,cAAcnwB,EAAE,CAAC,KAAAswB,CAAMtwB,GAAG,MAAMuM,EAAEjJ,KAAKysB,QAAQ,YAAO,IAAS/vB,IAAIA,EAAEuM,EAAEgkB,UAAUvwB,EAAE,CAACwwB,UAAS,KAAMjkB,EAAE4jB,UAAU,QAAQnwB,EAAE,CAAC+vB,OAAM,GAAI,CAAC,KAAA7nB,CAAMlI,GAAG,OAAOmK,EAAEnK,EAAE,iBAAiBmK,EAAEnK,aAAaoB,OAAO,mBAAmBpB,EAAE,mDAAmDsD,KAAK6sB,UAAU,QAAQnwB,EAAE,CAAC,OAAAywB,CAAQzwB,EAAEuM,EAAE,CAAC,GAAG,OAAOpC,OAAE,IAASnK,EAAE,mBAAmB8tB,EAAE4C,cAAcnkB,EAAE,CAAC,aAAajJ,KAAKqtB,OAAO,WAAW3wB,EAAE,CAAC4wB,QAAO,EAAGJ,SAASjkB,EAAEikB,UAAU,CAAC,QAAAK,CAAS7wB,EAAEuM,GAAG,MAAM,iBAAiBvM,IAAImK,GAAGoC,EAAE,2CAA2CA,EAAEvM,EAAEqwB,YAAYrwB,EAAEA,EAAE8wB,QAAQ3mB,EAAE,mBAAmBnK,EAAE,6BAA6BmK,OAAE,IAASoC,GAAGA,GAAG,iBAAiBA,EAAE,0CAA0CjJ,KAAKqtB,OAAO,YAAY,CAACG,OAAO9wB,EAAEqwB,YAAY9jB,GAAG,CAACqkB,QAAO,GAAI,CAAC,QAAAG,CAAS/wB,EAAEuM,GAAG,OAAOjJ,KAAK2hB,SAAS,WAAWjlB,EAAEuM,EAAE,CAAC,SAAAykB,GAAY,OAAO1tB,KAAK2tB,SAAS,YAAY,CAAC,EAAAzgB,CAAGxQ,GAAG,OAAOA,GAAGmK,EAAE,iBAAiBnK,EAAE,iCAAiCmK,EAAE,WAAW+mB,KAAKlxB,GAAG,sCAAsCsD,KAAK6sB,UAAU,KAAKnwB,IAAIsD,KAAK6sB,UAAU,UAAK,EAAO,CAAC,OAAAgB,IAAWnxB,GAAG,OAAOsD,KAAKqsB,QAAQ3vB,EAAE,YAAY,CAAC,KAAA8Q,CAAM9Q,GAAG,OAAOmK,EAAEnK,GAAG,iBAAiBA,EAAE,yCAAyCsD,KAAK6sB,UAAU,QAAQnwB,EAAE,CAAC,IAAAuL,CAAKvL,GAAG,OAAOmK,OAAE,IAASnK,EAAE,4BAA4BsD,KAAKqtB,OAAO,QAAQ3wB,EAAE,CAAC4wB,QAAO,GAAI,CAAC,IAAAQ,IAAQpxB,GAAGmK,EAAEnK,EAAEyD,OAAO,iBAAiB,IAAI,MAAM8I,KAAKvM,EAAEmK,EAAEoC,GAAG,iBAAiBA,EAAE,mCAAmC,OAAOjJ,KAAKqtB,OAAO,QAAQ3wB,EAAE,CAAC,IAAAqxB,CAAKrxB,GAAE,GAAI,OAAOmK,EAAE,kBAAkBnK,EAAE,gBAAgBA,GAAGsD,KAAK6sB,UAAU,OAAOnwB,EAAE,CAAC,QAAAsxB,GAAW,OAAOhuB,KAAK2tB,SAAS,WAAW,CAAC,KAAAM,CAAMvxB,GAAGmK,EAAEnK,EAAE,uBAAuBmK,OAAE,IAASnK,EAAEuK,QAAQ,2BAA2BJ,OAAE,IAASnK,EAAEwxB,UAAU,6BAA6BrnB,OAAE,IAASnK,EAAEyxB,SAAS,4BAA4BtnB,OAAE,IAASnK,EAAE0xB,MAAM,yBAAyB5D,EAAE6D,iBAAiB3xB,GAAG,MAAMuM,EAAEjJ,KAAKysB,QAAQ,OAAOxjB,EAAEoiB,aAAab,EAAE8D,YAAYrlB,EAAEoiB,aAAa3uB,GAAGuM,CAAC,CAAC,QAAA0kB,CAASjxB,GAAG,OAAOmK,EAAE,CAAC,WAAW,WAAW,aAAa0P,SAAS7Z,GAAG,wBAAwBA,GAAGsD,KAAK6sB,UAAU,WAAWnwB,EAAE,CAAC,GAAA6xB,CAAI7xB,GAAE,GAAI,OAAOsD,KAAK6sB,UAAU,SAASnwB,EAAE,WAAM,EAAO,CAAC,MAAAC,CAAOD,GAAG,OAAOmK,EAAE,CAAC,MAAM,SAAS0P,SAAS7Z,GAAG,sBAAsBA,GAAGsD,KAAK6sB,UAAU,SAASnwB,EAAE,CAAC,QAAA8xB,GAAW,OAAOxuB,KAAK2tB,SAAS,WAAW,CAAC,MAAAc,CAAO/xB,GAAG,MAAMuM,EAAEjJ,KAAKysB,QAAQroB,OAAE,IAAS1H,IAAIA,EAAE,OAAOuM,EAAEoiB,aAAab,EAAE8D,YAAYrlB,EAAEoiB,aAAa,CAACqD,QAAQtqB,IAAI6E,CAAC,CAAC,KAAA0lB,CAAMjyB,GAAE,GAAI,OAAOsD,KAAK6sB,UAAU,SAASnwB,EAAE,aAAQ,EAAO,CAAC,GAAAF,IAAOE,GAAGmK,EAAEnK,EAAEyD,OAAO,gBAAgB,IAAI,MAAM8I,KAAKvM,EAAEmK,EAAEoC,GAAG,iBAAiBA,EAAE,kCAAkC,OAAOjJ,KAAKqtB,OAAO,OAAO3wB,EAAE,CAAC,IAAAkyB,CAAKlyB,GAAG,OAAOmK,EAAEnK,GAAG,iBAAiBA,EAAE,wCAAwCsD,KAAK6sB,UAAU,OAAOnwB,EAAE,CAAC,KAAAmyB,IAASnyB,GAAG8tB,EAAE4B,WAAW1vB,EAAE,SAAS,MAAMuM,EAAEjJ,KAAKmsB,SAASzvB,GAAG,OAAOuM,EAAE4jB,UAAU,SAAS5jB,EAAEwiB,QAAQ,CAACgB,OAAM,IAAKxjB,CAAC,CAAC,IAAA6lB,CAAKpyB,EAAEuM,GAAG,MAAM7E,EAAEpE,KAAKysB,QAAQroB,EAAE0nB,QAAQG,QAAQ7nB,EAAE0nB,QAAQG,MAAM,IAAI,MAAM1B,EAAEE,EAAEqE,KAAK1qB,EAAE1H,EAAEuM,GAAG,IAAI,CAAC,MAAM,QAAQsN,SAASnS,EAAE7E,MAAM,CAAC,MAAM7C,EAAE6tB,EAAEwE,GAAG,CAACxE,GAAGA,EAAEyE,OAAO,IAAI,MAAM/lB,KAAKvM,EAAEmK,GAAGoC,EAAEtE,MAAM,QAAQsE,EAAEtE,KAAKpF,MAAM0J,EAAEtE,KAAKpF,OAAO6E,EAAE7E,KAAK,iBAAiB6E,EAAE7E,KAAK,OAAO0J,EAAEtE,MAAMsE,EAAEtE,KAAKpF,MAAMsH,GAAGoC,EAAEgmB,WAAW,QAAQhmB,EAAEgmB,UAAU1vB,MAAM0J,EAAEgmB,UAAU1vB,OAAO6E,EAAE7E,KAAK,iBAAiB6E,EAAE7E,KAAK,OAAO0J,EAAEgmB,WAAWhmB,EAAEgmB,UAAU1vB,KAAK,CAAC,OAAO6E,EAAE0nB,QAAQG,MAAMpqB,KAAK0oB,GAAGnmB,EAAE8qB,iBAAiB,CAAC,KAAAvM,CAAMjmB,GAAGmK,GAAG7G,KAAKwsB,aAAa,uCAAuC3lB,GAAG7G,KAAKwrB,OAAO,gCAAgC3kB,OAAE,IAAS7G,KAAK2rB,OAAOiB,SAAS,wCAAwC,MAAM3jB,EAAEjJ,KAAKysB,QAAQ,OAAOxjB,EAAEuiB,OAAO9uB,GAAGyH,EAAEgrB,SAASC,YAAYnmB,EAAE8iB,OAAOC,SAAQ,EAAG/iB,CAAC,CAAC,KAAAwjB,GAAQ,MAAM/vB,EAAEf,OAAO+Q,OAAO/Q,OAAO0D,eAAeW,OAAO,OAAOA,KAAKqvB,QAAQ3yB,EAAE,CAAC,MAAA6K,CAAO7K,GAAGmK,EAAE2jB,EAAE8E,SAAS5yB,GAAG,yBAAyBmK,EAAE,QAAQ7G,KAAKT,MAAM,QAAQ7C,EAAE6C,MAAM7C,EAAE6C,OAAOS,KAAKT,KAAK,oBAAoBS,KAAKT,KAAK,qBAAqB7C,EAAE6C,MAAMsH,GAAG7G,KAAKwsB,aAAa,sDAAsD3lB,GAAGnK,EAAE8vB,aAAa,iDAAiD,IAAIvjB,EAAEjJ,KAAKysB,QAAQ,GAAG,QAAQzsB,KAAKT,MAAM,QAAQ7C,EAAE6C,KAAK,CAAC,MAAM6E,EAAE1H,EAAE+vB,QAAQ,IAAI,MAAM/vB,KAAKf,OAAOwK,KAAK8C,GAAG,SAASvM,IAAI0H,EAAE1H,GAAGuM,EAAEvM,IAAIuM,EAAE7E,CAAC,CAAC6E,EAAEkiB,KAAK5jB,OAAO7K,EAAEyuB,MAAMliB,EAAEqiB,MAAMiE,SAAS7yB,EAAE2F,EAAEmtB,WAAWvmB,EAAEoiB,aAAapiB,EAAEoiB,aAAab,EAAE8D,YAAYrlB,EAAEoiB,aAAa3uB,EAAE2uB,cAAc3uB,EAAE2uB,aAAapiB,EAAEwiB,QAAQlrB,EAAE+S,MAAMrK,EAAEwiB,QAAQ/uB,EAAE+uB,QAAQ/uB,EAAEgvB,WAAWziB,EAAEyiB,UAAUnrB,EAAE+S,MAAMrK,EAAEyiB,UAAUhvB,EAAEgvB,UAAUhvB,EAAE+uB,SAAS,IAAI,MAAMrnB,KAAK1H,EAAEmvB,aAAa1lB,OAAO8C,EAAE4iB,aAAapW,IAAIrR,KAAK6E,EAAE2iB,OAAO3iB,EAAE2iB,OAAO9Y,QAAQpW,GAAGA,EAAE+yB,MAAM/yB,EAAE0L,OAAOhE,IAAI6E,EAAE4iB,aAAa7sB,OAAOoF,IAAI,IAAI,MAAMA,KAAK1H,EAAEkvB,OAAOlvB,EAAEuuB,YAAYyE,MAAMtrB,EAAEopB,QAAQmC,OAAO1mB,EAAE4iB,aAAaltB,IAAIyF,EAAEgE,KAAKhE,GAAG6E,EAAE2iB,OAAO/pB,KAAKuC,GAAG,GAAG6E,EAAE0iB,OAAOqB,OAAOtwB,EAAEivB,OAAOqB,MAAM,CAAC/jB,EAAE0iB,OAAOqB,MAAM/jB,EAAE0iB,OAAOqB,MAAMzlB,OAAO7K,EAAEivB,OAAOqB,OAAO,MAAM5oB,EAAEzI,OAAOqZ,OAAO,CAAC,EAAEtY,EAAEivB,eAAevnB,EAAE4oB,MAAMlpB,EAAEmF,EAAE0iB,OAAOvnB,EAAE,MAAM,GAAG1H,EAAEivB,OAAOqB,MAAM,CAAC/jB,EAAE0iB,OAAOqB,MAAMtwB,EAAEivB,OAAOqB,MAAM,MAAM5oB,EAAEzI,OAAOqZ,OAAO,CAAC,EAAEtY,EAAEivB,eAAevnB,EAAE4oB,MAAMlpB,EAAEmF,EAAE0iB,OAAOvnB,EAAE,MAAMN,EAAEmF,EAAE0iB,OAAOjvB,EAAEivB,QAAQ,IAAI,MAAMvnB,KAAK1H,EAAEovB,QAAQ,CAAC,MAAMjlB,EAAEnK,EAAEovB,QAAQ1nB,GAAGyC,EAAEoC,EAAE6iB,QAAQ1nB,GAAG6E,EAAE6iB,QAAQ1nB,GAAG6E,EAAE6iB,QAAQ1nB,GAAGmD,OAAOV,GAAGoC,EAAE6iB,QAAQ1nB,GAAGyC,EAAEnD,QAAQuF,EAAE6iB,QAAQ1nB,KAAK6E,EAAE6iB,QAAQ1nB,GAAGyC,EAAE,CAAC,OAAO7G,KAAKgrB,OAAO4E,SAAS5vB,KAAKgrB,OAAO4E,QAAQC,SAAS5mB,EAAE,CAACjJ,KAAKtD,IAAIuM,EAAEimB,iBAAiB,CAAC,MAAAY,CAAOpzB,GAAG,OAAOmK,GAAGnK,EAAEqzB,KAAK,wCAAwCpF,EAAEprB,KAAKS,KAAKtD,EAAE,CAAC,OAAAszB,CAAQtzB,GAAG,OAAOA,EAAE4R,MAAMie,QAAQ7vB,GAAGA,EAAEA,EAAEU,MAAM,KAAK4C,KAAKmrB,KAAK8E,MAAMvzB,EAAE,CAAC,IAAAwzB,CAAKxzB,EAAEuM,GAAGpC,GAAG7G,KAAKwsB,aAAa,gCAAgC,IAAIpoB,EAAEpE,KAAK,IAAI,IAAI6G,IAAI,GAAGU,OAAO7K,GAAGmK,EAAEyH,MAAMie,QAAQ1lB,GAAGA,EAAEA,EAAEzJ,MAAM,KAAKgH,EAAEA,EAAE+mB,KAAK+E,KAAKrpB,EAAEoC,EAAE7E,GAAG,OAAOA,EAAE2nB,OAAOC,SAAQ,EAAG5nB,CAAC,CAAC,IAAA+rB,CAAKzzB,GAAG,MAAMuM,EAAEjJ,KAAKirB,YAAYT,EAAE4C,cAAc1wB,EAAEf,OAAOwK,KAAK8C,EAAEmnB,YAAYvpB,GAAE,IAAK7G,KAAK+rB,OAAOC,QAAQ,+FAA+F,MAAM5nB,EAAE,OAAOpE,KAAK+rB,OAAOC,QAAQhsB,KAAK4rB,OAAOzrB,OAAO,EAAEH,KAAK+rB,OAAOC,QAAQnlB,EAAEzC,GAAG,GAAGA,EAAEpE,KAAK4rB,OAAOzrB,OAAO,uCAAuC,MAAMG,EAAEN,KAAKysB,QAAQ,IAAI,IAAI3oB,EAAEM,EAAEN,EAAExD,EAAEsrB,OAAOzrB,SAAS2D,EAAE,CAAC,MAAMM,EAAE9D,EAAEsrB,OAAO9nB,GAAGK,EAAEomB,EAAEnmB,GAAG,IAAI,MAAMmmB,KAAK7tB,EAAEuM,EAAEmnB,UAAU7F,GAAGpmB,EAAEzH,EAAE6tB,IAAI1jB,EAAE1C,EAAEiE,OAAOhE,EAAEgE,KAAK,2BAA2B9H,EAAEsrB,OAAO9nB,GAAGK,EAAE7D,EAAEurB,aAAaxa,IAAIlN,EAAEiE,QAAQhE,GAAG9D,EAAEurB,aAAaltB,IAAIwF,EAAEiE,KAAKjE,EAAE,CAAC,OAAO7D,EAAEyrB,OAAOC,SAAQ,EAAG1rB,EAAE4uB,iBAAiB,CAAC,WAAIlD,GAAUnlB,GAAG7G,KAAKwsB,aAAa,+DAA+D,MAAM9vB,EAAEsD,KAAKysB,QAAQ,OAAO/vB,EAAEqvB,OAAOC,QAAQtvB,EAAEkvB,OAAOzrB,OAAOzD,CAAC,CAAC,KAAI2zB,GAAI,OAAOrwB,KAAKgsB,OAAO,CAAC,MAAAsE,CAAO5zB,GAAGA,EAAE,GAAG6K,OAAO7K,GAAGmK,GAAG7G,KAAKwsB,aAAa,kCAAkC,IAAIvjB,EAAEjJ,KAAK,GAAGA,KAAK8rB,QAAQY,YAAY,IAAI,MAAMvJ,OAAO/e,EAAEuoB,SAASpC,KAAKvqB,KAAK8rB,QAAQY,YAAYhwB,EAAE6Z,SAASnS,KAAK6E,EAAEshB,EAAEthB,GAAGpC,EAAE2jB,EAAE8E,SAASrmB,GAAG,0BAA0B7E,EAAE,qCAAqC,OAAO6E,EAAEA,EAAEsnB,SAAS,CAACC,KAAKvnB,GAAGA,EAAEqnB,OAAO5zB,GAAGsjB,KAAI,IAAK/W,EAAE8iB,OAAOC,SAAQ,EAAG/iB,EAAEimB,iBAAiB,CAAC,MAAAuB,GAAS,OAAO7F,EAAEngB,SAASmgB,EAAEngB,SAASzK,MAAMA,IAAI,CAAC,QAAA0wB,CAASh0B,EAAEuM,GAAG,OAAO0S,EAAEgV,MAAMj0B,EAAEsD,KAAKiJ,EAAE,CAAC,aAAA2nB,CAAcl0B,EAAEuM,GAAG,OAAO0S,EAAEkV,WAAWn0B,EAAEsD,KAAKiJ,EAAE,CAAC,SAAA6nB,CAAUp0B,GAAG,iBAAiBA,IAAIA,EAAE,CAAC0L,KAAK1L,IAAImK,EAAEnK,GAAG,iBAAiBA,EAAE,mBAAmBmK,EAAEnK,EAAE0L,MAAM,iBAAiB1L,EAAE0L,KAAK,qBAAqB,IAAI,MAAMa,KAAKvM,EAAEmK,EAAE,MAAMoC,EAAE,GAAG,sCAAsC,MAAMA,EAAEtN,OAAOqZ,OAAO,CAAC,EAAEtY,GAAGuM,EAAE8nB,SAAS,GAAG9nB,EAAEukB,OAAOvkB,EAAEukB,QAAQvkB,EAAEb,KAAK,MAAMhE,EAAEpE,KAAKirB,YAAYyE,MAAMzmB,EAAEukB,QAAQjD,EAAEthB,EAAEzI,KAAKqG,EAAEzC,EAAE,eAAe6E,EAAEukB,QAAQ,MAAMltB,EAAEN,KAAKysB,QAAQ,GAAGlC,EAAE,CAAC1jB,EAAE,IAAIlL,OAAOwK,KAAKokB,GAAGpqB,QAAQxE,OAAOwK,KAAKokB,GAAGpqB,SAASH,KAAKirB,YAAYyE,MAAMzmB,EAAEb,MAAM5H,KAAKL,OAAO,8BAA8BH,KAAKT,KAAK0J,EAAEb,MAAM,IAAI,MAAM1L,KAAK6tB,EAAE,CAAC,IAAIzmB,EAAEymB,EAAE7tB,GAAG,GAAG0H,EAAE4sB,WAAW,CAAC,MAAM7sB,EAAEC,EAAE4sB,WAAW3f,IAAI3U,GAAG,GAAGyH,EAAE6b,KAAKwK,EAAEyG,aAAantB,GAAGmF,EAAE8nB,SAASlvB,KAAKnF,GAAG4D,EAAE4wB,iBAAiBptB,QAAQ,GAAGK,EAAEgtB,YAAYrtB,EAAEK,EAAEgtB,UAAUrtB,GAAGymB,EAAE7tB,GAAGoH,GAAGK,EAAEitB,OAAO,CAAC,MAAMnoB,EAAEuhB,EAAE6G,YAAYvtB,EAAEpH,EAAEyH,GAAG0C,GAAGoC,EAAEA,EAAE,eAAe,CAAC,MAAC,IAASnF,EAAEymB,EAAE7tB,GAAGoH,SAASymB,EAAE7tB,EAAE,CAAC,CAAC,OAAO0H,EAAEurB,QAAQrvB,EAAEgxB,YAAYroB,EAAEb,KAAK,CAACqkB,OAAM,IAAKnsB,EAAEurB,aAAaltB,IAAIsK,EAAEb,KAAKa,KAAI,IAAK3I,EAAEyrB,OAAOC,UAAU1rB,EAAEyrB,OAAOC,QAAQ,MAAM5nB,EAAEmtB,SAASjxB,EAAEsrB,OAAO4F,QAAQvoB,GAAG3I,EAAEsrB,OAAO/pB,KAAKoH,GAAG3I,CAAC,CAAC,SAAA2sB,CAAUvwB,EAAEuM,GAAG,OAAOwhB,EAAEgH,OAAOzxB,KAAKgrB,OAAOtuB,EAAEuM,EAAE,CAAC,aAAAyoB,CAAch1B,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,EAAE,CAAC,GAAG,MAAMwD,GAAE,IAAKxD,EAAEiT,MAAMvT,KAAK2rB,OAAO,CAAC,EAAExnB,EAAE7D,EAAEqxB,SAAStW,EAAE/H,MAAMtT,KAAKirB,YAAY0G,SAASrxB,EAAEqxB,UAAU3xB,KAAKirB,YAAY0G,SAAS,OAAO,IAAIjH,EAAEkH,OAAOl1B,EAAEuM,EAAE7E,EAAEN,EAAEK,EAAE0C,EAAE0jB,EAAE,CAAC,SAAAsH,CAAUn1B,GAAG,OAAOsD,KAAK2rB,OAAOjvB,EAAE,CAAC,SAAAo1B,CAAUp1B,GAAG,OAAOsD,KAAK6rB,aAAaxa,IAAI3U,EAAE,CAAC,WAAAq1B,CAAYr1B,GAAG,OAAOA,EAAE4R,MAAMie,QAAQ7vB,GAAGA,EAAEA,EAAEU,MAAM,KAAK4C,KAAKmrB,KAAK6G,OAAOt1B,EAAE,CAAC,OAAAu1B,CAAQv1B,EAAEuM,EAAE7E,EAAEyC,IAAIzC,EAAEzI,OAAOqZ,OAAO,CAAC,EAAE5Q,IAAI8tB,YAAW,EAAG9tB,EAAE+tB,YAAW,EAAGlpB,EAAEmpB,WAAW,MAAM7H,GAAG5O,EAAE+U,SAASh0B,EAAEsD,KAAKiJ,EAAE7E,EAAEyC,GAAGwrB,OAAO,OAAOppB,EAAEqpB,UAAU/H,CAAC,CAAC,QAAAgG,CAAS7zB,GAAG,OAAO8tB,EAAE4C,cAAc1wB,EAAE,CAAC,OAAO,OAAO,MAAM,WAAW6e,EAAEkW,OAAOzxB,KAAKtD,IAAIsD,IAAI,CAAC,eAAAkvB,GAAkB,OAAOroB,GAAG7G,KAAKwsB,aAAa,yCAAyCxsB,KAAKsrB,MAAMiH,QAAQvyB,KAAKmrB,KAAKoH,QAAQvyB,KAAKuwB,SAAS,CAACC,KAAK,CAAC9zB,GAAG0mB,OAAOna,EAAEb,KAAKhE,EAAEyO,KAAKhM,EAAEnI,IAAI6rB,MAAM,MAAMjqB,EAAEN,KAAKirB,YAAYhiB,GAAG7E,IAAIpE,KAAKirB,YAAYhiB,GAAG7E,GAAGmrB,UAAS,IAAKjvB,GAAGN,KAAKkxB,iBAAiBx0B,EAAE,CAAC81B,OAAOlyB,EAAE5B,IAAI6rB,GAAE,IAAKvqB,KAAKirB,YAAYwH,SAASzyB,KAAKirB,YAAYwH,QAAQzyB,MAAMA,KAAK+rB,OAAOC,SAAQ,EAAGhsB,IAAI,CAAC,gBAAAkxB,CAAiBx0B,GAAG81B,OAAOvpB,EAAEvK,IAAI0F,GAAG,CAAC,GAAGpE,KAAKsrB,MAAMiE,SAAS7yB,EAAEuM,GAAGjJ,KAAKmrB,KAAKoE,SAAS7yB,EAAE,CAACgC,IAAI0F,GAAG,CAAC,UAAAsuB,CAAWh2B,GAAG,OAAOsD,KAAKirB,YAAY0H,WAAWj2B,EAAE,CAAC,OAAAk2B,CAAQl2B,GAAG,OAAOsD,KAAKmrB,KAAK8E,MAAMvzB,EAAE,CAAC,gBAAAm2B,GAAmB,OAAO7yB,KAAKsrB,MAAMwH,OAAO,CAAC,SAAAjG,CAAUnwB,EAAEuM,EAAE7E,EAAE,CAAC,GAAGyC,EAAE,MAAMnK,EAAE,KAAKsD,KAAKwsB,aAAa,oCAAoC,MAAMjC,EAAEvqB,KAAKirB,YAAY1X,MAAM7W,IAAI,CAAC,EAAE,GAAG4D,EAAE2I,EAAEshB,EAAElI,WAAWpZ,OAAE,GAAQ3I,EAAE2I,EAAEjJ,KAAK2rB,OAAOjvB,IAAI,OAAOsD,KAAK,MAAM8D,GAAE,IAAKM,EAAEqoB,MAAMzsB,KAAKysB,QAAQzsB,KAAK,YAAO,IAASiJ,GAAGnF,EAAE6nB,OAAOjvB,GAAGuM,EAAEnF,EAAEotB,iBAAiBjoB,WAAWnF,EAAE6nB,OAAOjvB,GAAG,MAAMA,EAAE,KAAKoH,EAAEioB,OAAOC,SAAQ,GAAIloB,CAAC,CAAC,QAAAivB,CAASr2B,KAAKuM,GAAG,OAAOjJ,KAAKtD,GAAG8tB,EAAE1G,QAAQlc,QAAQrL,KAAKyD,QAAQiJ,EAAE,CAAC,UAAA+pB,CAAWt2B,EAAEuM,EAAE7E,GAAG,OAAOuX,EAAE+U,SAASh0B,EAAEsD,KAAKiJ,EAAE7E,EAAE,CAAC,OAAAirB,CAAQ3yB,GAAGA,EAAE6C,KAAKS,KAAKT,KAAK7C,EAAEsuB,OAAOhrB,KAAKgrB,OAAOtuB,EAAEqvB,OAAOpwB,OAAOqZ,OAAO,CAAC,EAAEhV,KAAK+rB,QAAQrvB,EAAEqvB,OAAOE,MAAM,CAAC,EAAEvvB,EAAEyuB,KAAKnrB,KAAKmrB,KAAKsB,QAAQ/vB,EAAE2uB,aAAarrB,KAAKqrB,aAAa3uB,EAAE+uB,QAAQzrB,KAAKyrB,SAASzrB,KAAKyrB,QAAQgB,QAAQ/vB,EAAEgvB,UAAU1rB,KAAK0rB,WAAW1rB,KAAK0rB,UAAUe,QAAQ/vB,EAAEkvB,OAAO5rB,KAAK4rB,OAAOloB,QAAQhH,EAAEmvB,aAAatB,EAAEvqB,KAAK6rB,aAAa,CAACoH,SAAQ,IAAKv2B,EAAE4uB,MAAMtrB,KAAKsrB,MAAMmB,QAAQ/vB,EAAEivB,OAAOhwB,OAAOqZ,OAAO,CAAC,EAAEhV,KAAK2rB,QAAQjvB,EAAE8uB,OAAO,KAAK9uB,EAAEovB,QAAQ,CAAC,EAAE,IAAI,MAAM7iB,KAAKjJ,KAAK8rB,QAAQpvB,EAAEovB,QAAQ7iB,GAAGjJ,KAAK8rB,QAAQ7iB,GAAGjJ,KAAK8rB,QAAQ7iB,GAAGvF,QAAQ,KAAKhH,EAAEw2B,QAAQ,CAAC,EAAE,IAAI,MAAMjqB,KAAKjJ,KAAKkzB,QAAQx2B,EAAEw2B,QAAQjqB,GAAGjJ,KAAKmzB,OAAOlqB,GAAG+F,KAAKtS,GAAG,OAAOA,CAAC,CAAC,KAAA02B,GAAQ,MAAM12B,EAAEsD,KAAKysB,QAAQ/vB,EAAEwuB,SAAS,MAAMjiB,EAAEvM,EAAEuuB,YAAYoI,MAAM,IAAI,MAAMjvB,KAAK6E,EAAE,CAAC,MAAMpC,EAAEoC,EAAE7E,GAAG1H,EAAEovB,QAAQ1nB,GAAGyC,EAAEysB,IAAI,CAAC,OAAO52B,EAAEwyB,iBAAiB,CAAC,QAAAvN,CAASjlB,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,OAAOomB,EAAE4C,cAAchpB,EAAE,WAAWyC,OAAE,IAASoC,EAAE,UAAUvM,EAAE,SAASmK,EAAE,mBAAmBoC,IAAI7E,EAAEmvB,QAAQ,+CAA+C,mBAAmBtqB,GAAG7E,EAAEmvB,UAAUtqB,EAAE,CAAC,CAACuhB,EAAE1G,QAAQyP,UAAS,EAAGA,QAAQtqB,IAAIjJ,KAAK6sB,UAAUnwB,EAAEuM,EAAE,CAAC,SAAAuqB,CAAU92B,EAAEuM,EAAE7E,GAAG,IAAIpE,KAAK8rB,QAAQG,MAAM,MAAM,CAACwF,OAAOzxB,MAAM,MAAM6G,EAAE,GAAG0jB,EAAE,GAAG,IAAI,IAAIjqB,EAAE,EAAEA,EAAEN,KAAK8rB,QAAQG,MAAM9rB,SAASG,EAAE,CAAC,MAAMwD,EAAE9D,KAAK8rB,QAAQG,MAAM3rB,GAAG,GAAGwD,EAAEyD,OAAO,CAACV,EAAEhF,KAAKiC,EAAEyD,QAAQgjB,EAAE1oB,KAAK,GAAGvB,YAAY,QAAQ,CAAC,MAAM6D,EAAEL,EAAEkc,IAAIlc,EAAEkc,IAAI5e,QAAQ1E,EAAEuM,EAAE7E,GAAG1H,EAAE8tB,EAAE1mB,EAAEirB,GAAG,CAACjrB,GAAGA,EAAEkrB,OAAOvE,EAAEF,EAAEpqB,OAAO,IAAI,IAAIsqB,EAAE,EAAEA,EAAED,EAAErqB,SAASsqB,EAAE,CAAC,MAAMsE,GAAGrE,EAAE/lB,KAAKgmB,EAAEsE,UAAU9T,GAAGqP,EAAEC,GAAGpP,EAAE,GAAG/a,IAAIwD,EAAEkrB,OAAO,IAAIvE,EAAE,KAAK,GAAGC,EAAEuH,QAAQ9tB,EAAE8E,EAAEwqB,KAAK/I,EAAE,GAAGrP,QAAQjX,IAAI,GAAGumB,EAAE,CAAC,MAAMrqB,EAAE2I,EAAEyqB,SAAS,IAAIzqB,EAAE4J,KAAK,GAAGwI,UAAUpS,EAAE0qB,UAAU1qB,EAAE2qB,UAAUnC,OAAO3tB,EAAEoJ,GAAG/I,GAAGwmB,EAAE6I,UAAU92B,EAAE4D,EAAE8D,GAAGyC,EAAEhF,KAAKiC,GAAGymB,EAAE1oB,KAAK,GAAGwZ,SAASlX,EAAE,IAAIA,KAAK,MAAM,KAAK,OAAO,GAAGgX,EAAE,CAAC,MAAM7a,EAAE2I,EAAEyqB,SAAS,IAAIzqB,EAAE4J,KAAK,GAAGwI,eAAepS,EAAE0qB,UAAU1qB,EAAE2qB,UAAUnC,OAAO3tB,EAAEoJ,GAAG/I,GAAGgX,EAAEqY,UAAU92B,EAAE4D,EAAE8D,GAAGyC,EAAEhF,KAAKiC,GAAGymB,EAAE1oB,KAAK,GAAGwZ,cAAclX,EAAE,IAAIA,KAAK,MAAM,KAAK,CAAC,CAAC,GAAGL,EAAE+vB,OAAOtJ,EAAEpqB,OAAOsqB,EAAE,KAAK,CAAC,MAAMnqB,EAAEiqB,EAAEltB,KAAK,MAAM,GAAG4L,EAAE6qB,SAASrD,OAAOrC,MAAMnlB,EAAE,OAAO,OAAO3I,IAAIA,EAAE,MAAM,CAACmxB,OAAOzxB,MAAM,IAAIiJ,EAAE6qB,SAASrD,OAAOsD,QAAQ/zB,KAAK+rB,OAAOE,MAAM3rB,GAAG,MAAM,CAACmxB,OAAOzxB,KAAK+rB,OAAOE,MAAM3rB,GAAG4M,GAAG5M,GAAG,IAAIwD,EAAE9D,KAAKA,KAAKirB,YAAY+I,WAAWlwB,EAAE9D,KAAKirB,YAAY+I,SAASh0B,KAAKtD,EAAEuM,EAAE7E,IAAI,IAAI,MAAM1H,KAAKmK,EAAE/C,EAAEA,EAAEyD,OAAO7K,GAAG,OAAOsD,KAAKgrB,OAAO4E,SAAS5vB,KAAKgrB,OAAO4E,QAAQC,SAAS/rB,EAAE,CAAC9D,QAAQ6G,IAAI7G,KAAK+rB,OAAOE,MAAM3rB,GAAGwD,EAAE,CAAC2tB,OAAO3tB,EAAEoJ,GAAG5M,EAAE,CAAC,MAAA+sB,CAAO3wB,EAAEuM,EAAE7E,EAAE,CAAC,GAAGyC,GAAG7G,KAAKwsB,aAAa,cAAc9vB,sBAAsB,MAAM6tB,EAAEvqB,KAAKysB,QAAQ,OAAOlC,EAAEuB,QAAQpvB,KAAK0H,EAAE8oB,WAAW3C,EAAEuB,QAAQpvB,GAAG,IAAI0H,EAAEkpB,OAAO/C,EAAEuB,QAAQpvB,GAAGmF,KAAKoH,GAAGshB,EAAEuB,QAAQpvB,GAAGmF,QAAQoH,GAAGshB,EAAEwB,OAAOC,SAAQ,EAAGzB,CAAC,CAAC,UAAAiC,GAAa,OAAO,OAAOxsB,KAAK+rB,OAAOC,UAAS,IAAKhsB,KAAK+rB,OAAOC,OAAO,CAAC,WAAAsF,CAAY50B,EAAEuM,EAAE,CAAC,GAAG,IAAIjJ,KAAK6rB,aAAapW,IAAI/Y,GAAG,OAAOsD,KAAK,MAAMoE,GAAE,IAAK6E,EAAEwjB,MAAMzsB,KAAKysB,QAAQzsB,KAAKoE,EAAEynB,aAAa7sB,OAAOtC,GAAG,MAAMmK,EAAE,GAAG,IAAI,IAAIoC,EAAE,EAAEA,EAAE7E,EAAEwnB,OAAOzrB,SAAS8I,EAAE,CAAC,MAAMshB,EAAEnmB,EAAEwnB,OAAO3iB,GAAGshB,EAAEniB,OAAO1L,GAAG6tB,EAAEkF,KAAK5oB,EAAEhF,KAAK0oB,GAAGnmB,EAAEooB,cAAcvjB,EAAE7E,EAAE2nB,OAAOC,WAAW5nB,EAAE2nB,OAAOC,OAAO,CAAC,OAAO5nB,EAAEwnB,OAAO/kB,EAAEzC,CAAC,CAAC,OAAAioB,CAAQ3vB,EAAEuM,GAAGuhB,EAAE4B,WAAW1vB,EAAEuM,EAAEvF,MAAM,GAAG,IAAI,MAAMU,EAAEpE,KAAKysB,QAAQlC,EAAE7tB,EAAE,KAAK8tB,EAAE1G,QAAQoJ,SAAS,GAAG3C,IAAI7tB,EAAEA,EAAEgH,MAAM,KAAKU,EAAE6E,IAAIvM,EAAEyD,OAAOiE,EAAE6E,GAAG,IAAI1I,EAAEgqB,IAAInmB,EAAE6E,GAAGvM,EAAEyD,OAAO,IAAII,EAAE,KAAK6D,EAAE8qB,oBAAoB9qB,EAAE6E,GAAG,OAAO7E,EAAEmmB,GAAGnmB,EAAE6E,GAAGikB,WAAW,IAAI,MAAM3C,KAAK7tB,EAAE,CAACmK,OAAE,IAAS0jB,EAAE,kDAAkD1jB,EAAE0jB,IAAIC,EAAE1G,QAAQoJ,SAAS,oCAAoC,MAAMxwB,EAAE,cAAcuM,EAAE,UAAU,YAAY7E,EAAE1H,KAAK0H,EAAE1H,GAAG6U,OAAOgZ,GAAGnmB,EAAE1H,GAAGyD,SAAS0G,EAAE,YAAYoC,IAAI7E,EAAEunB,OAAOoC,KAAK,wBAAwBxD,EAAE,iEAAiEnmB,EAAE1H,GAAG,OAAO0H,EAAE6E,GAAGgM,IAAIsV,EAAEnmB,EAAEknB,MAAM,CAAC,OAAOlnB,CAAC,IAAIymB,EAAEC,KAAKlvB,UAAU4uB,EAAE1G,QAAQmQ,KAAK,CAACnU,QAAQ0K,EAAE1K,QAAQoU,QAAQzJ,EAAEyJ,QAAQrd,KAAK,UAAUgU,EAAEC,KAAKlvB,UAAUu4B,aAAY,EAAGtJ,EAAEC,KAAKlvB,UAAUw4B,KAAKvJ,EAAEC,KAAKlvB,UAAUiyB,QAAQhD,EAAEC,KAAKlvB,UAAUy4B,SAASxJ,EAAEC,KAAKlvB,UAAUiyB,QAAQhD,EAAEC,KAAKlvB,UAAU04B,MAAMzJ,EAAEC,KAAKlvB,UAAUizB,MAAMhE,EAAEC,KAAKlvB,UAAU24B,MAAM1J,EAAEC,KAAKlvB,UAAU4yB,SAAS3D,EAAEC,KAAKlvB,UAAU44B,IAAI3J,EAAEC,KAAKlvB,UAAUiyB,QAAQhD,EAAEC,KAAKlvB,UAAUkT,QAAQ+b,EAAEC,KAAKlvB,UAAUqyB,MAAMpD,EAAEC,KAAKlvB,UAAU0yB,YAAYzD,EAAEC,KAAKlvB,UAAUqyB,MAAMvxB,EAAEN,QAAQ,IAAIyuB,EAAEC,MAAM,KAAK,CAACpuB,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAACskB,IAAI,IAAIqM,UAAU,IAAIC,IAAI,CAAC,YAAY,UAAU,SAAS,YAAYzrB,EAAEkmB,SAAS,CAACC,UAAU1yB,GAAG,IAAIoH,EAAE6wB,MAAMj4B,IAAIoH,EAAE6wB,MAAM,MAAM,WAAA5J,CAAYruB,EAAE,CAAC,GAAG4D,EAAE8sB,cAAc1wB,EAAE,CAAC,QAAQmK,OAAE,IAASnK,EAAE0rB,KAAK1rB,EAAE0rB,KAAK1rB,EAAE0rB,IAAI,GAAGwM,SAASl4B,EAAE0rB,KAAK,0BAA0BpoB,KAAK60B,KAAKn4B,EAAE0rB,KAAKtkB,EAAEskB,IAAIpoB,KAAK80B,KAAK,IAAI32B,IAAI6B,KAAK+0B,MAAM,IAAIjxB,EAAEkxB,IAAI,CAAC,UAAI70B,GAAS,OAAOH,KAAK80B,KAAKG,IAAI,CAAC,GAAAt2B,CAAIjC,EAAEuM,GAAG,GAAG,OAAOvM,IAAIoH,EAAE2wB,UAAUhf,WAAW/Y,GAAG,OAAO,IAAI0H,EAAEpE,KAAK80B,KAAKzjB,IAAI3U,GAAG,GAAG0H,EAAE,OAAOA,EAAE/H,MAAM4M,OAAOjJ,KAAK+0B,MAAMG,MAAM9wB,GAAGA,EAAEpE,KAAK+0B,MAAMvD,QAAQ,CAAC9yB,IAAIhC,EAAEL,MAAM4M,IAAIjJ,KAAK80B,KAAKn2B,IAAIjC,EAAE0H,GAAGpE,KAAKm1B,UAAU,CAAC,GAAA9jB,CAAI3U,GAAG,MAAMuM,EAAEjJ,KAAK80B,KAAKzjB,IAAI3U,GAAG,GAAGuM,EAAE,OAAOjJ,KAAK+0B,MAAMG,MAAMjsB,GAAGshB,EAAEthB,EAAE5M,MAAM,CAAC,QAAA84B,GAAW,GAAGn1B,KAAK80B,KAAKG,KAAKj1B,KAAK60B,KAAK,CAAC,MAAMn4B,EAAEsD,KAAK+0B,MAAMpiB,MAAM3S,KAAK80B,KAAK91B,OAAOtC,EAAEgC,IAAI,CAAC,GAAGoF,EAAEkxB,KAAK,MAAM,WAAAjK,GAAc/qB,KAAKo1B,KAAK,KAAKp1B,KAAKq1B,KAAK,IAAI,CAAC,OAAA7D,CAAQ90B,GAAG,OAAOA,EAAEoD,KAAK,KAAKpD,EAAE+jB,KAAKzgB,KAAKq1B,KAAKr1B,KAAKq1B,OAAOr1B,KAAKq1B,KAAKv1B,KAAKpD,GAAGsD,KAAKq1B,KAAK34B,EAAEsD,KAAKo1B,OAAOp1B,KAAKo1B,KAAK14B,GAAGA,CAAC,CAAC,KAAAw4B,CAAMx4B,GAAGA,IAAIsD,KAAKq1B,OAAOr1B,KAAKs1B,QAAQ54B,GAAGsD,KAAKwxB,QAAQ90B,GAAG,CAAC,GAAAiW,GAAM,OAAO3S,KAAKs1B,QAAQt1B,KAAKo1B,KAAK,CAAC,OAAAE,CAAQ54B,GAAG,MAAMoD,KAAKmJ,EAAEwX,KAAKrc,GAAG1H,EAAE,OAAOuM,EAAEwX,KAAKrc,EAAEA,IAAIA,EAAEtE,KAAKmJ,GAAGvM,IAAIsD,KAAKo1B,OAAOp1B,KAAKo1B,KAAKnsB,GAAGvM,EAAE+jB,KAAK,KAAK/jB,EAAEoD,KAAK,KAAKpD,CAAC,EAAC,EAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAM,IAAIN,EAAEK,EAAE,MAAMqmB,EAAE,CAAC+K,QAAQ,gWAAgWtsB,EAAE6W,QAAQxf,EAAEwf,QAAQ7W,EAAEusB,SAAS,CAACtD,YAAW,EAAGuD,cAAa,EAAGC,WAAU,EAAG/S,OAAM,EAAG1b,QAAQ,KAAKynB,SAAQ,EAAGiH,WAAW,MAAMtD,OAAO,CAACuD,YAAW,EAAGpoB,MAAM,OAAOqoB,SAAS,KAAK5U,QAAO,EAAG6U,OAAM,EAAGC,KAAK,CAACvoB,MAAM,IAAIvL,MAAM,OAAOisB,WAAU,EAAGyD,SAAS,CAAC,EAAEqE,gBAAe,EAAGC,YAAW,EAAGtI,SAAS,WAAWuI,eAAc,EAAGC,cAAa,EAAGhI,UAAS,GAAIllB,EAAE6a,QAAQ,CAACmQ,IAAIx4B,OAAO26B,IAAI,oBAAoBC,YAAY56B,OAAO,eAAe66B,YAAY76B,OAAO,eAAe42B,OAAO52B,OAAO,UAAU83B,QAAQ93B,OAAO,WAAWyxB,SAASzxB,OAAO,YAAYmM,OAAOnM,OAAO,UAAUwyB,MAAMxyB,OAAO,SAASukB,IAAIvkB,OAAO,OAAO86B,SAAS96B,OAAO,YAAY8gB,OAAO9gB,OAAO,WAAWwN,EAAEmkB,cAAc,SAAS1wB,EAAEuM,EAAE7E,EAAE,WAAWyC,EAAEnK,GAAG,iBAAiBA,IAAI4R,MAAMie,QAAQ7vB,GAAG,kCAAkC,MAAM6tB,EAAE5uB,OAAOwK,KAAKzJ,GAAGoW,QAAQpW,IAAIuM,EAAEsN,SAAS7Z,KAAKmK,EAAE,IAAI0jB,EAAEpqB,OAAO,GAAGiE,2BAA2BmmB,IAAI,EAAEthB,EAAEolB,iBAAiB,SAAS3xB,GAAGyH,EAAEA,GAAGC,EAAE,MAAM,MAAM6E,EAAE9E,EAAEmqB,YAAYoC,SAASh0B,GAAG,GAAGuM,EAAErE,MAAM,MAAM,IAAI2lB,EAAE,CAACthB,EAAErE,MAAM4xB,QAAQ,GAAG7Y,SAAS,EAAE1U,EAAEwtB,QAAQ,SAAS/5B,EAAEuM,EAAE7E,GAAG,OAAOA,GAAG,IAAI,IAAI,OAAO1H,IAAIuM,EAAE,IAAI,IAAI,OAAOvM,EAAEuM,EAAE,IAAI,IAAI,OAAOvM,EAAEuM,EAAE,IAAI,KAAK,OAAOvM,GAAGuM,EAAE,IAAI,KAAK,OAAOvM,GAAGuM,EAAE,EAAEA,EAAEoZ,QAAQ,SAAS3lB,EAAEuM,GAAG,YAAO,IAASvM,EAAEuM,EAAEvM,CAAC,EAAEuM,EAAEytB,UAAU,SAASh6B,GAAG,OAAO8tB,EAAE+K,QAAQ3H,KAAKlxB,EAAE,EAAEuM,EAAE0tB,SAAS,SAASj6B,GAAG,MAAM,iBAAiBA,IAAIk6B,MAAMl6B,EAAE,EAAEuM,EAAEgoB,aAAa,SAASv0B,GAAG,QAAQA,IAAIA,EAAEuM,EAAE6a,QAAQ9D,MAAMtjB,EAAEuM,EAAE6a,QAAQyS,UAAU,EAAEttB,EAAEqmB,SAAS,SAAS5yB,EAAE0H,EAAE,CAAC,GAAG,MAAMmmB,EAAE7tB,GAAGA,EAAEuM,EAAE6a,QAAQmQ,KAAK,QAAQ1J,IAAI1jB,EAAEzC,EAAEyyB,QAAQtM,EAAEzK,UAAU7W,EAAE6W,QAAQ,iDAAgD,EAAG,EAAE7W,EAAE6tB,SAAS,SAASp6B,GAAG,OAAOA,EAAEuM,EAAE6a,QAAQvH,OAAO,EAAEtT,EAAE8tB,MAAM,SAASr6B,GAAG,OAAOgX,OAAOsjB,cAAct6B,IAAIA,GAAG,CAAC,EAAEuM,EAAEqlB,YAAY,SAAS5xB,EAAEmK,GAAG/C,EAAEA,GAAGM,EAAE,MAAM1H,EAAEA,GAAG,CAAC,EAAEmK,EAAEA,GAAG,CAAC,EAAE,MAAM0jB,EAAE5uB,OAAOqZ,OAAO,CAAC,EAAEtY,EAAEmK,GAAG,OAAOA,EAAEwrB,QAAQ31B,EAAE21B,SAAS9H,EAAE8H,OAAO12B,OAAOqZ,OAAO,CAAC,EAAEtY,EAAE21B,OAAOxrB,EAAEwrB,QAAQ9H,EAAE8H,OAAO0D,KAAKp6B,OAAOqZ,OAAO,CAAC,EAAEtY,EAAE21B,OAAO0D,KAAKlvB,EAAEwrB,OAAO0D,OAAOlvB,EAAE8qB,WAAWpH,EAAEoH,SAAS7tB,EAAEowB,QAAQrtB,EAAE8qB,SAASj1B,EAAEi1B,kBAAkBpH,EAAEthB,EAAE6a,QAAQmK,OAAO1D,CAAC,EAAEthB,EAAEguB,YAAY,SAASv6B,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,IAAI,OAAO1H,GAAG,CAAC,MAAMA,GAAG,WAAM,IAASA,EAAEmW,KAAKnW,EAAEmW,KAAK5J,EAAE,IAAIvM,EAAEmW,KAAKnW,EAAEmW,KAAK5J,EAAE7E,EAAE8yB,SAASx6B,EAAEihB,QAAQ,GAAGjhB,EAAEihB,YAAYjhB,EAAEmW,SAASnW,CAAC,CAAC,EAAEuM,EAAEooB,YAAY,SAAS30B,EAAE0H,GAAGgtB,OAAOvqB,EAAE8W,QAAQ4M,IAAI,GAAGthB,EAAEqmB,SAASzoB,GAAG,CAAC,MAAMoC,EAAEpC,EAAE6pB,SAASh0B,GAAG,IAAIuM,EAAErE,MAAM,OAAO,OAAOqE,EAAErE,MAAM+Y,OAAO,CAAC,IAAI9W,EAAEnK,GAAG,OAAO0H,EAAE,GAAGA,KAAKmmB,IAAIA,CAAC,EAAEthB,EAAEmjB,WAAW,SAAS1vB,EAAEuM,GAAG,IAAI,MAAM7E,KAAK1H,EAAEmK,GAAGyH,MAAMie,QAAQnoB,GAAG,4CAA4C6E,EAAE,GAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAAC,EAAEmF,EAAEwoB,OAAO,SAAS/0B,EAAEuM,EAAE7E,EAAE,CAAC,GAAGmmB,EAAE6C,cAAchpB,EAAE,CAAC,aAAa,aAAa,IAAI,OAAON,EAAE2tB,OAAO/0B,EAAEuM,EAAE7E,EAAE,CAAC,MAAM1H,GAAG,MAAM0H,EAAE+yB,iBAAY,IAASz6B,EAAEmW,OAAOnW,EAAEihB,QAAQ,GAAGjhB,EAAEihB,YAAYjhB,EAAEmW,SAASnW,CAAC,CAAC,EAAEoH,EAAE2tB,OAAO,SAAS/0B,EAAEuM,EAAE7E,GAAGyC,OAAE,IAASoC,EAAE,4BAA4BqF,MAAMie,QAAQtjB,KAAKpC,EAAEoC,EAAE9I,OAAO,8BAA8B,IAAI8I,EAAE9I,SAAS8I,EAAEA,EAAE,KAAK,MAAM3I,EAAE,CAAC2I,KAAKpC,KAAI,IAAKzC,EAAE8oB,SAASjkB,EAAE4lB,MAAMnyB,EAAEwwB,YAAYrmB,GAAGoC,EAAE4lB,SAAShoB,GAAG,GAAG/C,EAAEszB,OAAOnuB,GAAG,OAAO3I,EAAE5D,EAAEuM,GAAG,GAAG,mBAAmBA,EAAE,OAAOvM,EAAE26B,OAAOpuB,GAAG,GAAGpC,EAAE,iBAAiBoC,EAAE,iCAAiCA,GAAGshB,EAAE0G,aAAahoB,GAAG,OAAO3I,EAAE5D,EAAEuM,GAAG,GAAGshB,EAAE+E,SAASrmB,GAAG,OAAOA,EAAE,GAAGqF,MAAMie,QAAQtjB,GAAG,CAAC,IAAI,MAAM7E,KAAK6E,EAAE,IAAInF,EAAEszB,OAAOhzB,GAAG,OAAO1H,EAAE46B,eAAeC,OAAOtuB,GAAG,OAAO3I,EAAE5D,KAAKuM,EAAE,CAAC,OAAOA,aAAauuB,OAAO96B,EAAE+F,SAASg1B,MAAMxuB,GAAGA,aAAa+a,KAAK1jB,EAAE5D,EAAEg7B,OAAOzuB,IAAIpC,EAAElL,OAAO0D,eAAe4J,KAAKtN,OAAO0D,eAAe,CAAC,GAAG,yCAAyC3C,EAAEknB,SAASzd,KAAK8C,GAAG,EAAEA,EAAE+W,IAAI,SAAStjB,EAAEuM,GAAG,OAAO3I,EAAEq3B,MAAMj7B,GAAGA,EAAE4D,EAAEoM,OAAOhQ,EAAEuM,EAAE,EAAEA,EAAEirB,QAAQ,SAASx3B,EAAE0H,EAAE9D,EAAE,CAAC,GAAGiqB,EAAE6C,cAAc9sB,EAAE,CAAC,WAAW,MAAM6D,EAAEC,GAAGA,EAAEmmB,EAAEzG,QAAQmQ,KAAK,GAAG9vB,EAAE,OAAO0C,EAAEvG,EAAEu2B,QAAQ1yB,EAAE2b,UAAUyK,EAAEzK,QAAQ,gDAAgD3b,EAAE2b,QAAQyK,EAAEzK,SAAS1b,EAAE,GAAG,iBAAiBA,IAAI9D,EAAEu2B,OAAO,OAAO5tB,EAAEwoB,OAAO/0B,EAAE0H,EAAE,CAAC+yB,YAAW,IAAK,MAAM3M,EAAE1mB,EAAE8zB,KAAKxzB,GAAG,OAAOomB,EAAEA,EAAE0J,QAAQ1J,EAAE3T,KAAKzS,GAAG6E,EAAEwoB,OAAO/0B,EAAE0H,EAAE,CAAC+yB,YAAW,GAAI,EAAErzB,EAAE8zB,KAAK,SAASl7B,GAAG,GAAG,iBAAiBA,EAAE,OAAO,KAAK,GAAG4R,MAAMie,QAAQ7vB,GAAG,CAAC,IAAI,MAAMuM,KAAKvM,EAAE,CAAC,MAAMA,EAAEoH,EAAE8zB,KAAK3uB,GAAG,GAAGvM,EAAE,OAAOA,CAAC,CAAC,OAAO,IAAI,CAAC,MAAMuM,EAAEvM,EAAE6tB,EAAEzG,QAAQmQ,KAAK,GAAGhrB,EAAE,MAAM,CAAC4N,KAAKna,EAAEuM,EAAE4N,MAAMqd,QAAQjrB,EAAEirB,SAASrtB,EAAElL,OAAO0D,eAAe3C,KAAKf,OAAO0D,eAAe,CAAC,GAAG,yCAAyC,IAAI,MAAM4J,KAAKvM,EAAE,CAAC,MAAM0H,EAAEN,EAAE8zB,KAAKl7B,EAAEuM,IAAI,GAAG7E,EAAE,OAAOA,CAAC,CAAC,OAAO,IAAI,EAAEN,EAAEszB,OAAO,SAAS16B,GAAG,OAAO,OAAOA,GAAG,CAAC,UAAU,SAAS,UAAU6Z,gBAAgB7Z,EAAE,EAAEuM,EAAE6lB,KAAK,SAASpyB,EAAE0H,EAAED,GAAG,QAAG,IAASA,IAAI0C,EAAEzC,GAAG,iBAAiBA,EAAE,mBAAmBD,EAAEC,EAAEA,EAAE9D,EAAEoM,OAAO,MAAM4B,MAAMie,QAAQpoB,KAAKA,EAAE,CAAC6qB,OAAO7qB,IAAIomB,EAAE6C,cAAcjpB,EAAE,CAAC,KAAK,MAAM,OAAO,YAAY,SAAS,UAAUomB,EAAE+E,SAASlrB,GAAG,OAAOyC,OAAE,IAAS1C,EAAE4qB,GAAG,gDAAgDloB,OAAE,IAAS1C,EAAEqwB,IAAI,iDAAiD3tB,OAAE,IAAS1C,EAAE6qB,OAAO,oDAAoDlrB,EAAE+zB,UAAUn7B,EAAE,CAACqyB,GAAG3qB,EAAEO,KAAKR,EAAEQ,KAAKsqB,UAAU9qB,EAAE8qB,UAAU4E,MAAM1vB,EAAE0vB,QAAQ,GAAGhtB,EAAEvG,EAAEq3B,MAAMvzB,IAAI,iBAAiBA,EAAE,qBAAqBA,GAAGyC,OAAE,IAAS1C,EAAEqwB,UAAK,IAASrwB,EAAE4qB,GAAG,uCAAkC,IAAS5qB,EAAE6qB,OAAO,CAAC,IAAIxE,EAAErmB,OAAE,IAASA,EAAEqwB,MAAMhK,EAAE,CAACuE,GAAG5qB,EAAEqwB,IAAI7vB,KAAKR,EAAE8qB,UAAUA,UAAU9qB,EAAEQ,KAAKkvB,MAAM1vB,EAAE0vB,QAAQ,IAAIpJ,OAAE,IAASD,EAAEuE,GAAGryB,EAAEuwB,UAAUzC,EAAEuE,IAAIryB,EAAEsuB,OAAO6C,QAAQ,MAAK,EAAG,EAAE,IAAIW,WAAW,OAAO3nB,OAAE,IAAS2jB,EAAE7lB,WAAM,IAAS6lB,EAAEyE,UAAU,sEAAsEpoB,OAAE,IAAS2jB,EAAEqJ,YAAO,IAASrJ,EAAE7lB,WAAM,IAAS6lB,EAAEyE,UAAU,+DAA0D,IAAS9qB,EAAE4qB,IAAIzuB,EAAEq3B,MAAMxzB,EAAE4qB,KAAKxE,EAAE+E,SAASnrB,EAAE4qB,MAAMtE,EAAEA,EAAE+D,YAAY1qB,EAAE+zB,UAAUn7B,EAAE,CAACsjB,IAAI/W,EAAE+W,IAAI5b,GAAG2qB,GAAGtE,EAAE9lB,KAAK6lB,EAAE7lB,KAAKsqB,UAAUzE,EAAEyE,UAAU4E,MAAMrJ,EAAEqJ,OAAO,CAAChtB,EAAEyH,MAAMie,QAAQpoB,EAAE6qB,QAAQ,6BAA6BnoB,OAAE,IAAS1C,EAAE4qB,GAAG,qCAAqCloB,OAAE,IAAS1C,EAAEqwB,IAAI,sCAAsC3tB,OAAE,IAAS1C,EAAEQ,KAAK,uCAAuC,MAAM6lB,EAAE,CAACxK,IAAI/W,EAAE+W,IAAI5b,GAAG4qB,OAAO,GAAG6E,MAAM1vB,EAAE0vB,OAAO,IAAI,IAAI5qB,EAAE,EAAEA,EAAE9E,EAAE6qB,OAAO7uB,SAAS8I,EAAE,CAAC,MAAM7E,EAAED,EAAE6qB,OAAO/lB,GAAGnF,EAAEmF,IAAI9E,EAAE6qB,OAAO7uB,OAAO,EAAEoqB,EAAE6C,cAAchpB,EAAEN,EAAE,CAAC,KAAK,OAAO,aAAa,CAAC,KAAK,SAAS+C,OAAE,IAASzC,EAAE2qB,GAAG,iCAAiCloB,OAAE,IAASzC,EAAEO,KAAK,mCAAmC,MAAM8lB,EAAE,CAACsE,GAAGryB,EAAEuwB,UAAU7oB,EAAE2qB,IAAIpqB,KAAKjI,EAAEuwB,UAAU7oB,EAAEO,OAAO,GAAGrE,EAAEq3B,MAAMvzB,EAAE2qB,KAAKxE,EAAE+E,SAASlrB,EAAE2qB,MAAMtE,EAAEsE,GAAGtE,EAAEsE,GAAGP,YAAY1qB,EAAE,CAAC+C,OAAE,IAAS1C,EAAE8qB,gBAAW,IAAS7qB,EAAE6qB,UAAU,4DAA4D,MAAMhmB,OAAE,IAAS9E,EAAE8qB,UAAU9qB,EAAE8qB,UAAU7qB,EAAE6qB,eAAU,IAAShmB,IAAIpC,OAAE,IAAS2jB,EAAEqJ,MAAM,2CAA2CpJ,EAAEwE,UAAUvyB,EAAEuwB,UAAUhkB,GAAG,CAACuhB,EAAEwE,OAAOntB,KAAK4oB,EAAE,CAAC,OAAOD,CAAC,EAAE1mB,EAAE+zB,UAAU,SAASn7B,EAAEuM,GAAG,IAAI,MAAM7E,IAAI,CAAC,OAAO,kBAAa,IAAS6E,EAAE7E,UAAU6E,EAAE7E,GAAG6E,EAAE7E,GAAG1H,EAAEuwB,UAAUhkB,EAAE7E,IAAI,OAAO6E,CAAC,GAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAM6E,EAAE2oB,OAAO,MAAM,WAAA7G,CAAYruB,EAAE0H,EAAEyC,EAAE0jB,EAAEjqB,EAAEwD,EAAEK,GAAG,GAAGnE,KAAKnD,KAAKH,EAAEsD,KAAKuT,MAAMgX,EAAEvqB,KAAK2xB,SAASrxB,EAAEN,KAAK6S,KAAK/O,EAAE+O,KAAK7S,KAAKiuB,MAAM9pB,EAAEnE,KAAK6P,MAAM/L,EAAE9D,KAAK3D,MAAM+H,EAAEpE,KAAK2d,QAAQ,KAAK3d,KAAKu2B,SAAS,KAAKv2B,KAAK83B,MAAMjxB,GAAG,CAAC,EAAE7G,KAAK83B,MAAMtqB,MAAMvE,EAAEuE,MAAMxN,KAAKuT,MAAMvT,KAAK6P,MAAM7P,KAAKiuB,MAAMjuB,KAAK2xB,eAAU,IAAS3xB,KAAK3D,OAAO2D,KAAK83B,MAAMj8B,eAAe,WAAWmE,KAAK83B,MAAMz7B,MAAM2D,KAAK3D,OAAO2D,KAAK6S,KAAK1S,OAAO,CAAC,MAAMzD,EAAEsD,KAAK6S,KAAK7S,KAAK6S,KAAK1S,OAAO,GAAG,iBAAiBzD,IAAIsD,KAAK83B,MAAMp5B,IAAIhC,EAAE,CAAC,CAAC,YAAAq7B,CAAar7B,GAAG,GAAGsD,KAAKu2B,SAAS75B,GAAGsD,KAAKuT,MAAM/F,OAAO,IAAIxN,KAAK6S,KAAK1S,OAAO,CAAC,MAAMzD,EAAEsD,KAAKg4B,UAAUh4B,KAAKu2B,SAAS,QAAQ75B,IAAIsD,KAAK83B,MAAMtqB,MAAM9Q,EAAE,CAAC,CAAC,QAAAX,GAAW,GAAGiE,KAAK2d,QAAQ,OAAO3d,KAAK2d,QAAQ,MAAMjhB,EAAEsD,KAAKnD,KAAK,IAAImD,KAAKiuB,MAAMoE,OAAOpR,OAAO,OAAOjhB,KAAKnD,KAAK,MAAMoM,EAAEjJ,KAAKg4B,UAAUh4B,KAAKu2B,WAAWv2B,KAAKg4B,UAAUh4B,KAAKiuB,MAAM0D,WAAW3xB,KAAKg4B,UAAUh4B,KAAK2xB,UAAU,YAAO,IAAS1oB,EAAE,eAAevM,kFAAkFsD,KAAK2d,QAAQ1U,EAAEgY,OAAOjhB,KAAK3D,MAAM2D,KAAK6P,MAAM7P,KAAKiuB,MAAMjuB,KAAK83B,MAAM,CAACzF,OAAOryB,KAAKiuB,MAAMoE,OAAOV,SAAS,CAAC3xB,KAAKiuB,MAAM0D,SAAS3xB,KAAK2xB,YAAY3xB,KAAKiuB,MAAMoE,OAAO7kB,QAAQxN,KAAK2d,QAAQ3d,KAAK2d,QAAQsa,QAAQ,OAAO,IAAIC,QAAQl4B,KAAK2d,QAAQ,CAAC,SAAAqa,CAAUt7B,EAAE0H,GAAG,OAAO6E,EAAEstB,SAASv2B,KAAK3D,MAAMK,EAAE0H,GAAGpE,KAAKnD,KAAKmD,KAAK6P,MAAM7P,KAAKiuB,MAAM,GAAGhlB,EAAE4J,KAAK,SAASnW,GAAG,IAAIuM,EAAE,GAAG,IAAI,MAAM7E,KAAK1H,EAAE,iBAAiB0H,IAAI,iBAAiBA,GAAG6E,IAAIA,GAAG,KAAKA,GAAG7E,GAAG6E,GAAG,IAAI7E,MAAM,OAAO6E,CAAC,EAAEA,EAAEstB,SAAS,SAAS75B,EAAEuM,EAAE7E,EAAEyC,EAAE/C,GAAG,IAAImF,EAAE,OAAO,GAAG3I,EAAE63B,WAAWlvB,GAAG,MAAM,SAAS7E,EAAE6E,EAAE,KAAK,IAAI9E,EAAEL,EAAEuuB,OAAOwD,SAAS,GAAGtL,EAAE0G,aAAa9sB,KAAKA,EAAEA,EAAE/C,QAAQ1E,EAAEmK,EAAE/C,IAAIK,GAAG8E,EAAE9E,GAAG,CAAC,QAAG,IAAS8E,EAAE9E,GAAGC,GAAG,OAAO6E,EAAE9E,GAAGC,GAAG,QAAG,IAAS6E,EAAE9E,GAAG,KAAK,OAAO8E,EAAE9E,GAAG,IAAI,CAAC,OAAO8E,EAAE7E,GAAG6E,EAAE7E,GAAG6E,EAAE,IAAI,EAAEA,EAAEuE,MAAM,SAAS9Q,EAAE0H,EAAEyC,EAAE0jB,GAAG,IAAI1jB,EAAEwrB,OAAO7kB,MAAM,MAAM,GAAG,GAAG9Q,EAAE8Q,MAAM,OAAO9Q,EAAE8Q,MAAM,IAAIlN,EAAE8D,EAAEyO,KAAmE,MAA9D,QAAQhM,EAAEwrB,OAAO7kB,OAAOpJ,EAAEyO,KAAK1S,OAAO,IAAIG,EAAE8D,EAAEyO,KAAKnP,OAAO,IAAWuF,EAAE4J,KAAKvS,IAAI2I,EAAEstB,SAAS,KAAK1vB,EAAE8qB,SAAS,OAAOvtB,EAAEyC,IAAI0jB,GAAGthB,EAAEstB,SAAS,KAAKhM,EAAE,OAAOnmB,EAAEyC,IAAI,OAAO,EAAEoC,EAAEmvB,QAAQ,SAAS17B,EAAE0H,EAAEyC,GAAG,IAAInK,EAAE,OAAO,KAAK,MAAMwwB,SAAS3C,EAAE5M,QAAQrd,EAAEk2B,QAAQ1yB,GAAGmF,EAAEutB,QAAQ95B,GAAG,GAAG6tB,EAAE,OAAOA,EAAE,GAAG1jB,EAAEwrB,OAAOyD,MAAM,OAAO,IAAI7sB,EAAEovB,gBAAgB/3B,EAAEwD,EAAEM,GAAG,MAAMD,EAAErG,MAAMw6B,gBAAgBx6B,MAAMw6B,gBAAgB,EAAE,MAAM9N,EAAE,IAAIvhB,EAAEovB,gBAAgB/3B,EAAEwD,EAAEM,GAAG,OAAOtG,MAAMw6B,gBAAgBn0B,EAAEqmB,CAAC,EAAEvhB,EAAEutB,QAAQ,SAAS95B,EAAEuM,EAAE,CAAC,GAAG,IAAI7E,EAAE,GAAG,MAAMyC,EAAE,GAAG,IAAI,MAAM0jB,KAAK7tB,EAAE,CAAC,GAAG6tB,aAAazsB,MAAM,CAAC,IAAG,IAAKmL,EAAEikB,SAAS,MAAM,CAACA,SAAS3C,GAAG,MAAM7tB,EAAE6tB,EAAExuB,WAAWqI,EAAEvC,KAAKnF,GAAGmK,EAAEhF,KAAK,CAAC8b,QAAQjhB,EAAE6C,KAAK,WAAW0H,QAAQ,CAACrC,MAAM2lB,KAAK,QAAQ,CAAC,MAAM7tB,EAAE6tB,EAAExuB,WAAWqI,EAAEvC,KAAKnF,GAAGmK,EAAEhF,KAAK,CAAC8b,QAAQjhB,EAAEmW,KAAK0X,EAAE1X,KAAKC,QAAQpW,GAAG,iBAAiBA,IAAI6C,KAAKgrB,EAAE1tB,KAAKoK,QAAQsjB,EAAEuN,OAAO,CAAC,OAAO1zB,EAAEjE,OAAO,IAAIiE,EAAE,IAAI,IAAIswB,IAAItwB,KAAK,CAACuZ,QAAQvZ,EAAE/G,KAAK,MAAMm5B,QAAQ3vB,EAAE,EAAEoC,EAAEovB,gBAAgB,cAAcv6B,MAAM,WAAAitB,CAAYruB,EAAEuM,EAAE7E,GAAGm0B,MAAM77B,GAAGsD,KAAKw4B,UAAUp0B,EAAEpE,KAAKw2B,QAAQvtB,CAAC,CAAC,cAAOwvB,CAAQ/7B,GAAG,OAAOA,aAAauM,EAAEovB,eAAe,GAAGpvB,EAAEovB,gBAAgBz8B,UAAU88B,OAAM,EAAGzvB,EAAEovB,gBAAgBz8B,UAAUwM,KAAK,kBAAkBa,EAAEovB,gBAAgBz8B,UAAU+8B,SAAS9xB,EAAEjC,OAAO,KAAK,CAAClI,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAE,CAAC,EAAE8E,EAAE1J,KAAK,SAAS7C,EAAEuM,GAAG,MAAM7E,EAAEzI,OAAO0D,eAAe3C,GAAG8tB,EAAED,EAAEnmB,GAAGqmB,EAAE/tB,EAAE2yB,QAAQ1zB,OAAO+Q,OAAO8d,IAAIE,EAAE/uB,OAAOqZ,OAAO,CAAC,EAAE/L,UAAUyhB,EAAEqF,KAAKvF,EAAES,YAAYP,EAAE,MAAMC,EAAEvmB,EAAE6mB,aAAa,CAAC,EAAEP,EAAEiH,SAAS7tB,EAAEwP,MAAMqX,EAAEgH,SAASjH,EAAEiH,UAAUjH,EAAEiI,WAAWh3B,OAAOqZ,OAAO,CAAC,EAAE2V,EAAEgI,WAAWjI,EAAEiI,YAAYlI,EAAElrB,KAAKmrB,EAAEnrB,KAAKmrB,EAAEnX,MAAM5X,OAAOqZ,OAAO,CAAC,EAAE2V,EAAEpX,MAAMmX,EAAEnX,OAAO,MAAM4H,EAAExf,OAAOqZ,OAAO,CAAC,EAAE2V,EAAE0I,OAAO,GAAG3I,EAAE2I,MAAM,IAAI,MAAM32B,KAAKguB,EAAE2I,MAAM,CAAC,MAAMpqB,EAAEyhB,EAAE2I,MAAM32B,GAAGmK,OAAE,IAAS4jB,EAAEqB,QAAQpvB,GAAG,4BAA4BguB,EAAEnrB,KAAK7C,GAAG+tB,EAAEqB,QAAQpvB,GAAGuM,EAAEqqB,KAAKnY,EAAEze,GAAGuM,CAAC,CAACyhB,EAAE2I,MAAMlY,EAAEuP,EAAElqB,OAAOkqB,EAAElqB,KAAKmqB,EAAEnqB,MAAMkqB,EAAEkO,QAAQz0B,EAAEy0B,QAAQlO,EAAEkO,QAAQjO,EAAEiO,SAASlO,EAAEmO,SAAS,mBAAmBnO,EAAEmO,SAASnO,EAAEmO,OAAO,CAACrL,OAAO9C,EAAEmO,SAASnO,EAAEmO,OAAOC,OAAOxqB,MAAMie,QAAQ7B,EAAEmO,OAAOC,QAAQpO,EAAEmO,OAAO,CAACrL,OAAO9C,EAAEmO,OAAOrL,OAAOsL,KAAK,GAAGvxB,OAAOmjB,EAAEmO,OAAOC,SAASpO,EAAEmO,OAAO10B,EAAE00B,OAAOnO,EAAEmO,OAAOlO,EAAEkO,QAAQnO,EAAEgG,SAASvsB,EAAEusB,SAAShG,EAAEgG,SAAS/F,EAAE+F,UAAU,MAAMrV,EAAE1f,OAAOqZ,OAAO,CAAC,EAAE2V,EAAE+E,OAAO,GAAGhF,EAAEgF,MAAM,IAAI,MAAMhzB,KAAKguB,EAAEgF,MAAM,CAAC,MAAMzmB,EAAEyhB,EAAEgF,MAAMhzB,GAAGmK,EAAE,iBAAiBoC,EAAE,8BAA8ByhB,EAAEnrB,KAAK7C,GAAG,IAAI0H,EAAE6E,EAAEukB,OAAO,QAAG,IAASppB,IAAIA,EAAE,WAAW,OAAOpE,KAAK8wB,UAAUp0B,EAAE,GAAG0H,IAAIyC,GAAG2jB,EAAE9tB,GAAG,mBAAmBguB,EAAEnrB,KAAK7C,GAAG8tB,EAAE9tB,GAAG0H,GAAGyC,GAAGwU,EAAE3e,GAAG,mBAAmBguB,EAAEnrB,KAAK7C,GAAG2e,EAAE3e,GAAGuM,EAAEA,EAAE8vB,MAAM,CAAC,MAAMr8B,EAAE,GAAG6K,OAAO0B,EAAE8vB,OAAO,IAAI,MAAM30B,KAAK1H,EAAE8tB,EAAEpmB,GAAG6E,EAAEukB,MAAM,CAACvkB,EAAEzI,OAAOyI,EAAE+nB,WAAW,IAAI7yB,IAAI8K,EAAEzI,KAAKyI,EAAEzI,KAAKO,KAAKrE,IAAI,iBAAiBA,IAAIA,EAAE,CAAC0L,KAAK1L,IAAImK,GAAGoC,EAAE+nB,WAAWvb,IAAI/Y,EAAE0L,MAAM,2BAA2B1L,EAAE0L,MAAM9H,EAAEgvB,SAAS5yB,EAAE00B,UAAU10B,EAAE00B,OAAO10B,EAAE00B,OAAO3C,SAASjhB,MAAM9Q,EAAE0L,OAAOa,EAAE+nB,WAAWryB,IAAIjC,EAAE0L,KAAK1L,GAAGA,KAAK,CAACguB,EAAEgF,MAAMrU,EAAE,MAAME,EAAE5f,OAAOqZ,OAAO,CAAC,EAAE2V,EAAEyF,WAAW,GAAG1F,EAAE0F,UAAU,IAAI,MAAM1zB,KAAKguB,EAAE0F,UAAU,CAACvpB,GAAG2jB,EAAE9tB,GAAG,mBAAmBguB,EAAEnrB,KAAK7C,GAAG,MAAMuM,EAAEyhB,EAAE0F,UAAU1zB,GAAGmK,EAAE,mBAAmBoC,EAAE,kCAAkCyhB,EAAEnrB,KAAK7C,GAAG,MAAM0H,EAAE,SAAS6E,GAAG,OAAOjJ,KAAKmwB,KAAK,CAAC,CAACzzB,GAAGuM,GAAG,EAAEuhB,EAAE9tB,GAAG0H,EAAEmX,EAAE7e,GAAGuM,CAAC,CAAC,GAAGyhB,EAAE0F,UAAU7U,EAAEmP,EAAEsO,UAAU,CAACxO,EAAE2I,OAAO/uB,EAAEqmB,EAAEyI,QAAQ,CAAC,EAAE,IAAI,MAAMx2B,KAAKguB,EAAEsO,UAAUnyB,EAAEzC,EAAE1H,GAAG,0BAA0BA,GAAGguB,EAAEsO,UAAUt8B,GAAG4D,EAAEwjB,QAAQlc,QAAQxD,EAAE1H,GAAG+tB,EAAEyI,QAAQx2B,GAAG0H,EAAE1H,GAAGsS,KAAKyb,GAAG9uB,OAAOqZ,OAAOwV,EAAEE,EAAEsO,UAAU,CAACtO,EAAEoC,KAAKnxB,OAAOqZ,OAAO,CAAC,EAAE2V,EAAEmC,KAAKpC,EAAEoC,MAAM,MAAMzqB,EAAE1G,OAAOqZ,OAAO,CAAC,EAAE2V,EAAEsO,SAASvO,EAAEuO,UAAU,OAAO52B,EAAE62B,MAAM/0B,EAAE+0B,MAAMxO,EAAEuO,UAAUvO,EAAEuO,SAASC,MAAMvO,EAAEsO,UAAUtO,EAAEsO,SAASC,OAAOxO,EAAEuO,SAAS52B,EAAEqoB,EAAE+H,QAAQtuB,EAAEsuB,QAAQ/H,EAAE+H,QAAQ9H,EAAE8H,SAAShI,CAAC,EAAEtmB,EAAE+0B,MAAM,SAASx8B,EAAEuM,GAAG,OAAOvM,GAAGuM,EAAE,SAAS7E,EAAEyC,GAAG,OAAOoC,EAAEvM,EAAE0H,EAAEyC,GAAGA,EAAE,EAAEnK,GAAGuM,CAAC,EAAE9E,EAAE00B,OAAO,SAASn8B,EAAEuM,GAAG,OAAOvM,GAAGuM,EAAE,CAAC6vB,KAAKp8B,EAAEo8B,MAAM7vB,EAAE6vB,KAAK,IAAI,IAAIpE,IAAI,IAAIh4B,EAAEo8B,QAAQ7vB,EAAE6vB,QAAQ,KAAK,MAAAtL,CAAOppB,EAAEyC,GAAG,IAAI0jB,EAAE,KAAKthB,EAAE6vB,MAAM7vB,EAAE6vB,KAAKviB,gBAAgBnS,MAAMmmB,EAAEthB,EAAEukB,OAAOppB,EAAEyC,GAAG0jB,GAAG,CAAC,GAAGA,EAAE8H,aAAQ,IAAS9H,EAAEluB,MAAM,OAAOkuB,EAAEnmB,EAAEmmB,EAAEluB,KAAK,CAAC,IAAIK,EAAEo8B,MAAMp8B,EAAEo8B,KAAKviB,gBAAgBnS,GAAG,CAAC,MAAM6E,EAAEvM,EAAE8wB,OAAOppB,EAAEyC,GAAG,GAAGoC,EAAE,OAAOA,CAAC,CAAC,OAAOshB,CAAC,GAAG7tB,GAAGuM,CAAC,EAAE9E,EAAEy0B,QAAQ,SAASl8B,EAAEuM,GAAG,OAAOvM,GAAGuM,EAAE,SAAS7E,EAAEyC,GAAG,MAAM0jB,EAAE7tB,EAAE0H,EAAEyC,GAAG,GAAG0jB,EAAE,CAAC,GAAGA,EAAE8H,aAAQ,IAAS9H,EAAEluB,MAAM,OAAOkuB,EAAEnmB,EAAEmmB,EAAEluB,KAAK,CAAC,OAAO4M,EAAE7E,EAAEyC,IAAI0jB,CAAC,EAAE7tB,GAAGuM,CAAC,EAAE9E,EAAEsuB,QAAQ,SAAS/1B,EAAEuM,GAAG,OAAOvM,GAAGuM,EAAE,SAAS7E,GAAG6E,EAAE7E,GAAG1H,EAAE0H,EAAE,EAAE1H,GAAGuM,CAAC,EAAE9E,EAAEusB,SAAS,SAASh0B,EAAEuM,GAAG,OAAOvM,GAAGuM,EAAE,SAAS7E,EAAEyC,GAAG,MAAM0jB,EAAEthB,EAAE7E,EAAEyC,GAAG,GAAG0jB,EAAE,CAAC,GAAGA,EAAE8H,UAAU/jB,MAAMie,QAAQhC,EAAE8H,SAAS9H,EAAE8H,OAAOlyB,QAAQ,OAAOoqB,EAAEnmB,EAAEmmB,EAAEluB,KAAK,CAAC,OAAOK,EAAE0H,EAAEyC,IAAI0jB,CAAC,EAAE7tB,GAAGuM,CAAC,GAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAEtmB,EAAE,MAAMumB,EAAEvmB,EAAE,MAAM+W,EAAE/W,EAAE,MAAMiX,EAAEjX,EAAE,MAAM,IAAImX,EAAE,MAAMlZ,EAAE,CAAC82B,MAAM,CAAC7B,aAAalzB,EAAE,MAAM6vB,IAAI7vB,EAAE,MAAMnC,MAAMmC,EAAE,KAAKg1B,QAAQh1B,EAAE,MAAMszB,KAAKtzB,EAAE,MAAMi1B,SAASj1B,EAAE,KAAKk1B,KAAKl1B,EAAE,MAAM2X,OAAO3X,EAAE,MAAMwf,OAAOxf,EAAE,MAAM3B,OAAO2B,EAAE,MAAMxB,OAAOwB,EAAE,OAAOm1B,QAAQ,CAACC,IAAI,eAAeC,KAAK,UAAUC,KAAK,YAAY7iB,KAAK,WAAW,MAAMna,EAAE,CAACi9B,OAAO,IAAIjF,IAAI/4B,OAAOwK,KAAK9D,EAAE82B,SAAS,IAAI,MAAMlwB,KAAKvM,EAAEi9B,OAAOj9B,EAAEuM,GAAG,YAAYvM,GAAG,OAAOmK,GAAGnK,EAAEyD,QAAQ,CAAC,eAAe,OAAO,UAAUoW,SAAStN,GAAG,MAAMA,EAAE,iCAAiC5G,EAAE2xB,SAASh0B,KAAKqC,EAAE82B,MAAMlwB,GAAGvM,EAAE,EAAE,IAAI,MAAMuM,IAAI,CAAC,QAAQ,SAAS,WAAW,QAAQ,QAAQ,YAAY,UAAU,MAAM,OAAO,WAAW,UAAU,QAAQ,cAAc,WAAW,QAAQ,QAAQ,QAAQvM,EAAEuM,GAAG,YAAYvM,GAAG,OAAOsD,KAAKi0B,MAAMhrB,MAAMvM,EAAE,EAAEf,OAAOqZ,OAAOtY,EAAE2F,EAAEu3B,SAAS,IAAI,MAAM3wB,KAAK5G,EAAEk3B,QAAQ,CAAC,MAAMn1B,EAAE/B,EAAEk3B,QAAQtwB,GAAGvM,EAAEuM,GAAGvM,EAAE0H,EAAE,CAAC,OAAO1H,EAAEm9B,EAAEn9B,EAAEo9B,WAAWze,EAAE0e,OAAO1e,EAAE0e,MAAMr9B,GAAGA,CAAC,GAAG2F,EAAEu3B,QAAQ,CAACvB,gBAAgB7N,EAAE6N,gBAAgBvY,QAAQhc,EAAEgc,QAAQ6C,MAAMriB,EAAE6uB,SAAS,MAAAiC,CAAO10B,EAAEuM,KAAK7E,GAAG/B,EAAE+uB,OAAO10B,EAAEuM,GAAE,EAAG7E,EAAE,EAAE41B,QAAQ,CAACt9B,EAAEuM,KAAK7E,IAAI/B,EAAE+uB,OAAO10B,EAAEuM,GAAE,EAAG7E,GAAG,KAAA80B,CAAMx8B,GAAG,OAAOmK,EAAE,mBAAmB6jB,EAAEwO,MAAM,mCAAmCxO,EAAEwO,MAAMl5B,KAAKtD,EAAE,EAAE,gBAAA2xB,CAAiB3xB,GAAGoH,EAAEuqB,iBAAiB3xB,EAAE,EAAE,OAAAw3B,CAAQx3B,EAAEuM,GAAG,OAAO9E,EAAE+vB,QAAQl0B,KAAKtD,EAAEuM,EAAE,EAAE,QAAAusB,CAAS94B,GAAGmK,EAAE,mBAAmBnK,EAAE,+BAA+B,MAAMuM,EAAEtN,OAAOqZ,OAAO,CAAC,EAAEhV,MAAM,IAAI,MAAMoE,KAAK6E,EAAE0wB,OAAO,CAAC,MAAMpP,EAAE7tB,EAAEuM,EAAE7E,MAAMyC,EAAE/C,EAAEwrB,SAAS/E,GAAG,8CAA8CthB,EAAE7E,GAAG,YAAY1H,GAAG,OAAO2F,EAAE2xB,SAASh0B,KAAKuqB,EAAE7tB,EAAE,CAAC,CAAC,OAAOuM,CAAC,EAAE6wB,WAAW,IAAIp9B,IAAI,IAAIye,KAAKze,GAAG,MAAAozB,IAAUpzB,GAAGoH,EAAEsoB,WAAW1vB,EAAE,UAAU6e,EAAEA,GAAGnX,EAAE,MAAMyC,EAAEnK,EAAEyD,OAAO,8CAA8CH,KAAKoxB,OAAO10B,EAAE6e,EAAE0e,YAAY,MAAMhxB,EAAEtN,OAAOqZ,OAAO,CAAC,EAAEhV,MAAMiJ,EAAE0wB,OAAO,IAAIjF,IAAIzrB,EAAE0wB,QAAQ,IAAI,IAAIv1B,KAAK1H,EAAE,CAAC,mBAAmB0H,IAAIA,EAAEA,EAAE6E,IAAIjJ,KAAKoxB,OAAOhtB,EAAEmX,EAAE2e,WAAW,MAAMx9B,EAAE2F,EAAE83B,gBAAgB/1B,EAAE6E,GAAG,IAAI,MAAM7E,KAAK1H,EAAE,CAACmK,OAAE,IAASoC,EAAE7E,EAAE7E,OAAO0J,EAAE0wB,OAAOlkB,IAAIrR,EAAE7E,MAAM,uBAAuB6E,EAAE7E,MAAM,MAAM7C,EAAE0H,EAAE2rB,MAAM/vB,KAAKi0B,MAAM1J,EAAEE,EAAElrB,KAAK7C,EAAE0H,GAAG6E,EAAE0wB,OAAO1kB,IAAI7Q,EAAE7E,MAAM0J,EAAE7E,EAAE7E,MAAM,YAAY7C,GAAG,OAAO2F,EAAE2xB,SAASh0B,KAAKuqB,EAAE7tB,EAAE,CAAC,CAAC,CAAC,OAAOuM,CAAC,EAAEwvB,QAAQjO,EAAE6N,gBAAgBI,QAAQ2B,aAAajf,EAAEgd,WAAWR,MAAMhN,EAAEgN,MAAMrI,SAASxrB,EAAEwrB,SAAS+K,GAAG,IAAI39B,IAAIiuB,EAAE0P,MAAM39B,GAAGwwB,SAASppB,EAAEggB,QAAQoJ,SAASlN,IAAI,IAAItjB,IAAIiuB,EAAEje,UAAUhQ,GAAG,KAAAy8B,GAAQ,MAAMz8B,EAAE,CAAC,EAAE,IAAI,MAAMuM,KAAKjJ,KAAK25B,OAAOj9B,EAAEuM,GAAGjJ,KAAKiJ,KAAK,IAAI,MAAMA,KAAK5G,EAAEk3B,QAAQ78B,EAAEuM,GAAGjJ,KAAKiJ,KAAK,OAAOvM,CAAC,GAAG2F,EAAE+uB,OAAO,SAAS10B,EAAEuM,EAAE7E,EAAEyC,GAAG,MAAMvG,EAAEuG,EAAE,aAAa/I,OAAO,iBAAiB+I,EAAE,GAAGA,EAAE,GAAG,KAAK1C,EAAE,OAAO7D,EAAEuG,EAAE,GAAGA,EAAE,GAAG4jB,EAAExhB,EAAEynB,SAASh0B,EAAEoH,EAAEwqB,YAAY,CAAC+D,OAAO,CAACyD,OAAM,IAAK3xB,GAAG,CAAC,IAAI,IAAIumB,EAAED,EAAE7lB,MAAM,IAAI8lB,EAAE,OAAOD,EAAEpuB,MAAM,GAAGiE,aAAaxC,MAAM,MAAMwC,EAAE,MAAMqqB,EAAEvmB,GAAG,mBAAmBsmB,EAAEiO,SAASjO,EAAEiO,WAAWjO,EAAE/M,QAAQ,MAAM+M,aAAaF,EAAE6N,iBAAiB,IAAI3N,EAAEH,EAAEG,IAAIA,EAAE/M,QAAQrd,EAAE,GAAGA,KAAKqqB,IAAIA,EAAED,CAAC,EAAEroB,EAAE2xB,SAAS,SAASt3B,EAAEuM,EAAE7E,GAAG,OAAOyC,EAAEnK,EAAE,sCAAsCuM,EAAE+hB,OAAOtuB,EAAEuM,EAAEgiB,YAAYzqB,MAAM4D,EAAEjE,OAAO8I,EAAEgiB,YAAYzqB,KAAKyI,KAAK7E,GAAG6E,CAAC,EAAE5G,EAAE83B,gBAAgB,SAASz9B,EAAEuM,GAAG,GAAG,iBAAiBvM,EAAE6C,KAAK,MAAM,CAAC7C,GAAG,MAAM0H,EAAE,GAAG,IAAI,MAAMyC,KAAKoC,EAAE0wB,OAAO,GAAGj9B,EAAE6C,KAAKquB,KAAK/mB,GAAG,CAAC,MAAM0jB,EAAE5uB,OAAOqZ,OAAO,CAAC,EAAEtY,GAAG6tB,EAAEhrB,KAAKsH,EAAE0jB,EAAEwF,KAAK9mB,EAAEpC,KAAKzC,EAAEvC,KAAK0oB,EAAE,CAAC,OAAOnmB,CAAC,EAAE1H,EAAEN,QAAQiG,EAAEwU,MAAK,EAAG,KAAK,CAACna,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAM6E,EAAEirB,QAAQ,SAASx3B,EAAEuM,GAAG,GAAG,iBAAiBvM,EAAE,OAAOmK,GAAGoC,EAAE,oCAAoC,IAAI3I,EAAE5D,GAAG,GAAG4D,EAAE63B,WAAWz7B,GAAG,OAAOmK,GAAGoC,EAAE,sCAAsCvM,EAAEmK,EAAE,iBAAiBnK,IAAI4R,MAAMie,QAAQ7vB,GAAG,2BAA2BuM,EAAEA,EAAEshB,EAAEthB,GAAG,CAAC,EAAE,IAAI,IAAI7E,KAAK1H,EAAE,CAAC,MAAM6tB,EAAE7tB,EAAE0H,GAAG,GAAG,SAASA,GAAG9D,EAAE63B,WAAW5N,GAAG,CAACthB,EAAE7E,GAAGmmB,EAAE,QAAQ,CAAC,GAAG,iBAAiBA,EAAE,CAACthB,EAAE7E,GAAG,IAAI9D,EAAEiqB,GAAG,QAAQ,CAAC1jB,EAAE,iBAAiB0jB,IAAIjc,MAAMie,QAAQhC,GAAG,sBAAsBnmB,GAAG,MAAMN,EAAEM,EAAE,IAAIA,KAAK6E,EAAEnF,GAAGmF,EAAEnF,IAAI,CAAC,EAAEymB,EAAE,CAAC,MAAM7tB,EAAE6tB,EAAEnmB,GAAG,SAASA,GAAG9D,EAAE63B,WAAWz7B,GAAGuM,EAAEnF,GAAGM,GAAG1H,GAAGmK,EAAE,iBAAiBnK,EAAE,sBAAsB0H,EAAE,KAAKN,GAAGmF,EAAEnF,GAAGM,GAAG,IAAI9D,EAAE5D,GAAG,CAAC,CAAC,OAAOuM,CAAC,EAAEA,EAAEqxB,UAAU,SAAS59B,GAAG,MAAMuM,EAAE,CAAC,EAAE,IAAI,IAAI7E,KAAK1H,EAAE,CAAC,MAAMmK,EAAEnK,EAAE0H,GAAG,GAAG,SAASA,EAAE,CAAC6E,EAAE4N,KAAKhQ,EAAE,QAAQ,CAAC,GAAGvG,EAAE63B,WAAWtxB,GAAG,CAACoC,EAAE7E,GAAGyC,EAAEqlB,SAAS,CAACqO,SAAQ,IAAK,QAAQ,CAAC,MAAMhQ,EAAEnmB,EAAE,IAAIA,KAAK6E,EAAEshB,GAAG,CAAC,EAAE1jB,EAAE,CAAC,MAAMnK,EAAEmK,EAAEzC,GAAG,SAASA,EAAE6E,EAAEshB,GAAGnmB,GAAG1H,EAAEwvB,SAAS,CAACqO,SAAQ,IAAKtxB,EAAEshB,GAAG1T,KAAKna,CAAC,CAAC,CAAC,OAAOuM,CAAC,EAAEA,EAAEqK,MAAM,SAAS5W,EAAE0H,GAAG,IAAI1H,EAAE,OAAOuM,EAAEirB,QAAQ9vB,GAAG,IAAIA,EAAE,OAAO1H,EAAE,GAAG,iBAAiB0H,EAAE,OAAO,IAAI9D,EAAE8D,GAAG,GAAG9D,EAAE63B,WAAW/zB,GAAG,OAAOA,EAAE,MAAMN,EAAEymB,EAAE7tB,GAAG,IAAI,IAAIA,KAAK0H,EAAE,CAAC,MAAM6E,EAAE7E,EAAE1H,GAAG,GAAG,SAASA,GAAG4D,EAAE63B,WAAWlvB,GAAG,CAACnF,EAAEpH,GAAGuM,EAAE,QAAQ,CAAC,GAAG,iBAAiBA,EAAE,CAACnF,EAAEpH,GAAG,IAAI4D,EAAE2I,GAAG,QAAQ,CAACpC,EAAE,iBAAiBoC,IAAIqF,MAAMie,QAAQtjB,GAAG,sBAAsBvM,GAAG,MAAM6tB,EAAE7tB,EAAE,IAAIA,KAAKoH,EAAEymB,GAAGzmB,EAAEymB,IAAI,CAAC,EAAEthB,EAAE,CAAC,MAAM7E,EAAE6E,EAAEvM,GAAG,SAASA,GAAG4D,EAAE63B,WAAW/zB,GAAGN,EAAEymB,GAAG7tB,GAAG0H,GAAGyC,EAAE,iBAAiBzC,EAAE,sBAAsB1H,EAAE,KAAK6tB,GAAGzmB,EAAEymB,GAAG7tB,GAAG,IAAI4D,EAAE8D,GAAG,CAAC,CAAC,OAAON,CAAC,GAAG,KAAK,CAACpH,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAAC,EAAEmF,EAAEmiB,IAAItnB,EAAEsnB,IAAI,MAAM,WAAAL,GAAc/qB,KAAKw6B,MAAM,IAAIr8B,IAAI6B,KAAKy6B,OAAO,IAAIt8B,IAAI6B,KAAK06B,cAAa,CAAE,CAAC,KAAAjO,GAAQ,MAAM/vB,EAAE,IAAIoH,EAAEsnB,IAAI,OAAO1uB,EAAE89B,MAAM,IAAIr8B,IAAI6B,KAAKw6B,OAAO99B,EAAE+9B,OAAO,IAAIt8B,IAAI6B,KAAKy6B,QAAQ/9B,EAAEg+B,aAAa16B,KAAK06B,aAAah+B,CAAC,CAAC,MAAA6K,CAAO7K,GAAGA,EAAEg+B,eAAe16B,KAAK06B,cAAa,GAAI,IAAI,MAAMzxB,EAAE7E,KAAK1H,EAAE89B,MAAMG,UAAU9zB,GAAG7G,KAAKy6B,OAAOhlB,IAAIxM,GAAG,yCAAyCA,GAAGjJ,KAAKw6B,MAAM77B,IAAIsK,EAAE7E,GAAG,IAAI,MAAM6E,EAAE7E,KAAK1H,EAAE+9B,OAAOE,UAAU9zB,GAAG7G,KAAKw6B,MAAM/kB,IAAIxM,GAAG,yCAAyCA,GAAGjJ,KAAKy6B,OAAO97B,IAAIsK,EAAE7E,EAAE,CAAC,IAAA8rB,CAAKxzB,EAAEuM,EAAE7E,GAAG,MAAM9D,EAAEN,KAAK46B,SAASl+B,GAAG4D,EAAEuB,KAAK,CAAC4vB,OAAOrtB,IAAI,MAAMD,EAAE7D,EAAE0B,QAAQ,IAAIwoB,EAAE,CAACtd,GAAG/I,EAAE+I,GAAGukB,OAAOxoB,EAAE9E,EAAEstB,SAAS5qB,EAAE0jB,EAAE+E,SAAS9E,EAAEiH,QAAQ,wDAAwD,IAAI,MAAM/0B,KAAK4D,EAAEkqB,EAAE,CAACtd,GAAGxQ,EAAEwQ,GAAGukB,OAAO3tB,EAAEosB,KAAKxzB,EAAE+0B,OAAOjH,EAAEtd,GAAGsd,EAAEiH,SAAS,OAAOjH,EAAEiH,MAAM,CAAC,MAAAO,CAAOt1B,EAAEuM,EAAE,IAAI,MAAM7E,EAAE1H,EAAE,GAAGmK,EAAE7G,KAAK66B,KAAKz2B,GAAG,IAAIyC,EAAE,MAAM,IAAIoC,KAAKvM,GAAGW,KAAK,KAAK,MAAMktB,EAAE7tB,EAAEgH,MAAM,GAAG,OAAOuF,EAAE,IAAIA,EAAEpC,EAAE4qB,OAAO9F,OAAOne,OAAOpJ,GAAGmmB,EAAEpqB,OAAO0G,EAAE4qB,OAAOtG,KAAK6G,OAAOzH,EAAEthB,GAAGA,EAAE5L,KAAK,IAAI,CAAC,KAAA4yB,CAAMvzB,EAAEuM,EAAE,IAAI,MAAM7E,EAAE1H,EAAE,GAAG6tB,EAAEvqB,KAAK66B,KAAKz2B,GAAGyC,EAAE0jB,EAAE,+BAA+B,IAAIthB,KAAKvM,GAAGW,KAAK,MAAM,MAAMiD,EAAE5D,EAAEgH,MAAM,GAAG,OAAOpD,EAAEH,OAAOoqB,EAAEkH,OAAOtG,KAAK8E,MAAM3vB,EAAE,IAAI2I,EAAE7E,IAAImmB,EAAEkH,MAAM,CAAC,QAAAlC,CAAS7yB,GAAGgC,IAAIuK,GAAG,CAAC,GAAG,IAAIvM,IAAI6tB,EAAE+E,SAAS5yB,GAAG,QAAQA,EAAEg2B,WAAW,gBAAgBh2B,EAAEyuB,KAAKuP,gBAAgB16B,KAAK06B,cAAa,GAAI,MAAMt2B,EAAE1H,EAAEivB,OAAOze,GAAG,GAAG9I,EAAE,CAAC,MAAM6E,EAAEjJ,KAAKw6B,MAAMnpB,IAAIjN,GAAGyC,GAAGoC,GAAGA,EAAEwoB,SAAS/0B,EAAE,iDAAiD0H,GAAGyC,GAAG7G,KAAKy6B,OAAOhlB,IAAIrR,GAAG,yCAAyCA,GAAGpE,KAAKw6B,MAAM77B,IAAIyF,EAAE,CAACqtB,OAAO/0B,EAAEwQ,GAAG9I,GAAG,CAAC6E,IAAIpC,GAAG7G,KAAKy6B,OAAOhlB,IAAIxM,GAAG,+BAA+BA,GAAGpC,GAAG7G,KAAKw6B,MAAM/kB,IAAIxM,GAAG,yCAAyCA,GAAGjJ,KAAKy6B,OAAO97B,IAAIsK,EAAE,CAACwoB,OAAO/0B,EAAEwQ,GAAGjE,IAAI,CAAC,KAAAspB,GAAQvyB,KAAKw6B,MAAM,IAAIr8B,IAAI6B,KAAKy6B,OAAO,IAAIt8B,IAAI6B,KAAK06B,cAAa,CAAE,CAAC,QAAAE,CAASl+B,EAAEuM,EAAE,GAAG7E,EAAE,IAAI,MAAMmmB,EAAE7tB,EAAE,GAAG4D,EAAEN,KAAK66B,KAAKtQ,GAAG1jB,EAAEvG,EAAE,+BAA+B,IAAI2I,KAAKvM,GAAGW,KAAK,MAAM+G,EAAE,CAAC9D,KAAK8D,GAAG,MAAMN,EAAEpH,EAAEgH,MAAM,GAAG,OAAOI,EAAE3D,OAAOG,EAAEmxB,OAAOtG,KAAKyP,SAAS92B,EAAE,IAAImF,EAAEshB,GAAGnmB,GAAGA,CAAC,CAAC,IAAAy2B,CAAKn+B,GAAG,OAAOsD,KAAKw6B,MAAMnpB,IAAI3U,IAAIsD,KAAKy6B,OAAOppB,IAAI3U,EAAE,GAAGoH,EAAEosB,KAAK,SAASxzB,EAAE0H,EAAEyC,GAAG,MAAM0jB,EAAEthB,EAAEwoB,OAAO/0B,EAAE,CAAC8zB,KAAK,CAAC9zB,GAAGgC,IAAIuK,MAAM,GAAG7E,KAAK1H,EAAEivB,OAAOze,IAAIjE,GAAG,OAAOpC,GAAGmZ,KAAI,IAAK,OAAOuK,EAAEA,EAAE2E,kBAAkBxyB,CAAC,EAAEuM,EAAEwoB,OAAO,SAAS/0B,EAAEuM,GAAG,IAAI7E,EAAE,IAAI,MAAMyC,KAAKnK,EAAEivB,OAAO,CAAC,GAAG,MAAM9kB,EAAE,GAAG,SAAS,MAAM0jB,EAAEzmB,EAAEg3B,KAAKp+B,EAAEivB,OAAO9kB,GAAG,CAACuc,OAAO,QAAQhb,KAAKvB,GAAGoC,QAAG,IAASshB,IAAInmB,EAAEA,GAAG1H,EAAE+vB,QAAQroB,EAAEunB,OAAO9kB,GAAG0jB,EAAE,CAAC,IAAI,IAAI1jB,EAAE,EAAEA,EAAEnK,EAAEkvB,OAAOzrB,SAAS0G,EAAE,CAAC,MAAM0jB,EAAE7tB,EAAEkvB,OAAO/kB,GAAGvG,EAAEwD,EAAEg3B,KAAKvQ,EAAE/pB,KAAK,CAAC4iB,OAAO,QAAQhb,KAAKmiB,EAAEniB,MAAMa,GAAG,QAAG,IAAS3I,EAAE,CAAC8D,EAAEA,GAAG1H,EAAE+vB,QAAQ,MAAMxjB,EAAEtN,OAAOqZ,OAAO,CAAC,EAAEuV,GAAGthB,EAAEzI,KAAKF,EAAE8D,EAAEwnB,OAAO/kB,GAAGoC,EAAE7E,EAAEynB,aAAaxa,IAAIkZ,EAAEniB,QAAQmiB,GAAGnmB,EAAEynB,aAAaltB,IAAI4rB,EAAEniB,KAAKa,EAAE,CAAC,CAAC,IAAI,MAAMpC,KAAKnK,EAAEovB,QAAQ,CAAC,GAAG,MAAMjlB,EAAE,GAAG,SAAS,MAAM0jB,EAAEzmB,EAAEg3B,KAAKp+B,EAAEovB,QAAQjlB,GAAG,CAACuc,OAAO,QAAQhb,KAAKvB,GAAGoC,QAAG,IAASshB,IAAInmB,EAAEA,GAAG1H,EAAE+vB,QAAQroB,EAAE0nB,QAAQjlB,GAAG0jB,EAAE,CAAC,OAAOnmB,CAAC,EAAEN,EAAEg3B,KAAK,SAASp+B,EAAEuM,EAAE7E,EAAEyC,EAAE1C,GAAG,MAAMqmB,EAAE3jB,GAAG,GAAG,GAAG,OAAOnK,GAAG,iBAAiBA,EAAE,OAAO,IAAI+tB,EAAE,GAAGnc,MAAMie,QAAQ7vB,GAAG,CAAC,IAAI,IAAImK,EAAE,EAAEA,EAAEnK,EAAEyD,SAAS0G,EAAE,CAAC,MAAM0jB,EAAE,UAAUthB,EAAEma,QAAQ,SAASna,EAAEb,MAAM1L,EAAEmK,GAAGnI,IAAI4B,EAAEwD,EAAEg3B,KAAKp+B,EAAEmK,GAAGoC,EAAE7E,EAAE,CAACyC,KAAK2jB,GAAGD,QAAG,IAASjqB,IAAImqB,EAAEA,GAAG/tB,EAAEgH,QAAQ+mB,EAAE5jB,GAAGvG,EAAE,CAAC,OAAOmqB,CAAC,CAAC,IAAG,IAAKrmB,EAAEqtB,QAAQlH,EAAE+E,SAAS5yB,KAAI,IAAK0H,EAAE4b,KAAK1f,EAAEq3B,MAAMj7B,GAAG,CAAC,MAAMmK,EAAEzC,EAAEosB,KAAK9zB,EAAE,IAAIuM,EAAE4J,KAAK2X,EAAE9rB,IAAIyF,IAAI,GAAG0C,IAAInK,EAAE,OAAO,OAAOmK,CAAC,CAAC,IAAI,MAAMA,KAAKnK,EAAE,CAAC,GAAG,MAAMmK,EAAE,GAAG,SAAS,MAAM0jB,EAAEzmB,EAAEg3B,KAAKp+B,EAAEmK,GAAGoC,EAAE7E,EAAE,CAACyC,KAAK2jB,GAAGrmB,QAAG,IAASomB,IAAIE,EAAEA,GAAG9uB,OAAOqZ,OAAO,CAAC,EAAEtY,GAAG+tB,EAAE5jB,GAAG0jB,EAAE,CAAC,OAAOE,CAAC,GAAG,KAAK,CAAC/tB,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAM,IAAID,EAAE,MAAMqmB,EAAE,CAAC5nB,OAAOnH,OAAO,OAAO+5B,SAAS,CAACuF,OAAO,KAAKV,IAAG,EAAGW,UAAU,KAAKj6B,IAAI,KAAKk6B,UAAU,IAAI17B,KAAK,UAAU0J,EAAEyD,OAAO,SAAShQ,EAAEuM,EAAE,CAAC,GAAGpC,EAAE,iBAAiBnK,EAAE,yBAAyBA,GAAGoH,EAAEspB,cAAcnkB,EAAE,CAAC,SAAS,WAAW,KAAK,YAAY,MAAM,SAAS,SAAS,cAAcpC,GAAGoC,EAAEiyB,QAAQ,iBAAiBjyB,EAAEiyB,OAAO,yCAAyC,MAAM92B,EAAEzI,OAAOqZ,OAAO,CAAC,EAAEwV,EAAEgL,SAASvsB,UAAU7E,EAAE82B,OAAO,MAAM3Q,EAAEnmB,EAAE62B,UAAU36B,EAAEkqB,EAAEvjB,QAAQvK,EAAE6tB,EAAEthB,EAAEiyB,QAAQ,GAAG92B,EAAE7E,KAAKe,EAAEf,KAAK7C,EAAE4D,EAAE5B,IAAI,UAAU0F,EAAE7E,KAAK,GAAGe,EAAEuW,OAAOhQ,GAAG0jB,GAAG7tB,EAAE,KAAK6tB,EAAE,iDAAiDnmB,EAAE+2B,SAAS,OAAOz+B,IAAIA,EAAE,OAAO6tB,GAAGA,IAAI7tB,EAAEA,EAAE,KAAK0H,EAAE+2B,SAAS,OAAO,QAAG,IAAS/2B,EAAE+2B,SAASt0B,GAAG0jB,IAAI7tB,GAAGA,EAAE,KAAK6tB,EAAE,kDAAkD,CAAC,MAAMthB,EAAEpC,GAAG2jB,EAAE2Q,SAASz+B,EAAE6tB,GAAG1jB,GAAG,MAAMnK,EAAEA,EAAEgH,MAAMmD,MAAMnK,EAAE,MAAM0H,EAAE+2B,SAASlyB,CAAC,CAAC,OAAO7E,EAAEyO,KAAK0X,EAAE,OAAO7tB,EAAE,GAAGA,EAAEU,MAAMmtB,GAAG,CAAC7tB,GAAG,IAAI8tB,EAAE4Q,IAAIh3B,EAAE,EAAE6E,EAAEoxB,GAAG,SAAS39B,EAAE0H,EAAE,CAAC,GAAG,OAAO6E,EAAEyD,OAAOhQ,EAAE,IAAI0H,EAAEi2B,IAAG,GAAI,EAAEpxB,EAAE0uB,MAAM,SAASj7B,GAAG,QAAQA,KAAKA,EAAEoH,EAAEggB,QAAQ9D,IAAI,EAAEwK,EAAE4Q,IAAI,MAAM,WAAArQ,CAAYruB,GAAGmK,EAAE,iBAAiBnK,EAAE,kCAAkCoH,EAAEspB,cAAc1wB,EAAE,CAAC,SAAS,WAAW,KAAK,YAAY,MAAM,OAAO,SAAS,YAAY,OAAO,QAAQ,MAAM,OAAO,YAAYmK,EAAE,EAAC,OAAG,GAAQ0P,SAAS7Z,EAAEu+B,YAAY,iBAAiBv+B,EAAEu+B,WAAW,IAAIv+B,EAAEu+B,UAAU96B,OAAO,qBAAqB0G,GAAGnK,EAAEq+B,QAAQ,mBAAmBr+B,EAAEq+B,OAAO,qCAAqCl0B,GAAGnK,EAAEqE,KAAKuN,MAAMie,QAAQ7vB,EAAEqE,KAAK,gCAAgC8F,GAAGnK,EAAEqE,MAAMrE,EAAEq+B,OAAO,0CAA0Cp/B,OAAOqZ,OAAOhV,KAAKwqB,EAAEgL,SAAS94B,GAAGmK,EAAE,UAAU7G,KAAKT,WAAM,IAASS,KAAKm7B,SAAS,mDAAmD7sB,MAAMie,QAAQvsB,KAAKe,OAAOf,KAAKe,IAAI,IAAI5C,IAAI6B,KAAKe,MAAMf,KAAKq7B,MAAMr7B,KAAK6S,KAAK1S,OAAOH,KAAKtB,IAAIsB,KAAK6S,KAAK1S,OAAOH,KAAK6S,KAAKxV,KAAK2C,KAAKi7B,WAAW,KAAKj7B,KAAK6W,KAAK7W,KAAK6S,KAAK,GAAG7S,KAAKs7B,eAAe,CAAC,OAAAl6B,CAAQ1E,EAAEuM,EAAE7E,EAAEmmB,EAAEjqB,EAAE,CAAC,GAAG,OAAOuG,GAAG7G,KAAKq6B,IAAI/5B,EAAE+5B,GAAG,gCAAgC,WAAWr6B,KAAKT,KAAKS,KAAK+wB,SAAS3sB,EAAE6C,QAAQgC,EAAE3I,GAAG,UAAUN,KAAKT,KAAKS,KAAK+wB,SAASxG,EAAEthB,EAAE3I,GAAGN,KAAKm7B,SAAS,SAASn7B,KAAKm7B,SAASn7B,KAAK+wB,SAAS9nB,EAAE0qB,UAAU1qB,EAAE0qB,UAAUxzB,OAAO,GAAG8I,EAAE3I,IAAIuG,EAAE7G,KAAKm7B,UAAUlyB,EAAE0qB,UAAUxzB,OAAO,6CAA6CH,KAAKu7B,SAASv7B,KAAK+wB,SAAS9nB,EAAE0qB,UAAU3zB,KAAKm7B,SAAS,GAAGlyB,EAAE3I,IAAIN,KAAK+wB,SAASr0B,EAAEuM,EAAE3I,EAAE,CAAC,QAAAywB,CAASr0B,EAAEuM,EAAE7E,GAAG,IAAIyC,EAAE,GAAG,UAAU7G,KAAKT,MAAM0J,EAAE6qB,SAAS0H,SAAQ,IAAKp3B,EAAEo3B,SAAS30B,EAAEoC,EAAE6qB,SAAS0H,OAAOnqB,IAAIrR,KAAKy7B,SAASxyB,UAAK,IAASpC,IAAIA,EAAEvG,EAAE5D,EAAEsD,KAAK6S,KAAK,CAACmoB,UAAUh7B,KAAKg7B,UAAUU,WAAU,KAAM17B,KAAK+6B,SAASl0B,EAAE7G,KAAK+6B,OAAOl0B,IAAI7G,KAAKe,IAAI,CAAC,MAAMrE,EAAEsD,KAAKe,IAAIsQ,IAAIxK,QAAG,IAASnK,IAAImK,EAAEnK,EAAE,CAAC,OAAOuM,EAAE6qB,UAAU7qB,EAAE6qB,SAASrD,OAAOrvB,QAAQ6H,EAAEjJ,KAAK6G,GAAGA,CAAC,CAAC,QAAA9K,GAAW,OAAOiE,KAAKu7B,OAAO,CAAC,QAAAE,CAAS/+B,GAAG,MAAM,IAAIA,EAAEmW,KAAKnP,MAAM,GAAG1D,KAAKm7B,aAAan7B,KAAK6S,KAAK,CAAC,KAAA4Z,GAAQ,OAAO,IAAIjC,EAAE4Q,IAAIp7B,KAAK,CAAC,QAAAksB,GAAW,MAAMxvB,EAAE,CAACmW,KAAK7S,KAAK6S,MAAM,UAAU7S,KAAKT,OAAO7C,EAAE6C,KAAKS,KAAKT,MAAM,MAAMS,KAAKi7B,YAAYv+B,EAAEu+B,UAAUj7B,KAAKi7B,WAAW,UAAUj7B,KAAKT,MAAM,IAAIS,KAAKm7B,WAAWz+B,EAAEy+B,SAASn7B,KAAKm7B,UAAUn7B,KAAKe,MAAMrE,EAAEqE,IAAI,IAAIf,KAAKe,MAAM,IAAI,MAAMkI,IAAI,CAAC,SAAS,YAAY,UAAU,OAAOjJ,KAAKiJ,SAAI,IAASjJ,KAAKiJ,KAAKvM,EAAEuM,GAAGjJ,KAAKiJ,IAAI,OAAM,IAAKjJ,KAAKq6B,KAAK39B,EAAE29B,IAAG,GAAI,CAACra,IAAItjB,EAAE,CAAC,aAAA4+B,GAAgB,MAAM5+B,EAAE,OAAOsD,KAAKtB,IAAIsB,KAAKtB,IAAI,GAAG,GAAG,UAAUsB,KAAKT,KAAK,YAAYS,KAAKu7B,QAAQ,OAAOv7B,KAAKT,QAAQ7C,KAAK,IAAIsD,KAAKi7B,UAAU,YAAYj7B,KAAKu7B,QAAQ,OAAO7+B,KAAK,IAAIsD,KAAKm7B,SAAS,YAAYn7B,KAAKu7B,QAAQ,OAAOv7B,KAAKi7B,YAAYv+B,KAAK,GAAG,SAASsD,KAAKm7B,SAAS,YAAYn7B,KAAKu7B,QAAQ,YAAY7+B,KAAK,GAAG,IAAIsD,KAAKm7B,SAAS,YAAYn7B,KAAKu7B,QAAQ,OAAO7+B,GAAG,QAAQ,MAAMuM,EAAE,IAAIqF,MAAMtO,KAAKm7B,SAAS,GAAGQ,KAAK37B,KAAKi7B,WAAW59B,KAAK,IAAI2C,KAAKu7B,QAAQ,OAAOtyB,IAAIvM,GAAG,IAAI,GAAG8tB,EAAE4Q,IAAIx/B,UAAUkI,EAAEggB,QAAQ9D,MAAK,EAAG/W,EAAEiwB,MAAM,SAASx8B,GAAG,MAAM,WAAWA,EAAEf,OAAOqZ,OAAO,CAAC,EAAEwV,EAAEgL,SAAS94B,IAAI6C,WAAM,IAAS7C,EAAEy+B,WAAWz+B,EAAEy+B,SAAS,GAAG,IAAI3Q,EAAE4Q,IAAI1+B,EAAE,EAAE8tB,EAAEvjB,QAAQ,SAASvK,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,GAAG1H,EAAEA,EAAEw7B,OAAO9zB,EAAE,CAAC,MAAMyC,OAAE,IAASzC,EAAE0M,OAAO,IAAI1M,EAAE0M,OAAO,GAAGjK,IAAIoC,GAAGvM,EAAEk/B,WAAW/0B,GAAG,MAAM,CAACnI,IAAIhC,EAAEgH,MAAMmD,EAAE1G,QAAQZ,KAAK,UAAU,MAAMgrB,OAAE,IAASnmB,EAAE0zB,MAAM,IAAI1zB,EAAE0zB,MAAM,GAAGvN,IAAIthB,GAAGvM,EAAEk/B,WAAWrR,GAAG,MAAM,CAAC7rB,IAAIhC,EAAEgH,MAAM6mB,EAAEpqB,QAAQZ,KAAK,SAAS,MAAMe,OAAE,IAAS8D,EAAEyS,KAAK,IAAIzS,EAAEyS,KAAK,GAAGvW,IAAI2I,GAAGvM,EAAEk/B,WAAWt7B,GAAG,MAAM,CAAC5B,IAAIhC,EAAEgH,MAAMpD,EAAEH,QAAQZ,KAAK,QAAQsX,MAAK,EAAG,CAAC,MAAM,CAACnY,IAAIhC,EAAE6C,KAAK,QAAQ,EAAEirB,EAAE2Q,SAAS,SAASz+B,EAAEuM,GAAG,IAAIA,EAAE,MAAM,CAAC,EAAE,GAAG,GAAGvM,EAAE,KAAKuM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAGvM,EAAE,KAAKuM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI7E,EAAE,EAAE,KAAK1H,EAAE0H,KAAK6E,KAAK7E,EAAE,MAAM,CAACA,EAAE,EAAEA,EAAE,EAAE6E,EAAEumB,UAAU,EAAEvmB,EAAE4yB,SAAS,EAAE5yB,EAAEsiB,QAAQ,MAAM,WAAAR,GAAc/qB,KAAKmgB,KAAK,EAAE,CAAC,QAAAoP,CAAS7yB,EAAEmK,GAAG,GAAGnK,EAAE,GAAGmK,OAAE,IAASA,EAAEoC,EAAE4yB,SAASh1B,EAAEyH,MAAMie,QAAQ7vB,GAAG,IAAI,MAAMuM,KAAKvM,EAAEsD,KAAKuvB,SAAStmB,EAAEpC,QAAQ,GAAG/C,EAAEwrB,SAAS5yB,GAAG,IAAI,MAAMuM,KAAKvM,EAAE4uB,MAAMnL,KAAKlX,EAAEkyB,SAASt0B,GAAG,GAAG7G,KAAKmgB,KAAKte,KAAK,CAACs5B,SAASlyB,EAAEkyB,SAASt0B,EAAEgQ,KAAK5N,EAAE4N,YAAY5N,EAAE0uB,MAAMj7B,IAAI,UAAUA,EAAE6C,MAAM7C,EAAEy+B,SAASt0B,GAAG,GAAG7G,KAAKmgB,KAAKte,KAAK,CAACs5B,SAASz+B,EAAEy+B,SAASt0B,EAAEgQ,KAAKna,EAAEma,OAAO1S,EAAEA,GAAGC,EAAE,MAAMD,EAAEg0B,WAAWz7B,IAAIsD,KAAKuvB,SAAS7yB,EAAEyjB,OAAOtZ,EAAE,CAAC,UAAI1G,GAAS,OAAOH,KAAKmgB,KAAKhgB,MAAM,CAAC,KAAAssB,GAAQ,MAAM/vB,EAAE,IAAIuM,EAAEsiB,QAAQ,OAAO7uB,EAAEyjB,KAAKoK,EAAEvqB,KAAKmgB,MAAMzjB,CAAC,CAAC,KAAA61B,GAAQvyB,KAAKmgB,KAAK,EAAE,CAAC,KAAA2S,GAAQ,OAAO9yB,KAAKmgB,KAAKrN,QAAQpW,IAAIA,EAAEy+B,WAAWp6B,KAAKrE,GAAGA,EAAEma,MAAM,EAAC,EAAG,KAAK,CAACna,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAE,CAAC,EAAEA,EAAEwL,KAAKlvB,EAAEpE,SAASq5B,IAAI,GAAG1T,IAAI,GAAG+D,OAAM,GAAIljB,EAAEqlB,YAAYznB,EAAE+c,OAAO,CAAC6R,aAAa5uB,EAAEuyB,UAAUlH,WAAWrrB,EAAEuyB,UAAU1D,UAAU7uB,EAAEuyB,UAAUzW,MAAM9b,EAAEuyB,UAAUnyB,QAAQJ,EAAE+c,SAAS8K,QAAQ7nB,EAAEuyB,UAAUzD,WAAW9uB,EAAEgoB,MAAM,OAAO,MAAM,SAAS,OAAO,OAAOT,MAAMvnB,EAAEuyB,UAAU/G,OAAO,CAACuD,WAAW/uB,EAAEuyB,UAAU5rB,MAAM3G,EAAEgoB,MAAM,OAAO,OAAM,GAAIgH,SAAS,CAAChvB,EAAEpE,SAASoE,EAAE+c,SAAS5D,OAAOiB,OAAOpa,EAAEuyB,UAAUtD,MAAMjvB,EAAEuyB,UAAUrD,KAAK,CAACvoB,MAAM+c,EAAEwL,KAAK9zB,MAAMsoB,EAAEwL,KAAKtzB,OAAO8nB,EAAEwL,OAAO7H,UAAUrnB,EAAEuyB,UAAUzH,SAAS9qB,EAAE+c,SAASqS,WAAWpvB,EAAEuyB,UAAUpD,eAAenvB,EAAEuyB,UAAUzL,SAAS9mB,EAAEgoB,MAAM,WAAW,WAAW,aAAaqH,cAAcrvB,EAAEuyB,UAAUjD,aAAatvB,EAAE+c,OAAO,CAACmY,OAAOl1B,EAAEuyB,UAAU4C,QAAQn1B,EAAEuyB,YAAY6C,GAAG,SAAS,WAAW9P,OAAM,GAAG,GAAIgC,SAAStnB,EAAEuyB,YAAY3K,SAASlE,EAAE2R,OAAO,mBAAmB3R,EAAE4F,KAAKtpB,EAAE+c,OAAO,CAACmV,MAAMlyB,EAAE5E,QAAQk6B,MAAMt1B,EAAEpE,SAASC,QAAQ6nB,EAAE2R,SAAS5O,SAAS9sB,KAAKqG,EAAE5E,QAAQk6B,MAAMt1B,EAAEpE,SAASoE,EAAE+c,OAAO,CAACxb,KAAKvB,EAAEpE,SAASC,QAAQ6nB,EAAE2R,QAAQ1N,WAAWxO,IAAInZ,EAAEuyB,UAAUhI,OAAOvqB,EAAEywB,aAAa,CAACzwB,EAAEwyB,WAAWxyB,EAAE+c,SAAS6N,WAAW2K,YAAY,MAAM,CAACrN,IAAG,EAAGpqB,KAAKkC,EAAE2nB,aAAa2C,UAAUtqB,EAAEwyB,WAAW1b,QAAQ9W,EAAEpE,SAASqsB,KAAK,SAAS,CAACC,GAAGloB,EAAEwyB,WAAW10B,KAAKkC,EAAE2nB,gBAAgBE,QAAQ7nB,EAAEuyB,UAAUH,SAASpyB,EAAEuyB,UAAU5L,OAAO3mB,EAAEwyB,WAAWlN,OAAM,GAAIwD,MAAM9oB,EAAEuyB,UAAU1I,SAAS7pB,EAAEwyB,aAAapwB,EAAEixB,UAAUrzB,EAAE+c,OAAO,CAACrkB,KAAKsH,EAAEywB,aAAa,CAACzwB,EAAEpE,SAASoE,EAAE+c,SAAS6T,UAAUjJ,WAAWhuB,KAAKqG,EAAEwyB,WAAWvM,KAAKjmB,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAOr1B,EAAE+c,OAAO,CAACkV,KAAKjyB,EAAEwyB,WAAWgD,SAAS,GAAG7N,WAAW8N,GAAGz1B,EAAEwyB,WAAWkD,SAAS,GAAGF,SAAS,GAAG7N,cAAcuB,KAAKlpB,EAAE+c,SAAS6N,SAAS3C,KAAK,OAAO,CAACC,GAAGloB,EAAE+c,SAAS6T,QAAQ9yB,KAAKkC,EAAE6mB,cAAcmL,OAAO,CAAChyB,EAAEwyB,WAAWgD,SAAS,GAAGx1B,EAAE+c,OAAO,CAAC4J,OAAO3mB,EAAEwyB,WAAWgD,SAAS,GAAG7N,WAAWsK,KAAKjyB,EAAE5E,QAAQk6B,MAAMt1B,EAAEpE,UAAU6qB,YAAY/Z,MAAM1M,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAOr1B,EAAE+c,OAAO,CAAC4Y,OAAO31B,EAAEpE,SAAS4f,QAAQxb,EAAEotB,SAASgF,SAAS,CAACC,MAAMryB,EAAEwyB,WAAWoD,MAAM,IAAI9K,SAAS,CAAC9qB,EAAE+c,SAAS/c,EAAEpE,UAAU2tB,UAAUvpB,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAOr1B,EAAEwyB,WAAWkD,SAAS,GAAGF,SAAS,IAAIrD,UAAUnyB,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAOr1B,EAAEwyB,YAAYT,QAAQ/xB,EAAEwyB,WAAWgD,SAAS,GAAG5J,QAAQ5rB,EAAEwyB,WAAWoD,MAAM,GAAG/M,MAAM7oB,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAO3R,EAAE4F,MAAMkD,MAAMxsB,EAAE+c,SAASlhB,QAAQ6nB,EAAE2R,OAAOr1B,EAAE+c,OAAO,CAAC0P,KAAKzsB,EAAE5E,QAAQkqB,MAAM,MAAMqC,WAAWyK,SAASpyB,EAAE+c,SAASlhB,QAAQ,KAAK,CAACmE,EAAEgoB,MAAM,SAAS,UAAUhoB,EAAE+c,OAAO,CAAC8Y,OAAO71B,EAAE+c,OAAO,CAACkV,KAAKjyB,EAAEpE,SAAS+rB,WAAW8N,GAAGz1B,EAAEpE,SAAS+rB,aAAaA,kBAAkBkC,SAAS7pB,EAAEwyB,WAAWgD,SAAS,KAAK5N,SAASxlB,EAAEgxB,WAAWpzB,EAAE5E,QAAQk6B,MAAMt1B,EAAE+c,SAAS/c,EAAEwyB,WAAWoD,MAAM,IAAIhO,SAASlE,EAAEvH,KAAK,CAACtZ,OAAO7C,EAAE+c,OAAO,CAACla,OAAO7C,EAAEpE,WAAWi3B,KAAK7yB,EAAE+c,OAAO,CAACyV,SAASxyB,EAAEwyB,WAAW7K,WAAW1f,QAAQ,CAACykB,SAAQ,KAAMrG,SAASrmB,EAAE+c,OAAO,CAACsJ,UAAS,IAAKlN,IAAInZ,EAAE+c,OAAO,CAAC5D,IAAInZ,EAAE+c,OAAO,CAACrkB,KAAKsH,EAAEgoB,MAAM,QAAQ,SAAS,SAAShc,KAAKhM,EAAE5E,QAAQusB,WAAWyM,UAAUp0B,EAAEpE,SAAStC,OAAO,GAAGgsB,OAAM,GAAIgP,SAASt0B,EAAEkV,SAAS+f,IAAI,GAAGa,UAAUxQ,MAAM,QAAQprB,IAAI8F,EAAE5E,QAAQk6B,MAAMt1B,EAAE5E,QAAQ9B,OAAO,IAAI27B,IAAI,GAAGf,OAAOl0B,EAAEwyB,WAAW2B,UAAUn0B,EAAEuyB,UAAUiB,GAAGxzB,EAAEuyB,UAAUnY,OAAOpa,EAAEuyB,YAAY5K,aAAaiJ,MAAM5wB,EAAE+c,OAAO,CAAC6T,MAAM5wB,EAAEpE,SAASq5B,IAAI,KAAKc,QAAQ/1B,EAAE+c,OAAO,CAACgZ,QAAQ/1B,EAAEgoB,MAAM,QAAQL,aAAa+H,SAAS1vB,EAAE+c,OAAO,CAAC2S,SAAS1vB,EAAEpE,SAAS+rB,WAAW1f,QAAQjI,EAAE+c,WAAWvnB,MAAMwK,EAAE+c,OAAO,CAACvnB,MAAMwK,EAAEywB,aAAa,CAACzwB,EAAE+c,SAAS/c,EAAE5E,UAAUusB,cAAcjE,EAAEvH,KAAK6Z,OAAOh2B,EAAEywB,aAAa,CAACzwB,EAAE5E,QAAQk6B,MAAMt1B,EAAEyyB,KAAK,QAAQzyB,EAAEuyB,UAAUvyB,EAAEwyB,WAAWxyB,EAAEkV,SAASlV,EAAEpE,SAAS8nB,EAAEvH,KAAKtZ,OAAO6gB,EAAEvH,KAAK0W,KAAKnP,EAAEvH,KAAKhD,IAAIuK,EAAEvH,KAAKyU,MAAMlN,EAAEvH,KAAK4Z,QAAQrS,EAAEvH,KAAKuT,SAAShM,EAAEvH,KAAK3mB,MAAMwK,EAAEyyB,KAAK,OAAO/O,EAAEvH,KAAKzG,OAAO1V,EAAE5E,QAAQk6B,MAAM,KAAKt1B,EAAEuyB,UAAUvyB,EAAEwyB,WAAWxyB,EAAEkV,SAASoQ,MAAM,KAAI,KAAMtlB,EAAEpE,SAAS0pB,MAAM,IAAItlB,EAAEjE,SAAS2nB,EAAEvH,KAAKtZ,OAAO6gB,EAAEvH,KAAK0W,KAAKnP,EAAEvH,KAAKkK,SAAS3C,EAAEvH,KAAKhD,IAAIuK,EAAEvH,KAAKyU,MAAMlN,EAAEvH,KAAKuT,SAAShM,EAAEvH,KAAK3mB,OAAOkuB,EAAEvH,KAAK2O,SAAS9qB,EAAE+c,SAASlhB,QAAQ,KAAK,CAACmE,EAAEpE,SAAS8nB,EAAEvH,KAAKuT,SAAS1vB,EAAE+c,SAASlhB,QAAQ,KAAK,CAACmE,EAAEpE,SAAS8nB,EAAEvH,KAAKuT,aAAattB,EAAE8jB,YAAYlmB,EAAE+c,OAAO,CAACrkB,KAAKsH,EAAEpE,SAAS+rB,WAAWjb,MAAM1M,EAAE+c,OAAO,CAACkJ,KAAKjmB,EAAEpE,SAAS4f,QAAQxb,EAAEotB,MAAMlH,YAAYlmB,EAAEpE,SAASuqB,MAAMnmB,EAAEyyB,KAAK,KAAK7L,SAASlD,EAAEvH,KAAK6Z,OAAO3vB,GAAGrG,EAAEpE,SAAS+K,MAAM3G,EAAEpE,SAASsrB,MAAK,EAAGJ,SAAS,CAAC,WAAW,WAAW,aAAahxB,OAAO,CAAC,MAAM,SAASgyB,MAAM9nB,EAAEuyB,UAAUxK,KAAK/nB,EAAEpE,WAAWq6B,UAAUxO,YAAY,CAACmH,aAAa5uB,EAAEuyB,UAAUlH,WAAWrrB,EAAEuyB,UAAU1D,UAAU7uB,EAAEuyB,UAAUzW,MAAM9b,EAAEuyB,UAAU1K,QAAQ7nB,EAAEuyB,UAAUzD,WAAW,CAAC,OAAO,MAAM,SAAS,OAAO,OAAOtD,OAAO,CAACuD,WAAW/uB,EAAEuyB,UAAU5rB,MAAM,CAAC,OAAO,OAAOqoB,SAAS,CAAChvB,EAAEpE,SAAS8nB,EAAEvH,KAAKhD,KAAK+V,KAAK,CAACvoB,MAAM+c,EAAEwL,KAAK9zB,MAAMsoB,EAAEwL,OAAO7H,UAAUrnB,EAAEuyB,UAAUzH,SAASpH,EAAEvH,KAAK2O,SAASsE,WAAWpvB,EAAEuyB,UAAUpD,eAAenvB,EAAEuyB,UAAUzL,SAAS,CAAC,WAAW,WAAW,aAAauI,cAAcrvB,EAAEuyB,UAAUjD,aAAatvB,EAAE+c,OAAO,CAACmY,OAAOl1B,EAAEuyB,UAAU4C,QAAQn1B,EAAEuyB,YAAY6C,GAAG,SAAS,WAAW9P,OAAM,GAAG,GAAIgC,SAAStnB,EAAEuyB,WAAWjN,MAAM5B,EAAEvH,KAAKzG,OAAOsR,QAAQtD,EAAEvH,KAAKzG,OAAOmT,MAAM7oB,EAAE5E,QAAQ65B,IAAI,GAAGK,MAAM,CAAC/zB,KAAKvB,EAAEpE,SAAS+rB,WAAWhuB,KAAKqG,EAAE+c,SAASkY,IAAI,GAAGrM,KAAK5oB,EAAEuyB,UAAUzb,QAAQ,CAAC9W,EAAEpE,SAAS8nB,EAAEvH,KAAK2O,UAAUoL,KAAKl2B,EAAEuyB,YAAYjzB,KAAKU,EAAE+c,SAASlhB,QAAQ,KAAKmE,EAAEyyB,KAAK,MAAMA,KAAK/O,EAAEvH,KAAKhD,MAAMtd,QAAQ,aAAamE,EAAEotB,MAAK,EAAG,IAAI,CAACv3B,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAACzH,MAAMZ,OAAO,UAAUiB,EAAEN,QAAQ0H,EAAEk5B,MAAM,MAAM,WAAAjS,CAAYruB,EAAEuM,EAAE7E,GAAGpE,KAAK6S,KAAKnW,EAAEsD,KAAK2zB,UAAU1qB,EAAEjJ,KAAK8zB,SAAS1vB,EAAE0vB,SAAS9zB,KAAK4zB,QAAQxvB,EAAEwvB,QAAQ5zB,KAAKouB,MAAM,IAAI,CAAC,QAAAsF,CAASh3B,EAAEuM,EAAE,KAAK7E,EAAE,MAAM,MAAMyC,EAAE,IAAI/C,EAAEk5B,MAAMtgC,EAAEuM,EAAEjJ,MAAM,OAAOoE,GAAGyC,EAAE+sB,UAAU/sB,EAAE+sB,QAAQ,CAAC9vB,EAAE8vB,QAAQxvB,MAAMyC,EAAE+sB,UAAU/sB,CAAC,CAAC,IAAA4sB,CAAK/2B,EAAEuM,GAAG,MAAM7E,EAAE,IAAIN,EAAEk5B,MAAMh9B,KAAK6S,KAAK7S,KAAK2zB,UAAU3zB,MAAM,OAAOoE,EAAEwvB,QAAQxvB,EAAEwvB,SAAS,CAAC9vB,EAAE8vB,QAAQl3B,MAAM0H,EAAEwvB,SAASxvB,EAAEgqB,MAAMnlB,EAAE7E,CAAC,CAAC,MAAAo3B,CAAO9+B,EAAEuM,GAAGjJ,KAAK8zB,SAAS0H,OAAOx7B,KAAK8zB,SAAS0H,QAAQ,IAAI13B,EAAEm5B,OAAOj9B,KAAK8zB,SAAS0H,OAAO78B,IAAIqB,KAAK6S,KAAKnW,EAAEuM,EAAE,CAAC,QAAAmpB,GAAWpyB,KAAK8zB,SAAS0H,SAASx7B,KAAKk9B,UAAUr2B,EAAE7G,KAAK8zB,SAAS0H,OAAOvb,KAAKjgB,KAAK6S,QAAQ7S,KAAK8zB,SAAS1B,UAAU,CAAC,OAAAE,GAAUtyB,KAAK8zB,SAAS0H,SAASx7B,KAAK8zB,SAAS0H,OAAOtO,SAASltB,KAAK6S,KAAK7S,KAAKk9B,WAAWl9B,KAAKk9B,eAAU,GAAQl9B,KAAK8zB,SAASxB,SAAS,CAAC,MAAA6K,GAASn9B,KAAK8zB,SAAS0H,SAASx7B,KAAK8zB,SAAS0H,OAAOtO,SAASltB,KAAK6S,KAAK7S,KAAKk9B,WAAWl9B,KAAKk9B,eAAU,GAAQl9B,KAAK8zB,SAASqJ,QAAQ,GAAGr5B,EAAE8vB,QAAQ,SAASl3B,GAAG,OAAO4D,EAAEgvB,SAAS5yB,GAAG,CAAC+0B,OAAO/0B,GAAGA,CAAC,EAAEoH,EAAEm5B,OAAO,MAAM,WAAAlS,GAAc/qB,KAAKqsB,QAAQ,IAAI,CAAC,GAAA1tB,CAAIjC,EAAEuM,EAAE7E,GAAG,IAAI1H,EAAEyD,OAAO,OAAO,GAAG,UAAUiE,GAAG,iBAAiB1H,EAAEA,EAAEyD,OAAO,GAAG,OAAOH,KAAKqsB,QAAQrsB,KAAKqsB,SAAS,IAAIluB,IAAI,IAAI0I,EAAE7G,KAAKqsB,QAAQ,IAAI,IAAIpjB,EAAE,EAAEA,EAAEvM,EAAEyD,SAAS8I,EAAE,CAAC,MAAM7E,EAAE1H,EAAEuM,GAAG,IAAIshB,EAAE1jB,EAAEwK,IAAIjN,GAAGmmB,IAAIA,EAAE,IAAIpsB,IAAI0I,EAAElI,IAAIyF,EAAEmmB,IAAI1jB,EAAE0jB,CAAC,CAAC1jB,EAAE/C,EAAEzH,OAAO4M,CAAC,CAAC,GAAAoI,CAAI3U,GAAG,MAAMuM,EAAEjJ,KAAKigB,KAAKvjB,GAAG,GAAGuM,EAAE,OAAOA,EAAEnF,EAAEzH,MAAM,CAAC,IAAA4jB,CAAKvjB,GAAG,GAAGsD,KAAKqsB,QAAQ,OAAO9B,EAAEvqB,KAAKqsB,QAAQ3vB,EAAE,CAACs+B,WAAU,GAAI,CAAC,QAAA9N,CAASxwB,EAAEuM,GAAG,IAAIjJ,KAAKqsB,QAAQ,OAAO,MAAMjoB,EAAE1H,EAAEgH,MAAM,GAAG,GAAGmD,EAAEnK,EAAEA,EAAEyD,OAAO,GAAGG,EAAEiqB,EAAEvqB,KAAKqsB,QAAQjoB,EAAE,CAAC42B,WAAU,IAAK/xB,EAAE3I,EAAE3B,IAAIkI,EAAEoC,GAAG3I,GAAGA,EAAEtB,OAAO6H,EAAE,EAAC,EAAG,KAAK,CAACnK,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAE,CAAC9nB,OAAOnH,OAAO,YAAY2hC,MAAM,IAAI9uB,MAAM,KAAKjR,KAAK,MAAMggC,OAAO,IAAI/uB,MAAM,KAAKjR,KAAK,KAAKs4B,WAAW,CAAC+B,KAAK1T,KAAKpoB,UAAU0hC,aAAaC,IAAIvZ,KAAKpoB,UAAU4hC,YAAY/6B,OAAOuhB,KAAKpoB,UAAUG,SAAS0hC,KAAKzZ,KAAKpoB,UAAU8hC,aAAaC,IAAI3Z,KAAKpoB,UAAUgiC,cAAclhC,EAAEN,QAAQsuB,EAAEmT,SAAS,MAAM,WAAA9S,CAAYruB,EAAEuM,GAAG,GAAGpC,EAAE,iBAAiBnK,EAAE,oCAAoCmK,GAAGnK,EAAE6Z,SAAS,QAAQ7Z,EAAE6Z,SAAS,KAAK,8DAA8DvW,KAAKojB,OAAO1mB,EAAEsD,KAAK89B,SAASphC,EAAEsD,KAAKg4B,UAAU,KAAK/uB,EAAE,CAAC,MAAMyyB,UAAUh/B,KAAK0H,GAAG6E,EAAEjJ,KAAK+9B,UAAUpiC,OAAOwK,KAAK/B,GAAGjE,OAAOoqB,EAAEnmB,QAAG,EAAOpE,KAAKg+B,WAAWthC,EAAEsD,KAAKg+B,aAAan3B,EAAElL,OAAOwK,KAAKnG,KAAKg+B,YAAYtd,OAAOhkB,GAAG,iBAAiBA,IAAI,kCAAkCmK,EAAElL,OAAO4gB,OAAOvc,KAAKg+B,YAAYtd,OAAOhkB,GAAG,mBAAmBA,IAAI,sCAAsC,MAAMsD,KAAK+9B,eAAU,EAAO/9B,KAAKg+B,gBAAW,EAAOh+B,KAAKi+B,QAAQ,CAAC,MAAAA,GAAS,IAAIj+B,KAAKojB,OAAO7M,SAAS,KAAK,OAAO,MAAM7Z,EAAEguB,EAAEwT,OAAOl+B,KAAKojB,QAAQna,EAAEyhB,EAAEttB,MAAMV,GAAG,IAAI0H,GAAE,EAAG,MAAMyC,EAAE,GAAG0jB,EAAEthB,EAAEjH,QAAQuoB,GAAG1jB,EAAEhF,KAAK0oB,GAAG,IAAI,MAAM7tB,KAAKuM,EAAE,CAAC,MAAMA,EAAE,MAAMvM,EAAE,GAAG6tB,EAAEthB,EAAE,IAAI,KAAK3I,EAAE5D,EAAEyhC,QAAQ5T,GAAG,IAAI,IAAIjqB,GAAG,MAAM5D,EAAE,GAAG,CAACmK,EAAEhF,KAAK,IAAI6oB,EAAE0T,OAAO1hC,MAAM,QAAQ,CAAC,IAAIoH,EAAEpH,EAAEgH,MAAMuF,EAAE,EAAE,EAAE3I,GAAG,MAAM6D,EAAE,MAAML,EAAE,GAAGK,IAAIL,EAAEA,EAAEJ,MAAM,IAAI,MAAM8mB,EAAExqB,KAAKmD,KAAKunB,EAAE0T,OAAOt6B,GAAG,CAACyqB,IAAItlB,EAAEo1B,QAAQl6B,IAAI0C,EAAEhF,KAAK2oB,GAAG,iBAAiBA,IAAIpmB,GAAE,GAAI,MAAMqmB,EAAE/tB,EAAEgH,MAAMpD,EAAEiqB,EAAEpqB,QAAQsqB,GAAG5jB,EAAEhF,KAAK6oB,EAAE0T,OAAO3T,GAAG,CAACrmB,EAAEpE,KAAKg4B,UAAUnxB,EAAE7G,KAAK89B,SAASj3B,EAAExJ,KAAK,GAAG,CAAC,WAAOq6B,CAAKh7B,EAAEuM,GAAG,OAAOyhB,EAAEiL,WAAW1sB,EAAE0sB,YAAYp5B,KAAKG,EAAE,CAAC,QAAAwvB,CAASxvB,EAAE,CAAC,GAAG,IAAIsD,KAAK+9B,WAAWrhC,EAAE69B,QAAQ,OAAOv6B,KAAKojB,OAAO,MAAMna,EAAE,CAACstB,SAASv2B,KAAKojB,QAAQ,OAAOpjB,KAAK+9B,YAAY90B,EAAE6F,QAAQ9O,KAAK+9B,WAAW/9B,KAAKg+B,aAAa/0B,EAAEyyB,UAAU17B,KAAKg+B,YAAY/0B,CAAC,CAAC,YAAOiwB,CAAMx8B,GAAG,OAAO,IAAIguB,EAAEmT,SAASnhC,EAAE65B,SAAS75B,EAAEoS,SAASpS,EAAEg/B,UAAU,IAAIh/B,EAAEoS,QAAQ4sB,UAAUh/B,EAAEg/B,gBAAW,EAAO,CAAC,SAAA4C,GAAY,QAAQt+B,KAAKg4B,SAAS,CAAC,iBAAOG,CAAWz7B,GAAG,QAAQA,KAAKA,EAAEyH,EAAE2f,QAAQyS,SAAS,CAAC,IAAApW,GAAO,IAAIngB,KAAKg4B,UAAU,OAAO,MAAMt7B,EAAE,GAAG,IAAI,MAAMuM,KAAKjJ,KAAKg4B,UAAU,iBAAiB/uB,GAAGvM,EAAEmF,QAAQoH,EAAEkX,MAAM,OAAOzjB,CAAC,CAAC,OAAA0E,CAAQ1E,EAAEuM,EAAE7E,EAAEyC,GAAG,OAAO7G,KAAKg4B,WAAW,IAAIh4B,KAAKg4B,UAAU73B,OAAOH,KAAKu+B,MAAMv+B,KAAKg4B,UAAU,GAAGt7B,EAAEuM,EAAE7E,EAAEyC,EAAE,CAAC,GAAG7G,KAAKihB,OAAOvkB,EAAEuM,EAAE7E,EAAEyC,EAAE,CAAC,KAAA03B,CAAM7hC,KAAKuM,GAAG,OAAOvM,EAAEsjB,IAAItjB,EAAEsjB,IAAI5e,WAAW6H,GAAGvM,EAAE8hC,QAAQC,SAASx1B,EAAE,CAAC,MAAAgY,CAAOvkB,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAE,CAAC,GAAG,IAAIvqB,KAAKs+B,YAAY,OAAOt+B,KAAK89B,SAAS,MAAMh6B,EAAE,GAAG,IAAI,MAAMK,KAAKnE,KAAKg4B,UAAU,GAAG,iBAAiB7zB,EAAEL,EAAEjC,KAAKsC,OAAO,CAAC,MAAMqmB,EAAExqB,KAAKu+B,MAAMp6B,EAAEzH,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAGE,EAAEC,EAAEgU,UAAUlU,EAAE9tB,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,QAAG,IAASE,EAAE,CAAC,MAAM/tB,EAAEyH,EAAEoqB,MAAK,KAAMhE,EAAE8H,QAAQ9H,EAAE8H,OAAOuD,YAAYnL,EAAEnqB,EAAEmqB,GAAG3mB,EAAEjC,KAAK6oB,EAAEqL,KAAKr5B,EAAEyH,EAAEk6B,SAASj6B,EAAEiuB,OAAO0D,KAAKvoB,OAAO,CAAC,CAAC,OAAO1J,EAAEzG,KAAK,GAAG,CAAC,IAAA8F,CAAKzG,GAAG6xB,IAAItlB,EAAEo1B,QAAQj6B,IAAI,MAAMyC,EAAE,GAAG0jB,EAAE7tB,IAAI,MAAMuM,EAAEwhB,EAAE/d,OAAOhQ,EAAEsD,KAAK+9B,WAAW,OAAOl3B,EAAEhF,KAAKoH,GAAGvM,IAAI,MAAM0H,EAAE6E,EAAE7H,WAAW1E,GAAG,YAAO,IAAS0H,EAAEA,EAAE,KAAI,EAAG,IAAI,MAAM6E,EAAEjJ,KAAKg+B,WAAW,IAAItT,EAAEgR,aAAa17B,KAAKg+B,YAAYtT,EAAEgR,UAAU,IAAIp7B,EAAE,IAAIwD,EAAE66B,OAAOjiC,EAAE,CAACkiC,UAAUrU,EAAEmR,UAAUzyB,EAAE41B,UAAUnU,EAAEmU,WAAW,CAAC,MAAM51B,GAAG,MAAMA,EAAE0U,QAAQ,8BAA8BjhB,oBAAoBuM,EAAE0U,UAAU1U,CAAC,CAAC,GAAG3I,EAAEgtB,OAAO,CAAC,GAAG,cAAchtB,EAAEgtB,OAAO/tB,KAAK,CAAC,MAAM7C,EAAEmK,EAAE,GAAG,MAAM,CAACmZ,IAAItjB,EAAE6xB,IAAItlB,EAAEkX,KAAKtZ,EAAEw3B,QAAQj6B,GAAG,UAAU1H,EAAE6C,MAAM,UAAU7C,EAAEgC,IAAI,CAAC,OAAOgsB,EAAEgU,UAAUp+B,EAAEgtB,OAAOjxB,MAAM,CAAC,MAAM,CAACmiC,QAAQl+B,EAAEiuB,IAAItlB,EAAEkX,KAAKtZ,EAAE,CAAC,QAAA9K,GAAW,OAAOiE,KAAKojB,MAAM,GAAGsH,EAAEmT,SAASjiC,UAAUuI,EAAE2f,QAAQyS,WAAU,EAAG7L,EAAEmT,SAASjiC,UAAUu4B,aAAY,EAAGzJ,EAAEwT,OAAO,SAASxhC,GAAG,OAAOA,EAAEu7B,QAAQ,YAAW,CAAEv7B,EAAEuM,IAAIyhB,EAAE0S,MAAM15B,MAAM,EAAEuF,EAAE9I,UAAU83B,QAAQ,YAAW,CAAEv7B,EAAEuM,IAAIyhB,EAAE2S,OAAO35B,MAAM,EAAEuF,EAAE9I,SAAS,EAAEuqB,EAAE0T,OAAO,SAAS1hC,GAAG,OAAOA,EAAEu7B,QAAQ,UAAU,KAAKA,QAAQ,UAAU,IAAI,EAAEvN,EAAEttB,MAAM,SAASV,GAAG,MAAMuM,EAAE,GAAG,IAAI7E,EAAE,GAAG,IAAI,IAAIyC,EAAE,EAAEA,EAAEnK,EAAEyD,SAAS0G,EAAE,CAAC,MAAM0jB,EAAE7tB,EAAEmK,GAAG,GAAG,MAAM0jB,EAAE,CAAC,IAAIA,EAAE,GAAG,KAAK1jB,EAAE,EAAEnK,EAAEyD,QAAQ,MAAMzD,EAAEmK,EAAE,IAAI0jB,GAAG,MAAM1jB,EAAEoC,EAAEpH,KAAKuC,GAAGA,EAAEmmB,CAAC,MAAMnmB,GAAGmmB,CAAC,CAAC,OAAOthB,EAAEpH,KAAKuC,GAAG6E,CAAC,EAAEyhB,EAAEqL,KAAK,SAASr5B,EAAEuM,GAAG,OAAOA,EAAE,IAAIA,EAAE9I,OAAO,GAAG8I,IAAIvM,IAAIuM,IAAI,GAAGA,EAAE,KAAKvM,IAAIuM,EAAE,KAAKvM,CAAC,EAAEguB,EAAEgU,UAAU,SAAShiC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,EAAE,CAAC,GAAG,MAAMwD,SAASpH,EAAEyH,EAAE0C,GAAGA,EAAEwrB,QAAQxrB,EAAEwrB,OAAO0D,MAAM,CAAC,EAAE,IAAIvL,GAAE,EAAG,GAAGC,EAAEkN,MAAMj7B,IAAIA,EAAEukB,SAASuJ,EAAE9tB,EAAE29B,GAAG39B,EAAEA,EAAE0E,QAAQ6H,EAAE7E,EAAEyC,EAAE0jB,EAAE,CAAC8P,GAAG39B,EAAE29B,MAAM/5B,KAAK,OAAO5D,EAAE,MAAM,OAAO,GAAG,WAAWoH,EAAE,OAAO4mB,EAAEqL,KAAKr5B,EAAE4D,EAAEw+B,YAAY36B,EAAE1B,QAAQ,GAAG,WAAWqB,GAAG,aAAaA,GAAG,WAAWA,EAAE,OAAOpH,EAAEX,WAAW,GAAG,WAAW+H,EAAE,OAAOi7B,KAAKL,UAAUhiC,GAAG,GAAGA,aAAasnB,KAAK,OAAO0G,EAAEmT,SAASnG,KAAKh7B,EAAEmK,GAAG,GAAGnK,aAAayB,IAAI,CAAC,MAAM8K,EAAE,GAAG,IAAI,MAAM7E,EAAEyC,KAAKnK,EAAEi+B,UAAU1xB,EAAEpH,KAAK,GAAGuC,EAAErI,iBAAiB8K,EAAE9K,cAAcW,EAAEuM,CAAC,CAAC,IAAIqF,MAAMie,QAAQ7vB,GAAG,OAAOA,EAAEX,WAAW,MAAM4uB,EAAE,GAAG,IAAI,MAAM7mB,KAAKpH,EAAEiuB,EAAE9oB,KAAK6oB,EAAEgU,UAAU56B,EAAEmF,EAAE7E,EAAEyC,EAAE0jB,EAAE,CAACuU,YAAW,KAAMx+B,KAAK,OAAOoqB,EAAEqL,KAAKpL,EAAEttB,KAAK,OAAOmtB,GAAGrmB,EAAElC,MAAM,EAAEyoB,EAAEmU,UAAU,CAACG,MAAK,EAAGC,OAAM,EAAGxvB,KAAK,KAAKyvB,OAAO,IAAI9U,OAAO,IAAID,KAAK,KAAKgV,IAAI,OAAOzU,EAAEgR,UAAU,CAAC0D,GAAG,CAAC1iC,EAAEuM,EAAE7E,IAAI1H,EAAEuM,EAAE7E,EAAEjE,OAAOzD,GAAG,iBAAiBA,EAAEA,EAAEyD,OAAOzD,GAAG,iBAAiBA,EAAE4R,MAAMie,QAAQ7vB,GAAGA,EAAEyD,OAAOxE,OAAOwK,KAAKzJ,GAAGyD,OAAO,KAAK,GAAAk/B,CAAI3iC,GAAG,MAAMuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,GAAGN,KAAK8D,EAAExD,EAAEqxB,SAAS,IAAI7tB,EAAE,MAAM,GAAG,MAAMK,EAAEqmB,EAAE+L,SAASttB,EAAEnF,EAAE,GAAGpH,EAAE0H,EAAEyC,IAAI2jB,EAAE+L,SAASttB,EAAEnF,EAAE,GAAGpH,EAAE0H,EAAEyC,GAAG,OAAO1C,EAAEA,EAAE8c,OAAOhY,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,GAAG,EAAE,EAAEyb,OAAOrf,GAAG,iBAAiBA,EAAEA,EAAE,iBAAiBA,EAAE4iC,WAAW5iC,GAAG,kBAAkBA,EAAEA,EAAE,EAAE,EAAEA,aAAasnB,KAAKtnB,EAAE6iC,UAAU,KAAI,EAAG,KAAK,CAAC7iC,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAE,CAAC,EAAEhuB,EAAEN,QAAQkE,EAAEwvB,OAAO,CAACvwB,KAAK,eAAegU,MAAM,CAAC5J,MAAM,CAAC0Y,QAAQ,QAAQgR,MAAM,CAACmM,QAAQ,CAAClM,KAAK,GAAG/D,SAAS9E,EAAE+E,YAAYhvB,KAAK,CAAC9D,KAAKuM,IAAI,IAAIA,EAAE9I,QAAQmO,MAAMie,QAAQtjB,EAAE,IAAIvM,EAAE66B,OAAOtuB,EAAE,IAAIvM,EAAE66B,OAAOtuB,GAAG,QAAAynB,CAASh0B,EAAEuM,GAAG,MAAMwoB,OAAOrtB,EAAEQ,MAAMiC,EAAEgJ,MAAMvP,EAAE2tB,MAAMnqB,GAAGmF,EAAE,GAAG7E,EAAEunB,OAAOhiB,MAAM,CAAC,MAAMV,EAAE,GAAG9E,EAAE,GAAG,IAAI,IAAI0C,EAAE,EAAEA,EAAEzC,EAAE0nB,QAAQ0T,QAAQr/B,SAAS0G,EAAE,CAAC,MAAM0jB,EAAEnmB,EAAE0nB,QAAQ0T,QAAQ34B,GAAG2jB,EAAElqB,EAAEmzB,KAAKlJ,EAAEkH,OAAO,SAAS5qB,KAAK2jB,EAAE4H,WAAW,MAAM3H,EAAEF,EAAEkH,OAAOuB,WAAWt2B,EAAE8tB,EAAE1mB,GAAG2mB,EAAE4H,QAAQluB,EAAEtC,KAAK4oB,EAAE4H,QAAQ7H,EAAE8H,YAAYrpB,EAAEpH,KAAK4oB,EAAEpuB,OAAOmuB,EAAE2S,SAAS,CAAC,GAAG,IAAIl0B,EAAE9I,OAAO,MAAM,CAACkyB,OAAOxrB,EAAE,mBAAmB,CAAC2vB,QAAQryB,EAAEpD,KAAKrE,GAAG8tB,EAAEgM,QAAQ95B,EAAE,CAACwwB,UAAS,SAAU,GAAG,QAAQ9oB,EAAEunB,OAAOhiB,MAAM,OAAO,IAAIV,EAAE9I,OAAO,CAAC9D,MAAM4M,EAAE,IAAI,CAACopB,OAAOxrB,EAAE,qBAAqB,GAAGoC,EAAE9I,SAASiE,EAAE0nB,QAAQ0T,QAAQr/B,OAAO,MAAM,CAACkyB,OAAOxrB,EAAE,mBAAmB,CAAC2vB,QAAQryB,EAAEpD,KAAKrE,GAAG8tB,EAAEgM,QAAQ95B,EAAE,CAACwwB,UAAS,SAAU,MAAMzC,EAAE/tB,GAAGA,EAAEovB,QAAQ0T,QAAQp9B,MAAM1F,GAAG,WAAWA,EAAE+0B,OAAOlyB,MAAM,iBAAiB7C,EAAE+0B,OAAOlyB,MAAMkrB,EAAE/tB,EAAE+0B,UAAU,OAAOhH,EAAErmB,GAAG,CAAC/H,MAAM4M,EAAE5I,QAAO,CAAE3D,EAAEuM,IAAIshB,EAAE7tB,EAAEuM,EAAE,CAACw2B,aAAY,OAAQ,CAACpjC,MAAM4M,EAAEA,EAAE9I,OAAO,GAAG,CAAC,MAAMgE,EAAE,GAAG,IAAI,IAAI8E,EAAE,EAAEA,EAAE7E,EAAE0nB,QAAQ0T,QAAQr/B,SAAS8I,EAAE,CAAC,MAAMpC,EAAEzC,EAAE0nB,QAAQ0T,QAAQv2B,GAAG,GAAGpC,EAAE4qB,OAAO,CAAC,MAAMrtB,EAAE9D,EAAEmzB,KAAK5sB,EAAE4qB,OAAO,SAASxoB,KAAK7E,EAAEguB,WAAW,MAAM7H,EAAE1jB,EAAE4qB,OAAOuB,WAAWt2B,EAAE0H,EAAEN,GAAG,IAAIymB,EAAE8H,OAAO,OAAOjuB,EAAE+4B,SAAS5S,EAAEnmB,EAAEkuB,UAAUnuB,EAAEtC,KAAK,CAAC4vB,OAAO5qB,EAAE4qB,OAAOiO,QAAQnV,EAAE8H,SAAS,QAAQ,CAAC,MAAM9H,EAAE1jB,EAAEmZ,IAAInZ,EAAEmZ,IAAI5e,QAAQ1E,EAAE4D,EAAEwD,GAAGpH,EAAE8tB,EAAE3jB,EAAEkoB,GAAG,CAACloB,GAAGA,EAAEmoB,OAAO,IAAI,IAAI5qB,EAAE,EAAEA,EAAEomB,EAAErqB,SAASiE,EAAE,CAAC,MAAMD,EAAEqmB,EAAEpmB,IAAI2qB,GAAGtE,EAAE9lB,KAAK+lB,EAAEuE,UAAUtE,GAAGxmB,EAAEgX,EAAE,SAASlS,IAAIpC,EAAEmoB,OAAO,IAAI5qB,EAAE,KAAK,GAAGqmB,EAAEwH,QAAQ1H,EAAEjqB,EAAEmzB,KAAKhJ,EAAE,GAAGtP,QAAQrX,IAAI,GAAG4mB,EAAE,OAAOA,EAAEsI,WAAWt2B,EAAE4D,EAAEmzB,KAAK/I,EAAE,GAAGvP,UAAUrX,QAAQ,GAAG6mB,EAAE,OAAOA,EAAEqI,WAAWt2B,EAAE4D,EAAEmzB,KAAK9I,EAAE,GAAGxP,eAAerX,EAAE,CAAC,CAAC,OAAO4mB,EAAE2H,OAAOluB,EAAE8E,EAAE,EAAEymB,MAAM,CAAC0M,YAAY,CAAC,MAAA5O,CAAO9wB,EAAEuM,GAAGpC,GAAG7G,KAAK2rB,OAAOgU,aAAa,yBAAyB94B,GAAG7G,KAAK2rB,OAAOhiB,MAAM,4BAA4B3J,KAAK2rB,OAAOhiB,MAAM,yBAAyB9C,OAAE,IAASoC,EAAE4qB,MAAM,yDAAyD,MAAMzvB,EAAEpE,KAAKysB,QAAQlC,EAAEpmB,EAAE2qB,KAAK1qB,EAAE1H,EAAEuM,GAAG3I,EAAEiqB,EAAEwE,GAAG,CAACxE,GAAGA,EAAEyE,OAAO,IAAI,MAAMtyB,KAAK4D,EAAE,GAAG5D,EAAEiI,MAAMjI,EAAEuyB,UAAU,CAAC7qB,EAAEyoB,UAAU,gBAAe,EAAG,CAACJ,OAAM,IAAK,KAAK,CAAC,OAAOroB,EAAE0nB,QAAQ0T,QAAQ39B,KAAK0oB,GAAGnmB,EAAE8qB,iBAAiB,GAAGvlB,MAAM,CAAC,MAAA6jB,CAAO9wB,GAAG,GAAGmK,EAAE,CAAC,MAAM,MAAM,OAAO0P,SAAS7Z,GAAG,kCAAkCA,GAAG,QAAQA,EAAE,IAAI,MAAMuM,KAAKjJ,KAAK8rB,QAAQ0T,QAAQ34B,EAAEoC,EAAEwoB,OAAO,4BAA4B/0B,EAAE,0BAA0B,OAAOsD,KAAK6sB,UAAU,QAAQnwB,EAAE,GAAG66B,IAAI,CAAC,MAAA/J,IAAU9wB,GAAGmK,EAAEnK,EAAEyD,OAAO,+BAA+B2D,EAAEsoB,WAAW1vB,EAAE,OAAOmK,GAAG7G,KAAK2rB,OAAOgU,aAAa,yBAAyB,MAAM12B,EAAEjJ,KAAKysB,QAAQ,IAAI,MAAMroB,KAAK1H,EAAEuM,EAAE6iB,QAAQ0T,QAAQ39B,KAAK,CAAC4vB,OAAOxoB,EAAEgkB,UAAU7oB,KAAK,OAAO6E,EAAEimB,iBAAiB,IAAI8J,UAAU,CAAC,KAAAxrB,CAAM9Q,GAAG,OAAOsD,KAAK+yB,SAAS,QAAQr2B,GAAG6zB,SAAS,CAACC,KAAK,CAACvnB,EAAE7E,IAAI,OAAOA,EAAEyO,KAAK,IAAI,iBAAiB5J,EAAE0iB,OAAOne,MAAMvE,EAAEuE,MAAM9Q,QAAG,EAAOsjB,KAAI,GAAI,GAAG,OAAAyS,CAAQ/1B,GAAGA,EAAE6zB,SAAS,CAACC,KAAKvnB,IAAInF,EAAEwrB,SAASrmB,IAAI,UAAUA,EAAE1J,MAAM7C,EAAEmwB,UAAU,eAAc,EAAG,CAACJ,OAAM,GAAG,GAAI,EAAEwM,SAAS,CAAC,KAAAC,CAAMx8B,EAAEuM,GAAG,GAAGA,EAAEu2B,QAAQ,IAAI,MAAMp7B,KAAK6E,EAAEu2B,QAAQ,CAAC,MAAM/N,OAAOxoB,EAAE+W,IAAInZ,EAAEkoB,GAAGxE,EAAEiK,IAAIl0B,EAAEqE,KAAKb,EAAEmrB,UAAU9qB,GAAGC,EAAE1H,EAAEuM,EAAEvM,EAAE66B,IAAItuB,GAAGpC,EAAEnK,EAAE0/B,YAAYv1B,EAAE,CAACkoB,GAAGxE,EAAE5lB,KAAKb,EAAE0wB,IAAIl0B,EAAE2uB,UAAU9qB,EAAE6qB,OAAO5qB,EAAE4qB,SAAStyB,EAAE0/B,YAAY7R,EAAE,CAAC5lB,KAAKb,EAAEmrB,UAAU9qB,GAAG,CAAC,OAAOzH,CAAC,GAAGi1B,SAAS,CAAC,mBAAmB,sDAAsD,mBAAmB,qDAAqD,qBAAqB,qDAAqD,mBAAmB,gDAAgD,qBAAqB,0CAA0CjH,EAAE2H,OAAO,SAAS31B,GAAGkI,MAAMqE,EAAE4G,MAAMzL,IAAI,IAAI1H,EAAEyD,OAAO,MAAM,CAACkyB,OAAOppB,EAAE,qBAAqB,GAAG,IAAIvM,EAAEyD,OAAO,MAAM,CAACkyB,OAAO31B,EAAE,GAAGgjC,SAAS,MAAM74B,EAAE,IAAI6tB,IAAInK,EAAE,GAAG,IAAI,MAAMmV,QAAQp/B,EAAEmxB,OAAO3tB,KAAKpH,EAAE,CAAC,GAAG4D,EAAEH,OAAO,EAAE,OAAOuqB,EAAEkV,UAAUljC,EAAEuM,GAAG,MAAM9E,EAAE7D,EAAE,GAAG,GAAG6D,aAAaqmB,EAAEoH,QAAQ,EAAE,OAAOlH,EAAEkV,UAAUljC,EAAEuM,GAAG,GAAG9E,EAAE0L,MAAMgD,KAAK1S,SAASiE,EAAEyO,KAAK1S,OAAO,CAACoqB,EAAE1oB,KAAK,CAACtC,KAAKuE,EAAEvE,KAAKsgC,OAAO17B,IAAI,QAAQ,CAAC,GAAG,aAAaA,EAAEtH,KAAK,CAAC,IAAI,MAAMH,KAAKyH,EAAE2zB,MAAMgI,OAAOj5B,EAAEoO,IAAIvY,GAAG,QAAQ,CAAC,MAAM+tB,EAAEE,GAAGxmB,EAAEtH,KAAKO,MAAM,KAAK,SAASutB,EAAEJ,EAAE1oB,KAAK,CAACtC,KAAKuE,EAAEvE,KAAKsgC,OAAO17B,IAAI,gBAAgBA,EAAEtH,KAAKgK,EAAEoO,IAAI9Q,EAAE2zB,MAAMv4B,MAAMsH,EAAEoO,IAAIwV,EAAE,CAAC,OAAOF,EAAEpqB,OAAO,IAAIoqB,EAAEpqB,OAAO,CAACkyB,OAAO9H,EAAE,GAAGsV,QAAQnV,EAAEkV,UAAUljC,EAAEuM,GAAG,CAACopB,OAAOppB,EAAE,qBAAqB,CAACkwB,MAAM,IAAItyB,KAAK,EAAE6jB,EAAEkV,UAAU,SAASljC,EAAEuM,GAAG,MAAM7E,EAAE,GAAG,IAAI,MAAM6E,KAAKvM,EAAE0H,EAAEvC,QAAQoH,EAAEy2B,SAAS,MAAM,CAACrN,OAAOppB,EAAE,qBAAqBuhB,EAAEgM,QAAQpyB,EAAE,CAAC8oB,UAAS,KAAM,GAAG,KAAK,CAACxwB,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAM1H,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,MAAMgU,MAAM,CAACwa,KAAK,CAAC1L,SAAQ,IAAKgR,MAAM,CAAC3G,YAAY,CAAC4G,KAAK,MAAMyM,SAAS,CAACzM,KAAK,MAAMpF,UAAU,CAACoF,KAAK,MAAM0M,MAAM,CAAC1M,KAAK,IAAI2M,MAAM,CAAC3M,KAAK,IAAI4M,OAAO,CAAC5M,KAAK,MAAM6M,KAAK,CAAC7M,KAAK,IAAIrH,MAAM,CAACqH,KAAK,OAAO5D,MAAM,CAAC2H,OAAO,CAAC,MAAA7J,CAAO9wB,EAAEuM,GAAG,OAAOpC,EAAE,mBAAmBnK,EAAE,6BAA6BmK,OAAE,IAASoC,GAAGA,GAAG,iBAAiBA,EAAE,0CAA0CjJ,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACgtB,OAAO9wB,EAAEqwB,YAAY9jB,IAAI,EAAE,QAAAynB,CAASh0B,EAAEuM,GAAGukB,OAAOppB,IAAI,IAAI,OAAOA,EAAE1H,EAAEuM,EAAE,CAAC,MAAMvM,GAAG,OAAOuM,EAAErE,MAAM,aAAa,CAACA,MAAMlI,GAAG,CAAC,EAAE8D,KAAK,CAAC,SAAS,eAAemvB,OAAM,GAAIgC,SAAS,CAAC,MAAAnE,CAAO9wB,GAAG,OAAOsD,KAAKiuB,MAAM,CAAC0D,SAASj1B,GAAG,GAAGwjC,OAAO,CAAC,MAAA1S,CAAO9wB,GAAGmK,EAAEvG,EAAEgvB,SAAS5yB,IAAIA,EAAEivB,OAAOze,GAAG,sCAAsC,MAAMjE,EAAEjJ,KAAKysB,QAAQ,OAAOxjB,EAAE6iB,QAAQoU,OAAOj3B,EAAE6iB,QAAQoU,QAAQ,GAAGj3B,EAAE6iB,QAAQoU,OAAOr+B,KAAKnF,GAAGuM,EAAEioB,iBAAiBx0B,GAAGuM,CAAC,GAAGm3B,QAAQ,CAAC,MAAA5S,CAAO9wB,EAAEuM,GAAG,OAAOpC,EAAEnK,GAAG,iBAAiBA,EAAE,wBAAwBsD,KAAK8wB,UAAU,CAAC1oB,KAAK,UAAU5H,KAAK,CAAC3D,KAAKH,EAAEo7B,MAAM7uB,GAAG8zB,MAAK,GAAI,EAAErM,SAAS,CAACh0B,EAAEuM,GAAGpM,KAAKuH,EAAE0zB,MAAMjxB,KAAKoC,EAAErE,MAAMR,EAAEyC,GAAGrG,KAAK,CAAC,OAAO,SAASmvB,OAAM,IAAKS,UAAU,CAAC,IAAAX,CAAK/yB,EAAEuM,GAAE,GAAIvM,EAAE+yB,KAAKxmB,CAAC,EAAE,OAAA0U,CAAQjhB,EAAEuM,GAAGvM,EAAEihB,QAAQ7Z,EAAEowB,QAAQjrB,EAAE,EAAE,IAAA8zB,CAAKrgC,EAAEuM,GAAE,GAAIvM,EAAEqgC,KAAK9zB,CAAC,GAAGgwB,SAAS,CAAC,KAAAC,CAAMx8B,EAAEuM,GAAG,IAAI,MAAM7E,KAAK6E,EAAE,CAAC,MAAMpC,EAAEoC,EAAE7E,GAAG,GAAG,CAAC,WAAW,YAAY,QAAQ,QAAQ,QAAQmS,SAASnS,GAAG,IAAI,MAAM6E,KAAKpC,EAAEnK,EAAEA,EAAE0H,EAAEV,MAAM,GAAG,IAAIuF,QAAQ,GAAG,gBAAgB7E,EAAE,GAAG,UAAUA,GAAG,GAAG,WAAWA,EAAE,IAAI,MAAM6E,KAAKpC,EAAEnK,EAAEA,EAAEwjC,OAAOj3B,QAAQ,IAAI,MAAMA,KAAKpC,EAAE,CAAC,MAAMmZ,IAAI5b,EAAE2qB,GAAGloB,EAAE2tB,IAAIjK,EAAE5lB,KAAKrE,EAAE2uB,UAAUnrB,EAAEyD,OAAOpD,GAAG8E,EAAEvM,EAAEyH,EAAEzH,EAAE6K,OAAOpD,GAAGC,EAAE1H,EAAEoyB,KAAK1qB,EAAE,CAAC2qB,GAAGloB,EAAE2tB,IAAIjK,EAAE5lB,KAAKrE,EAAE2uB,UAAUnrB,EAAEkrB,OAAO/lB,EAAE+lB,OAAO6E,MAAM5qB,EAAE4qB,QAAQn3B,EAAEoyB,KAAKjoB,EAAE,CAAClC,KAAKrE,EAAE2uB,UAAUnrB,EAAE+vB,MAAM5qB,EAAE4qB,OAAO,KAAK,CAAC,MAAM5qB,EAAE,CAAC,EAAE,IAAI,MAAMka,OAAOzmB,EAAEiwB,SAASvoB,KAAKyC,EAAEoC,EAAEvM,GAAG0H,EAAE1H,EAAEA,EAAE4vB,MAAMrjB,EAAE,CAAC,CAAC,OAAOvM,CAAC,GAAGi1B,SAAS,CAAC,aAAa,iEAAiE,cAAc,wDAAwD,eAAe,yDAAyD,cAAc,uCAAuC,WAAW,yEAAyE,UAAU,6DAA6D,eAAe,yBAAyB,cAAc,8BAA6B,EAAG,IAAI,CAACj1B,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAE,CAAC,EAAE/tB,EAAEN,QAAQ0H,EAAEgsB,OAAO,CAACvwB,KAAK,QAAQgU,MAAM,CAAC+Z,OAAO,CAACjL,SAAQ,GAAIge,OAAO,CAAChe,SAAQ,IAAKgR,MAAM,CAAC8I,MAAM,CAAC7I,KAAK,GAAG2F,SAAS,UAAUqH,QAAQ,CAAChN,KAAK,GAAG2F,SAAS,UAAUsH,YAAY,CAACjN,KAAK,IAAIkN,YAAY,CAAClN,KAAK,IAAImN,WAAW,CAACnN,KAAK,KAAKuF,OAAO,CAACC,KAAK,SAAS,MAAAtL,CAAO9wB,GAAG+0B,OAAOxoB,EAAE4G,MAAMzL,EAAE6pB,MAAMpnB,IAAI,IAAIyH,MAAMie,QAAQ7vB,GAAG,OAAO,MAAM6tB,EAAEthB,EAAE6oB,UAAU,QAAQ,OAAOvH,EAAEE,EAAEiW,KAAKz3B,EAAEvM,EAAE6tB,EAAE/pB,KAAKsO,QAAQ1K,EAAEyC,QAAG,CAAM,GAAG,QAAA6pB,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,IAAI,IAAIkK,MAAMie,QAAQ7vB,GAAG,CAAC,GAAGuM,EAAE0iB,OAAO2B,OAAO,CAAC,MAAMrkB,EAAE,CAACvM,GAAG,OAAOuM,EAAE9E,EAAE2f,QAAQuS,cAAa,EAAG,CAACh6B,MAAM4M,EAAE,CAAC,MAAM,CAACopB,OAAOjuB,EAAE,cAAc,CAAC,GAAG6E,EAAE6oB,UAAU,UAAU7oB,EAAE6iB,QAAQoC,UAAU,MAAM,CAAC7xB,MAAMK,EAAEgH,QAAQ,EAAEgsB,MAAM,CAACja,IAAI,CAAC,MAAA+X,CAAO9wB,GAAGA,EAAEsD,KAAKitB,UAAUvwB,EAAE,CAACy6B,YAAW,IAAK,MAAMluB,EAAEjJ,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAM5H,KAAK,CAACixB,OAAO/0B,KAAK,OAAOuM,EAAEioB,iBAAiBx0B,GAAGuM,CAAC,EAAE,QAAAynB,CAASh0B,GAAGmT,MAAM5G,EAAEglB,MAAM7pB,EAAEQ,MAAMiC,IAAI4qB,OAAOlH,IAAI,MAAMjqB,EAAE,CAAC5D,KAAKuM,EAAE0qB,WAAW,IAAI,IAAI9sB,EAAE,EAAEA,EAAEnK,EAAEyD,SAAS0G,EAAE,CAAC,MAAM/C,EAAEmF,EAAEyqB,SAAS,IAAIzqB,EAAE4J,KAAKhM,GAAGvG,EAAEiqB,GAAG,GAAGA,EAAE0H,QAAQv1B,EAAEmK,GAAG/C,EAAEM,GAAG,OAAO1H,CAAC,CAAC,MAAMoH,EAAEymB,EAAEoB,OAAOne,MAAM,OAAO1J,EAAE+C,EAAE,iBAAiB,CAAC85B,aAAa78B,IAAI+C,EAAE,mBAAmB,KAAK,EAAE8oB,OAAM,GAAIwM,MAAM,CAAC,MAAA3O,IAAU9wB,GAAGyH,EAAEioB,WAAW1vB,EAAE,SAAS,MAAMuM,EAAEjJ,KAAK8wB,UAAU,SAAS,IAAI,IAAI1sB,EAAE,EAAEA,EAAE1H,EAAEyD,SAASiE,EAAE,CAAC,MAAMyC,EAAE1C,EAAE8yB,aAAY,IAAKj3B,KAAKitB,UAAUvwB,EAAE0H,KAAKA,EAAE,CAAC8yB,QAAO,IAAKjuB,EAAE6iB,QAAQqQ,MAAMt6B,KAAKgF,EAAE,CAAC,OAAOoC,EAAEimB,iBAAiB,EAAE,QAAAwB,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,EAAEyL,MAAMhJ,EAAEonB,MAAM1D,EAAEqW,YAAYtgC,IAAI,MAAMwD,EAAEmF,EAAE6iB,QAAQ2U,WAAW/8B,QAAQ8mB,EAAEvhB,EAAE6iB,QAAQwU,QAAQ58B,QAAQgnB,EAAE,IAAIzhB,EAAE6iB,QAAQ0U,eAAe18B,GAAG6mB,GAAGjuB,EAAEyH,EAAE2f,QAAQuS,oBAAoB35B,EAAEyH,EAAE2f,QAAQuS,aAAa,MAAMlb,EAAE7a,IAAI,IAAI+a,EAAE3e,EAAEyD,OAAO,IAAI,IAAIG,EAAE,EAAEA,EAAE+a,IAAI/a,EAAE,CAAC,MAAM6D,EAAEzH,EAAE4D,GAAG,IAAIib,GAAE,EAAGlZ,GAAE,EAAG,MAAMuoB,EAAED,EAAErqB,EAAE,IAAIoT,OAAOpT,GAAGqb,EAAE,IAAI9U,EAAEgM,KAAK+X,GAAG,IAAI3hB,EAAE0iB,OAAO0U,aAAQ,IAASl8B,EAAE,CAAC,GAAGgX,EAAEtZ,KAAKuC,EAAE,eAAe,CAAC1F,IAAIksB,EAAE/X,KAAK8I,EAAEklB,IAAIvgC,EAAEjE,WAAM,GAAQwK,EAAE6sB,SAAS/X,KAAK4O,EAAE2H,WAAW,OAAO/W,EAAEqP,EAAExoB,QAAQ,QAAQ,CAAC,MAAMzB,EAAE,CAAC7D,KAAKmK,EAAE8sB,WAAW,IAAI,MAAMj3B,KAAKuM,EAAE6iB,QAAQyU,YAAY,GAAG7jC,EAAEu1B,QAAQ9tB,EAAE0C,EAAE6sB,SAAS/X,EAAEpb,EAAE7D,GAAG6tB,EAAE,CAACoD,SAAS,WAAW,CAAC,GAAGxS,EAAEtZ,KAAKuC,EAAE,iBAAiB,CAACy8B,IAAIvgC,EAAEjE,MAAM8H,GAAG0C,EAAE6sB,SAAS/X,KAAK4O,EAAE2H,WAAW,OAAO/W,EAAEI,GAAE,EAAGiP,EAAExoB,QAAQ,KAAK,CAAC,GAAGuZ,EAAE,SAAS,GAAGtS,EAAE6iB,QAAQwU,QAAQngC,OAAO,CAAC,GAAGqqB,EAAErqB,OAAO,CAAC,MAAM2D,EAAE0mB,EAAExoB,QAAQ0oB,EAAE5mB,EAAEkvB,WAAW7uB,EAAE0C,EAAE6sB,SAAS/X,EAAEpb,EAAEuD,GAAGymB,GAAG,GAAGG,EAAE2H,QAAQ,GAAGlX,EAAEtZ,QAAQ6oB,EAAE2H,QAAQ9H,EAAE2H,WAAW,OAAO/W,OAAO,GAAG,UAAUrX,EAAE6nB,OAAOhvB,OAAO8tB,EAAEqW,WAAWpkC,EAAE4D,KAAKA,IAAI+a,MAAM,CAAC,IAAIpS,EAAE0iB,OAAO0U,aAAQ,IAAS3V,EAAEruB,MAAM,CAAC,GAAG8e,EAAEtZ,KAAKuC,EAAE,eAAe,CAAC1F,IAAIksB,EAAE/X,KAAK8I,EAAEklB,IAAIvgC,EAAEjE,WAAM,GAAQwK,EAAE6sB,SAAS/X,KAAK4O,EAAE2H,WAAW,OAAO/W,EAAE,QAAQ,CAACze,EAAE4D,GAAGoqB,EAAEruB,KAAK,CAAC,QAAQ,CAAC,IAAI4M,EAAE6iB,QAAQqQ,MAAMh8B,OAAO,CAAC,GAAGgb,EAAEtZ,KAAKuC,EAAE,sBAAsB,CAACy8B,IAAIvgC,EAAEy2B,MAAM9tB,EAAE6iB,QAAQwU,QAAQngC,UAAUoqB,EAAE2H,WAAW,OAAO/W,EAAE,KAAK,CAAC,CAAC,MAAM0P,EAAE,GAAG,IAAIkW,EAAEj9B,EAAE3D,OAAO,IAAI,IAAIqqB,EAAE,EAAEA,EAAEuW,IAAIvW,EAAE,CAAC,MAAME,EAAE7jB,EAAE6sB,SAAS/X,EAAEpb,EAAEuD,EAAE0mB,IAAIE,EAAE0H,WAAW,MAAMzH,EAAE7mB,EAAE0mB,GAAGwI,WAAW7uB,EAAEumB,EAAEH,GAAG,GAAGM,EAAEL,GAAGG,GAAGA,EAAE0H,OAAO,CAAC,GAAG3H,EAAEyS,SAASzgC,EAAE4D,GAAGqqB,EAAEtuB,MAAMgG,GAAE,EAAGooB,EAAEqW,WAAWh9B,EAAE0mB,KAAKA,IAAIuW,GAAG93B,EAAE0iB,OAAO0U,aAAQ,IAAS1V,EAAEtuB,QAAQ8e,EAAEtZ,KAAKuC,EAAE,eAAe,CAAC1F,IAAIksB,EAAE/X,KAAK8I,EAAEklB,IAAIvgC,EAAEjE,WAAM,GAAQwK,EAAE6sB,SAAS/X,KAAK4O,EAAE2H,YAAY,OAAO/W,EAAE,KAAK,CAACuP,EAAE4H,SAAS,CAAC,GAAGjwB,EAAE,SAAS,MAAM2+B,EAAEzW,EAAE4L,gBAAgB5L,EAAE4L,aAAa4F,SAAQ,EAAGgF,EAAErW,EAAEvqB,OAAO,IAAI,MAAMqqB,KAAKE,EAAE,CAAC,IAAIA,EAAE,MAAMC,EAAE7mB,EAAEq6B,QAAQ3T,GAAG,IAAI,IAAIG,EAAED,EAAEG,EAAEF,OAAO,CAAC,MAAM7mB,EAAE+C,EAAE6sB,SAAS/X,EAAEpb,EAAEiqB,GAAG,GAAG1mB,EAAEsuB,WAAW1H,EAAEF,EAAEwI,WAAW7uB,EAAEL,EAAEymB,IAAIG,EAAE2H,OAAO,CAACvuB,EAAEq5B,SAAS,UAAU3S,EAAEmB,OAAOhvB,QAAQ8tB,EAAEqW,WAAWpkC,EAAE4D,KAAKA,IAAI+a,GAAGpS,EAAE0iB,OAAO0U,aAAQ,IAAS3V,EAAEruB,MAAMK,EAAE4D,GAAGoqB,EAAEruB,OAAO8e,EAAEtZ,KAAKuC,EAAE,eAAe,CAAC1F,IAAIksB,EAAE/X,KAAK8I,EAAEklB,IAAIvgC,EAAEjE,WAAM,GAAQwK,EAAE6sB,SAAS/X,KAAKJ,GAAE,GAAIlZ,GAAE,EAAG,KAAK,CAACyB,EAAEwuB,SAAS,CAAC,GAAG,IAAIyO,EAAE,CAAC,GAAGC,EAAE,CAACvW,EAAEqW,WAAWpkC,EAAE4D,KAAKA,IAAI+a,EAAEhZ,GAAE,EAAG,KAAK,CAAC,GAAG8Y,EAAEtZ,QAAQ6oB,EAAE2H,QAAQ9H,EAAE2H,WAAW,OAAO/W,EAAEI,GAAE,EAAG,KAAK,CAAC,CAAC,IAAIA,IAAItS,EAAE6iB,QAAQ0U,YAAYrgC,QAAQ8I,EAAE6iB,QAAQ2U,WAAWtgC,UAAUkC,EAAE,CAAC,GAAG2+B,EAAE,CAACvW,EAAEqW,WAAWpkC,EAAE4D,KAAKA,IAAI+a,EAAE,QAAQ,CAAC,GAAGF,EAAEtZ,KAAKuC,EAAE,iBAAiB,CAACy8B,IAAIvgC,EAAEjE,MAAM8H,GAAG0C,EAAE6sB,SAAS/X,KAAK4O,EAAE2H,WAAW,OAAO/W,CAAC,CAAC,CAAC,OAAOrX,EAAE3D,QAAQsqB,EAAEwW,iBAAiBh4B,EAAEkS,EAAErX,EAAEpH,EAAEmK,EAAE0jB,GAAGC,EAAErqB,SAASsqB,EAAEyW,kBAAkBj4B,EAAEkS,EAAEqP,EAAE9tB,EAAEmK,EAAE0jB,GAAGpP,EAAEhb,QAAQsqB,EAAE0W,YAAY3W,EAAE9tB,EAAEmK,EAAE0jB,IAAIpP,EAAEhb,OAAOgb,EAAEze,CAAC,EAAE60B,UAAS,EAAG0H,UAAS,GAAI94B,OAAO,CAAC,MAAAqtB,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,KAAK,EAAE1Q,SAAS,CAACh0B,EAAEuM,GAAG8tB,MAAM3yB,IAAIgE,KAAKvB,EAAEu6B,SAAS7W,EAAE/pB,KAAKF,KAAK6D,EAAEsyB,QAAQ/5B,EAAEyD,OAAOiE,EAAEmmB,GAAG7tB,EAAEuM,EAAErE,MAAM,SAASiC,EAAE,CAACkwB,MAAMz2B,EAAEy2B,MAAM16B,MAAMK,IAAI8D,KAAK,CAAC,CAAC4H,KAAK,QAAQ4X,KAAI,EAAGoR,OAAOjtB,EAAE4yB,MAAMpZ,QAAQ,gCAAgCyK,IAAI,CAAC,MAAAoF,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,SAAShtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAGtF,IAAI,CAAC,MAAAtO,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,SAAShtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAGd,QAAQ,CAAC,MAAA9S,IAAU9wB,GAAGyH,EAAEioB,WAAW1vB,EAAE,WAAW,MAAMuM,EAAEjJ,KAAK8wB,UAAU,SAAS,IAAI,IAAI1sB,EAAE,EAAEA,EAAE1H,EAAEyD,SAASiE,EAAE,CAAC,MAAMyC,EAAE1C,EAAE8yB,aAAY,IAAKj3B,KAAKitB,UAAUvwB,EAAE0H,KAAKA,EAAE,CAAC8yB,QAAO,IAAKzM,EAAE4W,eAAex6B,EAAEoC,GAAGA,EAAEioB,iBAAiBrqB,GAAGoC,EAAE6iB,QAAQwU,QAAQz+B,KAAKgF,EAAE,CAAC,OAAOoC,EAAEimB,iBAAiB,GAAG5B,OAAO,CAAC,MAAAE,CAAO9wB,GAAG,MAAMuM,OAAE,IAASvM,KAAKA,EAAE,OAAOmK,GAAGoC,IAAIjJ,KAAK2rB,OAAO2V,YAAY,yDAAyDthC,KAAK6sB,UAAU,SAAS5jB,EAAE,GAAGy3B,KAAK,CAAC,MAAAlT,CAAO9wB,EAAE,CAAC,GAAGyH,EAAEipB,cAAc1wB,EAAE,CAAC,KAAK,UAAU,MAAMuM,EAAE,CAACs4B,MAAM7kC,EAAE6kC,OAAO,aAAa,OAAO7kC,EAAE8kC,KAAKv4B,EAAEu4B,GAAGhX,EAAExK,IAAItjB,EAAE8kC,GAAG,CAACrG,SAAS,IAAIt0B,GAAGoC,EAAEu4B,GAAGrG,SAAS,4BAA4Bn7B,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAO5H,KAAK,CAACsO,QAAQ7F,IAAI,EAAE,QAAAynB,CAASh0B,GAAGkI,MAAMqE,EAAE4G,MAAMzL,EAAE6pB,MAAMpnB,EAAE4qB,OAAOlH,IAAIzb,QAAQxO,IAAI,MAAMjE,MAAMyH,EAAEuuB,OAAOluB,GAAGsmB,EAAEiW,KAAKnW,EAAE7tB,EAAE4D,EAAE8D,EAAEyC,GAAG,GAAG1C,EAAE,OAAOA,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAE1H,EAAEyD,SAASiE,EAAE,GAAG1H,EAAE0H,KAAKN,EAAEM,GAAG,OAAO6E,EAAE,aAAa,CAACs4B,MAAMjhC,EAAEihC,MAAMC,GAAGlhC,EAAEkhC,GAAGlhC,EAAEkhC,GAAG9iC,IAAI,UAAU,OAAOhC,CAAC,EAAEgyB,SAAQ,GAAI2R,OAAO,CAAC,MAAA7S,CAAO9wB,GAAG,MAAMuM,OAAE,IAASvM,KAAKA,EAAE,OAAOsD,KAAK2rB,OAAO0U,SAASp3B,EAAEjJ,MAAMiJ,EAAEjJ,KAAKysB,QAAQzsB,KAAK8wB,UAAU,UAAUjE,UAAU,SAAS5jB,EAAE,CAACwjB,OAAM,GAAI,GAAGgV,OAAO,CAAC,MAAAjU,CAAO9wB,EAAEuM,EAAE,CAAC,GAAGpC,GAAGnK,GAAG,mBAAmBA,GAAG,iBAAiBA,EAAE,6CAA6CyH,EAAEipB,cAAcnkB,EAAE,CAAC,kBAAkB,cAAc,MAAM7E,EAAE,CAACgE,KAAK,SAAS5H,KAAK,CAACsO,QAAQ7F,EAAEy4B,WAAWhlC,IAAI,GAAGA,EAAE,GAAG,iBAAiBA,EAAE,CAAC,MAAMmK,EAAE1C,EAAEke,QAAQpZ,EAAEgyB,UAAU,KAAK72B,EAAEyO,KAAKhM,EAAEnK,EAAEU,MAAMyJ,GAAG,CAACnK,EAAE,MAAM0H,EAAEs9B,WAAWhlC,EAAE,OAAOsD,KAAK8wB,UAAU1sB,EAAE,EAAE,QAAAssB,CAASh0B,GAAGmT,MAAM5G,EAAErE,MAAMR,EAAEqtB,OAAO3tB,IAAI49B,WAAWv9B,EAAE2K,QAAQ0b,IAAIkX,WAAWjX,EAAE5X,KAAK6X,IAAI,MAAMC,EAAE,CAACloB,OAAO9G,OAAO+Q,OAAO,MAAMqP,OAAOpgB,OAAO+Q,OAAO,MAAMxQ,UAAUP,OAAO+Q,OAAO,MAAM0sB,QAAQz9B,OAAO+Q,OAAO,MAAMi1B,OAAOhmC,OAAO+Q,OAAO,MAAMkX,OAAO,IAAIzlB,IAAIk7B,SAAS,IAAIl7B,IAAIk5B,OAAO,IAAIl5B,KAAKgd,EAAEsP,GAAGF,EAAElP,EAAEmP,EAAEoX,gBAAgB,IAAI,IAAIrX,EAAE,EAAEA,EAAE7tB,EAAEyD,SAASoqB,EAAE,CAAC,MAAMzmB,EAAE4mB,EAAEpqB,EAAE5D,EAAE6tB,GAAGG,GAAGhuB,EAAE6tB,GAAGC,EAAEC,EAAEE,EAAE0M,OAAO1M,SAAS7mB,GAAG,GAAG+C,EAAE2jB,EAAE,sDAAsD1mB,GAAG0mB,aAAarsB,IAAI,CAAC,MAAM0I,EAAE2jB,EAAEmQ,UAAU,IAAIr6B,EAAE,OAAOA,EAAEuG,EAAE/G,QAAQiI,MAAM,GAAGoT,EAAE7a,EAAEjE,MAAM,GAAGyH,GAAG,CAAC,MAAM+C,EAAEoC,EAAEyqB,SAAS,IAAIzqB,EAAE4J,KAAK0X,GAAG,CAAC7tB,KAAKuM,EAAE0qB,YAAY7vB,EAAE,CAAC+8B,IAAItW,EAAEluB,MAAMK,EAAE6tB,GAAGsX,QAAQvhC,EAAEjE,MAAM,GAAGylC,UAAUplC,EAAE4D,EAAEjE,MAAM,KAAK,OAAOquB,IAAI5mB,EAAE+O,KAAK1O,GAAGC,EAAE,eAAeN,EAAE+C,EAAE,CAAC2jB,EAAE7rB,IAAImF,EAAEymB,EAAE,KAAK,CAAC,KAAKlP,QAAG,IAASvX,SAAI,IAAS0mB,EAAE1mB,GAAG,CAAC,MAAM+C,EAAE,CAACg6B,IAAItW,EAAEluB,MAAMK,EAAE6tB,GAAGsX,QAAQrX,EAAE1mB,GAAGg+B,UAAUplC,EAAE8tB,EAAE1mB,KAAK,OAAO4mB,IAAI7jB,EAAEgM,KAAK1O,GAAGC,EAAE,eAAeyC,EAAEoC,EAAEyqB,SAAS,IAAIzqB,EAAE4J,KAAK0X,GAAG,CAAC7tB,KAAKuM,EAAE0qB,YAAY,CAACnJ,EAAE1mB,GAAGymB,CAAC,CAAC,CAAC,OAAO7tB,CAAC,EAAE8D,KAAK,CAAC,aAAa,WAAWmvB,OAAM,IAAK7C,KAAK,CAACnuB,IAAI,CAACm6B,KAAKxqB,MAAMie,QAAQ+P,GAAG,CAAC5/B,EAAEuM,IAAI,IAAIyrB,IAAIh4B,KAAK,OAAA+1B,CAAQ/1B,GAAGA,EAAEovB,QAAQ0U,YAAY,GAAG9jC,EAAEovB,QAAQyU,YAAY,GAAG7jC,EAAEovB,QAAQ2U,WAAW,GAAG,IAAI,MAAMx3B,KAAKvM,EAAEovB,QAAQqQ,MAAM1R,EAAE4W,eAAep4B,EAAEvM,GAAG,aAAauM,EAAE0iB,OAAOgC,SAASjxB,EAAEovB,QAAQ2U,WAAW5+B,KAAKoH,GAAG,cAAcA,EAAE0iB,OAAOgC,SAASjxB,EAAEovB,QAAQyU,YAAY1+B,KAAKoH,GAAGvM,EAAEovB,QAAQ0U,YAAY3+B,KAAKoH,GAAG,IAAI,MAAMA,KAAKvM,EAAEovB,QAAQwU,QAAQ7V,EAAE4W,eAAep4B,EAAEvM,EAAE,EAAEu8B,SAAS,CAACC,MAAM,CAACx8B,EAAEuM,KAAKA,EAAEkzB,QAAQz/B,EAAEA,EAAEy/B,SAASlzB,EAAEkzB,QAAQlzB,EAAEq3B,UAAU5jC,EAAEA,EAAE4jC,WAAWr3B,EAAEq3B,UAAU5jC,IAAIi1B,SAAS,CAAC,aAAa,8BAA8B,iBAAiB,wCAAwC,iBAAiB,oFAAoF,mBAAmB,0DAA0D,iBAAiB,qDAAqD,6BAA6B,8FAA8F,+BAA+B,+CAA+C,iCAAiC,mEAAmE,eAAe,2CAA2C,YAAY,iEAAiE,YAAY,oDAAoD,sBAAsB,mDAAmD,aAAa,yDAAyD,yBAAyB,uDAAuD,yBAAyB,8DAA8D,eAAe,6CAA6C,eAAe,2CAA2ClH,EAAEwW,iBAAiB,SAASvkC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,GAAG,MAAMwD,EAAE,GAAG,IAAIK,EAAE,EAAE,IAAI,MAAMzH,KAAK0H,EAAE,CAAC,MAAM6E,EAAEvM,EAAEivB,OAAOne,MAAMvE,EAAEnF,EAAEjC,KAAKoH,KAAK9E,CAAC,CAACL,EAAE3D,OAAOgE,EAAE8E,EAAEpH,KAAKnF,EAAEg1B,cAAc,6BAA6B7qB,EAAE,CAACk7B,YAAYj+B,EAAEk+B,cAAc79B,GAAGomB,EAAEjqB,IAAI2I,EAAEpH,KAAKnF,EAAEg1B,cAAc,+BAA+B7qB,EAAE,CAACk7B,YAAYj+B,GAAGymB,EAAEjqB,IAAI2I,EAAEpH,KAAKnF,EAAEg1B,cAAc,iCAAiC7qB,EAAE,CAACm7B,cAAc79B,GAAGomB,EAAEjqB,GAAG,EAAEmqB,EAAEyW,kBAAkB,SAASxkC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,GAAG,MAAMwD,EAAE,GAAG,IAAI,MAAMpH,KAAK0H,EAAE,aAAa1H,EAAEivB,OAAOgC,UAAU7pB,EAAEjC,KAAKnF,GAAGoH,EAAE3D,QAAQsqB,EAAEwW,iBAAiBvkC,EAAEuM,EAAEnF,EAAE+C,EAAE0jB,EAAEjqB,EAAE,EAAEmqB,EAAE0W,YAAY,SAASzkC,EAAEuM,EAAE7E,EAAEyC,GAAG,MAAM0jB,EAAE,GAAG,IAAIjqB,GAAE,EAAG,IAAI,IAAIwD,EAAEpH,EAAEyD,OAAO,EAAE2D,GAAG,IAAIA,EAAE,CAAC,MAAMK,EAAEzH,EAAEoH,GAAG0mB,EAAE,CAACvhB,KAAK7E,EAAEuvB,WAAWlJ,EAAEtmB,EAAE6uB,gBAAW,EAAO5uB,EAAEsvB,SAAStvB,EAAEyO,KAAK2X,EAAErmB,GAAG0C,GAAGxK,MAAM,GAAGiE,EAAE,CAAC,QAAG,IAASmqB,EAAE,SAASnqB,GAAE,CAAE,CAACiqB,EAAEiH,QAAQ/G,EAAE,CAACF,EAAEpqB,QAAQ8I,EAAEpH,QAAQ0oB,EAAE,EAAEE,EAAEqW,WAAW,SAASpkC,EAAEuM,GAAG,IAAI7E,EAAE6E,EAAE,KAAK7E,EAAE1H,EAAEyD,QAAQzD,EAAE0H,KAAK1H,EAAE0H,KAAK1H,EAAEyD,MAAM,EAAEsqB,EAAE4W,eAAe,SAAS3kC,EAAEuM,IAAI,UAAUvM,EAAE6C,MAAM7C,EAAEivB,OAAO2V,eAAez6B,GAAGoC,EAAE0iB,OAAO2B,OAAO,sDAAsDrkB,EAAE4jB,UAAU,eAAc,EAAG,CAACJ,OAAM,IAAK,EAAEhC,EAAEiW,KAAK,SAAShkC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,cAAc8D,EAAEm9B,MAAM,GAAG,EAAEz9B,GAAG,EAAExD,EAAE6D,EAAE7D,EAAEkqB,EAAE,CAACA,EAAEE,KAAK,IAAIC,EAAEF,EAAEgM,QAAQjM,EAAEE,EAAE5mB,EAAEK,GAAG,GAAG,OAAOwmB,EAAE,OAAOA,EAAE,GAAGvmB,EAAEo9B,KAAKhX,EAAEpmB,EAAEo9B,GAAGpgC,QAAQopB,EAAE3jB,EAAE0jB,GAAGG,EAAEtmB,EAAEo9B,GAAGpgC,QAAQspB,EAAE7jB,EAAE0jB,IAAII,EAAEF,EAAEgM,QAAQjM,EAAEE,EAAE5mB,EAAEK,GAAG,OAAOwmB,EAAE,OAAOA,EAAE,MAAMxP,SAASqP,EAAE,GAAGrP,WAAWuP,EAAE,MAAMhuB,EAAEg1B,cAAc,yBAAyBzoB,EAAE,KAAKpC,EAAE0jB,GAAG,GAAG,WAAWpP,GAAG,WAAWA,EAAE,MAAMze,EAAEg1B,cAAc,yBAAyBzoB,EAAE,CAAC1J,KAAK4b,GAAGtU,EAAE0jB,GAAG,MAAM,WAAWpP,GAAGqP,EAAEE,GAAGpqB,EAAEkqB,EAAEE,EAAE5mB,EAAEK,GAAG,IAAI,MAAM,CAAC9H,MAAM4M,EAAEvF,QAAQg9B,KAAKlW,GAAG,CAAC,MAAM9tB,GAAG,MAAM,CAAC21B,OAAO31B,EAAE,CAAC,EAAE+tB,EAAEgM,QAAQ,SAAS/5B,EAAEuM,EAAE7E,EAAEyC,GAAG,OAAOnK,IAAIuM,EAAE,OAAE,IAASvM,EAAE,OAAE,IAASuM,GAAG,EAAE,OAAOvM,EAAEmK,EAAE,OAAOoC,EAAE7E,EAAE,IAAI,GAAG,KAAK,CAAC1H,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAE,CAAC89B,OAAO,SAASvlC,GAAG,MAAM,kBAAkBA,CAAC,GAAGA,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,UAAUgU,MAAM,CAAC2uB,UAAU,CAAC7f,SAAQ,IAAKgR,MAAM,CAAC8O,MAAM,CAAC7O,KAAK,KAAK2F,SAAS,UAAUmJ,OAAO,CAAC9O,KAAK,KAAK2F,SAAS,WAAW,MAAAJ,CAAOn8B,GAAG+0B,OAAOxoB,IAAI,GAAG,kBAAkBvM,EAAE,CAAC,GAAG,iBAAiBA,EAAE,CAAC,MAAM0H,EAAE6E,EAAE0iB,OAAOuW,UAAUxlC,EAAEA,EAAE2lC,cAAc3lC,EAAE,SAAS0H,GAAG,UAAUA,GAAG1H,CAAC,CAAC,MAAM,kBAAkBA,IAAIA,EAAEuM,EAAE6iB,QAAQsW,QAAQn5B,EAAE6iB,QAAQsW,OAAO3sB,IAAI/Y,EAAE,KAAK,MAAMuM,EAAE0iB,OAAOuW,cAAcj5B,EAAE6iB,QAAQqW,QAAQl5B,EAAE6iB,QAAQqW,MAAM1sB,IAAI/Y,EAAE,KAAK,MAAMuM,EAAE0iB,OAAOuW,aAAaxlC,GAAG,CAACL,MAAMK,EAAE,CAAC,EAAE,QAAAg0B,CAASh0B,GAAGkI,MAAMqE,IAAI,GAAG,kBAAkBvM,EAAE,MAAM,CAACL,MAAMK,EAAE21B,OAAOppB,EAAE,gBAAgB,EAAEymB,MAAM,CAAC0S,OAAO,CAAC,MAAA5U,IAAU9wB,GAAG4D,EAAE8rB,WAAW1vB,EAAE,UAAU,MAAMuM,EAAEjJ,KAAKysB,QAAQxjB,EAAE6iB,QAAQsW,OAAOn5B,EAAE6iB,QAAQsW,QAAQ,IAAIt+B,EAAE,IAAI,IAAIM,EAAE,EAAEA,EAAE1H,EAAEyD,SAASiE,EAAE,CAAC,MAAMmmB,EAAE7tB,EAAE0H,GAAGyC,OAAE,IAAS0jB,EAAE,qCAAqCthB,EAAE6iB,QAAQsW,OAAOntB,IAAIsV,EAAE,CAAC,OAAOthB,CAAC,GAAGk5B,MAAM,CAAC,MAAA3U,IAAU9wB,GAAG4D,EAAE8rB,WAAW1vB,EAAE,SAAS,MAAMuM,EAAEjJ,KAAKysB,QAAQxjB,EAAE6iB,QAAQqW,MAAMl5B,EAAE6iB,QAAQqW,OAAO,IAAIr+B,EAAE,IAAI,IAAIM,EAAE,EAAEA,EAAE1H,EAAEyD,SAASiE,EAAE,CAAC,MAAMmmB,EAAE7tB,EAAE0H,GAAGyC,OAAE,IAAS0jB,EAAE,oCAAoCthB,EAAE6iB,QAAQqW,MAAMltB,IAAIsV,EAAE,CAAC,OAAOthB,CAAC,GAAGi5B,UAAU,CAAC,MAAA1U,CAAO9wB,GAAE,GAAI,OAAOsD,KAAK6sB,UAAU,YAAYnwB,EAAE,IAAIowB,KAAK,CAAC/Q,OAAO,CAAC+c,KAAK30B,EAAE89B,OAAO3F,GAAG,CAAC5/B,EAAEuM,IAAIvM,EAAE,EAAE,GAAG+F,OAAO,CAACq2B,KAAK30B,EAAE89B,OAAO3F,GAAG,CAAC5/B,EAAEuM,IAAIvM,EAAE,OAAO,UAAUu8B,SAAS,CAACC,MAAM,CAACx8B,EAAEuM,KAAKA,EAAEm5B,SAAS1lC,EAAEA,EAAE0lC,UAAUn5B,EAAEm5B,SAASn5B,EAAEk5B,QAAQzlC,EAAEA,EAAEylC,SAASl5B,EAAEk5B,QAAQzlC,IAAIi1B,SAAS,CAAC,eAAe,iCAAgC,EAAG,KAAK,CAACj1B,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAE,CAACm+B,OAAO,SAAS5lC,GAAG,OAAOA,aAAasnB,IAAI,GAAGtnB,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,OAAOs5B,OAAO,CAACC,KAAK,CAAC,SAAS,UAAUtL,OAAO,CAAC9wB,GAAG+0B,OAAOxoB,MAAK,CAAE5M,MAAM8H,EAAEo+B,MAAM7lC,EAAEuM,EAAE0iB,OAAOtS,SAAS3c,KAAK,QAAAg0B,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,EAAE6pB,MAAMpnB,IAAI,GAAGnK,aAAasnB,OAAO4S,MAAMl6B,EAAE6iC,WAAW,OAAO,MAAMhV,EAAEthB,EAAE0iB,OAAOtS,OAAO,OAAOxS,EAAE6nB,SAASnE,GAAG,iBAAiB7tB,EAAE,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,cAAc,CAACiV,OAAOkR,KAAK,CAACluB,MAAMK,EAAE21B,OAAOjuB,EAAE,aAAa,EAAEsrB,MAAM,CAAC+G,QAAQ,CAACjJ,QAAO,EAAG,QAAAkD,CAASh0B,EAAEuM,GAAGyuB,KAAKtzB,IAAIgE,KAAKvB,EAAEu6B,SAAS7W,EAAE/pB,KAAKsD,IAAI,MAAMK,EAAE,QAAQC,EAAE4f,KAAKC,MAAM7f,EAAEm7B,UAAU,OAAOj/B,EAAEm2B,QAAQ/5B,EAAE6iC,UAAUp7B,EAAEomB,GAAG7tB,EAAEuM,EAAErE,MAAM,QAAQiC,EAAE,CAACkwB,MAAMjzB,EAAE4zB,KAAKr7B,MAAMK,GAAG,EAAE8D,KAAK,CAAC,CAAC4H,KAAK,OAAO4X,KAAI,EAAGmR,UAAUz0B,GAAG,QAAQA,EAAEA,EAAEyH,EAAEo+B,MAAM7lC,GAAG00B,OAAO10B,GAAG,OAAOA,EAAEihB,QAAQ,mCAAmCtE,OAAO,CAAC,MAAAmU,CAAO9wB,GAAG,OAAOmK,EAAE,CAAC,MAAM,aAAa,QAAQ0P,SAAS7Z,GAAG,sBAAsBA,GAAGsD,KAAK6sB,UAAU,SAASnwB,EAAE,GAAG8lC,QAAQ,CAAC,MAAAhV,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,UAAUolB,OAAO,UAAUhtB,KAAK,CAACk3B,KAAKh7B,GAAG0kC,SAAS,KAAK,GAAG7D,IAAI,CAAC,MAAA/P,GAAS,OAAOxtB,KAAKqZ,OAAO,MAAM,GAAGopB,KAAK,CAAC,MAAAjV,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAOolB,OAAO,UAAUhtB,KAAK,CAACk3B,KAAKh7B,GAAG0kC,SAAS,KAAK,GAAGhZ,IAAI,CAAC,MAAAoF,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,UAAUhtB,KAAK,CAACk3B,KAAKh7B,GAAG0kC,SAAS,MAAM,GAAGtF,IAAI,CAAC,MAAAtO,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,UAAUhtB,KAAK,CAACk3B,KAAKh7B,GAAG0kC,SAAS,MAAM,GAAGsB,UAAU,CAAC,MAAAlV,CAAO9wB,EAAE,cAAc,OAAOmK,EAAE,CAAC,aAAa,QAAQ0P,SAAS7Z,GAAG,4CAA4CsD,KAAKqZ,OAAO3c,EAAE,IAAIowB,KAAK,CAAC/Q,OAAO,CAAC+c,KAAK30B,EAAEm+B,OAAOhG,GAAG,CAAC5/B,EAAEuM,IAAIvM,EAAE6iC,WAAW98B,OAAO,CAACq2B,KAAK30B,EAAEm+B,OAAOhG,GAAG,CAAC5/B,GAAGuxB,MAAMhlB,KAAKnF,EAAE4zB,KAAKh7B,EAAEuM,KAAK0oB,SAAS,CAAC,YAAY,kCAAkC,cAAc,0EAA0E,eAAe,8CAA8C,YAAY,2CAA2C,WAAW,uDAAuD,WAAW,0DAA0D,kBAAkB,gBAAgB,yBAAyB,sCAAsC,mBAAmB,oCAAoCxtB,EAAEo+B,MAAM,SAAS7lC,EAAEuM,GAAG,GAAGvM,aAAasnB,KAAK,OAAOtnB,EAAE,GAAG,iBAAiBA,IAAIk6B,MAAMl6B,KAAKk4B,SAASl4B,IAAI,OAAO,KAAK,GAAG,QAAQkxB,KAAKlxB,GAAG,OAAO,KAAK,GAAG,QAAQuM,EAAE,OAAO3I,EAAEo2B,UAAUh6B,GAAGyH,EAAEuzB,KAAKh7B,EAAEX,YAAY,KAAK,MAAMqI,EAAE1H,EAAE,GAAG,iBAAiBA,GAAG,qBAAqBkxB,KAAKlxB,KAAKA,EAAE4iC,WAAW5iC,IAAIuM,EAAE,CAAC,GAAG,eAAeA,EAAE,OAAO9E,EAAEuzB,KAAK,EAAEh7B,GAAG,GAAG,SAASuM,EAAE,OAAO9E,EAAEuzB,KAAK,IAAIh7B,GAAG,GAAG,iBAAiB0H,EAAE,OAAO,IAAI,CAAC,OAAOD,EAAEuzB,KAAKh7B,EAAE,EAAEyH,EAAEuzB,KAAK,SAASh7B,GAAG,MAAMuM,EAAE,IAAI+a,KAAKtnB,GAAG,OAAOk6B,MAAM3tB,EAAEs2B,WAAW,KAAKt2B,CAAC,GAAG,IAAI,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM1H,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,WAAWozB,WAAW,CAACgQ,OAAO,YAAYjT,MAAM,CAAC+M,MAAM,CAAC,MAAAjP,CAAO9wB,GAAG,OAAOmK,EAAE6M,OAAOsjB,cAAct6B,IAAIA,GAAG,EAAE,gCAAgCsD,KAAK8wB,UAAU,CAAC1oB,KAAK,QAAQ5H,KAAK,CAAC+pB,EAAE7tB,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGshB,KAAO7tB,EAAEyD,SAASiE,EAAE1H,EAAEuM,EAAErE,MAAM,iBAAiB,CAAC2lB,KAAOqY,MAAM,CAAC,MAAApV,GAAS,OAAOxtB,KAAK8wB,UAAU,QAAQ,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAI,cAAc2kB,KAAKlxB,EAAEX,YAAYW,EAAEuM,EAAErE,MAAM,iBAAiB,CAACvI,MAAMK,KAAK6/B,SAAS,CAAC,MAAA/O,CAAO9wB,GAAG,OAAOmK,EAAE6M,OAAOsjB,cAAct6B,IAAIA,EAAE,EAAE,uCAAuCsD,KAAK8wB,UAAU,CAAC1oB,KAAK,WAAW5H,KAAK,CAAC+pB,EAAE7tB,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGshB,KAAO7tB,EAAEyD,QAAQiE,EAAE1H,EAAEuM,EAAErE,MAAM,oBAAoB,CAAC2lB,KAAO8R,SAAS,CAAC,MAAA7O,CAAO9wB,GAAG,OAAOmK,EAAE6M,OAAOsjB,cAAct6B,IAAIA,GAAG,EAAE,gCAAgCsD,KAAK8wB,UAAU,CAAC1oB,KAAK,WAAW5H,KAAK,CAAC+pB,EAAE7tB,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGshB,KAAO7tB,EAAEyD,QAAQiE,EAAE1H,EAAEuM,EAAErE,MAAM,oBAAoB,CAAC2lB,MAAQoH,SAAS,CAAC,iBAAiB,0CAA0C,iBAAiB,6BAA6B,oBAAoB,0DAA0D,oBAAoB,6DAA4D,EAAG,KAAK,CAACj1B,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,KAAK9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAEtmB,EAAE,MAAMumB,EAAEvmB,EAAE,MAAM+W,EAAE/W,EAAE,MAAMiX,EAAE,CAACwnB,eAAe,CAAC9J,OAAM,EAAG+J,UAAS,EAAG5V,UAAS,IAAKxwB,EAAEN,QAAQ+H,EAAE2rB,OAAO,CAACvwB,KAAK,QAAQozB,WAAW,CAACgQ,OAAO,UAAUpvB,MAAM,CAACupB,QAAQ,CAACza,aAAQ,IAASgR,MAAM,CAAC0P,aAAa,CAACzP,KAAK,MAAMntB,KAAK,CAACmtB,KAAK,KAAK2F,SAAS,CAACyD,OAAO,CAAC5D,KAAK,SAASwD,GAAG,SAASp6B,SAAS,CAACoxB,KAAK,MAAM0P,QAAQ,CAAC1P,KAAK,OAAO9yB,KAAK,CAAC9D,EAAEuM,IAAIvM,EAAEyJ,KAAK8C,GAAG,QAAAynB,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,EAAEyL,MAAMhJ,EAAEonB,MAAM1D,IAAI,IAAI7tB,UAAUA,IAAIuM,EAAEypB,WAAW,WAAWpkB,MAAMie,QAAQ7vB,GAAG,MAAM,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,cAAc,CAAC7E,KAAK0J,EAAEypB,WAAW,aAAa,KAAKzpB,EAAE6iB,QAAQkX,SAAS/5B,EAAE6iB,QAAQiX,cAAc95B,EAAE6iB,QAAQ3lB,MAAM8C,EAAE6iB,QAAQ5pB,UAAU+G,EAAE6iB,QAAQoC,WAAW,OAAOxxB,EAAE2e,EAAEoR,MAAM/vB,EAAE6tB,GAAG,MAAMjqB,EAAE,GAAG,GAAG2I,EAAE6iB,QAAQkX,UAAU3nB,EAAE4nB,OAAOh6B,EAAEvM,EAAEmK,EAAE0jB,EAAEjqB,GAAG,MAAM,CAACjE,MAAMK,EAAE21B,OAAO/xB,GAAG,IAAI2I,EAAE6iB,QAAQ3lB,OAAO8C,EAAE6iB,QAAQ5pB,WAAW+G,EAAE6iB,QAAQiX,aAAa,MAAM,CAAC1mC,MAAMK,EAAE21B,OAAO/xB,GAAG,MAAMwD,EAAE,IAAI4wB,IAAI/4B,OAAOwK,KAAKzJ,IAAI,GAAGuM,EAAE6iB,QAAQ3lB,KAAK,CAAC,MAAM/B,EAAE,CAAC1H,KAAKmK,EAAE8sB,WAAW,IAAI,MAAMxvB,KAAK8E,EAAE6iB,QAAQ3lB,KAAK,CAAC,MAAM8C,EAAE9E,EAAEzF,IAAI8rB,EAAE9tB,EAAEuM,GAAGnF,EAAE9E,OAAOiK,GAAG,MAAMwhB,EAAE5jB,EAAE6sB,SAAS,IAAI7sB,EAAEgM,KAAK5J,GAAG7E,EAAED,GAAGumB,EAAEvmB,EAAEstB,OAAOuB,WAAWxI,EAAEC,EAAEF,GAAG,GAAGG,EAAE2H,OAAO,CAAC,GAAG9H,EAAE2H,WAAW,MAAM,CAAC71B,MAAMK,EAAE21B,OAAO3H,EAAE2H,aAAQ,IAAS3H,EAAEruB,QAAQK,EAAEuM,GAAGyhB,EAAEruB,OAAOiE,EAAEuB,QAAQ6oB,EAAE2H,OAAO,KAAK,UAAUluB,EAAEstB,OAAO9F,OAAOhvB,aAAQ,IAAS+tB,EAAEruB,YAAO,IAASmuB,SAAS9tB,EAAEuM,QAAG,IAASyhB,EAAEruB,QAAQK,EAAEuM,GAAGyhB,EAAEruB,MAAM,CAAC,CAAC,GAAGyH,EAAEmxB,MAAMhsB,EAAE0iB,OAAOuX,iBAAiB,CAAC,MAAM9+B,EAAEiX,EAAEyhB,QAAQ7zB,EAAEvM,EAAEoH,EAAExD,EAAEuG,EAAE0jB,GAAG,GAAGnmB,EAAE,OAAOA,CAAC,CAAC,GAAG6E,EAAE6iB,QAAQiX,aAAa,IAAI,MAAM3+B,KAAK6E,EAAE6iB,QAAQiX,aAAa,CAAC,GAAG,OAAO3+B,EAAE1F,MAAK,IAAK2c,EAAE8nB,UAAU/+B,EAAE0K,QAAduM,CAAuBjX,EAAE1F,IAAI0C,QAAQ1E,EAAEmK,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,KAAM,SAAS,MAAM13B,EAAEuX,EAAE0nB,aAAa3+B,EAAEg/B,KAAKn6B,EAAE7E,EAAE1H,EAAEmK,EAAE0jB,GAAG,GAAGzmB,EAAE,CAAC,MAAMM,EAAE6E,EAAEyoB,cAAc5tB,EAAEjH,KAAKH,EAAEoH,EAAEmD,QAAQJ,EAAE0jB,GAAG,GAAGA,EAAE2H,WAAW,MAAM,CAAC71B,MAAMK,EAAE21B,OAAOjuB,GAAG9D,EAAEuB,KAAKuC,EAAE,CAAC,CAAC,MAAM,CAAC/H,MAAMK,EAAE21B,OAAO/xB,EAAE,EAAEovB,MAAM,CAAC2T,IAAI,CAAC,MAAA7V,IAAU9wB,GAAG,OAAO8tB,EAAE4B,WAAW1vB,EAAE,OAAO2e,EAAEioB,WAAWtjC,KAAK,MAAM,KAAKtD,EAAE,GAAGw6B,OAAO,CAAC,MAAA1J,CAAO9wB,GAAG,OAAO,MAAMA,GAAG,IAAIf,OAAOwK,KAAKzJ,GAAGyD,OAAOH,KAAKA,KAAKmG,KAAKzJ,EAAE,GAAG00B,OAAO,CAAC,MAAA5D,CAAO9wB,EAAEuM,EAAE7E,GAAG+W,EAAEgd,WAAWz7B,KAAKA,EAAE+tB,EAAEzK,IAAItjB,IAAI6tB,OAAE,IAASnmB,GAAG,iBAAiBA,EAAE,4BAA4B6E,EAAEjJ,KAAKitB,UAAUhkB,EAAE,CAACkuB,YAAW,IAAK,MAAMtwB,EAAE7G,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAAC+iC,QAAQ7mC,EAAE+0B,OAAOxoB,EAAE0U,QAAQvZ,KAAK,OAAOyC,EAAEqqB,iBAAiBx0B,GAAGmK,EAAEqqB,iBAAiBjoB,GAAGpC,CAAC,EAAE,QAAA6pB,CAASh0B,GAAGkI,MAAMqE,EAAEglB,MAAM7pB,EAAEyL,MAAMhJ,IAAI08B,QAAQhZ,EAAEkH,OAAOnxB,EAAEqd,QAAQ7Z,IAAI,MAAMK,EAAEomB,EAAEnpB,QAAQ1E,EAAEmK,EAAEzC,GAAGomB,EAAEG,EAAEgN,MAAMpN,GAAGA,EAAEkR,SAAS50B,GAAG,GAAG,OAAOvG,EAAE2xB,QAAQ9tB,EAAE0C,EAAE6sB,SAASlJ,EAAE,CAAC9tB,KAAKmK,EAAE8sB,WAAWrzB,GAAG8D,GAAG1H,EAAEuM,EAAE,gBAAgB,CAACs6B,QAAQhZ,EAAE5M,QAAQ7Z,GAAG,EAAEtD,KAAK,CAAC,UAAU,SAAS,WAAWmvB,OAAM,GAAI6T,SAAS,CAAC,MAAAhW,CAAO9wB,EAAEuM,GAAG,OAAOshB,EAAE,mBAAmB7tB,EAAE,kCAAkCuM,EAAEA,GAAGvM,EAAE0L,KAAKpI,KAAK8wB,UAAU,CAAC1oB,KAAK,WAAW5H,KAAK,CAACuqB,YAAYruB,EAAE0L,KAAKa,IAAI,EAAEynB,SAAS,CAACh0B,EAAEuM,GAAG8hB,YAAY3mB,EAAEgE,KAAKvB,KAAKnK,aAAa0H,EAAE1H,EAAEuM,EAAErE,MAAM,kBAAkB,CAACrF,KAAKsH,EAAExK,MAAMK,IAAI8D,KAAK,CAAC,cAAc,SAAS2F,KAAK,CAAC,MAAAqnB,CAAO9wB,GAAG6tB,OAAE,IAAS7tB,GAAG,iBAAiBA,EAAE,wCAAwC6tB,GAAGC,EAAE8E,SAAS5yB,GAAG,wCAAwC,MAAMuM,EAAEjJ,KAAKysB,QAAQ,GAAG/vB,EAAE,GAAGf,OAAOwK,KAAKzJ,GAAGyD,OAAO,CAAC8I,EAAE6iB,QAAQ3lB,KAAK8C,EAAE6iB,QAAQ3lB,KAAK8C,EAAE6iB,QAAQ3lB,KAAK2M,QAAQ7J,IAAIvM,EAAEb,eAAeoN,EAAEvK,OAAO,IAAI2c,EAAEooB,KAAK,IAAI,MAAMr/B,KAAK1H,EAAE8tB,EAAEyM,aAAY,IAAKhuB,EAAE6iB,QAAQ3lB,KAAKtE,KAAK,CAACnD,IAAI0F,EAAEqtB,OAAOzxB,KAAKitB,UAAUvwB,EAAE0H,OAAOA,EAAE,MAAM6E,EAAE6iB,QAAQ3lB,KAAK,IAAIkV,EAAEooB,UAAUx6B,EAAE6iB,QAAQ3lB,KAAK,KAAK,OAAO8C,EAAEimB,iBAAiB,GAAG/uB,OAAO,CAAC,MAAAqtB,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,KAAK,EAAE1Q,SAAS,CAACh0B,EAAEuM,GAAG8tB,MAAM3yB,IAAIgE,KAAKvB,EAAEu6B,SAAS7W,EAAE/pB,KAAKF,KAAKkqB,EAAEiM,QAAQ96B,OAAOwK,KAAKzJ,GAAGyD,OAAOiE,EAAEmmB,GAAG7tB,EAAEuM,EAAErE,MAAM,UAAUiC,EAAE,CAACkwB,MAAMz2B,EAAEy2B,MAAM16B,MAAMK,IAAI8D,KAAK,CAAC,CAAC4H,KAAK,QAAQ4X,KAAI,EAAGoR,OAAO5G,EAAEuM,MAAMpZ,QAAQ,gCAAgCyK,IAAI,CAAC,MAAAoF,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,SAAShtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAGtF,IAAI,CAAC,MAAAtO,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,SAAShtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAGsC,KAAK,CAAC,MAAAlW,IAAU9wB,GAAG,OAAO8tB,EAAE4B,WAAW1vB,EAAE,QAAQ2e,EAAEioB,WAAWtjC,KAAK,OAAO,KAAKtD,EAAE,GAAGu/B,GAAG,CAAC,MAAAzO,IAAU9wB,GAAG,OAAO8tB,EAAE4B,WAAW1vB,EAAE,MAAM2e,EAAEioB,WAAWtjC,KAAK,KAAK,KAAKtD,EAAE,GAAGinC,KAAK,CAAC,MAAAnW,IAAU9wB,GAAG,OAAO2e,EAAEioB,WAAWtjC,KAAK,OAAO,KAAKtD,EAAE,GAAGgG,QAAQ,CAAC,MAAA8qB,CAAO9wB,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,MAAMyC,EAAEnK,aAAa86B,OAAO3wB,IAAInK,EAAEsD,KAAKitB,UAAUvwB,EAAE,CAACy6B,YAAW,KAAM5M,OAAE,IAASthB,EAAE,gBAAgBuhB,EAAE4C,cAAchpB,EAAE,CAAC,cAAc,YAAYyC,GAAG0jB,GAAG7tB,EAAE6W,MAAMgD,SAAS,OAAO7Z,EAAE6W,MAAMgD,SAAS,KAAK,gDAAgDtN,EAAEjJ,KAAKitB,UAAUhkB,EAAE,CAACkuB,YAAW,IAAK,MAAM72B,EAAEN,KAAKysB,QAAQnsB,EAAEwrB,QAAQ5pB,SAAS5B,EAAEwrB,QAAQ5pB,UAAU,GAAG,MAAM4B,EAAE,CAAC,CAAC+C,EAAE,QAAQ,UAAUnK,EAAEyzB,KAAKlnB,GAAG,OAAO7E,EAAEo7B,UAAU17B,EAAE07B,QAAQx/B,KAAKitB,UAAU7oB,EAAEo7B,SAAS,UAAU17B,EAAE07B,QAAQjgC,OAAOuE,EAAE07B,QAAQ17B,EAAE07B,QAAQxU,OAAO/oB,QAAQk6B,MAAMr4B,EAAE07B,UAAUl/B,EAAE4wB,iBAAiBptB,EAAE07B,SAASl/B,EAAEusB,UAAU,oBAAmB,EAAG,CAACJ,OAAM,KAAMroB,EAAEw/B,cAAc9/B,EAAE8/B,aAAY,GAAItjC,EAAEwrB,QAAQ5pB,SAASL,KAAKiC,GAAGxD,EAAE4wB,iBAAiBjoB,GAAG3I,CAAC,GAAG0f,IAAI,CAAC,MAAAwN,GAAS,OAAOxtB,KAAK8wB,UAAU,MAAM,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAI0hB,EAAEgN,MAAMj7B,GAAGA,EAAEuM,EAAErE,MAAM,iBAAiB,CAACvI,MAAMK,KAAK+6B,MAAM,CAAC,MAAAjK,GAAS,OAAOxtB,KAAK8wB,UAAU,QAAQ,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAIvM,aAAa86B,OAAO96B,EAAEuM,EAAErE,MAAM,eAAe,CAACvI,MAAMK,KAAKumC,OAAO,CAAC,MAAAzV,CAAO9wB,EAAEuM,EAAE7E,EAAE,CAAC,GAAGmmB,EAAE,iBAAiB7tB,GAAGA,aAAa86B,OAAO,oCAAoCjN,EAAE,iBAAiBthB,GAAGA,aAAakS,EAAE,8BAA8BoP,EAAEthB,IAAIvM,EAAE,kCAAkCA,GAAG8tB,EAAE4C,cAAchpB,EAAE,CAAC,QAAQ,kBAAkB,WAAW,aAAa,MAAM9D,EAAEN,KAAKysB,QAAQnsB,EAAEwrB,QAAQkX,QAAQ1iC,EAAEwrB,QAAQkX,SAAS,GAAG,IAAI,MAAM/5B,KAAK3I,EAAEwrB,QAAQkX,QAAQzY,EAAEthB,EAAE6vB,OAAOp8B,EAAE,6CAA6C,OAAOuM,aAAakS,GAAG7a,EAAE4wB,iBAAiBjoB,GAAG3I,EAAEwrB,QAAQkX,QAAQnhC,KAAK,CAACi3B,KAAKp8B,EAAE4/B,GAAGrzB,EAAE6F,QAAQjI,EAAEwU,EAAEwnB,eAAez+B,KAAK9D,CAAC,GAAGmxB,OAAO,CAAC,MAAAjE,CAAO9wB,EAAE,OAAO,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACjB,KAAK7C,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAG1J,KAAK6E,MAAMomB,EAAE8E,SAAS5yB,IAAI,QAAQ0H,GAAG1H,EAAE6C,OAAO6E,EAAE6E,EAAErE,MAAM,gBAAgB,CAACrF,KAAK6E,IAAI1H,GAAGogC,QAAQ,CAAC,MAAAtP,CAAO9wB,GAAG,OAAOsD,KAAK6sB,UAAU,WAAU,IAAKnwB,EAAE,GAAGmnC,KAAK,CAAC,MAAArW,CAAO9wB,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,OAAOiX,EAAEioB,WAAWtjC,KAAK,OAAOtD,EAAEuM,EAAE7E,EAAE,GAAG0/B,QAAQ,CAAC,MAAAtW,CAAO9wB,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,OAAOiX,EAAEioB,WAAWtjC,KAAK,UAAUtD,EAAEuM,EAAE7E,EAAE,GAAG2/B,IAAI,CAAC,MAAAvW,IAAU9wB,GAAG,OAAO8tB,EAAE4B,WAAW1vB,EAAE,OAAO2e,EAAEioB,WAAWtjC,KAAK,MAAM,KAAKtD,EAAE,IAAIs8B,UAAU,CAAC,QAAQt8B,EAAEuM,GAAG,YAAO,IAASvM,IAAIA,EAAE8tB,EAAE1G,QAAQwS,aAAat2B,KAAK+yB,SAAS,UAAUr2B,EAAEuM,EAAE,GAAG,OAAAwpB,CAAQ/1B,GAAG,GAAGA,EAAEovB,QAAQ3lB,KAAK,CAAC,MAAM8C,EAAE,IAAInF,EAAEkgC,OAAO,IAAI,MAAM5/B,KAAK1H,EAAEovB,QAAQ3lB,KAAKqkB,EAAEyM,aAAY,IAAKhuB,EAAEgM,IAAI7Q,EAAE,CAAC6/B,MAAM7/B,EAAEqtB,OAAOoB,mBAAmBqR,MAAM9/B,EAAE1F,OAAO0F,EAAE1F,KAAKhC,EAAEovB,QAAQ3lB,KAAK,IAAIkV,EAAEooB,QAAQx6B,EAAEk7B,MAAM,CAAC,EAAElL,SAAS,CAAC,KAAAC,CAAMx8B,EAAEuM,GAAG,GAAGA,EAAE9C,OAAOzJ,EAAEA,EAAEyJ,KAAK8C,EAAE9C,OAAO8C,EAAE85B,aAAa,IAAI,MAAMK,IAAIh/B,EAAE1F,IAAImI,EAAE,KAAKu9B,MAAM7Z,EAAEzb,QAAQxO,KAAK2I,EAAE85B,aAAarmC,EAAE2e,EAAEioB,WAAW5mC,EAAE0H,EAAEyC,EAAE0jB,EAAEjqB,GAAG,GAAG2I,EAAE/G,SAAS,IAAI,MAAMu1B,MAAMrzB,EAAEqtB,OAAO5qB,EAAEspB,KAAK5F,EAAEqZ,YAAYtjC,EAAEk/B,QAAQ17B,KAAKmF,EAAE/G,SAASxF,EAAEA,EAAEgG,QAAQ0B,GAAGyC,EAAE0jB,EAAE,CAACqZ,YAAYtjC,EAAEk/B,QAAQ17B,IAAI,GAAGmF,EAAE+5B,QAAQ,IAAI,MAAMlK,KAAK10B,EAAEk4B,GAAGz1B,EAAEiI,QAAQyb,KAAKthB,EAAE+5B,QAAQtmC,EAAEA,EAAEumC,OAAO7+B,EAAEyC,EAAE0jB,GAAG,OAAO7tB,CAAC,GAAGi1B,SAAS,CAAC,aAAa,+FAA+F,gBAAgB,sKAAsK,cAAc,uCAAuC,kBAAkB,+CAA+C,gBAAgB,gEAAgE,aAAa,sFAAsF,aAAa,yEAAyE,iBAAiB,+DAA+D,cAAc,8EAA8E,cAAc,uFAAuF,uBAAuB,uDAAuD,iBAAiB,qCAAqC,eAAe,qCAAqC,yBAAyB,4HAA4H,yBAAyB,8FAA8F,gBAAgB,oDAAoD,iBAAiB,4BAA4B,cAAc,gEAAgE,iBAAiB,uEAAuE,aAAa,iFAAiFtW,EAAEoR,MAAM,SAAS/vB,EAAEuM,GAAG,GAAG,iBAAiBvM,EAAE,CAAC,GAAGuM,EAAE+sB,eAAe,OAAO11B,EAAE5D,EAAE,CAACu2B,SAAQ,IAAK,MAAM7uB,EAAEzI,OAAO+Q,OAAO/Q,OAAO0D,eAAe3C,IAAI,OAAOf,OAAOqZ,OAAO5Q,EAAE1H,GAAG0H,CAAC,CAAC,MAAMA,EAAE,YAAY6E,GAAG,OAAOvM,EAAEyK,MAAMnH,KAAKiJ,EAAE,EAAE,OAAO7E,EAAExI,UAAU0E,EAAE5D,EAAEd,WAAWD,OAAO8lB,eAAerd,EAAE,OAAO,CAAC/H,MAAMK,EAAE0L,KAAK+Z,UAAS,IAAKxmB,OAAO8lB,eAAerd,EAAE,SAAS,CAAC/H,MAAMK,EAAEyD,OAAOgiB,UAAS,IAAKxmB,OAAOqZ,OAAO5Q,EAAE1H,GAAG0H,CAAC,EAAEiX,EAAEioB,WAAW,SAAS5mC,EAAEuM,EAAE7E,EAAEyC,EAAEvG,GAAGiqB,EAAE,OAAOnmB,GAAG,iBAAiBA,EAAE6E,EAAE,yBAAyB3I,IAAIA,EAAEuG,EAAE1G,OAAO,GAAG,iBAAiB0G,EAAEA,EAAE1G,OAAO,GAAG0G,EAAE8L,MAAM,CAAC,GAAG6X,EAAE4C,cAAc9sB,EAAE,CAAC,YAAY,cAAcuG,EAAE,GAAGU,OAAOV,GAAG,MAAM/C,EAAE0mB,EAAEnI,QAAQ/hB,EAAE26B,UAAU,KAAK92B,EAAE,GAAG,IAAI,MAAMzH,KAAKmK,EAAE0jB,EAAE,iBAAiB7tB,EAAEuM,EAAE,yBAAyB9E,EAAEtC,KAAK4oB,EAAEzK,IAAItjB,EAAE,CAACu+B,UAAUn3B,EAAEq3B,SAAS,EAAED,QAAO,KAAM,OAAO92B,IAAIA,EAAEqmB,EAAEzK,IAAI5b,EAAE,CAAC62B,UAAUn3B,EAAEq3B,SAAS,EAAED,QAAO,KAAM,MAAMxQ,EAAEhuB,EAAE+vB,QAAQ,OAAO/B,EAAEoB,QAAQiX,aAAarY,EAAEoB,QAAQiX,cAAc,GAAGrY,EAAEoB,QAAQiX,aAAalhC,KAAK,IAAIwZ,EAAEgpB,WAAWp7B,EAAE7E,EAAED,EAAE0C,EAAEvG,IAAIoqB,CAAC,EAAErP,EAAE0nB,aAAa,CAAC,GAAAM,CAAI3mC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,GAAGwD,EAAE,GAAGK,EAAE8E,EAAEm7B,MAAMjkC,OAAOqqB,EAAEnP,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMpS,KAAKuM,EAAEm7B,OAAM,IAAK5Z,EAAE9tB,EAAE0E,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,KAAMl7B,EAAEuB,KAAKnF,EAAEgC,KAAKoF,EAAEjC,KAAKnF,EAAEgC,KAAK,GAAG4B,EAAEH,SAASgE,GAAGL,EAAE3D,SAASgE,EAAE,MAAM,CAACtH,KAAK,aAAaoK,QAAQ,CAACq9B,QAAQxgC,EAAEygC,kBAAkBlpB,EAAEmpB,aAAa9nC,EAAEoH,GAAG2gC,QAAQnkC,EAAEokC,kBAAkBrpB,EAAEmpB,aAAa9nC,EAAE4D,IAAI,EAAE,IAAAojC,CAAKhnC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,GAAGwD,EAAEuX,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMpS,KAAKuM,EAAEm7B,MAAMtgC,EAAEpH,EAAE0E,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,MAAOl7B,EAAEuB,KAAKnF,EAAEgC,KAAK,GAAG4B,EAAEH,SAAS8I,EAAEm7B,MAAMjkC,OAAO,OAAO,MAAMgE,EAAE8E,EAAE07B,MAAM,GAAGna,EAAEvhB,EAAE07B,MAAMjhC,MAAM,GAAG,MAAM,CAAC7G,KAAK,cAAcoK,QAAQ,CAAC29B,KAAKzgC,EAAE0gC,cAAcxpB,EAAEmpB,aAAa9nC,EAAEyH,GAAGigC,MAAM5Z,EAAEsa,gBAAgBzpB,EAAEmpB,aAAa9nC,EAAE8tB,IAAI,EAAE,EAAAyR,CAAGv/B,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE+a,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMpS,KAAKuM,EAAEm7B,MAAM,GAAG9jC,EAAE5D,EAAE0E,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,KAAM,OAAO,MAAM,CAAC3+B,KAAK,iBAAiBoK,QAAQ,CAACm9B,MAAMn7B,EAAE07B,MAAMG,gBAAgBzpB,EAAEmpB,aAAa9nC,EAAEuM,EAAE07B,QAAQ,EAAE,IAAAhB,CAAKjnC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,GAAGwD,EAAEuX,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMpS,KAAKuM,EAAEm7B,MAAMtgC,EAAEpH,EAAE0E,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,MAAOl7B,EAAEuB,KAAKnF,EAAEgC,KAAK,IAAI4B,EAAEH,QAAQ,IAAIG,EAAEH,OAAO,OAAO,MAAMgE,EAAE,CAACigC,MAAMn7B,EAAE07B,MAAMG,gBAAgBzpB,EAAEmpB,aAAa9nC,EAAEuM,EAAE07B,QAAQ,OAAOxgC,EAAEmgC,QAAQhkC,EAAE6D,EAAEogC,kBAAkBlpB,EAAEmpB,aAAa9nC,EAAE4D,GAAG,CAACzD,KAAK,cAAcoK,QAAQ9C,EAAE,EAAE,KAAKzH,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE+a,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMhL,KAAKmF,EAAEm7B,MAAM,IAAG,IAAK9jC,EAAEwD,EAAE1C,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,KAAM,MAAM,CAAC3+B,KAAK,cAAcoK,QAAQ,CAAC29B,KAAK37B,EAAEvK,IAAIA,IAAImmC,cAAcxpB,EAAEmpB,aAAa9nC,EAAEuM,EAAEvK,IAAIA,KAAKqmC,KAAKjhC,EAAEpF,IAAIsmC,cAAc3pB,EAAEmpB,aAAa9nC,EAAEoH,EAAEpF,MAAM,EAAE,OAAAolC,CAAQpnC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE+a,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMhL,KAAKmF,EAAEm7B,MAAM,GAAG9jC,EAAEwD,EAAE1C,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,KAAM,MAAM,CAAC3+B,KAAK,iBAAiBoK,QAAQ,CAAC29B,KAAK37B,EAAEvK,IAAIA,IAAImmC,cAAcxpB,EAAEmpB,aAAa9nC,EAAEuM,EAAEvK,IAAIA,KAAKqmC,KAAKjhC,EAAEpF,IAAIsmC,cAAc3pB,EAAEmpB,aAAa9nC,EAAEoH,EAAEpF,MAAM,EAAE,GAAAqlC,CAAIrnC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,GAAGwD,EAAEuX,EAAE8nB,UAAUl6B,EAAE6F,SAAS,IAAI,MAAMpS,KAAKuM,EAAEm7B,MAAMtgC,EAAEpH,EAAE0E,QAAQgD,EAAEyC,EAAE0jB,EAAE,KAAK,CAACiR,QAAO,MAAOl7B,EAAEuB,KAAKnF,EAAEgC,KAAK,GAAG,IAAI4B,EAAEH,OAAO,OAAO,MAAMgE,EAAE,CAACigC,MAAMn7B,EAAE07B,MAAMG,gBAAgBzpB,EAAEmpB,aAAa9nC,EAAEuM,EAAE07B,QAAQ,OAAO,IAAIrkC,EAAEH,OAAO,CAACtD,KAAK,iBAAiBoK,QAAQ9C,IAAIA,EAAEmgC,QAAQhkC,EAAE6D,EAAEogC,kBAAkBlpB,EAAEmpB,aAAa9nC,EAAE4D,GAAG,CAACzD,KAAK,aAAaoK,QAAQ9C,GAAG,GAAGkX,EAAEmpB,aAAa,SAAS9nC,EAAEuM,GAAG,OAAOqF,MAAMie,QAAQtjB,GAAGA,EAAElI,KAAKkI,GAAGvM,EAAEq1B,YAAY9oB,KAAKvM,EAAEq1B,YAAY9oB,EAAE,EAAEoS,EAAE8nB,UAAU,SAASzmC,GAAG,MAAM,mBAAmBA,EAAEymC,UAAUzmC,EAAEymC,UAAUzmC,QAAG,IAASA,CAAC,EAAE2e,EAAE4nB,OAAO,SAASvmC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAG,MAAMjqB,EAAE,CAAC,EAAE,IAAI,MAAMwD,KAAKpH,EAAEovB,QAAQkX,QAAQ,CAAC,MAAM7+B,EAAE,GAAGqmB,EAAE,iBAAiB1mB,EAAEg1B,KAAK,GAAGtO,EAAE,IAAI,MAAM9tB,KAAKuM,EAAE,CAAC,QAAG,IAASA,EAAEvM,IAAIoH,EAAEgL,QAAQ8yB,gBAAgB,SAAS,GAAGllC,IAAIoH,EAAEw4B,GAAG,SAAS,MAAMl4B,EAAEN,EAAEg1B,KAAKt3B,KAAK9E,GAAG0H,GAAGD,EAAEtC,KAAK,CAACi3B,KAAKp8B,EAAE4/B,GAAGx4B,EAAEw4B,GAAG3yB,MAAMvF,GAAG,MAAMzI,OAAOC,UAAUC,eAAeU,KAAK0M,EAAEnF,EAAEg1B,YAAO,IAAS7vB,EAAEnF,EAAEg1B,OAAOh1B,EAAEgL,QAAQ8yB,iBAAiBz9B,EAAEtC,KAAKiC,GAAG,IAAI,MAAM2mB,KAAKtmB,EAAE,CAAC,MAAMA,EAAEsmB,EAAEqO,KAAK,IAAIpO,EAAED,EAAE6R,GAAG,GAAG5R,aAAavP,IAAIuP,EAAEA,EAAEzJ,OAAOhY,EAAE7E,EAAEyC,EAAE4jB,EAAE9gB,QAAQxF,IAAIumB,EAAE,CAAC,IAAI5mB,EAAEgL,QAAQg0B,UAAUxiC,EAAEoqB,KAAKH,EAAE1oB,KAAKnF,EAAEg1B,cAAc,yBAAyBzoB,EAAE,CAAC6vB,KAAK30B,EAAEm4B,GAAG5R,EAAEhoB,QAAQ8nB,GAAGpmB,EAAEyC,IAAIA,EAAEqrB,YAAY,OAAM,EAAG,GAAGv2B,OAAOC,UAAUC,eAAeU,KAAK0M,EAAEyhB,KAAK5mB,EAAEgL,QAAQoe,WAAW5sB,EAAEoqB,KAAKH,EAAE1oB,KAAKnF,EAAEg1B,cAAc,yBAAyBzoB,EAAE,CAAC6vB,KAAK30B,EAAEm4B,GAAG5R,EAAEhoB,QAAQ8nB,GAAGpmB,EAAEyC,IAAIA,EAAEqrB,YAAY,OAAM,OAAG,IAASjpB,EAAE9E,UAAU8E,EAAEyhB,GAAGzhB,EAAEyhB,GAAGzhB,EAAE9E,GAAG7D,EAAEoqB,IAAG,EAAG5mB,EAAEgL,QAAQiqB,cAAc9vB,EAAE9E,EAAE,CAAC,CAAC,CAAC,OAAM,CAAE,EAAEkX,EAAEyhB,QAAQ,SAASpgC,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAEjqB,GAAG,GAAG5D,EAAEovB,QAAQ5pB,SAAS,CAAC,IAAI4B,GAAE,EAAG,MAAMK,EAAEzH,EAAEovB,QAAQ5pB,SAASnB,KAAKrE,IAAI,GAAGA,EAAE8iC,QAAQ,OAAO17B,GAAE,EAAG,EAAG,IAAG0mB,EAAE,CAACvhB,KAAKshB,EAAEoJ,WAAW,IAAI,MAAM7vB,KAAKM,EAAE,CAAC,MAAMqmB,EAAExhB,EAAEnF,GAAG4mB,EAAE,IAAIH,EAAE1X,KAAK/O,GAAG,IAAI,IAAI6mB,EAAE,EAAEA,EAAEjuB,EAAEovB,QAAQ5pB,SAAS/B,SAASwqB,EAAE,CAAC,MAAMxP,EAAEze,EAAEovB,QAAQ5pB,SAASyoB,GAAG,GAAGxP,EAAEsc,MAAM,CAAC,MAAM/6B,EAAEye,EAAEsc,MAAM7J,KAAK9pB,GAAG,GAAGymB,EAAEuJ,SAASrD,OAAOrC,MAAM7D,EAAE,OAAO,WAAWI,IAAIjuB,EAAE,OAAO,UAAUA,EAAE,QAAQ,MAAM,IAAIye,EAAEsW,OAAOQ,QAAQnuB,EAAEymB,EAAEkJ,KAAKtY,EAAEsW,OAAO,WAAW9G,KAAKrqB,GAAG,SAAS8D,EAAEpF,OAAO8E,GAAG,MAAMuX,EAAEkP,EAAEmJ,SAAShJ,EAAEF,EAAE,CAACiH,OAAOtW,EAAEgV,KAAKzxB,IAAIoF,IAAIyX,EAAEJ,EAAEgV,KAAK6C,WAAWvI,EAAEpP,EAAE/a,GAAG,GAAGib,EAAE8W,OAAO,CAAC,GAAG/xB,EAAE4xB,WAAW,MAAM,CAAC71B,MAAM4M,EAAEopB,OAAO9W,EAAE8W,QAAQxrB,EAAEhF,QAAQ0Z,EAAE8W,OAAO,CAAC,GAAGlX,EAAEqkB,SAASr7B,EAAEwmB,GAAG9oB,KAAKiC,GAAGmF,EAAEnF,GAAGyX,EAAElf,OAAO8e,EAAEyoB,YAAY,KAAK,CAAC,CAAC,GAAG9/B,EAAE,IAAI,IAAIM,EAAE,EAAEA,EAAED,EAAEhE,SAASiE,EAAE,CAAC,MAAMN,EAAEK,EAAEC,GAAG,IAAIN,EAAE,SAAS,MAAM2mB,EAAE/tB,EAAEovB,QAAQ5pB,SAASkC,GAAGo7B,QAAQ7U,EAAEJ,EAAEmJ,SAASnJ,EAAE1X,KAAK2X,EAAEC,GAAGtP,EAAEsP,EAAEuI,WAAWlvB,EAAE6mB,EAAErqB,GAAG,GAAG6a,EAAEkX,OAAO,CAAC,MAAMjuB,EAAEsmB,EAAE8L,QAAQrb,EAAEkX,OAAO,CAACnF,UAAS,IAAK9oB,EAAEo7B,QAAQ17B,EAAE,MAAMK,EAAEzH,EAAEg1B,cAAc,uBAAuBzoB,EAAE7E,EAAEmmB,EAAEjqB,GAAG,GAAGA,EAAE4xB,WAAW,MAAM,CAAC71B,MAAM4M,EAAEopB,OAAOluB,GAAG0C,EAAEhF,KAAKsC,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE6wB,OAAOv4B,EAAEovB,QAAQ3lB,MAAMzJ,EAAEovB,QAAQ5pB,UAAU,CAAC,GAAG5B,EAAE61B,mBAAc,IAASz5B,EAAEivB,OAAOmR,SAASx8B,EAAE41B,cAAc,CAAC,MAAMx5B,KAAK4D,EAAE61B,eAAc,IAAK71B,EAAE61B,eAAe71B,EAAE61B,aAAa6F,SAAS,IAAI,MAAMn1B,KAAKzC,EAAE1H,UAAUuM,EAAEpC,GAAGzC,EAAEpF,OAAO6H,IAAI,mBAAmBoC,EAAEpC,IAAIzC,EAAEpF,OAAO6H,EAAE,CAAC,IAAI2jB,EAAEnI,QAAQ3lB,EAAEivB,OAAOmR,QAAQx8B,EAAEm1B,cAAc,IAAI,MAAM3xB,KAAKM,EAAE,CAAC,MAAMA,EAAEmmB,EAAEmJ,SAAS,IAAInJ,EAAE1X,KAAK/O,GAAG,IAAIK,EAAEzH,EAAEg1B,cAAc,iBAAiBzoB,EAAEnF,GAAG,CAACwE,MAAMxE,GAAGM,EAAE9D,EAAE,CAACiT,OAAM,IAAK,GAAGjT,EAAE4xB,WAAW,MAAM,CAAC71B,MAAM4M,EAAEopB,OAAOluB,GAAG0C,EAAEhF,KAAKsC,EAAE,CAAC,CAAC,EAAEkX,EAAEgpB,WAAW,MAAM,WAAAtZ,CAAYruB,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,GAAGvqB,KAAKojC,IAAI1mC,EAAEsD,KAAKtB,IAAIuK,EAAEjJ,KAAKokC,MAAMhgC,EAAEpE,KAAK2kC,MAAM99B,EAAE7G,KAAK8O,QAAQyb,CAAC,CAAC,QAAA2B,GAAW,MAAMxvB,EAAE,CAAC0mC,IAAIpjC,KAAKojC,IAAIgB,MAAMpkC,KAAK2kC,OAAO,OAAO,OAAO3kC,KAAKtB,MAAMhC,EAAEgC,IAAIsB,KAAKtB,IAAIA,KAAK,MAAMsB,KAAKokC,MAAM,GAAGnJ,YAAYv+B,EAAEoS,QAAQ,IAAIpS,EAAEoS,QAAQmsB,UAAUj7B,KAAKokC,MAAM,GAAGnJ,YAAYj7B,KAAK8O,QAAQq0B,YAAYzmC,EAAEoS,QAAQ,IAAIpS,EAAEoS,QAAQq0B,UAAUnjC,KAAK8O,QAAQq0B,YAAYzmC,CAAC,GAAG2e,EAAEooB,KAAK,cAAcn1B,MAAM,MAAA/G,CAAO7K,GAAG,MAAMuM,EAAEjJ,KAAK0D,QAAQU,EAAE,IAAIjG,IAAI,IAAI,IAAIzB,EAAE,EAAEA,EAAEuM,EAAE9I,SAASzD,EAAE0H,EAAEzF,IAAIsK,EAAEvM,GAAGgC,IAAIhC,GAAG,IAAI,MAAMmK,KAAKnK,EAAE,CAAC,MAAMA,EAAEmK,EAAEnI,IAAI6rB,EAAEnmB,EAAEiN,IAAI3U,QAAG,IAAS6tB,EAAEthB,EAAEshB,GAAG,CAAC7rB,IAAIhC,EAAE+0B,OAAOxoB,EAAEshB,GAAGkH,OAAOlqB,OAAOV,EAAE4qB,SAASxoB,EAAEpH,KAAKgF,EAAE,CAAC,OAAOoC,CAAC,EAAC,EAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAE,CAAC,EAAE9tB,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,OAAOozB,WAAW,CAACsS,aAAY,GAAI5R,MAAM,CAACiG,KAAK,CAAChG,KAAK,KAAK2F,SAAS,SAAS1J,UAAS,IAAK/uB,KAAK,CAAC9D,EAAEuM,IAAIvM,EAAEsjB,IAAI/W,GAAG,QAAAynB,CAASh0B,GAAG+0B,OAAOxoB,EAAE4G,MAAMzL,EAAE6pB,MAAM1D,IAAI1jB,EAAEoC,EAAE6iB,QAAQwN,KAAK,6BAA6B,MAAMh5B,EAAEkqB,EAAEwJ,SAAS/qB,EAAEvM,EAAE0H,EAAEmmB,GAAGzmB,EAAEmF,EAAE6iB,QAAQwN,KAAK,GAAGtZ,IAAI,OAAO1f,EAAE0yB,WAAWt2B,EAAE0H,EAAEqvB,KAAKnzB,EAAE,QAAQwD,EAAEy3B,WAAWj7B,EAAEf,QAAQgrB,EAAE,EAAEyJ,SAAS,CAACt3B,EAAEuM,EAAE7E,EAAEyC,IAAI2jB,EAAEwJ,SAASt3B,EAAEuM,EAAE7E,EAAEyC,GAAG6oB,MAAM,CAAC1P,IAAI,CAAC,MAAAwN,CAAO9wB,GAAGmK,GAAG7G,KAAK8rB,QAAQwN,KAAK,8BAA8B58B,EAAEoH,EAAEkc,IAAItjB,GAAGmK,EAAE,UAAUnK,EAAE6C,MAAM,UAAU7C,EAAE6C,KAAK,0BAA0B7C,EAAE6C,MAAMsH,EAAE,UAAUnK,EAAE6C,MAAM,SAAS7C,EAAEy+B,UAAUz+B,EAAEy+B,SAAS,EAAE,gCAAgC,MAAMlyB,EAAEjJ,KAAKysB,QAAQ,OAAOxjB,EAAE6iB,QAAQwN,KAAK,CAAC,CAACtZ,IAAItjB,IAAIuM,CAAC,GAAGi8B,SAAS,CAAC,MAAA1X,CAAO9wB,GAAE,GAAI,OAAOsD,KAAK6sB,UAAU,WAAWnwB,EAAE,IAAIs8B,UAAU,CAAC,MAAAzxB,CAAO7K,GAAGmK,EAAE7G,KAAK8rB,QAAQwN,KAAK,6BAA6BzyB,EAAEvG,EAAEgvB,SAAS5yB,GAAG,yBAAyBmK,EAAE,SAASnK,EAAE6C,KAAK,4CAA4C,MAAM0J,EAAEjJ,KAAKysB,QAAQ,OAAOxjB,EAAE6iB,QAAQG,QAAQhjB,EAAE6iB,QAAQG,MAAM,IAAIhjB,EAAE6iB,QAAQG,MAAMpqB,KAAK,CAAC0F,OAAO7K,IAAIuM,EAAEimB,iBAAiB,GAAG+J,SAAS,CAACC,MAAM,CAACx8B,EAAEuM,KAAKpC,EAAEoC,EAAEqwB,KAAK,yCAAyC58B,EAAEsjB,IAAI/W,EAAEqwB,UAAU9O,EAAEwJ,SAAS,SAASt3B,EAAEuM,EAAE7E,EAAEyC,GAAG,IAAI0jB,EAAEnmB,EAAE0vB,SAASqR,MAAM9zB,IAAI3U,GAAG,GAAG6tB,EAAE,OAAOA,EAAEiJ,UAAUvqB,EAAE7E,EAAEyC,GAAG4qB,OAAO,MAAMnxB,EAAE5D,EAAEovB,QAAQwN,KAAK,GAAGtZ,KAAKolB,YAAYthC,EAAE+O,KAAK1O,GAAGqmB,EAAE4a,YAAY9kC,EAAE8D,GAAGomB,EAAE4G,OAAOttB,EAAE,wCAAwCxD,EAAE5D,EAAE0H,EAAEyC,GAAG,IAAI0jB,EAAEpmB,EAAEhE,OAAO2D,EAAE8uB,QAAQzuB,GAAGL,CAAC,CAAC,MAAMmF,GAAGuhB,EAAE4G,QAAO,EAAG,yBAAyB9wB,EAAE5D,EAAE0H,EAAEyC,EAAE,CAAC,OAAO2jB,EAAE4G,OAAO,SAAS7G,EAAEhrB,KAAK,wBAAwBe,EAAE5D,EAAE0H,EAAEyC,GAAGnK,EAAEivB,OAAOuZ,UAAU9gC,EAAE0vB,SAASqR,MAAMxmC,IAAIjC,EAAE6tB,GAAGA,EAAEiJ,UAAUvqB,EAAE7E,EAAEyC,GAAG4qB,MAAM,EAAEjH,EAAE4a,YAAY,SAAS1oC,EAAEuM,GAAG,GAAG,UAAUvM,EAAE6C,KAAK,CAAC,IAAI,MAAMkyB,OAAOrtB,EAAE1F,IAAImI,KAAKoC,EAAE2qB,QAAQ,CAAC,IAAIxvB,EAAEunB,OAAOze,IAAIrG,KAAKnK,EAAEmW,KAAK,GAAG,MAAM,CAACuyB,YAAYhhC,EAAEyO,KAAKnW,EAAEmW,KAAKnP,MAAM,IAAI,GAAGU,EAAE0nB,QAAQoU,OAAO,IAAI,MAAMj3B,KAAK7E,EAAE0nB,QAAQoU,OAAO,GAAGj3B,EAAE0iB,OAAOze,KAAKxQ,EAAEmW,KAAK,GAAG,MAAM,CAACuyB,YAAYn8B,EAAE4J,KAAKnW,EAAEmW,KAAKnP,MAAM,GAAG,CAAC,MAAM,CAAC0hC,YAAY,KAAKvyB,KAAK,KAAK,CAAC,MAAM,SAASnW,EAAEy+B,SAAS,CAACiK,YAAYn8B,EAAE2qB,QAAQ3qB,EAAE2qB,QAAQzzB,OAAO,GAAGsxB,OAAO5e,KAAKnW,EAAEmW,MAAM,CAACuyB,YAAYn8B,EAAE2qB,QAAQl3B,EAAEy+B,WAAWlyB,EAAE2qB,QAAQl3B,EAAEy+B,UAAU1J,OAAO5e,KAAKnW,EAAEmW,KAAK,EAAE2X,EAAE4G,OAAO,SAAS10B,EAAEuM,EAAE7E,EAAEmmB,EAAEjqB,EAAEwD,GAAGpH,GAAGmK,GAAE,EAAG,IAAI1C,EAAEqJ,MAAM+c,EAAEoB,OAAOrrB,EAAEwD,gCAAgCM,EAAEm3B,YAAYtyB,IAAI,GAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAACuhC,SAAS,gEAAgEC,YAAY,mCAAmCC,qBAAqB,gBAAgBC,yBAAyB,cAAcC,SAAS,KAAKC,mBAAmB,MAAM,aAAAC,CAAcjpC,GAAG,MAAMuM,EAAEvM,EAAEX,WAAWqI,EAAE6E,EAAEk1B,QAAQ,KAAKt3B,EAAEoC,EAAEk1B,QAAQ,KAAK,OAAO/5B,EAAE,EAAE,GAAGyC,EAAE,EAAEoC,EAAE9I,OAAO0G,GAAGzC,EAAE,IAAIyC,EAAE,EAAE,EAAE5J,KAAKmrB,IAAI,GAAGwd,SAAS38B,EAAEvF,MAAMmD,EAAE,KAAK,GAAGnK,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,SAASgU,MAAM,CAACsyB,OAAO,CAACxjB,SAAQ,IAAKwW,OAAO,CAACC,KAAK,SAAS,MAAAtL,CAAO9wB,GAAG+0B,OAAOxoB,EAAErE,MAAMR,IAAI,IAAI1H,EAAEiN,MAAM7F,EAAEuhC,UAAU,OAAO3oC,EAAEA,EAAEw7B,OAAO,MAAMrxB,EAAE,CAACxK,MAAMijC,WAAW5iC,IAAI,GAAG,IAAImK,EAAExK,QAAQwK,EAAExK,MAAM,IAAI4M,EAAE0iB,OAAOka,OAAO,GAAGnpC,EAAEiN,MAAM,OAAO,GAAG7F,EAAEgiC,yBAAyBppC,KAAKoH,EAAEgiC,yBAAyBnjC,OAAOkE,EAAExK,QAAQ,OAAOwK,EAAEwrB,OAAOjuB,EAAE,iBAAiByC,MAAM,CAAC,MAAMoC,EAAEpC,EAAExK,MAAMN,WAAW,GAAGkN,EAAEU,MAAM,MAAM,OAAO9C,EAAE,GAAGoC,IAAInF,EAAEiiC,iBAAiBrpC,GAAG,OAAOmK,EAAEwrB,OAAOjuB,EAAE,iBAAiByC,CAAC,CAAC,OAAOA,CAAC,GAAG,QAAA6pB,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,EAAE6pB,MAAMpnB,IAAI,GAAGnK,IAAI,KAAKA,KAAI,IAAK,MAAM,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,oBAAoB,IAAI9D,EAAEq2B,SAASj6B,GAAG,MAAM,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,gBAAgB,MAAMmmB,EAAE,CAACluB,MAAMK,GAAG,GAAGmK,EAAE6nB,QAAQ,CAAC,MAAMhyB,EAAEuM,EAAE6oB,UAAU,aAAa,GAAGp1B,EAAE,CAAC,MAAMuM,EAAEhM,KAAK+oC,IAAI,GAAGtpC,EAAE8D,KAAKu2B,OAAOxM,EAAEluB,MAAMY,KAAKgpC,MAAM1b,EAAEluB,MAAM4M,GAAGA,CAAC,CAAC,CAAC,OAAO,IAAIshB,EAAEluB,QAAQkuB,EAAEluB,MAAM,IAAI4M,EAAE0iB,OAAOka,SAASnpC,EAAEgX,OAAOwyB,kBAAkBxpC,EAAEgX,OAAOyyB,oBAAoB5b,EAAE8H,OAAOjuB,EAAE,kBAAkBmmB,CAAC,EAAEmF,MAAM,CAAC+G,QAAQ,CAACjJ,QAAO,EAAGkD,SAAS,CAACh0B,EAAEuM,GAAG8tB,MAAM3yB,IAAIgE,KAAKvB,EAAEu6B,SAAS7W,EAAE/pB,KAAKsD,KAAKxD,EAAEm2B,QAAQ/5B,EAAE0H,EAAEmmB,GAAG7tB,EAAEuM,EAAErE,MAAM,UAAUiC,EAAE,CAACkwB,MAAMjzB,EAAEizB,MAAM16B,MAAMK,IAAI8D,KAAK,CAAC,CAAC4H,KAAK,QAAQ4X,KAAI,EAAGoR,OAAO9wB,EAAEq2B,SAAShZ,QAAQ,sBAAsB6kB,QAAQ,CAAC,MAAAhV,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,UAAUolB,OAAO,UAAUhtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,KAAK,GAAGzE,QAAQ,CAAC,MAAAnP,GAAS,OAAOxtB,KAAK8wB,UAAU,UAAU,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAIhM,KAAKmpC,MAAM1pC,GAAGA,GAAG,EAAEA,EAAEuM,EAAErE,MAAM,mBAAmB69B,KAAK,CAAC,MAAAjV,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAOolB,OAAO,UAAUhtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,KAAK,GAAGhZ,IAAI,CAAC,MAAAoF,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,UAAUhtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAGtF,IAAI,CAAC,MAAAtO,CAAO9wB,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAMolB,OAAO,UAAUhtB,KAAK,CAACu2B,MAAMr6B,GAAG0kC,SAAS,MAAM,GAAG0B,SAAS,CAAC,MAAAtV,CAAO9wB,GAAG,MAAMuM,EAAE,iBAAiBvM,EAAEoH,EAAE6hC,cAAcjpC,GAAG,KAAK0H,EAAEnH,KAAK+oC,IAAI,GAAG/8B,GAAG,OAAOjJ,KAAK8wB,UAAU,CAAC1oB,KAAK,WAAW5H,KAAK,CAACuvB,KAAKrzB,EAAE2pC,iBAAiBp9B,EAAEq9B,QAAQliC,IAAI,EAAEssB,SAAS,CAACh0B,EAAEuM,GAAG8mB,KAAK3rB,EAAEiiC,iBAAiBx/B,EAAEy/B,QAAQ/b,GAAGjqB,IAAIwD,EAAE6hC,cAAcjpC,GAAGmK,EAAEoC,EAAErE,MAAM,kBAAkB,CAACk+B,SAASxiC,EAAEE,KAAKuvB,KAAK1zB,MAAMK,IAAIO,KAAKgpC,MAAM1b,EAAE7tB,GAAGO,KAAKgpC,MAAM1b,EAAEnmB,IAAI,EAAE1H,EAAEuM,EAAErE,MAAM,kBAAkB,CAACk+B,SAASxiC,EAAEE,KAAKuvB,KAAK1zB,MAAMK,IAAI8D,KAAK,CAAC,CAAC4H,KAAK,OAAO4X,KAAI,EAAGoR,OAAO10B,GAAG,iBAAiBA,GAAGk4B,SAASl4B,IAAIA,EAAE,EAAEihB,QAAQ,6BAA6B,mBAAmB,WAAWgS,OAAM,GAAI4W,SAAS,CAAC,MAAA/Y,GAAS,OAAOxtB,KAAKwmC,KAAK,WAAW,GAAGC,KAAK,CAAC,MAAAjZ,GAAS,OAAOxtB,KAAK8wB,UAAU,OAAO,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAIyK,OAAOsjB,cAAct6B,IAAIA,GAAG,GAAGA,GAAG,MAAMA,EAAEuM,EAAErE,MAAM,gBAAgB8hC,SAAS,CAAC,MAAAlZ,GAAS,OAAOxtB,KAAKwmC,KAAK,WAAW,GAAGG,UAAU,CAAC,MAAAnZ,CAAO9wB,GAAG,OAAOmK,EAAE6M,OAAOsjB,cAAct6B,GAAG,4BAA4BsD,KAAK8wB,UAAU,CAAC1oB,KAAK,YAAY5H,KAAK,CAACu2B,MAAMr6B,IAAI,EAAE,QAAAg0B,CAASh0B,EAAEuM,GAAG8tB,MAAM3yB,IAAI,MAAMyC,EAAEnK,EAAEX,WAAW4N,MAAM7F,EAAEwhC,aAAa,OAAOroC,KAAKmrB,KAAKvhB,EAAE,GAAGA,EAAE,GAAG1G,OAAO,IAAI0G,EAAE,GAAG++B,SAAS/+B,EAAE,GAAG,IAAI,GAAG,IAAIzC,EAAE1H,EAAEuM,EAAErE,MAAM,mBAAmB,CAACmyB,MAAM3yB,EAAE/H,MAAMK,GAAG,EAAEgyB,SAAQ,GAAI8X,KAAK,CAAC,MAAAhZ,CAAO9wB,GAAG,OAAOmK,EAAE,CAAC,WAAW,YAAY0P,SAAS7Z,GAAG,eAAeA,GAAGsD,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAO5H,KAAK,CAACgmC,KAAK9pC,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGu9B,KAAKpiC,KAAK,aAAaA,GAAG1H,EAAE,GAAG,aAAa0H,GAAG1H,EAAE,EAAEA,EAAEuM,EAAErE,MAAM,UAAUR,MAAMyhC,OAAO,CAAC,MAAArY,CAAO9wB,GAAE,GAAI,OAAOmK,EAAE,kBAAkBnK,EAAE,6BAA6BsD,KAAK6sB,UAAU,SAASnwB,EAAE,IAAIowB,KAAK,CAACrqB,OAAO,CAACq2B,KAAKp8B,GAAG,iBAAiBA,EAAE4/B,GAAG,CAAC5/B,EAAEuM,IAAIvM,EAAEX,aAAa41B,SAAS,CAAC,cAAc,8BAA8B,iBAAiB,6CAA6C,kBAAkB,gCAAgC,iBAAiB,gCAAgC,cAAc,0CAA0C,aAAa,sDAAsD,aAAa,yDAAyD,kBAAkB,iDAAiD,kBAAkB,uCAAuC,cAAc,kCAAkC,kBAAkB,uCAAuC,mBAAmB,8DAA8D,gBAAgB,sCAAsC7tB,EAAEgiC,yBAAyB,SAASppC,GAAG,OAAOA,EAAEu7B,QAAQn0B,EAAEyhC,qBAAqB,IAAItN,QAAQn0B,EAAE2hC,SAAS,IAAIxN,QAAQn0B,EAAE4hC,mBAAmB,IAAIzN,QAAQn0B,EAAE0hC,yBAAyB,GAAG,EAAE1hC,EAAEiiC,iBAAiB,SAASrpC,GAAG,OAAOA,EAAEA,EAAEu7B,QAAQ,MAAM,IAAIA,QAAQ,QAAQ,IAAIA,QAAQ,mBAAmB,UAAUA,QAAQ,iBAAiB,SAAS1hB,SAAS,MAAM7Z,EAAEkqC,SAAS,OAAOlqC,EAAEA,EAAEu7B,QAAQ,MAAM,KAAK,OAAOv7B,EAAE,IAAIA,CAAC,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAM1H,EAAEN,QAAQyK,EAAEipB,OAAO,CAACvwB,KAAK,SAASutB,KAAK,CAAC/rB,IAAI,CAAC+3B,KAAKp8B,GAAGA,GAAG,iBAAiBA,EAAE4/B,GAAG,CAAC5/B,EAAEuM,IAAI,IAAI9K,IAAIxC,OAAOg/B,QAAQj+B,OAAM,EAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,MAAMsmB,EAAEtmB,EAAE,MAAMumB,EAAEvmB,EAAE,MAAM+W,EAAE,CAAC0rB,KAAKrc,aAAakK,KAAK,CAACmS,KAAK,CAAC1a,MAAM3B,EAAE4J,KAAK,OAAO0S,YAAY,CAAC9H,KAAK,CAACA,KAAK,uDAAuDC,MAAM,wFAAwFA,MAAM,CAACD,KAAK,2DAA2DC,MAAM,6FAA6F8H,aAAa,4DAA4DC,SAAS,CAACC,WAAW,iBAAiBC,mBAAmB,sBAAsBC,cAAc,gBAAgBC,QAAQtjC,EAAE2zB,MAAM,CAAC4P,KAAK,cAAc5P,MAAM6P,iBAAiB,sEAAsEC,aAAa,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAIC,aAAa,CAACC,OAAO,IAAIC,OAAO,IAAIC,OAAO,IAAIC,OAAO,IAAIC,OAAO,IAAIC,OAAO,IAAIC,OAAO,IAAIC,OAAO,KAAKC,eAAe,IAAIvT,IAAI,MAAC,GAAO,GAAG,EAAG,IAAI,MAAMwT,mBAAmB,CAAC,MAAM,MAAM,OAAO,SAASxrC,EAAEN,QAAQsuB,EAAEoF,OAAO,CAACvwB,KAAK,SAASgU,MAAM,CAAC40B,YAAY,CAAC9lB,SAAQ,GAAI+lB,SAAS,CAAC/lB,SAAQ,IAAKgR,MAAM,CAACgV,aAAa,CAAC/U,KAAK,OAAOuF,OAAO,CAACC,KAAK,SAAS,MAAAtL,CAAO9wB,GAAG+0B,OAAOxoB,EAAE4G,MAAMzL,EAAE6pB,MAAMpnB,IAAI,MAAM0jB,EAAEthB,EAAE6oB,UAAU,aAAavH,IAAI7tB,EAAEA,EAAEy0B,UAAU5G,EAAE/pB,KAAK8nC,OAAO,MAAMhoC,EAAE2I,EAAE6oB,UAAU,QAAQxxB,IAAI5D,EAAE,UAAU4D,EAAEE,KAAK+nC,UAAU7rC,EAAE8rC,oBAAoB9rC,EAAE+rC,qBAAqB,MAAM3kC,EAAEmF,EAAE6oB,UAAU,QAAQ,GAAGhuB,GAAGA,EAAEtD,KAAKkoC,UAAUhsC,EAAEA,EAAEw7B,QAAQjvB,EAAE6iB,QAAQuc,aAAa,IAAI,MAAMjkC,KAAK6E,EAAE6iB,QAAQuc,aAAa3rC,EAAEA,EAAEu7B,QAAQ7zB,EAAE1B,QAAQ0B,EAAEukC,aAAa,MAAMxkC,EAAE8E,EAAE6oB,UAAU,OAAO,GAAG3tB,GAAGA,EAAE3D,KAAKsO,QAAQ85B,aAAalsC,EAAEyD,OAAO,GAAG,IAAIzD,EAAE,IAAIA,KAAKuM,EAAE6oB,UAAU,WAAW,CAAC,MAAM7oB,EAAEkS,EAAEoa,QAAQ74B,GAAGuM,IAAIvM,EAAEuM,EAAE,CAAC,GAAGA,EAAE0iB,OAAOyc,SAAS,CAAC,MAAM7d,EAAEthB,EAAE6oB,UAAU,OAAO,GAAGvH,EAAE,CAAC,IAAIjqB,EAAEiqB,EAAE/pB,KAAKu2B,MAAM,GAAGpM,EAAEsG,aAAa3wB,KAAKA,EAAEA,EAAEc,QAAQ1E,EAAE0H,EAAEyC,IAAI8jB,EAAEoM,MAAMz2B,IAAI,MAAM,CAACjE,MAAMK,EAAE21B,OAAOppB,EAAEyoB,cAAc,UAAUpxB,EAAE,CAAC0f,IAAIuK,EAAE/pB,KAAKu2B,MAAM32B,IAAI,QAAQyoC,OAAO,8BAA8BzkC,EAAEyC,IAAInK,EAAEA,EAAEgH,MAAM,EAAEpD,EAAE,CAAC,CAAC,MAAM,CAACjE,MAAMK,EAAE,GAAG,QAAAg0B,CAASh0B,GAAG+0B,OAAOxoB,EAAErE,MAAMR,IAAI,GAAG,iBAAiB1H,EAAE,MAAM,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,gBAAgB,GAAG,KAAK1H,EAAE,CAAC,MAAMmK,EAAEoC,EAAE6oB,UAAU,OAAO,GAAGjrB,GAAG,IAAIA,EAAErG,KAAKu2B,MAAM,OAAO,MAAM,CAAC16B,MAAMK,EAAE21B,OAAOjuB,EAAE,gBAAgB,CAAC,EAAEsrB,MAAM,CAACoZ,SAAS,CAAC,MAAAtb,GAAS,OAAOxtB,KAAK8wB,UAAU,WAAW,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAI,iBAAiB2kB,KAAKlxB,GAAGA,EAAEuM,EAAErE,MAAM,oBAAoBmkC,OAAO,CAAC,MAAAvb,CAAO9wB,EAAE,CAAC,GAAG,OAAOiuB,EAAEyC,cAAc1wB,EAAE,CAAC,kBAAkB,YAAYA,EAAE,CAACssC,SAAQ,EAAGC,iBAAgB,KAAMvsC,GAAGmK,EAAE,kBAAkBnK,EAAEusC,gBAAgB,mCAAmCpiC,EAAE,kBAAkBnK,EAAEssC,QAAQ,2BAA2BhpC,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACsO,QAAQpS,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAG6F,QAAQ1K,KAAK+W,EAAE2rB,YAAY1iC,EAAE6kC,iBAAiB7kC,EAAE4kC,SAASpb,KAAKlxB,GAAGA,EAAEuM,EAAErE,MAAM,kBAAkBskC,KAAK,CAAC,MAAA1b,CAAO9wB,GAAG,OAAOmK,EAAE,CAAC,QAAQ,SAAS0P,SAAS7Z,GAAG,gBAAgBA,GAAGsD,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAO5H,KAAK,CAAC+nC,UAAU7rC,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGs/B,UAAUnkC,KAAK,UAAUA,GAAG1H,IAAIA,EAAE+rC,qBAAqB,UAAUrkC,GAAG1H,IAAIA,EAAE8rC,oBAAoB9rC,EAAEuM,EAAErE,MAAM,UAAUR,SAASsqB,SAAQ,GAAIya,WAAW,CAAC,MAAA3b,GAAS,OAAOxtB,KAAK8wB,UAAU,aAAa,EAAE,QAAAJ,CAASh0B,EAAEuM,GAAG,IAAI7E,EAAE1H,EAAEyD,OAAO0G,EAAE,EAAE0jB,EAAE,EAAE,KAAKnmB,KAAK,CAAC,MAAM6E,EAAEvM,EAAE0sC,OAAOhlC,GAAGmmB,EAAE1jB,GAAGoC,EAAE,GAAGA,EAAE,GAAGshB,GAAG,CAAC,CAAC,OAAO1jB,EAAE,GAAGA,EAAE,IAAI,EAAEnK,EAAEuM,EAAErE,MAAM,oBAAoB,GAAGykC,QAAQ,CAAC,MAAA7b,CAAO9wB,EAAE,CAAC,GAAG,OAAOiuB,EAAEyC,cAAc1wB,EAAE,CAAC,oBAAoBA,EAAE,CAACusC,iBAAgB,KAAMvsC,GAAGmK,EAAE,kBAAkBnK,EAAEusC,gBAAgB,mCAAmCjpC,KAAK8wB,UAAU,CAAC1oB,KAAK,UAAU5H,KAAK,CAACsO,QAAQpS,IAAI,EAAE,QAAAg0B,CAASh0B,EAAEuM,GAAG6F,QAAQ1K,IAAI,MAAMyC,EAAEnK,EAAEiN,MAAMwR,EAAE4rB,cAAc,GAAGlgC,EAAE,CAAC,IAAIA,EAAE,GAAG,OAAOnK,EAAE,GAAG,WAAWmK,EAAE,GAAG,OAAOnK,EAAE,GAAGye,EAAE2rB,YAAY1iC,EAAE6kC,iBAAiBhK,MAAMrR,KAAK/mB,EAAE,IAAI,OAAOnK,CAAC,CAAC,OAAOuM,EAAErE,MAAM,iBAAiB,GAAG0kC,OAAO,CAAC,MAAA9b,CAAO9wB,GAAGA,GAAGiuB,EAAEyC,cAAc1wB,EAAE,CAAC,sBAAsB,eAAe,oBAAoB,oBAAoB,SAAS,MAAMuM,EAAEkS,EAAEouB,eAAe7sC,GAAG,OAAOsD,KAAK8wB,UAAU,CAAC1oB,KAAK,SAAS5H,KAAK,CAACsO,QAAQpS,GAAG8sC,QAAQvgC,GAAG,EAAEynB,SAAS,CAACh0B,EAAEuM,EAAE7E,GAAGolC,QAAQ3iC,KAAK0jB,EAAEkf,QAAQ/sC,EAAEmK,GAAGnK,EAAEuM,EAAErE,MAAM,kBAAkB8kC,MAAM,CAAC,MAAAlc,CAAO9wB,EAAE,CAAC,GAAGiuB,EAAEyC,cAAc1wB,EAAE,CAAC,sBAAsB,eAAe,eAAe,oBAAoB,oBAAoB,WAAW,YAAY,SAASmK,OAAE,IAASnK,EAAEomC,UAAU,kBAAkBpmC,EAAEomC,SAAS,sCAAsC,MAAM75B,EAAEkS,EAAEouB,eAAe7sC,GAAG0H,EAAE,IAAIozB,OAAO,QAAQ96B,EAAEu+B,UAAU92B,EAAEzH,EAAEu+B,WAAW,YAAY,OAAOj7B,KAAK8wB,UAAU,CAAC1oB,KAAK,QAAQ5H,KAAK,CAACsO,QAAQpS,GAAG+6B,MAAMrzB,EAAEolC,QAAQvgC,GAAG,EAAE,QAAAynB,CAASh0B,EAAEuM,GAAG6F,QAAQ1K,IAAIqzB,MAAM5wB,EAAE2iC,QAAQjf,IAAI,MAAMzmB,EAAEM,EAAE0+B,SAASpmC,EAAEU,MAAMyJ,GAAG,CAACnK,GAAGyH,EAAE,GAAG,IAAI,MAAMzH,KAAKoH,EAAExD,EAAEmpC,QAAQ/sC,EAAE6tB,IAAIpmB,EAAEtC,KAAKnF,GAAG,OAAOyH,EAAEhE,OAAO8I,EAAErE,MAAM,eAAe,CAACvI,MAAMK,EAAEitC,SAASxlC,IAAIzH,CAAC,GAAGktC,KAAK,CAAC7Q,MAAM,OAAO,MAAAvL,CAAO9wB,EAAE,CAAC,GAAGiuB,EAAEyC,cAAc1wB,EAAE,CAAC,UAAU,cAAc,IAAIuM,EAAE,GAAG,GAAGvM,EAAEojB,QAAQ,CAAC,MAAM1b,EAAE,GAAGmD,OAAO7K,EAAEojB,SAASjZ,EAAEzC,EAAEjE,QAAQ,EAAE,wDAAwD,MAAMoqB,EAAE,IAAImK,IAAI,IAAI,IAAIh4B,EAAE,EAAEA,EAAE0H,EAAEjE,SAASzD,EAAE,CAAC,MAAM4D,EAAE8D,EAAE1H,GAAGmK,EAAE,iBAAiBvG,EAAE,uBAAuB5D,EAAE,qBAAqB,MAAMoH,EAAEqX,EAAEqsB,aAAalnC,EAAE+hC,eAAex7B,EAAE/C,EAAE,uBAAuBpH,EAAE,mBAAmBf,OAAOwK,KAAKgV,EAAEqsB,cAAcnqC,KAAK,OAAOwJ,GAAG0jB,EAAE9U,IAAI3R,GAAG,uBAAuBpH,EAAE,4BAA4BuM,GAAGnF,EAAEymB,EAAEtV,IAAInR,EAAE,CAAC,CAAC+C,EAAEsU,EAAE8sB,eAAexyB,IAAI/Y,EAAEu+B,WAAW,qDAAqD,MAAM72B,OAAE,IAAS1H,EAAEu+B,UAAU,SAAQ,IAAKv+B,EAAEu+B,UAAU,QAAO,IAAKv+B,EAAEu+B,UAAU,MAAM,KAAKv+B,EAAEu+B,YAAY1Q,EAAE,IAAIiN,OAAO,4BAA4BpzB,qBAAqB6E,GAAG,4BAA4BA,EAAE,OAAO,oDAAoD,KAAK,OAAOjJ,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAO5H,KAAK,CAACsO,QAAQpS,GAAG+6B,MAAMlN,GAAG,EAAE,QAAAmG,CAASh0B,EAAEuM,EAAE7E,GAAGqzB,MAAM5wB,IAAI,MAAM0jB,EAAE1jB,EAAErF,KAAK9E,GAAG,OAAO6tB,EAAEpP,EAAEosB,aAAahd,EAAE,MAAMA,EAAEA,EAAEpqB,OAAO,GAAG8I,EAAErE,MAAM,eAAelI,EAAEuM,EAAErE,MAAM,cAAc,GAAGilC,IAAI,CAAC,MAAArc,CAAO9wB,EAAE,CAAC,GAAG,OAAOiuB,EAAEyC,cAAc1wB,EAAE,CAAC,cAAc,WAAWA,EAAE,CAACksC,aAAY,EAAG1N,QAAO,KAAMx+B,GAAGmK,EAAE,kBAAkBnK,EAAEksC,YAAY,+BAA+B/hC,EAAE,kBAAkBnK,EAAEw+B,QAAQ,aAAax+B,EAAEw+B,OAAO,wCAAwCl7B,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAM5H,KAAK,CAACsO,QAAQpS,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAG6F,QAAQ1K,MAAM,aAAaA,EAAE82B,OAAO/f,EAAE6rB,SAASE,oBAAmB,IAAK9iC,EAAE82B,OAAO/f,EAAE6rB,SAASC,WAAW9rB,EAAE6rB,SAASG,eAAevZ,KAAKlxB,GAAG0H,EAAEwkC,aAAalsC,EAAEyD,OAAO,GAAG,EAAE8I,EAAErE,MAAM,mBAAmBlI,EAAEuM,EAAErE,MAAM,eAAeklC,SAAS,CAAC,MAAAtc,GAAS,OAAOxtB,KAAK8wB,UAAU,WAAW,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAIshB,EAAEkf,QAAQ/sC,EAAE,CAACqtC,kBAAkB,KAAK5uB,EAAEisB,QAAQxZ,KAAKlxB,GAAGA,EAAEuM,EAAErE,MAAM,oBAAoBujC,YAAY,CAAC,MAAA3a,GAAS,OAAOxtB,KAAK6sB,UAAU,eAAc,EAAG,GAAGmd,GAAG,CAAC,MAAAxc,CAAO9wB,EAAE,CAAC,GAAGiuB,EAAEyC,cAAc1wB,EAAE,CAAC,OAAO,YAAY,MAAM2qC,KAAKp+B,EAAEghC,SAAS7lC,EAAEqzB,MAAM5wB,GAAG/C,EAAE2zB,MAAM/6B,GAAG6tB,EAAE7tB,EAAEojB,QAAQ1b,OAAE,EAAO,OAAOpE,KAAK8wB,UAAU,CAAC1oB,KAAK,KAAK5H,KAAK,CAACsO,QAAQ,CAACu4B,KAAKp+B,EAAE6W,QAAQyK,IAAIkN,MAAM5wB,GAAG,EAAE6pB,SAAS,CAACh0B,EAAEuM,GAAG6F,QAAQ1K,IAAIqzB,MAAM5wB,KAAKA,EAAE+mB,KAAKlxB,GAAGA,EAAE0H,EAAE0b,QAAQ7W,EAAErE,MAAM,mBAAmB,CAACvI,MAAMK,EAAE2qC,KAAKjjC,EAAEijC,KAAKvnB,QAAQ1b,EAAE0b,UAAU7W,EAAErE,MAAM,YAAY,CAACvI,MAAMK,EAAE2qC,KAAKjjC,EAAEijC,QAAQ9R,QAAQ,CAAC,MAAA/H,GAAS,OAAOxtB,KAAK8wB,UAAU,UAAU,EAAEJ,SAAS,CAACh0B,GAAGkI,MAAMqE,KAAKkS,EAAEoa,QAAQ74B,GAAGA,EAAEuM,EAAE,mBAAmBihC,YAAY,CAAC,MAAA1c,GAAS,OAAOxtB,KAAK8wB,UAAU,cAAc,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAIkS,EAAEmsB,iBAAiB1Z,KAAKlxB,GAAGA,EAAEuM,EAAErE,MAAM,uBAAuBzE,OAAO,CAAC,MAAAqtB,CAAO9wB,EAAEuM,GAAG,OAAOkS,EAAEhb,OAAOH,KAAK,SAAStD,EAAE,IAAIuM,EAAE,EAAE,QAAAynB,CAASh0B,EAAEuM,GAAG8tB,MAAM3yB,EAAE+lC,SAAStjC,IAAIuB,KAAKmiB,EAAE6W,SAAS9gC,EAAEE,KAAKsD,IAAI,MAAMK,GAAG0C,GAAGnK,EAAEyD,OAAO,OAAOwqB,EAAE8L,QAAQtyB,EAAEC,EAAE9D,GAAG5D,EAAEuM,EAAErE,MAAM,UAAU2lB,EAAE,CAACwM,MAAMjzB,EAAEizB,MAAM16B,MAAMK,EAAEytC,SAAStjC,GAAG,EAAErG,KAAK,CAAC,CAAC4H,KAAK,QAAQ4X,KAAI,EAAGoR,OAAOzG,EAAEoM,MAAMpZ,QAAQ,8BAA8B,aAAaysB,UAAU,CAAC,MAAA5c,GAAS,OAAOxtB,KAAKkpC,KAAK,QAAQ,GAAG9gB,IAAI,CAAC,MAAAoF,CAAO9wB,EAAEuM,GAAG,OAAOkS,EAAEhb,OAAOH,KAAK,MAAMtD,EAAE,KAAKuM,EAAE,EAAEzI,KAAK,CAAC,QAAQ,aAAas7B,IAAI,CAAC,MAAAtO,CAAO9wB,EAAEuM,GAAG,OAAOkS,EAAEhb,OAAOH,KAAK,MAAMtD,EAAE,KAAKuM,EAAE,EAAEzI,KAAK,CAAC,QAAQ,aAAa2wB,UAAU,CAAC,MAAA3D,CAAO9wB,EAAE,OAAO,OAAOmK,EAAEsU,EAAE+sB,mBAAmB3xB,SAAS7Z,GAAG,qCAAqCye,EAAE+sB,mBAAmB7qC,KAAK,OAAO2C,KAAK8wB,UAAU,CAAC1oB,KAAK,YAAY5H,KAAK,CAAC8nC,KAAK5rC,IAAI,EAAEg0B,SAAS,CAACh0B,GAAGkI,MAAMqE,IAAIq/B,KAAKlkC,KAAK1H,IAAIA,EAAEy0B,UAAU/sB,GAAG1H,EAAEuM,EAAE,mBAAmB,CAAC5M,MAAMK,EAAE4rC,KAAKlkC,IAAIsqB,SAAQ,GAAIhsB,QAAQ,CAACq2B,MAAM,QAAQ,MAAAvL,CAAO9wB,EAAEuM,EAAE,CAAC,GAAGpC,EAAEnK,aAAa86B,OAAO,0BAA0B3wB,GAAGnK,EAAE6W,MAAMgD,SAAS,OAAO7Z,EAAE6W,MAAMgD,SAAS,KAAK,8CAA8C,iBAAiBtN,IAAIA,EAAE,CAACb,KAAKa,IAAI0hB,EAAEyC,cAAcnkB,EAAE,CAAC,SAAS,SAAS,MAAM7E,EAAE,CAAC,iBAAiB6E,EAAEohC,OAAO,UAAU,GAAGphC,EAAEb,KAAK,QAAQ,SAAS/K,KAAK,IAAI,OAAO2C,KAAK8wB,UAAU,CAAC1oB,KAAK,UAAU5H,KAAK,CAACi3B,MAAM/6B,EAAEoS,QAAQ7F,GAAGqhC,UAAUlmC,GAAG,EAAEssB,SAAS,CAACh0B,EAAEuM,GAAGwuB,MAAMrzB,EAAE0K,QAAQjI,IAAIyjC,UAAU/f,KAAKnmB,EAAEwpB,KAAKlxB,GAAGmK,EAAEwjC,OAAO3tC,EAAEuM,EAAErE,MAAM2lB,EAAE,CAACniB,KAAKvB,EAAEuB,KAAKqvB,MAAMrzB,EAAE/H,MAAMK,IAAI8D,KAAK,CAAC,QAAQ,WAAWmvB,OAAM,GAAIsI,QAAQ,CAAC,MAAAzK,CAAO9wB,EAAEuM,GAAG,iBAAiBvM,IAAIA,EAAE,IAAI86B,OAAOrzB,EAAEzH,GAAG,MAAMmK,EAAEnK,aAAa86B,OAAO,4BAA4B3wB,EAAE,iBAAiBoC,EAAE,gCAAgC,MAAM7E,EAAEpE,KAAKysB,QAAQ,OAAOroB,EAAE0nB,QAAQuc,eAAejkC,EAAE0nB,QAAQuc,aAAa,IAAIjkC,EAAE0nB,QAAQuc,aAAaxmC,KAAK,CAACa,QAAQhG,EAAEisC,YAAY1/B,IAAI7E,CAAC,GAAG0P,MAAM,CAAC,MAAA0Z,GAAS,OAAOxtB,KAAK8wB,UAAU,QAAQ,EAAEJ,SAAS,CAACh0B,EAAEuM,IAAI,QAAQ2kB,KAAKlxB,GAAGA,EAAEuM,EAAErE,MAAM,iBAAiBszB,KAAK,CAAC,MAAA1K,CAAO9wB,GAAE,GAAI,OAAOmK,EAAE,kBAAkBnK,EAAE,6BAA6BsD,KAAK8wB,UAAU,CAAC1oB,KAAK,OAAO5H,KAAK,CAACkoC,QAAQhsC,IAAI,EAAEg0B,SAAS,CAACh0B,EAAEuM,GAAGy/B,QAAQtkC,KAAKA,GAAG1H,IAAIA,EAAEw7B,OAAOjvB,EAAErE,MAAM,eAAelI,EAAEgyB,SAAQ,GAAI0Z,SAAS,CAAC,MAAA5a,CAAO9wB,GAAE,GAAI,OAAOmK,EAAE,kBAAkBnK,EAAE,6BAA6BsD,KAAK6sB,UAAU,WAAWnwB,EAAE,GAAG6tC,UAAU,CAAC,MAAA/c,GAAS,OAAOxtB,KAAKkpC,KAAK,QAAQ,GAAGsB,IAAI,CAAC,MAAAhd,CAAO9wB,EAAE,CAAC,GAAGiuB,EAAEyC,cAAc1wB,EAAE,CAAC,gBAAgB,2BAA2B,SAAS,eAAe,SAAS,cAAcA,EAAE4sC,QAAQ3e,EAAEyC,cAAc1wB,EAAE4sC,OAAO,CAAC,sBAAsB,eAAe,oBAAoB,oBAAoB,SAAS,MAAM7R,MAAMxuB,EAAEwhC,OAAOrmC,GAAGqmB,EAAEgN,MAAM/6B,GAAGmK,EAAEnK,EAAE4sC,OAAOnuB,EAAEouB,eAAe7sC,EAAE4sC,QAAQ,KAAK,OAAOtpC,KAAK8wB,UAAU,CAAC1oB,KAAK,MAAM5H,KAAK,CAACsO,QAAQpS,GAAG+6B,MAAMxuB,EAAEqgC,OAAOziC,EAAE4jC,OAAOrmC,GAAG,EAAE,QAAAssB,CAASh0B,EAAEuM,GAAG6F,QAAQ1K,IAAIqzB,MAAM5wB,EAAEyiC,OAAOhpC,EAAEmqC,OAAO3mC,IAAI,GAAG,CAAC,SAAS,WAAWyS,SAAS7Z,GAAG,OAAOuM,EAAErE,MAAM,cAAc,IAAIT,EAAE0C,EAAErF,KAAK9E,GAAG,IAAIyH,GAAG8E,EAAEglB,MAAMS,SAAStqB,EAAEsmC,UAAU,CAAC,MAAMzhC,EAAE0hC,UAAUjuC,GAAGyH,EAAE0C,EAAErF,KAAKyH,GAAG9E,IAAIzH,EAAEuM,EAAE,CAAC,GAAG9E,EAAE,CAAC,MAAM0C,EAAE1C,EAAE,IAAIA,EAAE,GAAG,OAAO7D,GAAG8D,EAAEwmC,gBAAgB/jC,GAAG0jB,EAAEkf,QAAQ5iC,EAAEvG,GAAG5D,EAAEuM,EAAErE,MAAM,gBAAgB,CAACvI,MAAMwK,GAAG,CAAC,OAAOzC,EAAEymC,aAAa5hC,EAAErE,MAAM,0BAA0BR,EAAEqmC,OAAOxhC,EAAErE,MAAM,yBAAyB,CAAC6lC,OAAO3mC,EAAEzH,MAAMK,IAAIuM,EAAErE,MAAM,aAAa,IAAIq0B,SAAS,CAAC,KAAAC,CAAMx8B,EAAEuM,GAAG,GAAGA,EAAEo/B,aAAa,IAAI,MAAM3lC,QAAQ0B,EAAEukC,YAAY9hC,KAAKoC,EAAEo/B,aAAa3rC,EAAEA,EAAEu7B,QAAQ7zB,EAAEyC,GAAG,OAAOnK,CAAC,GAAGi1B,SAAS,CAAC,kBAAkB,wDAAwD,cAAc,8BAA8B,gBAAgB,2CAA2C,oBAAoB,mCAAmC,iBAAiB,4CAA4C,gBAAgB,8CAA8C,eAAe,mCAAmC,eAAe,wCAAwC,cAAc,kCAAkC,aAAa,sDAAsD,kBAAkB,6DAA6D,kBAAkB,sCAAsC,YAAY,8DAA8D,mBAAmB,4GAA4G,iBAAiB,mCAAmC,qBAAqB,+CAA+C,gBAAgB,uDAAuD,mBAAmB,oDAAoD,aAAa,6EAA6E,aAAa,gEAAgE,mBAAmB,8DAA8D,eAAe,uEAAuE,sBAAsB,+EAA+E,sBAAsB,oEAAoE,6BAA6B,wEAAwE,6BAA6B,sEAAsE,cAAc,0DAA0D,aAAa,iCAAiC,yBAAyB,gFAAgF,yBAAyB,0CAA0C,mBAAmB,uDAAuDxW,EAAEouB,eAAe,SAAS7sC,GAAG,IAAIA,EAAE,OAAOye,EAAE0rB,MAAMnqC,EAAE,GAAGmK,OAAE,IAASnK,EAAEqtC,mBAAmBr2B,OAAOsjB,cAAct6B,EAAEqtC,oBAAoBrtC,EAAEqtC,kBAAkB,EAAE,gDAAgDljC,OAAE,IAASnK,EAAEouC,mBAAmBp3B,OAAOsjB,cAAct6B,EAAEouC,oBAAoBpuC,EAAEouC,kBAAkB,EAAE,iDAAgD,IAAKpuC,EAAEmqC,KAAK,OAAOnqC,EAAE,IAAG,IAAKA,EAAEmqC,WAAM,IAASnqC,EAAEmqC,KAAK,OAAOhgC,EAAEsU,EAAE0rB,KAAK,8BAA8BlrC,OAAOqZ,OAAO,CAAC,EAAEtY,EAAEye,EAAE0rB,MAAMhgC,EAAE,iBAAiBnK,EAAEmqC,KAAK,0CAA0C,MAAM59B,EAAEvM,EAAEmqC,KAAKzS,KAAK,GAAGnrB,EAAE,OAAOqF,MAAMie,QAAQtjB,KAAKvM,EAAEf,OAAOqZ,OAAO,CAAC,EAAEtY,EAAE,CAACmqC,KAAK,CAACzS,KAAK,IAAIM,IAAIzrB,OAAOpC,EAAEnK,EAAEmqC,KAAKzS,gBAAgBM,IAAI,+CAA+C7tB,GAAGnK,EAAEmqC,KAAK1a,MAAM,sDAAsDhR,EAAE4vB,aAAaruC,EAAEmqC,KAAKzS,KAAK,aAAa13B,EAAE,MAAM0H,EAAE1H,EAAEmqC,KAAK1a,MAAM,OAAO/nB,GAAE,IAAKA,GAAGyC,EAAEsU,EAAE0rB,KAAK,8BAA8BlrC,OAAOqZ,OAAO,CAAC,EAAEtY,EAAEye,EAAE0rB,QAAQv4B,MAAMie,QAAQnoB,KAAK1H,EAAEf,OAAOqZ,OAAO,CAAC,EAAEtY,EAAE,CAACmqC,KAAK,CAAC1a,MAAM,IAAIuI,IAAItwB,OAAOyC,EAAEnK,EAAEmqC,KAAK1a,iBAAiBuI,IAAI,gDAAgDvZ,EAAE4vB,aAAaruC,EAAEmqC,KAAK1a,MAAM,cAAczvB,GAAGA,CAAC,EAAEye,EAAE4vB,aAAa,SAASruC,EAAEuM,GAAG,IAAI,MAAM7E,KAAK1H,EAAEmK,EAAE0jB,EAAEkf,QAAQrlC,EAAE,CAAC2lC,kBAAkB,EAAEe,kBAAkB,IAAI,GAAG7hC,8CAA8C,EAAEkS,EAAEoa,QAAQ,SAAS74B,GAAG,IAAIiuB,EAAE+L,UAAUh6B,GAAG,OAAO,KAAK,iBAAiBkxB,KAAKlxB,KAAKA,GAAG,MAAM,MAAMuM,EAAE,IAAI+a,KAAKtnB,GAAG,OAAOk6B,MAAM3tB,EAAEs2B,WAAW,KAAKt2B,EAAEu0B,aAAa,EAAEriB,EAAEhb,OAAO,SAASzD,EAAEuM,EAAE7E,EAAEmmB,EAAEjqB,GAAG,OAAOuG,GAAGvG,IAAG,EAAG,oBAAoBA,GAAG5D,EAAEo0B,UAAU,CAAC1oB,KAAKa,EAAEukB,OAAO,SAAShtB,KAAK,CAACu2B,MAAM3yB,EAAE+lC,SAAS7pC,GAAG8gC,SAAS7W,GAAG,GAAG,KAAK,CAAC7tB,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE,CAAC,EAAEA,EAAEnC,IAAI,cAAcA,IAAI,KAAAuF,GAAQ,OAAO,IAAIpD,EAAEnC,IAAI6B,KAAK,GAAGtD,EAAEN,QAAQmuB,EAAEuF,OAAO,CAACvwB,KAAK,SAAS8zB,MAAM,CAACtyB,IAAI,CAACuyB,KAAK,IAAIhzB,EAAEnC,MAAM06B,OAAO,CAAC,MAAArL,CAAO9wB,GAAG+0B,OAAOxoB,EAAErE,MAAMR,IAAI,MAAMyC,EAAEoC,EAAE6iB,QAAQ/qB,IAAIsQ,IAAI3U,GAAG,OAAOmK,IAAInK,EAAEmK,GAAGoC,EAAE0iB,OAAOoC,MAAM,iBAAiBrxB,EAAE,CAACL,MAAMK,EAAE21B,OAAOjuB,EAAE,aAAa,CAACrD,IAAIkI,EAAE6iB,QAAQ/qB,OAAO,CAAC1E,MAAMK,EAAE,GAAG,QAAAg0B,CAASh0B,GAAGkI,MAAMqE,IAAI,GAAG,iBAAiBvM,EAAE,MAAM,CAACL,MAAMK,EAAE21B,OAAOppB,EAAE,eAAe,EAAEymB,MAAM,CAAC3uB,IAAI,CAAC,MAAAysB,CAAO9wB,GAAGA,IAAIA,EAAEjB,OAAOyM,WAAW,iBAAiBxL,IAAIA,EAAEf,OAAOg/B,QAAQj+B,IAAImK,EAAEnK,GAAGA,EAAEjB,OAAOyM,UAAU,0CAA0C,MAAMe,EAAEjJ,KAAKysB,QAAQroB,EAAE,GAAG,IAAI,MAAMmmB,KAAK7tB,EAAE,CAACmK,EAAE0jB,GAAGA,EAAE9uB,OAAOyM,UAAU,6BAA6B,MAAMxL,EAAE4D,GAAGiqB,EAAE1jB,EAAE,iBAAiBnK,GAAG,mBAAmBA,GAAG,iBAAiBA,EAAE,uDAAuDmK,EAAE,iBAAiBvG,EAAE,0BAA0B2I,EAAE6iB,QAAQ/qB,IAAIpC,IAAIjC,EAAE4D,GAAG8D,EAAEvC,KAAKvB,EAAE,CAAC,OAAO2I,EAAE4lB,SAASzqB,EAAE,IAAI60B,SAAS,CAACC,MAAM,CAACx8B,EAAEuM,KAAKA,EAAElI,MAAMrE,EAAEA,EAAEqE,IAAIkI,EAAElI,MAAMrE,IAAIi1B,SAAS,CAAC,cAAc,8BAA8B,aAAa,uCAAsC,EAAG,KAAK,CAACj1B,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,KAAKN,EAAEM,EAAE,MAAMD,EAAEC,EAAE,MAAMomB,EAAEpmB,EAAE,MAAMqmB,EAAErmB,EAAE,KAAKsmB,EAAE,CAAC/tB,OAAOlB,OAAO,WAAWwN,EAAE0nB,MAAM,SAASj0B,EAAEuM,EAAE7E,GAAG,IAAImmB,EAAEpmB,EAAEqxB,SAASpxB,IAAIyC,OAAE,IAASzC,EAAE+pB,SAAS,iEAAiEtnB,OAAE,IAASzC,EAAEsxB,UAAU,kEAAkEnL,EAAEpmB,EAAEmqB,YAAYnqB,EAAEqxB,SAASpxB,IAAI,MAAM9D,EAAEoqB,EAAEiG,MAAMj0B,EAAEuM,EAAEshB,GAAG1jB,GAAGvG,EAAEwzB,SAAS5F,UAAU/tB,OAAO,uDAAuD,MAAM2D,EAAE,CAACzH,MAAMiE,EAAEjE,OAAO,OAAOiE,EAAEsE,QAAQd,EAAEc,MAAMtE,EAAEsE,OAAOtE,EAAEwzB,SAAS3F,SAAShuB,SAAS2D,EAAEs8B,QAAQ5V,EAAEgM,QAAQl2B,EAAEwzB,SAAS3F,WAAW7tB,EAAEwzB,SAAS1F,QAAQtqB,EAAEsqB,MAAM9tB,EAAEwzB,SAAS1F,OAAO9tB,EAAEwzB,SAAS4B,YAAY5xB,EAAE4xB,UAAUp1B,EAAEwzB,SAAS4B,WAAW5xB,CAAC,EAAEmF,EAAE4nB,WAAWma,eAAetuC,EAAEuM,EAAE7E,GAAG,IAAIyC,EAAE1C,EAAEqxB,SAASpxB,IAAIyC,EAAE1C,EAAEmqB,YAAYnqB,EAAEqxB,SAASpxB,IAAI,MAAMmmB,EAAEG,EAAEiG,MAAMj0B,EAAEuM,EAAEpC,GAAGvG,EAAEiqB,EAAEuJ,SAAS,GAAGvJ,EAAE3lB,MAAM,MAAMtE,EAAE8tB,QAAQ7D,EAAE3lB,MAAMwpB,MAAM9tB,EAAE8tB,OAAO7D,EAAE3lB,MAAM,GAAGtE,EAAE4tB,UAAU/tB,OAAO,CAAC,IAAI8I,EAAEshB,EAAEluB,MAAM,MAAMouB,EAAE,GAAG,IAAI,MAAMF,KAAKjqB,EAAE4tB,UAAU,CAAC,MAAMvD,EAAEJ,EAAE1a,MAAMgD,KAAKsI,EAAE,SAASoP,EAAEkH,OAAOlyB,KAAKe,EAAE6kC,MAAM9zB,IAAIkZ,EAAEkH,QAAQ,KAAK,IAAIpW,EAAEE,EAAElZ,EAAE4G,EAAE,MAAM2hB,EAAED,EAAExqB,OAAO,CAAC8I,GAAG,GAAG0S,EAAEgP,EAAExqB,OAAO2D,EAAEpH,EAAEiuB,GAAGjuB,EAAE,GAAGiuB,EAAExqB,OAAO,CAACkb,EAAEsP,EAAEA,EAAExqB,OAAO,GAAG,IAAIzD,EAAEuM,EAAE,IAAI,MAAMA,KAAK0hB,EAAEjnB,MAAM,GAAG,GAAGhH,EAAEA,EAAEuM,GAAG2hB,EAAE4G,QAAQ90B,GAAG6e,EAAEqP,EAAE,GAAGvoB,EAAEkZ,EAAEF,EAAE,CAAC,IAAI,MAAM3e,EAAE,CAACA,EAAEuM,KAAKkS,GAAGoP,EAAEkH,QAAQC,cAAch1B,EAAE2F,EAAE4G,EAAEshB,EAAE1a,MAAMhJ,GAAG/C,QAAQymB,EAAEiD,OAAOnrB,EAAE,CAACovB,OAAOlH,EAAEkH,OAAOwZ,OAAO9vB,EAAEtL,MAAM0a,EAAE1a,MAAMoe,MAAM7pB,EAAE8mC,SAASvvB,EAAE/W,MAAMlI,EAAEkkC,YAAYlW,EAAEkW,YAAY7D,KAAK,CAACrgC,EAAEuM,IAAI3I,EAAE6tB,SAAStsB,MAAMsZ,GAAGoP,EAAEkH,QAAQC,cAAch1B,EAAE2F,EAAE4G,EAAEshB,EAAE1a,MAAMhJ,IAAI8W,QAAQ,CAACjhB,EAAEuM,KAAKkS,GAAGoP,EAAEkH,QAAQC,cAAc,WAAWrvB,EAAE4G,EAAEshB,EAAE1a,MAAMhJ,EAAE,CAAC8qB,SAASj1B,MAAM,QAAG,IAASoH,GAAGA,IAAIzB,EAAE,SAAS,GAAGyB,aAAa0mB,EAAEoH,OAAO,CAAC,GAAGtxB,EAAEmwB,OAAO0a,IAAI5gB,EAAEkH,OAAOlH,EAAE1a,MAAM,OAAO,WAAW,SAAS4a,EAAE5oB,KAAKiC,GAAG+C,EAAEqrB,WAAW,MAAM,QAAQ,CAAC,GAAG5jB,MAAMie,QAAQzoB,IAAIA,EAAEK,EAAE2f,QAAQuO,QAAQ,CAAC,GAAG/xB,EAAEmwB,OAAO0a,IAAI5gB,EAAEkH,OAAOlH,EAAE1a,MAAM,OAAO,WAAW,SAAS4a,EAAE5oB,QAAQiC,GAAG+C,EAAEqrB,WAAW,MAAM,QAAQ,CAAC3W,GAAGjb,EAAEmwB,OAAOp0B,MAAMkuB,EAAE1a,MAAM,OAAOxN,EAAEyB,EAAE,YAAYyX,EAAEF,GAAGvX,IAAIxD,EAAEmwB,OAAOp0B,MAAMkuB,EAAE1a,MAAM,OAAO5G,EAAEnF,EAAE,YAAYmF,EAAEnF,EAAE,CAAC,MAAMpH,GAAG,MAAMmK,EAAEwrB,OAAO7kB,QAAQ9Q,EAAEihB,SAAS,KAAK4M,EAAE/c,UAAU9Q,CAAC,CAAC,CAAC,GAAG6tB,EAAEluB,MAAM4M,EAAEwhB,EAAEtqB,OAAO,MAAMoqB,EAAE3lB,MAAM4lB,EAAE4N,QAAQ3N,EAAE/tB,EAAEmK,GAAGvG,EAAE8tB,QAAQ7D,EAAE3lB,MAAMwpB,MAAM9tB,EAAE8tB,OAAO7D,EAAE3lB,KAAK,CAAC,IAAIiC,EAAEsnB,WAAWtnB,EAAEunB,QAAQvnB,EAAE6uB,UAAU,OAAOnL,EAAEluB,MAAM,MAAMouB,EAAE,CAACpuB,MAAMkuB,EAAEluB,OAAO,OAAOiE,EAAE6tB,SAAShuB,SAASsqB,EAAE2V,QAAQ5V,EAAEgM,QAAQl2B,EAAE6tB,WAAW7tB,EAAE8tB,QAAQ3D,EAAE2D,MAAM9tB,EAAE8tB,OAAO9tB,EAAEo1B,YAAYjL,EAAEiL,UAAUp1B,EAAEo1B,WAAWjL,CAAC,EAAEC,EAAE0gB,SAAS,MAAM,WAAArgB,CAAYruB,EAAEuM,EAAE7E,GAAGpE,KAAKkuB,UAAU,GAAGluB,KAAKmuB,SAAS,GAAGnuB,KAAKywB,OAAO/zB,EAAEsD,KAAKouB,MAAMnlB,EAAEjJ,KAAKmlC,MAAM/gC,EAAEpE,KAAKw7B,OAAO,KAAKx7B,KAAK01B,UAAU,KAAK11B,KAAKqrC,WAAW,EAAE,CAAC,QAAAjZ,GAAWpyB,KAAKqrC,WAAWxpC,KAAK,CAACqsB,UAAUluB,KAAKkuB,UAAUxqB,QAAQyqB,SAASnuB,KAAKmuB,SAASzqB,SAAS,CAAC,OAAA4uB,GAAU,MAAM51B,EAAEsD,KAAKqrC,WAAW14B,MAAM3S,KAAKkuB,UAAUxxB,EAAEwxB,UAAUluB,KAAKmuB,SAASzxB,EAAEyxB,QAAQ,CAAC,MAAAgP,GAASn9B,KAAKqrC,WAAW14B,KAAK,GAAG+X,EAAEiG,MAAM,SAASj0B,EAAE0H,EAAEyC,GAAG,MAAM4pB,OAAOlG,EAAE+gB,QAAQhrC,GAAGoqB,EAAE+F,OAAOrsB,EAAEyC,GAAG/C,EAAE+C,EAAEunB,MAAM,GAAG,KAAKjqB,EAAEC,EAAE+mB,KAAKuP,aAAa,IAAIv8B,IAAI,KAAKwsB,EAAE,IAAID,EAAE0gB,SAAS7gB,EAAEzmB,EAAEK,GAAGgX,EAAE/W,EAAE+mB,KAAKuP,aAAa,CAAC,CAACjJ,OAAOrtB,IAAI,KAAKiX,EAAE,IAAIoP,EAAE,GAAG,GAAG,CAACqJ,SAASnJ,EAAEiJ,QAAQzY,IAAII,EAAEtS,EAAEynB,SAASh0B,EAAE0H,EAAEiX,EAAExU,GAAGvG,GAAG8D,EAAE4mB,OAAOugB,UAAU,MAAMlpC,EAAEmoB,EAAE4N,QAAQ7c,EAAE8W,OAAO31B,EAAEmK,GAAG,MAAM,CAACxK,MAAMkf,EAAElf,MAAMuI,MAAMvC,EAAEyxB,SAASnJ,EAAE,EAAED,EAAE+F,OAAO,SAAS/zB,EAAEuM,GAAG,OAAOvM,EAAEsuB,OAAO4E,QAAQ,CAACa,OAAO/zB,EAAEsuB,OAAO4E,QAAQ4b,UAAU9uC,IAAIuM,EAAEmlB,OAAOvnB,EAAEnK,EAAEsuB,OAAOygB,MAAM,4BAA4B,CAAChb,OAAO/zB,EAAEsuB,OAAOygB,QAAQD,UAAU9uC,GAAG4uC,SAAQ,IAAK,CAAC7a,OAAO/F,EAAEghB,OAAO,EAAEziC,EAAEynB,SAAS,SAASh0B,EAAEuM,EAAE7E,EAAEyC,EAAE0jB,EAAE,CAAC,GAAG,GAAGthB,EAAE6iB,QAAQG,QAAQhjB,EAAEA,EAAEuqB,UAAU92B,EAAE0H,EAAEyC,GAAG4qB,QAAQxoB,EAAEoiB,eAAexkB,EAAE6jB,EAAEuD,MAAMhlB,EAAEpC,IAAIoC,EAAEuiB,QAAQ3kB,EAAE8b,MAAM,CAAC,MAAM9b,EAAEoC,EAAEuiB,OAAOna,IAAI3U,GAAG,GAAG0H,EAAE0vB,SAASrD,OAAOrC,MAAMhqB,EAAE,WAAW,WAAWyC,GAAGA,EAAE,OAAOA,CAAC,CAAC,MAAMvG,EAAE,CAACiqB,EAAEjqB,EAAEwD,IAAImF,EAAEyoB,cAAcnH,EAAE7tB,EAAE4D,EAAEwD,GAAGM,EAAEyC,GAAG/C,EAAE,CAAConC,SAASxuC,EAAEuxB,MAAMpnB,EAAE4qB,OAAOxoB,EAAE4G,MAAMzL,EAAEQ,MAAMtE,EAAEsgC,YAAYlW,EAAEkW,YAAY7D,KAAK,CAACrgC,EAAEuM,EAAEpC,IAAIzC,EAAE0vB,SAAS3F,SAAStsB,KAAKvB,EAAE5D,EAAEuM,EAAEpC,IAAI8W,QAAQ,CAAC4M,EAAEjqB,IAAI2I,EAAEyoB,cAAc,SAASh1B,EAAE4D,EAAE8D,EAAEyC,EAAE,CAAC8qB,SAASpH,KAAKnmB,EAAE0vB,SAASrD,OAAOE,MAAM1nB,EAAE7E,GAAG,MAAMomB,EAAEvhB,EAAEgiB,YAAY,GAAGT,EAAEoO,cAAS,IAASl8B,GAAGmK,EAAE6nB,QAAQ,CAAC,MAAMzlB,EAAEuhB,EAAEoO,QAAQl8B,EAAEoH,GAAG,GAAGmF,EAAE,CAAC,GAAG7E,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,UAAU1H,EAAEuM,EAAE5M,OAAO4M,EAAEopB,OAAO,OAAO3H,EAAEihB,SAAS1iC,EAAE5M,MAAM,GAAGkL,OAAO0B,EAAEopB,QAAQvuB,GAAGpH,EAAEuM,EAAE5M,KAAK,CAAC,CAAC,GAAGmuB,EAAEqO,aAAQ,IAASn8B,GAAGmK,EAAE6nB,WAAWlE,EAAEqO,OAAOC,MAAMtO,EAAEqO,OAAOC,KAAKviB,gBAAgB7Z,IAAI,CAAC,MAAMuM,EAAEuhB,EAAEqO,OAAOrL,OAAO9wB,EAAEoH,GAAG,GAAGmF,EAAE,CAAC,GAAG7E,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,UAAU1H,EAAEuM,EAAE5M,OAAO4M,EAAEopB,OAAO,OAAO3H,EAAEihB,SAAS1iC,EAAE5M,MAAM,GAAGkL,OAAO0B,EAAEopB,QAAQvuB,GAAGpH,EAAEuM,EAAE5M,KAAK,CAAC,CAAC,MAAMouB,EAAExhB,EAAE0iB,OAAOqB,MAAMvC,GAAGA,EAAEwH,QAAQvH,EAAEwN,KAAKx7B,EAAEuM,GAAG7E,EAAEqvB,KAAKhJ,GAAGtmB,EAAEqxB,YAAYpxB,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,QAAQ1H,OAAE,GAAQA,OAAE,GAAQ,MAAMiuB,EAAEJ,EAAEoD,UAAU1kB,EAAE0iB,OAAOgC,WAAW1kB,EAAE0iB,OAAOgU,aAAa,KAAK94B,EAAE8mB,UAAU,QAAG,IAASjxB,EAAE,CAAC,GAAG,cAAciuB,EAAE,OAAOD,EAAEihB,SAASjvC,EAAE,KAAKoH,GAAG,GAAG,aAAa6mB,EAAE,OAAOD,EAAEihB,SAASjvC,EAAE,CAACuM,EAAEyoB,cAAc,eAAeh1B,EAAE,KAAK0H,EAAEyC,IAAI/C,GAAG,GAAG,aAAa6mB,EAAE,CAAC,GAAG1hB,EAAE0iB,OAAOtJ,UAAUle,EAAE2f,QAAQwS,YAAY,OAAO5L,EAAEihB,SAASjvC,EAAE,KAAKoH,GAAGM,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,UAAU1H,EAAE,CAAC,GAAGA,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,cAAciuB,EAAE,OAAOD,EAAEihB,SAASjvC,EAAE,CAACuM,EAAEyoB,cAAc,cAAch1B,EAAE,KAAK0H,EAAEyC,IAAI/C,GAAG,MAAMqX,EAAE,GAAG,GAAGlS,EAAEwiB,QAAQ,CAAC,MAAMlB,EAAEthB,EAAEwiB,QAAQpa,IAAI3U,EAAE0H,EAAEyC,EAAEoC,EAAE0iB,OAAOwc,aAAa,GAAG5d,EAAE,OAAO1jB,EAAE6nB,UAAUtqB,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,SAAS1H,EAAE6tB,EAAEluB,OAAOK,EAAE6tB,EAAEluB,OAAO+H,EAAE0vB,SAASrD,OAAO3d,OAAO7J,EAAE7E,EAAE,QAAQmmB,GAAGG,EAAEihB,SAASjvC,EAAE,KAAKoH,GAAG,GAAGmF,EAAE0iB,OAAOoC,KAAK,CAAC,MAAMxD,EAAEthB,EAAEyoB,cAAc,WAAWh1B,EAAE,CAACojC,OAAO72B,EAAEwiB,QAAQlP,OAAO,CAACgf,SAAQ,KAAMn3B,EAAEyC,GAAG,GAAGA,EAAEqrB,WAAW,OAAOxH,EAAEihB,SAASjvC,EAAE,CAAC6tB,GAAGzmB,GAAGqX,EAAEtZ,KAAK0oB,EAAE,CAAC,CAAC,GAAGthB,EAAEyiB,UAAU,CAAC,MAAMnB,EAAEthB,EAAEyiB,UAAUra,IAAI3U,EAAE0H,EAAEyC,EAAEoC,EAAE0iB,OAAOwc,aAAa,GAAG5d,EAAE,CAACnmB,EAAE0vB,SAASrD,OAAO3d,OAAO7J,EAAE7E,EAAE,UAAUmmB,GAAG,MAAMjqB,EAAE2I,EAAEyoB,cAAc,cAAch1B,EAAE,CAACitC,SAAS1gC,EAAEyiB,UAAUnP,OAAO,CAACgf,SAAQ,KAAMn3B,EAAEyC,GAAG,GAAGA,EAAEqrB,WAAW,OAAOxH,EAAEihB,SAASjvC,EAAE,CAAC4D,GAAGwD,GAAGqX,EAAEtZ,KAAKvB,EAAE,CAAC,CAAC,GAAGkqB,EAAEkG,SAAS,CAAC,MAAMznB,EAAEuhB,EAAEkG,SAASh0B,EAAEoH,GAAG,GAAGmF,IAAI7E,EAAE0vB,SAASrD,OAAOp0B,MAAM+H,EAAE,OAAO1H,EAAEuM,EAAE5M,OAAOK,EAAEuM,EAAE5M,MAAM4M,EAAEopB,QAAQ,CAAC,IAAI/jB,MAAMie,QAAQtjB,EAAEopB,QAAQ,OAAOlX,EAAEtZ,KAAKoH,EAAEopB,QAAQ3H,EAAEihB,SAASjvC,EAAEye,EAAErX,GAAG,GAAGmF,EAAEopB,OAAOlyB,OAAO,OAAOgb,EAAEtZ,QAAQoH,EAAEopB,QAAQ3H,EAAEihB,SAASjvC,EAAEye,EAAErX,EAAE,CAAC,CAAC,OAAOmF,EAAE2iB,OAAOzrB,OAAOuqB,EAAEgF,MAAMhzB,EAAEye,EAAErX,GAAG4mB,EAAEihB,SAASjvC,EAAEye,EAAErX,EAAE,EAAE4mB,EAAEgF,MAAM,SAAShzB,EAAEuM,EAAE7E,GAAG,MAAMqtB,OAAO5qB,EAAEgJ,MAAM0a,EAAE0D,MAAM3tB,GAAG8D,EAAE,IAAI,MAAMN,KAAK+C,EAAE+kB,OAAO,CAAC,MAAMpB,EAAE3jB,EAAEokB,YAAYyE,MAAM5rB,EAAE0pB,QAAQ,GAAGhD,EAAEkE,SAASpuB,EAAEouB,QAAQ,CAACnE,EAAEuJ,SAASrD,OAAO0a,IAAItkC,EAAE0jB,EAAE,OAAOzmB,EAAEsE,KAAK,QAAQ,QAAQ,CAAC,IAAIqiB,EAAEE,EAAE7mB,EAAEtD,KAAK,GAAGsD,EAAEitB,SAAS5wB,OAAO,CAACwqB,EAAEhvB,OAAOqZ,OAAO,CAAC,EAAE2V,GAAG,IAAI,MAAM1hB,KAAKnF,EAAEitB,SAAS,CAAC,MAAM3sB,EAAEomB,EAAEwG,WAAW3f,IAAIpI,GAAGnF,EAAE6mB,EAAE1hB,GAAG7H,QAAQ1E,EAAE6tB,EAAEjqB,GAAGoqB,EAAEtmB,EAAE+sB,UAAU/sB,EAAE+sB,UAAUrtB,GAAGA,EAAEqX,EAAEhX,EAAEktB,YAAY3G,EAAE,KAAKtmB,GAAG,GAAG+W,EAAE,CAACsP,EAAE5jB,EAAE6qB,cAAc,UAAU5tB,EAAE,CAAC1D,IAAI6I,EAAE+W,IAAI2K,EAAE1hB,GAAG4/B,OAAO1tB,GAAGoP,EAAEjqB,GAAG,KAAK,CAACqqB,EAAE1hB,GAAGyhB,CAAC,CAAC,CAACD,EAAEA,GAAGD,EAAEkG,SAASh0B,EAAE0H,EAAEumB,EAAE7mB,GAAG,MAAMqX,EAAEuP,EAAEyF,KAAK1F,EAAE3mB,GAAG,GAAGqX,EAAEkX,OAAO,CAAC,GAAG9H,EAAEuJ,SAASrD,OAAO0a,IAAItkC,EAAE0jB,EAAE,OAAOzmB,EAAEsE,KAAK,SAAStE,EAAEi5B,KAAK,CAACxS,EAAEuJ,SAAS3F,SAAStsB,QAAQsZ,EAAEkX,QAAQ,QAAQ,CAAC,GAAG/xB,EAAE4xB,WAAW,OAAOxH,EAAEihB,SAASjvC,EAAEye,EAAEkX,OAAOjuB,GAAG6E,EAAEpH,QAAQsZ,EAAEkX,OAAO,MAAM9H,EAAEuJ,SAASrD,OAAO0a,IAAItkC,EAAE0jB,EAAE,OAAOzmB,EAAEsE,KAAK,QAAQmiB,EAAEuJ,SAASrD,OAAOp0B,MAAMkuB,EAAE,OAAO7tB,EAAEye,EAAE9e,MAAMyH,EAAEsE,MAAM1L,EAAEye,EAAE9e,KAAK,CAAC,OAAOquB,EAAEihB,SAASjvC,EAAEuM,EAAE7E,EAAE,EAAEsmB,EAAEyF,KAAK,SAASzzB,EAAEuM,GAAG,OAAOvM,aAAa8tB,EAAEoH,QAAQlH,EAAE9lB,MAAMlI,EAAEuM,GAAG,CAACopB,OAAO,CAAC31B,GAAGL,MAAM,OAAOiS,MAAMie,QAAQ7vB,IAAIA,EAAEyH,EAAE2f,QAAQuO,SAAS31B,EAAE8B,SAAS9B,GAAGguB,EAAE9lB,MAAMlI,EAAEuM,KAAK,CAACopB,OAAO31B,EAAEL,MAAM,OAAO,CAACg2B,OAAO,KAAKh2B,MAAMK,EAAE,EAAEguB,EAAE9lB,MAAM,SAASlI,EAAEuM,GAAG,OAAOA,EAAE0U,SAASjhB,EAAEq7B,aAAa9uB,EAAE0U,SAASjhB,CAAC,EAAEguB,EAAEihB,SAAS,SAASjvC,EAAEuM,EAAE7E,GAAG6E,EAAEA,GAAG,GAAG,MAAMwoB,OAAOlH,EAAE1a,MAAMvP,EAAE2tB,MAAMnqB,GAAGM,EAAE,GAAG6E,EAAE9I,OAAO,CAAC,MAAM0G,EAAE6jB,EAAErI,QAAQ,gBAAW,EAAOpZ,EAAE7E,QAAG,IAASyC,IAAIvG,EAAEwzB,SAASrD,OAAOp0B,MAAMiE,EAAE,WAAW5D,EAAEmK,GAAGnK,EAAEmK,EAAEoC,EAAE,GAAG,CAAC,GAAGA,EAAE9I,QAAQoqB,EAAEoB,OAAO/mB,MAAM,GAAG,mBAAmB2lB,EAAEoB,OAAO/mB,MAAM,CAACqE,EAAEshB,EAAEoB,OAAO/mB,MAAMqE,GAAGqF,MAAMie,QAAQtjB,KAAKA,EAAE,CAACA,IAAI,IAAI,MAAMvM,KAAKuM,EAAEpC,EAAEnK,aAAaoB,OAAOpB,aAAa8tB,EAAEoH,OAAO,sCAAsC,MAAM3oB,EAAE,CAACshB,EAAEoB,OAAO/mB,OAAO,QAAG,IAASlI,EAAE,CAAC,MAAMmK,EAAE6jB,EAAErI,QAAQ,UAAU3lB,EAAEuM,EAAE7E,GAAG9D,EAAEwzB,SAASrD,OAAOp0B,MAAMiE,EAAE,UAAU5D,EAAEmK,GAAGnK,EAAEmK,CAAC,CAAC,GAAG0jB,EAAEoB,OAAOmB,WAAM,IAASpwB,EAAE,CAAC,MAAMuM,EAAEshB,EAAEU,YAAY6B,KAAKvC,EAAEoB,OAAOmB,MAAM,GAAG7jB,EAAE6vB,KAAKp8B,GAAG,CAAC,MAAMmK,EAAEoC,EAAEqzB,GAAG5/B,EAAE0H,GAAG9D,EAAEwzB,SAASrD,OAAOp0B,MAAMiE,EAAE,OAAO5D,EAAEmK,EAAE0jB,EAAEoB,OAAOmB,MAAMpwB,EAAEmK,CAAC,CAAC,CAAC,GAAG0jB,EAAEuB,QAAQoC,WAAWpqB,EAAEoqB,YAAW,IAAKpqB,EAAEquB,WAAW,IAAI,MAAM3E,OAAO9wB,KAAK6tB,EAAEuB,QAAQoC,UAAU5tB,EAAEwzB,SAAS5F,UAAUrsB,KAAK,CAAC2rB,OAAO9wB,EAAE+0B,OAAOlH,EAAE1a,MAAMvP,EAAEkN,MAAMgd,EAAEhd,MAAM+c,EAAEoB,OAAOrrB,EAAEwD,KAAK,MAAMK,EAAE,CAAC9H,MAAMK,EAAE21B,OAAOppB,EAAE9I,OAAO8I,EAAE,MAAM,OAAOshB,EAAEoB,OAAOhvB,SAASwH,EAAE9H,MAAM,UAAUkuB,EAAEoB,OAAOhvB,YAAO,EAAOyH,EAAE8mC,SAAS5qC,EAAEwzB,SAASrD,OAAOp0B,MAAMiE,EAAEiqB,EAAEoB,OAAOhvB,OAAOD,EAAEyH,EAAE9H,OAAOiE,EAAEk7B,OAAO9+B,EAAE6tB,EAAEoB,OAAOhvB,SAAS4tB,EAAEiB,SAAQ,IAAK1nB,EAAE6e,QAAQ4H,EAAEe,MAAMnrB,QAAQoqB,EAAEiB,OAAO7sB,IAAIyF,EAAE8mC,SAAS/mC,QAAG,IAASzH,GAAGyH,EAAEkuB,aAAQ,IAAS9H,EAAEoB,OAAOiB,WAAWtsB,EAAEwzB,SAAS4B,UAAUp1B,EAAEwzB,SAAS4B,WAAW,IAAIv3B,IAAImC,EAAEwzB,SAAS4B,UAAUjgB,IAAI8U,EAAEoB,OAAOiB,WAAWtsB,EAAEwzB,SAAS4B,UAAU/2B,IAAI4rB,EAAEoB,OAAOiB,SAAS,IAAItsB,EAAEwzB,SAAS4B,UAAUrkB,IAAIkZ,EAAEoB,OAAOiB,UAAU/qB,KAAKvB,EAAEuS,OAAO1O,CAAC,EAAEumB,EAAEuD,MAAM,SAASvxB,EAAEuM,GAAG,MAAM7E,EAAE6E,IAAI9E,EAAEqxB,SAAS,OAAOpxB,GAAG1H,EAAE2uB,aAAalnB,EAAE2f,QAAQmK,OAAOvxB,EAAE2uB,aAAalnB,EAAE2f,QAAQmK,QAAQhlB,EAAE9E,EAAEmqB,YAAYrlB,EAAEvM,EAAE2uB,cAAcjnB,IAAI1H,EAAE2uB,aAAalnB,EAAE2f,QAAQmK,OAAOhlB,GAAGA,EAAE,EAAEyhB,EAAErI,QAAQ,SAAS3lB,EAAEuM,EAAE7E,EAAEyC,GAAG,MAAM4qB,OAAOnxB,EAAEuP,MAAM/L,EAAEmqB,MAAMzD,GAAG3jB,EAAE4jB,EAAEnqB,EAAEqrB,OAAOjvB,GAAG,GAAG8tB,EAAEyL,iBAAY,IAASxL,EAAE,OAAOxhB,EAAE,GAAGnF,EAAEgwB,SAASrD,OAAO0a,IAAI7qC,EAAEwD,EAAE,OAAOpH,EAAE,SAAS+tB,EAAE,OAAOA,EAAE,GAAG,mBAAmBA,EAAE,CAAC,MAAMxhB,EAAEwhB,EAAEtqB,OAAO,CAACoqB,EAAEzmB,EAAE6vB,UAAU,IAAI9sB,GAAG,GAAG,IAAI,OAAO4jB,KAAKxhB,EAAE,CAAC,MAAMA,GAAG,YAAY7E,EAAEvC,KAAKvB,EAAEoxB,cAAc,OAAOh1B,IAAI,KAAK,CAACkI,MAAMqE,GAAGnF,EAAE0mB,GAAG,CAAC,CAAC,MAAM,iBAAiBC,EAAEA,EAAEA,EAAEtmB,EAAE2f,QAAQyP,SAAS9I,EAAE8I,QAAQpvB,EAAE8sB,aAAaxG,GAAGA,EAAErpB,QAAQ6H,EAAEnF,EAAE0mB,GAAGD,EAAEE,EAAE,EAAEC,EAAEwN,KAAK,SAASx7B,EAAEuM,GAAG,GAAG,iBAAiBvM,EAAE,OAAOA,EAAE,MAAM0H,EAAE6E,EAAE6oB,UAAU,QAAQ,OAAO1tB,GAAGA,EAAE5D,KAAKkoC,QAAQhsC,EAAEw7B,OAAOx7B,CAAC,EAAEguB,EAAEghB,OAAO,CAAC3X,QAAO,EAAG3F,MAAM9tB,EAAEqwB,MAAMrwB,EAAEwS,OAAOxS,EAAE6qC,IAAI7qC,EAAEc,QAAQd,EAAEjE,MAAMiE,GAAGoqB,EAAEkW,YAAY,WAAW,MAAMlkC,EAAE,GAAG,OAAOA,EAAEyH,EAAE2f,QAAQuO,SAAQ,EAAG31B,CAAC,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAAC,EAAEpH,EAAEN,QAAQ0H,EAAE8nC,OAAO,MAAM,WAAA7gB,CAAYruB,EAAEuM,GAAGjJ,KAAKqsB,QAAQ,IAAIqI,IAAIh4B,GAAGsD,KAAKsrB,MAAM,IAAIoJ,IAAIzrB,GAAGjJ,KAAK6rC,WAAW/nC,EAAEgoC,WAAWpvC,GAAGsD,KAAK+rC,WAAU,CAAE,CAAC,UAAI5rC,GAAS,OAAOH,KAAKqsB,QAAQ4I,KAAKj1B,KAAKsrB,MAAM2J,IAAI,CAAC,GAAAhgB,CAAIvY,EAAEuM,GAAG3I,EAAE2wB,aAAav0B,GAAGsD,KAAKsrB,MAAM7V,IAAI/Y,KAAKsD,KAAKsrB,MAAMrW,IAAIvY,GAAGuM,GAAGA,EAAEsmB,SAAS7yB,IAAIsD,KAAKyV,IAAI/Y,EAAE,KAAK,MAAK,KAAMsD,KAAKqsB,QAAQpX,IAAIvY,GAAG,iBAAiBA,GAAGsD,KAAK6rC,WAAWltC,IAAIjC,EAAE2lC,cAAc3lC,GAAG,CAAC,YAAO4W,CAAM5W,EAAEuM,EAAE7E,GAAG,GAAG1H,EAAEA,GAAG,IAAIoH,EAAE8nC,OAAO3iC,EAAE,CAAC,GAAGA,EAAE8iC,UAAU,OAAO9iC,EAAEwjB,QAAQ,IAAI,MAAMroB,IAAI,IAAI6E,EAAEojB,WAAWpjB,EAAEqiB,OAAO5uB,EAAEuY,IAAI7Q,EAAE,CAAC,GAAGA,EAAE,IAAI,MAAM6E,IAAI,IAAI7E,EAAEioB,WAAWjoB,EAAEknB,OAAO5uB,EAAE6U,OAAOtI,GAAG,OAAOvM,EAAEyD,OAAOzD,EAAE,IAAI,CAAC,MAAA6U,CAAO7U,GAAG4D,EAAE2wB,aAAav0B,GAAGsD,KAAKsrB,MAAMtsB,OAAOtC,IAAIsD,KAAKqsB,QAAQrtB,OAAOtC,GAAG,iBAAiBA,GAAGsD,KAAK6rC,WAAW7sC,OAAOtC,EAAE2lC,eAAe,CAAC,GAAA5sB,CAAI/Y,EAAEuM,EAAE7E,EAAEyC,GAAG,QAAQ7G,KAAKqR,IAAI3U,EAAEuM,EAAE7E,EAAEyC,EAAE,CAAC,GAAAwK,CAAI3U,EAAEuM,EAAE7E,EAAEyC,GAAG,IAAI7G,KAAKG,OAAO,OAAM,EAAG,GAAGH,KAAKqsB,QAAQ5W,IAAI/Y,GAAG,MAAM,CAACL,MAAMK,GAAG,GAAG,iBAAiBA,GAAGA,GAAGmK,EAAE,CAAC,MAAMoC,EAAEjJ,KAAK6rC,WAAWx6B,IAAI3U,EAAE2lC,eAAe,GAAGp5B,EAAE,MAAM,CAAC5M,MAAM4M,EAAE,CAAC,IAAIjJ,KAAKsrB,MAAM2J,MAAM,iBAAiBv4B,EAAE,OAAM,EAAG,GAAG,iBAAiBA,EAAE,IAAI,MAAMuM,KAAKjJ,KAAKqsB,QAAQ,GAAG9B,EAAEthB,EAAEvM,GAAG,MAAM,CAACL,MAAM4M,GAAG,GAAGA,EAAE,IAAI,MAAM3I,KAAKN,KAAKsrB,MAAM,CAAC,MAAMxnB,EAAExD,EAAEc,QAAQ1E,EAAEuM,EAAE7E,EAAE,KAAK,CAACi2B,IAAG,IAAK,QAAG,IAASv2B,EAAE,SAAS,MAAMK,EAAE7D,EAAE+5B,IAAI,iBAAiBv2B,EAAEwK,MAAMie,QAAQzoB,GAAGA,EAAEnI,OAAOwK,KAAKrC,GAAG,CAACA,GAAG,IAAI,MAAMmF,KAAK9E,EAAE,UAAU8E,UAAUvM,EAAE,GAAGmK,GAAGnK,GAAG,iBAAiBA,GAAG,GAAGuM,EAAEo5B,gBAAgB3lC,EAAE2lC,cAAc,MAAM,CAAChmC,MAAM4M,EAAE+W,IAAI1f,QAAQ,GAAGiqB,EAAEthB,EAAEvM,GAAG,MAAM,CAACL,MAAM4M,EAAE+W,IAAI1f,EAAE,CAAC,OAAM,CAAE,CAAC,QAAA4sB,GAAWltB,KAAK+rC,WAAU,CAAE,CAAC,MAAAxvB,CAAO7f,GAAG,GAAGA,GAAGA,EAAE6+B,QAAQ,CAAC,MAAM7+B,EAAE,GAAG,IAAI,MAAMuM,IAAI,IAAIjJ,KAAKqsB,WAAWrsB,KAAKsrB,YAAO,IAASriB,GAAGvM,EAAEmF,KAAKoH,GAAG,OAAOvM,CAAC,CAAC,OAAO4R,MAAMwqB,KAAK,IAAI94B,KAAKqsB,WAAWrsB,KAAKsrB,OAAO,CAAC,KAAAmB,GAAQ,MAAM/vB,EAAE,IAAIoH,EAAE8nC,OAAO5rC,KAAKqsB,QAAQrsB,KAAKsrB,OAAO,OAAO5uB,EAAEqvC,UAAU/rC,KAAK+rC,UAAUrvC,CAAC,CAAC,MAAA6K,CAAO7K,GAAGmK,GAAGnK,EAAEqvC,UAAU,wCAAwC,MAAM9iC,EAAE,IAAInF,EAAE8nC,OAAO,IAAI5rC,KAAKqsB,WAAW3vB,EAAE2vB,SAAS,IAAIrsB,KAAKsrB,SAAS5uB,EAAE4uB,QAAQ,OAAOriB,EAAE8iC,UAAU/rC,KAAK+rC,UAAU9iC,CAAC,CAAC,QAAAijB,GAAW,MAAMxvB,EAAE,GAAGsD,KAAK+rC,WAAWrvC,EAAEmF,KAAK,CAACqrB,UAAS,IAAK,IAAI,MAAMjkB,KAAKjJ,KAAKqsB,QAAQ9P,SAAS7f,EAAEmF,KAAKoH,GAAG,iBAAiBA,EAAE,CAAC5M,MAAM4M,GAAGA,GAAG,IAAI,MAAMA,KAAKjJ,KAAKsrB,MAAM/O,SAAS7f,EAAEmF,KAAKoH,EAAEijB,YAAY,OAAOxvB,CAAC,GAAGoH,EAAE8nC,OAAOhwC,UAAU0E,EAAEwjB,QAAQvH,SAAQ,EAAGzY,EAAE8nC,OAAOhwC,UAAU8H,MAAMI,EAAE8nC,OAAOhwC,UAAU6wB,MAAM3oB,EAAEgoC,WAAW,SAASpvC,GAAG,MAAMuM,EAAE,IAAI9K,IAAI,GAAGzB,EAAE,IAAI,MAAM0H,KAAK1H,EAAE,iBAAiB0H,GAAG6E,EAAEtK,IAAIyF,EAAEi+B,cAAcj+B,GAAG,OAAO6E,CAAC,GAAG,IAAI,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAEM,EAAE,MAAMD,EAAE,CAAC,EAAEzH,EAAEN,QAAQ,SAASM,EAAEuM,EAAE7E,EAAE,CAAC,GAAG,GAAGyC,EAAEnK,GAAG,iBAAiBA,EAAE,6CAA6CmK,GAAGoC,IAAG,IAAKA,GAAG,iBAAiBA,EAAE,0DAA0DpC,EAAE,iBAAiBzC,EAAE,uCAAuC6E,EAAE,OAAO,KAAK,GAAG7E,EAAE6uB,QAAQ,OAAO9uB,EAAE6nC,2BAA2BtvC,EAAEuM,EAAE7E,GAAG,MAAMN,EAAEymB,EAAE7tB,GAAG,IAAG,IAAKuM,EAAE,OAAOnF,EAAE,MAAM0mB,OAAE,IAASpmB,EAAE6nC,cAAc7nC,EAAE6nC,aAAa,OAAO3rC,EAAEwD,EAAEmF,EAAE,CAACgjC,aAAazhB,EAAEiV,aAAY,GAAI,EAAEt7B,EAAE6nC,2BAA2B,SAAStvC,EAAEuM,EAAE7E,GAAG,MAAMomB,EAAEpmB,EAAE6uB,QAAQpsB,EAAEyH,MAAMie,QAAQ/B,GAAG,gBAAgB,MAAMC,EAAE,IAAItsB,IAAIusB,GAAE,IAAKzhB,EAAE,KAAK,IAAIyrB,IAAI,IAAI,IAAItwB,KAAKomB,EAAE,CAACpmB,EAAEkK,MAAMie,QAAQnoB,GAAGA,EAAEA,EAAEhH,MAAM,KAAK,MAAMyJ,EAAE/C,EAAEpH,EAAE0H,GAAGyC,GAAG,iBAAiBA,EAAE4jB,EAAE9rB,IAAIkI,EAAE6jB,GAAG5mB,EAAEmF,EAAE7E,IAAIyC,GAAG6jB,GAAGA,EAAEzV,IAAI7Q,EAAE,CAAC,MAAMumB,EAAEJ,EAAE7tB,EAAE,CAAC,EAAE+tB,GAAG,IAAIC,EAAE,OAAOC,EAAE,IAAI,MAAMjuB,KAAKguB,EAAEvmB,EAAE+nC,UAAUvhB,EAAE1hB,EAAEvM,GAAG,MAAMye,OAAE,IAAS/W,EAAE6nC,cAAc7nC,EAAE6nC,aAAa,OAAO3rC,EAAEqqB,EAAE1hB,EAAE,CAACgjC,aAAa9wB,EAAEskB,aAAY,GAAI,EAAEt7B,EAAE+nC,UAAU,SAASxvC,EAAEuM,EAAE7E,GAAG,IAAI,MAAM1H,KAAK0H,EAAE,CAAC,KAAK1H,KAAKuM,GAAG,OAAO,MAAM7E,EAAE6E,EAAEvM,GAAG,GAAG,iBAAiB0H,GAAG,OAAOA,EAAE,OAAO6E,EAAE7E,CAAC,CAAC,MAAMyC,EAAEoC,EAAE,IAAIshB,EAAE7tB,EAAE,IAAI,IAAIA,EAAE,EAAEA,EAAE0H,EAAEjE,OAAO,IAAIzD,EAAE,CAAC,MAAMuM,EAAE7E,EAAE1H,GAAG,iBAAiB6tB,EAAEthB,KAAKshB,EAAEthB,GAAG,CAAC,GAAGshB,EAAEA,EAAEthB,EAAE,CAACshB,EAAEnmB,EAAEA,EAAEjE,OAAO,IAAI0G,CAAC,GAAG,IAAI,CAACnK,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAM1H,EAAEN,QAAQ,SAASM,KAAKuM,GAAG,IAAIvM,EAAE,CAAC,GAAG,IAAIuM,EAAE9I,QAAQ8I,EAAE,aAAanL,MAAM,MAAMmL,EAAE,GAAG,MAAM,IAAIpC,EAAEoC,EAAE,CAAC,GAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAACqoC,eAAe,IAAIzX,IAAI,CAACnK,EAAE5rB,IAAI4rB,EAAExpB,IAAIwpB,EAAE6hB,QAAQ7hB,EAAE8hB,WAAW3vC,EAAEN,QAAQ0H,EAAE2oB,MAAM,SAAS/vB,EAAEuM,EAAE,CAAC,EAAE7E,EAAE,MAAM,GAAG,iBAAiB1H,GAAG,OAAOA,EAAE,OAAOA,EAAE,IAAImK,EAAE/C,EAAE2oB,MAAMtoB,EAAEC,EAAE,GAAG6E,EAAEgqB,QAAQ,CAAC,IAAG,IAAKhqB,EAAEgqB,QAAQ,OAAOnvB,EAAEwoC,iBAAiB5vC,EAAEuM,GAAGpC,EAAEnK,GAAGA,CAAC,MAAM,GAAGyH,EAAE,CAAC,MAAM8E,EAAE9E,EAAEkN,IAAI3U,GAAG,GAAGuM,EAAE,OAAOA,CAAC,MAAM9E,EAAE,IAAIhG,IAAI,MAAMqsB,EAAED,EAAEgiB,iBAAiB7vC,GAAG,GAAG8tB,IAAID,EAAE7gB,OAAO,OAAM,EAAG,GAAG8gB,IAAID,EAAEmN,KAAK,OAAO,IAAI1T,KAAKtnB,EAAE6iC,WAAW,GAAG/U,IAAID,EAAEkN,MAAM,OAAO,IAAID,OAAO96B,GAAG,MAAM+tB,EAAE3mB,EAAEisB,KAAKrzB,EAAE8tB,EAAEvhB,GAAG,GAAGwhB,IAAI/tB,EAAE,OAAOA,EAAE,GAAGyH,GAAGA,EAAExF,IAAIjC,EAAE+tB,GAAGD,IAAID,EAAE5rB,IAAI,IAAI,MAAMyF,KAAK1H,EAAE+tB,EAAExV,IAAIpO,EAAEzC,EAAE6E,EAAE9E,SAAS,GAAGqmB,IAAID,EAAExpB,IAAI,IAAI,MAAMqD,EAAEmmB,KAAK7tB,EAAE+tB,EAAE9rB,IAAIyF,EAAEyC,EAAE0jB,EAAEthB,EAAE9E,IAAI,MAAMumB,EAAEpqB,EAAE6F,KAAKzJ,EAAEuM,GAAG,IAAI,MAAM7E,KAAKsmB,EAAE,CAAC,GAAG,cAActmB,EAAE,SAAS,GAAGomB,IAAID,EAAEtoB,OAAO,WAAWmC,EAAE,CAACqmB,EAAEtqB,OAAOzD,EAAEyD,OAAO,QAAQ,CAAC,MAAMG,EAAE3E,OAAOonB,yBAAyBrmB,EAAE0H,GAAG9D,EAAEA,EAAE+Q,KAAK/Q,EAAE3B,IAAIhD,OAAO8lB,eAAegJ,EAAErmB,EAAE9D,GAAGA,EAAEohB,WAAW+I,EAAErmB,GAAGyC,EAAEnK,EAAE0H,GAAG6E,EAAE9E,GAAGxI,OAAO8lB,eAAegJ,EAAErmB,EAAE,CAACsd,YAAW,EAAGS,UAAS,EAAGD,cAAa,EAAG7lB,MAAMwK,EAAEnK,EAAE0H,GAAG6E,EAAE9E,KAAKxI,OAAO8lB,eAAegJ,EAAErmB,EAAE,CAACsd,YAAW,EAAGS,UAAS,EAAGD,cAAa,EAAG7lB,MAAMwK,EAAEnK,EAAE0H,GAAG6E,EAAE9E,IAAI,CAAC,OAAOsmB,CAAC,EAAE3mB,EAAEwoC,iBAAiB,SAAS5vC,EAAEuM,GAAG,MAAM7E,EAAE6E,EAAEgqB,SAAShqB,EAAEtN,OAAOqZ,OAAO,CAAC,EAAE/L,IAAIgqB,SAAQ,EAAG,MAAM1I,EAAE,IAAIpsB,IAAI,IAAI,MAAM8K,KAAK7E,EAAE,CAAC,MAAMA,EAAEyC,EAAEnK,EAAEuM,GAAG,iBAAiB7E,GAAG,mBAAmBA,GAAGmmB,EAAE5rB,IAAIyF,EAAEA,EAAE,CAAC,OAAON,EAAE2oB,MAAM/vB,EAAEuM,EAAEshB,EAAE,EAAEzmB,EAAEisB,KAAK,SAASrzB,EAAEuM,EAAE7E,GAAG,IAAG,IAAKA,EAAExI,UAAU,OAAOkI,EAAEqoC,eAAe12B,IAAIxM,GAAG,IAAIA,EAAE8hB,YAAY9hB,IAAIshB,EAAEtoB,MAAM,GAAG,CAAC,EAAE,MAAM4E,EAAElL,OAAO0D,eAAe3C,GAAG,GAAGmK,GAAGA,EAAEstB,YAAY,OAAOz3B,EAAE,GAAGuM,IAAIshB,EAAEtoB,MAAM,CAAC,MAAMvF,EAAE,GAAG,OAAOmK,IAAIoC,GAAGtN,OAAO6wC,eAAe9vC,EAAEmK,GAAGnK,CAAC,CAAC,GAAGoH,EAAEqoC,eAAe12B,IAAIxM,GAAG,CAAC,MAAMvM,EAAE,IAAImK,EAAEkkB,YAAY,OAAOlkB,IAAIoC,GAAGtN,OAAO6wC,eAAe9vC,EAAEmK,GAAGnK,CAAC,CAAC,OAAOf,OAAO+Q,OAAO7F,EAAE,GAAG,KAAK,CAACnK,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAE,CAACkiB,WAAW,MAAM/vC,EAAEN,QAAQ,SAASM,EAAEuM,EAAE7E,GAAG,OAAOA,EAAEzI,OAAOqZ,OAAO,CAACpZ,WAAU,GAAIwI,KAAKmmB,EAAEmiB,YAAYhwC,EAAEuM,EAAE7E,EAAE,GAAG,EAAEmmB,EAAEmiB,YAAY,SAAShwC,EAAEuM,EAAE7E,EAAE9D,GAAG,GAAG5D,IAAIuM,EAAE,OAAO,IAAIvM,GAAG,EAAEA,GAAG,EAAEuM,EAAE,MAAMnF,SAASpH,EAAE,GAAGoH,WAAWmF,EAAE,OAAM,EAAG,GAAG,OAAOvM,GAAG,OAAOuM,EAAE,OAAM,EAAG,GAAG,aAAanF,GAAG,IAAIM,EAAEuoC,cAAcjwC,EAAEX,aAAakN,EAAElN,WAAW,OAAM,OAAQ,GAAG,WAAW+H,EAAE,OAAOpH,GAAGA,GAAGuM,GAAGA,EAAE,MAAM9E,EAAEomB,EAAEqiB,cAAclwC,EAAEuM,IAAI7E,EAAExI,WAAW,OAAOuI,GAAG,KAAK0C,EAAE6C,OAAO,OAAM,EAAG,KAAK7C,EAAE3F,QAAQ,OAAOxE,IAAIuM,EAAE,KAAKpC,EAAE4wB,MAAM,OAAO/6B,EAAEX,aAAakN,EAAElN,WAAW,KAAKwuB,EAAEkiB,WAAW,OAAM,EAAG,IAAI,IAAIroC,EAAE9D,EAAEH,OAAO,EAAEiE,GAAG,IAAIA,EAAE,GAAG9D,EAAE8D,GAAGyoC,OAAOnwC,EAAEuM,GAAG,OAAM,EAAG3I,EAAEuB,KAAK,IAAI0oB,EAAEuiB,UAAUpwC,EAAEuM,IAAI,IAAI,QAAQshB,EAAEwiB,eAAe5oC,EAAEzH,EAAEuM,EAAE7E,EAAE9D,EAAE,CAAC,QAAQA,EAAEqS,KAAK,CAAC,EAAE4X,EAAEqiB,cAAc,SAASlwC,EAAEuM,EAAE7E,GAAG,GAAGA,EAAE,OAAOzI,OAAO0D,eAAe3C,KAAKf,OAAO0D,eAAe4J,GAAGshB,EAAEkiB,WAAW5lC,EAAE0lC,iBAAiB7vC,GAAG,MAAM4D,EAAEuG,EAAE0lC,iBAAiB7vC,GAAG,OAAO4D,IAAIuG,EAAE0lC,iBAAiBtjC,GAAGshB,EAAEkiB,WAAWnsC,CAAC,EAAEiqB,EAAEyiB,QAAQ,SAAStwC,GAAG,MAAMuM,EAAEvM,EAAEswC,QAAQ,QAAG,IAAS/jC,EAAE,OAAOvM,EAAE,IAAI,OAAOuM,EAAE1M,KAAKG,EAAE,CAAC,MAAMA,GAAG,OAAOA,CAAC,CAAC,EAAE6tB,EAAE0iB,yBAAyB,SAASvwC,EAAEuM,GAAG,OAAOtN,OAAOC,UAAU4lB,qBAAqBjlB,KAAKG,EAAEuM,EAAE,EAAEshB,EAAE2iB,iBAAiB,SAASxwC,EAAEuM,GAAG,IAAI,MAAM7E,KAAKswB,IAAI94B,UAAU2gB,OAAOhgB,KAAKG,GAAG,IAAIg4B,IAAI94B,UAAU6Z,IAAIlZ,KAAK0M,EAAE7E,GAAG,OAAM,EAAG,OAAM,CAAE,EAAEmmB,EAAEwiB,eAAe,SAASrwC,EAAEuM,EAAE7E,EAAE9D,EAAEwD,GAAG,MAAM4oC,YAAYvoC,EAAE6oC,QAAQxiB,EAAEyiB,yBAAyBxiB,GAAGF,GAAGpkB,KAAKukB,EAAEpH,sBAAsBqH,GAAGhvB,OAAO,GAAGe,IAAImK,EAAE5E,MAAM,CAAC,IAAI3B,EAAE6sC,KAAK,CAAC,GAAGlkC,EAAE9I,SAASiE,EAAEjE,OAAO,OAAM,EAAG,IAAI,IAAIzD,EAAE,EAAEA,EAAEuM,EAAE9I,SAASzD,EAAE,IAAIyH,EAAE8E,EAAEvM,GAAG0H,EAAE1H,GAAG4D,EAAEwD,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,IAAI,MAAMpH,KAAKuM,EAAE,IAAI,MAAMA,KAAK7E,EAAE,GAAGD,EAAEzH,EAAEuM,EAAE3I,EAAEwD,GAAG,OAAM,CAAE,MAAM,GAAGpH,IAAImK,EAAElI,IAAI,CAAC,GAAGsK,EAAEgsB,OAAO7wB,EAAE6wB,KAAK,OAAM,EAAG,IAAI1K,EAAE2iB,iBAAiBjkC,EAAE7E,GAAG,CAAC,MAAM1H,EAAE,IAAIg4B,IAAIA,IAAI94B,UAAU2gB,OAAOhgB,KAAK6H,IAAI,IAAI,MAAMA,KAAKswB,IAAI94B,UAAU2gB,OAAOhgB,KAAK0M,GAAG,CAAC,GAAGvM,EAAEsC,OAAOoF,GAAG,SAAS,IAAI6E,GAAE,EAAG,IAAI,MAAMpC,KAAKnK,EAAE,GAAGyH,EAAEC,EAAEyC,EAAEvG,EAAEwD,GAAG,CAACpH,EAAEsC,OAAO6H,GAAGoC,GAAE,EAAG,KAAK,CAAC,IAAIA,EAAE,OAAM,CAAE,CAAC,CAAC,MAAM,GAAGvM,IAAImK,EAAE9F,IAAI,CAAC,GAAGkI,EAAEgsB,OAAO7wB,EAAE6wB,KAAK,OAAM,EAAG,IAAI,MAAMv4B,EAAEmK,KAAK1I,IAAIvC,UAAU++B,QAAQp+B,KAAK0M,GAAG,CAAC,QAAG,IAASpC,IAAI1I,IAAIvC,UAAU6Z,IAAIlZ,KAAK6H,EAAE1H,GAAG,OAAM,EAAG,IAAIyH,EAAE0C,EAAE1I,IAAIvC,UAAUyV,IAAI9U,KAAK6H,EAAE1H,GAAG4D,EAAEwD,GAAG,OAAM,CAAE,CAAC,MAAM,GAAGpH,IAAImK,EAAEjC,QAAQqE,EAAEb,OAAOhE,EAAEgE,MAAMa,EAAE0U,UAAUvZ,EAAEuZ,SAAS,OAAM,EAAG,MAAMxC,EAAEqP,EAAEvhB,GAAGoS,EAAEmP,EAAEpmB,GAAG,IAAI6E,IAAIkS,GAAG/W,IAAIiX,KAAKlX,EAAEgX,EAAEE,EAAE/a,EAAEwD,GAAG,OAAM,EAAG,MAAMyX,EAAEmP,EAAEzhB,GAAG,IAAI3I,EAAE6sC,MAAM5xB,EAAEpb,SAASuqB,EAAEtmB,GAAGjE,SAASG,EAAE8sC,KAAK,OAAM,EAAG,IAAI/qC,EAAE,EAAE,IAAI,MAAM3F,KAAK6e,EAAE,GAAGjb,EAAE8sC,MAAM9sC,EAAE8sC,KAAK72B,SAAS7Z,QAAG,IAAS0H,EAAE1H,MAAM2F,MAAM,CAAC,IAAIooB,EAAErmB,EAAE1H,GAAG,OAAM,EAAG,IAAIyH,EAAE8E,EAAEvM,GAAG0H,EAAE1H,GAAG4D,EAAEwD,GAAG,OAAM,CAAE,CAAC,IAAIxD,EAAE6sC,MAAM5xB,EAAEpb,OAAOkC,IAAIqoB,EAAEtmB,GAAGjE,OAAO,OAAM,EAAG,IAAG,IAAKG,EAAEwjB,QAAQ,CAAC,MAAMpnB,EAAEiuB,EAAE1hB,GAAGpC,EAAE,IAAI6tB,IAAI/J,EAAEvmB,IAAI,IAAI,MAAMmmB,KAAK7tB,EAAE,CAAC,IAAI4D,EAAE8sC,OAAO9sC,EAAE8sC,KAAK72B,SAASgU,GAAG,GAAGE,EAAExhB,EAAEshB,GAAG,CAAC,IAAIE,EAAErmB,EAAEmmB,GAAG,OAAM,EAAG,IAAIpmB,EAAE8E,EAAEshB,GAAGnmB,EAAEmmB,GAAGjqB,EAAEwD,GAAG,OAAM,CAAE,MAAM,GAAG2mB,EAAErmB,EAAEmmB,GAAG,OAAM,EAAG1jB,EAAE7H,OAAOurB,EAAE,CAAC,IAAI,MAAM7tB,KAAKmK,EAAE,GAAG4jB,EAAErmB,EAAE1H,GAAG,OAAM,CAAE,CAAC,OAAM,CAAE,EAAE6tB,EAAEuiB,UAAU,MAAM,WAAA/hB,CAAYruB,EAAEuM,GAAGjJ,KAAKb,IAAIzC,EAAEsD,KAAKggB,IAAI/W,CAAC,CAAC,MAAA4jC,CAAOnwC,EAAEuM,GAAG,OAAOjJ,KAAKb,MAAMzC,GAAGsD,KAAKggB,MAAM/W,CAAC,EAAC,EAAG,KAAK,CAACvM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAM1H,EAAEN,QAAQ,cAAc0B,MAAM,WAAAitB,CAAYruB,GAAG67B,MAAM77B,EAAEoW,QAAQpW,GAAG,KAAKA,IAAIqE,KAAKrE,GAAG,iBAAiBA,EAAEA,EAAEA,aAAaoB,MAAMpB,EAAEihB,QAAQ9W,EAAEnK,KAAKW,KAAK,MAAM,iBAAiB,mBAAmBS,MAAMuvC,mBAAmBvvC,MAAMuvC,kBAAkBrtC,KAAKiJ,EAAEmoB,OAAO,EAAC,EAAG,KAAK10B,IAAI,aAAa,MAAMuM,EAAE,CAAC,EAAEvM,EAAEN,QAAQ,SAASM,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAI0H,EAAE,GAAG,IAAI,IAAIyC,EAAE,EAAEA,EAAEnK,EAAEyD,SAAS0G,EAAE,CAAC,MAAM0jB,EAAE7tB,EAAE4wC,WAAWzmC,GAAGoC,EAAEskC,OAAOhjB,GAAGnmB,GAAG1H,EAAEmK,GAAGzC,GAAG6E,EAAEukC,eAAejjB,EAAE,CAAC,OAAOnmB,CAAC,EAAE6E,EAAEukC,eAAe,SAAS9wC,GAAG,OAAOuM,EAAEwkC,UAAUp8B,IAAI3U,KAAKA,GAAG,IAAI,KAAKA,EAAE,IAAI,MAAMA,EAAEX,SAAS,IAAI2xC,SAAS,EAAE,QAAQ,EAAEzkC,EAAEskC,OAAO,SAAS7wC,GAAG,OAAOuM,EAAE0kC,cAAcl4B,IAAI/Y,EAAE,EAAEuM,EAAEwkC,UAAU,IAAItvC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,WAAW,CAAC,IAAI,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,WAAW8K,EAAE0kC,cAAc,WAAW,MAAMjxC,EAAE,IAAIg4B,IAAI,IAAI,IAAIzrB,EAAE,GAAGA,EAAE,MAAMA,GAAGA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAIA,GAAG,IAAI,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,GAAG,KAAKA,IAAIvM,EAAEuY,IAAIhM,GAAG,OAAOvM,CAAC,CAAxJ,EAA0J,EAAG,KAAKA,IAAI,aAAaA,EAAEN,QAAQ,SAASM,GAAG,OAAOA,EAAEu7B,QAAQ,8CAA8C,OAAO,GAAG,IAAIv7B,IAAI,aAAaA,EAAEN,QAAQ,WAAW,GAAG,KAAK,CAACM,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAAC,EAAEpH,EAAEN,QAAQ0H,EAAEwP,MAAM,SAAS5W,EAAEuM,EAAE7E,GAAG,GAAGyC,EAAEnK,GAAG,iBAAiBA,EAAE,2CAA2CmK,EAAE,MAAMoC,GAAG,iBAAiBA,EAAE,gEAAgEA,EAAE,OAAOvM,EAAE,GAAG0H,EAAEzI,OAAOqZ,OAAO,CAACi3B,cAAa,EAAGxM,aAAY,GAAIr7B,GAAGkK,MAAMie,QAAQtjB,GAAG,CAACpC,EAAEyH,MAAMie,QAAQ7vB,GAAG,qCAAqC0H,EAAEq7B,cAAc/iC,EAAEyD,OAAO,GAAG,IAAI,IAAI0G,EAAE,EAAEA,EAAEoC,EAAE9I,SAAS0G,EAAEnK,EAAEmF,KAAK0oB,EAAEthB,EAAEpC,GAAG,CAACid,QAAQ1f,EAAE0f,WAAW,OAAOpnB,CAAC,CAAC,MAAMyH,EAAE7D,EAAE6F,KAAK8C,EAAE7E,GAAG,IAAI,IAAIyC,EAAE,EAAEA,EAAE1C,EAAEhE,SAAS0G,EAAE,CAAC,MAAMvG,EAAE6D,EAAE0C,GAAG,GAAG,cAAcvG,IAAI3E,OAAOC,UAAU4lB,qBAAqBjlB,KAAK0M,EAAE3I,GAAG,SAAS,MAAMkqB,EAAEvhB,EAAE3I,GAAG,GAAGkqB,GAAG,iBAAiBA,EAAE,CAAC,GAAG9tB,EAAE4D,KAAKkqB,EAAE,UAAU9tB,EAAE4D,IAAI,iBAAiB5D,EAAE4D,IAAIgO,MAAMie,QAAQ7vB,EAAE4D,MAAMgO,MAAMie,QAAQ/B,IAAIA,aAAaxG,MAAMwG,aAAagN,OAAO96B,EAAE4D,GAAGiqB,EAAEC,EAAE,CAAC1G,QAAQ1f,EAAE0f,UAAUhgB,EAAEwP,MAAM5W,EAAE4D,GAAGkqB,EAAEpmB,EAAE,MAAM,MAAMomB,GAAGpmB,EAAE6nC,gBAAgBvvC,EAAE4D,GAAGkqB,EAAE,CAAC,OAAO9tB,CAAC,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAE,CAAC,EAAE7tB,EAAEN,QAAQ,SAASM,EAAEuM,EAAE7E,GAAG,IAAG,IAAK6E,GAAG,MAAMA,EAAE,OAAOvM,EAAE,iBAAiB0H,EAAEA,GAAG,CAAC,KAAKA,EAAE,CAAC62B,UAAU72B,IAAI,MAAM9D,EAAEgO,MAAMie,QAAQtjB,GAAGpC,GAAGvG,IAAI8D,EAAE62B,UAAU,uDAAuD,MAAMn3B,EAAExD,EAAE2I,EAAEA,EAAE7L,MAAMgH,EAAE62B,WAAW,KAAK,IAAI92B,EAAEzH,EAAE,IAAI,IAAIA,EAAE,EAAEA,EAAEoH,EAAE3D,SAASzD,EAAE,CAAC,IAAI4D,EAAEwD,EAAEpH,GAAG,MAAM8tB,EAAEpmB,EAAE42B,WAAWzQ,EAAEyQ,UAAU72B,GAAG,GAAGmK,MAAMie,QAAQpoB,IAAI,QAAQqmB,EAAE,CAAC,MAAM9tB,EAAEgX,OAAOpT,GAAGoT,OAAOk6B,UAAUlxC,KAAK4D,EAAE5D,EAAE,EAAEyH,EAAEhE,OAAOzD,EAAEA,EAAE,CAAC,IAAIyH,GAAG,mBAAmBA,IAAG,IAAKC,EAAEs3B,YAAYlR,QAAG,IAASrmB,EAAE7D,GAAG,CAACuG,GAAGzC,EAAEqqB,QAAQ/xB,EAAE,IAAIoH,EAAE3D,OAAO,kBAAkBG,EAAE,iBAAiB2I,GAAGpC,EAAE,iBAAiB1C,IAAG,IAAKC,EAAEs3B,WAAW,mBAAmBv3B,EAAE,kBAAkB7D,EAAE,iBAAiB2I,GAAG9E,EAAEC,EAAEie,QAAQ,KAAK,CAACle,EAAEqmB,EAAE,QAAQA,EAAE,IAAIrmB,GAAG7D,GAAG6D,EAAEkN,IAAI/Q,GAAG6D,EAAE7D,EAAE,CAAC,OAAO6D,CAAC,EAAEomB,EAAEyQ,UAAU,SAASt+B,GAAG,OAAOA,aAAag4B,IAAI,MAAMh4B,aAAayB,IAAI,WAAM,CAAM,GAAG,KAAKzB,IAAI,aAAaA,EAAEN,QAAQ,YAAYM,GAAG,IAAI,OAAOqiC,KAAKL,aAAahiC,EAAE,CAAC,MAAMA,GAAG,MAAM,2BAA2BA,EAAEihB,QAAQ,GAAG,CAAC,GAAG,KAAK,CAACjhB,EAAEuM,KAAK,aAAa,MAAM7E,EAAE,CAAC,EAAE6E,EAAEvM,EAAEN,QAAQ,CAAC6F,MAAMqM,MAAM1S,UAAU8N,QAAO,EAAGguB,KAAK1T,KAAKpoB,UAAUgJ,MAAM9G,MAAMlC,UAAUiyC,QAAQlyC,OAAOC,UAAUmF,IAAI5C,IAAIvC,UAAUsF,QAAQC,QAAQvF,UAAU67B,MAAMD,OAAO57B,UAAU+C,IAAI+1B,IAAI94B,UAAUywC,QAAQ7pB,QAAQ5mB,UAAUwwC,QAAQ0B,QAAQlyC,WAAWwI,EAAE2pC,QAAQ,IAAI5vC,IAAI,CAAC,CAAC,iBAAiB8K,EAAErE,OAAO,CAAC,eAAeqE,EAAElI,KAAK,CAAC,mBAAmBkI,EAAE/H,SAAS,CAAC,eAAe+H,EAAEtK,KAAK,CAAC,mBAAmBsK,EAAEojC,SAAS,CAAC,mBAAmBpjC,EAAEmjC,WAAWnjC,EAAEsjC,iBAAiB,SAAS7vC,GAAG,GAAG4R,MAAMie,QAAQ7vB,GAAG,OAAOuM,EAAEhH,MAAM,GAAGvF,aAAasnB,KAAK,OAAO/a,EAAEyuB,KAAK,GAAGh7B,aAAa86B,OAAO,OAAOvuB,EAAEwuB,MAAM,GAAG/6B,aAAaoB,MAAM,OAAOmL,EAAErE,MAAM,MAAMiC,EAAElL,OAAOC,UAAUG,SAASQ,KAAKG,GAAG,OAAO0H,EAAE2pC,QAAQ18B,IAAIxK,IAAIoC,EAAE4kC,OAAO,GAAG,KAAK,CAACnxC,EAAEuM,KAAK,aAAaA,EAAE9C,KAAK,SAASzJ,EAAEuM,EAAE,CAAC,GAAG,OAAM,IAAKA,EAAE6a,QAAQtO,QAAQ6N,QAAQ3mB,GAAGf,OAAOqyC,oBAAoBtxC,EAAE,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAE,CAAC,EAAEthB,EAAE+6B,OAAO,MAAM,WAAAjZ,GAAc/qB,KAAKiuC,OAAO,GAAGjuC,KAAKmkC,MAAM,EAAE,CAAC,GAAAlvB,CAAIvY,EAAEuM,GAAG,MAAM7E,EAAE,GAAGmD,QAAQ0B,EAAEA,GAAG,CAAC,GAAGilC,QAAQ,IAAI3jB,EAAE,GAAGhjB,OAAO0B,EAAEg7B,OAAO,IAAI3jC,EAAE2I,EAAEi7B,OAAO,IAAIpgC,EAAEmF,EAAEy3B,MAAM,EAAE75B,GAAGzC,EAAEmS,SAASjW,GAAG,mCAAmCA,KAAKuG,GAAGzC,EAAEmS,SAAS,KAAK,8CAA8C1P,GAAG0jB,EAAEhU,SAASjW,GAAG,kCAAkCA,KAAKuG,GAAG0jB,EAAEhU,SAAS,KAAK,6CAA6CjI,MAAMie,QAAQ7vB,KAAKA,EAAE,CAACA,IAAI,IAAI,MAAMuM,KAAKvM,EAAE,CAAC,MAAMA,EAAE,CAACyxC,IAAInuC,KAAKiuC,OAAO9tC,OAAOugC,KAAK58B,EAAEoqC,OAAO9pC,EAAE6/B,MAAM1Z,EAAE2Z,MAAM5jC,EAAE2f,KAAKhX,GAAGjJ,KAAKiuC,OAAOpsC,KAAKnF,EAAE,CAAC,IAAIuM,EAAEmlC,OAAO,CAAC,MAAM1xC,EAAEsD,KAAKquC,QAAQxnC,EAAEnK,EAAE,OAAO,MAAM4D,EAAE,oBAAoBA,IAAI,GAAG,+BAA+B,CAAC,OAAON,KAAKmkC,KAAK,CAAC,KAAA7wB,CAAM5W,GAAG4R,MAAMie,QAAQ7vB,KAAKA,EAAE,CAACA,IAAI,IAAI,MAAMuM,KAAKvM,EAAE,GAAGuM,EAAE,IAAI,MAAMvM,KAAKuM,EAAEglC,OAAOjuC,KAAKiuC,OAAOpsC,KAAKlG,OAAOqZ,OAAO,CAAC,EAAEtY,IAAIsD,KAAKiuC,OAAOvN,KAAKnW,EAAE+jB,WAAW,IAAI,IAAI5xC,EAAE,EAAEA,EAAEsD,KAAKiuC,OAAO9tC,SAASzD,EAAEsD,KAAKiuC,OAAOvxC,GAAGyxC,IAAIzxC,EAAE,MAAMuM,EAAEjJ,KAAKquC,QAAQ,OAAOxnC,EAAEoC,EAAE,sCAAsCjJ,KAAKmkC,KAAK,CAAC,IAAAzD,GAAO,MAAMhkC,EAAEsD,KAAKquC,QAAQ,OAAOxnC,EAAEnK,EAAE,qCAAqCsD,KAAKmkC,KAAK,CAAC,KAAAkK,GAAQ,MAAM3xC,EAAE,CAAC,EAAEuM,EAAEtN,OAAO+Q,OAAO,MAAMtI,EAAEzI,OAAO+Q,OAAO,MAAM,IAAI,MAAM7F,KAAK7G,KAAKiuC,OAAO,CAAC,MAAM1jB,EAAE1jB,EAAEsnC,IAAI7tC,EAAEuG,EAAEq9B,MAAM9/B,EAAE9D,GAAG8D,EAAE9D,IAAI,GAAG8D,EAAE9D,GAAGuB,KAAK0oB,GAAG7tB,EAAE6tB,GAAG1jB,EAAEqnC,OAAO,IAAI,MAAMxxC,KAAKmK,EAAEo9B,MAAMh7B,EAAEvM,GAAGuM,EAAEvM,IAAI,GAAGuM,EAAEvM,GAAGmF,KAAK0oB,EAAE,CAAC,IAAI,MAAMthB,KAAKvM,EAAE,CAAC,MAAMmK,EAAE,GAAG,IAAI,MAAM0jB,KAAK7tB,EAAEuM,GAAG,CAAC,MAAM3I,EAAE5D,EAAEuM,GAAGshB,GAAGnmB,EAAE9D,GAAG8D,EAAE9D,IAAI,GAAGuG,EAAEhF,QAAQuC,EAAE9D,GAAG,CAAC5D,EAAEuM,GAAGpC,CAAC,CAAC,IAAI,MAAMA,KAAKoC,EAAE,GAAG7E,EAAEyC,GAAG,IAAI,MAAM0jB,KAAKnmB,EAAEyC,GAAGnK,EAAE6tB,GAAG1oB,QAAQoH,EAAEpC,IAAI,MAAMA,EAAE,CAAC,EAAE,IAAI,MAAMoC,KAAKvM,EAAE,CAAC,MAAM0H,EAAE1H,EAAEuM,GAAG,IAAI,MAAMvM,KAAK0H,EAAEyC,EAAEnK,GAAGmK,EAAEnK,IAAI,GAAGmK,EAAEnK,GAAGmF,KAAKoH,EAAE,CAAC,MAAMshB,EAAE,CAAC,EAAEjqB,EAAE,GAAG,IAAI,IAAI5D,EAAE,EAAEA,EAAEsD,KAAKiuC,OAAO9tC,SAASzD,EAAE,CAAC,IAAIuM,EAAEvM,EAAE,GAAGmK,EAAEnK,GAAG,CAACuM,EAAE,KAAK,IAAI,IAAIvM,EAAE,EAAEA,EAAEsD,KAAKiuC,OAAO9tC,SAASzD,EAAE,CAAC,IAAG,IAAK6tB,EAAE7tB,GAAG,SAASmK,EAAEnK,KAAKmK,EAAEnK,GAAG,IAAI,MAAM0H,EAAEyC,EAAEnK,GAAGyD,OAAO,IAAIG,EAAE,EAAE,IAAI,IAAI2I,EAAE,EAAEA,EAAE7E,IAAI6E,EAAEshB,EAAE1jB,EAAEnK,GAAGuM,OAAO3I,EAAE,GAAGA,IAAI8D,EAAE,CAAC6E,EAAEvM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAOuM,IAAIshB,EAAEthB,IAAG,EAAG3I,EAAEuB,KAAKoH,GAAG,CAAC,GAAG3I,EAAEH,SAASH,KAAKiuC,OAAO9tC,OAAO,OAAM,EAAG,MAAM2D,EAAE,CAAC,EAAE,IAAI,MAAMpH,KAAKsD,KAAKiuC,OAAOnqC,EAAEpH,EAAEyxC,KAAKzxC,EAAEsD,KAAKiuC,OAAO,GAAGjuC,KAAKmkC,MAAM,GAAG,IAAI,MAAMznC,KAAK4D,EAAE,CAAC,MAAM2I,EAAEnF,EAAEpH,GAAGsD,KAAKmkC,MAAMtiC,KAAKoH,EAAEgX,MAAMjgB,KAAKiuC,OAAOpsC,KAAKoH,EAAE,CAAC,OAAM,CAAE,GAAGshB,EAAE+jB,UAAU,CAAC5xC,EAAEuM,IAAIvM,EAAEgkC,OAAOz3B,EAAEy3B,KAAK,EAAEhkC,EAAEgkC,KAAKz3B,EAAEy3B,MAAM,EAAE,GAAG,KAAK,CAAChkC,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE,CAACypC,kBAAkB,EAAEwE,WAAW,eAAeC,gBAAgB,yCAAyCC,aAAa,2CAA2CC,gBAAgB,8CAA8CC,IAAI9nC,EAAE8nC,KAAKA,KAAK1lC,EAAE2lC,QAAQ,SAASlyC,EAAEuM,EAAE,CAAC,GAAG,IAAIvM,EAAE,OAAO6tB,EAAE1tB,KAAK,2BAA2B,GAAG,iBAAiBH,EAAE,MAAM,IAAIoB,MAAM,0CAA0C,GAAGpB,EAAEyD,OAAO,IAAI,OAAOoqB,EAAE1tB,KAAK,mBAAmB,GAAGyD,EAAEiuC,WAAW3gB,KAAKlxB,GAAG,CAAC,IAAG,IAAKuM,EAAE4lC,aAAa,OAAOtkB,EAAE1tB,KAAK,gCAAgCH,EAAEA,EAAEy0B,UAAU,MAAM,CAAC,GAAG7wB,EAAEkuC,gBAAgB5gB,KAAKlxB,GAAG,OAAO6tB,EAAE1tB,KAAK,wBAAwBH,EAAE4D,EAAEwuC,SAASpyC,GAAGuM,EAAE8lC,qBAAqB,MAAMryC,EAAEA,EAAEyD,OAAO,KAAKzD,EAAEA,EAAEgH,MAAM,GAAG,IAAI,MAAMU,EAAE6E,EAAE8gC,mBAAmBzpC,EAAEypC,kBAAkBljC,EAAEnK,EAAEU,MAAM,KAAK,GAAGyJ,EAAE1G,OAAOiE,EAAE,OAAOmmB,EAAE1tB,KAAK,yBAAyB,GAAGoM,EAAE6hC,mBAAmBjkC,EAAE1G,OAAO8I,EAAE6hC,kBAAkB,OAAOvgB,EAAE1tB,KAAK,6BAA6B,MAAMiH,EAAEmF,EAAE49B,KAAK,GAAG/iC,EAAE,CAAC,MAAMpH,EAAEmK,EAAEA,EAAE1G,OAAO,GAAGkiC,cAAc,GAAGv+B,EAAEswB,MAAMtwB,EAAEswB,KAAK3e,IAAI/Y,IAAIoH,EAAEqoB,QAAQroB,EAAEqoB,MAAM1W,IAAI/Y,GAAG,OAAO6tB,EAAE1tB,KAAK,wBAAwB,CAAC,IAAI,IAAIH,EAAE,EAAEA,EAAEmK,EAAE1G,SAASzD,EAAE,CAAC,MAAMuM,EAAEpC,EAAEnK,GAAG,IAAIuM,EAAE9I,OAAO,OAAOoqB,EAAE1tB,KAAK,wBAAwB,GAAGoM,EAAE9I,OAAO,GAAG,OAAOoqB,EAAE1tB,KAAK,uBAAuB,GAAGH,EAAEmK,EAAE1G,OAAO,GAAG,IAAIG,EAAEouC,gBAAgB9gB,KAAK3kB,GAAG,OAAOshB,EAAE1tB,KAAK,6BAA6B,IAAIyD,EAAEmuC,aAAa7gB,KAAK3kB,GAAG,OAAOshB,EAAE1tB,KAAK,4BAA4B,CAAC,OAAO,IAAI,EAAEoM,EAAEwgC,QAAQ,SAAS/sC,EAAE0H,GAAG,OAAO6E,EAAE2lC,QAAQlyC,EAAE0H,EAAE,EAAE9D,EAAEwuC,SAAS,SAASpyC,GAAGA,EAAE6Z,SAAS,OAAO7Z,EAAEA,EAAEu7B,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI33B,EAAEquC,IAAI,UAAUjyC,KAAKsyC,IAAI,CAAC,MAAM/lC,GAAG,OAAOvM,CAAC,CAAC,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,MAAMmmB,EAAEnmB,EAAE,MAAM9D,EAAE8D,EAAE,MAAMN,EAAE,CAACyqC,WAAW,eAAeU,QAAQ,IAAIpoC,EAAEqoC,aAAaA,cAAcjmC,EAAE2lC,QAAQ,SAASlyC,EAAEuM,GAAG,OAAOnF,EAAE4lC,MAAMhtC,EAAEuM,EAAE,EAAEA,EAAEwgC,QAAQ,SAAS/sC,EAAEuM,GAAG,OAAOnF,EAAE4lC,MAAMhtC,EAAEuM,EAAE,EAAEnF,EAAE4lC,MAAM,SAAShtC,EAAEuM,EAAE,CAAC,GAAG,GAAG,iBAAiBvM,EAAE,MAAM,IAAIoB,MAAM,yCAAyC,IAAIpB,EAAE,OAAO4D,EAAEzD,KAAK,gBAAgB,MAAMuH,GAAGN,EAAEyqC,WAAW3gB,KAAKlxB,GAAG,IAAI0H,EAAE,CAAC,IAAG,IAAK6E,EAAE4lC,aAAa,OAAOvuC,EAAEzD,KAAK,qBAAqBH,EAAEA,EAAEy0B,UAAU,MAAM,CAAC,MAAMtqB,EAAEnK,EAAEU,MAAM,KAAK,GAAG,IAAIyJ,EAAE1G,OAAO,OAAO0G,EAAE1G,OAAO,EAAEG,EAAEzD,KAAK,oBAAoByD,EAAEzD,KAAK,mBAAmB,MAAMsH,EAAEqmB,GAAG3jB,EAAE,IAAI1C,EAAE,OAAO7D,EAAEzD,KAAK,eAAe,IAAIoM,EAAEkmC,aAAa,CAAC,GAAGzyC,EAAEyD,OAAO,IAAI,OAAOG,EAAEzD,KAAK,oBAAoB,GAAGiH,EAAEmrC,QAAQ/Q,OAAO/5B,GAAGhE,OAAO,GAAG,OAAOG,EAAEzD,KAAK,iBAAiB,CAAC,OAAOiH,EAAEg0B,MAAM3zB,EAAEC,IAAImmB,EAAEqkB,QAAQpkB,EAAEvhB,EAAE,EAAEnF,EAAEg0B,MAAM,SAASp7B,EAAEuM,GAAG,MAAM7E,EAAE1H,EAAEU,MAAM,KAAK,IAAI,MAAMV,KAAK0H,EAAE,CAAC,IAAI1H,EAAEyD,OAAO,OAAOG,EAAEzD,KAAK,uBAAuB,GAAGoM,GAAG,IAAInF,EAAEsrC,QAAQxhB,KAAKlxB,GAAG,OAAO4D,EAAEzD,KAAK,4BAA4B,IAAI,MAAMoM,KAAKvM,EAAE,CAAC,GAAGoH,EAAEsrC,QAAQxhB,KAAK3kB,GAAG,SAAS,MAAMvM,EAAEoH,EAAEurC,OAAOpmC,GAAG,IAAInF,EAAEwrC,OAAO1hB,KAAKlxB,GAAG,OAAO4D,EAAEzD,KAAK,sBAAsB,CAAC,CAAC,EAAEiH,EAAEurC,OAAO,SAAS3yC,GAAG,OAAO4R,MAAMwqB,KAAKh1B,EAAEmrC,QAAQ/Q,OAAOxhC,IAAIqE,KAAKrE,GAAGiG,OAAO4sC,aAAa7yC,KAAKW,KAAK,GAAG,EAAEyG,EAAEsrC,QAAQ,qCAAqCtrC,EAAEwrC,OAAO,IAAI9X,OAAO,CAAC,iCAAiC,8IAA8I,mHAAmHn6B,KAAK,KAAI,EAAG,KAAK,CAACX,EAAEuM,KAAK,aAAaA,EAAEumC,MAAM,CAACC,aAAa,qCAAqCC,kBAAkB,gDAAgDC,iBAAiB,mDAAmDC,gBAAgB,uCAAuCC,YAAY,qCAAqCC,iBAAiB,mBAAmBC,eAAe,8BAA8BC,oBAAoB,0DAA0DC,oBAAoB,gDAAgDC,wBAAwB,oCAAoCC,gBAAgB,kBAAkBC,6BAA6B,+CAA+CC,qBAAqB,oCAAoCC,0BAA0B,wCAAwCC,sBAAsB,uDAAuDC,0BAA0B,oCAAoCC,sBAAsB,4BAA4BC,qBAAqB,8CAA8CC,oBAAoB,0DAA0D1nC,EAAEpM,KAAK,SAASH,GAAG,MAAM,CAACG,KAAKH,EAAEkI,MAAMqE,EAAEumC,MAAM9yC,GAAG,GAAG,KAAK,CAACA,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM6E,EAAEwuB,MAAM,SAAS/6B,EAAE,CAAC,GAAGmK,OAAE,IAASnK,EAAE2qC,MAAM,iBAAiB3qC,EAAE2qC,KAAK,iCAAiC,MAAMp+B,EAAEvM,EAAE2qC,KAAK3qC,EAAE2qC,KAAKhF,cAAc,WAAWx7B,EAAE,CAAC,WAAW,WAAW,aAAa0P,SAAStN,GAAG,6DAA6DpC,OAAE,IAASnK,EAAEojB,SAAS,iBAAiBpjB,EAAEojB,SAASxR,MAAMie,QAAQ7vB,EAAEojB,SAAS,0DAA0D,IAAI1b,EAAE1H,EAAEojB,SAAS,CAAC,OAAO,OAAO,aAAaxR,MAAMie,QAAQnoB,KAAKA,EAAE,CAACA,IAAIyC,EAAEzC,EAAEjE,QAAQ,EAAE,0DAA0D,IAAI,IAAIzD,EAAE,EAAEA,EAAE0H,EAAEjE,SAASzD,EAAEmK,EAAE,iBAAiBzC,EAAE1H,GAAG,6CAA6C0H,EAAE1H,GAAG0H,EAAE1H,GAAG2lC,cAAcx7B,EAAE,CAAC,OAAO,OAAO,aAAa0P,SAASnS,EAAE1H,IAAI,4CAA4C0H,EAAE1H,GAAG,2CAA2C0H,EAAEkK,MAAMwqB,KAAK,IAAIpE,IAAItwB,IAAI,MAAM9D,EAAE,MAAM8D,EAAErD,KAAKrE,IAAI,GAAG,cAAcuM,EAAE,OAAOshB,EAAEyf,GAAGttC,GAAG,MAAM0H,EAAE,MAAM,SAAS1H,EAAE6tB,EAAEyf,GAAG4G,OAAOrmB,EAAEyf,GAAG6G,SAAS,MAAM,aAAa5nC,EAAE,GAAGshB,EAAEyf,GAAGttC,KAAK0H,IAAI,GAAGmmB,EAAEyf,GAAGttC,QAAQ0H,KAAM,IAAG/G,KAAK,QAAQyG,EAAE,IAAI0zB,OAAO,IAAIl3B,MAAM,MAAM,CAAC+mC,KAAKp+B,EAAEghC,SAAS7lC,EAAEqzB,MAAM3zB,EAAEyqB,IAAIjuB,EAAE,GAAG,KAAK,CAAC5D,EAAEuM,EAAE7E,KAAK,aAAa,MAAMyC,EAAEzC,EAAE,KAAKmmB,EAAEnmB,EAAE,MAAM9D,EAAE,CAAC0zB,SAAS,WAAW,MAAMt3B,EAAE,CAAC,EAAEuM,EAAE,YAAY7E,EAAE,IAAI6E,EAAE,IAAIpC,EAAE,WAAW0jB,EAAE,wBAAwBjqB,EAAE,IAAI2I,EAAEnF,EAAE+C,EAAEvG,EAAEiqB,EAAE,KAAKpmB,EAAE,IAAIL,EAAE,IAAI0mB,EAAE,qDAAqD9tB,EAAEo0C,YAAY,MAAMtmB,EAAE,UAAUA,EAAE,MAAMC,EAAErmB,EAAE,QAAQsmB,EAAE,MAAMD,EAAE,IAAIA,EAAE,IAAI/tB,EAAEo0C,YAAY,IAAInmB,EAAE,MAAMF,EAAE,QAAQC,EAAEvP,EAAE,QAAQsP,EAAE,QAAQC,EAAErP,EAAE,MAAMoP,EAAE,UAAUA,EAAE,QAAQC,EAAEnP,EAAE,SAASkP,EAAE,UAAUA,EAAE,UAAUA,EAAE,QAAQC,EAAEroB,EAAE,SAASooB,EAAE,UAAUA,EAAE,UAAUA,EAAE,QAAQC,EAAEE,EAAE,SAASH,EAAE,UAAUA,EAAE,OAAOA,EAAE,IAAIC,EAAE/O,EAAE,SAAS8O,EAAE,UAAUA,EAAE,OAAOC,EAAEnqB,EAAE,SAASkqB,EAAE,UAAUA,EAAE,OAAOA,EAAEI,EAAE,SAASJ,EAAE,UAAUA,EAAE,OAAO/tB,EAAEq0C,SAAS,0BAA0Br0C,EAAEs0C,SAAS,4CAA4Ct0C,EAAEu0C,YAAY,MAAMtmB,EAAE,IAAIxP,EAAE,IAAIE,EAAE,IAAIE,EAAE,IAAIlZ,EAAE,IAAIuoB,EAAE,IAAIjP,EAAE,IAAIpb,EAAE,IAAIsqB,EAAE,IAAInuB,EAAEw0C,UAAU,IAAI9sC,EAAE,QAAQyC,EAAE0jB,EAAE,MAAM7tB,EAAE+tC,OAAO,4BAA4B/tC,EAAEy0C,YAAY,IAAI3Z,OAAO96B,EAAE+tC,QAAQ,MAAM1J,EAAE,IAAIl6B,EAAEvG,EAAEiqB,EAAE,MAAMyW,EAAE,IAAIn6B,EAAEvG,EAAEiqB,EAAE,WAAW8F,EAAE,YAAY3zB,EAAEu0C,YAAY,IAAIv0C,EAAEw0C,UAAU,QAAQx0C,EAAEo0C,YAAY,IAAI9P,EAAE,IAAInH,EAAE,MAAMkH,EAAE,MAAM1Q,EAAE,aAAa+gB,EAAE,MAAMrQ,EAAE,OAAO1Q,EAAE,cAAcvtB,EAAEqB,EAAE,IAAIkC,EAAElC,EAAE,IAAIgF,EAAE,SAASrG,EAAE,KAAKgD,EAAE,SAASO,EAAE8C,EAAE,KAAKkoC,EAAEhrC,EAAE8C,EAAEmoC,EAAE,IAAIzqC,EAAEvG,EAAEiqB,EAAE,MAAMphB,EAAEooC,EAAE,eAAezuC,EAAEqG,EAAE,IAAI,OAAOzM,EAAE80C,SAAS,eAAe3X,EAAE1wB,EAAE,KAAKrD,EAAE,IAAIurC,EAAE,IAAIE,EAAE,IAAI70C,EAAE+0C,gBAAgB,eAAeL,EAAEjoC,EAAE,KAAKrD,EAAE,IAAIurC,EAAE,IAAI30C,EAAEg1C,YAAY,eAAe7X,EAAE1wB,EAAE,KAAKrD,EAAE,IAAIwrC,EAAE,KAAK50C,EAAEi1C,mBAAmB,eAAeP,EAAEjoC,EAAE,KAAKrD,EAAE,IAAIwrC,EAAE,KAAK50C,EAAEk1C,MAAM,IAAI9tC,EAAE,kBAAkBpH,EAAEm1C,wBAAwB,IAAI/tC,EAAE,wBAAwBpH,EAAEo1C,SAAS,IAAIhuC,EAAE,WAAWpH,CAAC,GAAG4D,EAAEyxC,QAAQzxC,EAAE0zB,WAAW/qB,EAAE+gC,GAAG,CAAC4G,OAAOtwC,EAAEyxC,QAAQhB,SAASF,OAAOvwC,EAAEyxC,QAAQf,SAASgB,KAAK1xC,EAAEyxC,QAAQjB,YAAYmB,KAAK3xC,EAAEyxC,QAAQd,YAAYiB,UAAU5xC,EAAEyxC,QAAQb,WAAW5wC,EAAE6xC,YAAY,SAASz1C,GAAG,MAAMuM,EAAE3I,EAAEyxC,QAAQ3tC,EAAE,UAAU1H,EAAE01C,yBAAyBnpC,EAAE4oC,wBAAwB5oC,EAAE2oC,OAAO,SAAS3oC,EAAE6oC,SAAS,KAAKhuC,EAAEpH,EAAE4sC,OAAOrgC,EAAE0oC,mBAAmB1oC,EAAEyoC,YAAY,GAAGh1C,EAAEmuC,aAAa,OAAOvqC,EAAEy1B,KAAKjyB,EAAEM,GAAG,IAAID,EAAE,GAAG,GAAGzH,EAAE+tC,OAAO,CAAC5jC,EAAEnK,EAAE+tC,kBAAkBjT,QAAQ,iBAAiB96B,EAAE+tC,QAAQn8B,MAAMie,QAAQ7vB,EAAE+tC,QAAQ,6CAA6C,MAAMrmC,EAAE,GAAGmD,OAAO7K,EAAE+tC,QAAQ5jC,EAAEzC,EAAEjE,QAAQ,EAAE,gDAAgD,MAAMG,EAAE,GAAG,IAAI,IAAI5D,EAAE,EAAEA,EAAE0H,EAAEjE,SAASzD,EAAE,CAAC,MAAMoH,EAAEM,EAAE1H,GAAGmK,EAAE/C,aAAa0zB,QAAQ,iBAAiB1zB,EAAE,sBAAsBpH,EAAE,+BAA+BoH,aAAa0zB,OAAOl3B,EAAEuB,KAAKiC,EAAEsf,OAAOrnB,aAAa8K,EAAEoC,EAAEkoC,YAAYvjB,KAAK9pB,GAAG,sBAAsBpH,EAAE,2BAA2B4D,EAAEuB,KAAK0oB,EAAEzmB,IAAI,CAACK,EAAE7D,EAAEjD,KAAK,IAAI,CAAC,MAAMmtB,EAAE,OAAOrmB,EAAE,MAAMA,EAAE,IAAI8E,EAAEwhC,QAAQ,KAAK/tC,EAAE4sC,OAAOrgC,EAAEwoC,gBAAgBxoC,EAAEuoC,UAAU,IAAI/mB,EAAE/tB,EAAEkuC,cAAc,MAAMpgB,EAAE,IAAI1mB,EAAE,IAAI0mB,EAAE,OAAOlqB,EAAEy1B,KAAKtL,EAAErmB,EAAED,EAAE,EAAE7D,EAAEy1B,KAAK,SAASr5B,EAAEuM,GAAG,MAAM,CAACslB,IAAI7xB,EAAE,2DAA2DA,IAAI+6B,MAAM,IAAID,OAAO,IAAI96B,MAAM+tC,OAAOxhC,EAAE,EAAE3I,EAAE+xC,SAAS/xC,EAAE6xC,YAAY,CAAC,GAAGlpC,EAAEwuB,MAAM,SAAS/6B,EAAE,CAAC,GAAG,OAAOA,EAAE+tC,QAAQ/tC,EAAEkuC,eAAeluC,EAAEmuC,cAAcnuC,EAAE01C,0BAA0B11C,EAAE4sC,OAAOhpC,EAAE6xC,YAAYz1C,GAAG4D,EAAE+xC,QAAQ,GAAG,KAAK,CAAC31C,EAAEuM,KAAK,aAAa,MAAM7E,EAAE,CAACkuC,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,MAAMC,mBAAmB,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,OAAOC,gBAAgB,CAAC,IAAI,KAAKC,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAKrN,SAAS,6BAA6BsN,QAAQ,wBAAwB/vC,OAAOnH,OAAO,WAAWm3C,SAASn3C,OAAO,aAAawN,EAAE01B,OAAO,MAAM,WAAA5T,CAAYruB,EAAEuM,EAAE,CAAC,GAAG,IAAIA,EAAE7E,EAAEwuC,WAAW3pC,EAAE41B,UAAU,IAAI,MAAMniC,KAAKuM,EAAE41B,UAAU,CAAC,MAAMz6B,EAAE6E,EAAE41B,UAAUniC,GAAG,GAAG,OAAO0H,IAAI,CAAC,UAAU,SAAS,UAAUmS,gBAAgBnS,GAAG,MAAM,IAAItG,MAAM,oBAAoBpB,6BAA6B0H,eAAe,CAACpE,KAAK4yC,SAAS3pC,EAAE7E,EAAEwuC,UAAU3pC,EAAEtN,OAAOqZ,OAAO,CAAC,CAAC5Q,EAAEwuC,WAAU,EAAG/T,UAAU,CAAC,EAAEnD,UAAU,CAAC,GAAGzyB,GAAGjJ,KAAKstB,OAAO,KAAKttB,KAAK6yC,OAAO,KAAK7yC,KAAKi+B,OAAOvhC,EAAE,CAAC,MAAAuhC,CAAOvhC,GAAG,IAAImK,EAAE,GAAG0jB,EAAE,GAAGjqB,EAAE,EAAEwD,GAAE,EAAG,MAAMK,EAAEzH,IAAI,GAAG4D,EAAE,MAAM,IAAIxC,MAAM,uCAAuC,MAAMqG,EAAE0C,EAAE1G,OAAO0G,EAAEA,EAAE1G,OAAO,GAAG,KAAK,GAAG2D,GAAGymB,GAAG7tB,EAAE,CAAC,GAAGyH,GAAG,cAAcA,EAAE5E,MAAM,MAAM7C,EAAE,OAAOyH,EAAE5E,KAAK,WAAW4E,EAAE9H,MAAM2D,KAAK8yC,YAAYvoB,EAAEpmB,EAAE9H,YAAYkuB,EAAE,IAAI,GAAG,MAAM7tB,EAAE,CAAC,MAAMA,EAAE,IAAIuM,EAAE01B,OAAOpU,EAAEvqB,KAAK4yC,UAAU/rC,EAAEhF,KAAK,CAACtC,KAAK,UAAUlD,MAAMK,GAAG,MAAM,GAAGoH,EAAE,CAAC,GAAG,MAAMA,EAAE,OAAO+C,EAAEhF,KAAK,CAACtC,KAAK,YAAYlD,MAAMkuB,SAASA,EAAE,IAAI1jB,EAAEhF,KAAK,CAACtC,KAAK,UAAUlD,MAAMkuB,GAAG,MAAM,GAAGnmB,EAAEmuC,mBAAmBh8B,SAASgU,GAAGpmB,GAAG,aAAaA,EAAE5E,MAAM6E,EAAEkuC,UAAU/7B,SAASpS,EAAE9H,MAAMkuB,GAAGpmB,EAAE9H,OAAOkuB,EAAE1jB,EAAEhF,KAAK,CAACtC,KAAK,WAAWlD,MAAMkuB,SAAS,GAAGA,EAAE5gB,MAAMvF,EAAEihC,UAAUx+B,EAAEhF,KAAK,CAACtC,KAAK,WAAWlD,MAAMijC,WAAW/U,UAAU,QAAG,IAASvqB,KAAK4yC,SAAS/T,UAAUtU,GAAG1jB,EAAEhF,KAAK,CAACtC,KAAK,WAAWlD,MAAM2D,KAAK4yC,SAAS/T,UAAUtU,SAAS,CAAC,IAAIA,EAAE5gB,MAAMvF,EAAEuuC,SAAS,MAAM,IAAI70C,MAAM,mCAAmCysB,KAAK1jB,EAAEhF,KAAK,CAACtC,KAAK,YAAYlD,MAAMkuB,GAAG,CAACA,EAAE,EAAE,GAAG,IAAI,MAAMthB,KAAKvM,EAAEoH,EAAEmF,IAAInF,GAAGK,IAAIL,GAAE,GAAIymB,GAAGthB,EAAE3I,EAAE,MAAM2I,GAAGshB,GAAGthB,IAAI3I,GAAG,MAAM2I,KAAK3I,EAAEA,EAAEiqB,GAAGthB,EAAE9E,EAAE8E,IAAIshB,GAAGthB,EAAEA,KAAK7E,EAAEsuC,SAAS5uC,EAAEM,EAAEsuC,SAASzpC,GAAG,MAAMA,GAAG9E,MAAM7D,GAAG8D,EAAEmuC,mBAAmBh8B,SAAStN,IAAI9E,IAAIomB,EAAEthB,EAAE9E,KAAK,MAAM8E,EAAEshB,GAAGthB,EAAE9E,IAAIA,IAAI0C,EAAEA,EAAE9F,KAAI,CAAErE,EAAEuM,IAAI,aAAavM,EAAE6C,MAAM,MAAM7C,EAAEL,OAAO4M,GAAG,aAAapC,EAAEoC,EAAE,GAAG1J,KAAK7C,EAAE,CAAC6C,KAAK,WAAWlD,MAAM,OAAO,IAAImuB,GAAE,EAAG,IAAI,MAAM9tB,KAAKmK,EAAE,CAAC,GAAG,aAAanK,EAAE6C,KAAK,CAAC,GAAG6E,EAAEquC,gBAAgBl8B,SAAS7Z,EAAEL,OAAO,SAAS,IAAImuB,EAAE,MAAM,IAAI1sB,MAAM,oDAAoD,IAAIsG,EAAEkuC,UAAU/7B,SAAS7Z,EAAEL,OAAO,MAAM,IAAIyB,MAAM,wCAAwCpB,EAAEL,QAAQ,MAAM,GAAGmuB,EAAE,MAAM,IAAI1sB,MAAM,qCAAqC0sB,GAAGA,CAAC,CAAC,IAAIA,EAAE,MAAM,IAAI1sB,MAAM,8CAA8C,IAAI+I,EAAE1G,QAAQ,CAAC,YAAY,UAAU,YAAYoW,SAAS1P,EAAE,GAAGtH,QAAQS,KAAKstB,OAAO,CAAC/tB,KAAK,cAAcsH,EAAE,GAAGtH,KAAK,YAAY,QAAQlD,MAAMwK,EAAE,GAAGxK,QAAQ2D,KAAK6yC,OAAOhsC,EAAE9F,KAAKrE,IAAI,GAAG,aAAaA,EAAE6C,KAAK,OAAO6E,EAAEquC,gBAAgBl8B,SAAS7Z,EAAEL,OAAOK,EAAEA,EAAEL,MAAM,GAAG,cAAcK,EAAE6C,KAAK,OAAO7C,EAAEL,MAAM,GAAG2D,KAAK4yC,SAASD,UAAU3yC,KAAK4yC,SAASD,QAAQ/kB,KAAKlxB,EAAEL,OAAO,MAAM,IAAIyB,MAAM,sCAAsCpB,EAAEL,SAAS,OAAO2D,KAAK4yC,SAAShU,UAAU5+B,KAAK4yC,SAAShU,UAAUliC,EAAEL,OAAO+H,EAAEw6B,UAAUliC,EAAEL,MAAO,GAAE,CAAC,WAAAy2C,CAAYp2C,EAAEmK,GAAG,MAAM0jB,EAAEvqB,KAAK4yC,SAASlX,UAAU70B,GAAG,GAAG,mBAAmB0jB,EAAE,MAAM,IAAIzsB,MAAM,qCAAqC+I,KAAK,IAAIvG,EAAE,GAAG,GAAG5D,EAAE,CAAC,IAAIuM,EAAE,GAAGshB,EAAE,EAAEzmB,GAAE,EAAG,MAAMK,EAAE,KAAK,IAAI8E,EAAE,MAAM,IAAInL,MAAM,6BAA6B+I,4BAA4BnK,KAAK4D,EAAEuB,KAAKoH,GAAGA,EAAE,IAAI,IAAI,IAAIpC,EAAE,EAAEA,EAAEnK,EAAEyD,SAAS0G,EAAE,CAAC,MAAMvG,EAAE5D,EAAEmK,GAAG/C,GAAGmF,GAAG3I,EAAEA,IAAIwD,IAAIA,GAAE,IAAKxD,KAAK8D,EAAEsuC,WAAWnoB,GAAGthB,GAAG3I,EAAEwD,EAAEM,EAAEsuC,SAASpyC,IAAI,MAAMA,GAAGiqB,GAAGthB,GAAG3I,EAAE,MAAMA,IAAIiqB,EAAE,MAAMjqB,KAAKiqB,GAAGpmB,GAAG,CAACA,GAAG,CAAC,OAAO7D,EAAEA,EAAES,KAAKrE,GAAG,IAAIuM,EAAE01B,OAAOjiC,EAAEsD,KAAK4yC,YAAY,SAASl2C,GAAG,MAAMuM,EAAE,GAAG,IAAI,MAAM7E,KAAK9D,EAAE2I,EAAEpH,KAAKuC,EAAEq6B,SAAS/hC,IAAI,OAAO6tB,EAAEhuB,KAAKG,KAAKuM,EAAE,CAAC,CAAC,QAAAw1B,CAAS/hC,GAAG,MAAMuM,EAAEjJ,KAAK6yC,OAAOnvC,QAAQ,IAAI,IAAImD,EAAEoC,EAAE9I,OAAO,EAAE0G,GAAG,IAAIA,EAAE,CAAC,MAAM0jB,EAAEthB,EAAEpC,GAAG,GAAG0jB,GAAG,aAAaA,EAAEhrB,KAAK,CAAC,MAAMe,EAAE2I,EAAEpC,EAAE,GAAGoC,EAAE8pC,OAAOlsC,EAAE,EAAE,GAAG,MAAM/C,EAAEM,EAAEq6B,SAASn+B,EAAE5D,GAAGuM,EAAEpC,GAAGzC,EAAEkpB,OAAO/C,EAAEluB,MAAMyH,EAAE,CAAC,CAAC,OAAOM,EAAEouC,eAAeh0C,SAASqI,IAAI,IAAI,IAAI0jB,EAAE,EAAEA,EAAEthB,EAAE9I,OAAO,GAAG,GAAG0G,EAAE0P,SAAStN,EAAEshB,IAAI,CAAC,MAAM1jB,EAAEoC,EAAEshB,GAAGjqB,EAAE8D,EAAEq6B,SAASx1B,EAAEshB,EAAE,GAAG7tB,GAAGoH,EAAEM,EAAEq6B,SAASx1B,EAAEshB,EAAE,GAAG7tB,GAAGuM,EAAE8pC,OAAOxoB,EAAE,GAAG,MAAMpmB,EAAEC,EAAE4uC,UAAUnsC,EAAEvG,EAAEwD,GAAGmF,EAAEshB,EAAE,GAAG,IAAIpmB,EAAE,EAAEA,CAAC,MAAMomB,GAAG,CAAE,IAAGnmB,EAAEq6B,SAASx1B,EAAE,GAAGvM,EAAE,GAAGuM,EAAE01B,OAAO/iC,UAAUwI,EAAExB,SAAQ,EAAGwB,EAAEw6B,UAAU,SAASliC,GAAG,OAAO,SAASuM,GAAG,OAAOA,QAAG,IAASA,EAAEvM,GAAGuM,EAAEvM,GAAG,IAAI,CAAC,EAAE0H,EAAEq6B,SAAS,SAAS/hC,EAAEuM,GAAG,OAAO,OAAOvM,EAAE,KAAK,mBAAmBA,EAAEA,EAAEuM,GAAGvM,EAAE0H,EAAExB,QAAQlG,EAAE+hC,SAASx1B,GAAGvM,CAAC,EAAE0H,EAAEkpB,OAAO,SAAS5wB,EAAEuM,GAAG,GAAG,MAAMvM,EAAE,OAAOuM,EAAE,MAAM7E,GAAG6E,EAAE,OAAO,IAAI7E,EAAE,EAAEA,CAAC,EAAEA,EAAE4uC,UAAU,SAASt2C,EAAEuM,EAAEpC,GAAG,GAAG,OAAOnK,EAAE,OAAO0H,EAAE6uC,OAAOhqC,GAAGA,EAAEpC,EAAE,GAAG,iBAAiBoC,GAAG,iBAAiBpC,GAAG,GAAG,MAAMnK,EAAE,OAAOuM,EAAE7E,EAAE6uC,OAAOhqC,GAAGA,EAAE,KAAK7E,EAAE6uC,OAAOpsC,GAAGA,EAAE,SAAS,OAAOnK,GAAG,IAAI,IAAI,OAAOO,KAAK+oC,IAAI/8B,EAAEpC,GAAG,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,OAAOnK,GAAG,IAAI,IAAI,OAAOuM,EAAEpC,EAAE,IAAI,KAAK,OAAOoC,GAAGpC,EAAE,IAAI,IAAI,OAAOoC,EAAEpC,EAAE,IAAI,KAAK,OAAOoC,GAAGpC,EAAE,IAAI,KAAK,OAAOoC,IAAIpC,EAAE,IAAI,KAAK,OAAOoC,IAAIpC,EAAE,IAAI,KAAK,OAAOoC,GAAGpC,EAAE,IAAI,KAAK,OAAOoC,GAAGpC,EAAE,OAAO,IAAI,EAAEzC,EAAE6uC,OAAO,SAASv2C,GAAG,OAAO,MAAMA,CAAC,GAAG,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,KAAKA,IAAI,aAAaA,EAAEN,QAAQ2iC,KAAKwD,MAAM,wBAAuB,GAAIt5B,EAAE,CAAC,EAAE,SAAS7E,EAAEyC,GAAG,IAAI0jB,EAAEthB,EAAEpC,GAAG,QAAG,IAAS0jB,EAAE,OAAOA,EAAEnuB,QAAQ,IAAIkE,EAAE2I,EAAEpC,GAAG,CAACzK,QAAQ,CAAC,GAAG,OAAOM,EAAEmK,GAAGvG,EAAEA,EAAElE,QAAQgI,GAAG9D,EAAElE,OAAO,CAApH,CAAsH,MAAM,IAAIM,EAAEuM,CAAE,EAApqjJ9M,EAAOC,QAAQ6M,eCChF9M,EAAOC,QAAU,WACf,IAAI82C,EAAYC,SAASC,eACzB,IAAKF,EAAUG,WACb,OAAO,WAAa,EAKtB,IAHA,IAAItf,EAASof,SAASG,cAElBC,EAAS,GACJzvC,EAAI,EAAGA,EAAIovC,EAAUG,WAAYvvC,IACxCyvC,EAAO1xC,KAAKqxC,EAAUM,WAAW1vC,IAGnC,OAAQiwB,EAAO0f,QAAQC,eACrB,IAAK,QACL,IAAK,WACH3f,EAAO4f,OACP,MAEF,QACE5f,EAAS,KAKb,OADAmf,EAAUU,kBACH,WACc,UAAnBV,EAAU3zC,MACV2zC,EAAUU,kBAELV,EAAUG,YACbE,EAAO/0C,SAAQ,SAASq1C,GACtBX,EAAUY,SAASD,EACrB,IAGF9f,GACAA,EAAOggB,OACT,CACF,mBCtCA53C,EAAOC,QAAU,IAA0B,iHCI3C,MAAM43C,EAA2B,CAC/BC,kBAAmB,SACnBC,wBAAyB,gBACzBC,oBAAqB,WACrBC,yBAA0B,iBAC1BC,8BAA+B,sBAC/BC,0BAA2B,iBAC3BC,wBAAyB,eACzBC,wBAAyB,eACzBC,iBAAkB,QAClBC,kBAAmB,SACnBC,0BAA2B,iBAC3BC,sBAAuB,aACvBC,6BAA8B,oBAC9BC,yBAA0B,gBAC1BC,yBAA0B,gBAC1BC,4BAA6B,oBAGzBC,EAA6B,KAQnCjK,eAAekK,EACb9sC,EACA+sC,GAEA,MAAMC,EAASpB,EAAyB5rC,GAGlCitC,EAAkBJ,EAA2BK,OAASL,EAA2BK,QAAU,CAAC,EAElG,IAAKF,EACH,MAAM,IAAIt3C,MAAM,iCAAiCsK,KAInD,MAAMmtC,EAAWF,EAAejtC,GAIhC,GAAwB,mBAAbmtC,KAA6B,YAAaA,GACnD,OAAOA,EAGT,MAAMC,EAuCR,SAAsBJ,GACpB,MAAM72B,GAAS,UACTzP,EAAUyP,GAAUA,EAAOe,aAC3Bm2B,EAAW3mC,GAAWA,EAAQ4mC,YAAe,iCAEnD,OAAO,IAAI/G,IAAI,IAAI,QAAeyG,WAAiBK,GAAS15C,UAC9D,CA7Cc45C,CAAaP,GACnBQ,EAAS,KAAOzC,SAASjwB,cAAc,UAC7C0yB,EAAOC,IAAML,EACbI,EAAOE,YAAc,YACrBF,EAAOG,eAAiB,SAEpBZ,GACFS,EAAOj2B,aAAa,QAASw1B,GAG/B,MAAMa,EAAc,IAAI70C,SAAQ,CAACC,EAASC,KACxCu0C,EAAOK,iBAAiB,QAAQ,IAAM70C,MACtCw0C,EAAOK,iBAAiB,QAAS50C,EAAO,IAGpC60C,EAAgB,KAAO/C,SAAS+C,cAChCtuC,EAAS,KAAOurC,SAASgD,MAAQ,KAAOhD,SAAS9d,MAAS6gB,GAAiBA,EAAcE,cAE/F,IAAIxuC,EAGF,MAAM,IAAI9J,MAAM,uDAAuDsK,YAFvER,EAAOyuC,YAAYT,GAKrB,UACQI,CACR,CAAE,MAAOt5C,GACP,MAAM,IAAIoB,MAAM,mCAAmCsK,IACrD,CAEA,MAAMkuC,EAAgBjB,EAAejtC,GAErC,GAA6B,mBAAlBkuC,EACT,MAAM,IAAIx4C,MAAM,+BAA+BsK,KAGjD,OAAOkuC,CACT,gCCxFA,IAAIC,EAAkB,EAAQ,OAE1BC,EAA4B,CAC9B,aAAc,OACd,YAAa,MACb,QAAW,QA2Gbr6C,EAAOC,QAjGP,SAAcq6C,EAAM3nC,GAClB,IAAIsf,EACFzQ,EACA+4B,EACA7C,EACAX,EACAyD,EACAC,GAAU,EACP9nC,IACHA,EAAU,CAAC,GAEbsf,EAAQtf,EAAQsf,QAAS,EACzB,IAkDE,GAjDAsoB,EAAmBH,IAEnB1C,EAAQV,SAAS0D,cACjB3D,EAAYC,SAASC,gBAErBuD,EAAOxD,SAASjwB,cAAc,SACzB4zB,YAAcL,EAEnBE,EAAKI,WAAa,OAElBJ,EAAKK,MAAMC,IAAM,QAEjBN,EAAKK,MAAME,SAAW,QACtBP,EAAKK,MAAMG,IAAM,EACjBR,EAAKK,MAAMI,KAAO,mBAElBT,EAAKK,MAAMK,WAAa,MAExBV,EAAKK,MAAMM,iBAAmB,OAC9BX,EAAKK,MAAMO,cAAgB,OAC3BZ,EAAKK,MAAMQ,aAAe,OAC1Bb,EAAKK,MAAMS,WAAa,OACxBd,EAAKV,iBAAiB,QAAQ,SAASv5C,GAErC,GADAA,EAAEg7C,kBACE5oC,EAAQuK,OAEV,GADA3c,EAAEi7C,sBAC6B,IAApBj7C,EAAEk7C,cAA+B,CAC1CxpB,GAASypB,QAAQ9a,KAAK,iCACtB3O,GAASypB,QAAQ9a,KAAK,4BACtB+a,OAAOF,cAAcG,YACrB,IAAI1+B,EAASm9B,EAA0B1nC,EAAQuK,SAAWm9B,EAAmC,QAC7FsB,OAAOF,cAAcI,QAAQ3+B,EAAQo9B,EACvC,MACE/5C,EAAEk7C,cAAcG,YAChBr7C,EAAEk7C,cAAcI,QAAQlpC,EAAQuK,OAAQo9B,GAGxC3nC,EAAQmpC,SACVv7C,EAAEi7C,iBACF7oC,EAAQmpC,OAAOv7C,EAAEk7C,eAErB,IAEAzE,SAASgD,KAAKE,YAAYM,GAE1B9C,EAAMqE,mBAAmBvB,GACzBzD,EAAUY,SAASD,IAEFV,SAASgF,YAAY,QAEpC,MAAM,IAAIr6C,MAAM,iCAElB84C,GAAU,CACZ,CAAE,MAAOjxC,GACPyoB,GAASypB,QAAQjzC,MAAM,qCAAsCe,GAC7DyoB,GAASypB,QAAQ9a,KAAK,4BACtB,IACE+a,OAAOF,cAAcI,QAAQlpC,EAAQuK,QAAU,OAAQo9B,GACvD3nC,EAAQmpC,QAAUnpC,EAAQmpC,OAAOH,OAAOF,eACxChB,GAAU,CACZ,CAAE,MAAOjxC,GACPyoB,GAASypB,QAAQjzC,MAAM,uCAAwCe,GAC/DyoB,GAASypB,QAAQjzC,MAAM,0BACvB+Y,EAjFN,SAAgBA,GACd,IAAIy6B,GAAW,YAAYxqB,KAAKyqB,UAAUC,WAAa,IAAM,QAAU,KACvE,OAAO36B,EAAQsa,QAAQ,gBAAiBmgB,EAC1C,CA8EgB/+B,CAAO,YAAavK,EAAUA,EAAQ6O,QAnFjC,oCAoFfm6B,OAAOS,OAAO56B,EAAS84B,EACzB,CACF,CAAE,QACIvD,IACkC,mBAAzBA,EAAUsF,YACnBtF,EAAUsF,YAAY3E,GAEtBX,EAAUU,mBAIV+C,GACFxD,SAASgD,KAAKsC,YAAY9B,GAE5BD,GACF,CAEA,OAAOE,CACT,mBChHAz6C,EAAOC,QAAU,IAA0B,qGCEpC,SAASs8C,EAAsBtpC,GACpC,GAAIjR,EAAAA,IAAIw6C,MAAMvpC,GACZ,OAAQA,EAAS2D,MAAM,CAAC,YAAa,gBAAiB,eACpD,IAAK,mBACH,OAAO3D,EAAS2D,MAAM,CACpB,YACA,mBACA,uBACA,SAEJ,IAAK,MACH,MAAO,mBAAmB3D,EAAS2D,MAAM,CACvC,YACA,MACA,WAEJ,QACE,MAAO,6BAEN,KAAI3D,EAWT,MAAO,6BAVCA,EAAAA,EAAR,OAAQA,SAAmB,QAAnBA,EAAAA,EAAUwpC,iBAAVxpC,IAAAA,GAAkC,QAAlCA,EAAAA,EAAqBypC,qBAArBzpC,IAAAA,OAAAA,EAAAA,EAAoC0pC,WAC1C,IAAK,uBACI1pC,EAAAA,EAAAA,EAAP,OAAOA,SAAmB,QAAnBA,EAAAA,EAAUwpC,iBAAVxpC,IAAAA,GAAqC,QAArCA,EAAAA,EAAqB2pC,wBAArB3pC,IAAAA,GAA2D,QAA3DA,EAAAA,EAAuC4pC,4BAAvC5pC,IAAAA,OAAAA,EAAAA,EACHhH,KACN,IAAK,UACuBgH,EAAAA,EAA1B,MAAO,mBAAmBA,SAAmB,QAAnBA,EAAAA,EAAUwpC,iBAAVxpC,IAAAA,GAAwB,QAAxBA,EAAAA,EAAqBW,WAArBX,IAAAA,OAAAA,EAAAA,EAA0BhH,OACtD,QACE,MAAO,yBAIb,CACF,aCtBAjM,EAAOC,QAJP,SAAkBumB,EAAOjkB,GACvB,OAAOikB,EAAMlN,IAAI/W,EACnB,qHCPEvC,EAAOC,QAAU,EAAjB,uECcF,QANA,SAAmB6F,EAAOg3C,EAAOjsC,GAC/B,IAAI7M,EAAS8B,EAAM9B,OAEnB,OADA6M,OAAc9Q,IAAR8Q,EAAoB7M,EAAS6M,GAC1BisC,GAASjsC,GAAO7M,EAAU8B,GAAQ,OAAUA,EAAOg3C,EAAOjsC,EACrE,aCEA7Q,EAAOC,QAVP,SAAoB2E,GAClB,IAAI0S,GAAS,EACT9W,EAAS2R,MAAMvN,EAAIk0B,MAKvB,OAHAl0B,EAAIvC,SAAQ,SAASnC,EAAOqC,GAC1B/B,IAAS8W,GAAS,CAAC/U,EAAKrC,EAC1B,IACOM,CACT,gCCkBA,SAASu8C,EAAYC,GACnB,MAAMh6C,EAAM,CAAC,EACb,IAAIsU,EAAQ,EAEZ,KAAOA,EAAQ0lC,EAAIh5C,QAAQ,CACzB,MAAMi5C,EAAQD,EAAIhb,QAAQ,IAAK1qB,GAG/B,IAAe,IAAX2lC,EACF,MAGF,IAAIC,EAASF,EAAIhb,QAAQ,IAAK1qB,GAE9B,IAAgB,IAAZ4lC,EACFA,EAASF,EAAIh5C,YACR,GAAIk5C,EAASD,EAAO,CAEzB3lC,EAAQ0lC,EAAIG,YAAY,IAAKF,EAAQ,GAAK,EAC1C,QACF,CAEA,MAAM16C,EAAMy6C,EAAIz1C,MAAM+P,EAAO2lC,GAAOlhB,OAGpC,QAAIh8B,IAAciD,EAAIT,GAAM,CAC1B,IAAI66C,EAAMJ,EAAIz1C,MAAM01C,EAAQ,EAAGC,GAAQnhB,OAGb,KAAtBqhB,EAAIjM,WAAW,KACjBiM,EAAMA,EAAI71C,MAAM,GAAI,IAGtB,IACEvE,EAAIT,IAA6B,IAAtB66C,EAAIpb,QAAQ,KAAcqb,mBAAmBD,GAAOA,CACjE,CAAE,MAAO78C,GACPyC,EAAIT,GAAO66C,CACb,CACF,CAEA9lC,EAAQ4lC,EAAS,CACnB,CAEA,OAAOl6C,CACT,gDC5EA,IAAIs6C,EAAa,EAAQ,QAEzBt9C,EAAOC,QAAUq9C,EAAW,WAAY,oCCHxCt9C,EAAOC,QAAU,IAA0B,0LCE3C,MAAMs9C,EAAe5lC,IACnB,MAAM,aACJ6lC,EAAY,eACZC,EAAc,iBACdC,EAAgB,cAChBC,GACEhmC,EACJ,MAAO,CACLojC,SAAU,WACV3b,QAAS,QACTwe,UAAWJ,EACXK,QAASF,EACTG,MAAOnmC,EAAMsT,UACb1B,WAAY,SACZT,SAAU20B,EACVM,WAAYL,EACZM,UAAW,aACZ,EAuHH,EArHuBrmC,IACrB,MAAM,OACJsmC,EAAM,aACNC,GACEvmC,EACEwmC,EAAgB,GAAGD,SACnBE,EAAqB,IAAIH,mBAAwBA,0BACjDI,EAAsB,IAAIJ,oBAAyBA,2BACnDK,EAAqB,IAAIL,mBAAwBA,0BACjDM,EAAuB,GAAGL,wBAChC,MAAO,CAAC,CACN,CAAC,GAAGA,cAA0B1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACpFojC,SAAU,WACVC,KAAM,KACNwD,OAAQ7mC,EAAM8mC,YACdT,UAAW,aACXH,QAASlmC,EAAM+mC,WACfC,SAAU,SACV71B,SAAUnR,EAAMmR,SAIhB81B,YAAa,UACbC,gBAAiBlnC,EAAMmnC,gBACvBC,aAAcpnC,EAAMqnC,eACpBC,QAAS,OACTC,UAAWvnC,EAAMwnC,mBACjB,CAAC,eACKf,IAAqBG,2BACrBF,IAAsBE,yBACtB,CACJa,cAAe,MAEjB,CAAC,eACKhB,IAAqBG,wBACrBF,IAAsBE,wBACtBH,IAAqBG,yBACrBF,IAAsBE,uBACtB,CACJa,cAAe,MAEjB,CAAC,GAAGd,IAAqBC,eAAmC,CAC1Da,cAAe,MAEjB,CAAC,eACKd,IAAqBC,wBACrBD,IAAqBC,uBACrB,CACJa,cAAe,MAEjB,WAAY,CACVhgB,QAAS,QAEX,CAAC+e,GAAgB3+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG0kC,EAAa5lC,IAAS,CACrE0nC,OAAQ,UACRC,WAAY,cAAc3nC,EAAM4nC,0BAChCR,aAAcpnC,EAAM6nC,eAEpB,UAAW,CACT1B,MAAOnmC,EAAM8nC,qBACb32B,SAAUnR,EAAM+nC,WAChBL,OAAQ,WAGV,WAAY,CACVjgB,QAAS,OACT,YAAa5/B,OAAOqZ,OAAO,CACzB8mC,KAAM,QACL,MACH,UAAW,CACTA,KAAM,OACNvgB,QAAS,OACTwgB,WAAY,UAEd,CAAC,gBAAgBzB,sBAAmC,CAClDU,gBAAiBlnC,EAAMkoC,gBAEzB,CAAC,kBAAkB1B,sBAAmC,CACpDL,MAAOnmC,EAAMmoC,oBACbv2B,WAAY5R,EAAMooC,yBAClBlB,gBAAiBlnC,EAAMqoC,iBACvB,CAAC,GAAG7B,kBAA+B,CACjCL,MAAOnmC,EAAMsoC,cAEf,CAAC,WAAW9B,yBAAqCA,uBAAoC,CACnF+B,qBAAsB,EACtBC,mBAAoB,EACpB,CAAC,OAAOhC,yBAAqCA,sBAAmC,CAC9EiC,uBAAwB,EACxBC,qBAAsB,KAI5B,aAAc,CACZ,CAAC,IAAIlC,qBAAkC,CACrCU,gBAAiBlnC,EAAM2oC,0BAEzBxC,MAAOnmC,EAAM4oC,kBACblB,OAAQ,eAEV,YAAa,CACXmB,mBAAoB7oC,EAAM8oC,KAAK9oC,EAAM+oC,0BAA0BC,IAAI,GAAGxoB,UAG1E,UAAW34B,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG0kC,EAAa5lC,IAAS,CAC/DmmC,MAAOnmC,EAAM4oC,sBAIjB,QAAS,CACPnU,UAAW,WAKjB,QAAgBz0B,EAAO,aAAa,QAAgBA,EAAO,eAAe,QAAeA,EAAO,YAAY,QAAeA,EAAO,aAAa,8BCrIjJ,SAASipC,EAAajpC,EAAOkpC,GAC3B,MAAM,aACJ3C,EAAY,2BACZ4C,EAA0B,aAC1B/B,EAAY,aACZgC,GACEppC,EACEqpC,EAA4BrpC,EAAM8oC,KAAK9oC,EAAMuU,eAAe+0B,IAAItpC,EAAM8oC,KAAK9oC,EAAM6S,WAAWm2B,IAAI,IAAIxoB,QACpG+oB,EAA+BvpC,EAAM8oC,KAAKK,GAA4BhoC,IAAIioC,GAAc5oB,QACxFgpB,EAAYN,EAAS,GAAG3C,KAAgB2C,IAAW,GACzD,MAAO,CACL,CAAC,GAAG3C,WAAsBiD,KAAc,CACtCr4B,SAAUnR,EAAMmR,SAChBs4B,OAAQzpC,EAAMuU,cAEd,CAAC,GAAGgyB,cAA0B1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,GAAO,IAAQ,CAC1FynB,QAAS,OACT2f,eACA,CAAC,GAAGb,sBAAkC,CACpCnD,SAAU,WACVC,IAAK,EACLqG,iBAAkBP,EAClBQ,gBAAgB,QAAKJ,GACrBK,OAAQ,EACR,UAAW,CACTC,MAAO,OACPC,iBAAkB,cAGtB,CAAC,eACGvD,gCACAA,qCACA,CACFL,QAAS,EACTE,YAAY,QAAKiD,GACjB1B,WAAY,OAAO3nC,EAAM4nC,oCACzBmC,UAAW,UAEb,CAAC,GAAGxD,2BAAuC,CACzCoB,WAAY,OACZqC,cAAe,QAGjB,CAAC,CAAC,UACF,GAAGzD,+BACH,GAAGA,uCAAkDh9C,KAAK,MAAO,CAC/Dk+B,QAAS,eACToiB,MAAO,EACPI,WAAY,SACZC,QAAS,YAGb,CAAC,cACI3D,gBAA2BA,+BAC3BA,gBAA2BA,mCAC5B,CACF4D,iBAAkBnqC,EAAMoqC,2BAG1B,CAAC,IAAI7D,UAAqBA,oBAAgC,CACxDJ,MAAOnmC,EAAMqqC,sBAKf,CAAC,SAAS9D,sBAAkC,CAC1C,CAAC,GAAGA,cAA0B,CAC5BsD,MAAO,OACPJ,OAAQ,OACRvD,QAAS,MAAK,QAAKiD,KACnB,CAAC,GAAG5C,4BAAwC,CAC1CkD,OAAQJ,GAEV,UAAW,CACTjD,YAAY,QAAKiD,MAIvB,CAAC,IAAI9C,qBAAiC,CACpC,CAAC,GAAGA,cAA0B,CAC5B,UAAW,CACT9e,QAAS,QAEX,CAAC,GAAG8e,sBAAkC,CACpCnD,SAAU,SACVyG,MAAO,QAET,CAAC,GAAGtD,2BAAuC,CACzCnD,SAAU,WACVsG,iBAAkB,EAClBC,eAAgB,EAChBzD,QAAS,MAAK,QAAKiD,KACnB,UAAW,CACT1hB,QAAS,YAOvB,CACe,SAAS,EAAeznB,GACrC,MAAM,aACJumC,GACEvmC,EACEsqC,EAA2BtqC,EAAM8oC,KAAK9oC,EAAMuqC,4BAA4BjB,IAAItpC,EAAM6S,WAAW2N,QACnG,MAAO,CAACyoB,EAAajpC,GAGrBipC,GAAa,QAAWjpC,EAAO,CAC7BuU,cAAevU,EAAMyU,gBACrB2yB,aAAcpnC,EAAM6nC,iBAClB,MAEJ,CACE,CAAC,GAAGtB,WAAsBA,QAAoB,CAC5C,CAAC,SAASA,sBAAkC,CAC1C,CAAC,GAAGA,sBAAkC,CACpCmD,iBAAkBY,EAClBX,eAAgBW,GAElB,CAAC,GAAG/D,cAA0B,CAC5BL,QAAS,MAAK,QAAKoE,MAGrB,CAAC,IAAI/D,gBAA2BA,sBAAkC,CAChEoD,eAAgB3pC,EAAM8oC,KAAKwB,GAA0BnpC,IAAInB,EAAM8oC,KAAK9oC,EAAMmR,UAAU63B,IAAI,MAAMxoB,SAEhG,CAAC,kBACM+lB,gBAA2BA,mCAC3BA,gBAA2BA,uCAC5B,CACJ4D,iBAAkBnqC,EAAM8oC,KAAK9oC,EAAMmR,UAAU63B,IAAI,KAAKxoB,YAO9DyoB,GAAa,QAAWjpC,EAAO,CAC7BuU,cAAevU,EAAMwqC,mBACrBr5B,SAAUnR,EAAMsR,WAChB81B,aAAcpnC,EAAMqnC,iBAClB,MACN,CCnJO,MCIDoD,EAAuB,CAACzqC,EAAOhF,KACnC,MAAM,aACJurC,EAAY,OACZD,EAAM,oBACNx0B,GACE9R,EACJ,MAAO,CACL,CAAC,SAASumC,sBAAiCA,cAA0B,CACnEmE,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,YAAY3vC,EAAQ4vC,cAC9DC,WAAY7qC,EAAM8qC,YAEpB,CAAC,SAASvE,mBAA8BA,0BAAqCD,8BAAoC,CAC/G,CAAC,WAAWC,cAA0B,CACpCqE,YAAa5vC,EAAQ+vC,kBAEvB,CAAC,GAAGxE,cAAyBA,cAA0B,CACrDqE,YAAa5vC,EAAQgwC,kBACrBzD,UAAW,UAAS,QAAKz1B,MAAwB9W,EAAQiwC,qBACzD3D,QAAS,IAGd,EAEG4D,EAAyB,CAAClrC,EAAOhF,KAAY,CACjD,CAAC,IAAIgF,EAAMumC,uBAAuBvrC,EAAQ1C,UAAWzQ,OAAOqZ,OAAO,CAAC,EAAGupC,EAAqBzqC,EAAOhF,MAE/FmwC,EAAmBnrC,IAAS,CAChC,aAAcnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGupC,EAAqBzqC,EAAO,CACpG4qC,YAAa5qC,EAAMuS,YACnBw4B,iBAAkB/qC,EAAMorC,iBACxBJ,kBAAmBhrC,EAAMgrC,kBACzBC,mBAAoBjrC,EAAMirC,sBACvBC,EAAuBlrC,EAAO,CACjC1H,OAAQ,QACRsyC,YAAa5qC,EAAMqrC,WACnBN,iBAAkB/qC,EAAMsrC,gBACxBN,kBAAmBhrC,EAAMqrC,WACzBJ,mBAAoBjrC,EAAMmS,qBACvB+4B,EAAuBlrC,EAAO,CACjC1H,OAAQ,UACRsyC,YAAa5qC,EAAMurC,aACnBR,iBAAkB/qC,EAAMwrC,kBACxBR,kBAAmBhrC,EAAMurC,aACzBN,mBAAoBjrC,EAAMyrC,uBACvB,CACH,CAAC,IAAIzrC,EAAMumC,yBAA0B,CACnC,CAAC,SAASvmC,EAAMumC,iCAAiCvmC,EAAMumC,yBAA0B,CAC/EsE,WAAY7qC,EAAM2oC,yBAClBxC,MAAOnmC,EAAM4oC,oBAGjB,CAAC,IAAI5oC,EAAMumC,yBAAyBvmC,EAAMumC,+BAAgC,CACxEsE,WAAY7qC,EAAM0rC,eAClBhB,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,YAAY3qC,EAAM2rC,+BAO5DC,EAAqB,CAAC5rC,EAAOhF,KACjC,MAAM,aACJurC,EAAY,OACZD,GACEtmC,EACJ,MAAO,CACL,CAAC,SAASumC,sBAAiCA,cAA0B,CACnEsE,WAAY7vC,EAAQ6wC,GACpBnB,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,uBAC1CxE,MAAOnrC,EAAQmrC,OAEjB,CAAC,SAASI,mBAA8BA,0BAAqCD,8BAAoC,CAC/G,CAAC,WAAWC,cAA0B,CACpCsE,WAAY7vC,EAAQ8wC,SAEtB,CAAC,GAAGvF,cAAyBA,cAA0B,CACrDsE,WAAY7qC,EAAM8qC,WAClBF,YAAa5vC,EAAQgwC,kBACrB1D,QAAS,IAGd,EAEGyE,EAAuB,CAAC/rC,EAAOhF,KAAY,CAC/C,CAAC,IAAIgF,EAAMumC,uBAAuBvrC,EAAQ1C,UAAWzQ,OAAOqZ,OAAO,CAAC,EAAG0qC,EAAmB5rC,EAAOhF,MAE7FgxC,EAAiBhsC,IAAS,CAC9B,WAAYnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG0qC,EAAmB5rC,EAAO,CAChG6rC,GAAI7rC,EAAM0T,kBACVo4B,QAAS9rC,EAAMisC,mBACfjB,kBAAmBhrC,EAAMgrC,kBACzB7E,MAAOnmC,EAAMsT,aACVy4B,EAAqB/rC,EAAO,CAC/B1H,OAAQ,QACRuzC,GAAI7rC,EAAMksC,aACVJ,QAAS9rC,EAAMmsC,kBACfnB,kBAAmBhrC,EAAMqrC,WACzBlF,MAAOnmC,EAAMqrC,cACVU,EAAqB/rC,EAAO,CAC/B1H,OAAQ,UACRuzC,GAAI7rC,EAAMosC,eACVN,QAAS9rC,EAAMqsC,oBACfrB,kBAAmBhrC,EAAMurC,aACzBpF,MAAOnmC,EAAMurC,gBACV,CACH,CAAC,IAAIvrC,EAAMumC,yBAA0B,CACnC,CAAC,SAASvmC,EAAMumC,iCAAiCvmC,EAAMumC,yBAA0B,CAC/EqE,YAAa5qC,EAAMuS,YACnBs4B,WAAY7qC,EAAM2oC,yBAClBxC,MAAOnmC,EAAM4oC,oBAGjB,CAAC,IAAI5oC,EAAMumC,yBAAyBvmC,EAAMumC,+BAAgC,CACxEsE,WAAY7qC,EAAMyS,iBAClBi4B,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,YAAY3qC,EAAMssC,kBAO5DC,EAAqBvsC,IAAS,CAClC,eAAgB,CACd,CAAC,GAAGA,EAAMumC,yBAA0B,CAClCsE,WAAY,cACZD,YAAa,eAEf,CAAC,IAAI5qC,EAAMumC,yBAA0B,CACnC,CAAC,SAASvmC,EAAMumC,iCAAiCvmC,EAAMumC,yBAA0B,CAC/EJ,MAAOnmC,EAAM4oC,oBAGjB,CAAC,IAAI5oC,EAAMumC,yBAAyBvmC,EAAMumC,+BAAgC,CACxEsE,WAAY7qC,EAAM0rC,eAClBhB,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,YAAY3qC,EAAM2rC,2BAG9D,CAAC,IAAI3rC,EAAMumC,6BAA8B,CACvC,CAAC,GAAGvmC,EAAMumC,+BAAgC,CACxCJ,MAAOnmC,EAAMqrC,aAGjB,CAAC,IAAIrrC,EAAMumC,+BAAgC,CACzC,CAAC,GAAGvmC,EAAMumC,+BAAgC,CACxCJ,MAAOnmC,EAAMurC,kBAQrB,EAHyBvrC,IAAS,CAChC,CAACA,EAAMumC,cAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGiqC,EAAiBnrC,IAASgsC,EAAehsC,IAASusC,EAAmBvsC,MCjJrIwsC,EAAmBxsC,IACvB,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACLojC,SAAU,WACVuE,WAAY,OAAO3nC,EAAMysC,qBAAqBzsC,EAAM0sC,kBACpDr+C,MAAO,CACLq5C,OAAQ,WAEV,CAAC,GAAGnB,kBAA8B,CAChCmB,OAAQ,OACRr5C,MAAO,CACLq5C,OAAQ,OACRvB,MAAO,UACPsD,OAAQ,SAGZ,CAAC,GAAGlD,eAA2B,CAC7BmB,OAAQ,cACRr5C,MAAO,CACLq5C,OAAQ,gBAGb,EAIGiF,EAAmC3sC,IACvC,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAAC,GAAGumC,4BAAwC,CAC1CqG,OAAQ,EACR1G,QAAS,EACT2E,WAAY,cACZH,OAAQ,OACRpD,QAAS,OACTuF,WAAY,OACZC,WAAY,UACZ,kCAAmC,CACjCrlB,QAAS,OACT,qBAAsB,SAG3B,EAGGslB,EAAe/sC,IACnB,MAAM,OACJsmC,EAAM,aACNC,EAAY,2BACZ4C,EAA0B,QAC1B6D,GACEhtC,EACJ,MAAO,CACL,CAACumC,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACtEojC,SAAU,WACV3b,QAAS,eACTigB,OAAQ,UACR,CAAC,SAASnB,sBAAiCA,cAA0B1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGsrC,EAAiBxsC,IAAS2sC,EAAiC3sC,IAEhK,CAAC,GAAGumC,oBAAgC1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC9D8mC,KAAM,EACNp2B,WAAY,SACZwxB,SAAU,WACVO,WAAY,QACX,MAAe,CAEhB,CAAC,KAAK2C,gBAAsB,CAC1B7e,QAAS,YAIb,CAAC,GAAG8e,2BAAuC1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG,MAAe,CACxF8mC,KAAM,EACN7B,MAAOnmC,EAAMqqC,qBACbL,cAAe,SAGjB,CAAC,GAAGzD,WAAuB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,WAAc,CACvEkiC,SAAU,WACVC,IAAK,MACLqG,iBAAkB,OAClBC,eAAgBR,EAChBM,OAAQzpC,EAAMopC,aACd6D,UAAWjtC,EAAM8oC,KAAK9oC,EAAMopC,cAAcJ,KAAK,GAAGkE,IAAI,GAAG1sB,QACzD2lB,MAAOnmC,EAAMmtC,oBACbh8B,SAAUnR,EAAMopC,aAChBhD,WAAY,EACZgH,UAAW,SACXpD,cAAe,OACfviB,QAAS,OACTwgB,WAAY,SACZN,WAAY,WAAW3nC,EAAM4nC,0BAC7B,CAACoF,GAAU,CACTK,cAAe,MACf1F,WAAY,aAAa3nC,EAAM4nC,qBAC/B,QAAS,CACPyF,cAAe,OAEjB,CAAC,SAAS9G,aAAyB,CACjCyD,cAAe,SAGnB,CAAC,GAAGzD,gBAA4B,CAC9BmB,OAAQ,eAEV,uBAAwB,CACtB4F,gBAAiB,KAIrB,CAAC,GAAG/G,WAAuB,CACzBnD,SAAU,WACVC,IAAK,MACLqG,iBAAkB,OAClBC,eAAgBR,EAChBtC,OAAQ,EACRpf,QAAS,eACToiB,MAAO7pC,EAAMopC,aACbK,OAAQzpC,EAAMopC,aACd6D,UAAWjtC,EAAM8oC,KAAK9oC,EAAMopC,cAAcJ,KAAK,GAAGkE,IAAI,GAAG1sB,QACzD2lB,MAAOnmC,EAAMmtC,oBACbh8B,SAAUnR,EAAMopC,aAChBmE,UAAW,SACXnH,WAAY,EACZgH,UAAW,SACXI,cAAe,OACf9F,OAAQ,UACR+F,QAAS,EACT9F,WAAY,SAAS3nC,EAAMysC,mCAAmCzsC,EAAM4nC,0BACpE8F,cAAe,OACf,WAAY,CACVjmB,QAAS,SAEX,UAAW,CACT0e,MAAOnmC,EAAM2tC,oBAGjB,CAAC,WAAWpH,WAAuB,CACjCkH,QAAS,EACT5C,WAAY7qC,EAAM4tC,YAClBxG,aAAc,SAIlB,CAAC,GAAGb,kBAA8B,CAChC,CAAC,GAAGA,WAAuB,CACzBoD,eAAgB3pC,EAAM8oC,KAAKK,GAA4BhoC,IAAInB,EAAMmR,UAAUhQ,IAAInB,EAAM6tC,WAAWrtB,UAGrG,EAGGstB,EAAiB9tC,IACrB,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CAAC,CACN,CAACumC,GAAe,CAEd,CAAC,IAAIA,kBAA8B,CACjCsD,MAAO,UAQbkD,EAAa/sC,GAEb,EAAeA,IAEf,QAAiBA,GAEjB,EAAiBA,GAIjB,CACE,CAAC,GAAGumC,SAAqB,CACvB9R,UAAW,SAMf,OAAoBz0B,EAAO,CACzB+tC,YAAa,GAAGxH,aAChByH,WAAY,GAAGzH,cACd,EAGL,GAAe,QAAc,UAAU,CAACvmC,EAAO3Q,KAC7C,IAAI,cACF4+C,GACE5+C,EACJ,MAAM6+C,GAAc,QAAWluC,EAAO,CACpCiuC,gBACA9E,2BAA4BnpC,EAAM8oC,KAAK9oC,EAAMmuC,WAAW7E,IAAI,GAAG9oB,QAC/D4tB,yBAA0BpuC,EAAMquC,mBAChCC,aAActuC,EAAMuU,gBAEtB,MAAO,CAACu5B,EAAeI,GAAc,EAAiBA,GAAa,IFvNhCluC,IACnC,MAAM,SACJmR,EAAQ,WACRi1B,EAAU,UACVvzB,EAAS,cACT0B,EAAa,gBACbE,EAAe,gBACfE,EAAe,WACfoyB,EAAU,yBACVgC,EAAwB,gBACxBwF,EAAe,UACfj7B,EAAS,iBACTk7B,EAAgB,oBAChBC,EAAmB,mBACnBC,EAAkB,iBAClBj8B,EAAgB,mBAChBw5B,EAAkB,yBAClBtD,EAAwB,kBACxBC,EAAiB,kBACjBz1B,EAAiB,aACjBm1B,EAAY,eACZr2B,GACEjS,EAIE2uC,EAA6B,EAAb5H,EAChB6H,EAA2B,EAAZ/7B,EACfw7B,EAAqBllD,KAAK6+B,IAAIzT,EAAgBo6B,EAAep6B,EAAgBq6B,GAC7EC,EAAuB1lD,KAAK6+B,IAAIvT,EAAkBk6B,EAAel6B,EAAkBm6B,GACnFE,EAAuB3lD,KAAK6+B,IAAIrT,EAAkBg6B,EAAeh6B,EAAkBi6B,GAGzF,MAAO,CACLG,2BAFiC5lD,KAAK6lD,MAAMjI,EAAa,GAGzDD,YAAayH,EAAkB,GAC/BpG,oBAAqB70B,EACrB80B,yBAA0BoG,EAC1BnG,iBAAkBoG,EAClBvG,eAAgBwG,EAChB1I,cAAe,IAAIzxB,EAAgBpD,EAAWi1B,GAAc,OAAO2C,MACnEjD,eAAgB30B,EAChB40B,iBAAkBK,EAClBP,aAActxB,EACdu2B,WAAYr4B,EACZw8B,QAASx8B,EACT+3B,mBAAoB71B,EACpB+2B,eAAgBO,EAChBN,wBAAyB,cACzB0C,qBACAQ,uBACAC,uBACAI,2BAA4BvG,EAC5BwG,0BAA2BvG,EAC3BwG,gCAAiC,cACjChF,0BAA2BjhD,KAAKkmD,KAAsB,KAAjBrvC,EAAMmR,UAC3Ci6B,iBAAkBj4B,EAClB63B,kBAAmB1C,EACnB2C,mBAAoBh5B,EACrB,GE6JuB,CACxBq9B,SAAU,CACRvJ,kBAAkB,EAClBqC,0BAA0B,6BClNtB,SAAWjjC,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,gGAAgG/b,MACpG,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,2DAA2Drc,MACjE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,iBACTE,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,WACN,OACS,IADD7a,KAAKm/B,MAEE,6BAEA,4BAEnB,EACArkB,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUnU,GACd,OAAQ,YAAY+mB,KAAK/mB,GAAK,MAAQ,MAAQ,IAAMA,CACxD,EACAoU,KAAM,QACNpU,EAAG,iBACHqU,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApEyCC,CAAQ,EAAQ,0BCN1D,IAAIgnC,EAAe,EAAQ,QAc3BlnD,EAAOC,QALP,WACE4D,KAAKwc,SAAW6mC,EAAeA,EAAa,MAAQ,CAAC,EACrDrjD,KAAKi1B,KAAO,CACd,0HCaA,MAAMquB,EAAgB,CAAC,KAAM,KAQvBC,EAAQ,CAACC,EAAUptC,EAAO,CAAC,MAC/B,QAAc,KACZ,MAAMqtC,GAAoB,SACpBC,GAAS,OAAW,OAC1B,IAAI7jB,EAEJ,MAmBMrpB,GAAK,OAAQ,SAnBImkB,IACrB,EAAWn8B,SAAQmyB,IACE,2BAAfA,EAAMvoB,OACRoO,EAAGmtC,aAGChzB,EAAMzR,UAAYukC,EAAkBG,kBAKtCF,EAAOrnD,MAAQY,KAAKmrB,IAAIuI,EAAMzR,WAAY,SAAsB,GAChEwkC,EAAO/oB,QAAQ94B,KAAK8uB,GACpBkP,GAAO,IAEX,GACA,IAKArpB,IACFqpB,GAAS,OAAa2jB,EAAUE,EAAQJ,EAAeltC,EAAKytC,kBAC9D,GACA,gHC/DJ,SAASC,EAAgBxjD,EAAGiqB,GAC1B,KAAMjqB,aAAaiqB,GAAI,MAAM,IAAIw5B,UAAU,oCAC7C,qKCFO,MAAMC,EAAqB,qCACrBC,EAAS,yBACTC,EAAoB,oCACpBC,EAAuB,IACvBC,EAA+B,CAC1CC,QAAS,EACTC,QAAS,GACT7pC,MAAO,KACP8pC,KAAM,MACNC,MAAO,OACPrrC,OAAQ,OACRsrC,MAAO,UAEIC,EAA+B,CAC1C,EAAG,UACH,GAAI,UACJ,KAAM,QACN,MAAO,OACP,OAAQ,QACR,OAAS,SACT,SAAU,SAECC,EAA6B,CAAC,EAAG,IACjCC,EAAwC,CACnD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEjDC,EAAmB,IACnBC,EAA+B,EAC/BC,EAA2B,GAC3BC,EAAiB,CAC5BC,OAAQ,EACRC,KAAM,EACNC,IAAK,EACLC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACPC,YAAa,EACbC,aAAc,EACdC,OAAQ,2ECpCV,MAAMC,EAAqB,KAAM,CAC/BnI,OAAQ,EACRgE,QAAS,IAELoE,EAAgB1lC,IACpB,MAAM,aACJ2lC,GACE3lC,EACJ,MAAO,CACLs9B,OAAQqI,EACRrE,QAAS,EACV,EAEGsE,EAAmB5lC,IAAQ,CAC/Bs9B,OAAQt9B,EAAOA,EAAK6lC,aAAe,IAE/BC,EAAwB,CAAChlB,EAAGilB,KAA6E,KAAlEA,aAAqC,EAASA,EAAMC,WAA6C,WAAvBD,EAAME,aAkBvHC,EAAoB,CAACpE,EAAeqE,EAAQC,SACzBnqD,IAAnBmqD,EACKA,EAEF,GAAGtE,KAAiBqE,IAG7B,EAxB2B,WAEzB,MAAO,CACLE,WAAY,GAFAvoD,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,uBAGhFwoD,cAAeb,EACfc,aAAcd,EACde,eAAgBd,EAChBe,cAAef,EACfgB,aAAcd,EACde,cAAelB,EACfmB,YAAad,EACbe,WAAYf,EACZgB,WAAYhB,EACZiB,eAAgB,IAEpB,4HCrBA,MAAMC,EAKH,WAAAl8B,CAAcm8B,GAAUlnD,KAAKknD,QAAUA,EACtClnD,KAAKmnD,SAAW,IAAIhpD,IACpB6B,KAAKonD,UAAYC,aAAY,IAAMrnD,KAAK8B,SAAS,KACnD,CAKC,GAAAmT,CACCqyC,EACAC,EACAlrD,EACAmrD,EAAkB,OAClBC,EAAkB,CAAC,EACnBC,GAAsB,WAEtB,MAAMhlB,EAAYzlC,KAAK6lD,MAAM4E,GACvBt/C,GAAO,QAAkBm/C,GACzBpnB,GAAO,QAAasnB,GACpB74B,GAAO,QAAa44B,GAEpBG,GAAY,QAAaL,EAAYl/C,EAAMwmB,EAAMuR,GAEvD,IAAIynB,EAAa5nD,KAAKmnD,SAAS91C,IAAIs2C,GAEnC,MAAME,EAAiBD,GAAcN,IAAe,KAAkBM,EAAWlE,OAAOoE,OAAS,EAE7FF,GACFA,EAAWlE,OAAOzuC,IAAI5Y,GAElBurD,EAAWllB,UAAYA,IACzBklB,EAAWllB,UAAYA,KAGzBklB,EAAa,CAEXlE,OAAQ,IAAI,KAAW4D,GAAYjrD,GACnCqmC,YACA4kB,aACAl/C,OACAwmB,OACAuR,QAEFngC,KAAKmnD,SAASxoD,IAAIgpD,EAAWC,IAI/B,MAAMrO,EAAuB,iBAAVl9C,EAAqBurD,EAAWlE,OAAOoE,OAASD,EAAiBxrD,GACpF,QAAgCirD,EAAYl/C,EAAMmxC,EAAK3qB,EAAM64B,EAAiBE,EAChF,CAKC,KAAA7lD,GAEC,GAA2B,IAAvB9B,KAAKmnD,SAASlyB,KAChB,OAGF,MAAM8yB,EAAgBz5C,MAAMwqB,KAAK94B,KAAKmnD,SAAS5qC,WAC/C,OAAwBvc,KAAKknD,QAASa,GAEtC/nD,KAAKmnD,SAASn8C,OAChB,CAKC,KAAAxH,GACCwkD,cAAchoD,KAAKonD,WACnBpnD,KAAK8B,OACP,qEC1FK,MAAMmmD,EAA0B,mCAC1Bl2C,EAAiB,0BACjBm2C,EACX,wFCDF,QADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qXAAyX,KAAQ,cAAe,MAAS,oCCQjjB,SAAWjvC,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,8FAA8F/b,MAClG,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,4DAA4Drc,MAClE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1C4sB,cAAe,SACfC,KAAM,SAAU9nB,GACZ,MAAO,QAAQyrB,KAAKzrB,EACxB,EACA+nB,SAAU,SAAUzP,EAAO6pC,EAASj6B,GAChC,OAAI5P,EAAQ,GACD4P,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAxQ,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,iBACTE,QAAS,eACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,YACNpU,EAAG,mBACHqU,GAAI,cACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,kBACxBC,QAAS,SAAUC,GACf,OACIA,GACY,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,KAEhE,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3EyCC,CAAQ,EAAQ,wDCN1D,IAAI8rC,EAAM,SAAahyC,GACrB,OAAQiyC,WAAWjyC,EAAU,GAC/B,EACIkyC,EAAM,SAAaC,GACrB,OAAOC,aAAaD,EACtB,EACsB,oBAAXxQ,QAA0B,0BAA2BA,SAC9DqQ,EAAM,SAAahyC,GACjB,OAAO2hC,OAAO0Q,sBAAsBryC,EACtC,EACAkyC,EAAM,SAAaI,GACjB,OAAO3Q,OAAO4Q,qBAAqBD,EACrC,GAEF,IAAIE,EAAU,EACVC,EAAS,IAAIzqD,IACjB,SAASmtC,EAAQp+B,GACf07C,EAAO5pD,OAAOkO,EAChB,CACA,IAAI27C,EAAa,SAAoB1yC,GACnC,IAEIjJ,EADJy7C,GAAW,EAoBX,OAlBA,SAASG,EAAQC,GACf,GAAkB,IAAdA,EAEFzd,EAAQp+B,GAGRiJ,QACK,CAEL,IAAI6yC,EAASb,GAAI,WACfW,EAAQC,EAAY,EACtB,IAGAH,EAAOjqD,IAAIuO,EAAI87C,EACjB,CACF,CACAF,CApBY/qD,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,GAqBzEmP,CACT,EACA27C,EAAW7kD,OAAS,SAAUkJ,GAC5B,IAAI87C,EAASJ,EAAOv3C,IAAInE,GAExB,OADAo+B,EAAQp+B,GACDm7C,EAAIW,EACb,EAMA,kJClDO,MAAMC,EAAe,CAC1BnO,SAAU,SACVzD,WAAY,SACZ6R,aAAc,YAEHC,EAAiB,SAAUr1C,GACtC,IAAIs1C,EAAwBrrD,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAC3F,MAAO,CACLo8C,UAAW,aACXuG,OAAQ,EACR1G,QAAS,EACTC,MAAOnmC,EAAMsT,UACbnC,SAAUnR,EAAMmR,SAEhBi1B,WAAYpmC,EAAMomC,WAClBmP,UAAW,OAEXzI,WAAYwI,EAAwB,UAAYt1C,EAAM8sC,WAE1D,EACa0I,EAAY,KAAM,CAC7B/tB,QAAS,cACTwgB,WAAY,SACZ9B,MAAO,UACPoH,UAAW,SACXnH,WAAY,EACZgH,UAAW,SACXI,cAAe,OAEfH,cAAe,WACfK,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLtH,WAAY,GAEdqP,IAAK,CACHhuB,QAAS,kBAGAiuB,EAAW,KAAM,CAE5B,YAAa,CACXjuB,QAAS,QACTyiB,QAAS,MAEX,WAAY,CAEVziB,QAAS,QACTvwB,MAAO,OACPgzC,QAAS,QAGAyL,EAAe31C,IAAS,CACnCxT,EAAG,CACD25C,MAAOnmC,EAAM41C,UACbC,eAAgB71C,EAAM81C,eACtB5O,gBAAiB,cAEjBI,QAAS,OACTI,OAAQ,UACRC,WAAY,SAAS3nC,EAAM4nC,qBAC3B,+BAAgC,UAEhC,UAAW,CACTzB,MAAOnmC,EAAM+1C,gBAEf,WAAY,CACV5P,MAAOnmC,EAAMg2C,iBAEf,oBAAqB,CACnBH,eAAgB71C,EAAMi2C,oBACtB3O,QAAS,GAGX,UAAW,CACTuO,eAAgB71C,EAAMk2C,oBACtB5O,QAAS,GAEX,cAAe,CACbnB,MAAOnmC,EAAM4oC,kBACblB,OAAQ,kBAIDyO,EAAiB,CAACn2C,EAAOo2C,EAAoBC,EAASC,KACjE,MAAMC,EAAiB,YAAYH,kBAAmCA,MAChEI,EAAqBH,EAAU,IAAIA,IAAYE,EAC/CE,EAAa,CACjBpQ,UAAW,aACX,sBAAuB,CACrBA,UAAW,eAGf,IAAIqQ,EAAiB,CAAC,EAOtB,OANkB,IAAdJ,IACFI,EAAiB,CACf5J,WAAY9sC,EAAM8sC,WAClB37B,SAAUnR,EAAMmR,WAGb,CACL,CAACqlC,GAAqB3uD,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGw1C,GAAiBD,GAAa,CAChG,CAACF,GAAiBE,IAErB,EAEUE,EAAkB32C,IAAS,CACtCsnC,QAAS,IAAG,QAAKtnC,EAAM42C,yBAAyB52C,EAAM62C,qBACtDC,cAAe,EACfnP,WAAY,kCAEDoP,EAAgB/2C,IAAS,CACpC,kBAAmBnY,OAAOqZ,OAAO,CAAC,EAAGy1C,EAAgB32C,MAE1Cg3C,EAAgBh3C,GAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAGhEilC,MAAOnmC,EAAM41C,UACbC,eAAgB71C,EAAM81C,eACtBxO,QAAS,OACTI,OAAQ,UACRC,WAAY,OAAO3nC,EAAM4nC,qBACzB8C,OAAQ,EACRxE,QAAS,EACT2E,WAAY,OACZlH,WAAY,QACXoT,EAAc/2C,IAAS,CACxB,mBAAoB,CAClBmmC,MAAOnmC,EAAM+1C,gBAEf,WAAY,CACV5P,MAAOnmC,EAAMg2C,kSClIjB,MAAMiB,EAA2C,oBAArBC,kBAAoCA,kCCLhE7uD,EAAOC,QAAU,IAA0B,qGCC5B,SAAS6uD,EAAQC,EAAUrzB,EAAWszB,GACnD,IAAIC,EAAW,SAAa,CAAC,GAK7B,MAJM,UAAWA,EAAStmD,UAAYqmD,EAAaC,EAAStmD,QAAQ+yB,UAAWA,KAC7EuzB,EAAStmD,QAAQzI,MAAQ6uD,IACzBE,EAAStmD,QAAQ+yB,UAAYA,GAExBuzB,EAAStmD,QAAQzI,KAC1B,kFCDO,SAASgvD,EAA0BC,GACxC,MAAO,CACL/rD,KAAM2oD,EAAAA,GACNoD,UAEJ,CAEO,SAASC,IACd,MAAO,CACLhsD,KAAM0oD,EAAAA,GAEV,CAEO,SAASuD,EAAa15C,GAC3B,MAAO,CACLvS,KAAMwS,EAAAA,GACND,YAEJ,gCCxBA,IAAI25C,EAAW,EAAQ,QAEnBC,EAAU/oD,OACVgpD,EAAa5H,UAGjB5nD,EAAOC,QAAU,SAAUwvD,GACzB,GAAIH,EAASG,GAAW,OAAOA,EAC/B,MAAM,IAAID,EAAWD,EAAQE,GAAY,oBAC3C,qBCVoEzvD,EAAOC,QAAkJ,WAAY,aAAa,OAAO,SAASM,EAAEuM,GAAGA,EAAErN,UAAUiwD,SAAS,WAAW,IAAInvD,EAAEsD,KAAK8rD,QAAQ7iD,EAAEjJ,KAAKkc,OAAOqO,EAAEvqB,KAAK+rD,OAAO,OAAO,IAAI9iD,GAAG,KAAKvM,EAAE6tB,EAAE,EAAE,IAAI7tB,GAAGuM,GAAG,GAAGshB,EAAE,EAAEA,CAAC,CAAC,CAAE,CAArTthB,kDCEnF,QADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4LAAgM,KAAQ,OAAQ,MAAS,gGCE/W+P,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,0DAA2D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,MAAQ,GAAG,SAAW,6BAA6B,eAAiB,CAAC,yGAAyG,WAAa,MAE3X,4JC6IA,QA5IA,SAAc/J,GACZ,IAAIiF,EAAOjF,EAAKiF,KACd4jD,EAAe7oD,EAAK6oD,aACpBp0C,EAAWzU,EAAKyU,SAChB8X,EAAQvsB,EAAKusB,MACbu8B,EAAkB9oD,EAAK8oD,gBACvBC,EAAc/oD,EAAK+oD,YACjBjlD,EAAU,aAAiB,KAC3BklD,EAAqB,aAAiB,KAKtCC,EAJS,SAAa,CACxBjmD,KAAM,GACN+G,GAAI,IAEkBpI,QACpBunD,EAAa,WAAc,WAC7B,IAAIC,GAAmB,QAAYrlD,EAAQolD,aAAe,GAC1D,MAAO,GAAG9kD,QAAO,OAAmB+kD,IAAmB,QAAmB,QAAYlkD,IACxF,GAAG,CAACnB,EAAQolD,WAAYjkD,IACpBmkD,EAAe,WAAc,WAC/B,OAAO,QAAc,OAAc,CAAC,EAAGtlD,GAAU,CAAC,EAAG,CACnDolD,WAAYA,GAEhB,GAAG,CAACplD,EAASolD,IAGTG,EAAc,WAAc,WAC9B,MAAO,CACLC,OAAQ,SAAgBC,GACtB,IAAI3oD,EAAMsoD,EAAWlsD,OACjBwsD,EAAWD,EAAS3oD,GACxB,MAAO,CAACqoD,EAAWjmD,KAAKwmD,GAAWD,EAAShpD,MAAMK,EAAM,GAC1D,EAEJ,GAAG,CAACsoD,IAGJ,MAAwB,mBAAbz0C,IACT,SAAQ,EAAO,gDACR,MASW,gBAAoB,IAAYmR,SAAU,CAC5D1sB,MAAOmwD,GACO,gBAAoB,IAAazjC,SAAU,CACzD1sB,MAAOkwD,GACO,gBAAoB,IAAO,CACzCnkD,KAAM,GACN+iD,aAbiB,SAAsByB,EAAWC,EAAWhnD,GAE7D,MAAe,aADFA,EAAMud,QAIZwpC,IAAcC,CACvB,EAQEn9B,MAAOA,EACPu8B,gBAAiBA,EACjBD,aAAcA,EACdc,QAAQ,EACRZ,YAAaA,QAAiDA,IAAgBC,IAC7E,SAAU7mD,EAAO2C,GAClB,IAAI8kD,EAAcznD,EAAMjJ,MACtBA,OAAwB,IAAhB0wD,EAAyB,GAAKA,EACtCC,EAAW1nD,EAAM0nD,SACfC,EAAgBhmD,EAAQgmD,cACxBC,EAAc,WAEhB,OADaD,EAAcZ,GAAc,KACxB,EACnB,EAIIc,EAAa,CACfl4C,IAAK,SAAam4C,EAAc35C,GAE9B,IAAI45C,EAAWH,IACXz5C,GAAS,GAAKA,GAAS45C,EAASltD,QAClCisD,EAAWjmD,KAAO,GAAGoB,QAAO,OAAmB6kD,EAAWjmD,KAAKzC,MAAM,EAAG+P,IAAS,CAAC24C,EAAWl/C,KAAK,OAAmBk/C,EAAWjmD,KAAKzC,MAAM+P,KAC3Iu5C,EAAS,GAAGzlD,QAAO,OAAmB8lD,EAAS3pD,MAAM,EAAG+P,IAAS,CAAC25C,IAAe,OAAmBC,EAAS3pD,MAAM+P,QAKnH24C,EAAWjmD,KAAO,GAAGoB,QAAO,OAAmB6kD,EAAWjmD,MAAO,CAACimD,EAAWl/C,KAC7E8/C,EAAS,GAAGzlD,QAAO,OAAmB8lD,GAAW,CAACD,MAEpDhB,EAAWl/C,IAAM,CACnB,EACAqE,OAAQ,SAAgBkC,GACtB,IAAI45C,EAAWH,IACXI,EAAW,IAAI54B,IAAIpmB,MAAMie,QAAQ9Y,GAASA,EAAQ,CAACA,IACnD65C,EAASr4B,MAAQ,IAGrBm3B,EAAWjmD,KAAOimD,EAAWjmD,KAAK2M,QAAO,SAAUiuB,EAAGwsB,GACpD,OAAQD,EAAS73C,IAAI83C,EACvB,IAGAP,EAASK,EAASv6C,QAAO,SAAUiuB,EAAGysB,GACpC,OAAQF,EAAS73C,IAAI+3C,EACvB,KACF,EACAC,KAAM,SAAc30B,EAAMwD,GACxB,GAAIxD,IAASwD,EAAb,CAGA,IAAI+wB,EAAWH,IAGXp0B,EAAO,GAAKA,GAAQu0B,EAASltD,QAAUm8B,EAAK,GAAKA,GAAM+wB,EAASltD,SAGpEisD,EAAWjmD,MAAO,QAAMimD,EAAWjmD,KAAM2yB,EAAMwD,GAG/C0wB,GAAS,QAAMK,EAAUv0B,EAAMwD,IAV/B,CAWF,GAEEoxB,EAAYrxD,GAAS,GAOzB,OANKiS,MAAMie,QAAQmhC,KACjBA,EAAY,IAKP91C,EAAS81C,EAAU3sD,KAAI,SAAU4sD,EAAIl6C,GAC1C,IAAI/U,EAAM0tD,EAAWjmD,KAAKsN,GAM1B,YALYvX,IAARwC,IACF0tD,EAAWjmD,KAAKsN,GAAS24C,EAAWl/C,GACpCxO,EAAM0tD,EAAWjmD,KAAKsN,GACtB24C,EAAWl/C,IAAM,GAEZ,CACL9E,KAAMqL,EACN/U,IAAKA,EACLwtD,aAAa,EAEjB,IAAIiB,EAAYllD,EAClB,KACF,mBCnJA9L,EAAOC,QAAU,IAA0B,iDCkB3CD,EAAOC,QALP,SAAqBC,GAEnB,OADA2D,KAAKwc,SAAS7d,IAAItC,EAbC,6BAcZ2D,IACT,mBChBA7D,EAAOC,QAAU,IAA0B,0JCoB3C,QAVA,SAAes9B,EAAMk0B,EAASptD,GAC5B,OAAQA,EAAKL,QACX,KAAK,EAAG,OAAOu5B,EAAKn9B,KAAKqxD,GACzB,KAAK,EAAG,OAAOl0B,EAAKn9B,KAAKqxD,EAASptD,EAAK,IACvC,KAAK,EAAG,OAAOk5B,EAAKn9B,KAAKqxD,EAASptD,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOk5B,EAAKn9B,KAAKqxD,EAASptD,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOk5B,EAAKvyB,MAAMymD,EAASptD,EAC7B,mBClBArE,EAAOC,QAAU,IAA0B,oECG3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzDgsC,EAA8B9rC,EAAyB,EAAQ,QAC/DC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIkrC,EAAe,SAAS5jD,EAAO8V,GAC/B,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMoqC,EAAcxrC,UAbEe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJ8eC,EAAOmC,WAAW+pC,oBCvHpgB3xD,EAAOC,QAAU,IAA0B,uDCC3C,IAAI2xD,EAA8B,iBAAV,EAAAnjC,GAAsB,EAAAA,GAAU,EAAAA,EAAOjvB,SAAWA,QAAU,EAAAivB,EAEpFzuB,EAAOC,QAAU2xD,aCEjB5xD,EAAOC,QAAU,CACf,MAAQ,EACR,MAAQ,EACR,IAAM,EACN,KAAO,EACP,OAAS,EACT,IAAM,EACN,KAAO,EACP,OAAS,EACT,MAAQ,EACR,MAAQ,EACR,OAAS,EACT,QAAU,EACV,OAAS,EACT,KAAO,oBCnBT,IAAI4xD,EAAU,EAAQ,QAKtB7xD,EAAOC,QA4ZP,SAAS6xD,EAAcp7C,EAAM1M,EAAM2I,GAQjC,OAPKk/C,EAAQ7nD,KACX2I,EAAkC3I,GAAQ2I,EAC1C3I,EAAO,IAGT2I,EAAUA,GAAW,CAAC,EAElB+D,aAAgB2kB,OAlJtB,SAAyB3kB,EAAM1M,GAE7B,IAAI+nD,EAASr7C,EAAKuQ,OAAOzZ,MAAM,aAE/B,GAAIukD,EACF,IAAK,IAAIpqD,EAAI,EAAGA,EAAIoqD,EAAO/tD,OAAQ2D,IACjCqC,EAAKtE,KAAK,CACRuG,KAAMtE,EACNo3B,OAAQ,KACRizB,UAAW,KACXngC,UAAU,EACVogC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACV5rD,QAAS,OAKf,OAAO6rD,EAAW17C,EAAM1M,EAC1B,CA+HWqoD,CAAe37C,EAA4B,GAGhDm7C,EAAQn7C,GAxHd,SAAwBA,EAAM1M,EAAM2I,GAGlC,IAFA,IAAI2/C,EAAQ,GAEH3qD,EAAI,EAAGA,EAAI+O,EAAK1S,OAAQ2D,IAC/B2qD,EAAM5sD,KAAKosD,EAAap7C,EAAK/O,GAAIqC,EAAM2I,GAASsU,QAKlD,OAAOmrC,EAFM,IAAI/2B,OAAO,MAAQi3B,EAAMpxD,KAAK,KAAO,IAAKkW,EAAMzE,IAEnC3I,EAC5B,CA+GWuoD,CAAoC,EAA8B,EAAQ5/C,GArGrF,SAAyB+D,EAAM1M,EAAM2I,GACnC,OAAO6/C,EAAepsB,EAAM1vB,EAAM/D,GAAU3I,EAAM2I,EACpD,CAsGS8/C,CAAqC,EAA8B,EAAQ9/C,EACpF,EA5aA3S,EAAOC,QAAQmmC,MAAQA,EACvBpmC,EAAOC,QAAQ83B,QA+Gf,SAAkBilB,EAAKrqC,GACrB,OAAO+/C,EAAiBtsB,EAAM4W,EAAKrqC,GAAUA,EAC/C,EAhHA3S,EAAOC,QAAQyyD,iBAAmBA,EAClC1yD,EAAOC,QAAQuyD,eAAiBA,EAOhC,IAAIG,EAAc,IAAIt3B,OAAO,CAG3B,UAOA,0GACAn6B,KAAK,KAAM,KASb,SAASklC,EAAO4W,EAAKrqC,GAQnB,IAPA,IAKInI,EALAooD,EAAS,GACTrwD,EAAM,EACN+U,EAAQ,EACRZ,EAAO,GACPm8C,EAAmBlgD,GAAWA,EAAQq/C,WAAa,IAGf,OAAhCxnD,EAAMmoD,EAAYttD,KAAK23C,KAAe,CAC5C,IAAIh+B,EAAIxU,EAAI,GACRsoD,EAAUtoD,EAAI,GACduoD,EAASvoD,EAAI8M,MAKjB,GAJAZ,GAAQsmC,EAAIz1C,MAAM+P,EAAOy7C,GACzBz7C,EAAQy7C,EAAS/zC,EAAEhb,OAGf8uD,EACFp8C,GAAQo8C,EAAQ,OADlB,CAKA,IAAInvD,EAAOq5C,EAAI1lC,GACXynB,EAASv0B,EAAI,GACbyB,EAAOzB,EAAI,GACXwoD,EAAUxoD,EAAI,GACdu9B,EAAQv9B,EAAI,GACZyoD,EAAWzoD,EAAI,GACf2nD,EAAW3nD,EAAI,GAGfkM,IACFk8C,EAAOltD,KAAKgR,GACZA,EAAO,IAGT,IAAIw7C,EAAoB,MAAVnzB,GAA0B,MAARp7B,GAAgBA,IAASo7B,EACrDkzB,EAAsB,MAAbgB,GAAiC,MAAbA,EAC7BphC,EAAwB,MAAbohC,GAAiC,MAAbA,EAC/BjB,EAAYjzB,GAAU8zB,EACtBtsD,EAAUysD,GAAWjrB,EACrBmrB,EAAWn0B,IAAgD,iBAA9B6zB,EAAOA,EAAO5uD,OAAS,GAAkB4uD,EAAOA,EAAO5uD,OAAS,GAAK,IAEtG4uD,EAAOltD,KAAK,CACVuG,KAAMA,GAAQ1J,IACdw8B,OAAQA,GAAU,GAClBizB,UAAWA,EACXngC,SAAUA,EACVogC,OAAQA,EACRC,QAASA,EACTC,WAAYA,EACZ5rD,QAASA,EAAU4sD,EAAY5sD,GAAY4rD,EAAW,KAAOiB,EAAkBpB,EAAWkB,IA/B5F,CAiCF,CAYA,OATI57C,EAAQ0lC,EAAIh5C,SACd0S,GAAQsmC,EAAIqW,OAAO/7C,IAIjBZ,GACFk8C,EAAOltD,KAAKgR,GAGPk8C,CACT,CAEA,SAASQ,EAAkBpB,EAAWkB,GACpC,OAAKA,GAAYA,EAASlxB,QAAQgwB,IAAc,EACvC,KAAOsB,EAAatB,GAAa,MAGnCsB,EAAaJ,GAAY,UAAYI,EAAaJ,GAAY,MAAQI,EAAatB,GAAa,MACzG,CAmBA,SAASuB,EAA0BvW,GACjC,OAAOxO,UAAUwO,GAAKlhB,QAAQ,WAAW,SAAUxN,GACjD,MAAO,IAAMA,EAAE6iB,WAAW,GAAGvxC,SAAS,IAAI23C,aAC5C,GACF,CAiBA,SAASmb,EAAkBE,EAAQjgD,GAKjC,IAHA,IAAI0wB,EAAU,IAAIlxB,MAAMygD,EAAO5uD,QAGtB2D,EAAI,EAAGA,EAAIirD,EAAO5uD,OAAQ2D,IACR,iBAAdirD,EAAOjrD,KAChB07B,EAAQ17B,GAAK,IAAI0zB,OAAO,OAASu3B,EAAOjrD,GAAGpB,QAAU,KAAM6Q,EAAMzE,KAIrE,OAAO,SAAU3P,EAAKiX,GAMpB,IALA,IAAIvD,EAAO,GACPjJ,EAAOzK,GAAO,CAAC,EAEf++B,GADU9nB,GAAQ,CAAC,GACFu5C,OAASD,EAA2BE,mBAEhD9rD,EAAI,EAAGA,EAAIirD,EAAO5uD,OAAQ2D,IAAK,CACtC,IAAIgQ,EAAQi7C,EAAOjrD,GAEnB,GAAqB,iBAAVgQ,EAAX,CAMA,IACI+7C,EADAxzD,EAAQuN,EAAKkK,EAAM1L,MAGvB,GAAa,MAAT/L,EAAe,CACjB,GAAIyX,EAAMka,SAAU,CAEdla,EAAMu6C,UACRx7C,GAAQiB,EAAMonB,QAGhB,QACF,CACE,MAAM,IAAI6oB,UAAU,aAAejwC,EAAM1L,KAAO,kBAEpD,CAEA,GAAI4lD,EAAQ3xD,GAAZ,CACE,IAAKyX,EAAMs6C,OACT,MAAM,IAAIrK,UAAU,aAAejwC,EAAM1L,KAAO,kCAAoC22B,KAAKL,UAAUriC,GAAS,KAG9G,GAAqB,IAAjBA,EAAM8D,OAAc,CACtB,GAAI2T,EAAMka,SACR,SAEA,MAAM,IAAI+1B,UAAU,aAAejwC,EAAM1L,KAAO,oBAEpD,CAEA,IAAK,IAAIgpC,EAAI,EAAGA,EAAI/0C,EAAM8D,OAAQixC,IAAK,CAGrC,GAFAye,EAAU3xB,EAAO7hC,EAAM+0C,KAElB5R,EAAQ17B,GAAG8pB,KAAKiiC,GACnB,MAAM,IAAI9L,UAAU,iBAAmBjwC,EAAM1L,KAAO,eAAiB0L,EAAMpR,QAAU,oBAAsBq8B,KAAKL,UAAUmxB,GAAW,KAGvIh9C,IAAe,IAANu+B,EAAUt9B,EAAMonB,OAASpnB,EAAMq6C,WAAa0B,CACvD,CAGF,KAxBA,CA4BA,GAFAA,EAAU/7C,EAAMw6C,SA5Eb3jB,UA4EuCtuC,GA5ExB47B,QAAQ,SAAS,SAAUxN,GAC/C,MAAO,IAAMA,EAAE6iB,WAAW,GAAGvxC,SAAS,IAAI23C,aAC5C,IA0EuDxV,EAAO7hC,IAErDmjC,EAAQ17B,GAAG8pB,KAAKiiC,GACnB,MAAM,IAAI9L,UAAU,aAAejwC,EAAM1L,KAAO,eAAiB0L,EAAMpR,QAAU,oBAAsBmtD,EAAU,KAGnHh9C,GAAQiB,EAAMonB,OAAS20B,CARvB,CA1CA,MAHEh9C,GAAQiB,CAsDZ,CAEA,OAAOjB,CACT,CACF,CAQA,SAAS48C,EAActW,GACrB,OAAOA,EAAIlhB,QAAQ,6BAA8B,OACnD,CAQA,SAASq3B,EAAaprB,GACpB,OAAOA,EAAMjM,QAAQ,gBAAiB,OACxC,CASA,SAASs2B,EAAYuB,EAAI3pD,GAEvB,OADA2pD,EAAG3pD,KAAOA,EACH2pD,CACT,CAQA,SAASv8C,EAAOzE,GACd,OAAOA,GAAWA,EAAQozB,UAAY,GAAK,GAC7C,CAuEA,SAASysB,EAAgBI,EAAQ5oD,EAAM2I,GAChCk/C,EAAQ7nD,KACX2I,EAAkC3I,GAAQ2I,EAC1C3I,EAAO,IAUT,IALA,IAAIsoB,GAFJ3f,EAAUA,GAAW,CAAC,GAED2f,OACjBzhB,GAAsB,IAAhB8B,EAAQ9B,IACd+iD,EAAQ,GAGHjsD,EAAI,EAAGA,EAAIirD,EAAO5uD,OAAQ2D,IAAK,CACtC,IAAIgQ,EAAQi7C,EAAOjrD,GAEnB,GAAqB,iBAAVgQ,EACTi8C,GAASN,EAAa37C,OACjB,CACL,IAAIonB,EAASu0B,EAAa37C,EAAMonB,QAC5Bi0B,EAAU,MAAQr7C,EAAMpR,QAAU,IAEtCyD,EAAKtE,KAAKiS,GAENA,EAAMs6C,SACRe,GAAW,MAAQj0B,EAASi0B,EAAU,MAaxCY,GANIZ,EAJAr7C,EAAMka,SACHla,EAAMu6C,QAGCnzB,EAAS,IAAMi0B,EAAU,KAFzB,MAAQj0B,EAAS,IAAMi0B,EAAU,MAKnCj0B,EAAS,IAAMi0B,EAAU,GAIvC,CACF,CAEA,IAAIhB,EAAYsB,EAAa3gD,EAAQq/C,WAAa,KAC9C6B,EAAoBD,EAAMrsD,OAAOyqD,EAAUhuD,UAAYguD,EAkB3D,OAZK1/B,IACHshC,GAASC,EAAoBD,EAAMrsD,MAAM,GAAIyqD,EAAUhuD,QAAU4vD,GAAS,MAAQ5B,EAAY,WAI9F4B,GADE/iD,EACO,IAIAyhB,GAAUuhC,EAAoB,GAAK,MAAQ7B,EAAY,MAG3DI,EAAW,IAAI/2B,OAAO,IAAMu4B,EAAOx8C,EAAMzE,IAAW3I,EAC7D,mBCnZA,IAAIpF,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,KACR,UAAW,KACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,MACX,aAAc,MACd,UAAW,KACX,aAAc,KACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,MACX,aAAc,MACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,MACX,aAAc,MACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,WAAY,OACZ,cAAe,OACf,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,WAAY,OACZ,cAAe,OACf,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,MACR,UAAW,MACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,QAAS,OACT,aAAc,OACd,gBAAiB,OACjB,WAAY,OACZ,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,QAIf,SAASkvD,EAAeC,GACvB,IAAIhjD,EAAKijD,EAAsBD,GAC/B,OAAOE,EAAoBljD,EAC5B,CACA,SAASijD,EAAsBD,GAC9B,IAAIE,EAAoBjsD,EAAEpD,EAAKmvD,GAAM,CACpC,IAAIxzD,EAAI,IAAIoB,MAAM,uBAAyBoyD,EAAM,KAEjD,MADAxzD,EAAEG,KAAO,mBACHH,CACP,CACA,OAAOqE,EAAImvD,EACZ,CACAD,EAAe9pD,KAAO,WACrB,OAAOxK,OAAOwK,KAAKpF,EACpB,EACAkvD,EAAe7uD,QAAU+uD,EACzBh0D,EAAOC,QAAU6zD,EACjBA,EAAe/iD,GAAK,iFCvRpB,QAda,SAAgBijB,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GAC1D,IAAIujB,EAAS,GAEb,GADelC,EAAK3B,WAAa2B,EAAK3B,UAAYpL,EAAOvnB,eAAes0B,EAAKkgC,OAC/D,CACZ,IAAI,QAAah0D,KAAW8zB,EAAK3B,SAC/B,OAAOrY,IAET,IAAMqY,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,QAC9B5S,IAAVG,GACF,IAAMkD,KAAK4wB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAE5C,CACAqH,EAASkc,EACX,mBCfA,IAAIi+B,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QASvB,SAASC,EAAMj2B,GACb,IAAI/wB,EAAO5J,KAAKwc,SAAW,IAAI8zC,EAAU31B,GACzC36B,KAAKi1B,KAAOrrB,EAAKqrB,IACnB,CAGA27B,EAAMh1D,UAAUoP,MAAQulD,EACxBK,EAAMh1D,UAAkB,OAAI40D,EAC5BI,EAAMh1D,UAAUyV,IAAMo/C,EACtBG,EAAMh1D,UAAU6Z,IAAMi7C,EACtBE,EAAMh1D,UAAU+C,IAAMgyD,EAEtBx0D,EAAOC,QAAUw0D,iaClBV,MAAMC,EAAmB,YAAKC,EAAAA,EAAAA,CAAAA,+EAAAA,CAAAA,WACnC,SAACC,EAAAA,2UAAUA,CAAAA,CAACC,QAAQ,aAAgBF,cAAAA,WAClC,SAACj+C,OAAAA,CAAK0I,EAAE,gsCCJL,MAAM,cACX01C,EAAa,sBACbC,EAAqB,qBACrBC,IACE,QAAc,CAChBC,UAAW,KACT,MAAM,aACJC,EAAY,cACZC,IACE,IAAAC,YAAW,MAEf,MAAO,CACLxP,cAFoBsP,IAGpBC,gBACD,EAEHE,SAAU,KACR,MAAOC,EAAOC,EAAWC,EAAQ79C,EAAO89C,IAAU,UAClD,MAAO,CACLH,QACAC,YACAC,SACA79C,QACA89C,SACD,EAEHC,OAAQ,KACN,MAAM,IACJC,EAAG,cACHR,IACE,IAAAC,YAAW,MAGf,OADA,OAAkBD,EAAeQ,GAC1BA,QAAiCA,EAAM,CAAC,CAAC,EAElDC,eAAgBj+C,GAAS,CAAC,CACxB,KAAK,QAAaA,KAEpBk+C,eAAgB,KAChBC,gBAAiB,IAAM,mMClCrBC,EAAa,CAAC,CAChBjY,MAAO,iBACPkY,QAAS,GACR,CACDlY,MAAO,mBACPkY,QAAS,IACR,CACDlY,MAAO,iBACPkY,QAAS,IACR,CACDlY,MAAO,mBACPkY,QAAS,IACR,CACDlY,MAAO,iBACPkY,QAAS,IACR,CACDlY,MAAO,mBACPkY,QAAS,IACR,CACDlY,MAAO,iBACPkY,QAAS,MA4HX,SA1H+B,IAAApuC,aAAW,SAAU7Z,EAAO8V,GACzD,IAAI3jB,EAAQ6N,EAAM7N,MAChB+wD,EAAeljD,EAAMkjD,aACrBgF,EAAmBloD,EAAMmoD,UACzBA,OAAiC,IAArBD,EAA8B,KAAuBA,EACjEpF,EAAW9iD,EAAM8iD,SACjBsF,EAAmBpoD,EAAMooD,iBACzB36C,EAAYzN,EAAMyN,UAClBq/B,EAAQ9sC,EAAM8sC,MACdub,EAAcroD,EAAMqoD,YACpBC,EAAuBtoD,EAAMuoD,cAC7BA,OAAyC,IAAzBD,GAA0CA,EAC1DE,EAAkBxoD,EAAMyoD,SACxBA,OAA+B,IAApBD,GAAqCA,EAChDE,EAAa1oD,EAAM0oD,WAGjBC,GAAgB,OAAaD,GAE/BE,GADiB,OAAeD,EAAe,GACvB,GAGtBE,GAAiB,OAAc3F,GAAgB,KAAc/wD,GAC/D22D,GAAkB,OAAeD,EAAgB,GACjDE,EAAaD,EAAgB,GAC7BE,EAAgBF,EAAgB,GAC9BG,GAAa,IAAAlI,UAAQ,WACvB,OAAOgI,EAAWG,KAAK,GAAGC,aAC5B,GAAG,CAACJ,IAGAK,EAAe,SAAsB1pD,EAAMrK,GACxClD,GACH62D,EAActpD,GAEhBojD,SAA4CA,EAASpjD,EAAMrK,EAC7D,EAGIg0D,EAAc,SAAqBC,GACrC,OAAO,IAAI,IAAMP,EAAWQ,OAAOD,GACrC,EACIE,EAAgB,SAAuBC,GACzC,OAAO,IAAI,IAAMV,EAAWG,KAAKO,EAAQ,KAC3C,EA6BIC,EAAW,IAAW,GAAGrsD,OAAO8qD,EAAW,UAAW16C,GAAW,OAAgB,CAAC,EAAG,GAAGpQ,OAAO8qD,EAAW,mBAAoBM,IAC9HkB,EAAoB,CACtBxB,UAAWA,EACXM,SAAUA,EACV1Y,MAAOgZ,GAELa,EAA4B,gBAAoB,WAAgB,KAAmB,gBAAoB,KAAQ,OAAS,CAC1H9G,SAAUsG,GACTO,EAAmB,CACpBvB,iBAAkBA,KACF,gBAAoB,MAAO,CAC3C36C,UAAW,GAAGpQ,OAAO8qD,EAAW,sBAClB,gBAAoB,MAAO,CACzC16C,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,kBAAkB,OAAgB,CAAC,EAAG,GAAG9qD,OAAO8qD,EAAW,gCAAiCI,KACzH,gBAAoBK,GAAQ,OAAS,CAAC,EAAGe,EAAmB,CAC1Et0D,KAAM,MACNsZ,OAAQq5C,EACRp2B,IAAK,EACL1T,IAAK,IACL/rB,MAAO42D,EAAWc,SAClB/G,SA9CgB,SAAqBwG,GACrCF,EAAaC,EAAYC,GAAM,CAC7Bj0D,KAAM,MACNlD,MAAOm3D,GAEX,EA0CElB,iBAjCwB,SAA6BkB,GACjDlB,GACFA,EAAiBiB,EAAYC,GAEjC,MA8BMf,GAA8B,gBAAoBK,GAAQ,OAAS,CAAC,EAAGe,EAAmB,CAC9Ft0D,KAAM,QACNsZ,OAAQ,CAAC,CACPs5C,QAAS,EACTlY,MAAO,sBACN,CACDkY,QAAS,IACTlY,MAAOkZ,IAETr3B,IAAK,EACL1T,IAAK,IACL/rB,MAAsB,IAAf42D,EAAW3yD,EAClB0sD,SAtDkB,SAAuB2G,GACzCL,EAAaI,EAAcC,GAAQ,CACjCp0D,KAAM,QACNlD,MAAOs3D,GAEX,EAkDErB,iBA1C0B,SAA+BqB,GACrDrB,GACFA,EAAiBoB,EAAcC,GAEnC,MAuCmB,gBAAoB,IAAY,CACjD1Z,MAAOgZ,EAAWI,cAClBhB,UAAWA,MAEb,OAAoB,gBAAoB,MAAO,CAC7C16C,UAAWi8C,EACX5c,MAAOA,EACPh3B,IAAKA,GACmB,mBAAhBuyC,EAA6BA,EAAYuB,GAAgBA,EACrE,4BC9IQ,SAAW76C,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,uFAAuF/b,MAC3F,KAEJmc,YACI,iEAAiEnc,MAC7D,KAERoc,kBAAkB,EAClBC,SAAU,sDAAsDrc,MAAM,KACtEsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,qBACTE,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNpU,EAAG,oBACHqU,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,gBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOD,GAAqB,IAAXA,EAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAEnD,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9EyCC,CAAQ,EAAQ,qECN1D,QAAe,IAA0B,8YCkBrC23C,EAAc,gBAKX,SAASC,EAAeC,GAE7B,OADiB,SAAU,QAAQA,GAAW,MAC5Bj8B,QAAQ,iBAAkB,IAC9C,CA2BO,IAAIk8B,EAAa,SAASA,EAAWC,GAC1C,IAAIC,EAASt2D,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EoF,EAAOpF,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,CAC3E8Y,MAAM,EACNy9C,gBAAiB,IAEnBz9C,EAAO1T,EAAK0T,KACZ09C,EAAapxD,EAAKoxD,WAClBD,EAAkBnxD,EAAKmxD,gBACrB3C,EAAS0C,EAAO1C,OAClB6C,EAAQH,EAAOG,MAEfC,GADOJ,EAAOxhD,KACCwhD,EAAOI,cACtBC,EAAuBL,EAAOM,aAC9BA,OAAwC,IAAzBD,EAAkC,GAAKA,EAGpDR,GAFgBG,EAAOO,QAEZ,IACXC,EAAc,CAAC,EACnB,SAASC,EAAeC,GACtB,IAAIxZ,EAAgBwZ,EAAUC,QAAQrD,GACtC,IAAKkD,EAAYtZ,GAAgB,CAC/B,IAAI0Z,EAAcd,EAAWY,EAAU/d,MAAOqd,EAAQ,CAClDx9C,MAAM,EACNy9C,gBAAiBA,IAGnBY,GADe,OAAeD,EAAa,GACjB,GAC5BJ,EAAYtZ,GAAiB,cAAch0C,OAAOwtD,EAAUC,QAAQrD,IAASpqD,OAAO2tD,EACtF,CACF,CAYA,IAAIC,EAXJ,SAASC,EAAY3+C,GACnB,IAAI4+C,EAAWt3D,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,GAQnF,OAPA0Y,EAAKjY,SAAQ,SAAU82D,GACjBhnD,MAAMie,QAAQ+oC,GAChBF,EAAYE,EAAMD,GACTC,GACTD,EAASxzD,KAAKyzD,EAElB,IACOD,CACT,CACuBD,CAAY9mD,MAAMie,QAAQ6nC,GAAiBA,EAAgB,CAACA,IAiHnF,OAhHAe,EAAiB32D,SAAQ,SAAU+2D,GAEjC,IAAIve,EAA+B,iBAAhBue,GAA6B1+C,EAAY0+C,EAAL,CAAC,EACxD,GAAqB,iBAAVve,EACTkd,GAAY,GAAG3sD,OAAOyvC,EAAO,WACxB,GAAIA,EAAMwe,UAEfV,EAAe9d,OACV,CACL,IAAIye,EAAcd,EAAat0D,QAAO,SAAUogB,EAAMi1C,GACpD,IAAIC,EACJ,OAAQD,SAAuE,QAAhCC,EAAeD,EAAME,aAAoC,IAAjBD,OAA0B,EAASA,EAAap5D,KAAKm5D,EAAOj1C,KAAUA,CAC/J,GAAGu2B,GAGHr7C,OAAOwK,KAAKsvD,GAAaj3D,SAAQ,SAAUE,GACzC,IAAIrC,EAAQo5D,EAAY/2D,GACxB,GAAuB,YAAnB,OAAQrC,KAAuBA,GAAkB,kBAARqC,GAA4BrC,EAAMm5D,WAtFvF,SAA+Bn5D,GAC7B,MAA0B,YAAnB,OAAQA,IAAuBA,IAXvB,iBAW+CA,GAAS23D,KAAe33D,EACxF,CAoFsGw5D,CAAsBx5D,GAuC7G,CACL,IAAIy5D,EACJ,SAASC,EAAYC,EAAQC,GAY3B,IAAIC,EAAYF,EAAO/9B,QAAQ,UAAU,SAAUtuB,GACjD,MAAO,IAAIpC,OAAOoC,EAAM04B,cAC1B,IAGI8zB,EAAcF,EACb,IAASD,IAAkC,iBAAhBG,GAA4C,IAAhBA,IAC1DA,EAAc,GAAG5uD,OAAO4uD,EAAa,OAIxB,kBAAXH,SAA8BC,GAA4CA,EAAST,YACrFV,EAAemB,GACfE,EAAcF,EAASjB,QAAQrD,IAEjCuC,GAAY,GAAG3sD,OAAO2uD,EAAW,KAAK3uD,OAAO4uD,EAAa,IAC5D,CACA,IAAIC,EAAuF,QAAxEN,EAASz5D,aAAqC,EAASA,EAAMA,aAA8B,IAAXy5D,EAAoBA,EAASz5D,EACzG,YAAnB,OAAQA,IAAR,MAA+BA,GAAsCA,EAAM23D,IAAgB1lD,MAAMie,QAAQ6pC,GAC3GA,EAAY53D,SAAQ,SAAU82D,GAC5BS,EAAYr3D,EAAK42D,EACnB,IAEAS,EAAYr3D,EAAK03D,EAErB,KA9E4H,CAC1H,IAAIC,GAAgB,EAGhBC,EAAY53D,EAAIw5B,OAEhBq+B,GAAW,GAGV1/C,GAAQ09C,IAAe5C,EACtB2E,EAAU16B,WAAW,KAEvBy6B,GAAgB,EAGhBC,EAhGd,SAA4B53D,EAAKizD,EAAQ8C,GACvC,IAAK9C,EACH,OAAOjzD,EAET,IAAI83D,EAAgB,IAAIjvD,OAAOoqD,GAC3B8E,EAAgC,QAAjBhC,EAAyB,UAAUltD,OAAOivD,EAAe,KAAOA,EAanF,OAVW93D,EAAItB,MAAM,KAAK2D,KAAI,SAAU+B,GACtC,IAAI4zD,EACAC,EAAW7zD,EAAEo1B,OAAO96B,MAAM,OAG1Bw5D,EAAYD,EAAS,IAAM,GAC3BE,GAAgE,QAAhDH,EAAmBE,EAAUjtD,MAAM,eAA0C,IAArB+sD,OAA8B,EAASA,EAAiB,KAAO,GAE3I,MAAO,CADPE,EAAY,GAAGrvD,OAAOsvD,GAAatvD,OAAOkvD,GAAclvD,OAAOqvD,EAAUlzD,MAAMmzD,EAAY12D,UACxEoH,QAAO,OAAmBovD,EAASjzD,MAAM,KAAKrG,KAAK,IACxE,IACYA,KAAK,IACnB,CA6E0By5D,CAFW,MAAdR,EAEsB,GAGA53D,EAHIizD,EAAQ8C,IAKpC59C,GAAS86C,GAAyB,MAAd2E,GAAmC,KAAdA,IAMlDA,EAAY,GACZC,GAAW,GAEb,IAAIQ,EAAe5C,EAAW93D,EAAOg4D,EAAQ,CACzCx9C,KAAM0/C,EACNhC,WAAY8B,EACZ/B,gBAAiB,GAAG/sD,QAAO,OAAmB+sD,GAAkB,CAACgC,MAEnEU,GAAe,OAAeD,EAAc,GAC5CE,EAAcD,EAAa,GAC3BE,EAAmBF,EAAa,GAClCnC,GAAc,QAAc,OAAc,CAAC,EAAGA,GAAcqC,GAC5DhD,GAAY,GAAG3sD,OAAO+uD,GAAW/uD,OAAO0vD,EAC1C,CAwCF,GACF,CACF,IACKpgD,EAEM29C,IAELN,IACFA,EAAW,UAAU3sD,OAAOitD,EAAMpsD,KAAM,MAAMb,OAAO2sD,EAAU,MAE7DM,EAAMzxB,eACR8xB,EAAY,UAAUttD,OAAOitD,EAAMpsD,OAASosD,EAAMzxB,aAAahiC,KAAI,SAAU2nB,GAC3E,MAAO,UAAUnhB,OAAOmhB,EAAM,MAAMnhB,OAAOitD,EAAMpsD,KAAM,IACzD,IAAG/K,KAAK,QATV62D,EAAW,IAAI3sD,OAAO2sD,EAAU,KAY3B,CAACA,EAAUW,EACpB,EAKO,SAASsC,EAAWtkD,EAAMqhD,GAC/B,OAAO,OAAK,GAAG3sD,OAAOsL,EAAKxV,KAAK,MAAMkK,OAAO2sD,GAC/C,CACA,SAASkD,IACP,OAAO,IACT,CACO,IAAIC,EAAe,QAIX,SAASC,EAAiBC,EAAMC,GAC7C,IAAI1jD,EAAQyjD,EAAKzjD,MACfjB,EAAO0kD,EAAK1kD,KACZ8+C,EAAS4F,EAAK5F,OACd6C,EAAQ+C,EAAK/C,MACbiD,EAAQF,EAAKE,MACbC,EAAaH,EAAKG,WAClBC,EAAcJ,EAAKh2B,MACnBA,OAAwB,IAAhBo2B,EAAyB,EAAIA,EACnCC,EAAoB,aAAiB,MACvCC,EAAYD,EAAkBC,UAE9BC,GADOF,EAAkBG,KACVH,EAAkBE,cACjCrD,EAAemD,EAAkBnD,aACjCuD,EAAYJ,EAAkBI,UAC9BC,EAAYL,EAAkBK,UAC9BtD,EAAeiD,EAAkBjD,aACjCC,EAAUgD,EAAkBhD,QAC5BjyC,EAAQi1C,EAAkBj1C,MAC1Bu1C,EAAcN,EAAkBpD,MAC9B2D,EAAWrkD,EAAMskD,UACjBzB,EAAW,CAACwB,GACZD,GACFvB,EAAS90D,KAAK,SAEhB80D,EAAS90D,KAAKsF,MAAMwvD,GAAU,OAAmB9jD,IAGjD,IAAIwlD,EAAqB,KAIrBC,GAAkB,OAAejB,EAAcV,GAEjD,WACE,IAAI4B,EAAY5B,EAASt5D,KAAK,KAG9B,IAAI,QAAUk7D,GAAY,CACxB,IAAIC,GAAmB,QAAgBD,GACrCE,GAAoB,OAAeD,EAAkB,GACrDE,EAAsBD,EAAkB,GACxCE,EAAYF,EAAkB,GAChC,GAAIC,EACF,MAAO,CAACA,EAAqBP,EAAUQ,EAAW,CAAC,EAAGjB,EAAYn2B,EAEtE,CAGA,IAAIq3B,EAAWpB,IACXqB,EAAe1E,EAAWyE,EAAU,CACpCjH,OAAQA,EACR8C,aAAcA,EACdD,MAAO0D,EAAc1D,OAAQt4D,EAC7B2W,KAAMA,EAAKxV,KAAK,KAChBs3D,aAAcA,EACdC,QAASA,IAEXkE,GAAe,OAAeD,EAAc,GAC5CE,EAAcD,EAAa,GAC3BjE,EAAciE,EAAa,GACzB5E,EAAWD,EAAe8E,GAC1BC,EAAU7B,EAAWR,EAAUzC,GACnC,MAAO,CAACA,EAAUiE,EAAUa,EAASnE,EAAa6C,EAAYn2B,EAChE,IAEA,SAAU17B,EAAOozD,GACf,IACED,GADU,OAAenzD,EAAO,GAChB,IACbozD,GAAWpB,IAAc,OAC5B,QAAUmB,EAAS,CACjBriB,KAAM,MAGZ,IAEA,SAAU5vC,GACR,IAAIC,GAAQ,OAAeD,EAAO,GAChCmtD,EAAWltD,EAAM,GAEjBgyD,GADIhyD,EAAM,GACAA,EAAM,IAChB6tD,EAAc7tD,EAAM,GACtB,GAAIqxD,GAAsBnE,IAAa,KAAgB,CACrD,IAAIgF,EAAkB,CACpBviB,KAAM,KACNwiB,SAASjB,GAAsB,QAC/BkB,SAAUpB,EACVzmC,SAAUgQ,GAER83B,EAA4B,mBAAV5B,EAAuBA,IAAUA,EACnD4B,IACFH,EAAgBpH,IAAM,CACpB2F,MAAO4B,IAMX,IAAIC,EAAkB,GAClBC,EAAiB,GACrB59D,OAAOwK,KAAK0uD,GAAar2D,SAAQ,SAAUE,GACrCA,EAAIk9B,WAAW,UACjB09B,EAAgBz3D,KAAKnD,GAErB66D,EAAe13D,KAAKnD,EAExB,IAIA46D,EAAgB96D,SAAQ,SAAUg7D,IAChC,QAAUvF,EAAeY,EAAY2E,IAAa,UAAUjyD,OAAOiyD,IAAY,QAAc,OAAc,CAAC,EAAGN,GAAkB,CAAC,EAAG,CACnIC,SAAS,IAEb,IAIA,IAAIniB,GAAQ,QAAUkd,EAAU8E,EAASE,GACzCliB,EAAM,MAAsBr0B,EAAM82C,WAGlCziB,EAAMr3B,aAAa,KAAYw4C,GAS/BoB,EAAe/6D,SAAQ,SAAUg7D,IAC/B,QAAUvF,EAAeY,EAAY2E,IAAa,WAAWjyD,OAAOiyD,GAAYN,EAClF,GACF,CACF,IACAQ,GAAmB,OAAepB,EAAiB,GACnDqB,EAAiBD,EAAiB,GAClCE,EAAiBF,EAAiB,GAClCG,EAAgBH,EAAiB,GACnC,OAAO,SAAUz5C,GACf,IAAI65C,EAIEzyD,EAON,OANEyyD,EAJG7B,IAAaI,GAAuBP,EAId,gBAAoB,SAAS,OAAS,CAAC,GAAIzwD,EAAQ,CAAC,GAAG,OAAgBA,EAAO,KAAYuyD,IAAiB,OAAgBvyD,EAAO,KAAWwyD,GAAgBxyD,GAAQ,CAC5L0yD,wBAAyB,CACvBC,OAAQL,MALa,gBAAoBvC,EAAO,MASlC,gBAAoB,WAAgB,KAAM0C,EAAW75C,EAC3E,CACF,CACO,IAAI+P,EAAU,SAAiBrN,EAAOs3C,EAAcnrD,GACzD,IAAI0c,GAAS,OAAe7I,EAAO,GACjCuxC,EAAW1oC,EAAO,GAClB2sC,EAAW3sC,EAAO,GAClBwtC,EAAUxtC,EAAO,GACjBqpC,EAAcrpC,EAAO,GACrBksC,EAAalsC,EAAO,GACpB+V,EAAQ/V,EAAO,GAEf0uC,GADUprD,GAAW,CAAC,GACRorD,MAGhB,GAAIxC,EACF,OAAO,KAET,IAAIyC,EAAejG,EAIfkG,EAAc,CAChB,gBAAiB,eACjB,mBAAoB,GAAG7yD,OAAOg6B,IAsBhC,OAlBA44B,GAAe,QAAWjG,EAAUiE,EAAUa,EAASoB,EAAaF,GAGhErF,GACFl5D,OAAOwK,KAAK0uD,GAAar2D,SAAQ,SAAUg7D,GAEzC,IAAKS,EAAaT,GAAY,CAC5BS,EAAaT,IAAa,EAC1B,IAAIa,EAAiBpG,EAAeY,EAAY2E,IAC5Cc,GAAkB,QAAWD,EAAgBlC,EAAU,WAAW5wD,OAAOiyD,GAAYY,EAAaF,GAClGV,EAAU59B,WAAW,UACvBu+B,EAAeG,EAAkBH,EAEjCA,GAAgBG,CAEpB,CACF,IAEK,CAAC/4B,EAAOy3B,EAASmB,EAC1B,gCCpaAx+D,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD04C,EAAiCx4C,EAAyB,EAAQ,SAClEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAI43C,EAAkB,SAAStwD,EAAO8V,GAClC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAM82C,EAAiBl4C,UAbDe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJqzBC,EAAOmC,WAAWy2C,oBCvH30Br+D,EAAOC,QAAU,IAA0B,6GCEpC,SAASq+D,EAAkBhwD,GAChC,MAAM,OAAEiwD,GAAWjwD,EAKnB,IAA+B83B,GAAAA,EAAAA,EAAAA,OAAMm4B,EAAQ,CAAEC,YAAa,UAAxD,EAAE9zD,EAAI,IAAqB07B,EAAdq4B,oXAAAA,CAAcr4B,EAAAA,CAAzB17B,MAkBN,OAhBAA,EAAIyH,MAAMie,QAAQ1lB,GAAKA,EAAI,CAACA,GAgBrB,CAAEg0D,OAfMh0D,EAAExG,QACf,CAACy6D,EAAKC,KACJ,MAAOhL,EAAOiL,EAAY,IAAMD,EAAK39D,MAAM,KACrC69D,EAAkBD,EAAU59D,MAAM,KAAKiD,QAAO,CAACogB,EAAM3gB,KACzD,MAAOpB,EAAKrC,GAASyD,EAAK1C,MAAM,KAGhC,OADAqjB,EAAK/hB,GAAOrC,EACLokB,CAAI,GACV,CAAC,GAEJ,OADAq6C,EAAID,OAAOh5D,KAAK,CAAEkuD,QAAOiL,UAAWC,IAC7BH,CAAG,GAEZ,CAAE5vB,SAAUrkC,EAAGg0D,OAAQ,KAGDA,OAAQD,YAClC,CAEO,SAASM,EAAyBtxD,GAEvC,MADW,CAAE/C,EAAG+C,EAAK7I,KAAKwa,GAAMA,EAAEw0C,QAEpC,gCC/BA,IAAIoL,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QAEnBv/D,EAAiBs/D,EAAY,CAAC,EAAEt/D,gBAKpCM,EAAOC,QAAUT,OAAO0/D,QAAU,SAAgBC,EAAI58D,GACpD,OAAO7C,EAAeu/D,EAASE,GAAK58D,EACtC,qGCPO,MAAMmiD,EAAe/sC,IAC1B,MAAM,aACJumC,EAAY,UACZkhB,EAAS,QACTvhB,EAAO,SACPwhB,EAAQ,cACRC,EAAa,wBACbC,EAAuB,wBACvBC,EAAuB,0BACvBC,EAAyB,UACzBj1C,EAAS,SACT83B,EAAQ,YACRp4B,EAAW,UACXe,EAAS,iBACTy0C,EAAgB,kBAChBnf,EAAiB,WACjBt3B,EAAU,WACV80B,EAAU,aACV4hB,EAAY,SACZC,EAAQ,UACR9Z,EAAS,UACT+Z,EAAS,UACTra,EAAS,mBACTjG,EAAkB,aAClBwB,EAAY,eACZ+e,EAAc,WACdC,EAAU,aACVC,GACEroD,EACEsoD,EAAa,IAAG,QAAKz1C,MAAc83B,KAAYp4B,IACrD,MAAO,CACL,CAACg0B,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACtEknC,gBAAiBwgB,EACjBhd,OAAQ4d,EACRlhB,aAAc0gB,EACd,QAAS,CACPrzB,UAAW,OAEb,CAAC,OAAO8R,UAAsB,CAC5BgiB,aAAcD,EACd,eAAgB,CACd,CAAC,qCAEO/hB,YAAwB,CAC9Ba,aAAc,QAAO,QAAK0gB,OAA8B,QAAKA,OAGjE,CAAC,KAAKvhB,YAAwB,CAC5BnD,SAAU,WAEV3b,QAAS,OACT+gC,SAAU,SACVvgB,WAAY,aACZ/B,QAASyhB,EACTxhB,MAAO4hB,EACP3hB,aACAsB,OAAQ,UACRC,WAAY,OAAOC,mBACnB,CAAC,KAAKrB,iBAA6B,CACjCyB,KAAM,QAER,UAAW,CACTV,QAAS,QAGX,CAAC,GAAGf,iBAA6B,CAC/BkD,OAAQ2e,EACR3gC,QAAS,OACTwgB,WAAY,SACZkC,iBAAkB8d,GAEpB,CAAC,GAAG1hB,WAAuB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,WAAc,CACvEiQ,SAAUi4B,EAEVzB,WAAY,aAAaC,IAEzB6N,IAAK,CACH9N,WAAY,aAAaC,OAI7B,CAAC,GAAGrB,iBAA6B,CAC/B+G,gBAAiB,SAGrB,CAAC,GAAG/G,2BAAuC,CACzCmB,OAAQ,QACR,CAAC,GAAGnB,iBAA6B,CAC/BmB,OAAQ,aAId,CAAC,GAAGnB,aAAyB,CAC3BJ,MAAO7yB,EACP4zB,gBAAiBugB,EACjBgB,UAAWH,EACX,CAAC,OAAO/hB,iBAA6B,CACnCL,QAASiiB,GAEX,WAAY,CACV1gC,QAAS,SAGb,UAAW,CACT,CAAC,KAAK8e,UAAsB,CAC1B,CAAC,KAAKA,YAAwB,CAC5BL,QAAS0hB,EACT/e,mBAAoBgF,EACpB,CAAC,KAAKtH,iBAA6B,CAEjCmiB,kBAAmB1oD,EAAM8oC,KAAKqF,GAAW7E,IAAIuE,GAAWrtB,UAG5D,CAAC,KAAK+lB,eAA0BA,iBAA6B,CAC3DL,QAASiI,KAIf,UAAW,CACT,CAAC,KAAK5H,UAAsB,CAC1Bp1B,SAAUG,EACV80B,WAAY4hB,EACZ,CAAC,KAAKzhB,YAAwB,CAC5BL,QAAS2hB,EACThf,mBAAoB3C,EACpB,CAAC,KAAKK,iBAA6B,CACjCkD,OAAQ4e,EAERK,kBAAmB1oD,EAAM8oC,KAAKof,GAAW5e,IAAIpD,GAAS1lB,UAG1D,CAAC,KAAK+lB,eAA0BA,iBAA6B,CAC3DL,QAASgiB,KAIf,CAAC,GAAG3hB,qBAAiC,CACnCgiB,aAAc,EACd,CAAC,KAAKhiB,aAAyB,CAC7Ba,aAAc,QAAO,QAAK0gB,OAA8B,QAAKA,OAGjE,CAAC,KAAKvhB,qBAAgCA,YAAwB,CAC5D,iDAGI,CACFJ,MAAOyC,EACPlB,OAAQ,gBAIZ,CAAC,IAAInB,uBAAmC,CACtC,CAAC,OAAOA,UAAsB,CAC5B,CAAC,KAAKA,YAAwB,CAC5B,CAAC,GAAGA,iBAA6B,CAC/B9Y,MAAO,EACP0c,iBAAkB,EAClBtB,mBAAoBof,QAM/B,EAEGU,EAAgB3oD,IACpB,MAAM,aACJumC,GACEvmC,EACE4oD,EAAgB,KAAKriB,YAAuBA,YAAuBA,UACzE,MAAO,CACL,CAAC,GAAGA,SAAqB,CACvB,CAACqiB,GAAgB,CACfC,UAAW,mBAGhB,EAEGtc,EAAqBvsC,IACzB,MAAM,aACJumC,EAAY,SACZmhB,EAAQ,WACR3gB,EAAU,YACVx0B,GACEvS,EACJ,MAAO,CACL,CAAC,GAAGumC,gBAA4B,CAC9BW,gBAAiBwgB,EACjBhd,OAAQ,EACR,CAAC,KAAKnE,UAAsB,CAC1BgiB,aAAc,aAAah2C,KAE7B,CAAC,eACKg0B,iCACAA,qBAAgCA,oBAClC,CACFa,aAAc,GAEhB,CAAC,KAAKb,qBAAiC,CACrCgiB,aAAc,GAEhB,CAAC,KAAKhiB,YAAuBA,aAAyB,CACpDW,gBAAiB,cACjBuhB,UAAW,GAEb,CAAC,KAAKliB,YAAuBA,eAA0BA,iBAA6B,CAClFuiB,WAAY/hB,IAGjB,EAEGgiB,EAAgB/oD,IACpB,MAAM,aACJumC,EAAY,UACZ4H,GACEnuC,EACJ,MAAO,CACL,CAAC,GAAGumC,WAAuB,CACzBW,gBAAiB,cACjBwD,OAAQ,EACR,CAAC,KAAKnE,UAAsB,CAC1BgiB,aAAc,EACd,CAAC,KAAKhiB,aAAyB,CAC7BW,gBAAiB,cACjBwD,OAAQ,EACR,CAAC,KAAKnE,iBAA6B,CACjCh2B,aAAc49B,MAKvB,EASH,GAAe,QAAc,YAAYnuC,IACvC,MAAMgpD,GAAgB,QAAWhpD,EAAO,CACtC4nD,wBAAyB,IAAG,QAAK5nD,EAAM6tC,eAAc,QAAK7tC,EAAMmuC,aAChE0Z,wBAAyB,IAAG,QAAK7nD,EAAMkmC,aAAY,QAAKlmC,EAAMkoD,aAC9DJ,0BAA2B9nD,EAAMqnC,iBAEnC,MAAO,CAAC0F,EAAaic,GAAgBzc,EAAmByc,GAAgBD,EAAcC,GAAgBL,EAAcK,IAAgB,QAAkBA,GAAe,IAblIhpD,IAAS,CAC5C2nD,cAAe,GAAG3nD,EAAMmuC,eAAenuC,EAAMkmC,YAC7CwhB,SAAU1nD,EAAMipD,eAChBd,eAAgB,GAAGnoD,EAAMkmC,iBAEzBuhB,UAAWznD,EAAMyS,iFCnPnB,QAAe,IAA0B,sDCAzCpqB,EAAOC,QAAU,IAA0B,qFCc3C,QANA,SAAiBs9B,EAAMijC,GACrB,OAAO,SAASv8D,GACd,OAAOs5B,EAAKijC,EAAUv8D,GACxB,CACF,sFCTI4Y,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,g+OAAi+O,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+CAA+C,MAAQ,GAAG,SAAW,m+EAAm+E,eAAiB,CAAC,khTAAkhT,WAAa,MAE9nnB,8FCJI8L,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,0JAA2J,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iFAAiF,mDAAmD,MAAQ,GAAG,SAAW,kDAAkD,eAAiB,CAAC,8QAA8Q,wIAAwI,WAAa,MAEh2B,6GCLI8vD,EAAY,CAAC,OAAQ,YAAa,UAAW,QAAS,eAAgB,kBAGtEC,EAAsB,CACxBxkD,aAAc,OACdC,eAAgB,UAChBK,YAAY,GAYVmkD,EAAW,SAAkBhzD,GAC/B,IAAIuZ,EAAOvZ,EAAMuZ,KACf9L,EAAYzN,EAAMyN,UAClBwlD,EAAUjzD,EAAMizD,QAChBnmB,EAAQ9sC,EAAM8sC,MACdv+B,EAAevO,EAAMuO,aACrBC,EAAiBxO,EAAMwO,eACvB0kD,GAAY,OAAyBlzD,EAAO8yD,GAC1CK,EAAS,WACTxkD,EAASokD,EASb,GARIxkD,IACFI,EAAS,CACPJ,aAAcA,EACdC,eAAgBA,IAAkB,QAAkBD,MAGxD,QAAgB4kD,IAChB,SAAQ,QAAiB55C,GAAO,0CAA0Clc,OAAOkc,MAC5E,QAAiBA,GACpB,OAAO,KAET,IAAIN,EAASM,EAMb,OALIN,GAAiC,mBAAhBA,EAAOM,OAC1BN,GAAS,QAAc,OAAc,CAAC,EAAGA,GAAS,CAAC,EAAG,CACpDM,KAAMN,EAAOM,KAAK5K,EAAOJ,aAAcI,EAAOH,oBAG3C,QAASyK,EAAOM,KAAM,OAAOlc,OAAO4b,EAAO/a,OAAO,QAAc,OAAc,CACnFuP,UAAWA,EACXwlD,QAASA,EACTnmB,MAAOA,EACP,YAAa7zB,EAAO/a,KACpBu1C,MAAO,MACPJ,OAAQ,MACR5hB,KAAM,eACN,cAAe,QACdyhC,GAAY,CAAC,EAAG,CACjBp9C,IAAKq9C,IAET,EACAH,EAASI,YAAc,YACvBJ,EAASpkD,iBA5CT,WACE,OAAO,OAAc,CAAC,EAAGmkD,EAC3B,EA2CAC,EAASvkD,iBApDT,SAA0BxV,GACxB,IAAIsV,EAAetV,EAAKsV,aACtBC,EAAiBvV,EAAKuV,eACxBukD,EAAoBxkD,aAAeA,EACnCwkD,EAAoBvkD,eAAiBA,IAAkB,QAAkBD,GACzEwkD,EAAoBlkD,aAAeL,CACrC,EA+CA,iFC9DO,MAAM6kD,EAAgC,gBAAoB,CAAC,GAMlE,EALgC,gBAAoB,CAClD5/C,QAAS,CAAC,EACV6/C,aAAc,CAAC,EACfvsD,MAAO,CAAC,mECJK,SAASwsD,EAAav2D,EAAIw2D,QAC1B,IAAPA,IAAiBA,EAAK,GAC1B,IAAIC,GAAQ,IAAAC,SAAO,GACfC,GAAU,IAAAD,UACVznD,GAAW,IAAAynD,QAAO12D,GAClB42D,GAAU,IAAAC,cAAY,WAAc,OAAOJ,EAAM74D,OAAS,GAAG,IAC7DnG,GAAM,IAAAo/D,cAAY,WAClBJ,EAAM74D,SAAU,EAChB+4D,EAAQ/4D,SAAWyjD,aAAasV,EAAQ/4D,SACxC+4D,EAAQ/4D,QAAUsjD,YAAW,WACzBuV,EAAM74D,SAAU,EAChBqR,EAASrR,SACb,GAAG44D,EACP,GAAG,CAACA,IACA1yD,GAAQ,IAAA+yD,cAAY,WACpBJ,EAAM74D,QAAU,KAChB+4D,EAAQ/4D,SAAWyjD,aAAasV,EAAQ/4D,QAC5C,GAAG,IAUH,OARA,IAAAk5D,YAAU,WACN7nD,EAASrR,QAAUoC,CACvB,GAAG,CAACA,KAEJ,IAAA82D,YAAU,WAEN,OADAr/D,IACOqM,CACX,GAAG,CAAC0yD,IACG,CAACI,EAAS9yD,EAAOrM,EAC5B,mBC7BA,IAAIiyD,EAAQ,EAAQ,OAChBqN,EAAc,EAAQ,QA4D1B9hE,EAAOC,QA5CP,SAAqBwnB,EAAQR,EAAQ86C,EAAWC,GAC9C,IAAI1qD,EAAQyqD,EAAU/9D,OAClBA,EAASsT,EACT2qD,GAAgBD,EAEpB,GAAc,MAAVv6C,EACF,OAAQzjB,EAGV,IADAyjB,EAASjoB,OAAOioB,GACTnQ,KAAS,CACd,IAAI7J,EAAOs0D,EAAUzqD,GACrB,GAAK2qD,GAAgBx0D,EAAK,GAClBA,EAAK,KAAOga,EAAOha,EAAK,MACtBA,EAAK,KAAMga,GAEnB,OAAO,CAEX,CACA,OAASnQ,EAAQtT,GAAQ,CAEvB,IAAIzB,GADJkL,EAAOs0D,EAAUzqD,IACF,GACX4qD,EAAWz6C,EAAOllB,GAClB4/D,EAAW10D,EAAK,GAEpB,GAAIw0D,GAAgBx0D,EAAK,IACvB,QAAiB1N,IAAbmiE,KAA4B3/D,KAAOklB,GACrC,OAAO,MAEJ,CACL,IAAIkS,EAAQ,IAAI86B,EAChB,GAAIuN,EACF,IAAIxhE,EAASwhE,EAAWE,EAAUC,EAAU5/D,EAAKklB,EAAQR,EAAQ0S,GAEnE,UAAiB55B,IAAXS,EACEshE,EAAYK,EAAUD,EAAUE,EAA+CJ,EAAYroC,GAC3Fn5B,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,iECxDI6hE,EAA0B,iBAARl0C,MAAoBA,MAAQA,KAAK3uB,SAAWA,QAAU2uB,KAK5E,QAFW,KAAck0C,GAAYC,SAAS,cAATA,kDCUrC,QAJA,WAEA,yECPA,MAAMC,EAAqB,iBAK3B,SAASC,EAA4B9gD,GACnC,MAAM+gD,EAAU,EAAQF,GAExB,IAAKE,EACH,OAEF,MAAM3iD,EAAS,CAAC,EAEhB,IAAK,MAAO,EAAG4iD,EAAWC,MAAaF,GACzB3iD,EAAO4iD,KAAe5iD,EAAO4iD,GAAa,KAClDh9D,MAAK,QAAkBi9D,IAG7B,OAAO7iD,CACT,CAKA,SAAS8iD,EACPlhD,EACAypC,EACA0X,EACA3iE,EACAuyB,EACAuR,EACAwnB,GAEA,MACMiX,EADkB,EAAQF,KAG7B,EAAQA,GAAsB,IAAIvgE,KAE/B0gE,EAAY,GAAGvX,KAAc0X,KAAiBpwC,IAC9Cg5B,EAAagX,EAAQvtD,IAAIs2C,GAE/B,GAAIC,EAAY,CACd,MAAO,CAAEkX,GAAWlX,EACpBgX,EAAQjgE,IAAIgpD,EAAW,CACrBkX,EACA,CACE/iC,IAAK7+B,KAAK6+B,IAAIgjC,EAAQhjC,IAAKz/B,GAC3B+rB,IAAKnrB,KAAKmrB,IAAI02C,EAAQ12C,IAAK/rB,GAC3B4iE,MAAQH,EAAQG,OAAS,EACzBC,IAAMJ,EAAQI,KAAO7iE,EACrB8jC,KAAM2+B,EAAQ3+B,OAGpB,MACEy+B,EAAQjgE,IAAIgpD,EAAW,CACrBkX,EACA,CACE/iC,IAAKz/B,EACL+rB,IAAK/rB,EACL4iE,MAAO,EACPC,IAAK7iE,EACL8jC,SAIR,mBCxEAhkC,EAAOC,QAAU,IAA0B,mICKvC+iE,EAAQ,IAGL,SAASC,EAAQj5D,GACtB,OAAOA,EAAK9I,KAAK8hE,EACnB,CA0CA,QAzC0B,WACxB,SAASE,EAAO5F,IACd,OAAgBz5D,KAAMq/D,IACtB,OAAgBr/D,KAAM,kBAAc,IAEpC,OAAgBA,KAAM,QAAS,IAAI7B,KACnC6B,KAAKy5D,WAAaA,CACpB,CAgCA,OA/BA,OAAa4F,EAAQ,CAAC,CACpB3gE,IAAK,MACLrC,MAAO,SAAa8J,GAClB,OAAOnG,KAAKs/D,MAAMF,EAAQj5D,GAC5B,GAGC,CACDzH,IAAK,QACLrC,MAAO,SAAekjE,GACpB,OAAOv/D,KAAK2iB,MAAMtR,IAAIkuD,IAAe,IACvC,GACC,CACD7gE,IAAK,SACLrC,MAAO,SAAgB8J,EAAMq5D,GAC3B,OAAOx/D,KAAKy/D,SAASL,EAAQj5D,GAAOq5D,EACtC,GAGC,CACD9gE,IAAK,WACLrC,MAAO,SAAkBkjE,EAAYC,GACnC,IACI3S,EAAY2S,EADAx/D,KAAK2iB,MAAMtR,IAAIkuD,IAEb,OAAd1S,EACF7sD,KAAK2iB,MAAM3jB,OAAOugE,GAElBv/D,KAAK2iB,MAAMhkB,IAAI4gE,EAAY1S,EAE/B,KAEKwS,CACT,CAxC0B,iCCRxBljE,EAAOC,QAAU,EAAjB,4jBCcFsjE,IAAAA,OAAaC,KACbD,IAAAA,OAAaE,KACbF,IAAAA,OAAaG,KACbH,IAAAA,OAAaI,KACbJ,IAAAA,OAAaK,KACbL,IAAAA,OAAaM,KAEN,MAAMC,EAASP,IAcf,SAASQ,EACdC,EACAC,EAAc,WACdC,EAAWC,IAAAA,GAAkBC,SAE7B,OAAKJ,EAIElnD,IAAAA,GAAU,GAAGknD,KAAeC,IAAeC,GAHzC,IAIX,CAEO,SAASG,EAAwBC,GACtC,MAAO,CACL/oC,KAAMze,IAAOwnD,GAA2BpnD,OAAOqnD,EAAAA,IAC/CjjC,KAAMxkB,IAAOwnD,GAA2BpnD,OAAOsnD,EAAAA,IAEnD,CAiBO,SAASC,EACdC,EACAC,EACAC,EACAC,EACAX,EAAWC,IAAAA,GAAkBC,SAE7B,MAAMU,EAAYf,EAChBW,EACAC,EACAT,GAGIa,EAAUhB,EACda,EACAC,EACAX,GAIIc,EAAuBD,EAAQE,YAAcH,EAAUG,YAChC,IAAzBD,GACFD,EAAQjsD,IAAIksD,EAAsB,WAGpC,MAAME,EAAWpoD,IAAAA,SAAgBioD,EAAQI,KAAKL,IACxCM,EAAYF,EAASG,SACrBC,EAAWJ,EAAS5mD,QACpBinD,EAAaL,EAAS/c,UACtBqd,EAAaN,EAAShd,UAEtBud,EACW,IAAfF,EAAmB,KAAMz4D,EAAAA,EAAAA,GAAE,oBAAqB,CAAEg2D,MAAOyC,IAAgB,GACrEG,EACW,IAAfF,EAAmB,KAAM14D,EAAAA,EAAAA,GAAE,oBAAqB,CAAEg2D,MAAO0C,IAAgB,GAE3E,GAC4B,IAA1B1kE,KAAKgpC,MAAMs7B,IACE,IAAbE,GACe,IAAfC,GACe,IAAfC,EAEA,OAAO14D,EAAAA,EAAAA,GAAE,oBAGX,GAAIi4D,GAAWD,EACb,OAAOh4D,EAAAA,EAAAA,GAAE,8BAGX,MAAM64D,EACsB,IAA1B7kE,KAAK6lD,MAAMye,GACP,KAAMt4D,EAAAA,EAAAA,GAAE,iBAAkB,CAAEg2D,MAAOhiE,KAAK6lD,MAAMye,KAC9C,GACAQ,EACS,IAAbN,EAAiB,KAAMx4D,EAAAA,EAAAA,GAAE,kBAAmB,CAAEg2D,MAAOwC,IAAc,GACrE,MAAO,KAAIx4D,EAAAA,EAAAA,GACT,WACE64D,IAAaC,IAAcH,IAAgBC,IACjD,CAMO,SAASG,EAA2B7B,GACzC,OAAK8B,EAAmB9B,GAKjBlnD,IAAAA,GAAUknD,EAAaG,IAAAA,GAAkBC,SAAS2B,SAHhD,EAIX,CAEO,SAASC,EAA2B/B,GACzC,OAAKgC,EAAmBhC,GAKjBnnD,IAAAA,GAEH,GApBGA,MAASI,OAAOqnD,EAAAA,OAoBgBN,IACnCE,IAAAA,GAAkBC,SAEnB2B,SARM,EASX,CASO,SAASD,EAAmB9B,GACjC,MAAO,oDAAoDvyC,KAAKuyC,EAClE,CASO,SAASiC,EAAmBhC,GACjC,MAAO,mDAAmDxyC,KAAKwyC,EACjE,CAOO,SAASiC,EAAgBpB,EAAW/hD,GACzC,MAAMojD,EAASrpD,IAAOiG,EAAWqjD,EAAAA,IACjC,OAAOtpD,IAAOgoD,GACXtiE,IAAI,CACHwrB,KAAMm4C,EAAOjxD,IAAI,QACjB+Y,OAAQk4C,EAAOjxD,IAAI,UACnB6tB,OAAQojC,EAAOjxD,IAAI,YAEpB6wD,QACL,CAgCO,SAASM,EAAiB9/B,EAAW+/B,EAAgBC,GAC1D,MAAMC,EAAQ,IAAI3+C,KACZ4+C,EAAY,IAAI5+C,KAAK2+C,GAC3BC,EAAUC,QAAQF,EAAMG,UAAY,GAEpC,MAAMC,EAAoB,IAAI/+C,KAAK0e,GAAWpF,eAE9C,GAAImlC,EAAgB,CAClB,GAAIE,EAAMrlC,iBAAmBylC,EAC3B,OAAOL,GAAUz5D,EAAAA,EAAAA,GAAE,aAAcA,EAAAA,EAAAA,GAAE,SAErC,GAAI25D,EAAUtlC,iBAAmBylC,EAC/B,OAAOL,GAAUz5D,EAAAA,EAAAA,GAAE,iBAAkBA,EAAAA,EAAAA,GAAE,YAE3C,CAEA,MAAO,GA9CF,SAA8By5B,GACnC,MAAMopB,EAAQ7yC,IAAOypB,GAAWrpB,OAAO,OAEvC,OAAQyyC,GACN,IAAK,MACH,MAAO,MAET,IAAK,OAGL,IAAK,MACH,MAAO,OAET,QACE,MAAO,GAAGA,KAEhB,CA8BYkX,CAAqBtgC,MAAczpB,IAAOypB,GAAWrpB,OAC7D,YAEJ,CAmBO,SAAS4pD,EAAwBvgC,EAAW+/B,GAEjD,MAAO,GAAGD,EAAiB9/B,EAAW+/B,GAAgB,MAASxpD,IAC7DypB,GACArpB,OAAOkpD,EAAAA,KACX,CAQO,SAASW,EAAexgC,GAC7B,OAAOzpB,IAAOypB,GAAWrpB,OAAOqnD,EAAAA,GAClC,CAkBO,SAASyC,EAAsBzgC,GACpC,OAAOA,EACHzpB,IAAOypB,GAAWrpB,OAAO+pD,EAAAA,IACzB,IACN,CAeO,SAASC,EAA6B3gC,GAC3C,OAAOA,EACHu9B,EAAOv9B,GAAWrpB,OAAO+pD,EAAAA,IACzB,IACN,CAcO,SAASE,EACdC,GACA,OACElqD,EAAS+pD,EAAAA,GAA6B,SACtC/C,EAAQ,aACRmD,GAAe,GACb,CAAC,GAEL,MAAMC,EAAkC,IAAvBF,EACXG,EAAgBrD,QAAAA,EAAYJ,EAAO0D,GAAGpD,QAK5C,OAJaiD,EACTvD,EAAOwD,GAAUE,GAAGD,GAAerqD,OAAOA,GAC1C4mD,EAAOwD,GAAUpqD,OAAOA,EAG9B,CAiDO,SAASuqD,EAAgBC,EAAWC,EAAU,UACnD,OAAOD,EACJp3C,QACAs3C,SAAS,EAAG,eACZ9uD,IAAI,EAAG6uD,GACPE,QAAQF,EACb,CAWO,SAASG,EAAYC,EAAOC,GACjC,GAAID,IAAUC,EACZ,OAAO,EAGT,MAAMC,EAAiB,aAEvB,OAAOnrD,IAAO,GAAGmrD,KAAkBF,KAASG,QAC1CprD,IAAO,GAAGmrD,KAAkBD,MAE1B,GACC,CACP,CAEO,MAAMG,EAA+B/5C,GAC1CtR,MAAS8qD,SAASx5C,EAAG,WAAWyiB,UAAY,IAEjCu3B,EAAWtrD,IAEXurD,EAAwBngB,IACnC,IAAKzvB,SAASyvB,GAEZ,OADAxM,QAAQjzC,MAAM,2CAA2Cy/C,KAClD,KAGT,IAAIhrC,EAAS,UAQb,OAPIgrC,EAAU,OACZhrC,EAAS,SAEPgrC,EAAU,MACZhrC,EAAS,QAGJkrD,EAAS5mC,IAAc,IAAV0mB,GAAgBhrC,OAAOA,EAAO,EAGvCorD,EAAgCC,IAC3C,IAAIC,EAAgB,CAClB1D,UAAW,KACX/hD,UAAW,KACXgiD,QAAS,KACT0D,QAAS,MAEX,OAAQF,GACN,IAAK,YACH,CACE,MAAMxlD,EAAYjG,MACf8qD,SAAS,GAAI,SACbC,QAAQ,OACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,GAAI,SACbC,QAAQ,OACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MACb8qD,SAAS,GAAI,SACbc,MAAM,OACNxrD,OAAOsnD,EAAAA,IAMVgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QARcjoD,MACb8qD,SAAS,GAAI,SACbc,MAAM,OACNxrD,OAAOqnD,EAAAA,IAMRkE,UAEJ,CACA,MACF,IAAK,WACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,aACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,cACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,GAAI,SACbC,QAAQ,QACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,GAAI,SACbC,QAAQ,QACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,cACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,GAAI,SACbC,QAAQ,QACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,GAAI,SACbC,QAAQ,QACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,QACH,CACE,MAAM1lD,EAAYjG,MAAS+qD,QAAQ,OAAO3qD,OAAOsnD,EAAAA,IAC3CM,EAAYhoD,MAAS+qD,QAAQ,OAAO3qD,OAAOqnD,EAAAA,IAC3CkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,YACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,QACZC,QAAQ,OACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,QACZC,QAAQ,OACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,eACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,SACZC,QAAQ,QACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MACb8qD,SAAS,EAAG,SACZc,MAAM,QACNxrD,OAAOsnD,EAAAA,IAMVgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QARcjoD,MACb8qD,SAAS,EAAG,SACZc,MAAM,QACNxrD,OAAOqnD,EAAAA,IAMRkE,UAEJ,CACA,MACF,IAAK,aACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,GAAI,QACbC,QAAQ,OACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,GAAI,QACbC,QAAQ,OACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MAASI,OAAOsnD,EAAAA,IAGhCgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QALcjoD,MAASI,OAAOqnD,EAAAA,IAM9BkE,UAEJ,CACA,MACF,IAAK,gBACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,UACZC,QAAQ,SACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,UACZC,QAAQ,SACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MACb8qD,SAAS,EAAG,UACZc,MAAM,SACNxrD,OAAOsnD,EAAAA,IAMVgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QARcjoD,MACb8qD,SAAS,EAAG,UACZc,MAAM,SACNxrD,OAAOqnD,EAAAA,IAMRkE,UAEJ,CACA,MACF,IAAK,kBACH,CACE,MAAM1lD,EAAYjG,MACf8qD,SAAS,EAAG,WACZC,QAAQ,WACR3qD,OAAOsnD,EAAAA,IACJM,EAAYhoD,MACf8qD,SAAS,EAAG,WACZC,QAAQ,WACR3qD,OAAOqnD,EAAAA,IACJkE,EAAU3rD,MACb8qD,SAAS,EAAG,WACZc,MAAM,WACNxrD,OAAOsnD,EAAAA,IAMVgE,EAAgB,CACd1D,YACA/hD,YACAgiD,QARcjoD,MACb8qD,SAAS,EAAG,WACZc,MAAM,WACNxrD,OAAOqnD,EAAAA,IAMRkE,UAEJ,EAIJ,+UAAO,IAAKD,cAAAA,CAAeG,kBAAmBJ,8WCvsBhD,IAAIhwC,EAAM,EAAQ,QACdqwC,EAAO,EAAQ,QACfC,EAAa,EAAQ,QAYrBC,EAAcvwC,GAAQ,EAAIswC,EAAW,IAAItwC,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAASnY,GAC1F,OAAO,IAAImY,EAAInY,EACjB,EAF4EwoD,EAI5E5oE,EAAOC,QAAU6oE,mBClBjB9oE,EAAOC,QAAU,IAA0B,iHCgB3C,QAdc,SAAiB+zB,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GAC5D,IAAIujB,EAAS,GAEb,GADelC,EAAK3B,WAAa2B,EAAK3B,UAAYpL,EAAOvnB,eAAes0B,EAAKkgC,OAC/D,CACZ,IAAI,QAAah0D,EAAO,YAAc8zB,EAAK3B,SACzC,OAAOrY,IAET,IAAMqY,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,IACvC,QAAazS,EAAO,WACvB,IAAMqG,QAAQytB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAE/C,CACAqH,EAASkc,EACX,iDCKA,QAXA,SAAkBpwB,EAAOijE,GAKvB,IAJA,IAAIzxD,GAAS,EACTtT,EAAkB,MAAT8B,EAAgB,EAAIA,EAAM9B,OACnCxD,EAAS2R,MAAMnO,KAEVsT,EAAQtT,GACfxD,EAAO8W,GAASyxD,EAASjjE,EAAMwR,GAAQA,EAAOxR,GAEhD,OAAOtF,CACT,mBClBA,IAAIlB,EAAS,EAAQ,QACjB0pE,EAAc,EAAQ,QACtB54C,EAAU,EAAQ,QAGlB64C,EAAmB3pE,EAASA,EAAO4pE,wBAAqBnpE,EAc5DC,EAAOC,QALP,SAAuBC,GACrB,OAAOkwB,EAAQlwB,IAAU8oE,EAAY9oE,OAChC+oE,GAAoB/oE,GAASA,EAAM+oE,GAC1C,mBCjBAjpE,EAAOC,QAAU,IAA0B,kGCA3C,QAAe,IAA0B,mGCkCzC,QAJA,SAAiBC,EAAOipE,GACtB,OAAO,OAAYjpE,EAAOipE,EAC5B,mBChCA,IAAIC,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAsBpBrpE,EAAOC,QAZP,SAAiBwnB,EAAQ/Q,GAMvB,IAHA,IAAIY,EAAQ,EACRtT,GAHJ0S,EAAO0yD,EAAS1yD,EAAM+Q,IAGJzjB,OAED,MAAVyjB,GAAkBnQ,EAAQtT,GAC/ByjB,EAASA,EAAO4hD,EAAM3yD,EAAKY,OAE7B,OAAQA,GAASA,GAAStT,EAAUyjB,OAAS1nB,CAC/C,iECpBe,SAASupE,IACtB,MAAO,CAAEC,GAAe,cAAiB7rC,GAAKA,EAAI,GAAG,GACrD,OAAO6rC,CACT,yFCqCA,SC9BoBC,YD4BE,EC3Bb,SAASC,EAAYrjE,EAAWyT,GACrC,IAAI6vD,EAAWlqE,OAAOiqE,GACtB,KAAK,EAAAE,EAAA,GAAYF,GAAa,CAC5B,IAAIV,GAAW,OAAa3iE,EAAW,GACvCqjE,GAAa,EAAAz/D,EAAA,GAAKy/D,GAClBrjE,EAAY,SAAS7D,GAAO,OAAOwmE,EAASW,EAASnnE,GAAMA,EAAKmnE,EAAW,CAC7E,CACA,IAAIpyD,EAAQkyD,EAAcC,EAAYrjE,EAAWyT,GACjD,OAAOvC,GAAS,EAAIoyD,EAASX,EAAWU,EAAWnyD,GAASA,QAASvX,CACvE,GAVF,IAAoBypE,gCCVpB,IAAII,EAAc,EAAQ,QACtBC,EAAQ,EAAQ,QAIpB7pE,EAAOC,QAAU2pE,GAAeC,GAAM,WAEpC,OAGiB,KAHVrqE,OAAO8lB,gBAAe,WAA0B,GAAG,YAAa,CACrEplB,MAAO,GACP8lB,UAAU,IACTvmB,SACL,qRCXWqqE,EAAyB,gBAAoB,MACjD,SAASC,EAAUC,EAAMC,GAC9B,YAAalqE,IAATiqE,EACK,KAEF,GAAG5+D,OAAO4+D,EAAM,KAAK5+D,OAAO6+D,EACrC,CAKO,SAASC,EAAUD,GAExB,OAAOF,EADE,aAAiBD,GACLG,EACvB,gBCbIpJ,EAAY,CAAC,WAAY,UAIlBsJ,EAA2B,gBAAoB,MAW3C,SAASC,EAA2BpjE,GACjD,IAAIyU,EAAWzU,EAAKyU,SAClB4uD,EAASrjE,EAAKqjE,OACdpJ,GAAY,OAAyBj6D,EAAM65D,GACzC/1D,EAAU,aAAiBq/D,GAC3BG,GAAqB,EAAAxb,EAAA,IAAQ,WAC/B,OAhBgByb,EAgBEz/D,EAhBMkc,EAgBGi6C,EAfzB3wC,GAAQ,OAAc,CAAC,EAAGi6C,GAC9B/qE,OAAOwK,KAAKgd,GAAQ3kB,SAAQ,SAAUE,GACpC,IAAIrC,EAAQ8mB,EAAOzkB,QACLxC,IAAVG,IACFowB,EAAM/tB,GAAOrC,EAEjB,IACOowB,EART,IAAoBi6C,EAAQvjD,EACtBsJ,CAgBJ,GAAG,CAACxlB,EAASm2D,IAAY,SAAU38C,EAAM3gB,GACvC,QAAQ0mE,GAAW/lD,EAAK,KAAO3gB,EAAK,KAAO,EAAA6mE,EAAA,GAAQlmD,EAAK,GAAI3gB,EAAK,IAAI,GACvE,IACA,OAAoB,gBAAoBwmE,EAAYv9C,SAAU,CAC5D1sB,MAAOoqE,GACN7uD,EACL,CC5BA,IAAIgvD,EAAY,GAILC,EAAmC,gBAAoB,MAC3D,SAASC,IACd,OAAO,aAAiBD,EAC1B,CAGO,IAAIE,EAAkC,gBAAoBH,GAC1D,SAASI,EAAYZ,GAC1B,IAAIa,EAAgB,aAAiBF,GACrC,OAAO,WAAc,WACnB,YAAoB7qE,IAAbkqE,EAAyB,GAAG7+D,QAAO,OAAmB0/D,GAAgB,CAACb,IAAaa,CAC7F,GAAG,CAACA,EAAeb,GACrB,CAIO,IAAIc,EAA+B,gBAAoB,MCpB9D,QADkC,gBAAoB,CAAC,mBCCvD,SAASC,EAAUlnD,GACjB,IAAImnD,EAAkBrpE,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GACrF,IAAI,EAAAspE,EAAA,GAAUpnD,GAAO,CACnB,IAAIqnD,EAAWrnD,EAAKqnD,SAASjlC,cACzBklC,EAEJ,CAAC,QAAS,SAAU,WAAY,UAAUhxD,SAAS+wD,IAEnDrnD,EAAKunD,mBAEQ,MAAbF,KAAsBrnD,EAAKwnD,aAAa,QAGpCC,EAAeznD,EAAKwnD,aAAa,YACjCE,EAAcj0D,OAAOg0D,GAGrBE,EAAW,KAWf,OAVIF,IAAiBh0D,OAAOkjB,MAAM+wC,GAChCC,EAAWD,EACFJ,GAAmC,OAAbK,IAC/BA,EAAW,GAITL,GAAsBtnD,EAAK0yC,WAC7BiV,EAAW,MAEO,OAAbA,IAAsBA,GAAY,GAAKR,GAAmBQ,EAAW,EAC9E,CACA,OAAO,CACT,4BC1BIC,EAAOC,EAAA,EAAQD,KACjBE,EAAQD,EAAA,EAAQC,MAChBC,EAAKF,EAAA,EAAQE,GACbC,EAAOH,EAAA,EAAQG,KACfC,EAAQJ,EAAA,EAAQI,MAChBC,EAAML,EAAA,EAAQK,IACdC,EAAON,EAAA,EAAQM,KACfplE,EAAM8kE,EAAA,EAAQ9kE,IACZqlE,EAAY,CAACL,EAAIC,EAAMJ,EAAME,GAkF1B,SAASO,EAAqBtQ,EAAWuQ,GAE9C,ODjEK,SAA0BtoD,GAC/B,IAAImnD,EAAkBrpE,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GACjF4I,GAAM,OAAmBsZ,EAAKuoD,iBAAiB,MAAM11D,QAAO,SAAUxK,GACxE,OAAO6+D,EAAU7+D,EAAO8+D,EAC1B,IAIA,OAHID,EAAUlnD,EAAMmnD,IAClBzgE,EAAI6qB,QAAQvR,GAEPtZ,CACT,CCuDa8hE,CAAiBzQ,GAAW,GAC3BllD,QAAO,SAAUyO,GAC3B,OAAOgnD,EAAS9yD,IAAI8L,EACtB,GACF,CACA,SAASmnD,EAAoBC,EAAsBJ,EAAUK,GAC3D,IAAI1Z,EAASnxD,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,EAEjF,IAAK4qE,EACH,OAAO,KAIT,IAAIE,EAAoCP,EAAqBK,EAAsBJ,GAG/EtJ,EAAQ4J,EAAkC1oE,OAC1C2oE,EAAaD,EAAkCv3D,WAAU,SAAUiQ,GACrE,OAAOqnD,IAAqBrnD,CAC9B,IAaA,OAZI2tC,EAAS,GACS,IAAhB4Z,EACFA,EAAa7J,EAAQ,EAErB6J,GAAc,EAEP5Z,EAAS,IAClB4Z,GAAc,GAKTD,EAHPC,GAAcA,EAAa7J,GAASA,EAItC,CACO,IAAI8J,EAAkB,SAAyB5iE,EAAM+G,GAC1D,IAAIq7D,EAAW,IAAI7zC,IACfs0C,EAAc,IAAI7qE,IAClB8qE,EAAc,IAAI9qE,IAStB,OARAgI,EAAK3H,SAAQ,SAAUE,GACrB,IAAIwqE,EAAU/1B,SAASg2B,cAAc,kBAAkB5hE,OAAO2+D,EAAUh5D,EAAIxO,GAAM,OAC9EwqE,IACFX,EAAStzD,IAAIi0D,GACbD,EAAYtqE,IAAIuqE,EAASxqE,GACzBsqE,EAAYrqE,IAAID,EAAKwqE,GAEzB,IACO,CACLX,SAAUA,EACVS,YAAaA,EACbC,YAAaA,EAEjB,EC/IA,IAAIG,EAAa,yBACbC,EAAa,SAAoBC,GACnC,OAAOA,EAAQjsE,KAAK+rE,EACtB,EAIWG,EAAe,eCPX,SAASC,EAAgB9vC,GACtC,IAAI+vC,EAAS,SAAa/vC,GAC1B+vC,EAAO3kE,QAAU40B,EACjB,IAAIvjB,EAAW,eAAkB,WAE/B,IADA,IAAIuzD,EACKr7D,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAEzB,OAA8C,QAAtCm7D,EAAkBD,EAAO3kE,eAAyC,IAApB4kE,OAA6B,EAASA,EAAgBntE,KAAK4K,MAAMuiE,EAAiB,CAACD,GAAQliE,OAAO/G,GAC1J,GAAG,IACH,OAAOk5B,EAAOvjB,OAAWja,CAC3B,CCdA,IAAIytE,EAAe1sE,KAAKC,SAAS0sE,QAAQ,GAAG7tE,WAAW2H,MAAM,GACzDmmE,EAAa,2ECFF,SAASC,GAAU1D,EAAUzT,EAAUoX,EAAcC,GAClE,IAAIpS,EAAoB,aAAiB0O,GACvC2D,EAAYrS,EAAkBqS,UAC9BC,EAAWtS,EAAkBsS,SAC7BC,EAAavS,EAAkBuS,WAC7BC,EAAM,CACRr2C,OAAQk2C,IAAc7D,GAoBxB,OAhBKzT,IACHyX,EAAIL,aAAe,SAAUM,GAC3BN,SAAoDA,EAAa,CAC/DrrE,IAAK0nE,EACLiE,SAAUA,IAEZH,EAAS9D,EACX,EACAgE,EAAIJ,aAAe,SAAUK,GAC3BL,SAAoDA,EAAa,CAC/DtrE,IAAK0nE,EACLiE,SAAUA,IAEZF,EAAW/D,EACb,GAEKgE,CACT,CC3Be,SAASE,GAAkBC,GACxC,IAAI3S,EAAoB,aAAiB0O,GACvCkE,EAAO5S,EAAkB4S,KACzBC,EAAM7S,EAAkB6S,IACxBC,EAAe9S,EAAkB8S,aACnC,MAAa,WAATF,EACK,KAGFC,EAAM,CACXE,aAFQJ,EAEYG,GAClB,CACFE,YAJQL,EAIWG,EAEvB,CCde,SAASG,GAAK1nE,GAC3B,IAGI2nE,EAHArnD,EAAOtgB,EAAKsgB,KACdvZ,EAAQ/G,EAAK+G,MACb0N,EAAWzU,EAAKyU,SAElB,OAAa,OAAT6L,IAA0B,IAATA,EACZ,MAEW,mBAATA,EACTqnD,EAAwB,gBAAoBrnD,GAAM,OAAc,CAAC,EAAGvZ,IAC3C,kBAATuZ,IAEhBqnD,EAAWrnD,GAENqnD,GAAYlzD,GAAY,KACjC,CChBA,IAAI,GAAY,CAAC,QAOV,SAASmzD,GAAa5nE,GAC3B,IAAImyD,EAAOnyD,EAAKmyD,KACd0V,GAAW,OAAyB7nE,EAAM,IAO5C,OANAxH,OAAO8lB,eAAeupD,EAAU,OAAQ,CACtC35D,IAAK,WAEH,OADA,EAAA+uB,EAAA,KAAQ,EAAO,uHACRk1B,CACT,IAEK0V,CACT,CCTA,IAAI,GAAY,CAAC,QAAS,YAAa,cACrCC,GAAa,CAAC,QAAS,YAAa,WAAY,UAAW,WAAY,WAAY,WAAY,OAAQ,eAAgB,eAAgB,UAAW,YAAa,WAC/JC,GAAa,CAAC,UAmBZC,GAA8B,SAAUC,IAC1C,QAAUD,EAAgBC,GAC1B,IAAIj4C,GAAS,QAAag4C,GAC1B,SAASA,IAEP,OADA,OAAgBnrE,KAAMmrE,GACfh4C,EAAOhsB,MAAMnH,KAAMjC,UAC5B,CAuBA,OAtBA,QAAaotE,EAAgB,CAAC,CAC5BzsE,IAAK,SACLrC,MAAO,WACL,IAAIgvE,EAAcrrE,KAAKkK,MACrBohE,EAAQD,EAAYC,MACpBC,EAAYF,EAAYE,UACxBC,EAAaH,EAAYG,WACzBpO,GAAY,OAAyBiO,EAAa,IAMhDI,GAAc,EAAAC,GAAA,GAAKtO,EAAW,CAAC,WAAY,iBAAkB,cAAe,iBAEhF,OADA,EAAAh9B,EAAA,KAASmrC,EAAW,2EACA,gBAAoB,IAASI,MAAM,OAAS,CAAC,EAAGJ,EAAW,CAC7ED,MAAwB,iBAAVA,EAAqBA,OAAQpvE,GAC1CuvE,EAAa,CACdzrD,IAAKwrD,IAET,KAEKL,CACT,CA9BkC,CA8BhC,aAIES,GAAgC,cAAiB,SAAU1hE,EAAO8V,GACpE,IAAIg3B,EAAQ9sC,EAAM8sC,MAChBr/B,EAAYzN,EAAMyN,UAClByuD,EAAWl8D,EAAMk8D,SAEjBzT,GADUzoD,EAAM2hE,QACL3hE,EAAMyoD,UACjBmZ,EAAW5hE,EAAM4hE,SACjBl0D,EAAW1N,EAAM0N,SACjBm0D,EAAO7hE,EAAM6hE,KACbhC,EAAe7/D,EAAM6/D,aACrBC,EAAe9/D,EAAM8/D,aACrB7M,EAAUjzD,EAAMizD,QAChB6O,EAAY9hE,EAAM8hE,UAClBC,EAAU/hE,EAAM+hE,QAChB7O,GAAY,OAAyBlzD,EAAO+gE,IAC1CiB,EAAY7F,EAAUD,GACtBxO,EAAoB,aAAiB0O,GACvCjU,EAAYuF,EAAkBvF,UAC9B8Z,EAAcvU,EAAkBuU,YAChCC,EAAkBxU,EAAkBjF,SACpC0Z,EAAmBzU,EAAkByU,iBACrCC,EAAkB1U,EAAkBkU,SACpCS,EAAe3U,EAAkB2U,aACjCrC,EAAWtS,EAAkBsS,SAE7BsC,EADuB,aAAiB,GACKA,wBAC3CC,EAAU,GAAGllE,OAAO8qD,EAAW,SAC/Bqa,EAAoB,WACpBlB,EAAa,WACbmB,EAAiBP,GAAmBzZ,EACpCia,GAAe,SAAc5sD,EAAKwrD,GAClCqB,EAAgB7F,EAAYZ,GAQ5B0G,EAAe,SAAsBpwE,GACvC,MAAO,CACLgC,IAAK0nE,EAELkD,SAAS,OAAmBuD,GAAeE,UAC3CzX,KAAMoX,EAAkB5nE,QACxBulE,SAAU3tE,EAEd,EAGIswE,EAAiBlB,GAAYQ,EAG7BW,EAAanD,GAAU1D,EAAUuG,EAAgB5C,EAAcC,GACjEj2C,EAASk5C,EAAWl5C,OACpBm5C,GAAc,OAAyBD,EAAY/B,IAGjDiC,EAAWZ,EAAah2D,SAAS6vD,GAGjCgH,EAAiB9C,GAAkBuC,EAAc1sE,QAgCjDktE,EAAkB,CAAC,EACJ,WAAfnjE,EAAM6hE,OACRsB,EAAgB,iBAAmBF,GAErC,IAAIG,EAA0B,gBAAoBnC,IAAgB,OAAS,CACzEnrD,IAAK0sD,EACLlB,WAAYoB,EACZb,KAAe,OAATA,EAAgB,OAASA,GAAQ,WACvCnE,SAAUjV,EAAW,MAAQ,EAC7B,eAAgB0Z,GAAoBH,EAAY,KAAOA,GACtD9O,EAAW8P,EAAaG,EAAiB,CAC1CE,UAAW,KACX,gBAAiB5a,EACjB3b,OAAO,QAAc,OAAc,CAAC,EAAGo2B,GAAiBp2B,GACxDr/B,UAAW,IAAW80D,GAAS,QAAgB,QAAgB,OAAgB,CAAC,EAAG,GAAGllE,OAAOklE,EAAS,WAAY14C,GAAS,GAAGxsB,OAAOklE,EAAS,aAAcU,GAAW,GAAG5lE,OAAOklE,EAAS,aAAcE,GAAiBh1D,GACzNwlD,QA5CoB,SAAyBzgE,GAC7C,IAAIiwE,EAAJ,CAGA,IAAIpV,EAAOuV,EAAapwE,GACxBygE,SAA0CA,EAAQ4N,GAAaxT,IAC/D4U,EAAY5U,EAHZ,CAIF,EAsCEyU,UArCsB,SAA2BtvE,GAEjD,GADAsvE,SAA8CA,EAAUtvE,GACpDA,EAAE8wE,QAAU1F,EAAA,EAAQI,MAAO,CAC7B,IAAI3Q,EAAOuV,EAAapwE,GAGxBygE,SAA0CA,EAAQ4N,GAAaxT,IAC/D4U,EAAY5U,EACd,CACF,EA6BE0U,QAvBoB,SAAyBvvE,GAC7CwtE,EAAS9D,GACT6F,SAA0CA,EAAQvvE,EACpD,IAqBIkb,EAAuB,gBAAoBizD,GAAM,CACnD3gE,OAAO,QAAc,OAAc,CAAC,EAAGA,GAAQ,CAAC,EAAG,CACjDujE,WAAYN,IAEd1pD,KAAMupD,KAOR,OALIR,IACFc,EAAad,EAAwBc,EAAYpjE,EAAO,CACtDijE,SAAUA,KAGPG,CACT,IACA,SAASI,GAASxjE,EAAO8V,GACvB,IAAIomD,EAAWl8D,EAAMk8D,SAGjBuH,EAAU7G,IACV8G,EAAmB5G,EAAYZ,GAWnC,OARA,aAAgB,WACd,GAAIuH,EAEF,OADAA,EAAQE,aAAazH,EAAUwH,GACxB,WACLD,EAAQG,eAAe1H,EAAUwH,EACnC,CAEJ,GAAG,CAACA,IACAD,EACK,KAIW,gBAAoB/B,IAAkB,OAAS,CAAC,EAAG1hE,EAAO,CAC5E8V,IAAKA,IAET,CACA,SAA4B,aAAiB0tD,ICnN7C,IAAI,GAAY,CAAC,YAAa,YAI1BK,GAAsB,SAA6B5qE,EAAM6c,GAC3D,IAAIrI,EAAYxU,EAAKwU,UACnBC,EAAWzU,EAAKyU,SAChBwlD,GAAY,OAAyBj6D,EAAM,IACzCy0D,EAAoB,aAAiB0O,GACvCjU,EAAYuF,EAAkBvF,UAC9BmY,EAAO5S,EAAkB4S,KACzBC,EAAM7S,EAAkB6S,IAC1B,OAAoB,gBAAoB,MAAM,OAAS,CACrD9yD,UAAW,IAAW06C,EAAWoY,GAAO,GAAGljE,OAAO8qD,EAAW,QAAS,GAAG9qD,OAAO8qD,EAAW,QAAS,GAAG9qD,OAAO8qD,EAAW,KAAK9qD,OAAgB,WAATijE,EAAoB,SAAW,YAAa7yD,GACjLo0D,KAAM,QACL3O,EAAW,CACZ,kBAAkB,EAClBp9C,IAAKA,IACHpI,EACN,EACIo2D,GAA2B,aAAiBD,IAChDC,GAAY1Q,YAAc,cAC1B,6BCrBO,SAAS2Q,GAAcr2D,EAAU0xD,GACtC,OAAO,EAAA4E,GAAA,GAAQt2D,GAAU7W,KAAI,SAAUuH,EAAOmL,GAC5C,GAAkB,iBAAqBnL,GAAQ,CAC7C,IAAI6lE,EAAWC,EACX1vE,EAAM4J,EAAM5J,IACZ0nE,EAA+H,QAAnH+H,EAA6C,QAAhCC,EAAe9lE,EAAM4B,aAAoC,IAAjBkkE,OAA0B,EAASA,EAAahI,gBAAoC,IAAd+H,EAAuBA,EAAYzvE,EAC/J0nE,UAEbA,EAAW,WAAW7+D,OAAO,GAAGA,QAAO,OAAmB+hE,GAAU,CAAC71D,IAAQpW,KAAK,OAEpF,IAAIgxE,EAAa,CACf3vE,IAAK0nE,EACLA,SAAUA,GAKZ,OAAoB,eAAmB99D,EAAO+lE,EAChD,CACA,OAAO/lE,CACT,GACF,kBCxBIgmE,GAAqB,CACvBC,QAAS,EACTC,QAAS,GAEAC,GAAa,CACtBC,QAAS,CACPC,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZM,SAAU,CACRD,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZO,WAAY,CACVF,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZQ,YAAa,CACXH,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZS,QAAS,CACPJ,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZU,WAAY,CACVL,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZW,SAAU,CACRN,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZY,YAAa,CACXP,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,KAGHa,GAAgB,CACzBT,QAAS,CACPC,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZM,SAAU,CACRD,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZO,WAAY,CACVF,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZQ,YAAa,CACXH,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZW,SAAU,CACRN,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZY,YAAa,CACXP,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZS,QAAS,CACPJ,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,IAEZU,WAAY,CACVL,OAAQ,CAAC,KAAM,MACf7zB,SAAUwzB,KCrEP,SAASc,GAAU5E,EAAMpkB,EAAQipB,GACtC,OAAIjpB,IAGAipB,EACKA,EAAe7E,IAAS6E,EAAe/J,WADhD,EAIF,CCEA,IAAIgK,GAAoB,CACtBC,WAAY,aACZC,SAAU,WACV,gBAAiB,WACjB,iBAAkB,WAEL,SAASC,GAAatsE,GACnC,IAAIkvD,EAAYlvD,EAAKkvD,UACnBqd,EAAUvsE,EAAKusE,QACf93D,EAAWzU,EAAKyU,SAChB+3D,EAAQxsE,EAAKwsE,MACbC,EAAazsE,EAAKysE,WAClBC,EAAiB1sE,EAAK0sE,eACtBC,EAAc3sE,EAAK2sE,YACnBnd,EAAWxvD,EAAKwvD,SAChB6X,EAAOrnE,EAAKqnE,KACZuF,EAAkB5sE,EAAK4sE,gBACrBnY,EAAoB,aAAiB0O,GACvC0J,EAAoBpY,EAAkBoY,kBACtCvF,EAAM7S,EAAkB6S,IACxBwF,EAAmBrY,EAAkBqY,iBACrCC,EAAoBtY,EAAkBsY,kBACtCC,EAAoBvY,EAAkBuY,kBACtCC,EAAuBxY,EAAkBwY,qBACzCC,EAAqBzY,EAAkByY,mBACvCC,EAAgB1Y,EAAkB0Y,cAClClqB,EAASwR,EAAkBxR,OAC3BipB,EAAiBzX,EAAkByX,eACjCkB,EAAkB,YAAe,GACnCC,GAAmB,OAAeD,EAAiB,GACnDE,EAAeD,EAAiB,GAChCE,EAAkBF,EAAiB,GACjCG,EAAYlG,GAAM,QAAc,OAAc,CAAC,EAAG0E,IAAgBgB,IAAqB,QAAc,OAAc,CAAC,EAAG1B,IAAa0B,GACpIS,EAAiBtB,GAAkB9E,GACnCqG,EAAezB,GAAU5E,EAAMpkB,EAAQipB,GACvCyB,EAAkB,SAAaD,GACtB,WAATrG,IAKFsG,EAAgBhsE,QAAU+rE,GAE5B,IAAIE,GAAe,QAAc,OAAc,CAAC,EAAGD,EAAgBhsE,SAAU,CAAC,EAAG,CAC/EksE,gBAAiB,GAAGzpE,OAAO8qD,EAAW,WACtC4e,eAAe,EACfC,cAAc,IAIZC,EAAa,WASjB,OARA,aAAgB,WAId,OAHAA,EAAWrsE,SAAU,EAAAqjD,EAAA,IAAI,WACvBuoB,EAAgBhB,EAClB,IACO,WACLvnB,EAAA,EAAInkD,OAAOmtE,EAAWrsE,QACxB,CACF,GAAG,CAAC4qE,IACgB,gBAAoB,KAAS,CAC/Crd,UAAWA,EACXwd,eAAgB,IAAW,GAAGtoE,OAAO8qD,EAAW,WAAW,OAAgB,CAAC,EAAG,GAAG9qD,OAAO8qD,EAAW,QAASoY,GAAMoF,EAAgBS,GACnIc,QAAkB,eAAT5G,EAAwB,WAAa,KAC9CwF,kBAAmBA,EACnBG,kBAAmBQ,EACnBC,eAAgBA,EAChBS,aAAcZ,EACdd,MAAOA,EACPC,WAAYA,EACZ0B,WAAYxB,GAAe,CACzB5gB,OAAQ4gB,GAEV5wE,OAAQyzD,EAAW,GAAK,CAACyd,GACzBmB,gBAAiBtB,EACjBuB,gBAAiBtB,EACjBuB,qBAAsB1B,EACtB2B,YAAarB,EACbsB,YAAaZ,EACba,OAAO,GACNh6D,EACL,kBClFe,SAASi6D,GAAkB1uE,GACxC,IAAI+J,EAAK/J,EAAK+J,GACZ4kE,EAAO3uE,EAAK2uE,KACZxI,EAAUnmE,EAAKmmE,QACf1xD,EAAWzU,EAAKyU,SACdm6D,EAAY,SACZna,EAAoB,aAAiB0O,GACvCjU,EAAYuF,EAAkBvF,UAC9Bge,EAAqBzY,EAAkByY,mBACvCjqB,EAASwR,EAAkBxR,OAC3BipB,EAAiBzX,EAAkByX,eACnC7E,EAAO5S,EAAkB4S,KAGvBwH,EAAc,UAAa,GAC/BA,EAAYltE,QAAU0lE,IAASuH,EAI/B,IAAIxB,EAAkB,YAAgByB,EAAYltE,SAChD0rE,GAAmB,OAAeD,EAAiB,GACnD0B,EAAUzB,EAAiB,GAC3B0B,EAAa1B,EAAiB,GAC5B2B,IAAaH,EAAYltE,SAAUgtE,EAIvC,aAAgB,WACVE,EAAYltE,SACdotE,GAAW,EAEf,GAAG,CAAC1H,IAGJ,IAAIuG,GAAe,OAAc,CAAC,EAAG3B,GAAU2C,EAAW3rB,EAAQipB,IAG9D/F,EAAQnpE,OAAS,IACnB4wE,EAAaG,cAAe,GAI9B,IAAIkB,EAAyBrB,EAAasB,iBAO1C,OANAtB,EAAasB,iBAAmB,SAAUC,GAIxC,OAHKN,EAAYltE,SAAYwtE,GAC3BJ,GAAW,GAENE,aAAuE,EAASA,EAAuBE,EAChH,EACIL,EACK,KAEW,gBAAoB,EAAqB,CAC3DzH,KAAMuH,EACNvL,QAASwL,EAAYltE,SACP,gBAAoB,OAAW,OAAS,CACtD4qE,QAASyC,GACRpB,EAAc,CACfW,YAAarB,EACbY,eAAe,EACfD,gBAAiB,GAAGzpE,OAAO8qD,EAAW,cACpC,SAAUxsD,GACZ,IAAI0sE,EAAkB1sE,EAAM8R,UAC1B66D,EAAc3sE,EAAMmxC,MACtB,OAAoB,gBAAoB,GAAa,CACnD9pC,GAAIA,EACJyK,UAAW46D,EACXv7B,MAAOw7B,GACN56D,EACL,IACF,CCzEA,IAAI,GAAY,CAAC,QAAS,YAAa,QAAS,WAAY,UAAW,WAAY,qBAAsB,WAAY,WAAY,aAAc,iBAAkB,cAAe,aAAc,UAAW,eAAgB,eAAgB,eAAgB,oBAAqB,qBAC5Q,GAAa,CAAC,UAkBZ66D,GAA+B,cAAiB,SAAUvoE,EAAO8V,GACnE,IAAIg3B,EAAQ9sC,EAAM8sC,MAChBr/B,EAAYzN,EAAMyN,UAClB2zD,EAAQphE,EAAMohE,MACdlF,EAAWl8D,EAAMk8D,SAEjBzT,GADUzoD,EAAM2hE,QACL3hE,EAAMyoD,UACjB+f,EAAqBxoE,EAAMwoE,mBAC3B96D,EAAW1N,EAAM0N,SACjBk0D,EAAW5hE,EAAM4hE,SACjB6G,EAAazoE,EAAMyoE,WACnB9C,EAAiB3lE,EAAM2lE,eACvBC,EAAc5lE,EAAM4lE,YACpBF,EAAa1lE,EAAM0lE,WACnBzS,EAAUjzD,EAAMizD,QAChB4M,EAAe7/D,EAAM6/D,aACrBC,EAAe9/D,EAAM8/D,aACrB4I,EAAe1oE,EAAM0oE,aACrBC,EAAoB3oE,EAAM2oE,kBAC1BC,EAAoB5oE,EAAM4oE,kBAC1B1V,GAAY,OAAyBlzD,EAAO,IAC1CgiE,EAAY7F,EAAUD,GACtBxO,EAAoB,aAAiB0O,GACvCjU,EAAYuF,EAAkBvF,UAC9BmY,EAAO5S,EAAkB4S,KACzBuI,EAAWnb,EAAkBmb,SAC7B3G,EAAkBxU,EAAkBjF,SACpC0Z,EAAmBzU,EAAkByU,iBACrCpC,EAAYrS,EAAkBqS,UAC9BsC,EAAe3U,EAAkB2U,aACjCD,EAAkB1U,EAAkBkU,SACpCkH,EAAoBpb,EAAkB+a,WACtCxG,EAAcvU,EAAkBuU,YAChC8G,EAAerb,EAAkBqb,aACjC/I,EAAWtS,EAAkBsS,SAE7BgJ,EADuB,aAAiB,GACQA,2BAEhDC,EADuB,aAAiBjM,GACNiM,aAChCC,EAAgBpM,IAChBqM,EAAmB,GAAG9rE,OAAO8qD,EAAW,YACxCsa,GAAiBP,GAAmBzZ,EACpC6Y,GAAa,WACb8H,GAAW,WAQXtG,GAAiBlB,QAA2CA,EAAWQ,EACvEiH,GAAmBZ,QAA+CA,EAAaK,EAG/EQ,GAAaT,EAASx8D,SAAS6vD,GAC/B0L,IAAQzF,GAAoBmH,GAG5BC,GAAmBN,EAAa5G,EAAcnG,GAG9C6G,GAAanD,GAAU1D,EAAUuG,GAAgBkG,EAAmBC,GACtE/+C,GAASk5C,GAAWl5C,OACpBm5C,IAAc,OAAyBD,GAAY,IAGjDsD,GAAkB,YAAe,GACnCC,IAAmB,OAAeD,GAAiB,GACnDmD,GAAiBlD,GAAiB,GAClCmD,GAAoBnD,GAAiB,GACnCoD,GAAwB,SAA+BC,GACpDlH,IACHgH,GAAkBE,EAEtB,EAeIC,GAAe,WAAc,WAC/B,OAAI//C,IAGS,WAATy2C,IACKkJ,IAAkBP,EAAa,CAAClJ,GAAY7D,GAGvD,GAAG,CAACoE,EAAMz2C,GAAQk2C,EAAWyJ,GAAgBtN,EAAU+M,IAGnD/F,GAAiB9C,GAAkB8I,EAAcjzE,QAqBjD4zE,GAAoBvK,GAAgB,SAAUjS,GAChD4F,SAA0CA,EAAQ4N,GAAaxT,IAC/D4U,EAAY5U,EACd,IAkBIyc,GAAU9H,GAAa,GAAG3kE,OAAO2kE,EAAW,UAG5C+H,GAAyB,gBAAoB,OAAO,OAAS,CAC/DlI,KAAM,WACN/0B,MAAOo2B,GACPz1D,UAAW,GAAGpQ,OAAO8rE,EAAkB,UACvCzL,SAAU+E,GAAiB,MAAQ,EACnC3sD,IAAKwrD,GACLF,MAAwB,iBAAVA,EAAqBA,EAAQ,KAC3C,eAAgBe,GAAoBH,EAAY,KAAOA,EACvD,gBAAiB4F,GACjB,iBAAiB,EACjB,gBAAiBkC,GACjB,gBAAiBrH,GACjBxP,QArDyB,SAA8BzgE,GAEnDiwE,KAGJiG,SAAoDA,EAAa,CAC/Dl0E,IAAK0nE,EACLiE,SAAU3tE,IAIC,WAAT8tE,GACFyI,EAAa7M,GAAWoN,IAE5B,EAwCEvH,QArBoB,WACpB/B,EAAS9D,EACX,GAoBG8G,IAAc5B,EAAoB,gBAAoBT,GAAM,CAC7DpnD,KAAe,eAAT+mD,EAAwB+I,QAAmBr3E,EACjDgO,OAAO,QAAc,OAAc,CAAC,EAAGA,GAAQ,CAAC,EAAG,CACjDgqE,OAAQpC,GAERqC,WAAW,KAEC,gBAAoB,IAAK,CACvCx8D,UAAW,GAAGpQ,OAAO8rE,EAAkB,cAIrCe,GAAiB,SAAa5J,GAMlC,GALa,WAATA,GAAqB4I,EAAcjzE,OAAS,EAC9Ci0E,GAAetvE,QAAU,WAEzBsvE,GAAetvE,QAAU0lE,GAEtB6B,EAAkB,CACrB,IAAIgI,GAAcD,GAAetvE,QAIjCmvE,GAAyB,gBAAoBxE,GAAc,CACzDjF,KAAM6J,GACNhiB,UAAWghB,EACX3D,SAAUgD,GAAsBZ,IAAiB,WAATtH,EACxCqF,eAAgBA,EAChBC,YAAaA,EACbF,WAAYA,EACZD,MAAoB,gBAAoB,EAEtC,CACAnF,KAAsB,eAAhB6J,GAA+B,WAAaA,IACpC,gBAAoB,GAAa,CAC/CnnE,GAAI8mE,GACJh0D,IAAKszD,IACJ17D,IACH+6C,SAAUga,GACVoD,gBAvEuB,SAA8BuC,GAC1C,WAAT9H,GACFyI,EAAa7M,EAAUkM,EAE3B,GAoEK2B,GACL,CAGA,IAAIK,GAAwB,gBAAoB,IAAS3I,MAAM,OAAS,CACtE3rD,IAAKA,EACL+rD,KAAM,QACL3O,EAAW,CACZmQ,UAAW,KACXv2B,MAAOA,EACPr/B,UAAW,IAAW07D,EAAkB,GAAG9rE,OAAO8rE,EAAkB,KAAK9rE,OAAOijE,GAAO7yD,GAAW,QAAgB,QAAgB,QAAgB,OAAgB,CAAC,EAAG,GAAGpQ,OAAO8rE,EAAkB,SAAUvB,IAAO,GAAGvqE,OAAO8rE,EAAkB,WAAYS,IAAe,GAAGvsE,OAAO8rE,EAAkB,aAAcI,IAAmB,GAAGlsE,OAAO8rE,EAAkB,aAAc1G,KACjX5C,aAvIyB,SAA8BM,GACvDuJ,IAAsB,GACtB7J,SAAoDA,EAAa,CAC/DrrE,IAAK0nE,EACLiE,SAAUA,GAEd,EAkIEL,aAjIyB,SAA8BK,GACvDuJ,IAAsB,GACtB5J,SAAoDA,EAAa,CAC/DtrE,IAAK0nE,EACLiE,SAAUA,GAEd,IA4HI4J,IAAY5H,GAAiC,gBAAoBwF,GAAmB,CACtF3kE,GAAI8mE,GACJlC,KAAMA,GACNxI,QAAS8J,GACRx7D,IAWH,OAVIs7D,IACFoB,GAAWpB,EAA2BoB,GAAUpqE,EAAO,CACrDijE,SAAUsG,GACV1/C,OAAQ+/C,GACRhC,KAAMA,GACNnf,SAAUga,MAKM,gBAAoB,EAAqB,CAC3DR,YAAa4H,GACbvJ,KAAe,eAATA,EAAwB,WAAaA,EAC3CsB,SAAUkB,GACV2F,WAAYY,IACXe,GACL,IAoCA,SAnC2B,cAAiB,SAAUpqE,EAAO8V,GAC3D,IAiBIstD,EAjBAlH,EAAWl8D,EAAMk8D,SACnBxuD,EAAW1N,EAAM0N,SACfg2D,EAAmB5G,EAAYZ,GAC/BmO,EAAYtG,GAAcr2D,EAAUg2D,GAGpCD,EAAU7G,IAqBd,OAlBA,aAAgB,WACd,GAAI6G,EAEF,OADAA,EAAQE,aAAazH,EAAUwH,GACxB,WACLD,EAAQG,eAAe1H,EAAUwH,EACnC,CAEJ,GAAG,CAACA,IAKFN,EADEK,EACW4G,EAEa,gBAAoB9B,IAAiB,OAAS,CACtEzyD,IAAKA,GACJ9V,GAAQqqE,GAEO,gBAAoBxN,EAAmBh+C,SAAU,CACnE1sB,MAAOuxE,GACNN,EACL,qBC9Re,SAASkH,GAAQrxE,GAC9B,IAAIwU,EAAYxU,EAAKwU,UACnBq/B,EAAQ7zC,EAAK6zC,MAEbqb,EADsB,aAAiBiU,GACTjU,UAEhC,OADcyU,IAEL,KAEW,gBAAoB,KAAM,CAC5CiF,KAAM,YACNp0D,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,iBAAkB16C,GAC7Dq/B,MAAOA,GAEX,CChBA,IAAI,GAAY,CAAC,YAAa,QAAS,WAAY,YAO/Cy9B,GAAqC,cAAiB,SAAUvqE,EAAO8V,GACzE,IAAIrI,EAAYzN,EAAMyN,UACpB2zD,EAAQphE,EAAMohE,MAEd1zD,GADW1N,EAAMk8D,SACNl8D,EAAM0N,UACjBwlD,GAAY,OAAyBlzD,EAAO,IAE5CmoD,EADsB,aAAiBiU,GACTjU,UAC5BqiB,EAAiB,GAAGntE,OAAO8qD,EAAW,eAC1C,OAAoB,gBAAoB,MAAM,OAAS,CACrDryC,IAAKA,EACL+rD,KAAM,gBACL3O,EAAW,CACZD,QAAS,SAAiBzgE,GACxB,OAAOA,EAAEg7C,iBACX,EACA//B,UAAW,IAAW+8D,EAAgB/8D,KACvB,gBAAoB,MAAO,CAC1Co0D,KAAM,eACNp0D,UAAW,GAAGpQ,OAAOmtE,EAAgB,UACrCpJ,MAAwB,iBAAVA,EAAqBA,OAAQpvE,GAC1CovE,GAAqB,gBAAoB,KAAM,CAChDS,KAAM,QACNp0D,UAAW,GAAGpQ,OAAOmtE,EAAgB,UACpC98D,GACL,IAiBA,SAhBiC,cAAiB,SAAU1N,EAAO8V,GACjE,IAAIomD,EAAWl8D,EAAMk8D,SAGjBmO,EAAYtG,GAFH/jE,EAAM0N,SACIovD,EAAYZ,IAGnC,OADcU,IAELyN,EAEW,gBAAoBE,IAAuB,OAAS,CACtEz0D,IAAKA,IACJ,EAAA0rD,GAAA,GAAKxhE,EAAO,CAAC,aAAcqqE,EAChC,IC3CA,IAAI,GAAY,CAAC,QAAS,WAAY,MAAO,OAAQ,SAOrD,SAASI,GAAoBl+D,EAAMm8C,EAAYP,GAC7C,IAAIuiB,EAAiBhiB,EAAW0C,KAC9Buf,EAAsBjiB,EAAW1uB,MACjC4wC,EAAgBliB,EAAWmiB,QAC3BC,EAAgBpiB,EAAWqiB,QAC7B,OAAQx+D,GAAQ,IAAI1V,KAAI,SAAUm0E,EAAKzhE,GACrC,GAAIyhE,GAAwB,YAAjB,QAAQA,GAAmB,CACpC,IAAI/xE,EAAO+xE,EACT1nE,EAAQrK,EAAKqK,MACboK,EAAWzU,EAAKyU,SAChBlZ,EAAMyE,EAAKzE,IACXa,EAAO4D,EAAK5D,KACZ41E,EAAQhyE,EAAKgyE,MACb/X,GAAY,OAAyBj6D,EAAM,IACzCmzD,EAAY53D,QAAiCA,EAAM,OAAO6I,OAAOkM,GAGrE,OAAImE,GAAqB,UAATrY,EACD,UAATA,EAEkB,gBAAoBs1E,GAAqB,OAAS,CACpEn2E,IAAK43D,GACJ8G,EAAW,CACZkO,MAAO99D,IACLmnE,GAAoB/8D,EAAUg7C,EAAYP,IAI5B,gBAAoByiB,GAAe,OAAS,CAC9Dp2E,IAAK43D,GACJ8G,EAAW,CACZkO,MAAO99D,IACLmnE,GAAoB/8D,EAAUg7C,EAAYP,IAInC,YAAT9yD,EACkB,gBAAoBy1E,GAAe,OAAS,CAC9Dt2E,IAAK43D,GACJ8G,IAEe,gBAAoBwX,GAAgB,OAAS,CAC/Dl2E,IAAK43D,GACJ8G,GAAY5vD,KAAU2nE,GAAmB,IAAVA,IAA6B,gBAAoB,OAAQ,CACzFx9D,UAAW,GAAGpQ,OAAO8qD,EAAW,gBAC/B8iB,GACL,CACA,OAAO,IACT,IAAGriE,QAAO,SAAUoiE,GAClB,OAAOA,CACT,GACF,CACO,SAASE,GAAWx9D,EAAUukB,EAAOmtC,EAAS1W,EAAYP,GAC/D,IAAIgjB,EAAaz9D,EACb09D,GAAmB,OAAc,CACnCL,QAAST,GACTlf,KAAM,GACNpxB,MAAO,GACP6wC,QAAS,IACRniB,GAIH,OAHIz2B,IACFk5C,EAAaV,GAAoBx4C,EAAOm5C,EAAkBjjB,IAErD4b,GAAcoH,EAAY/L,EACnC,CCrEA,IAAI,GAAY,CAAC,YAAa,gBAAiB,QAAS,YAAa,WAAY,QAAS,WAAY,YAAa,KAAM,OAAQ,kBAAmB,WAAY,mBAAoB,mBAAoB,oBAAqB,qBAAsB,kBAAmB,WAAY,YAAa,qBAAsB,aAAc,WAAY,sBAAuB,eAAgB,WAAY,aAAc,eAAgB,SAAU,iBAAkB,uBAAwB,oBAAqB,WAAY,aAAc,sBAAuB,oCAAqC,oBAAqB,UAAW,eAAgB,YAAa,gBAAiB,qBAAsB,0BAA2B,6BAA8B,uBAoCxtBiM,GAAa,GClCbC,GDmCoB,cAAiB,SAAUtrE,EAAO8V,GACxD,IAAIy1D,EACAtyE,EAAO+G,EACTwrE,EAAiBvyE,EAAKkvD,UACtBA,OAA+B,IAAnBqjB,EAA4B,UAAYA,EACpDpF,EAAgBntE,EAAKmtE,cACrBt5B,EAAQ7zC,EAAK6zC,MACbr/B,EAAYxU,EAAKwU,UACjBg+D,EAAgBxyE,EAAKykE,SACrBA,OAA6B,IAAlB+N,EAA2B,EAAIA,EAC1Cx5C,EAAQh5B,EAAKg5B,MACbvkB,EAAWzU,EAAKyU,SAChB2wB,EAAYplC,EAAKolC,UACjBr7B,EAAK/J,EAAK+J,GACV0oE,EAAYzyE,EAAKqnE,KACjBA,OAAqB,IAAdoL,EAAuB,WAAaA,EAC3CC,EAAkB1yE,EAAK0yE,gBACvBljB,GAAWxvD,EAAKwvD,SAChBmjB,GAAmB3yE,EAAK2yE,iBACxBC,GAAwB5yE,EAAK8sE,iBAC7BA,QAA6C,IAA1B8F,GAAmC,GAAMA,GAC5DC,GAAwB7yE,EAAK+sE,kBAC7BA,QAA8C,IAA1B8F,GAAmC,GAAMA,GAC7D3F,GAAqBltE,EAAKktE,mBAC1B4F,GAAkB9yE,EAAK8yE,gBACvBlD,GAAW5vE,EAAK4vE,SAChB9I,GAAY9mE,EAAK8mE,UACjBiM,GAAqB/yE,EAAK+yE,mBAC1BC,GAAkBhzE,EAAKizE,WACvBA,QAAiC,IAApBD,IAAoCA,GACjDE,GAAgBlzE,EAAK2/B,SACrBA,QAA6B,IAAlBuzC,IAAmCA,GAC9CC,GAAsBnzE,EAAKmzE,oBAC3B/J,GAAeppE,EAAKopE,aACpBgK,GAAWpzE,EAAKozE,SAChBC,GAAarzE,EAAKqzE,WAClBC,GAAoBtzE,EAAKunE,aACzBA,QAAqC,IAAtB+L,GAA+B,GAAKA,GACnDrwB,GAASjjD,EAAKijD,OACdipB,GAAiBlsE,EAAKksE,eACtBqH,GAAwBvzE,EAAKitE,qBAC7BA,QAAiD,IAA1BsG,GAAmC,QAAUA,GACpEvG,GAAoBhtE,EAAKgtE,kBACzBrE,GAAW3oE,EAAK2oE,SAChB6G,GAAaxvE,EAAKwvE,WAClBgE,GAAwBxzE,EAAKyzE,oBAC7BA,QAAgD,IAA1BD,GAAmC,MAAQA,GACjEE,GAAoC1zE,EAAK0zE,kCACzC7G,GAAoB7sE,EAAK6sE,kBACzB7S,GAAUh6D,EAAKg6D,QACf8V,GAAe9vE,EAAK8vE,aACpBjH,GAAY7oE,EAAK6oE,UAGjBQ,IAFgBrpE,EAAK2zE,cACA3zE,EAAK4zE,mBACA5zE,EAAKqpE,yBAC/B0G,GAA6B/vE,EAAK+vE,2BAClC8D,GAAsB7zE,EAAK6zE,oBAC3B5Z,IAAY,OAAyBj6D,EAAM,IACzC8zE,GAAiB,WAAc,WAC/B,MAAO,CAAC7B,GAAWx9D,EAAUukB,EAAOo5C,GAAYyB,GAAqB3kB,GAAY+iB,GAAWx9D,EAAUukB,EAAOo5C,GAAY,CAAC,EAAGljB,GAC/H,GAAG,CAACz6C,EAAUukB,EAAO66C,KACrBE,IAAkB,OAAeD,GAAgB,GACjD1C,GAAY2C,GAAgB,GAC5BC,GAAmBD,GAAgB,GACjC3G,GAAkB,YAAe,GACnCC,IAAmB,OAAeD,GAAiB,GACnD6G,GAAU5G,GAAiB,GAC3B6G,GAAa7G,GAAiB,GAC5B8G,GAAe,WACfnR,GhB3GS,SAAiBj5D,GAC9B,IAAIqqE,GAAkB,EAAAC,EAAA,GAAetqE,EAAI,CACrC7Q,MAAO6Q,IAETuqE,GAAmB,OAAeF,EAAiB,GACnDpR,EAAOsR,EAAiB,GACxBC,EAAUD,EAAiB,GAM7B,OALA,aAAgB,WACd5N,GAAc,EACd,IAAI8N,EAAmD,GAAGpwE,OAAOoiE,EAAc,KAAKpiE,OAAOsiE,GAC3F6N,EAAQ,gBAAgBnwE,OAAOowE,GACjC,GAAG,IACIxR,CACT,CgB8FayR,CAAQ1qE,GACf2qE,GAAsB,QAAdtvC,EAQRgvC,IAAkB,EAAAC,EAAA,GAAevB,GAAiB,CAClD55E,MAAO02E,GACP+E,UAAW,SAAmB3xE,GAC5B,OAAOA,GAAQovE,EACjB,IAEFkC,IAAmB,OAAeF,GAAiB,GACnDQ,GAAiBN,GAAiB,GAClCO,GAAoBP,GAAiB,GAInCQ,GAAkB,SAAyB9xE,GAE7C,SAAS+xE,IACPF,GAAkB7xE,GAClB8sE,UAAoDA,GAAa9sE,EACnE,CAJiBpI,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,IAM9E,IAAAo6E,WAAUD,GAEVA,GAEJ,EAGIE,GAAmB,WAAeL,IACpCM,IAAmB,OAAeD,GAAkB,GACpDE,GAAsBD,GAAiB,GACvCE,GAAyBF,GAAiB,GACxCG,GAAW,UAAa,GAGxBC,GAAkB,WAAc,WAChC,MAAc,WAATjO,GAA8B,aAATA,IAAwBqL,EAG3C,CAACrL,GAAM,GAFL,CAAC,WAAYqL,EAGxB,GAAG,CAACrL,EAAMqL,IACV6C,IAAkB,OAAeD,GAAiB,GAClDE,GAAaD,GAAgB,GAC7BE,GAAwBF,GAAgB,GACtCG,GAA8B,WAAfF,GACfG,GAAmB,WAAeH,IACpCI,IAAmB,OAAeD,GAAkB,GACpDE,GAAeD,GAAiB,GAChCE,GAAkBF,GAAiB,GACjCG,GAAmB,WAAeN,IACpCO,IAAmB,OAAeD,GAAkB,GACpDE,GAA0BD,GAAiB,GAC3CE,GAA6BF,GAAiB,GAChD,aAAgB,WACdF,GAAgBN,IAChBU,GAA2BT,IACtBJ,GAAS1zE,UAIV+zE,GACFb,GAAkBM,IAGlBL,GAAgB1C,IAEpB,GAAG,CAACoD,GAAYC,KAGhB,IAAIU,GAAmB,WAAe,GACpCC,IAAoB,OAAeD,GAAkB,GACrDE,GAAmBD,GAAkB,GACrCE,GAAsBF,GAAkB,GACtCG,GAAaF,IAAoBjF,GAAUp0E,OAAS,GAAsB,eAAjB64E,IAAiClD,GAG9F,aAAgB,WACV+C,IACFN,GAAuBR,GAE3B,GAAG,CAACA,KACJ,aAAgB,WAEd,OADAS,GAAS1zE,SAAU,EACZ,WACL0zE,GAAS1zE,SAAU,CACrB,CACF,GAAG,IAGH,IAAI60E,GlBlMS,WACb,IAAIpJ,EAAkB,WAAe,CAAC,GAEpCqJ,GADmB,OAAerJ,EAAiB,GACZ,GACrCsJ,GAAc,IAAAjc,QAAO,IAAIz/D,KACzB27E,GAAc,IAAAlc,QAAO,IAAIz/D,KACzBi6E,EAAmB,WAAe,IACpCC,GAAmB,OAAeD,EAAkB,GACpD2B,EAAe1B,EAAiB,GAChC2B,EAAkB3B,EAAiB,GACjC4B,GAAY,IAAArc,QAAO,GACnBsc,GAAa,IAAAtc,SAAO,GAMpBiQ,GAAe,IAAA9P,cAAY,SAAUr/D,EAAK4qE,GAO5C,IAAI8J,EAAgB/J,EAAWC,GAC/BwQ,EAAYh1E,QAAQnG,IAAIy0E,EAAe10E,GACvCm7E,EAAY/0E,QAAQnG,IAAID,EAAK00E,GAC7B6G,EAAUn1E,SAAW,EACrB,IoB1CsBqR,EpB0ClBjJ,EAAK+sE,EAAUn1E,QoB1CGqR,EpB2CZ,WACJjJ,IAAO+sE,EAAUn1E,UAjBlBo1E,EAAWp1E,SACd80E,EAAoB,CAAC,GAmBvB,EoB7CFz4E,QAAQC,UAAUuD,KAAKwR,EpB8CvB,GAAG,IACC23D,GAAiB,IAAA/P,cAAY,SAAUr/D,EAAK4qE,GAC9C,IAAI8J,EAAgB/J,EAAWC,GAC/BwQ,EAAYh1E,QAAQ9F,OAAOo0E,GAC3ByG,EAAY/0E,QAAQ9F,OAAON,EAC7B,GAAG,IACCy7E,GAAsB,IAAApc,cAAY,SAAU53D,GAC9C6zE,EAAgB7zE,EAClB,GAAG,IACCi0E,GAAa,IAAArc,cAAY,SAAUqI,EAAUiU,GAC/C,IACIl0E,GADW0zE,EAAY/0E,QAAQuM,IAAI+0D,IAAa,IA/CpChpE,MAAMgsE,GAoDtB,OAHIiR,GAAmBN,EAAaxjE,SAASpQ,EAAK,KAChDA,EAAKqrB,QAAQ+3C,GAERpjE,CACT,GAAG,CAAC4zE,IACA5G,GAAe,IAAApV,cAAY,SAAUuc,EAAUlU,GACjD,OAAOkU,EAASxnE,QAAO,SAAUwiD,GAC/B,YAAgBp5D,IAATo5D,CACT,IAAGlzD,MAAK,SAAUg9D,GAEhB,OADkBgb,EAAWhb,GAAS,GACnB7oD,SAAS6vD,EAC9B,GACF,GAAG,CAACgU,IAYAG,GAAiB,IAAAxc,cAAY,SAAUr/D,GACzC,IAAI00E,EAAgB,GAAG7rE,OAAOsyE,EAAY/0E,QAAQuM,IAAI3S,IAAM6I,OAAO6hE,GAC/DkR,EAAW,IAAI5lD,IAMnB,OALA,OAAmBolD,EAAYh1E,QAAQqB,QAAQ3H,SAAQ,SAAU4gE,GAC3DA,EAAQxjC,WAAWw3C,IACrBkH,EAASrlE,IAAI6kE,EAAYh1E,QAAQuM,IAAI+tD,GAEzC,IACOkb,CACT,GAAG,IAMH,OALA,aAAgB,WACd,OAAO,WACLJ,EAAWp1E,SAAU,CACvB,CACF,GAAG,IACI,CAEL+oE,aAAcA,EACdC,eAAgBA,EAChBqM,oBAAqBA,EAErBhH,aAAcA,EACdiH,WAAYA,EACZI,QAlCY,WACZ,IAAIr0E,GAAO,OAAmB0zE,EAAY/0E,QAAQqB,QAIlD,OAHI4zE,EAAa55E,QACfgG,EAAKtE,KAAK0nE,GAELpjE,CACT,EA6BEo0E,eAAgBA,EAEpB,CkBkGuBE,GACnB5M,GAAe8L,GAAe9L,aAC9BC,GAAiB6L,GAAe7L,eAChCqM,GAAsBR,GAAeQ,oBACrChH,GAAewG,GAAexG,aAC9BiH,GAAaT,GAAeS,WAC5BI,GAAUb,GAAea,QACzBD,GAAiBZ,GAAeY,eAC9BG,GAAsB,WAAc,WACtC,MAAO,CACL7M,aAAcA,GACdC,eAAgBA,GAEpB,GAAG,CAACD,GAAcC,KACd6M,GAAkB,WAAc,WAClC,MAAO,CACLxH,aAAcA,GAElB,GAAG,CAACA,KACJ,aAAgB,WACdgH,GAAoBT,GAAanE,GAAahB,GAAU7wE,MAAM81E,GAAmB,GAAGz4E,KAAI,SAAUuH,GAChG,OAAOA,EAAM5J,GACf,IACF,GAAG,CAAC86E,GAAkBE,KAGtB,IAAIkB,IAAmB,EAAApD,EAAA,GAAevN,IAAaiM,KAAwD,QAAhCT,EAAclB,GAAU,UAAgC,IAAhBkB,OAAyB,EAASA,EAAY/2E,KAAM,CACnKrC,MAAO4tE,KAET4Q,IAAmB,OAAeD,GAAkB,GACpDE,GAAkBD,GAAiB,GACnCE,GAAqBF,GAAiB,GACpC3Q,GAAWV,GAAgB,SAAU9qE,GACvCq8E,GAAmBr8E,EACrB,IACIyrE,GAAaX,GAAgB,WAC/BuR,QAAmB7+E,EACrB,KACA,IAAA8+E,qBAAoBh7D,GAAK,WACvB,MAAO,CACLvJ,KAAM6gE,GAAaxyE,QACnBivC,MAAO,SAAejlC,GACpB,IAAImsE,EAYEC,EAXF/0E,EAAOq0E,KACPW,EAAmBpS,EAAgB5iE,EAAMggE,IAC3CoC,EAAW4S,EAAiB5S,SAC5BS,EAAcmS,EAAiBnS,YAC/BC,EAAckS,EAAiBlS,YAC7BmS,EAAoB9S,EAAqBgP,GAAaxyE,QAASyjE,GAC/D8S,EAAiBP,SAAyDA,GAAkBM,EAAkB,GAAKnS,EAAY53D,IAAI+pE,EAAkB,IAEjJ,QAFwJH,EAAkB1G,GAAU+G,MAAK,SAAUr7D,GACzM,OAAQA,EAAK/V,MAAMyoD,QACrB,WAAoC,IAApBsoB,OAA6B,EAASA,EAAgBv8E,IAClE68E,EAAiBvS,EAAY33D,IAAIgqE,GACjCA,GAAkBE,IAEpBA,SAA2G,QAAlDL,EAAwBK,EAAexnC,aAA6C,IAA1BmnC,GAAoCA,EAAsB3+E,KAAKg/E,EAAgBzsE,GAEtM,EAEJ,IAIA,IAAI0sE,IAAmB,EAAAhE,EAAA,GAAelB,IAAuB,GAAI,CAC7Dj6E,MAAOkwE,GAEPuL,UAAW,SAAmB3xE,GAC5B,OAAImI,MAAMie,QAAQpmB,GACTA,EAELA,QACKovE,GAEF,CAACpvE,EACV,IAEFs1E,IAAmB,OAAeD,GAAkB,GACpDE,GAAmBD,GAAiB,GACpCE,GAAsBF,GAAiB,GA2CrCG,GAAkBpS,GAAgB,SAAUjS,GAC9C4F,UAA0CA,GAAQ4N,GAAaxT,IAzC1C,SAA0BA,GAC/C,GAAI6e,GAAY,CAEd,IAEIyF,EAFAC,EAAYvkB,EAAK74D,IACjB61B,EAAQmnD,GAAiBnlE,SAASulE,GAIlCD,EAFA/4C,GACEvO,EACcmnD,GAAiB5oE,QAAO,SAAUpU,GAChD,OAAOA,IAAQo9E,CACjB,IAEgB,GAAGv0E,QAAO,OAAmBm0E,IAAmB,CAACI,IAGnD,CAACA,GAEnBH,GAAoBE,GAGpB,IAAIE,GAAa,QAAc,OAAc,CAAC,EAAGxkB,GAAO,CAAC,EAAG,CAC1DgV,aAAcsP,IAEZtnD,EACFiiD,UAAgDA,GAAWuF,GAE3DxF,UAA4CA,GAASwF,EAEzD,EAGKj5C,IAAYi1C,GAAe53E,QAA2B,WAAjB64E,IACxCf,GAAgB1C,GAEpB,CAQEyG,CAAiBzkB,EACnB,IACI0kB,GAAuBzS,GAAgB,SAAU9qE,EAAKozE,GACxD,IAAIoK,EAAcnE,GAAejlE,QAAO,SAAUhQ,GAChD,OAAOA,IAAMpE,CACf,IACA,GAAIozE,EACFoK,EAAYr6E,KAAKnD,QACZ,GAAqB,WAAjBs6E,GAA2B,CAEpC,IAAImD,EAAc5B,GAAe77E,GACjCw9E,EAAcA,EAAYppE,QAAO,SAAUhQ,GACzC,OAAQq5E,EAAY1mE,IAAI3S,EAC1B,GACF,EACK,EAAA6jE,EAAA,GAAQoR,GAAgBmE,GAAa,IACxCjE,GAAgBiE,GAAa,EAEjC,IAOIE,GnB9MC,SAA0B5R,EAAMP,EAAW4N,EAAO3qE,EAAIoqE,EAAckD,EAASJ,EAAYiC,EAAkBC,EAA0BC,GAC1I,IAAIC,EAAS,WACTC,EAAY,WAChBA,EAAU33E,QAAUmlE,EACpB,IAAIyS,EAAW,WACbv0B,EAAA,EAAInkD,OAAOw4E,EAAO13E,QACpB,EAMA,OALA,aAAgB,WACd,OAAO,WACL43E,GACF,CACF,GAAG,IACI,SAAUhgF,GACf,IAAI8wE,EAAQ9wE,EAAE8wE,MACd,GAAI,GAAGjmE,OAAO8gE,EAAW,CAACH,EAAOC,EAAKC,EAAMplE,IAAMuT,SAASi3D,GAAQ,CACjE,IAAIrnE,EAAOq0E,IACPmC,EAAoB5T,EAAgB5iE,EAAM+G,GAC1C0vE,EAAqBD,EACvBpU,EAAWqU,EAAmBrU,SAC9BS,EAAc4T,EAAmB5T,YACjCC,EAAc2T,EAAmB3T,YAI/BL,EA3FV,SAAyBt1B,EAAei1B,GAEtC,IADA,IAAIzjE,EAAUwuC,GAAiBH,SAASG,cACjCxuC,GAAS,CACd,GAAIyjE,EAAS9yD,IAAI3Q,GACf,OAAOA,EAETA,EAAUA,EAAQsxC,aACpB,CACA,OAAO,IACT,CAkF6BymC,CADH7T,EAAY33D,IAAI44D,GACkB1B,GAClDuU,EAAe7T,EAAY53D,IAAIu3D,GAC/BmU,EAhKV,SAAmBvS,EAAMwS,EAAanF,EAAOrK,GAC3C,IAAIyP,EACAx8D,EAAO,OACP3gB,EAAO,OACP8X,EAAW,WACXhQ,EAAS,SAGb,GAAa,WAAT4iE,GAAqBgD,IAAUtF,EACjC,MAAO,CACLgV,eAAe,GAGnB,IAAIC,GAAS,QAAgB,OAAgB,CAAC,EAAGnV,EAAIvnD,GAAOwnD,EAAMnoE,GAC9DyvE,GAAa,QAAgB,QAAgB,QAAgB,OAAgB,CAAC,EAAG1H,EAAMgQ,EAAQ/3E,EAAO2gB,GAAOsnD,EAAO8P,EAAQp3D,EAAO3gB,GAAOmoE,EAAMrwD,GAAWswD,EAAOtwD,GAClK43D,GAAW,QAAgB,QAAgB,QAAgB,QAAgB,QAAgB,OAAgB,CAAC,EAAGxH,EAAIvnD,GAAOwnD,EAAMnoE,GAAOooE,EAAOtwD,GAAWuwD,EAAKvgE,GAASigE,EAAMgQ,EAAQjgE,EAAWhQ,GAASmgE,EAAO8P,EAAQjwE,EAASgQ,GAUrO,OADsF,QAA1EqlE,EARE,CACZE,OAAQA,EACR5N,WAAYA,EACZC,SAAUA,EACV4N,UAAWD,EACXE,cAAe7N,EACf8N,YAAa9N,GAEgB,GAAGjoE,OAAOijE,GAAMjjE,OAAOy1E,EAAc,GAAK,eAAkC,IAAbC,OAAsB,EAASA,EAASzP,IAEpI,KAAK/sD,EACH,MAAO,CACLyuC,QAAS,EACTquB,SAAS,GAEb,KAAKz9E,EACH,MAAO,CACLovD,OAAQ,EACRquB,SAAS,GAEb,KAAK31E,EACH,MAAO,CACLsnD,QAAS,EACTquB,SAAS,GAEb,KAAK3lE,EACH,MAAO,CACLs3C,OAAQ,EACRquB,SAAS,GAEb,QACE,OAAO,KAEb,CA+GsBC,CAAUhT,EAAgD,IAA1C4P,EAAW0C,GAAc,GAAM38E,OAAc03E,EAAOrK,GAGpF,IAAKuP,GAAavP,IAAUpF,GAAQoF,IAAUxqE,EAC5C,QAIEqlE,EAAU9xD,SAASi3D,IAAU,CAACpF,EAAMplE,GAAKuT,SAASi3D,KACpD9wE,EAAEi7C,iBAEJ,IAAI8lC,EAAW,SAAkBC,GAC/B,GAAIA,EAAa,CACf,IAAIC,EAAqBD,EAGrBpkD,EAAOokD,EAAYvU,cAAc,KACjC7vC,SAAoCA,EAAKmuC,aAAa,UACxDkW,EAAqBrkD,GAEvB,IAAIwiD,EAAY7S,EAAY53D,IAAIqsE,GAChCrB,EAAiBP,GAOjBY,IACAF,EAAO13E,SAAU,EAAAqjD,EAAA,IAAI,WACfs0B,EAAU33E,UAAYg3E,GACxB6B,EAAmB5pC,OAEvB,GACF,CACF,EACA,GAAI,CAACq0B,EAAMplE,GAAKuT,SAASi3D,IAAUuP,EAAUQ,UAAY3U,EAAkB,CAGzE,IAAID,EAQAiV,EACAxC,EAAoB9S,EALtBK,EAHGC,GAA6B,WAAT4B,EAtJjC,SAAyBtB,GAEvB,IADA,IAAIpkE,EAAUokE,EACPpkE,GAAS,CACd,GAAIA,EAAQ2iE,aAAa,kBACvB,OAAO3iE,EAETA,EAAUA,EAAQsxC,aACpB,CAIA,OAAO,IACT,CA6IiCynC,CAAgBjV,GAFhB0O,EAAaxyE,QAO6ByjE,GAEjEqV,EADEpQ,IAAUpF,EACIgT,EAAkB,GACzB5N,IAAUxqE,EACHo4E,EAAkBA,EAAkBj7E,OAAS,GAE7CuoE,EAAoBC,EAAsBJ,EAAUK,EAAkBmU,EAAU7tB,QAGlGuuB,EAASG,EAGX,MAAO,GAAIb,EAAUG,cAEnBZ,EAAyBQ,QAEpB,GAAIC,EAAU7tB,OAAS,EAC5BotB,EAAyBQ,GAAc,GACvCJ,IACAF,EAAO13E,SAAU,EAAAqjD,EAAA,IAAI,WAEnBw0B,EAAoB5T,EAAgB5iE,EAAM+G,GAC1C,IAAI4wE,EAAYlV,EAAiBnB,aAAa,iBAI1CmW,EAAgBlV,EAHIv1B,SAAS4qC,eAAeD,GAGWnB,EAAkBpU,UAG7EkV,EAASG,EACX,GAAG,QACE,GAAIb,EAAU7tB,OAAS,EAAG,CAC/B,IAAIoa,EAAU8Q,EAAW0C,GAAc,GACnCkB,EAAY1U,EAAQA,EAAQnpE,OAAS,GACrC89E,EAAoBjV,EAAY33D,IAAI2sE,GAGxC1B,EAAyB0B,GAAW,GACpCP,EAASQ,EACX,CACF,CAGA1B,SAA0DA,EAAgB7/E,EAC5E,CACF,CmBuF0BwhF,CAAiBlF,GAAc8B,GAAiBjD,GAAO1R,GAAMmR,GAAckD,GAASJ,GAAYW,IAJzF,SAAkCr8E,EAAKozE,GACpE,IAAIqM,EAAWrM,QAAmCA,GAAQiG,GAAexhE,SAAS7X,GAClFu9E,GAAqBv9E,EAAKy/E,EAC5B,GACsKnS,IAGtK,aAAgB,WACdqL,IAAW,EACb,GAAG,IAGH,IAAI+G,GAAiB,WAAc,WACjC,MAAO,CACL5R,wBAAyBA,GACzB0G,2BAA4BA,GAEhC,GAAG,CAAC1G,GAAyB0G,KAKzBmL,GAAoC,eAAjBrF,IAAiClD,GAAmBvB,GAE3EA,GAAUxzE,KAAI,SAAUuH,EAAOmL,GAC7B,OAGE,gBAAoB,EAAqB,CACvC/U,IAAK4J,EAAM5J,IACX2tE,iBAAkB54D,EAAQ+lE,IACzBlxE,EAEP,IAGI0vD,GAAyB,gBAAoB,KAAU,OAAS,CAClE9qD,GAAIA,EACJ8S,IAAKs3D,GACLjlB,UAAW,GAAG9qD,OAAO8qD,EAAW,aAChCkb,UAAW,KACX+Q,cAAe,GACf3mE,UAAW,IAAW06C,EAAW,GAAG9qD,OAAO8qD,EAAW,SAAU,GAAG9qD,OAAO8qD,EAAW,KAAK9qD,OAAOyxE,IAAerhE,GAAW,QAAgB,OAAgB,CAAC,EAAG,GAAGpQ,OAAO8qD,EAAW,qBAAsB+mB,IAA0B,GAAG7xE,OAAO8qD,EAAW,QAASwlB,IAAQvH,GAC1QiO,IAAKh2C,EACLyO,MAAOA,EACP+0B,KAAM,OACNnE,SAAUA,EACVh+D,KAAMy0E,GACNG,cAAe,SAAuBv+D,GACpC,OAAOA,CACT,EACAw+D,cAAe,SAAuBC,GAEpC,IAAI36E,EAAM26E,EAAUv+E,OAChBw+E,EAAkB56E,EAAMwwE,GAAU7wE,OAAOK,GAAO,KACpD,OAAoB,gBAAoB,GAAS,CAC/CqiE,SAAUmD,EACV+B,MAAOsL,GACPjkB,SAAU+mB,GACVhH,mBAA4B,IAAR3uE,EACpB8rE,eAAgBgH,IACf8H,EACL,EACAC,SAA2B,eAAjB5F,IAAiClD,GAAmB,IAAS+I,WAAa,IAASC,WAC7FC,IAAK,OACL,kBAAkB,EAClBhP,gBAAiB,SAAyBiP,GACxCvF,GAAoBuF,EACtB,EACAhT,UAAWoQ,IACVhf,KAGH,OAAoB,gBAAoB,EAAer0C,SAAU,CAC/D1sB,MAAO+hF,IACO,gBAAoBnY,EAAUl9C,SAAU,CACtD1sB,MAAO8pE,IACO,gBAAoB,EAAqB,CACvD9T,UAAWA,EACXie,cAAeA,EACf9F,KAAMwO,GACNjG,SAAUgF,GACVtN,IAAKoN,GAGLllB,SAAUA,GAGVvM,OAAQgxB,GAAUhxB,GAAS,KAC3BipB,eAAgB+H,GAAU/H,GAAiB,KAG3CpF,UAAW6Q,GACX5Q,SAAUA,GACVC,WAAYA,GAGZoC,aAAcmP,GAGdhR,aAAcA,GAGduF,iBAAkBA,GAClBC,kBAAmBA,GACnBG,mBAAoBA,GACpBF,kBAAmBA,GACnBC,qBAAsBA,GACtBJ,kBAAmBA,GAGnBlE,SAAUA,GACV6G,WAAYA,GAGZxG,YAAayP,GACb3I,aAAcgJ,IACA,gBAAoB/U,EAAgBn+C,SAAU,CAC5D1sB,MAAOs+E,IACN3iB,IAAyB,gBAAoB,MAAO,CACrDhhB,MAAO,CACLzb,QAAS,QAEX,eAAe,GACD,gBAAoBsrC,EAAoB99C,SAAU,CAChE1sB,MAAOq+E,IACNvD,OACL,ICtdA3B,GAAW7J,KAAO,GAClB6J,GAAWyJ,QAAU,GACrBzJ,GAAW0J,UAAY,GACvB1J,GAAWhB,QAAUA,GACrB,6BEbA,IAAIjP,EAAW,EAAQ,QACnBJ,EAAc,EAAQ,QACtB54C,EAAU,EAAQ,QAClB4yD,EAAU,EAAQ,QAClBC,EAAW,EAAQ,QACnB5Z,EAAQ,EAAQ,QAiCpBrpE,EAAOC,QAtBP,SAAiBwnB,EAAQ/Q,EAAMwsE,GAO7B,IAJA,IAAI5rE,GAAS,EACTtT,GAHJ0S,EAAO0yD,EAAS1yD,EAAM+Q,IAGJzjB,OACdxD,GAAS,IAEJ8W,EAAQtT,GAAQ,CACvB,IAAIzB,EAAM8mE,EAAM3yD,EAAKY,IACrB,KAAM9W,EAAmB,MAAVinB,GAAkBy7D,EAAQz7D,EAAQllB,IAC/C,MAEFklB,EAASA,EAAOllB,EAClB,CACA,OAAI/B,KAAY8W,GAAStT,EAChBxD,KAETwD,EAAmB,MAAVyjB,EAAiB,EAAIA,EAAOzjB,SAClBi/E,EAASj/E,IAAWg/E,EAAQzgF,EAAKyB,KACjDosB,EAAQ3I,IAAWuhD,EAAYvhD,GACpC,wHChCO,MAAM07D,GAAe,QAAY,KAG3BC,EAAgB,CAC3BzrE,MAAO,IACPoZ,SAAU,CACRA,SAAU,KAEZsyD,QAAQ,GAEGC,EAAkC,gBAAoBF,oBCdnEpjF,EAAOC,QAAU,IAA0B,iHCa3C,QAXc,SAAiB+G,GAC7B,IAAIyU,EAAWzU,EAAKyU,SAClBo/B,EAAQ7zC,EAAK6zC,MACbqb,EAAYlvD,EAAKkvD,UACnB,OAAoB,gBAAoB,MAAO,CAC7C16C,UAAW,GAAGpQ,OAAO8qD,EAAW,YAChCrb,OAAO,OAAc,CACnBE,SAAU,YACTF,IACFp/B,EACL,mBCZAzb,EAAOC,QAAU,IAA0B,uDCA3CD,EAAOC,QAAU,IAA0B,wECEvCsjF,EAAS,EAAQ,QACjBC,EAAQ,EAAQ,QAChBC,EAAS,EAAQ,QAErB,SAASC,EAAiBnjF,GAAK,OAAOA,GAAKA,EAAE0lB,WAAa1lB,EAAI,CAAE2lB,QAAS3lB,EAAK,CAE9E,IAAIojF,EAA+BD,EAAgBH,GAO/CK,EAJoBL,EAAOM,cAAc,CAC3CC,UAAW,SAMTC,EAA8B,CAAEC,IAClCA,EAA2B,aAAI,eAC/BA,EAAyB,WAAI,aAC7BA,EAA2B,aAAI,eAC/BA,EAAwB,UAAI,YAC5BA,EAAsB,QAAI,UAC1BA,EAA2B,aAAI,eAC/BA,EAAmB,KAAI,OACvBA,EAAqB,OAAI,SACzBA,EAA4B,cAAI,gBACzBA,GAVyB,CAW/BD,GAAe,CAAC,GAiCfE,EAA8B,CAAEC,IAClCA,EAA8B,gBAAI,kBAClCA,EAAmC,qBAAI,uBACvCA,EAA+B,iBAAI,mBACnCA,EAAsC,wBAAI,0BAC1CA,EAA8B,gBAAI,kBAClCA,EAAmC,qBAAI,uBACvCA,EAAoC,sBAAI,wBACxCA,EAAyB,WAAI,aAC7BA,EAA0B,YAAI,cAC9BA,EAAuB,SAAI,WAC3BA,EAAwB,UAAI,YAC5BA,EAAsB,QAAI,UAC1BA,EAA2B,aAAI,eAC/BA,EAA2B,aAAI,eAC/BA,EAA4B,cAAI,gBAChCA,EAAgC,kBAAI,oBACpCA,EAA6B,eAAI,iBACjCA,EAAgC,kBAAI,oBAC7BA,GAnByB,CAoB/BD,GAAe,CAAC,GAQfE,EAAiB,CACnBC,YAAY,EACZC,eAAe,EACfC,SAAU,CACRC,SAAU,CAAC,EACXC,WAAY,CAAC,EACbxsE,QAAS,CAAC,IAGVysE,EAAWvkF,GAAUw7C,QAAQ1M,IAAI,0BAA2B9uC,EAAO,WACnEwkF,EAAUxkF,GAAUw7C,QAAQ1M,IAAI,0BAA2B9uC,EAAO,UAClEykF,EAAS,EAAG75E,UAAS++C,WAAYnO,QAAQ1M,IAAI,mCAAoClkC,EAAS,UAAW++C,GA4NrG+6B,EA3NoBnB,EAAO7lD,MAAM,CACnCZ,MAAO,CACLlyB,QAAS,CAAC,GAEZ+5E,OAAQ,CACNC,oBArDsB,EAAGh6E,cACvBA,EAAQw5E,SAASE,WAAWO,kBACvBj6E,EAAQu5E,eAqDjBW,QAAS,CACPC,aAAcxB,EAAO5qE,OAAOsrE,GAC5BC,WAAYX,EAAO5qE,OAAO,CACxBurE,YAAY,IAEdc,YAAazB,EAAO5qE,OAAO,CACzBurE,YAAY,IAEde,qBAAsB1B,EAAO5qE,OAAO,CAClCwrE,eAAe,IAEjBe,sBAAuB3B,EAAO5qE,OAAO,CACnCwrE,eAAe,IAEjBgB,eAAgB5B,EAAO5qE,OAAO,CAC5ByrE,SAAU,EAAGz6B,QAAO/+C,cAClB,IAAIyd,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxB,MAAM,SAAE27D,EAAQ,WAAEC,GAAe36B,GAC3B,MAAEy7B,EAAK,MAAE3tE,GAAU7M,EAAQw5E,SAASC,UACpC,gBAAEgB,EAAe,kBAAEC,GAAsB16E,EAAQw5E,SAASE,WAC1DF,EAAW,CACfC,SAAU,CACRe,MAA4D,OAApD/8D,EAAiB,MAAZg8D,OAAmB,EAASA,EAASe,OAAiB/8D,EAAK+8D,EACxE3tE,MAA4D,OAApD6Q,EAAiB,MAAZ+7D,OAAmB,EAASA,EAAS5sE,OAAiB6Q,EAAK7Q,GAE1E6sE,WAAY,CACVe,gBAAoF,OAAlE98D,EAAmB,MAAd+7D,OAAqB,EAASA,EAAWe,iBAA2B98D,EAAK88D,EAChGC,kBAAwF,OAApE98D,EAAmB,MAAd87D,OAAqB,EAASA,EAAWgB,mBAA6B98D,EAAK88D,GAEtGxtE,QAAS,CACPutE,gBAAoF,OAAlE58D,EAAmB,MAAd67D,OAAqB,EAASA,EAAWe,iBAA2B58D,EAAK48D,EAChGC,kBAAwF,OAApE58D,EAAmB,MAAd47D,OAAqB,EAASA,EAAWgB,mBAA6B58D,EAAK48D,IAIxG,OADAlB,EAASE,WAAWO,mBAAqBT,EAASE,WAAWgB,mBAAqBlB,EAASE,WAAWgB,kBAAoB,EACnHlB,CAAQ,IAGnBmB,cAAehC,EAAO5qE,OAAO,CAC3ByrE,SAAU,EAAGx5E,cACX,IAAIyd,EAMJ,MALiB,CACfg8D,SAAU,CAAC,EACXC,WAAY,CAAC,EACbxsE,QAA+C,OAArCuQ,EAAKzd,EAAQw5E,SAASE,YAAsBj8D,EAAKzd,EAAQw5E,SAAStsE,QAE/D,IAGnB0tE,oBAAqBjC,EAAOphE,MAAK,EAAGwnC,QAAO/+C,cAAc,CACvD1H,KAAM,gBACNohF,WAAY15E,EAAQw5E,SAAStsE,QAC7B04C,UAAW,eAAgB7G,EAAQA,EAAM26B,WAAa,CAAC,SAG1DmB,cAAc,CACf76E,QAASq5E,EACTpzE,GA7E2B,aA8E3B60E,QAAS,eACTC,GAAI,CACF,qBAAqD,CACnDb,QAAS,wBAEX,sBAAuD,CACrDA,QAAS,0BAGbc,OAAQ,CACN,aAAqC,CACnCtxD,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,iBAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,iBAC5BmB,GAAI,CACF,eAAyC,CACvCb,QAAS,CAAC,sBAAuB,mBAEnC,gBAA2C,CACzCh+D,OAAQ,aACRg+D,QAAS,CAAC,sBAAuB,qBAIvC,aAAqC,CACnCxwD,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,iBAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,iBAC5BmB,GAAI,CACF,eAAyC,CACvCb,QAAS,CAAC,sBAAuB,mBAEnC,iBAA6C,CAC3Ch+D,OAAQ,SACRg+D,QAAS,CAAC,sBAAuB,mBAEnC,kBAA+C,CAAEh+D,OAAQ,eAG7D,WAAiC,CAC/BwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,eAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,eAC5BmB,GAAI,CACF,qBAAqD,CAAE7+D,OAAQ,aAC/D,iBAA6C,CAAEA,OAAQ,UACvD,wBAA2D,CAAEA,OAAQ,YAGzE,UAA+B,CAC7BwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,cAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,cAC5BmB,GAAI,CACF,aAAqC,CACnC7+D,OAAQ,gBAEV,aAAqC,CACnCA,OAAQ,UACRg+D,QAAS,CAAC,sBAAuB,mBAEnC,QAA2B,CACzBh+D,OAAQ,mBAId,QAA2B,CACzBwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,YAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,YAC5BmB,GAAI,CACF,SAA6B,CAC3B7+D,OAAQ,QAEV,QAA2B,CACzBA,OAAQ,iBAEV,gBAA2C,CACzCA,OAAQ,gBAEV,iBAA6C,CAAEA,OAAQ,YAG3D,aAAqC,CACnCwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,iBAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,iBAC5BmB,GAAI,CACF,aAAqC,CACnC7+D,OAAQ,UACRg+D,QAAS,CAAC,sBAAuB,mBAEnC,UAA+B,CAC7Bh+D,OAAQ,QAEV,QAA2B,CACzBA,OAAQ,iBAEV,gBAA2C,CACzCA,OAAQ,gBAEV,iBAA6C,CAAEA,OAAQ,YAG3D,KAAqB,CACnBwN,MAAO,CACLivD,EAAOuC,MAAM,CAAE5iF,KAAM,eACrBuhF,EACA,IAAMF,EAAQ,SAEhBsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,SAC5BmB,GAAI,CACF,WAAiC,CAC/BI,MAAO,sBACPjB,QAAS,cAEX,YAAmC,CACjCA,QAAS,eAEX,sBAAuD,CACrDh+D,OAAQ,eACRg+D,QAAS,CAAC,gBAEZ,aAAqC,CACnCh+D,OAAQ,eACRg+D,QAAS,eAEX,QAA2B,CACzBh+D,OAAQ,gBACRg+D,QAAS,eAEX,gBAA2C,CACzCh+D,OAAQ,eACRg+D,QAAS,CAAC,cAAe,kBAE3B,iBAA6C,CAAEh+D,OAAQ,YAG3D,OAAyB,CACvBwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,WAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,WAC5BmB,GAAI,CACF,cAAuC,CAAE7+D,OAAQ,mBAGrD,cAAuC,CACrCwN,MAAO,CAACmwD,EAAQ,IAAMF,EAAQ,kBAC9BsB,KAAM,CAACpB,EAAQ,IAAMD,EAAO,kBAC5BmB,GAAI,CACF,kBAA+C,CAC7C7+D,OAAQ,eACRg+D,QAAS,qBAsCnB/kF,EAAQ,GAAcgkF,EACtBhkF,EAAQ,GA3BkB8N,IACxB,MAAM,SAAE0N,GAAa1N,GACd2F,EAAOwyE,EAAMC,GAAS3C,EAAM4C,WAAWxB,GACxC1kF,EAAQqjF,EAAOz0B,SACnB,KAAM,CACJg1B,UAAWoC,EACXG,WAAY3yE,EACZ4yE,aAAcH,KAEhB,CAACzyE,EAAOwyE,EAAMC,IAEhB,OAAuBxC,EAAgBz9D,QAAQa,cAAc68D,EAA0Bh3D,SAAU,CAAE1sB,SAASub,EAAS,EAiBvHxb,EAAQ,GAAc8jF,EACtB9jF,EAAQ,GAnUkByT,IACxB,OAAQA,GACN,IAAK,gBACH,MAAO,iBACT,IAAK,eACH,MAAO,aACT,IAAK,aACH,MAAO,gBACT,IAAK,YACL,IAAK,eACL,IAAK,OACH,MAAO,YACT,IAAK,UACH,MAAO,gBACT,IAAK,eACH,MAAO,kBACT,IAAK,SACH,MAAO,cACT,QACE,MAAO,GACX,EAgTFzT,EAAQ,GAboB,KAC1B,MAAM6K,EAAUy4E,EAAOnuB,WAAWwuB,GAClC,IAAK94E,EACH,MAAM,IAAInJ,MAAM,yDAElB,OAAOmJ,CAAO,8BC1VhBy7E,IAAIC,OAAO,6BAA6B,CAAC,UAAU,UAAU,WAAW,SAASC,EAASxmF,EAASD,GAAQA,EAAOC,QAAU,ugHAE5H,IAEAsmF,IAAIC,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,6BAA6B,gBAAgB,SAASC,EAASxmF,EAASD,GAAQC,EAAQymF,QAAS,EACnKzmF,EAAQ0mF,SAAW,mBACnB1mF,EAAQ2mF,QAAUH,EAAQ,sBAChBA,EAAQ,cACdI,gBAAgB5mF,EAAQ2mF,QAAS3mF,EAAQ0mF,SAE7C,IACoBJ,IAAIE,QAAQ,CAAC,2BAA2B,SAASznE,GACkBhf,IAC3DA,EAAOC,QAAU+e,EAEzB,mDCMpB,QAZA,SAAmBY,EAAQknE,EAAOC,GAShC,OARInnE,GAAWA,SACC7f,IAAVgnF,IACFnnE,EAASA,GAAUmnE,EAAQnnE,EAASmnE,QAExBhnF,IAAV+mF,IACFlnE,EAASA,GAAUknE,EAAQlnE,EAASknE,IAGjClnE,CACT,mBCnBA5f,EAAOC,QAAU,IAA0B,kRCUvC+mF,EAD4B,aAAiB,KAEjDA,EAAQC,aAAe,IACvBD,EAAQE,MAAQ,IAChBF,EAAQnuD,KAAO,IACfmuD,EAAQG,QAAU,IAClBH,EAAQI,SAAW,IAEnB,yNCTO,MAAMC,EAAU,kBACrB7rE,EAAS,OACT8rE,EAAS,UAEG,EADTC,oXAAAA,CAAAA,EAAAA,CAFH/rE,YACA8rE,WAGA,OACE,SAACE,EAAAA,wUAAIA,CAAAA,CACHhsE,WAAWI,EAAAA,EAAAA,GAAK,UAAWJ,GAC3BisE,cAAaH,GACTC,GAAAA,mBCjBV,IAAIG,EAAe,EAAQ,QACvB34B,EAAW,EAAQ,QAevB/uD,EAAOC,QALP,SAAmBwnB,EAAQllB,GACzB,IAAIrC,EAAQ6uD,EAAStnC,EAAQllB,GAC7B,OAAOmlF,EAAaxnF,GAASA,OAAQH,CACvC,yBCdA,WAMC,SAAU2a,EAAMwF,GAChB,aAGkClgB,EAAOC,QACxCD,EAAOC,QAAUigB,EAAQ,EAAQ,UAEjC,EAAO,CAAC,gBAAkB,0BAAP,EAAF,GAAS,+BAI5B,CAXA,CAWErc,GAAM,SAAUiZ,GACjB,kBAGuB/c,IAAnB+c,EAAO6G,SAAyB7G,EAAOoJ,UAC1CpJ,EAASA,EAAOoJ,SASjB,IAMCyhE,EALAC,EAAQ,CAAC,EACT5+C,EAAQ,CAAC,EACT6+C,EAAY,CAAC,EACbC,EAAQ,CAAC,EACTC,EAAU,CAAC,EAGPjrE,GAAoC,iBAAnBA,EAAO6G,SAC5BqkE,EAAS,gGAGV,IAAIC,EAAgBnrE,EAAO6G,QAAQ1iB,MAAM,KACxCinF,GAASD,EAAc,GACvBE,GAASF,EAAc,GAWxB,SAASG,EAAcC,GACtB,OAAIA,EAAW,GACPA,EAAW,GACRA,EAAW,GACdA,EAAW,GAEZA,EAAW,EACnB,CAEA,SAASC,EAAahiF,GACrB,IAAIqB,EAAI,EACP2qD,EAAQhsD,EAAOrF,MAAM,KACrBsnF,EAAQj2B,EAAM,GACdk2B,EAAal2B,EAAM,IAAM,GACzBm2B,EAAa,EAEbC,EAAM,EACNr+C,EAAO,EASR,IAN6B,KAAzB/jC,EAAO6qC,WAAW,KACrBxpC,EAAI,EACJ0iC,GAAQ,GAID1iC,EAAI4gF,EAAMvkF,OAAQ2D,IAEzB+gF,EAAM,GAAKA,EADLN,EAAcG,EAAMp3C,WAAWxpC,IAKtC,IAAKA,EAAI,EAAGA,EAAI6gF,EAAWxkF,OAAQ2D,IAClC8gF,GAA0B,GAE1BC,GADMN,EAAcI,EAAWr3C,WAAWxpC,IAC7B8gF,EAGd,OAAOC,EAAMr+C,CACd,CAEA,SAASs+C,EAAY7iF,GACpB,IAAK,IAAI6B,EAAI,EAAGA,EAAI7B,EAAM9B,OAAQ2D,IACjC7B,EAAM6B,GAAK2gF,EAAaxiF,EAAM6B,GAEhC,CAUA,SAASihF,EAAY3hE,EAAQ4hE,GAC5B,IAAclhF,EAAV+gF,EAAM,GAEV,IAAK/gF,EAAI,EAAGA,EAAIkhF,EAAQ7kF,OAAQ2D,IAC/B+gF,EAAI/gF,GAAKsf,EAAO4hE,EAAQlhF,IAGzB,OAAO+gF,CACR,CAEA,SAASI,EAAQxiF,GAChB,IAAImH,EAAOnH,EAAOrF,MAAM,KACvB8nF,EAAUt7E,EAAK,GAAGxM,MAAM,KACxB4nF,EAAUp7E,EAAK,GAAGxM,MAAM,IACxB+nF,EAAUv7E,EAAK,GAAGxM,MAAM,KAQzB,OANA0nF,EAAWI,GACXJ,EAAWE,GACXF,EAAWK,GA1BZ,SAAqBljF,EAAO9B,GAC3B,IAAK,IAAI2D,EAAI,EAAGA,EAAI3D,EAAQ2D,IAC3B7B,EAAM6B,GAAK7G,KAAKgpC,OAAOhkC,EAAM6B,EAAI,IAAM,GAAiB,IAAX7B,EAAM6B,IAGpD7B,EAAM9B,EAAS,GAAKilF,GACrB,CAsBCC,CAAWF,EAAQH,EAAQ7kF,QAEpB,CACNiI,KAAawB,EAAK,GAClB07E,MAAaP,EAAWn7E,EAAK,GAAGxM,MAAM,KAAM4nF,GAC5CE,QAAaH,EAAWG,EAASF,GACjCG,OAAaA,EACbI,WAAuB,EAAV37E,EAAK,GAEpB,CAMA,SAAS47E,EAAMC,GACVA,GACHzlF,KAAK0lF,KAAKT,EAAOQ,GAEnB,CAiGA,SAASE,EAASC,EAAcC,GAC/B7lF,KAAKoI,KAAOw9E,EACZ5lF,KAAK+jF,MAAQ8B,CACd,CAMA,SAASC,EAASC,GACjB,IAAIC,EAAaD,EAAGroD,eAChBuoD,EAAOD,EAAWr8E,MAAM,gBAaf,SARZs8E,EAJGA,GAAQA,EAAK,IAGhBA,EAAOA,EAAK,GAAGt8E,MAAM,WACPs8E,EAAK5oF,KAAK,SAAMnB,GAI9B+pF,EAAOD,EAAWr8E,MAAM,gBACVs8E,EAAK,QAAK/pF,KAIxB+pF,OAAO/pF,GAGR8D,KAAK+lF,IAAMA,EACX/lF,KAAKimF,KAAOA,EACZjmF,KAAKkvD,OAAS62B,EAAGG,mBAClB,CAEA,SAASC,EAAUC,GAClBpmF,KAAKomF,KAAOA,EACZpmF,KAAKqmF,YAAc,EACnBrmF,KAAKsmF,UAAY,CAClB,CASA,SAASC,EAAWC,EAAKC,GAGxB,IAFA,IAAIC,EAAKplB,EAEDA,EAAyC,MAAhCmlB,EAAKV,GAAKS,EAAIT,IAAM,KAAO,KAC3CW,EAAM,IAAIZ,EAAS,IAAI9hE,KAAKwiE,EAAIT,GAAKzkB,KAC7BpS,SAAWs3B,EAAIt3B,OACtBs3B,EAAME,EAEND,EAAOC,EAIT,OAAOF,CACR,CA8BA,SAASG,EAAgBrmF,EAAGC,GAC3B,OAAID,EAAE+lF,cAAgB9lF,EAAE8lF,YAChB/lF,EAAE+lF,YAAc9lF,EAAE8lF,YAEtB/lF,EAAEgmF,YAAc/lF,EAAE+lF,UACdhmF,EAAEgmF,UAAY/lF,EAAE+lF,UAEpBhmF,EAAE8lF,KAAKb,aAAehlF,EAAE6lF,KAAKb,WACzBhlF,EAAE6lF,KAAKb,WAAajlF,EAAE8lF,KAAKb,WAE5BhlF,EAAE6lF,KAAKh+E,KAAKw+E,cAActmF,EAAE8lF,KAAKh+E,KACzC,CAEA,SAASy+E,EAAcz+E,EAAM88E,GAC5B,IAAIphF,EAAGorD,EAEP,IADA41B,EAAWI,GACNphF,EAAI,EAAGA,EAAIohF,EAAQ/kF,OAAQ2D,IAC/BorD,EAASg2B,EAAQphF,GACjBogF,EAAQh1B,GAAUg1B,EAAQh1B,IAAW,CAAC,EACtCg1B,EAAQh1B,GAAQ9mD,IAAQ,CAE1B,CAEA,SAAS0+E,EAAuB5B,GAC/B,IAICphF,EAAGstC,EAAG8d,EAAQ63B,EAJXC,EAAgB9B,EAAQ/kF,OAC3B8mF,EAAkB,CAAC,EACnBpC,EAAM,GACNqC,EAAiB,CAAC,EAGnB,IAAKpjF,EAAI,EAAGA,EAAIkjF,EAAeljF,IAE9B,GADAorD,EAASg2B,EAAQphF,GAAGorD,QAChBg4B,EAAerrF,eAAeqzD,GAAlC,CAIA,IAAK9d,KADL21C,EAAgB7C,EAAQh1B,IAAW,CAAC,EAE/B63B,EAAclrF,eAAeu1C,KAChC61C,EAAgB71C,IAAK,GAGvB81C,EAAeh4B,IAAU,CAPzB,CAUD,IAAKprD,KAAKmjF,EACLA,EAAgBprF,eAAeiI,IAClC+gF,EAAIhjF,KAAKoiF,EAAMngF,IAIjB,OAAO+gF,CACR,CAgDA,SAASsC,EAAe/+E,GACvB,OAAQA,GAAQ,IAAIi6B,cAAcpK,QAAQ,MAAO,IAClD,CAEA,SAASmvD,EAASC,GACjB,IAAIvjF,EAAGsE,EAAMhL,EAAOkqF,EAMpB,IAJsB,iBAAXD,IACVA,EAAS,CAACA,IAGNvjF,EAAI,EAAGA,EAAIujF,EAAOlnF,OAAQ2D,IAG9BwjF,EAAaH,EADb/+E,GADAhL,EAAQiqF,EAAOvjF,GAAG1G,MAAM,MACX,IAEb2mF,EAAMuD,GAAcD,EAAOvjF,GAC3BmgF,EAAMqD,GAAcl/E,EACpBy+E,EAAaS,EAAYlqF,EAAM,GAAGA,MAAM,KAE1C,CAEA,SAASmqF,EAASn/E,EAAMo/E,GAEvBp/E,EAAO++E,EAAc/+E,GAErB,IACIkxB,EADA8sD,EAAOrC,EAAM37E,GAGjB,OAAIg+E,aAAgBZ,EACZY,EAGY,iBAATA,GACVA,EAAO,IAAIZ,EAAKY,GAChBrC,EAAM37E,GAAQg+E,EACPA,GAIJjhD,EAAM/8B,IAASo/E,IAAWD,IAAYjuD,EAAOiuD,EAAQpiD,EAAM/8B,GAAOm/E,MACrEnB,EAAOrC,EAAM37E,GAAQ,IAAIo9E,GACpBE,KAAKpsD,GACV8sD,EAAKh+E,KAAO67E,EAAM77E,GACXg+E,GAGD,IACR,CAkBA,SAASqB,EAASluD,GACjB,IAAIz1B,EAAGi1B,EAAO2uD,EAASC,EAMvB,IAJuB,iBAAZpuD,IACVA,EAAU,CAACA,IAGPz1B,EAAI,EAAGA,EAAIy1B,EAAQp5B,OAAQ2D,IAG/B4jF,EAAUP,GAFVpuD,EAAQQ,EAAQz1B,GAAG1G,MAAM,MAEK,IAC9BuqF,EAAUR,EAAcpuD,EAAM,IAE9BoM,EAAMuiD,GAAWC,EACjB1D,EAAMyD,GAAW3uD,EAAM,GAEvBoM,EAAMwiD,GAAWD,EACjBzD,EAAM0D,GAAW5uD,EAAM,EAEzB,CAwDA,SAAS6uD,EAAazsE,GACrB,IAAI0sE,EAA4B,MAAT1sE,EAAE4J,IAAuB,MAAT5J,EAAE4J,GACzC,SAAU5J,EAAEuJ,SAAkBxoB,IAAXif,EAAE2sE,MAAwBD,EAC9C,CAEA,SAAS1D,EAAUxmE,GACK,oBAAZk6B,SAAoD,mBAAlBA,QAAQjzC,OACpDizC,QAAQjzC,MAAM+Y,EAEhB,CAMA,SAASgmD,EAAIxhE,GACZ,IAGCikF,EAHG5lF,EAAO8N,MAAM1S,UAAU8H,MAAMnH,KAAKwB,UAAW,GAAI,GACpDqK,EAAOrK,UAAUA,UAAUoC,OAAS,GACpC0kF,EAAO5rE,EAAO0kB,IAAIx2B,MAAM,KAAM3G,GAS/B,OANKyY,EAAO8uE,SAAS5lF,IAAUylF,EAAY/C,KAASuB,EAAOmB,EAAQn/E,KAClEy8E,EAAI5vE,IAAImxE,EAAK7jD,MAAMsiD,GAAM,WAG1BA,EAAIlhB,GAAGv7D,GAEAy8E,CACR,EA3iBIR,EAAQ,GAAgB,IAAVA,GAAeC,EAAQ,IACxCH,EAAS,wEAA0ElrE,EAAO6G,QAAU,sBA+HrG0lE,EAAK5pF,UAAY,CAChB8pF,KAAO,SAAUsC,GAChBhoF,KAAKoI,KAAa4/E,EAAS5/E,KAC3BpI,KAAKslF,MAAa0C,EAAS1C,MAC3BtlF,KAAKmlF,OAAa6C,EAAS7C,OAC3BnlF,KAAKklF,QAAa8C,EAAS9C,QAC3BllF,KAAKulF,WAAayC,EAASzC,UAC5B,EAEA0C,OAAS,SAAUvlD,GAClB,IAEC5+B,EAGD,IADAA,EAtCF,SAAkBwkD,EAAK7+C,GACtB,IASIi9E,EATA3iF,EAAM0F,EAAItJ,OACd,GAAImoD,EAAM7+C,EAAI,GACb,OAAO,EACD,GAAI1F,EAAM,GAAK0F,EAAI1F,EAAM,KAAOqhF,KAAY98B,GAAO7+C,EAAI1F,EAAM,GACnE,OAAOA,EAAM,EACP,GAAIukD,GAAO7+C,EAAI1F,EAAM,GAC3B,OAAQ,EAMT,IAFA,IAAImkF,EAAK,EACLC,EAAKpkF,EAAM,EACRokF,EAAKD,EAAK,GAEZz+E,EADJi9E,EAAMzpF,KAAK6lD,OAAOolC,EAAKC,GAAM,KACb7/B,EACf4/B,EAAKxB,EAELyB,EAAKzB,EAGP,OAAOyB,CACR,CAgBMC,EAJU1lD,EACJ1iC,KAAKmlF,UAIN,EACR,OAAOrhF,CAET,EAEAkgF,UAAY,WACX,IAAIqE,EAAYroF,KAAKoI,KACrB,OAAOzM,OAAOwK,KAAK69E,GAAWlxE,QAAO,SAAUw1E,GAC9C,OAA6D,IAAtDtE,EAAUsE,GAAcvE,MAAM5lD,QAAQkqD,EAC9C,GACD,EAEA9lD,MAAQ,SAAUG,GACjB,IAICwsB,EAAQq5B,EAAYC,EAAY1kF,EAJ7Bqf,GAAWuf,EACdwiD,EAAUllF,KAAKklF,QACfC,EAAUnlF,KAAKmlF,OACf/8D,EAAU+8D,EAAOhlF,OAAS,EAG3B,IAAK2D,EAAI,EAAGA,EAAIskB,EAAKtkB,IAWpB,GAVAorD,EAAag2B,EAAQphF,GACrBykF,EAAarD,EAAQphF,EAAI,GACzB0kF,EAAatD,EAAQphF,EAAIA,EAAI,EAAIA,GAE7BorD,EAASq5B,GAAc5kB,EAAG8kB,qBAC7Bv5B,EAASq5B,EACCr5B,EAASs5B,GAAc7kB,EAAG+kB,qBACpCx5B,EAASs5B,GAGNrlE,EAASgiE,EAAOrhF,GAAe,IAATorD,EACzB,OAAOg2B,EAAQphF,GAIjB,OAAOohF,EAAQ98D,EAChB,EAEA69D,KAAO,SAAU0C,GAChB,OAAO3oF,KAAKslF,MAAMtlF,KAAKioF,OAAOU,GAC/B,EAEAz5B,OAAS,SAAUy5B,GAElB,OADAxE,EAAS,8DACFnkF,KAAKklF,QAAQllF,KAAKioF,OAAOU,GACjC,EAEAvnB,UAAY,SAAUunB,GACrB,OAAO3oF,KAAKklF,QAAQllF,KAAKioF,OAAOU,GACjC,GA8CDxC,EAAUvqF,UAAUgtF,cAAgB,SAAUC,GAC7C7oF,KAAKqmF,aAAeppF,KAAK6rF,IAAI9oF,KAAKomF,KAAKhlB,UAAUynB,EAAS9C,IAAM8C,EAAS35B,QACrElvD,KAAKomF,KAAKH,KAAK4C,EAAS9C,IAAI9tD,QAAQ,UAAW,MAAQ4wD,EAAS5C,MACnEjmF,KAAKsmF,WAEP,EA0TA3iB,EAAG7jD,QA9jBW,SA+jBd6jD,EAAGolB,YAAe,GAClBplB,EAAGqlB,OAAejF,EAClBpgB,EAAGslB,OAAe9jD,EAClBw+B,EAAGulB,OAAejF,EAClBtgB,EAAGwlB,WAAanF,EAChBrgB,EAAG1uD,IAAemyE,EAClBzjB,EAAGrqC,KAAemuD,EAClB9jB,EAAGylB,KArDH,SAAmBx/E,GAClBw9E,EAAQx9E,EAAKm6E,OACb0D,EAAQ79E,EAAKu7B,OAzCd,SAAuBv7B,GACtB,IAAI9F,EAAGwkF,EAAce,EAAejsF,EACpC,GAAKwM,GAASA,EAAKzJ,OACnB,IAAK2D,EAAI,EAAGA,EAAI8F,EAAKzJ,OAAQ2D,IAE5BwkF,GADAlrF,EAAQwM,EAAK9F,GAAG1G,MAAM,MACD,GAAGs2C,cACxB21C,EAAgBjsF,EAAM,GAAGA,MAAM,KAC/B4mF,EAAUsE,GAAgB,IAAI3C,EAC7B2C,EACAe,EAGH,CA8BCC,CAAa1/E,EAAKo6E,WAClBrgB,EAAGolB,YAAcn/E,EAAKkW,OACvB,EAiDA6jD,EAAGyiB,KAAemB,EAClB5jB,EAAG4lB,WAhDH,SAASA,EAAYnhF,GAKpB,OAJKmhF,EAAWC,eACfD,EAAWC,cAAe,EACzBrF,EAAS,yBAA2B/7E,EAAO,uDAAyDA,EAAO,SAEpGm/E,EAAQn/E,EAClB,EA2CAu7D,EAAGpD,MAhMH,SAAgBkpB,GAIf,OAHK3F,IAAe2F,IACnB3F,EArCF,WAGC,IACC,IAAI4F,EAAWC,KAAKC,iBAAiBC,kBAAkBC,SACvD,GAAIJ,GAAYA,EAASvpF,OAAS,EAAG,CACpC,IAAIiI,EAAO67E,EAAMkD,EAAcuC,IAC/B,GAAIthF,EACH,OAAOA,EAER+7E,EAAS,yBAA2BuF,EAAW,yDAChD,CACD,CAAE,MAAOhtF,GAET,CAEA,IAICqtF,EAAWjmF,EAAGstC,EAJX8zC,EAjGL,WACC,IAIC8E,EAAQlqF,EAAMmqF,EAAYnmF,EAJvBomF,GAAY,IAAIlmE,MAAOmmE,cAAgB,EAC1CC,EAAO,IAAItE,EAAS,IAAI9hE,KAAKkmE,EAAW,EAAG,IAC3CG,EAAaD,EAAKl7B,OAClBg2B,EAAU,CAACkF,GAGZ,IAAKtmF,EAAI,EAAGA,EAAI,GAAIA,KACnBmmF,EAAa,IAAIjmE,KAAKkmE,EAAWpmF,EAAG,GAAGoiF,uBACpBmE,IAGlBL,EAASzD,EAAW6D,EADpBtqF,EAAO,IAAIgmF,EAAS,IAAI9hE,KAAKkmE,EAAWpmF,EAAG,KAE3CohF,EAAQrjF,KAAKmoF,GACb9E,EAAQrjF,KAAK,IAAIikF,EAAS,IAAI9hE,KAAKgmE,EAAOjE,GAAK,OAC/CqE,EAAOtqF,EACPuqF,EAAaJ,GAIf,IAAKnmF,EAAI,EAAGA,EAAI,EAAGA,IAClBohF,EAAQrjF,KAAK,IAAIikF,EAAS,IAAI9hE,KAAKkmE,EAAYpmF,EAAG,EAAG,KACrDohF,EAAQrjF,KAAK,IAAIikF,EAAS,IAAI9hE,KAAKkmE,EAAYpmF,EAAG,EAAG,KAGtD,OAAOohF,CACR,CAuEeoF,GACbtD,EAAgB9B,EAAQ/kF,OACxB+jF,EAAU4C,EAAsB5B,GAChCqF,EAAa,GAGd,IAAKzmF,EAAI,EAAGA,EAAIogF,EAAQ/jF,OAAQ2D,IAAK,CAEpC,IADAimF,EAAY,IAAI5D,EAAUoB,EAAQrD,EAAQpgF,IAAKkjF,GAC1C51C,EAAI,EAAGA,EAAI41C,EAAe51C,IAC9B24C,EAAUnB,cAAc1D,EAAQ9zC,IAEjCm5C,EAAW1oF,KAAKkoF,EACjB,CAIA,OAFAQ,EAAW7pD,KAAKimD,GAET4D,EAAWpqF,OAAS,EAAIoqF,EAAW,GAAGnE,KAAKh+E,UAAOlM,CAC1D,CAIgBsuF,IAER1G,CACR,EA4LAngB,EAAGsgB,MArIH,WACC,IAAIngF,EAAG+gF,EAAM,GAEb,IAAK/gF,KAAKmgF,EACLA,EAAMpoF,eAAeiI,KAAOigF,EAAMjgF,IAAMigF,EAAM5+C,EAAMrhC,MAAQmgF,EAAMngF,IACrE+gF,EAAIhjF,KAAKoiF,EAAMngF,IAIjB,OAAO+gF,EAAInkD,MACZ,EA4HAijC,EAAG6hB,KAAeA,EAClB7hB,EAAGshB,OAAeA,EAClBthB,EAAG8gB,aAAeA,EAClB9gB,EAAGikB,YAAeA,EAClBjkB,EAAG+kB,oBAAuB,EAC1B/kB,EAAG8kB,sBAAuB,EAC1B9kB,EAAGqgB,UAhIH,WACC,OAAOroF,OAAOwK,KAAK69E,EACpB,EA+HArgB,EAAG8mB,gBArFH,SAAyBC,EAASC,GALlC,IAAqBviF,EAQpB,GAPAA,GADoBA,EAMCsiF,GALTh3C,gBAKZg3C,EAJO1G,EAAU57E,IAAS,MAMZ,OAAO,KAErB,IAAI27E,EAAQ2G,EAAQ3G,MAAMrjD,OAE1B,OAAIiqD,EACI5G,EAAMhjF,KAAI,SAAUsnF,GAE1B,MAAO,CACNjgF,KAAMigF,EACNn5B,OAHUq4B,EAAQc,GAGLjnB,UAAU,IAAIp9C,MAE7B,IAGM+/D,CACR,EAyEA,IA8DyB6G,EA9DrB1jF,EAAK+R,EAAO/R,GAgDhB,SAAS2jF,EAAUD,GAClB,OAAO,WACN,OAAI5qF,KAAK8qF,GAAa9qF,KAAK8qF,GAAG7E,KAAKjmF,MAC5B4qF,EAAIruF,KAAKyD,KACjB,CACD,CAEA,SAAS+qF,EAAeH,GACvB,OAAO,WAEN,OADA5qF,KAAK8qF,GAAK,KACHF,EAAIzjF,MAAMnH,KAAMjC,UACxB,CACD,CA1DAkb,EAAO0qD,GAAKA,EAEZ1qD,EAAO+xE,YAAc,KAErB/xE,EAAOgyE,aAAe,SAAUtC,EAAKuC,GACpC,IACCh8B,EADGk3B,EAAOntE,EAAO+xE,YAUlB,QAPe9uF,IAAXysF,EAAImC,KACH1E,GAAQwB,EAAYe,KAASA,EAAIwC,QAAUxC,EAAIl/C,YAClDk/C,EAAI9jE,GAAK5L,EAAO0kB,IAAIgrD,EAAIjkE,IAAIG,GAC5B8jE,EAAIhrD,MAAM1oB,IAAImxE,EAAK7jD,MAAMomD,GAAM,YAEhCA,EAAImC,GAAK1E,GAENuC,EAAImC,GAKP,GAJA57B,EAASy5B,EAAImC,GAAG1pB,UAAUunB,GACtB1rF,KAAK6rF,IAAI55B,GAAU,KACtBA,GAAkB,SAEGhzD,IAAlBysF,EAAIvnB,UAAyB,CAChC,IAAIgqB,EAAIzC,EAAImC,GACZnC,EAAIvnB,WAAWlS,EAAQg8B,GACvBvC,EAAImC,GAAKM,CACV,MACCzC,EAAIvC,KAAKl3B,EAAQg8B,EAGpB,EAEAhkF,EAAGy8D,GAAK,SAAUv7D,EAAM8iF,GACvB,GAAI9iF,EAAM,CACT,GAAoB,iBAATA,EACV,MAAM,IAAItK,MAAM,wCAA0CsK,EAAO,YAAcA,EAAO,KAQvF,OANApI,KAAK8qF,GAAKvD,EAAQn/E,GACdpI,KAAK8qF,GACR7xE,EAAOgyE,aAAajrF,KAAMkrF,GAE1B/G,EAAS,mCAAqC/7E,EAAO,4DAE/CpI,IACR,CACA,GAAIA,KAAK8qF,GAAM,OAAO9qF,KAAK8qF,GAAG1iF,IAC/B,EAuBAlB,EAAGmkF,SAAYR,EAAS3jF,EAAGmkF,UAC3BnkF,EAAGokF,SAAYT,EAAS3jF,EAAGokF,UAC3BpkF,EAAGy2B,IAAYotD,EAAc7jF,EAAGy2B,KAChCz2B,EAAG4wB,MAAYizD,EAAc7jF,EAAG4wB,OAChC5wB,EAAGk6D,WAXsBwpB,EAWK1jF,EAAGk6D,UAVzB,WAEN,OADIrjE,UAAUoC,OAAS,IAAGH,KAAK8qF,GAAK,MAC7BF,EAAIzjF,MAAMnH,KAAMjC,UACxB,GASDkb,EAAO0qD,GAAG4nB,WAAa,SAASnjF,GAK/B,OAJIi8E,EAAQ,GAAgB,IAAVA,GAAeC,EAAQ,IACxCH,EAAS,qFAAuFlrE,EAAO6G,QAAU,KAElH7G,EAAO+xE,YAAc5iF,EAAOm/E,EAAQn/E,GAAQ,KACrC6Q,CACR,EAGA,IAAIuyE,EAAmBvyE,EAAOuyE,iBAY9B,MAXyD,mBAArD7vF,OAAOC,UAAUG,SAASQ,KAAKivF,IAElCA,EAAiB3pF,KAAK,MACtB2pF,EAAiB3pF,KAAK,OACZ2pF,IAEVA,EAAiBV,GAAK,MAKhB7xE,CACR,+ECttBA,SAASwyE,EAA2BxiF,EAAGvM,GACrC,GAAIA,IAAM,WAAY,OAAQA,IAAM,mBAAqBA,GAAI,OAAOA,EACpE,QAAI,IAAWA,EAAG,MAAM,IAAIqnD,UAAU,4DACtC,OAAO,OAAsB96C,EAC/B,gCCNA,SAASyiF,IACP,OAAOA,EAAW/vF,OAAOqZ,OAASrZ,OAAOqZ,OAAOhG,OAAS,SAAUub,GACjE,IAAK,IAAI7tB,EAAI,EAAGA,EAAIqB,UAAUoC,OAAQzD,IAAK,CACzC,IAAIuM,EAAIlL,UAAUrB,GAClB,IAAK,IAAI0H,KAAK6E,GAAG,CAAG,GAAEpN,eAAeU,KAAK0M,EAAG7E,KAAOmmB,EAAEnmB,GAAK6E,EAAE7E,GAC/D,CACA,OAAOmmB,CACT,EAAGmhE,EAASvkF,MAAM,KAAMpJ,UAC1B,mCCRA5B,EAAOC,QAAU,IAA0B,uDCA3CD,EAAOC,QAAU,IAA0B,qFCA3C,MAiBA,EAjB6B0X,IAC3B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAACumC,GAAe,CACd,UAAW,CACT9e,QAAS,OACToiB,MAAO,QAET,aAAc,CACZguC,cAAe,WAGpB,mBCdHxvF,EAAOC,QAAU,IAA0B,kECE3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2HAA+H,KAAQ,cAAe,MAAS,6BCH/TD,EAAOC,QAAU,IAA0B,uRCE3C,MAsBA,GAAe,gBAAc,OAtBR0X,IACnB,MAAM,aACJumC,EAAY,UACZjzB,EAAS,SACTnC,EAAQ,WACRi1B,EAAU,WACV0G,GACE9sC,EACJ,MAAO,CACL,CAACumC,GAAe,CACdJ,MAAO7yB,EACPnC,WACAi1B,aACA0G,aACA,CAAC,IAAIvG,SAAqB,CACxB9R,UAAW,QAGhB,IAEkC,KAAM,CAAG,KCVxCqjD,EAAM1hF,IACV,MACEmoD,UAAWw5B,EAAkB,SAC7Bj0E,EAAQ,UACRD,EAAS,cACT24D,EAAa,QACb3yD,EAAO,aACP6/C,EAAY,MACZxmB,EAAK,UACLu2B,EAAY,OACVrjE,GACE,UACJq+B,EAAS,aACT8oB,IACE,IAAAE,YAAW,MACTc,EAAYhB,EAAa,MAAOw6B,IAC/BC,EAAYn6B,EAAQo6B,GAAa,EAAS15B,GAC3C25B,EAAkB,IAAWr6B,EAAQU,EAAW16C,EAAW24D,EAAeyb,EAAW,CACzF,CAAC,GAAG15B,SAAgC,QAAd9pB,IAElB0jD,GAAY,IAAA16B,YAAW,KACvB26B,EAAkB,WAAc,KAAM,CAC1CvuE,QAAShiB,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi3E,EAAUtuE,SAAUA,GAC7D6/C,aAAc7hE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi3E,EAAUzuB,cAAeA,MACrE,CAAC7/C,EAAS6/C,EAAcyuB,EAAUtuE,QAASsuE,EAAUzuB,gBAClD2uB,EAAYC,IAAwB,EAAAC,EAAA,GAAWH,EAAgBvuE,UAC/D2uE,EAAiBC,IAA6B,EAAAC,EAAA,GAAgBN,EAAgB1uB,eAC9EivB,EAAUC,IAAsB,EAAAC,EAAA,KACjCC,EAAuB,WAAc,KAAM,CAC/CjvE,QAASwuE,EACT3uB,aAAc8uB,EACdr7E,MAAOw7E,KACL,CAACN,EAAYG,EAAiBG,KAElC,QAAc,MAAd,GAAuBV,IAA2B,IAAdxe,GAAsB,QAAS,qFAEnE,MAAMsf,GAA0B,IAAdtf,EAAsB,WAAiBA,EACnDuf,EAAY,CAChBn1E,UAAWq0E,EACXh1C,SAEF,OAAO80C,EAAwB,gBAAoB,EAAAhmF,EAAWijB,SAAU,CACtE1sB,MAAOuwF,GACO,gBAAoB,IAAiB7jE,SAAU,CAC7D1sB,MAAO6vF,GACO,gBAAoBW,EAAWlxF,OAAOqZ,OAAO,CAAC,GAAiB,IAAdu4D,OAAsBrxE,EAAY4wF,GAAYJ,EAAoBN,EAAsBG,EAA2B30E,KAAY,EAKlMg0E,EAAImB,OAnDW,IAAM,aAAiB,EAAAjnF,GAoDtC,kNCrDA,IAAIknF,EAAuB,GAC3B,SAASC,IACP,OAAOD,CACT,CACA,MAAME,EAAuBhjF,IAC3B,IAAIwa,EAAIC,EACR,MACE0tC,UAAWw5B,EAAkB,aAC7BsB,EAAY,UACZ5kD,GACEr+B,EACEkjF,GAAgB,SAChB/4B,GAAS,IAAA9C,YAAW,MACpBxP,EAAgBkrC,KAAsB54B,EAAOhD,eAE7CgB,EAAYw5B,GAAsB,GAAG9pC,UAC3C,IAAIsrC,EAAqBF,EAOzB,OAN2B,IAAvBE,IACFA,OAAqBnxF,GAKH,gBAAoB,IAAeP,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CAC9E63C,cAAeA,EACfsQ,UAAWA,EACXf,cAAe+C,EAAO/C,cACtBG,MAAO4C,EAAO5C,MACdlpB,UAAWA,QAA6CA,EAAY8rB,EAAO9rB,UAC3E+kD,OAAsF,QAA7E3oE,EAA8B,QAAxBD,EAAK2vC,EAAOi5B,cAA2B,IAAP5oE,OAAgB,EAASA,EAAG6oE,aAA0B,IAAP5oE,EAAgBA,EAAKyoE,EACnHD,aAAcE,IACb,EAEU,SAASG,EAAQn5B,GAC9B,MAAMvjD,GAAS,UAITknD,EAAY7kB,SAASs6C,yBAC3B,IAIIC,EAJAC,EAAgBhyF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGq/C,GAAS,CAC3D7wD,QACAsuE,MAAM,IAGR,SAASG,IAEP,IADA,IAAIvtD,EACKrW,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAIvB,IAAIq/E,EAFgBptF,EAAK4B,MAAKyrF,GAASA,aAAqC,EAASA,EAAMC,kBAGhE,QAA1BppE,EAAK2vC,EAAO05B,gBAA6B,IAAPrpE,IAA0BkpE,EAAMlpE,GAAInoB,KAAK4K,MAAMymF,EAAK,CAACv5B,EAAQ,QAAU9sD,QAAO,OAAmB/G,EAAKkD,MAAM,OAEjJ,IAAK,IAAII,EAAI,EAAGA,EAAI,IAAW3D,OAAQ2D,IAErC,GADW,IAAWA,KACXN,EAAO,CAChB,IAAWuvC,OAAOjvC,EAAG,GACrB,KACF,EAEF,OAAak0D,EACf,CACA,SAAS/2C,EAAO/W,GACdq+C,aAAamlC,GAMbA,EAAYtlC,YAAW,KACrB,MAAMrG,EAAgBjxC,EAAOugD,kBAAan1D,EAAW+wF,KAC/C37B,EAAgBxgD,EAAOk9E,mBACvBv8B,EAAQ3gD,EAAOm9E,WACfC,EAAmB,gBAAoBhB,EAAsBvxF,OAAOqZ,OAAO,CAAC,EAAG9K,KACrF,OAAyB,gBAAoB,KAAgB,CAC3DmoD,UAAWtQ,EACXuP,cAAeA,EACfG,MAAOA,GACN3gD,EAAOq9E,aAAer9E,EAAOq9E,aAAaD,GAAOA,GAAMl2B,EAAU,GAExE,CACA,SAASx0D,IACP,IAAK,IAAI+c,EAAQxiB,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMiS,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhgB,EAAKggB,GAASziB,UAAUyiB,GAE1BmtE,EAAgBhyF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG24E,GAAgB,CAC9D7b,MAAM,EACNsc,WAAY,KACuB,mBAAtB/5B,EAAO+5B,YAChB/5B,EAAO+5B,aAGTnc,EAAQ9qE,MAAMnH,KAAMQ,EAAK,IAIzBmtF,EAAcje,gBACTie,EAAcje,QAEvBzuD,EAAO0sE,EACT,CAWA,OAFA1sE,EAAO0sE,GACP,IAAW9rF,KAAK2B,GACT,CACLyuE,QAASzuE,EACT6qF,OAZF,SAAgBC,GAEZX,EAD0B,mBAAjBW,EACOA,EAAaX,GAEbhyF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG24E,GAAgBW,GAElErtE,EAAO0sE,EACT,EAOF,CACO,SAASY,EAASrkF,GACvB,OAAOvO,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7C3K,KAAM,WAEV,CACO,SAASivF,EAAStkF,GACvB,OAAOvO,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7C3K,KAAM,QAEV,CACO,SAASkvF,EAAYvkF,GAC1B,OAAOvO,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7C3K,KAAM,WAEV,CACO,SAASmvF,EAAUxkF,GACxB,OAAOvO,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7C3K,KAAM,SAEV,CACO,SAASovF,EAAYzkF,GAC1B,OAAOvO,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7C3K,KAAM,WAEV,CACO,SAASqvF,EAAkBzrF,GAChC,IAAI,cACF4+C,GACE5+C,EAEJ6pF,EAAuBjrC,CACzB,iDC7JA,MACA,GADmC,YAAAi+B,oBAAc9jF,kDCDjD,MAiBA,EAjB0B4X,IAAS,CACjC,CAACA,EAAMumC,cAAe,CAEpB,CAAC,GAAGvmC,EAAMsmC,iCAAkC,CAC1CU,SAAU,SACV,WAAY,CACVW,WAAY,UAAU3nC,EAAMysC,qBAAqBzsC,EAAM0sC,qCAC7C1sC,EAAMysC,qBAAqBzsC,EAAM0sC,+BAG/C,CAAC,GAAG1sC,EAAMsmC,0BAA2B,CACnCU,SAAU,SACVW,WAAY,UAAU3nC,EAAMysC,qBAAqBzsC,EAAM0sC,qCAC3C1sC,EAAMysC,qBAAqBzsC,EAAM0sC,kDCbnDrkD,EAAOC,QAAU,IAA0B,qFCG3C,kBAAuB,wFCEvB,MAqBA,EArBwB8N,IACtB,MAAM,MACJ2kF,EAAK,KACLvmD,EAAI,SACJ1wB,GACE1N,EACJ,GAAI0N,QACF,OAAO,KAET,IAAIjb,EAASib,EAUb,OATI0wB,IACF3rC,EAAsB,gBAAoB,KAAa,CACrDuwB,UAAU,EACV9gB,QAAQ,GACPzP,IAEDkyF,IACFlyF,EAAsB,gBAAoB,KAAgB,KAAMA,IAE3DA,CAAM,mBCxBf,IAAImyF,EAAO,EAAQ,QACfx+B,EAAY,EAAQ,QACpBnyD,EAAM,EAAQ,QAkBlBhC,EAAOC,QATP,WACE4D,KAAKi1B,KAAO,EACZj1B,KAAKwc,SAAW,CACd,KAAQ,IAAIsyE,EACZ,IAAO,IAAK3wF,GAAOmyD,GACnB,OAAU,IAAIw+B,EAElB,qBClBoE3yF,EAAOC,QAAmJ,WAAY,aAAa,OAAO,SAASM,EAAEuM,EAAEshB,GAAGthB,EAAErN,UAAUokE,UAAU,SAAStjE,GAAG,IAAIuM,EAAEhM,KAAKgpC,OAAO1b,EAAEvqB,MAAMgkE,QAAQ,OAAOz5C,EAAEvqB,MAAMgkE,QAAQ,SAAS,OAAO,EAAE,OAAO,MAAMtnE,EAAEuM,EAAEjJ,KAAKiV,IAAIvY,EAAEuM,EAAE,MAAM,CAAC,CAAE,CAA/UA,8ECGnF,MAAM8lF,EAAoB,CAACp/E,EAAW,GAAIwF,EAAgB,QACxD,MAAMlO,EAAU+nF,EAAAA,WAAiBC,EAAAA,IAEjCD,EAAAA,WAAgB,KACd,GAAKr/E,EAASxP,OASd,OAFA8G,EAAQrG,MAAMgU,eAAeK,IAAItF,EAAUwF,GAEpC,KACLlO,EAAQrG,MAAMgU,eAAerD,OAAO5B,EAAS,EATzCwF,GACFA,GASH,GACA,CAAClO,EAAQrG,MAAOuU,EAAexF,GAAU,kjCCsCvC,MAAMu/E,EAAa,QAGxB,gBACAC,EAAe,WACfC,EAAU,qBACVC,GAAuB,EAAK,OAC5BC,EAAM,SACNC,EAAW,CAACJ,EAAiBpwD,KAAKL,UAAU0wD,KAEX,EAD9BI,oXAAAA,CAAAA,EAAAA,CALHL,kBACAC,aACAC,uBACAC,SACAC,aAGA,MAAM,gBAAEE,EAAe,UAAEC,IAAcC,EAAAA,EAAAA,GACrCR,EACAC,GAQIQ,GAA0BC,EAAAA,EAAAA,KAAYC,EAAAA,EAAAA,OAGtCC,EAAeN,EAAgBO,eAClCnC,GAA2B,iBAAVA,IAGdoC,EAAAA,sBAAU,gBA8EVtzF,EAAAA,EA7EJ,IAAIA,EAIJ,GAAI2yF,GAAUI,EAAW,KA4BP/yF,EA3BhB,IACIuzF,EADAhhC,EAAS,EAGb,IAAsB,IAAlB6gC,EAEF,MAAM,IAAIjyF,MACR,kFAAkFqxF,KAgBtF,GAZAM,EAAgBM,GAAgB,OAC1BN,EAAgBM,IAAa,CACjCh5D,MAAO8tB,EAAAA,GACPqK,WAGFvyD,QAAewzF,EAAAA,EAAAA,GAAa,CAC1BhB,kBACAC,WAAYK,EACZG,4BAGEjzF,EAAOyzF,YAAc,IAEvB,MAAMzzF,EAAO0zF,KAMf,IAHAH,EAAgBvzF,SAAY,QAAZA,EAAAA,EAAQ0zF,YAAR1zF,IAAAA,OAAAA,EAAAA,EAAcuzF,cAC9BhhC,GAAUrK,EAAAA,GAEHqrC,GAAiBhhC,GAAUghC,GAAe,KA4B/BvzF,EA3BhB8yF,EAAgBM,GAAgB,OAC1BN,EAAgBM,IAAa,CACjCh5D,MAAO8tB,EAAAA,GACPqK,WAMF,MAAMohC,QAAkBH,EAAAA,EAAAA,GAAa,CACnChB,kBACAC,WAAYK,EACZG,4BAGF,GAAIjzF,EAAOyzF,YAAc,IAEvB,MAAMzzF,EAAO0zF,KAIb/hF,MAAMie,QAAQ5vB,EAAO0zF,KAAKzmF,OAC1B0E,MAAMie,QAAQ+jE,EAAUD,KAAKzmF,QAE7BjN,EAAO0zF,KAAKzmF,KAAO,IAAIjN,EAAO0zF,KAAKzmF,QAAS0mF,EAAUD,KAAKzmF,OAG7DsmF,EAAgBvzF,SAAY,QAAZA,EAAAA,EAAQ0zF,YAAR1zF,IAAAA,OAAAA,EAAAA,EAAcuzF,cAC9BhhC,GAAUrK,EAAAA,EACZ,CAEA,OAAOloD,CACT,CAiBA,GAdAA,QAAewzF,EAAAA,EAAAA,GAAa,CAC1BhB,kBACAC,WAAYK,EACZG,4BAGyC,YAAvCjzF,SAAY,QAAZA,EAAAA,EAAQ0zF,YAAR1zF,IAAAA,GAAuB,QAAvBA,EAAAA,EAAc4zF,iBAAd5zF,IAAAA,OAAAA,EAAAA,EAAyB2tC,YAC3BgL,EAAAA,GAAwB34C,EAAO0zF,KAAK1yE,QAAS,CAC3Cw3D,MAAO,CACLqb,QAAS,CAAErB,kBAAiBM,sBAK9B9yF,EAAOyzF,YAAc,IAMvB,MALyB,OACpBzzF,EAAO0zF,MAAI,CACdhB,yBAMJ,OAAO1yF,CACT,mOAhGMszF,GAkGAQ,EAAiBhB,EAAgB/uE,MAAML,SAE7C,OAAOqwE,EAAAA,EAAAA,IAAsE,GAC3EnB,WACAU,QAASQ,EAAiBR,EAAUU,EAAAA,IACjCnB,GACCp3D,GAEH,mBC/LL,IAAIw4D,EAAU,EAAQ,QAkCtBz0F,EAAOC,QAJP,SAAawnB,EAAQ/Q,EAAMxW,GACzB,OAAiB,MAAVunB,EAAiBA,EAASgtE,EAAQhtE,EAAQ/Q,EAAMxW,EACzD,iDC/BO,MAAMw0F,YAA6B,cAAoB,CAC5DC,UAAW,CACTC,SAAU,IAAM,KAChBC,YAAa,IAAM,uDCqBvB,QAbA,SAAqB/uF,EAAOijE,EAAU+rB,EAAaC,GACjD,IAAIz9E,GAAS,EACTtT,EAAkB,MAAT8B,EAAgB,EAAIA,EAAM9B,OAKvC,IAHI+wF,GAAa/wF,IACf8wF,EAAchvF,IAAQwR,MAEfA,EAAQtT,GACf8wF,EAAc/rB,EAAS+rB,EAAahvF,EAAMwR,GAAQA,EAAOxR,GAE3D,OAAOgvF,CACT,0BCdQ,SAAWh4E,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwF/b,MAC5F,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,2DAA2Drc,MACjE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,gBACTE,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNpU,EAAG,gBACHqU,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,GACf,IAAIxb,EAAIwb,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxb,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,GAKP,CApEyC8b,CAAQ,EAAQ,4ECN1DlgB,EAAOC,QAAU,IAA0B,uLCOvC4gE,EAAY,CAAC,KACfiO,EAAa,CAAC,KAELkmB,EAAiB,SAAwB90F,GAClD,OAAOY,KAAKgpC,MAAMvyB,OAAOrX,GAAS,GACpC,EAkBW+0F,EAAqB,SAAUC,IACxC,OAAUD,EAAOC,GACjB,IAAIl+D,GAAS,OAAai+D,GAC1B,SAASA,EAAMn3C,GAEb,OADA,OAAgBj6C,KAAMoxF,GACfj+D,EAAO52B,KAAKyD,KAtBF,SAAwBi6C,GAC3C,GAAIA,aAAiB,IACnB,OAAOA,EAET,GAAIA,GAA4B,YAAnB,OAAQA,IAAuB,MAAOA,GAAS,MAAOA,EAAO,CACxE,IAAI92C,EAAO82C,EACT15C,EAAI4C,EAAK5C,EACT+wF,GAAS,OAAyBnuF,EAAM65D,GAC1C,OAAO,QAAc,OAAc,CAAC,EAAGs0B,GAAS,CAAC,EAAG,CAClDzmE,EAAGtqB,GAEP,CACA,MAAqB,iBAAV05C,GAAsB,MAAMrsB,KAAKqsB,GACnCA,EAAMhiB,QAAQ,MAAO,OAEvBgiB,CACT,CAM6Bs3C,CAAet3C,GAC1C,CAyBA,OAxBA,OAAam3C,EAAO,CAAC,CACnB1yF,IAAK,cACLrC,MAAO,WACL,IAAIm1F,EAAMxxF,KAAKyxF,QACXC,EAAaP,EAAuB,IAARK,EAAI3qF,GAChC8qF,EAAYR,EAAuB,IAARK,EAAIjxF,GAC/BizD,EAAM29B,EAAeK,EAAIn2E,GACzBs4C,EAAQ69B,EAAIlxF,EACZsxF,EAAY,OAAOrqF,OAAOisD,EAAK,MAAMjsD,OAAOmqF,EAAY,OAAOnqF,OAAOoqF,EAAW,MACjFE,EAAa,QAAQtqF,OAAOisD,EAAK,MAAMjsD,OAAOmqF,EAAY,OAAOnqF,OAAOoqF,EAAW,OAAOpqF,OAAOosD,EAAMiW,QAAkB,IAAVjW,EAAc,EAAI,GAAI,KACzI,OAAiB,IAAVA,EAAci+B,EAAYC,CACnC,GACC,CACDnzF,IAAK,QACLrC,MAAO,WACL,IAAIy1F,EAAc9xF,KAAK+xF,QACrBlnE,EAAIinE,EAAYjnE,EAChBymE,GAAS,OAAyBQ,EAAa7mB,GACjD,OAAO,QAAc,OAAc,CAAC,EAAGqmB,GAAS,CAAC,EAAG,CAClD/wF,EAAGsqB,EACHvqB,EAAGN,KAAKM,GAEZ,KAEK8wF,CACT,CAhCgC,CAgC9B,0FCtDa,SAASY,EAAa5kC,GACnC,IAAI6kC,EAAoB,cAAiB,SAAUp4D,GAC/C,OAAOA,EAAI,CACb,GAAG,GAEH6rC,GADqB,OAAeusB,EAAmB,GACtB,GAC/BC,EAAkB,SAAa9kC,GAQnC,MAAO,EAPQ,QAAS,WACtB,OAAO8kC,EAAgBptF,OACzB,KACe,QAAS,SAAUqtF,GAChCD,EAAgBptF,QAA6B,mBAAZqtF,EAAyBA,EAAQD,EAAgBptF,SAAWqtF,EAC7FzsB,GACF,IAEF,iECtBI0sB,EAAO,OAOX,QANiB,SAAoBjiE,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,GAChEqhB,EAAKiiE,GAAQ9jF,MAAMie,QAAQ4D,EAAKiiE,IAASjiE,EAAKiiE,GAAQ,IACnB,IAA/BjiE,EAAKiiE,GAAMj0D,QAAQ9hC,IACrBg2B,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASygE,GAAOjiE,EAAKkiE,UAAWliE,EAAKiiE,GAAM/0F,KAAK,OAE/E,mBCPAlB,EAAOC,QAAU,IAA0B,qGCC3C,MAAMk2F,EAAex+E,IACnB,MAAM,aACJumC,EAAY,aACZ+B,GACEtoC,EACJ,MAAO,CACL,CAACumC,GAAe,CACdnD,SAAU,WACVyH,WAAY,cACZb,cAAe,OACf3D,UAAW,aACXF,MAAO,qBAAqBmC,KAC5Bf,UAAW,uBACXkG,QAAS,GAET,uBAAwB,CACtB9F,WAAY,CAAC,mBAAmB3nC,EAAMy+E,oBAAqB,cAAcz+E,EAAMy+E,qBAAqBl1F,KAAK,KACzG,WAAY,CACVg+C,UAAW,yBACXkG,QAAS,GAEX,eAAgB,CACd9F,WAAY,CAAC,cAAc3nC,EAAM4nC,sBAAsB5nC,EAAM0sC,kBAAmB,WAAW1sC,EAAM4nC,sBAAsB5nC,EAAM0sC,mBAAmBnjD,KAAK,QAI5J,EAEH,GAAe,QAAsB,QAAQyW,GAAS,CAACw+E,EAAax+E,uBC7BpE3X,EAAOC,QAAU,IAA0B,oECGzCD,EAAOC,QAAU,EAAjB,yBCHFD,EAAOC,QAAU,IAA0B,4GCoBT,SAXC,CAAE0S,EAAU,CAAC,KAC9C,MAAM,MAAEusB,EAAQ,EAAC,kBAAEm3D,GAAoB,GAAS1jF,EAChD,MAAO,CACL1G,KARqB,iBASrB,YAAAqqF,CAAazsC,EAAO0sC,EAAMn0E,GACxB,MAAM,eAAEo0E,EAAiB,KAAQp0E,EAAOe,aACxC,OAON,SACE0mC,EACA0sC,EAAO,CAAC,EACRr3D,EACAm3D,EACAG,GAEA,IAAKD,EAAKE,qBAAsB,QAAQF,EAAKE,mBAC3C,OAAO5sC,EAET,MAAM6sC,EAAiBH,EAAuB,kBAAEtqF,MAAQsqF,EAAKE,kBAAkB7nE,YAAY3iB,KAErFmoF,EA4BR,SACE3rF,EACA4tF,EACAG,GAGA,IACE,MAAMG,EAAa,CACjB,OACA,UACA,QACA,OACA,SACA,WACA,aACA,eACA,UAGIC,EAAiB,CAAC,EAGxB,IAAK,MAAMr0F,KAAO/C,OAAOwK,KAAKvB,GAAQ,CACpC,IAAiC,IAA7BkuF,EAAW30D,QAAQz/B,GACrB,SAEF,MAAMrC,EAAQuI,EAAMlG,GACpBq0F,EAAer0F,IAAO,QAAQrC,IAA2B,iBAAVA,GAAqB,QAAS,GAAGA,IAASs2F,GAAkBt2F,CAC7G,CASA,GALIm2F,QAAqCt2F,IAAhB0I,EAAMouF,QAC7BD,EAAeC,OAAQ,QAAQpuF,EAAMouF,OAASpuF,EAAMouF,MAAMj3F,WAAa6I,EAAMouF,OAInD,mBAAjBpuF,EAAMquF,OAAuB,CACtC,MAAMC,EAAkBtuF,EAAMquF,SAE9B,IAAK,MAAMv0F,KAAO/C,OAAOwK,KAAK+sF,GAAkB,CAC9C,MAAM72F,EAAQ62F,EAAgBx0F,GAC9Bq0F,EAAer0F,IAAO,QAAQrC,GAASA,EAAMN,WAAaM,CAC5D,CACF,CAEA,OAAO02F,CACT,CAAE,MAAOI,GACP,KAAe,KAAOvuF,MAAM,sDAAuDuuF,EACrF,CAEA,OAAO,IACT,CAhFoBC,CAAkBV,EAAKE,kBAAoBJ,EAAmBG,GAEhF,GAAIpC,EAAW,CACb,MAAM8C,EAAW,IACZrtC,EAAMqtC,UAGLC,GAAsB,QAAU/C,EAAWl1D,GASjD,OAPI,QAAci4D,MAGhB,QAAyBA,EAAqB,iCAAiC,GAC/ED,EAASR,GAAiBS,GAGrB,IACFttC,EACHqtC,WAEJ,CAEA,OAAOrtC,CACT,CA1CautC,CAA2BvtC,EAAO0sC,EAAMr3D,EAAOm3D,EAAmBG,EAC3E,EAEH,kHCLI,KAQA,+HCXL,MAAMa,EAqBH,WAAAzoE,CAAcm8B,GAAUlnD,KAAKknD,QAAUA,EACtClnD,KAAKmnD,SAAW,IAAIhpD,IACpB6B,KAAKyzF,oBAAsB,EAE3BzzF,KAAKonD,UAAYC,aAAY,IAAMrnD,KAAK0zF,UAAU,MAE9C1zF,KAAKonD,UAAUusC,OAEjB3zF,KAAKonD,UAAUusC,QAGjB3zF,KAAK4zF,YAAc32F,KAAK6lD,MAAO7lD,KAAKC,SAAW,KAA0B,KACzE8C,KAAK6zF,aAAc,CACrB,CAKC,GAAA5+E,CACCqyC,EACAC,EACAlrD,EACAmrD,EAAkB,OAClBC,EAAkB,CAAC,EACnBC,GAAsB,WAEtB,MAAMhlB,EAAYzlC,KAAK6lD,MAAM4E,GACvBt/C,GAAO,QAAkBm/C,GACzBpnB,GAAO,QAAasnB,GACpB74B,GAAO,QAAa44B,GAEpBG,GAAY,QAAaL,EAAYl/C,EAAMwmB,EAAMuR,GAEvD,IAAIynB,EAAa5nD,KAAKmnD,SAAS91C,IAAIs2C,GAEnC,MAAME,EAAiBD,GAAcN,IAAe,KAAkBM,EAAWlE,OAAOoE,OAAS,EAE7FF,GACFA,EAAWlE,OAAOzuC,IAAI5Y,GAElBurD,EAAWllB,UAAYA,IACzBklB,EAAWllB,UAAYA,KAGzBklB,EAAa,CAEXlE,OAAQ,IAAI,KAAW4D,GAAYjrD,GACnCqmC,YACA4kB,aACAl/C,OACAwmB,OACAuR,QAEFngC,KAAKmnD,SAASxoD,IAAIgpD,EAAWC,IAI/B,MAAMrO,EAAuB,iBAAVl9C,EAAqBurD,EAAWlE,OAAOoE,OAASD,EAAiBxrD,GACpF,QAAgCirD,EAAYl/C,EAAMmxC,EAAK3qB,EAAM64B,EAAiBE,GAI9E3nD,KAAKyzF,qBAAuB7rC,EAAWlE,OAAOoE,OAE1C9nD,KAAKyzF,qBAAuB,MAC9BzzF,KAAK8B,OAET,CAKC,KAAAA,GACC9B,KAAK6zF,aAAc,EACnB7zF,KAAK0zF,QACP,CAKC,KAAAlwF,GACCxD,KAAK6zF,aAAc,EACnB7rC,cAAchoD,KAAKonD,WACnBpnD,KAAK0zF,QACP,CAUC,MAAAA,GAOC,GAAI1zF,KAAK6zF,YAKP,OAJA7zF,KAAK6zF,aAAc,EACnB7zF,KAAKyzF,oBAAsB,EAC3BzzF,KAAK8zF,gBAAgB9zF,KAAKmnD,eAC1BnnD,KAAKmnD,SAASn8C,QAGhB,MAAM+oF,EAAgB92F,KAAK6lD,OAAM,WAAwB,KAAyB,IAAO9iD,KAAK4zF,YAGxFI,EAAiB,IAAI71F,IAC3B,IAAK,MAAOO,EAAKu1F,KAAWj0F,KAAKmnD,SAC3B8sC,EAAOvxD,WAAaqxD,IACtBC,EAAer1F,IAAID,EAAKu1F,GACxBj0F,KAAKyzF,qBAAuBQ,EAAOvwC,OAAOoE,QAI9C,IAAK,MAAOppD,KAAQs1F,EAClBh0F,KAAKmnD,SAASnoD,OAAON,GAGvBsB,KAAK8zF,gBAAgBE,EACvB,CAMC,eAAAF,CAAgBE,GACf,GAAIA,EAAe/+D,KAAO,EAAG,CAG3B,MAAMi/D,EAAU5lF,MAAMwqB,KAAKk7D,GAAgBjzF,KAAI,EAAE,CAAE6mD,KAAgBA,KACnE,OAAwB5nD,KAAKknD,QAASgtC,EACxC,CACF,oBCxKF/3F,EAAOC,QAAU,IAA0B,uDCA3C,IAAI+3F,EAAmB,EAAQ,QAe/Bh4F,EAAOC,QALP,SAAyBg4F,EAAYC,GACnC,IAAI3qF,EAAS2qF,EAASF,EAAiBC,EAAW1qF,QAAU0qF,EAAW1qF,OACvE,OAAO,IAAI0qF,EAAWrpE,YAAYrhB,EAAQ0qF,EAAWE,WAAYF,EAAWj0F,OAC9E,wECXEhE,EAAOC,QAAU,EAAjB,gCCOM,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyF/b,MAC7F,KAEJmc,YACI,yEAAyEnc,MACrE,KAERoc,kBAAkB,EAClBC,SACI,wEAAwErc,MACpE,KAERsc,cAAe,2CAA2Ctc,MAAM,KAChEuc,YAAa,wBAAwBvc,MAAM,KAC3Cyc,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJE,IAAK,0BACLE,KAAM,iCAEVE,SAAU,CACNC,QAAS,aACTE,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,aACRC,KAAM,WACNpU,EAAG,gBACHqU,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,YACHC,GAAI,WACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WAERoO,cAAe,gDACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAGO,WAAbD,GAAyBC,GAAQ,GACrB,iBAAbD,GACa,eAAbA,EAEOC,EAAO,GAEPA,CAEf,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,EACA,SACAA,EAAO,GACP,SACAA,EAAO,GACP,eACAA,EAAO,GACP,aAEA,QAEf,GAKP,CAtFyC9N,CAAQ,EAAQ,0ECN1D,IAAIm4E,EAAa,EAAQ,QACrBruF,EAAO,EAAQ,QAenBhK,EAAOC,QAJP,SAAoBwnB,EAAQR,GAC1B,OAAOQ,GAAU4wE,EAAWpxE,EAAQjd,EAAKid,GAASQ,EACpD,mBCdAznB,EAAOC,QAAU,IAA0B,gJCqB3C,SAASq4F,EACPC,EACAC,EACAC,EACAC,GAEA,MAAMC,GAAU,QAAgCF,GAC1CG,EAAkB,CACtBC,SAAS,IAAIhxE,MAAOwZ,iBAChBs3D,GAAW,CAAEG,IAAKH,QAChBD,GAAUF,GAAO,CAAEA,KAAK,QAAYA,KAGtCO,EACJ,eAAgBR,EAAU,CAAC,CAAEn1F,KAAM,YAAcm1F,GAAW,CAAC,CAAEn1F,KAAM,WAAam1F,EAAQzB,UAE5F,OAAO,QAAe8B,EAAiB,CAACG,GAC1C,CAKA,SAASC,EACPnvC,EACA2uC,EACAC,EACAC,GAEA,MAAMC,GAAU,QAAgCF,GAS1CQ,EAAYpvC,EAAMzmD,MAAuB,iBAAfymD,EAAMzmD,KAA0BymD,EAAMzmD,KAAO,SAlD/E,SAAiCymD,EAAO8uC,GACjCA,IAGL9uC,EAAMivC,IAAMjvC,EAAMivC,KAAO,CAAC,EAC1BjvC,EAAMivC,IAAI7sF,KAAO49C,EAAMivC,IAAI7sF,MAAQ0sF,EAAQ1sF,KAC3C49C,EAAMivC,IAAIn1E,QAAUkmC,EAAMivC,IAAIn1E,SAAWg1E,EAAQh1E,QACjDkmC,EAAMivC,IAAII,aAAe,IAAKrvC,EAAMivC,IAAII,cAAgB,MAASP,EAAQO,cAAgB,IACzFrvC,EAAMivC,IAAI3iF,SAAW,IAAK0zC,EAAMivC,IAAI3iF,UAAY,MAASwiF,EAAQxiF,UAAY,IAE/E,CA0CEgjF,CAAwBtvC,EAAO4uC,GAAYA,EAASK,KAEpD,MAAMF,GAAkB,QAA2B/uC,EAAO8uC,EAASD,EAAQF,UAMpE3uC,EAAM5nC,sBAEb,MAAMm3E,EAAY,CAAC,CAAEh2F,KAAM61F,GAAapvC,GACxC,OAAO,QAAe+uC,EAAiB,CAACQ,GAC1C,CAOA,SAASC,EAAmBC,EAAOl3E,GAQjC,MAAMI,GAAM,QAAkC82E,EAAM,IAE9Cd,EAAMp2E,GAAUA,EAAOm3E,SACvBb,EAASt2E,GAAUA,EAAOe,aAAau1E,OAEvCc,EAAU,CACdX,SAAS,IAAIhxE,MAAOwZ,iBAbtB,SAA6B7e,GAC3B,QAASA,EAAIi3E,YAAcj3E,EAAIk3E,UACjC,CAYMC,CAAoBn3E,IAAQ,CAAE8sB,MAAO9sB,QACnCk2E,GAAUF,GAAO,CAAEA,KAAK,QAAYA,KAGtCoB,EAAiBx3E,GAAUA,EAAOe,aAAay2E,eAC/CC,EAAoBD,EACrBl4E,GAASk4E,GAAe,QAAWl4E,IACnCA,IAAS,QAAWA,GAEnBse,EAAQ,GACd,IAAK,MAAMte,KAAQ43E,EAAO,CACxB,MAAMQ,EAAWD,EAAkBn4E,GAC/Bo4E,GACF95D,EAAMt6B,MAAK,QAAuBo0F,GAEtC,CAEA,OAAO,QAAeN,EAASx5D,EACjC,uFC9GO,MAAM+5D,EAAmB,KAAM,UAAep+C,OAAO3E,SAASgjD,2BCDrE,IAGIt6F,EAHcF,OAAOC,UAGQC,eAqBjCM,EAAOC,QAZP,SAAwB6F,GACtB,IAAI9B,EAAS8B,EAAM9B,OACfxD,EAAS,IAAIsF,EAAM8oB,YAAY5qB,GAOnC,OAJIA,GAA6B,iBAAZ8B,EAAM,IAAkBpG,EAAeU,KAAK0F,EAAO,WACtEtF,EAAO8W,MAAQxR,EAAMwR,MACrB9W,EAAOwF,MAAQF,EAAME,OAEhBxF,CACT,iECtBIy5F,EAAwB36F,OAAO26B,IAAI,iBACnCigE,EAAwB56F,OAAO26B,IAAI,8BACnCkgE,EAAsB76F,OAAO26B,IAAI,kBAKtB,SAASmgE,EAAW3yE,GACjC,OAEEA,GAA8B,YAApB,OAAQA,KAElBA,EAAO1C,WAAak1E,GAAyBxyE,EAAO1C,WAAam1E,IAEjEzyE,EAAOrkB,OAAS+2F,CAEpB,mBCjBAn6F,EAAOC,QAAU,IAA0B,uDCA3CD,EAAOC,QAAU,IAA0B,kECE3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4LAAgM,KAAQ,OAAQ,MAAS,8FCHnX,IAAIo6F,EAAU,kBACVC,EAAc,EAAQ,QAK1Bt6F,EAAOC,QAJP,SAAuB6M,GACrB,IAAInF,EAAI2yF,EAAYxtF,EAAG,UACvB,MAAO,UAAYutF,EAAQ1yF,GAAKA,EAAIA,EAAI,EAC1C,EACgC3H,EAAOC,QAAQgmB,YAAa,EAAMjmB,EAAOC,QAAiB,QAAID,EAAOC,mBCarGD,EAAOC,QAVP,SAAmBmuB,EAAG26C,GAIpB,IAHA,IAAIzxD,GAAS,EACT9W,EAAS2R,MAAMic,KAEV9W,EAAQ8W,GACf5tB,EAAO8W,GAASyxD,EAASzxD,GAE3B,OAAO9W,CACT,mBCjBAR,EAAOC,QAAU,IAA0B,6HCG3C,MAOMs6F,EAAa,CAACC,EAAM9gE,EAAU+iB,EAAWg+C,IAAcD,EAAKE,UAAUhhE,EAAU+iB,EAAWg+C,GAEpFE,EAAiB,CAACC,EAAI7sF,EAAQ,CAAC,KAC1C,MACEysF,KAAMK,GACJ9sF,GAEFysF,KAAMM,EACNC,UAAWC,IACT,IAAA5lC,YAAW,OAAgB,CAAC,EAC1BolC,EAAOK,GAAiBC,IAAmB,UAEjD,GADIN,IAASA,EAAKS,mBAAkBT,EAAKS,iBAAmB,IAAI,OAC3DT,EAAM,EACT,QAASA,EAAM,sBAAuB,0FACtC,MAAMU,EAAY,CAACv0F,EAAGw0F,KAChB,QAASA,GAA4BA,GACrC,QAASA,KAAuB,QAASA,EAAmBlqC,cAAsBkqC,EAAmBlqC,aAClG9+C,MAAMie,QAAQzpB,GAAKA,EAAEA,EAAE3C,OAAS,GAAK2C,EAExCy0F,EAAc,CAACF,EAAW,CAAC,GAAG,GAIpC,OAHAE,EAAYtuF,EAAIouF,EAChBE,EAAYZ,KAAO,CAAC,EACpBY,EAAY55B,OAAQ,EACb45B,CACT,CACIZ,EAAK7nF,QAAQ6wE,OAAO6X,OAAM,QAASb,EAAM,oBAAqB,uHAClE,MAAMc,EAAc,KACf,aACAd,EAAK7nF,QAAQ6wE,SACbz1E,IAEC,YACJwtF,EAAW,UACXd,GACEa,EACJ,IAAIE,EAAaZ,GAAMI,GAAwBR,EAAK7nF,SAASooF,UAC7DS,GAAa,QAASA,GAAc,CAACA,GAAcA,GAAc,CAAC,eAClEhB,EAAKS,iBAAiBQ,oBAAoBD,GAC1C,MAAMh6B,GAASg5B,EAAKkB,eAAiBlB,EAAKmB,uBAAyBH,EAAWj3E,OAAM6J,IAAK,QAAmBA,EAAGosE,EAAMc,KAC/GM,EAtCa,EAACpB,EAAM9gE,EAAU+iB,EAAWg+C,KAAc,IAAA74B,aAAY24B,EAAWC,EAAM9gE,EAAU+iB,EAAWg+C,GAAY,CAACD,EAAM9gE,EAAU+iB,EAAWg+C,IAsCtIoB,CAAarB,EAAMzsF,EAAM+tF,KAAO,KAA6B,aAAvBR,EAAYS,OAAwBP,EAAaA,EAAW,GAAIf,GACjHuB,EAAO,IAAMJ,EACbK,EAAU,IAAM1B,EAAWC,EAAMzsF,EAAM+tF,KAAO,KAA6B,aAAvBR,EAAYS,OAAwBP,EAAaA,EAAW,GAAIf,IACnH3tF,EAAGovF,IAAQ,IAAAC,UAASH,GAC3B,IAAII,EAAWZ,EAAWt6F,OACtB6M,EAAM+tF,MAAKM,EAAW,GAAGruF,EAAM+tF,MAAMM,KACzC,MAAMC,EApDY,EAACn8F,EAAOqvC,KAC1B,MAAM1rB,GAAM,IAAA49C,UAIZ,OAHA,IAAAI,YAAU,KACRh+C,EAAIlb,QAAiCzI,CAAK,GACzC,CAACA,EAAOqvC,IACJ1rB,EAAIlb,OAAO,EA+CO2zF,CAAYF,GAC/BG,GAAY,IAAA96B,SAAO,IACzB,IAAAI,YAAU,KACR,MAAM,SACJ26B,EAAQ,cACRC,GACEnB,EACJiB,EAAU5zF,SAAU,EACf64D,GAAU+5B,IACTxtF,EAAM+tF,KACR,QAActB,EAAMzsF,EAAM+tF,IAAKN,GAAY,KACrCe,EAAU5zF,SAASuzF,EAAKD,EAAQ,KAGtC,QAAezB,EAAMgB,GAAY,KAC3Be,EAAU5zF,SAASuzF,EAAKD,EAAQ,KAItCz6B,GAAS66B,GAAoBA,IAAqBD,GAAYG,EAAU5zF,SAC1EuzF,EAAKD,GAEP,MAAMS,EAAa,KACbH,EAAU5zF,SAASuzF,EAAKD,EAAQ,EAItC,OAFIO,GAAUhC,GAAM3U,GAAG2W,EAAUE,GAC7BD,GAAejC,GAAM/1F,MAAMohF,GAAG4W,EAAeC,GAC1C,KACLH,EAAU5zF,SAAU,EAChB6xF,GAAMgC,GAAUv7F,MAAM,KAAKoB,SAAQ9B,GAAKi6F,EAAKmC,IAAIp8F,EAAGm8F,KACpDD,GAAiBjC,GAAMiC,EAAcx7F,MAAM,KAAKoB,SAAQ9B,GAAKi6F,EAAK/1F,MAAMk4F,IAAIp8F,EAAGm8F,IAAY,CAChG,GACA,CAAClC,EAAM4B,KACV,IAAAv6B,YAAU,KACJ06B,EAAU5zF,SAAW64D,GACvB06B,EAAKF,EACP,GACC,CAACxB,EAAMC,EAAWj5B,IACrB,MAAMyM,EAAM,CAACnhE,EAAG0tF,EAAMh5B,GAItB,GAHAyM,EAAInhE,EAAIA,EACRmhE,EAAIusB,KAAOA,EACXvsB,EAAIzM,MAAQA,EACRA,EAAO,OAAOyM,EAClB,IAAKzM,IAAU+5B,EAAa,OAAOttB,EACnC,MAAM,IAAIjpE,SAAQC,IACZ8I,EAAM+tF,KACR,QAActB,EAAMzsF,EAAM+tF,IAAKN,GAAY,IAAMv2F,OAEjD,QAAeu1F,EAAMgB,GAAY,IAAMv2F,KACzC,GACA,iECvGG,MAAM23F,EAAc,SAKXC,EAAAA,EAJd,MAAM,SAAEA,IAAaC,EAAAA,EAAAA,SAIPD,EAAd,MAAM3lF,EAAsD,QAA9C2lF,EAAeE,QAAfF,EAAAA,EAASrvF,MAFJ,oBAELqvF,IAAAA,GAA+B,QAA/BA,EAAAA,EAA6B,UAA7BA,IAAAA,OAAAA,EAAAA,EAAiC57F,MAAM,KAAK,UAA5C47F,IAAAA,EAAAA,EAAkD,EAEhE,MAAO,CAAE3lF,MAAOK,OAAOL,GAAQ,4DCFA,QAAyB,CACxD6hC,oBAAmB,wDC4BN,IAAiBmD,UAAU8gD,qCCnC1C,IAAIh2C,EAAOlmD,KAAKkmD,KACZL,EAAQ7lD,KAAK6lD,MAKjB3mD,EAAOC,QAAUa,KAAKmpC,OAAS,SAAevM,GAC5C,IAAItP,GAAKsP,EACT,OAAQtP,EAAI,EAAIu4B,EAAQK,GAAM54B,EAChC,gCCVe,SAAS6uE,EAAOC,GAE7B,OADgBt7F,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,IAC9D,MAACs7F,EAAuD,GAClE/qF,MAAMie,QAAQ8sE,GAAaA,EAAY,CAACA,EACjD,2OCMO,MAAMvhF,GAAWiM,EAAAA,EAAAA,aACtB,CAAC,EAQC/D,cAPA,OACEyjE,EAAS,YAAW,SACpB7rE,EAAQ,UACRD,EAAY,GAAE,IACd2hF,GAEc,EADXzhF,oXAAAA,CAAAA,EAAAA,CAJH4rE,SACA7rE,WACAD,YACA2hF,QAKF,OACE,SAACC,EAAAA,4UAAMA,CAAAA,CACLv5E,IAAKA,EACL4jE,cAAaH,EACb+V,WAAUF,EACV3hF,UAAW,aAAaA,IAAYugB,QAChCrgB,cAAAA,CACJ4hF,QAAQ,kBAEP7hF,uXC9BIjc,OAAO8lB,eAAerlB,EAAtB,cAA4CC,OAAM,IAAK,IAAIgJ,EAAI,EAAQ,QAAS,EAAQ,QAAc,IAAI2pF,EAAM,EAAQ,QAAS,SAASwH,EAAQ95F,GAAG,OAAO85F,EAAQ,mBAAmB/6F,QAAQ,iBAAiBA,OAAOyM,SAAS,SAASxL,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBjB,QAAQiB,EAAEquB,cAActvB,QAAQiB,IAAIjB,OAAOG,UAAU,gBAAgBc,CAAC,GAAGA,EAAE,CAAC,SAASonD,EAAgBpnD,EAAEuM,GAAG,KAAKvM,aAAauM,GAAG,MAAM,IAAI86C,UAAU,oCAAoC,CAAC,SAAS21C,EAAkBh9F,EAAEuM,GAAG,IAAI,IAAIshB,EAAE,EAAEA,EAAEthB,EAAE9I,OAAOoqB,IAAI,CAAC,IAAInmB,EAAE6E,EAAEshB,GAAGnmB,EAAEsd,WAAWtd,EAAEsd,aAAY,EAAGtd,EAAE8d,cAAa,EAAG,UAAU9d,IAAIA,EAAE+d,UAAS,GAAIxmB,OAAO8lB,eAAe/kB,EAAE0H,EAAE1F,IAAI0F,EAAE,CAAC,CAAC,SAASu1F,EAAaj9F,EAAEuM,EAAEshB,GAAG,OAAOthB,GAAGywF,EAAkBh9F,EAAEd,UAAUqN,GAAGshB,GAAGmvE,EAAkBh9F,EAAE6tB,GAAG7tB,CAAC,CAAC,SAASk9F,EAAgBl9F,EAAEuM,EAAEshB,GAAG,OAAOthB,KAAKvM,EAAEf,OAAO8lB,eAAe/kB,EAAEuM,EAAE,CAAC5M,MAAMkuB,EAAE7I,YAAW,EAAGQ,cAAa,EAAGC,UAAS,IAAKzlB,EAAEuM,GAAGshB,EAAE7tB,CAAC,CAAC,SAASm9F,EAAUn9F,EAAEuM,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAI86C,UAAU,sDAAsDrnD,EAAEd,UAAUD,OAAO+Q,OAAOzD,GAAGA,EAAErN,UAAU,CAACmvB,YAAY,CAAC1uB,MAAMK,EAAEylB,UAAS,EAAGD,cAAa,KAAMjZ,GAAG6wF,EAAgBp9F,EAAEuM,EAAE,CAAC,SAAS8wF,EAAgBr9F,GAAG,OAAOq9F,EAAgBp+F,OAAO6wC,eAAe7wC,OAAO0D,eAAe,SAAS3C,GAAG,OAAOA,EAAEmmB,WAAWlnB,OAAO0D,eAAe3C,EAAE,GAAGA,EAAE,CAAC,SAASo9F,EAAgBp9F,EAAEuM,GAAG,OAAO6wF,EAAgBn+F,OAAO6wC,gBAAgB,SAAS9vC,EAAEuM,GAAG,OAAOvM,EAAEmmB,UAAU5Z,EAAEvM,CAAC,GAAGA,EAAEuM,EAAE,CAAyQ,IAAI+wF,EAAS,WAAW,SAASt9F,EAAEuM,GAAG66C,EAAgB9jD,KAAKtD,GAAGk9F,EAAgB55F,KAAK,gBAAW,GAAQA,KAAKi6F,SAAShxF,EAAEvF,MAAM,EAAE,CAAC,OAAOi2F,EAAaj9F,EAAE,CAAC,CAACgC,IAAI,cAAcrC,MAAM,SAAS4M,GAAG,IAAI,IAAIshB,EAAEvqB,KAAKi6F,SAASv2F,MAAM,GAAGU,EAAE6E,EAAE9I,OAAOgE,EAAE,EAAEA,EAAEC,EAAED,GAAG,EAAEomB,EAAE1oB,KAAKoH,EAAE9E,IAAI,OAAO,IAAIzH,EAAE6tB,EAAE,GAAG,CAAC7rB,IAAI,gBAAgBrC,MAAM,SAASK,EAAEuM,GAAG,IAAIshB,EAAEvqB,KAAKi6F,SAAS95F,OAAO,EAAE,GAAG8I,EAAE,CAAC,IAAI,IAAI7E,EAAEmmB,EAAEnmB,GAAG,EAAEA,GAAG,EAAEpE,KAAKi6F,SAAS71F,GAAG81F,SAASl6F,KAAKi6F,SAAS71F,GAAG81F,QAAO,EAAGl6F,KAAKi6F,SAAS71F,GAAG1H,IAAI,IAAI,IAAIyH,EAAEomB,EAAEpmB,GAAG,EAAEA,GAAG,EAAEnE,KAAKi6F,SAAS91F,GAAG+1F,QAAO,CAAE,MAAM,EAAGl6F,KAAKi6F,SAAS1vE,IAAI7tB,EAAG,GAAG,CAACgC,IAAI,cAAcrC,MAAM,WAAW,OAAO2D,KAAKi6F,SAAS95F,OAAO,CAAC,GAAG,CAACzB,IAAI,iBAAiBrC,MAAM,SAAS4M,GAAG,IAAI,IAAIshB,EAAE,GAAGnmB,EAAEpE,KAAKi6F,SAAS95F,OAAOgE,EAAE,EAAEA,EAAEC,EAAED,GAAG,EAAE,CAAC,IAAI7D,EAAEN,KAAKi6F,SAAS91F,IAAI,IAAI8E,EAAEk1B,QAAQ79B,IAAIiqB,EAAE1oB,KAAKvB,EAAE,CAAC,OAAO,IAAI5D,EAAE6tB,EAAE,KAAK7tB,CAAC,CAA1uB,GAA8uB,SAASy9F,EAASz9F,GAAG,IAAIuM,EAAE,IAAI9K,IAAI,OAAOzB,EAAE8B,SAAQ,SAAS9B,EAAE6tB,GAAGthB,EAAEtK,IAAI4rB,EAAE7tB,EAAE,IAAGuM,CAAC,CAAC,SAASmxF,EAAkB19F,GAAG,OAAO4R,MAAMie,QAAQ7vB,GAAGA,EAAE,CAACA,EAAE,CAAkG,SAAS29F,EAAgB39F,GAAG,MAAM,aAAaA,EAAEy2C,SAAS,WAAWz2C,EAAEo7C,OAAxJ,SAASp7C,GAAG,OAAO,OAAOA,GAAG,WAAW85F,EAAQ95F,IAAIA,EAAEb,eAAe,UAAU,CAAgFy+F,CAAY59F,GAAGA,EAAEoI,SAASquC,SAASz2C,GAAGy2C,QAAQ,CAAC,IAAIonD,EAAU,WAAW,SAAS79F,EAAEuM,EAAEshB,GAAGu5B,EAAgB9jD,KAAKtD,GAAGk9F,EAAgB55F,KAAK,mBAAc,GAAQ45F,EAAgB55F,KAAK,gBAAW,GAAQA,KAAKw6F,YAAYjwE,EAAEvqB,KAAKy6F,SAASxxF,CAAC,CAAC,OAAO0wF,EAAaj9F,EAAE,CAAC,CAACgC,IAAI,cAAcrC,MAAM,SAAS4M,EAAEshB,GAAG,IAAInmB,EAAE+1F,EAASn6F,KAAKw6F,aAAa,GAAGp2F,EAAEqR,IAAIxM,GAAG,CAAC,IAAI9E,EAAEC,EAAEiN,IAAIpI,GAAG7E,EAAEzF,IAAIsK,EAAE9E,EAAEu2F,YAAYnwE,GAAG,MAAMnmB,EAAEzF,IAAIsK,EAAE,IAAI+wF,EAASzvE,IAAI,OAAO,IAAI7tB,EAAEsD,KAAKy6F,SAASr2F,EAAE,GAAG,CAAC1F,IAAI,gBAAgBrC,MAAM,SAASK,EAAEuM,GAAG,IAAIshB,EAAEvqB,KAAKw6F,YAAYnpF,IAAI3U,GAAG0H,EAAE,YAAYpE,KAAKy6F,SAASlwE,GAAGA,EAAEowE,cAAc1xF,EAAE7E,EAAE,GAAG,CAAC1F,IAAI,cAAcrC,MAAM,SAASK,GAAG,IAAIA,EAAE,OAAOsD,KAAKw6F,YAAYvlE,KAAK,EAAE,IAAIhsB,EAAEjJ,KAAKw6F,YAAYnpF,IAAI3U,GAAG,QAAQuM,GAAGA,EAAE2xF,aAAa,GAAG,CAACl8F,IAAI,iBAAiBrC,MAAM,SAAS4M,EAAEshB,GAAG,IAAInmB,EAAE+1F,EAASn6F,KAAKw6F,aAAa,IAAIp2F,EAAEqR,IAAIxM,GAAG,OAAO,IAAIvM,EAAEsD,KAAKy6F,SAASr2F,GAAG,IAAID,EAAEC,EAAEiN,IAAIpI,GAAG4xF,eAAetwE,GAAG,OAAOpmB,EAAEy2F,cAAcx2F,EAAEzF,IAAIsK,EAAE9E,GAAGC,EAAEpF,OAAOiK,GAAG,IAAIvM,EAAEsD,KAAKy6F,SAASr2F,EAAE,KAAK1H,CAAC,CAA/1B,GAAm2Bk9F,EAAgBW,EAAU,gBAAe,SAAS79F,EAAEuM,EAAEshB,GAAG,IAAInmB,EAAE,IAAIjG,IAAI,OAAOiG,EAAEzF,IAAIsK,EAAE,IAAI+wF,EAASzvE,IAAI,IAAIgwE,EAAU79F,EAAE0H,EAAE,IAAG,IAAI02F,EAAY,WAAW,SAASp+F,EAAEuM,GAAG,IAAIshB,EAAEvqB,KAAK8jD,EAAgB9jD,KAAKtD,GAAGk9F,EAAgB55F,KAAK,WAAW,IAAI7B,KAAKy7F,EAAgB55F,KAAK,QAAQ,IAAI7B,KAAKy7F,EAAgB55F,KAAK,cAAS,GAAQ45F,EAAgB55F,KAAK,iBAAgB,SAAStD,GAAG,OAAO,SAASuM,GAAGshB,EAAEwwE,MAAMv8F,SAAQ,SAAS+rB,GAAGA,EAAEowE,cAAcj+F,EAAEuM,EAAE,GAAE,CAAC,IAAGjJ,KAAKmjB,OAAOla,CAAC,CAAC,OAAO0wF,EAAaj9F,EAAE,CAAC,CAACgC,IAAI,cAAcrC,MAAM,SAASK,EAAEuM,EAAEshB,GAAG,GAAGvqB,KAAK+6F,MAAMtlF,IAAI/Y,GAAG,CAAC,IAAI0H,EAAEpE,KAAK+6F,MAAM1pF,IAAI3U,GAAGsD,KAAK+6F,MAAMp8F,IAAIjC,EAAE0H,EAAEs2F,YAAYzxF,EAAEshB,GAAG,MAAMvqB,KAAK+6F,MAAMp8F,IAAIjC,EAAE69F,EAAUS,aAAat+F,EAAEuM,EAAEshB,IAAIvqB,KAAKi6F,SAASxkF,IAAIxM,IAAIjJ,KAAKi7F,iBAAiBhyF,EAAE,GAAG,CAACvK,IAAI,cAAcrC,MAAM,WAAW,OAAO2D,KAAKi6F,SAAShlE,KAAK,CAAC,GAAG,CAACv2B,IAAI,iBAAiBrC,MAAM,SAASK,EAAEuM,EAAEshB,GAAG,GAAGvqB,KAAK+6F,MAAMtlF,IAAI/Y,GAAG,CAAC,IAAI0H,EAAEpE,KAAK+6F,MAAM1pF,IAAI3U,GAAGm+F,eAAe5xF,EAAEshB,GAAGnmB,EAAEw2F,cAAc56F,KAAK+6F,MAAMp8F,IAAIjC,EAAE0H,GAAGpE,KAAK+6F,MAAM/7F,OAAOtC,GAAG,IAAIyH,GAAE,EAAGnE,KAAK+6F,MAAMv8F,SAAQ,SAAS9B,GAAG,OAAOyH,EAAEA,GAAGzH,EAAEk+F,YAAY3xF,EAAE,IAAG9E,GAAGnE,KAAKk7F,oBAAoBjyF,EAAE,CAAC,GAAG,CAACvK,IAAI,mBAAmBrC,MAAM,SAASK,GAAG,IAAIuM,EAAEjJ,KAAKm7F,cAAcz+F,GAAGsD,KAAKi6F,SAASt7F,IAAIjC,EAAEuM,GAAGjJ,KAAKmjB,OAAO8yB,iBAAiBv5C,EAAEuM,GAAE,EAAG,GAAG,CAACvK,IAAI,sBAAsBrC,MAAM,SAASK,GAAGsD,KAAKi6F,SAASxkF,IAAI/Y,KAAKsD,KAAKmjB,OAAOi4E,oBAAoB1+F,EAAEsD,KAAKi6F,SAAS5oF,IAAI3U,IAAG,GAAIsD,KAAKi6F,SAASj7F,OAAOtC,GAAG,KAAKA,CAAC,CAArqC,GAAqqE8mC,EAAS,IAA1/B,WAAW,SAAS9mC,IAAI,IAAIuM,EAAEjJ,KAAK8jD,EAAgB9jD,KAAKtD,GAAGk9F,EAAgB55F,KAAK,UAAU,IAAI7B,KAAKy7F,EAAgB55F,KAAK,aAAY,SAAStD,GAAG,IAAI6tB,IAAIxsB,UAAUoC,OAAO,QAAG,IAASpC,UAAU,KAAKA,UAAU,GAAGqG,EAAEi2F,EAAgB39F,GAAG,GAAGuM,EAAEoyF,QAAQ5lF,IAAIrR,GAAG,OAAO6E,EAAEoyF,QAAQhqF,IAAIjN,GAAG,IAAImmB,EAAE,OAAO,KAAK,IAAIpmB,EAAE,IAAI22F,EAAY12F,GAAG,OAAO6E,EAAEoyF,QAAQ18F,IAAIyF,EAAED,GAAGA,CAAC,IAAGy1F,EAAgB55F,KAAK,gBAAe,SAAStD,GAAGuM,EAAEoyF,QAAQr8F,OAAOq7F,EAAgB39F,GAAG,GAAE,CAAC,OAAOi9F,EAAaj9F,EAAE,CAAC,CAACgC,IAAI,MAAMrC,MAAM,SAASK,EAAEuM,GAAG,IAAIshB,EAAExsB,UAAUoC,OAAO,QAAG,IAASpC,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,GAAGsH,EAAIi2F,UAAU,CAAC,IAAIl3F,EAAEmmB,EAAEpH,OAAOhf,OAAE,IAASC,EAAE+uC,SAAS/uC,EAAE9D,EAAEiqB,EAAEgxE,KAAK10F,OAAE,IAASvG,EAAE,UAAUA,EAAEN,KAAKw7F,UAAUr3F,GAAGu2F,YAAY7zF,EAAEnK,EAAE09F,EAAkBnxF,GAAG,CAAC,GAAG,CAACvK,IAAI,QAAQrC,MAAM,SAASK,EAAEuM,GAAG,IAAIshB,EAAExsB,UAAUoC,OAAO,QAAG,IAASpC,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,GAAGsH,EAAIi2F,UAAU,CAAC,IAAIl3F,EAAEmmB,EAAEpH,OAAOhf,OAAE,IAASC,EAAE+uC,SAAS/uC,EAAE9D,EAAEiqB,EAAEgxE,KAAK10F,OAAE,IAASvG,EAAE,UAAUA,EAAEwD,EAAE9D,KAAKw7F,UAAUr3F,GAAE,GAAIL,IAAIA,EAAE+2F,eAAeh0F,EAAEnK,EAAE09F,EAAkBnxF,IAAInF,EAAE82F,eAAe56F,KAAKy7F,aAAat3F,GAAG,CAAC,KAAKzH,CAAC,CAA7+B,IAAygCg/F,EAAa,SAASh/F,GAAG,SAASuM,IAAI,OAAO66C,EAAgB9jD,KAAKiJ,GAA19I,SAAoCvM,EAAEuM,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,mBAAmBA,EAA1O,SAAgCvM,GAAG,QAAG,IAASA,EAAE,MAAM,IAAIi/F,eAAe,6DAA6D,OAAOj/F,CAAC,CAA6Fk/F,CAAuBl/F,GAAGuM,CAAC,CAAs2IwiF,CAA2BzrF,KAAK+5F,EAAgB9wF,GAAG9B,MAAMnH,KAAKjC,WAAW,CAAC,OAAO87F,EAAU5wF,EAAE+lF,EAAM6M,eAAelC,EAAa1wF,EAAE,CAAC,CAACvK,IAAI,oBAAoBrC,MAAM,WAAW2D,KAAKnB,UAAUmB,KAAKkK,MAAM,GAAG,CAACxL,IAAI,qBAAqBrC,MAAM,SAASK,GAAGsD,KAAKD,YAAYrD,GAAGsD,KAAKnB,UAAUmB,KAAKkK,MAAM,GAAG,CAACxL,IAAI,uBAAuBrC,MAAM,WAAW2D,KAAKD,YAAYC,KAAKkK,MAAM,GAAG,CAACxL,IAAI,YAAYrC,MAAM,SAASK,GAAG,IAAIuM,EAAEvM,EAAE0L,KAAKmiB,EAAE7tB,EAAEslF,GAAG59E,EAAE1H,EAAE6+F,KAAKp3F,EAAEzH,EAAEymB,OAAOqgB,EAAS4Z,IAAIn0C,EAAEshB,EAAE,CAACgxE,KAAKn3F,EAAE+e,OAAOhf,GAAG,GAAG,CAACzF,IAAI,cAAcrC,MAAM,SAASK,GAAG,IAAIuM,EAAEvM,EAAE0L,KAAKmiB,EAAE7tB,EAAEslF,GAAG59E,EAAE1H,EAAE6+F,KAAKp3F,EAAEzH,EAAEymB,OAAOqgB,EAASs4D,MAAM7yF,EAAEshB,EAAE,CAACgxE,KAAKn3F,EAAE+e,OAAOhf,GAAG,GAAG,CAACzF,IAAI,SAASrC,MAAM,WAAW,OAAO,IAAI,KAAK4M,CAAC,CAAhsB,GAAosB2wF,EAAgB8B,EAAa,eAAe,CAACH,KAAK,UAAUp4E,OAAO,aAAau4E,EAAaK,UAAU,CAAC,EAAE3/F,EAAQonC,SAASA,EAASpnC,EAAA,QAAgBs/F,mBCAvyN,IAAIM,EAAY,EAAQ,QACpBzvE,EAAU,EAAQ,QAkBtBpwB,EAAOC,QALP,SAAwBwnB,EAAQq4E,EAAUC,GACxC,IAAIv/F,EAASs/F,EAASr4E,GACtB,OAAO2I,EAAQ3I,GAAUjnB,EAASq/F,EAAUr/F,EAAQu/F,EAAYt4E,GAClE,iDCfA,kBADgC,cAAoB,2FC+BhDu4E,EAAiB,CAAC,EACtBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,8BC1CzBplF,EAAgC,iBAAX3a,SAAuBA,UAAYA,QAAQ4a,UAAY5a,QAG5E6a,EAAaF,GAAgC,iBAAV5a,QAAsBA,SAAWA,OAAO6a,UAAY7a,OAMvFigG,EAHgBnlF,GAAcA,EAAW7a,UAAY2a,GAGtB,IAAWqhB,QAG1CikE,EAAY,WACd,IAIE,OAFYplF,GAAcA,EAAW2rE,SAAW3rE,EAAW2rE,QAAQ,QAAQzpD,OAOpEijE,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,OACnE,CAAE,MAAO5/F,GAAI,CACf,CAZe,GCVX6/F,EDwBJ,KCxB4CC,aAqB5C,QAFmBD,GAAmB,OAAUA,GF8BhD,SAA0BlgG,GACxB,OAAO,EAAAogG,EAAA,GAAapgG,KAClB,EAAA+iF,EAAA,GAAS/iF,EAAM8D,WAAag8F,GAAe,OAAW9/F,GAC1D,8BGvDAV,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,QACA,WACE,QAA4B,oBAAX07C,SAA0BA,OAAO3E,WAAY2E,OAAO3E,SAASjwB,cAChF,+GCHA,SAASw5E,EACPp1C,EACAl/C,EACAwmB,EACAuR,GAGA,MAAO,GAAGmnB,IAAal/C,IAAOwmB,IADNjzB,OAAOg/B,SAAQ,QAAkBwF,IAAOO,MAAK,CAACpgC,EAAGC,IAAMD,EAAE,GAAGsmF,cAAcrmF,EAAE,OAEtG,CAMA,SAASo8F,EAAW91F,GAClB,IAAI+1F,EAAK,EACT,IAAK,IAAI94F,EAAI,EAAGA,EAAI+C,EAAE1G,OAAQ2D,IAE5B84F,GAAMA,GAAM,GAAKA,EADP/1F,EAAEymC,WAAWxpC,GAEvB84F,GAAMA,EAER,OAAOA,IAAO,CAChB,CAgBA,SAASC,EAAuBC,GAC9B,IAAIjY,EAAM,GACV,IAAK,MAAMvvB,KAAQwnC,EAAmB,CACpC,MAAMC,EAAaphG,OAAOg/B,QAAQ26B,EAAKn1B,MACjC68D,EAAYD,EAAW58F,OAAS,EAAI,KAAK48F,EAAWh8F,KAAI,EAAErC,EAAKrC,KAAW,GAAGqC,KAAOrC,MAASgB,KAAK,OAAS,GACjHwnF,GAAO,GAAGvvB,EAAKltD,QAAQktD,EAAK1mC,QAAQ0mC,EAAK5R,UAAU4R,EAAKhO,aAAa01C,MAAc1nC,EAAK5yB,aAC1F,CACA,OAAOmiD,CACT,CAQA,SAASoY,EAAaruE,GACpB,OAAOA,EAAKqJ,QAAQ,WAAY,IAClC,CAQA,SAASilE,EAAkBx+F,GACzB,OAAOA,EAAIu5B,QAAQ,cAAe,IACpC,CAQA,SAASklE,EAAez+F,GACtB,OAAOA,EAAIu5B,QAAQ,eAAgB,GACrC,CAMA,MAAMmlE,EAAuB,CAC3B,CAAC,KAAM,OACP,CAAC,KAAM,OACP,CAAC,KAAM,OACP,CAAC,KAAM,QACP,CAAC,IAAK,WACN,CAAC,IAAK,YAoBR,SAASC,EAAa51C,GACpB,MAAMtnB,EAAO,CAAC,EACd,IAAK,MAAMzhC,KAAO+oD,EACZ9rD,OAAOC,UAAUC,eAAeU,KAAKkrD,EAAiB/oD,KAExDyhC,EADqBg9D,EAAez+F,KAXhBrC,EAYkBsG,OAAO8kD,EAAgB/oD,IAX1D,IAAIrC,GAAOgE,QAAO,CAACy6D,EAAKwiC,IAASxiC,EAX1C,SAA8B34D,GAC5B,IAAK,MAAOu4D,EAAQ/xB,KAAgBy0D,EAClC,GAAIj7F,IAAUu4D,EACZ,OAAO/xB,EAIX,OAAOxmC,CACT,CAGgDo7F,CAAqBD,IAAO,MAD5E,IAA0BjhG,EAexB,OAAO8jC,CACT,gCCzHAxkC,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAEIA,GAD4B,EADnB,EAAQ,QACsBq+D,eAAe,CAAC,oBCX3D7jF,EAAOC,QAAU,IAA0B,+OCG3C,MAKA,GALiC,IAAA4jF,eAAc,CAC7C3tB,UAAW,GACXmrC,YAAY,EACZ3nB,iBAAiB,ICQnB,MAkBA,EAlBoB3rE,IAClB,MACImoD,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,OACT8lF,GACEvzF,EACJkzD,EAlBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAWgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,YACjD,aACJmnD,GACE,aAAiB,MACfgB,EAAYhB,EAAa,OAAQw6B,GACjC8R,EAAc,IAAW,CAC7B,CAAC,GAAGtrC,2BAAoCorC,GACvC9lF,GACH,OAAoB,gBAAoB,KAAShc,OAAOqZ,OAAO,CAC7D2C,UAAWgmF,GACVvgC,GAAW,8BCnBhB,MAoEA,EApEiBlzD,IACf,IAAIwa,EACJ,MAAM,UACJ/M,EAAS,SACTC,EAAQ,KACR6L,EAAI,MACJ6nD,EAAK,OACLsyB,GACE1zF,GACE,UACJmoD,EAAS,WACTmrC,EAAU,UACVj1D,EAAS,4BACTs1D,EACAhoB,gBAAiBioB,GACf,aAAiB,IAiBf,eACJC,GACE,aAAiBC,EAAA,GACrB,IAAIC,EAAe3yB,OACE,IAAVA,EACT2yB,EAAeT,EAAa5lF,EAAW,IACpB,IAAV0zD,IACT2yB,EAAe,IAEjB,MAAMC,EAAe,CACnB5yB,MAAO2yB,GAEJF,GAAmBD,IACtBI,EAAa5yB,MAAQ,KAGrB4yB,EAAapsB,MAAO,GAEtB,MAAMqsB,GAAiB,EAAAjwB,EAAA,GAAQt2D,GAAUzX,OACzC,IAAIi+F,EAA0B,gBAAoB,KAAMziG,OAAOqZ,OAAO,CAAC,GAAG,EAAA02D,EAAA,GAAKxhE,EAAO,CAAC,QAAS,OAAQ,WAAY,CAClHyN,UAAW,IAAW,CACpB,CAAC,GAAG06C,iBAA0BurC,EAC9B,CAAC,GAAGvrC,qBAA+E,KAAhD5uC,EAAO06E,EAAiB,EAAIA,IAC9DxmF,GACH2zD,MAAwB,iBAAVA,EAAqBA,OAAQpvE,KACzC,QAAaunB,EAAM,CACrB9L,UAAW,IAAwB,iBAAqB8L,GAA8B,QAArBiB,EAAKjB,EAAKvZ,aAA0B,IAAPwa,OAAgB,EAASA,EAAG/M,UAAY,GAAI,GAAG06C,iBA1CpHwjB,KACzB,MAAMroE,EAAQoK,aAA2C,EAASA,EAAS,GACrEymF,EAAwB,gBAAoB,OAAQ,CACxD1mF,UAAW,GAAG06C,mBACbz6C,GAGH,QAAK6L,GAAqB,iBAAqB7L,IAA+B,SAAlBA,EAASrY,OAC/DqY,GAAYi+D,GAAmB2nB,GAA+B,iBAAVhwF,EAClC,gBAAoB,MAAO,CAC7CmK,UAAW,GAAG06C,6BACb7kD,EAAM47B,OAAO,IAGbi1D,CAAQ,EA6BbC,CAAmBR,IAOvB,OANKD,IACHO,EAA0B,gBAAoB,IAASziG,OAAOqZ,OAAO,CAAC,EAAGkpF,EAAc,CACrFvtB,UAAyB,QAAdpoC,EAAsB,OAAS,QAC1Cg2D,iBAAkB,GAAGlsC,+BACnB+rC,IAECA,CAAU,6EC5EnB,MA4CA,EA5C2BtqF,IACzB,MAAM,aACJumC,EAAY,mBACZqB,EAAkB,qBAClB8iD,EAAoB,WACpBp+C,EAAU,UACVz5B,EAAS,SACT83B,EAAQ,kBACRggD,GACE3qF,EACJ,MAAO,CACL,CAAC,GAAGumC,gBAA4B,CAC9BH,WAAYskD,EACZhgD,OAAQ,EACR6d,aAAc,IAAG,QAAK11C,MAAc83B,KAAY2B,IAChD/E,UAAW,OACX,WAAY,CACV9f,QAAS,QACTvwB,MAAO,OACPuyC,OAAQ,EACRS,QAAS,UAGX,CAAC,GAAG3D,WAAsBA,aAAyB,CACjDnD,SAAU,WACV3b,QAAS,eACT4lB,cAAe,SACfh9B,cAAes6E,GAEjB,CAAC,KAAKpkD,4BACAA,6BACAA,aAAwBA,yBAAqC,CACjEW,gBAAiB,eAEnB,CAAC,GAAGX,WAAsBA,mBAA+B,CACvDoB,WAAY,CAAC,gBAAgBC,IAAsB,cAAcA,KAAsBr+C,KAAK,MAG9F,CAAC,GAAGg9C,mBAA+B,CACjC9e,QAAS,SAGd,ECfH,EA3BoBp4B,IAClB,IAAI,aACFk3C,EAAY,gBACZqkD,EAAe,KACf9hD,GACEz5C,EACJ,MAAO,CACL,CAAC,GAAGk3C,SAAqB,CACvB9R,UAAW,OAEb,CAAC,GAAG8R,iBAA6B,CAC/BskD,gBAAiB,UAGnB,CAAC,GAAGtkD,QAAmBA,oBACrBA,iBAA4BA,cAA0B,CACtD,CAAC,GAAGA,mBAA+B,CACjC,YAAa,CACXsiB,UAAW,8BAA6B,QAAK/f,EAAK8hD,GAAiB5hD,KAAK,GAAGxoB,aAE7E,WAAY,CACVqoC,UAAW,6BAA4B,QAAK+hC,SAInD,ECxBGE,EAAqB9qF,GAASnY,OAAOqZ,OAAO,CAAC,GAAG,QAAgBlB,IAoNtE,EAnNsB,CAACA,EAAO+qF,KAC5B,MAAM,aACJxkD,EAAY,UACZykD,EAAS,kBACTC,EAAiB,gBACjBC,EAAe,OACfC,EAAM,cACNC,EAAa,eACbC,EAAc,gBACdC,EAAe,eACfC,EAAc,qBACdC,EAAoB,mBACpB5jD,EAAkB,gBAClB8E,EAAe,cACf++C,EAAa,kBACbd,EAAiB,kBACjBl+C,EAAiB,eACjBi/C,EAAc,SACd/gD,EAAQ,WACR2B,EAAU,kBAEVq/C,EAAiB,gBAEjBC,EAAe,qBACfC,EAAoB,wBACpBC,EAAuB,mBACvBC,EAAkB,qBAClBC,EAAoB,QAEpBC,EAAO,YACPC,EAAW,aACXC,EAAY,cACZC,EAAa,4BAEbC,EAA2B,yBAC3BC,EAAwB,2BACxBC,EAA0B,sBAC1BC,GACExsF,EACJ,MAAO,CACL,CAAC,GAAGumC,KAAgBwkD,MAAgBxkD,KAAgBwkD,OAAiBxkD,KAAiB,CACpFJ,MAAO6kD,EACPngD,WAAYsgD,EACZ,CAAC,IAAI5kD,wBAAoC1+C,OAAOqZ,OAAO,CAAC,EAAG4pF,EAAmB9qF,IAE9E,CAAC,GAAGumC,sBAAkC,CACpCJ,MAAO+kD,GAET,CAAC,GAAG3kD,sBAAkC,CACpC,CAAC,KAAKA,mBAA+B,CACnCJ,MAAO8kD,IAGX,CAAC,GAAG1kD,WAAsBA,mBAA+B,CACvDJ,MAAO6kD,EACP,CAAC,SAASzkD,kCAA8C1+C,OAAOqZ,OAAO,CAAC,EAAG4pF,EAAmB9qF,KAG/F,CAAC,GAAGumC,oBAA+BA,sBAAkC,CACnEJ,MAAO,GAAGwlD,gBAGZ,CAAC,GAAGplD,cAAyBA,wBAAmCA,uBAAmC,CACjG,CAAC,cAAcA,yBAAqC,CAClDJ,MAAOulD,IAGX,CAAC,SAASnlD,iBAA6B,CACrC,CAAC,GAAGA,cAAyBA,oBAAgC,CAC3D,UAAW,CACTW,gBAAiBglD,GAEnB,WAAY,CACVhlD,gBAAiBilD,IAGrB,CAAC,GAAG5lD,mBAA+B,CACjC,UAAW,CACTW,gBAAiBglD,GAEnB,WAAY,CACVhlD,gBAAiBilD,KAKvB,CAAC,GAAG5lD,iBAA6B,CAC/BJ,MAAOylD,EACP,CAAC,IAAIrlD,gBAA4B,CAC/B,CAAC,SAASA,wBAAmCA,uBAAmC,CAC9EJ,MAAO0lD,IAGX,CAAC,IAAItlD,iBAA6B,CAChCsE,WAAYkhD,IAGhB,CAAC,GAAGxlD,YAAwB,CAC1B,aAAc,CACZJ,MAAO,YAGX,CAAC,GAAGI,mBAA+B,CACjCJ,MAAO8kD,EAEP,CAAC,IAAI1kD,iBAA6B,CAChCJ,MAAO2lD,GAET,aAAc,CACZ3lD,MAAO,YAGX,CAAC,KAAKI,mBAA+B,CACnCW,gBAAiBmkD,EAEjB,CAAC,IAAI9kD,iBAA6B,CAChCW,gBAAiB8kD,IAGrB,CAAC,IAAIzlD,eAA0BA,KAAiB,CAC9CW,gBAAiBklD,GAInB,CAAC,IAAI7lD,aAAwBA,KAAiB,CAC5CW,gBAAiB+kD,GAEnB,CAAC,IAAI1lD,qBAAgCA,KAAiB,CACpDW,gBAAiB+kD,GAInB,CAAC,IAAI1lD,gBAA4B1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAmB,SAAhB6pF,EAAyB,CACxFxiC,aAAc,GACZ,CAAC,GAAI,CACP,CAAC,KAAKhiB,aAAwBA,aAAyB,CACrDlD,IAAKmoD,EACLv+C,UAAWjtC,EAAM8oC,KAAK0iD,GAAsBxiD,KAAK,GAAGxoB,QACpDisE,aAAc,EACdrlD,aAAcmlD,EACd,WAAY,CACVnpD,SAAU,WACVspD,YAAa/B,EACb/gD,OAAQ,EACR2e,aAAc,IAAG,QAAK+iC,uBACtB3jD,WAAY,gBAAgBC,KAAsB8E,IAClDxC,QAAS,MAEX,4BAA6B,CAC3BW,WAAY2hD,EACZ,WAAY,CACVG,kBAAmBrB,EACnBsB,kBAAmBP,IAGvB,aAAc,CACZlmD,MAAOkmD,EACPnlD,gBAAiBolD,EACjB,UAAW,CACTplD,gBAAiBolD,GAEnB,WAAY,CACVK,kBAAmBrB,EACnBsB,kBAAmBP,OAO3B,CAAC,IAAI9lD,UAAsB,CACzB,CAAC,IAAIA,cAAyBA,cAA0B,CACtDsmD,gBAAiB,IAAG,QAAKrB,MAAyB7gD,KAAY2B,MAIlE,CAAC,IAAI/F,YAAwB,CAE3B,CAAC,GAAGA,QAAmBA,YAAwB,CAC7CsE,WAAYugD,GAEd,CAAC,GAAG7kD,UAAsB,CACxBnD,SAAU,WACV,WAAY,CACVA,SAAU,WACV0pD,WAAY,EACZnjD,eAAgB,EAChBkjD,gBAAiB,IAAG,QAAKtB,YAAyBN,IAClDpiC,UAAW,iBACXpb,QAAS,EACT9F,WAAY,CAAC,aAAa8E,KAAqBg/C,IAAiB,WAAWh/C,KAAqBg/C,KAAiBliG,KAAK,KACtH2gD,QAAS,MAGX,CAAC,IAAI3D,iBAA6B,CAChC,WAAY,CACVwmD,qBAAsBjB,KAI5B,CAAC,GAAGvlD,eAA0BA,mBAA+B,CAC3D,WAAY,CACVsiB,UAAW,YACXpb,QAAS,EACT9F,WAAY,CAAC,aAAa8E,KAAqBC,IAAmB,WAAWD,KAAqBC,KAAmBnjD,KAAK,SAKnI,EClNGyjG,EAAyBhtF,IAC7B,MAAM,aACJumC,EAAY,WACZ0mD,EAAU,iBACVC,EAAgB,QAChBhnD,EAAO,cACPinD,EAAa,SACbC,EAAQ,gBACRC,EAAe,UACfC,EAAS,kBACT3C,GACE3qF,EACEutF,EAAmBvtF,EAAM8oC,KAAKqkD,GAAehsF,IAAI+kC,GAAS/kC,IAAIisF,GAAU5sE,QAC9E,MAAO,CACL,CAAC,GAAG+lB,UAAsB,CACxBnD,SAAU,WACV4D,SAAU,UAEZ,CAAC,GAAGT,WAAsBA,mBAA+B,CACvDkD,OAAQwjD,EACR7mD,YAAY,QAAK6mD,GACjB58E,cAAes6E,EACf3jD,SAAU,SACVoO,aAAc,WACdo4C,aAAcN,EACdO,YAAaJ,EACbxjD,MAAOyjD,GAET,CAAC,KAAK/mD,0BACMA,eAA0BA,mBAA+B,CACnEkD,OAAQwjD,EACR7mD,YAAY,QAAK6mD,IAEnB,CAAC,GAAG1mD,qBAAgCA,iCAC1BA,mBAA+B,CACvC4D,iBAAkBojD,GAErB,EAkJH,EAhJyBvtF,IACvB,MAAM,aACJumC,EAAY,QACZyG,EAAO,WACPigD,EAAU,oBACV76E,EAAmB,cACnBs7E,EAAa,gBACb/4E,EAAe,cACf82E,EAAa,UACbkC,EAAS,iBACTT,EAAgB,WAChB57E,EAAU,mBACVs8E,EAAkB,mBAClBhmD,EAAkB,UAClBiG,EAAS,mBACTrG,EAAkB,eAClBqmD,EAAc,kBACdC,GACE9tF,EACE+tF,EAAkB,CACtBtkD,OAAQwjD,EACR7mD,YAAY,QAAK6mD,GACjBe,kBAAmB,SACnBC,cAAe,QAEjB,MAAO,CAAC,CACN,CAAC1nD,GAAe,CACd,uBAAwB1+C,OAAOqZ,OAAO,CACpC,CAAC,IAAIqlC,UAAsB,CACzBgB,UAAW,SAEZylD,EAAuBhtF,KAE5B,CAAC,GAAGumC,mBAA+B,CACjC,CAAC,GAAGA,cAA0B1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG8rF,EAAuBhtF,IAAS,CAC5FunC,UAAWC,MAKjB,CACE,CAAC,GAAGjB,mBAA8BA,aAAwBA,SAAqB,CAC7E2nD,SAAUR,EACVS,UAAW,iBAAgB,QAAKnuF,EAAM8oC,KAAKn0B,GAAiBq0B,IAAI,KAAKxoB,YACrE0lB,QAAS,IACTc,SAAU,SACV6lD,gBAAiB,EAGjB,4BAA6B,CAC3BuB,UAAW,SACXC,UAAW,UAKjB,CACE,CAAC,GAAG9nD,YAAwB,CAC1BsD,MAAO,OAEP,CAAC,IAAItD,UAAsB,CACzB,CAAC,GAAGA,WAAsBA,mBAA+B,CACvD9e,QAAS,OACTwgB,WAAY,SACZN,WAAY,CAAC,gBAAgBC,IAAsB,cAAcA,IAAsB,WAAWgmD,KAAsBnC,KAAiBliG,KAAK,KAC9I,CAAC,KAAKg9C,mBAA+B,CACnCyB,KAAM,OACNkmD,SAAU,EACVlnD,SAAU,SACVoO,aAAc,YAEhB,MAAO,CACLpN,KAAM,UAKZ,CAAC,GAAGzB,QAAmBA,YAAwB,CAC7CL,QAAS,EACTwE,OAAQ,EACRtD,aAAc,EACdG,UAAW,OACX,CAAC,OAAOhB,eAA0BA,mBAA+BwnD,EACjE,CAAC,KAAKxnD,sBAAkC,CACtCsC,mBAAoB8kD,IAIxB,CAAC,GAAGpnD,UAAsBwnD,IAI9B,CACE,CAAC,GAAGxnD,sBAAkC,CACpCsD,MAAOgkD,EACP,CAAC,IAAItnD,UAAsB,CACzB,CAAC,GAAGA,WAAsBA,aAAwBA,mBAA+B,CAC/E,CAAC,KAAKA,6BAAyC,CAC7Cp1B,SAAUG,EACV87B,UAAW,YAIjB,CAAC,KAAK7G,wBACEA,kBAA6BA,uBAAkCA,wBAC/DA,kBAA6BA,uBAAkCA,eAA0BA,iCACzFA,eAA0BA,mBAA+B,CAC/DmD,iBAAkB,EAClBr5B,cAAe,eAAc,QAAKrQ,EAAM8oC,KAAKx3B,GAAY47B,IAAI,GAAG1sB,eAAc,QAAK0sE,MACnF93C,aAAc,OACd,CAAC,iBACK7O,iCACAA,qCACA,CACJkH,QAAS,GAEX,CAAC,GAAGlH,gBAA2ByG,KAAY,CACzCJ,OAAQ,EACRz7B,SAAU28E,EACV1nD,YAAY,QAAK6mD,GACjB,SAAU,CACRxlE,QAAS,eACTgmB,QAAS,KAIf,CAAC,GAAGlH,gBAA2ByG,KAAY,CACzCvlB,QAAS,gBAEX,YAAa,CACXuiB,cAAe,OACf,CAAC,GAAGzD,gBAA2ByG,KAAY,CACzCvlB,QAAS,QAEX,aAAc,CACZ0e,MAAO/zB,IAGX,CAAC,GAAGm0B,sBAAkC1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG,MAAe,CACnFmP,cAAew9B,MAGnB,EC9KEygD,EAAmBtuF,IACvB,MAAM,aACJumC,EAAY,mBACZqB,EAAkB,kBAClB6E,EAAiB,gBACjBC,EAAe,cACf++C,EAAa,QACbz+C,EAAO,SACPuhD,EAAQ,oBACRC,GACExuF,EACJ,MAAO,CAEL,CAAC,GAAGumC,WAAsBA,mBAA+B,CACvDnD,SAAU,WACV3b,QAAS,QACTmlB,OAAQ,EACRrJ,WAAY,SACZmE,OAAQ,UACRC,WAAY,CAAC,gBAAgBC,IAAsB,cAAcA,IAAsB,gBAAgBA,aAA8B8E,KAAmBnjD,KAAK,KAC7J,CAAC,GAAGg9C,gBAA2ByG,KAAY,CACzCkhD,SAAUK,EACVp9E,SAAUo9E,EACV5mD,WAAY,CAAC,aAAa8E,KAAqBg/C,IAAiB,UAAU7jD,KAAsB8E,IAAmB,SAAS9E,KAAsBr+C,KAAK,KACvJ,SAAU,CACRm/D,kBAAmB8lC,EACnB/gD,QAAS,EACT9F,WAAY,CAAC,WAAWC,KAAsB8E,IAAmB,UAAU9E,IAAsB,SAASA,KAAsBr+C,KAAK,OAGzI,CAAC,GAAGg9C,eAA2B1+C,OAAOqZ,OAAO,CAAC,GAAG,WACjD,CAAC,IAAIqlC,qBAAiC,CACpC,CAAC,KAAKyG,QAAczG,eAA2B,CAC7C+G,gBAAiB,KAKvB,CAAC,GAAG/G,oBAA+BA,sBAAkC,CACnEsE,WAAY,kBACZnD,OAAQ,cACR,WAAY,CACVkD,YAAa,0BAEfp+C,EAAG,CACD25C,MAAO,sBAET,CAAC,KAAKI,mBAA+B,CACnCJ,MAAO,qBACPuB,OAAQ,gBAGb,EAEG+mD,EAAuBzuF,IAC3B,MAAM,aACJumC,EAAY,mBACZqB,EAAkB,gBAClB8E,EAAe,aACftF,EAAY,cACZ+lD,EAAa,gBACbvC,GACE5qF,EACJ,MAAO,CACL,CAAC,GAAGumC,aAAyB,CAC3B,yBAA0B,CACxBnD,SAAU,WACVC,IAAK,MACLsG,eAAgB3pC,EAAM4sC,OACtB/C,MAAOsjD,EACPhnD,MAAO,eACP0iB,UAAW,mBACXlhB,WAAY,aAAaC,KAAsB8E,cAA4B9E,KAE7E,UAAW,CAET,sBAAuB,CACrBxE,SAAU,WACVyG,MAAO7pC,EAAM8oC,KAAKqkD,GAAenkD,IAAI,IAAKxoB,QAC1CipB,OAAQzpC,EAAM8oC,KAAKqkD,GAAenkD,IAAI,KAAMxoB,QAC5C0mB,gBAAiB,eACjBE,eACAO,WAAY,CAAC,cAAcC,KAAsB8E,IAAmB,aAAa9E,KAAsB8E,IAAmB,OAAO9E,KAAsB8E,IAAmB,SAAS9E,KAAsB8E,KAAmBnjD,KAAK,KACjO2gD,QAAS,MAEX,YAAa,CACX2e,UAAW,6BAA4B,QAAK7oD,EAAM8oC,KAAK8hD,GAAiB5hD,KAAK,GAAGxoB,aAElF,WAAY,CACVqoC,UAAW,8BAA6B,QAAK+hC,SAIpD,EAGG8D,EAAe1uF,IACnB,MAAM,OACJsmC,EAAM,aACNC,EAAY,SACZp1B,EAAQ,mBACRy2B,EAAkB,kBAClB6E,EAAiB,gBACjBC,EAAe,UACfmB,EAAS,QACT3H,EAAO,WACPoG,EAAU,UACVz5B,EAAS,YACTi0B,EAAW,eACXO,EAAc,wBACdsnD,EAAuB,cACvBxB,EAAa,gBACbvC,EAAe,SACfjgD,EAAQ,qBACRikD,EAAoB,mBACpBC,GACE7uF,EACJ,MAAO,CAEP,CACE,GAAI,CACF,CAACumC,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,WAAa,CAE3D,WAAY,CACVumB,QAAS,WAIf,CAAC,GAAG8e,oBAAgC,CAClC9e,QAAS,SAEV,CACD,CAAC8e,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,KAAS,WAAa,CACzJysF,aAAc,EACd5jD,mBAAoB,EAEpB13B,WACAi1B,WAAY,EACZmP,UAAW,OACXjO,QAAS,OAETK,WAAY,SAASC,kCACrB,SAAU,CACRgF,OAAQ,EACR1G,QAAS,EACTqP,UAAW,QAGb,aAAc,CACZ9tB,QAAS,OACT,CAAC,GAAG8e,UAAsB,CACxByB,KAAM,SAGV,CAAC,GAAGzB,WAAsBA,cAAyBA,mBAA+B,CAChFa,aAAcpnC,EAAM8uF,kBAEtB,CAAC,GAAGvoD,sBAAkC,CACpCL,QAAS,IAAG,QAAK2H,OAAc,QAAK3H,KACpC/0B,SAAU09E,EACVzoD,WAAYwoD,EACZjnD,WAAY,OAAOC,KAErB,CAAC,gBAAgBrB,aAAyB,CACxCoB,WAAY,CAAC,gBAAgBC,KAAsB8E,IAAmB,cAAc9E,KAAsB8E,KAAmBnjD,KAAK,MAEpI,CAAC,GAAGg9C,cAAyBA,oBAAgC,CAC3DoB,WAAY,CAAC,gBAAgBC,KAAsB8E,IAAmB,cAAc9E,KAAsB8E,IAAmB,WAAWD,KAAqBC,KAAmBnjD,KAAK,MAEvL,CAAC,GAAGg9C,aAAwBA,SAAqB,CAC/CmB,OAAQ,UACRC,WAAY,CAAC,cAAcC,KAAsB8E,IAAmB,WAAW9E,KAAsB8E,KAAmBnjD,KAAK,MAE/H,CAAC,GAAGg9C,mBAA+B,CACjC9e,QAAS,cACTwgB,WAAY,SACZN,WAAY,SAASC,IACrB,kBAAmB,CACjBmnD,SAAU,GAGZ,CAAC,KAAKzoD,qCAA2C,CAC/C7e,QAAS,SACT4lB,cAAe,SAEjB,CAAC,GAAG9G,gBAA4B,CAC9BmiB,kBAAmB,OACnB7f,mBAAoB7oC,EAAMkmC,QAC1B/0B,SAAUnR,EAAM+nC,WAChB5B,MAAOnmC,EAAM8nC,uBAGjB,CAAC,GAAGvB,YAAwB,CAC1B,YAAa,CACXnD,SAAU,WACV4rD,MAAO,EACP9nD,gBAAiB,cACjBgD,QAAS,OAMb,CAAC,GAAG3D,kBAA8B,CAChCS,SAAU,SACVZ,WAAY,EACZwE,YAAa0B,EACb2iD,YAAatkD,EACbukD,YAAa,EACbC,eAAgBt8E,EAChB46E,YAAa56E,EACbqzB,QAAS,EACT,WAAY,CACV+oD,YAAa,aAGfX,EAAiBtuF,IAAS,CAC5B,CAAC,GAAGumC,gBAA4B,CAC9B,CAAC,GAAGA,qBAAiC,CACnCqG,OAAQ,EACR1G,QAAS,EACT,CAAC,GAAGK,WAAsBA,mBAA+B,CACvDl2B,cAAe,IAAG,QAAKrQ,EAAM8oC,KAAK33B,GAAU63B,IAAI,GAAGxoB,aAAY,QAAK0lB,QAK1E,YAAa,CACX,UAAW,CACT9C,SAAU,WACVyD,OAAQC,EACRM,aAAcC,EACdE,UAAW,OACXsjD,gBAAiB,MACjB,CAAC,IAAItkD,aAAyB,CAC5BsE,WAAY,eAGd,YAAa,CACXzH,SAAU,WACV4rD,MAAO,EACPnoD,QAAS,EACTgD,MAAO,OACPJ,OAAQ,OACRgE,QAAS,EACTvD,QAAS,MAEX,CAAC,KAAK3D,KAAiB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC/DkmC,aAAcC,GACbinD,EAAiBtuF,IAASyuF,EAAqBzuF,IAAS,CACzD,CAAC,GAAGumC,WAAsBA,eAA0BA,mBAA+B,CACjFa,aAAcunD,GAEhB,CAAC,GAAGpoD,0BAAsC,CACxCoB,WAAY,aAAaC,KAAsB8E,QAIrD,mFAGM,CACJm+C,gBAAiB,UAEnB,mFAGM,CACJA,gBAAiB,aAEnB,mFAGM,CACJA,gBAAiB,UAEnB,mFAGM,CACJA,gBAAiB,OAEnB,iFAGM,CACJ1gD,iBAAkBnqC,EAAM6tC,WAE1B,mFAGM,CACJhF,mBAAoB7oC,EAAM6tC,WAE5B,+EAGM,CACJuhD,cAAepvF,EAAM6tC,WAEvB,qFAGM,CACJib,WAAY9oD,EAAM6tC,cAGpB4gD,EAAqBzuF,IAAS,CAChC,CAAC,sBAAsBumC,sCACVA,mBAA+B,CAE1C,YAAa,CACXsiB,UAAW,8BAA6B,QAAK+hC,OAE/C,WAAY,CACV/hC,UAAW,6BAA4B,QAAK7oD,EAAM8oC,KAAK8hD,GAAiB5hD,KAAK,GAAGxoB,cAGpF,CAAC,GAAG+lB,iBAA4BA,sBAAiCA,qBAAgCA,mBAA+B,CAE9HsiB,UAAW,eAAc,QAAK7oD,EAAM8oC,KAAKqkD,GAAenkD,IAAI,IAAKA,KAAK,GAAGxoB,YACzE,WAAY,CACVqoC,UAAW,8BAA6B,QAAK7oD,EAAM8oC,KAAK8hD,GAAiB5hD,KAAK,GAAGxoB,aAEnF,YAAa,CACXqoC,UAAW,6BAA4B,QAAK+hC,WAMpD,CACE,CAAC,GAAGtkD,mBAAyB,CAC3B,CAACC,GAAe,CACdH,WAAY,aAGhB,EAESz1B,EAAwB3Q,IACnC,IAAI4Q,EAAIC,EAAIC,EACZ,MAAM,aACJw3B,EAAY,WACZ+C,EAAU,kBACVzC,EAAiB,aACjBsD,EAAY,UACZ54B,EAAS,qBACTw0B,EAAoB,iBACpBr1B,EAAgB,eAChBw2C,EAAc,iBACdomC,EAAgB,UAChBx8E,EAAS,cACTy8E,EAAa,oBACb7gD,EAAmB,iBACnB8gD,EAAgB,gBAChB56E,EAAe,WACfyxB,EAAU,gBACVe,EAAe,UACfqoD,EAAS,QACTtpD,EAAO,SACP/0B,EAAQ,gBACRsD,EAAe,WACfnD,EAAU,oBACVc,EAAmB,gBACnBk5B,GACEtrC,EACEurF,EAAiD,QAA/B36E,EAAK5Q,EAAMurF,sBAAmC,IAAP36E,EAAgBA,EAAK,EAC9E46E,EAA6D,QAArC36E,EAAK7Q,EAAMwrF,4BAAyC,IAAP36E,EAAgBA,EAAKgC,EAC1Fq6E,EAAqD,QAAjCp8E,EAAK9Q,EAAMktF,wBAAqC,IAAPp8E,EAAgBA,EAAK9Q,EAAMwvF,UACxFC,EAAgB,IAAI,KAAUr9E,GAAqBs9E,SAAS,KAAMnwC,cACxE,MAAO,CACLmuC,cAAe,IACf5mD,YAAa9mC,EAAMuuC,gBAAkB,GACrCohD,WAAY3vF,EAAMqnC,eAClBynD,iBAAkB9uF,EAAMqnC,eACxBuoD,kBAAmB5vF,EAAM6nC,eACzB8mD,wBAAyB3uF,EAAM6nC,eAC/BgoD,cAAev8E,EACf03E,UAAW13E,EACXw8E,mBAAoBx8E,EACpBo4E,eAAgBp4E,EAChBy8E,6BAA8BznD,EAC9B0nD,yBAA0B1nD,EAC1B2nD,gBAAiBnoD,EACjBojD,gBAAiBpjD,EACjBooD,sBAAuB5nD,EACvB2iD,kBAAmB3iD,EACnB6nD,gCAAiC7nD,EACjC+jD,4BAA6B/jD,EAC7B8nD,YAAa39E,EACb04E,OAAQ14E,EACR49E,iBAAkBd,EAClBrD,YAAaqD,EACbe,kBAAmBjB,EACnBlD,aAAc19C,EACd8hD,eAAgBtnC,EAChBmiC,cAAeniC,EACfunC,oBAAqB/hD,EACrB48C,eAAgB58C,EAChBgiD,8BAA+B,cAC/BnE,yBAA0B,cAC1BoE,oBAAqB,EACrBnF,iBACAoF,qBAAsBrB,EACtBhE,gBAAiBgE,EACjBsB,yBAA0B/9E,EAC1B24E,uBAEAqF,sBAAuBjoD,EACvB+iD,kBAAmB/iD,EAEnBkoD,oBAAqBzlD,EACrBugD,gBAAiBvgD,EACjB0lD,yBAA0B1lD,EAC1BwgD,qBAAsBxgD,EACtB2lD,4BAA6B3lD,EAC7BygD,wBAAyBzgD,EACzB4lD,wBAAyB/kD,EACzB6/C,mBAAoB7/C,EACpBglD,0BAA2BhlD,EAC3B8/C,qBAAsB9/C,EACtBghD,mBACAX,2BAA4B,EAC5BC,sBAAuB,cACvBS,WAAYt4E,EACZi6E,qBAAsBxoD,EACtBynD,eAAkC,EAAlBl5E,EAChBs3E,QAAS9kD,EACTkmD,gBAAiBmC,EACjB7E,kBAAmBzkD,EACnBwkD,qBAA2C,KAAlB/1E,EAAH,KACtB45E,SAAUp9E,EACVq9E,oBAAqB/5E,EAAkBtD,EACvC28E,kBAAmBx8E,EACnBu9E,mBAAoB19E,EAEpBggF,sBAAuB,IAAI,KAAU/+E,GAAqBs9E,SAAS,KAAMnwC,cAEzE6xC,cAAe3B,EACf4B,oBAAqBhmD,EACrBimD,WAAY,UACZC,YAAa,UACbC,kBAAmB,UACnBC,sBAAuBr/E,EACvBs/E,mBAAoBppD,EACpBqpD,yBAA0BtmD,EAC1BumD,gBAAiB,cACjBC,oBAAqBpC,EACrBqC,mBAAoB1/E,EACpB2/E,yBAA0BzmD,EAC1B0mD,4BAA6B5/E,EAC7B6/E,uBAAwB5mD,EAExBiiD,UAAW/B,EAAiB,eAAeC,OAA4B,eAAkC,EAAnB0B,OACvF,EAGH,WAA0B3uC,GACxB,IAAIlI,EAAUpsD,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAKs0D,EAC9E2zC,IAAcjoG,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,KAAmBA,UAAU,GAkFjF,OAjFiB,QAAc,QAAQ+V,IACrC,MAAM,gBACJmnC,EAAe,gBACfxyB,EAAe,SACfxD,EAAQ,cACRigF,EAAa,oBACbC,EAAmB,WACnBC,EAAU,kBACVE,EAAiB,sBACjBC,EAAqB,mBACrBC,EAAkB,yBAClBC,EAAwB,gBACxBC,EAAe,oBACfC,EAAmB,mBACnBC,EAAkB,sBAClBX,EAAqB,yBACrBY,EAAwB,4BACxBC,EAA2B,uBAC3BC,EAAsB,QACtBhG,EAAO,YACPsF,GACEvxF,EACEmtF,EAAgBntF,EAAM8oC,KAAK33B,GAAU+7B,IAAI,GAAGlE,IAAI,GAAGxoB,QAEnD2xE,GAAY,QAAWnyF,EAAO,CAClCmtF,gBACAiF,qBAAsBpyF,EAAM8oC,KAAKn0B,GAAiBq0B,IAAI,MAAMxoB,QAC5DoqE,gBAAiB5qF,EAAM8oC,KAAKqkD,GAAenkD,IAAI,KAAMxoB,QACrD4rE,cAAejlD,EACf2B,KAAM9oC,EAAM8oC,KACZmjD,YAEIoG,GAAgB,QAAWF,EAAW,CAC1CnH,UAAWoG,EACX1F,eAAgBoG,EAChB5G,gBAAiB2G,EACjB5G,kBAAmBwG,EACnBtG,OAAQmG,EACRrF,QAASsF,EACTnG,cAAeoG,EACfrF,aAAc,cACdd,eAAgBqG,EAChBpG,gBAAiB,EACjBE,qBAAsB,EACtBU,YAAa0F,EAEbjG,kBAAmBwF,EAEnBvF,gBAAiByF,EACjBxF,qBAAsBkG,EACtBjG,wBAAyBkG,EACzBjG,mBAAoBkG,EACpBjG,qBAAsB2F,EACtBvF,cAAeoF,EAEfnF,4BAA6BoF,EAC7BnF,yBAA0BoF,IAE5B,MAAO,CAEPhD,EAAayD,GAEb,EAAmBA,GAGnB,EAAiBA,GAGjB,EAAcA,EAAW,SAAU,EAAcE,EAAe,QAEhE,EAAYF,IAEZ,QAAkBA,IAAY,QAAgBA,EAAW,aAAa,QAAgBA,EAAW,eAAe,QAAeA,EAAW,YAAY,GACrJxhF,EAAuB,CACxB2hF,iBAAkB,CAAC,CAAC,kBAAmB,mBAAoB,CAAC,aAAc,oBAAqB,CAAC,oBAAqB,2BAA4B,CAAC,gBAAiB,aAAc,CAAC,qBAAsB,kBAAmB,CAAC,+BAAgC,4BAA6B,CAAC,wBAAyB,qBAAsB,CAAC,kCAAmC,+BAAgC,CAAC,wBAAyB,qBAAsB,CAAC,sBAAuB,mBAAoB,CAAC,2BAA4B,wBAAyB,CAAC,8BAA+B,2BAA4B,CAAC,0BAA2B,sBAAuB,CAAC,4BAA6B,wBAAyB,CAAC,cAAe,UAAW,CAAC,mBAAoB,eAAgB,CAAC,iBAAkB,iBAAkB,CAAC,oBAAqB,gBAAiB,CAAC,gCAAiC,4BAA6B,CAAC,sBAAuB,kBAAmB,CAAC,uBAAwB,mBAAoB,CAAC,2BAA4B,wBAAyB,CAAC,sBAAuB,mBAEtjCJ,cACA5iD,SAAU,CACRs/C,sBAAsB,IAGnB2D,CAASh0C,EAAWlI,EAC5B,kBC9hBD,MA+CA,EA/CgBjgD,IACd,IAAIwa,EACJ,MAAM,eACJmrD,EAAc,KACdpsD,EAAI,MACJ6nD,EACA7Z,MAAO60C,GACLp8F,EACEjD,EAAU,aAAiB,IAC3B,UACJorD,EAAS,gBACTwjB,EACApkB,MAAO80C,GACLt/F,EACEu/F,GAAa,UACnB,IAAIvyB,EACJ,GAAKxwD,EAME,CAGL,MAAMgjF,EAA2B,iBAAqBn7B,IAAyB,SAAfA,EAAM/rE,KACtE00E,EAAyB,gBAAoB,WAAgB,MAAM,QAAaxwD,EAAM,CACpF9L,UAAW,IAAwB,iBAAqB8L,GAA8B,QAArBiB,EAAKjB,EAAKvZ,aAA0B,IAAPwa,OAAgB,EAASA,EAAG/M,UAAY,GAAI,GAAG06C,iBAC3Io0C,EAAcn7B,EAAqB,gBAAoB,OAAQ,CACjE3zD,UAAW,GAAG06C,mBACbiZ,GACL,MAdE2I,EAAY4B,IAAoB2wB,EAAWrmG,QAAUmrE,GAA0B,iBAAVA,EAAmC,gBAAoB,MAAO,CACjI3zD,UAAW,GAAG06C,6BACbiZ,EAAMliC,OAAO,IAAqB,gBAAoB,OAAQ,CAC/DzxB,UAAW,GAAG06C,mBACbiZ,GAWL,MAAMo7B,EAAe,WAAc,IAAM/qG,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG/N,GAAU,CACjFu2F,YAAY,KACV,CAACv2F,KAEE0zC,IAAU,EAAAgsD,EAAA,IAAU,QAC3B,OAAoB,gBAAoB,EAAY59E,SAAU,CAC5D1sB,MAAOqqG,GACO,gBAAoB,KAAW/qG,OAAOqZ,OAAO,CAAC,GAAG,EAAA02D,EAAA,GAAKxhE,EAAO,CAAC,SAAU,CACtFohE,MAAO2I,EACPpE,eAAgB,IAAWxd,EAAWwd,EAAgB,GAAGxd,KAAai0C,GAAeC,KACrF32B,WAAYj0E,OAAOqZ,OAAO,CACxB2lC,UACCzwC,EAAM0lE,eACP,EC1BN,SAASg3B,EAAYnjF,GACnB,OAAgB,OAATA,IAA0B,IAATA,CAC1B,CACA,MAAMojF,EAAkB,CACtBvxC,KAAM,EACNyf,QAAS,EACTE,QAAS,GAEL6xB,GAA4B,IAAA/iF,aAAW,CAAC7Z,EAAO8V,KACnD,IAAI0E,EACJ,MAAMwI,EAAW,aAAiB65E,EAAA,GAC5BC,EAAc95E,GAAY,CAAC,GAC3B,aACJmkC,EAAY,kBACZ2e,EAAiB,UACjBznC,EAAS,KACT0+D,GACE,aAAiB,MACfllD,EAAgBsP,KAElBgB,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,MACTq/B,EAAK,MACLya,EAAQ,QAAO,WACfkhB,EAAU,qCACVu0B,EAAoC,gBACpCrxB,EAAe,eACfkoB,EAAc,cACdztB,EAAa,KACb9F,EAAI,WACJ4L,EAAU,QACVjZ,EAAO,kCACP0Z,GACE3sE,EACJkzD,EA5DgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAqDgB,CAAOiB,EAAO,CAAC,YAAa,YAAa,QAAS,QAAS,aAAc,uCAAwC,kBAAmB,iBAAkB,gBAAiB,OAAQ,aAAc,UAAW,sCAChNuhE,GAAc,EAAAC,EAAA,GAAKtO,EAAW,CAAC,mBAQJ,QAAhC14C,EAAKsiF,EAAYG,iBAA8B,IAAPziF,GAAyBA,EAAGnoB,KAAKyqG,EAAa,CACrFx8B,SAIF,MAAM2B,GAAc,EAAAi7B,EAAA,IAAS,WAC3B,IAAI1iF,EACJy4C,SAAkDA,EAAQh2D,WAAM,EAAQpJ,WACzC,QAA9B2mB,EAAKsiF,EAAY7pC,eAA4B,IAAPz4C,GAAyBA,EAAGnoB,KAAKyqG,EAC1E,IAEMruB,EAAaquB,EAAYx8B,MAAQA,EAEjC68B,EAAmBjxB,QAA+CA,EAAa4wB,EAAY5wB,WAG3FwC,EAAwB,WAAc,SACnB18E,IAAnB6hG,EACKA,EAEFloB,GACN,CAACA,EAAiBkoB,IACf1uB,EAAiB,CACrBE,WAAY,CACVjpB,WAAY,GAAGvE,cAEjBo7B,QAAQ,OAAmBp7B,GAC3BujB,MAAO,CACLhf,WAAY,GAAGvE,eAGbsQ,EAAYhB,EAAa,OAAQw6B,GAAsBmb,EAAY30C,WACnElI,GAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,EAAYn6B,EAAQo6B,GAAa,EAAS15B,EAAWlI,GAAUj9B,GAChEq6E,EAAgB,IAAW,GAAGl1C,KAAaZ,IAASw1C,aAAmC,EAASA,EAAKtvF,UAAWA,GAEhH47D,EAAmB,WAAc,KACrC,IAAI7uD,EAAIC,EACR,GAA0B,mBAAfguD,GAA6Bi0B,EAAYj0B,GAClD,OAAOA,GAAc,KAEvB,GAAsC,mBAA3Bq0B,EAAYr0B,YAA6Bi0B,EAAYI,EAAYr0B,YAC1E,OAAOq0B,EAAYr0B,YAAc,KAEnC,GAA6E,mBAAjEs0B,aAAmC,EAASA,EAAKt0B,aAA8Bi0B,EAAYK,aAAmC,EAASA,EAAKt0B,YACtJ,OAAQs0B,aAAmC,EAASA,EAAKt0B,aAAe,KAE1E,MAAM60B,EAAqK,QAAvJ9iF,EAAKiuD,QAA+CA,EAAaq0B,aAAiD,EAASA,EAAYr0B,kBAA+B,IAAPjuD,EAAgBA,EAAKuiF,aAAmC,EAASA,EAAKt0B,WACzP,OAAO,QAAa60B,EAAY,CAC9B7vF,UAAW,IAAW,GAAG06C,wBAA8C,iBAAqBm1C,GAA0C,QAA3B7iF,EAAK6iF,EAAWt9F,aAA0B,IAAPya,OAAgB,EAASA,EAAGhN,eAAYzb,IACtL,GACD,CAACy2E,EAAYq0B,aAAiD,EAASA,EAAYr0B,WAAYs0B,aAAmC,EAASA,EAAKt0B,WAAYtgB,IAEzJq0C,EAAe,WAAc,KAAM,CACvCr0C,YACAwjB,gBAAiB+C,IAAyB,EAC1CrwC,YACAi1D,YAAY,EACZ/rC,QACA+Y,KAAMmO,EACNklB,4BAA6BqJ,KAC3B,CAAC70C,EAAWumB,EAAuBrwC,EAAW2+D,EAAsCz1C,IAExF,OAAOq6B,EAAwB,gBAAoBib,EAAA,EAAgBh+E,SAAU,CAC3E1sB,MAAO,MACO,gBAAoB,EAAY0sB,SAAU,CACxD1sB,MAAOqqG,GACO,gBAAoB,KAAQ/qG,OAAOqZ,OAAO,CACxDg7D,kBAAmBA,EACnB4G,oBAAkC,gBAAoB6wB,EAAA,EAAkB,MACxE5wB,kCAAmC,IAAWxkB,EAAW,GAAGA,KAAaZ,IAASolB,GAClFrM,KAAMmO,EACNvC,WAAYixB,EACZlqC,QAASgP,GACRV,EAAa,CACdoK,gBAAiB+C,EACjB5hC,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGiyF,aAAmC,EAASA,EAAKjwD,OAAQA,GAChGr/B,UAAW4vF,EACXl1C,UAAWA,EACX9pB,UAAWA,EACX8mC,eAAgBA,EAChBsD,WAAYY,EACZvzD,IAAKA,EACLswD,cAAe,IAAWA,EAAe3e,EAAQq1C,EAAY12B,cAAeyb,EAAW5hC,GACvF6sB,oBAAqB6vB,OACjB,IAER,ICpJMa,GAAoB,IAAA3jF,aAAW,CAAC7Z,EAAO8V,KAC3C,MAAM2nF,GAAU,IAAA/pC,QAAO,MACjB32D,EAAU,aAAiB+2F,EAAA,GAQjC,OAPA,IAAAhjB,qBAAoBh7D,GAAK,KAAM,CAC7BinF,KAAMU,EAAQ7iG,QACdivC,MAAOjlC,IACL,IAAI4V,EACuB,QAA1BA,EAAKijF,EAAQ7iG,eAA4B,IAAP4f,GAAyBA,EAAGqvB,MAAMjlC,EAAQ,MAG7D,gBAAoB,EAAcnT,OAAOqZ,OAAO,CAClEgL,IAAK2nF,GACJz9F,EAAOjD,GAAS,IAErBygG,EAAK/7B,KAAO,EACZ+7B,EAAKzoB,QAAU,EACfyoB,EAAKlzB,QAAU,EACfkzB,EAAKxoB,UAAY,KAIjB,4GCxBI0oB,EAAsB,SAA6B19F,EAAO8V,GAC5D,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiBmkF,gQCZ5C,MAAMC,EAAgB/zF,IACpB,MAAM,aACJumC,EAAY,QACZytD,EAAO,kBACPvnD,EAAiB,mBACjB7E,EAAkB,OAClBtB,EAAM,cACN2tD,EAAa,aACbC,EAAY,UACZC,EAAS,aACTC,EAAY,iBACZC,EAAgB,kBAChBC,EAAiB,aACjBltD,EAAY,aACZmtD,EAAY,kBACZC,EAAiB,eACjBC,EAAc,OACdC,GACE10F,EACJ,MAAO,CACL,CAACumC,GAAe,CACdnD,SAAU,WAEV8qD,SAAU,EACVrjD,WAAYmpD,EACZrsD,WAAY,OAAO8E,mBACnB,gBAAiB,CACf2iD,cAAe6E,GAEjB,UAAW,CACTxmE,MAAO,GAET,CAAC,GAAG8Y,cAA0B,CAC5BkD,OAAQ,OAIRwD,WAAY,GACZ6b,WAAY,GACZ,CAAC,GAAGxiB,SAAcA,2BAAiC,CACjDuD,MAAO,SAGX,CAAC,GAAGtD,aAAyB,CAC3BnD,SAAU,QACVwG,OAAQ,EACR/C,OAAQ,EACR4C,OAAQwqD,EACR9tD,MAAO+tD,EACP9tD,YAAY,QAAK6tD,GACjB7mD,UAAW,SACXvC,WAAYspD,EACZzsD,OAAQ,UACRC,WAAY,OAAO8E,KAErB,eAAgB,CACd,MAAO,CACLzF,SAAU,UAEZ,YAAa,CACX5D,SAAU,WACVC,IAAK+wD,EACLzqD,eAAgB3pC,EAAM8oC,KAAKurD,GAAkBrrD,KAAK,GAAGxoB,QACrDqmB,OAAQ,EACRgD,MAAOwqD,EACP5qD,OAAQ6qD,EACRnuD,MAAO+tD,EACP/iF,SAAUnR,EAAM20F,WAChBltE,QAAS,OACTwgB,WAAY,SACZ2sD,eAAgB,SAChB/pD,WAAYmpD,EACZvrD,uBAAwB,EACxBC,qBAAsBtB,EACtBoB,mBAAoBpB,EACpBmB,qBAAsB,EACtBb,OAAQ,UACRC,WAAY,cAAcC,SAC1B,WAAY,CACVxE,SAAU,WACV4rD,MAAO,EACPnkD,WAAY,cACZlD,WAAY,OAAOC,IACnBsC,QAAS,MAEX,iBAAkB,CAChBW,WAAY,4BAEd,UAAW,CACTnB,iBAAkB1pC,EAAM8oC,KAAKurD,GAAkBrrD,KAAK,GAAGxoB,QACvDioB,uBAAwBrB,EACxBsB,qBAAsB,EACtBF,mBAAoB,EACpBD,qBAAsBnB,KAK5B,UAAW,CACTyD,WAAY0pD,EACZ,CAAC,GAAGhuD,aAAyB,CAC3BJ,MAAOquD,EACP3pD,WAAY4pD,GAEd,CAAC,GAAGluD,wBAAoC,CACtCJ,MAAOquD,EACP3pD,WAAY4pD,EACZ/pD,OAAQ,aAAagqD,IAErBG,kBAAmB,KAI1B,EAEH,GAAe,QAAc,CAAC,SAAU,UAAU70F,GAAS,CAAC+zF,EAAc/zF,KAAS,KAAuB,CACxGsyF,iBAAkB,OClGpB,MAAMwC,EAAkB,CACtBC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,YACJC,IAAK,aAEMC,EAA4B,gBAAoB,CAAC,GACxDC,EAAa,MACjB,IAAItlG,EAAI,EACR,OAAO,WAGL,OADAA,GAAK,EACE,GAFM/F,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,KAE9D+F,GACrB,CACD,EAPkB,GAQbk6F,EAAqB,cAAiB,CAAC9zF,EAAO8V,KAClD,MACIqyC,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,QACT0xF,EAAO,SACPzxF,EAAQ,iBACR0xF,GAAmB,EAAK,MACxB73C,EAAQ,OAAM,MACdza,EAAQ,CAAC,EAAC,YACVuyD,GAAc,EAAK,aACnBC,GAAe,EAAK,MACpB7rD,EAAQ,IAAG,eACXgkD,EAAiB,GAAE,sBACnB8H,EAAqB,WACrBC,EAAU,WACVC,EAAU,aACVC,GACE1/F,EACJ2/F,EAtDgC,SAAUhjG,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA+CiBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,UAAW,WAAY,mBAAoB,QAAS,QAAS,cAAe,eAAgB,QAAS,iBAAkB,wBAAyB,aAAc,aAAc,kBAC9N,UACJ4mF,IACE,IAAAv/B,YAAW,MACRu4C,EAAWC,IAAgB,IAAAzR,UAAS,cAAepuF,EAAQA,EAAM4/F,UAAYR,IAC7EU,EAAOC,IAAY,IAAA3R,WAAS,IACnC,IAAAt6B,YAAU,KACJ,cAAe9zD,GACjB6/F,EAAa7/F,EAAM4/F,UACrB,GACC,CAAC5/F,EAAM4/F,YACV,MAAMI,EAAqB,CAAC7tG,EAAOkD,KAC3B,cAAe2K,GACnB6/F,EAAa1tG,GAEfstG,SAAwDA,EAAWttG,EAAOkD,EAAK,GAG3E,aACJ8xD,IACE,IAAAE,YAAW,MACTc,EAAYhB,EAAa,eAAgBw6B,IACxCC,EAAYn6B,EAAQo6B,GAAa,EAAS15B,GAE3C83C,GAAuB,IAAAvsC,UAC7BusC,EAAqBrlG,QAAUslG,IAC7BH,EAASG,EAAI5qE,SACboqE,SAA4DA,EAAaQ,EAAI5qE,SACzEsqE,IAAcM,EAAI5qE,SACpB0qE,EAAmBE,EAAI5qE,QAAS,aAClC,GAEF,IAAAw+B,YAAU,KACR,SAASqsC,EAAkBD,GACzB,OAAOD,EAAqBrlG,QAAQslG,EACtC,CACA,IAAIA,EACJ,GAAsB,oBAAXtyD,OAAwB,CACjC,MAAM,WACJwyD,GACExyD,OACJ,GAAIwyD,GAAcZ,GAAcA,KAAcd,EAAiB,CAC7DwB,EAAME,EAAW,0BAA0B1B,EAAgBc,OAC3D,IACEU,EAAIn0D,iBAAiB,SAAUo0D,EACjC,CAAE,MAAO3lF,GACP0lF,EAAIG,YAAYF,EAClB,CACAA,EAAkBD,EACpB,CACF,CACA,MAAO,KACL,IACEA,SAA0CA,EAAIhP,oBAAoB,SAAUiP,EAC9E,CAAE,MAAO3lF,GACP0lF,SAA0CA,EAAII,eAAeH,EAC/D,EACD,GACA,CAACX,KACJ,IAAA1rC,YAAU,KACR,MAAMysC,EAAWrB,EAAW,cAE5B,OADAtY,EAAUC,SAAS0Z,GACZ,IAAM3Z,EAAUE,YAAYyZ,EAAS,GAC3C,IACH,MAAMC,EAAS,KACbR,GAAoBJ,EAAW,eAAe,EA+C1CpD,EAAe,WAAc,KAAM,CACvC3I,eAAgB+L,KACd,CAACA,IACL,OAAOhe,EAAwB,gBAAoBqd,EAAapgF,SAAU,CACxE1sB,MAAOqqG,GAjDW,MAClB,MAAMiE,GAAW,EAAAj/B,EAAA,GAAKm+B,EAAY,CAAC,cAC7Be,EAAWd,EAAYnI,EAAiBhkD,EAExCktD,GC/HQxuG,ED+HeuuG,GC/HLh0E,MAAM0I,WAAWjjC,KAAWu4B,SAASv4B,GD+HpB,GAAGuuG,MAAejoG,OAAOioG,IAE5DE,EAA+D,IAA5CxrE,WAAW38B,OAAOg/F,GAAkB,IAA0B,gBAAoB,OAAQ,CACjHxkC,QAASutC,EACT/yF,UAAW,IAAW,GAAG06C,uBAAgC,GAAGA,wBAAgCm3C,EAAe,QAAU,UACrHxyD,MAAOyyD,GACNJ,GAAwB,gBAAoB0B,EAAA,EAAc,OAAU,KAMjEC,EALU,CACdC,SAAUzB,EAA4B,gBAAoB0B,EAAA,EAAe,MAAqB,gBAAoBp9C,EAAA,EAAc,MAChIg8C,UAAWN,EAA4B,gBAAoB17C,EAAA,EAAc,MAAqB,gBAAoBo9C,EAAA,EAAe,OAEpHpB,EAAY,YAAc,YAEnCqB,EAAyB,OAAZ9B,EAAmByB,GAAkC,gBAAoB,MAAO,CACjGnzF,UAAW,GAAG06C,YACd8K,QAASutC,EACT1zD,MAAO,CACL2G,MAAOktD,IAERxB,GAAW2B,GAAmB,KAC3BI,EAAWzvG,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGgiC,GAAQ,CACvD8E,KAAM,OAAO+uD,IACbQ,SAAUR,EACV7I,SAAU6I,EACVltD,MAAOktD,IAEHS,EAAW,IAAWj5C,EAAW,GAAGA,KAAaZ,IAAS,CAC9D,CAAC,GAAGY,iBAA0By3C,EAC9B,CAAC,GAAGz3C,iBAA0Bk3C,GAA2B,OAAZF,IAAqByB,EAClE,CAAC,GAAGz4C,aAAsB23C,EAC1B,CAAC,GAAG33C,gBAAoD,IAA3B/yB,WAAWurE,IACvClzF,EAAWg6C,EAAQo6B,GC9JR1vF,MD+Jd,OAAoB,gBAAoB,QAASV,OAAOqZ,OAAO,CAC7D2C,UAAW2zF,GACVX,EAAU,CACX3zD,MAAOo0D,EACPprF,IAAKA,IACU,gBAAoB,MAAO,CAC1CrI,UAAW,GAAG06C,cACbz6C,GAAW2xF,GAAeS,GAASc,EAAmBK,EAAa,KAAK,EAO1EI,IAAe,IAKpB,0HE9KA,QAAe,EAAW,qGCA1B,SAASC,EAAmBpnG,GAC1B,OAAO,OAAkBA,KAAM,OAAgBA,KAAM,OAA2BA,KAAM,QACxF,uOCKO,MAAMqnG,EAAqB,kBAChC9zF,EAAS,cACT+zF,GAEuB,EADpBC,oXAAAA,CAAAA,EAAAA,CAFHh0F,YACA+zF,kBAIA,MAAOrkC,EAAWukC,IAAgBC,EAAAA,EAAAA,IAAgBH,GAAe,GAEjE,OAAKrkC,GASH,SAACykC,EAAAA,2UAAKA,CAAAA,CACJn0F,WAAWI,EAAAA,EAAAA,GAAK,UAAWJ,GAC3Bo0F,UAAQ,GACJJ,cAAAA,CACJK,UAAQ,EACRC,QAVgB,KAClBL,GAAa,EAAM,sVAJZ,mQCfX,MAwBA,EAxByB,KACvB,MAAM,gBACJM,EAAe,kBACfC,EAAiB,iBACjBC,EAAgB,SAChBC,EAAQ,eACRC,EAAc,cACdvqD,EAAa,MACbv+C,EAAK,SACLuqF,EAAQ,UACRwe,IACE,IAAAh7C,YAAW,KACf,OAAO+6C,EAA+B,gBAAoBE,EAAA1mG,EAAc,CACtEumG,SAAUA,EACVI,SAAU1e,EACVvqF,MAAO,WACLA,SAA8CA,EAAM2D,WAAM,EAAQpJ,WAClEwuG,SAAsDA,GAAU,EAClE,EACAG,UAA+B,WAApBR,EACXr0F,YAAas0F,EACb95C,UAAW,GAAGtQ,SACbqqD,GAAqB,IAAI,ECG9B,EAzBqB,KACnB,MAAM,gBACJF,EAAe,MACf1oG,EAAK,SACL6oG,EAAQ,cACRM,EAAa,cACb5qD,EAAa,aACb6qD,EAAY,OACZC,EAAM,UACNN,EAAS,KACTO,IACE,IAAAv7C,YAAW,KACf,OAAoB,gBAAoBi7C,EAAA1mG,EAAc,CACpDumG,SAAUA,EACV9sG,KAAMstG,GAAU,UAChBJ,SAAUK,EACVtpG,MAAO,WACLA,SAA8CA,EAAM2D,WAAM,EAAQpJ,WAClEwuG,SAAsDA,GAAU,EAClE,EACAG,UAA+B,OAApBR,EACXr0F,YAAa80F,EACbt6C,UAAW,GAAGtQ,SACb6qD,EAAa,iECtBlB,MAAMG,EAAuBj5F,IAC3B,MAAM,aACJumC,EAAY,cACZ2yD,EAAa,gBACbC,EAAe,qBACfC,EAAoB,SACpBjoF,EAAQ,WACRi1B,EAAU,iBACVizD,EAAgB,WAChBjxC,EAAU,mBACVkxC,GACEt5F,EACEu5F,EAAsB,GAAGhzD,YAC/B,MAAO,CACL,CAACgzD,GAAsB,CACrB,QAAS,CACP9kE,UAAW,OAEb,CAAC,GAAGz0B,EAAMsmC,uBAAwB,CAChC7e,QAAS,QAEX,CAAC,GAAG8xE,kBAAqC1xG,OAAOqZ,OAAO,CAAC,GAAG,WAC3D,CAAC,IAAIqlC,KAAgBA,UAAsB,CACzCL,QAASozD,GAGX,CAAC,GAAGC,UAA6B,CAC/B9xE,QAAS,OACT+gC,SAAU,SACVvgB,WAAY,QACZ,CAAC,KAAKjoC,EAAMgtC,WAAY,CACtBhF,KAAM,OACN72B,SAAUioF,EACV9rD,gBAAiBttC,EAAMw5F,2BACvBvsD,UAAWjtC,EAAM8oC,KAAK9oC,EAAM8oC,KAAKsf,GAAY9e,IAAI8vD,GAAsB54E,SAAS0sB,IAAI,GAAG1sB,SAEzF,CAAC,iBAAiBxgB,EAAMgtC,WAAY,CAClCC,UAAWjtC,EAAM8oC,KAAK9oC,EAAM8oC,KAAKuwD,GAAkB/vD,IAAI8vD,GAAsB54E,SAAS0sB,IAAI,GAAG1sB,UAGjG,CAAC,GAAG+4E,eAAkC,CACpC9xE,QAAS,OACTowD,cAAe,SACf7vC,KAAM,OACNyxD,OAAQz5F,EAAMotF,UAGhB,CAAC,GAAGptF,EAAMgtC,aAAausD,eAAkC,CACvDhC,SAAU,gBAAe,QAAKv3F,EAAM8oC,KAAK9oC,EAAMo5F,sBAAsBj4F,IAAInB,EAAMioD,UAAUznC,aAE3F,CAAC,GAAG+4E,WAA8B,CAChCpzD,MAAOnmC,EAAM+nD,iBACbn2C,WAAY5R,EAAMwuC,iBAClBr9B,SAAU+nF,EACV9yD,WAAY+yD,GAEd,CAAC,GAAGI,aAAgC,CAClCpzD,MAAOnmC,EAAMsT,UACbnC,WACAi1B,cAGF,CAAC,GAAGmzD,UAA6B,CAC/BnsD,UAAW,MACXH,UAAWjtC,EAAM05F,qBACjB,CAAC,GAAG15F,EAAMsmC,gBAAgBtmC,EAAMsmC,cAAe,CAC7CmmD,aAAc,EACd/jC,kBAAmB1oD,EAAMotF,YAI/B,CAAC,GAAGmM,WAA6BA,YAA8Bv5F,EAAMgtC,WAAY,CAC/E7G,MAAOnmC,EAAMqrC,YAEf,CAAC,GAAGkuD,aAA+BA,YAA8Bv5F,EAAMgtC,qBACjEusD,aAA+BA,YAA8Bv5F,EAAMgtC,WAAY,CACnF7G,MAAOnmC,EAAMurC,cAEf,CAAC,GAAGguD,UAA4BA,YAA8Bv5F,EAAMgtC,WAAY,CAC9E7G,MAAOnmC,EAAM25F,WAEf,CAAC,GAAGJ,aAA+BA,YAA8Bv5F,EAAMgtC,WAAY,CACjF7G,MAAOnmC,EAAM45F,cAEhB,EAGH,GAAe,QAAqB,CAAC,QAAS,YAAY55F,IACxD,MAAM65F,GAAa,QAAa75F,GAChC,MAAO,CAACi5F,EAAqBY,GAAY,GACxC,KAAuB,CAExBpsE,OAAQ,MC/FV,IAAIm8D,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EAkBO,SAAS2kG,EAAe1jG,GAC7B,MAAM,UACFmoD,EAAS,KACT5uC,EAAI,OACJoqF,EAAM,WACNC,EAAU,iBACVC,EAAgB,KAChBxuG,EAAI,SACJyuG,EAAQ,OACRC,EAEA3gB,OAAQ4gB,GACNhkG,EACJikG,EAAazQ,EAAOxzF,EAAO,CAAC,YAAa,OAAQ,SAAU,aAAc,mBAAoB,OAAQ,WAAY,SAAU,WAM7H,IAAIs9F,EAAa/jF,EAEjB,IAAKA,GAAiB,OAATA,EACX,OAAQlkB,GACN,IAAK,OACHioG,EAA0B,gBAAoB4G,EAAA,EAAkB,MAChE,MACF,IAAK,UACH5G,EAA0B,gBAAoB6G,EAAA,EAAmB,MACjE,MACF,IAAK,QACH7G,EAA0B,gBAAoB8G,EAAA,EAAmB,MACjE,MACF,QACE9G,EAA0B,gBAAoB+G,EAAA,EAAyB,MAI7E,MAAMjC,EAAiB0B,QAA2CA,EAAoB,YAATzuG,EACvE2sG,EAA4C,OAA1BhiG,EAAMgiG,kBAAmChiG,EAAMgiG,iBAAmB,OACnF5e,IAAU,QAAU,SACrBkhB,EAAeN,GAAgB5gB,EAE/Bsf,EAAeiB,IAAWvB,EAAiBkC,aAAmD,EAASA,EAAaX,OAASW,aAAmD,EAASA,EAAaC,YACtMrC,EAAmB0B,IAAeU,aAAmD,EAASA,EAAaV,YAE3GY,EAAc/yG,OAAOqZ,OAAO,CAChCk3F,kBACAE,mBACAQ,eACAN,kBACC6B,GACGQ,EAAkB,WAAc,IAAMD,IAAa,OAAmB/yG,OAAO4gB,OAAOmyF,KAEpFE,EAAgC,gBAAoB,WAAgB,KAAmB,gBAAoB,EAAW,MAAoB,gBAAoB,EAAO,OACrKC,OAA2B3yG,IAAhBgO,EAAMohE,OAAuC,OAAhBphE,EAAMohE,MAC9CwjC,EAAU,GAAGf,SACnB,OAAoB,gBAAoB,MAAO,CAC7Cp2F,UAAW,GAAGo2F,kBACA,gBAAoB,MAAO,CACzCp2F,UAAW,IAAWm3F,EAAS,CAC7B,CAAC,GAAGA,eAAsBD,KAE3BrH,EAAyB,gBAAoB,MAAO,CACrD7vF,UAAW,GAAGo2F,eACbc,GAAyB,gBAAoB,OAAQ,CACtDl3F,UAAW,GAAGo2F,WACb7jG,EAAMohE,OAAqB,gBAAoB,MAAO,CACvD3zD,UAAW,GAAGo2F,aACb7jG,EAAM8zC,gBAAuB9hD,IAAX+xG,GAA0C,mBAAXA,EAAsC,gBAAoB,IAAsB,CAClI5xG,MAAOsyG,GACO,gBAAoB,MAAO,CACzCh3F,UAAW,GAAGo2F,UACK,mBAAXE,EAAwBA,EAAOW,EAAkB,CACzDG,MAAK,EACLC,UAAS,IACNJ,IAAsBX,EAAqB,gBAAoB,EAAS,CAC3E57C,UAAWA,IAEf,CACA,MAAM48C,EAAgB/kG,IACpB,MAAM,MACJ1G,EAAK,OACLm3C,EAAM,WACNyzC,EAAU,KACVtc,EAAI,SACJo9B,EAAQ,SACRC,EAAQ,aACRhiB,EAAY,UACZiiB,EAAS,UACT7mE,EAAS,UACT8pB,EAAS,cACTg9C,EAAa,cACbttD,EAAa,UACbutD,EAAS,SACTtD,GAAW,EAAK,UAChBuD,EAAS,YACTC,EAAW,uBACXC,EAAsB,UACtBlD,EAAS,OACTmD,GACExlG,EAQE6jG,EAAmB,GAAG17C,YACtB1U,EAAQzzC,EAAMyzC,OAAS,IACvB3G,EAAQ9sC,EAAM8sC,OAAS,CAAC,EACxB24D,OAAsBzzG,IAAfgO,EAAMylG,MAA4BzlG,EAAMylG,KAE/CC,OAAsC1zG,IAAvBgO,EAAM0lG,cAAqC1lG,EAAM0lG,aAChEjS,EAAc,IAAWoQ,EAAkB,GAAGA,KAAoB7jG,EAAM3K,OAAQ,CACpF,CAAC,GAAGwuG,SAAuC,QAAdxlE,GAC5Br+B,EAAMyN,YAEF,CAAE7D,IAAS,EAAA09C,EAAA,MACZq+C,EAAe,WAAc,SAClB3zG,IAAXy+C,EACKA,EAGF7mC,EAAMuuC,gBAAkB,MAC9B,CAAC1H,EAAQ7mC,IAEZ,OAAoB,gBAAoBy5E,EAAA,EAAO,CAC7Cl7B,UAAWA,EACX16C,UAAWgmF,EACX0R,cAAe,IAAW,CACxB,CAAC,GAAGtB,gBAAgC7jG,EAAMilG,UACzCE,GACHthB,SAAU,KACRvqF,SAA8CA,EAAM,CAClDsqF,eAAe,IAEjBye,SAAsDA,GAAU,EAAM,EAExEz6B,KAAMA,EACNxG,MAAO,GACP2iC,OAAQ,KACR5nD,gBAAgB,OAAkBtE,GAAiB,GAAI,OAAQ73C,EAAMm8C,gBACrEypD,oBAAoB,OAAkB/tD,GAAiB,GAAI,OAAQ73C,EAAM4lG,oBACzEH,KAAMA,EACNC,aAAcA,EACd54D,MAAOA,EACP04D,OAAQ/zG,OAAOqZ,OAAO,CACpBmhC,KAAMm5D,EACNK,KAAMP,GACLM,GACH/xD,MAAOA,EACPhD,OAAQk1D,EACRzhB,WAAYA,EACZ8gB,SAAUA,EACVC,SAAUA,EACVhiB,aAAcA,EACd6e,SAAUA,EACVuD,UAAWA,EACXC,YAAaA,EACbC,uBAAwBA,GACV,gBAAoB7B,EAAgBjyG,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CAC3E6jG,iBAAkBA,KAChB,EAoBN,EAlB6B7jG,IAC3B,MAAM,cACJ63C,EAAa,cACbuP,EAAa,UACb/oB,EAAS,MACTkpB,GACEvnD,EACJ,OAAoB,gBAAoB,KAAgB,CACtDmoD,UAAWtQ,EACXuP,cAAeA,EACf/oB,UAAWA,EACXkpB,MAAOA,GACO,gBAAoBw9C,EAAetzG,OAAOqZ,OAAO,CAAC,EAAG9K,IAAQ,iIC/LxE,SAAS6lG,EAAaC,EAAMC,EAAavxG,EAAKrC,GAEnD,MAAO,CACLkD,KAAM2wG,EAAAA,GACNF,OACAC,cACAvxG,MACArC,QAEJ,CAEO,SAAS8zG,EAAmBH,EAAMC,EAAa9pG,EAAM9J,GAE1D,MAAO,CACLkD,KAAM6wG,EAAAA,GACNJ,OACAC,cACA9pG,OACA9J,QAEJ,CAEO,SAASg0G,EAAcL,EAAMC,EAAarmG,GAE/C,MAAO,CACLrK,KAAM+wG,EAAAA,GACNN,OACAC,cACArmG,OAEJ,CAEO,SAAS2mG,EAAqBP,EAAMC,EAAarmG,GACtD,MAAO,CACLrK,KAAMixG,EAAAA,GACNR,OACAC,cACArmG,OAEJ,CAEO,SAAS6mG,EAAaT,EAAMC,EAAa5zG,GAC9C,MAAO,CACLkD,KAAMmxG,EAAAA,GACNV,OACAC,cACA5zG,QAEJ,CAEO,SAASs0G,EAAaX,EAAMC,EAAaW,GAC9C,MAAO,CACLrxG,KAAMsxG,EAAAA,GACNb,OACAC,cACAW,YAEJ,CAEO,SAASE,EAAkBd,EAAMC,EAAarmG,GACnD,MAAO,CACLrK,KAAMwxG,EAAAA,GACNf,OACAC,cACArmG,OAEJ,CAqBO,SAASonG,EACdC,EACAC,EACAC,GAEA,MAAO,CACL5xG,KAAM6xG,EAAAA,GACNH,aACAC,oBACAC,mBAEJ,oGCzGIE,EAAuB,SAA8BnnG,EAAO8V,GAC9D,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiB4tF,sGCX7B,SAASC,EAAYx/B,EAAMy/B,EAAaC,EAAWC,EAAU9B,EAAMC,EAAc8B,EAAgBC,GAC9G,IAAIC,EAAU,SAAa9/B,GAC3B8/B,EAAQ9sG,QAAUgtE,EAClB,IAAI+/B,EAAsB,UAAa,GA+CvC,OA5CA,aAAgB,WACd,GAAIN,GAAeE,KAAc9B,GAAQC,GAAe,CACtD,IAAIkC,EAAgB,WAClBD,EAAoB/sG,SAAU,CAChC,EACIitG,EAAiB,SAAwBr1G,GAC3C,IAAIs1G,GACAJ,EAAQ9sG,SAAY4sG,GAAuD,QAAtCM,EAAkBt1G,EAAEu1G,oBAA8C,IAApBD,GAA8E,QAA/CA,EAAkBA,EAAgBz1G,KAAKG,UAAoC,IAApBs1G,OAA6B,EAASA,EAAgB,KAAOt1G,EAAEymB,SAAY0uF,EAAoB/sG,SAC1Q6sG,GAAY,EAEhB,EACIO,GAAM,OAAOT,GACjBS,EAAIj8D,iBAAiB,cAAe67D,GAAe,GACnDI,EAAIj8D,iBAAiB,YAAa87D,GAAgB,GAClDG,EAAIj8D,iBAAiB,cAAe87D,GAAgB,GAGpD,IAAII,GAAmB,OAAcX,GAarC,OAZIW,IACFA,EAAiBl8D,iBAAiB,YAAa87D,GAAgB,GAC/DI,EAAiBl8D,iBAAiB,cAAe87D,GAAgB,IAU5D,WACLG,EAAI9W,oBAAoB,cAAe0W,GAAe,GACtDI,EAAI9W,oBAAoB,YAAa2W,GAAgB,GACrDG,EAAI9W,oBAAoB,cAAe2W,GAAgB,GACnDI,IACFA,EAAiB/W,oBAAoB,YAAa2W,GAAgB,GAClEI,EAAiB/W,oBAAoB,cAAe2W,GAAgB,GAExE,CACF,CACF,GAAG,CAACR,EAAaC,EAAWC,EAAU9B,EAAMC,IAC5C,WACEiC,EAAoB/sG,SAAU,CAChC,CAEF,4EC7CA,SAASstG,EAAgB5yF,GACvB,GAA0B,kBAAfA,EACT,OAAO9L,OAAO8L,GAGhB,MAAM6yF,EAA6B,iBAAf7yF,EAA0B8f,WAAW9f,GAAcA,EACvE,KAAoB,iBAAT6yF,GAAqBz7E,MAAMy7E,IAASA,EAAO,GAAKA,EAAO,GAUlE,OAAOA,EATL,KACE,KAAOt1E,KACL,0GAA0GgC,KAAKL,UAC7Glf,cACWuf,KAAKL,iBAAiBlf,MAM3C,iEC1BA,SAASk6E,EAAkBh9F,EAAG0H,GAC5B,IAAK,IAAI6E,EAAI,EAAGA,EAAI7E,EAAEjE,OAAQ8I,IAAK,CACjC,IAAI9E,EAAIC,EAAE6E,GACV9E,EAAEud,WAAavd,EAAEud,aAAc,EAAIvd,EAAE+d,cAAe,EAAI,UAAW/d,IAAMA,EAAEge,UAAW,GAAKxmB,OAAO8lB,eAAe/kB,GAAG,OAAcyH,EAAEzF,KAAMyF,EAC5I,CACF,CACA,SAASw1F,EAAaj9F,EAAG0H,EAAG6E,GAC1B,OAAO7E,GAAKs1F,EAAkBh9F,EAAEd,UAAWwI,GAAI6E,GAAKywF,EAAkBh9F,EAAGuM,GAAItN,OAAO8lB,eAAe/kB,EAAG,YAAa,CACjHylB,UAAU,IACRzlB,CACN,mBCXAP,EAAOC,QAAU,IAA0B,2PCQ5B,SAASk2G,EAAep3E,EAAQouC,EAASipC,EAASC,EAEjEC,GACE,IACEC,EADsB,aAAiB,MACP/vF,MAC9Bg0C,EAAW,CAACz7B,GAAQ3zB,QAAO,OAAmB+hE,IAC9CqpC,GAAc,OAAQh8C,GACtBpnC,GAAW,OAAyB,CAACojF,IAErCC,IADY,SACC,SAAoBzgB,GACnCugB,EAAYjzC,SAASkzC,GAAa,SAAUE,GAC1C,IAAI1vG,EAAO0vG,GAAa,MAAC32G,OAAWA,GAClC2J,GAAQ,OAAe1C,EAAM,GAC7B2vG,EAASjtG,EAAM,GAWb+D,EAAO,MAVU,IAAXkpG,EAAoB,EAAIA,EACxBjtG,EAAM,IAQc0sG,KAI9B,OAAOpgB,EAAUA,EAAQvoF,GAAQA,CACnC,GACF,GAGA,WAAc,WACZgpG,GACF,GACA,CAACD,IAYD,IAAII,EATcL,EAAYpzC,MAAMqzC,GASL,GA0C/B,OAvCA,QAA6B,WAC3BF,SAAsDA,EAAcM,EACtE,IAAG,SAAUC,GAaX,OATAJ,GAAW,SAAUttG,GACnB,IAAIyB,GAAQ,OAAezB,EAAO,GAChC2tG,EAAQlsG,EAAM,GACd4b,EAAQ5b,EAAM,GAIhB,OAHIisG,GAAsB,IAAVC,IACdR,SAAsDA,EAAcM,IAE/D,CAACE,EAAQ,EAAGtwF,EACrB,IACO,WACL+vF,EAAYjzC,SAASkzC,GAAa,SAAUE,GAC1C,IAAI7rG,EAAQ6rG,GAAa,GACvBxrG,GAAQ,OAAeL,EAAO,GAC9BksG,EAAS7rG,EAAM,GACf4rG,OAAmB,IAAXC,EAAoB,EAAIA,EAChCvwF,EAAQtb,EAAM,GAEhB,OAAkB,GADF4rG,EAAQ,GAGtB1jF,GAAS,YAIHyjF,GAAaN,EAAYpzC,MAAMqzC,IACjCH,SAAsDA,EAAc7vF,GAAO,EAE/E,IACO,MAEF,CAACswF,EAAQ,EAAGtwF,EACrB,GACF,CACF,GAAG,CAACgwF,IACGI,CACT,+IC5FO,MAAMI,EAA2B,gBAAoB,CAC1DC,WAAY,QACZ5jC,UAAU,EACV6jC,QAAS,SAEEC,EAAkC,gBAAoB,MACtDlwB,EAAel5E,IAC1B,MAAMqpG,GAAgB,OAAKrpG,EAAO,CAAC,cACnC,OAAoB,gBAAoB,KAAgBvO,OAAOqZ,OAAO,CAAC,EAAGu+F,GAAe,EAE9EC,EAAqC,gBAAoB,CACpEnhD,UAAW,KAEAohD,EAAoC,gBAAoB,CAAC,GAIzDC,EAAcvwG,IACzB,IAAI,SACFyU,EAAQ,OACRxL,EAAM,SACN8gB,GACE/pB,EACJ,MAAMwwG,GAAuB,IAAApiD,YAAWkiD,GAClCG,GAA0B,IAAA3oD,UAAQ,KACtC,MAAM4oD,EAAal4G,OAAOqZ,OAAO,CAAC,EAAG2+F,GASrC,OARIzmF,UACK2mF,EAAWC,gBAEhB1nG,WACKynG,EAAWznG,cACXynG,EAAWE,mBACXF,EAAWG,cAEbH,CAAU,GAChB,CAACznG,EAAQ8gB,EAAUymF,IACtB,OAAoB,gBAAoBF,EAAqB1qF,SAAU,CACrE1sB,MAAOu3G,GACNh8F,EAAS,EAEDq8F,GAA8B,IAAAj0B,oBAAc9jF,0GC9CzDC,EAAOC,QAAU,IAA0B,8DCSnC,SAAW6c,GAAU,aAIzB,IAAIi7F,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPC,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJl7F,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yEAAyE/b,MAC7E,KAEJmc,YACI,yEAAyEnc,MACrE,KAERqc,SAAU,iDAAiDrc,MAAM,KACjEsc,cAAe,oBAAoBtc,MAAM,KACzCuc,YAAa,oBAAoBvc,MAAM,KACvCwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEV2P,cAAe,cACfC,KAAM,SAAU9nB,GACZ,MAAiB,UAAVA,CACX,EACA+nB,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,GACA,QAEA,OAEf,EACA5P,SAAU,CACNC,QAAS,oBACTE,QAAS,kBACTC,SAAU,iBACVC,QAAS,qBACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNpU,EAAG,iBACHqU,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,QACJC,EAAG,WACHC,GAAI,YAERC,uBAAwB,YACxBC,QAAS,OACTs4F,SAAU,SAAU3xG,GAChB,OAAOA,EAAOw1B,QAAQ,iBAAiB,SAAUtuB,GAC7C,OAAOwqG,EAAUxqG,EACrB,GACJ,EACA0qG,WAAY,SAAU5xG,GAClB,OAAOA,EAAOw1B,QAAQ,OAAO,SAAUtuB,GACnC,OAAOuqG,EAAUvqG,EACrB,GACJ,EACAuS,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA3GyCC,CAAQ,EAAQ,oHCF3C,SAASi4F,EAAKpqG,GAC3B,IAAImoD,EAAYnoD,EAAMmoD,UACpByf,EAAO5nE,EAAM4nE,KACbn3B,EAASzwC,EAAMywC,OACfg1D,EAAOzlG,EAAMylG,KACbvpD,EAASl8C,EAAMk8C,OACjB,OAAKupD,EAGe,gBAAoB,MAAW,OAAS,CAAC,EAAGvpD,EAAQ,CACtE8qB,cAAc,EACdxB,QAASoC,EACTb,eAAe,KACb,SAAU9tE,GACZ,IAAIwU,EAAYxU,EAAKwU,UACrB,OAAoB,gBAAoB,MAAO,CAC7Cq/B,MAAO,CACL2D,OAAQA,GAEVhjC,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,SAAU16C,IAEzD,IAdS,IAeX,mBC1BAxb,EAAOC,QAAU,IAA0B,uICQvCm4G,EAA0B,SAAUnpC,IACtC,OAAUmpC,EAAYnpC,GACtB,IAAIj4C,GAAS,OAAaohF,GAC1B,SAASA,IAEP,OADA,OAAgBv0G,KAAMu0G,GACfphF,EAAOhsB,MAAMnH,KAAMjC,UAC5B,CAOA,OANA,OAAaw2G,EAAY,CAAC,CACxB71G,IAAK,SACLrC,MAAO,WACL,OAAO2D,KAAKkK,MAAM0N,QACpB,KAEK28F,CACT,CAd8B,WAc5B,wECHF,MAAMC,EAAqB,KACzB,MAAMC,GAAW,SACjB,OAAQA,GAAYA,EAASC,iBAAoB,CAAC,sFClBhD17F,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,8IAA+I,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mFAAmF,MAAQ,GAAG,SAAW,yDAAyD,eAAiB,CAAC,iNAAiN,WAAa,MAErmB,2BCPA/Q,EAAOC,QAAU,IAA0B,yICwB3C,QAfA,SAAqB6F,EAAOM,GAM1B,IALA,IAAIkR,GAAS,EACTtT,EAAkB,MAAT8B,EAAgB,EAAIA,EAAM9B,OACnCw0G,EAAW,EACXh4G,EAAS,KAEJ8W,EAAQtT,GAAQ,CACvB,IAAI9D,EAAQ4F,EAAMwR,GACdlR,EAAUlG,EAAOoX,EAAOxR,KAC1BtF,EAAOg4G,KAAct4G,EAEzB,CACA,OAAOM,CACT,oGC6DA,QA9DA,SAAqBsF,EAAOqjE,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACjE,IAAIg/E,EAjBqB,EAiBTF,EACZG,EAAY9yG,EAAM9B,OAClB60G,EAAY1vC,EAAMnlE,OAEtB,GAAI40G,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAan/E,EAAMzkB,IAAIpP,GACvBizG,EAAap/E,EAAMzkB,IAAIi0D,GAC3B,GAAI2vC,GAAcC,EAChB,OAAOD,GAAc3vC,GAAS4vC,GAAcjzG,EAE9C,IAAIwR,GAAS,EACT9W,GAAS,EACTw4G,EA/BuB,EA+BfP,EAAoC,IAAI,SAAW14G,EAM/D,IAJA45B,EAAMn3B,IAAIsD,EAAOqjE,GACjBxvC,EAAMn3B,IAAI2mE,EAAOrjE,KAGRwR,EAAQshG,GAAW,CAC1B,IAAIK,EAAWnzG,EAAMwR,GACjB4hG,EAAW/vC,EAAM7xD,GAErB,GAAI0qD,EACF,IAAIm3C,EAAWR,EACX32C,EAAWk3C,EAAUD,EAAU3hG,EAAO6xD,EAAOrjE,EAAO6zB,GACpDqoC,EAAWi3C,EAAUC,EAAU5hG,EAAOxR,EAAOqjE,EAAOxvC,GAE1D,QAAiB55B,IAAbo5G,EAAwB,CAC1B,GAAIA,EACF,SAEF34G,GAAS,EACT,KACF,CAEA,GAAIw4G,GACF,KAAK,OAAU7vC,GAAO,SAAS+vC,EAAUE,GACnC,KAAK,OAASJ,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUT,EAASz2C,EAAYroC,IAC/E,OAAOq/E,EAAKtzG,KAAK0zG,EAErB,IAAI,CACN54G,GAAS,EACT,KACF,OACK,GACDy4G,IAAaC,IACXR,EAAUO,EAAUC,EAAUT,EAASz2C,EAAYroC,GACpD,CACLn5B,GAAS,EACT,KACF,CACF,CAGA,OAFAm5B,EAAc,OAAE7zB,GAChB6zB,EAAc,OAAEwvC,GACT3oE,CACT,kBC5EA,iBAFiB,EAAK64G,2BCctB,QAVA,SAAoBz0G,GAClB,IAAI0S,GAAS,EACT9W,EAAS2R,MAAMvN,EAAIk0B,MAKvB,OAHAl0B,EAAIvC,SAAQ,SAASnC,EAAOqC,GAC1B/B,IAAS8W,GAAS,CAAC/U,EAAKrC,EAC1B,IACOM,CACT,kBCWI84G,EAAc,IAAS,IAAO75G,eAAYM,EAC1Cw5G,EAAgBD,EAAcA,EAAYzoE,aAAU9wC,8CCvBxD,IAGIslB,EAHc7lB,OAAOC,UAGc4lB,qBAGnCm0F,EAAmBh6G,OAAO2nB,sBAmB9B,QAVkBqyF,EAA+B,SAAS/xF,GACxD,OAAc,MAAVA,EACK,IAETA,EAASjoB,OAAOioB,IACT,OAAY+xF,EAAiB/xF,IAAS,SAAShhB,GACpD,OAAO4e,EAAqBjlB,KAAKqnB,EAAQhhB,EAC3C,IACF,ECTA,WACE,MAAO,EACT,kBCLA,QAJA,SAAoBghB,GAClB,OCEF,SAAwBA,EAAQq4E,EAAUC,GACxC,IAAIv/F,EAASs/F,EAASr4E,GACtB,OAAO,EAAA2I,EAAA,GAAQ3I,GAAUjnB,GAAS,OAAUA,EAAQu/F,EAAYt4E,GAClE,CDLS,CAAeA,EAAQzd,EAAA,EAAM,EACtC,EEVA,IAMI,EAHcxK,OAAOC,UAGQC,sDCI7B+5G,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ,EAHcn6G,OAAOC,UAGQC,eA6DjC,QA7CA,SAAyB+nB,EAAQ0hD,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACtE,IAAIigF,GAAW,EAAAxpF,EAAA,GAAQ3I,GACnBoyF,GAAW,EAAAzpF,EAAA,GAAQ+4C,GACnB2wC,EAASF,EAAWF,GAAW,OAAOjyF,GACtCsyF,EAASF,EAAWH,GAAW,OAAOvwC,GAKtC6wC,GAHJF,EAASA,GAAUL,EAAUE,EAAYG,IAGhBH,EACrBM,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,EAAYJ,GAAUC,EAE1B,GAAIG,IAAa,EAAAl/F,EAAA,GAASyM,GAAS,CACjC,KAAK,EAAAzM,EAAA,GAASmuD,GACZ,OAAO,EAETywC,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADArgF,IAAUA,EAAQ,IAAI,KACdigF,IAAY,EAAAvZ,EAAA,GAAa54E,GAC7B,EAAYA,EAAQ0hD,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GNdnE,SAAoBlS,EAAQ0hD,EAAO9oE,EAAKo4G,EAASz2C,EAAY02C,EAAW/+E,GACtE,OAAQt5B,GACN,IAzBc,oBA0BZ,GAAKonB,EAAO0yF,YAAchxC,EAAMgxC,YAC3B1yF,EAAO0wE,YAAchvB,EAAMgvB,WAC9B,OAAO,EAET1wE,EAASA,EAAOla,OAChB47D,EAAQA,EAAM57D,OAEhB,IAlCiB,uBAmCf,QAAKka,EAAO0yF,YAAchxC,EAAMgxC,aAC3BzB,EAAU,IAAI,EAAWjxF,GAAS,IAAI,EAAW0hD,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO,EAAAixC,EAAA,IAAI3yF,GAAS0hD,GAEtB,IAxDW,iBAyDT,OAAO1hD,EAAOxb,MAAQk9D,EAAMl9D,MAAQwb,EAAOjG,SAAW2nD,EAAM3nD,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOiG,GAAW0hD,EAAQ,GAE5B,IAjES,eAkEP,IAAI52C,EAAU,EAEhB,IAjES,eAkEP,IAAIomF,EA5EiB,EA4ELF,EAGhB,GAFAlmF,IAAYA,EAAU,KAElB9K,EAAOqR,MAAQqwC,EAAMrwC,OAAS6/E,EAChC,OAAO,EAGT,IAAI0B,EAAU1gF,EAAMzkB,IAAIuS,GACxB,GAAI4yF,EACF,OAAOA,GAAWlxC,EAEpBsvC,GAtFuB,EAyFvB9+E,EAAMn3B,IAAIilB,EAAQ0hD,GAClB,IAAI3oE,EAAS,EAAY+xB,EAAQ9K,GAAS8K,EAAQ42C,GAAQsvC,EAASz2C,EAAY02C,EAAW/+E,GAE1F,OADAA,EAAc,OAAElS,GACTjnB,EAET,IAnFY,kBAoFV,GAAI+4G,EACF,OAAOA,EAAcn5G,KAAKqnB,IAAW8xF,EAAcn5G,KAAK+oE,GAG9D,OAAO,CACT,CMhDQ,CAAW1hD,EAAQ0hD,EAAO2wC,EAAQrB,EAASz2C,EAAY02C,EAAW/+E,GAExE,KArDyB,EAqDnB8+E,GAAiC,CACrC,IAAI6B,EAAeN,GAAY,EAAe55G,KAAKqnB,EAAQ,eACvD8yF,EAAeN,GAAY,EAAe75G,KAAK+oE,EAAO,eAE1D,GAAImxC,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe7yF,EAAOvnB,QAAUunB,EAC/CgzF,EAAeF,EAAepxC,EAAMjpE,QAAUipE,EAGlD,OADAxvC,IAAUA,EAAQ,IAAI,KACf++E,EAAU8B,EAAcC,EAAchC,EAASz2C,EAAYroC,EACpE,CACF,CACA,QAAKugF,IAGLvgF,IAAUA,EAAQ,IAAI,KDtDxB,SAAsBlS,EAAQ0hD,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACnE,IAAIg/E,EAtBqB,EAsBTF,EACZiC,EAAW,EAAWjzF,GACtBkzF,EAAYD,EAAS12G,OAIzB,GAAI22G,GAHW,EAAWxxC,GACDnlE,SAEM20G,EAC7B,OAAO,EAGT,IADA,IAAIrhG,EAAQqjG,EACLrjG,KAAS,CACd,IAAI/U,EAAMm4G,EAASpjG,GACnB,KAAMqhG,EAAYp2G,KAAO4mE,EAAQ,EAAe/oE,KAAK+oE,EAAO5mE,IAC1D,OAAO,CAEX,CAEA,IAAIq4G,EAAajhF,EAAMzkB,IAAIuS,GACvBsxF,EAAap/E,EAAMzkB,IAAIi0D,GAC3B,GAAIyxC,GAAc7B,EAChB,OAAO6B,GAAczxC,GAAS4vC,GAActxF,EAE9C,IAAIjnB,GAAS,EACbm5B,EAAMn3B,IAAIilB,EAAQ0hD,GAClBxvC,EAAMn3B,IAAI2mE,EAAO1hD,GAGjB,IADA,IAAIozF,EAAWlC,IACNrhG,EAAQqjG,GAAW,CAE1B,IAAIz4C,EAAWz6C,EADfllB,EAAMm4G,EAASpjG,IAEX4hG,EAAW/vC,EAAM5mE,GAErB,GAAIy/D,EACF,IAAIm3C,EAAWR,EACX32C,EAAWk3C,EAAUh3C,EAAU3/D,EAAK4mE,EAAO1hD,EAAQkS,GACnDqoC,EAAWE,EAAUg3C,EAAU32G,EAAKklB,EAAQ0hD,EAAOxvC,GAGzD,UAAmB55B,IAAbo5G,EACGj3C,IAAag3C,GAAYR,EAAUx2C,EAAUg3C,EAAUT,EAASz2C,EAAYroC,GAC7Ew/E,GACD,CACL34G,GAAS,EACT,KACF,CACAq6G,IAAaA,EAAkB,eAAPt4G,EAC1B,CACA,GAAI/B,IAAWq6G,EAAU,CACvB,IAAIC,EAAUrzF,EAAOmH,YACjBmsF,EAAU5xC,EAAMv6C,YAGhBksF,GAAWC,KACV,gBAAiBtzF,MAAU,gBAAiB0hD,IACzB,mBAAX2xC,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDv6G,GAAS,EAEb,CAGA,OAFAm5B,EAAc,OAAElS,GAChBkS,EAAc,OAAEwvC,GACT3oE,CACT,CCRS,CAAainB,EAAQ0hD,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACrE,kBCrDA,QAVA,SAASmoC,EAAY5hE,EAAOipE,EAAOsvC,EAASz2C,EAAYroC,GACtD,OAAIz5B,IAAUipE,IAGD,MAATjpE,GAA0B,MAATipE,KAAmB,EAAAm3B,EAAA,GAAapgG,MAAW,EAAAogG,EAAA,GAAan3B,GACpEjpE,GAAUA,GAASipE,GAAUA,EAE/B,EAAgBjpE,EAAOipE,EAAOsvC,EAASz2C,EAAYF,EAAanoC,GACzE,oECfQ,SAAW7c,GAAU,aAIzB,IAAIE,EACI,oFAAoF/b,MAChF,KAERmc,EAAc,kDAAkDnc,MAAM,KAC1E,SAAS+5G,EAAO5sF,GACZ,OAAOA,EAAI,GAAKA,EAAI,CACxB,CACA,SAAS6sF,EAAUr7F,EAAQs7F,EAAe34G,EAAK44G,GAC3C,IAAI36G,EAASof,EAAS,IACtB,OAAQrd,GACJ,IAAK,IACD,OAAO24G,GAAiBC,EAAW,aAAe,gBACtD,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,UAAY,UAEvCpf,EAAS,YAExB,IAAK,IACD,OAAO06G,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,SAAW,SAEtCpf,EAAS,WAExB,IAAK,IACD,OAAO06G,EAAgB,SAAWC,EAAW,SAAW,UAC5D,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,SAAW,SAEtCpf,EAAS,WAExB,IAAK,IACD,OAAO06G,GAAiBC,EAAW,MAAQ,OAC/C,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,MAAQ,OAEnCpf,EAAS,QAExB,IAAK,IACD,OAAO06G,GAAiBC,EAAW,SAAW,WAClD,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,UAAY,YAEvCpf,EAAS,WAExB,IAAK,IACD,OAAO06G,GAAiBC,EAAW,MAAQ,QAC/C,IAAK,KACD,OAAID,GAAiBC,EACV36G,GAAUw6G,EAAOp7F,GAAU,OAAS,SAEpCpf,EAAS,QAGhC,CAESsc,EAAOC,aAAa,KAAM,CAC/BC,OAAQA,EACRI,YAAaA,EACbE,SAAU,sDAAsDrc,MAAM,KACtEsc,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,cACTE,QAAS,gBACTC,SAAU,WACN,OAAQ3a,KAAKm/B,OACT,KAAK,EACD,MAAO,kBACX,KAAK,EACL,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,oBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBAEnB,EACAvkB,QAAS,eACTC,SAAU,WACN,OAAQ7a,KAAKm/B,OACT,KAAK,EACD,MAAO,uBACX,KAAK,EACL,KAAK,EAIL,KAAK,EACL,KAAK,EACD,MAAO,uBAJX,KAAK,EACD,MAAO,uBAIX,KAAK,EACD,MAAO,uBAEnB,EACArkB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNpU,EAAGuwG,EACHl8F,GAAIk8F,EACJj8F,EAAGi8F,EACHh8F,GAAIg8F,EACJ/7F,EAAG+7F,EACH97F,GAAI87F,EACJ77F,EAAG67F,EACH57F,GAAI47F,EACJ37F,EAAG27F,EACH17F,GAAI07F,EACJz7F,EAAGy7F,EACHx7F,GAAIw7F,GAERv7F,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CApJyCC,CAAQ,EAAQ,wDCa1D,SAASk7F,EAAiBC,GACxB,MAAO,IACFA,EACH3kG,KAAM,SAAU2kG,GAASlpG,MAAMie,QAAQirF,EAAM3kG,MAAQ2kG,EAAM3kG,KAAKxV,KAAK,UAAOnB,EAC5EiK,KAAM,SAAUqxG,EAAQz4E,KAAKL,UAAU84E,EAAMrxG,WAAQjK,EACrDu7G,YAAa,gBAAiBD,EAAQz4E,KAAKL,UAAU84E,EAAMC,kBAAev7G,EAE9E,CAMA,SAASw7G,EAAmBC,GAC1B,MAAMC,EAAc,IAAIljF,IACxB,IAAK,MAAMmjF,KAAOF,EAASG,OACrBD,EAAIhlG,MAAQglG,EAAIhlG,KAAK,IACvB+kG,EAAY3iG,IAAI4iG,EAAIhlG,KAAK,IAG7B,MAAMklG,EAAYzpG,MAAMwqB,KAAK8+E,GAE7B,MAAO,6BAA4B,QAASG,EAAU16G,KAAK,MAAO,MACpE,EAgD6B,iBAZC,CAAEyR,EAAU,CAAC,KACzC,MAAMioB,EAAQjoB,EAAQioB,OA7EF,GA+EpB,MAAO,CACL3uB,KA/EqB,YAgFrBqqF,aAAY,CAACulB,EAAetlB,IApChC,SAA+B37D,EAAOivB,EAAO0sC,GAC3C,OACG1sC,EAAMiyD,WACNjyD,EAAMiyD,UAAU17F,QAChBm2E,GACAA,EAAKE,oBA7C2BA,EA8CJF,EAAKE,mBA5ClC,QAAQA,IACmB,aAA3BA,EAAkBxqF,MAClBkG,MAAMie,QAAQ,EAAqB8F,UA2CM,IAAzCqgE,EAAKE,kBAAkBklB,OAAO33G,OAKzB,IACF6lD,EACHiyD,UAAW,IACNjyD,EAAMiyD,UACT17F,OAAQ,CACN,IACKypC,EAAMiyD,UAAU17F,OAAO,GAC1BlgB,MAAOq7G,EAAmBhlB,EAAKE,uBAE9B5sC,EAAMiyD,UAAU17F,OAAO7Y,MAAM,KAGpCyxE,MAAO,IACFnvB,EAAMmvB,MACT,kBAAmBud,EAAKE,kBAAkBvgE,OAAO3uB,MAAM,EAAGqzB,GAAOh2B,IAAIw2G,KAjBhEvxD,EAjDX,IAAqC4sC,CAqErC,CAQ6BslB,CAAsBnhF,EAAOihF,EAAetlB,GAIxE,iCCvFD/2F,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gMAAoM,KAAQ,OAAQ,MAAS,iGCAnX4c,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,wbAAyb,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wGAAwG,mDAAmD,MAAQ,GAAG,SAAW,2IAA2I,eAAiB,CAAC,kjBAAkjB,oxFAAoxF,WAAa,MAE9pI,sHCEa,IAAIsqB,OADD,YACmB,yBCTiCr7B,EAAOC,QAAoJ,WAAY,aAAa,IAAIM,EAAE,OAAOuM,EAAE,OAAO,OAAO,SAASnF,EAAEymB,EAAEnmB,GAAG,IAAIumB,EAAEJ,EAAE3uB,UAAU+uB,EAAEzO,KAAK,SAASpY,GAAG,QAAG,IAASA,IAAIA,EAAE,MAAM,OAAOA,EAAE,OAAO9D,KAAKiV,IAAI,GAAGnR,EAAE9D,KAAKkc,QAAQ,OAAO,IAAIqO,EAAEvqB,KAAKm4G,UAAUC,WAAW,EAAE,GAAG,KAAKp4G,KAAK8rD,SAAS9rD,KAAK03B,OAAO,GAAG,CAAC,IAAI/M,EAAEvmB,EAAEpE,MAAMgkE,QAAQ/6D,GAAGgM,IAAI,EAAEhM,GAAGyuB,KAAKnN,GAAG1jB,EAAEzC,EAAEpE,MAAM6kE,MAAMnoE,GAAG,GAAGiuB,EAAE0tF,SAASxxG,GAAG,OAAO,CAAC,CAAC,IAAIvG,EAAE8D,EAAEpE,MAAMgkE,QAAQ/6D,GAAGyuB,KAAKnN,GAAGy5C,QAAQtnE,GAAGqnE,SAAS,EAAE,eAAe5/D,EAAEnE,KAAKshE,KAAKhhE,EAAE5D,GAAE,GAAI,OAAOyH,EAAE,EAAEC,EAAEpE,MAAMgkE,QAAQ,QAAQ9nD,OAAOjf,KAAKkmD,KAAKh/C,EAAE,EAAEwmB,EAAE65B,MAAM,SAAS9nD,GAAG,YAAO,IAASA,IAAIA,EAAE,MAAMsD,KAAKkc,KAAKxf,EAAE,CAAC,CAAE,CAAjrBuM,uGCInF,MAAMqvG,EAAe,kCA6IrB,EA5IqB,CACnBhrB,OAAQ,KACRirB,WAAU,IACVC,WAAU,IACVC,WAAU,IACVC,SAAQ,IACR5nG,OAAQ,CACN6nG,YAAa,iBAEfC,MAAO,CACLC,YAAa,cACbC,cAAe,KACfC,YAAa,QACbC,gBAAiB,aACjBC,eAAgB,mBAChBC,wBAAyB,oBACzBC,UAAW,UACXC,UAAW,sBACXC,aAAc,sBACdC,WAAY,iBACZC,aAAc,kBACdC,UAAW,OACXC,OAAQ,aACRC,SAAU,eACVC,YAAa,2BACbC,WAAY,0BACZC,WAAY,2BAEdC,KAAM,CACJC,KAAM,OACNC,SAAU,WACVC,OAAQ,UAEV1sB,MAAO,CACLsgB,OAAQ,KACRC,WAAY,SACZW,WAAY,MAEdyL,WAAY,CACVrM,OAAQ,KACRC,WAAY,UAEdqM,SAAU,CACRC,OAAQ,CAAC,GAAI,IACbC,kBAAmB,cACnBC,SAAU,OACVC,UAAW,QACXhpG,OAAQ,SACRipG,cAAe,sBACfC,cAAe,sBACfrB,UAAW,kBACXsB,YAAa,oBACbC,UAAW,kBACXtB,aAAc,uBAEhBuB,OAAQ,CACNC,UAAW,eACXC,WAAY,cACZC,YAAa,eACbC,YAAa,eACbC,aAAc,iBAEhB7jD,MAAO,CACLrqC,YAAa,WAEf89C,KAAM,CACJpnD,KAAM,QAERy3F,KAAM,CACJC,KAAM,OACNC,KAAM,OACNC,OAAQ,SACR5B,OAAQ,SACRC,SAAU,YAEZ4B,KAAM,CACJttF,SAAU,aACVutF,wBAAyB,CACvBl5F,QAAS,sCACTmM,SAAU,wBACVgtF,KAAM,oCACNC,WAAY,uCACZ/jF,KAAM,CACJre,OAAQ,kCACRkpB,MAAO,yCACP1U,QAAS,+BAEXsL,MAAO,CACL12B,OAAQ61G,EACR9qF,OAAQ8qF,EACRr2G,MAAOq2G,EACP10F,OAAQ00F,EACRv8F,OAAQu8F,EACR5gF,KAAM4gF,EACNl/E,QAASk/E,EACT37E,QAAS27E,EACToD,MAAOpD,EACPqD,OAAQrD,EACR5uE,MAAO4uE,EACP9iE,IAAK8iE,EACLzuE,IAAKyuE,GAEP71G,OAAQ,CACNsB,IAAK,qCACL+3B,IAAK,8CACL1T,IAAK,2CACLyrB,MAAO,qDAET93B,OAAQ,CACNhY,IAAK,mCACL+3B,IAAK,kCACL1T,IAAK,kCACLyrB,MAAO,0CAET5xC,MAAO,CACL8B,IAAK,0BACL+3B,IAAK,2BACL1T,IAAK,0BACLyrB,MAAO,wDAETnxC,QAAS,CACPk5G,SAAU,oDAIhBC,MAAO,CACLC,QAAS,WAEXC,OAAQ,CACNC,QAAS,kBACTC,QAAS,UACTC,QAAS,WAEXC,YAAa,CACXC,YAAa,QACbC,YAAa,cACbC,YAAa,SACbC,cAAe,4CC9InB,IAAIC,2BACG,MAAMC,EAAUj5E,IACrBg5E,EAAeh5E,CAAQ,EAEZk5E,EAAU,IAAMF,uFCDzBxjG,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,kbAAmb,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2GAA2G,MAAQ,GAAG,SAAW,qKAAqK,eAAiB,CAAC,yiBAAyiB,WAAa,MAEr2C,yCCPA,SAAS0uF,EAAuBl/F,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAIi/F,eAAe,6DAC3C,OAAOj/F,CACT,iDCAAf,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD86F,EAA+B56F,EAAyB,EAAQ,SAChEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIg6F,EAAgB,SAAS1yG,EAAO8V,GAChC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMk5F,EAAet6F,UAbCe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJ2YC,EAAOmC,WAAW64F,wFCpH7Z5jG,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,sWAAuW,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0DAA0D,MAAQ,GAAG,SAAW,sJAAsJ,eAAiB,CAAC,8dAA8d,WAAa,MAE9oC,4BCPA/Q,EAAOC,QAAU,IAA0B,kHCEvCygH,EAAU,CAAE/3G,QAAS,MAazB,QAZsB,SAAUkb,EAAKlR,QACjB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIguG,IAAgBhuG,EAAQguG,YACxBC,IAAUjuG,EAAQiuG,MAClBC,GAAY,OAAch9F,EAAK88F,GAC/BjtG,GAAQ,OAASitG,IAAgBE,EAAYH,EAAU78F,GAK3D,OAJI+8F,IACAltG,EAAMotG,IAAMhgH,KAAKmrB,IAAI,EAAGnrB,KAAK6+B,IAAIjsB,EAAMotG,IAAKptG,EAAMqtG,MAClDrtG,EAAMstG,IAAMlgH,KAAKmrB,IAAI,EAAGnrB,KAAK6+B,IAAIjsB,EAAMstG,IAAKttG,EAAMutG,OAE/CvtG,CACX,oBCdA1T,EAAOC,QAAU,IAA0B,gKCsE3C,QA/DiC,SAAUihH,IACzC,OAAUC,EAAeD,GACzB,IAAIlqF,GAAS,OAAamqF,GAC1B,SAASA,EAAch1D,GACrB,IAAIi1D,EASJ,OARA,OAAgBv9G,KAAMs9G,GACtBC,EAAQpqF,EAAO52B,KAAKyD,OACpB,QAAgB,OAAuBu9G,GAAQ,SAAU,GACrDj1D,aAAeg1D,EACjBC,EAAM5gH,OAAS2rD,EAAI3rD,OACK,iBAAR2rD,IAChBi1D,EAAM5gH,OAAS2rD,GAEVi1D,CACT,CA+CA,OA9CA,OAAaD,EAAe,CAAC,CAC3B5+G,IAAK,MACLrC,MAAO,SAAaisD,GAMlB,OALIA,aAAeg1D,EACjBt9G,KAAKrD,QAAU2rD,EAAI3rD,OACK,iBAAR2rD,IAChBtoD,KAAKrD,QAAU2rD,GAEVtoD,IACT,GACC,CACDtB,IAAK,MACLrC,MAAO,SAAaisD,GAMlB,OALIA,aAAeg1D,EACjBt9G,KAAKrD,QAAU2rD,EAAI3rD,OACK,iBAAR2rD,IAChBtoD,KAAKrD,QAAU2rD,GAEVtoD,IACT,GACC,CACDtB,IAAK,MACLrC,MAAO,SAAaisD,GAMlB,OALIA,aAAeg1D,EACjBt9G,KAAKrD,QAAU2rD,EAAI3rD,OACK,iBAAR2rD,IAChBtoD,KAAKrD,QAAU2rD,GAEVtoD,IACT,GACC,CACDtB,IAAK,MACLrC,MAAO,SAAaisD,GAMlB,OALIA,aAAeg1D,EACjBt9G,KAAKrD,QAAU2rD,EAAI3rD,OACK,iBAAR2rD,IAChBtoD,KAAKrD,QAAU2rD,GAEVtoD,IACT,GACC,CACDtB,IAAK,QACLrC,MAAO,WACL,OAAO2D,KAAKrD,MACd,KAEK2gH,CACT,CA9DiC,WA8D/Bx3G,mEChEF,SAFiB,cAAQnK,OAAOwK,KAAMxK,QCCtC,IAGI,EAHcA,OAAOC,UAGQC,eAsBjC,QAbA,SAAkB+nB,GAChB,KAAK,OAAYA,GACf,OAAO,EAAWA,GAEpB,IAAIjnB,EAAS,GACb,IAAK,IAAI+B,KAAO/C,OAAOioB,GACjB,EAAernB,KAAKqnB,EAAQllB,IAAe,eAAPA,GACtC/B,EAAOkF,KAAKnD,GAGhB,OAAO/B,CACT,qEC3BO,MAAM6U,EAAkB,kBAClBJ,EAAuB,uBACvBK,EAAqB,qICalC,MACEgnG,WAAY+E,EACZC,YAAaC,GACX,IACED,EAA2B,cAAiB,CAACvzG,EAAO8V,IAAsB,gBAAoB09F,EAAqB/hH,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CAChJyzG,OAAQ,OACRnzC,UAAMtuE,EACN8jB,IAAKA,OAEDy4F,EAA0B,cAAiB,CAAC/zF,EAAI1E,KACpD,IAAI,MACA49F,EAAK,kBACLC,EAAiB,QACjBpkB,EAAO,SACPqkB,GACEp5F,EACJ04C,EA7BgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAsBgBy0F,CAAOh5E,EAAI,CAAC,QAAS,oBAAqB,UAAW,aAKnE,MAAOq5F,IAAiB,OAAW,aAActkB,EAASqkB,GACpDE,EAA4B,WAAc,IAC1CH,GAGAD,QAAJ,GAIC,CAACA,EAAOC,IACX,OAAoB,gBAAoBL,EAAoB7hH,OAAOqZ,OAAO,CAAC,EAAGooD,EAAW,CACvFoN,UAAMtuE,EACN8jB,IAAKA,EACL69F,kBAAmBG,EACnBvkB,QAASskB,IACR,IAOCE,GAAY,OAAaxF,EAAY,UAC3CA,EAAWyF,uCAAyCD,EACpDxF,EAAWgF,YAAcA,EACzBhF,EAAWyF,uCAAyCD,EACpD,4BC9DA,IAAIE,EAAkB,EAAQ,QAC1B5H,EAAK,EAAQ,QAMb16G,EAHcF,OAAOC,UAGQC,eAoBjCM,EAAOC,QARP,SAAqBwnB,EAAQllB,EAAKrC,GAChC,IAAIgiE,EAAWz6C,EAAOllB,GAChB7C,EAAeU,KAAKqnB,EAAQllB,IAAQ63G,EAAGl4C,EAAUhiE,UACxCH,IAAVG,GAAyBqC,KAAOklB,IACnCu6F,EAAgBv6F,EAAQllB,EAAKrC,EAEjC,2BCxBA,IAAIqvD,EAAU/oD,OAEdxG,EAAOC,QAAU,SAAUwvD,GACzB,IACE,OAAOF,EAAQE,EACjB,CAAE,MAAOhnD,GACP,MAAO,QACT,CACF,oBCTA,IAAIw5G,EAAU,EAAQ,OAetBjiH,EAAOC,QANP,SAA0ByW,GACxB,OAAO,SAAS+Q,GACd,OAAOw6F,EAAQx6F,EAAQ/Q,EACzB,CACF,qPCVA,MAAMwrG,EAAcvqG,IAClB,MAAM,aACJumC,EAAY,UACZsH,GACE7tC,EACJ,MAAO,CACL,CAACumC,GAAe,CACd9e,QAAS,cACTwgB,WAAY,SACZugB,SAAU,SACVgiD,UAAW38D,EACX,QAAS,CACPpZ,UAAW,OAEb,CAAC,GAAG8R,WAAuB,CACzB6G,UAAW,SACX/8B,cAAerQ,EAAM+mC,YAGvB,CAAC,IAAIR,QAAmBA,WAAuB,CAC7Cl2B,cAAerQ,EAAM8oC,KAAK9oC,EAAM+mC,YAAYmG,IAAI,GAAG1sB,SAErD,CAAC,IAAI+lB,QAAmBA,WAAuB,CAC7Cl2B,cAAerQ,EAAM6tC,YAG1B,EAGH,GAAe,QAAc,CAAC,QAAS,QAAQ7tC,IAC7C,MAAMyqG,GAAa,QAAWzqG,GAAO,OAAeA,IACpD,MAAO,CAACuqG,EAAYE,GAAY,GAC/B,oBCtBH,MA0DA,EA1D8B,cAAiB,CAACr0G,EAAO8V,KACrD,MAAM,MACF3jB,EAAK,SACL2wD,EAAQ,eACRwxD,EAAc,MACd/qG,EAAK,KACLk8F,GACEzlG,EACJkzD,EAnBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAYgBy0F,CAAOxzF,EAAO,CAAC,QAAS,WAAY,iBAAkB,QAAS,SACvEu0G,EAAgBpiH,GAAyB,iBAATszG,EAAoBA,EAAOtzG,EAK3DqiH,EAAW,SAAa,MAC9B,sBAA0B1+F,GAAK,IAAM0+F,EAAS55G,UAE9C,MAAM65G,EAAgB,MACpB,EAAAx2D,EAAA,IAAI,KACF,IAAIzjC,EACJ,MAAMk6F,EAAuC,QAA3Bl6F,EAAKg6F,EAAS55G,eAA4B,IAAP4f,OAAgB,EAASA,EAAGviB,MAC7EgxC,SAASG,gBAAkBsrE,GAAYA,GACzCA,EAASC,QACX,GACA,EAqBJ,OAAoB,gBAAoBC,EAAA,EAAOnjH,OAAOqZ,OAAO,CAC3DzV,MAAe,IAATowG,EAAgB,WAAa,QAClCvyC,EAAW,CACZp9C,IAAK0+F,EACLriH,MAAOoiH,EACPM,QAxCuBriH,IACvBswD,EAASv5C,EAAO/W,EAAEymB,OAAO9mB,MAAM,EAwC/B4vE,QAAS0yC,EACT3yC,UAzBwB7oE,IACxB,IAAI,IACFzE,GACEyE,EACQ,cAARzE,EACF8/G,EAAe/qG,EAAQ,GACN,eAAR/U,GACT8/G,EAAe/qG,EAAQ,GAEzBkrG,GAAe,EAiBfK,QAfsBtiH,IACR,cAAVA,EAAEgC,KAAwBrC,GAC5BmiH,EAAe/qG,EAAQ,GAEzBkrG,GAAe,EAYfM,YAAaN,EACbO,UAAWP,IACV,IC9CL,SAASQ,EAAShmE,GAChB,OAAQA,GAAO,IAAI/7C,MAAM,GAC3B,CACA,MAgKA,EAhKyB,cAAiB,CAAC8M,EAAO8V,KAChD,MACIqyC,UAAWw5B,EAAkB,OAC7B1rF,EAAS,EACT80B,KAAMmqF,EAAU,aAChBhyD,EAAY,MACZ/wD,EAAK,SACL2wD,EAAQ,UACRqyD,EAAS,QACT5lB,EAAO,SACP9mC,EACAvmD,OAAQkzG,EAAY,UACpB5S,EAAS,KACTiD,EAAI,KACJpwG,GACE2K,EACJkzD,EAvCgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAgCgB,CAAOiB,EAAO,CAAC,YAAa,SAAU,OAAQ,eAAgB,QAAS,WAAY,YAAa,UAAW,WAAY,SAAU,YAAa,OAAQ,UAK9J,aACJmnD,EAAY,UACZ9oB,GACE,aAAiB,MACf8pB,EAAYhB,EAAa,MAAOw6B,GAChC0zB,GAAW,EAAAC,EAAA,GAAUpiD,EAAW,CACpCqiD,MAAM,EACN71G,MAAM,EACN81G,MAAM,IAIFv1D,GAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,EAAYn6B,EAAQo6B,GAAa,EAAS15B,EAAWlI,GAEtDw1D,GAAa,EAAAC,EAAA,IAAQzgG,GAAOigG,QAA+CA,EAAajgG,IAExF0gG,EAAc,aAAiB,MAC/BC,GAAe,OAAgBD,EAAYzzG,OAAQkzG,GACnDS,EAAmB,WAAc,IAAMpkH,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG6qG,GAAc,CACzFzzG,OAAQ0zG,EACR/L,aAAa,EACbC,aAAc,QACZ,CAAC6L,EAAaC,IAEZxoC,EAAe,SAAa,MAC5Bn3D,EAAO,SAAa,CAAC,GAC3B,sBAA0BH,GAAK,KAAM,CACnC+zB,MAAO,KACL,IAAIrvB,EACuB,QAA1BA,EAAKvE,EAAKrb,QAAQ,UAAuB,IAAP4f,GAAyBA,EAAGqvB,OAAO,EAExEJ,KAAM,KACJ,IAAIjvB,EACJ,IAAK,IAAI5gB,EAAI,EAAGA,EAAI3D,EAAQ2D,GAAK,EACJ,QAA1B4gB,EAAKvE,EAAKrb,QAAQhB,UAAuB,IAAP4gB,GAAyBA,EAAGivB,MACjE,EAEFqsE,cAAe1oC,EAAaxyE,YAG9B,MAAMm7G,EAAoBC,GAAOb,EAAYA,EAAUa,GAAOA,GAEvDC,EAAYC,GAAiB,WAAejB,EAASc,EAAkB7yD,GAAgB,MAC9F,aAAgB,UACAlxD,IAAVG,GACF+jH,EAAcjB,EAAS9iH,GACzB,GACC,CAACA,IACJ,MAAMgkH,GAA0B,EAAAjZ,EAAA,IAASkZ,IACvCF,EAAcE,GAEVtzD,GAAYszD,EAAengH,SAAWA,GAAUmgH,EAAe5/F,OAAM+J,GAAKA,KAAM61F,EAAel+G,MAAK,CAACqoB,EAAGhX,IAAU0sG,EAAW1sG,KAAWgX,KAC1IuiC,EAASszD,EAAejjH,KAAK,IAC/B,IAEIkjH,GAAa,EAAAnZ,EAAA,IAAS,CAAC3zF,EAAOysG,KAClC,IAAIM,GAAY,OAAmBL,GAEnC,IAAK,IAAIr8G,EAAI,EAAGA,EAAI2P,EAAO3P,GAAK,EACzB08G,EAAU18G,KACb08G,EAAU18G,GAAK,IAGfo8G,EAAI//G,QAAU,EAChBqgH,EAAU/sG,GAASysG,EAEnBM,EAAYA,EAAU98G,MAAM,EAAG+P,GAAOlM,OAAO43G,EAASe,IAExDM,EAAYA,EAAU98G,MAAM,EAAGvD,GAE/B,IAAK,IAAI2D,EAAI08G,EAAUrgH,OAAS,EAAG2D,GAAK,IAClC08G,EAAU18G,GAD2BA,GAAK,EAI9C08G,EAAU7tG,MAGZ,MAAM8tG,EAAiBR,EAAkBO,EAAUz/G,KAAI0pB,GAAKA,GAAK,MAAKptB,KAAK,KAO3E,OANAmjH,EAAYrB,EAASsB,GAAgB1/G,KAAI,CAAC0pB,EAAG3mB,IACjC,MAAN2mB,GAAc+1F,EAAU18G,GAGrB2mB,EAFE+1F,EAAU18G,KAId08G,CAAS,IAGZE,EAAgB,CAACjtG,EAAOysG,KAC5B,IAAIx7F,EACJ,MAAM87F,EAAYD,EAAW9sG,EAAOysG,GAC9BS,EAAY1jH,KAAK6+B,IAAIroB,EAAQysG,EAAI//G,OAAQA,EAAS,GACpDwgH,IAAcltG,IACmB,QAAlCiR,EAAKvE,EAAKrb,QAAQ67G,UAA+B,IAAPj8F,GAAyBA,EAAGqvB,SAEzEssE,EAAwBG,EAAU,EAE9BI,EAAsBD,IAC1B,IAAIj8F,EAC+B,QAAlCA,EAAKvE,EAAKrb,QAAQ67G,UAA+B,IAAPj8F,GAAyBA,EAAGqvB,OAAO,EAG1E8sE,EAAmB,CACvBpnB,UACA9mC,WACAvmD,OAAQ0zG,EACRnQ,OACApwG,QAEF,OAAOusF,EAAwB,gBAAoB,MAAOnwF,OAAOqZ,OAAO,CAAC,EAAGuqG,EAAU,CACpFv/F,IAAKs3D,EACL3/D,UAAW,IAAW06C,EAAW,CAC/B,CAAC,GAAGA,QAAgC,UAAfstD,EACrB,CAAC,GAAGttD,QAAgC,UAAfstD,EACrB,CAAC,GAAGttD,SAAgC,QAAd9pB,GACrBwjD,EAAWp6B,KACC,gBAAoB,KAAqB5oC,SAAU,CAClE1sB,MAAO0jH,GACNzxG,MAAMwqB,KAAK,CACZ34B,WACCY,KAAI,CAACggC,EAAGttB,KACT,MAAM/U,EAAM,OAAO+U,IACbqtG,EAAcX,EAAW1sG,IAAU,GACzC,OAAoB,gBAAoB,EAAU9X,OAAOqZ,OAAO,CAC9DgL,IAAK4+F,IACHz+F,EAAKrb,QAAQ2O,GAASmrG,CAAQ,EAEhClgH,IAAKA,EACL+U,MAAOA,EACPwhB,KAAM0qF,EACNoB,SAAU,EACVppG,UAAW,GAAG06C,UACdrF,SAAU0zD,EACVrkH,MAAOykH,EACPtC,eAAgBoC,EAChBlU,UAAqB,IAAVj5F,GAAei5F,GACzBmU,GAAkB,MAClB,6ECnKP,MAAMG,EAAoBtxC,GAAWA,EAAuB,gBAAoBuxC,EAAA,EAAa,MAAqB,gBAAoB5P,EAAA,EAAsB,MACtJ6P,EAAY,CAChBC,MAAO,UACPC,MAAO,eA0FT,EAxF8B,cAAiB,CAACl3G,EAAO8V,KACrD,MACE2yC,SAAU0uD,EAAc,OACxBniH,EAAS,QAAO,iBAChBoiH,GAAmB,EAAI,WACvBC,EAAaP,GACX92G,EAEEyoD,EAAW,aAAiB6uD,EAAA,GAC5B70C,EAAiB00C,QAAuDA,EAAiB1uD,EACzF8uD,EAAmD,iBAArBH,QAA8DplH,IAA7BolH,EAAiB5xC,SAC/EA,EAASgyC,IAAc,IAAAppB,WAAS,MAAMmpB,GAAuBH,EAAiB5xC,UAC/EgvC,GAAW,IAAA9gD,QAAO,MACxB,aAAgB,KACV6jD,GACFC,EAAWJ,EAAiB5xC,QAC9B,GACC,CAAC+xC,EAAsBH,IAE1B,MAAMK,GAAwB,EAAAC,EAAA,GAAyBlD,GACjD3uC,EAAkB,KAClBpD,IAGA+C,GACFiyC,IAEFD,GAAWG,IACT,IAAIn9F,EACJ,MAAMo9F,GAAYD,EAIlB,MAHgC,iBAArBP,IACmC,QAA3C58F,EAAK48F,EAAiBvxC,uBAAoC,IAAPrrD,GAAyBA,EAAGnoB,KAAK+kH,EAAkBQ,IAElGA,CAAQ,IACf,GAsBE,UACFnqG,EACA06C,UAAWw5B,EACXk2B,eAAgBC,EAAuB,KACvC/sF,GACE/qB,EACJkzD,EAtFgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA+EgB,CAAOiB,EAAO,CAAC,YAAa,YAAa,iBAAkB,UACnE,aACJmnD,GACE,aAAiB,MACf0wD,EAAiB1wD,EAAa,QAAS2wD,GACvC3vD,EAAYhB,EAAa,iBAAkBw6B,GAC3Co2B,EAAaX,GAhCHjvD,KACd,MAAM6vD,EAAchB,EAAUhiH,IAAW,GACnCukB,EAAO89F,EAAW7xC,GAClByyC,EAAY,CAChB,CAACD,GAAcnyC,EACfp4D,UAAW,GAAG06C,SACd3zD,IAAK,eACLugH,YAAaviH,IAGXA,EAAEi7C,gBAAgB,EAEpBunE,UAAWxiH,IAGTA,EAAEi7C,gBAAgB,GAGtB,OAAoB,eAAgC,iBAAqBl0B,GAAQA,EAAoB,gBAAoB,OAAQ,KAAMA,GAAO0+F,EAAU,EAcnHC,CAAQ/vD,GACzCgwD,EAAiB,IAAWhwD,EAAW16C,EAAW,CACtD,CAAC,GAAG06C,KAAap9B,OAAWA,IAExBqtF,EAAe3mH,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,EAAA02D,EAAA,GAAKtO,EAAW,CAAC,SAAU,aAAc,sBAAuB,CACnH79D,KAAMmwE,EAAU,OAAS,WACzB/3D,UAAW0qG,EACXhwD,UAAW0vD,EACX/kE,OAAQilE,IAKV,OAHIhtF,IACFqtF,EAAartF,KAAOA,GAEF,gBAAoB6pF,EAAA,EAAOnjH,OAAOqZ,OAAO,CAC3DgL,KAAK,QAAWA,EAAK0+F,IACpB4D,GAAc,wDCsCnB,QA/H4B,cAAiB,CAACp4G,EAAO8V,KACnD,MACIqyC,UAAWw5B,EACXk2B,eAAgBC,EAAuB,UACvCrqG,EACAsd,KAAMstF,EAAa,OACnBvlE,EAAM,YACNwlE,GAAc,EAAK,WACnBC,EAAU,QACVC,EAAO,SACP/vD,EACAgwD,SAAUC,EACV51D,SAAU61D,EAAc,mBACxBC,EAAkB,iBAClBC,GACE74G,EACJkzD,EAlCgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA2BgB,CAAOiB,EAAO,CAAC,YAAa,iBAAkB,YAAa,OAAQ,SAAU,cAAe,aAAc,UAAW,WAAY,WAAY,WAAY,qBAAsB,sBACvL,aACJmnD,EAAY,UACZ9oB,GACE,aAAiB,MACfy6E,EAAc,UAAa,GAC3B3wD,EAAYhB,EAAa,eAAgBw6B,GACzCk2B,EAAiB1wD,EAAa,QAAS2wD,IACvC,YACJiB,IACE,QAAsB5wD,EAAW9pB,GAC/BtT,GAAO,EAAA2qF,EAAA,IAAQzgG,IACnB,IAAIuF,EACJ,OAAmG,QAA3FA,EAAK69F,QAAqDA,EAAgBU,SAAgC,IAAPv+F,EAAgBA,EAAKvF,CAAG,IAE/Hu/F,EAAW,SAAa,MASxBO,EAAcviH,IAClB,IAAIgoB,EACAyuB,SAASG,iBAA+C,QAA3B5uB,EAAKg6F,EAAS55G,eAA4B,IAAP4f,OAAgB,EAASA,EAAGviB,QAC9FzF,EAAEi7C,gBACJ,EAEIgrE,EAAWjmH,IACf,IAAIgoB,EAAIC,EACJi+F,GACFA,EAAgG,QAAhFj+F,EAAiC,QAA3BD,EAAKg6F,EAAS55G,eAA4B,IAAP4f,OAAgB,EAASA,EAAGviB,aAA0B,IAAPwiB,OAAgB,EAASA,EAAGtoB,MAAOK,EAAG,CAC5I0mB,OAAQ,SAEZ,EAQI8/F,EAAoC,kBAAhBV,EAAyC,gBAAoBW,EAAA,EAAgB,MAAQ,KACzGC,EAAe,GAAG/wD,WACxB,IAAIgxD,EACJ,MAAMC,EAAuBd,GAAe,CAAC,EACvCe,EAAeD,EAAqB/jH,OAAmD,IAA3C+jH,EAAqB/jH,KAAKikH,aAE1EH,EADEE,GAA8C,WAA9BD,EAAqB/jH,MAC9B,QAAa+jH,EAAsB3nH,OAAOqZ,OAAO,CACxDiqG,cACA9hD,QAASzgE,IACP,IAAIgoB,EAAIC,EACiK,QAAxKA,EAAuH,QAAjHD,EAAK4+F,aAAmE,EAASA,EAAqBp5G,aAA0B,IAAPwa,OAAgB,EAASA,EAAGy4C,eAA4B,IAAPx4C,GAAyBA,EAAGpoB,KAAKmoB,EAAIhoB,GACtNimH,EAASjmH,EAAE,EAEbgC,IAAK,eACJ6kH,EAAe,CAChB5rG,UAAWyrG,EACXnuF,QACE,CAAC,IAEiB,gBAAoB,KAAQ,CAChDtd,UAAWyrG,EACX7jH,KAAMijH,EAAc,eAAYtmH,EAChC+4B,KAAMA,EACN09B,SAAUA,EACVj0D,IAAK,cACLugH,YAAaA,EACb9hD,QAASwlD,EACTD,QAASA,EACTj/F,KAAMy/F,GACLV,GAEDC,IACFY,EAAS,CAACA,GAAQ,QAAaZ,EAAY,CACzC/jH,IAAK,iBAGT,MAAM+kH,EAAM,IAAWpxD,EAAW,CAChC,CAAC,GAAGA,SAAgC,QAAd9pB,EACtB,CAAC,GAAG8pB,KAAap9B,OAAWA,EAC5B,CAAC,GAAGo9B,mBAA4BmwD,GAC/B7qG,GASH,OAAoB,gBAAoBmnG,EAAA,EAAOnjH,OAAOqZ,OAAO,CAC3DgL,KAAK,QAAW0+F,EAAU1+F,GAC1B0jG,aAzDmBhnH,IACfsmH,EAAYl+G,SAAW49G,GAG3BC,EAASjmH,EAAE,GAsDV0gE,EAAW,CACZnoC,KAAMA,EACN6tF,mBAb+BpmH,IAC/BsmH,EAAYl+G,SAAU,EACtBg+G,SAAwEA,EAAmBpmH,EAAE,EAY7FqmH,iBAV6BrmH,IAC7BsmH,EAAYl+G,SAAU,EACtBi+G,SAAoEA,EAAiBrmH,EAAE,EASvF21D,UAAW0vD,EACXU,WAAYY,EACZrmE,OAAQA,EACRgQ,SAvFetwD,KACVA,aAA6B,EAASA,EAAEymB,SAAsB,UAAXzmB,EAAE6C,MAAoBqjH,GAC5EA,EAAelmH,EAAEymB,OAAO9mB,MAAOK,EAAG,CAChC0mB,OAAQ,UAGZy/F,SAAgEA,EAAenmH,EAAE,EAkFjFib,UAAW8rG,EACX9wD,SAAUA,IACT,oBCtIL,MAAM,EAAQ,IACd,EAAMgxD,MCAQz5G,IACZ,MAAM,aACJmnD,EAAY,UACZ9oB,IACE,IAAAgpB,YAAW,OAEbc,UAAWw5B,EAAkB,UAC7Bl0E,GACEzN,EACEmoD,EAAYhB,EAAa,cAAew6B,GACxCk2B,EAAiB1wD,EAAa,UAC7By6B,EAAYn6B,IAAU,QAASowD,GAChC0B,EAAM,IAAWpxD,EAAW,CAChC,CAAC,GAAGA,QAAgC,UAAfnoD,EAAM+qB,KAC3B,CAAC,GAAGo9B,QAAgC,UAAfnoD,EAAM+qB,KAC3B,CAAC,GAAGo9B,aAAsBnoD,EAAMqwB,QAChC,CAAC,GAAG83B,SAAgC,QAAd9pB,GACrBopB,EAAQh6C,GACLisG,GAAkB,IAAAryD,YAAW,MAC7BsyD,GAAuB,IAAA54D,UAAQ,IAAMtvD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG4uG,GAAkB,CAC3F9P,iBAAiB,KACf,CAAC8P,IAKL,OAAO93B,EAAwB,gBAAoB,OAAQ,CACzDn0E,UAAW8rG,EACXzsE,MAAO9sC,EAAM8sC,MACb+yB,aAAc7/D,EAAM6/D,aACpBC,aAAc9/D,EAAM8/D,aACpBiC,QAAS/hE,EAAM+hE,QACf63C,OAAQ55G,EAAM45G,QACA,gBAAoB,KAAqB/6F,SAAU,CACjE1sB,MAAOwnH,GACN35G,EAAM0N,WAAW,EDlCtB,EAAMmsG,OAAS,EACf,EAAMC,SAAWA,EAAA,EACjB,EAAMC,SAAW,EACjB,EAAMC,IAAM,EACZ,4JEuBO,SAASC,IACd,MAAO,CACL5kH,KAAM6kH,EAAAA,GAEV,CAeO,SAASC,EAAyBC,GACvC,MAAO,CACL/kH,KAAMglH,EAAAA,GACN36G,KAAM06G,EAEV,CAEO,SAASE,EAAqBC,GACnC,MAAO,CACLllH,KAAMmlH,EAAAA,GACN96G,KAAM66G,EAEV,CAEO,SAASE,EAA4BC,GAC1C,MAAO,CACLrlH,KAAMslH,EAAAA,GACN33G,GAAI03G,EAER,CAEO,SAASE,GAA8B,KAAEC,EAAI,aAAEC,IACpD,MAAO,CACLzlH,KAAM0lH,EAAAA,GACNF,OACAC,eAEJ,CAkBO,SAASE,EAAiB7xG,EAAO8xG,GACtC,MAAO,CACL5lH,KAAM6lH,EAAAA,GACN/xG,QACA8xG,QAEJ,CAeO,SAASE,EAAkBC,EAAsBC,GACtD,MAAO,CACLhmH,KAAMimH,EAAAA,GACN57G,KAAM27G,EACN1oH,KAAMyoH,EAEV,CAEO,SAASG,EAAcb,GAC5B,MAAO,CACLrlH,KAAMmmH,EAAAA,GACNd,qBAEJ,CAGO,SAASe,GAA2B,oBACzCC,EAAmB,OACnBC,EAAM,UACNC,EAAS,KACT19G,EAAI,eACJ29G,IAEA,MAAO,CACLxmH,KAAMymH,EAAAA,GACNJ,sBACAC,SACAC,YACA19G,OACA29G,iBAEJ,CAGO,SAASE,EACdC,GACA,OAAEL,EAAM,UAAEC,EAAS,KAAE19G,EAAI,eAAE29G,IAE3B,MAAO,CACLxmH,KAAM4mH,EAAAA,GACND,kBACAL,SACAC,YACA19G,OACA29G,iBAEJ,oBCxKA5pH,EAAOC,QAAU,IAA0B,qECQ3C,IAAgC+C,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFc,EAAQ,UAEDA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,mOCDb7S,EAAU,CAAC,kcAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OCV1D,MAmBa2uG,EAAc,kBACzBzuG,GAEgC,EAD7B0uG,oXAAAA,CAAAA,EAAAA,CADH1uG,qBAGA,SAAC2uG,EAAAA,EAAQA,EAAAA,CAAC3uG,WAAWI,EAAAA,EAAAA,GAAK,cAAeJ,IAAgB0uG,GAAAA,EAG3DD,EAAW7sB,OAAS+sB,EAAAA,EAAS/sB,OAC7B6sB,EAAWG,OAASD,EAAAA,EAASC,OAC7BH,EAAWtH,MAAQwH,EAAAA,EAASxH,MAC5BsH,EAAWvK,MAAQyK,EAAAA,EAASzK,MAC5BuK,EAAWI,KAAOF,EAAAA,EAASE,KAC3BJ,EAAWK,SA/BgB,EACzB9uG,YACA+uG,sBACAL,oBAEA,UAACrlE,MAAAA,CAAIrpC,WAAWI,EAAAA,EAAAA,GAAK,uBAAwBJ,cAC3C,SAAC2uG,EAAAA,EAASC,OAAM,GACdI,MAAM,SACN3vE,MAAO,CAAE2G,MAAO,GAAIJ,OAAQ,GAAIrD,WAAY,SACxCwsE,KAEN,SAACN,EAAUA,EAAAA,CACTryF,QAAM,EACNu3C,MAAO,CAAE3tB,MAAO,IAChBipE,WAAW,GACPP,gCCrBF,SAAWptG,GAAU,aAIzB,IAAI4tG,EACI,8DAA8DzpH,MAC1D,KAERmc,EAAc,kDAAkDnc,MAAM,KACtE0pH,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEG9tG,EAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2F/b,MAC/F,KAEJmc,YAAa,SAAU4B,EAAG9B,GACtB,OAAK8B,EAEM,QAAQyS,KAAKvU,GACbE,EAAY4B,EAAE2wC,SAEd+6D,EAAe1rG,EAAE2wC,SAJjB+6D,CAMf,EACAE,YAAaA,EACbC,iBAAkBD,EAClBE,kBACI,+FACJC,uBACI,0FACJJ,YAAaA,EACbK,gBAAiBL,EACjBM,iBAAkBN,EAClBrtG,SAAU,uDAAuDrc,MAAM,KACvEsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJE,IAAK,+BACLE,KAAM,sCAEVE,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBxa,KAAKya,QAAgB,IAAM,IAAM,MAC3D,EACAC,QAAS,WACL,MAAO,gBAAmC,IAAjB1a,KAAKya,QAAgB,IAAM,IAAM,MAC9D,EACAE,SAAU,WACN,MAAO,cAAiC,IAAjB3a,KAAKya,QAAgB,IAAM,IAAM,MAC5D,EACAG,QAAS,WACL,MAAO,cAAiC,IAAjB5a,KAAKya,QAAgB,IAAM,IAAM,MAC5D,EACAI,SAAU,WACN,MACI,0BACkB,IAAjB7a,KAAKya,QAAgB,IAAM,IAC5B,MAER,EACAK,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNpU,EAAG,gBACHqU,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJwlB,EAAG,aACHqmF,GAAI,aACJ5rG,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjHyCC,CAAQ,EAAQ,yECC1D,MAIA,EAJqBg2C,IACnB,MAAO,CAAC,CAAC,CAAC,CAAET,IAAU,UACtB,OAAOA,EAAS,GAAGS,YAAsB,EAAE,oBCR7C,IAAIi1D,EAAY,EAAQ,OACpBC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAStB,SAAS54B,EAAKn0D,GACZ,IAAIlnB,GAAS,EACTtT,EAAoB,MAAXw6B,EAAkB,EAAIA,EAAQx6B,OAG3C,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAm+D,EAAKlzF,UAAUoP,MAAQs8G,EACvBx4B,EAAKlzF,UAAkB,OAAI2rH,EAC3Bz4B,EAAKlzF,UAAUyV,IAAMm2G,EACrB14B,EAAKlzF,UAAU6Z,IAAMgyG,EACrB34B,EAAKlzF,UAAU+C,IAAM+oH,EAErBvrH,EAAOC,QAAU0yF,sJC/BjB3yF,EAAOC,QAAU,IAA0B,sFCC3C,kBAAmB,cCInBD,EAAOC,QALP,SAAgCM,GAC9B,OAAOA,GAAKA,EAAE0lB,WAAa1lB,EAAI,CAC7B,QAAWA,EAEf,EACyCP,EAAOC,QAAQgmB,YAAa,EAAMjmB,EAAOC,QAAiB,QAAID,EAAOC,qCCH9GT,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QAD6B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kLAAqL,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,saAA0a,KAAQ,kBAAmB,MAAS,2CCHj0B,SAASgzE,EAAU/c,EAAWhM,GACnC,MAAO,CACLC,WAAYD,QAAuDA,EAAiB,GAAGgM,YAE3F,CAEO,SAASs1D,EAAcC,GAC5B,IAAIC,EACJ,MAAMC,EAAe,IAAI3mH,SAAQC,IAC/BymH,EAAUD,GAAO,KACfxmH,GAAQ,EAAK,GACb,IAEEzE,EAAS,KACbkrH,SAAkDA,GAAS,EAI7D,OAFAlrH,EAAOgI,KAAO,CAACojH,EAAQC,IAAaF,EAAanjH,KAAKojH,EAAQC,GAC9DrrH,EAAOuE,QAAU4mH,EACVnrH,CACT,4CCnBAR,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,sGCC5B,SAASgrG,EAASjxF,GAC/B,IAAI8xG,EAAQ,WACZA,EAAMnjH,QAAUqR,EAChB,IAAI+xG,EAAS,eAAkB,WAE7B,IADA,IAAIC,EACK95G,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAEzB,OAA4C,QAApC45G,EAAiBF,EAAMnjH,eAAwC,IAAnBqjH,OAA4B,EAASA,EAAe5rH,KAAK4K,MAAMghH,EAAgB,CAACF,GAAO1gH,OAAO/G,GACpJ,GAAG,IACH,OAAO0nH,CACT,oBCZA/rH,EAAOC,QAAU,IAA0B,2HCGvC4c,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,qbAAsb,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,MAAQ,GAAG,SAAW,8HAA8H,eAAiB,CAAC,mqCAAmqC,WAAa,MAEr5D,4BCPA/Q,EAAOC,QAAU,IAA0B,wICE3C,QAD6B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kLAAqL,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,saAA0a,KAAQ,kBAAmB,MAAS,2cCSp0BgsH,EALQ,SAAev9F,GACzB,OAAO,WACL,OAKE,IAJJ,CACF,CAGAw9F,GAEItjD,EAAO,WAAiB,EAWxB31D,EAAW,SAAkByb,GAC/B,OAAOA,CACT,EACkC,mBAAXpvB,QACgBA,OAAO6sH,eAAgB7sH,OAAO6sH,cAMrE,IAAIC,EAAoB,SAA2BplG,EAAQC,IACzD,OAASD,EAAQC,GAEbznB,OAAO2nB,uBACT3nB,OAAO2nB,sBAAsBF,GAAQ5kB,SAAQ,SAAUqI,GACrDsc,EAAOtc,GAAKuc,EAAOvc,EACrB,GAEJ,EACI2hH,EAAU,SAAiBC,EAAQh/G,GACrC,IAAItG,EAEJ,OAAQA,EAAO,IAAIoE,OAAOJ,MAAMhE,EAAMsG,EAAI1I,IAAI0nH,GAChD,EACA,SAASl3G,EAAOtP,EAAOqzD,GACrB,IAAI7hD,EAAQxR,EAAMk8B,QAAQm3B,GAEtB7hD,GAAS,GACXxR,EAAM8wC,OAAOt/B,EAAO,EAExB,CACA,SAASi1G,EAAKxhH,GACZ,IAAIgzF,GAAS,EACb,OAAO,WACDA,IAIJA,GAAS,EACThzF,IACF,CACF,CAEA,IAAIyhH,EAAS,SAAgBhjH,GAC3B,MAAMA,CACR,EAEIijH,EAAU,SAAiBvsH,GAC7B,MAAO,CACLA,MAAOA,EACP0L,MAAM,EAEV,EAEA,SAAS8gH,EAAa/oH,EAAMgpH,EAAM1gH,QACnB,IAAT0gH,IACFA,EAAOH,QAGI,IAATvgH,IACFA,EAAO,YAGT,IAAIF,EAAW,CACbD,KAAM,CACJG,KAAMA,GAERtI,KAAMA,EACNwN,MAAOw7G,EACPv7G,OAAQq7G,EACRzgH,gBAAgB,GASlB,MANsB,oBAAX1M,SACTyM,EAASzM,OAAOyM,UAAY,WAC1B,OAAOA,CACT,GAGKA,CACT,CACA,SAASi8E,EAASv/E,EAAOiB,GACvB,IAAI8E,EAAY9E,EAAM8E,UAGtBktC,QAAQjzC,MAAMA,GACdizC,QAAQjzC,MAAM+F,EAChB,CACA,IAAIo+G,EAAc,SAAqBpjH,GACrC,OAAO,IAAI7H,MAAM,oMAAsM6H,EAAM,KAC/N,EAMIqjH,EAAmB,SAA0Bz+F,GAC/C,OAAOjc,MAAMnH,MAAM,KAAM,IAAImH,MAAMic,GACrC,EACI0+F,EAAmB,SAA0BhqH,GAC/C,OAAO,SAAUC,GAOf,OAAOD,EAAStD,OAAO8lB,eAAeviB,EAAQ,KAAa,CACzD7C,OAAO,IAEX,CACF,EACI6sH,EAAkB,SAAyBviH,GAC7C,OAAOA,IAAQ,IACjB,EACIwiH,EAAe,SAAsBxiH,GACvC,OAAOA,IAAQ,IACjB,EACIyiH,EAAiB,SAAwBziH,GAC3C,OAAOuiH,EAAgBviH,IAAQwiH,EAAaxiH,EAC9C,EACA,SAAS0iH,EAA6B1C,EAAO2C,GAC3C,IAUI7iH,EAVAN,EAAOxK,OAAOwK,KAAKwgH,GACnB4C,EAAapjH,EAAKhG,OAQlBqpH,EAAiB,EAEjBC,GAAU,QAAM9C,GAASqC,EAAiBO,GAAc,CAAC,EACzDnjH,EAAiB,CAAC,EAsCtB,OA7BAD,EAAK3H,SAAQ,SAAUE,GACrB,IAAIgI,EAAY,SAAmBC,EAAKC,GAClCH,IAIAG,GAASwiH,EAAeziH,IAC1B2iH,EAAetlH,SACfslH,EAAe3iH,EAAKC,KAEpB6iH,EAAQ/qH,GAAOiI,IACf6iH,IAjBmBD,IACrB9iH,GAAY,EACZ6iH,EAAeG,KAkBjB,EAEA/iH,EAAU1C,OAAS+gE,EACnB3+D,EAAe1H,GAAOgI,CACxB,IAEA4iH,EAAetlH,OAAS,WACjByC,IACHA,GAAY,EACZN,EAAK3H,SAAQ,SAAUE,GACrB,OAAO0H,EAAe1H,GAAKsF,QAC7B,IAEJ,EAEOoC,CACT,CACA,SAASsjH,EAAYxiH,GACnB,MAAO,CACLkB,KAAMlB,EAAGkB,MAAQ,YACjBqC,SAAUk/G,EAAYziH,GAE1B,CACA,SAASyiH,EAAYC,GACnB,OAAOA,EAAa,KACtB,CACA,SAAS3pH,IACP,IAAK,IAAIoO,EAAOtQ,UAAUoC,OAAQD,EAAQ,IAAIoO,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAChFrO,EAAMqO,GAAQxQ,UAAUwQ,GAG1B,OAAqB,IAAjBrO,EAAMC,OACD,SAAUC,GACf,OAAOA,CACT,EAGmB,IAAjBF,EAAMC,OACDD,EAAM,GAGRA,EAAMG,QAAO,SAAUC,EAAGC,GAC/B,OAAO,WACL,OAAOD,EAAEC,EAAE4G,WAAM,EAAQpJ,WAC3B,CACF,GACF,CA0FA,IAYI8rH,EAAY,SAAmBC,GACjC,OA1FF,SAAoB/yF,EAAOgzF,QACX,IAAVhzF,IACFA,EAAQ,IAGV,IAAIttB,EAAM,IAAI6E,MAAMyoB,GAChB52B,EAAS,EACT6pH,EAAY,EACZC,EAAW,EAEXpoH,EAAO,SAAcy5D,GACvB7xD,EAAIugH,GAAa1uD,EACjB0uD,GAAaA,EAAY,GAAKjzF,EAC9B52B,GACF,EAEI8D,EAAO,WACT,GAAc,GAAV9D,EAAa,CACf,IAAIm7D,EAAK7xD,EAAIwgH,GAIb,OAHAxgH,EAAIwgH,GAAY,KAChB9pH,IACA8pH,GAAYA,EAAW,GAAKlzF,EACrBukC,CACT,CACF,EAEIx5D,EAAQ,WAGV,IAFA,IAAIq6B,EAAQ,GAELh8B,GACLg8B,EAAMt6B,KAAKoC,KAGb,OAAOk4B,CACT,EAEA,MAAO,CACL3yB,QAAS,WACP,OAAiB,GAAVrJ,CACT,EACA0D,IAAK,SAAay3D,GAId,IAAI4uD,EAHN,GAAI/pH,EAAS42B,EACXl1B,EAAKy5D,QAIL,OAAQyuD,GACN,KAzDc,EA0DZ,MAAM,IAAIjsH,MA3DA,8BA6DZ,KA1Dc,EA2DZ2L,EAAIugH,GAAa1uD,EAEjB2uD,EADAD,GAAaA,EAAY,GAAKjzF,EAE9B,MAEF,KA/De,EAgEbmzF,EAAe,EAAInzF,EACnBttB,EAAM3H,IACN3B,EAASsJ,EAAItJ,OACb6pH,EAAYvgH,EAAItJ,OAChB8pH,EAAW,EACXxgH,EAAItJ,OAAS+pH,EACbnzF,EAAQmzF,EACRroH,EAAKy5D,GAOb,EACAr3D,KAAMA,EACNnC,MAAOA,EAEX,CAeSqoH,CAAWL,EAjGK,EAkGzB,EAWIM,EAAO,OACPC,EAAM,MACNC,EAAM,MACNC,EAAO,OACPC,EAAO,OACPC,EAAM,MACNC,EAAO,OACPC,EAAO,OACPC,EAAS,SACTC,EAAS,SACTC,EAAiB,iBACjBxmH,EAAY,YACZymH,EAAQ,QACRC,EAAc,cACdC,EAAc,cAuBdC,EAAa,SAAoB3rH,EAAM0M,GACzC,IAAI9I,EAEJ,OAAOA,EAAO,CAAC,GAAQ,EAAA4I,KAAM,EAAM5I,EAAKgoH,YAAa,EAAOhoH,EAAK5D,KAAOA,EAAM4D,EAAK8I,QAAUA,EAAS9I,CACxG,EAMIioH,EAAS,SAAgBz8G,GAK3B,OAAOu8G,EAAWR,GAAM,OAAS,CAAC,EAAG/7G,EAAI1C,QAAS,CAChDtE,UAAU,IAEd,EACA,SAAS1D,EAAKonH,EAAkBC,GAS9B,YARyB,IAArBD,IACFA,EAAmB,MAOjB,QAAQA,KACN,QAASC,IAEXzzE,QAAQ9a,KAAK,2HAGRmuF,EAAWd,EAAM,CACtB1nH,QAAS2oH,MAIT,QAAUA,KAAqB,QAASC,KAAqB,QAAQA,GAChEJ,EAAWd,EAAM,CACtB5kH,QAAS6lH,EACT3oH,QAAS4oH,KAIT,QAAQD,KACN,QAASC,IAEXzzE,QAAQ9a,KAAK,uFAGRmuF,EAAWd,EAAM,CACtB5kH,QAAS6lH,UAIT,CAGN,CAMA,SAASxnH,EAAI0nH,EAAWrsH,GAiBtB,OANI,QAAMA,KACRA,EAASqsH,EAETA,OAAYrvH,GAGPgvH,EAAWb,EAAK,CACrB7kH,QAAS+lH,EACTrsH,OAAQA,GAEZ,CAMA,SAAS+3C,EAAIlxC,GACX,IAAI4I,EAAMu8G,EAAWZ,EAAKvkH,GAE1B,OADA4I,EAAIw8G,YAAa,EACVx8G,CACT,CAsCA,SAAS68G,EAAoBC,EAAcjrH,GACzC,IACI0G,EADAD,EAAU,KAmBd,OAhBI,QAAKwkH,GACPvkH,EAAKukH,IAED,QAAMA,IACRxkH,EAAUwkH,EAAa,GACvBvkH,EAAKukH,EAAa,KAElBxkH,EAAUwkH,EAAaxkH,QACvBC,EAAKukH,EAAavkH,IAGhBD,IAAW,QAAOC,KAAO,QAAKD,EAAQC,MACxCA,EAAKD,EAAQC,KAIV,CACLD,QAASA,EACTC,GAAIA,EACJ1G,KAAMA,EAEV,CAMA,SAASjE,EAAKkvH,GACZ,IAAK,IAAIp9G,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClG/N,EAAK+N,EAAO,GAAKxQ,UAAUwQ,GAS7B,OAAO28G,EAAWV,EAAMgB,EAAoBC,EAAcjrH,GAC5D,CAyBA,SAAS0vB,EAAKu7F,GAQZ,IAAK,IAAIC,EAAQ3tH,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMo9G,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGnrH,EAAKmrH,EAAQ,GAAK5tH,UAAU4tH,GAG9B,OAAOT,EAAWR,EAAMc,EAAoBC,EAAcjrH,GAC5D,CACA,SAASorH,EAAMH,GAKb,IAAK,IAAII,EAAQ9tH,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMu9G,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGtrH,EAAKsrH,EAAQ,GAAK/tH,UAAU+tH,GAG9B,OAAOV,EAAOl7F,EAAK/oB,WAAM,EAAQ,CAACskH,GAAclkH,OAAO/G,IACzD,CAkBA,SAASwD,EAAO2E,GAmBd,YAlBoB,IAAhBA,IACFA,EAAc,MAiBTuiH,EAAWN,EAAQjiH,EAC5B,CACA,SAASk2G,GAAOx1G,QACG,IAAbA,IACFA,EAAW+F,GAGb,IAAK,IAAI28G,EAAQhuH,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMy9G,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGxrH,EAAKwrH,EAAQ,GAAKjuH,UAAUiuH,GAQ9B,OAAOd,EAAWL,EAAQ,CACxBxhH,SAAUA,EACV7I,KAAMA,GAEV,CA4CA,IAAIyrH,GAEJ1vH,EAAKyS,KAAK,KAAM,6jBC1rBhB,MAAMk9G,EAAiBtpC,EAAQ,QAKzBupC,EAASD,EAAeE,eAC9B,IAAIt4G,EAAuB,KAEA,SAAvBo4G,EAAeG,MACjBv4G,GAAQw4G,EAAAA,EAAAA,OAGK,MAAMC,EACnB,8BAAaC,CACXC,GAAa,EACbt2G,EAAW,KAAM,cAFnB,eAIE,MAAMu2G,EAAS50E,OAAO60E,eAAeC,QAAQ,UAC7C,GACEH,IACCC,GACD1oG,KAAKC,MAAQvQ,OAAOg5G,GAlBc,IAmBlC,CACA50E,OAAO60E,eAAeE,QAAQ,SAAUlqH,OAAOqhB,KAAKC,QACpD,IACE,MAAQosE,KAAMy8B,SAA2BP,EAAOhuG,OAC7CgQ,MACAw+F,yBAAyBb,EAAec,WAC3C,GAAIF,aAAAA,EAAAA,EAAkBG,gBAAiB,CACrC,MAAMC,GAAiBj0B,EAAAA,EAAAA,KACS,iBAA5Bi0B,EAAel0B,WACjBk0B,EAAeC,KAAO,eAE1B,MAAWh3G,GACTA,GAEJ,CAAE,MAAOi3G,GAEPv1E,QAAQ1M,IAAI,+CAA+CiiF,KAC7D,CACF,CACF,GA5BA,GA8BA,4BAAaC,UAAb,eACE,GAA2B,SAAvBnB,EAAeG,IACjB,OAGF,MAAMiB,GAAchB,EAAAA,EAAAA,MAGpB,IAAKgB,EACH,OAIF,IAAIC,EAAoC,KACxC,IACEA,GAAYC,EAAAA,EAAAA,GAAUF,EACxB,CAAE,SAEAh4E,EAAAA,GACE,mFACA,CACE+9C,SAAU,CACRv/E,MAAO,CAAE25G,iBAA6BvxH,IAAhBoxH,MAM5Bz1E,QAAQzpB,MACN,qFAEFs/F,EAAAA,EAAAA,OACAz0B,EAAAA,EAAAA,KAAoBk0B,KAAO,GAC7B,CACA,MAAMQ,GAAiBJ,aAAAA,EAAAA,EAAWK,MAAO,EACnCC,GAAc,IAAI7pG,MAAOub,UAAY,IAE3C,GACEouF,EAAiBE,EA/EQ,OAgFzBF,EAAiBE,EAAc,EAC/B,EACAH,EAAAA,EAAAA,MACA,IACE,MACMI,SADiBvB,EAAOhuG,OAAOwvG,gBACX19B,KAAKzmF,KAAKkK,OAEpCk6G,EAAAA,EAAAA,IAAeF,EACjB,CAAE,MAAOV,GACPv1E,QAAQjzC,MAAM,yCAAyCwoH,IACzD,CACF,CACF,GAnDA,GAuDA,0BAAaa,CACXC,EACAC,UAFF,eAIE,GAA2B,SAAvBjC,EAAeG,IACjB,OAEF,MAAM,WAAEj8B,GAAe+9B,EAEvB,IAAK/9B,EAAY,MAAM,IAAItyF,MAAM,2CACjC,OAAQsyF,GAKN,KAAK,IAIA,CACC,2CACA,0BACA75E,SAAS43G,EAAY99B,KAAK1yE,YAE5B+vG,EAAAA,EAAAA,OACAz0B,EAAAA,EAAAA,KAAoBk0B,KAAO,KAG7B,MAIF,KAAK,UACGiB,EAAAA,EAAAA,IAAiBD,SAQrB5B,EAAOC,gCAIPD,EAAOc,uBACf,GA9CA,IAgDA,EAtImBd,EAsIZhuG,SAAS8vG,EAAAA,aAAaC,cAC3BnC,EACAr4G,EACAy4G,EAAO0B,qBACP,IAIG,MAAMM,UAAsBhC,EAQjCiC,YAAAA,GACE,OAAOH,EAAAA,aAAaC,cAClBtuH,KAAKyuH,QACL36G,EACAy4G,EAAO0B,qBACP,EAEJ,CAZAljG,WAAAA,CAAY0jG,GACVl2F,QAHFk2F,EAAAA,KAAAA,eAAAA,GAIEzuH,KAAKyuH,QAAUA,CACjB,4BC3KFtyH,EAAOC,QAAU,CAAC,gHCKlB,MAAMsyH,EAAuB56G,IAC3B,MAAM,aACJumC,EAAY,QACZyG,EAAO,WACPp7B,GACE5R,EACJ,MAAO,CACL,CAACumC,GAAe,CACde,QAAS,OACTlE,SAAU,WACV3b,QAAS,cACTozF,IAAK76G,EAAMotF,SACXnlD,WAAY,SACZ2sD,eAAgB,SAChBhjF,aACA2xB,WAAY,SACZ6J,UAAW,SACX0tE,gBAAiB,OACjBjwE,WAAY,cACZH,OAAQ,IAAG,QAAK1qC,EAAM6S,cAAc7S,EAAM2qC,uBAC1CjD,OAAQ,UACRC,WAAY,OAAO3nC,EAAMysC,qBAAqBzsC,EAAM0sC,kBACpD/I,WAAY,OACZo3E,YAAa,eACb50E,MAAOnmC,EAAMsT,UACb,iBAAkB,CAChB02B,cAAe,QAEjB,SAAU,CAERviB,QAAS,eAEX,CAAC,GAAG8e,UAAsB,CACxBH,WAAY,GAEd,MAAO,CACLD,MAAO,gBAET,mBAAoBt+C,OAAOqZ,OAAO,CAAC,GAAG,QAAclB,IACpD,CAAC,IAAIumC,qCAAiD,CACpDy0E,cAAe,UAEjB,CAAC,IAAIz0E,+BAA0CyG,MAAa,CAC1DM,gBAAiB,UACjB0tE,cAAe,UAGjB,aAAc,CACZnjC,cAAe,gBAGpB,EAEGojC,EAA4B,CAACC,EAAQC,EAAYC,KAAgB,CACrE,CAAC,wBAAwBF,eAAqB,CAC5C,UAAWC,EACX,WAAYC,KAIVC,EAAuBr7G,IAAS,CACpCkuF,SAAUluF,EAAMuU,cAChBs0B,mBAAoB,EACpBsB,iBAAkB,EAClB/C,aAAc,QAEVk0E,EAAsBt7G,IAAS,CACnConC,aAAcpnC,EAAMuU,cACpBs0B,mBAAoB7oC,EAAM8oC,KAAK9oC,EAAMuU,eAAe24B,IAAI,GAAG1sB,QAC3D2pB,iBAAkBnqC,EAAM8oC,KAAK9oC,EAAMuU,eAAe24B,IAAI,GAAG1sB,UAErD+6F,EAAmBv7G,IAAS,CAChC0nC,OAAQ,cACRkD,YAAa5qC,EAAMsS,oBACnB6zB,MAAOnmC,EAAM4oC,kBACbiC,WAAY7qC,EAAM2oC,yBAClBpB,UAAW,SAEPi0E,EAAsB,CAACN,EAAQrwE,EAAY4wE,EAAW7wE,EAAa8wE,EAAmBppG,EAAqB6oG,EAAYC,KAAgB,CAC3I,CAAC,IAAIF,sBAA4BrzH,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC3DilC,MAAOs1E,QAAarzH,EACpByiD,aACAD,YAAaA,QAAexiD,EAC5Bm/C,UAAW,QACV0zE,EAA0BC,EAAQrzH,OAAOqZ,OAAO,CACjD2pC,cACCswE,GAAatzH,OAAOqZ,OAAO,CAC5B2pC,cACCuwE,KAAgB,CACjB,aAAc,CACZ1zE,OAAQ,cACRvB,MAAOu1E,QAAqBtzH,EAC5BwiD,YAAat4B,QAAuBlqB,OAIpCuzH,EAA8B37G,IAAS,CAC3C,CAAC,gBAAgBA,EAAMumC,yBAA0B1+C,OAAOqZ,OAAO,CAAC,EAAGq6G,EAAiBv7G,MAEhF47G,EAA6B57G,IAAS,CAC1C,CAAC,gBAAgBA,EAAMumC,yBAA0B,CAC/CmB,OAAQ,cACRvB,MAAOnmC,EAAM4oC,qBAIXizE,EAAwB,CAAC77G,EAAOm7G,EAAYC,EAAaz1B,KAC7D,MACMm2B,EADiBn2B,GAAW,CAAC,OAAQ,QAAQljF,SAASkjF,GACZi2B,EAA6BD,EAC7E,OAAO9zH,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG46G,EAAuB97G,IAASi7G,EAA0Bj7G,EAAMumC,aAAc40E,EAAYC,GAAa,EAE1IW,EAAsB,CAAC/7G,EAAOy7G,EAAW5wE,EAAYswE,EAAYC,KAAgB,CACrF,CAAC,IAAIp7G,EAAMumC,8BAA+B1+C,OAAOqZ,OAAO,CACtDilC,MAAOs1E,EACP5wE,cACCgxE,EAAsB77G,EAAOm7G,EAAYC,MAExCY,EAA+B,CAACh8G,EAAO4qC,EAAaC,EAAYswE,EAAYC,KAAgB,CAChG,CAAC,IAAIp7G,EAAMumC,mCAAmCvmC,EAAMumC,+BAAgC1+C,OAAOqZ,OAAO,CAChG0pC,cACAC,cACCgxE,EAAsB77G,EAAOm7G,EAAYC,MAExCa,EAAuBj8G,IAAS,CACpC,CAAC,IAAIA,EAAMumC,+BAAgC,CACzC0oD,YAAa,YAGXitB,EAAuB,CAACl8G,EAAO6qC,EAAYswE,EAAYC,KAAgB,CAC3E,CAAC,IAAIp7G,EAAMumC,+BAAgC1+C,OAAOqZ,OAAO,CACvDqmC,UAAW,OACXsD,cACCgxE,EAAsB77G,EAAOm7G,EAAYC,MAExCe,EAAyB,CAACn8G,EAAOy7G,EAAW91B,EAASw1B,EAAYC,KAAgB,CACrF,CAAC,IAAIp7G,EAAMumC,wBAAwBo/C,KAAY99F,OAAOqZ,OAAO,CAC3DilC,MAAOs1E,EACPl0E,UAAW,QACVs0E,EAAsB77G,EAAOm7G,EAAYC,EAAaz1B,MAGrDy2B,EAAwBp8G,GAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC3GilC,MAAOnmC,EAAM2T,aACb4zB,UAAWvnC,EAAM6R,eAChBkqG,EAAoB/7G,EAAOA,EAAM0R,eAAgB1R,EAAM2R,aAAc,CACtEk5B,WAAY7qC,EAAMq8G,mBACjB,CACDxxE,WAAY7qC,EAAMs8G,sBACfL,EAAqBj8G,IAASk8G,EAAqBl8G,EAAOA,EAAM0T,kBAAmB,CACtFm3B,WAAY7qC,EAAMisC,oBACjB,CACDpB,WAAY7qC,EAAMu8G,aACfJ,EAAuBn8G,EAAOA,EAAMqT,cAAe,OAAQ,CAC9D8yB,MAAOnmC,EAAM+1C,eACblL,WAAY7qC,EAAMoT,aACjB,CACD+yB,MAAOnmC,EAAMg2C,mBACVwlE,EAAoBx7G,EAAMumC,aAAcvmC,EAAM0S,QAAS1S,EAAMwS,kBAAmBxS,EAAM2S,wBAAyB3S,EAAM4oC,kBAAmB5oC,EAAMuS,cAC7IiqG,EAAwBx8G,GAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC3GilC,MAAOnmC,EAAMsoC,aACbf,UAAWvnC,EAAMgS,eAChBgqG,EAA6Bh8G,EAAOA,EAAMsoC,aAActoC,EAAMyS,iBAAkB,CACjF0zB,MAAOnmC,EAAMy8G,sBACb7xE,YAAa5qC,EAAMmT,kBACnB03B,WAAY7qC,EAAMyS,kBACjB,CACD0zB,MAAOnmC,EAAM08G,uBACb9xE,YAAa5qC,EAAMoU,mBACnBy2B,WAAY7qC,EAAMyS,oBACfwpG,EAAqBj8G,IAASk8G,EAAqBl8G,EAAOA,EAAM28G,eAAgB,CACnF9xE,WAAY7qC,EAAM48G,qBACjB,CACD/xE,WAAY7qC,EAAM62C,sBACfslE,EAAuBn8G,EAAOA,EAAM41C,UAAW,OAAQ,CAC1DzP,MAAOnmC,EAAMy8G,sBACb5xE,WAAY7qC,EAAM28G,gBACjB,CACDx2E,MAAOnmC,EAAM08G,uBACb7xE,WAAY7qC,EAAM62C,sBACf2kE,EAAoBx7G,EAAMumC,aAAcvmC,EAAM0S,QAAS1S,EAAMsoC,aAActoC,EAAMsoC,aAActoC,EAAM4oC,kBAAmB5oC,EAAMuS,YAAa,CAC9I4zB,MAAOnmC,EAAMmT,kBACby3B,YAAa5qC,EAAMmT,mBAClB,CACDgzB,MAAOnmC,EAAMoU,mBACbw2B,YAAa5qC,EAAMoU,sBAEfyoG,EAAoB78G,GAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CACnIilC,MAAOnmC,EAAMqrC,WACb9D,UAAWvnC,EAAMkS,cAChB6pG,EAAoB/7G,EAAOA,EAAMqS,YAAarS,EAAMqrC,WAAY,CACjER,WAAY7qC,EAAMsrC,iBACjB,CACDT,WAAY7qC,EAAM88G,oBACfd,EAA6Bh8G,EAAOA,EAAMqrC,WAAYrrC,EAAMyS,iBAAkB,CACjF0zB,MAAOnmC,EAAMsrC,gBACbV,YAAa5qC,EAAM+8G,uBAClB,CACD52E,MAAOnmC,EAAM88G,iBACblyE,YAAa5qC,EAAM88G,oBAChBb,EAAqBj8G,IAASk8G,EAAqBl8G,EAAOA,EAAMksC,aAAc,CACjFrB,WAAY7qC,EAAMg9G,yBACjB,CACDnyE,WAAY7qC,EAAMi9G,sBACfd,EAAuBn8G,EAAOA,EAAMqrC,WAAY,OAAQ,CAC3DlF,MAAOnmC,EAAMsrC,gBACbT,WAAY7qC,EAAMksC,cACjB,CACD/F,MAAOnmC,EAAMsrC,gBACbT,WAAY7qC,EAAMi9G,sBACfd,EAAuBn8G,EAAOA,EAAMqrC,WAAY,OAAQ,CAC3DlF,MAAOnmC,EAAMsrC,iBACZ,CACDnF,MAAOnmC,EAAM88G,oBACVtB,EAAoBx7G,EAAMumC,aAAcvmC,EAAM0S,QAAS1S,EAAMqrC,WAAYrrC,EAAMqrC,WAAYrrC,EAAM4oC,kBAAmB5oC,EAAMuS,YAAa,CAC1I4zB,MAAOnmC,EAAMsrC,gBACbV,YAAa5qC,EAAMsrC,iBAClB,CACDnF,MAAOnmC,EAAM88G,iBACblyE,YAAa5qC,EAAM88G,oBAEfI,EAAsBl9G,IAC1B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAAC,GAAGumC,mBAA+B61E,EAAsBp8G,GACzD,CAAC,GAAGumC,mBAA+Bi2E,EAAsBx8G,GACzD,CAAC,GAAGumC,qBAAiCs2E,EAAkB78G,GACxD,EAGGm9G,EAA2Bn9G,GAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG86G,EAA6Bh8G,EAAOA,EAAM6T,mBAAoB7T,EAAM4T,UAAW,CACnLuyB,MAAOnmC,EAAMgU,kBACb42B,YAAa5qC,EAAMiU,wBACnB42B,WAAY7qC,EAAM+T,gBACjB,CACDoyB,MAAOnmC,EAAMmU,mBACby2B,YAAa5qC,EAAMqU,yBACnBw2B,WAAY7qC,EAAMkU,mBACfioG,EAAuBn8G,EAAOA,EAAMqT,cAAe,OAAQ,CAC9D8yB,MAAOnmC,EAAMuT,mBACbs3B,WAAY7qC,EAAMyT,aACjB,CACD0yB,MAAOnmC,EAAMwT,oBACbq3B,WAAY7qC,EAAMo9G,qBACfrB,EAAoB/7G,EAAOA,EAAM2E,aAAc3E,EAAMsoC,aAAc,CACtEuC,WAAY7qC,EAAMmT,kBAClBgzB,MAAOnmC,EAAM2E,cACZ,CACDkmC,WAAY7qC,EAAMoU,mBAClB+xB,MAAOnmC,EAAM2E,gBACVw3G,EAAuBn8G,EAAOA,EAAM41C,UAAW,OAAQ,CAC1DzP,MAAOnmC,EAAM+1C,eACblL,WAAY7qC,EAAMoT,aACjB,CACD+yB,MAAOnmC,EAAMg2C,mBAGTqnE,EAAiB,SAAUr9G,GAC/B,IAAIu+C,EAAYt0D,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,GACpF,MAAM,aACJs8C,EAAY,cACZhyB,EAAa,SACbpD,EAAQ,WACRi1B,EAAU,aACVgB,EAAY,wBACZ52B,EAAuB,QACvBw8B,EAAO,sBACPv8B,GACEzQ,EACEs9G,EAAc,GAAG/2E,cACvB,MAAO,CAAC,CACN,CAACgY,GAAY,CACXptC,WACAi1B,aACAqD,OAAQl1B,EACR2xB,QAAS,IAAG,QAAKz1B,OAA0B,QAAKD,KAChD42B,eACA,CAAC,IAAIk2E,KAAgB,CACnBzzE,MAAOt1B,EACPlE,cAAe,EAEf,CAAC,IAAIk2B,kBAA8B,CACjCyB,KAAM,QAER,CAAC,IAAIzB,WAAuB,CAC1BsD,MAAO,QAET,CAACmD,GAAU,CACT77B,SAAUnR,EAAM0Q,yBAIpB,CAAC,IAAI61B,aAAyB,CAC5BkH,QAASztC,EAAMu9G,eACf71E,OAAQ,WAEV,CAAC,GAAGnB,kBAA8B,CAChCoB,WAAY,SAAS3nC,EAAM4nC,sBAAsB5nC,EAAM0sC,4BAA4B1sC,EAAM4nC,sBAAsB5nC,EAAM0sC,qBAK3H,CACE,CAAC,GAAGnG,IAAeA,WAAsBgY,KAAc88D,EAAqBr7G,IAC3E,CACD,CAAC,GAAGumC,IAAeA,UAAqBgY,KAAc+8D,EAAoBt7G,IAE9E,EACMw9G,EAAyBx9G,IAC7B,MAAMy9G,GAAY,QAAWz9G,EAAO,CAClCmR,SAAUnR,EAAMkR,gBAChBk1B,WAAYpmC,EAAMuR,oBAEpB,OAAO8rG,EAAeI,EAAWz9G,EAAMumC,aAAa,EAEhDm3E,EAA0B19G,IAC9B,MAAM29G,GAAa,QAAW39G,EAAO,CACnCuU,cAAevU,EAAMyU,gBACrBtD,SAAUnR,EAAMoR,kBAChBg1B,WAAYpmC,EAAMwR,oBAClB00B,QAASlmC,EAAM6tC,UACfr9B,wBAAyBxQ,EAAM+S,gBAC/BtC,sBAAuBzQ,EAAMwU,eAC7B4yB,aAAcpnC,EAAM6nC,eACpBn3B,uBAAwB1Q,EAAMgT,iBAEhC,OAAOqqG,EAAeM,EAAY,GAAG39G,EAAMumC,kBAAkB,EAEzDq3E,EAA0B59G,IAC9B,MAAM69G,GAAa,QAAW79G,EAAO,CACnCuU,cAAevU,EAAM2U,gBACrBxD,SAAUnR,EAAMqR,kBAChB+0B,WAAYpmC,EAAMyR,oBAClBjB,wBAAyBxQ,EAAM8S,gBAC/BrC,sBAAuBzQ,EAAM0U,eAC7B0yB,aAAcpnC,EAAMqnC,eACpB32B,uBAAwB1Q,EAAMiT,iBAEhC,OAAOoqG,EAAeQ,EAAY,GAAG79G,EAAMumC,kBAAkB,EAEzDu3E,EAAsB99G,IAC1B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAACumC,GAAe,CACd,CAAC,IAAIA,WAAuB,CAC1BsD,MAAO,SAGZ,EAGH,GAAe,QAAc,UAAU7pC,IACrC,MAAM+9G,GAAc,OAAa/9G,GACjC,MAAO,CAEP46G,EAAqBmD,GAErBP,EAAuBO,GAAcL,EAAwBK,GAAcH,EAAwBG,GAEnGD,EAAoBC,GAEpBb,EAAoBa,GAEpBZ,EAAyBY,IAEzB,OAAcA,GAAa,GAC1B,IAAuB,CACxBzuE,SAAU,CACR19B,YAAY,EACZL,mBAAmB,EACnBC,qBAAqB,EACrBC,qBAAqB,iBC3XzB,IAAIusG,EAAe,KAiBnB31H,EAAOC,QAPP,SAAyBqG,GAGvB,IAFA,IAAIgR,EAAQhR,EAAOtC,OAEZsT,KAAWq+G,EAAalkG,KAAKnrB,EAAO2mC,OAAO31B,MAClD,OAAOA,CACT,sJCRe,SAASs+G,EAAWj+G,GAEjC,EAAAk+G,oBAAoBC,KAAO,EAAAD,oBAAoBE,QAC/C,EAAAC,eAAeF,KAAO,EAAAE,eAAeD,QACrC,MAAME,EAAgBz2H,OAAOwK,KAAK,KAAqBpF,KAAIsxH,IACzD,MAAMx5G,EAAS/E,EAAMu+G,KAAc,EAAAL,oBAAoBK,GAAY,EAAAF,eAAeE,IAAY,IAAAr+F,UAASlgB,EAAMu+G,IAC7G,OAAO,IAAI/jH,MAAM,IAAIqtB,KAAK,GAAGt7B,QAAO,CAACogB,EAAMsgB,EAAGj9B,KAC5C2c,EAAK,GAAG4xG,KAAYvuH,EAAI,KAAO+U,EAAO/U,GACtC2c,EAAK,GAAG4xG,IAAWvuH,EAAI,KAAO+U,EAAO/U,GAC9B2c,IACN,CAAC,EAAE,IACLpgB,QAAO,CAACogB,EAAM6xG,IAER32H,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGyL,GAAO6xG,IAE7C,CAAC,GACJ,OAAO32H,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGlB,GAAQs+G,IAAgB,OAAiBt+G,EAAO,CAC3Jy+G,sBAAqB,IACrBC,6BAA4B,QACzB,OAAgB1+G,EAAMmR,YAAY,OAAgBnR,KAAS,OAAiBA,KAAS,OAAkBA,GAC9G,iCC3BAnY,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IACtD,IACIo2H,EADU,EAAQ,QACkBC,gBAAgB,EAAQ,SAKhEt2H,EAAA,QAJ+B,SAAUu2H,GAErC,OADaA,EAAK/2H,UACF+2H,EAAOF,EAA0BpwG,QAAQswG,EAC7D,+BCLAh3H,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mYAAuY,KAAQ,SAAU,MAAS,0JCI3kBw2H,EAAa,kBACbC,EAAY,gBAIZC,EAAqB,uBA8DhC,QA5BgC,gBAAoB,CAClDr+D,aAAc,MACd9xC,MAnCK,WACL,IAAIowG,EAAoB91H,KAAKC,SAASnB,SAAS,IAAI2H,MAAM,GAIzD,GAAwB,oBAAbyvC,UAA4BA,SAAS9d,MAAQ8d,SAASgD,KAAM,CACrE,IAAIu5D,EAASv8D,SAASgD,KAAKqyB,iBAAiB,SAASjhE,OAAOsrH,EAAW,OAAS,GAC5EG,EAAa7/E,SAAS9d,KAAK29F,WAC/B1kH,MAAMwqB,KAAK42E,GAAQlxG,SAAQ,SAAUw4C,GACnCA,EAAM87E,GAAsB97E,EAAM87E,IAAuBC,EAGrD/7E,EAAM87E,KAAwBC,GAChC5/E,SAAS9d,KAAK49F,aAAaj8E,EAAOg8E,EAEtC,IAGA,IAAIr6D,EAAY,CAAC,EACjBrqD,MAAMwqB,KAAKqa,SAASq1B,iBAAiB,SAASjhE,OAAOsrH,EAAW,OAAOr0H,SAAQ,SAAUw4C,GACvF,IAGQk8E,EAHJC,EAAOn8E,EAAMywB,aAAaorD,GAC1Bl6D,EAAUw6D,GACRn8E,EAAM87E,KAAwBC,IAEW,QAA1CG,EAAoBl8E,EAAMo8E,kBAA8C,IAAtBF,GAAgCA,EAAkBz6E,YAAYzB,IAGnH2hB,EAAUw6D,IAAQ,CAEtB,GACF,CACA,OAAO,IAAI,IAAYJ,EACzB,CAGSM,GACPv7D,cAAc,mCChDhB,IAAIre,EAAa,EAAQ,QACrB0hB,EAAc,EAAQ,QACtBm4D,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCC,EAAW,EAAQ,OAEnBjsH,EAAS4zD,EAAY,GAAG5zD,QAG5BpL,EAAOC,QAAUq9C,EAAW,UAAW,YAAc,SAAiB6hB,GACpE,IAAIn1D,EAAOmtH,EAA0B3oG,EAAE6oG,EAASl4D,IAC5Ch4C,EAAwBiwG,EAA4B5oG,EACxD,OAAOrH,EAAwB/b,EAAOpB,EAAMmd,EAAsBg4C,IAAOn1D,CAC3E,oBCdAhK,EAAOC,QAAU,IAA0B,qECC3C,IAAI2pE,EAAc,EAAQ,QACtBC,EAAQ,EAAQ,QAChB9iD,EAAgB,EAAQ,QAG5B/mB,EAAOC,SAAW2pE,IAAgBC,GAAM,WAEtC,OAES,IAFFrqE,OAAO8lB,eAAeyB,EAAc,OAAQ,IAAK,CACtD7R,IAAK,WAAc,OAAO,CAAG,IAC5B/Q,CACL,wFCIA,MAAMmzH,GAAsBzzC,EAAAA,EAAAA,eAAwC,CAClE0zC,cAAc,EACdC,qBAAiBz3H,IAcN03H,EAA8B,EACzCh8G,eAIA,MAAO87G,EAAcC,IAAmBr7B,EAAAA,EAAAA,WAAS,GAE3CoO,GAAez7C,EAAAA,EAAAA,UACnB,KAAO,CAAEyoE,eAAcC,qBACvB,CAACD,IAGH,OACE,SAACD,EAAoB1qG,SAAQ,CAAC1sB,MAAOqqG,WAClC9uF,KAaMi8G,EAAyB,KACpBtiE,EAAAA,EAAAA,YAAWkiE,gCCzD7B93H,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uVAA2V,KAAQ,eAAgB,MAAS,4DC8B7hB,QAHA,SAAiC03H,EAAmBC,GAClD,OAAOD,GA/BoBC,KAC3B,MACMC,EAAe,CACnBl5E,SAAU,CACRyzB,SAAS,EACTC,SAAS,EACTylD,QAAQ,GAEVC,WAPmC,WAAlBH,EAA6B,SAAW,UAQzDI,cAAc,GAEhB,MAAO,CACLtlD,WAAYlzE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGg/G,GAAe,CACzDrlD,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,EAAG,KAEd4f,YAAanzE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGg/G,GAAe,CAC1DrlD,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,EAAG,KAEdwf,QAAS/yE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGg/G,GAAe,CACtDrlD,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,GAAI,KAEf0f,SAAUjzE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGg/G,GAAe,CACvDrlD,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,GAAI,KAEhB,EAG2BklE,CAAqBL,EACnD,oBChCA,IAAIM,EAAmB,EAAQ,QAC3BC,EAAY,EAAQ,QACpBj4B,EAAW,EAAQ,QAGnBE,EAAmBF,GAAYA,EAASG,aAmBxCA,EAAeD,EAAmB+3B,EAAU/3B,GAAoB83B,EAEpEl4H,EAAOC,QAAUogG,cCDjBrgG,EAAOC,QANP,SAAkBC,GAChB,OAAO,WACL,OAAOA,CACT,CACF,oFCvBO,SAASk4H,EACdC,EACAxkB,EACAC,EACAwkB,GAAa,GAEb,MAAO,CAAC5kH,EAAO3Q,KAEb,QADuChD,IAAV2T,EACF,CACzB,GAAImgG,IAAS9wG,EAAO8wG,KAAM,OAAOngG,EACjC,GAAIogG,IAIC,CAAC/wG,EAAOw1H,QAASx1H,EAAOy1H,OAAQz1H,EAAO+wG,aAAa15F,SACnD05F,GAGF,OAAOpgG,CAGb,CAGA,OACE4kH,IACCxkB,IACA/wG,EAAO+wG,aAAe/wG,EAAOw1H,SAAWx1H,EAAOy1H,QAEzC9kH,EAGF2kH,EAAgB3kH,EAAO3Q,EAAO,CAEzC,oCClCA/C,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,qECC3C,IAAIw4H,EAAqB,EAAQ,QAG7BC,EAFc,EAAQ,QAEGttH,OAAO,SAAU,aAK9CnL,EAAQuuB,EAAIhvB,OAAOqyC,qBAAuB,SAA6BqD,GACrE,OAAOujF,EAAmBvjF,EAAGwjF,EAC/B,oBCXA14H,EAAOC,QAAU,IAA0B,wDCA3C,IAAI04H,EAAW,EAAQ,QACnBC,EAAc,EAAQ,OACtBC,EAAc,EAAQ,QAU1B,SAAS14G,EAASC,GAChB,IAAI9I,GAAS,EACTtT,EAAmB,MAAVoc,EAAiB,EAAIA,EAAOpc,OAGzC,IADAH,KAAKwc,SAAW,IAAIs4G,IACXrhH,EAAQtT,GACfH,KAAKiV,IAAIsH,EAAO9I,GAEpB,CAGA6I,EAAS1gB,UAAUqZ,IAAMqH,EAAS1gB,UAAUiG,KAAOkzH,EACnDz4G,EAAS1gB,UAAU6Z,IAAMu/G,EAEzB74H,EAAOC,QAAUkgB,uFCvBbtD,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,21BAA41B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yEAAyE,mDAAmD,MAAQ,GAAG,SAAW,2WAA2W,eAAiB,CAAC,2oCAA2oC,wIAAwI,WAAa,MAE/sF,6pBCMO,MAAM+nH,EAAU,sBACrBvpB,EAAa,eACbwpB,GAEY,EADTvpB,oXAAAA,CAAAA,EAAAA,CAFHD,gBACAwpB,mBAGA,MAAMC,GAAYv3D,EAAAA,EAAAA,QAAuB,OAEzCw3D,EAAAA,EAAAA,kBAAgB,KACVF,GAEFC,EAAUrwH,QAASowH,eAAe,CAAEG,SAAU,UAChD,GAEC,IAEH,MAAMr3E,EAAU0tD,GACd,SAACD,EAAAA,KAAiBA,EAAAA,CAAAA,EAAKE,cAAAA,CAAYD,cAAeA,uVAElD,SAAC4pB,EAAAA,EAAoBA,EAAAA,CAAAA,EAAK3pB,YAG5B,OAAOupB,GACL,iCACE,SAACl0E,MAAAA,CAAIhhC,IAAKm1G,IACTn3E,KAGHA,CAAO,oBCxCX7hD,EAAOC,QAAU,IAA0B,kHCQ3C,QANe,SAAkB+zB,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GAC9D,IAAIujB,EAAS,GACT9yB,EAAO+O,MAAMie,QAAQlwB,GAAS,SAAU,OAAQA,GACpD,IAAMmyB,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAASvP,GACrD4W,EAASkc,EACX,uHCGA,QARsB,SAAUnnB,EAAQwd,GACpC,IAAI6sG,GAAe,UACnB,IAAAv3D,YAAU,WACN,IAAKu3D,EACD,OAAOrqH,GAEf,GAAGwd,EACP,oBCTAvsB,EAAOC,QAAU,IAA0B,kHCsD3C,QA5CA,SAAiBo5H,EAAMC,GACrB,IAAIxiG,EAAUl1B,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAEzE23H,EAAS,IAAIhhG,IAuCjB,OAtCA,SAASihG,EAAUr1H,EAAGC,GACpB,IAAIgqE,EAAQxsE,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,EAC5E63H,EAAWF,EAAOjgH,IAAInV,GAE1B,IADA,SAASs1H,EAAU,6CACfA,EACF,OAAO,EAET,GAAIt1H,IAAMC,EACR,OAAO,EAET,GAAI0yB,GAAWs3C,EAAQ,EACrB,OAAO,EAETmrD,EAAOzgH,IAAI3U,GACX,IAAIu1H,EAAWtrD,EAAQ,EACvB,GAAIj8D,MAAMie,QAAQjsB,GAAI,CACpB,IAAKgO,MAAMie,QAAQhsB,IAAMD,EAAEH,SAAWI,EAAEJ,OACtC,OAAO,EAET,IAAK,IAAI2D,EAAI,EAAGA,EAAIxD,EAAEH,OAAQ2D,IAC5B,IAAK6xH,EAAUr1H,EAAEwD,GAAIvD,EAAEuD,GAAI+xH,GACzB,OAAO,EAGX,OAAO,CACT,CACA,GAAIv1H,GAAKC,GAAoB,YAAf,OAAQD,IAAkC,YAAf,OAAQC,GAAiB,CAChE,IAAI4F,EAAOxK,OAAOwK,KAAK7F,GACvB,OAAI6F,EAAKhG,SAAWxE,OAAOwK,KAAK5F,GAAGJ,QAG5BgG,EAAKua,OAAM,SAAUhiB,GAC1B,OAAOi3H,EAAUr1H,EAAE5B,GAAM6B,EAAE7B,GAAMm3H,EACnC,GACF,CAEA,OAAO,CACT,CACOF,CAAUH,EAAMC,EACzB,oBCrDA,IAAIh0G,EAAiB,EAAQ,QAwB7BtlB,EAAOC,QAbP,SAAyBwnB,EAAQllB,EAAKrC,GACzB,aAAPqC,GAAsB+iB,EACxBA,EAAemC,EAAQllB,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASrC,EACT,UAAY,IAGdunB,EAAOllB,GAAOrC,CAElB,oBCtBAF,EAAOC,QAAU,IAA0B,uLCiE3C,QAzDa,SAAgB+G,GAC3B,IAAI82C,EAAQ92C,EAAK82C,MACf+S,EAAW7pD,EAAK6pD,SAChBqF,EAAYlvD,EAAKkvD,UACjBC,EAAmBnvD,EAAKmvD,iBACxBK,EAAWxvD,EAAKwvD,SACdmjE,GAAY,IAAAl4D,UACZm4D,GAAe,IAAAn4D,UACfo4D,GAAW,IAAAp4D,QAAO3jB,GAClBg8E,GAAe,SAAS,SAAUC,GACpC,IAAIC,GAAY,QAAe,CAC7BjnE,OAAQgnE,EACRE,UAAWL,EACXz+C,aAAcw+C,EACd77E,MAAOA,IAET+7E,EAASlxH,QAAUqxH,EACnBnpE,EAASmpE,EACX,IACIE,GAAgB,OAAa,CAC7Bp8E,MAAOA,EACPq9B,aAAcw+C,EACdM,UAAWL,EACX/iF,UAAW,WACT,OAAO,QAAWiH,EACpB,EACAg8E,aAAcA,EACdK,qBAAsB,WACpB,OAAOhkE,aAA2D,EAASA,EAAiB0jE,EAASlxH,QACvG,EACAyxH,aAAc5jE,IAEhB6jE,GAAiB,OAAeH,EAAe,GAC/CnnE,EAASsnE,EAAe,GACxBC,EAAkBD,EAAe,GACnC,OAAoB,gBAAoB,MAAO,CAC7Cx2G,IAAK81G,EACLn+G,UAAW,GAAGpQ,OAAO8qD,EAAW,WAChC4sD,YAAawX,EACbC,aAAcD,GACA,gBAAoB,IAAS,CAC3CpkE,UAAWA,GACG,gBAAoB,IAAW,CAC7Cx4B,EAAGq1B,EAAOr1B,EACVle,EAAGuzC,EAAOvzC,EACVqE,IAAK+1G,GACS,gBAAoB,IAAS,CAC3C97E,MAAOA,EAAMoZ,cACbhB,UAAWA,KACK,gBAAoB,MAAO,CAC3C16C,UAAW,GAAGpQ,OAAO8qD,EAAW,eAChCrb,MAAO,CACLgE,gBAAiB,OAAOzzC,OAAO0yC,EAAMw3C,QAAQp2E,EAAG,eAChDuzG,gBAAiB,kGAGvB,oBChEAzyH,EAAOC,QAAU,IAA0B,mGCO3C,IAAIu6H,EAAU,WACV,GAAmB,oBAARx4H,IACP,OAAOA,IASX,SAASy4H,EAASntH,EAAK/K,GACnB,IAAI/B,GAAU,EAQd,OAPA8M,EAAIrH,MAAK,SAAUuuB,EAAOld,GACtB,OAAIkd,EAAM,KAAOjyB,IACb/B,EAAS8W,GACF,EAGf,IACO9W,CACX,CACA,OAAsB,WAClB,SAASk6H,IACL72H,KAAK82H,YAAc,EACvB,CAsEA,OArEAn7H,OAAO8lB,eAAeo1G,EAAQj7H,UAAW,OAAQ,CAI7CyV,IAAK,WACD,OAAOrR,KAAK82H,YAAY32H,MAC5B,EACAuhB,YAAY,EACZQ,cAAc,IAMlB20G,EAAQj7H,UAAUyV,IAAM,SAAU3S,GAC9B,IAAI+U,EAAQmjH,EAAS52H,KAAK82H,YAAap4H,GACnCiyB,EAAQ3wB,KAAK82H,YAAYrjH,GAC7B,OAAOkd,GAASA,EAAM,EAC1B,EAMAkmG,EAAQj7H,UAAU+C,IAAM,SAAUD,EAAKrC,GACnC,IAAIoX,EAAQmjH,EAAS52H,KAAK82H,YAAap4H,IAClC+U,EACDzT,KAAK82H,YAAYrjH,GAAO,GAAKpX,EAG7B2D,KAAK82H,YAAYj1H,KAAK,CAACnD,EAAKrC,GAEpC,EAKAw6H,EAAQj7H,UAAUoD,OAAS,SAAUN,GACjC,IAAIi8B,EAAU36B,KAAK82H,YACfrjH,EAAQmjH,EAASj8F,EAASj8B,IACzB+U,GACDknB,EAAQoY,OAAOt/B,EAAO,EAE9B,EAKAojH,EAAQj7H,UAAU6Z,IAAM,SAAU/W,GAC9B,SAAUk4H,EAAS52H,KAAK82H,YAAap4H,EACzC,EAIAm4H,EAAQj7H,UAAUoP,MAAQ,WACtBhL,KAAK82H,YAAY/jF,OAAO,EAC5B,EAMA8jF,EAAQj7H,UAAU4C,QAAU,SAAU2X,EAAUgJ,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAI43G,EAAK,EAAGryG,EAAK1kB,KAAK82H,YAAaC,EAAKryG,EAAGvkB,OAAQ42H,IAAM,CAC1D,IAAIpmG,EAAQjM,EAAGqyG,GACf5gH,EAAS5Z,KAAK4iB,EAAKwR,EAAM,GAAIA,EAAM,GACvC,CACJ,EACOkmG,CACX,CA1EqB,EA2ExB,CAjGa,GAsGVG,EAA8B,oBAAXl/E,QAA8C,oBAAb3E,UAA4B2E,OAAO3E,WAAaA,SAGpG8jF,OACsB,IAAX,EAAArsG,GAA0B,EAAAA,EAAO3tB,OAASA,KAC1C,EAAA2tB,EAES,oBAATN,MAAwBA,KAAKrtB,OAASA,KACtCqtB,KAEW,oBAAXwtB,QAA0BA,OAAO76C,OAASA,KAC1C66C,OAGJ2mB,SAAS,cAATA,GASPy4D,EACqC,mBAA1B1uE,sBAIAA,sBAAsBx5C,KAAKioH,GAE/B,SAAU9gH,GAAY,OAAOiyC,YAAW,WAAc,OAAOjyC,EAAS6N,KAAKC,MAAQ,GAAG,IAAO,GAAK,EAwEzGkzG,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAInCC,EAA0C,WAM1C,SAASA,IAMLt3H,KAAKu3H,YAAa,EAMlBv3H,KAAKw3H,sBAAuB,EAM5Bx3H,KAAKy3H,mBAAqB,KAM1Bz3H,KAAK03H,WAAa,GAClB13H,KAAK23H,iBAAmB33H,KAAK23H,iBAAiB3oH,KAAKhP,MACnDA,KAAKi8G,QAjGb,SAAmB9lG,EAAU81G,GACzB,IAAI2L,GAAc,EAAOC,GAAe,EAAOC,EAAe,EAO9D,SAASC,IACDH,IACAA,GAAc,EACdzhH,KAEA0hH,GACAG,GAER,CAQA,SAASC,IACLf,EAAwBa,EAC5B,CAMA,SAASC,IACL,IAAIE,EAAYl0G,KAAKC,MACrB,GAAI2zG,EAAa,CAEb,GAAIM,EAAYJ,EA7CN,EA8CN,OAMJD,GAAe,CACnB,MAEID,GAAc,EACdC,GAAe,EACfzvE,WAAW6vE,EAAiBhM,GAEhC6L,EAAeI,CACnB,CACA,OAAOF,CACX,CA4CuBG,CAASn4H,KAAKi8G,QAAQjtG,KAAKhP,MAzC9B,GA0ChB,CA+JA,OAxJAs3H,EAAyB17H,UAAUw8H,YAAc,SAAUz4H,IACjDK,KAAK03H,WAAWv5F,QAAQx+B,IAC1BK,KAAK03H,WAAW71H,KAAKlC,GAGpBK,KAAKu3H,YACNv3H,KAAKq4H,UAEb,EAOAf,EAAyB17H,UAAU08H,eAAiB,SAAU34H,GAC1D,IAAI44H,EAAYv4H,KAAK03H,WACjBjkH,EAAQ8kH,EAAUp6F,QAAQx+B,IAEzB8T,GACD8kH,EAAUxlF,OAAOt/B,EAAO,IAGvB8kH,EAAUp4H,QAAUH,KAAKu3H,YAC1Bv3H,KAAKw4H,aAEb,EAOAlB,EAAyB17H,UAAUqgH,QAAU,WACnBj8G,KAAKy4H,oBAIvBz4H,KAAKi8G,SAEb,EASAqb,EAAyB17H,UAAU68H,iBAAmB,WAElD,IAAIC,EAAkB14H,KAAK03H,WAAW5kH,QAAO,SAAUnT,GACnD,OAAOA,EAASg5H,eAAgBh5H,EAASi5H,WAC7C,IAOA,OADAF,EAAgBl6H,SAAQ,SAAUmB,GAAY,OAAOA,EAASk5H,iBAAmB,IAC1EH,EAAgBv4H,OAAS,CACpC,EAOAm3H,EAAyB17H,UAAUy8H,SAAW,WAGrCrB,IAAah3H,KAAKu3H,aAMvBpkF,SAAS8C,iBAAiB,gBAAiBj2C,KAAK23H,kBAChD7/E,OAAO7B,iBAAiB,SAAUj2C,KAAKi8G,SACnCmb,GACAp3H,KAAKy3H,mBAAqB,IAAIJ,iBAAiBr3H,KAAKi8G,SACpDj8G,KAAKy3H,mBAAmBvhH,QAAQi9B,SAAU,CACtC5zB,YAAY,EACZg1D,WAAW,EACXukD,eAAe,EACfC,SAAS,MAIb5lF,SAAS8C,iBAAiB,qBAAsBj2C,KAAKi8G,SACrDj8G,KAAKw3H,sBAAuB,GAEhCx3H,KAAKu3H,YAAa,EACtB,EAOAD,EAAyB17H,UAAU48H,YAAc,WAGxCxB,GAAch3H,KAAKu3H,aAGxBpkF,SAASioD,oBAAoB,gBAAiBp7F,KAAK23H,kBACnD7/E,OAAOsjD,oBAAoB,SAAUp7F,KAAKi8G,SACtCj8G,KAAKy3H,oBACLz3H,KAAKy3H,mBAAmB9zE,aAExB3jD,KAAKw3H,sBACLrkF,SAASioD,oBAAoB,qBAAsBp7F,KAAKi8G,SAE5Dj8G,KAAKy3H,mBAAqB,KAC1Bz3H,KAAKw3H,sBAAuB,EAC5Bx3H,KAAKu3H,YAAa,EACtB,EAQAD,EAAyB17H,UAAU+7H,iBAAmB,SAAUjzG,GAC5D,IAAIC,EAAKD,EAAGwhC,aAAcA,OAAsB,IAAPvhC,EAAgB,GAAKA,EAEvCwyG,EAAe/0H,MAAK,SAAU1D,GACjD,SAAUwnD,EAAa/nB,QAAQz/B,EACnC,KAEIsB,KAAKi8G,SAEb,EAMAqb,EAAyB0B,YAAc,WAInC,OAHKh5H,KAAKi5H,YACNj5H,KAAKi5H,UAAY,IAAI3B,GAElBt3H,KAAKi5H,SAChB,EAMA3B,EAAyB2B,UAAY,KAC9B3B,CACX,CAjM6C,GA0MzC4B,EAAqB,SAAW/1G,EAAQjZ,GACxC,IAAK,IAAI6sH,EAAK,EAAGryG,EAAK/oB,OAAOwK,KAAK+D,GAAQ6sH,EAAKryG,EAAGvkB,OAAQ42H,IAAM,CAC5D,IAAIr4H,EAAMgmB,EAAGqyG,GACbp7H,OAAO8lB,eAAe0B,EAAQzkB,EAAK,CAC/BrC,MAAO6N,EAAMxL,GACbgjB,YAAY,EACZS,UAAU,EACVD,cAAc,GAEtB,CACA,OAAOiB,CACV,EAQGg2G,EAAc,SAAWh2G,GAOzB,OAHkBA,GAAUA,EAAOi2G,eAAiBj2G,EAAOi2G,cAAcC,aAGnDpC,CACzB,EAGGqC,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQn9H,GACb,OAAOijC,WAAWjjC,IAAU,CAChC,CAQA,SAASo9H,EAAe/pB,GAEpB,IADA,IAAIgqB,EAAY,GACP3C,EAAK,EAAGA,EAAKh5H,UAAUoC,OAAQ42H,IACpC2C,EAAU3C,EAAK,GAAKh5H,UAAUg5H,GAElC,OAAO2C,EAAUr5H,QAAO,SAAU40B,EAAMiiB,GAEpC,OAAOjiB,EAAOukG,EADF9pB,EAAO,UAAYx4D,EAAW,UAE9C,GAAG,EACP,CAyGA,IAAIyiF,EAGkC,oBAAvBC,mBACA,SAAUz2G,GAAU,OAAOA,aAAkBg2G,EAAYh2G,GAAQy2G,kBAAoB,EAKzF,SAAUz2G,GAAU,OAAQA,aAAkBg2G,EAAYh2G,GAAQ02G,YAC3C,mBAAnB12G,EAAO22G,OAAyB,EAiB/C,SAASC,EAAe52G,GACpB,OAAK6zG,EAGD2C,EAAqBx2G,GAhH7B,SAA2BA,GACvB,IAAI62G,EAAO72G,EAAO22G,UAClB,OAAOP,EAAe,EAAG,EAAGS,EAAKr8E,MAAOq8E,EAAKz8E,OACjD,CA8Ge08E,CAAkB92G,GAvGjC,SAAmCA,GAG/B,IAAI+2G,EAAc/2G,EAAO+2G,YAAaC,EAAeh3G,EAAOg3G,aAS5D,IAAKD,IAAgBC,EACjB,OAAOb,EAEX,IAAI5pB,EAASypB,EAAYh2G,GAAQi3G,iBAAiBj3G,GAC9Ck3G,EA3CR,SAAqB3qB,GAGjB,IAFA,IACI2qB,EAAW,CAAC,EACPtD,EAAK,EAAGuD,EAFD,CAAC,MAAO,QAAS,SAAU,QAEDvD,EAAKuD,EAAYn6H,OAAQ42H,IAAM,CACrE,IAAI7/E,EAAWojF,EAAYvD,GACvB16H,EAAQqzG,EAAO,WAAax4D,GAChCmjF,EAASnjF,GAAYsiF,EAAQn9H,EACjC,CACA,OAAOg+H,CACX,CAkCmBE,CAAY7qB,GACvB8qB,EAAWH,EAASI,KAAOJ,EAASK,MACpCC,EAAUN,EAASljF,IAAMkjF,EAAS38E,OAKlCC,EAAQ67E,EAAQ9pB,EAAO/xD,OAAQJ,EAASi8E,EAAQ9pB,EAAOnyD,QAqB3D,GAlByB,eAArBmyD,EAAOv1D,YAOHl9C,KAAKgpC,MAAM0X,EAAQ68E,KAAcN,IACjCv8E,GAAS87E,EAAe/pB,EAAQ,OAAQ,SAAW8qB,GAEnDv9H,KAAKgpC,MAAMsX,EAASo9E,KAAaR,IACjC58E,GAAUk8E,EAAe/pB,EAAQ,MAAO,UAAYirB,KAoDhE,SAA2Bx3G,GACvB,OAAOA,IAAWg2G,EAAYh2G,GAAQgwB,SAASgjD,eACnD,CA/CSykC,CAAkBz3G,GAAS,CAK5B,IAAI03G,EAAgB59H,KAAKgpC,MAAM0X,EAAQ68E,GAAYN,EAC/CY,EAAiB79H,KAAKgpC,MAAMsX,EAASo9E,GAAWR,EAMpB,IAA5Bl9H,KAAK6rF,IAAI+xC,KACTl9E,GAASk9E,GAEoB,IAA7B59H,KAAK6rF,IAAIgyC,KACTv9E,GAAUu9E,EAElB,CACA,OAAOvB,EAAec,EAASI,KAAMJ,EAASljF,IAAKwG,EAAOJ,EAC9D,CAyCWw9E,CAA0B53G,GALtBm2G,CAMf,CAiCA,SAASC,EAAe1/F,EAAGle,EAAGgiC,EAAOJ,GACjC,MAAO,CAAE1jB,EAAGA,EAAGle,EAAGA,EAAGgiC,MAAOA,EAAOJ,OAAQA,EAC/C,CAMA,IAAIy9E,EAAmC,WAMnC,SAASA,EAAkB73G,GAMvBnjB,KAAKi7H,eAAiB,EAMtBj7H,KAAKk7H,gBAAkB,EAMvBl7H,KAAKm7H,aAAe5B,EAAe,EAAG,EAAG,EAAG,GAC5Cv5H,KAAKmjB,OAASA,CAClB,CAyBA,OAlBA63G,EAAkBp/H,UAAUw/H,SAAW,WACnC,IAAIC,EAAOtB,EAAe/5H,KAAKmjB,QAE/B,OADAnjB,KAAKm7H,aAAeE,EACZA,EAAK19E,QAAU39C,KAAKi7H,gBACxBI,EAAK99E,SAAWv9C,KAAKk7H,eAC7B,EAOAF,EAAkBp/H,UAAU0/H,cAAgB,WACxC,IAAID,EAAOr7H,KAAKm7H,aAGhB,OAFAn7H,KAAKi7H,eAAiBI,EAAK19E,MAC3B39C,KAAKk7H,gBAAkBG,EAAK99E,OACrB89E,CACX,EACOL,CACX,CApDsC,GAsDlCO,EAOA,SAA6Bp4G,EAAQq4G,GACjC,IA/FoB92G,EACpBmV,EAAUle,EAAUgiC,EAAkBJ,EAEtCk+E,EACAJ,EA2FIK,GA9FJ7hG,GADoBnV,EA+FiB82G,GA9F9B3hG,EAAGle,EAAI+I,EAAG/I,EAAGgiC,EAAQj5B,EAAGi5B,MAAOJ,EAAS74B,EAAG64B,OAElDk+E,EAAoC,oBAApBE,gBAAkCA,gBAAkBhgI,OACpE0/H,EAAO1/H,OAAO+Q,OAAO+uH,EAAO7/H,WAEhCs9H,EAAmBmC,EAAM,CACrBxhG,EAAGA,EAAGle,EAAGA,EAAGgiC,MAAOA,EAAOJ,OAAQA,EAClCpG,IAAKx7B,EACL++G,MAAO7gG,EAAI8jB,EACXD,OAAQH,EAAS5hC,EACjB8+G,KAAM5gG,IAEHwhG,GAyFHnC,EAAmBl5H,KAAM,CAAEmjB,OAAQA,EAAQu4G,YAAaA,GAC5D,EAIAE,EAAmC,WAWnC,SAASA,EAAkBzlH,EAAU0lH,EAAYC,GAc7C,GAPA97H,KAAK+7H,oBAAsB,GAM3B/7H,KAAKg8H,cAAgB,IAAIrF,EACD,mBAAbxgH,EACP,MAAM,IAAI4tC,UAAU,2DAExB/jD,KAAKi8H,UAAY9lH,EACjBnW,KAAKk8H,YAAcL,EACnB77H,KAAKm8H,aAAeL,CACxB,CAmHA,OA5GAF,EAAkBhgI,UAAUsa,QAAU,SAAUiN,GAC5C,IAAKplB,UAAUoC,OACX,MAAM,IAAI4jD,UAAU,4CAGxB,GAAuB,oBAAZq4E,SAA6BA,mBAAmBzgI,OAA3D,CAGA,KAAMwnB,aAAkBg2G,EAAYh2G,GAAQi5G,SACxC,MAAM,IAAIr4E,UAAU,yCAExB,IAAIs4E,EAAer8H,KAAKg8H,cAEpBK,EAAa5mH,IAAI0N,KAGrBk5G,EAAa19H,IAAIwkB,EAAQ,IAAI63G,EAAkB73G,IAC/CnjB,KAAKk8H,YAAY9D,YAAYp4H,MAE7BA,KAAKk8H,YAAYjgB,UAZjB,CAaJ,EAOA2f,EAAkBhgI,UAAU0gI,UAAY,SAAUn5G,GAC9C,IAAKplB,UAAUoC,OACX,MAAM,IAAI4jD,UAAU,4CAGxB,GAAuB,oBAAZq4E,SAA6BA,mBAAmBzgI,OAA3D,CAGA,KAAMwnB,aAAkBg2G,EAAYh2G,GAAQi5G,SACxC,MAAM,IAAIr4E,UAAU,yCAExB,IAAIs4E,EAAer8H,KAAKg8H,cAEnBK,EAAa5mH,IAAI0N,KAGtBk5G,EAAar9H,OAAOmkB,GACfk5G,EAAapnG,MACdj1B,KAAKk8H,YAAY5D,eAAet4H,MAXpC,CAaJ,EAMA47H,EAAkBhgI,UAAU+nD,WAAa,WACrC3jD,KAAKu8H,cACLv8H,KAAKg8H,cAAchxH,QACnBhL,KAAKk8H,YAAY5D,eAAet4H,KACpC,EAOA47H,EAAkBhgI,UAAU+8H,aAAe,WACvC,IAAIpb,EAAQv9G,KACZA,KAAKu8H,cACLv8H,KAAKg8H,cAAcx9H,SAAQ,SAAUg+H,GAC7BA,EAAYpB,YACZ7d,EAAMwe,oBAAoBl6H,KAAK26H,EAEvC,GACJ,EAOAZ,EAAkBhgI,UAAUi9H,gBAAkB,WAE1C,GAAK74H,KAAK44H,YAAV,CAGA,IAAIz5G,EAAMnf,KAAKm8H,aAEXxhG,EAAU36B,KAAK+7H,oBAAoBh7H,KAAI,SAAUy7H,GACjD,OAAO,IAAIjB,EAAoBiB,EAAYr5G,OAAQq5G,EAAYlB,gBACnE,IACAt7H,KAAKi8H,UAAU1/H,KAAK4iB,EAAKwb,EAASxb,GAClCnf,KAAKu8H,aAPL,CAQJ,EAMAX,EAAkBhgI,UAAU2gI,YAAc,WACtCv8H,KAAK+7H,oBAAoBhpF,OAAO,EACpC,EAMA6oF,EAAkBhgI,UAAUg9H,UAAY,WACpC,OAAO54H,KAAK+7H,oBAAoB57H,OAAS,CAC7C,EACOy7H,CACX,CAnJsC,GAwJlCrD,EAA+B,oBAAZ/1G,QAA0B,IAAIA,QAAY,IAAIm0G,EAKjE8F,EAOA,SAASA,EAAetmH,GACpB,KAAMnW,gBAAgBy8H,GAClB,MAAM,IAAI14E,UAAU,sCAExB,IAAKhmD,UAAUoC,OACX,MAAM,IAAI4jD,UAAU,4CAExB,IAAI83E,EAAavE,EAAyB0B,cACtCr5H,EAAW,IAAIi8H,EAAkBzlH,EAAU0lH,EAAY77H,MAC3Du4H,EAAU55H,IAAIqB,KAAML,EACxB,EAIJ,CACI,UACA,YACA,cACFnB,SAAQ,SAAUgvB,GAChBivG,EAAe7gI,UAAU4xB,GAAU,WAC/B,IAAI9I,EACJ,OAAQA,EAAK6zG,EAAUlnH,IAAIrR,OAAOwtB,GAAQrmB,MAAMud,EAAI3mB,UACxD,CACJ,IAUA,aAN2C,IAA5Bk5H,EAASwF,eACTxF,EAASwF,eAEbA,iCC35BX,IAAIztH,EAAO,EAAQ,QACf0tH,EAAgB,EAAQ,QACxBthE,EAAW,EAAQ,QACnBuhE,EAAoB,EAAQ,QAG5BC,EAAe,SAAUC,GAC3B,IAAIC,EAA8B,IAATD,EACzB,OAAO,SAAUE,EAAOC,EAAYC,GAMlC,IALA,IAII5gI,EAJAg1C,EAAI+pB,EAAS2hE,GACbzyG,EAAOoyG,EAAcrrF,GACrB59B,EAAQkpH,EAAkBryG,GAC1B4yG,EAAgBluH,EAAKguH,EAAYC,GAE9BxpH,KAAU,GAGf,GADSypH,EADT7gI,EAAQiuB,EAAK7W,GACiBA,EAAO49B,GACzB,OAAQwrF,GAClB,KAAK,EAAG,OAAOxgI,EACf,KAAK,EAAG,OAAOoX,EAGnB,OAAOqpH,GAAsB,OAAI5gI,CACnC,CACF,EAEAC,EAAOC,QAAU,CAGf+gI,SAAUP,EAAa,GAGvB5sC,cAAe4sC,EAAa,sBCjC9BzgI,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,0ICgC3C,SANiB,QAAS,SAAS6F,EAAOsa,GACxC,OAAO,OAAkBta,IACrB,OAAeA,GAAO,OAAYsa,EAAQ,EAAG,KAAmB,IAChE,EACN,oGC1BO,MAAM6gH,EAAiB,CAC5BC,EACAhqH,KAEA,MACEzJ,KAAM0zH,EACNC,UAAWC,EACXC,UAAWC,EACXC,WAAYC,IACV1uC,EAAAA,EAAAA,GAAW,CACbC,gBAAiB,sBACjBC,WAAY,CAAC/7E,GACbwrG,OAASj1G,GAASA,EAAKymF,KAAKzmF,OAuB9B,MAAO,CACLvN,OApBsC4uD,EAAAA,EAAAA,UAAQ,KAE9C,GAAIuyE,EACF,OAIF,MAAMK,EAAgBP,aAAAA,EAAAA,EAAgBhiD,MACnCwiD,QAAOA,SAAc,QAAdA,EAAAA,EAAGC,mBAAHD,IAAAA,OAAAA,EAAAA,EAAgB11H,QAASi1H,CAAI,QAKrCQ,EAFF,OAEsB,QAApBA,EAAAA,aAAAA,EAAAA,EAAexhI,aAAfwhI,IAAAA,EAAAA,EAEAG,IAASX,EAAK,GAEf,CAACA,EAAMC,EAAgBE,IAIxBD,UAAWC,EACXG,WAAYC,EACZH,UAAWC,EACZ,iCC1CH,IAMWO,EA+BAC,EAaAC,EAlDP7+H,EAAgB,EAAQ,QAK5BlD,EAAQ6hI,YAAS,GACNA,EAqBR7hI,EAAQ6hI,SAAW7hI,EAAQ6hI,OAAS,CAAC,IApBnB,SAAI,WACrBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAkB,UAAI,YACtBA,EAAgB,QAAI,eACpBA,EAAgB,QAAI,iBACpBA,EAAkB,UAAI,YACtBA,EAAW,GAAI,KACfA,EAAc,MAAI,aAClBA,EAAuB,eAAI,uBAC3BA,EAAuB,eAAI,uBAC3BA,EAA0B,kBAAI,0BAC9BA,EAAc,MAAI,QAClBA,EAAkB,UAAI,YACtBA,EAAmB,WAAI,aACvBA,EAA0B,kBAAI,oBAUlC7hI,EAAQ8hI,aAAU,GACPA,EAOR9hI,EAAQ8hI,UAAY9hI,EAAQ8hI,QAAU,CAAC,IANb,gBAAI,kBAC7BA,EAAwB,eAAI,wBAC5BA,EAA2B,kBAAI,2BAC/BA,EAAyB,gBAAI,kBAC7BA,EAAmB,UAAI,YACvBA,EAA4B,mBAAI,qBAMpC9hI,EAAQ+hI,WAAQ,GACLA,EAQR/hI,EAAQ+hI,QAAU/hI,EAAQ+hI,MAAQ,CAAC,IAPtB,KAAI,OAChBA,EAAc,OAAI,SAClBA,EAAiB,UAAI,YACrBA,EAAY,KAAI,OAChBA,EAAmB,YAAI,cACvBA,EAAiB,UAAI,YACrBA,EAAqB,cAAI,gBAmB7B,IA8BIC,EA9BAC,EAAgB,SAAS9iH,EAAGhb,GAI5B,OAHA89H,EAAgB1iI,OAAO6wC,gBAClB,CAAE3pB,UAAW,cAAgBvU,OAAS,SAAUiN,EAAGhb,GAAKgb,EAAEsH,UAAYtiB,CAAG,GAC1E,SAAUgb,EAAGhb,GAAK,IAAK,IAAI8B,KAAK9B,EAAO5E,OAAOC,UAAUC,eAAeU,KAAKgE,EAAG8B,KAAIkZ,EAAElZ,GAAK9B,EAAE8B,GAAI,EAC7Fg8H,EAAc9iH,EAAGhb,EAC5B,EAEA,SAAS+9H,EAAU/iH,EAAGhb,GAClB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIwjD,UAAU,uBAAyBphD,OAAOpC,GAAK,iCAE7D,SAASotD,IAAO3tD,KAAK+qB,YAAcxP,CAAG,CADtC8iH,EAAc9iH,EAAGhb,GAEjBgb,EAAE3f,UAAkB,OAAN2E,EAAa5E,OAAO+Q,OAAOnM,IAAMotD,EAAG/xD,UAAY2E,EAAE3E,UAAW,IAAI+xD,EACnF,CAEA,SAAS4wE,EAAcjiG,EAAIxD,EAAM0lG,GAC7B,GAAIA,GAA6B,IAArBzgI,UAAUoC,OAAc,IAAK,IAA4Bs+H,EAAxB36H,EAAI,EAAG0mB,EAAIsO,EAAK34B,OAAY2D,EAAI0mB,EAAG1mB,KACxE26H,GAAQ36H,KAAKg1B,IACR2lG,IAAIA,EAAKnwH,MAAM1S,UAAU8H,MAAMnH,KAAKu8B,EAAM,EAAGh1B,IAClD26H,EAAG36H,GAAKg1B,EAAKh1B,IAGrB,OAAOw4B,EAAG/0B,OAAOk3H,GAAMnwH,MAAM1S,UAAU8H,MAAMnH,KAAKu8B,GACtD,CAE2B,mBAApB4lG,iBAAiCA,gBAUxC,IAAIC,EAAmB,CACnBviI,EAAQ6hI,OAAOW,UACfxiI,EAAQ6hI,OAAOY,UACfziI,EAAQ6hI,OAAOa,UACf1iI,EAAQ6hI,OAAOc,UACf3iI,EAAQ6hI,OAAOe,UACf5iI,EAAQ6hI,OAAOgB,UACf7iI,EAAQ6hI,OAAOiB,UACf9iI,EAAQ6hI,OAAOkB,QACf/iI,EAAQ6hI,OAAOmB,QACfhjI,EAAQ6hI,OAAOoB,GACfjjI,EAAQ6hI,OAAOqB,MACfljI,EAAQ6hI,OAAOsB,eACfnjI,EAAQ6hI,OAAOuB,eACfpjI,EAAQ6hI,OAAOwB,kBACfrjI,EAAQ6hI,OAAOyB,OAKfC,EAAmB,CACnBvjI,EAAQ6hI,OAAOW,UACfxiI,EAAQ6hI,OAAOY,UACfziI,EAAQ6hI,OAAOa,UACf1iI,EAAQ6hI,OAAOc,UACf3iI,EAAQ6hI,OAAOe,UACf5iI,EAAQ6hI,OAAOgB,UACf7iI,EAAQ6hI,OAAOiB,UACf9iI,EAAQ6hI,OAAOkB,QACf/iI,EAAQ6hI,OAAOmB,QACfhjI,EAAQ6hI,OAAOoB,GACfjjI,EAAQ6hI,OAAOqB,MACfljI,EAAQ6hI,OAAOsB,eACfnjI,EAAQ6hI,OAAOuB,eACfpjI,EAAQ6hI,OAAOwB,mBAEfG,EAAe,CACfxjI,EAAQ6hI,OAAOyB,MACftjI,EAAQ6hI,OAAO4B,UACfzjI,EAAQ6hI,OAAO6B,WACf1jI,EAAQ6hI,OAAO8B,mBAKfC,EAAc,CACd5jI,EAAQ6hI,OAAOoB,GACfjjI,EAAQ6hI,OAAOsB,eACfnjI,EAAQ6hI,OAAOuB,eACfpjI,EAAQ6hI,OAAOwB,mBAOfQ,IAAc7B,EAAO,CAAC,GACjBhiI,EAAQ6hI,OAAOkB,SAAW,CAAC/iI,EAAQ6hI,OAAOiC,WAC/C9B,EAAKhiI,EAAQ6hI,OAAOmB,SAAW,CAAChjI,EAAQ6hI,OAAOiC,WAC/C9B,EAAKhiI,EAAQ6hI,OAAOiC,WAAaP,EACjCvB,EAAKhiI,EAAQ6hI,OAAOqB,OAAS,CAACljI,EAAQ6hI,OAAOW,WAC7CR,EAAKhiI,EAAQ6hI,OAAOyB,OAAS,CAACtjI,EAAQ6hI,OAAO4B,WAC7CzB,EAAKhiI,EAAQ6hI,OAAO4B,WAAa,CAACzjI,EAAQ6hI,OAAO6B,WAAY1jI,EAAQ6hI,OAAO8B,mBAC5E3B,EAAKhiI,EAAQ6hI,OAAO6B,YAAc,CAAC1jI,EAAQ6hI,OAAOW,UAAWxiI,EAAQ6hI,OAAOmB,QAAShjI,EAAQ6hI,OAAOkB,SACpGf,EAAKhiI,EAAQ6hI,OAAO8B,mBAAqB,CAAC3jI,EAAQ6hI,OAAOW,WACzDR,GAIA+B,EAAW,CACX/jI,EAAQ6hI,OAAOY,UACfziI,EAAQ6hI,OAAOa,UACf1iI,EAAQ6hI,OAAOc,UACf3iI,EAAQ6hI,OAAOe,UACf5iI,EAAQ6hI,OAAOgB,UACf7iI,EAAQ6hI,OAAOiB,WAKfkB,EAAkB7B,EAAc,CAACniI,EAAQ6hI,OAAOW,WAAYuB,GAAU,GAItEE,EAAgB,CAChBjkI,EAAQ6hI,OAAOqC,SACflkI,EAAQ6hI,OAAOW,UACfxiI,EAAQ6hI,OAAOY,UACfziI,EAAQ6hI,OAAOa,UACf1iI,EAAQ6hI,OAAOc,UACf3iI,EAAQ6hI,OAAOe,UACf5iI,EAAQ6hI,OAAOgB,UACf7iI,EAAQ6hI,OAAOiB,UACf9iI,EAAQ6hI,OAAOkB,QACf/iI,EAAQ6hI,OAAOmB,QACfhjI,EAAQ6hI,OAAOiC,UACf9jI,EAAQ6hI,OAAOoB,GACfjjI,EAAQ6hI,OAAOqB,MACfljI,EAAQ6hI,OAAOsB,eACfnjI,EAAQ6hI,OAAOuB,eACfpjI,EAAQ8hI,QAAQqC,UAChBnkI,EAAQ8hI,QAAQsC,gBAChBpkI,EAAQ8hI,QAAQuC,gBAChBrkI,EAAQ8hI,QAAQqB,eAChB,QAKAmB,EAAW,CAACtkI,EAAQ+hI,MAAMwC,KAAMvkI,EAAQ+hI,MAAMyC,KAAMxkI,EAAQ+hI,MAAM0C,OAAQzkI,EAAQ+hI,MAAM2C,WAMxFC,EAAiB,CACjB/pH,SAAU5a,EAAQ6hI,OAAOqC,SACzB12H,KAAM,CAAC,EACPo0C,QAAS,CACL,CACIhnC,SAAU5a,EAAQ6hI,OAAOW,UACzBh1H,KAAM,CAAC,EACPo0C,QAAS,CACL,CACIhnC,SAAU,OACV3a,MAAO,GACP2kI,MAAO,GACPp3H,KAAM,CAAC,OAW3B,SAASq3H,EAAS9hI,EAAK9C,GACnB,IAAK,IAAI06H,EAAK,EAAGryG,EAAK/oB,OAAOwK,KAAKhH,GAAM43H,EAAKryG,EAAGvkB,OAAQ42H,IAEpD,GAAI16H,IAAU8C,EADJulB,EAAGqyG,IAET,OAAO,EAGf,OAAO,CACX,CAoBA,IAibIryG,EAjbAw8G,EAAuBvlI,OAAOwlI,OAAO,CACvCt+G,UAAW,KACXu+G,QAZF,SAAiBnhH,GACb,OAAOghH,EAAS7kI,EAAQ6hI,OAAQh+G,EAAKjJ,SACzC,EAWEqqH,SAnBF,SAAkBphH,GACd,OAAOghH,EAAS7kI,EAAQ8hI,QAASj+G,EAAKjJ,SAC1C,EAkBEsqH,OARF,SAAgBrhH,GACZ,MAAyB,SAAlBA,EAAKjJ,QAChB,IASIuqH,EAAoB,SAAU78G,GAC9B,IAAI7R,EAAO6R,EAAG7R,KAAM2uH,EAAW98G,EAAG88G,SAAUC,EAAW/8G,EAAG+8G,SAAUplI,EAAQqoB,EAAGroB,MAC/E,MAAO,CACHm6B,QAAS,gBAAiBjvB,OAAOi6H,EAAU,mCAAoCj6H,OAAOk6H,GACtFr5H,KAAM,OACNyK,KAAMA,EAAKq7D,UACX3uE,KAAMkiI,EACNplI,MAAOA,EAEf,EAgDIqlI,EAAiC,WACjC,SAASA,EAAgBviI,EAAK0T,GAC1B,IAAI0qG,EAAQv9G,KACZA,KAAKb,IAAMA,EACXa,KAAK6S,KAAOA,EACZ7S,KAAK2hI,QAAU,GACf3hI,KAAK4hI,MAAQ,WAGT,IAFA,IAAIl9G,EACA2N,EAAS,GACJ0kG,EAAK,EAAGA,EAAKh5H,UAAUoC,OAAQ42H,IACpC1kG,EAAO0kG,GAAMh5H,UAAUg5H,IAE1BryG,EAAK64F,EAAMokB,SAAS9/H,KAAKsF,MAAMud,EAAI2N,EACxC,EAKAryB,KAAKizC,OAAS,SAAUv0C,GACpB,OAAIA,KAAO6+G,EAAMp+G,MAGjBo+G,EAAMqkB,MA/BU,SAAUl9G,GAClC,IAA4B7R,EAAO6R,EAAG7R,KACtC,MAAO,CACH2jB,QAAS,iBAAkBjvB,OAFhBmd,EAAG88G,SAE8B,sBAC5Cp5H,KAAM,WACNyK,KAAMA,EAAKq7D,UAEnB,CAwBwB2zD,CAAsB,CAC9BL,SAAU9iI,EACVmU,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,OAEjB,EACX,EAKAsB,KAAK4jB,OAAS,SAAUllB,GACpB,IAAIgmB,EACAroB,EAAQqC,EAAM6+G,EAAMp+G,IAAIT,GAAO6+G,EAAMp+G,IACzC,GAAIT,IACK6+G,EAAMtqE,OAAOv0C,GACd,OAAO,EAGf,GAAIY,EAAcjD,GACd,OAAO,EAEX,IAAIwW,EAAOnU,EAAM6+G,EAAM1qG,KAAKivH,GAAGpjI,GAAO6+G,EAAM1qG,KACxC2uH,EAA+E,QAAnE98G,EAAKhmB,QAAiCA,EAAM6+G,EAAM1qG,KAAKu3E,cAA2B,IAAP1lE,EAAgBA,EAAK,QAOhH,OANA64F,EAAMqkB,MAAML,EAAkB,CAC1BE,SAAU,SACVD,SAAUA,EACV3uH,KAAMA,EACNxW,MAAOA,MAEJ,CACX,EAIA2D,KAAKyC,OAAS,SAAU/D,GACpB,IAAIrC,EAAQkhH,EAAMp+G,IAAIT,GACtB,QAAIA,IAAQ6+G,EAAMtqE,OAAOv0C,IAGJ,iBAAVrC,IAGXkhH,EAAMqkB,MAAML,EAAkB,CAC1BE,SAAU,SACVD,SAAU9iI,EACVmU,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,GACpBrC,MAAOA,KAEJ,GACX,EAIA2D,KAAK+b,OAAS,SAAUrd,EAAKsvB,GACzB,IAAI3xB,EAAQkhH,EAAMp+G,IAAIT,GACtB,SAAIsvB,GAActvB,KAAO6+G,EAAMp+G,QAG1Bo+G,EAAMtqE,OAAOv0C,KAGG,iBAAVrC,IAAuBqX,OAAOkjB,MAAMv6B,KAG/CkhH,EAAMqkB,MAAML,EAAkB,CAC1BE,SAAU,SACVD,SAAU9iI,EACVmU,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,GACpBrC,MAAOA,MAEJ,GACX,EAKA2D,KAAKiC,MAAQ,SAAUvD,GACnB,IAAIrC,EAAQkhH,EAAMp+G,IAAIT,GACtB,QAAIA,IAAQ6+G,EAAMtqE,OAAOv0C,KAGrB4P,MAAMie,QAAQlwB,KAGlBkhH,EAAMqkB,MAAML,EAAkB,CAC1BE,SAAU,QACVD,SAAU9iI,EACVmU,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,GACpBrC,MAAOA,KAEJ,GACX,EAIA2D,KAAKw7G,KAAO,SAAU98G,EAAKqjI,GACvB,IAAI1lI,EAAQkhH,EAAMp+G,IAAIT,GACtB,QAAqB,iBAAVrC,IAAsB0lI,EAASxrH,SAASla,MAGnDkhH,EAAMqkB,MArJF,SAAUl9G,GACtB,IAA4BroB,EAAQqoB,EAAGroB,MAAOwW,EAAO6R,EAAG7R,KACxD,MAAO,CACH2jB,QAAS,uCACTpuB,KAAM,KACN25H,SAAUxD,EAAc,GAJb75G,EAAGq9G,UAIwB,GAAMrhG,OAC5C7tB,KAAMA,EAAKq7D,UACX7xE,MAAOA,EAEf,CA4IwB2lI,CAAU,CAClBD,SAAUA,EACV1lI,MAAOA,EACPwW,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,OAEjB,EACX,EAKAsB,KAAKgtB,MAAQ,SAAUtuB,GACnB,IAAK6+G,EAAMt7G,MAAMvD,GACb,OAAO,EAEX,IAAIrC,EAAQkhH,EAAMp+G,IAAIT,GACtB,OAAqB,IAAjBrC,EAAM8D,SAGVo9G,EAAMqkB,MAlLC,SAAUl9G,GACzB,IAAI0D,EAAM1D,EAAG0D,IAAK/rB,EAAQqoB,EAAGroB,MAC7B,MAAO,CACH+L,KAAM,OACNggB,IAAKA,EACLvV,KAJuC6R,EAAG7R,KAI/Bq7D,UACX13C,QAAS,wBAAwBjvB,OAAO6gB,GACxC/rB,MAAOA,EAEf,CAyKwB4lI,CAAa,CACrB75G,IAAK,EACL/rB,MAAOA,EACPwW,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,OAEjB,EACX,EAKAsB,KAAKkiI,UAAY,SAAUxjI,EAAKo9B,GAC5B,IAAKyhF,EAAMt7G,MAAMvD,GACb,OAAO,EAEX,IAAIrC,EAAQkhH,EAAMp+G,IAAIT,GACtB,OAAIrC,EAAM8D,QAAU27B,IAGpByhF,EAAMqkB,MA/MC,SAAUl9G,GACzB,IAAIoX,EAAMpX,EAAGoX,IAAKz/B,EAAQqoB,EAAGroB,MAC7B,MAAO,CACH+L,KAAM,OACN0zB,IAAKA,EACLjpB,KAJuC6R,EAAG7R,KAI/Bq7D,UACX13C,QAAS,yBAAyBjvB,OAAOu0B,GACzCz/B,MAAOA,EAEf,CAsMwB8lI,CAAa,CACrBrmG,IAAKA,EACLz/B,MAAOA,EACPwW,KAAM0qG,EAAM1qG,KAAKivH,GAAGpjI,OAEjB,EACX,EAKAsB,KAAKoiI,uBAAyB,SAAUzvG,GACpC,IAAI0vG,EAAW1mI,OAAOwK,KAAKo3G,EAAMp+G,KAC5BuhC,OACA5tB,QAAO,SAAUpU,GAAO,OAAQi0B,EAAWpc,SAAS7X,EAAM,IAO/D,OANA2jI,EAAS7jI,SAAQ,SAAUgjI,GACvB,OAAOjkB,EAAMqkB,MAjMF,SAAUl9G,GACjC,IAA4B7R,EAAO6R,EAAG7R,KACtC,MAAO,CACH2jB,QAAS,iBAAkBjvB,OAFhBmd,EAAG88G,SAE8B,qBAC5Cp5H,KAAM,aACNyK,KAAMA,EAAKq7D,UAEnB,CA0LmCo0D,CAAqB,CACpCd,SAAUA,EACV3uH,KAAM0qG,EAAM1qG,KAAKivH,GAAGN,KAE5B,IAC2B,IAApBa,EAASliI,MACpB,EAQAH,KAAKwwB,KAAO,SAAU9xB,EAAK0yB,GACvB,GAAKmsF,EAAMt7G,MAAMvD,GAAjB,CAGA,IAAIrC,EAAQkhH,EAAMp+G,IAAIT,GAClB6jI,GAAc,EAClBlmI,EAAMmC,SAAQ,SAAU82D,EAAM7hD,GAC1B,IAAI8uH,EAAJ,CAGA,IAAIlwG,EAASjB,EAAOkkC,EAAMioD,EAAM1qG,KAAKivH,GAAGpjI,GAAKojI,GAAGruH,IAC5C4e,EAAOlyB,OAAS,IAChBoiI,GAAc,GAElBhlB,EAAMqkB,MAAMz6H,MAAMo2G,EAAOlrF,EALzB,CAMJ,GAZA,CAaJ,CACJ,CAiBA,OAhBA12B,OAAO8lB,eAAeigH,EAAgB9lI,UAAW,SAAU,CACvDyV,IAAK,WACD,IAAIksG,EAAQv9G,KACRwiI,EAAiB,SAAU59H,GAC3B,OAAOm6B,KAAKL,UAAU,CAClBlI,QAAS5xB,EAAM4xB,QACf3jB,KAAMjO,EAAMiO,MAEpB,EACA,OAAO7S,KAAK2hI,QAAQ7uH,QAAO,SAAUlO,EAAO6O,GACxC,OAAO8pG,EAAMokB,QAAQrwH,WAAU,SAAUmxH,GAAQ,OAAOD,EAAe59H,KAAW49H,EAAeC,EAAO,MAAOhvH,CACnH,GACJ,EACAiO,YAAY,EACZQ,cAAc,IAEXw/G,CACX,CAjOoC,GAmOhCgB,EAAe,GACfC,EAA+B,WAC/B,SAASA,EAAcC,EAAaC,GAChC7iI,KAAK4iI,YAAcA,EACnB5iI,KAAK6iI,aAAeA,CACxB,CAwCA,OAvCAF,EAAc/mI,UAAUw1B,OAAS,SAAUnR,EAAMpN,GAC7C,IAAI6R,EAAIC,EACJ0L,EAAI,IAAIqxG,EAAgBzhH,EAAMpN,GAClC,IAAKwd,EAAEzM,SACH,OAAOyM,EAAEgC,OAEbhC,EAAE+xG,uBAAuB,CAAC,WAAY,OAAQ,YAC9C,IAAIx9G,EAAKtW,MAAMie,QAAQvsB,KAAK4iI,aACtB,CACEE,UAAW9iI,KAAK4iI,aAElB5iI,KAAK4iI,YAAY3iH,EAAMpN,GAAOiwH,EAAYl+G,EAAGk+G,UAAWj+G,EAAKD,EAAGkX,IAAKA,OAAa,IAAPjX,EAAgB,EAAIA,EACrG,GAAyB,IAArBi+G,EAAU3iI,QAAgB27B,EAAM,EAChC,MAAM,IAAIh+B,MAAM,wDAAwDyJ,OAAOu0B,EAAK,uBAoBxF,GAlBAzL,EAAE6xG,UAAU,UAAWpmG,GAEE,IAArBgnG,EAAU3iI,OACVkwB,EAAErD,MAAM,WAMRqD,EAAEG,KAAK,WAAW,SAAU8kC,EAAMziD,GAC9B,IAAIkwH,EAAQ,IAAIrB,EAAgBpsE,EAAMziD,GACtC,OAAKkwH,EAAMn/G,UAGXm/G,EAAMvnB,KAAK,WAAYsnB,GAChBC,EAAM1wG,QAHF0wG,EAAM1wG,MAIrB,IAEAhC,EAAEzM,OAAO,QAAS,CAClB,IAAIo/G,EAAgI,QAAlHr+G,EAAkC,QAA5BD,EAAK1kB,KAAK6iI,oBAAiC,IAAPn+G,OAAgB,EAASA,EAAGnoB,KAAKyD,KAAMigB,EAAKrW,KAAMiJ,EAAKivH,GAAG,gBAA6B,IAAPn9G,EAAgBA,EAAK,GACjK0L,EAAEuxG,MAAMz6H,MAAMkpB,EAAG2yG,EACrB,CACA,OAAO3yG,EAAEgC,MACb,EACOswG,CACX,CA7CkC,GA8C9BM,EAAqC,SAAU9vG,GAE/C,SAAS8vG,EAAoBC,EAAUC,GACnC,IAAI5lB,EAAQpqF,EAAO52B,KAAKyD,KAAMmjI,GAAkB,SAAUv5H,EAAMiJ,GAAQ,OAAO0qG,EAAM6lB,WAAWx5H,EAAMiJ,EAAO,KAAM7S,KAwBnH,OAvBAu9G,EAAM2lB,SAAWA,EACjB3lB,EAAM6lB,WAAa,SAAUx5H,EAAMiJ,GAC/B,IAAIwd,EAAI,IAAIqxG,EAAgB93H,EAAMiJ,GAClC,GAAIwd,EAAEzM,OAAO,UAAW,CACpB,IAAIy/G,EAAO,IAAI3B,EAAgB93H,EAAKuZ,OAAOmgH,IAAKzwH,EAAKivH,GAAG,UAAUA,GAAG,QACjEuB,EAAKz/G,WACLy/G,EAAK7nB,KAAK,OAAQ,CAAC+B,EAAMh+G,OACzB8jI,EAAK7nB,KAAK,WAAY,CAAC+B,EAAM2lB,WACV,SAAf3lB,EAAMh+G,MACN8jI,EAAK5gI,OAAO,MACZ4gI,EAAKjB,uBAAuB,CAAC,OAAQ,WAAY,QAE7B,iBAAf7kB,EAAMh+G,OACX8jI,EAAK5gI,OAAO,OACZ4gI,EAAKjB,uBAAuB,CAAC,OAAQ,WAAY,UAGzD/xG,EAAEuxG,MAAMz6H,MAAMkpB,EAAGgzG,EAAKhxG,OAC1B,CAEA,OADAhC,EAAE+xG,uBAAuB,CAAC,WACnB/xG,EAAEgC,MACb,EACAkrF,EAAMh+G,KAAOg+G,EAAM2lB,SAAStnG,WAAW,eAAiB,eAAiB,OAClE2hF,CACX,CACA,OA5BA+gB,EAAU2E,EAAqB9vG,GA4BxB8vG,CACX,CA9BwC,CA8BtCN,GACEY,EAAoC,SAAUpwG,GAE9C,SAASowG,IACL,IAAIhmB,EAAQpqF,EAAO52B,KAAKyD,KAAM,CAAC,SAAS,SAAU4J,EAAMiJ,GAAQ,OAAO0qG,EAAM6lB,WAAWx5H,EAAMiJ,EAAO,KAAM7S,KAO3G,OANAu9G,EAAM6lB,WAAa,SAAUx5H,EAAMiJ,GAC/B,IAAIwd,EAAI,IAAIqxG,EAAgB93H,EAAMiJ,GAGlC,OAFAwd,EAAE5tB,OAAO,OACT4tB,EAAE+xG,uBAAuB,CAAC,QACnB/xG,EAAEgC,MACb,EACOkrF,CACX,CACA,OAXA+gB,EAAUiF,EAAoBpwG,GAWvBowG,CACX,CAbuC,CAarCZ,GACEvxG,EAAS,SAAUwxG,EAAaC,GAChC,OAAO,IAAIF,EAAcC,EAAaC,EAC1C,EACIO,EAAa,SAAUF,EAAUN,GACjC,OAAO,IAAIK,EAAoBC,EAAUN,EAC7C,EAEIY,EACA,SAASA,EAAK3wH,QACG,IAATA,IAAmBA,EAAO,IAC9B,IAAI0qG,EAAQv9G,KACZA,KAAK6S,KAAOA,EACZ7S,KAAK8hI,GAAK,SAAU54D,GAChB,OAAO,IAAIs6D,EAAKjF,EAAcA,EAAc,GAAIhhB,EAAM1qG,MAAM,GAAO,CAACq2D,IAAU,GAClF,EACAlpE,KAAK0L,OAAS,WACV,OAA6B,IAAtB6xG,EAAM1qG,KAAK1S,MACtB,EACAH,KAAKoqF,KAAO,WACR,OAAOmzB,EAAM1qG,KAAK0qG,EAAM1qG,KAAK1S,OAAS,EAC1C,EACAH,KAAKkuE,QAAU,WACX,OAAOqvC,EAAM1qG,IACjB,CACJ,EA2BA4wH,EAAqBryG,EAAOmtG,EAAcA,EAAc,GAAI5iI,OAAO4gB,OAAOngB,EAAQ8hI,UAAU,GAAO,CAAC,SAAS,GAAOx9F,QACpHgjG,EAAatyG,EAAO,CAACh1B,EAAQ6hI,OAAOiC,YACpCyD,EAAsBP,EAAW,QAASV,GAC1CkB,EAAkBxyG,GAAO,WAAc,MAAO,CAC9C0xG,UAAW,CAAC1mI,EAAQ6hI,OAAOW,WAC3B9iG,IAAK,EACL,IAAG,SAAUlyB,EAAMiJ,GACnB,IAAIwd,EAAI,IAAIqxG,EAAgB93H,EAAMiJ,GAIlC,OAHAwd,EAAE+xG,uBAAuB,CAAC,UAAW,YACrC/xG,EAAEtU,OAAO,WAAW,GACpBsU,EAAEtU,OAAO,WAAW,GACbsU,EAAEgC,MACb,IACIwxG,IAAiBn/G,EAAK,CAAC,GACpBtoB,EAAQ6hI,OAAOqC,UAAYlvG,EAAOutG,GACrCj6G,EAAGtoB,EAAQ6hI,OAAOW,WAAa6E,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOY,WAAa4E,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOa,WAAa2E,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOc,WAAa0E,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOe,WAAayE,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOgB,WAAawE,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOiB,WAAauE,EAC/B/+G,EAAGtoB,EAAQ6hI,OAAOqB,OAASluG,EAAO6uG,EAAW7jI,EAAQ6hI,OAAOqB,QAC5D56G,EAAGtoB,EAAQ6hI,OAAOsB,gBAAkBoE,EACpCj/G,EAAGtoB,EAAQ6hI,OAAOuB,gBAAkB4D,EAAW,QAASV,GACxDh+G,EAAGtoB,EAAQ6hI,OAAOwB,mBAAqB2D,EAAW,mBAAoBV,GACtEh+G,EAAGtoB,EAAQ6hI,OAAOoB,IAAMjuG,EAAOsxG,GAC/Bh+G,EAAGtoB,EAAQ6hI,OAAOkB,SAAWuE,EAC7Bh/G,EAAGtoB,EAAQ6hI,OAAOmB,SAAWsE,EAC7Bh/G,EAAGtoB,EAAQ6hI,OAAOiC,WAAa9uG,EAAOmtG,EAAc,GAAIoB,GAAkB,GAAMj/F,QAChFhc,EAAGtoB,EAAQ6hI,OAAOyB,OAAStuG,GAAO,WAAc,MAAO,CACnD0xG,UAAW,CAAC1mI,EAAQ6hI,OAAO4B,WAC3B/jG,IAAK,EACL,IACJpX,EAAGtoB,EAAQ6hI,OAAO4B,WAAazuG,GAAO,WAAc,MAAO,CACvD0xG,UAAW,CAAC1mI,EAAQ6hI,OAAO6B,WAAY1jI,EAAQ6hI,OAAO8B,mBACtDjkG,IAAK,EACL,IACJpX,EAAGtoB,EAAQ6hI,OAAO6B,YAAc8D,EAChCl/G,EAAGtoB,EAAQ6hI,OAAO8B,mBAAqB6D,EACvCl/G,EAAGtoB,EAAQ8hI,QAAQqC,WAAa,IAAIgD,EACpC7+G,EAAGtoB,EAAQ8hI,QAAQqB,gBAAkBoE,EACrCj/G,EAAGtoB,EAAQ8hI,QAAQuB,mBAAqB2D,EAAW,mBAAoBV,GACvEh+G,EAAGtoB,EAAQ8hI,QAAQsC,iBAAmB4C,EAAW,QAAS,CAAC,SAC3D1+G,EAAGtoB,EAAQ8hI,QAAQuC,iBAAmB2C,EAAW,QAAS,CAAC,SAC3D1+G,EAAGtoB,EAAQ8hI,QAAQ4F,oBAAsBV,EAAW,mBAAoB,CAAC,SACzE1+G,GACJ,SAASq/G,EAAa9jH,EAAMpN,GACxB,GAAsB,SAAlBoN,EAAKjJ,SACL,OAxER,SAAoBy/B,EAAM5jC,GACtB,IAAIwd,EAAI,IAAIqxG,EAAgBjrF,EAAM5jC,GAClC,OAAKwd,EAAEzM,UAGPyM,EAAE+xG,uBAAuB,CAAC,WAAY,OAAQ,QAAS,UACvD/xG,EAAEzM,OAAO,QACTyM,EAAEG,KAAK,SAAS,SAAUmmB,EAAM9jC,GAC5B,IAAImxH,EAAQ,IAAItC,EAAgB/qF,EAAM9jC,GACtC,OAAKmxH,EAAMpgH,UAMXogH,EAAMvhI,OAAO,QACNuhI,EAAM3xG,QANF2xG,EAAM3xG,MAOrB,IACAhC,EAAE5tB,OAAO,SACF4tB,EAAEgC,QAhBEhC,EAAEgC,MAiBjB,CAoDe4xG,CAAWhkH,EAAMpN,GAE5B,IAAIwf,EAASwxG,EAAc5jH,EAAKjJ,UAAUoa,OAAOnR,EAAMpN,GACvD,GAAIwf,EAAOlyB,OAAS,EAChB,OAAOkyB,EAEX,IAAIhC,EAAI,IAAIqxG,EAAgBzhH,EAAMpN,GAMlC,OALAwd,EAAEG,KAAK,WAAW,SAAU8kC,EAAMziD,GAG9B,OAAOkxH,EAAazuE,EAAMziD,EAC9B,IACOwd,EAAEgC,MACb,CAaAj2B,EAAQ6jI,WAAaA,EACrB7jI,EAAQ2kI,eAAiBA,EACzB3kI,EAAQ+jI,SAAWA,EACnB/jI,EAAQujI,iBAAmBA,EAC3BvjI,EAAQwjI,aAAeA,EACvBxjI,EAAQgkI,gBAAkBA,EAC1BhkI,EAAQuiI,iBAAmBA,EAC3BviI,EAAQskI,SAAWA,EACnBtkI,EAAQikI,cAAgBA,EACxBjkI,EAAQ4jI,YAAcA,EACtB5jI,EAAQ8kI,QAAUA,EAClB9kI,EAAQ8nI,yBAvBuB,SAAU/wF,GACrC,IAAItgC,EAAO,IAAI2wH,EACXnzG,EAAI,IAAIqxG,EAAgBvuF,EAAUtgC,GAItC,OAHIwd,EAAEzM,UACFyM,EAAEmrF,KAAK,WAAY,CAACp/G,EAAQ6hI,OAAOqC,WAEnCjwG,EAAEgC,OAAOlyB,OAAS,EACXkwB,EAAEgC,OAEN0xG,EAAa5wF,EAAUtgC,EAClC,oBClxBA1W,EAAOC,QAAU,IAA0B,2HCG3C,MAAM+X,GAAUgwH,EAAAA,EAAAA,IAAqB,CACnCC,mBAAAA,CAAoBC,EAAWluH,GAC7B,MAAMkzF,EAAUvxD,OAAOr8C,OAAO26B,IAAIiuG,IAClC,OAAIh7B,EAEKA,EAAQlzF,GAGVA,GAAS,EAClB,IAGF,GAAI,CAAC,MAAO,UAAW,QAAQI,SAASynH,IAAAA,KAAe,CACrD,IAAIsG,EAAmBnwH,EAAQ1J,SAC/B0J,EAAQowH,QAAQC,IAEd,MAAMC,EAAuB,IAAIC,gBAAgBJ,EAAiB5pE,QAC5DiqE,EAAkB,IAAID,gBAAgBF,EAAY9pE,QAElDkqE,EAAkBH,EAAqBpzH,IAAI,MAGjD,IAFmBszH,EAAgBtzH,IAAI,OAEpBuzH,EAAiB,CAElC,MAAM17G,EAAe,IAAIw7G,gBAAgBj6H,SAASiwD,QAElDxxC,EAAavqB,IAAI,KAAMimI,GAEvB,MAAMC,EAAmB,GAAGp6H,SAASuuF,YAAY9vE,EAAantB,aAE9DoY,EAAQ8jB,QAAQ4sG,EAClB,CAEAP,EAAmBnwH,EAAQ1J,QAAQ,GAEvC,CAEA,yCCvCA9O,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IACtD,IACIyoI,EADU,EAAQ,QACCpS,gBAAgB,EAAQ,SAC3CqS,EAAwB,SAAU76H,GAAS,MAAO,CAACA,EAAQ,EAK/D9N,EAAA,QAJuB,SAAU4oI,EAAMC,GAEnC,YADuB,IAAnBA,IAA6BA,EAAiBF,GAC3C,SAAU76H,GAAS,OAAO46H,EAASziH,QAAQnY,EAAO86H,EAAK79H,WAAM,EAAQ89H,EAAe/6H,IAAU,CACzG,iCCmDAvO,OAAO8lB,eAAerlB,EAAS,mBAAoB,CACjDslB,YAAY,EACZrQ,IAAK,WACH,OAAO6zH,EAAqB,OAC9B,IAEgI9oI,EAAQ8X,cAAgB9X,EAAQ+oI,qBAAkB,EAEpL,IAAIC,EAAmBC,EAAuB,EAAQ,SAElDC,EAAWD,EAAuB,EAAQ,SAE1CE,EAAaF,EAAuB,EAAQ,SAE5CG,EAAaH,EAAuB,EAAQ,SAI5CH,GAFW,EAAQ,QAELG,EAAuB,EAAQ,UAEjD,SAASA,EAAuBlmI,GAAO,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,EAAO,CAEhG,IAAIgmI,GAA+B,EAAIC,EAA0B,SAAGI,EAAoB,SACxFppI,EAAQ+oI,gBAAkBA,EAC1B,IAAIjxH,GAA6B,EAAIoxH,EAAkB,SAAGE,EAAoB,SAC9EppI,EAAQ8X,cAAgBA,EAExB,IAAIuxH,GAAgC,EAAIF,EAAoB,SAAGC,EAAoB,SACjEC,EAAiB9b,YACnB8b,EAAiBC,UACnBD,EAAiBE,QACfF,EAAiBG,UACjBH,EAAiBI,UACPJ,EAAiBK,iDC1F3CnqI,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAGTD,EAAA,QAAkB,SAAU8C,GAC1B,OAAOA,GAA0B,iBAAhBA,EAAOK,KAA0B,8CAAgD,wCACpG,EAEApD,EAAOC,QAAUA,EAAiB,yWCClC,MAAM2pI,EAA8B,CAClCC,mBAAmB/8H,EAAAA,EAAAA,GAAE,wDACrBg9H,mBAAmBh9H,EAAAA,EAAAA,GACjB,4DAqBSi9H,EAAAA,sBAAe,WAAO,IACjC1wF,EAAG,UACH2wF,EAAS,QACTr3H,EAAU,CAAC,EAAC,OACZs3H,GAAS,EAAI,WACbC,GAAa,IAEb,IAAIC,EACAC,EAAaz3H,EAAQ2oD,MACzB,MAAM+uE,GAAMla,EAAAA,EAAAA,MACNnpG,EAASijH,EAAS,SAAW,QAGnC,IAAKC,EACH,IACEC,QAAkBG,EAAAA,EAAYC,WAAW,CACvCC,cAAenxF,IAIjB+wF,EAAaA,IAAcD,aAAAA,EAAAA,EAAW7uE,MACxC,CAAE,MAAO9xD,GACP2vC,EAAAA,GAAsB,sCAAuC,CAC3Di1B,MAAO,MACP4K,MAAO,CACLvwE,MAAOm6B,KAAKL,UAAU/4B,KAG5B,CASF,GAAI4gI,EAAY,CACd,MAAMK,iXAAe,yUACnBJ,OACG13H,GAAAA,CACH2oD,MAAO8uE,IAEHM,EAAW,IAAIl4F,IAAI,GAAG6G,8BAO5B,OANA75C,OAAOg/B,QAAQisG,GAAcpoI,SAAQ,EAAEE,EAAKrC,MAC1CwqI,EAAS39G,aAAagO,OAAOx4B,EAAKiE,OAAOtG,GAAO,SAGlDy7C,OAAOg6B,KAAK+0D,EAAS1Z,KAAMhqG,EAAQ,sBAGrC,CAaA,IAAI5c,EAAW,KASf,GAPK8/H,IACH9/H,QAAiBugI,EAAAA,EAAAA,GAAiB,CAChCrY,QAASj5E,EACT1mC,eAIAvI,aAAAA,EAAAA,EAAUwgI,MAAMV,EAGb,CACL,MAAMW,QAAmCzgI,EAAU8pF,OAEnD,MAAI01C,EAA4BiB,EAAQnqI,MAChC,IAAIiB,MAAMioI,EAA4BiB,EAAQnqI,OAE9C,IAAIiB,OAAMmL,EAAAA,EAAAA,GAAE,qBAEtB,CATE6uC,OAAOg6B,KAAKq0D,GAAa3wF,EAAKryB,EAAQ,sBAU1C,iMArFa+iH,mCAAAA,qBCnCb,IAAIe,EAAe,EAAQ,QAe3B9qI,EAAOC,QAJP,SAAsBsC,GACpB,OAAOuoI,EAAajnI,KAAKwc,SAAU9d,IAAQ,CAC7C,4GCbAvC,EAAOC,QAAU,IAA0B,wDCA3C,IAAI04H,EAAW,EAAQ,QAiDvB,SAASoS,EAAQxtG,EAAMytG,GACrB,GAAmB,mBAARztG,GAAmC,MAAZytG,GAAuC,mBAAZA,EAC3D,MAAM,IAAIpjF,UAhDQ,uBAkDpB,IAAIqjF,EAAW,WACb,IAAI5mI,EAAOzC,UACPW,EAAMyoI,EAAWA,EAAShgI,MAAMnH,KAAMQ,GAAQA,EAAK,GACnDmiB,EAAQykH,EAASzkH,MAErB,GAAIA,EAAMlN,IAAI/W,GACZ,OAAOikB,EAAMtR,IAAI3S,GAEnB,IAAI/B,EAAS+8B,EAAKvyB,MAAMnH,KAAMQ,GAE9B,OADA4mI,EAASzkH,MAAQA,EAAMhkB,IAAID,EAAK/B,IAAWgmB,EACpChmB,CACT,EAEA,OADAyqI,EAASzkH,MAAQ,IAAKukH,EAAQvyG,OAASmgG,GAChCsS,CACT,CAGAF,EAAQvyG,MAAQmgG,EAEhB34H,EAAOC,QAAU8qI,iCChEjB,IAAgC/nI,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFa,EAAQ,UAEAA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,qCCTb0lH,0BAkBJ,SAASC,EAAgBrnH,EAAMsnH,EAAgBxwG,EAAQquD,IAAUoiD,EAAW,GACxE,OAAKvnH,EAEDA,EAAKjJ,WAAaiJ,EAAKwnH,cAEvBD,EAAWzwG,GADH,EAGRwwG,EAAetnH,GACRunH,EACJF,EAAgBrnH,EAAKmzG,WAAYmU,EAAgBxwG,EAAOywG,EAAW,IAP9D,CAQhB,CACA,SAASE,EAAqB/vH,EAAWtO,GACrC,OAAQ4W,IACJ,MAAM0nH,EAAK1nH,EACX,GAAW,OAAP0nH,EACA,OAAO,EACX,IACI,GAAIhwH,EACA,GAAyB,iBAAdA,GACP,GAAIgwH,EAAGnoG,QAAQ,IAAI7nB,KACf,OAAO,OAEV,GA/BrB,SAAkCgwH,EAAIlwG,GAClC,IAAK,IAAImwG,EAASD,EAAGE,UAAU1nI,OAAQynI,KAAW,CAC9C,MAAMjwH,EAAYgwH,EAAGE,UAAUD,GAC/B,GAAInwG,EAAM7J,KAAKjW,GACX,OAAO,CAEf,CACA,OAAO,CACX,CAuByBmwH,CAAyBH,EAAIhwH,GAClC,OAAO,EAGf,SAAItO,IAAYs+H,EAAGnoG,QAAQn2B,GAG/B,CACA,MAAO0+H,GACH,OAAO,CACX,EAER,EAnDA,SAAWV,GACPA,EAASA,EAAmB,SAAI,GAAK,WACrCA,EAASA,EAAuB,aAAI,GAAK,eACzCA,EAASA,EAAkB,QAAI,GAAK,UACpCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,QAClCA,EAASA,EAAkB,QAAI,GAAK,SACvC,CAPD,CAOGA,IAAaA,EAAW,CAAC,IA8C5B,MAAMW,EAAiC,4NAKvC,IAAIC,EAAU,CACVlnI,IAAK,CAAC,EACNmnI,MAAK,KACDrwF,QAAQjzC,MAAMojI,IACN,GAEZG,QAAO,KACHtwF,QAAQjzC,MAAMojI,GACP,MAEX,iBAAAI,GACIvwF,QAAQjzC,MAAMojI,EAClB,EACAvyH,IAAG,KACCoiC,QAAQjzC,MAAMojI,IACP,GAEX,KAAAz1G,GACIslB,QAAQjzC,MAAMojI,EAClB,GAYJ,SAASK,EAAWllH,EAAQzkB,EAAK6c,EAAG+sH,EAAWp2B,EAAMp6D,QACjD,MAAM5M,EAAWgnE,EAAIv2G,OAAOonB,yBAAyBI,EAAQzkB,GAa7D,OAZAwzG,EAAIv2G,OAAO8lB,eAAe0B,EAAQzkB,EAAK4pI,EACjC/sH,EACA,CACE,GAAA5c,CAAItC,GACA+rD,GAAW,KACP7sC,EAAE5c,IAAIpC,KAAKyD,KAAM3D,EAAM,GACxB,GACC6uC,GAAYA,EAASvsC,KACrBusC,EAASvsC,IAAIpC,KAAKyD,KAAM3D,EAEhC,IAED,IAAMgsI,EAAWllH,EAAQzkB,EAAKwsC,GAAY,CAAC,GAAG,EACzD,CACA,SAASq9F,EAAMnlH,EAAQhb,EAAMugC,GACzB,IACI,KAAMvgC,KAAQgb,GACV,MAAO,OAGX,MAAM8nB,EAAW9nB,EAAOhb,GAClBi2B,EAAUsK,EAAYuC,GAW5B,MAVuB,mBAAZ7M,IACPA,EAAQziC,UAAYyiC,EAAQziC,WAAa,CAAC,EAC1CD,OAAOgoB,iBAAiB0a,EAAS,CAC7BmqG,mBAAoB,CAChB9mH,YAAY,EACZrlB,MAAO6uC,MAInB9nB,EAAOhb,GAAQi2B,EACR,KACHjb,EAAOhb,GAAQ8iC,CAAQ,CAE/B,CACA,MAAO68F,GACH,MAAO,MAEX,CACJ,CAWA,SAASU,EAAUxoH,EAAMyoH,EAAYC,EAAeC,EAAiBC,GACjE,IAAK5oH,EACD,OAAO,EAEX,MAAM0nH,EAbV,SAA8B1nH,GAC1B,OAAKA,EAGMA,EAAKjJ,WAAaiJ,EAAKwnH,aAC5BxnH,EACAA,EAAKm2B,cAJA,IAMf,CAKe0yF,CAAqB7oH,GAChC,IAAK0nH,EACD,OAAO,EAEX,MAAMoB,EAAmBrB,EAAqBgB,EAAYC,GAC1D,IAAKE,EAAgB,CACjB,MAAMG,EAAcJ,GAAmBjB,EAAGnoG,QAAQopG,GAClD,OAAOG,EAAiBpB,KAAQqB,CACpC,CACA,MAAMC,EAAgB3B,EAAgBK,EAAIoB,GAC1C,IAAIG,GAAmB,EACvB,QAAID,EAAgB,KAGhBL,IACAM,EAAkB5B,EAAgBK,EAAID,EAAqB,KAAMkB,KAEjEK,GAAiB,GAAKC,EAAkB,GAGrCD,EAAgBC,EAC3B,CAxFsB,oBAAXpxF,QAA0BA,OAAOqxF,OAASrxF,OAAOtiC,UACxDyyH,EAAU,IAAIkB,MAAMlB,EAAS,CACzB52H,IAAG,CAAC8R,EAAQnZ,EAAMo/H,KACD,QAATp/H,GACA6tC,QAAQjzC,MAAMojI,GAEXxyH,QAAQnE,IAAI8R,EAAQnZ,EAAMo/H,OA+CvC,iBAAiBx7G,KAAK5J,KAAKC,MAAMloB,YAoCvC,MAAMstI,EAAwB,CAAC,EAC/B,SAASC,EAAkBlhI,GACvB,MAAMmhI,EAASF,EAAsBjhI,GACrC,GAAImhI,EACA,OAAOA,EAEX,MAAMp2F,EAAW2E,OAAO3E,SACxB,IAAIq2F,EAAO1xF,OAAO1vC,GAClB,GAAI+qC,GAA8C,mBAA3BA,EAASjwB,cAC5B,IACI,MAAMuG,EAAU0pB,EAASjwB,cAAc,UACvCuG,EAAQggH,QAAS,EACjBt2F,EAAS9d,KAAKghB,YAAY5sB,GAC1B,MAAMigH,EAAgBjgH,EAAQigH,cAC1BA,GAAiBA,EAActhI,KAC/BohI,EACIE,EAActhI,IAEtB+qC,EAAS9d,KAAKojB,YAAYhvB,EAC9B,CACA,MAAO/sB,GACP,CAEJ,OAAQ2sI,EAAsBjhI,GAAQohI,EAAKx6H,KAAK8oC,OACpD,CACA,SAAS6xF,KAA2BC,GAChC,OAAON,EAAkB,wBAAlBA,IAA8CM,EACzD,CACA,SAASxhF,KAAcwhF,GACnB,OAAON,EAAkB,aAAlBA,IAAmCM,EAC9C,CAEA,IAAIC,EAAgC,CAAEC,IACpCA,EAAeA,EAAe,MAAQ,GAAK,KAC3CA,EAAeA,EAAsB,MAAI,GAAK,QAC9CA,EAAeA,EAAuB,OAAI,GAAK,SACxCA,GAJ2B,CAKjCD,GAAiB,CAAC,GAErB,IAAIE,EACJ,SAASC,EAAqBC,GAC1BF,EAAeE,CACnB,CACA,MAAMC,EAAmBhmI,GAChB6lI,EAGgB,IAAKH,KACtB,IACI,OAAO1lI,KAAM0lI,EACjB,CACA,MAAOhlI,GACH,GAAImlI,IAAwC,IAAxBA,EAAanlI,GAC7B,MAAO,OAGX,MAAMA,CACV,CACH,EAbUV,EAyBf,IAHA,IAAIimI,EAAQ,mEAERC,EAA+B,oBAAf50B,WAA6B,GAAK,IAAIA,WAAW,KAC5D1xG,EAAI,EAAGA,EAAIqmI,GAAcrmI,IAC9BsmI,EAAOD,EAAM78F,WAAWxpC,IAAMA,EAmBlC,MAAMumI,EAAe,IAAIlsI,IAYnBmsI,EAAe,CAACjuI,EAAO61G,EAAK/yF,KAC9B,IAAK9iB,IACCkuI,EAAwBluI,EAAO61G,IAAyB,iBAAV71G,EAChD,OACJ,MACMoa,EAhBV,SAAyB0I,EAAKqrH,GAC1B,IAAIC,EAAaJ,EAAah5H,IAAI8N,GAQlC,OAPKsrH,IACDA,EAAa,IAAItsI,IACjBksI,EAAa1rI,IAAIwgB,EAAKsrH,IAErBA,EAAWh1H,IAAI+0H,IAChBC,EAAW9rI,IAAI6rI,EAAM,IAElBC,EAAWp5H,IAAIm5H,EAC1B,CAMiBE,CAAgBvrH,EADhB9iB,EAAM0uB,YAAY3iB,MAE/B,IAAIqL,EAAQgD,EAAK0nB,QAAQ9hC,GAKzB,OAJe,IAAXoX,IACAA,EAAQgD,EAAKtW,OACbsW,EAAK5U,KAAKxF,IAEPoX,CAAK,EAEhB,SAASk3H,EAAatuI,EAAO61G,EAAK/yF,GAC9B,GAAI9iB,aAAiBiS,MACjB,OAAOjS,EAAM0E,KAAKX,GAAQuqI,EAAavqI,EAAK8xG,EAAK/yF,KAEhD,GAAc,OAAV9iB,EACL,OAAOA,EAEN,GAAIA,aAAiBuuI,cACtBvuI,aAAiBwuI,cACjBxuI,aAAiByuI,YACjBzuI,aAAiB0uI,aACjB1uI,aAAiBm5G,YACjBn5G,aAAiB2uI,aACjB3uI,aAAiB4uI,YACjB5uI,aAAiB6uI,WACjB7uI,aAAiB8uI,kBAEjB,MAAO,CACHC,QAFS/uI,EAAM0uB,YAAY3iB,KAG3B5H,KAAM,CAAC7E,OAAO4gB,OAAOlgB,KAGxB,GAAIA,aAAiBgvI,YAAa,CACnC,MAAMjjI,EAAO/L,EAAM0uB,YAAY3iB,KACzB2gC,EAlED,SAAUuiG,GACnB,IAAyCxnI,EAArCynI,EAAQ,IAAI/1B,WAAW81B,GAAiBvnI,EAAMwnI,EAAMprI,OAAQ4oC,EAAS,GACzE,IAAKjlC,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EACtBilC,GAAUohG,EAAMoB,EAAMznI,IAAM,GAC5BilC,GAAUohG,GAAmB,EAAXoB,EAAMznI,KAAW,EAAMynI,EAAMznI,EAAI,IAAM,GACzDilC,GAAUohG,GAAuB,GAAfoB,EAAMznI,EAAI,KAAY,EAAMynI,EAAMznI,EAAI,IAAM,GAC9DilC,GAAUohG,EAAqB,GAAfoB,EAAMznI,EAAI,IAQ9B,OANIC,EAAM,GAAM,EACZglC,EAASA,EAAO5rC,UAAU,EAAG4rC,EAAO5oC,OAAS,GAAK,IAE7C4D,EAAM,GAAM,IACjBglC,EAASA,EAAO5rC,UAAU,EAAG4rC,EAAO5oC,OAAS,GAAK,MAE/C4oC,CACX,CAmDuB7K,CAAO7hC,GACtB,MAAO,CACH+uI,QAAShjI,EACT2gC,SAER,CACK,GAAI1sC,aAAiBmvI,SAEtB,MAAO,CACHJ,QAFS/uI,EAAM0uB,YAAY3iB,KAG3B5H,KAAM,CACFmqI,EAAatuI,EAAMqN,OAAQwoG,EAAK/yF,GAChC9iB,EAAMi4F,WACNj4F,EAAMi6G,aAIb,GAAIj6G,aAAiBovI,iBAAkB,CACxC,MAAMrjI,EAAO/L,EAAM0uB,YAAY3iB,MACzB,IAAEytC,GAAQx5C,EAChB,MAAO,CACH+uI,QAAShjI,EACTytC,MAER,CACK,OAAIx5C,aAAiBqvI,kBAGf,CACHN,QAHS,mBAITv1F,IAHQx5C,EAAMsvI,aAMbtvI,aAAiBuvI,UAEf,CACHR,QAFS/uI,EAAM0uB,YAAY3iB,KAG3B5H,KAAM,CAACmqI,EAAatuI,EAAMuN,KAAMsoG,EAAK/yF,GAAM9iB,EAAMshD,MAAOthD,EAAMkhD,SAG7DgtF,EAAwBluI,EAAO61G,IAAyB,iBAAV71G,EAG5C,CACH+uI,QAHS/uI,EAAM0uB,YAAY3iB,KAI3BqL,MAHU62H,EAAajuI,EAAO61G,EAAK/yF,IAMpC9iB,CACX,CACA,MAAMwvI,EAAgB,CAACrrI,EAAM0xG,EAAK/yF,IACvB3e,EAAKO,KAAKX,GAAQuqI,EAAavqI,EAAK8xG,EAAK/yF,KAE9CorH,EAA0B,CAACluI,EAAO61G,KACpC,MAaM45B,EAbwB,CAC1B,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBACA,6BAEyDh5H,QAAQ1K,GAA8B,mBAAd8pG,EAAI9pG,KACzF,OAAOiY,QAAQyrH,EAA+BxwD,MAAMlzE,GAAS/L,aAAiB61G,EAAI9pG,KAAO,EAkD7F,SAAS2jI,EAA0B75B,EAAKw2B,EAAYC,EAAeC,EAAiBoD,GAChF,MAAM/xC,EAAW,GACjB,IACI,MAAMgyC,EAAiB1D,EAAMr2B,EAAIw5B,kBAAkB9vI,UAAW,cAAc,SAAUsvC,GAClF,OAAO,SAAUghG,KAAgB1rI,GAC7B,IAAKioI,EAAUzoI,KAAM0oI,EAAYC,EAAeC,GAAiB,GAAO,CACpE,MAAMuD,EAT1B,SAAkCD,GAC9B,MAAuB,uBAAhBA,EAAuC,QAAUA,CAC5D,CAOoCE,CAAyBF,GAGzC,GAFM,cAAelsI,OACjBA,KAAKqsI,UAAYF,GACjBH,GACA,CAAC,QAAS,UAAUz1H,SAAS41H,GAC7B,GAAI3rI,EAAK,IAAyB,iBAAZA,EAAK,GAAiB,CACxC,MAAM8rI,EAAoB9rI,EAAK,GAC1B8rI,EAAkBC,wBACnBD,EAAkBC,uBAAwB,EAElD,MAEI/rI,EAAKuyC,OAAO,EAAG,EAAG,CACdw5F,uBAAuB,GAIvC,CACA,OAAOrhG,EAAS/jC,MAAMnH,KAAM,CAACksI,KAAgB1rI,GACjD,CACJ,IACAy5F,EAASp4F,KAAKoqI,EAClB,CACA,MAAOvvI,GACHm7C,QAAQjzC,MAAM,yDAClB,CACA,MAAO,KACHq1F,EAASz7F,SAAS6c,GAAMA,KAAI,CAEpC,CAEA,SAASmxH,EAAiB5wI,EAAW2D,EAAM2E,EAAIwkI,EAAYC,EAAeC,EAAiB6D,EAAQv6B,GAC/F,MAAMjY,EAAW,GACX/vF,EAAQvO,OAAOqyC,oBAAoBpyC,GACzC,IAAK,MAAMoO,KAAQE,EACf,IAAI,CACA,gBACA,SACA,qBACA,uBACFqM,SAASvM,GAGX,IACI,GAA+B,mBAApBpO,EAAUoO,GACjB,SAEJ,MAAMiiI,EAAiB1D,EAAM3sI,EAAWoO,GAAM,SAAUkhC,GACpD,OAAO,YAAa1qC,GAChB,MAAM7D,EAASuuC,EAAS/jC,MAAMnH,KAAMQ,GAEpC,GADA8pI,EAAa3tI,EAAQu1G,EAAKlyG,MACtB,YAAaA,KAAK0sI,SACjBjE,EAAUzoI,KAAK0sI,OAAQhE,EAAYC,EAAeC,GAAiB,GAAO,CAC3E,MAAM+D,EAAad,EAAcrrI,EAAM0xG,EAAKlyG,MACtC4sI,EAAW,CACbrtI,OACAiiI,SAAUx3H,EACVxJ,KAAMmsI,GAEVzoI,EAAGlE,KAAK0sI,OAAQE,EACpB,CACA,OAAOjwI,CACX,CACJ,IACAs9F,EAASp4F,KAAKoqI,EAClB,CACA,MAAOvvI,GACH,MAAMmwI,EAAcxE,EAAWzsI,EAAWoO,EAAM,CAC5C,GAAArL,CAAIksB,GACA3mB,EAAGlE,KAAK0sI,OAAQ,CACZntI,OACAiiI,SAAUx3H,EACVxJ,KAAM,CAACqqB,GACP2R,QAAQ,GAEhB,IAEJy9D,EAASp4F,KAAKgrI,EAClB,CAEJ,OAAO5yC,CACX,CAgBA,MAAM6yC,EACF,KAAAv6G,GACIvyB,KAAK+sI,uBAAuB/hI,QAC5BhL,KAAKgtI,gBAAgBxuI,SAASyrI,IAC1B,IACIA,GACJ,CACA,MAAOvtI,GACP,KAEJsD,KAAKgtI,gBAAkB,GACvBhtI,KAAKitI,WAAa,IAAIn/F,QACtB9tC,KAAKktI,QAAU,GACfltI,KAAKmtI,WAAa,IAAIz4G,KACtB,QAAe,CAAC10B,KAAM,SAAU+gC,GAAKA,EAAEqsG,OAAQ,iBAAkBC,GAAMA,EAAGC,UAAW,OAAQC,GAAMA,MACnGvtI,KAAKotI,OAAS,KACdptI,KAAKwtI,sBAAwB,IAAIrvI,KAC5B6B,KAAK8O,QAAQ2+H,cACmB,iBAA1BztI,KAAK8O,QAAQ4+H,UACpB1tI,KAAK8O,QAAQ6+H,wBACb3tI,KAAKotI,OAASptI,KAAK4tI,gBAE3B,CACA,MAAAzM,GACInhI,KAAK6tI,QAAS,CAClB,CACA,QAAAC,GACI9tI,KAAK6tI,QAAS,CAClB,CACA,IAAAE,GACI/tI,KAAKwmE,QAAS,CAClB,CACA,MAAAwnE,GACIhuI,KAAKwmE,QAAS,CAClB,CACA,WAAAz7C,CAAYjc,GACR9O,KAAK+sI,uBAAyB,IAAI5uI,IAClC6B,KAAKiuI,UAAY,CAAEC,SAAU,EAAGC,SAAU,MAC1CnuI,KAAKmtI,WAAa,IAAIz4G,IACtB10B,KAAKitI,WAAa,IAAIn/F,QACtB9tC,KAAKktI,QAAU,GACfltI,KAAKgtI,gBAAkB,GACvBhtI,KAAK6tI,QAAS,EACd7tI,KAAKwmE,QAAS,EACdxmE,KAAKwtI,sBAAwB,IAAIrvI,IACjC6B,KAAKotI,OAAS,KACdptI,KAAKouI,gBAAkB,CAACjrH,EAAQypH,OACX5sI,KAAKiuI,UAAUE,UAC5BnuI,KAAKiuI,UAAUC,WAAaluI,KAAKiuI,UAAUE,WAC9BnuI,KAAKiuI,UAAUE,WAC5BnuI,KAAKiuI,UAAUE,SAAWnuI,KAAKiuI,UAAUC,UACxCluI,KAAK+sI,uBAAuBt3H,IAAI0N,IACjCnjB,KAAK+sI,uBAAuBpuI,IAAIwkB,EAAQ,IAE5CnjB,KAAK+sI,uBAAuB17H,IAAI8R,GAAQthB,KAAK+qI,EAAS,EAE1D,MAAM,SAAEc,EAAW,MAAK,IAAEx7B,EAAG,WAAEw2B,EAAU,cAAEC,EAAa,gBAAEC,EAAe,cAAEyF,EAAa,aAAEZ,EAAY,eAAEa,EAAc,aAAEvE,GAAkBj7H,EAC1I9O,KAAKuuI,WAAaz/H,EAAQy/H,WAC1BvuI,KAAKysI,OAAS39H,EAAQ29H,OACtBzsI,KAAK8O,QAAUA,EACXi7H,GACAC,EAAqBD,IAEpB0D,GAAoC,iBAAbC,GACxB5+H,EAAQ6+H,wBACR3tI,KAAKotI,OAASptI,KAAK4tI,iBAEvB5tI,KAAKwuI,UAAUt8B,GACXpjG,EAAQ6+H,sBAGZzD,GAAgB,KACRuD,GAA6B,QAAbC,IAChB1tI,KAAKyuI,uBACLzuI,KAAK0uI,qCAELjB,GAAoC,iBAAbC,GACvB1tI,KAAK2uI,sBAAsBjB,EAAUhF,EAAYC,EAAeC,EAAiByF,EAAe,CAC5FC,kBAER,GATJpE,EAWJ,CACA,SAAAsE,CAAUt8B,GACN,MAAM,SAAEw7B,EAAW,MAAK,WAAEhF,EAAU,cAAEC,EAAa,gBAAEC,EAAe,aAAE6E,EAAY,qBAAEE,GAA0B3tI,KAAK8O,QACnH,IAAI9O,KAAKitI,WAAWx3H,IAAIy8F,GAAxB,CAEA,GAAIy7B,EAGA,OAFA3tI,KAAKitI,WAAWh4H,IAAIi9F,QACpBlyG,KAAKktI,QAAQrrI,KAAK,IAAI+sI,QAAQ18B,IAGlCg4B,GAAgB,KAIZ,GAHIuD,GAA6B,QAAbC,GAChB1tI,KAAK6uI,2BAA2B38B,EAAKw2B,EAAYC,EAAeC,GAEhE6E,GAAoC,iBAAbC,EAAuB,CAC9C,MAAMoB,EAAqB/C,EAA0B75B,EAAKw2B,EAAYC,EAAeC,GAAiB,GACtG5oI,KAAKgtI,gBAAgBnrI,MAAK,KACtBitI,GAAoB,GAE5B,IATJ5E,GAWAlqI,KAAKitI,WAAWh4H,IAAIi9F,GACpBlyG,KAAKktI,QAAQrrI,KAAK,IAAI+sI,QAAQ18B,GAlBpB,CAmBd,CACA,aAAA68B,CAAcC,GACVhvI,KAAKmtI,WAAWl4H,IAAI,IAAI25H,QAAQI,GACpC,CACA,gBAAAC,GACIjvI,KAAKmtI,WAAa,IAAIz4G,GAC1B,CACA,aAAAk5G,GACI,MAAMR,EAAS,IAAI8B,OAnH3B,WAAa,MAAMjmI,EAAE,IAAIkmI,KAAK,CAFtB,kgDAE2B,OAAOxgG,IAAIygG,gBAAgBnmI,EAAE,CAmH9BA,IAsC1B,OArCAmkI,EAAOiC,UAAa3yI,IAChB,MAAMkN,EAAOlN,EAAEkN,MACT,GAAEsD,GAAOtD,EAEf,GADA5J,KAAKwtI,sBAAsB7uI,IAAIuO,GAAI,KAC7B,WAAYtD,GACd,OACJ,MAAM,OAAEm/B,EAAM,KAAExpC,EAAI,MAAEo+C,EAAK,OAAEJ,GAAW3zC,EACxC5J,KAAKuuI,WAAW,CACZrhI,KACA3N,KAAMsqI,EAAc,MACpByF,SAAU,CACN,CACI9N,SAAU,YACVhhI,KAAM,CAAC,EAAG,EAAGm9C,EAAOJ,IAExB,CACIikF,SAAU,YACVhhI,KAAM,CACF,CACI4qI,QAAS,cACT5qI,KAAM,CACF,CACI4qI,QAAS,OACTxhI,KAAM,CAAC,CAAEwhI,QAAS,cAAeriG,WACjCxpC,UAIZ,EACA,EACAo+C,EACAJ,MAId,EAEC6vF,CACX,CACA,qBAAAuB,CAAsBY,EAAK7G,EAAYC,EAAeC,EAAiByF,EAAev/H,GAClF,MAAM0gI,EAAQxvI,KAAKyvI,cAAa,EAAOF,EAAK7G,EAAYC,EAAeC,EAAiByF,EAAev/H,EAAQw/H,gBAC/GtuI,KAAKgtI,gBAAgBnrI,MAAK,KACtB6mD,qBAAqB8mF,EAAM,GAEnC,CACA,0BAAAX,CAA2B38B,EAAKw2B,EAAYC,EAAeC,GACvD,MAAMkG,EAAqB/C,EAA0B75B,EAAKw2B,EAAYC,EAAeC,GAAiB,GAChG8G,EAvTd,SAAsCxrI,EAAIguG,EAAKw2B,EAAYC,EAAeC,GACtE,MAAM3uC,EAAW,GACX01C,EAAUh0I,OAAOqyC,oBAAoBkkE,EAAI09B,yBAAyBh0I,WACxE,IAAK,MAAMoO,KAAQ2lI,EACf,IACI,GAA4D,mBAAjDz9B,EAAI09B,yBAAyBh0I,UAAUoO,GAC9C,SAEJ,MAAMiiI,EAAiB1D,EAAMr2B,EAAI09B,yBAAyBh0I,UAAWoO,GAAM,SAAUkhC,GACjF,OAAO,YAAa1qC,GAWhB,OAVKioI,EAAUzoI,KAAK0sI,OAAQhE,EAAYC,EAAeC,GAAiB,IACpExgF,GAAW,KACP,MAAMukF,EAAad,EAAcrrI,EAAM0xG,EAAKlyG,MAC5CkE,EAAGlE,KAAK0sI,OAAQ,CACZntI,KAAMsqI,EAAc,MACpBrI,SAAUx3H,EACVxJ,KAAMmsI,GACR,GACH,GAEAzhG,EAAS/jC,MAAMnH,KAAMQ,EAChC,CACJ,IACAy5F,EAASp4F,KAAKoqI,EAClB,CACA,MAAOvvI,GACH,MAAMmwI,EAAcxE,EAAWn2B,EAAI09B,yBAAyBh0I,UAAWoO,EAAM,CACzE,GAAArL,CAAIksB,GACA3mB,EAAGlE,KAAK0sI,OAAQ,CACZntI,KAAMsqI,EAAc,MACpBrI,SAAUx3H,EACVxJ,KAAM,CAACqqB,GACP2R,QAAQ,GAEhB,IAEJy9D,EAASp4F,KAAKgrI,EAClB,CAEJ,MAAO,KACH5yC,EAASz7F,SAAS6c,GAAMA,KAAI,CAEpC,CA6Q8Bw0H,CAA6B7vI,KAAKouI,gBAAgBp/H,KAAKhP,MAAOkyG,EAAKw2B,EAAYC,EAAeC,GAC9GkH,EAjLd,SAAyC5rI,EAAIguG,EAAKw2B,EAAYC,EAAeC,EAAiB6D,GAC1F,MAAMxyC,EAAW,GAKjB,OAJAA,EAASp4F,QAAQ2qI,EAAiBt6B,EAAI69B,sBAAsBn0I,UAAWiuI,EAAcmG,MAAO9rI,EAAIwkI,EAAYC,EAAeC,EAAiB6D,EAAQv6B,SAC1G,IAA/BA,EAAI+9B,wBACXh2C,EAASp4F,QAAQ2qI,EAAiBt6B,EAAI+9B,uBAAuBr0I,UAAWiuI,EAAcqG,OAAQhsI,EAAIwkI,EAAYC,EAAeC,EAAiB6D,EAAQv6B,IAEnJ,KACHjY,EAASz7F,SAAS6c,GAAMA,KAAI,CAEpC,CAwKsC80H,CAAgCnwI,KAAKouI,gBAAgBp/H,KAAKhP,MAAOkyG,EAAKw2B,EAAYC,EAAeC,EAAiB5oI,KAAKysI,QACrJzsI,KAAKgtI,gBAAgBnrI,MAAK,KACtBitI,IACAY,IACAI,GAAuB,GAE/B,CACA,QAAA19G,CAASg+G,GACL,MAAM,QAAEthI,GAAY9O,KACdwvI,EAAQxvI,KAAKyvI,cAAa,EAA2B,QAArB3gI,EAAQ4+H,SAAqB,EAAI5+H,EAAQ4+H,UAAY,EAAG5+H,EAAQ45H,WAAY55H,EAAQ65H,cAAe75H,EAAQ85H,gBAAiB95H,EAAQu/H,cAAev/H,EAAQw/H,eAAgB8B,GACjNpwI,KAAKgtI,gBAAgBnrI,MAAK,KACtB6mD,qBAAqB8mF,EAAM,GAEnC,CACA,YAAAC,CAAaY,EAAkBd,EAAK7G,EAAYC,EAAeC,EAAiByF,EAAeC,EAAgB8B,GAC3G,MAAME,EAAuB,IAAOf,EACpC,IACIC,EADAe,EAAmB,EAEvB,MAAMC,EAAaJ,IACf,GAAIA,EACA,MAAO,CAACA,GAEZ,MAAMK,EAAgB,GAChBC,EAAgB75H,IAClBA,EAAK2xD,iBAAiB,UAAUhqE,SAASkuI,IAChCjE,EAAUiE,EAAQhE,EAAYC,EAAeC,GAAiB,IAC/D6H,EAAc5uI,KAAK6qI,EACvB,GACF,EAEN,IAAK,MAAMp3E,KAAQt1D,KAAKktI,QAAS,CAC7B,MAAMp1F,EAASwd,EAAKq7E,QAChB74F,GACA44F,EAAa54F,EAAO3E,SAE5B,CACA,IAAK,MAAMmiB,KAAQt1D,KAAKmtI,WAAY,CAChC,MAAM6B,EAAa15E,EAAKq7E,QACpB3B,GACA0B,EAAa1B,EAErB,CACA,OAAOyB,CAAa,EAElBG,EAAuBluG,IACpB1iC,KAAKktI,QAAQ/sI,SAGdowI,GACA7tG,EAAY6tG,EAAmBD,EAC/Bd,EAAQ7F,EAAwBiH,IAGpCL,EAAmB7tG,EACnB8tG,EAAUJ,GAAe5xI,SAASkuI,IAC9B,IAAK1sI,KAAKysI,OAAOoE,QAAQnE,GACrB,OAEJ,MAAMx/H,EAAKlN,KAAKysI,OAAOvE,MAAMwE,GAC7B,IAAI1sI,KAAKwtI,sBAAsBn8H,IAAInE,IAE9Bw/H,EAAO/uF,OAAU+uF,EAAOnvF,OAA7B,CAGA,GADAv9C,KAAKwtI,sBAAsB7uI,IAAIuO,GAAI,IAC9BmjI,GACD,CAAC,QAAS,UAAU95H,SAASm2H,EAAOL,WAAY,CAChD,MAAMplI,EAAUylI,EAAOoE,WAAWpE,EAAOL,YACgH,KAArJ,QAAe,CAACplI,EAAS,iBAAkB8pI,GAAMA,EAAGC,qBAAsB,OAAQC,GAAMA,IAAM,iBAAkBC,GAAMA,EAAG3E,yBACzHtlI,EAAQ+D,MAAM/D,EAAQkqI,iBAE9B,CACAC,kBAAkB1E,GACb/nI,MAAM0sI,KACP,QAAe,CAACrxI,KAAM,SAAUsxI,GAAMA,EAAGlE,OAAQ,iBAAkBmE,GAAMA,EAAGC,YAAa,OAAQC,GAAMA,EAAG,CACtGvkI,KACAmkI,SACA1zF,MAAO+uF,EAAO/uF,MACdJ,OAAQmvF,EAAOnvF,OACf+wF,iBACAD,iBACD,CAACgD,KAAU,IAEbzP,OAAOh9H,IACRslI,GAAgB,KACZ,MAAMtlI,CAAK,GADfslI,EAEI,GAvBE,CAwBR,IAEDmG,IACDb,EAAQ7F,EAAwBiH,KACpC,EAGJ,OADApB,EAAQ7F,EAAwBiH,GACzBpB,CACX,CACA,iCAAAd,GACI/E,GAAwB,IAAM3pI,KAAK0xI,+BACvC,CACA,oBAAAjD,GACI,MAAMkD,EAAyBjvG,IAC3B1iC,KAAKiuI,UAAUC,SAAWxrG,EAC1BinG,EAAwBgI,EAAsB,EAElDhI,EAAwBgI,EAC5B,CACA,2BAAAD,GACI1xI,KAAK+sI,uBAAuBvuI,SAAQ,CAAC+d,EAAQmwH,KACzC,MAAMx/H,EAAKlN,KAAKysI,OAAOvE,MAAMwE,GAC7B1sI,KAAK4xI,8BAA8BlF,EAAQx/H,EAAG,IAElDy8H,GAAwB,IAAM3pI,KAAK0xI,+BACvC,CACA,6BAAAE,CAA8BlF,EAAQx/H,GAClC,GAAIlN,KAAK6tI,QAAU7tI,KAAKwmE,OACpB,OAEJ,MAAMqrE,EAAiB7xI,KAAK+sI,uBAAuB17H,IAAIq7H,GACvD,IAAKmF,IAA0B,IAAR3kI,EACnB,OACJ,MAAMqP,EAASs1H,EAAe9wI,KAAK1E,IAC/B,MAAM,KAAEkD,KAASqqI,GAASvtI,EAC1B,OAAOutI,CAAI,KAET,KAAErqI,GAASsyI,EAAe,GAChC7xI,KAAKuuI,WAAW,CAAErhI,KAAI3N,OAAM+vI,SAAU/yH,IACtCvc,KAAK+sI,uBAAuB/tI,OAAO0tI,EACvC,EAGJ,MAAMoF,EAAiB,CACrBtrD,IAAK,CACHknD,SAAU,CACRhB,OAAQ,GAEV4B,eAAgB,CACd/uI,KAAM,aACNwyI,QAAS,MAGbC,OAAQ,CACNtE,SAAU,CACRhB,OAAQ,GAEV4B,eAAgB,CACd/uI,KAAM,aACNwyI,QAAS,KAGbtrD,KAAM,CACJinD,SAAU,CACRhB,OAAQ,GAEV4B,eAAgB,CACd/uI,KAAM,aACNwyI,QAAS,MAMTE,EAA0B,MAyDA,SAtDC,CAAEnjI,EAAU,CAAC,KAC5C,MAAOojI,EAAgBC,GAAmBrjI,EAAQu/H,eAAiB,GAC7D+D,EAAiB,CACrBL,QAASjjI,EAAQijI,SAAW,SAC5BpE,qBAAsB7+H,EAAQ6+H,qBAC9BU,cAAe,CACb6D,EAAiBj1I,KAAK6+B,IAAIo2G,EAAgBD,GAA2BA,EACrEE,EAAkBl1I,KAAK6+B,IAAIq2G,EAAiBF,GAA2BA,IAI3E,IAAII,EACJ,MAAMC,EAAiB,IAAInxI,SAAQC,GAAYixI,EAAuBjxI,IAEtE,MAAO,CACLgH,KAnBqB,eAoBrB,UAAAkX,GACE,MAAM,QAAEyyH,EAAO,qBAAEpE,EAAoB,cAAEU,GAAkB+D,EAEzD,MAAO,CACLzE,uBACAF,cAAc,EACd8E,iBAAmBC,IACjB,MAAMC,EAAU,IAAI3F,EAAc,IAC7B0F,EACH7E,uBACAU,gBACAtE,aAAepkI,IACb,IACqB,iBAARA,IACT,EAAO+sI,WAAY,EAEvB,CAAE,MAAO9tI,GAGT,KAIJ,OADAytI,EAAqBI,GACdA,CAAO,KAEZX,EAAeC,GAAW,WAAaD,EAAeE,OAE9D,EACA,cAAM5/G,CAASg+G,UACekC,GACdlgH,SAASg+G,EACzB,EAEH,sBC14BD,IAAIuC,EAAa,EAAQ,QASrB92I,EAHcF,OAAOC,UAGQC,eAgFjCM,EAAOC,QAjEP,SAAsBwnB,EAAQ0hD,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACnE,IAAIg/E,EAtBqB,EAsBTF,EACZiC,EAAW87B,EAAW/uH,GACtBkzF,EAAYD,EAAS12G,OAIzB,GAAI22G,GAHW67B,EAAWrtE,GACDnlE,SAEM20G,EAC7B,OAAO,EAGT,IADA,IAAIrhG,EAAQqjG,EACLrjG,KAAS,CACd,IAAI/U,EAAMm4G,EAASpjG,GACnB,KAAMqhG,EAAYp2G,KAAO4mE,EAAQzpE,EAAeU,KAAK+oE,EAAO5mE,IAC1D,OAAO,CAEX,CAEA,IAAIq4G,EAAajhF,EAAMzkB,IAAIuS,GACvBsxF,EAAap/E,EAAMzkB,IAAIi0D,GAC3B,GAAIyxC,GAAc7B,EAChB,OAAO6B,GAAczxC,GAAS4vC,GAActxF,EAE9C,IAAIjnB,GAAS,EACbm5B,EAAMn3B,IAAIilB,EAAQ0hD,GAClBxvC,EAAMn3B,IAAI2mE,EAAO1hD,GAGjB,IADA,IAAIozF,EAAWlC,IACNrhG,EAAQqjG,GAAW,CAE1B,IAAIz4C,EAAWz6C,EADfllB,EAAMm4G,EAASpjG,IAEX4hG,EAAW/vC,EAAM5mE,GAErB,GAAIy/D,EACF,IAAIm3C,EAAWR,EACX32C,EAAWk3C,EAAUh3C,EAAU3/D,EAAK4mE,EAAO1hD,EAAQkS,GACnDqoC,EAAWE,EAAUg3C,EAAU32G,EAAKklB,EAAQ0hD,EAAOxvC,GAGzD,UAAmB55B,IAAbo5G,EACGj3C,IAAag3C,GAAYR,EAAUx2C,EAAUg3C,EAAUT,EAASz2C,EAAYroC,GAC7Ew/E,GACD,CACL34G,GAAS,EACT,KACF,CACAq6G,IAAaA,EAAkB,eAAPt4G,EAC1B,CACA,GAAI/B,IAAWq6G,EAAU,CACvB,IAAIC,EAAUrzF,EAAOmH,YACjBmsF,EAAU5xC,EAAMv6C,YAGhBksF,GAAWC,KACV,gBAAiBtzF,MAAU,gBAAiB0hD,IACzB,mBAAX2xC,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDv6G,GAAS,EAEb,CAGA,OAFAm5B,EAAc,OAAElS,GAChBkS,EAAc,OAAEwvC,GACT3oE,CACT,oBCvFAR,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3C,IAGIX,EAHO,EAAQ,QAGDA,OAElBU,EAAOC,QAAUX,yQCQV,SAAS2kC,EAAQvR,EAAOlR,IAC7B,QAAKkR,EAAO,uBAAuBtnB,OAAOoW,GAC5C,CACO,SAASi1H,EAAiBzvH,GAC/B,MAA2B,YAApB,OAAQA,IAA+C,iBAAhBA,EAAO/a,MAA6C,iBAAjB+a,EAAOsuC,QAAgD,YAAzB,OAAQtuC,EAAOM,OAA6C,mBAAhBN,EAAOM,KACpK,CACO,SAASovH,IACd,IAAIC,EAAQ/0I,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,OAAOpC,OAAOwK,KAAK2sI,GAAOzyI,QAAO,SAAUy6D,EAAKp8D,GAC9C,IAdeyD,EAcXo3C,EAAMu5F,EAAMp0I,GAUhB,MARO,UADCA,GAEJo8D,EAAInjD,UAAY4hC,SACTuhB,EAAIl4B,eAGJk4B,EAAIp8D,GACXo8D,GAtBW34D,EAsBGzD,EArBbyD,EAAM81B,QAAQ,SAAS,SAAUtuB,EAAOihB,GAC7C,OAAOA,EAAE8oB,aACX,MAmB4B6F,GAEnBuhB,CACT,GAAG,CAAC,EACN,CACO,SAAS9mC,EAAS/T,EAAMvhB,EAAKouF,GAClC,OAAKA,EAOe,gBAAoB7sE,EAAKzjB,KAAK,QAAc,OAAc,CAC5EkC,IAAKA,GACJm0I,EAAe5yH,EAAK6yH,QAAShmD,IAAa7sE,EAAKrI,UAAY,IAAI7W,KAAI,SAAUuH,EAAOmL,GACrF,OAAOugB,EAAS1rB,EAAO,GAAGf,OAAO7I,EAAK,KAAK6I,OAAO0Y,EAAKzjB,IAAK,KAAK+K,OAAOkM,GAC1E,KAVsB,gBAAoBwM,EAAKzjB,KAAK,OAAc,CAC9DkC,IAAKA,GACJm0I,EAAe5yH,EAAK6yH,SAAU7yH,EAAKrI,UAAY,IAAI7W,KAAI,SAAUuH,EAAOmL,GACzE,OAAOugB,EAAS1rB,EAAO,GAAGf,OAAO7I,EAAK,KAAK6I,OAAO0Y,EAAKzjB,IAAK,KAAK+K,OAAOkM,GAC1E,IAOJ,CACO,SAASs/H,EAAkBt6H,GAEhC,OAAO,IAAAub,UAAcvb,GAAc,EACrC,CACO,SAASu6H,EAAuB16H,GACrC,OAAKA,EAGEhK,MAAMie,QAAQjU,GAAgBA,EAAe,CAACA,GAF5C,EAGX,CAIO,IAAI26H,EAAe,CACxBt1F,MAAO,MACPJ,OAAQ,MACR5hB,KAAM,eACN,cAAe,OACfwrC,UAAW,SAGF+rE,EAAkB,SAAyBC,GACpD,IAAIC,GAAc,IAAA7hF,YAAW,KAC3BO,EAAMshF,EAAYthF,IAClBO,EAAY+gF,EAAY/gF,UACtBghF,EALkB,g9BAMlBhhF,IACFghF,EAAiBA,EAAep7G,QAAQ,WAAYo6B,KAEtD,IAAA2L,YAAU,WACR,IAAIz8C,EAAM4xH,EAAOruI,QACbkqI,GAAa,OAAcztH,IAC/B,QAAU8xH,EAAgB,oBAAqB,CAC7Cl6E,SAAS,EACTrH,IAAKA,EACLsH,SAAU41E,GAEd,GAAG,GACL,8EClEA,QAVA,SAAiBppE,EAAYV,GAC3B,IAAIzxD,GAAS,EACT9W,GAAS,OAAYipE,GAAct3D,MAAMs3D,EAAWzlE,QAAU,GAKlE,OAHA,OAASylE,GAAY,SAASvpE,EAAOqC,EAAKknE,GACxCjpE,IAAS8W,GAASyxD,EAAS7oE,EAAOqC,EAAKknE,EACzC,IACOjpE,CACT,+GClBA,MAAM22I,UAAoBx1I,MAGvB,WAAAitB,CAAapN,EAAS41H,EAAW,QAChCh7G,MAAM5a,GAAS3d,KAAK2d,QAAUA,EAC9B3d,KAAKoI,gBAAkBxM,UAAUmvB,YAAY3iB,KAI7CzM,OAAO6wC,eAAexsC,gBAAiBpE,WACvCoE,KAAKuzI,SAAWA,CAClB,+ECoBF,QAJA,SAA2Bl3I,GACzB,OAAO,OAAaA,KAAU,OAAYA,EAC5C,+DC9BA,QAAe,IAA0B,yDCAzCF,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,qECApC,SAASo3I,EAAiBv5F,GAC/B,OAAOA,GAAmB,SAAVA,GAA8B,YAAVA,GAAiC,uBAAVA,GAA4C,2BAAVA,IAAuC,wBAAwBrsB,KAAKqsB,IAEvJ,gBAAVA,CACF,CACO,SAASw5F,EAAmBxzH,GACjC,MAAM,eACJyzH,EAAc,YACdh1F,EAAW,gBACX1D,GACEo/E,iBAAiBn6G,GACrB,OAAIuzH,EAAiBE,GACZA,EAELF,EAAiB90F,GACZA,EAEL80F,EAAiBx4F,GACZA,EAEF,IACT,ykBCNO,SAAS24F,GAAiB,KAC/B3jC,EAAI,QACJ0kB,EAAU,KAAI,QACdhS,EAAO,gBACPkxB,EAAkB,OAElB,MAAO,CACLr0I,KAAMs0I,EAAAA,GACN7jC,OACA0kB,UACAhS,UACAkxB,kBAEJ,CAEO,SAASE,EAAuB9jC,EAAM0kB,EAASqf,GACpD,MAAO,CACLx0I,KAAMy0I,EAAAA,GACNhkC,OACA0kB,UACA,CAACuf,EAAAA,IAAyBF,EAE9B,CASO,SAASG,GAA0B,KACxClkC,EAAI,QACJ0kB,EAAU,KAAI,uBACdyf,IAEA,MAAO,CACL50I,KAAM60I,EAAAA,GACNpkC,OACA0kB,UACA,CAAC2f,EAAAA,IAAiBF,EAEtB,CAEO,SAASG,EAActkC,EAAM0kB,EAAS6f,GAC3C,MAAO,CACLh1I,KAAMi1I,EAAAA,GACNxkC,OACA0kB,UACA,CAAC+f,EAAAA,IAAcF,EAEnB,CAEO,SAASG,EAAmBC,GACjC,OAAO,GACLp1I,KAAMq1I,EAAAA,IACHD,EAEP,CAEO,SAASE,EAAgBF,GAC9B,OAAO,GACLp1I,KAAMu1I,EAAAA,IACHH,EAEP,CAEO,SAASI,EAAa/kC,EAAM0kB,EAASsgB,GAC1C,MAAO,CACLz1I,KAAM01I,EAAAA,GACNjlC,OACA0kB,UACA,CAACwgB,EAAAA,IAAaF,EAElB,2BChFQ,SAAW/7H,GAAU,aAIzB,IAAIk8H,EAAa,CACbC,MAAO,CAEHl6H,GAAI,CAAC,SAAU,UAAW,WAC1BC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,SAAU,UAAW,WAC1BE,GAAI,CAAC,SAAU,SAAU,WAE7By5H,uBAAwB,SAAUt5H,EAAQu5H,GACtC,OAAkB,IAAXv5H,EACDu5H,EAAQ,GACRv5H,GAAU,GAAKA,GAAU,EACvBu5H,EAAQ,GACRA,EAAQ,EACpB,EACAl+B,UAAW,SAAUr7F,EAAQs7F,EAAe34G,GACxC,IAAI42I,EAAUH,EAAWC,MAAM12I,GAC/B,OAAmB,IAAfA,EAAIyB,OACGk3G,EAAgBi+B,EAAQ,GAAKA,EAAQ,GAGxCv5H,EACA,IACAo5H,EAAWE,uBAAuBt5H,EAAQu5H,EAGtD,GAGKr8H,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,mFAAmF/b,MACvF,KAEJmc,YACI,2DAA2Dnc,MAAM,KACrEoc,kBAAkB,EAClBC,SAAU,4DAA4Drc,MAClE,KAEJsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,eACTE,QAAS,gBAETC,SAAU,WACN,OAAQ3a,KAAKm/B,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,kBAEnB,EACAvkB,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,6BACA,iCACA,4BACA,4BACA,8BACA,2BACA,4BAEgB7a,KAAKm/B,MAC7B,EACArkB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNpU,EAAG,mBACHqU,GAAIi6H,EAAW/9B,UACfj8F,EAAGg6H,EAAW/9B,UACdh8F,GAAI+5H,EAAW/9B,UACf/7F,EAAG85H,EAAW/9B,UACd97F,GAAI65H,EAAW/9B,UACf77F,EAAG,MACHC,GAAI25H,EAAW/9B,UACf37F,EAAG,SACHC,GAAIy5H,EAAW/9B,UACfz7F,EAAG,SACHC,GAAIu5H,EAAW/9B,WAEnBv7F,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzHyCC,CAAQ,EAAQ,qBCL1D,IAOIvgB,EAPcH,OAAOC,UAOcG,SAavCI,EAAOC,QAJP,SAAwBC,GACtB,OAAOP,EAAqBS,KAAKF,EACnC,2BCVQ,SAAW4c,GAAU,aAIzB,IAAIs8H,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGCt8H,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,+EAA+E/b,MACnF,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,wDAAwDrc,MAC9D,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,mBACTE,QAAS,mBACTC,SAAU,2BACVC,QAAS,YACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNpU,EAAG,iBACHsU,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERE,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOD,EACX,QACI,GAAe,IAAXA,EAEA,OAAOA,EAAS,QAEpB,IAAIzb,EAAIyb,EAAS,GAGjB,OAAOA,GAAUw5H,EAASj1I,IAAMi1I,EAFvBx5H,EAAS,IAAOzb,IAEsBi1I,EADvCx5H,GAAU,IAAM,IAAM,OAG1C,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/FyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,qXCEpC,SAASo5I,EAAeloD,EAAQqwB,EAAQ83B,GAC7C,YAA6Bv5I,IAAzBu5I,EACKA,EAEM,SAAX93B,GAAqBrwB,EAAOooD,KAAKC,gBAC5BroD,EAAOooD,KAAKC,gBAEN,YAAXh4B,GAAwBrwB,EAAOooD,KAAKE,mBAC/BtoD,EAAOooD,KAAKE,mBAEN,UAAXj4B,GAAsBrwB,EAAOooD,KAAKG,iBAC7BvoD,EAAOooD,KAAKG,iBAEN,SAAXl4B,GAAqBrwB,EAAOooD,KAAKI,gBAC5BxoD,EAAOooD,KAAKI,gBAEN,SAAXn4B,GAAqBrwB,EAAOyoD,iBAAiBp9B,YACxCrrB,EAAOyoD,iBAAiBp9B,YAE1BrrB,EAAOooD,KAAK/8B,WACrB,CACO,SAASq9B,EAAoB1oD,EAAQqwB,EAAQ83B,GAClD,YAA6Bv5I,IAAzBu5I,EACKA,EAEM,SAAX93B,GAAqBrwB,EAAOooD,KAAKC,gBAC5BroD,EAAOooD,KAAKO,qBAEN,YAAXt4B,GAAwBrwB,EAAOooD,KAAKE,mBAC/BtoD,EAAOooD,KAAKQ,wBAEN,UAAXv4B,GAAsBrwB,EAAOooD,KAAKG,iBAC7BvoD,EAAOooD,KAAKS,sBAEN,SAAXx4B,GAAqBrwB,EAAOooD,KAAKI,gBAC5BxoD,EAAOooD,KAAKU,qBAEN,SAAXz4B,GAAqBrwB,EAAOyoD,iBAAiBp9B,YACxCrrB,EAAOyoD,iBAAiBM,iBAE1B/oD,EAAOooD,KAAKW,gBACrB,CACO,SAASC,EAA6B/tG,EAAWooC,GACtD,MAAM71B,EAAW,CACfyzB,QAAS,EACTC,QAAS,GAEX,OAAQmC,GACN,IAAK,aAED,MAAO,CACLhC,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,EAAG,GACZpU,YAGN,IAAK,cAED,MAAO,CACL6zB,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,EAAG,GACZpU,YAGN,IAAK,UAED,MAAO,CACL6zB,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,GAAI,GACbpU,YAGN,IAAK,WAED,MAAO,CACL6zB,OAAQ,CAAC,KAAM,MACfzf,OAAQ,CAAC,GAAI,GACbpU,YAGN,QAEI,MAAO,CACL6zB,OAAsB,QAAdpmC,EAAsB,CAAC,KAAM,MAAQ,CAAC,KAAM,MACpD2mB,OAAQ,CAAC,EAAG,GACZpU,YAIV,CACO,SAAS,EAAS5wC,EAAOmoD,GAC9B,MAAM,WACJkkF,GAAa,GACXrsI,GACE,UACJssI,EAAS,WACTC,IACE,OAAe96I,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CACzDmoD,YACAqkF,cAAe,gBAWjB,MAAO,CATkB,WAAc,KACrC,IAAmB,IAAfH,EACF,OAAO,EAET,MAAMI,GAAkC,IAAfJ,EAAsB,CAAC,EAAIA,EACpD,OAAO56I,OAAOqZ,OAAO,CACnBwhI,UAAWA,GACVG,EAAiB,GACnB,CAACJ,EAAYC,IACUC,EAC5B,CCjHO,MAAOG,EAAMC,GAAc,CAAC,OAAQ,eAC7BC,EAAOC,GAAe,CAAC,QAAS,gBAChCC,EAAMC,GAAc,CAAC,OAAQ,eAC7BC,EAASC,GAAiB,CAAC,UAAW,kBACtCC,EAAMC,GAAc,CAAC,OAAQ,8BCA3C,MAIA,EAJqBntI,GAAuB,gBAAoB,KAAQvO,OAAOqZ,OAAO,CACpFigB,KAAM,QACN11B,KAAM,WACL2K,ICLY,SAASotI,EAAc1kF,GACpC,OAAO,IAAA3H,UAAQ,IAAMtvD,OAAOqZ,OAAO,CACjCquG,OAAQ,GACPzwD,IAAa,CAACA,GACnB,CC4BA,MA4HA,EA5H4B2kF,IACO,IAAAxzH,aAAW,CAAC7Z,EAAO8V,KAClD,IAAI0E,EACJ,MACI2tC,UAAWw5B,EACX7b,kBAAmBwnE,EAAuB,WAC1C5kF,EAAU,UACVj7C,EAAS,MACTq/B,EAAK,UACL25B,EACA17C,KAAMstF,EACN5vD,SAAU0uD,EAAc,SACxBvD,GAAW,EAAI,YACfnF,EAAW,eACX9oC,EAAc,kBACd4nE,EACArrI,OAAQkzG,EAAY,cACpBhvC,EACAmpB,QAASi+C,EAAa,OACtB/5B,GACEzzG,EACJkzD,EArD8B,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA8CkBy0F,CAAOxzF,EAAO,CAAC,YAAa,oBAAqB,aAAc,YAAa,QAAS,YAAa,OAAQ,WAAY,WAAY,cAAe,iBAAkB,oBAAqB,SAAU,gBAAiB,UAAW,WACtOytI,EAAW,SAAa,OACxB,aACJtmF,EAAY,UACZ9oB,EAAS,kBACTynC,EAAiB,YACjB4nE,IACE,IAAArmF,YAAW,MACTc,EAAYhB,EAAa,SAAUw6B,IACnC,YACJo3B,EAAW,sBACX40B,IACE,QAAsBxlF,EAAW9pB,GAC/BwZ,EAAgBsP,KACfooC,GAASq+C,KAAoB,OAAW,cAAeJ,EAAe55B,GACvE3zD,IAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,GAAYn6B,GAAQo6B,KAAa,QAAS15B,EAAWlI,KAQrD4tF,IAAoB,EAAS7tI,EAAOmoD,GAErCijB,GAAmBgiE,EAAc1kF,GAEjC+sD,IAAa,EAAAC,EAAA,IAAQzgG,IACzB,IAAIuF,EACJ,OAAmG,QAA3FA,EAAK69F,QAAqDA,EAAgBU,SAAgC,IAAPv+F,EAAgBA,EAAKvF,CAAG,IAG/HwzC,GAAW,aAAiB6uD,EAAA,GAC5B70C,GAAiB00C,QAAuDA,EAAiB1uD,GAEzFixD,IAAkB,IAAAryD,YAAW,OAC7B,YACJwiD,GACA3nG,OAAQ4rI,GAAa,aACrBhkC,IACE4P,GACEq0B,GAA0B,gBAAoB,WAAgB,KAAMt6B,IAAWy5B,EAAoB,gBAAoBc,EAAA,EAAqB,MAAqB,gBAAoBC,EAAA,EAAkB,MAAOpkC,IAAeC,KACnO,IAAAh5B,qBAAoBh7D,GAAK,IAAM23H,EAAS7yI,UACxC,MAAOszI,KAAiB,QAAU,WAAY,KACxC9qD,GAAS3xF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGojI,IAAgBluI,EAAMojF,SAE9D3yC,KAAU,EAAAgsD,EAAA,IAAU,aAA0C,QAA3BjiF,EAAKxa,EAAM0lE,kBAA+B,IAAPlrD,OAAgB,EAASA,EAAGi2B,QACzG,OAAOmxC,GAAwB,gBAAoBusD,EAAA,EAAiB,CAClExpD,OAAO,GACO,gBAAoB,KAAelzF,OAAOqZ,OAAO,CAC/DimB,UAAwB,gBAAoB,OAAQ,CAClD,aAAc,KACdtjB,UAAW,GAAG06C,eACA,gBAAoBimF,EAAA,EAAmB,OACvD3lF,SAAUga,GACV3sD,IAAK23H,EACLrmE,WAAYglE,EAA6B/tG,EAAWooC,GACpDA,UAAWA,EACXgoC,YAAaq9B,EAAoB1oD,GAAQqwB,EAAQhF,GACjDsJ,WAAYg2B,GACZM,SAAuB,gBAAoB,OAAQ,CACjD5gI,UAAW,GAAG06C,gBAEhBmmF,SAAuB,gBAAoB,OAAQ,CACjD7gI,UAAW,GAAG06C,gBAEhBomF,cAA4B,gBAAoB,OAAQ,CACtD9gI,UAAW,GAAG06C,sBAEhBqmF,cAA4B,gBAAoB,OAAQ,CACtD/gI,UAAW,GAAG06C,sBAEhBhM,eAAgB,GAAGtE,aACnB47D,OAAQA,GACPvgD,EAAW,CACZzlD,UAAW,IAAW,CACpB,CAAC,GAAG06C,KAAastD,MAAeA,GAChC,CAAC,GAAGttD,KAAaonC,MAAYq+C,KAC5B,OAAoBzlF,GAAW,OAAgB2lF,GAAe14B,GAAevL,IAAcpiD,GAAQkmF,EAAuBlgI,EAAWigI,aAAiD,EAASA,EAAYjgI,UAAWo0E,GAAW5hC,GAASmmB,GAC7Ot5B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG4iI,aAAiD,EAASA,EAAY5gG,OAAQA,GACrHs2C,OAAQA,GAAOooD,KACfrjF,UAAWA,EACX2d,kBAAmBwnE,GAA2BxnE,EAC9CunE,eAAgBA,EAChB3kF,WAAY0iB,GACZ/sC,UAAWA,EACXowG,WAAY,CACVhpE,MAAO,IAAWhe,GAAQke,GAAkB4nE,EAAmB1rD,GAAW5hC,GAASmmB,IAErFo/B,OAAQ,CACN//B,MAAOh0E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,EAAM0lE,YAAa,CACxDj1B,aAGJ47F,WAAYwB,OACT,ICtHT,MA8JA,EA9JuBR,IACrB,MAAMqB,EAAY,CAACj7B,EAAQrgD,KACzB,MAAMu7E,EAAev7E,IAAgB+5E,EAAa,aAAe,aA2IjE,OA1I4B,IAAAtzH,aAAW,CAAC7Z,EAAO8V,KAC7C,IAAI0E,EACJ,MACI2tC,UAAWw5B,EACX7b,kBAAmB8oE,EAA0B,WAC7ClmF,EAAU,MACV5b,EAAK,UACLr/B,EAAS,cACT24D,EACAr7C,KAAMstF,EAAa,SACnBzE,EAAQ,UACRntC,EAAS,YACTgoC,EAAW,eACX9oC,EAAc,kBACd4nE,EACA9kF,SAAU0uD,EACVj1G,OAAQkzG,EACR7lB,QAASi+C,EAAa,iBACtBqB,GACE7uI,EACJkzD,EAtD4B,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA+CoB,CAAOiB,EAAO,CAAC,YAAa,oBAAqB,aAAc,QAAS,YAAa,gBAAiB,OAAQ,WAAY,YAAa,cAAe,iBAAkB,oBAAqB,WAAY,SAAU,UAAW,sBACtO,aACJmnD,EAAY,UACZ9oB,EAAS,kBACTynC,EAEA,CAAC6oE,GAAeG,IACd,IAAAznF,YAAW,MACTc,EAAYhB,EAAa,SAAUw6B,IACnC,YACJo3B,EAAW,sBACX40B,IACE,QAAsBxlF,EAAW9pB,GAC/BovG,EAAW,SAAa,OACvBl+C,EAASq+C,KAAoB,OAAW,aAAcJ,EAAe55B,GACtE3zD,IAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,GAAYn6B,GAAQo6B,KAAa,QAAS15B,EAAWlI,KAC5D,IAAA6wB,qBAAoBh7D,GAAK,IAAM23H,EAAS7yI,UACxC,MAGMm0I,GAAet7B,GAAUzzG,EAAMyzG,OAC/B57D,GAAgBsP,KAEhB,SACJklB,GAAQ,SACRzzC,IACEs6B,EACE87E,GAAoB3iE,IAAuB,SAAXonC,IAAsB76E,IAgBrDi1G,GAAkBtB,IAAc,EAASvsI,EAAOmoD,GAEjDijB,GAAmBgiE,EAAc1kF,GAEjC+sD,IAAa,EAAAC,EAAA,IAAQzgG,IACzB,IAAIuF,EACJ,OAAmG,QAA3FA,EAAK69F,QAAqDA,EAAgBU,SAAgC,IAAPv+F,EAAgBA,EAAKvF,CAAG,IAG/HwzC,GAAW,aAAiB6uD,EAAA,GAC5B70C,GAAiB00C,QAAuDA,EAAiB1uD,GAEzFixD,IAAkB,IAAAryD,YAAW,OAC7B,YACJwiD,GACA3nG,OAAQ4rI,GAAa,aACrBhkC,IACE4P,GACEq0B,GAA0B,gBAAoB,WAAgB,KAAuB,SAAjBgB,GAAuC,gBAAoBf,EAAA,EAAqB,MAAqB,gBAAoBC,EAAA,EAAkB,MAAOpkC,IAAeC,KACpOokC,KAAiB,QAAU,aAAc,KAC1C9qD,GAAS3xF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGojI,IAAgBluI,EAAMojF,SAE9D3yC,KAAU,EAAAgsD,EAAA,IAAU,aAA0C,QAA3BjiF,EAAKxa,EAAM0lE,kBAA+B,IAAPlrD,OAAgB,EAASA,EAAGi2B,QACzG,OAAOmxC,GAAwB,gBAAoBusD,EAAA,EAAiB,CAClExpD,OAAO,GACO,gBAAoB,KAAUlzF,OAAOqZ,OAAO,CAC1DgL,IAAK23H,EACLh/B,YAAa68B,EAAeloD,GAAQ2rD,GAActgC,GAClDsJ,WAAYg2B,GACZkB,cAAe7C,EAA6B/tG,EAAWooC,GACvDA,UAAWA,EACX4nE,SAAuB,gBAAoB,OAAQ,CACjD5gI,UAAW,GAAG06C,gBAEhBmmF,SAAuB,gBAAoB,OAAQ,CACjD7gI,UAAW,GAAG06C,gBAEhBomF,cAA4B,gBAAoB,OAAQ,CACtD9gI,UAAW,GAAG06C,sBAEhBqmF,cAA4B,gBAAoB,OAAQ,CACtD/gI,UAAW,GAAG06C,sBAEhBhM,eAAgB,GAAGtE,cACnB47D,OAAQA,EACRo7B,iBA5D+B,CAACrhH,EAAM0hH,EAAS7hF,KAC/CwhF,SAAoEA,EAAiBrhH,EAAM0hH,EAAS7hF,GAChG2hF,IACF3iE,GAAS7+C,EACX,GAfsB,CACtB2hH,WAAW,GAuEOj8E,EAAW,CAC7BkwB,OAAQA,GAAOooD,KACf/9H,UAAW,IAAW,CACpB,CAAC,GAAG06C,KAAastD,MAAeA,GAChC,CAAC,GAAGttD,KAAaonC,KAAYq+C,KAC5B,OAAoBzlF,GAAW,OAAgB2lF,GAAe14B,GAAevL,IAAcpiD,GAAQkmF,EAAuBmB,aAAqD,EAASA,EAAcrhI,UAAWA,EAAWo0E,GAAW5hC,GAASmmB,GACnPt5B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGgkI,aAAqD,EAASA,EAAchiG,OAAQA,GAC3Hqb,UAAWA,EACX2d,kBAAmB8oE,GAA8B9oE,EACjDunE,eAAgBA,EAChB3kF,WAAY0iB,GACZ/sC,UAAWA,EACXoqB,SAAUga,GACVgsE,WAAY,CACVhpE,MAAO,IAAWhe,GAAQo6B,GAAW5hC,GAASmmB,EAAeT,GAAkB4nE,IAEjF/nC,OAAQ,CACN//B,MAAOh0E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,EAAM0lE,YAAa,CACxDj1B,aAGJ47F,WAAYwB,GACZtB,WAAYA,OACT,GAKM,EAETj+B,EAAaogC,IACbU,EAAaV,EAAUhC,EAAMC,GAC7B0C,EAAcX,EAAU9B,EAAOC,GAC/ByC,EAAaZ,EAAU5B,EAAMC,GAC7BwC,EAAgBb,EAAU1B,EAASC,GAEzC,MAAO,CACL3+B,aACA8gC,aACAC,cACAC,aACA/gC,WANiBmgC,EAAUxB,EAAMC,GAOjCoC,gBACD,ECjKH,EAxBuBlC,IAErB,MAAM,WACJ/+B,EAAU,WACV8gC,EAAU,YACVC,EAAW,WACXC,EAAU,WACV/gC,EAAU,cACVghC,GACEC,EAAqBnC,GAEnB95B,EAAc,EAAoB85B,GAClCoC,EAAmBnhC,EAUzB,OATAmhC,EAAiBL,WAAaA,EAC9BK,EAAiBJ,YAAcA,EAC/BI,EAAiBH,WAAaA,EAC9BG,EAAiBl8B,YAAcA,EAC/Bk8B,EAAiBlhC,WAAaA,EAC9BkhC,EAAiBF,cAAgBA,EAI1BE,CAAgB,ECpBnBnhC,EAAa,EAAe94C,EAAA,GAClC,SAASk6E,EAAc1vI,GACrB,MAAMivI,EAAgB7C,EAA6BpsI,EAAMq+B,UAAWr+B,EAAMymE,WAG1E,OAFAwoE,EAAcr+F,SAAS0zB,SAAU,EACjC2qE,EAAcr+F,SAASyzB,SAAU,EAC1B5yE,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CAC7CivI,iBAEJ,CAGA,MAAM,GAAY,OAAa3gC,EAAY,SAAU,KAAMohC,GAC3DphC,EAAW0F,uCAAyC,EACpD,MAAM27B,GAAiB,OAAarhC,EAAWiF,YAAa,SAAU,KAAMm8B,GAC5EphC,EAAWshC,4CAA8CD,EACzDrhC,EAAWuhC,eAAiB,EAC5B,qFCpBA,MAAMC,EAAgBlmI,IACpB,MAAM,aACJumC,EAAY,OACZD,GACEtmC,EACJ,MAAO,CACL,CAACumC,GAAe,CACd9e,QAAS,cACT,QAAS,CACPgN,UAAW,OAEb,aAAc,CACZojD,cAAe,UAEjB,UAAW,CACTA,cAAe,SACf,WAAY,CACV5vC,WAAY,UAEd,UAAW,CACTA,WAAY,cAEd,QAAS,CACPA,WAAY,YAEd,aAAc,CACZA,WAAY,aAGhB,CAAC,GAAG1B,gBAA4B,CAC9B9e,QAAS,QAGX,CAAC,GAAG8e,YAAuBD,oCAA0C,CACnE7e,QAAS,UAGd,EAEG0+G,EAAmBnmI,IACvB,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAACumC,GAAe,CACd,kBAAmB,CACjBkzD,OAAQz5F,EAAMomI,mBAEhB,mBAAoB,CAClB3sC,OAAQz5F,EAAMqmI,oBAEhB,kBAAmB,CACjB5sC,OAAQz5F,EAAMsmI,mBAEhB,kBAAmB,CACjB97B,UAAWxqG,EAAMomI,mBAEnB,mBAAoB,CAClB57B,UAAWxqG,EAAMqmI,oBAEnB,kBAAmB,CACjB77B,UAAWxqG,EAAMsmI,oBAGtB,EAIH,GAAe,QAAc,SAAStmI,IACpC,MAAMumI,GAAa,QAAWvmI,EAAO,CACnComI,kBAAmBpmI,EAAM6tC,UACzBw4F,mBAAoBrmI,EAAMkmC,QAC1BogG,kBAAmBtmI,EAAMkoD,YAE3B,MAAO,CAACg+E,EAAcK,GAAaJ,EAAiBI,IAAa,OAAqBA,GAAY,IACjG,KAAM,CAAG,IAAG,CAGb9vF,YAAY,sBChFdpuD,EAAOC,QAAU,IAA0B,sFCK3C,SAFmB,eAAUT,OAAQ,UCArC,IAMI,EAHcA,OAAOC,UAGQC,eCNjC,IAGI,EAHcF,OAAOC,UAGQC,eCOjC,SAASizF,EAAKn0D,GACZ,IAAIlnB,GAAS,EACTtT,EAAoB,MAAXw6B,EAAkB,EAAIA,EAAQx6B,OAG3C,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAm+D,EAAKlzF,UAAUoP,MChBf,WACEhL,KAAKwc,SAAW,EAAe,EAAa,MAAQ,CAAC,EACrDxc,KAAKi1B,KAAO,CACd,EDcA65D,EAAKlzF,UAAkB,OEhBvB,SAAoB8C,GAClB,IAAI/B,EAASqD,KAAKyV,IAAI/W,WAAesB,KAAKwc,SAAS9d,GAEnD,OADAsB,KAAKi1B,MAAQt4B,EAAS,EAAI,EACnBA,CACT,EFaAmyF,EAAKlzF,UAAUyV,IFPf,SAAiB3S,GACf,IAAIkL,EAAO5J,KAAKwc,SAChB,GAAI,EAAc,CAChB,IAAI7f,EAASiN,EAAKlL,GAClB,MArBiB,8BAqBV/B,OAA4BT,EAAYS,CACjD,CACA,OAAO,EAAeJ,KAAKqN,EAAMlL,GAAOkL,EAAKlL,QAAOxC,CACtD,EECA4yF,EAAKlzF,UAAU6Z,IDXf,SAAiB/W,GACf,IAAIkL,EAAO5J,KAAKwc,SAChB,OAAO,OAA8BtgB,IAAd0N,EAAKlL,GAAsB,EAAenC,KAAKqN,EAAMlL,EAC9E,ECSAowF,EAAKlzF,UAAU+C,IGdf,SAAiBD,EAAKrC,GACpB,IAAIuN,EAAO5J,KAAKwc,SAGhB,OAFAxc,KAAKi1B,MAAQj1B,KAAKyV,IAAI/W,GAAO,EAAI,EACjCkL,EAAKlL,GAAQ,QAA0BxC,IAAVG,EAfV,4BAekDA,EAC9D2D,IACT,EHWA,sCIXA,MCHA,EAPA,SAAoBe,EAAKrC,GACvB,ICJiBrC,EACbkD,EDGAqK,EAAO7I,EAAIyb,SACf,OCHgB,WADZjd,SADalD,EDKAqC,KCHmB,UAARa,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVlD,EACU,OAAVA,GDEDuN,EAAmB,iBAAPlL,EAAkB,SAAW,QACzCkL,EAAK7I,GACX,EEFA,SAAS+zH,EAASn6F,GAChB,IAAIlnB,GAAS,EACTtT,EAAoB,MAAXw6B,EAAkB,EAAIA,EAAQx6B,OAG3C,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAmkG,EAASl5H,UAAUoP,MHdnB,WACEhL,KAAKi1B,KAAO,EACZj1B,KAAKwc,SAAW,CACd,KAAQ,IAAI,EACZ,IAAO,IAAK,KAAO,KACnB,OAAU,IAAI,EAElB,EGQAs4G,EAASl5H,UAAkB,OCf3B,SAAwB8C,GACtB,IAAI/B,EAAS,EAAWqD,KAAMtB,GAAa,OAAEA,GAE7C,OADAsB,KAAKi1B,MAAQt4B,EAAS,EAAI,EACnBA,CACT,EDYAm4H,EAASl5H,UAAUyV,IEhBnB,SAAqB3S,GACnB,OAAO,EAAWsB,KAAMtB,GAAK2S,IAAI3S,EACnC,EFeAo2H,EAASl5H,UAAU6Z,IGjBnB,SAAqB/W,GACnB,OAAO,EAAWsB,KAAMtB,GAAK+W,IAAI/W,EACnC,EHgBAo2H,EAASl5H,UAAU+C,IIjBnB,SAAqBD,EAAKrC,GACxB,IAAIuN,EAAO,EAAW5J,KAAMtB,GACxBu2B,EAAOrrB,EAAKqrB,KAIhB,OAFArrB,EAAKjL,IAAID,EAAKrC,GACd2D,KAAKi1B,MAAQrrB,EAAKqrB,MAAQA,EAAO,EAAI,EAC9Bj1B,IACT,EJYA,+OKnBO,MAAMs6I,EAAmB,EAC9Bj+I,QACA2wD,eAEA,MAEMutF,GAFqBC,EAAAA,EAAAA,KAEgBz5I,KAAI,EAAGlE,OAAM49I,iBAAkB,CACxEp+I,MAAOQ,EACP2Q,MAAOitI,MAGHC,EAAmBH,EAAgBj/D,MACvC,EAAG9tE,MAAOqoB,KAAeA,IAAax5B,IAGxC,OACE,SAACs+I,EAAAA,EAAQA,CACPt+I,OACEq+I,aAAAA,EAAAA,EAAkBr+I,QACA,iBAAVA,GAAsBA,EAAMe,MAAM,KAAK,IAC/C,KAEF4vD,SAAUA,EACVl+C,QAASyrI,EACTK,WAAYC,EAAAA,+JCzBd/rI,EAAU,CAAC,EAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OAAnD,MClBMqjI,EAAmC,KAC9C,MAAM,KAAEnkD,IAASG,EAAAA,EAAAA,MAIjB,OAFoBw1B,EAAAA,EAAAA,MAEI,MAStB,SAACtrE,MAAAA,CAAIrpC,UAAU,gDACb,SAAC2iI,EAAgBA,CAACj+I,MAAOs6F,EAAK9gE,SAAUm3B,SARdn3B,IACJ,iBAAbA,GACT8gE,EAAKokD,eAAellH,EACtB,4LCZJ,MAAMq2F,EAAiBtpC,EAAQ,QAUzBo4D,EAAAA,sBAAoB,UACxBnlH,EACAolH,EACAC,GAEA,MAIM1lG,EAAM,GAJA02E,EAAeivB,oEAIYtlH,IACjCtvB,QAAiB60I,MAAM5lG,GACxBjvC,EAASwgI,IAOdkU,SAFmB10I,EAAS8pF,QAENzmF,MACtBsxI,GAAc,IAPZA,GAAc,EAQlB,iMAnBErlH,EACAolH,EACAC,mCAHIF,mBCHF,EAAU,CAAC,EAEf,EAAQ5jI,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OAAnD,MChBM4jI,EAAY,KACvB,MAAM,cAAEC,EAAa,WAAE3d,GF2BG,MAC1B,MAAM,KAAEhnC,IAASG,EAAAA,EAAAA,MACXjhE,EAAW8gE,EAAK9gE,UAAY,MAC3BylH,EAAeL,IAAoB3iD,EAAAA,EAAAA,aAGnCqlC,EAAYud,IAAiB5iD,EAAAA,EAAAA,WAAS,GAM7C,OAJAt6B,EAAAA,EAAAA,YAAU,KACRg9E,EAAkBnlH,EAAUolH,EAAkBC,EAAc,GAC3D,CAACrlH,IAEG,CAAEylH,gBAAe3d,aAAY,EEvCE4d,GAEhC9iH,GAAW6iH,IAAkB3d,EAEnC,OACE,SAAC38E,MAAAA,CACC4iC,cAAY,8BACZjsE,WAAWI,EAAAA,EAAAA,GAAK,oBAAqB,CACnC,2BAA4B0gB,EAC5B,4BAA6B6iH,IAE/BtkG,MAAO,CACL43E,gBAAiB0sB,EACb,QAAQA,aAAAA,EAAAA,EAAe1sB,yBACvB1yH,aAGJu8B,IACCklG,GACC,SAAC38E,MAAAA,CAAIrpC,UAAU,sCACb,SAAC6jI,IAAeA,CAAAA,MAGlB,iCACE,UAACx6F,MAAAA,CAAIrpC,UAAU,qCACb,SAAC8jI,KAAAA,CAAG9jI,UAAU,uCACX2jI,aAAAA,EAAAA,EAAeI,YAElB,SAAC16F,MAAAA,CAAIrpC,UAAU,oCACZ2jI,aAAAA,EAAAA,EAAeK,eACdC,EAAAA,EAAAA,GAA0BN,EAAcK,gBAE5C,SAAC7jI,EAAAA,EAAQA,CACPvY,KAAK,UACLoY,UAAU,yBACVwlD,QAAS,KACPrlB,OAAOg6B,KAAKwpE,aAAAA,EAAAA,EAAeO,WAAY,SAAS,WAGjDP,aAAAA,EAAAA,EAAeQ,iBAGpB,SAAC96F,MAAAA,CAAIrpC,UAAU,kECjDpB,MAAMokI,EAAmB,KACvBC,EAAAA,EAAAA,GAAc,CACnB7sD,gBAAiB,gBACjB8sD,2BAA6Br3I,GACN,MAArBA,EAAMwrF,YAAwC,2BAAlBxrF,EAAM+Y,sCCJjC,MAAMu+H,EAAwB,SA0BfC,EAbpB,MAAMA,EAAY,IAAIzX,iBAAgBzrC,EAAAA,EAAAA,KAAoBv+B,QACpDrnD,EAAQ8oI,EAAU9qI,IAAI,SACtB+qI,EAAaD,EAAU9qI,IAAI,SAC3BgrI,EAAUF,EAAU9qI,IAAI,eACf8qI,EAAf,MAAMvyH,EAAuB,QAAduyH,EAAAA,EAAU9qI,IAAI,iBAAd8qI,IAAAA,EAAAA,EAA2B,GACpCroI,EAAQqoI,EAAU9qI,IAAI,SACtBirI,EAAgBH,EAAU9qI,IAAI,qBACtB8qI,EAAd,MAAM1kF,EAAsB,QAAd0kF,EAAAA,EAAU9qI,IAAI,gBAAd8qI,IAAAA,EAAAA,EAA0B,GAQxC,MAAO,CACL9oI,QACA+oI,aACAC,UACAzyH,OAAQA,EACR9V,QACAwoI,gBACAC,aATgC,QAAdJ,EAAAA,EAAU9qI,IAAI,sBAAd8qI,IAAAA,OAAAA,EAAAA,EAA8BlkH,QAAQ,SAAU,MAAO,GAUzEw/B,QACD,iECvCI,MAEM+kF,GAAwB,EACxBC,GAAsB,ECMtBC,GACXC,IAEA,KAAKA,aAAAA,EAAAA,EAAex8I,QAAQ,OAAO,EAEnC,MAGMy8I,EAHsBD,EAAc57I,KACvC87I,GAAiBA,EAAaC,UAAU5vI,KAEC4F,QAAQiqI,GAClD,CAACN,GAAqBD,IAAuBjmI,SAASwmI,KASxD,MANwB,CACtBH,EAAgBz8I,OAAS,EAEzBy8I,EAAgBz8I,SAAWw8I,EAAcx8I,QAGpBugB,MAAML,QAAQ,qEC3BhC,MAAM28H,GACXC,IAIA,IAAKA,EAAgB,OAAO,EAC5B,MAAM,IAAEltI,EAAG,MAAEmN,EAAK,KAAEggI,GAASD,EAEvBE,EAAiB,CACrB,IAAIptI,aAAAA,EAAAA,EAAK7C,yBACT,IAAI6C,aAAAA,EAAAA,EAAK7C,0BAGLkwI,EAAY,OAAOF,aAAAA,EAAAA,EAAMhwI,KAEzBmwI,EAAiBngI,aAAAA,EAAAA,EAAOpK,QAC3BwqI,IAAeA,EAAU/mI,SAAS6mI,KAGrC,OACEC,aAAAA,EAAAA,EAAgBl9I,QAAU,IAC1Bk9I,aAAAA,EAAAA,EAAgB38H,OAAO48H,GAAcH,EAAe5mI,SAAS+mI,KAAAA,mBCV7D,GAAU,CAAC,EAEf,GAAQlmI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCFM8lI,GAAY,EACvBj1G,OACAk1G,WACAC,gBACA/pB,mBAEA,MAAM,EAAEzqH,IAAM6tF,EAAAA,EAAAA,MAEd,OACE,UAAC4mD,EAAAA,EAAMA,CACL/lI,UAAU,aACVgmI,UAAU,EACVr1G,KAAMA,EACNm1G,cAAeA,EACfD,SAAUA,EACVI,gBAAgB,EAChBC,+BAA+B,aAE/B,SAACH,EAAAA,EAAO5+B,MAAK,CACX7yD,gBAAgB,WAChBv8B,MAAO,CACL,CAAElB,UAAU,EAAM7Q,QAAS1U,EAAE,sBAC7B,CAAE1J,KAAM,QAASoe,QAAS1U,EAAE,wBAE9BuE,MAAOvE,EAAE,SACTb,KAAK,WAEP,SAACs1I,EAAAA,EAAOnkD,OAAM,CACZ5hF,UAAU,qBACVpY,KAAK,UACLmjH,QAASgR,EACTv2D,QAAS,KACP70B,EAAKw1G,QAAQ,WAGd70I,EAAE,mCC9CP,GAAU,CAAC,EAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCbMsmI,GAAS,EACpBC,SACAC,cACAv0G,QACAthC,OACA81I,mBAQA,MAAM,EAAEj1I,IAAM6tF,EAAAA,EAAAA,MAEd,OACE,UAAC91C,MAAAA,CAAIrpC,UAAU,wBACZqmI,IAAU,SAAC37I,IAAAA,CAAEsV,UAAU,+BAAuBqmI,KAC/C,UAAC37I,IAAAA,CAAEsV,UAAU,wBAAwBisE,cAAY,oBAC9Cq6D,GAAeh1I,EAAE,2BAClB,SAAC4U,OAAAA,CAAKlG,UAAU,8BAAsB+xB,OAEvCthC,IACC,SAAC/F,IAAAA,CAAEsV,UAAU,kCACX,SAACkG,OAAAA,CAAKlG,UAAU,8BAAsBvP,OAG1C,SAAC0P,EAAAA,EAAQA,CAACvY,KAAK,OAAO49D,QAAS+gF,WAC5Bj1I,EAAE,mCC5BP,GAAU,CAAC,kUAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCSnD,MAAM0mI,GAAiB,EAC5Bz0G,QACA00G,SACAC,kBACAC,cACAC,mBACAC,wBAEA,MAAM,EAAEv1I,IAAM6tF,EAAAA,EAAAA,MAGR2nD,EAAe,CACnBC,EACAC,KAEA,MAAM/0H,EAASw0H,EAAO9iE,MACnBsjE,GAAgBA,EAAYx2I,OAASs2I,IAElC9lG,EAAYhvB,aAAAA,EAAAA,EAAQ+tE,WAAWrc,MAClCyb,GAAOA,EAAG7pF,KAAOwG,OAAOirI,SAOvB/lG,EACAA,EAWkBhvB,EAhBlBA,GAAUgvB,IAI6B,sBAAhB,QAAvBA,EAAAA,EAAUC,qBAAVD,IAAAA,OAAAA,EAAAA,EAAyBE,aACC,QAA1BF,EAAAA,EAAUG,wBAAVH,IAAAA,OAAAA,EAAAA,EAA4BimG,cAE5BL,EAAkB,CAChB90G,QACAo1G,kBAAmBlmG,EAAUmmG,SAE7B15I,IAAKukB,EAAOvkB,MAGdk5I,EAAiB,CACfS,UAAWp1H,EAAOvkB,IAClB45I,eAA6B,QAAbr1H,EAAAA,EAAOs1H,cAAPt1H,IAAAA,OAAAA,EAAAA,EAAeu1H,SAC/BvmG,cAGN,EAGIwmG,EAAAA,iBAA+D,cACnE1iJ,GAEA,MAAMgiJ,EAAahiJ,EAAE2iJ,cAAc53E,aAAa,eAC1Ck3E,EAAcjiJ,EAAE2iJ,cAAc53E,aAAa,kBAEjDg3E,EAAaC,EAAYC,EAC3B,oBANEjiJ,mCADI0iJ,GASAE,EAAAA,iBAA0B,cAAOjjJ,GACrC,MAAOqiJ,EAAYC,GAAetiJ,EAAMe,MA9ClB,KAgDtBqhJ,EAAaC,EAAYC,EAC3B,oBAJuCtiJ,mCAAjCijJ,GAMAC,EACJnB,EAAO/9I,QAAO,CAACm/I,EAAMC,IACZD,EAAOC,EAAM9nD,WAAWx3F,QAC9B,GAAK,GAyBJu/I,EAAsB9mG,IAC1B,MAAM,IAAE7oC,EAAG,iBAAEgpC,GAAqBH,EAGlC,OAAI7oC,EACKA,EAAI3H,KAIT2wC,GAAoBA,EAAiBhpC,IAChCgpC,EAAiB8lG,cACtB,gCAAE,QAAM9lG,EAAiBhpC,IAAI3H,QAE7B2wC,EAAiBhpC,IAAI3H,KAKlBwwC,EAAUmmG,QAAQ,EA6B3B,OACE,UAAC/9F,MAAAA,CAAIrpC,UAAU,6BACb,SAAComI,GAAMA,CACLC,OAEM/0I,EADJo1I,EACM,qCACA,oCAERJ,YAAY,GACZv0G,MAAOA,EACPw0G,aAAcI,IAEfiB,EAlFkB,MACrB,MAAMI,EAAgBvB,EAAOr9I,KAAK0+I,IACzB,CACLjyI,MAAOiyI,EAAMr3I,KACb0G,QAAS2wI,EAAM9nD,WAAW52F,KAAK63C,IAAe,CAC5CprC,MAAOkyI,EAAmB9mG,GAC1Bv8C,MAAO,GAAGojJ,EAAMr3I,QAAyBwwC,EAAU1rC,aAKzD,OACE,SAAC8zC,MAAAA,CAAIrpC,UAAU,oCACb,SAACgjI,EAAAA,EAAQA,CACP7rI,QAAS6wI,EACThnC,YAAa1vG,EAAE,yBACf22I,YAAU,EACV5yF,SAAUsyF,OAiESO,IArCzB,SAACC,KAAAA,CAAGnoI,UAAU,wCACXymI,EAAOr9I,KAAK69I,IAET,UAACmB,KAAAA,CAAyBpoI,UAAU,qCAClC,SAACtV,IAAAA,CAAEsV,UAAU,wCAAgCinI,EAAYx2I,QACzD,SAAC03I,KAAAA,CAAGnoI,UAAU,2CACXinI,EAAYjnD,WAAW52F,KAAK63C,IAC3B,SAACmnG,KAAAA,CAAsBpoI,UAAU,uCAC/B,SAACG,EAAAA,EAAQA,CACPqlD,QAASiiF,EACTY,cAAapB,EAAYx2I,KACzB63I,iBAAgBrnG,EAAU1rC,GAC1ByK,UAAU,mCAET+nI,EAAmB9mG,MAPfA,EAAU1rC,UAJhB0xI,EAAYv5I,8BC9IxB,MAAM66I,GACX3D,GAIOl8H,QACLk8H,IAHS,mEAGU3uH,KAAK2uH,IAFZ,8BAEkC3uH,KAAK2uH,sBCChD,MAAM4D,GAAsB,CACjCC,EACAxnG,EACAynG,SAGEznG,EAAqBA,EAAAA,EAArBA,EADF,IAAIvlC,EACe,QAAjBulC,EAAa,QAAbA,EAAAA,EAAU7oC,WAAV6oC,IAAAA,OAAAA,EAAAA,EAAe1rC,UAAf0rC,IAAAA,EAAAA,EAA+C,QAA1BA,EAAAA,EAAUG,wBAAVH,IAAAA,GAA+B,QAA/BA,EAAAA,EAA4B7oC,WAA5B6oC,IAAAA,OAAAA,EAAAA,EAAiC1rC,GAExD,GAAImzI,EAAO,KAEOznG,EAAAA,EAIR0nG,EAJR,MAAMA,EAAmC,QAAzB1nG,EAAAA,EAAU2nG,uBAAV3nG,IAAAA,GAAgC,QAAhCA,EAAAA,EAA2B4nG,aAA3B5nG,IAAAA,OAAAA,EAAAA,EAAkC0iC,MAAM4hE,QAC/CA,EAAAA,EAAP,OAAe,QAARA,EAAAA,EAAKntI,WAALmtI,IAAAA,GAAwB,QAAxBA,EAAAA,EAAUuD,sBAAVvD,IAAAA,OAAAA,EAAAA,EAA0BwD,QAAQ,IAG3CrtI,EAAQitI,SAAY,QAAZA,EAAAA,EAASvwI,WAATuwI,IAAAA,OAAAA,EAAAA,EAAcpzI,EACxB,CAIA,OAFAmG,EAAQ+sI,QAAAA,EAAiB/sI,EAElB1Q,OAAO0Q,QAAAA,EAAS,GAAG,sQCPrB,MAAMstI,GAAe,EAC1BnrG,MACA2wF,YACAr3H,UACA8xI,eAEA,MAAOC,EAAaC,IAAkBxoD,EAAAA,EAAAA,WAAS,GA4B/C,MAAO,CACLyoD,gBApBIA,sBAAkB,UAAO/nH,GAC7B8nH,GAAe,GACf,UACQ5a,EAAAA,GAAAA,0UAAa,EACjB1wF,MACA2wF,YACAr3H,UACAs3H,QAAQ,GACLptG,GAEP,CAAE,MAAOrzB,GAGPi7I,EAFmBj7I,EAECgY,QACtB,CAAE,QACAmjI,GAAe,EACjB,CACF,mMAjB+B9nH,mCAAzB+nH,GAqBJF,cACD,kBCzDI,MAAMG,GAA0B,CACrCp3H,EACAovE,EAAmB,MAEnB,MAAMmmD,GAAWx1H,EAAAA,GAAAA,GAAeC,IAEhCq3H,EAAAA,GAAAA,GAAkB,GAAG9B,IAAWnmD,IAAW,gCCEzC,GAAU,CAAC,EAEf,GAAQ5hF,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCpBMypI,GAAa,EAAGvjI,cAEzB,SAACqjC,MAAAA,CAAIrpC,UAAU,QAAQisE,cAAY,wBACjC,SAACkoB,GAAAA,EAAKA,CAACvsG,KAAK,QAAQoe,QAASA,EAASouF,UAAQ,uBCJ7C,MAAMo1C,GAAgB,CAACv3H,EAAgBvW,MAC5C4tI,EAAAA,GAAAA,GAAkB,IAAGG,EAAAA,GAAAA,GAAUx3H,QAAavW,IAAQ,ECczCguI,GAAgB,CAC3B1E,EAEqC,GACrCI,IAEAJ,EAAcrhE,MAAK,EAAGwhE,eACbA,EAAU5vI,KAAO6vI,ICbfuE,GAAmCvxI,IAC9C,IAAKA,EAAK,OAGV,MAAMwxI,EAAiBF,GAActxI,EAAI4sI,cAAeF,IAClD+E,EAAmBH,GACvBtxI,EAAI4sI,cACJH,IAIF,OAAO+E,aAAAA,EAAAA,EAAgB/rG,OAAOgsG,aAAAA,EAAAA,EAAkBhsG,IAAG,mBCZjD,GAAU,CAAC,+jBAEf,GAAQp+B,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCW1D,MAAMmS,GAAS63H,KAAAA,IAYFC,GAAe,EAC1Bh4G,QACAkP,YACAomG,YACAC,iBACAX,sBAiHmBvlG,EA/GnB,MAAM,EAAE9vC,IAAM6tF,EAAAA,EAAAA,OACR,MAAEzjF,EAAK,YAAEkpI,EAAW,QAAEF,EAAO,MAAE5kF,GAAUykF,KACxCyF,EAAcC,IAAmBtpD,EAAAA,EAAAA,WAAS,IAC1Co7B,EAAcC,IAAmBr7B,EAAAA,EAAAA,WAAS,IAC1C1zF,EAAOg8I,IAAYtoD,EAAAA,EAAAA,YAEpBupD,EAAgB1B,GACpB9sI,EACAulC,EACY,QAAZyjG,IAGI,gBAAE0E,EAAe,YAAEF,GAAgBF,GAAa,CACpDnrG,IAAK0qG,GAAmB3D,GAAe,IAAI5tG,IAAI4tG,GAAa71E,OAAS,GACrEy/D,UAAWoW,EACXztI,QAAS,CACP8a,OAAQo1H,EACR8C,OAAQpuI,OAAOmuI,GACfpqF,SAEFmpF,aAOImB,EAAmBxF,aAAAA,EAAAA,EAAahmI,UCjFDi/B,EDkFZ,IAAI7G,KAAIyyG,EAAAA,GAAAA,GAAUx3H,KAASujG,MCjFzCvmF,SAAS,KAAO4O,EAAI9xC,MAAM,GAAI,GAAK8xC,GADV,IAACA,EDqFrC,MAAMwsG,EAAwBzF,aAAAA,EAAAA,EAAahmI,UAAS0rI,EAAAA,GAAAA,MAS9CzE,EAAAA,sBAA6B,WACjCjhI,QAAQ,SAAE2lI,EAAQ,SAAEC,KAEpBvB,OAAS1kJ,GACTy3H,GAAgB,GAChB,MAAMyuB,QAAsBhH,MAAM,GAAG6D,eAA6B,CAChEzxH,OAAQ,OACRmoE,QAAS,CACP,eAAgB,oBAElBx/C,KAAMpX,KAAKL,UAAU,IACnBgL,QACAw4G,WACAvD,YAAa/lG,EAAU1rC,IACnBi1I,GAAY,CAAEE,IAAK,CAAEF,iBAGvBv4I,QAAaw4I,EAAc/xD,OAIjC,GAFAsjC,GAAgB,GAEa,MAAzByuB,EAAch2I,OAAgB,CEjHC0H,EFkHVlK,EAAKA,KAAKkK,OE9GrCk6G,EAAAA,EAAAA,IAAel6G,GFgHX,MAAMwuI,EAAcb,KAAAA,gCAAyCzC,EAGvDuD,EACJ34I,EAAKA,KAAKiK,eAAeynE,MAAMknE,GACtBA,EAAczyI,IAAI7C,KAAOwG,OAAOmuI,MACnC,CAAC,GACH,IAAE9xI,GAAQwyI,EAChB,GAAIrC,GAAmB3D,GACrBwE,EAAgB,CAEd1a,WAAY0b,GAAoBC,SAE7B,IAAIS,EAAAA,GAAAA,IAAsB,CAAE3uI,MAAOlK,EAAKA,OAC7Co3I,GAAwBsB,EAAa,eAChC,IAAII,EAAAA,GAAAA,GAAyBH,GAClCpB,GAAcmB,EAAavyI,EAAI7C,SAC1B,GAAIwvI,GAAyB3sI,aAAAA,EAAAA,EAAK4sI,eAAgB,CACvD,MAAMgG,EAAWrB,GAAgCvxI,GAEjDgxI,EAAgB,CACdvrG,IAAKmtG,EACLxc,UAAWwc,GAEf,MAAO,GAAI3F,GAAsBuF,GAAqB,CACpD,MAAMK,EAAc,IAAGX,EAAAA,GAAAA,UAAyBlyI,EAAI7C,MACpD+zI,EAAAA,GAAAA,GAAkB2B,EACpB,MAEE5B,GAAwBsB,EAE5B,MA5D4B,OAFVO,EA8DIj5I,GA5DTwmF,YACY,6CAAvByyD,EAAWllI,QA4DXikI,GAAgB,GAEhBhB,EAASh3I,EAAK+T,SAjEC,IAACklI,EErFiB/uI,CFwJrC,mMA5DM0pI,mCAAAA,IA8DNsF,EAAAA,GAAAA,KAAW,KACTlC,OAAS1kJ,EAAU,IAGrB,MAAM,IAAE6T,EAAG,iBAAEgpC,GAAqBH,EAE5BxwC,EACH2H,GAAQgpC,GAELhpC,aAAAA,EAAAA,EAAK3H,QAAQ2wC,SAAqB,QAArBA,EAAAA,EAAkBhpC,WAAlBgpC,IAAAA,OAAAA,EAAAA,EAAuB3wC,MADpCwwC,EAAUmmG,SAGhB,OACE,UAAC/9F,MAAAA,YACC,SAAC+8F,GAAMA,CAACr0G,MAAOA,EAAOthC,KAAMA,EAAM81I,aAAcI,IAC/C15I,IAAS,SAACs8I,GAAUA,CAACvjI,QAAS/Y,KAC/B,UAAC84I,EAAAA,EAAMA,CACL/lI,UAAU,gBACVimI,gBAAgB,EAChBJ,SAAUA,EACVuF,aAAa,MACblF,+BAA+B,EAC/BF,UAAU,aAEV,SAACD,EAAAA,EAAOsF,cAAa,CACnBrrI,UAAU,0BACVvP,KAAK,WACLoF,MAAOvE,EAAE,YACTgjD,gBAAgB,WAChBv8B,MAAO,CACL,CACElB,UAAU,EACV7Q,QAAS1U,EAAE,4BAKhB04I,IACC,SAACjE,EAAAA,EAAO5+B,MAAK,CAAC12G,KAAK,WAAWoF,MAAOvE,EAAE,YAAayjG,WAAS,KAG7Di1C,IACA,SAACjE,EAAAA,EAAOuF,WAAU,CAChB9lF,QAAS,KACPykF,GAAgB,EAAK,WAGtB34I,EAAE,2CAIP,SAACy0I,EAAAA,EAAOnkD,OAAM,CACZ2pD,OAAK,EACLvrI,UAAU,gCACVwrI,SAAS,SACT5jJ,KAAK,UACLmjH,QAASgR,GAAgBmtB,WAExB53I,EAAE,oBG9MPm6I,GAA2C,CAC/C,UACA,OACA,MACA,goCCDF,MAAMC,GAAkBrlB,KAAAA,eAkFXslB,GAAAA,iBAAoB,cAC/B55G,GACA,IAAErkC,EAAG,MAAEgO,EAAK,MAAEgtI,GAAwB,CAAC,GAEvC,MAAMkD,QAAwBnI,MAAM,GAAGiI,yBACjCG,QAEID,EAAgBlzD,OAEpBozD,QAA2BtiJ,QAAQ81C,IACvCusG,EAAQ55I,KAELkJ,QAAQ8W,IAAYvkB,GAAOukB,EAAOvkB,MAAQA,IAC1CtE,KAAK6oB,QAECA,SADLwxH,MACE,GAAgB,QAAbxxH,EAAAA,EAAOs1H,cAAPt1H,IAAAA,OAAAA,EAAAA,EAAeu1H,kDAClB,CACE3xH,OAAQ,OACRmoE,QAAS,CACP,eAAgB,oBAElBx/C,KAAMpX,KAAKL,UAAU,CAAEgL,WACzB,KAKFg6G,QAEIviJ,QAAQ81C,IAChBwsG,EAAmB1iJ,IAAG,iBAAC,cAAO4F,OAUF0pF,EAL1B,MAAMzmE,EDjH0B,CAAC4rB,IACrC,IAAK,IAAImuG,EAAS,EAAGA,EAASP,GAAmBjjJ,OAAQwjJ,GAAU,EACjE,GAAInuG,EAAIj/B,SAAS,IAAI6sI,GAAmBO,OACtC,OAAOP,GAAmBO,GAI9B,MAAO,MAAM,EC0GMC,CAAuBj9I,EAAI6uC,KAEpC66C,QAAa1pF,EAAI0pF,OAGvB,OAAmB,MAAf1pF,EAAIyF,QAAgD,YAAhB,QAAdikF,EAAAA,EAAKE,iBAALF,IAAAA,OAAAA,EAAAA,EAAgB/lD,WACjC,KAGF,IAAI+lD,EAAKzmF,MAAM7I,KACnB6I,GAAmC,SAC/BA,GAAAA,CACHggB,YAGN,oBApB8BjjB,mCAAR,KAyBlBk9I,EAAgBH,EAAsB5wI,QAExCgxI,KACuDA,IAGrDC,EAA2B,GAoBjC,OAnBAF,EAAcrlJ,SAASm5F,IAErB,MAAMqsD,EAAoBrsD,aAAAA,EAAAA,EAAY7kF,QAAQ8lC,GApH1B,EACtBA,GACEvlC,QAAOgtI,gBASPznG,EACEA,EACAA,EAODA,EACDA,EAKYA,EAAAA,EAhBd,GANqC,KAOZ,QAAvBA,EAAAA,EAAUC,qBAAVD,IAAAA,OAAAA,EAAAA,EAAyB1rC,QACE,QAAzB0rC,EAAAA,EAAU2nG,uBAAV3nG,IAAAA,OAAAA,EAAAA,EAA2B4nG,QACiB,KAAnB,QAAzB5nG,EAAAA,EAAU2nG,uBAAV3nG,IAAAA,OAAAA,EAAAA,EAA2B4nG,MAAMrgJ,SAEnC,OAAO,EAIT,KAC6B,QAA1By4C,EAAAA,EAAUG,wBAAVH,IAAAA,OAAAA,EAAAA,EAA4BimG,gBACH,QAA1BjmG,EAAAA,EAAUG,wBAAVH,IAAAA,OAAAA,EAAAA,EAA4BqrG,oBAE5B,OAAO,EAGT,MAAMzD,EAAwC,QAAhC5nG,EAAyB,QAAzBA,EAAAA,EAAU2nG,uBAAV3nG,IAAAA,OAAAA,EAAAA,EAA2B4nG,aAA3B5nG,IAAAA,EAAAA,EAAoC,GAGlD,OAAIvlC,EAGAmtI,EAAMlvI,WACH4rI,QACCA,EACWA,SADH,QAARA,EAAAA,EAAKntI,WAALmtI,IAAAA,OAAAA,EAAAA,EAAUhwI,MAAOmG,KACfgtI,IAAgC,QAAvBnD,EAAAA,EAAKntI,IAAI0wI,sBAATvD,IAAAA,OAAAA,EAAAA,EAAyBgH,aAAU,KAC7C,GAMN7D,GACDG,EAAMlvI,WAAW4rI,QAASA,EAAAA,SAAQ,QAARA,EAAAA,EAAKntI,WAALmtI,IAAAA,GAAwB,QAAxBA,EAAAA,EAAUuD,sBAAVvD,IAAAA,OAAAA,EAAAA,EAA0BgH,WAAW,KAAK,CAAC,EA0EnEC,CAAgBvrG,EAAW,CAAEvlC,QAAOgtI,YAGtC,IAAI2D,aAAAA,EAAAA,EAAmB7jJ,QAAS,EAAG,CACjC,MAAMypB,EAAS45H,EAAQ55I,KAAK0xE,MAE1B,EAAGj2E,IAAK25I,KAAgBA,IAAcgF,EAAkB,GAAGp6H,SAG7Dm6H,EAAeliJ,KAAK,SACf+nB,GAAAA,CACH+tE,WAAYqsD,IAEhB,KAGKD,CACT,oBAjFEr6G,mCADW45G,6HC9DN,MAAMc,GAAuB,EAClCC,YACA9F,mBACA+F,YACA9F,wBAEA,MAAM,EAAEv1I,IAAM6tF,EAAAA,EAAAA,OACPytD,EAAmBC,IAAwBlsD,EAAAA,EAAAA,WAAS,IAErD,MAAEjlF,EAAK,QAAEgpI,EAAO,OAAEzyH,GAAWsyH,IAC7BmE,GAAQp1F,EAAAA,EAAAA,UAAQ,IAAM5qC,QAAQg8H,GAAuB,QAAZA,IAAoB,CAACA,IA8EpE,MAAO,CAAEoI,mBArEiB1mF,EAAAA,EAAAA,aAAWA,sBACnC,UAAO2mF,GACL,QAYIX,EAXFS,GAAqB,GAErB,MAAMT,QAAuBT,GAAkBoB,EAAa,CAC1Dr/I,IAAKukB,EACLvW,MAAOA,EAAQK,OAAOL,QAASnX,EAC/BmkJ,UAIF,GACE0D,EAAe5jJ,OAAS,IACP,QAAjB4jJ,EAAAA,EAAe,UAAfA,IAAAA,OAAAA,EAAAA,EAAmBpsD,WAAWx3F,QAAS,EAIvC,OAFAqkJ,GAAqB,QACrBF,EAAUP,OAQRA,EAEAA,EAWgBA,EAhBpB,GAA8B,IAA1BA,EAAe5jJ,OAEjB,MAEI,sBAD2C,QAA7C4jJ,EAAAA,EAAe,GAAGpsD,WAAW,GAAG9+C,qBAAhCkrG,IAAAA,OAAAA,EAAAA,EAA+CjrG,aAEC,QAAhDirG,EAAAA,EAAe,GAAGpsD,WAAW,GAAG5+C,wBAAhCgrG,IAAAA,OAAAA,EAAAA,EAAkDlF,cAE3CL,EAAkB,CACvB90G,MAAOg7G,EACP5F,kBAAmBiF,EAAe,GAAGpsD,WAAW,GAAGonD,SACnD15I,IAAKukB,KAGT46H,GAAqB,QACrBjG,EAAiB,CACfS,UAAW+E,EAAe,GAAG1+I,IAC7B45I,eAAwC,QAAxB8E,EAAAA,EAAe,GAAG7E,cAAlB6E,IAAAA,OAAAA,EAAAA,EAA0B5E,SAC1CvmG,UAAWmrG,EAAe,GAAGpsD,WAAW,MAM5C6sD,GAAqB,GAErBH,EAAUM,UAAU,CAClB,CACEv8I,KAAM,QACNiqB,OAAQ,CAACppB,EAAE,iCAGjB,CAAE,SACAu7I,GAAqB,EACvB,CACF,mMAvDOE,mCAD4B3mF,GAyDnC,CACEn0C,EACAvW,EACAgtI,EACAgE,EACAp7I,EACAq7I,EACA/F,EACAC,IAIwB+F,oBAAmB,mBC3G7C,GAAU,CAAC,qPAEf,GAAQntI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCyBnD,MAAMmtI,GAAY,EACvBC,eACAC,mBACAtG,wBAEA,MAAM,EAAEv1I,IAAM6tF,EAAAA,EAAAA,OACR,MAAEzjF,EAAK,YAAEkpI,GAAgBL,KAEzB,WAAEE,GAAeF,KAChBmI,GAAa3G,EAAAA,EAAOp6D,UACrBpwE,GAAco5G,EAAAA,EAAAA,MACd7hH,GAAWs6I,EAAAA,GAAAA,gBAIVr7G,EAAOs7G,GAAYh2D,EAAAA,SAAe61D,QAAAA,EAAgBzI,IAClDgC,EAAQkG,GAAat1D,EAAAA,YACrBi2D,EAAe1G,IAAoBjmD,EAAAA,EAAAA,YAIpCgmD,GAAcvgF,EAAAA,EAAAA,cAAY,KAC9BumF,OAAUpoJ,GACVqiJ,OAAiBriJ,GACjB8oJ,EAAS,KAAK,GACb,KAEG,kBAAEP,EAAiB,kBAAEF,GAAsBH,GAAqB,CACpEC,YACAC,YACA/F,mBACAC,sBAGI0G,GAAkCnnF,EAAAA,EAAAA,aAAWA,sBACjD,WAAO,OAAExhD,IACPyoI,EAASzoI,EAAOmtB,aACV+6G,EAAkBloI,EAAOmtB,MACjC,sOAJiDq0B,GAKjD,CAACinF,EAAUP,KAGL76I,KAAMu7I,IAAcj2D,EAAAA,GAAAA,GAAW,CACrCC,gBAAiB,sBACjBC,WAAY,CAACl8E,GACbw1B,QAASroB,QAAQnN,GACjB2rG,OAASj1G,GAASA,EAAKymF,KAAKzmF,QAI9Bo0D,EAAAA,EAAAA,YAAU,KACR,GAAImnF,EAAW,KAgBYA,EAmBE5C,EAlC3B,GAAIhG,GAAe2D,GAAmB3D,GAEpC,YADA0E,EAAAA,GAAAA,GAAkB1E,GAIpB,MAAM3yH,EACJo0G,KAAAA,iCACAinB,aAAAA,EAAAA,EAAejG,YACfhhB,KAAAA,KAE0BykB,EAAAA,GAAAA,IAAsB,CAAE3uI,MAAOqxI,KAEzDnE,GAAwBp3H,EAAQ,UAGlC,IAAI24H,EAA6C,QAAxB4C,EAAAA,EAAUtxI,sBAAVsxI,IAAAA,OAAAA,EAAAA,EAA0B7pE,MAAM8pE,QAEnDA,SADJ/xI,GACkB,QAAd+xI,EAAAA,EAAWr1I,WAAXq1I,IAAAA,OAAAA,EAAAA,EAAgBl4I,MAAOwG,OAAOL,IAC9BqvI,EAAAA,GAAAA,GAAyB0C,EAAW,QAInBD,EAUC5C,EALxB,GANKA,IACHA,EAA6C,QAAxB4C,EAAAA,EAAUtxI,sBAAVsxI,IAAAA,OAAAA,EAAAA,EAA0B7pE,MAC5C8pE,QAAeA,SAAc,QAAdA,EAAAA,EAAWr1I,WAAXq1I,IAAAA,OAAAA,EAAAA,EAAgBl4I,EAAE,MAIjCq1I,EACH,OAGF,IAAIG,EAAAA,GAAAA,GAAyBH,GAC3BpB,GAAcv3H,GAAQ24H,SAAuB,QAAvBA,EAAAA,EAAoBxyI,WAApBwyI,IAAAA,OAAAA,EAAAA,EAAyBr1I,KAAM,QAChD,GACLwvI,GAAyB6F,SAAuB,QAAvBA,EAAAA,EAAoBxyI,WAApBwyI,IAAAA,OAAAA,EAAAA,EAAyB5F,eAClD,KAGa4F,EAAAA,EAFb,MAAMI,EAAWrB,6UAAgC,IAC5CiB,EAAmBxyI,gBAAG,CACzBs1I,UAA4C,QAAjC9C,EAAsB,QAAtBA,EAAAA,EAAmBxyI,WAAnBwyI,IAAAA,OAAAA,EAAAA,EAAwB8C,iBAAxB9C,IAAAA,GAAAA,uVAGbtB,EAAAA,GAAAA,GAAkB0B,EACpB,MAAO,GAAI3F,GAAsBuF,GAAqB,KACJA,EAAhD,MAAMK,EAAc,IAAGX,EAAAA,GAAAA,UAAyBM,SAAuB,QAAvBA,EAAAA,EAAoBxyI,WAApBwyI,IAAAA,OAAAA,EAAAA,EAAyBr1I,MAEzE+zI,EAAAA,GAAAA,GAAkB2B,EACpB,KAAO,CAYL,GAAIn4I,EAASuuF,SAASziF,SAAS,SAAU,OACzCyqI,GAAwBp3H,EAC1B,CACF,WACC,CACDu7H,EACA9xI,EACAkpI,EACA9xI,EAASuuF,SACTisD,aAAAA,EAAAA,EAAejG,aAKjBhhF,EAAAA,EAAAA,YAAU,KACR,MAAMsnF,EAAeT,QAAAA,EAAgBzI,EACjCkJ,GACFb,EAAkBa,EACpB,GAGC,IAGH,MAAMC,EAAoBjqC,EAAAA,EAAK/3B,SAAS,QAAS8gE,GAU3CmB,GAAcpH,IAAW6G,EACzBQ,EAAiBrH,GAAU10G,IAAUu7G,EACrCS,EAAgBh8G,GAASu7G,EAE/B,OACE,UAACjkG,MAAAA,WACEwkG,IACC,SAACjI,GAASA,CACRj1G,KAAM+7G,EACN3wB,aAAc6wB,EACd9G,cAAe,CAAE/zG,SACjB8zG,SAAU0H,IAGbO,IACC,SAACtH,GAAcA,CACbz0G,MAAOA,EACP00G,OAAQA,EACRE,YAAaA,EACbC,iBAAkBA,EAClBC,kBAAmBA,IAGtBkH,IACC,SAAChE,GAAYA,CACXh4G,MAAOA,EACPkP,UAAWqsG,EAAcrsG,UACzBomG,UAAWiG,EAAcjG,UACzBC,eAAgBgG,EAAchG,eAC9BX,YAAaA,KAGjB,SAAC5mI,EAAAA,EAAYA,CAACC,UAAU,kBAAkBwlD,QAxCjB,KAC3B2nF,EAAiB,CACfa,WAAW,EACXd,aAAcU,QAAAA,EAAqB77G,GACnC,WAqCGzgC,EAAE,2CCvNP,GAAU,CAAC,EAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCFMmuI,GAAqB,EAChCt9G,OACAm1G,gBACA/pB,eACA8pB,eAEA,MAAM,EAAEv0I,IAAM6tF,EAAAA,EAAAA,MAEd,OACE,UAAC91C,MAAAA,YACC,SAACA,MAAAA,CAAIrpC,UAAU,wCACb,SAACtV,IAAAA,UAAG4G,EAAE,2DAER,UAACy0I,EAAAA,EAAMA,CACL/lI,UAAU,aACV2wB,KAAMA,EACNm1G,cAAeA,EACfD,SAAUA,EACVI,gBAAgB,EAChBC,+BAA+B,EAC/BF,UAAU,aAEV,SAACD,EAAAA,EAAO5+B,MAAK,CACX7yD,gBAAgB,WAChBv8B,MAAO,CACL,CAAElB,UAAU,EAAM7Q,QAAS1U,EAAE,sBAC7B,CAAE1J,KAAM,QAASoe,QAAS1U,EAAE,wBAE9BuE,MAAOvE,EAAE,SACTb,KAAK,WAEP,SAACs1I,EAAAA,EAAOnkD,OAAM,CACZ5hF,UAAU,qBACVpY,KAAK,UACLmjH,QAASgR,EACTv2D,QAAS,KACP70B,EAAKw1G,QAAQ,WAGd70I,EAAE,iLC3DN,MAAM48I,GAAAA,sBAAuB,WAAO,MACzCn8G,EAAK,kBACLo1G,EAAiB,eACjBG,EAAc,eACd6G,IAOA,MACM75I,EAAU,CACdy9B,QACAo1G,oBACAiH,SAAU,IAJI9sD,EAAAA,EAAAA,KAAoBk0B,KAAK/vH,MAAM,KAAK,MAI1B0oJ,KAc1B,aAXoC1K,MAClC,GAAG6D,uBACH,CACEzxH,OAAQ,OACRmoE,QAAS,CACP,eAAgB,oBAElBx/C,KAAMpX,KAAKL,UAAUzyB,IAK3B,mMA9Ba45I,mCAAAA,oBCST,GAAU,CAAC,2bAEf,GAAQzuI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCHnD,MAAMuuI,GAAuB,EAClCt8G,QACAo1G,oBACAzrI,QACAuW,SACAq1H,qBAQA,MAAM,EAAEh2I,IAAM6tF,EAAAA,EAAAA,OACR,QAAEulD,GAAYH,KACbt3I,EAAOg8I,IAAYtoD,EAAAA,EAAAA,aACnBnM,EAAY85D,GAAiBtoI,GAAAA,GAAQ0uE,aAEtC65D,GAAqBnoF,EAAAA,EAAAA,cAAY,KACrCouB,EAAWra,KAAK,CACdvyE,KAAM,UACNy+C,QAAS,aACTrmC,UAAW,oCACX,GACD,CAACw0E,IAEEg6D,GAAkBpoF,EAAAA,EAAAA,aAAWA,IAAC,YAClC,MAAM+nF,EAAiB,IAAIphB,uVAAgB,EACzCh7F,QACAr2B,QACAuW,SACAgvB,UAAWkmG,EACXxC,cAAe,QACXD,GAAW,CAAEA,aAGb+J,QAA8BP,GAAqB,CACvDn8G,MAAOA,EACPo1G,oBACAG,iBACA6G,mBAGF,GACEM,EAAsBh6I,QAAU,KAChCg6I,EAAsBh6I,OAAS,IAE/B85I,QACK,CACL,MAAM31D,QAAkB61D,EAAsB/1D,OAE9CuwD,EAASrwD,EAAU5yE,QACrB,CACF,IAAG,CACD+rB,EACAu1G,EACAH,EACAzrI,EACAuW,EACAyyH,EACA6J,IAQF,OAJAloF,EAAAA,EAAAA,YAAU,KACRmoF,GAAiB,GAChB,CAACA,KAGF,UAACnlG,MAAAA,CAAIrpC,UAAU,iCACZ/S,IAAS,SAACs8I,GAAUA,CAACvjI,QAAS/Y,KAC/B,UAACvC,IAAAA,CAAEsV,UAAU,uCACV1O,EAAE,8BACH,SAAC4U,OAAAA,CAAKlG,UAAU,uCAA+B+xB,IAC9CzgC,EAAE,4DAEJg9I,GACD,SAACvuI,EAAAA,EAAYA,CACXC,UAAU,sCACVwlD,QAASgpF,WAERl9I,EAAE,0CC3FP,GAAU,CAAC,4HAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCGnD,MAAM4uI,GAAqB,EAChCxB,eACAyB,iBACA9H,wBAEA,MAAM,EAAEv1I,IAAM6tF,EAAAA,EAAAA,OACPutD,GAAa3G,EAAAA,EAAOp6D,WAEpB55C,EAAOs7G,GAAYh2D,EAAAA,SAAe61D,IAClCzG,EAAQkG,GAAat1D,EAAAA,YACrBi2D,EAAe1G,GAAoBvvD,EAAAA,YAIpC,kBAAEy1D,EAAiB,kBAAEF,GAAsBH,GAAqB,CACpEC,YACAC,YACA/F,mBACAC,sBAGIF,GAAcvgF,EAAAA,EAAAA,cAAY,KAC9BumF,OAAUpoJ,GACV8oJ,EAAS,KAAK,GACb,IAEGE,GAAkCnnF,EAAAA,EAAAA,aAAWA,sBACjD,WAAO,OAAExhD,IACPyoI,EAASzoI,EAAOmtB,OAChB+6G,EAAkBloI,EAAOmtB,MAC3B,sOAJiDq0B,GAKjD,CAACinF,EAAUP,IAIPe,GAAcpH,IAAW6G,EACzBQ,EAAiBrH,GAAU10G,IAAUu7G,EACrCsB,EAA6B78G,GAASu7G,EAE5C,OACE,UAACjkG,MAAAA,CAAIrpC,UAAU,iCACZ6tI,IACC,SAACI,GAAkBA,CACjBt9G,KAAM+7G,EACN3wB,aAAc6wB,EACd9G,cAAe,CAAE/zG,SACjB8zG,SAAU0H,IAGbO,IACC,SAACtH,GAAcA,CACbz0G,MAAOA,EACP00G,OAAQA,EACRC,iBAAe,EACfC,YAAaA,EACbC,iBAAkBA,EAClBC,kBAAmBA,IAGtB+H,IACC,SAACP,GAAoBA,CACnBt8G,MAAOA,EACP9f,OAAQq7H,EAAcjG,UACtB3rI,MAAO8sI,GAAoB,KAAM8E,EAAcrsG,WAC/CkmG,kBAAmBmG,EAAcrsG,UAAWmmG,SAC5CE,eAAgBgG,EAAchG,iBAGjCsH,GACC,SAACzuI,EAAAA,EAAQA,CACPH,UAAU,4CACVpY,KAAK,UACL49D,QAAS,IAAMmpF,EAAe58G,YAE7BzgC,EAAE,sBAGL,SAACyO,EAAAA,EAAYA,CACXC,UAAU,oCACVwlD,QAAS,IAAMmpF,EAAe58G,YAE7BzgC,EAAE,mJC1GN,MAAMu9I,GAAAA,sBAAwB,YACnC,MAAMC,EAAiBzoB,KAAAA,eACjBulB,QAAwBnI,MAAM,GAAGqL,wBAKvC,aAFUlD,EAAgBlzD,MAG5B,qOARam2D,oBCST,GAAU,CAAC,qPAEf,GAAQpvI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCDnD,MAAMivI,GAAoB,EAAGC,mBAClC,MAAM,IAAQ7vD,EAAAA,EAAAA,OACR,MAAEhjF,EAAK,WAAEsoI,EAAU,OAAExyH,EAAM,MAAEvW,EAAK,QAAEgpI,GAAYH,KAC/Ct3I,EAAOg8I,IAAYtoD,EAAAA,EAAAA,YACpBr5F,GAAW2nJ,EAAAA,EAAAA,MAEXC,EAAqB,KACzB,MAAMlS,EAAS,IAAIjQ,uVAAgB,IAC7B96G,GAAU,CAAEA,UACZwyH,GAAc,CAAE1yG,MAAO0yG,GACvB/oI,GAAS,CAAEA,SACXgpI,GAAW,CAAEA,aAGnBp9I,GACE6nJ,EAAAA,EAAAA,IAAS,UAAW79I,EAAE,8CAGxB,MAAMikH,GAAiBj0B,EAAAA,EAAAA,KAEvBnhD,OAAO3jC,QAAQ4yI,aACb,KACA,GACA,GAAG75B,EAAexmD,SAASwmD,EAAel0B,YAAY27C,KAGxDgS,EAAahS,EAAOtjI,IAAI,WAGpB21I,EAAAA,sBAA0D,WAAO,OACrEzqI,QAOuB0qI,EALvB,MACMA,SADyBT,MACQ58I,KAAK0xE,MACzC4rE,GAAQA,EAAI7hJ,MAAQukB,IAGjBq1H,EAAiBgI,SAAqB,QAArBA,EAAAA,EAAe/H,cAAf+H,IAAAA,OAAAA,EAAAA,EAAuB9H,SAE9C,IAAKF,EAEH,YADA2B,EAAS33I,EAAE,iCAIb,MAAMk+I,QAA+B/L,MACnC,GAAG6D,gCAA6CnrI,QAChD,CACE0Z,OAAQ,OACRmoE,QAAS,CACP,eAAgB,oBAElBx/C,KAAMpX,KAAKL,UAAU,CACnBwjH,SAAU3lI,EAAO2lI,aAKvB,GACEiF,EAAuB/6I,QAAU,KACjC+6I,EAAuB/6I,OAAS,IAEhCy6I,QACK,CACL,MAAMt2D,QAAkB42D,EAAuB92D,OAC/CuwD,EAASrwD,EAAU5yE,QACrB,CACF,mMArCMqpI,mCAAAA,GAuCN,OACE,UAAChmG,MAAAA,CAAIrpC,UAAU,2BACZ/S,IAAS,SAACs8I,GAAUA,CAACvjI,QAAS/Y,KAC/B,UAAC84I,EAAAA,EAAMA,CACLC,UAAU,EACVhmI,WAAWI,EAAAA,EAAAA,GAAK,CACd,wBAAyBnT,EACzB,6BAA8BA,IAEhC44I,SAAUwJ,EACVpJ,gBAAgB,aAEhB,SAACF,EAAAA,EAAOsF,cAAa,CACnBoE,eAAa,EACbh/I,KAAK,WACLuP,UAAU,wBACVnK,MAAOvE,EAAE,gBACTgjD,gBAAgB,WAChBv8B,MAAO,CACL,CACElB,UAAU,EACV7Q,QAAS1U,EAAE,6BAIjB,SAACy0I,EAAAA,EAAOnkD,OAAM,CACZ5hF,UAAU,yBACVpY,KAAK,UACL4jJ,SAAS,kBAERl6I,EAAE,sBAGP,SAACyO,EAAAA,EAAYA,CACXC,UAAU,8BACVwlD,QAAS0pF,WAER59I,EAAE,iFChIJ,MAAMo+I,GACX,sMCUE,GAAU,CAAC,EAEf,GAAQjwI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCRM6vI,GAAkB,KAC7B,MAAM,EAAEr+I,IAAM6tF,EAAAA,EAAAA,MACRywD,GAAiBC,EAAAA,GAAAA,KACjBC,GAAsBC,EAAAA,GAAAA,KAC1BC,EAAAA,GAAAA,IAAkB,0BAIpB,OACGF,EAAoBlxI,SAAS,YAC7BkxI,EAAoBlxI,SAAS,YAU9B,UAACyqC,MAAAA,CAAIrpC,UAAU,gCACb,SAACD,EAAAA,EAAYA,CAACylD,QANF,KACdoqF,EAAe,CAAEK,UAAW,QAAS,EAKHjwI,UAAU,sCACvC1O,EAAE,2BAEL,SAAC4+I,GAAAA,EAAaA,CACZlwI,UAAU,8BACV2zD,MAAOriE,EAAEo+I,SAdN,ycCfX,MAeaS,GAAe,EAAGvL,kBAC7B,MAAM,IAAQzlD,EAAAA,EAAAA,OAER,cAAEwlD,GAAkBJ,KACnB6L,EAAgBC,IAAqB1vD,EAAAA,EAAAA,UAGzC,CACDqtD,WAAW,EACXd,aAAc,OAGVoD,EAAmB,IAAI15B,EAAAA,EA3Bd,oCA2BsCC,eAC/C05B,EAAsB,IAAI35B,EAAAA,EA3Bd,uCA2ByCC,eACrD25B,EAAkB,IAAI55B,EAAAA,EA3Bd,mCA2BqCC,eAC7C45B,EAAsB,IAAI75B,EAAAA,EA3Bd,uCA2ByCC,eAErD65B,EAAwBtM,IAExBuM,GAAyBtM,EAAAA,EAAAA,GAAc,CAC3C7sD,gBAAiB,gBACjB8sD,2BAA6Br3I,GACN,MAArBA,EAAMwrF,YAAwC,2BAAlBxrF,EAAM+Y,QACpC4qI,kBAAmBN,IAEfO,GAA4BxM,EAAAA,EAAAA,GAAc,CAC9C7sD,gBAAiB,gBACjB8sD,2BAA6Br3I,GACN,MAArBA,EAAMwrF,YAAwC,2BAAlBxrF,EAAM+Y,QACpC4qI,kBAAmBL,IAEfO,GAAwBzM,EAAAA,EAAAA,GAAc,CAC1C7sD,gBAAiB,gBACjB8sD,2BAA6Br3I,GACN,MAArBA,EAAMwrF,YAAwC,2BAAlBxrF,EAAM+Y,QACpC4qI,kBAAmBJ,IAGfO,GAA4B1M,EAAAA,EAAAA,GAAc,CAC9C7sD,gBAAiB,gBACjB8sD,2BAA6Br3I,GACN,MAArBA,EAAMwrF,YAAwC,2BAAlBxrF,EAAM+Y,QACpC4qI,kBAAmBH,IAGfO,GAAkB19F,EAAAA,EAAAA,UACtB,KAAO,CACL3hC,KAAMg/H,EACN/+H,QAASi/H,EACTh/H,IAAKi/H,EACLh/H,QAASi/H,KAEX,CACED,EACAH,EACAE,EACAE,IAKElK,EAAoB,EACxB90G,QACAo1G,oBACAz5I,WAGiBA,EAAMsjJ,EAAgBtjJ,GAAOgjJ,GACrCO,OACP,CACE38I,QAAS,IACPy9B,QACAo1G,qBACIvC,GAAe,CAAEA,iBAGzB,CACEsM,UAAYj/I,KACVqvF,EAAAA,EAAAA,KAAoBk0B,KAAOvjH,EAAMk/I,OAAO,GAE5C,EAIEjC,GAAqB9oF,EAAAA,EAAAA,cAAa8mF,IACtCmD,EAAkB,CAAErC,WAAW,EAAOd,gBAAe,GACpD,IAEGkE,GAAazM,IAAkByL,EAAepC,UAC9CqD,GAAsB1M,GAAiByL,EAAepC,UAC5D,IAAIsD,EAAmB,KA0BvB,OAxBIF,IACFE,GACE,SAACrE,GAASA,CACRC,aAAckD,EAAelD,aAC7BC,iBAAkBkD,EAClBxJ,kBAAmBA,KAKrBwK,IACFC,GACE,SAAC5C,GAAkBA,CACjBxB,aAAckD,EAAelD,aAC7ByB,eAAgBO,EAChBrI,kBAAmBA,KAKrBlC,IACF2M,GAAmB,SAACvC,GAAiBA,CAACC,aAAcE,MAIpD,gCACGoC,GAED,SAACC,EAAAA,EAASA,CAAChvF,OAAK,WAAEjxD,EAAE,SACpB,SAACq+I,GAAeA,CAAAA,qCC1IlB,GAAU,CAAC,qcAEf,GAAQlwI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCJnD,MAAM0xI,GAAoB,EAC/BC,aACA7M,kBAEA,MAAMt9I,GAAW2nJ,EAAAA,EAAAA,MACXyC,GAAWC,EAAAA,GAAAA,OACX,EAAErgJ,IAAM6tF,EAAAA,EAAAA,OAEPyyD,EAA0BC,IAA+BlxD,EAAAA,EAAAA,UAE9D,MAEImxD,GC7BNzN,EAAAA,EAAAA,GAAc,CACZ7sD,gBAAiB,sCD+Bbk5D,EAAwBtM,IA+C9B,OACE,UAAC2B,EAAAA,EAAMA,CACL/lI,UAAU,uBACV8lI,cAAe,CAAE/zG,MAAO,GAAIo1G,kBAAmB,IAC/CtB,SAjD+B,EACjCjhI,QAAUmtB,QAAOo1G,yBAEjBuJ,EAAsBO,OACpB,CACE38I,QAAS,IACPy9B,SACI6yG,GAAe,CAAEA,eACjBuC,GAAqB,CAAEA,uBAG/B,CACE+J,UAAYj/I,KACVqvF,EAAAA,EAAAA,KAAoBk0B,KAAOvjH,EAAMk/I,OAAO,EAE1C77I,QAAUrI,IAEe,MAArBA,EAAMwrF,YACY,2BAAlBxrF,EAAM+Y,UAEN1e,GAAS6nJ,EAAAA,EAAAA,IAAS,OAAQliJ,EAAM+Y,QAAS,KAAM,CAAEkgD,QAAS,OAE1D4rF,EAA0Cb,OACxC,CACE38I,QAAS,CACPy9B,UAGJ,CACEm/G,UAAYj/I,IACV4/I,EACE5/I,EAAM7I,KAAI,EAAGg+I,eAAgB,CAC3BvxI,MAAOuxI,EACP1iJ,MAAO0iJ,MACT,IAKV,GAEJ,EASAnB,gBAAgB,EAChBC,+BAA+B,EAC/BF,UAAU,aAEV,SAACD,EAAAA,EAAO5+B,MAAK,CACXpS,WAAS,EACTtkG,KAAK,QACLoF,MAAOvE,EAAE,SACTymB,MAAO,CACL,CACEnwB,KAAM,QACNoe,QAAS1U,EAAE,sBAEb,CACEulB,UAAU,EACV7Q,QAAS1U,EAAE,0BAKhBsgJ,aAAAA,EAAAA,EAA0BppJ,UACzB,SAACu9I,EAAAA,EAAOgM,OAAM,CACZthJ,KAAK,oBACLoF,MAAOvE,EAAE,aACT6F,QAASy6I,EACT9lE,OAAO,YACPm3D,WAAYC,EAAAA,KAIhB,SAAC6C,EAAAA,EAAOnkD,OAAM,CACZ2pD,OAAK,EACLvrI,UAAU,wCACVwrI,SAAS,SACT5jJ,KAAK,UACLmjH,QAAS2lC,EAAsB5qB,mBAE9Bx0H,EAAE,eAGL,SAACq+I,GAAeA,CAAAA,IAEhB,SAAC4B,EAAAA,EAASA,CAAChvF,OAAK,WAAC,QAEjB,SAACwjF,EAAAA,EAAOnkD,OAAM,CACZ2pD,OAAK,EACL/lF,QAAS,KAGPksF,EAASD,EAAW,WAGrBngJ,EAAE,8CEhIP,GAAU,CAAC,+jBAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCKnD,MAAMkyI,GAAqB,EAChCP,aACA7M,kBAEA,MAAM8L,EAAwBtM,IACxBsN,GAAWC,EAAAA,GAAAA,OACX,EAAErgJ,IAAM6tF,EAAAA,EAAAA,MACR2wD,GAAsBC,EAAAA,GAAAA,KAC1BC,EAAAA,GAAAA,IAAkB,0BAGdiC,ECpCgB,MACtB,MAAM,IAAEC,IAAQ5gI,EAAAA,EAAAA,KACV2gI,EAAgB,SAARC,EAERpC,GAAsBC,EAAAA,GAAAA,KAC1BC,EAAAA,GAAAA,IAAkB,0BAGd9I,EACJ4I,EAAoBlxI,SAAS,YAC7BkxI,EAAoBlxI,SAAS,WAE/B,OAAOqzI,GAAS/K,CAAY,EDwBdiL,GAGd,IACGrC,EAAoBlxI,SAAS,aAC7BkxI,EAAoBlxI,SAAS,WAG9B,OAAO,SAAC4yI,GAAiBA,CAACC,WAAYA,IAGxC,MAAM5L,EAAAA,sBAAqD,WACzDjhI,QAAQ,KAAE4pD,KAEV,MAAMx/D,QAAY0hJ,EAAsB0B,YAAY,CAClD99I,QAAS,IACPk6D,QACIo2E,GAAe,CAAEA,mBAIrB51I,aAAAA,EAAAA,EAAKmiJ,YACP7vD,EAAAA,EAAAA,KAAoBk0B,KAAOxmH,EAAImiJ,QAEnC,mMAbMtL,mCAAAA,GAeN,OACE,UAACE,EAAAA,EAAMA,CAEL/lI,UAAWiyI,EAAQ,GAAK,aACxBjM,UAAU,EACVH,SAAUA,EACVC,cAAe,CAAEt3E,KAAM,IACvBy3E,gBAAgB,aAEhB,SAACF,EAAAA,EAAO5+B,MAAK,CACX12G,KAAK,OACLoF,MAAOvE,EAAE,oBACTulB,UAAQ,EACRw7H,QAAS/gJ,EAAEo+I,IACX33H,MAAO,CACL,CAAElB,UAAU,EAAM7Q,QAAS,uCAE7B8lE,OAAO,4BAGT,SAACi6D,EAAAA,EAAOnkD,OAAM,CACZ2pD,OAAK,EACLvrI,UAAU,wCACVpY,KAAK,UACL4jJ,SAAS,SACTzgC,QAAS2lC,EAAsB5qB,mBAE9Bx0H,EAAE,eAGL,SAACigJ,EAAAA,EAASA,CAAChvF,OAAK,WAAC,QAEjB,SAACwjF,EAAAA,EAAOnkD,OAAM,CACZ2pD,OAAK,EACL/lF,QAAS,KAGPksF,EAASD,EAAW,WAGbngJ,EAAR2gJ,EAAU,sBAA2B,kDE/F1C,GAAU,CAAC,EAEf,GAAQxyI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCGMm0E,GAAM,KACjB,MAAM3sF,GAAW2nJ,EAAAA,EAAAA,OACX,YAAErK,GAAgBL,KAElB,gBAAE+N,EAAe,UAAErC,IAAc3+H,EAAAA,EAAAA,KACjCihI,EAA6B,SAAdtC,EAGfuC,EAAc,IAAIC,EAAAA,GAAY,CAClCC,WAAY,IAAIC,EAAAA,GAAW,CAEzBr9I,QAAUrI,IACWA,EAIHyqF,sBACdpwF,GAAS6nJ,EAAAA,EAAAA,IAAS,QAASliJ,EAAM+Y,SACnC,MAyBN,OApBAy3G,EAAAA,EAAAA,kBAAgB,KAEd,MAAMm1B,EAAgBC,EAAAA,EAAqBC,yBAE3C,OADAD,EAAAA,EAAqBE,kBAAkB,QAChC,KACLF,EAAAA,EAAqBE,kBAAkBH,EAAc,CACtD,GACA,KAEHvsF,EAAAA,EAAAA,YAAU,KACgB,UAApBisF,GACFhrJ,GACE6nJ,EAAAA,EAAAA,IACE,QACA,4KAGN,GACC,CAAC7nJ,EAAUgrJ,KAGZ,SAACU,EAAAA,EAAKA,WACJ,UAACC,EAAAA,EAAMA,CAACjzI,UAAU,iBAChB,SAACqpC,MAAAA,CAAIrpC,UAAU,sBACb,SAAC0jI,EAASA,CAAAA,MAEZ,SAACr6F,MAAAA,CAAIrpC,UAAU,uBACb,UAACqpC,MAAAA,CAAIrpC,UAAU,4BACb,SAACqpC,MAAAA,CAAIrpC,UAAU,sBACb,SAACkzI,MAAAA,CACCrxH,IAAI,gBACJqc,IAAK+sC,EAAQ,aAGjB,UAACkoE,EAAAA,GAAmBA,CAACvsI,OAAQ4rI,YAC1BD,GACC,SAACP,GAAkBA,CACjBpN,YAAaA,EACb6M,WAAW,aAGb,SAACtB,GAAYA,CAACvL,YAAaA,KAE7B,SAACwO,EAAAA,EAAYA,CAAAA,OAEf,SAACjQ,EAAgCA,CAAAA,cAQ7C,wBCvGA3+I,EAAOC,QAAU,IAA0B,mECE3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQ4uJ,cAAgB5uJ,EAAQ6uJ,UAAY7uJ,EAAQ8uJ,OAAS9uJ,EAAQ+uJ,GAAK/uJ,EAAQ67B,QAAU77B,EAAQyF,KAAOzF,EAAQgvJ,oBAAsBhvJ,EAAQivJ,kBAAoBjvJ,EAAQkvJ,qBAAkB,EAM/L,IAAIA,EAAkB,2BACtBlvJ,EAAQkvJ,gBAAkBA,EAoB1BlvJ,EAAQivJ,kBAlBgB,SAA2B5gJ,EAAUvL,GAE3D,MAAO,CACLK,KAAM+rJ,EACNr/I,QAAS,CACPxB,SAAUA,EACVvL,OAAQA,EACRqsJ,iBANmBxtJ,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,IASxF,EASA,IAAIqtJ,EAAsB,+BAC1BhvJ,EAAQgvJ,oBAAsBA,EAE9B,IAAII,EAAiB,SAAwBh+H,GAC3C,OAAO,WACL,IAAK,IAAInf,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAGzB,MAAO,CACLhP,KAAM6rJ,EACNn/I,QAAS,CACPuhB,OAAQA,EACRhtB,KAAMA,GAGZ,CACF,EAQIqB,EAAO2pJ,EAAe,QAC1BpvJ,EAAQyF,KAAOA,EACf,IAAIo2B,EAAUuzH,EAAe,WAC7BpvJ,EAAQ67B,QAAUA,EAClB,IAAIkzH,EAAKK,EAAe,MACxBpvJ,EAAQ+uJ,GAAKA,EACb,IAAID,EAASM,EAAe,UAC5BpvJ,EAAQ8uJ,OAASA,EACjB,IAAID,EAAYO,EAAe,aAC/BpvJ,EAAQ6uJ,UAAYA,EACpB,IAAID,EAAgB,CAClBnpJ,KAAMA,EACNo2B,QAASA,EACTkzH,GAAIA,EACJD,OAAQA,EACRD,UAAWA,GAEb7uJ,EAAQ4uJ,cAAgBA,oBC3ExB7uJ,EAAOC,QAAU,IAA0B,kDCY3CD,EAAOC,QALP,WACE4D,KAAKwc,SAAW,GAChBxc,KAAKi1B,KAAO,CACd,sGCCA,SAASw2H,EAAiCxhB,GACxC,MAAM1qI,EAAO,WACb,QAAWA,EAAM0qI,IACjB,QAAgB1qI,EAAMmsJ,EACxB,CAEA,SAASA,IACD,iBAIN,KAAeltJ,SAAQ,SAAU+rE,GACzBA,KAAS,IAAW1yB,UAI1B,QAAK,IAAWA,QAAS0yB,GAAO,SAAUohF,GAGxC,OAFA,KAAuBphF,GAASohF,EAEzB,YAAanrJ,GAClB,MAAMorJ,EAAc,CAAEprJ,OAAM+pE,UAC5B,QAAgB,UAAWqhF,GAE3B,MAAMzgH,EAAM,KAAuBo/B,GACnCp/B,GAAOA,EAAIhkC,MAAM,IAAW0wC,QAASr3C,EACvC,CACF,GACF,GACF,6DCvCArE,EAAOC,QAAU,IAA0B,sGCC3C,SAASyvJ,EAAmBznJ,GAC1B,GAAIkK,MAAMie,QAAQnoB,GAAI,OAAO,OAAiBA,EAChD,oBCHAjI,EAAOC,QAAU,IAA0B,yICOvC0vJ,EAAgB,SAAuB5hJ,EAAO8V,GAChD,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiBqoI,kCCf5C,SAASC,EAAyBlyH,GACjC,OAAOA,GAAKA,EAAEzX,YAAczmB,OAAOC,UAAUC,eAAeU,KAAKs9B,EAAG,WAAaA,EAAW,QAAIA,CACjG,oBAEA,IAAImyH,EAAa,CAAC5vJ,QAAS,CAAC,IAE3B,SAAUD,EAAQC,GAGlB,IACM6vJ,EAEAC,EACAC,EACAC,EAEAC,EANAJ,EACF,iIACEC,EAAsB,2BACtBC,EAAkB,oBAClBC,EAAsB,wCAEtBC,EAAa,CAOfC,iBAAkB,SAAU72G,EAAS82G,EAAan2I,GAKhD,GAJAA,EAAOA,GAAQ,CAAC,EAEhBq/B,EAAUA,EAAQvd,SAClBq0H,EAAcA,EAAYr0H,QACR,CAIhB,IAAK9hB,EAAKo2I,gBACR,OAAO/2G,EAET,IAAIg3G,EAAwBJ,EAAWK,SAASj3G,GAChD,IAAKg3G,EACH,MAAM,IAAI3uJ,MAAM,mCAKlB,OAHA2uJ,EAAsB55I,KAAOw5I,EAAWM,cACtCF,EAAsB55I,MAEjBw5I,EAAWO,kBAAkBH,EACtC,CACA,IAAII,EAAgBR,EAAWK,SAASH,GACxC,IAAKM,EACH,MAAM,IAAI/uJ,MAAM,uCAElB,GAAI+uJ,EAAcpiH,OAGhB,OAAKr0B,EAAKo2I,iBAGVK,EAAch6I,KAAOw5I,EAAWM,cAAcE,EAAch6I,MACrDw5I,EAAWO,kBAAkBC,IAH3BN,EAKX,IAAIO,EAAYT,EAAWK,SAASj3G,GACpC,IAAKq3G,EACH,MAAM,IAAIhvJ,MAAM,mCAElB,IAAKgvJ,EAAUC,QAAUD,EAAUj6I,MAA8B,MAAtBi6I,EAAUj6I,KAAK,GAAY,CAGpE,IAAIm6I,EAAYd,EAAoB1qJ,KAAKsrJ,EAAUj6I,MACnDi6I,EAAUC,OAASC,EAAU,GAC7BF,EAAUj6I,KAAOm6I,EAAU,EAC7B,CACIF,EAAUC,SAAWD,EAAUj6I,OACjCi6I,EAAUj6I,KAAO,KAEnB,IAAIo6I,EAAa,CAGfxiH,OAAQqiH,EAAUriH,OAClBsiH,OAAQF,EAAcE,OACtBl6I,KAAM,KACN8hI,OAAQkY,EAAclY,OACtB/iG,MAAOi7G,EAAcj7G,MACrBE,SAAU+6G,EAAc/6G,UAE1B,IAAK+6G,EAAcE,SAIjBE,EAAWF,OAASD,EAAUC,OAGA,MAA1BF,EAAch6I,KAAK,IACrB,GAAKg6I,EAAch6I,KAgBZ,CAKL,IAAIq6I,EAAcJ,EAAUj6I,KACxBs6I,EACFD,EAAY/vJ,UAAU,EAAG+vJ,EAAY5zG,YAAY,KAAO,GACxDuzG,EAAch6I,KAChBo6I,EAAWp6I,KAAOw5I,EAAWM,cAAcQ,EAC7C,MAvBEF,EAAWp6I,KAAOi6I,EAAUj6I,KAIvBg6I,EAAclY,SACjBsY,EAAWtY,OAASmY,EAAUnY,OAIzBkY,EAAcj7G,QACjBq7G,EAAWr7G,MAAQk7G,EAAUl7G,QAqBvC,OALwB,OAApBq7G,EAAWp6I,OACbo6I,EAAWp6I,KAAOuD,EAAKo2I,gBACnBH,EAAWM,cAAcE,EAAch6I,MACvCg6I,EAAch6I,MAEbw5I,EAAWO,kBAAkBK,EACtC,EACAP,SAAU,SAAUl3G,GAClB,IAAIiZ,EAAQw9F,EAAUzqJ,KAAKg0C,GAC3B,OAAKiZ,EAGE,CACLhkB,OAAQgkB,EAAM,IAAM,GACpBs+F,OAAQt+F,EAAM,IAAM,GACpB57C,KAAM47C,EAAM,IAAM,GAClBkmF,OAAQlmF,EAAM,IAAM,GACpB7c,MAAO6c,EAAM,IAAM,GACnB3c,SAAU2c,EAAM,IAAM,IARf,IAUX,EACAk+F,cAAe,SAAU95I,GAgBvB,IATAA,EAAOA,EAAKzV,MAAM,IAAI2vE,UAAU1vE,KAAK,IAAI46B,QAAQk0H,EAAiB,IAUhEt5I,EAAK1S,UAAY0S,EAAOA,EAAKolB,QAAQm0H,EAAqB,KAAKjsJ,SAEjE,OAAO0S,EAAKzV,MAAM,IAAI2vE,UAAU1vE,KAAK,GACvC,EACAuvJ,kBAAmB,SAAUn+F,GAC3B,OACEA,EAAMhkB,OACNgkB,EAAMs+F,OACNt+F,EAAM57C,KACN47C,EAAMkmF,OACNlmF,EAAM7c,MACN6c,EAAM3c,QAEV,GAGF31C,EAAOC,QAAUiwJ,CAEpB,CAxKA,CAwKGL,GAEH,IAAIoB,EAAoBpB,EAAW5vJ,QAEnC,SAASinB,EAAQ3mB,EAAG0H,GAClB,IAAI6E,EAAItN,OAAOwK,KAAKzJ,GACpB,GAAIf,OAAO2nB,sBAAuB,CAChC,IAAInf,EAAIxI,OAAO2nB,sBAAsB5mB,GACrC0H,IAAMD,EAAIA,EAAE2O,QAAO,SAAU1O,GAC3B,OAAOzI,OAAOonB,yBAAyBrmB,EAAG0H,GAAGsd,UAC/C,KAAKzY,EAAEpH,KAAKsF,MAAM8B,EAAG9E,EACvB,CACA,OAAO8E,CACT,CACA,SAASokJ,EAAe3wJ,GACtB,IAAK,IAAI0H,EAAI,EAAGA,EAAIrG,UAAUoC,OAAQiE,IAAK,CACzC,IAAI6E,EAAI,MAAQlL,UAAUqG,GAAKrG,UAAUqG,GAAK,CAAC,EAC/CA,EAAI,EAAIif,EAAQ1nB,OAAOsN,IAAI,GAAIzK,SAAQ,SAAU4F,GAsBrD,IAAyBjF,EAAKT,EAAKrC,EAAV8C,EArBHzC,EAqBQgC,EArBL0F,EAqBU/H,EArBP4M,EAAE7E,IAsB5B1F,EALF,SAAwBuK,GACtB,IAAInF,EAXN,SAAsBmF,EAAG7E,GACvB,GAAI,iBAAmB6E,IAAMA,EAAG,OAAOA,EACvC,IAAIvM,EAAIuM,EAAExN,OAAOg7F,aACjB,QAAI,IAAW/5F,EAAG,CAChB,IAAIoH,EAAIpH,EAAEH,KAAK0M,EAAG7E,GAAK,WACvB,GAAI,iBAAmBN,EAAG,OAAOA,EACjC,MAAM,IAAIigD,UAAU,+CACtB,CACA,OAAQ,WAAa3/C,EAAIzB,OAAS+Q,QAAQzK,EAC5C,CAEUqkJ,CAAarkJ,EAAG,UACxB,MAAO,iBAAmBnF,EAAIA,EAAInB,OAAOmB,EAC3C,CAEQypJ,CAAe7uJ,MACVS,EACTxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC9BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGZhjB,EAAIT,GAAOrC,CA9BX,IAAKV,OAAO+nB,0BAA4B/nB,OAAOgoB,iBAAiBjnB,EAAGf,OAAO+nB,0BAA0Bza,IAAMoa,EAAQ1nB,OAAOsN,IAAIzK,SAAQ,SAAU4F,GAC7IzI,OAAO8lB,eAAe/kB,EAAG0H,EAAGzI,OAAOonB,yBAAyB9Z,EAAG7E,GACjE,GACF,CACA,OAAO1H,CACT,CA6BA,SAASgvF,IAYP,OAXAA,EAAW/vF,OAAOqZ,OAASrZ,OAAOqZ,OAAOhG,OAAS,SAAUmU,GAC1D,IAAK,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAK,CACzC,IAAIsf,EAASrlB,UAAU+F,GACvB,IAAK,IAAIpF,KAAO0kB,EACVznB,OAAOC,UAAUC,eAAeU,KAAK6mB,EAAQ1kB,KAC/CykB,EAAOzkB,GAAO0kB,EAAO1kB,GAG3B,CACA,OAAOykB,CACT,EACOuoE,EAASvkF,MAAMnH,KAAMjC,UAC9B,CAGA,MAAMyvJ,EAAiB95I,OAAOkhB,UAAY,SAAUv4B,GAClD,MAAwB,iBAAVA,GAAsBu4B,SAASv4B,EAC/C,EAGM26B,EAAgBtjB,OAAOsjB,eAAiB,SAAU36B,GACtD,MAAwB,iBAAVA,GAAsBY,KAAK6rF,IAAIzsF,IAAU6pC,CACzD,EACMA,EAAmBxyB,OAAOwyB,kBAAoB,iBAEpD,IAAIunH,EAAsB,SAAUA,GAyDlC,OAxDAA,EAAwB,gBAAI,oBAC5BA,EAAuB,eAAI,mBAC3BA,EAAwB,gBAAI,oBAC5BA,EAAuB,eAAI,mBAC3BA,EAAqB,aAAI,iBACzBA,EAAsB,cAAI,kBAC1BA,EAAuB,eAAI,mBAC3BA,EAAyB,iBAAI,qBAC7BA,EAAwB,gBAAI,oBAC5BA,EAAmB,WAAI,eACvBA,EAAwB,gBAAI,oBAC5BA,EAAuB,eAAI,mBAC3BA,EAAyB,iBAAI,qBAC7BA,EAAwB,gBAAI,oBAC5BA,EAAwB,gBAAI,oBAC5BA,EAAwB,gBAAI,oBAC5BA,EAAuB,eAAI,mBAC3BA,EAAsB,cAAI,kBAC1BA,EAAqB,aAAI,iBACzBA,EAAsB,cAAI,kBAC1BA,EAA0B,kBAAI,qBAC9BA,EAAuB,eAAI,mBAC3BA,EAA6B,qBAAI,wBACjCA,EAA8B,sBAAI,yBAClCA,EAA6B,qBAAI,wBACjCA,EAA4B,oBAAI,uBAChCA,EAA2B,mBAAI,sBAC/BA,EAAgC,wBAAI,2BACpCA,EAAgC,wBAAI,2BACpCA,EAA8B,sBAAI,yBAClCA,EAA+B,uBAAI,0BACnCA,EAA8B,sBAAI,yBAClCA,EAAgC,wBAAI,2BACpCA,EAAoB,YAAI,gBACxBA,EAAqC,6BAAI,8BACzCA,EAAuB,eAAI,kBAC3BA,EAAqB,aAAI,iBACzBA,EAAoC,4BAAI,8BACxCA,EAAoB,YAAI,gBACxBA,EAAuB,eAAI,mBAC3BA,EAAkC,0BAAI,4BACtCA,EAA8B,sBAAI,yBAClCA,EAA8B,sBAAI,yBAClCA,EAAoB,YAAI,gBACxBA,EAAsB,cAAI,kBAC1BA,EAAqB,aAAI,iBACzBA,EAAiB,SAAI,aACrBA,EAA+B,uBAAI,yBACnCA,EAA+B,uBAAI,yBACnCA,EAAc,MAAI,WAClBA,EAAmB,WAAI,gBACvBA,EAAoB,YAAI,gBACxBA,EAAmB,WAAI,eACvBA,EAAiC,yBAAI,2BACrCA,EAA4B,oBAAI,uBAChCA,EAAiC,yBAAI,4BAC9BA,CACT,CA1D0B,CA0DxB,CAAC,GAMCC,EAA0B,SAAUA,GAMtC,OALAA,EAA0B,cAAI,eAC9BA,EAAwB,YAAI,aAC5BA,EAA6B,iBAAI,iBACjCA,EAAsB,UAAI,WAC1BA,EAAwB,YAAI,aACrBA,CACT,CAP8B,CAO5B,CAAC,GACCC,EAA4B,SAAUA,GA2CxC,OA1CAA,EAAiC,mBAAI,kBACrCA,EAAmC,qBAAI,oBACvCA,EAAoC,sBAAI,qBACxCA,EAA+C,iCAAI,+BACnDA,EAAgD,kCAAI,gCACpDA,EAA2D,6CAAI,0CAC/DA,EAA0D,4CAAI,yCAC9DA,EAA+C,iCAAI,+BACnDA,EAAkD,oCAAI,kCACtDA,EAA+C,iCAAI,+BACnDA,EAAkC,oBAAI,oBACtCA,EAAoC,sBAAI,sBACxCA,EAAqC,uBAAI,uBACzCA,EAAiD,mCAAI,kCACrDA,EAAgC,kBAAI,kBACpCA,EAA+B,iBAAI,iBACnCA,EAAiC,mBAAI,mBACrCA,EAAkC,oBAAI,oBACtCA,EAAiC,mBAAI,mBACrCA,EAAqC,uBAAI,sBACzCA,EAAuC,yBAAI,wBAC3CA,EAAkC,oBAAI,yBACtCA,EAA0C,4BAAI,2BAC9CA,EAA8B,gBAAI,gBAClCA,EAAgC,kBAAI,kBACpCA,EAAiC,mBAAI,mBACrCA,EAAiC,mBAAI,mBACrCA,EAAuB,SAAI,UAC3BA,EAAgC,kBAAI,kBACpCA,EAA6B,eAAI,eACjCA,EAA+B,iBAAI,iBACnCA,EAAqC,uBAAI,sBACzCA,EAA+C,iCAAI,gCACnDA,EAAkC,oBAAI,oBACtCA,EAAqC,uBAAI,uBACzCA,EAAmC,qBAAI,qBACvCA,EAAgC,kBAAI,kBACpCA,EAAoC,sBAAI,qBACxCA,EAAoC,sBAAI,qBACxCA,EAAiC,mBAAI,oBACrCA,EAA+B,iBAAI,UACnCA,EAAsB,QAAI,UACnBA,CACT,CA5CgC,CA4C9B,CAAC,GAEH,MAAM5oF,EAAO,WAAiB,EACxB6oF,EAAa,CACjBniH,MAAOs5B,EACP32C,MAAO22C,EACP55B,IAAK45B,EACLhoC,KAAMgoC,EACNxN,KAAMwN,EACNngE,MAAOmgE,GAET,IAAI8oF,EAAiBD,EAyCrB,MAAM9sE,EAAS+sE,EAETC,EAA2B,gBAC3BC,EAAkB,4BAGxB,MAAMC,EACJ,WAAAjjI,CAAY+nH,GACW,iBAAVA,IACTA,EAAQkb,EAASC,cAAcnb,IAEjCpnD,EAAS1rF,KAAM8yI,EACjB,CACA,eAAIob,GACF,OAAOvyJ,OAAOwK,KAAKnG,MAAM8S,QAAO4sG,GAAiC,OAAzBA,EAAKviH,UAAU,EAAG,IAC5D,CACA,cAAAgxJ,CAAeC,GACb,MAAMC,EAAWzoH,SAAS5lC,KAAKouJ,GAAW,IAC1C,OAAIC,EAAW36I,OAAOwyB,iBACbk/C,IAEFipE,CACT,CACA,kBAAAC,CAAmBF,GACjB,GAAIpuJ,KAAKouJ,GAAW,CAClB,IAAIG,GAAevuJ,KAAKouJ,IAAa,MAAM1qJ,MAAM,GACjD6qJ,GAAoC,EAArBA,EAAYpuJ,OAAa,IAAM,IAAMouJ,EACpD,MAAMlyJ,EAAQ,IAAIm5G,WAAW+4C,EAAYpuJ,OAAS,GAClD,IAAK,IAAI2D,EAAI,EAAGA,EAAIyqJ,EAAYpuJ,OAAS,EAAG2D,IAC1CzH,EAAMyH,GAAK8hC,SAAS2oH,EAAY7qJ,MAAU,EAAJI,EAAW,EAAJA,EAAQ,GAAI,IAE3D,OAAOzH,CACT,CACE,OAAO,IAEX,CACA,0BAAAmyJ,CAA2BJ,GACzB,MAAMC,EAAWzoH,SAAS5lC,KAAKouJ,GAAW,IAC1C,OAAIC,EAAW36I,OAAOwyB,iBACbk/C,IAEFipE,CACT,CACA,oBAAAI,CAAqBL,GACnB,OAAO9uH,WAAWt/B,KAAKouJ,GACzB,CACA,aAAAM,CAAcN,EAAUhhG,GACtB,MAAM/wD,EAAQ2D,KAAKouJ,GACnB,OAAO/xJ,EAAQijC,WAAWjjC,GAAS+wD,CACrC,CACA,gBAAAuhG,CAAiBP,GACf,OAAOpuJ,KAAKouJ,EACd,CACA,IAAA30H,CAAK20H,GACH,MAA0B,QAAnBpuJ,KAAKouJ,EACd,CACA,iBAAAQ,CAAkBR,GAChB,MAAMznJ,EAAMmnJ,EAAyBtsJ,KAAKxB,KAAKouJ,IAC/C,GAAY,OAARznJ,EAGJ,MAAO,CACLg3C,MAAO/X,SAASj/B,EAAI,GAAI,IACxB42C,OAAQ3X,SAASj/B,EAAI,GAAI,IAE7B,CACA,oBAAOsnJ,CAAc9rJ,GACnB,IAAIwH,EACJ,MAAMmpI,EAAQ,CAAC,EAGf,IADAib,EAAgBc,UAAY,EACqB,QAAzCllJ,EAAQokJ,EAAgBvsJ,KAAKW,KAAkB,CACrD,IAAI9F,EAAQsN,EAAM,GACW,IAAzBtN,EAAM8hC,QAJE,MAIsB9hC,EAAMi9C,YAJ5B,OAImDj9C,EAAM8D,OAAS,IAC5E9D,EAAQA,EAAMqH,MAAM,GAAI,IAG1BovI,EADanpI,EAAM,GAAGuuB,QACR77B,CAChB,CACA,OAAOy2I,CACT,EAQF,SAASgc,EAAkBV,GACzB,MAAoB,eAAbA,GAA0C,cAAbA,CACtC,CACA,MAAMW,EACJ,WAAAhkI,CAAYikI,EAAeC,GAKzB,GAJAjvJ,KAAK0/G,UAAO,EACZ1/G,KAAKkvJ,gBAAa,EAClBlvJ,KAAKmvJ,cAAW,EAChBnvJ,KAAKovJ,wBAAqB,EACtBH,EAAqB,CACvB,MAAMI,EAAeJ,EAAoBvvC,KACzC,IAAK,MAAMhhH,KAAO2wJ,EAChB,GAAI1zJ,OAAOC,UAAUC,eAAeU,KAAKyyJ,EAAetwJ,IAAQswJ,EAActwJ,KAAS2wJ,EAAa3wJ,GAAM,CACxGoiF,EAAO/jD,KAAK,6BAA6Br+B,wCAA0CswJ,EAAcM,OACjGtvJ,KAAKovJ,mBAAqB1wJ,EAC1B,KACF,CAGFswJ,EAAgBtjE,EAAS,IAAIsiE,EAAS,CAAC,GAAIqB,EAAcL,EAC3D,CAGA,GAFAhvJ,KAAK0/G,KAAOsvC,EACZhvJ,KAAKkvJ,WAAa,IAAIlrI,KAAKgrI,EAAc,eACrC,aAAchvJ,KAAK0/G,KAAM,CAC3B,MAAMx+C,EAAU,IAAIl9C,KAAKhkB,KAAK0/G,KAAK,aAC/B8tC,EAAetsF,EAAQ3hC,aACzBv/B,KAAKmvJ,SAAWjuF,EAEpB,CACF,CACA,MAAIh0D,GACF,OAAOlN,KAAK0/G,KAAK4vC,EACnB,CACA,SAAI,GACF,OAAOtvJ,KAAK0/G,KAAK6vC,KACnB,CACA,aAAItuF,GACF,OAAOjhE,KAAKkvJ,UACd,CACA,WAAIhuF,GACF,GAAIlhE,KAAKmvJ,SACP,OAAOnvJ,KAAKmvJ,SAEd,MAAM9tF,EAAWrhE,KAAKqhE,SACtB,OAAiB,OAAbA,EACK,IAAIr9C,KAAKhkB,KAAKkvJ,WAAW3vH,UAAuB,IAAX8hC,GAEvC,IACT,CACA,YAAIA,GACF,GAAI,aAAcrhE,KAAK0/G,KAAM,CAC3B,MAAMr+C,EAAWrhE,KAAK0/G,KAAK+uC,qBAAqB,YAChD,GAAIjB,EAAensF,GACjB,OAAOA,CAEX,MAAO,GAAIrhE,KAAKmvJ,SACd,OAAQnvJ,KAAKmvJ,SAAS5vH,UAAYv/B,KAAKkvJ,WAAW3vH,WAAa,IAEjE,OAAO,IACT,CACA,mBAAIiwH,GACF,MAAI,qBAAsBxvJ,KAAK0/G,KACtB1/G,KAAK0/G,KAAK+uC,qBAAqB,oBAEjC,IACT,CACA,aAAIgB,GACF,OAAOzvJ,KAAK0/G,KAAKjmF,KAAK,cACxB,CACA,WAAIgQ,GACF,QAASzpC,KAAKkN,KAAOlN,KAAKovJ,oBAAsB5B,EAAextJ,KAAKihE,UAAU1hC,aAAiC,OAAlBv/B,KAAKqhE,UAAqBrhE,KAAKqhE,UAAY,MAAQrhE,KAAKyvJ,aAAezvJ,KAAK4iC,MAC3K,EAGF,MAAM8sH,EACJ,WAAA3kI,GACE/qB,KAAK2vJ,SAAU,EACf3vJ,KAAK4vJ,OAAS,EACd5vJ,KAAK6vJ,MAAQ,EACb7vJ,KAAK8vJ,MAAQ,EACb9vJ,KAAK+vJ,WAAa,EAClB/vJ,KAAKgwJ,WAAa,EAClBhwJ,KAAK0iH,QAAU,CACbzpE,MAAO,EACP/jB,MAAO,EACPloB,IAAK,GAEPhN,KAAKiwJ,QAAU,CACbh3G,MAAO,EACPjsC,IAAK,GAEPhN,KAAKkwJ,UAAY,CACfj3G,MAAO,EACP/jB,MAAO,EACPloB,IAAK,EAET,EAGF,IAAImjJ,EACK,QADLA,EAEK,QAFLA,EAGU,aAEd,MAAMC,EACJ,WAAArlI,CAAYslI,GACVrwJ,KAAKswJ,WAAa,KAClBtwJ,KAAKuwJ,KAAO,KAEZvwJ,KAAKqwJ,aAAU,EAEfrwJ,KAAKwwJ,YAAS,EAEdxwJ,KAAKywJ,kBAAoB,CACvB,CAACN,GAA8B,KAC/B,CAACA,GAA8B,KAC/B,CAACA,GAAmC,MAEtCnwJ,KAAKqwJ,QAAUA,CACjB,CAGA,YAAAK,CAAar0J,EAAOs0J,GAClB,MAAMhc,EAASt4I,EAAMe,MAAM,IAAK,GAChC,IAAI67C,EAEFA,EADoB,IAAlB07F,EAAOx0I,QACY,MAAZwwJ,OAAmB,EAASA,EAASC,qBAAuB,EAE7DhrH,SAAS+uG,EAAO,IAE1B30I,KAAKswJ,WAAa,CAACr3G,EAAOrT,SAAS+uG,EAAO,IAAM17F,EAClD,CACA,aAAI43G,GACF,OAAK7wJ,KAAKswJ,WAGHtwJ,KAAKswJ,WAFH,EAGX,CACA,wBAAIQ,GACF,OAAO9wJ,KAAK6wJ,UAAU,EACxB,CACA,sBAAID,GACF,OAAO5wJ,KAAK6wJ,UAAU,EACxB,CACA,OAAIr7G,GAMF,OALKx1C,KAAKuwJ,MAAQvwJ,KAAKqwJ,SAAWrwJ,KAAKwwJ,SACrCxwJ,KAAKuwJ,KAAOnD,EAAkBd,iBAAiBtsJ,KAAKqwJ,QAASrwJ,KAAKwwJ,OAAQ,CACxEhE,iBAAiB,KAGdxsJ,KAAKuwJ,MAAQ,EACtB,CACA,OAAI/6G,CAAIn5C,GACN2D,KAAKuwJ,KAAOl0J,CACd,EAMF,MAAM00J,UAAiBX,EACrB,WAAArlI,CAAYxrB,EAAM8wJ,GAChB93H,MAAM83H,GACNrwJ,KAAKgxJ,aAAe,KACpBhxJ,KAAKixJ,mBAAqB,KAC1BjxJ,KAAKkxJ,gBAAkB,KACvBlxJ,KAAKmxJ,QAAU,GAEfnxJ,KAAKqhE,SAAW,EAEhBrhE,KAAKoxJ,GAAK,EAIVpxJ,KAAKqxJ,eAAY,EAEjBrxJ,KAAKT,UAAO,EAEZS,KAAKsxJ,OAAS,KAEdtxJ,KAAKuxJ,UAAY,KAEjBvxJ,KAAKuqE,OAAS,EAEdvqE,KAAKwxJ,GAAK,EAEVxxJ,KAAKyxJ,cAAW,EAEhBzxJ,KAAK0xJ,YAAS,EAEd1xJ,KAAK2xJ,cAAW,EAEhB3xJ,KAAK4xJ,YAAS,EAEd5xJ,KAAKi5C,MAAQ,EAEbj5C,KAAK6xJ,cAAW,EAEhB7xJ,KAAK8xJ,iBAAc,EAEnB9xJ,KAAK+xJ,eAAY,EAEjB/xJ,KAAKgyJ,MAAQ,IAAItC,EAEjB1vJ,KAAK4J,UAAO,EAEZ5J,KAAKiyJ,aAAc,EAEnBjyJ,KAAKsrE,MAAQ,KAEbtrE,KAAKkyJ,YAAc,KAEnBlyJ,KAAKmyJ,aAAU,EAEfnyJ,KAAK2uH,SAAM,EAEX3uH,KAAKoyJ,MAAQ,EACbpyJ,KAAKT,KAAOA,CACd,CACA,eAAI8yJ,GACF,MAAM,UACJhB,GACErxJ,KACJ,IAAKqxJ,IAAcrxJ,KAAKgxJ,aACtB,OAAO,KAET,IAAKhxJ,KAAKgxJ,cAAgBhxJ,KAAKqxJ,YAAcrxJ,KAAKqxJ,UAAUiB,KAAM,CAChE,MAAM5zJ,EAAMsB,KAAKqxJ,UAAUjiJ,SAC3B,GAAI1Q,EACFsB,KAAKgxJ,aAAetyJ,EAAI6zJ,eAAevyJ,KAAKoxJ,QACvC,CACL,MAAMoB,EAAa72J,OAAOwK,KAAKnG,KAAKqxJ,WACpC,GAA0B,IAAtBmB,EAAWryJ,OACb,OAAOH,KAAKgxJ,aAAehxJ,KAAKqxJ,UAAUmB,EAAW,IAAID,eAAevyJ,KAAKoxJ,GAEjF,CACF,CACA,OAAOpxJ,KAAKgxJ,YACd,CACA,OAAIhkJ,GACF,OAAOhN,KAAKi5C,MAAQj5C,KAAKqhE,QAC3B,CACA,sBAAIoxF,GACF,GAA6B,OAAzBzyJ,KAAKkxJ,gBACP,OAAO,KAET,IAAK1D,EAAextJ,KAAKkxJ,iBACvB,OAAO,KAET,MAAM7vF,EAAYmsF,EAAextJ,KAAKqhE,UAAgBrhE,KAAKqhE,SAAT,EAClD,OAAOrhE,KAAKkxJ,gBAA6B,IAAX7vF,CAChC,CACA,aAAIqxF,GACF,IAAIC,EAIJ,GAAgD,OAA3CA,EAAqB3yJ,KAAKgxJ,eAAyB2B,EAAmBD,UACzE,OAAO,EACF,GAAI1yJ,KAAKqxJ,UAAW,CACzB,MAAMmB,EAAa72J,OAAOwK,KAAKnG,KAAKqxJ,WAC9BttJ,EAAMyuJ,EAAWryJ,OACvB,GAAI4D,EAAM,GAAa,IAARA,GAAa/D,KAAKqxJ,UAAUmB,EAAW,IAAIE,UACxD,OAAO,CAEX,CACA,OAAO,CACT,CACA,YAAAE,CAAaC,GACX,GAAI7yJ,KAAKqxJ,UAAW,CAClB,MAAM3yJ,EAAMsB,KAAKqxJ,UAAUwB,GACvBn0J,IAAQsB,KAAKgxJ,eACfhxJ,KAAKgxJ,aAAetyJ,EAAI6zJ,eAAevyJ,KAAKoxJ,IAEhD,CACF,CACA,aAAA0B,GACE,IAAIC,EAAcC,EACc,OAA/BD,EAAe/yJ,KAAKsxJ,SAA2ByB,EAAatqJ,QACvB,OAArCuqJ,EAAkBhzJ,KAAKuxJ,YAA8ByB,EAAgBvqJ,OACxE,CACA,uBAAAwqJ,CAAwB1zJ,EAAMkyJ,EAAUC,EAAQC,EAAUC,EAAQvjG,GAAU,GAC1E,MAAM,kBACJoiG,GACEzwJ,KACEu3D,EAAOk5F,EAAkBlxJ,GAC1Bg4D,GAULA,EAAKk6F,SAAWx0J,KAAK6+B,IAAIy7B,EAAKk6F,SAAUA,GACxCl6F,EAAKm6F,OAASz0J,KAAKmrB,IAAImvC,EAAKm6F,OAAQA,GACpCn6F,EAAKo6F,SAAW10J,KAAK6+B,IAAIy7B,EAAKo6F,SAAUA,GACxCp6F,EAAKq6F,OAAS30J,KAAKmrB,IAAImvC,EAAKq6F,OAAQA,IAZlCnB,EAAkBlxJ,GAAQ,CACxBkyJ,WACAC,SACAC,WACAC,SACAvjG,UAQN,CACA,yBAAA6kG,GACE,MAAM,kBACJzC,GACEzwJ,KACJywJ,EAAkBN,GAA+B,KACjDM,EAAkBN,GAA+B,KACjDM,EAAkBN,GAAoC,IACxD,EAMF,MAAMgD,UAAa/C,EACjB,WAAArlI,CAAYqoI,EAAWC,EAAMhD,EAAS58I,EAAOk9I,GAC3Cp4H,MAAM83H,GACNrwJ,KAAKszJ,WAAa,EAClBtzJ,KAAKqhE,SAAW,EAChBrhE,KAAK2uH,KAAM,EACX3uH,KAAKuzJ,aAAc,EACnBvzJ,KAAKwwJ,YAAS,EACdxwJ,KAAK8xC,cAAW,EAChB9xC,KAAKyT,WAAQ,EACbzT,KAAKgyJ,MAAQ,IAAItC,EACjB1vJ,KAAKqhE,SAAW+xF,EAAU3E,qBAAqB,YAC/CzuJ,KAAK2uH,IAAMykC,EAAU35H,KAAK,OAC1Bz5B,KAAKuzJ,YAAcH,EAAU35H,KAAK,eAClCz5B,KAAKwwJ,OAAS4C,EAAUzE,iBAAiB,OACzC3uJ,KAAK8xC,SAAWuhH,EAChBrzJ,KAAKyT,MAAQA,EACb,MAAMo9I,EAAYuC,EAAUzE,iBAAiB,aACzCkC,GACF7wJ,KAAK0wJ,aAAaG,EAAWF,GAE3BA,IACF3wJ,KAAKszJ,WAAa3C,EAAS2C,WAAa3C,EAAStvF,SAErD,CACA,SAAIpoB,GACF,OAAOj5C,KAAK8xC,SAASmH,MAAQj5C,KAAKszJ,UACpC,CACA,OAAItmJ,GACF,OAAOhN,KAAKi5C,MAAQj5C,KAAKqhE,QAC3B,CACA,UAAIuuF,GACF,MAAM,kBACJa,GACEzwJ,KACJ,SAAUywJ,EAAkB+C,OAAS/C,EAAkBgD,OAAShD,EAAkBiD,WACpF,EAQF,MAAMC,EACJ,WAAA5oI,CAAY0jG,GACVzuH,KAAK4zJ,UAAW,EAChB5zJ,KAAK6zJ,gBAAiB,EACtB7zJ,KAAK8zJ,2BAAwB,EAC7B9zJ,KAAK+zJ,MAAQ,EACb/zJ,KAAKg0J,MAAQ,EACbh0J,KAAKi0J,eAAY,EACjBj0J,KAAKk0J,kBAAe,EACpBl0J,KAAKm0J,SAAW,KAChBn0J,KAAKo0J,gBAAa,EAClBp0J,KAAKq0J,MAAO,EACZr0J,KAAKs0J,UAAY,EACjBt0J,KAAKu0J,sBAAmB,EACxBv0J,KAAKw0J,SAAU,EACfx0J,KAAKy0J,UAAW,EAChBz0J,KAAK00J,uBAAoB,EAEzB10J,KAAK20J,OAAS,EACd30J,KAAK40J,QAAU,EACf50J,KAAK60J,QAAU,EACf70J,KAAK80J,gBAAkB,KACvB90J,KAAK+0J,eAAiB,EACtB/0J,KAAKg1J,cAAgB,EACrBh1J,KAAKT,KAAO,KACZS,KAAKw1C,SAAM,EACXx1C,KAAKi1J,KAAO,GACZj1J,KAAK8f,QAAU,KACf9f,KAAKk1J,gBAAiB,EACtBl1J,KAAKm1J,aAAe,EACpBn1J,KAAKo1J,mBAAoB,EACzBp1J,KAAKq1J,gBAAkB,EACvBr1J,KAAKs1J,+BAA4B,EACjCt1J,KAAKu1J,aAAe,EACpBv1J,KAAKw1J,SAAW,EAChBx1J,KAAKy1J,WAAa,EAClBz1J,KAAK01J,iBAAc,EACnB11J,KAAK21J,sBAAmB,EACxB31J,KAAK41J,WAAa,EAClB51J,KAAK61J,uBAAoB,EACzB71J,KAAK81J,eAAiB,EACtB91J,KAAK+1J,aAAe,EACpB/1J,KAAKg2J,WAAa,EAClBh2J,KAAKi2J,SAAW,EAChBj2J,KAAKk2J,wBAAqB,EAC1Bl2J,KAAKm2J,qBAAuB,KAC5Bn2J,KAAKo2J,aAAe,KACpBp2J,KAAKq2J,iBAAkB,EACvBr2J,KAAKi0J,UAAY,GACjBj0J,KAAKk2J,mBAAqB,GAC1Bl2J,KAAKo0J,WAAa,CAAC,EACnBp0J,KAAKw1C,IAAMi5E,CACb,CACA,QAAA6nC,CAAS3F,GACP,IAAKA,EAGH,OAFA3wJ,KAAKy0J,UAAW,OAChBz0J,KAAKw0J,SAAU,GAGjB,MAAM+B,EAAav2J,KAAKw2J,WAAa7F,EAAS6F,WACxCC,EAAgBz2J,KAAK02J,cAAgB/F,EAAS+F,cACpD12J,KAAKw0J,QAAUx0J,KAAKg0J,QAAUrD,EAASqD,SAAWyC,KAAmBF,IAAev2J,KAAKq0J,KACzFr0J,KAAKy0J,SAAWz0J,KAAKg0J,MAAQrD,EAASqD,OAASuC,EAAa,GAAoB,IAAfA,GAAoBE,EAAgB,EACjGz2J,KAAKw0J,SAAWx0J,KAAKy0J,SACvBz0J,KAAK20J,OAAS13J,KAAK6lD,MAAwB,GAAlB6tG,EAASgE,QAElC30J,KAAK20J,OAAShE,EAASgE,OAAS,EAElC30J,KAAK00J,kBAAoB/D,EAAS+D,iBACpC,CACA,sBAAIiC,GACF,QAAI32J,KAAKi0J,UAAU9zJ,QACVqtJ,EAAextJ,KAAKi0J,UAAUj0J,KAAKi0J,UAAU9zJ,OAAS,GAAG+wJ,gBAGpE,CACA,uBAAI0F,GACF,OAAO52J,KAAK8zJ,uBAAyB9zJ,KAAK+0J,gBAlFd,EAmF9B,CACA,SAAI8B,GACF,MAAMC,EAAU92J,KAAK+1J,aAAe/1J,KAAK81J,eACzC,OAAIgB,EAAU,EAES,KADD92J,KAAKi2J,SAAWj2J,KAAKg2J,YACbc,EAEvB,CACT,CACA,QAAIC,GACF,OAAO/2J,KAAKg3J,SAAWh3J,KAAKi3J,WAC9B,CACA,WAAID,GACF,IAAIE,EACJ,OAAwC,OAAnCA,EAAiBl3J,KAAKm0J,WAAqB+C,EAAe/2J,OACtDH,KAAKm0J,SAASn0J,KAAKm0J,SAASh0J,OAAS,GAAG6M,IAE1ChN,KAAKi3J,WACd,CACA,eAAIA,GACF,IAAIE,EACJ,OAA0C,OAArCA,EAAkBn3J,KAAKi0J,YAAsBkD,EAAgBh3J,OACzDH,KAAKi0J,UAAUj0J,KAAKi0J,UAAU9zJ,OAAS,GAAG6M,IAE5C,CACT,CACA,OAAIoqJ,GACF,OAAIp3J,KAAKu0J,iBACAt3J,KAAKmrB,IAAIpE,KAAKC,MAAQjkB,KAAKu0J,iBAAkB,GAAK,IAEpD,CACT,CACA,iBAAImC,GACF,IAAIW,EACJ,OAAyC,OAApCA,EAAkBr3J,KAAKm0J,WAAqBkD,EAAgBl3J,OACxDH,KAAKm0J,SAASn0J,KAAKm0J,SAASh0J,OAAS,GAAGsT,OAEzC,CACV,CACA,cAAI+iJ,GACF,IAAIc,EACJ,OAAyC,OAApCA,EAAkBt3J,KAAKm0J,WAAqBmD,EAAgBn3J,OACxDH,KAAKm0J,SAASn0J,KAAKm0J,SAASh0J,OAAS,GAAG2xC,SAASs/G,GAEnDpxJ,KAAKg0J,KACd,EAGF,SAASuD,EAAaC,GACpB,OAAOhiD,WAAW18E,KAAK2+H,KAAKD,IAAmB/sI,GAAKA,EAAE6iB,WAAW,IACnE,CAuCA,SAASoqH,EAAev+G,GACtB,OAAOq8D,WAAW18E,KAAK6+H,SAAS/nG,mBAAmBzW,KAAO1uB,GAAKA,EAAE6iB,WAAW,IAC9E,CAGA,MAAMsqH,EAA+B,oBAATttI,KAAuBA,UAAOpuB,EAK1D,IAAI27J,EAAa,CACfC,SAAU,kBACVC,SAAU,gBACVC,UAAW,0BACXC,SAAU,sBAIRC,EACQ,kBADRA,EAEQ,iCAFRA,EAGS,0BAHTA,EAIQ,gDAEZ,SAASC,EAAiC9+I,GACxC,OAAQA,GACN,KAAK6+I,EACH,OAAOL,EAAWE,SACpB,KAAKG,EACH,OAAOL,EAAWG,UACpB,KAAKE,EACH,OAAOL,EAAWI,SACpB,KAAKC,EACH,OAAOL,EAAWC,SAExB,CAUA,SAASM,EAA6BC,GACpC,MAHU,qCAGNA,EACKR,EAAWI,SALT,qCAMAI,EACFR,EAAWG,UAVd,qCAWKK,GAVD,qCAUmCA,EACpCR,EAAWC,cADb,CAGT,CACA,SAASQ,EAAiCC,GACxC,OAAQA,GACN,KAAKV,EAAWE,SACd,OAAOG,EACT,KAAKL,EAAWG,UACd,OAAOE,EACT,KAAKL,EAAWI,SACd,OAAOC,EACT,KAAKL,EAAWC,SACd,OAAOI,EAEb,CACA,SAASM,EAAuBnkG,GAC9B,MAAM,WACJokG,EAAU,mBACVC,GACErkG,EACEskG,EAAsBF,EAAa,CAACZ,EAAWE,SAAUF,EAAWI,SAAUJ,EAAWG,UAAWH,EAAWC,UAAUhlJ,QAAOylJ,KAAeE,EAAWF,KAAc,GAI9K,OAHKI,EAAoBd,EAAWI,WAAaS,GAC/CC,EAAoB92J,KAAKg2J,EAAWI,UAE/BU,CACT,CACA,MAAMC,EACgB,MAAhBhB,GAA4E,OAAnDiB,EAAwBjB,EAAav/G,YAAsBwgH,EAAsBD,4BACrGtuI,KAAK+tB,UAAUugH,4BAA4B5pJ,KAAKsb,KAAK+tB,WAErD,KAJyB,IAAUwgH,EAgD9C,SAASC,EAAkBC,GACzB,MAAMC,EAAgB,IAAIhuB,YAAY+tB,EAASrvJ,OAAQqvJ,EAASzkE,WAAYykE,EAASziD,WAAa,GAC5F2iD,EAAat2J,OAAO4sC,aAAapoC,MAAM,KAAMmH,MAAMwqB,KAAKkgI,IAGxDE,EAAcD,EAAW97J,UAAU87J,EAAW96H,QAAQ,KAAM86H,EAAW94J,QAGvEg5J,GAFS,IAAIC,WACGC,gBAAgBH,EAAa,YAC5BI,qBAAqB,OAAO,GACnD,GAAIH,EAAS,CACX,MAAMI,EAAQJ,EAAQ9jF,WAAW,GAAK8jF,EAAQ9jF,WAAW,GAAGmkF,UAAYL,EAAQ1xF,aAAa,SAC7F,GAAI8xF,EAAO,CACT,MAAME,EAAalC,EAAagC,GAAOG,SAAS,EAAG,IAInD,OA5KN,SAA0BH,GACxB,MAAMI,EAAO,SAAc13J,EAAO62B,EAAMwD,GACtC,MAAMg2F,EAAMrwH,EAAM62B,GAClB72B,EAAM62B,GAAQ72B,EAAMq6B,GACpBr6B,EAAMq6B,GAAMg2F,CACd,EACAqnC,EAAKJ,EAAO,EAAG,GACfI,EAAKJ,EAAO,EAAG,GACfI,EAAKJ,EAAO,EAAG,GACfI,EAAKJ,EAAO,EAAG,EACjB,CAiKMK,CAAiBH,GACVA,CACT,CACF,CACA,OAAO,IACT,CAEA,SAASI,EAAW53J,EAAOg3C,EAAOjsC,GAGhC,OAAOwoG,WAAW55G,UAAU8H,MAAQzB,EAAMyB,MAAMu1C,EAAOjsC,GAAO,IAAIwoG,WAAWlnG,MAAM1S,UAAU8H,MAAMnH,KAAK0F,EAAOg3C,EAAOjsC,GACxH,CASA,MAAM8sJ,EAAa,CAAClwJ,EAAMslD,IAcpBA,EAAS,IAAMtlD,EAAKzJ,QAED,KAAjByJ,EAAKslD,IAAyC,KAArBtlD,EAAKslD,EAAS,IAAoC,KAArBtlD,EAAKslD,EAAS,IAElEtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAE5CtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,IAc1G6qG,EAAW,CAACnwJ,EAAMslD,IAIlBA,EAAS,IAAMtlD,EAAKzJ,QAED,KAAjByJ,EAAKslD,IAAyC,KAArBtlD,EAAKslD,EAAS,IAAoC,KAArBtlD,EAAKslD,EAAS,IAElEtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAE5CtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,KAAQtlD,EAAKslD,EAAS,GAAK,IAgB1G8qG,EAAa,CAACpwJ,EAAMslD,KACxB,MAAM+qG,EAAQ/qG,EACd,IAAI/uD,EAAS,EACb,KAAO25J,EAAWlwJ,EAAMslD,IAEtB/uD,GAAU,GAEVA,GADa+5J,EAAStwJ,EAAMslD,EAAS,GAEjC6qG,EAASnwJ,EAAMslD,EAAS,MAE1B/uD,GAAU,IAEZ+uD,GAAU/uD,EAEZ,GAAIA,EAAS,EACX,OAAOyJ,EAAK8vJ,SAASO,EAAOA,EAAQ95J,EAEtB,EAEZ+5J,EAAW,CAACtwJ,EAAMslD,KACtB,IAAIj6B,EAAO,EAKX,OAJAA,GAAuB,IAAfrrB,EAAKslD,KAAmB,GAChCj6B,IAA4B,IAAnBrrB,EAAKslD,EAAS,KAAc,GACrCj6B,IAA4B,IAAnBrrB,EAAKslD,EAAS,KAAc,EACrCj6B,GAA2B,IAAnBrrB,EAAKslD,EAAS,GACfj6B,CAAI,EAEPklI,EAAa,CAACvwJ,EAAMslD,IACjB4qG,EAAWlwJ,EAAMslD,IAAWgrG,EAAStwJ,EAAMslD,EAAS,GAAK,IAAMtlD,EAAKzJ,OAAS+uD,EAOhFkrG,EAAexwJ,IACnB,MAAMywJ,EAASC,GAAa1wJ,GAC5B,IAAK,IAAI9F,EAAI,EAAGA,EAAIu2J,EAAOl6J,OAAQ2D,IAAK,CACtC,MAAMiH,EAAQsvJ,EAAOv2J,GACrB,GAAIy2J,GAAiBxvJ,GACnB,OAAOyvJ,GAAczvJ,EAEzB,CACgB,EAMZwvJ,GAAmBxvJ,GAChBA,GAAuB,SAAdA,EAAMrM,KAAiC,iDAAfqM,EAAMwsD,KAE1CkjG,GAAe7wJ,IAMnB,MAAMrK,EAAOoD,OAAO4sC,aAAa3lC,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC3DqrB,EAAOilI,EAAStwJ,EAAM,GAI5B,MAAO,CACLrK,OACA01B,OACArrB,KAAMA,EAAK8vJ,SAJE,MAIwBzkI,GACtC,EAOGqlI,GAAeI,IACnB,IAAIxrG,EAAS,EACb,MAAMmrG,EAAS,GACf,KAAOP,EAAWY,EAASxrG,IAAS,CAClC,MAAMj6B,EAAOilI,EAASQ,EAASxrG,EAAS,GAExCA,GAAU,GACV,MAAMliD,EAAMkiD,EAASj6B,EAErB,KAAOi6B,EAAS,EAAIliD,GAAK,CACvB,MAAM2tJ,EAAYF,GAAaC,EAAQhB,SAASxqG,IAC1CnkD,EAAQ6vJ,GAAYD,GACtB5vJ,GACFsvJ,EAAOx4J,KAAKkJ,GAIdmkD,GAAUyrG,EAAU1lI,KAAO,EAC7B,CACI8kI,EAASW,EAASxrG,KACpBA,GAAU,GAEd,CACA,OAAOmrG,CAAM,EAETO,GAAc7vJ,GACC,SAAfA,EAAMxL,KACDs7J,GAAgB9vJ,GACI,MAAlBA,EAAMxL,KAAK,GACbu7J,GAAe/vJ,GAEjBgwJ,GAAgBhwJ,GAEnB8vJ,GAAkB9vJ,IAItB,GAAIA,EAAMkqB,KAAO,EACf,OAEF,MAAM+lI,EAAQC,GAAelwJ,EAAMnB,MAAM,GACnCsxJ,EAAc,IAAI1lD,WAAWzqG,EAAMnB,KAAK8vJ,SAASsB,EAAM76J,OAAS,IACtE,MAAO,CACLzB,IAAKqM,EAAMxL,KACXg4D,KAAMyjG,EACNpxJ,KAAMsxJ,EAAYxxJ,OACnB,EAEGqxJ,GAAkBhwJ,IACtB,GAAIA,EAAMkqB,KAAO,EACf,OAEF,GAAmB,SAAflqB,EAAMxL,KAAiB,CAMzB,IAAIkU,EAAQ,EACZ,MAAMsZ,EAAckuI,GAAelwJ,EAAMnB,KAAK8vJ,SAASjmJ,IAAQ,GAC/DA,GAASsZ,EAAY5sB,OAAS,EAC9B,MAAM9D,EAAQ4+J,GAAelwJ,EAAMnB,KAAK8vJ,SAASjmJ,IACjD,MAAO,CACL/U,IAAKqM,EAAMxL,KACXg4D,KAAMxqC,EACNnjB,KAAMvN,EAEV,CAMA,MAAMo6C,EAAOwkH,GAAelwJ,EAAMnB,KAAK8vJ,SAAS,IAChD,MAAO,CACLh7J,IAAKqM,EAAMxL,KACXqK,KAAM6sC,EACP,EAEGqkH,GAAiB/vJ,IACrB,GAAmB,SAAfA,EAAMxL,KAAiB,CAMzB,GAAIwL,EAAMkqB,KAAO,EACf,OAEF,IAAIxhB,EAAQ,EACZ,MAAMsZ,EAAckuI,GAAelwJ,EAAMnB,KAAK8vJ,SAASjmJ,IAAQ,GAC/DA,GAASsZ,EAAY5sB,OAAS,EAC9B,MAAM9D,EAAQ4+J,GAAelwJ,EAAMnB,KAAK8vJ,SAASjmJ,IACjD,MAAO,CACL/U,IAAKqM,EAAMxL,KACXg4D,KAAMxqC,EACNnjB,KAAMvN,EAEV,CAKA,MAAMm5C,EAAMylH,GAAelwJ,EAAMnB,MACjC,MAAO,CACLlL,IAAKqM,EAAMxL,KACXqK,KAAM4rC,EACP,EAEGglH,GAAgBW,IACpB,GAAuC,IAAnCA,EAAevxJ,KAAK0sG,WAAkB,CACxC,MAAM1sG,EAAO,IAAI4rG,WAAW2lD,EAAevxJ,MAGrCwxJ,EAAqB,EAAVxxJ,EAAK,GACtB,IAAI84B,GAAa94B,EAAK,IAAM,KAAOA,EAAK,IAAM,KAAOA,EAAK,IAAM,GAAKA,EAAK,GAM1E,OALA84B,GAAa,GACT04H,IACF14H,GAAa,aAGRzlC,KAAKgpC,MAAMvD,EACpB,CACgB,EAYZu4H,GAAiB,CAACh5J,EAAOo5J,GAAa,KAC1C,MAAMC,EAAUC,KAChB,GAAID,EAAS,CACX,MAAME,EAAUF,EAAQl9H,OAAOn8B,GAC/B,GAAIo5J,EAAY,CAEd,MAAMI,EAAMD,EAAQr9H,QAAQ,MAC5B,OAAgB,IAATs9H,EAAaD,EAAQr+J,UAAU,EAAGs+J,GAAOD,CAClD,CAGA,OAAOA,EAAQvjI,QAAQ,MAAO,GAChC,CACA,MAAMl0B,EAAM9B,EAAM9B,OAClB,IAAIsqB,EACAixI,EACAC,EACA92E,EAAM,GACN/gF,EAAI,EACR,KAAOA,EAAIC,GAAK,CAEd,GADA0mB,EAAIxoB,EAAM6B,KACA,IAAN2mB,GAAc4wI,EAChB,OAAOx2E,EACF,GAAU,IAANp6D,GAAoB,IAANA,EAIzB,OAAQA,GAAK,GACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EAEHo6D,GAAOliF,OAAO4sC,aAAa9kB,GAC3B,MACF,KAAK,GACL,KAAK,GAEHixI,EAAQz5J,EAAM6B,KACd+gF,GAAOliF,OAAO4sC,cAAkB,GAAJ9kB,IAAa,EAAY,GAARixI,GAC7C,MACF,KAAK,GAEHA,EAAQz5J,EAAM6B,KACd63J,EAAQ15J,EAAM6B,KACd+gF,GAAOliF,OAAO4sC,cAAkB,GAAJ9kB,IAAa,IAAc,GAARixI,IAAiB,EAAa,GAARC,GAG3E,CACA,OAAO92E,CAAG,EAEZ,IAAIy2E,GACJ,SAASC,KAGP,IAAIljH,UAAUC,UAAU/hC,SAAS,iBAMjC,OAHK+kJ,SAAuC,IAArBhxI,KAAKsxI,cAC1BN,GAAU,IAAIhxI,KAAKsxI,YAAY,UAE1BN,EACT,CAMA,MAAMO,GACK,SAAU55J,GACjB,IAAIk3C,EAAM,GACV,IAAK,IAAIr1C,EAAI,EAAGA,EAAI7B,EAAM9B,OAAQ2D,IAAK,CACrC,IAAIuX,EAAIpZ,EAAM6B,GAAG/H,SAAS,IACtBsf,EAAElb,OAAS,IACbkb,EAAI,IAAMA,GAEZ89B,GAAO99B,CACT,CACA,OAAO89B,CACT,EAGI2iH,GAAe7+J,KAAK+oC,IAAI,EAAG,IAAM,EACjCnkC,GAAO,GAAGA,KAUVk6J,GAAuB,CAC3BtI,MAAO,EACPD,MAAO,EACPwI,IAAK,EACLvlH,KAAM,GAER,SAASwlH,GAAQryJ,GACf,OAAOjH,OAAO4sC,aAAapoC,MAAM,KAAMyC,EACzC,CACA,SAASsyJ,GAAWxyJ,EAAQwlD,GAC1B,MAAM3V,EAAM7vC,EAAOwlD,IAAW,EAAIxlD,EAAOwlD,EAAS,GAClD,OAAO3V,EAAM,EAAI,MAAQA,EAAMA,CACjC,CACA,SAAS4iH,GAAWzyJ,EAAQwlD,GAC1B,MAAM3V,EAAM6iH,GAAW1yJ,EAAQwlD,GAC/B,OAAO3V,EAAM,EAAI,WAAaA,EAAMA,CACtC,CACA,SAAS8iH,GAAW3yJ,EAAQwlD,GAC1B,IAAIvyD,EAASw/J,GAAWzyJ,EAAQwlD,GAGhC,OAFAvyD,GAAUM,KAAK+oC,IAAI,EAAG,IACtBrpC,GAAUw/J,GAAWzyJ,EAAQwlD,EAAS,GAC/BvyD,CACT,CACA,SAASy/J,GAAW1yJ,EAAQwlD,GAC1B,OAAOxlD,EAAOwlD,IAAW,GAAKxlD,EAAOwlD,EAAS,IAAM,GAAKxlD,EAAOwlD,EAAS,IAAM,EAAIxlD,EAAOwlD,EAAS,EACrG,CACA,SAASotG,GAAY5yJ,EAAQwlD,EAAQ7yD,GACnCqN,EAAOwlD,GAAU7yD,GAAS,GAC1BqN,EAAOwlD,EAAS,GAAK7yD,GAAS,GAAK,IACnCqN,EAAOwlD,EAAS,GAAK7yD,GAAS,EAAI,IAClCqN,EAAOwlD,EAAS,GAAa,IAAR7yD,CACvB,CAgBA,SAASkgK,GAAQ3yJ,EAAMiJ,GACrB,MAAM42G,EAAU,GAChB,IAAK52G,EAAK1S,OAER,OAAOspH,EAET,MAAMz8G,EAAMpD,EAAK0sG,WACjB,IAAK,IAAIxyG,EAAI,EAAGA,EAAIkJ,GAAM,CACxB,MAAMioB,EAAOknI,GAAWvyJ,EAAM9F,GAExB04J,EAASvnI,EAAO,EAAInxB,EAAImxB,EAAOjoB,EACrC,GAFaivJ,GAAQryJ,EAAK8vJ,SAAS51J,EAAI,EAAGA,EAAI,MAEjC+O,EAAK,GAChB,GAAoB,IAAhBA,EAAK1S,OAGPspH,EAAQ5nH,KAAK+H,EAAK8vJ,SAAS51J,EAAI,EAAG04J,QAC7B,CAEL,MAAMC,EAAaF,GAAQ3yJ,EAAK8vJ,SAAS51J,EAAI,EAAG04J,GAAS3pJ,EAAKnP,MAAM,IAChE+4J,EAAWt8J,QACb0B,GAAKsF,MAAMsiH,EAASgzC,EAExB,CAEF34J,EAAI04J,CACN,CAGA,OAAO/yC,CACT,CACA,SAASizC,GAAkBC,GACzB,MAAMC,EAAa,GACb98I,EAAU68I,EAAK,GAGrB,IAAIlpJ,EAAQ,EACZ,MAAMopJ,EAAYV,GAAWQ,EAAMlpJ,GACnCA,GAAS,EACT,IAAIqpJ,EAA2B,EAC3BC,EAAc,EACF,IAAZj9I,GACFg9I,EAA2BX,GAAWQ,EAAMlpJ,GAC5CspJ,EAAcZ,GAAWQ,EAAMlpJ,EAAQ,GACvCA,GAAS,IAETqpJ,EAA2BT,GAAWM,EAAMlpJ,GAC5CspJ,EAAcV,GAAWM,EAAMlpJ,EAAQ,GACvCA,GAAS,IAIXA,GAAS,EACT,IAAIupJ,EAAYL,EAAKx8J,OAAS48J,EAC9B,MAAME,EAAkBf,GAAWS,EAAMlpJ,GACzCA,GAAS,EACT,IAAK,IAAI3P,EAAI,EAAGA,EAAIm5J,EAAiBn5J,IAAK,CACxC,IAAIo5J,EAAiBzpJ,EACrB,MAAM0pJ,EAAgBhB,GAAWQ,EAAMO,GACvCA,GAAkB,EAClB,MAAME,EAAgC,WAAhBD,EAEtB,GAAsB,IADiB,WAAhBA,KAAgC,GAGrD,OADAr8E,EAAO/jD,KAAK,oDACL,KAET,MAAMsgI,EAAqBlB,GAAWQ,EAAMO,GAC5CA,GAAkB,EAClBN,EAAW/6J,KAAK,CACdu7J,gBACAC,qBAEA9lG,KAAM,CACJ8J,SAAUg8F,EAAqBR,EAC/B5jH,MAAO+jH,EACPhwJ,IAAKgwJ,EAAYI,EAAgB,KAGrCJ,GAAaI,EAIbF,GAAkB,EAGlBzpJ,EAAQypJ,CACV,CACA,MAAO,CACLJ,2BACAD,YACA/8I,UACAm9I,kBACAL,aAEJ,CAsBA,SAASU,GAAiBpL,GACxB,MAAMv1J,EAAS,GACT4gK,EAAQhB,GAAQrK,EAAa,CAAC,OAAQ,SAC5C,IAAK,IAAIpuJ,EAAI,EAAGA,EAAIy5J,EAAMp9J,OAAQ2D,IAAK,CACrC,MAAM05J,EAAOD,EAAMz5J,GACb25J,EAAOlB,GAAQiB,EAAM,CAAC,SAAS,GACrC,GAAIC,EAAM,CACR,IAAI39I,EAAU29I,EAAK,GACnB,MAAMC,EAAUvB,GAAWsB,EAAkB,IAAZ39I,EAAgB,GAAK,IAChD69I,EAAOpB,GAAQiB,EAAM,CAAC,OAAQ,SAAS,GAC7C,GAAIG,EAAM,CACR79I,EAAU69I,EAAK,GACf,MAAMd,EAAYV,GAAWwB,EAAkB,IAAZ79I,EAAgB,GAAK,IAClD89I,EAAOrB,GAAQiB,EAAM,CAAC,OAAQ,SAAS,GAC7C,GAAII,EAAM,CACR,MAAMC,EAAW5B,GAAQ2B,EAAKlE,SAAS,EAAG,KACpCn6J,EAAO,CACXu+J,KAAM3N,EACN4N,KAAM5N,GACN0N,GACF,GAAIt+J,EAAM,CAER,MACMy+J,EAAWC,GADJ1B,GAAQiB,EAAM,CAAC,OAAQ,OAAQ,OAAQ,SAAS,IAE7D7gK,EAAO+gK,GAAW,CAChBb,YACAt9J,QAEF5C,EAAO4C,GAAQ8tJ,EAAe,CAC5BwP,YACA3vJ,GAAIwwJ,GACHM,EACL,CACF,CACF,CACF,CACF,CAYA,OAXazB,GAAQrK,EAAa,CAAC,OAAQ,OAAQ,SAC9C1zJ,SAAQ0/J,IACX,MAAMR,EAAUvB,GAAW+B,EAAM,GAC3BC,EAAQxhK,EAAO+gK,GACjBS,IACFA,EAAM97I,QAAU,CACdg/C,SAAU86F,GAAW+B,EAAM,IAC3B3qJ,MAAO4oJ,GAAW+B,EAAM,KAE5B,IAEKvhK,CACT,CACA,SAASshK,GAAUG,GACjB,MAAMC,EAAgBD,EAAK1E,SAAS,GAC9B4E,EAAmBD,EAAc3E,SAAS,IAC1C6E,EAAStC,GAAQoC,EAAc3E,SAAS,EAAG,IACjD,IAAI8E,EAAQD,EACZ,MAAM7L,EAAuB,SAAX6L,GAAgC,SAAXA,EACvC,GAAI7L,EAAW,CACb,MAAM+L,EAASlC,GAAQ8B,EAAe,CAACE,IAAS,GAElChC,GADSkC,EAAO/E,SAAoB,SAAX6E,EAAoB,GAAK,IAC1B,CAAC,SACjC//J,SAAQkgK,IACZ,MAAMC,EAAOpC,GAAQmC,EAAM,CAAC,SAAS,GACrC,GAAIC,EAAM,CACR,MAAMl0H,EAASwxH,GAAQ0C,EAAKjF,SAAS,EAAG,IACxC,GAAe,SAAXjvH,GAAgC,SAAXA,EAAmB,CAC1C,MAAMm0H,EAAOrC,GAAQmC,EAAM,CAAC,SAAS,GACjCE,IAEFJ,EAAQvC,GAAQ2C,GAEpB,CACF,IAEJ,CACA,OAAQJ,GACN,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,CAEE,MAAMK,EAAUtC,GAAQ+B,EAAkB,CAAC,SAAS,GACpDE,GAAS,IAAMM,GAAMD,EAAQ,IAAMC,GAAMD,EAAQ,IAAMC,GAAMD,EAAQ,IACrE,KACF,CACF,IAAK,OACH,CACE,MAAME,EAAWxC,GAAQ8B,EAAe,CAACE,IAAS,GAC5CS,EAAUzC,GAAQwC,EAASrF,SAAS,IAAK,CAAC,SAAS,GACzD,GAAIsF,GAAWA,EAAQ7+J,OAAS,GAAI,CAClC,IAAI2D,EAAI,EAER,GAAqB,IAAjBk7J,EAAQl7J,KACV,MAEFA,EAAIm7J,GAAeD,EAASl7J,GAC5BA,GAAK,EACL,MAAMyP,EAAQyrJ,EAAQl7J,KAQtB,GAPY,IAARyP,IACFzP,GAAK,GAEK,GAARyP,IACFzP,GAAKk7J,EAAQl7J,MAGM,IAAjBk7J,EAAQl7J,KACV,MAEFA,EAAIm7J,GAAeD,EAASl7J,GAC5B,MAAMo7J,EAAaF,EAAQl7J,KAC3B,GAAmB,KAAfo7J,EAGF,MAIF,GANEV,GAAS,IAAMM,GAAMI,GAIvBp7J,GAAK,GAEgB,IAAjBk7J,EAAQl7J,KACV,MAEFA,EAAIm7J,GAAeD,EAASl7J,GAC5B,MAAMq7J,EAAYH,EAAQl7J,KAC1B,IAAIs7J,GAA+B,IAAZD,IAAqB,EACpB,KAApBC,IACFA,GAAmB,IAAkB,EAAZD,IAAoB,KAAoB,IAAbH,EAAQl7J,KAAc,IAE5E06J,GAAS,IAAMY,CACjB,CACA,KACF,CACF,IAAK,OACL,IAAK,OACH,CACE,MAAMC,EAAU9C,GAAQ+B,EAAkB,CAAC,SAAS,GAC9CgB,EAAcD,EAAQ,GACtBE,EAAe,CAAC,GAAI,IAAK,IAAK,KAAKD,GAAe,GAClDE,EAAkC,GAAdF,EACpBG,EAAgBtD,GAAWkD,EAAS,GACpCK,GAA0B,GAAdJ,IAAuB,EAAI,IAAM,IAC7CK,EAAWN,EAAQ,IACnBO,EAAsBP,EAAQ3F,SAAS,EAAG,IAChD8E,GAAS,IAAMe,EAAeC,EAC9BhB,GAAS,IAAMiB,EAAc1jK,SAAS,IAAI23C,cAC1C8qH,GAAS,IAAMkB,EAAWC,EAC1B,IAAIE,EAAmB,GACvB,IAAK,IAAI/7J,EAAI87J,EAAoBz/J,OAAQ2D,KAAM,CAC7C,MAAMg8J,EAAOF,EAAoB97J,IAC7Bg8J,GAAQD,KAEVA,EAAmB,IADCC,EAAK/jK,SAAS,IAAI23C,cACCmsH,EAE3C,CACArB,GAASqB,EACT,KACF,CACF,IAAK,OACL,IAAK,OACH,CACE,MAAME,EAAUxD,GAAQ+B,EAAkB,CAAC,SAAS,GAC9C0B,EAAUD,EAAQ,IAAM,EAAI,IAC5Bx1F,EAAQw1F,EAAQ,IAAM,EAAI,GAAOA,EAAQ,IAAM,EAAI,GACzDvB,GAAS,IAAMyB,GAAeD,GAAW,IAAMC,GAAe11F,GAC9D,KACF,CACF,IAAK,OACH,CACE,MAAM21F,EAAU3D,GAAQ+B,EAAkB,CAAC,SAAS,GAC9C0B,EAAUE,EAAQ,GAClB31F,EAAQ21F,EAAQ,GAChBC,EAAWD,EAAQ,IAAM,EAAI,GACnC1B,GAAS,IAAMyB,GAAeD,GAAW,IAAMC,GAAe11F,GAAS,IAAM01F,GAAeE,GAC5F,KACF,CACF,IAAK,OACH,CACE,MAAMC,EAAU7D,GAAQ+B,EAAkB,CAAC,SAAS,GAC9C0B,EAAUI,EAAQ,KAAO,EACzB71F,EAAqB,GAAb61F,EAAQ,GAChBV,EAAWU,EAAQ,KAAO,EAAI,IAAM,IACpCC,GAA6B,GAAbD,EAAQ,KAAc,EACtCE,GAA0B,GAAbF,EAAQ,KAAc,EACnCD,EAAuB,IAAZH,GAAiBK,EAAeC,EAAY,GAAK,GAAKD,EAAe,GAAK,EACrFE,GAA2B,GAAbH,EAAQ,KAAc,EACpCI,GAAmC,EAAbJ,EAAQ,KAAc,EAC5CK,GAAmC,EAAbL,EAAQ,KAAc,EAC5CM,EAAoC,EAAbN,EAAQ,GAI/BO,EAAiB,EACjBC,EAA0B,EAC1BC,EAAqB,EACrBC,EAAqB,EAC3BtC,GAAS,IAAMwB,EAAU,IAAMC,GAAe11F,GAASm1F,EAAW,IAAMO,GAAeE,GAAY,IAAMI,EAAa,IAAMC,EAAqBC,EAAqBC,EAAuB,IAAMT,GAAeU,GAAkB,IAAMV,GAAeW,GAA2B,IAAMX,GAAeY,GAAsB,IAAMC,EACrU,KACF,EAEJ,MAAO,CACLtC,QACA9L,YAEJ,CACA,SAASuM,GAAe1zB,EAAOznI,GAC7B,MAAMizB,EAAQjzB,EAAI,EAClB,KAAoB,IAAbynI,EAAMznI,MAAeA,EAAIizB,IAChC,OAAOjzB,CACT,CACA,SAASg7J,GAAMjlI,GACb,OAAQ,IAAMA,EAAE99B,SAAS,IAAI23C,eAAehwC,OAAO,EACrD,CACA,SAASu8J,GAAe33G,GACtB,OAAQA,EAAM,GAAK,IAAM,IAAMA,CACjC,CAqCA,SAASy4G,GAAUrC,GACjB,MAAMC,EAAOpC,GAAQmC,EAAM,CAAC,SAAS,GACrC,GAAIC,EAAM,CACR,MAAMl0H,EAASwxH,GAAQ0C,EAAKjF,SAAS,EAAG,IACxC,GAAe,SAAXjvH,GAAgC,SAAXA,EACvB,OAAO8xH,GAAQmC,EAAM,CAAC,OAAQ,SAAS,EAE3C,CACA,OAAO,IACT,CAoKA,SAASsC,GAA8BC,GACrC,MAAM1tJ,EAAQ4oJ,GAAW8E,EAAM,GAG/B,IAAI/xG,EAAS,EAED,EAAR37C,IACF27C,GAAU,GAGA,EAAR37C,IACF27C,GAAU,GAEZ,IAAImS,EAAW,EACf,MAAM6/F,EAAc/E,GAAW8E,EAAM,GACrC,IAAK,IAAIn9J,EAAI,EAAGA,EAAIo9J,EAAap9J,IAEnB,IAARyP,IAEF8tD,GADuB86F,GAAW8E,EAAM/xG,GAExCA,GAAU,GAGA,IAAR37C,IACF27C,GAAU,GAGA,KAAR37C,IACF27C,GAAU,GAGA,KAAR37C,IACF27C,GAAU,GAGd,OAAOmS,CACT,CAuDA,SAAS8/F,GAAiBC,EAAOC,GAC/B,MAAMC,EAAO,IAAI9rD,WAAW4rD,EAAMjhK,OAASkhK,EAAMlhK,QAGjD,OAFAmhK,EAAK3iK,IAAIyiK,GACTE,EAAK3iK,IAAI0iK,EAAOD,EAAMjhK,QACfmhK,CACT,CACA,SAASC,GAAaC,EAAYrD,GAChC,MAAMsD,EAAa,GACbC,EAAYvD,EAAMwD,QAClB9E,EAAYsB,EAAMtB,UAClBa,EAAUS,EAAMjxJ,GACtB,IAAI00J,GAAe,EAuHnB,OAtHcrF,GAAQmF,EAAW,CAAC,SAC5B3gK,KAAI8gK,IACR,MAAMC,EAAaD,EAAKvtE,WAAa,EACvBioE,GAAQsF,EAAM,CAAC,SACvB9gK,KAAIghK,IAER,MAAMC,EAAWzF,GAAQwF,EAAM,CAAC,SAAShhK,KAAIkhK,IAC3C,MAAMniJ,EAAUmiJ,EAAK,GACrB,IAAItlK,EAASw/J,GAAW8F,EAAM,GAK9B,OAJgB,IAAZniJ,IACFnjB,GAAUM,KAAK+oC,IAAI,EAAG,IACtBrpC,GAAUw/J,GAAW8F,EAAM,IAEtBtlK,EAASkgK,CAAS,IACxB,GAIH,YAHiB3gK,IAAb8lK,IACFR,EAAaQ,GAERzF,GAAQwF,EAAM,CAAC,SAAShhK,KAAImhK,IACjC,MAAMh1J,EAAKivJ,GAAW+F,EAAM,GACtBC,EAAkC,SAAtBhG,GAAW+F,EAAM,GAInC,IAAIE,EAAwB,EAC5B,MAAMC,KAAwC,GAAZF,GAClC,IAAIG,EAAoB,EACxB,MAAMC,KAAyC,GAAZJ,GACnC,IAAIK,EAAa,EACbt1J,IAAOwwJ,OARgC,EAAZyE,KAU3BK,GAAc,MATiC,EAAZL,KAYnCK,GAAc,MAXgC,EAAZL,KAclCC,EAAwBjG,GAAW+F,EAAMM,GACzCA,GAAc,GAEZH,IACFC,EAAoBnG,GAAW+F,EAAMM,GACrCA,GAAc,GAEZD,IACFC,GAAc,GAEG,UAAfrE,EAAM5+J,OACRqiK,EAwEZ,SAAgBpD,GACd,IAAKA,EACH,OAAO,EAET,MAAMiE,EAAUjE,EAAMrgI,QAAQ,KACxBukI,EAAYD,EAAU,EAAIjE,EAAQA,EAAMrhK,UAAU,EAAGslK,GAC3D,MAAqB,SAAdC,GAAsC,SAAdA,GAEjB,SAAdA,GAAsC,SAAdA,CAC1B,CAjF2BC,CAAOxE,EAAMK,QAE9BjC,GAAQwF,EAAM,CAAC,SAAShhK,KAAIkgK,IAC1B,MAAMnhJ,EAAUmhJ,EAAK,GACf1tJ,EAA8B,SAAtB4oJ,GAAW8E,EAAM,GACzB2B,KAA6B,EAARrvJ,GAC3B,IAAIsvJ,EAAa,EACjB,MAAMC,KAAmC,EAARvvJ,GAC3BwvJ,KAAiC,IAARxvJ,GAC/B,IAAIyvJ,EAAiB,EACrB,MAAMC,KAA6B,IAAR1vJ,GAC3B,IAAI2vJ,EAAa,EACjB,MAAMC,KAA8B,KAAR5vJ,GACtB6vJ,KAA2C,KAAR7vJ,GACzC,IAAI8vJ,EAAoB,EACxB,MAAMnC,EAAc/E,GAAW8E,EAAM,GACrC,IAAIqC,EAAa,EAEbV,IACFC,EAAa1G,GAAW8E,EAAMqC,GAC9BA,GAAc,GAEZR,IACFQ,GAAc,GAEhB,IAAIC,EAAeV,EAAaf,EAChC,IAAK,IAAI0B,EAAK,EAAGA,EAAKtC,EAAasC,IAAM,CAwBvC,GAvBIT,GACFC,EAAiB7G,GAAW8E,EAAMqC,GAClCA,GAAc,GAEdN,EAAiBZ,EAEfa,GACFC,EAAa/G,GAAW8E,EAAMqC,GAC9BA,GAAc,GAEdJ,EAAaZ,EAEXa,IACFG,GAAc,GAEZF,IAEAC,EADc,IAAZvjJ,EACkBq8I,GAAW8E,EAAMqC,GAEjBlH,GAAW6E,EAAMqC,GAEvCA,GAAc,GAEZnF,EAAM5+J,OAAS4wJ,EAA6B,CAC9C,IAAIsT,EAAgB,EACpB,KAAOA,EAAgBP,GAAY,CACjC,MAAMQ,EAAWvH,GAAWuF,EAAW6B,GACvCA,GAAgB,EACZI,GAAa/B,EAAcF,EAAU6B,KAEvCK,GADalC,EAAUhI,SAAS6J,EAAcA,EAAeG,GAC/B9B,EAAe,EAAI,EAAGJ,EAAa6B,EAAoBxG,EAAW4E,GAElG8B,GAAgBG,EAChBD,GAAiBC,EAAW,CAC9B,CACF,CACAlC,GAAcwB,EAAiBnG,CACjC,KAEJ,GACA,GACF,IAEG4E,CACT,CAWA,SAASkC,GAAa/B,EAAciC,GAClC,GAAIjC,EAAc,CAChB,MAAMkC,EAAWD,GAAc,EAAI,GACnC,OAAoB,KAAbC,GAAgC,KAAbA,CAC5B,CAEE,OAAoB,IADU,GAAbD,EAGrB,CACA,SAASD,GAAwBG,EAAeC,EAAYC,EAAKtC,GAC/D,MAAM/3J,EAAOs6J,GAAWH,GACxB,IAAII,EAAS,EAEbA,GAAUH,EACV,IAAII,EAAc,EACdC,EAAc,EACd9jK,EAAI,EACR,KAAO4jK,EAASv6J,EAAKzJ,QAAQ,CAC3BikK,EAAc,EACd,EAAG,CACD,GAAID,GAAUv6J,EAAKzJ,OACjB,MAEFI,EAAIqJ,EAAKu6J,KACTC,GAAe7jK,CACjB,OAAe,MAANA,GAGT8jK,EAAc,EACd,EAAG,CACD,GAAIF,GAAUv6J,EAAKzJ,OACjB,MAEFI,EAAIqJ,EAAKu6J,KACTE,GAAe9jK,CACjB,OAAe,MAANA,GACT,MAAM+jK,EAAW16J,EAAKzJ,OAASgkK,EAE/B,IAAII,EAASJ,EAGb,GAAIE,EAAcC,EAChBH,GAAUE,OACL,GAAIA,EAAcC,EAAU,CAEjCxjF,EAAOl8E,MAAM,0BAA0By/J,wBAAkCC,0BAEzE,KACF,CACA,GAAoB,IAAhBF,GAEF,GAAoB,MADAx6J,EAAK26J,KACA,CACvB,MAAMC,EAAetI,GAAWtyJ,EAAM26J,GAEtC,GADAA,GAAU,EACW,KAAjBC,EAAqB,CACvB,MAAMC,EAAgBtI,GAAWvyJ,EAAM26J,GAEvC,GADAA,GAAU,EACY,aAAlBE,EAA8B,CAChC,MAAMC,EAAe96J,EAAK26J,KAG1B,GAAqB,IAAjBG,EAAoB,CACtB,MAAMvF,EAAYv1J,EAAK26J,KAEjB77H,EAAU,GAAOy2H,EACjBwF,EAAaj8H,EAAU,EAAe,GAF3B,GAAOy2H,GAEwB,EAC1CyF,EAAY,IAAIpvD,WAAWmvD,GACjC,GAAIj8H,EAAS,CACXk8H,EAAU,GAAKzF,EACf,IAAK,IAAIr7J,EAAI,EAAGA,EAAI6gK,EAAY7gK,IAC9B8gK,EAAU9gK,GAAK8F,EAAK26J,IAExB,CACA5C,EAAQ9/J,KAAK,CACXtC,KAAMmlK,EACNN,cACAH,MACA14B,MAAOq5B,GAEX,CACF,CACF,CACF,OACK,GAAoB,IAAhBR,GACLC,EAAc,GAAI,CACpB,MAAMQ,EAAe,GACrB,IAAK,IAAI/gK,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,MAAM6gB,EAAK/a,EAAK26J,KAAUxoK,SAAS,IACnC8oK,EAAahjK,KAAkB,GAAb8iB,EAAGxkB,OAAc,IAAMwkB,EAAKA,GACpC,IAAN7gB,GAAiB,IAANA,GAAiB,IAANA,GAAiB,IAANA,GACnC+gK,EAAahjK,KAAK,IAEtB,CACA,MAAM1B,EAASkkK,EAAc,GACvBS,EAAgB,IAAItvD,WAAWr1G,GACrC,IAAK,IAAI2D,EAAI,EAAGA,EAAI3D,EAAQ2D,IAC1BghK,EAAchhK,GAAK8F,EAAK26J,KAE1B5C,EAAQ9/J,KAAK,CACXuiK,cACAH,MACA99F,KAAM0+F,EAAaxnK,KAAK,IACxB0nK,SAAU9J,GAAe6J,GACzBA,iBAEJ,CAEJ,CACF,CAKA,SAASZ,GAAWt6J,GAClB,MAAMzJ,EAASyJ,EAAK0sG,WACd0uD,EAAe,GACrB,IAAIlhK,EAAI,EAGR,KAAOA,EAAI3D,EAAS,GACF,IAAZyJ,EAAK9F,IAA4B,IAAhB8F,EAAK9F,EAAI,IAA4B,IAAhB8F,EAAK9F,EAAI,IACjDkhK,EAAanjK,KAAKiC,EAAI,GACtBA,GAAK,GAELA,IAMJ,GAA4B,IAAxBkhK,EAAa7kK,OACf,OAAOyJ,EAIT,MAAMq7J,EAAY9kK,EAAS6kK,EAAa7kK,OAClC+kK,EAAU,IAAI1vD,WAAWyvD,GAC/B,IAAIE,EAAc,EAClB,IAAKrhK,EAAI,EAAGA,EAAImhK,EAAWE,IAAerhK,IACpCqhK,IAAgBH,EAAa,KAE/BG,IAEAH,EAAahjK,SAEfkjK,EAAQphK,GAAK8F,EAAKu7J,GAEpB,OAAOD,CACT,CA8IA,SAASE,GAAUC,GACjB,MAAMpwI,EAAOowI,EAAKC,UAAU,GACtBp2G,EAASm2G,EAAK/wE,WACdn0F,EAASklK,EAAK/uD,WACpB,GAAIn2G,EAAS80B,EACX,MAAO,CACLi6B,SACAj6B,KAAM90B,GAIV,GAAa,aADAklK,EAAKC,UAAU,GAE1B,MAAO,CACLp2G,SACAj6B,QAGJ,MAAMnV,EAAUulJ,EAAKC,UAAU,KAAO,GACtC,GAAgB,IAAZxlJ,GAA6B,IAAZA,EACnB,MAAO,CACLovC,SACAj6B,QAGJ,MAAMvrB,EAAS27J,EAAK37J,OACd2uJ,EAAWwD,GAAY,IAAIrmD,WAAW9rG,EAAQwlD,EAAS,GAAI,KAC3Dq2G,EAAqBF,EAAKC,UAAU,IAC1C,IAAIE,EAAO,KACP57J,EAAO,KACX,GAAgB,IAAZkW,EAAe,CACjB,GAAImV,EAAO,GAAKswI,GAAsBA,EAAqB,GACzD,MAAO,CACLr2G,SACAj6B,QAGJrrB,EAAO,IAAI4rG,WAAW9rG,EAAQwlD,EAAS,GAAIq2G,EAC7C,MAAO,GAAgB,IAAZzlJ,EAAe,CACxB,IAAKylJ,GAAsBplK,EAAS+uD,EAAS,GAA0B,GAArBq2G,EAA0B,GAC1E,MAAO,CACLr2G,SACAj6B,QAGJuwI,EAAO,GACP,IAAK,IAAI1hK,EAAI,EAAGA,EAAIyhK,EAAoBzhK,IACtC0hK,EAAK3jK,KAAK,IAAI2zG,WAAW9rG,EAAQwlD,EAAS,GAAS,GAAJprD,EAAQ,IAE3D,CACA,MAAO,CACLgc,UACAu4I,WACAmN,OACA57J,OACAslD,SACAj6B,OAEJ,CAEA,IAAIwwI,GAAmB,CAAC,EACxB,MAAMC,GACJ,4BAAOC,GACLF,GAAmB,CAAC,CACtB,CACA,WAAA16I,CAAYyC,EAAQgd,EAAKnxB,EAAQusJ,EAAiB,CAAC,GAAIC,EAAK,MAC1D7lK,KAAKwqC,SAAM,EACXxqC,KAAKwtB,YAAS,EACdxtB,KAAK6yJ,eAAY,EACjB7yJ,KAAK8lK,uBAAoB,EACzB9lK,KAAK0yJ,eAAY,EACjB1yJ,KAAK+lK,wBAAqB,EAC1B/lK,KAAK6lK,GAAK,KACV7lK,KAAKtB,IAAM,KACXsB,KAAKu5J,MAAQ,KACbv5J,KAAKgmK,KAAO,KACZhmK,KAAKwtB,OAASA,EACdxtB,KAAKwqC,IAAMA,EACXxqC,KAAK6yJ,UAAYx5I,EACjBrZ,KAAK8lK,kBAAoBF,EACzB5lK,KAAK6lK,GAAKA,EACV7lK,KAAK0yJ,YAAYllI,GAAoB,SAAXA,EAC1BxtB,KAAK+lK,mBAAqB/lK,KAAK0yJ,WAAwB,YAAXllI,CAC9C,CACA,WAAAy4I,GAEE,GAAIjmK,KAAKwtB,OAAQ,CACf,GAAoB,YAAhBxtB,KAAKwtB,QAAwC,SAAhBxtB,KAAKwtB,OACpC,OAAO,EAET,GAAuB,aAAnBxtB,KAAK6yJ,UAEP,MAAuB,eAAhB7yJ,KAAKwtB,OAEZ,OAAQxtB,KAAK6yJ,WACX,KAAKqF,EACL,KAAKA,EACL,KAAKA,EACL,KAAKA,EACH,OAAoG,IAA7F,CAAC,cAAe,aAAc,kBAAmB,kBAAkB/5H,QAAQn+B,KAAKwtB,QAG/F,CACA,OAAO,CACT,CACA,cAAA+kI,CAAenB,GACb,IAAKpxJ,KAAK0yJ,YAAc1yJ,KAAKwqC,IAC3B,OAAO,KAET,GAAoB,YAAhBxqC,KAAKwtB,QAAwBxtB,KAAKwqC,MAAQxqC,KAAK6lK,GAAI,CACnC,iBAAPzU,IAIW,YAAhBpxJ,KAAKwtB,QAAyBxtB,KAAK6lK,IACrC/kF,EAAO/jD,KAAK,sDAAsD/8B,KAAKwtB,8BAGzE4jI,EAAK,GAEP,MAAMyU,EAyDZ,SAAoCK,GAClC,MAAMC,EAAY,IAAI3wD,WAAW,IACjC,IAAK,IAAI1xG,EAAI,GAAIA,EAAI,GAAIA,IACvBqiK,EAAUriK,GAAKoiK,GAAiB,GAAK,GAAKpiK,GAAK,IAEjD,OAAOqiK,CACT,CA/DiBC,CAA2BhV,GAEtC,OADoB,IAAIsU,GAAS1lK,KAAKwtB,OAAQxtB,KAAKwqC,IAAK,WAAYxqC,KAAK8lK,kBAAmBD,EAE9F,CAGA,MAAM9M,EAlvDV,SAAoCvuH,GAElC,MAAM67H,EAAa77H,EAAIptC,MAAM,KAC7B,IAAIkpK,EAAU,KACd,GAAsB,SAAlBD,EAAW,IAAuC,IAAtBA,EAAWlmK,OAAc,CACvD,MAAMomK,EAAiBF,EAAW,GAAGjpK,MAAM,KACrCopK,EAAaD,EAAeA,EAAepmK,OAAS,GAAG/C,MAAM,KACnE,GAA0B,IAAtBopK,EAAWrmK,OAAc,CAC3B,MAAMsmK,EAA6B,WAAlBD,EAAW,GACtB58J,EAAO48J,EAAW,GACpBC,GACFF,EAAexzH,QAAQ,EAAG,GAC1BuzH,EAAU/O,EAAa3tJ,IAEvB08J,EA/BR,SAAuBntH,GACrB,MAAMutH,EAAahP,EAAev+G,GAAKugH,SAAS,EAAG,IAC7CiN,EAAmB,IAAInxD,WAAW,IAExC,OADAmxD,EAAiBhoK,IAAI+nK,EAAY,GAAKA,EAAWvmK,QAC1CwmK,CACT,CA0BkBC,CAAch9J,EAE5B,CACF,CACA,OAAO08J,CACT,CA+tDqBO,CAA2B7mK,KAAKwqC,KACjD,GAAIuuH,EACF,OAAQ/4J,KAAK6yJ,WACX,KAAKqF,EAGHl4J,KAAKgmK,KAAOjN,EAERA,EAAS54J,QAAU,KACrBH,KAAKu5J,MAAQR,EAASW,SAASX,EAAS54J,OAAS,GAAI44J,EAAS54J,OAAS,IAEzE,MACF,KAAK+3J,EACH,CACE,MAAM4O,EAAyB,IAAItxD,WAAW,CAAC,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,MAIzIx1G,KAAKgmK,KAnMjB,SAAiB3N,EAAU0O,EAAQn9J,GACjC,GAA4B,KAAxByuJ,EAAS/hD,WACX,MAAM,IAAI0wD,WAAW,qBAEvB,IAAIlnJ,EACA0lJ,EAeAyB,EAdJ,GAAIF,EAAQ,CACVjnJ,EAAU,EACV0lJ,EAAO,IAAIhwD,WAA2B,GAAhBuxD,EAAO5mK,QAC7B,IAAK,IAAIqjK,EAAK,EAAGA,EAAKuD,EAAO5mK,OAAQqjK,IAAM,CACzC,MAAM1gK,EAAIikK,EAAOvD,GACjB,GAAqB,KAAjB1gK,EAAEwzG,WACJ,MAAM,IAAI0wD,WAAW,eAEvBxB,EAAK7mK,IAAImE,EAAQ,GAAL0gK,EACd,CACF,MACE1jJ,EAAU,EACV0lJ,EAAO,IAAIhwD,WAGT11F,EAAU,GACZmnJ,EAAW,IAAIzxD,WAAW,GACtBuxD,EAAO5mK,OAAS,GAClB,IAAIqrI,SAASy7B,EAASv9J,QAAQw9J,UAAU,EAAGH,EAAO5mK,QAAQ,IAG5D8mK,EAAW,IAAIzxD,WAEjB,MAAM2xD,EAAW,IAAI3xD,WAAW,GAIhC,OAHI5rG,GAAQA,EAAK0sG,WAAa,GAC5B,IAAIk1B,SAAS27B,EAASz9J,QAAQw9J,UAAU,EAAGt9J,EAAK0sG,YAAY,GAlDhE,SAAgB/2G,KAAS0M,GACvB,MAAMlI,EAAMkI,EAAQ9L,OACpB,IAAI80B,EAAO,EACPnxB,EAAIC,EACR,KAAOD,KACLmxB,GAAQhpB,EAAQnI,GAAGwyG,WAErB,MAAM35G,EAAS,IAAI64G,WAAWvgF,GAM9B,IALAt4B,EAAO,GAAKs4B,GAAQ,GAAK,IACzBt4B,EAAO,GAAKs4B,GAAQ,GAAK,IACzBt4B,EAAO,GAAKs4B,GAAQ,EAAI,IACxBt4B,EAAO,GAAY,IAAPs4B,EACZt4B,EAAOgC,IAAIY,EAAM,GACZuE,EAAI,EAAGmxB,EAAO,EAAGnxB,EAAIC,EAAKD,IAC7BnH,EAAOgC,IAAIsN,EAAQnI,GAAImxB,GACvBA,GAAQhpB,EAAQnI,GAAGwyG,WAErB,OAAO35G,CACT,CAkCSyqK,CAAO,CAAC,IAAK,IAAK,IAAK,KAAM,IAAI5xD,WAAW,CAAC11F,EAAS,EAAM,EAAM,IACrEu4I,EAEJ4O,EAAUzB,EAAM2B,EAAUv9J,GAAQ,IAAI4rG,WACxC,CA8JwB6xD,CAAQP,EAAwB,KAAM/N,GAClD/4J,KAAKu5J,MAAQT,EAAkBC,GAC/B,KACF,CACF,QACE,CACE,IAAIuN,EAAUvN,EAASW,SAAS,EAAG,IACnC,GAAuB,KAAnB4M,EAAQnmK,OAAe,CACzB,MAAMmnK,EAAS,IAAI9xD,WAAW,IAC9B8xD,EAAO3oK,IAAI2nK,EAAS,GAAKA,EAAQnmK,QACjCmmK,EAAUgB,CACZ,CACAtnK,KAAKu5J,MAAQ+M,EACb,KACF,EAKN,IAAKtmK,KAAKu5J,OAAmC,KAA1Bv5J,KAAKu5J,MAAMjjD,WAAmB,CAC/C,IAAIijD,EAAQkM,GAAiBzlK,KAAKwqC,KAClC,IAAK+uH,EAAO,CACV,MAAMhgH,EAAM59C,OAAOwK,KAAKs/J,IAAkBtlK,OAASuT,OAAOwyB,iBAC1DqzH,EAAQ,IAAI/jD,WAAW,IACZ,IAAIg2B,SAAS+tB,EAAM7vJ,OAAQ,GAAI,GACvCw9J,UAAU,EAAG3tH,GAChBksH,GAAiBzlK,KAAKwqC,KAAO+uH,CAC/B,CACAv5J,KAAKu5J,MAAQA,CACf,CACA,OAAOv5J,IACT,EAUF,MAAMunK,GAA6B,0BACnC,SAASC,GAAsBruH,GAC7B,OAAOouH,GAA2B35I,KAAKurB,EACzC,CACA,SAASsuH,GAAgC5sG,EAAQ6kD,EAAMgoD,GACrD,GAA4B,OAAxB7sG,EAAOu7F,cAAyBv7F,EAAOw7F,gBACzC,IAAK,IAAIvyJ,EAAI4jK,EAAevnK,OAAQ2D,KAAM,CACxC,MAAMsE,EAAOs/J,EAAe5jK,GACtBzH,EAAQqjH,EAAKt3G,GACf/L,IACFqjH,EAAKt3G,GAAQu/J,GAAoB9sG,EAAQx+D,GAE7C,CAEJ,CACA,SAASsrK,GAAoB9sG,EAAQx+D,GACnC,GAA4B,OAAxBw+D,EAAOu7F,cAAyBv7F,EAAOw7F,gBAAiB,CAC1D,MAAMD,EAAev7F,EAAOu7F,aAC5B,OAAO/5J,EAAM47B,QAAQsvI,IAA4BK,IAC/C,MAAMC,EAAeD,EAAkBzqK,UAAU,EAAGyqK,EAAkBznK,OAAS,GACzE2nK,EAAgC,MAAhB1R,OAAuB,EAASA,EAAayR,GACnE,YAAsB3rK,IAAlB4rK,GACFjtG,EAAOs7F,uBAAyBt7F,EAAOs7F,qBAAuB,IAAIr4J,MAAM,+DAA+D+pK,OAChID,GAEFE,CAAa,GAExB,CACA,OAAOzrK,CACT,CACA,SAAS0rK,GAAsBltG,EAAQ6kD,EAAMsoD,GAC3C,IAIIC,EACAC,EALA9R,EAAev7F,EAAOu7F,aAM1B,GALKA,IACHv7F,EAAOu7F,aAAeA,EAAe,CAAC,GAIpC,eAAgB12C,EAAM,CACxBuoD,EAAOvoD,EAAKyoD,WACZ,IACE,MAAMj/I,EAAe,IAAIoB,KAAKqkB,IAAIq5H,GAAW9+I,aAC7C,IAAIA,EAAazT,IAAIwyJ,GAGnB,MAAM,IAAInqK,MAAM,IAAImqK,kDAAqDD,MAFzEE,EAAQh/I,EAAa7X,IAAI42J,EAI7B,CAAE,MAAOrjK,GACPi2D,EAAOs7F,uBAAyBt7F,EAAOs7F,qBAAuB,IAAIr4J,MAAM,4BAA4B8G,EAAM+Y,WAC5G,CACF,MACEsqJ,EAAOvoD,EAAKuoD,KACZC,EAAQxoD,EAAKwoD,MAEXD,KAAQ7R,EACVv7F,EAAOs7F,uBAAyBt7F,EAAOs7F,qBAAuB,IAAIr4J,MAAM,uDAAuDmqK,OAE/H7R,EAAa6R,GAAQC,GAAS,EAElC,CACA,SAASE,GAAyBvtG,EAAQ6kD,EAAM2oD,GAC9C,MAAMC,EAAS5oD,EAAK4oD,OACpB,GAAID,GAAsBC,KAAUD,EAAoB,CACtD,IAAIjS,EAAev7F,EAAOu7F,aACrBA,IACHv7F,EAAOu7F,aAAeA,EAAe,CAAC,GAExCA,EAAakS,GAAUD,EAAmBC,EAC5C,MACEztG,EAAOs7F,uBAAyBt7F,EAAOs7F,qBAAuB,IAAIr4J,MAAM,sEAAsEwqK,MAElJ,CAMA,SAASC,GAAeC,GAA2B,GACjD,GAAoB,oBAATl+I,KAEX,OADak+I,IAA6Bl+I,KAAKm+I,cAAgBn+I,KAAKo+I,oBACtDp+I,KAAKm+I,aAAen+I,KAAKq+I,iBACzC,CAOA,MAAMC,GAAsB,CAC1BpV,MAAO,CACLqV,KAAM,EACN,OAAQ,IACR,OAAQ,EACRC,KAAM,GACNC,KAAM,EACNC,KAAM,EACN,OAAQ,EACR,OAAQ,EACRC,KAAM,EACNC,KAAM,EACNC,KAAM,EACN,OAAQ,GACRC,KAAM,EACNC,KAAM,GAENC,KAAM,GAENC,KAAM,GAENC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACN,OAAQ,EACRC,KAAM,EACNC,KAAM,EAENC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,GAERjX,MAAO,CACLkX,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,GACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,GACNC,KAAM,GACNC,KAAM,EACNC,KAAM,IACNC,KAAM,IACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACN,OAAQ,EACRC,KAAM,EACNC,KAAM,IAER51H,KAAM,CACJ61H,KAAM,EACNC,KAAM,IAOV,SAASC,GAA8BC,EAAQltK,EAAMipK,GAA2B,GAC9E,OAAQiE,EAAOrvK,MAAM,KAAKgF,MAAKo8J,IAAUkO,GAA4BlO,EAAOj/J,EAAMipK,IACpF,CACA,SAASkE,GAA4BlO,EAAOj/J,EAAMipK,GAA2B,GAC3E,IAAImE,EACJ,MAAMlE,EAAcF,GAAeC,GACnC,OAA8H,OAAtHmE,EAAuC,MAAflE,OAAsB,EAASA,EAAYmE,gBAAgBC,GAAiBrO,EAAOj/J,MAAkBotK,CACvI,CACA,SAASE,GAAiBrO,EAAOj/J,GAC/B,MAAO,GAAGA,iBAAoBi/J,IAChC,CACA,SAASsO,GAA0BC,GACjC,GAAIA,EAAY,CACd,MAAMxO,EAASwO,EAAW5vK,UAAU,EAAG,GACvC,OAAOyrK,GAAoBnV,MAAM8K,EACnC,CACA,OAAO,CACT,CACA,SAASyO,GAAkCC,GACzC,OAAOA,EAAS7vK,MAAM,KAAKiD,QAAO,CAACioD,EAAKi2G,KACtC,MAAM2O,EAAkBtE,GAAoBnV,MAAM8K,GAClD,OAAI2O,GACwB,EAAlBA,EAAsB5kH,IAAQA,EAAM,EAAI,IAE1CsgH,GAAoBpV,MAAM+K,GAAUj2G,IAAQA,EAAM,EAAI,EAAE,GAC/D,EACL,CACA,MAAM6kH,GAAyB,CAAC,EAqB1BC,GAAqB,aAC3B,SAASC,GAAuB7O,EAAOgK,GAA2B,GAChE,OAAOhK,EAAMvmI,QAAQm1I,IAAoBjyJ,GAtB3C,SAAqCmyJ,EAAgB9E,GAA2B,GAC9E,GAAI2E,GAAuBG,GACzB,OAAOH,GAAuBG,GAMhC,MAAMC,EAAgB,CACpBjE,KAAM,CAAC,OAAQ,OAAQ,QACvBY,KAAM,CAAC,OAAQ,SACfoD,GACF,IAAK,IAAIxpK,EAAI,EAAGA,EAAIypK,EAAcptK,OAAQ2D,IACxC,GAAI4oK,GAA4Ba,EAAczpK,GAAI,QAAS0kK,GAEzD,OADA2E,GAAuBG,GAAkBC,EAAczpK,GAChDypK,EAAczpK,GAGzB,OAAOwpK,CACT,CAGgDE,CAA4BryJ,EAAEknB,cAAemmI,IAC7F,CACA,SAASiF,GAA0BC,EAAaC,GAG9C,OAAID,GAA+B,SAAhBA,EACVA,EAEFC,EAAaA,EAAWvwK,MAAM,KAAK,GAAKuwK,CACjD,CAiBA,MAAMC,GAAwB,qJACxBC,GAA8B,qBAC9BC,GAAoB,mCAEpBC,GAA4B,IAAIv2I,OAAO,CAAC,0CAA0CpU,OAExF,sBAAsBA,OAEtB,yBAAyBA,OAEzB,gCAAgCA,OAEhC,MAAMA,QACJ/lB,KAAK,KAAM,KACP2wK,GAA4B,IAAIx2I,OAAO,CAAC,YAAYpU,OAAQ,6HAA6HA,OAAQ,wFAAwFA,OAAQ,0DAA0DA,OAAQ,kBAAkBA,OAAQ,sBAAsBA,QAAQ/lB,KAAK,MACta,MAAM4wK,GACJ,gBAAOC,CAAUhgH,EAAQigH,GACvB,IAAK,IAAIrqK,EAAI,EAAGA,EAAIoqD,EAAO/tD,OAAQ2D,IAAK,CACtC,MAAMogC,EAAQgqB,EAAOpqD,GACrB,GAAIogC,EAAMh3B,KAAOihK,EACf,OAAOjqI,CAEX,CACF,CACA,cAAO9iC,CAAQo0C,EAAKi5E,GAClB,OAAO2+B,EAAkBd,iBAAiB79B,EAASj5E,EAAK,CACtDg3G,iBAAiB,GAErB,CACA,sBAAO4hB,CAAgBj1H,GACrB,OAAO20H,GAAkBlgJ,KAAKurB,EAChC,CACA,0BAAOk1H,CAAoB5rK,EAAQ4tJ,GACjC,MACMx1F,EAAS,CACbyzG,gBAAiB,KACjBC,OAAQ,GACRpY,qBAAsB,KACtBqY,YAAa,KACbC,YAAa,KACb3Z,gBAAiB,KACjBsB,aAAc,KACdC,gBATsBmR,GAAsB/kK,IAWxCisK,EAAwB,GAE9B,IAAI/xK,EACJ,IAFAixK,GAAsB/e,UAAY,EAEsB,OAAhDlyJ,EAASixK,GAAsBpsK,KAAKiB,KAC1C,GAAI9F,EAAO,GAAI,CACb,IAAIgyK,EAEJ,MAAM77B,EAAQ,IAAIkb,EAASrxJ,EAAO,IAEhC8qK,GAAgC5sG,EAAQi4E,EAAO,CAAC,SAAU,sBAAuB,cAAe,aAAc,oBAAqB,QAAS,QAAS,YAAa,kBAAmB,SAEvL,MAAMtoG,EAAMm9H,GAAoB9sG,EAAQl+D,EAAO,IACzC4tE,EAAQ,CACZuoE,QACA87B,QAAS97B,EAAMqb,eAAe,cAAgBrb,EAAMqb,eAAe,qBACnE/lJ,KAAM0qI,EAAMm1B,KACZzyH,IAAKy4H,GAAW7sK,QAAQopC,EAAK6lH,IAEzBwe,EAAa/7B,EAAM8b,kBAAkB,cACvCigB,IACFtkG,EAAM5sB,MAAQkxH,EAAWlxH,MACzB4sB,EAAMhtB,OAASsxH,EAAWtxH,QAE5BuxH,GAAUh8B,EAAMi8B,OAAQxkG,GAC8B,OAA/CokG,EAAuBpkG,EAAMykG,gBAA0BL,EAAqBxuK,QACjFuuK,EAAsB7sK,KAAK0oE,GAE7B1P,EAAO0zG,OAAO1sK,KAAK0oE,EACrB,MAAO,GAAI5tE,EAAO,GAAI,CACpB,MAAMH,EAAMG,EAAO,GACb4iB,EAAa5iB,EAAO,GAC1B,OAAQH,GACN,IAAK,eACH,CAEE,MAAMyyK,EAAe,IAAIjhB,EAASzuI,GAEhCkoJ,GAAgC5sG,EAAQo0G,EAAc,CAAC,UAAW,WAAY,QAAS,QAEzF,MAAMC,EAASD,EAAa,WACxBC,IACyB,OAAvBr0G,EAAO2zG,cACT3zG,EAAO2zG,YAAc,CAAC,GAExB3zG,EAAO2zG,YAAYU,GAAUD,GAE/B,KACF,CACF,IAAK,cACH,CAEE,MAAME,EAAaC,GAAS7vJ,EAAY8wI,EAASx1F,GAC7Cs0G,EAAWzc,WAAayc,EAAWlJ,eACV,OAAvBprG,EAAO4zG,cACT5zG,EAAO4zG,YAAc,IAEvB5zG,EAAO4zG,YAAY5sK,KAAKstK,IAExBruF,EAAO/jD,KAAK,mDAAmDxd,MAEjE,KACF,CACF,IAAK,SAGD,CACE,MAAM8vJ,EAAqB,IAAIrhB,EAASzuI,GACxCkoJ,GAAgC5sG,EAAQw0G,EAAoB,CAAC,OAAQ,QAAS,eAC9EtH,GAAsBltG,EAAQw0G,EAAoBhf,EACpD,CACA,MAEJ,IAAK,mBACH,CAEE,MAAMif,EAA4B,IAAIthB,EAASzuI,GAE7CkoJ,GAAgC5sG,EAAQy0G,EAA2B,CAAC,aAAc,eAEpFz0G,EAAOyzG,gBAAkB,CACvB9jI,IAAKyjI,GAAW7sK,QAAQkuK,EAA0B,cAAejf,GACjEkf,UAAWD,EAA0B,eAAiB,KAExD,KACF,CACF,IAAK,QAGDz0G,EAAOi6F,gBAAkB0a,GAAqBjwJ,GAItD,CAGF,MAAMkwJ,EAA0Bf,EAAsBvuK,OAAS,GAAKuuK,EAAsBvuK,OAAS06D,EAAO0zG,OAAOpuK,OAKjH,OAJA06D,EAAO0zG,OAASkB,EAA0Bf,EAAwB7zG,EAAO0zG,OAC5C,IAAzB1zG,EAAO0zG,OAAOpuK,SAChB06D,EAAOs7F,qBAAuB,IAAIr4J,MAAM,gCAEnC+8D,CACT,CACA,+BAAO60G,CAAyBjtK,EAAQ4tJ,EAASx1F,GAC/C,IAAIl+D,EACJ,MAAM8sH,EAAU,CAAC,EACX8kD,EAAS1zG,EAAO0zG,OAChBoB,EAAe,CACnBC,MAAOrB,EAAOxtK,KAAIwpE,IAAS,CACzBr9D,GAAIq9D,EAAMuoE,MAAM88B,MAChBC,WAAYtlG,EAAMslG,eAEpBC,UAAWvB,EAAOxtK,KAAIwpE,IAAS,CAC7Br9D,GAAIq9D,EAAMuoE,MAAMg9B,UAChBC,UAAWxlG,EAAMwlG,cAEnB,kBAAmB,IAErB,IAAI7iK,EAAK,EAET,IADA2gK,GAA4Bhf,UAAY,EACuB,QAAvDlyJ,EAASkxK,GAA4BrsK,KAAKiB,KAAmB,CACnE,MAAMqwI,EAAQ,IAAIkb,EAASrxJ,EAAO,IAC5B4C,EAAOuzI,EAAMjW,KACnB,GAAIt9H,EAAM,CACR,MAAM2uD,EAASyhH,EAAapwK,GACtBywK,EAASvmD,EAAQlqH,IAAS,GAChCkqH,EAAQlqH,GAAQywK,EAEdvI,GAAgC5sG,EAAQi4E,EAAO,CAAC,MAAO,WAAY,WAAY,iBAAkB,sBAAuB,OAAQ,cAAe,kBAAmB,aAEpK,MAAM4C,EAAO5C,EAAMm9B,SACbC,EAAYp9B,EAAM,kBAClBq9B,EAAWr9B,EAAMs9B,SACjBC,EAAkBv9B,EAAMw9B,gBACxBC,EAAaz9B,EAAM,eACnB09B,EAAQ,CACZ19B,QACA87B,QAAS,EACT1hK,GAAIA,IACJujK,QAAS39B,EAAM,aAAe,GAC9B1qI,KAAM0qI,EAAMm1B,MAAQvyB,GAAQ,GAC5Bn2I,OACA8iB,QAASywH,EAAMr5G,KAAK,WACpBi3I,WAAY59B,EAAMr5G,KAAK,cACvBk3I,OAAQ79B,EAAMr5G,KAAK,UACnBi8G,OACAlgG,IAAKs9F,EAAM89B,IAAM3C,GAAW7sK,QAAQ0xI,EAAM89B,IAAKvgB,GAAW,IAc5D,GAZI6f,IACFM,EAAMN,UAAYA,GAEhBC,IACFK,EAAML,SAAWA,GAEfE,IACFG,EAAMH,gBAAkBA,GAEtBE,IACFC,EAAMD,WAAaA,GAEP,MAAVriH,GAAkBA,EAAO/tD,OAAQ,CAInC,MAAM0wK,EAAa5C,GAAWC,UAAUhgH,EAAQsiH,EAAMC,UAAYviH,EAAO,GACzE4iH,GAAYN,EAAOK,EAAY,cAC/BC,GAAYN,EAAOK,EAAY,YACjC,CACAb,EAAOnuK,KAAK2uK,EACd,CACF,CACA,OAAO/mD,CACT,CACA,yBAAOsnD,CAAmBtuK,EAAQ4tJ,EAASnjJ,EAAI3N,EAAMyxK,EAAYC,GAC/D,MAAM1mG,EAAQ,IAAIopF,EAAatD,GACzB4D,EAAY1pF,EAAM0pF,UAExB,IAOIt3J,EACAmH,EACAutJ,EATA6f,EAAqB,KACrBC,EAAY,EACZC,EAAc,EACdpc,EAAgB,EAChBqc,EAAuB,EACvBC,EAAW,KACXje,EAAO,IAAItC,EAASxxJ,EAAM8wJ,GAI1BkhB,GAAiB,EACjBC,GAAiB,EACjBC,EAAgB,KAIpB,IAHA1D,GAA0Blf,UAAY,EACtCtkF,EAAM0qF,KAAOxyJ,EACb8nE,EAAM8rF,gBAAkBmR,GAAsB/kK,GACe,QAArD9F,EAASoxK,GAA0BvsK,KAAKiB,KAAmB,CAC7D+uK,IACFA,GAAiB,EACjBne,EAAO,IAAItC,EAASxxJ,EAAM8wJ,GAE1BgD,EAAKp6G,MAAQ+7G,EACb3B,EAAKjC,GAAK+f,EACV9d,EAAK7B,GAAK6f,EACVhe,EAAK9oF,MAAQr9D,EACTgkK,IACF7d,EAAKnB,YAAcgf,EACnB7d,EAAKpC,mBAAqBigB,EAAmBjgB,mBAC7CigB,EAAmBjgB,mBAAqB,KACpCwgB,IACFpe,EAAK3C,aAAa+gB,GAClBA,EAAgB,QAItB,MAAMpwG,EAAW1kE,EAAO,GACxB,GAAI0kE,EAAU,CAEZgyF,EAAKhyF,SAAW/hC,WAAW+hC,GAE3B,MAAMiK,GAAS,IAAM3uE,EAAO,IAAI+G,MAAM,GACtC2vJ,EAAK/nF,MAAQA,GAAS,KACtB+nF,EAAKlC,QAAQtvJ,KAAKypE,EAAQ,CAAC,MAAOjK,EAAUiK,GAAS,CAAC,MAAOjK,GAC/D,MAAO,GAAI1kE,EAAO,IAEhB,GAAI6wJ,EAAe6F,EAAKhyF,UAAW,CACjCgyF,EAAKp6G,MAAQ+7G,EACT3D,GACFqgB,GAAiBre,EAAMhC,EAAW9mF,GAEpC8oF,EAAKjC,GAAK+f,EACV9d,EAAK9oF,MAAQr9D,EACbmmJ,EAAK7B,GAAK6f,EACVpd,EAAUpyJ,KAAKwxJ,GAEf,MAAM7oH,GAAO,IAAM7tC,EAAO,IAAI+G,MAAM,GACpC2vJ,EAAK7C,OAASmX,GAAoBp9F,EAAO//B,GACzCmnI,GAAsBte,EAAMie,GAC5BA,EAAWje,EACX2B,GAAiB3B,EAAKhyF,SACtB8vG,IACAC,EAAc,EACdI,GAAiB,CACnB,OACK,GAAI70K,EAAO,GAAI,CAEpB,MAAMiN,GAAQ,IAAMjN,EAAO,IAAI+G,MAAM,GACjC4tK,EACFje,EAAK3C,aAAa9mJ,EAAM0nK,GAExBje,EAAK3C,aAAa9mJ,EAEtB,MAAO,GAAIjN,EAAO,GAGhB02J,EAAKpC,oBAAsB,IAAMt0J,EAAO,IAAI+G,MAAM,GAClD2vJ,EAAKlC,QAAQtvJ,KAAK,CAAC,oBAAqBwxJ,EAAKpC,sBACtB,IAAnBsgB,IACFA,EAAgBtd,EAAU9zJ,YAEvB,CAEL,GADAxD,EAASA,EAAO,GAAGgN,MAAMqkK,KACpBrxK,EAAQ,CACXmkF,EAAO/jD,KAAK,sDACZ,QACF,CACA,IAAKj5B,EAAI,EAAGA,EAAInH,EAAOwD,aACI,IAAdxD,EAAOmH,GADWA,KAO/B,MAAMtH,GAAO,IAAMG,EAAOmH,IAAIJ,MAAM,GAC9BkuK,GAAU,IAAMj1K,EAAOmH,EAAI,IAAIJ,MAAM,GACrCmuK,EAASl1K,EAAOmH,EAAI,IAAM,IAAMnH,EAAOmH,EAAI,IAAIJ,MAAM,GAAK,GAChE,OAAQlH,GACN,IAAK,gBACH+tE,EAAMhrE,KAAOqyK,EAAOl+H,cACpB,MACF,IAAK,iBACHy9H,EAAY5mG,EAAMsqF,QAAUjvH,SAASgsI,GACrC,MACF,IAAK,OACH,CACE,MAAME,EAAY,IAAI9jB,EAAS4jB,GAE7BnK,GAAgCl9F,EAAOunG,EAAW,CAAC,gCAErD,MAAMzc,EAAkByc,EAAU3jB,eAAe,oBACjD,GAAIX,EAAe6H,GAAkB,CACnC9qF,EAAM8qF,gBAAkBA,EAExB,IAAK,IAAIt+B,EAAKs+B,EAAiBt+B,KAC7Bk9B,EAAUziI,QAAQ,MAEpB2/I,GAAa9b,CACf,CACA,MAAMC,EAA4Bwc,EAAUnjB,iBAAiB,+BACzD2G,IACF/qF,EAAM+qF,0BAA4BA,EAA0Bl4J,MAAM,OAEpE,KACF,CACF,IAAK,iBACHmtE,EAAMwqF,eAAiB93J,KAAKmrB,IAAIwd,SAASgsI,GAAS,GAClD,MACF,IAAK,UACHrnG,EAAMzqD,QAAU8lB,SAASgsI,GACzB,MACF,IAAK,uBACL,IAAK,SACH,MACF,IAAK,UACHrnG,EAAM8pF,MAAO,EACb,MACF,IAAK,KACCud,GAAUC,IACZxe,EAAKlC,QAAQtvJ,KAAKgwK,EAAS,CAACD,EAAQC,GAAU,CAACD,IAEjD,MACF,IAAK,gBACHP,IACAhe,EAAKlC,QAAQtvJ,KAAK,CAAC,QACnB,MACF,IAAK,MACHwxJ,EAAK1kC,KAAM,EACX0kC,EAAKlC,QAAQtvJ,KAAK,CAACrF,IACnB,MACF,IAAK,UACH62J,EAAKlC,QAAQtvJ,KAAK,CAACrF,EAAKo1K,IACxB,MACF,IAAK,YACH,CACE,MAAM5iB,EAAgB,IAAIhB,EAAS4jB,GAEjCnK,GAAgCl9F,EAAOykF,EAAe,CAAC,KAAM,QAAS,aAAc,WAAY,aAAc,aAAc,cAC5HyY,GAAgCl9F,EAAOykF,EAAeA,EAAcd,aAEtE,MAAM6jB,EAAY,IAAIhjB,EAAUC,EAAezkF,EAAM6pF,WAAWpF,EAAcM,KAC1EyiB,EAAUtoI,SAAW8gC,EAAM8qF,gBAC7B9qF,EAAM6pF,WAAW2d,EAAU7kK,IAAM6kK,EAEjCjxF,EAAO/jD,KAAK,oCAAoC60I,MAGlDve,EAAKlC,QAAQtvJ,KAAK,CAAC,kBAAmB+vK,IACtC,KACF,CACF,IAAK,SAED,CACE,MAAMvC,EAAqB,IAAIrhB,EAAS4jB,GACxCnK,GAAgCl9F,EAAO8kG,EAAoB,CAAC,OAAQ,QAAS,SAAU,eACnF,WAAYA,EACdjH,GAAyB79F,EAAO8kG,EAAoB4B,GAEpDlJ,GAAsBx9F,EAAO8kG,EAAoBhf,EAErD,CACA,MAEJ,IAAK,yBACHghB,EAAuBzrI,SAASgsI,GAChC,MACF,IAAK,MACH,CACE,MAAMI,EAAW5C,GAASwC,EAAQvhB,EAAS9lF,GAC3C,GAAIynG,EAAS/L,cAAe,CAC1B,GAAwB,SAApB+L,EAASxkJ,OAAmB,CAC9B6jI,OAAYn1J,EACZ,KACF,CACKm1J,IACHA,EAAY,CAAC,GAEXA,EAAU2gB,EAASnf,aACrBxB,EAAY3lE,EAAS,CAAC,EAAG2lE,IAE3BA,EAAU2gB,EAASnf,WAAamf,CAClC,MACElxF,EAAO/jD,KAAK,2CAA2C60I,MAEzD,KACF,CACF,IAAK,QACHrnG,EAAMuqF,gBAAkB0a,GAAqBoC,GAC7C,MACF,IAAK,MACH,CACE,MAAMK,EAAW,IAAIjkB,EAAS4jB,GAI9B,GAFEnK,GAAgCl9F,EAAO0nG,EAAU,CAAC,YAAa,QAE7D5e,EAAKhyF,SAAU,CAIjB,MAAM/tC,EAAO,IAAIy9H,EAASxxJ,EAAM8wJ,GAChC6hB,GAAe5+I,EAAM2+I,EAAU/kK,EAAImkJ,GACnC6f,EAAqB59I,EACrB+/H,EAAKnB,YAAcgf,EACfA,EAAmBjgB,qBAAuBoC,EAAKpC,qBACjDoC,EAAKpC,mBAAqBigB,EAAmBjgB,mBAEjD,KAAO,CAGL,MAAMjkJ,EAAMqmJ,EAAKzC,mBACjB,GAAI5jJ,EAAK,CACP,MAAMisC,EAAQo6G,EAAKvC,qBACnB2gB,EAAgB,GAAGzkK,EAAMisC,KAASA,GACpC,MACEw4H,EAAgB,KAElBS,GAAe7e,EAAM4e,EAAU/kK,EAAImkJ,GACnC6f,EAAqB7d,EACrBme,GAAiB,CACnB,CACA,KACF,CACF,IAAK,iBACH,CACE,MAAMW,EAAqB,IAAInkB,EAAS4jB,GACxCrnG,EAAM2qF,eAAiBid,EAAmB14I,KAAK,oBAC/C8wC,EAAM4qF,aAAegd,EAAmBzjB,cAAc,iBAAkB,GACxEnkF,EAAM6qF,kBAAoB7qF,EAAM4qF,aAAe,GAAKgd,EAAmB14I,KAAK,uBAC5E8wC,EAAMgrF,aAAe4c,EAAmBzjB,cAAc,iBAAkB,GACxEnkF,EAAMirF,SAAW2c,EAAmBzjB,cAAc,YAAa,GAC/D,KACF,CACF,IAAK,WACH,CACE,MAAM0jB,EAAe,IAAIpkB,EAAS4jB,GAClCrnG,EAAMkrF,WAAa2c,EAAa3jB,qBAAqB,eACrD,KACF,CACF,IAAK,OACH,CACE,IAAI0F,EAAW5pF,EAAM4pF,SAChBA,IACHA,EAAW5pF,EAAM4pF,SAAW,IAE9B,MAAMke,EAAuBjB,EAAc,EAAIjd,EAASA,EAASh0J,OAAS,QAAKjE,EACzEuX,EAAQ29J,IACRhe,EAAY,IAAIpF,EAAS4jB,GAE7BnK,GAAgCl9F,EAAO6oF,EAAW,CAAC,YAAa,QAElE,MAAMjmH,EAAO,IAAIgmH,EAAKC,EAAWC,EAAMhD,EAAS58I,EAAO4+J,GACvDle,EAAStyJ,KAAKsrC,GACdkmH,EAAKhyF,UAAYl0B,EAAKk0B,SACtB,KACF,CACF,IAAK,eACH,CACE,MAAMixG,EAAmB,IAAItkB,EAAS4jB,GAEpCnK,GAAgCl9F,EAAO+nG,EAAkB,CAAC,QAE5D/nG,EAAMmrF,YAAc4c,EACpB,KACF,CACF,IAAK,mBACH,CACE,MAAMC,EAAuB,IAAIvkB,EAAS4jB,GAExCnK,GAAgCl9F,EAAOgoG,EAAsB,CAAC,QAEhEhoG,EAAMorF,iBAAmBprF,EAAMorF,kBAAoB,GACnDprF,EAAMorF,iBAAiB9zJ,KAAK0wK,GAC5B,KACF,CACF,QACEzxF,EAAO/jD,KAAK,gCAAgCpgC,KAGlD,CACF,CACI20K,IAAaA,EAAS9gB,QACxByD,EAAUthJ,MACVqiJ,GAAiBsc,EAASjwG,SACtBkJ,EAAM4pF,WACR5pF,EAAM2pF,aAAeod,IAEd/mG,EAAM4pF,WACfwd,GAAsBte,EAAMie,GAC5Bje,EAAK7B,GAAK6f,EACV9mG,EAAM2pF,aAAeb,EACjBhC,GACFqgB,GAAiBre,EAAMhC,EAAW9mF,IAGtC,MAAMioG,EAAiBve,EAAU9zJ,OAC3BsyK,EAAgBxe,EAAU,GAC1Bye,EAAeze,EAAUue,EAAiB,GAEhD,GADAxd,GAAiBzqF,EAAM8qF,gBAAkB9qF,EAAMwqF,eAC3CC,EAAgB,GAAKwd,GAAkBE,EAAc,CACvDnoG,EAAMupF,sBAAwBkB,EAAgBwd,EAC9C,MAAMG,EAASD,EAAathB,GAC5B7mF,EAAMypF,MAAmB,gBAAX2e,EAA2BA,EAAS,EAC7CpoG,EAAM8pF,OACTqe,EAAavgB,SAAU,GAErBsgB,IACFloG,EAAMqqF,QAAU6d,EAAcjhB,GAElC,MACEjnF,EAAMypF,MAAQ,EACdzpF,EAAMqqF,QAAU,EAoBlB,OAlBIrqF,EAAM2pF,eACRc,GAAiBzqF,EAAM2pF,aAAa7yF,UAEtCkJ,EAAMyqF,cAAgBA,EACtBzqF,EAAMwpF,MAAQsd,EAWVE,EAAgB,GAuDxB,SAAkCtd,EAAWsd,GAC3C,IAAIqB,EAAW3e,EAAUsd,GACzB,IAAK,IAAIztK,EAAIytK,EAAeztK,KAAM,CAChC,MAAMuvJ,EAAOY,EAAUnwJ,GAEvB,IAAKuvJ,EACH,OAEFA,EAAKnC,gBAAkB0hB,EAAS1hB,gBAAkC,IAAhBmC,EAAKhyF,SACvDuxG,EAAWvf,CACb,CACF,CAjEMwf,CAAyB5e,EAAWsd,GAE/BhnG,CACT,EAEF,SAAS6kG,GAAS0D,EAAkBziB,EAASx1F,GAC3C,IAAIk4G,EAAkBC,EAEtB,MAAMC,EAAW,IAAIjlB,EAAS8kB,GAE5BrL,GAAgC5sG,EAAQo4G,EAAU,CAAC,YAAa,oBAAqB,MAAO,KAAM,QAEpG,MAAMC,EAAwD,OAAvCH,EAAmBE,EAASE,QAAkBJ,EAAmB,GAClFK,EAAaH,EAASrC,IACtByC,EAAYJ,EAAS3kB,mBAAmB,MACxCglB,EAA2BL,EAASM,kBAEpCC,EAAiE,OAA7CR,EAAsBC,EAASQ,WAAqBT,EAAsB,WAChGI,GAAcH,EAASS,KAAOL,GAChCvyF,EAAOl8E,MAAM,eAAequK,EAASS,MAIvC,MAAMC,EAAcP,EAAanF,GAAW7sK,QAAQgyK,EAAY/iB,GAAW,GACrEyV,GAAqBwN,GAAsD,KAAKl2K,MAAM,KAAK2D,IAAI2S,QAAQZ,OAAOY,OAAOkhB,UAC3H,OAAO,IAAI8wI,GAASwN,EAAeS,EAAaH,EAAkB1N,EAAmBuN,EACvF,CACA,SAAS7D,GAAqBoE,GAC5B,MACM9e,EADa,IAAI9G,EAAS4lB,GACGnlB,qBAAqB,eACxD,OAAIjB,EAAesH,GACVA,EAEF,IACT,CACA,SAASga,GAAU+E,EAAsBtpG,GACvC,IAAIkiG,GAAUoH,GAAwB,IAAIz2K,MAAM,SAAS0V,QAAO2X,GAAKA,IACrE,CAAC,QAAS,QAAS,QAAQjsB,SAAQe,IACjC,MAAMu0K,EAAWrH,EAAO35J,QAAO0rJ,GA7qBnC,SAAqBA,EAAOj/J,GAC1B,MAAMw0K,EAAYnL,GAAoBrpK,GACtC,QAASw0K,KAAeA,EAAUvV,EAAM96J,MAAM,EAAG,GACnD,CA0qB4CswK,CAAYxV,EAAOj/J,KACvDu0K,EAAS3zK,SAEXoqE,EAAM,GAAGhrE,UAAeu0K,EAASz2K,KAAK,KAEtCovK,EAASA,EAAO35J,QAAO0rJ,IAAsC,IAA7BsV,EAAS31I,QAAQqgI,KACnD,IAEFj0F,EAAMykG,cAAgBvC,CACxB,CACA,SAASqE,GAAYN,EAAOyD,EAAWC,GACrC,MAAMC,EAAaF,EAAUC,GACzBC,IACF3D,EAAM0D,GAAiBC,EAE3B,CAaA,SAASxC,GAAsBte,EAAMie,GAC/Bje,EAAKpC,mBACPoC,EAAKnC,gBAAkBltI,KAAKue,MAAM8wH,EAAKpC,oBAClB,MAAZqgB,GAAoBA,EAASpgB,kBACtCmC,EAAKnC,gBAAkBogB,EAAS7e,oBAE7BjF,EAAe6F,EAAKnC,mBACvBmC,EAAKnC,gBAAkB,KACvBmC,EAAKpC,mBAAqB,KAE9B,CACA,SAASihB,GAAe7e,EAAM4e,EAAU/kK,EAAImkJ,GAC1CgC,EAAK7C,OAASyhB,EAASrB,IACnBqB,EAASmC,WACX/gB,EAAK3C,aAAauhB,EAASmC,WAE7B/gB,EAAK9oF,MAAQr9D,EACbmmJ,EAAKjC,GAAK,cACNC,IACFgC,EAAKhC,UAAYA,GAEnBgC,EAAKnB,YAAc,IACrB,CACA,SAASwf,GAAiBre,EAAMhC,EAAW9mF,GACzC8oF,EAAKhC,UAAYA,EACjB,MAAM,mBACJ6E,GACE3rF,EACE2rF,EAAmB/1J,QAAU+1J,EAAmBA,EAAmB/1J,OAAS,GAAGkxJ,YAAcA,IAAc11J,OAAOwK,KAAKkrJ,GAAWjvJ,MAAKiX,GAAUg4I,EAAUh4I,GAAQ0sJ,sBACvK7P,EAAmBr0J,KAAKwxJ,EAE5B,CAEA,IAAIghB,GACQ,WADRA,GAEK,QAFLA,GAGW,aAHXA,GAIc,gBAEdC,GACI,OADJA,GAEK,QAFLA,GAGQ,WAGZ,SAASC,GAAsBttK,GAC7B,MAAM,KACJ1H,GACE0H,EACJ,OAAQ1H,GACN,KAAK80K,GACH,OAAOC,GACT,KAAKD,GACH,OAAOC,GACT,QACE,OAAOA,GAEb,CACA,SAASE,GAAejuK,EAAUU,GAChC,IAAIuuC,EAAMjvC,EAASivC,IAOnB,YAJYt5C,IAARs5C,GAA8C,IAAzBA,EAAIrX,QAAQ,WAEnCqX,EAAMvuC,EAAQuuC,KAETA,CACT,CACA,MAAMi/H,GACJ,WAAA1pJ,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAK20K,QAAUh5K,OAAO+Q,OAAO,MAC7B1M,KAAKo2J,aAAe,KACpBp2J,KAAK00K,IAAMA,EACX10K,KAAK40K,mBACP,CACA,SAAAC,CAAUC,GAAgB,CAC1B,QAAAC,GACE/0K,KAAKg1K,wBACP,CACA,iBAAAJ,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MAClD00K,EAAI1yF,GAAGyrE,EAAO4nB,oBAAqBr1K,KAAKs1K,oBAAqBt1K,MAC7D00K,EAAI1yF,GAAGyrE,EAAO8nB,uBAAwBv1K,KAAKw1K,uBAAwBx1K,KACrE,CACA,mBAAAy1K,GACE,MAAM,IACJf,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MACnD00K,EAAI57E,IAAI20D,EAAO4nB,oBAAqBr1K,KAAKs1K,oBAAqBt1K,MAC9D00K,EAAI57E,IAAI20D,EAAO8nB,uBAAwBv1K,KAAKw1K,uBAAwBx1K,KACtE,CAKA,oBAAA01K,CAAqBzuK,GACnB,MAAMotD,EAASr0D,KAAK00K,IAAIrgH,OAClBshH,EAAUthH,EAAOuhH,QACjBC,EAASxhH,EAAOi9F,OAEhBA,EAAS,IADQqkB,GAAWE,GACAxhH,GAElC,OADAr0D,KAAK20K,QAAQ1tK,EAAQ1H,MAAQ+xJ,EACtBA,CACT,CACA,iBAAAwkB,CAAkB7uK,GAChB,OAAOjH,KAAK20K,QAAQ1tK,EAAQ1H,KAC9B,CACA,mBAAAw2K,CAAoB7pC,GACdlsI,KAAK20K,QAAQzoC,WACRlsI,KAAK20K,QAAQzoC,EAExB,CAKA,sBAAA8oC,GACE,IAAK,MAAM9oC,KAAelsI,KAAK20K,QAAS,CACtC,MAAMrjB,EAAStxJ,KAAK20K,QAAQzoC,GACxBolB,GACFA,EAAOr/E,UAETjyE,KAAK+1K,oBAAoB7pC,EAC3B,CACF,CACA,OAAAj6D,GACEjyE,KAAKo2J,aAAe,KACpBp2J,KAAKy1K,sBACLz1K,KAAKg1K,wBACP,CACA,iBAAAE,CAAkBlvH,EAAOp8C,GACvB,MAAM,IACJ4rC,GACE5rC,EACJ5J,KAAKo2J,aAAe,KACpBp2J,KAAKopF,KAAK,CACRl8E,GAAI,KACJq9D,MAAO,EACPyrG,aAAc,OACdz2K,KAAM80K,GACN7+H,MACAygI,mBAAoB,MAExB,CACA,cAAAb,CAAepvH,EAAOp8C,GACpB,MAAM,GACJsD,EAAE,MACFq9D,EAAK,UACLglG,EAAS,IACT/5H,EAAG,mBACHygI,GACErsK,EACJ5J,KAAKopF,KAAK,CACRl8E,KACAq9D,QACAglG,YACAyG,aAAc,OACdz2K,KAAM80K,GACN7+H,MACAygI,sBAEJ,CACA,mBAAAX,CAAoBtvH,EAAOp8C,GACzB,MAAM,GACJsD,EAAE,QACFujK,EAAO,IACPj7H,EAAG,mBACHygI,GACErsK,EACJ5J,KAAKopF,KAAK,CACRl8E,KACAujK,UACAlmG,MAAO,KACPyrG,aAAc,OACdz2K,KAAM80K,GACN7+H,MACAygI,sBAEJ,CACA,sBAAAT,CAAuBxvH,EAAOp8C,GAC5B,MAAM,GACJsD,EAAE,QACFujK,EAAO,IACPj7H,EAAG,mBACHygI,GACErsK,EACJ5J,KAAKopF,KAAK,CACRl8E,KACAujK,UACAlmG,MAAO,KACPyrG,aAAc,OACdz2K,KAAM80K,GACN7+H,MACAygI,sBAEJ,CACA,IAAA7sF,CAAKniF,GACH,IAAIivK,EACJ,MAAM7hH,EAASr0D,KAAK00K,IAAIrgH,OAKxB,IAcI8hH,EAdA7kB,EAAStxJ,KAAK81K,kBAAkB7uK,GACpC,GAAIqqJ,EAAQ,CACV,MAAM8kB,EAAgB9kB,EAAOrqJ,QAC7B,GAAImvK,GAAiBA,EAAc5gI,MAAQvuC,EAAQuuC,KAAO4gI,EAAc7rG,QAAUtjE,EAAQsjE,MAGxF,YADAuW,EAAOr1C,MAAM,+CAGfq1C,EAAO31C,IAAI,yDAAyDlkC,EAAQ1H,QAC5E+xJ,EAAO7oJ,OACT,CAiBA,GAXE0tK,EADElvK,EAAQ1H,OAAS80K,GACNhgH,EAAOgiH,mBAAmBh0J,QAE1BqpE,EAAS,CAAC,EAAGr3B,EAAOiiH,mBAAmBj0J,QAAS,CAC3Dk0J,aAAc,KACdC,WAAY,OAGhBllB,EAAStxJ,KAAK01K,qBAAqBzuK,GAI/BumJ,EAAuE,OAAvD0oB,EAAwBjvK,EAAQgvK,yBAA8B,EAASC,EAAsB/oI,MAAO,CACtH,IAAIspI,EAQJ,GAPIxvK,EAAQ1H,OAAS80K,IAA+C,OAAlBptK,EAAQsjE,MACxDksG,EAAez2K,KAAK00K,IAAInG,OAAOtnK,EAAQsjE,OAAO/zC,QACrCvvB,EAAQ1H,OAAS80K,IAAkD,OAAfptK,EAAQiG,GACrEupK,EAAez2K,KAAK00K,IAAIgC,YAAYzvK,EAAQiG,IAAIspB,QACvCvvB,EAAQ1H,OAAS80K,IAAqD,OAAfptK,EAAQiG,KACxEupK,EAAez2K,KAAK00K,IAAIiC,eAAe1vK,EAAQiG,IAAIspB,SAEjDigJ,EAAc,CAChB,MAAMhhB,EAAaghB,EAAahhB,WAC1BmhB,EAAiBH,EAAa1hB,eACpC,GAAIU,GAAcmhB,EAAgB,CAChC,MAAMC,EAAgF,IAAjD55K,KAAKmrB,IAAiB,EAAbqtI,EAAiC,GAAjBmhB,GAC9DT,EAAazqF,EAAS,CAAC,EAAGyqF,EAAY,CACpCW,qBAAsB75K,KAAK6+B,IAAI+6I,EAA8BV,EAAWW,sBACxEC,cAAe95K,KAAK6+B,IAAI+6I,EAA8BV,EAAWW,uBAErE,CACF,CACF,CACA,MAAME,EAA2Bb,EAAWK,YAAcL,EAAWI,cAAgB,CAAC,EAChFU,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAUF,EAAyBG,aAAe,EAClDC,WAAYJ,EAAyBK,cAAgB,EACrDC,cAAeN,EAAyBO,iBAAmB,GAEvDC,EAAkB,CACtB3uB,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpC,MAAMnmB,EAAStxJ,KAAK81K,kBAAkB7uK,GACtCjH,KAAK+1K,oBAAoB9uK,EAAQ1H,MACjC,MAAMkD,EAAS8D,EAASqD,KAGU,IAA9BnH,EAAO07B,QAAQ,YAInB6zH,EAAM/B,QAAQh3G,MAAQhhC,YAAYgM,MAC9BgqJ,GAAWG,gBAAgB3rK,GAC7BzC,KAAK03K,2BAA2BnxK,EAAUyrJ,EAAO/qJ,EAASwwK,GAAkB,KAAMnmB,GAElFtxJ,KAAK23K,qBAAqBpxK,EAAUyrJ,EAAO/qJ,EAASwwK,IAPpDz3K,KAAK43K,2BAA2BrxK,EAAUU,EAAS,IAAInJ,MAAM,uBAAwB25K,GAAkB,KAAMzlB,EAQ/G,EAEF/kJ,QAAS,CAAC1G,EAAUU,EAASwwK,EAAgBzlB,KAC3ChyJ,KAAK63K,mBAAmB5wK,EAASwwK,GAAgB,EAAOlxK,EAAUyrJ,EAAM,EAE1E8lB,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bz3K,KAAK63K,mBAAmB5wK,EAASwwK,GAAgB,OAAMv7K,EAAW81J,EAAM,GAM5EV,EAAOloE,KAAKniF,EAASgwK,EAAcO,EACrC,CACA,oBAAAG,CAAqBpxK,EAAUyrJ,EAAO/qJ,EAASwwK,GAC7C,MAAM/C,EAAM10K,KAAK00K,IACXjyK,EAAS8D,EAASqD,KAClB4rC,EAAMg/H,GAAejuK,EAAUU,GAC/B8wK,EAAe9J,GAAWI,oBAAoB5rK,EAAQ+yC,GAC5D,GAAIuiI,EAAa5hB,qBAEf,YADAn2J,KAAK43K,2BAA2BrxK,EAAUU,EAAS8wK,EAAa5hB,qBAAsBshB,EAAgBzlB,GAGxG,MAAM,gBACJsc,EAAe,OACfC,EAAM,YACNC,EAAW,YACXC,EAAW,gBACX3Z,EAAe,aACfsB,GACE2hB,EACJ/3K,KAAKo2J,aAAeA,EACpB,MACEwZ,MAAO8G,EAAc,GACrB5G,UAAWkI,EACX,kBAAmBC,GACjBhK,GAAWyB,yBAAyBjtK,EAAQ+yC,EAAKuiI,GACjDrB,EAAYv2K,SAEau2K,EAAYt0K,MAAK81K,IAAeA,EAAW1iI,QAM3C+4H,EAAO,GAAGsB,YAAetB,EAAO,GAAGz7B,MAAM88B,QAClE9uF,EAAO31C,IAAI,8GACXurI,EAAYllJ,QAAQ,CAClBjyB,KAAM,OACN6I,KAAM,OACNqoK,QAAS,OACTpuJ,SAAS,EACTquJ,YAAY,EACZC,QAAQ,EACRzjK,IAAK,EACL4lI,MAAO,IAAIkb,EAAS,CAAC,GACrB4gB,QAAS,EACTp5H,IAAK,OAIXk/H,EAAIrrE,QAAQokD,EAAO0qB,gBAAiB,CAClC5J,SACAmI,cACAsB,YACAC,WACA3J,kBACA94H,MACAw8G,QACAylB,iBACAjJ,cACAC,cACA3Z,kBACAsB,gBAEJ,CACA,0BAAAshB,CAA2BnxK,EAAUyrJ,EAAO/qJ,EAASwwK,EAAgBnmB,GACnE,MAAMojB,EAAM10K,KAAK00K,KACX,GACJxnK,EAAE,MACFq9D,EAAK,KACLhrE,GACE0H,EACEuuC,EAAMg/H,GAAejuK,EAAUU,GAE/BmxK,EAAU5qB,EAAejjF,GAASA,EAAQijF,EAAetgJ,GAAMA,EAAK,EACpEmrK,EAAY9D,GAAsBttK,GAClCwvK,EAAexI,GAAW8C,mBAAmBxqK,EAASqD,KAAM4rC,EAAK4iI,EAASC,EAH7D,EAGoFr4K,KAAKo2J,cAM5G,GAAI72J,IAAS80K,GAA8B,CACzC,MAAMiE,EAAc,CAClBxlC,MAAO,IAAIkb,EAAS,CAAC,GACrB4gB,QAAS,EACTp4I,QAASigJ,EACTruK,KAAM,GACNotC,OAEFk/H,EAAIrrE,QAAQokD,EAAO0qB,gBAAiB,CAClC5J,OAAQ,CAAC+J,GACT5B,YAAa,GACblhI,MACAw8G,QACAylB,iBACAjJ,YAAa,KACbC,YAAa,KACbH,gBAAiB,KACjBxZ,gBAAiB,KACjBsB,aAAc,MAElB,CAGApE,EAAM/B,QAAQjjJ,IAAMiL,YAAYgM,MAGhChd,EAAQwvK,aAAeA,EACvBz2K,KAAKu4K,qBAAqB9B,EAAclwK,EAAUyrJ,EAAO/qJ,EAASwwK,EAAgBnmB,EACpF,CACA,0BAAAsmB,CAA2BrxK,EAAUU,EAASrC,EAAO6yK,EAAgBzlB,GACnEhyJ,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa+qB,uBACtBC,MAAO1xK,EAAQ1H,OAAS80K,GACxB7+H,IAAKjvC,EAASivC,IACd7vC,IAAKf,EACLA,QACAikC,OAAQjkC,EAAM+Y,QACdpX,WACAU,UACAwwK,iBACAzlB,SAEJ,CACA,kBAAA6lB,CAAmB5wK,EAASwwK,EAAgB55G,GAAU,EAAOt3D,EAAUyrJ,GACrE,IAAIr0I,EAAU,aAAakgD,EAAU,UAAY,SAAWt3D,EAAW,YAAcA,EAAS1J,KAAO,IAAM,8BAA8BoK,EAAQ1H,OAC7I0H,EAAQ1H,OAAS80K,GACnB12J,GAAW,KAAK1W,EAAQsjE,aAAatjE,EAAQiG,KACpCjG,EAAQ1H,OAAS80K,IAAmCptK,EAAQ1H,OAAS80K,KAC9E12J,GAAW,QAAQ1W,EAAQiG,iBAAiBjG,EAAQwpK,YAEtD,MAAM7rK,EAAQ,IAAI9G,MAAM6f,GACxBmjE,EAAO/jD,KAAK,sBAAsBpf,KAClC,IAAI6Y,EAAUm3H,EAAairB,QACvBD,GAAQ,EACZ,MAAMrnB,EAAStxJ,KAAK81K,kBAAkB7uK,GACtC,OAAQA,EAAQ1H,MACd,KAAK80K,GACH79I,EAAUqnC,EAAU8vF,EAAakrB,sBAAwBlrB,EAAamrB,oBACtEH,GAAQ,EACR,MACF,KAAKtE,GACH79I,EAAUqnC,EAAU8vF,EAAaorB,mBAAqBprB,EAAaqrB,iBACnEL,GAAQ,EACR,MACF,KAAKtE,GACH79I,EAAUqnC,EAAU8vF,EAAasrB,yBAA2BtrB,EAAaurB,uBACzEP,GAAQ,EACR,MACF,KAAKtE,GACH79I,EAAUqnC,EAAU8vF,EAAawrB,4BAA8BxrB,EAAayrB,oBAC5ET,GAAQ,EAGRrnB,GACFtxJ,KAAK+1K,oBAAoB9uK,EAAQ1H,MAEnC,MAAMgxF,EAAY,CAChBhxF,KAAMmuJ,EAAW+qB,cACjBjiJ,UACAmiJ,QACAnjI,IAAKvuC,EAAQuuC,IACb87G,SACArqJ,UACArC,QACA6yK,iBACAzlB,SAEF,GAAIzrJ,EAAU,CACZ,MAAMivC,GAAyB,MAAlBiiI,OAAyB,EAASA,EAAejiI,MAAQvuC,EAAQuuC,IAC9E+6C,EAAUhqF,SAAW8mJ,EAAe,CAClC73G,MACA5rC,UAAM1N,GACLqK,EACL,CACAvG,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAOjoF,EACjC,CACA,oBAAAgoF,CAAqB9B,EAAclwK,EAAUyrJ,EAAO/qJ,EAASwwK,EAAgBnmB,GAC3E,MAAMojB,EAAM10K,KAAK00K,KACX,KACJn1K,EAAI,MACJgrE,EAAK,GACLr9D,EAAE,QACFujK,EAAO,mBACPwF,GACEhvK,EACEuuC,EAAMg/H,GAAejuK,EAAUU,GAC/BW,EAAS2sK,GAAsBttK,GAC/BoyK,EAAsC,iBAAlBpyK,EAAQsjE,OAAsB3iE,IAAW0sK,GAAyB/pG,OAAQruE,EACpG,IAAKu6K,EAAaxiB,UAAU9zJ,OAAQ,CAClC,MAAMm5K,EAAS,IAAIx7K,MAAM,iCAezB,YAdA42K,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa4rB,kBACtBZ,OAAO,EACPnjI,MACA5wC,MAAO00K,EACPzwI,OAAQywI,EAAO37J,QACfpX,WACAU,UACAsjE,MAAO8uG,EACPzxK,SACA6vK,iBACAzlB,SAGJ,CACKykB,EAAa1hB,iBAChB0hB,EAAatgB,qBAAuB,IAAIr4J,MAAM,4BAEhD,MAAM8G,EAAQ6xK,EAAatgB,qBAC3B,GAAIvxJ,EACF8vK,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa6rB,oBACtBb,OAAO,EACPnjI,MACA5wC,QACAikC,OAAQjkC,EAAM+Y,QACdpX,WACAU,UACAsjE,MAAO8uG,EACPzxK,SACA6vK,iBACAzlB,eAYJ,OARIykB,EAAapiB,MAAQ/C,IACnBA,EAAOmoB,cACThD,EAAaniB,UAAYhD,EAAOmoB,eAAiB,GAE9CnoB,EAAOmoB,cAAe7iJ,MAAM6/I,EAAaniB,aAC5CmiB,EAAaniB,UAAY,IAGrB/0J,GACN,KAAK80K,GACL,KAAKA,GACHK,EAAIrrE,QAAQokD,EAAOisB,aAAc,CAC/BljJ,QAASigJ,EACTlsG,MAAO8uG,GAAc,EACrBnsK,GAAIA,GAAM,EACV8kJ,QACAylB,iBACAxB,uBAEF,MACF,KAAK5B,GACHK,EAAIrrE,QAAQokD,EAAOksB,mBAAoB,CACrCnjJ,QAASigJ,EACTvpK,GAAIA,GAAM,EACVujK,QAASA,GAAW,GACpBze,QACAylB,iBACAxB,uBAEF,MACF,KAAK5B,GACHK,EAAIrrE,QAAQokD,EAAOmsB,sBAAuB,CACxCpjJ,QAASigJ,EACTvpK,GAAIA,GAAM,EACVujK,QAASA,GAAW,GACpBze,QACAylB,iBACAxB,uBAIR,EAGF,SAAS4D,GAAkB1b,EAAO2b,GAChC,IAAI9zH,EACJ,IACEA,EAAQ,IAAI+zH,MAAM,WACpB,CAAE,MAAOp0K,GAEPqgD,EAAQ7S,SAAS6mI,YAAY,SAC7Bh0H,EAAMi0H,UAAU,YAAY,GAAO,EACrC,CACAj0H,EAAMm4G,MAAQA,EACd2b,EAAQn/E,cAAc30C,EACxB,CACA,SAASk0H,GAAc/b,EAAOgc,GAI5B,MAAM3vG,EAAO2zF,EAAM3zF,KAInB,GAHa,aAATA,IACF2zF,EAAM3zF,KAAO,UAEX2zF,EAAMic,OAASjc,EAAMic,KAAKC,WAAWF,EAAIjtK,IAC3C,IAEE,GADAixJ,EAAMmc,OAAOH,IACRhc,EAAMic,KAAKC,WAAWF,EAAIjtK,IAC7B,MAAM,IAAIpP,MAAM,yBAAyBq8K,IAE7C,CAAE,MAAOx0K,GACPm7E,EAAO1yD,MAAM,sBAAsBzoB,KACnC,IACE,MAAM40K,EAAe,IAAIjwJ,KAAKkwJ,aAAaL,EAAIj7J,UAAWi7J,EAAIv1G,QAASu1G,EAAI1jI,MAC3E8jI,EAAartK,GAAKitK,EAAIjtK,GACtBixJ,EAAMmc,OAAOC,EACf,CAAE,MAAOE,GACP35F,EAAO1yD,MAAM,2DAA2DqsJ,IAC1E,CACF,CAEW,aAATjwG,IACF2zF,EAAM3zF,KAAOA,EAEjB,CACA,SAASkwG,GAAiBvc,GAIxB,MAAM3zF,EAAO2zF,EAAM3zF,KAInB,GAHa,aAATA,IACF2zF,EAAM3zF,KAAO,UAEX2zF,EAAMic,KACR,IAAK,IAAIt2K,EAAIq6J,EAAMic,KAAKj6K,OAAQ2D,KAC9Bq6J,EAAMwc,UAAUxc,EAAMic,KAAKt2K,IAGlB,aAAT0mE,IACF2zF,EAAM3zF,KAAOA,EAEjB,CACA,SAASowG,GAAkBzc,EAAOllH,EAAOjsC,EAAKzK,GAC5C,MAAMioE,EAAO2zF,EAAM3zF,KAInB,GAHa,aAATA,IACF2zF,EAAM3zF,KAAO,UAEX2zF,EAAMic,MAAQjc,EAAMic,KAAKj6K,OAAS,EAAG,CACvC,MAAMi6K,EAyCV,SAAwBA,EAAMnhI,EAAOjsC,GACnC,MAAM6tK,EAAY,GACZC,EA7BR,SAAmCV,EAAM38I,GAEvC,GAAIA,EAAO28I,EAAK,GAAGl7J,UACjB,OAAO,EAGT,MAAMnb,EAAMq2K,EAAKj6K,OAAS,EAC1B,GAAIs9B,EAAO28I,EAAKr2K,GAAK6gE,QACnB,OAAQ,EAEV,IAAI61D,EAAO,EACPC,EAAQ32H,EACZ,KAAO02H,GAAQC,GAAO,CACpB,MAAMh0C,EAAMzpF,KAAK6lD,OAAO43E,EAAQD,GAAQ,GACxC,GAAIh9F,EAAO28I,EAAK1zF,GAAKxnE,UACnBw7G,EAAQh0C,EAAM,MACT,MAAIjpD,EAAO28I,EAAK1zF,GAAKxnE,WAAau7G,EAAO12H,GAI9C,OAAO2iF,EAHP+zC,EAAO/zC,EAAM,CAIf,CACF,CAGA,OAAO0zF,EAAK3/C,GAAMv7G,UAAYue,EAAOA,EAAO28I,EAAK1/C,GAAOx7G,UAAYu7G,EAAOC,CAC7E,CAG0BqgD,CAA0BX,EAAMnhI,GACxD,GAAI6hI,GAAmB,EACrB,IAAK,IAAIh3K,EAAIg3K,EAAiB/2K,EAAMq2K,EAAKj6K,OAAQ2D,EAAIC,EAAKD,IAAK,CAC7D,MAAMq2K,EAAMC,EAAKt2K,GACjB,GAAIq2K,EAAIj7J,WAAa+5B,GAASkhI,EAAIv1G,SAAW53D,EAC3C6tK,EAAUh5K,KAAKs4K,QACV,GAAIA,EAAIj7J,UAAYlS,EACzB,OAAO6tK,CAEX,CAEF,OAAOA,CACT,CAvDiBG,CAAe7c,EAAMic,KAAMnhI,EAAOjsC,GAC/C,IAAK,IAAIlJ,EAAI,EAAGA,EAAIs2K,EAAKj6K,OAAQ2D,IAC1BvB,IAAaA,EAAU63K,EAAKt2K,KAC/Bq6J,EAAMwc,UAAUP,EAAKt2K,GAG3B,CACa,aAAT0mE,IACF2zF,EAAM3zF,KAAOA,EAEjB,CA8CA,SAASywG,GAAqBC,GAC5B,MAAMC,EAAS,GACf,IAAK,IAAIr3K,EAAI,EAAGA,EAAIo3K,EAAc/6K,OAAQ2D,IAAK,CAC7C,MAAMq6J,EAAQ+c,EAAcp3K,GAER,cAAfq6J,EAAMid,MAAuC,aAAfjd,EAAMid,OAAwBjd,EAAM3wJ,OACrE2tK,EAAOt5K,KAAKq5K,EAAcp3K,GAE9B,CACA,OAAOq3K,CACT,CAEA,IAAIE,GACQ,UADRA,GAGI,+BAIR,SAASC,KACP,GAAoB,oBAAThxJ,KACX,OAAOA,KAAKixJ,QAAUjxJ,KAAKkwJ,YAC7B,CACA,SAASgB,GAAwBC,EAAKv8J,EAAW0lD,EAASh7D,EAAMrK,GAC9D,IAAI46K,EAAM,IAAIsB,EAAIv8J,EAAW0lD,EAAS,IACtC,IACEu1G,EAAI99K,MAAQuN,EACRrK,IACF46K,EAAI56K,KAAOA,EAEf,CAAE,MAAO7C,GACPy9K,EAAM,IAAIsB,EAAIv8J,EAAW0lD,EAAS7lC,KAAKL,UAAUn/B,EAAO8tJ,EAAe,CACrE9tJ,QACCqK,GAAQA,GACb,CACA,OAAOuwK,CACT,CAIA,MAAMuB,GAAkB,MACtB,MAAMD,EAAMH,KACZ,IACEG,GAAO,IAAIA,EAAI,EAAG/nK,OAAOioK,kBAAmB,GAC9C,CAAE,MAAOj/K,GACP,OAAOgX,OAAOkoK,SAChB,CACA,OAAOloK,OAAOioK,iBACf,EARuB,GASxB,SAASE,GAA+BnkJ,EAAMw3B,GAC5C,OAAOx3B,EAAK6H,UAAY,IAAO2vB,CACjC,CAIA,MAAM4sH,GACJ,WAAA/wJ,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAK+7K,SAAW,KAChB/7K,KAAKwwK,MAAQ,KACbxwK,KAAKg8K,sBAAwB,CAAC,EAC9Bh8K,KAAK00K,IAAMA,EACX10K,KAAKi8K,oBACP,CACA,OAAAhqG,GACEjyE,KAAKk8K,uBACLl8K,KAAK+7K,SAAW,KAChB/7K,KAAKwwK,MAAQ,KACbxwK,KAAKg8K,sBAAwB,CAAC,EAE9Bh8K,KAAK00K,IAAM,IACb,CACA,kBAAAuH,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAO8uB,sBAAuBv8K,KAAKw8K,sBAAuBx8K,MACjE00K,EAAI1yF,GAAGyrE,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACtD00K,EAAI1yF,GAAGyrE,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,KACpD,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAO8uB,sBAAuBv8K,KAAKw8K,sBAAuBx8K,MAClE00K,EAAI57E,IAAI20D,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACvD00K,EAAI57E,IAAI20D,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,KACrD,CAGA,eAAAo8K,CAAgBp2H,EAAOp8C,GACrB5J,KAAKwwK,MAAQ5mK,EAAK4mK,KACpB,CACA,gBAAA8L,GACOt8K,KAAK+7K,WAGVrB,GAAiB16K,KAAK+7K,UACtB/7K,KAAK+7K,SAAW,KAChB/7K,KAAKwwK,MAAQ,KACbxwK,KAAKg8K,sBAAwB,CAAC,EAChC,CACA,iBAAA9G,GACEl1K,KAAKg8K,sBAAwB,CAAC,CAChC,CACA,WAAAa,CAAYrM,GACV,MAAMrS,EAAQn+J,KAAK88K,YAAYtM,EAAMuM,YAErC,OADA5e,EAAM3zF,KAAO,SACN2zF,CACT,CACA,WAAA2e,CAAYC,GACV,GAAK/8K,KAAKwwK,MAAV,CAGA,IAAK,IAAI1sK,EAAI,EAAGA,EAAIi5K,EAAW58K,OAAQ2D,IAAK,CAC1C,MAAMk5K,EAAYD,EAAWj5K,GAC7B,GAAuB,aAAnBk5K,EAAU5B,MAA2C,QAApB4B,EAAUxvK,MAI7C,OADAqsK,GAAkBmD,EAAWh9K,KAAKwwK,OAC3BwM,CAEX,CACA,OAAOh9K,KAAKwwK,MAAMyM,aAAa,WAAY,MAV3C,CAWF,CACA,qBAAAT,CAAsBx2H,EAAOp8C,GAC3B,IAAK5J,KAAKwwK,MACR,OAEF,MACEkE,KACErgH,QAAQ,uBACN6oH,EAAsB,sBACtBC,KAGFn9K,KACJ,IAAKk9K,IAA2BC,EAC9B,OAEF,MAAM,QACJxb,GACE/3J,EAGC5J,KAAK+7K,WACR/7K,KAAK+7K,SAAW/7K,KAAK68K,YAAY78K,KAAKwwK,QAExC,MAAMiL,EAAMH,KACZ,GAAKG,EAGL,IAAK,IAAI33K,EAAI,EAAGA,EAAI69J,EAAQxhK,OAAQ2D,IAAK,CACvC,MAAMvE,EAAOoiK,EAAQ79J,GAAGvE,KACxB,GAAIA,IAAS87K,KAAwB6B,IAA2BC,EAC9D,SAEF,MAAM9iB,EAASC,GAAaqH,EAAQ79J,GAAG8F,MACvC,GAAIywJ,EAAQ,CACV,MAAMn7I,EAAYyiJ,EAAQ79J,GAAGmgK,IAC7B,IAAIr/F,EAAU1lD,EAAYyiJ,EAAQ79J,GAAGu9D,SACjCuD,EAAU82G,KACZ92G,EAAU82G,IAEK92G,EAAU1lD,GACX,IACd0lD,EAAU1lD,EA1JK,KA4JjB,IAAK,IAAIkyB,EAAI,EAAGA,EAAIipH,EAAOl6J,OAAQixC,IAAK,CACtC,MAAMrmC,EAAQsvJ,EAAOjpH,GAErB,IAAKmpH,GAAiBxvJ,GAAQ,CAE5B/K,KAAKo9K,iBAAiBl+J,EAAW3f,GACjC,MAAM46K,EAAMqB,GAAwBC,EAAKv8J,EAAW0lD,EAAS75D,EAAOxL,GAChE46K,GACFn6K,KAAK+7K,SAASzB,OAAOH,EAEzB,CACF,CACF,CACF,CACF,CACA,gBAAAiD,CAAiBl+J,EAAW3f,GAC1B,IAAI89K,EACJ,MAAMjD,EAA2C,OAAnCiD,EAAiBr9K,KAAK+7K,eAAoB,EAASsB,EAAejD,KAChF,GAAIA,EACF,IAAK,IAAIt2K,EAAIs2K,EAAKj6K,OAAQ2D,KAAM,CAC9B,MAAMq2K,EAAMC,EAAKt2K,GACbq2K,EAAI56K,OAASA,GAAQ46K,EAAIj7J,UAAYA,GAAai7J,EAAIv1G,UAAY82G,KACpEvB,EAAIv1G,QAAU1lD,EAElB,CAEJ,CACA,gBAAAw9J,CAAiB12H,GAAO,YACtBs3H,EAAW,UACXC,EAAS,KACTh+K,IAEA,MAAM,SACJw8K,EAAQ,IACRrH,GACE10K,KACJ,IAAK00K,EACH,OAEF,MACErgH,QAAQ,uBACN6oH,EAAsB,sBACtBC,IAEAzI,EACJ,GAAIqH,IAAamB,GAA0BC,GAAwB,CACjE,IAAI56K,EAEFA,EADW,UAAThD,EACU46K,GAAOA,EAAI56K,OAAS87K,IAA2B8B,EACzC,UAAT59K,EACG46K,GAAOA,EAAI56K,OAAS87K,IAAuB6B,EAE3C/C,GAAOA,EAAI56K,OAAS87K,IAA2B8B,GAAyBhD,EAAI56K,OAAS87K,IAAuB6B,EAE1HtC,GAAkBmB,EAAUuB,EAAaC,EAAWh7K,EACtD,CACF,CACA,cAAAq6K,CAAe52H,GAAO,QACpBxvB,IAEA,IAAKx2B,KAAKwwK,QAAUh6I,EAAQmgI,qBAAuB32J,KAAK00K,IAAIrgH,OAAOmpH,4BACjE,OAEF,MAAM,sBACJxB,EAAqB,SACrBD,GACE/7K,MACE,WACJo0J,GACE59H,EACEinJ,EAAM9hL,OAAOwK,KAAKiuJ,GAExB,GAAI2nB,EAAU,CACZ,MAAM2B,EAAc/hL,OAAOwK,KAAK61K,GAAuBlpK,QAAO5F,IAAOuwK,EAAIlnK,SAASrJ,KAClF,IAAK,IAAIpJ,EAAI45K,EAAYv9K,OAAQ2D,KAAM,CACrC,MAAMoJ,EAAKwwK,EAAY55K,GACvBnI,OAAOwK,KAAK61K,EAAsB9uK,GAAIktK,MAAM57K,SAAQE,IAClDq9K,EAASpB,UAAUqB,EAAsB9uK,GAAIktK,KAAK17K,GAAK,WAElDs9K,EAAsB9uK,EAC/B,CACF,CAEA,MAAMwlK,EAAel8I,EAAQy9H,UAAUz9H,EAAQy9H,UAAU9zJ,OAAS,GAClE,GAAmB,IAAfs9K,EAAIt9K,SAAiBqtJ,EAA+B,MAAhBklB,OAAuB,EAASA,EAAaxhB,iBACnF,OAEGlxJ,KAAK+7K,WACR/7K,KAAK+7K,SAAW/7K,KAAK68K,YAAY78K,KAAKwwK,QAExC,MAAMmN,EAAiBjL,EAAaxhB,gBAAkB,IAAOwhB,EAAaz5H,MACpEwiI,EAAMH,KACZ,IAAK,IAAIx3K,EAAI,EAAGA,EAAI25K,EAAIt9K,OAAQ2D,IAAK,CACnC,MAAMoJ,EAAKuwK,EAAI35K,GACTiuK,EAAY3d,EAAWlnJ,GACvBgS,EAAY28J,GAA+B9J,EAAU9wG,UAAW08G,GAGhEC,EAAwB5B,EAAsB9uK,GAC9CktK,GAAiC,MAAzBwD,OAAgC,EAASA,EAAsBxD,OAAS,CAAC,EACvF,IAAIyD,GAA0C,MAAzBD,OAAgC,EAASA,EAAsBC,iBAAkB,EAClGj5G,EAAU82G,GACd,MAAMx6G,EAAU6wG,EAAU7wG,QAC1B,GAAIA,EACF0D,EAAUi3G,GAA+B36G,EAASy8G,GAClDE,GAAgB,OACX,GAAI9L,EAAUtiB,YAAcouB,EAAe,CAChD,MAAMC,EAA6BL,EAAIp9K,QAAO,CAAC09K,EAAoB7wK,KACjE,GAAIA,IAAO6kK,EAAU7kK,GAAI,CACvB,MAAM8wK,EAAiB5pB,EAAWlnJ,GAClC,GAAI8wK,EAAep7I,QAAUmvI,EAAUnvI,OAASo7I,EAAe/8G,UAAY8wG,EAAU9wG,aAAe88G,GAAsBhM,EAAU9wG,UAAY88G,EAAmB98G,WACjK,OAAO+8G,CAEX,CACA,OAAOD,CAAkB,GACxB,MACCD,IACFl5G,EAAUi3G,GAA+BiC,EAA2B78G,UAAW08G,GAC/EE,GAAgB,EAEpB,CAIA,MAAMt+J,EAAa5jB,OAAOwK,KAAK4rK,EAAUryD,MACzC,IAAK,IAAItuE,EAAI,EAAGA,EAAI7xB,EAAWpf,OAAQixC,IAAK,CAC1C,MAAM1yC,EAAM6gB,EAAW6xB,GACvB,GAlnIc,QADWg9G,EAmnII1vJ,IAlnIM,UAAb0vJ,GAAqC,eAAbA,GAA0C,aAAbA,GAAwC,aAAbA,GAAwC,gBAAbA,EAmnI/H,SAEF,MAAM+rB,EAAMC,EAAK17K,GACjB,GAAIy7K,EACE0D,IAAkBD,EAAsBC,gBAC1C1D,EAAIv1G,QAAUA,QAEX,GAAI62G,EAAK,CACd,IAAI7xK,EAAOmoK,EAAUryD,KAAKhhH,GACtBowJ,EAAkBpwJ,KAnQNy6C,EAoQUvvC,EAAxBA,EAnQH4rG,WAAW18E,KAAKqgB,EAAIlhB,QAAQ,MAAO,IAAIA,QAAQ,qBAAsB,SAASA,QAAQ,MAAO,IAAI76B,MAAM,MAAMsM,QAqQ5G,MAAMu0K,EAAOzC,GAAwBC,EAAKv8J,EAAW0lD,EAAS,CAC5DlmE,MACAkL,QA9SC,2BAgTCq0K,IACFA,EAAK/wK,GAAKA,EACVlN,KAAK+7K,SAASzB,OAAO2D,GACrB7D,EAAK17K,GAAOu/K,EAEhB,CACF,CAGAjC,EAAsB9uK,GAAM,CAC1BktK,OACArI,YACA8L,gBAEJ,CAxRJ,IAA0B1kI,EA13HOi1G,CAmpI/B,EAGF,MAAM8vB,GACJ,WAAAnzJ,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKq0D,YAAS,EACdr0D,KAAKwwK,MAAQ,KACbxwK,KAAKy2K,aAAe,KACpBz2K,KAAK6tH,YAAc,EACnB7tH,KAAKm+K,WAAa,EAClBn+K,KAAKo+K,SAAW,KAChBp+K,KAAKq+K,kBAAoB,IAAMr+K,KAAKs+K,aACpCt+K,KAAK00K,IAAMA,EACX10K,KAAKq0D,OAASqgH,EAAIrgH,OAClBr0D,KAAK40K,mBACP,CACA,WAAI2J,GACF,OAAOv+K,KAAKo+K,UAAY,CAC1B,CACA,cAAII,GACF,MAAM,OACJnqH,EAAM,aACNoiH,GACEz2K,KACJ,YAAsC9D,IAAlCm4D,EAAOoqH,uBACFpqH,EAAOoqH,uBAEThI,EAAepiH,EAAOqqH,4BAA8BjI,EAAa1hB,eAAiB,CAC3F,CACA,iBAAI4pB,GACF,MAAM,aACJlI,GACEz2K,KACJ,GAAqB,OAAjBy2K,EACF,OAAO,KAET,MAAM,SACJjhB,EAAQ,aACRD,EAAY,eACZR,GACE0hB,GACE,iBACJmI,EAAgB,sBAChBC,EAAqB,eACrBC,GACE9+K,KAAKq0D,OACH0qH,EAAa/+K,KAAK00K,IAAIqK,WAC5B,IAAIJ,EAAgBG,GAAiBvpB,GAA2BC,GAC5DupB,EAAWH,kBAAoBG,EAAWF,uBAA2C,IAAlBF,KACrEA,OAAqCziL,IAArB0iL,EAAiCA,EAAmBC,EAAwB9pB,GAE9F,MAAMiqB,EAA6BjqB,EAEnC,OAAO4pB,EAAgB1hL,KAAK6+B,IADI,EACA97B,KAAKm+K,WAAsCa,EAC7E,CACA,oBAAIC,GACF,MAAMC,EAAWl/K,KAAKm/K,mBAChBR,EAAgB3+K,KAAK2+K,cACrBlI,EAAez2K,KAAKy2K,aAC1B,GAAiB,OAAbyI,GAAuC,OAAlBP,GAA2C,OAAjBlI,EACjD,OAAO,KAET,MAAM1f,EAAO0f,EAAa1f,KACpBqoB,EAAeF,EAAWP,EAAgB3+K,KAAKq/K,YAC/CvjJ,EAAMi7H,EAAO0f,EAAazhB,cAC1B5sI,EAAM2uI,GAAQ/2J,KAAKq0D,OAAOyqH,gBAAkBrI,EAAahhB,YAAcghB,EAAa1hB,gBAC1F,OAAO93J,KAAK6+B,IAAI7+B,KAAKmrB,IAAI0T,EAAKsjJ,GAAeh3J,EAC/C,CACA,SAAIyuI,GACF,MAAM,aACJ4f,GACEz2K,KACJ,OAAqB,OAAjBy2K,EACK,EAEFA,EAAa5f,KACtB,CACA,eAAIwoB,GACF,MAAM,aACJ5I,GACEz2K,KACJ,GAAqB,OAAjBy2K,EACF,OAAO,EAET,MAAM6I,EAA6G,GAAxFt/K,KAAKq0D,OAAOyqH,gBAAkBrI,EAAahhB,YAAcghB,EAAa1hB,gBACjG,OAAO93J,KAAKmrB,IAAIquJ,EAAarf,IAAMkoB,EAAmB,EACxD,CACA,uBAAIC,GACF,MAAM,MACJ/O,EAAK,aACLiG,GACEz2K,KACJ,IAAKwwK,IAAUiG,EACb,OAAO,EAET,MAAM+I,EAAiBhP,EAAM75J,SAASxW,OACtC,OAAQq/K,EAAiBhP,EAAM75J,SAAS3J,IAAIwyK,EAAiB,GAAK/I,EAAa1f,MAAQ/2J,KAAK6tH,WAC9F,CACA,OAAA57C,GACEjyE,KAAKy1K,sBACLz1K,KAAKs8K,mBACLt8K,KAAKy2K,aAAe,KAEpBz2K,KAAK00K,IAAM10K,KAAKq+K,kBAAoB,IACtC,CACA,iBAAAzJ,GACE50K,KAAK00K,IAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACzDA,KAAK00K,IAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MAC3DA,KAAK00K,IAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MAC7DA,KAAK00K,IAAI1yF,GAAGyrE,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,MACvDA,KAAK00K,IAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KAC1C,CACA,mBAAAy1K,GACEz1K,KAAK00K,IAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MAC1DA,KAAK00K,IAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MAC5DA,KAAK00K,IAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MAC9DA,KAAK00K,IAAI57E,IAAI20D,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,MACxDA,KAAK00K,IAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KAC3C,CACA,eAAAo8K,CAAgBp2H,EAAOp8C,GACrB5J,KAAKwwK,MAAQ5mK,EAAK4mK,MAClBxwK,KAAKwwK,MAAMv6H,iBAAiB,aAAcj2C,KAAKq+K,kBACjD,CACA,gBAAA/B,GACMt8K,KAAKwwK,QACPxwK,KAAKwwK,MAAMp1E,oBAAoB,aAAcp7F,KAAKq+K,mBAClDr+K,KAAKwwK,MAAQ,KAEjB,CACA,iBAAA0E,GACEl1K,KAAKy2K,aAAe,KACpBz2K,KAAKo+K,SAAW,KAChBp+K,KAAKm+K,WAAa,CACpB,CACA,cAAAvB,CAAe52H,GAAO,QACpBxvB,IAEAx2B,KAAKy2K,aAAejgJ,EAChBA,EAAQi+H,UACVz0J,KAAKs+K,cAEF9nJ,EAAQ69H,MAAQr0J,KAAKwwK,OACxBxwK,KAAKwwK,MAAMp1E,oBAAoB,aAAcp7F,KAAKq+K,kBAEtD,CACA,OAAApxK,CAAQ+4C,EAAOp8C,GACb,IAAI61K,EACA71K,EAAK4sB,UAAYm3H,EAAa+xB,uBAGlC1/K,KAAKm+K,aAC2C,OAA3CsB,EAAqBz/K,KAAKy2K,eAAyBgJ,EAAmBprB,MACzEvzE,EAAO/jD,KAAK,wEAEhB,CACA,UAAAuhJ,GACE,MAAM,MACJ9N,EAAK,aACLiG,GACEz2K,KACJ,IAAKwwK,IAAUiG,EACb,OAEFz2K,KAAK6tH,YAAc2iD,EAAM3iD,YACzB,MAAM0wD,EAAUv+K,KAAK2/K,iBACrB,GAAgB,OAAZpB,EACF,OAEFv+K,KAAKo+K,SAAWG,EAGhB,MAAM,eACJO,EAAc,wBACdc,GACE5/K,KAAKq0D,OACT,IAAKyqH,GAA8C,IAA5Bc,IAAkCnJ,EAAapiB,KACpE,OAEF,MAAMsqB,EAAgB3+K,KAAK2+K,cAC3B,GAAsB,OAAlBA,EACF,OAEF,MAAMkB,EAAqBtB,EAAUI,EAMrC,GADoBkB,EADW5iL,KAAK6+B,IAAI97B,KAAKw+K,WAAYG,EAAgBlI,EAAa1hB,iBAEnE8qB,EAAqB,KAAQ7/K,KAAKu/K,oBAAsB,EAAG,CAC5E,MAAMn3J,EAAMnrB,KAAK6+B,IAAI,EAAG7+B,KAAKmrB,IAAI,EAAKw3J,IAChCvtE,EAAOp1G,KAAKgpC,MAAM,GAAK,EAAIhpC,KAAK2wH,KAAK,IAAOiyD,EAAqB7/K,KAAKq/K,cAAgB,IAAM,GAClG7O,EAAMsP,aAAe7iL,KAAK6+B,IAAI1T,EAAKnrB,KAAKmrB,IAAI,EAAGiqF,GACjD,MAAkC,IAAvBm+D,EAAMsP,cAA6C,IAAvBtP,EAAMsP,eAC3CtP,EAAMsP,aAAe,EAEzB,CACA,gBAAAX,GACE,MAAM,aACJ1I,GACEz2K,KACJ,OAAqB,OAAjBy2K,EACK,KAEFA,EAAa1f,KAAO0f,EAAarf,GAC1C,CACA,cAAAuoB,GACE,MAAMT,EAAWl/K,KAAKm/K,mBACtB,OAAiB,OAAbD,EACK,KAEFA,EAAWl/K,KAAK6tH,WACzB,EAGF,MAAMkyD,GAAa,CAAC,OAAQ,SAAU,SAAU,MAI1CC,GAAmB,CAAC,MAAO,KAAM,OASvC,SAASC,GAAazpJ,GACpB,MAAM,aACJ2+H,EAAY,kBACZC,EAAiB,IACjBgC,GACE5gI,EAKJ,OAAI2+H,GADyBiC,EAAMjC,EAAe,EAE5CC,EAbF,KADC,MADD,EAqBN,CACA,MAAM8qB,GACJ,WAAAn1J,CAAYo1J,EAAKhzI,EAAMC,GACrBptC,KAAKmgL,SAAM,EACXngL,KAAKmtC,UAAO,EACZntC,KAAKotC,UAAO,EACZptC,KAAKmgL,IAAMA,EACXngL,KAAKmtC,KAAOA,EACZntC,KAAKotC,KAAOA,CACd,CACA,aAAAgzI,CAAc51I,GACZ,MAAMgL,EAAM,IAAIlrB,KAAKqkB,IAAInE,GAUzB,YATiBtuC,IAAb8D,KAAKmgL,KACP3qI,EAAItsB,aAAavqB,IAAI,WAAYqB,KAAKmgL,IAAIpkL,iBAE1BG,IAAd8D,KAAKmtC,MACPqI,EAAItsB,aAAavqB,IAAI,YAAaqB,KAAKmtC,KAAKpxC,YAE1CiE,KAAKotC,MACPoI,EAAItsB,aAAavqB,IAAI,YAAaqB,KAAKotC,MAElCoI,EAAI23E,IACb,EAEF,MAAMkzD,GACJ,WAAAt1J,CAAYnhB,GACV5J,KAAKsgL,YAAS,EACdtgL,KAAK6vK,gBAAa,EAClB7vK,KAAK4uK,aAAU,EACf5uK,KAAKitK,cAAW,EAChBjtK,KAAKw1C,SAAM,EACXx1C,KAAKugL,eAAY,EACjBvgL,KAAKu9C,YAAS,EACdv9C,KAAKkN,QAAK,EACVlN,KAAKoI,UAAO,EACZpI,KAAK+sK,gBAAa,EAClB/sK,KAAK29C,WAAQ,EACb39C,KAAKw2B,aAAU,EACfx2B,KAAKwgL,cAAgB,EACrBxgL,KAAKygL,UAAY,EACjBzgL,KAAK4vJ,YAAS,EACd5vJ,KAAK0gL,YAAc,EACnB1gL,KAAK2gL,sBAAmB,EACxB3gL,KAAK4gL,qBAAkB,EACvB5gL,KAAK6gL,YAAc,EACnB7gL,KAAK8gL,kBAAe,EACpB9gL,KAAK+gL,qBAAkB,EAEvB/gL,KAAKghL,OAAS,EACdhhL,KAAKw1C,IAAM,CAAC5rC,EAAK4rC,KACjBx1C,KAAKsgL,OAAS,CAAC12K,EAAKkpI,OACpB9yI,KAAK4uK,QAAUhlK,EAAKglK,QAChBhlK,EAAK4sB,UACPx2B,KAAKw2B,QAAU5sB,EAAK4sB,SAEtBx2B,KAAKkN,GAAKtD,EAAKsD,IAAM,EACrBlN,KAAKoI,KAAOwB,EAAKxB,KACjBpI,KAAK29C,MAAQ/zC,EAAK+zC,OAAS,EAC3B39C,KAAKu9C,OAAS3zC,EAAK2zC,QAAU,EAC7Bv9C,KAAKugL,UAAY32K,EAAKkpI,MAAM4b,cAAc,aAAc,GACxD1uJ,KAAK6gL,YAAcj3K,EAAKkpI,MAAMqb,eAAe,qBAC7CnuJ,KAAK6vK,WAAajmK,EAAKimK,WACvB7vK,KAAK+sK,WAAanjK,EAAKmjK,WACvB/sK,KAAKitK,SAAW,CAACrjK,EAAKmjK,WAAYnjK,EAAKimK,YAAY/8J,QAAO2X,KAAOA,IAAG1pB,KAAI8F,GAAKA,EAAE1J,UAAU,EAAG,KAAIE,KAAK,KACrG2C,KAAKihL,WAAW,QAASr3K,EAAKkpI,MAAM88B,OACpC5vK,KAAKihL,WAAW,OAAQr3K,EAAKkpI,MAAMg9B,UACrC,CACA,cAAIoR,GACF,OAAOjkL,KAAKmrB,IAAIpoB,KAAK0gL,YAAa1gL,KAAK4uK,QACzC,CACA,kBAAIuS,GACF,OAAOnhL,KAAK6gL,aAAe7gL,KAAK0gL,aAAe1gL,KAAK4uK,OACtD,CACA,SAAI97B,GACF,OAAO9yI,KAAKsgL,OAAO,EACrB,CACA,UAAI7T,GACF,OAAOzsK,KAAK8yI,MAAMi8B,QAAU,EAC9B,CACA,aAAIQ,GACF,OAAOvvK,KAAK8yI,MAAM,eAAiB,GACrC,CACA,cAAIsuC,GACF,OAAOphL,KAAK8yI,MAAM,gBAAkB,KACtC,CACA,SAAIuuC,GACF,OAAOrhL,KAAK8yI,MAAM4b,cAAc,QAAS,EAC3C,CACA,OAAIlkH,GACF,OAAOxqC,KAAKw1C,IAAI,IAAM,EACxB,CACA,aAAA8rI,CAAc7Q,GACZ,OAAO8Q,GAASvhL,KAAK8gL,aAAcrQ,EACrC,CACA,gBAAA+Q,CAAiB/Q,GACf,OAAO8Q,GAASvhL,KAAK+gL,gBAAiBtQ,EACxC,CACA,eAAIgR,GACF,OAAOzhL,KAAK8gL,YACd,CACA,kBAAIY,GACF,OAAO1hL,KAAK+gL,eACd,CACA,UAAAE,CAAW1hL,EAAMkxK,GACf,GAAKA,EAGL,GAAa,UAATlxK,EAAkB,CACpB,IAAIkiL,EAAczhL,KAAK8gL,aAClBW,IACHA,EAAczhL,KAAK8gL,aAAe,KAEE,IAAlCW,EAAYtjJ,QAAQsyI,IACtBgR,EAAY5/K,KAAK4uK,EAErB,MAAO,GAAa,SAATlxK,EAAiB,CAC1B,IAAImiL,EAAiB1hL,KAAK+gL,gBACrBW,IACHA,EAAiB1hL,KAAK+gL,gBAAkB,KAED,IAArCW,EAAevjJ,QAAQsyI,IACzBiR,EAAe7/K,KAAK4uK,EAExB,CACF,CAGA,SAAIre,GACF,OAAO,CACT,CACA,SAAIA,CAAM/1J,GAAQ,CAClB,iBAAIslL,GACF,OAAO3hL,KAAKyhL,YAAc,CAACzhL,KAAK4hL,mBAAgB1lL,CAClD,CACA,gBAAI2lL,GACF,OAAO7hL,KAAK0hL,eAAiB,CAAC1hL,KAAK8hL,kBAAe5lL,CACpD,CACA,gBAAI0lL,GACF,IAAIG,EACJ,OAAiD,OAAzCA,EAAoB/hL,KAAKyhL,kBAAuB,EAASM,EAAkB,EACrF,CACA,eAAID,GACF,IAAIE,EACJ,OAAuD,OAA/CA,EAAuBhiL,KAAK0hL,qBAA0B,EAASM,EAAqB,EAC9F,CACA,WAAAC,GAAe,EAEjB,SAASV,GAASrzH,EAAQuiH,GACxB,SAAKA,IAAYviH,KAGmB,IAA7BA,EAAO/vB,QAAQsyI,EACxB,CAEA,SAASyR,GAAgBC,EAAUC,GACjC,MAAMC,EAAYD,EAAO3wB,SAEzB,GAAIjE,EAAe60B,GAAY,CAG7B,IACIhvB,EADAhyF,EAAW,EAEX+gH,EAAOhxB,GAAK+wB,EAAS/wB,IACvB/vF,EAAWghH,EAAYF,EAASlpI,MAChCo6G,EAAO8uB,IAEP9gH,EAAW8gH,EAASlpI,MAAQopI,EAC5BhvB,EAAO+uB,GAEL/uB,EAAKhyF,WAAaA,IACpBgyF,EAAKhyF,SAAWA,EAGpB,MAAW+gH,EAAOhxB,GAAK+wB,EAAS/wB,GACX+wB,EAAS3wB,KAAO4wB,EAAO5wB,IAExB2wB,EAASpwB,UACzBqwB,EAAOnpI,MAAQkpI,EAASlpI,OAASkpI,EAASpwB,UAAYowB,EAASlpI,OAE/DmpI,EAAOnpI,MAAQkpI,EAASlpI,MAAQkpI,EAAS9gH,SAG3C+gH,EAAOnpI,MAAQh8C,KAAKmrB,IAAI+5J,EAASlpI,MAAQmpI,EAAO/gH,SAAU,EAE9D,CACA,SAASihH,GAAiB9rJ,EAAS68H,EAAM5B,EAAUC,EAAQC,EAAUC,GACvCF,EAASD,GACV,IACzB3wE,EAAO/jD,KAAK,2CAA4Cs2H,GACxD3B,EAASD,EAAW4B,EAAKhyF,SACzBuwF,EAASD,EAAW0B,EAAKhyF,UAE3B,IAAIywF,EAAcL,EACdM,EAAYL,EAChB,MAAM6wB,EAAelvB,EAAK5B,SACpB+wB,EAAanvB,EAAK3B,OACxB,GAAIlE,EAAe+0B,GAAe,CAEhC,MAAM1wB,EAAW50J,KAAK6rF,IAAIy5F,EAAe9wB,GACpCjE,EAAe6F,EAAKxB,UAGvBwB,EAAKxB,SAAW50J,KAAKmrB,IAAIypI,EAAUwB,EAAKxB,UAFxCwB,EAAKxB,SAAWA,EAIlBC,EAAc70J,KAAKmrB,IAAIqpI,EAAU8wB,GACjC9wB,EAAWx0J,KAAK6+B,IAAI21H,EAAU8wB,GAC9B5wB,EAAW10J,KAAK6+B,IAAI61H,EAAU0B,EAAK1B,UACnCI,EAAY90J,KAAK6+B,IAAI41H,EAAQ8wB,GAC7B9wB,EAASz0J,KAAKmrB,IAAIspI,EAAQ8wB,GAC1B5wB,EAAS30J,KAAKmrB,IAAIwpI,EAAQyB,EAAKzB,OACjC,CACA,MAAMiF,EAAQpF,EAAW4B,EAAKp6G,MACX,IAAfo6G,EAAKp6G,QACPo6G,EAAKp6G,MAAQw4G,GAEf4B,EAAKhyF,SAAWqwF,EAAS2B,EAAKp6G,MAC9Bo6G,EAAK5B,SAAWA,EAChB4B,EAAKvB,YAAcA,EACnBuB,EAAK1B,SAAWA,EAChB0B,EAAK3B,OAASA,EACd2B,EAAKtB,UAAYA,EACjBsB,EAAKzB,OAASA,EACd,MAAMR,EAAKiC,EAAKjC,GAEhB,IAAK56H,GAAW46H,EAAK56H,EAAQq+H,SAAWzD,EAAK56H,EAAQw9H,MACnD,OAAO,EAET,IAAIlwJ,EACJ,MAAM2+K,EAAUrxB,EAAK56H,EAAQq+H,QACvBZ,EAAYz9H,EAAQy9H,UAQ1B,IAFAA,EAAUwuB,GAAWpvB,EAEhBvvJ,EAAI2+K,EAAS3+K,EAAI,EAAGA,IACvBo+K,GAAgBjuB,EAAUnwJ,GAAImwJ,EAAUnwJ,EAAI,IAI9C,IAAKA,EAAI2+K,EAAS3+K,EAAImwJ,EAAU9zJ,OAAS,EAAG2D,IAC1Co+K,GAAgBjuB,EAAUnwJ,GAAImwJ,EAAUnwJ,EAAI,IAM9C,OAJI0yB,EAAQ09H,cACVguB,GAAgBjuB,EAAUA,EAAU9zJ,OAAS,GAAIq2B,EAAQ09H,cAE3D19H,EAAQo9H,SAAWp9H,EAAQq9H,gBAAiB,EACrCgD,CACT,CAmKA,SAAS6rB,GAAcC,EAAYC,GACjC,MAAMC,EAAQD,EAAW/tB,QAAU+tB,EAAWvtB,gBAAkBstB,EAAW9tB,QACrEiuB,EAAeH,EAAW1uB,UAC5B4uB,EAAQ,GAAKA,GAASC,EAAa3iL,QAGvC4iL,GAAWH,EAAYE,EAAaD,GAAO5pI,MAC7C,CACA,SAAS8pI,GAAWvsJ,EAASyiB,GAC3B,GAAIA,EAAO,CACT,MAAMg7G,EAAYz9H,EAAQy9H,UAC1B,IAAK,IAAInwJ,EAAI0yB,EAAQ6+H,gBAAiBvxJ,EAAImwJ,EAAU9zJ,OAAQ2D,IAC1DmwJ,EAAUnwJ,GAAGm1C,OAASA,EAEpBziB,EAAQ09H,eACV19H,EAAQ09H,aAAaj7G,OAASA,EAElC,CACF,CAwCA,SAAS+pI,GAAYz4G,EAAO6mF,EAAI6xB,GAC9B,IAAIC,EACJ,OAAe,MAAT34G,GAAiBA,EAAM/zC,QAGtB2sJ,GAA6C,OAAnCD,EAAiB34G,EAAM/zC,cAAmB,EAAS0sJ,EAAe/uB,SAAU/C,EAAI6xB,GAFxF,IAGX,CACA,SAASE,GAAShvB,EAAU/C,EAAI6xB,GAC9B,GAAI9uB,EACF,IAAK,IAAIrwJ,EAAIqwJ,EAASh0J,OAAQ2D,KAAM,CAClC,MAAMqpC,EAAOgnH,EAASrwJ,GACtB,GAAIqpC,EAAK15B,QAAUwvK,GAAa91I,EAAK2E,SAASs/G,KAAOA,EACnD,OAAOjkH,CAEX,CAEF,OAAO,IACT,CACA,SAASi2I,GAA6B7U,GACpCA,EAAO/vK,SAAQ,CAAC+rE,EAAO92D,KACrB,MAAM,QACJ+iB,GACE+zC,EACW,MAAX/zC,GAAmBA,EAAQy9H,WAC7Bz9H,EAAQy9H,UAAUz1J,SAAQszC,IACxBA,EAASy4B,MAAQ92D,CAAK,GAE1B,GAEJ,CAEA,SAAS4vK,GAAez+K,GACtB,OAAQA,EAAM4xB,SACZ,KAAKm3H,EAAa21B,kBAClB,KAAK31B,EAAa41B,iBAClB,KAAK51B,EAAaorB,mBAClB,KAAKprB,EAAakrB,sBAChB,OAAO,EAEX,OAAO,CACT,CACA,SAAS2K,GAAerN,EAAYvxK,GAClC,MAAM6+K,EAAYJ,GAAez+K,GACjC,OAAOuxK,EAAW9zJ,SAAWohK,EAAY,UAAY,SAA3B,QAC5B,CACA,SAASC,GAAcC,EAAaC,GAElC,MAAMC,EAAwC,WAAxBF,EAAYG,QAAuB,EAAI7mL,KAAK+oC,IAAI,EAAG49I,GACzE,OAAO3mL,KAAK6+B,IAAI+nJ,EAAgBF,EAAYtM,aAAcsM,EAAYpM,gBACxE,CACA,SAASwM,GAA6BC,GACpC,OAAO32B,EAAeA,EAAe,CAAC,EAAG22B,GAAc,CACrDxN,WAAY,KACZD,aAAc,MAElB,CACA,SAAS0N,GAAYN,EAAaC,EAAYH,EAAWS,GACvD,IAAKP,EACH,OAAO,EAET,MAAMQ,EAA+B,MAAlBD,OAAyB,EAASA,EAAernL,KAC9DgzJ,EAAQ+zB,EAAaD,EAAYxM,cAGzC,SAA4BgN,GAE1B,OAAsB,IAAfA,IAAyC,IAArB9rI,UAAU+rI,UAAsBD,IAAeA,EAAa,KAAOA,EAAa,IAC7G,CANyDE,CAAmBF,MAAiBV,GAC3F,OAAOE,EAAYM,YAAcN,EAAYM,YAAYN,EAAaC,EAAYH,EAAWS,EAAgBr0B,GAASA,CACxH,CAMA,MAAMy0B,GAgBI,SAAU7tK,EAAM8tK,GACtB,IAAIC,EAAW,EACXC,EAAWhuK,EAAKtW,OAAS,EACzBukL,EAAe,KACfC,EAAiB,KACrB,KAAOH,GAAYC,GAAU,CAC3BC,GAAgBF,EAAWC,GAAY,EAAI,EAC3CE,EAAiBluK,EAAKiuK,GACtB,MAAME,EAAmBL,EAAaI,GACtC,GAAIC,EAAmB,EACrBJ,EAAWE,EAAe,MACrB,MAAIE,EAAmB,GAG5B,OAAOD,EAFPF,EAAWC,EAAe,CAG5B,CACF,CACA,OAAO,IACT,EA2CF,SAASG,GAAkBC,EAAc7wB,EAAW8wB,EAAY,EAAGC,EAAyB,EAAGC,EAA0B,MACvH,IAAIC,EAAW,KACf,GAAIJ,EAAc,CAChBI,EAAWjxB,EAAU6wB,EAAa1zB,GAAK6C,EAAU,GAAG7C,GAAK,IAAM,KAE/D,MAAM+zB,EAAkBL,EAAalzB,OAASmzB,EAC1CI,EAAkB,GAAKA,EAAkB,QAC3CJ,GAAa,MAEjB,MAAyB,IAAdA,GAA0C,IAAvB9wB,EAAU,GAAGh7G,QACzCisI,EAAWjxB,EAAU,IAGvB,GAAIixB,MAAeJ,GAAgBA,EAAav6G,QAAU26G,EAAS36G,QAAuF,IAA7E66G,GAA4BL,EAAWC,EAAwBE,IAW9I,SAAuCA,EAAUJ,EAAcG,GAC7D,GAAIH,GAAuC,IAAvBA,EAAa7rI,OAAe6rI,EAAav6G,MAAQ26G,EAAS36G,QAAUu6G,EAAapzB,QAAU,GAAK,EAAG,CACrH,MAAM2zB,EAAgBP,EAAa3zB,QAAQ9wJ,QAAO,CAACghE,EAAU7kE,KAC5C,QAAXA,EAAI,KACN6kE,GAAY/hC,WAAW9iC,EAAI,KAEtB6kE,IACN4jH,GACH,OAAOC,EAASjsI,OAASosI,CAC3B,CACA,OAAO,CACT,CAtBiKC,CAA8BJ,EAAUJ,EAAc7nL,KAAK6+B,IAAImpJ,EAAyBD,KACrP,OAAOE,EAGT,MAAMK,EAAgBjB,GAAoBrwB,EAAWmxB,GAA4Bp2K,KAAK,KAAM+1K,EAAWC,IACvG,OAAIO,GAAkBA,IAAkBT,GAAiBI,EAIlDA,EAHEK,CAIX,CAqBA,SAASH,GAA4BL,EAAY,EAAGC,EAAyB,EAAG3rF,GAE9E,GAAIA,EAAUpgD,OAAS8rI,GAAa1rF,EAAUpgD,MAAQogD,EAAUh4B,SAAW0jH,EACzE,OAAO,EAgBT,MAAMS,EAA2BvoL,KAAK6+B,IAAIkpJ,EAAwB3rF,EAAUh4B,UAAYg4B,EAAUw4D,SAAWx4D,EAAUw4D,SAAW,IAClI,OAAIx4D,EAAUpgD,MAAQogD,EAAUh4B,SAAWmkH,GAA4BT,EAC9D,EACE1rF,EAAUpgD,MAAQusI,EAA2BT,GAAa1rF,EAAUpgD,OAErE,EAEH,CACT,CAUA,SAASwsI,GAAuBC,EAAcV,EAAwB3rF,GACpE,MAAMmsF,EAAkI,IAAvGvoL,KAAK6+B,IAAIkpJ,EAAwB3rF,EAAUh4B,UAAYg4B,EAAUw4D,SAAWx4D,EAAUw4D,SAAW,IAIlI,OAD2Bx4D,EAAUo5D,oBAAsB,GAC/B+yB,EAA2BE,CACzD,CAsYA,MAAMC,GACJ,WAAA56J,CAAY2pJ,EAAKkR,GACf5lL,KAAK00K,SAAM,EACX10K,KAAK6lL,OAAS,EACd7lL,KAAK8lL,kBAAoB,EACzB9lL,KAAK+lL,SAAU,EACf/lL,KAAKmrC,SAAM,EACXnrC,KAAK+8B,UAAO,EACZ/8B,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQ,GAAG8kG,MACtC5lL,KAAK+8B,KAAO+jD,EAAO/jD,KAAK/tB,KAAK8xE,EAAQ,GAAG8kG,MACxC5lL,KAAK00K,IAAMA,CACb,CACA,OAAAziG,GACEjyE,KAAKgmL,aAELhmL,KAAK00K,IAAM10K,KAAKmrC,IAAMnrC,KAAK+8B,KAAO,IACpC,CACA,UAAAipJ,IACsB,IAAhBhmL,KAAK6lL,QACPv7J,KAAKi+B,aAAavoD,KAAK6lL,OACvB7lL,KAAK6lL,OAAS,EAElB,CACA,SAAAhR,GACE70K,KAAK+lL,SAAU,EACf/lL,KAAK8lL,kBAAoB,EACzB9lL,KAAKimL,cACP,CACA,QAAAlR,GACE/0K,KAAK+lL,SAAU,EACf/lL,KAAKgmL,YACP,CACA,YAAAE,CAAaC,EAAax1B,EAAU7rJ,GAClC,MAAM6wJ,EAA+B,MAAZhF,OAAmB,EAASA,EAASgF,iBAC9D,GAAIA,EAAkB,CACpB,IAAIywB,GAAc,EAClB,IAAK,IAAItiL,EAAI,EAAGA,EAAI6xJ,EAAiBx1J,OAAQ2D,IAAK,CAChD,MAAM47G,EAAOi2C,EAAiB7xJ,GAC9B,IAAI0mC,EACJ,IACEA,EAAM,IAAIlgB,KAAKqkB,IAAI+wE,EAAKkxD,IAAKjgB,EAASn7G,KAAK23E,IAC7C,CAAE,MAAOvoH,GACPk8E,EAAO/jD,KAAK,qDAAqDn4B,KACjE4lC,EAAMk1E,EAAKkxD,KAAO,EACpB,CAGA,GAAIpmI,IAAQ27I,EAAa,CACvBC,EAAatiL,EACb,KACF,CAAW0mC,IAAQ27I,EAAYhpL,UAAU,EAAGqtC,EAAIrqC,UAC9CimL,EAAatiL,EAEjB,CACA,IAAoB,IAAhBsiL,EAAmB,CACrB,MAAM1mE,EAAOi2C,EAAiBywB,GACxBjG,EAAMv6I,SAAS85E,EAAK,eAA6B,MAAZixC,OAAmB,EAASA,EAAS6F,YAChF,IAAIrpH,EAAOvH,SAAS85E,EAAK,gBAA8B,MAAZixC,OAAmB,EAASA,EAAS+F,eAChF,GAAI12J,KAAK00K,IAAIrgH,OAAOyqH,eAAgB,CAClC,MAAMuH,EAAcppL,KAAK6+B,IAAI60H,EAASyG,IAAMzG,EAAS8E,WAAY9E,EAASoE,gBACtE5nH,GAAQ,GAAKk5I,EAAc11B,EAAS8E,aACtCtoH,GAAQ,EAEZ,CACA,MAAMC,EAAOtoC,GAAWm7K,GAAan7K,GACrC,OAAO,IAAIo7K,GAAiBC,EAAKhzI,GAAQ,EAAIA,OAAOjxC,EAAWkxC,EACjE,CACF,CACF,CACA,YAAA64I,CAAaK,IACoB,IAA3BtmL,KAAK8lL,mBACP9lL,KAAK8lL,iBAAmBx7J,KAAKrS,YAAYgM,MAG7C,CACA,kBAAAsiK,CAAmBC,GACjB,OAAOxmL,KAAK+lL,WAAaS,KAAcA,EAAShxI,OAASgxI,EAAShwJ,SAAWgwJ,EAAShwJ,QAAQ69H,KAChG,CACA,oBAAAoyB,CAAqBD,GACnB,OAAuB,IAAhBxmL,KAAK6lL,QAA2C,IAA3B7lL,KAAK8lL,kBAA2B9lL,KAAKumL,mBAAmBC,EACtF,CACA,cAAAE,CAAejzK,EAAO7J,EAAM+8K,GAC1B,MAAM,QACJnwJ,EAAO,MACPw7H,GACEpoJ,EAGEqa,EAAMqG,KAAKrS,YAAYgM,MACvB2iK,EAAU50B,EAAMtvC,QAAQxtF,MAAQj4B,KAAKmrB,IAAI,EAAGnE,EAAM+tI,EAAMtvC,QAAQxtF,OAAS,EAI/E,GAHAsB,EAAQ+9H,iBAAmBvwI,KAAKC,MAAQ2iK,EAGpCpwJ,EAAQ69H,MAA2B,MAAnBsyB,GAA2BA,EAAgBtyB,KAAM,CASnE,GARA79H,EAAQ8/H,SAASqwB,GACbA,GACF3mL,KAAKmrC,IAAI,iBAAiB13B,KAAS+iB,EAAQi+H,SAAW,aAAej+H,EAAQggI,WAAa,IAAMhgI,EAAQkgI,cAAgBlgI,EAAQg+H,QAAU,UAAY,YAGpJmyB,GAAmBnwJ,EAAQy9H,UAAU9zJ,OAAS,GA96BxD,SAAsBwiL,EAAYC,GAEhC,IAAI1R,EAAqB,KACzB,MAAM4R,EAAeH,EAAW1uB,UAChC,IAAK,IAAInwJ,EAAIg/K,EAAa3iL,OAAS,EAAG2D,GAAK,EAAGA,IAAK,CACjD,MAAM+iL,EAAU/D,EAAah/K,GAAGouJ,YAChC,GAAI20B,EAAS,CACX3V,EAAqB2V,EACrB,KACF,CACF,CAOA,IAAIC,EANAnE,EAAWzuB,qBAENyuB,EAAWzuB,aAAaxC,OAkInC,SAAiCixB,EAAYC,EAAYmE,GACvD,MAAM1xB,EAAkButB,EAAWvtB,gBAC7Bp8G,EAAQh8C,KAAKmrB,IAAIu6J,EAAW9tB,QAAS+tB,EAAW/tB,SAAW+tB,EAAW/tB,QACtE7nJ,GAAO21K,EAAWzuB,aAAe,EAAI,IAAMmB,EAAkButB,EAAW5uB,MAAQ/2J,KAAK6+B,IAAI6mJ,EAAW3uB,MAAO4uB,EAAW5uB,QAAU4uB,EAAW/tB,QAC3IguB,EAAQD,EAAW/tB,QAAU8tB,EAAW9tB,QACxCmyB,EAAWpE,EAAW1uB,aAAe0uB,EAAW3uB,UAAU1sJ,OAAOq7K,EAAW1uB,cAAgB0uB,EAAW3uB,UACvGgzB,EAAWtE,EAAWzuB,aAAeyuB,EAAW1uB,UAAU1sJ,OAAOo7K,EAAWzuB,cAAgByuB,EAAW1uB,UAC7G,IAAK,IAAInwJ,EAAIm1C,EAAOn1C,GAAKkJ,EAAKlJ,IAAK,CACjC,MAAMojL,EAAUD,EAASpE,EAAQ/+K,GACjC,IAAIqjL,EAAUH,EAASljL,GACnBuxJ,IAAoB8xB,GAAWrjL,EAAIuxJ,IAErC8xB,EAAUvE,EAAW3uB,UAAUnwJ,GAAKojL,GAElCA,GAAWC,GACbJ,EAAeG,EAASC,EAASrjL,EAAGkjL,EAExC,CACF,CA/IEI,CAAwBzE,EAAYC,GAAY,CAACsE,EAASC,EAASE,EAAcC,KAC/E,GAAI1E,EAAWvtB,iBACT8xB,EAAQ31B,KAAO01B,EAAQ11B,GAAI,CAC7B,MAAM+1B,EAAWL,EAAQ11B,GAAK21B,EAAQ31B,GACtC,IAAK,IAAI1tJ,EAAIujL,EAAcvjL,EAAIwjL,EAAannL,OAAQ2D,IAClDwjL,EAAaxjL,GAAG0tJ,IAAM+1B,CAE1B,CAEE/5B,EAAe05B,EAAQz1B,WAAajE,EAAe05B,EAAQx1B,UAC7Dy1B,EAAQluI,MAAQkuI,EAAQ11B,SAAWy1B,EAAQz1B,SAC3C01B,EAAQx1B,SAAWu1B,EAAQv1B,SAC3Bw1B,EAAQr1B,YAAco1B,EAAQp1B,YAC9Bq1B,EAAQz1B,OAASw1B,EAAQx1B,OACzBy1B,EAAQv1B,OAASs1B,EAAQt1B,OACzBu1B,EAAQp1B,UAAYm1B,EAAQn1B,UAC5Bo1B,EAAQ9lH,SAAW6lH,EAAQx1B,OAASw1B,EAAQz1B,SACxC01B,EAAQ9lH,WACVylH,EAAUK,GAIZvE,EAAWhvB,SAAWgvB,EAAW/uB,gBAAiB,GAEpDszB,EAAQ12B,kBAAoBy2B,EAAQz2B,kBACpC02B,EAAQ71B,OAAS41B,EAAQ51B,OACzB61B,EAAQn1B,MAAQk1B,EAAQl1B,MACpBk1B,EAAQh1B,cACVi1B,EAAQj1B,YAAcg1B,EAAQh1B,YAC9Bgf,EAAqBgW,EAAQh1B,YAC/B,IAEF,MAAMo1B,EAAe1E,EAAW3uB,UAUhC,GATIid,IACuB0R,EAAW1uB,aAAeozB,EAAa//K,OAAOq7K,EAAW1uB,cAAgBozB,GACjF9oL,SAAQ60J,IACvB,IAAIm0B,GACAn0B,GAAUA,EAAKnB,aAAemB,EAAKnB,YAAY1B,UAA0D,OAA7Cg3B,EAAsBtW,QAA8B,EAASsW,EAAoBh3B,UAC/I6C,EAAKnB,YAAcgf,EACrB,IAGA0R,EAAWvtB,gBAAiB,CAE9B,GADAutB,EAAW/sB,kBAAoByxB,EAAallL,MAAKixJ,IAASA,IACtDuvB,EAAW/sB,kBAAmB,CAChC/0E,EAAO/jD,KAAK,+EACZ,IAAK,IAAIj5B,EAAI8+K,EAAWvtB,gBAAiBvxJ,KACvCwjL,EAAatlL,QAEf4gL,EAAW/tB,QAAUyyB,EAAa,GAAGl2B,EACvC,MACMwxB,EAAWxtB,oBACbwtB,EAAWxuB,WA0CnB,SAAyBqzB,EAAeC,EAAiBpyB,GACvD,MAAMlB,EAAa1oE,EAAS,CAAC,EAAG+7F,GAchC,OAbInyB,GACFA,EAA0B92J,SAAQ0O,WACzBknJ,EAAWlnJ,EAAG,IAGzBvR,OAAOwK,KAAKuhL,GAAiBlpL,SAAQ0O,IACnC,MAAM6kK,EAAY,IAAIhjB,EAAU24B,EAAgBx6K,GAAIwyG,KAAM00C,EAAWlnJ,IACjE6kK,EAAUtoI,QACZ2qH,EAAWlnJ,GAAM6kK,EAEjBjxF,EAAO/jD,KAAK,0DAA0DgC,KAAKL,UAAUgpJ,EAAgBx6K,GAAIwyG,SAC3G,IAEK00C,CACT,CA1DgCuzB,CAAgBhF,EAAWvuB,WAAYwuB,EAAWxuB,WAAYwuB,EAAWttB,4BAGrGstB,EAAWhuB,QAAUguB,EAAW3uB,UAAU,GAAGzC,GAC7CoxB,EAAW7uB,MAAQuzB,EAAaA,EAAannL,OAAS,GAAGqxJ,EAC3D,EAsDF,SAA6Bo2B,EAAUC,EAAUd,GAC/C,GAAIa,GAAYC,EAAU,CACxB,IAAIhF,EAAQ,EACZ,IAAK,IAAI/+K,EAAI,EAAGC,EAAM6jL,EAASznL,OAAQ2D,GAAKC,EAAKD,IAAK,CACpD,MAAMgkL,EAAUF,EAAS9jL,GACnBikL,EAAUF,EAAS/jL,EAAI++K,GACzBiF,GAAWC,GAAWD,EAAQr0K,QAAUs0K,EAAQt0K,OAASq0K,EAAQh2I,SAASs/G,KAAO22B,EAAQj2I,SAASs/G,GACpG21B,EAAee,EAASC,GAExBlF,GAEJ,CACF,CACF,CAhEEmF,CAAoBrF,EAAWxuB,SAAUyuB,EAAWzuB,UAAU,CAAC2zB,EAASC,KACtEA,EAAQt3B,kBAAoBq3B,EAAQr3B,kBACpCs3B,EAAQ/1B,MAAQ81B,EAAQ91B,KAAK,IAI3B80B,EACFxE,GAAiBM,EAAYkE,EAASA,EAAQr1B,SAAUq1B,EAAQp1B,OAAQo1B,EAAQn1B,SAAUm1B,EAAQl1B,QAKlG8wB,GAAcC,EAAYC,GAExB0E,EAAannL,SACfyiL,EAAW5tB,cAAgB4tB,EAAW7rB,KAAOuwB,EAAa,GAAGruI,OAE/D2pI,EAAW9sB,eAAiB6sB,EAAW7sB,eACvC8sB,EAAW5sB,WAAa2sB,EAAW3sB,WACnC,MAAMzB,EAAmBquB,EAAWruB,iBACpC,GAAIquB,EAAWnuB,UAAYF,EAAkB,CAC3C,MAAMwC,EAAO6rB,EAAW7rB,KACnB6rB,EAAW5sB,aACd4sB,EAAW9sB,eAAiBvB,EAC5BquB,EAAW5sB,WAAae,GAE1B6rB,EAAW7sB,aAAexB,EAC1BquB,EAAW3sB,SAAWc,CACxB,MACE6rB,EAAW7sB,aAAe4sB,EAAW5sB,aACrC6sB,EAAW3sB,SAAW0sB,EAAW1sB,SACjC2sB,EAAWruB,iBAAmBouB,EAAWpuB,gBAE7C,CAg0BQ0zB,CAAatB,EAAiBnwJ,IAE3Bx2B,KAAK+lL,UAAYvvJ,EAAQ69H,KAC5B,OAEF,IAAI4hB,EACAkK,EACAhzI,EACJ,GAAI3W,EAAQ0+H,gBAAkB1+H,EAAQw9H,OAASx9H,EAAQi+H,SAAU,CAE/D,MAAMqqB,EAAiB9+K,KAAK00K,IAAIrgH,OAAOyqH,eACjCtoB,EAAahgI,EAAQggI,WACrB0xB,EAAQ1xJ,EAAQw9H,MAChB0C,EAAgBlgI,EAAQkgI,cAExByxB,EAAW3xB,IAAe0xB,GADI,IAAnBxxB,GAKfypB,EAAMgI,EAAWD,EAAQ,EAAI1xB,EAC7BrpH,EAAOg7I,EAHgBrJ,EAAiB,EAAIpoB,EAGPA,EAAgB,GAErDypB,EAAM+H,EAAQ,EAIhB,MAAME,EAAe5xJ,EAAQ4gI,IACvBixB,EAASD,EAAe5xJ,EAAQ89H,UACtC,IAAI+xB,EAAcppL,KAAK6+B,IAAIusJ,EAAS7xJ,EAAQi/H,WAAqC,IAAzBj/H,EAAQu+H,gBAChE,GAAIsxB,EAAc,EAAG,CACnB,GAAIM,GAAmBN,EAAcM,EAAgB/wB,WAGnD51J,KAAK+8B,KAAK,oCAAoC4pJ,EAAgB/wB,kBAAkBywB,wBAAkC7vJ,EAAQ4gI,OAC1HivB,EAAc,MACT,CACL,MAAMiC,EAAWrrL,KAAK6lD,MAAMujI,EAAc7vJ,EAAQu+H,gBAClDorB,GAAOmI,OACMpsL,IAATixC,IAEFA,GADclwC,KAAKgpC,MAAMogJ,EAAc7vJ,EAAQu+H,eAAiBv+H,EAAQi/H,aAG1Ez1J,KAAKmrC,IAAI,oBAAoB3U,EAAQ89H,4BAA4B8zB,EAAax+G,QAAQ,aAAay8G,aAAuBiC,aAAoBn7I,IAChJ,CACA3W,EAAQo/H,WAAaywB,CACvB,CAEA,GADApQ,EAAqBj2K,KAAKuoL,sBAAsB/xJ,EAAS5sB,EAAKqsK,mBAAoBkK,EAAKhzI,GACnF2xI,IAAmBqJ,EAErB,YADAnoL,KAAKimL,aAAahQ,EAGtB,MAAWz/I,EAAQ0+H,gBAAkB1+H,EAAQ2+H,gBAC3C8gB,EAAqBj2K,KAAKuoL,sBAAsB/xJ,EAAS5sB,EAAKqsK,mBAAoBkK,EAAKhzI,IAEzF,MAAMq7I,EAAaxoL,KAAK00K,IAAI+T,sBACtBvxI,EAAWsxI,EAAaA,EAAWx7K,IAAMw7K,EAAWzkL,IAAM,EAE1D2kL,EAnzBZ,SAA+B9F,EAAY+F,EAAuBvjG,KAChE,IAAIsjG,EAAiB,IAAO9F,EAAW7tB,eACvC,GAAI6tB,EAAWpuB,QAAS,CAEtB,MAAMP,EAAY2uB,EAAW3uB,UACvB20B,EAA6B,EACnC,GAAI30B,EAAU9zJ,QAAUuoL,EAAiBE,EAA6BD,EAAsB,CAC1F,MAAME,EAAiE,IAA3C50B,EAAUA,EAAU9zJ,OAAS,GAAGkhE,SACxDwnH,EAAsBH,IACxBA,EAAiBG,EAErB,CACF,MAKEH,GAAkB,EAEpB,OAAOzrL,KAAKgpC,MAAMyiJ,EACpB,CA+xB6BI,CAAsBtyJ,EADY,KAA3BA,EAAQugI,KAAO7/G,IAEzC1gB,EAAQg+H,SAAWvwI,EAAMjkB,KAAK8lL,iBAAmB4C,IACnD1oL,KAAK8lL,iBAAmB9zB,EAAMtvC,QAAQzpE,YAE5B/8C,IAARikL,GAAqB3pJ,EAAQ0+H,eAC/Bl1J,KAAK8lL,iBAAmB9zB,EAAMtvC,QAAQxtF,MAAQwzJ,GAAuC,IAArBlyJ,EAAQi/H,YAAqB,MACzD,IAA3Bz1J,KAAK8lL,kBAA2B9lL,KAAK8lL,iBAAmB4C,EAAiBzkK,EAClFjkB,KAAK8lL,iBAAmB7hK,EACfjkB,KAAK8lL,iBAAmB7hK,GAAO,IACxCjkB,KAAK8lL,kBAAoB4C,GAE3B,IAAIK,EAA2B/oL,KAAK8lL,iBAAmB7hK,EACvD8kK,EAA2B9rL,KAAKmrB,IAAI,EAAG2gK,GACvC/oL,KAAKmrC,IAAI,wBAAwB13B,QAAYxW,KAAKgpC,MAAM8iJ,SAiBxD/oL,KAAK6lL,MAAQv7J,KAAK89B,YAAW,IAAMpoD,KAAKimL,aAAahQ,IAAqB8S,EAC5E,MACE/oL,KAAKgmL,YAET,CACA,qBAAAuC,CAAsB/xJ,EAASwyJ,EAA4B7I,EAAKhzI,GAC9D,IAAIC,EAAO6yI,GAAazpJ,GAMxB,OALkC,MAA9BwyJ,GAAsCA,EAA2B57I,MAAQ5W,EAAQq/H,oBACnFsqB,EAAM6I,EAA2B7I,IACjChzI,EAAO67I,EAA2B77I,KAClCC,EAhyCA,IAkyCK,IAAI8yI,GAAiBC,EAAKhzI,EAAMC,EACzC,CACA,UAAA67I,CAAWC,GACT,MAAMC,EAAeD,EAAW1yJ,QAC1BitJ,EAAYJ,GAAe6F,GAC3BE,EAAcF,EAAWE,aACzB,OACJlqL,EAAM,WACN0kL,EAAa,EAAC,YACdD,GACEyF,GAAe,CAAC,EACdv5B,IAAUu5B,KAAiBzF,IArkBrB,IAqkBqCzkL,IAA+CkqL,EAAYthL,UAxkBnF,IAwkB+F5I,GACxH,GAAI2wJ,EAAO,CACT,IAAIw5B,EAEJ,GADArpL,KAAK8lL,kBAAoB,EACrBlC,GAAcD,EAAYxM,YAC5B,OAAO,EAET,GAAIsM,GAA2D,OAA7C4F,EAAsBH,EAAWjiL,UAAoBoiL,EAAoBpT,mBAEzFj2K,KAAK+8B,KAAK,6BAA6B6mJ,EAAa,KAAKD,EAAYxM,sBAAsBgS,kCAC3FnpL,KAAKimL,mBACA,CACL,MAAMh6D,EAAQy3D,GAAcC,EAAaC,GAEzC5jL,KAAK6lL,MAAQv7J,KAAK89B,YAAW,IAAMpoD,KAAKimL,gBAAgBh6D,GACxDjsH,KAAK+8B,KAAK,6BAA6B6mJ,EAAa,KAAKD,EAAYxM,sBAAsBgS,SAAoBl9D,MACjH,CAEAi9D,EAAWI,YAAa,EACxBF,EAAYthL,UAAW,CACzB,CACA,OAAO+nJ,CACT,EASF,MAAM05B,GAEJ,WAAAx+J,CAAYy+J,EAAUC,EAAW,EAAG3hI,EAAS,GAC3C9nD,KAAKwpL,cAAW,EAChBxpL,KAAK0pL,YAAS,EACd1pL,KAAK2pL,eAAY,EACjB3pL,KAAK4pL,kBAAe,EACpB5pL,KAAKwpL,SAAWA,EAEhBxpL,KAAK0pL,OAASF,EAAWvsL,KAAK2wH,IAAI3wH,KAAKkuC,IAAI,IAAOq+I,GAAY,EAC9DxpL,KAAK2pL,UAAYF,EACjBzpL,KAAK4pL,aAAe9hI,CACtB,CACA,MAAA+hI,CAAO/hI,EAAQzrD,GACb,MAAMytL,EAAW7sL,KAAK+oC,IAAIhmC,KAAK0pL,OAAQ5hI,GACvC9nD,KAAK2pL,UAAYttL,GAAS,EAAIytL,GAAYA,EAAW9pL,KAAK2pL,UAC1D3pL,KAAK4pL,cAAgB9hI,CACvB,CACA,cAAAiiI,GACE,OAAO/pL,KAAK4pL,YACd,CACA,WAAAI,GACE,GAAIhqL,KAAK0pL,OAAQ,CACf,MAAMO,EAAa,EAAIhtL,KAAK+oC,IAAIhmC,KAAK0pL,OAAQ1pL,KAAK4pL,cAClD,GAAIK,EACF,OAAOjqL,KAAK2pL,UAAYM,CAE5B,CACA,OAAOjqL,KAAK2pL,SACd,EAWF,MAAMO,GACJ,WAAAn/J,CAAYo/J,EAAMC,EAAMC,EAAiBC,EAAc,KACrDtqL,KAAKuqL,sBAAmB,EACxBvqL,KAAKwqL,gBAAa,EAClBxqL,KAAKyqL,iBAAc,EACnBzqL,KAAK0qL,WAAQ,EACb1qL,KAAK2qL,WAAQ,EACb3qL,KAAK4qL,kBAAe,EACpB5qL,KAAK6qL,WAAQ,EACb7qL,KAAKuqL,iBAAmBF,EACxBrqL,KAAKwqL,WAAa,KAClBxqL,KAAKyqL,YAAc,GACnBzqL,KAAK0qL,MAAQ,IAAInB,GAAKY,GACtBnqL,KAAK2qL,MAAQ,IAAIpB,GAAKa,GACtBpqL,KAAK4qL,aAAeN,EACpBtqL,KAAK6qL,MAAQ,IAAItB,GAAKY,EACxB,CACA,MAAA97F,CAAO87F,EAAMC,GACX,MAAM,MACJM,EAAK,MACLC,EAAK,MACLE,GACE7qL,KACA0qL,EAAMlB,WAAaW,IACrBnqL,KAAK0qL,MAAQ,IAAInB,GAAKY,EAAMO,EAAMV,cAAeU,EAAMX,mBAErDY,EAAMnB,WAAaY,IACrBpqL,KAAK2qL,MAAQ,IAAIpB,GAAKa,EAAMO,EAAMX,cAAeW,EAAMZ,mBAErDc,EAAMrB,WAAaW,IACrBnqL,KAAK6qL,MAAQ,IAAItB,GAAKY,EAAMU,EAAMb,cAAea,EAAMd,kBAE3D,CACA,MAAAF,CAAOiB,EAAYC,GAEjB,MAEMC,GAHNF,EAAa7tL,KAAKmrB,IAAI0iK,EAAY9qL,KAAKyqL,cAGR,IAEzBQ,EAJU,EAAIF,EAIaC,EACjChrL,KAAK2qL,MAAMd,OAAOmB,EAAWC,GAC7BjrL,KAAK0qL,MAAMb,OAAOmB,EAAWC,EAC/B,CACA,UAAAC,CAAWC,GAGT,MAAM9mI,EAAU8mI,EAAO,IACjBrjI,EAAS7qD,KAAKmuL,KAAK,GAAKnuL,KAAK2wH,KAAK3wH,KAAK+oC,IAAIqe,EAAS,GAAK,GAC/DrkD,KAAK6qL,MAAMhB,OAAO/hI,EAAQ7qD,KAAKmrB,IAAI+iK,EAAM,GAC3C,CACA,WAAAE,GACE,OAAOrrL,KAAK2qL,MAAMZ,kBAAoB/pL,KAAKwqL,UAC7C,CACA,WAAAR,GACE,OAAIhqL,KAAKqrL,cAKApuL,KAAK6+B,IAAI97B,KAAK2qL,MAAMX,cAAehqL,KAAK0qL,MAAMV,eAE9ChqL,KAAKuqL,gBAEhB,CACA,eAAAe,GACE,OAAItrL,KAAK6qL,MAAMd,kBAAoB/pL,KAAKwqL,WAC/BxqL,KAAK6qL,MAAMb,cAEXhqL,KAAK4qL,YAEhB,CACA,OAAA34G,GAAW,EAGb,MAAMs5G,GAAyB,CAC7B92J,WAAW,EACX+2J,eAAgB,GAChBC,oBAAqB,CAAC,CACpBh3J,WAAW,EACXi3J,gBAAgB,EAChBC,QAAQ,KAGNC,GAAuB,CAAC,EAC9B,SAASC,GAAsCthH,EAAOuhH,EAAoBC,EAAmBC,EAAkBC,EAAWC,GAExH,MAAMzK,EAAcl3G,EAAMslG,WAAatlG,EAAMk3G,YAAc,KACrD0K,EAA0C,MAAnBD,OAA0B,EAASA,EAAgBrc,WAC1Euc,EAAwC,MAAnBF,OAA0B,EAASA,EAAgB/b,SACxEkc,EAAcD,EAAqBxmJ,SAASwmJ,GAAsBD,EAAuB/mG,IAAW,EAC1G,IAAIknG,EAAgB,KACpB,GAAmB,MAAf7K,GAAuBA,EAAYthL,OACrC,IAEImsL,EADyB,IAAvB7K,EAAYthL,QAAgBshL,EAAY,GAC1BqK,EAAmB59H,OAAOuzH,EAAY,IAAItR,SAE1CsR,EAAYphL,QAAO,CAACy6D,EAAK21G,KACvC,GAAIA,EAAS,CACX,MAAM8b,EAAkBT,EAAmB59H,OAAOuiH,GAClD,IAAK8b,EACH,MAAM,IAAIzuL,MAAM,qBAAqB2yK,eAGvC90K,OAAOwK,KAAKomL,EAAgBpc,UAAU3xK,SAAQE,IAC5Co8D,EAAIp8D,IAAQo8D,EAAIp8D,IAAQ,GAAK6tL,EAAgBpc,SAASzxK,EAAI,GAE9D,CACA,OAAOo8D,CAAG,GACT,CACD,EAAG,GAGT,CAAE,MAAOl2D,GACP,OAAO,CACT,CAEF,YAA4B1I,IAArBquE,EAAMwiG,aAA6BxiG,EAAM5sB,MAAQ,MAAQ4sB,EAAMhtB,OAAS,MAAQgtB,EAAMhtB,OAAS,MAAQgtB,EAAM5sB,MAAQ,MAAQ4sB,EAAMg2G,UAAYtjL,KAAKmrB,IAAI4jK,EAAkB,KAA4B,QAArBzhH,EAAM62G,YAAwB72G,EAAM62G,aAAe2K,GAAqBxhH,EAAMqkG,QAAU3xK,KAAKmrB,IAAI6jK,EAAW,SAAWK,GAAiB9+B,EAAe6+B,IAAgB1wL,OAAOwK,KAAKmmL,GAAelqL,MAAK+tK,GAAYvqI,SAASuqI,GAAYkc,GACla,CACA,SAASG,GAA4BjiH,EAAOuhH,EAAoBW,GAC9D,MAAMC,EAAcniH,EAAMwiG,WACpB4f,EAAcpiH,EAAMslG,WAC1B,IAAK6c,IAAgBC,IAAgBF,EACnC,OAAOtrL,QAAQC,QAAQmqL,IAEzB,MAAMqB,EAAyB,CAC7BjvI,MAAO4sB,EAAM5sB,MACbJ,OAAQgtB,EAAMhtB,OACdqxH,QAAS3xK,KAAKkmD,KAAKlmD,KAAKmrB,IAAoB,GAAhBmiD,EAAMqkG,QAAerkG,EAAM42G,iBAEvD0L,UAAWtiH,EAAMg2G,WAAa,IAE1Ba,EAAa72G,EAAM62G,WACN,QAAfA,IACFwL,EAAuBE,iBAAmB1L,EAAW/+I,eAEvD,MAAMmpJ,EAAiBkB,EAAYtvL,MAAM,KAAK2D,KAAIgsK,IAAc,CAC9DxtK,KAAM,eACNk0J,MAAOpG,EAAeA,EAAe,CAAC,EAAGu/B,GAAyB,CAAC,EAAG,CACpEG,YAAalgB,GAAiBE,EAAY,eA4B9C,OAzBI4f,GAAepiH,EAAMk3G,aACvBl3G,EAAMk3G,YAAYjjL,SAAQojL,IACxB,IAAIoL,EACCpL,IAGgE,OAApEoL,EAAwBlB,EAAmB59H,OAAO0zH,KAAkCoL,EAAsB7R,OAAO38K,SAAQ05K,IACxH,GAAIA,EAAWzH,UAAYmR,EAAc,CACvC,MAAMzR,EAAW+H,EAAW/H,UAAY,GAClC8c,EAAiB3tJ,WAAW6wI,GAC9B3iB,EAAey/B,IAAmBA,EAAiB,GACrDzB,EAAe3pL,KAAKsF,MAAMqkL,EAAgBmB,EAAYvvL,MAAM,KAAK2D,KAAI8uK,IAAc,CACjFtwK,KAAM,eACNi0J,MAAO,CACLu5B,YAAalgB,GAAiBgD,EAAY,SAC1CM,SAAU,GAAK8c,OAMvB,KACA,IAGC9rL,QAAQ81C,IAAIu0I,EAAezqL,KAAImsL,IAEpC,MAAMC,EAaV,SAAiC94H,GAC/B,MAAM,MACJm/F,EAAK,MACLC,GACEp/F,EACE+4H,EAAc35B,GAASD,EAC7B,GAAI45B,EAAa,CACf,MAAM5uB,EAAQ4uB,EAAYL,YAAY3vL,MAAM,KAAK,GACjD,GAAIq2J,EACF,MAAO,IAAIA,EAAMl2G,UAAUk2G,EAAM91G,SAAS1gD,KAAKkmD,KAAKswG,EAAMo5B,aAAap5B,EAAMq5B,kBAAoB,QAAQtuB,KAASvhK,KAAKkmD,KAAKswG,EAAMmb,QAAU,OAE9I,GAAIpb,EACF,MAAO,IAAIA,EAAM2c,WAAW3c,EAAM65B,iBAAmB,IAAM,OAAO7uB,GAEtE,CACA,MAAO,EACT,CA7B4B8uB,CAAwBJ,GAChD,OAAOtB,GAAqBuB,KAAqBvB,GAAqBuB,GAAmBV,EAAkBc,aAAaL,GAAe,KACrIvoL,MAAK8mL,IAAuB,CAC9Bh3J,WAAYg3J,EAAoBrpL,MAAKm1D,IAASA,EAAK9iC,YACnD+2J,iBACAC,0BACE7pD,OAAMh9H,IAAS,CACjB6vB,WAAW,EACX+2J,iBACAC,oBAAqB,GACrB7mL,WAEJ,CA4KA,SAAS4oL,GAA8BC,EAAS5kJ,GAC9Ci4C,EAAO31C,IAAI,gCAAgCsiJ,sBAA4B5kJ,IACzE,CAiFA,SAAS6kJ,GAAmBC,EAAQxS,EAAQ5zC,GAC1C,GAAI,UAAWomD,EAAQ,CACrB,MAAMl6K,EAAQ0nK,EAAOh9I,QAAQwvJ,GAC7B,IAAe,IAAXl6K,EACF,OAAOA,CAEX,CACA,IAAK,IAAI3P,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IAEjC,GAAI8pL,GAAcD,EADJxS,EAAOr3K,GACYyjI,GAC/B,OAAOzjI,EAGX,OAAQ,CACV,CACA,SAAS8pL,GAAcD,EAAQxvB,EAAO52B,GACpC,MAAM,QACJkpC,EAAO,KACProK,EAAI,KACJstI,EAAI,UACJw6B,EACA7tJ,QAASwrK,GACPF,EACEhd,EAASgd,EAAOhd,OACtB,YAAoBz0K,IAAZu0K,GAAyBtS,EAAMsS,UAAYA,UAAsBv0K,IAATkM,GAAsB+1J,EAAM/1J,OAASA,UAAmBlM,IAATw5I,GAAsByoB,EAAMzoB,OAASA,UAAmBx5I,IAATw5I,GAAsByoB,EAAM+R,YAAcA,UAA6Bh0K,IAAd2xL,GAA2B1vB,EAAM97I,UAAYwrK,UAA0B3xL,IAAXy0K,GAAwBxS,EAAMwS,SAAWA,OAAc,oBAAqBgd,IAEjW,SAA8BG,EAAkBC,EAAmB,IACjE,MAAMC,EAAOF,EAAiB1wL,MAAM,KAC9B6wL,EAAOF,EAAiB3wL,MAAM,KAEpC,OAAO4wL,EAAK7tL,SAAW8tL,EAAK9tL,SAAW6tL,EAAK5rL,MAAKulI,IAA4B,IAAtBsmD,EAAK9vJ,QAAQwpG,IACtE,CAP4WumD,CAAqBP,EAAOtd,iBAAmB,GAAIlS,EAAMkS,yBAAyCn0K,IAAnBqrI,GAAgCA,EAAeomD,EAAQxvB,GAClf,CAOA,SAASgwB,GAAoBR,EAAQxvB,GACnC,MAAM,WACJ0R,EAAU,SACVM,GACEwd,EACJ,aAAuBzxL,IAAf2zK,IAA6B1R,EAAM0R,YAAc,IAAI1yK,UAAU,EAAG,KAAO0yK,EAAW1yK,UAAU,EAAG,SAAqBjB,IAAbi0K,GAA0BA,KAAchS,EAAMgS,UAAY,KAC7K,CAoCA,SAASie,GAAoB3kL,EAAK4kL,EAAa9rL,GAC7C,IAAK,IAAIuB,EAAIuqL,EAAavqL,GAAK,EAAGA,IAChC,GAAIvB,EAAUkH,EAAI3F,IAChB,OAAOA,EAGX,IAAK,IAAIA,EAAIuqL,EAAc,EAAGvqL,EAAI2F,EAAItJ,OAAQ2D,IAC5C,GAAIvB,EAAUkH,EAAI3F,IAChB,OAAOA,EAGX,OAAQ,CACV,CAqpBA,MAAMwqL,GACJ,WAAAvjK,GACE/qB,KAAKuuL,gBAAa,EAClBvuL,KAAKwuL,WAAa,KAClBxuL,KAAKyuL,cAAgB,KACrBzuL,KAAK0uL,eAAiB,EACtB1uL,KAAKuuL,WAAavuL,KAAK2uL,KAAK3/K,KAAKhP,KACnC,CACA,OAAAiyE,GACEjyE,KAAK4uL,sBACL5uL,KAAK6uL,oBACP,CACA,mBAAAD,GAEE5uL,KAAK8uL,gBACL9uL,KAAKgoD,eACP,CACA,kBAAA6mI,GAAsB,CACtB,WAAAE,GACE,QAAS/uL,KAAKyuL,aAChB,CACA,WAAAO,GACE,QAAShvL,KAAKwuL,UAChB,CAMA,WAAAnnI,CAAY4nI,GACV,OAAKjvL,KAAKyuL,gBACRzuL,KAAK0uL,eAAiB,EACtB1uL,KAAKyuL,cAAgBnkK,KAAK+8B,YAAYrnD,KAAKuuL,WAAYU,IAChD,EAGX,CAKA,aAAAjnI,GACE,QAAIhoD,KAAKyuL,gBACPnkK,KAAK09B,cAAchoD,KAAKyuL,eACxBzuL,KAAKyuL,cAAgB,MACd,EAGX,CAKA,aAAAK,GACE,QAAI9uL,KAAKwuL,aACPlkK,KAAKi+B,aAAavoD,KAAKwuL,YACvBxuL,KAAKwuL,WAAa,MACX,EAGX,CAOA,IAAAG,GACE3uL,KAAK0uL,iBACuB,IAAxB1uL,KAAK0uL,iBACP1uL,KAAKkvL,SAGDlvL,KAAK0uL,eAAiB,GAExB1uL,KAAKmvL,gBAEPnvL,KAAK0uL,eAAiB,EAE1B,CACA,aAAAS,GACEnvL,KAAK8uL,gBACL9uL,KAAKwuL,WAAalkK,KAAK89B,WAAWpoD,KAAKuuL,WAAY,EACrD,CAMA,MAAAW,GAAU,EAGZ,IAAIE,GACU,aADVA,GAES,YAFTA,GAGO,UAHPA,GAIE,KAEN,MAAMC,GACJ,WAAAtkK,CAAY2pJ,GACV10K,KAAKsvL,gBAAkB3zL,OAAO+Q,OAAO,MACrC1M,KAAKuvL,iBAAmB5zL,OAAO+Q,OAAO,MACtC1M,KAAKi0J,UAAYt4J,OAAO+Q,OAAO,MAC/B1M,KAAKwvL,WAAa7zL,OAAO+Q,OAAO,MAChC1M,KAAKyvL,cAAgB,GACrBzvL,KAAK00K,SAAM,EACX10K,KAAK0vL,SAAU,EACf1vL,KAAK00K,IAAMA,EACX10K,KAAKi8K,oBACP,CACA,kBAAAA,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOkiC,gBAAiB3vL,KAAK4vL,iBAAkB5vL,MACtD00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MAClD00K,EAAI1yF,GAAGyrE,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,KAChD,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOkiC,gBAAiB3vL,KAAK4vL,iBAAkB5vL,MACvD00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MACnD00K,EAAI57E,IAAI20D,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,KACjD,CACA,OAAAiyE,GACEjyE,KAAKk8K,uBAELl8K,KAAKi0J,UAELj0J,KAAKsvL,gBAELtvL,KAAKuvL,iBAAmBvvL,KAAKwvL,WAAa,IAC5C,CAMA,eAAAS,CAAgB/4I,EAAUmhI,GACxB,MAAM6X,EAAclwL,KAAKsvL,gBAAgBjX,GACzC,GAAI6X,EACF,IAAK,IAAIpsL,EAAIosL,EAAY/vL,OAAQ2D,KAAM,CACrC,MAAMqsL,EAAaD,EAAYpsL,GAC/B,IAAKqsL,EACH,MAEF,MAAMC,EAAcD,EAAWnjL,IAC/B,GAAImjL,EAAWl3I,OAAS/B,GAA4B,OAAhBk5I,GAAwBl5I,GAAYk5I,EACtE,OAAOD,CAEX,CAEF,OAAOnwL,KAAKqwL,gBAAgBn5I,EAAUmhI,EACxC,CAOA,eAAAgY,CAAgBn5I,EAAUmhI,GACxB,MAAM,UACJpkB,GACEj0J,KACEmG,EAAOxK,OAAOwK,KAAK8tJ,GACzB,IAAK,IAAInwJ,EAAIqC,EAAKhG,OAAQ2D,KAAM,CAC9B,MAAMwsL,EAAiBr8B,EAAU9tJ,EAAKrC,IACtC,IAAuB,MAAlBwsL,OAAyB,EAASA,EAAen6I,KAAK52C,QAAU84K,GAAaiY,EAAe35K,SAAU,CACzG,MAAM08I,EAAOi9B,EAAen6I,KAC5B,GAAIk9G,EAAKp6G,OAAS/B,GAAYA,GAAYm8G,EAAKrmJ,IAC7C,OAAOqmJ,CAEX,CACF,CACA,OAAO,IACT,CAOA,sBAAAk9B,CAAuBC,EAAkBC,EAAWC,EAAcC,GAC5D3wL,KAAKwvL,aACPxvL,KAAKwvL,WAAWgB,GAAoBC,GAItC,MAAMG,GAAkC,MAAhBD,OAAuB,EAASA,EAAa7+I,SAASs/G,MAAQ,EACtFz1J,OAAOwK,KAAKnG,KAAKi0J,WAAWz1J,SAAQE,IAClC,MAAM4xL,EAAiBtwL,KAAKi0J,UAAUv1J,GACtC,IAAK4xL,EACH,OAEF,GAAIM,GAAkBN,EAAen6I,KAAKi7G,GACxC,OAEF,IAAKk/B,EAAe35K,WAAa25K,EAAe1gC,OAI9C,YAHI0gC,EAAen6I,KAAK52C,OAASmxL,GAC/B1wL,KAAK6wL,eAAeP,EAAen6I,OAIvC,MAAM26I,EAASR,EAAez8I,MAAM28I,GAC/BM,GAGLA,EAAOrzJ,KAAKr7B,MAAKq7B,IACf,MAAMszJ,GAAiB/wL,KAAKgxL,eAAevzJ,EAAKg0H,SAAUh0H,EAAKi0H,OAAQ++B,GAKvE,OAJIM,GAEF/wL,KAAK6wL,eAAeP,EAAen6I,MAE9B46I,CAAa,GACpB,GAEN,CAMA,sBAAAE,CAAuBrnL,GACrB,MAAM4lL,EAAaxvL,KAAKwvL,YAClB,KACJn8B,EAAI,KACJlmH,GACEvjC,EACJ,IAAK4lL,GAA0B,gBAAZn8B,EAAKjC,GACtB,OAEF,MAAM8/B,EAAUC,GAAe99B,GACzBi9B,EAAiBtwL,KAAKi0J,UAAUi9B,GACtC,IAAKZ,GAAkBA,EAAe35K,UAAY08I,EAAK1kC,IACrD,OAEF,MAAMyiE,GAAc/9B,EAAK7C,OACzB70J,OAAOwK,KAAKqpL,GAAYhxL,SAAQgyL,IAC9B,MAAMa,EAAah+B,EAAK5C,kBAAkB+/B,GAC1C,IAAKa,EACH,OAEF,MAAMZ,EAAYjB,EAAWgB,GACvBniI,EAAU+iI,IAAqC,IAAvBC,EAAWhjI,QACzCiiI,EAAez8I,MAAM28I,GAAoBxwL,KAAKsxL,iBAAiBj+B,EAAMlmH,EAAMkhB,EAASoiI,EAAU,IAEhGH,EAAe1gC,OAAS,KACpBj0J,OAAOwK,KAAKmqL,EAAez8I,OAAO1zC,QACpCmwL,EAAe35K,UAAW,GACV25K,EAAen6I,KAAKg8G,QAAUkB,EAAKlB,SAAWm+B,EAAen6I,KAAKg8G,WAEhFnyJ,KAAKuvL,iBAAiBe,EAAen6I,KAAK52C,MAAQ+wL,GAE/Cx7E,GAAUw7E,IAEbtwL,KAAKuxL,YAAYl+B,EAAKjC,GAAK,EAAGiC,EAAK9zJ,OAIrCS,KAAK6wL,eAAeP,EAAen6I,KAEvC,CACA,WAAAo7I,CAAYC,EAAUnZ,GACpB,MAAM6X,EAAclwL,KAAKsvL,gBAAgBjX,GACpC6X,IAGLlwL,KAAKsvL,gBAAgBjX,GAAa6X,EAAYp9K,QAAOq6B,GAAQA,EAAK2E,SAASs/G,IAAMogC,IACnF,CACA,YAAAC,CAAap+B,EAAMq+B,GACjB,MAAMR,EAAUC,GAAe99B,GAC/B,IAAIi9B,EAAiBtwL,KAAKi0J,UAAUi9B,IAC/BZ,GAAkBoB,IACrBpB,EAAiBtwL,KAAKi0J,UAAUi9B,GAAW,CACzC/6I,KAAMk9G,EACN+8B,YAAa,KACbxgC,OAAQ,KACRj5I,UAAU,EACVk9B,MAAOl4C,OAAO+Q,OAAO,OAEnB2mJ,EAAK1kC,MACP3uH,KAAK0vL,SAAU,IAGfY,IACFA,EAAe1gC,OAAS,KACxB0gC,EAAe35K,UAAW,EAE9B,CACA,gBAAA26K,CAAiBx/I,EAAU3E,EAAMkhB,EAASoiI,GACxC,MAAM95K,EAAW,CACf8mB,KAAM,GACN4wB,WAEIojG,EAAW3/G,EAASmH,MACpBy4G,EAAS5/G,EAAS9kC,IAClB+kJ,EAAYjgH,EAASigH,WAAaL,EAClCI,EAAchgH,EAASggH,aAAeL,EAC5C,IAAK,IAAI3tJ,EAAI,EAAGA,EAAI2sL,EAAUtwL,OAAQ2D,IAAK,CACzC,MAAMob,EAAYuxK,EAAUx3I,MAAMn1C,GAAK9D,KAAKyvL,cACtC7qH,EAAU6rH,EAAUzjL,IAAIlJ,GAAK9D,KAAKyvL,cACxC,GAAI39B,GAAe5yI,GAAa6yI,GAAantF,EAAS,CAGpDjuD,EAAS8mB,KAAK57B,KAAK,CACjB4vJ,SAAUx0J,KAAKmrB,IAAIqpI,EAAUg/B,EAAUx3I,MAAMn1C,IAC7C4tJ,OAAQz0J,KAAK6+B,IAAI41H,EAAQ++B,EAAUzjL,IAAIlJ,MAEzC,KACF,CAAO,GAAI2tJ,EAAW7sF,GAAW8sF,EAASxyI,EAAW,CACnD,MAAM+5B,EAAQh8C,KAAKmrB,IAAIqpI,EAAUg/B,EAAUx3I,MAAMn1C,IAC3CkJ,EAAM/P,KAAK6+B,IAAI41H,EAAQ++B,EAAUzjL,IAAIlJ,IACvCkJ,EAAMisC,IACRtiC,EAAS03C,SAAU,EAGnB13C,EAAS8mB,KAAK57B,KAAK,CACjB4vJ,SAAUx4G,EACVy4G,OAAQ1kJ,IAGd,MAAO,GAAI0kJ,GAAUxyI,EAEnB,KAEJ,CACA,OAAOvI,CACT,CAKA,kBAAAg7K,CAAmBl0J,GACjB,IACIm0J,EACA1yK,EACA0lD,EAHAitH,EAAe,KAIfC,EAAc,EAClB,MAAM,cACJrC,EAAa,UACbx7B,GACEj0J,KAmBJ,OAlBArE,OAAOwK,KAAK8tJ,GAAWz1J,SAAQE,IAC7B,MAAM4xL,EAAiBr8B,EAAUv1J,GAC5B4xL,GAGDx7E,GAAUw7E,KACZpxK,EAAYoxK,EAAen6I,KAAK8C,MAAQw2I,EACxC7qH,EAAU0rH,EAAen6I,KAAKnpC,IAAMyiL,EAChChyJ,GAAQve,GAAaue,GAAQmnC,IAE/BgtH,EAAc30L,KAAK6+B,IAAI2B,EAAOve,EAAW0lD,EAAUnnC,GAC/Cq0J,GAAeF,IACjBC,EAAevB,EAAen6I,KAC9B27I,EAAcF,IAGpB,IAEKC,CACT,CACA,iBAAAE,CAAkBxyL,GAChB,MAAMyyL,EAAqBhyL,KAAKuvL,iBAAiBhwL,GACjD,YAA8BrD,IAAvB81L,IAAqCA,EAAmBr7K,UAAYm+F,GAAUk9E,GACvF,CACA,QAAApzL,CAASkzC,GACP,MAAMo/I,EAAUC,GAAer/I,GACzBw+I,EAAiBtwL,KAAKi0J,UAAUi9B,GACtC,OAAIZ,EACGA,EAAe35K,SAETm+F,GAAUw7E,GACZlB,GAEAA,GAJAA,GAOJA,EACT,CACA,cAAA4B,CAAev/B,EAAUC,EAAQ++B,GAC/B,IAAIvxK,EACA0lD,EACJ,IAAK,IAAI9gE,EAAI,EAAGA,EAAI2sL,EAAUtwL,OAAQ2D,IAAK,CAGzC,GAFAob,EAAYuxK,EAAUx3I,MAAMn1C,GAAK9D,KAAKyvL,cACtC7qH,EAAU6rH,EAAUzjL,IAAIlJ,GAAK9D,KAAKyvL,cAC9Bh+B,GAAYvyI,GAAawyI,GAAU9sF,EACrC,OAAO,EAET,GAAI8sF,GAAUxyI,EAEZ,OAAO,CAEX,CACA,OAAO,CACT,CACA,YAAA8wK,CAAahqI,EAAOp8C,GAClB,MAAM,KACJypJ,EAAI,KACJlmH,GACEvjC,EAGJ,GAAgB,gBAAZypJ,EAAKjC,IAAwBiC,EAAKpB,YACpC,OAIF,MAAMrC,EAASziH,EAAO,KAAOvjC,EACvBsnL,EAAUC,GAAe99B,GAC/BrzJ,KAAKi0J,UAAUi9B,GAAW,CACxB/6I,KAAMk9G,EACN+8B,YAAa,KACbxgC,SACAj5I,UAAU,EACVk9B,MAAOl4C,OAAO+Q,OAAO,MAEzB,CACA,gBAAAkjL,CAAiB5pI,EAAOp8C,GACtB,MAAM,KACJypJ,EAAI,KACJlmH,EAAI,WACJqiJ,GACE5lL,EACJ,GAAgB,gBAAZypJ,EAAKjC,GACP,OAEF,MAAMs/B,EAAer9B,EAAK9zJ,KAC1B,GAAI4tC,EAAM,CACR,IAAI+iJ,EAAclwL,KAAKsvL,gBAAgBoB,GAClCR,IACHlwL,KAAKsvL,gBAAgBoB,GAAgBR,EAAc,IAErDA,EAAYruL,KAAKsrC,EACnB,CAEAntC,KAAKwvL,WAAaA,EAClB7zL,OAAOwK,KAAKqpL,GAAYhxL,SAAQgyL,IAC9B,MAAMC,EAAYjB,EAAWgB,GAC7BxwL,KAAKuwL,uBAAuBC,EAAkBC,EAAWC,EAAcvjJ,EAAK,GAEhF,CACA,cAAA2iJ,CAAe9pI,EAAOp8C,GACpB5J,KAAKixL,uBAAuBrnL,EAC9B,CACA,WAAAqoL,CAAYngJ,GACV,MAAMo/I,EAAUC,GAAer/I,GAC/B,QAAS9xC,KAAKi0J,UAAUi9B,EAC1B,CACA,QAAAgB,CAAS3yL,GACP,IAAI4yL,EACJ,QAAkE,OAAvDA,EAAwBnyL,KAAKsvL,gBAAgB/vL,MAAkB4yL,EAAsBhyL,OAClG,CACA,sBAAAiyL,CAAuBn5I,EAAOjsC,EAAK0jL,EAAc2B,EAAaC,GACxDD,IAAgBryL,KAAK0vL,SAGzB/zL,OAAOwK,KAAKnG,KAAKi0J,WAAWz1J,SAAQE,IAClC,MAAM4xL,EAAiBtwL,KAAKi0J,UAAUv1J,GACtC,IAAK4xL,EACH,OAEF,MAAMj9B,EAAOi9B,EAAen6I,KACxBk9G,EAAK9zJ,OAASmxL,GAAgB2B,IAAgBh/B,EAAK1kC,KAGnD0kC,EAAKp6G,MAAQjsC,GAAOqmJ,EAAKrmJ,IAAMisC,IAAUq3I,EAAe35K,UAAY27K,IACtEtyL,KAAK6wL,eAAex9B,EACtB,GAEJ,CACA,cAAAw9B,CAAe/+I,GACb,MAAMo/I,EAAUC,GAAer/I,GAC/BA,EAASkgH,MAAMpC,OAAS,EACxB99G,EAASohH,4BACT,MAAMg9B,EAAclwL,KAAKsvL,gBAAgBx9I,EAASvyC,MAClD,GAAI2wL,EAAa,CACf,MAAMqC,EAAazgJ,EAASs/G,GAC5BpxJ,KAAKsvL,gBAAgBx9I,EAASvyC,MAAQ2wL,EAAYp9K,QAAOq6B,GAAQA,EAAK2E,SAASs/G,KAAOmhC,GACxF,QACOvyL,KAAKi0J,UAAUi9B,GAClBp/I,EAASqgH,gBACJnyJ,KAAKuvL,iBAAiBz9I,EAASvyC,KAE1C,CACA,kBAAAizL,GACExyL,KAAKi0J,UAAYt4J,OAAO+Q,OAAO,MAC/B1M,KAAKuvL,iBAAmB5zL,OAAO+Q,OAAO,MACtC1M,KAAKsvL,gBAAkB3zL,OAAO+Q,OAAO,MACrC1M,KAAK0vL,SAAU,CACjB,EAEF,SAAS56E,GAAUw7E,GACjB,IAAImC,EAAuBC,EAAwBC,EACnD,OAAOrC,EAAe35K,WAAa25K,EAAen6I,KAAKw4E,MAAgE,OAAvD8jE,EAAwBnC,EAAez8I,MAAM4/G,YAAiB,EAASg/B,EAAsBpkI,WAAsE,OAAxDqkI,EAAyBpC,EAAez8I,MAAM2/G,YAAiB,EAASk/B,EAAuBrkI,WAA2E,OAA7DskI,EAAyBrC,EAAez8I,MAAM6/G,iBAAsB,EAASi/B,EAAuBtkI,SAC9X,CACA,SAAS8iI,GAAer/I,GACtB,MAAO,GAAGA,EAASvyC,QAAQuyC,EAASy4B,SAASz4B,EAASs/G,IACxD,CAUA,MAAMwhC,GAAe,CACnBzyL,OAAQ,EACR84C,MAAO,IAAM,EACbjsC,IAAK,IAAM,GAEb,MAAM6lL,GAIJ,iBAAOC,CAAWtiB,EAAOt5H,GACvB,IACE,GAAIs5H,EAAO,CACT,MAAM75J,EAAWk8K,GAAaE,YAAYviB,GAC1C,IAAK,IAAI1sK,EAAI,EAAGA,EAAI6S,EAASxW,OAAQ2D,IACnC,GAAIozC,GAAYvgC,EAASsiC,MAAMn1C,IAAMozC,GAAYvgC,EAAS3J,IAAIlJ,GAC5D,OAAO,CAGb,CACF,CAAE,MAAOc,GAIT,CACA,OAAO,CACT,CACA,iBAAO4jL,CAAWhY,EAAO3vI,EAAKmyJ,GAC5B,IACE,GAAIxiB,EAAO,CACT,MAAMyiB,EAAYJ,GAAaE,YAAYviB,GACrC75J,EAAW,GACjB,IAAI7S,EACJ,IAAKA,EAAI,EAAGA,EAAImvL,EAAU9yL,OAAQ2D,IAChC6S,EAAS9U,KAAK,CACZo3C,MAAOg6I,EAAUh6I,MAAMn1C,GACvBkJ,IAAKimL,EAAUjmL,IAAIlJ,KAGvB,OAAO9D,KAAKkzL,aAAav8K,EAAUkqB,EAAKmyJ,EAC1C,CACF,CAAE,MAAOpuL,GAIT,CACA,MAAO,CACLb,IAAK,EACLk1C,MAAOpY,EACP7zB,IAAK6zB,EACLsyJ,eAAWj3L,EAEf,CACA,mBAAOg3L,CAAav8K,EAAUkqB,EAAKmyJ,GACjCnyJ,EAAM5jC,KAAKmrB,IAAI,EAAGyY,GAElBlqB,EAAS+pB,MAAK,SAAUpgC,EAAGC,GAEzB,OADaD,EAAE24C,MAAQ14C,EAAE04C,OAIhB14C,EAAEyM,IAAM1M,EAAE0M,GAErB,IACA,IAAIomL,EAAY,GAChB,GAAIJ,EAIF,IAAK,IAAIlvL,EAAI,EAAGA,EAAI6S,EAASxW,OAAQ2D,IAAK,CACxC,MAAMuvL,EAAUD,EAAUjzL,OAC1B,GAAIkzL,EAAS,CACX,MAAMC,EAAUF,EAAUC,EAAU,GAAGrmL,IAEnC2J,EAAS7S,GAAGm1C,MAAQq6I,EAAUN,EAK5Br8K,EAAS7S,GAAGkJ,IAAMsmL,IACpBF,EAAUC,EAAU,GAAGrmL,IAAM2J,EAAS7S,GAAGkJ,KAI3ComL,EAAUvxL,KAAK8U,EAAS7S,GAE5B,MAEEsvL,EAAUvxL,KAAK8U,EAAS7S,GAE5B,MAEAsvL,EAAYz8K,EAEd,IAGI48K,EAHAC,EAAY,EAMZC,EAAc5yJ,EACdkkJ,EAAYlkJ,EAChB,IAAK,IAAI/8B,EAAI,EAAGA,EAAIsvL,EAAUjzL,OAAQ2D,IAAK,CACzC,MAAMm1C,EAAQm6I,EAAUtvL,GAAGm1C,MACrBjsC,EAAMomL,EAAUtvL,GAAGkJ,IAEzB,GAAI6zB,EAAMmyJ,GAAmB/5I,GAASpY,EAAM7zB,EAE1CymL,EAAcx6I,EACd8rI,EAAY/3K,EACZwmL,EAAYzO,EAAYlkJ,OACnB,GAAIA,EAAMmyJ,EAAkB/5I,EAAO,CACxCs6I,EAAkBt6I,EAClB,KACF,CACF,CACA,MAAO,CACLl1C,IAAKyvL,EACLv6I,MAAOw6I,GAAe,EACtBzmL,IAAK+3K,GAAa,EAClBoO,UAAWI,EAEf,CAMA,kBAAOR,CAAYviB,GACjB,IACE,OAAOA,EAAM75J,QACf,CAAE,MAAOja,GAEP,OADAokF,EAAO31C,IAAI,+BAAgCzuC,GACpCk2L,EACT,CACF,EAGF,MAAMc,GACJ,WAAA3oK,CAAYw/C,EAAO6mF,EAAIlkJ,EAAI+nB,EAAO,EAAGkY,GAAO,EAAIkhB,GAAU,GACxDruD,KAAKuqE,WAAQ,EACbvqE,KAAKoxJ,QAAK,EACVpxJ,KAAKmtC,UAAO,EACZntC,KAAKkN,QAAK,EACVlN,KAAKi1B,UAAO,EACZj1B,KAAKquD,aAAU,EACfruD,KAAK2zL,YAeA,CACL16I,MAAO,EACP26I,aAAc,EACdC,WAAY,EACZ7mL,IAAK,GAlBLhN,KAAKkwJ,UAAY,CACfsD,MAaG,CACLv6G,MAAO,EACP26I,aAAc,EACdC,WAAY,EACZ7mL,IAAK,GAhBHymJ,MAYG,CACLx6G,MAAO,EACP26I,aAAc,EACdC,WAAY,EACZ7mL,IAAK,GAfH0mJ,WAWG,CACLz6G,MAAO,EACP26I,aAAc,EACdC,WAAY,EACZ7mL,IAAK,IAbLhN,KAAKuqE,MAAQA,EACbvqE,KAAKoxJ,GAAKA,EACVpxJ,KAAKkN,GAAKA,EACVlN,KAAKi1B,KAAOA,EACZj1B,KAAKmtC,KAAOA,EACZntC,KAAKquD,QAAUA,CACjB,EAWF,SAASylI,GAAoB7/B,EAAWzC,GACtC,IAAK,IAAI1tJ,EAAI,EAAGC,EAAMkwJ,EAAU9zJ,OAAQ2D,EAAIC,EAAKD,IAAK,CACpD,IAAIiwL,EACJ,IAAsC,OAAhCA,EAAe9/B,EAAUnwJ,SAAc,EAASiwL,EAAaviC,MAAQA,EACzE,OAAOyC,EAAUnwJ,EAErB,CACA,OAAO,IACT,CAyBA,SAASkwL,GAAoB3gC,EAAM4gC,GACjC,GAAI5gC,EAAM,CACR,MAAMp6G,EAAQo6G,EAAKp6G,MAAQg7I,EAC3B5gC,EAAKp6G,MAAQo6G,EAAK5B,SAAWx4G,EAC7Bo6G,EAAK3B,OAASz4G,EAAQo6G,EAAKhyF,QAC7B,CACF,CACA,SAAS6yH,GAAmBD,EAASz9J,GAEnC,MAAMy9H,EAAYz9H,EAAQy9H,UAC1B,IAAK,IAAInwJ,EAAI,EAAGC,EAAMkwJ,EAAU9zJ,OAAQ2D,EAAIC,EAAKD,IAC/CkwL,GAAoB//B,EAAUnwJ,GAAImwL,GAGhCz9J,EAAQ09H,cACV8/B,GAAoBx9J,EAAQ09H,aAAc+/B,GAE5Cz9J,EAAQq9H,gBAAiB,CAC3B,CA6DA,SAASsgC,GAAwB39J,EAAS49J,GACxC,IAAK59J,EAAQmgI,qBAAuBy9B,EAAWz9B,mBAC7C,OAEF,MAAM1C,EAAYz9H,EAAQy9H,UACpBogC,EAAeD,EAAWngC,UAChC,IAAKA,EAAU9zJ,SAAWk0L,EAAal0L,OACrC,OAMF,IAAIm0L,EACAjhC,EACJ,MAAMkhC,EAAWt3L,KAAK6+B,IAAIs4J,EAAWrgC,MAAOv9H,EAAQu9H,OAChDqgC,EAAWx/B,QAAU2/B,GAAY/9J,EAAQo+H,QAAU2/B,IACrDD,EAAUR,GAAoBO,EAAcE,GAC5ClhC,EAAOygC,GAAoB7/B,EAAWsgC,IAEnCD,GAAYjhC,IACfihC,EAAUD,EAAap3L,KAAK6lD,MAAMuxI,EAAal0L,OAAS,IACxDkzJ,EAAOygC,GAAoB7/B,EAAWqgC,EAAQ9iC,KAAOyC,EAAUh3J,KAAK6lD,MAAMmxG,EAAU9zJ,OAAS,KAE/F,MAAMq0L,EAASF,EAAQpjC,gBACjBujC,EAAYphC,EAAKnC,gBAClBsjC,GAAWC,GAIhBP,IADeO,EAAYD,GAAU,KAAQnhC,EAAKp6G,MAAQq7I,EAAQr7I,OACxCziB,EAC5B,CAEA,MAAMk+J,GAAiBz3L,KAAK+oC,IAAI,EAAG,IAEnC,MAAM2uJ,GACJ,WAAA5pK,CAAYspC,GACVr0D,KAAKq0D,YAAS,EACdr0D,KAAKsxJ,OAAS,KACdtxJ,KAAK40L,iBAAmB,EACxB50L,KAAKq0D,OAASA,CAChB,CACA,OAAA4d,GACMjyE,KAAKsxJ,SACPtxJ,KAAKsxJ,OAAOr/E,UACZjyE,KAAKsxJ,OAAS,KAElB,CACA,KAAA7oJ,GACMzI,KAAKsxJ,QAEPtxJ,KAAKsxJ,OAAO7oJ,OAEhB,CACA,IAAA2gF,CAAKiqE,EAAMwhC,GACT,MAAMr/I,EAAM69G,EAAK79G,IACjB,IAAKA,EACH,OAAOr0C,QAAQE,OAAO,IAAIyzL,GAAU,CAClCv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAaonC,gBACtBpc,OAAO,EACPtlB,OACAzuJ,MAAO,IAAI9G,MAAM,6BAA4B03C,EAAM,YAAc,QACjEiiI,eAAgB,QAGpBz3K,KAAKyI,QACL,MAAM4rD,EAASr0D,KAAKq0D,OACd2gI,EAAkB3gI,EAAO4gI,QACzBC,EAAiB7gI,EAAOi9F,OAC9B,OAAO,IAAInwJ,SAAQ,CAACC,EAASC,KAI3B,GAHIrB,KAAKsxJ,QACPtxJ,KAAKsxJ,OAAOr/E,UAEVohF,EAAK1kC,IAAK,CACZ,GAAI0kC,EAAKlC,QAAQ/uJ,MAAK+9B,GAAoB,QAAZA,EAAK,KAEjC,YADA9+B,EAAO8zL,GAAmB9hC,IAI1BA,EAAK1kC,KAAM,CAEf,CACA,MAAM2iC,EAAStxJ,KAAKsxJ,OAAS+B,EAAK/B,OAAS0jC,EAAkB,IAAIA,EAAgB3gI,GAAU,IAAI6gI,EAAe7gI,GACxG+hH,EAAgBgf,GAAoB/hC,GACpC8iB,EAAa4N,GAA6B1vH,EAAOghI,eAAehzK,SAChE40J,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAU,EACVE,WAAY,EACZE,cAAe,EACfge,cAA2B,gBAAZjiC,EAAKjC,GAAuBhsE,IAAWsvG,IAGxDrhC,EAAKrB,MAAQV,EAAOU,MACpBV,EAAOloE,KAAKgtF,EAAea,EAAc,CACvCpuB,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpCz3K,KAAKu1L,YAAYliC,EAAM/B,GACvB,IAAIrlJ,EAAU1F,EAASqD,KACnB3C,EAAQuuL,SAAWniC,EAAKhB,cAC1BgB,EAAKhB,YAAYwT,GAAK,IAAIrwD,WAAWvpG,EAAQvI,MAAM,EAAG,KACtDuI,EAAUA,EAAQvI,MAAM,KAE1BtC,EAAQ,CACNiyJ,OACAlmH,KAAM,KACNlhC,UACAwrK,kBACA,EAEJxqK,QAAS,CAAC1G,EAAUU,EAASwwK,EAAgBzlB,KAC3ChyJ,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAaonC,gBACtBpc,OAAO,EACPtlB,OACA9sJ,SAAU8mJ,EAAe,CACvB73G,MACA5rC,UAAM1N,GACLqK,GACH3B,MAAO,IAAI9G,MAAM,cAAcyI,EAAS1J,QAAQ0J,EAASkwC,QACzDghI,iBACAzlB,UACC,EAELrlJ,QAAS,CAACqlJ,EAAO/qJ,EAASwwK,KACxBz3K,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa8nC,iBACtB9c,OAAO,EACPtlB,OACAzuJ,MAAO,IAAI9G,MAAM,WACjB25K,iBACAzlB,UACC,EAEL8lB,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bz3K,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa21B,kBACtB3K,OAAO,EACPtlB,OACAzuJ,MAAO,IAAI9G,MAAM,iBAAiBm5K,EAAap5G,aAC/C45G,iBACAzlB,UACC,EAEL6iC,WAAY,CAAC7iC,EAAO/qJ,EAAS2C,EAAM6tK,KAC7Bod,GACFA,EAAW,CACTxhC,OACAlmH,KAAM,KACNlhC,QAASrC,EACT6tK,kBAEJ,GAEF,GAEN,CACA,QAAAie,CAASriC,EAAMlmH,EAAM0nJ,GACnB70L,KAAKyI,QACL,MAAM4rD,EAASr0D,KAAKq0D,OACd2gI,EAAkB3gI,EAAO4gI,QACzBC,EAAiB7gI,EAAOi9F,OAC9B,OAAO,IAAInwJ,SAAQ,CAACC,EAASC,KAI3B,GAHIrB,KAAKsxJ,QACPtxJ,KAAKsxJ,OAAOr/E,UAEVohF,EAAK1kC,KAAOxhF,EAAKwhF,IAEnB,YADAttH,EAAO8zL,GAAmB9hC,EAAMlmH,IAGlC,MAAMmkH,EAAStxJ,KAAKsxJ,OAAS+B,EAAK/B,OAAS0jC,EAAkB,IAAIA,EAAgB3gI,GAAU,IAAI6gI,EAAe7gI,GACxG+hH,EAAgBgf,GAAoB/hC,EAAMlmH,GAE1CgpI,EAAa4N,GAA6B1vH,EAAOghI,eAAehzK,SAChE40J,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAU,EACVE,WAAY,EACZE,cAAe,EACfge,cAAeZ,IAGjBvnJ,EAAK6kH,MAAQV,EAAOU,MACpBV,EAAOloE,KAAKgtF,EAAea,EAAc,CACvCpuB,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpCz3K,KAAKu1L,YAAYliC,EAAM/B,GACvBtxJ,KAAK21L,oBAAoBtiC,EAAMlmH,GAC/B,MAAMyoJ,EAAiB,CACrBviC,OACAlmH,OACAlhC,QAAS1F,EAASqD,KAClB6tK,kBAEFod,EAAWe,GACXx0L,EAAQw0L,EAAe,EAEzB3oL,QAAS,CAAC1G,EAAUU,EAASwwK,EAAgBzlB,KAC3ChyJ,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAaonC,gBACtBpc,OAAO,EACPtlB,OACAlmH,OACA5mC,SAAU8mJ,EAAe,CACvB73G,IAAK4gI,EAAc5gI,IACnB5rC,UAAM1N,GACLqK,GACH3B,MAAO,IAAI9G,MAAM,cAAcyI,EAAS1J,QAAQ0J,EAASkwC,QACzDghI,iBACAzlB,UACC,EAELrlJ,QAAS,CAACqlJ,EAAO/qJ,EAASwwK,KACxBpkB,EAAKrB,MAAMrC,QAAUxiH,EAAK6kH,MAAMrC,QAChC3vJ,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa8nC,iBACtB9c,OAAO,EACPtlB,OACAlmH,OACAvoC,MAAO,IAAI9G,MAAM,WACjB25K,iBACAzlB,UACC,EAEL8lB,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bz3K,KAAKu1L,YAAYliC,EAAM/B,GACvBjwJ,EAAO,IAAIyzL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,QAASm3H,EAAa21B,kBACtB3K,OAAO,EACPtlB,OACAlmH,OACAvoC,MAAO,IAAI9G,MAAM,iBAAiBm5K,EAAap5G,aAC/C45G,iBACAzlB,UACC,GAEL,GAEN,CACA,mBAAA2jC,CAAoBtiC,EAAMlmH,GACxB,MAAM0oJ,EAAYxiC,EAAKrB,MACjB8jC,EAAY3oJ,EAAK6kH,MACjB+jC,EAAYD,EAAUhmC,MAE5B,GADA+lC,EAAUjmC,QAAUkmC,EAAUlmC,OAC1BmmC,EAAW,CACb,MAAMC,EAAgB/4L,KAAKgpC,MAAMotH,EAAKhyF,SAAWl0B,EAAKk0B,UAChD40H,EAAiBh5L,KAAK6+B,IAAI7+B,KAAKgpC,MAAM4vJ,EAAUjmC,OAASmmC,GAAYC,GAEpEE,GADoBF,EAAgBC,GACIh5L,KAAKgpC,MAAM4vJ,EAAUjmC,OAASqmC,GAC5EJ,EAAU/lC,MAAQ+lC,EAAUjmC,OAASsmC,CACvC,MACEL,EAAU/lC,MAAQ7yJ,KAAKmrB,IAAIytK,EAAUjmC,OAAQimC,EAAU/lC,OAEzD,MAAMqmC,EAAcN,EAAUnzE,QACxB0zE,EAAcN,EAAUpzE,QAC1ByzE,EAAYl9I,MAEdk9I,EAAYjhK,OAASkhK,EAAYlhK,MAAQkhK,EAAYn9I,OAErDk9I,EAAYl9I,MAAQm9I,EAAYn9I,MAChCk9I,EAAYjhK,MAAQkhK,EAAYlhK,OAElCihK,EAAYnpL,IAAMopL,EAAYppL,GAChC,CACA,WAAAuoL,CAAYliC,EAAM/B,GAChB+B,EAAK/B,OAAS,KACVtxJ,KAAKsxJ,SAAWA,IAClBhnI,KAAKi+B,aAAavoD,KAAK40L,iBACvB50L,KAAKsxJ,OAAS,MAEhBA,EAAOr/E,SACT,EAEF,SAASmjH,GAAoB/hC,EAAMlmH,EAAO,MACxC,MAAM0iB,EAAU1iB,GAAQkmH,EAClB+iB,EAAgB,CACpB/iB,OACAlmH,OACA6oI,aAAc,cACdxgI,IAAKqa,EAAQra,IACbmgD,QAAS,CAAC,EACV0gG,WAAY,EACZC,SAAU,GAENr9I,EAAQ4W,EAAQihG,qBAChB9jJ,EAAM6iD,EAAQ+gG,mBACpB,GAAIpD,EAAev0G,IAAUu0G,EAAexgJ,GAAM,CAChD,IAAIupL,EACJ,IAAIC,EAAiBv9I,EACjBw9I,EAAezpL,EACnB,GAAgB,gBAAZqmJ,EAAKjC,IAAiH,aAA9C,OAAzCmlC,EAAoBljC,EAAKhB,kBAAuB,EAASkkC,EAAkB/oK,QAAuB,CAInI,MAAMkpK,EAAc1pL,EAAMisC,EACtBy9I,EAAc,KAChBD,EAAezpL,GAAO,GAAK0pL,EAAc,KAE7B,IAAVz9I,IACFm9H,EAAcof,SAAU,EACxBgB,EAAiBv9I,EAAQ,GAE7B,CACAm9H,EAAcigB,WAAaG,EAC3BpgB,EAAckgB,SAAWG,CAC3B,CACA,OAAOrgB,CACT,CACA,SAAS+e,GAAmB9hC,EAAMlmH,GAChC,MAAMvoC,EAAQ,IAAI9G,MAAM,OAAOu1J,EAAK1kC,IAAM,MAAQ,qBAC5Cp+B,EAAY,CAChBhxF,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaipC,SACtBje,OAAO,EACPtlB,OACAzuJ,QACA6yK,eAAgB,MAMlB,OAJItqI,IACFojD,EAAUpjD,KAAOA,IAElBA,GAAckmH,GAAMrB,MAAMrC,SAAU,EAC9B,IAAImlC,GAAUvkG,EACvB,CACA,MAAMukG,WAAkBh3L,MACtB,WAAAitB,CAAYnhB,GACV2uB,MAAM3uB,EAAKhF,MAAM+Y,SACjB3d,KAAK4J,UAAO,EACZ5J,KAAK4J,KAAOA,CACd,EAGF,MAAMitL,GACJ,WAAA9rK,CAAY+rK,EAAQjxB,GAClB7lK,KAAK82L,YAAS,EACd92L,KAAK+2L,WAAQ,EACb/2L,KAAK82L,OAASA,EACd92L,KAAK+2L,MAAQlxB,CACf,CACA,OAAAmxB,CAAQptL,EAAMlL,GACZ,OAAOsB,KAAK82L,OAAOE,QAAQ,CACzB5uL,KAAM,UACNy9J,GAAI7lK,KAAK+2L,OACRr4L,EAAKkL,EACV,EAGF,MAAMqtL,GACJ,WAAAlsK,CAAY+rK,EAAQp4L,GAClBsB,KAAK82L,YAAS,EACd92L,KAAKtB,SAAM,EACXsB,KAAK82L,OAASA,EACd92L,KAAKtB,IAAMA,CACb,CACA,SAAAw4L,GACE,OAAOl3L,KAAK82L,OAAOK,UAAU,MAAOn3L,KAAKtB,IAAK,CAC5C0J,KAAM,YACL,EAAO,CAAC,UAAW,WACxB,EAYF,MAAMgvL,GACJ,WAAArsK,GACE/qB,KAAKq3L,KAAO,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,GAAM,GAAM,GAAM,IAAM,GAAM,IACpEr3L,KAAKs3L,OAAS,CAAC,IAAIvsD,YAAY,KAAM,IAAIA,YAAY,KAAM,IAAIA,YAAY,KAAM,IAAIA,YAAY,MACjG/qI,KAAKu3L,UAAY,CAAC,IAAIxsD,YAAY,KAAM,IAAIA,YAAY,KAAM,IAAIA,YAAY,KAAM,IAAIA,YAAY,MACpG/qI,KAAKw3L,KAAO,IAAIzsD,YAAY,KAC5B/qI,KAAKy3L,QAAU,IAAI1sD,YAAY,KAC/B/qI,KAAKtB,IAAM,IAAIqsI,YAAY,GAC3B/qI,KAAK03L,OAAS,EACd13L,KAAK23L,QAAU,EACf33L,KAAK43L,iBAAc,EACnB53L,KAAK63L,oBAAiB,EACtB73L,KAAK83L,WACP,CAGA,wBAAAC,CAAyBC,GACvB,MAAM3yB,EAAO,IAAI75B,SAASwsD,GACpBC,EAAW,IAAIltD,YAAY,GACjC,IAAK,IAAIjnI,EAAI,EAAGA,EAAI,EAAGA,IACrBm0L,EAASn0L,GAAKuhK,EAAKC,UAAc,EAAJxhK,GAE/B,OAAOm0L,CACT,CACA,SAAAH,GACE,MAAMN,EAAOx3L,KAAKw3L,KACZC,EAAUz3L,KAAKy3L,QACfH,EAASt3L,KAAKs3L,OACdY,EAAUZ,EAAO,GACjBa,EAAUb,EAAO,GACjBc,EAAUd,EAAO,GACjBe,EAAUf,EAAO,GACjBC,EAAYv3L,KAAKu3L,UACjBe,EAAaf,EAAU,GACvBgB,EAAahB,EAAU,GACvBiB,EAAajB,EAAU,GACvBkB,EAAalB,EAAU,GACvBh8K,EAAI,IAAIwvH,YAAY,KAC1B,IAAIlxG,EAAI,EACJ6+J,EAAK,EACL50L,EAAI,EACR,IAAKA,EAAI,EAAGA,EAAI,IAAKA,IAEjByX,EAAEzX,GADAA,EAAI,IACCA,GAAK,EAELA,GAAK,EAAI,IAGpB,IAAKA,EAAI,EAAGA,EAAI,IAAKA,IAAK,CACxB,IAAI60L,EAAKD,EAAKA,GAAM,EAAIA,GAAM,EAAIA,GAAM,EAAIA,GAAM,EAClDC,EAAKA,IAAO,EAAS,IAALA,EAAY,GAC5BnB,EAAK39J,GAAK8+J,EACVlB,EAAQkB,GAAM9+J,EAGd,MAAM++J,EAAKr9K,EAAEse,GACPg/J,EAAKt9K,EAAEq9K,GACPE,EAAKv9K,EAAEs9K,GAGb,IAAI5vL,EAAY,IAARsS,EAAEo9K,GAAmB,SAALA,EACxBT,EAAQr+J,GAAK5wB,GAAK,GAAKA,IAAM,EAC7BkvL,EAAQt+J,GAAK5wB,GAAK,GAAKA,IAAM,GAC7BmvL,EAAQv+J,GAAK5wB,GAAK,EAAIA,IAAM,GAC5BovL,EAAQx+J,GAAK5wB,EAGbA,EAAS,SAAL6vL,EAAsB,MAALD,EAAoB,IAALD,EAAiB,SAAJ/+J,EACjDy+J,EAAWK,GAAM1vL,GAAK,GAAKA,IAAM,EACjCsvL,EAAWI,GAAM1vL,GAAK,GAAKA,IAAM,GACjCuvL,EAAWG,GAAM1vL,GAAK,EAAIA,IAAM,GAChCwvL,EAAWE,GAAM1vL,EAGZ4wB,GAGHA,EAAI++J,EAAKr9K,EAAEA,EAAEA,EAAEu9K,EAAKF,KACpBF,GAAMn9K,EAAEA,EAAEm9K,KAHV7+J,EAAI6+J,EAAK,CAKb,CACF,CACA,SAAAxB,CAAU6B,GAER,MAAMr6L,EAAMsB,KAAK+3L,yBAAyBgB,GAC1C,IAAIC,GAAU,EACV9pI,EAAS,EACb,KAAOA,EAASxwD,EAAIyB,QAAU64L,GAC5BA,EAAUt6L,EAAIwwD,KAAYlvD,KAAKtB,IAAIwwD,GACnCA,IAEF,GAAI8pI,EACF,OAEFh5L,KAAKtB,IAAMA,EACX,MAAMi5L,EAAU33L,KAAK23L,QAAUj5L,EAAIyB,OACnC,GAAgB,IAAZw3L,GAA6B,IAAZA,GAA6B,IAAZA,EACpC,MAAM,IAAI75L,MAAM,wBAA0B65L,GAE5C,MAAMD,EAAS13L,KAAK03L,OAA6B,GAAnBC,EAAU,EAAI,GAC5C,IAAIsB,EACAC,EACJ,MAAMtB,EAAc53L,KAAK43L,YAAc,IAAI7sD,YAAY2sD,GACjDG,EAAiB73L,KAAK63L,eAAiB,IAAI9sD,YAAY2sD,GACvDyB,EAAOn5L,KAAKw3L,KACZH,EAAOr3L,KAAKq3L,KACZE,EAAYv3L,KAAKu3L,UACjBe,EAAaf,EAAU,GACvBgB,EAAahB,EAAU,GACvBiB,EAAajB,EAAU,GACvBkB,EAAalB,EAAU,GAC7B,IAAI92K,EACAxX,EACJ,IAAKgwL,EAAQ,EAAGA,EAAQvB,EAAQuB,IAC1BA,EAAQtB,EACVl3K,EAAOm3K,EAAYqB,GAASv6L,EAAIu6L,IAGlChwL,EAAIwX,EACAw4K,EAAQtB,GAAY,GAEtB1uL,EAAIA,GAAK,EAAIA,IAAM,GAGnBA,EAAIkwL,EAAKlwL,IAAM,KAAO,GAAKkwL,EAAKlwL,IAAM,GAAK,MAAS,GAAKkwL,EAAKlwL,IAAM,EAAI,MAAS,EAAIkwL,EAAS,IAAJlwL,GAG1FA,GAAKouL,EAAK4B,EAAQtB,EAAU,IAAM,IACzBA,EAAU,GAAKsB,EAAQtB,GAAY,IAE5C1uL,EAAIkwL,EAAKlwL,IAAM,KAAO,GAAKkwL,EAAKlwL,IAAM,GAAK,MAAS,GAAKkwL,EAAKlwL,IAAM,EAAI,MAAS,EAAIkwL,EAAS,IAAJlwL,IAE5F2uL,EAAYqB,GAASx4K,GAAQm3K,EAAYqB,EAAQtB,GAAW1uL,KAAO,GAErE,IAAKiwL,EAAW,EAAGA,EAAWxB,EAAQwB,IACpCD,EAAQvB,EAASwB,EAEfjwL,EADa,EAAXiwL,EACEtB,EAAYqB,GAEZrB,EAAYqB,EAAQ,GAGxBpB,EAAeqB,GADbA,EAAW,GAAKD,GAAS,EACAhwL,EAEAqvL,EAAWa,EAAKlwL,IAAM,KAAOsvL,EAAWY,EAAKlwL,IAAM,GAAK,MAASuvL,EAAWW,EAAKlwL,IAAM,EAAI,MAASwvL,EAAWU,EAAS,IAAJlwL,IAEjJ4uL,EAAeqB,GAAYrB,EAAeqB,KAAc,CAE5D,CAGA,sBAAAE,CAAuBC,GACrB,OAAOA,GAAQ,IAAa,MAAPA,IAAkB,GAAY,SAAPA,IAAoB,EAAIA,IAAS,EAC/E,CACA,OAAArC,CAAQsC,EAAkBpqI,EAAQ6nI,GAChC,MAAMwC,EAAUv5L,KAAK23L,QAAU,EACzBE,EAAiB73L,KAAK63L,eACtB2B,EAAUx5L,KAAKy3L,QACfF,EAAYv3L,KAAKu3L,UACjBe,EAAaf,EAAU,GACvBgB,EAAahB,EAAU,GACvBiB,EAAajB,EAAU,GACvBkB,EAAalB,EAAU,GACvBkC,EAAaz5L,KAAK+3L,yBAAyBhB,GACjD,IAAI2C,EAAcD,EAAW,GACzBE,EAAcF,EAAW,GACzBG,EAAcH,EAAW,GACzBI,EAAcJ,EAAW,GAC7B,MAAMK,EAAa,IAAIhvD,WAAWwuD,GAC5BS,EAAc,IAAIjvD,WAAWgvD,EAAW35L,QAC9C,IAAI65L,EAAIC,EAAIC,EAAIC,EACZC,EAAIC,EAAIC,EAAIC,EACZC,EAAaC,EAAaC,EAAaC,EACvC1B,EAAOn1L,EACX,MAAM82L,EAAW56L,KAAKo5L,uBACtB,KAAOlqI,EAAS4qI,EAAW35L,QAAQ,CAYjC,IAXAq6L,EAAcI,EAASd,EAAW5qI,IAClCurI,EAAcG,EAASd,EAAW5qI,EAAS,IAC3CwrI,EAAcE,EAASd,EAAW5qI,EAAS,IAC3CyrI,EAAcC,EAASd,EAAW5qI,EAAS,IAC3CkrI,EAAKI,EAAc3C,EAAe,GAClCwC,EAAKM,EAAc9C,EAAe,GAClCyC,EAAKI,EAAc7C,EAAe,GAClC0C,EAAKE,EAAc5C,EAAe,GAClCoB,EAAQ,EAGHn1L,EAAI,EAAGA,EAAIy1L,EAASz1L,IACvBk2L,EAAK1B,EAAW8B,IAAO,IAAM7B,EAAW8B,GAAM,GAAK,KAAQ7B,EAAW8B,GAAM,EAAI,KAAQ7B,EAAgB,IAAL8B,GAAa1C,EAAeoB,GAC/HgB,EAAK3B,EAAW+B,IAAO,IAAM9B,EAAW+B,GAAM,GAAK,KAAQ9B,EAAW+B,GAAM,EAAI,KAAQ9B,EAAgB,IAAL2B,GAAavC,EAAeoB,EAAQ,GACvIiB,EAAK5B,EAAWgC,IAAO,IAAM/B,EAAWgC,GAAM,GAAK,KAAQ/B,EAAW4B,GAAM,EAAI,KAAQ3B,EAAgB,IAAL4B,GAAaxC,EAAeoB,EAAQ,GACvIkB,EAAK7B,EAAWiC,IAAO,IAAMhC,EAAW6B,GAAM,GAAK,KAAQ5B,EAAW6B,GAAM,EAAI,KAAQ5B,EAAgB,IAAL6B,GAAazC,EAAeoB,EAAQ,GAEvImB,EAAKJ,EACLK,EAAKJ,EACLK,EAAKJ,EACLK,EAAKJ,EACLlB,GAAgB,EAIlBe,EAAKR,EAAQY,IAAO,KAAO,GAAKZ,EAAQa,GAAM,GAAK,MAAS,GAAKb,EAAQc,GAAM,EAAI,MAAS,EAAId,EAAa,IAALe,GAAa1C,EAAeoB,GACpIgB,EAAKT,EAAQa,IAAO,KAAO,GAAKb,EAAQc,GAAM,GAAK,MAAS,GAAKd,EAAQe,GAAM,EAAI,MAAS,EAAIf,EAAa,IAALY,GAAavC,EAAeoB,EAAQ,GAC5IiB,EAAKV,EAAQc,IAAO,KAAO,GAAKd,EAAQe,GAAM,GAAK,MAAS,GAAKf,EAAQY,GAAM,EAAI,MAAS,EAAIZ,EAAa,IAALa,GAAaxC,EAAeoB,EAAQ,GAC5IkB,EAAKX,EAAQe,IAAO,KAAO,GAAKf,EAAQY,GAAM,GAAK,MAAS,GAAKZ,EAAQa,GAAM,EAAI,MAAS,EAAIb,EAAa,IAALc,GAAazC,EAAeoB,EAAQ,GAG5Ic,EAAY7qI,GAAU0rI,EAASZ,EAAKN,GACpCK,EAAY7qI,EAAS,GAAK0rI,EAAST,EAAKR,GACxCI,EAAY7qI,EAAS,GAAK0rI,EAASV,EAAKN,GACxCG,EAAY7qI,EAAS,GAAK0rI,EAASX,EAAKJ,GAGxCH,EAAcc,EACdb,EAAcc,EACdb,EAAcc,EACdb,EAAcc,EACdzrI,GAAkB,CACpB,CACA,OAAO6qI,EAAYrwL,MACrB,EAKF,MAAMmxL,GACJ,WAAA9vK,CAAYspC,GAAQ,mBAClBymI,GAAqB,GACnB,CAAC,GAcH,GAbA96L,KAAK+6L,YAAa,EAClB/6L,KAAK86L,wBAAqB,EAC1B96L,KAAK82L,OAAS,KACd92L,KAAKg7L,kBAAoB,KACzBh7L,KAAKtB,IAAM,KACXsB,KAAKi7L,WAAa,KAClBj7L,KAAKk7L,cAAgB,KACrBl7L,KAAKm7L,UAAY,KACjBn7L,KAAKo7L,cAAgB,KACrBp7L,KAAKq7L,iBAAc,EACnBr7L,KAAKq7L,YAAchnI,EAAOinI,kBAC1Bt7L,KAAK86L,mBAAqBA,EAEtBA,EACF,IACE,MAAMS,EAAgBjxK,KAAKkxK,OACvBD,IACFv7L,KAAK82L,OAASyE,EAAczE,QAAUyE,EAAcE,aAExD,CAAE,MAAO/+L,GAET,CAEFsD,KAAKq7L,aAAer7L,KAAK82L,MAC3B,CACA,OAAA7kH,GACEjyE,KAAK82L,OAAS,KACd92L,KAAKg7L,kBAAoB,KACzBh7L,KAAKtB,IAAM,KACXsB,KAAKi7L,WAAa,KAClBj7L,KAAKk7L,cAAgB,KACrBl7L,KAAKm7L,UAAY,KACjBn7L,KAAKo7L,cAAgB,IACvB,CACA,MAAAM,GACE,OAAO17L,KAAKq7L,WACd,CACA,KAAAv5L,GACE,MAAM,cACJs5L,EAAa,cACbF,GACEl7L,KACJ,IAAKo7L,GAAiBF,EAEpB,OADAl7L,KAAKuyB,QACE,KAET,MAAM3oB,EAAO,IAAI4rG,WAAW4lF,GAE5B,OADAp7L,KAAKuyB,QACDvyB,KAAK86L,mBA7Rb,SAAuB74L,GACrB,MAAM05L,EAAc15L,EAAMq0G,WACpBslF,EAAeD,GAAe,IAAInwD,SAASvpI,EAAMyH,QAAQmyL,SAASF,EAAc,GACtF,OAAIC,EACK/hC,EAAW53J,EAAO,EAAG05L,EAAcC,GAErC35L,CACT,CAuRa65L,CAAclyL,GAEhBA,CACT,CACA,KAAA2oB,GACEvyB,KAAKo7L,cAAgB,KACrBp7L,KAAKm7L,UAAY,KACjBn7L,KAAKk7L,cAAgB,KACjBl7L,KAAKg7L,oBACPh7L,KAAKg7L,kBAAoB,KAE7B,CACA,OAAAhE,CAAQptL,EAAMlL,EAAKmnK,GACjB,OAAI7lK,KAAKq7L,YACA,IAAIl6L,SAAQ,CAACC,EAASC,KAC3BrB,KAAK+7L,gBAAgB,IAAIvmF,WAAW5rG,GAAOlL,EAAKmnK,GAChD,MAAMm2B,EAAgBh8L,KAAK8B,QACvBk6L,EACF56L,EAAQ46L,EAActyL,QAEtBrI,EAAO,IAAIvD,MAAM,4CACnB,IAGGkC,KAAKi8L,iBAAiB,IAAIzmF,WAAW5rG,GAAOlL,EAAKmnK,EAC1D,CAIA,eAAAk2B,CAAgBnyL,EAAMlL,EAAKmnK,GACzB,MAAM,UACJs1B,EAAS,cACTC,EAAa,cACbF,GACEl7L,KACJA,KAAKk8L,QAAQ,kBAMThB,IACFtxL,EAAOu3J,GAAiB+5B,EAAetxL,GACvC5J,KAAKk7L,cAAgB,MAIvB,MAAMiB,EAAen8L,KAAKo8L,cAAcxyL,GACxC,IAAKuyL,EAAah8L,OAChB,OAAO,KAELg7L,IACFt1B,EAAKs1B,GAEP,IAAIH,EAAoBh7L,KAAKg7L,kBACxBA,IACHA,EAAoBh7L,KAAKg7L,kBAAoB,IAAI5D,IAEnD4D,EAAkB9D,UAAUx4L,GAC5B,MAAM/B,EAASy+L,EAGf,OAFAp7L,KAAKo7L,cAAgBJ,EAAkBhE,QAAQmF,EAAazyL,OAAQ,EAAGm8J,GACvE7lK,KAAKm7L,UAAYthC,EAAWsiC,GAAe,IAAIzyL,OAC1C/M,GACI,IAGX,CACA,gBAAAs/L,CAAiBryL,EAAMlL,EAAKmnK,GAC1B,GAAI7lK,KAAKtB,MAAQA,IAAQsB,KAAKi7L,WAAY,CACxC,IAAKj7L,KAAK82L,OACR,OAAO31L,QAAQC,QAAQpB,KAAKq8L,iBAAiBzyL,EAAMlL,EAAKmnK,IAE1D7lK,KAAKtB,IAAMA,EACXsB,KAAKi7L,WAAa,IAAIhE,GAAWj3L,KAAK82L,OAAQp4L,EAChD,CACA,OAAOsB,KAAKi7L,WAAW/D,YAAYvyL,MAAK23L,GAEjCt8L,KAAK82L,QAGV92L,KAAKk8L,QAAQ,yBACE,IAAIrF,GAAU72L,KAAK82L,OAAQ,IAAIthF,WAAWqwD,IAC3CmxB,QAAQptL,EAAKF,OAAQ4yL,IAJ1Bn7L,QAAQE,OAAO,IAAIvD,MAAM,iCAKjC8jI,OAAMj8H,IACPm7E,EAAO/jD,KAAK,wDAAwDp3B,EAAIyC,SAASzC,EAAIgY,WAC9E3d,KAAKq8L,iBAAiBzyL,EAAMlL,EAAKmnK,KAE5C,CACA,gBAAAw2B,CAAiBzyL,EAAMlL,EAAKmnK,GAC1B7lK,KAAKq7L,aAAc,EACnBr7L,KAAK+6L,YAAa,EAClB/6L,KAAK+7L,gBAAgBnyL,EAAMlL,EAAKmnK,GAChC,MAAMm2B,EAAgBh8L,KAAK8B,QAC3B,GAAIk6L,EACF,OAAOA,EAActyL,OAEvB,MAAM,IAAI5L,MAAM,wDAClB,CACA,aAAAs+L,CAAcxyL,GACZ,IAAIuyL,EAAevyL,EACnB,MAAM2yL,EAAa3yL,EAAKzJ,OAASyJ,EAAKzJ,OA3JvB,GAgKf,OAJIo8L,IAAe3yL,EAAKzJ,SACtBg8L,EAAetiC,EAAWjwJ,EAAM,EAAG2yL,GACnCv8L,KAAKk7L,cAAgBrhC,EAAWjwJ,EAAM2yL,IAEjCJ,CACT,CACA,OAAAD,CAAQ78J,GACDr/B,KAAK+6L,aAGVj6G,EAAO31C,IAAI,gBAAgB9L,KAC3Br/B,KAAK+6L,YAAa,EACpB,EAOF,MAWM/9J,GACK,UADLA,GAEE,OAFFA,GAGS,cAHTA,GAIU,eAJVA,GAKwB,6BALxBA,GAMW,gBANXA,GAOK,UAPLA,GAQI,SARJA,GASG,QATHA,GAUG,QAVHA,GAWc,mBAXdA,GAYW,gBAEjB,MAAMw/J,WAA6BlO,GACjC,WAAAvjK,CAAY2pJ,EAAK+nB,EAAiBlrC,EAAWq0B,EAAW8K,GACtDn4J,QACAv4B,KAAK00K,SAAM,EACX10K,KAAK8kL,aAAe,KACpB9kL,KAAK08L,YAAc,KACnB18L,KAAKy8L,qBAAkB,EACvBz8L,KAAK28L,WAAa,KAClB38L,KAAK48L,OAAS5/J,GACdh9B,KAAK0wL,kBAAe,EACpB1wL,KAAKwwK,MAAQ,KACbxwK,KAAK68L,YAAc,KACnB78L,KAAKq0D,YAAS,EACdr0D,KAAKiyJ,aAAc,EACnBjyJ,KAAK88L,gBAAkB,EACvB98L,KAAK+8L,iBAAmB,EACxB/8L,KAAK80K,cAAgB,EACrB90K,KAAK80J,gBAAkB,KACvB90J,KAAKg9L,gBAAiB,EACtBh9L,KAAKi9L,UAAY,EACjBj9L,KAAKuuK,OAAS,KACdvuK,KAAKk9L,oBAAiB,EACtBl9L,KAAKuxJ,eAAY,EACjBvxJ,KAAKm9L,gBAAkB,KACvBn9L,KAAKo9L,oBAAqB,EAC1Bp9L,KAAKq9L,eAAY,EACjBr9L,KAAKs9L,QAAU,GACft9L,KAAKkwJ,WAAY,EACjBlwJ,KAAKu9L,WAAa,KAClBv9L,KAAKw9L,SAAW,KAChBx9L,KAAK4lL,UAAY,GACjB5lL,KAAKmrC,SAAM,EACXnrC,KAAK+8B,UAAO,EACZ/8B,KAAK0wL,aAAeA,EACpB1wL,KAAK4lL,UAAYA,EACjB5lL,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQ,GAAG8kG,MACtC5lL,KAAK+8B,KAAO+jD,EAAO/jD,KAAK/tB,KAAK8xE,EAAQ,GAAG8kG,MACxC5lL,KAAK00K,IAAMA,EACX10K,KAAKk9L,eAAiB,IAAIvI,GAAejgB,EAAIrgH,QAC7Cr0D,KAAKuxJ,UAAYA,EACjBvxJ,KAAKy8L,gBAAkBA,EACvBz8L,KAAKq0D,OAASqgH,EAAIrgH,OAClBr0D,KAAKq9L,UAAY,IAAIxC,GAAUnmB,EAAIrgH,QACnCqgH,EAAI1yF,GAAGyrE,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,KACxD,CACA,MAAAkvL,GACElvL,KAAK09L,WACP,CACA,SAAAA,GAAa,CAGb,SAAA7oB,CAAUC,GAAgB,CAC1B,QAAAC,GACE/0K,KAAKk9L,eAAez0L,QACpBzI,KAAKuxJ,UAAU9oJ,MAAMzI,KAAK0wL,cAC1B,MAAMr9B,EAAOrzJ,KAAK08L,YACN,MAARrpC,GAAgBA,EAAK/B,SACvB+B,EAAKP,gBACL9yJ,KAAKy8L,gBAAgB5L,eAAex9B,IAEtCrzJ,KAAK29L,kBACL39L,KAAK08L,YAAc,KACnB18L,KAAK8kL,aAAe,KACpB9kL,KAAKgoD,gBACLhoD,KAAK8uL,gBACL9uL,KAAK6P,MAAQmtB,EACf,CACA,cAAA4gK,GACE59L,KAAKkwJ,WAAY,CACnB,CACA,eAAA2tC,GACE79L,KAAKkwJ,WAAY,CACnB,CACA,YAAA4tC,CAAatV,EAAY/R,GAGvB,GAAIA,EAAapiB,MAAQm0B,EAAW2K,YAAc3K,EAAWx7K,MAAQhN,KAAKwwK,MACxE,OAAO,EAET,MAAMrc,EAAWsiB,EAAatiB,SAG9B,GAAgB,MAAZA,GAAoBA,EAASh0J,OAAQ,CACvC,MAAMgoL,EAAWh0B,EAASA,EAASh0J,OAAS,GAO5C,OADyB0yL,GAAaC,WAAW9yL,KAAKwwK,MAAO2X,EAASlvI,MAAQkvI,EAAS9mH,SAAW,EAEpG,CACA,MAAMqvH,EAAeja,EAAaxiB,UAAUwiB,EAAaxiB,UAAU9zJ,OAAS,GAAGZ,KAC/E,OAAOS,KAAKy8L,gBAAgB1K,kBAAkBrB,EAChD,CACA,eAAAqN,GAEI,IAAIC,EADN,GAAIh+L,KAAKuuK,QAAmC,OAAzBvuK,KAAKm9L,gBAEtB,OAAyD,OAAjDa,EAAwBh+L,KAAKm9L,sBAA2B,EAASa,EAAsBxnK,OAEnG,CACA,eAAA4lJ,CAAgBp2H,EAAOp8C,GACrB,MAAM4mK,EAAQxwK,KAAKwwK,MAAQxwK,KAAK68L,YAAcjzL,EAAK4mK,MACnDxwK,KAAKu9L,WAAav9L,KAAKi+L,eAAejvL,KAAKhP,MAC3CA,KAAKw9L,SAAWx9L,KAAKk+L,aAAalvL,KAAKhP,MACvCwwK,EAAMv6H,iBAAiB,UAAWj2C,KAAKu9L,YACvC/sB,EAAMv6H,iBAAiB,QAASj2C,KAAKw9L,UACrC,MAAMnpI,EAASr0D,KAAKq0D,OAChBr0D,KAAKuuK,QAAUl6G,EAAO8pI,eAAiBn+L,KAAK6P,QAAUmtB,IACxDh9B,KAAK60K,UAAUxgH,EAAOygH,cAE1B,CACA,gBAAAwH,GACE,MAAM9L,EAAQxwK,KAAKwwK,MACN,MAATA,GAAiBA,EAAM4tB,QACzBp+L,KAAKmrC,IAAI,sDACTnrC,KAAK80K,cAAgB90K,KAAK88L,gBAAkB,GAI1CtsB,GAASxwK,KAAKu9L,YAAcv9L,KAAKw9L,WACnChtB,EAAMp1E,oBAAoB,UAAWp7F,KAAKu9L,YAC1C/sB,EAAMp1E,oBAAoB,QAASp7F,KAAKw9L,UACxCx9L,KAAKu9L,WAAav9L,KAAKw9L,SAAW,MAEhCx9L,KAAKuxJ,WACPvxJ,KAAKuxJ,UAAUnmC,SAEjBprH,KAAKwwK,MAAQxwK,KAAK68L,YAAc,KAChC78L,KAAKg9L,gBAAiB,EACtBh9L,KAAKy8L,gBAAgBjK,qBACrBxyL,KAAK+0K,UACP,CACA,cAAAkpB,GACE,MAAM,OACJ5pI,EAAM,YACNqoI,EAAW,MACXlsB,EAAK,YACLqsB,EAAW,MACXhtL,GACE7P,KACE6tH,EAAc2iD,EAAQA,EAAM3iD,YAAc,EAC1C26D,EAAaqK,GAAarK,WAAWqU,GAA4BrsB,EAAO3iD,EAAax5D,EAAOgqI,eAElG,GADAr+L,KAAKmrC,IAAI,oBAAoBqiH,EAAe3/B,GAAeA,EAAYjkD,QAAQ,GAAKikD,aAAuBh+G,KACvG7P,KAAK6P,QAAUmtB,GACjBh9B,KAAKs+L,yBACA,GAAI5B,EAAa,CAEtB,MAAM6B,EAAYlqI,EAAO2wH,uBACnBwZ,EAAkB9B,EAAYzjJ,MAAQslJ,EACtCE,EAAgB/B,EAAYzjJ,MAAQyjJ,EAAYr7H,SAAWk9H,EAEjE,IAAK/V,EAAWzkL,KAAO06L,EAAgBjW,EAAWvvI,OAASulJ,EAAkBhW,EAAWx7K,IAAK,CAC3F,MAAM0xL,EAAe7wE,EAAc4wE,GAE/B5wE,EAAc2wE,GAAmBE,KAC/BA,GAAgBhC,EAAYprC,SAC9BtxJ,KAAKmrC,IAAI,mFACTuxJ,EAAY5pC,gBACZ9yJ,KAAKs+L,qBAEPt+L,KAAK8kL,aAAe,KAExB,CACF,CACItU,IAEFxwK,KAAKy8L,gBAAgBrK,uBAAuBvkE,EAAazoC,IAAUplF,KAAK0wL,cAAc,GACtF1wL,KAAK88L,gBAAkBjvE,GAIpB7tH,KAAKg9L,gBAAmBxU,EAAWzkL,MACtC/D,KAAK+8L,iBAAmB/8L,KAAK80K,cAAgBjnD,GAI/C7tH,KAAKmvL,eACP,CACA,YAAA+O,GAEEl+L,KAAK80K,cAAgB90K,KAAK88L,gBAAkB,CAC9C,CACA,gBAAAW,CAAiBz3I,EAAOp8C,GACtB5J,KAAK80J,gBAAkBlrJ,EAAKkrJ,gBAC5B90J,KAAKs9L,QAAU,EACjB,CACA,mBAAA1O,GACE5uL,KAAK00K,IAAI57E,IAAI20D,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MAC5DA,KAAK+0K,WACLx8I,MAAMq2J,sBAEN5uL,KAAK00K,IAAM,IACb,CACA,kBAAAma,GACE7uL,KAAK6P,MAAQmtB,GACTh9B,KAAKk9L,gBACPl9L,KAAKk9L,eAAejrH,UAElBjyE,KAAKuxJ,WACPvxJ,KAAKuxJ,UAAUt/E,UAEbjyE,KAAKq9L,WACPr9L,KAAKq9L,UAAUprH,UAEjBjyE,KAAK00K,IAAM10K,KAAKmrC,IAAMnrC,KAAK+8B,KAAO/8B,KAAKq9L,UAAYr9L,KAAKuxJ,UAAYvxJ,KAAKk9L,eAAiBl9L,KAAKy8L,gBAAkB,KACjHlkK,MAAMs2J,oBACR,CACA,YAAA8P,CAAatrC,EAAM9oF,EAAOq0H,GACxB5+L,KAAK6+L,qBAAqBxrC,EAAM9oF,EAAOq0H,EACzC,CACA,oBAAAC,CAAqBxrC,EAAM9oF,EAAOq0H,GAUhC5+L,KAAK8+L,YAAYzrC,EAAM9oF,EAAOq0H,GATLh1L,IACvB,GAAI5J,KAAK++L,mBAAmB1rC,GAG1B,OAFArzJ,KAAK+8B,KAAK,YAAYs2H,EAAKjC,KAAKxnJ,EAAKujC,KAAO,OAASvjC,EAAKujC,KAAK15B,MAAQ,eAAe4/I,EAAK9oF,2CAC3FvqE,KAAKy8L,gBAAgB5L,eAAex9B,GAGtCA,EAAKrB,MAAMjC,aACX/vJ,KAAKg/L,4BAA4Bp1L,EAAK,IAE0BjF,MAAKiF,IACrE,IAAKA,EAEH,OAEF,MAAMiG,EAAQ7P,KAAK6P,MACf7P,KAAK++L,mBAAmB1rC,IACtBxjJ,IAAUmtB,KAAuBh9B,KAAK08L,aAAe7sL,IAAUmtB,MACjEh9B,KAAKy8L,gBAAgB5L,eAAex9B,GACpCrzJ,KAAK6P,MAAQmtB,KAIb,YAAapzB,IACf5J,KAAKmrC,IAAI,mBAAmBkoH,EAAKjC,eAAeiC,EAAK9oF,SACrDvqE,KAAK00K,IAAIrrE,QAAQokD,EAAOsiC,YAAanmL,IAIvC5J,KAAKi/L,4BAA4Br1L,GAAK,IACrCg4H,OAAM/4F,IACH7oC,KAAK6P,QAAUmtB,IAAiBh9B,KAAK6P,QAAUmtB,KAGnDh9B,KAAK+8B,KAAK,gBAA0B,MAAV8L,OAAiB,EAASA,EAAOlrB,UAAYkrB,KACvE7oC,KAAKk/L,qBAAqB7rC,GAAK,GAEnC,CACA,oBAAA8rC,CAAqB9rC,GACnB,IAAI+rC,EACJ,MAAM,gBACJ3C,GACEz8L,KAEJ,GADkBy8L,EAAgB79L,SAASy0J,KACzB+7B,GAAyB,CAEzC,MAAMsB,EAAer9B,EAAK9zJ,KACpB2zL,EAAelzL,KAAKq/L,iBAAiBr/L,KAAK68L,YAAanM,GACvD4O,EAAyBriM,KAAKmrB,IAAIirI,EAAKhyF,SAAU6xH,EAAeA,EAAanvL,IAAM/D,KAAKq0D,OAAOkrI,iBAE/FC,EAAoBx/L,KAAKw/L,mBAEX,IADAA,EAAoBnsC,EAAKjC,GAAKouC,EAAkBpuC,GAAK,IAChDpxJ,KAAKy/L,sBAAsBH,EAAwBjsC,EAAKhyF,YAC/Eo7H,EAAgB5L,eAAex9B,EAEnC,MAA6G,KAAvD,OAAzC+rC,EAAoBp/L,KAAK68L,kBAAuB,EAASuC,EAAkBzoL,SAASxW,QAE/Fs8L,EAAgBjK,qBACPiK,EAAgBvK,SAAS7+B,EAAK9zJ,QAEvCk9L,EAAgBxL,uBAAuB,CACrC59B,OACAlmH,KAAM,KACN6kH,MAAOqB,EAAKrB,MACZ9kJ,GAAImmJ,EAAK9zJ,OAEPk9L,EAAgB79L,SAASy0J,KAAU+7B,IACrCqN,EAAgB5L,eAAex9B,GAGrC,CACA,eAAAqsC,CAAgBlpK,GACd,GAAIA,EAAQg+H,UAAYh+H,EAAQ69H,KAAM,CAEpC,MAAMqe,EAAel8I,EAAQy9H,UAAUz9H,EAAQy9H,UAAU9zJ,OAAS,GAClEH,KAAKy8L,gBAAgBxL,uBAAuB,CAC1C59B,KAAMqf,EACNvlI,KAAM,KACN6kH,MAAO0gB,EAAa1gB,MACpB9kJ,GAAIwlK,EAAanzK,MAErB,CACKi3B,EAAQy9H,UAAU,KACrBz9H,EAAQq/H,mBAAoB,EAEhC,CACA,eAAA8pC,CAAgBriB,EAAaC,EAAWh+K,EAAO,MAC7C,KAAM+9K,EAAcC,GAClB,OAIF,MAAMqiB,EAAa,CACjBtiB,cACAC,YACAh+K,QAEFS,KAAK00K,IAAIrrE,QAAQokD,EAAOgvB,gBAAiBmjB,EAC3C,CACA,gBAAAC,CAAiBxsC,EAAM9oF,GACrBvqE,KAAK8+L,YAAYzrC,EAAM9oF,GAAO5lE,MAAKiF,IACjC,IAAKA,GAAQ5J,KAAK++L,mBAAmB1rC,KAAUrzJ,KAAKuuK,OAClD,MAAM,IAAIzwK,MAAM,qBAElB,OAAO8L,CAAI,IACVjF,MAAKiF,IACN,MAAM,IACJ8qK,GACE10K,MACE,QACJiM,GACErC,EACEk2L,EAAczsC,EAAKhB,YAGzB,GAAIpmJ,GAAWA,EAAQqqG,WAAa,GAAoB,MAAfwpF,GAAuBA,EAAYphM,KAAOohM,EAAYj6B,IAA6B,YAAvBi6B,EAAYtyK,OAAsB,CACrI,MAAMtO,EAAYoL,KAAKrS,YAAYgM,MAEnC,OAAOjkB,KAAKq9L,UAAUrG,QAAQ,IAAIxhF,WAAWvpG,GAAU6zL,EAAYphM,IAAIgL,OAAQo2L,EAAYj6B,GAAGn8J,QAAQk4H,OAAMj8H,IAS1G,MARA+uK,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaoyC,mBACtBpnB,OAAO,EACP/zK,MAAOe,EACPkjC,OAAQljC,EAAIgY,QACZ01I,SAEI1tJ,CAAG,IACRhB,MAAKq7L,IACN,MAAMp7H,EAAUt6C,KAAKrS,YAAYgM,MAUjC,OATAywJ,EAAIrrE,QAAQokD,EAAOwyC,eAAgB,CACjC5sC,OACApnJ,QAAS+zL,EACThuC,MAAO,CACLkuC,OAAQhhL,EACRihL,SAAUv7H,KAGdh7D,EAAKqC,QAAU+zL,EACRhgM,KAAKogM,wBAAwBx2L,EAAK,GAE7C,CACA,OAAO5J,KAAKogM,wBAAwBx2L,EAAK,IACxCg4H,OAAM/4F,IACH7oC,KAAK6P,QAAUmtB,IAAiBh9B,KAAK6P,QAAUmtB,KAGnDh9B,KAAK+8B,KAAK8L,GACV7oC,KAAKk/L,qBAAqB7rC,GAAK,GAEnC,CACA,uBAAA+sC,CAAwBx2L,GACtB,MAAM,OACJ2kK,GACEvuK,KACJ,IAAKuuK,EACH,MAAM,IAAIzwK,MAAM,qCAElB,MAAMk0J,EAAQpoJ,EAAKypJ,KAAKrB,MACxBhyJ,KAAK6P,MAAQmtB,GACbpzB,EAAKypJ,KAAKzpJ,KAAO,IAAI4rG,WAAW5rG,EAAKqC,SACrC+lJ,EAAM/B,QAAQh3G,MAAQ+4G,EAAM9B,UAAUj3G,MAAQ3uB,KAAKrS,YAAYgM,MAC/D+tI,EAAM/B,QAAQjjJ,IAAMglJ,EAAM9B,UAAUljJ,IAAMsd,KAAKrS,YAAYgM,MAC3DjkB,KAAK2uL,MACP,CACA,kBAAAoQ,CAAmB1rC,GACjB,MAAM,YACJqpC,GACE18L,KACJ,OAAQqzJ,IAASqpC,GAAerpC,EAAKjC,KAAOsrC,EAAYtrC,IAAMiC,EAAK9oF,QAAUmyH,EAAYnyH,KAC3F,CACA,oBAAA81H,CAAqBhtC,EAAMlmH,GACzB,IAAImzJ,EAAgBC,EAAcC,EAAmBC,EACrD,MAAMjwB,EAAQxwK,KAAK68L,YAAc78L,KAAK68L,YAAc78L,KAAKwwK,MAEzD,GADAxwK,KAAKmrC,IAAI,YAAYkoH,EAAK9zJ,YAAY8zJ,EAAKjC,KAAKjkH,EAAO,UAAYA,EAAK15B,MAAQ,SAASzT,KAAK0wL,eAAiBpc,GAAyB,QAAU,WAAWjhB,EAAK9oF,iBAAqD,OAAnC+1H,EAAiBjtC,EAAK5B,UAAoB6uC,EAAiBI,KAAK92H,QAAQ,OAAuC,OAA/B22H,EAAeltC,EAAK3B,QAAkB6uC,EAAeG,KAAK92H,QAAQ,gBAAgB4mG,EAzZ9U,SAAUpsK,GAClB,IAAI+mC,EAAM,GACV,MAAMpnC,EAAMK,EAAEjE,OACd,IAAK,IAAI2D,EAAI,EAAGA,EAAIC,EAAKD,IACvBqnC,GAAO,IAAI/mC,EAAE60C,MAAMn1C,GAAG8lE,QAAQ,MAAMxlE,EAAE4I,IAAIlJ,GAAG8lE,QAAQ,MAEvD,OAAOz+B,CACT,CAkZgWw1J,CAAoB9N,GAAaE,YAAYviB,IAAU,iBACrY,gBAAZnd,EAAKjC,GAAsB,CAC7B,IAAIwvC,EACJ,GAAIvtC,EAAK9zJ,OAAS+0K,GAA4B,CAC5C,MAAM3sC,EAAK0rB,EAAK5C,kBAChB,IAAK90J,OAAOwK,KAAKwhI,GAAIvlI,MAAK7C,KAAUooI,EAAGpoI,KAGrC,YADAS,KAAK6P,MAAQmtB,GAGjB,CACA,MAAMutC,EAAwC,OAA/Bq2H,EAAe5gM,KAAKuuK,aAAkB,EAASqyB,EAAavtC,EAAK9oF,OACnE,MAATA,GAAiBA,EAAMi2G,gBACzBxgL,KAAKmrC,IAAI,2CAA2Co/B,EAAMi2G,kCAC1Dj2G,EAAMi2G,cAAgB,EAE1B,CACAxgL,KAAK6P,MAAQmtB,GACRwzI,KAGAxwK,KAAKg9L,gBAAkB3pC,EAAK9zJ,MAAQ+0K,IAA0B9D,EAAM75J,SAASxW,SAAqD,OAAzCqgM,EAAoBxgM,KAAK08L,kBAAuB,EAAS8D,EAAkBpvC,OAAqD,OAA3CqvC,EAAqBzgM,KAAK8kL,mBAAwB,EAAS2b,EAAmBrvC,MAC/PpxJ,KAAKg9L,gBAAiB,EACtBh9L,KAAK6gM,kBAEP7gM,KAAK2uL,OACP,CACA,cAAAkS,GAAkB,CAClB,2BAAA5B,CAA4B6B,GAC1B,MAAM,WACJnE,GACE38L,KACJ,IAAK28L,EACH,OAEF,MAAM,KACJtpC,EAAI,KACJlmH,EAAI,YACJ4zJ,GACED,EAEEE,GAAYD,GAAsC,IAAvBA,EAAY5gM,QAAgB4gM,EAAY3+L,MAAK6+L,IAAeA,IACvFC,EAAY,IAAIxN,GAAcrgC,EAAK9oF,MAAO8oF,EAAKjC,GAAIiC,EAAKrB,MAAMjC,WAAa,EAAG,EAAG5iH,EAAOA,EAAK15B,OAAS,GAAIutL,GAChHrE,EAAW76L,MAAMo/L,EACnB,CAGA,2BAAAlC,CAA4B3rC,GAAO,CACnC,WAAAyrC,CAAYzrC,EAAM9oF,EAAOq0H,EAAmB,KAAMuC,GAChD,IAAI5K,EACJ,MAAM//J,EAAmB,MAAT+zC,OAAgB,EAASA,EAAM/zC,QAC/C,IAAKx2B,KAAKuuK,SAAW/3I,EACnB,MAAM,IAAI14B,MAAM,mCAAmC04B,EAAU,GAAK,cAEpE,IAAI4qK,EAAoB,KAwBxB,IAvBI/tC,EAAKX,WAAyD,OAAzC6jC,EAAoBljC,EAAKhB,cAAwBkkC,EAAkB73L,KAmBhF20J,EAAKX,WAAal8H,EAAQ0/H,mBAAmB/1J,QACvDH,KAAKuxJ,UAAU8vC,UAAUhuC,EAAM78H,EAAQ0/H,qBAnBvCl2J,KAAKmrC,IAAI,mBAAmBkoH,EAAKjC,UAAU56H,EAAQq+H,WAAWr+H,EAAQw9H,WAA8B,wBAAnBh0J,KAAK4lL,UAAsC,QAAU,WAAWvyB,EAAK9oF,SACtJvqE,KAAK6P,MAAQmtB,GACbh9B,KAAK08L,YAAcrpC,EACnB+tC,EAAoBphM,KAAKuxJ,UAAUnoE,KAAKiqE,GAAM1uJ,MAAK28L,IACjD,IAAKthM,KAAK++L,mBAAmBuC,EAAcjuC,MAKzC,OAJArzJ,KAAK00K,IAAIrrE,QAAQokD,EAAO8zC,WAAYD,GAChCthM,KAAK6P,QAAUmtB,KACjBh9B,KAAK6P,MAAQmtB,IAERskK,CACT,IAEFthM,KAAK00K,IAAIrrE,QAAQokD,EAAO+zC,YAAa,CACnCnuC,SAEuB,OAArBrzJ,KAAK08L,cACP0E,EAAoBjgM,QAAQE,OAAO,IAAIvD,MAAM,wDAKjD8gM,EAAmB3hM,KAAKmrB,IAAIirI,EAAKp6G,MAAO2lJ,GAAoB,GACxD5+L,KAAKq0D,OAAOyqH,gBAA8B,gBAAZzrB,EAAKjC,GAAsB,CAC3D,MAAM+C,EAAW39H,EAAQ29H,SACzB,GAAIA,GAAYgtC,EAAkB,CAC5BvC,EAAmBvrC,EAAKrmJ,KAAOwpB,EAAQ09H,eACzCb,EAAO78H,EAAQ09H,cAEjB,MAAM+uB,EAAYjjL,KAAKyhM,YAAYttC,EAAUd,EAAMurC,GACnD,GAAI3b,GAAa,EAAG,CAClB,MAAM91I,EAAOgnH,EAAS8uB,GAItB,IAAIye,EAgBJ,OAnBA1hM,KAAKmrC,IAAI,oBAAoBkoH,EAAKjC,SAASjkH,EAAK15B,aAAa4/I,EAAK7B,mBAAmBh7H,EAAQq+H,WAAWr+H,EAAQw9H,mBAAmBivB,KAAa9uB,EAASh0J,OAAS,MAAyB,wBAAnBH,KAAK4lL,UAAsC,QAAU,YAAYvyB,EAAK9oF,kBAAkBjrC,WAAWs/J,EAAiBh1H,QAAQ,OACpS5pE,KAAK+8L,iBAAmB5vJ,EAAK8L,MAAQ9L,EAAKk0B,SAC1CrhE,KAAK6P,MAAQmtB,GAGX0kK,EADEN,EACQA,EAAkBz8L,MAAK28L,IAC1BA,GAAiBthM,KAAK++L,mBAAmBuC,EAAcjuC,MACnD,KAEFrzJ,KAAK2hM,gBAAgBtuC,EAAMlmH,EAAMo9B,EAAO42H,KAC9Cv/D,OAAMh9H,GAAS5E,KAAK4hM,oBAAoBh9L,KAEjC5E,KAAK2hM,gBAAgBtuC,EAAMlmH,EAAMo9B,EAAO42H,GAAkBv/D,OAAMh9H,GAAS5E,KAAK4hM,oBAAoBh9L,KAE9G5E,KAAK00K,IAAIrrE,QAAQokD,EAAOo0C,aAAc,CACpCxuC,OACAlmH,OACAyxJ,qBAEuB,OAArB5+L,KAAK08L,YACAv7L,QAAQE,OAAO,IAAIvD,MAAM,6DAE3B4jM,CACT,CAAO,IAAKruC,EAAK79G,KAAOx1C,KAAK8hM,iBAAiB3tC,EAAUyqC,GAEtD,OAAOz9L,QAAQC,QAAQ,KAE3B,CACF,CACApB,KAAKmrC,IAAI,oBAAoBkoH,EAAKjC,UAAUiC,EAAK7B,MAAMh7H,EAAU,OAASA,EAAQq+H,QAAU,IAAMr+H,EAAQw9H,MAAQ,KAAO,KAAwB,wBAAnBh0J,KAAK4lL,UAAsC,QAAU,YAAYvyB,EAAK9oF,kBAAkBjrC,WAAWs/J,EAAiBh1H,QAAQ,OAEtP4jF,EAAe6F,EAAKjC,MAAQpxJ,KAAKiyJ,cACnCjyJ,KAAK+8L,iBAAmB1pC,EAAKp6G,MAAQo6G,EAAKhyF,UAE5CrhE,KAAK6P,MAAQmtB,GAGb,MAAM+kK,EAAiB/hM,KAAKq0D,OAAO2tI,YACnC,IAAIrlM,EAsBJ,OApBEA,EADEolM,GAAkBX,EACXA,EAAkBz8L,MAAK28L,IACzBA,GAAiBthM,KAAK++L,mBAAoC,MAAjBuC,OAAwB,EAASA,EAAcjuC,MACpF,KAEFrzJ,KAAKk9L,eAAe9zG,KAAKiqE,EAAM8tC,KACrCv/D,OAAMh9H,GAAS5E,KAAK4hM,oBAAoBh9L,KAIlCzD,QAAQ81C,IAAI,CAACj3C,KAAKk9L,eAAe9zG,KAAKiqE,EAAM0uC,EAAiBZ,OAAmBjlM,GAAYklM,IAAoBz8L,MAAK,EAAEs9L,OACzHF,GAAkBE,GAAkBd,GACvCA,EAAiBc,GAEZA,KACNrgE,OAAMh9H,GAAS5E,KAAK4hM,oBAAoBh9L,KAE7C5E,KAAK00K,IAAIrrE,QAAQokD,EAAOo0C,aAAc,CACpCxuC,OACAurC,qBAEuB,OAArB5+L,KAAK08L,YACAv7L,QAAQE,OAAO,IAAIvD,MAAM,uDAE3BnB,CACT,CACA,eAAAglM,CAAgBtuC,EAAM6uC,EAAU33H,EAAO42H,GACrC,OAAO,IAAIhgM,SAAQ,CAACC,EAASC,KAC3B,IAAI6hL,EACJ,MAAM6d,EAAc,GACdoB,EAAsD,OAAnCjf,EAAiB34G,EAAM/zC,cAAmB,EAAS0sJ,EAAe/uB,SACrFuhC,EAAWvoJ,IACfntC,KAAKk9L,eAAexH,SAASriC,EAAMlmH,EAAMg0J,GAAkBx8L,MAAKixL,IAC9DmL,EAAY5zJ,EAAK15B,OAASmiL,EAC1B,MAAMwM,EAAaxM,EAAezoJ,KAClCntC,KAAK00K,IAAIrrE,QAAQokD,EAAOsiC,YAAa6F,GACrC,MAAMyM,EAAWrf,GAAYz4G,EAAO8oF,EAAKjC,GAAIjkH,EAAK15B,MAAQ,IAAM0vK,GAASgf,EAAiB9uC,EAAKjC,GAAIjkH,EAAK15B,MAAQ,GAChH,IAAI4uL,EAGF,OAAOjhM,EAAQ,CACbiyJ,OACAlmH,KAAMi1J,EACNrB,gBALFrL,EAAS2M,EAOX,IACCzgE,MAAMvgI,EAAO,EAElBq0L,EAASwM,EAAS,GAEtB,CACA,mBAAAN,CAAoBh9L,GAClB,GAAI,SAAUA,EAAO,CACnB,MAAMgF,EAAOhF,EAAMgF,KACfhF,EAAMgF,MAAQA,EAAK4sB,UAAYm3H,EAAa8nC,iBAC9Cz1L,KAAKsiM,sBAAsB14L,EAAKypJ,KAAMzpJ,EAAKujC,MAE3CntC,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO5uK,EAEnC,MACE5J,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAW60C,YACjB/rK,QAASm3H,EAAa60C,mBACtB78L,IAAKf,EACLA,QACA+zK,OAAO,IAGX,OAAO,IACT,CACA,sBAAA8pB,CAAuBvB,GACrB,MAAMj6L,EAAUjH,KAAK0iM,kBAAkBxB,GACvC,IAAKj6L,GAAWjH,KAAK6P,QAAUmtB,GAI7B,YAHKh9B,KAAK08L,aAAe18L,KAAK6P,QAAUmtB,IAAiBh9B,KAAK6P,QAAUmtB,KACtEh9B,KAAK6P,MAAQmtB,KAIjB,MAAM,KACJq2H,EAAI,KACJlmH,EAAI,MACJo9B,GACEtjE,EACEgd,EAAMqG,KAAKrS,YAAYgM,MAC7BovI,EAAKrB,MAAM/B,QAAQjjJ,IAAMiX,EACrBkpB,IACFA,EAAK6kH,MAAM/B,QAAQjjJ,IAAMiX,GAE3BjkB,KAAK2iM,kBAAkBtvC,EAAMlmH,EAAMo9B,EAAO22H,EAAU7yI,QACtD,CACA,iBAAAq0I,CAAkBxB,GAChB,MAAM,OACJ3yB,EAAM,YACNmuB,GACE18L,MAEFuqE,MAAO8uG,EAAU,GACjBjoB,EACAjkH,KAAM81I,GACJie,EACJ,GAAgB,MAAV3yB,IAAkBA,EAAO8K,GAE7B,OADAr5K,KAAK+8B,KAAK,oDAAoDq0H,cAAeioB,8CACtE,KAET,MAAM9uG,EAAQgkG,EAAO8K,GACflsI,EAAO81I,GAAa,EAAID,GAAYz4G,EAAO6mF,EAAI6xB,GAAa,KAC5D5vB,EAAOlmH,EAAOA,EAAK2E,SA5tI7B,SAA2By4B,EAAO6mF,EAAIsrC,GACpC,GAAe,MAATnyH,IAAiBA,EAAM/zC,QAC3B,OAAO,KAET,MAAMigJ,EAAelsG,EAAM/zC,QAC3B,IAAIsb,EAAW2kI,EAAaxiB,UAAU7C,EAAKqlB,EAAa5hB,SACxD,OAAI/iH,IAGJA,EAAW2kI,EAAaviB,aACpBpiH,GAAYA,EAASs/G,KAAOA,EACvBt/G,EAELs/G,EAAKqlB,EAAa5hB,SAAW6nC,GAAeA,EAAYtrC,KAAOA,EAC1DsrC,EAEF,KACT,CA2sIwCkG,CAAkBr4H,EAAO6mF,EAAIsrC,GACjE,OAAKrpC,GAGDqpC,GAAeA,IAAgBrpC,IACjCA,EAAKrB,MAAQ0qC,EAAY1qC,OAEpB,CACLqB,OACAlmH,OACAo9B,UARO,IAUX,CACA,kBAAAs4H,CAAmBj5L,EAAMypJ,EAAMlmH,EAAM+zJ,EAAW4B,GAC9C,IAAIC,EACJ,IAAKn5L,GAAQ5J,KAAK6P,QAAUmtB,GAC1B,OAEF,MAAM,MACJokI,EAAK,MACLC,GACEz3J,EACJ,IAAIF,EAAS03J,EAKb,GAJIA,GAASC,IAEX33J,EAASy3J,GAAiBC,EAAOC,IAEP,OAArB0hC,EAAUr5L,KAAmBq5L,EAAQ5iM,OAC1C,OAEF,MAAM0vD,EAAU,CACdtwD,KAAMqK,EAAKrK,KACX8zJ,OACAlmH,OACA+zJ,YACAt5L,OAAQyrJ,EAAK9zJ,KACbqK,KAAMF,GAGR,GADA1J,KAAK00K,IAAIrrE,QAAQokD,EAAOu1C,iBAAkBnzI,GACtCjmD,EAAKq5L,SAAWr5L,EAAK2pJ,cAAgBpmH,EAAM,CAC7C,GAAI21J,EACF,OAGF9iM,KAAKkjM,eAAe7vC,EACtB,CACF,CACA,cAAA6vC,CAAe7vC,GACb,MAAMmd,EAAQxwK,KAAKwwK,MACnB,IAAKA,EACH,OAGF,IAAKqiB,GAAaC,WAAWtiB,EAAOA,EAAM3iD,aAExC,YADA7tH,KAAK2/L,gBAAgB,EAAGtsC,EAAKp6G,OAI/B,MAAM40E,EAAc2iD,EAAM3iD,YACpB26D,EAAaqK,GAAarK,WAAWhY,EAAO3iD,EAAa,GACzDs1E,EAAe9vC,EAAKhyF,SACpB+hI,EAAkBnmM,KAAK6+B,IAAyC,EAArC97B,KAAKq0D,OAAO2wH,uBAA2C,IAAfme,GACnElqJ,EAAQh8C,KAAKmrB,IAAInrB,KAAK6+B,IAAIu3H,EAAKp6G,MAAQmqJ,EAAiB5a,EAAWx7K,IAAMo2L,GAAkBv1E,EAAcu1E,GAC3G/vC,EAAKp6G,MAAQA,EAAQmqJ,GACvBpjM,KAAK2/L,gBAAgB1mJ,EAAOo6G,EAAKp6G,MAErC,CACA,gBAAAomJ,CAAiBgE,EAAY9jM,GAC3B,MAAMshC,EAAM7gC,KAAKsjM,kBACjB,OAAK91C,EAAe3sH,GAGb7gC,KAAKujM,sBAAsBF,EAAYxiK,EAAKthC,GAF1C,IAGX,CACA,qBAAAgkM,CAAsBF,EAAYxiK,EAAKthC,GACrC,MACE80D,QAAQ,cACNgqI,IAEAr+L,KACEwoL,EAAaqK,GAAarK,WAAW6a,EAAYxiK,EAAKw9J,GAE5D,GAAuB,IAAnB7V,EAAWzkL,UAAsC7H,IAAzBssL,EAAW2K,UAAyB,CAC9D,MAAMqQ,EAAoBxjM,KAAKy8L,gBAAgBpM,gBAAgBxvJ,EAAKthC,GACpE,GAAIikM,GAAqBhb,EAAW2K,UAAYqQ,EAAkBx2L,IAChE,OAAO6lL,GAAarK,WAAW6a,EAAYxiK,EAAK5jC,KAAKmrB,IAAIogK,EAAW2K,UAAWkL,GAEnF,CACA,OAAO7V,CACT,CACA,kBAAAib,CAAmBC,GACjB,MAAM,OACJrvI,GACEr0D,KACJ,IAAI2jM,EAMJ,OAJEA,EADED,EACUzmM,KAAKmrB,IAAI,EAAIisC,EAAOuvI,cAAgBF,EAAcrvI,EAAOkrI,iBAEzDlrI,EAAOkrI,gBAEdtiM,KAAK6+B,IAAI6nK,EAAWtvI,EAAOwvI,mBACpC,CACA,qBAAApE,CAAsBqE,EAAWX,GAC/B,MAAM9uI,EAASr0D,KAAKq0D,OACd6tE,EAAYjlI,KAAKmrB,IAAInrB,KAAK6+B,IAAIgoK,EAAYX,EAAc9uI,EAAOkrI,iBAAkB4D,GACjFY,EAAgB9mM,KAAKmrB,IAAI07K,EAA2B,EAAfX,EAAkB9uI,EAAOwvI,mBAAqB,EAAG3hE,GAC5F,OAAI6hE,GAAiB7hE,IAEnB7tE,EAAOwvI,mBAAqBE,EAC5B/jM,KAAK+8B,KAAK,+BAA+BgnK,OAClC,EAGX,CACA,eAAA9T,CAAgB/4I,EAAUw5I,EAAepc,IACvC,MAAM0vB,EAAahkM,KAAKy8L,gBAAgBxM,gBAAgB/4I,EAAUo9H,IAClE,OAAI0vB,GAAc,aAAcA,EACvBA,EAAWlyJ,SAEbkyJ,CACT,CACA,eAAAC,CAAgBpjK,EAAK41I,GACnB,MAAMxiB,EAAYwiB,EAAaxiB,UACzBiwC,EAAUjwC,EAAU9zJ,OAC1B,IAAK+jM,EACH,OAAO,KAIT,MAAM,OACJ7vI,GACEr0D,KACEi5C,EAAQg7G,EAAU,GAAGh7G,MAC3B,IAAIo6G,EACJ,GAAIojB,EAAapiB,KAAM,CACrB,MAAM8vC,EAA0B9vI,EAAO8vI,wBACvC,GAAID,EAAUC,EAEZ,OADAnkM,KAAK+8B,KAAK,iDAAiDmnK,YAAkBC,MACtE,OAMJ1tB,EAAa7iB,WAAa5zJ,KAAKo9L,qBAA8C,IAAxBp9L,KAAK80K,eAAwBj0I,EAAMoY,KAC3Fo6G,EAAOrzJ,KAAKokM,uBAAuB3tB,EAAcxiB,GACjDj0J,KAAK80K,cAAgB90K,KAAK+8L,iBAAmB1pC,EAAOrzJ,KAAK00K,IAAIuK,kBAAoB5rB,EAAKp6G,MAAQpY,EAElG,MAAWA,GAAOoY,IAEhBo6G,EAAOY,EAAU,IAInB,IAAKZ,EAAM,CACT,MAAMrmJ,EAAMqnD,EAAOyqH,eAAiBrI,EAAazf,QAAUyf,EAAaxf,YACxE5D,EAAOrzJ,KAAKqkM,sBAAsBxjK,EAAK7zB,EAAKypK,EAC9C,CACA,OAAOz2K,KAAKskM,0BAA0BjxC,EACxC,CACA,aAAAkxC,CAAclxC,EAAMurC,GAClB,MAAM4F,EAAexkM,KAAKy8L,gBAAgB79L,SAASy0J,GACnD,OAAQmxC,IAAiBpV,IAAoBoV,IAAiBpV,MAA2B/7B,EAAK1kC,MAAQ3uH,KAAK+8L,iBAAmB6B,CAChI,CACA,0BAAA6F,CAA2BpxC,EAAMojB,EAAc+R,EAAYkI,EAAciT,GACvE,MAAMe,EAAWrxC,EAAK1kC,IAChBg2E,EAAe3kM,KAAKikM,gBAAgBjkM,KAAK+8L,iBAAkBtmB,GACjE,GAAqB,OAAjBkuB,EACF,OAAOA,EAGT,GADAtxC,EAAOsxC,EACHD,GAAYrxC,IAASA,EAAK1kC,KAAO65D,EAAW2K,UAAW,CAEzD,MAAMyR,EAAiB5kM,KAAKujM,sBAAsBvjM,KAAK68L,YAAc78L,KAAK68L,YAAc78L,KAAKwwK,MAAOgY,EAAW2K,UAAWzC,GAC1H,GAAuB,OAAnBkU,GAA2Bpc,EAAWzkL,IAAM6gM,EAAe7gM,KAAO4/L,EAGpE,OADA3jM,KAAKmrC,IAAI,8BAA8BulJ,+BAA0Cr9B,EAAKjC,MAC/E,IAEX,CACA,OAAOiC,CACT,CACA,yBAAAixC,CAA0BjxC,GAExB,OAAY,MAARA,IAAgBA,EAAKnB,aAAyB,MAARmB,GAAgBA,EAAKnB,YAAYtoJ,MAAU5J,KAAKiyJ,YAGnFoB,EAFEA,EAAKnB,WAGhB,CACA,WAAAuvC,CAAYttC,EAAUd,EAAMurC,GAC1B,IAAIyD,GAAY,EACZwC,GAAa,EACbC,GAAyB,EAC7B,IAAK,IAAIhhM,EAAI,EAAGC,EAAMowJ,EAASh0J,OAAQ2D,EAAIC,EAAKD,IAAK,CACnD,MAAMqpC,EAAOgnH,EAASrwJ,GAEtB,GADAghM,EAAyBA,IAA2B33J,EAAKomH,YACrD8uC,GAAY,GAAKzD,EAAmBzxJ,EAAK8L,MAC3C,MAEF,MAAM22G,EAASziH,EAAKyiH,OAChBA,EACFyyC,GAAY,GACFwC,GAAc13J,EAAKomH,aAAeuxC,IAA2B33J,EAAK2E,WAAauhH,IACzFgvC,EAAWv+L,GAEb+gM,EAAaj1C,CACf,CACA,OAAOyyC,CACT,CACA,gBAAAP,CAAiB3tC,EAAUyqC,GACzB,MAAMzW,EAAWh0B,EAASA,EAASh0J,OAAS,GAC5C,OAAOgoL,GAAYyW,EAAmBzW,EAASlvI,OAASkvI,EAASv4B,MACnE,CAOA,sBAAAw0C,CAAuB3tB,EAAcxiB,GACnC,MAAM6wB,EAAe9kL,KAAK8kL,aAC1B,IAAIzxB,EAAO,KACX,GAAIyxB,GAMF,GALIrO,EAAa9f,qBAEf32J,KAAKmrC,IAAI,+DAA+D25I,EAAa5zB,mBACrFmC,EA5zIR,SAA2BY,EAAW8wC,EAAU/f,GAC9C,GAAiB,OAAb+f,IAAsBz2L,MAAMie,QAAQ0nI,KAAeA,EAAU9zJ,SAAWqtJ,EAAeu3C,GACzF,OAAO,KAKT,GAAIA,GADa9wC,EAAU,GAAG/C,iBACF,GAC1B,OAAO,KAGT,GAAI6zC,IADW9wC,EAAUA,EAAU9zJ,OAAS,GAAGsyJ,oBACpB,GACzB,OAAO,KAETuyB,EAAyBA,GAA0B,EACnD,IAAK,IAAIggB,EAAM,EAAGA,EAAM/wC,EAAU9zJ,SAAU6kM,EAAK,CAC/C,MAAM3xC,EAAOY,EAAU+wC,GACvB,GAAIvf,GAAuBsf,EAAU/f,EAAwB3xB,GAC3D,OAAOA,CAEX,CACA,OAAO,IACT,CAsyIe4xC,CAAkBhxC,EAAW6wB,EAAaryB,mBAAoBzyJ,KAAKq0D,OAAO2wH,0BAE9E3xB,EAAM,CAET,MAAM6xC,EAAWpgB,EAAa1zB,GAAK,EACnC,GAAI8zC,GAAYzuB,EAAa5hB,SAAWqwC,GAAYzuB,EAAaziB,MAAO,CACtE,MAAMkxB,EAAWjxB,EAAUixC,EAAWzuB,EAAa5hB,SAE/CiwB,EAAatzB,KAAO0zB,EAAS1zB,KAC/B6B,EAAO6xB,EACPllL,KAAKmrC,IAAI,8DAA8DkoH,EAAKjC,MAEhF,CAGKiC,IACHA,EAltIV,SAAwBY,EAAWzC,GACjC,OAAO8yB,GAAoBrwB,GAAW56D,GAChCA,EAAUm4D,GAAKA,EACV,EACEn4D,EAAUm4D,GAAKA,GAChB,EAED,GAGb,CAwsIiB2zC,CAAelxC,EAAW6wB,EAAatzB,IAC1C6B,GACFrzJ,KAAKmrC,IAAI,8DAA8DkoH,EAAKjC,MAGlF,MACK,CAEL,MAAMg0C,EAAYplM,KAAK00K,IAAIuK,iBACT,OAAdmmB,IACF/xC,EAAOrzJ,KAAKqkM,sBAAsBe,EAAWplM,KAAKiyJ,YAAcwkB,EAAaxf,YAAcwf,EAAa1f,KAAM0f,GAElH,CACA,OAAOpjB,CACT,CAKA,qBAAAgxC,CAAsBtf,EAAW/3K,EAAKypK,GACpC,MAAM,OACJpiH,GACEr0D,KACJ,IAAI,aACF8kL,GACE9kL,MACA,UACFi0J,EAAS,MACTD,GACEyiB,EACJ,MAAM,aACJviB,GACEuiB,GACE,uBACJuO,GACE3wH,EACE8/F,EAAWsiB,EAAatiB,SACxBkxC,KAAkBhxI,EAAOyqH,gBAA8B,MAAZ3qB,GAAoBA,EAASh0J,QAAU+zJ,GAMxF,IAAIb,EAUJ,GAfIgyC,GAAgBnxC,IAAiBl0J,KAAKiyJ,cAExCgC,EAAYA,EAAU1sJ,OAAO2sJ,GAC7BF,EAAQE,EAAa9C,IAOrBiC,EAJE0xB,EAAY/3K,EAIP63K,GAAkBC,EAAc7wB,EAAW8wB,EAH1BA,EAAY/3K,EAAMg4K,EAAyB,EAAIA,GAMhE/wB,EAAUA,EAAU9zJ,OAAS,GAElCkzJ,EAAM,CACR,MAAMiyC,EAAWjyC,EAAKjC,GAAKqlB,EAAa5hB,QAGlC0wC,EAAYvlM,KAAKy8L,gBAAgB79L,SAASy0J,GAIhD,IAHIkyC,IAAcnW,IAAoBmW,IAAcnW,IAAyB/7B,EAAK1kC,OAChFm2D,EAAezxB,GAEbyxB,GAAgBzxB,EAAKjC,KAAO0zB,EAAa1zB,MAAQi0C,GAAgBlxC,EAAS,GAAGriH,SAASs/G,GAAKiC,EAAKjC,KAGhF0zB,GAAgBzxB,EAAK9oF,QAAUu6G,EAAav6G,MAC/C,CACb,MAAMi7H,EAAWvxC,EAAUqxC,EAAW,GAEpCjyC,EADEA,EAAKjC,GAAK4C,GAASh0J,KAAKy8L,gBAAgB79L,SAAS4mM,KAAcpW,GAC1DoW,EAEA,IAEX,CAEJ,CACA,OAAOnyC,CACT,CACA,qBAAAoyC,CAAsBhvB,GACpB,MAAM,OACJpiH,EAAM,MACNm8G,GACExwK,KACJ,IAAKwwK,EACH,OAEF,MAAMyO,EAAmBj/K,KAAK00K,IAAIuK,iBAC5BpxD,EAAc2iD,EAAM3iD,YACpB50E,EAAQw9H,EAAaxiB,UAAU,GAAGh7G,MAClCjsC,EAAMypK,EAAa1f,KACnB2uC,EAAsB73E,GAAe50E,EAAQob,EAAO2wH,wBAA0Bn3D,GAAe7gH,EAEnG,GAAyB,OAArBiyK,GAA6BzO,EAAMnvG,SAAW49G,IAAqBpxD,EAAcoxD,IAAqBymB,GAAsB,CAE9H,MAAMlnB,OAA+CtiL,IAAlCm4D,EAAOoqH,uBAAuCpqH,EAAOoqH,uBAAyBpqH,EAAOqqH,4BAA8BjI,EAAa1hB,iBAC9I2wC,GAAuBl1B,EAAMm1B,WAAa,GAAK93E,EAAc7gH,EAAMwxK,KACjEx+K,KAAKg9L,iBACRh9L,KAAK+8L,iBAAmB9d,GAGtBzO,EAAMm1B,aACR3lM,KAAK+8B,KAAK,aAAa8wF,EAAYjkD,QAAQ,gEAAgE58D,6BAA+BiyK,EAAiBr1G,QAAQ,MACnK4mG,EAAM3iD,YAAcoxD,GAG1B,CACF,CACA,cAAA2mB,CAAepvK,EAASmwJ,EAAiBkf,GAGvC,MAAM1lM,EAASq2B,EAAQy9H,UAAU9zJ,OACjC,IAAKA,EAEH,OADAH,KAAK+8B,KAAK,iCACH,EAET,MAAM+oK,EAAetvK,EAAQy9H,UAAU,GAAGh7G,MACpC8sJ,GAAkBpf,EAClBqf,EAAUxvK,EAAQq9H,gBAAkBrG,EAAes4C,GACzD,GAAIC,IAAmBC,IAAYF,EAAc,CAC/C,MAAM,aACJhhB,GACE9kL,MAzyDV,SAAqBimM,EAAUJ,EAAervK,GACvCqvK,IAyBP,SAA8BI,EAAUzvK,EAASqvK,GAC/C,GAjFF,SAAsCI,EAAUJ,EAAervK,GAC7D,SAAIqvK,KACErvK,EAAQu9H,MAAQv9H,EAAQo+H,SAAWqxC,GAAYA,EAASz0C,GAAKh7H,EAAQo+H,SAK7E,CA0EMsxC,CAA6BD,EAAUJ,EAAervK,GAAU,CAClE,MAAM2vK,EAxEV,SAAwCC,EAAaC,GACnD,MAAMC,EAAYF,EAAYnyC,UACxBsyC,EAAWF,EAAWpyC,UAC5B,IAAKsyC,EAASpmM,SAAWmmM,EAAUnmM,OAEjC,YADA2gF,EAAO31C,IAAI,yBAGb,MAAMq7J,EAAgB1S,GAAoBwS,EAAWC,EAAS,GAAG/0C,IACjE,GAAKg1C,KAAiBA,GAAkBA,EAAc/0C,UAItD,OAAO+0C,EAHL1lH,EAAO31C,IAAI,wCAIf,CA2D0Bs7J,CAA+BZ,EAAervK,GAChE2vK,GAAiB34C,EAAe24C,EAAcltJ,SAChD6nC,EAAO31C,IAAI,0EAA0E3U,EAAQgf,OAC7F0+I,GAAmBiS,EAAcltJ,MAAOziB,GAE5C,CACF,CA9BEkwK,CAAqBT,EAAUzvK,EAASqvK,IACnCrvK,EAAQq9H,gBAAkBgyC,GAI7B1R,GAAwB39J,EAASqvK,GAE9BrvK,EAAQq9H,iBAAkBgyC,GAAkBrvK,EAAQ6+H,iBAIvDqtB,GAAcmjB,EAAervK,GAEjC,CAyxDMmwK,CAAY7hB,EAAc+gB,EAAervK,GACzC,MAAMowK,EAAsBpwK,EAAQy9H,UAAU,GAAGh7G,MAEjD,OADAj5C,KAAKmrC,IAAI,0BAA0By7J,EAAoBh9H,QAAQ,gBAAgB+8G,EAAkBA,EAAgB9xB,QAAU,SAASr+H,EAAQq+H,oBAAoBiwB,EAAeA,EAAa1zB,GAAK,mBAAmBjxJ,KAC7MymM,CACT,CACA,OAAOd,CACT,CACA,gBAAAe,CAAiBrwK,GAGf,OAAOA,EAAQ69H,MAAQ79H,EAAQ0+H,gBAAkB1+H,EAAQi/H,YAAcj/H,EAAQo/H,WAAa34J,KAAKmrB,IAAIoO,EAAQ++H,aADpF,EACkG/+H,EAAQi/H,WACrI,CACA,gBAAAqxC,CAAiBtwK,EAASy9J,GAExB,IAAInf,EAAgB90K,KAAK80K,cAIzB,GAHIA,EAAgBmf,IAClBnf,GAAiB,IAEI,IAAnBA,IAAkD,IAA1B90K,KAAK88L,gBAAwB,CAGvD,MAAMiK,EAAwD,OAAzB/mM,KAAK80J,gBACpCA,EAAkBiyC,EAA+B/mM,KAAK80J,gBAAkBt+H,EAAQs+H,gBAC9D,OAApBA,GAA4BtH,EAAesH,IAC7CggB,EAAgBmf,EAAUn/B,EACtBA,EAAkB,IACpBggB,GAAiBt+I,EAAQw+H,eAE3B8f,EAAgB73K,KAAK6+B,IAAI7+B,KAAKmrB,IAAI6rK,EAASnf,GAAgBmf,EAAUz9J,EAAQw+H,eAC7Eh1J,KAAKmrC,IAAI,qBAAqB2pH,cAA4BiyC,EAA+B,eAAiB,6CAA6CjyB,KACvJ90K,KAAK80K,cAAgBA,GACZt+I,EAAQ69H,KAGjBygB,EAAgB90K,KAAK00K,IAAIuK,kBAAoBgV,EAE7Cj0L,KAAK80K,cAAgBA,EAAgB,EAEvC90K,KAAK88L,gBAAkBhoB,CACzB,CACA90K,KAAK+8L,iBAAmBjoB,CAC1B,CACA,eAAAwuB,GACE,MAAM,MACJ9yB,GACExwK,KAEJ,IAAI6gC,EAAM,EAMV,OALI7gC,KAAKg9L,gBAAkBxsB,EACzB3vI,EAAM2vI,EAAM3iD,YACH7tH,KAAK+8L,mBACdl8J,EAAM7gC,KAAK+8L,kBAENl8J,CACT,CACA,qBAAAyhK,CAAsBjvC,EAAMlmH,GACtBntC,KAAK28L,YAA0B,gBAAZtpC,EAAKjC,IAAwBiC,EAAKrB,MAAMrC,UAC7D3vJ,KAAK+8B,KAAK,YAAYs2H,EAAKjC,KAAKjkH,EAAO,SAAWA,EAAK15B,MAAQ,eAAe4/I,EAAK9oF,qBACnFvqE,KAAKk/L,qBAAqB7rC,GAE9B,CACA,oBAAA6rC,CAAqB7rC,GACdrzJ,KAAK08L,cAAgB18L,KAAK++L,mBAAmB1rC,IAASrzJ,KAAK6P,QAAUmtB,MACxEh9B,KAAK6P,MAAQmtB,GAEjB,CACA,wBAAAgqK,CAAyBC,EAAYr9L,GACnC,GAAIA,EAAKs3L,YAAct3L,EAAKypJ,KAAM,CAChC,MAAMpsJ,EAAUjH,KAAK0iM,kBAAkB94L,EAAKs3L,WACxCj6L,IACF2C,EAAKypJ,KAAOpsJ,EAAQosJ,KAExB,CACA,MAAMA,EAAOzpJ,EAAKypJ,KAElB,IAAKA,GAAQA,EAAK9zJ,OAAS0nM,IAAejnM,KAAKuuK,OAC7C,OAGA,IAAI24B,EADN,GAAIlnM,KAAK++L,mBAAmB1rC,GAG1B,YADArzJ,KAAK+8B,KAAK,oDAAoDs2H,EAAK79G,SAAoD,OAA1C0xJ,EAAqBlnM,KAAK08L,kBAAuB,EAASwK,EAAmB1xJ,OAG5J,MAAM2xJ,EAAoBv9L,EAAK4sB,UAAYm3H,EAAaipC,SACpDuQ,GACFnnM,KAAKy8L,gBAAgBhL,aAAap+B,GAAM,GAG1C,MAAM+1B,EAAcx/K,EAAKw/K,aACnB,OACJlqL,EAAM,WACN0kL,EAAa,EAAC,YACdD,GACEyF,GAAe,CAAC,EACpB,GAAIA,GAv5IQ,IAu5IOlqL,GAA8CykL,EAAa,CAC5E3jL,KAAKonM,wBAAwBpnM,KAAKm9L,iBAClC,MAAMlxE,EAAQy3D,GAAcC,EAAaC,GACzC5jL,KAAK+8B,KAAK,YAAYs2H,EAAKjC,SAAS61C,KAAc5zC,EAAK9oF,sBAAsB3gE,EAAK4sB,6BAA6BotJ,EAAa,KAAKD,EAAYxM,kBAAkBlrD,OAC/Jm9D,EAAYthL,UAAW,EACvB9H,KAAKi9L,UAAY3yK,KAAKrS,YAAYgM,MAAQgoG,EAC1CjsH,KAAK6P,MAAQmtB,EACf,MAAO,GAAI2mJ,GAAeyF,EAAa,CAErC,GADAppL,KAAKqnM,oBAAoBJ,KACrBrjB,EAAaD,EAAYxM,aAO3B,YADAr2F,EAAO/jD,KAAK,GAAGnzB,EAAK4sB,0CAA0CotJ,MAJzDujB,GAp6IiB,IAo6IIjoM,IACxBkqL,EAAYthL,UAAW,EAM7B,MA56IyB,KA46IE,MAAfshL,OAAsB,EAASA,EAAYlqL,QACrDc,KAAK6P,MAAQmtB,GAEbh9B,KAAK6P,MAAQmtB,GAGfh9B,KAAKmvL,eACP,CACA,0BAAAmY,CAA2B19L,GAEzB,GAAI5J,KAAK6P,QAAUmtB,IAAiBh9B,KAAK6P,QAAUmtB,GAAc,CAC/D,MAAMq2H,EAAOzpJ,EAAKypJ,KACZq9B,EAAe9mL,EAAKhC,OACpBsrL,EAAelzL,KAAKq/L,iBAAiBr/L,KAAK68L,YAAanM,GAGvD/5K,EAAWu8K,GAAgBA,EAAanvL,IAAM,GAChD4S,GACF3W,KAAKy/L,sBAAsBvM,EAAanvL,KAAc,MAARsvJ,OAAe,EAASA,EAAKhyF,WAAa,IAE1F,MAAMkmI,GAAe5wL,EAYrB,OAXI4wL,GAIFvnM,KAAK+8B,KAAK,oEAAoE2zJ,YAE5Er9B,IACFrzJ,KAAKy8L,gBAAgB5L,eAAex9B,GACpCrzJ,KAAK+8L,iBAAmB1pC,EAAKp6G,OAE/Bj5C,KAAKs+L,oBACEiJ,CACT,CACA,OAAO,CACT,CACA,mBAAAF,CAAoBJ,GACdA,IAAe3yB,KAEjBt0K,KAAK08L,YAAc,MAIhB18L,KAAKg9L,iBACRh9L,KAAKo9L,oBAAqB,GAExBp9L,KAAK6P,QAAUmtB,KACjBh9B,KAAK6P,MAAQmtB,GAEjB,CACA,kBAAAwqK,CAAmBh3B,EAAOi3B,EAAY/W,GACpC,IAAKlgB,EACH,OAIF,MAAMk3B,EAAqB7U,GAAaE,YAAYviB,GACpDxwK,KAAKy8L,gBAAgBlM,uBAAuBkX,EAAYC,EAAoBhX,GACxE1wL,KAAK6P,QAAUmtB,IACjBh9B,KAAKs+L,mBAET,CACA,iBAAAA,GACEt+L,KAAKmrC,IAAI,uBACTnrC,KAAK08L,YAAc,KACnB18L,KAAK8kL,aAAe,KACpB9kL,KAAK6P,MAAQmtB,EACf,CACA,uBAAAoqK,CAAwB78H,GAGtB,IAAKvqE,KAAKg9L,eAAgB,CACxBh9L,KAAKo9L,oBAAqB,EAC1B,MAAM5mK,EAAU+zC,EAAQA,EAAM/zC,QAAU,KACzB,MAAXA,GAAmBA,EAAQ69H,MAE7Br0J,KAAK80K,eAAiB,EACtB90K,KAAK8mM,iBAAiBtwK,EAAS,GAC/Bx2B,KAAKs+L,qBAELt+L,KAAK+8L,iBAAmB/8L,KAAK80K,aAEjC,CACF,CACA,uBAAA6yB,CAAwBzG,GACtBlhM,KAAK+8B,KAAK,wDAAwDmkK,EAAU9vC,eAAe8vC,EAAU32H,2CACrGvqE,KAAK4nM,wBACL5nM,KAAKonM,wBAAwBpnM,KAAKm9L,iBAClCn9L,KAAKs+L,mBACP,CACA,qBAAAsJ,CAAsB3uJ,EAAQ,GAC5Bj5C,KAAKy8L,gBAAgBrK,uBAAuBn5I,EAAOmsC,IAAUplF,KAAK0wL,cAAc,GAAO,EACzF,CACA,iBAAAiS,CAAkBtvC,EAAMlmH,EAAMo9B,EAAOlc,GACnC,IAAIw5I,EACJ,MAAMrxK,EAAU+zC,EAAM/zC,QACtB,GAAKA,EAAL,CA6BA,IAzBe76B,OAAOwK,KAAKktJ,EAAK5C,mBAAmBpwJ,QAAO,CAAC1D,EAAQ4C,KACjE,MAAMg4D,EAAO87F,EAAK5C,kBAAkBlxJ,GACpC,GAAIg4D,EAAM,CACR,MAAMuwI,EAAiBvwI,EAAKm6F,OAASn6F,EAAKk6F,SAC1C,GAAIq2C,GAAkB,EAKpB,OADA9nM,KAAK+8B,KAAK,4BAA4Bs2H,EAAKjC,MAAM7xJ,wBAA2BuoM,MACrEnrM,IAAU,EAEnB,MAAMk6J,EAAQxoG,EAAU,EAAIi0H,GAAiB9rJ,EAAS68H,EAAM97F,EAAKk6F,SAAUl6F,EAAKm6F,OAAQn6F,EAAKo6F,SAAUp6F,EAAKq6F,QAU5G,OATA5xJ,KAAK00K,IAAIrrE,QAAQokD,EAAOs6C,kBAAmB,CACzCvxK,UACA+zC,QACAssF,QACAt3J,OACA8zJ,OACAp6G,MAAOse,EAAKk6F,SACZzkJ,IAAKuqD,EAAKm6F,UAEL,CACT,CACA,OAAO/0J,CAAM,IACZ,IACiG,QAA5C,OAAvCkrM,EAAmB7nM,KAAK28L,iBAAsB,EAASkL,EAAiBjjM,OAAiB,CACxG,MAAMA,EAAQ,IAAI9G,MAAM,8BAA8Bu1J,EAAKjC,eAAeiC,EAAK9oF,6DAiB/E,GAhB4B,IAAxBA,EAAMi2G,gBAERj2G,EAAMi2G,gBACNntB,EAAK1kC,KAAM,EACX3uH,KAAKy8L,gBAAgB5L,eAAex9B,GACpCrzJ,KAAKy8L,gBAAgBhL,aAAap+B,GAAM,IAE1CrzJ,KAAK+8B,KAAKn4B,EAAM+Y,SAChB3d,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaq6C,mBACtBrvB,OAAO,EACP/zK,QACAyuJ,OACAxqH,OAAQ,yBAAyBwqH,EAAKjC,gBAAgB7mF,EAAM/0B,UAEzDx1C,KAAK00K,IACR,OAEF10K,KAAK29L,iBAEP,CACA39L,KAAK6P,MAAQmtB,GACbh9B,KAAK00K,IAAIrrE,QAAQokD,EAAOw6C,YAAa,CACnC50C,OACAlmH,QArDF,MAFEntC,KAAK+8B,KAAK,0BAyDd,CACA,eAAA4gK,GACM39L,KAAK28L,aACP38L,KAAK28L,WAAW1qH,UAChBjyE,KAAK28L,WAAa,KAEtB,CACA,kBAAAuL,CAAmBt+L,GACE,kBAAfA,EAAKo8C,QACPhmD,KAAKy8L,gBAAgBjK,qBACrBxyL,KAAK29L,kBACL39L,KAAKonM,wBAAwBpnM,KAAKm9L,iBAClCn9L,KAAKs+L,oBAET,CACA,SAAIzuL,CAAMs4L,GACR,MAAMC,EAAgBpoM,KAAK48L,OACvBwL,IAAkBD,IACpBnoM,KAAK48L,OAASuL,EACdnoM,KAAKmrC,IAAI,GAAGi9J,MAAkBD,KAElC,CACA,SAAIt4L,GACF,OAAO7P,KAAK48L,MACd,EAGF,MAAMyL,GACJ,WAAAt9K,GACE/qB,KAAKsoM,OAAS,GACdtoM,KAAKuoM,WAAa,CACpB,CACA,IAAA1mM,CAAK2mM,GACHxoM,KAAKsoM,OAAOzmM,KAAK2mM,GACjBxoM,KAAKuoM,YAAcC,EAAMroM,MAC3B,CACA,KAAA2B,GACE,MAAM,OACJwmM,EAAM,WACNC,GACEvoM,KACJ,IAAIrD,EACJ,OAAK2rM,EAAOnoM,QAGVxD,EAD2B,IAAlB2rM,EAAOnoM,OACPmoM,EAAO,GAYtB,SAA2BA,EAAQC,GACjC,MAAM5rM,EAAS,IAAI64G,WAAW+yF,GAC9B,IAAIr5I,EAAS,EACb,IAAK,IAAIprD,EAAI,EAAGA,EAAIwkM,EAAOnoM,OAAQ2D,IAAK,CACtC,MAAM0kM,EAAQF,EAAOxkM,GACrBnH,EAAOgC,IAAI6pM,EAAOt5I,GAClBA,GAAUs5I,EAAMroM,MAClB,CACA,OAAOxD,CACT,CAnBe8rM,CAAkBH,EAAQC,GAErCvoM,KAAKuyB,QACE51B,GAPE,IAAI64G,WAAW,EAQ1B,CACA,KAAAjjF,GACEvyB,KAAKsoM,OAAOnoM,OAAS,EACrBH,KAAKuoM,WAAa,CACpB,EAsCF,SAASG,GAAWnpM,EAAO,GAAIopM,EAAiB,KAC9C,MAAO,CACLppM,OACA2N,IAAK,EACL07L,KAAM,EACND,iBACAE,gBAAiB,EACjBlnC,QAAS,GACTshC,QAAS,EAEb,CAEA,MAAM6F,GACJ,WAAA/9K,GACE/qB,KAAK+oM,iBAAc,EACnB/oM,KAAKgpM,eAAY,EACjBhpM,KAAKipM,WAAa,EAClBjpM,KAAKkpM,WAAa,KAClBlpM,KAAKmpM,QAAU,KACfnpM,KAAKs9L,QAAU,KACft9L,KAAKopM,QAAU,IACjB,CACA,gBAAAC,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpDtpM,KAAKgpM,UAAY,CACfzpM,KAAM,MACN2N,GAAI,EACJ07L,KAAM,EACND,eAAgB,IAChBE,eAAgB,EAChBlnC,QAAS,GACTshC,QAAS,EAEb,CACA,cAAAsG,CAAeC,GACbxpM,KAAKs9L,QAAUkM,EACfxpM,KAAKypM,iBACP,CACA,eAAAA,GACEzpM,KAAKmpM,QAAU,KACfnpM,KAAKopM,QAAU,KACfppM,KAAKipM,WAAa,CACpB,CACA,QAAAS,CAAS9/L,EAAMslD,GACb,OAAO,CACT,CACA,WAAAy6I,CAAYxrC,EAAOv0J,EAAMslD,GAAS,CAGlC,KAAA06I,CAAMhgM,EAAM43J,GACNxhK,KAAKkpM,aACPt/L,EAAOu3J,GAAiBnhK,KAAKkpM,WAAYt/L,GACzC5J,KAAKkpM,WAAa,MAEpB,IAEIW,EAFAnvC,EAAUV,EAAWpwJ,EAAM,GAC3BslD,EAASwrG,EAAUA,EAAQv6J,OAAS,EAExC,MAAMg+J,EAAQn+J,KAAK+oM,YACbhtB,EAAW/7K,KAAKgpM,UAChBtmK,EAAYg4H,EAAUN,EAAaM,QAAWx+J,EAC9CiE,EAASyJ,EAAKzJ,OAmBpB,KAlBqB,OAAjBH,KAAKmpM,SAAwC,IAApBnpM,KAAKipM,YAAoBz7C,EAAe9qH,MACnE1iC,KAAKmpM,QAAUW,GAAUpnK,EAAW8+H,EAAYxhK,KAAKs9L,SACrDt9L,KAAKopM,QAAUppM,KAAKmpM,SAED,OAAjBnpM,KAAKopM,UACPppM,KAAKopM,QAAUppM,KAAKmpM,SAIlBzuC,GAAWA,EAAQv6J,OAAS,GAC9B47K,EAASpa,QAAQ9/J,KAAK,CACpBoiK,IAAKjkK,KAAKopM,QACVW,IAAK/pM,KAAKopM,QACVx/L,KAAM8wJ,EACNn7J,KAAM87K,GACNh6G,SAAU3tD,OAAOioK,oBAGdzsH,EAAS/uD,GAAQ,CACtB,GAAIH,KAAK0pM,SAAS9/L,EAAMslD,GAAS,CAC/B,MAAMnkD,EAAQ/K,KAAK2pM,YAAYxrC,EAAOv0J,EAAMslD,GACxCnkD,GACF/K,KAAKipM,aACLjpM,KAAKopM,QAAUr+L,EAAM8+K,OAAO5lB,IAC5B/0G,GAAUnkD,EAAM5K,OAChB0pM,EAAgB36I,GAEhBA,EAAS/uD,CAEb,MAAWg6J,EAAWvwJ,EAAMslD,IAE1BwrG,EAAUV,EAAWpwJ,EAAMslD,GAC3B6sH,EAASpa,QAAQ9/J,KAAK,CACpBoiK,IAAKjkK,KAAKopM,QACVW,IAAK/pM,KAAKopM,QACVx/L,KAAM8wJ,EACNn7J,KAAM87K,GACNh6G,SAAU3tD,OAAOioK,oBAEnBzsH,GAAUwrG,EAAQv6J,OAClB0pM,EAAgB36I,GAEhBA,IAEF,GAAIA,IAAW/uD,GAAU0pM,IAAkB1pM,EAAQ,CACjD,MAAM6pM,EAAcnwC,EAAWjwJ,EAAMigM,GACjC7pM,KAAKkpM,WACPlpM,KAAKkpM,WAAa/nC,GAAiBnhK,KAAKkpM,WAAYc,GAEpDhqM,KAAKkpM,WAAac,CAEtB,CACF,CACA,MAAO,CACL9xB,WAAY/Z,EACZ8rC,WAAYvB,KACZ3sB,WACAiB,UAAW0rB,KAEf,CACA,cAAAwB,CAAetgM,EAAMuvJ,EAASqI,GAC5B,OAAOrgK,QAAQE,OAAO,IAAIvD,MAAM,IAAIkC,6DACtC,CACA,KAAA8B,CAAM0/J,GAEJ,MAAM0nC,EAAalpM,KAAKkpM,WAKxB,OAJIA,IACFlpM,KAAKkpM,WAAa,KAClBlpM,KAAK4pM,MAAMV,EAAY,IAElB,CACLhxB,WAAYl4K,KAAK+oM,YACjBkB,WAAYvB,KACZ3sB,SAAU/7K,KAAKgpM,UACfhsB,UAAW0rB,KAEf,CACA,OAAAz2H,GAAW,EASb,MAAM63H,GAAY,CAACpnK,EAAW8+H,EAAY87B,IACpC9vC,EAAe9qH,GACE,GAAZA,EAGW,IAAb8+H,GADW87B,EAA6B,IAAnBA,EAAQt7B,SAAmBs7B,EAAQzgC,UAAY,GAoI7E,SAASstC,GAAkBvgM,EAAMslD,GAC/B,OAAwB,MAAjBtlD,EAAKslD,IAAkD,MAAV,IAAnBtlD,EAAKslD,EAAS,GACjD,CACA,SAASk7I,GAAgBxgM,EAAMslD,GAC7B,OAA0B,EAAnBtlD,EAAKslD,EAAS,GAAY,EAAI,CACvC,CACA,SAASm7I,GAAmBzgM,EAAMslD,GAChC,OAA2B,EAAnBtlD,EAAKslD,EAAS,KAAc,GAAKtlD,EAAKslD,EAAS,IAAM,GAAwB,IAAnBtlD,EAAKslD,EAAS,MAAe,CACjG,CAIA,SAASo7I,GAAW1gM,EAAMslD,GAIxB,OAAOA,EAAS,EAAItlD,EAAKzJ,QAAUgqM,GAAkBvgM,EAAMslD,EAC7D,CAIA,SAASq7I,GAAQ3gM,EAAMslD,GAGrB,GAAIo7I,GAAW1gM,EAAMslD,GAAS,CAE5B,MAAMs7I,EAAeJ,GAAgBxgM,EAAMslD,GAC3C,GAAIA,EAASs7I,GAAgB5gM,EAAKzJ,OAChC,OAAO,EAGT,MAAMsqM,EAAcJ,GAAmBzgM,EAAMslD,GAC7C,GAAIu7I,GAAeD,EACjB,OAAO,EAET,MAAME,EAAYx7I,EAASu7I,EAC3B,OAAOC,IAAc9gM,EAAKzJ,QAAUmqM,GAAW1gM,EAAM8gM,EACvD,CACA,OAAO,CACT,CACA,SAASC,GAAgBxsC,EAAOx+J,EAAUiK,EAAMslD,EAAQ2gH,GACtD,IAAK1R,EAAMysC,WAAY,CACrB,MAAMv2I,EAtKV,SAAwB10D,EAAUiK,EAAMslD,EAAQ2gH,GAC9C,IAAIg7B,EACAC,EACAC,EACA12I,EACJ,MAAM/b,EAAYD,UAAUC,UAAUjW,cAChC2oK,EAAgBn7B,EAChBo7B,EAAoB,CAAC,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,IAAM,MAE9GJ,EAAqD,IAAf,IAAnBjhM,EAAKslD,EAAS,MAAe,GAChD,MAAMg8I,GAAwC,GAAnBthM,EAAKslD,EAAS,MAAe,EACxD,KAAIg8I,EAAoBD,EAAkB9qM,OAAS,GAyGnD,OA9FA4qM,GAAwC,EAAnBnhM,EAAKslD,EAAS,KAAc,EAEjD67I,IAAyC,IAAnBnhM,EAAKslD,EAAS,MAAe,EACnD4xB,EAAO31C,IAAI,kBAAkB0kI,gBAAyBg7B,oBAAiCK,KAEnF,WAAWt9K,KAAK0qB,GACd4yJ,GAAqB,GACvBL,EAAiB,EACjBx2I,EAAS,IAAI/lD,MAAM,GAInBw8L,EAA6BI,EAAoB,IAEjDL,EAAiB,EACjBx2I,EAAS,IAAI/lD,MAAM,GACnBw8L,EAA6BI,IAGY,IAAlC5yJ,EAAUna,QAAQ,YAC3B0sK,EAAiB,EACjBx2I,EAAS,IAAI/lD,MAAM,GACnBw8L,EAA6BI,IAK7BL,EAAiB,EACjBx2I,EAAS,IAAI/lD,MAAM,GAEfuhK,KAAqD,IAAtCA,EAAW1xI,QAAQ,gBAA6D,IAArC0xI,EAAW1xI,QAAQ,gBAAyB0xI,GAAcq7B,GAAqB,EAI3IJ,EAA6BI,EAAoB,IAI7Cr7B,IAAmD,IAArCA,EAAW1xI,QAAQ,eAAwB+sK,GAAqB,GAA2B,IAAtBH,GAA2B,WAAWn9K,KAAK0qB,MAAgBu3H,GAAoC,IAAtBk7B,KAC9JF,EAAiB,EACjBx2I,EAAS,IAAI/lD,MAAM,IAErBw8L,EAA6BI,IAqCjC72I,EAAO,GAAKw2I,GAAkB,EAE9Bx2I,EAAO,KAA2B,GAApB62I,IAA6B,EAC3C72I,EAAO,KAA2B,EAApB62I,IAA6B,EAE3C72I,EAAO,IAAM02I,GAAqB,EACX,IAAnBF,IAEFx2I,EAAO,KAAoC,GAA7By2I,IAAsC,EACpDz2I,EAAO,IAAmC,EAA7By2I,IAAsC,EAGnDz2I,EAAO,IAAM,EACbA,EAAO,GAAK,GAEP,CACLA,SACAu2I,WAAYK,EAAkBC,GAC9BC,aAAcJ,EACdvsC,MAAO,WAAaqsC,EACpBG,iBA9GF,CACE,MAAMpmM,EAAQ,IAAI9G,MAAM,+BAA+BotM,KACvDvrM,EAAS6e,KAAKivI,EAAO+qB,MAAO/qB,EAAO+qB,MAAO,CACxCj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaq6C,mBACtBrvB,OAAO,EACP/zK,QACAikC,OAAQjkC,EAAM+Y,SAGlB,CAsGF,CA2CmBytL,CAAezrM,EAAUiK,EAAMslD,EAAQ2gH,GACtD,IAAKx7G,EACH,OAEF8pG,EAAM9pG,OAASA,EAAOA,OACtB8pG,EAAMysC,WAAav2I,EAAOu2I,WAC1BzsC,EAAMgtC,aAAe92I,EAAO82I,aAC5BhtC,EAAMK,MAAQnqG,EAAOmqG,MACrBL,EAAM6sC,cAAgB32I,EAAO22I,cAC7BlqH,EAAO31C,IAAI,gBAAgBgzH,EAAMK,eAAenqG,EAAOu2I,wBAAwBv2I,EAAO82I,eACxF,CACF,CACA,SAASE,GAAiBT,GACxB,OAAO,OAAeA,CACxB,CAgBA,SAASU,GAAcntC,EAAOv0J,EAAMslD,EAAQ+0G,EAAKglC,GAC/C,MACMsC,EAAQtnC,EAAMglC,EADEoC,GAAiBltC,EAAMysC,YAEvC5sD,EAlBR,SAA0Bp0I,EAAMslD,GAE9B,MAAMs7I,EAAeJ,GAAgBxgM,EAAMslD,GAC3C,GAAIA,EAASs7I,GAAgB5gM,EAAKzJ,OAAQ,CAExC,MAAMsqM,EAAcJ,GAAmBzgM,EAAMslD,GAAUs7I,EACvD,GAAIC,EAAc,EAEhB,MAAO,CACLD,eACAC,cAGN,CACF,CAIiBe,CAAiB5hM,EAAMslD,GACtC,IAAItgC,EACJ,GAAIovH,EAAQ,CACV,MAAM,YACJysD,EAAW,aACXD,GACExsD,EACEytD,EAAUjB,EAAeC,EACzBhmK,EAAUxnC,KAAKmrB,IAAI,EAAG8mC,EAASu8I,EAAU7hM,EAAKzJ,QAEhDskC,GACF7V,EAAO,IAAI4mF,WAAWi2F,EAAUjB,GAChC57K,EAAKjwB,IAAIiL,EAAK8vJ,SAASxqG,EAASs7I,EAAc5gM,EAAKzJ,QAAS,IAE5DyuB,EAAOhlB,EAAK8vJ,SAASxqG,EAASs7I,EAAct7I,EAASu8I,GAEvD,MAAMC,EAAU,CACd98K,OACAq1I,IAAKsnC,GAKP,OAHK9mK,GACH05H,EAAMwD,QAAQ9/J,KAAK6pM,GAEd,CACL7hB,OAAQ6hB,EACRvrM,OAAQsrM,EACRhnK,UAEJ,CAEA,MAAMtkC,EAASyJ,EAAKzJ,OAAS+uD,EAO7B,OANAtgC,EAAO,IAAI4mF,WAAWr1G,GACtByuB,EAAKjwB,IAAIiL,EAAK8vJ,SAASxqG,EAAQtlD,EAAKzJ,QAAS,GAKtC,CACL0pL,OALa,CACbj7J,OACAq1I,IAAKsnC,GAILprM,SACAskC,SAAU,EAEd,CAMA,IAAIknK,GAAkB,KACtB,MAAMC,GAAc,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KACvUC,GAAkB,CAAC,MAAO,KAAO,KAAO,MAAO,KAAO,KAAO,MAAO,KAAO,KAC3EC,GAAsB,CAE5B,CAAC,EAED,GAEA,IAEA,IAGA,CAAC,EAED,EAEA,EAEA,GAGA,CAAC,EAED,GAEA,IAEA,IAGA,CAAC,EAED,IAEA,IAEA,KAEMC,GAAc,CAAC,EAErB,EAEA,EAEA,GAEA,SAASC,GAAc7tC,EAAOv0J,EAAMslD,EAAQ+0G,EAAKglC,GAE/C,GAAI/5I,EAAS,GAAKtlD,EAAKzJ,OACrB,OAEF,MAAM69I,EAASiuD,GAAYriM,EAAMslD,GACjC,GAAI8uF,GAAU9uF,EAAS8uF,EAAOysD,aAAe7gM,EAAKzJ,OAAQ,CACxD,MACMorM,EAAQtnC,EAAMglC,GAD2B,IAAzBjrD,EAAOkuD,gBAA0BluD,EAAOx+H,YAExDqqK,EAAS,CACbj7J,KAAMhlB,EAAK8vJ,SAASxqG,EAAQA,EAAS8uF,EAAOysD,aAC5CxmC,IAAKsnC,EACLxB,IAAKwB,GAMP,OAJAptC,EAAM9pG,OAAS,GACf8pG,EAAMgtC,aAAentD,EAAOmtD,aAC5BhtC,EAAMysC,WAAa5sD,EAAOx+H,WAC1B2+I,EAAMwD,QAAQ9/J,KAAKgoL,GACZ,CACLA,SACA1pL,OAAQ69I,EAAOysD,YACfhmK,QAAS,EAEb,CACF,CACA,SAASwnK,GAAYriM,EAAMslD,GACzB,MAAMi9I,EAAcviM,EAAKslD,EAAS,IAAM,EAAI,EACtCk9I,EAAYxiM,EAAKslD,EAAS,IAAM,EAAI,EACpCm9I,EAAeziM,EAAKslD,EAAS,IAAM,EAAI,GACvCo9I,EAAkB1iM,EAAKslD,EAAS,IAAM,EAAI,EAChD,GAAoB,IAAhBi9I,GAAsC,IAAjBE,GAAuC,KAAjBA,GAA2C,IAApBC,EAAuB,CAC3F,MAAMC,EAAa3iM,EAAKslD,EAAS,IAAM,EAAI,EACrCs9I,EAAc5iM,EAAKslD,EAAS,IAAM,EAElCu9I,EAAkE,IAAxDb,GAA+B,IADN,IAAhBO,EAAoB,EAAIC,EAA0B,IAAdA,EAAkB,EAAI,GAC/BC,EAAe,GAE7D7sL,EAAaqsL,GAAsC,GADb,IAAhBM,EAAoB,EAAoB,IAAhBA,EAAoB,EAAI,GACfG,GACvDnB,EAA+B,IAAhBqB,EAAoB,EAAI,EACvCE,EAAoBZ,GAAoBK,GAAaC,GACrDO,EAAcZ,GAAYK,GAC1BF,EAAsC,EAApBQ,EAAwBC,EAC1ClC,EAAcxtM,KAAK6lD,MAAM4pJ,EAAoBD,EAAUjtL,EAAa+sL,GAAcI,EACxF,GAAwB,OAApBhB,GAA0B,CAC5B,MACMhvM,GADY07C,UAAUC,WAAa,IAChB3uC,MAAM,kBAC/BgiM,GAAkBhvM,EAASipC,SAASjpC,EAAO,IAAM,CACnD,CAMA,QALwBgvM,IAAmBA,IAAmB,IAC3B,IAAdS,GAAmBK,GAAW,OAA0B,IAAhBD,IAE3D5iM,EAAKslD,EAAS,GAAwB,IAAnBtlD,EAAKslD,EAAS,IAE5B,CACL1vC,aACA2rL,eACAV,cACAyB,kBAEJ,CACF,CACA,SAASU,GAAgBhjM,EAAMslD,GAC7B,QAAwB,MAAjBtlD,EAAKslD,IAAkD,KAA7BtlD,EAAKslD,EAAS,MAA2C,EAAnBtlD,EAAKslD,EAAS,IACvF,CACA,SAAS29I,GAASjjM,EAAMslD,GAItB,OAAOA,EAAS,EAAItlD,EAAKzJ,QAAUysM,GAAgBhjM,EAAMslD,EAC3D,CAKA,SAAS49I,GAAMljM,EAAMslD,GAGnB,GAAIA,EAAS,EAAItlD,EAAKzJ,QAAUysM,GAAgBhjM,EAAMslD,GAAS,CAE7D,MAAMs7I,EAAe,EAEfxsD,EAASiuD,GAAYriM,EAAMslD,GACjC,IAAIu7I,EAAcD,EACJ,MAAVxsD,GAAkBA,EAAOysD,cAC3BA,EAAczsD,EAAOysD,aAEvB,MAAMC,EAAYx7I,EAASu7I,EAC3B,OAAOC,IAAc9gM,EAAKzJ,QAAU0sM,GAASjjM,EAAM8gM,EACrD,CACA,OAAO,CACT,CAiEA,MAAMqC,GAAoB,iBAmIpBC,GAAe,CAACpjM,EAAMslD,KAE1B,IAAI+9I,EAAO,EACPC,EAAU,EACdh+I,GAAUg+I,EACV,MAAM5rC,EAAO,IAAIv2B,YAAY,GACvBp7B,EAAO,IAAIo7B,YAAY,GACvB+0B,EAAO,IAAItqD,WAAW,GAC5B,KAAO03F,EAAU,GAAG,CAClBptC,EAAK,GAAKl2J,EAAKslD,GAEf,MAAMi+I,EAAOlwM,KAAK6+B,IAAIoxK,EAAS,GACzBlrM,EAAQ,EAAImrM,EAClBx9F,EAAK,GAAK,aAAe,GAAK3tG,GAASA,EACvCs/J,EAAK,IAAMxB,EAAK,GAAKnwD,EAAK,KAAO3tG,EACjCirM,EAAQA,EAAiBA,GAAQE,EAAO7rC,EAAK,GAA9BA,EAAK,GACpBpyG,GAAU,EACVg+I,GAAWC,CACb,CACA,OAAOF,CAAI,EA0Db,SAAStD,GAAYxrC,EAAOv0J,EAAMqvC,EAAOgrH,EAAKglC,GAC5C,GAAIhwJ,EAAQ,EAAIrvC,EAAKzJ,OACnB,OAAQ,EAEV,GAAoB,KAAhByJ,EAAKqvC,IAAuC,MAApBrvC,EAAKqvC,EAAQ,GACvC,OAAQ,EAIV,MAAMm0J,EAAmBxjM,EAAKqvC,EAAQ,IAAM,EAC5C,GAAIm0J,GAAoB,EACtB,OAAQ,EAEV,MACM5tL,EADkB,CAAC,KAAO,MAAO,MACJ4tL,GAG7BC,EAAkC,GAAlBzjM,EAAKqvC,EAAQ,GAE7BwxJ,EAAmE,EADpD,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,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,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACniB,EAAhB4C,EAAoBD,GACrD,GAAIn0J,EAAQwxJ,EAAc7gM,EAAKzJ,OAC7B,OAAQ,EAIV,MAAMqsM,EAAc5iM,EAAKqvC,EAAQ,IAAM,EACvC,IAAIq0J,EAAY,EACI,IAAhBd,EACFc,GAAa,GAEK,EAAdd,GAAmC,IAAhBA,IACrBc,GAAa,GAEG,EAAdd,IACFc,GAAa,IAGjB,MAAMC,GAAS3jM,EAAKqvC,EAAQ,IAAM,EAAIrvC,EAAKqvC,EAAQ,KAAO,GAAKq0J,EAAY,EAErEnC,EADc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACTqB,GAAee,EAG1CN,EAAOrjM,EAAKqvC,EAAQ,IAAM,EAC1Bu0J,EAA0B,EAAlB5jM,EAAKqvC,EAAQ,GACrBob,EAAS,IAAImhD,WAAW,CAAC43F,GAAoB,EAAIH,GAAQ,EAAIO,GAAS,GAAY,EAARA,IAAc,EAAIhB,GAAe,EAAIe,GAAS,EAAIF,GAAiB,EAAGA,GAAiB,EAAI,MAErK9B,EAAQtnC,EAAMglC,GADE,KAAOzpL,EAAa,KAEpCoP,EAAOhlB,EAAK8vJ,SAASzgH,EAAOA,EAAQwxJ,GAQ1C,OAPAtsC,EAAM9pG,OAASA,EACf8pG,EAAMgtC,aAAeA,EACrBhtC,EAAMysC,WAAaprL,EACnB2+I,EAAMwD,QAAQ9/J,KAAK,CACjB+sB,OACAq1I,IAAKsnC,IAEAd,CACT,CAEA,MAAMgD,GACJ,WAAA1iL,GACE/qB,KAAK0tM,YAAc,IACrB,CACA,iBAAAC,CAAkBjvM,EAAKulK,EAAK8lC,EAAK37K,GAC/B,MAAO,CACL1vB,MACAqM,OAAO,EACPk5J,MACA8lC,MACA6D,MAAO,GACPx/K,QACAjuB,OAAQ,EAEZ,CACA,cAAA0tM,CAAelsC,GACb,IAAImsC,EACJ,IACIC,EADAL,EAAc1tM,KAAK0tM,YAMvB,GAHKA,GAA4C,IAA7BA,EAAYE,MAAMztM,SACpCutM,EAAc/rC,EAAQA,EAAQxhK,OAAS,IAEL,OAA/B2tM,EAAeJ,IAAwBI,EAAaF,MAAO,CAC9D,MAAMA,EAAQF,EAAYE,MAC1BG,EAAWH,EAAMA,EAAMztM,OAAS,EAClC,CACA,OAAO4tM,CACT,CACA,cAAAC,CAAeN,EAAazD,GAC1B,GAAIyD,EAAYE,MAAMztM,QAAUutM,EAAY3iM,MAAO,CAEjD,QAAwB7O,IAApBwxM,EAAYzpC,IAAmB,CACjC,MAAMtC,EAAUsoC,EAAWtoC,QACrBssC,EAAYtsC,EAAQxhK,OAC1B,IAAI8tM,EAOF,YADAhE,EAAWhH,UANE,CACb,MAAMiL,EAAavsC,EAAQssC,EAAY,GACvCP,EAAYzpC,IAAMiqC,EAAWjqC,IAC7BypC,EAAY3D,IAAMmE,EAAWnE,GAC/B,CAKF,CACAE,EAAWtoC,QAAQ9/J,KAAK6rM,EAC1B,CACIA,EAAYt/K,MAAMjuB,QACpB2gF,EAAO31C,IAAIuiK,EAAYzpC,IAAM,IAAMypC,EAAY3D,IAAM,IAAM2D,EAAYt/K,MAE3E,EAOF,MAAM+/K,GACJ,WAAApjL,CAAYnhB,GACV5J,KAAK4J,UAAO,EACZ5J,KAAKouM,oBAAiB,EACtBpuM,KAAKq5L,UAAO,EACZr5L,KAAKquM,mBAAgB,EACrBruM,KAAK4J,KAAOA,EAEZ5J,KAAKouM,eAAiBxkM,EAAK0sG,WAE3Bt2G,KAAKq5L,KAAO,EAEZr5L,KAAKquM,cAAgB,CACvB,CAGA,QAAAC,GACE,MAAM1kM,EAAO5J,KAAK4J,KACZwkM,EAAiBpuM,KAAKouM,eACtBl3J,EAAWttC,EAAK0sG,WAAa83F,EAC7BG,EAAe,IAAI/4F,WAAW,GAC9Bg5F,EAAiBvxM,KAAK6+B,IAAI,EAAGsyK,GACnC,GAAuB,IAAnBI,EACF,MAAM,IAAI1wM,MAAM,sBAElBywM,EAAa5vM,IAAIiL,EAAK8vJ,SAASxiH,EAAUA,EAAWs3J,IACpDxuM,KAAKq5L,KAAO,IAAI7tD,SAAS+iE,EAAa7kM,QAAQ47J,UAAU,GAExDtlK,KAAKquM,cAAiC,EAAjBG,EACrBxuM,KAAKouM,gBAAkBI,CACzB,CAGA,QAAAC,CAASxvI,GACP,IAAIyvI,EACJzvI,EAAQhiE,KAAK6+B,IAAImjC,EAA6B,EAAtBj/D,KAAKouM,eAAqBpuM,KAAKquM,eACnDruM,KAAKquM,cAAgBpvI,GACvBj/D,KAAKq5L,OAASp6H,EACdj/D,KAAKquM,eAAiBpvI,IAGtByvI,GADAzvI,GAASj/D,KAAKquM,gBACO,EACrBpvI,GAASyvI,GAAa,EACtB1uM,KAAKouM,gBAAkBM,EACvB1uM,KAAKsuM,WACLtuM,KAAKq5L,OAASp6H,EACdj/D,KAAKquM,eAAiBpvI,EAE1B,CAGA,QAAA0vI,CAAS15K,GACP,IAAIk4K,EAAOlwM,KAAK6+B,IAAI97B,KAAKquM,cAAep5K,GACxC,MAAM25K,EAAO5uM,KAAKq5L,OAAS,GAAK8T,EAKhC,GAJIl4K,EAAO,IACT6rD,EAAOl8E,MAAM,2CAEf5E,KAAKquM,eAAiBlB,EAClBntM,KAAKquM,cAAgB,EACvBruM,KAAKq5L,OAAS8T,MACT,MAAIntM,KAAKouM,eAAiB,GAG/B,MAAM,IAAItwM,MAAM,qBAFhBkC,KAAKsuM,UAGP,CAEA,OADAnB,EAAOl4K,EAAOk4K,EACVA,EAAO,GAAKntM,KAAKquM,cACZO,GAAQzB,EAAOntM,KAAK2uM,SAASxB,GAE7ByB,CAEX,CAGA,MAAAC,GACE,IAAIC,EACJ,IAAKA,EAAmB,EAAGA,EAAmB9uM,KAAKquM,gBAAiBS,EAClE,GAAK9uM,KAAKq5L,KAAO,aAAeyV,EAI9B,OAFA9uM,KAAKq5L,OAASyV,EACd9uM,KAAKquM,eAAiBS,EACfA,EAKX,OADA9uM,KAAKsuM,WACEQ,EAAmB9uM,KAAK6uM,QACjC,CAGA,OAAAE,GACE/uM,KAAKyuM,SAAS,EAAIzuM,KAAK6uM,SACzB,CAGA,MAAAG,GACEhvM,KAAKyuM,SAAS,EAAIzuM,KAAK6uM,SACzB,CAGA,OAAAI,GACE,MAAMC,EAAMlvM,KAAK6uM,SACjB,OAAO7uM,KAAK2uM,SAASO,EAAM,GAAK,CAClC,CAGA,MAAAC,GACE,MAAMP,EAAO5uM,KAAKivM,UAClB,OAAI,EAAOL,EAEF,EAAIA,IAAS,GAEZ,GAAKA,IAAS,EAE1B,CAIA,WAAAQ,GACE,OAA4B,IAArBpvM,KAAK2uM,SAAS,EACvB,CAGA,SAAAU,GACE,OAAOrvM,KAAK2uM,SAAS,EACvB,CAGA,UAAAW,GACE,OAAOtvM,KAAK2uM,SAAS,GACvB,CAGA,QAAAY,GACE,OAAOvvM,KAAK2uM,SAAS,GACvB,CASA,eAAAa,CAAgBvwI,GACd,IAEIwwI,EAFAC,EAAY,EACZC,EAAY,EAEhB,IAAK,IAAIv+J,EAAI,EAAGA,EAAI6tB,EAAO7tB,IACP,IAAdu+J,IACFF,EAAazvM,KAAKmvM,SAClBQ,GAAaD,EAAYD,EAAa,KAAO,KAE/CC,EAA0B,IAAdC,EAAkBD,EAAYC,CAE9C,CAUA,OAAAC,GACE,IAIIC,EACAC,EACAhsM,EANAisM,EAAsB,EACtBC,EAAuB,EACvBC,EAAqB,EACrBC,EAAwB,EAI5B,MAAMb,EAAYrvM,KAAKqvM,UAAUrgM,KAAKhP,MAChC2uM,EAAW3uM,KAAK2uM,SAAS3/L,KAAKhP,MAC9BivM,EAAUjvM,KAAKivM,QAAQjgM,KAAKhP,MAC5BovM,EAAcpvM,KAAKovM,YAAYpgM,KAAKhP,MACpCyuM,EAAWzuM,KAAKyuM,SAASz/L,KAAKhP,MAC9BgvM,EAAShvM,KAAKgvM,OAAOhgM,KAAKhP,MAC1B+uM,EAAU/uM,KAAK+uM,QAAQ//L,KAAKhP,MAC5BwvM,EAAkBxvM,KAAKwvM,gBAAgBxgM,KAAKhP,MAClDqvM,IACA,MAAMc,EAAad,IAMnB,GALAV,EAAS,GACTF,EAAS,GACTY,IACAN,IAEmB,MAAfoB,GAAqC,MAAfA,GAAqC,MAAfA,GAAqC,MAAfA,GAAqC,KAAfA,GAAoC,KAAfA,GAAoC,KAAfA,GAAoC,MAAfA,GAAqC,MAAfA,EAAoB,CACnM,MAAMC,EAAkBnB,IAQxB,GAPwB,IAApBmB,GACF3B,EAAS,GAGXM,IACAA,IACAN,EAAS,GACLW,IAGF,IADAU,EAAuC,IAApBM,EAAwB,EAAI,GAC1CtsM,EAAI,EAAGA,EAAIgsM,EAAkBhsM,IAC5BsrM,KAGAI,EADE1rM,EAAI,EACU,GAEA,GAK1B,CACAirM,IACA,MAAMsB,EAAkBpB,IACxB,GAAwB,IAApBoB,EACFpB,SACK,GAAwB,IAApBoB,EAKT,IAJA5B,EAAS,GACTO,IACAA,IACAa,EAAiCZ,IAC5BnrM,EAAI,EAAGA,EAAI+rM,EAAgC/rM,IAC9CkrM,IAGJD,IACAN,EAAS,GACT,MAAM6B,EAAsBrB,IACtBsB,EAA4BtB,IAC5BuB,EAAmB7B,EAAS,GACT,IAArB6B,GACF/B,EAAS,GAGXA,EAAS,GACLW,MAEFW,EAAsBd,IACtBe,EAAuBf,IACvBgB,EAAqBhB,IACrBiB,EAAwBjB,KAE1B,IAAIwB,EAAa,CAAC,EAAG,GACrB,GAAIrB,KAEEA,IAGF,OADuBC,KAErB,KAAK,EACHoB,EAAa,CAAC,EAAG,GACjB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,EACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,GACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,GACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,GACHA,EAAa,CAAC,GAAI,IAClB,MACF,KAAK,GACHA,EAAa,CAAC,IAAK,IACnB,MACF,KAAK,GACHA,EAAa,CAAC,EAAG,GACjB,MACF,KAAK,GACHA,EAAa,CAAC,EAAG,GACjB,MACF,KAAK,GACHA,EAAa,CAAC,EAAG,GACjB,MACF,KAAK,IAEDA,EAAa,CAACpB,KAAe,EAAIA,IAAaA,KAAe,EAAIA,KAM3E,MAAO,CACL1xJ,MAAO1gD,KAAKkmD,KAAiC,IAA3BmtJ,EAAsB,GAAgC,EAAtBP,EAAiD,EAAvBC,GAC5EzyJ,QAAS,EAAIizJ,IAAqBD,EAA4B,GAAK,IAAMC,EAAmB,EAAI,IAAMP,EAAqBC,GAC3HO,WAAYA,EAEhB,CACA,aAAAC,GAME,OAJA1wM,KAAKqvM,YAELrvM,KAAKivM,UAEEjvM,KAAKivM,SACd,EAGF,MAAM0B,WAAuBlD,GAC3B,WAAAmD,CAAYzyC,EAAO6e,EAAW6zB,EAAKzmH,EAAM/oB,GACvC,MAAMusI,EAAQ5tM,KAAK8wM,aAAa3yC,EAAO0yC,EAAIjnM,MAC3C,IACI/H,EADA6rM,EAAc1tM,KAAK0tM,YAEnBqD,GAAW,EAEfF,EAAIjnM,KAAO,KAIP8jM,GAAeE,EAAMztM,SAAWg+J,EAAM6yC,WACxChxM,KAAKguM,eAAeN,EAAavvC,GACjCuvC,EAAc1tM,KAAK0tM,YAAc1tM,KAAK2tM,mBAAkB,EAAOkD,EAAI5sC,IAAK4sC,EAAI9G,IAAK,KAEnF6D,EAAMpvM,SAAQowB,IACZ,IAAIqiL,EACJ,OAAQriL,EAAKrvB,MAEX,KAAK,EACH,CACE,IAAI2xM,GAAQ,EACZrvM,GAAO,EACP,MAAM+H,EAAOglB,EAAKhlB,KAElB,GAAImnM,GAAYnnM,EAAKzJ,OAAS,EAAG,CAE/B,MAAMgxM,EAAY,IAAIhD,GAAUvkM,GAAM8mM,gBAMpB,IAAdS,GAAiC,IAAdA,GAAiC,IAAdA,GAAiC,IAAdA,IAC3DD,GAAQ,EAEZ,CAEE,IAAIpD,EADFoD,GAGkC,OAA/BpD,EAAeJ,IAAwBI,EAAa/iM,QAAU2iM,EAAYhvM,MAC7EsB,KAAKguM,eAAeN,EAAavvC,GACjCuvC,EAAc1tM,KAAK0tM,YAAc,MAGhCA,IACHA,EAAc1tM,KAAK0tM,YAAc1tM,KAAK2tM,mBAAkB,EAAMkD,EAAI5sC,IAAK4sC,EAAI9G,IAAK,KAElF2D,EAAY3iM,OAAQ,EACpB2iM,EAAYhvM,IAAMwyM,EAClB,KAEF,CACF,KAAK,EACHrvM,GAAO,EAG8B,OAAhCovM,EAAgBvD,IAAwBuD,EAAclmM,QAAU2iM,EAAYhvM,MAC/EsB,KAAKguM,eAAeN,EAAavvC,GACjCuvC,EAAc1tM,KAAK0tM,YAAc,MAE9BA,IACHA,EAAc1tM,KAAK0tM,YAAc1tM,KAAK2tM,mBAAkB,EAAMkD,EAAI5sC,IAAK4sC,EAAI9G,IAAK,KAElF2D,EAAYhvM,KAAM,EAClBgvM,EAAY3iM,OAAQ,EACpB,MAEF,KAAK,EAEDlJ,GAAO,EACP+hK,GAAwBh1I,EAAKhlB,KAAM,EAAGinM,EAAI5sC,IAAK+Y,EAAUrb,SACzD,MAGJ,KAAK,EACH,CACE,IAAIyvC,EAAmBC,EACvBxvM,GAAO,EACPkvM,GAAW,EACX,MAAMO,EAAM1iL,EAAKhlB,KAEXyqD,EADmB,IAAI85I,GAAUmD,GACP1B,UAChC,IAAKzxC,EAAMmzC,KAAOnzC,EAAMxgH,QAAU0W,EAAO1W,OAASwgH,EAAM5gH,SAAW8W,EAAO9W,SAAqD,OAAzC6zJ,EAAoBjzC,EAAMsyC,iBAAsB,EAASW,EAAkB,MAAQ/8I,EAAOo8I,WAAW,KAAkD,OAA1CY,EAAqBlzC,EAAMsyC,iBAAsB,EAASY,EAAmB,MAAQh9I,EAAOo8I,WAAW,GAAI,CAC5StyC,EAAMxgH,MAAQ0W,EAAO1W,MACrBwgH,EAAM5gH,OAAS8W,EAAO9W,OACtB4gH,EAAMsyC,WAAap8I,EAAOo8I,WAC1BtyC,EAAMmzC,IAAM,CAACA,GACbnzC,EAAM98F,SAAWA,EACjB,MAAMkwI,EAAaD,EAAI53C,SAAS,EAAG,GACnC,IAAI83C,EAAc,QAClB,IAAK,IAAI1tM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIuX,EAAIk2L,EAAWztM,GAAG/H,SAAS,IAC3Bsf,EAAElb,OAAS,IACbkb,EAAI,IAAMA,GAEZm2L,GAAen2L,CACjB,CACA8iJ,EAAMK,MAAQgzC,CAChB,CACA,KACF,CAEF,KAAK,EACH3vM,GAAO,EACPs8J,EAAMszC,IAAM,CAAC7iL,EAAKhlB,MAClB,MAEF,KAAK,EACH/H,GAAO,EACPs8J,EAAM6yC,UAAW,EACbtD,GACF1tM,KAAKguM,eAAeN,EAAavvC,GAEnCuvC,EAAc1tM,KAAK0tM,YAAc1tM,KAAK2tM,mBAAkB,EAAOkD,EAAI5sC,IAAK4sC,EAAI9G,IAAK,IACjF,MAEF,KAAK,GACHloM,GAAO,EACP,MACF,QACEA,GAAO,EACH6rM,IACFA,EAAYt/K,OAAS,eAAiBQ,EAAKrvB,KAAO,KAIpDmuM,GAAe7rM,GACH6rM,EAAYE,MACpB/rM,KAAK+sB,EACb,IAGEw7D,GAAQsjH,IACV1tM,KAAKguM,eAAeN,EAAavvC,GACjCn+J,KAAK0tM,YAAc,KAEvB,CACA,YAAAoD,CAAa3yC,EAAOl8J,GAClB,MAAM8B,EAAM9B,EAAMq0G,WAClB,IAAIzmG,EAAQsuJ,EAAMuzC,WAAa,EAC/B,MAAMC,EAAY9hM,EACZ+9L,EAAQ,GACd,IACIvxM,EACAy+C,EACA82J,EAHA9tM,EAAI,EAIJ+tM,GAAiB,EACjBC,EAAe,EAWnB,KARe,IAAXjiM,IAEFgiM,EAAgB,EAEhBC,EAA0B,GAAX7vM,EAAM,GACrB4N,EAAQ,EACR/L,EAAI,GAECA,EAAIC,GAGT,GAFA1H,EAAQ4F,EAAM6B,KAET+L,EAIL,GAAc,IAAVA,EAKJ,GAAKxT,EAEE,GAAc,IAAVA,EAAa,CAEtB,GADAy+C,EAAWh3C,EAAI+L,EAAQ,EACnBgiM,GAAiB,EAAG,CACtB,MAAMjjL,EAAO,CACXhlB,KAAM3H,EAAMy3J,SAASm4C,EAAe/2J,GACpCv7C,KAAMuyM,GAGRlE,EAAM/rM,KAAK+sB,EACb,KAAO,CAKL,MAAMm/K,EAAW/tM,KAAK6tM,eAAe1vC,EAAMwD,SACvCosC,IACE4D,GAAa7tM,GAAK,EAAI6tM,GAIpB5D,EAASl+L,QAEXk+L,EAASnkM,KAAOmkM,EAASnkM,KAAK8vJ,SAAS,EAAGq0C,EAASnkM,KAAK0sG,WAAaq7F,IAKrE72J,EAAW,IAEbizJ,EAASnkM,KAAOu3J,GAAiB4sC,EAASnkM,KAAM3H,EAAMy3J,SAAS,EAAG5+G,IAClEizJ,EAASl+L,MAAQ,GAGvB,CAEI/L,EAAIC,GACN6tM,EAAsB,GAAX3vM,EAAM6B,GAEjB+tM,EAAgB/tM,EAChBguM,EAAeF,EACf/hM,EAAQ,GAGRA,GAAS,CAEb,MACEA,EAAQ,OA/CRA,EAAQ,OALRA,EAAQxT,EAAQ,EAAI,OAJpBwT,EAAQxT,EAAQ,EAAI,EA2DxB,GAAIw1M,GAAiB,GAAKhiM,GAAS,EAAG,CACpC,MAAM+e,EAAO,CACXhlB,KAAM3H,EAAMy3J,SAASm4C,EAAe9tM,GACpCxE,KAAMuyM,EACNjiM,MAAOA,GAET+9L,EAAM/rM,KAAK+sB,EAEb,CAEA,GAAqB,IAAjBg/K,EAAMztM,OAAc,CAEtB,MAAM4tM,EAAW/tM,KAAK6tM,eAAe1vC,EAAMwD,SACvCosC,IACFA,EAASnkM,KAAOu3J,GAAiB4sC,EAASnkM,KAAM3H,GAEpD,CAEA,OADAk8J,EAAMuzC,UAAY7hM,EACX+9L,CACT,EAOF,MAAMmE,GACJ,WAAAhnL,CAAYprB,EAAU00D,EAAQ8kG,GAC5Bn5J,KAAKm5J,aAAU,EACfn5J,KAAKq9L,eAAY,EACjBr9L,KAAKm5J,QAAUA,EACfn5J,KAAKq9L,UAAY,IAAIxC,GAAUxmI,EAAQ,CACrCymI,oBAAoB,GAExB,CACA,aAAAkX,CAAcC,GACZ,OAAOjyM,KAAKq9L,UAAUrG,QAAQib,EAAejyM,KAAKm5J,QAAQz6J,IAAIgL,OAAQ1J,KAAKm5J,QAAQ0M,GAAGn8J,OACxF,CAGA,gBAAAwoM,CAAiBvwC,EAASwwC,EAAah8L,GACrC,MAAMi8L,EAAUzwC,EAAQwwC,GAAavjL,KACrC,GAAIwjL,EAAQjyM,QAAU,GAGpB,OAEF,MAAM8xM,EAAgBG,EAAQ14C,SAAS,GAAI04C,EAAQjyM,OAASiyM,EAAQjyM,OAAS,IACvEkyM,EAAkBJ,EAAcvoM,OAAOhG,MAAMuuM,EAAc39G,WAAY29G,EAAc39G,WAAa29G,EAAc9xM,QACtHH,KAAKgyM,cAAcK,GAAiB1tM,MAAK2tM,IACvC,MAAMtS,EAAgB,IAAIxqF,WAAW88F,GACrCF,EAAQzzM,IAAIqhM,EAAe,IACtBhgM,KAAKq9L,UAAU3B,UAClB17L,KAAKuyM,kBAAkB5wC,EAASwwC,EAAc,EAAGh8L,EACnD,GAEJ,CACA,iBAAAo8L,CAAkB5wC,EAASwwC,EAAah8L,GACtC,MAAQg8L,IAAe,CACrB,GAAIA,GAAexwC,EAAQxhK,OAEzB,YADAgW,IAGF,KAAIwrJ,EAAQwwC,GAAavjL,KAAKzuB,OAAS,KAGvCH,KAAKkyM,iBAAiBvwC,EAASwwC,EAAah8L,GACvCnW,KAAKq9L,UAAU3B,WAClB,MAEJ,CACF,CAGA,mBAAA8W,CAAoBC,GAClB,MAAMC,EAAiE,GAA9Cz1M,KAAK6lD,OAAO2vJ,EAAYtyM,OAAS,IAAM,KAAY,GACtE8xM,EAAgB,IAAI/mE,UAAUwnE,GACpC,IAAIC,EAAY,EAChB,IAAK,IAAIC,EAAW,GAAIA,EAAWH,EAAYtyM,OAAS,GAAIyyM,GAAY,IAAKD,GAAa,GACxFV,EAActzM,IAAI8zM,EAAY/4C,SAASk5C,EAAUA,EAAW,IAAKD,GAEnE,OAAOV,CACT,CACA,mBAAAY,CAAoBJ,EAAazS,GAC/B,MAAM8S,EAAqB,IAAIt9F,WAAWwqF,GAC1C,IAAI4S,EAAW,EACf,IAAK,IAAID,EAAY,GAAIA,EAAYF,EAAYtyM,OAAS,GAAIwyM,GAAa,IAAKC,GAAY,GAC1FH,EAAY9zM,IAAIm0M,EAAmBp5C,SAASk5C,EAAUA,EAAW,IAAKD,GAExE,OAAOF,CACT,CACA,gBAAAM,CAAiBpxC,EAASwwC,EAAaa,EAAW78L,EAAUi8L,GAC1D,MAAMK,EAAcvuC,GAAWkuC,EAAQxoM,MACjCqoM,EAAgBjyM,KAAKwyM,oBAAoBC,GAC/CzyM,KAAKgyM,cAAcC,EAAcvoM,QAAQ/E,MAAK2tM,IAC5CF,EAAQxoM,KAAO5J,KAAK6yM,oBAAoBJ,EAAaH,GAChDtyM,KAAKq9L,UAAU3B,UAClB17L,KAAKizM,kBAAkBtxC,EAASwwC,EAAaa,EAAY,EAAG78L,EAC9D,GAEJ,CACA,iBAAA88L,CAAkBtxC,EAASwwC,EAAaa,EAAW78L,GACjD,GAAIwrJ,aAAmBnsD,WACrB,MAAM,IAAI13G,MAAM,6CAElB,MAAQq0M,IAAea,EAAY,EAAG,CACpC,GAAIb,GAAexwC,EAAQxhK,OAEzB,YADAgW,IAGF,MAAM+8L,EAAWvxC,EAAQwwC,GAAavE,MACtC,OACMoF,GAAaE,EAAS/yM,QADpB6yM,IAAa,CAInB,MAAMZ,EAAUc,EAASF,GACzB,KAAIZ,EAAQxoM,KAAKzJ,QAAU,IAAuB,IAAjBiyM,EAAQ7yM,MAA+B,IAAjB6yM,EAAQ7yM,OAG/DS,KAAK+yM,iBAAiBpxC,EAASwwC,EAAaa,EAAW78L,EAAUi8L,GAC5DpyM,KAAKq9L,UAAU3B,WAClB,MAEJ,CACF,CACF,EAGF,MAAMyX,GAAgB,IACtB,MAAMC,GACJ,WAAAroL,CAAYprB,EAAU00D,EAAQg/I,GAC5BrzM,KAAKL,cAAW,EAChBK,KAAKq0D,YAAS,EACdr0D,KAAKqzM,mBAAgB,EACrBrzM,KAAKszM,UAAY,KACjBtzM,KAAKuzM,WAAY,EACjBvzM,KAAK6vK,gBAAa,EAClB7vK,KAAK+sK,gBAAa,EAClB/sK,KAAKwzM,UAAY,EACjBxzM,KAAKyzM,QAAU,EACfzzM,KAAK0zM,iBAAc,EACnB1zM,KAAK+oM,iBAAc,EACnB/oM,KAAKgpM,eAAY,EACjBhpM,KAAK2zM,eAAY,EACjB3zM,KAAK4zM,YAAc,KACnB5zM,KAAKk7L,cAAgB,KACrBl7L,KAAK6zM,iBAAc,EACnB7zM,KAAKL,SAAWA,EAChBK,KAAKq0D,OAASA,EACdr0D,KAAKqzM,cAAgBA,EACrBrzM,KAAK6zM,YAAc,IAAIlD,EACzB,CACA,YAAO7D,CAAMljM,GACX,MAAMkqM,EAAaV,GAAUU,WAAWlqM,GAIxC,OAHIkqM,EAAa,GACfhzH,EAAO/jD,KAAK,wDAAwD+2K,MAE/C,IAAhBA,CACT,CACA,iBAAOA,CAAWlqM,GAChB,MAAMzJ,EAASyJ,EAAKzJ,OACpB,IAAI4zM,EAAa92M,KAAK6+B,IAAIq3K,IAAmBhzM,EAASgzM,IAAiB,EACnErvM,EAAI,EACR,KAAOA,EAAIiwM,GAAY,CAErB,IAAIC,GAAW,EACXC,GAAe,EACfC,EAAY,EAChB,IAAK,IAAI9iK,EAAIttC,EAAGstC,EAAIjxC,EAAQixC,GAAK+hK,GAAe,CAC9C,GAAgB,KAAZvpM,EAAKwnC,IAAgBjxC,EAASixC,IAAM+hK,IAA6C,KAA5BvpM,EAAKwnC,EAAI+hK,IAgB3D,IAAIe,EAET,OAAQ,EAER,KACF,CARE,GAZAA,KACqB,IAAjBD,IACFA,EAAc7iK,EAEM,IAAhB6iK,IACFF,EAAa92M,KAAK6+B,IAAIm4K,EAAcd,MAAoBvpM,EAAKzJ,OAASgzM,IAAiB,IAGtFa,IACHA,EAAiC,IAAtBG,GAASvqM,EAAMwnC,IAGxB4iK,GAAYE,EAAY,IAAsB,IAAhBD,GAAqBC,EAAY,GAAK9iK,EAAI+hK,GAAgBY,GAC1F,OAAOE,CAQb,CACAnwM,GACF,CACA,OAAQ,CACV,CAKA,kBAAO+4K,CAAYt9K,EAAM8hE,GACvB,MAAO,CACLrJ,UAAoB,UAATz4D,GAA6B,UAATA,EAAmB,kBAAerD,EACjEqD,OACA2N,GAAI6uJ,GAAqBx8J,GACzBqpM,KAAM,EACND,eAAgB,IAChBE,eAAgB,EAChBlnC,QAAS,GACTshC,QAAS,EACT5hI,SAAmB,UAAT9hE,EAAmB8hE,OAAWnlE,EAE5C,CAMA,gBAAAmtM,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpDtpM,KAAKuzM,WAAY,EACjBvzM,KAAKyzM,QAAU,EACfzzM,KAAK0zM,YAAcN,GAAUv2B,YAAY,SACzC78K,KAAK+oM,YAAcqK,GAAUv2B,YAAY,QAASysB,GAClDtpM,KAAKgpM,UAAYoK,GAAUv2B,YAAY,OACvC78K,KAAK2zM,UAAYP,GAAUv2B,YAAY,QACvC78K,KAAK+oM,YAAYqL,aAAe,MAGhCp0M,KAAK4zM,YAAc,KACnB5zM,KAAKk7L,cAAgB,KACrBl7L,KAAK6vK,WAAaA,EAClB7vK,KAAK+sK,WAAaA,EAClB/sK,KAAKwzM,UAAYlK,CACnB,CACA,cAAAC,GAAkB,CAClB,eAAAE,GACE,MAAM,YACJV,EAAW,YACX2K,EAAW,UACX1K,GACEhpM,KACA+oM,IACFA,EAAYsL,QAAU,MAEpBX,IACFA,EAAYW,QAAU,MAEpBrL,IACFA,EAAUqL,QAAU,MAEtBr0M,KAAK4zM,YAAc,KACnB5zM,KAAKk7L,cAAgB,IACvB,CACA,KAAA0O,CAAMhgM,EAAM43J,EAAY8yC,GAAc,EAAOxyM,GAAQ,GAInD,IAAI+uM,EAHCyD,IACHt0M,KAAKszM,UAAY,MAGnB,MAAMrJ,EAAajqM,KAAK0zM,YAClBx7B,EAAal4K,KAAK+oM,YAClBhtB,EAAW/7K,KAAKgpM,UAChBhsB,EAAYh9K,KAAK2zM,UACvB,IAAIY,EAAWtK,EAAWrB,IACtBlnC,EAAYuoC,EAAWoK,QACvBG,EAAWt8B,EAAW0wB,IACtB6L,EAAS14B,EAAS6sB,IAClB8L,EAAYx8B,EAAWm8B,QACvB35C,EAAUqhB,EAASs4B,QACnBM,EAAa,KACbpB,EAAYvzM,KAAKuzM,UACjBqB,EAAQ50M,KAAKyzM,OACb1vM,EAAM6F,EAAKzJ,OAMf,GALIH,KAAKk7L,gBAEPn3L,GADA6F,EAAOu3J,GAAiBnhK,KAAKk7L,cAAetxL,IACjCzJ,OACXH,KAAKk7L,cAAgB,MAEnBn3L,EAAMovM,KAAkBrxM,EAE1B,OADA9B,KAAKk7L,cAAgBtxL,EACd,CACLsuK,aACA+xB,aACAluB,WACAiB,aAGJ,MAAM82B,EAAa72M,KAAKmrB,IAAI,EAAGgrL,GAAUU,WAAWlqM,IACpD7F,IAAQA,EAAM+vM,GAAcX,GACxBpvM,EAAM6F,EAAK0sG,aAAex0G,IAC5B9B,KAAKk7L,cAAgB,IAAI1lF,WAAW5rG,EAAKF,OAAQ3F,EAAK6F,EAAKF,OAAO4sG,WAAavyG,IAIjF,IAAI8wM,EAAiB,EACrB,IAAK,IAAI57J,EAAQ66J,EAAY76J,EAAQl1C,EAAKk1C,GAASk6J,GACjD,GAAoB,KAAhBvpM,EAAKqvC,GAAiB,CACxB,MAAM67J,KAA2B,GAAlBlrM,EAAKqvC,EAAQ,IACtB2vJ,EAAMuL,GAASvqM,EAAMqvC,GAI3B,IAAIiW,EACJ,IAJ+B,GAAlBtlD,EAAKqvC,EAAQ,KAAc,EAI9B,GAGR,GAFAiW,EAASjW,EAAQ,EAAIrvC,EAAKqvC,EAAQ,GAE9BiW,IAAWjW,EAAQk6J,GACrB,cAGFjkJ,EAASjW,EAAQ,EAEnB,OAAQ2vJ,GACN,KAAK2L,EACCO,IACEpzC,IAAcmvC,EAAMkE,GAASrzC,KAC/B1hK,KAAK6zM,YAAYjD,YAAY3G,EAAYjtB,EAAW6zB,GAAK,EAAO7wM,KAAKwzM,WAEvE9xC,EAAY,CACV93J,KAAM,GACNqrB,KAAM,IAGNysI,IACFA,EAAU93J,KAAK/H,KAAK+H,EAAK8vJ,SAASxqG,EAAQjW,EAAQk6J,KAClDzxC,EAAUzsI,MAAQgkB,EAAQk6J,GAAgBjkJ,GAE5C,MACF,KAAKslJ,EACH,GAAIM,EAAK,CACP,GAAIJ,IAAc7D,EAAMkE,GAASL,IAC/B,OAAQx8B,EAAWk8B,cACjB,IAAK,MACHp0M,KAAKg1M,YAAY98B,EAAY24B,GAC7B,MACF,IAAK,MACH7wM,KAAKi1M,aAAa/8B,EAAY24B,GAC9B,MACF,IAAK,MAED7wM,KAAKk1M,YAAYh9B,EAAY24B,GAKrC6D,EAAY,CACV9qM,KAAM,GACNqrB,KAAM,EAEV,CACIy/K,IACFA,EAAU9qM,KAAK/H,KAAK+H,EAAK8vJ,SAASxqG,EAAQjW,EAAQk6J,KAClDuB,EAAUz/K,MAAQgkB,EAAQk6J,GAAgBjkJ,GAE5C,MACF,KAAKulJ,EACCK,IACEp6C,IAAYm2C,EAAMkE,GAASr6C,KAC7B16J,KAAKm1M,YAAYp5B,EAAU80B,GAE7Bn2C,EAAU,CACR9wJ,KAAM,GACNqrB,KAAM,IAGNylI,IACFA,EAAQ9wJ,KAAK/H,KAAK+H,EAAK8vJ,SAASxqG,EAAQjW,EAAQk6J,KAChDz4C,EAAQzlI,MAAQgkB,EAAQk6J,GAAgBjkJ,GAE1C,MACF,KAAK,EACC4lJ,IACF5lJ,GAAUtlD,EAAKslD,GAAU,GAE3B0lJ,EAAQ50M,KAAKyzM,OAAS2B,GAASxrM,EAAMslD,GAErC,MACF,KAAK0lJ,EACH,CACME,IACF5lJ,GAAUtlD,EAAKslD,GAAU,GAE3B,MAAMmmJ,EAAaC,GAAS1rM,EAAMslD,EAAQlvD,KAAKqzM,cAAeiB,EAAat0M,KAAKL,UAQhF40M,EAAWc,EAAWd,SAClBA,EAAW,IACbtK,EAAWrB,IAAM2L,EACjBtK,EAAWmK,aAAeiB,EAAWE,mBAEvCf,EAAWa,EAAWb,SAClBA,EAAW,IACbt8B,EAAW0wB,IAAM4L,EACjBt8B,EAAWk8B,aAAeiB,EAAWG,mBAEvCf,EAASY,EAAWZ,OAChBA,EAAS,IACX14B,EAAS6sB,IAAM6L,GAEE,OAAfE,GAAwBpB,IAC1BzyH,EAAO/jD,KAAK,wBAAwBkc,wBAA4B07J,kCAA2Cb,8BAC3Ga,EAAa,KAEb17J,EAAQ66J,EAAa,KAEvBP,EAAYvzM,KAAKuzM,WAAY,EAC7B,KACF,CACF,KAAK,GACL,KAAK,KACH,MACF,QACEoB,EAAa/L,EAGnB,MACEiM,IAGAA,EAAiB,GACnBY,GAAiBz1M,KAAKL,SAAU,IAAI7B,MAAM,SAAS+2M,8CAErD5K,EAAWoK,QAAU3yC,EACrBwW,EAAWm8B,QAAUK,EACrB34B,EAASs4B,QAAU35C,EACnB,MAAMg7C,EAAc,CAClBx9B,aACA+xB,aACAluB,WACAiB,aAKF,OAHIl7K,GACF9B,KAAK21M,wBAAwBD,GAExBA,CACT,CACA,KAAA5zM,GACE,MAAM,cACJo5L,GACEl7L,KAEJ,IAAIrD,EAYJ,OAbAqD,KAAKk7L,cAAgB,KAGnBv+L,EADEu+L,EACOl7L,KAAK4pM,MAAM1O,GAAgB,GAAG,GAAO,GAErC,CACP+O,WAAYjqM,KAAK0zM,YACjBx7B,WAAYl4K,KAAK+oM,YACjBhtB,SAAU/7K,KAAKgpM,UACfhsB,UAAWh9K,KAAK2zM,WAGpB3zM,KAAK21M,wBAAwBh5M,GACzBqD,KAAKszM,UACAtzM,KAAKg3L,QAAQr6L,EAAQqD,KAAKszM,WAE5B32M,CACT,CACA,uBAAAg5M,CAAwBD,GACtB,MAAM,WACJx9B,EAAU,WACV+xB,EAAU,SACVluB,EAAQ,UACRiB,GACE04B,EACEh0C,EAAYuoC,EAAWoK,QACvBK,EAAYx8B,EAAWm8B,QACvB35C,EAAUqhB,EAASs4B,QAEzB,IAAIxD,EAQJ,GAPInvC,IAAcmvC,EAAMkE,GAASrzC,KAC/B1hK,KAAK6zM,YAAYjD,YAAY3G,EAAYjtB,EAAW6zB,GAAK,EAAM7wM,KAAKwzM,WACpEvJ,EAAWoK,QAAU,MAGrBpK,EAAWoK,QAAU3yC,EAEnBgzC,IAAc7D,EAAMkE,GAASL,IAAa,CAC5C,OAAQx8B,EAAWk8B,cACjB,IAAK,MACHp0M,KAAKg1M,YAAY98B,EAAY24B,GAC7B,MACF,IAAK,MACH7wM,KAAKi1M,aAAa/8B,EAAY24B,GAC9B,MACF,IAAK,MAED7wM,KAAKk1M,YAAYh9B,EAAY24B,GAInC34B,EAAWm8B,QAAU,IACvB,MACmB,MAAbK,GAAqBA,EAAUz/K,MACjC6rD,EAAO31C,IAAI,iEAIb+sI,EAAWm8B,QAAUK,EAEnBh6C,IAAYm2C,EAAMkE,GAASr6C,KAC7B16J,KAAKm1M,YAAYp5B,EAAU80B,GAC3B90B,EAASs4B,QAAU,MAGnBt4B,EAASs4B,QAAU35C,CAEvB,CACA,cAAAwvC,CAAetgM,EAAMuvJ,EAASqI,GAC5B,MAAMk0C,EAAc11M,KAAK4pM,MAAMhgM,EAAM43J,GAAY,GAAOxhK,KAAKq0D,OAAO2tI,aAC9DsR,EAAYtzM,KAAKszM,UAAY,IAAIvB,GAAmB/xM,KAAKL,SAAUK,KAAKq0D,OAAQ8kG,GACtF,OAAOn5J,KAAKg3L,QAAQ0e,EAAapC,EACnC,CACA,OAAAtc,CAAQ0e,EAAapC,GACnB,OAAO,IAAInyM,SAAQC,IACjB,MAAM,WACJ82K,EAAU,WACV+xB,GACEyL,EACAx9B,EAAWvW,SAAuC,QAA5BuW,EAAWk8B,aACnCd,EAAUf,kBAAkBr6B,EAAWvW,QAAS,GAAG,KAC7CsoC,EAAWtoC,QACb2xC,EAAUL,kBAAkBhJ,EAAWtoC,QAAS,EAAG,GAAG,KACpDvgK,EAAQs0M,EAAY,IAGtBt0M,EAAQs0M,EACV,IAEOzL,EAAWtoC,SACpB2xC,EAAUL,kBAAkBhJ,EAAWtoC,QAAS,EAAG,GAAG,KACpDvgK,EAAQs0M,EAAY,GAExB,GAEJ,CACA,OAAAzjI,GACEjyE,KAAKwzM,UAAY,CACnB,CACA,WAAAwB,CAAY72C,EAAO0yC,GACjB,IAAIvzB,EAAc,EAClB,MAAMs2B,EAAc5zM,KAAK4zM,YACzB,IAgBI1kJ,EACAnrD,EAqBAkgK,EAtCAr6J,EAAOinM,EAAIjnM,KACf,GAAIgqM,EAAa,CACf5zM,KAAK4zM,YAAc,KACnB,MAAMgC,EAAoBhC,EAAYnvK,QAChCoxK,EAAejC,EAAY/pB,OAAOj7J,KAAK0nF,WAE7C,IAA2B,IAAvBs/F,EACFhsM,EAAOu3J,GAAiByyC,EAAY/pB,OAAOj7J,KAAMhlB,OAC5C,CACL,MAAMksM,EAAqBD,EAAeD,EAC1ChC,EAAY/pB,OAAOj7J,KAAKjwB,IAAIiL,EAAK8vJ,SAAS,EAAGk8C,GAAoBE,GACjE33C,EAAMwD,QAAQ9/J,KAAK+xM,EAAY/pB,QAC/BvM,EAAcs2B,EAAYnvK,OAC5B,CACF,CAIA,IAAKyqB,EAASouH,EAAav5K,EAAM6F,EAAKzJ,OAAQ+uD,EAASnrD,EAAM,IACvDumM,GAAW1gM,EAAMslD,GADyCA,KAMhE,GAAIA,IAAWouH,EAAa,CAC1B,IAAIz0I,EACJ,MAAMktK,EAAc7mJ,EAASnrD,EAAM,EAOnC,GALE8kC,EADEktK,EACO,iDAAiD7mJ,IAEjD,kCAEXumJ,GAAiBz1M,KAAKL,SAAU,IAAI7B,MAAM+qC,GAASktK,IAC9CA,EACH,MAEJ,CAGA,GAFApL,GAAgBxsC,EAAOn+J,KAAKL,SAAUiK,EAAMslD,EAAQlvD,KAAK6vK,iBAEzC3zK,IAAZ20M,EAAI5sC,IACNA,EAAM4sC,EAAI5sC,QACL,KAAI2vC,EAOT,YADA9yH,EAAO/jD,KAAK,oCANU,CAGtB,MAAMi5K,EAAgB3K,GAAiBltC,EAAMysC,YAC7C3mC,EAAM2vC,EAAY/pB,OAAO5lB,IAAM+xC,CACjC,CAGA,CAGA,IACIjrM,EADAk+L,EAAa,EAEjB,KAAO/5I,EAASnrD,GAAK,CAGnB,GAFAgH,EAAQugM,GAAcntC,EAAOv0J,EAAMslD,EAAQ+0G,EAAKglC,GAChD/5I,GAAUnkD,EAAM5K,OACX4K,EAAM05B,QAOJ,CACLzkC,KAAK4zM,YAAc7oM,EACnB,KACF,CARE,IADAk+L,IACO/5I,EAASnrD,EAAM,IAChBumM,GAAW1gM,EAAMslD,GADEA,KAS7B,CACF,CACA,YAAA+lJ,CAAa92C,EAAO0yC,GAClB,MAAMjnM,EAAOinM,EAAIjnM,KACXzJ,EAASyJ,EAAKzJ,OACpB,IAAI8oM,EAAa,EACb/5I,EAAS,EACb,MAAM+0G,EAAM4sC,EAAI5sC,IAChB,QAAY/nK,IAAR+nK,EAIJ,KAAO/0G,EAAS/uD,GACd,GAAI0sM,GAASjjM,EAAMslD,GAAS,CAC1B,MAAMnkD,EAAQihM,GAAc7tC,EAAOv0J,EAAMslD,EAAQ+0G,EAAKglC,GACtD,IAAIl+L,EAKF,MAJAmkD,GAAUnkD,EAAM5K,OAChB8oM,GAKJ,MAEE/5I,SAfF4xB,EAAO/jD,KAAK,oCAkBhB,CACA,WAAAm4K,CAAY/2C,EAAO0yC,GACjB,CACE,MAAMjnM,EAAOinM,EAAIjnM,KACXq6J,EAAM4sC,EAAI5sC,IAChB,QAAY/nK,IAAR+nK,EAEF,YADAnjF,EAAO/jD,KAAK,oCAGd,MAAM58B,EAASyJ,EAAKzJ,OACpB,IAEI06D,EAFAouI,EAAa,EACb/5I,EAAS,EAEb,KAAOA,EAAS/uD,IAAW06D,EAAS8uI,GAAYxrC,EAAOv0J,EAAMslD,EAAQ+0G,EAAKglC,MAAiB,GACzF/5I,GAAU2L,CAEd,CACF,CACA,WAAAs6I,CAAYp5B,EAAU80B,GACpB,QAAgB30M,IAAZ20M,EAAI5sC,IAEN,YADAnjF,EAAO/jD,KAAK,oCAGd,MAAMk5K,EAAYvqH,EAAS,CAAC,EAAGmlH,EAAK,CAClCtxM,KAAMS,KAAK0zM,YAAcr4B,GAAsBA,GAC/Ch6G,SAAU3tD,OAAOioK,oBAEnBI,EAASpa,QAAQ9/J,KAAKo0M,EACxB,EAEF,SAAS9B,GAASvqM,EAAMslD,GAEtB,QAA4B,GAAnBtlD,EAAKslD,EAAS,KAAc,GAAKtlD,EAAKslD,EAAS,EAC1D,CACA,SAASkmJ,GAASxrM,EAAMslD,GAEtB,OAA4B,GAApBtlD,EAAKslD,EAAS,MAAe,EAAItlD,EAAKslD,EAAS,GACzD,CACA,SAASomJ,GAAS1rM,EAAMslD,EAAQmkJ,EAAeiB,EAAa30M,GAC1D,MAAMhD,EAAS,CACb63M,UAAW,EACXD,UAAW,EACXE,QAAS,EACTc,kBAAmB,MACnBC,kBAAmB,OAGfU,EAAWhnJ,EAAS,IADgB,GAAnBtlD,EAAKslD,EAAS,KAAc,EAAItlD,EAAKslD,EAAS,IACvB,EAM9C,IADAA,GAAU,KAFqC,GAApBtlD,EAAKslD,EAAS,MAAe,EAAItlD,EAAKslD,EAAS,KAGnEA,EAASgnJ,GAAU,CACxB,MAAMtN,EAAMuL,GAASvqM,EAAMslD,GACrBinJ,GAAmC,GAAnBvsM,EAAKslD,EAAS,KAAc,EAAItlD,EAAKslD,EAAS,GACpE,OAAQtlD,EAAKslD,IACX,KAAK,IAEH,IAAKolJ,EAAa,CAChB8B,GAA4C,YAC5C,KACF,CAEF,KAAK,IAGsB,IAArBz5M,EAAO63M,WACT73M,EAAO63M,SAAW5L,GAEpB,MAGF,KAAK,IAEoB,IAAnBjsM,EAAO83M,SACT93M,EAAO83M,OAAS7L,GAElB,MACF,KAAK,IAEH,IAAK0L,EAAa,CAChB8B,GAA4C,SAC5C,KACF,CAEF,KAAK,IAGsB,IAArBz5M,EAAO43M,WACT53M,EAAO43M,SAAW3L,EAClBjsM,EAAO44M,kBAAoB,OAE7B,MAIF,KAAK,EACL,KAAK,EAEElC,EAAcgD,MAAShD,EAAciD,KAEV,IAArB35M,EAAO63M,WAChB73M,EAAO63M,SAAW5L,EAClBjsM,EAAO64M,kBAAoB,OAH3B10H,EAAO31C,IAAI,mDAKb,MACF,KAAK,IAEH,IAAKmpK,EAAa,CAChB8B,GAA4C,QAC5C,KACF,CAEF,KAAK,IAEI/C,EAAckD,KAEa,IAArB55M,EAAO63M,WAChB73M,EAAO63M,SAAW5L,EAClBjsM,EAAO64M,kBAAoB,OAH3B10H,EAAO31C,IAAI,mDAMf,MACF,KAAK,EAKH,IAAyB,IAArBxuC,EAAO63M,UAAmB2B,EAAe,EAAG,CAC9C,IAAIK,EAAWtnJ,EAAS,EACpBunJ,EAAYN,EAChB,KAAOM,EAAY,GAAG,CAGb,MAFc7sM,EAAK4sM,MAKM,IAAtBnD,EAAckD,IAChBz1H,EAAO31C,IAAI,4DAEXxuC,EAAO63M,SAAW5L,EAClBjsM,EAAO64M,kBAAoB,QAKnC,MAAMkB,EAAgB9sM,EAAK4sM,EAAW,GAAK,EAC3CA,GAAYE,EACZD,GAAaC,CACf,CACF,CACA,MACF,KAAK,IAEL,KAAK,IAEH,OADAjB,GAAiB91M,EAAU,IAAI7B,MAAM,mCAC9BnB,EACT,KAAK,GAEH,OADA84M,GAAiB91M,EAAU,IAAI7B,MAAM,mCAC9BnB,EAIXuyD,GAAUinJ,EAAe,CAC3B,CACA,OAAOx5M,CACT,CACA,SAAS84M,GAAiB91M,EAAUiF,EAAO0kL,GACzCxoG,EAAO/jD,KAAK,kBAAkBn4B,EAAM+Y,WACpChe,EAAS6e,KAAKivI,EAAO+qB,MAAO/qB,EAAO+qB,MAAO,CACxCj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaq6C,mBACtBrvB,OAAO,EACP2Q,aACA1kL,QACAikC,OAAQjkC,EAAM+Y,SAElB,CACA,SAASy4L,GAA4C72M,GACnDuhF,EAAO31C,IAAI,GAAG5rC,4DAChB,CACA,SAASw1M,GAAS4B,GAChB,IACItjD,EACAujD,EACAC,EACAC,EACAC,EALAjzM,EAAI,EAMR,MAAM8F,EAAO+sM,EAAO/sM,KAEpB,IAAK+sM,GAA0B,IAAhBA,EAAO1hL,KACpB,OAAO,KAMT,KAAOrrB,EAAK,GAAGzJ,OAAS,IAAMyJ,EAAKzJ,OAAS,GAC1CyJ,EAAK,GAAKu3J,GAAiBv3J,EAAK,GAAIA,EAAK,IACzCA,EAAKmpC,OAAO,EAAG,GAKjB,GAFAsgH,EAAOzpJ,EAAK,GAEM,KADCypJ,EAAK,IAAM,KAAOA,EAAK,IAAM,GAAKA,EAAK,GACrC,CAInB,GAHAujD,GAAUvjD,EAAK,IAAM,GAAKA,EAAK,GAG3BujD,GAAUA,EAASD,EAAO1hL,KAAO,EACnC,OAAO,KAET,MAAM+hL,EAAW3jD,EAAK,GACP,IAAX2jD,IAIFF,EAA4B,WAAR,GAAVzjD,EAAK,IAEK,SAAR,IAAXA,EAAK,KAEc,OAAR,IAAXA,EAAK,KAEc,KAAR,IAAXA,EAAK,MAEM,IAAXA,EAAK,KAAc,EACL,GAAX2jD,GACFD,EAA6B,WAAR,GAAX1jD,EAAK,KAEK,SAAR,IAAXA,EAAK,KAEc,OAAR,IAAXA,EAAK,KAEc,KAAR,IAAXA,EAAK,MAEM,IAAXA,EAAK,KAAc,EAChByjD,EAASC,EAAS,OACpBj2H,EAAO/jD,KAAK,GAAG9/B,KAAKgpC,OAAO6wK,EAASC,GAAU,+CAC9CD,EAASC,IAGXA,EAASD,GAGbD,EAAYxjD,EAAK,GAEjB,IAAI4jD,EAAqBJ,EAAY,EACrC,GAAIF,EAAO1hL,MAAQgiL,EACjB,OAAO,KAETN,EAAO1hL,MAAQgiL,EAEf,MAAM5C,EAAU,IAAI7+F,WAAWmhG,EAAO1hL,MACtC,IAAK,IAAImc,EAAI,EAAG8lK,EAAUttM,EAAKzJ,OAAQixC,EAAI8lK,EAAS9lK,IAAK,CACvDiiH,EAAOzpJ,EAAKwnC,GACZ,IAAIrtC,EAAMsvJ,EAAK/8C,WACf,GAAI2gG,EAAoB,CACtB,GAAIA,EAAqBlzM,EAAK,CAE5BkzM,GAAsBlzM,EACtB,QACF,CAEEsvJ,EAAOA,EAAKqG,SAASu9C,GACrBlzM,GAAOkzM,EACPA,EAAqB,CAEzB,CACA5C,EAAQ11M,IAAI00J,EAAMvvJ,GAClBA,GAAKC,CACP,CAKA,OAJI6yM,IAEFA,GAAUC,EAAY,GAEjB,CACLjtM,KAAMyqM,EACNpwC,IAAK6yC,EACL/M,IAAKgN,EACLhzM,IAAK6yM,EAET,CACA,OAAO,IACT,CA+DA,MAAMO,GACJ,qBAAOC,CAAe54C,EAAO2sC,GAC3B,GACO,cADC3sC,EACN,CACE,GAAqB,IAAjB2sC,EACF,OAAO,IAAI31F,WAAW,CAAC,EAAM,IAAM,EAAM,IAAM,GAAM,MAChD,GAAqB,IAAjB21F,EACT,OAAO,IAAI31F,WAAW,CAAC,GAAM,EAAM,GAAM,IAAM,EAAM,GAAM,EAAM,GAAM,MAClE,GAAqB,IAAjB21F,EACT,OAAO,IAAI31F,WAAW,CAAC,EAAM,IAAM,EAAM,IAAM,GAAM,IAAM,EAAM,GAAM,GAAM,EAAM,IAAM,EAAM,MAC1F,GAAqB,IAAjB21F,EACT,OAAO,IAAI31F,WAAW,CAAC,EAAM,IAAM,EAAM,IAAM,GAAM,IAAM,EAAM,GAAM,GAAM,EAAM,IAAM,EAAM,IAAM,GAAM,IAAM,EAAM,EAAM,KACxH,GAAqB,IAAjB21F,EACT,OAAO,IAAI31F,WAAW,CAAC,EAAM,IAAM,EAAM,IAAM,GAAM,IAAM,EAAM,GAAM,GAAM,EAAM,IAAM,EAAM,IAAM,GAAM,EAAM,IAAM,EAAM,GAAM,IAAM,EAAM,KAC1I,GAAqB,IAAjB21F,EACT,OAAO,IAAI31F,WAAW,CAAC,EAAM,IAAM,EAAM,IAAM,GAAM,IAAM,EAAM,GAAM,GAAM,EAAM,IAAM,EAAM,IAAM,GAAM,EAAM,IAAM,EAAM,GAAM,IAAM,EAAM,EAAM,IAAM,EAAM,GAAM,EAAM,KAE1K,KAEP,CACE,GAAqB,IAAjB21F,EAEF,OAAO,IAAI31F,WAAW,CAAC,EAAK,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,EAAK,EAAK,EAAK,EAAK,GAAM,EAAK,IAAM,IAAM,GAAK,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KACvW,GAAqB,IAAjB21F,EAET,OAAO,IAAI31F,WAAW,CAAC,EAAK,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,EAAK,EAAK,EAAK,EAAK,EAAK,IAAM,EAAK,EAAK,IAAM,IAAM,GAAK,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KACrW,GAAqB,IAAjB21F,EAET,OAAO,IAAI31F,WAAW,CAAC,EAAK,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,EAAK,EAAK,EAAK,EAAK,EAAK,IAAM,EAAK,EAAK,IAAM,IAAM,GAAK,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAEvW,CAGX,EAOF,MAAM6hG,GAAap6M,KAAK+oC,IAAI,EAAG,IAAM,EACrC,MAAMsxK,GACJ,WAAOhkL,GA0CL,IAAIxvB,EACJ,IAAKA,KA1CLwzM,GAAIn+K,MAAQ,CACVwxI,KAAM,GAEN4sC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNh6C,KAAM,GACNi6C,KAAM,GACNl6C,KAAM,GACNm6C,KAAM,GACNC,KAAM,GACNC,KAAM,GACNn2C,KAAM,GACNo2C,KAAM,GACNjuC,KAAM,GACN,OAAQ,GACRkuC,KAAM,GACN,OAAQ,GACRC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNr6C,KAAM,GACNs6C,KAAM,GACNC,KAAM,GACN12C,KAAM,GACNC,KAAM,GACNH,KAAM,GACNvE,KAAM,GACNyD,KAAM,GACN/C,KAAM,GACNT,KAAM,GACNm7C,KAAM,GACNC,KAAM,IAGEvB,GAAIn+K,MACRm+K,GAAIn+K,MAAMt9B,eAAeiI,KAC3BwzM,GAAIn+K,MAAMr1B,GAAK,CAACA,EAAEwpC,WAAW,GAAIxpC,EAAEwpC,WAAW,GAAIxpC,EAAEwpC,WAAW,GAAIxpC,EAAEwpC,WAAW,KAGpF,MAAMwrK,EAAY,IAAItjG,WAAW,CAAC,EAElC,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAElB,IAAM,IAAM,IAAM,IAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAElEujG,EAAY,IAAIvjG,WAAW,CAAC,EAElC,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAElB,IAAM,IAAM,IAAM,IAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAExE8hG,GAAI0B,WAAa,CACfvlD,MAAOqlD,EACPtlD,MAAOulD,GAET,MAAMrB,EAAO,IAAIliG,WAAW,CAAC,EAE7B,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,GAElB,IAAM,IAAM,IAAM,GAElB,EAEA,EAAM,EAAM,IAENgjG,EAAO,IAAIhjG,WAAW,CAAC,EAE7B,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,IAElB8hG,GAAI2B,KAAO3B,GAAI4B,KAAO5B,GAAI6B,KAAOX,EACjClB,GAAI8B,KAAO,IAAI5jG,WAAW,CAAC,EAE3B,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,IAElB8hG,GAAI+B,KAAO,IAAI7jG,WAAW,CAAC,EAE3B,EAAM,EAAM,EAEZ,EAAM,EAEN,EAAM,EAAM,EAAM,EAAM,EAAM,IAE9B8hG,GAAIgC,KAAO,IAAI9jG,WAAW,CAAC,EAE3B,EAAM,EAAM,EAEZ,EAAM,EAEN,EAAM,IAEN8hG,GAAIiC,KAAO,IAAI/jG,WAAW,CAAC,EAE3B,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,IAElB,MAAMgkG,EAAa,IAAIhkG,WAAW,CAAC,IAAK,IAAK,IAAK,MAC5CikG,EAAY,IAAIjkG,WAAW,CAAC,GAAI,IAAK,GAAI,KACzCkkG,EAAe,IAAIlkG,WAAW,CAAC,EAAG,EAAG,EAAG,IAC9C8hG,GAAIqC,KAAOrC,GAAIsC,IAAItC,GAAIn+K,MAAMy+K,KAAM4B,EAAYE,EAAcF,EAAYC,GACzEnC,GAAIuC,KAAOvC,GAAIsC,IAAItC,GAAIn+K,MAAMs+K,KAAMH,GAAIsC,IAAItC,GAAIn+K,MAAMu+K,KAAMA,GAC7D,CACA,UAAOkC,CAAIr6M,KAAS0M,GAClB,IAAIgpB,EAAO,EACPnxB,EAAImI,EAAQ9L,OAChB,MAAM4D,EAAMD,EAEZ,KAAOA,KACLmxB,GAAQhpB,EAAQnI,GAAGwyG,WAErB,MAAM35G,EAAS,IAAI64G,WAAWvgF,GAO9B,IANAt4B,EAAO,GAAKs4B,GAAQ,GAAK,IACzBt4B,EAAO,GAAKs4B,GAAQ,GAAK,IACzBt4B,EAAO,GAAKs4B,GAAQ,EAAI,IACxBt4B,EAAO,GAAY,IAAPs4B,EACZt4B,EAAOgC,IAAIY,EAAM,GAEZuE,EAAI,EAAGmxB,EAAO,EAAGnxB,EAAIC,EAAKD,IAE7BnH,EAAOgC,IAAIsN,EAAQnI,GAAImxB,GACvBA,GAAQhpB,EAAQnI,GAAGwyG,WAErB,OAAO35G,CACT,CACA,WAAOihK,CAAKr+J,GACV,OAAO+3M,GAAIsC,IAAItC,GAAIn+K,MAAMykI,KAAM05C,GAAI0B,WAAWz5M,GAChD,CACA,WAAOs4M,CAAKjuM,GACV,OAAO0tM,GAAIsC,IAAItC,GAAIn+K,MAAM0+K,KAAMjuM,EACjC,CACA,WAAO+zJ,CAAKd,EAAWx7F,GACrBA,GAAYw7F,EACZ,MAAMi9C,EAAoB78M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IACxD0C,EAAoB98M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IAC9D,OAAOC,GAAIsC,IAAItC,GAAIn+K,MAAMwkI,KAAM,IAAInoD,WAAW,CAAC,EAE/C,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1C,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1CqnD,GAAa,GAAK,IAAMA,GAAa,GAAK,IAAMA,GAAa,EAAI,IAAkB,IAAZA,EAEvEi9C,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0BC,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0B,GAAM,IAE1O,EAAM,IACR,CACA,WAAOjC,CAAK35C,GACV,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAM2+K,KAAMR,GAAI35C,KAAKQ,EAAMtB,UAAWsB,EAAM98F,UAAWi2I,GAAI15C,KAAKO,EAAM5+J,MAAO+3M,GAAIU,KAAK75C,GAC3G,CACA,WAAO45C,CAAKlP,GACV,OAAOyO,GAAIsC,IAAItC,GAAIn+K,MAAM4+K,KAAM,IAAIviG,WAAW,CAAC,EAAM,EAAM,EAAM,EAEjEqzF,GAAkB,GAAIA,GAAkB,GAAK,IAAMA,GAAkB,EAAI,IAAuB,IAAjBA,IAEjF,CACA,WAAOmP,CAAK75C,GACV,MAAmB,UAAfA,EAAM5+J,KACD+3M,GAAIsC,IAAItC,GAAIn+K,MAAM6+K,KAAMV,GAAIsC,IAAItC,GAAIn+K,MAAM0/K,KAAMvB,GAAIgC,MAAOhC,GAAIuC,KAAMvC,GAAIiB,KAAKp6C,IAE9Em5C,GAAIsC,IAAItC,GAAIn+K,MAAM6+K,KAAMV,GAAIsC,IAAItC,GAAIn+K,MAAMy/K,KAAMtB,GAAI+B,MAAO/B,GAAIuC,KAAMvC,GAAIiB,KAAKp6C,GAEzF,CACA,WAAO0D,CAAKzQ,EAAI4oD,EAAqB77C,GACnC,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAM0oI,KAAMy1C,GAAIS,KAAK3mD,GAAKkmD,GAAIv1C,KAAK5D,EAAO67C,GAC/D,CACA,WAAO/B,CAAK98B,GACV,IAAIr3K,EAAIq3K,EAAOh7K,OACf,MAAM85M,EAAQ,GACd,KAAOn2M,KACLm2M,EAAMn2M,GAAKwzM,GAAI95C,KAAK2d,EAAOr3K,IAE7B,OAAOwzM,GAAIsC,IAAIzyM,MAAM,KAAM,CAACmwM,GAAIn+K,MAAM8+K,KAAMX,GAAIc,KAAKj9B,EAAO,GAAGte,UAAWse,EAAO,GAAG95G,WAAW95D,OAAO0yM,GAAO1yM,OAAO+vM,GAAIa,KAAKh9B,IAC/H,CACA,WAAOg9B,CAAKh9B,GACV,IAAIr3K,EAAIq3K,EAAOh7K,OACf,MAAM85M,EAAQ,GACd,KAAOn2M,KACLm2M,EAAMn2M,GAAKwzM,GAAIp5C,KAAKid,EAAOr3K,IAE7B,OAAOwzM,GAAIsC,IAAIzyM,MAAM,KAAM,CAACmwM,GAAIn+K,MAAMg/K,QAAS8B,GACjD,CACA,WAAO7B,CAAKv7C,EAAWx7F,GACrBA,GAAYw7F,EACZ,MAAMi9C,EAAoB78M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IACxD0C,EAAoB98M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IACxD9rE,EAAQ,IAAI/1B,WAAW,CAAC,EAE9B,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1C,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1CqnD,GAAa,GAAK,IAAMA,GAAa,GAAK,IAAMA,GAAa,EAAI,IAAkB,IAAZA,EAEvEi9C,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0BC,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0B,EAAM,EAAM,EAAM,EAEtP,EAAM,EAEN,EAAM,EAEN,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAElN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1I,IAAM,IAAM,IAAM,MAElB,OAAOzC,GAAIsC,IAAItC,GAAIn+K,MAAMi/K,KAAM7sE,EACjC,CACA,WAAO+sE,CAAKn6C,GACV,MAAMwD,EAAUxD,EAAMwD,SAAW,GAC3Bp2B,EAAQ,IAAI/1B,WAAW,EAAImsD,EAAQxhK,QACzC,IAAI2D,EACAyP,EAGJ,IAAKzP,EAAI,EAAGA,EAAI69J,EAAQxhK,OAAQ2D,IAC9ByP,EAAQouJ,EAAQ79J,GAAGyP,MACnBg4H,EAAMznI,EAAI,GAAKyP,EAAM2mM,WAAa,EAAI3mM,EAAM4mM,cAAgB,EAAI5mM,EAAM6mM,cAExE,OAAO9C,GAAIsC,IAAItC,GAAIn+K,MAAMm/K,KAAM/sE,EACjC,CACA,WAAOgtE,CAAKp6C,GACV,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAMo/K,KAAMjB,GAAIl5C,KAAKD,GAAQm5C,GAAIsC,IAAItC,GAAIn+K,MAAMw/K,KAAMrB,GAAI2B,MAAO3B,GAAIsC,IAAItC,GAAIn+K,MAAMs/K,KAAMnB,GAAI4B,MAAO5B,GAAIsC,IAAItC,GAAIn+K,MAAMu/K,KAAMpB,GAAI8B,MAAO9B,GAAIsC,IAAItC,GAAIn+K,MAAMq/K,KAAMlB,GAAI6B,MACvL,CACA,WAAOxuC,CAAKxM,GACV,IAEIr6J,EACA8F,EACA7F,EAJAutM,EAAM,GACNG,EAAM,GAMV,IAAK3tM,EAAI,EAAGA,EAAIq6J,EAAMmzC,IAAInxM,OAAQ2D,IAChC8F,EAAOu0J,EAAMmzC,IAAIxtM,GACjBC,EAAM6F,EAAK0sG,WACXg7F,EAAIzvM,KAAKkC,IAAQ,EAAI,KACrButM,EAAIzvM,KAAW,IAANkC,GAGTutM,EAAMA,EAAI/pM,OAAO+G,MAAM1S,UAAU8H,MAAMnH,KAAKqN,IAI9C,IAAK9F,EAAI,EAAGA,EAAIq6J,EAAMszC,IAAItxM,OAAQ2D,IAChC8F,EAAOu0J,EAAMszC,IAAI3tM,GACjBC,EAAM6F,EAAK0sG,WACXm7F,EAAI5vM,KAAKkC,IAAQ,EAAI,KACrB0tM,EAAI5vM,KAAW,IAANkC,GACT0tM,EAAMA,EAAIlqM,OAAO+G,MAAM1S,UAAU8H,MAAMnH,KAAKqN,IAE9C,MAAMywM,EAAO/C,GAAIsC,IAAItC,GAAIn+K,MAAMo+K,KAAM,IAAI/hG,WAAW,CAAC,EAErD87F,EAAI,GAEJA,EAAI,GAEJA,EAAI,GAEJ,IAEA,IAAOnzC,EAAMmzC,IAAInxM,QACfoH,OAAO+pM,GAAK/pM,OAAO,CAAC42J,EAAMszC,IAAItxM,SAC7BoH,OAAOkqM,KACJ9zJ,EAAQwgH,EAAMxgH,MACdJ,EAAS4gH,EAAM5gH,OACf+8J,EAAWn8C,EAAMsyC,WAAW,GAC5B8J,EAAWp8C,EAAMsyC,WAAW,GAClC,OAAO6G,GAAIsC,IAAItC,GAAIn+K,MAAMwxI,KAAM,IAAIn1D,WAAW,CAAC,EAAM,EAAM,EAE3D,EAAM,EAAM,EAEZ,EAAM,EAEN,EAAM,EAEN,EAAM,EAEN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAElE73D,GAAS,EAAI,IAAc,IAARA,EAEnBJ,GAAU,EAAI,IAAe,IAATA,EAEpB,EAAM,GAAM,EAAM,EAElB,EAAM,GAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAEN,GAAM,IAAM,GAAM,IAAM,IAExB,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE5J,EAAM,GAEN,GAAM,KAEN88J,EAAM/C,GAAIsC,IAAItC,GAAIn+K,MAAMq+K,KAAM,IAAIhiG,WAAW,CAAC,EAAM,GAAM,IAAM,IAEhE,EAAM,GAAM,IAAM,IAElB,EAAM,GAAM,IAAM,OAElB8hG,GAAIsC,IAAItC,GAAIn+K,MAAMk/K,KAAM,IAAI7iG,WAAW,CAAC8kG,GAAY,GAEpDA,GAAY,GAAK,IAAMA,GAAY,EAAI,IAAiB,IAAXA,EAAiBC,GAAY,GAE1EA,GAAY,GAAK,IAAMA,GAAY,EAAI,IAAiB,IAAXA,KAC/C,CACA,WAAO5C,CAAKx5C,GACV,MAAMq8C,EAAYr8C,EAAM9pG,OAAOl0D,OAC/B,OAAO,IAAIq1G,WAAW,CAAC,EAEvB,EAAM,EAAM,EAGZ,EAEA,GAAOglG,EAEP,EAAM,EAEN,EAGA,EAEA,GAAOA,EAEP,GAEA,GAEA,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAGlB,GACEjzM,OAAO,CAACizM,IAAYjzM,OAAO42J,EAAM9pG,QAAQ9sD,OAAO,CAAC,EAAM,EAAM,IACjE,CACA,gBAAOkzM,CAAUt8C,GACf,MAAMysC,EAAazsC,EAAMysC,WACzB,OAAO,IAAIp1F,WAAW,CAAC,EAAM,EAAM,EAEnC,EAAM,EAAM,EAEZ,EAAM,EAEN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1C,EAAM2oD,EAAMgtC,aAEZ,EAAM,GAEN,EAAM,EAAM,EAAM,EAElBP,GAAc,EAAI,IAAmB,IAAbA,EAExB,EAAM,GACR,CACA,WAAO5gC,CAAK7L,GACV,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAM6wI,KAAMstC,GAAImD,UAAUt8C,GAAQm5C,GAAIsC,IAAItC,GAAIn+K,MAAMw+K,KAAML,GAAIK,KAAKx5C,IACxF,CACA,UAAOm4C,CAAIn4C,GACT,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAM,QAASm+K,GAAImD,UAAUt8C,GAClD,CACA,UAAOo4C,CAAIp4C,GACT,OAAOm5C,GAAIsC,IAAItC,GAAIn+K,MAAM,QAASm+K,GAAImD,UAAUt8C,GAAQm5C,GAAIsC,IAAItC,GAAIn+K,MAAM++K,KAAM/5C,EAAM9pG,QACxF,CACA,WAAO+pG,CAAKD,GACV,MAAmB,UAAfA,EAAM5+J,KACmB,QAAvB4+J,EAAMi2C,cAA0C,QAAhBj2C,EAAMK,MACjC84C,GAAIsC,IAAItC,GAAIn+K,MAAMilI,KAAMk5C,GAAIiC,KAAMjC,GAAIhB,IAAIn4C,IAExB,QAAvBA,EAAMi2C,aACDkD,GAAIsC,IAAItC,GAAIn+K,MAAMilI,KAAMk5C,GAAIiC,KAAMjC,GAAIf,IAAIp4C,IAE5Cm5C,GAAIsC,IAAItC,GAAIn+K,MAAMilI,KAAMk5C,GAAIiC,KAAMjC,GAAIttC,KAAK7L,IAE3Cm5C,GAAIsC,IAAItC,GAAIn+K,MAAMilI,KAAMk5C,GAAIiC,KAAMjC,GAAI3sC,KAAKxM,GAEtD,CACA,WAAOV,CAAKU,GACV,MAAMjxJ,EAAKixJ,EAAMjxJ,GACXm0D,EAAW88F,EAAM98F,SAAW88F,EAAMtB,UAClCl/G,EAAQwgH,EAAMxgH,MACdJ,EAAS4gH,EAAM5gH,OACfu8J,EAAoB78M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IACxD0C,EAAoB98M,KAAK6lD,MAAMue,GAAYg2I,GAAa,IAC9D,OAAOC,GAAIsC,IAAItC,GAAIn+K,MAAMskI,KAAM,IAAIjoD,WAAW,CAAC,EAE/C,EAAM,EAAM,EAEZ,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1C,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1CtoG,GAAM,GAAK,IAAMA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAElD,EAAM,EAAM,EAAM,EAElB4sM,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0BC,GAAqB,GAAIA,GAAqB,GAAK,IAAMA,GAAqB,EAAI,IAA0B,IAApBA,EAA0B,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE9Q,EAAM,EAEN,EAAM,EAEN,EAAM,EAEN,EAAM,EAEN,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,EAAM,EAAM,EAElNp8J,GAAS,EAAI,IAAc,IAARA,EAAc,EAAM,EAEvCJ,GAAU,EAAI,IAAe,IAATA,EAAe,EAAM,IAE3C,CACA,WAAOwkH,CAAK5D,EAAO67C,GACjB,MAAMU,EAAwBpD,GAAIgB,KAAKn6C,GACjCjxJ,EAAKixJ,EAAMjxJ,GACXytM,EAA+B19M,KAAK6lD,MAAMk3J,GAAuB3C,GAAa,IAC9EuD,EAA+B39M,KAAK6lD,MAAMk3J,GAAuB3C,GAAa,IACpF,OAAOC,GAAIsC,IAAItC,GAAIn+K,MAAM4oI,KAAMu1C,GAAIsC,IAAItC,GAAIn+K,MAAM+oI,KAAM,IAAI1sD,WAAW,CAAC,EAEvE,EAAM,EAAM,EAEZtoG,GAAM,GAAIA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,KACtCoqM,GAAIsC,IAAItC,GAAIn+K,MAAM8oI,KAAM,IAAIzsD,WAAW,CAAC,EAE7C,EAAM,EAAM,EAEZmlG,GAAgC,GAAIA,GAAgC,GAAK,IAAMA,GAAgC,EAAI,IAAqC,IAA/BA,EAAqCC,GAAgC,GAAIA,GAAgC,GAAK,IAAMA,GAAgC,EAAI,IAAqC,IAA/BA,KAAwCtD,GAAIr2C,KAAK9C,EAAOu8C,EAAsBv6M,OAAS,GAE9W,GAEA,EAEA,GAEA,EAEA,GAEAu6M,EACF,CAMA,WAAOl9C,CAAKW,GAEV,OADAA,EAAM98F,SAAW88F,EAAM98F,UAAY,WAC5Bi2I,GAAIsC,IAAItC,GAAIn+K,MAAMqkI,KAAM85C,GAAI75C,KAAKU,GAAQm5C,GAAIQ,KAAK35C,GAC3D,CACA,WAAOD,CAAKC,GACV,MAAMjxJ,EAAKixJ,EAAMjxJ,GACjB,OAAOoqM,GAAIsC,IAAItC,GAAIn+K,MAAM+kI,KAAM,IAAI1oD,WAAW,CAAC,EAE/C,EAAM,EAAM,EAEZtoG,GAAM,GAAIA,GAAM,GAAK,IAAMA,GAAM,EAAI,IAAW,IAALA,EAE3C,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,EAElB,EAAM,EAAM,EAAM,IAEpB,CACA,WAAO+zJ,CAAK9C,EAAOjvG,GACjB,MAAMyyG,EAAUxD,EAAMwD,SAAW,GAC3B59J,EAAM49J,EAAQxhK,OACd06M,EAAW,GAAK,GAAK92M,EACrB9B,EAAQ,IAAIuzG,WAAWqlG,GAC7B,IAAI/2M,EACA+lL,EACAxoH,EACApsC,EACA1hB,EACAunM,EAUJ,IATA5rJ,GAAU,EAAI2rJ,EACd54M,EAAMtD,IAAI,CAAgB,UAAfw/J,EAAM5+J,KAAmB,EAAO,EAE3C,EAAM,GAAM,EAEZwE,IAAQ,GAAK,IAAMA,IAAQ,GAAK,IAAMA,IAAQ,EAAI,IAAY,IAANA,EAExDmrD,IAAW,GAAK,IAAMA,IAAW,GAAK,IAAMA,IAAW,EAAI,IAAe,IAATA,GAC9D,GACEprD,EAAI,EAAGA,EAAIC,EAAKD,IACnB+lL,EAASloB,EAAQ79J,GACjBu9D,EAAWwoH,EAAOxoH,SAClBpsC,EAAO40J,EAAO50J,KACd1hB,EAAQs2K,EAAOt2K,MACfunM,EAAMjxB,EAAOixB,IACb74M,EAAMtD,IAAI,CAAC0iE,IAAa,GAAK,IAAMA,IAAa,GAAK,IAAMA,IAAa,EAAI,IAAiB,IAAXA,EAElFpsC,IAAS,GAAK,IAAMA,IAAS,GAAK,IAAMA,IAAS,EAAI,IAAa,IAAPA,EAE3D1hB,EAAMwnM,WAAa,EAAIxnM,EAAM2mM,UAAW3mM,EAAM4mM,cAAgB,EAAI5mM,EAAM6mM,eAAiB,EAAI7mM,EAAMynM,cAAgB,EAAIznM,EAAM0nM,UAA8B,MAAnB1nM,EAAM2nM,WAA2C,GAAnB3nM,EAAM2nM,WAE5KJ,IAAQ,GAAK,IAAMA,IAAQ,GAAK,IAAMA,IAAQ,EAAI,IAAY,IAANA,GACrD,GAAK,GAAKh3M,GAEf,OAAOwzM,GAAIsC,IAAItC,GAAIn+K,MAAM8nI,KAAMh/J,EACjC,CACA,kBAAOiwJ,CAAYipB,GACZm8B,GAAIn+K,OACPm+K,GAAIhkL,OAEN,MAAM6nL,EAAQ7D,GAAIW,KAAK98B,GAEvB,OADeha,GAAiBm2C,GAAIqC,KAAMwB,EAE5C,EAEF7D,GAAIn+K,WAAQ,EACZm+K,GAAI0B,gBAAa,EACjB1B,GAAI2B,UAAO,EACX3B,GAAI4B,UAAO,EACX5B,GAAI6B,UAAO,EACX7B,GAAI8B,UAAO,EACX9B,GAAI+B,UAAO,EACX/B,GAAIgC,UAAO,EACXhC,GAAIiC,UAAO,EACXjC,GAAIqC,UAAO,EACXrC,GAAIuC,UAAO,EAGX,SAASuB,GAAoBp5C,EAAUq5C,EAAWC,EAAU,EAAGr1K,GAAQ,GACrE,MAAMtpC,EAASqlK,EAAWq5C,EAAYC,EACtC,OAAOr1K,EAAQhpC,KAAKgpC,MAAMtpC,GAAUA,CACtC,CAIA,SAAS4+M,GAAoBv5C,EAAU/7H,GAAQ,GAC7C,OAAOm1K,GAAoBp5C,EAAU,IAAM,EATf,IAS0C/7H,EACxE,CASA,IAmkCIhiB,GAnkCAu3L,GAAgB,KAChBC,GAAsB,KAC1B,MAAMC,GACJ,WAAA3wL,CAAYprB,EAAU00D,EAAQg/I,EAAesI,EAAS,IAiBpD,GAhBA37M,KAAKL,cAAW,EAChBK,KAAKq0D,YAAS,EACdr0D,KAAKqzM,mBAAgB,EACrBrzM,KAAK47M,aAAc,EACnB57M,KAAK67M,SAAW,KAChB77M,KAAK87M,SAAW,KAChB97M,KAAK+7M,WAAa,KAClB/7M,KAAKg8M,aAAe,KACpBh8M,KAAKi8M,oBAAsB,KAC3Bj8M,KAAKk8M,mBAAoB,EACzBl8M,KAAKm8M,mBAAoB,EACzBn8M,KAAKo8M,sBAAmB,EACxBp8M,KAAKL,SAAWA,EAChBK,KAAKq0D,OAASA,EACdr0D,KAAKqzM,cAAgBA,EACrBrzM,KAAK47M,aAAc,EACG,OAAlBJ,GAAwB,CAC1B,MACM7+M,GADY07C,UAAUC,WAAa,IAChB3uC,MAAM,kBAC/B6xM,GAAgB7+M,EAASipC,SAASjpC,EAAO,IAAM,CACjD,CACA,GAA4B,OAAxB8+M,GAA8B,CAChC,MAAM9+M,EAAS07C,UAAUC,UAAU3uC,MAAM,kBACzC8xM,GAAsB9+M,EAASipC,SAASjpC,EAAO,IAAM,CACvD,CACF,CACA,OAAAs1E,GAEEjyE,KAAKq0D,OAASr0D,KAAKo8M,iBAAmBp8M,KAAK67M,SAAW77M,KAAK87M,SAAW,IACxE,CACA,cAAAvS,CAAe8S,GACbv7H,EAAO31C,IAAI,0CACXnrC,KAAK67M,SAAW77M,KAAK87M,SAAWO,CAClC,CACA,kBAAAC,GACEx7H,EAAO31C,IAAI,uCACXnrC,KAAKm8M,mBAAoB,EACzBn8M,KAAKk8M,mBAAoB,CAC3B,CACA,gBAAA7S,GACEvoH,EAAO31C,IAAI,yCACXnrC,KAAK47M,aAAc,EACnB57M,KAAKo8M,sBAAmBlgN,CAC1B,CACA,gBAAAqgN,CAAiBC,GAEf,IAAIC,GAAmB,EACvB,MAAMC,EAAWF,EAAa,GAAGv4C,IAC3BxS,EAAW+qD,EAAan8M,QAAO,CAACs8M,EAAQ9yB,KAC5C,IAAI5lB,EAAM4lB,EAAO5lB,IACb4e,EAAQ5e,EAAM04C,EAOlB,OANI95B,GAAS,aAEX45B,GAAmB,EACnBx4C,EAAM24C,GAAa34C,EAAKy4C,GACxB75B,EAAQ5e,EAAM04C,GAEZ95B,EAAQ,EACH85B,EAEF14C,CAAG,GACTy4C,GAIH,OAHID,GACF37H,EAAO1yD,MAAM,yBAERqjI,CACT,CACA,KAAAorD,CAAM3kC,EAAY+xB,EAAYluB,EAAUiB,EAAWxb,EAAYs7C,EAAoBh7M,EAAO4uL,GACxF,IAAIj9B,EACAD,EACAtB,EACAz7G,EACAulH,EACAzI,EACAwpD,EAAkBv7C,EAClBw7C,EAAkBx7C,EAOtB,MAAMy7C,EAAW/kC,EAAW0wB,KAAO,EAC7BsU,EAAWjT,EAAWrB,KAAO,EAC7BzoM,EAAS8pM,EAAWtoC,QAAQxhK,OAC5Bg9M,EAAqBjlC,EAAWvW,QAAQxhK,OAAS,EACjDi9M,EAAqBt7M,GAAS3B,EAAS,GAAKA,EAAS,EAE3D,KADsB88M,GAAYE,MAAyBD,GAAYE,IAAuBp9M,KAAK47M,aAAe95M,EACjG,CACf,GAAI9B,KAAK47M,YAAa,CACpB,IAAIyB,EAAuBC,EAAoBC,EAAwBC,EACvE,MAAMnpJ,EAASr0D,KAAKo8M,kBAChB/nJ,GAAW41I,EAAWtsJ,QAAU0W,EAAO1W,OAASssJ,EAAW1sJ,SAAW8W,EAAO9W,SAA8D,OAAlD8/J,EAAwBpT,EAAWwG,iBAAsB,EAAS4M,EAAsB,OAAqD,OAA3CC,EAAqBjpJ,EAAOo8I,iBAAsB,EAAS6M,EAAmB,MAA4D,OAAnDC,EAAyBtT,EAAWwG,iBAAsB,EAAS8M,EAAuB,OAAsD,OAA5CC,EAAsBnpJ,EAAOo8I,iBAAsB,EAAS+M,EAAoB,KACxcx9M,KAAKqpM,kBAET,MACEn3C,EAAclyJ,KAAKy9M,WAAWvlC,EAAY+xB,EAAYzoC,EAAYs7C,GAEpE,MAAMX,EAAoBn8M,KAAKm8M,kBAC/B,IACIuB,EADAC,GAAsB,EAE1B,GAAIP,IACFO,EAwsBR,SAA2Bh8C,GACzB,IAAK,IAAI79J,EAAI,EAAGA,EAAI69J,EAAQxhK,OAAQ2D,IAClC,GAAI69J,EAAQ79J,GAAGpF,IACb,OAAOoF,EAGX,OAAQ,CACV,CA/sB6B85M,CAAkB3T,EAAWtoC,UAC7Cw6C,GAAqBn8M,KAAKq0D,OAAOwpJ,8BAEpC,GADAtqD,GAAc,EACVoqD,EAAqB,EAAG,CAC1B78H,EAAO/jD,KAAK,0BAA0B4gL,YAA6Bx9M,6CACnE,MAAMsxJ,EAAWzxJ,KAAKu8M,iBAAiBtS,EAAWtoC,SAClDsoC,EAAWtoC,QAAUsoC,EAAWtoC,QAAQj+J,MAAMi6M,GAC9C1T,EAAWhH,SAAW0a,EACtBX,IAAoB/S,EAAWtoC,QAAQ,GAAGsC,IAAMxS,GAAYw4C,EAAWtB,eACvE+U,EAAmBV,CACrB,MAAmC,IAAxBW,IACT78H,EAAO/jD,KAAK,2CAA2C58B,mBACvDozJ,GAAc,GAIpB,GAAIvzJ,KAAK47M,YAAa,CACpB,GAAIuB,GAAsBC,EAAoB,CAK5C,MAAM3rD,EAAWzxJ,KAAKu8M,iBAAiBtS,EAAWtoC,SAE5Cm8C,GADUlB,GAAa1kC,EAAWvW,QAAQ,GAAGsC,IAAKxS,GAAYA,GACzBw4C,EAAWtB,eACtDoU,GAAmB9/M,KAAKmrB,IAAI,EAAG01L,GAC/Bd,GAAmB//M,KAAKmrB,IAAI,GAAI01L,EAClC,CAGA,GAAIX,GAOF,GALKjlC,EAAW0yB,aACd9pH,EAAO/jD,KAAK,2DACZm1H,EAAclyJ,KAAKy9M,WAAWvlC,EAAY+xB,EAAYzoC,EAAYs7C,IAEpEtpD,EAAQxzJ,KAAK+9M,WAAW7lC,EAAY6kC,EAAiB/8M,KAAKk8M,kBAAmBY,EAAoBI,GAAYE,GAAsB1sB,IAAiBpc,GAA0B0oC,OAAkB9gN,GAC5LkhN,EAAoB,CACtB,MAAMY,EAAmBxqD,EAAQA,EAAM9B,OAAS8B,EAAM/B,SAAW,EAE5Dw4C,EAAWtB,iBACd7nH,EAAO/jD,KAAK,2DACZm1H,EAAclyJ,KAAKy9M,WAAWvlC,EAAY+xB,EAAYzoC,EAAYs7C,IAEpErpD,EAAQzzJ,KAAKi+M,WAAWhU,EAAY+S,EAAiBb,EAAmB6B,EAC1E,OACSZ,IACT3pD,EAAQzzJ,KAAKi+M,WAAWhU,EAAY+S,EAAiBb,EAAmB,IAEtE1oD,IACFA,EAAMyqD,cAAgBP,EACtBlqD,EAAMF,aAAsC,IAAxBoqD,EACpBlqD,EAAMiqD,iBAAmBA,EAE7B,CACF,CAWA,OARI19M,KAAK47M,aAAe57M,KAAK67M,UAAY77M,KAAK87M,WACxC//B,EAASpa,QAAQxhK,SACnB67J,EAAMmiD,GAAiCpiC,EAAUva,EAAYxhK,KAAK67M,SAAU77M,KAAK87M,WAE/E9+B,EAAUrb,QAAQxhK,SACpBs2C,EAAO2nK,GAAiCphC,EAAWxb,EAAYxhK,KAAK67M,YAGjE,CACLroD,QACAC,QACAvB,cACAqB,cACA98G,OACAulH,MAEJ,CACA,UAAAyhD,CAAWvlC,EAAY+xB,EAAYzoC,EAAYs7C,GAC7C,MAAMuB,EAAenmC,EAAWvW,QAC1B66C,EAAevS,EAAWtoC,QAC1B0xC,EAAgBrzM,KAAKqzM,cACrBl4B,EAAS,CAAC,EACV0gC,EAAW77M,KAAK67M,SACtB,IAEIve,EACAghB,EACAzhD,EAJA0hD,GAAiB1C,GAAYiB,EAC7B9kJ,EAAY,YAOhB,GAHIumJ,IACFjhB,EAAUghB,EAAUl5H,KAElB8yF,EAAW7jH,QAAUgqJ,EAAal+M,OAAQ,CAM5C,OADA+3K,EAAWrb,UAAYqb,EAAW0yB,WAC1B1yB,EAAWk8B,cACjB,IAAK,MACCf,EAAcgD,MAEhBr+I,EAAY,aACZkgH,EAAW1Z,MAAQ,IACV60C,EAAciD,MAEvBp+B,EAAW1Z,MAAQ,OAErB,MACF,IAAK,MACH0Z,EAAW1Z,MAAQ,OAGvB2c,EAAO3nB,MAAQ,CACbtmJ,GAAI,QACJ8qD,UAAWA,EACXwmG,MAAO0Z,EAAW1Z,MAClBtM,YAAyC,QAA5BgmB,EAAWk8B,cAA0Bf,EAAcgD,KAAO,IAAI7gG,WAAW,GAAK8hG,GAAIplD,YAAY,CAACgmB,IAC5GtjF,SAAU,CACRu2G,aAAcjzB,EAAWizB,eAGzBoT,IACF1hD,EAAYqb,EAAWywB,eAClBkT,GAAYh/C,IAAcg/C,EAASh/C,UAItC0hD,GAAgB,EAFhBjhB,EAAUghB,EAAUD,EAAa,GAAGp6C,IAAMhnK,KAAKgpC,MAAM42H,EAAY2E,GAKvE,CACA,GAAIyoC,EAAWqH,KAAOrH,EAAWwH,KAAO+K,EAAar8M,OAAQ,CAc3D,GAXA8pM,EAAWptC,UAAYotC,EAAWtB,eAClCxtB,EAAO1nB,MAAQ,CACbvmJ,GAAI,OACJ8qD,UAAW,YACXwmG,MAAOyrC,EAAWzrC,MAClBtM,YAAaolD,GAAIplD,YAAY,CAAC+3C,IAC9Br1G,SAAU,CACRj3C,MAAOssJ,EAAWtsJ,MAClBJ,OAAQ0sJ,EAAW1sJ,SAGnBghK,EAEF,GADA1hD,EAAYotC,EAAWtB,eAClBkT,GAAYh/C,IAAcg/C,EAASh/C,UAMtC0hD,GAAgB,MANiC,CACjD,MAAM9sD,EAAWzxJ,KAAKu8M,iBAAiBC,GACjCl/B,EAAcrgL,KAAKgpC,MAAM42H,EAAY2E,GAC3C88C,EAAUrhN,KAAK6+B,IAAIwiL,EAAS1B,GAAaJ,EAAa,GAAGzS,IAAKt4C,GAAY6rB,GAC1EggB,EAAUrgM,KAAK6+B,IAAIwhK,EAAS7rC,EAAW6rB,EACzC,CAIFt9K,KAAKo8M,iBAAmB,CACtBz+J,MAAOssJ,EAAWtsJ,MAClBJ,OAAQ0sJ,EAAW1sJ,OACnBkzJ,WAAYxG,EAAWwG,WAE3B,CACA,GAAI90M,OAAOwK,KAAKg1K,GAAQh7K,OActB,OAbAH,KAAK47M,aAAc,EACf2C,GACFv+M,KAAK67M,SAAW,CACd75C,SAAUs7B,EACVzgC,UAAWA,GAEb78J,KAAK87M,SAAW,CACd95C,SAAUs8C,EACVzhD,UAAWA,IAGbygC,EAAUzgC,OAAY3gK,EAEjB,CACLi/K,SACAmiB,UACAzgC,YAGN,CACA,UAAAohD,CAAW9/C,EAAOqD,EAAYqjC,EAAYmZ,GACxC,MAAMQ,EAAYrgD,EAAMwqC,eAClB8V,EAAetgD,EAAMwD,QACrB+8C,EAAgB,GAChBzQ,EAAYwQ,EAAat+M,OACzBm9L,EAAUt9L,KAAK67M,SACrB,IAGI8C,EACAC,EAJA7C,EAAa/7M,KAAK+7M,WAClB7sJ,EAAS,EACT2vJ,EAAoB7+M,KAAKi8M,oBAGzBU,EAASjpM,OAAOioK,kBAChBmjC,EAASprM,OAAOqrM,kBAChBC,GAAc,EAGlB,IAAKna,GAA6B,OAAfkX,EAAqB,CACtC,MAAM93C,EAAMzC,EAAag9C,EACnB1D,EAAM2D,EAAa,GAAGx6C,IAAM24C,GAAa6B,EAAa,GAAG1U,IAAK0U,EAAa,GAAGx6C,KAChFu3C,IAAgC,OAAfO,GAAuB9+M,KAAK6rF,IAAIm7E,EAAM62C,EAAMiB,GAAc,KAE7ElX,GAAa,EAGbkX,EAAa93C,EAAM62C,CAEvB,CAIA,MAAMmE,EAAW3hB,EAAQt7B,SAAWw8C,EAAYlhB,EAAQzgC,UACxD,IAAK,IAAI/4J,EAAI,EAAGA,EAAImqM,EAAWnqM,IAAK,CAClC,MAAM+lL,EAAS40B,EAAa36M,GAC5B+lL,EAAO5lB,IAAM24C,GAAa/yB,EAAO5lB,IAAMg7C,EAAUlD,GACjDlyB,EAAOkgB,IAAM6S,GAAa/yB,EAAOkgB,IAAMkV,EAAUlD,GAC7ClyB,EAAOkgB,IAAM0U,EAAa36M,EAAI,EAAIA,EAAI,EAAIA,GAAGimM,MAC/CiV,GAAc,EAElB,CAGIA,GACFP,EAAa/9K,MAAK,SAAUpgC,EAAGC,GAC7B,MAAM2+M,EAAW5+M,EAAEypM,IAAMxpM,EAAEwpM,IACrBoV,EAAW7+M,EAAE2jK,IAAM1jK,EAAE0jK,IAC3B,OAAOi7C,GAAYC,CACrB,IAIFR,EAAWF,EAAa,GAAG1U,IAC3B6U,EAAUH,EAAaA,EAAat+M,OAAS,GAAG4pM,IAIhD,MAAMqV,EAAgBR,EAAUD,EAC1BU,EAAwBD,EAAgBniN,KAAKgpC,MAAMm5K,GAAiBnR,EAAY,IAAM4Q,GAAqB1gD,EAAMwqC,eAAiB,GAGxI,GAAI9D,EAAY,CAEd,MAAMhiB,EAAQ87B,EAAW5C,EACnBuD,EAAYz8B,EAAQw8B,EACpBE,EAAe18B,GAAS,EAC9B,IAAIy8B,GAAaC,KACXD,EACFx+H,EAAO/jD,KAAK,QAAQw+K,GAAoB14B,GAAO,UAAaA,4CAAgDrhB,EAAW53F,QAAQ,MAE/HkX,EAAO/jD,KAAK,QAAQw+K,IAAqB14B,GAAO,UAAaA,mDAAuDrhB,EAAW53F,QAAQ,OAEpI21I,GAAgBxD,GAAc0C,EAAa,GAAGx6C,KAAOu3C,IAAe,CACvEmD,EAAW5C,EACX,MAAMyD,EAAWf,EAAa,GAAGx6C,IAAM4e,EACvC,GAAIy8B,EACFb,EAAa,GAAG1U,IAAM4U,EACtBF,EAAa,GAAGx6C,IAAMu7C,OAEtB,IAAK,IAAI17M,EAAI,EAAGA,EAAI26M,EAAat+M,UAC3Bs+M,EAAa36M,GAAGimM,IAAMyV,GADa17M,IAIvC26M,EAAa36M,GAAGimM,KAAOlnB,EACvB47B,EAAa36M,GAAGmgK,KAAO4e,EAG3B/hG,EAAO31C,IAAI,oCAAoCowK,GAAoBiE,GAAU,MAASjE,GAAoBoD,GAAU,cAAiBpD,GAAoB14B,GAAO,QAClK,CAEJ,CACA87B,EAAW1hN,KAAKmrB,IAAI,EAAGu2L,GACvB,IAAIc,EAAS,EACTC,EAAU,EACVC,EAAUhB,EACd,IAAK,IAAI76M,EAAI,EAAGA,EAAImqM,EAAWnqM,IAAK,CAElC,MAAM+lL,EAAS40B,EAAa36M,GACtB8pM,EAAQ/jB,EAAO+jB,MACfgS,EAAUhS,EAAMztM,OACtB,IAAI0/M,EAAY,EAChB,IAAK,IAAIzuK,EAAI,EAAGA,EAAIwuK,EAASxuK,IAC3ByuK,GAAajS,EAAMx8J,GAAGxnC,KAAKzJ,OAE7Bu/M,GAAWG,EACXJ,GAAUG,EACV/1B,EAAO1pL,OAAS0/M,EAGZh2B,EAAOkgB,IAAM4V,GACf91B,EAAOkgB,IAAM4V,EACbA,GAAWN,EAAwB,EAAI,GAAK,GAE5CM,EAAU91B,EAAOkgB,IAEnB4S,EAAS1/M,KAAK6+B,IAAI+tJ,EAAO5lB,IAAK04C,GAC9BmC,EAAS7hN,KAAKmrB,IAAIyhK,EAAO5lB,IAAK66C,EAChC,CACAF,EAAUH,EAAaxQ,EAAY,GAAGlE,IAItC,MAAM+V,EAAWJ,EAAU,EAAID,EAAS,EACxC,IAAI5H,EACJ,IACEA,EAAO,IAAIriG,WAAWsqG,EACxB,CAAE,MAAOn6M,GASP,YARA3F,KAAKL,SAAS6e,KAAKivI,EAAO+qB,MAAO/qB,EAAO+qB,MAAO,CAC7Cj5K,KAAMmuJ,EAAWqyD,UACjBvpL,QAASm3H,EAAaqyD,kBACtBrnC,OAAO,EACP/zK,MAAOe,EACP4lI,MAAOu0E,EACPj3K,OAAQ,8BAA8Bi3K,KAG1C,CACA,MAAMz6C,EAAO,IAAI75B,SAASqsE,EAAKnuM,QAC/B27J,EAAK6B,UAAU,EAAG44C,GAClBjI,EAAKl5M,IAAI24M,GAAIn+K,MAAM0+K,KAAM,GACzB,IAAIoI,GAAqB,EACrBC,EAAcxsM,OAAOioK,kBACrBwkC,EAAczsM,OAAOioK,kBACrBykC,EAAc1sM,OAAOqrM,kBACrBsB,EAAc3sM,OAAOqrM,kBACzB,IAAK,IAAIj7M,EAAI,EAAGA,EAAImqM,EAAWnqM,IAAK,CAClC,MAAM4pM,EAAc+Q,EAAa36M,GAC3Bw8M,EAAmB5S,EAAYE,MACrC,IAcI2S,EAdAC,EAAkB,EAEtB,IAAK,IAAIpvK,EAAI,EAAGwuK,EAAUU,EAAiBngN,OAAQixC,EAAIwuK,EAASxuK,IAAK,CACnE,MAAMxiB,EAAO0xL,EAAiBlvK,GACxBqvK,EAAW7xL,EAAKhlB,KAChB82M,EAAc9xL,EAAKhlB,KAAK0sG,WAC9B+uD,EAAK6B,UAAUh4G,EAAQwxJ,GACvBxxJ,GAAU,EACV2oJ,EAAKl5M,IAAI8hN,EAAUvxJ,GACnBA,GAAUwxJ,EACVF,GAAmB,EAAIE,CACzB,CAIA,GAAI58M,EAAImqM,EAAY,EAClB4Q,EAAoBJ,EAAa36M,EAAI,GAAGimM,IAAM2D,EAAY3D,IAC1DwW,EAAW9B,EAAa36M,EAAI,GAAGmgK,IAAMypC,EAAYzpC,QAC5C,CACL,MAAM5vG,EAASr0D,KAAKq0D,OACdssJ,EAAoB78M,EAAI,EAAI4pM,EAAY3D,IAAM0U,EAAa36M,EAAI,GAAGimM,IAAMsV,EAE9E,GADAkB,EAAWz8M,EAAI,EAAI4pM,EAAYzpC,IAAMw6C,EAAa36M,EAAI,GAAGmgK,IAAMo7C,EAC3DhrJ,EAAOusJ,wBAAgD,OAAtB5gN,KAAKg8M,aAAuB,CAM/D,MAAM6E,EAAe5jN,KAAK6lD,MAAMuR,EAAOgqI,cAAgBmgB,GACjDsC,GAAmB9C,EAAmBrB,EAASqB,EAAmBQ,EAAYx+M,KAAKg8M,cAAgBtO,EAAYzpC,IACjH68C,EAAkBD,GAGpBhC,EAAoBiC,EAAkBH,EAClC9B,EAAoB,EACtBA,EAAoB8B,EAEpBV,GAAqB,EAEvBn/H,EAAO31C,IAAI,sCAAsC21K,EAAkB,6CAA6CjC,EAAoB,oCAEpIA,EAAoB8B,CAExB,MACE9B,EAAoB8B,CAExB,CACA,MAAMI,EAAwB9jN,KAAKgpC,MAAMynK,EAAYzpC,IAAMypC,EAAY3D,KACvEmW,EAAcjjN,KAAK6+B,IAAIokL,EAAarB,GACpCuB,EAAcnjN,KAAKmrB,IAAIg4L,EAAavB,GACpCsB,EAAcljN,KAAK6+B,IAAIqkL,EAAaI,GACpCF,EAAcpjN,KAAKmrB,IAAIi4L,EAAaE,GACpC7B,EAAc78M,KAAK,IAAIm/M,GAAUtT,EAAYhvM,IAAKmgN,EAAmB2B,EAAiBO,GACxF,CACA,GAAIrC,EAAcv+M,OAChB,GAAIq7M,IACF,GAAIA,GAAgB,GAAI,CAGtB,MAAMjoM,EAAQmrM,EAAc,GAAGnrM,MAC/BA,EAAM2mM,UAAY,EAClB3mM,EAAM0nM,UAAY,CACpB,OACK,GAAIQ,IAGL4E,EAAcF,EAAcC,EAAcF,GAAeb,EAAwBe,EAAc,MAAkC,IAAzB1B,EAAc,GAAG5D,IAAW,CACtIh6H,EAAO/jD,KAAK,uGACZ,IAAIgtK,EAAM4U,EACV,IAAK,IAAI76M,EAAI,EAAGC,EAAM26M,EAAcv+M,OAAQ2D,EAAIC,EAAKD,IAAK,CACxD,MAAMm9M,EAAUlX,EAAM2U,EAAc56M,GAAGu9D,SACjC4iG,EAAM8lC,EAAM2U,EAAc56M,GAAGg3M,IACnC,GAAIh3M,EAAIC,EAAM,EAAG,CACf,MAAMm9M,EAAUD,EAAUvC,EAAc56M,EAAI,GAAGg3M,IAC/C4D,EAAc56M,GAAGu9D,SAAW6/I,EAAUj9C,CACxC,MACEy6C,EAAc56M,GAAGu9D,SAAWv9D,EAAI46M,EAAc56M,EAAI,GAAGu9D,SAAWg+I,EAElEX,EAAc56M,GAAGg3M,IAAM,EACvB/Q,EAAMkX,CACR,CACF,CAIJpC,EAAoBoB,IAAuBpB,EAAoBQ,EAAwBR,EACvF7+M,KAAK+7M,WAAaA,EAAa6C,EAAUC,EACzC7+M,KAAKi8M,oBAAsB4C,EAC3B7+M,KAAKm8M,mBAAoB,EACzB,MAIMvyM,EAAO,CACXw3J,MALWk2C,GAAIz1C,KAAK1D,EAAM0qC,iBAAkB8V,EAAUjzH,EAAS,CAAC,EAAGyyE,EAAO,CAC1EwD,QAAS+8C,KAKTr9C,MAAOw2C,EACPpmD,SAAUkrD,EAAS6B,EACnB9sD,QAASotD,EAASD,GAAqBL,EACvC7sD,SAAUgtD,EAAWH,EACrB5sD,OAAQmqD,EAAayC,EACrBj/M,KARW,QASX09M,UAAU,EACVC,UAAU,EACViE,GAAIzC,EAAcv+M,OAClB8iM,QAAS9kC,EAAM8kC,SAIjB,OAFA9kC,EAAMwD,QAAU,GAChBxD,EAAM8kC,QAAU,EACTr5L,CACT,CACA,kBAAAw3M,CAAmBjjD,GACjB,OAAQA,EAAMi2C,cACZ,IAAK,MACH,OApiB4B,KAqiB9B,IAAK,MACH,OAriBsB,KAsiBxB,QACE,OAziBsB,KA2iB5B,CACA,UAAA2J,CAAW5/C,EAAOqD,EAAYqjC,EAAYiY,EAAoBE,GAC5D,MAAMrU,EAAiBxqC,EAAMwqC,eAEvB0Y,EAAc1Y,GADCxqC,EAAMysC,WAAazsC,EAAMysC,WAAajC,GAErDkW,EAAoB7+M,KAAKohN,mBAAmBjjD,GAC5CmjD,EAAsBzC,EAAoBwC,EAC1C/jB,EAAUt9L,KAAK67M,SACf0F,EAAiC,QAAvBpjD,EAAMi2C,cAA0Bp0M,KAAKqzM,cAAcgD,KAC7DqI,EAAgB,GAChB8C,OAAuCtlN,IAApB8gN,EACzB,IAAIyB,EAAetgD,EAAMwD,QACrBzyG,EAASqyJ,EAAU,EAAI,EACvBvF,EAAeh8M,KAAKg8M,eAAiB,EAYzC,MAAMyF,EAAmBjgD,EAAamnC,EAChCsW,EAAW3hB,EAAQt7B,SAAW2mC,EAAiBrL,EAAQzgC,UAO7D,GANA78J,KAAKk8M,kBAAoBrX,EAAaA,GAAc4Z,EAAat+M,QAAU67M,EAAe,IAAMc,GAAsB7/M,KAAK6rF,IAAI24H,EAAmBzF,GAAgB,KAAQ/+M,KAAK6rF,IAAI8zH,GAAa6B,EAAa,GAAGx6C,IAAMg7C,EAAUwC,GAAoBzF,GAAgB,GAAKsF,GAGzQ7C,EAAajgN,SAAQ,SAAUqrL,GAC7BA,EAAO5lB,IAAM24C,GAAa/yB,EAAO5lB,IAAMg7C,EAAUwC,EACnD,KACK5c,GAAcmX,EAAe,EAAG,CAOnC,GAHAyC,EAAeA,EAAa3rM,QAAO+2K,GAAUA,EAAO5lB,KAAO,KAGtDw6C,EAAat+M,OAChB,OAIA67M,EAFsB,IAApBgB,EAEa,EACNF,IAAuB0E,EAEjBvkN,KAAKmrB,IAAI,EAAGq5L,GAGZhD,EAAa,GAAGx6C,GAEnC,CAQA,GAA2B,QAAvB9F,EAAMi2C,aAAwB,CAChC,MAAMsN,EAAsB1hN,KAAKq0D,OAAOqtJ,oBACxC,IAAK,IAAI59M,EAAI,EAAGo9M,EAAUlF,EAAcl4M,EAAI26M,EAAat+M,OAAQ2D,IAAK,CAEpE,MAAM+lL,EAAS40B,EAAa36M,GACtBmgK,EAAM4lB,EAAO5lB,IACb4e,EAAQ5e,EAAMi9C,EACd7/I,EAAWpkE,KAAK6rF,IAAI,IAAO+5F,EAAQ8lB,GAGzC,GAAI9lB,IAAU6+B,EAAsBJ,GAAuBE,EAC/C,IAAN19M,IACFg9E,EAAO/jD,KAAK,kBAAkBknI,EAAM0kC,GAAgB/+H,QAAQ,gCAAgC3sE,KAAKgpC,MAAM,IAAO48I,EAAQ8lB,UACtH3oM,KAAKg8M,aAAeA,EAAekF,EAAUj9C,QAS5C,GAAI4e,GAAS6+B,EAAsBJ,GAAuBjgJ,EA/nBrC,KA+nB6EmgJ,EAAkB,CACvH,IAAI/8K,EAAUxnC,KAAKgpC,MAAM48I,EAAQy+B,GAGjCJ,EAAUj9C,EAAMx/H,EAAU68K,EACtBJ,EAAU,IACZz8K,IACAy8K,GAAWI,GAEH,IAANx9M,IACF9D,KAAKg8M,aAAeA,EAAekF,GAErCpgI,EAAO/jD,KAAK,4BAA4B0H,oBAA0By8K,EAAUvY,GAAgB/+H,QAAQ,cAAc3sE,KAAKgpC,MAAM,IAAO48I,EAAQ8lB,cAC5I,IAAK,IAAIv3J,EAAI,EAAGA,EAAI3M,EAAS2M,IAAK,CAChC,MAAMuwK,EAAW1kN,KAAKmrB,IAAI84L,EAAS,GACnC,IAAIU,EAAYzK,GAAIC,eAAej5C,EAAM6sC,eAAiB7sC,EAAMK,MAAOL,EAAMgtC,cACxEyW,IACH9gI,EAAO31C,IAAI,oGACXy2K,EAAY/3B,EAAOj7J,KAAK8qI,YAE1B+kD,EAAa1rK,OAAOjvC,EAAG,EAAG,CACxB8qB,KAAMgzL,EACN39C,IAAK09C,IAEPT,GAAWI,EACXx9M,GACF,CACF,CACA+lL,EAAO5lB,IAAMi9C,EACbA,GAAWI,CACb,CACF,CACA,IAEIzJ,EAFA2H,EAAW,KACXpW,EAAU,KAEV0W,EAAW,EACXjK,EAAe4I,EAAat+M,OAChC,KAAO01M,KACLiK,GAAYrB,EAAa5I,GAAcjnL,KAAK0nF,WAE9C,IAAK,IAAIllE,EAAI,EAAGywK,EAAapD,EAAat+M,OAAQixC,EAAIywK,EAAYzwK,IAAK,CACrE,MAAM0wK,EAAcrD,EAAartK,GAC3BxiB,EAAOkzL,EAAYlzL,KACzB,IAAIq1I,EAAM69C,EAAY79C,IACtB,GAAgB,OAAZmlC,EAGiBsV,EAActtK,EAAI,GAC1BiwB,SAAWpkE,KAAKgpC,OAAOg+H,EAAMmlC,GAAWiY,OAC9C,CAOL,GANIxc,GAAqC,QAAvB1mC,EAAMi2C,eAEtBnwC,EAAM+3C,GAGRwD,EAAWv7C,IACP67C,EAAW,GAwBb,OArBAA,GAAY5wJ,EACZ,IACE2oJ,EAAO,IAAIriG,WAAWsqG,EACxB,CAAE,MAAOn6M,GASP,YARA3F,KAAKL,SAAS6e,KAAKivI,EAAO+qB,MAAO/qB,EAAO+qB,MAAO,CAC7Cj5K,KAAMmuJ,EAAWqyD,UACjBvpL,QAASm3H,EAAaqyD,kBACtBrnC,OAAO,EACP/zK,MAAOe,EACP4lI,MAAOu0E,EACPj3K,OAAQ,8BAA8Bi3K,KAG1C,CACKyB,IACU,IAAI/1E,SAASqsE,EAAKnuM,QAC1Bw9J,UAAU,EAAG44C,GAClBjI,EAAKl5M,IAAI24M,GAAIn+K,MAAM0+K,KAAM,GAM/B,CACAA,EAAKl5M,IAAIiwB,EAAMsgC,GACf,MAAM6yJ,EAAUnzL,EAAK0nF,WACrBpnD,GAAU6yJ,EAIVrD,EAAc78M,KAAK,IAAIm/M,IAAU,EAAMnC,EAAmBkD,EAAS,IACnE3Y,EAAUnlC,CACZ,CAGA,MAAMgqC,EAAYyQ,EAAcv+M,OAChC,IAAK8tM,EACH,OAIF,MAAMC,EAAawQ,EAAcA,EAAcv+M,OAAS,GACxDH,KAAKg8M,aAAeA,EAAe5S,EAAUiY,EAAcnT,EAAW7sI,SAGtE,MAAMwgG,EAAO0/C,EAAU,IAAI/rG,WAAW,GAAK8hG,GAAIz1C,KAAK1D,EAAM0qC,iBAAkB2W,EAAW6B,EAAa31H,EAAS,CAAC,EAAGyyE,EAAO,CACtHwD,QAAS+8C,KAIXvgD,EAAMwD,QAAU,GAChB,MAAM1oH,EAAQumK,EAAW7W,EACnB37L,EAAMgvM,EAAerT,EAErB+L,EAAY,CAChBtzC,MAAOS,EACPR,MAAOw2C,EACPpmD,SAAUx4G,EACVy4G,OAAQ1kJ,EACR2kJ,SAAU14G,EACV24G,OAAQ5kJ,EACRzN,KARW,QASX09M,UAAU,EACVC,UAAU,EACViE,GAAIlT,GAGN,OADAjuM,KAAKk8M,mBAAoB,EAClBxH,CACT,CACA,eAAAsN,CAAgB7jD,EAAOqD,EAAYqjC,EAAYnjC,GAC7C,MAAMinC,EAAiBxqC,EAAMwqC,eAEvB0Y,EAAc1Y,GADCxqC,EAAMysC,WAAazsC,EAAMysC,WAAajC,GAErDqT,EAAeh8M,KAAKg8M,aAEpBsC,EAAUt+M,KAAK87M,SACfmG,EAA+B,IAAnB3D,EAAQt8C,SAAmBs8C,EAAQzhD,UAC/ClL,GAA6B,OAAjBqqD,EAAwBA,EAAet6C,EAAU/P,SAAWg3C,GAAkBsZ,EAC1FrwD,EAAS8P,EAAU9P,OAAS+2C,EAAiBsZ,EAE7CjM,EAzwBoB,KAywBJqL,EAEhBpT,EAAYhxM,KAAKkmD,MAAMyuG,EAASD,GAAYqkD,GAE5CkM,EAAc/K,GAAIC,eAAej5C,EAAM6sC,eAAiB7sC,EAAMK,MAAOL,EAAMgtC,cAGjF,GAFArqH,EAAO/jD,KAAK,qCAEPmlL,EAEH,YADAphI,EAAOr1C,MAAM,6GAGf,MAAMk2H,EAAU,GAChB,IAAK,IAAI79J,EAAI,EAAGA,EAAImqM,EAAWnqM,IAAK,CAClC,MAAMynM,EAAQ55C,EAAW7tJ,EAAIkyM,EAC7Br0C,EAAQ9/J,KAAK,CACX+sB,KAAMszL,EACNj+C,IAAKsnC,EACLxB,IAAKwB,GAET,CAEA,OADAptC,EAAMwD,QAAUA,EACT3hK,KAAK+9M,WAAW5/C,EAAOqD,EAAYqjC,GAAY,EACxD,EAEF,SAAS+X,GAAavgN,EAAOuiC,GAC3B,IAAIswB,EACJ,GAAkB,OAAdtwB,EACF,OAAOviC,EAYT,IARE6yD,EAFEtwB,EAAYviC,GAEJ,WAGD,WAKJY,KAAK6rF,IAAIzsF,EAAQuiC,GAAa,YACnCviC,GAAS6yD,EAEX,OAAO7yD,CACT,CASA,SAAS8hN,GAAiChgD,EAAOqD,EAAY87B,EAASghB,GACpE,MAAMn+M,EAASg+J,EAAMwD,QAAQxhK,OAC7B,IAAKA,EACH,OAEF,MAAMwoM,EAAiBxqC,EAAMwqC,eAC7B,IAAK,IAAIl1L,EAAQ,EAAGA,EAAQtT,EAAQsT,IAAS,CAC3C,MAAMo2K,EAAS1rB,EAAMwD,QAAQluJ,GAG7Bo2K,EAAO5lB,IAAM24C,GAAa/yB,EAAO5lB,IAAMq5B,EAAQt7B,SAAW2mC,EAAiBrL,EAAQzgC,UAAW2E,EAAamnC,GAAkBA,EAC7H9e,EAAOkgB,IAAM6S,GAAa/yB,EAAOkgB,IAAMuU,EAAQt8C,SAAW2mC,EAAiB2V,EAAQzhD,UAAW2E,EAAamnC,GAAkBA,CAC/H,CACA,MAAMhnC,EAAUxD,EAAMwD,QAEtB,OADAxD,EAAMwD,QAAU,GACT,CACLA,UAEJ,CACA,SAASy8C,GAAiCjgD,EAAOqD,EAAY87B,GAC3D,MAAMn9L,EAASg+J,EAAMwD,QAAQxhK,OAC7B,IAAKA,EACH,OAEF,MAAMwoM,EAAiBxqC,EAAMwqC,eAC7B,IAAK,IAAIl1L,EAAQ,EAAGA,EAAQtT,EAAQsT,IAAS,CAC3C,MAAMo2K,EAAS1rB,EAAMwD,QAAQluJ,GAG7Bo2K,EAAO5lB,IAAM24C,GAAa/yB,EAAO5lB,IAAMq5B,EAAQt7B,SAAW2mC,EAAiBrL,EAAQzgC,UAAW2E,EAAamnC,GAAkBA,CAC/H,CACAxqC,EAAMwD,QAAQjhI,MAAK,CAACpgC,EAAGC,IAAMD,EAAE2jK,IAAM1jK,EAAE0jK,MACvC,MAAMtC,EAAUxD,EAAMwD,QAEtB,OADAxD,EAAMwD,QAAU,GACT,CACLA,UAEJ,CACA,MAAMq/C,GACJ,WAAAj2L,CAAYo3L,EAAY9gJ,EAAUpsC,EAAM6lL,GACtC96M,KAAKi1B,UAAO,EACZj1B,KAAKqhE,cAAW,EAChBrhE,KAAK86M,SAAM,EACX96M,KAAKuT,WAAQ,EACbvT,KAAKqhE,SAAWA,EAChBrhE,KAAKi1B,KAAOA,EACZj1B,KAAK86M,IAAMA,EACX96M,KAAKuT,MAAQ,CACXwnM,UAAW,EACXZ,aAAc,EACdC,cAAe,EACfc,WAAY,EACZhB,UAAWiI,EAAa,EAAI,EAC5BlH,UAAWkH,EAAa,EAAI,EAEhC,EAoLF,SAASC,GAAoBjkD,EAAO5+J,GAClC,MAAMmuK,EAAuB,MAATvP,OAAgB,EAASA,EAAMK,MACnD,GAAIkP,GAAeA,EAAYvtK,OAAS,EACtC,OAAOutK,EAET,GAAInuK,IAAS4wJ,EAA6B,CACxC,GAAoB,SAAhBud,GAA0C,SAAhBA,GAA0C,SAAhBA,EACtD,OAAOA,EAET,GAAoB,SAAhBA,GAA0C,SAAhBA,EAG5B,OAAOL,GAAuBK,GADG,GAGnC,MAAM/wK,EAAS,YAEf,OADAmkF,EAAOvpB,KAAK,uBAAuBm2G,+CAAyD/wK,MACrFA,CACT,CAIA,OADAmkF,EAAO/jD,KAAK,0BAA0B2wI,MAClB,SAAhBA,GAA0C,SAAhBA,EACrB,mBAEW,SAAhBA,EACK,gBAEF,aACT,CAIA,IACEzpJ,GAAMqG,KAAKrS,YAAYgM,IAAIjV,KAAKsb,KAAKrS,YACvC,CAAE,MAAOtS,GACPm7E,EAAO1yD,MAAM,qDACbnK,GAAsB,MAAhB2zI,OAAuB,EAASA,EAAa5zI,KAAKC,GAC1D,CACA,MAAMo+L,GAAY,CAAC,CACjBzY,MA1gHF,MACE,WAAA7+K,CAAYprB,EAAU00D,GACpBr0D,KAAKk7L,cAAgB,KACrBl7L,KAAKwhK,WAAa,EAClBxhK,KAAKq0D,YAAS,EACdr0D,KAAKiqM,gBAAa,EAClBjqM,KAAKk4K,gBAAa,EAClBl4K,KAAK+7K,cAAW,EAChB/7K,KAAKsiN,cAAW,EAChBtiN,KAAKq0D,OAASA,CAChB,CACA,cAAAk1I,GAAkB,CAClB,gBAAAF,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpD,MAAMW,EAAajqM,KAAKiqM,WAAavB,GAAW,QAAS,GACnDxwB,EAAal4K,KAAKk4K,WAAawwB,GAAW,QAAS,GACnD6Z,EAAeviN,KAAKsiN,SAAW5Z,GAAW,OAAQ,GAGxD,GAFA1oM,KAAK+7K,SAAW2sB,GAAW,MAAO,GAClC1oM,KAAKwhK,WAAa,EACG,MAAftP,IAAuBA,EAAY57C,WACvC,OAEF,MAAMksG,EAAWllD,GAAiBpL,GAClC,GAAIswD,EAAS/uD,MAAO,CAClB,MAAM,GACJvmJ,EAAE,UACF2vJ,EAAS,MACT2B,GACEgkD,EAAS/uD,MACbw2C,EAAW/8L,GAAKA,EAChB+8L,EAAWptC,UAAY0lD,EAAa1lD,UAAYA,EAChDotC,EAAWzrC,MAAQA,CACrB,CACA,GAAIgkD,EAAShvD,MAAO,CAClB,MAAM,GACJtmJ,EAAE,UACF2vJ,EAAS,MACT2B,GACEgkD,EAAShvD,MACb0kB,EAAWhrK,GAAKA,EAChBgrK,EAAWrb,UAAYA,EACvBqb,EAAW1Z,MAAQA,CACrB,CACA+jD,EAAar1M,GAAK6uJ,GAAqBtlH,KACvCwzJ,EAAWjnC,eAAiB,EAC5BinC,EAAW5oI,SAAW62G,EAAW72G,SAAWioI,CAC9C,CACA,eAAAG,GACEzpM,KAAKk7L,cAAgB,IACvB,CACA,YAAO4R,CAAMljM,GACX,OA70SJ,SAAqBA,GACnB,MAAMoD,EAAMpD,EAAK0sG,WACjB,IAAK,IAAIxyG,EAAI,EAAGA,EAAIkJ,GAAM,CACxB,MAAMioB,EAAOknI,GAAWvyJ,EAAM9F,GAC9B,GAAImxB,EAAO,GAAqB,MAAhBrrB,EAAK9F,EAAI,IAA+B,MAAhB8F,EAAK9F,EAAI,IAA+B,MAAhB8F,EAAK9F,EAAI,IAA+B,MAAhB8F,EAAK9F,EAAI,GAC/F,OAAO,EAETA,EAAImxB,EAAO,EAAInxB,EAAImxB,EAAOjoB,CAC5B,CACA,OAAO,CACT,CAm0SWy1M,CAAY74M,EACrB,CACA,KAAAggM,CAAMhgM,EAAM43J,GACVxhK,KAAKwhK,WAAaA,EAElB,IAAIg7C,EAAe5yM,EACnB,MAAMqgM,EAAajqM,KAAKiqM,WAClBjtB,EAAYh9K,KAAKsiN,SACvB,GAAItiN,KAAKq0D,OAAO2tI,YAAa,CAIvBhiM,KAAKk7L,gBACPshB,EAAer7C,GAAiBnhK,KAAKk7L,cAAetxL,IAEtD,MAAM84M,EA3uRZ,SAA2B94M,GACzB,MAAM+4M,EAAiB,CACrB9zL,MAAO,KACP+zL,UAAW,MAEPC,EAAQtmD,GAAQ3yJ,EAAM,CAAC,SAC7B,GAAIi5M,EAAM1iN,OAAS,EAEjB,OADAwiN,EAAeC,UAAYh5M,EACpB+4M,EAET,MAAMv4H,EAAOy4H,EAAMA,EAAM1iN,OAAS,GAIlC,OAFAwiN,EAAe9zL,MAAQgrI,EAAWjwJ,EAAM,EAAGwgF,EAAKkK,WAAa,GAC7DquH,EAAeC,UAAY/oD,EAAWjwJ,EAAMwgF,EAAKkK,WAAa,GACvDquH,CACT,CA4tR4BG,CAAkBtG,GACxCx8M,KAAKk7L,cAAgBwnB,EAAcE,UACnC3Y,EAAWtoC,QAAU+gD,EAAc7zL,OAAS,IAAI2mF,UAClD,MACEy0F,EAAWtoC,QAAU66C,EAEvB,MAAMzgC,EAAW/7K,KAAK+iN,gBAAgB9Y,EAAYzoC,GAElD,OADAwb,EAAUrb,QAAUJ,GAAaC,EAAYyoC,GACtC,CACLA,aACA/xB,WAAYl4K,KAAKk4K,WACjB6D,WACAiB,UAAWh9K,KAAKsiN,SAEpB,CACA,KAAAxgN,GACE,MAAM0/J,EAAaxhK,KAAKwhK,WAClByoC,EAAajqM,KAAKiqM,WAClBjtB,EAAYh9K,KAAKsiN,SACvBrY,EAAWtoC,QAAU3hK,KAAKk7L,eAAiB,IAAI1lF,WAC/Cx1G,KAAKk7L,cAAgB,KACrB,MAAMnf,EAAW/7K,KAAK+iN,gBAAgB9Y,EAAYjqM,KAAKwhK,YAEvD,OADAwb,EAAUrb,QAAUJ,GAAaC,EAAYyoC,GACtC,CACLA,aACA/xB,WAAYwwB,KACZ3sB,WACAiB,UAAW0rB,KAEf,CACA,eAAAqa,CAAgB9Y,EAAYzoC,GAC1B,MAAMua,EAAW/7K,KAAK+7K,SACtB,GAAIkuB,EAAWtoC,QAAQxhK,OAAQ,CAC7B,MAAM6iN,EAAQzmD,GAAQ0tC,EAAWtoC,QAAS,CAAC,SACvCqhD,GACFA,EAAMxkN,SAAQoL,IACZ,MAAMq5M,EA59QhB,SAAmBr5M,GACjB,MAAMkW,EAAUlW,EAAK,GACrB,IAAIs5M,EAAc,GACd7mN,EAAQ,GACRmiN,EAAY,EACZ2E,EAAwB,EACxBC,EAAmB,EACnBC,EAAgB,EAChBn2M,EAAK,EACLgiD,EAAS,EACb,GAAgB,IAAZpvC,EAAe,CACjB,KAAsD,OAA/Cm8I,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,KAC5Cg0J,GAAejnD,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IACtDA,GAAU,EAIZ,IAFAg0J,GAAejnD,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IACtDA,GAAU,EAC4C,OAA/C+sG,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,KAC5C7yD,GAAS4/J,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IAChDA,GAAU,EAEZ7yD,GAAS4/J,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IAChDA,GAAU,EACVsvJ,EAAYriD,GAAWvyJ,EAAM,IAC7Bu5M,EAAwBhnD,GAAWvyJ,EAAM,IACzCy5M,EAAgBlnD,GAAWvyJ,EAAM,IACjCsD,EAAKivJ,GAAWvyJ,EAAM,IACtBslD,EAAS,EACX,MAAO,GAAgB,IAAZpvC,EAAe,CACxBovC,GAAU,EACVsvJ,EAAYriD,GAAWvyJ,EAAMslD,GAC7BA,GAAU,EACV,MAAMo0J,EAAuBnnD,GAAWvyJ,EAAMslD,GAC9CA,GAAU,EACV,MAAMq0J,EAAwBpnD,GAAWvyJ,EAAMslD,GAW/C,IAVAA,GAAU,EACVk0J,EAAmB,GAAK,GAAKE,EAAuBC,EAC/CvsL,EAAcosL,KACjBA,EAAmB1vM,OAAOwyB,iBAC1B46C,EAAO/jD,KAAK,qGAEdsmL,EAAgBlnD,GAAWvyJ,EAAMslD,GACjCA,GAAU,EACVhiD,EAAKivJ,GAAWvyJ,EAAMslD,GACtBA,GAAU,EAC4C,OAA/C+sG,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,KAC5Cg0J,GAAejnD,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IACtDA,GAAU,EAIZ,IAFAg0J,GAAejnD,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IACtDA,GAAU,EAC4C,OAA/C+sG,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,KAC5C7yD,GAAS4/J,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IAChDA,GAAU,EAEZ7yD,GAAS4/J,GAAQryJ,EAAK8vJ,SAASxqG,EAAQA,EAAS,IAChDA,GAAU,CACZ,CAEA,MAAO,CACLg0J,cACA7mN,QACAmiN,YACA4E,mBACAD,wBACAE,gBACAn2M,KACAjB,QATcrC,EAAK8vJ,SAASxqG,EAAQtlD,EAAK0sG,YAW7C,CAu5Q2BktG,CAAU55M,GAC3B,GAAImjM,GAAkBn/K,KAAKq1L,EAASC,aAAc,CAChD,MAAMj/C,EAAMzW,EAAey1D,EAASG,kBAAoBH,EAASG,iBAAmBH,EAASzE,UAAYh9C,EAAayhD,EAASE,sBAAwBF,EAASzE,UAChK,IAAIn9I,EAAsC,aAA3B4hJ,EAASI,cAA+B3vM,OAAOioK,kBAAoBsnC,EAASI,cAAgBJ,EAASzE,UAEhHn9I,GAAY,OACdA,EAAW3tD,OAAOioK,mBAEpB,MAAM1vK,EAAUg3M,EAASh3M,QACzB8vK,EAASpa,QAAQ9/J,KAAK,CACpB+H,KAAMqC,EACNlI,IAAKkI,EAAQqqG,WACbyzF,IAAK9lC,EACLA,IAAKA,EACL1kK,KAAM87K,GACNh6G,SAAUA,GAEd,IAGN,CACA,OAAO06G,CACT,CACA,cAAAmuB,CAAetgM,EAAMuvJ,EAASqI,GAC5B,OAAOrgK,QAAQE,OAAO,IAAIvD,MAAM,0DAClC,CACA,OAAAm0E,GAAW,GA44GX4qI,MAzNF,MACE,WAAA9xL,GACE/qB,KAAKyjN,iBAAkB,EACvBzjN,KAAK6vK,gBAAa,EAClB7vK,KAAK+sK,gBAAa,EAClB/sK,KAAKwiN,cAAW,EAChBxiN,KAAKs9L,QAAU,KACft9L,KAAK0jN,gBAAa,EAClB1jN,KAAK2jN,YAAc,IACrB,CACA,OAAA1xI,GAAW,CACX,cAAAs3H,CAAeqa,GACb5jN,KAAKs9L,QAAUsmB,EACf5jN,KAAK2jN,YAAc,IACrB,CACA,kBAAArH,GACEt8M,KAAK2jN,YAAc,IACrB,CACA,gBAAAta,CAAiBn3C,EAAa2d,EAAY9C,EAAY1a,GACpDryJ,KAAK6vK,WAAaA,EAClB7vK,KAAK+sK,WAAaA,EAClB/sK,KAAK6jN,oBA7wYT,SAA4B3xD,EAAaG,GACvC,IAAKH,IAAgBG,EACnB,OAAOH,EAET,MAAMqH,EAAQlH,EAAYkH,MA8B1B,OA7BIA,GAASlH,EAAY0T,oBACTxJ,GAAQrK,EAAa,CAAC,OAAQ,SACtC1zJ,SAAQg/J,IACZ,MAGMa,EAHO9B,GAAQiB,EAAM,CAAC,OAAQ,OAAQ,OAAQ,SAAS,GAGlC9D,SAAS,GACpC,IAAIoqD,EAAWvnD,GAAQ8B,EAAe,CAAC,SACvC,MAAM0lD,EAAUD,EAAS3jN,OAAS,EAC7B4jN,IACHD,EAAWvnD,GAAQ8B,EAAe,CAAC,UAErCylD,EAAStlN,SAAQwlN,IAEGznD,GADKwnD,EAAUC,EAAItqD,SAAS,IAAMsqD,EAAItqD,SAAS,IACvB,CAAC,SACjCl7J,SAAQkgK,IAChB,MAAMulD,EAAOljD,GAAUrC,GACvB,GAAIulD,EAAM,CAER,MAAMC,EAAYD,EAAKvqD,SAAS,EAAG,IAC9BwqD,EAAU9hN,MAAK7B,GAAW,IAANA,MACvBugF,EAAO31C,IAAI,+BAA+B44K,EAAU,IAAM,wBAAwBloD,GAAYqoD,SAAiBroD,GAAYtC,MAC3H0qD,EAAKtlN,IAAI46J,EAAO,GAEpB,IACA,GACF,IAGCrH,CACT,CA0uY6BiyD,CAAmBjyD,EAAaG,IACzDryJ,KAAKyjN,iBAAkB,CACzB,CACA,mBAAAI,CAAoB3xD,GAClB,IAAI,WACF2d,EAAU,WACV9C,GACE/sK,KACJ,GAAqB,MAAfkyJ,IAAuBA,EAAY57C,WAGvC,OAFAt2G,KAAK0jN,gBAAaxnN,OAClB8D,KAAKwiN,cAAWtmN,GAGlB,MAAMsmN,EAAWxiN,KAAKwiN,SAAWllD,GAAiBpL,GAG9CswD,EAAShvD,QACXqc,EAAauyC,GAAoBI,EAAShvD,MAAOrD,IAE/CqyD,EAAS/uD,QACXsZ,EAAaq1C,GAAoBI,EAAS/uD,MAAOtD,IAEnD,MAAMgrB,EAAS,CAAC,EACZqnC,EAAShvD,OAASgvD,EAAS/uD,MAC7B0nB,EAAOznB,WAAa,CAClB17F,UAAW,YACXwmG,MAAOqR,EAAa,IAAM9C,EAC1B7a,cACAhlJ,GAAI,QAEGs1M,EAAShvD,MAClB2nB,EAAO3nB,MAAQ,CACbx7F,UAAW,YACXwmG,MAAOqR,EACP3d,cACAhlJ,GAAI,SAEGs1M,EAAS/uD,MAClB0nB,EAAO1nB,MAAQ,CACbz7F,UAAW,YACXwmG,MAAOuO,EACP7a,cACAhlJ,GAAI,QAGN4zE,EAAO/jD,KAAK,8EAEd/8B,KAAK0jN,WAAavoC,CACpB,CACA,KAAA0hC,CAAM3kC,EAAY+xB,EAAYluB,EAAUiB,EAAWxb,EAAYs7C,GAC7D,IAAIsH,EAAWC,EACf,IAAI,QACF/mB,EAAO,YACPqmB,GACE3jN,KACJ,MAAMrD,EAAS,CACb62J,WAAOt3J,EACPu3J,WAAOv3J,EACPu6C,KAAMumI,EACNhhB,IAAK+f,EACL7pB,iBAAah2J,GAMVsxJ,EAAem2D,KAClBA,EAAc3jN,KAAK2jN,YAAcniD,GAAc,GAKjD,MAAM53J,EAAOqgM,EAAWtoC,QACxB,GAAc,MAAR/3J,IAAgBA,EAAKzJ,OACzB,OAAOxD,EAET,MAAMu1J,EAAc,CAClBorC,aAASphM,EACT2gK,UAAW,GAEb,IAAI2lD,EAAWxiN,KAAKwiN,SAKpB,GAJgC,OAAzB4B,EAAY5B,IAAqB4B,EAAUjkN,SAChDH,KAAK6jN,oBAAoBj6M,GACzB44M,EAAWxiN,KAAKwiN,UAEe,OAA1B6B,EAAa7B,KAAqB6B,EAAWlkN,OAGlD,OADA2gF,EAAO/jD,KAAK,6DACLpgC,EAELqD,KAAKyjN,kBACPvxD,EAAYipB,OAASn7K,KAAK0jN,WAC1B1jN,KAAKyjN,iBAAkB,GAEzB,MAAMpiJ,EAvvYV,SAAqBz3D,EAAM44M,GACzB,IAAI8B,EAAc,EACdC,EAAgB,EAChBC,EAAgB,EACpB,MAAMC,EAAQloD,GAAQ3yJ,EAAM,CAAC,OAAQ,SACrC,IAAK,IAAI9F,EAAI,EAAGA,EAAI2gN,EAAMtkN,OAAQ2D,IAAK,CACrC,MAAMi+J,EAAO0iD,EAAM3gN,GAKbo+J,EAAO3F,GAAQwF,EAAM,CAAC,SAAS,GAG/B5D,EAAQqkD,EADHrmD,GAAW+F,EAAM,IAE5B,IAAK/D,EACH,SAEF,MAAMumD,EAAevmD,EAAM97I,QACrB8/I,EAAYhG,GAAW+F,EAAM,IAAsB,MAAhBwiD,OAAuB,EAASA,EAAanxM,OACtF,IAAIyvJ,EAAiC,MAAhB0hD,OAAuB,EAASA,EAAarjJ,SAClD,EAAZ8gG,IAKAa,EAAiB7G,GAAW+F,EAHd,EAAZC,EAGgC,GAGA,IAItC,MAAMtF,EAAYsB,EAAMtB,WAAa,IAC/B8nD,EAAQpoD,GAAQwF,EAAM,CAAC,SAC7B,IAAK,IAAI3wH,EAAI,EAAGA,EAAIuzK,EAAMxkN,OAAQixC,IAChCkzK,EAActjD,GAA8B2jD,EAAMvzK,KAC7CkzK,GAAethD,IAElBshD,EAActhD,EADM7G,GAAWwoD,EAAMvzK,GAAI,IAGvC+sH,EAAM5+J,OAAS4wJ,EACjBo0D,GAAiBD,EAAcznD,EACtBsB,EAAM5+J,OAAS4wJ,IACxBq0D,GAAiBF,EAAcznD,EAGrC,CACA,GAAsB,IAAlB0nD,GAAyC,IAAlBC,EAAqB,CAE9C,IAAII,EAAex/H,IACfy/H,EAAa,EACbC,EAAe,EACnB,MAAMC,EAAQxoD,GAAQ3yJ,EAAM,CAAC,SAC7B,IAAK,IAAI9F,EAAI,EAAGA,EAAIihN,EAAM5kN,OAAQ2D,IAAK,CACrC,MAAM64J,EAAOD,GAAkBqoD,EAAMjhN,IACrC,GAAY,MAAR64J,GAAgBA,EAAKC,WAAY,CACnCgoD,EAAe3nN,KAAK6+B,IAAI8oL,EAAcjoD,EAAKG,yBAA2BH,EAAKE,WAC3E,MAAMmoD,EAAqBroD,EAAKC,WAAWv8J,QAAO,CAAC4kN,EAAKjlM,IAAQilM,EAAMjlM,EAAIu3C,KAAK8J,UAAY,GAAG,GAC9FwjJ,EAAa5nN,KAAKmrB,IAAIy8L,EAAYG,EAAqBroD,EAAKG,yBAA2BH,EAAKE,WAC5FioD,EAAeD,EAAaD,CAC9B,CACF,CACA,GAAIE,GAAgBt3D,EAAes3D,GACjC,OAAOA,CAEX,CACA,OAAIP,GAGGC,CACT,CAgrYqBU,CAAYt7M,EAAM44M,GAC7B7wD,EA5yYV,SAAqB6wD,EAAU2C,GAE7B,OAAO5oD,GAAQ4oD,EAAM,CAAC,OAAQ,SAAS9kN,QAAO,CAAC1D,EAAQolK,KACrD,MAAME,EAAO1F,GAAQwF,EAAM,CAAC,SAAS,GAC/BjiJ,EAAUmiJ,EAAK,GACfhpH,EAAQsjH,GAAQwF,EAAM,CAAC,SAAS1hK,QAAO,CAAC1D,EAAQulK,KAEpD,MAAMh1J,EAAKivJ,GAAW+F,EAAM,GACtB/D,EAAQqkD,EAASt1M,GACvB,GAAIixJ,EAAO,CACT,IAAI6D,EAAW7F,GAAW8F,EAAM,GAChC,GAAgB,IAAZniJ,EAAe,CAIjB,GAAIkiJ,IAAalG,GAEf,OADAh7E,EAAO/jD,KAAK,oFACLpgC,EAETqlK,GAAYlG,GAAe,EAC3BkG,GAAY7F,GAAW8F,EAAM,EAC/B,CAEA,MAEM/iJ,EAAY8iJ,GAFJ7D,EAAMtB,WAAa,KAGjC,GAAIrP,EAAetuI,KAA0B,OAAXviB,GAAmBuiB,EAAYviB,GAC/D,OAAOuiB,CAEX,CACA,OAAOviB,CAAM,GACZ,MACH,OAAc,OAAVs8C,GAAkBu0G,EAAev0G,KAAsB,OAAXt8C,GAAmBs8C,EAAQt8C,GAClEs8C,EAEFt8C,CAAM,GACZ,KACL,CAuwYqByoN,CAAY5C,EAAU54M,GACjCy7M,EAA0B,OAAb1zD,EAAoB6P,EAAa7P,GAmDxD,SAA0B2rC,EAAS3rC,EAAU6P,EAAYngG,GACvD,GAAgB,OAAZi8H,EACF,OAAO,EAGT,MAAMgoB,EAAcroN,KAAKmrB,IAAIi5C,EAAU,GACjCniD,EAAYyyI,EAAW2rC,EAAQt7B,SAAWs7B,EAAQzgC,UACxD,OAAO5/J,KAAK6rF,IAAI5pE,EAAYsiJ,GAAc8jD,CAC5C,CA1DQC,CAAiBjoB,EAAS+nB,EAAY7jD,EAAYngG,IAAa6wF,EAAY2K,YAAcygC,EAAQzgC,WAAaigD,KAChH5qD,EAAYorC,QAAU+nB,EAAa7jD,EAC/B87B,GAAiC,IAAtBA,EAAQzgC,WACrB/7E,EAAO/jD,KAAK,yBAAwBm1H,EAAYorC,QAAUA,EAAQt7B,WAEpEhiK,KAAKs9L,QAAUA,EAAU,CACvBt7B,SAAU9P,EAAYorC,QACtBzgC,UAAW,IAGf,MAAM39I,EAAYg5J,EAAamtC,EAAa/nB,EAAQt7B,SAAWs7B,EAAQzgC,UAAY8mD,EAC7E/+I,EAAU1lD,EAAYmiD,GAnoYhC,SAAwBmhJ,EAAU2C,EAAM3jD,GACtCjF,GAAQ4oD,EAAM,CAAC,OAAQ,SAAS3mN,SAAQujK,IACtCxF,GAAQwF,EAAM,CAAC,SAASvjK,SAAQ0jK,IAE9B,MAAMh1J,EAAKivJ,GAAW+F,EAAM,GACtB/D,EAAQqkD,EAASt1M,GACvB,IAAKixJ,EACH,OAGF,MAAMtB,EAAYsB,EAAMtB,WAAa,IAErCN,GAAQwF,EAAM,CAAC,SAASvjK,SAAQyjK,IAC9B,MAAMniJ,EAAUmiJ,EAAK,GACf/yG,EAASsyG,EAAa3E,EAC5B,GAAI3tG,EAAQ,CACV,IAAI8qJ,EAAsB79C,GAAW8F,EAAM,GAC3C,GAAgB,IAAZniJ,EACFk6L,GAAuB9qJ,EACvB8qJ,EAAsB/8M,KAAKmrB,IAAI4xL,EAAqB,GACpD19C,GAAY2F,EAAM,EAAG+3C,OAChB,CACLA,GAAuB/8M,KAAK+oC,IAAI,EAAG,IACnCg0K,GAAuB79C,GAAW8F,EAAM,GACxC+3C,GAAuB9qJ,EACvB8qJ,EAAsB/8M,KAAKmrB,IAAI4xL,EAAqB,GACpD,MAAM92H,EAAQjmF,KAAK6lD,MAAMk3J,GAAuBl+C,GAAe,IACzD74E,EAAQhmF,KAAK6lD,MAAMk3J,GAAuBl+C,GAAe,IAC/DQ,GAAY2F,EAAM,EAAG/+E,GACrBo5E,GAAY2F,EAAM,EAAGh/E,EACvB,CACF,IACA,GACF,GAEN,CAimYIuiI,CAAehD,EAAU54M,EAAM0zL,EAAQt7B,SAAWs7B,EAAQzgC,WACtDx7F,EAAW,EACbrhE,KAAK2jN,YAAc/+I,GAEnBkc,EAAO/jD,KAAK,wDACZ/8B,KAAKs8M,sBAEP,MAAMW,IAAauF,EAAShvD,MACtB0pD,IAAasF,EAAS/uD,MAC5B,IAAIl0J,EAAO,GACP09M,IACF19M,GAAQ,SAEN29M,IACF39M,GAAQ,SAEV,MAAM4+J,EAAQ,CACZiD,MAAOx3J,EACP6nJ,SAAUvyI,EACVyyI,SAAUzyI,EACVwyI,OAAQ9sF,EACRgtF,OAAQhtF,EACRrlE,OACA09M,WACAC,WACAiE,GAAI,EACJle,QAAS,GASX,OAPAtmM,EAAO62J,MAAuB,UAAf2K,EAAM5+J,KAAmB4+J,OAAQjiK,EAChDS,EAAO82J,MAAuB,UAAf0K,EAAM5+J,KAAmB4+J,OAAQjiK,EAChDS,EAAOu1J,YAAcA,EACrBv1J,EAAOq/J,IAAMmiD,GAAiCpiC,EAAUva,EAAY87B,EAASA,GACzEtgB,EAAUrb,QAAQxhK,SACpBxD,EAAO85C,KAAO2nK,GAAiCphC,EAAWxb,EAAY87B,IAEjE3gM,CACT,IAoDC,CACDitM,MAAOwJ,GACPyJ,MAAOnB,IACN,CACD9R,MA7kHF,cAAyBd,GACvB,WAAA/9K,CAAYprB,EAAU00D,GACpB97B,QACAv4B,KAAKL,cAAW,EAChBK,KAAKq0D,YAAS,EACdr0D,KAAKL,SAAWA,EAChBK,KAAKq0D,OAASA,CAChB,CACA,gBAAAg1I,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpD/wK,MAAM8wK,iBAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GAC5DtpM,KAAK+oM,YAAc,CACjB/wI,UAAW,aACXz4D,KAAM,QACN2N,GAAI,EACJ07L,KAAM,EACNC,eAAgB,EAChBuL,aAAc,MACdzyC,QAAS,GACTqpC,cAAen7B,EACfxuG,SAAUioI,EACVX,eAAgB,IAChB1F,QAAS,EAEb,CAGA,YAAO6J,CAAMljM,GACX,IAAKA,EACH,OAAO,EAOT,MAAM8wJ,EAAUV,EAAWpwJ,EAAM,GACjC,IAAIslD,GAAqB,MAAXwrG,OAAkB,EAASA,EAAQv6J,SAAW,EAC5D,GAAI2sM,GAAMljM,EAAMslD,GACd,OAAO,EAET,IAAK,IAAI/uD,EAASyJ,EAAKzJ,OAAQ+uD,EAAS/uD,EAAQ+uD,IAC9C,GAAIq7I,GAAQ3gM,EAAMslD,GAEhB,OADA4xB,EAAO31C,IAAI,2BACJ,EAGX,OAAO,CACT,CACA,QAAAu+J,CAAS9/L,EAAMslD,GACb,OAxSJ,SAAoBtlD,EAAMslD,GACxB,OAVF,SAA2BtlD,EAAMslD,GAC/B,OAAOA,EAAS,EAAItlD,EAAKzJ,MAC3B,CAQSslN,CAAkB77M,EAAMslD,IAAWi7I,GAAkBvgM,EAAMslD,IAAWm7I,GAAmBzgM,EAAMslD,IAAWtlD,EAAKzJ,OAAS+uD,CACjI,CAsSWw2J,CAAW97M,EAAMslD,EAC1B,CACA,WAAAy6I,CAAYxrC,EAAOv0J,EAAMslD,GACvBy7I,GAAgBxsC,EAAOn+J,KAAKL,SAAUiK,EAAMslD,EAAQivG,EAAM6sC,eAC1D,MAAMjgM,EAAQugM,GAAcntC,EAAOv0J,EAAMslD,EAAQlvD,KAAKmpM,QAASnpM,KAAKipM,YACpE,GAAIl+L,GAA2B,IAAlBA,EAAM05B,QACjB,OAAO15B,CAEX,GAqhHA8xM,MAAOnB,IACN,CACD9R,MAjxDF,cAAyBd,GACvB,gBAAAO,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpD/wK,MAAM8wK,iBAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GAC5DtpM,KAAK+oM,YAAc,CACjB/wI,UAAW,aACXz4D,KAAM,QACN2N,GAAI,EACJ07L,KAAM,EACNC,eAAgB,EAChBuL,aAAc,MACdzyC,QAAS,GACTqpC,cAAen7B,EACfxuG,SAAUioI,EACVX,eAAgB,IAChB1F,QAAS,EAEb,CACA,YAAO6J,CAAMljM,GACX,IAAKA,EACH,OAAO,EAOT,MAAM8wJ,EAAUV,EAAWpwJ,EAAM,GACjC,IAAIslD,GAAqB,MAAXwrG,OAAkB,EAASA,EAAQv6J,SAAW,EAG5D,GAAIu6J,GAA4B,KAAjB9wJ,EAAKslD,IAAyC,MAArBtlD,EAAKslD,EAAS,SAAyChzD,IAA1Bk+J,EAAaM,IAElFsyC,GAAapjM,EAAMslD,IAAW,GAC5B,OAAO,EAET,IAAK,IAAI/uD,EAASyJ,EAAKzJ,OAAQ+uD,EAAS/uD,EAAQ+uD,IAC9C,GAAI49I,GAAMljM,EAAMslD,GAEd,OADA4xB,EAAO31C,IAAI,iCACJ,EAGX,OAAO,CACT,CACA,QAAAu+J,CAAS9/L,EAAMslD,GACb,OAp4DJ,SAAkBtlD,EAAMslD,GAEtB,OAAO09I,GAAgBhjM,EAAMslD,IADV,GACmCtlD,EAAKzJ,OAAS+uD,CACtE,CAi4DWw6I,CAAS9/L,EAAMslD,EACxB,CACA,WAAAy6I,CAAYxrC,EAAOv0J,EAAMslD,GACvB,GAAqB,OAAjBlvD,KAAKmpM,QAGT,OAAO6C,GAAc7tC,EAAOv0J,EAAMslD,EAAQlvD,KAAKmpM,QAASnpM,KAAKipM,WAC/D,GA+tDA4T,MAAOnB,KAGP2G,GAAUtvK,OAAO,EAAG,EAAG,CACrB62J,MAh4GJ,cAAyBd,GACvB,WAAA/9K,CAAYprB,GACV44B,QACAv4B,KAAKL,cAAW,EAChBK,KAAKL,SAAWA,CAClB,CACA,gBAAA0pM,CAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GACpD/wK,MAAM8wK,iBAAiBn3C,EAAa2d,EAAY9C,EAAYu8B,GAC5DtpM,KAAK+oM,YAAc,CACjB/wI,UAAW,aACXz4D,KAAM,QACN2N,GAAI,EACJ07L,KAAM,EACNC,eAAgB,EAChBuL,aAAc,MACdzyC,QAAS,GACTqpC,cAAen7B,EACfxuG,SAAUioI,EACVX,eAAgB,IAChB1F,QAAS,EAEb,CACA,QAAAyG,CAAS9/L,EAAMslD,GACb,OAAOA,EAAS,GAAKtlD,EAAKzJ,MAC5B,CACA,WAAAwpM,CAAYxrC,EAAOv0J,EAAMslD,GACvB,MAAMu7I,EAAcd,GAAYxrC,EAAOv0J,EAAMslD,EAAQlvD,KAAKmpM,QAASnpM,KAAKipM,YACxE,IAAqB,IAAjBwB,EAEF,MAAO,CACL5gB,OAFa1rB,EAAMwD,QAAQxD,EAAMwD,QAAQxhK,OAAS,GAGlDA,OAAQsqM,EACRhmK,QAAS,EAGf,CACA,YAAOqoK,CAAMljM,GACX,IAAKA,EACH,OAAO,EAET,MAAM8wJ,EAAUV,EAAWpwJ,EAAM,GACjC,IAAK8wJ,EACH,OAAO,EAIT,MAAMxrG,EAASwrG,EAAQv6J,OACvB,OAAqB,KAAjByJ,EAAKslD,IAAyC,MAArBtlD,EAAKslD,EAAS,SAAyChzD,IAA1Bk+J,EAAaM,IAEvEsyC,GAAapjM,EAAMslD,GAAU,EAI/B,GA40GE2tJ,MAAOnB,KAGX,MAAMiK,GACJ,WAAA56L,CAAYprB,EAAU0zM,EAAeh/I,EAAQsnJ,EAAQzuM,GACnDlN,KAAKgrC,OAAQ,EACbhrC,KAAKL,cAAW,EAChBK,KAAKqzM,mBAAgB,EACrBrzM,KAAKq0D,YAAS,EACdr0D,KAAK27M,YAAS,EACd37M,KAAKkN,QAAK,EACVlN,KAAK4lN,aAAU,EACf5lN,KAAK6lN,aAAU,EACf7lN,KAAKq9L,eAAY,EACjBr9L,KAAK8sM,WAAQ,EACb9sM,KAAK8lN,kBAAoB,KACzB9lN,KAAK+lN,oBAAiB,EACtB/lN,KAAKgmN,0BAAuB,EAC5BhmN,KAAKL,SAAWA,EAChBK,KAAKqzM,cAAgBA,EACrBrzM,KAAKq0D,OAASA,EACdr0D,KAAK27M,OAASA,EACd37M,KAAKkN,GAAKA,CACZ,CACA,SAAA+4M,CAAUF,GACR/lN,KAAK+lN,eAAiBA,EAClB/lN,KAAKq9L,WACPr9L,KAAKq9L,UAAU9qK,OAEnB,CACA,IAAA1wB,CAAK+H,EAAMyoJ,EAAa6uC,EAAWrxL,GACjC,MAAMmiJ,EAAQkvC,EAAUvN,YACxB3hC,EAAM4hC,aAAe3vK,KACrB,IAAIiiM,EAAW,IAAI1wG,WAAW5rG,GAC9B,MAAM,qBACJo8M,EAAoB,eACpBD,GACE/lN,KACA6P,IACF7P,KAAKgmN,qBAAuBn2M,GAE9B,MAAM,WACJg1L,EAAU,cACVshB,EAAa,YACbC,EAAW,mBACXtJ,EAAkB,WAClBt7C,EAAU,kBACV6kD,GACEx2M,GAASm2M,GACP,WACJn2C,EAAU,WACV9C,EAAU,eACVu5C,EAAc,SACdjlJ,EAAQ,gBACRklJ,GACER,EACE5sD,EA2PV,SAA2BvvJ,EAAMk2L,GAC/B,IAAI0mB,EAAiB,KAIrB,OAHI58M,EAAK0sG,WAAa,GAAyD,OAApC,MAAfwpF,OAAsB,EAASA,EAAYphM,MAAmC,OAAnBohM,EAAYj6B,IAAqC,MAAtBi6B,EAAYtyK,SAC5Hg5L,EAAiB1mB,GAEZ0mB,CACT,CAjQoBC,CAAkBP,EAAU7zD,GAC5C,GAAI8G,GAA8B,YAAnBA,EAAQ3rI,OAAsB,CAC3C,MAAM6vK,EAAYr9L,KAAK0mN,eAEvB,IAAIrpB,EAAU3B,SAsBZ,OAPA17L,KAAK8lN,kBAAoBzoB,EAAUpB,iBAAiBiqB,EAAU/sD,EAAQz6J,IAAIgL,OAAQyvJ,EAAQ0M,GAAGn8J,QAAQ/E,MAAKq7L,IAGxG,MAAMrjM,EAASqD,KAAK6B,KAAKm+L,EAAe,KAAMkB,GAE9C,OADAlhM,KAAK8lN,kBAAoB,KAClBnpN,CAAM,IAERqD,KAAK8lN,kBAtBU,CAGtB,IAAI9lB,EAAgB3C,EAAUtB,gBAAgBmqB,EAAU/sD,EAAQz6J,IAAIgL,OAAQyvJ,EAAQ0M,GAAGn8J,QAMvF,GAJqBw3L,EAAU/zJ,MAAQ,IAErC6yJ,EAAgB3C,EAAUv7L,UAEvBk+L,EAEH,OADAhuC,EAAM6hC,WAAa5vK,KACZ0iM,GAAYzlB,GAErBglB,EAAW,IAAI1wG,WAAWwqF,EAC5B,CAUF,CACA,MAAM4mB,EAAc5mN,KAAK6mN,aAAaV,EAAeC,GACrD,GAAIQ,EAAa,CACf,MAAMhiN,EAAQ5E,KAAK8mN,oBAAoBZ,GACvC,GAAIthN,EAUF,OATAk8E,EAAO/jD,KAAK,gBAAgBn4B,EAAM+Y,WAClC3d,KAAKL,SAAS6e,KAAKivI,EAAO+qB,MAAO/qB,EAAO+qB,MAAO,CAC7Cj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaq6C,mBACtBrvB,OAAO,EACP/zK,QACAikC,OAAQjkC,EAAM+Y,UAEhBq0I,EAAM6hC,WAAa5vK,KACZ0iM,GAAYzlB,EAEvB,EACIilB,GAAiBC,GAAeC,GAAqBO,IACvD5mN,KAAKqpM,iBAAiBkd,EAAiB12C,EAAY9C,EAAY1rG,EAAUgxF,IAEvE8zD,GAAiBE,GAAqBO,IACxC5mN,KAAK+mN,sBAAsBT,GAExBzhB,GACH7kM,KAAKypM,kBAEP,MAAM9sM,EAASqD,KAAKgnN,SAASd,EAAU/sD,EAASqI,EAAYs7C,EAAoB5b,GAC1EjjM,EAAe+B,KAAKgmN,qBAK1B,OAJA/nN,EAAa4mM,YAAa,EAC1B5mM,EAAakoN,eAAgB,EAC7BloN,EAAamoN,aAAc,EAC3Bp0D,EAAM6hC,WAAa5vK,KACZtnB,CACT,CAGA,KAAAmF,CAAMo/L,GACJ,MAAMlvC,EAAQkvC,EAAUvN,YACxB3hC,EAAM4hC,aAAe3vK,KACrB,MAAM,UACJo5K,EAAS,qBACT2oB,EAAoB,kBACpBF,GACE9lN,KACJ,GAAI8lN,EAGF,OAAOA,EAAkBnhN,MAAK,IACrB3E,KAAK8B,MAAMo/L,KAGtB,MAAM+lB,EAAkB,IAClB,WACJzlD,GACEwkD,EACJ,GAAI3oB,EAAW,CAIb,MAAM2C,EAAgB3C,EAAUv7L,QAC5Bk+L,GAEFinB,EAAgBplN,KAAK7B,KAAK6B,KAAKm+L,EAAe,KAAMkB,GAExD,CACA,MAAM,QACJ0kB,EAAO,QACPC,GACE7lN,KACJ,IAAK4lN,IAAYC,EAGf,OADA7zD,EAAM6hC,WAAa5vK,KACZ,CAAC0iM,GAAYzlB,IAEtB,MAAMgmB,EAAuBtB,EAAQ9jN,MAAM0/J,GAC3C,OAAI2lD,GAAUD,GAELA,EAAqBviN,MAAK+wM,IAC/B11M,KAAKonN,WAAWH,EAAiBvR,EAAaxU,GACvC+lB,MAGXjnN,KAAKonN,WAAWH,EAAiBC,EAAsBhmB,GAChD+lB,EACT,CACA,UAAAG,CAAWH,EAAiBvR,EAAaxU,GACvC,MAAM,WACJhpB,EAAU,WACV+xB,EAAU,SACVluB,EAAQ,UACRiB,GACE04B,GACE,mBACJoH,EAAkB,WAClBt7C,GACExhK,KAAKgmN,qBACTllI,EAAO31C,IAAI,qCAAqC+1J,EAAU9vC,KAAK8vC,EAAU/zJ,MAAQ,EAAI,OAAS+zJ,EAAU/zJ,KAAO,eAAe+zJ,EAAU32H,SACxI,MAAM88I,EAAcrnN,KAAK6lN,QAAQhJ,MAAM3kC,EAAY+xB,EAAYluB,EAAUiB,EAAWxb,EAAYs7C,GAAoB,EAAM98M,KAAKkN,IAC/H+5M,EAAgBplN,KAAK,CACnBwlN,cACAnmB,cAEFA,EAAUvN,YAAYE,WAAa5vK,IACrC,CACA,qBAAA8iM,CAAsBT,GACpB,MAAM,QACJV,EAAO,QACPC,GACE7lN,KACC4lN,GAAYC,IAGjBD,EAAQrc,eAAe+c,GACvBT,EAAQtc,eAAe+c,GACzB,CACA,eAAA7c,GACE,MAAM,QACJmc,EAAO,QACPC,GACE7lN,KACC4lN,GAAYC,IAGjBD,EAAQnc,kBACRoc,EAAQvJ,qBACV,CACA,gBAAAjT,CAAiBkd,EAAiB12C,EAAY9C,EAAYu8B,EAAej3C,GACvE,MAAM,QACJuzD,EAAO,QACPC,GACE7lN,KACC4lN,GAAYC,IAGjBD,EAAQvc,iBAAiBkd,EAAiB12C,EAAY9C,EAAYu8B,GAClEuc,EAAQxc,iBAAiBkd,EAAiB12C,EAAY9C,EAAY1a,GACpE,CACA,OAAApgF,GACMjyE,KAAK4lN,UACP5lN,KAAK4lN,QAAQ3zI,UACbjyE,KAAK4lN,aAAU1pN,GAEb8D,KAAK6lN,UACP7lN,KAAK6lN,QAAQ5zI,UACbjyE,KAAK6lN,aAAU3pN,EAEnB,CACA,QAAA8qN,CAASp9M,EAAMuvJ,EAASqI,EAAYs7C,EAAoB5b,GACtD,IAAIvkM,EAMJ,OAJEA,EADEw8J,GAA8B,eAAnBA,EAAQ3rI,OACZxtB,KAAKsnN,kBAAkB19M,EAAMuvJ,EAASqI,EAAYs7C,EAAoB5b,GAEtElhM,KAAKunN,oBAAoB39M,EAAM43J,EAAYs7C,EAAoB5b,GAEnEvkM,CACT,CACA,mBAAA4qN,CAAoB39M,EAAM43J,EAAYs7C,EAAoB5b,GACxD,MAAM,WACJhpB,EAAU,WACV+xB,EAAU,SACVluB,EAAQ,UACRiB,GACEh9K,KAAK4lN,QAAQhc,MAAMhgM,EAAM43J,GAAY,GAAQxhK,KAAKq0D,OAAO2tI,aAE7D,MAAO,CACLqlB,YAFkBrnN,KAAK6lN,QAAQhJ,MAAM3kC,EAAY+xB,EAAYluB,EAAUiB,EAAWxb,EAAYs7C,GAAoB,EAAO98M,KAAKkN,IAG9Hg0L,YAEJ,CACA,iBAAAomB,CAAkB19M,EAAMk2L,EAAat+B,EAAYs7C,EAAoB5b,GACnE,OAAOlhM,KAAK4lN,QAAQ1b,eAAetgM,EAAMk2L,EAAat+B,GAAY78J,MAAK+wM,IAE9D,CACL2R,YAFkBrnN,KAAK6lN,QAAQhJ,MAAMnH,EAAYx9B,WAAYw9B,EAAYzL,WAAYyL,EAAY35B,SAAU25B,EAAY14B,UAAWxb,EAAYs7C,GAAoB,EAAO98M,KAAKkN,IAG9Kg0L,eAGN,CACA,mBAAA4lB,CAAoBl9M,GAClB,MAAM,OACJyqD,EAAM,SACN10D,EAAQ,cACR0zM,EAAa,OACbsI,GACE37M,KAEJ,IAAIwnN,EACJ,IAAK,IAAI1jN,EAAI,EAAGC,EAAMs+M,GAAUliN,OAAQ2D,EAAIC,EAAKD,IAAK,CACpD,IAAI2jN,EACJ,GAAiD,OAA5CA,EAAqBpF,GAAUv+M,GAAG8lM,QAAkB6d,EAAmB3a,MAAMljM,GAAO,CACvF49M,EAAMnF,GAAUv+M,GAChB,KACF,CACF,CACA,IAAK0jN,EACH,OAAO,IAAI1pN,MAAM,mDAGnB,MAAM8nN,EAAU5lN,KAAK4lN,QACfC,EAAU7lN,KAAK6lN,QACf6B,EAAUF,EAAI3K,MACd8K,EAAUH,EAAI5d,MACfic,GAAaA,aAAmB6B,IACnC1nN,KAAK6lN,QAAU,IAAI6B,EAAQ/nN,EAAU00D,EAAQg/I,EAAesI,IAEzDiK,GAAaA,aAAmB+B,IACnC3nN,KAAK4lN,QAAU,IAAI+B,EAAQhoN,EAAU00D,EAAQg/I,GAC7CrzM,KAAK8sM,MAAQ6a,EAAQ7a,MAEzB,CACA,YAAA+Z,CAAaV,EAAeC,GAG1B,OAAQpmN,KAAK4lN,UAAY5lN,KAAK6lN,SAAWM,GAAiBC,CAC5D,CACA,YAAAM,GACE,IAAIrpB,EAAYr9L,KAAKq9L,UAIrB,OAHKA,IACHA,EAAYr9L,KAAKq9L,UAAY,IAAIxC,GAAU76L,KAAKq0D,SAE3CgpI,CACT,EASF,MAAMspB,GAAczlB,IAAa,CAC/BmmB,YAAa,CAAC,EACdnmB,cAEF,SAASimB,GAAU9kN,GACjB,MAAO,SAAUA,GAAKA,EAAEsC,gBAAgB85D,QAC1C,CACA,MAAMmpJ,GACJ,WAAA78L,CAAY8kJ,EAAY9C,EAAYw5C,EAAiBllJ,EAAUilJ,GAC7DtmN,KAAK6vK,gBAAa,EAClB7vK,KAAK+sK,gBAAa,EAClB/sK,KAAKumN,qBAAkB,EACvBvmN,KAAKqhE,cAAW,EAChBrhE,KAAKsmN,oBAAiB,EACtBtmN,KAAK6vK,WAAaA,EAClB7vK,KAAK+sK,WAAaA,EAClB/sK,KAAKumN,gBAAkBA,EACvBvmN,KAAKqhE,SAAWA,EAChBrhE,KAAKsmN,eAAiBA,GAAkB,IAC1C,EAEF,MAAMuB,GACJ,WAAA98L,CAAYo7L,EAAethB,EAAYiY,EAAoBsJ,EAAa5kD,EAAY6kD,GAClFrmN,KAAKmmN,mBAAgB,EACrBnmN,KAAK6kM,gBAAa,EAClB7kM,KAAK88M,wBAAqB,EAC1B98M,KAAKomN,iBAAc,EACnBpmN,KAAKwhK,gBAAa,EAClBxhK,KAAKqmN,uBAAoB,EACzBrmN,KAAKmmN,cAAgBA,EACrBnmN,KAAK6kM,WAAaA,EAClB7kM,KAAK88M,mBAAqBA,EAC1B98M,KAAKomN,YAAcA,EACnBpmN,KAAKwhK,WAAaA,EAClBxhK,KAAKqmN,kBAAoBA,CAC3B,EAGF,IAAIyB,GAAgB,CAAC1rN,QAAS,CAAC,IAE9B,SAAUD,GAEV,IAAIsZ,EAAM9Z,OAAOC,UAAUC,eACvBq/B,EAAS,IASb,SAASuyH,IAAU,CA4BnB,SAASs6D,EAAG7gN,EAAID,EAASyhH,GACvB1oH,KAAKkH,GAAKA,EACVlH,KAAKiH,QAAUA,EACfjH,KAAK0oH,KAAOA,IAAQ,CACtB,CAaA,SAASne,EAAYy9G,EAAShiK,EAAO9+C,EAAID,EAASyhH,GAChD,GAAkB,mBAAPxhH,EACT,MAAM,IAAI68C,UAAU,mCAGtB,IAAItlD,EAAW,IAAIspN,EAAG7gN,EAAID,GAAW+gN,EAASt/F,GAC1Cu/F,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAMpC,OAJKgiK,EAAQE,QAAQD,GACXD,EAAQE,QAAQD,GAAK/gN,GAC1B8gN,EAAQE,QAAQD,GAAO,CAACD,EAAQE,QAAQD,GAAMxpN,GADhBupN,EAAQE,QAAQD,GAAKpmN,KAAKpD,IADlCupN,EAAQE,QAAQD,GAAOxpN,EAAUupN,EAAQG,gBAI7DH,CACT,CASA,SAASI,EAAWJ,EAASC,GACI,KAAzBD,EAAQG,aAAoBH,EAAQE,QAAU,IAAIz6D,SAC5Cu6D,EAAQE,QAAQD,EAC9B,CASA,SAASI,IACProN,KAAKkoN,QAAU,IAAIz6D,EACnBztJ,KAAKmoN,aAAe,CACtB,CAzEIxsN,OAAO+Q,SACT+gJ,EAAO7xJ,UAAYD,OAAO+Q,OAAO,OAM5B,IAAI+gJ,GAAS5qI,YAAWqY,GAAS,IA2ExCmtL,EAAazsN,UAAU0sN,WAAa,WAClC,IACIC,EACAngN,EAFA67E,EAAQ,GAIZ,GAA0B,IAAtBjkF,KAAKmoN,aAAoB,OAAOlkI,EAEpC,IAAK77E,KAASmgN,EAASvoN,KAAKkoN,QACtBzyM,EAAIlZ,KAAKgsN,EAAQngN,IAAO67E,EAAMpiF,KAAKq5B,EAAS9yB,EAAK1E,MAAM,GAAK0E,GAGlE,OAAIzM,OAAO2nB,sBACF2gE,EAAM18E,OAAO5L,OAAO2nB,sBAAsBilM,IAG5CtkI,CACT,EASAokI,EAAazsN,UAAU4sN,UAAY,SAAmBxiK,GACpD,IAAIiiK,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAChCi0C,EAAWj6F,KAAKkoN,QAAQD,GAE5B,IAAKhuH,EAAU,MAAO,GACtB,GAAIA,EAAS/yF,GAAI,MAAO,CAAC+yF,EAAS/yF,IAElC,IAAK,IAAIpD,EAAI,EAAG0mB,EAAIyvE,EAAS95F,OAAQsoN,EAAK,IAAIn6M,MAAMkc,GAAI1mB,EAAI0mB,EAAG1mB,IAC7D2kN,EAAG3kN,GAAKm2F,EAASn2F,GAAGoD,GAGtB,OAAOuhN,CACT,EASAJ,EAAazsN,UAAU8sN,cAAgB,SAAuB1iK,GAC5D,IAAIiiK,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAChCwiK,EAAYxoN,KAAKkoN,QAAQD,GAE7B,OAAKO,EACDA,EAAUthN,GAAW,EAClBshN,EAAUroN,OAFM,CAGzB,EASAkoN,EAAazsN,UAAU4iB,KAAO,SAAcwnC,EAAO2iK,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAId,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAEpC,IAAKhmD,KAAKkoN,QAAQD,GAAM,OAAO,EAE/B,IAEIznN,EACAsD,EAHA0kN,EAAYxoN,KAAKkoN,QAAQD,GACzBlkN,EAAMhG,UAAUoC,OAIpB,GAAIqoN,EAAUthN,GAAI,CAGhB,OAFIshN,EAAU9/F,MAAM1oH,KAAKwqG,eAAexkD,EAAOwiK,EAAUthN,QAAIhL,GAAW,GAEhE6H,GACN,KAAK,EAAG,OAAOykN,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,UAAU,EACrD,KAAK,EAAG,OAAOuhN,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,QAAS0hN,IAAK,EACzD,KAAK,EAAG,OAAOH,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,QAAS0hN,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOJ,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,QAAS0hN,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOL,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,QAAS0hN,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAON,EAAUthN,GAAG3K,KAAKisN,EAAUvhN,QAAS0hN,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKjlN,EAAI,EAAGtD,EAAO,IAAI8N,MAAMvK,EAAK,GAAID,EAAIC,EAAKD,IAC7CtD,EAAKsD,EAAI,GAAK/F,UAAU+F,GAG1B0kN,EAAUthN,GAAGC,MAAMqhN,EAAUvhN,QAASzG,EACxC,KAAO,CACL,IACI4wC,EADAjxC,EAASqoN,EAAUroN,OAGvB,IAAK2D,EAAI,EAAGA,EAAI3D,EAAQ2D,IAGtB,OAFI0kN,EAAU1kN,GAAG4kH,MAAM1oH,KAAKwqG,eAAexkD,EAAOwiK,EAAU1kN,GAAGoD,QAAIhL,GAAW,GAEtE6H,GACN,KAAK,EAAGykN,EAAU1kN,GAAGoD,GAAG3K,KAAKisN,EAAU1kN,GAAGmD,SAAU,MACpD,KAAK,EAAGuhN,EAAU1kN,GAAGoD,GAAG3K,KAAKisN,EAAU1kN,GAAGmD,QAAS0hN,GAAK,MACxD,KAAK,EAAGH,EAAU1kN,GAAGoD,GAAG3K,KAAKisN,EAAU1kN,GAAGmD,QAAS0hN,EAAIC,GAAK,MAC5D,KAAK,EAAGJ,EAAU1kN,GAAGoD,GAAG3K,KAAKisN,EAAU1kN,GAAGmD,QAAS0hN,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKroN,EAAM,IAAK4wC,EAAI,EAAG5wC,EAAO,IAAI8N,MAAMvK,EAAK,GAAIqtC,EAAIrtC,EAAKqtC,IACxD5wC,EAAK4wC,EAAI,GAAKrzC,UAAUqzC,GAG1Bo3K,EAAU1kN,GAAGoD,GAAGC,MAAMqhN,EAAU1kN,GAAGmD,QAASzG,GAGpD,CAEA,OAAO,CACT,EAWA6nN,EAAazsN,UAAUomF,GAAK,SAAYh8B,EAAO9+C,EAAID,GACjD,OAAOsjG,EAAYvqG,KAAMgmD,EAAO9+C,EAAID,GAAS,EAC/C,EAWAohN,EAAazsN,UAAU8sH,KAAO,SAAc1iE,EAAO9+C,EAAID,GACrD,OAAOsjG,EAAYvqG,KAAMgmD,EAAO9+C,EAAID,GAAS,EAC/C,EAYAohN,EAAazsN,UAAU4uG,eAAiB,SAAwBxkD,EAAO9+C,EAAID,EAASyhH,GAClF,IAAIu/F,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAEpC,IAAKhmD,KAAKkoN,QAAQD,GAAM,OAAOjoN,KAC/B,IAAKkH,EAEH,OADAkhN,EAAWpoN,KAAMioN,GACVjoN,KAGT,IAAIwoN,EAAYxoN,KAAKkoN,QAAQD,GAE7B,GAAIO,EAAUthN,GAEVshN,EAAUthN,KAAOA,GACfwhH,IAAQ8/F,EAAU9/F,MAClBzhH,GAAWuhN,EAAUvhN,UAAYA,GAEnCmhN,EAAWpoN,KAAMioN,OAEd,CACL,IAAK,IAAInkN,EAAI,EAAGykN,EAAS,GAAIpoN,EAASqoN,EAAUroN,OAAQ2D,EAAI3D,EAAQ2D,KAEhE0kN,EAAU1kN,GAAGoD,KAAOA,GACnBwhH,IAAS8/F,EAAU1kN,GAAG4kH,MACtBzhH,GAAWuhN,EAAU1kN,GAAGmD,UAAYA,IAErCshN,EAAO1mN,KAAK2mN,EAAU1kN,IAOtBykN,EAAOpoN,OAAQH,KAAKkoN,QAAQD,GAAyB,IAAlBM,EAAOpoN,OAAeooN,EAAO,GAAKA,EACpEH,EAAWpoN,KAAMioN,EACxB,CAEA,OAAOjoN,IACT,EASAqoN,EAAazsN,UAAUotN,mBAAqB,SAA4BhjK,GACtE,IAAIiiK,EAUJ,OARIjiK,GACFiiK,EAAM/sL,EAASA,EAAS8qB,EAAQA,EAC5BhmD,KAAKkoN,QAAQD,IAAMG,EAAWpoN,KAAMioN,KAExCjoN,KAAKkoN,QAAU,IAAIz6D,EACnBztJ,KAAKmoN,aAAe,GAGfnoN,IACT,EAKAqoN,EAAazsN,UAAUk9F,IAAMuvH,EAAazsN,UAAU4uG,eACpD69G,EAAazsN,UAAU2uG,YAAc89G,EAAazsN,UAAUomF,GAK5DqmI,EAAaY,SAAW/tL,EAKxBmtL,EAAaA,aAAeA,EAM1BlsN,EAAOC,QAAUisN,CAEpB,CAhVA,CAgVGP,IAEH,IACIO,GAA4Bt8D,EADL+7D,GAAc1rN,SAGzC,MAAM8sN,GACJ,WAAAn+L,CAAY2pJ,EAAKxnK,EAAIi8M,EAAoBC,GACvCppN,KAAK4E,MAAQ,KACb5E,KAAK00K,SAAM,EACX10K,KAAKkN,QAAK,EACVlN,KAAKL,cAAW,EAChBK,KAAKqzJ,KAAO,KACZrzJ,KAAKmtC,KAAO,KACZntC,KAAKqpN,eAAY,EACjBrpN,KAAKspN,cAAgB,KACrBtpN,KAAKupN,YAAS,EACdvpN,KAAK28L,WAAa,KAClB38L,KAAKmpN,wBAAqB,EAC1BnpN,KAAKopN,aAAU,EACf,MAAM/0J,EAASqgH,EAAIrgH,OACnBr0D,KAAK00K,IAAMA,EACX10K,KAAKkN,GAAKA,EACVlN,KAAKqpN,YAAch1J,EAAOm1J,aAC1BxpN,KAAKmpN,mBAAqBA,EAC1BnpN,KAAKopN,QAAUA,EACf,MAAMK,EAAiB,CAACC,EAAI9/M,MAC1BA,EAAOA,GAAQ,CAAC,GACXypJ,KAAOrzJ,KAAKqzJ,KACjBzpJ,EAAKsD,GAAKlN,KAAKkN,GACXw8M,IAAOj8D,EAAO+qB,QAChBx4K,KAAK4E,MAAQgF,EAAKhF,OAEpB5E,KAAK00K,IAAIrrE,QAAQqgH,EAAI9/M,EAAK,EAI5B5J,KAAKL,SAAW,IAAI0oN,GACpBroN,KAAKL,SAASqiF,GAAGyrE,EAAOwyC,eAAgBwpB,GACxCzpN,KAAKL,SAASqiF,GAAGyrE,EAAO+qB,MAAOixC,GAC/B,MAAMhhD,EAAcF,GAAel0G,EAAOm0G,2BAA6B,CACrEoE,gBAAiB,KAAM,GAEnB+8C,EAAoB,CACxBtT,KAAM5tC,EAAYmE,gBAAgB,cAClC0pC,IAAK7tC,EAAYmE,gBAAgB,2BACjC2pC,IAAK9tC,EAAYmE,gBAAgB,6BAEnC,IAAI5sK,KAAKqpN,WAA+B,oBAAXn6E,SACH76E,EAAOu1J,YAj3JK,mBAA1BC,sBA45JZ7pN,KAAK28L,WAAa,IAAIgpB,GAAW3lN,KAAKL,SAAUgqN,EAAmBt1J,EAAQ,GAAInnD,QAzC3E,IACMmnD,EAAOu1J,YACT9oI,EAAO31C,IAAI,sBAAsBkpB,EAAOu1J,mBAAmB18M,MAC3DlN,KAAKspN,cAz2JjB,SAAoBz2M,GAClB,MAAMi3M,EAAY,IAAIx/L,KAAKqkB,IAAI97B,EAAMyX,KAAK7f,SAAS0iH,MAAMA,KAEzD,MAAO,CACLigB,OAFa,IAAI9iH,KAAK4kH,OAAO46E,GAG7BA,YAEJ,CAk2JiCC,CAAW11J,EAAOu1J,cAEvC9oI,EAAO31C,IAAI,6BAA6Bj+B,MACxClN,KAAKspN,cAv3JjB,WACE,MAAMU,EAAO,IAAI1/L,KAAK6kH,KAAK,CAAC,wFAAwF06E,sBAAsB9tN,sBAAuB,CAC/JwD,KAAM,oBAEF0qN,EAAY3/L,KAAKqkB,IAAIygG,gBAAgB46E,GAE3C,MAAO,CACL58E,OAFa,IAAI9iH,KAAK4kH,OAAO+6E,GAG7BA,YAEJ,CA62JiCC,IAEvBlqN,KAAKupN,OAASvjK,GAAShmD,KAAKmqN,gBAAgBnkK,GAC5C,MAAM,OACJonF,GACEptI,KAAKspN,cACTl8E,EAAOn3F,iBAAiB,UAAWj2C,KAAKupN,QACxCn8E,EAAOg9E,QAAUpkK,IACf,MAAMphD,EAAQ,IAAI9G,MAAM,GAAGkoD,EAAMroC,aAAaqoC,EAAMqkK,YAAYrkK,EAAMskK,WACtEj2J,EAAOm1J,cAAe,EACtB1oI,EAAO/jD,KAAK,aAAa7vB,qCACzBlN,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAW60C,YACjB/rK,QAASm3H,EAAa60C,mBACtB7pB,OAAO,EACP3yH,MAAO,gBACPphD,SACA,EAEJwoI,EAAOoE,YAAY,CACjB+4E,IAAK,OACLlX,cAAesW,EACfhO,OAAQ,GACRzuM,GAAIA,EACJmnD,OAAQt1B,KAAKL,UAAU21B,IAE3B,CAAE,MAAO1uD,GACPm7E,EAAO/jD,KAAK,qBAAqB7vB,oCAAsCvH,GACvE3F,KAAKwqN,cACLxqN,KAAK4E,MAAQ,KACb5E,KAAK28L,WAAa,IAAIgpB,GAAW3lN,KAAKL,SAAUgqN,EAAmBt1J,EAAQ,GAAInnD,EACjF,CAKN,CACA,WAAAs9M,GACE,GAAIxqN,KAAKspN,cAAe,CACtB,MAAM,OACJl8E,EAAM,UACN68E,GACEjqN,KAAKspN,cACLW,GAEF3/L,KAAKqkB,IAAI87K,gBAAgBR,GAE3B78E,EAAOhyC,oBAAoB,UAAWp7F,KAAKupN,QAC3Cn8E,EAAOg9E,QAAU,KACjBh9E,EAAOE,YACPttI,KAAKspN,cAAgB,IACvB,CACF,CACA,OAAAr3I,GACE,GAAIjyE,KAAKspN,cACPtpN,KAAKwqN,cACLxqN,KAAKupN,YAASrtN,MACT,CACL,MAAMygM,EAAa38L,KAAK28L,WACpBA,IACFA,EAAW1qH,UACXjyE,KAAK28L,WAAa,KAEtB,CACA,MAAMh9L,EAAWK,KAAKL,SAClBA,GACFA,EAASqpN,qBAEXhpN,KAAKqzJ,KAAO,KAEZrzJ,KAAKL,SAAW,KAEhBK,KAAK00K,IAAM,IACb,CACA,IAAA7yK,CAAK+H,EAAM28M,EAAiB12C,EAAY9C,EAAY1Z,EAAMlmH,EAAMk0B,EAAUy7I,EAAoB5b,EAAW0iB,GACvG,IAAI8G,EAAmBC,EACvBzpB,EAAUvN,YAAY16I,MAAQ3uB,KAAKrS,YAAYgM,MAC/C,MAAM,WACJ04K,GACE38L,KACEwhK,EAAar0H,EAAOA,EAAK8L,MAAQo6G,EAAKp6G,MAEtCo5G,EAAcgB,EAAKhB,YACnB4zC,EAAWjmM,KAAKqzJ,KAChB8yD,IAAkBlgB,GAAY5yC,EAAK7B,KAAOy0C,EAASz0C,IACnD40D,IAAgBngB,GAAY/E,EAAU32H,QAAU07H,EAAS17H,OACzDqgJ,EAAS3kB,EAAW/E,EAAU9vC,GAAK60C,EAAS70C,IAAM,EAClDy5D,EAAW7qN,KAAKmtC,KAAO+zJ,EAAU/zJ,KAAOntC,KAAKmtC,KAAK15B,OAAS,EAC3DuuL,EAAyB,IAAX4oB,GAAgB1pB,EAAUh0L,GAAK,GAAKg0L,EAAUh0L,MAAoB,MAAZ+4L,OAAmB,EAASA,EAASj0C,MAAMjC,YAC/G80C,GAAcuhB,IAA2B,IAAXwE,GAA2B,IAAXA,IAA8B,IAAbC,GAAkB7oB,GAAe6oB,GAAY,IAC5G5mM,EAAMqG,KAAKrS,YAAYgM,OACzBmiM,GAAewE,GAAuC,IAA7Bv3D,EAAKrB,MAAM/B,QAAQh3G,SAC9Co6G,EAAKrB,MAAM/B,QAAQh3G,MAAQh1B,IAEzBkpB,IAAS09K,GAAahmB,IACxB13J,EAAK6kH,MAAM/B,QAAQh3G,MAAQh1B,GAE7B,MAAMoiM,IAAsBpgB,IAAuD,OAAzCykB,EAAoBr3D,EAAKnB,kBAAuB,EAASw4D,EAAkBl1K,QAA4D,OAAjDm1K,EAAwB1kB,EAAS/zC,kBAAuB,EAASy4D,EAAsBn1K,MACjN3lC,EAAQ,IAAIg4M,GAAc1B,EAAethB,EAAYiY,EAAoBsJ,EAAa5kD,EAAY6kD,GACxG,IAAKxhB,GAAcshB,GAAiBE,EAAmB,CACrDvlI,EAAO31C,IAAI,0BAA0BkoH,EAAK9zJ,gDAAgD2hM,EAAU9vC,SAAS8vC,EAAU/zJ,eAAe+zJ,EAAU32H,aAAa22H,EAAUh0L,8BACpJi5M,2BACFC,0BACDvhB,kCACQiY,0BACRt7C,iCACO6kD,KACvB,MAAMhyJ,EAAS,IAAIuzJ,GAAe/3C,EAAY9C,EAAYw5C,EAAiBllJ,EAAUuiJ,GACrF5jN,KAAK8mN,oBAAoBzyJ,EAC3B,CAKA,GAJAr0D,KAAKqzJ,KAAOA,EACZrzJ,KAAKmtC,KAAOA,EAGRntC,KAAKspN,cAEPtpN,KAAKspN,cAAcl8E,OAAOoE,YAAY,CACpC+4E,IAAK,QACL3gN,OACAyoJ,cACA6uC,YACArxL,SACCjG,aAAgByhI,YAAc,CAACzhI,GAAQ,SACrC,GAAI+yL,EAAY,CACrB,MAAMmuB,EAAiBnuB,EAAW96L,KAAK+H,EAAMyoJ,EAAa6uC,EAAWrxL,GACjEs3M,GAAU2D,IACZnuB,EAAW3xJ,OAAQ,EACnB8/K,EAAenmN,MAAKiF,IAClB5J,KAAK+qN,uBAAuBnhN,EAAK,IAChCg4H,OAAMh9H,IACP5E,KAAKgrN,gBAAgBpmN,EAAOs8L,EAAW,kCAAkC,MAG3EvE,EAAW3xJ,OAAQ,EACnBhrC,KAAK+qN,uBAAuBD,GAEhC,CACF,CACA,KAAAhpN,CAAMo/L,GACJA,EAAUvN,YAAY16I,MAAQ3uB,KAAKrS,YAAYgM,MAC/C,MAAM,WACJ04K,GACE38L,KACJ,GAAIA,KAAKspN,cACPtpN,KAAKspN,cAAcl8E,OAAOoE,YAAY,CACpC+4E,IAAK,QACLrpB,mBAEG,GAAIvE,EAAY,CACrB,IAAImuB,EAAiBnuB,EAAW76L,MAAMo/L,GACnBimB,GAAU2D,IACXnuB,EAAW3xJ,OACtBm8K,GAAU2D,KACbA,EAAiB3pN,QAAQC,QAAQ0pN,IAEnCA,EAAenmN,MAAKiF,IAClB5J,KAAKirN,kBAAkBrhN,EAAMs3L,EAAU,IACtCt/D,OAAMh9H,IACP5E,KAAKgrN,gBAAgBpmN,EAAOs8L,EAAW,mCAAmC,KAG5ElhM,KAAKirN,kBAAkBH,EAAgB5pB,EAE3C,CACF,CACA,eAAA8pB,CAAgBpmN,EAAOs8L,EAAWr4J,GAC3B7oC,KAAK00K,MAGV10K,KAAK4E,MAAQA,EACb5E,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaq6C,mBACtB9G,YACA7tC,KAAMrzJ,KAAKqzJ,WAAQn3J,EACnBy8K,OAAO,EACP/zK,QACAe,IAAKf,EACLikC,WAEJ,CACA,iBAAAoiL,CAAkBxhG,EAASy3E,GACzBz3E,EAAQjrH,SAAQ7B,IACdqD,KAAK+qN,uBAAuBpuN,EAAO,IAErCqD,KAAKopN,QAAQloB,EACf,CACA,eAAAipB,CAAgBnkK,GACd,MAAMp8C,EAAOo8C,EAAMp8C,KACnB,GAAc,MAARA,IAAgBA,EAAKo8C,MAEzB,YADA86B,EAAO/jD,KAAK,oCAAmCnzB,EAAO,aAAe,SAGvE,MAAM8qK,EAAM10K,KAAK00K,IACjB,GAAK10K,KAAK00K,IAGV,OAAQ9qK,EAAKo8C,OACX,IAAK,OACH,CACE,IAAIklK,EACJ,MAAMjB,EAA0D,OAA7CiB,EAAsBlrN,KAAKspN,oBAAyB,EAAS4B,EAAoBjB,UAChGA,GAEF3/L,KAAKqkB,IAAI87K,gBAAgBR,GAE3B,KACF,CACF,IAAK,mBAEDjqN,KAAK+qN,uBAAuBnhN,EAAKA,MACjC,MAEJ,IAAK,QAED5J,KAAKopN,QAAQx/M,EAAKA,MAClB,MAIJ,IAAK,YACCk3E,EAAOl3E,EAAKA,KAAKuhN,UACnBrqI,EAAOl3E,EAAKA,KAAKuhN,SAASvhN,EAAKA,KAAK+T,SAEtC,MACF,QAEI/T,EAAKA,KAAOA,EAAKA,MAAQ,CAAC,EAC1BA,EAAKA,KAAKypJ,KAAOrzJ,KAAKqzJ,KACtBzpJ,EAAKA,KAAKsD,GAAKlN,KAAKkN,GACpBwnK,EAAIrrE,QAAQz/F,EAAKo8C,MAAOp8C,EAAKA,MAIrC,CACA,mBAAAk9M,CAAoBzyJ,GAClB,MAAM,WACJsoI,GACE38L,KACAA,KAAKspN,cACPtpN,KAAKspN,cAAcl8E,OAAOoE,YAAY,CACpC+4E,IAAK,YACLl2J,WAEOsoI,GACTA,EAAWspB,UAAU5xJ,EAEzB,CACA,sBAAA02J,CAAuBpuN,GACrBA,EAAOukM,UAAUvN,YAAY3mL,IAAMsd,KAAKrS,YAAYgM,MACpDjkB,KAAKmpN,mBAAmBxsN,EAC1B,EAyxBF,SAASyuN,GAAyBC,EAAYC,GAC5C,GAAID,EAAWlrN,SAAWmrN,EAAWnrN,OACnC,OAAO,EAET,IAAK,IAAI2D,EAAI,EAAGA,EAAIunN,EAAWlrN,OAAQ2D,IACrC,IAAKynN,GAAyBF,EAAWvnN,GAAGgvI,MAAOw4E,EAAWxnN,GAAGgvI,OAC/D,OAAO,EAGX,OAAO,CACT,CACA,SAASy4E,GAAyBC,EAAQC,EAAQC,GAEhD,MAAMC,EAAoBH,EAAO,uBACjC,OAAIG,IAAsBD,EACjBC,IAAsBF,EAAO,yBAG7BC,GAAoB,CAAC,WAAY,OAAQ,kBAAmB,aAAc,UAAW,SAAU,mBAAmBtpN,MAAKwpN,GAAqBJ,EAAOI,KAAuBH,EAAOG,IAC5L,CACA,SAASC,GAA8BC,EAAe9uC,GACpD,OAAOA,EAAUxvK,MAAM60B,gBAAkBypL,EAAc1jN,KAAKi6B,iBAAmB26I,EAAUnnJ,UAAYmnJ,EAAUnnJ,SAASwM,iBAAmBypL,EAAcp2E,MAAQ,IAAIrzG,cACvK,CA8rBA,MAAM0pL,GACJ,WAAAhhM,CAAYihM,GACVhsN,KAAK2W,cAAW,EAChB,MAAMs1M,EAAW,CAAC7jN,EAAMqL,EAAOtT,KAE7B,IADAsT,KAAkB,GACNtT,EAAS,EACnB,MAAM,IAAI+rN,aAAa,sBAAsB9jN,2CAA8CqL,yCAA6CtT,MAE1I,OAAO6rN,EAAWv4M,GAAOrL,EAAK,EAEhCpI,KAAK2W,SAAW,CACd,UAAIxW,GACF,OAAO6rN,EAAW7rN,MACpB,EACA6M,IAAIyG,GACKw4M,EAAS,MAAOx4M,EAAOu4M,EAAW7rN,QAE3C84C,MAAMxlC,GACGw4M,EAAS,QAASx4M,EAAOu4M,EAAW7rN,QAGjD,EA6bF,MAAMgsN,GACJ,WAAAphM,CAAYqhM,GACVpsN,KAAKqsN,aAAU,EACfrsN,KAAKssN,OAAS,CACZ74D,MAAO,GACPD,MAAO,GACPE,WAAY,IAEd1zJ,KAAKqsN,QAAUD,CACjB,CACA,MAAAl1L,CAAOq1L,EAAWhtN,EAAMitN,GACtB,MAAMlrN,EAAQtB,KAAKssN,OAAO/sN,GAC1B+B,EAAMO,KAAK0qN,GACU,IAAjBjrN,EAAMnB,QAAiBqsN,GACzBxsN,KAAKysN,YAAYltN,EAErB,CACA,WAAAmtN,CAAYH,EAAWhtN,GACPS,KAAKssN,OAAO/sN,GACpBiyB,QAAQ+6L,GACdvsN,KAAKysN,YAAYltN,EACnB,CACA,aAAAotN,CAAcptN,GACZ,IAAIqtN,EACJ,MAAM1rN,EAAU,IAAIC,SAAQC,IAC1BwrN,EAAUxrN,CAAO,IAEbmrN,EAAY,CAChBK,UACAC,QAAS,OACTC,WAAY,OACZ7/M,QAAS,QAGX,OADAjN,KAAKk3B,OAAOq1L,EAAWhtN,GAChB2B,CACT,CACA,WAAAurN,CAAYltN,GACV,MAAM+B,EAAQtB,KAAKssN,OAAO/sN,GAC1B,GAAI+B,EAAMnB,OAAQ,CAChB,MAAMosN,EAAYjrN,EAAM,GACxB,IAGEirN,EAAUK,SACZ,CAAE,MAAOhoN,GACPk8E,EAAO/jD,KAAK,kDAAkDx9B,8BAAiCqF,KAC/F2nN,EAAUt/M,QAAQrI,GAGlB,MAAMmoN,EAAK/sN,KAAKqsN,QAAQ9sN,GACZ,MAANwtN,GAAcA,EAAGC,UACrBhtN,KAAKitN,oBAAoB1tN,EAE7B,CACF,CACF,CACA,mBAAA0tN,CAAoB1tN,GAClBS,KAAKssN,OAAO/sN,GAAMyC,QAClBhC,KAAKysN,YAAYltN,EACnB,CACA,OAAAuF,CAAQvF,GACN,OAAOS,KAAKssN,OAAO/sN,GAAM,EAC3B,EAGF,MAAM2tN,GAA8B,uDAu9BpC,SAASC,GAAqBltM,GAC5B,MAAMmtM,EAAiBntM,EAAKuoD,iBAAiB,UAC7C,GAAG9kE,MAAMnH,KAAK6wN,GAAgB5uN,SAAQ4kB,IACpCnD,EAAKw4B,YAAYr1B,EAAO,GAE5B,CAiDA,MAAMiqM,GAA0B,CAC9B,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,GAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAKN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAM,IAEN,IAAM,GAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAIN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAM,IAEN,IAAM,GAEN,IAAM,KAEN,IAAM,KAEN,IAAM,IAEN,IAAM,KAEN,IAAM,KAEN,IAAM,KAEN,IAAM,KAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAIN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,GAEN,IAAM,GAEN,IAAM,GAEN,IAAM,IAEN,IAAM,KAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,IAEN,IAAM,KAEN,IAAM,KAEN,IAAM,KAEN,IAAM,MAMFC,GAAiBxtD,GAAQn9J,OAAO4sC,aAAa89K,GAAwBvtD,IAASA,GAC9EytD,GAAU,GACVC,GAAU,IAEVC,GAAa,CACjB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAc,CAClB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAa,CACjB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAc,CAClB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAmB,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,SAAU,UAAW,QAAS,eACjG,MAAMC,GACJ,WAAA/iM,GACE/qB,KAAKy9B,KAAO,KACZz9B,KAAK+tN,aAAe,CACtB,CACA,GAAA5iL,CAAI6iL,EAAU3uL,GACZ,GAAIr/B,KAAK+tN,cAAgBC,EAAU,CACjC,MAAM7yM,EAAmB,mBAARkkB,EAAqBA,IAAQA,EAC9CyhD,EAAO31C,IAAI,GAAGnrC,KAAKy9B,SAASuwL,MAAa7yM,IAC3C,CACF,EAEF,MAAM8yM,GAAqB,SAA4BC,GACrD,MAAMC,EAAW,GACjB,IAAK,IAAI/8K,EAAI,EAAGA,EAAI88K,EAAS/tN,OAAQixC,IACnC+8K,EAAStsN,KAAKqsN,EAAS98K,GAAGr1C,SAAS,KAErC,OAAOoyN,CACT,EACA,MAAMC,GACJ,WAAArjM,GACE/qB,KAAKquN,WAAa,QAClBruN,KAAKsuN,WAAY,EACjBtuN,KAAKuuN,SAAU,EACfvuN,KAAK2+C,WAAa,QAClB3+C,KAAKwuN,OAAQ,CACf,CACA,KAAAj8L,GACEvyB,KAAKquN,WAAa,QAClBruN,KAAKsuN,WAAY,EACjBtuN,KAAKuuN,SAAU,EACfvuN,KAAK2+C,WAAa,QAClB3+C,KAAKwuN,OAAQ,CACf,CACA,SAAAC,CAAU/+G,GACR,MAAMg/G,EAAU,CAAC,aAAc,YAAa,UAAW,aAAc,SACrE,IAAK,IAAI5qN,EAAI,EAAGA,EAAI4qN,EAAQvuN,OAAQ2D,IAAK,CACvC,MAAMkzC,EAAQ03K,EAAQ5qN,GAClB4rG,EAAO7zG,eAAem7C,KACxBh3C,KAAKg3C,GAAS04D,EAAO14D,GAEzB,CACF,CACA,SAAA62I,GACE,MAA2B,UAApB7tL,KAAKquN,aAA2BruN,KAAKsuN,YAActuN,KAAKuuN,SAA+B,UAApBvuN,KAAK2+C,aAA2B3+C,KAAKwuN,KACjH,CACA,MAAAG,CAAOrpJ,GACL,OAAOtlE,KAAKquN,aAAe/oJ,EAAM+oJ,YAAcruN,KAAKsuN,YAAchpJ,EAAMgpJ,WAAatuN,KAAKuuN,UAAYjpJ,EAAMipJ,SAAWvuN,KAAK2+C,aAAe2mB,EAAM3mB,YAAc3+C,KAAKwuN,QAAUlpJ,EAAMkpJ,KACtL,CACA,IAAApzG,CAAKwzG,GACH5uN,KAAKquN,WAAaO,EAAYP,WAC9BruN,KAAKsuN,UAAYM,EAAYN,UAC7BtuN,KAAKuuN,QAAUK,EAAYL,QAC3BvuN,KAAK2+C,WAAaiwK,EAAYjwK,WAC9B3+C,KAAKwuN,MAAQI,EAAYJ,KAC3B,CACA,QAAAzyN,GACE,MAAO,SAAWiE,KAAKquN,WAAa,eAAiBruN,KAAKsuN,UAAY,aAAetuN,KAAKuuN,QAAU,gBAAkBvuN,KAAK2+C,WAAa,WAAa3+C,KAAKwuN,KAC5J,EAOF,MAAMK,GACJ,WAAA9jM,GACE/qB,KAAK8uN,MAAQ,IACb9uN,KAAK+uN,SAAW,IAAIX,EACtB,CACA,KAAA77L,GACEvyB,KAAK8uN,MAAQ,IACb9uN,KAAK+uN,SAASx8L,OAChB,CACA,OAAAy8L,CAAQF,EAAOF,GACb5uN,KAAK8uN,MAAQA,EACb9uN,KAAK+uN,SAAS3zG,KAAKwzG,EACrB,CACA,WAAAK,CAAYL,GACV5uN,KAAK+uN,SAAS3zG,KAAKwzG,EACrB,CACA,MAAAD,CAAOrpJ,GACL,OAAOtlE,KAAK8uN,QAAUxpJ,EAAMwpJ,OAAS9uN,KAAK+uN,SAASJ,OAAOrpJ,EAAMypJ,SAClE,CACA,IAAA3zG,CAAK8zG,GACHlvN,KAAK8uN,MAAQI,EAAQJ,MACrB9uN,KAAK+uN,SAAS3zG,KAAK8zG,EAAQH,SAC7B,CACA,OAAAvlN,GACE,MAAsB,MAAfxJ,KAAK8uN,OAAiB9uN,KAAK+uN,SAASlhC,WAC7C,EAOF,MAAMshC,GACJ,WAAApkM,CAAY+1D,GACV9gF,KAAKmqI,MAAQ,GACbnqI,KAAK6gC,IAAM,EACX7gC,KAAKovN,aAAe,IAAIhB,GACxBpuN,KAAKqvN,aAAe,KACpBrvN,KAAK8gF,YAAS,EACd,IAAK,IAAIh9E,EAAI,EAAGA,EAAI0pN,GAAS1pN,IAC3B9D,KAAKmqI,MAAMtoI,KAAK,IAAIgtN,IAEtB7uN,KAAK8gF,OAASA,CAChB,CACA,MAAA6tI,CAAOrpJ,GACL,IAAK,IAAIxhE,EAAI,EAAGA,EAAI0pN,GAAS1pN,IAC3B,IAAK9D,KAAKmqI,MAAMrmI,GAAG6qN,OAAOrpJ,EAAM6kE,MAAMrmI,IACpC,OAAO,EAGX,OAAO,CACT,CACA,IAAAs3G,CAAK91C,GACH,IAAK,IAAIxhE,EAAI,EAAGA,EAAI0pN,GAAS1pN,IAC3B9D,KAAKmqI,MAAMrmI,GAAGs3G,KAAK91C,EAAM6kE,MAAMrmI,GAEnC,CACA,OAAA0F,GACE,IAAIwjB,GAAQ,EACZ,IAAK,IAAIlpB,EAAI,EAAGA,EAAI0pN,GAAS1pN,IAC3B,IAAK9D,KAAKmqI,MAAMrmI,GAAG0F,UAAW,CAC5BwjB,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CAKA,SAAAsiM,CAAUC,GACJvvN,KAAK6gC,MAAQ0uL,IACfvvN,KAAK6gC,IAAM0uL,GAETvvN,KAAK6gC,IAAM,GACb7gC,KAAK8gF,OAAO31C,IAAI,EAAG,4BAA8BnrC,KAAK6gC,KACtD7gC,KAAK6gC,IAAM,GACF7gC,KAAK6gC,IAAM2sL,KACpBxtN,KAAK8gF,OAAO31C,IAAI,EAAG,6BAA+BnrC,KAAK6gC,KACvD7gC,KAAK6gC,IAAM2sL,GAEf,CAKA,UAAAgC,CAAWC,GACT,MAAMC,EAAS1vN,KAAK6gC,IAAM4uL,EAC1B,GAAIA,EAAS,EACX,IAAK,IAAI3rN,EAAI9D,KAAK6gC,IAAM,EAAG/8B,EAAI4rN,EAAS,EAAG5rN,IACzC9D,KAAKmqI,MAAMrmI,GAAGmrN,YAAYjvN,KAAKovN,cAGnCpvN,KAAKsvN,UAAUI,EACjB,CAKA,SAAAC,GACE3vN,KAAKwvN,YAAY,GACjBxvN,KAAKmqI,MAAMnqI,KAAK6gC,KAAKmuL,QAAQ,IAAKhvN,KAAKovN,aACzC,CACA,UAAAQ,CAAW9vD,GACLA,GAAQ,KAEV9/J,KAAK2vN,YAEP,MAAMryH,EAAOgwH,GAAextD,GACxB9/J,KAAK6gC,KAAO2sL,GACdxtN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,iBAAmB20H,EAAK/jK,SAAS,IAAM,KAAOuhG,EAAO,iBAAmBt9F,KAAK6gC,IAAM,oBAG9G7gC,KAAKmqI,MAAMnqI,KAAK6gC,KAAKmuL,QAAQ1xH,EAAMt9F,KAAKovN,cACxCpvN,KAAKwvN,WAAW,GAClB,CACA,YAAAK,CAAaC,GACX,IAAIhsN,EACJ,IAAKA,EAAIgsN,EAAUhsN,EAAI0pN,GAAS1pN,IAC9B9D,KAAKmqI,MAAMrmI,GAAGyuB,OAElB,CACA,KAAAvnB,GACEhL,KAAK6vN,aAAa,GAClB7vN,KAAK6gC,IAAM,EACX7gC,KAAKovN,aAAa78L,OACpB,CACA,eAAAw9L,GACE/vN,KAAK6vN,aAAa7vN,KAAK6gC,IACzB,CACA,aAAAmvL,GACE,MAAM7lF,EAAQ,GACd,IAAIn9G,GAAQ,EACZ,IAAK,IAAIlpB,EAAI,EAAGA,EAAI0pN,GAAS1pN,IAAK,CAChC,MAAMw5F,EAAOt9F,KAAKmqI,MAAMrmI,GAAGgrN,MACd,MAATxxH,IACFtwE,GAAQ,GAEVm9G,EAAMtoI,KAAKy7F,EACb,CACA,OAAItwE,EACK,GAEAm9G,EAAM9sI,KAAK,GAEtB,CACA,YAAA4yN,CAAavgH,GACX1vG,KAAKovN,aAAaX,UAAU/+G,GACX1vG,KAAKmqI,MAAMnqI,KAAK6gC,KACxBouL,YAAYjvN,KAAKovN,aAC5B,EAOF,MAAMc,GACJ,WAAAnlM,CAAY+1D,GACV9gF,KAAKmwN,KAAO,GACZnwN,KAAKowN,QAAU7C,GACfvtN,KAAKqwN,aAAe,KACpBrwN,KAAKswN,iBAAmB,KACxBtwN,KAAK8gF,YAAS,EACd,IAAK,IAAIh9E,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B9D,KAAKmwN,KAAKtuN,KAAK,IAAIstN,GAAIruI,IAEzB9gF,KAAK8gF,OAASA,CAChB,CACA,KAAAvuD,GACE,IAAK,IAAIzuB,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B9D,KAAKmwN,KAAKrsN,GAAGkH,QAEfhL,KAAKowN,QAAU7C,EACjB,CACA,MAAAoB,CAAOrpJ,GACL,IAAIhxC,GAAQ,EACZ,IAAK,IAAIxwB,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B,IAAK9D,KAAKmwN,KAAKrsN,GAAG6qN,OAAOrpJ,EAAM6qJ,KAAKrsN,IAAK,CACvCwwB,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CACA,IAAA8mF,CAAK91C,GACH,IAAK,IAAIxhE,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B9D,KAAKmwN,KAAKrsN,GAAGs3G,KAAK91C,EAAM6qJ,KAAKrsN,GAEjC,CACA,OAAA0F,GACE,IAAIwjB,GAAQ,EACZ,IAAK,IAAIlpB,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B,IAAK9D,KAAKmwN,KAAKrsN,GAAG0F,UAAW,CAC3BwjB,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CACA,SAAA2iM,GACc3vN,KAAKmwN,KAAKnwN,KAAKowN,SACvBT,WACN,CACA,eAAAI,GACc/vN,KAAKmwN,KAAKnwN,KAAKowN,SACvBL,iBACN,CAKA,UAAAH,CAAWtyH,GACGt9F,KAAKmwN,KAAKnwN,KAAKowN,SACvBR,WAAWtyH,EACjB,CACA,MAAAizH,CAAO7gH,GACO1vG,KAAKmwN,KAAKnwN,KAAKowN,SACvBH,aAAavgH,EACnB,CACA,UAAA8/G,CAAWC,GACGzvN,KAAKmwN,KAAKnwN,KAAKowN,SACvBZ,WAAWC,EACjB,CACA,SAAAH,CAAUC,GACRvvN,KAAK8gF,OAAO31C,IAAI,EAAG,cAAgBokL,GACvBvvN,KAAKmwN,KAAKnwN,KAAKowN,SACvBd,UAAUC,EAChB,CACA,MAAAiB,CAAOC,GACLzwN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,aAAepM,KAAKL,UAAU+xL,KACvD,IAAIC,EAASD,EAAQE,IAAM,EAM3B,GALI3wN,KAAKqwN,cAAgBK,EAAS1wN,KAAKqwN,aAAe,IACpDK,EAAS1wN,KAAKqwN,aAAe,GAI3BrwN,KAAKqwN,cAAgBrwN,KAAKowN,UAAYM,EAAQ,CAEhD,IAAK,IAAI5sN,EAAI,EAAGA,EAAIypN,GAASzpN,IAC3B9D,KAAKmwN,KAAKrsN,GAAGkH,QAKf,MAAM4lN,EAAc5wN,KAAKowN,QAAU,EAAIpwN,KAAKqwN,aAGtCC,EAAmBtwN,KAAKswN,iBAC9B,GAAIA,EAAkB,CACpB,MAAMO,EAAeP,EAAiBH,KAAKS,GAAavB,aAClD5xL,EAAOz9B,KAAK8gF,OAAOrjD,KACzB,GAAqB,OAAjBozL,GAAkC,OAATpzL,GAAiBozL,EAAepzL,EAC3D,IAAK,IAAI35B,EAAI,EAAGA,EAAI9D,KAAKqwN,aAAcvsN,IACrC9D,KAAKmwN,KAAKO,EAAS1wN,KAAKqwN,aAAevsN,EAAI,GAAGs3G,KAAKk1G,EAAiBH,KAAKS,EAAc9sN,GAG7F,CACF,CACA9D,KAAKowN,QAAUM,EACf,MAAMC,EAAM3wN,KAAKmwN,KAAKnwN,KAAKowN,SAC3B,GAAuB,OAAnBK,EAAQK,OAAiB,CAC3B,MAAMA,EAASL,EAAQK,OACjBC,EAAU9zN,KAAKmrB,IAAI0oM,EAAS,EAAG,GACrCH,EAAIrB,UAAUmB,EAAQK,QACtBL,EAAQx2K,MAAQ02K,EAAIxmF,MAAM4mF,GAAShC,SAASV,UAC9C,CACA,MAAM3+G,EAAS,CACb2+G,WAAYoC,EAAQx2K,MACpBq0K,UAAWmC,EAAQnC,UACnBC,QAASkC,EAAQlC,QACjB5vK,WAAY,QACZ6vK,OAAO,GAETxuN,KAAKuwN,OAAO7gH,EACd,CAKA,UAAAshH,CAAWC,GACTjxN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,aAAepM,KAAKL,UAAUuyL,KACvDjxN,KAAK2vN,YACL3vN,KAAKuwN,OAAOU,GACZjxN,KAAK4vN,WAAW,GAClB,CACA,aAAAsB,CAAcC,GACZnxN,KAAKqwN,aAAec,CACtB,CACA,MAAAC,GACE,GAA0B,OAAtBpxN,KAAKqwN,aAEP,YADArwN,KAAK8gF,OAAO31C,IAAI,EAAG,wCAGrBnrC,KAAK8gF,OAAO31C,IAAI,GAAG,IAAMnrC,KAAKqxN,mBAC9B,MAAMT,EAAc5wN,KAAKowN,QAAU,EAAIpwN,KAAKqwN,aACtCiB,EAAStxN,KAAKmwN,KAAKp9K,OAAO69K,EAAa,GAAG,GAChDU,EAAOtmN,QACPhL,KAAKmwN,KAAKp9K,OAAO/yC,KAAKowN,QAAS,EAAGkB,GAClCtxN,KAAK8gF,OAAO31C,IAAI,EAAG,aAErB,CAKA,cAAAkmL,CAAeE,GACbA,EAAWA,IAAY,EACvB,MAAMC,EAAc,GACpB,IAAI/6K,EAAO,GACPg7K,GAAS,EACb,IAAK,IAAI3tN,EAAI,EAAGA,EAAIypN,GAASzpN,IAAK,CAChC,MAAM4tN,EAAU1xN,KAAKmwN,KAAKrsN,GAAGksN,gBACzB0B,IACFD,EAAQ3tN,EAAI,EACRytN,EACFC,EAAY3vN,KAAK,OAAS4vN,EAAQ,MAAQC,EAAU,KAEpDF,EAAY3vN,KAAK6vN,EAAQx5L,QAG/B,CAQA,OAPIs5L,EAAYrxN,OAAS,IAErBs2C,EADE86K,EACK,IAAMC,EAAYn0N,KAAK,OAAS,IAEhCm0N,EAAYn0N,KAAK,OAGrBo5C,CACT,CACA,gBAAAk7K,GACE,OAAO3xN,KAAKmwN,IACd,EAKF,MAAMyB,GACJ,WAAA7mM,CAAY8mM,EAAeC,EAAchxI,GACvC9gF,KAAK+xN,UAAO,EACZ/xN,KAAK8xN,kBAAe,EACpB9xN,KAAKwqE,UAAO,EACZxqE,KAAKgyN,aAAU,EACfhyN,KAAKiyN,qBAAkB,EACvBjyN,KAAKkyN,wBAAqB,EAC1BlyN,KAAKswN,sBAAmB,EACxBtwN,KAAKmyN,mBAAgB,EACrBnyN,KAAKoyN,iBAAc,EACnBpyN,KAAKqvN,kBAAe,EACpBrvN,KAAK8gF,YAAS,EACd9gF,KAAK+xN,KAAOF,EACZ7xN,KAAK8xN,aAAeA,EACpB9xN,KAAKwqE,KAAO,KACZxqE,KAAKgyN,QAAU,EACfhyN,KAAKiyN,gBAAkB,IAAI/B,GAAcpvI,GACzC9gF,KAAKkyN,mBAAqB,IAAIhC,GAAcpvI,GAC5C9gF,KAAKswN,iBAAmB,IAAIJ,GAAcpvI,GAC1C9gF,KAAKmyN,cAAgBnyN,KAAKiyN,gBAAgB9B,KAAK5C,IAC/CvtN,KAAKoyN,YAAcpyN,KAAKiyN,gBACxBjyN,KAAKwqE,KAAO,KACZxqE,KAAKqvN,aAAe,KACpBrvN,KAAK8gF,OAASA,CAChB,CACA,KAAAvuD,GACEvyB,KAAKwqE,KAAO,KACZxqE,KAAKiyN,gBAAgB1/L,QACrBvyB,KAAKkyN,mBAAmB3/L,QACxBvyB,KAAKswN,iBAAiB/9L,QACtBvyB,KAAK8xN,aAAav/L,QAClBvyB,KAAKmyN,cAAgBnyN,KAAKiyN,gBAAgB9B,KAAK5C,IAC/CvtN,KAAKoyN,YAAcpyN,KAAKiyN,gBACxBjyN,KAAKwqE,KAAO,KACZxqE,KAAKqvN,aAAe,IACtB,CACA,UAAAgD,GACE,OAAOryN,KAAK8xN,YACd,CACA,UAAAQ,CAAWC,GACTvyN,KAAK8xN,aAAeS,CACtB,CACA,MAAA/B,CAAOC,GACLzwN,KAAKoyN,YAAY5B,OAAOC,EAC1B,CACA,UAAAO,CAAWC,GACTjxN,KAAKoyN,YAAYpB,WAAWC,EAC9B,CACA,OAAAuB,CAAQC,GACFA,IAAYzyN,KAAKwqE,OAGrBxqE,KAAKwqE,KAAOioJ,EACZzyN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,QAAUsnL,IACjB,gBAAdzyN,KAAKwqE,KACPxqE,KAAKoyN,YAAcpyN,KAAKkyN,oBAExBlyN,KAAKoyN,YAAcpyN,KAAKiyN,gBACxBjyN,KAAKoyN,YAAY7/L,SAED,iBAAdvyB,KAAKwqE,OACPxqE,KAAKiyN,gBAAgB5B,aAAe,KACpCrwN,KAAKkyN,mBAAmB7B,aAAe,MAEzCrwN,KAAKwqE,KAAOioJ,EACd,CACA,WAAAC,CAAYvoF,GACV,IAAK,IAAIrmI,EAAI,EAAGA,EAAIqmI,EAAMhqI,OAAQ2D,IAChC9D,KAAKoyN,YAAYxC,WAAWzlF,EAAMrmI,IAEpC,MAAM6uN,EAAS3yN,KAAKoyN,cAAgBpyN,KAAKiyN,gBAAkB,OAAS,WACpEjyN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAMwnL,EAAS,KAAO3yN,KAAKoyN,YAAYf,gBAAe,KACvD,kBAAdrxN,KAAKwqE,MAA0C,iBAAdxqE,KAAKwqE,OACxCxqE,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,cAAgBnrC,KAAKiyN,gBAAgBZ,gBAAe,KAC7ErxN,KAAK4yN,mBAET,CACA,KAAAC,GAEE7yN,KAAK8gF,OAAO31C,IAAI,EAAG,gCACnBnrC,KAAKwyN,QAAQ,cACf,CACA,IAAAM,GAEE9yN,KAAK8gF,OAAO31C,IAAI,EAAG,kBACD,cAAdnrC,KAAKwqE,OAGTxqE,KAAKoyN,YAAYzC,YACb3vN,KAAKoyN,cAAgBpyN,KAAKiyN,iBAC5BjyN,KAAK4yN,mBAET,CACA,KAAAG,GAEA,CACA,KAAAC,GAEA,CACA,KAAAC,GAEEjzN,KAAK8gF,OAAO31C,IAAI,EAAG,6BACnBnrC,KAAKoyN,YAAYrC,kBACjB/vN,KAAK4yN,kBACP,CACA,IAAAM,CAAK/B,GAEHnxN,KAAK8gF,OAAO31C,IAAI,EAAG,MAAQgmL,EAAS,eACpCnxN,KAAKoyN,YAAcpyN,KAAKiyN,gBACxBjyN,KAAKwyN,QAAQ,gBACbxyN,KAAKoyN,YAAYlB,cAAcC,EACjC,CACA,KAAAgC,GAEEnzN,KAAK8gF,OAAO31C,IAAI,EAAG,kBACnBnrC,KAAKoyN,YAAY7B,OAAO,CACtB/B,OAAO,GAEX,CACA,KAAA4E,GAEEpzN,KAAK8gF,OAAO31C,IAAI,EAAG,kCACnBnrC,KAAKwyN,QAAQ,gBACf,CACA,IAAAa,GAEErzN,KAAK8gF,OAAO31C,IAAI,EAAG,MACnBnrC,KAAKwyN,QAAQ,YACf,CACA,KAAAc,GAEEtzN,KAAK8gF,OAAO31C,IAAI,EAAG,OACnBnrC,KAAKwyN,QAAQ,YACf,CACA,KAAAe,GAEEvzN,KAAK8gF,OAAO31C,IAAI,EAAG,gCACnBnrC,KAAKiyN,gBAAgB1/L,QACrBvyB,KAAK4yN,kBAAiB,EACxB,CACA,IAAAY,GAEExzN,KAAK8gF,OAAO31C,IAAI,EAAG,wBACnBnrC,KAAKoyN,YAAYhB,SACjBpxN,KAAK4yN,kBAAiB,EACxB,CACA,KAAAa,GAEEzzN,KAAK8gF,OAAO31C,IAAI,EAAG,oCACnBnrC,KAAKkyN,mBAAmB3/L,OAC1B,CACA,KAAAmhM,GAGE,GADA1zN,KAAK8gF,OAAO31C,IAAI,EAAG,wBACD,gBAAdnrC,KAAKwqE,KAAwB,CAC/B,MAAMmpJ,EAAM3zN,KAAKiyN,gBACjBjyN,KAAKiyN,gBAAkBjyN,KAAKkyN,mBAC5BlyN,KAAKkyN,mBAAqByB,EAC1B3zN,KAAKoyN,YAAcpyN,KAAKkyN,mBACxBlyN,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,SAAWnrC,KAAKiyN,gBAAgBZ,kBAC3D,CACArxN,KAAK4yN,kBAAiB,EACxB,CACA,IAAAgB,CAAKC,GAEH7zN,KAAK8gF,OAAO31C,IAAI,EAAG,MAAQ0oL,EAAS,kBACpC7zN,KAAKoyN,YAAY5C,WAAWqE,EAC9B,CACA,QAAAC,CAASC,GAEP,MAAMrkH,EAAS,CACb8+G,OAAO,GAIT,GAFA9+G,EAAO4+G,UAAYyF,EAAa,GAAM,EACtCrkH,EAAO6+G,QAAUwF,GAAc,GAC1BrkH,EAAO6+G,QAKV7+G,EAAO2+G,WAAa,YALD,CACnB,MAAM2F,EAAa/2N,KAAK6lD,MAAMixK,EAAa,GAAK,GAC1Cl7M,EAAS,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,SAAU,WACnE62F,EAAO2+G,WAAax1M,EAAOm7M,EAC7B,CAGAh0N,KAAK8gF,OAAO31C,IAAI,EAAG,WAAapM,KAAKL,UAAUgxE,IAC/C1vG,KAAKoyN,YAAY7B,OAAO7gH,EAC1B,CACA,gBAAAkjH,CAAiB3zN,GAAW,GAC1B,MAAMw+B,EAAOz9B,KAAK8gF,OAAOrjD,KACZ,OAATA,GAGAz9B,KAAK8xN,eACmB,OAAtB9xN,KAAKqvN,cAA0BrvN,KAAKiyN,gBAAgBzoN,UAIjDxJ,KAAKiyN,gBAAgBtD,OAAO3uN,KAAKswN,oBACpCtwN,KAAK8xN,aAAamC,OAAOj0N,KAAKqvN,aAAc5xL,EAAMz9B,KAAKswN,kBACnDrxN,GAAYe,KAAK8xN,aAAaoC,aAChCl0N,KAAK8xN,aAAaoC,cAEpBl0N,KAAKqvN,aAAervN,KAAKiyN,gBAAgBzoN,UAAY,KAAOi0B,GAP9Dz9B,KAAKqvN,aAAe5xL,EAUtBz9B,KAAKswN,iBAAiBl1G,KAAKp7G,KAAKiyN,iBAEpC,CACA,cAAAkC,CAAelrN,GACTjJ,KAAK8xN,eACF9xN,KAAKiyN,gBAAgBzoN,YACpBxJ,KAAK8xN,aAAamC,QACpBj0N,KAAK8xN,aAAamC,OAAOj0N,KAAKqvN,aAAcpmN,EAAGjJ,KAAKiyN,iBAEtDjyN,KAAKqvN,aAAepmN,GAG1B,EAKF,MAAMmrN,GACJ,WAAArpM,CAAYslC,EAAOgkK,EAAMC,GACvBt0N,KAAKmwK,cAAW,EAChBnwK,KAAKu0N,eAAiB,EACtBv0N,KAAKw0N,WAkTA,CACLl0N,EAAG,KACHC,EAAG,MAnTHP,KAAK8gF,YAAS,EACd,MAAMA,EAAS9gF,KAAK8gF,OAAS,IAAIgtI,GACjC9tN,KAAKmwK,SAAW,CAAC,KAAM,IAAIyhD,GAAcvhK,EAAOgkK,EAAMvzI,GAAS,IAAI8wI,GAAcvhK,EAAQ,EAAGikK,EAAMxzI,GACpG,CACA,UAAAuxI,CAAW7sN,GACT,OAAOxF,KAAKmwK,SAAS3qK,GAAS6sN,YAChC,CACA,UAAAC,CAAW9sN,EAAS+sN,GAClBvyN,KAAKmwK,SAAS3qK,GAAS8sN,WAAWC,EACpC,CAKA,OAAAkC,CAAQh3L,EAAMi3L,GACZ10N,KAAK8gF,OAAOrjD,KAAOA,EACnB,IAAK,IAAI35B,EAAI,EAAGA,EAAI4wN,EAASv0N,OAAQ2D,GAAK,EAAG,CAC3C,MAAMxD,EAAkB,IAAdo0N,EAAS5wN,GACbvD,EAAsB,IAAlBm0N,EAAS5wN,EAAI,GACvB,IAAI6wN,GAAW,EACXC,EAAa,KACjB,GAAU,IAANt0N,GAAiB,IAANC,EACb,SAEAP,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,IAAM8iL,GAAmB,CAACyG,EAAS5wN,GAAI4wN,EAAS5wN,EAAI,KAAO,SAAWmqN,GAAmB,CAAC3tN,EAAGC,IAAM,MAE9H,MAAMi0N,EAAax0N,KAAKw0N,WAExB,GADsBl0N,GAAK,IAAQA,GAAK,GACrB,CAEjB,GAAIu0N,GAAev0N,EAAGC,EAAGi0N,GAAa,CACpCM,GAAW,KAAM,KAAMN,GACvBx0N,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,qBAAuB8iL,GAAmB,CAAC3tN,EAAGC,IAAM,iBAC7E,QACF,CACAu0N,GAAWx0N,EAAGC,EAAGP,KAAKw0N,YACtBG,EAAW30N,KAAK+0N,SAASz0N,EAAGC,GACvBo0N,IACHA,EAAW30N,KAAKg1N,YAAY10N,EAAGC,IAE5Bo0N,IACHA,EAAW30N,KAAKi1N,SAAS30N,EAAGC,IAEzBo0N,IACHA,EAAW30N,KAAKk1N,0BAA0B50N,EAAGC,GAEjD,MACEu0N,GAAW,KAAM,KAAMN,GAEzB,IAAKG,IACHC,EAAa50N,KAAKm1N,WAAW70N,EAAGC,GAC5Bq0N,GAAY,CACd,MAAMQ,EAAWp1N,KAAKu0N,eAClBa,GAAYA,EAAW,EACTp1N,KAAKmwK,SAASilD,GACtB1C,YAAYkC,GAEpB50N,KAAK8gF,OAAO31C,IAAI,EAAG,mCAEvB,CAEGwpL,GAAaC,GAChB50N,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,+BAAiC8iL,GAAmB,CAAC3tN,EAAGC,IAAM,UAAY0tN,GAAmB,CAACyG,EAAS5wN,GAAI4wN,EAAS5wN,EAAI,MAErJ,CACF,CAMA,QAAAixN,CAASz0N,EAAGC,GAGV,MAFqB,KAAND,GAAoB,KAANA,GAAoB,KAANA,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,KACrE,KAAND,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAET,MAAMwxN,EAAa,KAANzxN,GAAoB,KAANA,GAAoB,KAANA,EAAa,EAAI,EACpDkF,EAAUxF,KAAKmwK,SAAS4hD,GAwC9B,OAvCU,KAANzxN,GAAoB,KAANA,GAAoB,KAANA,GAAoB,KAANA,EAClC,KAANC,EACFiF,EAAQqtN,QACO,KAANtyN,EACTiF,EAAQstN,OACO,KAANvyN,EACTiF,EAAQutN,QACO,KAANxyN,EACTiF,EAAQwtN,QACO,KAANzyN,EACTiF,EAAQytN,QACO,KAAN1yN,EACTiF,EAAQ0tN,KAAK,GACE,KAAN3yN,EACTiF,EAAQ0tN,KAAK,GACE,KAAN3yN,EACTiF,EAAQ0tN,KAAK,GACE,KAAN3yN,EACTiF,EAAQ2tN,QACO,KAAN5yN,EACTiF,EAAQ4tN,QACO,KAAN7yN,EACTiF,EAAQ6tN,OACO,KAAN9yN,EACTiF,EAAQ8tN,QACO,KAAN/yN,EACTiF,EAAQ+tN,QACO,KAANhzN,EACTiF,EAAQguN,OACO,KAANjzN,EACTiF,EAAQiuN,QACO,KAANlzN,GACTiF,EAAQkuN,QAIVluN,EAAQouN,KAAKrzN,EAAI,IAEnBP,KAAKu0N,eAAiBxC,GACf,CACT,CAKA,WAAAiD,CAAY10N,EAAGC,GACb,IAAIwxN,EAAO,EACX,IAAW,KAANzxN,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,GAAM,CAMxD,GAJEwxN,EADQ,KAANzxN,EACK,EAEA,EAELyxN,IAAS/xN,KAAKu0N,eAEhB,OADAv0N,KAAK8gF,OAAO31C,IAAI,EAAG,uCACZ,EAET,MAAM3lC,EAAUxF,KAAKmwK,SAAS4hD,GAC9B,QAAKvsN,IAGLA,EAAQsuN,SAASvzN,GACjBP,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,WAAa8iL,GAAmB,CAAC3tN,EAAGC,IAAM,OAC5D,EACT,CACA,OAAO,CACT,CAMA,QAAA00N,CAAS30N,EAAGC,GACV,IAAIowN,EAGJ,MAFerwN,GAAK,IAAQA,GAAK,IAAQA,GAAK,IAAQA,GAAK,KAASC,GAAK,IAAQA,GAAK,MACjE,KAAND,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAET,MAAMwxN,EAAOzxN,GAAK,GAAO,EAAI,EAE3BqwN,EADEpwN,GAAK,IAAQA,GAAK,GACL,IAATwxN,EAAatE,GAAWntN,GAAKqtN,GAAWrtN,GAG/B,IAATyxN,EAAarE,GAAYptN,GAAKstN,GAAYttN,GAElD,MAAMkF,EAAUxF,KAAKmwK,SAAS4hD,GAC9B,QAAKvsN,IAGLA,EAAQgrN,OAAOxwN,KAAKq1N,aAAa1E,EAAKpwN,IACtCP,KAAKu0N,eAAiBxC,GACf,EACT,CAMA,YAAAsD,CAAa1E,EAAK7wD,GAChB,IAAIw1D,EACJ,MAAM7E,EAAU,CACdx2K,MAAO,KACPs0K,SAAS,EACTuC,OAAQ,KACRxC,WAAW,EACXqC,IAAKA,GAgBP,OAbE2E,EADEx1D,EAAO,GACEA,EAAO,GAEPA,EAAO,GAEpB2wD,EAAQnC,YAA+B,GAAlBgH,GACjBA,GAAY,GACd7E,EAAQx2K,MAAQ,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,SAAU,UAAW,SAASh9C,KAAK6lD,MAAMwyK,EAAW,IACrGA,GAAY,IACrB7E,EAAQlC,SAAU,EAClBkC,EAAQx2K,MAAQ,SAEhBw2K,EAAQK,OAA6C,EAApC7zN,KAAK6lD,OAAOwyK,EAAW,IAAQ,GAE3C7E,CACT,CAMA,UAAA0E,CAAW70N,EAAGC,GACZ,IAAIg1N,EACAC,EAAY,KACZC,EAAY,KAQhB,GAPIn1N,GAAK,IACPi1N,EAAY,EACZE,EAAYn1N,EAAI,IAEhBi1N,EAAY,EACZE,EAAYn1N,GAEVm1N,GAAa,IAAQA,GAAa,GAAM,CAE1C,IAAIC,EAEFA,EADgB,KAAdD,EACQl1N,EAAI,GACS,KAAdk1N,EACCl1N,EAAI,IAEJA,EAAI,IAEhBP,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,iBAAmBmiL,GAAeoI,GAAW,gBAAkBH,IACxFC,EAAY,CAACE,EACf,MAAWp1N,GAAK,IAAQA,GAAK,MAC3Bk1N,EAAkB,IAANj1N,EAAU,CAACD,GAAK,CAACA,EAAGC,IAKlC,OAHIi1N,GACFx1N,KAAK8gF,OAAO31C,IAAI,GAAG,IAAM,iBAAmB8iL,GAAmBuH,GAAWn4N,KAAK,OAE1Em4N,CACT,CAMA,yBAAAN,CAA0B50N,EAAGC,GAG3B,MAFqB,KAAND,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,KACzC,KAAND,GAAoB,KAANA,IAAeC,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAET,IAAIkT,EACJ,MAAMw9M,EAAU,CAAC,EACP,KAAN3wN,GAAoB,KAANA,GAChBmT,EAAQxW,KAAK6lD,OAAOviD,EAAI,IAAQ,GAChC0wN,EAAQtyK,WAAakvK,GAAiBp6M,GAClClT,EAAI,GAAM,IACZ0wN,EAAQtyK,WAAasyK,EAAQtyK,WAAa,UAE7B,KAANp+C,EACT0wN,EAAQtyK,WAAa,eAErBsyK,EAAQ5C,WAAa,QACX,KAAN9tN,IACF0wN,EAAQ3C,WAAY,IAGxB,MAAMyD,EAAOzxN,GAAK,GAAO,EAAI,EAG7B,OAFgBN,KAAKmwK,SAAS4hD,GACtBf,WAAWC,IACZ,CACT,CAKA,KAAA1+L,GACE,IAAK,IAAIzuB,EAAI,EAAGA,EAAInI,OAAOwK,KAAKnG,KAAKmwK,UAAUhwK,OAAQ2D,IAAK,CAC1D,MAAM0B,EAAUxF,KAAKmwK,SAASrsK,GAC1B0B,GACFA,EAAQ+sB,OAEZ,CACAuiM,GAAW,KAAM,KAAM90N,KAAKw0N,WAC9B,CAKA,cAAAL,CAAelrN,GACb,IAAK,IAAInF,EAAI,EAAGA,EAAI9D,KAAKmwK,SAAShwK,OAAQ2D,IAAK,CAC7C,MAAM0B,EAAUxF,KAAKmwK,SAASrsK,GAC1B0B,GACFA,EAAQ2uN,eAAelrN,EAE3B,CACF,EAEF,SAAS6rN,GAAWx0N,EAAGC,EAAGi0N,GACxBA,EAAWl0N,EAAIA,EACfk0N,EAAWj0N,EAAIA,CACjB,CACA,SAASs0N,GAAev0N,EAAGC,EAAGi0N,GAC5B,OAAOA,EAAWl0N,IAAMA,GAAKk0N,EAAWj0N,IAAMA,CAChD,CAQA,MAAMo1N,GACJ,WAAA5qM,CAAY6qM,EAAoBC,GAC9B71N,KAAK41N,wBAAqB,EAC1B51N,KAAK81N,UAAY,GACjB91N,KAAK61N,eAAY,EACjB71N,KAAKkf,UAAY,KACjBlf,KAAK4kE,QAAU,KACf5kE,KAAK2yN,OAAS,KACd3yN,KAAK41N,mBAAqBA,EAC1B51N,KAAK61N,UAAYA,CACnB,CACA,WAAA3B,GACyB,OAAnBl0N,KAAKkf,YAGTlf,KAAK41N,mBAAmBG,QAAQ/1N,KAAK61N,UAAW71N,KAAKkf,UAAWlf,KAAK4kE,QAAS5kE,KAAK2yN,OAAQ3yN,KAAK81N,WAChG91N,KAAKkf,UAAY,KACnB,CACA,MAAA+0M,CAAO/0M,EAAW0lD,EAAS+tJ,IACF,OAAnB3yN,KAAKkf,WAAsBlf,KAAKkf,UAAYA,KAC9Clf,KAAKkf,UAAYA,GAEnBlf,KAAK4kE,QAAUA,EACf5kE,KAAK2yN,OAASA,EACd3yN,KAAK41N,mBAAmBI,oBAAoBh2N,KAAK61N,UACnD,CACA,KAAAtjM,GACEvyB,KAAK81N,UAAY,GACjB91N,KAAKkf,UAAY,IACnB,EAmBF,IAAIq8J,GAAS,WACX,GAAoB,MAAhB3jB,GAAwBA,EAAa2jB,OACvC,OAAOjxJ,KAAKixJ,OAEd,MAAM06C,EAAoB,CAAC,GAAI,KAAM,MAC/BC,EAAoB,CAAC,QAAS,SAAU,MAAO,OAAQ,SAC7D,SAASC,EAAeC,EAAS/5N,GAC/B,GAAqB,iBAAVA,EACT,OAAO,EAGT,IAAKiS,MAAMie,QAAQ6pM,GACjB,OAAO,EAGT,MAAMC,EAAUh6N,EAAMgmC,cAEtB,SAAK+zL,EAAQj4L,QAAQk4L,IACZA,CAGX,CAIA,SAASC,EAAiBj6N,GACxB,OAAO85N,EAAeD,EAAmB75N,EAC3C,CACA,SAASyzB,EAAO3wB,KAAQyqI,GACtB,IAAI9lI,EAAI,EACR,KAAOA,EAAI/F,UAAUoC,OAAQ2D,IAAK,CAChC,MAAMyyN,EAAOx4N,UAAU+F,GACvB,IAAK,MAAMzB,KAAKk0N,EACdp3N,EAAIkD,GAAKk0N,EAAKl0N,EAElB,CACA,OAAOlD,CACT,CACA,SAASo8K,EAAOr8J,EAAW0lD,EAASnuB,GAClC,MAAM0jI,EAAMn6K,KACNw2N,EAAU,CACd90M,YAAY,GAUdy4J,EAAIs8C,cAAe,EAOnB,IAAIC,EAAM,GACNC,GAAe,EACfC,EAAa13M,EACb23M,EAAWjyJ,EACXkyJ,EAAQrgL,EACRsgL,EAAU,KACVC,EAAY,GACZC,GAAe,EACfC,EAAQ,OACRC,EAAa,QACbC,EAAY,GACZC,EAAiB,SACjBC,EAAQ,GACRC,EAAS,SACb57N,OAAO8lB,eAAe04J,EAAK,KAAMrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACnDnlN,IAAK,WACH,OAAOqlN,CACT,EACA/3N,IAAK,SAAUtC,GACbq6N,EAAM,GAAKr6N,CACb,KAEFV,OAAO8lB,eAAe04J,EAAK,cAAerqJ,EAAO,CAAC,EAAG0mM,EAAS,CAC5DnlN,IAAK,WACH,OAAOslN,CACT,EACAh4N,IAAK,SAAUtC,GACbs6N,IAAiBt6N,CACnB,KAEFV,OAAO8lB,eAAe04J,EAAK,YAAarqJ,EAAO,CAAC,EAAG0mM,EAAS,CAC1DnlN,IAAK,WACH,OAAOulN,CACT,EACAj4N,IAAK,SAAUtC,GACb,GAAqB,iBAAVA,EACT,MAAM,IAAI0nD,UAAU,uCAEtB6yK,EAAav6N,EACb2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,UAAWrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACxDnlN,IAAK,WACH,OAAOwlN,CACT,EACAl4N,IAAK,SAAUtC,GACb,GAAqB,iBAAVA,EACT,MAAM,IAAI0nD,UAAU,qCAEtB8yK,EAAWx6N,EACX2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,OAAQrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACrDnlN,IAAK,WACH,OAAOylN,CACT,EACAn4N,IAAK,SAAUtC,GACby6N,EAAQ,GAAKz6N,EACb2D,KAAKy2N,cAAe,CACtB,KAIF96N,OAAO8lB,eAAe04J,EAAK,SAAUrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACvDnlN,IAAK,WACH,OAAO0lN,CACT,EACAp4N,IAAK,SAAUtC,GACb06N,EAAU16N,EACV2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,WAAYrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACzDnlN,IAAK,WACH,OAAO2lN,CACT,EACAr4N,IAAK,SAAUtC,GACb,MAAMm7N,EAnHZ,SAA8Bn7N,GAC5B,OAAO85N,EAAeF,EAAmB55N,EAC3C,CAiHsBo7N,CAAqBp7N,GAErC,IAAgB,IAAZm7N,EACF,MAAM,IAAIE,YAAY,+CAExBV,EAAYQ,EACZx3N,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,cAAerqJ,EAAO,CAAC,EAAG0mM,EAAS,CAC5DnlN,IAAK,WACH,OAAO4lN,CACT,EACAt4N,IAAK,SAAUtC,GACb46N,IAAiB56N,EACjB2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,OAAQrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACrDnlN,IAAK,WACH,OAAO6lN,CACT,EACAv4N,IAAK,SAAUtC,GACb,GAAqB,iBAAVA,GAAgC,SAAVA,EAC/B,MAAM,IAAIq7N,YAAY,sDAExBR,EAAQ76N,EACR2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,YAAarqJ,EAAO,CAAC,EAAG0mM,EAAS,CAC1DnlN,IAAK,WACH,OAAO8lN,CACT,EACAx4N,IAAK,SAAUtC,GACb,MAAMm7N,EAAUlB,EAAiBj6N,GACjC,IAAKm7N,EACH,MAAM,IAAIE,YAAY,+CAExBP,EAAaK,EACbx3N,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,WAAYrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACzDnlN,IAAK,WACH,OAAO+lN,CACT,EACAz4N,IAAK,SAAUtC,GACb,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAIyB,MAAM,uCAElBs5N,EAAY/6N,EACZ2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,gBAAiBrqJ,EAAO,CAAC,EAAG0mM,EAAS,CAC9DnlN,IAAK,WACH,OAAOgmN,CACT,EACA14N,IAAK,SAAUtC,GACb,MAAMm7N,EAAUlB,EAAiBj6N,GACjC,IAAKm7N,EACH,MAAM,IAAIE,YAAY,+CAExBL,EAAiBG,EACjBx3N,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,OAAQrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACrDnlN,IAAK,WACH,OAAOimN,CACT,EACA34N,IAAK,SAAUtC,GACb,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAIyB,MAAM,mCAElBw5N,EAAQj7N,EACR2D,KAAKy2N,cAAe,CACtB,KAEF96N,OAAO8lB,eAAe04J,EAAK,QAASrqJ,EAAO,CAAC,EAAG0mM,EAAS,CACtDnlN,IAAK,WACH,OAAOkmN,CACT,EACA54N,IAAK,SAAUtC,GACb,MAAMm7N,EAAUlB,EAAiBj6N,GACjC,IAAKm7N,EACH,MAAM,IAAIE,YAAY,+CAExBH,EAASC,EACTx3N,KAAKy2N,cAAe,CACtB,KAQFt8C,EAAIw9C,kBAAez7N,CACrB,CAYA,OANAq/K,EAAO3/K,UAAUg8N,aAAe,WAG9B,OADettM,KAAKutM,OACNC,oBAAoBxtM,KAAMtqB,KAAKy2C,KAC/C,EAEO8kI,CACR,CA1PY,GAgQb,MAAMw8C,GAEJ,MAAA35L,CAAOx0B,EAAMkF,GACX,IAAKlF,EACH,MAAO,GAET,GAAoB,iBAATA,EACT,MAAM,IAAI9L,MAAM,iCAElB,OAAO07C,mBAAmBoW,mBAAmBhmD,GAC/C,EAIF,SAASouN,GAAe71N,GACtB,SAAS81N,EAAe58M,EAAGF,EAAGtU,EAAG8jB,GAC/B,OAAiB,MAAL,EAAJtP,GAA0B,IAAL,EAAJF,IAAmB,EAAJtU,GAASy4B,WAAW3U,GAAK,EACnE,CACA,MAAMxP,EAAIhZ,EAAMwH,MAAM,uCACtB,OAAKwR,EAGDmkB,WAAWnkB,EAAE,IAAM,GAGd88M,EAAe98M,EAAE,GAAIA,EAAE,GAAI,EAAGA,EAAE,IAGlC88M,EAAe98M,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IARjC,IASX,CAIA,MAAM+8M,GACJ,WAAAntM,GACE/qB,KAAKuc,OAAS5gB,OAAO+Q,OAAO,KAC9B,CAEA,GAAA/N,CAAImE,EAAG+nB,GACA7qB,KAAKqR,IAAIvO,IAAY,KAAN+nB,IAClB7qB,KAAKuc,OAAOzZ,GAAK+nB,EAErB,CAMA,GAAAxZ,CAAIvO,EAAGq1N,EAAMC,GACX,OAAIA,EACKp4N,KAAKyV,IAAI3S,GAAK9C,KAAKuc,OAAOzZ,GAAKq1N,EAAKC,GAEtCp4N,KAAKyV,IAAI3S,GAAK9C,KAAKuc,OAAOzZ,GAAKq1N,CACxC,CAEA,GAAA1iN,CAAI3S,GACF,OAAOA,KAAK9C,KAAKuc,MACnB,CAEA,GAAAid,CAAI12B,EAAG+nB,EAAGvqB,GACR,IAAK,IAAIiqB,EAAI,EAAGA,EAAIjqB,EAAEH,SAAUoqB,EAC9B,GAAIM,IAAMvqB,EAAEiqB,GAAI,CACdvqB,KAAKrB,IAAImE,EAAG+nB,GACZ,KACF,CAEJ,CAEA,OAAA8R,CAAQ75B,EAAG+nB,GACL,UAAU+C,KAAK/C,IAEjB7qB,KAAKrB,IAAImE,EAAG8iC,SAAS/a,EAAG,IAE5B,CAEA,OAAAsnC,CAAQrvD,EAAG+nB,GACT,GAAI,2BAA2B+C,KAAK/C,GAAI,CACtC,MAAMsnC,EAAU7yB,WAAWzU,GAC3B,GAAIsnC,GAAW,GAAKA,GAAW,IAE7B,OADAnyD,KAAKrB,IAAImE,EAAGqvD,IACL,CAEX,CACA,OAAO,CACT,EAKF,SAASkmK,GAAal2N,EAAOgU,EAAUmiN,EAAeC,GACpD,MAAMrqK,EAASqqK,EAAap2N,EAAM/E,MAAMm7N,GAAc,CAACp2N,GACvD,IAAK,MAAM2B,KAAKoqD,EAAQ,CACtB,GAAyB,iBAAdA,EAAOpqD,GAChB,SAEF,MAAM00N,EAAKtqK,EAAOpqD,GAAG1G,MAAMk7N,GACT,IAAdE,EAAGr4N,QAKPgW,EAFUqiN,EAAG,GACHA,EAAG,GAEf,CACF,CACA,MAAMhjM,GAAW,IAAI+lJ,GAAO,EAAG,EAAG,IAG5Bk9C,GAA4B,WAAnBjjM,GAASkjM,MAAqB,SAAW,SACxD,SAASC,GAASx2N,EAAOg4K,EAAKy+C,GAE5B,MAAMC,EAAS12N,EAEf,SAAS22N,IACP,MAAMC,EAAKf,GAAe71N,GAC1B,GAAW,OAAP42N,EACF,MAAM,IAAIj7N,MAAM,wBAA0B+6N,GAK5C,OADA12N,EAAQA,EAAM81B,QAAQ,iBAAkB,IACjC8gM,CACT,CAmEA,SAASC,IACP72N,EAAQA,EAAM81B,QAAQ,OAAQ,GAChC,CAMA,GAHA+gM,IACA7+C,EAAIj7J,UAAY45M,IAChBE,IAC0B,WAAtB72N,EAAMuB,MAAM,EAAG,GAEjB,MAAM,IAAI5F,MAAM,qEAAoE+6N,GAEtF12N,EAAQA,EAAMuB,MAAM,GACpBs1N,IACA7+C,EAAIv1G,QAAUk0J,IAGdE,IAjFA,SAA4B72N,EAAOg4K,GACjC,MAAMvnI,EAAW,IAAIslL,GACrBG,GAAal2N,GAAO,SAAUW,EAAG+nB,GAC/B,IAAIouM,EACJ,OAAQn2N,GACN,IAAK,SAEH,IAAK,IAAIgB,EAAI80N,EAAWz4N,OAAS,EAAG2D,GAAK,EAAGA,IAC1C,GAAI80N,EAAW90N,GAAGoJ,KAAO2d,EAAG,CAC1B+nB,EAASj0C,IAAImE,EAAG81N,EAAW90N,GAAG8lB,QAC9B,KACF,CAEF,MACF,IAAK,WACHgpB,EAASpZ,IAAI12B,EAAG+nB,EAAG,CAAC,KAAM,OAC1B,MACF,IAAK,OACHouM,EAAOpuM,EAAEztB,MAAM,KACfw1C,EAASjW,QAAQ75B,EAAGm2N,EAAK,IACrBrmL,EAASuf,QAAQrvD,EAAGm2N,EAAK,KAC3BrmL,EAASj0C,IAAI,eAAe,GAE9Bi0C,EAASpZ,IAAI12B,EAAGm2N,EAAK,GAAI,CAAC,SACN,IAAhBA,EAAK94N,QACPyyC,EAASpZ,IAAI,YAAay/L,EAAK,GAAI,CAAC,QAASR,GAAQ,QAEvD,MACF,IAAK,WACHQ,EAAOpuM,EAAEztB,MAAM,KACfw1C,EAASuf,QAAQrvD,EAAGm2N,EAAK,IACL,IAAhBA,EAAK94N,QACPyyC,EAASpZ,IAAI,gBAAiBy/L,EAAK,GAAI,CAAC,QAASR,GAAQ,MAAO,YAAa,aAAc,SAE7F,MACF,IAAK,OACH7lL,EAASuf,QAAQrvD,EAAG+nB,GACpB,MACF,IAAK,QACH+nB,EAASpZ,IAAI12B,EAAG+nB,EAAG,CAAC,QAAS4tM,GAAQ,MAAO,OAAQ,UAG1D,GAAG,IAAK,MAGRt+C,EAAIvwJ,OAASgpB,EAASvhC,IAAI,SAAU,MACpC8oK,EAAI3qG,SAAW58B,EAASvhC,IAAI,WAAY,IACxC,IAAI6nN,EAAOtmL,EAASvhC,IAAI,OAAQ,QACnB,SAAT6nN,IAAsC,IAAnB1jM,GAAS0jM,OAE9BA,GAAQ,GAEV/+C,EAAI++C,KAAOA,EACX/+C,EAAIg/C,UAAYvmL,EAASvhC,IAAI,YAAa,SAC1C8oK,EAAIi/C,YAAcxmL,EAASvhC,IAAI,eAAe,GAC9C8oK,EAAIllJ,KAAO2d,EAASvhC,IAAI,OAAQ,KAChC8oK,EAAIu+C,MAAQ9lL,EAASvhC,IAAI,QAASonN,IAClC,IAAIvhL,EAAWtE,EAASvhC,IAAI,WAAY,QACvB,SAAb6lC,GAA6C,KAAtB1hB,GAAS0hB,WAElCA,EAAyB,UAAdijI,EAAIu+C,OAAmC,SAAdv+C,EAAIu+C,MAAmB,EAAkB,QAAdv+C,EAAIu+C,OAAiC,UAAdv+C,EAAIu+C,MAAoB,IAAM,IAEtHv+C,EAAIjjI,SAAWA,CACjB,CAmBAmiL,CAAmBl3N,EAAOg4K,EAC5B,CACA,SAASm/C,GAAcn3N,GACrB,OAAOA,EAAM81B,QAAQ,iBAAkB,KACzC,CACA,MAAMshM,GACJ,WAAAxuM,GACE/qB,KAAK6P,MAAQ,UACb7P,KAAK0J,OAAS,GACd1J,KAAKs7J,QAAU,IAAIy8D,GACnB/3N,KAAK44N,WAAa,GAClB54N,KAAKm6K,IAAM,KACXn6K,KAAKw5N,WAAQ,EACbx5N,KAAKy5N,oBAAiB,EACtBz5N,KAAK05N,aAAU,CACjB,CACA,KAAAn3L,CAAM34B,GACJ,MAAM2zG,EAAQv9G,KAWd,SAAS25N,IACP,IAAIjwN,EAAS6zG,EAAM7zG,OACfm3B,EAAM,EAEV,IADAn3B,EAAS4vN,GAAc5vN,GAChBm3B,EAAMn3B,EAAOvJ,QAA0B,OAAhBuJ,EAAOm3B,IAAiC,OAAhBn3B,EAAOm3B,MACzDA,EAEJ,MAAMq4L,EAAOxvN,EAAOhG,MAAM,EAAGm9B,GAS7B,MAPoB,OAAhBn3B,EAAOm3B,MACPA,EAEgB,OAAhBn3B,EAAOm3B,MACPA,EAEJ08E,EAAM7zG,OAASA,EAAOhG,MAAMm9B,GACrBq4L,CACT,CAvBItvN,IAEF2zG,EAAM7zG,QAAU6zG,EAAM+9C,QAAQl9H,OAAOx0B,EAAM,CACzC+sM,QAAQ,KAoCZ,IACE,IAAIuiB,EAAO,GACX,GAAoB,YAAhB37G,EAAM1tG,MAAqB,CAE7B,IAAK,UAAU+d,KAAK2vF,EAAM7zG,QACxB,OAAO1J,KAETk5N,EAAOS,IAGP,MAAMx+M,EAAI+9M,EAAKvvN,MAAM,4BACrB,GAAW,MAALwR,IAAaA,EAAE,GACnB,MAAM,IAAIrd,MAAM,+BAElBy/G,EAAM1tG,MAAQ,QAChB,CACA,IAAI+pN,GAAuB,EAC3B,KAAOr8G,EAAM7zG,QAAQ,CAEnB,IAAK,UAAUkkB,KAAK2vF,EAAM7zG,QACxB,OAAO1J,KAOT,OALK45N,EAGHA,GAAuB,EAFvBV,EAAOS,IAIDp8G,EAAM1tG,OACZ,IAAK,SAEC,IAAI+d,KAAKsrM,GA1CnBb,GA2CoBa,GA3CA,SAAUp2N,EAAG+nB,GAQjC,GAAG,KAoCequM,IAEV37G,EAAM1tG,MAAQ,MAEhB,SACF,IAAK,OAEEqpN,IACH37G,EAAM1tG,MAAQ,MAEhB,SACF,IAAK,KAEH,GAAI,iBAAiB+d,KAAKsrM,GAAO,CAC/B37G,EAAM1tG,MAAQ,OACd,KACF,CAEA,IAAKqpN,EACH,SAKF,GAHA37G,EAAM48D,IAAM,IAAIoB,GAAO,EAAG,EAAG,IAC7Bh+D,EAAM1tG,MAAQ,OAEe,IAAzBqpN,EAAK/6L,QAAQ,UAAe,CAC9Bo/E,EAAM48D,IAAIjtK,GAAKgsN,EACf,QACF,CAGF,IAAK,MAEH,IAAK37G,EAAM48D,IAAK,CACd58D,EAAM1tG,MAAQ,SACd,QACF,CACA,IACE8oN,GAASO,EAAM37G,EAAM48D,IAAK58D,EAAMq7G,WAClC,CAAE,MAAOl8N,GAEP6gH,EAAM48D,IAAM,KACZ58D,EAAM1tG,MAAQ,SACd,QACF,CACA0tG,EAAM1tG,MAAQ,UACd,SACF,IAAK,UACH,CACE,MAAMgqN,GAAwC,IAAzBX,EAAK/6L,QAAQ,UAKlC,IAAK+6L,GAAQW,IAAiBD,GAAuB,GAAO,CAEtDr8G,EAAMi8G,OAASj8G,EAAM48D,KACvB58D,EAAMi8G,MAAMj8G,EAAM48D,KAEpB58D,EAAM48D,IAAM,KACZ58D,EAAM1tG,MAAQ,KACd,QACF,CACA,GAAkB,OAAd0tG,EAAM48D,IACR,SAEE58D,EAAM48D,IAAI1jI,OACZ8mE,EAAM48D,IAAI1jI,MAAQ,MAEpB8mE,EAAM48D,IAAI1jI,MAAQyiL,CACpB,CACA,SACF,IAAK,SAEEA,IACH37G,EAAM1tG,MAAQ,MAGtB,CACF,CAAE,MAAOnT,GAEa,YAAhB6gH,EAAM1tG,OAAuB0tG,EAAM48D,KAAO58D,EAAMi8G,OAClDj8G,EAAMi8G,MAAMj8G,EAAM48D,KAEpB58D,EAAM48D,IAAM,KAGZ58D,EAAM1tG,MAAwB,YAAhB0tG,EAAM1tG,MAAsB,YAAc,QAC1D,CACA,OAAO7P,IACT,CACA,KAAA8B,GACE,MAAMy7G,EAAQv9G,KACd,IAWE,IAPIu9G,EAAM48D,KAAuB,WAAhB58D,EAAM1tG,SACrB0tG,EAAM7zG,QAAU,OAChB6zG,EAAMh7E,SAKY,YAAhBg7E,EAAM1tG,OAAuC,cAAhB0tG,EAAM1tG,MACrC,MAAM,IAAI/R,MAAM,8BAEpB,CAAE,MAAOpB,GACH6gH,EAAMk8G,gBACRl8G,EAAMk8G,eAAe/8N,EAEzB,CAIA,OAHI6gH,EAAMm8G,SACRn8G,EAAMm8G,UAED15N,IACT,EAGF,MAAM85N,GAAa,mBAGbl+L,GAAa,SAAoBm+L,EAAaC,EAAc9iL,EAAW,GAC3E,OAAO6iL,EAAYr2N,MAAMwzC,EAAUA,EAAW8iL,EAAa75N,UAAY65N,CACzE,EAgBM7mG,GAAO,SAAc18E,GACzB,IAAIwjL,EAAQ,KACRn2N,EAAI2yC,EAAKt2C,OACb,KAAO2D,GACLm2N,EAAgB,GAARA,EAAaxjL,EAAKnJ,aAAaxpC,GAEzC,OAAQm2N,IAAU,GAAGl+N,UACvB,EAIA,SAASm+N,GAAch7M,EAAW0lD,EAASnuB,GACzC,OAAO08E,GAAKj0G,EAAUnjB,YAAco3H,GAAKvuD,EAAQ7oE,YAAco3H,GAAK18E,EACtE,CA4HA,MAAM0jL,GAAc,iBAGdC,GAAa,8CAGbC,GAAkB,kCAClBC,GAAuB,CAC3B7/F,KAAM,QACNg+F,OAAQ,SACR/9F,MAAO,MACPzhF,MAAO,QACPjsC,IAAK,OAEP,SAASutN,GAAWtuN,EAASqxL,EAASk9B,EAAUC,GAC9C,MAAMhxG,EAAU8yC,GAAQ,IAAI/mD,WAAWvpG,GAAU,CAAC,SAClD,GAAuB,IAAnBw9G,EAAQtpH,OAEV,YADAs6N,EAAc,IAAI38N,MAAM,+BAG1B,MAAM48N,EAAWjxG,EAAQ1oH,KAAI82M,GAAQ58C,GAAe48C,KAC9C8iB,EAvnOR,SAA8B34D,EAAUq5C,EAAWuf,EAAW,EAAG30L,GAAQ,GACvE,OAAOm1K,GAAoBp5C,EAAUq5C,EAAW,EAAIuf,EAAU30L,EAChE,CAqnOmB40L,CAAqBv9B,EAAQt7B,SAAU,EAAGs7B,EAAQzgC,WACnE,IACE69D,EAASl8N,SAAQs8N,GAAQN,EAK7B,SAAmBM,EAAMH,GACvB,MAEMI,GAFS,IAAI3hE,WACGC,gBAAgByhE,EAAM,YAC1BxhE,qBAAqB,MAAM,GAC7C,IAAKyhE,EACH,MAAM,IAAIj9N,MAAM,gBAElB,MAAMk9N,EAAkB,CACtBz6C,UAAW,GACX06C,aAAc,EACdC,oBAAqB,EACrBC,SAAU,GAENC,EAAWz/N,OAAOwK,KAAK60N,GAAiB36N,QAAO,CAAC1D,EAAQ+B,KAC5D/B,EAAO+B,GAAOq8N,EAAGtzJ,aAAa,OAAO/oE,MAAUs8N,EAAgBt8N,GACxD/B,IACN,CAAC,GACEu7B,EAAwC,aAAjC6iM,EAAGtzJ,aAAa,aACvB4zJ,EAAgBC,GAAuBC,GAAqBR,EAAI,UAAW,UAC3ES,EAAiBF,GAAuBC,GAAqBR,EAAI,SAAU,WAC3EU,EAAcF,GAAqBR,EAAI,OAAQ,WACrD,MAAO,GAAGh6N,IAAIxE,KAAKk/N,GAAaC,IAC9B,MAAMC,EAAUC,GAAeF,EAAYxjM,GAC3C,IAAKyjM,IAAYD,EAAWG,aAAa,SACvC,OAAO,KAET,MAAM38M,EAAY48M,GAAcJ,EAAWj0J,aAAa,SAAU2zJ,GAC5D/5J,EAAWy6J,GAAcJ,EAAWj0J,aAAa,OAAQ2zJ,GAC/D,IAAIx2J,EAAUk3J,GAAcJ,EAAWj0J,aAAa,OAAQ2zJ,GAC5D,GAAkB,OAAdl8M,EACF,MAAM68M,GAAsBL,GAE9B,GAAgB,OAAZ92J,EAAkB,CACpB,GAAiB,OAAbvD,EACF,MAAM06J,GAAsBL,GAE9B92J,EAAU1lD,EAAYmiD,CACxB,CACA,MAAM84G,EAAM,IAAIoB,GAAOr8J,EAAYy7M,EAAU/1J,EAAU+1J,EAAUgB,GACjExhD,EAAIjtK,GAAKgtN,GAAc//C,EAAIj7J,UAAWi7J,EAAIv1G,QAASu1G,EAAI1jI,MACvD,MAIMi5D,EA8CV,SAAuB9lF,EAAQotB,EAAOqkL,GACpC,MAAMW,EAAQ,oCACd,IAAIC,EAAc,KAClB,MAQMC,EAA4B,MAAVtyM,GAAkBA,EAAOiyM,aAAa,SAAWjyM,EAAO69C,aAAa,SAAW,KAIxG,OAHIy0J,GAAmBb,EAAcx/N,eAAeqgO,KAClDD,EAAcZ,EAAca,IAVN,CAAC,eAAgB,YAAa,QAAS,kBAAmB,WAAY,cAYvE77N,QAAO,CAACqvG,EAAQtnG,KACrC,MAAM/L,EAAQ8/N,GAAenlL,EAAOglL,EAAO5zN,IAAS+zN,GAAevyM,EAAQoyM,EAAO5zN,IAAS+zN,GAAeF,EAAaD,EAAO5zN,GAI9H,OAHI/L,IACFqzG,EAAOtnG,GAAQ/L,GAEVqzG,CAAM,GACZ,CAAC,EACN,CApEmB0sH,CAJAZ,EAAeE,EAAWj0J,aAAa,WACxC4zJ,EAAcK,EAAWj0J,aAAa,UAGR4zJ,IACtC,UACJn6K,GACEwuD,EACJ,GAAIxuD,EAAW,CAEb,MAAMi4K,EAAYmB,GAAqBp5K,GACnCi4K,IACFh/C,EAAIg/C,UAAYA,GAElBh/C,EAAIu+C,MAAQx3K,CACd,CAEA,OADAwqC,EAASyuF,EAAKzqE,GACPyqE,CAAG,IACTrnK,QAAOqnK,GAAe,OAARA,GACnB,CAhEsCkiD,CAAUvB,EAAMH,KACpD,CAAE,MAAO/1N,GACP61N,EAAc71N,EAChB,CACF,CA6DA,SAAS22N,GAAqBe,EAAaC,EAAYC,GACrD,MAAM50N,EAAS00N,EAAYhjE,qBAAqBijE,GAAY,GAC5D,OAAI30N,EACK,GAAGlE,MAAMnH,KAAKqL,EAAO4gE,iBAAiBg0J,IAExC,EACT,CACA,SAASlB,GAAuBmB,GAC9B,OAAOA,EAAep8N,QAAO,CAACq8N,EAAMxzJ,KAClC,MAAMh8D,EAAKg8D,EAAQzB,aAAa,UAIhC,OAHIv6D,IACFwvN,EAAKxvN,GAAMg8D,GAENwzJ,CAAI,GACV,CAAC,EACN,CACA,SAASd,GAAe1yJ,EAAShxC,GAC/B,MAAO,GAAGx0B,MAAMnH,KAAK2sE,EAAQmM,YAAYh1E,QAAO,CAAC84C,EAAKl5B,EAAMnc,KAC1D,IAAI64N,EACJ,MAAsB,OAAlB18M,EAAKqnD,UAAqBxjE,EACrBq1C,EAAM,KAE6B,OAAvCwjL,EAAmB18M,EAAKo1D,aAAuBsnJ,EAAiBx8N,OAC5Dy7N,GAAe37M,EAAMiY,GACnBA,EACFihB,EAAMl5B,EAAK62B,YAAY5e,OAAOD,QAAQ,OAAQ,KAEhDkhB,EAAMl5B,EAAK62B,WAAW,GAC5B,GACL,CAwBA,SAASqlL,GAAejzJ,EAAS6tB,EAAI3uF,GACnC,OAAK8gE,GAGEA,EAAQ0zJ,eAAe7lI,EAAI3uF,GAAQ8gE,EAAQizJ,eAAeplI,EAAI3uF,GAF5D,IAGX,CACA,SAAS2zN,GAAsB97M,GAC7B,OAAO,IAAIniB,MAAM,kCAAkCmiB,IACrD,CACA,SAAS67M,GAAce,EAAoBzB,GACzC,IAAKyB,EACH,OAAO,KAET,IAAIx4K,EAAU2zK,GAAe6E,GAQ7B,OAPgB,OAAZx4K,IACE+1K,GAAWxsM,KAAKivM,GAClBx4K,EAON,SAAwCw4K,EAAoBzB,GAC1D,MAAMjgN,EAAIi/M,GAAW54N,KAAKq7N,GACpBxiE,GAAiB,EAAPl/I,EAAE,KAAkB,EAAPA,EAAE,IAAUigN,EAASH,aAClD,OAAoB,MAAL,EAAP9/M,EAAE,IAA8B,IAAL,EAAPA,EAAE,KAAuB,EAAPA,EAAE,IAAUk/I,EAAS+gE,EAAS76C,SAC9E,CAXgBu8C,CAA+BD,EAAoBzB,GACpDf,GAAgBzsM,KAAKivM,KAC9Bx4K,EAUN,SAAwBw4K,EAAoBzB,GAC1C,MAAMjgN,EAAIk/M,GAAgB74N,KAAKq7N,GACzBxgO,EAAQqX,OAAOyH,EAAE,IAEvB,OADaA,EAAE,IAEb,IAAK,IACH,OAAe,KAAR9e,EACT,IAAK,IACH,OAAe,GAARA,EACT,IAAK,KACH,OAAe,IAARA,EACT,IAAK,IACH,OAAOA,EAAQ++N,EAAS76C,UAC1B,IAAK,IACH,OAAOlkL,EAAQ++N,EAASD,SAE5B,OAAO9+N,CACT,CA3BgB0gO,CAAeF,EAAoBzB,KAG1C/2K,CACT,CAyoBA,SAAS24K,GAAuC7+D,GAC9C,OAAIA,EAAMkS,iBACJ,8BAA8BziJ,KAAKuwI,EAAMkS,kBAAoB,8BAA8BziJ,KAAKuwI,EAAMkS,iBACjG,WAGJ,WACT,CACA,SAAS4sD,GAAqBC,EAAYC,GACxC,QAASD,GAAcA,EAAW9hD,OAAS4hD,GAAuCG,IAAkBtR,GAA8BsR,EAAeD,EACnJ,CAgBA,MAAME,GACJ,WAAAryM,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKq9N,sBAAmB,EACxBr9N,KAAKw9F,gBAAa,EAClBx9F,KAAKwwK,WAAQ,EACbxwK,KAAKs9N,sBAAmB,EACxBt9N,KAAK6lL,WAAQ,EACb7lL,KAAKu9N,gBAAa,EAClBv9N,KAAKw9N,sBAAmB,EACxBx9N,KAAK00K,IAAMA,EACX10K,KAAKq9N,iBAAmB3pN,OAAOioK,kBAC/B37K,KAAKw9F,YAAc,EACnBx9F,KAAKwwK,MAAQ,KACbxwK,KAAKs9N,iBAAmB,GACxBt9N,KAAK6lL,WAAQ3pL,EACb8D,KAAKu9N,WAAa,KAClBv9N,KAAK40K,mBACP,CACA,mBAAA6oD,CAAoBD,GAClBx9N,KAAKw9N,iBAAmBA,CAC1B,CACA,OAAAvrJ,GACMjyE,KAAK00K,KACP10K,KAAK09N,qBAEH19N,KAAK6lL,OACP7lL,KAAK29N,cAEP39N,KAAKwwK,MAAQ,KACbxwK,KAAKu9N,WAAa,KAElBv9N,KAAK00K,IAAM10K,KAAKw9N,iBAAmB,IACrC,CACA,iBAAA5oD,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOmwE,uBAAwB59N,KAAK69N,sBAAuB79N,MAClE00K,EAAI1yF,GAAGyrE,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACtD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACpD00K,EAAI1yF,GAAGyrE,EAAO2wE,cAAep+N,KAAKq+N,eAAgBr+N,MAClD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,KACxD,CACA,kBAAA09N,GACE,MAAM,IACJhpD,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOmwE,uBAAwB59N,KAAK69N,sBAAuB79N,MACnE00K,EAAI57E,IAAI20D,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACvD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACrD00K,EAAI57E,IAAI20D,EAAO2wE,cAAep+N,KAAKq+N,eAAgBr+N,MACnD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,KACzD,CACA,qBAAA69N,CAAsB73K,EAAOp8C,GAE3B,MAAM2gE,EAAQvqE,KAAK00K,IAAInG,OAAO3kK,EAAK00N,cAC/Bt+N,KAAKu+N,eAAeh0J,IACtBvqE,KAAKs9N,iBAAiBz7N,KAAK,CACzB+sK,QAASrkG,EAAMqkG,QACfrxH,OAAQgtB,EAAMhtB,OACdI,MAAO4sB,EAAM5sB,OAGnB,CACA,gBAAAogL,CAAiB/3K,EAAOp8C,GACtB5J,KAAKwwK,MAAQ5mK,EAAK4mK,iBAAiBguD,iBAAmB50N,EAAK4mK,MAAQ,KACnExwK,KAAKu9N,WAAa,KACdv9N,KAAK6lL,OAAS7lL,KAAK00K,IAAInG,OAAOpuK,QAChCH,KAAKy+N,kBAET,CACA,gBAAAR,CAAiBj4K,EAAOp8C,GACtB,MAAM8qK,EAAM10K,KAAK00K,IACjB10K,KAAKs9N,iBAAmB,GACxBt9N,KAAKw9F,WAAa5zF,EAAK4zF,WACnBk3E,EAAIrgH,OAAOqqK,sBAAwB90N,EAAK6pJ,OAE1CzzJ,KAAK2+N,cAET,CACA,eAAAR,CAAgBn4K,EAAOp8C,GACjB5J,KAAK6lL,OAASr4B,EAAextJ,KAAKq9N,mBACpCr9N,KAAKy+N,kBAET,CAIA,cAAAJ,CAAer4K,EAAOp8C,GACR5J,KAAK00K,IACTrgH,OAAOqqK,sBAAwB90N,EAAK6pJ,OAE1CzzJ,KAAK2+N,cAET,CACA,gBAAAriD,GACEt8K,KAAK29N,aACP,CACA,gBAAAc,GACE,GAAIz+N,KAAKwwK,MAAO,CACd,GAAIxwK,KAAK4+N,aAAe,GAAK5+N,KAAK6+N,YAAc,EAE9C,YADA7+N,KAAKu9N,WAAa,MAGpB,MAAMhvD,EAASvuK,KAAK00K,IAAInG,OACxB,GAAIA,EAAOpuK,OAAQ,CACjB,MAAMu0K,EAAM10K,KAAK00K,IACXoqD,EAAW9+N,KAAK++N,YAAYxwD,EAAOpuK,OAAS,GAC9C2+N,IAAa9+N,KAAKq9N,kBACpBv8I,EAAO31C,IAAI,+BAA+B2zL,MAAavwD,EAAOuwD,GAAUvhL,WAAWgxH,EAAOuwD,GAAUlwD,qBAAqB5uK,KAAK6+N,cAAc7+N,KAAK4+N,eAEnJlqD,EAAI2oD,iBAAmByB,EACnBpqD,EAAI2oD,iBAAmBr9N,KAAKq9N,kBAAoBr9N,KAAKw9N,kBAGvDx9N,KAAKw9N,iBAAiBwB,kBAExBh/N,KAAKq9N,iBAAmB3oD,EAAI2oD,gBAC9B,CACF,CACF,CAKA,WAAA0B,CAAYE,GACV,MAAM1wD,EAASvuK,KAAK00K,IAAInG,OACxB,IAAKA,EAAOpuK,OACV,OAAQ,EAEV,MAAM++N,EAAc3wD,EAAOz7J,QAAO,CAACy3D,EAAO92D,IAAUzT,KAAKu+N,eAAeh0J,IAAU92D,GAASwrN,IAE3F,OADAj/N,KAAKu9N,WAAa,KACXH,GAAmB+B,uBAAuBD,EAAal/N,KAAK6+N,WAAY7+N,KAAK4+N,YACtF,CACA,YAAAD,GACM3+N,KAAK6lL,QAIT7lL,KAAKq9N,iBAAmB3pN,OAAOioK,kBAC/BrxJ,KAAK09B,cAAchoD,KAAK6lL,OACxB7lL,KAAK6lL,MAAQv7J,KAAK+8B,YAAYrnD,KAAKy+N,iBAAiBzvN,KAAKhP,MAAO,KAChEA,KAAKy+N,mBACP,CACA,WAAAd,GACE39N,KAAKs9N,iBAAmB,GACxBt9N,KAAKw9F,YAAc,EACnBx9F,KAAKq9N,iBAAmB3pN,OAAOioK,kBAC3B37K,KAAK6lL,QACPv7J,KAAK09B,cAAchoD,KAAK6lL,OACxB7lL,KAAK6lL,WAAQ3pL,EAEjB,CACA,aAAAkjO,GACE,GAAIp/N,KAAKu9N,WACP,OAAOv9N,KAAKu9N,WAEd,MAAM/sD,EAAQxwK,KAAKwwK,MACb6uD,EAAa,CACjB1hL,MAAO,EACPJ,OAAQ,GAEV,GAAIizH,EAAO,CACT,MAAM+sD,EAAa/sD,EAAM8uD,wBACzBD,EAAW1hL,MAAQ4/K,EAAW5/K,MAC9B0hL,EAAW9hL,OAASggL,EAAWhgL,OAC1B8hL,EAAW1hL,OAAU0hL,EAAW9hL,SAGnC8hL,EAAW1hL,MAAQ4/K,EAAW7iG,MAAQ6iG,EAAW9iG,MAAQ+1C,EAAM7yH,OAAS,EACxE0hL,EAAW9hL,OAASggL,EAAW7/K,OAAS6/K,EAAWpmL,KAAOq5H,EAAMjzH,QAAU,EAE9E,CAEA,OADAv9C,KAAKu9N,WAAa8B,EACXA,CACT,CACA,cAAIR,GACF,OAAO7+N,KAAKo/N,gBAAgBzhL,MAAQ39C,KAAKu/N,kBAC3C,CACA,eAAIX,GACF,OAAO5+N,KAAKo/N,gBAAgB7hL,OAASv9C,KAAKu/N,kBAC5C,CACA,sBAAIA,GACF,IAAI9uB,EAAa,EACjB,IAAKzwM,KAAK00K,IAAIrgH,OAAOmrK,uBACnB,IACE/uB,EAAanmL,KAAKm1M,gBACpB,CAAE,MAAO/iO,GAET,CAEF,OAAO+zM,CACT,CACA,cAAA8tB,CAAeh0J,GAEb,OADyBvqE,KAAKs9N,iBACLl7N,MAAKs9N,GACrBn1J,EAAMqkG,UAAY8wD,EAAgB9wD,SAAWrkG,EAAM5sB,QAAU+hL,EAAgB/hL,OAAS4sB,EAAMhtB,SAAWmiL,EAAgBniL,QAElI,CACA,6BAAO4hL,CAAuB5wD,EAAQ5wH,EAAOJ,GAC3C,GAAgB,MAAVgxH,IAAkBA,EAAOpuK,OAC7B,OAAQ,EAcV,IAAIw/N,EAAgBpxD,EAAOpuK,OAAS,EAEpC,MAAMy/N,EAAa3iO,KAAKmrB,IAAIu1B,EAAOJ,GACnC,IAAK,IAAIz5C,EAAI,EAAGA,EAAIyqK,EAAOpuK,OAAQ2D,GAAK,EAAG,CACzC,MAAMymE,EAAQgkG,EAAOzqK,GACrB,IAAKymE,EAAM5sB,OAASiiL,GAAcr1J,EAAMhtB,QAAUqiL,KAdvBC,EAc0Dt1J,IAdhDu1J,EAcuDvxD,EAAOzqK,EAAI,KAVhG+7N,EAASliL,QAAUmiL,EAAUniL,OAASkiL,EAAStiL,SAAWuiL,EAAUviL,QAUiC,CAC1GoiL,EAAgB77N,EAChB,KACF,CACF,CAlB4B,IAAC+7N,EAAUC,EAmBvC,OAAOH,CACT,EAgGF,MAAMI,GAAgB,QAQtB,MAAMC,GACJ,WAAAj1M,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKq0D,YAAS,EACdr0D,KAAKwwK,MAAQ,KACbxwK,KAAKigO,iBAAmB,KACxBjgO,KAAKkgO,wBAA0B,CAAC,EAChClgO,KAAKmgO,4BAA8B,EACnCngO,KAAKogO,iBAAmB,GACxBpgO,KAAKqgO,yBAA2B,CAAC,EACjCrgO,KAAKsgO,kBAAoBN,GAAcO,kBAAoB,CAACP,GAAcO,mBAAqB,GAC/FvgO,KAAKouB,MAAQ0yD,EAAO1yD,MAAMpf,KAAK8xE,EAAQi/I,IACvC//N,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQi/I,IACnC//N,KAAK+8B,KAAO+jD,EAAO/jD,KAAK/tB,KAAK8xE,EAAQi/I,IACrC//N,KAAK4E,MAAQk8E,EAAOl8E,MAAMoK,KAAK8xE,EAAQi/I,IACvC//N,KAAKwgO,iBAAmBx6K,IACtB,MAAM,aACJy6K,EAAY,SACZje,GACEx8J,EACE06K,EAAa,IAAI16K,EAAMzmD,iCAAiCkhO,KAI9D,GAHAzgO,KAAKouB,MAAMsyM,GAGM,OAAble,EAAJ,CAGA,IAAKxiN,KAAKigO,iBAAkB,CAC1B,IAAIU,EAAahlO,OAAOwK,KAAKnG,KAAKkgO,yBAC7BS,EAAWxgO,SACdwgO,EAAanoE,EAAuBx4J,KAAKq0D,SAE3C,MAAMm+F,EAAamuE,EAAW5/N,IAAIu3J,GAAkCxlJ,QAAOhQ,KAAOA,IAClF9C,KAAKigO,iBAAmBjgO,KAAK4gO,oBAAoBpuE,EACnD,CACAxyJ,KAAKigO,iBAAiBt7N,MAAKk8N,IACzB,MAAMtoE,EAAYJ,EAAiC0oE,GACnD,IAAItnE,EACAunE,EACJ,GAAqB,SAAjBL,EAAyB,CAC3B,GAAIloE,IAAcV,EAAWE,SAE3B,YADA/3J,KAAK+8B,KAAK,wBAAwBipB,EAAMzmD,qCAAqCkhO,8BAAyCloE,KAIxH,MAAMloE,EAAO4rE,GAAQ,IAAIzmD,WAAWgtG,IACpC,IACE,MACMyB,EAAOljD,GADAxJ,EAAax4H,KAAKwD,MAAM8tD,GAAMquE,OAE3C,IAAKulD,EACH,MAAM,IAAInmN,MAAM,wDAElBy7J,EAAQ0qD,EAAKvqD,SAAS,EAAG,IACzBonE,EAAkBjpE,EAAWE,QAC/B,CAAE,MAAOnzJ,GAEP,YADA5E,KAAK+8B,KAAK,GAAG2jM,2BAAoC97N,IAEnD,CACF,KAAO,CACL,GAAI2zJ,IAAcV,EAAWI,UAAYM,IAAcV,EAAWG,UAEhE,YADAh4J,KAAK+8B,KAAK,wBAAwBipB,EAAMzmD,qCAAqCkhO,8BAAyCloE,KAIxH,MAAMwoE,EA79lBhB,SAAwBve,GACtB,MAAM/4F,EAAU,GAChB,GAAI+4F,aAAoBn3E,YAAa,CACnC,MAAMlrI,EAASqiN,EAASlsG,WACxB,IAAIpnD,EAAS,EACb,KAAOA,EAAS,GAAK/uD,GAAQ,CAC3B,MACM6lK,EAAOZ,GADA,IAAI55B,SAASg3E,EAAUtzJ,IAEpCu6D,EAAQ5nH,KAAKmkK,GACb92G,GAAU82G,EAAK/wI,IACjB,CACF,CACA,OAAOw0F,CACT,CAg9lB8Bu3G,CAAexe,GAC7Bye,EAAYF,EAAYjuN,QAAOkzJ,KAAUA,EAAK3N,UAAYD,EAA6B4N,EAAK3N,YAAcE,IAC5G0oE,EAAU9gO,OAAS,GACrBH,KAAK+8B,KAAK,GAAG2jM,oBAA6BO,EAAU9gO,6CAA6Co4J,KAEnG,MAAM2oE,EAAWD,EAAU,GAC3B,IAAKC,EAMH,YAL2B,IAAvBH,EAAY5gO,QAAgB4gO,EAAY3+N,MAAK4jK,IAASA,EAAK3N,WAC7Dr4J,KAAK+8B,KAAK,GAAG2jM,8CAEb1gO,KAAKmrC,IAAI,YAAYu1L,SAAkBK,EAAYhgO,KAAIilK,GAAQ5N,EAA6B4N,EAAK3N,YAAWh7J,KAAK,6CAKrH,GADAyjO,EAAkB1oE,EAA6B8oE,EAAS7oE,UAC/B,IAArB6oE,EAASphN,SAAiBohN,EAASt3N,KACrC,GAAIk3N,IAAoBjpE,EAAWI,SAAU,CAC3C,MAAM/oG,EAASgyK,EAASt3N,KAAKzJ,OAAS,GACtCo5J,EAAQ2nE,EAASt3N,KAAK8vJ,SAASxqG,EAAQA,EAAS,GAClD,MAAW4xK,IAAoBjpE,EAAWG,YACxCuB,EAAQT,EAAkBooE,EAASt3N,MAGzC,CACA,IAAKk3N,IAAoBvnE,EAEvB,YADAv5J,KAAKmrC,IAAI,oBAAoBu1L,qBAA8BnoE,KAG7D,MAAM4oE,EAAWtlE,GAAYtC,IACvB,yBACJ8mE,EAAwB,iBACxBD,GACEpgO,KACJ,IAAIohO,EAA2Bf,EAAyBc,GACxD,IAAK,IAAIr9N,EAAI,EAAGA,EAAIs8N,EAAiBjgO,OAAQ2D,IAAK,CAEhD,MAAMu9N,EAAajB,EAAiBt8N,GAC9BuuJ,EAAcgvE,EAAWhvE,YAC/B,IAAKA,EAAYkH,MACf,SAEF,MAAM+nE,EAAczlE,GAAYxJ,EAAYkH,OAC5C,GAAI4nE,IAAaG,IAAwE,IAAzDjvE,EAAY7nH,IAAIvS,QAAQ,KAAM,IAAIkG,QAAQgjM,GAAkB,CAE1F,GADAC,EAA2Bf,EAAyBiB,GAChDjvE,EAAY2T,KACd,aAEKq6D,EAAyBiB,GAChCjvE,EAAY2T,KAAO,IAAIxwD,WAAWgtG,GAClCnwD,EAAYkH,MAAQA,EACpB6nE,EAA2Bf,EAAyBc,GAAYC,EAAyBz8N,MAAK,IACrF3E,KAAKuhO,uCAAuCF,EAAYZ,EAAcje,EAAU,+BAEzF4e,EAAyBx/F,OAAMh9H,GAAS5E,KAAKwhO,YAAY58N,KACzD,KACF,CACF,CACA,IAAKw8N,EAA0B,CAC7B,GAAIN,IAAoBvoE,EAEtB,YADAv4J,KAAKmrC,IAAI,aAAau1L,WAAoBI,uCAAqDvoE,KAIjG6oE,EAA2Bf,EAAyBc,GAAYnhO,KAAKyhO,6BAA6B,CAACX,IAAkBn8N,MAAK,EACxH4zJ,YACAmpE,gBAEA,IAAIC,EACJ3hO,KAAK4hO,mBACL,MAAMvvE,EAAc,IAAIqT,GAAS,cAAey7D,EAAmF,OAAxEQ,EAAwBrpE,EAAiCC,IAAsBopE,EAAwB,IAGlK,OAFAtvE,EAAY2T,KAAO,IAAIxwD,WAAWgtG,GAClCnwD,EAAYkH,MAAQA,EACbv5J,KAAK6hO,oBAAoBtpE,EAAWmpE,GAAW/8N,MAAK,KACzD3E,KAAK4hO,mBACL,MAAME,EAAoB9hO,KAAK+hO,6BAA6B,CAC1D1vE,cACAkG,YACAmpE,cAEF,OAAO1hO,KAAKuhO,uCAAuCO,EAAmBrB,EAAcje,EAAU,2BAA2B,GACzH,IAEJ4e,EAAyBx/F,OAAMh9H,GAAS5E,KAAKwhO,YAAY58N,IAC3D,IAzHF,CA0HE,EAEJ5E,KAAKgiO,gBAAkBh8K,IACrBhmD,KAAKmrC,IAAI,IAAI6a,EAAMzmD,cAAc,EAEnCS,KAAK00K,IAAMA,EACX10K,KAAKq0D,OAASqgH,EAAIrgH,OAClBr0D,KAAK40K,mBACP,CACA,OAAA3iG,GACEjyE,KAAKy1K,sBACLz1K,KAAKiiO,kBAEL,MAAM5tK,EAASr0D,KAAKq0D,OACpBA,EAAO6tK,gCAAkC,KACzC7tK,EAAO8tK,gBAAkB9tK,EAAO+tK,6BAA0BlmO,EAC1Dm4D,EAAOokG,WAAapkG,EAAOguK,iBAAmB,CAAC,EAE/CriO,KAAK00K,IAAM10K,KAAKq0D,OAASr0D,KAAKqgO,yBAA2B,KAEzDrgO,KAAKwgO,iBAAmBxgO,KAAKgiO,gBAAkB,IACjD,CACA,iBAAAptD,GACE50K,KAAK00K,IAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACzDA,KAAK00K,IAAI1yF,GAAGyrE,EAAO60E,eAAgBtiO,KAAKiiO,gBAAiBjiO,MACzDA,KAAK00K,IAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MAC7DA,KAAK00K,IAAI1yF,GAAGyrE,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,KAC7D,CACA,mBAAAy1K,GACEz1K,KAAK00K,IAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MAC1DA,KAAK00K,IAAI57E,IAAI20D,EAAO60E,eAAgBtiO,KAAKiiO,gBAAiBjiO,MAC1DA,KAAK00K,IAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MAC9DA,KAAK00K,IAAI57E,IAAI20D,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,KAC9D,CACA,mBAAAuiO,CAAoBhqE,GAClB,MAAM,WACJE,EAAU,mBACVC,GACE14J,KAAKq0D,OACHmuK,EAAyB/pE,EAAWF,GAC1C,OAAIiqE,EACKA,EAAuBC,WAI5BlqE,IAAcV,EAAWI,UAAYS,EAChCA,OADT,CAGF,CACA,0BAAAgqE,CAA2BnqE,GACzB,MAAM/iH,EAAMx1C,KAAKuiO,oBAAoBhqE,GACrC,QAAYr8J,IAARs5C,EACF,MAAM,IAAI13C,MAAM,oDAAoDy6J,MAEtE,OAAO/iH,CACT,CACA,uBAAAmtL,CAAwBpqE,GACtB,MAAM,WACJE,GACEz4J,KAAKq0D,OACHmuK,EAAyB/pE,EAAWF,GAC1C,GAAIiqE,EACF,OAAOA,EAAuBI,qBAE9B5iO,KAAKmrC,IAAI,+CAA+CotH,MAE5D,CACA,sBAAAsqE,CAAuBlqE,GACrB,MAAM4V,EAASvuK,KAAK00K,IAAInG,OAClBu0D,EAAc,CAACzmO,EAAOyH,EAAGxD,MAAQjE,GAASiE,EAAE69B,QAAQ9hC,KAAWyH,EAC/D6oL,EAAcpe,EAAOxtK,KAAIwpE,GAASA,EAAMslG,aAAY/8J,OAAOgwN,GAC3Dp2C,EAAcne,EAAOxtK,KAAIwpE,GAASA,EAAMwiG,aAAYj6J,OAAOgwN,GAIjE,OAHIn2C,EAAYxsL,OAASusL,EAAYvsL,SAAW,GAC9CusL,EAAY7qL,KAAK,eAEZ,IAAIV,SAAQ,CAACC,EAASC,KAC3B,MAAM24B,EAAU2mM,IACd,MAAMpoE,EAAYooE,EAAW3+N,QAC7BhC,KAAK+iO,oBAAoBxqE,EAAWo0B,EAAaD,GAAa/nL,MAAK+8N,GAAatgO,EAAQ,CACtFm3J,YACAmpE,gBACE9/F,OAAMh9H,IACJ+7N,EAAWxgO,OACb65B,EAAQ2mM,GAERt/N,EADSuD,aAAiBo+N,GACnBp+N,EAEA,IAAIo+N,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAau1E,qBACtBt+N,QACA+zK,OAAO,GACN/zK,EAAM+Y,SACX,GACA,EAEJqc,EAAQ2+H,EAAoB,GAEhC,CACA,2BAAAC,CAA4BL,EAAW4qE,GACrC,MAAM,gCACJjB,GACEliO,KAAKq0D,OACT,GAAiD,mBAApC6tK,EAAiD,CAC5D,IAAIkB,EAAa,4DAA4DlB,IAI7E,OAHoC,OAAhCtpE,GAAmE,UAA3BtuI,KAAK7f,SAAS44N,WACxDD,EAAa,iFAAiF34N,SAAS44N,YAElGliO,QAAQE,OAAO,IAAIvD,MAAMslO,GAClC,CACA,OAAOlB,EAAgC3pE,EAAW4qE,EACpD,CACA,mBAAAJ,CAAoBxqE,EAAWo0B,EAAaD,GAE1C,MAAM42C,EA9ppBV,SAAkD/qE,EAAWo0B,EAAaD,EAAa21C,GACrF,IAAIkB,EACJ,OAAQhrE,GACN,KAAKV,EAAWE,SACdwrE,EAAgB,CAAC,OAAQ,QACzB,MACF,KAAK1rE,EAAWI,SAChB,KAAKJ,EAAWG,UACdurE,EAAgB,CAAC,QACjB,MACF,KAAK1rE,EAAWC,SACdyrE,EAAgB,CAAC,OAAQ,UACzB,MACF,QACE,MAAM,IAAIzlO,MAAM,uBAAuBy6J,KAE3C,OAEF,SAA4CgrE,EAAe52C,EAAaD,EAAa21C,GAiBnF,MAAO,CAhBY,CACjBkB,cAAeA,EACfC,gBAAiBnB,EAAiBmB,iBAAmB,WACrDC,sBAAuBpB,EAAiBoB,uBAAyB,WACjEC,aAAcrB,EAAiBqB,cAAgB,CAACrB,EAAiBsB,aAAe,aAChFC,kBAAmBj3C,EAAY5rL,KAAIy9J,IAAS,CAC1CuuB,YAAa,sBAAsBvuB,KACnCqlE,WAAYxB,EAAiByB,iBAAmB,GAChDC,iBAAkB1B,EAAiB2B,uBAAyB,SAE9DC,kBAAmBv3C,EAAY3rL,KAAIy9J,IAAS,CAC1CuuB,YAAa,sBAAsBvuB,KACnCqlE,WAAYxB,EAAiB6B,iBAAmB,GAChDH,iBAAkB1B,EAAiB8B,uBAAyB,UAIlE,CApBSC,CAAmCb,EAAe52C,EAAaD,EAAa21C,EACrF,CA6opBkCgC,CAAyC9rE,EAAWo0B,EAAaD,EAAa1sL,KAAKq0D,OAAOguK,kBAClHnC,EAA0BlgO,KAAKkgO,wBAAwB3nE,GAC7D,IAAI+rE,EAA6C,MAA3BpE,OAAkC,EAASA,EAAwBoE,gBACzF,IAAKA,EAAiB,CACpBtkO,KAAKmrC,IAAI,+BAA+BotH,qCAA6Cx5H,KAAKL,UAAU4kM,MACpGgB,EAAkBtkO,KAAK44J,4BAA4BL,EAAW+qE,GAC9D,MAAMiB,EAA2BvkO,KAAKkgO,wBAAwB3nE,GAAa,CACzE+rE,mBAKF,OAHAA,EAAgB1iG,OAAMh9H,IACpB5E,KAAKmrC,IAAI,0CAA0CotH,OAAe3zJ,IAAQ,IAErE0/N,EAAgB3/N,MAAK6/N,IAC1BxkO,KAAKmrC,IAAI,0BAA0Bq5L,EAAqBjsE,uBACxD,MAAMksE,EAAqBzkO,KAAK0kO,uBAAuBnsE,GAcvD,OAbAv4J,KAAKmrC,IAAI,0BAA0BotH,MACnCgsE,EAAyB7C,UAAY8C,EAAqBG,kBAAkBhgO,MAAK+8N,IAC/E1hO,KAAKmrC,IAAI,2BAA2BotH,MAC7BksE,EAAmB9/N,MAAKigO,GACzBA,EACK5kO,KAAK6kO,8BAA8BnD,EAAWnpE,EAAWqsE,GAE3DlD,OAGX6C,EAAyB7C,UAAU9/F,OAAMh9H,IACvC5E,KAAK4E,MAAM,oCAAoC2zJ,QAAgB3zJ,IAAQ,IAElE2/N,EAAyB7C,SAAS,GAE7C,CACA,OAAO4C,EAAgB3/N,MAAK,IAAMu7N,EAAwBwB,WAC5D,CACA,4BAAAK,EAA6B,YAC3B1vE,EAAW,UACXkG,EAAS,UACTmpE,IAEA1hO,KAAKmrC,IAAI,gCAAgCotH,aAAqBsD,GAAYxJ,EAAYkH,OAAS,OAC/F,MAAMurE,EAAmBpD,EAAUqD,gBAC7BC,EAAyB,CAC7B3yE,cACAkG,YACAmpE,YACAoD,mBACAG,UAAW,kBAGb,OADAjlO,KAAKogO,iBAAiBv+N,KAAKmjO,GACpBA,CACT,CACA,eAAAE,CAAgBF,GACd,MAAM3yE,EAAc2yE,EAAuB3yE,YAC3C,GAAIA,EAAY2T,KAAM,CACpB,MAAM87D,EAAoB9hO,KAAK+hO,6BAA6BiD,GACtDzrE,EAAQv5J,KAAKmlO,eAAe9yE,GAC5B5nH,EAAS,OACfzqC,KAAKqgO,yBAAyB9mE,GAASv5J,KAAKuhO,uCAAuCO,EAAmBr3L,EAAQ4nH,EAAY2T,KAAM,UAClI,MACEhmK,KAAK+8B,KAAK,2DAEZ/8B,KAAKolO,cAAcJ,EACrB,CACA,cAAAG,CAAe9yE,GACb,IAAKA,EACH,MAAM,IAAIv0J,MAAM,iDAElB,GAA0B,OAAtBu0J,EAAYkH,MACd,MAAM,IAAIz7J,MAAM,iBAElB,OAAO+9J,GAAYxJ,EAAYkH,MACjC,CACA,gBAAA8rE,CAAiBL,EAAwBp7N,GACvC,IAAI07N,EACJ,MAAMC,EAAaP,EAAuBF,iBAG1C,OAFA9kO,KAAKmrC,IAAI,yBAAyBo6L,EAAWC,wBAAwB3pE,IAA6E,OAA/DypE,EAAwBN,EAAuB3yE,kBAAuB,EAASizE,EAAsB/rE,QAAU,8BAC9K3vJ,EAAOA,EAAK0sG,WAAa1sG,MACtC27N,EAAWl3I,OAAOzkF,EAC3B,CACA,qBAAA67N,CAAsBpyE,GACpB,MAAMb,EAAa72J,OAAOwK,KAAKktJ,EAAKhC,WAAa,CAAC,GAKlD,OAJKrxJ,KAAKigO,mBACRjgO,KAAKmrC,IAAI,2CAA2CkoH,EAAKjC,MAAMiC,EAAK9zJ,SAAS8zJ,EAAK9oF,sBAAsBioF,EAAWn1J,KAAK,SACxH2C,KAAKigO,iBAAmBjgO,KAAK4gO,oBAAoBpuE,IAE5CxyJ,KAAKigO,gBACd,CACA,mBAAAW,CAAoBpuE,GAClB,OAAO,IAAIrxJ,SAAQ,CAACC,EAASC,KAC3B,MAAMqkO,EAAqBltE,EAAuBx4J,KAAKq0D,QACjDskG,EAAsBnG,EAAWzxJ,IAAIo3J,GAAkCrlJ,QAAOzW,KAAWA,IAAgD,IAAvCqpO,EAAmBvnM,QAAQ9hC,KACnI,OAAO2D,KAAKyhO,6BAA6B9oE,GAAqBh0J,MAAK,EACjE4zJ,gBAEA,MAAMsoE,EAAkBvoE,EAAiCC,GACrDsoE,EACFz/N,EAAQy/N,GAERx/N,EAAO,IAAIvD,MAAM,yCAAyCy6J,MAC5D,IACC32B,MAAMvgI,EAAO,GAEpB,CACA,OAAAskO,CAAQ/7N,GACN,MAAMyoJ,EAAczoJ,EAAKg8N,QAAQvzE,YAC3BkH,EAAQv5J,KAAKmlO,eAAe9yE,GAC5BwzE,EAAa,WAAWtsE,cAAkBlH,EAAYQ,sBAAsBR,EAAY7kI,eAAe6kI,EAAY7nH,OACzHxqC,KAAKmrC,IAAI,4BAA4B06L,KACrC,IAAIzE,EAA2BphO,KAAKqgO,yBAAyB9mE,GAqB7D,OApBK6nE,IACHA,EAA2BphO,KAAKqgO,yBAAyB9mE,GAASv5J,KAAK8lO,0BAA0BzzE,GAAa1tJ,MAAK,EACjH4zJ,YACAmpE,gBAEA1hO,KAAK4hO,mBACL5hO,KAAKmrC,IAAI,8BAA8BvhC,EAAKypJ,KAAKjC,MAAMxnJ,EAAKypJ,KAAK9zJ,SAASqK,EAAKypJ,KAAK9oF,mBAAmBs7J,KAChG7lO,KAAK6hO,oBAAoBtpE,EAAWmpE,GAAW/8N,MAAK,KACzD3E,KAAK4hO,mBACL,MAAME,EAAoB9hO,KAAK+hO,6BAA6B,CAC1DxpE,YACAmpE,YACArvE,gBAGF,OAAOryJ,KAAKuhO,uCAAuCO,EADpC,OAC+DzvE,EAAY2T,KAAM,eAAe,OAGnHo7D,EAAyBx/F,OAAMh9H,GAAS5E,KAAKwhO,YAAY58N,MAEpDw8N,CACT,CACA,gBAAAQ,CAAiBjkN,EAAU,iBACzB,IAAK3d,KAAK00K,IACR,MAAM,IAAI52K,MAAM,gBAEpB,CACA,WAAA0jO,CAAY58N,GACL5E,KAAK00K,MAGV10K,KAAK4E,MAAMA,EAAM+Y,SACb/Y,aAAiBo+N,GACnBhjO,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO5zK,EAAMgF,MAErC5J,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAao4E,mBACtBnhO,QACA+zK,OAAO,IAGb,CACA,yBAAAmtD,CAA0BzzE,GACxB,MAAMkH,EAAQv5J,KAAKmlO,eAAe9yE,GAC5B2yE,EAAyBhlO,KAAKqgO,yBAAyB9mE,GAC7D,IAAKyrE,EAAwB,CAC3B,MAAMzsE,EAAYJ,EAAiC9F,EAAYQ,WACzD8F,EAAsBJ,EAAY,CAACA,GAAaC,EAAuBx4J,KAAKq0D,QAClF,OAAOr0D,KAAK6iO,uBAAuBlqE,EACrC,CACA,OAAOqsE,CACT,CACA,4BAAAvD,CAA6B9oE,GAI3B,GAHKA,EAAoBx4J,SACvBw4J,EAAsBH,EAAuBx4J,KAAKq0D,SAEjB,IAA/BskG,EAAoBx4J,OACtB,MAAM,IAAI6iO,GAAY,CACpBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAaq4E,iCACtBrtD,OAAO,GACN,oDAAoD55I,KAAKL,UAAU,CACpE+5H,WAAYz4J,KAAKq0D,OAAOokG,gBAG5B,OAAOz4J,KAAK6iO,uBAAuBlqE,EACrC,CACA,mBAAAkpE,CAAoBtpE,EAAWmpE,GAC7B,MAAMpgO,EAAQtB,KAAKsgO,kBAAkB58N,QACrC1D,KAAKmrC,IAAI,2BAA2BotH,MAGpC,MAAM0tE,EAAsB9kO,QAAQ81C,IAAI31C,GAAOqD,MAAK,KAClD,IAAK3E,KAAKwwK,MACR,MAAM,IAAI1yK,MAAM,6DAElB,OAAOkC,KAAKwwK,MAAM01D,aAAaxE,EAAU,IAG3C,OADA1hO,KAAKsgO,kBAAkBz+N,KAAKokO,GACrBA,EAAoBthO,MAAK,KAC9B3E,KAAKmrC,IAAI,uBAAuBotH,MAChCj3J,EAAMO,KAAKokO,GACXjmO,KAAKsgO,kBAAoBtgO,KAAKsgO,kBAAkBxtN,QAAOzQ,IAA2B,IAAtBf,EAAM68B,QAAQ97B,IAAU,GAExF,CACA,sCAAAk/N,CAAuCt6N,EAASw5N,EAAcje,EAAU35K,GACtE,IAAIs9L,EAAuBC,EAC3B,MAAMC,EAA4E,OAAnDF,EAAwBnmO,KAAKq0D,OAAOokG,aAAsG,OAAtE2tE,EAAyBD,EAAsBl/N,EAAQsxJ,iBAAjE,EAAgG6tE,EAAuBE,gBAChN,GAAID,EACF,IACE,MAAME,EAAiBF,EAAsB9pO,KAAKyD,KAAK00K,IAAK+rD,EAAcje,EAAUv7M,GACpF,IAAKs/N,EACH,MAAM,IAAIzoO,MAAM,2DAElB2iO,EAAe8F,EAAe9F,aAC9Bje,EAAWv7M,EAAQorJ,YAAY2T,KAAOugE,EAAe/jB,SAAW,IAAIhtG,WAAW+wH,EAAe/jB,UAAY,IAC5G,CAAE,MAAO59M,GACP,IAAI4hO,EAEJ,GADAxmO,KAAK+8B,KAAKn4B,EAAM+Y,SACc,OAAzB6oN,EAAYxmO,KAAK00K,MAAgB8xD,EAAUnyK,OAAOjmC,MACrD,MAAMxpB,CAEV,CAEF,GAAiB,OAAb49M,EAEF,OADAxiN,KAAKmrC,IAAI,qCAAqCtC,oBACvC1nC,QAAQC,QAAQ6F,GAEzB,MAAMsyJ,EAAQv5J,KAAKmlO,eAAel+N,EAAQorJ,aAC1CryJ,KAAKmrC,IAAI,uCAAuCtC,OAAY0wH,sBAA0BknE,aAAwBje,EAAWA,EAASlsG,WAAa,SAC/I,MAAMmwH,EAAgB,IAAIpe,GACpBh5E,EAAYpoI,EAAQy/N,WAAa1gL,IACrC,MAAMu/K,EAAat+N,EAAQ69N,iBAC3B,IAAKS,EAEH,YADAkB,EAAcjoN,KAAK,QAAS,IAAI1gB,MAAM,kBAGxC,MAAM,YACJ6oO,EAAW,QACXhpN,GACEqoC,EACJhmD,KAAKmrC,IAAI,IAAIw7L,iCAA2CpB,EAAWC,4BAA4B7nN,EAAQ24F,cACnF,oBAAhBqwH,GAAqD,oBAAhBA,EACvC3mO,KAAK4mO,aAAa3/N,EAAS0W,GAASikH,OAAMh9H,IACxC5E,KAAKwhO,YAAY58N,GACjB6hO,EAAcjoN,KAAK,QAAS5Z,EAAM,IAEX,oBAAhB+hO,EACL1/N,EAAQsxJ,YAAcV,EAAWE,WACnC/3J,KAAKqlO,iBAAiBp+N,EAASywJ,EAAe,iBAC9C13J,KAAKolO,cAAcn+N,IAGrBjH,KAAK+8B,KAAK,qCAAqC4pM,KACjD,EAEIE,EAAsB5/N,EAAQ6/N,qBAAuB9gL,IAEzD,IADmB/+C,EAAQ69N,iBAGzB,YADA2B,EAAcjoN,KAAK,QAAS,IAAI1gB,MAAM,kBAGxCkC,KAAK+mO,kBAAkB9/N,GACvB,MAAMg+N,EAAYh+N,EAAQg+N,UAC1BwB,EAAcjoN,KAAK,YAAaymN,GACd,YAAdA,IACFjlO,KAAK+8B,KAAK,GAAG91B,EAAQsxJ,6BAA6BgB,KAClDv5J,KAAKklO,gBAAgBj+N,GACvB,EAEFA,EAAQ69N,iBAAiB7uL,iBAAiB,UAAWo5F,GACrDpoI,EAAQ69N,iBAAiB7uL,iBAAiB,oBAAqB4wL,GAC/D,MAAMG,EAAmB,IAAI7lO,SAAQ,CAACC,EAASC,KAC7ColO,EAAczkJ,GAAG,QAAS3gF,GAC1BolO,EAAczkJ,GAAG,aAAaijJ,IACxBA,EAAUrpM,WAAW,UACvBx6B,IACuB,sBAAd6jO,EACT5jO,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAas5E,oCACtBtuD,OAAO,GACN,iCACoB,mBAAdssD,EACT5jO,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAau5E,iCACtBvuD,OAAO,GACN,0BAA0BssD,OACN,YAAdA,EACT5jO,EAAO,IAAIvD,MAAM,yCAEjBkC,KAAK+8B,KAAK,gCAAgCkoM,KAC5C,GACA,IAEJ,OAAOh+N,EAAQ69N,iBAAiBwB,gBAAgB7F,EAAcje,GAAU79M,MAAK,KAC3E,IAAIwiO,EACJnnO,KAAKmrC,IAAI,sCAA4F,OAArDg8L,EAAwBlgO,EAAQ69N,uBAA4B,EAASqC,EAAsB3B,qBAAqBjsE,IAAQ,IACvK33B,OAAMh9H,IACP,MAAM,IAAIo+N,GAAY,CACpBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAay5E,sBACtBxiO,QACA+zK,OAAO,GACN,yCAAyC/zK,IAAQ,IACnDD,MAAK,IAAMqiO,IAAkBplG,OAAMh9H,IAGpC,MAFA6hO,EAAczd,qBACdhpN,KAAKolO,cAAcn+N,GACbrC,CAAK,IACVD,MAAK,KACN8hO,EAAczd,qBACP/hN,IAEX,CACA,iBAAA8/N,CAAkB/B,GAChBA,EAAuBF,iBAAiBuC,YAAY7oO,SAAQ,CAAC4N,EAAQmtJ,KACnEv5J,KAAKmrC,IAAI,sBAAsB/+B,6BAAkCyvJ,GAAY,WAAYtC,EAAQ,IAAI/jD,WAAW+jD,EAAM7vJ,OAAQ6vJ,EAAMjlE,WAAYilE,EAAMjjD,YAAc,IAAId,WAAW+jD,sBAA0BsC,GAAY,IAAIrmD,WAAWwvH,EAAuB3yE,YAAYkH,OAAS,aAAayrE,EAAuB3yE,YAAY7nH,OACpUw6L,EAAuBC,UAAY74N,CAAM,GAE7C,CACA,sBAAAs4N,CAAuBnsE,GACrB,MAAMlkG,EAASr0D,KAAKq0D,OAEdizK,EAAa,IAAIzxD,EADRxhH,EAAOi9F,QACQj9F,GACxB7e,EAAMx1C,KAAK2iO,wBAAwBpqE,GACzC,OAAK/iH,GAGLx1C,KAAKmrC,IAAI,oCAAoCotH,MACtC,IAAIp3J,SAAQ,CAACC,EAASC,KAC3B,MAAM+0K,EAAgB,CACpBJ,aAAc,cACdxgI,OAEI2gI,EAAa9hH,EAAOkzK,eAAellN,QACnC40J,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAU,EACVE,WAAY,EACZE,cAAe,GAEXE,EAAkB,CACtB3uB,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpCr2K,EAAQmF,EAASqD,KAAK,EAExBqD,QAAS,CAAC1G,EAAUihO,EAAQ/vD,EAAgBzlB,KAC1C3wJ,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAa85E,6CACtB9uD,OAAO,EACPlB,iBACAlxK,SAAU8mJ,EAAe,CACvB73G,IAAK4gI,EAAc5gI,IACnB5rC,UAAM1N,GACLqK,IACF,IAAIgyJ,kCAA0C/iH,eAAiBjvC,EAAS1J,SAAS0J,EAASkwC,SAAS,EAExGqhI,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bp2K,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAa85E,6CACtB9uD,OAAO,EACPlB,iBACAlxK,SAAU,CACRivC,IAAK4gI,EAAc5gI,IACnB5rC,UAAM1N,IAEP,IAAIq8J,qCAA6C/iH,MAAQ,EAE9D7oC,QAAS,CAACqlJ,EAAO/qJ,EAASwwK,KACxBp2K,EAAO,IAAIvD,MAAM,WAAW,GAGhCwpO,EAAWl+I,KAAKgtF,EAAea,EAAcO,EAAgB,KAhDtDr2K,QAAQC,SAkDnB,CACA,6BAAAyjO,CAA8BnD,EAAWnpE,EAAWmvE,GAClD,OAAO,IAAIvmO,SAAQ,CAACC,EAASC,KAC3BqgO,EAAUiG,qBAAqBD,GAAM/iO,MAAKiyC,IACxC52C,KAAKmrC,IAAI,wBAAwByL,EAAU,UAAY,2BAAmC,MAAR8wL,OAAe,EAASA,EAAKpxH,mBAAmBiiD,MAClIn3J,EAAQsgO,EAAU,IACjB9/F,OAAMh9H,IACPvD,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAai6E,4CACtBhjO,QACA+zK,OAAO,GACN/zK,EAAM+Y,SAAS,GAClB,GAEN,CACA,YAAAipN,CAAa3/N,EAAS4gO,GACpB,OAAO7nO,KAAK8nO,eAAe7gO,EAAS,IAAIuuG,WAAWqyH,IAAaljO,MAAKiF,GAC5D5J,KAAKqlO,iBAAiBp+N,EAAS,IAAIuuG,WAAW5rG,IAAOg4H,OAAMh9H,IAChE,MAAM,IAAIo+N,GAAY,CACpBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAao6E,iCACtBnjO,QACA+zK,OAAO,GACN/zK,EAAM+Y,QAAQ,KAGvB,CACA,yBAAAqqN,CAA0BC,EAAKC,GAM7B,MAAMC,EAAYxlO,OAAO4sC,aAAapoC,MAAM,KAAM,IAAI6jI,YAAYk9F,EAAiBx+N,SACnF,IAAKy+N,EAAU5xN,SAAS,uBAMtB,OADA0xN,EAAIG,iBAAiB,eAAgB,2BAC9BF,EAET,MAAMG,GAAgB,IAAIjvE,WAAYC,gBAAgB8uE,EAAW,mBAE3DxyI,EAAU0yI,EAAc7/J,iBAAiB,cAC/C,GAAImtB,EAAQx1F,OAAS,EAAG,CACtB,IAAI69I,EACJ,IAAK,IAAIl6I,EAAI,EAAGC,EAAM4xF,EAAQx1F,OAAQ2D,EAAIC,EAAKD,IAAK,CAClD,IAAIwkO,EAAuBC,EAC3BvqF,EAASroD,EAAQ7xF,GACjB,MAAMsE,EAAiE,OAAzDkgO,EAAwBtqF,EAAO70E,cAAc,cAAmB,EAASm/J,EAAsBxxL,YACvGz6C,EAAoE,OAA3DksO,EAAyBvqF,EAAO70E,cAAc,eAAoB,EAASo/J,EAAuBzxL,YAC7G1uC,GAAQ/L,GACV4rO,EAAIG,iBAAiBhgO,EAAM/L,EAE/B,CACF,CACA,MAAMmsO,EAAmBH,EAAcl/J,cAAc,aAC/Cs/J,EAAoC,MAApBD,OAA2B,EAASA,EAAiB1xL,YAC3E,IAAK2xL,EACH,MAAM,IAAI3qO,MAAM,0CAElB,OAAO45J,EAAeD,KAAKgxE,GAC7B,CACA,eAAAC,CAAgBT,EAAKzyL,EAAKmzL,EAAcT,GACtC,MAAM/F,EAAkBniO,KAAKq0D,OAAO8tK,gBACpC,OAAKA,EAOEhhO,QAAQC,UAAUuD,MAAK,KAC5B,IAAKgkO,EAAat2E,YAChB,MAAM,IAAIv0J,MAAM,eAElB,OAAOqkO,EAAgB5lO,KAAKyD,KAAK00K,IAAKuzD,EAAKzyL,EAAKmzL,EAAcT,EAAiB,IAC9EtmG,OAAMh9H,IACP,IAAK+jO,EAAat2E,YAEhB,MAAMztJ,EAIR,OADAqjO,EAAIn2J,KAAK,OAAQt8B,GAAK,GACf2sL,EAAgB5lO,KAAKyD,KAAK00K,IAAKuzD,EAAKzyL,EAAKmzL,EAAcT,EAAiB,IAC9EvjO,MAAKikO,IAEDX,EAAItiC,YACPsiC,EAAIn2J,KAAK,OAAQt8B,GAAK,GAGjB,CACLyyL,MACAC,iBAH4BU,GAAgDV,OAxB9ED,EAAIn2J,KAAK,OAAQt8B,GAAK,GACfr0C,QAAQC,QAAQ,CACrB6mO,MACAC,qBA2BN,CACA,cAAAJ,CAAehG,EAAmBoG,GAChC,MAAMW,EAAgB7oO,KAAKq0D,OAAOw0K,cAAcxmN,QAChD,OAAO,IAAIlhB,SAAQ,CAACC,EAASC,KAC3B,MAAMm0C,EAAMx1C,KAAK0iO,2BAA2BZ,EAAkBvpE,WAC9Dv4J,KAAKmrC,IAAI,mCAAmCqK,KAC5C,MAAMyyL,EAAM,IAAIa,eAChBb,EAAIjyD,aAAe,cACnBiyD,EAAIc,mBAAqB,KACvB,IAAK/oO,KAAK00K,MAAQotD,EAAkBgD,iBAClC,OAAOzjO,EAAO,IAAIvD,MAAM,kBAE1B,GAAuB,IAAnBmqO,EAAItiC,WACN,GAAmB,MAAfsiC,EAAI77N,OAAgB,CACtBpM,KAAKmgO,4BAA8B,EACnC,IAAIv2N,EAAOq+N,EAAI1hO,SACfvG,KAAKmrC,IAAI,oBAAoBvhC,aAAgByhI,YAAczhI,EAAK0sG,WAAa1sG,KAC7E,MAAMw4N,EAA0BpiO,KAAKq0D,OAAO+tK,wBAC5C,GAAIA,EACF,IACEx4N,EAAOw4N,EAAwB7lO,KAAKyD,KAAK00K,IAAKuzD,EAAKzyL,EAAKssL,EAC1D,CAAE,MAAOl9N,GACP5E,KAAK4E,MAAMA,EACb,CAEFxD,EAAQwI,EACV,KAAO,CACL,MAAM+5K,EAAcklD,EAAcryD,WAC5BW,EAAcwM,EAAcA,EAAYxM,YAAc,EAE5D,GADAn3K,KAAKmgO,8BACDngO,KAAKmgO,4BAA8BhpD,GAAe8wD,EAAI77N,QAAU,KAAO67N,EAAI77N,OAAS,IACtF/K,EAAO,IAAI2hO,GAAY,CACrBzjO,KAAMmuJ,EAAWu1E,iBACjBzsM,QAASm3H,EAAaq7E,kCACtBrwD,OAAO,EACPlB,eAAgBwwD,EAChB1hO,SAAU,CACRivC,MACA5rC,UAAM1N,EACNW,KAAMorO,EAAI77N,OACVqqC,KAAMwxL,EAAIgB,aAEX,+BAA+BzzL,eAAiByyL,EAAI77N,WAAW67N,EAAIgB,oBACjE,CACL,MAAMC,EAAe/xD,EAAcn3K,KAAKmgO,4BAA8B,EACtEngO,KAAK+8B,KAAK,6BAA6BmsM,mBACvClpO,KAAK8nO,eAAehG,EAAmBoG,GAAkBvjO,KAAKvD,EAASC,EACzE,CACF,CACF,EAEEygO,EAAkBqH,YAAcrH,EAAkBqH,WAAWxjC,aAAemjC,eAAetkO,MAC7Fs9N,EAAkBqH,WAAW1gO,QAE/Bq5N,EAAkBqH,WAAalB,EAC/BjoO,KAAK0oO,gBAAgBT,EAAKzyL,EAAKssL,EAAmBoG,GAAkBvjO,MAAK,EACvEsjO,MACAC,uBAEIpG,EAAkBvpE,WAAaV,EAAWG,YAC5CkwE,EAAmBloO,KAAKgoO,0BAA0BC,EAAKC,IAEzDD,EAAI5lJ,KAAK6lJ,EAAiB,GAC1B,GAEN,CACA,eAAA9rD,CAAgBp2H,EAAOp8C,GACrB,IAAK5J,KAAKq0D,OAAO+0K,WACf,OAEF,MAAM54D,EAAQ5mK,EAAK4mK,MAGnBxwK,KAAKwwK,MAAQA,EACbA,EAAMp1E,oBAAoB,YAAap7F,KAAKwgO,kBAC5ChwD,EAAMp1E,oBAAoB,gBAAiBp7F,KAAKgiO,iBAChDxxD,EAAMv6H,iBAAiB,YAAaj2C,KAAKwgO,kBACzChwD,EAAMv6H,iBAAiB,gBAAiBj2C,KAAKgiO,gBAC/C,CACA,eAAAC,GACE,MAAMzxD,EAAQxwK,KAAKwwK,MACb64D,EAAgBrpO,KAAKogO,iBACvB5vD,IACFA,EAAMp1E,oBAAoB,YAAap7F,KAAKwgO,kBAC5ChwD,EAAMp1E,oBAAoB,gBAAiBp7F,KAAKgiO,iBAChDhiO,KAAKwwK,MAAQ,MAEfxwK,KAAKmgO,4BAA8B,EACnCngO,KAAKsgO,kBAAoB,GACzBtgO,KAAKogO,iBAAmB,GACxBpgO,KAAKqgO,yBAA2B,CAAC,EACjC36D,GAASC,wBAGT,MAAM2jE,EAAkBD,EAAclpO,OACtC6/N,GAAcO,kBAAoBp/N,QAAQ81C,IAAIoyL,EAActoO,KAAIikO,GAA0BhlO,KAAKolO,cAAcJ,KAAyBz9N,OAAgB,MAATipK,OAAgB,EAASA,EAAM01D,aAAa,MAAMtkG,OAAMh9H,IACnM5E,KAAKmrC,IAAI,+BAA+BvmC,IAAQ,MAC7CD,MAAK,KACJ2kO,IACFtpO,KAAKmrC,IAAI,yDACTk+L,EAAclpO,OAAS,EACzB,IACCyhI,OAAMh9H,IACP5E,KAAKmrC,IAAI,kDAAkDvmC,IAAQ,GAEvE,CACA,iBAAAswK,GACEl1K,KAAKigO,iBAAmB,IAC1B,CACA,gBAAAxiC,CAAiBz3I,GAAO,YACtByoH,IAEA,GAAKA,GAAgBzuK,KAAKq0D,OAAO+0K,aAG5BppO,KAAKigO,iBAAkB,CAC1B,MAAMztE,EAAaic,EAAYpuK,QAAO,CAACkpO,EAASp6D,MACC,IAA3Co6D,EAAQprM,QAAQgxI,EAAWtc,YAC7B02E,EAAQ1nO,KAAKstK,EAAWtc,WAEnB02E,IACN,IACHvpO,KAAKmrC,IAAI,0CAA0CqnH,EAAWn1J,KAAK,SACnE2C,KAAKigO,iBAAmBjgO,KAAK4gO,oBAAoBpuE,EACnD,CACF,CACA,aAAA4yE,CAAcJ,GACZ,MAAM,iBACJF,EAAgB,WAChBqE,GACEnE,EACJ,GAAIF,EAAkB,CACpB9kO,KAAKmrC,IAAI,8CAA8C25L,EAAiBU,aACpER,EAAuB0B,aACzB5B,EAAiB1pI,oBAAoB,UAAW4pI,EAAuB0B,YACvE1B,EAAuB0B,gBAAaxqO,GAElC8oO,EAAuB8B,uBACzBhC,EAAiB1pI,oBAAoB,oBAAqB4pI,EAAuB8B,sBACjF9B,EAAuB8B,0BAAuB5qO,GAE5CitO,GAAcA,EAAWxjC,aAAemjC,eAAetkO,MACzD2kO,EAAW1gO,QAEbu8N,EAAuBF,iBAAmBE,EAAuB3yE,YAAc2yE,EAAuBmE,gBAAajtO,EACnH,MAAMuX,EAAQzT,KAAKogO,iBAAiBjiM,QAAQ6mM,GAI5C,OAHIvxN,GAAS,GACXzT,KAAKogO,iBAAiBrtL,OAAOt/B,EAAO,GAE/BqxN,EAAiBvzN,SAASqwH,OAAMh9H,IACrC5E,KAAKmrC,IAAI,6BAA6BvmC,IAAQ,IAC7CD,MAAK,IACCmgO,EAAiBthO,UACvBo+H,OAAMh9H,IACP5E,KAAKmrC,IAAI,4BAA4BvmC,IAAQ,GAEjD,CACF,EAEFo7N,GAAcO,uBAAoB,EAClC,MAAMyC,WAAoBllO,MACxB,WAAAitB,CAAYnhB,EAAM+T,GAChB4a,MAAM5a,GACN3d,KAAK4J,UAAO,EACZA,EAAKhF,QAAUgF,EAAKhF,MAAQ,IAAI9G,MAAM6f,IACtC3d,KAAK4J,KAAOA,EACZA,EAAKjE,IAAMiE,EAAKhF,KAClB,EAWF,IAAI4kO,GAgDAC,GA2BAC,IA1EJ,SAAWF,GAITA,EAAuB,SAAI,IAI3BA,EAAoB,MAAI,IAIxBA,EAAoB,MAAI,IAIxBA,EAAoB,MAAI,KAIxBA,EAAmB,KAAI,IAIvBA,EAAsB,QAAI,IAI1BA,EAAyB,WAAI,KAI7BA,EAAkB,IAAI,IAItBA,EAAoB,MAAI,GACzB,CArCD,CAqCGA,KAAiBA,GAAe,CAAC,IAWpC,SAAWC,GAITA,EAAwB,KAAI,IAI5BA,EAAuB,IAAI,IAI3BA,EAA0B,OAAI,IAI9BA,EAAyB,MAAI,GAC9B,CAjBD,CAiBGA,KAAsBA,GAAoB,CAAC,IAU9C,SAAWC,GAITA,EAAwB,OAAI,cAI5BA,EAAyB,QAAI,eAI7BA,EAAyB,QAAI,eAI7BA,EAAwB,OAAI,aAC7B,CAjBD,CAiBGA,KAAoBA,GAAkB,CAAC,IAS1C,MAAMC,GAAgB,CACpB,CAACD,GAAgBE,QAAS,CAAC,KAAM,IAAK,KAAM,MAC5C,CAACF,GAAgBG,SAAU,CAAC,KAAM,KAAM,MAAO,MAAO,MAAO,MAC7D,CAACH,GAAgBI,SAAU,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,KAC5D,CAACJ,GAAgBK,QAAS,CAAC,KAAM,QAUnC,MAAMC,GACJ,WAAAj/M,CAAY1uB,EAAOs4I,GACjB30I,KAAK3D,WAAQ,EACb2D,KAAK20I,YAAS,EACVrmI,MAAMie,QAAQlwB,KAChBA,EAAQA,EAAM0E,KAAI8pB,GAAKA,aAAam/M,GAASn/M,EAAI,IAAIm/M,GAAOn/M,MAE9D7qB,KAAK3D,MAAQA,EACb2D,KAAK20I,OAASA,CAChB,EAUF,MAAMs1F,GACJ,WAAAl/M,CAAYgC,GACV/sB,KAAK+sB,iBAAc,EACnB/sB,KAAK+sB,YAAcA,CACrB,EAGF,MAAMm9M,GAAO,OAuBb,MAAMC,GAAY,YAEZC,GAAU,UAEVC,GAAQ,gBAERC,GAAU,UAEVC,GAAU,UAMVC,GAAe,mBAEfC,GAAQ,QAERC,GAAM,MAEZ,SAASloG,GAAe3sF,EAAKt2C,EAAMyzF,GACjC,OA3BF,SAAoB9zF,EAAQ22C,EAAKt2C,EAAMyzF,GACrC,OAAO,IAAIl1F,MAAM,aAAaoB,MAhBhB7C,EAgBkCw5C,EAf5CvnC,MAAMie,QAAQlwB,GACT0iC,KAAKL,UAAUriC,GAEpBA,aAAiB8B,IACZ,QAEL9B,aAAiBq4B,IACZ,QAEY,iBAAVr4B,EACF0iC,KAAKL,UAAUriC,GAEjBsG,OAAOtG,UAG8CkD,IAAQ,CAClEyzF,UAjBJ,IAAgB32F,CAmBhB,CAuBSsuO,CAAW,YAAa90L,EAAKt2C,EAAMyzF,EAC5C,CAwFA,SAAS43I,GAAiBvuO,GACxB,GArGF,SAAsBA,GACpB,OAAOA,GAAS,iBAAmB,gBAAkBA,CACvD,CAmGMwuO,CAAaxuO,GACf,MAAMmmI,GAAenmI,EAAOkuO,IAE9B,OAAOluO,EAAMN,UACf,CA0BA,SAAS+uO,GAAYzuO,EAAOsqC,GAC1B,GAAItqC,EAAQ,EACV,OAAQyuO,IAAazuO,EAAOsqC,GAE9B,MAAMokM,EAAe9tO,KAAK+oC,IAAI,GAAIW,GAElC,GADsB1pC,KAAK6rF,IAAIzsF,EAAQ0uO,EAAe,EAAI,IAAOr3N,OAAOs3N,QACrD,CAEjB,MAAMC,EAAehuO,KAAK6lD,MAAMzmD,EAAQ0uO,GACxC,OAAQE,EAAe,GAAM,EAAIA,EAAeA,EAAe,GAAKF,CACtE,CAEE,OAAO9tO,KAAKgpC,MAAM5pC,EAAQ0uO,GAAgBA,CAE9C,CAoCA,SAASG,GAAiB7uO,GACxB,MAAM8uO,EAAeL,GAAYzuO,EAAO,GACxC,GAAIY,KAAK6lD,MAAM7lD,KAAK6rF,IAAIqiJ,IAAepvO,WAAWoE,OAAS,GACzD,MAAMqiI,GAAenmI,EAAOiuO,IAE9B,MAAM/7E,EAAc48E,EAAapvO,WACjC,OAAOwyJ,EAAYh4I,SAAS,KAAOg4I,EAAc,GAAGA,KACtD,CAEA,MAAM68E,GAAS,SAqCf,SAASC,GAAev3N,GACtB,MAAMzX,GALauG,EAKOkR,GAJZiZ,aAAenqB,EAAO7G,WAAW2H,MAAM,GAAI,GAD3D,IAAqBd,EAMnB,IAA6D,IAAzD,yCAAyCgrB,KAAKvxB,GAChD,MAAMmmI,GAAenmI,EAAOouO,IAE9B,OAAOpuO,CACT,CA6BA,SAASivO,GAAkBjvO,GACzB,cAAeA,GACb,IAAK,SACH,IAAKmxJ,EAAenxJ,GAClB,MAAMmmI,GAAenmI,EAAO8tO,IAE9B,OAAIz2N,OAAOk6B,UAAUvxC,GACZuuO,GAAiBvuO,GAEnB6uO,GAAiB7uO,GAC1B,IAAK,SACH,OAzDN,SAAyBA,GACvB,GAAImuO,GAAa58M,KAAKvxB,GACpB,MAAMmmI,GAAenmI,EAAO+uO,IAE9B,MAAO,IAAI/uO,EAAM47B,QAAQ,MAAO,QAAQA,QAAQ,KAAM,SACxD,CAoDaszM,CAAgBlvO,GACzB,IAAK,SACH,OAAOgvO,GAAehvO,GACxB,IAAK,UACH,OAvPN,SAA0BA,GACxB,GAAqB,kBAAVA,EACT,MAAMmmI,GAAenmI,EAAO+tO,IAE9B,OAAO/tO,EAAQ,KAAO,IACxB,CAkPamvO,CAAiBnvO,GAC1B,IAAK,SACH,GAAIA,aAAiB2nB,KACnB,OArKR,SAAuB3nB,GACrB,MAAO,IAAIuuO,GAAiBvuO,EAAMkjC,UAAY,MAChD,CAmKeksM,CAAcpvO,GAEvB,GAAIA,aAAiBm5G,WACnB,OAhNR,SAA+Bn5G,GAC7B,IAAkC,IAA9BgvI,YAAYqgG,OAAOrvO,GACrB,MAAMmmI,GAAenmI,EAAOguO,IAE9B,MAAO,IAhCah7L,EAgCIhzC,EA/BjBsvO,KAAKhpO,OAAO4sC,gBAAgBF,OADrC,IAAsBA,CAiCtB,CA2Meu8L,CAAsBvvO,GAE/B,GAAIA,aAAiB4tO,GACnB,OAAOoB,GAAehvO,GAE1B,QAEE,MAAMmmI,GAAenmI,EAAO8tO,IAElC,CAqBA,SAAS0B,GAAaxvO,GACpB,IAA6C,IAAzC,yBAAyBuxB,KAAKvxB,GAChC,MAAMmmI,GAAenmI,EAAOquO,IAE9B,OAAOruO,CACT,CA0BA,SAASyvO,GAAgBn3F,GACvB,OAAc,MAAVA,EACK,GAEFh5I,OAAOg/B,QAAQg6G,GAAQ5zI,KAAI,EAAErC,EAAKrC,MACzB,IAAVA,EACK,IAAIwvO,GAAantO,KAEnB,IAAImtO,GAAantO,MAAQ4sO,GAAkBjvO,OACjDgB,KAAK,GACV,CAgBA,SAAS0uO,GAAc1vO,GACrB,OAAIA,aAAiB2tO,GACZ,GAAGsB,GAAkBjvO,EAAMA,SAASyvO,GAAgBzvO,EAAMs4I,UAE1D22F,GAAkBjvO,EAE7B,CAsHA,MAAM2vO,GAAettO,GAAe,OAARA,GAAwB,OAARA,GAAwB,OAARA,EAEtD+qC,GAAUptC,GACO,iBAAVA,EACFmxJ,EAAenxJ,GAER,MAATA,GAA2B,KAAVA,IAA0B,IAAVA,EAiEpC4vO,GAAY5vO,GAASY,KAAKgpC,MAAM5pC,GAOhC6vO,GAAY7vO,GAAkC,IAAzB4vO,GAAU5vO,EAAQ,KAQvC8vO,GAAiB,CAIrBC,GAAIH,GAIJ1wN,EAAG0wN,GAIHI,GAAIH,GAIJI,GAAIJ,GAIJK,IAAKL,GAILM,IAtCgB,CAACnwO,EAAOyS,KACT,MAAXA,GAAmBA,EAAQ2/G,UAC7BpyH,EAtDJ,SAA2Bm5C,EAAKzlB,GAC9B,MAAMuM,EAAK,IAAIqS,IAAI6G,GACb1c,EAAO,IAAI6V,IAAI5e,GACrB,GAAIuM,EAAGoqC,SAAW5tC,EAAK4tC,OACrB,OAAOlxB,EAET,MAAMi3L,EAASnwM,EAAG08D,SAAS57F,MAAM,KAAKsG,MAAM,GACtCgpO,EAAW5zM,EAAKkgE,SAAS57F,MAAM,KAAKsG,MAAM,GAAI,GAEpD,KAAO+oO,EAAO,KAAOC,EAAS,IAC5BD,EAAOzqO,QACP0qO,EAAS1qO,QAGX,KAAO0qO,EAASvsO,QACdusO,EAAS1qO,QACTyqO,EAAOj7M,QAAQ,MAEjB,OAAOi7M,EAAOpvO,KAAK,IACrB,CAmCYsvO,CAAkBtwO,EAAOyS,EAAQ2/G,UAEpC7+D,mBAAmBvzD,IAsC1BuwO,IAAKV,GAILW,GAAIZ,IA+DN,SAASa,GAAWC,EAAMj+N,EAAU,CAAC,GACnC,OAAKi+N,EArMP,SAAsB1wO,EAAOyS,GAC3B,OAtCF,SAAuB4tN,EAAM5tN,EAAU,CACrC2sG,YAAY,IAEZ,GAAoB,iBAATihH,EACT,MAAMl6F,GAAek6F,EAAMwN,IAE7B,MAAMvvM,EAAU+hM,aAAgBv+N,IAAMu+N,EAAK/hM,UAAYh/B,OAAOg/B,QAAQ+hM,GAChEsQ,EAAgC,MAAXl+N,GAAmBA,EAAQ2sG,WAAa,IAAM,GACzE,OAAOntG,MAAMwqB,KAAK6B,GAAS55B,KAAI,EAAErC,EAAK42D,MAChCA,aAAgB00K,IAAW,IAC7B10K,EAAO,IAAI00K,GAAO10K,IAEpB,IAAIr5C,EAAS4vN,GAAantO,GAtD9B,IAA4BrC,EAiExB,OAVmB,IAAfi5D,EAAKj5D,MACP4f,GAAU6vN,GAAgBx2K,EAAKq/E,SAE/B14H,GAAU,IACN3N,MAAMie,QAAQ+oC,EAAKj5D,OACrB4f,GA3DC,KADmB5f,EA4DSi5D,GA3DlBj5D,MAAM0E,IAAIgrO,IAAe1uO,KAAK,QAAQyuO,GAAgBzvO,EAAMs4I,UA6DvE14H,GAAU8vN,GAAcz2K,IAGrBr5C,CAAM,IACZ5e,KAAK,IAAI2vO,IACd,CAaSC,CAAc5wO,EAAOyS,EAC9B,CAsMSo+N,CArDT,SAAqB/tO,EAAK2P,GACxB,MAAM26G,EAAU,CAAC,EACjB,GAAW,MAAPtqH,GAA8B,iBAARA,EACxB,OAAOsqH,EAET,MAAMtjH,EAAOxK,OAAOwK,KAAKhH,GAAKuhC,OACxBysM,EAAazhJ,EAAS,CAAC,EAAGygJ,GAA2B,MAAXr9N,OAAkB,EAASA,EAAQq+N,YAC7Er6N,EAAoB,MAAXhE,OAAkB,EAASA,EAAQgE,OA2BlD,OA1BA3M,EAAK3H,SAAQE,IACX,GAAc,MAAVoU,GAAkBA,EAAOpU,GAC3B,OAEF,IAAIrC,EAAQ8C,EAAIT,GAChB,MAAM2gH,EAAY8tH,EAAWzuO,GACzB2gH,IACFhjH,EAAQgjH,EAAUhjH,EAAOyS,IAGf,MAARpQ,GAAyB,IAAVrC,GAIR,MAAPqC,GAAyB,IAAVrC,GAIdotC,GAAQptC,KAGT2vO,GAAattO,IAAyB,iBAAVrC,IAC9BA,EAAQ,IAAI4tO,GAAQ5tO,IAEtBotH,EAAQ/qH,GAAOrC,EAAK,IAEfotH,CACT,CAkBsB2jH,CAAYL,EAAMj+N,GAAU48E,EAAS,CACvD+vB,YAAY,GACX3sG,IAJM,EAKX,CA0DA,MAsBMu+N,GAAQ,cA+sBd,SAASC,GAAqBnyD,EAAQoyD,EAAeC,EAAgBC,GAC9DtyD,GAGLx/K,OAAOwK,KAAKonO,GAAe/uO,SAAQojL,IACjC,MAAM8rD,EAAevyD,EAAOroK,QAAOqrJ,GAASA,EAAMsS,UAAYmR,IAAc7gL,KAAIo9J,IAC9E,MAAMwvE,EAAcjiJ,EAAS,CAAC,EAAGyyE,GAMjC,OALAwvE,EAAYn3M,aAAUt6B,EACtByxO,EAAY76F,MAAQ,IAAIkb,EAAS2/E,EAAY76F,OAC7C66F,EAAYn4L,IAAMm4L,EAAY76F,MAAM89B,IAAMg9D,GAAsBzvE,EAAM3oH,IAAK2oH,EAAMrrB,MAAM,uBAAwB,qBAAsB06F,GACrIG,EAAYl9D,QAAUk9D,EAAY76F,MAAM,YAAcy6F,EAAc3rD,GACpE+rD,EAAY76F,MAAM,cAAgB26F,EAC3BE,CAAW,IAEpBxyD,EAAOt5K,QAAQ6rO,EAAa,GAEhC,CACA,SAASE,GAAsBpjM,EAAKqjM,EAAUC,EAAcN,GAC1D,MACEO,KAAM/+L,EACNg/L,OAAQr5F,EACR,CAACm5F,GAAeG,GACdT,EACJ,IAAIU,EACAL,IACFK,EAAiC,MAAjBD,OAAwB,EAASA,EAAcJ,GAC3DK,IACF1jM,EAAM0jM,IAGV,MAAM14L,EAAM,IAAIlrB,KAAKqkB,IAAInE,GAWzB,OAVIwE,IAASk/L,IACX14L,EAAIxG,KAAOA,GAET2lG,GACFh5I,OAAOwK,KAAKwuI,GAAQj0G,OAAOliC,SAAQE,IAC7BA,GACF82C,EAAItsB,aAAavqB,IAAID,EAAKi2I,EAAOj2I,GACnC,IAGG82C,EAAI23E,IACb,CAEA,MAAMghH,GAAwB,uBAC9B,MAAMC,GACJ,WAAArjN,CAAYspC,GACVr0D,KAAKquO,cAAW,EAChBruO,KAAKsuO,oBAAiB,EACtBtuO,KAAKuuO,kBAAe,EACpBvuO,KAAKo3K,gBAAa,EAClBp3K,KAAKq0D,OAAS,KACdr0D,KAAKwuO,UAAY,KACjBxuO,KAAKiH,QAAU,KACfjH,KAAKsxJ,OAAS,KACdtxJ,KAAKgyJ,WAAQ,EACbhyJ,KAAKquO,SAAWh6K,GAASA,EAAOg6K,UAAmB,KACnDruO,KAAKgyJ,MAAQ,IAAItC,EACjB1vJ,KAAKo3K,WAAa,CACpB,CACA,OAAAnlG,GACEjyE,KAAKwuO,UAAY,KACjBxuO,KAAKyuO,gBACLzuO,KAAKsxJ,OAAS,KACdtxJ,KAAKq0D,OAAS,KACdr0D,KAAKiH,QAAU,KACfjH,KAAKquO,SAAW,IAClB,CACA,aAAAI,GACE,MAAMn9E,EAAStxJ,KAAKsxJ,OACpBhnI,KAAKi+B,aAAavoD,KAAKsuO,gBACvBhkN,KAAKi+B,aAAavoD,KAAKuuO,cACnBj9E,IACFA,EAAOy3E,mBAAqB,KAC5Bz3E,EAAOo9E,WAAa,KACM,IAAtBp9E,EAAOq0C,aACT3lM,KAAKgyJ,MAAMrC,SAAU,EACrB2B,EAAO7oJ,SAGb,CACA,KAAAA,GACE,IAAIkmO,EACJ3uO,KAAKyuO,gBACqC,OAArCE,EAAkB3uO,KAAKwuO,YAAsBG,EAAgBhiO,SAChE3M,KAAKwuO,UAAU7hO,QAAQ3M,KAAKgyJ,MAAOhyJ,KAAKiH,QAASjH,KAAKsxJ,OAE1D,CACA,IAAAloE,CAAKniF,EAASotD,EAAQm6K,GACpB,GAAIxuO,KAAKgyJ,MAAMtvC,QAAQzpE,MACrB,MAAM,IAAIn7C,MAAM,iCAElBkC,KAAKgyJ,MAAMtvC,QAAQzpE,MAAQ3uB,KAAKrS,YAAYgM,MAC5CjkB,KAAKiH,QAAUA,EACfjH,KAAKq0D,OAASA,EACdr0D,KAAKwuO,UAAYA,EACjBxuO,KAAK4uO,cACP,CACA,YAAAA,GACE,MAAM,OACJv6K,EAAM,QACNptD,GACEjH,KACJ,IAAKq0D,IAAWptD,EACd,OAEF,MAAMghO,EAAMjoO,KAAKsxJ,OAAS,IAAIhnI,KAAKw+M,eAC7B92E,EAAQhyJ,KAAKgyJ,MACnBA,EAAMtvC,QAAQxtF,MAAQ,EACtB88H,EAAMpC,OAAS,EACfoC,EAAMrC,SAAU,EAChB,MAAM0+E,EAAWruO,KAAKquO,SAClBA,EACFltO,QAAQC,UAAUuD,MAAK,KACrB,GAAI3E,KAAKsxJ,SAAW22E,IAAOjoO,KAAKgyJ,MAAMrC,QACtC,OAAO0+E,EAASpG,EAAKhhO,EAAQuuC,IAAI,IAChCosF,OAAMh9H,IACP,GAAI5E,KAAKsxJ,SAAW22E,IAAOjoO,KAAKgyJ,MAAMrC,QAEtC,OADAs4E,EAAIn2J,KAAK,MAAO7qE,EAAQuuC,KAAK,GACtB64L,EAASpG,EAAKhhO,EAAQuuC,IAAI,IAChC7wC,MAAK,KACF3E,KAAKsxJ,SAAW22E,GAAOjoO,KAAKgyJ,MAAMrC,SACtC3vJ,KAAK6uO,eAAe5G,EAAKhhO,EAASotD,EAAO,IACxCutE,OAAMh9H,IAEP5E,KAAKwuO,UAAUvhO,QAAQ,CACrBpQ,KAAMorO,EAAI77N,OACVqqC,KAAM7xC,EAAM+Y,SACX1W,EAASghO,EAAKj2E,EACX,IAGRhyJ,KAAK6uO,eAAe5G,EAAKhhO,EAASotD,EAEtC,CACA,cAAAw6K,CAAe5G,EAAKhhO,EAASotD,GACtB4zK,EAAItiC,YACPsiC,EAAIn2J,KAAK,MAAO7qE,EAAQuuC,KAAK,GAE/B,MAAMmgD,EAAU1uF,EAAQ0uF,SAClB,qBACJmhF,EAAoB,cACpBC,GACE1iH,EAAO8hH,WACX,GAAIxgF,EACF,IAAK,MAAMqoD,KAAUroD,EACnBsyI,EAAIG,iBAAiBpqF,EAAQroD,EAAQqoD,IAGrC/2I,EAAQqvL,UACV2xC,EAAIG,iBAAiB,QAAS,SAAWnhO,EAAQovL,WAAa,KAAOpvL,EAAQqvL,SAAW,IAE1F2xC,EAAIc,mBAAqB/oO,KAAK8uO,iBAAiB9/N,KAAKhP,MACpDioO,EAAIyG,WAAa1uO,KAAK+uO,aAAa//N,KAAKhP,MACxCioO,EAAIjyD,aAAe/uK,EAAQ+uK,aAE3B1rJ,KAAKi+B,aAAavoD,KAAKsuO,gBACvBj6K,EAAOwJ,QAAUi5G,GAAwBtpB,EAAespB,GAAwBA,EAAuBC,EACvG/2K,KAAKsuO,eAAiBhkN,KAAK89B,WAAWpoD,KAAKgvO,YAAYhgO,KAAKhP,MAAOq0D,EAAOwJ,SAC1EoqK,EAAI5lJ,MACN,CACA,gBAAAysJ,GACE,MAAM,QACJ7nO,EACAqqJ,OAAQ22E,EAAG,MACXj2E,GACEhyJ,KACJ,IAAKiH,IAAYghO,EACf,OAEF,MAAMtiC,EAAasiC,EAAItiC,WACjBtxI,EAASr0D,KAAKq0D,OAGpB,IAAI29F,EAAMrC,SAKNg2C,GAAc,IACY,IAAxB3zC,EAAMtvC,QAAQxtF,QAChB88H,EAAMtvC,QAAQxtF,MAAQj4B,KAAKmrB,IAAIkC,KAAKrS,YAAYgM,MAAO+tI,EAAMtvC,QAAQzpE,OAEjEob,EAAOwJ,UAAYxJ,EAAO8hH,WAAWY,gBACvCzsJ,KAAKi+B,aAAavoD,KAAKsuO,gBACvBj6K,EAAOwJ,QAAUxJ,EAAO8hH,WAAWY,cACnC/2K,KAAKsuO,eAAiBhkN,KAAK89B,WAAWpoD,KAAKgvO,YAAYhgO,KAAKhP,MAAOq0D,EAAO8hH,WAAWY,eAAiB/kB,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQzpE,UAG3H,IAAf0sJ,GAAkB,CACpBr7K,KAAKi+B,aAAavoD,KAAKsuO,gBACvBrG,EAAIc,mBAAqB,KACzBd,EAAIyG,WAAa,KACjB,MAAMtiO,EAAS67N,EAAI77N,OAEb6iO,EAAuC,SAArBhH,EAAIjyD,aAA0BiyD,EAAIiH,aAAe,KACzE,GAAI9iO,GAAU,KAAOA,EAAS,IAAK,CACjC,MAAMxC,EAA0B,MAAnBqlO,EAA0BA,EAAkBhH,EAAI1hO,SAC7D,GAAY,MAARqD,EAAc,CAChBooJ,EAAMtvC,QAAQ11G,IAAM/P,KAAKmrB,IAAIkC,KAAKrS,YAAYgM,MAAO+tI,EAAMtvC,QAAQxtF,OACnE,MAAMnxB,EAA2B,gBAArBkkO,EAAIjyD,aAAiCpsK,EAAK0sG,WAAa1sG,EAAKzJ,OAGxE,GAFA6xJ,EAAMpC,OAASoC,EAAMlC,MAAQ/rJ,EAC7BiuJ,EAAMhC,WAA2B,IAAdgC,EAAMlC,OAAgBkC,EAAMtvC,QAAQ11G,IAAMglJ,EAAMtvC,QAAQxtF,QACtEl1B,KAAKwuO,UACR,OAEF,MAAM35C,EAAa70L,KAAKwuO,UAAU35C,WAIlC,GAHIA,GACFA,EAAW7iC,EAAO/qJ,EAAS2C,EAAMq+N,IAE9BjoO,KAAKwuO,UACR,OAEF,MAAMW,EAAY,CAChB35L,IAAKyyL,EAAImH,YACTxlO,KAAMA,EACN/M,KAAMuP,GAGR,YADApM,KAAKwuO,UAAU3lF,UAAUsmF,EAAWn9E,EAAO/qJ,EAASghO,EAEtD,CACF,CAGA,MAAMtkD,EAActvH,EAAO8hH,WAAWK,WAQlCyN,GAAYN,EAPG3xB,EAAMnC,OAOgB,EALxB,CACfr6G,IAAKvuC,EAAQuuC,IACb5rC,UAAM1N,EACNW,KAAMuP,IAGNpM,KAAK6vJ,MAAM8zB,IAEX7iG,EAAOl8E,MAAM,GAAGwH,mBAAwBnF,EAAQuuC,OAChDx1C,KAAKwuO,UAAUvhO,QAAQ,CACrBpQ,KAAMuP,EACNqqC,KAAMwxL,EAAIgB,YACThiO,EAASghO,EAAKj2E,GAErB,CAEJ,CACA,WAAAg9E,GACE,IAAKhvO,KAAKq0D,OAAQ,OAClB,MAAMsvH,EAAc3jL,KAAKq0D,OAAO8hH,WAAWI,aAE3C,GAAI0N,GAAYN,EADG3jL,KAAKgyJ,MAAMnC,OACW,GACvC7vJ,KAAK6vJ,MAAM8zB,OACN,CACL,IAAI0rD,EACJvuJ,EAAO/jD,KAAK,yBAA2D,OAAjCsyM,EAAgBrvO,KAAKiH,cAAmB,EAASooO,EAAc75L,OACrG,MAAMg5L,EAAYxuO,KAAKwuO,UACnBA,IACFxuO,KAAKyuO,gBACLD,EAAU12D,UAAU93K,KAAKgyJ,MAAOhyJ,KAAKiH,QAASjH,KAAKsxJ,QAEvD,CACF,CACA,KAAAzB,CAAM8zB,GACJ,MAAM,QACJ18K,EAAO,MACP+qJ,GACEhyJ,KACJA,KAAKo3K,WAAasM,GAAcC,EAAa3xB,EAAMnC,OACnDmC,EAAMnC,QACN/uE,EAAO/jD,KAAK,GAAG3wB,OAAS,eAAiBA,OAAS,2BAAsC,MAAXnF,OAAkB,EAASA,EAAQuuC,iBAAiBw8G,EAAMnC,SAAS8zB,EAAYxM,kBAAkBn3K,KAAKo3K,gBAEnLp3K,KAAKyuO,gBACLzuO,KAAKsxJ,OAAS,KAEdhnI,KAAKi+B,aAAavoD,KAAKuuO,cACvBvuO,KAAKuuO,aAAejkN,KAAK89B,WAAWpoD,KAAK4uO,aAAa5/N,KAAKhP,MAAOA,KAAKo3K,WACzE,CACA,YAAA23D,CAAa/oL,GACX,MAAMgsG,EAAQhyJ,KAAKgyJ,MACnBA,EAAMpC,OAAS5pG,EAAM4pG,OACjB5pG,EAAMspL,mBACRt9E,EAAMlC,MAAQ9pG,EAAM8pG,MAExB,CACA,WAAA2pB,GACE,IAAI98K,EAAS,KACb,GAAIqD,KAAKsxJ,QAAU68E,GAAsBvgN,KAAK5tB,KAAKsxJ,OAAOi+E,yBAA0B,CAClF,MAAMj7E,EAAYt0J,KAAKsxJ,OAAOk+E,kBAAkB,OAChD7yO,EAAS23J,EAAYh1H,WAAWg1H,GAAa,IAC/C,CACA,OAAO33J,CACT,CACA,iBAAA6yO,CAAkBpnO,GAChB,OAAIpI,KAAKsxJ,QAAU,IAAI95H,OAAO,IAAIpvB,qBAAyB,MAAMwlB,KAAK5tB,KAAKsxJ,OAAOi+E,yBACzEvvO,KAAKsxJ,OAAOk+E,kBAAkBpnO,GAEhC,IACT,EAgBF,MAAMgsK,GAAY,qBAClB,MAAMq7D,GACJ,WAAA1kN,CAAYspC,GACVr0D,KAAK0vO,gBAAa,EAClB1vO,KAAKsuO,oBAAiB,EACtBtuO,KAAK2vO,QAAU,KACf3vO,KAAKuG,SAAW,KAChBvG,KAAK67H,gBAAa,EAClB77H,KAAKiH,QAAU,KACfjH,KAAKq0D,OAAS,KACdr0D,KAAKwuO,UAAY,KACjBxuO,KAAKgyJ,WAAQ,EACbhyJ,KAAKsxJ,OAAS,KACdtxJ,KAAK0vO,WAAar7K,EAAOq7K,YAAcE,GACvC5vO,KAAK67H,WAAa,IAAIvxG,KAAKulN,gBAC3B7vO,KAAKgyJ,MAAQ,IAAItC,CACnB,CACA,OAAAz9E,GACEjyE,KAAKsxJ,OAAStxJ,KAAKwuO,UAAYxuO,KAAKiH,QAAUjH,KAAKq0D,OAASr0D,KAAK2vO,QAAU,KAC3E3vO,KAAKyuO,gBACLzuO,KAAKuG,SAAW,KAEhBvG,KAAK0vO,WAAa1vO,KAAK67H,WAAa77H,KAAKgyJ,MAAQ,IACnD,CACA,aAAAy8E,GACMzuO,KAAK67H,aAAe77H,KAAKgyJ,MAAMtvC,QAAQ11G,MACzChN,KAAKgyJ,MAAMrC,SAAU,EACrB3vJ,KAAK67H,WAAWpzH,QAEpB,CACA,KAAAA,GACE,IAAIkmO,EACJ3uO,KAAKyuO,gBACqC,OAArCE,EAAkB3uO,KAAKwuO,YAAsBG,EAAgBhiO,SAChE3M,KAAKwuO,UAAU7hO,QAAQ3M,KAAKgyJ,MAAOhyJ,KAAKiH,QAASjH,KAAKuG,SAE1D,CACA,IAAA6iF,CAAKniF,EAASotD,EAAQm6K,GACpB,MAAMx8E,EAAQhyJ,KAAKgyJ,MACnB,GAAIA,EAAMtvC,QAAQzpE,MAChB,MAAM,IAAIn7C,MAAM,iCAElBk0J,EAAMtvC,QAAQzpE,MAAQ3uB,KAAKrS,YAAYgM,MACvC,MAAM6rN,EAgIV,SAA8B7oO,EAAS8oO,GACrC,MAAMD,EAAa,CACjBtiN,OAAQ,MACRg9C,KAAM,OACNwlK,YAAa,cACbD,SACAp6I,QAAS,IAAIrrE,KAAK2lN,QAAQvkJ,EAAS,CAAC,EAAGzkF,EAAQ0uF,WAKjD,OAHI1uF,EAAQqvL,UACVw5C,EAAWn6I,QAAQh3F,IAAI,QAAS,SAAWsI,EAAQovL,WAAa,IAAM1zL,OAAOsE,EAAQqvL,SAAW,IAE3Fw5C,CACT,CA5IuBI,CAAqBjpO,EAASjH,KAAK67H,WAAWk0G,QAC3Dl7C,EAAa25C,EAAU35C,WACvBs7C,EAAyC,gBAAzBlpO,EAAQ+uK,aACxBo6D,EAASD,EAAgB,aAAe,UACxC,qBACJr5D,EAAoB,cACpBC,GACE1iH,EAAO8hH,WACXn2K,KAAKiH,QAAUA,EACfjH,KAAKq0D,OAASA,EACdr0D,KAAKwuO,UAAYA,EACjBxuO,KAAK2vO,QAAU3vO,KAAK0vO,WAAWzoO,EAAS6oO,GACxCxlN,KAAKi+B,aAAavoD,KAAKsuO,gBACvBj6K,EAAOwJ,QAAUi5G,GAAwBtpB,EAAespB,GAAwBA,EAAuBC,EACvG/2K,KAAKsuO,eAAiBhkN,KAAK89B,YAAW,KACpCpoD,KAAKyuO,gBACLD,EAAU12D,UAAU9lB,EAAO/qJ,EAASjH,KAAKuG,SAAS,GACjD8tD,EAAOwJ,SACVvzC,KAAK8wH,MAAMp7I,KAAK2vO,SAAShrO,MAAK4B,IAC5BvG,KAAKuG,SAAWvG,KAAKsxJ,OAAS/qJ,EAC9B,MAAM2uB,EAAQj4B,KAAKmrB,IAAIkC,KAAKrS,YAAYgM,MAAO+tI,EAAMtvC,QAAQzpE,OAO7D,GANA3uB,KAAKi+B,aAAavoD,KAAKsuO,gBACvBj6K,EAAOwJ,QAAUk5G,EACjB/2K,KAAKsuO,eAAiBhkN,KAAK89B,YAAW,KACpCpoD,KAAKyuO,gBACLD,EAAU12D,UAAU9lB,EAAO/qJ,EAASjH,KAAKuG,SAAS,GACjDwwK,GAAiB7hJ,EAAQ88H,EAAMtvC,QAAQzpE,SACrC1yC,EAASwgI,GAAI,CAChB,MAAM,OACJ36H,EAAM,WACN68N,GACE1iO,EACJ,MAAM,IAAI8pO,GAAWpH,GAAc,8BAA+B78N,EAAQ7F,EAC5E,CAGA,OAFAyrJ,EAAMtvC,QAAQxtF,MAAQA,EACtB88H,EAAMlC,MAgHZ,SAA0Bn6D,GACxB,MAAM26I,EAAe36I,EAAQtkF,IAAI,iBACjC,GAAIi/N,EAAc,CAChB,MAAMC,EATV,SAA4BC,GAC1B,MAAM7zO,EAASy3K,GAAU5yK,KAAKgvO,GAC9B,GAAI7zO,EACF,OAAOipC,SAASjpC,EAAO,IAAMipC,SAASjpC,EAAO,IAAM,CAEvD,CAI4B8zO,CAAmBH,GAC3C,GAAI9iF,EAAe+iF,GACjB,OAAOA,CAEX,CACA,MAAMG,EAAgB/6I,EAAQtkF,IAAI,kBAClC,GAAIq/N,EACF,OAAO9qM,SAAS8qM,EAEpB,CA5HoBC,CAAiBpqO,EAASovF,UAAYq8D,EAAMlC,MACtD+kC,GAAcrnC,EAAen5F,EAAOihI,eAC/Bt1L,KAAK4wO,kBAAkBrqO,EAAUyrJ,EAAO/qJ,EAASotD,EAAOihI,cAAeT,GAE5Es7C,EACK5pO,EAASyxL,cAEW,SAAzB/wL,EAAQ+uK,aACHzvK,EAAS8pF,OAEX9pF,EAASkwC,MAAM,IACrB9xC,MAAKksO,IACN,MAAMtqO,EAAWvG,KAAKuG,SACtB,IAAKA,EACH,MAAM,IAAIzI,MAAM,oBAElBwsB,KAAKi+B,aAAavoD,KAAKsuO,gBACvBt8E,EAAMtvC,QAAQ11G,IAAM/P,KAAKmrB,IAAIkC,KAAKrS,YAAYgM,MAAO+tI,EAAMtvC,QAAQxtF,OACnE,MAAM46H,EAAQ+gF,EAAaT,GACvBtgF,IACFkC,EAAMpC,OAASoC,EAAMlC,MAAQA,GAE/B,MAAMo0B,EAAiB,CACrB1uI,IAAKjvC,EAASivC,IACd5rC,KAAMinO,EACNh0O,KAAM0J,EAAS6F,QAEbyoL,IAAernC,EAAen5F,EAAOihI,gBACvCT,EAAW7iC,EAAO/qJ,EAAS4pO,EAActqO,GAE3CioO,EAAU3lF,UAAUq7B,EAAgBlyB,EAAO/qJ,EAASV,EAAS,IAC5Dq7H,OAAMh9H,IAEP,GADA0lB,KAAKi+B,aAAavoD,KAAKsuO,gBACnBt8E,EAAMrC,QACR,OAIF,MAAM9yJ,EAAQ+H,GAAYA,EAAM/H,MAAV,EAChB45C,EAAQ7xC,EAAeA,EAAM+Y,QAAb,KACtB6wN,EAAUvhO,QAAQ,CAChBpQ,OACA45C,QACCxvC,EAASrC,EAAQA,EAAM4xB,QAAU,KAAMw7H,EAAM,GAEpD,CACA,WAAAynB,GACE,IAAI98K,EAAS,KACb,GAAIqD,KAAKuG,SAAU,CACjB,MAAM+tJ,EAAYt0J,KAAKuG,SAASovF,QAAQtkF,IAAI,OAC5C1U,EAAS23J,EAAYh1H,WAAWg1H,GAAa,IAC/C,CACA,OAAO33J,CACT,CACA,iBAAA6yO,CAAkBpnO,GAChB,OAAOpI,KAAKuG,SAAWvG,KAAKuG,SAASovF,QAAQtkF,IAAIjJ,GAAQ,IAC3D,CACA,iBAAAwoO,CAAkBrqO,EAAUyrJ,EAAO/qJ,EAASquL,EAAgB,EAAGT,GAC7D,MAAMi8C,EAAa,IAAIzoC,GACjB0oC,EAASxqO,EAAS4vC,KAAK66L,YACvBC,EAAO,IACJF,EAAOG,OAAOvsO,MAAKiF,IACxB,GAAIA,EAAK7B,KAIP,OAHI+oO,EAAWvoC,YACb1T,EAAW7iC,EAAO/qJ,EAAS6pO,EAAWhvO,QAASyE,GAE1CpF,QAAQC,QAAQ,IAAIiqI,YAAY,IAEzC,MAAMm9D,EAAQ5+L,EAAKvN,MACb0H,EAAMykM,EAAMroM,OAelB,OAdA6xJ,EAAMpC,QAAU7rJ,EACZA,EAAMuxL,GAAiBw7C,EAAWvoC,YAGpCuoC,EAAWjvO,KAAK2mM,GACZsoC,EAAWvoC,YAAcjT,GAE3BT,EAAW7iC,EAAO/qJ,EAAS6pO,EAAWhvO,QAASyE,IAKjDsuL,EAAW7iC,EAAO/qJ,EAASuhM,EAAOjiM,GAE7B0qO,GAAM,IACZrvG,OAAM,IAEAzgI,QAAQE,WAGnB,OAAO4vO,GACT,EAkCF,SAASrB,GAAW3oO,EAAS6oO,GAC3B,OAAO,IAAIxlN,KAAK6mN,QAAQlqO,EAAQuuC,IAAKs6L,EACvC,CACA,MAAMO,WAAmBvyO,MACvB,WAAAitB,CAAYpN,EAAS9gB,EAAM25B,GACzB+B,MAAM5a,GACN3d,KAAKnD,UAAO,EACZmD,KAAKw2B,aAAU,EACfx2B,KAAKnD,KAAOA,EACZmD,KAAKw2B,QAAUA,CACjB,EAGF,MAAM46M,GAAkB,KAClBC,GAAO,CACX,MAAApd,CAAO91D,EAAOj/I,EAAW0lD,EAAS0sK,GAChC,MAAM30O,EAAS,GACf,IAAIg0N,EAEAx2C,EACAo3D,EACAzgB,EACAr6K,EACJ,MAAMglI,EAAMnxJ,KAAKixJ,QAAUjxJ,KAAKkwJ,aAChC,IAAK,IAAIp2K,EAAI,EAAGA,EAAIktO,EAAcnhB,KAAKhwN,OAAQiE,IAK7C,GAJAusN,EAAM2gB,EAAcnhB,KAAK/rN,GACzBmtO,GAAY,EACZzgB,EAAS,EACTr6K,EAAO,IACFk6K,EAAInnN,UAAW,CAClB,IAAIgoO,EACJ,IAAK,IAAI/mN,EAAI,EAAGA,EAAIkmM,EAAIxmF,MAAMhqI,OAAQsqB,IAChC2mN,GAAgBxjN,KAAK+iM,EAAIxmF,MAAM1/G,GAAGqkM,QAAUyiB,EAC9CzgB,KAEAr6K,GAAQk6K,EAAIxmF,MAAM1/G,GAAGqkM,MACrByiB,GAAY,GAIhB5gB,EAAItB,aAAenwM,EAGfA,IAAc0lD,IAChBA,GAAW,MAETksJ,GAAU,GACZA,IAEAA,IAEF,MAAM6K,EAAUrC,GAAc7iL,EAAKve,QAC7BhrB,EAAKgtN,GAAch7M,EAAW0lD,EAAS+2J,GAG9B,MAATx9D,GAA+C,OAA7BqzE,EAAcrzE,EAAMic,OAAiBo3D,EAAYn3D,WAAWntK,KAClFitK,EAAM,IAAIsB,EAAIv8J,EAAW0lD,EAAS+2J,GAClCxhD,EAAIjtK,GAAKA,EACTitK,EAAI++C,KAAO90N,EAAI,EACf+1K,EAAIu+C,MAAQ,OAIZv+C,EAAIjjI,SAAW,GAAKj6C,KAAK6+B,IAAI,GAAkC,GAA9B7+B,KAAK6lD,MAAe,EAATguK,EAAa,KACzDn0N,EAAOkF,KAAKs4K,GAEhB,CAeF,OAbIhc,GAASxhK,EAAOwD,SAElBxD,EAAO+jC,MAAK,CAAC+wM,EAAMC,IACC,SAAdD,EAAKvY,MAAiC,SAAdwY,EAAKxY,KACxB,EAELuY,EAAKvY,KAAO,GAAKwY,EAAKxY,KAAO,EACxBwY,EAAKxY,KAAOuY,EAAKvY,KAEnBuY,EAAKvY,KAAOwY,EAAKxY,OAE1Bv8N,EAAO6B,SAAQ27K,GAAOD,GAAc/b,EAAOgc,MAEtCx9K,CACT,GAwBIg1O,GAAmBtkF,EAAeA,EAAe,CACrD8wC,eAAe,EAEfrpB,eAAgB,EAEhB88D,uBAAmB11O,EAEnBkyB,OAAO,EAEPyjN,mBAAmB,EAEnBnT,sBAAsB,EAEtBc,wBAAwB,EAExBh3D,0BAA0B,EAC1B27B,wBAAyB,EAEzB5E,gBAAiB,GAEjBuyC,iBAAkB1sJ,IAElB2sJ,0BAA2B3sJ,IAC3Bw+G,cAAe,IAEfvF,cAAe,GAEf2zC,yBAA0B,EAE1BC,YAAa,GAEbC,cAAe,EAEfltD,uBAAwB,IAExBnG,sBAAuB,EAEvBH,4BAA6Bt5F,IAE7Bw5F,sBAAkB1iL,EAElBuiL,4BAAwBviL,EAExB0jL,wBAAyB,EAEzBuyD,sBAAsB,EAKtBC,qBAAsB,KAEtBvuC,mBAAoB,IAEpB2lB,cAAc,EAEdI,WAAY,KAEZtuB,mBAAmB,EAEnB+2C,gBAAYn2O,EAEZo2O,mBAAmB,EAEnBC,2BAA4B,IAE5BC,8BAA+B,GAE/BC,oBAAqB,EAErBnhF,OAAQ88E,GAERn5C,aAAS/4L,EAET05K,aAAS15K,EAETmyO,cAAUnyO,EAEVimO,qBAAiBjmO,EAEjBkmO,6BAAyBlmO,EAEzBw2O,cA58jBF,MACE,WAAA3nN,CAAY4nN,GACV3yO,KAAK00K,SAAM,EACX10K,KAAK4yO,iBAAmB,EACxB5yO,KAAK6yO,qBAAuB,EAC5B7yO,KAAK8yO,gBAAkB,EACvB9yO,KAAK+yO,gBAAkB,EACvB/yO,KAAKgzO,iBAAmB,GACxBhzO,KAAK8rL,mBAAqB,KAC1B9rL,KAAKizO,WAAa,KAClBjzO,KAAK6lL,OAAS,EACd7lL,KAAK08L,YAAc,KACnB18L,KAAKkzO,YAAc,KACnBlzO,KAAKmzO,iBAAmB,EACxBnzO,KAAKozO,iBAAc,EAKnBpzO,KAAKqzO,mBAAqB,KACxB,MACE32C,YAAarpC,EACb6/E,YAAa/lM,EAAI,IACjBunI,GACE10K,MACE,iBACJszO,EAAgB,MAChB9iE,GACEkE,EACJ,IAAKrhB,IAASmd,EACZ,OAEF,MAAMvsJ,EAAMhM,YAAYgM,MAClB+tI,EAAQ7kH,EAAOA,EAAK6kH,MAAQqB,EAAKrB,MACjC3wF,EAAWl0B,EAAOA,EAAKk0B,SAAWgyF,EAAKhyF,SACvCkyK,EAActvN,EAAM+tI,EAAMtvC,QAAQzpE,MAClCu6L,EAAe9+D,EAAI8+D,aAEzB,GAAIxhF,EAAMrC,SAAWqC,EAAMpC,QAAUoC,EAAMpC,SAAWoC,EAAMlC,OAASuD,EAAK9oF,OAASipK,EAIjF,OAHAxzO,KAAKgmL,kBAELhmL,KAAK+yO,gBAAkB,GAKzB,IAAKO,GAAoB9iE,EAAMijE,SAAWjjE,EAAMsP,eAAiBtP,EAAMm1B,WACrE,OAEF,MAAMnd,EAAa9T,EAAI+T,sBACvB,GAAmB,OAAfD,EACF,OAEF,MAAMkrD,EAAe1zO,KAAKozO,YAAY9nD,kBAChCxL,EAAe7iL,KAAK6rF,IAAI0nF,EAAMsP,cAEpC,GAAIyzD,GAAet2O,KAAKmrB,IAAIsrN,EAAsBryK,GAA2B,EAAfy+G,GAApB,KACxC,OAIF,MAAM6zD,EAAwBnrD,EAAWzkL,IAAM+7K,EACzCqL,EAAOn5B,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQzpE,OAAS,EAC1E26L,EAAkB5hF,EAAMpC,QAAUu7B,GAAQ,EAC1Cn7B,EAAahwJ,KAAK6zO,gBAClBtlE,EAASmG,EAAInG,OACbhkG,EAAQgkG,EAAOlb,EAAK9oF,OACpBupK,EAAc9hF,EAAMlC,OAAS7yJ,KAAKmrB,IAAI4pI,EAAMpC,OAAQ3yJ,KAAKgpC,MAAMo7B,EAAWkJ,EAAM42G,eAAiB,IACvG,IAAI4yD,EAAgBH,EAAkBL,EAAcpoD,EAAOooD,EACvDQ,EAAgB,GAAKH,IACvBG,EAAgB92O,KAAK6+B,IAAIy3M,EAA4B,EAAfvhF,EAAMpC,OAAaI,IAE3D,MAAMgkF,EAAWJ,EAAiC,IAAf5hF,EAAMpC,OAAgBmkF,EAAgB,EAEnEE,EAAkBD,GAAYF,EAAc9hF,EAAMpC,QAAUokF,EAAyB,EAAdF,EAAkB9jF,EAAa0jF,EAAe,IAE3H,GAAIO,GAAmBN,EACrB,OAEF,MAAMO,EAAMF,EAAsB,EAAXA,EAAehkF,EACtC,IACImkF,EADAC,EAA2B1gO,OAAOioK,kBAGtC,IAAKw4D,EAAgB9gF,EAAK9oF,MAAQ,EAAG4pK,EAAgBX,EAAcW,IAAiB,CAGlF,MAAME,EAAmB9lE,EAAO4lE,GAAejzD,WAE/C,GADAkzD,EAA2Bp0O,KAAKs0O,kBAAkBZ,EAAe,IAAMQ,EAAK7yK,EAAWgzK,GAAmB9lE,EAAO4lE,GAAe39M,SAC5H49M,EAA2BT,EAC7B,KAEJ,CAGA,GAAIS,GAA4BH,EAC9B,OAIF,GAAIG,EAAsC,GAAX/yK,EAC7B,OAEFqzG,EAAIy/D,cAAgBz/D,EAAI6/D,cAAgBJ,EACpCP,EAEF5zO,KAAKozO,YAAYvpD,OAAO0pD,EAAct2O,KAAK6+B,IAAI43M,EAAcvoD,GAAOn5B,EAAMpC,QAG1E5vJ,KAAKozO,YAAYloD,WAAWqoD,GAE9B,MAAMiB,EAAuBjmE,EAAO4lE,GAAejzD,WAC/ClhL,KAAK6zO,gBAAkB7zO,KAAK00K,IAAIrgH,OAAOogL,qBAAuBD,GAChEx0O,KAAK00O,eAAeF,GAEtBx0O,KAAKgmL,aACLllG,EAAO/jD,KAAK,kBAAkBs2H,EAAKjC,KAAKjkH,EAAO,SAAWA,EAAK15B,MAAQ,eAAe4/I,EAAK9oF,4DACpEopK,EAAsB/pK,QAAQ,yDACTqqK,EAAgBrqK,QAAQ,6DACpBwqK,EAAyBxqK,QAAQ,8BACzD,EAAPuhH,oCACM39B,EAAewC,GAA2B,EAAbA,EAAiB,yCAC3B,EAAvBhwJ,KAAK6zO,iDACHM,OAA0C,EAAvBK,SACxC9/D,EAAIrrE,QAAQokD,EAAOknF,4BAA6B,CAC9CthF,OACAlmH,OACA6kH,SACA,EAEJhyJ,KAAK00K,IAAMi+D,EACX3yO,KAAKozO,YAAcpzO,KAAK40O,gBACxB50O,KAAK40K,mBACP,CACA,cAAA8/D,CAAeG,GACTA,IACF/zJ,EAAO31C,IAAI,0BAA0B0pM,KACrC70O,KAAK00K,IAAIrgH,OAAOwgL,uBAAyBA,GAE3C70O,KAAK8yO,gBAAkB,EACvB9yO,KAAKozO,YAAcpzO,KAAK40O,eAC1B,CACA,aAAAA,GACE,MAAMvgL,EAASr0D,KAAK00K,IAAIrgH,OACxB,OAAO,IAAI61H,GAAuB71H,EAAOygL,eAAgBzgL,EAAO0gL,eAAgB1gL,EAAOwgL,uBACzF,CACA,iBAAAjgE,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOo0C,aAAc7hM,KAAKg1O,cAAeh1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,MAC9C00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MAClD00K,EAAI1yF,GAAGyrE,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACtD00K,EAAI1yF,GAAGyrE,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACpD00K,EAAI1yF,GAAGyrE,EAAO2nF,uBAAwBp1O,KAAKq1O,sBAAuBr1O,MAClE00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACrC,CACA,mBAAAy1K,GACE,MAAM,IACJf,GACE10K,KACC00K,IAGLA,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOo0C,aAAc7hM,KAAKg1O,cAAeh1O,MACjD00K,EAAI57E,IAAI20D,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,MAC/C00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MACnD00K,EAAI57E,IAAI20D,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACvD00K,EAAI57E,IAAI20D,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MACjD00K,EAAI57E,IAAI20D,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACrD00K,EAAI57E,IAAI20D,EAAO2nF,uBAAwBp1O,KAAKq1O,sBAAuBr1O,MACnE00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACtC,CACA,OAAAiyE,GACEjyE,KAAKy1K,sBACLz1K,KAAKgmL,aAELhmL,KAAK00K,IAAM10K,KAAKqzO,mBAAqB,KACrCrzO,KAAK08L,YAAc18L,KAAKkzO,YAAc,IACxC,CACA,iBAAAh+D,CAAkBlvH,EAAOp8C,GACvB5J,KAAK6yO,qBAAuB,EAC5B7yO,KAAK8yO,gBAAkB,EACvB9yO,KAAK4yO,iBAAmB,EACxB5yO,KAAK08L,YAAc18L,KAAKkzO,YAAc,KACtClzO,KAAKm+N,kBACLn+N,KAAKgmL,YACP,CACA,eAAAm4C,GACMn+N,KAAK6yO,qBAAuB,GAAK7yO,KAAK08L,cACxC18L,KAAK6yO,oBAAsB7yO,KAAK08L,YAAYnyH,OAE9CvqE,KAAK+yO,gBAAkB,EACvB/yO,KAAKq1O,wBACLr1O,KAAKizO,WAAa,KAClBjzO,KAAK8rL,mBAAqB,IAC5B,CACA,qBAAAupD,GACEr1O,KAAK8yO,gBAAkB,EACvB9yO,KAAKgzO,iBAAmB,EAC1B,CACA,aAAAgC,CAAchvL,EAAOp8C,GACnB,MAAMypJ,EAAOzpJ,EAAKypJ,KAKhB,IAAIiiF,EAJFt1O,KAAKu1O,eAAeliF,KAGnBA,EAAKpB,cAERjyJ,KAAK08L,YAAcrpC,EACnBrzJ,KAAKkzO,YAA0C,OAA3BoC,EAAa1rO,EAAKujC,MAAgBmoM,EAAa,MAErEt1O,KAAKgmL,aACLhmL,KAAK6lL,MAAQv7J,KAAK+8B,YAAYrnD,KAAKqzO,mBAAoB,KACzD,CACA,gBAAA6B,CAAiBlvL,EAAOp8C,GACtB5J,KAAKgmL,YACP,CACA,OAAA/4K,CAAQ+4C,EAAOp8C,GACb,IAAIA,EAAK+uK,MAGT,OAAQ/uK,EAAK4sB,SACX,KAAKm3H,EAAa6nF,uBAClB,KAAK7nF,EAAa8nF,oBAEhBz1O,KAAK6yO,qBAAuB,EAC5B7yO,KAAK8yO,gBAAkB,EACvB,MACF,KAAKnlF,EAAa21B,kBAChB,CACE,MAAMjwB,EAAOzpJ,EAAKypJ,MACZ,YACJqpC,EACAw2C,YAAa/lM,GACXntC,KACJ,GAAIqzJ,GAAQqpC,GAAerpC,EAAKjC,KAAOsrC,EAAYtrC,IAAMiC,EAAK9oF,QAAUmyH,EAAYnyH,MAAO,CACzF,MAAMtmD,EAAMhM,YAAYgM,MAClB+tI,EAAQ7kH,EAAOA,EAAK6kH,MAAQqB,EAAKrB,MACjCuhF,EAActvN,EAAM+tI,EAAMtvC,QAAQzpE,MAClCkyI,EAAOn5B,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQzpE,OAAS,EAEhF,GADwB+4G,EAAMpC,QAAUu7B,GAAQ,EAC3B,CACnB,MAAMuoD,EAAe1zO,KAAKozO,YAAY9nD,kBACtCtrL,KAAKozO,YAAYvpD,OAAO0pD,EAAct2O,KAAK6+B,IAAI43M,EAAcvoD,GAAOn5B,EAAMpC,OAC5E,MACE5vJ,KAAKozO,YAAYloD,WAAWqoD,EAEhC,CACA,KACF,EAEN,CACA,iBAAAe,CAAkBoB,EAAoBC,EAAWC,EAAcC,GAG7D,OAFoBH,EAAqBE,EAAeD,GAChCE,EAAW71O,KAAK4yO,iBAAmB,EAE7D,CACA,aAAAuC,CAAcnvL,EAAOp8C,GACnB,MAAMyqD,EAASr0D,KAAK00K,IAAIrgH,QAClB,QACJquD,GACE94G,EAAKooJ,MACH8jF,EAAgBpzH,EAAQ11G,IAAM01G,EAAQzpE,MACxCu0G,EAAesoF,KACjB91O,KAAK4yO,iBAAmBkD,EAAgB,KAEtClsO,EAAK4sB,QAAQ69H,KACfr0J,KAAKozO,YAAY/kJ,OAAOh6B,EAAO0hL,gBAAiB1hL,EAAO2hL,iBAEvDh2O,KAAKozO,YAAY/kJ,OAAOh6B,EAAOygL,eAAgBzgL,EAAO0gL,eAE1D,CACA,YAAA/kD,CAAahqI,GAAO,KAClBqtG,EAAI,KACJlmH,IAEA,MAAM6kH,EAAQ7kH,EAAOA,EAAK6kH,MAAQqB,EAAKrB,MAIvC,GAHIqB,EAAK9zJ,OAAS+0K,IAChBt0K,KAAKozO,YAAYloD,WAAWl5B,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQzpE,QAE9Dj5C,KAAKu1O,eAAeliF,GAAxB,CAYA,GARArzJ,KAAKgmL,aAED3yB,EAAK9oF,QAAUvqE,KAAK+yO,iBACtB/yO,KAAK+yO,gBAAkB,GAEzB/yO,KAAK8yO,gBAAkB,EAGnB9yO,KAAK00K,IAAIrgH,OAAO4hL,sBAAuB,CACzC,MAAM50K,EAAWl0B,EAAOA,EAAKk0B,SAAWgyF,EAAKhyF,SACvCkJ,EAAQvqE,KAAK00K,IAAInG,OAAOlb,EAAK9oF,OAC7B2rK,GAAe3rK,EAAMqlF,OAASrlF,EAAMqlF,OAAOrkB,MAAQ,GAAKymB,EAAMpC,OAC9DumF,GAAkB5rK,EAAMqlF,OAASrlF,EAAMqlF,OAAOvuF,SAAW,GAAKA,EACpEkJ,EAAMqlF,OAAS,CACbrkB,MAAO2qG,EACP70K,SAAU80K,GAEZ5rK,EAAMm2G,YAAczjL,KAAKgpC,MAAM,EAAIiwM,EAAcC,EACnD,CACA,GAAI9iF,EAAKpB,YAAa,CACpB,MAAMmkF,EAAmB,CACvBpkF,QACAqB,OACAlmH,OACAjgC,GAAImmJ,EAAK9zJ,MAEXS,KAAK8vL,eAAeriC,EAAOoiC,cAAeumD,GAC1C/iF,EAAKpB,aAAc,CACrB,MAEEjyJ,KAAK6yO,oBAAsBx/E,EAAK9oF,KAhClC,CAkCF,CACA,cAAAulH,CAAe9pI,EAAOp8C,GACpB,MAAM,KACJypJ,EAAI,KACJlmH,GACEvjC,EACEooJ,EAAgB,MAAR7kH,GAAgBA,EAAK6kH,MAAMpC,OAASziH,EAAK6kH,MAAQqB,EAAKrB,MACpE,GAAIA,EAAMrC,QACR,OAEF,GAAI3vJ,KAAKu1O,eAAeliF,GACtB,OAKF,MAAMgjF,EAAerkF,EAAM/B,QAAQjjJ,IAAMglJ,EAAMtvC,QAAQzpE,MAAQh8C,KAAK6+B,IAAIk2H,EAAMtvC,QAAQxtF,MAAQ88H,EAAMtvC,QAAQzpE,MAAOj5C,KAAKozO,YAAY9nD,mBACpItrL,KAAKozO,YAAYvpD,OAAOwsD,EAAcrkF,EAAMpC,QAC5CoC,EAAMhC,WAAahwJ,KAAK6zO,gBACpBxgF,EAAKpB,YACPjyJ,KAAKmzO,iBAAmBkD,EAAe,IAEvCr2O,KAAKmzO,iBAAmB,CAE5B,CACA,cAAAoC,CAAeliF,GAEb,OAAOA,EAAK9zJ,OAAS+0K,IAAsC,gBAAZjhB,EAAKjC,EACtD,CACA,UAAA40B,GACMhmL,KAAK6lL,OAAS,IAChBv7J,KAAK09B,cAAchoD,KAAK6lL,OACxB7lL,KAAK6lL,OAAS,EAElB,CACA,kBAAIywD,GACF,MAAM,aACJC,EAAY,aACZ/C,GACExzO,KAAK00K,IACH1kB,EAAahwJ,KAAK6zO,gBAClB2C,EAAgBx2O,KAAK00K,IAAIrgH,OAAOoiL,mBAChCC,EAAe12O,KAAK22O,cAAc3mF,EAAYwjF,EAAc+C,EAAc,EAAGC,EAAe,EAAG,GACrG,GAAIE,GAAgB,EAClB,OAAOA,EAET,MAAMl5I,EAAax9F,KAAK00K,IAAIl3E,WACtBo5I,EAAU35O,KAAK6+B,IAAI7+B,KAAKmrB,IAAIo1E,EAAYg2I,GAAe+C,GAE7D,OADAz1J,EAAO/jD,KAAK,kFAAkFygE,gBAAyBo5I,KAChHA,CACT,CACA,mBAAIC,GACF,OAAI72O,KAAKgzO,kBACC,EAEHhzO,KAAK+yO,cACd,CAGA,iBAAIwB,GACF,MAAMsC,EAAkB72O,KAAK62O,gBAEvBC,EADc92O,KAAKozO,YACO/nD,cAC1B0rD,EAAkB/2O,KAAK6yO,qBAAuB,EAEpD,MAAyB,IAArBgE,GAA4BC,GAAgBC,GAAmB/2O,KAAKgzO,mBAAqBhzO,KAAKg3O,mBAChG,OAAOH,EAIT,MAAMI,EAAmBH,GAAeC,EAAkB/2O,KAAKk3O,sBAAwBl3O,KAAKs2O,eAG5F,IAAyB,IAArBO,EAAwB,CAC1B,MAAMtoE,EAASvuK,KAAK00K,IAAInG,OACxB,GAAIA,EAAOpuK,OAASlD,KAAKmrB,IAAIyuN,EAAiBI,IAAqB1oE,EAAOsoE,GAAiBp2D,WAAalS,EAAO0oE,GAAkBx2D,UAC/H,OAAOo2D,CAEX,CAKA,OAFA72O,KAAK+yO,eAAiBkE,EACtBj3O,KAAKgzO,iBAAmBhzO,KAAKg3O,kBACtBC,CACT,CACA,eAAAD,GACE,MAAO,GAAGh3O,KAAK6zO,mBAAmB7zO,KAAKm3O,qBAAqBvtK,QAAQ,IACtE,CACA,mBAAAstK,GACE,MAAM,YACJx6C,EAAW,YACXw2C,EAAW,IACXx+D,GACE10K,MACE,aACJu2O,EAAY,OACZliL,EAAM,aACNm/K,GACE9+D,EACE0iE,EAAsBlE,EAAcA,EAAY7xK,SAAWq7H,EAAcA,EAAYr7H,SAAW,EAChGg2K,EAAQr3O,KAAK6zO,gBAEbF,EAAwB3zO,KAAKm3O,qBACnC,IAAIG,EAAWjjL,EAAOkjL,mBAClBC,EAAanjL,EAAOogL,qBAGxB,GAAId,EAAuB,CACzB,MAAM8D,EAAaz3O,KAAK22O,cAAcU,EAAO7D,EAAc+C,EAAc5C,EAAuB,EAAG2D,EAAUE,GAC7G,GAAIC,GAAc,EAChB,OAAOA,CAEX,CAEA,IAAIhB,EAAqBW,EAAsBn6O,KAAK6+B,IAAIs7M,EAAqB/iL,EAAOoiL,oBAAsBpiL,EAAOoiL,mBACjH,IAAK9C,EAAuB,CAE1B,MAAMR,EAAmBnzO,KAAKmzO,iBAC1BA,IAOFsD,GADwBW,EAAsBn6O,KAAK6+B,IAAIs7M,EAAqB/iL,EAAOqjL,iBAAmBrjL,EAAOqjL,iBACtEvE,EACvCryJ,EAAOvpB,KAAK,2BAA2Bt6D,KAAKgpC,MAAM,IAAOktM,iDAAgEl2O,KAAKgpC,MAAM,IAAOwwM,SAE3Ia,EAAWE,EAAa,EAE5B,CACA,MAAMG,EAAY33O,KAAK22O,cAAcU,EAAO7D,EAAc+C,EAAc5C,EAAuB8C,EAAoBa,EAAUE,GAE7H,GADA12J,EAAOvpB,KAAK,SAASo8K,EAAwB,uBAAyB,4CAA4CgE,KAC9GA,GAAa,EACf,OAAOA,EAGT,MAAMC,EAAWljE,EAAInG,OAAOilE,GACtBqE,EAAYnjE,EAAInG,OAAOmG,EAAIojE,WACjC,OAAiB,MAAZF,OAAmB,EAASA,EAAShpE,UAAyB,MAAbipE,OAAoB,EAASA,EAAUjpE,SACpF4kE,EAGF9+D,EAAIojE,SACb,CACA,kBAAAX,GACE,MAAMziE,EAAM10K,KAAK00K,IACXlE,EAAQkE,EAAIlE,MAClB,IAAKA,EACH,OAAOprF,IAIT,MAAM06F,EAAetP,GAAgC,IAAvBA,EAAMsP,aAAqB7iL,KAAK6rF,IAAI0nF,EAAMsP,cAAgB,EAClF0I,EAAa9T,EAAI+T,sBACvB,OAAQD,EAAaA,EAAWzkL,IAAM,GAAK+7K,CAC7C,CACA,aAAA+zD,GACE,OAAO7zO,KAAKozO,YAAY/nD,cAAgBrrL,KAAKozO,YAAYppD,cAAgBhqL,KAAK00K,IAAIrgH,OAAOwgL,sBAC3F,CACA,aAAA8B,CAAc1qD,EAAWunD,EAAc+C,EAAc5C,EAAuB8C,EAAoBa,EAAUE,GACxG,IAAIt0D,EACJ,MAAM60D,EAAmBpE,EAAwB8C,EAC3C5D,EAAsB7yO,KAAK6yO,oBAC3BmF,GAA8C,IAAzBnF,EAA6B7yO,KAAK00K,IAAIl3E,WAAaq1I,GACxE,YACJn2C,EAAW,YACXw2C,GACElzO,MACE,OACJuuK,EAAM,eACN0pE,EAAc,UACdH,EAAS,OACTzjL,GACEr0D,KAAK00K,IACT,GAAsB,IAAlBnG,EAAOpuK,OACT,OAAO,EAET,MAAMoqE,EAAQgkG,EAAOypE,GACf3jF,IAAmB,MAAT9pF,GAAqD,OAAnC24G,EAAiB34G,EAAM/zC,WAAoB0sJ,EAAe7uB,MACtFy+E,GAAgC,IAAfgF,IAA6C,IAAzBjF,EAC3C,IAAIqF,EACAnsD,EAAoB,MACpBC,GAA6B,MAATzhH,OAAgB,EAASA,EAAMg2G,YAAc,EACrE,MAAM,gBACJ2L,EAAe,gBACfisD,GACE9jL,EACEy3H,EAAqB9rL,KAAK8rL,qBAAuB9rL,KAAK8rL,mBAnqBhE,SAA+BmsD,GAC7B,OAAOA,EAAe53O,QAAO,CAACyrL,EAAoB3tB,KAChD,IAAIi6E,EAAatsD,EAAmB59H,OAAOiwG,EAAMsS,SAC5C2nE,IACHA,EAAatsD,EAAmB59H,OAAOiwG,EAAMsS,SAAW,CACtD0K,OAAQ,GACRhL,SAAU,CACR,EAAG,GAELkoE,YAAY,EACZC,eAAe,IAGnBF,EAAWj9D,OAAOt5K,KAAKs8J,GACvB,MAAMo6E,EAAcp6E,EAAMgS,UAAY,IAUtC,OATAioE,EAAWjoE,SAASooE,IAAgBH,EAAWjoE,SAASooE,IAAgB,GAAK,EAC7EH,EAAWC,WAAaD,EAAWC,YAAcl6E,EAAM97I,QACvD+1N,EAAWE,cAAgBF,EAAWE,eAAiBn6E,EAAMuS,WACzD0nE,EAAWC,aACbvsD,EAAmB0sD,iBAAkB,GAEnCJ,EAAWE,gBACbxsD,EAAmB2sD,oBAAqB,GAEnC3sD,CAAkB,GACxB,CACD0sD,iBAAiB,EACjBC,oBAAoB,EACpBvqL,OAAQ,CAAC,GAEb,CAqoBqFwqL,CAAsBT,IACvG,GAAInF,EAAgB,CAClB,IAA6B,IAAzB9yO,KAAK8yO,eACP,OAAO9yO,KAAK8yO,eAEd,MAAMG,EAAajzO,KAAKizO,aAAejzO,KAAKizO,WAzoBlD,SAAuB1kE,EAAQud,EAAoB0nD,EAAc+C,GAC/D,OAAOhoE,EAAO7qK,MAAM8vO,EAAc+C,EAAe,GAAGl2O,QAAO,CAACs4O,EAAOpuK,KACjE,IAAKA,EAAM0iG,SACT,OAAO0rE,EAET,MAAMl3D,EAAcl3G,EAAMk3G,YAC1B,IAAIm3D,EAAOD,EAAMpuK,EAAM0iG,UAClB2rE,IACHD,EAAMpuK,EAAM0iG,UAAY2rE,EAAO,CAC7BC,WAAYzzJ,IACZrrC,UAAWqrC,IACX0zJ,aAAc1zJ,IACd2zJ,SAAU,EACVC,YAAa,CACXC,IAAK,GAEP9oE,SAAU,CACR,EAAK,GAEPqoE,iBAAkB/2D,EAClBjB,cAAe,IAGnBo4D,EAAKC,WAAa57O,KAAK6+B,IAAI88M,EAAKC,WAAYtuK,EAAMqkG,SAClD,MAAMsqE,EAAsBj8O,KAAK6+B,IAAIyuC,EAAMhtB,OAAQgtB,EAAM5sB,OAsBzD,OArBAi7L,EAAK7+L,UAAY98C,KAAK6+B,IAAI88M,EAAK7+L,UAAWm/L,GAC1CN,EAAKE,aAAe77O,KAAK6+B,IAAI88M,EAAKE,aAAcvuK,EAAMg2G,WACtDq4D,EAAKG,SAAW97O,KAAKmrB,IAAIwwN,EAAKG,SAAUxuK,EAAM82G,OAC9Cu3D,EAAKp4D,eAAiBj2G,EAAMi2G,cAC5Bo4D,EAAKI,YAAYzuK,EAAM62G,aAAew3D,EAAKI,YAAYzuK,EAAM62G,aAAe,GAAK,EAC7EK,GACFA,EAAYjjL,SAAQojL,IAClB,IAAKA,EACH,OAEF,MAAMu3D,EAAartD,EAAmB59H,OAAO0zH,GACxCu3D,IAILP,EAAKJ,gBAAkBI,EAAKJ,iBAAmB1sD,EAAmB0sD,gBAAkBW,EAAWd,WAAac,EAAWb,gBAAkBxsD,EAAmB0sD,kBAAoB1sD,EAAmB2sD,mBACnM98O,OAAOwK,KAAKgzO,EAAWhpE,UAAU3xK,SAAQ2xK,IACvCyoE,EAAKzoE,SAASA,IAAayoE,EAAKzoE,SAASA,IAAa,GAAKgpE,EAAWhpE,SAASA,EAAS,IACxF,IAGCwoE,CAAK,GACX,CAAC,EACN,CAylB+DS,CAAc7qE,EAAQud,EAAoB0nD,EAAc+C,IAC3G8C,EA9wBZ,SAA2BpG,EAAYlnD,EAAmBE,EAAWC,EAAiBisD,GACpF,MAAMmB,EAAY39O,OAAOwK,KAAK8sO,GACxB7mD,EAAwC,MAAnBF,OAA0B,EAASA,EAAgB/b,SACxEgc,EAA0C,MAAnBD,OAA0B,EAASA,EAAgBrc,WAC1E0pE,EAAentD,GAAuD,IAAjCxmJ,SAASwmJ,GAEpD,IAAIotD,GAAY,EACZC,GAAuB,EACvB1/L,EAAYqrC,IACZ0zJ,EAAe1zJ,IACfyzJ,EAAazzJ,IACbs0J,EAAgB,EAChBV,EAAc,GAClB,MAAM,UACJW,EAAS,mBACTC,GArCJ,SAAkC7tD,EAAmBosD,GACnD,IAAIwB,GAAY,EACZC,EAAqB,GAczB,OAbI7tD,IACF4tD,EAAkC,QAAtB5tD,EACZ6tD,EAAqB,CAAC7tD,IAEpBosD,IACFyB,EAAqBzB,EAAgByB,oBAAsB55D,GAAiBt8K,MAAM,GAClFi2O,OAA0Cz9O,IAA9Bi8O,EAAgBwB,UAA0BxB,EAAgBwB,UAvC1E,WACE,GAA0B,mBAAfrvI,WAA2B,CACpC,MAAMuvI,EAAiBvvI,WAAW,yBAC5BwvI,EAAWxvI,WAAW,aAC5B,GAAIuvI,EAAerpE,QAAUspE,EAAStpE,MACpC,OAAkC,IAA3BqpE,EAAer6M,OAE1B,CACA,OAAO,CACT,CA8BsFu6M,GAEhFH,EADED,EACmBC,EAAmB9mO,QAAO+gC,GAAmB,QAAVA,IAEnC,CAAC,QAGnB,CACL8lM,YACAC,qBAEJ,CAkBMI,CAAyBjuD,EAAmBosD,GAChD,IAAK,IAAIr0O,EAAIw1O,EAAUn5O,OAAQ2D,KAAM,CACnC,MAAM80O,EAAO3F,EAAWqG,EAAUx1O,IAClC01O,EAAYZ,EAAKzoE,SAAS,GAAK,EAC/Bp2H,EAAY98C,KAAK6+B,IAAIie,EAAW6+L,EAAK7+L,WACrC++L,EAAe77O,KAAK6+B,IAAIg9M,EAAcF,EAAKE,cAC3CD,EAAa57O,KAAK6+B,IAAI+8M,EAAYD,EAAKC,YACvC,MAAMoB,EAAsBL,EAAmB9mO,QAAO+gC,GAAS+kM,EAAKI,YAAYnlM,GAAS,IACrFomM,EAAoB95O,OAAS,IAC/Bs5O,GAAuB,EACvBT,EAAciB,EAElB,CACAlgM,EAAYyzG,EAAezzG,GAAaA,EAAY,EACpD++L,EAAetrF,EAAesrF,GAAgBA,EAAe,EAC7D,MAAM72I,EAAYhlG,KAAKmrB,IAAI,KAAM2xB,GAC3BmgM,EAAej9O,KAAKmrB,IAAI,GAAI0wN,GA0DlC,OAzDAD,EAAarrF,EAAeqrF,GAAcA,EAAa5sD,EACvDA,EAAYhvL,KAAKmrB,IAAIywN,EAAY5sD,GAE5BwtD,IACH1tD,OAAoB7vL,EACpB88O,EAAc,IAoDT,CACL/rE,SAnDeqsE,EAAUj5O,QAAO,CAAC8sE,EAAUksB,KAE3C,MAAM8gJ,EAAgBlH,EAAW55I,GACjC,GAAIA,IAAclsB,EAChB,OAAOA,EAET,GAAIgtK,EAActB,WAAa5sD,EAE7B,OADAuB,GAA8Bn0F,EAAW,kBAAkB8gJ,EAActB,oCAAoC5sD,KACtG9+G,EAET,IAAKgtK,EAAc3B,gBAEjB,OADAhrD,GAA8Bn0F,EAAW,yDAClClsB,EAET,GAAIg/G,GAAwB9yF,EAAUl7D,QAAQguJ,EAAqBhvL,UAAU,EAAG,IAAM,GAAM,EAE1F,OADAqwL,GAA8Bn0F,EAAW,2BAA2B8yF,gBAC7Dh/G,EAET,GAAIi/G,IAAuBmtD,GACzB,IAAKY,EAAchqE,SAASic,GAE1B,OADAoB,GAA8Bn0F,EAAW,sBAAsB+yF,4CAA6DzwL,OAAOwK,KAAKg0O,EAAchqE,cAC/IhjG,OAEJ,KAAMg/G,GAAwBotD,IAAiBC,GAA6C,IAAhCW,EAAchqE,SAAS,GAExF,OADAqd,GAA8Bn0F,EAAW,yCAClClsB,EAET,OAAIgtK,EAAcpgM,UAAYkoD,GAC5BurF,GAA8Bn0F,EAAW,qBAAqB8gJ,EAAcpgM,0BAA0BkoD,KAC/F90B,GAELgtK,EAAcrB,aAAeoB,GAC/B1sD,GAA8Bn0F,EAAW,oBAAoB8gJ,EAAcrB,6BAA6BoB,KACjG/sK,GAEJ6rK,EAAY52O,MAAKyxC,GAASsmM,EAAcnB,YAAYnlM,GAAS,IAI9DsmM,EAAcpB,SAAWW,GAC3BlsD,GAA8Bn0F,EAAW,gBAAgB8gJ,EAAcpB,8BAA8BW,KAC9FvsK,GAGLA,IAAa6/F,GAAkC3zE,IAAc2zE,GAAkC7/F,IAAagtK,EAAc35D,cAAgByyD,EAAW9lK,GAAUqzG,eAC1JrzG,GAETusK,EAAgBS,EAAcpB,SACvB1/I,IAZLm0F,GAA8Bn0F,EAAW,mCAAmCt6D,KAAKL,UAAUs6M,YACpF7rK,EAWO,QACfjxE,GAGD88O,cACAW,YACAb,eACAD,aAEJ,CA6qBwBuB,CAAkBnH,EAAYlnD,EAAmBE,EAAWC,EAAiBisD,IACzF,SACJlrE,EAAQ,YACR+rE,EAAW,aACXF,EAAY,WACZD,EAAU,UACVc,GACEN,EACJnB,EAAkBjrE,EAClB8e,EAAoB4tD,EAAYX,EAAYA,EAAY74O,OAAS,GAAK64O,EAAY,GAClFhtD,EAAmB8sD,EACnB7sD,EAAYhvL,KAAKmrB,IAAI6jK,EAAW4sD,GAChC/3J,EAAO31C,IAAI,2BAA2BpM,KAAKL,UAAU26M,KACvD,MACEnB,EAA2B,MAAT3tK,OAAgB,EAASA,EAAM0iG,SACjD8e,EAA6B,MAATxhH,OAAgB,EAASA,EAAM62G,WAErD,MAAMg2D,EAAsBlE,EAAcA,EAAY7xK,SAAWq7H,EAAcA,EAAYr7H,SAAW,EAChGg5K,EAAkBr6O,KAAKozO,YAAY9nD,kBAAoB,IACvDgvD,EAAgB,GACtB,IAAK,IAAIx2O,EAAIyyO,EAAczyO,GAAK0vO,EAAc1vO,IAAK,CACjD,IAAIy2O,EACJ,MAAMC,EAAYjsE,EAAOzqK,GACnB22O,EAAW32O,EAAIk0O,EACrB,IAAKwC,EACH,SAEF,GAAInmL,EAAOqmL,uBAAyBF,EAAU55D,kBAAoB45D,EAAU75D,iBAAkB,CAC5F,MAAM8L,EAAoBp0I,UAAUo0I,kBACiD,mBAApD,MAArBA,OAA4B,EAASA,EAAkBc,eAAgC1B,GAAsC2uD,EAAW1uD,EAAoBC,EAAmBC,EAAkBC,EAAWC,IACtNsuD,EAAU75D,iBAAmB6L,GAA4BguD,EAAW1uD,EAAoBW,GACxF+tD,EAAU75D,iBAAiBh8K,MAAK4oL,IAC9B,IAAKvtL,KAAK00K,IACR,OAEF8lE,EAAU55D,gBAAkB2M,EAC5B,MAAMhf,EAASvuK,KAAK00K,IAAInG,OAClB96J,EAAQ86J,EAAOpwI,QAAQq8M,GACzBjtD,EAAa3oL,MACfk8E,EAAO/jD,KAAK,gDAAgDwwJ,EAAa3oL,oBAAoB6O,KAASsrB,KAAKL,UAAU6uJ,MAC3GA,EAAa94J,YACvBqsD,EAAO/jD,KAAK,qEAAqEtpB,KAASsrB,KAAKL,UAAU6uJ,MACrG95K,GAAS,GAAK86J,EAAOpuK,OAAS,IAChC2gF,EAAO31C,IAAI,oCAAoC13B,KAC/CzT,KAAK00K,IAAIimE,YAAYlnO,IAEzB,KAGF+mO,EAAU55D,gBAAkB2K,EAEhC,CAIA,GAAI2sD,GAAmBsC,EAAUvtE,WAAairE,GAAmBnsD,GAAqByuD,EAAUp5D,aAAe2K,GAAqB0uD,GAAYzuD,EAAmBwuD,EAAUj6D,YAAck6D,GAAYzuD,EAAmB,GAAKA,EAAmBwuD,EAAUj6D,WAAai6D,EAAU55D,kBAAgG,OAA1E25D,EAAwBC,EAAU55D,gBAAgB6K,uBAAgC8uD,EAAsB,GAAG5uD,QAAS,CAC3Z2uD,EAAcz4O,KAAKiC,GACnB,QACF,CACA,MAAM2yK,EAAe+jE,EAAUhkN,QACzBokN,GAAe1H,EAA8B,MAAhBz8D,OAAuB,EAASA,EAAahhB,WAA6B,MAAhBghB,OAAuB,EAASA,EAAa3iB,wBAA0BsjF,EACpK,IAAIyD,EAUFA,EAHGJ,EAGUjD,EAAavrD,EAFbqrD,EAAWrrD,EAM1B,MAAMrd,EAAUwoE,GAAuBzD,GAA+C,EAAtByD,GAAkD,IAAvBX,EAA2BloE,EAAOzqK,GAAGq9K,eAAiB5S,EAAOzqK,GAAGo9K,WACrJ45D,EAAgB96O,KAAKs0O,kBAAkB+F,EAAiBQ,EAAYjsE,EAAUgsE,OAA8B1+O,IAAjBu6K,GAUjG,GAPAokE,GAAcjsE,IAEd9qK,IAAM+uO,GAA+C,IAAxB2H,EAAU/5D,WAA+C,IAA5B+5D,EAAUh6D,iBAIpEs6D,GAAiBT,IAAoB7sF,EAAestF,IAAkBzmF,IAASr0J,KAAKmzO,kBAAoB2H,EAAgB/C,GAC1F,CAC5B,MAAMlB,EAAkB72O,KAAK62O,gBAW7B,OAVI/yO,IAAMg0O,IAAmC,IAArBjB,GAA0BA,IAAoBiB,IAChEwC,EAAcn6O,QAChB2gF,EAAOr1C,MAAM,0BAA0B6uM,EAAcj9O,KAAK,WAAWk5O,sCAAiDhoE,EAAO+rE,EAAc,IAAI7tE,WAAW8B,EAAO+rE,EAAc,IAAIl5D,oCAAoC72G,EAAMkiG,WAAWsf,KAE1OjrG,EAAOvpB,KAAK,0BAA0BygL,MAAuBl0O,gBAAgB7G,KAAKgpC,MAAM40M,eAAwB59O,KAAKgpC,MAAM40M,EAAajsE,WAAiByrE,EAAgBzwK,QAAQ,kBAAkBgxK,EAAYhxK,QAAQ,uBAAuBmuK,EAAiBnuK,QAAQ,oBAAoBkxK,EAAclxK,QAAQ,qBAAqBkpK,cAA2BoF,gBAA8BnsD,mBAAmC+rD,MAEhahF,IACF9yO,KAAK8yO,eAAiBhvO,GAGjBA,CACT,CACF,CAEA,OAAQ,CACV,CACA,iBAAIywO,CAAczU,GAChB,MAAM,aACJyW,EAAY,aACZ/C,GACExzO,KAAK00K,IACHr4K,EAAQY,KAAK6+B,IAAI7+B,KAAKmrB,IAAI03M,EAAW0T,GAAe+C,GACtDv2O,KAAK+yO,iBAAmB12O,IAC1B2D,KAAKgzO,iBAAmB,GACxBhzO,KAAK+yO,eAAiB12O,EAE1B,GA01iBA0+O,iBAr2OF,MACE,WAAAhwN,CAAY2pJ,GAEV10K,KAAKw2B,QAAU,KAEfx2B,KAAKg7O,WAAa,KAElBh7O,KAAKi7O,oBAAiB,EAEtBj7O,KAAKwoN,eAAY,EACjBxoN,KAAK00K,SAAM,EAEX10K,KAAKk7O,0BAA4B,EAEjCl7O,KAAKm7O,wBAA0B,EAE/Bn7O,KAAKwwK,MAAQ,KAEbxwK,KAAKo7O,YAAc,KAEnBp7O,KAAKq7O,mBAAqB,KAC1Br7O,KAAKs7O,kBAAe,EAEpBt7O,KAAKu7O,aAAe,CAClB/nF,MAAO,EACPC,MAAO,EACPC,WAAY,GAEd1zJ,KAAKm7K,OAAS,CAAC,EACfn7K,KAAKw7O,cAAgB,CAAC,EACtBx7O,KAAKy7O,kBAAe,EACpBz7O,KAAKmrC,SAAM,EACXnrC,KAAK+8B,UAAO,EACZ/8B,KAAK4E,WAAQ,EACb5E,KAAK07O,gBAAkB11L,IAChBhmD,KAAK00K,KAGV10K,KAAK00K,IAAIkpB,gBAAgB,EAE3B59L,KAAK27O,kBAAoB31L,IAClBhmD,KAAK00K,KAGV10K,KAAK00K,IAAImpB,iBAAiB,EAG5B79L,KAAK47O,mBAAqB,KACxB,MAAM,MACJprE,EAAK,YACL4qE,GACEp7O,KACJA,KAAKmrC,IAAI,uBACLqlI,IACFA,EAAMp1E,oBAAoB,UAAWp7F,KAAK67O,iBAC1C77O,KAAK87O,6BACL97O,KAAK00K,IAAIrrE,QAAQokD,EAAO0uB,eAAgB,CACtC3L,QACA4qE,YAAaA,KAGbA,GAEFA,EAAYhgJ,oBAAoB,aAAcp7F,KAAK47O,oBAErD57O,KAAK+7O,oBAAoB,EAE3B/7O,KAAKg8O,oBAAsB,KACzBh8O,KAAKmrC,IAAI,sBAAsB,EAEjCnrC,KAAKi8O,oBAAsB,KACzBj8O,KAAKmrC,IAAI,qBAAqB,EAEhCnrC,KAAK67O,gBAAkB,KACrB,MAAM,SACJK,EAAQ,WACRlB,GACEh7O,KACAk8O,IAAalB,GACfl6J,EAAOl8E,MAAM,0DAA0Do2O,OAAgBkB,KACzF,EAEFl8O,KAAK00K,IAAMA,EACX,MAAMkR,EAAY,sBAnjdtB,IAA8BxiK,EAojd1BpjB,KAAKs7O,cApjdqBl4N,EAojdemlJ,GAAemM,EAAIrgH,OAAOm0G,0BAnjd9C,oBAATl+I,MAAwBlH,IAAWkH,KAAKo+I,oBAojdpD1oK,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQ8kG,GACnC5lL,KAAK+8B,KAAO+jD,EAAO/jD,KAAK/tB,KAAK8xE,EAAQ8kG,GACrC5lL,KAAK4E,MAAQk8E,EAAOl8E,MAAMoK,KAAK8xE,EAAQ8kG,GACvC5lL,KAAKm8O,oBACLn8O,KAAK40K,mBACP,CACA,cAAAwnE,GACE,OAAOp8O,KAAKq8O,uBAAuBl8O,OAAS,GAAKxE,OAAOwK,KAAKnG,KAAKw7O,eAAer7O,OAAS,CAC5F,CACA,OAAA8xE,GACEjyE,KAAKy1K,sBACLz1K,KAAKw2B,QAAU,KACfx2B,KAAKq7O,mBAAqB,KAE1Br7O,KAAK00K,IAAM,IACb,CACA,iBAAAE,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACtD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAO6uF,aAAct8O,KAAKu8O,cAAev8O,MAChD00K,EAAI1yF,GAAGyrE,EAAOu1C,iBAAkBhjM,KAAKw8O,kBAAmBx8O,MACxD00K,EAAI1yF,GAAGyrE,EAAO2wE,cAAep+N,KAAKq+N,eAAgBr+N,MAClD00K,EAAI1yF,GAAGyrE,EAAOgvF,WAAYz8O,KAAK08O,YAAa18O,MAC5C00K,EAAI1yF,GAAGyrE,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACtD00K,EAAI1yF,GAAGyrE,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,MAClD00K,EAAI1yF,GAAGyrE,EAAOw6C,YAAajoM,KAAK28O,aAAc38O,MAC9C00K,EAAI1yF,GAAGyrE,EAAOmvF,aAAc58O,KAAK68O,cAAe78O,KAClD,CACA,mBAAAy1K,GACE,MAAM,IACJf,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACvD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAO6uF,aAAct8O,KAAKu8O,cAAev8O,MACjD00K,EAAI57E,IAAI20D,EAAOu1C,iBAAkBhjM,KAAKw8O,kBAAmBx8O,MACzD00K,EAAI57E,IAAI20D,EAAO2wE,cAAep+N,KAAKq+N,eAAgBr+N,MACnD00K,EAAI57E,IAAI20D,EAAOgvF,WAAYz8O,KAAK08O,YAAa18O,MAC7C00K,EAAI57E,IAAI20D,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACvD00K,EAAI57E,IAAI20D,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,MACnD00K,EAAI57E,IAAI20D,EAAOw6C,YAAajoM,KAAK28O,aAAc38O,MAC/C00K,EAAI57E,IAAI20D,EAAOmvF,aAAc58O,KAAK68O,cAAe78O,KACnD,CACA,iBAAAm8O,GACEn8O,KAAKy7O,aAAe,CAAC,EACrBz7O,KAAKi7O,eAAiB,IAAI9uB,GAAqBnsN,KAAKy7O,cACpDz7O,KAAKwoN,UAAY,CACfh1D,MAAO,GACPC,MAAO,GACPC,WAAY,IAEd1zJ,KAAKu7O,aAAe,CAClB/nF,MAAO,EACPC,MAAO,EACPC,WAAY,GAEd1zJ,KAAKq7O,mBAAqB,IAC5B,CACA,iBAAAnmE,GACEl1K,KAAKk7O,0BAA4Bl7O,KAAKm7O,wBAA0B,EAChEn7O,KAAKw2B,QAAU,IACjB,CACA,gBAAAynM,CAAiBj4K,EAAOp8C,GAKtB,IAAIkzO,EAAc,GACdlzO,EAAK4pJ,QAAU5pJ,EAAK6pJ,QAAU7pJ,EAAKmzO,YACrCD,EAAc,GAEhB98O,KAAKk7O,0BAA4Bl7O,KAAKm7O,wBAA0B2B,EAChE98O,KAAKmrC,IAAI,GAAGnrC,KAAKk7O,0DACnB,CACA,gBAAAnd,CAAiB/3K,EAAOp8C,GACtB,MAAM4mK,EAAQxwK,KAAKwwK,MAAQ5mK,EAAK4mK,MAC1B/H,EAAcF,GAAevoK,KAAKs7O,cACxC,GAAI9qE,GAAS/H,EAAa,CACxB,IAAIu0E,EACJ,MAAMt/K,EAAK19D,KAAKo7O,YAAc,IAAI3yE,EAClCzoK,KAAKmrC,IAAI,yBAA+D,OAArC6xM,EAAkBt/K,EAAG3yC,kBAAuB,EAASiyN,EAAgB50O,QAExGs1D,EAAGznB,iBAAiB,aAAcj2C,KAAK47O,oBACvCl+K,EAAGznB,iBAAiB,cAAej2C,KAAKi8O,qBACxCv+K,EAAGznB,iBAAiB,cAAej2C,KAAKg8O,qBACpCh8O,KAAKs7O,eACP59K,EAAGznB,iBAAiB,iBAAkBj2C,KAAK27O,mBAC3Cj+K,EAAGznB,iBAAiB,eAAgBj2C,KAAK07O,kBAI3C,MAAMuB,EAAYj9O,KAAKg7O,WAAa1wN,KAAKqkB,IAAIygG,gBAAgB1xE,GAE7D,GAAI19D,KAAKs7O,aACP,IACE9qE,EAAM0sE,gBAAgB,OAEtB,MAAMC,EAAM7yN,KAAKo+I,mBACjB8H,EAAM4sE,sBAAwB5sE,EAAM4sE,uBAAyBD,GAAOz/K,aAAcy/K,EAClFhwB,GAAqB38C,GA6xB/B,SAAmBA,EAAOh7H,GACxB,MAAMpyB,EAASkH,KAAK6oB,SAASjwB,cAAc,UAC3CE,EAAO7jB,KAAO,YACd6jB,EAAOyyB,IAAML,EACbg7H,EAAMn6H,YAAYjzB,EACpB,CAjyBUi6N,CAAU7sE,EAAOysE,GACjBzsE,EAAMpnF,MACR,CAAE,MAAOxkF,GACP4rK,EAAM36H,IAAMonM,CACd,MAEAzsE,EAAM36H,IAAMonM,EAEdzsE,EAAMv6H,iBAAiB,UAAWj2C,KAAK67O,gBACzC,CACF,CACA,gBAAAv/D,GACE,MAAM,MACJ9L,EAAK,YACL4qE,EAAW,WACXJ,GACEh7O,KACJ,GAAIo7O,EAAa,CAEf,GADAp7O,KAAKmrC,IAAI,0BACsB,SAA3BiwM,EAAYz1C,WACd,IAKEy1C,EAAYkC,aACd,CAAE,MAAO33O,GACP3F,KAAK+8B,KAAK,qBAAqBp3B,EAAIgY,oCACrC,CAGF3d,KAAKu8O,gBACLnB,EAAYhgJ,oBAAoB,aAAcp7F,KAAK47O,oBACnDR,EAAYhgJ,oBAAoB,cAAep7F,KAAKi8O,qBACpDb,EAAYhgJ,oBAAoB,cAAep7F,KAAKg8O,qBAChDh8O,KAAKs7O,eACPF,EAAYhgJ,oBAAoB,iBAAkBp7F,KAAK27O,mBACvDP,EAAYhgJ,oBAAoB,eAAgBp7F,KAAK07O,kBAKnDlrE,IACFA,EAAMp1E,oBAAoB,UAAWp7F,KAAK67O,iBACtCb,GACF1wN,KAAKqkB,IAAI87K,gBAAgBuwB,GAKvBh7O,KAAKk8O,WAAalB,GACpBxqE,EAAM0sE,gBAAgB,OAClBl9O,KAAKs7O,cACPnuB,GAAqB38C,GAEvBA,EAAMpnF,QAENppF,KAAK+8B,KAAK,iEAGd/8B,KAAKo7O,YAAc,KACnBp7O,KAAKwwK,MAAQ,KACbxwK,KAAKg7O,WAAa,KAClBh7O,KAAKk7O,0BAA4Bl7O,KAAKm7O,wBACtCn7O,KAAKw7O,cAAgB,CAAC,EACtBx7O,KAAKm7K,OAAS,CAAC,CACjB,CACAn7K,KAAK00K,IAAIrrE,QAAQokD,EAAO60E,oBAAgBpmO,EAC1C,CACA,aAAAqgP,GACEv8O,KAAKq8O,uBAAuB79O,SAAQe,IAClCS,KAAKu9O,YAAYh+O,EAAK,IAExBS,KAAKm8O,oBACLn8O,KAAK00K,IAAImpB,iBACX,CACA,WAAA0/C,CAAYh+O,GACV,MAAMwtN,EAAK/sN,KAAKy7O,aAAal8O,GAC7B,IAEI,IAAIi+O,EADFzwB,IAEF/sN,KAAKy9O,sBAAsBl+O,GAG3BS,KAAKy7O,aAAal8O,QAAQrD,EACoB,OAAzCshP,EAAoBx9O,KAAKo7O,cAAwBoC,EAAkBE,cAAcv9O,QACpFH,KAAKo7O,YAAYuC,mBAAmB5wB,GAG1C,CAAE,MAAOpnN,GACP3F,KAAK+8B,KAAK,iBAAiBx9B,IAAQoG,EACrC,CACF,CACA,cAAA04N,CAAer4K,EAAOp8C,GACpB,MAAMg0O,EAAoB59O,KAAKq8O,uBAAuBl8O,OAChD09O,EAAaliP,OAAOwK,KAAKyD,GA0C/B,GAzCAi0O,EAAWr/O,SAAQq3N,IACjB,GAAI+nB,EAAmB,CAErB,MAAMz/E,EAAQn+J,KAAKm7K,OAAO06C,GAC1B,GAAI13D,GAA4C,mBAA5BA,EAAMz0J,OAAOo0O,WAA2B,CAC1D,IAAIC,EACJ,MAAM,GACJ7wO,EAAE,MACFsxJ,EAAK,WACLmP,EAAU,UACV31G,EAAS,SACT48B,GACEhrF,EAAKisN,GACHmoB,EAAmBvwE,GAA0BtP,EAAMK,MAAOL,EAAMwP,YAChEswE,EAAmC,MAApBD,OAA2B,EAASA,EAAiB/lN,QAAQi1L,GAA6B,MAC/G,IAAIgxB,EAAazwE,GAA0BjP,EAAOmP,GAClD,MAAMwwE,EAA0C,OAA7BJ,EAAcG,QAAsB,EAASH,EAAY9lN,QAAQi1L,GAA6B,MACjH,GAAIgxB,GAAcD,IAAiBE,EAAW,CACd,UAA1BtoB,EAAUnyN,MAAM,EAAG,KACrBw6O,EAAa7wE,GAAuB6wE,EAAYl+O,KAAKs7O,eAEvD,MAAM8C,EAAW,GAAGpmL,YAAoBkmL,IACxCl+O,KAAKq+O,iBAAiBxoB,EAAWuoB,GACjCp+O,KAAKmrC,IAAI,mBAAmB6yM,QAAuBE,KACnDl+O,KAAKm7K,OAAO06C,GAAa,CACvBnsN,OAAQy0J,EAAMz0J,OACd80J,QACAxmG,YACA21G,aACA/4E,WACA1nF,KAEJ,CACF,CACF,MAEElN,KAAKw7O,cAAc3lB,GAAajsN,EAAKisN,EACvC,IAIE+nB,EACF,OAEF,MAAM1C,EAA4Bj+O,KAAKmrB,IAAIpoB,KAAKk7O,0BAA4B,EAAG,GAC3El7O,KAAKk7O,4BAA8BA,IACrCl7O,KAAKmrC,IAAI,GAAG+vM,mCAA2D2C,EAAWxgP,KAAK,QACvF2C,KAAKk7O,0BAA4BA,GAE/Bl7O,KAAKo7O,aAA+C,SAAhCp7O,KAAKo7O,YAAYz1C,YACvC3lM,KAAK+7O,oBAET,CACA,gBAAAsC,CAAiB9+O,EAAM6+O,GACrB,MAAM,eACJnD,GACEj7O,KACEusN,EAAY,CAChBK,QAAS,KACP,MAAMG,EAAK/sN,KAAKy7O,aAAal8O,GACzBwtN,IACF/sN,KAAKmrC,IAAI,YAAY5rC,0BAA6B6+O,KAClDrxB,EAAG+wB,WAAWM,IAEhBnD,EAAehuB,oBAAoB1tN,EAAK,EAE1CstN,QAAS,OACTC,WAAY,OACZ7/M,QAASrI,IACP5E,KAAK+8B,KAAK,oBAAoBx9B,sBAA0BqF,EAAM,GAGlEq2O,EAAe/jN,OAAOq1L,EAAWhtN,IAAQS,KAAKw7O,cAAcj8O,GAC9D,CACA,iBAAAi9O,CAAkBx2L,EAAOs4L,GACvB,MAAM,IACJ5pE,EAAG,eACHumE,EAAc,OACd9/D,GACEn7K,MACE,KACJ4J,EAAI,KACJrK,EAAI,KACJ8zJ,EAAI,KACJlmH,EAAI,UACJ+zJ,GACEo9C,EACEC,EAAar9C,EAAUhxC,UAAU3wJ,GACjCi/O,EAAuBl0N,KAAKrS,YAAYgM,MAC9Cs6N,EAAWtlM,MAAQulM,EACnB,MAAMC,EAAgBprF,EAAKrB,MAAM9B,UAC3BwuF,EAAgBvxM,EAAOA,EAAK6kH,MAAM9B,UAAY,KACxB,IAAxBuuF,EAAcxlM,QAChBwlM,EAAcxlM,MAAQulM,GAEpBE,GAAyC,IAAxBA,EAAczlM,QACjCylM,EAAczlM,MAAQulM,GAQxB,MAAMtmE,EAAaiD,EAAO3nB,MAC1B,IAAImrF,GAAuB,EACd,UAATp/O,GAA6E,gBAA1C,MAAd24K,OAAqB,EAASA,EAAWlgH,aAChE2mL,GAAwB3+O,KAAKq7O,oBAAuC,IAAjBn6C,EAAUh0L,IAAYlN,KAAKq7O,mBAAmBjqF,KAAO8vC,EAAU9vC,GAClHpxJ,KAAKq7O,mBAAqBn6C,GAE5B,MAAM09C,EAAYvrF,EAAKp6G,MACjBszK,EAAY,CAChBK,QAAS,KAEP,GADA2xB,EAAW3qD,aAAetpK,KAAKrS,YAAYgM,MACvC06N,EAAsB,CACxB,MAAM5xB,EAAK/sN,KAAKy7O,aAAal8O,GAC7B,GAAIwtN,EAAI,CACN,MAAMlqC,EAAQ+7D,EAAY7xB,EAAG8xB,gBACzB5hP,KAAK6rF,IAAI+5F,IAAU,KACrB7iL,KAAKmrC,IAAI,kDAAkDyzM,aAAqB/7D,UAAcxvB,EAAKjC,OACnG27D,EAAG8xB,gBAAkBD,EAEzB,CACF,CACA5+O,KAAK8+O,eAAel1O,EAAMrK,EAAK,EAEjCstN,QAAS,OAGTC,WAAY,KAEV,MAAM9/M,EAAMsd,KAAKrS,YAAYgM,MAC7Bs6N,EAAW1qD,WAAa0qD,EAAWvxO,IAAMA,EACb,IAAxByxO,EAAcvpN,QAChBupN,EAAcvpN,MAAQloB,GAEpB0xO,GAAyC,IAAxBA,EAAcxpN,QACjCwpN,EAAcxpN,MAAQloB,GAExB,MAAM,aACJyuO,GACEz7O,KACEwvL,EAAa,CAAC,EACpB,IAAK,MAAMjwL,KAAQk8O,EACjBjsD,EAAWjwL,GAAQszL,GAAaE,YAAY0oD,EAAal8O,IAE3DS,KAAKu7O,aAAah8O,GAAQ,EACb,UAATA,GAA6B,UAATA,EACtBS,KAAKu7O,aAAa7nF,WAAa,GAE/B1zJ,KAAKu7O,aAAa/nF,MAAQ,EAC1BxzJ,KAAKu7O,aAAa9nF,MAAQ,GAE5BzzJ,KAAK00K,IAAIrrE,QAAQokD,EAAOkiC,gBAAiB,CACvCpwL,OACA8zJ,OACAlmH,OACA+zJ,YACAt5L,OAAQyrJ,EAAK9zJ,KACbiwL,cACA,EAEJviL,QAASrI,IAEP,MAAMohD,EAAQ,CACZzmD,KAAMmuJ,EAAWipC,YACjB/uL,OAAQyrJ,EAAK9zJ,KACbi3B,QAASm3H,EAAa8nF,oBACtBsJ,iBAAkBx/O,EAClB8zJ,OACAlmH,OACA+zJ,YACAt8L,QACAe,IAAKf,EACL+zK,OAAO,GAET,GAAI/zK,EAAM/H,OAASqvN,aAAa8yB,mBAG9Bh5L,EAAMxvB,QAAUm3H,EAAasxF,sBACxB,CACL,MAAMC,IAAqBl/O,KAAKu7O,aAAah8O,GAC7CymD,EAAMxvB,QAAUm3H,EAAa8nF,oBAI7Bz1O,KAAK+8B,KAAK,UAAUmiN,KAAoBxqE,EAAIrgH,OAAOo+K,mDAAmDlzO,mBAClG2/O,GAAoBxqE,EAAIrgH,OAAOo+K,sBACjCzsL,EAAM2yH,OAAQ,EAElB,CACAjE,EAAIrrE,QAAQokD,EAAO+qB,MAAOxyH,EAAM,GAGpCi1L,EAAe/jN,OAAOq1L,EAAWhtN,IAAQS,KAAKw7O,cAAcj8O,GAC9D,CACA,gBAAAm9K,CAAiB12H,EAAOp8C,GACtB,MAAM,eACJqxO,GACEj7O,KACEm/O,EAAiB5/O,IAAQ,CAC7BqtN,QAAS5sN,KAAKo/O,eAAepwO,KAAKhP,KAAMT,EAAMqK,EAAK0zK,YAAa1zK,EAAK2zK,WACrEsvC,QAAS,OAGTC,WAAY,KAEV9sN,KAAK00K,IAAIrrE,QAAQokD,EAAO4xF,eAAgB,CACtC9/O,QACA,EAEJ0N,QAASrI,IACP5E,KAAK+8B,KAAK,yBAAyBx9B,iBAAqBqF,EAAM,IAG9DgF,EAAKrK,KACP07O,EAAe/jN,OAAOioN,EAAev1O,EAAKrK,MAAOqK,EAAKrK,MAEtDS,KAAKq8O,uBAAuB79O,SAAQe,IAClC07O,EAAe/jN,OAAOioN,EAAe5/O,GAAOA,EAAK,GAGvD,CACA,YAAAo9O,CAAa32L,EAAOp8C,GAClB,MAAM,KACJypJ,EAAI,KACJlmH,GACEvjC,EACE01O,EAAoB,GACpB7uF,EAAoBtjH,EAAOA,EAAKsjH,kBAAoB4C,EAAK5C,kBAC3DA,EAAkBN,GACpBmvF,EAAkBz9O,KAAK,eAEnB4uJ,EAAkBN,IACpBmvF,EAAkBz9O,KAAK,SAErB4uJ,EAAkBN,IACpBmvF,EAAkBz9O,KAAK,UAiBM,IAA7By9O,EAAkBn/O,QACpBH,KAAK+8B,KAAK,oEAAoEs2H,EAAK9zJ,eAAe8zJ,EAAK9oF,aAAa8oF,EAAKjC,MAE3HpxJ,KAAKu/O,cAjBe,KAClB,MAAMt7N,EAAMqG,KAAKrS,YAAYgM,MAC7BovI,EAAKrB,MAAM9B,UAAUljJ,IAAMiX,EACvBkpB,IACFA,EAAK6kH,MAAM9B,UAAUljJ,IAAMiX,GAE7B,MAAM+tI,EAAQ7kH,EAAOA,EAAK6kH,MAAQqB,EAAKrB,MACvChyJ,KAAK00K,IAAIrrE,QAAQokD,EAAOoiC,cAAe,CACrCx8B,OACAlmH,OACA6kH,QACA9kJ,GAAImmJ,EAAK9zJ,MACT,GAK2B+/O,EACjC,CACA,aAAAzC,CAAc72L,EAAOp8C,GACnB5J,KAAKw/O,aACP,CAIA,WAAA9C,CAAY12L,EAAOp8C,GACH5J,KAAKq8O,uBAAuBh8O,QAAO,CAACy6D,EAAKv7D,KACrD,MAAMwtN,EAAK/sN,KAAKy7O,aAAal8O,GAQ7B,OAPIwtN,GAAQnjN,EAAKrK,MAAQqK,EAAKrK,OAASA,IACrCwtN,EAAG0yB,QAAS,EACP1yB,EAAG3uB,QACN2uB,EAAG3uB,OAAQ,EACXp+L,KAAKmrC,IAAI,GAAG5rC,4BAGTu7D,KAAWiyJ,IAAMA,EAAG3uB,MAAM,IAChC,KAEDp+L,KAAKmrC,IAAI,sCACTnrC,KAAKu/O,cAAa,KAChBv/O,KAAKq8O,uBAAuB79O,SAAQe,IAClC,MAAMwtN,EAAK/sN,KAAKy7O,aAAal8O,GACzBwtN,IACFA,EAAG0yB,QAAS,EACd,IAEF,MAAM,YACJrE,GACEp7O,KACCo7O,GAA0C,SAA3BA,EAAYz1C,YAMhC3lM,KAAKmrC,IAAI,qCAETiwM,EAAYkC,eAPNlC,GACFp7O,KAAKmrC,IAAI,qEAAqEiwM,EAAYz1C,aAMrE,IAG/B,CACA,cAAA/oB,CAAe52H,GAAO,QACpBxvB,IAEKA,EAAQy9H,UAAU9zJ,SAGvBH,KAAKw2B,QAAUA,EACXx2B,KAAKq8O,uBAAuBl8O,OAC9BH,KAAKu/O,aAAav/O,KAAK87O,2BAA2B9sO,KAAKhP,OAEvDA,KAAK87O,6BAET,CACA,WAAA0D,GACE,MAAM,IACJ9qE,EAAG,QACHl+I,EAAO,MACPg6I,GACExwK,KACJ,IAAKwwK,GAAqB,OAAZh6I,EACZ,OAGF,IAD0Bx2B,KAAKq8O,uBACRl8O,OACrB,OAEF,MAAMk0D,EAASqgH,EAAIrgH,OACbw5D,EAAc2iD,EAAM3iD,YACpB+oD,EAAiBpgJ,EAAQogI,oBAGzBk7E,EAAmBt7M,EAAQ69H,MAAwC,OAAhChgG,EAAO+9K,qBAAgC/9K,EAAO+9K,qBAAuB/9K,EAAOy9K,iBACrH,GAAItkF,EAAeskF,IAAqBA,EAAmB,EAAG,CAC5D,MAAM4N,EAAsBziP,KAAKmrB,IAAI0pN,EAAkBl7D,GACjD+oE,EAA2B1iP,KAAK6lD,MAAM+qE,EAAc+oD,GAAkBA,EAAiB8oE,EAC7F1/O,KAAK4/O,gBAAgB/xH,EAAa+oD,EAAgB+oE,EACpD,CACA,GAAInyF,EAAen5F,EAAO09K,4BAA8B19K,EAAO09K,0BAA4B,EAAG,CAC5F,MAAM8N,EAAoB5iP,KAAKmrB,IAAIisC,EAAOkrI,gBAAiBlrI,EAAO09K,2BAC5D+N,EAAuB7iP,KAAKmrB,IAAIy3N,EAAmBjpE,GACnDmpE,EAA4B9iP,KAAK6lD,MAAM+qE,EAAc+oD,GAAkBA,EAAiBkpE,EAC9F9/O,KAAKggP,iBAAiBnyH,EAAa+oD,EAAgBmpE,EACrD,CACF,CACA,eAAAH,CAAgB/xH,EAAa+oD,EAAgB+oE,GAC3C,MAAM,QACJnpN,EAAO,aACPilN,GACEz7O,KACsBA,KAAKq8O,uBACb79O,SAAQe,IACxB,MAAMwtN,EAAK0uB,EAAal8O,GACxB,GAAIwtN,EAAI,CACN,MAAMp2M,EAAWk8K,GAAaE,YAAYg6B,GAE1C,GAAIp2M,EAASxW,OAAS,GAAKw/O,EAA2BhpO,EAASsiC,MAAM,GAAI,CAMvE,GALAj5C,KAAK00K,IAAIrrE,QAAQokD,EAAOwyF,oBAAqB,CAC3Cl7D,UAAW46D,IAIE,MAAXnpN,GAAmBA,EAAQ69H,KAC7Br0J,KAAK00K,IAAIrrE,QAAQokD,EAAOyyF,yBAA0B,CAChDn7D,UAAW46D,SAER,GAAI5yB,EAAG3uB,OAASznL,EAAS3J,IAAI2J,EAASxW,OAAS,GAAK0tH,EAA+B,EAAjB+oD,EAEvE,YADA52K,KAAKmrC,IAAI,gBAAgB5rC,sDAG3BS,KAAK00K,IAAIrrE,QAAQokD,EAAOgvB,gBAAiB,CACvCa,YAAa,EACbC,UAAWoiE,EACXpgP,QAEJ,CACF,IAEJ,CACA,gBAAAygP,CAAiBnyH,EAAa+oD,EAAgBmpE,GAC5C,MAAM,aACJtE,GACEz7O,KACsBA,KAAKq8O,uBACb79O,SAAQe,IACxB,MAAMwtN,EAAK0uB,EAAal8O,GACxB,GAAIwtN,EAAI,CACN,MAAMp2M,EAAWk8K,GAAaE,YAAYg6B,GACpCozB,EAAoBxpO,EAASxW,OAEnC,GAAIggP,EAAoB,EACtB,OAEF,MAAM1sD,EAAc98K,EAASsiC,MAAMknM,EAAoB,GACjDp7D,EAAYpuK,EAAS3J,IAAImzO,EAAoB,GAEnD,GAAIJ,EAA4BtsD,GAAe5lE,GAAe4lE,GAAe5lE,GAAek3D,EAC1F,OACK,GAAIgoC,EAAG3uB,OAASvwE,EAAck3D,EAAY,EAAInO,EAEnD,YADA52K,KAAKmrC,IAAI,gBAAgB5rC,uDAG3BS,KAAK00K,IAAIrrE,QAAQokD,EAAOgvB,gBAAiB,CACvCa,YAAamW,EACblW,UAAWn4F,IACX7lF,QAEJ,IAEJ,CAOA,0BAAAu8O,GACE,IAAK97O,KAAKw2B,UAAYx2B,KAAKwwK,QAAUxwK,KAAKo7O,aAA+C,SAAhCp7O,KAAKo7O,YAAYz1C,WACxE,OAEF,MAAM,QACJnvK,EAAO,IACPk+I,EAAG,MACHlE,EAAK,YACL4qE,GACEp7O,KACEogP,EAAgB5pN,EAAQy9H,UAAU,GAAGh7G,MAAQziB,EAAQw+H,cACrDqrF,EAAgB7vE,EAAMnvG,SACtBi/K,EAAa9yF,EAAe4tF,EAAY/5K,UAAY+5K,EAAY/5K,SAAW,EAC7E7qC,EAAQ69H,MAAQqgB,EAAIrgH,OAAO89K,sBAE7BiJ,EAAY/5K,SAAW+jB,IACvBplF,KAAKugP,oBAAoB/pN,KAChB4pN,EAAgBE,GAAcF,EAAgBC,IAAkB7yF,EAAe6yF,MAKxFrgP,KAAKmrC,IAAI,qCAAqCi1M,EAAcx2K,QAAQ,MACpEwxK,EAAY/5K,SAAW++K,EAE3B,CACA,mBAAAG,CAAoB9pE,GAClB,MAAM2kE,EAAcp7O,KAAKo7O,YACnBnnF,EAAYwiB,EAAaxiB,UAE/B,GADYA,EAAU9zJ,QACXs2K,EAAapiB,MAAuB,MAAf+mF,GAAuBA,EAAYoF,qBAAsB,CACvF,MAAMvnM,EAAQh8C,KAAKmrB,IAAI,EAAG6rI,EAAU,GAAGh7G,OACjCjsC,EAAM/P,KAAKmrB,IAAI6wB,EAAOA,EAAQw9H,EAAazhB,eACjDh1J,KAAKmrC,IAAI,mCAAmCiwM,EAAY/5K,uCAAuCpoB,KAASjsC,MACxGouO,EAAYoF,qBAAqBvnM,EAAOjsC,EAC1C,CACF,CACA,kBAAA+uO,GACE,MAAM,0BACJb,EAAyB,eACzBD,EAAc,cACdO,GACEx7O,KAMEygP,EAAqB9kP,OAAOwK,KAAKq1O,GAAer7O,OACtD,GAAIsgP,KAAwBvF,GAAoD,IAAvBuF,GAA4B,eAAgBjF,GAAgB,CAEnHx7O,KAAK0gP,oBAAoBlF,GACzBx7O,KAAKw7O,cAAgB,CAAC,EAEtB,MAAMnvB,EAAUrsN,KAAKq8O,uBACrB,GAAIhwB,EAAQlsN,OACVH,KAAK00K,IAAIrrE,QAAQokD,EAAOkzF,eAAgB,CACtCxlE,OAAQn7K,KAAKm7K,SAEfkxC,EAAQ7tN,SAAQe,IACd07O,EAAexuB,YAAYltN,EAAK,QAE7B,CACL,MAAMqF,EAAQ,IAAI9G,MAAM,qDACxBkC,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaizF,iCACtBjoE,OAAO,EACP/zK,QACAikC,OAAQjkC,EAAM+Y,SAElB,CACF,CACF,CACA,mBAAA+iO,CAAoBvlE,GAClB,MAAM,aACJsgE,EAAY,YACZL,GACEp7O,KACJ,IAAKo7O,EACH,MAAMt9O,MAAM,wDAEd,IAAK,MAAM+3N,KAAa16C,EACtB,IAAKsgE,EAAa5lB,GAAY,CAC5B,IAAIgrB,EACJ,MAAM1iF,EAAQgd,EAAO06C,GACrB,IAAK13D,EACH,MAAMrgK,MAAM,kCAAkC+3N,6BAGhD,IAAIr3D,GAAwG,KAArD,OAAzCqiF,EAAoB1iF,EAAMwP,iBAAsB,EAASkzE,EAAkB1iN,QAAQ,MAAeggI,EAAMwP,WAAaxP,EAAMK,MACrIA,GAC4B,UAA1Bq3D,EAAUnyN,MAAM,EAAG,KACrB86J,EAAQ6O,GAAuB7O,EAAOx+J,KAAKs7O,eAG/C,MAAM8C,EAAW,GAAGjgF,EAAMnmG,oBAAoBwmG,IAC9Cx+J,KAAKmrC,IAAI,yBAAyBizM,MAClC,IACE,MAAMrxB,EAAK0uB,EAAa5lB,GAAaulB,EAAY0F,gBAAgB1C,GAC3D2C,EAASlrB,EACf71N,KAAKghP,kBAAkBD,EAAQ,cAAe/gP,KAAKihP,kBACnDjhP,KAAKghP,kBAAkBD,EAAQ,YAAa/gP,KAAKkhP,gBACjDlhP,KAAKghP,kBAAkBD,EAAQ,QAAS/gP,KAAKmhP,kBAEzCnhP,KAAKs7O,cACPt7O,KAAKghP,kBAAkBD,EAAQ,kBAAkB,CAACxhP,EAAMymD,KAEtD,MAAMo7L,EAAgBp7L,EAAMo7L,cACP,MAAjBA,GAAyBA,EAAcjhP,QACzCH,KAAK00K,IAAIrrE,QAAQokD,EAAO4xF,eAAgB,CACtC9/O,KAAMs2N,GAEV,IAGJ71N,KAAKm7K,OAAO06C,GAAa,CACvBnsN,OAAQqjN,EACRvuD,MAAOA,EACPxmG,UAAWmmG,EAAMnmG,UACjB21G,WAAYxP,EAAMwP,WAClB/4E,SAAUupE,EAAMvpE,SAChB1nF,GAAIixJ,EAAMjxJ,GAEd,CAAE,MAAOvH,GACP3F,KAAK4E,MAAM,2CAA2Ce,EAAIgY,WAC1D3d,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAa6nF,uBACtB78D,OAAO,EACP/zK,MAAOe,EACPo5O,iBAAkBlpB,EAClBuoB,SAAUA,GAEd,CACF,CAEJ,CACA,YAAIlC,GACF,IAAImF,EAAaC,EACjB,MAAM9wE,GAAuC,OAA7B6wE,EAAcrhP,KAAKwwK,QAAiF,OAAtD8wE,EAAwBD,EAAYl4K,oBAA9C,EAAgFm4K,EAAsB/kP,KAAK8kP,EAAa,YAAcrhP,KAAKwwK,MAC/L,OAAgB,MAATA,OAAgB,EAASA,EAAM36H,GACxC,CACA,gBAAAorM,CAAiB1hP,GACf,MAAM,eACJ07O,GACEj7O,KACci7O,EAAen2O,QAAQvF,GAC/BstN,SACZ,CACA,cAAAq0B,CAAe3hP,GACb,IAAIgiP,EACJ,GAAmG,YAAnD,OAA1CA,EAAqBvhP,KAAKo7O,kBAAuB,EAASmG,EAAmB57C,YAEjF,YADA3lM,KAAKu9O,YAAYh+O,GAGnB,MAAM,eACJ07O,GACEj7O,KACci7O,EAAen2O,QAAQvF,GAC/ButN,aACVmuB,EAAehuB,oBAAoB1tN,EACrC,CACA,gBAAA4hP,CAAiB5hP,EAAMymD,GACrB,IAAIw7L,EACJ,MAAM58O,EAAQ,IAAI9G,MAAM,GAAGyB,iDAA+F,OAA1CiiP,EAAqBxhP,KAAKo7O,kBAAuB,EAASoG,EAAmB77C,cAC7J3lM,KAAK4E,MAAM,GAAGA,IAASohD,GAGvBhmD,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAa8zF,uBACtB1C,iBAAkBx/O,EAClBqF,QACA+zK,OAAO,IAGT,MAAM4zC,EAAYvsN,KAAKi7O,eAAen2O,QAAQvF,GAC1CgtN,GACFA,EAAUt/M,QAAQrI,EAEtB,CAGA,cAAAw6O,CAAe7/O,EAAM+9K,EAAaC,GAChC,MAAM,MACJ/M,EAAK,YACL4qE,EAAW,eACXH,EAAc,aACdQ,GACEz7O,KACE+sN,EAAK0uB,EAAal8O,GACxB,IAAKixK,IAAU4qE,IAAgBruB,EAG7B,OAFA/sN,KAAK+8B,KAAK,iCAAiCx9B,8CAC3C07O,EAAehuB,oBAAoB1tN,GAGrC,MAAM8gP,EAAgB7yF,EAAegjB,EAAMnvG,UAAYmvG,EAAMnvG,SAAW+jB,IAClEk7J,EAAa9yF,EAAe4tF,EAAY/5K,UAAY+5K,EAAY/5K,SAAW+jB,IAC3Es8J,EAAczkP,KAAKmrB,IAAI,EAAGk1J,GAC1BqkE,EAAY1kP,KAAK6+B,IAAIyhJ,EAAW8iE,EAAeC,GACjDqB,EAAYD,KAAiB30B,EAAG0yB,QAAU1yB,EAAG3uB,QAC/C2uB,EAAG3uB,OAAQ,EACXp+L,KAAKmrC,IAAI,aAAau2M,KAAeC,eAAuBpiP,kBAC5DwtN,EAAGx7M,OAAOmwO,EAAaC,IAGvB1G,EAAehuB,oBAAoB1tN,EAEvC,CAGA,cAAAu/O,CAAel1O,EAAMrK,GACnB,MAAMwtN,EAAK/sN,KAAKy7O,aAAal8O,GAC7B,GAAKwtN,EAMLA,EAAG3uB,OAAQ,EACX2uB,EAAG60B,aAAah4O,QANd,IAAK5J,KAAKw7O,cAAcj8O,GACtB,MAAM,IAAIzB,MAAM,+BAA+ByB,wCAMrD,CAKA,YAAAggP,CAAasC,EAAax1B,EAAUrsN,KAAKq8O,wBACvC,IAAKhwB,EAAQlsN,OAGX,OAFAH,KAAKmrC,IAAI,iEACThqC,QAAQC,UAAUuD,KAAKk9O,GAGzB,MAAM,eACJ5G,GACEj7O,KAGE8hP,EAAqBz1B,EAAQtrN,KAAIxB,GAAQ07O,EAAetuB,cAAcptN,KAC5E4B,QAAQ81C,IAAI6qM,GAAoBn9O,MAAK,KAEnCk9O,IACAx1B,EAAQ7tN,SAAQe,IACd,MAAMwtN,EAAK/sN,KAAKy7O,aAAal8O,GAIjB,MAANwtN,GAAcA,EAAGC,UACrBiuB,EAAehuB,oBAAoB1tN,EACrC,GACA,GAEN,CACA,oBAAA88O,GACE,OAAO1gP,OAAOwK,KAAKnG,KAAKy7O,aAC1B,CACA,iBAAAuF,CAAkBzhP,EAAMymD,EAAO9+C,GAC7B,MAAMwC,EAAS1J,KAAKy7O,aAAal8O,GACjC,IAAKmK,EACH,OAEF,MAAMjL,EAAWyI,EAAG8H,KAAKhP,KAAMT,GAC/BS,KAAKwoN,UAAUjpN,GAAMsC,KAAK,CACxBmkD,QACAvnD,aAEFiL,EAAOusC,iBAAiB+P,EAAOvnD,EACjC,CACA,qBAAAg/O,CAAsBl+O,GACpB,MAAMmK,EAAS1J,KAAKy7O,aAAal8O,GAC5BmK,GAGL1J,KAAKwoN,UAAUjpN,GAAMf,SAAQgsB,IAC3B9gB,EAAO0xF,oBAAoB5wE,EAAEw7B,MAAOx7B,EAAE/rB,SAAS,GAEnD,GAk5MAsjP,mBAAoB3kB,GACpB4kB,gBA9lmBF,MACE,WAAAj3N,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKiiP,cAAgB,EACrBjiP,KAAKkiP,oBAAsB,CAAC,EAC5BliP,KAAKmrC,SAAM,EACXnrC,KAAK+8B,UAAO,EACZ/8B,KAAK4E,WAAQ,EACb5E,KAAK00K,IAAMA,EACX10K,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQ,WACnC9gF,KAAK+8B,KAAO+jD,EAAO/jD,KAAK/tB,KAAK8xE,EAAQ,cACrC9gF,KAAK4E,MAAQk8E,EAAOl8E,MAAMoK,KAAK8xE,EAAQ,YACvC9gF,KAAK40K,mBACP,CACA,iBAAAA,GACE,MAAMF,EAAM10K,KAAK00K,IACjBA,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACnC00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,KACpD,CACA,mBAAAy1K,GACE,MAAMf,EAAM10K,KAAK00K,IACZA,IAGLA,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACpC00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKmiP,WAAYniP,MACvC00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOkvB,cAAe38K,KAAK48K,eAAgB58K,MACrD,CACA,OAAAiyE,GACEjyE,KAAKy1K,sBAELz1K,KAAK00K,IAAM,KACX10K,KAAKkiP,oBAAsB,CAAC,CAC9B,CACA,SAAArtE,CAAUC,GAAgB,CAC1B,QAAAC,GACE/0K,KAAKiiP,cAAgB,CACvB,CACA,oBAAAG,CAAqB/uF,GACnB,OAAgB,MAARA,OAAe,EAASA,EAAK9zJ,QAAU+0K,GAAyBjhB,EAAK9oF,MAAQvqE,KAAK00K,IAAIojE,SAChG,CACA,iBAAA5iE,GACEl1K,KAAKiiP,cAAgB,EACrBjiP,KAAKkiP,oBAAsB,CAAC,CAC9B,CACA,cAAAtlE,GACE58K,KAAKiiP,cAAgB,CACvB,CACA,OAAAh1O,CAAQ+4C,EAAOp8C,GACb,IAAIy4O,EAAYC,EAChB,GAAI14O,EAAK+uK,MACP,OAEF,MAAMjE,EAAM10K,KAAK00K,IACXztK,EAAU2C,EAAK3C,QACrB,OAAQ2C,EAAK4sB,SACX,KAAKm3H,EAAaonC,gBAClB,KAAKpnC,EAAa21B,kBAClB,KAAK31B,EAAa40F,eAClB,KAAK50F,EAAa41B,iBAEhB,YADA35K,EAAKw/K,YAAcppL,KAAKwiP,2BAA2B54O,IAErD,KAAK+jJ,EAAaq6C,mBAEhB,GAAgC,OAA3Bq6C,EAAaz4O,EAAKypJ,OAAiBgvF,EAAW1zH,IAKjD,YAJA/kH,EAAKw/K,YAAc,CACjBlqL,OAjFC,EAkFDqU,MA1EJ,IA+EF,KAAKo6I,EAAaipC,SAClB,KAAKjpC,EAAaoyC,mBAKd,OAFAn2L,EAAKw/K,YAAcppL,KAAKwiP,2BAA2B54O,QACnDA,EAAKw/K,YAAYlqL,OA1FE,GA6FvB,KAAKyuJ,EAAa4rB,kBAClB,KAAK5rB,EAAa6rB,oBAChB,CACE,IAAIipE,EAAeC,EAEnB,MAAMrpE,EAAazvK,EAAKhC,SAAW0sK,GAAyB1qK,EAAK2gE,MAAQmqG,EAAIojE,UACzEluO,EAAK4sB,UAAYm3H,EAAa4rB,mBAA0D,OAAjCkpE,EAAgB74O,EAAK3C,UAA4E,OAAvDy7O,EAAwBD,EAAchsE,eAAyBisE,EAAsBruF,KACxLzqJ,EAAKw/K,YAAcppL,KAAK2iP,+BAA+B/4O,EAAMyvK,IAG7DzvK,EAAK0/K,YAAa,EAClB1/K,EAAKw/K,YAAcppL,KAAK4iP,qBAAqBh5O,EAAMyvK,GAEvD,CACA,OACF,KAAK1rB,EAAaqrB,iBAClB,KAAKrrB,EAAaorB,mBAIhB,YAH0D,iBAAnC,MAAX9xK,OAAkB,EAASA,EAAQsjE,SAC7C3gE,EAAKw/K,YAAcppL,KAAK2iP,+BAA+B/4O,EAAM3C,EAAQsjE,SAGzE,KAAKojF,EAAaurB,uBAClB,KAAKvrB,EAAasrB,yBAClB,KAAKtrB,EAAayrB,oBAClB,KAAKzrB,EAAawrB,4BAChB,GAAIlyK,EAAS,CACX,MAAMsjE,EAAQmqG,EAAInG,OAAOmG,EAAIojE,WAC7B,GAAIvtK,IAAUtjE,EAAQ1H,OAAS80K,IAAmC9pG,EAAM+2G,cAAcr6K,EAAQwpK,UAAYxpK,EAAQ1H,OAAS80K,IAAsC9pG,EAAMi3G,iBAAiBv6K,EAAQwpK,UAM9L,OAHA7mK,EAAKw/K,YAAcppL,KAAK2iP,+BAA+B/4O,EAAM8qK,EAAIojE,WACjEluO,EAAKw/K,YAAYlqL,OA5HA,OA6HjB0K,EAAKw/K,YAAY71K,MAtHI,EAyHzB,CACA,OACF,KAAKo6I,EAAas5E,oCAChB,CACE,MAAM18J,EAAQmqG,EAAInG,OAAOmG,EAAIojE,WACvB+K,EAA+B,MAATt4K,OAAgB,EAASA,EAAMuoE,MAAM,cAC7D+vG,EACFj5O,EAAKw/K,YAAc,CACjBlqL,OAxIe,EAyIfqU,MAjImB,EAkInBuvO,UAAWD,GAGb7iP,KAAK+iP,eAAen5O,EAExB,CACA,OACF,KAAK+jJ,EAAa6nF,uBAClB,KAAK7nF,EAAaqyD,kBAClB,KAAKryD,EAAa8nF,oBAEhB,YADA7rO,EAAKw/K,YAAcppL,KAAK4iP,qBAAqBh5O,EAAoC,OAA7B04O,EAAc14O,EAAK2gE,OAAiB+3K,EAAc5tE,EAAIojE,YAE5G,KAAKnqF,EAAa60C,mBAClB,KAAK70C,EAAa8zF,uBAClB,KAAK9zF,EAAasxF,kBAClB,KAAKtxF,EAAaq1F,mBAClB,KAAKr1F,EAAa+xB,qBAClB,KAAK/xB,EAAas1F,sBAClB,KAAKt1F,EAAau1F,sBAKhB,YAJAt5O,EAAKw/K,YAAc,CACjBlqL,OAhKG,EAiKHqU,MAzJF,IA6JA3J,EAAKrK,OAASmuJ,EAAWu1E,kBAC3BjjO,KAAK+iP,eAAen5O,EAExB,CACA,cAAAm5O,CAAen5O,GACb,MAAMyvK,EAAar5K,KAAKoiP,qBAAqBx4O,EAAKypJ,MAElDzpJ,EAAK0/K,YAAa,EAClB1/K,EAAKw/K,YAAcppL,KAAK4iP,qBAAqBh5O,EAAMyvK,EACrD,CACA,8BAAAspE,CAA+B/4O,EAAMyvK,GACnC,MACMsK,EAAcH,GADRxjL,KAAK00K,IACsBrgH,OAAOiiH,mBAAoB1sK,GAC5Dg6K,EAAa5jL,KAAKiiP,gBAExB,GADch+D,GAAYN,EAAaC,EAAYP,GAAez5K,GAAOA,EAAKrD,UAE5E,MAAO,CACLrH,OAjLQ,EAkLRqU,MA/KA,EAgLAowK,cACAC,cAGJ,MAAMwF,EAAcppL,KAAK4iP,qBAAqBh5O,EAAMyvK,GAKpD,OAJIsK,IACFyF,EAAYzF,YAAcA,EAC1ByF,EAAYxF,WAAaA,GAEpBwF,CACT,CACA,0BAAAo5D,CAA2B54O,GACzB,MAAM8qK,EAAM10K,KAAK00K,IAGXyuE,EAAoBnjP,KAAKoiP,qBAAqBx4O,EAAKypJ,MACnD9oF,EAAQmqG,EAAInG,OAAO40E,IACnB,eACJ9tD,EAAc,cACdwzC,GACEn0D,EAAIrgH,OACFsvH,EAAcH,GAAe55K,EAAK4sB,QAAQoF,WAAW,OAASitM,EAAgBxzC,EAAgBzrL,GAC9Fw5O,EAAiB1uE,EAAInG,OAAOluK,QAAO,CAACy6D,EAAKyP,IAAUzP,EAAMyP,EAAMi2G,eAAe,GAEpF,GAAIj2G,IACE3gE,EAAK4sB,UAAYm3H,EAAaipC,UAChCrsH,EAAMi2G,gBAEMyD,GAAYN,EAAay/D,EAAgB//D,GAAez5K,GAAOA,EAAKrD,WAEhF,MAAO,CACLrH,OAlNM,EAmNNqU,MAhNF,EAiNEowK,cACAC,WAAYw/D,GAMlB,MAAMh6D,EAAcppL,KAAK4iP,qBAAqBh5O,EAAMu5O,GAMpD,OAJIx/D,IACFyF,EAAYzF,YAAcA,EAC1ByF,EAAYxF,WAAaw/D,GAEpBh6D,CACT,CACA,oBAAAw5D,CAAqBh5O,EAAMyvK,GACzB,MAAM3E,EAAM10K,KAAK00K,IACb2E,UACFA,EAAa3E,EAAIojE,WAEnB,MAAMvtK,EAAQvqE,KAAK00K,IAAInG,OAAO8K,GAC9B,GAAI9uG,EAAO,CACT,IAAI84K,EAAaC,EACjB,MAAMn6D,EAAev/K,EAAK4sB,QAC1B+zC,EAAMk2G,YACF0I,IAAiBx7B,EAAa8nF,qBAChClrK,EAAMi2G,gBAGR,IAAIs/C,GAAa,EACjB,MAAM,OACJvxD,EAAM,UACNupE,EAAS,aACTtE,EAAY,aACZ+C,GACE7hE,EACCA,EAAI4+D,mBACP5+D,EAAIojE,WAAa,GAEnB,MAAMyL,EAA6C,OAA5BF,EAAcz5O,EAAKypJ,WAAgB,EAASgwF,EAAY9jP,KAGzEikP,GADoBD,IAAkBjvE,IAA2B6U,IAAiBx7B,EAAaq6C,oBAAgD,UAA1Bp+L,EAAKm1O,mBAAiC51D,IAAiBx7B,EAAa6nF,wBAA0BrsD,IAAiBx7B,EAAa8nF,uBAClMlnE,EAAOnsK,MAAK,EAC/DytK,gBACItlG,EAAMslG,aAAeA,IAGrB4zE,EAD8C,UAA1B75O,EAAKm1O,mBAAiC51D,IAAiBx7B,EAAa6nF,wBAA0BrsD,IAAiBx7B,EAAa8nF,sBACjGlnE,EAAOnsK,MAAK,EAC/D6qK,WACA4C,gBACItlG,EAAM0iG,WAAaA,GAAY1iG,EAAMslG,aAAeA,KAExDtwK,KAAMmkP,EACNjzE,QAASkzE,GAC4B,OAAlCL,EAAiB15O,EAAK3C,SAAmBq8O,EAAiB,CAAC,EAChE,IAAK,IAAIx/O,EAAIyqK,EAAOpuK,OAAQ2D,KAAM,CAChC,MAAMu1F,GAAav1F,EAAIg0O,GAAavpE,EAAOpuK,OAC3C,GAAIk5F,IAAcy+I,GAAaz+I,GAAam6I,GAAgBn6I,GAAak9I,GAAgD,IAAhChoE,EAAOl1E,GAAWonF,UAAiB,CAC1H,IAAImjE,EAAoBC,EACxB,MAAMC,EAAiBv1E,EAAOl1E,GAE9B,GAAI8vF,IAAiBx7B,EAAaipC,UAAY2sD,IAAkBjvE,IAA0B1qK,EAAKypJ,KAAM,CACnG,MAAMojB,EAAelI,EAAOl1E,GAAW7iE,QACvC,GAAIigJ,EAAc,CAChB,MAAMstE,EAAgBl/D,GAAkBj7K,EAAKypJ,KAAMojB,EAAaxiB,UAAWrqJ,EAAKypJ,KAAKp6G,OACrF,GAAqB,MAAjB8qM,GAAyBA,EAAcp1H,IACzC,QAEJ,CACF,KAAO,IAAI+0H,IAAsBrvE,IAAmCyvE,EAAexiE,cAAcqiE,IAAyBD,IAAsBrvE,IAAsCyvE,EAAetiE,iBAAiBmiE,GAEpN,SACK,GAAIJ,IAAkBjvE,IAAuE,OAA3CsvE,EAAqBr5K,EAAMk3G,cAAwBmiE,EAAmBxhP,MAAKquK,GAAWqzE,EAAexiE,cAAc7Q,MAAa8yE,IAAkBjvE,IAAgF,OAAjDuvE,EAAwBt5K,EAAMm3G,iBAA2BmiE,EAAsBzhP,MAAKquK,GAAWqzE,EAAetiE,iBAAiB/Q,MAAa+yE,GAA2Bj5K,EAAMslG,aAAei0E,EAAej0E,aAAe2zE,GAA2Bj5K,EAAMslG,aAAei0E,EAAej0E,YAAc4zE,GAA2Bl5K,EAAM0iG,WAAa62E,EAAe72E,SAE5kB,QACF,CACA6yD,EAAYzmI,EACZ,KACF,CACF,CACA,GAAIymI,GAAa,GAAKprD,EAAIojE,YAAchY,EAGtC,OAFAl2N,EAAK0/K,YAAa,EAClBtpL,KAAKiiP,cAAgB,EACd,CACL/iP,OA3SmB,EA4SnBqU,MAtSF,EAuSEghO,cAAezU,EAGrB,CAGA,MAAO,CACL5gO,OApTuB,EAqTvBqU,MA9S2B,EAgT/B,CACA,UAAA4uO,CAAWn8L,EAAOp8C,GAChB,IAAIo6O,EACJ,OAAkD,OAAzCA,EAAoBp6O,EAAKw/K,kBAAuB,EAAS46D,EAAkB9kP,QAClF,KA7TO,EA8TL,MACF,KA7TuB,EA8TrBc,KAAKikP,0BAA0Br6O,GAC1BA,EAAKw/K,YAAYthL,UAAY8B,EAAK4sB,UAAYm3H,EAAaipC,SAErD,gCAAgChpK,KAAKhkB,EAAKhF,MAAM+Y,WACzD3d,KAAK+8B,KAAK,4BAA4BnzB,EAAKm1O,wFAC3C/+O,KAAK00K,IAAIwvE,qBAHTt6O,EAAK+uK,OAAQ,EAUf/uK,EAAK+uK,OACP34K,KAAK00K,IAAIK,UAGb,CACA,yBAAAkvE,CAA0Br6O,GACxB,MAAM8qK,EAAM10K,KAAK00K,IACX0U,EAAcx/K,EAAKw/K,YACzB,IAAKA,EACH,OAEF,MAAM,MACJ71K,EAAK,UACLuvO,EAAS,cACTvO,GACEnrD,EACJ,OAAQ71K,GACN,KArVE,EAsVAvT,KAAKmkP,YAAYv6O,EAAM2qO,GACvB,MACF,KAtV2B,EAuVrBuO,IACFpuE,EAAI0vE,aAAerkE,GAAWA,GAAW5hJ,QAAQ2kN,GAAa,GAC9D15D,EAAYthL,UAAW,GAEzB9H,KAAK+8B,KAAK,0CAA0C23I,EAAI0vE,0BAIvDh7D,EAAYthL,UACf9H,KAAKmkP,YAAYv6O,EAAM2qO,EAE3B,CACA,WAAA4P,CAAYv6O,EAAMyvK,QACGn9K,IAAfm9K,GAA4BzvK,EAAKw/K,cACnCppL,KAAK+8B,KAAK,sBAAsBs8I,WAAoBzvK,EAAK4sB,WACzDx2B,KAAK00K,IAAI6/D,cAAgBl7D,EACzBzvK,EAAKw/K,YAAYthL,UAAW,EAE5B9H,KAAK00K,IAAIy/D,cAAgBn0O,KAAK00K,IAAI6/D,cAEtC,GAuvlBA8P,cAvyGF,MACE,WAAAt5N,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKskP,iCAAkC,EACvCtkP,KAAK6lL,WAAQ,EACb7lL,KAAKwwK,MAAQ,KACbxwK,KAAKukP,cAAW,EAChBvkP,KAAKwkP,kBAAoB,EACzBxkP,KAAKykP,kBAAoB,EAEzBzkP,KAAKw9N,sBAAmB,EACxBx9N,KAAK00K,IAAMA,EACX10K,KAAK40K,mBACP,CACA,mBAAA6oD,CAAoBD,GAClBx9N,KAAKw9N,iBAAmBA,CAC1B,CACA,iBAAA5oD,GACE50K,KAAK00K,IAAI1yF,GAAGyrE,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,KAC7D,CACA,mBAAAy1K,GACEz1K,KAAK00K,IAAI57E,IAAI20D,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,KAC9D,CACA,OAAAiyE,GACMjyE,KAAK6lL,OACP79H,cAAchoD,KAAK6lL,OAErB7lL,KAAKy1K,sBACLz1K,KAAKskP,iCAAkC,EACvCtkP,KAAKwwK,MAAQ,IACf,CACA,gBAAAutD,CAAiB/3K,EAAOp8C,GACtB,MAAMyqD,EAASr0D,KAAK00K,IAAIrgH,OACxB,GAAIA,EAAOw9K,kBAAmB,CAC5B,MAAMrhE,EAAQ5mK,EAAK4mK,iBAAiBlmJ,KAAKk0M,iBAAmB50N,EAAK4mK,MAAQ,KACzExwK,KAAKwwK,MAAQA,EACTA,GAAkD,mBAAlCA,EAAMk0E,0BACxB1kP,KAAKskP,iCAAkC,GAEzCh6N,KAAK09B,cAAchoD,KAAK6lL,OACxB7lL,KAAK6lL,MAAQv7J,KAAK+8B,YAAYrnD,KAAK2kP,iBAAiB31O,KAAKhP,MAAOq0D,EAAOk+K,2BACzE,CACF,CACA,QAAAqS,CAASnxF,EAAOoxF,EAAeC,GAC7B,MAAMj3H,EAAc51G,YAAYgM,MAChC,GAAI4gO,EAAe,CACjB,GAAI7kP,KAAKukP,SAAU,CACjB,MAAMQ,EAAgBl3H,EAAc7tH,KAAKukP,SACnCS,EAAiBF,EAAgB9kP,KAAKwkP,kBACtCS,EAAiBJ,EAAgB7kP,KAAKykP,kBACtCS,EAAa,IAAOF,EAAiBD,EACrCrwE,EAAM10K,KAAK00K,IAMjB,GALAA,EAAIrrE,QAAQokD,EAAO03F,SAAU,CAC3BH,eAAgBA,EAChBC,eAAgBA,EAChBG,mBAAoBN,IAElBI,EAAa,GAEXF,EAAiBtwE,EAAIrgH,OAAOm+K,8BAAgCyS,EAAgB,CAC9E,IAAII,EAAe3wE,EAAI2wE,aACvBvkK,EAAO/jD,KAAK,mEAAqEsoN,GAC7EA,EAAe,KAAgC,IAA1B3wE,EAAI2oD,kBAA2B3oD,EAAI2oD,kBAAoBgoB,KAC9EA,GAA8B,EAC9B3wE,EAAIrrE,QAAQokD,EAAOmwE,uBAAwB,CACzCrzJ,MAAO86K,EACP/mB,aAAc5pD,EAAI2wE,eAEpB3wE,EAAI2oD,iBAAmBgoB,EACvBrlP,KAAKw9N,iBAAiBwB,kBAE1B,CAEJ,CACAh/N,KAAKukP,SAAW12H,EAChB7tH,KAAKwkP,kBAAoBM,EACzB9kP,KAAKykP,kBAAoBI,CAC3B,CACF,CACA,gBAAAF,GACE,MAAMlxF,EAAQzzJ,KAAKwwK,MACnB,GAAI/c,EACF,GAAIzzJ,KAAKskP,gCAAiC,CACxC,MAAMgB,EAAuB7xF,EAAMixF,0BACnC1kP,KAAK4kP,SAASnxF,EAAO6xF,EAAqBC,iBAAkBD,EAAqBE,mBACnF,MAEExlP,KAAK4kP,SAASnxF,EAAOA,EAAMgyF,wBAAyBhyF,EAAMiyF,wBAGhE,GA8sGA9kC,wBAAwB,EAExBc,oBAAqB,EAErB7D,8BAA8B,EAE9Bm4B,gBAAiB,EAEjBD,gBAAiB,EAEjBhB,eAAgB,EAEhBD,eAAgB,EAEhBD,uBAAwB,IAExB8Q,0BAA2B,IAE3BpO,mBAAoB,IAEpB9C,qBAAsB,GAEtBwB,uBAAuB,EAEvBQ,mBAAoB,EAEpBiB,gBAAiB,EAEjBkO,eAAgB,EAEhBxc,YAAY,EAEZ1wE,wBAAoBx8J,EAEpBu8J,WAAY,CAAC,EAEb4pE,iBAAkB,CAAC,EAEnBH,gCAAiCtpE,EAEjCitF,eAAe,EACf7jD,aAAa,EACbljB,gBAAgB,EAChBiuD,UAAM7wO,EACNshL,6BAA6B,EAC7BN,wBAAwB,EACxBC,uBAAuB,EACvBu9D,sBAAsB,EACtBnT,eAAgB,CACdllN,QArJsB,CACxBy0J,qBAAsB,IACtBC,cAAe,IACfR,aAAc,KACdC,WAAY,OAmJZqyD,cAAe,CACbxmN,QAAS,CACPy0J,qBAAsB,IACtBC,cAAe,IACfR,aAAc,CACZY,YAAa,EACbE,aAAc,IACdE,gBAAiB,IACjBuM,QAAS,UAEXtN,WAAY,CACVW,YAAa,EACbE,aAAc,IACdE,gBAAiB,IACjBuM,QAAS,YAIfzN,mBAAoB,CAClBh0J,QAAS,CACPy0J,qBAAsB1xF,IACtB2xF,cAAe,IACfR,aAAc,CACZY,YAAa,EACbE,aAAc,EACdE,gBAAiB,GAEnBf,WAAY,CACVW,YAAa,EACbE,aAAc,IACdE,gBAAiB,OAIvBjB,mBAAoB,CAClBj0J,QAAS,CACPy0J,qBAAsB,IACtBC,cAAe,IACfR,aAAc,CACZY,YAAa,EACbE,aAAc,EACdE,gBAAiB,GAEnBf,WAAY,CACVW,YAAa,EACbE,aAAc,IACdE,gBAAiB,OAIvB8d,eAAgB,CACdhzK,QAAS,CACPy0J,qBAAsB,IACtBC,cAAe,KACfR,aAAc,CACZY,YAAa,EACbE,aAAc,EACdE,gBAAiB,GAEnBf,WAAY,CACVW,YAAa,EACbE,aAAc,IACdE,gBAAiB,OAIvBuuE,2BAA4B,CAC1BzjO,QAAS,CACPy0J,qBAAsB,IACtBC,cAAe,IACfR,aAAc,CACZY,YAAa,EACbE,aAAc,EACdE,gBAAiB,GAEnBf,WAAY,CACVW,YAAa,EACbE,aAAc,IACdE,gBAAiB,OAMvBwuE,uBAAwB,IACxBC,wBAAyB,EACzBC,0BAA2B,IAC3BC,+BAAgC,KAChCC,oBAAqB,IACrBC,qBAAsB,EACtBC,uBAAwB,IACxBC,4BAA6B,KAC7BC,mBAAoB,IACpBC,oBAAqB,EACrBC,sBAAuB,IACvBC,2BAA4B,MAYrB,CACLC,WAAYtV,GAEZuV,cAAc,EAEdC,aAAa,EAEbC,sBAAsB,EAEtBC,wBAAyB,UAEzBC,+BAAgC,KAEhCC,wBAAyB,UAEzBC,+BAAgC,KAEhCC,wBAAyB,aAEzBC,+BAAgC,GAEhCC,wBAAyB,aAEzBC,+BAAgC,GAEhCC,0BAA0B,IApCR,CAAC,EAAG,CACxBC,yBA94QF,cAAuChrD,GACrC,WAAAzxK,CAAY2pJ,EAAK+nB,EAAiBlrC,GAChCh5H,MAAMm8I,EAAK+nB,EAAiBlrC,EAAW,+BAAgC+iB,IACvEt0K,KAAKynP,gBAAkB,EACvBznP,KAAK0nP,eAAiB,GACtB1nP,KAAK2nP,YAAc,KACnB3nP,KAAKi8K,oBACP,CACA,mBAAA2S,GACE5uL,KAAKk8K,uBACL3jJ,MAAMq2J,sBACN5uL,KAAK2nP,YAAc,IACrB,CACA,kBAAA1rE,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MAChD00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACnC00K,EAAI1yF,GAAGyrE,EAAOm6F,wBAAyB5nP,KAAK6nP,wBAAyB7nP,MACrE00K,EAAI1yF,GAAGyrE,EAAOq6F,sBAAuB9nP,KAAK+nP,sBAAuB/nP,MACjE00K,EAAI1yF,GAAGyrE,EAAOmsB,sBAAuB55K,KAAKgoP,sBAAuBhoP,MACjE00K,EAAI1yF,GAAGyrE,EAAOw6F,wBAAyBjoP,KAAKkoP,wBAAyBloP,MACrE00K,EAAI1yF,GAAGyrE,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACtD00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACpD,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MACjD00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACpC00K,EAAI57E,IAAI20D,EAAOm6F,wBAAyB5nP,KAAK6nP,wBAAyB7nP,MACtE00K,EAAI57E,IAAI20D,EAAOq6F,sBAAuB9nP,KAAK+nP,sBAAuB/nP,MAClE00K,EAAI57E,IAAI20D,EAAOmsB,sBAAuB55K,KAAKgoP,sBAAuBhoP,MAClE00K,EAAI57E,IAAI20D,EAAOw6F,wBAAyBjoP,KAAKkoP,wBAAyBloP,MACtE00K,EAAI57E,IAAI20D,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACvD00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACrD,CACA,SAAA60K,CAAUC,GACR90K,KAAK+0K,WACL/0K,KAAK6P,MAAQmtB,GACbh9B,KAAKqnD,YAlDe,KAmDpBrnD,KAAK+8L,iBAAmB/8L,KAAK80K,cAAgB90K,KAAK88L,gBAAkBhoB,EACpE90K,KAAK2uL,MACP,CACA,iBAAAzZ,GACEl1K,KAAK2nP,YAAc,KACnB3nP,KAAKy8L,gBAAgBjK,oBACvB,CACA,gBAAAlW,GACEt8K,KAAK0nP,eAAiB,GACtBnvN,MAAM+jJ,kBACR,CACA,aAAA64D,CAAcnvL,EAAOp8C,GACnB5J,KAAK2nP,YAAc/9O,EAAK4sB,OAC1B,CACA,uBAAA0xN,CAAwBliM,EAAOp8C,GAC7B,MAAM,KACJypJ,EAAI,QACJz8G,GACEhtC,EAGJ,GAFA5J,KAAK8kL,aAAezxB,EACpBrzJ,KAAK6P,MAAQmtB,IACR4Z,EACH,OAEF,MAAMjgC,EAAW3W,KAAK0nP,eAAe1nP,KAAKynP,gBAC1C,IAAK9wO,EACH,OAKF,IAAI85K,EACJ,MAAMmuD,EAAYvrF,EAAKp6G,MACvB,IAAK,IAAIn1C,EAAI,EAAGA,EAAI6S,EAASxW,OAAQ2D,IACnC,GAAI86O,GAAajoO,EAAS7S,GAAGm1C,OAAS2lM,GAAajoO,EAAS7S,GAAGkJ,IAAK,CAClEyjL,EAAY95K,EAAS7S,GACrB,KACF,CAEF,MAAMqkP,EAAU90F,EAAKp6G,MAAQo6G,EAAKhyF,SAC9BovH,EACFA,EAAUzjL,IAAMm7O,GAEhB13D,EAAY,CACVx3I,MAAO2lM,EACP5xO,IAAKm7O,GAEPxxO,EAAS9U,KAAK4uL,IAEhBzwL,KAAKy8L,gBAAgBhL,aAAap+B,GAClCrzJ,KAAKqgM,qBAAqBhtC,EAAM,KAClC,CACA,gBAAAqpB,CAAiB12H,EAAOp8C,GACtB,MAAM,YACJ0zK,EAAW,UACXC,GACE3zK,EACJ,GAAoB,IAAhB0zK,GAAqBC,IAAc7pK,OAAOioK,kBAAmB,CAC/D,MAAMysE,EAAqB7qE,EAAY,EACvC,GAAI6qE,GAAsB,EACxB,OAEFx+O,EAAKw+O,mBAAqBnrP,KAAKmrB,IAAI,EAAGggO,GACtCpoP,KAAK0nP,eAAelpP,SAAQmY,IAC1B,IAAK,IAAI7S,EAAI,EAAGA,EAAI6S,EAASxW,QAC3B,GAAIwW,EAAS7S,GAAGkJ,KAAOo7O,EACrBzxO,EAAS3U,YADX,CAGO,KAAI2U,EAAS7S,GAAGm1C,MAAQmvM,GAG7B,MAFAzxO,EAAS7S,GAAGm1C,MAAQmvM,EAItBtkP,GADA,CAEF,IAEF9D,KAAKy8L,gBAAgBrK,uBAAuB9U,EAAa8qE,EAAoB9zE,GAC/E,CACF,CACA,cAAAwb,CAAe9pI,EAAOp8C,GAElB,IAAIy3O,EADDrhP,KAAKg9L,gBAAkBpzL,EAAKypJ,KAAK9zJ,OAAS+0K,IAEX,OAA7B+sE,EAAcrhP,KAAKwwK,QAAkB6wE,EAAY1qO,SAASxW,SAC7DH,KAAKg9L,gBAAiB,EAG5B,CAGA,OAAA/vL,CAAQ+4C,EAAOp8C,GACb,MAAMypJ,EAAOzpJ,EAAKypJ,MACL,MAARA,OAAe,EAASA,EAAK9zJ,QAAU+0K,KACtC1qK,EAAK4sB,UAAYm3H,EAAaipC,UAChC52L,KAAKy8L,gBAAgBhL,aAAap+B,GAAM,GAEtCrzJ,KAAK08L,aACP18L,KAAK08L,YAAY5pC,gBAEf9yJ,KAAK6P,QAAUmtB,KACjBh9B,KAAK6P,MAAQmtB,IAGnB,CAGA,uBAAA6qN,CAAwB7hM,GAAO,eAC7B2wH,IAEI32K,KAAKuuK,QAAU68C,GAAyBprN,KAAKuuK,OAAQoI,GACvD32K,KAAKuuK,OAASoI,EAAe51K,KAAIsnP,GAAiB,IAAIhoE,GAAMgoE,MAG9DroP,KAAK0nP,eAAiB,GACtB1nP,KAAKuuK,OAASoI,EAAe51K,KAAIsnP,IAC/B,MAAM99K,EAAQ,IAAI81G,GAAMgoE,GAExB,OADAroP,KAAK0nP,eAAen9K,EAAMr9D,IAAM,GACzBq9D,CAAK,IAEdvqE,KAAKy8L,gBAAgBrK,uBAAuB,EAAG1+K,OAAOioK,kBAAmBrH,IACzEt0K,KAAK8kL,aAAe,KACpB9kL,KAAK68L,YAAc,KACrB,CACA,qBAAAkrD,CAAsB/hM,EAAOp8C,GAC3B,IAAIg3L,EAEJ,GADA5gM,KAAKynP,eAAiB79O,EAAKsD,GACW,OAA/B0zL,EAAe5gM,KAAKuuK,UAAmBqyB,EAAazgM,SAAoC,IAAzBH,KAAKynP,eAEzE,YADAznP,KAAKgoD,gBAKP,MAAMsgM,EAAetoP,KAAKuuK,OAAOvuK,KAAKynP,gBAClB,MAAhBa,GAAwBA,EAAa9xN,QACvCx2B,KAAK68L,YAAc78L,KAAKuoP,sBAExBvoP,KAAK68L,YAAc,KAEjByrD,GACFtoP,KAAKqnD,YA7La,IA+LtB,CAGA,qBAAA2gM,CAAsBhiM,EAAOp8C,GAC3B,IAAI4+O,EACJ,MAAM,eACJf,EAAc,OACdl5E,GACEvuK,MAEFw2B,QAASosJ,EACT11K,GAAIwwJ,GACF9zJ,EACJ,IAAK2kK,EAEH,YADAvuK,KAAK+8B,KAAK,kDAAkD2gI,KAG9D,MAAMS,EAAQoQ,EAAO7Q,GACrB,GAAIA,GAAW6Q,EAAOpuK,SAAWg+J,EAC/B,OAEFn+J,KAAKmrC,IAAI,kBAAkBuyH,aAAmBklB,EAAW/tB,WAAW+tB,EAAW5uB,SAAS4uB,EAAWpsB,WAAa,SAASosB,EAAWpsB,cAAcosB,EAAWlsB,iBAAmB,eAAeksB,EAAW5tB,iBAC1Mh1J,KAAK68L,YAAc78L,KAAKuoP,sBACxB,IAAIt0D,EAAU,EACd,GAAIrR,EAAWvuB,MAA4C,OAAnCm0F,EAAiBrqF,EAAM3nI,UAAoBgyN,EAAen0F,KAAM,CACtF,MAAMszF,EAAc3nP,KAAK2nP,YACzB,GAAI/kE,EAAW/sB,oBAAsB8xF,EACnC,OAEF,MAAMc,EAA2Bd,EAAY1zF,UAAU,GAWrD,IAAI+pC,EAVD7/B,EAAM3nI,SAWTy9J,EAAUj0L,KAAK4lM,eAAehjB,EAAYzkB,EAAM3nI,QAA2D,OAAjDwnK,EAAwBh+L,KAAKm9L,sBAA2B,EAASa,EAAsBxnK,SACjI,IAAZy9J,GAAiBw0D,IAEnBx0D,EAAUw0D,EAAyBxvM,MACnC8pI,GAAWH,EAAYqR,KAdrBrR,EAAWjsB,oBAAsBgxF,EAAYhxF,oBAC/Cw9B,GAAwBvR,EAAY+kE,GACpC1zD,EAAUrR,EAAW3uB,UAAU,GAAGh7G,OACzBwvM,IAETx0D,EAAUw0D,EAAyBxvM,MACnC8pI,GAAWH,EAAYqR,GAW7B,CACA91B,EAAM3nI,QAAUosJ,EAChB5iL,KAAKm9L,gBAAkBh/B,EACnBT,IAAY+pF,IAGXznP,KAAKo9L,qBAAuBp9L,KAAK2nP,aAAgB/kE,EAAWvuB,MAC/Dr0J,KAAK8mM,iBAAiB9mM,KAAK2nP,aAAe/kE,EAAYqR,GAIxDj0L,KAAK2uL,OAGD/L,EAAWvuB,OAASr0J,KAAK08L,aAAe18L,KAAKwwK,OAASxwK,KAAK6P,QAAUmtB,MACrD6nJ,GAAkB,KAAMjC,EAAW3uB,UAAWj0J,KAAKwwK,MAAM3iD,YAAa,KAEtF7tH,KAAK+8B,KAAK,+CACVohI,EAAM3nI,aAAUt6B,GAGtB,CACA,2BAAA+iM,CAA4BgD,GAC1B,MAAM,KACJ5uC,EAAI,QACJpnJ,GACEg2L,EACEnC,EAAczsC,EAAKhB,YACnBqiB,EAAM10K,KAAK00K,IACjB,IAAI10K,KAAK++L,mBAAmB1rC,IAIxBpnJ,GAAWA,EAAQqqG,WAAa,GAAoB,MAAfwpF,GAAuBA,EAAYphM,KAAOohM,EAAYj6B,IAA6B,YAAvBi6B,EAAYtyK,OAAsB,CACrI,MAAMtO,EAAYjH,YAAYgM,MAE9BjkB,KAAKq9L,UAAUrG,QAAQ,IAAIxhF,WAAWvpG,GAAU6zL,EAAYphM,IAAIgL,OAAQo2L,EAAYj6B,GAAGn8J,QAAQk4H,OAAMj8H,IASnG,MARA+uK,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaoyC,mBACtBpnB,OAAO,EACP/zK,MAAOe,EACPkjC,OAAQljC,EAAIgY,QACZ01I,SAEI1tJ,CAAG,IACRhB,MAAKq7L,IACN,MAAMp7H,EAAU3sD,YAAYgM,MAC5BywJ,EAAIrrE,QAAQokD,EAAOwyC,eAAgB,CACjC5sC,OACApnJ,QAAS+zL,EACThuC,MAAO,CACLkuC,OAAQhhL,EACRihL,SAAUv7H,IAEZ,IACDg9D,OAAMj8H,IACP3F,KAAK+8B,KAAK,GAAGp3B,EAAIyC,SAASzC,EAAIgY,WAC9B3d,KAAK6P,MAAQmtB,EAAU,GAE3B,CACF,CACA,MAAAkyJ,GACE,GAAKlvL,KAAKwwK,OAIV,GAAIxwK,KAAK6P,QAAUmtB,GAAY,CAC7B,MAAM,eACJyqN,EAAc,OACdl5E,GACEvuK,KACEm+J,EAAkB,MAAVoQ,OAAiB,EAASA,EAAOk5E,GAC/C,IAAKtpF,IAAUoQ,EAAOpuK,SAAWg+J,EAAM3nI,QACrC,OAEF,MAAM,OACJ69B,GACEr0D,KACE6tH,EAAc7tH,KAAKsjM,kBACnBpQ,EAAeL,GAAaK,aAAalzL,KAAK0nP,eAAe1nP,KAAKynP,iBAAmB,GAAI55H,EAAax5D,EAAOgqI,gBAEjHrxL,IAAK4xL,EACL76L,IAAKyvL,GACHN,EACEw1D,EAAiB1oP,KAAKq/L,iBAAiBr/L,KAAKwwK,MAAO8D,IACnDq0E,EAAexqF,EAAM3nI,QAE3B,GAAIg9J,EADcxzL,KAAKyjM,mBAAqC,MAAlBilD,OAAyB,EAASA,EAAe3kP,KAAO4kP,EAAa/xF,oBAE7G,OAEF,MAAM3C,EAAY00F,EAAa10F,UACzBiwC,EAAUjwC,EAAU9zJ,OACpB6M,EAAM27O,EAAa5xF,KACzB,IAAI6xF,EAAY,KAChB,MAAM9jE,EAAe9kL,KAAK8kL,aAC1B,GAAI8Z,EAAmB5xL,EAAK,CAC1B,MAAMuxL,EAAYlqI,EAAO2wH,uBACnB6jE,EAAkBjqD,EAAmB5xL,EAAMuxL,EAAY,EAAIA,EACjEqqD,EAAY/jE,GAAkBC,EAAc7wB,EAAWh3J,KAAKmrB,IAAI6rI,EAAU,GAAGh7G,MAAO2lJ,GAAmBiqD,IAClGD,GAAa9jE,GAAgBA,EAAa7rI,MAAQg7G,EAAU,GAAGh7G,QAClE2vM,EAAY30F,EAAU,GAE1B,MACE20F,EAAY30F,EAAUiwC,EAAU,GAElC,IAAK0kD,EACH,OAGF,GADAA,EAAY5oP,KAAKskM,0BAA0BskD,GACtB,gBAAjBA,EAAUx3F,GAAsB,CAElC,MACMkgB,EAAWrd,EADA20F,EAAUx3F,GAAKu3F,EAAa9zF,QACP,GAClCyc,GAAYA,EAAS9f,KAAOo3F,EAAUp3F,IAAMxxJ,KAAKy8L,gBAAgB79L,SAAS0yK,KAAc8d,KAC1Fw5D,EAAYt3E,EAEhB,CACItxK,KAAKy8L,gBAAgB79L,SAASgqP,KAAex5D,IAE/CpvL,KAAK2+L,aAAaiqD,EAAWzqF,EAAOygC,EAExC,OA1DE5+L,KAAK6P,MAAQmtB,EA2DjB,CACA,kBAAAymK,CAAmBqlD,GACjB,MAAMC,EAAkBxwN,MAAMkrK,qBAC9B,OAAKqlD,EAGE7rP,KAAKmrB,IAAI2gO,EAAiBD,GAFxBC,CAGX,CACA,YAAApqD,CAAatrC,EAAM9oF,EAAOq0H,GACxB5+L,KAAK08L,YAAcrpC,EACH,gBAAZA,EAAKjC,GACPpxJ,KAAK6/L,iBAAiBxsC,EAAM9oF,IAE5BvqE,KAAKo9L,oBAAqB,EAC1B7kK,MAAMomK,aAAatrC,EAAM9oF,EAAOq0H,GAEpC,CACA,yBAAI2pD,GACF,OAAO,IAAIx8B,GAAmB/rN,KAAK0nP,eAAe1nP,KAAKynP,iBAAmB,GAC5E,GAohQAuB,wBA1/PF,cAAsCrjE,GACpC,WAAA56J,CAAY2pJ,GACVn8I,MAAMm8I,EAAK,+BACX10K,KAAKwwK,MAAQ,KACbxwK,KAAKm7K,OAAS,GACdn7K,KAAKipP,SAAW,KAChBjpP,KAAKkpP,cAAgB,GACrBlpP,KAAK09J,SAAW,EAChB19J,KAAKsoP,aAAe,KACpBtoP,KAAKmpP,oBAAqB,EAC1BnpP,KAAKopP,oBAAsB,EAC3BppP,KAAKqpP,qBAAuB,IAAMrpP,KAAKspP,gBAAgB,GACvDtpP,KAAKupP,qBAAsB,EAC3BvpP,KAAKwpP,yBAA2B,EAChCxpP,KAAKypP,kBAAmB,EACxBzpP,KAAK0pP,oBAAsB,KAKzB,GAJK1pP,KAAKupP,qBACRj/N,KAAK09B,cAAchoD,KAAKwpP,0BAGrBxpP,KAAKwwK,QAAUxwK,KAAK00K,IAAIrgH,OAAOkzL,yBAClC,OAEF,IAAIvqE,EAAY,KAChB,MAAM7B,EAASF,GAAqBj7K,KAAKwwK,MAAMuM,YAC/C,IAAK,IAAIj5K,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IACjC,GAAuB,WAAnBq3K,EAAOr3K,GAAG0mE,KAEZwyG,EAAY7B,EAAOr3K,QACd,GAAuB,YAAnBq3K,EAAOr3K,GAAG0mE,KAAoB,CACvCwyG,EAAY7B,EAAOr3K,GACnB,KACF,CAIF,MAAM45J,EAAU19J,KAAK2pP,sBAAsB3sE,GACvCh9K,KAAK8rN,gBAAkBpuD,GACzB19J,KAAK4pP,iBAAiBlsF,EACxB,EAEF19J,KAAK40K,mBACP,CACA,OAAA3iG,GACEjyE,KAAKy1K,sBACLz1K,KAAKm7K,OAAOh7K,OAAS,EACrBH,KAAKkpP,cAAc/oP,OAAS,EAC5BH,KAAKsoP,aAAe,KACpBtoP,KAAK0pP,oBAAsB1pP,KAAKqpP,qBAAuB,KACvD9wN,MAAM05C,SACR,CACA,mBAAI43K,GACF,OAAO7pP,KAAKypP,gBACd,CACA,mBAAII,CAAgBxtP,GAClB2D,KAAKypP,iBAAmBptP,EACpB2D,KAAK09J,SAAW,GAClB19J,KAAK8pP,kBAET,CACA,iBAAAl1E,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MAClD00K,EAAI1yF,GAAGyrE,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACtD00K,EAAI1yF,GAAGyrE,EAAOmsB,sBAAuB55K,KAAKgoP,sBAAuBhoP,MACjE00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACrC,CACA,mBAAAy1K,GACE,MAAM,IACJf,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MACnD00K,EAAI57E,IAAI20D,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACvD00K,EAAI57E,IAAI20D,EAAOmsB,sBAAuB55K,KAAKgoP,sBAAuBhoP,MAClE00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACtC,CAGA,eAAAo8K,CAAgBp2H,EAAOp8C,GACrB5J,KAAKwwK,MAAQ5mK,EAAK4mK,MACbxwK,KAAKwwK,QAGNxwK,KAAKopP,oBAAsB,IAC7BppP,KAAK8rN,cAAgB9rN,KAAKopP,mBAC1BppP,KAAKopP,oBAAsB,GAE7BppP,KAAKupP,sBAAwBvpP,KAAKwwK,MAAMuM,YAAc,aAAc/8K,KAAKwwK,MAAMuM,YAC3E/8K,KAAKupP,oBACPvpP,KAAKspP,gBAAgB,KAErBtpP,KAAKwwK,MAAMuM,WAAW9mI,iBAAiB,SAAUj2C,KAAKqpP,sBAE1D,CACA,eAAAC,CAAgBzrL,GACdvzC,KAAK09B,cAAchoD,KAAKwpP,yBACxBxpP,KAAKwpP,wBAA0Bl/N,KAAK+8B,YAAYrnD,KAAK0pP,oBAAqB7rL,EAC5E,CACA,gBAAAy+G,GACOt8K,KAAKwwK,QAGVlmJ,KAAK09B,cAAchoD,KAAKwpP,yBACnBxpP,KAAKupP,qBACRvpP,KAAKwwK,MAAMuM,WAAW3hF,oBAAoB,SAAUp7F,KAAKqpP,sBAEvDrpP,KAAK09J,SAAW,IAClB19J,KAAKopP,mBAAqBppP,KAAK09J,SAEdud,GAAqBj7K,KAAKwwK,MAAMuM,YAExCv+K,SAAQ2/J,IACjBuc,GAAiBvc,EAAM,IAGzBn+J,KAAK8rN,eAAiB,EACtB9rN,KAAKwwK,MAAQ,KACf,CACA,iBAAA0E,GACEl1K,KAAKm7K,OAAS,GACdn7K,KAAKipP,SAAW,KAChBjpP,KAAKkpP,cAAgB,GACrBlpP,KAAK09J,SAAW,EAChB19J,KAAKsoP,aAAe,KACpBtoP,KAAKmpP,oBAAqB,CAC5B,CAGA,gBAAAlrB,CAAiBj4K,EAAOp8C,GACtB5J,KAAKm7K,OAASvxK,EAAK+sK,cACrB,CACA,qBAAAqxE,CAAsBhiM,EAAOp8C,GAC3B,MAAM,GACJsD,EAAE,QACFujK,EAAO,QACPj6I,GACE5sB,EACEmgP,EAAqB/pP,KAAKkpP,cAAch8O,GAC9C,IAAK68O,GAAsBA,EAAmBt5E,UAAYA,EAExD,YADAzwK,KAAK+8B,KAAK,0BAA0B7vB,eAAgBujK,+BAA2D,MAAtBs5E,OAA6B,EAASA,EAAmBt5E,WAGpJ,MAAM41B,EAAa0jD,EAAmBvzN,QACtCuzN,EAAmBvzN,QAAU5sB,EAAK4sB,QAClCx2B,KAAKmrC,IAAI,kBAAkBj+B,MAAO68O,EAAmB3hP,cAAc2hP,EAAmBr0G,cAAc+6B,aAAmBj6I,EAAQq+H,WAAWr+H,EAAQw9H,UAC9I9mJ,IAAOlN,KAAK09J,SACd19J,KAAK0mL,eAAex5K,EAAItD,EAAMy8L,EAElC,CACA,cAAAjxB,CAAepvH,EAAOp8C,GACpB5J,KAAKmkP,YAAYv6O,EAAK2gE,MACxB,CACA,gBAAA2qK,CAAiBlvL,EAAOp8C,GACtB5J,KAAKmkP,YAAYv6O,EAAK2gE,MACxB,CACA,WAAA45K,CAAY9qE,GACV,MAAMmhE,EAAYx6O,KAAK00K,IAAInG,OAAO8K,GAClC,IAAKmhE,EACH,OAEF,MAAM94D,EAAiB84D,EAAU94D,gBAAkB,KAC7CsoE,EAAgBhqP,KAAKipP,SAC3B,IAAIX,EAAetoP,KAAKsoP,aACxB,IAAK5mE,IAAoC,MAAjBsoE,OAAwB,EAASA,EAAc7pP,WAA+B,MAAlBuhL,OAAyB,EAASA,EAAevhL,SAA6B,MAAlBuhL,GAA0BA,EAAet/K,MAAKquK,IAAkF,KAArD,MAAjBu5E,OAAwB,EAASA,EAAc7rN,QAAQsyI,MAAmB,CAClRzwK,KAAKipP,SAAWvnE,EAChB1hL,KAAK09J,SAAW,EAChB19J,KAAKsoP,aAAe,KACpB,MAAM3xE,EAAiB32K,KAAKm7K,OAAOroK,QAAOqrJ,IAAUujB,IAA6D,IAA3CA,EAAevjJ,QAAQggI,EAAMsS,WACnG,GAAIkG,EAAex2K,OAEbH,KAAKmpP,qBAAuBxyE,EAAev0K,MAAK+7J,GAASA,EAAM97I,YACjEriB,KAAKmpP,oBAAqB,GAG5BxyE,EAAen4K,SAAQ,CAAC2/J,EAAOr6J,KAC7Bq6J,EAAMjxJ,GAAKpJ,CAAC,SAET,IAAKwkP,IAAiBtoP,KAAKkpP,cAAc/oP,OAE9C,OAEFH,KAAKkpP,cAAgBvyE,EAGrB,MAAMszE,EAAqBjqP,KAAK00K,IAAIrgH,OAAO41L,mBAC3C,IAAK3B,GAAgB2B,EAAoB,CACvCjqP,KAAKmpP,oBAAqB,EAC1B,MAAMe,EAAax8D,GAAmBu8D,EAAoBtzE,GAC1D,GAAIuzE,GAAc,EAChB5B,EAAe3xE,EAAeuzE,OACzB,CACL,MAAMC,EAAWz8D,GAAmBu8D,EAAoBjqP,KAAKm7K,QAC7DmtE,EAAetoP,KAAKm7K,OAAOgvE,EAC7B,CACF,CAGA,IAAIzsF,EAAU19J,KAAKoqP,YAAY9B,IACd,IAAb5qF,GAAkB4qF,IACpB5qF,EAAU19J,KAAKoqP,YAAY,OAI7B,MAAMC,EAAwB,CAC5B1zE,kBAEF32K,KAAKmrC,IAAI,6BAA6BwrI,EAAex2K,6BAA+C,MAAlBuhL,OAAyB,EAASA,EAAerkL,KAAK,kBACxI2C,KAAK00K,IAAIrrE,QAAQokD,EAAOm6F,wBAAyByC,IAChC,IAAb3sF,IAAoC,IAAlB19J,KAAK09J,SACzB19J,KAAK4pP,iBAAiBlsF,EAE1B,MAAW19J,KAAKymL,qBAAqB6hE,IAEnCtoP,KAAK4pP,iBAAiB5pP,KAAK09J,QAE/B,CACA,WAAA0sF,CAAY9B,GACV,MAAMntE,EAASn7K,KAAKkpP,cACdoB,EAAgBtqP,KAAKmpP,mBAC3B,IAAK,IAAIrlP,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IAAK,CACtC,MAAMq6J,EAAQgd,EAAOr3K,GACrB,KAAIwmP,GAAkBnsF,EAAM97I,WAAYioO,GAAkBhC,MAGrDA,GAAgB16D,GAAczvB,EAAOmqF,IACxC,OAAOxkP,CAEX,CACA,GAAIwkP,EAAc,CAChB,IAAK,IAAIxkP,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IAAK,CACtC,MAAMq6J,EAAQgd,EAAOr3K,GACrB,GAAIynN,GAAyB+8B,EAAax1G,MAAOqrB,EAAMrrB,MAAO,CAAC,WAAY,iBAAkB,oBAC3F,OAAOhvI,CAEX,CACA,IAAK,IAAIA,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IAAK,CACtC,MAAMq6J,EAAQgd,EAAOr3K,GACrB,GAAIynN,GAAyB+8B,EAAax1G,MAAOqrB,EAAMrrB,MAAO,CAAC,aAC7D,OAAOhvI,CAEX,CACF,CACA,OAAQ,CACV,CACA,qBAAA6lP,CAAsB3sE,GACpB,GAAIA,EAAW,CACb,MAAM7B,EAASn7K,KAAKkpP,cACpB,IAAK,IAAIplP,EAAI,EAAGA,EAAIq3K,EAAOh7K,OAAQ2D,IAEjC,GAAI+nN,GADU1wC,EAAOr3K,GACoBk5K,GACvC,OAAOl5K,CAGb,CACA,OAAQ,CACV,CACA,OAAAmJ,CAAQ+4C,EAAOp8C,IACTA,EAAK+uK,OAAU/uK,EAAK3C,UAGpB2C,EAAK3C,QAAQ1H,OAAS80K,IAAsCzqK,EAAK3C,QAAQiG,KAAOlN,KAAK09J,SAAa19J,KAAKipP,WAA6D,IAAjDjpP,KAAKipP,SAAS9qN,QAAQv0B,EAAK3C,QAAQwpK,UACxJzwK,KAAKipL,WAAWr/K,GAEpB,CACA,qBAAI2gP,GACF,OAAOvqP,KAAKm7K,MACd,CAGA,kBAAIxE,GACF,OAAO32K,KAAKkpP,aACd,CAGA,iBAAIp9B,GACF,OAAO9rN,KAAK09J,OACd,CACA,iBAAIouD,CAAcn0I,GAChB33E,KAAKmpP,oBAAqB,EAC1BnpP,KAAK4pP,iBAAiBjyK,EACxB,CACA,iBAAA6yK,CAAkBC,GAEhB,GADAzqP,KAAK00K,IAAIrgH,OAAO41L,mBAAqBQ,EACjCA,EAAgB,CAClB,MAAMF,EAAoBvqP,KAAKuqP,kBAE/B,GADAvqP,KAAKmpP,oBAAqB,EACtBoB,EAAkBpqP,OAAQ,CAE5B,MAAMmoP,EAAetoP,KAAKsoP,aAC1B,GAAIA,GAAgB16D,GAAc68D,EAAgBnC,GAChD,OAAOA,EAGT,MAAM4B,EAAax8D,GAAmB+8D,EAAgBzqP,KAAKkpP,eAC3D,GAAIgB,GAAc,EAAG,CACnB,MAAM/rF,EAAQn+J,KAAKkpP,cAAcgB,GAEjC,OADAlqP,KAAK4pP,iBAAiBM,GACf/rF,CACT,CAAO,GAAImqF,EAGT,OAAO,KACF,CAEL,MAAM6B,EAAWz8D,GAAmB+8D,EAAgBF,GACpD,GAAIJ,GAAY,EACd,OAAOI,EAAkBJ,EAE7B,CACF,CACF,CACA,OAAO,IACT,CACA,YAAAlkE,CAAaK,GACX/tJ,MAAM0tJ,eACN,MAAMqiE,EAAetoP,KAAKsoP,aAC1B,GAAItoP,KAAKumL,mBAAmB+hE,IAAiBA,EAAc,CACzD,MAAMp7O,EAAKo7O,EAAap7O,GAClBujK,EAAU63E,EAAa73E,QAC7B,IAAIj7H,EAAM8yM,EAAa9yM,IACvB,GAAI8wI,EACF,IACE9wI,EAAM8wI,EAAiBlG,cAAc5qI,EACvC,CAAE,MAAO5wC,GACP5E,KAAK+8B,KAAK,6DAA6Dn4B,IACzE,CAEF5E,KAAKmrC,IAAI,oCAAoCj+B,KAC7ClN,KAAK00K,IAAIrrE,QAAQokD,EAAO8nB,uBAAwB,CAC9C//H,MACAtoC,KACAujK,UACAwF,mBAAoBqQ,GAAoB,MAE5C,CACF,CAOA,gBAAAwjE,GACE,MAAM,MACJt5E,GACExwK,KACJ,IAAKwwK,EACH,OAEF,MAAMuM,EAAa9B,GAAqBzK,EAAMuM,YACxCurE,EAAetoP,KAAKsoP,aAC1B,IAAIoC,EAYJ,GAXIpC,IACFoC,EAAY3tE,EAAWjqK,QAAOkqK,GAAa6uC,GAA8By8B,EAActrE,KAAY,GAC9F0tE,GACH1qP,KAAK+8B,KAAK,gDAAgDurN,EAAalgP,uBAAuBkgP,EAAa5yG,UAG/G,GAAGhyI,MAAMnH,KAAKwgL,GAAYv+K,SAAQ2/J,IACb,aAAfA,EAAM3zF,MAAuB2zF,IAAUusF,IACzCvsF,EAAM3zF,KAAO,WACf,IAEEkgL,EAAW,CACb,MAAMlgL,EAAOxqE,KAAK6pP,gBAAkB,UAAY,SAC5Ca,EAAUlgL,OAASA,IACrBkgL,EAAUlgL,KAAOA,EAErB,CACF,CAMA,gBAAAo/K,CAAiBjyK,GACf,MAAMwjG,EAASn7K,KAAKkpP,cAMpB,IAAKlpP,KAAKwwK,MAER,YADAxwK,KAAKopP,mBAAqBzxK,GAK5B,GAAIA,GAAS,GAAKA,GAASwjG,EAAOh7K,SAAWqtJ,EAAe71E,GAE1D,YADA33E,KAAK+8B,KAAK,8BAA8B46C,KAK1C33E,KAAKgmL,aACLhmL,KAAKmpP,oBAAqB,EAC1B,MAAMwB,EAAY3qP,KAAKsoP,aACjBnqF,EAAQgd,EAAOxjG,IAAU,KAI/B,GAHA33E,KAAK09J,QAAU/lF,EACf33E,KAAKsoP,aAAenqF,EACpBn+J,KAAK8pP,oBACA3rF,EAKH,YAHAn+J,KAAK00K,IAAIrrE,QAAQokD,EAAOq6F,sBAAuB,CAC7C56O,GAAIyqE,IAIR,MAAMizK,IAAgBzsF,EAAM3nI,UAAY2nI,EAAM3nI,QAAQ69H,KACtD,GAAI18E,IAAU33E,KAAK09J,SAAWS,IAAUwsF,GAAaC,EACnD,OAEF5qP,KAAKmrC,IAAI,+BAA+BwsC,KAAWwmF,EAAQ,KAAKA,EAAM/1J,cAAc+1J,EAAMzoB,cAAcyoB,EAAMsS,UAAY,KAC1H,MAAM,GACJvjK,EAAE,QACFujK,EAAU,GAAE,KACZroK,EAAI,KACJ7I,EAAI,IACJi2C,GACE2oH,EACJn+J,KAAK00K,IAAIrrE,QAAQokD,EAAOq6F,sBAAuB,CAC7C56O,KACAujK,UACAroK,OACA7I,OACAi2C,QAEF,MAAM8wI,EAAmBtmL,KAAKkmL,aAAa/nB,EAAM3oH,IAAkB,MAAbm1M,OAAoB,EAASA,EAAUn0N,QAAS2nI,EAAM3nI,SAC5Gx2B,KAAKimL,aAAaK,EACpB,GAokPAsvC,mBAhzIF,MACE,WAAA7qM,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKwwK,MAAQ,KACbxwK,KAAKq0D,YAAS,EACdr0D,KAAK0oC,SAAU,EACf1oC,KAAKqxO,UAAO,EACZrxO,KAAK+8K,WAAa,GAClB/8K,KAAKm7K,OAAS,GACdn7K,KAAKs9L,QAAU,GACft9L,KAAK6qP,iBAAmB,GACxB7qP,KAAK8qP,eAAiB,CAAC,EACvB9qP,KAAK+qP,wBAA0B,CAAC,EAChC/qP,KAAKgrP,mBAAgB,EACrBhrP,KAAKirP,mBAAgB,EACrBjrP,KAAKkrP,QAAU,EAEflrP,KAAK2yK,QAAU,EAEf3yK,KAAK02J,eAAiB,EAEtB12J,KAAKmrP,QAAU,EAEfnrP,KAAKorP,OAwmBA,CACL7jE,SAAU,EACV8jE,mBAAoB,EACpB,EAAG,CACDpyM,MAAO,EACPkyM,QAAS,EACTG,KAAK,IA7mBPtrP,KAAKurP,wBAAqB,EAC1BvrP,KAAK00K,IAAMA,EACX10K,KAAKq0D,OAASqgH,EAAIrgH,OAClBr0D,KAAKqxO,KAAO38D,EAAIrgH,OAAOsyL,WACvB3mP,KAAKurP,mBAAqB,CACxBC,WAAY,CACVh+O,MAAOxN,KAAKq0D,OAAO0yL,wBACnB0E,aAAczrP,KAAKq0D,OAAO2yL,gCAE5B0E,WAAY,CACVl+O,MAAOxN,KAAKq0D,OAAO4yL,wBACnBwE,aAAczrP,KAAKq0D,OAAO6yL,gCAE5ByE,WAAY,CACVn+O,MAAOxN,KAAKq0D,OAAO8yL,wBACnBsE,aAAczrP,KAAKq0D,OAAO+yL,gCAE5BwE,WAAY,CACVp+O,MAAOxN,KAAKq0D,OAAOgzL,wBACnBoE,aAAczrP,KAAKq0D,OAAOizL,iCAG9B5yE,EAAI1yF,GAAGyrE,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACtD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACtD00K,EAAI1yF,GAAGyrE,EAAOm6F,wBAAyB5nP,KAAK6nP,wBAAyB7nP,MACrE00K,EAAI1yF,GAAGyrE,EAAOo0C,aAAc7hM,KAAKg1O,cAAeh1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,MAC9C00K,EAAI1yF,GAAGyrE,EAAOo+F,sBAAuB7rP,KAAK8rP,sBAAuB9rP,MACjE00K,EAAI1yF,GAAGyrE,EAAOwyC,eAAgBjgM,KAAK+rP,gBAAiB/rP,MACpD00K,EAAI1yF,GAAGyrE,EAAOu+F,eAAgBhsP,KAAKisP,eAAgBjsP,MACnD00K,EAAI1yF,GAAGyrE,EAAOy+F,wBAAyBlsP,KAAKmsP,wBAAyBnsP,MACrE00K,EAAI1yF,GAAGyrE,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,KACxD,CACA,OAAAiyE,GACE,MAAM,IACJyiG,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOqwE,gBAAiB99N,KAAK+9N,iBAAkB/9N,MACvD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACvD00K,EAAI57E,IAAI20D,EAAOm6F,wBAAyB5nP,KAAK6nP,wBAAyB7nP,MACtE00K,EAAI57E,IAAI20D,EAAOo0C,aAAc7hM,KAAKg1O,cAAeh1O,MACjD00K,EAAI57E,IAAI20D,EAAOsiC,YAAa/vL,KAAKgwL,aAAchwL,MAC/C00K,EAAI57E,IAAI20D,EAAOo+F,sBAAuB7rP,KAAK8rP,sBAAuB9rP,MAClE00K,EAAI57E,IAAI20D,EAAOwyC,eAAgBjgM,KAAK+rP,gBAAiB/rP,MACrD00K,EAAI57E,IAAI20D,EAAOu+F,eAAgBhsP,KAAKisP,eAAgBjsP,MACpD00K,EAAI57E,IAAI20D,EAAOy+F,wBAAyBlsP,KAAKmsP,wBAAyBnsP,MACtE00K,EAAI57E,IAAI20D,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MAEvDA,KAAK00K,IAAM10K,KAAKq0D,OAAS,KACzBr0D,KAAKgrP,cAAgBhrP,KAAKirP,mBAAgB/uP,CAC5C,CACA,iBAAAkwP,GACE,GAAIpsP,KAAKq0D,OAAOyyL,wBAA0B9mP,KAAKgrP,gBAAkBhrP,KAAKirP,eAAgB,CACpF,MAAMoB,EAAW,IAAI12B,GAAa31N,KAAM,cAClCssP,EAAW,IAAI32B,GAAa31N,KAAM,cAClCusP,EAAW,IAAI52B,GAAa31N,KAAM,cAClCwsP,EAAW,IAAI72B,GAAa31N,KAAM,cACxCA,KAAKgrP,cAAgB,IAAI52B,GAAa,EAAGi4B,EAAUC,GACnDtsP,KAAKirP,cAAgB,IAAI72B,GAAa,EAAGm4B,EAAUC,EACrD,CACF,CACA,OAAAz2B,CAAQF,EAAW32M,EAAW0lD,EAAS+tJ,EAAQmD,GAE7C,IAAI22B,GAAS,EACb,IAAK,IAAI3oP,EAAIgyN,EAAU31N,OAAQ2D,KAAM,CACnC,MAAM4oP,EAAW52B,EAAUhyN,GACrB6oP,GA6hBUC,EA7hBaF,EAAS,GA6hBlB9zD,EA7hBsB8zD,EAAS,GA6hB3BG,EA7hB+B3tO,EA6hB3B4tO,EA7hBsCloL,EA8hB/D3nE,KAAK6+B,IAAI88J,EAAIk0D,GAAM7vP,KAAKmrB,IAAIwkO,EAAIC,IA7hBnC,GAAIF,GAAW,IACbD,EAAS,GAAKzvP,KAAK6+B,IAAI4wN,EAAS,GAAIxtO,GACpCwtO,EAAS,GAAKzvP,KAAKmrB,IAAIskO,EAAS,GAAI9nL,GACpC6nL,GAAS,EACLE,GAAW/nL,EAAU1lD,GAAa,IACpC,MAGN,CAohBJ,IAAsB0tO,EAAIh0D,EAAIi0D,EAAIC,EAhhB9B,GAHKL,GACH32B,EAAUj0N,KAAK,CAACqd,EAAW0lD,IAEzB5kE,KAAKq0D,OAAOkzL,yBAA0B,CACxC,MAAMppF,EAAQn+J,KAAK8qP,eAAej1B,GAClC71N,KAAKqxO,KAAKpd,OAAO91D,EAAOj/I,EAAW0lD,EAAS+tJ,EAC9C,KAAO,CACL,MAAMv4C,EAAOp6K,KAAKqxO,KAAKpd,OAAO,KAAM/0M,EAAW0lD,EAAS+tJ,GACxD3yN,KAAK00K,IAAIrrE,QAAQokD,EAAOs/F,YAAa,CACnCxtP,KAAM,WACN66K,OACAjc,MAAO03D,GAEX,CACF,CAGA,cAAAo2B,CAAejmM,GAAO,KACpBqtG,EAAI,GACJnmJ,EAAE,QACFowL,EAAO,UACPzgC,IAEA,MAAM,iBACJguF,GACE7qP,KACO,SAAPkN,IACFlN,KAAKs9L,QAAQjqC,EAAK7B,IAAM,CACtBwQ,SAAUs7B,EACVzgC,cAMAguF,EAAiB1qP,SACnBH,KAAK6qP,iBAAmB,GACxBA,EAAiBrsP,SAAQ60J,IACvBrzJ,KAAKgwL,aAAaviC,EAAOsiC,YAAa18B,EAAK,IAGjD,CACA,gBAAA25F,CAAiBx/O,EAAOqoB,GACtB,MAAM,MACJ26I,GACExwK,KACJ,GAAIwwK,EACF,IAAK,IAAI1sK,EAAI,EAAGA,EAAI0sK,EAAMuM,WAAW58K,OAAQ2D,IAAK,CAChD,MAAMk5K,EAAYxM,EAAMuM,WAAWj5K,GACnC,GAAIm5N,GAAqBjgD,EAAW,CAClC50K,KAAMoF,EACNkoI,KAAM7/G,EACNi9G,MAAO,CAAC,IAER,OAAOkqC,CAEX,CAEF,OAAO,IACT,CACA,mBAAAg5C,CAAoBH,GACd71N,KAAKq0D,OAAOkzL,yBACdvnP,KAAKitP,kBAAkBp3B,GAEvB71N,KAAKktP,qBAAqBr3B,EAE9B,CACA,iBAAAo3B,CAAkBp3B,GAChB,GAAI71N,KAAK8qP,eAAej1B,GACtB,OAEF,MAAM,mBACJ01B,EAAkB,eAClBT,EAAc,MACdt6E,GACExwK,MACE,MACJwN,EAAK,aACLi+O,GACEF,EAAmB11B,GAEjBs3B,EAAgBntP,KAAKgtP,iBAAiBx/O,EAAOi+O,GACnD,GAAK0B,EAQHrC,EAAej1B,GAAas3B,EAC5BzyE,GAAiBowE,EAAej1B,IAChCh8C,GAAkBixE,EAAej1B,GAAYrlD,OAV3B,CAClB,MAAMwM,EAAYh9K,KAAKotP,gBAAgB,WAAY5/O,EAAOi+O,GACtDzuE,IAEFA,EAAU64C,IAAa,EACvBi1B,EAAej1B,GAAa74C,EAEhC,CAKF,CACA,oBAAAkwE,CAAqBr3B,GACnB,GAAI71N,KAAK+qP,wBAAwBl1B,GAC/B,OAGF,MAAMw3B,EAAkBrtP,KAAKurP,mBAAmB11B,GAChD,IAAKw3B,EACH,OAEF,MACMlvF,EAAQ,CACZu4D,IAAKb,EACLroN,MAHY6/O,EAAgB7/O,MAI5B4tK,KAAM,WACN/4J,UAASgrO,EAAgB78E,SAAU68E,EAAgB78E,MAAMnuJ,QACzDirO,eAAgBD,EAAgB78E,OAElCxwK,KAAK+qP,wBAAwBl1B,GAAa13D,EAC1Cn+J,KAAK00K,IAAIrrE,QAAQokD,EAAO8/F,6BAA8B,CACpDpyE,OAAQ,CAAChd,IAEb,CACA,eAAAivF,CAAgBhyE,EAAM5tK,EAAOkoI,GAC3B,MAAM86B,EAAQxwK,KAAKwwK,MACnB,GAAKA,EAGL,OAAOA,EAAMyM,aAAa7B,EAAM5tK,EAAOkoI,EACzC,CACA,gBAAAqoF,CAAiB/3K,EAAOp8C,GACtB5J,KAAKwwK,MAAQ5mK,EAAK4mK,MAClBxwK,KAAKwtP,cACP,CACA,gBAAAlxE,GACE,MAAM,eACJwuE,GACE9qP,KACJrE,OAAOwK,KAAK2kP,GAAgBtsP,SAAQq3N,IAClCn7C,GAAiBowE,EAAej1B,WACzBi1B,EAAej1B,EAAU,IAElC71N,KAAK+qP,wBAA0B,CAAC,CAClC,CACA,iBAAA71E,GAEEl1K,KAAKkrP,QAAU,EACflrP,KAAK2yK,QAAU,EACf3yK,KAAK02J,eAAiB,EAEtB12J,KAAKmrP,QAAU,EACfnrP,KAAKorP,OAsYA,CACL7jE,SAAU,EACV8jE,mBAAoB,EACpB,EAAG,CACDpyM,MAAO,EACPkyM,QAAS,EACTG,KAAK,IA1YPtrP,KAAKwtP,eACLxtP,KAAKm7K,OAAS,GACdn7K,KAAK8qP,eAAiB,CAAC,EACvB9qP,KAAK+qP,wBAA0B,CAAC,EAChC/qP,KAAK+8K,WAAa,GAClB/8K,KAAK6qP,iBAAmB,GACxB7qP,KAAKs9L,QAAU,GACXt9L,KAAKgrP,eAAiBhrP,KAAKirP,gBAC7BjrP,KAAKgrP,cAAcz4N,QACnBvyB,KAAKirP,cAAc14N,QAEvB,CACA,YAAAi7N,GAEE,MAAM,MACJh9E,GACExwK,KACJ,IAAKwwK,EACH,OAEF,MAAMuM,EAAavM,EAAMuM,WACzB,GAAIA,EACF,IAAK,IAAIj5K,EAAI,EAAGA,EAAIi5K,EAAW58K,OAAQ2D,IACrC42K,GAAiBqC,EAAWj5K,GAGlC,CACA,uBAAA+jP,CAAwB7hM,EAAOp8C,GAC7B,MAAMuxK,EAASvxK,EAAK+sK,gBAAkB,GAChC82E,EAAWtyE,EAAO/4K,MAAK+7J,GAASA,EAAM4R,YAAcoqD,KAC1D,GAAIn6N,KAAKq0D,OAAOuyL,cAAgB6G,GAAYztP,KAAKq0D,OAAOwyL,YAAa,CAEnE,GADwBz7B,GAAyBprN,KAAKm7K,OAAQA,GAG5D,YADAn7K,KAAKm7K,OAASA,GAKhB,GAFAn7K,KAAK+8K,WAAa,GAClB/8K,KAAKm7K,OAASA,EACVn7K,KAAKq0D,OAAOkzL,yBAA0B,CACxC,MAAM/2E,EAAQxwK,KAAKwwK,MACbk9E,EAAcl9E,EAAQyK,GAAqBzK,EAAMuM,YAAc,KA+BrE,GA9BA/8K,KAAKm7K,OAAO38K,SAAQ,CAAC2/J,EAAO1qJ,KAE1B,IAAIupK,EACJ,GAAI0wE,EAAa,CACf,IAAIxwB,EAAa,KACjB,IAAK,IAAIp5N,EAAI,EAAGA,EAAI4pP,EAAYvtP,OAAQ2D,IACtC,GAAI4pP,EAAY5pP,IAAMm5N,GAAqBywB,EAAY5pP,GAAIq6J,GAAQ,CACjE++D,EAAawwB,EAAY5pP,GACzB4pP,EAAY5pP,GAAK,KACjB,KACF,CAEEo5N,IACFlgD,EAAYkgD,EAEhB,CACA,GAAIlgD,EACFtC,GAAiBsC,OACZ,CACL,MAAM2wE,EAAgB3wB,GAAuC7+D,GAC7D6e,EAAYh9K,KAAKotP,gBAAgBO,EAAexvF,EAAM/1J,KAAM+1J,EAAMzoB,MAC9DsnC,IACFA,EAAUxyG,KAAO,WAErB,CACIwyG,GACFh9K,KAAK+8K,WAAWl7K,KAAKm7K,EACvB,IAGiB,MAAf0wE,GAAuBA,EAAYvtP,OAAQ,CAC7C,MAAMytP,EAAmBF,EAAY56O,QAAO7J,GAAW,OAANA,IAAYlI,KAAIkI,GAAKA,EAAEuE,QACpEogP,EAAiBztP,QACnB2gF,EAAO/jD,KAAK,kDAAkD6wN,EAAiBvwP,KAAK,sFAExF,CACF,MAAO,GAAI2C,KAAKm7K,OAAOh7K,OAAQ,CAE7B,MAAM0tP,EAAa7tP,KAAKm7K,OAAOp6K,KAAIo9J,IAC1B,CACL3wJ,MAAO2wJ,EAAM/1J,KACbgzK,KAAMjd,EAAM5+J,KAAK8iC,cACjBhgB,QAAS87I,EAAM97I,QACfypM,cAAe3tD,MAGnBn+J,KAAK00K,IAAIrrE,QAAQokD,EAAO8/F,6BAA8B,CACpDpyE,OAAQ0yE,GAEZ,CACF,CACF,CACA,gBAAApwD,CAAiBz3I,EAAOp8C,GAClB5J,KAAKq0D,OAAOyyL,sBAAwBl9O,EAAKquK,UAC3CruK,EAAKquK,SAASz5K,SAAQsvP,IACpB,MAAMC,EAAkB,wBAAwBvsP,KAAKssP,EAAcv9E,YACnE,IAAKw9E,EACH,OAEF,MAAMl4B,EAAY,YAAYk4B,EAAgB,KACxCV,EAAkBrtP,KAAKurP,mBAAmB11B,GAC3Cw3B,IAGLA,EAAgB7/O,MAAQsgP,EAAc1lP,KAClC0lP,EAAcp4G,OAEhB23G,EAAgB5B,aAAeqC,EAAcp4G,MAE/C23G,EAAgB78E,MAAQs9E,EAAa,GAG3C,CACA,sBAAAE,CAAuB36F,GACrB,MAAM9oF,EAAQvqE,KAAK00K,IAAInG,OAAOlb,EAAK9oF,OACnC,OAAgB,MAATA,OAAgB,EAASA,EAAMuoE,MAAM,kBAC9C,CACA,aAAAkiG,CAAchvL,EAAOp8C,GAEnB,GAAI5J,KAAK0oC,SAAW9+B,EAAKypJ,KAAK9zJ,OAAS+0K,GAAwB,CAC7D,IAAI25E,EAAkB3Y,EACtB,MAAM,cACJ0V,EAAa,cACbC,EAAa,OACbt4E,GACE3yK,MACE,GACJwxJ,EAAE,GACFJ,GACExnJ,EAAKypJ,KACH4vB,EAAiG,OAApFgrE,EAA+C,OAA3B3Y,EAAa1rO,EAAKujC,WAAgB,EAASmoM,EAAW7hO,OAAiBw6O,GAAoB,EAC9HjD,GAAiBC,IACf75F,IAAOuhB,EAAS,GAAKvhB,IAAOuhB,GAAUsQ,IAAcjjL,KAAK02J,cAAgB,GAAKlF,IAAOxxJ,KAAKkrP,UAC5FF,EAAcz4N,QACd04N,EAAc14N,SAGlBvyB,KAAKkrP,OAAS15F,EACdxxJ,KAAK2yK,OAASvhB,EACdpxJ,KAAK02J,cAAgBusB,CACvB,CACF,CACA,YAAA+M,CAAahqI,EAAOp8C,GAClB,MAAM,KACJypJ,EAAI,QACJpnJ,GACErC,EACJ,GAAIypJ,EAAK9zJ,OAAS+0K,GAEhB,GAAIroK,EAAQqqG,WAAY,CACtB,MAAMwpF,EAAczsC,EAAKhB,YAEnB67F,EAAa,UAAWtkP,EAE9B,GAAmB,MAAfk2L,IAAwBA,EAAYptC,WAAaw7F,EAAW,CAC9D,MAAMC,EAAqBnuP,KAAKm7K,OAAO9nB,EAAK9oF,OACtC6gL,EAASprP,KAAKorP,OACfA,EAAO/3F,EAAK7B,MACf45F,EAAO/3F,EAAK7B,IAAM,CAChBv4G,MAAOo6G,EAAKp6G,MACZkyM,OAAQnrP,KAAKmrP,OACbG,KAAK,GAEPtrP,KAAKmrP,OAAS93F,EAAK7B,IAEjB28F,GAAsBA,EAAmBp+E,YAAcoqD,GACzDn6N,KAAKouP,YAAY/6F,EAAMpnJ,GAEvBjM,KAAKquP,WAAWzkP,EAEpB,CACF,MAEE5J,KAAK00K,IAAIrrE,QAAQokD,EAAOw6F,wBAAyB,CAC/CrxM,SAAS,EACTy8G,OACAzuJ,MAAO,IAAI9G,MAAM,2BAIzB,CACA,WAAAswP,CAAY/6F,EAAMpnJ,GAChB,MAAMyoK,EAAM10K,KAAK00K,IACjB6lD,GAAWtuN,EAASjM,KAAKs9L,QAAQjqC,EAAK7B,KAAK4oB,IACzCp6K,KAAKsuP,YAAYl0E,EAAM/mB,EAAK9oF,OAC5BmqG,EAAIrrE,QAAQokD,EAAOw6F,wBAAyB,CAC1CrxM,SAAS,EACTy8G,KAAMA,GACN,IACDzuJ,IACDk8E,EAAO31C,IAAI,0BAA0BvmC,KACrC8vK,EAAIrrE,QAAQokD,EAAOw6F,wBAAyB,CAC1CrxM,SAAS,EACTy8G,KAAMA,EACNzuJ,SACA,GAEN,CACA,UAAAypP,CAAWzkP,GACT,IAAI8gN,EACJ,MAAM,KACJr3D,EAAI,QACJpnJ,GACErC,GAEE,QACJ0zL,EAAO,iBACPutD,GACE7qP,KACEuuP,EAAUjxD,EAAQn9L,OAAS,EACjC,IAAKm9L,EAAQjqC,EAAK7B,MAAoB,IAAb+8F,EAEvB,YADA1D,EAAiBhpP,KAAK+H,GAGxB,MAAM8qK,EAAM10K,KAAK00K,KAlvBrB,SAAqB85E,EAAclxD,EAAS8tD,EAAQ55F,EAAIgQ,EAAYg5D,EAAUC,GAC5E,MAAMg0B,EAAS,IAAIl1B,GAGbm1B,EAAWzzF,GAAe,IAAIzlD,WAAWg5I,IAAet2N,OAAOD,QAAQ6hM,GAAY,MAAM18N,MAAM,MAC/Fg9K,EAAO,GACP6nC,EAAY3kB,EA9/NpB,SAAoCt7B,EAAU44D,EAAW,GACvD,OAAOxf,GAAoBp5C,EAZC,IAYgC,EAAI44D,EAClE,CA4/N8B+zB,CAA2BrxD,EAAQt7B,SAAUs7B,EAAQzgC,WAAa,EAC9F,IAGI+xF,EAHAC,EAAU,YACVC,EAAqB,EACrBC,EAAoB,EAEpBC,GAAW,EACfP,EAAOj1B,MAAQ,SAAUr/C,GAEvB,MAAM80E,EAAS7D,EAAO55F,GACtB,IAAI09F,EAAY9D,EAAO7jE,SAGvB,MAAM4nE,GAAyBL,EAAqB7sC,GAAa,IAWjE,GARc,MAAVgtC,GAAkBA,EAAO3D,WACDpvP,IAAtB6yP,EAEFG,EAAY9D,EAAO7jE,SAAW0nE,EAAOh2M,MA/CrB,SAAyBmyM,EAAQ55F,EAAI4xD,GAC3D,IAAI6rC,EAAS7D,EAAO55F,GAChB25F,EAASC,EAAO6D,EAAO9D,QAI3B,IAAKA,IAAWA,EAAOG,KAAO2D,EAAO3D,IAGnC,OAFAF,EAAO7jE,SAAW6jE,EAAOC,mBAAqB4D,EAAOh2M,WACrDg2M,EAAO3D,KAAM,GAMf,KAA6B,OAArB8D,EAAUjE,IAAmBiE,EAAQ9D,KAAK,CAChD,IAAI8D,EACJhE,EAAO7jE,UAAY0nE,EAAOh2M,MAAQkyM,EAAOlyM,MACzCg2M,EAAO3D,KAAM,EACb2D,EAAS9D,EACTA,EAASC,EAAO6D,EAAO9D,OACzB,CACAC,EAAOC,mBAAqBjoC,CAC9B,CA2BQisC,CAAgBjE,EAAQ55F,EAAI29F,IAG5BA,EAAuB,CACzB,IAAK7xD,EAEH,YADAsxD,EAAe,IAAI9wP,MAAM,mCAI3BoxP,EAAYC,EAAwB/D,EAAOC,kBAC7C,CACA,MAAMhqL,EAAW84G,EAAIv1G,QAAUu1G,EAAIj7J,UAC7BA,EAAY09L,GAA+D,KAAjDziC,EAAIj7J,UAAYgwO,EAAYH,GAAyC,IAAbvtF,GAAsB,IAC9G2Y,EAAIj7J,UAAYjiB,KAAKmrB,IAAIlJ,EAAW,GACpCi7J,EAAIv1G,QAAU3nE,KAAKmrB,IAAIlJ,EAAYmiD,EAAU,GAG7C,MAAM5qB,EAAO0jI,EAAI1jI,KAAKve,OAGtBiiJ,EAAI1jI,KAAO+C,mBAAmBoW,mBAAmBnZ,IAG5C0jI,EAAIjtK,KACPitK,EAAIjtK,GAAKgtN,GAAc//C,EAAIj7J,UAAWi7J,EAAIv1G,QAASnuB,IAEjD0jI,EAAIv1G,QAAU,GAChBw1G,EAAKv4K,KAAKs4K,EAEd,EACAs0E,EAAOh1B,eAAiB,SAAU70N,GAChCgqP,EAAehqP,CACjB,EACA6pP,EAAO/0B,QAAU,WACXk1B,EACFn0B,EAAcm0B,GAGhBp0B,EAASpgD,EACX,EAGAs0E,EAASlwP,SAAQ06N,IACf,GAAI81B,EAAU,CAEZ,GAAIpzN,GAAWs9L,EAAM,oBAAqB,CAExC81B,GAAW,EAEX91B,EAAKx1N,MAAM,IAAItG,MAAM,KAAKoB,SAAQkkC,IAC5B9G,GAAW8G,EAAW,UACxBmsN,EAAUnsN,EAAUh/B,MAAM,GACjBk4B,GAAW8G,EAAW,aAC/BosN,EAAqBlpN,SAASlD,EAAUh/B,MAAM,IAChD,IAEF,IAEEqrP,EAxIe,SAA0B/oK,GACjD,IAAI+yI,EAAKnzL,SAASogD,EAAWtiF,OAAO,IACpC,MAAM4rP,EAAO1pN,SAASogD,EAAWtiF,OAAO,GAAI,IACtC6rP,EAAO3pN,SAASogD,EAAWtiF,OAAO,GAAI,IACtC+W,EAAQurE,EAAW7lF,OAAS,EAAIylC,SAASogD,EAAW7oF,UAAU,EAAG6oF,EAAW7nD,QAAQ,OAAS,EACnG,KAAKqvH,EAAeurE,IAAQvrE,EAAe8hG,IAAU9hG,EAAe+hG,IAAU/hG,EAAe/yI,IAC3F,MAAM3c,MAAM,oCAAoCkoF,KAKlD,OAHA+yI,GAAM,IAAOu2B,EACbv2B,GAAM,IAAYw2B,EAClBx2B,GAAM,KAAiBt+M,EAChBs+M,CACT,CA4H8By2B,CAAiBX,GAAW,GAClD,CAAE,MAAOjqP,GACPgqP,EAAehqP,CACjB,CAEA,MACF,CAAoB,KAATs0N,IACT81B,GAAW,EAEf,CAEAP,EAAOlsN,MAAM22L,EAAO,KAAK,IAE3Bu1B,EAAO3sP,OACT,CAmpBI2tP,CADgE,OAAzC/kC,EAAoBr3D,EAAKnB,cAAwBw4D,EAAkB9gN,KAAOu3J,GAAiB9N,EAAKnB,YAAYtoJ,KAAM,IAAI4rG,WAAWvpG,IAAYA,EACzIjM,KAAKs9L,QAAQjqC,EAAK7B,IAAKxxJ,KAAKorP,OAAQ/3F,EAAK7B,GAAI6B,EAAKp6G,OAAOmhI,IAClFp6K,KAAKsuP,YAAYl0E,EAAM/mB,EAAK9oF,OAC5BmqG,EAAIrrE,QAAQokD,EAAOw6F,wBAAyB,CAC1CrxM,SAAS,EACTy8G,KAAMA,GACN,IACDzuJ,IACD,MAAM8qP,EAAmC,mCAAlB9qP,EAAM+Y,QACzB+xO,EACF7E,EAAiBhpP,KAAK+H,GAEtB5J,KAAK2vP,iBAAiBt8F,EAAMpnJ,GAG9B60E,EAAO31C,IAAI,4BAA4BvmC,KACnC8qP,GAAkBnB,EAAUl7F,EAAK7B,IAGrCkjB,EAAIrrE,QAAQokD,EAAOw6F,wBAAyB,CAC1CrxM,SAAS,EACTy8G,KAAMA,EACNzuJ,SACA,GAEN,CACA,gBAAA+qP,CAAiBt8F,EAAMpnJ,GAErB,MAAMkiP,EAAqBnuP,KAAKm7K,OAAO9nB,EAAK9oF,OACvC4jL,EAAmBp+E,WACtBwqD,GAAWtuN,EAASjM,KAAKs9L,QAAQjqC,EAAK7B,KAAK,KACzC28F,EAAmBp+E,UAAYoqD,GAC/Bn6N,KAAKouP,YAAY/6F,EAAMpnJ,EAAQ,IAC9B,KACDkiP,EAAmBp+E,UAAY,MAAM,GAG3C,CACA,WAAAu+E,CAAYl0E,EAAMw1E,GAChB,MAAMl7E,EAAM10K,KAAK00K,IACjB,GAAI10K,KAAKq0D,OAAOkzL,yBAA0B,CACxC,MAAMvqE,EAAYh9K,KAAK+8K,WAAW6yE,GAKlC,IAAK5yE,GAAgC,aAAnBA,EAAUxyG,KAC1B,OAEF4vG,EAAK57K,SAAQ27K,GAAOD,GAAc8C,EAAW7C,IAC/C,KAAO,CACL,MAAMmuE,EAAetoP,KAAKm7K,OAAOy0E,GACjC,IAAKtH,EACH,OAEF,MAAMnqF,EAAQmqF,EAAajmO,QAAU,UAAY,YAAcutO,EAC/Dl7E,EAAIrrE,QAAQokD,EAAOs/F,YAAa,CAC9BxtP,KAAM,YACN66K,OACAjc,SAEJ,CACF,CACA,eAAA4tF,CAAgB/lM,EAAOp8C,GACrB,MAAM,KACJypJ,GACEzpJ,EACAypJ,EAAK9zJ,OAAS+0K,IAChBt0K,KAAKgwL,aAAaviC,EAAOsiC,YAAanmL,EAE1C,CACA,uBAAAuiP,GACEnsP,KAAKm7K,OAAS,GACdn7K,KAAK8qP,eAAiB,CAAC,CACzB,CACA,qBAAAgB,CAAsB9lM,EAAOp8C,GAC3B5J,KAAKosP,oBACL,MAAM,cACJpB,EAAa,cACbC,GACEjrP,KACJ,IAAKA,KAAK0oC,UAAYsiN,IAAkBC,EACtC,OAEF,MAAM,KACJ53F,EAAI,QACJsO,GACE/3J,EACJ,GAAIypJ,EAAK9zJ,OAAS+0K,IAAgE,SAAtCt0K,KAAKguP,uBAAuB36F,GAKxE,IAAK,IAAIvvJ,EAAI,EAAGA,EAAI69J,EAAQxhK,OAAQ2D,IAAK,CACvC,MAAM+rP,EAAUluF,EAAQ79J,GAAGynI,MAC3B,GAAIskH,EAAS,CACX,MAAMC,EAAU9vP,KAAK+vP,kBAAkBF,GACvC7E,EAAcv2B,QAAQ9yD,EAAQ79J,GAAGmgK,IAAK6rF,EAAQ,IAC9C7E,EAAcx2B,QAAQ9yD,EAAQ79J,GAAGmgK,IAAK6rF,EAAQ,GAChD,CACF,CACF,CACA,gBAAApzE,CAAiB12H,GAAO,YACtBs3H,EAAW,UACXC,EAAS,mBACT6qE,EAAkB,KAClB7oP,IAEA,MAAM,MACJixK,GACExwK,KACJ,GAAKwwK,KAASA,EAAM3iD,YAAc0vD,GAAlC,CAKA,IAAKh+K,GAAiB,UAATA,EAAkB,CAC7B,MAAM,eACJurP,GACE9qP,KACJrE,OAAOwK,KAAK2kP,GAAgBtsP,SAAQq3N,GAAaj7C,GAAkBkwE,EAAej1B,GAAYv4C,EAAaC,IAC7G,CACA,GAAIv9K,KAAKq0D,OAAOkzL,0BAEM,IAAhBjqE,QAA4CphL,IAAvBksP,EAAkC,CACzD,MAAM,WACJrrE,GACE/8K,KACJrE,OAAOwK,KAAK42K,GAAYv+K,SAAQq3N,GAAaj7C,GAAkBmC,EAAW84C,GAAYv4C,EAAa8qE,IACrG,CAhBF,CAkBF,CACA,iBAAA2H,CAAkBnrF,GAChB,MAAMorF,EAAgB,CAAC,GAAI,IACrB/wL,EAAuB,GAAf2lG,EAAU,GACxB,IAAI1tH,EAAW,EACf,IAAK,IAAI9F,EAAI,EAAGA,EAAI6tB,EAAO7tB,IAAK,CAC9B,MAAM6+M,EAAUrrF,EAAU1tH,KACpBg5M,EAAU,IAAOtrF,EAAU1tH,KAC3Bi5M,EAAU,IAAOvrF,EAAU1tH,KACjC,IAAgB,IAAZg5M,GAA6B,IAAZC,IAGJ,EAAOF,EACX,CACX,MAAMG,EAAS,EAAOH,EAClB,IAA4BG,GAAU,IAA4BA,IAEpEJ,EAAcI,GAAQvuP,KAAKquP,GAC3BF,EAAcI,GAAQvuP,KAAKsuP,GAE/B,CACF,CACA,OAAOH,CACT,GAmsHAK,sBA5/SF,cAAoC7zD,GAClC,WAAAzxK,CAAY2pJ,EAAK+nB,EAAiBlrC,GAChCh5H,MAAMm8I,EAAK+nB,EAAiBlrC,EAAW,4BAA6B+iB,IACpEt0K,KAAKswP,YAAc,KACnBtwP,KAAKuwP,cAAgB,EACrBvwP,KAAKwwP,gBAAkB,EACvBxwP,KAAKywP,cAAgB,KACrBzwP,KAAK0wP,eAAiB,KACtB1wP,KAAK09J,SAAW,EAChB19J,KAAK2wP,YAAc,KACnB3wP,KAAK2nP,YAAc,KACnB3nP,KAAK4wP,UAAW,EAChB5wP,KAAK6wP,eAAgB,EACrB7wP,KAAK8wP,sBAAwB,KAC7B9wP,KAAKi8K,oBACP,CACA,mBAAA2S,GACE5uL,KAAKk8K,uBACL3jJ,MAAMq2J,sBACN5uL,KAAK2nP,YAAc,KACnB3nP,KAAKywP,cAAgB,KACrBzwP,KAAK0wP,eAAiB,IACxB,CACA,kBAAAz0E,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOsjG,qBAAsB/wP,KAAKgxP,qBAAsBhxP,MAC/D00K,EAAI1yF,GAAGyrE,EAAOwjG,sBAAuBjxP,KAAKkxP,sBAAuBlxP,MACjE00K,EAAI1yF,GAAGyrE,EAAOksB,mBAAoB35K,KAAKmxP,mBAAoBnxP,MAC3D00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACnC00K,EAAI1yF,GAAGyrE,EAAO6uF,aAAct8O,KAAKu8O,cAAev8O,MAChD00K,EAAI1yF,GAAGyrE,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,MACpD00K,EAAI1yF,GAAGyrE,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACtD00K,EAAI1yF,GAAGyrE,EAAO4xF,eAAgBr/O,KAAKqxP,gBAAiBrxP,MACpD00K,EAAI1yF,GAAGyrE,EAAOu+F,eAAgBhsP,KAAKisP,eAAgBjsP,MACnD00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACpD,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MACjD00K,EAAI57E,IAAI20D,EAAOsjG,qBAAsB/wP,KAAKgxP,qBAAsBhxP,MAChE00K,EAAI57E,IAAI20D,EAAOwjG,sBAAuBjxP,KAAKkxP,sBAAuBlxP,MAClE00K,EAAI57E,IAAI20D,EAAOksB,mBAAoB35K,KAAKmxP,mBAAoBnxP,MAC5D00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACpC00K,EAAI57E,IAAI20D,EAAO6uF,aAAct8O,KAAKu8O,cAAev8O,MACjD00K,EAAI57E,IAAI20D,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,MACrD00K,EAAI57E,IAAI20D,EAAOgvB,gBAAiBz8K,KAAK08K,iBAAkB18K,MACvD00K,EAAI57E,IAAI20D,EAAO4xF,eAAgBr/O,KAAKqxP,gBAAiBrxP,MACrD00K,EAAI57E,IAAI20D,EAAOu+F,eAAgBhsP,KAAKisP,eAAgBjsP,MACpD00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACrD,CAGA,cAAAisP,CAAejmM,GAAO,KACpBqtG,EAAI,GACJnmJ,EAAE,QACFowL,EAAO,UACPzgC,IAIA,GAAW,SAAP3vJ,EAAe,CACjB,MAAMskJ,EAAK6B,EAAK7B,GAChBxxJ,KAAKs9L,QAAQjqC,EAAK7B,IAAM,CACtBwQ,SAAUs7B,EACVzgC,aAEF78J,KAAKmrC,IAAI,mBAAmBqmH,sBAAuB8rC,KACnDt9L,KAAKuwP,aAAe/+F,EAEhBxxJ,KAAK6P,QAAUmtB,IACjBh9B,KAAK2uL,MAET,CACF,CACA,SAAA9Z,CAAUC,GACR,IAAK90K,KAAKuuK,OAGR,OAFAvuK,KAAK80K,cAAgBA,OACrB90K,KAAK6P,MAAQmtB,IAGf,MAAM8/J,EAAkB98L,KAAK88L,gBAC7B98L,KAAK+0K,WACL/0K,KAAKqnD,YA/Fe,KAgGhBy1I,EAAkB,IAAwB,IAAnBhoB,GACzB90K,KAAKmrC,IAAI,gDAAgD2xJ,EAAgBlzH,QAAQ,MACjFkrG,EAAgBgoB,EAChB98L,KAAK6P,MAAQmtB,KAEbh9B,KAAKg9L,gBAAiB,EACtBh9L,KAAK6P,MAAQmtB,IAEfh9B,KAAK+8L,iBAAmB/8L,KAAK80K,cAAgB90K,KAAK88L,gBAAkBhoB,EACpE90K,KAAK2uL,MACP,CACA,MAAAO,GACE,OAAQlvL,KAAK6P,OACX,KAAKmtB,GACHh9B,KAAKsxP,aACL,MACF,KAAKt0N,GACH,CACE,IAAIu0N,EACJ,MAAM,OACJhjF,EAAM,QACN7Q,GACE19J,KACEw2B,EAAoB,MAAV+3I,GAAiE,OAAtCgjF,EAAkBhjF,EAAO7Q,SAAnC,EAAgE6zF,EAAgB/6N,QACjH,GAAIA,EAAS,CACX,GAAIx2B,KAAK6mM,iBAAiBrwK,GACxB,MAEFx2B,KAAK6P,MAAQmtB,EACf,CACA,KACF,CACF,KAAKA,GACH,CACE,IAAIqkN,EACJ,MAAMp9N,EAAMhM,YAAYgM,MAClBg5K,EAAYj9L,KAAKi9L,UAEvB,IAAKA,GAAah5K,GAAOg5K,GAA2C,OAA7BokD,EAAcrhP,KAAKwwK,QAAkB6wE,EAAYmQ,QAAS,CAC/F,MAAM,OACJjjF,EAAM,QACN7Q,GACE19J,KACJA,KAAKmrC,IAAI,gDACTnrC,KAAKonM,yBAAmC,MAAV74B,OAAiB,EAASA,EAAO7Q,KAAa,MAC5E19J,KAAK6P,MAAQmtB,EACf,CACA,KACF,CACF,KAAKA,GACH,CAEE,MAAM2zN,EAAc3wP,KAAK2wP,YACzB,GAAIA,EAAa,CACf,MAAM,KACJt9F,EAAI,KACJlmH,EAAI,MACJxqB,EAAK,SACLq+K,GACE2vD,EACJ,QAA8Bz0P,IAA1B8D,KAAKs9L,QAAQjqC,EAAK7B,IAAmB,CACvCxxJ,KAAK2wP,YAAc,KACnB3wP,KAAKwwP,gBAAkB,EACvBxwP,KAAK6P,MAAQmtB,GACb,MACMpzB,EAAO,CACXypJ,OACAlmH,OACAlhC,QAJc0W,EAAM7gB,QAKpB21K,eAAgB,MAElBz3K,KAAKg/L,4BAA4Bp1L,GAC7Bo3L,GACFzoK,MAAM0mK,4BAA4Br1L,EAEtC,MAAO,GAAI5J,KAAKuwP,eAAiBvwP,KAAKwwP,eAEpCxwP,KAAKmrC,IAAI,wBAAwBkoH,EAAK7B,wCAAwCxxJ,KAAKuwP,gBACnFvwP,KAAKyxP,2BACA,CAEL,MAAM5wN,EAAM7gC,KAAKsjM,kBACX9a,EAAaqK,GAAarK,WAAWxoL,KAAK68L,YAAah8J,EAAK7gC,KAAKq0D,OAAOgqI,eAC5CjZ,GAA4BoD,EAAWx7K,IAAKhN,KAAKq0D,OAAO2wH,uBAAwB3xB,GAClF,IAC9BrzJ,KAAKmrC,IAAI,wBAAwBkoH,EAAK7B,SAAS6B,EAAKp6G,+CAA+CuvI,EAAWx7K,iBAC9GhN,KAAKyxP,uBAET,CACF,MACEzxP,KAAK6P,MAAQmtB,EAEjB,EAEJh9B,KAAK09L,WACP,CACA,oBAAA+zD,GACE,MAAMd,EAAc3wP,KAAK2wP,YACrBA,IACF3wP,KAAKy8L,gBAAgB5L,eAAe8/D,EAAYt9F,MAChDrzJ,KAAK2wP,YAAc,KACnB3wP,KAAKwwP,gBAAkB,EACvBxwP,KAAK6P,MAAQmtB,GAEjB,CACA,iBAAAshK,GACEt+L,KAAKyxP,uBACLl5N,MAAM+lK,mBACR,CACA,SAAAZ,GACE,MAAM,MACJltB,GACExwK,KACW,MAATwwK,GAAiBA,EAAMm1B,aAI7B3lM,KAAK88L,gBAAkBtsB,EAAM3iD,YAC/B,CACA,UAAAyjI,GACE,MAAM,IACJ58E,EAAG,OACHnG,EAAM,MACNiC,EAAK,QACL9S,GACE19J,KACEq0D,EAASqgH,EAAIrgH,OAQnB,IAAKr0D,KAAKkwJ,YAAcsgB,IAAUxwK,KAAKo9L,qBAAuB/oI,EAAOi+K,oBAAkC,MAAV/jE,IAAkBA,EAAO7Q,GACpH,OAEF,MAAM88E,EAAYjsE,EAAO7Q,GACnBirF,EAAenO,EAAUhkN,QAC/B,IAAKmyN,GAAgBA,EAAat0F,MAAQr0J,KAAKm9L,kBAAoBq9C,GAAax6O,KAAK6mM,iBAAiB8hD,GAEpG,YADA3oP,KAAK6P,MAAQmtB,IAGf,MAAMqmK,EAAarjM,KAAK68L,YAAc78L,KAAK68L,YAAc78L,KAAKwwK,MAC1DxwK,KAAK6wP,eAAiBxtD,IACxBrjM,KAAK6wP,eAAgB,EACrB7wP,KAAKwnM,mBAAmBnE,EAAYlzC,EAA6BmkB,KAEnE,MAAMkU,EAAaxoL,KAAKq/L,iBAAiBgE,EAAY/uB,IACrD,GAAmB,OAAfkU,EACF,OAEF,IAAKxoL,KAAK0wP,gBAAkB1wP,KAAK89L,aAAatV,EAAYmgE,GAKxD,OAJAj0E,EAAIrrE,QAAQokD,EAAOgvF,WAAY,CAC7Bl9O,KAAM,eAERS,KAAK6P,MAAQmtB,IAGf,MAAM0rN,EAAiB1oP,KAAKq/L,iBAAiBr/L,KAAKswP,YAActwP,KAAKswP,YAActwP,KAAKwwK,MAAO8D,IACzFkf,EAAYhL,EAAWzkL,IACvB4/L,EAAY3jM,KAAKyjM,mBAAqC,MAAlBilD,OAAyB,EAASA,EAAe3kP,KACrFkwJ,EAAY00F,EAAa10F,UACzBh7G,EAAQg7G,EAAU,GAAGh7G,MACrBy4M,EAAe1xP,KAAKsjM,kBACpB1E,EAAmB5+L,KAAK4wP,SAAWc,EAAelpE,EAAWx7K,IACnE,GAAIhN,KAAK0wP,gBAAkBlgF,EAAO,CAChC,MAAM3vI,EAAM6wN,EAER/I,EAAa/0F,UAAY/yH,EAAMoY,IAE7BuvI,EAAWx7K,IAAMisC,GAASuvI,EAAW2K,aACvCnzL,KAAKmrC,IAAI,yEACTqlI,EAAM3iD,YAAc50E,EAAQ,IAGlC,CAGA,GAAIu6I,GAAamQ,IAAc3jM,KAAK0wP,gBAAkB9xD,EAAmB3qC,EAAUA,EAAU9zJ,OAAS,GAAG84C,MACvG,OAEF,IAAIo6G,EAAOrzJ,KAAKikM,gBAAgBrF,EAAkB+pD,GAC9CgJ,GAAQ,EAMZ,GAJIt+F,GAAQrzJ,KAAKukM,cAAclxC,EAAMurC,KACnC+yD,IAAUt+F,EAAK1kC,IACf0kC,EAAOrzJ,KAAKykM,2BAA2BpxC,EAAMs1F,EAAcngE,EAAYlU,GAAwBqvB,KAE5FtwC,EAEH,YADArzJ,KAAK6wP,eAAgB,GAKvB,MAAMe,EAAoBlJ,GAAkBr1F,EAAKp6G,MAAQyvM,EAAe17O,IAAM27O,EAAa5zF,eAC3F,GAAI68F,IAEgB,MAAlBlJ,IAA0BA,EAAe3kP,MAAQykL,EAAWzkL,IAAK,CAEjE,MAAM8tP,EAAW7xP,KAAKiwL,gBAAgB58B,EAAKp6G,MAAOq7H,IAClD,GAAiB,OAAbu9E,EACF,OAIF,GADAF,IAAUA,IAAUE,EAASljI,OAASijI,GAA4C,IAAvBlJ,EAAe3kP,KACtE6tP,IAAsBD,GAASA,GAASnpE,EAAW2K,WAAa3K,EAAW2K,UAAY0+D,EAAS7kP,IAClG,MAEJ,CACAhN,KAAK2+L,aAAatrC,EAAMmnF,EAAW57C,EACrC,CACA,kBAAA6E,CAAmBqlD,GACjB,MAAMC,EAAkBxwN,MAAMkrK,qBAC9B,OAAKqlD,EAGE7rP,KAAK6+B,IAAI7+B,KAAKmrB,IAAI2gO,EAAiBD,GAAmB9oP,KAAKq0D,OAAOwvI,oBAFhEklD,CAGX,CACA,gBAAAzsE,GACEt8K,KAAKswP,YAAc,KACnBtwP,KAAK6wP,cAAgB7wP,KAAK4wP,UAAW,EACrCr4N,MAAM+jJ,kBACR,CACA,oBAAA00E,CAAqBhrM,GAAO,YAC1B0wH,IAGA12K,KAAK29L,kBACL39L,KAAKuuK,OAASmI,EAAY31K,KAAIsnP,GAAiB,IAAIhoE,GAAMgoE,IAC3D,CACA,qBAAA6I,CAAsBlrM,EAAOp8C,GAE3B,MAAMmzO,IAAanzO,EAAK4rC,IACxBx1C,KAAK09J,QAAU9zJ,EAAKsD,GACpB,MAAM,YACJwvL,GACE18L,KACA08L,IACFA,EAAY5pC,gBACZ9yJ,KAAK4nM,sBAAsBlL,EAAYzjJ,QAEzCj5C,KAAKs+L,oBAEAy+C,EAIH/8O,KAAKqnD,YAxVa,KAqVlBrnD,KAAK29L,kBAOHo/C,GACF/8O,KAAK0wP,eAAiB9mP,EAEtB5J,KAAK6P,MAAQmtB,GACbh9B,KAAK8xP,mBAAmBloP,KAExB5J,KAAK0wP,eAAiB,KACtB1wP,KAAKywP,cAAgB7mP,EACrB5J,KAAK6P,MAAQmtB,IAEfh9B,KAAK2uL,MACP,CACA,iBAAAzZ,GACEl1K,KAAKy8L,gBAAgBjK,qBACrBxyL,KAAK80K,cAAgB90K,KAAK88L,gBAAkB,EAC5C98L,KAAK6wP,cAAgB7wP,KAAK4wP,UAAW,EACrC5wP,KAAKuuK,OAASvuK,KAAK2nP,YAAc3nP,KAAK2wP,YAAc3wP,KAAKywP,cAAgBzwP,KAAK8wP,sBAAwB9wP,KAAK0wP,eAAiB,KAC5H1wP,KAAKo9L,oBAAqB,EAC1Bp9L,KAAK09J,QAAU19J,KAAKuwP,aAAevwP,KAAKwwP,gBAAkB,CAC5D,CACA,aAAArb,CAAcnvL,EAAOp8C,GACnB5J,KAAK2nP,YAAc/9O,EAAK4sB,QACW,OAA/Bx2B,KAAK8wP,wBACP9wP,KAAK00K,IAAIrrE,QAAQokD,EAAOksB,mBAAoB35K,KAAK8wP,uBACjD9wP,KAAK8wP,sBAAwB,KAEjC,CACA,kBAAAK,CAAmBnrM,EAAOp8C,GACxB,IAAI4+O,EACJ,GAAwB,MAApBxoP,KAAK2nP,YAEP,YADA3nP,KAAK8wP,sBAAwBlnP,GAG/B,MAAM,OACJ2kK,GACEvuK,MAEFw2B,QAASosJ,EACT11K,GAAIwwJ,GACF9zJ,EACJ,IAAK2kK,EAEH,YADAvuK,KAAK+8B,KAAK,+CAA+C2gI,KAG3D19J,KAAKmrC,IAAI,eAAeuyH,aAAmBklB,EAAW/tB,WAAW+tB,EAAW5uB,SAAS4uB,EAAWpsB,WAAa,SAASosB,EAAWpsB,cAAcosB,EAAWlsB,iBAAmB,eAAeksB,EAAW5tB,iBACvM,MAAMmJ,EAAQoQ,EAAO7Q,GACrB,IAAIu2B,EAAU,EACd,GAAIrR,EAAWvuB,MAA4C,OAAnCm0F,EAAiBrqF,EAAM3nI,UAAoBgyN,EAAen0F,KAAM,CACtFr0J,KAAK0/L,gBAAgB9c,GACrB,MAAM+kE,EAAc3nP,KAAK2nP,YACzB,GAAI/kE,EAAW/sB,oBAAsB8xF,EACnC,OAQA,IAAI3pD,GAND7/B,EAAM3nI,SAAWosJ,EAAWjsB,oBAAsBgxF,EAAYhxF,oBAGjEw9B,GAAwBvR,EAAY+kE,GACpC1zD,EAAUrR,EAAW3uB,UAAU,GAAGh7G,OAGlCg7I,EAAUj0L,KAAK4lM,eAAehjB,EAAYzkB,EAAM3nI,QAA2D,OAAjDwnK,EAAwBh+L,KAAKm9L,sBAA2B,EAASa,EAAsBxnK,QAErJ,CACA2nI,EAAM3nI,QAAUosJ,EAChB5iL,KAAKm9L,gBAAkBh/B,EAGlBn+J,KAAKo9L,qBAAuBp9L,KAAK2nP,aAAgB/kE,EAAWvuB,MAC/Dr0J,KAAK8mM,iBAAiB9mM,KAAK2nP,aAAe/kE,EAAYqR,GAGpDj0L,KAAK6P,QAAUmtB,IAAwBh9B,KAAK6mM,iBAAiBjkB,KAC/D5iL,KAAK6P,MAAQmtB,IAIfh9B,KAAK2uL,MACP,CACA,2BAAAqQ,CAA4Bp1L,GAC1B,IAAI8gN,EACJ,MAAM,KACJr3D,EAAI,KACJlmH,EAAI,QACJlhC,GACErC,GACE,OACJyqD,EAAM,QACNqpG,EAAO,OACP6Q,GACEvuK,KACJ,IAAKuuK,EAEH,YADAvuK,KAAK+8B,KAAK,yEAAyEs2H,EAAKjC,eAAeiC,EAAK9oF,8BAG9G,MAAM4zF,EAAQoQ,EAAO7Q,GACrB,IAAKS,EAEH,YADAn+J,KAAK+8B,KAAK,sDAGZ,MAAMvG,EAAU2nI,EAAM3nI,QACtB,IAAKA,EAGH,OAFAx2B,KAAK+8B,KAAK,gEACV/8B,KAAK4nM,sBAAsBv0C,EAAKp6G,OAGlC,MAAM42H,EAAax7G,EAAOu9K,mBAAqBzzE,EAAM0R,YAAc,YACnE,IAAI8sB,EAAa38L,KAAK28L,WACjBA,IACHA,EAAa38L,KAAK28L,WAAa,IAAIusB,GAAoBlpN,KAAK00K,IAAKJ,GAAyBt0K,KAAK+xP,wBAAwB/iP,KAAKhP,MAAOA,KAAKyiM,uBAAuBzzL,KAAKhP,QAKtK,MAAMs9L,EAAUt9L,KAAKs9L,QAAQjqC,EAAK7B,IAC5B+0D,EAA4D,OAAzCmE,EAAoBr3D,EAAKnB,kBAAuB,EAASw4D,EAAkB9gN,KACpG,QAAgB1N,IAAZohM,EAAuB,CAGzB,MAAMwf,GAAqB,EACrB75B,EAAY91I,EAAOA,EAAK15B,OAAS,EACjC46C,GAAyB,IAAf40H,EACVie,EAAY,IAAIxN,GAAcrgC,EAAK9oF,MAAO8oF,EAAKjC,GAAIiC,EAAKrB,MAAMjC,WAAY9jJ,EAAQqqG,WAAY2sE,EAAW50H,GAC/GsuI,EAAW96L,KAAKoK,EAASs6M,EAAiB12C,EAAY,GAAIxc,EAAMlmH,EAAM3W,EAAQw+H,cAAe8nD,EAAoB5b,EAAW5D,EAC9H,KAAO,CACLt9L,KAAKmrC,IAAI,4BAA4BkoH,EAAK7B,wDAAwD6B,EAAKjC,UAAU56H,EAAQq+H,YAAYr+H,EAAQw9H,gBAAgB0J,KAC7J,MAAM,MACJ/6I,GACE3iB,KAAK2wP,YAAc3wP,KAAK2wP,aAAe,CACzCt9F,OACAlmH,OACAxqB,MAAO,IAAI0lL,GACXrH,UAAU,GAEZr+K,EAAM9gB,KAAK,IAAI2zG,WAAWvpG,IAC1BjM,KAAKwwP,eAAiBxwP,KAAKuwP,aAC3BvwP,KAAK6P,MAAQmtB,EACf,CACF,CACA,2BAAAiiK,CAA4BgD,GACtBjiM,KAAK2wP,YACP3wP,KAAK2wP,YAAY3vD,UAAW,EAG9BzoK,MAAM0mK,4BAA4BgD,EACpC,CACA,aAAAs6C,GAGEv8O,KAAK68L,YAAc78L,KAAKswP,YAAc,KACtCtwP,KAAKg9L,gBAAiB,CACxB,CACA,eAAAo0D,CAAgBprM,EAAOp8C,GACrB,MAAMsuK,EAAatuK,EAAKuxK,OAAO3nB,MAC3B0kB,IACFl4K,KAAK68L,YAAc3kB,EAAWxuK,QAAU,MAEtCE,EAAKuxK,OAAO1nB,QACdzzJ,KAAKswP,YAAc1mP,EAAKuxK,OAAO1nB,MAAM/pJ,QAAU,KAEnD,CACA,cAAAomL,CAAe9pI,EAAOp8C,GACpB,MAAM,KACJypJ,EAAI,KACJlmH,GACEvjC,EACJ,GAAIypJ,EAAK9zJ,OAAS+0K,GAYlB,GAAIt0K,KAAK++L,mBAAmB1rC,GAG1BrzJ,KAAK+8B,KAAK,YAAYs2H,EAAKjC,KAAKjkH,EAAO,OAASA,EAAK15B,MAAQ,eAAe4/I,EAAK9oF,qDAAqDvqE,KAAK6P,uBAAuB7P,KAAK0wP,eAAiB1wP,KAAK0wP,eAAetoP,KAAO,eAHrN,CAMA,GAAgB,gBAAZirJ,EAAKjC,GAAsB,CAC7BpxJ,KAAK8kL,aAAezxB,EACpB,MAAM8K,EAAQn+J,KAAK0wP,eACfvyF,IACFn+J,KAAKywP,cAAgBtyF,EACrBn+J,KAAK0wP,eAAiB,KACtB1wP,KAAK00K,IAAIrrE,QAAQokD,EAAOukG,qBAAsB3kG,EAAe,CAAC,EAAG8Q,IAErE,CACAn+J,KAAKqgM,qBAAqBhtC,EAAMlmH,EAVhC,MAhBE,IAAKntC,KAAKg9L,gBAAkB3pC,EAAK9zJ,OAAS+0K,GAAwB,CAChE,MAAM+uB,EAAarjM,KAAKswP,aAAetwP,KAAKwwK,MACxC6yB,GACyBxQ,GAAaE,YAAYsQ,GAC7BljM,SACrBH,KAAKg9L,gBAAiB,EAG5B,CAmBJ,CACA,OAAA/vL,CAAQ+4C,EAAOp8C,GACb,IAAI64O,EACJ,GAAI74O,EAAK+uK,MACP34K,KAAK6P,MAAQmtB,QAGf,OAAQpzB,EAAK4sB,SACX,KAAKm3H,EAAaipC,SAClB,KAAKjpC,EAAaq6C,mBAClB,KAAKr6C,EAAaoyC,mBAClB,KAAKpyC,EAAaonC,gBAClB,KAAKpnC,EAAa21B,kBAClB,KAAK31B,EAAa40F,eAClB,KAAK50F,EAAa41B,iBAChBvjL,KAAKgnM,yBAAyB1yB,GAAyB1qK,GACvD,MACF,KAAK+jJ,EAAaurB,uBAClB,KAAKvrB,EAAasrB,yBAClB,KAAKtrB,EAAa6rB,oBAEX5vK,EAAK0/K,YAActpL,KAAK6P,QAAUmtB,KAA0D,OAAjCylN,EAAgB74O,EAAK3C,cAAmB,EAASw7O,EAAcljP,QAAU80K,KACvIr0K,KAAK6P,MAAQmtB,IAEf,MACF,KAAK2wH,EAAa8nF,oBAClB,KAAK9nF,EAAasxF,kBAChB,IAAKr1O,EAAKhC,QAA0B,UAAhBgC,EAAKhC,OACvB,OAEF,GAAIgC,EAAK4sB,UAAYm3H,EAAa8nF,oBAEhC,YADAz1O,KAAKs+L,oBAGHt+L,KAAKsnM,2BAA2B19L,KAClC5J,KAAKywP,cAAgB,KACrBl4N,MAAMonK,gBAAgB,EAAGjsL,OAAOioK,kBAAmB,UAErD,MACF,KAAKhuB,EAAa60C,mBAChBxiM,KAAKkoM,mBAAmBt+L,GAG9B,CACA,gBAAA8yK,CAAiB12H,GAAO,KACtBzmD,IAEIA,IAAS4wJ,IACXnwJ,KAAK4wP,UAAW,EAEpB,CACA,eAAAS,CAAgBrrM,GAAO,KACrBzmD,IAEA,GAAIA,IAAS4wJ,EAA6B,CACxCnwJ,KAAK4wP,UAAW,EAChB5wP,KAAK6wP,eAAgB,EACjB7wP,KAAK6P,QAAUmtB,KACjBh9B,KAAK6P,MAAQmtB,IAEf,MAAM6/J,EAAc78L,KAAK68L,aAAe78L,KAAKwwK,MACzCqsB,IACF78L,KAAKwnM,mBAAmB3K,EAAat9L,EAAM+0K,IAC3Ct0K,KAAK2uL,OAET,CACF,CACA,uBAAAojE,CAAwBjnC,GACtB,IAAImnC,EACJ,MAAM/kP,EAAK,SACL,IACJwnK,GACE10K,MACE,YACJqnN,EAAW,UACXnmB,GACE4pB,EACE7jN,EAAUjH,KAAK0iM,kBAAkBxB,GACvC,IAAKj6L,EAEH,YADAjH,KAAK2nM,wBAAwBzG,GAG/B,MAAM,KACJ7tC,EAAI,KACJlmH,EAAI,MACJo9B,GACEtjE,GACE,QACJuvB,GACE+zC,GACE,MACJipF,EAAK,KACL/8G,EAAI,IACJulH,EAAG,YACH9J,GACEm1D,EAIJ,IAAIrnN,KAAK++L,mBAAmB1rC,IAAU78H,EAAtC,CAQA,GAJAx2B,KAAK6P,MAAQmtB,GACTh9B,KAAK0wP,gBAAkBl9F,GACzBxzJ,KAAKkyP,oBAAoBlyP,KAAK0wP,gBAEb,MAAfx+F,GAAuBA,EAAYipB,OAAQ,CAC7C,MAAMg3E,EAAc9+F,EAAKnB,aAAemB,EACxCrzJ,KAAKoyP,mBAAmB7nL,EAAO2nF,EAAYipB,OAAQg3E,EAAajxD,GAChExsB,EAAIrrE,QAAQokD,EAAO4kG,0BAA2B,CAC5Ch/F,KAAM8+F,EACNjlP,KACAiuK,OAAQjpB,EAAYipB,QAGxB,CACA,GAAI3nB,EAAO,CACT,MAAM,SACJ/B,EAAQ,OACRC,EAAM,SACNC,EAAQ,OACRC,GACE4B,EACArmH,IACFA,EAAKsjH,kBAAkBN,GAA+B,CACpDsB,WACAC,SACAC,WACAC,WAGJyB,EAAKJ,wBAAwB9C,EAA6BsB,EAAUC,EAAQC,EAAUC,GACtF5xJ,KAAK6iM,mBAAmBrvC,EAAOH,EAAMlmH,EAAM+zJ,EAC7C,CACA,GAAW,MAAPllC,GAA+C,OAA/Bi2F,EAAej2F,EAAI2F,UAAoBswF,EAAa9xP,OAAQ,CAC9E,MAAMmyP,EAAa5mK,EAAS,CAC1Bx+E,KACAmmJ,OACA78H,WACCwlI,GACH0Y,EAAIrrE,QAAQokD,EAAO8uB,sBAAuB+1E,EAC5C,CACA,GAAI77M,EAAM,CACR,MAAM87M,EAAc7mK,EAAS,CAC3Bx+E,KACAmmJ,OACA78H,WACCigB,GACHi+H,EAAIrrE,QAAQokD,EAAOo+F,sBAAuB0G,EAC5C,CAhDA,MAFEvyP,KAAKy8L,gBAAgB5L,eAAex9B,EAmDxC,CACA,kBAAA++F,CAAmB/M,EAAclqE,EAAQ9nB,EAAM6tC,GAC7C,GAAIlhM,KAAK6P,QAAUmtB,GACjB,OAGEm+I,EAAO1nB,cACF0nB,EAAO1nB,MAIhB,MAAM0K,EAAQgd,EAAO3nB,MACrB,IAAK2K,EACH,OAEFA,EAAMjxJ,GAAK,QACX,MAAMslP,EAAqBnN,EAAax1E,WACxC7vK,KAAKmrC,IAAI,gCAAgCgzH,EAAMnmG,oCAAoCw6L,KAAsBr0F,EAAMK,UAE3Gg0F,GAA+D,IAAzCA,EAAmBp1P,MAAM,KAAK+C,SACtDg+J,EAAMwP,WAAa6kF,GAErBxyP,KAAK00K,IAAIrrE,QAAQokD,EAAO2wE,cAAejjD,GACvC,MAAMjpB,EAAciM,EAAMjM,YAC1B,GAAmB,MAAfA,GAAuBA,EAAY57C,WAAY,CACjD,MAAMzmD,EAAU,CACdtwD,KAAM,QACN8zJ,OACAlmH,KAAM,KACN+zJ,YACAt5L,OAAQyrJ,EAAK9zJ,KACbqK,KAAMsoJ,GAERlyJ,KAAK00K,IAAIrrE,QAAQokD,EAAOu1C,iBAAkBnzI,EAC5C,CAEA7vD,KAAKmvL,eACP,CACA,YAAAwP,CAAatrC,EAAM8K,EAAOygC,GAExB,MAAM2G,EAAYvlM,KAAKy8L,gBAAgB79L,SAASy0J,GAK9C,IAAIo/F,EADN,GAHAzyP,KAAK08L,YAAcrpC,EAGfrzJ,KAAK0wP,gBAAkBnrD,IAAcnW,IAA4BmW,IAAcnW,GAEjF,GAAgB,gBAAZ/7B,EAAKjC,GACPpxJ,KAAK6/L,iBAAiBxsC,EAAM8K,QACvB,GAAyC,OAApCs0F,EAAkBt0F,EAAM3nI,UAAoBi8N,EAAgBp+F,OAASr0J,KAAKs9L,QAAQjqC,EAAK7B,IAAK,CACtGxxJ,KAAKmrC,IAAI,+CAA+CkoH,EAAK7B,mDAAmD6B,EAAKjC,eAAepxJ,KAAK09J,WACzI19J,KAAK6P,MAAQmtB,GACb,MAAM2qN,EAAc3nP,KAAK2nP,YACrBA,GAAeA,EAAY1zF,UAAU,GAAGh7G,QAAUklH,EAAM3nI,QAAQy9H,UAAU,GAAGh7G,OAC/Ek7I,GAAwBh2B,EAAM3nI,QAASmxN,EAE3C,MACE3nP,KAAKo9L,oBAAqB,EAC1B7kK,MAAMomK,aAAatrC,EAAM8K,EAAOygC,QAGlC5+L,KAAKm/L,qBAAqB9rC,EAE9B,CACA,kBAAAy+F,CAAmBpB,GACjB,GAAI1wP,KAAKwwK,OAASxwK,KAAKywP,cAAe,CACpC,MAAM,KACJroP,EAAI,KACJstI,EAAI,UACJw6B,EAAS,gBACTG,EAAe,WACfR,EAAU,SACVM,GACEnwK,KAAKywP,cACJ7iE,GAAc,CACjBxlL,OACAstI,OACAw6B,YACAG,kBACAR,aACAM,YACCugF,EAAgBviE,MACjBnuL,KAAKmrC,IAAI,8CACT5S,MAAMonK,gBAAgB,EAAGjsL,OAAOioK,kBAAmB,SACnD37K,KAAKywP,cAAgB,KAEzB,CACF,CACA,mBAAAyB,CAAoBxB,GAClB,MAAM,IACJh8E,GACE10K,KACJA,KAAK8xP,mBAAmBpB,GACxB1wP,KAAKywP,cAAgBC,EACrB1wP,KAAK0wP,eAAiB,KACtBh8E,EAAIrrE,QAAQokD,EAAOukG,qBAAsB3kG,EAAe,CAAC,EAAGqjG,GAC9D,GA4uRAgC,qBAjtRF,cAAmC/sE,GACjC,WAAA56J,CAAY2pJ,GACVn8I,MAAMm8I,EAAK,4BACX10K,KAAKm7K,OAAS,GACdn7K,KAAKipP,SAAW,KAChBjpP,KAAKkpP,cAAgB,GACrBlpP,KAAK09J,SAAW,EAChB19J,KAAKsoP,aAAe,KACpBtoP,KAAKmpP,oBAAqB,EAC1BnpP,KAAK40K,mBACP,CACA,iBAAAA,GACE,MAAM,IACJF,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MAClD00K,EAAI1yF,GAAGyrE,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACtD00K,EAAI1yF,GAAGyrE,EAAOksB,mBAAoB35K,KAAKmxP,mBAAoBnxP,MAC3D00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACrC,CACA,mBAAAy1K,GACE,MAAM,IACJf,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MACnD00K,EAAI57E,IAAI20D,EAAOwnF,gBAAiBj1O,KAAKk1O,iBAAkBl1O,MACvD00K,EAAI57E,IAAI20D,EAAOksB,mBAAoB35K,KAAKmxP,mBAAoBnxP,MAC5D00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACtC,CACA,OAAAiyE,GACEjyE,KAAKy1K,sBACLz1K,KAAKm7K,OAAOh7K,OAAS,EACrBH,KAAKkpP,cAAc/oP,OAAS,EAC5BH,KAAKsoP,aAAe,KACpB/vN,MAAM05C,SACR,CACA,iBAAAijG,GACEl1K,KAAKm7K,OAAS,GACdn7K,KAAKkpP,cAAgB,GACrBlpP,KAAKipP,SAAW,KAChBjpP,KAAKsoP,aAAe,KACpBtoP,KAAK09J,SAAW,EAChB19J,KAAKmpP,oBAAqB,CAC5B,CACA,gBAAAlrB,CAAiBj4K,EAAOp8C,GACtB5J,KAAKm7K,OAASvxK,EAAK8sK,aAAe,EACpC,CACA,kBAAAy6E,CAAmBnrM,EAAOp8C,GACxB,MAAM,GACJsD,EAAE,QACFujK,EAAO,QACPj6I,GACE5sB,EACEmgP,EAAqB/pP,KAAKkpP,cAAch8O,GAC9C,IAAK68O,GAAsBA,EAAmBt5E,UAAYA,EAExD,YADAzwK,KAAK+8B,KAAK,uBAAuB7vB,eAAgBujK,+BAA2D,MAAtBs5E,OAA6B,EAASA,EAAmBt5E,WAGjJ,MAAM41B,EAAa0jD,EAAmBvzN,QACtCuzN,EAAmBvzN,QAAU5sB,EAAK4sB,QAClCx2B,KAAKmrC,IAAI,eAAej+B,MAAO68O,EAAmB3hP,cAAc2hP,EAAmBr0G,cAAc+6B,aAAmBj6I,EAAQq+H,WAAWr+H,EAAQw9H,UAC3I9mJ,IAAOlN,KAAK09J,SACd19J,KAAK0mL,eAAex5K,EAAItD,EAAMy8L,EAElC,CACA,cAAAjxB,CAAepvH,EAAOp8C,GACpB5J,KAAKmkP,YAAYv6O,EAAK2gE,MACxB,CACA,gBAAA2qK,CAAiBlvL,EAAOp8C,GACtB5J,KAAKmkP,YAAYv6O,EAAK2gE,MACxB,CACA,WAAA45K,CAAY9qE,GACV,MAAMmhE,EAAYx6O,KAAK00K,IAAInG,OAAO8K,GAClC,IAAKmhE,EACH,OAEF,MAAM/4D,EAAc+4D,EAAU/4D,aAAe,KACvCuoE,EAAgBhqP,KAAKipP,SAC3B,IAAIX,EAAetoP,KAAKsoP,aACxB,IAAK7mE,IAAiC,MAAjBuoE,OAAwB,EAASA,EAAc7pP,WAA4B,MAAfshL,OAAsB,EAASA,EAAYthL,SAA0B,MAAfshL,GAAuBA,EAAYr/K,MAAKquK,IAAkF,KAArD,MAAjBu5E,OAAwB,EAASA,EAAc7rN,QAAQsyI,MAAmB,CACnQzwK,KAAKipP,SAAWxnE,EAChBzhL,KAAK09J,SAAW,EAChB19J,KAAKsoP,aAAe,KACpB,MAAM5xE,EAAc12K,KAAKm7K,OAAOroK,QAAOqrJ,IAAUsjB,IAAuD,IAAxCA,EAAYtjJ,QAAQggI,EAAMsS,WAC1F,GAAIiG,EAAYv2K,OAEVH,KAAKmpP,qBAAuBzyE,EAAYt0K,MAAK+7J,GAASA,EAAM97I,YAC9DriB,KAAKmpP,oBAAqB,GAG5BzyE,EAAYl4K,SAAQ,CAAC2/J,EAAOr6J,KAC1Bq6J,EAAMjxJ,GAAKpJ,CAAC,SAET,IAAKwkP,IAAiBtoP,KAAKkpP,cAAc/oP,OAE9C,OAEFH,KAAKkpP,cAAgBxyE,EAGrB,MAAMwV,EAAkBlsL,KAAK00K,IAAIrgH,OAAO63H,gBACxC,IAAKo8D,GAAgBp8D,EAAiB,CACpC,MAAMg+D,EAAax8D,GAAmBxB,EAAiBxV,EAAayX,IACpE,GAAI+7D,GAAc,EAChB5B,EAAe5xE,EAAYwzE,OACtB,CACL,MAAMC,EAAWz8D,GAAmBxB,EAAiBlsL,KAAKm7K,QAC1DmtE,EAAetoP,KAAKm7K,OAAOgvE,EAC7B,CACF,CAGA,IAAIzsF,EAAU19J,KAAKoqP,YAAY9B,IACd,IAAb5qF,GAAkB4qF,IACpB5qF,EAAU19J,KAAKoqP,YAAY,OAI7B,MAAMuI,EAAqB,CACzBj8E,eAEF12K,KAAKmrC,IAAI,0BAA0BurI,EAAYv2K,sCAAqD,MAAfshL,OAAsB,EAASA,EAAYpkL,KAAK,QACrI2C,KAAK00K,IAAIrrE,QAAQokD,EAAOsjG,qBAAsB4B,GAC9C,MAAMC,EAAkB5yP,KAAK09J,QAC7B,IAAiB,IAAbA,IAAuC,IAArBk1F,EACpB5yP,KAAK6yP,cAAcn1F,QACd,GAAIgZ,EAAYv2K,SAA+B,IAArByyP,EAAwB,CACvD,IAAIE,EACJ,MAAMluP,EAAQ,IAAI9G,MAAM,0DAA8F,OAAnCg1P,EAAiB9yP,KAAKipP,eAAoB,EAAS6J,EAAez1P,KAAK,qBAAqBq5K,EAAYv2K,UAC3LH,KAAK+8B,KAAKn4B,EAAM+Y,SAChB3d,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaurB,uBACtBP,OAAO,EACP/zK,SAEJ,CACF,MAAW5E,KAAKymL,qBAAqB6hE,IAEnCtoP,KAAK6yP,cAAc7yP,KAAK09J,QAE5B,CACA,OAAAzwJ,CAAQ+4C,EAAOp8C,IACTA,EAAK+uK,OAAU/uK,EAAK3C,UAGpB2C,EAAK3C,QAAQ1H,OAAS80K,IAAmCzqK,EAAK3C,QAAQiG,KAAOlN,KAAK09J,SAAa19J,KAAKipP,WAA6D,IAAjDjpP,KAAKipP,SAAS9qN,QAAQv0B,EAAK3C,QAAQwpK,WACrJzwK,KAAK8lL,kBAAoB,EACzB9lL,KAAKipL,WAAWr/K,IAEpB,CACA,kBAAIquO,GACF,OAAOj4O,KAAKm7K,MACd,CACA,eAAIzE,GACF,OAAO12K,KAAKkpP,aACd,CACA,cAAIhxE,GACF,OAAOl4K,KAAK09J,OACd,CACA,cAAIwa,CAAWvgG,GAEb33E,KAAKmpP,oBAAqB,EAC1BnpP,KAAK6yP,cAAcl7K,EACrB,CACA,cAAAo7K,CAAeC,GACb,MAAMt+E,EAAM10K,KAAK00K,IAEjB,GADAA,EAAIrgH,OAAO63H,gBAAkB8mE,EACzBA,EAAa,CACf,MAAM/a,EAAiBj4O,KAAKi4O,eAE5B,GADAj4O,KAAKmpP,oBAAqB,EACtBlR,EAAe93O,OAAQ,CAEzB,MAAMmoP,EAAetoP,KAAKsoP,aAC1B,GAAIA,GAAgB16D,GAAcolE,EAAa1K,EAAcn6D,IAC3D,OAAOm6D,EAGT,MAAM4B,EAAax8D,GAAmBslE,EAAahzP,KAAKkpP,cAAe/6D,IACvE,GAAI+7D,GAAc,EAAG,CACnB,MAAM/rF,EAAQn+J,KAAKkpP,cAAcgB,GAEjC,OADAlqP,KAAK6yP,cAAc3I,GACZ/rF,CACT,CAAO,GAAImqF,EAAc,CAEvB,IAAIj6D,EAAc3Z,EAAIojE,WACD,IAAjBzpD,IACFA,EAAc3Z,EAAI4hE,gBAEpB,MAAM2c,EA1oThB,SAAwCtlE,EAAQpf,EAAQ0pE,EAAgB5pD,EAAa9mD,GACnF,MAAM89G,EAAe92E,EAAO8f,GAStB6kE,EANW3kF,EAAOluK,QAAO,CAAC8yP,EAAY5oL,EAAO92D,KACjD,MAAM+2B,EAAM+/B,EAAM//B,IAGlB,OAFmB2oN,EAAW3oN,KAAS2oN,EAAW3oN,GAAO,KAC9C3oC,KAAK4R,GACT0/O,CAAU,GAChB,CAAC,GACwB9N,EAAa76M,KACrC0oN,EAAW/yP,OAAS,IACtBkuL,EAAcpxL,KAAKmrB,IAAIjhB,MAAMlK,KAAMi2P,IAGrC,MAAMnnE,EAAoBs5D,EAAajkE,WACjC4K,EAAmBq5D,EAAa9kE,UAChC6yE,EAAoB/N,EAAap4E,SAAS9vK,UAAU,EAAG,GACvDk2P,EAAgBjlE,GAAoB7f,EAAQ8f,GAAa9jH,IAC7D,GAAIA,EAAM62G,aAAe2K,GAAqBxhH,EAAMg2G,YAAcyL,GAAoBzhH,EAAM0iG,SAAS9vK,UAAU,EAAG,KAAOi2P,EACvH,OAAO,EAET,MAAM3xE,EAAcl3G,EAAMk3G,YACpBtG,EAAS88D,EAAenlO,QAAOqrJ,IAAUsjB,IAAuD,IAAxCA,EAAYtjJ,QAAQggI,EAAMsS,WACxF,OAAOid,GAAmBC,EAAQxS,EAAQ5zC,IAAmB,CAAC,IAEhE,OAAI8rH,GAAiB,EACZA,EAEFjlE,GAAoB7f,EAAQ8f,GAAa9jH,IAC9C,MAAMk3G,EAAcl3G,EAAMk3G,YACpBtG,EAAS88D,EAAenlO,QAAOqrJ,IAAUsjB,IAAuD,IAAxCA,EAAYtjJ,QAAQggI,EAAMsS,WACxF,OAAOid,GAAmBC,EAAQxS,EAAQ5zC,IAAmB,CAAC,GAElE,CAwmT8B+rH,CAA+BN,EAAat+E,EAAInG,OAAQ0pE,EAAgB5pD,EAAaF,IACzG,IAAqB,IAAjB8kE,EAEF,OAAO,KAGTv+E,EAAIy/D,cAAgB8e,CACtB,CACA,GAAID,EAAY7iF,UAAY6iF,EAAYnjF,WAAY,CAGlD,MAAM0jF,EAA+B7lE,GAAmBslE,EAAa/a,GACrE,GAAIsb,GAAgC,EAClC,OAAOtb,EAAesb,EAE1B,CACF,CACF,CACA,OAAO,IACT,CACA,aAAAV,CAAcl7K,GACZ,MAAMwjG,EAASn7K,KAAKkpP,cAGpB,GAAIvxK,EAAQ,GAAKA,GAASwjG,EAAOh7K,OAE/B,YADAH,KAAK+8B,KAAK,2BAA2B46C,KAKvC33E,KAAKgmL,aACLhmL,KAAKmpP,oBAAqB,EAC1B,MAAMwB,EAAY3qP,KAAKsoP,aACjBnqF,EAAQgd,EAAOxjG,GACfizK,EAAczsF,EAAM3nI,UAAY2nI,EAAM3nI,QAAQ69H,KACpD,GAAI18E,IAAU33E,KAAK09J,SAAWS,IAAUwsF,GAAaC,EACnD,OAOF,GALA5qP,KAAKmrC,IAAI,4BAA4BwsC,MAAUwmF,EAAM/1J,cAAc+1J,EAAMzoB,cAAcyoB,EAAMsS,oBAAoBtS,EAAMgS,YACvHnwK,KAAK09J,QAAU/lF,EACf33E,KAAKsoP,aAAenqF,EACpBn+J,KAAK00K,IAAIrrE,QAAQokD,EAAOwjG,sBAAuB5jG,EAAe,CAAC,EAAG8Q,IAE9DysF,EACF,OAEF,MAAMtkE,EAAmBtmL,KAAKkmL,aAAa/nB,EAAM3oH,IAAkB,MAAbm1M,OAAoB,EAASA,EAAUn0N,QAAS2nI,EAAM3nI,SAC5Gx2B,KAAKimL,aAAaK,EACpB,CACA,WAAA8jE,CAAY9B,GACV,MAAM5xE,EAAc12K,KAAKkpP,cACzB,IAAK,IAAIplP,EAAI,EAAGA,EAAI4yK,EAAYv2K,OAAQ2D,IAAK,CAC3C,MAAMq6J,EAAQuY,EAAY5yK,GAC1B,KAAI9D,KAAKmpP,oBAAuBhrF,EAAM97I,YAGjCimO,GAAgB16D,GAAc06D,EAAcnqF,EAAOgwB,KACtD,OAAOrqL,CAEX,CACA,GAAIwkP,EAAc,CAChB,MAAM,KACJlgP,EAAI,KACJstI,EAAI,UACJw6B,EAAS,gBACTG,EAAe,WACfR,EAAU,SACVM,GACEm4E,EACJ,IAAK,IAAIxkP,EAAI,EAAGA,EAAI4yK,EAAYv2K,OAAQ2D,IAEtC,GAAI8pL,GAAc,CAChBxlL,OACAstI,OACAw6B,YACAG,kBACAR,aACAM,YAPYuG,EAAY5yK,GAQhBqqL,IACR,OAAOrqL,EAGX,IAAK,IAAIA,EAAI,EAAGA,EAAI4yK,EAAYv2K,OAAQ2D,IAAK,CAC3C,MAAMq6J,EAAQuY,EAAY5yK,GAC1B,GAAIynN,GAAyB+8B,EAAax1G,MAAOqrB,EAAMrrB,MAAO,CAAC,WAAY,iBAAkB,oBAC3F,OAAOhvI,CAEX,CACA,IAAK,IAAIA,EAAI,EAAGA,EAAI4yK,EAAYv2K,OAAQ2D,IAAK,CAC3C,MAAMq6J,EAAQuY,EAAY5yK,GAC1B,GAAIynN,GAAyB+8B,EAAax1G,MAAOqrB,EAAMrrB,MAAO,CAAC,aAC7D,OAAOhvI,CAEX,CACF,CACA,OAAQ,CACV,CACA,YAAAmiL,CAAaK,GACX,MAAMpO,EAAal4K,KAAKsoP,aACxB,GAAItoP,KAAKumL,mBAAmBrO,IAAeA,EAAY,CACrD3/I,MAAM0tJ,eACN,MAAM/4K,EAAKgrK,EAAWhrK,GAChBujK,EAAUyH,EAAWzH,QAC3B,IAAIj7H,EAAM0iI,EAAW1iI,IACrB,GAAI8wI,EACF,IACE9wI,EAAM8wI,EAAiBlG,cAAc5qI,EACvC,CAAE,MAAO5wC,GACP5E,KAAK+8B,KAAK,6DAA6Dn4B,IACzE,CAGF5E,KAAKmrC,IAAI,gCAAgCj+B,MAAOgrK,EAAW9vK,cAAc8vK,EAAWxiC,cAAc+6B,KAClGzwK,KAAKgmL,aACLhmL,KAAK00K,IAAIrrE,QAAQokD,EAAO4nB,oBAAqB,CAC3C7/H,MACAtoC,KACAujK,UACAwF,mBAAoBqQ,GAAoB,MAE5C,CACF,GAw5QAktE,cAAexzB,GACfyzB,eA5gDF,MAGE,WAAA1oO,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKq0D,YAAS,EACdr0D,KAAKwwK,WAAQ,EACbxwK,KAAK0zP,SAAM,EACX1zP,KAAK2zP,SAAM,EACX3zP,KAAK4zP,YAAa,EAClB5zP,KAAK6zP,iBAAc,EACnB7zP,KAAK8zP,aAAc,EACnB9zP,KAAK+zP,SAAU,EACf/zP,KAAKkwJ,WAAY,EACjBlwJ,KAAKg0P,iBAAc,EAEnBh0P,KAAKswP,iBAAc,EACnBtwP,KAAKi0P,UAAY,KACXj0P,KAAK8zP,cACP9zP,KAAK+zP,SAAU,GAEjB/zP,KAAKkwJ,WAAY,CAAI,EAEvBlwJ,KAAKk0P,UAAY,KACVl0P,KAAK8zP,cACR9zP,KAAK8zP,aAAc,GAErB9zP,KAAKkwJ,WAAY,CAAK,EAKxBlwJ,KAAKm0P,kBAAoBltP,IACvB,IACEjH,KAAKmH,MAAMF,EAAS,CAClBmtP,GAAI5qB,GAAa6qB,SACjBC,IAAKt0P,KAAK8zP,aAEd,CAAE,MAAOlvP,GACPk8E,EAAO/jD,KAAK,yCAA0Cn4B,EACxD,GAKF5E,KAAKu0P,kBAAoBttP,IACvB,IACE,MAAM6qC,EAAW7qC,EAAQosJ,KACnB9oF,EAAQvqE,KAAK00K,IAAInG,OAAOz8H,EAASy4B,OACjC6pL,EAAKp0P,KAAKw0P,cAAc1iN,GACxBloC,EAAO,CACX2R,EAAuB,IAApBu2B,EAASuvB,SACZ+yL,MAEEA,IAAO5qB,GAAairB,OAASL,IAAO5qB,GAAa55D,OAASwkF,GAAM5qB,GAAakrB,QAC/E9qP,EAAKwiO,GAAK7hK,EAAMqkG,QAAU,IAC1BhlK,EAAKijO,GAAK7sO,KAAK20P,gBAAgBP,GAAM,IACrCxqP,EAAKyiO,GAAKrsO,KAAK40P,gBAAgBR,IAEjCp0P,KAAKmH,MAAMF,EAAS2C,EACtB,CAAE,MAAOhF,GACPk8E,EAAO/jD,KAAK,wCAAyCn4B,EACvD,GAEF5E,KAAK00K,IAAMA,EACX,MAAMrgH,EAASr0D,KAAKq0D,OAASqgH,EAAIrgH,QAC3B,KACJ04K,GACE14K,EACQ,MAAR04K,IACF14K,EAAOuhH,QAAU51K,KAAK60P,uBACtBxgM,EAAO4gI,QAAUj1L,KAAK80P,uBACtB90P,KAAK0zP,IAAM3mB,EAAKvH,WAlUtB,WACE,IACE,OAAOhqC,OAAOu5D,YAChB,CAAE,MAAOnwP,GACP,IACE,MAAM4wC,EAAM7G,IAAIygG,gBAAgB,IAAID,MAC9BhpE,EAAO3wB,EAAIz5C,WAEjB,OADA4yC,IAAI87K,gBAAgBj1K,GACb2wB,EAAKziE,MAAMyiE,EAAK7sB,YAAY,KAAO,EAC5C,CAAE,MAAO10C,GACP,IAAIowP,GAAK,IAAIhxO,MAAOub,UAMpB,MALa,uCAAuCtH,QAAQ,SAASxN,IACnE,MAAMrmB,GAAK4wP,EAAqB,GAAhB/3P,KAAKC,UAAiB,GAAK,EAE3C,OADA83P,EAAK/3P,KAAK6lD,MAAMkyM,EAAK,KACR,KAALvqO,EAAWrmB,EAAQ,EAAJA,EAAU,GAAKrI,SAAS,GAAG,GAGtD,CACF,CACF,CA+SmCoqE,GAC7BnmE,KAAK2zP,IAAM5mB,EAAKkoB,UAChBj1P,KAAK4zP,YAAiC,IAApB7mB,EAAK6mB,WACvB5zP,KAAK6zP,YAAc9mB,EAAK8mB,YACxB7zP,KAAK40K,oBAET,CACA,iBAAAA,GACE,MAAMF,EAAM10K,KAAK00K,IACjBA,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO60E,eAAgBtiO,KAAKiiO,gBAAiBjiO,MACpD00K,EAAI1yF,GAAGyrE,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,KACtD,CACA,mBAAAy1K,GACE,MAAMf,EAAM10K,KAAK00K,IACjBA,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO60E,eAAgBtiO,KAAKiiO,gBAAiBjiO,MACrD00K,EAAI57E,IAAI20D,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,KACvD,CACA,OAAAiyE,GACEjyE,KAAKy1K,sBACLz1K,KAAKiiO,kBAGLjiO,KAAK00K,IAAM10K,KAAKq0D,OAASr0D,KAAKg0P,YAAch0P,KAAKswP,YAAc,KAE/DtwP,KAAKi0P,UAAYj0P,KAAKk0P,UAAY,IACpC,CACA,eAAA93E,CAAgBp2H,EAAOp8C,GACrB5J,KAAKwwK,MAAQ5mK,EAAK4mK,MAClBxwK,KAAKwwK,MAAMv6H,iBAAiB,UAAWj2C,KAAKi0P,WAC5Cj0P,KAAKwwK,MAAMv6H,iBAAiB,UAAWj2C,KAAKk0P,UAC9C,CACA,eAAAjyB,GACOjiO,KAAKwwK,QAGVxwK,KAAKwwK,MAAMp1E,oBAAoB,UAAWp7F,KAAKi0P,WAC/Cj0P,KAAKwwK,MAAMp1E,oBAAoB,UAAWp7F,KAAKk0P,WAG/Cl0P,KAAKwwK,MAAQ,KACf,CACA,eAAA4gF,CAAgBprM,EAAOp8C,GACrB,IAAIsrP,EAAoBC,EACxBn1P,KAAKg0P,YAA0D,OAA3CkB,EAAqBtrP,EAAKuxK,OAAO3nB,YAAiB,EAAS0hG,EAAmBxrP,OAClG1J,KAAKswP,YAA0D,OAA3C6E,EAAqBvrP,EAAKuxK,OAAO1nB,YAAiB,EAAS0hG,EAAmBzrP,MACpG,CAIA,UAAA0rP,GACE,IAAI/T,EACJ,MAAO,CACLx2N,EAAG,EACHwqO,GAAI5rB,GAAkB6rB,IACtB5B,IAAK1zP,KAAK0zP,IACVC,IAAK3zP,KAAK2zP,IACV4B,GAAkC,OAA7BlU,EAAcrhP,KAAKwwK,YAAiB,EAAS6wE,EAAYvhE,aAC9DysD,IAAKvsO,KAAK00K,IAAI8gF,kBAAoB,IAEtC,CAKA,KAAAruP,CAAMF,EAAS2C,EAAO,CAAC,GAErB8hF,EAAS9hF,EAAM5J,KAAKo1P,cACpB,MAAMK,EAAU7rP,EAAKwqP,KAAO5qB,GAAajsO,MAAQqM,EAAKwqP,KAAO5qB,GAAairB,OAAS7qP,EAAKwqP,KAAO5qB,GAAakrB,MACxG10P,KAAK+zP,SAAW0B,IAClB7rP,EAAK8rP,IAAK,EACV9rP,EAAK0qP,IAAK,EACVt0P,KAAK+zP,SAAU,GAEF,MAAXnqP,EAAK0qP,KACP1qP,EAAK0qP,GAAKt0P,KAAKkwJ,WAKjB,MAAM,YACJ2jG,GACE7zP,KA5NR,IAA0C8O,EA6NlC+kP,IACFjqP,EAAOjO,OAAOwK,KAAKyD,GAAMvJ,QAAO,CAACy6D,EAAKp8D,KACpCm1P,EAAYt9O,SAAS7X,KAASo8D,EAAIp8D,GAAOkL,EAAKlL,IACvCo8D,IACN,CAAC,IAEF96D,KAAK4zP,YACF3sP,EAAQ0uF,UACX1uF,EAAQ0uF,QAAU,CAAC,GApOlBjK,EAsOezkF,EAAQ0uF,QAxQhC,SAAuBo3I,EAAMj+N,EAAU,CAAC,GACtC,IAAKi+N,EACH,MAAO,CAAC,EAEV,MAAMpyM,EAAUh/B,OAAOg/B,QAAQoyM,GACzB4oB,EAAYh6P,OAAOg/B,QAAQgvM,IAAepiO,OAAO5L,OAAOg/B,SAAoB,MAAX7rB,OAAkB,EAASA,EAAQ8mP,kBAAoB,CAAC,IACzHC,EAASl7N,EAAQt6B,QAAO,CAACy6D,EAAKnqC,KAClC,IAAImlO,EACJ,MAAOp3P,EAAKrC,GAASs0B,EACf0/B,GAAgF,OAAtEylM,EAAkBH,EAAUr6K,MAAK3qD,GAASA,EAAM,GAAGpa,SAAS7X,WAAiB,EAASo3P,EAAgB,KAAOpsB,GAAgBG,QAG7I,OAF6B,MAAf/uK,EAAIzK,KAA+ByK,EAAIzK,GAAS,CAAC,GAC/DyK,EAAIzK,GAAO3xD,GAAOrC,EACXy+D,CAAG,GACT,CAAC,GACJ,OAAOn/D,OAAOg/B,QAAQk7N,GAAQx1P,QAAO,CAACy6D,GAAMzK,EAAOh0D,MACjDy+D,EAAIzK,GAASy8K,GAAWzwO,EAAOyS,GACxBgsD,IACN,CAAC,EACN,CAgB2Bi7L,CAsOcnsP,EAtOMkF,KAwOzC7H,EAAQuuC,IA1Ld,SAAyBA,EAAKu3L,EAAMj+N,GAGlC,MAAM8iC,EAzBR,SAAqBm7L,EAAMj+N,EAAU,CAAC,GACpC,IAAKi+N,EACH,MAAO,GAET,MAAMp4F,EAASm4F,GAAWC,EAAMj+N,GAChC,MAAO,QAAiB8gD,mBAAmB+kF,IAC7C,CAmBgBqhH,CAAYjpB,EAAMj+N,GAChC,IAAK8iC,EACH,OAAO4D,EAET,GAAI63L,GAAMz/M,KAAK4nB,GACb,OAAOA,EAAIvd,QAAQo1M,GAAOz7L,GAE5B,MAAM3W,EAAYua,EAAIj/B,SAAS,KAAO,IAAM,IAC5C,MAAO,GAAGi/B,IAAMva,IAAY2W,GAC9B,CA8KoBqkN,CAAgBhvP,EAAQuuC,IAAK5rC,EAE/C,CAIA,aAAA4qP,CAAc1iN,GACZ,MAAM,KACJvyC,GACEuyC,EACJ,MAAa,aAATvyC,EACKiqO,GAAa0sB,WAEF,gBAAhBpkN,EAASs/G,GACJo4E,GAAajsO,KAET,UAATgC,EACKiqO,GAAa55D,MAET,SAATrwK,EACGS,KAAK00K,IAAIgC,YAAYv2K,OAGnBqpO,GAAairB,MAFXjrB,GAAakrB,WAFxB,CAOF,CAKA,eAAAC,CAAgBp1P,GACd,IACIgvK,EADAK,EAAU,EAEd,MAAM8F,EAAM10K,KAAK00K,IACjB,GAAIn1K,IAASiqO,GAAa55D,MACxBrB,EAASmG,EAAIgC,gBACR,CACL,MAAMtuJ,EAAMssJ,EAAI6hE,aACVxyO,EAAMqkB,GAAO,EAAIA,EAAM,EAAIssJ,EAAInG,OAAOpuK,OAC5CouK,EAASmG,EAAInG,OAAO7qK,MAAM,EAAGK,EAC/B,CACA,IAAK,MAAMwmE,KAASgkG,EACdhkG,EAAMqkG,QAAUA,IAClBA,EAAUrkG,EAAMqkG,SAGpB,OAAOA,EAAU,EAAIA,EAAU8xB,GACjC,CAKA,eAAAk0D,CAAgBr1P,GACd,MAAMixK,EAAQxwK,KAAK00K,IAAIlE,MACjB9mK,EAASnK,IAASiqO,GAAa55D,MAAQ5vK,KAAKg0P,YAAch0P,KAAKswP,YACrE,OAAK5mP,GAAW8mK,EAIE,IADLqiB,GAAarK,WAAW9+K,EAAQ8mK,EAAM3iD,YAAa7tH,KAAKq0D,OAAOgqI,eAChEt6L,IAHH28L,GAIX,CAKA,oBAAAm0D,GACE,MAAM,QACJj/E,GACE51K,KAAKq0D,OACHltD,EAAQnH,KAAKm0P,kBACbgC,EAAOvgF,GAAW51K,KAAKq0D,OAAOi9F,OACpC,OAAO,MACL,WAAAvmI,CAAYspC,GACVr0D,KAAKsxJ,YAAS,EACdtxJ,KAAKsxJ,OAAS,IAAI6kG,EAAK9hM,EACzB,CACA,SAAI29F,GACF,OAAOhyJ,KAAKsxJ,OAAOU,KACrB,CACA,WAAI/qJ,GACF,OAAOjH,KAAKsxJ,OAAOrqJ,OACrB,CACA,OAAAgrE,GACEjyE,KAAKsxJ,OAAOr/E,SACd,CACA,KAAAxpE,GACEzI,KAAKsxJ,OAAO7oJ,OACd,CACA,IAAA2gF,CAAKniF,EAASotD,EAAQm6K,GACpBrnO,EAAMF,GACNjH,KAAKsxJ,OAAOloE,KAAKniF,EAASotD,EAAQm6K,EACpC,EAEJ,CAKA,oBAAAsmB,GACE,MAAM,QACJ7/D,GACEj1L,KAAKq0D,OACHltD,EAAQnH,KAAKu0P,kBACb4B,EAAOlhE,GAAWj1L,KAAKq0D,OAAOi9F,OACpC,OAAO,MACL,WAAAvmI,CAAYspC,GACVr0D,KAAKsxJ,YAAS,EACdtxJ,KAAKsxJ,OAAS,IAAI6kG,EAAK9hM,EACzB,CACA,SAAI29F,GACF,OAAOhyJ,KAAKsxJ,OAAOU,KACrB,CACA,WAAI/qJ,GACF,OAAOjH,KAAKsxJ,OAAOrqJ,OACrB,CACA,OAAAgrE,GACEjyE,KAAKsxJ,OAAOr/E,SACd,CACA,KAAAxpE,GACEzI,KAAKsxJ,OAAO7oJ,OACd,CACA,IAAA2gF,CAAKniF,EAASotD,EAAQm6K,GACpBrnO,EAAMF,GACNjH,KAAKsxJ,OAAOloE,KAAKniF,EAASotD,EAAQm6K,EACpC,EAEJ,GAsuCA4nB,0BAluCF,MACE,WAAArrO,CAAY2pJ,GACV10K,KAAK00K,SAAM,EACX10K,KAAKmrC,SAAM,EACXnrC,KAAKsxJ,OAAS,KACdtxJ,KAAKwqC,IAAM,KACXxqC,KAAKuvK,UAAY,IACjBvvK,KAAKq2P,gBAAkB,KACvBr2P,KAAKs2P,WAAa,IAClBt2P,KAAKu2P,aAAe,EACpBv2P,KAAKw0J,QAAU,EACfx0J,KAAKw2P,SAAU,EACfx2P,KAAK0oC,SAAU,EACf1oC,KAAKuuK,OAAS,KACdvuK,KAAK02K,YAAc,KACnB12K,KAAK22K,eAAiB,KACtB32K,KAAKy2P,kBAAoB,CAAC,EAC1Bz2P,KAAK00K,IAAMA,EACX10K,KAAKmrC,IAAM21C,EAAO31C,IAAIn8B,KAAK8xE,EAAQ,uBACnC9gF,KAAK40K,mBACP,CACA,iBAAAA,GACE,MAAMF,EAAM10K,KAAK00K,IACjBA,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACtD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACrC,CACA,mBAAAy1K,GACE,MAAMf,EAAM10K,KAAK00K,IACZA,IAGLA,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACvD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACtC,CACA,SAAA60K,GAGE,GAFA70K,KAAKw2P,SAAU,EACfx2P,KAAKuoD,eACDvoD,KAAK0oC,SAAW1oC,KAAKwqC,IAAK,CAC5B,GAAIxqC,KAAKw0J,QAAS,CAChB,MAAMkiG,EAAwB,IAAlB12P,KAAKs2P,YAAqBr+O,YAAYgM,MAAQjkB,KAAKw0J,SAC/D,GAAIkiG,EAAM,EAER,YADA12P,KAAK22P,gBAAgB32P,KAAKwqC,IAAKksN,EAGnC,CACA12P,KAAK42P,qBAAqB52P,KAAKwqC,IACjC,CACF,CACA,QAAAuqI,GACE/0K,KAAKw2P,SAAU,EACXx2P,KAAKsxJ,SACPtxJ,KAAKsxJ,OAAOr/E,UACZjyE,KAAKsxJ,OAAS,MAEhBtxJ,KAAKuoD,cACP,CACA,YAAAA,IAC4B,IAAtBvoD,KAAKu2P,cACPjsO,KAAKi+B,aAAavoD,KAAKu2P,aACvBv2P,KAAKu2P,aAAe,EAExB,CACA,OAAAtkL,GACEjyE,KAAKy1K,sBACLz1K,KAAK+0K,WAEL/0K,KAAK00K,IAAM,KACX10K,KAAKuuK,OAASvuK,KAAK02K,YAAc12K,KAAK22K,eAAiB,IACzD,CACA,WAAAgkE,CAAYkc,GACV,MAAMtoF,EAASvuK,KAAKuuK,OAChBA,IACFvuK,KAAKuuK,OAASA,EAAOz7J,QAAOy3D,GAASA,IAAUssL,IAEnD,CACA,iBAAA3hF,GACEl1K,KAAK+0K,WACL/0K,KAAK0oC,SAAU,EACf1oC,KAAKs2P,WAAa,IAClBt2P,KAAKw0J,QAAU,EACfx0J,KAAKwqC,IAAM,KACXxqC,KAAKuvK,UAAY,IACjBvvK,KAAKuuK,OAASvuK,KAAK02K,YAAc12K,KAAK22K,eAAiB,IACzD,CACA,gBAAA8mB,CAAiBz3I,EAAOp8C,GACtB,MAAM,gBACJ0kK,GACE1kK,EACoB,OAApB0kK,IAGJtuK,KAAKuvK,UAAYjB,EAAgBiB,UACjCvvK,KAAKwqC,IAAM8jI,EAAgB9jI,IACvBxqC,KAAKw2P,SACPx2P,KAAK60K,YAET,CACA,gBAAAopD,CAAiBj4K,EAAOp8C,GACtB5J,KAAK02K,YAAc9sK,EAAK8sK,YACxB12K,KAAK22K,eAAiB/sK,EAAK+sK,cAC7B,CACA,OAAA1pK,CAAQ+4C,EAAOp8C,GACb,MAAM,YACJw/K,GACEx/K,EACJ,GAjpkByB,KAipkBL,MAAfw/K,OAAsB,EAASA,EAAYlqL,SA1okBnB,IA0okB+EkqL,EAAY71K,MAA0D,CAChL,MAAMg7J,EAASvuK,KAAKuuK,OACpB,IAAI8nF,EAAkBr2P,KAAKq2P,gBACvBS,EAAe92P,KAAKuvK,UACxB,GAAI3lK,EAAK3C,QAAS,CAChB,MAAM,QACJwpK,EAAO,UACPlB,EAAS,KACThwK,GACEqK,EAAK3C,QACLwpK,GAAWlC,EACbuoF,EAAe92P,KAAK+2P,qBAAqBtmF,EAASlxK,EAAMu3P,GAC/CvnF,IACTunF,EAAevnF,EAEnB,CACMunF,KAAgB92P,KAAKy2P,oBACzBz2P,KAAKy2P,kBAAkBK,GAAgB7+O,YAAYgM,QAEhDoyO,GAAmB9nF,IAEtB8nF,EAAkB9nF,EAAOluK,QAAO,CAAC22P,EAAUzsL,MACE,IAAvCysL,EAAS74N,QAAQosC,EAAMglG,YACzBynF,EAASn1P,KAAK0oE,EAAMglG,WAEfynF,IACN,KAEDX,GAAmBA,EAAgBl2P,OAAS,IAC9CH,KAAKi3P,sBAAsBZ,GAC3BjtE,EAAYthL,SAAW9H,KAAKuvK,YAAcunF,GAEvC1tE,EAAYthL,UACfg5E,EAAO/jD,KAAK,qBAAqBnzB,EAAK4sB,aAAa5sB,EAAKhF,MAAM+Y,gDAAgDm5O,aAAwBvoF,EAASA,EAAOpuK,OAASouK,iBAAsBxvI,KAAKL,UAAU23N,iBAA+Bt3N,KAAKL,UAAU1+B,KAAKy2P,qBAE3P,CACF,CACA,kBAAAS,CAAmB3oF,GAEjBvuK,KAAKuuK,OAASA,EACd,IAAI4oF,EAAgBn3P,KAAKo3P,oBAAoBp3P,KAAKuvK,WAClD,GAA6B,IAAzB4nF,EAAch3P,OAAc,CAC9B,MAAMovK,EAAYhB,EAAO,GAAGgB,UAC5BvvK,KAAKmrC,IAAI,8BAA8BnrC,KAAKuvK,0CAA0CA,MACtF4nF,EAAgBn3P,KAAKo3P,oBAAoB7nF,GACzCvvK,KAAKuvK,UAAYA,CACnB,CAIA,OAHI4nF,EAAch3P,SAAWouK,EAAOpuK,QAClCH,KAAKmrC,IAAI,SAASgsN,EAAch3P,UAAUouK,EAAOpuK,6BAA6BH,KAAKuvK,cAE9E4nF,CACT,CACA,mBAAAC,CAAoB7nF,GAClB,OAAoB,OAAhBvvK,KAAKuuK,OACA,GAEFvuK,KAAKuuK,OAAOz7J,QAAOy3D,GAASglG,IAAchlG,EAAMglG,WACzD,CACA,qBAAA0nF,CAAsBZ,GAEpB,IAAI9nF,EADJvuK,KAAKq2P,gBAAkBA,EAIvB,MAAMI,EAAoBz2P,KAAKy2P,kBACzBxyO,EAAMhM,YAAYgM,MACxBtoB,OAAOwK,KAAKswP,GAAmBj4P,SAAQ+wK,IACjCtrJ,EAAMwyO,EAAkBlnF,GAhLE,YAiLrBknF,EAAkBlnF,EAC3B,IAEF,IAAK,IAAIzrK,EAAI,EAAGA,EAAIuyP,EAAgBl2P,OAAQ2D,IAAK,CAC/C,MAAMyrK,EAAY8mF,EAAgBvyP,GAClC,GAAIyrK,KAAaknF,EACf,SAEF,GAAIlnF,IAAcvvK,KAAKuvK,UACrB,OAEF,MAAM8nF,EAAgBr3P,KAAK00K,IAAIy/D,cACzBmjB,EAAgBt3P,KAAK00K,IAAInG,OAAO8oF,GAEtC,GADA9oF,EAASvuK,KAAKo3P,oBAAoB7nF,GAC9BhB,EAAOpuK,OAAS,EAAG,CACrBH,KAAKmrC,IAAI,uBAAuBokI,MAChCvvK,KAAKuvK,UAAYA,EACjB6T,GAA6B7U,GAC7BvuK,KAAK00K,IAAIrrE,QAAQokD,EAAOywE,eAAgB,CACtC3vD,WAGF,MAAMgpF,EAAmBv3P,KAAK00K,IAAInG,OAAO8oF,GACrCC,GAAiBC,GAAoBv3P,KAAKuuK,SACxCgpF,EAAiBzkH,MAAM,uBAAyBwkH,EAAcxkH,MAAM,sBAAwBykH,EAAiB3oF,UAAY0oF,EAAc1oF,SACzI5uK,KAAKmrC,IAAI,yCAAyCmsN,EAAc1oF,cAAc2oF,EAAiB3oF,WAEjG5uK,KAAK00K,IAAIy/D,cAAgBkjB,GAE3B,KACF,CACF,CACF,CACA,oBAAAN,CAAqBtmF,EAASlxK,EAAMi4P,GAClC,MAAMjpF,EAASvuK,KAAKo3P,oBAAoBI,GAAgBjwP,OAAOvH,KAAKuuK,QAAU,IAC9E,IAAK,IAAIzqK,EAAI,EAAGA,EAAIyqK,EAAOpuK,OAAQ2D,IACjC,GAAIvE,IAAS80K,IAAmC9F,EAAOzqK,GAAGw9K,cAAc7Q,IAAYlxK,IAAS80K,IAAsC9F,EAAOzqK,GAAG09K,iBAAiB/Q,GAC5J,OAAOlC,EAAOzqK,GAAGyrK,UAGrB,OAAOioF,CACT,CACA,aAAAC,CAAcC,GACZ,MAAMnpF,EAASvuK,KAAKuuK,OACpB,IAAKA,EACH,OAEF,MAAMopF,EAAqB,CAAC,EACtBC,EAAwB,CAAC,EAC/BF,EAAcl5P,SAAQq5P,IACpB,MACEvoG,GAAIm+E,EACJ,UAAWqqB,EACX,kBAAmBtqB,GACjBqqB,EACJ,GAAItpF,EAAOnsK,MAAKmoE,GAASA,EAAMglG,YAAck+D,IAC3C,OAEF,MAAMsqB,EAAiB/3P,KAAKo3P,oBAAoBU,GAAQ/2P,KAAIi3P,IAC1D,MAAMz4O,EAAa,IAAIyuI,EAASgqG,EAAUllH,OAC1CvzH,EAAW,cAAgBkuN,EAC3B,MAAMwqB,EAAqB14O,EAAWqwJ,OAAS,GAAGrwJ,EAAWqwJ,eAAe69D,IACtEyqB,EAAwB34O,EAAWuwJ,WAAa,GAAGvwJ,EAAWuwJ,mBAAmB29D,IACnFwqB,IACFN,EAAmBp4O,EAAWqwJ,OAASqoF,EACvC14O,EAAWqwJ,MAAQqoF,GAEjBC,IACFN,EAAsBr4O,EAAWuwJ,WAAaooF,EAC9C34O,EAAWuwJ,UAAYooF,GAEzB,MAAM1iN,EAAMo4L,GAAsBoqB,EAAUxtN,IAAKjrB,EAAW,qBAAsB,mBAAoBiuN,GAChG2qB,EAAc,IAAI93E,GAAM,CAC5BvtC,MAAOvzH,EACPswJ,WAAYmoF,EAAUnoF,WACtBjB,QAASopF,EAAUppF,QACnBrxH,OAAQy6M,EAAUz6M,OAClBn1C,KAAM4vP,EAAU5vP,KAChBotC,MACAu3H,WAAYirF,EAAUjrF,WACtBpvH,MAAOq6M,EAAUr6M,QAEnB,GAAIq6M,EAAUv2E,YACZ,IAAK,IAAI39K,EAAI,EAAGA,EAAIk0P,EAAUv2E,YAAYthL,OAAQ2D,IAChDq0P,EAAYl3E,WAAW,QAAS,GAAG+2E,EAAUv2E,YAAY39K,YAAY2pO,KAGzE,GAAIuqB,EAAUt2E,eACZ,IAAK,IAAI59K,EAAI,EAAGA,EAAIk0P,EAAUt2E,eAAevhL,OAAQ2D,IACnDq0P,EAAYl3E,WAAW,OAAQ,GAAG+2E,EAAUt2E,eAAe59K,YAAY2pO,KAG3E,OAAO0qB,CAAW,IAEpB5pF,EAAO1sK,QAAQk2P,GACfzqB,GAAqBttO,KAAK02K,YAAaihF,EAAoBnqB,EAAgBC,GAC3EH,GAAqBttO,KAAK22K,eAAgBihF,EAAuBpqB,EAAgBC,EAAQ,GAE7F,CACA,oBAAAmpB,CAAqBpsN,GACnB,MAAM6pB,EAASr0D,KAAK00K,IAAIrgH,OAClBwhH,EAASxhH,EAAOi9F,OAKtB,IAAI97G,EAJAx1C,KAAKsxJ,QACPtxJ,KAAKsxJ,OAAOr/E,UAEdjyE,KAAKsxJ,OAAS,IAAIukB,EAAOxhH,GAEzB,IACE7e,EAAM,IAAIlrB,KAAKqkB,IAAInE,EACrB,CAAE,MAAO5lC,GAGP,OAFA5E,KAAK0oC,SAAU,OACf1oC,KAAKmrC,IAAI,0CAA0CX,IAErD,CACA,GAAqB,UAAjBgL,EAAI6tL,SAAsB,CAC5B,MAAM+0B,EAA6E,GAA/Dp4P,KAAK00K,IAAI8gF,mBAAqBnhM,EAAOwgL,wBACzDr/L,EAAItsB,aAAavqB,IAAI,eAAgBqB,KAAKuvK,WAC1C/5H,EAAItsB,aAAavqB,IAAI,kBAAmB,GAAKy5P,EAC/C,CACA,MAAMnxP,EAAU,CACd+uK,aAAc,OACdxgI,IAAKA,EAAI23E,MAELgpD,EAAa9hH,EAAOyxL,2BAA2BzjO,QAC/C20J,EAA2Bb,EAAWK,YAAcL,EAAWI,cAAgB,CAAC,EAChFU,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAUF,EAAyBG,aAAe,EAClDC,WAAYJ,EAAyBK,cAAgB,EACrDC,cAAeN,EAAyBO,iBAAmB,GAEvDi3D,EAAY,CAChB3lF,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpCz3K,KAAKmrC,IAAI,8BAA8BqK,MACvC,MAAM6iN,EAAe9xP,EAASqD,KAC9B,GAA6B,IAAzByuP,EAAaC,QAEf,YADAt4P,KAAKmrC,IAAI,oBAAoBktN,EAAaC,0BAG5Ct4P,KAAKw0J,QAAUv8I,YAAYgM,MAC3BjkB,KAAKs2P,WAAa+B,EAAaE,IAC/B,MACE,aAAcC,EACd,iBAAkBd,EAClB,mBAAoBrB,GAClBgC,EACJ,GAAIG,EACF,IACEx4P,KAAKwqC,IAAM,IAAIlgB,KAAKqkB,IAAI6pN,EAAWhjN,GAAK23E,IAC1C,CAAE,MAAOvoH,GAGP,OAFA5E,KAAK0oC,SAAU,OACf1oC,KAAKmrC,IAAI,iDAAiDqtN,IAE5D,CAEFx4P,KAAK22P,gBAAgB32P,KAAKwqC,KAAOvjC,EAAQuuC,KACrCkiN,GACF13P,KAAKy3P,cAAcC,GAErB,MAAMe,EAAqB,CACzBC,iBAAkBL,EAClB7iN,IAAKA,EAAIz5C,YAEXiE,KAAK00K,IAAIrrE,QAAQokD,EAAOkrG,yBAA0BF,GAC9CpC,GACFr2P,KAAKi3P,sBAAsBZ,EAC7B,EAEFppP,QAAS,CAACrI,EAAOqC,EAASwwK,EAAgBzlB,KAGxC,GAFAhyJ,KAAKmrC,IAAI,oCAAoCvmC,EAAM/H,QAAQ+H,EAAM6xC,SAASxvC,EAAQuuC,QAClFx1C,KAAK+0K,WACc,MAAfnwK,EAAM/H,KAGR,OAFAmD,KAAK0oC,SAAU,OACf1oC,KAAKmrC,IAAI,qBAAqBlkC,EAAQuuC,2BAGxC,IAAIkhN,EAAwB,IAAlB12P,KAAKs2P,WACf,GAAmB,MAAf1xP,EAAM/H,KAWVmD,KAAK22P,gBAAgB32P,KAAKwqC,KAAOvjC,EAAQuuC,IAAKkhN,OAX9C,CACE,MAAMplG,EAAStxJ,KAAKsxJ,OACpB,GAAoE,mBAA9C,MAAVA,OAAiB,EAASA,EAAOk+E,mBAAmC,CAC9E,MAAMopB,EAAatnG,EAAOk+E,kBAAkB,eACxCopB,IACFlC,EAA+B,IAAzBp3N,WAAWs5N,GAErB,CACA54P,KAAKmrC,IAAI,qBAAqBlkC,EAAQuuC,mBAExC,CACkD,EAEpDsiI,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bz3K,KAAKmrC,IAAI,sCAAsClkC,EAAQuuC,QACvDx1C,KAAK22P,gBAAgB32P,KAAKwqC,KAAOvjC,EAAQuuC,IAAI,GAGjDx1C,KAAKmrC,IAAI,iCAAiCqK,KAC1Cx1C,KAAKsxJ,OAAOloE,KAAKniF,EAASgwK,EAAcu3D,EAC1C,CACA,eAAAmoB,CAAgBnsN,EAAKquN,EAA0B,IAAlB74P,KAAKs2P,YAChCt2P,KAAKuoD,eACLvoD,KAAKu2P,YAAcjsO,KAAK89B,YAAW,KACjC,IAAIo+K,EACJ,MAAMh2D,EAAkC,OAAzBg2D,EAAYxmO,KAAK00K,UAAe,EAAS8xD,EAAUh2D,OAC9DA,GAAUA,EAAM4tB,MAIpBp+L,KAAK22P,gBAAgBnsN,EAAuB,IAAlBxqC,KAAKs2P,YAH7Bt2P,KAAK42P,qBAAqBpsN,EAGqB,GAChDquN,EACL,KAy7BF,SAASC,GAAQ35P,GACf,OAAIA,GAAsB,iBAARA,EACZmP,MAAMie,QAAQptB,GACTA,EAAI4B,IAAI+3P,IAEVn9P,OAAOwK,KAAKhH,GAAKkB,QAAO,CAAC1D,EAAQ+B,KACtC/B,EAAO+B,GAAOo6P,GAAQ35P,EAAIT,IACnB/B,IACN,CAAC,GAECwC,CACT,CAsBA,IAAI45P,GACJ,MAAMC,WAAwBrzE,GAC5B,WAAA56J,CAAY2pJ,EAAK0hF,GACf79N,MAAMm8I,EAAK,sBACX10K,KAAKi5P,QAAU,GACfj5P,KAAKk5P,aAAe,EACpBl5P,KAAKm5P,eAAiB,EACtBn5P,KAAKo5P,iBAAc,EACnBp5P,KAAKqlP,aAAe,KACpBrlP,KAAKq5P,mBAAqB,EAC1Br5P,KAAKs5P,kBAAoB,EACzBt5P,KAAKu5P,cAAW,EAChBv5P,KAAKw5P,sBAAmB,EACxBx5P,KAAKu5P,SAAWnD,EAChBp2P,KAAKi8K,oBACP,CACA,kBAAAA,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACtD00K,EAAI1yF,GAAGyrE,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACpD00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MAClD00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACrC,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAO0qB,gBAAiBn4K,KAAKy9L,iBAAkBz9L,MACvD00K,EAAI57E,IAAI20D,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MACjD00K,EAAI57E,IAAI20D,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACrD00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,MACnD00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,KACtC,CACA,OAAAiyE,GACEjyE,KAAKk8K,uBACLl8K,KAAKu5P,SAAW,KAChBv5P,KAAKy5P,cACLlhO,MAAM05C,SACR,CACA,QAAA8iG,GACiB/0K,KAAKi5P,QAGbz6P,SAAQ+rE,IACbA,EAAMk2G,UAAY,EAClBl2G,EAAMi2G,cAAgB,CAAC,IAEzBjoJ,MAAMw8I,UACR,CACA,WAAA0kF,GACEz5P,KAAKo5P,iBAAcl9P,EACnB8D,KAAKs5P,kBAAoB,EACzBt5P,KAAKq5P,mBAAqB,EAC1Br5P,KAAKqlP,aAAe,KACpBrlP,KAAKi5P,QAAU,GACfj5P,KAAKm5P,eAAiB,CACxB,CACA,iBAAAjkF,CAAkBlvH,EAAOp8C,GACvB5J,KAAKy5P,aACP,CACA,gBAAAh8D,CAAiBz3I,EAAOp8C,GACtB,MAAM4+J,EAA2BxoK,KAAK00K,IAAIrgH,OAAOm0G,yBAC3C+F,EAAS,GACTmrF,EAAe,CAAC,EAChBC,EAAqB,CAAC,EAC5B,IAAIC,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EACtBlwP,EAAK2kK,OAAO/vK,SAAQu7P,IAClB,IAAIC,EAAaC,EACjB,MAAM16O,EAAaw6O,EAAYjnH,MAI/B,IAAI,WACF+8B,EAAU,WACV9C,GACEgtF,GACuF,KAAxD,OAA7BC,EAAcnqF,QAAsB,EAASmqF,EAAY77N,QAAQ,iBACrE46N,KAAoBA,GAAkB,kBAAkBnrO,KAAKyqB,UAAUC,YACnEygN,KACFgB,EAAYlqF,WAAaA,OAAa3zK,IAGtC2zK,IACFkqF,EAAYlqF,WAAaA,EAAaxC,GAAuBwC,EAAYrH,IAES,KAAjD,OAA7ByxF,EAAcltF,QAAsB,EAASktF,EAAY97N,QAAQ,WACrE4uI,EAAagtF,EAAYhtF,WAvisBjC,SAA6BvO,GAG3B,MAAMiO,EAASjO,EAAMphK,MAAM,KAC3B,IAAK,IAAI0G,EAAI,EAAGA,EAAI2oK,EAAOtsK,OAAQ2D,IAAK,CACtC,MAAMo2P,EAAUztF,EAAO3oK,GAAG1G,MAAM,KAChC,GAAI88P,EAAQ/5P,OAAS,EAAG,CACtB,IAAIxD,EAASu9P,EAAQl4P,QAAU,IAC/BrF,GAAUipC,SAASs0N,EAAQl4P,SAASjG,SAAS,IAC7CY,IAAW,MAAQipC,SAASs0N,EAAQl4P,SAASjG,SAAS,KAAK2H,OAAO,GAClE+oK,EAAO3oK,GAAKnH,CACd,CACF,CACA,OAAO8vK,EAAOpvK,KAAK,IACrB,CAyhsB8C88P,CAAoBptF,IAI5D,MAAM,MACJpvH,EAAK,OACLJ,EAAM,cACNyxH,GACE+qF,EAIJ,GAHAH,IAAoBA,KAAqBj8M,IAASJ,IAClDs8M,IAAoBA,IAAoB9sF,GACxC+sF,IAAoBA,IAAoBjqF,GACnB,MAAjBb,GAAyBA,EAAc7uK,QAAU0vK,IAAerD,GAA8BqD,EAAY,QAASrH,IAA6BuE,IAAeP,GAA8BO,EAAY,QAASvE,GACpN,OAEF,MAAM,OACJuG,EACA,aAAcqrF,EACd,aAAcC,EACd,aAAcC,EAAO,WACrBC,EACA,cAAeC,GACbj7O,EAEEyyJ,EAAW,GADgBsoF,GAAW,OACAP,EAAYnrF,WAAW2rF,KAAcH,KAAarrF,KAAUyrF,KAAeH,IACvH,GAAKX,EAAa1nF,GAKX,GAAI0nF,EAAa1nF,GAAUxnI,MAAQuvN,EAAYvkN,KAAQukN,EAAYjnH,MAAM,cAS9E4mH,EAAa1nF,GAAUiP,WAAW,QAAS1hK,EAAWqwJ,OACtD8pF,EAAa1nF,GAAUiP,WAAW,OAAQ1hK,EAAWuwJ,eAVwC,CAG7F,MAAM2qF,EAAed,EAAmB3nF,IAAa,EACrD+nF,EAAYjnH,MAAM,cAAgB,IAAIxkI,MAAMmsP,EAAe,GAAGp9P,KAAK,KACnE,MAAMktE,EAAQ,IAAI81G,GAAM05E,GACxBL,EAAa1nF,GAAYznG,EACzBgkG,EAAO1sK,KAAK0oE,EACd,KAb6B,CAC3B,MAAMA,EAAQ,IAAI81G,GAAM05E,GACxBL,EAAa1nF,GAAYznG,EACzBovL,EAAmB3nF,GAAY,EAC/BzD,EAAO1sK,KAAK0oE,EACd,CAWA,IAEFvqE,KAAK06P,0BAA0BnsF,EAAQ3kK,EAAMgwP,EAAiBC,EAAiBC,EACjF,CACA,yBAAAY,CAA0BC,EAAgB/wP,EAAMgwP,EAAiBC,EAAiBC,GAChF,IAAIpjF,EAAc,GACdC,EAAiB,GACjBpI,EAASosF,EAWb,IARKf,GAAmBC,IAAoBC,IAC1CvrF,EAASA,EAAOz7J,QAAO,EACrBi6J,aACAqU,aACAzjI,QACAJ,aACI,SAAGwvH,MAAiBpvH,IAASJ,QA/voBnBlhD,EA+voB4C+kL,IA9voB9CpB,GAAiB7hJ,QAAQ9hC,IAAU,EADvD,IAAsBA,CA+voBuD,KAEnD,IAAlBkyK,EAAOpuK,OAkBT,YAhBAgB,QAAQC,UAAUuD,MAAK,KACrB,GAAI3E,KAAK00K,IAAK,CACR9qK,EAAK2kK,OAAOpuK,QACdH,KAAK+8B,KAAK,gDAAgDgC,KAAKL,UAAU90B,EAAK2kK,OAAO,GAAGz7B,UAE1F,MAAMluI,EAAQ,IAAI9G,MAAM,qDACxBkC,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAaitG,mCACtBjiF,OAAO,EACPnjI,IAAK5rC,EAAK4rC,IACV5wC,QACAikC,OAAQjkC,EAAM+Y,SAElB,KAIJ,GAAI/T,EAAK8sK,YAAa,CACpB,MAAM,yBACJlO,GACExoK,KAAK00K,IAAIrgH,OACbqiH,EAAc9sK,EAAK8sK,YAAY5jK,QAAOqrJ,IAAUA,EAAM0R,YAAcrD,GAA8BrO,EAAM0R,WAAY,QAASrH,KAE7HqyF,GAAsBnkF,EACxB,CACI9sK,EAAKouK,YACPrB,EAAiB/sK,EAAKouK,UACtB6iF,GAAsBlkF,IAGxB,MAAMmkF,EAAiBvsF,EAAO7qK,MAAM,GAEpC6qK,EAAO7tI,MAAK,CAACpgC,EAAGC,KACd,GAAID,EAAEwyI,MAAM,gBAAkBvyI,EAAEuyI,MAAM,cACpC,OAAQxyI,EAAEwyI,MAAM,eAAiB,KAAOvyI,EAAEuyI,MAAM,eAAiB,IAAM,GAAK,EAG9E,GAAI8mH,GAAmBt5P,EAAEi9C,SAAWh9C,EAAEg9C,OACpC,OAAOj9C,EAAEi9C,OAASh9C,EAAEg9C,OAEtB,GAAIj9C,EAAEigL,YAAchgL,EAAEggL,UACpB,OAAOjgL,EAAEigL,UAAYhgL,EAAEggL,UAEzB,GAAIjgL,EAAE8gL,aAAe7gL,EAAE6gL,WACrB,OAAOpB,GAAiB7hJ,QAAQ79B,EAAE8gL,YAAcpB,GAAiB7hJ,QAAQ59B,EAAE6gL,YAE7E,GAAI9gL,EAAEysK,aAAexsK,EAAEwsK,WAAY,CACjC,MAAMguF,EAASjuF,GAA0BxsK,EAAEysK,YACrCiuF,EAASluF,GAA0BvsK,EAAEwsK,YAC3C,GAAIguF,IAAWC,EACb,OAAOA,EAASD,CAEpB,CACA,GAAIz6P,EAAEkqC,MAAQjqC,EAAEiqC,KAAOlqC,EAAE2sK,WAAa1sK,EAAE0sK,SAAU,CAChD,MAAM8tF,EAAS/tF,GAAkC1sK,EAAE2sK,UAC7C+tF,EAAShuF,GAAkCzsK,EAAE0sK,UACnD,GAAI8tF,IAAWC,EACb,OAAOA,EAASD,CAEpB,CACA,OAAIz6P,EAAE6gL,iBAAmB5gL,EAAE4gL,eAClB7gL,EAAE6gL,eAAiB5gL,EAAE4gL,eAEvB,CAAC,IAEV,IAAI85E,EAAuBH,EAAe,GAC1C,GAAI96P,KAAKu5P,WACPhrF,EAASvuK,KAAKu5P,SAASrC,mBAAmB3oF,GACtCA,EAAOpuK,SAAW26P,EAAe36P,QACnC,IAAK,IAAI2D,EAAI,EAAGA,EAAIg3P,EAAe36P,OAAQ2D,IACzC,GAAIg3P,EAAeh3P,GAAGyrK,YAAchB,EAAO,GAAGgB,UAAW,CACvD0rF,EAAuBH,EAAeh3P,GACtC,KACF,CAIN9D,KAAKi5P,QAAU1qF,EAGf,IAAK,IAAIzqK,EAAI,EAAGA,EAAIyqK,EAAOpuK,OAAQ2D,IACjC,GAAIyqK,EAAOzqK,KAAOm3P,EAAsB,CACtC,IAAIC,EACJl7P,KAAKk5P,YAAcp1P,EACnB,MAAMq3P,EAAoBF,EAAqBrsF,QACzC4mF,EAAoBx1P,KAAK00K,IAAI8gF,kBAGnC,GAFAx1P,KAAKmrC,IAAI,oBAAoBojI,EAAOpuK,yCAAyCg7P,UAEyCj/P,KAAjE,OAA/Cg/P,EAAuBl7P,KAAK00K,IAAIqK,iBAAsB,EAASm8E,EAAqBrmB,wBAAuC,CAC/H,MAAMumB,EAAqBn+P,KAAK6+B,IAAIq/N,EAAmBn7P,KAAK00K,IAAIrgH,OAAOsxL,2BACnEyV,EAAqB5F,GAAqBA,IAAsB7jB,GAAiBkD,yBACnF70O,KAAK00K,IAAI8gF,kBAAoB4F,EAEjC,CACA,KACF,CAKF,MAAMC,EAAYvB,IAAoBD,EAChCyB,EAAQ,CACZ/sF,SACAmI,cACAC,iBACAnI,YAAa5kK,EAAK4kK,YAClBC,YAAa7kK,EAAK6kK,YAClBjxE,WAAYx9F,KAAKk5P,YACjBlnG,MAAOpoJ,EAAKooJ,MACZwB,MAAOsmG,EACPrmG,MAAOomG,EACP9c,UAAWse,GAAa3kF,EAAYt0K,MAAK6G,KAAOA,EAAEusC,OAEpDx1C,KAAK00K,IAAIrrE,QAAQokD,EAAOuwE,gBAAiBs9B,IAGrCt7P,KAAK00K,IAAIrgH,OAAO8pI,eAAiBn+L,KAAK00K,IAAI6mF,iBAC5Cv7P,KAAK00K,IAAIG,UAAU70K,KAAK00K,IAAIrgH,OAAOygH,cAEvC,CACA,UAAIvG,GACF,OAA4B,IAAxBvuK,KAAKi5P,QAAQ94P,OACR,KAEFH,KAAKi5P,OACd,CACA,SAAI1uL,GACF,OAAOvqE,KAAKq5P,iBACd,CACA,SAAI9uL,CAAMsrD,GACR,MAAM04C,EAASvuK,KAAKi5P,QACpB,GAAsB,IAAlB1qF,EAAOpuK,OACT,OAGF,GAAI01H,EAAW,GAAKA,GAAY04C,EAAOpuK,OAAQ,CAE7C,MAAMyE,EAAQ,IAAI9G,MAAM,qBAClB66K,EAAQ9iD,EAAW,EASzB,GARA71H,KAAK00K,IAAIrrE,QAAQokD,EAAO+qB,MAAO,CAC7Bj5K,KAAMmuJ,EAAW60C,YACjB/rK,QAASm3H,EAAaq1F,mBACtBz4K,MAAOsrD,EACP8iD,QACA/zK,QACAikC,OAAQjkC,EAAM+Y,UAEZg7J,EACF,OAEF9iD,EAAW54H,KAAK6+B,IAAI+5F,EAAU04C,EAAOpuK,OAAS,EAChD,CACA,MAAMq7P,EAAiBx7P,KAAKq5P,kBACtBoC,EAAYz7P,KAAKqlP,aACjBqW,EAAgBD,EAAYA,EAAU3oH,MAAM,mBAAgB52I,EAC5DquE,EAAQgkG,EAAO14C,GACf05C,EAAYhlG,EAAMuoE,MAAM,cAG9B,GAFA9yI,KAAKq5P,kBAAoBxjI,EACzB71H,KAAKqlP,aAAe96K,EAChBixL,IAAmB3lI,GAAYtrD,EAAM/zC,SAAWilO,GAAaC,IAAkBnsF,EACjF,OAEFvvK,KAAKmrC,IAAI,sBAAsB0qF,MAAatrD,EAAMhtB,OAASgtB,EAAMhtB,OAAS,KAAO,KAAKgtB,EAAM62G,WAAa72G,EAAM62G,WAAa,IAAM,KAAK72G,EAAM0iG,SAAW1iG,EAAM0iG,SAAW,IAAM,MAAM1iG,EAAMqkG,WAAWW,EAAY,iBAAmBA,EAAY,iBAAiBisF,IAAiBE,EAAgB,iBAAmBA,EAAgB,MACtU,MAAMC,EAAqB,CACzBpxL,MAAOsrD,EACPid,MAAOvoE,EAAMuoE,MACbt8G,QAAS+zC,EAAM/zC,QACfo4I,QAASrkG,EAAMqkG,QACfuS,eAAgB52G,EAAM42G,eACtBD,WAAY32G,EAAM22G,WAClBR,YAAan2G,EAAMm2G,YACnB/iI,MAAO4sB,EAAM5sB,MACbJ,OAAQgtB,EAAMhtB,OACd0vH,SAAU1iG,EAAM0iG,SAChB4C,WAAYtlG,EAAMslG,WAClB9C,WAAYxiG,EAAMwiG,WAClB0U,YAAal3G,EAAMk3G,YACnBC,eAAgBn3G,EAAMm3G,eACtB9xB,OAAQrlF,EAAMqlF,OACd6wB,UAAWl2G,EAAMk2G,UACjBD,cAAej2G,EAAMi2G,cACrBp4K,KAAMmiE,EAAMniE,KACZ8E,GAAIq9D,EAAMr9D,GACVs9B,IAAK+/B,EAAM//B,IACXgL,IAAK+0B,EAAM/0B,IACX48G,MAAO,EACPuvB,cAAep3G,EAAMo3G,cACrBE,aAAct3G,EAAMs3G,cAEtB7hL,KAAK00K,IAAIrrE,QAAQokD,EAAOwnF,gBAAiB0mB,GAEzC,MAAMllF,EAAelsG,EAAM/zC,QAC3B,IAAKigJ,GAAgBA,EAAapiB,KAAM,CAEtC,MAAMiyB,EAAmBtmL,KAAKkmL,aAAa37G,EAAM//B,IAAkB,MAAbixN,OAAoB,EAASA,EAAUjlO,QAASigJ,GACtGz2K,KAAKimL,aAAaK,EACpB,CACF,CACA,eAAIs1E,GACF,OAAO57P,KAAKs5P,gBACd,CACA,eAAIsC,CAAY/lI,GACd71H,KAAKs5P,iBAAmBzjI,OACC35H,IAArB8D,KAAKo5P,cACPp5P,KAAKo5P,YAAcvjI,IAEH,IAAdA,IACF71H,KAAKuqE,MAAQsrD,EAEjB,CACA,cAAIr4B,GACF,OAAOx9F,KAAKk5P,WACd,CACA,cAAI17J,CAAWq4B,GACb71H,KAAKk5P,YAAcrjI,CACrB,CACA,cAAIw8G,GAEF,QAAyBn2O,IAArB8D,KAAKo5P,YAA2B,CAClC,MAAMyC,EAAmB77P,KAAK00K,IAAIrgH,OAAOg+K,WACzC,YAAyBn2O,IAArB2/P,EACKA,EAEF77P,KAAK00K,IAAI4hE,cAClB,CACA,OAAOt2O,KAAKo5P,WACd,CACA,cAAI/mB,CAAWx8G,GACb71H,KAAKo5P,YAAcvjI,CACrB,CACA,OAAA5oH,CAAQ+4C,EAAOp8C,IACTA,EAAK+uK,OAAU/uK,EAAK3C,SAGpB2C,EAAK3C,QAAQ1H,OAAS80K,IAA6BzqK,EAAK3C,QAAQsjE,QAAUvqE,KAAKuqE,OACjFvqE,KAAKipL,WAAWr/K,EAEpB,CAGA,cAAAkmL,CAAe9pI,GAAO,KACpBqtG,IAEA,QAAan3J,IAATm3J,GAAsBA,EAAK9zJ,OAAS+0K,GAAwB,CAC9D,MAAM3sC,EAAK0rB,EAAK5C,kBAChB,IAAK90J,OAAOwK,KAAKwhI,GAAIvlI,MAAK7C,KAAUooI,EAAGpoI,KACrC,OAEF,MAAMgrE,EAAQvqE,KAAKi5P,QAAQ5lG,EAAK9oF,OACnB,MAATA,GAAiBA,EAAMk2G,YACzBzgL,KAAKmrC,IAAI,kCAAkCo/B,EAAMk2G,8BACjDl2G,EAAMk2G,UAAY,EAEtB,CACF,CACA,aAAA00D,CAAcnvL,EAAOp8C,GACnB,IAAIkyP,EACJ,MAAM,MACJvxL,EAAK,QACL/zC,GACE5sB,EACEi2N,EAAW7/N,KAAKi5P,QAAQ1uL,GAE5B,IAAIwxL,EADN,IAAKl8B,EAMH,OAJA7/N,KAAK+8B,KAAK,uBAAuBwtC,UACwB,OAApDwxL,EAAwBnyP,EAAKqsK,qBAA+B8lF,EAAsB3uN,OACrF5W,EAAQq/H,mBAAoB,IAM5BtrF,IAAUvqE,KAAKq5P,mBAEc,IAA3Bx5B,EAASr/C,gBACXq/C,EAASp/C,UAAY,GAEvBzgL,KAAK0mL,eAAen8G,EAAO3gE,EAAMi2N,EAASrpM,UACqB,OAArDslO,EAAyBlyP,EAAKqsK,qBAA+B6lF,EAAuB1uN,OAE9F5W,EAAQq/H,mBAAoB,EAEhC,CACA,YAAAowB,CAAaK,GACX/tJ,MAAM0tJ,eACN,MAAMozE,EAAoBr5P,KAAKq5P,kBACzBhU,EAAerlP,KAAKqlP,aAC1B,GAAIA,GAAgBrlP,KAAKumL,mBAAmB8+D,GAAe,CACzD,IAAI7vM,EAAM6vM,EAAa76M,IACvB,GAAI87I,EACF,IACE9wI,EAAM8wI,EAAiBlG,cAAc5qI,EACvC,CAAE,MAAO5wC,GACP5E,KAAK+8B,KAAK,6DAA6Dn4B,IACzE,CAEF,MAAM2qK,EAAY81E,EAAavyG,MAAM,cACrC9yI,KAAKmrC,IAAI,uBAAuBkuN,SAAmFn9P,KAA1C,MAApBoqL,OAA2B,EAASA,EAAiBnG,KAAqB,UAAYmG,EAAiBnG,IAAM,SAAWmG,EAAiBn5I,KAAO,UAAUoiI,EAAY,YAAcA,EAAY,MAAM/5H,KAI3Px1C,KAAKgmL,aACLhmL,KAAK00K,IAAIrrE,QAAQokD,EAAO0nB,cAAe,CACrC3/H,MACA+0B,MAAO8uL,EACP9pF,UAAW81E,EAAavyG,MAAM,cAC9B5lI,GAAI,EAEJ+oK,mBAAoBqQ,GAAoB,MAE5C,CACF,CACA,iBAAI6tD,GACF,OAA+B,IAA3Bn0O,KAAKs5P,iBACAt5P,KAAKs5P,iBAELt5P,KAAK00K,IAAI6/D,aAEpB,CACA,iBAAIJ,CAAcrU,GAChB9/N,KAAKuqE,MAAQu1J,GACkB,IAA3B9/N,KAAKs5P,mBACPt5P,KAAK00K,IAAI6/D,cAAgBzU,EAE7B,CACA,WAAA6a,CAAYthE,GACV,IAAI2iF,EACJ,MAAMztF,EAASvuK,KAAKi5P,QAAQnmP,QAAO,CAACy3D,EAAO92D,IACrCA,IAAU4lK,IAGVr5K,KAAKu5P,UACPv5P,KAAKu5P,SAAS5e,YAAYpwK,GAExBA,IAAUvqE,KAAKqlP,eACjBrlP,KAAKqlP,aAAe,KACpBrlP,KAAKq5P,mBAAqB,EACtB9uL,EAAM/zC,SACR+zC,EAAM/zC,QAAQy9H,UAAUz1J,SAAQmsB,GAAKA,EAAE4/C,OAAS,MAG7C,KAET64G,GAA6B7U,GAC7BvuK,KAAKi5P,QAAU1qF,EACXvuK,KAAKq5P,mBAAqB,GAAiD,OAA3C2C,EAAqBh8P,KAAKqlP,eAAyB2W,EAAmBxlO,UACxGx2B,KAAKq5P,kBAAoBr5P,KAAKqlP,aAAa7uN,QAAQy9H,UAAU,GAAG1pF,OAElEvqE,KAAK00K,IAAIrrE,QAAQokD,EAAOywE,eAAgB,CACtC3vD,UAEJ,CACA,eAAA4vD,CAAgBn4K,GAAO,OACrBuoH,IAEAvuK,KAAKi5P,QAAU1qF,CACjB,CACA,mBAAA0tF,GACE,MAAM,iBACJ5+B,EAAgB,aAChBkZ,EAAY,aACZ6N,GACEpkP,KAAK00K,IACL10K,KAAKm5P,gBAAkB5iB,IACzBv2O,KAAKm5P,cAAgB5iB,EACrBv2O,KAAK00K,IAAIrrE,QAAQokD,EAAO2nF,uBAAwB,CAC9C/X,mBACA9uD,OAAQvuK,KAAKuuK,OACbgoE,eACA/C,aAAcxzO,KAAK00K,IAAI8+D,aACvB4Q,iBAGN,EAEF,SAASyW,GAAsB1/E,GAC7B,MAAMjtH,EAAS,CAAC,EAChBitH,EAAO38K,SAAQ2/J,IACb,MAAMsS,EAAUtS,EAAMsS,SAAW,GACjCtS,EAAMjxJ,GAAKghD,EAAOuiH,GAAWviH,EAAOuiH,IAAY,EAChDviH,EAAOuiH,IAAU,GAErB,CAEA,MAAMyrF,GACJ,WAAAnxO,CAAYspC,GACVr0D,KAAKq0D,YAAS,EACdr0D,KAAKm8P,gBAAkB,CAAC,EACxBn8P,KAAKwzP,cAAgB,KACrBxzP,KAAKq0D,OAASA,CAChB,CACA,KAAA5rD,CAAMlJ,GACJ,IAAK,MAAMirC,KAAOxqC,KAAKm8P,gBAAiB,CACtC,MAAM7qG,EAAStxJ,KAAKm8P,gBAAgB3xN,GAAK8mH,OACzC,GAAIA,EAAQ,CACV,IAAI8qG,EACJ,GAAI78P,GAAQA,KAAgD,OAArC68P,EAAkB9qG,EAAOrqJ,cAAmB,EAASm1P,EAAgB/oG,KAAK9zJ,MAC/F,OAEF+xJ,EAAO7oJ,OACT,CACF,CACF,CACA,MAAA2iH,GACE,IAAK,MAAM5gF,KAAOxqC,KAAKm8P,gBAAiB,CACtC,MAAMv2B,EAAU5lO,KAAKm8P,gBAAgB3xN,IAEjCo7L,EAAQZ,wBAA0BY,EAAQvzE,YAAY0T,4BACjD/lK,KAAKm8P,gBAAgB3xN,EAEhC,CACF,CACA,OAAAynC,GACEjyE,KAAKorH,SACL,IAAK,MAAM5gF,KAAOxqC,KAAKm8P,gBAAiB,CACtC,MAAM7qG,EAAStxJ,KAAKm8P,gBAAgB3xN,GAAK8mH,OACrCA,GACFA,EAAOr/E,SAEX,CACAjyE,KAAKm8P,gBAAkB,CAAC,CAC1B,CACA,kBAAAE,CAAmBhpG,EAAM78H,EAAUm3H,EAAa40F,eAAgB39O,EAAO6yK,EAAgBlxK,GACrF,OAAO,IAAIuuL,GAAU,CACnBv1L,KAAMmuJ,EAAW+qB,cACjBjiJ,UACAmiJ,OAAO,EACPtlB,OACA9sJ,WACA3B,QACA6yK,kBAEJ,CACA,SAAA4pB,CAAUi7D,EAAapmG,GACrB,GAAIl2J,KAAKwzP,eAAiBxzP,KAAKq0D,OAAO+0K,WAAY,CAEhD,MAAM,GACJh4E,EAAE,GACFI,GACE8qG,EACJ,IAAK,IAAIx4P,EAAI,EAAGA,EAAIoyJ,EAAmB/1J,OAAQ2D,IAAK,CAClD,MAAMuvJ,EAAO6C,EAAmBpyJ,GAChC,GAAI0tJ,GAAM6B,EAAK7B,KAAc,gBAAPJ,GAAoC,gBAAZiC,EAAKjC,IAAwBA,EAAKiC,EAAKjC,IAAK,CACxFpxJ,KAAKwzP,cAAc/tB,sBAAsBpyE,GAAM1uJ,MAAKk8N,IAClDxtE,EAAKT,aAAaiuE,EAAgB,IAEpC,KACF,CACF,CACF,CACF,CACA,IAAAz3I,CAAKiqE,GACH,OAAKA,EAAKhB,aAAegB,EAAKX,WAAa1yJ,KAAKwzP,eAAiBxzP,KAAKq0D,OAAO+0K,WAEpEppO,KAAKwzP,cAAc/tB,sBAAsBpyE,GAAM1uJ,MAAKk8N,GAClD7gO,KAAK4uO,aAAav7E,EAAMwtE,KAG5B7gO,KAAK4uO,aAAav7E,EAC3B,CACA,YAAAu7E,CAAav7E,EAAMwtE,GACjB,IAAI07B,EAAUC,EACV37B,GACFxtE,EAAKT,aAAaiuE,GAEpB,MAAMxuE,EAAcgB,EAAKhB,YACzB,IAAKA,EAAa,CAChB,MAAMztJ,EAAQ,IAAI9G,MAAM+iO,EAAkB,gEAAgEA,IAAoB,uDAC9H,OAAO1/N,QAAQE,OAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa40F,eAAgB39O,GACnF,CACA,MAAM4lC,EAAM6nH,EAAY7nH,IACxB,IAAKA,EACH,OAAOrpC,QAAQE,OAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa40F,eAAgB,IAAIzkP,MAAM,qBAAqB0sC,QAElH,IAAIo7L,EAAU5lO,KAAKm8P,gBAAgB3xN,GACnC,GAA4B,OAAvB+xN,EAAW32B,IAAoB22B,EAASlqG,YAAY3zJ,IAEvD,OADA2zJ,EAAY3zJ,IAAMknO,EAAQvzE,YAAY3zJ,IAC/ByC,QAAQC,QAAQ,CACrBiyJ,OACAuyE,YAKF,IAAI62B,EADN,GAA6B,OAAxBD,EAAY52B,IAAoB42B,EAAUE,eAE7C,OAAoE,OAA3DD,EAAwB72B,EAAQZ,6BAAkC,EAASy3B,EAAsBx3B,WACxG,UAAK/oO,EACL,IAAK,iBACL,IAAK,SACL,IAAK,mBACH,OAAO0pO,EAAQ82B,eAAe/3P,MAAK28L,IAEjCjvC,EAAY3zJ,IAAM4iM,EAAcskC,QAAQvzE,YAAY3zJ,IAC7C,CACL20J,OACAuyE,cAeV,OANAA,EAAU5lO,KAAKm8P,gBAAgB3xN,GAAO,CACpC6nH,cACAqqG,eAAgB,KAChBprG,OAAQ,KACR0zE,uBAAwB,MAElB3yE,EAAY7kI,QAClB,IAAK,cACL,IAAK,aACL,IAAK,kBACL,IAAK,iBACH,MAA8B,aAA1B6kI,EAAYQ,UAEP7yJ,KAAK28P,YAAY/2B,EAASvyE,GAE5BrzJ,KAAK48P,WAAWh3B,EAASvyE,GAClC,IAAK,UACH,OAAOrzJ,KAAK28P,YAAY/2B,EAASvyE,GACnC,QACE,OAAOlyJ,QAAQE,OAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa40F,eAAgB,IAAIzkP,MAAM,0CAA0Cu0J,EAAY7kI,aAEvJ,CACA,UAAAovO,CAAWh3B,EAASvyE,GAClB,MAAMiuC,EAAgB,CACpBjuC,OACAuyE,WAEF,GAAI5lO,KAAKwzP,eAAiBxzP,KAAKq0D,OAAO+0K,WAAY,CAChD,MAAMhI,EAA2BphO,KAAKwzP,cAAc7tB,QAAQrkC,GAC5D,GAAI8/B,EACF,OAAQwE,EAAQ82B,eAAiBt7B,EAAyBz8N,MAAKm9N,IAC7D8D,EAAQZ,uBAAyBlD,EAC1BxgC,MACL1/D,OAAMh9H,IAGR,MADAghO,EAAQ82B,eAAiB,KACnB93P,CAAK,GAGjB,CACA,OAAOzD,QAAQC,QAAQkgM,EACzB,CACA,WAAAq7D,CAAY/2B,EAASvyE,GACnB,MAAMh/F,EAASr0D,KAAKq0D,OAEdk9F,EAAY,IAAIskB,EADPxhH,EAAOi9F,QACOj9F,GAE7B,OADAg/F,EAAK9B,UAAYq0E,EAAQt0E,OAASC,EAC3Bq0E,EAAQ82B,eAAiB,IAAIv7P,SAAQ,CAACC,EAASC,KACpD,MAAM+0K,EAAgB,CACpBwvD,UACAvyE,OACA2iB,aAAc,cACdxgI,IAAKowL,EAAQvzE,YAAY7nH,KAMrB2rI,EAAa9hH,EAAOw0K,cAAcxmN,QAClC40J,EAAe,CACnBd,aACAt4G,QAASs4G,EAAWY,cACpBG,SAAU,EACVE,WAAY,EACZE,cAAe,GAEXE,EAAkB,CACtB3uB,UAAW,CAACtiJ,EAAUyrJ,EAAO/qJ,EAASwwK,KACpC,MAAM,KACJpkB,EAAI,QACJuyE,EACApwL,IAAKhL,GACHvjC,EACJ,IAAKosJ,EAAKhB,aAAeuzE,IAAY5lO,KAAKm8P,gBAAgB3xN,GACxD,OAAOnpC,EAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa40F,eAAgB,IAAIzkP,MAAM,gDAAiD25K,IAEtImuD,EAAQvzE,YAAY3zJ,IAAM20J,EAAKhB,YAAY3zJ,IAAM,IAAI82G,WAAWjvG,EAASqD,MAGzEypJ,EAAK9B,UAAY,KACjBq0E,EAAQt0E,OAAS,KACjBlwJ,EAAQ,CACNiyJ,OACAuyE,WACA,EAEJ34N,QAAS,CAAC1G,EAAUU,EAASwwK,EAAgBzlB,KAC3ChyJ,KAAKu1L,YAAYtuL,GACjB5F,EAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa40F,eAAgB,IAAIzkP,MAAM,cAAcyI,EAAS1J,oBAAoB0J,EAASkwC,QAASghI,EAAgBpqB,EAAe,CACtK73G,IAAK4gI,EAAc5gI,IACnB5rC,UAAM1N,GACLqK,IAAW,EAEhBuxK,UAAW,CAAC9lB,EAAO/qJ,EAASwwK,KAC1Bz3K,KAAKu1L,YAAYtuL,GACjB5F,EAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa41B,iBAAkB,IAAIzlL,MAAM,yBAA0B25K,GAAgB,EAE1H9qK,QAAS,CAACqlJ,EAAO/qJ,EAASwwK,KACxBz3K,KAAKu1L,YAAYtuL,GACjB5F,EAAOrB,KAAKq8P,mBAAmBhpG,EAAM1F,EAAa8nC,iBAAkB,IAAI33L,MAAM,uBAAwB25K,GAAgB,GAG1HlmB,EAAUnoE,KAAKgtF,EAAea,EAAcO,EAAgB,GAEhE,CACA,WAAA+d,CAAYtuL,GACV,MAAM,KACJosJ,EAAI,QACJuyE,EACApwL,IAAKhL,GACHvjC,EACEqqJ,EAASs0E,EAAQt0E,OACnB+B,EAAK9B,YAAcD,IACrB+B,EAAK9B,UAAY,KACjBq0E,EAAQt0E,OAAS,aAEZtxJ,KAAKm8P,gBAAgB3xN,GACxB8mH,GACFA,EAAOr/E,SAEX,EAGF,SAAS4qL,KACP,OAAOvyO,KAAKwyO,cAAgBxyO,KAAKyyO,kBACnC,CACA,SAASC,KAEP,IADoBz0F,KAElB,OAAO,EAKT,MAAMkzE,EAAeohB,KACrB,OAAQphB,GAAgBA,EAAa7/O,WAA4D,mBAAxC6/O,EAAa7/O,UAAUgmP,cAAwE,mBAAlCnG,EAAa7/O,UAAU2V,MAC/I,CAkBA,MAAM0rP,GACJ,WAAAlyO,CAAYspC,EAAQm8G,EAAOisB,EAAiB/nB,GAC1C10K,KAAKq0D,YAAS,EACdr0D,KAAKwwK,MAAQ,KACbxwK,KAAKy8L,qBAAkB,EACvBz8L,KAAK00K,SAAM,EACX10K,KAAKk9P,WAAa,EAClBl9P,KAAKm9P,eAAgB,EACrBn9P,KAAKo9P,QAAU,KACfp9P,KAAKq9P,OAAQ,EACbr9P,KAAKwxP,SAAU,EACfxxP,KAAKq0D,OAASA,EACdr0D,KAAKwwK,MAAQA,EACbxwK,KAAKy8L,gBAAkBA,EACvBz8L,KAAK00K,IAAMA,CACb,CACA,OAAAziG,GACEjyE,KAAKwwK,MAAQ,KAEbxwK,KAAK00K,IAAM10K,KAAKy8L,gBAAkB,IACpC,CAQA,IAAA6gE,CAAKxgE,EAAiBygE,GACpB,MAAM,OACJlpM,EAAM,MACNm8G,EAAK,QACL4sF,GACEp9P,KACJ,GAAc,OAAVwwK,EACF,OAEF,MAAM,YACJ3iD,EAAW,QACX2jI,GACEhhF,EACEgtF,EAASx9P,KAAKwxP,UAAYA,EAC1BiM,GAAaz9P,KAAKwxP,SAAWA,EAInC,GAHAxxP,KAAKwxP,QAAUA,EAGX3jI,IAAgBivE,EAAiB,CAKnC,GAJA98L,KAAKq9P,OAAQ,EACR7L,IACHxxP,KAAKk9P,WAAa,GAEJ,OAAZE,EAAkB,CAEpB,GAAIp9P,KAAKm9P,cAAe,CACtB,MAAMO,EAAmBpzO,KAAKrS,YAAYgM,MAAQm5O,EAClDt8K,EAAO/jD,KAAK,+BAA+B8wF,YAAsB5wH,KAAKgpC,MAAMy3N,QAC5E19P,KAAKm9P,eAAgB,CACvB,CACAn9P,KAAKo9P,QAAU,IACjB,CACA,MACF,CAGA,GAAIK,GAAaD,EAEf,YADAx9P,KAAKo9P,QAAU,MAKjB,GAAI5sF,EAAMijE,SAAW+d,GAAWhhF,EAAM4tB,OAAgC,IAAvB5tB,EAAMsP,eAAuB+S,GAAaE,YAAYviB,GAAOrwK,OAE1G,YADAH,KAAKk9P,WAAa,GAGpB,MAAM10E,EAAaqK,GAAarK,WAAWhY,EAAO3iD,EAAa,GACzDslE,EAAY3K,EAAW2K,WAAa,EAC1C,GAAIq+D,EAAS,CAEX,MAAMmM,EAAkBn1E,EAAWzkL,IAjFd,EAmFf65P,GAAezqE,GAAaoqE,GAAcA,EAAWtkN,OAAS40E,GAAeslE,EAAYtlE,EAnF1E,IAmF+G7tH,KAAKy8L,gBAAgB9K,mBAAmB9jE,GAC5K,GAAI8vI,GAAmBC,EACrB,OAGF59P,KAAKq9P,OAAQ,CACf,CAIA,IAAKr9P,KAAKq9P,OAA0B,OAAjBr9P,KAAKo9P,QAAkB,CACxC,IAAIl6E,EAGJ,KADmBsF,EAAWzkL,IAAM,GAChBovL,GAClB,OAGF,MAAM0qE,EAAY5gQ,KAAKmrB,IAAI+qK,EAAW3K,EAAWvvI,OAAS,GAAK40E,EAKzDtjD,EAAQvqE,KAAK00K,IAAInG,OAASvuK,KAAK00K,IAAInG,OAAOvuK,KAAK00K,IAAI2wE,cAAgB,KAEnEyY,GADkB,MAATvzL,GAA6D,OAAnC24G,EAAiB34G,EAAM/zC,cAAjC,EAA6D0sJ,EAAe7uB,MAC3C,EAA/B9pF,EAAM/zC,QAAQu+H,eA5G1B,EA6GfgpG,EAAe/9P,KAAKy8L,gBAAgB9K,mBAAmB9jE,GAC7D,GAAIgwI,EAAY,IAAMA,GAAaC,GAAmBC,GAIpD,YAHKvtF,EAAMijE,QACTzzO,KAAKg+P,mBAAmBD,GAI9B,CAGA,MAAME,EAAO3zO,KAAKrS,YAAYgM,MAC9B,GAAgB,OAAZm5O,EAEF,YADAp9P,KAAKo9P,QAAUa,GAGjB,MAAMC,EAAkBD,EAAOb,EAC/B,IAAK5L,GAAW0M,GA9Hc,MAgI5Bl+P,KAAKm+P,aAAa31E,IACbxoL,KAAKwwK,OACR,OAGJ,MAAM4tF,EAAoBvrE,GAAarK,WAAWhY,EAAO3iD,EAAax5D,EAAOgqI,eAC7Er+L,KAAKq+P,mBAAmBD,EAAmBF,EAC7C,CAQA,kBAAAG,CAAmB71E,EAAY81E,GAC7B,MAAM,OACJjqM,EAAM,gBACNooI,EAAe,MACfjsB,GACExwK,KACJ,GAAc,OAAVwwK,EACF,OAEF,MAAM3iD,EAAc2iD,EAAM3iD,YACpBx/D,EAAUouI,EAAgB9K,mBAAmB9jE,KAC/Cx/D,IAGiBruD,KAAKg+P,mBAAmB3vM,IAGxBruD,KAAKwwK,SASrBgY,EAAWzkL,IAAMswD,EAAOgqI,eAAiB7V,EAAW2K,WAAa3K,EAAW2K,UAAYtlE,EAAcx5D,EAAOgqI,gBAAkBigE,EAAsD,IAAlCjqM,EAAO29K,2BAC7JlxJ,EAAO/jD,KAAK,6CAIZ/8B,KAAKo9P,QAAU,KACfp9P,KAAKu+P,kBAET,CAOA,YAAAJ,CAAa31E,GACX,MAAM,IACJ9T,EAAG,MACHlE,EAAK,cACL2sF,GACEn9P,KACJ,IAAKm9P,GAAiB3sF,EAAO,CAE3BxwK,KAAKm9P,eAAgB,EACrB,MAAMv4P,EAAQ,IAAI9G,MAAM,yBAAyB0yK,EAAM3iD,kCAAkC9uF,KAAKL,UAAU8pJ,OACxG1nG,EAAO/jD,KAAKn4B,EAAM+Y,SAClB+2J,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAa+xB,qBACtB/G,OAAO,EACP/zK,QACA8E,OAAQ8+K,EAAWzkL,KAEvB,CACF,CAOA,kBAAAi6P,CAAmB3vM,GACjB,MAAM,OACJgG,EAAM,IACNqgH,EAAG,MACHlE,GACExwK,KACJ,GAAc,OAAVwwK,EACF,OAAO,EAIT,MAAM3iD,EAAc2iD,EAAM3iD,YACpB26D,EAAaqK,GAAarK,WAAWhY,EAAO3iD,EAAa,GACzD3uG,EAAY2uG,EAAc26D,EAAWvvI,MAAQuvI,EAAWvvI,MAAQuvI,EAAW2K,UACjF,GAAIj0K,EAAW,CACb,MAAMs/O,EAAgBh2E,EAAWzkL,KAAOswD,EAAOgqI,cACzCogE,EAAUj2E,EAAWzkL,IAAM,GAAKykL,EAAWzkL,IAAM,GAAKysK,EAAMm1B,WAAa,EACzE+4D,EAAYx/O,EAAY2uG,EAC9B,GAAI6wI,EAAY,IAAMF,GAAiBC,GAAU,CAE/C,GAAIC,EAAYrqM,EAAOgqI,cAAe,CACpC,MAAM,gBACJ5B,GACEz8L,KACJ,IAAI2+P,GAAW,EACf,GAAoB,IAAhB9wI,EAAmB,CACrB,MAAM+wI,EAAYniE,EAAgBxM,gBAAgB,EAAG3b,IACjDsqF,GAAa1/O,EAAY0/O,EAAU5xP,MACrC2xP,GAAW,EAEf,CACA,IAAKA,EAAU,CACb,MAAME,EAAmBxwM,GAAWouI,EAAgBxM,gBAAgBpiE,EAAaymD,IACjF,GAAIuqF,EAAkB,CACpB,IAAIC,GAAa,EACbj+N,EAAMg+N,EAAiB7xP,IAC3B,KAAO6zB,EAAM3hB,GAAW,CACtB,MAAM6/O,EAActiE,EAAgB9K,mBAAmB9wJ,GACvD,IAAIk+N,EAEG,CACLD,GAAa,EACb,KACF,CAJEj+N,GAAOk+N,EAAY19L,QAKvB,CACA,GAAIy9L,EACF,OAAO,CAEX,CACF,CACF,CACA,MAAME,EAAa/hQ,KAAKmrB,IAAIlJ,EAlQJ,IAkQyC2uG,EAnQnC,IAwQ9B,GAJA/sC,EAAO/jD,KAAK,6CAA6C8wF,QAAkBmxI,KAC3Eh/P,KAAKq9P,OAAQ,EACbr9P,KAAKo9P,QAAU,KACf5sF,EAAM3iD,YAAcmxI,EAChB3wM,IAAYA,EAAQsgE,IAAK,CAC3B,MAAM/pH,EAAQ,IAAI9G,MAAM,mDAAmD+vH,QAAkBmxI,KAC7FtqF,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAas1F,sBACtBtqE,OAAO,EACP/zK,QACAikC,OAAQjkC,EAAM+Y,QACd01I,KAAMhlG,GAEV,CACA,OAAO2wM,CACT,CACF,CACA,OAAO,CACT,CAMA,eAAAT,GACE,MAAM,OACJlqM,EAAM,IACNqgH,EAAG,MACHlE,EAAK,WACL0sF,GACEl9P,KACJ,GAAc,OAAVwwK,EACF,OAEF,MAAM3iD,EAAc2iD,EAAM3iD,YAE1B,GADA7tH,KAAKk9P,aACDA,EAAa7oM,EAAO69K,cAAe,CACrC,MAAM8sB,EAAanxI,GAAeqvI,EAAa,GAAK7oM,EAAO49K,YAErDrtO,EAAQ,IAAI9G,MAAM,8BAA8B+vH,QAAkBmxI,KACxEl+K,EAAO/jD,KAAKn4B,EAAM+Y,SAClB6yJ,EAAM3iD,YAAcmxI,EACpBtqF,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAau1F,sBACtBt+O,QACA+zK,OAAO,GAEX,KAAO,CACL,MAAM/zK,EAAQ,IAAI9G,MAAM,yDAAyD+vH,WAAqBx5D,EAAO69K,wBAC7GpxJ,EAAOl8E,MAAMA,EAAM+Y,SACnB+2J,EAAIrrE,QAAQokD,EAAO+qB,MAAO,CACxBj5K,KAAMmuJ,EAAWipC,YACjBngK,QAASm3H,EAAa+xB,qBACtB96K,QACA+zK,OAAO,GAEX,CACF,EAKF,MAAMsmF,WAAyBziE,GAC7B,WAAAzxK,CAAY2pJ,EAAK+nB,EAAiBlrC,GAChCh5H,MAAMm8I,EAAK+nB,EAAiBlrC,EAAW,sBAAuB+iB,IAC9Dt0K,KAAKk/P,gBAAiB,EACtBl/P,KAAKm/P,cAAgB,KACrBn/P,KAAKuqE,OAAS,EACdvqE,KAAKo/P,iBAAkB,EACvBp/P,KAAK+8O,UAAW,EAChB/8O,KAAKq7P,WAAY,EACjBr7P,KAAKq/P,YAAc,KACnBr/P,KAAKs/P,WAAa,KAClBt/P,KAAKu/P,UAAY,KACjBv/P,KAAKw/P,aAAe,EACpBx/P,KAAKy/P,gBAAiB,EACtBz/P,KAAKw/L,kBAAoB,KACzBx/L,KAAK0/P,kBAAmB,EACxB1/P,KAAKswP,YAAc,KACnBtwP,KAAKi8K,oBACP,CACA,kBAAAA,GACE,MAAM,IACJvH,GACE10K,KACJ00K,EAAI1yF,GAAGyrE,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACpD00K,EAAI1yF,GAAGyrE,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACtD00K,EAAI1yF,GAAGyrE,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACxD00K,EAAI1yF,GAAGyrE,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACtD00K,EAAI1yF,GAAGyrE,EAAO0nB,cAAen1K,KAAKo1K,eAAgBp1K,MAClD00K,EAAI1yF,GAAGyrE,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MAChD00K,EAAI1yF,GAAGyrE,EAAOknF,4BAA6B30O,KAAK2/P,2BAA4B3/P,MAC5E00K,EAAI1yF,GAAGyrE,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACnC00K,EAAI1yF,GAAGyrE,EAAOwjG,sBAAuBjxP,KAAKkxP,sBAAuBlxP,MACjE00K,EAAI1yF,GAAGyrE,EAAOukG,qBAAsBhyP,KAAK4/P,qBAAsB5/P,MAC/D00K,EAAI1yF,GAAGyrE,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,MACpD00K,EAAI1yF,GAAGyrE,EAAO4xF,eAAgBr/O,KAAKqxP,gBAAiBrxP,MACpD00K,EAAI1yF,GAAGyrE,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACpD00K,EAAI1yF,GAAGyrE,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACpD,CACA,oBAAAk8K,GACE,MAAM,IACJxH,GACE10K,KACJ00K,EAAI57E,IAAI20D,EAAO0uB,eAAgBn8K,KAAKo8K,gBAAiBp8K,MACrD00K,EAAI57E,IAAI20D,EAAO4uB,gBAAiBr8K,KAAKs8K,iBAAkBt8K,MACvD00K,EAAI57E,IAAI20D,EAAOwnB,iBAAkBj1K,KAAKk1K,kBAAmBl1K,MACzD00K,EAAI57E,IAAI20D,EAAOuwE,gBAAiBh+N,KAAKi+N,iBAAkBj+N,MACvD00K,EAAI57E,IAAI20D,EAAOisB,aAAc15K,KAAKm1O,cAAen1O,MACjD00K,EAAI57E,IAAI20D,EAAOknF,4BAA6B30O,KAAK2/P,2BAA4B3/P,MAC7E00K,EAAI57E,IAAI20D,EAAO+qB,MAAOx4K,KAAKiN,QAASjN,MACpC00K,EAAI57E,IAAI20D,EAAOwjG,sBAAuBjxP,KAAKkxP,sBAAuBlxP,MAClE00K,EAAI57E,IAAI20D,EAAOukG,qBAAsBhyP,KAAK4/P,qBAAsB5/P,MAChE00K,EAAI57E,IAAI20D,EAAOkzF,eAAgB3gP,KAAKoxP,gBAAiBpxP,MACrD00K,EAAI57E,IAAI20D,EAAO4xF,eAAgBr/O,KAAKqxP,gBAAiBrxP,MACrD00K,EAAI57E,IAAI20D,EAAOywE,eAAgBl+N,KAAKm+N,gBAAiBn+N,MACrD00K,EAAI57E,IAAI20D,EAAOoiC,cAAe7vL,KAAK8vL,eAAgB9vL,KACrD,CACA,mBAAA4uL,GACE5uL,KAAKk8K,uBACL3jJ,MAAMq2J,qBACR,CACA,SAAA/Z,CAAUC,GACR,GAAI90K,KAAKuuK,OAAQ,CACf,MAAM,gBACJuuB,EAAe,IACfpoB,GACE10K,KAIJ,GAHAA,KAAK+0K,WACL/0K,KAAKqnD,YArEW,KAsEhBrnD,KAAKuqE,OAAS,GACTvqE,KAAKo9L,mBAAoB,CAE5B,IAAIi1C,EAAa39D,EAAI29D,YACD,IAAhBA,IACE39D,EAAIrgH,OAAOwxL,eAAiB7lP,KAAKuuK,OAAOpuK,OAAS,GAEnDkyO,EAAa,EACbryO,KAAKiyJ,aAAc,GAEnBogF,EAAa39D,EAAI4hE,gBAKrB5hE,EAAIy/D,cAAgB9B,EACpBryO,KAAKuqE,MAAQmqG,EAAIojE,UACjB93O,KAAKg9L,gBAAiB,CACxB,CAEIF,EAAkB,IAAwB,IAAnBhoB,IACzB90K,KAAKmrC,IAAI,gDAAgD2xJ,EAAgBlzH,QAAQ,MACjFkrG,EAAgBgoB,GAElB98L,KAAK6P,MAAQmtB,GACbh9B,KAAK+8L,iBAAmB/8L,KAAK80K,cAAgB90K,KAAK88L,gBAAkBhoB,EACpE90K,KAAK2uL,MACP,MACE3uL,KAAKo/P,iBAAkB,EACvBp/P,KAAK6P,MAAQmtB,EAEjB,CACA,QAAA+3I,GACE/0K,KAAKo/P,iBAAkB,EACvB7mO,MAAMw8I,UACR,CACA,MAAAma,GACE,OAAQlvL,KAAK6P,OACX,KAAKmtB,GACH,CACE,MAAM,OACJuxI,EAAM,MACNhkG,GACEvqE,KACEqlP,EAAyB,MAAV92E,OAAiB,EAASA,EAAOhkG,GAChD/zC,EAA0B,MAAhB6uN,OAAuB,EAASA,EAAa7uN,QAC7D,GAAIA,KAAaA,EAAQ69H,MAAQr0J,KAAKm9L,kBAAoBkoD,GAAe,CACvE,GAAIrlP,KAAK6mM,iBAAiBrwK,GACxB,MAEFx2B,KAAK6P,MAAQmtB,GACb,KACF,CAAO,GAAIh9B,KAAK00K,IAAIy/D,gBAAkBn0O,KAAKuqE,MAAO,CAChDvqE,KAAK6P,MAAQmtB,GACb,KACF,CACA,KACF,CACF,KAAKA,GACH,CACE,IAAIqkN,EACJ,MAAMp9N,EAAMqG,KAAKrS,YAAYgM,MACvBg5K,EAAYj9L,KAAKi9L,UAEvB,IAAKA,GAAah5K,GAAOg5K,GAA2C,OAA7BokD,EAAcrhP,KAAKwwK,QAAkB6wE,EAAYmQ,QAAS,CAC/F,MAAM,OACJjjF,EAAM,MACNhkG,GACEvqE,KACEqlP,EAAyB,MAAV92E,OAAiB,EAASA,EAAOhkG,GACtDvqE,KAAKonM,wBAAwBi+C,GAAgB,MAC7CrlP,KAAK6P,MAAQmtB,EACf,CACF,EAGAh9B,KAAK6P,QAAUmtB,IACjBh9B,KAAKsxP,aAEPtxP,KAAK09L,WACP,CACA,SAAAA,GACEnlK,MAAMmlK,YACN19L,KAAK6/P,cACL7/P,KAAK8/P,sBACP,CACA,UAAAxO,GACE,MAAM,IACJ58E,EAAG,gBACHyoB,EAAe,OACf5uB,EAAM,MACNiC,GACExwK,KAKJ,GAAwB,OAApBm9L,IAA6B3sB,IAAUxwK,KAAKo9L,qBAAuB1oB,EAAIrgH,OAAOi+K,mBAChF,OAIF,GAAItyO,KAAK+8O,UAAY/8O,KAAKq7P,UACxB,OAEF,MAAM9wL,EAAQvqE,KAAKkwJ,UAAYwkB,EAAIy/D,cAAgBz/D,EAAIojE,UACvD,GAAgB,MAAVvpE,IAAkBA,EAAOhkG,GAC7B,OAEF,MAAMiwK,EAAYjsE,EAAOhkG,GAInBi+G,EAAaxoL,KAAK+/P,uBACxB,GAAmB,OAAfv3E,EACF,OAEF,MAAMw3E,EAAchgQ,KAAK+9L,kBACzB,GAAIiiE,GAAehgQ,KAAK89L,aAAatV,EAAYw3E,GAAc,CAC7D,MAAMp2P,EAAO,CAAC,EAMd,OALI5J,KAAK+8O,WACPnzO,EAAKrK,KAAO,SAEdS,KAAK00K,IAAIrrE,QAAQokD,EAAOgvF,WAAY7yO,QACpC5J,KAAK6P,MAAQmtB,GAEf,CACA,IAAKh9B,KAAKkwJ,UACR,OAIEwkB,EAAIojE,YAAcvtK,IAA8B,IAArBmqG,EAAIknF,aACjC57P,KAAKmrC,IAAI,qBAAqBo/B,gBAAoBvqE,KAAKuqE,SAEzDvqE,KAAKuqE,MAAQmqG,EAAIy/D,cAAgB5pK,EACjC,MAAMksG,EAAe+jE,EAAUhkN,QAI/B,IAAKigJ,GAAgBz2K,KAAK6P,QAAUmtB,IAAuBy5I,EAAapiB,MAAQr0J,KAAKm9L,kBAAoBq9C,EAGvG,OAFAx6O,KAAKuqE,MAAQA,OACbvqE,KAAK6P,MAAQmtB,IAGf,MAAMw2J,EAAYhL,EAAWzkL,IAGvB4/L,EAAY3jM,KAAKyjM,mBAAmB+2C,EAAUt5D,YAGpD,GAAIsS,GAAamQ,EACf,OAEE3jM,KAAKw/L,mBAAqBx/L,KAAKw/L,kBAAkBvmJ,MAAQuvI,EAAWx7K,MACtEhN,KAAKw/L,kBAAoB,MAE3B,MAAMZ,EAAmB5+L,KAAKw/L,kBAAoBx/L,KAAKw/L,kBAAkBvmJ,MAAQuvI,EAAWx7K,IAC5F,IAAIqmJ,EAAOrzJ,KAAKikM,gBAAgBrF,EAAkBnoB,GAElD,GAAIz2K,KAAKy/P,iBAAmBz/P,KAAK8kL,cAAgBzxB,GAAoB,gBAAZA,EAAKjC,IAAwBpxJ,KAAKy8L,gBAAgB79L,SAASy0J,KAAU+7B,GAAkB,CAC9I,IAAI6wE,EACJ,MACMx9E,GADmE,OAAnDw9E,EAAwBjgQ,KAAKw/L,mBAA6BygE,EAAwB5sG,GAAMjC,GAChFqlB,EAAa5hB,QACrCqrG,EAAgBzpF,EAAaxiB,UAAUwuB,EAAU,GACnDy9E,GAAiB7sG,EAAK7B,KAAO0uG,EAAc1uG,KAC7C6B,EAAO6sG,EACPlgQ,KAAKy8L,gBAAgB5L,eAAeqvE,GAExC,MAAWlgQ,KAAKw/L,mBAAqBhX,EAAWzkL,MAC9C/D,KAAKw/L,kBAAoB,MAG3B,GAAInsC,GAAQrzJ,KAAKukM,cAAclxC,EAAMurC,GAAmB,CAEtD,IADiBvrC,EAAK1kC,IACP,CAEb,MAAMpvH,EAAOS,KAAKq7P,YAAcr7P,KAAK+8O,SAAW5sF,EAA8BA,EACxE0sC,GAAet9L,IAAS4wJ,EAA8BnwJ,KAAKswP,YAActwP,KAAK68L,cAAgB78L,KAAKwwK,MACrGqsB,GACF78L,KAAKwnM,mBAAmB3K,EAAat9L,EAAM+0K,GAE/C,CACAjhB,EAAOrzJ,KAAKykM,2BAA2BpxC,EAAMojB,EAAc+R,EAAYlU,GAAwBqvB,EACjG,CACKtwC,KAGDA,EAAKnB,aAAgBmB,EAAKnB,YAAYtoJ,MAAS5J,KAAKiyJ,cACtDoB,EAAOA,EAAKnB,aAEdlyJ,KAAK2+L,aAAatrC,EAAMmnF,EAAW57C,GACrC,CACA,YAAAD,CAAatrC,EAAM9oF,EAAOq0H,GAExB,MAAM2G,EAAYvlM,KAAKy8L,gBAAgB79L,SAASy0J,GAChDrzJ,KAAK08L,YAAcrpC,EACfkyC,IAAcnW,IAA4BmW,IAAcnW,GAC1C,gBAAZ/7B,EAAKjC,GACPpxJ,KAAK6/L,iBAAiBxsC,EAAM9oF,GACnBvqE,KAAKiyJ,aACdjyJ,KAAKmrC,IAAI,YAAYkoH,EAAKjC,eAAeiC,EAAK9oF,sEAC9CvqE,KAAKmgQ,qBAAqB9sG,EAAM9oF,KAEhCvqE,KAAKo9L,oBAAqB,EAC1B7kK,MAAMomK,aAAatrC,EAAM9oF,EAAOq0H,IAGlC5+L,KAAKm/L,qBAAqB9rC,EAE9B,CACA,eAAAg9B,CAAgBn5I,GACd,OAAOl3C,KAAKy8L,gBAAgBpM,gBAAgBn5I,EAAUo9H,GACxD,CACA,qBAAA8rF,CAAsB/sG,GACpB,OAAIA,EAEKrzJ,KAAKqwL,gBAAgBh9B,EAAKrmJ,IAAM,IAElC,IACT,CAQA,oBAAAqzP,GACErgQ,KAAKsgQ,mBACLtgQ,KAAK2/L,gBAAgB,EAAGjsL,OAAOioK,kBACjC,CAQA,eAAAqjD,GACE,MAAM,OACJzwD,EAAM,MACNiC,GACExwK,KAEJ,GAAa,MAATwwK,GAAiBA,EAAMm1B,WAAY,CACrC,IAAI46D,EACJ,MAAMC,EAAqBxgQ,KAAKiwL,gBAAgBzf,EAAM3iD,aAClD2yI,GAAsBA,EAAmBvnN,MAAQ,GAGnDj5C,KAAK2/L,gBAAgB,EAAG6gE,EAAmBvnN,MAAQ,GAErD,MAAMw9H,EAAez2K,KAAK+9L,kBAC1B,GAAoB,MAAhBtnB,GAAwBA,EAAapiB,KAAM,CAC7C,MAAMm0B,EAAaxoL,KAAK+/P,uBAExB,IAAKv3E,GAAcA,EAAWzkL,IAAoC,EAA9B0yK,EAAa1hB,eAC/C,MAEJ,CACA,IAAKyb,EAAMijE,QAAUllE,EAAQ,CAE3B,MACMuxD,EAAYvxD,EADEvuK,KAAK00K,IAAIy/D,eAEvBqrB,EAAex/P,KAAKw/P,aAExBe,EADEf,GAAgBx/P,KAAK08L,YACV18L,KAAK08L,YAAYr7H,SAAWy+J,EAAU5+C,YAAc,IAAOs+E,GAAgB,EAE3E,CAEjB,MACEe,EAAa,EAIf,MAAME,EAAezgQ,KAAKqwL,gBAAgB7f,EAAM3iD,YAAc0yI,GAC9D,GAAIE,EAAc,CAEhB,MAAMC,EAAmB1gQ,KAAKogQ,sBAAsBK,GACpD,GAAIC,EAAkB,CAEpB1gQ,KAAKsgQ,mBAEL,MAAMK,EAAWD,EAAiB5uG,YAAc4uG,EAAiB5uG,YAAc4uG,EAAiBznN,MAC1FkqJ,EAAeu9D,EAAiBr/L,SAChCu/L,EAAW3jQ,KAAKmrB,IAAIq4O,EAAazzP,IAAK2zP,EAAW1jQ,KAAK6+B,IAAI7+B,KAAKmrB,IAAI+6K,EAAenjM,KAAKq0D,OAAO2wH,uBAAwBme,GAAgBnjM,KAAKy/P,eAAiB,GAAM,OAASt8D,GAAgBnjM,KAAKy/P,eAAiB,IAAO,OAC9Nz/P,KAAK2/L,gBAAgBihE,EAAUltP,OAAOioK,kBACxC,CACF,CACF,CACF,CACA,gBAAA2kF,GACE,MAAM5jE,EAAc18L,KAAK08L,YAOzB,OANA18L,KAAK08L,YAAc,KACnB18L,KAAKw/L,kBAAoB,KACrB9C,IACFA,EAAY5pC,gBACZ9yJ,KAAKy8L,gBAAgB5L,eAAe6L,IAE9B18L,KAAK6P,OACX,KAAKmtB,GACL,KAAKA,GACL,KAAKA,GACL,KAAKA,GACL,KAAKA,GACHh9B,KAAK6P,MAAQmtB,GAGjBh9B,KAAK+8L,iBAAmB/8L,KAAKsjM,iBAC/B,CACA,eAAA3D,CAAgBriB,EAAaC,GAC3BhlJ,MAAMonK,gBAAgBriB,EAAaC,EAAWv9K,KAAK+8O,SAAW,QAAU,KAC1E,CACA,eAAA3gE,CAAgBp2H,EAAOp8C,GACrB2uB,MAAM6jJ,gBAAgBp2H,EAAOp8C,GAC7B,MAAM4mK,EAAQ5mK,EAAK4mK,MACnBxwK,KAAKs/P,WAAat/P,KAAK6gQ,eAAe7xP,KAAKhP,MAC3CA,KAAKu/P,UAAYv/P,KAAK8gQ,cAAc9xP,KAAKhP,MACzCwwK,EAAMv6H,iBAAiB,UAAWj2C,KAAKs/P,YACvC9uF,EAAMv6H,iBAAiB,SAAUj2C,KAAKu/P,WACtCv/P,KAAKm/P,cAAgB,IAAIlC,GAAcj9P,KAAKq0D,OAAQm8G,EAAOxwK,KAAKy8L,gBAAiBz8L,KAAK00K,IACxF,CACA,gBAAA4H,GACE,MAAM,MACJ9L,GACExwK,KACAwwK,GAASxwK,KAAKs/P,YAAct/P,KAAKu/P,YACnC/uF,EAAMp1E,oBAAoB,UAAWp7F,KAAKs/P,YAC1C9uF,EAAMp1E,oBAAoB,SAAUp7F,KAAKu/P,WACzCv/P,KAAKs/P,WAAat/P,KAAKu/P,UAAY,KACnCv/P,KAAKswP,YAAc,MAErBtwP,KAAKq/P,YAAc,KACfr/P,KAAKm/P,gBACPn/P,KAAKm/P,cAAcltL,UACnBjyE,KAAKm/P,cAAgB,MAEvB5mO,MAAM+jJ,kBACR,CACA,cAAAukF,GAEE7gQ,KAAK2uL,MACP,CACA,aAAAmyE,GACE,MAAMtwF,EAAQxwK,KAAKwwK,MACb3iD,EAAc2iD,EAAQA,EAAM3iD,YAAc,KAC5C2/B,EAAe3/B,IACjB7tH,KAAKmrC,IAAI,mBAAmB0iF,EAAYjkD,QAAQ,MAIlD,MAAM4+G,EAAaxoL,KAAK+/P,uBACL,OAAfv3E,GAA0C,IAAnBA,EAAWzkL,IAMtC/D,KAAK2uL,OALH3uL,KAAK+8B,KAAK,gDAAgDyrJ,EAAaA,EAAWzkL,IAAM,WAM5F,CACA,iBAAAmxK,GAEEl1K,KAAKmrC,IAAI,wBACTnrC,KAAK00K,IAAIrrE,QAAQokD,EAAO6uF,kBAAcpgP,GACtC8D,KAAKy8L,gBAAgBjK,qBACrBxyL,KAAKy/P,gBAAiB,EACtBz/P,KAAK80K,cAAgB90K,KAAK88L,gBAAkB98L,KAAKw/P,aAAe,EAChEx/P,KAAKuuK,OAASvuK,KAAKq/P,YAAcr/P,KAAKw/L,kBAAoBx/L,KAAKm9L,gBAAkB,KACjFn9L,KAAK+8O,SAAW/8O,KAAKq7P,UAAYr7P,KAAKo9L,oBAAqB,CAC7D,CACA,gBAAA6gC,CAAiBj4K,EAAOp8C,GAEtB,IAAIm3P,GAAM,EACNC,GAAQ,EACZp3P,EAAK2kK,OAAO/vK,SAAQ+rE,IAClB,MAAMi0F,EAAQj0F,EAAMslG,WAChBrR,IACFuiG,EAAMA,IAAuC,IAAhCviG,EAAMrgI,QAAQ,aAC3B6iO,EAAQA,IAAyC,IAAhCxiG,EAAMrgI,QAAQ,aACjC,IAEFn+B,KAAK0/P,iBAAmBqB,GAAOC,IA9wBnC,WACE,IAAIC,EACJ,MAAMxlB,EAAeohB,KACrB,MAAyJ,mBAA1H,MAAhBphB,GAAoF,OAAnDwlB,EAAwBxlB,EAAa7/O,gBAA/C,EAA6EqlQ,EAAsBnjB,WAC3I,CA0wB6CojB,GACrClhQ,KAAK0/P,kBACP1/P,KAAKmrC,IAAI,0EAEXnrC,KAAKuuK,OAAS3kK,EAAK2kK,OACnBvuK,KAAKo9L,oBAAqB,CAC5B,CACA,cAAAhoB,CAAepvH,EAAOp8C,GACpB,MAAM,OACJ2kK,GACEvuK,KACJ,IAAKuuK,GAAUvuK,KAAK6P,QAAUmtB,GAC5B,OAEF,MAAMutC,EAAQgkG,EAAO3kK,EAAK2gE,SACrBA,EAAM/zC,SAAW+zC,EAAM/zC,QAAQ69H,MAAQr0J,KAAKm9L,kBAAoB5yH,GAASvqE,KAAK6mM,iBAAiBt8H,EAAM/zC,YACxGx2B,KAAK6P,MAAQmtB,GAEjB,CACA,aAAAm4M,CAAcnvL,EAAOp8C,GACnB,IAAIu3P,EACJ,MAAM,OACJ5yF,GACEvuK,KACEohQ,EAAax3P,EAAK2gE,MAClBq4G,EAAah5K,EAAK4sB,QAClB6qC,EAAWuhH,EAAW5tB,cAC5B,IAAKuZ,EAEH,YADAvuK,KAAK+8B,KAAK,yCAAyCqkO,KAGrDphQ,KAAKmrC,IAAI,SAASi2N,aAAsBx+E,EAAW/tB,WAAW+tB,EAAW5uB,SAAS4uB,EAAWpsB,WAAa,SAASosB,EAAWpsB,cAAcosB,EAAWlsB,iBAAmB,WAAWksB,EAAWhuB,YAAYguB,EAAW7uB,mBAAmB1yF,KAC1O,MAAMw+J,EAAWtxD,EAAO6yF,GAClB1kE,EAAc18L,KAAK08L,aACrBA,GAAgB18L,KAAK6P,QAAUmtB,IAAsBh9B,KAAK6P,QAAUmtB,IAClE0/J,EAAYnyH,QAAU3gE,EAAK2gE,OAASmyH,EAAYprC,QAClDtxJ,KAAKsgQ,mBAGT,IAAIrsE,EAAU,EACd,GAAIrR,EAAWvuB,MAAkD,OAAzC8sG,EAAoBthC,EAASrpM,UAAoB2qO,EAAkB9sG,KAAM,CAC/F,IAAI2pC,EAEJ,GADAh+L,KAAK0/L,gBAAgB9c,GACjBA,EAAW/sB,kBACb,OAEFo+B,EAAUj0L,KAAK4lM,eAAehjB,EAAYi9C,EAASrpM,QAA2D,OAAjDwnK,EAAwBh+L,KAAKm9L,sBAA2B,EAASa,EAAsBxnK,QACtJ,CAUA,GARAqpM,EAASrpM,QAAUosJ,EACnB5iL,KAAKm9L,gBAAkB0iC,EACvB7/N,KAAK00K,IAAIrrE,QAAQokD,EAAOkvB,cAAe,CACrCnmJ,QAASosJ,EACTr4G,MAAO62L,IAILphQ,KAAK6P,QAAUmtB,GAAqB,CACtC,GAAIh9B,KAAK6mM,iBAAiBjkB,GAExB,OAEF5iL,KAAK6P,MAAQmtB,EACf,CACKh9B,KAAKo9L,mBAECxa,EAAWvuB,MACpBr0J,KAAKylM,sBAAsB7iB,GAF3B5iL,KAAK8mM,iBAAiBlkB,EAAYqR,GAMpCj0L,KAAK2uL,MACP,CACA,2BAAAqQ,CAA4Bp1L,GAC1B,IAAI8gN,EACJ,MAAM,KACJr3D,EAAI,KACJlmH,EAAI,QACJlhC,GACErC,GACE,OACJ2kK,GACEvuK,KACJ,IAAKuuK,EAEH,YADAvuK,KAAK+8B,KAAK,mEAAmEs2H,EAAKjC,eAAeiC,EAAK9oF,8BAGxG,MAAM86K,EAAe92E,EAAOlb,EAAK9oF,OAC3B/zC,EAAU6uN,EAAa7uN,QAC7B,IAAKA,EAGH,OAFAx2B,KAAK+8B,KAAK,qBAAqBs2H,EAAKjC,eAAeiC,EAAK9oF,6CACxDvqE,KAAKy8L,gBAAgB5L,eAAex9B,GAGtC,MAAM0Z,EAAas4E,EAAat4E,WAG1B+vC,EAAqBtmL,EAAQo9H,WAAap9H,EAAQ69H,KAClDkyD,EAA4D,OAAzCmE,EAAoBr3D,EAAKnB,kBAAuB,EAASw4D,EAAkB9gN,KAC9FimK,EAAa7vK,KAAKqhQ,eAAehc,GAIjC1oD,EAAa38L,KAAK28L,WAAa38L,KAAK28L,YAAc,IAAIusB,GAAoBlpN,KAAK00K,IAAKJ,GAAwBt0K,KAAK+xP,wBAAwB/iP,KAAKhP,MAAOA,KAAKyiM,uBAAuBzzL,KAAKhP,OACtLijL,EAAY91I,EAAOA,EAAK15B,OAAS,EACjC46C,GAAyB,IAAf40H,EACVie,EAAY,IAAIxN,GAAcrgC,EAAK9oF,MAAO8oF,EAAKjC,GAAIiC,EAAKrB,MAAMjC,WAAY9jJ,EAAQqqG,WAAY2sE,EAAW50H,GACzGivI,EAAUt9L,KAAKs9L,QAAQjqC,EAAK7B,IAClCmrC,EAAW96L,KAAKoK,EAASs6M,EAAiB12C,EAAY9C,EAAY1Z,EAAMlmH,EAAM3W,EAAQw+H,cAAe8nD,EAAoB5b,EAAW5D,EACtI,CACA,qBAAA4zD,CAAsBlrM,EAAOp8C,GAE3B,MAAM03P,EAAethQ,KAAK+8O,SAK1B,IAJmBnzO,EAAK4rC,IAIT,CACb,GAAIx1C,KAAK68L,cAAgB78L,KAAKwwK,MAAO,CACnCxwK,KAAKmrC,IAAI,iFACTnrC,KAAK68L,YAAc78L,KAAKwwK,MACxB,MAAMksB,EAAc18L,KAAK08L,YAErBA,IACF18L,KAAKmrC,IAAI,4DACTuxJ,EAAY5pC,gBACZ9yJ,KAAKy8L,gBAAgB5L,eAAe6L,IAGtC18L,KAAK29L,kBAEL39L,KAAKs+L,mBACP,MAAWt+L,KAAKq7P,WAEdr7P,KAAK29L,kBAEP,MAAMjpB,EAAM10K,KAAK00K,IAEb4sF,IACF5sF,EAAIrrE,QAAQokD,EAAOgvB,gBAAiB,CAClCa,YAAa,EACbC,UAAW7pK,OAAOioK,kBAClBp8K,KAAM,OAERS,KAAKy8L,gBAAgBjK,sBAEvB9d,EAAIrrE,QAAQokD,EAAOukG,qBAAsBpoP,EAC3C,CACF,CACA,oBAAAg2P,CAAqB55M,EAAOp8C,GAC1B,MAAM8zJ,EAAU9zJ,EAAKsD,GACf6vO,IAAa/8O,KAAK00K,IAAIgC,YAAYhZ,GAASloH,IACjD,GAAIunM,EAAU,CACZ,MAAMuT,EAActwP,KAAKswP,YAErBA,GAAetwP,KAAK68L,cAAgByzD,IACtCtwP,KAAKmrC,IAAI,sFACTnrC,KAAK68L,YAAcyzD,EAEvB,CACAtwP,KAAK+8O,SAAWA,EAChB/8O,KAAK2uL,MACP,CACA,eAAAyiE,CAAgBprM,EAAOp8C,GACrB,MAAMuxK,EAASvxK,EAAKuxK,OACpB,IAAIomF,EACAn5P,EACAo5P,GAAY,EAChB,IAAK,MAAMjiQ,KAAQ47K,EAAQ,CACzB,MAAMhd,EAAQgd,EAAO57K,GACrB,GAAiB,SAAb4+J,EAAMjxJ,IAIR,GAHA9E,EAAO7I,EACPgiQ,EAAapjG,EAEA,UAAT5+J,EAAkB,CACpB,MAAM0qM,EAAa9uB,EAAO57K,GACtB0qM,IACFjqM,KAAKswP,YAAcrmD,EAAWvgM,OAElC,OAEA83P,GAAY,CAEhB,CACIA,GAAaD,GACfvhQ,KAAKmrC,IAAI,8BAA8B/iC,gDACvCpI,KAAK68L,YAAc0kE,EAAW73P,QAE9B1J,KAAK68L,YAAc78L,KAAKwwK,KAE5B,CACA,cAAAsf,CAAe9pI,EAAOp8C,GACpB,MAAM,KACJypJ,EAAI,KACJlmH,GACEvjC,EACJ,GAAIypJ,GAAQA,EAAK9zJ,OAAS+0K,GACxB,OAEF,GAAIt0K,KAAK++L,mBAAmB1rC,GAO1B,OAJArzJ,KAAK+8B,KAAK,YAAYs2H,EAAKjC,KAAKjkH,EAAO,OAASA,EAAK15B,MAAQ,eAAe4/I,EAAK9oF,qDAAqDvqE,KAAK6P,cACvI7P,KAAK6P,QAAUmtB,KACjBh9B,KAAK6P,MAAQmtB,KAIjB,MAAMg1H,EAAQ7kH,EAAOA,EAAK6kH,MAAQqB,EAAKrB,MACvChyJ,KAAKw/P,aAAeviQ,KAAKgpC,MAAM,EAAI+rH,EAAMlC,OAASkC,EAAM9B,UAAUljJ,IAAMglJ,EAAMtvC,QAAQxtF,QACtE,gBAAZm+H,EAAKjC,KACPpxJ,KAAK8kL,aAAezxB,GAEtBrzJ,KAAKqgM,qBAAqBhtC,EAAMlmH,EAClC,CACA,OAAAlgC,CAAQ+4C,EAAOp8C,GACb,IAAI64O,EACJ,GAAI74O,EAAK+uK,MACP34K,KAAK6P,MAAQmtB,QAGf,OAAQpzB,EAAK4sB,SACX,KAAKm3H,EAAaipC,SAClB,KAAKjpC,EAAaq6C,mBAClB,KAAKr6C,EAAaoyC,mBAClB,KAAKpyC,EAAaonC,gBAClB,KAAKpnC,EAAa21B,kBAClB,KAAK31B,EAAa40F,eAClB,KAAK50F,EAAa41B,iBAChBvjL,KAAKgnM,yBAAyB1yB,GAAwB1qK,GACtD,MACF,KAAK+jJ,EAAaqrB,iBAClB,KAAKrrB,EAAaorB,mBAClB,KAAKprB,EAAa6rB,oBAEX5vK,EAAK0/K,YAActpL,KAAK6P,QAAUmtB,KAA0D,OAAjCylN,EAAgB74O,EAAK3C,cAAmB,EAASw7O,EAAcljP,QAAU80K,KACvIr0K,KAAK6P,MAAQmtB,IAEf,MACF,KAAK2wH,EAAa8nF,oBAClB,KAAK9nF,EAAasxF,kBAChB,IAAKr1O,EAAKhC,QAA0B,SAAhBgC,EAAKhC,OACvB,OAEF,GAAIgC,EAAK4sB,UAAYm3H,EAAa8nF,oBAEhC,YADAz1O,KAAKs+L,oBAGHt+L,KAAKsnM,2BAA2B19L,IAClC5J,KAAK2/L,gBAAgB,EAAGjsL,OAAOioK,mBAEjC,MACF,KAAKhuB,EAAa60C,mBAChBxiM,KAAKkoM,mBAAmBt+L,GAG9B,CAGA,WAAAi2P,GACE,MAAM,MACJrvF,EAAK,cACL2uF,GACEn/P,KACJ,GAAKwwK,GAAU2uF,GAAkB3uF,EAAMm1B,WAAvC,CAIA,GAAI3lM,KAAKg9L,iBAAmBnK,GAAaE,YAAYviB,GAAOrwK,OAAQ,CAElE,MAAMo9P,EAAav9P,KAAK6P,QAAUmtB,GAAah9B,KAAK08L,YAAc,KAClEyiE,EAAc7B,KAAKt9P,KAAK88L,gBAAiBygE,EAC3C,CACAv9P,KAAK88L,gBAAkBtsB,EAAM3iD,WAN7B,CAOF,CACA,0BAAA8xI,GACE3/P,KAAK6P,MAAQmtB,GAGRh9B,KAAKg9L,iBACRh9L,KAAKo9L,oBAAqB,EAC1Bp9L,KAAK+8L,iBAAmB/8L,KAAK80K,eAE/B90K,KAAKmvL,eACP,CACA,eAAAkiE,CAAgBrrM,GAAO,KACrBzmD,IAEA,GAAIA,IAAS4wJ,GAA+BnwJ,KAAKq7P,YAAcr7P,KAAK+8O,SAAU,CAC5E,MAAMlgD,GAAet9L,IAAS4wJ,EAA8BnwJ,KAAKswP,YAActwP,KAAK68L,cAAgB78L,KAAKwwK,MACzGxwK,KAAKwnM,mBAAmB3K,EAAat9L,EAAM+0K,IAC3Ct0K,KAAK2uL,MACP,CACF,CACA,eAAAwvC,CAAgBn4K,EAAOp8C,GACjB5J,KAAKuqE,OAAS,GAAKvqE,KAAK08L,cAC1B18L,KAAKuqE,MAAQvqE,KAAK08L,YAAYnyH,OAEhCvqE,KAAKuuK,OAAS3kK,EAAK2kK,MACrB,CACA,cAAAkzF,GACEzhQ,KAAKk/P,gBAAkBl/P,KAAKk/P,cAC9B,CAKA,cAAAr+D,GACE,MAAM,MACJrwB,GACExwK,KACJ,IAAKwwK,EACH,OAEF,MAAM3iD,EAAc2iD,EAAM3iD,YAC1B,IAAIinD,EAAgB90K,KAAK80K,cAGzB,GAAIA,GAAiB,GAAKjnD,EAAcinD,EAAe,CACrD,GAAItE,EAAMghF,QAER,YADAxxP,KAAKmrC,IAAI,qBAAqB2pI,yBAAqCjnD,KAGrE,MAAMl3G,EAAWk8K,GAAaE,YAAYviB,GAEpCqS,GADclsK,EAASxW,OAASwW,EAASsiC,MAAM,GAAK,GAC9B67H,EACxB+N,EAAQ,IAAMA,EAAQ7iL,KAAKq0D,OAAOgqI,eAAiBxb,EAAQ7iL,KAAKq0D,OAAO2wH,0BACzEhlL,KAAKmrC,IAAI,+BAA+B03I,2BACxC/N,GAAiB+N,EACjB7iL,KAAK80K,cAAgBA,GAEvB90K,KAAKmrC,IAAI,iCAAiC2pI,uBAAmCjnD,KAC7E2iD,EAAM3iD,YAAcinD,CACtB,CACF,CACA,cAAAusF,CAAehc,GACb,IAAIx1E,EAAa7vK,KAAKq0D,OAAOu9K,mBAAqByT,EAAax1E,WAS/D,OARI7vK,KAAKk/P,gBAAkBrvF,IACzB7vK,KAAKmrC,IAAI,wBAEP0kI,GADuC,IAArCA,EAAW1xI,QAAQ,aACR,YAEA,aAGV0xI,CACT,CACA,oBAAAswF,CAAqB9sG,EAAM9oF,GACzB8oF,EAAKpB,aAAc,EACnBjyJ,KAAK8+L,YAAYzrC,EAAM9oF,GAAO5lE,MAAKiF,IACjC,MAAM,IACJ8qK,GACE10K,KACJ,IAAK4J,GAAQ5J,KAAK++L,mBAAmB1rC,GACnC,OAEF9oF,EAAMi2G,cAAgB,EACtBxgL,KAAK6P,MAAQmtB,GACbh9B,KAAKo9L,oBAAqB,EAC1Bp9L,KAAKiyJ,aAAc,EACnB,MAAMD,EAAQqB,EAAKrB,MAEnBA,EAAM/B,QAAQh3G,MAAQ+4G,EAAM/B,QAAQjjJ,IAAMglJ,EAAM9B,UAAUj3G,MAAQ+4G,EAAM9B,UAAUljJ,IAAMsd,KAAKrS,YAAYgM,MACzGywJ,EAAIrrE,QAAQokD,EAAOsiC,YAAanmL,GAChCypJ,EAAKpB,aAAc,CAAK,GAE5B,CACA,uBAAA8/F,CAAwBjnC,GACtB,IAAImnC,EACJ,MAAM/kP,EAAK,QACL,IACJwnK,GACE10K,MACE,YACJqnN,EAAW,UACXnmB,GACE4pB,EACE7jN,EAAUjH,KAAK0iM,kBAAkBxB,GACvC,IAAKj6L,EAEH,YADAjH,KAAK2nM,wBAAwBzG,GAG/B,MAAM,KACJ7tC,EAAI,KACJlmH,EAAI,MACJo9B,GACEtjE,GACE,MACJwsJ,EAAK,KACLh9G,EAAI,IACJulH,EAAG,YACH9J,GACEm1D,GACE,QACJ7wL,GACE+zC,EAEEipF,EAAQxzJ,KAAK+8O,cAAW7gP,EAAYmrN,EAAY7zD,MAItD,GAAIxzJ,KAAK++L,mBAAmB1rC,GAC1BrzJ,KAAKy8L,gBAAgB5L,eAAex9B,OADtC,CAKA,GADArzJ,KAAK6P,MAAQmtB,GACTk1H,EAAa,CACf,GAAmB,MAAfA,GAAuBA,EAAYipB,OAAQ,CAC7C,MAAMg3E,EAAc9+F,EAAKnB,aAAemB,EACxCrzJ,KAAKoyP,mBAAmB7nL,EAAO2nF,EAAYipB,OAAQg3E,EAAajxD,GAChExsB,EAAIrrE,QAAQokD,EAAO4kG,0BAA2B,CAC5Ch/F,KAAM8+F,EACNjlP,KACAiuK,OAAQjpB,EAAYipB,QAExB,CAGA,MAAMmiB,EAAUprC,EAAYorC,QACtBzgC,EAAY3K,EAAY2K,UAC1BrP,EAAe8vC,KACjBt9L,KAAKs9L,QAAQjqC,EAAK7B,IAAM,CACtBwQ,SAAUs7B,EACVzgC,aAEF6X,EAAIrrE,QAAQokD,EAAOu+F,eAAgB,CACjC34F,OACAnmJ,KACAowL,UACAzgC,cAGN,CAGA,GAAIpJ,GAASj9H,GAAuB,gBAAZ68H,EAAKjC,GAAsB,CACjD,MAAMkgB,EAAW96I,EAAQy9H,UAAUZ,EAAKjC,GAAK,EAAI56H,EAAQq+H,SACnD6sG,EAAkBruG,EAAKjC,KAAO56H,EAAQq+H,QACtC8sG,GAA0BrwF,GAAYje,EAAK7B,GAAK8f,EAAS9f,GAC/D,IAAgC,IAA5B61D,EAAY9zD,YAAuB,CACrC,MAAM,SACJ9B,EAAQ,OACRC,EAAM,SACNC,EAAQ,OACRC,GACE6B,EACJ,GAAItmH,EACFA,EAAKsjH,kBAAkBgD,EAAMl0J,MAAQ,CACnCkyJ,WACAC,SACAC,WACAC,eAMF,GAHI6B,EAAMyqD,eAAiBzqD,EAAMF,aAAgC,IAAjB2tC,EAAUh0L,KAAay0P,IACrE3hQ,KAAKy/P,gBAAiB,GAEpBhsG,EAAMwvC,SAAWxvC,EAAMF,YAAa,CAGtC,MAAMi1B,EAAaxoL,KAAK+/P,uBAClBnhE,GAAoBpW,EAAaA,EAAWx7K,IAAMhN,KAAKsjM,mBAAqBtjM,KAAKq0D,OAAOgqI,cACxFn/K,EAAYu0I,EAAMiqD,iBAAmBjqD,EAAMiqD,iBAAmBjsD,EACpE,IAAKiwG,GAAmB9iE,EAAmB1/K,EAAYlf,KAAKq0D,OAAOgqI,gBAAkBsjE,EAEnF,YADA3hQ,KAAK4hQ,UAAUvuG,GAENsuG,IAETtuG,EAAK1kC,KAAM,GAGb0kC,EAAKJ,wBAAwBQ,EAAMl0J,KAAM8zJ,EAAKp6G,MAAOy4G,EAAQ2B,EAAKp6G,MAAO24G,GAAQ,EACnF,MAAW8vG,GAAmBjwG,EA/tCb,IAiuCf4B,EAAK1kC,KAAM,GAGf0kC,EAAKJ,wBAAwBQ,EAAMl0J,KAAMkyJ,EAAUC,EAAQC,EAAUC,GACjE5xJ,KAAKw/L,oBACPx/L,KAAKw/L,kBAAoBnsC,GAE3BrzJ,KAAK6iM,mBAAmBpvC,EAAOJ,EAAMlmH,EAAM+zJ,EAAWwgE,GAAmBC,EAC3E,KAAO,KAAID,IAAmBC,EAK5B,YADA3hQ,KAAK4hQ,UAAUvuG,GAFfA,EAAK1kC,KAAM,CAIb,CACF,CACA,GAAI6kC,EAAO,CACT,MAAM,SACJ/B,EAAQ,OACRC,EAAM,SACNC,EAAQ,OACRC,GACE4B,EACArmH,IACFA,EAAKsjH,kBAAkBN,GAA+B,CACpDsB,WACAC,SACAC,WACAC,WAGJyB,EAAKJ,wBAAwB9C,EAA6BsB,EAAUC,EAAQC,EAAUC,GACtF5xJ,KAAK6iM,mBAAmBrvC,EAAOH,EAAMlmH,EAAM+zJ,EAC7C,CACA,GAAI1qK,GAAkB,MAAPwlI,GAA+C,OAA/Bi2F,EAAej2F,EAAI2F,UAAoBswF,EAAa9xP,OAAQ,CACzF,MAAMmyP,EAAa,CACjBplP,KACAmmJ,OACA78H,UACAmrI,QAAS3F,EAAI2F,SAEf+S,EAAIrrE,QAAQokD,EAAO8uB,sBAAuB+1E,EAC5C,CACA,GAAI97N,GAAWigB,EAAM,CACnB,MAAM87M,EAAc,CAClBrlP,KACAmmJ,OACA78H,UACAmrI,QAASlrH,EAAKkrH,SAEhB+S,EAAIrrE,QAAQokD,EAAOo+F,sBAAuB0G,EAC5C,CAzHA,CA0HF,CACA,kBAAAH,CAAmB/M,EAAclqE,EAAQ9nB,EAAM6tC,GAC7C,GAAIlhM,KAAK6P,QAAUmtB,GACjB,OAEFh9B,KAAKq7P,YAAclgF,EAAO3nB,QAAU2nB,EAAO1nB,MAGvCzzJ,KAAK+8O,WAAa/8O,KAAKq7P,kBAClBlgF,EAAO3nB,MAGhB,MAAM,MACJA,EAAK,MACLC,EAAK,WACLC,GACEynB,EACJ,GAAI3nB,EAAO,CACT,IAAIqc,EAAaw1E,EAAax1E,WAC9B,MAAMgyF,EAAKxpN,UAAUC,UAAUjW,cAC/B,GAAIriC,KAAK0/P,iBAAkB,CACrB7vF,IAEAA,GADuC,IAArCA,EAAW1xI,QAAQ,aACR,YAEA,aAMjB,MAAM2jO,EAAgBtuG,EAAM5+D,SACxBktK,GAAiB,iBAAkBA,GAAuD,KAArCA,EAAc32D,cAAgB,KAAuC,IAA3B02D,EAAG1jO,QAAQ,aAC5G0xI,EAAa,YAEjB,CAEIA,IAAmD,IAArCA,EAAW1xI,QAAQ,eAAkD,IAA3B0jO,EAAG1jO,QAAQ,YAAyC,eAApBq1H,EAAMx7F,YAEhG63G,EAAa,YACb7vK,KAAKmrC,IAAI,iCAAiC0kI,MAExCw1E,EAAax1E,YAAcw1E,EAAax1E,aAAeA,GACzD7vK,KAAKmrC,IAAI,kCAAkCk6M,EAAax1E,oBAAoBA,MAE9Erc,EAAMma,WAAakC,EACnBrc,EAAMtmJ,GAAK,OACXlN,KAAKmrC,IAAI,gCAAgCqoH,EAAMx7F,6CAA6C63G,GAAc,MAAMw1E,EAAax1E,YAAc,MAAMrc,EAAMgL,SACzJ,CACI/K,IACFA,EAAMka,WAAa03E,EAAat4E,WAChCtZ,EAAMvmJ,GAAK,OACXlN,KAAKmrC,IAAI,gCAAgCsoH,EAAMz7F,oCAAoCqtL,EAAat4E,YAAc,MAAMtZ,EAAM+K,WAExH9K,GACF1zJ,KAAKmrC,IAAI,qCAAqCuoH,EAAW17F,oCAAoCqtL,EAAa54E,UAAU/Y,EAAW8K,UAEjIx+J,KAAK00K,IAAIrrE,QAAQokD,EAAO2wE,cAAejjD,GAEvCx/K,OAAOwK,KAAKg1K,GAAQ38K,SAAQq3N,IAC1B,MACM3jE,EADQipB,EAAO06C,GACK3jE,YACP,MAAfA,GAAuBA,EAAY57C,YACrCt2G,KAAK00K,IAAIrrE,QAAQokD,EAAOu1C,iBAAkB,CACxCzjM,KAAMs2N,EACNjsN,KAAMsoJ,EACNmB,OACAlmH,KAAM,KACN+zJ,YACAt5L,OAAQyrJ,EAAK9zJ,MAEjB,IAGFS,KAAKmvL,eACP,CACA,oBAAA4wE,GACE,OAAO//P,KAAKq/L,iBAAiBr/L,KAAK68L,YAAc78L,KAAK68L,YAAc78L,KAAKwwK,MAAO8D,GACjF,CACA,SAAAstF,CAAUvuG,GACRrzJ,KAAKy/P,gBAAiB,EAEtBz/P,KAAKw/L,kBAAoBnsC,EACzBrzJ,KAAK29L,kBACL39L,KAAKkjM,eAAe7vC,GACpBrzJ,KAAKy8L,gBAAgB5L,eAAex9B,GACpCrzJ,KAAK8kL,aAAe,KACpB9kL,KAAK+8L,iBAAmB1pC,EAAKp6G,MAC7Bj5C,KAAK6P,MAAQmtB,EACf,CACA,oBAAA8iO,GACE,MAAMrsG,EAAQzzJ,KAAKwwK,MACnB,IAAIgwF,EAAqB,KACzB,GAAI/sG,GAASA,EAAMkyC,WAAa,IAAuB,IAAlBlyC,EAAM+9F,QAAmB,CAC5D,MAAM3jI,EAAc4lC,EAAM5lC,YAkB1B,GAVIglE,GAAaC,WAAWr/B,EAAO5lC,GACjC2yI,EAAqBxgQ,KAAKiwL,gBAAgBpiE,GACjCglE,GAAaC,WAAWr/B,EAAO5lC,EAAc,MAMtD2yI,EAAqBxgQ,KAAKiwL,gBAAgBpiE,EAAc,KAEtD2yI,EAAoB,CACtBxgQ,KAAKw/L,kBAAoB,KACzB,MAAM6/D,EAAcr/P,KAAKq/P,YACnB0C,EAAmBvB,EAAmBj2L,MACvC80L,GAAemB,EAAmBpvG,KAAOiuG,EAAYjuG,IAAMiuG,EAAY90L,QAAUw3L,IACpF/hQ,KAAKq/P,YAAcmB,EACnBxgQ,KAAK00K,IAAIrrE,QAAQokD,EAAOmvF,aAAc,CACpCvpF,KAAMmtG,IAEHnB,GAAeA,EAAY90L,QAAUw3L,GACxC/hQ,KAAK00K,IAAIrrE,QAAQokD,EAAOu0G,eAAgB,CACtCz3L,MAAOw3L,IAIf,CACF,CACF,CACA,aAAIjiC,GACF,MAAMzsE,EAAOrzJ,KAAK0gQ,iBAClB,OAAIrtG,EACKA,EAAK9oF,OAEN,CACV,CACA,eAAI03L,GACF,MAAMzxF,EAAQxwK,KAAKwwK,MACnB,OAAIA,EACKxwK,KAAKq/P,aAAer/P,KAAKiwL,gBAAgBzf,EAAM3iD,aAEjD,IACT,CACA,0BAAIq0I,GACF,MAAM1xF,EAAQxwK,KAAKwwK,MACnB,GAAIA,EAAO,CACT,MAAM3iD,EAAc2iD,EAAM3iD,YACpBwlC,EAAOrzJ,KAAKiiQ,YAClB,GAAI5uG,GAAQ7F,EAAe3/B,IAAgB2/B,EAAe6F,EAAKnC,iBAAkB,CAC/E,MAAMixG,EAAS9uG,EAAKnC,gBAA+C,KAA5BrjC,EAAcwlC,EAAKp6G,OAC1D,OAAO,IAAIj1B,KAAKm+O,EAClB,CACF,CACA,OAAO,IACT,CACA,gBAAI9c,GACF,MAAMhyF,EAAOrzJ,KAAKiiQ,YAClB,OAAI5uG,EACKA,EAAK9oF,OAEN,CACV,CACA,oBAAIm2L,GACF,MAAMrtG,EAAOrzJ,KAAKiiQ,YAClB,OAAI5uG,EACKrzJ,KAAKogQ,sBAAsB/sG,GAE7B,IACT,CACA,kBAAIkoG,GACF,OAAOv7P,KAAKo/P,eACd,EAOF,MAAMgD,GAIJ,kBAAWtiP,GACT,MAAO,QACT,CAKA,qBAAOk9O,GACL,OAAOA,IACT,CAKA,kBAAO/2F,GACL,OAz+CJ,WACE,IAAK+2F,KACH,OAAO,EAET,MAAM5hB,EAAc7yE,KACpB,MAA+E,mBAAjD,MAAf6yE,OAAsB,EAASA,EAAYxuE,mBAAoC,CAAC,wBAAyB,gBAAiB,iBAAiBxqK,MAAKigQ,GAA2BjnB,EAAYxuE,gBAAgBC,GAAiBw1F,EAAyB,aAAc,CAAC,YAAa,QAAQjgQ,MAAKkgQ,GAA0BlnB,EAAYxuE,gBAAgBC,GAAiBy1F,EAAwB,YAC1Y,CAm+CWr8F,EACT,CAKA,qBAAOsC,GACL,OAAOA,IACT,CACA,iBAAW9a,GACT,OAAOA,CACT,CACA,qBAAWC,GACT,OAAOA,CACT,CACA,uBAAWC,GACT,OAAOA,CACT,CAKA,wBAAW40G,GACT,OAAKH,GAAI7iL,cAGF6iL,GAAI7iL,cAFFoyJ,EAGX,CAKA,wBAAW4wB,CAAchjL,GACvB6iL,GAAI7iL,cAAgBA,CACtB,CAMA,WAAAx0D,CAAYg0J,EAAa,CAAC,GAIxB/+K,KAAKq0D,YAAS,EAIdr0D,KAAK++K,gBAAa,EAClB/+K,KAAKwiQ,oBAAiB,EACtBxiQ,KAAKyiQ,wBAAqB,EAC1BziQ,KAAKw2P,SAAU,EACfx2P,KAAK0iQ,SAAW,IAAIr6C,GACpBroN,KAAK2iQ,mBAAqB,EAC1B3iQ,KAAK4iQ,cAAgB,KACrB5iQ,KAAK0yO,mBAAgB,EACrB1yO,KAAK+6O,sBAAmB,EACxB/6O,KAAK+hP,wBAAqB,EAC1B/hP,KAAK6iQ,uBAAoB,EACzB7iQ,KAAK8iQ,qBAAkB,EACvB9iQ,KAAKw9N,sBAAmB,EACxBx9N,KAAK0yP,0BAAuB,EAC5B1yP,KAAKgpP,6BAA0B,EAC/BhpP,KAAKwzP,mBAAgB,EACrBxzP,KAAKyzP,oBAAiB,EACtBzzP,KAAK+iQ,OAAS,KACd/iQ,KAAKw1C,IAAM,KACXx1C,KAAKgjQ,yBAAsB,EAv41B/B,SAAoBC,EAAa/1P,GAE/B,GAAuB,iBAAZ2qC,UAAwC,IAAhBorN,GAA+C,iBAAhBA,EAA0B,EAP9F,SAA+BA,KAAgBvnO,GAC7CA,EAAUl9B,SAAQ,SAAUe,GAC1BsuJ,EAAetuJ,GAAQ0jQ,EAAY1jQ,GAAQ0jQ,EAAY1jQ,GAAMyP,KAAKi0P,GATtE,SAAwB1jQ,GACtB,MAAMm6B,EAAOpP,KAAKutB,QAAQt4C,GAC1B,OAAIm6B,EACKA,EAAK1qB,KAAKsb,KAAKutB,QAAS,IAAIt4C,QAE9BwlE,CACT,CAGqFm+L,CAAe3jQ,EAClG,GACF,CAII4jQ,CAAsBF,EAGtB,QAAS,MAAO,OAAQ,OAAQ,SAGhC,IACEp1G,EAAe1iH,IAAI,iEACrB,CAAE,MAAOzuC,GACPmxJ,EAAiBD,CACnB,CACF,MACEC,EAAiBD,CAErB,CAu31BIw1G,CAAWrkF,EAAW3wJ,QAAS,GAC/B,MAAMimC,EAASr0D,KAAKq0D,OAj6ExB,SAAqBkrB,EAAew/F,GAClC,IAAKA,EAAWF,uBAAyBE,EAAWL,+BAAiCK,EAAWH,kBAAoBG,EAAWN,wBAC7H,MAAM,IAAI3gL,MAAM,qIAElB,QAA+C5B,IAA3C6iL,EAAWL,mCAAmFxiL,IAArC6iL,EAAWF,uBAAuCE,EAAWL,6BAA+BK,EAAWF,uBAClK,MAAM,IAAI/gL,MAAM,qGAElB,QAA0C5B,IAAtC6iL,EAAWN,8BAAyEviL,IAAhC6iL,EAAWH,kBAAkCG,EAAWN,wBAA0BM,EAAWH,kBACnJ,MAAM,IAAI9gL,MAAM,2FAElB,MAAMulQ,EAAevK,GAAQv5K,GAIvB+jL,EAAqB,CAAC,UAAW,WAAY,aAAc,mBAsCjE,MAvC+B,CAAC,WAAY,QAAS,QAE9B9kQ,SAAQe,IAC7B,MAAMgkQ,EAAa,GAAY,UAAThkQ,EAAmB,WAAaA,cAChDikQ,OAA0CtnQ,IAA3B6iL,EAAWwkF,GAC1B1jO,EAAS,GACfyjO,EAAmB9kQ,SAAQg5N,IACzB,MAAMisC,EAAoB,GAAGlkQ,WAAci4N,IACrCn7N,EAAQ0iL,EAAW0kF,GACzB,QAAcvnQ,IAAVG,GAAuBmnQ,EAAc,CACvC3jO,EAAOh+B,KAAK4hQ,GACZ,MAAM7wN,EAAWywN,EAAaE,GAAYlhP,QAI1C,OAHA08J,EAAWwkF,GAAc,CACvBlhP,QAASuwB,GAEH4kL,GACN,IAAK,UACH5kL,EAASmkI,cAAgB16K,EACzBu2C,EAASkkI,qBAAuBz6K,EAChC,MACF,IAAK,WACHu2C,EAAS4jI,WAAWW,YAAc96K,EAClCu2C,EAAS2jI,aAAaY,YAAc96K,EACpC,MACF,IAAK,aACHu2C,EAAS4jI,WAAWa,aAAeh7K,EACnCu2C,EAAS2jI,aAAac,aAAeh7K,EACrC,MACF,IAAK,kBACHu2C,EAAS4jI,WAAWe,gBAAkBl7K,EACtCu2C,EAAS2jI,aAAagB,gBAAkBl7K,EAG9C,KAEEwjC,EAAO1/B,QACT2gF,EAAO/jD,KAAK,mBAAmB8C,EAAOxiC,KAAK,4CAA4CkmQ,OAAgBxkO,KAAKL,UAAUqgJ,EAAWwkF,MACnI,IAEKl2G,EAAeA,EAAe,CAAC,EAAGg2G,GAAetkF,EAC1D,CA42EiC2kF,CAAYtB,GAAIG,cAAexjF,GAC5D/+K,KAAK++K,WAAaA,EACd1qH,EAAO2tI,aA71Ef,SAA6B3tI,GAC3B,MAAMsvM,EAAgBtvM,EAAOi9F,OACzBqyG,IAAkBl0B,IAAek0B,IAAkBv1B,IAErDttJ,EAAO31C,IAAI,yEACXkpB,EAAO2tI,aAAc,GAlqBzB,WACE,GAEA13K,KAAK8wH,OAAS9wH,KAAKulN,iBAAmBvlN,KAAKs5O,gBAAkBt5O,KAAK6mN,QAChE,IAEE,OADA,IAAI7mN,KAAKs5O,eAAe,CAAC,IAClB,CACT,CAAE,MAAOlnQ,GAET,CAEF,OAAO,CACT,CAwpBmCmnQ,KAE7BxvM,EAAOi9F,OAASm+E,GAChBp7K,EAAO2tI,aAAc,EACrB3tI,EAAOinI,mBAAoB,EAC3Bx6G,EAAO31C,IAAI,8DAGjB,CA+0EM24N,CAAoBzvM,GAItB,MACEq+K,cAAeqxB,EACfhpB,iBAAkBipB,EAClBjiB,mBAAoBkiB,EACpBjiB,gBAAiBkiB,EACjB7f,cAAe8f,GACb9vM,EACE2tL,EAAkB,IAAIkiB,EAAsBlkQ,MAC5C0yO,EAAgB1yO,KAAK0yO,cAAgB,IAAIqxB,EAAoB/jQ,MAC7D+6O,EAAmB/6O,KAAK+6O,iBAAmB,IAAIipB,EAAuBhkQ,MACtE+hP,EAAqB/hP,KAAK+hP,mBAAqB,IAAIkiB,EAAyBjkQ,MAC5EqkP,EAAgB,IAAI8f,EAAoBnkQ,MACxCokQ,EAAiB,IAAI3vF,GAAez0K,MACpCqkQ,EAAqB,IAAIvoF,GAAmB97K,MAC5CskQ,EAAkCjwM,EAAO+hM,0BAEzC9nF,EAAkBg2F,EAAkC,IAAIA,EAAgCtkQ,MAAQ,KAChG8iQ,EAAkB9iQ,KAAK8iQ,gBAAkB,IAAI9J,GAAgBh5P,KAAMsuK,GAEnEmuB,EAAkB,IAAIpN,GAAgBrvL,MACtCuxJ,EAAY,IAAI2qG,GAAUl8P,KAAKq0D,QAC/BmpK,EAAmBx9N,KAAKw9N,iBAAmB,IAAIyhC,GAAiBj/P,KAAMy8L,EAAiBlrC,GAG7FwwF,EAAmBtkB,oBAAoBD,GAEvC6mB,EAAc5mB,oBAAoBD,GAClC,MAAMilC,EAAqB,CAAC2B,EAAgBtB,EAAiBtlC,GACzDlvD,GACFm0F,EAAmB1vN,OAAO,EAAG,EAAGu7H,GAElCtuK,KAAKyiQ,mBAAqBA,EAC1B,MAAMD,EAAiB,CAAC9vB,EAAeqI,EAAkBgH,EAAoBsC,EAAeggB,EAAoB5nE,GAChHz8L,KAAK0yP,qBAAuB1yP,KAAKukQ,iBAAiBlwM,EAAOq+L,qBAAsB+P,GAC/E,MAAM+B,EAA6BnwM,EAAOg8L,sBACtCmU,GACF/B,EAAmB5gQ,KAAK,IAAI2iQ,EAA2BxkQ,KAAMy8L,EAAiBlrC,IAGhFvxJ,KAAKgpP,wBAA0BhpP,KAAKukQ,iBAAiBlwM,EAAO20L,wBAAyByZ,GACrF,MAAMgC,EAAgCpwM,EAAOmzL,yBACzCid,GACFhC,EAAmB5gQ,KAAK,IAAI4iQ,EAA8BzkQ,KAAMy8L,EAAiBlrC,IAEnFvxJ,KAAKukQ,iBAAiBlwM,EAAOuhK,mBAAoB4sC,GACjDjxG,EAAUiiG,cAAgBxzP,KAAKwzP,cAAgBxzP,KAAKukQ,iBAAiBlwM,EAAOm/L,cAAegP,GAC3FxiQ,KAAKyzP,eAAiBzzP,KAAKukQ,iBAAiBlwM,EAAOo/L,eAAgB+O,GACnExiQ,KAAK6iQ,kBAAoB7iQ,KAAKukQ,iBAAiBrmF,GAAmBskF,GAClExiQ,KAAKwiQ,eAAiBA,EAItBC,EAAmB5gQ,KAAKmgP,GACxB,MAAMG,EAAaH,EAAgBG,WACT,mBAAfA,GACTniP,KAAKgiF,GAAGyrE,EAAO+qB,MAAO2pE,EAAYH,EAEtC,CACA,gBAAAuiB,CAAiBG,EAAiB9xM,GAChC,GAAI8xM,EAAiB,CACnB,MAAMC,EAAqB,IAAID,EAAgB1kQ,MAI/C,OAHI4yD,GACFA,EAAW/wD,KAAK8iQ,GAEXA,CACT,CACA,OAAO,IACT,CAGA,EAAA3iL,CAAGh8B,EAAOvnD,EAAUwI,EAAUjH,MAC5BA,KAAK0iQ,SAAS1gL,GAAGh8B,EAAOvnD,EAAUwI,EACpC,CACA,IAAAyhH,CAAK1iE,EAAOvnD,EAAUwI,EAAUjH,MAC9BA,KAAK0iQ,SAASh6I,KAAK1iE,EAAOvnD,EAAUwI,EACtC,CACA,kBAAA+hN,CAAmBhjK,GACjBhmD,KAAK0iQ,SAAS15C,mBAAmBhjK,EACnC,CACA,GAAA8yC,CAAI9yC,EAAOvnD,EAAUwI,EAAUjH,KAAM0oH,GACnC1oH,KAAK0iQ,SAAS5pK,IAAI9yC,EAAOvnD,EAAUwI,EAASyhH,EAC9C,CACA,SAAA8/F,CAAUxiK,GACR,OAAOhmD,KAAK0iQ,SAASl6C,UAAUxiK,EACjC,CACA,IAAAxnC,CAAKwnC,EAAO59C,EAAMw8P,GAChB,OAAO5kQ,KAAK0iQ,SAASlkP,KAAKwnC,EAAO59C,EAAMw8P,EACzC,CACA,OAAAv7J,CAAQrjD,EAAO4+M,GACb,GAAI5kQ,KAAKq0D,OAAOjmC,MACd,OAAOpuB,KAAKwe,KAAKwnC,EAAOA,EAAO4+M,GAE/B,IACE,OAAO5kQ,KAAKwe,KAAKwnC,EAAOA,EAAO4+M,EACjC,CAAE,MAAOhgQ,GAGP,GAFAk8E,EAAOl8E,MAAM,mDAAqDohD,EAAQ,qBAAuBphD,EAAM+Y,QAAU,2BAA4B/Y,IAExI5E,KAAKgjQ,oBAAqB,CAC7BhjQ,KAAKgjQ,qBAAsB,EAC3B,MAAMrqF,EAAQ3yH,IAAUynG,EAAO+qB,MAC/Bx4K,KAAKqpG,QAAQokD,EAAO+qB,MAAO,CACzBj5K,KAAMmuJ,EAAW60C,YACjB/rK,QAASm3H,EAAa60C,mBACtB7pB,QACA3yH,QACAphD,UAEF5E,KAAKgjQ,qBAAsB,CAC7B,CACF,CAEF,OAAO,CACT,CACA,aAAAt6C,CAAc1iK,GACZ,OAAOhmD,KAAK0iQ,SAASh6C,cAAc1iK,EACrC,CAKA,OAAAisB,GACE6O,EAAO31C,IAAI,WACXnrC,KAAKqpG,QAAQokD,EAAOo3G,gBAAY3oQ,GAChC8D,KAAK8kQ,cACL9kQ,KAAKgpN,qBACLhpN,KAAK2iQ,mBAAqB,EAC1B3iQ,KAAKw1C,IAAM,KACXx1C,KAAKyiQ,mBAAmBjkQ,SAAQ+uE,GAAaA,EAAU0E,YACvDjyE,KAAKyiQ,mBAAmBtiQ,OAAS,EACjCH,KAAKwiQ,eAAehkQ,SAAQ+uE,GAAaA,EAAU0E,YACnDjyE,KAAKwiQ,eAAeriQ,OAAS,EAE7B,MAAMk0D,EAASr0D,KAAKq0D,OACpBA,EAAOg6K,SAAWh6K,EAAOq7K,gBAAaxzO,EAEtC8D,KAAK++K,WAAa,IACpB,CAKA,WAAAgmF,CAAYv0F,GACV1vF,EAAO31C,IAAI,eACXnrC,KAAK+iQ,OAASvyF,EACdxwK,KAAKqpG,QAAQokD,EAAOqwE,gBAAiB,CACnCttD,MAAOA,GAEX,CAKA,WAAAs0F,GACEhkL,EAAO31C,IAAI,eACXnrC,KAAKqpG,QAAQokD,EAAO4uB,qBAAiBngL,GACrC8D,KAAK+iQ,OAAS,IAChB,CAKA,UAAAiC,CAAWxvN,GACTx1C,KAAK+0K,WACL,MAAMvE,EAAQxwK,KAAKwwK,MACby0F,EAAejlQ,KAAKw1C,IACpB0vN,EAAgBllQ,KAAKw1C,IAAM43G,EAAkBd,iBAAiBhiI,KAAK7f,SAAS0iH,KAAM33E,EAAK,CAC3Fg3G,iBAAiB,IAEnBxsJ,KAAK2iQ,mBAAqB,EAC1B3iQ,KAAK4iQ,cAAgB,KACrB9hL,EAAO31C,IAAI,cAAc+5N,KACrB10F,GAASy0F,IAAiBA,IAAiBC,GAAiBllQ,KAAK+6O,iBAAiBqB,oBACpFp8O,KAAK8kQ,cACL9kQ,KAAK+kQ,YAAYv0F,IAGnBxwK,KAAKqpG,QAAQokD,EAAOwnB,iBAAkB,CACpCz/H,IAAKA,GAET,CASA,SAAAq/H,CAAUC,GAAgB,GACxBh0F,EAAO31C,IAAI,aAAa2pI,MACxB90K,KAAKw2P,SAAU,EACfx2P,KAAK69L,kBACL,IAAK,IAAI/5L,EAAI,EAAGA,EAAI9D,KAAKyiQ,mBAAmBtiQ,SAC1CH,KAAKyiQ,mBAAmB3+P,GAAG+wK,UAAUC,GAChC90K,KAAKw2P,SAAYx2P,KAAKyiQ,oBAFuB3+P,KAMtD,CAKA,QAAAixK,GACEj0F,EAAO31C,IAAI,YACXnrC,KAAKw2P,SAAU,EACf,IAAK,IAAI1yP,EAAI,EAAGA,EAAI9D,KAAKyiQ,mBAAmBtiQ,SAC1CH,KAAKyiQ,mBAAmB3+P,GAAGixK,YACvB/0K,KAAKw2P,SAAYx2P,KAAKyiQ,oBAFwB3+P,KAMtD,CAKA,eAAA+5L,GACE/8G,EAAO31C,IAAI,oBACXnrC,KAAKyiQ,mBAAmBjkQ,SAAQq9H,IAC1BA,EAAWgiE,iBACbhiE,EAAWgiE,iBACb,GAEJ,CAMA,cAAAD,GACE98G,EAAO31C,IAAI,mBACXnrC,KAAKyiQ,mBAAmBjkQ,SAAQq9H,IAC1BA,EAAW+hE,gBACb/hE,EAAW+hE,gBACb,GAEJ,CAKA,cAAA6jE,GACE3gL,EAAO31C,IAAI,kBACXnrC,KAAKw9N,iBAAiBikC,gBACxB,CAQA,iBAAAvd,GACEpjK,EAAO31C,IAAI,qBACX,MAAMqlI,EAAQxwK,KAAK+iQ,OACnB/iQ,KAAK8kQ,cACDt0F,GACFxwK,KAAK+kQ,YAAYv0F,EAErB,CACA,WAAAmqE,CAAYthE,GACVr5K,KAAK8iQ,gBAAgBnoB,YAAYthE,EACnC,CAKA,UAAI9K,GAEF,OADevuK,KAAK8iQ,gBAAgBv0F,QACX,EAC3B,CAKA,gBAAI82E,GACF,OAAOrlP,KAAKw9N,iBAAiB6nB,YAC/B,CAKA,gBAAIA,CAAaxvH,GACf/0C,EAAO31C,IAAI,oBAAoB0qF,KAC/B71H,KAAK8iQ,gBAAgBlH,YAAc/lI,EACnC71H,KAAKw9N,iBAAiB6iC,sBACxB,CAKA,aAAIvgC,GACF,OAAO9/N,KAAKw9N,iBAAiBsC,SAC/B,CAQA,aAAIA,CAAUjqG,GACZ/0C,EAAO31C,IAAI,iBAAiB0qF,KAC5B71H,KAAK8iQ,gBAAgBlH,YAAc/lI,EACnC71H,KAAKw9N,iBAAiBwB,iBACxB,CAKA,aAAI8Y,GACF,OAAO93O,KAAK8iQ,gBAAgBv4L,KAC9B,CAQA,aAAIutK,CAAUjiH,GACZ/0C,EAAO31C,IAAI,iBAAiB0qF,KAC5B71H,KAAK8iQ,gBAAgBlH,YAAc/lI,CACrC,CAKA,iBAAIs+G,GACF,OAAOn0O,KAAK8iQ,gBAAgB3uB,aAC9B,CAMA,iBAAIA,CAAc5pK,GAChBvqE,KAAK8iQ,gBAAgB3uB,cAAgB5pK,CACvC,CAMA,cAAIizB,GACF,OAAOvgG,KAAKmrB,IAAIpoB,KAAK8iQ,gBAAgBtlK,WAAYx9F,KAAKwzO,aACxD,CAKA,cAAIh2I,CAAWq4B,GACb/0C,EAAO31C,IAAI,kBAAkB0qF,KAC7B71H,KAAK8iQ,gBAAgBtlK,WAAaq4B,CACpC,CAQA,cAAIw8G,GACF,MAAMA,EAAaryO,KAAK8iQ,gBAAgBzwB,WACxC,OAAoB,IAAhBA,GAAqBryO,KAAK0yO,cAAcmE,iBAAmB,EACtD72O,KAAK0yO,cAAcmE,gBAErBxE,CACT,CAQA,cAAIA,CAAWx8G,GACb/0C,EAAO31C,IAAI,kBAAkB0qF,MAEX,IAAdA,IACFA,EAAW54H,KAAKmrB,IAAIytG,EAAU71H,KAAKwzO,eAErCxzO,KAAK8iQ,gBAAgBzwB,WAAax8G,CACpC,CAMA,wBAAI6oG,GACF,OAAO1+N,KAAKq0D,OAAOqqK,oBACrB,CAKA,wBAAIA,CAAqBymC,GACvB,MAAMC,IAA4BD,EAC9BC,IAA4BplQ,KAAKq0D,OAAOqqK,uBACtC0mC,EACFplQ,KAAK+hP,mBAAmBpjB,gBAExB3+N,KAAK+hP,mBAAmBpkB,cACxB39N,KAAKq9N,kBAAoB,EACzBr9N,KAAKw9N,iBAAiBwB,mBAExBh/N,KAAKq0D,OAAOqqK,qBAAuB0mC,EAEvC,CAKA,oBAAI/nC,GACF,OAAOr9N,KAAK2iQ,iBACd,CAKA,qBAAInN,GACF,MAAM,YACJpiB,GACEpzO,KAAK0yO,cACT,OAAKU,EAGEA,EAAYppD,cAFV0W,GAGX,CACA,qBAAI80D,CAAkB3gB,GACpB70O,KAAK0yO,cAAcgC,eAAeG,EACpC,CAMA,gBAAInB,GACF,MAAM,YACJN,GACEpzO,KAAK0yO,cACT,OAAKU,EAGEA,EAAY9nD,kBAFVoV,GAGX,CAKA,oBAAI28B,CAAiBxnG,GACf71H,KAAK2iQ,oBAAsB9sI,IAC7B/0C,EAAO31C,IAAI,wBAAwB0qF,KACnC71H,KAAK2iQ,kBAAoB9sI,EACzB71H,KAAK8iQ,gBAAgB7G,sBAEzB,CACA,gBAAI7X,GACF,OAAOpkP,KAAK4iQ,aACd,CACA,gBAAIxe,CAAa/nP,IA34tBnB,SAAqBA,GACnB,OAAO0jL,GAAW5hJ,QAAQ9hC,IAAU,CACtC,EA04tBQgpQ,CAAYhpQ,IAAU2D,KAAK4iQ,gBAAkBvmQ,IAC/C2D,KAAK4iQ,cAAgBvmQ,EACrB2D,KAAK8iQ,gBAAgB7G,sBAEzB,CAKA,oBAAI3oB,GACF,OAA6C,IAAtCtzO,KAAK8iQ,gBAAgBlH,WAC9B,CAKA,eAAIA,GACF,OAAO57P,KAAK8iQ,gBAAgBlH,WAC9B,CAKA,gBAAIpoB,GACF,MAAM,OACJjlE,EACAl6G,QAAQ,eACNuxL,IAEA5lP,KACJ,IAAKuuK,EAAQ,OAAO,EACpB,MAAMxqK,EAAMwqK,EAAOpuK,OACnB,IAAK,IAAI2D,EAAI,EAAGA,EAAIC,EAAKD,IACvB,GAAIyqK,EAAOzqK,GAAGo9K,YAAc0kE,EAC1B,OAAO9hP,EAGX,OAAO,CACT,CAKA,gBAAIyyO,GACF,MAAM,OACJhoE,EAAM,iBACN8uD,EAAgB,aAChB+mB,GACEpkP,KACJ,IAAIu2O,EAMJ,GAJEA,GADwB,IAAtBlZ,GAAqC,MAAV9uD,GAAkBA,EAAOpuK,OACvCouK,EAAOpuK,OAAS,EAEhBk9N,EAEb+mB,EACF,IAAK,IAAItgP,EAAIyyO,EAAczyO,KAAM,CAC/B,MAAMg/O,EAAYv0E,EAAOzqK,GAAGgvI,MAAM,cAClC,GAAIgwG,GAAaA,GAAasB,EAC5B,OAAOtgP,CAEX,CAEF,OAAOyyO,CACT,CACA,kBAAID,GACF,OAAOt2O,KAAK0yO,cAAc4D,cAC5B,CAKA,iBAAI/B,GACF,OAAOv0O,KAAK0yO,cAAc6B,aAC5B,CASA,iBAAIA,CAAczU,GAChB9/N,KAAK0yO,cAAc6B,cAAgBzU,CACrC,CAKA,eAAIwlC,GACF,OAAOtlQ,KAAKw9N,iBAAiB0kC,sBAC/B,CACA,yBAAIz5E,GACF,OAAOzoL,KAAKw9N,iBAAiBuiC,sBAC/B,CAMA,cAAAhN,CAAeC,GACb,IAAIuS,EACJ,OAA8D,OAAtDA,EAAwBvlQ,KAAK0yP,2BAAgC,EAAS6S,EAAsBxS,eAAeC,EACrH,CAKA,iBAAAxI,CAAkBC,GAChB,IAAI+a,EAEJ,OAD0D,OAAzDA,EAAwBxlQ,KAAKgpP,0BAA4Cwc,EAAsBhb,kBAAkBC,GAC3G,IACT,CAKA,kBAAIxS,GACF,MAAMya,EAAuB1yP,KAAK0yP,qBAClC,OAAOA,EAAuBA,EAAqBza,eAAiB,EACtE,CAKA,eAAIvhE,GACF,MAAMg8E,EAAuB1yP,KAAK0yP,qBAClC,OAAOA,EAAuBA,EAAqBh8E,YAAc,EACnE,CAKA,cAAIwB,GACF,MAAMw6E,EAAuB1yP,KAAK0yP,qBAClC,OAAOA,EAAuBA,EAAqBx6E,YAAc,CACnE,CAKA,cAAIA,CAAWutF,GACb,MAAM/S,EAAuB1yP,KAAK0yP,qBAC9BA,IACFA,EAAqBx6E,WAAautF,EAEtC,CAKA,qBAAIlb,GACF,MAAMvB,EAA0BhpP,KAAKgpP,wBACrC,OAAOA,EAA0BA,EAAwBuB,kBAAoB,EAC/E,CAKA,kBAAI5zE,GACF,MAAMqyE,EAA0BhpP,KAAKgpP,wBACrC,OAAOA,EAA0BA,EAAwBryE,eAAiB,EAC5E,CAKA,iBAAIm1C,GACF,MAAMk9B,EAA0BhpP,KAAKgpP,wBACrC,OAAOA,EAA0BA,EAAwBl9B,eAAiB,CAC5E,CACA,SAAIt7C,GACF,OAAOxwK,KAAK+iQ,MACd,CAKA,iBAAIj3C,CAAc45C,GAChB,MAAM1c,EAA0BhpP,KAAKgpP,wBACjCA,IACFA,EAAwBl9B,cAAgB45C,EAE5C,CAKA,mBAAI7b,GACF,MAAMb,EAA0BhpP,KAAKgpP,wBACrC,QAAOA,GAA0BA,EAAwBa,eAC3D,CAKA,mBAAIA,CAAgBxtP,GAClB,MAAM2sP,EAA0BhpP,KAAKgpP,wBACjCA,IACFA,EAAwBa,gBAAkBxtP,EAE9C,CAKA,kBAAIyiL,GACF,OAAO9+K,KAAKq0D,OAAOyqH,cACrB,CAKA,kBAAIA,CAAet0G,GACjBxqE,KAAKq0D,OAAOyqH,eAAiBt0G,CAC/B,CAMA,oBAAIy0G,GACF,OAAOj/K,KAAK6iQ,kBAAkB5jF,gBAChC,CAMA,WAAIV,GACF,OAAOv+K,KAAK6iQ,kBAAkBtkF,OAChC,CAOA,cAAIC,GACF,OAAOx+K,KAAK6iQ,kBAAkBrkF,UAChC,CAKA,iBAAIG,GACF,OAAO3+K,KAAK6iQ,kBAAkBlkF,aAChC,CAKA,SAAI9nB,GACF,OAAO72J,KAAK6iQ,kBAAkBhsG,KAChC,CAKA,kBAAI0kG,GACF,OAAOv7P,KAAKw9N,iBAAiB+9B,cAC/B,EAEF6G,GAAI7iL,mBAAgB,uJCz/3BpB,MAIA,EAJe,CACbo5B,YAAa,cACb09B,iBAAkB,CAAC,aAAc,0ECFnC,QAAe,IAA0B,6DCGvCl6I,EAAOC,QAAU,EAAjB,wDCDF,QADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,igBAAqgB,KAAQ,UAAW,MAAS,4DCmC7rB,QAJA,SAAYC,EAAOipE,GACjB,OAAOjpE,IAAUipE,GAAUjpE,GAAUA,GAASipE,GAAUA,CAC1D,8EC5BA,MAAMqgM,EAKH,WAAA56O,CAAYxM,EAAQu0H,GACnB9yI,KAAKknD,QAAU3oC,EACfve,KAAK4lQ,aAAe,GACpB5lQ,KAAK6lQ,mBAAqB,IAAI1nQ,IAC9B6B,KAAK8lQ,YAAa,EAGlB9lQ,KAAK+lQ,YAAc1+M,aAAY,IAAMrnD,KAAK8B,SAA6B,IAApB9B,KAAK4lQ,cAEpD5lQ,KAAK+lQ,YAAYpyK,OAEnB3zF,KAAK+lQ,YAAYpyK,QAEnB3zF,KAAKgmQ,cAAgBlzH,CACvB,CAGC,KAAAhxI,GACC,MAAMmkQ,EAAoBjmQ,KAAKkmQ,uBACa,IAAxCD,EAAkBE,WAAWhmQ,SAGjCH,KAAK6lQ,mBAAqB,IAAI1nQ,IAC9B6B,KAAKknD,QAAQk/M,YAAYH,GAC3B,CAGC,oBAAAC,GACC,MAAMC,EAAa73P,MAAMwqB,KAAK94B,KAAK6lQ,mBAAmBtpP,UAEhD0pP,EAAoB,CACxBnzH,MAAO9yI,KAAKgmQ,cACZG,cAEF,OAAO,QAAkBF,EAC3B,CAGC,KAAAziQ,GACCwkD,cAAchoD,KAAK+lQ,aACnB/lQ,KAAK8lQ,YAAa,EAClB9lQ,KAAK8B,OACP,CAOC,2BAAAukQ,GACC,IAAKrmQ,KAAK8lQ,WACR,OAEF,MAAMhoP,GAAiB,UACjBwoP,EAAiBxoP,EAAeyoP,oBAElCD,GAAkBA,EAAel6P,SACnCpM,KAAKwmQ,6BAA6BF,EAAel6P,OAAQ,IAAI4X,MAG7DlG,EAAe2oP,uBAAkBvqQ,GAGrC,CAMC,4BAAAsqQ,CAA6Bp6P,EAAQsrB,GAEpC,MAAMgvO,EAAsB,IAAI1iP,KAAK0T,GAAMivO,WAAW,EAAG,GAIzD,IAAIC,EAAoB5mQ,KAAK6lQ,mBAAmBx0P,IAAIq1P,GAMpD,OALKE,IACHA,EAAoB,CAAEpQ,QAAS,IAAIxyO,KAAK0iP,GAAqBlpO,eAC7Dx9B,KAAK6lQ,mBAAmBlnQ,IAAI+nQ,EAAqBE,IAG3Cx6P,GACN,IAAK,UAEH,OADAw6P,EAAkBC,SAAWD,EAAkBC,SAAW,GAAK,EACxDD,EAAkBC,QAC3B,IAAK,KAEH,OADAD,EAAkB/lL,QAAU+lL,EAAkB/lL,QAAU,GAAK,EACtD+lL,EAAkB/lL,OAC3B,QAEE,OADA+lL,EAAkBE,SAAWF,EAAkBE,SAAW,GAAK,EACxDF,EAAkBE,QAE/B,uECpFF,QAAqE,IAAM,uBCnB3E3qQ,EAAOC,QAAU,IAA0B,iHCM3C,SAFU,OAAU,IAAM,gCCKlB,SAAW6c,GAAU,aAIbA,EAAOC,aAAa,SAAU,CACtCC,OAAQ,CACJC,WACI,qFAAqFhc,MACjF,KAERic,OAAQ,sHAAsHjc,MAC1H,KAEJkc,SAAU,mBAEdC,YACI,+DAA+Dnc,MAC3D,KAERoc,kBAAkB,EAClBC,SAAU,2DAA2Drc,MACjE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJC,GAAI,aACJC,IAAK,4BACLC,IAAK,mBACLC,KAAM,iCACNC,KAAM,wBAEVC,SAAU,CACNC,QAAS,aACTE,QAAS,eACTC,SAAU,cACVC,QAAS,aACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNpU,EAAG,gBACHqU,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,qBACxBC,QAAS,SAAUC,EAAQC,GACvB,IAAIC,EACW,IAAXF,EACM,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACW,IAAXA,EACE,IACA,IAIhB,MAHe,MAAXC,GAA6B,MAAXA,IAClBC,EAAS,KAENF,EAASE,CACpB,EACAC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAzFyCC,CAAQ,EAAQ,mFCa1D,QAjBkC,cAAiB,SAAUnS,EAAO8V,GAClE,IAAIpI,EAAW1N,EAAM0N,SACnBmvP,EAAoB78P,EAAM68P,kBACxBC,GAAY,QAAWpvP,GAGvBqvP,EAAS,eAAkB,SAAUhnP,IACvC,QAAQD,EAAK+mP,EAAoBA,EAAkB9mP,GAAQA,EAC7D,GAAG,CAAC8mP,IACAG,GAAY,QAAcD,GAAQ,QAAWrvP,IACjD,OAAOovP,EAAyB,eAAmBpvP,EAAU,CAC3DoI,IAAKknP,IACFtvP,CACP,mCCZEzb,EAAOC,QAAU,EAAjB,uCCHF,SAAS+qQ,EAAkBl+P,GACzB,IACE,OAAQ,IAAMw1D,SAAS1iE,SAASQ,KAAK0M,GAAGk1B,QAAQ,gBAClD,CAAE,MAAO5T,GACP,MAAO,mBAAqBthB,CAC9B,CACF,8PCCA,MAAMijH,EAAiBtpC,EAAQ,QAE/B,SAASzkB,EAAWE,EAAUC,GAC5B,GAAIhwD,MAAMie,QAAQ8xC,GAChB,OAAOA,EAAS92D,OAAO+2D,EAG3B,CAEA,MAIa8oM,EAAqB,KAChCC,EAAAA,EAAAA,KALyB,IAClBn7I,IAMLo7I,EAAAA,EAAAA,OACAC,EAAAA,EAAAA,OACA,CAACC,EAAUC,EAAap0P,KACtB,MAAMq0P,EAAgBD,aAAAA,EAAAA,EAAaE,OAGnC,IAAIlb,wUAAS,IAAK+a,GAoBlB,OAjBIA,EAASI,oBACXnb,EAASob,IACPpb,EACA+a,EAASI,kBAAkBjlQ,OAAO0Q,IAClC8qD,KAKAupM,aAAAA,EAAAA,EAAej4P,QACjBg9O,EAASob,IAAUpb,EAAQib,EAAcj4P,KAAM0uD,IAI7CupM,GAAiBA,EAAc/kQ,OAAO0Q,MACxCo5O,EAASob,IAAUpb,EAAQib,EAAc/kQ,OAAO0Q,IAAS8qD,IAEpDsuL,CAAM,IAIN9kG,EAAoB,CAACtqB,EAAMyqI,EAAW,QACjDT,EAAAA,EAAAA,IAAeD,KAAuBW,QACb7rQ,IAAvB6rQ,EAAa1qI,GAAsByqI,EAAWC,EAAa1qI,KAIlD2qI,GAA2BX,EAAAA,EAAAA,IACtC1/G,EAAkB,0BAKjBsgH,GACCA,EAAmB1xP,SAAS,IAAM0xP,EAAmB1xP,SAAS,GAC1D0xP,EAAmB1gQ,OAAO,GAC1B0gQ,oECpDR,QAfY,SAAe93O,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GACxD,IAAIujB,EAAS,GAEb,GADelC,EAAK3B,WAAa2B,EAAK3B,UAAYpL,EAAOvnB,eAAes0B,EAAKkgC,OAC/D,CACZ,GAAI,MAACh0D,IAA2C8zB,EAAK3B,SACnD,OAAOrY,IAET,IAAMqY,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAAS,SACjDzS,UACF,IAAMkD,KAAK4wB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,GACxC,IAAM+kC,MAAM1jB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,GAE7C,CACAqH,EAASkc,EACX,kDCdA,IAAIy/F,EAAe,KCEnB,IAAIo2I,EAAc,OAelB,QANA,SAAkBzlQ,GAChB,OAAOA,EACHA,EAAOiB,MAAM,EDHnB,SAAyBjB,GAGvB,IAFA,IAAIgR,EAAQhR,EAAOtC,OAEZsT,KAAWq+G,EAAalkG,KAAKnrB,EAAO2mC,OAAO31B,MAClD,OAAOA,CACT,CCFsB,CAAgBhR,GAAU,GAAGw1B,QAAQiwO,EAAa,IAClEzlQ,CACN,iCChBA,SAAS0lQ,EAAQ5mP,GACf,IAAI6mP,EACJ,OAAO7mP,SAA2E,QAAxC6mP,EAAmB7mP,EAAI8mP,mBAA8C,IAArBD,OAA8B,EAASA,EAAiB7rQ,KAAKglB,EACzJ,CAYO,SAAS+mP,EAAc/mP,GAC5B,OARK,SAAkBA,GACvB,OAAO4mP,EAAQ5mP,aAAgBgnP,UACjC,CAMSC,CAASjnP,GAAO4mP,EAAQ5mP,GAAO,IACxC,yGCdO,MAAMknP,EAAkB,CAAC1xK,EAAIjoF,EAAU,CAAC,IAAM,SAAgB45P,GACnE,SAASC,GAAuB,aAC9BC,KACGh/H,IAEH,MAAO3gI,EAAG0tF,EAAMh5B,IAAS,OAAeo5B,EAAI,IACvC6yC,EACHhzC,UAAW9nF,EAAQ8nF,YAEfiyK,EAAgB,IACjBj/H,EACH3gI,IACA0tF,OACAmyK,OAAQnrM,GAOV,OALI7uD,EAAQi6P,SAAWH,EACrBC,EAAc7oP,IAAM4oP,GACV95P,EAAQi6P,SAAWH,IAC7BC,EAAcD,aAAeA,IAExB,IAAA1lP,eAAcwlP,EAAkBG,EACzC,CAMA,OALAF,EAAuBrrM,YAAc,2BAA0B,QAAeorM,MAC9EC,EAAuBD,iBAAmBA,EAInC55P,EAAQi6P,SAAU,IAAAhlP,aAHN,CAAC7Z,EAAO8V,KAAQ,IAAAkD,eAAcylP,EAAwBhtQ,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CAChG0+P,aAAc5oP,OAEuC2oP,CACzD,kDC7BA,QADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+JAAmK,KAAQ,aAAc,MAAS,wPCQ1V,MAAM36I,EAAkBl6G,IAC7B,MAAMk1P,EAAU,IAAIC,EAAAA,EACd3/N,GAAS4/N,EAAAA,EAAAA,MAEf,GAAI5/N,EAAQ,CACV,MAAMjkC,GAAM8jQ,EAAAA,EAAAA,MACNC,EAAkB/jQ,EAAM,eAAeA,IAAQ,cAE/CgkQ,2UAAiB,IAClBn9I,IAAAA,4BAA8B,CACjC5iF,4VAGF0/N,EAAQrqQ,IAAIyqQ,EAAiBt1P,EAAOu1P,EACtC,MAEEL,EAAQrqQ,IAAI,cAAemV,EAAOo4G,IAAAA,wBACpC,EAQWI,EAAiB,KAC5B,MAAM08I,EAAU,IAAIC,EAAAA,EACd3/N,GAAS4/N,EAAAA,EAAAA,MAET7jQ,GAAM8jQ,EAAAA,EAAAA,MACZ,OAAO7/N,GAAUjkC,EACb2jQ,EAAQ33P,IAAI,eAAehM,KAC3B2jQ,EAAQ33P,IAAI,cAAc,EAQnBq8G,EAAoB,KAC/B,MAAMs7I,EAAU,IAAIC,EAAAA,EACd3/N,GAAS4/N,EAAAA,EAAAA,MAEf,GAAI5/N,EAAQ,CACV,MAAMjkC,GAAM8jQ,EAAAA,EAAAA,MACNC,EAAkB/jQ,EAAM,eAAeA,IAAQ,cACrD2jQ,EAAQz3P,OAAO63P,EAAiB,CAC9Bv2P,KAAM,IACNy2B,WAIF0/N,EAAQz3P,OAAO63P,EAAiB,CAC9Bv2P,KAAM,IACNy2B,OAAQ,sBAEZ,CAcA0/N,EAAQz3P,OAAO,cAAe,CAAEsB,KAAM,KAAM,oBChF9C,IAAIshF,EAAmB,EAAQ,QAe/Bh4F,EAAOC,QALP,SAAuBktQ,EAAUj1K,GAC/B,IAAI3qF,EAAS2qF,EAASF,EAAiBm1K,EAAS5/P,QAAU4/P,EAAS5/P,OACnE,OAAO,IAAI4/P,EAASv+O,YAAYrhB,EAAQ4/P,EAASh1K,WAAYg1K,EAAShzJ,WACxE,iCCVA,SAASizJ,EAAwCn5K,GAE/C,YAAmBl0F,IAAfk0F,OACF,EACSA,GAAc,KAAOA,EAAa,IACpC,UACEA,GAAc,IAChB,aAEP,CAEJ,8BCQAj0F,EAAOC,QAZP,SAAuB6F,EAAO5F,EAAO2Z,GAInC,IAHA,IAAIvC,EAAQuC,EAAY,EACpB7V,EAAS8B,EAAM9B,SAEVsT,EAAQtT,GACf,GAAI8B,EAAMwR,KAAWpX,EACnB,OAAOoX,EAGX,OAAQ,CACV,+GCjBEtX,EAAOC,QAAU,EAAjB,uCCFF,IAAIotQ,EAAc,EAAQ,QAEtBC,EAAoBhrM,SAAS7iE,UAC7BW,EAAOktQ,EAAkBltQ,KACzBmtQ,EAAsBF,GAAeC,EAAkBz6P,KAAKA,KAAKzS,EAAMA,GAE3EJ,EAAOC,QAAUotQ,EAAcE,EAAsB,SAAUxiQ,GAC7D,OAAO,WACL,OAAO3K,EAAK4K,MAAMD,EAAInJ,UACxB,CACF,kECVA,SAAS4rQ,EAAyBjtQ,EAAGuM,GACnC,GAAI,MAAQvM,EAAG,MAAO,CAAC,EACvB,IAAIyH,EACFC,EACAN,GAAI,OAA6BpH,EAAGuM,GACtC,GAAItN,OAAO2nB,sBAAuB,CAChC,IAAIzc,EAAIlL,OAAO2nB,sBAAsB5mB,GACrC,IAAK0H,EAAI,EAAGA,EAAIyC,EAAE1G,OAAQiE,IAAKD,EAAI0C,EAAEzC,GAAI6E,EAAEsN,SAASpS,IAAM,CAAC,EAAEqd,qBAAqBjlB,KAAKG,EAAGyH,KAAOL,EAAEK,GAAKzH,EAAEyH,GAC5G,CACA,OAAOL,CACT,kECQA,QAlBc,SAAiBqsB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,GACtDqhB,EAAKztB,UACHytB,EAAKztB,mBAAmB80B,QAI1BrH,EAAKztB,QAAQmsJ,UAAY,EACpB1+H,EAAKztB,QAAQkrB,KAAKvxB,IACrBg2B,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjvB,QAAQk5G,SAAUzrF,EAAKkiE,UAAWh2F,EAAO8zB,EAAKztB,WAEnD,iBAAjBytB,EAAKztB,UACN,IAAI80B,OAAOrH,EAAKztB,SACjBkrB,KAAKvxB,IACjBg2B,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjvB,QAAQk5G,SAAUzrF,EAAKkiE,UAAWh2F,EAAO8zB,EAAKztB,WAI1F,oICbO,MAAMknQ,GAAc,IAAA5pL,iBACpB,MAAM6pL,EACX,WAAA9+O,GACE/qB,KAAK8pQ,eAAiB,CAAC,CACzB,CACA,iBAAAlyK,CAAkBD,GAChBA,EAAWn5F,SAAQu4F,IACZ/2F,KAAK8pQ,eAAe/yK,KAAK/2F,KAAK8pQ,eAAe/yK,IAAM,EAAI,GAEhE,CACA,iBAAAgzK,GACE,OAAOpuQ,OAAOwK,KAAKnG,KAAK8pQ,eAC1B,qBCjBF3tQ,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIfA,EAAOC,aAAa,MAAO,CACjCC,OAAQ,kFAAkF/b,MACtF,KAEJmc,YACI,kFAAkFnc,MAC9E,KAERqc,SAAU,kDAAkDrc,MAAM,KAClEsc,cAAe,kDAAkDtc,MAAM,KACvEuc,YAAa,kDAAkDvc,MAAM,KACrEyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,cACTE,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,SACNpU,EAAG,OACHqU,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,cACJC,EAAG,MACHC,GAAI,WACJC,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAERM,KAAM,CACFC,IAAK,EACLC,IAAK,KAMhB,CA1DyCC,CAAQ,EAAQ,kCCKlD,SAAWpD,GAAU,aAYzB,SAAS+wP,EAAuBjuP,EAAQs7F,EAAe34G,GAUnD,MAAY,MAARA,EACO24G,EAAgB,SAAW,SAE3Bt7F,EAAS,KArBFusC,GAqB6BvsC,EApB3CkuP,EAQS,CACT/uP,GAAIm8F,EAAgB,yBAA2B,yBAC/Cj8F,GAAIi8F,EAAgB,sBAAwB,sBAC5C/7F,GAAI,iBACJE,GAAI,gBACJ6rG,GAAI,uBACJ3rG,GAAI,uBACJE,GAAI,gBAKgCld,GApBvBtB,MAAM,KAChBkrD,EAAM,IAAO,GAAKA,EAAM,KAAQ,GACjC2hN,EAAM,GACN3hN,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAChE2hN,EAAM,GACNA,EAAM,IANlB,IAAsB3hN,EACd2hN,CAsBR,CACA,IAAInjJ,EAAc,CACd,QACA,QACA,QACA,QACA,WACA,QACA,QACA,QACA,QACA,QACA,QACA,SAMK7tG,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJE,OAAQ,oFAAoFjc,MACxF,KAEJgc,WACI,kFAAkFhc,MAC9E,MAGZmc,YAAa,CAETF,OAAQ,gEAAgEjc,MACpE,KAEJgc,WACI,gEAAgEhc,MAC5D,MAGZqc,SAAU,CACNL,WACI,gEAAgEhc,MAC5D,KAERic,OAAQ,gEAAgEjc,MACpE,KAEJkc,SAAU,iDAEdI,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,uBAAuBvc,MAAM,KAC1C0pH,YAAaA,EACbK,gBAAiBL,EACjBM,iBAAkBN,EAGlBC,YACI,2MAGJC,iBACI,2MAGJC,kBACI,wHAGJC,uBACI,6FACJrtG,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,iBACJE,IAAK,uBACLE,KAAM,8BAEVE,SAAU,CACNC,QAAS,kBACTE,QAAS,iBACTE,QAAS,gBACTD,SAAU,SAAUsJ,GAChB,GAAIA,EAAI/H,SAAWlc,KAAKkc,OAcpB,OAAmB,IAAflc,KAAKm/B,MACE,oBAEA,mBAhBX,OAAQn/B,KAAKm/B,OACT,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BASvB,EACAtkB,SAAU,SAAUoJ,GAChB,GAAIA,EAAI/H,SAAWlc,KAAKkc,OAcpB,OAAmB,IAAflc,KAAKm/B,MACE,oBAEA,mBAhBX,OAAQn/B,KAAKm/B,OACT,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BASvB,EACArkB,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNpU,EAAG,mBACHqU,GAAI8uP,EACJ7uP,EAAG6uP,EACH5uP,GAAI4uP,EACJ3uP,EAAG,MACHC,GAAI0uP,EACJzuP,EAAG,OACHC,GAAIwuP,EACJhpO,EAAG,SACHqmF,GAAI2iJ,EACJvuP,EAAG,QACHC,GAAIsuP,EACJruP,EAAG,MACHC,GAAIouP,GAERhgP,cAAe,wBACfC,KAAM,SAAU9nB,GACZ,MAAO,iBAAiByrB,KAAKzrB,EACjC,EACA+nB,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,EACA,OACAA,EAAO,GACP,OACAA,EAAO,GACP,MAEA,QAEf,EACAtO,uBAAwB,mBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,KACpB,IAAK,IACD,OAAOA,EAAS,MACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,KACpB,QACI,OAAOA,EAEnB,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAvNyCC,CAAQ,EAAQ,sCCR1DqmE,IAAIC,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAASC,EAASxmF,EAASD,GAAQ,aAC5J,IAAI+tQ,EAAMtnL,EAAQ,cACdunL,EAAqBvnL,EAAQ,0BAA0BunL,mBACvDC,EAAqB,WACrBpqQ,KAAKqqQ,OAAS,CACV,MAAS,CACL,CACIv2P,MAAO,WACP2jB,MAAO,+CACR,CACC3jB,MAAO,SACP2jB,MAAO,IACP33B,KAAM,UACP,CACCgU,MAAO,mBACP2jB,MAAO,wBACR,CACC3jB,MAAO,mBACP2jB,MAAO,mDACR,CACC3jB,MAAO,4BACP2jB,MAAO,qBACR,CACC3jB,MAAO,OACP2jB,MAAO,sCACR,CACC3jB,MAAO,UACP2jB,MAAO,aACR,CACC3jB,MAAO,gBACP2jB,MAAO,SACP33B,KAAM,WACP,CACCgU,MAAO,eACP2jB,MAAO,SACR,CACC3jB,MAAO,eACP2jB,MAAO,WACR,CACC3jB,MAAO,uBACP2jB,MAAO,OACR,CACC3jB,MAAO,OACP2jB,MAAO,SAGf,OAAU,CACN,CACI3jB,MAAO,2BACP2jB,MAAO,sDACR,CACC3jB,MAAO,SACP2jB,MAAO,MACP33B,KAAM,SACP,CACCwqQ,aAAc,WAGtB,QAAW,CACP,CACIx2P,MAAO,cACP2jB,MAAO,SACP33B,KAAM,SACP,CACCwqQ,aAAc,YAI9B,EACAJ,EAAIK,SAASH,EAAoBD,GACjC/tQ,EAAQguQ,mBAAqBA,CAE7B,IAEA1nL,IAAIC,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAASC,EAASxmF,EAASD,GAAQ,aAC5H,IAAIquQ,EAAQ5nL,EAAQ,YAAY4nL,MAC5BC,EAAuB,WAAc,GACzC,WACIzqQ,KAAK0qQ,aAAe,SAAUxxC,EAAM/2N,GAChC,QAAK,QAAQyrB,KAAKsrM,IAEX,SAAStrM,KAAKzrB,EACzB,EACAnC,KAAK2qQ,YAAc,SAAUC,EAAKj6C,GAC9B,IACIhnN,EADOihQ,EAAIC,QAAQl6C,GACNhnN,MAAM,YACvB,IAAKA,EACD,OAAO,EACX,IAAImhQ,EAASnhQ,EAAM,GAAGxJ,OAClB4qQ,EAAeH,EAAII,oBAAoB,CAAEr6C,IAAKA,EAAKm6C,OAAQA,IAC/D,IAAKC,GAAgBA,EAAap6C,KAAOA,EACrC,OAAO,EACX,IAAIG,EAAS9wN,KAAKirQ,WAAWL,EAAIC,QAAQE,EAAap6C,MACtDi6C,EAAI3yO,QAAQ,IAAIuyO,EAAM75C,EAAK,EAAGA,EAAKm6C,EAAS,GAAIh6C,EACpD,EACA9wN,KAAKirQ,WAAa,SAAU/xC,GACxB,OAAOA,EAAKvvN,MAAM,QAAQ,EAC9B,CACH,GAAEpN,KAAKkuQ,EAAqB7uQ,WAC7BQ,EAAQquQ,qBAAuBA,CAE/B,IAEA/nL,IAAIC,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAASC,EAASxmF,EAASD,GAAQ,aAC/J,IAAI+tQ,EAAMtnL,EAAQ,iBACd4nL,EAAQ5nL,EAAQ,eAAe4nL,MAC/BU,EAAetoL,EAAQ,eAAeuoL,SACtCA,EAAW/uQ,EAAQ+uQ,SAAW,SAAUC,GACpCA,IACAprQ,KAAKqrQ,mBAAqB,IAAI7zO,OAAOx3B,KAAKqrQ,mBAAmBjoP,OAAO6U,QAAQ,YAAa,IAAMmzO,EAAanyN,QAC5Gj5C,KAAKsrQ,kBAAoB,IAAI9zO,OAAOx3B,KAAKsrQ,kBAAkBloP,OAAO6U,QAAQ,YAAa,IAAMmzO,EAAap+P,MAElH,EACAk9P,EAAIK,SAASY,EAAUD,GACvB,WACIlrQ,KAAKqrQ,mBAAqB,mCAC1BrrQ,KAAKsrQ,kBAAoB,uCACzBtrQ,KAAKurQ,yBAA2B,uBAChCvrQ,KAAKwrQ,yBAA2B,2BAChCxrQ,KAAKyrQ,cAAgB,4BACrBzrQ,KAAK0rQ,mBAAqB1rQ,KAAK2rQ,cAC/B3rQ,KAAK2rQ,cAAgB,SAAUj3K,EAASk3K,EAAWj7C,GAC/C,IAAIuI,EAAOxkI,EAAQm2K,QAAQl6C,GAC3B,GAAI3wN,KAAKurQ,yBAAyB39O,KAAKsrM,KAC9Bl5N,KAAKyrQ,cAAc79O,KAAKsrM,KAAUl5N,KAAKwrQ,yBAAyB59O,KAAKsrM,GACtE,MAAO,GAEf,IAAI2yC,EAAK7rQ,KAAK0rQ,mBAAmBh3K,EAASk3K,EAAWj7C,GACrD,OAAKk7C,GAAM7rQ,KAAKyrQ,cAAc79O,KAAKsrM,GACxB,QACJ2yC,CACX,EACA7rQ,KAAK8rQ,mBAAqB,SAAUp3K,EAASk3K,EAAWj7C,EAAKo7C,GACzD,IAoBIpiQ,EApBAuvN,EAAOxkI,EAAQm2K,QAAQl6C,GAC3B,GAAI3wN,KAAKyrQ,cAAc79O,KAAKsrM,GACxB,OAAOl5N,KAAKgsQ,sBAAsBt3K,EAASwkI,EAAMvI,GAErD,GADIhnN,EAAQuvN,EAAKvvN,MAAM3J,KAAKqrQ,oBACjB,CACP,IAAIvnQ,EAAI6F,EAAM8J,MACd,GAAI9J,EAAM,GACN,OAAO3J,KAAKisQ,oBAAoBv3K,EAAS/qF,EAAM,GAAIgnN,EAAK7sN,GAC5D,IAAI+vC,EAAQ6gD,EAAQw3K,oBAAoBv7C,EAAK7sN,EAAI6F,EAAM,GAAGxJ,OAAQ,GAQlE,OAPI0zC,IAAUA,EAAMs4N,gBACZJ,EACAl4N,EAAQ7zC,KAAKosQ,gBAAgB13K,EAASi8H,GAEpB,OAAbi7C,IACL/3N,EAAQ,OAETA,CACX,CACA,MAAkB,cAAd+3N,IAEAjiQ,EAAQuvN,EAAKvvN,MAAM3J,KAAKsrQ,qBAEpBxnQ,EAAI6F,EAAM8J,MAAQ9J,EAAM,GAAGxJ,OAC3BwJ,EAAM,GACC3J,KAAKqsQ,oBAAoB33K,EAAS/qF,EAAM,GAAIgnN,EAAK7sN,GACrD4wF,EAAQw3K,oBAAoBv7C,EAAK7sN,GAAI,SAPhD,CASJ,EACA9D,KAAKosQ,gBAAkB,SAAU13K,EAASi8H,GAQtC,IAPA,IAAIuI,EAAOxkI,EAAQm2K,QAAQl6C,GACvB27C,EAAcpzC,EAAKx+J,OAAO,MAC1B6xM,EAAW57C,EACX67C,EAActzC,EAAK/4N,OAEnBssQ,EADJ97C,GAAY,EAER+7C,EAASh4K,EAAQi4K,cACZh8C,EAAM+7C,GAAQ,CAEnB,IAAI57C,GADJoI,EAAOxkI,EAAQm2K,QAAQl6C,IACLj2J,OAAO,MACzB,IAAgB,IAAZo2J,EAAJ,CAEA,GAAIw7C,EAAcx7C,EACd,MACJ,IAAI87C,EAAW5sQ,KAAK8rQ,mBAAmBp3K,EAAS,MAAOi8H,GACvD,GAAIi8C,EAAU,CACV,GAAIA,EAAS3zN,MAAM03K,KAAO47C,EACtB,MAEC,GAAIK,EAAST,cACdx7C,EAAMi8C,EAAS5/P,IAAI2jN,SAElB,GAAI27C,GAAex7C,EACpB,KAER,CACA27C,EAAS97C,CAfG,CAgBhB,CACA,OAAO,IAAI65C,EAAM+B,EAAUC,EAAaC,EAAQ/3K,EAAQm2K,QAAQ4B,GAAQtsQ,OAC5E,EACAH,KAAKgsQ,sBAAwB,SAAUt3K,EAASwkI,EAAMvI,GAMlD,IALA,IAAI67C,EAActzC,EAAKx+J,OAAO,QAC1BgyM,EAASh4K,EAAQi4K,YACjBJ,EAAW57C,EACX7gK,EAAK,uCACLz0B,EAAQ,IACHs1L,EAAM+7C,GAAQ,CACnBxzC,EAAOxkI,EAAQm2K,QAAQl6C,GACvB,IAAIx1M,EAAI20C,EAAGtuD,KAAK03N,GAChB,GAAK/9M,IAEDA,EAAE,GACFkgB,IAEAA,KACCA,GACD,KACR,CAEA,GADas1L,EACA47C,EACT,OAAO,IAAI/B,EAAM+B,EAAUC,EAFlB77C,EAEuCuI,EAAK/4N,OAE7D,CACH,EAAE5D,KAAK4uQ,EAASvvQ,UAEjB,IAEA8mF,IAAIC,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,0BAA0B,6BAA6B,SAASC,EAASxmF,EAASD,GAAQ,aACnP,IAAI+tQ,EAAMtnL,EAAQ,cACdiqL,EAAWjqL,EAAQ,UAAUkqL,KAC7BC,EAAiBnqL,EAAQ,0BAA0BwnL,mBACnDK,EAAuB7nL,EAAQ,4BAA4B6nL,qBAC3DuC,EAAiBpqL,EAAQ,oBAAoBuoL,SAC7C8B,EAAerqL,EAAQ,2BAA2BqqL,aAClDH,EAAO,WACP9sQ,KAAK+sQ,eAAiBA,EACtB/sQ,KAAKktQ,SAAW,IAAIzC,EACpBzqQ,KAAKmtQ,WAAantQ,KAAKotQ,kBACvBptQ,KAAKqtQ,aAAe,IAAIL,CAC5B,EACA9C,EAAIK,SAASuC,EAAMD,GACnB,WACI7sQ,KAAKstQ,iBAAmB,KACxBttQ,KAAKutQ,aAAe,CAAEt0N,MAAO,KAAMjsC,IAAK,MACxChN,KAAKwtQ,kBAAoB,SAAU39P,EAAOqpN,EAAMu0C,GAC5C,IAAI38C,EAAS9wN,KAAKirQ,WAAW/xC,GAO7B,MANa,SAATrpN,GACYqpN,EAAKvvN,MAAM,qBAEnBmnN,GAAU28C,GAGX38C,CACX,EACA9wN,KAAK0qQ,aAAe,SAAU76P,EAAOqpN,EAAM/2N,GACvC,OAAOnC,KAAKktQ,SAASxC,aAAaxxC,EAAM/2N,EAC5C,EACAnC,KAAK2qQ,YAAc,SAAU96P,EAAO+6P,EAAKj6C,GACrC3wN,KAAKktQ,SAASvC,YAAYC,EAAKj6C,EACnC,EACA3wN,KAAK0tQ,aAAe,SAAUh5K,GAC1B,IAAI04C,EAAS,IAAI6/H,EAAa,CAAC,OAAQ,uBAAwB,cAQ/D,OAPA7/H,EAAOugI,iBAAiBj5K,EAAQk5K,eAChCxgI,EAAOprD,GAAG,YAAY,SAAUtlF,GAC5Bg4F,EAAQm5K,eAAenxQ,EAAEkN,KAC7B,IACAwjI,EAAOprD,GAAG,aAAa,WACnB0S,EAAQo5K,kBACZ,IACO1gI,CACX,EACAptI,KAAK+tQ,IAAM,eACd,EAAExxQ,KAAKuwQ,EAAKlxQ,WACbQ,EAAQ0wQ,KAAOA,CAEf,IACoBpqL,IAAIE,QAAQ,CAAC,kBAAkB,SAASznE,GAC2Bhf,IAC3DA,EAAOC,QAAU+e,EAEzB,2EC5QpB,MAAM6yP,EAAuB,CAC3B,cACA,SACA,OACA,mBACA,iBACA,mBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,eACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,wBAkDF,SAASC,EAAkB/iO,GAEzB,OAAO,YAAc1qC,GACnB,MAAM0tQ,EAAmB1tQ,EAAK,GAQ9B,OAPAA,EAAK,IAAK,QAAK0tQ,EAAkB,CAC/BC,UAAW,CACTvkQ,KAAM,CAAEyvB,UAAU,QAAgB6R,IAClCkjO,SAAS,EACT7uQ,KAAM,gBAGH2rC,EAAS/jC,MAAMnH,KAAMQ,EAC9B,CACF,CAGA,SAAS6tQ,EAASnjO,GAEhB,OAAO,SAAW/0B,GAEhB,OAAO+0B,EAAS/jC,MAAMnH,KAAM,EAC1B,QAAKmW,EAAU,CACbg4P,UAAW,CACTvkQ,KAAM,CACJyvB,SAAU,wBACV4wG,SAAS,QAAgB/+F,IAE3BkjO,SAAS,EACT7uQ,KAAM,iBAId,CACF,CAEA,SAAS+uQ,EAASC,GAEhB,OAAO,YAAc/tQ,GAEnB,MAAMynO,EAAMjoO,KA8BZ,MA7B4B,CAAC,SAAU,UAAW,aAAc,sBAE5CxB,SAAQwL,IACtBA,KAAQi+N,GAA4B,mBAAdA,EAAIj+N,KAE5B,QAAKi+N,EAAKj+N,GAAM,SAAUkhC,GACxB,MAAMsjO,EAAc,CAClBL,UAAW,CACTvkQ,KAAM,CACJyvB,SAAUrvB,EACVigI,SAAS,QAAgB/+F,IAE3BkjO,SAAS,EACT7uQ,KAAM,eAKJkvQ,GAAmB,QAAoBvjO,GAM7C,OALIujO,IACFD,EAAYL,UAAUvkQ,KAAKqgI,SAAU,QAAgBwkI,KAIhD,QAAKvjO,EAAUsjO,EACxB,GACF,IAGKD,EAAapnQ,MAAMnH,KAAMQ,EAClC,CACF,CAEA,SAASkuQ,EAAiBvrP,GAExB,MAAMwrP,EAAe,KAEfvvQ,EAAQuvQ,EAAaxrP,IAAWwrP,EAAaxrP,GAAQvnB,UAGtDwD,GAAUA,EAAMvD,gBAAmBuD,EAAMvD,eAAe,uBAI7D,QAAKuD,EAAO,oBAAoB,SAAU8rC,GAGxC,OAAO,SAGL0jO,EACA1nQ,EACA4H,GAEA,IACgC,mBAAnB5H,EAAG2nQ,cAOZ3nQ,EAAG2nQ,aAAc,QAAK3nQ,EAAG2nQ,YAAa,CACpCV,UAAW,CACTvkQ,KAAM,CACJyvB,SAAU,cACV4wG,SAAS,QAAgB/iI,GACzBic,UAEFirP,SAAS,EACT7uQ,KAAM,gBAId,CAAE,MAAOoG,GAET,CAEA,OAAOulC,EAAS/jC,MAAMnH,KAAM,CAC1B4uQ,GAEA,QAAK1nQ,EAAK,CACRinQ,UAAW,CACTvkQ,KAAM,CACJyvB,SAAU,mBACV4wG,SAAS,QAAgB/iI,GACzBic,UAEFirP,SAAS,EACT7uQ,KAAM,gBAGVuP,GAEJ,CACF,KAEA,QACE1P,EACA,uBACA,SACE0vQ,GAGA,OAAO,SAGLF,EACA1nQ,EACA4H,GAmBA,MAAMigQ,EAAsB7nQ,EAC5B,IACE,MAAM8nQ,EAAuBD,GAAuBA,EAAoBE,mBACpED,GACFF,EAA4BvyQ,KAAKyD,KAAM4uQ,EAAWI,EAAsBlgQ,EAE5E,CAAE,MAAOpS,GAET,CACA,OAAOoyQ,EAA4BvyQ,KAAKyD,KAAM4uQ,EAAWG,EAAqBjgQ,EAChF,CACF,IAEJ,EAvLoC,SA3CC,CAAEA,EAAU,CAAC,KAChD,MAAMogQ,EAAW,CACfpmC,gBAAgB,EAChBqmC,aAAa,EACb3mN,uBAAuB,EACvBnB,aAAa,EACbe,YAAY,KACTt5C,GAGL,MAAO,CACL1G,KAbqB,mBAgBrB,SAAAgnQ,GACMF,EAAS9mN,aACX,QAAK,KAAQ,aAAc6lN,GAGzBiB,EAAS7nN,cACX,QAAK,KAAQ,cAAe4mN,GAG1BiB,EAAS1mN,wBACX,QAAK,KAAQ,wBAAyB6lN,GAGpCa,EAASpmC,gBAAkB,0BAC7B,QAAKA,eAAeltO,UAAW,OAAQ0yQ,GAGzC,MAAMe,EAAoBH,EAASC,YAC/BE,IACkB/gQ,MAAMie,QAAQ8iP,GAAqBA,EAAoBrB,GAC/DxvQ,QAAQkwQ,EAExB,EAEH,gFC1ED,MAAM5iK,EAAQ,IACdA,EAAMwjK,cAAgB,IACtB,sFCUA,QAdc,SAAiBn/O,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GAC5D,IAAIujB,EAAS,GAEb,GADelC,EAAK3B,WAAa2B,EAAK3B,UAAYpL,EAAOvnB,eAAes0B,EAAKkgC,OAC/D,CACZ,IAAI,QAAah0D,KAAW8zB,EAAK3B,SAC/B,OAAOrY,IAET,IAAMqY,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,QAC9B5S,IAAVG,GACF,IAAMkD,KAAK4wB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAE5C,CACAqH,EAASkc,EACX,sMCZO,MAAMk9O,EAAa,sBACxB33P,EAAQ,UACRD,EAAY,IAEmB,EAD5BumF,oXAAAA,CAAAA,EAAAA,CAFHtmF,WACAD,cAGA,OACE,SAAC63P,EAAAA,2UAAOA,CAAAA,CAAC73P,UAAW,cAAcA,IAAYugB,QAAYgmE,cAAAA,UACvDtmF,0WCVMzb,EAAOC,QAAU,EAAjB,QACNunE,GAAGylB,KAAK,EAAQ,2BCDvB,IAAIqmL,EAAa,EAAQ,QACrBljP,EAAU,EAAQ,QAClBkwE,EAAe,EAAQ,QA2B3BtgG,EAAOC,QALP,SAAkBC,GAChB,MAAuB,iBAATA,IACVkwB,EAAQlwB,IAAUogG,EAAapgG,IArBrB,mBAqB+BozQ,EAAWpzQ,EAC1D,8ECdA,QAXU,SAAa8zB,EAAM9zB,EAAO8Z,EAAUiN,EAAQtU,GACpD,IAAIujB,EAAS,GAEb,GADelC,EAAK3B,WAAa2B,EAAK3B,UAAYpL,EAAOvnB,eAAes0B,EAAKkgC,OAC/D,CACZ,IAAI,QAAah0D,KAAW8zB,EAAK3B,SAC/B,OAAOrY,IAET,IAAMqY,SAAS2B,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAC9C,CACAqH,EAASkc,EACX,oBCZAl2B,EAAOC,QAAU,IAA0B,qECG3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD6tP,EAA8B3tP,EAAyB,EAAQ,SAC/DC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAI+sP,EAAe,SAASzlQ,EAAO8V,GAC/B,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMisP,EAAcrtP,UAbEe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJ0zBC,EAAOmC,WAAW4rP,oLCtHh1B,IAAIC,EAAe,MACjB,WAAA7kP,GACE/qB,KAAKwoN,UAA4B,IAAI9zL,IACrC10B,KAAKnB,UAAYmB,KAAKnB,UAAUmQ,KAAKhP,KACvC,CACA,SAAAnB,CAAUJ,GAGR,OAFAuB,KAAKwoN,UAAUvzM,IAAIxW,GACnBuB,KAAK6vQ,cACE,KACL7vQ,KAAKwoN,UAAUxpN,OAAOP,GACtBuB,KAAK8vQ,eAAe,CAExB,CACA,YAAAC,GACE,OAAO/vQ,KAAKwoN,UAAUvzL,KAAO,CAC/B,CACA,WAAA46O,GACA,CACA,aAAAC,GACA,GCnBEE,EAA6B,oBAAXl4N,QAA0B,SAAUm4N,WAC1D,SAASlrM,IACT,CAIA,SAASmrM,EAAe7zQ,GACtB,MAAwB,iBAAVA,GAAsBA,GAAS,GAAKA,IAAU+oF,GAC9D,CACA,SAAS+qL,EAAeC,EAAWC,GACjC,OAAOpzQ,KAAKmrB,IAAIgoP,GAAaC,GAAa,GAAKrsP,KAAKC,MAAO,EAC7D,CACA,SAASqsP,EAAiBD,EAAWz+N,GACnC,MAA4B,mBAAdy+N,EAA2BA,EAAUz+N,GAASy+N,CAC9D,CACA,SAASE,EAAe7nO,EAASkJ,GAC/B,MAA0B,mBAAZlJ,EAAyBA,EAAQkJ,GAASlJ,CAC1D,CACA,SAAS8nO,EAAWC,EAAS7+N,GAC3B,MAAM,KACJryC,EAAO,MAAK,MACZmxQ,EAAK,YACLC,EAAW,UACXpuQ,EAAS,SACTgtF,EAAQ,MACRqhL,GACEH,EACJ,GAAIlhL,EACF,GAAImhL,GACF,GAAI9+N,EAAMi/N,YAAcC,EAAsBvhL,EAAU39C,EAAM9iC,SAC5D,OAAO,OAEJ,IAAKiiQ,EAAgBn/N,EAAM29C,SAAUA,GAC1C,OAAO,EAGX,GAAa,QAAThwF,EAAgB,CAClB,MAAM67H,EAAWxpF,EAAMwpF,WACvB,GAAa,WAAT77H,IAAsB67H,EACxB,OAAO,EAET,GAAa,aAAT77H,GAAuB67H,EACzB,OAAO,CAEX,CACA,QAAqB,kBAAVw1I,GAAuBh/N,EAAMo/N,YAAcJ,GAGlDD,GAAeA,IAAgB/+N,EAAM/hC,MAAM8gQ,aAG3CpuQ,IAAcA,EAAUqvC,GAI9B,CACA,SAASq/N,EAAcR,EAAS7jI,GAC9B,MAAM,MAAE8jI,EAAK,OAAEtkQ,EAAM,UAAE7J,EAAS,YAAE2uQ,GAAgBT,EAClD,GAAIS,EAAa,CACf,IAAKtkI,EAAS99H,QAAQoiQ,YACpB,OAAO,EAET,GAAIR,GACF,GAAIS,EAAQvkI,EAAS99H,QAAQoiQ,eAAiBC,EAAQD,GACpD,OAAO,OAEJ,IAAKH,EAAgBnkI,EAAS99H,QAAQoiQ,YAAaA,GACxD,OAAO,CAEX,CACA,QAAI9kQ,GAAUwgI,EAAS/8H,MAAMzD,SAAWA,GAGpC7J,IAAcA,EAAUqqI,GAI9B,CACA,SAASkkI,EAAsBvhL,EAAUzgF,GAEvC,OADeA,GAASsiQ,gBAAkBD,GAC5B5hL,EAChB,CACA,SAAS4hL,EAAQ5hL,GACf,OAAOxwD,KAAKL,UACV6wD,GACA,CAACxuD,EAAGwY,IAAQj6C,EAAci6C,GAAO59C,OAAOwK,KAAKozC,GAAK7Y,OAAOrgC,QAAO,CAAC1D,EAAQ+B,KACvE/B,EAAO+B,GAAO66C,EAAI76C,GACX/B,IACN,CAAC,GAAK48C,GAEb,CACA,SAASw3N,EAAgBzwQ,EAAGC,GAC1B,OAAID,IAAMC,UAGCD,UAAaC,MAGpBD,IAAKC,GAAkB,iBAAND,GAA+B,iBAANC,KACpC5E,OAAOwK,KAAK5F,GAAG6B,MAAM1D,IAASqyQ,EAAgBzwQ,EAAE5B,GAAM6B,EAAE7B,KAGpE,CACA,SAAS,EAAiB4B,EAAGC,GAC3B,GAAID,IAAMC,EACR,OAAOD,EAET,MAAM2B,EAAQovQ,EAAa/wQ,IAAM+wQ,EAAa9wQ,GAC9C,GAAI0B,GAAS3C,EAAcgB,IAAMhB,EAAciB,GAAI,CACjD,MAAM+wQ,EAASrvQ,EAAQ3B,EAAI3E,OAAOwK,KAAK7F,GACjCixQ,EAAQD,EAAOnxQ,OACfqxQ,EAASvvQ,EAAQ1B,EAAI5E,OAAOwK,KAAK5F,GACjCkxQ,EAAQD,EAAOrxQ,OACfi7G,EAAOn5G,EAAQ,GAAK,CAAC,EAC3B,IAAIyvQ,EAAa,EACjB,IAAK,IAAI5tQ,EAAI,EAAGA,EAAI2tQ,EAAO3tQ,IAAK,CAC9B,MAAMpF,EAAMuD,EAAQ6B,EAAI0tQ,EAAO1tQ,KACzB7B,GAASqvQ,EAAO/6P,SAAS7X,IAAQuD,SAAqB,IAAX3B,EAAE5B,SAA8B,IAAX6B,EAAE7B,IACtE08G,EAAK18G,QAAO,EACZgzQ,MAEAt2J,EAAK18G,GAAO,EAAiB4B,EAAE5B,GAAM6B,EAAE7B,IACnC08G,EAAK18G,KAAS4B,EAAE5B,SAAmB,IAAX4B,EAAE5B,IAC5BgzQ,IAGN,CACA,OAAOH,IAAUE,GAASC,IAAeH,EAAQjxQ,EAAI86G,CACvD,CACA,OAAO76G,CACT,CACA,SAASoxQ,EAAoBrxQ,EAAGC,GAC9B,IAAKA,GAAK5E,OAAOwK,KAAK7F,GAAGH,SAAWxE,OAAOwK,KAAK5F,GAAGJ,OACjD,OAAO,EAET,IAAK,MAAMzB,KAAO4B,EAChB,GAAIA,EAAE5B,KAAS6B,EAAE7B,GACf,OAAO,EAGX,OAAO,CACT,CACA,SAAS2yQ,EAAah1Q,GACpB,OAAOiS,MAAMie,QAAQlwB,IAAUA,EAAM8D,SAAWxE,OAAOwK,KAAK9J,GAAO8D,MACrE,CACA,SAASb,EAAc6E,GACrB,IAAKytQ,EAAmBztQ,GACtB,OAAO,EAET,MAAMqmI,EAAOrmI,EAAE4mB,YACf,QAAa,IAATy/G,EACF,OAAO,EAET,MAAMqnI,EAAOrnI,EAAK5uI,UAClB,QAAKg2Q,EAAmBC,MAGnBA,EAAKh2Q,eAAe,kBAGrBF,OAAO0D,eAAe8E,KAAOxI,OAAOC,SAI1C,CACA,SAASg2Q,EAAmBztQ,GAC1B,MAA6C,oBAAtCxI,OAAOC,UAAUG,SAASQ,KAAK4H,EACxC,CAMA,SAAS2tQ,EAAYC,EAAUnoQ,EAAMkF,GACnC,MAAyC,mBAA9BA,EAAQkjQ,kBACVljQ,EAAQkjQ,kBAAkBD,EAAUnoQ,IACJ,IAA9BkF,EAAQkjQ,kBAUV,EAAiBD,EAAUnoQ,GAE7BA,CACT,CACA,SAASqoQ,EAAiBC,GACxB,OAAOA,CACT,CACA,SAASC,EAASh2O,EAAOm5B,EAAMltC,EAAM,GACnC,MAAMgqP,EAAW,IAAIj2O,EAAOm5B,GAC5B,OAAOltC,GAAOgqP,EAASjyQ,OAASioB,EAAMgqP,EAAS1uQ,MAAM,GAAK0uQ,CAC5D,CACA,SAASC,EAAWl2O,EAAOm5B,EAAMltC,EAAM,GACrC,MAAMgqP,EAAW,CAAC98M,KAASn5B,GAC3B,OAAO/T,GAAOgqP,EAASjyQ,OAASioB,EAAMgqP,EAAS1uQ,MAAM,GAAI,GAAK0uQ,CAChE,CACA,IAAIzhL,EAAYl1F,SAChB,SAAS62Q,EAAcxjQ,EAASyjQ,GAQ9B,OAAKzjQ,EAAQmhF,SAAWsiL,GAAcC,eAC7B,IAAMD,EAAaC,eAEvB1jQ,EAAQmhF,SAAWnhF,EAAQmhF,UAAYU,EAGrC7hF,EAAQmhF,QAFN,IAAM9uF,QAAQE,OAAO,IAAIvD,MAAM,qBAAqBgR,EAAQ+hQ,cAGvE,CCvNA,IA2DI4B,EAAe,IA3DA,cAAc7C,EAC/B,GACA,GACA,GACA,WAAA7kP,GACEwN,QACAv4B,MAAK,EAAUisE,IACb,IAAK+jM,GAAYl4N,OAAO7B,iBAAkB,CACxC,MAAMx3C,EAAW,IAAMwtE,IAEvB,OADAn0B,OAAO7B,iBAAiB,mBAAoBx3C,GAAU,GAC/C,KACLq5C,OAAOsjD,oBAAoB,mBAAoB38F,EAAS,CAE5D,CACM,CAEV,CACA,WAAAoxQ,GACO7vQ,MAAK,GACRA,KAAK0yQ,iBAAiB1yQ,MAAK,EAE/B,CACA,aAAA8vQ,GACO9vQ,KAAK+vQ,iBACR/vQ,MAAK,MACLA,MAAK,OAAW,EAEpB,CACA,gBAAA0yQ,CAAiB34O,GACf/5B,MAAK,EAAS+5B,EACd/5B,MAAK,MACLA,MAAK,EAAW+5B,GAAO44O,IACE,kBAAZA,EACT3yQ,KAAK4yQ,WAAWD,GAEhB3yQ,KAAKisE,SACP,GAEJ,CACA,UAAA2mM,CAAWD,GACO3yQ,MAAK,IAAa2yQ,IAEhC3yQ,MAAK,EAAW2yQ,EAChB3yQ,KAAKisE,UAET,CACA,OAAAA,GACE,MAAM4mM,EAAY7yQ,KAAK6yQ,YACvB7yQ,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASo0Q,EAAU,GAEvB,CACA,SAAAA,GACE,MAA6B,kBAAlB7yQ,MAAK,EACPA,MAAK,EAEkC,WAAzCiwQ,WAAW98N,UAAU2/N,eAC9B,GCREC,EAAgB,IAjDA,cAAcnD,EAChC,IAAU,EACV,GACA,GACA,WAAA7kP,GACEwN,QACAv4B,MAAK,EAAUgzQ,IACb,IAAKhD,GAAYl4N,OAAO7B,iBAAkB,CACxC,MAAMg9N,EAAiB,IAAMD,GAAS,GAChCE,EAAkB,IAAMF,GAAS,GAGvC,OAFAl7N,OAAO7B,iBAAiB,SAAUg9N,GAAgB,GAClDn7N,OAAO7B,iBAAiB,UAAWi9N,GAAiB,GAC7C,KACLp7N,OAAOsjD,oBAAoB,SAAU63K,GACrCn7N,OAAOsjD,oBAAoB,UAAW83K,EAAgB,CAE1D,CACM,CAEV,CACA,WAAArD,GACO7vQ,MAAK,GACRA,KAAK0yQ,iBAAiB1yQ,MAAK,EAE/B,CACA,aAAA8vQ,GACO9vQ,KAAK+vQ,iBACR/vQ,MAAK,MACLA,MAAK,OAAW,EAEpB,CACA,gBAAA0yQ,CAAiB34O,GACf/5B,MAAK,EAAS+5B,EACd/5B,MAAK,MACLA,MAAK,EAAW+5B,EAAM/5B,KAAKmzQ,UAAUnkQ,KAAKhP,MAC5C,CACA,SAAAmzQ,CAAUC,GACQpzQ,MAAK,IAAYozQ,IAE/BpzQ,MAAK,EAAUozQ,EACfpzQ,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAAS20Q,EAAO,IAGtB,CACA,QAAAC,GACE,OAAOrzQ,MAAK,CACd,GCjDF,SAASszQ,IACP,IAAIlyQ,EACAC,EACJ,MAAMkyQ,EAAW,IAAIpyQ,SAAQ,CAAC4vB,EAAUyiP,KACtCpyQ,EAAU2vB,EACV1vB,EAASmyQ,CAAO,IAKlB,SAAS7nO,EAAS/hC,GAChBjO,OAAOqZ,OAAOu+P,EAAU3pQ,UACjB2pQ,EAASnyQ,eACTmyQ,EAASlyQ,MAClB,CAeA,OAtBAkyQ,EAASnnQ,OAAS,UAClBmnQ,EAAS3xI,OAAM,SAOf2xI,EAASnyQ,QAAW/E,IAClBsvC,EAAS,CACPv/B,OAAQ,YACR/P,UAEF+E,EAAQ/E,EAAM,EAEhBk3Q,EAASlyQ,OAAUwnC,IACjB8C,EAAS,CACPv/B,OAAQ,WACRy8B,WAEFxnC,EAAOwnC,EAAO,EAET0qO,CACT,CC1BA,SAASE,EAAkBC,GACzB,OAAOz2Q,KAAK6+B,IAAI,IAAM,GAAK43O,EAAc,IAC3C,CACA,SAASC,EAASC,GAChB,MAAqC,YAA7BA,GAAe,WAAyBb,EAAcM,UAChE,CACA,IAAIQ,EAAiB,cAAc/1Q,MACjC,WAAAitB,CAAYjc,GACVypB,MAAM,kBACNv4B,KAAK8zQ,OAAShlQ,GAASglQ,OACvB9zQ,KAAK+zQ,OAASjlQ,GAASilQ,MACzB,GAEF,SAASC,EAAiB33Q,GACxB,OAAOA,aAAiBw3Q,CAC1B,CACA,SAASI,EAAc5/M,GACrB,IAGI6/M,EAHAC,GAAmB,EACnBT,EAAe,EACfU,GAAa,EAEjB,MAAMb,EAAWD,IAaXe,EAAc,IAAM5B,EAAaI,cAAuC,WAAvBx+M,EAAOu/M,aAA4Bb,EAAcM,aAAeh/M,EAAOigN,SACxHC,EAAW,IAAMZ,EAASt/M,EAAOu/M,cAAgBv/M,EAAOigN,SACxDlzQ,EAAW/E,IACV+3Q,IACHA,GAAa,EACb//M,EAAOw0F,YAAYxsJ,GACnB63Q,MACAX,EAASnyQ,QAAQ/E,GACnB,EAEIgF,EAAUhF,IACT+3Q,IACHA,GAAa,EACb//M,EAAOpnD,UAAU5Q,GACjB63Q,MACAX,EAASlyQ,OAAOhF,GAClB,EAEIm4Q,EAAQ,IACL,IAAIrzQ,SAASszQ,IAClBP,EAAc73Q,KACR+3Q,GAAcC,MAChBI,EAAgBp4Q,EAClB,EAEFg4D,EAAOqgN,WAAW,IACjB/vQ,MAAK,KACNuvQ,OAAa,EACRE,GACH//M,EAAOsgN,cACT,IAGE1lQ,EAAM,KACV,GAAImlQ,EACF,OAEF,IAAIQ,EACJ,MAAMpC,EAAkC,IAAjBkB,EAAqBr/M,EAAOm+M,oBAAiB,EACpE,IACEoC,EAAiBpC,GAAkBn+M,EAAOntD,IAC5C,CAAE,MAAOtC,GACPgwQ,EAAiBzzQ,QAAQE,OAAOuD,EAClC,CACAzD,QAAQC,QAAQwzQ,GAAgBjwQ,KAAKvD,GAASwgI,OAAOh9H,IACnD,GAAIwvQ,EACF,OAEF,MAAMvkH,EAAQx7F,EAAOw7F,QAAUmgH,EAAW,EAAI,GACxC54F,EAAa/iH,EAAO+iH,YAAcq8F,EAClCxnJ,EAA8B,mBAAfmrD,EAA4BA,EAAWs8F,EAAc9uQ,GAASwyK,EAC7E6M,GAAwB,IAAVp0B,GAAmC,iBAAVA,GAAsB6jH,EAAe7jH,GAA0B,mBAAVA,GAAwBA,EAAM6jH,EAAc9uQ,GJ+EpJ,IAAei5D,GI9ELs2M,GAAqBlwF,GAIzByvF,IACAr/M,EAAOwgN,SAASnB,EAAc9uQ,IJyErBi5D,EIxEHouD,EJyEH,IAAI9qH,SAASC,IAClBgnD,WAAWhnD,EAASy8D,EAAQ,KI1Ebl5D,MAAK,IACT0vQ,SAAgB,EAASG,MAC/B7vQ,MAAK,KACFwvQ,EACF9yQ,EAAOuD,GAEPqK,GACF,KAZA5N,EAAOuD,EAaP,GACF,EAEJ,MAAO,CACL1D,QAASqyQ,EACTvvQ,OAnFc8wQ,IACTV,IACH/yQ,EAAO,IAAIwyQ,EAAeiB,IAC1BzgN,EAAO5rD,UACT,EAgFAssQ,SAAU,KACRb,MACOX,GAETyB,YAlFkB,KAClBb,GAAmB,CAAI,EAkFvBc,cAhFoB,KACpBd,GAAmB,CAAK,EAgFxBI,WACAt7N,MAAO,KACDs7N,IACFtlQ,IAEAulQ,IAAQ7vQ,KAAKsK,GAERskQ,GAGb,CClDA,IAAI,EA5EJ,WACE,IAAIjyQ,EAAQ,GACR4zQ,EAAe,EACfC,EAAYh/P,IACdA,GAAU,EAERi/P,EAAiBj/P,IACnBA,GAAU,EAERk/P,EAAcnxQ,GAAOkkD,WAAWlkD,EAAI,GACxC,MAAMoxQ,EAAYn/P,IACZ++P,EACF5zQ,EAAMO,KAAKsU,GAEXk/P,GAAW,KACTF,EAASh/P,EAAS,GAEtB,EAeF,MAAO,CACLo/P,MAAQp/P,IACN,IAAIxZ,EACJu4Q,IACA,IACEv4Q,EAASwZ,GACX,CAAE,QACA++P,IACKA,GArBG,MACZ,MAAMM,EAAgBl0Q,EACtBA,EAAQ,GACJk0Q,EAAcr1Q,QAChBk1Q,GAAW,KACTD,GAAc,KACZI,EAAch3Q,SAAS2X,IACrBg/P,EAASh/P,EAAS,GAClB,GACF,GAEN,EAWMrU,EAEJ,CACA,OAAOnF,CAAM,EAKf84Q,WAAat/P,GACJ,IAAI3V,KACT80Q,GAAS,KACPn/P,KAAY3V,EAAK,GACjB,EAGN80Q,WAKAI,kBAAoBxuQ,IAClBiuQ,EAAWjuQ,CAAE,EAMfyuQ,uBAAyBzuQ,IACvBkuQ,EAAgBluQ,CAAE,EAEpB0uQ,aAAe1uQ,IACbmuQ,EAAanuQ,CAAE,EAGrB,CACoB2uQ,GC3EhBC,EAAY,MACd,GACA,OAAA7jM,GACEjyE,KAAK+1Q,gBACP,CACA,UAAAC,GACEh2Q,KAAK+1Q,iBACD7F,EAAelwQ,KAAKi2Q,UACtBj2Q,MAAK,EAAaooD,YAAW,KAC3BpoD,KAAKk2Q,gBAAgB,GACpBl2Q,KAAKi2Q,QAEZ,CACA,YAAAE,CAAaC,GACXp2Q,KAAKi2Q,OAASh5Q,KAAKmrB,IACjBpoB,KAAKi2Q,QAAU,EACfG,IAAcpG,EAAW5qL,IAAW,KAExC,CACA,cAAA2wL,GACM/1Q,MAAK,IACPuoD,aAAavoD,MAAK,GAClBA,MAAK,OAAa,EAEtB,GCdEq2Q,EAAQ,cAAcP,EACxB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,WAAA/qP,CAAYspC,GACV97B,QACAv4B,MAAK,GAAuB,EAC5BA,MAAK,EAAkBq0D,EAAOiiN,eAC9Bt2Q,KAAKu2Q,WAAWliN,EAAOvlD,SACvB9O,KAAKu4H,UAAY,GACjBv4H,MAAK,EAAUq0D,EAAO91C,OACtBve,MAAK,EAASA,MAAK,EAAQw2Q,gBAC3Bx2Q,KAAKuvF,SAAWl7B,EAAOk7B,SACvBvvF,KAAK6wQ,UAAYx8M,EAAOw8M,UACxB7wQ,MAAK,EA6UT,SAAyB8O,GACvB,MAAMlF,EAAsC,mBAAxBkF,EAAQ2nQ,YAA6B3nQ,EAAQ2nQ,cAAgB3nQ,EAAQ2nQ,YACnFC,OAAmB,IAAT9sQ,EACV+sQ,EAAuBD,EAAkD,mBAAjC5nQ,EAAQ6nQ,qBAAsC7nQ,EAAQ6nQ,uBAAyB7nQ,EAAQ6nQ,qBAAuB,EAC5J,MAAO,CACL/sQ,OACAgtQ,gBAAiB,EACjBC,cAAeH,EAAUC,GAAwB3yP,KAAKC,MAAQ,EAC9Drf,MAAO,KACPkyQ,iBAAkB,EAClBC,eAAgB,EAChBC,kBAAmB,EACnBC,mBAAoB,KACpBC,UAAW,KACXC,eAAe,EACf/qQ,OAAQsqQ,EAAU,UAAY,UAC9B/F,YAAa,OAEjB,CA/VyByG,CAAgBp3Q,KAAK8O,SAC1C9O,KAAK6P,MAAQwkD,EAAOxkD,OAAS7P,MAAK,EAClCA,KAAKg2Q,YACP,CACA,QAAI/tQ,GACF,OAAOjI,KAAK8O,QAAQ7G,IACtB,CACA,WAAI/G,GACF,OAAOlB,MAAK,GAAUkB,OACxB,CACA,UAAAq1Q,CAAWznQ,GACT9O,KAAK8O,QAAU,IAAK9O,MAAK,KAAoB8O,GAC7C9O,KAAKm2Q,aAAan2Q,KAAK8O,QAAQmnQ,OACjC,CACA,cAAAC,GACOl2Q,KAAKu4H,UAAUp4H,QAAqC,SAA3BH,KAAK6P,MAAM8gQ,aACvC3wQ,MAAK,EAAOuR,OAAOvR,KAEvB,CACA,OAAAg4C,CAAQktH,EAASp2J,GACf,MAAMlF,EAAOkoQ,EAAY9xQ,KAAK6P,MAAMjG,KAAMs7J,EAASllK,KAAK8O,SAOxD,OANA9O,MAAK,EAAU,CACb4J,OACArK,KAAM,UACNs3Q,cAAe/nQ,GAASshQ,UACxBhiO,OAAQt/B,GAASs/B,SAEZxkC,CACT,CACA,QAAAytQ,CAASxnQ,EAAOynQ,GACdt3Q,MAAK,EAAU,CAAET,KAAM,WAAYsQ,QAAOynQ,mBAC5C,CACA,MAAAtzQ,CAAO8K,GACL,MAAM5N,EAAUlB,MAAK,GAAUkB,QAE/B,OADAlB,MAAK,GAAUgE,OAAO8K,GACf5N,EAAUA,EAAQyD,KAAKogE,GAAM68D,MAAM78D,GAAQ5jE,QAAQC,SAC5D,CACA,OAAA6wE,GACE15C,MAAM05C,UACNjyE,KAAKgE,OAAO,CAAE+vQ,QAAQ,GACxB,CACA,KAAAxhP,GACEvyB,KAAKiyE,UACLjyE,KAAKq3Q,SAASr3Q,MAAK,EACrB,CACA,QAAAo7H,GACE,OAAOp7H,KAAKu4H,UAAUn2H,MACnBzC,IAAgE,IAAnD4wQ,EAAe5wQ,EAASmP,QAAQ45B,QAAS1oC,OAE3D,CACA,UAAAu3Q,GACE,OAAIv3Q,KAAKw3Q,oBAAsB,GACrBx3Q,KAAKo7H,WAERp7H,KAAK8O,QAAQmhF,UAAYU,GAAa3wF,KAAK6P,MAAM+mQ,gBAAkB52Q,KAAK6P,MAAMinQ,mBAAqB,CAC5G,CACA,OAAA9F,GACE,QAAIhxQ,KAAK6P,MAAMsnQ,gBAGXn3Q,KAAKw3Q,oBAAsB,EACtBx3Q,KAAKu4H,UAAUn2H,MACnBzC,GAAaA,EAAS83Q,mBAAmBzG,eAGnB,IAApBhxQ,KAAK6P,MAAMjG,KACpB,CACA,aAAA8tQ,CAAcrH,EAAY,GACxB,OAAOrwQ,KAAK6P,MAAMsnQ,oBAAqC,IAApBn3Q,KAAK6P,MAAMjG,OAAoBumQ,EAAenwQ,KAAK6P,MAAMgnQ,cAAexG,EAC7G,CACA,OAAApkM,GACE,MAAMtsE,EAAWK,KAAKu4H,UAAUj9C,MAAMzhD,GAAMA,EAAE89O,6BAC9Ch4Q,GAAUi4Q,QAAQ,CAAEC,eAAe,IACnC73Q,MAAK,GAAU+0Q,UACjB,CACA,QAAA/B,GACE,MAAMrzQ,EAAWK,KAAKu4H,UAAUj9C,MAAMzhD,GAAMA,EAAEi+O,2BAC9Cn4Q,GAAUi4Q,QAAQ,CAAEC,eAAe,IACnC73Q,MAAK,GAAU+0Q,UACjB,CACA,WAAA38I,CAAYz4H,GACLK,KAAKu4H,UAAUhiH,SAAS5W,KAC3BK,KAAKu4H,UAAU12H,KAAKlC,GACpBK,KAAK+1Q,iBACL/1Q,MAAK,EAAO+3Q,OAAO,CAAEx4Q,KAAM,gBAAiBqyC,MAAO5xC,KAAML,aAE7D,CACA,cAAA24H,CAAe34H,GACTK,KAAKu4H,UAAUhiH,SAAS5W,KAC1BK,KAAKu4H,UAAYv4H,KAAKu4H,UAAUzlH,QAAQ+mB,GAAMA,IAAMl6B,IAC/CK,KAAKu4H,UAAUp4H,SACdH,MAAK,IACHA,MAAK,EACPA,MAAK,EAASgE,OAAO,CAAE8vQ,QAAQ,IAE/B9zQ,MAAK,EAASg1Q,eAGlBh1Q,KAAKg2Q,cAEPh2Q,MAAK,EAAO+3Q,OAAO,CAAEx4Q,KAAM,kBAAmBqyC,MAAO5xC,KAAML,aAE/D,CACA,iBAAA63Q,GACE,OAAOx3Q,KAAKu4H,UAAUp4H,MACxB,CACA,UAAA63Q,GACOh4Q,KAAK6P,MAAMsnQ,eACdn3Q,MAAK,EAAU,CAAET,KAAM,cAE3B,CACA,KAAA67I,CAAMtsI,EAASyjQ,GACb,GAA+B,SAA3BvyQ,KAAK6P,MAAM8gQ,YACb,QAAwB,IAApB3wQ,KAAK6P,MAAMjG,MAAmB2oQ,GAAcsF,cAC9C73Q,KAAKgE,OAAO,CAAE+vQ,QAAQ,SACjB,GAAI/zQ,MAAK,EAEd,OADAA,MAAK,EAASi1Q,gBACPj1Q,MAAK,EAASkB,QAMzB,GAHI4N,GACF9O,KAAKu2Q,WAAWznQ,IAEb9O,KAAK8O,QAAQmhF,QAAS,CACzB,MAAMtwF,EAAWK,KAAKu4H,UAAUj9C,MAAMzhD,GAAMA,EAAE/qB,QAAQmhF,UAClDtwF,GACFK,KAAKu2Q,WAAW52Q,EAASmP,QAE7B,CAQA,MAAMmpQ,EAAkB,IAAIpoC,gBACtBqoC,EAAqBt0P,IACzBjoB,OAAO8lB,eAAemC,EAAQ,SAAU,CACtClC,YAAY,EACZrQ,IAAK,KACHrR,MAAK,GAAuB,EACrBi4Q,EAAgBloC,SAEzB,EAoBE9oO,EAAU,CACdsrQ,eACAzjQ,QAAS9O,KAAK8O,QACdygF,SAAUvvF,KAAKuvF,SACfhxE,OAAQve,MAAK,EACb6P,MAAO7P,KAAK6P,MACZsoQ,QAxBc,KACd,MAAMloL,EAAUqiL,EAActyQ,KAAK8O,QAASyjQ,GACtC6F,EAAiB,CACrB75P,OAAQve,MAAK,EACbuvF,SAAUvvF,KAAKuvF,SACftnF,KAAMjI,KAAKiI,MAIb,OAFAiwQ,EAAkBE,GAClBp4Q,MAAK,GAAuB,EACxBA,KAAK8O,QAAQupQ,UACRr4Q,KAAK8O,QAAQupQ,UAClBpoL,EACAmoL,EACAp4Q,MAGGiwF,EAAQmoL,EAAe,GAUhCF,EAAkBjxQ,GAClBjH,KAAK8O,QAAQumH,UAAUijJ,QACrBrxQ,EACAjH,MAEFA,MAAK,EAAeA,KAAK6P,MACM,SAA3B7P,KAAK6P,MAAM8gQ,aAA0B3wQ,KAAK6P,MAAMqnQ,YAAcjwQ,EAAQsrQ,cAActqQ,MACtFjI,MAAK,EAAU,CAAET,KAAM,QAAS0I,KAAMhB,EAAQsrQ,cAActqQ,OAE9D,MAAMgF,EAAWrI,IACTovQ,EAAiBpvQ,IAAUA,EAAMmvQ,QACrC/zQ,MAAK,EAAU,CACbT,KAAM,QACNqF,UAGCovQ,EAAiBpvQ,KACpB5E,MAAK,EAAOq0D,OAAOpnD,UACjBrI,EACA5E,MAEFA,MAAK,EAAOq0D,OAAOkkN,YACjBv4Q,KAAK6P,MAAMjG,KACXhF,EACA5E,OAGJA,KAAKg2Q,YAAY,EA6CnB,OA3CAh2Q,MAAK,EAAWi0Q,EAAc,CAC5BzB,eAAgBD,GAAcC,eAC9BtrQ,GAAID,EAAQkxQ,QACZ1vQ,MAAOwvQ,EAAgBxvQ,MAAMuG,KAAKipQ,GAClCpvH,UAAYj/I,IACV,QAAa,IAATA,EAAJ,CASA,IACE5J,KAAKg4C,QAAQpuC,EACf,CAAE,MAAOhF,GAEP,YADAqI,EAAQrI,EAEV,CACA5E,MAAK,EAAOq0D,OAAOw0F,YAAYj/I,EAAM5J,MACrCA,MAAK,EAAOq0D,OAAOkkN,YACjB3uQ,EACA5J,KAAK6P,MAAMjL,MACX5E,MAEFA,KAAKg2Q,YAbL,MAFE/oQ,EAAQ,IAAInP,MAAM,GAAGkC,KAAK6wQ,+BAeX,EAEnB5jQ,UACA4nQ,OAAQ,CAACnB,EAAc9uQ,KACrB5E,MAAK,EAAU,CAAET,KAAM,SAAUm0Q,eAAc9uQ,SAAQ,EAEzD8vQ,QAAS,KACP10Q,MAAK,EAAU,CAAET,KAAM,SAAU,EAEnCo1Q,WAAY,KACV30Q,MAAK,EAAU,CAAET,KAAM,YAAa,EAEtCswJ,MAAO5oJ,EAAQ6H,QAAQ+gJ,MACvBunB,WAAYnwK,EAAQ6H,QAAQsoK,WAC5Bw8F,YAAa3sQ,EAAQ6H,QAAQ8kQ,YAC7BU,OAAQ,KAAM,IAETt0Q,MAAK,EAASi5C,OACvB,CACA,GAAU/5C,GAmERc,KAAK6P,MAlEW,CAACA,IACf,OAAQ3Q,EAAOK,MACb,IAAK,SACH,MAAO,IACFsQ,EACHmnQ,kBAAmB93Q,EAAOw0Q,aAC1BuD,mBAAoB/3Q,EAAO0F,OAE/B,IAAK,QACH,MAAO,IACFiL,EACH8gQ,YAAa,UAEjB,IAAK,WACH,MAAO,IACF9gQ,EACH8gQ,YAAa,YAEjB,IAAK,QACH,MAAO,IACF9gQ,KACA2oQ,EAAW3oQ,EAAMjG,KAAM5J,KAAK8O,SAC/BooQ,UAAWh4Q,EAAO+I,MAAQ,MAE9B,IAAK,UACH,MAAO,IACF4H,EACHjG,KAAM1K,EAAO0K,KACbgtQ,gBAAiB/mQ,EAAM+mQ,gBAAkB,EACzCC,cAAe33Q,EAAO23Q,eAAiB7yP,KAAKC,MAC5Crf,MAAO,KACPuyQ,eAAe,EACf/qQ,OAAQ,cACJlN,EAAOkvC,QAAU,CACnBuiO,YAAa,OACbqG,kBAAmB,EACnBC,mBAAoB,OAG1B,IAAK,QACH,MAAMryQ,EAAQ1F,EAAO0F,MACrB,OAAIovQ,EAAiBpvQ,IAAUA,EAAMkvQ,QAAU9zQ,MAAK,EAC3C,IAAKA,MAAK,EAAc2wQ,YAAa,QAEvC,IACF9gQ,EACHjL,QACAkyQ,iBAAkBjnQ,EAAMinQ,iBAAmB,EAC3CC,eAAgB/yP,KAAKC,MACrB+yP,kBAAmBnnQ,EAAMmnQ,kBAAoB,EAC7CC,mBAAoBryQ,EACpB+rQ,YAAa,OACbvkQ,OAAQ,SAEZ,IAAK,aACH,MAAO,IACFyD,EACHsnQ,eAAe,GAEnB,IAAK,WACH,MAAO,IACFtnQ,KACA3Q,EAAO2Q,OAEhB,EAEWlS,CAAQqC,KAAK6P,OAC1B,EAAc0lQ,OAAM,KAClBv1Q,KAAKu4H,UAAU/5H,SAASmB,IACtBA,EAAS84Q,eAAe,IAE1Bz4Q,MAAK,EAAO+3Q,OAAO,CAAEnmO,MAAO5xC,KAAMT,KAAM,UAAWL,UAAS,GAEhE,GAEF,SAASs5Q,EAAW5uQ,EAAMkF,GACxB,MAAO,CACLkoQ,kBAAmB,EACnBC,mBAAoB,KACpBtG,YAAagD,EAAS7kQ,EAAQ8kQ,aAAe,WAAa,iBAC9C,IAAThqQ,GAAmB,CACpBhF,MAAO,KACPwH,OAAQ,WAGd,CCrWA,IAAIk+I,EAAa,cAAcslH,EAC7B,WAAA7kP,CAAYspC,EAAS,CAAC,GACpB97B,QACAv4B,KAAKq0D,OAASA,EACdr0D,MAAK,EAA2B,IAAI7B,GACtC,CACA,GACA,KAAA+6B,CAAM3a,EAAQzP,EAASe,GACrB,MAAM0/E,EAAWzgF,EAAQygF,SACnBshL,EAAY/hQ,EAAQ+hQ,WAAaC,EAAsBvhL,EAAUzgF,GACvE,IAAI8iC,EAAQ5xC,KAAKqR,IAAIw/P,GAYrB,OAXKj/N,IACHA,EAAQ,IAAIykO,EAAM,CAChB93P,SACAgxE,WACAshL,YACA/hQ,QAASyP,EAAOm6P,oBAAoB5pQ,GACpCe,QACAymQ,eAAgB/3P,EAAOo6P,iBAAiBppL,KAE1CvvF,KAAKiV,IAAI28B,IAEJA,CACT,CACA,GAAA38B,CAAI28B,GACG5xC,MAAK,EAASyV,IAAIm8B,EAAMi/N,aAC3B7wQ,MAAK,EAASrB,IAAIizC,EAAMi/N,UAAWj/N,GACnC5xC,KAAK+3Q,OAAO,CACVx4Q,KAAM,QACNqyC,UAGN,CACA,MAAArgC,CAAOqgC,GACL,MAAMgnO,EAAa54Q,MAAK,EAASqR,IAAIugC,EAAMi/N,WACvC+H,IACFhnO,EAAMqgC,UACF2mM,IAAehnO,GACjB5xC,MAAK,EAAShB,OAAO4yC,EAAMi/N,WAE7B7wQ,KAAK+3Q,OAAO,CAAEx4Q,KAAM,UAAWqyC,UAEnC,CACA,KAAA5mC,GACE,EAAcuqQ,OAAM,KAClBv1Q,KAAKsvF,SAAS9wF,SAASozC,IACrB5xC,KAAKuR,OAAOqgC,EAAM,GAClB,GAEN,CACA,GAAAvgC,CAAIw/P,GACF,OAAO7wQ,MAAK,EAASqR,IAAIw/P,EAC3B,CACA,MAAAvhL,GACE,MAAO,IAAItvF,MAAK,EAASuc,SAC3B,CACA,IAAA++D,CAAKm1L,GACH,MAAMoI,EAAmB,CAAEnI,OAAO,KAASD,GAC3C,OAAOzwQ,KAAKsvF,SAAShU,MAClB1pC,GAAU4+N,EAAWqI,EAAkBjnO,IAE5C,CACA,OAAAknO,CAAQrI,EAAU,CAAC,GACjB,MAAMsI,EAAU/4Q,KAAKsvF,SACrB,OAAO3zF,OAAOwK,KAAKsqQ,GAAStwQ,OAAS,EAAI44Q,EAAQjmQ,QAAQ8+B,GAAU4+N,EAAWC,EAAS7+N,KAAUmnO,CACnG,CACA,MAAAhB,CAAO/xN,GACL,EAAcuvN,OAAM,KAClBv1Q,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASunD,EAAM,GACf,GAEN,CACA,OAAAimB,GACE,EAAcspM,OAAM,KAClBv1Q,KAAKsvF,SAAS9wF,SAASozC,IACrBA,EAAMq6B,SAAS,GACf,GAEN,CACA,QAAA+mM,GACE,EAAcuC,OAAM,KAClBv1Q,KAAKsvF,SAAS9wF,SAASozC,IACrBA,EAAMohO,UAAU,GAChB,GAEN,GCvFEgG,EAAW,cAAclD,EAC3B,GACA,GACA,GACA,WAAA/qP,CAAYspC,GACV97B,QACAv4B,KAAKi5Q,WAAa5kN,EAAO4kN,WACzBj5Q,MAAK,EAAiBq0D,EAAO6kN,cAC7Bl5Q,MAAK,EAAa,GAClBA,KAAK6P,MAAQwkD,EAAOxkD,OA6Mf,CACL5I,aAAS,EACT2C,UAAM,EACNhF,MAAO,KACP8uQ,aAAc,EACdyF,cAAe,KACfC,UAAU,EACVhtQ,OAAQ,OACRitQ,eAAW,EACXC,YAAa,GArNbt5Q,KAAKu2Q,WAAWliN,EAAOvlD,SACvB9O,KAAKg2Q,YACP,CACA,UAAAO,CAAWznQ,GACT9O,KAAK8O,QAAUA,EACf9O,KAAKm2Q,aAAan2Q,KAAK8O,QAAQmnQ,OACjC,CACA,QAAIhuQ,GACF,OAAOjI,KAAK8O,QAAQ7G,IACtB,CACA,WAAAmwH,CAAYz4H,GACLK,MAAK,EAAWuW,SAAS5W,KAC5BK,MAAK,EAAW6B,KAAKlC,GACrBK,KAAK+1Q,iBACL/1Q,MAAK,EAAe+3Q,OAAO,CACzBx4Q,KAAM,gBACNqtI,SAAU5sI,KACVL,aAGN,CACA,cAAA24H,CAAe34H,GACbK,MAAK,EAAaA,MAAK,EAAW8S,QAAQ+mB,GAAMA,IAAMl6B,IACtDK,KAAKg2Q,aACLh2Q,MAAK,EAAe+3Q,OAAO,CACzBx4Q,KAAM,kBACNqtI,SAAU5sI,KACVL,YAEJ,CACA,cAAAu2Q,GACOl2Q,MAAK,EAAWG,SACO,YAAtBH,KAAK6P,MAAMzD,OACbpM,KAAKg2Q,aAELh2Q,MAAK,EAAeuR,OAAOvR,MAGjC,CACA,WACE,OAAOA,MAAK,GAAU+0Q,YACtB/0Q,KAAK4sN,QAAQ5sN,KAAK6P,MAAMwpQ,UAC1B,CACA,aAAMzsD,CAAQysD,GACZr5Q,MAAK,EAAWi0Q,EAAc,CAC5B/sQ,GAAI,IACGlH,KAAK8O,QAAQyqQ,WAGXv5Q,KAAK8O,QAAQyqQ,WAAWF,GAFtBl4Q,QAAQE,OAAO,IAAIvD,MAAM,wBAIpC+2Q,OAAQ,CAACnB,EAAc9uQ,KACrB5E,MAAK,EAAU,CAAET,KAAM,SAAUm0Q,eAAc9uQ,SAAQ,EAEzD8vQ,QAAS,KACP10Q,MAAK,EAAU,CAAET,KAAM,SAAU,EAEnCo1Q,WAAY,KACV30Q,MAAK,EAAU,CAAET,KAAM,YAAa,EAEtCswJ,MAAO7vJ,KAAK8O,QAAQ+gJ,OAAS,EAC7BunB,WAAYp3K,KAAK8O,QAAQsoK,WACzBw8F,YAAa5zQ,KAAK8O,QAAQ8kQ,YAC1BU,OAAQ,IAAMt0Q,MAAK,EAAes0Q,OAAOt0Q,QAE3C,MAAMw5Q,EAAiC,YAAtBx5Q,KAAK6P,MAAMzD,OACtBgtQ,GAAYp5Q,MAAK,EAASu0Q,WAChC,IACE,IAAKiF,EAAU,CACbx5Q,MAAK,EAAU,CAAET,KAAM,UAAW85Q,YAAWD,mBACvCp5Q,MAAK,EAAeq0D,OAAOolN,WAC/BJ,EACAr5Q,OAEF,MAAMiH,QAAgBjH,KAAK8O,QAAQ2qQ,WAAWJ,IAC1CpyQ,IAAYjH,KAAK6P,MAAM5I,SACzBjH,MAAK,EAAU,CACbT,KAAM,UACN0H,UACAoyQ,YACAD,YAGN,CACA,MAAMxvQ,QAAa5J,MAAK,EAASi5C,QAiBjC,aAhBMj5C,MAAK,EAAeq0D,OAAOw0F,YAC/Bj/I,EACAyvQ,EACAr5Q,KAAK6P,MAAM5I,QACXjH,aAEIA,KAAK8O,QAAQ+5I,YAAYj/I,EAAMyvQ,EAAWr5Q,KAAK6P,MAAM5I,gBACrDjH,MAAK,EAAeq0D,OAAOkkN,YAC/B3uQ,EACA,KACA5J,KAAK6P,MAAMwpQ,UACXr5Q,KAAK6P,MAAM5I,QACXjH,aAEIA,KAAK8O,QAAQypQ,YAAY3uQ,EAAM,KAAMyvQ,EAAWr5Q,KAAK6P,MAAM5I,UACjEjH,MAAK,EAAU,CAAET,KAAM,UAAWqK,SAC3BA,CACT,CAAE,MAAOhF,GACP,IAyBE,YAxBM5E,MAAK,EAAeq0D,OAAOpnD,UAC/BrI,EACAy0Q,EACAr5Q,KAAK6P,MAAM5I,QACXjH,aAEIA,KAAK8O,QAAQ7B,UACjBrI,EACAy0Q,EACAr5Q,KAAK6P,MAAM5I,gBAEPjH,MAAK,EAAeq0D,OAAOkkN,iBAC/B,EACA3zQ,EACA5E,KAAK6P,MAAMwpQ,UACXr5Q,KAAK6P,MAAM5I,QACXjH,aAEIA,KAAK8O,QAAQypQ,iBACjB,EACA3zQ,EACAy0Q,EACAr5Q,KAAK6P,MAAM5I,UAEPrC,CACR,CAAE,QACA5E,MAAK,EAAU,CAAET,KAAM,QAASqF,SAClC,CACF,CAAE,QACA5E,MAAK,EAAe05Q,QAAQ15Q,KAC9B,CACF,CACA,GAAUd,GAsDRc,KAAK6P,MArDW,CAACA,IACf,OAAQ3Q,EAAOK,MACb,IAAK,SACH,MAAO,IACFsQ,EACH6jQ,aAAcx0Q,EAAOw0Q,aACrByF,cAAej6Q,EAAO0F,OAE1B,IAAK,QACH,MAAO,IACFiL,EACHupQ,UAAU,GAEd,IAAK,WACH,MAAO,IACFvpQ,EACHupQ,UAAU,GAEd,IAAK,UACH,MAAO,IACFvpQ,EACH5I,QAAS/H,EAAO+H,QAChB2C,UAAM,EACN8pQ,aAAc,EACdyF,cAAe,KACfv0Q,MAAO,KACPw0Q,SAAUl6Q,EAAOk6Q,SACjBhtQ,OAAQ,UACRitQ,UAAWn6Q,EAAOm6Q,UAClBC,YAAat1P,KAAKC,OAEtB,IAAK,UACH,MAAO,IACFpU,EACHjG,KAAM1K,EAAO0K,KACb8pQ,aAAc,EACdyF,cAAe,KACfv0Q,MAAO,KACPwH,OAAQ,UACRgtQ,UAAU,GAEd,IAAK,QACH,MAAO,IACFvpQ,EACHjG,UAAM,EACNhF,MAAO1F,EAAO0F,MACd8uQ,aAAc7jQ,EAAM6jQ,aAAe,EACnCyF,cAAej6Q,EAAO0F,MACtBw0Q,UAAU,EACVhtQ,OAAQ,SAEd,EAEWzO,CAAQqC,KAAK6P,OAC1B,EAAc0lQ,OAAM,KAClBv1Q,MAAK,EAAWxB,SAASmB,IACvBA,EAASg6Q,iBAAiBz6Q,EAAO,IAEnCc,MAAK,EAAe+3Q,OAAO,CACzBnrI,SAAU5sI,KACVT,KAAM,UACNL,UACA,GAEN,GClNE06Q,EAAgB,cAAchK,EAChC,WAAA7kP,CAAYspC,EAAS,CAAC,GACpB97B,QACAv4B,KAAKq0D,OAASA,EACdr0D,MAAK,EAA6B,IAAI00B,IACtC10B,MAAK,EAA0B,IAAI7B,IACnC6B,MAAK,EAAc,CACrB,CACA,GACA,GACA,GACA,KAAAk5B,CAAM3a,EAAQzP,EAASe,GACrB,MAAM+8H,EAAW,IAAIosI,EAAS,CAC5BE,cAAel5Q,KACfi5Q,aAAcj5Q,MAAK,EACnB8O,QAASyP,EAAOs7P,uBAAuB/qQ,GACvCe,UAGF,OADA7P,KAAKiV,IAAI23H,GACFA,CACT,CACA,GAAA33H,CAAI23H,GACF5sI,MAAK,EAAWiV,IAAI23H,GACpB,MAAM1vH,EAAQ48P,EAASltI,GACvB,GAAqB,iBAAV1vH,EAAoB,CAC7B,MAAM68P,EAAkB/5Q,MAAK,EAAQqR,IAAI6L,GACrC68P,EACFA,EAAgBl4Q,KAAK+qI,GAErB5sI,MAAK,EAAQrB,IAAIue,EAAO,CAAC0vH,GAE7B,CACA5sI,KAAK+3Q,OAAO,CAAEx4Q,KAAM,QAASqtI,YAC/B,CACA,MAAAr7H,CAAOq7H,GACL,GAAI5sI,MAAK,EAAWhB,OAAO4tI,GAAW,CACpC,MAAM1vH,EAAQ48P,EAASltI,GACvB,GAAqB,iBAAV1vH,EAAoB,CAC7B,MAAM68P,EAAkB/5Q,MAAK,EAAQqR,IAAI6L,GACzC,GAAI68P,EACF,GAAIA,EAAgB55Q,OAAS,EAAG,CAC9B,MAAMsT,EAAQsmQ,EAAgB57O,QAAQyuG,IACvB,IAAXn5H,GACFsmQ,EAAgBhnO,OAAOt/B,EAAO,EAElC,MAAWsmQ,EAAgB,KAAOntI,GAChC5sI,MAAK,EAAQhB,OAAOke,EAG1B,CACF,CACAld,KAAK+3Q,OAAO,CAAEx4Q,KAAM,UAAWqtI,YACjC,CACA,MAAA0nI,CAAO1nI,GACL,MAAM1vH,EAAQ48P,EAASltI,GACvB,GAAqB,iBAAV1vH,EAAoB,CAC7B,MAAM88P,EAAyBh6Q,MAAK,EAAQqR,IAAI6L,GAC1C+8P,EAAuBD,GAAwB1+L,MAClDngE,GAAyB,YAAnBA,EAAEtL,MAAMzD,SAEjB,OAAQ6tQ,GAAwBA,IAAyBrtI,CAC3D,CACE,OAAO,CAEX,CACA,OAAA8sI,CAAQ9sI,GACN,MAAM1vH,EAAQ48P,EAASltI,GACvB,GAAqB,iBAAV1vH,EAAoB,CAC7B,MAAMg9P,EAAgBl6Q,MAAK,EAAQqR,IAAI6L,IAAQo+D,MAAMngE,GAAMA,IAAMyxH,GAAYzxH,EAAEtL,MAAMupQ,WACrF,OAAOc,GAAenF,YAAc5zQ,QAAQC,SAC9C,CACE,OAAOD,QAAQC,SAEnB,CACA,KAAA4J,GACE,EAAcuqQ,OAAM,KAClBv1Q,MAAK,EAAWxB,SAASouI,IACvB5sI,KAAK+3Q,OAAO,CAAEx4Q,KAAM,UAAWqtI,YAAW,IAE5C5sI,MAAK,EAAWgL,QAChBhL,MAAK,EAAQgL,OAAO,GAExB,CACA,MAAAskF,GACE,OAAOhhF,MAAMwqB,KAAK94B,MAAK,EACzB,CACA,IAAAs7E,CAAKm1L,GACH,MAAMoI,EAAmB,CAAEnI,OAAO,KAASD,GAC3C,OAAOzwQ,KAAKsvF,SAAShU,MAClBsxD,GAAaqkI,EAAc4H,EAAkBjsI,IAElD,CACA,OAAAksI,CAAQrI,EAAU,CAAC,GACjB,OAAOzwQ,KAAKsvF,SAASx8E,QAAQ85H,GAAaqkI,EAAcR,EAAS7jI,IACnE,CACA,MAAAmrI,CAAO/xN,GACL,EAAcuvN,OAAM,KAClBv1Q,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASunD,EAAM,GACf,GAEN,CACA,qBAAAm0N,GACE,MAAMC,EAAkBp6Q,KAAKsvF,SAASx8E,QAAQ+mB,GAAMA,EAAEhqB,MAAMupQ,WAC5D,OAAO,EAAc7D,OACnB,IAAMp0Q,QAAQ81C,IACZmjO,EAAgBr5Q,KAAK6rI,GAAaA,EAASmoI,WAAWnzI,MAAM78D,OAGlE,GAEF,SAAS+0M,EAASltI,GAChB,OAAOA,EAAS99H,QAAQoO,OAAOhQ,EACjC,CCpHA,SAASmtQ,EAAsBC,GAC7B,MAAO,CACLhC,QAAS,CAACrxQ,EAAS2qC,KACjB,MAAM9iC,EAAU7H,EAAQ6H,QAClBy5B,EAAYthC,EAAQsrQ,cAActqQ,MAAMsyQ,WAAWhyO,UACnDiyO,EAAWvzQ,EAAQ4I,MAAMjG,MAAM0wQ,OAAS,GACxCG,EAAgBxzQ,EAAQ4I,MAAMjG,MAAM8wQ,YAAc,GACxD,IAAI/9Q,EAAS,CAAE29Q,MAAO,GAAII,WAAY,IAClCC,EAAc,EAClB,MAAMxC,EAAUntO,UACd,IAAI4vO,GAAY,EAChB,MAeM3qL,EAAUqiL,EAAcrrQ,EAAQ6H,QAAS7H,EAAQsrQ,cACjDsI,EAAY7vO,MAAOphC,EAAMikF,EAAO8iE,KACpC,GAAIiqH,EACF,OAAOz5Q,QAAQE,SAEjB,GAAa,MAATwsF,GAAiBjkF,EAAK0wQ,MAAMn6Q,OAC9B,OAAOgB,QAAQC,QAAQwI,GAEzB,MAAMwuQ,EAAiB,CACrB75P,OAAQtX,EAAQsX,OAChBgxE,SAAUtoF,EAAQsoF,SAClBurL,UAAWjtL,EACXtlD,UAAWooH,EAAW,WAAa,UACnC1oJ,KAAMhB,EAAQ6H,QAAQ7G,MA5BA,IAAC2b,IA8BPw0P,EA7BlBz8Q,OAAO8lB,eAAemC,EAAQ,SAAU,CACtClC,YAAY,EACZrQ,IAAK,KACCpK,EAAQ8oO,OAAOpgF,QACjBirH,GAAY,EAEZ3zQ,EAAQ8oO,OAAO95L,iBAAiB,SAAS,KACvC2kO,GAAY,CAAI,IAGb3zQ,EAAQ8oO,UAoBnB,MAAM//H,QAAa/f,EACjBmoL,IAEI,SAAE2C,GAAa9zQ,EAAQ6H,QACvBksQ,EAAQrqH,EAAW0hH,EAAaF,EACtC,MAAO,CACLmI,MAAOU,EAAMpxQ,EAAK0wQ,MAAOtqK,EAAM+qK,GAC/BL,WAAYM,EAAMpxQ,EAAK8wQ,WAAY7sL,EAAOktL,GAC3C,EAEH,GAAIxyO,GAAaiyO,EAASr6Q,OAAQ,CAChC,MAAMwwJ,EAAyB,aAAdpoH,EAEX0yO,EAAU,CACdX,MAAOE,EACPE,WAAYD,GAER5sL,GALc8iE,EAAWuqH,EAAuBC,GAK5BrsQ,EAASmsQ,GACnCt+Q,QAAek+Q,EAAUI,EAASptL,EAAO8iE,EAC3C,KAAO,CACL,MAAMyqH,EAAiBd,GAASE,EAASr6Q,OACzC,EAAG,CACD,MAAM0tF,EAAwB,IAAhB8sL,EAAoBF,EAAc,IAAM3rQ,EAAQusQ,iBAAmBF,EAAiBrsQ,EAASnS,GAC3G,GAAIg+Q,EAAc,GAAc,MAAT9sL,EACrB,MAEFlxF,QAAek+Q,EAAUl+Q,EAAQkxF,GACjC8sL,GACF,OAASA,EAAcS,EACzB,CACA,OAAOz+Q,CAAM,EAEXsK,EAAQ6H,QAAQupQ,UAClBpxQ,EAAQkxQ,QAAU,IACTlxQ,EAAQ6H,QAAQupQ,YACrBF,EACA,CACE55P,OAAQtX,EAAQsX,OAChBgxE,SAAUtoF,EAAQsoF,SAClBtnF,KAAMhB,EAAQ6H,QAAQ7G,KACtB8nO,OAAQ9oO,EAAQ8oO,QAElBn+L,GAIJ3qC,EAAQkxQ,QAAUA,CACpB,EAGN,CACA,SAASgD,EAAiBrsQ,GAAS,MAAEwrQ,EAAK,WAAEI,IAC1C,MAAM7rH,EAAYyrH,EAAMn6Q,OAAS,EACjC,OAAOm6Q,EAAMn6Q,OAAS,EAAI2O,EAAQqsQ,iBAChCb,EAAMzrH,GACNyrH,EACAI,EAAW7rH,GACX6rH,QACE,CACN,CACA,SAASQ,EAAqBpsQ,GAAS,MAAEwrQ,EAAK,WAAEI,IAC9C,OAAOJ,EAAMn6Q,OAAS,EAAI2O,EAAQosQ,uBAAuBZ,EAAM,GAAIA,EAAOI,EAAW,GAAIA,QAAc,CACzG,CACA,SAASY,EAAYxsQ,EAASlF,GAC5B,QAAKA,GAEqC,MAAnCuxQ,EAAiBrsQ,EAASlF,EACnC,CACA,SAAS2xQ,EAAgBzsQ,EAASlF,GAChC,SAAKA,IAASkF,EAAQosQ,uBAEwB,MAAvCA,EAAqBpsQ,EAASlF,EACvC,CCpGA,IAAIwgJ,EAAc,MAChB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,WAAAr/H,CAAYspC,EAAS,CAAC,GACpBr0D,MAAK,EAAcq0D,EAAOg2F,YAAc,IAAIC,EAC5CtqJ,MAAK,EAAiBq0D,EAAO6kN,eAAiB,IAAIU,EAClD55Q,MAAK,EAAkBq0D,EAAOiiN,gBAAkB,CAAC,EACjDt2Q,MAAK,EAAiC,IAAI7B,IAC1C6B,MAAK,EAAoC,IAAI7B,IAC7C6B,MAAK,EAAc,CACrB,CACA,KAAAw7Q,GACEx7Q,MAAK,IACoB,IAArBA,MAAK,IAETA,MAAK,EAAoByyQ,EAAa5zQ,WAAUmsC,MAAO2nO,IACjDA,UACI3yQ,KAAKm6Q,wBACXn6Q,MAAK,EAAYisE,UACnB,IAEFjsE,MAAK,EAAqB+yQ,EAAcl0Q,WAAUmsC,MAAOooO,IACnDA,UACIpzQ,KAAKm6Q,wBACXn6Q,MAAK,EAAYgzQ,WACnB,IAEJ,CACA,OAAAyI,GACEz7Q,MAAK,IACoB,IAArBA,MAAK,IAETA,MAAK,MACLA,MAAK,OAAoB,EACzBA,MAAK,MACLA,MAAK,OAAqB,EAC5B,CACA,UAAA29H,CAAW8yI,GACT,OAAOzwQ,MAAK,EAAY84Q,QAAQ,IAAKrI,EAASE,YAAa,aAAcxwQ,MAC3E,CACA,UAAAu7Q,CAAWjL,GACT,OAAOzwQ,MAAK,EAAe84Q,QAAQ,IAAKrI,EAASrkQ,OAAQ,YAAajM,MACxE,CACA,YAAAw7Q,CAAapsL,GACX,MAAMzgF,EAAU9O,KAAK04Q,oBAAoB,CAAEnpL,aAC3C,OAAOvvF,MAAK,EAAYqR,IAAIvC,EAAQ+hQ,YAAYhhQ,MAAMjG,IACxD,CACA,eAAAgyQ,CAAgB9sQ,GACd,MAAM+sQ,EAAmB77Q,KAAK04Q,oBAAoB5pQ,GAC5C8iC,EAAQ5xC,MAAK,EAAYk5B,MAAMl5B,KAAM67Q,GACrC3yE,EAAat3J,EAAM/hC,MAAMjG,KAC/B,YAAmB,IAAfs/L,EACKlpM,KAAK87Q,WAAWhtQ,IAErBA,EAAQitQ,mBAAqBnqO,EAAM8lO,cAAcpH,EAAiBuL,EAAiBxL,UAAWz+N,KAC3F5xC,KAAKg8Q,cAAcH,GAEnB16Q,QAAQC,QAAQ8nM,GACzB,CACA,cAAA+yE,CAAexL,GACb,OAAOzwQ,MAAK,EAAY84Q,QAAQrI,GAAS1vQ,KAAI,EAAGwuF,WAAU1/E,WAEjD,CAAC0/E,EADK1/E,EAAMjG,OAGvB,CACA,YAAAsyQ,CAAa3sL,EAAU4C,EAASrjF,GAC9B,MAAM+sQ,EAAmB77Q,KAAK04Q,oBAAoB,CAAEnpL,aAC9C39C,EAAQ5xC,MAAK,EAAYqR,IAC7BwqQ,EAAiBhL,WAEbkB,EAAWngO,GAAO/hC,MAAMjG,KACxBA,EZzFV,SAA0BuoF,EAAShwF,GACjC,MAA0B,mBAAZgwF,EAAyBA,EAAQhwF,GAASgwF,CAC1D,CYuFiBgqL,CAAiBhqL,EAAS4/K,GACvC,QAAa,IAATnoQ,EAGJ,OAAO5J,MAAK,EAAYk5B,MAAMl5B,KAAM67Q,GAAkB7jO,QAAQpuC,EAAM,IAAKkF,EAASs/B,QAAQ,GAC5F,CACA,cAAAguO,CAAe3L,EAASt+K,EAASrjF,GAC/B,OAAO,EAAcymQ,OACnB,IAAMv1Q,MAAK,EAAY84Q,QAAQrI,GAAS1vQ,KAAI,EAAGwuF,cAAe,CAC5DA,EACAvvF,KAAKk8Q,aAAa3sL,EAAU4C,EAASrjF,OAG3C,CACA,aAAAutQ,CAAc9sL,GACZ,MAAMzgF,EAAU9O,KAAK04Q,oBAAoB,CAAEnpL,aAC3C,OAAOvvF,MAAK,EAAYqR,IACtBvC,EAAQ+hQ,YACPhhQ,KACL,CACA,aAAAysQ,CAAc7L,GACZ,MAAMpmH,EAAarqJ,MAAK,EACxB,EAAcu1Q,OAAM,KAClBlrH,EAAWyuH,QAAQrI,GAASjyQ,SAASozC,IACnCy4G,EAAW94I,OAAOqgC,EAAM,GACxB,GAEN,CACA,YAAA2qO,CAAa9L,EAAS3hQ,GACpB,MAAMu7I,EAAarqJ,MAAK,EACxB,OAAO,EAAcu1Q,OAAM,KACzBlrH,EAAWyuH,QAAQrI,GAASjyQ,SAASozC,IACnCA,EAAMrf,OAAO,IAERvyB,KAAKw8Q,eACV,CACEj9Q,KAAM,YACHkxQ,GAEL3hQ,KAGN,CACA,aAAA2tQ,CAAchM,EAASqE,EAAgB,CAAC,GACtC,MAAM4H,EAAyB,CAAE5I,QAAQ,KAASgB,GAC5C6H,EAAW,EAAcpH,OAC7B,IAAMv1Q,MAAK,EAAY84Q,QAAQrI,GAAS1vQ,KAAK6wC,GAAUA,EAAM5tC,OAAO04Q,OAEtE,OAAOv7Q,QAAQ81C,IAAI0lO,GAAUh4Q,KAAKogE,GAAM68D,MAAM78D,EAChD,CACA,iBAAA63M,CAAkBnM,EAAS3hQ,EAAU,CAAC,GACpC,OAAO,EAAcymQ,OAAM,KACzBv1Q,MAAK,EAAY84Q,QAAQrI,GAASjyQ,SAASozC,IACzCA,EAAMomO,YAAY,IAES,SAAzBvH,GAASoM,YACJ17Q,QAAQC,UAEVpB,KAAKw8Q,eACV,IACK/L,EACHlxQ,KAAMkxQ,GAASoM,aAAepM,GAASlxQ,MAAQ,UAEjDuP,KAGN,CACA,cAAA0tQ,CAAe/L,EAAS3hQ,EAAU,CAAC,GACjC,MAAMyjQ,EAAe,IAChBzjQ,EACH+oQ,cAAe/oQ,EAAQ+oQ,gBAAiB,GAEpC8E,EAAW,EAAcpH,OAC7B,IAAMv1Q,MAAK,EAAY84Q,QAAQrI,GAAS39P,QAAQ8+B,IAAWA,EAAM2lO,eAAcx2Q,KAAK6wC,IAClF,IAAI1wC,EAAU0wC,EAAMwpG,WAAM,EAAQm3H,GAIlC,OAHKA,EAAauK,eAChB57Q,EAAUA,EAAQ0gI,MAAM78D,IAES,WAA5BnzB,EAAM/hC,MAAM8gQ,YAA2BxvQ,QAAQC,UAAYF,CAAO,MAG7E,OAAOC,QAAQ81C,IAAI0lO,GAAUh4Q,KAAKogE,EACpC,CACA,UAAA+2M,CAAWhtQ,GACT,MAAM+sQ,EAAmB77Q,KAAK04Q,oBAAoB5pQ,QACnB,IAA3B+sQ,EAAiBhsH,QACnBgsH,EAAiBhsH,OAAQ,GAE3B,MAAMj+G,EAAQ5xC,MAAK,EAAYk5B,MAAMl5B,KAAM67Q,GAC3C,OAAOjqO,EAAM8lO,cACXpH,EAAiBuL,EAAiBxL,UAAWz+N,IAC3CA,EAAMwpG,MAAMygI,GAAoB16Q,QAAQC,QAAQwwC,EAAM/hC,MAAMjG,KAClE,CACA,aAAAoyQ,CAAcltQ,GACZ,OAAO9O,KAAK87Q,WAAWhtQ,GAASnK,KAAKogE,GAAM68D,MAAM78D,EACnD,CACA,kBAAAg4M,CAAmBjuQ,GAEjB,OADAA,EAAQumH,SAAWglJ,EAAsBvrQ,EAAQwrQ,OAC1Ct6Q,KAAK87Q,WAAWhtQ,EACzB,CACA,qBAAAkuQ,CAAsBluQ,GACpB,OAAO9O,KAAK+8Q,mBAAmBjuQ,GAASnK,KAAKogE,GAAM68D,MAAM78D,EAC3D,CACA,uBAAAk4M,CAAwBnuQ,GAEtB,OADAA,EAAQumH,SAAWglJ,EAAsBvrQ,EAAQwrQ,OAC1Ct6Q,KAAK47Q,gBAAgB9sQ,EAC9B,CACA,qBAAAqrQ,GACE,OAAIpH,EAAcM,WACTrzQ,MAAK,EAAem6Q,wBAEtBh5Q,QAAQC,SACjB,CACA,aAAAo1Q,GACE,OAAOx2Q,MAAK,CACd,CACA,gBAAAk9Q,GACE,OAAOl9Q,MAAK,CACd,CACA,iBAAAm9Q,GACE,OAAOn9Q,MAAK,CACd,CACA,iBAAAo9Q,CAAkBtuQ,GAChB9O,MAAK,EAAkB8O,CACzB,CACA,gBAAAuuQ,CAAiB9tL,EAAUzgF,GACzB9O,MAAK,EAAerB,IAAIwyQ,EAAQ5hL,GAAW,CACzCA,WACA+mL,eAAgBxnQ,GAEpB,CACA,gBAAA6pQ,CAAiBppL,GACf,MAAM/5D,EAAW,IAAIx1B,MAAK,EAAeuc,UACnC5f,EAAS,CAAC,EAMhB,OALA64B,EAASh3B,SAAS8+Q,IACZvM,EAAgBxhL,EAAU+tL,EAAa/tL,WACzC5zF,OAAOqZ,OAAOrY,EAAQ2gR,EAAahH,eACrC,IAEK35Q,CACT,CACA,mBAAA4gR,CAAoBrM,EAAapiQ,GAC/B9O,MAAK,EAAkBrB,IAAIwyQ,EAAQD,GAAc,CAC/CA,cACAoF,eAAgBxnQ,GAEpB,CACA,mBAAA0uQ,CAAoBtM,GAClB,MAAM17O,EAAW,IAAIx1B,MAAK,EAAkBuc,UACtC5f,EAAS,CAAC,EAMhB,OALA64B,EAASh3B,SAAS8+Q,IACZvM,EAAgBG,EAAaoM,EAAapM,cAC5Cv1Q,OAAOqZ,OAAOrY,EAAQ2gR,EAAahH,eACrC,IAEK35Q,CACT,CACA,mBAAA+7Q,CAAoB5pQ,GAClB,GAAIA,EAAQ2uQ,WACV,OAAO3uQ,EAET,MAAM+sQ,EAAmB,IACpB77Q,MAAK,EAAgB+4Q,WACrB/4Q,KAAK24Q,iBAAiB7pQ,EAAQygF,aAC9BzgF,EACH2uQ,YAAY,GAoBd,OAlBK5B,EAAiBhL,YACpBgL,EAAiBhL,UAAYC,EAC3B+K,EAAiBtsL,SACjBssL,SAGwC,IAAxCA,EAAiB6B,qBACnB7B,EAAiB6B,mBAAsD,WAAjC7B,EAAiBjI,kBAEnB,IAAlCiI,EAAiBiB,eACnBjB,EAAiBiB,eAAiBjB,EAAiB8B,WAEhD9B,EAAiBjI,aAAeiI,EAAiBxD,YACpDwD,EAAiBjI,YAAc,gBAE7BiI,EAAiB5rL,UAAYU,IAC/BkrL,EAAiBnzO,SAAU,GAEtBmzO,CACT,CACA,sBAAAhC,CAAuB/qQ,GACrB,OAAIA,GAAS2uQ,WACJ3uQ,EAEF,IACF9O,MAAK,EAAgB49Q,aACrB9uQ,GAASoiQ,aAAelxQ,KAAKw9Q,oBAAoB1uQ,EAAQoiQ,gBACzDpiQ,EACH2uQ,YAAY,EAEhB,CACA,KAAAzyQ,GACEhL,MAAK,EAAYgL,QACjBhL,MAAK,EAAegL,OACtB,GCtRE,EAAgB,cAAc4kQ,EAChC,WAAA7kP,CAAYxM,EAAQzP,GAClBypB,QACAv4B,KAAK8O,QAAUA,EACf9O,MAAK,EAAUue,EACfve,MAAK,EAAe,KACpBA,MAAK,EAAmBszQ,IACnBtzQ,KAAK8O,QAAQ+uQ,+BAChB79Q,MAAK,EAAiBqB,OACpB,IAAIvD,MAAM,8DAGdkC,KAAK89Q,cACL99Q,KAAKu2Q,WAAWznQ,EAClB,CACA,GACA,QAAgB,EAChB,QAA4B,EAC5B,QAAiB,EACjB,GACA,GACA,GACA,GACA,GACA,GAGA,GACA,GACA,GACA,GACA,GAAgC,IAAI4lB,IACpC,WAAAopP,GACE99Q,KAAK43Q,QAAU53Q,KAAK43Q,QAAQ5oQ,KAAKhP,KACnC,CACA,WAAA6vQ,GAC8B,IAAxB7vQ,KAAKwoN,UAAUvzL,OACjBj1B,MAAK,EAAco4H,YAAYp4H,MAC3B+9Q,EAAmB/9Q,MAAK,EAAeA,KAAK8O,SAC9C9O,MAAK,IAELA,KAAKg+Q,eAEPh+Q,MAAK,IAET,CACA,aAAA8vQ,GACO9vQ,KAAK+vQ,gBACR/vQ,KAAKiyE,SAET,CACA,sBAAA6lM,GACE,OAAOmG,EACLj+Q,MAAK,EACLA,KAAK8O,QACL9O,KAAK8O,QAAQ4uQ,mBAEjB,CACA,wBAAA/F,GACE,OAAOsG,EACLj+Q,MAAK,EACLA,KAAK8O,QACL9O,KAAK8O,QAAQovQ,qBAEjB,CACA,OAAAjsM,GACEjyE,KAAKwoN,UAA4B,IAAI9zL,IACrC10B,MAAK,IACLA,MAAK,IACLA,MAAK,EAAcs4H,eAAet4H,KACpC,CACA,UAAAu2Q,CAAWznQ,EAASqvQ,GAClB,MAAMC,EAAcp+Q,KAAK8O,QACnBuvQ,EAAYr+Q,MAAK,EAEvB,GADAA,KAAK8O,QAAU9O,MAAK,EAAQ04Q,oBAAoB5pQ,QACnB,IAAzB9O,KAAK8O,QAAQ45B,SAAsD,kBAAzB1oC,KAAK8O,QAAQ45B,SAAyD,mBAAzB1oC,KAAK8O,QAAQ45B,SAA8F,kBAA7D6nO,EAAevwQ,KAAK8O,QAAQ45B,QAAS1oC,MAAK,GACjL,MAAM,IAAIlC,MACR,yEAGJkC,MAAK,IACLA,MAAK,EAAcu2Q,WAAWv2Q,KAAK8O,SAC/BsvQ,EAAYX,aAAe9L,EAAoB3xQ,KAAK8O,QAASsvQ,IAC/Dp+Q,MAAK,EAAQw2Q,gBAAgBuB,OAAO,CAClCx4Q,KAAM,yBACNqyC,MAAO5xC,MAAK,EACZL,SAAUK,OAGd,MAAMo3E,EAAUp3E,KAAK+vQ,eACjB34L,GAAWknM,EACbt+Q,MAAK,EACLq+Q,EACAr+Q,KAAK8O,QACLsvQ,IAEAp+Q,MAAK,IAEPA,KAAKg+Q,aAAaG,IACd/mM,GAAYp3E,MAAK,IAAkBq+Q,GAAa9N,EAAevwQ,KAAK8O,QAAQ45B,QAAS1oC,MAAK,KAAmBuwQ,EAAe6N,EAAY11O,QAAS1oC,MAAK,IAAkBswQ,EAAiBtwQ,KAAK8O,QAAQuhQ,UAAWrwQ,MAAK,KAAmBswQ,EAAiB8N,EAAY/N,UAAWrwQ,MAAK,IACxRA,MAAK,IAEP,MAAMu+Q,EAAsBv+Q,MAAK,KAC7Bo3E,GAAYp3E,MAAK,IAAkBq+Q,GAAa9N,EAAevwQ,KAAK8O,QAAQ45B,QAAS1oC,MAAK,KAAmBuwQ,EAAe6N,EAAY11O,QAAS1oC,MAAK,IAAkBu+Q,IAAwBv+Q,MAAK,GACvMA,MAAK,EAAuBu+Q,EAEhC,CACA,mBAAAC,CAAoB1vQ,GAClB,MAAM8iC,EAAQ5xC,MAAK,EAAQw2Q,gBAAgBt9O,MAAMl5B,MAAK,EAAS8O,GACzDnS,EAASqD,KAAKy+Q,aAAa7sO,EAAO9iC,GAMxC,OAmVqD4vQ,EAxVL/hR,GAyV7Cg1Q,EAzVuC3xQ,KAyVVy3Q,mBAAoBiH,KAxVlD1+Q,MAAK,EAAiBrD,EACtBqD,MAAK,EAAwBA,KAAK8O,QAClC9O,MAAK,EAAsBA,MAAK,EAAc6P,OAEzClT,EAmVX,IAAyD+hR,CAlVvD,CACA,gBAAAjH,GACE,OAAOz3Q,MAAK,CACd,CACA,WAAA2+Q,CAAYhiR,EAAQiiR,GAClB,MAAMC,EAAgB,CAAC,EAYvB,OAXAljR,OAAOwK,KAAKxJ,GAAQ6B,SAASE,IAC3B/C,OAAO8lB,eAAeo9P,EAAengR,EAAK,CACxCwjB,cAAc,EACdR,YAAY,EACZrQ,IAAK,KACHrR,KAAK8+Q,UAAUpgR,GACfkgR,IAAgBlgR,GACT/B,EAAO+B,KAEhB,IAEGmgR,CACT,CACA,SAAAC,CAAUpgR,GACRsB,MAAK,EAAciV,IAAIvW,EACzB,CACA,eAAAqgR,GACE,OAAO/+Q,MAAK,CACd,CACA,OAAA43Q,KAAa9oQ,GAAY,CAAC,GACxB,OAAO9O,KAAKo7I,MAAM,IACbtsI,GAEP,CACA,eAAAkwQ,CAAgBlwQ,GACd,MAAM+sQ,EAAmB77Q,MAAK,EAAQ04Q,oBAAoB5pQ,GACpD8iC,EAAQ5xC,MAAK,EAAQw2Q,gBAAgBt9O,MAAMl5B,MAAK,EAAS67Q,GAC/D,OAAOjqO,EAAMwpG,QAAQz2I,MAAK,IAAM3E,KAAKy+Q,aAAa7sO,EAAOiqO,IAC3D,CACA,KAAAzgI,CAAMm3H,GACJ,OAAOvyQ,MAAK,EAAc,IACrBuyQ,EACHsF,cAAetF,EAAasF,gBAAiB,IAC5ClzQ,MAAK,KACN3E,KAAKg+Q,eACEh+Q,MAAK,IAEhB,CACA,GAAcuyQ,GACZvyQ,MAAK,IACL,IAAIkB,EAAUlB,MAAK,EAAco7I,MAC/Bp7I,KAAK8O,QACLyjQ,GAKF,OAHKA,GAAcuK,eACjB57Q,EAAUA,EAAQ0gI,MAAM78D,IAEnB7jE,CACT,CACA,KACElB,MAAK,IACL,MAAMqwQ,EAAYC,EAChBtwQ,KAAK8O,QAAQuhQ,UACbrwQ,MAAK,GAEP,GAAIgwQ,GAAYhwQ,MAAK,EAAegxQ,UAAYd,EAAeG,GAC7D,OAEF,MACMxyM,EADOsyM,EAAenwQ,MAAK,EAAe62Q,cAAexG,GACxC,EACvBrwQ,MAAK,EAAkBooD,YAAW,KAC3BpoD,MAAK,EAAegxQ,SACvBhxQ,KAAKg+Q,cACP,GACCngN,EACL,CACA,KACE,OAAgD,mBAAjC79D,KAAK8O,QAAQmwQ,gBAAiCj/Q,KAAK8O,QAAQmwQ,gBAAgBj/Q,MAAK,GAAiBA,KAAK8O,QAAQmwQ,mBAAoB,CACnJ,CACA,GAAuBC,GACrBl/Q,MAAK,IACLA,MAAK,EAA0Bk/Q,GAC3BlP,IAAyE,IAA7DO,EAAevwQ,KAAK8O,QAAQ45B,QAAS1oC,MAAK,IAA6BkwQ,EAAelwQ,MAAK,IAA6D,IAAjCA,MAAK,IAG5IA,MAAK,EAAqBqnD,aAAY,MAChCrnD,KAAK8O,QAAQqwQ,6BAA+B1M,EAAaI,cAC3D7yQ,MAAK,GACP,GACCA,MAAK,GACV,CACA,KACEA,MAAK,IACLA,MAAK,EAAuBA,MAAK,IACnC,CACA,KACMA,MAAK,IACPuoD,aAAavoD,MAAK,GAClBA,MAAK,OAAkB,EAE3B,CACA,KACMA,MAAK,IACPgoD,cAAchoD,MAAK,GACnBA,MAAK,OAAqB,EAE9B,CACA,YAAAy+Q,CAAa7sO,EAAO9iC,GAClB,MAAMuvQ,EAAYr+Q,MAAK,EACjBo+Q,EAAcp+Q,KAAK8O,QACnBswQ,EAAap/Q,MAAK,EAClBq/Q,EAAkBr/Q,MAAK,EACvBs/Q,EAAoBt/Q,MAAK,EAEzBu/Q,EADc3tO,IAAUysO,EACUzsO,EAAM/hC,MAAQ7P,MAAK,GACrD,MAAE6P,GAAU+hC,EAClB,IAEIhoC,EAFAk4G,EAAW,IAAKjyG,GAChB2vQ,GAAoB,EAExB,GAAI1wQ,EAAQ2wQ,mBAAoB,CAC9B,MAAMroM,EAAUp3E,KAAK+vQ,eACf2P,GAAgBtoM,GAAW2mM,EAAmBnsO,EAAO9iC,GACrD6wQ,EAAkBvoM,GAAWknM,EAAsB1sO,EAAOysO,EAAWvvQ,EAASsvQ,IAChFsB,GAAgBC,KAClB79J,EAAW,IACNA,KACA02J,EAAW3oQ,EAAMjG,KAAMgoC,EAAM9iC,WAGD,gBAA/BA,EAAQ2wQ,qBACV39J,EAAS6uJ,YAAc,OAE3B,CACA,IAAI,MAAE/rQ,EAAK,eAAEmyQ,EAAc,OAAE3qQ,GAAW01G,EACxC,GAAIhzG,EAAQ+vG,aAA4B,IAAlBiD,EAASl4G,KAC7B,GAAIw1Q,GAAct9J,EAASl4G,OAASy1Q,GAAiBz1Q,MAAQkF,EAAQ+vG,SAAW7+G,MAAK,EACnF4J,EAAO5J,MAAK,OAEZ,IACEA,MAAK,EAAY8O,EAAQ+vG,OACzBj1G,EAAOkF,EAAQ+vG,OAAOiD,EAASl4G,MAC/BA,EAAOkoQ,EAAYsN,GAAYx1Q,KAAMA,EAAMkF,GAC3C9O,MAAK,EAAgB4J,EACrB5J,MAAK,EAAe,IACtB,CAAE,MAAO4/Q,GACP5/Q,MAAK,EAAe4/Q,CACtB,MAGFh2Q,EAAOk4G,EAASl4G,KAElB,QAAgC,IAA5BkF,EAAQ+wQ,sBAAuC,IAATj2Q,GAA8B,YAAXwC,EAAsB,CACjF,IAAIyzQ,EACJ,GAAIT,GAAYI,mBAAqB1wQ,EAAQ+wQ,kBAAoBP,GAAmBO,gBAClFA,EAAkBT,EAAWx1Q,UAM7B,GAJAi2Q,EAAqD,mBAA5B/wQ,EAAQ+wQ,gBAAiC/wQ,EAAQ+wQ,gBACxE7/Q,MAAK,GAA2B6P,MAAMjG,KACtC5J,MAAK,GACH8O,EAAQ+wQ,gBACR/wQ,EAAQ+vG,aAA8B,IAApBghK,EACpB,IACEA,EAAkB/wQ,EAAQ+vG,OAAOghK,GACjC7/Q,MAAK,EAAe,IACtB,CAAE,MAAO4/Q,GACP5/Q,MAAK,EAAe4/Q,CACtB,MAGoB,IAApBC,IACFzzQ,EAAS,UACTxC,EAAOkoQ,EACLsN,GAAYx1Q,KACZi2Q,EACA/wQ,GAEF0wQ,GAAoB,EAExB,CACIx/Q,MAAK,IACP4E,EAAQ5E,MAAK,EACb4J,EAAO5J,MAAK,EACZ+2Q,EAAiB/yP,KAAKC,MACtB7X,EAAS,SAEX,MAAMuxH,EAAsC,aAAzB7b,EAAS6uJ,YACtBlzI,EAAuB,YAAXrxH,EACZqsB,EAAqB,UAAXrsB,EACVmxH,EAAYE,GAAaE,EACzB+4I,OAAmB,IAAT9sQ,EA4BVk2Q,EA3BS,CACb1zQ,SACAukQ,YAAa7uJ,EAAS6uJ,YACtBlzI,YACAsiJ,UAAsB,YAAX3zQ,EACXqsB,UACAunP,iBAAkBziJ,EAClBA,YACA3zH,OACAitQ,cAAe/0J,EAAS+0J,cACxBjyQ,QACAmyQ,iBACArD,aAAc5xJ,EAASk1J,kBACvBmC,cAAer3J,EAASm1J,mBACxBH,iBAAkBh1J,EAASg1J,iBAC3BmJ,UAAWn+J,EAAS80J,gBAAkB,GAAK90J,EAASg1J,iBAAmB,EACvEoJ,oBAAqBp+J,EAAS80J,gBAAkB2I,EAAkB3I,iBAAmB90J,EAASg1J,iBAAmByI,EAAkBzI,iBACnIn5I,aACAwiJ,aAAcxiJ,IAAeF,EAC7B2iJ,eAAgB3nP,IAAYi+O,EAC5B0C,SAAmC,WAAzBt3J,EAAS6uJ,YACnB6O,oBACAa,eAAgB5nP,GAAWi+O,EAC3B1F,QAASA,EAAQp/N,EAAO9iC,GACxB8oQ,QAAS53Q,KAAK43Q,QACd12Q,QAASlB,MAAK,GAGhB,GAAIA,KAAK8O,QAAQ+uQ,8BAA+B,CAC9C,MAAMyC,EAA8B/M,IACR,UAAtBuM,EAAW1zQ,OACbmnQ,EAASlyQ,OAAOy+Q,EAAWl7Q,YACE,IAApBk7Q,EAAWl2Q,MACpB2pQ,EAASnyQ,QAAQ0+Q,EAAWl2Q,KAC9B,EAEI22Q,EAAmB,KACvB,MAAM/zD,EAAUxsN,MAAK,EAAmB8/Q,EAAW5+Q,QAAUoyQ,IAC7DgN,EAA2B9zD,EAAQ,EAE/Bg0D,EAAexgR,MAAK,EAC1B,OAAQwgR,EAAap0Q,QACnB,IAAK,UACCwlC,EAAMi/N,YAAcwN,EAAUxN,WAChCyP,EAA2BE,GAE7B,MACF,IAAK,YACuB,UAAtBV,EAAW1zQ,QAAsB0zQ,EAAWl2Q,OAAS42Q,EAAankR,OACpEkkR,IAEF,MACF,IAAK,WACuB,UAAtBT,EAAW1zQ,QAAsB0zQ,EAAWl7Q,QAAU47Q,EAAa33O,QACrE03O,IAIR,CACA,OAAOT,CACT,CACA,YAAA9B,CAAaG,GACX,MAAMiB,EAAap/Q,MAAK,EAClB8/Q,EAAa9/Q,KAAKy+Q,aAAaz+Q,MAAK,EAAeA,KAAK8O,SAM9D,GALA9O,MAAK,EAAsBA,MAAK,EAAc6P,MAC9C7P,MAAK,EAAwBA,KAAK8O,aACI,IAAlC9O,MAAK,EAAoB4J,OAC3B5J,MAAK,EAA4BA,MAAK,GAEpC2xQ,EAAoBmO,EAAYV,GAClC,OAEFp/Q,MAAK,EAAiB8/Q,EACtB,MAAMW,EAAuB,CAAC,GAsBG,IAA7BtC,GAAe31D,WArBW,MAC5B,IAAK42D,EACH,OAAO,EAET,MAAM,oBAAEsB,GAAwB1gR,KAAK8O,QAC/B6xQ,EAA0D,mBAAxBD,EAAqCA,IAAwBA,EACrG,GAAiC,QAA7BC,IAAuCA,IAA6B3gR,MAAK,EAAci1B,KACzF,OAAO,EAET,MAAM2rP,EAAgB,IAAIlsP,IACxBisP,GAA4B3gR,MAAK,GAKnC,OAHIA,KAAK8O,QAAQguQ,cACf8D,EAAc3rQ,IAAI,SAEbtZ,OAAOwK,KAAKnG,MAAK,GAAgBoC,MAAM1D,IAC5C,MAAMmiR,EAAWniR,EAEjB,OADgBsB,MAAK,EAAe6gR,KAAczB,EAAWyB,IAC3CD,EAAcnrQ,IAAIorQ,EAAS,GAC7C,EAEsCC,KACxCL,EAAqBj4D,WAAY,GAEnCxoN,MAAK,EAAQ,IAAKygR,KAAyBtC,GAC7C,CACA,KACE,MAAMvsO,EAAQ5xC,MAAK,EAAQw2Q,gBAAgBt9O,MAAMl5B,MAAK,EAASA,KAAK8O,SACpE,GAAI8iC,IAAU5xC,MAAK,EACjB,OAEF,MAAMq+Q,EAAYr+Q,MAAK,EACvBA,MAAK,EAAgB4xC,EACrB5xC,MAAK,EAA4B4xC,EAAM/hC,MACnC7P,KAAK+vQ,iBACPsO,GAAW/lJ,eAAet4H,MAC1B4xC,EAAMwmF,YAAYp4H,MAEtB,CACA,aAAAy4Q,GACEz4Q,KAAKg+Q,eACDh+Q,KAAK+vQ,gBACP/vQ,MAAK,GAET,CACA,GAAQm+Q,GACN,EAAc5I,OAAM,KACd4I,EAAc31D,WAChBxoN,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASuB,MAAK,EAAe,IAGjCA,MAAK,EAAQw2Q,gBAAgBuB,OAAO,CAClCnmO,MAAO5xC,MAAK,EACZT,KAAM,0BACN,GAEN,GAKF,SAASw+Q,EAAmBnsO,EAAO9iC,GACjC,OAJF,SAA2B8iC,EAAO9iC,GAChC,OAAkD,IAA3CyhQ,EAAezhQ,EAAQ45B,QAASkJ,SAAyC,IAArBA,EAAM/hC,MAAMjG,QAA4C,UAAvBgoC,EAAM/hC,MAAMzD,SAA+C,IAAzB0C,EAAQiyQ,aACxI,CAESC,CAAkBpvO,EAAO9iC,SAAiC,IAArB8iC,EAAM/hC,MAAMjG,MAAmBq0Q,EAAcrsO,EAAO9iC,EAASA,EAAQmyQ,eACnH,CACA,SAAShD,EAAcrsO,EAAO9iC,EAASuhD,GACrC,IAA+C,IAA3CkgN,EAAezhQ,EAAQ45B,QAASkJ,GAAkB,CACpD,MAAMv1C,EAAyB,mBAAVg0D,EAAuBA,EAAMze,GAASye,EAC3D,MAAiB,WAAVh0D,IAAgC,IAAVA,GAAmB20Q,EAAQp/N,EAAO9iC,EACjE,CACA,OAAO,CACT,CACA,SAASwvQ,EAAsB1sO,EAAOysO,EAAWvvQ,EAASsvQ,GACxD,OAAQxsO,IAAUysO,IAA4D,IAA/C9N,EAAe6N,EAAY11O,QAASkJ,OAAuB9iC,EAAQ6uQ,UAAmC,UAAvB/rO,EAAM/hC,MAAMzD,SAAuB4kQ,EAAQp/N,EAAO9iC,EAClK,CACA,SAASkiQ,EAAQp/N,EAAO9iC,GACtB,OAAkD,IAA3CyhQ,EAAezhQ,EAAQ45B,QAASkJ,IAAoBA,EAAM8lO,cAAcpH,EAAiBxhQ,EAAQuhQ,UAAWz+N,GACrH,CChdA,SAASsvO,EAAWC,EAAQC,GAC1B,OAAOD,EAAOruQ,QAAQ+mB,IAAOunP,EAAO7qQ,SAASsjB,IAC/C,CAMA,IAAIwnP,GAAkB,cAAczR,EAClC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAAmB,GACnB,WAAA7kP,CAAYxM,EAAQw6P,EAASjqQ,GAC3BypB,QACAv4B,MAAK,EAAUue,EACfve,MAAK,EAAW8O,EAChB9O,MAAK,EAAW,GAChBA,MAAK,EAAa,GAClBA,MAAK,EAAU,GACfA,KAAKshR,WAAWvI,EAClB,CACA,WAAAlJ,GAC8B,IAAxB7vQ,KAAKwoN,UAAUvzL,MACjBj1B,MAAK,EAAWxB,SAASmB,IACvBA,EAASd,WAAWlC,IAClBqD,MAAK,GAAUL,EAAUhD,EAAO,GAChC,GAGR,CACA,aAAAmzQ,GACO9vQ,KAAKwoN,UAAUvzL,MAClBj1B,KAAKiyE,SAET,CACA,OAAAA,GACEjyE,KAAKwoN,UAA4B,IAAI9zL,IACrC10B,MAAK,EAAWxB,SAASmB,IACvBA,EAASsyE,SAAS,GAEtB,CACA,UAAAqvM,CAAWvI,EAASjqQ,EAASqvQ,GAC3Bn+Q,MAAK,EAAW+4Q,EAChB/4Q,MAAK,EAAW8O,EAWhB,EAAcymQ,OAAM,KAClB,MAAMgM,EAAgBvhR,MAAK,EACrBwhR,EAAqBxhR,MAAK,GAAuBA,MAAK,GAC5DA,MAAK,EAAmBwhR,EACxBA,EAAmBhjR,SAChBmL,GAAUA,EAAMhK,SAAS42Q,WAAW5sQ,EAAM83Q,sBAAuBtD,KAEpE,MAAMuD,EAAeF,EAAmBzgR,KAAK4I,GAAUA,EAAMhK,WACvDgiR,EAAYD,EAAa3gR,KAC5BpB,GAAaA,EAAS83Q,qBAEnBmK,EAAiBF,EAAat/Q,MAClC,CAACzC,EAAU8T,IAAU9T,IAAa4hR,EAAc9tQ,MAE9C8tQ,EAAcphR,SAAWuhR,EAAavhR,QAAWyhR,KAGrD5hR,MAAK,EAAa0hR,EAClB1hR,MAAK,EAAU2hR,EACV3hR,KAAK+vQ,iBAGVmR,EAAWK,EAAeG,GAAcljR,SAASmB,IAC/CA,EAASsyE,SAAS,IAEpBivM,EAAWQ,EAAcH,GAAe/iR,SAASmB,IAC/CA,EAASd,WAAWlC,IAClBqD,MAAK,GAAUL,EAAUhD,EAAO,GAChC,IAEJqD,MAAK,KAAS,GAElB,CACA,gBAAAy3Q,GACE,OAAOz3Q,MAAK,CACd,CACA,UAAA6hR,GACE,OAAO7hR,MAAK,EAAWe,KAAKpB,GAAaA,EAASo/Q,mBACpD,CACA,YAAA+C,GACE,OAAO9hR,MAAK,CACd,CACA,mBAAAw+Q,CAAoBzF,EAASgJ,GAC3B,MAAMviP,EAAUx/B,MAAK,GAAuB+4Q,GACtCp8Q,EAAS6iC,EAAQz+B,KACpB4I,GAAUA,EAAMhK,SAAS6+Q,oBAAoB70Q,EAAM83Q,yBAEtD,MAAO,CACL9kR,EACCyH,GACQpE,MAAK,GAAeoE,GAAKzH,EAAQolR,GAE1C,IACS/hR,MAAK,GAAarD,EAAQ6iC,GAGvC,CACA,IAAa7iC,EAAQ6iC,GACnB,OAAOA,EAAQz+B,KAAI,CAAC4I,EAAO8J,KACzB,MAAMuuQ,EAAiBrlR,EAAO8W,GAC9B,OAAQ9J,EAAM83Q,sBAAsBf,oBAI/BsB,EAJqDr4Q,EAAMhK,SAASg/Q,YAAYqD,GAAiBC,IACpGziP,EAAQhhC,SAAS2c,IACfA,EAAExb,SAASm/Q,UAAUmD,EAAa,GAClC,GACe,GAEvB,CACA,IAAe9/Q,EAAO4/Q,GACpB,OAAIA,GACG/hR,MAAK,GAAmBA,MAAK,IAAYA,MAAK,GAAe+hR,IAAY/hR,MAAK,IACjFA,MAAK,EAAe+hR,EACpB/hR,MAAK,EAAcA,MAAK,EACxBA,MAAK,EAAkB,EACrBA,MAAK,EACL+hR,EAAQ5/Q,KAGLnC,MAAK,GAEPmC,CACT,CACA,IAAuB42Q,GACrB,MAAMmJ,EAAmB,IAAI/jR,IAC3B6B,MAAK,EAAWe,KAAKpB,GAAa,CAACA,EAASmP,QAAQ+hQ,UAAWlxQ,MAE3D44H,EAAY,GAgBlB,OAfAwgJ,EAAQv6Q,SAASsQ,IACf,MAAM+sQ,EAAmB77Q,MAAK,EAAQ04Q,oBAAoB5pQ,GACpDnF,EAAQu4Q,EAAiB7wQ,IAAIwqQ,EAAiBhL,WAChDlnQ,EACF4uH,EAAU12H,KAAK,CACb4/Q,sBAAuB5F,EACvBl8Q,SAAUgK,IAGZ4uH,EAAU12H,KAAK,CACb4/Q,sBAAuB5F,EACvBl8Q,SAAU,IAAI,EAAcK,MAAK,EAAS67Q,IAE9C,IAEKtjJ,CACT,CACA,IAAU54H,EAAUhD,GAClB,MAAM8W,EAAQzT,MAAK,EAAWm+B,QAAQx+B,IACvB,IAAX8T,IACFzT,MAAK,EAnKX,SAAmBiC,EAAOwR,EAAOpX,GAC/B,MAAM++G,EAAOn5G,EAAMyB,MAAM,GAEzB,OADA03G,EAAK3nG,GAASpX,EACP++G,CACT,CA+JqB+mK,CAAUniR,MAAK,EAASyT,EAAO9W,GAC9CqD,MAAK,IAET,CACA,KACE,GAAIA,KAAK+vQ,eAAgB,CACvB,MAAMqS,EAAiBpiR,MAAK,EACtBqiR,EAAariR,MAAK,GAAaA,MAAK,EAASA,MAAK,GAEpDoiR,IADcpiR,MAAK,GAAeqiR,EAAYriR,MAAK,GAAU+hR,UAE/D,EAAcxM,OAAM,KAClBv1Q,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASuB,MAAK,EAAQ,GACtB,GAGR,CACF,GCrLE,GAAwB,cAAc,EACxC,WAAA+qB,CAAYxM,EAAQzP,GAClBypB,MAAMha,EAAQzP,EAChB,CACA,WAAAgvQ,GACEvlP,MAAMulP,cACN99Q,KAAKsiR,cAAgBtiR,KAAKsiR,cAActzQ,KAAKhP,MAC7CA,KAAKuiR,kBAAoBviR,KAAKuiR,kBAAkBvzQ,KAAKhP,KACvD,CACA,UAAAu2Q,CAAWznQ,EAASqvQ,GAClB5lP,MAAMg+O,WACJ,IACKznQ,EACHumH,SAAUglJ,KAEZ8D,EAEJ,CACA,mBAAAK,CAAoB1vQ,GAElB,OADAA,EAAQumH,SAAWglJ,IACZ9hP,MAAMimP,oBAAoB1vQ,EACnC,CACA,aAAAwzQ,CAAcxzQ,GACZ,OAAO9O,KAAKo7I,MAAM,IACbtsI,EACH7G,KAAM,CACJsyQ,UAAW,CAAEhyO,UAAW,aAG9B,CACA,iBAAAg6O,CAAkBzzQ,GAChB,OAAO9O,KAAKo7I,MAAM,IACbtsI,EACH7G,KAAM,CACJsyQ,UAAW,CAAEhyO,UAAW,cAG9B,CACA,YAAAk2O,CAAa7sO,EAAO9iC,GAClB,MAAM,MAAEe,GAAU+hC,EACZ4wO,EAAejqP,MAAMkmP,aAAa7sO,EAAO9iC,IACzC,WAAE6uH,EAAU,aAAEwiJ,EAAY,QAAE1nP,EAAO,eAAE4nP,GAAmBmC,EACxDC,EAAiB5yQ,EAAMqnQ,WAAWqD,WAAWhyO,UAC7Cm6O,EAAuBjqP,GAA8B,YAAnBgqP,EAClCE,EAAqBhlJ,GAAiC,YAAnB8kJ,EACnCG,EAA2BnqP,GAA8B,aAAnBgqP,EACtCI,EAAyBllJ,GAAiC,aAAnB8kJ,EAc7C,MAbe,IACVD,EACHF,cAAetiR,KAAKsiR,cACpBC,kBAAmBviR,KAAKuiR,kBACxBjH,YAAaA,EAAYxsQ,EAASe,EAAMjG,MACxC2xQ,gBAAiBA,EAAgBzsQ,EAASe,EAAMjG,MAChD84Q,uBACAC,qBACAC,2BACAC,yBACAxC,eAAgBA,IAAmBqC,IAAyBE,EAC5DzC,aAAcA,IAAiBwC,IAAuBE,EAG1D,GC/DExrJ,GAAmB,cAAcu4I,EACnC,GACA,QAAiB,EACjB,IACA,IACA,WAAA7kP,CAAYxM,EAAQzP,GAClBypB,QACAv4B,MAAK,EAAUue,EACfve,KAAKu2Q,WAAWznQ,GAChB9O,KAAK89Q,cACL99Q,MAAK,IACP,CACA,WAAA89Q,GACE99Q,KAAK4oJ,OAAS5oJ,KAAK4oJ,OAAO55I,KAAKhP,MAC/BA,KAAKuyB,MAAQvyB,KAAKuyB,MAAMvjB,KAAKhP,KAC/B,CACA,UAAAu2Q,CAAWznQ,GACT,MAAMsvQ,EAAcp+Q,KAAK8O,QACzB9O,KAAK8O,QAAU9O,MAAK,EAAQ65Q,uBAAuB/qQ,GAC9C6iQ,EAAoB3xQ,KAAK8O,QAASsvQ,IACrCp+Q,MAAK,EAAQk9Q,mBAAmBnF,OAAO,CACrCx4Q,KAAM,yBACNqtI,SAAU5sI,MAAK,GACfL,SAAUK,OAGVo+Q,GAAalN,aAAelxQ,KAAK8O,QAAQoiQ,aAAeC,EAAQiN,EAAYlN,eAAiBC,EAAQnxQ,KAAK8O,QAAQoiQ,aACpHlxQ,KAAKuyB,QAC4C,YAAxCvyB,MAAK,IAAkB6P,MAAMzD,QACtCpM,MAAK,GAAiBu2Q,WAAWv2Q,KAAK8O,QAE1C,CACA,aAAAghQ,GACO9vQ,KAAK+vQ,gBACR/vQ,MAAK,IAAkBs4H,eAAet4H,KAE1C,CACA,gBAAA25Q,CAAiBz6Q,GACfc,MAAK,KACLA,MAAK,EAAQd,EACf,CACA,gBAAAu4Q,GACE,OAAOz3Q,MAAK,CACd,CACA,KAAAuyB,GACEvyB,MAAK,IAAkBs4H,eAAet4H,MACtCA,MAAK,QAAmB,EACxBA,MAAK,KACLA,MAAK,GACP,CACA,MAAA4oJ,CAAOywH,EAAWvqQ,GAKhB,OAJA9O,MAAK,GAAiB8O,EACtB9O,MAAK,IAAkBs4H,eAAet4H,MACtCA,MAAK,GAAmBA,MAAK,EAAQk9Q,mBAAmBhkP,MAAMl5B,MAAK,EAASA,KAAK8O,SACjF9O,MAAK,GAAiBo4H,YAAYp4H,MAC3BA,MAAK,GAAiB4sN,QAAQysD,EACvC,CACA,MACE,MAAMxpQ,EAAQ7P,MAAK,IAAkB6P,OP2JhC,CACL5I,aAAS,EACT2C,UAAM,EACNhF,MAAO,KACP8uQ,aAAc,EACdyF,cAAe,KACfC,UAAU,EACVhtQ,OAAQ,OACRitQ,eAAW,EACXC,YAAa,GOnKbt5Q,MAAK,EAAiB,IACjB6P,EACH4tH,UAA4B,YAAjB5tH,EAAMzD,OACjB2zQ,UAA4B,YAAjBlwQ,EAAMzD,OACjBqsB,QAA0B,UAAjB5oB,EAAMzD,OACf02Q,OAAyB,SAAjBjzQ,EAAMzD,OACdw8I,OAAQ5oJ,KAAK4oJ,OACbr2H,MAAOvyB,KAAKuyB,MAEhB,CACA,GAAQrzB,GACN,EAAcq2Q,OAAM,KAClB,GAAIv1Q,MAAK,IAAkBA,KAAK+vQ,eAAgB,CAC9C,MAAMsJ,EAAYr5Q,MAAK,EAAeq5Q,UAChCpyQ,EAAUjH,MAAK,EAAeiH,QACf,YAAjB/H,GAAQK,MACVS,MAAK,GAAe6oJ,YAAY3pJ,EAAO0K,KAAMyvQ,EAAWpyQ,GACxDjH,MAAK,GAAeu4Q,YAAYr5Q,EAAO0K,KAAM,KAAMyvQ,EAAWpyQ,IACpC,UAAjB/H,GAAQK,OACjBS,MAAK,GAAeiN,UAAU/N,EAAO0F,MAAOy0Q,EAAWpyQ,GACvDjH,MAAK,GAAeu4Q,iBAClB,EACAr5Q,EAAO0F,MACPy0Q,EACApyQ,GAGN,CACAjH,KAAKwoN,UAAUhqN,SAASC,IACtBA,EAASuB,MAAK,EAAe,GAC7B,GAEN,GC/FkBvE,OAAO,iBACFA,OAAO,sBACdA,OAAO,eAFzB,8BCIIsnR,GAAqB,sBACvB,GAEE,GAAkB54H,IACpB,MAAM5rI,EAAS,cAAiBwkQ,IAChC,GAAI54H,EACF,OAAOA,EAET,IAAK5rI,EACH,MAAM,IAAIzgB,MAAM,0DAElB,OAAOygB,CAAM,EAEXusI,GAAsB,EACxBvsI,SACA3G,eAEA,cAAgB,KACd2G,EAAOi9P,QACA,KACLj9P,EAAOk9P,SAAS,IAEjB,CAACl9P,KACmB,KAAAykQ,KAAID,GAAmBh6P,SAAU,CAAE1sB,MAAOkiB,EAAQ3G,cCxBvEqrQ,GAAqB,kBAAoB,GACzCC,GAAiB,IAAM,cAAiBD,IAClBA,GAAmBl6P,SCa7C,IAAIo6P,GAAiC,iBAdrC,WACE,IAAIC,GAAU,EACd,MAAO,CACLC,WAAY,KACVD,GAAU,CAAK,EAEjB7wP,MAAO,KACL6wP,GAAU,CAAI,EAEhBA,QAAS,IACAA,EAGb,CACyDE,IACrDC,GAA6B,IAAM,cAAiBJ,ICnBxD,SAASK,GAAiB74C,EAAYh2F,GACpC,MAA0B,mBAAfg2F,EACFA,KAAch2F,KAEdg2F,CACX,CACA,SAAS,KACT,CCHA,IAAI84C,GAAkC,CAAC30Q,EAAS40Q,MAC1C50Q,EAAQ6uQ,UAAY7uQ,EAAQguQ,cAAgBhuQ,EAAQ+uQ,iCACjD6F,EAAmBN,YACtBt0Q,EAAQiyQ,cAAe,GAE3B,EAEE4C,GAA8BD,IAChC,cAAgB,KACdA,EAAmBL,YAAY,GAC9B,CAACK,GAAoB,EAEtBE,GAAc,EAChBjnR,SACA+mR,qBACA5G,eACAlrO,QACA+rO,cAEOhhR,EAAO87B,UAAYirP,EAAmBN,YAAczmR,EAAOghI,YAAc/rF,IAAU+rO,QAA4B,IAAhBhhR,EAAOiN,MAAmB45Q,GAAiB1G,EAAc,CAACngR,EAAOiI,MAAOgtC,KCtB5KiyO,GAAwBhI,IAC1B,MAAMiI,EAAoBjI,EAAiBxL,UACvCwL,EAAiB8B,WACnB9B,EAAiBxL,UAAyC,mBAAtByT,EAAmC,IAAItjR,IAASvD,KAAKmrB,IAAI07P,KAAqBtjR,GAAO,KAAOvD,KAAKmrB,IAAI07P,GAAqB,IAAK,KAC5H,iBAA5BjI,EAAiB5F,SAC1B4F,EAAiB5F,OAASh5Q,KAAKmrB,IAAIyzP,EAAiB5F,OAAQ,MAEhE,EAEE8N,GAAY,CAACpnR,EAAQqnR,IAAgBrnR,EAAO4gI,WAAa5gI,EAAOghI,aAAeqmJ,EAC/EC,GAAgB,CAACpI,EAAkBl/Q,IAAWk/Q,GAAkB8B,UAAYhhR,EAAO8gI,UACnFuhJ,GAAkB,CAACnD,EAAkBl8Q,EAAU+jR,IAAuB/jR,EAASq/Q,gBAAgBnD,GAAkBj6I,OAAM,KACzH8hJ,EAAmBL,YAAY,ICUjC,SAAS,IAAW,QAClBtK,KACGjqQ,GACFq7I,GACD,MAAM5rI,EAAS,GAAe4rI,GACxB65H,EAAcd,KACdQ,EAAqBH,KACrBW,EAAmB,YACvB,IAAMnL,EAAQh4Q,KAAKqV,IACjB,MAAMylQ,EAAmBt9P,EAAOm6P,oBAC9BtiQ,GAGF,OADAylQ,EAAiB4D,mBAAqBuE,EAAc,cAAgB,aAC7DnI,CAAgB,KAEzB,CAAC9C,EAASx6P,EAAQylQ,IAEpBE,EAAiB1lR,SAASozC,IACxBiyO,GAAqBjyO,GACrB6xO,GAAgC7xO,EAAO8xO,EAAmB,IAE5DC,GAA2BD,GAC3B,MAAO/jR,GAAY,aACjB,IAAM,IAAI0hR,GACR9iQ,EACA2lQ,EACAp1Q,MAGG4vQ,EAAkByF,EAAmBxF,GAAeh/Q,EAAS6+Q,oBAClE0F,EACAp1Q,EAAQizQ,SAEJqC,GAAmBJ,IAAsC,IAAvBl1Q,EAAQu1Q,WAChD,wBACE,gBACGC,GAAkBF,EAAkBzkR,EAASd,UAAU,EAAc42Q,WAAW6O,IAAkB,IACnG,CAAC3kR,EAAUykR,KAEb,IAAMzkR,EAAS83Q,qBACf,IAAM93Q,EAAS83Q,qBAEjB,cAAgB,KACd93Q,EAAS2hR,WACP4C,EACAp1Q,EACA,CACE05M,WAAW,GAEd,GACA,CAAC07D,EAAkBp1Q,EAASnP,IAC/B,MAGM4kR,EAH0B7F,EAAiBt8Q,MAC/C,CAACzF,EAAQ8W,IAAUwwQ,GAAcC,EAAiBzwQ,GAAQ9W,KAET+hR,EAAiBl2J,SAAQ,CAAC7rH,EAAQ8W,KACnF,MAAM2C,EAAO8tQ,EAAiBzwQ,GAC9B,GAAI2C,EAAM,CACR,MAAMouQ,EAAgB,IAAI,EAAcjmQ,EAAQnI,GAChD,GAAI6tQ,GAAc7tQ,EAAMzZ,GACtB,OAAOqiR,GAAgB5oQ,EAAMouQ,EAAed,GACnCK,GAAUpnR,EAAQqnR,IACtBhF,GAAgB5oQ,EAAMouQ,EAAed,EAE9C,CACA,MAAO,EAAE,IACN,GACL,GAAIa,EAAiBpkR,OAAS,EAC5B,MAAMgB,QAAQ81C,IAAIstO,GAEpB,MAAME,EAAoC/F,EAAiBpjM,MACzD,CAAC3+E,EAAQ8W,KACP,MAAMm+B,EAAQsyO,EAAiBzwQ,GAC/B,OAAOm+B,GAASgyO,GAAY,CAC1BjnR,SACA+mR,qBACA5G,aAAclrO,EAAMkrO,aACpBlrO,MAAOrzB,EAAOi4P,gBAAgBnlQ,IAAIugC,EAAMi/N,WACxC8M,SAAU/rO,EAAM+rO,UAChB,IAGN,GAAI8G,GAAmC7/Q,MACrC,MAAM6/Q,EAAkC7/Q,MAE1C,OAAOu/Q,EAAkBxF,IAC3B,CCzFA,SAAS,GAAa7vQ,EAAS41Q,EAAUv6H,GAQvC,MAAM5rI,EAAS,GAAe4rI,GACxB65H,EAAcd,KACdQ,EAAqBH,KACrB1H,EAAmBt9P,EAAOm6P,oBAAoB5pQ,GACpDyP,EAAO4+P,oBAAoBpE,SAAS4L,4BAClC9I,GASFA,EAAiB4D,mBAAqBuE,EAAc,cAAgB,aACpEH,GAAqBhI,GACrB4H,GAAgC5H,EAAkB6H,GAClDC,GAA2BD,GAC3B,MAAMkB,GAAmBrmQ,EAAOi4P,gBAAgBnlQ,IAAIwqQ,EAAiBhL,YAC9DlxQ,GAAY,aACjB,IAAM,IAAI+kR,EACRnmQ,EACAs9P,KAGEl/Q,EAASgD,EAAS6+Q,oBAAoB3C,GACtCuI,GAAmBJ,IAAsC,IAAvBl1Q,EAAQu1Q,WAgBhD,GAfA,wBACE,gBACGC,IACC,MAAMvkR,EAAcqkR,EAAkBzkR,EAASd,UAAU,EAAc42Q,WAAW6O,IAAkB,GAEpG,OADA3kR,EAASq+Q,eACFj+Q,CAAW,GAEpB,CAACJ,EAAUykR,KAEb,IAAMzkR,EAAS83Q,qBACf,IAAM93Q,EAAS83Q,qBAEjB,cAAgB,KACd93Q,EAAS42Q,WAAWsF,EAAkB,CAAErzD,WAAW,GAAQ,GAC1D,CAACqzD,EAAkBl8Q,IAClBskR,GAAcpI,EAAkBl/Q,GAClC,MAAMqiR,GAAgBnD,EAAkBl8Q,EAAU+jR,GAEpD,GAAIE,GAAY,CACdjnR,SACA+mR,qBACA5G,aAAcjB,EAAiBiB,aAC/BlrO,MAAOrzB,EAAOi4P,gBAAgBnlQ,IAAIwqQ,EAAiBhL,WACnD8M,SAAU9B,EAAiB8B,WAE3B,MAAMhhR,EAAOiI,MAOf,GAJA2Z,EAAO4+P,oBAAoBpE,SAAS8L,2BAClChJ,EACAl/Q,GAEEk/Q,EAAiBgC,gCAAkC7N,GAAY+T,GAAUpnR,EAAQqnR,GAAc,CACjG,MAAM9iR,EAAU0jR,EAEd5F,GAAgBnD,EAAkBl8Q,EAAU+jR,GAG5CnlQ,EAAOi4P,gBAAgBnlQ,IAAIwqQ,EAAiBhL,YAAY3vQ,QAE1DA,GAAS0gI,MAAM,IAAMkjJ,SAAQ,KAC3BnlR,EAASq+Q,cAAc,GAE3B,CACA,OAAQnC,EAAiB6E,oBAAqD/jR,EAA/BgD,EAASg/Q,YAAYhiR,EACtE,CC/FA,SAAS+zF,GAAS5hF,EAASq7I,GACzB,OAAO,GAAar7I,EAAS,EAAeq7I,EAC9C,CCAA,SAAS46H,GAAYj2Q,EAASq7I,GAC5B,MAAM5rI,EAAS,GAAe4rI,IACvBxqJ,GAAY,aACjB,IAAM,IAAI03H,GACR94G,EACAzP,KAGJ,cAAgB,KACdnP,EAAS42Q,WAAWznQ,EAAQ,GAC3B,CAACnP,EAAUmP,IACd,MAAMnS,EAAS,wBACb,gBACG2nR,GAAkB3kR,EAASd,UAAU,EAAc42Q,WAAW6O,KAC/D,CAAC3kR,KAEH,IAAMA,EAAS83Q,qBACf,IAAM93Q,EAAS83Q,qBAEX7uH,EAAS,gBACb,CAACywH,EAAW2L,KACVrlR,EAASipJ,OAAOywH,EAAW2L,GAAepjJ,MAAM,GAAK,GAEvD,CAACjiI,IAEH,GAAIhD,EAAOiI,OAAS4+Q,GAAiB7jR,EAASmP,QAAQguQ,aAAc,CAACngR,EAAOiI,QAC1E,MAAMjI,EAAOiI,MAEf,MAAO,IAAKjI,EAAQisJ,SAAQmB,YAAaptJ,EAAOisJ,OAClD,CC/BA,SAASq8H,GAAiBn2Q,EAASq7I,GACjC,OAAO,GACLr7I,EACA,GACAq7I,EAEJ,sGCNI/kF,EAAmB,IAAS,IAAOC,wBAAqBnpE,EAc5D,QALA,SAAuBG,GACrB,OAAO,EAAAkwB,EAAA,GAAQlwB,KAAU,EAAA8oE,EAAA,GAAY9oE,OAChC+oE,GAAoB/oE,GAASA,EAAM+oE,GAC1C,ECoBA,EAvBA,SAAS8/M,EAAYjjR,EAAOo5B,EAAO94B,EAAW4iR,EAAUxoR,GACtD,IAAI8W,GAAS,EACTtT,EAAS8B,EAAM9B,OAKnB,IAHAoC,IAAcA,EAAY,GAC1B5F,IAAWA,EAAS,MAEX8W,EAAQtT,GAAQ,CACvB,IAAI9D,EAAQ4F,EAAMwR,GACd4nB,EAAQ,GAAK94B,EAAUlG,GACrBg/B,EAAQ,EAEV6pP,EAAY7oR,EAAOg/B,EAAQ,EAAG94B,EAAW4iR,EAAUxoR,IAEnD,OAAUA,EAAQN,GAEV8oR,IACVxoR,EAAOA,EAAOwD,QAAU9D,EAE5B,CACA,OAAOM,CACT,6GCnCA,IAAIyoR,EAAY,EAAQ,QACpB9wJ,EAAY,EAAQ,QACpBj4B,EAAW,EAAQ,QAGnBgpL,EAAYhpL,GAAYA,EAAS1jD,MAmBjCA,EAAQ0sO,EAAY/wJ,EAAU+wJ,GAAaD,EAE/CjpR,EAAOC,QAAUu8C,oBC1BjBx8C,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,+DCE3CD,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,qFCNF,QAAe,EAAM,iCCCd,SAASkpR,EAAQ/6P,EAAGnC,IAwCpB,SAAwBmC,GAC3B,MAAoB,iBAANA,IAAsC,IAApBA,EAAE4T,QAAQ,MAAiC,IAAlBmB,WAAW/U,EACxE,EAzCQg7P,CAAeh7P,KACfA,EAAI,QAER,IAAIi7P,EA2CD,SAAsBj7P,GACzB,MAAoB,iBAANA,IAAsC,IAApBA,EAAE4T,QAAQ,IAC9C,CA7CoBsnP,CAAal7P,GAO7B,OANAA,EAAY,MAARnC,EAAcmC,EAAIttB,KAAK6+B,IAAI1T,EAAKnrB,KAAKmrB,IAAI,EAAGkX,WAAW/U,KAEvDi7P,IACAj7P,EAAIqb,SAASjjC,OAAO4nB,EAAInC,GAAM,IAAM,KAGpCnrB,KAAK6rF,IAAIv+D,EAAInC,GAAO,KACb,EAOPmC,EAJQ,MAARnC,GAIKmC,EAAI,EAAKA,EAAInC,EAAOA,EAAMmC,EAAInC,GAAOkX,WAAW38B,OAAOylB,IAKvDmC,EAAInC,EAAOkX,WAAW38B,OAAOylB,GAG1C,CAKO,SAASs9P,EAAQnsO,GACpB,OAAOt8C,KAAK6+B,IAAI,EAAG7+B,KAAKmrB,IAAI,EAAGmxB,GACnC,CAoBO,SAASosO,EAAWrlR,GAKvB,OAJAA,EAAIg/B,WAAWh/B,IACXs2B,MAAMt2B,IAAMA,EAAI,GAAKA,EAAI,KACzBA,EAAI,GAEDA,CACX,CAKO,SAASslR,EAAoBr7P,GAChC,OAAIA,GAAK,EACE,GAAGhjB,OAAmB,IAAZmM,OAAO6W,GAAU,KAE/BA,CACX,CAKO,SAASs7P,EAAKp7P,GACjB,OAAoB,IAAbA,EAAEtqB,OAAe,IAAMsqB,EAAI9nB,OAAO8nB,EAC7C,uSC/EIizE,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EAWA,MACM68Q,EAAmB,EACnBC,EAAU5iR,IACd,IAAI,SACFyU,EAAQ,UACRy6C,GACElvD,EACJ,MAAMgnD,GAAU,OAAakI,IACtBy5B,EAAYn6B,EAAQo6B,IAAa,OAAS15B,EAAWlI,GAC5D,OAAO2hC,EAAwB,gBAAoB,KAAsB,CACvE6sD,WAAY,CACVliI,KAAM,IAAWk7C,EAAQo6B,EAAW5hC,KAErCvyC,GAAU,EAETouQ,EAAsB,CAAC/lQ,EAAMpa,KACjC,IAAI,UACFwsD,EAAS,IACT3zD,GACEmH,EACJ,OAAoB,gBAAoBkgR,EAAS,CAC/C1zN,UAAWA,EACX3zD,IAAKA,GACJuhB,EAAK,EAEJgmQ,EAAsB,cAAiB,CAAC/7Q,EAAO8V,KACnD,MAAM,IACJm3B,EACAkb,UAAW6zN,EACX/4L,aAAcg5L,EAAkB,SAChCvnM,EAAQ,SACRvd,EAAWykN,EAAgB,IAC3Br7M,EAAG,eACHpkB,EAAc,aACd+/N,GACEl8Q,GACE,aACJmnD,EAAY,kBACZ2e,EAAiB,QACjBryD,EAAO,UACP4qB,GACE,aAAiB,MACf8pB,EAAY6zN,GAAmB70N,EAAa,WAa5Cg1N,EAA+B,gBAAoB,OAAQ,CAC/D1uQ,UAAW,GAAG06C,aACA,gBAAoB,IAAe,CACjD16C,UAAW,GAAG06C,mBAGTi0N,EAAKC,IAAU,QAAkB,CACtCl0N,YACArb,MAnBe,KAAM,CACrByjF,KAAM,MACN99D,UAAW,mBACXxlB,IAAKA,QAAiCA,EA/CnB,IAgEnBx/B,UAfmB,IAAM,IAAW,CACpC,CAAC,GAAG06C,SAAkBoY,QAAiCA,EAAoB,QAAdliC,IAe7D6d,OAZ4B,KAAM,OAAUiM,EAAWhM,GAavD2lD,UAAU,EACVuD,UAAW82K,EACXhlN,WACA8rB,aAAc,KAAOg5L,aAA+D,EAASA,OAA0Bn2M,aAA6D,EAASA,MAAwB78B,SAASgD,KAC9NyoC,WACAwnM,eACAJ,wBAOF,OAJA,sBAA0BhmQ,GAAK,IAAMrkB,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGsxQ,GAAM,CACzEj0N,YACA10C,cAEK4oQ,CAAM,IAKf,IAAIC,EAAW,EACR,SAASC,EAAmBC,GACjC,MAAMC,EAAY,SAAa,MA2G/B,OA1GgB,QAAc,WA0GvB,CAxGS,WAAc,KAG5B,MAAMnjR,EAAQ9E,IACZ,IAAIgmB,EACyB,QAA5BA,EAAKiiQ,EAAU7hR,eAA4B,IAAP4f,GAAyBA,EAAGlhB,MAAM9E,EAAI,EAGvEozE,EAAOzd,IACX,IAAKsyN,EAAU7hR,QAAS,CAEtB,MAAM8hR,EAAa,OAEnB,OADAA,EAAWjiR,KAAO,OACXiiR,CACT,CACA,MACE90M,KAAM0B,EAAU,UAChBnhB,EAAS,QACT10C,GACEgpQ,EAAU7hR,QACR+hR,EAAkB,GAAGx0N,YACrB,QACFrU,EAAO,KACPv6B,EAAI,KACJlkB,EAAI,IACJb,EAAG,UACHiZ,EAAS,MACTq/B,EAAK,QACLi1D,GACE53C,EACJyyN,EAAappL,EAAOrpC,EAAQ,CAAC,UAAW,OAAQ,OAAQ,MAAO,YAAa,QAAS,YACvF,IAAIiC,EAAY53D,EAKhB,OAJI43D,UACFkwN,GAAY,EACZlwN,EAAY,gBAAgBkwN,MAEvB,QAAcplR,IACnBoyE,EAAW73E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG8xQ,GAAa,CACtDpoR,IAAK43D,EACLtY,QAAuB,gBAAoB,KAAa,CACtDqU,UAAWA,EACX9yD,KAAMA,EACNkkB,KAAMA,GACLu6B,GACH2yB,UAAW,MACXh5D,UAAW,IAAWpY,GAAQ,GAAGsnR,KAAmBtnR,IAAQoY,EAAWgG,aAAyC,EAASA,EAAQhG,WACjIq/B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG2I,aAAyC,EAASA,EAAQq5B,OAAQA,GACzGi1D,QAAS,KACPA,SAAkDA,IAClD7qG,GAAS,KAIN,KACLoC,EAAM8yD,EAAU,IAElB,EAWE7pC,EAAQ,CACZqlD,OACAG,QAVcvzE,IACd,IAAIgmB,OACQxoB,IAARwC,EACF8E,EAAM9E,GAEuB,QAA5BgmB,EAAKiiQ,EAAU7hR,eAA4B,IAAP4f,GAAyBA,EAAGutD,SACnE,GAoCF,MA9Ba,CAAC,OAAQ,UAAW,UAAW,QAAS,WAChDzzE,SAAQe,IA2BXktB,EAAMltB,GA1BW,CAACwnR,EAAc1lN,EAAU4qC,KACxC,IAAI53C,EASA2yN,EACAC,EARF5yN,EADE0yN,GAAwC,iBAAjBA,GAA6B,YAAaA,EAC1DA,EAEA,CACP/oO,QAAS+oO,GAMW,mBAAb1lN,EACT4lN,EAAgB5lN,GAEhB2lN,EAAiB3lN,EACjB4lN,EAAgBh7K,GAElB,MAAM87J,EAAepsQ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC/Ci3F,QAASg7K,EACT5lN,SAAU2lN,GACT3yN,GAAS,CACV90D,SAEF,OAAOuyE,EAAKi2L,EAAa,CAEL,IAEjBt7O,CAAK,GACX,IAE2B,gBAAoBw5P,EAAQtqR,OAAOqZ,OAAO,CACtEtW,IAAK,kBACJgoR,EAAe,CAChB1mQ,IAAK2mQ,KAET,CACe,SAASt6L,EAAWq6L,GACjC,OAAOD,EAAmBC,EAC5B,kDCnNA,kBATgC,MAAW,SAAUvjR,GAEnD,OADeA,EAAKyU,QAEtB,IAAG,SAAUmpB,EAAGjhC,GACd,OAAOA,EAAK6iB,KACd,sBCNAxmB,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIzB,IAAIiuQ,EACI,wEAAwE9pR,MACpE,KAER+pR,EAAgB,CACZ,QACA,QACA,SACA,SACA,SACA,SACA,SACAD,EAAY,GACZA,EAAY,GACZA,EAAY,IAEpB,SAAS9vK,EAAUr7F,EAAQs7F,EAAe34G,EAAK44G,GAC3C,IAAI36G,EAAS,GACb,OAAQ+B,GACJ,IAAK,IACD,OAAO44G,EAAW,oBAAsB,kBAC5C,IAAK,KACD36G,EAAS26G,EAAW,WAAa,WACjC,MACJ,IAAK,IACD,OAAOA,EAAW,WAAa,WACnC,IAAK,KACD36G,EAAS26G,EAAW,WAAa,YACjC,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD36G,EAAS26G,EAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD36G,EAAS26G,EAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,EAAW,YAAc,WACpC,IAAK,KACD36G,EAAS26G,EAAW,YAAc,YAClC,MACJ,IAAK,IACD,OAAOA,EAAW,SAAW,QACjC,IAAK,KACD36G,EAAS26G,EAAW,SAAW,SAIvC,OAEJ,SAAsBv7F,EAAQu7F,GAC1B,OAAOv7F,EAAS,GACVu7F,EACI6vK,EAAcprQ,GACdmrQ,EAAYnrQ,GAChBA,CACV,CATaqrQ,CAAarrQ,EAAQu7F,GAAY,IAAM36G,CAEpD,CASSsc,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,2GAA2G/b,MAC/G,KAEJmc,YACI,uEAAuEnc,MACnE,KAERqc,SACI,qEAAqErc,MACjE,KAERsc,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,mBACJE,IAAK,gCACLE,KAAM,sCACNmQ,EAAG,WACHtQ,GAAI,cACJE,IAAK,2BACLE,KAAM,iCAEVC,SAAU,CACNC,QAAS,oBACTE,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNpU,EAAGuwG,EACHl8F,GAAIk8F,EACJj8F,EAAGi8F,EACHh8F,GAAIg8F,EACJ/7F,EAAG+7F,EACH97F,GAAI87F,EACJ77F,EAAG67F,EACH57F,GAAI47F,EACJ37F,EAAG27F,EACH17F,GAAI07F,EACJz7F,EAAGy7F,EACHx7F,GAAIw7F,GAERv7F,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCC,CAAQ,EAAQ,gJCHtD2gD,EAAY,CAAC,mBAAoB,UAAW,kBAAmB,kBAAmB,eAAgB,YAAa,WAAY,kBAAmB,qBAAsB,iBAAkB,YAAa,SAAU,YAAa,QAAS,uBAAwB,iBAAkB,sBAAuB,oBAAqB,eAAgB,UAAW,KAAM,aAM1VwyM,EAAU,SAAiBtlQ,EAAO8V,GACpC,IAAIu+E,EAAmBr0F,EAAMq0F,iBAC3B8oL,EAAiBn9Q,EAAMm/F,QACvBA,OAA6B,IAAnBg+K,EAA4B,CAAC,SAAWA,EAClDC,EAAwBp9Q,EAAMqnE,gBAC9BA,OAA4C,IAA1B+1M,EAAmC,EAAIA,EACzDC,EAAwBr9Q,EAAMsnE,gBAC9BA,OAA4C,IAA1B+1M,EAAmC,GAAMA,EAC3DC,EAAet9Q,EAAMs9Q,aACrBp1N,EAAmBloD,EAAMmoD,UACzBA,OAAiC,IAArBD,EAA8B,aAAeA,EACzDx6C,EAAW1N,EAAM0N,SACjBm4D,EAAkB7lE,EAAM6lE,gBACxB03M,EAAqBv9Q,EAAMu9Q,mBAC3BphO,EAAiBn8C,EAAMm8C,eACvBqhO,EAAYx9Q,EAAMw9Q,UAClBthO,EAASl8C,EAAMk8C,OACfuhO,EAAmBz9Q,EAAMymE,UACzBA,OAAiC,IAArBg3M,EAA8B,QAAUA,EACpDC,EAAe19Q,EAAMwuN,MACrBA,OAAyB,IAAjBkvD,EAA0B,CAAC,EAAIA,EACvCC,EAAwB39Q,EAAM49Q,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAiB79Q,EAAM69Q,eACvBC,EAAsB99Q,EAAM89Q,oBAC5BC,EAAoB/9Q,EAAM+9Q,kBAE1BC,GADeh+Q,EAAMi+Q,aACXj+Q,EAAMg+Q,SAChBh7Q,EAAKhD,EAAMgD,GACXk7Q,EAAmBl+Q,EAAMm+Q,UACzBA,OAAiC,IAArBD,GAAqCA,EACjDhrN,GAAY,OAAyBlzD,EAAO8yD,GAC1CsrN,GAAa,IAAA1qN,QAAO,OACxB,IAAAod,qBAAoBh7D,GAAK,WACvB,OAAOsoQ,EAAWxjR,OACpB,IACA,IAAIyjR,GAAa,OAAc,CAAC,EAAGnrN,GAYnC,MAXI,YAAalzD,IACfq+Q,EAAWl3M,aAAennE,EAAMwlE,SAUd,gBAAoB,KAAS,OAAS,CACxDG,eAAgB0uB,EAChBlsC,UAAWA,EACXsd,MAXoB,WACpB,OAAoB,gBAAoB,IAAO,CAC7CjxE,IAAK,UACL2zD,UAAWA,EACXnlD,GAAIA,EACJ+6Q,kBAAmBA,GAClBC,EACL,EAKEhpR,OAAQmqG,EACRl5B,kBAAmB,IACnBS,eAAgBD,EAChB3wD,IAAKsoQ,EACLh3M,WAAYonJ,EACZ1oJ,kBAAmBg4M,EACnBv2M,qBAAsB1B,EACtBy4M,wBAAyBf,EACzBgB,oBAAqBpiO,EACrBqiO,eAAgBhB,EAChB/1M,YAAavrB,EACbuiO,oBAAqBZ,EACrBa,YAAad,EACbt2M,gBAAiBA,EACjB5B,WAAY43M,EACZj2M,gBAAiBA,EACjBs3M,MAAOR,GACNE,GAAa3wQ,EAClB,EACA,SAA4B,IAAAmM,YAAWyrP,0FC5EhC,MAAMsZ,EAAsBz1Q,QAmBlB01Q,EAlBf,MAAM71Q,GAAco5G,EAAAA,EAAAA,OAEZ1iH,KAAMm/Q,EAASxrJ,UAAWyrJ,IAAqB95L,EAAAA,EAAAA,GAAW,CAChEC,gBAAiB,cACjBC,WAAY,CAAC/7E,GACbwrG,OAASj1G,GAASA,EAAKymF,KAAKzmF,QAGtBA,KAAMu7I,EAAW5nB,UAAW0rJ,IAA6B/5L,EAAAA,EAAAA,GAAW,CAC1EC,gBAAiB,sBACjBC,WAAY,CAACl8E,GACb2rG,OAASj1G,GAASA,EAAKymF,KAAKzmF,WAKZu7I,EAKlB,MAAO,CACL+jI,cAPmBC,EAAAA,EAAAA,IAAgB,CACnCt1Q,eAAyC,QAAzBsxI,EAAAA,aAAAA,EAAAA,EAAWtxI,sBAAXsxI,IAAAA,EAAAA,EAA6B,GAC7C9xI,MAAOK,OAAOL,GACd+1Q,YAAaL,SAAkB,QAAlBA,EAAAA,EAASM,iBAATN,IAAAA,OAAAA,EAAAA,EAAoB77Q,KAKjCqwH,UAAWyrJ,GAAoBC,EAChC,kGCZCK,EAA0B,WAC5B,SAASA,KACP,OAAgBtpR,KAAMspR,IACtB,OAAgBtpR,KAAM,aAAS,IAC/B,OAAgBA,KAAM,YAAQ,IAC9B,OAAgBA,KAAM,sBAAkB,GACxCA,KAAK2iB,MAAQ,IAAIxkB,IACjB6B,KAAKmG,KAAO,GACZnG,KAAKupR,eAAiB,CACxB,CAgHA,OA/GA,OAAaD,EAAY,CAAC,CACxB5qR,IAAK,OACLrC,MAAO,WACL,OAAO2D,KAAKmG,KAAKhG,MACnB,GACC,CACDzB,IAAK,cACLrC,MAAO,SAAqBmtR,GAC1B,IAAIC,EAASC,EACTC,EAAkB5rR,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GACjF4kB,EAAQ,CACV5hB,IAAKf,KAAK2iB,OAaZ,OAXA6mQ,EAAiBhrR,SAAQ,SAAUuzH,GAI/B,IAAIvmG,EACJ7I,EAJGA,EAI0B,QAApB6I,EAAS7I,SAA8B,IAAX6I,GAA+C,QAAzBA,EAASA,EAAOzqB,WAA4B,IAAXyqB,OAAoB,EAASA,EAAOna,IAAI0gH,QAH5H71H,CAKZ,IAC0B,QAArButR,EAAU9mQ,SAA+B,IAAZ8mQ,GAAsBA,EAAQptR,OAASstR,IACvEhnQ,EAAMtmB,MAAM,GAAK2D,KAAKupR,kBAEK,QAArBG,EAAU/mQ,SAA+B,IAAZ+mQ,OAAqB,EAASA,EAAQrtR,KAC7E,GACC,CACDqC,IAAK,MACLrC,MAAO,SAAamtR,GAClB,IAAII,EACJ,OAA0E,QAAlEA,EAAoB5pR,KAAK6pR,YAAYL,GAAkB,UAAyC,IAAtBI,OAA+B,EAASA,EAAkB,EAC9I,GACC,CACDlrR,IAAK,MACLrC,MAAO,SAAamtR,GAClB,QAASxpR,KAAK6pR,YAAYL,EAC5B,GACC,CACD9qR,IAAK,MACLrC,MAAO,SAAamtR,EAAkBntR,GACpC,IAAIkhH,EAAQv9G,KAEZ,IAAKA,KAAKyV,IAAI+zQ,GAAmB,CAC/B,GAAIxpR,KAAKi1B,OAAS,EAAIq0P,EAAWQ,eAAiBR,EAAWS,iBAAkB,CAC7E,IAAIC,EAAoBhqR,KAAKmG,KAAK9F,QAAO,SAAU1D,EAAQ+B,GACvD,IACEurR,GADY,OAAettR,EAAQ,GACf,GACtB,OAAI4gH,EAAMssK,YAAYnrR,GAAK,GAAKurR,EACvB,CAACvrR,EAAK6+G,EAAMssK,YAAYnrR,GAAK,IAE/B/B,CACT,GAAG,CAACqD,KAAKmG,KAAK,GAAInG,KAAKupR,iBAEvBztM,GADqB,OAAekuM,EAAmB,GACxB,GACjChqR,KAAKhB,OAAO88E,EACd,CACA97E,KAAKmG,KAAKtE,KAAK2nR,EACjB,CACA,IAAI7mQ,EAAQ3iB,KAAK2iB,MACjB6mQ,EAAiBhrR,SAAQ,SAAUuzH,EAAYt+G,GAC7C,GAAIA,IAAU+1Q,EAAiBrpR,OAAS,EACtCwiB,EAAMhkB,IAAIozH,EAAY,CACpB11H,MAAO,CAACA,EAAOkhH,EAAMgsK,wBAElB,CACL,IAAIW,EAAavnQ,EAAMtR,IAAI0gH,GACtBm4J,EAIOA,EAAWnpR,MACrBmpR,EAAWnpR,IAAM,IAAI5C,KAJrBwkB,EAAMhkB,IAAIozH,EAAY,CACpBhxH,IAAK,IAAI5C,MAKbwkB,EAAQA,EAAMtR,IAAI0gH,GAAYhxH,GAChC,CACF,GACF,GACC,CACDrC,IAAK,eACLrC,MAAO,SAAsB8tR,EAAcC,GACzC,IAEMC,EAFF1nQ,EAAQwnQ,EAAa94Q,IAAI+4Q,EAAY,IACzC,GAA2B,IAAvBA,EAAYjqR,OASd,OAPKwiB,EAAM5hB,IAGTopR,EAAaxrR,IAAIyrR,EAAY,GAAI,CAC/BrpR,IAAK4hB,EAAM5hB,MAHbopR,EAAanrR,OAAOorR,EAAY,IAMM,QAAhCC,EAAe1nQ,EAAMtmB,aAAoC,IAAjBguR,OAA0B,EAASA,EAAa,GAElG,IAAI1tR,EAASqD,KAAKsqR,aAAa3nQ,EAAM5hB,IAAKqpR,EAAY1mR,MAAM,IAI5D,OAHMif,EAAM5hB,KAA0B,IAAnB4hB,EAAM5hB,IAAIk0B,MAAgBtS,EAAMtmB,OACjD8tR,EAAanrR,OAAOorR,EAAY,IAE3BztR,CACT,GACC,CACD+B,IAAK,SACLrC,MAAO,SAAiBmtR,GAEtB,GAAIxpR,KAAKyV,IAAI+zQ,GAIX,OAHAxpR,KAAKmG,KAAOnG,KAAKmG,KAAK2M,QAAO,SAAUwiD,GACrC,OA7HH,SAA8BmlE,EAAMC,GACzC,GAAID,EAAKt6H,SAAWu6H,EAAMv6H,OACxB,OAAO,EAET,IAAK,IAAI2D,EAAI,EAAGA,EAAI22H,EAAKt6H,OAAQ2D,IAC/B,GAAI22H,EAAK32H,KAAO42H,EAAM52H,GACpB,OAAO,EAGX,OAAO,CACT,CAmHkBymR,CAAqBj1N,EAAMk0N,EACrC,IACOxpR,KAAKsqR,aAAatqR,KAAK2iB,MAAO6mQ,EAGzC,KAEKF,CACT,CA1H8B,IA2H9B,OAAgBA,EAAY,iBAAkB,KAC9C,OAAgBA,EAAY,mBAAoB,gCC7IhD,IAAIzyQ,EAAO,EAAQ,QAGfE,EAA4C3a,IAAYA,EAAQ4a,UAAY5a,EAG5E6a,EAAaF,GAA4C5a,IAAWA,EAAO6a,UAAY7a,EAMvF+a,EAHgBD,GAAcA,EAAW7a,UAAY2a,EAG5BF,EAAKK,YAAShb,EACvCsuR,EAActzQ,EAASA,EAAOszQ,iBAActuR,EAqBhDC,EAAOC,QAXP,SAAqBsN,EAAQ2qF,GAC3B,GAAIA,EACF,OAAO3qF,EAAOhG,QAEhB,IAAIvD,EAASuJ,EAAOvJ,OAChBxD,EAAS6tR,EAAcA,EAAYrqR,GAAU,IAAIuJ,EAAOqhB,YAAY5qB,GAGxE,OADAuJ,EAAO0xG,KAAKz+G,GACLA,CACT,2BCvBQ,SAAWsc,GAAU,aAIzB,SAASwxQ,EAAoB1uQ,EAAQs7F,EAAe34G,EAAK44G,GACrD,IAAIj+F,EAAS,CACTxS,EAAG,CAAC,qBAAsB,iBAC1BqU,GAAI,CAACa,EAAS,cAAeA,EAAS,WACtCZ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACW,EAAS,YAAaA,EAAS,WACpCV,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACS,EAAS,WAAYA,EAAS,UACnCR,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACO,EAAS,WAAYA,EAAS,QACnCN,EAAG,CAAC,eAAgB,aACpBC,GAAI,CAACK,EAAS,cAAeA,EAAS,WACtCJ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACG,EAAS,YAAaA,EAAS,YAExC,OAAOu7F,EAAWj+F,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,EACnD,CAEcua,EAAOC,aAAa,WAAY,CAC1CC,OAAQ,CACJC,WACI,4EAA4Ehc,MACxE,KAERic,OAAQ,wIAAwIjc,MAC5I,KAEJkc,SAAU,mBAEdC,YACI,4DAA4Dnc,MAAM,KACtEoc,kBAAkB,EAClBC,SAAU,uDAAuDrc,MAAM,KACvEsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,iBACJC,IAAK,oBACLC,EAAG,aACHC,GAAI,cACJE,IAAK,6BACLE,KAAM,sCACNC,KAAM,mCAEVC,SAAU,CACNC,QAAS,WACTE,QAAS,cACTC,SAAU,sBACVC,QAAS,WACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,KACRC,KAAM,UACNpU,EAAG4jR,EACHvvQ,GAAIuvQ,EACJtvQ,EAAGsvQ,EACHrvQ,GAAIqvQ,EACJpvQ,EAAGovQ,EACHnvQ,GAAImvQ,EACJlvQ,EAAGkvQ,EACHjvQ,GAAIivQ,EACJhvQ,EAAGgvQ,EACH/uQ,GAAI+uQ,EACJ9uQ,EAAG8uQ,EACH7uQ,GAAI6uQ,GAER5uQ,uBAAwB,cACxBC,QAAS,SAAUC,EAAQC,GACvB,MAES,MAFDA,EAGOD,EAAS,KAQTA,CAEnB,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,GAET4N,cAAe,+BACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAEM,SAAbD,EACOC,EAAO,EAAIA,EAAOA,EAAO,GACZ,aAAbD,EACAC,EACa,aAAbD,EACAC,EAAO,GAAKA,EAAOA,EAAO,GACb,UAAbD,EACAC,EAAO,QADX,CAGX,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,EACA,OACAA,EAAO,GACP,WACAA,EAAO,GACP,WACAA,EAAO,GACP,QAEA,MAEf,GAKP,CAhIyC9N,CAAQ,EAAQ,yCCN1D,IAAI5gB,EAAS,EAAQ,QAGjBg6G,EAAch6G,EAASA,EAAOG,eAAYM,EAC1Cw5G,EAAgBD,EAAcA,EAAYzoE,aAAU9wC,EAaxDC,EAAOC,QAJP,SAAqBwG,GACnB,OAAO8yG,EAAgB/5G,OAAO+5G,EAAcn5G,KAAKqG,IAAW,CAAC,CAC/D,6jBCDO,MAAM8nR,EAAgB,0BAE3BC,EAAiB,MACjBn9Q,EAAK,UAGL+vH,EAAS,UAGT5lH,EAAS,SAETg7C,GAEkB,EADfi4N,oXAAAA,CAAAA,EAAAA,CAVHD,oBACAn9Q,QAGA+vH,YAGA5lH,YAEAg7C,aAKA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,EAAAA,EAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB4yQ,GAClCn9Q,MAAOA,WAENq9Q,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAW7sB,OAAM,CAACxlE,QAAM,EAACmvH,MAAO0nI,EAAa1nI,SAG9C,SAACprI,EAAAA,EAAQA,EAAAA,CACP66C,SAAUm4N,GAAcn4N,EACxBh7C,UAAWA,GACPizQ,yBC/CdzuR,EAAOC,QAAU,IAA0B,yICOvC4uR,EAAyB,SAAgC9gR,EAAO8V,GAClE,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiBunQ,qBCf5C7uR,EAAOC,QAAU,IAA0B,+DCE3C,IAAI6uR,EAAiC,iBAAZ93O,UAAwBA,SAAS8D,IAK1D96C,EAAOC,aAAgC,IAAf6uR,QAA8C/uR,IAAhB+uR,EAA4B,SAAUr/N,GAC1F,MAA0B,mBAAZA,GAA0BA,IAAaq/N,CACvD,EAAI,SAAUr/N,GACZ,MAA0B,mBAAZA,CAChB,iCCXO,SAASs/N,EAAcjmQ,GAC5B,OAAQA,EAAW,GAAKA,CAC1B,CAEe,SAASkmQ,EAAap7P,GACnC,MAAMq7P,EAAY,IAAI98Q,MAAM,IAAIqtB,KAAK,MAAM56B,KAAI,CAACggC,EAAGttB,KACjD,MAAM3P,EAAI2P,EAAQ,EACZ43Q,EAAWt7P,EAAO9yB,KAAK+oC,IAAI/oC,KAAKq0C,EAAGxtC,EAAI,GACvCwnR,EAAU73Q,EAAQ,EAAIxW,KAAK6lD,MAAMuoO,GAAYpuR,KAAKkmD,KAAKkoO,GAE7D,OAAiC,EAA1BpuR,KAAK6lD,MAAMwoO,EAAU,EAAM,IAGpC,OADAF,EAAU,GAAKr7P,EACRq7P,EAAUrqR,KAAIk0B,IAAQ,CAC3BA,OACAilB,WAAYgxO,EAAcj2P,MAE9B,yDCfAt5B,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAiB,aAAI,EAErB,IAAImvR,EAAW,EAAQ,QAYvB,SAASC,EAAkB/hR,EAAK1F,IAAkB,MAAPA,GAAeA,EAAM0F,EAAItJ,UAAQ4D,EAAM0F,EAAItJ,QAAQ,IAAK,IAAI2D,EAAI,EAAG2nR,EAAO,IAAIn9Q,MAAMvK,GAAMD,EAAIC,EAAKD,IAAO2nR,EAAK3nR,GAAK2F,EAAI3F,GAAM,OAAO2nR,CAAM,CA0BtLrvR,EAAiB,QAnBM,SAA0B+X,GAC/C,OAAO,SAAUvT,GACf,OAAO,SAAUd,GACf,OAAO,SAAUZ,GAEf,GAAIA,EAAOK,OAASgsR,EAASngI,oBAC3B,OAAOtrJ,EAAKZ,GAGd,IA1BoBuK,EA0BhBiiR,EAAkBxsR,EAAO+M,QACzBuhB,EAASk+P,EAAgBl+P,OACzBhtB,EAAOkrR,EAAgBlrR,KAC3B2T,EAAQqZ,GAAQrmB,MAAMgN,EArB9B,SAA4B1K,GAAO,GAAI6E,MAAMie,QAAQ9iB,GAAM,OAAO+hR,EAAkB/hR,EAAM,CARhDoiJ,CAAdpiJ,EA6B8BjJ,IAvB1D,SAA0BmrR,GAAQ,GAAsB,oBAAXlwR,QAA0BA,OAAOyM,YAAYvM,OAAOgwR,GAAO,OAAOr9Q,MAAMwqB,KAAK6yP,EAAO,CAN5DC,CAAiBniR,IAItF,SAAqCtF,EAAG0nR,GAAU,GAAK1nR,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAOqnR,EAAkBrnR,EAAG0nR,GAAS,IAAIthQ,EAAI5uB,OAAOC,UAAUG,SAASQ,KAAK4H,GAAGT,MAAM,GAAI,GAAiE,MAAnD,WAAN6mB,GAAkBpmB,EAAE4mB,cAAaR,EAAIpmB,EAAE4mB,YAAY3iB,MAAgB,QAANmiB,GAAqB,QAANA,EAAoBjc,MAAMwqB,KAAKvO,GAAc,cAANA,GAAqB,2CAA2CqD,KAAKrD,GAAWihQ,EAAkBrnR,EAAG0nR,QAAzG,CAA7O,CAA+V,CAJjUC,CAA4BriR,IAE1H,WAAgC,MAAM,IAAIs6C,UAAU,uIAAyI,CAF3DgoO,GA8B5H,CACF,CACF,CACF,iCC1CA,SAASC,EAAgB5nR,GACvB,GAAIkK,MAAMie,QAAQnoB,GAAI,OAAOA,CAC/B,+CCAAzI,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kHAAsH,KAAQ,QAAS,MAAS,wUC0DpS,SAAS6vR,EAASj8K,EAAMpmG,GAC7B,MAAO,CACLrK,KAAM2sR,EAAAA,IACNl8K,OACApmG,OAEJ,CAkBO,SAASuiR,EAAUn8K,EAAMpmG,GAC9B,MAAO,CACLrK,KAAM6sR,EAAAA,IACNp8K,OACApmG,OAEJ,CAEO,SAASyiR,EAAOr8K,EAAMpmG,GAC3B,MAAO,CACLrK,KAAMuQ,EAAAA,IACNkgG,OACApmG,OAEJ,CAEO,SAAS0iR,EAAwBt8K,EAAMpmG,GAC5C,MAAO,CACLrK,KAAMgtR,EAAAA,IACNv8K,OACApmG,OAEJ,CAUO,SAAS4iR,EAAWx8K,EAAMpmG,GAC/B,MAAO,CACLrK,KAAMktR,EAAAA,IACNz8K,OACApmG,OAEJ,CA0BO,SAAS8iR,EAAS18K,EAAMpmG,GAC7B,MAAO,CACLrK,KAAMotR,EAAAA,IACN38K,OACApmG,OAEJ,CAEO,SAASgjR,EAAQ58K,EAAMpmG,GAC5B,MAAO,CACLrK,KAAMstR,EAAAA,IACN78K,OACApmG,OAEJ,CAUO,SAAS46G,EAAqBxU,EAAMpmG,GACzC,MAAO,CACLrK,KAAMmlH,EAAAA,IACN1U,OACApmG,OAEJ,CAEO,SAASkjR,EAAe98K,EAAMpmG,GACnC,MAAO,CACLrK,KAAMwtR,EAAAA,IACN/8K,OACApmG,OAEJ,CAEO,SAASojR,EAAkBh9K,EAAMpmG,GACtC,MAAO,CACLrK,KAAM0tR,EAAAA,IACNj9K,OACApmG,OAEJ,CA0BO,SAASsjR,EAAQl9K,EAAMpmG,GAC5B,MAAO,CACLrK,KAAM4tR,EAAAA,IACNn9K,OACApmG,OAEJ,CAEO,SAASwjR,EAAuBp9K,EAAMpmG,GAC3C,MAAO,CACLrK,KAAM8tR,EAAAA,IACNr9K,OACApmG,OAEJ,CAEO,SAAS0jR,EAAkBt9K,EAAMpmG,GACtC,MAAO,CACLrK,KAAMguR,EAAAA,IACN3jR,OACAomG,OAEJ,CAEO,SAASw9K,EAASx9K,EAAMpmG,GAC7B,MAAO,CACLrK,KAAMkuR,EAAAA,IACNz9K,OACApmG,OAEJ,CA0DO,SAAS8jR,EAA0B19K,EAAMpmG,GAC9C,MAAO,CACLrK,KAAMouR,EAAAA,GACN39K,OACApmG,OAEJ,CAEO,SAASgkR,EAAkC59K,EAAMpmG,GACtD,MAAO,CACLrK,KAAMsuR,EAAAA,IACN79K,OACApmG,OAEJ,CAUO,SAASkkR,EAAmB99K,EAAMpmG,GACvC,MAAO,CACLrK,KAAMwuR,EAAAA,IACN/9K,OACApmG,OAEJ,CAUO,SAASokR,EAAeh+K,EAAMpmG,GACnC,MAAO,CACLrK,KAAM0uR,EAAAA,GACNj+K,OACApmG,OAEJ,CA0BO,SAASskR,EAAel+K,EAAMpmG,GACnC,MAAO,CACLrK,KAAM4uR,EAAAA,IACNn+K,OACApmG,OAEJ,CAEO,SAASwkR,EAAYp+K,EAAMpmG,GAChC,MAAO,CACLrK,KAAM8uR,EAAAA,IACNr+K,OACApmG,OAEJ,CAEO,SAAS0kR,EAAgBt+K,EAAMpmG,GACpC,MAAO,CACLrK,KAAMgvR,EAAAA,IACNv+K,OACApmG,OAEJ,CAEO,SAAS4kR,EAAkBx+K,EAAMpmG,GACtC,MAAO,CACLrK,KAAMkvR,EAAAA,IACNz+K,OACApmG,OAEJ,CAEO,SAAS8kR,EAAc1+K,EAAMpmG,GAClC,MAAO,CACLrK,KAAMovR,EAAAA,IACN3+K,OACApmG,OAEJ,CA2BO,SAASglR,EAAuBrvR,EAAMywG,EAAMpmG,EAAMqmG,GACvD,MAAO,CAAE1wG,OAAMywG,OAAMpmG,OAAMqmG,cAC7B,CAoBO,SAAS4+K,EAAuB7+K,EAAM8+K,GAC3C,MAAO,CACLvvR,KAAMwvR,EAAAA,IACN/+K,OACA8+K,UAEJ,CAEO,SAASE,EAAyBh/K,EAAMtxG,GAC7C,MAAO,CACLa,KAAM0vR,EAAAA,IACNj/K,OACAtxG,MAEJ,CAGO,SAASwwR,GAA4B,UAC1CC,EAAS,kBACTC,EAAoB,CAAC,EAAC,iBACtBC,EAAmB,KAAM,MAAI,KAC7Br/K,EAAI,6BACJs/K,EAA+B,KAE/B,MAAO,CACL/vR,KAAMgwR,EAAAA,IACNJ,YACAC,oBACAC,mBACAr/K,OACAs/K,+BAEJ,CAEO,SAASE,EAAex/K,EAAMngG,EAAO4/Q,GAC1C,MAAO,CACLlwR,KAAMmwR,EAAAA,IACN1/K,OACApmG,KAAMiG,EACN4/Q,YAEJ,CAiBO,SAASE,EAAmB/lR,GACjC,MAAO,CACLrK,KAAMqwR,EAAAA,IACNhmR,OAEJ,iIC/gBA,SAASgwM,EAAI1iK,GACX,MAAO,CACLA,WACA4rD,MAAO,EAEX,CACO,MAAM+sL,EAAoB/7Q,IAC/B,MAAM,aACJumC,EAAY,OACZD,GACEtmC,EACJ,MAAO,CAAC,CACN,CAAC,GAAGumC,UAAsB,CACxB,CAAC,GAAGA,IAAeD,iBAAsBC,IAAeD,iBAAuB,CAE7EuiB,UAAW,OACXpb,QAAS,EACTuuO,kBAAmBh8Q,EAAM4nC,mBAEzBjE,WAAY,QAId,CAAC,GAAG4C,IAAeD,gBAAqBC,aAAyB,CAC/DyD,cAAe,QAEjB,CAAC,GAAGzD,UAAsB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG4kM,EAAI,UAAW,CACvEj/J,OAAQ7mC,EAAMuuC,gBACd9E,OAAQ,OACRvC,gBAAiBlnC,EAAMi8Q,YACvBjyO,cAAe,OACf,CAAC,GAAGzD,YAAwB,CAC1B9e,QAAS,UAGb,CAAC,GAAG8e,UAAsB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG4kM,EAAI,UAAW,CACvEj/J,OAAQ7mC,EAAMuuC,gBACdvH,SAAU,OACVM,QAAS,EACT40O,wBAAyB,YAG5B,CACD,CAAC,GAAG31O,WAAsB,QAAevmC,IACzC,EAEEm8Q,EAAgBn8Q,IACpB,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CAEP,CACE,CAAC,GAAGumC,UAAsB,CACxB,CAAC,GAAGA,cAA0B,CAC5B9R,UAAW,OAEb,CAAC,GAAG8R,cAA0B,CAC5B6G,UAAW,SACX,YAAa,CACX3lB,QAAS,eACToiB,MAAO,EACPJ,OAAQ,OACR4D,cAAe,SACfnD,QAAS,MAEX,CAAC3D,GAAe,CACdlD,IAAK,EACL5b,QAAS,eACT2nE,cAAe,EACfhiD,UAAW,QACXC,cAAe,WAGnB,CAAC,sBAAsBrtC,EAAMo8Q,kBAAmB,CAC9C,CAAC71O,GAAe,CACdgxD,SAAU,qBACV3qD,OAAQ,IAAG,QAAK5sC,EAAMotF,kBAExB,CAAC,GAAG7mD,cAA0B,CAC5B,CAACA,GAAe,CACdyB,KAAM,OAOhB,CACE,CAACzB,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACtEgqC,cAAe,OACf5G,SAAU,WACVC,IAAK,IACLwG,MAAO,OACP0tD,SAAU,iBAAgB,QAAKv3F,EAAM8oC,KAAK9oC,EAAM4sC,QAAQ5D,IAAI,GAAGxoB,YAC/DosB,OAAQ,SACRwiD,cAAepvF,EAAMkoD,UACrB,CAAC,GAAG3hB,WAAuB,CACzBqG,OAAQ,EACRzG,MAAOnmC,EAAMq8Q,WACbzqQ,WAAY5R,EAAMwuC,iBAClBr9B,SAAUnR,EAAMk5F,cAChB9yD,WAAYpmC,EAAMm5F,gBAClBmjL,SAAU,cAEZ,CAAC,GAAG/1O,aAAyB,CAC3BnD,SAAU,WACV8D,gBAAiBlnC,EAAMynD,UACvB80N,eAAgB,cAChB7xO,OAAQ,EACRtD,aAAcpnC,EAAMqnC,eACpBE,UAAWvnC,EAAMunC,UACjByC,cAAe,OACf9D,QAASlmC,EAAMmoD,gBAEjB,CAAC,GAAG5hB,WAAuB1+C,OAAOqZ,OAAO,CACvCkiC,SAAU,WACVC,IAAKrjC,EAAM8oC,KAAK9oC,EAAMw8Q,mBAAmBlzO,IAAItpC,EAAMy8Q,mBAAmBvvO,IAAI,GAAG1sB,QAC7EmpB,eAAgB3pC,EAAM8oC,KAAK9oC,EAAMw8Q,mBAAmBlzO,IAAItpC,EAAMy8Q,mBAAmBvvO,IAAI,GAAG1sB,QACxFqmB,OAAQ7mC,EAAM8oC,KAAK9oC,EAAMuuC,iBAAiBptC,IAAI,IAAIqf,QAClD0lB,QAAS,EACTC,MAAOnmC,EAAM08Q,oBACb9qQ,WAAY5R,EAAMwuC,iBAClBpI,WAAY,EACZyP,eAAgB,OAChBhL,WAAY,cACZzD,aAAcpnC,EAAM6nC,eACpBgC,MAAO7pC,EAAMy8Q,kBACbhzO,OAAQzpC,EAAMy8Q,kBACd/xO,OAAQ,EACRpD,QAAS,EACTI,OAAQ,UACRC,WAAY,SAAS3nC,EAAMysC,uCAAuCzsC,EAAMysC,oBACxE,MAAO,CACLhlB,QAAS,OACTtW,SAAUnR,EAAMsR,WAChBi8B,UAAW,SACXnH,YAAY,QAAKpmC,EAAMy8Q,mBACvB7nL,eAAgB,SAChBpnD,cAAe,OACfE,cAAe,QAEjB,aAAc,CACZ1D,cAAe,QAEjB,UAAW,CACT7D,MAAOnmC,EAAM28Q,yBACbz1O,gBAAiBlnC,EAAMuvF,iBACvB15C,eAAgB,QAElB,WAAY,CACV3O,gBAAiBlnC,EAAMo9G,qBAExB,QAAcp9G,IACjB,CAAC,GAAGumC,YAAwB,CAC1BJ,MAAOnmC,EAAMsT,UACbu3B,WAAY7qC,EAAM0nD,SAClBtgB,aAAc,IAAG,QAAKpnC,EAAMqnC,oBAAmB,QAAKrnC,EAAMqnC,sBAC1DolD,aAAczsF,EAAM48Q,mBACpB12O,QAASlmC,EAAM2nD,cACfY,aAAcvoD,EAAM68Q,oBAEtB,CAAC,GAAGt2O,UAAsB,CACxBp1B,SAAUnR,EAAMmR,SAChBi1B,WAAYpmC,EAAMomC,WAClBk2O,SAAU,aACVp2O,QAASlmC,EAAM88Q,YACf,CAAC,GAAGv2O,mBAA+B,CACjCsD,MAAO,OACPJ,OAAQ,OACRhiB,QAAS,OACTmtE,eAAgB,SAChB3sD,WAAY,SACZ2E,OAAQ,IAAG,QAAK5sC,EAAM4sC,iBAG1B,CAAC,GAAGrG,YAAwB,CAC1B6G,UAAW,MACXvC,WAAY7qC,EAAM+8Q,SAClB9vO,UAAWjtC,EAAMg9Q,gBACjB92O,QAASlmC,EAAMi9Q,cACfx0N,UAAWzoD,EAAMk9Q,gBACjB91O,aAAcpnC,EAAMm9Q,mBACpB,CAAC,KAAKn9Q,EAAMsmC,gBAAgBtmC,EAAMsmC,cAAe,CAC/CoiB,kBAAmB1oD,EAAMotF,WAG7B,CAAC,GAAG7mD,UAAsB,CACxBS,SAAU,aAKhB,CACE,CAAC,GAAGT,gBAA4B,CAC9BlD,IAAK,OACL6C,QAAS,EACTze,QAAS,OACTowD,cAAe,SACf,CAAC,GAAGtxC,yBACEA,sBACAA,0BAAsC,CAC1C9e,QAAS,OACTowD,cAAe,SACf7vC,KAAM,QAER,CAAC,GAAGzB,kBAA8B,CAChCkmD,aAAc,UAGlB,EAEE2wL,EAAcp9Q,IAClB,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAAC,GAAGumC,UAAsB,CACxB,CAAC,GAAGA,cAA0B,CAC5B9R,UAAW,MACX,CAAC,GAAG8R,kBAA8B,CAChC9R,UAAW,SAIlB,EAGUrkB,EAAepQ,IAC1B,MAAMq9Q,EAAwBr9Q,EAAMkmC,QAC9Bo3O,EAAiBt9Q,EAAMu9Q,iBACvBC,EAAmBx9Q,EAAMy9Q,mBAY/B,OAXmB,QAAWz9Q,EAAO,CACnCw8Q,kBAAmBx8Q,EAAM8oC,KAAK9oC,EAAM8oC,KAAK00O,GAAkBx0O,IAAIs0O,GAAgB98P,SAASrf,IAAInB,EAAM8oC,KAAKu0O,GAAuBr0O,IAAI,GAAGxoB,SAASA,QAC9Ik9P,4BAA6B19Q,EAAMssC,WACnCqxO,uBAAwB39Q,EAAM2qC,SAC9BizO,uBAAwB59Q,EAAM6S,UAC9B6pQ,oBAAqB18Q,EAAM69Q,UAC3BlB,yBAA0B38Q,EAAM89Q,eAChCrB,kBAAmBz8Q,EAAMuU,cACzB6kF,qBAAsBp5F,EAAMooD,WAC5BixC,iBAAkBr5F,EAAM8oC,KAAK9oC,EAAMk5F,eAAelwD,IAAIhpC,EAAMm5F,iBAAiB34E,SAE9D,EAEN7P,EAAwB3Q,IAAS,CAC5C+8Q,SAAU,cACVr1N,SAAU1nD,EAAMmnC,gBAChBgyD,gBAAiBn5F,EAAMy9Q,mBACvBvkL,cAAel5F,EAAMu9Q,iBACrB91N,UAAWznD,EAAMmnC,gBACjBk1O,WAAYr8Q,EAAM+nD,iBAElBI,eAAgBnoD,EAAM+9Q,UAAY,EAAI,IAAG,QAAK/9Q,EAAMg+Q,eAAc,QAAKh+Q,EAAMi+Q,8BAC7Et2N,cAAe3nD,EAAM+9Q,UAAY,IAAG,QAAK/9Q,EAAMkmC,aAAY,QAAKlmC,EAAMkoD,aAAe,EACrF20N,mBAAoB78Q,EAAM+9Q,UAAY,IAAG,QAAK/9Q,EAAM6S,cAAc7S,EAAM2qC,YAAY3qC,EAAMssC,aAAe,OACzGswO,mBAAoB58Q,EAAM+9Q,UAAY,EAAI/9Q,EAAMotF,SAChD0vL,YAAa98Q,EAAM+9Q,UAAY/9Q,EAAMkoD,UAAY,EACjD+0N,cAAej9Q,EAAM+9Q,UAAY,IAAG,QAAK/9Q,EAAM6tC,eAAc,QAAK7tC,EAAMkmC,WAAa,EACrFg3O,gBAAiBl9Q,EAAM+9Q,UAAY,IAAG,QAAK/9Q,EAAM6S,cAAc7S,EAAM2qC,YAAY3qC,EAAMssC,aAAe,OACtG6wO,mBAAoBn9Q,EAAM+9Q,UAAY,QAAO,QAAK/9Q,EAAMqnC,oBAAmB,QAAKrnC,EAAMqnC,kBAAoB,EAC1G21O,gBAAiBh9Q,EAAM+9Q,UAAY,EAAI/9Q,EAAMioD,SAC7CqxC,mBAAoBt5F,EAAM+9Q,UAAY,IAAG,QAAqB,EAAhB/9Q,EAAMkmC,aAAgB,QAAqB,EAAhBlmC,EAAMkmC,aAAgB,QAAKlmC,EAAMkoD,aAAe,EACzHsxC,2BAA4Bx5F,EAAM+9Q,UAAY/9Q,EAAM4sC,OAAS5sC,EAAMioD,SACnEyxC,qBAAsB15F,EAAM+9Q,UAAY/9Q,EAAMk+Q,SAAWl+Q,EAAMioD,WAEjE,GAAe,QAAc,SAASjoD,IACpC,MAAM65F,EAAazpF,EAAapQ,GAChC,MAAO,CAACm8Q,EAActiL,GAAaujL,EAAYvjL,GAAakiL,EAAkBliL,IAAa,QAAeA,EAAY,QAAQ,GAC7HlpF,EAAuB,CACxB2+B,SAAU,CACR6pD,iBAAiB,uBCnRrB9wG,EAAOC,QAAU,IAA0B,qECA3C,SAAS61R,EAA8B7tR,EAAG1H,GACxC,GAAI,MAAQ0H,EAAG,MAAO,CAAC,EACvB,IAAI6E,EAAI,CAAC,EACT,IAAK,IAAIshB,KAAKnmB,EAAG,GAAI,CAAC,EAAEvI,eAAeU,KAAK6H,EAAGmmB,GAAI,CACjD,GAAI7tB,EAAE6Z,SAASgU,GAAI,SACnBthB,EAAEshB,GAAKnmB,EAAEmmB,EACX,CACA,OAAOthB,CACT,oCCRA9M,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIzB,SAASm+F,EAAUr7F,EAAQs7F,EAAe34G,EAAK44G,GAC3C,OAAQ54G,GACJ,IAAK,IACD,OAAO24G,EAAgB,gBAAkB,kBAC7C,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,UAAY,aACjD,IAAK,IACL,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,SAAW,YAChD,IAAK,IACL,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,OAAS,WAC9C,IAAK,IACL,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,QAAU,WAC/C,IAAK,IACL,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,OAAS,UAC9C,IAAK,IACL,IAAK,KACD,OAAOt7F,GAAUs7F,EAAgB,OAAS,WAC9C,QACI,OAAOt7F,EAEnB,CAES9C,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,+LAA+L/b,MACnM,KAEJmc,YACI,6EAA6Enc,MACzE,KAERoc,kBAAkB,EAClBC,SAAU,6CAA6Crc,MAAM,KAC7Dsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJE,IAAK,0BACLE,KAAM,iCAEV2P,cAAe,SACfC,KAAM,SAAU9nB,GACZ,MAAiB,OAAVA,CACX,EACA+nB,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,GACA,KAEA,IAEf,EACA5P,SAAU,CACNC,QAAS,eACTE,QAAS,eACTC,SAAU,iBACVC,QAAS,eACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNpU,EAAGuwG,EACHl8F,GAAIk8F,EACJj8F,EAAGi8F,EACHh8F,GAAIg8F,EACJ/7F,EAAG+7F,EACH97F,GAAI87F,EACJ77F,EAAG67F,EACH57F,GAAI47F,EACJ37F,EAAG27F,EACH17F,GAAI07F,EACJz7F,EAAGy7F,EACHx7F,GAAIw7F,GAERv7F,uBAAwB,eACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,QACpB,QACI,OAAOA,EAEnB,GAKP,CAxGyCM,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,mOC8F3C,QAnFa,SAAgB8N,GAC3B,IAAImoD,EAAYnoD,EAAMmoD,UACpBx5C,EAAS3O,EAAM2O,OACf85C,EAAWzoD,EAAMyoD,SACjB3F,EAAW9iD,EAAM8iD,SACjBsF,EAAmBpoD,EAAMooD,iBACzBrY,EAAQ/vC,EAAM+vC,MACd16C,EAAO2K,EAAM3K,KACX2yR,GAAY,IAAAt0N,UACZm4D,GAAe,IAAAn4D,UACfo4D,GAAW,IAAAp4D,QAAO3jB,GAClBiR,EAAW,SAAkBzgC,GAC/B,MAAgB,QAATlrB,EAAiBkrB,EAAEspC,SAAiB,IAANtpC,EAAEnqB,CACzC,EACI21H,GAAe,SAAS,SAAUC,GACpC,IAAIC,GAAY,QAAe,CAC7BjnE,OAAQgnE,EACRE,UAAWL,EACXz+C,aAAc46M,EACdj4O,MAAOA,EACP16C,KAAMA,IAERy2H,EAASlxH,QAAUqxH,EACnBnpE,EAAS9B,EAASirE,GACpB,IACIE,GAAgB,OAAa,CAC7Bp8E,MAAOA,EACPm8E,UAAWL,EACXz+C,aAAc46M,EACdl/O,UAAW,WACT,OAAO,QAAWiH,EAAO16C,EAC3B,EACA02H,aAAcA,EACdK,qBAAsB,WACpBhkE,EAAiBpH,EAAS8qE,EAASlxH,SACrC,EACAyjC,UAAW,IACXguF,aAAc5jE,IAEhB6jE,GAAiB,OAAeH,EAAe,GAC/CnnE,EAASsnE,EAAe,GACxBC,EAAkBD,EAAe,GAC/B27J,EAAc,WAAc,WAC9B,GAAa,QAAT5yR,EAAgB,CAClB,IAAIiyF,EAAMv3C,EAAMw3C,QAKhB,OAJAD,EAAI3qF,EAAI,EACR2qF,EAAIjxF,EAAI,EACRixF,EAAIlxF,EAAI,EACS,IAAI,IAAMkxF,EAE7B,CACA,OAAOv3C,CACT,GAAG,CAACA,EAAO16C,IAGP6yR,EAAe,WAAc,WAC/B,OAAOv5Q,EAAO9X,KAAI,SAAUw2D,GAC1B,MAAO,GAAGhwD,OAAOgwD,EAAKtd,MAAO,KAAK1yC,OAAOgwD,EAAKpF,QAAS,IACzD,GACF,GAAG,CAACt5C,IAGJ,OAAoB,gBAAoB,MAAO,CAC7CmH,IAAKkyQ,EACLv6Q,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,WAAY,GAAG9qD,OAAO8qD,EAAW,YAAY9qD,OAAOhI,IAC/F0/G,YAAawX,EACbC,aAAcD,GACA,gBAAoB,IAAS,CAC3CpkE,UAAWA,GACG,gBAAoB,IAAW,CAC7Cx4B,EAAGq1B,EAAOr1B,EACVle,EAAGuzC,EAAOvzC,EACVqE,IAAK+1G,GACS,gBAAoB,IAAS,CAC3C9gG,KAAM,QACNglB,MAAOk4O,EAAYE,cACnBhgO,UAAWA,KACK,gBAAoB,IAAU,CAC9Cx5C,OAAQu5Q,EACR7yR,KAAMA,EACN8yD,UAAWA,KAEf,4JC1FI2K,EAAY,CAAC,YAAa,aAAc,OAAQ,aAAc,aAAc,qBAAsB,eAAgB,UAAW,YAAa,QAAS,WAAY,UAAW,QAAS,aAKnLs1N,OAAYp2R,EAChB,SAASq2R,EAAaroR,EAAO8V,GAC3B,IAAIqyC,EAAYnoD,EAAMmoD,UACpB2lN,EAAa9tQ,EAAM8tQ,WACnB1iN,EAAOprD,EAAMorD,KACbk9N,EAAatoR,EAAMsoR,WACnBC,EAAavoR,EAAMuoR,WACnBC,EAAqBxoR,EAAMwoR,mBAC3BC,EAAezoR,EAAMyoR,aACrBC,EAAU1oR,EAAM0oR,QAChBj7Q,EAAYzN,EAAMyN,UAClBq/B,EAAQ9sC,EAAM8sC,MACdp/B,EAAW1N,EAAM0N,SACjB2jB,EAAUrxB,EAAMqxB,QAChBgG,EAAQr3B,EAAMq3B,MACdsxP,EAAmB3oR,EAAMqjE,UACzBsf,OAAiC,IAArBgmM,EAA8B,MAAQA,EAClDz1N,GAAY,OAAyBlzD,EAAO8yD,GAC1C81N,EAAeL,IAAel3P,EAElC,SAASw3P,EAAqBp1O,GAC5Bg1O,EAAaC,EAASj1O,EACxB,CACA,aAAgB,WACd,OAAO,WACLo1O,EAAqB,KACvB,CACF,GAAG,IAEH,IACIC,EADAC,EAAYT,GAAcl9N,IAASg9N,EAAYE,EAAWl9N,GAAQ19C,EAEjEogQ,IACHgb,EAAgB,CACdzxO,QAASuxO,EAAe,EAAI,EAC5Bv1O,OAAQu1O,EAAe,EAAIR,EAC3BnwL,UAAW2wL,EAAe,SAAWR,EACrC/wP,MAAOkxP,EAAalxP,EAAQ+wP,EAC5Bx0O,cAAeg1O,EAAe,OAASR,EACvCp7O,SAAU47O,EAAe,WAAaR,IAG1C,IAAIY,EAAgB,CAAC,EACjBJ,IACFI,EAAc,gBAAiB,GAEjC,IAAIC,EAAwB,gBAAoBtmM,GAAW,OAAS,CAClEl1E,UAAW,KAAYqgQ,GAAc3lN,EAAW16C,GAChDq/B,OAAO,QAAc,OAAc,CAAC,EAAGg8O,GAAgBh8O,IACtDk8O,EAAe91N,EAAW,CAC3Bp9C,IAAKA,IACHizQ,GAUJ,OATIR,IACFU,EAAwB,gBAAoB,IAAgB,CAC1DC,SAAU,SAAkBjwR,GAE1B4vR,EADkB5vR,EAAKkwR,YAEzB,EACA1gO,SAAU+/N,GACTS,IAEEA,CACT,CACA,IAAIxnN,EAAoB,aAAiB4mN,GACzC5mN,EAAKrO,YAAc,OACnB,iDCzCe,SAASg2N,EAAeC,EAAoBnmO,GAEzD,IAAImjB,EAAkB,WAAenjB,GACnCojB,GAAmB,OAAeD,EAAiB,GACnDijN,EAAahjN,EAAiB,GAC9BijN,EAAgBjjN,EAAiB,GAOnC,MAAO,CAACgjN,GALW,EAAApsL,EAAA,IAAS,SAAUv6C,GACpC0mO,GAAmB,WACjBE,EAAc5mO,EAChB,GACF,IAEF,CC3CO,IAAI6mO,EAA+B,gBAAoB,MCC1D,EAAY,CAAC,aACfzoN,EAAa,CAAC,aACdC,EAAa,CAAC,aAKZyoN,EAAkB,SAAyBzpR,EAAO8V,GACpD,IAAI/Y,EAAU,aAAiBysR,GAE/B,IAAKzsR,EAAS,CACZ,IAAI4rR,EAAmB3oR,EAAMqjE,UAC3Bsf,OAAiC,IAArBgmM,EAA8B,MAAQA,EAClDe,GAAa,OAAyB1pR,EAAO,GAC/C,OAAoB,gBAAoB2iF,GAAW,OAAS,CAAC,EAAG+mM,EAAY,CAC1E5zQ,IAAKA,IAET,CACA,IAAI6zQ,EAAmB5sR,EAAQ0Q,UAC7Bm8Q,GAAc,OAAyB7sR,EAASgkE,GAC9CtzD,EAAYzN,EAAMyN,UACpBylD,GAAY,OAAyBlzD,EAAOghE,GAE9C,OAAoB,gBAAoBwoN,EAAgB3qQ,SAAU,CAChE1sB,MAAO,MACO,gBAAoB,GAAM,OAAS,CACjD2jB,IAAKA,EACLrI,UAAW,IAAWk8Q,EAAkBl8Q,IACvCm8Q,EAAa12N,IAClB,EACI22N,EAAuB,aAAiBJ,GAC5CI,EAAQz2N,YAAc,UACtB,UC9BA,IAAI,EAAY,CAAC,YAAa,OAAQ,aAAc,gBAAiB,UAAW,YAAa,MAAO,QAAS,YAAa,WAAY,aAAc,gBAAiB,SAAU,YAAa,gBAAiB,mBAUzMwhB,EAAa,aACbD,EAAa,aAEjB,SAASm1M,EAAkBC,GACzB,MAAO,KAAK1sR,OAAO0sR,EAAa9zR,OAAQ,OAC1C,CACA,SAAS+zR,EAAShqR,EAAO8V,GACvB,IHXIm0Q,EGWA/hO,EAAmBloD,EAAMmoD,UAC3BA,OAAiC,IAArBD,EAA8B,cAAgBA,EAC1DgiO,EAAclqR,EAAMN,KACpBA,OAAuB,IAAhBwqR,EAAyB,GAAKA,EACrC5B,EAAatoR,EAAMsoR,WACnBh0M,EAAgBt0E,EAAMs0E,cACtBo0M,EAAU1oR,EAAM0oR,QAChByB,EAAmBnqR,EAAMk3F,UACzBA,OAAiC,IAArBizL,EAA8B,GAAKA,EAC/Ct1M,EAAM70E,EAAM60E,IACZ/nC,EAAQ9sC,EAAM8sC,MACdr/B,EAAYzN,EAAMyN,UAClBinE,EAAW10E,EAAM00E,SACjB01M,EAAapqR,EAAMoqR,WACnB71M,EAAgBv0E,EAAMu0E,cACtBzhC,EAAS9yC,EAAM8yC,OACf61O,EAAmB3oR,EAAMqjE,UACzBsf,OAAiC,IAArBgmM,EAA8B,MAAQA,EAClDv0M,EAAgBp0E,EAAMo0E,cACtBvO,EAAkB7lE,EAAM6lE,gBACxB3S,GAAY,OAAyBlzD,EAAO,GAC1CqqR,EAAmB,SAARx1M,EACXw0M,GHjCAY,EAAgB,SAAa,MAER,SAA4Bh+Q,GAC9Cg+Q,EAAcrvR,UACjBqvR,EAAcrvR,QAAU,GIbf,SAAuBqR,GACpC,GAA8B,oBAAnBq+Q,gBACT,EAAArsO,EAAA,GAAIhyC,OACC,CACL,IAAI3Q,EAAU,IAAIgvR,eAClBhvR,EAAQivR,MAAMplJ,UAAY,WACxB,OAAOl5H,GACT,EACA3Q,EAAQkvR,MAAMljJ,iBAAYt1I,EAC5B,CACF,CJIMy4R,EAAc,YACZ,IAAAC,0BAAwB,WACtBT,EAAcrvR,QAAQtG,SAAQ,SAAU0I,GACtCA,GACF,IACAitR,EAAcrvR,QAAU,IAC1B,GACF,KAEFqvR,EAAcrvR,QAAQjD,KAAKsU,EAC7B,GGmBI0+Q,EAAkBvB,EAAeC,EAAoB,MACvDuB,GAAmB,OAAeD,EAAiB,GACnDE,EAAiBD,EAAiB,GAClCE,EAAoBF,EAAiB,GACnCG,EAAuBF,GAAkB,EACzCG,EAAmB5B,EAAeC,EAAoB,IAAIp1R,KAC5Dg3R,GAAmB,OAAeD,EAAkB,GACpDE,EAAaD,EAAiB,GAC9BE,EAAgBF,EAAiB,GAC/BG,EAAmBhC,EAAeC,EAAoB,GACxDgC,GAAmB,OAAeD,EAAkB,GACpDE,GAAgBD,EAAiB,GACjCE,GAAmBF,EAAiB,GAClCG,GAAmBpC,EAAeC,EAAoB,GACxDoC,IAAmB,OAAeD,GAAkB,GACpDE,GAAYD,GAAiB,GAC7BE,GAAeF,GAAiB,GAC9BG,GAAmBxC,EAAeC,EAAoB,GACxDwC,IAAoB,OAAeD,GAAkB,GACrDE,GAAcD,GAAkB,GAChCE,GAAiBF,GAAkB,GACjCG,IAAY,IAAA59L,UAAS,MACvB69L,IAAa,OAAeD,GAAW,GACvCE,GAAmBD,GAAW,GAC9BE,GAAsBF,GAAW,GAC/BG,IAAa,IAAAh+L,UAAS,MACxBi+L,IAAa,OAAeD,GAAY,GACxCE,GAAeD,GAAW,GAC1BE,GAAkBF,GAAW,GAC3BG,GAAqB,WAAc,WACrC,OAAqB,OAAjBF,IAAyBjC,EACpB7gR,OAAOwyB,iBAETswP,IAAgB,CACzB,GAAG,CAACA,GAAczB,IACd4B,IAAa,IAAAr+L,WAAS,GACxBs+L,IAAa,OAAeD,GAAY,GACxCE,GAAYD,GAAW,GACvBE,GAAeF,GAAW,GACxBG,GAAgB,GAAGxvR,OAAO8qD,EAAW,SAErC2kO,GAAkB/5R,KAAKmrB,IAAIotQ,GAAeI,IAE1CqB,GAAer4M,IAAaE,EAC5Bo4M,GAAmBttR,EAAKzJ,QAAU82R,GAClCjf,GAAap5L,IAAaC,EAI1Bs4M,GAAWD,IAAwC,iBAAbt4M,GAAyBh1E,EAAKzJ,OAASy+E,EAC7Ew4M,IAAa,IAAAnsO,UAAQ,WACvB,IAAI9uB,EAAQvyB,EAUZ,OATIstR,GAEA/6P,EADqB,OAAnB44P,GAA2BR,EACrB3qR,EAEAA,EAAKlG,MAAM,EAAGzG,KAAK6+B,IAAIlyB,EAAKzJ,OAAQ80R,EAAuB7zL,IAExC,iBAAbxiB,IAChBziD,EAAQvyB,EAAKlG,MAAM,EAAGk7E,IAEjBziD,CACT,GAAG,CAACvyB,EAAMw3F,EAAW2zL,EAAgBn2M,EAAUs4M,KAC3CjD,IAAe,IAAAhpO,UAAQ,WACzB,OAAIisO,GACKttR,EAAKlG,MAAMgzR,GAAqB,GAElC9sR,EAAKlG,MAAM0zR,GAAWj3R,OAC/B,GAAG,CAACyJ,EAAMwtR,GAAYF,GAAkBR,KAEpCjqO,IAAS,IAAAsR,cAAY,SAAUzI,EAAM7hD,GACvC,IAAItQ,EACJ,MAAuB,mBAAZyvR,EACFA,EAAQt9N,GAE0E,QAAnFnyD,EAAOyvR,IAAYt9N,aAAmC,EAASA,EAAKs9N,WAAgC,IAATzvR,EAAkBA,EAAOsQ,CAC9H,GAAG,CAACm/Q,IACAyE,IAAmB,IAAAt5N,aAAYy0N,GAAc,SAAUl9N,GACzD,OAAOA,CACT,EAAG,CAACk9N,IACJ,SAAS8E,GAAmBr4N,EAAOs4N,EAAqBC,IAIlDhB,KAAiBv3N,QAAkC/iE,IAAxBq7R,GAAqCA,IAAwBnB,MAG5FK,GAAgBx3N,GACXu4N,IACHV,GAAa73N,EAAQr1D,EAAKzJ,OAAS,GACnC4vE,SAAkEA,EAAgB9Q,SAExD/iE,IAAxBq7R,GACFlB,GAAoBkB,GAExB,CAKA,SAAS5E,GAAaj0R,EAAKi/C,GACzB03O,GAAc,SAAU3uN,GACtB,IAAIj6C,EAAQ,IAAItuB,IAAIuoE,GAMpB,OALc,OAAV/oB,EACFlxB,EAAMztB,OAAON,GAEb+tB,EAAM9tB,IAAID,EAAKi/C,GAEVlxB,CACT,GACF,CASA,SAASgrQ,GAAahkR,GACpB,OAAO2hR,EAAW/jR,IAAIo7C,GAAO2qO,GAAW3jR,GAAQA,GAClD,EACA,EAAA2hH,EAAA,IAAgB,WACd,GAAI6/J,GAAmD,iBAApB+B,IAAgCI,GAAY,CAC7E,IAAIM,EAAa1B,GACbjyR,EAAMqzR,GAAWj3R,OACjB0uJ,EAAY9qJ,EAAM,EAEtB,IAAKA,EAEH,YADAuzR,GAAmB,EAAG,MAGxB,IAAK,IAAIxzR,EAAI,EAAGA,EAAIC,EAAKD,GAAK,EAAG,CAC/B,IAAI6zR,EAAmBF,GAAa3zR,GAMpC,GAJIywR,IACFoD,EAAmBA,GAAoB,QAGhBz7R,IAArBy7R,EAAgC,CAClCL,GAAmBxzR,EAAI,OAAG5H,GAAW,GACrC,KACF,CAGA,GADAw7R,GAAcC,EAGA,IAAd9oI,GAAmB6oI,GAAczC,GAEjCnxR,IAAM+qJ,EAAY,GAAK6oI,EAAaD,GAAa5oI,IAAcomI,EAAsB,CAEnFqC,GAAmBzoI,EAAW,MAC9B,KACF,CAAO,GAAI6oI,EAAaV,GAAkB/B,EAAsB,CAE9DqC,GAAmBxzR,EAAI,EAAG4zR,EAAaC,EAAmB3B,GAAcJ,IACxE,KACF,CACF,CACI54O,GAAUy6O,GAAa,GAAKzB,GAAcf,GAC5CoB,GAAoB,KAExB,CACF,GAAG,CAACpB,EAAsBG,EAAYQ,GAAWI,GAAavpO,GAAQ2qO,KAEtE,IAAIQ,GAAcf,MAAe5C,GAAa9zR,OAC1C03R,GAAc,CAAC,EACM,OAArBzB,IAA6Bc,KAC/BW,GAAc,CACZ3gP,SAAU,WACVujF,KAAM27J,GACNj/O,IAAK,IAGT,IAgCI2gP,GAhCAC,GAAkB,CACpB1lO,UAAW0kO,GACXtE,WAAYyE,GACZ3pN,UAAW+Q,EACX05L,WAAYA,IAGVggB,GAAyBx5M,EAAgB,SAAUlpB,EAAM7hD,GAC3D,IAAI/U,EAAM+tD,GAAO6I,EAAM7hD,GACvB,OAAoB,gBAAoBigR,EAAgB3qQ,SAAU,CAChErqB,IAAKA,EACLrC,OAAO,QAAc,OAAc,CAAC,EAAG07R,IAAkB,CAAC,EAAG,CAC3Dx2P,MAAO9tB,EACP6hD,KAAMA,EACNs9N,QAASl0R,EACTi0R,aAAcA,GACdp3P,QAAS9nB,GAASijR,MAEnBl4M,EAAclpB,EAAM7hD,GACzB,EAAI,SAAU6hD,EAAM7hD,GAClB,IAAI/U,EAAM+tD,GAAO6I,EAAM7hD,GACvB,OAAoB,gBAAoB,GAAM,OAAS,CAAC,EAAGskR,GAAiB,CAC1Ex2P,MAAO9tB,EACP/U,IAAKA,EACL42D,KAAMA,EACNk9N,WAAY6E,GACZzE,QAASl0R,EACTi0R,aAAcA,GACdp3P,QAAS9nB,GAASijR,KAEtB,EAGIuB,GAAmB,CACrB12P,MAAOq2P,GAAclB,GAAqBhjR,OAAOwyB,iBACjDvuB,UAAW,GAAGpQ,OAAOwvR,GAAe,SACpCpE,aAnGF,SAA8B5xP,EAAG4c,GAC/Bk4O,GAAal4O,GACb83O,GAAiBG,GACnB,EAiGEr6P,QAASq8P,IAEX,GAAKn5M,EAGMA,IACTq5M,GAAwB,gBAAoBpE,EAAgB3qQ,SAAU,CACpE1sB,OAAO,QAAc,OAAc,CAAC,EAAG07R,IAAkBE,KACxDx5M,EAAcw1M,UANC,CAClB,IAAIiE,GAAmB5D,GAAcN,EACrC8D,GAAwB,gBAAoB,GAAM,OAAS,CAAC,EAAGC,GAAiBE,IAA+C,mBAArBC,GAAkCA,GAAiBjE,IAAgBiE,GAC/K,CAKA,IAAIC,GAA4B,gBAAoBtrM,GAAW,OAAS,CACtEl1E,UAAW,KAAYqgQ,IAAc3lN,EAAW16C,GAChDq/B,MAAOA,EACPh3B,IAAKA,GACJo9C,GAAYg6N,GAAWr2R,IAAIi3R,IAAyBb,GAAWW,GAAW,KAAM96O,GAAuB,gBAAoB,GAAM,OAAS,CAAC,EAAG+6O,GAAiB,CAChKtF,WAAYwE,GACZvE,oBAAqBwE,GACrB31P,MAAOm1P,GACP/+Q,UAAW,GAAGpQ,OAAOwvR,GAAe,WACpCpE,aAnHF,SAA4B5xP,EAAG4c,GAC7Bs4O,GAAet4O,EACjB,EAkHEpiB,SAAS,EACTyb,MAAO6gP,KACL76O,IAOJ,OANIi6O,KACFkB,GAA4B,gBAAoB,IAAgB,CAC9D/E,SA3IJ,SAA0BryP,EAAGmoC,GAC3B8rN,EAAkB9rN,EAAQgxD,YAC5B,EA0IIvnE,UAAWukO,IACViB,KAEEA,EACT,CACA,IAAIC,EAA+B,aAAiBlE,GACpDkE,EAAgB96N,YAAc,WAC9B86N,EAAgBzsN,KAAO,EACvBysN,EAAgBt5M,WAAaA,EAC7Bs5M,EAAgBv5M,WAAaA,EAE7B,MEnSA,EFmSA,kEGnSIw5M,EAAqB,SAA4BniO,GACnD,IAAI,UAAepe,OAAO3E,SAASgjD,gBAAiB,CAClD,IAAImiM,EAAgBhqR,MAAMie,QAAQ2pC,GAAaA,EAAY,CAACA,GACxDigC,EAAkBr+C,OAAO3E,SAASgjD,gBACtC,OAAOmiM,EAAcl2R,MAAK,SAAUgG,GAClC,OAAOA,KAAQ+tF,EAAgBn/C,KACjC,GACF,CACA,OAAO,CACT,EACIuhP,EAAsB,SAA6BriO,EAAW75D,GAChE,IAAKg8R,EAAmBniO,GACtB,OAAO,EAET,IAAI30C,EAAM4xB,SAASjwB,cAAc,OAC7BwjD,EAASnlD,EAAIy1B,MAAMkf,GAEvB,OADA30C,EAAIy1B,MAAMkf,GAAa75D,EAChBklB,EAAIy1B,MAAMkf,KAAewQ,CAClC,EACO,SAAS8xN,EAAetiO,EAAWuiO,GACxC,OAAKnqR,MAAMie,QAAQ2pC,SAA6Bh6D,IAAfu8R,EAG1BJ,EAAmBniO,GAFjBqiO,EAAoBriO,EAAWuiO,EAG1C,kECxBe,SAASC,EAAkB5kR,GACxC,MAAM,WACJ6kR,EAAU,WACVC,EAAU,aACV19O,EAAY,UACZv0B,GACE7S,EACJ,OAAOnY,OAAOqZ,OAAO,CAEnB0sF,mBAAoB,IAAIk3L,EAAaD,GAAY/uN,QAAQ,MACzDrpB,kBAAmB,IAAIq4O,EAA0B,EAAbD,GAAgB/uN,QAAQ,MAC5DluB,mBAAoB,IAAIk9O,EAA0B,EAAbD,GAAgB/uN,QAAQ,MAE7Dw5B,cAAez8E,EAAY,IAC1B,OAAUu0B,GACf,oBChBA/+C,EAAOC,QAAU,IAA0B,gHCO5B,SAASy8R,EAAazrO,GACnC,IAAI8sB,EAAa,UAAa,GAC1B3J,EAAkB,WAAenjB,GACnCojB,GAAmB,OAAeD,EAAiB,GACnDl0E,EAAQm0E,EAAiB,GACzBsoN,EAAWtoN,EAAiB,GAa9B,OAZA,aAAgB,WAEd,OADA0J,EAAWp1E,SAAU,EACd,WACLo1E,EAAWp1E,SAAU,CACvB,CACF,GAAG,IAOI,CAACzI,EANR,SAAsB81F,EAAS4mM,GACzBA,GAAiB7+M,EAAWp1E,SAGhCg0R,EAAS3mM,EACX,EAEF,2BCdQ,SAAWl5E,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwC/b,MAC5C,KAEJmc,YAAa,yCAAyCnc,MAClD,KAEJqc,SAAU,8BAA8Brc,MAAM,KAC9Csc,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,gBAAgBvc,MAAM,KACnCyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJE,IAAK,kBACLE,KAAM,sBACNmQ,EAAG,WACHtQ,GAAI,YACJE,IAAK,kBACLE,KAAM,uBAEV0P,cAAe,oBACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAEM,OAAbD,GAAkC,OAAbA,GAAkC,OAAbA,EACnCC,EACa,OAAbD,EACAC,GAAQ,GAAKA,EAAOA,EAAO,GACd,OAAbD,GAAkC,OAAbA,EACrBC,EAAO,QADX,CAGX,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,IAAI2uQ,EAAY,IAAP7uQ,EAAaC,EACtB,OAAI4uQ,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACO,OAAPA,EACA,KACAA,EAAK,KACL,KAEA,IAEf,EACAz+Q,SAAU,CACNC,QAAS,SACTE,QAAS,SACTC,SAAU,YACVC,QAAS,SACTC,SAAU,YACVC,SAAU,KAEde,uBAAwB,iBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAhB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNpU,EAAG,KACHqU,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,SAMf,CAtGyCS,CAAQ,EAAQ,wCCR1D,EAAQ,QACR,IAAI48Q,EAAc,EAAQ,QAE1B98R,EAAOC,QAAU68R,EAAY,QAAS,gDCFtC,IAoDIC,EApDA1lK,EAAW,EAAQ,OACnB2lK,EAAyB,EAAQ,QACjCC,EAAc,EAAQ,QACtBvkK,EAAa,EAAQ,QACrBwkK,EAAO,EAAQ,OACfC,EAAwB,EAAQ,QAChCC,EAAY,EAAQ,QAIpBC,EAAY,YACZC,EAAS,SACTC,EAAWH,EAAU,YAErBI,EAAmB,WAA0B,EAE7CC,EAAY,SAAU57O,GACxB,MARO,IAQKy7O,EATL,IASmBz7O,EAAnBlkC,KAAwC2/Q,EATxC,GAUT,EAGII,EAA4B,SAAUX,GACxCA,EAAgBY,MAAMF,EAAU,KAChCV,EAAgB11R,QAChB,IAAI89J,EAAO43H,EAAgBa,aAAap+R,OAGxC,OADAu9R,EAAkB,KACX53H,CACT,EAyBI04H,EAAkB,WACpB,IACEd,EAAkB,IAAIe,cAAc,WACtC,CAAE,MAAOr1R,GAAsB,CAzBF,IAIzBs1R,EAFAC,EACAC,EAuBJJ,EAAqC,oBAAZ7mP,SACrBA,SAAS7J,QAAU4vP,EACjBW,EAA0BX,IA1B5BiB,EAASb,EAAsB,UAC/Bc,EAAK,OAASX,EAAS,IAE3BU,EAAOnjP,MAAMzb,QAAU,OACvB89P,EAAKhjP,YAAY8jP,GAEjBA,EAAOtkP,IAAMlzC,OAAOy3R,IACpBF,EAAiBC,EAAOzwJ,cAAcv2F,UACvB2+B,OACfooN,EAAeJ,MAAMF,EAAU,sBAC/BM,EAAe12R,QACR02R,EAAe1yR,GAiBlBqyR,EAA0BX,GAE9B,IADA,IAAI/4R,EAASi5R,EAAYj5R,OAClBA,YAAiB65R,EAAgBR,GAAWJ,EAAYj5R,IAC/D,OAAO65R,GACT,EAEAnlK,EAAW6kK,IAAY,EAKvBv9R,EAAOC,QAAUT,OAAO+Q,QAAU,SAAgB2kC,EAAGgpP,GACnD,IAAI19R,EAQJ,OAPU,OAAN00C,GACFsoP,EAAiBH,GAAahmK,EAASniF,GACvC10C,EAAS,IAAIg9R,EACbA,EAAiBH,GAAa,KAE9B78R,EAAO+8R,GAAYroP,GACd10C,EAASq9R,SACM99R,IAAfm+R,EAA2B19R,EAASw8R,EAAuBxuQ,EAAEhuB,EAAQ09R,EAC9E,0FC1EA,MAAMhxJ,EAAwB,CAAC,EAyG/B,SAASjhF,KAAcwhF,GACrB,OA/FF,SACExhI,GAEA,MAAMmhI,EAASF,EAAsBjhI,GACrC,GAAImhI,EACF,OAAOA,EAGT,IAAIC,EAAO,IAAOphI,GAGlB,IAAI,QAAiBohI,GACnB,OAAQH,EAAsBjhI,GAAQohI,EAAKx6H,KAAK,KAGlD,MAAMmkC,EAAW,IAAOA,SAExB,GAAIA,GAA8C,mBAA3BA,EAASjwB,cAC9B,IACE,MAAMuG,EAAU0pB,EAASjwB,cAAc,UACvCuG,EAAQggH,QAAS,EACjBt2F,EAAS9d,KAAKghB,YAAY5sB,GAC1B,MAAMigH,EAAgBjgH,EAAQigH,cAC1BA,GAAiBA,EAActhI,KACjCohI,EAAOE,EAActhI,IAEvB+qC,EAAS9d,KAAKojB,YAAYhvB,EAC5B,CAAE,MAAO/sB,GAEP,KAAe,KAAOqgC,KAAK,uCAAuC30B,8BAAiCA,MAAU1L,EAC/G,CAKF,OAAK8sI,EAIGH,EAAsBjhI,GAAQohI,EAAKx6H,KAAK,KAHvCw6H,CAIX,CAuDS8wJ,CAAwB,aAAxBA,IAAyC1wJ,EAClD,oBCpHA,aACAjuI,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD04Q,EAA4Bx4Q,EAAyB,EAAQ,SAC7Dy4Q,EAAU,EAAQ,QAClBC,EAAyB14Q,EAAyB,EAAQ,QAC1D24Q,EAA0B34Q,EAAyB,EAAQ,SAC3D44Q,EAAuB,EAAQ,QAC/BC,EAAS,EAAQ,QACrB,SAASC,EAAqBpxR,EAAK1F,IACpB,MAAPA,GAAeA,EAAM0F,EAAItJ,UAAQ4D,EAAM0F,EAAItJ,QAC/C,IAAI,IAAI2D,EAAI,EAAG2nR,EAAO,IAAIn9Q,MAAMvK,GAAMD,EAAIC,EAAKD,IAAI2nR,EAAK3nR,GAAK2F,EAAI3F,GACjE,OAAO2nR,CACX,CAIA,SAASxpQ,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,EA2GA,EAAI+3Q,EAAqBtiR,iBAAiBmiR,EAAQM,KAAKC,SACvD,IAAIlwN,EAAqBjpD,EAAOmC,YAAW,SAAS7Z,EAAO8V,GACvD,IAaIg7Q,EAZJrjR,EAAYzN,EAAMyN,UAClB8L,EAAOvZ,EAAMuZ,KAAMw3Q,EAAO/wR,EAAM+wR,KAAMC,EAAShxR,EAAMgxR,OAAQtzN,EAAW19D,EAAM09D,SAAUzK,EAAUjzD,EAAMizD,QACxG7kD,EAAepO,EAAMoO,aAAc8kD,EA7CvC,SAAoCh6C,EAAQ+3Q,GACxC,GAAc,MAAV/3Q,EAAgB,MAAO,CAAC,EAC5B,IACI1kB,EAAKoF,EADLqf,EAaR,SAA0CC,EAAQ+3Q,GAC9C,GAAc,MAAV/3Q,EAAgB,MAAO,CAAC,EAC5B,IAEI1kB,EAAKoF,EAFLqf,EAAS,CAAC,EACVi4Q,EAAaz/R,OAAOwK,KAAKid,GAE7B,IAAItf,EAAI,EAAGA,EAAIs3R,EAAWj7R,OAAQ2D,IAC9BpF,EAAM08R,EAAWt3R,GACbq3R,EAASh9P,QAAQz/B,IAAQ,IAC7BykB,EAAOzkB,GAAO0kB,EAAO1kB,IAEzB,OAAOykB,CACX,CAxBiBk4Q,CAAiCj4Q,EAAQ+3Q,GAEtD,GAAIx/R,OAAO2nB,sBAAuB,CAC9B,IAAIg4Q,EAAmB3/R,OAAO2nB,sBAAsBF,GACpD,IAAItf,EAAI,EAAGA,EAAIw3R,EAAiBn7R,OAAQ2D,IACpCpF,EAAM48R,EAAiBx3R,GACnBq3R,EAASh9P,QAAQz/B,IAAQ,GACxB/C,OAAOC,UAAU4lB,qBAAqBjlB,KAAK6mB,EAAQ1kB,KACxDykB,EAAOzkB,GAAO0kB,EAAO1kB,GAE7B,CACA,OAAOykB,CACX,CA+BmDo4Q,CAA2BrxR,EAAO,CAC7E,YACA,OACA,OACA,SACA,WACA,UACA,iBAEAsxR,EAAoB55Q,EAAO2vC,WAAWkpO,EAASp4Q,SAAUo5Q,EAA8BD,EAAkBnpO,UAAWA,OAA4C,IAAhCopO,EAAyC,UAAYA,EAA6BnrN,EAAgBkrN,EAAkBlrN,cAEpPqtB,GAAc,EAAI48L,EAAYl4Q,SAASiuD,EAAeje,GAAuBpwC,EAAX+4Q,EAAO,CAAC,EAA0B,GAAGzzR,OAAO8qD,EAAW,KAAK9qD,OAAOkc,EAAKrb,QAASqb,EAAKrb,MAAO6Z,EAAiB+4Q,EAAM,GAAGzzR,OAAO8qD,EAAW,WAAY4oO,GAAsB,YAAdx3Q,EAAKrb,MAAqB4yR,GAAOrjR,GAChQ+jR,EAAe9zN,OACE1rE,IAAjBw/R,GAA8Bv+N,IAC9Bu+N,GAAgB,GAEpB,IAlCsBjyR,EAAK3F,EAtCDqf,EAAQC,EAwE9Bu4Q,EAAWT,EAAS,CACpBU,YAAa,UAAUr0R,OAAO2zR,EAAQ,QACtCv+N,UAAW,UAAUp1D,OAAO2zR,EAAQ,cACpCh/R,EACA2/R,GAtCkBpyR,GAsCyB,EAAImxR,EAAO5nJ,wBAAwB16H,GAtCvDxU,EAsCsE,EAjMrG,SAA2B2F,GACvB,GAAI6E,MAAMie,QAAQ9iB,GAAM,OAAOA,CACnC,CA0JWqyR,CAAkBryR,IA9F7B,SAAkCA,EAAK3F,GACnC,IAAIizH,EAAY,MAAPttH,EAAc,KAAyB,oBAAXhO,QAA0BgO,EAAIhO,OAAOyM,WAAauB,EAAI,cAC3F,GAAU,MAANstH,EAAJ,CACA,IAGIglK,EAAIj3Q,EAHJk3Q,EAAO,GACPC,GAAK,EACLp3Q,GAAK,EAET,IACI,IAAIkyG,EAAKA,EAAGx6H,KAAKkN,KAAQwyR,GAAMF,EAAKhlK,EAAGj3H,QAAQiI,QAC3Ci0R,EAAKn6R,KAAKk6R,EAAG1/R,QACTyH,GAAKk4R,EAAK77R,SAAW2D,GAFyBm4R,GAAK,GAI/D,CAAE,MAAOt2R,GACLkf,GAAK,EACLC,EAAKnf,CACT,CAAE,QACE,IACSs2R,GAAsB,MAAhBllK,EAAW,QAAWA,EAAW,QAChD,CAAE,QACE,GAAIlyG,EAAI,MAAMC,CAClB,CACJ,CACA,OAAOk3Q,CApBe,CAqB1B,CAuEqCE,CAAyBzyR,EAAK3F,IAEnE,SAAwCK,EAAG0nR,GACvC,GAAK1nR,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO02R,EAAqB12R,EAAG0nR,GAC1D,IAAIthQ,EAAI5uB,OAAOC,UAAUG,SAASQ,KAAK4H,GAAGT,MAAM,GAAI,GAEpD,MADU,WAAN6mB,GAAkBpmB,EAAE4mB,cAAaR,EAAIpmB,EAAE4mB,YAAY3iB,MAC7C,QAANmiB,GAAqB,QAANA,EAAoBjc,MAAMwqB,KAAKvO,GACxC,cAANA,GAAqB,2CAA2CqD,KAAKrD,GAAWswQ,EAAqB12R,EAAG0nR,QAA5G,CALc,CAMlB,CATyEsQ,CAA+B1yR,EAAK3F,IAtE7G,WACI,MAAM,IAAIigD,UAAU,6IACxB,CAoEmHq4O,IAqCV3jR,EAAeojR,EAAwB,GAAInjR,EAAiBmjR,EAAwB,GACzL,OAAqBj6Q,EAAOsB,cAAc,QA7EhBC,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA2F2EK,CAAe,CAClFuoD,KAAM,MACN,aAActoD,EAAKrb,MACpBg1D,GA/EHh6C,EAAmB,OADeA,EAgFnB,CACXpD,IAAKA,EACL4nD,SAAU8zN,EACVv+N,QAASA,EACTxlD,UAAWgmF,IAnFWv6E,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,GA4EWvB,EAAOsB,cAAcw3Q,EAAUr4Q,QAAS,CACtDoB,KAAMA,EACNhL,aAAcA,EACdC,eAAgBA,EAChBs+B,MAAO2kP,IAEf,IACA9wN,EAAKvN,YAAc,WACnBuN,EAAKjyD,gBAAkB+hR,EAAqB/hR,gBAC5CiyD,EAAKxyD,gBAAkBsiR,EAAqBtiR,gBAC5C,IAAIsJ,EAAWkpD,oBC3Of1uE,EAAOC,QAAU,IAA0B,8ICI3C,MAEMigS,EAAiB,CACrB,QACA,OACA,OACA,QACA,MACA,SACA,SAIIC,EAEH,CAAC,EAUJ,SAASC,EAAepmR,GACtB,KAAM,iBACJ,OAAOA,IAGT,MAAM0hC,EAAU,IAAWA,QACrB2kP,EAAe,CAAC,EAEhBC,EAAgB9gS,OAAOwK,KAAKm2R,GAGlCG,EAAcj+R,SAAQ+rE,IACpB,MAAMohF,EAAwB2wI,EAAuB/xN,GACrDiyN,EAAajyN,GAAS1yB,EAAQ0yB,GAC9B1yB,EAAQ0yB,GAASohF,CAAqB,IAGxC,IACE,OAAOx1I,GACT,CAAE,QAEAsmR,EAAcj+R,SAAQ+rE,IACpB1yB,EAAQ0yB,GAASiyN,EAAajyN,EAAO,GAEzC,CACF,CAsCA,MAAMuW,GAAS,OAAmB,UApClC,WACE,IAAIp4C,GAAU,EACd,MAAMo4C,EAAS,CACb47M,OAAQ,KACNh0P,GAAU,CAAI,EAEhBi0P,QAAS,KACPj0P,GAAU,CAAK,EAEjBk0P,UAAW,IAAMl0P,GAoBnB,OAjBI,IACF2zP,EAAe79R,SAAQ4J,IAErB04E,EAAO14E,GAAQ,IAAI5H,KACbkoC,GACF6zP,GAAe,KACb,IAAW1kP,QAAQzvC,GAAM,kBAAaA,SAAa5H,EAAK,GAE5D,CACD,IAGH67R,EAAe79R,SAAQ4J,IACrB04E,EAAO14E,GAAQ,KAAe,KAI3B04E,CACT,sPC1EO,MAAM+7M,EAAU,kBACrBllR,EAAS,SACTC,EAAQ,MACRm4C,GAEY,EADTl4C,oXAAAA,CAAAA,EAAAA,CAHHF,YACAC,WACAm4C,UAGA,MAAM,EAAE9mD,IAAM6tF,EAAAA,EAAAA,MACR73F,GAAW2nJ,EAAAA,EAAAA,MAEjB,OACE,SAAClvI,EAAAA,2UAAYA,CAAAA,CACXC,WAAWI,EAAAA,EAAAA,GAAK,UAAWJ,IACvBE,cAAAA,CACJyzD,MAAOriE,EAAE,kBACTk0D,QAAS,IAAMl+D,GAAS69R,EAAAA,EAAAA,IAAY/sO,aAEnCn4C,wgBCVP,SAASmlR,EAAsBC,EAASrqE,GACtC,MAAO3oN,EAAMizR,GAAW,WAAkC,iBAAZD,EAAuBA,EAAU,IAwB/E,OAHA,aAAgB,KApBiB,MAI/B,GAHuB,iBAAZA,GACTC,EAAQD,GAEa,iBAAZA,EAGX,IAAK,IAAIl5R,EAAI,EAAGA,EAAI,KAAgB3D,OAAQ2D,IAAK,CAC/C,MAAM4lG,EAAa,KAAgB5lG,GAEnC,IAAK6uN,EAAOjpH,GACV,SAEF,MAAMwzL,EAASF,EAAQtzL,GACvB,QAAextG,IAAXghS,EAEF,YADAD,EAAQC,EAGZ,GAGAC,EAA0B,GACzB,CAACp+P,KAAKL,UAAUs+P,GAAUrqE,IACtB3oN,CACT,CAwGA,QAvGyB,cAAiB,CAACE,EAAO8V,KAChD,MACIqyC,UAAWw5B,EAAkB,QAC7BuxM,EAAO,MACP1kE,EAAK,UACL/gN,EAAS,MACTq/B,EAAK,SACLp/B,EAAQ,OACRylR,EAAS,EAAC,KACVtnQ,GACE7rB,EACJozR,EAtDgC,SAAUz2R,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA+Cay0F,CAAOxzF,EAAO,CAAC,YAAa,UAAW,QAAS,YAAa,QAAS,WAAY,SAAU,UACjG,aACJmnD,EAAY,UACZ9oB,GACE,aAAiB,OACdg1P,EAASC,GAAc,WAAe,CAC3C30L,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,KAAK,KAGAu0L,EAAYC,GAAiB,WAAe,CACjD70L,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,IAAI,EACJC,KAAK,IAGDy0L,EAAcZ,EAAsBrkE,EAAO+kE,GAC3CG,EAAgBb,EAAsBK,EAASK,GAC/CI,EAAY,SAAaR,GACzBS,GAAqB,UAE3B,aAAgB,KACd,MAAMhqR,EAAQgqR,EAAmBj/R,WAAU8zN,IACzC+qE,EAAc/qE,GACd,MAAMorE,EAAgBF,EAAU/4R,SAAW,IACtCwJ,MAAMie,QAAQwxQ,IAA2C,iBAAlBA,GAA8BzvR,MAAMie,QAAQwxQ,KAA+C,iBAArBA,EAAc,IAA+C,iBAArBA,EAAc,MACtKP,EAAW7qE,EACb,IAEF,MAAO,IAAMmrE,EAAmB/9R,YAAY+T,EAAM,GACjD,IAEH,MAkBMu+C,EAAYhB,EAAa,MAAOw6B,IAC/BC,EAAYn6B,EAAQo6B,IAAa,QAAY15B,GAC9C2rO,EApBY,MAChB,MAAMv0K,EAAU,MAACvtH,OAAWA,GAe5B,OAdyBoS,MAAMie,QAAQ8wQ,GAAUA,EAAS,CAACA,OAAQnhS,IAClDsC,SAAQ,CAACosB,EAAGnX,KAC3B,GAAiB,iBAANmX,EACT,IAAK,IAAI9mB,EAAI,EAAGA,EAAI,KAAgB3D,OAAQ2D,IAAK,CAC/C,MAAM4lG,EAAa,KAAgB5lG,GACnC,GAAIy5R,EAAQ7zL,SAAiCxtG,IAAlB0uB,EAAE8+E,GAA2B,CACtD+f,EAAQh2G,GAASmX,EAAE8+E,GACnB,KACF,CACF,MAEA+f,EAAQh2G,GAASmX,CACnB,IAEK6+F,CAAO,EAIAw0K,GACVC,EAAU,IAAW7rO,EAAW,CACpC,CAAC,GAAGA,cAA+B,IAATt8B,EAC1B,CAAC,GAAGs8B,KAAaurO,KAAkBA,EACnC,CAAC,GAAGvrO,KAAasrO,KAAgBA,EACjC,CAAC,GAAGtrO,SAAgC,QAAd9pB,GACrB5wB,EAAWg6C,EAAQo6B,GAEhBoyM,EAAW,CAAC,EACZC,EAAiC,MAAdJ,EAAQ,IAAcA,EAAQ,GAAK,EAAIA,EAAQ,IAAM,OAAI9hS,EAC9EkiS,IACFD,EAASE,WAAaD,EACtBD,EAASG,YAAcF,GAIzB,MAAOG,EAASC,GAAWR,EAC3BG,EAAS5wL,OAASixL,EAClB,MAAMC,EAAa,WAAc,KAAM,CACrCpB,OAAQ,CAACkB,EAASC,GAClBzoQ,UACE,CAACwoQ,EAASC,EAASzoQ,IACvB,OAAO+1D,EAAwB,gBAAoB4yM,EAAA,EAAW31Q,SAAU,CACtE1sB,MAAOoiS,GACO,gBAAoB,MAAO9iS,OAAOqZ,OAAO,CAAC,EAAGsoR,EAAQ,CACnE3lR,UAAWumR,EACXlnP,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGmpR,GAAWnnP,GAClDh3B,IAAKA,IACHpI,IAAW,yICtIjB,MAAM+mR,EAA8B,CAClCC,EACA9vR,KAEA,IAAI6O,EAAU,KAId,MAAMk9C,GAASgkO,EAAAA,EAAAA,IAAiBD,EAAI,CAClCE,eAAgB,OAGdhwR,EAAQiwR,eAAoC,OAAnBlkO,EAAO6vB,UAClC/sE,GAAU1U,EAAAA,EAAAA,GAAE,yCAId,MAAM+1R,EAAenkO,EAAOxhD,OAAO,SAMnC,OAJK4lR,EAAAA,EAAAA,IAAmBD,KACtBrhR,GAAU1U,EAAAA,EAAAA,GAAE,0CAA2C,CAAE+1R,kBAGpDrhR,CAAO,EA+DHuhR,EAAgB,CAC3B7iS,EACAyS,EAAU,CAAEiwR,eAAe,EAAOj8P,UAAU,MACxCq8P,IAAAA,SAAa9nQ,OA5DjB,EAACvoB,EAAU,CAAEiwR,eAAe,EAAOj8P,UAAU,KAC7C,CACEzmC,EACA+iS,KAKA,IAAIzhR,EAAU,KAEd,IAEE,GAAI7O,EAAQg0B,SAAU,CACpB,MAAMu8P,EAAsBhjS,EACzBe,MAAM,KACN2D,KAAK69R,GAAOA,EAAG1mQ,SAElB,IAAK,IAAIp0B,EAAI,EAAGA,EAAIu7R,EAAoBl/R,OAAQ2D,IAO9C,GANA6Z,EAAUghR,EACRU,EAAoBv7R,GACpBgL,GAIE6O,EACF,OAAOyhR,EAAOzhR,QAAQ,CAAE0Z,OAAQ1Z,IAKpC,OAAO0hR,EACJt+R,KAAK69R,IACJC,EAAAA,EAAAA,IAAiBD,EAAI,CAAEE,eAAgB,OAAQzlR,OAAO,WAEvDhc,KAAK,KACV,CAIA,OAFAsgB,EAAUghR,EAA4BtiS,EAAOyS,GAEtC6O,EACHyhR,EAAOzhR,QAAQ,CAAE0Z,OAAQ1Z,KACzBkhR,EAAAA,EAAAA,IAAiBxiS,EAAO,CAAEyiS,eAAgB,OAAQzlR,OAAO,QAC/D,CAAE,MAAO3c,GACP,OAAOA,aAAa4iS,EAAAA,GAChBF,EAAOzhR,QAAQ,CACb0Z,OAAQvoB,EAAQg0B,UACZ75B,EAAAA,EAAAA,GACE,uIAEFA,EAAAA,EAAAA,GAAE,+CAAgD,CAChDs2R,aAAc7iS,EAAEihB,YAGxByhR,EAAOx6R,MAAM,cACnB,GAMsB46R,CAAY1wR,IAAU4hB,SAASr0B,GAAOuI,MAEnD66R,EAAWpjS,IACrB8iS,IAAAA,SACEz1P,MAAM,CACL5G,UAAU,EACV+L,cAAc,EACdhI,KAAM,CAAE1a,OAAO,KAEhB+L,OACA4D,IAAI,GACJ1T,IAAI,KACJ+D,MAAM,MACNuE,SAASr0B,GAAOuI,MAEf86R,EAAwB,sBACjBC,EAAqBtjS,IAC/B8iS,IAAAA,SACE1nQ,MAAMioQ,GACN/hR,SACC1U,EAAAA,EAAAA,GAAE,6DAA8D,CAC9D5M,WAGHq0B,SAASr0B,GAAOuI,MAiBfg7R,EACJ,+aACWC,EAASxjS,IACnB8iS,IAAAA,SACE/2Q,IAAI,MACJqP,MAAMmoQ,GACNjiR,SAAQ1U,EAAAA,EAAAA,GAAE,iCAAkC,CAAE5M,WAC9Cq0B,SAASr0B,GAAOuI,MAERk7R,EAAqBzjS,IAC/B8iS,IAAAA,SACE/2Q,IAAI,MACJoiB,MACA7sB,SAAQ1U,EAAAA,EAAAA,GAAE,iCAAkC,CAAE5M,WAC9Cq0B,SAASr0B,GAAOuI,wBCzJrBzI,EAAOC,QAAU,IAA0B,yECEvC+e,EAAI,EAAQ,QAEd/e,EAAQ,EAAa+e,EAAE4kR,WACD5kR,EAAE6kR,uNCgBnB,MAAMC,EAAW,CACtB1oO,KAAmB,gBAAoB,IAAkB,MACzD3gB,QAAsB,gBAAoB,IAAmB,MAC7DhyC,MAAoB,gBAAoB,IAAmB,MAC3Dw7B,QAAsB,gBAAoB,IAAyB,MACnEsiF,QAAsB,gBAAoB,IAAiB,OAEhDw9K,EAAc/8R,IACzB,IAAI,UACFkvD,EAAS,KACT9yD,EAAI,KACJkkB,EAAI,SACJ7L,GACEzU,EACJ,OAAoB,gBAAoB,MAAO,CAC7CwU,UAAW,IAAW,GAAG06C,mBAA4B,GAAGA,KAAa9yD,MACpEkkB,GAAQw8Q,EAAS1gS,GAAoB,gBAAoB,OAAQ,KAAMqY,GAAU,EA8BtF,EA3BkB1N,IAChB,MACImoD,UAAW6zN,EAAe,UAC1BvuQ,EAAS,KACTpY,EAAI,KACJkkB,EAAI,QACJu6B,GACE9zC,EACJkzD,EA9CgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAuCgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,OAAQ,OAAQ,aACjE,aACJmnD,GACE,aAAiB,MACfgB,EAAY6zN,GAAmB70N,EAAa,WAC5ClH,GAAU,OAAakI,IACtBy5B,EAAYn6B,EAAQo6B,IAAa,OAAS15B,EAAWlI,GAC5D,OAAO2hC,EAAwB,gBAAoB,KAAQnwF,OAAOqZ,OAAO,CAAC,EAAGooD,EAAW,CACtF/K,UAAWA,EACX16C,UAAW,IAAWA,EAAWg6C,EAAQ,GAAGU,sBAA+B05B,EAAW5hC,GACtFic,SAAU,OACV/E,SAAU,KACVrjB,QAAsB,gBAAoBkiP,EAAa,CACrD7tO,UAAWA,EACX9yD,KAAMA,EACNkkB,KAAMA,GACLu6B,MACD,kECzDN,QAPA,SAAkCuvB,EAAWz5D,EAAOqsR,GAEhD,IAAIC,EADN,MAA+B,mBAApBD,EAEFA,GAAgB,QAAWrsR,EAAiD,QAAzCssR,EAAmBtsR,EAAMy5D,UAA6C,IAArB6yN,EAA8BA,EAAmB,CAAC,IAExID,QAAyDA,EAAkB,CAAC,CACrF,iCCNA,IAAIE,EAAkB,EAAQ,QAC1B3zR,EAAS,EAAQ,QACjB+U,EAAiB,YAEjB6+Q,EAAcD,EAAgB,eAC9BE,EAAiBjyR,MAAM1S,eAISM,IAAhCqkS,EAAeD,IACjB7+Q,EAAe8+Q,EAAgBD,EAAa,CAC1Cp+Q,cAAc,EACd7lB,MAAOqQ,EAAO,QAKlBvQ,EAAOC,QAAU,SAAUsC,GACzB6hS,EAAeD,GAAa5hS,IAAO,CACrC,iCCnBA/C,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAImkS,EAAU,EAAQ,QAClBxxM,EAAQwxM,EAAQC,aAAa,EAAQ,SAiBzCrkS,EAAA,QAhB8B,SAAUu2H,GACpC,IAAI+tK,EAAa,SAAUvtQ,GAEvB,SAAS0jG,IACL,OAAkB,OAAX1jG,GAAmBA,EAAOhsB,MAAMnH,KAAMjC,YAAciC,IAC/D,CAIA,OAPAwgS,EAAQliK,UAAUzH,EAAS1jG,GAI3B0jG,EAAQj7H,UAAUqlB,OAAS,WACvB,OAAO0xG,EAAK3yH,KAAKkK,MAAOlK,KAAKiH,QACjC,EACO4vH,CACX,CATgB,CASd7nC,EAAMnC,WAIR,OAAO6zM,CACX,qpyFCRIC,EAAc,IAAIn+Q,QAClBo+Q,EAAe,CAAC,EACb,SAASC,EAAW1qR,EAAUuS,GAEnC,IADA,IAAI5jB,EAAU67R,EACL78R,EAAI,EAAGA,EAAI4kB,EAAKvoB,OAAQ2D,GAAK,EAAG,CACvC,IAAIg9R,EAAMp4Q,EAAK5kB,GACVgB,EAAQ2Q,IAAIqrR,IACfh8R,EAAQnG,IAAImiS,EAAK,IAAIt+Q,SAEvB1d,EAAUA,EAAQuM,IAAIyvR,EACxB,CAIA,OAHKh8R,EAAQ2Q,IAAImrR,IACf97R,EAAQnG,IAAIiiS,EAAczqR,KAErBrR,EAAQuM,IAAIuvR,EACrB,CAGA,IAAIG,EAAoB,IAAIv+Q,QAKrB,SAASw+Q,EAAaltR,GAC3B,IAAIqlC,EAAM4nP,EAAkB1vR,IAAIyC,IAAU,GAqB1C,OApBKqlC,IACHx9C,OAAOwK,KAAK2N,GAAOtV,SAAQ,SAAUE,GACnC,IAAIrC,EAAQyX,EAAMpV,GAClBy6C,GAAOz6C,EACHrC,aAAiB,KACnB88C,GAAO98C,EAAM6Q,GACJ7Q,GAA4B,YAAnB,OAAQA,GAC1B88C,GAAO6nP,EAAa3kS,GAEpB88C,GAAO98C,CAEX,IAIA88C,GAAM,OAAKA,GAGX4nP,EAAkBpiS,IAAImV,EAAOqlC,IAExBA,CACT,CAKO,SAAS8nP,EAAUntR,EAAOotR,GAC/B,OAAO,OAAK,GAAG35R,OAAO25R,EAAM,KAAK35R,OAAOy5R,EAAaltR,IACvD,CACA,IAAIqtR,EAAoB,UAAU55R,OAAOyc,KAAKC,MAAO,KAAK1c,OAAOtK,KAAKC,UAAU+6B,QAAQ,MAAO,IAG3FmpQ,EAAe,WACnB,SAASC,EAAgBntO,EAAUotO,EAAeC,GAChD,IAAI,SAAa,CACf,IAAIC,EAAuBC,GAC3B,QAAUvtO,EAAUitO,GACpB,IAAIO,EAAOvuP,SAASjwB,cAAc,OAClCw+Q,EAAK1qP,MAAME,SAAW,QACtBwqP,EAAK1qP,MAAMyjF,KAAO,IAClBinK,EAAK1qP,MAAMG,IAAM,IACjBmqP,SAAsDA,EAAcI,GACpEvuP,SAASgD,KAAKE,YAAYqrP,GAK1B,IAAIC,EAAUJ,EAAeA,EAAaG,GAAqE,QAA5DF,EAAwBpnK,iBAAiBsnK,GAAM1jP,eAA+C,IAA1BwjP,OAAmC,EAASA,EAAsBjrR,SAAS6qR,GAGlM,OAFwC,QAAvCK,EAAkBC,EAAKtuK,kBAA4C,IAApBquK,GAA8BA,EAAgBhpP,YAAYipP,IAC1G,QAAUP,GACHQ,CACT,CACA,OAAO,CACT,CAUA,IAAIC,OAAW1lS,EACR,SAAS2lS,IAMd,YALiB3lS,IAAb0lS,IACFA,EAAWP,EAAgB,WAAW95R,OAAO45R,EAAmB,kBAAmB55R,OAAO65R,EAAc,mBAAoB,SAAU7/Q,GACpIA,EAAI5J,UAAYwpR,CAClB,KAEKS,CACT,CACA,IAAIE,OAAW5lS,EACR,SAAS6lS,IAQd,YAPiB7lS,IAAb4lS,IACFA,EAAWT,EAAgB,IAAI95R,OAAO45R,EAAmB,uCAAuC,SAAU5/Q,GACxGA,EAAI5J,UAAYwpR,CAClB,IAAG,SAAU5/Q,GACX,MAAwC,SAAjC64G,iBAAiB74G,GAAKm8B,MAC/B,KAEKokP,CACT,CACO,IAAIE,GAAe,SACnB,SAASpzQ,EAAK05B,GACnB,MAAmB,iBAARA,EACF,GAAG/gD,OAAO+gD,EAAK,MAEjBA,CACT,CACO,SAAS25O,EAAWjrP,EAAOmhB,EAAUa,GAC1C,IAAIq0F,EACA60I,EAAiBnkS,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE1F,GADYA,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAEzE,OAAOi5C,EAET,IAAI87F,GAAQ,QAAc,OAAc,CAAC,EAAGovJ,GAAiB,CAAC,GAAI70I,EAAiB,CAAC,GAAG,OAAgBA,EAAgB,KAAYl1F,IAAW,OAAgBk1F,EAAgB,KAAWr0F,GAAUq0F,IAC/L80I,EAAUxmS,OAAOwK,KAAK2sI,GAAO/xI,KAAI,SAAU2+G,GAC7C,IAAInmE,EAAMu5F,EAAMpzB,GAChB,OAAOnmE,EAAM,GAAGhyC,OAAOm4G,EAAM,MAAOn4G,OAAOgyC,EAAK,KAAQ,IAC1D,IAAGzmC,QAAO,SAAU+X,GAClB,OAAOA,CACT,IAAGxtB,KAAK,KACR,MAAO,UAAUkK,OAAO46R,EAAS,KAAK56R,OAAOyvC,EAAO,WACtD,iCC5IA,IAAIyC,EAAa,EAAQ,QACrB2oP,EAAa,EAAQ,QACrBC,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,MAE5BC,EAAU5mS,OAEdQ,EAAOC,QAAUkmS,EAAoB,SAAUhnO,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIknO,EAAU/oP,EAAW,UACzB,OAAO2oP,EAAWI,IAAYH,EAAcG,EAAQ5mS,UAAW2mS,EAAQjnO,GACzE,8ECbO,MAAMmnO,EACX,uDACW7wR,EAAqB,8CACrB8wR,EACX,iDACWC,EACX,sICFF,MAAMC,EAAY,kEAelB,SAASC,EAAYluM,EAAKmuM,GAAe,GACvC,MAAM,KAAE9zP,EAAI,KAAEn8B,EAAI,KAAEkwR,EAAI,KAAEt8P,EAAI,UAAEu8P,EAAS,SAAE3/D,EAAQ,UAAE4/D,GAActuM,EACnE,MACE,GAAG0uI,OAAc4/D,IAAYH,GAAgBC,EAAO,IAAIA,IAAS,MAC7D/zP,IAAOvI,EAAO,IAAIA,IAAS,MAAM5zB,EAAO,GAAGA,KAAUA,IAAOmwR,GAEpE,CAwCA,SAASE,EAAkBtwO,GACzB,MAAO,CACLywK,SAAUzwK,EAAWywK,SACrB4/D,UAAWrwO,EAAWqwO,WAAa,GACnCF,KAAMnwO,EAAWmwO,MAAQ,GACzB/zP,KAAM4jB,EAAW5jB,KACjBvI,KAAMmsB,EAAWnsB,MAAQ,GACzB5zB,KAAM+/C,EAAW//C,MAAQ,GACzBmwR,UAAWpwO,EAAWowO,UAE1B,CA4CA,SAASG,EAAQrqQ,GACf,MAAM85B,EAA6B,iBAAT95B,EAvF5B,SAAuBqgB,GACrB,MAAMxvC,EAAQi5R,EAAUphS,KAAK23C,GAE7B,IAAKxvC,EAMH,YAJA,SAAe,KAEbkuC,QAAQjzC,MAAM,uBAAuBu0C,IAAM,IAK/C,MAAOkqL,EAAU4/D,EAAWF,EAAO,GAAI/zP,EAAO,GAAIvI,EAAO,GAAI28P,EAAW,IAAMz5R,EAAMjG,MAAM,GAC1F,IAAImP,EAAO,GACPmwR,EAAYI,EAEhB,MAAMhmS,EAAQ4lS,EAAU5lS,MAAM,KAM9B,GALIA,EAAM+C,OAAS,IACjB0S,EAAOzV,EAAMsG,MAAM,GAAI,GAAGrG,KAAK,KAC/B2lS,EAAY5lS,EAAMuV,OAGhBqwR,EAAW,CACb,MAAMK,EAAeL,EAAUr5R,MAAM,QACjC05R,IACFL,EAAYK,EAAa,GAE7B,CAEA,OAAOH,EAAkB,CAAEl0P,OAAM+zP,OAAMlwR,OAAMmwR,YAAWv8P,OAAM48L,SAAUA,EAAW4/D,aACrF,CAyDgDK,CAAcxqQ,GAAQoqQ,EAAkBpqQ,GACtF,GAAK85B,GA5CP,SAAqB+hC,GACnB,IAAK,IACH,OAAO,EAGT,MAAM,KAAEluD,EAAI,UAAEu8P,EAAS,SAAE3/D,GAAa1uI,EAWtC,QAT2B,CAAC,WAAY,YAAa,OAAQ,aACNrZ,MAAK/N,IACrDonB,EAAIpnB,KACP,KAAO3oE,MAAM,uBAAuB2oE,cAC7B,OASNy1N,EAAUr5R,MAAM,SA3FvB,SAAyB05N,GACvB,MAAoB,SAAbA,GAAoC,UAAbA,CAChC,CA8FOkgE,CAAgBlgE,GAKjB58L,GAAQ7P,MAAMgP,SAASa,EAAM,OAC/B,KAAO7hC,MAAM,oCAAoC6hC,KAC1C,IANP,KAAO7hC,MAAM,wCAAwCy+N,KAC9C,IANP,KAAOz+N,MAAM,yCAAyCo+R,KAC/C,IAcX,CAQsBQ,CAAY5wO,GAGhC,OAAOA,CACT,yGCvHA,SAAS6wO,EAAmBC,EAAat2K,GAEvC,MAAMitC,EAASspI,EAAiBD,EAAat2K,GAEvCnV,EAAY,CAChB14G,KAAM6tH,GAAMA,EAAGhlH,KACf/L,MAAOunS,EAAex2K,IAWxB,OARIitC,EAAOl6J,SACT83G,EAAU4rL,WAAa,CAAExpI,gBAGJn+J,IAAnB+7G,EAAU14G,MAA0C,KAApB04G,EAAU57G,QAC5C47G,EAAU57G,MAAQ,8BAGb47G,CACT,CAmDA,SAAS6rL,EAAeJ,EAAat2K,GACnC,MAAO,CACLnV,UAAW,CACT17F,OAAQ,CAACknR,EAAmBC,EAAat2K,KAG/C,CAGA,SAASu2K,EACPD,EACAt2K,GAKA,MAAMy2K,EAAaz2K,EAAGy2K,YAAcz2K,EAAGt3F,OAAS,GAE1CiuQ,EAoBR,SAAsC32K,GACpC,OAAIA,GAAM42K,EAAoBp2Q,KAAKw/F,EAAGzvG,SAC7B,EAGF,CACT,CA1BoBsmR,CAA6B72K,GACzC82K,EAmCR,SAA8B92K,GAC5B,MAA8B,iBAAnBA,EAAG82K,YACL92K,EAAG82K,YAGL,CACT,CAzCsBC,CAAqB/2K,GAEzC,IACE,OAAOs2K,EAAYG,EAAYE,EAAWG,EAC5C,CAAE,MAAOxnS,GAET,CAEA,MAAO,EACT,CAGA,MAAMsnS,EAAsB,8BAoC5B,SAASJ,EAAex2K,GACtB,MAAMzvG,EAAUyvG,GAAMA,EAAGzvG,QACzB,OAAKA,EAGDA,EAAQ/Y,OAA0C,iBAA1B+Y,EAAQ/Y,MAAM+Y,QACjCA,EAAQ/Y,MAAM+Y,QAEhBA,EALE,kBAMX,CAMA,SAASymR,EACPV,EACAzrL,EACAvlB,EACA2xM,GAEA,MACMr+O,EAAQs+O,EAAsBZ,EAAazrL,EADrBvlB,GAAQA,EAAK6xM,yBAAuBroS,EACgBmoS,GAMhF,OALA,QAAsBr+O,GACtBA,EAAMukB,MAAQ,QACVmoB,GAAQA,EAAK8xM,WACfx+O,EAAMw+O,SAAW9xM,EAAK8xM,WAEjB,QAAoBx+O,EAC7B,CAMA,SAASy+O,EACPf,EACA/lR,EACA4sD,EAAQ,OACRmoB,EACA2xM,GAEA,MACMr+O,EAAQ0+O,EAAgBhB,EAAa/lR,EADf+0E,GAAQA,EAAK6xM,yBAAuBroS,EACQmoS,GAKxE,OAJAr+O,EAAMukB,MAAQA,EACVmoB,GAAQA,EAAK8xM,WACfx+O,EAAMw+O,SAAW9xM,EAAK8xM,WAEjB,QAAoBx+O,EAC7B,CAKA,SAASs+O,EACPZ,EACAzrL,EACAssL,EACAF,EACAM,GAEA,IAAI3+O,EAEJ,IAAI,QAAaiyD,IAAe,EAAarzG,MAG3C,OAAOk/R,EAAeJ,EADHzrL,EAC2BrzG,OAUhD,IAAI,QAAWqzG,KAAc,QAAeA,GAAa,CACvD,MAAM2sL,EAAe3sL,EAErB,GAAI,UAAW,EACbjyD,EAAQ89O,EAAeJ,EAAazrL,OAC/B,CACL,MAAM7vG,EAAOw8R,EAAax8R,QAAS,QAAWw8R,GAAgB,WAAa,gBACrEjnR,EAAUinR,EAAajnR,QAAU,GAAGvV,MAASw8R,EAAajnR,UAAYvV,EAC5E49C,EAAQ0+O,EAAgBhB,EAAa/lR,EAAS4mR,EAAoBF,IAClE,QAAsBr+O,EAAOroC,EAC/B,CAMA,MALI,SAAUinR,IAEZ5+O,EAAM7lB,KAAO,IAAK6lB,EAAM7lB,KAAM,oBAAqB,GAAGykQ,EAAa/nS,SAG9DmpD,CACT,CACA,OAAI,QAAQiyD,GAEH6rL,EAAeJ,EAAazrL,IAEjC,QAAcA,KAAc,QAAQA,IAKtCjyD,EA3NJ,SACE09O,EACAzrL,EACAssL,EACAI,GAEA,MAAMpmR,GAAS,UACTsmR,EAAiBtmR,GAAUA,EAAOe,aAAaulR,eAG/CC,EAwSR,SAAoC3lS,GAClC,IAAK,MAAM6K,KAAQ7K,EACjB,GAAIxD,OAAOC,UAAUC,eAAeU,KAAK4C,EAAK6K,GAAO,CACnD,MAAM3N,EAAQ8C,EAAI6K,GAClB,GAAI3N,aAAiByB,MACnB,OAAOzB,CAEX,CAIJ,CAnTwB0oS,CAA2B9sL,GAE3C9iC,EAAQ,CACZ6vN,gBAAgB,QAAgB/sL,EAAW4sL,IAG7C,GAAIC,EACF,MAAO,CACL7sL,UAAW,CACT17F,OAAQ,CAACknR,EAAmBC,EAAaoB,KAE3C3vN,SAIJ,MAAMnvB,EAAQ,CACZiyD,UAAW,CACT17F,OAAQ,CACN,CACEhd,MAAM,QAAQ04G,GAAaA,EAAUltF,YAAY3iB,KAAOu8R,EAAuB,qBAAuB,QACtGtoS,MAAO4oS,EAAgChtL,EAAW,CAAE0sL,4BAI1DxvN,SAGF,GAAIovN,EAAoB,CACtB,MAAMlqI,EAASspI,EAAiBD,EAAaa,GACzClqI,EAAOl6J,SAGT6lD,EAAMiyD,UAAU17F,OAAO,GAAGsnR,WAAa,CAAExpI,UAE7C,CAEA,OAAOr0G,CACT,CA4KYk/O,CAAqBxB,EADLzrL,EACmCssL,EAAoBI,IAC/E,QAAsB3+O,EAAO,CAC3Bm/O,WAAW,IAENn/O,IAYTA,EAAQ0+O,EAAgBhB,EAAazrL,EAAYssL,EAAoBF,IACrE,QAAsBr+O,EAAO,GAAGiyD,SAAa/7G,IAC7C,QAAsB8pD,EAAO,CAC3Bm/O,WAAW,IAGNn/O,EACT,CAEA,SAAS0+O,EACPhB,EACA/lR,EACA4mR,EACAF,GAEA,MAAMr+O,EAAQ,CAAC,EAEf,GAAIq+O,GAAoBE,EAAoB,CAC1C,MAAMlqI,EAASspI,EAAiBD,EAAaa,GACzClqI,EAAOl6J,SACT6lD,EAAMiyD,UAAY,CAChB17F,OAAQ,CAAC,CAAElgB,MAAOshB,EAASkmR,WAAY,CAAExpI,aAG/C,CAEA,IAAI,QAAsB18I,GAAU,CAClC,MAAM,2BAAEynR,EAA0B,2BAAEC,GAA+B1nR,EAMnE,OAJAqoC,EAAMs/O,SAAW,CACf3nR,QAASynR,EACTzwJ,OAAQ0wJ,GAEHr/O,CACT,CAGA,OADAA,EAAMroC,QAAUA,EACTqoC,CACT,CAEA,SAASi/O,EACPhtL,GACA,qBAAE0sL,IAEF,MAAMx+R,GAAO,QAA+B8xG,GACtCstL,EAAcZ,EAAuB,oBAAsB,YAIjE,OAAI,QAAa1sL,GACR,oCAAoCstL,oBAA8BttL,EAAUt6F,aAGjF,QAAQs6F,GAEH,WAMX,SAA4B94G,GAC1B,IACE,MAAMvD,EAAYD,OAAO0D,eAAeF,GACxC,OAAOvD,EAAYA,EAAUmvB,YAAY3iB,UAAOlM,CAClD,CAAE,MAAOQ,GAET,CACF,CAdsB8oS,CAAmBvtL,cACEA,EAAU14G,qBAAqBgmS,IAGjE,sBAAsBA,gBAA0Bp/R,GACzD,oBChUAhK,EAAOC,QAAU,IAA0B,wDCA3C,IAAIqpS,EAAe,EAAQ,QA2B3BtpS,EAAOC,QAJP,SAAkBC,GAChB,OAAgB,MAATA,EAAgB,GAAKopS,EAAappS,EAC3C,+KCdIyS,EAAU,CAAC,EAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,oECxB1D,QAAe,IAA0B,yDCAzCtb,EAAOC,QAAU,IAA0B,wGCUvC2jS,8DAJA2F,GAAY,OAAc,CAAC,EAAG,iBAC9B5lR,EAAU4lR,EAAU5lR,QACtB6lR,EAAcD,EAAUzkR,OACxB2kR,EAAyBF,EAAUE,uBAErC,IACoBlyR,QAAQoM,GAAW,IAAI1iB,MAAM,KAAK,KACjC,KACjB2iS,EAAa2F,EAAU3F,WAE3B,CAAE,MAAOrjS,GAET,CACA,SAASmpS,EAAcz4P,GACrB,IAAI04P,EAAqDJ,EAAUI,mDAC/DA,GAAsH,YAAhE,OAAQA,KAChEA,EAAmDC,sBAAwB34P,EAE/E,CACA,IAAI44P,EAAO,oBAqBJ,SAAS/kR,EAAOhB,EAAM+3C,GACvB+nO,EAlBN,SAAsB9/Q,EAAM+3C,GAC1B6tO,GAAc,GACd,IAAIhvR,EAAOmhD,EAAUguO,IAASjG,EAAW/nO,GACzC6tO,GAAc,GACdhvR,EAAKoK,OAAOhB,GACZ+3C,EAAUguO,GAAQnvR,CACpB,CAaIovR,CAAahmR,EAAM+3C,GAZvB,SAAsB/3C,EAAM+3C,GAC1B2tO,SAAkDA,EAAY1lR,EAAM+3C,EACtE,CAaEkuO,CAAajmR,EAAM+3C,EACrB,CAGA,SAASmuO,EAAcC,GACrB,OAAOC,EAAel/R,MAAMnH,KAAMjC,UACpC,CACA,SAASsoS,IAgBP,OAfAA,GAAiB,QAAgC,SAAsB1vP,MAAK,SAAS2vP,EAAQtuO,GAC3F,OAAO,SAAsBjiC,MAAK,SAAkBwwQ,GAClD,cAAkBA,EAAS9lR,KAAO8lR,EAASzmS,MACzC,KAAK,EACH,OAAOymS,EAASC,OAAO,SAAUrlS,QAAQC,UAAUuD,MAAK,WACtD,IAAI8hS,EACoC,QAAvCA,EAAkBzuO,EAAUguO,UAAuC,IAApBS,GAA8BA,EAAgBhrB,iBACvFzjN,EAAUguO,EACnB,KACF,KAAK,EACL,IAAK,MACH,OAAOO,EAASG,OAEtB,GAAGJ,EACL,MACsBn/R,MAAMnH,KAAMjC,UACpC,CACA,SAAS4oS,EAAc3uO,GACrB4tO,EAAuB5tO,EACzB,CAQO,SAASyjN,EAAQmrB,GACtB,OAAOC,EAAS1/R,MAAMnH,KAAMjC,UAC9B,CACA,SAAS8oS,IAkBP,OAjBAA,GAAW,QAAgC,SAAsBlwP,MAAK,SAASmwP,EAAS9uO,GACtF,OAAO,SAAsBjiC,MAAK,SAAmBgxQ,GACnD,cAAkBA,EAAUtmR,KAAOsmR,EAAUjnS,MAC3C,KAAK,EACH,QAAqB5D,IAAf6jS,EAA2B,CAC/BgH,EAAUjnS,KAAO,EACjB,KACF,CACA,OAAOinS,EAAUP,OAAO,SAAUL,EAAcnuO,IAClD,KAAK,EACH2uO,EAAc3uO,GAChB,KAAK,EACL,IAAK,MACH,OAAO+uO,EAAUL,OAEvB,GAAGI,EACL,MACgB3/R,MAAMnH,KAAMjC,UAC9B,kDC5GA,MAAMipS,EAAmB3lO,IAAY,CACnCyuN,kBAAmBzuN,EACnB4lO,kBAAmB,SAGfC,EAAwB7lO,IAAY,CACxCyuN,kBAAmBzuN,EACnB4lO,kBAAmB,SAERE,EAAa,SAAUC,EAAWC,EAAaC,EAAcjmO,GAExE,MAAMkmO,EADUxpS,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAC3C,IAAM,GAC1C,MAAO,CACL,CAAC,WACGwpS,IAAkBH,mBAClBG,IAAkBH,kBAClBzrS,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGgyR,EAAiB3lO,IAAY,CAC/DmmO,mBAAoB,WAEtB,CAAC,GAAGD,IAAkBH,WAAoBzrS,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGkyR,EAAsB7lO,IAAY,CAC1GmmO,mBAAoB,WAEtB,CAAC,WACGD,IAAkBH,UAAkBA,0BACpCG,IAAkBH,WAAmBA,yBACrC,CACF7rP,cAAe8rP,EACfG,mBAAoB,WAEtB,CAAC,GAAGD,IAAkBH,UAAkBA,kBAA2B,CACjE7rP,cAAe+rP,EACfE,mBAAoB,UACpB1pP,cAAe,QAGrB,iCC3BA,IAAgC3+C,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFgB,EAAQ,SAEHA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,+DCZjB,QAAe,IAA0B,yDCUzC,IAiFM8lR,EA9EFC,EAAiB,4BAGjBC,EAAW,IAGXC,EAAU,oBACVC,EAAS,6BACTC,EAAY,kBAGZC,EAAe,mDACfC,EAAgB,QAChBC,EAAe,MACfC,EAAa,mGASbC,EAAe,WAGfC,EAAe,8BAGfr6O,EAA8B,iBAAV,EAAAnjC,GAAsB,EAAAA,GAAU,EAAAA,EAAOjvB,SAAWA,QAAU,EAAAivB,EAGhF4zC,EAA0B,iBAARl0C,MAAoBA,MAAQA,KAAK3uB,SAAWA,QAAU2uB,KAGxEzT,EAAOk3C,GAAcyQ,GAAYC,SAAS,cAATA,GAkCjC4pO,EAAa/5R,MAAM1S,UACnB0sS,EAAY7pO,SAAS7iE,UACrBF,EAAcC,OAAOC,UAGrB2sS,EAAa1xR,EAAK,sBAGlB2xR,GACEf,EAAM,SAASjmS,KAAK+mS,GAAcA,EAAWpiS,MAAQoiS,EAAWpiS,KAAKuzR,UAAY,KACvE,iBAAmB+N,EAAO,GAItCgB,EAAeH,EAAUvsS,SAGzBF,EAAiBH,EAAYG,eAO7B6sS,EAAiBhtS,EAAYK,SAG7B4sS,EAAanxQ,OAAO,IACtBixQ,EAAalsS,KAAKV,GAAgBo8B,QA7EjB,sBA6EuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5Ex8B,EAASob,EAAKpb,OACds3C,EAASs1P,EAAWt1P,OAGpB50C,EAAMyqS,EAAU/xR,EAAM,OACtBwsC,EAAeulP,EAAUjtS,OAAQ,UAGjC85G,EAAch6G,EAASA,EAAOG,eAAYM,EAC1C2sS,EAAiBpzL,EAAcA,EAAY15G,cAAWG,EAS1D,SAAS4yF,EAAKn0D,GACZ,IAAIlnB,GAAS,EACTtT,EAASw6B,EAAUA,EAAQx6B,OAAS,EAGxC,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAyFA,SAAS2/B,EAAU31B,GACjB,IAAIlnB,GAAS,EACTtT,EAASw6B,EAAUA,EAAQx6B,OAAS,EAGxC,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAuGA,SAASmkG,EAASn6F,GAChB,IAAIlnB,GAAS,EACTtT,EAASw6B,EAAUA,EAAQx6B,OAAS,EAGxC,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAsFA,SAASs2G,EAAahlI,EAAOvD,GAE3B,IADA,IA+SUrC,EAAOipE,EA/SbnlE,EAAS8B,EAAM9B,OACZA,KACL,IA6SQ9D,EA7SD4F,EAAM9B,GAAQ,OA6SNmlE,EA7SU5mE,IA8SArC,GAAUA,GAASipE,GAAUA,EA7SpD,OAAOnlE,EAGX,OAAQ,CACV,CA6EA,SAAS2oS,EAAW/nS,EAAKrC,GACvB,IA+CiBrC,EACbkD,EAhDAqK,EAAO7I,EAAIyb,SACf,OAgDgB,WADZjd,SADalD,EA9CAqC,KAgDmB,UAARa,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVlD,EACU,OAAVA,GAjDDuN,EAAmB,iBAAPlL,EAAkB,SAAW,QACzCkL,EAAK7I,GACX,CAUA,SAAS6nS,EAAUhlR,EAAQllB,GACzB,IAAIrC,EAjeN,SAAkBunB,EAAQllB,GACxB,OAAiB,MAAVklB,OAAiB1nB,EAAY0nB,EAAOllB,EAC7C,CA+dcwsD,CAAStnC,EAAQllB,GAC7B,OAhEF,SAAsBrC,GACpB,IAAKovD,EAASpvD,KA4GEq9B,EA5GiBr9B,EA6GxBmsS,GAAeA,KAAc9uQ,GA5GpC,OAAO,EA2GX,IAAkBA,EAzGZh3B,EAoTN,SAAoBrG,GAGlB,IAAIG,EAAMivD,EAASpvD,GAASqsS,EAAensS,KAAKF,GAAS,GACzD,OAAOG,GAAOorS,GAAWprS,GAAOqrS,CAClC,CAzTiBtyR,CAAWlZ,IA3Z5B,SAAsBA,GAGpB,IAAIM,GAAS,EACb,GAAa,MAATN,GAA0C,mBAAlBA,EAAMN,SAChC,IACEY,KAAYN,EAAQ,GACtB,CAAE,MAAOK,GAAI,CAEf,OAAOC,CACT,CAiZsCosS,CAAa1sS,GAAUssS,EAAaP,EACxE,OAAO1lS,EAAQkrB,KAsJjB,SAAkB8L,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO+uQ,EAAalsS,KAAKm9B,EAC3B,CAAE,MAAOh9B,GAAI,CACb,IACE,OAAQg9B,EAAO,EACjB,CAAE,MAAOh9B,GAAI,CACf,CACA,MAAO,EACT,CAhKsBssS,CAAS3sS,GAC/B,CA0DSwnF,CAAaxnF,GAASA,OAAQH,CACvC,CAnUA4yF,EAAKlzF,UAAUoP,MAnEf,WACEhL,KAAKwc,SAAW6mC,EAAeA,EAAa,MAAQ,CAAC,CACvD,EAkEAyrC,EAAKlzF,UAAkB,OAtDvB,SAAoB8C,GAClB,OAAOsB,KAAKyV,IAAI/W,WAAesB,KAAKwc,SAAS9d,EAC/C,EAqDAowF,EAAKlzF,UAAUyV,IA1Cf,SAAiB3S,GACf,IAAIkL,EAAO5J,KAAKwc,SAChB,GAAI6mC,EAAc,CAChB,IAAI1mD,EAASiN,EAAKlL,GAClB,OAAO/B,IAAW+qS,OAAiBxrS,EAAYS,CACjD,CACA,OAAOd,EAAeU,KAAKqN,EAAMlL,GAAOkL,EAAKlL,QAAOxC,CACtD,EAoCA4yF,EAAKlzF,UAAU6Z,IAzBf,SAAiB/W,GACf,IAAIkL,EAAO5J,KAAKwc,SAChB,OAAO6mC,OAA6BnnD,IAAd0N,EAAKlL,GAAqB7C,EAAeU,KAAKqN,EAAMlL,EAC5E,EAuBAowF,EAAKlzF,UAAU+C,IAXf,SAAiBD,EAAKrC,GAGpB,OAFW2D,KAAKwc,SACX9d,GAAQ2kD,QAA0BnnD,IAAVG,EAAuBqrS,EAAiBrrS,EAC9D2D,IACT,EAmHAswD,EAAU10D,UAAUoP,MAjFpB,WACEhL,KAAKwc,SAAW,EAClB,EAgFA8zC,EAAU10D,UAAkB,OArE5B,SAAyB8C,GACvB,IAAIkL,EAAO5J,KAAKwc,SACZ/I,EAAQwzH,EAAar9H,EAAMlL,GAE/B,QAAI+U,EAAQ,IAIRA,GADY7J,EAAKzJ,OAAS,EAE5ByJ,EAAK+I,MAELogC,EAAOx2C,KAAKqN,EAAM6J,EAAO,GAEpB,GACT,EAwDA68C,EAAU10D,UAAUyV,IA7CpB,SAAsB3S,GACpB,IAAIkL,EAAO5J,KAAKwc,SACZ/I,EAAQwzH,EAAar9H,EAAMlL,GAE/B,OAAO+U,EAAQ,OAAIvX,EAAY0N,EAAK6J,GAAO,EAC7C,EAyCA68C,EAAU10D,UAAU6Z,IA9BpB,SAAsB/W,GACpB,OAAOuoI,EAAajnI,KAAKwc,SAAU9d,IAAQ,CAC7C,EA6BA4xD,EAAU10D,UAAU+C,IAjBpB,SAAsBD,EAAKrC,GACzB,IAAIuN,EAAO5J,KAAKwc,SACZ/I,EAAQwzH,EAAar9H,EAAMlL,GAO/B,OALI+U,EAAQ,EACV7J,EAAK/H,KAAK,CAACnD,EAAKrC,IAEhBuN,EAAK6J,GAAO,GAAKpX,EAEZ2D,IACT,EAiGA80H,EAASl5H,UAAUoP,MA/DnB,WACEhL,KAAKwc,SAAW,CACd,KAAQ,IAAIsyE,EACZ,IAAO,IAAK3wF,GAAOmyD,GACnB,OAAU,IAAIw+B,EAElB,EA0DAgmC,EAASl5H,UAAkB,OA/C3B,SAAwB8C,GACtB,OAAOoqS,EAAW9oS,KAAMtB,GAAa,OAAEA,EACzC,EA8CAo2H,EAASl5H,UAAUyV,IAnCnB,SAAqB3S,GACnB,OAAOoqS,EAAW9oS,KAAMtB,GAAK2S,IAAI3S,EACnC,EAkCAo2H,EAASl5H,UAAU6Z,IAvBnB,SAAqB/W,GACnB,OAAOoqS,EAAW9oS,KAAMtB,GAAK+W,IAAI/W,EACnC,EAsBAo2H,EAASl5H,UAAU+C,IAVnB,SAAqBD,EAAKrC,GAExB,OADAysS,EAAW9oS,KAAMtB,GAAKC,IAAID,EAAKrC,GACxB2D,IACT,EA+KA,IAAIipS,EAAe/hK,GAAQ,SAASzkI,GA4SpC,IAAkBpG,EA3ShBoG,EA4SgB,OADApG,EA3SEoG,GA4SK,GArZzB,SAAsBpG,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI6sS,EAAS7sS,GACX,OAAOwsS,EAAiBA,EAAetsS,KAAKF,GAAS,GAEvD,IAAIM,EAAUN,EAAQ,GACtB,MAAkB,KAAVM,GAAkB,EAAIN,IAAWsrS,EAAY,KAAOhrS,CAC9D,CA2Y8B8oS,CAAappS,GA1SzC,IAAIM,EAAS,GAOb,OANIsrS,EAAar6Q,KAAKnrB,IACpB9F,EAAOkF,KAAK,IAEdY,EAAOw1B,QAAQiwQ,GAAY,SAASv+R,EAAOoS,EAAQotR,EAAO1mS,GACxD9F,EAAOkF,KAAKsnS,EAAQ1mS,EAAOw1B,QAAQkwQ,EAAc,MAASpsR,GAAUpS,EACtE,IACOhN,CACT,IASA,SAAS6oE,EAAMnpE,GACb,GAAoB,iBAATA,GAAqB6sS,EAAS7sS,GACvC,OAAOA,EAET,IAAIM,EAAUN,EAAQ,GACtB,MAAkB,KAAVM,GAAkB,EAAIN,IAAWsrS,EAAY,KAAOhrS,CAC9D,CAiEA,SAASuqI,EAAQxtG,EAAMytG,GACrB,GAAmB,mBAARztG,GAAuBytG,GAA+B,mBAAZA,EACnD,MAAM,IAAIpjF,UAvqBQ,uBAyqBpB,IAAIqjF,EAAW,WACb,IAAI5mI,EAAOzC,UACPW,EAAMyoI,EAAWA,EAAShgI,MAAMnH,KAAMQ,GAAQA,EAAK,GACnDmiB,EAAQykH,EAASzkH,MAErB,GAAIA,EAAMlN,IAAI/W,GACZ,OAAOikB,EAAMtR,IAAI3S,GAEnB,IAAI/B,EAAS+8B,EAAKvyB,MAAMnH,KAAMQ,GAE9B,OADA4mI,EAASzkH,MAAQA,EAAMhkB,IAAID,EAAK/B,GACzBA,CACT,EAEA,OADAyqI,EAASzkH,MAAQ,IAAKukH,EAAQvyG,OAASmgG,GAChCsS,CACT,CAGAF,EAAQvyG,MAAQmgG,EA6DhB,IAAIvoG,EAAUje,MAAMie,QAmDpB,SAASk/B,EAASpvD,GAChB,IAAIkD,SAAclD,EAClB,QAASA,IAAkB,UAARkD,GAA4B,YAARA,EACzC,CA+CA,SAAS2pS,EAAS7sS,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,CAC3B,CAqBKogG,CAAapgG,IAAUqsS,EAAensS,KAAKF,IAAUyrS,CAC1D,CAyDA3rS,EAAOC,QALP,SAAawnB,EAAQ/Q,EAAMu6C,GACzB,IAAIzwD,EAAmB,MAAVinB,OAAiB1nB,EAtdhC,SAAiB0nB,EAAQ/Q,GAuDzB,IAAkBxW,EAtDhBwW,EA8FF,SAAexW,EAAOunB,GACpB,GAAI2I,EAAQlwB,GACV,OAAO,EAET,IAAIkD,SAAclD,EAClB,QAAY,UAARkD,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAATlD,IAAiB6sS,EAAS7sS,KAGvB2rS,EAAcp6Q,KAAKvxB,KAAW0rS,EAAan6Q,KAAKvxB,IAC1C,MAAVunB,GAAkBvnB,KAASV,OAAOioB,EACvC,CAzGSwlR,CAAMv2R,EAAM+Q,GAAU,CAAC/Q,GAuDvB0Z,EADSlwB,EAtD+BwW,GAuDvBxW,EAAQ4sS,EAAa5sS,GAlD7C,IAHA,IAAIoX,EAAQ,EACRtT,EAAS0S,EAAK1S,OAED,MAAVyjB,GAAkBnQ,EAAQtT,GAC/ByjB,EAASA,EAAO4hD,EAAM3yD,EAAKY,OAE7B,OAAQA,GAASA,GAAStT,EAAUyjB,OAAS1nB,CAC/C,CA4c4CkiH,CAAQx6F,EAAQ/Q,GAC1D,YAAkB3W,IAAXS,EAAuBywD,EAAezwD,CAC/C,kDC15BA,IAAImrE,EAAU,CAIZuhO,UAAW,EAIXC,UAAW,EAIXC,IAAK,EAILC,WAAY,GAKZthO,MAAO,GAIPuhO,MAAO,GAIPC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,UAAW,GAIX1hO,IAAK,GAIL2hO,MAAO,GAIPC,QAAS,GAKTC,UAAW,GAKXhnS,IAAK,GAKLolE,KAAM,GAKNP,KAAM,GAKNG,GAAI,GAKJD,MAAO,GAKPE,KAAM,GAKNgiO,aAAc,GAIdC,OAAQ,GAKRC,OAAQ,GAKRC,KAAM,GAINC,IAAK,GAILC,IAAK,GAILC,MAAO,GAIPC,KAAM,GAINC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,MAAO,GAIPC,KAAM,GAINC,cAAe,GAKfhlS,EAAG,GAIHilS,EAAG,GAIHjkS,EAAG,GAIHyqC,EAAG,GAIHD,EAAG,GAIH9pC,EAAG,GAIHuC,EAAG,GAIHihS,EAAG,GAIHC,EAAG,GAIHviS,EAAG,GAIHwiS,EAAG,GAIHlxR,EAAG,GAIHyB,EAAG,GAIH0vR,EAAG,GAIH95P,EAAG,GAIHzrC,EAAG,GAIHwlS,EAAG,GAIH/kS,EAAG,GAIH8C,EAAG,GAIH/D,EAAG,GAIHimS,EAAG,GAIHC,EAAG,GAIHC,EAAG,GAIHC,EAAG,GAIHC,EAAG,GAIHC,EAAG,GAIHC,KAAM,GAKNC,cAAe,GAIfC,aAAc,GAIdC,SAAU,GAIVC,QAAS,GAITC,QAAS,GAITC,UAAW,GAIXC,SAAU,IAIVC,SAAU,IAIVC,QAAS,IAITC,UAAW,IAIXC,UAAW,IAIXC,SAAU,IAIVC,aAAc,IAIdC,SAAU,IAIVC,UAAW,IAIXC,WAAY,IAIZC,aAAc,IAIdC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,IAAK,IAILC,IAAK,IAILC,IAAK,IAILC,QAAS,IAITC,UAAW,IAKXC,KAAM,IAKNC,OAAQ,IAKRC,MAAO,IAKPC,OAAQ,IAKRC,MAAO,IAKPC,WAAY,IAKZC,aAAc,IAKdC,oBAAqB,IAKrBC,UAAW,IAKXC,qBAAsB,IAKtBC,QAAS,IAITC,YAAa,IAKbC,QAAS,IAKTC,wBAAyB,SAAiC9xS,GACxD,IAAI+xS,EAAU/xS,EAAE+xS,QAChB,GAAI/xS,EAAEgyS,SAAWhyS,EAAEiyS,SAAWjyS,EAAEkyS,SAEhCH,GAAW3mO,EAAQ+kO,IAAM4B,GAAW3mO,EAAQ0lO,IAC1C,OAAO,EAKT,OAAQiB,GACN,KAAK3mO,EAAQ6hO,IACb,KAAK7hO,EAAQ+hO,UACb,KAAK/hO,EAAQ+jO,aACb,KAAK/jO,EAAQ4hO,KACb,KAAK5hO,EAAQG,KACb,KAAKH,EAAQ9kE,IACb,KAAK8kE,EAAQK,IACb,KAAKL,EAAQM,KACb,KAAKN,EAAQoiO,OACb,KAAKpiO,EAAQD,KACb,KAAKC,EAAQwmO,YACb,KAAKxmO,EAAQ6jO,KACb,KAAK7jO,EAAQ2lO,QACb,KAAK3lO,EAAQ0hO,WACb,KAAK1hO,EAAQkiO,UACb,KAAKliO,EAAQiiO,QACb,KAAKjiO,EAAQ8hO,MACb,KAAK9hO,EAAQmiO,aACb,KAAKniO,EAAQC,MACb,KAAKD,EAAQ2hO,MACb,KAAK3hO,EAAQE,GACb,KAAKF,EAAQumO,QACb,KAAKvmO,EAAQ8jO,cACX,OAAO,EACT,QACE,OAAO,EAEb,EAIAiD,eAAgB,SAAwBJ,GACtC,GAAIA,GAAW3mO,EAAQsiO,MAAQqE,GAAW3mO,EAAQ+iO,KAChD,OAAO,EAET,GAAI4D,GAAW3mO,EAAQgkO,UAAY2C,GAAW3mO,EAAQ0kO,aACpD,OAAO,EAET,GAAIiC,GAAW3mO,EAAQhiE,GAAK2oS,GAAW3mO,EAAQ4jO,EAC7C,OAAO,EAIT,IAAsD,IAAlD5zP,OAAOO,UAAUC,UAAUna,QAAQ,WAAgC,IAAZswQ,EACzD,OAAO,EAET,OAAQA,GACN,KAAK3mO,EAAQgiO,MACb,KAAKhiO,EAAQgjO,cACb,KAAKhjO,EAAQ2kO,SACb,KAAK3kO,EAAQ4kO,UACb,KAAK5kO,EAAQ6kO,WACb,KAAK7kO,EAAQ8kO,aACb,KAAK9kO,EAAQ4lO,UACb,KAAK5lO,EAAQ6lO,KACb,KAAK7lO,EAAQ8lO,OACb,KAAK9lO,EAAQ+lO,MACb,KAAK/lO,EAAQgmO,OACb,KAAKhmO,EAAQimO,MACb,KAAKjmO,EAAQkmO,WACb,KAAKlmO,EAAQmmO,aACb,KAAKnmO,EAAQomO,oBACb,KAAKpmO,EAAQqmO,UACb,KAAKrmO,EAAQsmO,qBACX,OAAO,EACT,QACE,OAAO,EAEb,GAEF,0DCxeA,QAjDmB,CACjBU,wBAAyB,EACzBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTxzP,KAAM,EACN+mD,SAAU,EACV0sM,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClB5qR,WAAY,EACZw0B,WAAY,EACZqH,QAAS,EACThgB,MAAO,EACPgvQ,QAAS,EACTC,QAAS,EACTC,OAAQ,EACR91P,OAAQ,EACR+1P,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,4BCrCP,SAAWl4R,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,CACJE,OAAQ,4GAA4Gjc,MAChH,KAEJgc,WACI,gGAAgGhc,MAC5F,MAGZmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SACI,gEAAgErc,MAC5D,KAERsc,cAAe,+BAA+Btc,MAAM,KACpDuc,YAAa,+BAA+Bvc,MAAM,KAClDyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJE,IAAK,wBACLE,KAAM,+BAEVE,SAAU,CACNC,QAAS,aACTE,QAAS,YACTE,QAAS,YACTD,SAAU,WACN,MAAO,oBACX,EACAE,SAAU,WACN,MAAO,4BACX,EACAC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNpU,EAAG,mBACHqU,GAAI,cACJC,EAAG,OACHC,GAAI,UACJC,EAAG,MACHC,GAAI,SACJC,EAAG,KACHC,GAAI,QACJC,EAAG,OACHC,GAAI,UACJC,EAAG,OACHC,GAAI,WAERoO,cAAe,oCACfC,KAAM,SAAU9nB,GACZ,MAAO,uBAAuByrB,KAAKzrB,EACvC,EACA+nB,SAAU,SAAUC,GAChB,OAAIA,EAAO,EACA,UACAA,EAAO,GACP,WACAA,EAAO,GACP,UAEA,UAEf,EACAtO,uBAAwB,0BACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,OACD,OAAe,IAAXD,EACOA,EAAS,MAEbA,EAAS,MACpB,QACI,OAAOA,EAEnB,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAlGyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIzB,IAAI4tG,EACI,8DAA8DzpH,MAC1D,KAERmc,EAAc,kDAAkDnc,MAAM,KACtE0pH,EAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,EACI,mLAEG9tG,EAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2F/b,MAC/F,KAEJmc,YAAa,SAAU4B,EAAG9B,GACtB,OAAK8B,EAEM,QAAQyS,KAAKvU,GACbE,EAAY4B,EAAE2wC,SAEd+6D,EAAe1rG,EAAE2wC,SAJjB+6D,CAMf,EACAE,YAAaA,EACbC,iBAAkBD,EAClBE,kBACI,+FACJC,uBACI,0FACJJ,YAAaA,EACbK,gBAAiBL,EACjBM,iBAAkBN,EAClBrtG,SAAU,uDAAuDrc,MAAM,KACvEsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJE,IAAK,6BACLE,KAAM,oCAEVE,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBxa,KAAKya,QAAgB,IAAM,IAAM,MAC3D,EACAC,QAAS,WACL,MAAO,gBAAmC,IAAjB1a,KAAKya,QAAgB,IAAM,IAAM,MAC9D,EACAE,SAAU,WACN,MAAO,cAAiC,IAAjB3a,KAAKya,QAAgB,IAAM,IAAM,MAC5D,EACAG,QAAS,WACL,MAAO,cAAiC,IAAjB5a,KAAKya,QAAgB,IAAM,IAAM,MAC5D,EACAI,SAAU,WACN,MACI,0BACkB,IAAjB7a,KAAKya,QAAgB,IAAM,IAC5B,MAER,EACAK,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNpU,EAAG,gBACHqU,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJwlB,EAAG,aACHqmF,GAAI,aACJ5rG,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,GAETg1R,YAAa,kBAKpB,CAlHyC/0R,CAAQ,EAAQ,wCCJ1D,EAAQ,uCCDR,IAAIg1R,EAAsB,EAAQ,QAE9Bv1Q,EAAM7+B,KAAK6+B,IAIf3/B,EAAOC,QAAU,SAAUwvD,GACzB,IAAI7nD,EAAMstS,EAAoBzlP,GAC9B,OAAO7nD,EAAM,EAAI+3B,EAAI/3B,EAAK,kBAAoB,CAChD,mHCNW,aAAkB,4BAoBzBynJ,EAAiB,SAAwBh+H,GAC3C,OAAO,WACL,IAAK,IAAInf,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAGzB,MAAO,CACLhP,KAT2B,+BAU3B0M,QAAS,CACPuhB,OAAQA,EACRhtB,KAAMA,GAGZ,CACF,EAQWqB,EAAO2pJ,EAAe,QAGtBN,GAFUM,EAAe,WACpBA,EAAe,MACXA,EAAe,WCjDnC,SAASh1D,EAAQr3F,GAAmV,OAAtOq3F,EAArD,mBAAX/6F,QAAoD,iBAApBA,OAAOyM,SAAmC,SAAiB/I,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX1D,QAAyB0D,EAAI4rB,cAAgBtvB,QAAU0D,IAAQ1D,OAAOG,UAAY,gBAAkBuD,CAAK,EAAYq3F,EAAQr3F,EAAM,CDkDlWqsJ,EAAe,aElDtC,SAAS,EAAQ5nI,EAAQC,GAAkB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GAAS,GAAIjoB,OAAO2nB,sBAAuB,CAAE,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAAaC,IAAgBC,EAAUA,EAAQhR,QAAO,SAAUyQ,GAAO,OAAO5nB,OAAOonB,yBAAyBa,EAAQL,GAAK7B,UAAY,KAAIvb,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAAU,CAAE,OAAO3d,CAAM,CAIpV,SAAS,EAAgBhH,EAAKT,EAAKrC,GAAiK,OAApJqC,KAAOS,EAAOxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAAErC,MAAOA,EAAOqlB,YAAY,EAAMQ,cAAc,EAAMC,UAAU,IAAkBhjB,EAAIT,GAAOrC,EAAgB8C,CAAK,CCEzM,IAGHsmI,EFLkB,SAAyB6rK,GAC7C,IAAIv+R,EAAQu+R,EAAUv+R,MAClB40P,EAAO2pC,EAAU3pC,KAMjB/hI,EAAY,SAAmB/1H,GACjC,IAL+BxT,EAK3B4X,EAAS0zP,EAAK50P,EAAMlD,EAAO,CAAC,YAEhC,GANgB,OADexT,EAOjB4X,IAN6B,WAAnBuiF,EAAQn6F,KAAuB0W,EAAM1W,EAAO,CAAC,eAAgB0W,EAAM1W,EAAO,CAAC,WAOjG,KAAM,iFAGR,OAAO4X,CACT,EAEI01G,EAAc,SAAqB95G,GACrC,OAAO83P,EAAK50P,EAAM6yH,EAAU/1H,GAAQ,CAAC,aACvC,EAwCA,MAAO,CACL85G,YAAaA,EACb+b,UAxCc,SAAmB71H,GACjC,OAAO83P,EAAK50P,EAAM6yH,EAAU/1H,GAAQ,CAAC,WACvC,EAuCE+1H,UAAWA,EACXC,UAtCc,SAAmBh2H,GACjC,OAAO83P,EAAK50P,EAAM6yH,EAAU/1H,GAAQ,CAAC,WAAY,WACnD,EAqCE81H,QAnCY,SAAiB91H,GAC7B,OAAO83P,EAAK50P,EAAM6yH,EAAU/1H,GAAQ,CAAC,WAAY,SACnD,EAkCEi2H,oBA7BwB,SAA6BjzH,GACrD,IAAI0+R,EAAe,KACfC,EAAY,KAChB,OAAO,SAAU3hS,GACf,IACImpF,GADO2wB,EAAY95G,IAAU,CAAC,GACdmpF,SAEpB,GAAIA,IAAau4M,EACf,OAAOC,EAGTD,EAAev4M,EACf,IAAIrvF,GAAQ,IAAA8nS,WAAUz4M,EAAUnmF,GAOhC,OALKlJ,GAAU6nS,GAAa7nS,EAAM6rC,MAAQg8P,EAAUh8P,KACjD7rC,EAAM+nS,UAAYF,EAAUE,UAC7BF,EAAY7nS,GAGP6nS,CACT,CACF,EAUF,CE/DoC,CDFpB,CACdriS,OAAQ,SAAgB9S,GACtB,OAAOA,CACT,EACA0W,MEVU,SAAelD,EAAOgD,GAChC,IAAKhD,EACH,OAAOA,EAGT,IAAI1P,EAAS0S,EAAK1S,OAElB,GAAKA,EAAL,CAMA,IAFA,IAAIxD,EAASkT,EAEJ/L,EAAI,EAAGA,EAAI3D,GAAYxD,IAAUmH,EACxCnH,EAASA,EAAOkW,EAAK/O,IAGvB,OAAOnH,CARP,CASF,EFPE2W,MAAO,SAAezD,EAAO5D,GAC3B,OAXJ,SAAuBkX,GAAU,IAAK,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAK,CAAE,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAAOA,EAAI,EAAK,EAAQnI,OAAOynB,IAAS,GAAM5kB,SAAQ,SAAUE,GAAO,EAAgBykB,EAAQzkB,EAAK0kB,EAAO1kB,GAAO,IAAe/C,OAAO+nB,0BAA6B/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAAmB,EAAQznB,OAAOynB,IAAS5kB,SAAQ,SAAUE,GAAO/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAAO,GAAM,CAAE,OAAOykB,CAAQ,CAW1gB,CAAc,CAAC,EAAGtT,EAAO,CAAC,EAAG5D,EACtC,EACA07P,KAAM,SAActrQ,GAClB,OAAOA,CACT,ICPgBopI,EAAiB9b,YACnB8b,EAAiBC,UACnBD,EAAiBE,QACfF,EAAiBG,UACjBH,EAAiBI,UACPJ,EAAiBK,4GEM3C,QAVA,SAAkBlgE,EAAYrjE,GAC5B,IAAI5F,EAMJ,OAJA,OAASipE,GAAY,SAASvpE,EAAOoX,EAAOmyD,GAE1C,QADAjpE,EAAS4F,EAAUlG,EAAOoX,EAAOmyD,GAEnC,MACSjpE,CACX,8BC+BA,QARA,SAAcipE,EAAYrjE,EAAW6/E,GACnC,IAAI1oD,GAAO,EAAAnN,EAAA,GAAQq5C,GAAc,IAAY,EAI7C,OAHIwc,IAAS,OAAexc,EAAYrjE,EAAW6/E,KACjD7/E,OAAYrG,GAEPw9B,EAAKksC,GAAY,OAAarjE,EAAW,GAClD,oBChDA,IAAIovS,EAAW,EAAQ,QACnBlwR,EAAiB,EAAQ,QACzBrS,EAAW,EAAQ,QAUnBwiS,EAAmBnwR,EAA4B,SAASiY,EAAMj3B,GAChE,OAAOgf,EAAeiY,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAASi4Q,EAASlvS,GAClB,UAAY,GAEhB,EAPwC2M,EASxCjT,EAAOC,QAAUw1S,oTChBV,MAAMC,EAAAA,sBAAe,UAC1BxhN,EACA5+D,GAEA,IACE,MAAMp1B,EAAQ0iC,KAAKwD,MAAM8tD,GAEzB,OAAK5+D,SAICA,EAAOb,cAAcv0B,EAAO,CAAE61B,YAAY,IAEzC,IALE,EAMX,CAAE,MAAOttB,GACP,GAAIA,aAAiB8yN,YAAa,CAChC,MAAM/5M,EAAU/Y,EAAM+Y,QAChBm0R,EAAkBn0R,EAAQhU,MAAM,2BAKtC,MAAO,CACL,CACEgnN,IALQmhF,EAAkBlsQ,SAASksQ,EAAgB,GAAI,IAAM,EAAI,EAMjEhnC,OALWgnC,EAAkBlsQ,SAASksQ,EAAgB,GAAI,IAAM,EAAI,EAMpEr7P,KAAM94B,EACNpe,KAAM,SAGZ,CAEA,GAAIqF,aAAiByzB,EAAAA,gBAAiB,CACpC,MAAM05Q,GAAaC,EAAAA,EAAAA,IAAkB3hN,GAErC,OAAOzrF,EAAM4xB,QACVz1B,KAAK4E,IACJ,MAAMkN,EAAOlN,EAAIkN,KAQflN,EAAIgY,QAAQhU,MAAM,gDAElBkJ,EAAKF,MAIP,MAAMlI,GAAWk/G,EAAAA,EAAAA,IAAYooL,EAAY,CAAEl/R,SAG3C,OAAKpI,EAASwuC,MAIkB,CAC9B03K,IAAKlmN,EAASwuC,MAAMigL,KAAO,EAC3B4xC,OAAQrgQ,EAASwuC,MAAM6xN,OACvBr0N,KAAM9wC,EAAIgY,QACVpe,KAAM,SAPC,IAUQ,IAElBuT,QAAkCm/R,KAAiBA,GACxD,CACF,CACF,iMArEE5hN,EACA5+D,mCAFWogR,iJCMT/iS,EAAU,CAAC,mPAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OCX1DirE,IAAAA,OAAW/jF,IAAI,sBAAsB,GAU9B,MAAMuzS,EAAgB,eAC3BzuN,EAAS,iBAAgB,UACzB9rE,EAAS,eACTw6R,GAAiB,EAAI,SACrBx/O,EAAQ,OACRlhC,GAEkB,EADfm5P,oXAAAA,CAAAA,EAAAA,CALHnnM,SACA9rE,YACAw6R,iBACAx/O,WACAlhC,WAGA,MAAO2gR,EAAavkC,IAAkBv1K,EAAAA,EAAAA,UAAoC,IAEpEtrC,EAAAA,sBAAW,UAAOK,OAKtBu9N,EAJA,MAAMv4P,QAAew/Q,EAAaxkP,EAAU57B,GAE5Co8O,EAAex7O,GAEM,QAArBu4P,EAAAA,EAAa59N,gBAAb49N,IAAAA,GAAAA,EAAAA,KAAAA,EAAwBv9N,EAC1B,iMANwBA,mCAAlBL,GAQAyE,EAAQte,SAASgjD,gBAAgB0xC,UAAUwqK,SAAS,QACtD,eACA,SAEJ,OACE,SAACC,EAAAA,4UAASA,CAAAA,CACR1uN,cAAaH,EACb9rE,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB,wBAAyBJ,EAAW,CACpE,2BAA4Bg7C,IAE9B6X,KAAK,OACL+nO,SAAU5/O,EACV6/O,YAAa,CAAEC,iBAAiB,GAChCjC,QAAS,EACTkC,qBAAsB//O,GAClBi4N,cAAAA,CACJ59N,SAAUA,EACVyE,MAAOA,EACP2gP,YAAaD,EAAiBC,OAAcl2S,EAM5Cq6Q,WAAY,CAAEltD,WAAW,kXCjE/BltN,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,8GCCpC,SAASu2S,EAAc7+R,GAC5B,MAAM,eACJ8+R,EAAc,eACdC,EAAc,kBACdC,GACEh/R,EACEi/R,EAAYH,EAAiB,EAE7BI,EAAKD,EACLE,EAAyB,EAApBH,EAAwB71S,KAAKmuL,KAAK,GACvC5pJ,EAAKuxQ,EAAYD,GAAqB,EAAI,EAAI71S,KAAKmuL,KAAK,IACxD8nH,EAAKH,EAAYF,GAAkB,EAAI51S,KAAKmuL,KAAK,IACjD+nH,EAAKL,GAAqB71S,KAAKmuL,KAAK,GAAK,GAAKynH,GAAkB,EAAI51S,KAAKmuL,KAAK,IAC9EgoH,EAAK,EAAIL,EAAYG,EACrBG,EAAKF,EACL/lL,EAAK,EAAI2lL,EAAYE,EACrBK,EAAK9xQ,EACL+xQ,EAAK,EAAIR,EAVJ,EAWLS,EAAKR,EACLS,EAAcV,EAAY91S,KAAKmuL,KAAK,GAAK0nH,GAAqB71S,KAAKmuL,KAAK,GAAK,GAC7EsoH,EAAgBZ,GAAqB71S,KAAKmuL,KAAK,GAAK,GAG1D,MAAO,CACLuoH,iBAAkBF,EAClBG,UAHgB,aAAiBZ,OAAQF,KAAqBA,WAA2BG,KAAMzxQ,OAAQ0xQ,KAAMC,OAAQN,KAAkBA,WAAwBO,KAAMC,OAAQjmL,KAAMkmL,OAAQR,KAAqBA,WAA2BS,KAAMC,QAIjPK,aALmB,WAAWH,iBAA6BA,QAAoB,EAAIX,EAAYW,aAAyBA,YAO5H,CACO,MAAMI,EAAkB,CAAChgS,EAAOigS,EAAS14P,KAC9C,MAAM,eACJu3P,EAAc,aACdiB,EAAY,UACZD,EAAS,iBACTD,EAAgB,eAChBd,EAAc,KACdj2P,GACE9oC,EACJ,MAAO,CACLgqC,cAAe,OACfH,MAAOi1P,EACPr1P,OAAQq1P,EACR93P,SAAU,SACV,YAAa,CACX5D,SAAU,WACVwG,OAAQ,EACRF,iBAAkB,EAClBG,MAAOi1P,EACPr1P,OAAQX,EAAKg2P,GAAgB5xP,IAAI,GAAG1sB,QACpCqqB,WAAYo1P,EACZC,SAAU,CACRC,eAAe,EACf53S,MAAO,CAACw3S,EAAcD,IAExB51P,QAAS,MAEX,WAAY,CACVA,QAAS,KACT9G,SAAU,WACVyG,MAAOg2P,EACPp2P,OAAQo2P,EACRj2P,OAAQ,EACR8iD,YAAa,EACb9/C,OAAQ,OACRxF,aAAc,CACZg5P,cAAc,EACd73S,MAAO,QAAO,QAAKw2S,QAErBl2O,UAAW,kCACXthB,YACAV,OAAQ,EACRgE,WAAY,eAEf,uFCtDH,QAlBiB,SAAoBx7C,GACnC,IAAI82C,EAAQ92C,EAAK82C,MACfoY,EAAYlvD,EAAKkvD,UACjB16C,EAAYxU,EAAKwU,UACjBq/B,EAAQ7zC,EAAK6zC,MACbmmB,EAAUh6D,EAAKg6D,QACbg3O,EAAgB,GAAG5sS,OAAO8qD,EAAW,gBACzC,OAAoB,gBAAoB,MAAO,CAC7C16C,UAAW,IAAWw8R,EAAex8R,GACrCq/B,MAAOA,EACPmmB,QAASA,GACK,gBAAoB,MAAO,CACzCxlD,UAAW,GAAGpQ,OAAO4sS,EAAe,UACpCn9P,MAAO,CACL2H,WAAY1E,KAGlB,iCCnBe,SAASm6P,IACtB,QAA4B,oBAAXt8P,SAA0BA,OAAO3E,WAAY2E,OAAO3E,SAASjwB,cAChF,iDCOa,IAAIyH,EAAE,EAAQ,QAAS7nB,EAAErH,OAAO26B,IAAI,iBAAiB5L,EAAE/uB,OAAO26B,IAAI,kBAAkBjb,EAAExf,OAAOC,UAAUC,eAAe0uB,EAAEI,EAAEm7Q,mDAAmDuO,kBAAkBhyS,EAAE,CAAC3D,KAAI,EAAGshB,KAAI,EAAGs0R,QAAO,EAAGC,UAAS,GAChP,SAASC,EAAE/pR,EAAEnqB,EAAEsqB,GAAG,IAAIrqB,EAAEgb,EAAE,CAAC,EAAE7e,EAAE,KAAK2e,EAAE,KAAiF,IAAI9a,UAAhF,IAASqqB,IAAIluB,EAAE,GAAGkuB,QAAG,IAAStqB,EAAE5B,MAAMhC,EAAE,GAAG4D,EAAE5B,UAAK,IAAS4B,EAAE0f,MAAM3E,EAAE/a,EAAE0f,KAAc1f,EAAE6a,EAAE5e,KAAK+D,EAAEC,KAAK8B,EAAExG,eAAe0E,KAAKgb,EAAEhb,GAAGD,EAAEC,IAAI,GAAGkqB,GAAGA,EAAEgqR,aAAa,IAAIl0S,KAAKD,EAAEmqB,EAAEgqR,kBAAe,IAASl5R,EAAEhb,KAAKgb,EAAEhb,GAAGD,EAAEC,IAAI,MAAM,CAAC2gB,SAASpe,EAAEvD,KAAKkrB,EAAE/rB,IAAIhC,EAAEsjB,IAAI3E,EAAEnR,MAAMqR,EAAEm5R,OAAOnqR,EAAEzlB,QAAQ,CAAC1I,EAAQ20J,SAASvmI,EAAEpuB,EAAQ4mR,IAAIwxB,EAAEp4S,EAAQu4S,KAAKH,gTC8B1W,MAAMI,EAAgB,CACpBvyR,QAAS,CAAC,UAAW,YACrB04Q,QAAS,CAAC,UAAW,SACrBt9L,OAAQ,CAAC,UAAW,UACpBnkE,KAAM,CAAC,UAAW,QAClBmd,KAAM,CAAC,UAAW,SAuLd8iD,EArLwC,cAAiB,CAACrvF,EAAO8V,KACrE,IAAI0E,EAAIC,EAAIC,EAAIC,EAChB,MAAM,QACF69F,GAAU,EACVrwD,UAAWw5B,EAAkB,MAC7B5xC,EAAK,QACLw/C,EAAO,KACPl6F,EAAI,OACJq+F,GAAS,EAAK,MACd+oB,EAAQ,UACR1xF,KAAMstF,EAAa,OACnB7S,EACA/8C,SAAU0uD,EAAc,UACxB1pG,EAAS,cACT24D,EAAa,SACb14D,EAAQ,KACR6L,EAAI,aACJoxR,EAAe,QAAO,MACtBC,GAAQ,EAAK,MACb5xJ,GAAQ,EAAK,SAEbC,EAAW,SACXxK,WAAYo8J,EACZ/9P,MAAOg+P,EAAc,CAAC,EAAC,gBACvBC,GACE/qS,EACJ0/H,EAvEgC,SAAU/iI,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAgEWy0F,CAAOxzF,EAAO,CAAC,UAAW,YAAa,QAAS,UAAW,OAAQ,SAAU,QAAS,OAAQ,SAAU,WAAY,YAAa,gBAAiB,WAAY,OAAQ,eAAgB,QAAS,QAAS,WAAY,aAAc,QAAS,oBAG9OgrS,EAAa31S,GAAQ,WACpB41S,EAAap3L,IAAiB,IAAA9yD,UAAQ,KAC3C,GAAIhR,GAASw/C,EACX,MAAO,CAACx/C,EAAOw/C,GAEjB,MAAM27M,EAAmBR,EAAcM,IAAe,GACtD,OAAIt3M,EACK,CAAC,SAAUw3M,EAAiB,IAE9BA,CAAgB,GACtB,CAAC71S,EAAM06C,EAAOw/C,EAASmE,IAEpBy3M,EAD2B,WAAhBF,EACkB,YAAcA,GAC3C,aACJ9jP,EAAY,UACZ9oB,EAAS,OACT86E,IACE,IAAA9xD,YAAW,MACT+jP,EAAiL,QAA5J5wR,EAAKuwR,QAAyDA,EAAkB5xL,aAAuC,EAASA,EAAO4xL,uBAAoC,IAAPvwR,GAAgBA,EACzM2tC,EAAYhB,EAAa,MAAOw6B,IAC/BC,EAAYn6B,GAAQo6B,KAAa,OAAS15B,GAC3CM,IAAW,IAAApB,YAAW,KACtBob,GAAiB00C,QAAuDA,EAAiB1uD,GACzF4iP,IAAY,IAAAhkP,YAAW,KACvBikP,IAAiB,IAAAvqP,UAAQ,IA1EjC,SAA0By3D,GACxB,GAAuB,iBAAZA,GAAwBA,EAAS,CAC1C,IAAIuJ,EAAQvJ,aAAyC,EAASA,EAAQuJ,MAEtE,OADAA,EAASv4G,OAAOkjB,MAAMq1F,IAA2B,iBAAVA,EAA6B,EAARA,EACrD,CACLvJ,QAASuJ,GAAS,EAClBA,QAEJ,CACA,MAAO,CACLvJ,UAAWA,EACXuJ,MAAO,EAEX,CA6DuCwpL,CAAiB/yL,IAAU,CAACA,KAC1DgzL,GAAcC,KAAc,IAAAr9M,UAASk9M,GAAe9yL,UACpDkzL,GAAcC,KAAmB,IAAAv9M,WAAS,GAC3Cw9M,IAA2B,IAAAC,aAC3BC,IAAY,QAAWh2R,EAAK81R,IAC5BG,GAA4C,IAA7B,EAAAC,SAASj3O,MAAMrnD,KAAoB6L,KAAS,QAA0Bs6F,IAC3F,IAAA//C,YAAU,KACR,IAAIm4O,EAAa,KAejB,OAdIX,GAAevpL,MAAQ,EACzBkqL,EAAa/tP,YAAW,KACtB+tP,EAAa,KACbR,IAAW,EAAK,GACfH,GAAevpL,OAElB0pL,GAAWH,GAAe9yL,SAE5B,WACMyzL,IACF5tP,aAAa4tP,GACbA,EAAa,KAEjB,CACmB,GAClB,CAACX,MACJ,IAAAx3O,YAAU,KAER,IAAKg4O,KAAcA,GAAUlxS,UAAYwwS,EACvC,OAEF,MAAMx5J,EAAak6J,GAAUlxS,QAAQgyC,YACjCm/P,KAAgB,QAAYn6J,GACzB85J,IACHC,IAAgB,GAETD,IACTC,IAAgB,EAClB,GACC,CAACG,KACJ,MAAMI,GAAc,eAAkB15S,IACpC,IAAIgoB,EAEAgxR,IAAgB/oO,GAClBjwE,EAAEi7C,iBAGqB,QAAxBjzB,EAAKxa,EAAMizD,eAA4B,IAAPz4C,GAAyBA,EAAGnoB,KAAK2N,EAAOxN,EAAE,GAC1E,CAACwN,EAAMizD,QAASu4O,GAAc/oO,MAM3B,YACJs2C,GAAW,sBACX40B,KACE,QAAsBxlF,EAAW9pB,GAM/B8tQ,IAAe,QAAQC,IAC3B,IAAI5xR,EAAIC,EACR,OAAqJ,QAA7IA,EAAiG,QAA3FD,EAAK69F,QAAqDA,EAAgBU,UAAgC,IAAPv+F,EAAgBA,EAAK6wR,UAA8B,IAAP5wR,EAAgBA,EAAK2xR,CAAO,IAErLC,GAAUF,IAAyD,QAAzC1xR,EATP,CACvB6xR,MAAO,KACPC,MAAO,KACPC,YAAQx6S,GAM4Cm6S,WAAkC,IAAP1xR,EAAgBA,EAAU,GACrGgyR,GAAWjB,GAAe,UAAYjyR,EACtCmzR,IAAsB,OAAKhtK,EAAM,CAAC,aAClCs0J,GAAU,IAAW7rO,EAAWV,GAAQo6B,GAAW,CACvD,CAAC,GAAG15B,KAAas0D,KAAoB,YAAVA,GAAuBA,EAElD,CAAC,GAAGt0D,KAAa6iP,KAAeA,EAChC,CAAC,GAAG7iP,eAAwBurC,EAC5B,CAAC,GAAGvrC,WAAmBgjP,KAAoBA,EAC3C,CAAC,GAAGhjP,aAAqB0rD,KAAkBA,EAC3C,CAAC,GAAG1rD,KAAakkP,MAAYA,GAC7B,CAAC,GAAGlkP,gBAAyBz6C,GAAyB,IAAbA,KAAoB++R,GAC7D,CAAC,GAAGtkP,sBAA+ByiP,KAAU,QAA0B/2L,GACvE,CAAC,GAAG1rD,aAAsBqjP,GAC1B,CAAC,GAAGrjP,uBAAgCujP,IAAgBN,IAAsBI,GAC1E,CAAC,GAAGrjP,WAAoB6wF,EACxB,CAAC,GAAG7wF,SAAgC,QAAd9pB,EACtB,CAAC,GAAG8pB,cAAwC,QAAjBwiP,GAC1Bh9J,GAAuBlgI,EAAW24D,EAAe+yC,aAAuC,EAASA,EAAO1rG,WACrGk/R,GAAYl7S,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGquG,aAAuC,EAASA,EAAOrsE,OAAQg+P,GAC3G8B,GAAc,IAAW/B,aAA2D,EAASA,EAAiBtxR,KAAmF,QAA5EmB,EAAKy+F,aAAuC,EAASA,EAAOs1B,kBAA+B,IAAP/zH,OAAgB,EAASA,EAAGnB,MACrOszR,GAAYp7S,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAI06F,aAAuC,EAASA,EAAOjsF,OAAS,CAAC,IAA8E,QAAxEoB,EAAKw+F,aAAuC,EAASA,EAAO3T,cAA2B,IAAP7qF,OAAgB,EAASA,EAAGpB,OAAS,CAAC,GAC1OqnD,GAAWrnD,IAASiyR,GAA6B,gBAAoB,IAAa,CACtFrjP,UAAWA,EACX16C,UAAWm/R,GACX9/P,MAAO+/P,IACNtzR,GAAuB,gBAAoB,IAAa,CACzDuzR,YAAavzR,EACb4uC,UAAWA,EACXqwD,QAASgzL,KAELlwI,GAAO5tJ,GAAyB,IAAbA,GAAiB,QAAcA,EAAUq+R,IAAgBX,GAAqB,KACvG,QAAiCp5S,IAA7B06S,GAAoBzpL,KACtB,OAAOrhC,EAAwB,gBAAoB,IAAKnwF,OAAOqZ,OAAO,CAAC,EAAG4hS,GAAqB,CAC7Fj/R,UAAW,IAAWumR,GAAS,CAC7B,CAAC,GAAG7rO,cAAuBsa,KAE7BwgD,KAAMxgD,QAAiBzwE,EAAY06S,GAAoBzpL,KACvDn2E,MAAO6/P,GACP15O,QAASi5O,GACTp2R,IAAKg2R,GACLpuO,SAAU+E,IAAkB,EAAI,IAC9B7B,GAAU06F,KAEhB,IAAIyxI,GAA0B,gBAAoB,SAAUt7S,OAAOqZ,OAAO,CAAC,EAAG40H,EAAM,CAClFrqI,KAAM4jJ,EACNxrI,UAAWumR,GACXlnP,MAAO6/P,GACP15O,QAASi5O,GACTzjP,SAAUga,GACV3sD,IAAKg2R,KACHlrO,GAAU06F,KAAQ3tB,IAAsC,gBAAoB,IAAY,CAC1Fn5I,IAAK,UACL2zD,UAAWA,KAQb,OANK,QAA0B0rD,KAC7Bk5L,GAA0B,gBAAoB,IAAM,CAClD1pO,UAAW,SACX5a,SAAU+iP,IACTuB,KAEEnrN,EAAWmrN,GAAW,IAG/B19M,EAAOoqB,MAAQ,IACfpqB,EAAOiqB,cAAe,EAItB,8ICnOO,MAAM0zL,EAAW,eAyBxB,EAxBuBhtS,IACrB,MAAM,OACJojF,EAAS,CAAC,EAAC,SACX11E,EAAQ,YACRu/R,GACEjtS,EAKJ,aAAgB,KACM,OAAoBojF,aAAuC,EAASA,EAAOC,QAE9F,CAACD,IACJ,MAAM8pN,EAA0B,WAAc,IAAMz7S,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGs4E,GAAS,CAC3F/4D,OAAO,KACL,CAAC+4D,IACL,OAAoB,gBAAoB,IAAcvkE,SAAU,CAC9D1sB,MAAO+6S,GACNx/R,EAAS,sKCbd,SAASg5C,EAAMj2B,GACb,IAAI/wB,EAAO5J,KAAKwc,SAAW,IAAI,IAAUme,GACzC36B,KAAKi1B,KAAOrrB,EAAKqrB,IACnB,CAGA27B,EAAMh1D,UAAUoP,MCXhB,WACEhL,KAAKwc,SAAW,IAAI,IACpBxc,KAAKi1B,KAAO,CACd,EDSA27B,EAAMh1D,UAAkB,OEZxB,SAAqB8C,GACnB,IAAIkL,EAAO5J,KAAKwc,SACZ7f,EAASiN,EAAa,OAAElL,GAG5B,OADAsB,KAAKi1B,KAAOrrB,EAAKqrB,KACVt4B,CACT,EFOAi0D,EAAMh1D,UAAUyV,IGbhB,SAAkB3S,GAChB,OAAOsB,KAAKwc,SAASnL,IAAI3S,EAC3B,EHYAkyD,EAAMh1D,UAAU6Z,IIdhB,SAAkB/W,GAChB,OAAOsB,KAAKwc,SAAS/G,IAAI/W,EAC3B,EJaAkyD,EAAMh1D,UAAU+C,IKPhB,SAAkBD,EAAKrC,GACrB,IAAIuN,EAAO5J,KAAKwc,SAChB,GAAI5S,aAAgB,IAAW,CAC7B,IAAIytS,EAAQztS,EAAK4S,SACjB,IAAK,KAAQ66R,EAAMl3S,OAASm3S,IAG1B,OAFAD,EAAMx1S,KAAK,CAACnD,EAAKrC,IACjB2D,KAAKi1B,OAASrrB,EAAKqrB,KACZj1B,KAET4J,EAAO5J,KAAKwc,SAAW,IAAI,IAAS66R,EACtC,CAGA,OAFAztS,EAAKjL,IAAID,EAAKrC,GACd2D,KAAKi1B,KAAOrrB,EAAKqrB,KACVj1B,IACT,ELLA,kMMtBA,MAAMu3S,EAAsB,IAAIp5S,IAE1Bq5S,EAAe,IAAI9iR,IAoCzB,SAAS+iR,EAAkBhpD,EAAQpkC,GAEjC,OApCF,SAAuCokC,GACrC,GAAK,KAAWipD,sBAIhB,IAAK,MAAM5hR,KAASn6B,OAAOwK,KAAK,KAAWuxS,uBAAwB,CACjE,MAAM9iN,EAAW,KAAW8iN,sBAAsB5hR,GAElD,GAAI0hR,EAAa/hS,IAAIqgB,GACnB,SAIF0hR,EAAaviS,IAAI6gB,GAEjB,MAAMukI,EAASo0F,EAAO34N,GAGtB,IAAK,MAAM/qB,KAASsvJ,EAAOttF,UACzB,GAAIhiE,EAAMs/M,SAAU,CAElBktF,EAAoB54S,IAAIoM,EAAMs/M,SAAUz1H,GACxC,KACF,CAEJ,CACF,CASE+iN,CAA8BlpD,GACvB8oD,EAAoBlmS,IAAIg5M,EACjC,CAOA,SAASutF,EAAyBnpD,EAAQzoM,GACxC,IAEEA,EAAMiyD,UAAU17F,OAAO/d,SAAQy5G,IAC7B,GAAKA,EAAU4rL,WAIf,IAAK,MAAM94R,KAASktG,EAAU4rL,WAAWxpI,QAAU,GAAI,CACrD,IAAKtvJ,EAAMs/M,UAAYt/M,EAAM8sS,gBAC3B,SAGF,MAAMjjN,EAAW6iN,EAAkBhpD,EAAQ1jP,EAAMs/M,UAE7Cz1H,IACF7pF,EAAM8sS,gBAAkBjjN,EAE5B,IAEJ,CAAE,MAAO7zD,GAET,CACF,CAKA,SAAS+2Q,EAA6B9xP,GACpC,IAEEA,EAAMiyD,UAAU17F,OAAO/d,SAAQy5G,IAC7B,GAAKA,EAAU4rL,WAIf,IAAK,MAAM94R,KAASktG,EAAU4rL,WAAWxpI,QAAU,UAC1CtvJ,EAAM8sS,eACf,GAEJ,CAAE,MAAO92Q,GAET,CACF,cCjEA5kC,EAAOC,QALP,SAAkBC,GAChB,IAAIkD,SAAclD,EAClB,OAAgB,MAATA,IAA0B,UAARkD,GAA4B,YAARA,EAC/C,kECqBA,SAAS2nI,EAAQxtG,EAAMytG,GACrB,GAAmB,mBAARztG,GAAmC,MAAZytG,GAAuC,mBAAZA,EAC3D,MAAM,IAAIpjF,UAhDQ,uBAkDpB,IAAIqjF,EAAW,WACb,IAAI5mI,EAAOzC,UACPW,EAAMyoI,EAAWA,EAAShgI,MAAMnH,KAAMQ,GAAQA,EAAK,GACnDmiB,EAAQykH,EAASzkH,MAErB,GAAIA,EAAMlN,IAAI/W,GACZ,OAAOikB,EAAMtR,IAAI3S,GAEnB,IAAI/B,EAAS+8B,EAAKvyB,MAAMnH,KAAMQ,GAE9B,OADA4mI,EAASzkH,MAAQA,EAAMhkB,IAAID,EAAK/B,IAAWgmB,EACpChmB,CACT,EAEA,OADAyqI,EAASzkH,MAAQ,IAAKukH,EAAQvyG,OAAS,KAChCyyG,CACT,CAGAF,EAAQvyG,MAAQ,IAEhB,mCCvEAx4B,EAAOC,QAAU+8C,GAAOyW,mBAAmBzW,GAAKlhB,QAAQ,YAAY4B,GAAK,IAAIA,EAAEyT,WAAW,GAAGvxC,SAAS,IAAI23C,0GCe1G,QAJA,SAAkBha,EAAMuf,GACtB,OAAO,QAAY,OAASvf,EAAMuf,EAAO,KAAWvf,EAAO,GAC7D,8ECSA,MAAMlpB,GAAerB,EAAAA,EAAAA,QAAO,CAE1B,CAAC4oS,EAAAA,KAAU,EACX,CAAC1jK,EAAAA,IAAiB,EAGlB,CAACJ,EAAAA,KAAyB,EAC1B,CAAC+jK,EAAAA,IAAgB,GACjB,CAACvjK,EAAAA,IAAc,CAAC,EAChB,CAACS,EAAAA,IAAa,EAGd,CAAC+iK,EAAAA,IAAW,GACZ,CAACC,EAAAA,KAAmB,EACpB,CAACC,EAAAA,IAA0B,IAuC7B,EApCA,SAAsBtoS,EAAQW,EAActR,GAC1C,OAAQA,EAAOK,MACb,KAAKy0I,EAAAA,GACH,OAAOnkI,EAAMlR,IAAIs1I,EAAAA,GAAwB/0I,EAAO+0I,EAAAA,KAGlD,KAAKJ,EAAAA,GACH,OAAOhkI,EAAMlR,IAAIo5S,EAAAA,GAAS74S,EAAO64S,EAAAA,KACnC,KAAK3jK,EAAAA,GACH,OAAOvkI,EAAMlR,IAAI01I,EAAAA,GAAgBn1I,EAAOm1I,EAAAA,KAG1C,KAAKG,EAAAA,GACH,OAAO3kI,EAAMlR,IAAI81I,EAAAA,IAAatlI,EAAAA,EAAAA,QAAOjQ,EAAOq1I,aAC9C,KAAK6jK,EAAAA,GACH,OAAOvoS,EAAMlR,IAAIq5S,EAAAA,IAAe7oS,EAAAA,EAAAA,QAAOjQ,EAAO84S,EAAAA,MAGhD,KAAK/iK,EAAAA,GACH,OAAOplI,EAAMlR,IAAIu2I,EAAAA,GAAYh2I,EAAOg2I,EAAAA,KAGtC,KAAKmjK,EAAAA,GACH,OAAOxoS,EAAMlR,IAAIs5S,EAAAA,IAAU9oS,EAAAA,EAAAA,QAAOjQ,EAAO+4S,EAAAA,MAC3C,KAAKK,EAAAA,GACH,OAAOzoS,EAAMlR,IAAIu5S,EAAAA,GAAkBh5S,EAAOg5S,EAAAA,KAC5C,KAAKK,EAAAA,GACH,OAAO1oS,EAAMlR,IACXw5S,EAAAA,GACAj5S,EAAOi5S,EAAAA,KAEX,QACE,OAAOtoS,EAEb,kDC1EO,MAAM8B,EAA2B,0DCExC,IAAI+qH,EAAgB,EAAQ,QACxB87K,EAAyB,EAAQ,QAErCr8S,EAAOC,QAAU,SAAUk/D,GACzB,OAAOohE,EAAc87K,EAAuBl9O,GAC9C,2BCKQ,SAAWriD,GAAU,aAIzB,SAASwxQ,EAAoB1uQ,EAAQs7F,EAAe34G,EAAK44G,GACrD,IAAIj+F,EAAS,CACT8B,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,EAAS,QAASA,EAAS,UAChCilB,EAAG,CAAC,aAAc,eAClBvlB,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,EAAS,UAAWA,EAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAErC,OAAOs7F,EAAgBh+F,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,EACxD,CAEWua,EAAOC,aAAa,QAAS,CACpCC,OAAQ,qFAAqF/b,MACzF,KAEJmc,YACI,6DAA6Dnc,MAAM,KACvEoc,kBAAkB,EAClBC,SACI,8DAA8Drc,MAC1D,KAERsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJE,IAAK,qBACLE,KAAM,4BAEVE,SAAU,CACNC,QAAS,sBACTM,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNpU,EAAG,oBACHqU,GAAI,cACJC,EAAGsvQ,EACHrvQ,GAAI,aACJC,EAAGovQ,EACHnvQ,GAAI,aACJC,EAAGkvQ,EACHjvQ,GAAIivQ,EACJzpP,EAAGypP,EACHpjK,GAAI,YACJ5rG,EAAGgvQ,EACH/uQ,GAAI+uQ,EACJ9uQ,EAAG8uQ,EACH7uQ,GAAI6uQ,GAER5uQ,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhFyCC,CAAQ,EAAQ,wLCR1D,MAAMqsR,EAAiB/sS,OAAOC,UAAUG,SASxC,SAAS08B,EAAQggR,GACf,OAAQ/P,EAAensS,KAAKk8S,IAC1B,IAAK,iBACL,IAAK,qBACL,IAAK,wBACH,OAAO,EACT,QACE,OAAOC,EAAaD,EAAK36S,OAE/B,CAQA,SAAS66S,EAAUF,EAAK9gS,GACtB,OAAO+wR,EAAensS,KAAKk8S,KAAS,WAAW9gS,IACjD,CASA,SAASihS,EAAaH,GACpB,OAAOE,EAAUF,EAAK,aACxB,CASA,SAASI,EAAWJ,GAClB,OAAOE,EAAUF,EAAK,WACxB,CASA,SAASK,EAAeL,GACtB,OAAOE,EAAUF,EAAK,eACxB,CASA,SAASnjS,EAASmjS,GAChB,OAAOE,EAAUF,EAAK,SACxB,CASA,SAASM,EAAsBN,GAC7B,MACiB,iBAARA,GACC,OAARA,GACA,+BAAgCA,GAChC,+BAAgCA,CAEpC,CASA,SAASO,EAAYP,GACnB,OAAe,OAARA,GAAgBM,EAAsBN,IAAwB,iBAARA,GAAmC,mBAARA,CAC1F,CASA,SAASn5S,EAAcm5S,GACrB,OAAOE,EAAUF,EAAK,SACxB,CASA,SAASQ,EAAQR,GACf,MAAwB,oBAAV1+H,OAAyB2+H,EAAaD,EAAK1+H,MAC3D,CASA,SAASm/H,EAAUT,GACjB,MAA0B,oBAAZr8K,SAA2Bs8K,EAAaD,EAAKr8K,QAC7D,CASA,SAAS+8K,EAASV,GAChB,OAAOE,EAAUF,EAAK,SACxB,CAMA,SAASW,EAAWX,GAElB,OAAOp4R,QAAQo4R,GAAOA,EAAI9zS,MAA4B,mBAAb8zS,EAAI9zS,KAC/C,CASA,SAAS00S,EAAiBZ,GACxB,OAAOn5S,EAAcm5S,IAAQ,gBAAiBA,GAAO,mBAAoBA,GAAO,oBAAqBA,CACvG,CAUA,SAASC,EAAaD,EAAK1oR,GACzB,IACE,OAAO0oR,aAAe1oR,CACxB,CAAE,MAAOjL,GACP,OAAO,CACT,CACF,CAQA,SAASw0R,EAAeb,GAEtB,QAAyB,iBAARA,GAA4B,OAARA,IAAiB,EAAOc,UAAW,EAAOC,OACjF,oBC/LAr9S,EAAOC,QAAU,IAA0B,qECC3C,IAAIq9S,EAAa,EAAQ,QACrBt+O,EAAc,EAAQ,QAE1Bh/D,EAAOC,QAAU,SAAU8K,GAIzB,GAAuB,aAAnBuyS,EAAWvyS,GAAoB,OAAOi0D,EAAYj0D,EACxD,kECJe,SAASwyS,EAAkBjtP,GACxC,MAAOktP,EAAmBC,IAAwB,IAAAthN,UAAS,MA0B3D,MAAO,EAzBgB,IAAAv6B,cAAY,CAAC87O,EAAsBjwS,EAAM2iE,KAC9D,MAAMutO,EAA0BH,QAA6DA,EAAoBE,EAE3GE,EAAa98S,KAAK6+B,IAAIg+Q,GAA2B,EAAGD,GACpDG,EAAW/8S,KAAKmrB,IAAI0xR,GAA2B,EAAGD,GAClDI,EAAYrwS,EAAKlG,MAAMq2S,EAAYC,EAAW,GAAGj5S,KAAIu0D,GAAQ7I,EAAO6I,KACpE4kP,EAAiBD,EAAU73S,MAAK+3S,IAAa5tO,EAAa92D,IAAI0kS,KAC9DC,EAAc,GAapB,OAZAH,EAAUz7S,SAAQ82D,IACZ4kP,GACG3tO,EAAa92D,IAAI6/C,IACpB8kP,EAAYv4S,KAAKyzD,GAEnBiX,EAAat3D,IAAIqgD,KAEjBiX,EAAavtE,OAAOs2D,GACpB8kP,EAAYv4S,KAAKyzD,GACnB,IAEFskP,EAAqBM,EAAiBF,EAAW,MAC1CI,CAAW,GACjB,CAACT,IAC4BpgQ,IAC9BqgQ,EAAqBrgQ,EAAI,EAG7B,kDCjCO,MAAM8gQ,EAAqBC,GAC3BA,EAGuB,mBAAdA,EAA2BA,IAAcA,EAF9C,oGCAX,SAASC,IAAY,CACrB,MAAMC,EAAgC,gBAAoB,CACxDvlS,IAAKslS,EACLhpS,OAAQgpS,IAEH,SAASE,EAAYC,GAC1B,MAAMC,EAAY,aAAiBH,GAC7BI,EAAc,WAUpB,OATiB,QAASr5R,IACxB,GAAIA,EAAK,CACP,MAAMs5R,EAAkBH,EAAgBn5R,EAAI4nD,cAAcuxO,GAAiBn5R,EAC3Eo5R,EAAU1lS,IAAI4lS,GACdD,EAAY91S,QAAU+1S,CACxB,MACEF,EAAUppS,OAAOqpS,EAAY91S,QAC/B,GAGJ,2BCXQ,SAAWmU,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,0FAA0F/b,MAC9F,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,yDAAyDrc,MAC/D,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,wBAAwBvc,MAAM,KAC3Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJE,IAAK,qBACLE,KAAM,6BAEVE,SAAU,CACNC,QAAS,oBACTE,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,mBACNpU,EAAG,gBACHqU,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAERC,uBAAwB,UACxBC,QAAS,SAAUC,GACf,OAAOA,CACX,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7DyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,2HCGvC4c,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,wMAAyM,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2FAA2F,MAAQ,GAAG,SAAW,yCAAyC,eAAiB,CAAC,6QAA6Q,WAAa,MAEntB,4BCPA,IAAI4tS,EAAU,EAAQ,QAClB30S,EAAO,EAAQ,QAcnBhK,EAAOC,QAJP,SAAoBwnB,EAAQshD,GAC1B,OAAOthD,GAAUk3R,EAAQl3R,EAAQshD,EAAU/+D,EAC7C,iECZe,SAAS40S,EAAejnS,EAAOknS,GAC5C,OAAO,IAAa36S,QAAO,CAACogB,EAAM4xG,KAChC,MAAM4oL,EAAannS,EAAM,GAAGu+G,MACtB6oL,EAAmBpnS,EAAM,GAAGu+G,MAC5B8oL,EAAYrnS,EAAM,GAAGu+G,MACrB9C,EAAYz7G,EAAM,GAAGu+G,MAC3B,OAAO12H,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGyL,GAAOu6R,EAAO3oL,EAAU,CAC7D4oL,aACAC,mBACAC,YACA5rL,cACC,GACF,CAAC,EACN,uECdA,IAAI0X,EAAe,EAAQ,QAyB3B9qI,EAAOC,QAbP,SAAsBsC,EAAKrC,GACzB,IAAIuN,EAAO5J,KAAKwc,SACZ/I,EAAQwzH,EAAar9H,EAAMlL,GAQ/B,OANI+U,EAAQ,KACRzT,KAAKi1B,KACPrrB,EAAK/H,KAAK,CAACnD,EAAKrC,KAEhBuN,EAAK6J,GAAO,GAAKpX,EAEZ2D,IACT,4DCrBA,MAAMo7S,EAAsB,IAoC5B,SAASC,EAAcC,EAAQC,EAAct3R,EAAMD,KAAKC,OACtD,OARF,SAAuBq3R,EAAQC,GAC7B,OAAOD,EAAOC,IAAiBD,EAAOrkQ,KAAO,CAC/C,CAMSukQ,CAAcF,EAAQC,GAAgBt3R,CAC/C,CAOA,SAASw3R,EACPH,GACA,WAAElrN,EAAU,QAAEuF,GACd1xE,EAAMD,KAAKC,OAEX,MAAMy3R,EAAoB,IACrBJ,GAKCK,EAAkBhmN,GAAWA,EAAQ,wBACrCimN,EAAmBjmN,GAAWA,EAAQ,eAE5C,GAAIgmN,EAeF,IAAK,MAAM5kR,KAAS4kR,EAAgBzjR,OAAO96B,MAAM,KAAM,CACrD,MAAOw7P,EAAYijD,EAAY,CAAE,CAAElkN,GAAc5gE,EAAM35B,MAAM,IAAK,GAC5D0+S,EAAcl2Q,SAASgzN,EAAY,IACnC3sI,EAAmD,KAAzCr1F,MAAMklR,GAA6B,GAAdA,GACrC,GAAKD,EAGH,IAAK,MAAME,KAAYF,EAAWz+S,MAAM,KACrB,kBAAb2+S,GAEGpkN,IAAcA,EAAWv6F,MAAM,KAAKmZ,SAAS,YAIlDmlS,EAAkBK,GAAY93R,EAAMgoG,QATxCyvL,EAAkBzkQ,IAAMhzB,EAAMgoG,CAalC,MACS2vL,EACTF,EAAkBzkQ,IAAMhzB,EAtF5B,SAA+B+5H,EAAQ/5H,EAAMD,KAAKC,OAChD,MAAM63R,EAAcl2Q,SAAS,GAAGo4G,IAAU,IAC1C,IAAKpnH,MAAMklR,GACT,OAAqB,IAAdA,EAGT,MAAME,EAAah4R,KAAKue,MAAM,GAAGy7G,KACjC,OAAKpnH,MAAMolR,GAIJZ,EAHEY,EAAa/3R,CAIxB,CA0EkCg4R,CAAsBL,EAAkB33R,GAC9C,MAAfmsE,IACTsrN,EAAkBzkQ,IAAMhzB,EAAM,KAGhC,OAAOy3R,CACT,iCC9FA,IAAgCv8S,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFc,EAAQ,UAEDA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,oBCZjBxlB,EAAOC,QAAU,IAA0B,qECQ3C,IAAgC+C,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFgB,EAAQ,UAEHA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,oBCZjBxlB,EAAOC,QAAU,IAA0B,kHCEpC,SAAS8/S,GAAgB,KAC9BvlN,EAAI,UACJO,EAAS,SACTt/E,IAEA,MAAMvb,GAAQ,IAAA4uD,UAAQ,KAAM,CAC1B0rC,OACAO,eACE,CAACP,EAAMO,IACX,OAAO,IAAAh0E,eAAc,KAAY6F,SAAU,CACzC1sB,SACCub,EACL,qFCmDA,SAASukS,EACPC,EACAj9S,GAEA,MAAMw2F,EA0GR,SAA8BA,GAC5B,MAAMh5F,EAAS,CAAC,EAMhB,OAJAg5F,EAAQn3F,SAAQ,CAACnC,EAAOqC,KACtB/B,EAAO+B,GAAOrC,CAAK,IAGdM,CACT,CAlHkB0/S,CAAqBl9S,EAAIw2F,SACzC,IAAIqzK,EAEJ,IACE,MAAMszC,EAAe3mN,EAAQymN,IAAiBzmN,EAAQymN,EAAa/5Q,qBAAkBnmC,EAEjFogT,IACFtzC,EAAUuzC,EAAmBD,GAEjC,CAAE,MAAO5/S,GACP,KAAe,KAAOyuC,IAAI,yCAAyCixQ,IACrE,CAEA,MAAO,CAACzmN,EAASqzK,EACnB,CA0DA,SAASwzC,EAA4B7mN,GACnC,GAAIA,EAAS,CACX,MAAM+6I,EAAgB/6I,EAAQ,mBAAqBA,EAAQ,kBAE3D,GAAI+6I,EACF,OAAO9qM,SAAS8qM,EAAe,GAEnC,CAGF,CAQA,SAAS6rE,EAAmBD,GAC1B,OAAOA,EAAal/S,MAAM,MAAMiD,QAAO,CAACy6D,EAAK2hP,KAC3C,MAAO/9S,EAAKrC,GAASogT,EAAOr/S,MAAM,KAIlC,OAHIsB,GAAOrC,IACTy+D,EAAIp8D,GAAOrC,GAENy+D,CAAG,GACT,CAAC,EACN,CA2IA,SAAS4hP,EAAuB5tS,EAAS1C,EAAQopC,GAC/C,OA3EF,SACEmnQ,EACAvwS,GAEA,OAAOuwS,EAAyBv6S,MAAMyxC,GACf,iBAAVA,EACFA,IAAUznC,EAGZA,GAAUynC,EAAM,IAAMznC,GAAUynC,EAAM,IAEjD,CAiEI+oQ,CAAuB9tS,EAAQ6tS,yBAA0BvwS,KA9F3DywS,EA+F2B/tS,EAAQ+tS,qBA9FnC15R,EA8FyDqyB,EA5FlDqnQ,EAAqBz6S,MAAM06S,GACE,iBAAvBA,EACF35R,EAAO5M,SAASumS,GAGlBA,EAAmBlvR,KAAKzK,SAwF9B,QAAmBqyB,GAAK,WAjG7B,IACEqnQ,EACA15R,CAiGF,CAQA,SAAS45R,EAAanzS,GAGpB,MAAM+T,EAAU,uCAAuC/T,EAAKwC,SAEtD45C,EAAQ,CACZroC,UACAs6F,UAAW,CACT17F,OAAQ,CACN,CACEhd,KAAM,QACNlD,MAAOshB,KAIbgyN,QAAS,CACPn6L,IAAK5rC,EAAK4rC,IACVhoB,OAAQ5jB,EAAK4jB,OACbmoE,QAAS/rF,EAAKozS,eACdh0C,QAASp/P,EAAKqzS,gBAEhB5pN,SAAU,CACR9sF,SAAU,CACR22S,YAAatzS,EAAKwC,OAClBupF,QAAS/rF,EAAKuzS,gBACdn0C,QAASp/P,EAAKwzS,gBACdC,UAAWb,EAA4B5yS,EAAKuzS,oBAUlD,OALA,QAAsBn3P,EAAO,CAC3BzmD,KAAM,cACN6uQ,SAAS,IAGJpoN,CACT,CAiBA,SAASs3P,IACP,MAAM/+R,GAAS,UACf,QAAOA,GAAS8B,QAAQ9B,EAAOe,aAAai+R,eAC9C,EA/V8B,SAnBC,CAAEzuS,EAAU,CAAC,KAC1C,MAAMogQ,EAAW,CACfytC,yBAA0B,CAAC,CAAC,IAAK,MACjCE,qBAAsB,CAAC,SACpB/tS,GAGL,MAAO,CACL1G,KAVqB,aAWrB,KAAA2xB,CAAMxb,IAwOV,SAAoBA,EAAQzP,IACrB,YAIL,SAA+B88I,IAC7B,IAAI,YAAgBrtI,EAClB,OAGF,MAAM,SAAEhY,EAAQ,KAAE/F,GAASorJ,GACpB4xJ,EAAaC,GAAej9S,EAE9B+F,GAlOT,SACEuI,EACA0uS,EACAj3S,EACAk3S,GAEA,GAAIf,EAAuB5tS,EAASvI,EAAS6F,OAAQ7F,EAASivC,KAAM,CAClE,MAAMm6L,EA6TV,SAAqB6tE,EAAaC,GAChC,OAAKA,GAAeD,aAAuBrsE,SAOvCqsE,aAAuBrsE,SAAWqsE,EAAYE,SANzCF,EAUF,IAAIrsE,QAAQqsE,EAAaC,EAClC,CA1UoBE,CAAYH,EAAaC,GAEzC,IAAIT,EAAgBG,EAAiBF,EAAgBG,EAEjDE,OACDN,EAAgBC,GAAkBd,EAAoB,SAAUxsE,IAChEwtE,EAAiBC,GAAmBjB,EAAoB,aAAc51S,IAGzE,MAAMy/C,EAAQ+2P,EAAa,CACzBvnQ,IAAKm6L,EAAQn6L,IACbhoB,OAAQmiN,EAAQniN,OAChBphB,OAAQ7F,EAAS6F,OACjB4wS,iBACAG,kBACAF,iBACAG,qBAGF,OAAap3P,EACf,CACF,CA0MI43P,CAAsB9uS,EAAS0uS,EAAaj3S,EAAWk3S,EAAY,GAEvE,CA1PMI,CAAWt/R,EAAQ2wP,GA+PzB,SAAkB3wP,EAAQzP,GAClB,0BAIN,SAA6B88I,IAC3B,IAAI,YAAgBrtI,EAClB,OAGF,MAAM0pN,EAAMr8E,EAAYq8E,IAElB61E,EAAgB71E,EAAI,MAE1B,IAAK61E,EACH,OAGF,MAAM,OAAEtwR,EAAQuwR,gBAAiBpoN,GAAYmoN,EAE7C,KAxMJ,SACEhvS,EACAm5N,EACAz6M,EACAmoE,GAEA,GAAI+mN,EAAuB5tS,EAASm5N,EAAI77N,OAAQ67N,EAAImH,aAAc,CAChE,IAAI4tE,EAAgBI,EAAiBD,EAErC,GAAIG,IAAyB,CAC3B,IACE,MAAMhB,EAAer0E,EAAIuH,kBAAkB,eAAiBvH,EAAIuH,kBAAkB,oBAAiBtzO,EAE/FogT,IACFc,EAAkBb,EAAmBD,GAEzC,CAAE,MAAO5/S,GACP,KAAe,KAAOyuC,IAAI,kDAC5B,CAEA,IACEgyQ,EA8ER,SAAgCl1E,GAC9B,MAAMtyI,EAAUsyI,EAAIsH,wBAEpB,OAAK55I,EAIEA,EAAQv4F,MAAM,QAAQiD,QAAO,CAACy6D,EAAKo+J,KACxC,MAAOx6N,EAAKrC,GAAS68N,EAAK97N,MAAM,MAIhC,OAHIsB,GAAOrC,IACTy+D,EAAIp8D,GAAOrC,GAENy+D,CAAG,GACT,CAAC,GATK,CAAC,CAUZ,CA5F0BkjP,CAAuB/1E,EAC3C,CAAE,MAAOvrO,GACP,KAAe,KAAOyuC,IAAI,0CAC5B,CAEA6xQ,EAAiBrnN,CACnB,CAEA,MAAM3vC,EAAQ+2P,EAAa,CACzBvnQ,IAAKyyL,EAAImH,YACT5hN,SACAphB,OAAQ67N,EAAI77N,OACZ4wS,iBAEAG,kBACAC,qBAGF,OAAap3P,EACf,CACF,CAgKMi4P,CAAoBnvS,EAASm5N,EAAKz6M,EAAQmoE,EAC5C,CAAE,MAAOj5F,GACP,KAAe,KAAOqgC,KAAK,0DAA2DrgC,EACxF,IAEJ,CAxRM4xQ,CAAS/vP,EAAQ2wP,EACnB,EAEH,6GCpBUgvC,EAA0B,gBAAoB,CAAC,oFCAnD,SAASC,EAAc9rP,EAAWhM,EAAgB9K,GACvD,IAAI+K,EAAaD,EAIjB,OAHKC,GAAc/K,IACjB+K,EAAa,GAAG/+C,OAAO8qD,EAAW,KAAK9qD,OAAOg0C,IAEzC+K,CACT,CAGA,SAAS83P,EAAUp9Q,EAAGmW,GACpB,IAAIizB,EAAMppC,EAAE,OAAOz5B,OAAO4vC,EAAM,IAAM,IAAK,WACvC3pB,EAAS,SAASjmB,OAAO4vC,EAAM,MAAQ,QAC3C,GAAmB,iBAARizB,EAAkB,CAC3B,IAAI7uD,EAAIylB,EAAEmS,SAES,iBADnBi3B,EAAM7uD,EAAE46E,gBAAgB3oE,MAEtB48C,EAAM7uD,EAAE46B,KAAK3oB,GAEjB,CACA,OAAO48C,CACT,uCCpBA,QAA4B,QAAW,SAAUjnE,GAE/C,OADeA,EAAKyU,QAEtB,IAAG,SAAUmpB,EAAGl7B,GAEd,OADmBA,EAAMslD,YAE3B,ICEA,IAAIkzP,EAAgB,CAClB1gQ,MAAO,EACPJ,OAAQ,EACRzC,SAAU,SACVM,QAAS,QAEPkjQ,EAAc,CAChBljQ,QAAS,QAmIX,QAjIyB,cAAiB,SAAUlxC,EAAO8V,GACzD,IAAIqyC,EAAYnoD,EAAMmoD,UACpB16C,EAAYzN,EAAMyN,UAClBq/B,EAAQ9sC,EAAM8sC,MACds0B,EAAQphE,EAAMohE,MACdizO,EAASr0S,EAAMq0S,OACftwM,EAAS/jG,EAAM+jG,OACfjC,EAAW9hG,EAAM8hG,SACjBuD,EAAYrlG,EAAMqlG,UAClBtD,EAAU/hG,EAAM+hG,QAChBr0F,EAAW1N,EAAM0N,SACjB03F,EAAYplG,EAAMolG,UAClBkvM,EAAYt0S,EAAMs0S,UAClBhvM,EAActlG,EAAMslG,YACpByP,EAAc/0G,EAAM+0G,YACpBC,EAAYh1G,EAAMg1G,UAClBynK,EAAYz8Q,EAAMy8Q,UAClBj3M,EAAUxlE,EAAMwlE,QAChBgC,EAAcxnE,EAAMwnE,YACpB/zB,EAAQzzC,EAAMyzC,MACdJ,EAASrzC,EAAMqzC,OACfkhQ,EAAkBv0S,EAAMyuI,WACxB+lK,EAAcx0S,EAAMwlG,OAIpBivM,EADsB,aAAiBT,GACVU,MAC3B13C,GAAY,QAAcyf,EAAWg4B,GACrCE,GAAmB,IAAAjhP,UACnBkhP,GAAiB,IAAAlhP,UACrB,sBAA0B59C,GAAK,WAC7B,MAAO,CACL+zB,MAAO,WACL,IAAIgrQ,EACmD,QAAtDA,EAAwBF,EAAiB/5S,eAA+C,IAA1Bi6S,GAAoCA,EAAsBhrQ,MAAM,CAC7HirQ,eAAe,GAEnB,EACAC,aAAc,SAAsBn/S,GAClC,IACEwzC,EADcH,SACYG,cACxBxzC,GAAQwzC,IAAkBwrQ,EAAeh6S,QAC3C+5S,EAAiB/5S,QAAQivC,MAAM,CAC7BirQ,eAAe,IAEPl/S,GAAQwzC,IAAkBurQ,EAAiB/5S,SACrDg6S,EAAeh6S,QAAQivC,MAAM,CAC3BirQ,eAAe,GAGrB,EAEJ,IAGA,IAAIE,EAAe,CAAC,OACNhjT,IAAVyhD,IACFuhQ,EAAavhQ,MAAQA,QAERzhD,IAAXqhD,IACF2hQ,EAAa3hQ,OAASA,GAGxB,IAAI4hQ,EAAalxM,EAAsB,gBAAoB,MAAO,CAChEt2F,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,WAAYosP,aAAyD,EAASA,EAAgBxwM,QACzIj3D,OAAO,OAAc,CAAC,EAAG0nQ,aAAiD,EAASA,EAAYzwM,SAC9FA,GAAU,KACTmxM,EAAa9zO,EAAqB,gBAAoB,MAAO,CAC/D3zD,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,WAAYosP,aAAyD,EAASA,EAAgBzgK,QACzIhnG,OAAO,OAAc,CAAC,EAAG0nQ,aAAiD,EAASA,EAAY1gK,SACjF,gBAAoB,MAAO,CACzCrmI,UAAW,GAAGpQ,OAAO8qD,EAAW,UAChCnlD,GAAIqxS,GACHjzO,IAAU,KACT+zO,GAAc,IAAAp0P,UAAQ,WACxB,MAA0B,YAAtB,OAAQ+gD,IAAuC,OAAbA,EAC7BA,EAELA,EACK,CACLuD,UAAWA,QAA6CA,EAAyB,gBAAoB,OAAQ,CAC3G53F,UAAW,GAAGpQ,OAAO8qD,EAAW,eAI/B,CAAC,CACV,GAAG,CAAC25C,EAAUuD,EAAWl9C,IACrBitP,GAAY,EAAA9/L,EAAA,GAAU6/L,GAAa,GACnCE,EAA2C,YAAtB,OAAQvzM,IAA0BA,EAASr5C,SAChE6sP,EAAaxzM,EAAwB,gBAAoB,UAAU,OAAS,CAC9EzsG,KAAM,SACN49D,QAAS8uC,EACT,aAAc,SACbqzM,EAAW,CACZ3nS,UAAW,GAAGpQ,OAAO8qD,EAAW,UAChCM,SAAU4sP,IACRF,EAAY9vM,WAAa,KACzBvxD,EAAuB,gBAAoB,MAAO,CACpDrmC,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,YAAaosP,aAAyD,EAASA,EAAgBzgQ,SAC1IhH,MAAO0nQ,aAAiD,EAASA,EAAY1gQ,SAC5EwhQ,EAAYJ,EAAyB,gBAAoB,OAAO,OAAS,CAC1EznS,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,SAAUosP,aAAyD,EAASA,EAAgBtoQ,MACvIa,OAAO,QAAc,OAAc,CAAC,EAAGs4D,GAAYovM,aAAiD,EAASA,EAAYvoQ,OACxHqoQ,GAAY5mS,GAAWunS,GAC1B,OAAoB,gBAAoB,MAAO,CAC7CzgT,IAAK,iBACLqtE,KAAM,SACN,kBAAmBT,EAAQizO,EAAS,KACpC,aAAc,OACdv+R,IAAKknP,EACLlwN,OAAO,QAAc,OAAc,CAAC,EAAGA,GAAQkoQ,GAC/CvnS,UAAW,IAAW06C,EAAW16C,GACjCsnG,YAAaA,EACbC,UAAWA,GACG,gBAAoB,MAAO,CACzCl/F,IAAK6+R,EACLj3O,SAAU,EACV5wB,MAAOsnQ,GACO,gBAAoBmB,EAAc,CAChDt0P,aAAcukB,GAAWgC,GACxB89B,EAAcA,EAAYxxD,GAAWA,IAAwB,gBAAoB,MAAO,CACzF4pB,SAAU,EACV5nD,IAAK8+R,EACL9nQ,MAAOqnQ,IAEX,ICtIA,IAAIqB,EAAuB,cAAiB,SAAUx1S,EAAO8V,GAC3D,IAAIqyC,EAAYnoD,EAAMmoD,UACpBiZ,EAAQphE,EAAMohE,MACdt0B,EAAQ9sC,EAAM8sC,MACdr/B,EAAYzN,EAAMyN,UAClB+3D,EAAUxlE,EAAMwlE,QAChBgC,EAAcxnE,EAAMwnE,YACpBiuO,EAAiBz1S,EAAMy1S,eACvBr5P,EAAap8C,EAAMo8C,WACnBi4P,EAASr0S,EAAMq0S,OACflsO,EAAmBnoE,EAAMmoE,iBACzButO,EAAgB11S,EAAM01S,cACpBC,GAAY,IAAAjiP,UAGZ2S,EAAkB,aACpBC,GAAmB,OAAeD,EAAiB,GACnDouB,EAAkBnuB,EAAiB,GACnCsvO,EAAqBtvO,EAAiB,GACpC0uO,EAAe,CAAC,EAIpB,SAASa,IACP,IHXmBp4K,EACjBtM,EACAx6F,EAIA+pO,EACA5pO,EGIEg/Q,GHTFn/Q,EAAM,CACR45F,MAFEY,GADiBsM,EGWQk4K,EAAU/6S,SHVzBw6N,yBAED7kG,KACXtjF,IAAKkkF,EAAKlkF,KAGRnW,GADA4pO,EAAMjjI,EAAGvO,eACDC,aAAeuxI,EAAImvB,aAC/Bl5P,EAAI45F,MAAQ2jL,EAAUp9Q,GACtBH,EAAIsW,KAAOinQ,EAAUp9Q,GAAG,GACjBH,GGELi/Q,EAAmBF,IAAkBA,EAAc/lR,GAAK+lR,EAAcjkS,GAAK,GAAGpU,OAAOq4S,EAAc/lR,EAAImmR,EAAcvlL,KAAM,OAAOlzH,OAAOq4S,EAAcjkS,EAAIqkS,EAAc7oQ,IAAK,MAAQ,GACxL,CAGA,OATIwnD,IACFugN,EAAavgN,gBAAkBA,GAQb,gBAAoB,KAAW,CACjDjvB,QAASA,EACT2C,iBAAkBA,EAClB4tO,gBAAiBF,EACjBG,eAAgBH,EAChBruO,YAAaA,EACbprB,WAAYA,EACZ2qB,cAAe0uO,EACf3/R,IAAK6/R,IACJ,SAAU18S,EAAMg9S,GACjB,IAAI5tO,EAAkBpvE,EAAKwU,UACzB66D,EAAcrvE,EAAK6zC,MACrB,OAAoB,gBAAoB,GAAO,OAAS,CAAC,EAAG9sC,EAAO,CACjE8V,IAAKA,EACLsrD,MAAOA,EACPizO,OAAQA,EACRlsP,UAAWA,EACXs0N,UAAWw5B,EACXnpQ,OAAO,QAAc,QAAc,OAAc,CAAC,EAAGw7B,GAAcx7B,GAAQkoQ,GAC3EvnS,UAAW,IAAWA,EAAW46D,KAErC,GACF,IACAmtO,EAAQpiP,YAAc,UACtB,UCnCA,EAtBW,SAAcpzD,GACvB,IAAImoD,EAAYnoD,EAAMmoD,UACpBrb,EAAQ9sC,EAAM8sC,MACd04B,EAAUxlE,EAAMwlE,QAChB0wO,EAAYl2S,EAAMk2S,UAClB95P,EAAap8C,EAAMo8C,WACnB3uC,EAAYzN,EAAMyN,UACpB,OAAoB,gBAAoB,KAAW,CACjDjZ,IAAK,OACLgxE,QAASA,EACTppB,WAAYA,EACZ0qB,gBAAiB,GAAGzpE,OAAO8qD,EAAW,kBACrC,SAAUlvD,EAAM6c,GACjB,IAAIuyD,EAAkBpvE,EAAKwU,UACzB66D,EAAcrvE,EAAK6zC,MACrB,OAAoB,gBAAoB,OAAO,OAAS,CACtDh3B,IAAKA,EACLg3B,OAAO,QAAc,OAAc,CAAC,EAAGw7B,GAAcx7B,GACrDr/B,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,SAAUkgB,EAAiB56D,IACrEyoS,GACL,GACF,YC8KA,QA1La,SAAgBl2S,GAC3B,IAAIkoD,EAAmBloD,EAAMmoD,UAC3BA,OAAiC,IAArBD,EAA8B,YAAcA,EACxDzX,EAASzwC,EAAMywC,OACf0lQ,EAAiBn2S,EAAMwlE,QACvBA,OAA6B,IAAnB2wO,GAAoCA,EAC9CC,EAAkBp2S,EAAMglG,SACxBA,OAA+B,IAApBoxM,GAAoCA,EAC/CC,EAAwBr2S,EAAMulG,uBAC9BA,OAAmD,IAA1B8wM,GAA0CA,EACnEC,EAAYt2S,EAAMs2S,UAClBnxM,EAAgBnlG,EAAMmlG,cACtBoxM,EAAYv2S,EAAMu2S,UAClBx0M,EAAU/hG,EAAM+hG,QAChBy0M,EAAkBx2S,EAAMw2S,gBACxBtyN,EAAalkF,EAAMkkF,WACnB/nC,EAAiBn8C,EAAMm8C,eACvBqhO,EAAYx9Q,EAAMw9Q,UAClBi5B,EAAkBz2S,EAAM8hG,SACxBA,OAA+B,IAApB20M,GAAoCA,EAC/CC,EAAc12S,EAAMylG,KACpBA,OAAuB,IAAhBixM,GAAgCA,EACvC9wM,EAAqB5lG,EAAM4lG,mBAC3B+wM,EAAgB32S,EAAM22S,cACtBC,EAAsB52S,EAAM0lG,aAC5BA,OAAuC,IAAxBkxM,GAAwCA,EACvD1xM,EAAYllG,EAAMklG,UAClBgxM,EAAYl2S,EAAMk2S,UAClB9vO,EAAgBpmE,EAAMomE,cACtBmuO,EAAkBv0S,EAAMyuI,WACxB+lK,EAAcx0S,EAAMwlG,OAUlBqxM,GAA8B,IAAAnjP,UAC9BojP,GAAa,IAAApjP,UACbqjP,GAAa,IAAArjP,UACb2S,EAAkB,WAAeb,GACnCc,GAAmB,OAAeD,EAAiB,GACnD2wO,EAAkB1wO,EAAiB,GACnC2wO,EAAqB3wO,EAAiB,GAGpC+tO,GAAS,EAAA6C,EAAA,KAuCb,SAASC,EAAgB3kT,GACvBuvG,SAA0CA,EAAQvvG,EACpD,CAGA,IAAI4kT,GAAkB,IAAA1jP,SAAO,GACzB2jP,GAAoB,IAAA3jP,UAepB4jP,GAAiB,KACjB5xM,IACF4xM,GAAiB,SAAwB9kT,GACnC4kT,EAAgBx8S,QAClBw8S,EAAgBx8S,SAAU,EACjBk8S,EAAWl8S,UAAYpI,EAAEymB,QAClCk+R,EAAgB3kT,EAEpB,IAgBF,IAAAshE,YAAU,WACJ0R,IACFyxO,GAAmB,IApFhB,EAAA9O,EAAA,GAAS2O,EAAWl8S,QAASquC,SAASG,iBACzCytQ,EAA4Bj8S,QAAUquC,SAASG,eAsFnD,GAAG,CAACo8B,KAGJ,IAAA1R,YAAU,WACR,OAAO,WACLzV,aAAag5P,EAAkBz8S,QACjC,CACF,GAAG,IACH,IAAI2wD,IAAc,QAAc,QAAc,OAAc,CAC1D9a,OAAQA,GACP6lQ,GAAY9B,aAAiD,EAASA,EAAY+C,SAAU,CAAC,EAAG,CACjGlmR,QAAU2lR,EAA2B,KAAT,SAI9B,OAAoB,gBAAoB,OAAO,OAAS,CACtDvpS,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,SAAUie,KACpD,EAAAkvC,EAAA,GAAUt1G,EAAO,CAClBN,MAAM,KACU,gBAAoB,EAAM,CAC1CyoD,UAAWA,EACXqd,QAASigC,GAAQjgC,EACjBppB,WAAY63P,EAAc9rP,EAAWy9C,EAAoB+wM,GACzD7pQ,OAAO,QAAc,OAAc,CACjC2D,OAAQA,GACPy0D,GAAYsvM,aAAiD,EAASA,EAAY/uM,MACrFywM,UAAWA,EACXzoS,UAAW8mS,aAAyD,EAASA,EAAgB9uM,OAC9E,gBAAoB,OAAO,OAAS,CACnD/nC,UAAW,EACXoE,UAjDF,SAA0BtvE,GACxB,GAAIwyG,GAAYxyG,EAAE+xS,UAAY3mO,EAAA,EAAQK,IAGpC,OAFAzrE,EAAEg7C,uBACF2pQ,EAAgB3kT,GAKdgzE,GAAWhzE,EAAE+xS,UAAY3mO,EAAA,EAAQyhO,KACnC0X,EAAWn8S,QAAQm6S,cAAcviT,EAAEglT,SAEvC,EAuCE/pS,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,SAAUg9C,EAAeovM,aAAyD,EAASA,EAAgBgD,SACtJzhS,IAAKghS,EACL7jP,QAASqkP,GACTxqQ,MAAOye,IACNgrP,GAAyB,gBAAoB,GAAS,OAAS,CAAC,EAAGv2S,EAAO,CAC3E+0G,YA7EuB,WACvB12D,aAAag5P,EAAkBz8S,SAC/Bw8S,EAAgBx8S,SAAU,CAC5B,EA2EEo6G,UA1EqB,WACrBqiM,EAAkBz8S,QAAUsjD,YAAW,WACrCk5P,EAAgBx8S,SAAU,CAC5B,GACF,EAuEEkb,IAAKihS,EACLj1M,SAAUA,EACVuyM,OAAQA,EACRlsP,UAAWA,EACXqd,QAASA,GAAWwxO,EACpBj1M,QAASo1M,EACThvO,iBAvHF,SAAgCC,GAE9B,GAAIA,GATC,EAAA+/N,EAAA,GAAS2O,EAAWl8S,QAASquC,SAASG,gBAEM,QAA9CquQ,EAAsBV,EAAWn8S,eAA6C,IAAxB68S,GAAkCA,EAAoB5tQ,YASxG,CAGL,GADAotQ,GAAmB,GACfxxM,GAAQoxM,EAA4Bj8S,SAAW2qG,EAAwB,CACzE,IACEsxM,EAA4Bj8S,QAAQivC,MAAM,CACxCirQ,eAAe,GAEnB,CAAE,MAAOtiT,GAET,CACAqkT,EAA4Bj8S,QAAU,IACxC,CAGIo8S,IACF9yN,SAAgDA,IAEpD,CA9BF,IAEQuzN,EA6BNjB,SAA0DA,EAAgBpuO,EAC5E,EAgGEhsB,WAAY63P,EAAc9rP,EAAWhM,EAAgBqhO,OAEzD,ECxLA,IAAIk6B,EAAa,SAAoB13S,GACnC,IAAIwlE,EAAUxlE,EAAMwlE,QAClByd,EAAejjF,EAAMijF,aACrBzb,EAAcxnE,EAAMwnE,YACpBmwO,EAAwB33S,EAAMy1S,eAC9BA,OAA2C,IAA1BkC,GAA2CA,EAC5DC,EAAc53S,EAAMkkF,WACpBuwN,EAAWz0S,EAAMy0S,SACfpuO,EAAkB,WAAeb,GACnCc,GAAmB,OAAeD,EAAiB,GACnD2wO,EAAkB1wO,EAAiB,GACnC2wO,EAAqB3wO,EAAiB,GACpCuxO,EAAa,WAAc,WAC7B,MAAO,CACLnD,MAAOD,EAEX,GAAG,CAACA,IAQJ,OAPA,aAAgB,WACVjvO,GACFyxO,GAAmB,EAEvB,GAAG,CAACzxO,IAGCgC,IAAeiuO,GAAmBuB,EAGnB,gBAAoBhD,EAAWn1R,SAAU,CAC3D1sB,MAAO0lT,GACO,gBAAoB,IAAQ,CAC1CjwO,KAAMpC,GAAWgC,GAAewvO,EAChCt4B,aAAa,EACbz7L,aAAcA,EACd60N,SAAUtyO,GAAWwxO,GACP,gBAAoB,GAAQ,OAAS,CAAC,EAAGh3S,EAAO,CAC9Dy1S,eAAgBA,EAChBvxN,WAAY,WACV0zN,SAAkDA,IAClDX,GAAmB,EACrB,OAdO,IAgBX,EACAS,EAAWtkP,YAAc,SACzB,MCvDA,EDuDA,kDE1CA,MAAM2kP,EAAW/9S,IACf,IAAIg2F,GAAS,EACb,OAAQ95F,IACD85F,IACHh2F,EAAG9D,GACH85F,GAAS,EACX,CACD,oGCfH,SAASgoN,EAAY73F,EAAU3wL,EAAM4wL,EAAQ63F,GAC3C,MAAMp3S,EAAQ,CACZs/M,WACAhxL,SAAmB,gBAATK,EAAyB,KAAmBA,EACtD0oR,QAAQ,GAWV,YARelmT,IAAXouN,IACFv/M,EAAMu/M,OAASA,QAGHpuN,IAAVimT,IACFp3S,EAAMo3S,MAAQA,GAGTp3S,CACT,CAKA,MAAMs3S,EAAsB,yCAGtBC,EACJ,6IAEIC,EAAkB,gCA6ClBC,EACJ,uIACIC,EAAiB,gDA8DjBC,EAA0B,CArEF,CAvEN,GAoCIxpF,IAE1B,MAAMypF,EAAYN,EAAoB7gT,KAAK03N,GAE3C,GAAIypF,EAAW,CACb,MAAO,CAAEt4F,EAAU6O,EAAM0pF,GAAOD,EAChC,OAAOT,EAAY73F,EAAU,MAAmB6O,GAAO0pF,EACzD,CAEA,MAAMn0P,EAAQ6zP,EAAY9gT,KAAK03N,GAE/B,GAAIzqK,EAAO,CAGT,GAFeA,EAAM,IAAmC,IAA7BA,EAAM,GAAGtwB,QAAQ,QAEhC,CACV,MAAM0kR,EAAWN,EAAgB/gT,KAAKitD,EAAM,IAExCo0P,IAEFp0P,EAAM,GAAKo0P,EAAS,GACpBp0P,EAAM,GAAKo0P,EAAS,GACpBp0P,EAAM,GAAKo0P,EAAS,GAExB,CAIA,MAAOnpR,EAAM2wL,GAAYy4F,EAA8Br0P,EAAM,IAAM,KAAkBA,EAAM,IAE3F,OAAOyzP,EAAY73F,EAAU3wL,EAAM+0B,EAAM,IAAMA,EAAM,QAAKvyD,EAAWuyD,EAAM,IAAMA,EAAM,QAAKvyD,EAC9F,CAEM,GAuCqB,CAzGN,GA8ETg9N,IACZ,MAAMzqK,EAAQ+zP,EAAWhhT,KAAK03N,GAE9B,GAAIzqK,EAAO,CAET,GADeA,EAAM,IAAMA,EAAM,GAAGtwB,QAAQ,YAAc,EAC9C,CACV,MAAM0kR,EAAWJ,EAAejhT,KAAKitD,EAAM,IAEvCo0P,IAEFp0P,EAAM,GAAKA,EAAM,IAAM,OACvBA,EAAM,GAAKo0P,EAAS,GACpBp0P,EAAM,GAAKo0P,EAAS,GACpBp0P,EAAM,GAAK,GAEf,CAEA,IAAI47J,EAAW57J,EAAM,GACjB/0B,EAAO+0B,EAAM,IAAM,KAGvB,OAFC/0B,EAAM2wL,GAAYy4F,EAA8BppR,EAAM2wL,GAEhD63F,EAAY73F,EAAU3wL,EAAM+0B,EAAM,IAAMA,EAAM,QAAKvyD,EAAWuyD,EAAM,IAAMA,EAAM,QAAKvyD,EAC9F,CAEM,IA4DF4mT,IAtBqB,WAAqBJ,GAsBV,CAAChpR,EAAM2wL,KAC3C,MAAM04F,GAA0D,IAAtCrpR,EAAKyE,QAAQ,oBACjC6kR,GAAiE,IAA1CtpR,EAAKyE,QAAQ,wBAE1C,OAAO4kR,GAAqBC,EACxB,EACyB,IAAvBtpR,EAAKyE,QAAQ,KAAezE,EAAKt8B,MAAM,KAAK,GAAO,KACnD2lT,EAAoB,oBAAoB14F,IAAa,wBAAwBA,KAE/E,CAAC3wL,EAAM2wL,EAAS,oKCjLf,MAAM44F,EAAe98S,IAC1B,MAAMpF,EAAM,IAAI5C,IAIhB,OAHAgI,EAAK3H,SAAQ,CAACE,EAAK+U,KACjB1S,EAAIpC,IAAID,EAAK+U,EAAM,IAEd1S,CAAG,2ECHZ,MCDMmiT,EAAa,GACnB,SAASC,EAAWh9S,EAAMi9S,GACxB,MAAMC,EAAel9S,EAAK2M,QAAOpU,GAAO0kT,EAAS3tS,IAAI/W,KACrD,OAAOyH,EAAKhG,SAAWkjT,EAAaljT,OAASgG,EAAOk9S,CACtD,CACA,SAASC,EAAYn9S,GACnB,OAAOmI,MAAMwqB,KAAK3yB,GAAM9I,KAAK,IAC/B,yFCAA,MAAMkmT,EAAWr5S,IACf,MAAM,aACJs5S,EAAY,WACZC,EAAU,KACVnuP,EAAI,QACJouP,EAAO,SACP/wP,EAAQ,UACRN,EAAS,QACT8K,EAAO,SACPwmP,EAAQ,WACRC,GACE15S,EACEyN,EAAY,IAAW,GAAG06C,iBAA0B,CACxD,CAAC,GAAGA,2BAAoCM,GAAY2C,EAAK3C,SACzD,CAAC,GAAGN,0BAAmCqxP,IAEzC,IAAIp4O,EACwB,iBAAjBk4O,GAAqD,iBAAjBA,IAC7Cl4O,EAAQ3oE,OAAO6gT,IAEjB,MAAOprK,IAAiB,QAAU,WAAY,IAAcj+B,UACtD0pM,EAAU,CACdlsS,YACA2zD,SAEIw4O,EAAyB,gBAAoB,OAAQ,CACzDnsS,UAAW,GAAG06C,uBACboxP,GACH,OAAIG,EACkB,gBAAoB,KAAMjoT,OAAOqZ,OAAO,CAAC,EAAG6uS,GAAUC,EAAwB,gBAAoB,SAAU,CAC9HvkT,KAAM,SACNozD,SAAUA,GAAY2C,EAAK3C,SAC3Bh7C,UAAW,GAAG06C,wBACd,aAAc+lF,aAAqD,EAASA,EAAc7mI,OAC1F4rD,QAAS,IAAMwmP,aAA2C,EAASA,EAASruP,IAC9D,gBAAoByuP,EAAA,EAAgB,SAGtDF,EAAQ1mP,QAAUxK,GAAY2C,EAAK3C,cAAWz2D,EAAY8pD,GAASmX,EAAQ7H,EAAMtP,GAC7D,gBAAoB,KAAMrqD,OAAOqZ,OAAO,CAAC,EAAG6uS,GAAuB,gBAAoB,IAAU,CACnHlsS,UAAW,GAAG06C,aACdqxP,QAASA,EACT/wP,SAAUA,GAAY2C,EAAK3C,WACzBmxP,GAAU,EAEhB,EAA4B,OAAWP,GC9C1BS,EAAY,CAAC,eAAgB,cAAe,eASnDC,EAAmB,CAAC/5S,EAAO8V,KAC/B,MAAM,UACJqyC,EAAS,oBACT6xP,EAAmB,aACnB33O,EACA5Z,SAAUwxP,EAAc,WACxBP,EAAU,WACVQ,EAAU,SACVC,EAAQ,aACRC,EAAY,aACZC,GACEr6S,GACGpF,EAAS0/S,GAAc,WAAe,GACvCC,EAAmB,WAAc,IAChCL,EAtBeA,IAMfzoT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EALV,CACxBoiB,QAAQ,EACRstR,iBAAiB,EACjBC,eAAe,IAE0CP,GAoBlDQ,CADyC,iBAAfR,EAA0BA,EAAa,CAAC,GAFhE,MAIR,CAACA,KACGS,EAAUC,IAAe,EAAAttO,EAAA,GAAe,GAAI,CACjDn7E,MAAOooT,aAA2D,EAASA,EAAiBI,WAE9F,aAAgB,KACd,GAAIJ,EAAkB,CACpB,MAAMM,EAAe9nT,KAAKkmD,KAAK+gQ,EAAoB/jT,OAAS0kT,GAC5DL,EAAWvnT,KAAK6+B,IAAIh3B,EAASigT,GAC/B,IACC,CAACb,EAAqBO,EAAkBI,IAC3C,MAAMjpO,EAAkB,CAACtmB,EAAM54D,KAC7B4nT,EAAahvP,EAAK52D,KAAM6tE,EAAah2D,SAAS++C,EAAK52D,KAAMhC,EAAE,EAEvDinT,EAAWruP,IACfivP,SAA4DA,EAAa,CAACjvP,EAAK52D,KAAK,EAShFsmT,EAAgB,WAAc,IACbP,EAAmBP,EAAoBxgT,OAAOoB,EAAU,GAAK+/S,EAAU//S,EAAU+/S,GAAYX,GAEjH,CAACp/S,EAASo/S,EAAqBO,EAAkBI,IACpD,sBAA0B7kS,GAAK,KAAM,CACnCmc,MAAO6oR,MAET,MAAMC,EAAiBR,EAAiC,gBAAoB,IAAY,CACtFxvR,KAAM,QACN09B,SAAUwxP,EACV/sR,OAAQqtR,EAAiBrtR,OACzBytR,SAAUA,EACVF,cAAeF,EAAiBE,cAChCD,gBAAiBD,EAAiBC,gBAClC/sS,UAAW,GAAG06C,eACdy9F,MAAOo0J,EAAoB/jT,OAC3B2E,QAASA,EACTkoD,SAxBmBslE,IACnBkyL,EAAWlyL,EAAI,EAwBf4yL,iBAtBmB,CAAC5yL,EAAKr9F,KACzBuvR,EAAWlyL,GACXwyL,EAAY7vR,EAAK,IAqBb,KACAwuF,EAAM,IAAW,GAAGpxD,YAAqB,CAC7C,CAAC,GAAGA,yBAAkCuxP,IAExC,OAAoB,gBAAoB,WAAgB,KAAmB,gBAAoB,KAAM,CACnGjsS,UAAW8rG,EACX4gM,SAAUA,IACRW,GAAiB,IAAIjkT,KAAIoC,IAC3B,IAAI,WACFsgT,EAAU,aACVD,EAAY,KACZluP,GACEnyD,EACJ,OAAoB,gBAAoB,EAAU,CAChDzE,IAAK42D,EAAK52D,IACV42D,KAAMA,EACNkuP,aAAcA,EACdC,WAAYA,EACZpxP,UAAWA,EACXuxP,WAAYA,EACZzmP,QAASye,EACT+nO,SAAUA,EACVD,QAASn3O,EAAah2D,SAAS++C,EAAK52D,KACpCi0D,SAAUwxP,GAAkB7uP,EAAK3C,UACjC,KACCsyP,EAAe,EAKtB,EAA4B,aAAiBhB,+BC1E7C,QA5Be/5S,IACb,MAAM,YACJyuG,EAAc,GAAE,MAChBt8G,EAAK,UACLg2D,EAAS,SACTM,EAAQ,SACR3F,EAAQ,YACRm4P,GACEj7S,EACEopD,EAAe,eAAkB52D,IACrCswD,SAAoDA,EAAStwD,GACtC,KAAnBA,EAAEymB,OAAO9mB,QACX8oT,SAA0DA,IAC5D,GACC,CAACn4P,IACJ,OAAoB,gBAAoB,IAAO,CAC7C2rD,YAAaA,EACbhhG,UAAW06C,EACXh2D,MAAOA,EACP2wD,SAAUsG,EACVX,SAAUA,EACV4jF,YAAY,EACZr7G,OAAqB,gBAAoBioF,EAAA,EAAgB,OACzD,ECjBEiiM,EAAgB,IAAM,KAI5B,SAASC,EAAmBlpR,GAC1B,OAAOA,EAAMrpB,QAAOlJ,IAASA,EAAK+oD,WAAU5xD,KAAI6I,GAAQA,EAAKlL,KAC/D,CAwPA,QAtPqBwL,IACnB,MAAM,UACJmoD,EAAS,WACTizP,EAAa,GAAE,UACfC,EAAY,GAAE,YACdC,EAAW,SACX7yP,EAAQ,WACRitF,GAAa,EAAK,MAClB5oG,EAAK,kBACLqjE,EAAiB,gBACjBorM,EAAe,UACfrsM,EAAS,YACTsB,EAAW,cACXF,EAAa,aACbnB,EAAY,UACZsB,EAAS,cACTF,EAAa,cACbirM,GAAgB,EAAI,WACpB9B,EAAU,WACVQ,EAAU,UACV77Q,EAAS,UACTgyE,EAAS,SACTD,EAAQ,eACRqrM,EAAc,eACdC,EAAc,OACd33M,EAAM,WACN43M,EAAU,gBACVC,EAAe,aACfvB,EAAY,aACZwB,EAAY,YACZZ,EAAW,aACXa,EAAY,OACZ/kS,EAASmkS,GACPl7S,GACG+7S,EAAaC,IAAkB,IAAA5tN,UAAS,IACzC6tN,GAAc,IAAAvoP,QAAO,CAAC,GACtBwoP,EAAuB1pT,IAC3BwpT,EAAexpT,EAAEymB,OAAO9mB,OACxB0pT,EAAarpT,EAAE,EAEX2pT,EAAsB,KAC1BH,EAAe,IACff,GAAa,EAiCTmB,GAAqB,IAAAr7P,UAAQ,IAAM38C,MAAMie,QAAQk5R,GAAmBA,EAA8B,SAAdl9Q,EAAuB,EAAI,GAAKk9Q,GAAiB,CAACA,EAAiBl9Q,KACtJg+Q,EAAerC,IAAuB,IAAAj5P,UAAQ,KACnD,MAAMu7P,EAAc,GACdC,EAAoB,GAS1B,OARAnB,EAAW9mT,SAAQ82D,IACjB,MAAMoxP,EAdSpxP,KACjB,MAAMqxP,EAAe1lS,EAAOq0C,GACtBsxP,MA3EyBjqT,EA2EuBgqT,IA1ErB,iBAAqBhqT,IAAsD,oBAA3ChB,OAAOC,UAAUG,SAASQ,KAAKI,IADpG,IAAmCA,EA4E/B,MAAO,CACL24D,OACAmuP,WAAYmD,EAAsBD,EAAan5S,MAAQm5S,EACvDnD,aAAcoD,EAAsBD,EAAatqT,MAAQsqT,EAC1D,EAOsBn0B,CAAWl9N,GAC5B2wP,IArCY,EAACxvQ,EAAM6e,IACrB0wP,EACKA,EAAaC,EAAa3wP,EAAM/sB,GAElCkO,EAAKlgC,SAAS0vS,GAiCCY,CAAYH,EAAalD,aAAcluP,KAG3DkxP,EAAY3kT,KAAKyzD,GACjBmxP,EAAkB5kT,KAAK6kT,GAAa,IAE/B,CAACF,EAAaC,EAAkB,GACtC,CAACnB,EAAYW,IACVa,GAAc,IAAA77P,UAAQ,KAC1B,GAA2B,IAAvBu6P,EAAYrlT,OACd,MAAO,OAET,MAAM4mT,EAAiB9D,EAAauC,GACpC,OAAIe,EAAc7lS,OAAM40C,GAAQyxP,EAAetxS,IAAI6/C,EAAK52D,QAAU42D,EAAK3C,WAC9D,MAEF,MAAM,GACZ,CAAC6yP,EAAae,IACXS,GAAW,IAAA/7P,UAAQ,KACvB,MAAMyP,EAASklF,EAA2B,gBAAoB,MAAO,CACnEjoI,UAAW,GAAG06C,yBACA,gBAAoB,EAAQ,CAC1CA,UAAW,GAAGA,WACdrF,SAAUo5P,EACVjB,YAAakB,EACb1tM,YAAa0B,EACbh+G,MAAO4pT,EACPtzP,SAAUA,KACL,MACD,UACJs0P,EAAS,YACTtrK,GA9DmBurK,KACrB,IAAIvrK,EAAckqK,EAAaA,EAAWlqT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGkyS,GAAY,CACpF5C,aAAc,CAAC5lT,EAAKyoT,IAAUD,EAAU5C,aAAa5lT,EAAKyoT,MACtD,KACN,MAAMF,IAActrK,EAOpB,OANKsrK,IAEHtrK,EAA2B,gBAAoB,EAAiBhgJ,OAAOqZ,OAAO,CAC5EgL,IAAKmmS,GACJe,KAEE,CACLD,YACAtrK,cACD,EAiDGyrK,CAAezrT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,EAAA02D,EAAA,GAAKxhE,EAAO85S,IAAa,CAC1EuC,gBACArC,sBACA33O,aAAci5O,KAEhB,IAAI6B,EAWJ,OAREA,EADEJ,EACsB,gBAAoB,MAAO,CACjDtvS,UAAW,GAAG06C,4BACbspF,GAEQ4qK,EAAcpmT,OAASw7I,EAA4B,gBAAoB,MAAO,CACvFhkI,UAAW,GAAG06C,oBACbi0P,GAEe,gBAAoB,MAAO,CAC7C3uS,UAAW,IAAWioI,EAAa,GAAGvtF,UAAkBA,qBAA+B,GAAGA,WACzFqI,EAAQ2sP,EAAS,GACnB,CAACznK,EAAYvtF,EAAWgoD,EAAmB4rM,EAAatzP,EAAU6yP,EAAae,EAAerC,EAAqBoC,IAChHgB,GAAwB,gBAAoB,IAAU,CAC1D30P,SAAgC,IAAtB2yP,EAAWnlT,QAAgBwyD,EACrC+wP,QAAyB,QAAhBoD,EACTS,cAA+B,SAAhBT,EACfnvS,UAAW,GAAG06C,aACdrF,SAAU,KAER84P,SAAkEA,EAAgBS,EAAczzS,QAAOwiD,IAASA,EAAK3C,WAAU5xD,KAAIoC,IACjI,IAAI,IACFzE,GACEyE,EACJ,OAAOzE,CAAG,IACQ,QAAhBooT,EAAsB,IAcxBU,GAAYv5M,IAAWA,EAAO9tG,OAAS,EAAI8tG,EAAO/jG,GAAS+jG,EAAO/jG,EAAO,CAC7Eq+B,eAEIk/Q,GAAU,IAAWp1P,EAAW,CACpC,CAAC,GAAGA,uBAAgC+xP,EACpC,CAAC,GAAG/xP,mBAA4Bm1P,KAG5BE,GAAaF,GAAyB,gBAAoB,MAAO,CACrE7vS,UAAW,GAAG06C,YACbm1P,IAAa,KACVG,IAAoB/D,IAAeQ,GAAckD,GACvD,IAAInrR,GAEFA,GADEynR,EACM,CACRQ,EAAa,CACX1lT,IAAK,gBACL8O,MAAOitG,EACP,OAAAt9C,GACE,IAAIz4C,EACJ,MAAMkjS,EAAWvC,IAAoD,QAA9B3gS,EAAKyhS,EAAYrhT,eAA4B,IAAP4f,OAAgB,EAASA,EAAGyX,QAAU,IAAIp7B,KAAI87B,GAAUA,EAAOy4B,QAC5IivP,SAA4DA,EAAaqD,EAC3E,GACE,KACJ,CACElpT,IAAK,YACL8O,MAAOmtG,EACP,OAAAx9C,GACEonP,SAA4DA,EAAac,EAAmBkB,GAC9F,IACCzzS,OAAOuN,SAEF,CAAC,CACP3hB,IAAK,YACL8O,MAAuB,QAAhBs5S,EAAwBpsM,EAActB,EAC7C,OAAAj8C,GACE,MAAMh3D,EAAOk/S,EAAmBkB,GAChCT,SAAkEA,EAAgB3/S,EAAMA,EAAKhG,SAAWqlT,EAAYrlT,OACtH,GACCikT,EAAa,CACd1lT,IAAK,gBACL8O,MAAOgtG,EACP,OAAAr9C,GACE,IAAIz4C,EACJ,MAAMmjS,GAA4C,QAA9BnjS,EAAKyhS,EAAYrhT,eAA4B,IAAP4f,OAAgB,EAASA,EAAGyX,QAAU,GAChG2pR,SAAkEA,EAAgBT,EAAmBwC,EAAU9mT,KAAI87B,GAAUA,EAAOy4B,SAAQ,EAC9I,GACE,KAAM,CACR52D,IAAK,eACL8O,MAAO6rG,EACP,OAAAl8C,GACE,IAAIz4C,EACJ,MAAMojS,EAAwBzC,IAAoD,QAA9B3gS,EAAKyhS,EAAYrhT,eAA4B,IAAP4f,OAAgB,EAASA,EAAGyX,QAAU,IAAIp7B,KAAI87B,GAAUA,EAAOy4B,QACnJyyP,EAAgB,IAAIrzR,IAAI8wR,GACxBwC,EAAoB,IAAItzR,IAAIqzR,GAClCD,EAAsBtpT,SAAQE,IACxBqpT,EAActyS,IAAI/W,GACpBspT,EAAkBhpT,OAAON,GAEzBspT,EAAkB/yS,IAAIvW,EACxB,IAEFonT,SAAkEA,EAAgBx3S,MAAMwqB,KAAKkvR,GAAoB,UACnH,IAGJ,MAAMC,GAAwB,gBAAoB,IAAU,CAC1DtwS,UAAW,GAAG06C,oBACd40C,KAAM,CACJ9qE,UAEFw2B,SAAUA,QAvOuBz2D,IAwOpB0pT,EAAkBA,EAA8B,gBAAoBsC,EAAA,EAAc,OACjG,OAAoB,gBAAoB,MAAO,CAC7CvwS,UAAW8vS,GACXzwQ,MAAOA,GACO,gBAAoB,MAAO,CACzCr/B,UAAW,GAAG06C,YACbqzP,EAA8B,gBAAoB,WAAgB,KAAMiC,GAAkBM,IAAa,KAAmB,gBAAoB,OAAQ,CACvJtwS,UAAW,GAAG06C,qBA1FU,EAAC81P,EAAe5+L,KACxC,GAAIo8L,EACF,MAAiC,mBAAnBA,EAAgCA,EAAe,CAC3DwC,gBACA5+L,eACGo8L,EAEP,MAAM/2R,EAAO26F,EAAa,EAAIhP,EAAYD,EAC1C,OAAoB,gBAAoB,WAAgB,MAAO6tM,EAAgB,EAAI,GAAGA,KAAmB,IAAM5+L,EAAY,IAAK36F,EAAK,EAmFpIw5R,CAAkB5C,EAAYrlT,OAAQomT,EAAcpmT,SAAuB,gBAAoB,OAAQ,CACxGwX,UAAW,GAAG06C,kBACbkzP,IAAayB,EAAUU,GAAW,0CC5NvC,QAlCkBx9S,IAChB,MAAM,SACJyoD,EAAQ,WACR01P,EAAU,YACVC,EAAW,cACXC,EAAgB,GAAE,eAClBC,EAAiB,GAAE,WACnBC,EAAU,YACVC,EAAW,UACX/wS,EAAS,MACTq/B,EAAK,UACLzO,EAAS,OACTogR,GACEz+S,EACJ,OAAoB,gBAAoB,MAAO,CAC7CyN,UAAWA,EACXq/B,MAAOA,GACO,gBAAoB,KAAQ,CAC1Cz3C,KAAM,UACN01B,KAAM,QACN09B,SAAUA,IAAa+1P,EACvBvrP,QAASmrP,EACT7kS,KAAoB,QAAd8kB,EAAmC,gBAAoB2iE,EAAA,EAAe,MAAqB,gBAAoBp9C,EAAA,EAAc,OAClI06P,IAAkBG,GAAwB,gBAAoB,KAAQ,CACvEppT,KAAM,UACN01B,KAAM,QACN09B,SAAUA,IAAa81P,EACvBtrP,QAASkrP,EACT5kS,KAAoB,QAAd8kB,EAAmC,gBAAoBulB,EAAA,EAAc,MAAqB,gBAAoBo9C,EAAA,EAAe,OAClIq9M,GAAgB,yCChCrB,MAAMK,EAA4B90S,IAChC,MAAM,OACJsmC,EAAM,aACNC,EAAY,WACZwuQ,EAAU,gBACVpgS,GACE3U,EACEg1S,EAAW,GAAG1uQ,UACd2uQ,EAAW,GAAG3uQ,UACpB,MAAO,CACL,CAAC,GAAGC,oBAAgC,CAClC,CAAC,GAAGA,UAAsB,CACxByB,KAAM,UACN6B,MAAO,OACPJ,OAAQ,OACRxD,UAAW8uQ,EACX7mN,SAAU,GAGZ,CAAC,GAAG8mN,aAAqB,CACvB,CAAC,GAAGA,WAAmB,CACrBtqQ,OAAQ,EACRtD,aAAc,EACd,CAAC,GAAG4tQ,sBAA8B,CAChCnrQ,MAAOl1B,EACPu5E,SAAUv5E,IAGd,CAAC,GAAGqgS,eAAsBA,gBAAwB,CAChDpoQ,OAAQ,EACR1G,QAASlmC,EAAM6tC,YAGnB,CAAC,GAAGonQ,eAAuB,CACzB/tQ,gBAAiB,gBAGtB,EAEGguQ,EAAyB,CAACl1S,EAAOmmC,KACrC,MAAM,aACJI,EAAY,YACZh0B,GACEvS,EACJ,MAAO,CACL,CAAC,GAAGumC,UAAsB,CACxBqE,YAAazE,EACb,2BAA4B,CAC1ByE,YAAar4B,IAGlB,EAEG4iS,EAAyBn1S,IAC7B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAAC,GAAGumC,kBAA8B1+C,OAAOqZ,OAAO,CAAC,EAAGg0S,EAAuBl1S,EAAOA,EAAMqrC,aACxF,CAAC,GAAG9E,oBAAgC1+C,OAAOqZ,OAAO,CAAC,EAAGg0S,EAAuBl1S,EAAOA,EAAMurC,eAC3F,EAEG6pQ,EAAuBp1S,IAC3B,MAAM,aACJumC,EAAY,YACZh0B,EAAW,WACX+5B,EAAU,UACVz5B,EAAS,WACTo6E,EAAU,aACVmH,EAAY,8BACZihN,EAA6B,iBAC7BC,EAAgB,oBAChB7mQ,EAAmB,kBACnB7F,EAAiB,mBACjB2sQ,EAAkB,WAClBR,EAAU,UACVS,EAAS,YACTC,EAAW,aACXrsQ,EAAY,SACZgkD,EAAQ,UACRj/C,EAAS,SACTxD,EAAQ,OACRrE,EAAM,QACN0G,EAAO,mBACPpF,EAAkB,mBAClB8G,EAAkB,eAClBrH,EAAc,iBACd50B,EAAgB,UAChBa,EAAS,yBACToiS,GACE11S,EACJ,MAAO,CACLynB,QAAS,OACTowD,cAAe,SACfhuC,MAAO2rQ,EACP/rQ,OAAQsrQ,EACRrqQ,OAAQ,IAAG,QAAK73B,MAAc83B,KAAYp4B,IAC1C60B,aAAcpnC,EAAMqnC,eACpB,oBAAqB,CACnBwC,MAAO4rQ,EACPhsQ,OAAQ,QAEV,WAAY,CACV,CAAC,GAAGuD,YAAmB,CACrB7G,MAAOyC,IAGX,WAAY,CACVnhB,QAAS,OACTugB,KAAM,OACNC,WAAY,SACZwB,OAAQ2qD,EAERluD,QAAS,IAAG,QAAKlmC,EAAM8oC,KAAKusQ,GAA+B/rQ,IAAIz2B,GAAW2N,aAAY,QAAK2tB,OAAc,QAAKknQ,KAC9GlvQ,MAAO7yB,EACPu3B,WAAYp4B,EACZ81C,aAAc,IAAG,QAAK11C,MAAc83B,KAAY2B,IAChDlF,aAAc,IAAG,QAAKC,OAAmB,QAAKA,SAC9C,uBAAwB,CACtBiG,gBAAiB,GAEnB,MAAO,CACLtF,KAAM,QAER,UAAWngD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG,MAAe,CACxD8mC,KAAM,OACNoF,UAAW,QAEb,aAAcvlD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,WAAc,CAC1DiQ,SAAUi4B,EACVyf,UAAW,kBACXnhB,OAAQ,UACR,cAAe,CACbA,OAAQ,kBAId,SAAU,CACRjgB,QAAS,OACTugB,KAAM,OACN6vC,cAAe,SACf1mE,SAAUnR,EAAMmR,SAEhB80B,UAAW,EACX,mBAAoB,CAClB7C,SAAU,WACV4E,KAAM,OACN9B,QAASiI,IAGb,YAAa,CACXnG,KAAM,OACN4E,OAAQ,EACR1G,QAAS,EACTc,SAAU,OACVuO,UAAW,OACX,SAAU,CACR9tB,QAAS,OACTwgB,WAAY,SACZhC,UAAWgnD,EACX/mD,QAAS,IAAG,QAAKovQ,OAAqB,QAAKnnQ,KAC3CxG,WAAY,OAAOC,IACnB,uBAAwB,CACtB0F,gBAAiB8/C,GAEnB,MAAO,CACLplD,KAAM,QAER,SAAUngD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG,MAAe,CACvD8mC,KAAM,SAER,WAAYngD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAclB,IAAS,CACjEmmC,MAAO5zB,EACP,mBAAoB,CAClB4zB,MAAOovQ,KAGX,CAAC,SAAShvQ,iCAA6C,CACrD,UAAW,CACTW,gBAAiBwH,EACjBhH,OAAQ,WAEV,CAAC,IAAInB,qCAAiD,CACpDW,gBAAiBwuQ,IAGrB,YAAa,CACXxuQ,gBAAiBuH,GAEnB,aAAc,CACZtI,MAAOyC,EACPlB,OAAQ,gBAIZ,CAAC,iBAAiBnB,2BAAsCA,uCAAmD,CACzGsE,WAAY,cACZnD,OAAQ,YAGZ,eAAgB,CACdxB,QAASlmC,EAAM6tC,UACfT,UAAW,MACXqb,UAAW,IAAG,QAAK51C,MAAc83B,KAAY2B,IAC7C,CAAC,GAAGhG,wBAA8B,CAChC6D,iBAAkBnqC,EAAM6tC,YAG5B,mBAAoB,CAClB7F,KAAM,OACN6B,MAAO,OACP+C,OAAQ,SACRzG,MAAOyC,EACPwE,UAAW,UAEb,WAAY,CACVqb,UAAW,IAAG,QAAK51C,MAAc83B,KAAY2B,KAG/C,aAAc,CACZlG,WAAY,GAEf,EAEGuvQ,EAAmB31S,IACvB,MAAM,OACJsmC,EAAM,QACN0G,EAAO,aACPzG,EAAY,SACZ6mD,EAAQ,UACRoC,EAAS,aACTpmD,EAAY,yBACZT,GACE3oC,EACJ,MAAO,CACL,CAACumC,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACtEojC,SAAU,WACV3b,QAAS,OACTwgB,WAAY,UACZ,CAAC,GAAG1B,cAA0B,CAC5B,CAAC,GAAGA,UAAsB,CACxBsE,WAAYlC,IAGhB,CAAC,GAAGpC,UAAsB6uQ,EAAqBp1S,GAC/C,CAAC,GAAGumC,eAA2B,CAC7B9e,QAAS,OACTugB,KAAM,OACN6vC,cAAe,SACf9tC,UAAW,SACX6C,OAAQ,MAAK,QAAKwgD,KAClB//C,cAAe,SACfwtE,IAAKrrB,EACL,CAAC,GAAGlpD,SAAc0G,KAAY,CAC5B77B,SAAUi4B,MAIjB,EAEGwsQ,EAAsB51S,IAC1B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,CAAC,GAAGumC,SAAqB,CACvB9R,UAAW,OAEd,EAsBH,GAAe,QAAc,YAAYz0B,IACvC,MAAM61S,GAAgB,QAAW71S,GACjC,MAAO,CAAC21S,EAAiBE,GAAgBf,EAA0Be,GAAgBV,EAAuBU,GAAgBD,EAAoBC,GAAe,IAtB1H71S,IACnC,MAAM,SACJmR,EAAQ,WACRi1B,EAAU,cACV7xB,EAAa,gBACbI,EAAe,UACf9B,GACE7S,EACEooD,EAAaj/D,KAAKgpC,MAAMhhB,EAAWi1B,GACzC,MAAO,CACLovQ,UAAW,IACXT,WAAY,IACZU,YAAa,IACbrhN,aAAcz/E,EACds4E,WAAY14E,EACZ+gS,kBAAmB/gS,EAAgB6zC,GAAc,EACjDitP,8BAA+BlsT,KAAKkmD,MAAM16B,EAAkB9B,EAAYu1C,GAAc,GACvF,IC9QGi+C,EAAWjwG,IACf,MAAM,WACJo7S,EAAU,WACVsE,EAAa,GAAE,aACfr9O,EAAY,gBACZs9O,EAAkB,GAAE,WACpB18P,EAAa,GAAE,MACfnW,EAAQ,CAAC,EAAC,UACVqS,EAAY,CAAC,EAAC,OACdikC,EAAS,CAAC,EAAC,OACX8sB,EAAM,SACNznD,EAAQ,WACRitF,GAAa,EAAK,eAClBkqK,EAAc,cACdpE,EAAa,OACbiD,EAAM,WACNvE,EACAh4S,OAAQkzG,EACRjtD,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,cACT24D,EAAa,eACbs1O,EAAc,aACdI,EAAY,OACZ/kS,EAAM,OACNgtF,EAAM,SACNr2F,EAAQ,OACRmyS,EAAM,SACN1F,EAAQ,SACRr3P,EAAQ,SACR21D,EAAQ,eACRqnM,GACE9/S,GACE,aACJmnD,EAAY,YACZ44P,EACA1hR,UAAWg2C,EAAG,SACd2rO,IACE,IAAA34P,YAAW,MACTc,EAAYhB,EAAa,WAAYw6B,IACpCC,EAAYn6B,EAAQo6B,IAAa,EAAS15B,IAE1C83P,GAAkBC,GAAgBC,IR3D3B,EAAC/E,EAAYyE,EAAQH,KACnC,MAAMO,EAAmB,WAAc,KAAO7E,GAAc,IAAIvkT,KAAIupT,GAC9DP,EACKpuT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGs1S,GAAS,CAC9C5rT,IAAKqrT,EAAOO,KAGTA,KACL,CAAChF,EAAYyE,KACVK,EAAgBC,GAAmB,WAAc,KACtD,MAAME,EAAW,GACXC,EAAY,IAAIl8S,OAAOs7S,GAAc,IAAIzpT,QACzCsqT,EAAgBxH,EAAa2G,GAAc,IAUjD,OATAO,EAAiB3rT,SAAQ8rT,IAGnBG,EAAch1S,IAAI60S,EAAO5rT,KAC3B8rT,EAAUC,EAAcp5S,IAAIi5S,EAAO5rT,MAAQ4rT,EAE3CC,EAAS1oT,KAAKyoT,EAChB,IAEK,CAACC,EAAUC,EAAU,GAC3B,CAACL,EAAkBP,EAAYG,IAClC,MAAO,CAACI,EAAkBC,EAAgBC,EAAgB,EQmCE,CAAQ/E,EAAYyE,EAAQH,IAIxFc,GAAoBC,GAEpBC,GAAuBC,IP1DV,SAAsBT,EAAgBC,GACnD,IAAI99O,EAAexuE,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAKmlT,EAEvF,MAAO4H,EAAUC,GAAa,WAAc,IAAM,CAAC,IAAIr2R,IAAI01R,EAAerpT,KAAI80C,GAAOA,EAAIn3C,OAAO,IAAIg2B,IAAI21R,EAAgBtpT,KAAI80C,GAAOA,EAAIn3C,SAAQ,CAAC0rT,EAAgBC,KAEzJK,EAAoBE,GAAyB,YAAe,IAAMzH,EAAW52O,EAAcu+O,MAC3FH,EAAoBE,GAAyB,YAAe,IAAM1H,EAAW52O,EAAcw+O,KAWlG,OATA,aAAgB,KACdH,EAAsBzH,EAAW52O,EAAcu+O,IAC/CD,EAAsB1H,EAAW52O,EAAcw+O,GAAW,GACzD,CAACx+O,IAEJ,aAAgB,KACdq+O,EAAsBzH,EAAWuH,EAAoBI,IACrDD,EAAsB1H,EAAWwH,EAAoBI,GAAW,GAC/D,CAACzH,EAAYwH,GAAWxH,EAAYyH,KAChC,CAEPL,EAAoBC,EAEpBC,EAAuBC,EACzB,COoCkDG,CAAaZ,GAAgBC,GAAiB99O,IACvF0+O,GAAoBC,KAA+B,EAAAxR,EAAA,IAAkBpkP,GAAQA,EAAK52D,OAClFysT,GAAqBC,KAAgC,EAAA1R,EAAA,IAAkBpkP,GAAQA,EAAK52D,MAKrF2sT,IAAe,IAAAttP,cAAY,CAACx1B,EAAWpiC,KAC3C,GAAkB,SAAdoiC,EAAsB,CACxB,MAAM+iR,EAA2B,mBAATnlT,EAAsBA,EAAKukT,IAAsB,IAAMvkT,EAC/EykT,GAAsBU,EACxB,KAAO,CACL,MAAMA,EAA2B,mBAATnlT,EAAsBA,EAAKwkT,IAAsB,IAAMxkT,EAC/E0kT,GAAsBS,EACxB,IACC,CAACZ,GAAoBC,KAClB/Q,GAAuB,CAACrxQ,EAAWlsC,MACD,SAAdksC,EAC0B2iR,GAA8BE,IACxD/uT,EAAM,EAE1BkvT,IAAqB,IAAAxtP,cAAY,CAACx1B,EAAWg+O,KAC/B,SAAdh+O,EACFyhR,SAAgEA,EAAezjC,EAAQokC,IAEvFX,SAAgEA,EAAeU,GAAoBnkC,EACrG,GACC,CAACmkC,GAAoBC,KAWlBa,GAASjjR,IACb,MAAMkjR,EAAyB,UAAdljR,EAAwBmiR,GAAqBC,GACxDe,ETpG0BpG,KAClC,MAAMvkT,EAAM,IAAI5C,IAUhB,OATAmnT,EAAW9mT,SAAQ,CAAC2E,EAAMsQ,KACxB,IAAI,SACFk/C,EAAQ,IACRj0D,GACEyE,EACAwvD,GACF5xD,EAAIpC,IAAID,EAAK+U,EACf,IAEK1S,CAAG,ESyF0B4qT,CAAqBxB,IAEjDyB,EAAcH,EAAS34S,QAAOpU,IAAQgtT,EAA0Bj2S,IAAI/W,KACpEmtT,EAAiB5I,EAAa2I,GAE9BE,EAA8B,UAAdvjR,EAAwBqjR,EAAYrkT,OAAOqiT,GAAcA,EAAW92S,QAAOgpE,IAAc+vO,EAAep2S,IAAIqmE,KAE5HiwO,EAAkC,UAAdxjR,EAAwB,OAAS,QAC3D8iR,GAAaU,EAAmB,IAChCR,GAAmBQ,EAAmB,IACtC/+P,SAAoDA,EAAS8+P,EAAevjR,EAAWqjR,EAAY,EAU/F9F,GAAkB,CAACv9Q,EAAWpiC,EAAM6lT,KACxCX,GAAa9iR,GAAW0jR,IACtB,IAAIC,EAAoB,GACxB,GAAiB,YAAbF,EACFE,EAAoB/lT,OACf,GAAI6lT,EAETE,EAAoB59S,MAAMwqB,KAAK,IAAIpE,IAAI,GAAGntB,QAAO,OAAmB0kT,IAAW,OAAmB9lT,UAC7F,CACL,MAAMgmT,EAAkBlJ,EAAa98S,GAErC+lT,EAAoBD,EAASn5S,QAAOpU,IAAQytT,EAAgB12S,IAAI/W,IAClE,CAEA,OADA6sT,GAAmBhjR,EAAW2jR,GACvBA,CAAiB,IAE1BtS,GAAqBrxQ,EAAW,KAAK,EA4BjC+7Q,GAAe,CAAC/7Q,EAAW6jR,EAAa1I,EAAS5gR,KACrD,MAAMupR,EAAgC,SAAd9jR,EAClBg+O,GAAS,OAAmB8lC,EAAkB3B,GAAqBC,IACnE2B,EAAY,IAAI53R,IAAI6xP,GACpB38Q,GAAO,OAAmByiT,EAAkBjC,GAAiBC,IAAiBv3S,QAAOwiD,KAAUA,aAAmC,EAASA,EAAK3C,YAChJknP,EAAuBjwS,EAAK0H,WAAUgkD,GAAQA,EAAK52D,MAAQ0tT,IAE7DtpR,GAAYyjP,EAAOpmR,OAAS,EAZL,EAACooC,EAAW3+B,EAAM28Q,EAAQszB,MACf,SAAdtxQ,EACiB0iR,GAAqBE,IAC/CtR,EAAsBjwS,EAAM28Q,EAAO,EAUhDgmC,CAAqBhkR,EAAW3+B,EAAM0iT,EAAWzS,GAxB1B,EAACtxQ,EAAWg+O,EAAQ6lC,EAAa1I,EAAS7J,KAChDtzB,EAAO9wQ,IAAI22S,KAE5B7lC,EAAOvnR,OAAOotT,GACdxS,GAAqBrxQ,EAAW,OAE9Bm7Q,IACFn9B,EAAOtxQ,IAAIm3S,GACXxS,GAAqBrxQ,EAAWsxQ,GAClC,EAiBE2S,CAAmBjkR,EAAW+jR,EAAWF,EAAa1I,EAAS7J,GAEjE,MAAM4S,EAAYn+S,MAAMwqB,KAAKwzR,GAC7Bf,GAAmBhjR,EAAWkkR,GACzBviT,EAAMqiE,cACT8+O,GAAa9iR,EAAWkkR,EAC1B,EAYIC,GAAkBnkR,GACG,mBAAd8gB,EACFA,EAAU,CACf9gB,cAGG8gB,GAAa,CAAC,EAEjBu6D,IAAkB,IAAAryD,YAAW,OAC7B,YACJwiD,GAAW,OACX3nG,IACEw3G,GAME9D,IAAe,OAAgB1zG,GAAQkzG,GACvCmlM,IAAoB7sS,GAAYwsS,EAChCqE,GAAakC,GAAmBxqT,OAAS,EACzCuoT,GAAcgC,GAAmBvqT,OAAS,EAC1CsjH,GAAM,IAAWpxD,EAAW,CAChC,CAAC,GAAGA,cAAuBM,EAC3B,CAAC,GAAGN,sBAA+Bz6C,EACnC,CAAC,GAAGy6C,SAA0B,QAARksB,IACrB,OAAoBlsB,EAAWytD,GAAc/L,IAAcm2M,aAA2C,EAASA,EAASvyS,UAAWA,EAAW24D,EAAe3e,EAAQo6B,KACjKqsD,KAAiB,QAAU,WAAY,IAAcj+B,UACtDwyM,IAfYC,GAeWx0K,GAfOz8I,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG43S,IAAiB,CACjGnH,iBAAkBwE,aAAiD,EAASA,EAAY,cAA6B,gBAAoB,IAAoB,CAC3JvzK,cAAe,eAEfppD,IAJcs/N,OAgBlB,MAAOC,GAAWC,IArIAF,KAChB,IAAIloS,EACJ,OAAwF,QAAhFA,EAAK01F,QAAuCA,EAASwyM,EAAexyM,cAA2B,IAAP11F,EAAgBA,EAAK,EAAE,EAmIzFqoS,CAAUJ,IACpCK,GAAuBpH,QAAuDA,EAAiBsE,aAA2C,EAASA,EAAStE,eAClK,OAAO95N,EAAwB,gBAAoB,MAAO,CACxDn0E,UAAW8rG,GACXzsE,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGk1S,aAA2C,EAASA,EAASlzQ,OAAQA,IAC9F,gBAAoB,EAAMr7C,OAAOqZ,OAAO,CACtDq9C,UAAW,GAAGA,SACdkzP,UAAWsH,GACXvH,WAAY8E,GACZpE,aAAcA,EACdhvQ,MAAO01Q,GAAgB,QACvBlH,YAAakF,GACb3E,aAzFiBrpT,GAAKimH,aAA2C,EAASA,EAAS,OAAQjmH,EAAEymB,OAAO9mB,OA0FpG8oT,YAxFsB,IAAMxiM,aAA2C,EAASA,EAAS,OAAQ,IAyFjG2hM,aArDuB,CAAC8H,EAAa1I,EAAShnT,KAC9C4nT,GAAa,OAAQ8H,EAAa1I,EAAShnT,aAA6B,EAASA,EAAEglT,SAAS,EAqD5FoE,gBAlG0B,CAAC3/S,EAAM6lT,KACjClG,GAAgB,OAAQ3/S,EAAM6lT,EAAS,EAkGvC/qS,OAAQA,EACR2+H,WAAYA,EACZimK,WAAYjuS,EACZq2F,OAAQA,EACRo2M,SArJuB3nT,IACvB2nT,SAAoDA,EAAS,OAAQ3nT,EAAE,EAqJvEi2D,SAAUA,EACVpqB,UAAmB,QAARg2C,EAAgB,QAAU,OACrCmnO,cAAeA,EACfC,eAAgBkE,EAAgB,GAChCzF,WAAYK,GACZmB,eAAgBoH,IACfL,KAA2B,gBAAoB,EAAW,CAC3Dh1S,UAAW,GAAG06C,cACdq2P,YAAaA,GACbF,eAAgBr7P,EAAW,GAC3Bm7P,YAxIkB,KAClBkD,GAAO,SACP5R,GAAqB,QAAS,KAAK,EAuInC6O,WAAYA,GACZF,cAAep7P,EAAW,GAC1Bk7P,WA/IiB,KACjBmD,GAAO,QACP5R,GAAqB,OAAQ,KAAK,EA8IlC5iQ,MAAO8yQ,EACPn3P,SAAUA,EACVpqB,UAAWg2C,EACXoqO,OAAQA,IACO,gBAAoB,EAAMhtT,OAAOqZ,OAAO,CACvDq9C,UAAW,GAAGA,SACdkzP,UAAWuH,GACXxH,WAAY+E,GACZrE,aAAcA,EACdhvQ,MAAO01Q,GAAgB,SACvBlH,YAAamF,GACb5E,aA1HkBrpT,GAAKimH,aAA2C,EAASA,EAAS,QAASjmH,EAAEymB,OAAO9mB,OA2HtG8oT,YAzHuB,IAAMxiM,aAA2C,EAASA,EAAS,QAAS,IA0HnG2hM,aApFwB,CAAC8H,EAAa1I,EAAShnT,KAC/C4nT,GAAa,QAAS8H,EAAa1I,EAAShnT,aAA6B,EAASA,EAAEglT,SAAS,EAoF7FoE,gBAjI2B,CAAC3/S,EAAM6lT,KAClClG,GAAgB,QAAS3/S,EAAM6lT,EAAS,EAiIxCzH,aAnFwBp+S,IACxBklT,GAAa,QAAS,IACtBr+P,SAAoDA,EAAS48P,EAAW92S,QAAOpU,IAAQyH,EAAKoQ,SAAS7X,KAAO,QAAQ,OAAmByH,GAAM,EAkF7I8a,OAAQA,EACR2+H,WAAYA,EACZimK,WAAYjuS,EACZq2F,OAAQA,EACRo2M,SArLwB3nT,IACxB2nT,SAAoDA,EAAS,QAAS3nT,EAAE,EAqLxEi2D,SAAUA,EACVpqB,UAAmB,QAARg2C,EAAgB,OAAS,QACpCmnO,cAAeA,EACfC,eAAgBkE,EAAgB,GAChCjG,WAAY+E,EACZvE,WAAYK,GACZmB,eAAgBoH,IACfL,MAAc,EAKnBxyM,EAASnlF,KAAO,EAChBmlF,EAAS4J,OAAS,EAClB5J,EAAS8yM,UAAY,EACrB,yCC1SA,IAAIC,mBACJ,mBACE,GAAIA,EACF,OAAOA,EAET,IAAI7zH,EAAO,eACP94L,EAAI,SAAWuO,GACjB,OAAOA,GAAWA,EAAQq+S,kBAAoB,mBAAmB5lT,OAAO8xL,EAAM,UAAU9xL,OAAO8xL,EAAM,eAAiB,EACxH,EACI+zH,EAAK,iGACLC,EAAQ,mBACRC,EAAS,CAAC,MAAM/lT,OAAO8lT,EAAO,YAAY9lT,OAAO8lT,EAAO,OAC5D,MAAM9lT,OAAO8lT,EAAO,YAAY9lT,OAAO6lT,EAAI,MAAM7lT,OAAO8lT,EAAO,OAC/D,MAAM9lT,OAAO8lT,EAAO,aAAa9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,aACnE,MAAM9lT,OAAO8lT,EAAO,gBAAgB9lT,OAAO8lT,EAAO,WAAW9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,aAC/F,MAAM9lT,OAAO8lT,EAAO,gBAAgB9lT,OAAO8lT,EAAO,WAAW9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,aAC/F,MAAM9lT,OAAO8lT,EAAO,gBAAgB9lT,OAAO8lT,EAAO,WAAW9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,aAC/F,MAAM9lT,OAAO8lT,EAAO,gBAAgB9lT,OAAO8lT,EAAO,WAAW9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,aAC/F,cAAc9lT,OAAO8lT,EAAO,WAAW9lT,OAAO6lT,EAAI,SAAS7lT,OAAO8lT,EAAO,eAIrEE,EAAK,MAAMhmT,OAAO+lT,EAAOjwT,KAAK,KAAM,KAAKkK,OAFhC,yBAKTimT,EAAW,IAAIh2R,OAAO,OAAOjwB,OAAO6lT,EAAI,WAAW7lT,OAAOgmT,EAAI,OAC9DE,EAAU,IAAIj2R,OAAO,IAAIjwB,OAAO6lT,EAAI,MACpCM,EAAU,IAAIl2R,OAAO,IAAIjwB,OAAOgmT,EAAI,MACpCvjR,EAAK,SAAYl7B,GACnB,OAAOA,GAAWA,EAAQ4hQ,MAAQ88C,EAAW,IAAIh2R,OAAO,MAAMjwB,OAAOhH,EAAEuO,IAAUvH,OAAO6lT,GAAI7lT,OAAOhH,EAAEuO,GAAU,SAASvH,OAAOhH,EAAEuO,IAAUvH,OAAOgmT,GAAIhmT,OAAOhH,EAAEuO,GAAU,KAAM,IACjL,EACAk7B,EAAGojR,GAAK,SAAUt+S,GAChB,OAAOA,GAAWA,EAAQ4hQ,MAAQ+8C,EAAU,IAAIj2R,OAAO,GAAGjwB,OAAOhH,EAAEuO,IAAUvH,OAAO6lT,GAAI7lT,OAAOhH,EAAEuO,IAAW,IAC9G,EACAk7B,EAAGujR,GAAK,SAAUz+S,GAChB,OAAOA,GAAWA,EAAQ4hQ,MAAQg9C,EAAU,IAAIl2R,OAAO,GAAGjwB,OAAOhH,EAAEuO,IAAUvH,OAAOgmT,GAAIhmT,OAAOhH,EAAEuO,IAAW,IAC9G,EACA,IAEIkjC,EAAOhI,EAAGojR,KAAKhqS,OACf6uB,EAAOjI,EAAGujR,KAAKnqS,OAMfqU,EAAQ,MAAMlwB,OATH,qBASoB,YAAYA,OARpC,uBAQiD,iBAAiBA,OAAOyqC,EAAM,KAAKzqC,OAAO0qC,EAAM,KAAK1qC,OALtG,iEAKmHA,OAJjH,kEAIgIA,OAHnI,sCAG+I,KAAKA,OAFnJ,kBAEgKA,OADhK,sBAGX,OADA2lT,EAAS,IAAI11R,OAAO,OAAOjwB,OAAOkwB,EAAO,MAAO,IAEjD,oBClDDt7B,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wWCiC3C,MAAMuxT,EAAkC,kCAClCC,EAAiB,CAAC1jT,EAAO8V,KAC7B,IAAI0E,EACJ,MACI2tC,UAAWw5B,EAAkB,SAC7BiyB,EAAQ,UACRnmG,EAAS,cACT24D,EAAa,kBACbN,EAAiB,eACjBH,EAAc,kBACd4nE,EAAiB,WACjBoxK,EAAa,IAAG,UAChBl4O,EACAk9O,eAAgBC,EAChB74R,KAAMstF,EACN5vD,SAAU0uD,EAAc,gBACxBokM,EACAr5S,OAAQkzG,EAAY,kBACpBnvC,EAAiB,yBACjB49O,EAAwB,sBACxBC,EACAzlR,UAAW0lR,EAAa,MACxBj3Q,EAAK,WACLu/F,EACA98C,QAASy0N,EAAgB,cACzBC,EAAa,eACb9nQ,EAAc,UACd+nQ,EAAS,SACTxvO,GACE10E,EACJ0/H,EA7DgC,SAAU/iI,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAsDWy0F,CAAOxzF,EAAO,CAAC,YAAa,WAAY,YAAa,gBAAiB,oBAAqB,iBAAkB,oBAAqB,aAAc,YAAa,iBAAkB,OAAQ,WAAY,kBAAmB,SAAU,oBAAqB,2BAA4B,wBAAyB,YAAa,QAAS,aAAc,UAAW,gBAAiB,iBAAkB,YAAa,cAEhZ8lE,kBAAmBq+O,EAAwB,aAC3Ch9P,EAAY,YACZ44P,EACA1hR,UAAW+lR,EAAgB,QAC3BC,GACAP,sBAAuBQ,GAA4B,cACnDz6L,GAAa,OACblV,IACE,aAAiB,OACd,CAAE/qG,KAAS,UACZ+5S,GAAiBC,QAAmEA,EAAuBh6S,cAAqC,EAASA,GAAMuU,cAC/JgqC,GAAYhB,EAAa,SAAUw6B,GACnC9pC,GAAgBsP,IAChB9oB,GAAY0lR,QAAqDA,EAAgBK,GACjF,YACJrrM,GAAW,sBACX40B,KACE,QAAsBxlF,GAAW9pB,KAC9BkxD,GAASq+C,KAAoB,OAAY,SAAUo2K,EAAkBpwM,GACtE3zD,IAAU,OAAakI,KACtBy5B,GAAYn6B,GAAQo6B,KAAa,OAAS15B,GAAWlI,IACtDqgB,GAAO,WAAc,KACzB,MACEA,KAAMrvD,GACJjR,EACJ,GAAU,aAANiR,EAGJ,OAAIA,IAAMwyS,EACD,WAEFxyS,CAAC,GACP,CAACjR,EAAMsgE,OACJikP,GAAsB,aAATjkP,IAAgC,SAATA,GACpCkkP,IAAiB,OAAaxkT,EAAM+3G,WAAY/3G,EAAMm+Q,WACtDsmC,GAA+J,QAAhIjqS,EAAKspS,QAAqEA,EAAwBD,SAA6C,IAAPrpS,EAAgBA,EAAK8pS,IAGhMpiT,OAAQ4rI,GAAa,YACrBjkC,GAAW,gBACXD,GAAe,aACfE,IACE,aAAiB,MACf8L,IAAe,OAAgBk4B,GAAe14B,GAEpD,IAAIsvM,GAEFA,QADsB1yT,IAApBupT,EACeA,EACC,aAATj7O,GACQ,MAECy/O,aAAiD,EAASA,EAAY,YAA2B,gBAAoB,IAAoB,CACzJvzK,cAAe,WAInB,MAAM,WACJz0B,GAAU,SACVn2C,GAAQ,WACR2qE,GAAU,UACVD,KACE,OAAS76I,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG40H,GAAO,CAClD9mG,SAAU2rR,GACV16M,eACAC,gBACA06M,kBACAr8P,aACAqkF,cAAe,YAEXqB,IAAkC,IAAfxB,EAAsB,CAC7CC,cACED,EACEs4K,IAAc,OAAKjlL,EAAM,CAAC,aAAc,aACxCklL,GAAuB,IAAWj/O,GAAkB4nE,EAAmB,CAC3E,CAAC,GAAGplF,eAAsB9pB,MAA4B,QAAdA,IACvC+nC,EAAeyb,GAAW5hC,GAASwH,IAChCguD,IAAa,QAAQxgG,IACzB,IAAIuF,EACJ,OAAmG,QAA3FA,EAAK69F,QAAqDA,EAAgBU,UAAgC,IAAPv+F,EAAgBA,EAAKvF,CAAG,IAG/HwzC,GAAW,aAAiB,KAC5Bga,GAAiB00C,QAAuDA,EAAiB1uD,GACzFo8P,GAAkB,IAAW,CACjC,CAAC,GAAG18P,SAAgC,UAAfstD,GACrB,CAAC,GAAGttD,SAAgC,UAAfstD,GACrB,CAAC,GAAGttD,UAAgC,QAAd9pB,GACtB,CAAC,GAAG8pB,MAAaonC,MAAYq+C,GAC7B,CAAC,GAAGzlF,mBAA2ByhD,KAC9B,OAAoBzhD,GAAWytD,GAAc/L,IAAc8jC,GAAuBh5B,cAAuC,EAASA,GAAOlnG,UAAWA,EAAW24D,EAAeyb,GAAW5hC,GAASwH,IAE/Lq9P,GAAgB,WAAc,SAChB9yT,IAAdy0E,EACKA,EAEY,QAAdpoC,GAAsB,cAAgB,cAC5C,CAACooC,EAAWpoC,MAWRoS,KAAU,QAAU,aAAcwzQ,aAAqD,EAASA,EAAcxzQ,QAErH,OAAOmxC,GAAwB,gBAAoB,KAAUnwF,OAAOqZ,OAAO,CACzEgL,IAAKA,EACLuuS,QAASA,GACT3uK,WAAY/gC,cAAuC,EAASA,GAAO+gC,YAClEivK,GAAa,CACd73Q,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG6pG,cAAuC,EAASA,GAAO7nE,OAAQA,GACtG+2Q,yBAA0BY,GAC1BtoQ,gBAAgB,OAAkBtE,GAAe,WAAYsE,GAC7D8pB,mBAAmB,OAAwBA,EAAmB4jD,IAC9D80L,WAAYA,EACZgF,eAAgBA,GAChBrjP,KAAMA,GACNnY,UAAWA,GACXse,UAAWq+O,GACXzmR,UAAWA,GACX05E,WAAYA,GACZgtM,qBAAsBnjP,GACtB2qE,WAAYA,GACZF,WAAYwB,GACZ0tK,gBAAiBmJ,GACjBj3S,UAAWo3S,GACX/+O,kBAAmBA,GAAqBq+O,EACxC52K,kBAAmBq3K,GACnBn8P,SAAUga,GACVwhP,cAAexyT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGm5S,GAAgB,CAC7DxzQ,YAEFikC,SAAU6vO,GAAa7vO,OAAW1iF,EAClCkyT,UAAWK,GAAaL,OAAYlyT,KAClC,EAKAwtJ,EAAsB,aAAiBkkK,GAGvC3vM,GAAY,OAAayrC,GAC/BA,EAAOikK,gCAAkCA,EACzCjkK,EAAOwlK,OAAS,KAChBxlK,EAAOylK,SAAW,KAClBzlK,EAAOxrC,uCAAyCD,EAIhD,6CC1NWmxM,YACX,SAAWA,GACPA,EAAsB,WAAI,aAC1BA,EAAuB,YAAI,aAC9B,CAHD,CAGGA,IAAcA,EAAY,CAAC,sBCL9BjzT,EAAOC,QAAU,IAA0B,sFC8B3C,QArBA,SAAmB6F,EAAOg3C,EAAOjsC,GAC/B,IAAIyG,GAAS,EACTtT,EAAS8B,EAAM9B,OAEf84C,EAAQ,IACVA,GAASA,EAAQ94C,EAAS,EAAKA,EAAS84C,IAE1CjsC,EAAMA,EAAM7M,EAASA,EAAS6M,GACpB,IACRA,GAAO7M,GAETA,EAAS84C,EAAQjsC,EAAM,EAAMA,EAAMisC,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIt8C,EAAS2R,MAAMnO,KACVsT,EAAQtT,GACfxD,EAAO8W,GAASxR,EAAMwR,EAAQwlC,GAEhC,OAAOt8C,CACT,iEC1BO,MAAM0yT,EAAiB,CAC5Bh8S,EACAi8S,EAAkC,UAanBv/S,EAXf,MAAQnG,KAAMmG,EAAG,UAAEwtH,IAAcruC,EAAAA,EAAAA,GAAW,CAC1CC,gBAAiB,cACjBC,WAAY,CAAC/7E,GACbwrG,OAAS0wM,QAAmBA,SAAAA,SAAoB,QAApBA,EAAAA,EAAgBl/N,YAAhBk/N,IAAAA,OAAAA,EAAAA,EAAsB3lT,IAAI,IAGlD4lT,EAAoBlhT,MAAMie,QAAQ+iS,GACpCA,EACA,CAACA,GAEL,MAAO,CACLG,YAAa1/S,SAAoB,QAApBA,EAAAA,EAAK2/S,uBAAL3/S,IAAAA,OAAAA,EAAAA,EAAsB3N,MAAMutT,GACvCH,EAAkBj5S,UAASo5S,aAAAA,EAAAA,EAAS9yT,OAAQ,MAE9C0gI,YACD,kECuBH,QA3CY,SAAeptG,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,GACtD,IAAI/K,EAA0B,iBAAbosB,EAAKpsB,IAClB+3B,EAA0B,iBAAb3L,EAAK2L,IAClB1T,EAA0B,iBAAb+H,EAAK/H,IAGlBmxB,EAAMl9C,EACNqC,EAAM,KACN4pD,EAAuB,iBAAVjsD,EACb88C,EAAuB,iBAAV98C,EACboN,EAAM6E,MAAMie,QAAQlwB,GAWxB,GAVIisD,EACF5pD,EAAM,SACGy6C,EACTz6C,EAAM,SACG+K,IACT/K,EAAM,UAKHA,EACH,OAAO,EAEL+K,IACF8vC,EAAMl9C,EAAM8D,QAEVg5C,IAEFI,EAAMl9C,EAAM47B,QAxBC,kCAwBiB,KAAK93B,QAEjC4D,EACEw1C,IAAQppB,EAAKpsB,KACfsuB,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjzB,GAAKqF,IAAKosB,EAAKkiE,UAAWliE,EAAKpsB,MAE5D+3B,IAAQ1T,GAAOmxB,EAAMppB,EAAK2L,IACnCzJ,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjzB,GAAKo9B,IAAK3L,EAAKkiE,UAAWliE,EAAK2L,MAC1D1T,IAAQ0T,GAAOyd,EAAMppB,EAAK/H,IACnCiK,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjzB,GAAK0pB,IAAK+H,EAAKkiE,UAAWliE,EAAK/H,MAC1D0T,GAAO1T,IAAQmxB,EAAMppB,EAAK2L,KAAOyd,EAAMppB,EAAK/H,MACrDiK,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASjzB,GAAKm1C,MAAO1jB,EAAKkiE,UAAWliE,EAAK2L,IAAK3L,EAAK/H,KAEnF,4ECXA,QAJA,SAAqB/rB,GACnB,OAAgB,MAATA,IAAiB,OAASA,EAAM8D,WAAY,OAAW9D,EAChE,kCC7Be,eAAoB,wCCEnCV,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzD+tS,EAAiC7tS,EAAyB,EAAQ,SAClEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIitS,EAAkB,SAAS3lT,EAAO8V,GAClC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMmsS,EAAiBvtS,UAbDe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJyoBC,EAAOmC,WAAW8rS,2GCpH3pB72S,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,8qBAA+qB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,sEAAsE,eAAiB,CAAC,ybAAyb,WAAa,MAEl2C,mCCEQ,SAAW+L,GAAU,aA4ChBA,EAAOC,aAAa,KAAM,CAC/BC,OAzCS,CACL,SACA,UACA,QACA,UACA,YACA,YACA,OACA,SACA,eACA,mBACA,UACA,WA8BJI,YA5Bc,CACV,MACA,QACA,OACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,QAiBJC,kBAAkB,EAClBC,SAhBW,CACP,eACA,WACA,WACA,cACA,YACA,YACA,eAUJC,cARgB,CAAC,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QASnEC,YARc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MASlDE,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,gBACTE,QAAS,kBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,YACNpU,EAAG,gBACHqU,GAAI,aACJC,EAAG,UACHC,GAAI,aACJC,EAAG,iBACHC,GAAI,oBACJC,EAAG,KACHC,GAAI,QACJC,EAAG,KACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aAERC,uBAAwB,mBACxBC,QAAS,SAAUC,GAEf,OAAOA,GADiB,IAAXA,EAAe,IAAMA,EAAS,IAAO,EAAI,KAAO,KAEjE,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnGyCC,CAAQ,EAAQ,wCCH1D1gB,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzDiuS,EAAiC/tS,EAAyB,EAAQ,QAClEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAI44H,EAAkB,SAAStxI,EAAO8V,GAClC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMqsS,EAAiBztS,UAbDe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJqqBC,EAAOmC,WAAWy3H,wCCvH3rB,IAAIi0H,EAAa,EAAQ,QACrBhzK,EAAe,EAAQ,QA2B3BtgG,EAAOC,QALP,SAAkBC,GAChB,MAAuB,iBAATA,GACXogG,EAAapgG,IArBF,mBAqBYozQ,EAAWpzQ,EACvC,6JChBA,SAAS0zT,EAAep6N,EAASx5D,EAAQ,IACvC,MAAO,CAACw5D,EAASx5D,EACnB,CAOA,SAAS6zR,EAAkBC,EAAUC,GACnC,MAAOv6N,EAASx5D,GAAS8zR,EACzB,MAAO,CAACt6N,EAAS,IAAIx5D,EAAO+zR,GAC9B,CAQA,SAASC,EACPF,EACA95S,GAEA,MAAMi6S,EAAgBH,EAAS,GAE/B,IAAK,MAAM/6N,KAAgBk7N,EAIzB,GAFej6S,EAAS++E,EADCA,EAAa,GAAG31F,MAIvC,OAAO,EAIX,OAAO,CACT,CAyHA,SAAS8wT,EAAuBp6N,GAK9B,MAAO,CAJa,CAClB12F,KAAM,QAGa02F,EACvB,CAKA,SAASq6N,EAA6BC,GACpC,MAAM7mT,EAAoC,iBAApB6mT,EAAW3mT,MAzHfzH,EAyH8CouT,EAAW3mT,KAxHpE,IAAW4mT,YAAc,IAAWA,WAAWC,eAClD,IAAWD,WAAWC,eAAetuT,IACrC,IAAI+sC,aAAchR,OAAO/7B,IAsHsDouT,EAAW3mT,KAzHhG,IAAoBzH,EA2HlB,MAAO,EACL,QAAkB,CAChB5C,KAAM,aACNY,OAAQuJ,EAAOvJ,OACfkqN,SAAUkmG,EAAWlmG,SACrBqmG,aAAcH,EAAWxjI,YACzB4jI,gBAAiBJ,EAAWK,iBAE9BlnT,EAEJ,CA4BA,SAASmnT,EAAgCC,GACvC,IAAKA,IAAoBA,EAAgB77N,IACvC,OAEF,MAAM,KAAE7sF,EAAI,QAAE0X,GAAYgxS,EAAgB77N,IAC1C,MAAO,CAAE7sF,OAAM0X,UACjB,CAMA,SAASixS,EACP/qQ,EACA8uC,EACAD,EACAF,GAEA,MAAMq8N,EAAyBhrQ,EAAM5nC,uBAAyB4nC,EAAM5nC,sBAAsB4yS,uBAC1F,MAAO,CACLxsB,SAAUx+O,EAAMw+O,SAChBxvM,SAAS,IAAIhxE,MAAOwZ,iBAChBs3D,GAAW,CAAEG,IAAKH,QAChBD,GAAUF,GAAO,CAAEA,KAAK,QAAYA,OACtCq8N,GAA0B,CAC5BvlR,OAAO,QAAkB,IAAKulR,KAGpC,gGC9MA,aAD6D,KArC7C,OAAc,CAAC,EAAG,iBACCC,mBAGV,SAA4BvoS,GACnD,IAAIwoS,EAAiB,GACjBC,GAAc,EAsBlB,OAZA,aAAgB,WAGd,OADAA,GAAc,EACP,WACLA,GAAc,EACVD,EAAe/wT,QACjB+wT,EAAe1yT,SAAQ,SAAU0I,GAC/B,OAAOA,GACT,GAEJ,CACF,GAAGwhB,GApBH,SAAkBxhB,GACZiqT,GAMJD,EAAervT,KAAKqF,EACtB,CAcF,EACa,WACX,OAAO,SAAUA,GACfA,GACF,CACF,+BCnCAvL,OAAO8lB,eAAerlB,EAAS,aAAc,CAAEC,OAAO,IAEtDD,EAAA,QADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,sbAA0b,KAAQ,OAAQ,MAAS,4NCKtmB,MAAMg1T,EAAW,sBACtBx5S,EAAQ,UACRD,EAAY,GAAE,QACdqyI,EAAO,IACP1wD,GAEa,EADV+3N,oXAAAA,CAAAA,EAAAA,CAJHz5S,WACAD,YACAqyI,UACA1wD,QAGA,OACE,UAACg4N,EAAAA,4UAAKA,CAAAA,CACJ35S,UAAW,YAAYA,IAAYugB,OACnCshE,WAAUF,GACN+3N,cAAAA,WAEHz5S,EACAoyI,IAAW,SAACnC,EAAAA,EAAaA,CAACv8E,MAAO0+E,0VAOxConK,EAAQztM,MAAQ2tM,EAAAA,GAAAA,MAChBF,EAAQ73N,OAAS+3N,EAAAA,GAAAA,yBC9BjBn1T,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,sDCA3C,OAOC,WACA,aAEA,IAAIi/D,EAAS,CAAC,EAAEx/D,eAEhB,SAAS88I,IAGR,IAFA,IAAIulJ,EAAU,GAELp6R,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAK,CAC1C,IAAI1D,EAAMrC,UAAU+F,GAChB1D,IACH89R,EAAUqzB,EAAYrzB,EAASszB,EAAWpxT,IAE5C,CAEA,OAAO89R,CACR,CAEA,SAASszB,EAAYpxT,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAIkO,MAAMie,QAAQnsB,GACjB,OAAOu4I,EAAWxxI,MAAM,KAAM/G,GAG/B,GAAIA,EAAIrE,WAAaJ,OAAOC,UAAUG,WAAaqE,EAAIrE,SAASA,WAAWwa,SAAS,iBACnF,OAAOnW,EAAIrE,WAGZ,IAAImiS,EAAU,GAEd,IAAK,IAAIx/R,KAAO0B,EACXi7D,EAAO9+D,KAAK6D,EAAK1B,IAAQ0B,EAAI1B,KAChCw/R,EAAUqzB,EAAYrzB,EAASx/R,IAIjC,OAAOw/R,CACR,CAEA,SAASqzB,EAAal1T,EAAOo1T,GAC5B,OAAKA,EAIDp1T,EACIA,EAAQ,IAAMo1T,EAGfp1T,EAAQo1T,EAPPp1T,CAQT,CAEqCF,EAAOC,SAC3Cu8I,EAAWt2H,QAAUs2H,EACrBx8I,EAAOC,QAAUu8I,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CArEA,eCMAx8I,EAAOC,QANP,SAAsBsC,GACpB,OAAO,SAASklB,GACd,OAAiB,MAAVA,OAAiB1nB,EAAY0nB,EAAOllB,EAC7C,CACF,uFCTe,SAASgzT,EAAMxnT,GAC5B,IAAImoD,EAAYnoD,EAAMmoD,UACpBqmK,EAAQxuN,EAAMwuN,MACdmwD,EAAQ3+Q,EAAM2+Q,MACd8oC,EAAWznT,EAAMynT,SACfxuT,EAAO0lR,GAAS,CAAC,EACnBlxQ,EAAYxU,EAAKwU,UACjBqmC,EAAU76C,EAAK66C,QACb4zQ,EAAcD,EAAS93R,EACzBA,OAAoB,IAAhB+3R,EAAyB,EAAIA,EACjCC,EAAcF,EAASh2S,EACvBA,OAAoB,IAAhBk2S,EAAyB,EAAIA,EAC/BC,EAAW,WAGf,IAAKp5F,IAAUA,EAAM/pJ,OACnB,OAAO,KAET,IAAIojP,EAAa,CACf76Q,SAAU,YAIZ,IAAwB,IAApBwhL,EAAMs5F,UAAqB,CAC7B,IAAIC,EAAcv5F,EAAM/pJ,OAAO,GAC3BujP,EAAex5F,EAAM/pJ,OAAO,GAC5BwjP,EAAUF,EAAY,GACtBG,EAAUH,EAAY,GACtBI,EAAWH,EAAa,GACxBI,EAAWJ,EAAa,GAGxBC,IAAYE,GAAa,CAAC,IAAK,KAAK97S,SAAS47S,GAE1B,MAAZA,EACTJ,EAAW56Q,IAAM,EAEjB46Q,EAAWr0Q,OAAS,EAJpBq0Q,EAAW56Q,IAAMx7B,EAQfy2S,IAAYE,GAAa,CAAC,IAAK,KAAK/7S,SAAS67S,GAE1B,MAAZA,EACTL,EAAWt3L,KAAO,EAElBs3L,EAAWr3L,MAAQ,EAJnBq3L,EAAWt3L,KAAO5gG,CAMtB,CACA,OAAoB,gBAAoB,MAAO,CAC7C7Z,IAAK8xS,EACLn6S,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,UAAW16C,GACtDq/B,MAAO+6Q,GACN/zQ,EACL,2BC/CQ,SAAW/kC,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,sFAAsF/b,MAC1F,KAEJmc,YACI,sFAAsFnc,MAClF,KAERqc,SAAU,yDAAyDrc,MAC/D,KAEJsc,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJE,IAAK,iCACLE,KAAM,wCAEV2P,cAAe,qDACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAGM,eAAbD,GACa,UAAbA,GACa,iBAAbA,EAEOC,EACa,iBAAbD,GAA4C,QAAbA,EAC/BC,EAAO,GAEPA,GAAQ,GAAKA,EAAOA,EAAO,EAE1C,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,IAAI2uQ,EAAY,IAAP7uQ,EAAaC,EACtB,OAAI4uQ,EAAK,IACE,aACAA,EAAK,IACL,QACAA,EAAK,KACL,eACAA,EAAK,KACL,MACAA,EAAK,KACL,eAEA,KAEf,EACAz+Q,SAAU,CACNC,QAAS,mBACTE,QAAS,kBACTC,SAAU,4BACVC,QAAS,eACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNpU,EAAG,eACHqU,GAAI,YACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UAGRC,uBAAwB,6BACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,QACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,SACpB,QACI,OAAOA,EAEnB,EACAq4F,SAAU,SAAU3xG,GAChB,OAAOA,EAAOw1B,QAAQ,KAAM,IAChC,EACAo8E,WAAY,SAAU5xG,GAClB,OAAOA,EAAOw1B,QAAQ,KAAM,IAChC,EACA/b,KAAM,CAEFC,IAAK,EACLC,IAAK,IAMhB,CAnHyCC,CAAQ,EAAQ,sCCL1D,IAAIk2S,EAAwB,CAAC,EAAE/wS,qBAE3BuB,EAA2BpnB,OAAOonB,yBAGlCyvS,EAAczvS,IAA6BwvS,EAAsBh2T,KAAK,CAAE,EAAG,GAAK,GAIpFH,EAAQuuB,EAAI6nS,EAAc,SAA8BlnB,GACtD,IAAImnB,EAAa1vS,EAAyB/iB,KAAMsrS,GAChD,QAASmnB,GAAcA,EAAW/wS,UACpC,EAAI6wS,oBCbJp2T,EAAOC,QAAU,IAA0B,8HCGvCs2T,EAAe,CACf74R,EAAG,EACHle,EAAG,EACHgiC,MAAO,EACPJ,OAAQ,EACRpG,IAAK,EACLsjF,KAAM,EACN/8E,OAAQ,EACRg9E,MAAO,GAuBX,QAAe,WAA8C,IAA1B5iF,OAAO2kF,eArB1C,WACI,IAAI/3G,GAAK,IAAA4zE,UAAS,MAAOpvB,EAAUxkD,EAAG,GAAI1E,EAAM0E,EAAG,GAC/CC,GAAK,IAAA2zE,UAASo6N,GAAer3L,EAAO12G,EAAG,GAAIguS,EAAUhuS,EAAG,GACxDhlB,GAAW,IAAAsrD,UAAQ,WACnB,OAAO,IAAInT,OAAO2kF,gBAAe,SAAU9hG,GACvC,GAAIA,EAAQ,GAAI,CACZ,IAAIjW,EAAKiW,EAAQ,GAAG+gG,YAAa7hG,EAAInV,EAAGmV,EAAGle,EAAI+I,EAAG/I,EAAGgiC,EAAQj5B,EAAGi5B,MAAOJ,EAAS74B,EAAG64B,OAAQq1Q,EAAQluS,EAAGyyB,IAAKsjF,EAAO/1G,EAAG+1G,KAAM/8E,EAASh5B,EAAGg5B,OAAQg9E,EAAQh2G,EAAGg2G,MAC1Ji4L,EAAQ,CAAE94R,EAAGA,EAAGle,EAAGA,EAAGgiC,MAAOA,EAAOJ,OAAQA,EAAQpG,IAAKy7Q,EAAOn4L,KAAMA,EAAM/8E,OAAQA,EAAQg9E,MAAOA,GACvG,CACJ,GACJ,GAAG,IASH,OARA,QAA0B,WACtB,GAAKxxD,EAGL,OADAvpE,EAASuW,QAAQgzD,GACV,WACHvpE,EAASgkD,YACb,CACJ,GAAG,CAACulB,IACG,CAAClpD,EAAKq7G,EACjB,EAGM,WAAe,MAAO,CAAC,KAAMq3L,EAAgB,iGChClD,wHAyBD,MAAMG,EAAkC9zR,KAAKwD,MAC3CuwR,aAAalmM,QAAQ,oCAIVmmM,EAAyB,CACpCC,eAAgB,UAChBC,0BAA2B,SAC3BC,4BAA4B,EAC5BC,6BAA8B,GAGnBC,GAAqBjkT,EAAAA,EAAAA,QAAO,CACvCkkT,WAAY,GACZC,oBAAoB,EACpBC,yBAAyB,EACzB3uT,MAAO,KACP4uT,gBAAiB,KACjBC,WAAY,KACZC,mBAAoB,KACpBzmM,iBAAiB,EACjB0mM,eAAgB,GAChBp0B,aAAc,GACdq0B,SAAU,KACVC,cAAc,EACdC,uBAAwB,KACxBC,oBAAqB,CAAC,EACtBC,eAAe,EACfC,kBAAmB,CACjBniP,MAAM,GAQRoiP,iCAAiCrB,GACO,YAApCA,EAEJsB,kCAAmC,GACnCC,uBAAwBrB,IAGpBviT,GAAerB,EAAAA,EAAAA,QAAOikT,GAgL5B,EAtKA,SAAoBvjT,EAAQW,EAActR,GACxC,OAAQA,EAAOK,MACb,KAAK80T,EAAAA,GACH,OAAOxkT,EAAMlR,IAAI,uBAAuBwQ,EAAAA,EAAAA,QAAOjQ,EAAOq4D,OACxD,KAAK+8P,EAAAA,GACH,OAAOzkT,EAAMlR,IAAI,0BAA0BwQ,EAAAA,EAAAA,QAAOjQ,EAAOq1T,WAC3D,KAAKC,EAAAA,GACH,OAAO3kT,EAAMlR,IAAI,eAAgBO,EAAOsvB,UAC1C,KAAKimS,EAAAA,GACH,OAAO5kT,EACJlR,IAAI,eAAgBO,EAAOye,SAC3Bhf,IAAI,WAAYO,EAAOw1T,KAC5B,KAAKC,EAAAA,GACH,OAAO9kT,EAAMlR,IAAI,iBAAkBO,EAAO01T,QAC5C,KAAKC,EAAAA,GACH,OAAOhlT,EAAMlR,IAAI,kBAAmBO,EAAO8iF,IAE7C,KAAK8yO,EAAAA,GAAW,CACd,MAAMC,EAAQ,CACZC,UAAW91T,EAAO81T,UAClBC,UAAW/1T,EAAO+1T,UAClBC,aAAch2T,EAAOg2T,aACrBC,aAAcj2T,EAAOi2T,aACrBC,YAAal2T,EAAOk2T,YACpBC,QAASn2T,EAAOm2T,SAAWxlT,EAAMwB,IAAI,cAAc4jB,KAAO,EAC1DqgS,UAAWp2T,EAAOo2T,UAClBz3P,QAAS3+D,EAAO2+D,QACZ3+D,EAAO2+D,QACc,YAArB3+D,EAAO81T,UACL,IACqB,aAArB91T,EAAO81T,UACL,IACA,MAEV,OAAOnlT,EAAMlR,IACX,aACAkR,EAAMwB,IAAI,cAAcxP,MAAKsN,EAAAA,EAAAA,QAAO4lT,IAExC,CACA,KAAKQ,EAAAA,GACH,GAAIr2T,EAAOs2T,SAET,OAAO3lT,EAAMlR,IAAI,aAAc6R,EAAaa,IAAI,eAElD,GAAInS,EAAO81T,UAET,OAAOnlT,EAAMlR,IACX,aACAkR,EACGwB,IAAI,cACJyB,QAAQiiT,GAAUA,EAAM1jT,IAAI,eAAiBnS,EAAO81T,aAG3D,GAAI91T,EAAOgO,GAAI,CACb,MAAMuG,EAAQ5D,EACXwB,IAAI,cACJC,WAAWyjT,GAAUA,EAAM1jT,IAAI,YAAcnS,EAAOgO,KACvD,OAAOuG,GAAS,EACZ5D,EAAMlR,IAAI,aAAckR,EAAMwB,IAAI,cAAcE,OAAOkC,IACvD5D,CACN,CACA,OAAOA,EAAMlR,IAAI,cAAcwQ,EAAAA,EAAAA,QAAO,KACxC,KAAKsmT,EAAAA,GACH,OAAO5lT,EACJlR,IAAI,QAASO,EAAOqgS,cAAgB,MACpC5gS,IAAI,kBAAmBO,EAAOw2T,YAC9B/2T,IAAI,aAAcO,EAAOmU,OAAS,MAClC1U,IAAI,iBAAkBO,EAAOyU,SAAW,MACxChV,IAAI,qBAAsBO,EAAOkqR,aAAe,MAChDzqR,IAAI,iBAAkBO,EAAOy2T,gBAC7Bh3T,IACC,0BACAwQ,EAAAA,EAAAA,QAAOjQ,EAAOk1T,wBAA0BrB,IAEzCp0T,IAAI,iBAAiB,GAC1B,KAAKi3T,EAAAA,GACH,OAAO/lT,EAAMlR,IAAI,aAAcO,EAAOmU,OACxC,KAAKG,EAAAA,GACH,OAAO3D,EAAMlR,IAAI,iBAAkBO,EAAOyU,SAC5C,KAAKkiT,EAAAA,GACH,OAAOhmT,EAAMlR,IAAI,QAASO,EAAO0F,OACnC,KAAKkxT,EAAAA,GACH,OAAOjmT,EAAMlR,IAAI,sBAAuBkR,EAAMwB,IAAI,uBACpD,KAAK0kT,EAAAA,GACH,OAAOlmT,EAAMlR,IACX,2BACCkR,EAAMwB,IAAI,4BAEf,KAAK2kT,EAAAA,GACH,OAAOnmT,EAAMlR,IAAI,qBAAqBwQ,EAAAA,EAAAA,QAAOjQ,EAAO+0T,oBAEtD,KAAKgC,EAAAA,GACH,OAAOpmT,EAAMlR,IACX,kCACAO,EAAOg1T,iCAEX,KAAKgC,EAAAA,GACH,OAAOrmT,EAAMlR,IACX,0BACAwQ,EAAAA,EAAAA,QAAOjQ,EAAOk1T,wBAA0BrB,IAE5C,KAAKoD,EAAAA,GAA+B,CAClC,MAAM,gBAAEC,EAAe,MAAE30O,EAAK,MAAE3tE,GAAU5U,EACpCm3T,EAA2BxmT,EAAMwB,IACrC,qCAQF,IAAIilT,EA2BJ,OAxBEA,EAPmBD,EAAyBj0T,MAC3Cm0T,GAAWA,EAAOH,kBAAoBA,IAMzBC,EAAyBt1T,KAAKw1T,IAC1CA,SAAOH,kBAAoBA,2UACvB,IACKG,cAAAA,CACH90O,QACA3tE,QACA0iT,YAAaxyS,KAAKC,yVAEpBsyS,SAAM,IAIE,IACTF,EACH,CACED,kBACA30O,QACA3tE,QACA0iT,YAAaxyS,KAAKC,QAMjBpU,EAAMlR,IAAI,oCAAqC23T,EACxD,CACA,KAAKG,EAAAA,GAAiC,CACpC,MAAM,gBAAEL,GAAoBl3T,EAGtBm3T,EAA2BxmT,EAAMwB,IACrC,qCAKF,IAAIilT,EAAc,GAQlB,OAPIF,IACFE,EAAcD,EAAyBvjT,QACpCyjT,GAAWA,EAAOH,kBAAoBA,KAKpCvmT,EAAMlR,IAAI,oCAAqC23T,EACxD,CACA,QACE,OAAOzmT,EAEb,+BCrPAzT,EAAQ,EAAQ,SAAUs6T,GAEjBA,EAASn4S,SAOd40B,SAAS9d,KAAKghB,YAAYqgR,EAASC,IAAMxjR,SAASjwB,cAAc,UAEhEwzS,EAASE,WAAa,SAAUvtT,EAAUwtT,GACtC,IAAIC,EAASztT,EAAW,KACpBwtT,IAASC,EAASD,EAAU,IAAMC,EAAS,KAC/C,IAAIC,EAAQF,EAAUH,EAASC,IAAII,MAAQL,EAASM,GAAGD,MACnDtjT,EAAQsjT,EAAME,WAAWH,EAAQC,EAAMG,SAAS/2T,QAChDgwB,GAAQ4mS,EAAMG,UAAYH,EAAMrnS,OAAOjc,GAM3C,GAFA0c,EAAK1c,MAAQA,EAETojT,EAAS,CAIT,IAAIM,GAAgBhnS,EAAK+mS,UAAY/mS,EAAKT,OAAO,GACjDS,EAAK6mB,MAAQmgR,EAAangR,MAC1B7mB,EAAKinS,SAAWD,EAAaC,QACjC,CAEA,OAAOjnS,CACX,EACJ,sKClCA,MAAMknS,EAAiC,gBAAoB,MAC9CC,EAA4BD,EAAkBtuS,SAC3D,IACawuS,EAAsC,gBAAoB,MAC1DC,EAAiCD,EAAuBxuS,iICArE,MAAM0uS,EAAqB3jT,IACzB,MAAM,aACJumC,EAAY,OACZD,GACEtmC,EACE4gE,EAAiB,GAAGr6B,UAC1B,MAAO,CACL,CAACq6B,GAAiB/4E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACxEynB,QAAS,eACTtW,SAAU,EAEV,CAAC,IAAIyvD,SAAuB,CAC1BnsC,UAAW,OAEb,CAAC,IAAImsC,WAAyB,CAC5Bn5C,QAAS,QAEX,CAAC,GAAG6e,WAAgBA,iBAAuB,CACzCO,OAAQ,GAEV,CAAC,KAAKP,+BAAoCA,oBAA0B,CAClEuuD,kBAAmB,UAGxB,EAGG+uN,EAAqB5jT,IACzB,MAAM,aACJumC,EAAY,uBACZs9Q,EAAsB,aACtBv7Q,EAAY,UACZw7Q,EAAS,mBACTl8Q,EAAkB,kBAClB6E,EAAiB,oBACjBs3Q,EAAmB,iBACnBtxS,EAAgB,YAChBF,EAAW,UACXM,EAAS,yBACT81B,EAAwB,kBACxBC,EAAiB,UACjBiF,EAAS,iBACTm2Q,EAAgB,SAChBr5Q,EAAQ,WACRs5Q,EAAU,aACVC,EAAY,KACZp7Q,GACE9oC,EACEmkT,EAAsB,GAAG59Q,UAEzB69Q,EAAuBt7Q,EAAKg7Q,GAAWx6Q,IAAIR,EAD9B,GAC+CE,IAAI,IAChEq7Q,EAAgBv7Q,EAAK,GAAGE,IAAI86Q,GAAWtjS,MAAM,CACjD1F,MAAM,IAER,MAAO,CACL,CAAC,GAAGyrB,aAAyB1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACnFynB,QAAS,cACTwgB,WAAY,WACZygB,kBAAmB,EACnBpb,gBAAiBu2Q,EACjBn8Q,OAAQ,UAER,CAAC,IAAInB,iBAA6B,CAChC9R,UAAW,OAEb,aAAc,CACZiT,OAAQ,cACRvB,MAAOnmC,EAAM4oC,mBAEf,WAAY,CACVnhB,QAAS,eACToiB,MAAO,EACP7C,SAAU,SACVkD,QAAS,UAEX,UAAW,CACTlC,KAAM,EACN4sD,eAAgB,UAGlB,CAAC,GAAGruD,oBAAgC,CAClCnD,SAAU,WACVkhR,gBAAiB,EACjB56Q,iBAAkB,EAClBG,MAAO,OACPJ,OAAQ,OACRiB,OAAQ,IAAG,QAAK73B,MAAc83B,KAAYrC,IAC1ClB,aAAc,MACd6C,WAAY,SACZwD,QAAS,EACTvD,QAAS,MAEX,CAAC3D,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAelB,IAAS,CACtEojC,SAAU,WACV3b,QAAS,eACT6f,QAAS,OACTI,OAAQ,UACRqC,UAAW,SACX3C,aAAc,QAEhB,CAAC,GAAGb,uCACQ49Q,KAAwB,CAClCv5Q,YAAatC,GAEf,CAAC,GAAG/B,2BAAsC49Q,KAAwBt8T,OAAOqZ,OAAO,CAAC,GAAG,QAAgBlB,IACpG,CAAC,GAAGumC,mBAA8BA,4BAAwC,CACxE0D,WAAY,WAEd,CAAC,GAAG1D,WAAuB,CACzB,WAAY,CACVF,UAAW,aACXjD,SAAU,WACVkhR,gBAAiB,MACjB56Q,iBAAkB,MAClBjiB,QAAS,QACToiB,MAAOw6Q,EACP56Q,OAAQ46Q,EACRE,iBAAkBz7Q,EAAK,GAAGE,IAAI86Q,GAAW52Q,KAAK,GAAG1sB,MAAM,CACrD1F,MAAM,IAER4tC,kBAAmB5f,EAAK,GAAGE,IAAI86Q,GAAW52Q,KAAK,GAAG1sB,MAAM,CACtD1F,MAAM,IAERosB,gBAAiB+8Q,EACjBO,iBAAkB,EAClB3vN,kBAAmB,EACnBztD,aAAci9Q,EACdx7P,UAAW,WACXpb,QAAS,EACT9F,WAAY,OAAOC,KAAsBm8Q,IACzC75Q,QAAS,MAEX7D,UAAW,aACXjD,SAAU,WACVkhR,gBAAiB,EACjB56Q,iBAAkB,EAClBjiB,QAAS,QACToiB,MAAOw6Q,EACP56Q,OAAQ46Q,EACRn9Q,gBAAiBz0B,EACjBm4B,YAAar4B,EACb08E,YAAa,QACbC,YAAar8E,EACbu0B,aAAc,MACdO,WAAY,OAAO8E,KAErB,CAAC,GAAGlG,WAAuB,CACzBnD,SAAU,WACV4rD,MAAO,EACPnoD,OAAQ,EACRa,OAAQ,UACR+F,QAAS,GAGX,CAAC,GAAGlH,aAAyB,CAC3B,CAAC49Q,GAAsB,CACrBv5Q,YAAatC,EACbpB,gBAAiBg9Q,EACjB,WAAY,CACVr7P,UAAW,SAAS7oD,EAAM8oC,KAAK9oC,EAAMykT,SAASv3Q,IAAI42Q,GAAWtjS,WAC7DitB,QAAS,EACT9F,WAAY,OAAOC,KAAsBm8Q,OAI/C,CAAC,GAAGx9Q,cAA0B,CAC5BmB,OAAQ,cACR,CAACy8Q,GAAsB,CACrBj9Q,gBAAiByB,EACjBiC,YAAar4B,EACbm1B,OAAQ,cACR,WAAY,CACVR,gBAAiB88Q,IAGrB,CAAC,GAAGz9Q,WAAuB,CACzBmB,OAAQ,eAEV,CAAC,GAAGnB,qBAAiC,CACnCJ,MAAOyC,EACPlB,OAAQ,eAEV,CAAC,IAAInB,aAAyB,CAC5B,CAAC49Q,GAAsB,CACrB,WAAY,CACVt7P,UAAW,SAAS/f,EAAKs7Q,GAAsBl3Q,IAAI42Q,GAAWtjS,eAKtE,CAAC,OAAO+lB,SAAqB,CAC3BsC,mBAAoBgF,EACpB1D,iBAAkB0D,KAGvB,EAGG62Q,EAAsB1kT,IAC1B,MAAM,YACJ2kT,EAAW,cACXpwS,EAAa,aACbgyB,EAAY,UACZ1zB,EAAS,SACT83B,EAAQ,YACRp4B,EAAW,mBACXq1B,EAAkB,kBAClB6E,EAAiB,oBACjBm4Q,EAAmB,SACnBzzS,EAAQ,SACR0zS,EAAQ,WACRvzS,EAAU,gBACVqD,EAAe,gBACfF,EAAe,UACfo5B,EAAS,aACTzG,EAAY,eACZS,EAAc,eACdR,EAAc,gBACdy9Q,EAAe,wBACfC,EAAuB,kBACvBn8Q,EAAiB,yBACjBD,EAAwB,wBACxBq8Q,EAAuB,2BACvBC,EAA0B,aAC1B38Q,EAAY,kBACZn1B,EAAiB,mBACjBiB,EAAkB,qBAClB8wS,EAAoB,0BACpBC,EAAyB,2BACzBC,EAA0B,KAC1Bt8Q,GACE9oC,EACJ,MAAO,CACL,CAAC,GAAGumC,oBAAgC,CAClCnD,SAAU,WACV3b,QAAS,eACTgiB,OAAQl1B,EACRq4B,OAAQ,EACRv8B,cAAeu0S,EACfr0S,aAAc,EACd41B,MAAOw+Q,EACPxzS,WACAi1B,YAAY,QAAK0C,EAAKv0B,GAAe+0B,IAAIR,EAAKj2B,GAAWm2B,IAAI,IAAIxoB,SACjEqqB,WAAYg6Q,EACZn6Q,OAAQ,IAAG,QAAK73B,MAAc83B,KAAYp4B,IAG1C8yS,sBAAuBv8Q,EAAKj2B,GAAW1R,IAAI,KAAMqf,QACjD8kS,uBAAwB,EACxBC,qBAAsB1yS,EACtB60B,OAAQ,UACRC,WAAY,CAAC,SAAS8E,IAAqB,cAAcA,IAAqB,cAAcA,KAAqBljD,KAAK,KACtHiD,EAAG,CACD25C,MAAOw+Q,GAET,CAAC,KAAKp+Q,YAAwB,CAC5BnD,SAAU,WACVkhR,gBAAiB,EACjB56Q,iBAAkB,EAClB7C,QAAS,EACTgD,MAAO,OACPJ,OAAQ,QAEV,sBAAuB,CACrB,YAAa,CACXrG,SAAU,WACVkhR,gBAAiBx7Q,EAAKj2B,GAAWm2B,KAAK,GAAGxoB,QACzCkpB,iBAAkBZ,EAAKj2B,GAAWm2B,KAAK,GAAGxoB,QAC1CiH,QAAS,QACT4e,UAAW,cACXwD,MAAO,EACPJ,OAAQ,OACRl5B,aAAcsC,EACdxC,cAAe,EACf62B,gBAAiB30B,EACjBo1B,WAAY,oBAAoBC,IAChCsC,QAAS,OAGb,gBAAiB,CACf2qD,kBAAmB,IAAG,QAAKhiF,MAAc83B,KAAYp4B,IACrDk2B,uBAAwBrB,EACxBmB,qBAAsBnB,GAExB,eAAgB,CACdsB,qBAAsBtB,EACtBoB,mBAAoBpB,GAEtB,2BAA4B,CAC1BA,gBAEF,CAAC,GAAGb,mBAA+B,CACjCkD,OAAQ90B,EACRxD,SAAUG,EACV80B,YAAY,QAAK0C,EAAKn0B,GAAiB20B,IAAIR,EAAKj2B,GAAWm2B,IAAI,IAAIxoB,SACnE,gBAAiB,CACfioB,uBAAwBpB,EACxBkB,qBAAsBlB,GAExB,eAAgB,CACdqB,qBAAsBrB,EACtBmB,mBAAoBnB,IAGxB,CAAC,GAAGd,mBAA+B,CACjCkD,OAAQh1B,EACRpE,cAAey4B,EAAK+E,GAAWvE,IAAIz2B,GAAW2N,QAC9CjQ,aAAc,EACd61B,YAAY,QAAK0C,EAAKr0B,GAAiB60B,IAAIR,EAAKj2B,GAAWm2B,IAAI,IAAIxoB,SACnE,gBAAiB,CACfioB,uBAAwBZ,EACxBU,qBAAsBV,GAExB,eAAgB,CACda,qBAAsBb,EACtBW,mBAAoBX,IAGxB,UAAW,CACTzE,SAAU,WACV+C,MAAOmC,GAET,wBAAyBzgD,OAAOqZ,OAAO,CAAC,GAAG,QAAgBlB,IAC3D,CAAC,GAAGumC,wDAAoE,CACtEsD,MAAO,EACPJ,OAAQ,EACRgE,QAAS,EACTzD,cAAe,QAEjB,CAAC,iBAAiBzD,8BAA0C,CAC1DM,OAAQ,EACRV,MAAOmC,EACPuC,WAAYi6Q,EACZl6Q,YAAatC,EACb,YAAa,CACXpB,gBAAiBoB,GAEnB,gBAAiB,CACfsC,YAAatC,GAEf,UAAW,CACTnC,MAAOhzB,EACPy3B,YAAaz3B,EACb,YAAa,CACX+zB,gBAAiB/zB,IAGrB,WAAY,CACVgzB,MAAO/xB,EACPw2B,YAAax2B,EACb,YAAa,CACX8yB,gBAAiB9yB,KAIvB,CAAC,GAAGmyB,+BAA0CA,8BAA0C,CACtFJ,MAAO4+Q,EACPl6Q,WAAYq6Q,EACZt6Q,YAAas6Q,EACb,UAAW,CACT/+Q,MAAO4+Q,EACPl6Q,WAAYs6Q,EACZv6Q,YAAau6Q,GAEf,WAAY,CACVh/Q,MAAO4+Q,EACPl6Q,WAAYu6Q,EACZx6Q,YAAaw6Q,IAGjB,aAAc,CACZj/Q,MAAOyC,EACP1B,gBAAiByB,EACjBiC,YAAar4B,EACbm1B,OAAQ,cACR,yBAA0B,CACxBvB,MAAOyC,EACP1B,gBAAiByB,EACjBiC,YAAar4B,IAGjB,CAAC,aAAag0B,4BAAwC,CACpDJ,MAAO8+Q,EACP/9Q,gBAAiB89Q,EACjBp6Q,YAAar4B,EACbg1B,UAAW,QAEb,UAAW,CACTS,KAAM,EACNoF,UAAW,WAGhB,EA6CH,GAAe,QAAc,SAASptC,IACpC,MAAM,eACJiS,EAAc,oBACdH,GACE9R,EACEwlT,EAAmB,UAAS,QAAK1zS,MAAwBG,IACzDwzS,EAAyBD,EACzBE,GAAa,QAAW1lT,EAAO,CACnCwlT,mBACAC,2BAEF,MAAO,CAAC9B,EAAmB+B,GAAa9B,EAAmB8B,GAAahB,EAAoBgB,GAAY,IArDrE1lT,IACnC,MAAM,UACJ+9Q,EAAS,QACT73O,EAAO,SACPknD,EAAQ,UACRv6E,EAAS,WACTvB,EAAU,UACVgC,EAAS,iBACTb,EAAgB,kBAChBm2B,EAAiB,4BACjB+8Q,EAA2B,oBAC3BvzS,EAAmB,aACnBk2B,EAAY,kBACZn1B,EAAiB,mBACjBiB,EAAkB,WAClBwxS,GACE5lT,EAIJ,MAAO,CAEL8jT,UAJgBxyS,EAKhBmzS,QAJmB1mC,EADHzsQ,EAC2Bu0S,EAD3Bv0S,EACmF,GAFlF,EAEqEuB,GAKtFmxS,iBAAkBp7Q,EAElBm8Q,wBAAyB3yS,EACzB8yS,qBAAsB58Q,EACtB68Q,0BAA2BhyS,EAC3BiyS,2BAA4BhxS,EAC5BywS,SAAUpyS,EACVqyS,gBAAiBryS,EACjBkyS,YAAarxS,EACb0xS,wBAAyBW,EACzBV,2BAA4Br8Q,EAC5Bg8Q,oBAAqB1+Q,EAAUrzB,EAC/BgxS,uBAAwBz2N,EAExB62N,WAAYlmC,EAAYz1O,EAAes9Q,EACvC1B,aAAcnmC,EAAYtrQ,EAAmB61B,EAC9C,GAcuB,CACxBgH,SAAU,CACRw0Q,WAAW,EACXW,SAAS,KClbb,MAAMqB,EAAgB,CAAC1vT,EAAO8V,KAC5B,IAAI0E,EAAIC,EACR,MAAMk1S,EAAe,aAAiB,GAChCC,EAAyB,aAAiBvC,IAC1C,aACJlmQ,EAAY,UACZ9oB,EAAS,MACTwxR,GACE,aAAiB,MACfpiL,EAAW,SAAa,MACxBuvH,GAAY,QAAWlnP,EAAK23H,IAC5B,gBACJ7jC,GACE,aAAiB,OAWjBzhD,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,cACT24D,EAAa,SACb14D,EAAQ,MACRo/B,EAAK,MACLs0B,GACEphE,EACJkzD,EApDgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CA6CgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,gBAAiB,WAAY,QAAS,UACvF8vT,EAAiB3oQ,EAAa,QAASw6B,GACvCouO,EAAqI,aAApHJ,aAAmD,EAASA,EAAaK,aAAeJ,GACzGznQ,EAAY4nQ,EAAe,GAAGD,WAA0BA,EAExD7vQ,GAAU,EAAAm9C,EAAA,GAAa0yN,IACtBluO,EAAYn6B,EAAQo6B,GAAa,EAASiuO,EAAgB7vQ,GAC3DknQ,EAAa11T,OAAOqZ,OAAO,CAAC,EAAGooD,GAE/BzK,EAAW,aAAiB6uD,EAAA,GAC9Bq4M,IACFxI,EAAWjpT,KAAOyxT,EAAazxT,KAC/BipT,EAAWrkQ,SAzBItwD,IACf,IAAIgoB,EAAIC,EACkB,QAAzBD,EAAKxa,EAAM8iD,gBAA6B,IAAPtoC,GAAyBA,EAAGnoB,KAAK2N,EAAOxN,GACmB,QAA5FioB,EAAKk1S,aAAmD,EAASA,EAAa7sQ,gBAA6B,IAAProC,GAAyBA,EAAGpoB,KAAKs9T,EAAcn9T,EAAE,EAuBtJ20T,EAAW3N,QAAUx5S,EAAM7N,QAAUw9T,EAAax9T,MAClDg1T,EAAW1+P,SAA0C,QAA9BjuC,EAAK2sS,EAAW1+P,gBAA6B,IAAPjuC,EAAgBA,EAAKm1S,EAAalnQ,UAEjG0+P,EAAW1+P,SAA0C,QAA9BhuC,EAAK0sS,EAAW1+P,gBAA6B,IAAPhuC,EAAgBA,EAAKguC,EAClF,MAAMwnQ,EAAqB,IAAW,GAAG9nQ,YAAqB,CAC5D,CAAC,GAAGA,qBAA8Bg/P,EAAW3N,QAC7C,CAAC,GAAGrxP,sBAA+Bg/P,EAAW1+P,SAC9C,CAAC,GAAGN,iBAAwC,QAAd9pB,EAC9B,CAAC,GAAG8pB,0BAAmCyhD,EACvC,CAAC,GAAGzhD,sBAA+BwnQ,aAAmD,EAASA,EAAa32K,QAC3G62K,aAAqC,EAASA,EAAMpiT,UAAWA,EAAW24D,EAAe3e,EAAQo6B,EAAW5hC,GAC/G,OAAO2hC,EAAwB,gBAAoB,IAAM,CACvDve,UAAW,QACX5a,SAAU0+P,EAAW1+P,UACP,gBAAoB,QAAS,CAC3Ch7C,UAAWwiT,EACXnjR,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG+kT,aAAqC,EAASA,EAAM/iR,OAAQA,GACnG+yB,aAAc7/D,EAAM6/D,aACpBC,aAAc9/D,EAAM8/D,aACpBsB,MAAOA,GACO,gBAAoB,IAAY3vE,OAAOqZ,OAAO,CAAC,EAAGq8S,EAAY,CAC5E15S,UAAW,IAAW05S,EAAW15S,UAAW,CAC1C,CAAC,MAAcsiT,IAEjB16T,KAAM,QACN8yD,UAAWA,EACXryC,IAAKknP,UACWhrQ,IAAb0b,EAAsC,gBAAoB,OAAQ,KAAMA,GAAY,OAAO,EAMlG,EAJ2B,aAAiBgiT,GCpFtCQ,EAA0B,cAAiB,CAAClwT,EAAO8V,KACvD,MAAM,aACJqxC,EAAY,UACZ9oB,GACE,aAAiB,OAEnB8pB,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,cACT24D,EAAa,QACbxhE,EAAO,YACPurT,EAAc,UAAS,SACvB1nQ,EAAQ,SACR/6C,EACAqd,KAAMstF,EAAa,MACnBvrE,EAAK,GACL9pC,EAAE,WACFgtT,EAAU,KACV9xT,EAAI,aACJglD,EACA/wD,MAAOi+T,EAAe,MACtBp3K,GAAQ,EAAK,SACbl2F,EAAQ,aACR+c,EAAY,aACZC,EAAY,QACZiC,EAAO,OACP63C,GACE55G,GACG7N,EAAOy8R,IAAY,EAAAthN,EAAA,GAAepqB,EAAc,CACrD/wD,MAAOi+T,IAEHC,EAAgB,eAAkBv0Q,IACtC,MAAMw0Q,EAAYn+T,EACZk9C,EAAMyM,EAAM7iC,OAAO9mB,MACnB,UAAW6N,GACf4uR,EAASv/O,GAEPA,IAAQihR,IACVxtQ,SAAoDA,EAAShH,GAC/D,GACC,CAAC3pD,EAAOy8R,EAAU9rO,IACfqF,EAAYhB,EAAa,QAASw6B,GAClCnX,EAAiB,GAAGriB,UAEpBlI,GAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,EAAYn6B,EAAQo6B,GAAa,EAAS15B,EAAWlI,GAC5D,IAAIswQ,EAAmB7iT,EAEnB9I,GAAWA,EAAQ3O,OAAS,IAC9Bs6T,EAAmB3rT,EAAQ/N,KAAI4sL,GACP,iBAAXA,GAAyC,iBAAXA,EAEnB,gBAAoB,EAAO,CAC7CjvL,IAAKivL,EAAO5xL,WACZs2D,UAAWA,EACXM,SAAUA,EACVt2D,MAAOsxL,EACP+1H,QAASrnT,IAAUsxL,GAClBA,GAGe,gBAAoB,EAAO,CAC7CjvL,IAAK,6BAA6BivL,EAAOtxL,QACzCg2D,UAAWA,EACXM,SAAUg7H,EAAOh7H,UAAYA,EAC7Bt2D,MAAOsxL,EAAOtxL,MACdqnT,QAASrnT,IAAUsxL,EAAOtxL,MAC1BivE,MAAOqiH,EAAOriH,MACdt0B,MAAO22I,EAAO32I,MACd9pC,GAAIygL,EAAOzgL,GACXshB,SAAUm/J,EAAOn/J,UAChBm/J,EAAOngL,UAGd,MAAMmyG,GAAa,EAAAC,EAAA,GAAQ2C,GACrB5kB,EAAc,IAAWjpB,EAAgB,GAAGA,KAAkB2lP,IAAe,CACjF,CAAC,GAAG3lP,KAAkBirC,KAAeA,EACrC,CAAC,GAAGjrC,SAAqC,QAAdnsC,EAC3B,CAAC,GAAGmsC,WAAyBwuE,GAC5BvrI,EAAW24D,EAAe3e,EAAQo6B,EAAW5hC,GAC1CuwQ,EAAgB,WAAc,KAAM,CACxC1tQ,SAAUutQ,EACVl+T,QACAs2D,WACAvqD,OACA8xT,aACAh3K,WACE,CAACq3K,EAAel+T,EAAOs2D,EAAUvqD,EAAM8xT,EAAYh3K,IACvD,OAAOp3D,EAAwB,gBAAoB,MAAOnwF,OAAOqZ,OAAO,CAAC,GAAG,EAAAwqG,EAAA,GAAUt1G,EAAO,CAC3Fu1G,MAAM,EACN71G,MAAM,IACJ,CACF+N,UAAWgmF,EACX3mD,MAAOA,EACP+yB,aAAcA,EACdC,aAAcA,EACdiC,QAASA,EACT63C,OAAQA,EACR52G,GAAIA,EACJ8S,IAAKA,IACU,gBAAoBs3S,EAA2B,CAC9Dj7T,MAAOq+T,GACND,IAAmB,IAExB,EAA4B,OAAWL,GCrGvC,MAAMO,EAAc,CAACzwT,EAAO8V,KAC1B,MAAM,aACJqxC,GACE,aAAiB,OAEjBgB,UAAWw5B,GACT3hF,EACJmnT,EAnBgC,SAAUxqT,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAYiB,CAAOiB,EAAO,CAAC,cACxBmoD,EAAYhB,EAAa,QAASw6B,GACxC,OAAoB,gBAAoB2rO,EAAgC,CACtEn7T,MAAO,UACO,gBAAoB,EAAOV,OAAOqZ,OAAO,CACvDq9C,UAAWA,GACVg/P,EAAY,CACb9xT,KAAM,QACNygB,IAAKA,KACH,EAEN,EAA4B,aAAiB26S,GC1BvC,EAAQ,EACd,EAAMphO,OAAS,EACf,EAAMoqB,MAAQ,EACd,EAAMi3M,aAAc,EACpB,0DCVA,IASIC,EATApe,EAAS,CAAC,EAwVVqe,EA7UJ,WACC,GAAID,EAAmB,OAAOpe,EAC9Boe,EAAoB,EAOpBpe,EAAOl6Q,MAqFP,SAAe4W,EAAK+7B,GAClB,GAAmB,iBAAR/7B,EACT,MAAM,IAAI4K,UAAU,iCAGtB,IAAI5kD,EAAM,CAAC,EACP4E,EAAMo1C,EAAIh5C,OAEd,GAAI4D,EAAM,EAAG,OAAO5E,EAEpB,IAAI47T,EAAO7lP,GAAOA,EAAI92C,QAAWA,EAC7B3qB,EAAQ,EACR2lC,EAAQ,EACRC,EAAS,EAEb,EAAG,CAED,IAAe,KADfD,EAAQD,EAAIhb,QAAQ,IAAK1qB,IACP,MAIlB,IAAgB,KAFhB4lC,EAASF,EAAIhb,QAAQ,IAAK1qB,IAGxB4lC,EAASt1C,OACJ,GAAIq1C,EAAQC,EAAQ,CAEzB5lC,EAAQ0lC,EAAIG,YAAY,IAAKF,EAAQ,GAAK,EAC1C,QACF,CAEA,IAAI4hR,EAAcjhB,EAAW5gQ,EAAK1lC,EAAO2lC,GACrC6hR,EAAYjhB,EAAS7gQ,EAAKC,EAAO4hR,GACjCt8T,EAAMy6C,EAAIz1C,MAAMs3T,EAAaC,GAGjC,IAAKC,EAAiB3+T,KAAK4C,EAAKT,GAAM,CACpC,IAAIy8T,EAAcphB,EAAW5gQ,EAAKC,EAAQ,EAAGC,GACzC+hR,EAAYphB,EAAS7gQ,EAAKE,EAAQ8hR,GAEF,KAAhChiR,EAAI7L,WAAW6tR,IAAmE,KAAlChiR,EAAI7L,WAAW8tR,EAAY,KAC7ED,IACAC,KAGF,IAAI7hR,EAAMJ,EAAIz1C,MAAMy3T,EAAaC,GACjCj8T,EAAIT,GAAO28T,EAAU9hR,EAAKwhR,EAC5B,CAEAtnT,EAAQ4lC,EAAS,CACnB,OAAS5lC,EAAQ1P,GAEjB,OAAO5E,CACT,EAvIAs9S,EAAO6e,UAyKP,SAAmBlzT,EAAMmxC,EAAK27B,GAC5B,IAAI8uI,EAAO9uI,GAAOA,EAAIh3C,QAAW0xB,mBAEjC,GAAmB,mBAARo0J,EACT,MAAM,IAAIjgK,UAAU,4BAGtB,IAAKw3Q,EAAiB3tS,KAAKxlB,GACzB,MAAM,IAAI27C,UAAU,4BAGtB,IAAI1nD,EAAQ2nN,EAAIzqK,GAEhB,IAAKiiR,EAAkB5tS,KAAKvxB,GAC1B,MAAM,IAAI0nD,UAAU,2BAGtB,IAAI5K,EAAM/wC,EAAO,IAAM/L,EACvB,IAAK64E,EAAK,OAAO/7B,EAEjB,GAAI,MAAQ+7B,EAAIumP,OAAQ,CACtB,IAAIA,EAASx+T,KAAK6lD,MAAMoyB,EAAIumP,QAE5B,IAAK7mS,SAAS6mS,GACZ,MAAM,IAAI13Q,UAAU,4BAGtB5K,GAAO,aAAesiR,CACxB,CAEA,GAAIvmP,EAAI5rC,OAAQ,CACd,IAAKoyR,EAAkB9tS,KAAKsnD,EAAI5rC,QAC9B,MAAM,IAAIya,UAAU,4BAGtB5K,GAAO,YAAc+7B,EAAI5rC,MAC3B,CAEA,GAAI4rC,EAAIriE,KAAM,CACZ,IAAK8oT,EAAgB/tS,KAAKsnD,EAAIriE,MAC5B,MAAM,IAAIkxC,UAAU,0BAGtB5K,GAAO,UAAY+7B,EAAIriE,IACzB,CAEA,GAAIqiE,EAAI0mP,QAAS,CACf,IAAIA,EAAU1mP,EAAI0mP,QAElB,IAmFJ,SAAiBriR,GACf,MAAgC,kBAAzBsiR,EAAWt/T,KAAKg9C,EACzB,CArFSjX,CAAOs5R,IAAYhlS,MAAMglS,EAAQ5uR,WACpC,MAAM,IAAI+W,UAAU,6BAGtB5K,GAAO,aAAeyiR,EAAQh+R,aAChC,CAcA,GAZIs3C,EAAI4mP,WACN3iR,GAAO,cAGL+7B,EAAI6mP,SACN5iR,GAAO,YAGL+7B,EAAI8mP,cACN7iR,GAAO,iBAGL+7B,EAAI3jD,SAIN,OAHuC,iBAAjB2jD,EAAI3jD,SACtB2jD,EAAI3jD,SAAS8Q,cAAgB6yC,EAAI3jD,UAGnC,IAAK,MACH4nB,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAI4K,UAAU,8BAI1B,GAAImxB,EAAI+mP,SAIN,OAHuC,iBAAjB/mP,EAAI+mP,SACtB/mP,EAAI+mP,SAAS55R,cAAgB6yC,EAAI+mP,UAGnC,KAAK,EACH9iR,GAAO,oBACP,MACF,IAAK,MACHA,GAAO,iBACP,MACF,IAAK,SACHA,GAAO,oBACP,MACF,IAAK,OACHA,GAAO,kBACP,MACF,QACE,MAAM,IAAI4K,UAAU,8BAI1B,OAAO5K,CACT,EAhRA,IAAI0iR,EAAalgU,OAAOC,UAAUG,SAC9Bm/T,EAAmBv/T,OAAOC,UAAUC,eAcpC0/T,EAAmB,iCAYnBC,EAAoB,wEA0BpBE,EAAoB,sFAUpBC,EAAkB,kCAmEtB,SAAS5hB,EAAW5gQ,EAAK1lC,EAAO2U,GAC9B,EAAG,CACD,IAAIvrB,EAAOs8C,EAAI7L,WAAW75B,GAC1B,GAAa,KAAT5W,GAAkC,IAATA,EAAwB,OAAO4W,CAC9D,SAAWA,EAAQ2U,GACnB,OAAOA,CACT,CAEA,SAAS4xR,EAAS7gQ,EAAK1lC,EAAOqoB,GAC5B,KAAOroB,EAAQqoB,GAAK,CAClB,IAAIj/B,EAAOs8C,EAAI7L,aAAa75B,GAC5B,GAAa,KAAT5W,GAAkC,IAATA,EAAwB,OAAO4W,EAAQ,CACtE,CACA,OAAOqoB,CACT,CAyIA,SAASsC,EAAQ+a,GACf,OAA6B,IAAtBA,EAAIhb,QAAQ,KACfqb,mBAAmBL,GACnBA,CACN,CAqBA,SAASkiR,EAAUliR,EAAK/a,GACtB,IACE,OAAOA,EAAO+a,EAChB,CAAE,MAAOz8C,GACP,OAAOy8C,CACT,CACF,CACA,OAAOsjQ,CACR,CAEoByf,GAuBpB,SAASC,EAAW9/T,EAAOyS,EAAU,CAAC,GAClC,MAAMstT,EAaV,SAA4B//T,GAExB,OAAIA,GAAsB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,GAC5BA,EAAMmzD,OAAO,GAEjBnzD,CACX,CAnBuBggU,CAAmBhgU,GACtC,IAAKyS,EAAQwtT,WACT,IACI,OAAOv9R,KAAKwD,MAAM65R,EACtB,CACA,MAAO1/T,GAEP,CAIJ,OAAOL,CACX,CASA,MAAM4sQ,EACF,WAAAl+O,CAAYi+O,EAASuzD,EAAoB,CAAC,GACtCv8T,KAAKw8T,gBAAkB,GACvBx8T,KAAKy8T,qBAAsB,EAC3Bz8T,KAAKquF,OAAS,KACV,IAAKruF,KAAKy8T,oBACN,OAEJ,MAAMC,EAAkB18T,KAAKgpQ,QAC7BhpQ,KAAKgpQ,QAAU8xD,EAAcv4R,MAAM4Q,SAASspQ,QAC5Cz8S,KAAK28T,cAAcD,EAAgB,EAEvC,MAAME,EAAiC,oBAAbzpR,SAA2B,GAAKA,SAASspQ,OACnEz8S,KAAKgpQ,QA9Cb,SAAsBA,GAClB,MAAuB,iBAAZA,EACA8xD,EAAcv4R,MAAMymO,GAEH,iBAAZA,GAAoC,OAAZA,EAC7BA,EAGA,CAAC,CAEhB,CAoCuB6zD,CAAa7zD,GAAW4zD,GACvC58T,KAAKu8T,kBAAoBA,EACzBv8T,KAAKy8T,oBA1Db,WACI,MAAMK,EAAiC,oBAAXhsT,YACtB5U,EACA4U,OAAOisT,yBACb,MAA4B,kBAAjBD,EACAA,EAGgB,iBAAb3pR,UAAoD,iBAApBA,SAASspQ,MAC3D,CAiDmCugB,EAC/B,CACA,WAAAC,CAAYtoL,GACR,IAAK,IAAI7wI,EAAI,EAAGA,EAAI9D,KAAKw8T,gBAAgBr8T,SAAU2D,EAC/C9D,KAAKw8T,gBAAgB14T,GAAG6wI,EAEhC,CACA,aAAAgoL,CAAcD,GACI,IAAIhoS,IAAI/4B,OAAOwK,KAAKu2T,GAAiBn1T,OAAO5L,OAAOwK,KAAKnG,KAAKgpQ,WACrExqQ,SAAS4J,IACPs0T,EAAgBt0T,KAAUpI,KAAKgpQ,QAAQ5gQ,IACvCpI,KAAKi9T,YAAY,CACb70T,OACA/L,MAAO8/T,EAAWn8T,KAAKgpQ,QAAQ5gQ,KAEvC,GAER,CACA,aAAA80T,GACIl9T,KAAKm9T,gBAAkB91Q,YAAYrnD,KAAKquF,OAAQ,IACpD,CACA,YAAA+uO,GACQp9T,KAAKm9T,iBACLn1Q,cAAchoD,KAAKm9T,gBAE3B,CACA,GAAA9rT,CAAIjJ,EAAM0G,EAAU,CAAC,GAIjB,OAHKA,EAAQuuT,aACTr9T,KAAKquF,SAEF8tO,EAAWn8T,KAAKgpQ,QAAQ5gQ,GAAO0G,EAC1C,CACA,MAAAwgF,CAAOxgF,EAAU,CAAC,GACTA,EAAQuuT,aACTr9T,KAAKquF,SAET,MAAM1xF,EAAS,CAAC,EAChB,IAAK,IAAIyL,KAAQpI,KAAKgpQ,QAClBrsQ,EAAOyL,GAAQ+zT,EAAWn8T,KAAKgpQ,QAAQ5gQ,GAAO0G,GAElD,OAAOnS,CACX,CACA,GAAAgC,CAAIyJ,EAAM/L,EAAOyS,GAETA,EADAA,EACUnT,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGhV,KAAKu8T,mBAAoBztT,GAGzD9O,KAAKu8T,kBAEnB,MAAMhuK,EAA+B,iBAAVlyJ,EAAqBA,EAAQ0iC,KAAKL,UAAUriC,GACvE2D,KAAKgpQ,QAAUrtQ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGhV,KAAKgpQ,SAAU,CAAE,CAAC5gQ,GAAOmmJ,IACpEvuJ,KAAKy8T,sBACLtpR,SAASspQ,OAASqe,EAAcQ,UAAUlzT,EAAMmmJ,EAAaz/I,IAEjE9O,KAAKi9T,YAAY,CAAE70T,OAAM/L,QAAOyS,WACpC,CACA,MAAAyC,CAAOnJ,EAAM0G,GACT,MAAM83H,EAAgB93H,EAAUnT,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGhV,KAAKu8T,mBAAoBztT,GAAU,CAAE8sT,QAAS,IAAI53S,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIy3S,OAAQ,IACnKz7T,KAAKgpQ,QAAUrtQ,OAAOqZ,OAAO,CAAC,EAAGhV,KAAKgpQ,gBAC/BhpQ,KAAKgpQ,QAAQ5gQ,GAChBpI,KAAKy8T,sBACLtpR,SAASspQ,OAASqe,EAAcQ,UAAUlzT,EAAM,GAAIw+H,IAExD5mI,KAAKi9T,YAAY,CAAE70T,OAAM/L,WAAOH,EAAW4S,WAC/C,CACA,iBAAAwuT,CAAkBnnT,GACdnW,KAAKw8T,gBAAgB36T,KAAKsU,GACtBnW,KAAKy8T,qBAAuD,IAAhCz8T,KAAKw8T,gBAAgBr8T,SAC3B,iBAAX23C,QAAuB,gBAAiBA,OAC/CA,OAAOylR,YAAYtnR,iBAAiB,SAAUj2C,KAAKquF,QAGnDruF,KAAKk9T,gBAGjB,CACA,oBAAAM,CAAqBrnT,GACjB,MAAMslJ,EAAMz7J,KAAKw8T,gBAAgBr+R,QAAQhoB,GACrCslJ,GAAO,GACPz7J,KAAKw8T,gBAAgBzpR,OAAO0oH,EAAK,GAEjCz7J,KAAKy8T,qBAAuD,IAAhCz8T,KAAKw8T,gBAAgBr8T,SAC3B,iBAAX23C,QAAuB,gBAAiBA,OAC/CA,OAAOylR,YAAYniO,oBAAoB,SAAUp7F,KAAKquF,QAGtDruF,KAAKo9T,eAGjB,qBC7eJjhU,EAAOC,QAAU,IAA0B,kDCa3CD,EAAOC,QAJP,SAAqBC,GACnB,OAAO2D,KAAKwc,SAAS/G,IAAIpZ,EAC3B,kECVA,MAiCA,EAjCwB4oB,IACtB,MAAMw4S,GAAgB,OAAax4S,GAC7BmmQ,EAAYqyC,EAAc18T,KAAI28T,GAAQA,EAAKzoS,OAC3C0oS,EAAcF,EAAc18T,KAAI28T,GAAQA,EAAKxjR,aAC7C0jR,EAAaxyC,EAAU,GACvBvvO,EAAauvO,EAAU,GACvBhmQ,EAAagmQ,EAAU,GACvBlxO,EAAayjR,EAAY,GACzBE,EAAeF,EAAY,GAC3B7hQ,EAAe6hQ,EAAY,GACjC,MAAO,CACL9hR,aACA52B,SAAU24S,EACVx4S,aACAqjF,WAAY2iL,EAAU,GACtB0yC,iBAAkB1yC,EAAU,GAC5B2yC,iBAAkB3yC,EAAU,GAC5B4yC,iBAAkB5yC,EAAU,GAC5B6yC,iBAAkB7yC,EAAU,GAC5BiG,iBAAkBjG,EAAU,GAC5BlxO,aACA4hB,eACA+hQ,eACA3hQ,WAAYj/D,KAAKgpC,MAAMiU,EAAa0jR,GACpCzhQ,aAAcl/D,KAAKgpC,MAAM61B,EAAe12C,GACxC84S,aAAcjhU,KAAKgpC,MAAM43R,EAAehiR,GACxCsiR,mBAAoBR,EAAY,GAChCS,mBAAoBT,EAAY,GAChCU,mBAAoBV,EAAY,GAChCW,mBAAoBX,EAAY,GAChCpsC,mBAAoBosC,EAAY,GACjC,oBChCHxhU,EAAOC,QAAU,IAA0B,+DCUnC,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqF/b,MACzF,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SACI,4EAA4Erc,MACxE,KAERsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,4BAEVE,SAAU,CACNC,QAAS,iBACTE,QAAS,oBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,YACNpU,EAAG,YACHqU,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aACJC,EAAG,UACHC,GAAI,SAERC,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA5DyCC,CAAQ,EAAQ,2BCP1DlgB,EAAOC,QAAU,IAA0B,sICKpC,SAASmiU,EAAoB1xO,GAClC,OAAO3iF,GAAuB,gBAAoB,KAAgB,CAChEunD,MAAO,CACL39C,MAAO,CACLsyC,QAAQ,EACR/D,gBAAiB,KAGP,gBAAoBwqC,EAAWlxF,OAAOqZ,OAAO,CAAC,EAAG9K,IACnE,CAEA,MA+DA,EA/DqB,CAAC2iF,EAAW2xO,EAAkBC,EAAgBC,IA6D1DH,GA5DWr0T,IAChB,MACEmoD,UAAWw5B,EAAkB,MAC7B70C,GACE9sC,EACEy8Q,EAAY,SAAa,OACxBg4C,EAAaC,GAAkB,WAAe,IAC9CC,EAAYC,GAAiB,WAAe,IAC5ChtP,EAAMitP,IAAW,QAAe,EAAO,CAC5C1iU,MAAO6N,EAAM4nE,QAET,aACJzgB,GACE,aAAiB,MACfgB,EAAYhB,EAAamtQ,GAAoB,SAAU3yO,GAC7D,aAAgB,KAGd,GADAkzO,GAAQ,GACsB,oBAAnBtiM,eAAgC,CACzC,MAAMuiM,EAAiB,IAAIviM,gBAAe9hG,IACxC,MAAMuuC,EAAUvuC,EAAQ,GAAGxX,OAC3By7S,EAAe11P,EAAQpjB,aAAe,GACtCg5Q,EAAc51P,EAAQmqN,YAAY,IAE9B4rC,EAAW53Q,aAAY,KAC3B,IAAI3iC,EACJ,MAAMw6S,EAAcT,EAAiB,IAAIA,EAAepsQ,KAAe,IAAIA,aACrEsd,EAAqC,QAA5BjrD,EAAKiiQ,EAAU7hR,eAA4B,IAAP4f,OAAgB,EAASA,EAAGykD,cAAc+1P,GACzFvvP,IACF3nB,cAAci3Q,GACdD,EAAe9oT,QAAQy5D,GACzB,GACC,IACH,MAAO,KACL3nB,cAAci3Q,GACdD,EAAer7Q,YAAY,CAE/B,IACC,IACH,IAAIw7Q,EAAcxjU,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG9K,GAAQ,CACxD8sC,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGgiC,GAAQ,CAC7C0J,OAAQ,IAEVoxB,OACApC,QAASoC,EACT9B,kBAAmB,IAAM22M,EAAU7hR,UAEjC45T,IACFS,EAAcT,EAAUS,IAE1B,MAAM1pQ,EAAc,CAClBytC,cAAey7N,EACfznR,SAAU,WACV8qD,SAAU68N,GAEZ,OAAoB,gBAAoB,MAAO,CAC7C7+S,IAAK2mQ,EACL3vO,MAAOye,GACO,gBAAoBo3B,EAAWlxF,OAAOqZ,OAAO,CAAC,EAAGmqT,IAAc,oWClE3E,SAAWlmT,GAAU,aAWhBA,EAAOC,aAAa,KAAM,CAC/BkmT,mBACI,qHAAqHhiU,MACjH,KAERiiU,iBACI,qHAAqHjiU,MACjH,KAER+b,OAAQ,SAAUmmT,EAAgBjmT,GAC9B,OAAKimT,EAGiB,iBAAXjmT,GACP,IAAIuU,KAAKvU,EAAOlc,UAAU,EAAGkc,EAAO8kB,QAAQ,UAGrCn+B,KAAKu/T,kBAAkBD,EAAexzQ,SAEtC9rD,KAAKw/T,oBAAoBF,EAAexzQ,SARxC9rD,KAAKw/T,mBAUpB,EACAjmT,YAAa,oDAAoDnc,MAAM,KACvEqc,SAAU,yDAAyDrc,MAC/D,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1C8sB,SAAU,SAAUzP,EAAO6pC,EAASj6B,GAChC,OAAI5P,EAAQ,GACD4P,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAJ,KAAM,SAAU9nB,GACZ,MAAyC,OAAjCA,EAAQ,IAAIkgC,cAAc,EACtC,EACArY,cAAe,gBACfnQ,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJE,IAAK,qBACLE,KAAM,4BAEVolT,WAAY,CACRjlT,QAAS,iBACTE,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,WACN,OACS,IADD7a,KAAKm/B,MAEE,gCAEA,gCAEnB,EACArkB,SAAU,KAEdP,SAAU,SAAU7b,EAAKiqF,GACrB,IAtEYxmF,EAsER8Z,EAASjc,KAAK0/T,YAAYhhU,GAC1B+b,EAAQkuE,GAAOA,EAAIluE,QAIvB,OA3EYtY,EAwEG8Z,GAtEM,oBAAbwiD,UAA4Bt8D,aAAiBs8D,UACX,sBAA1C9iE,OAAOC,UAAUG,SAASQ,KAAK4F,MAsE3B8Z,EAASA,EAAO9U,MAAMwhF,IAEnB1sE,EAAOgc,QAAQ,KAAMxd,EAAQ,IAAO,EAAI,MAAQ,OAC3D,EACAM,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNpU,EAAG,oBACHqU,GAAI,kBACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aAERC,uBAAwB,WACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9GyCC,CAAQ,EAAQ,qBCL1D,IAAI3gB,EAAcC,OAAOC,UAgBzBO,EAAOC,QAPP,SAAqBC,GACnB,IAAI85P,EAAO95P,GAASA,EAAM0uB,YAG1B,OAAO1uB,KAFqB,mBAAR85P,GAAsBA,EAAKv6P,WAAcF,EAG/D,oBCfAS,EAAOC,QAAU,IAA0B,yGCG5B,WAA4B,YAA0B,mKCIrE,MAiCA,EAjCgB,CAACujU,EAAShoT,EAAW41D,KACnC,MAAM,KACJqyP,GACE,aAAiB,OACd,CAAE9rT,EAAO69C,IAAU,UACpBkuQ,GAAW,QAAS75Q,IACxB,MAAM/lC,EAAO0/S,EAAQ76T,QACrB,IAAK86T,aAAmC,EAASA,EAAKjtQ,YAAc1yC,EAClE,OAEF,MAAM6/S,EAAa7/S,EAAKkpD,cAAc,IAAI,QAAiBlpD,GACrD,WACJ8/S,GACEH,GAAQ,CAAC,GAEZG,GAAc,KAAgBD,EAAY,CACzCnoT,YACA7D,QACAy5D,YACAvnB,QACA2L,UACA,IAEE69E,EAAQ,WAQd,OANyBxpF,IACvB,IAAIhiD,OAAOwrI,EAAM1qI,SACjB0qI,EAAM1qI,SAAU,QAAI,KAClB+6T,EAAS75Q,EAAM,GACf,CAEmB,oFCrCzB,IAAIiqN,EAAa,EAAQ,QACrBmyB,EAAa,EAAQ,QAErB5/Q,EAAUytP,EAAWztP,QAEzBrmB,EAAOC,QAAUgmS,EAAW5/Q,IAAY,cAAcoL,KAAKjrB,OAAO6f,mCCHlE7mB,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzDm+S,EAAwCj+S,EAAyB,EAAQ,SACzEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIooQ,EAAyB,SAAS9gR,EAAO8V,GACzC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMu8S,EAAwB39S,UAbRe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJyiCC,EAAOmC,WAAWinQ,wFCpH3jChyQ,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,y/BAA0/B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,qDAAqD,mDAAmD,MAAQ,GAAG,SAAW,ueAAue,eAAiB,CAAC,+3CAA+3C,4uCAA4uC,oxFAAoxF,WAAa,MAErnO,4BCPA/Q,EAAOC,QAAU,IAA0B,yICOvC2uG,EAAe,SAAsB7gG,EAAO8V,GAC9C,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiBsnF,oEC8B5C,SAASk1N,EAAcvrO,EAASztF,EAAU,CAAC,GAiCzC,GAhCIA,EAAQi2I,QACLxoD,EAAQwrO,WAAaj5T,EAAQi2I,KAAKijL,aACrCzrO,EAAQwrO,UAAYj5T,EAAQi2I,KAAKijL,YAG9BzrO,EAAQ0rO,KAAQn5T,EAAQm5T,MAC3B1rO,EAAQ0rO,IAAMn5T,EAAQi2I,KAAKhwI,IAAMjG,EAAQi2I,KAAKxzG,OAASziC,EAAQi2I,KAAKmjL,WAIxE3rO,EAAQhyD,UAAYz7B,EAAQy7B,YAAa,UAErCz7B,EAAQq5T,qBACV5rO,EAAQ4rO,mBAAqBr5T,EAAQq5T,oBAGnCr5T,EAAQs5T,iBACV7rO,EAAQ6rO,eAAiBt5T,EAAQs5T,gBAE/Bt5T,EAAQysP,MAEVh/J,EAAQg/J,IAA6B,KAAvBzsP,EAAQysP,IAAIvzP,OAAgB8G,EAAQysP,KAAM,gBAErCx3P,IAAjB+K,EAAQqsB,OACVohE,EAAQphE,KAAOrsB,EAAQqsB,OAEpBohE,EAAQ0rO,KAAOn5T,EAAQm5T,MAC1B1rO,EAAQ0rO,IAAM,GAAGn5T,EAAQm5T,OAEI,iBAApBn5T,EAAQuvP,UACjB9hK,EAAQ8hK,QAAUvvP,EAAQuvP,SAExB9hK,EAAQ6rO,eACV7rO,EAAQrzB,cAAWnlE,OACd,GAAgC,iBAArB+K,EAAQo6D,SACxBqzB,EAAQrzB,SAAWp6D,EAAQo6D,aACtB,CACL,MAAMA,EAAWqzB,EAAQhyD,UAAYgyD,EAAQ8hK,QAC7C9hK,EAAQrzB,SAAWA,GAAY,EAAIA,EAAW,CAChD,CACIp6D,EAAQtF,UACV+yF,EAAQ/yF,QAAUsF,EAAQtF,SAExBsF,EAAQu5T,cACV9rO,EAAQ8rO,YAAcv5T,EAAQu5T,cAE3B9rO,EAAQwrO,WAAaj5T,EAAQi5T,YAChCxrO,EAAQwrO,UAAYj5T,EAAQi5T,YAEzBxrO,EAAQp8C,WAAarxC,EAAQqxC,YAChCo8C,EAAQp8C,UAAYrxC,EAAQqxC,WAEA,iBAAnBrxC,EAAQorB,SACjBqiE,EAAQriE,OAASprB,EAAQorB,QAEvBprB,EAAQmF,SACVsoF,EAAQtoF,OAASnF,EAAQmF,OAE7B,wQC7EA,IAAIwzS,GAeA,UACFzsQ,SAASgjD,gBAAgBlgD,iBAAiB,SAdnBv5C,IACvBkjT,EAAgB,CACd/lR,EAAGn9B,EAAE+jU,MACL9kT,EAAGjf,EAAEgkU,OAKPt4Q,YAAW,KACTw3P,EAAgB,IAAI,GACnB,IAAI,IAI8D,GAEvE,MAiHA,EAjHc11S,IACZ,IAAIwa,EACJ,MACEsrD,kBAAmBq+O,EAAwB,aAC3Ch9P,EAAY,UACZ9oB,EACAt3B,MAAO0vT,GACL,aAAiB,MACfC,EAAelkU,IACnB,MAAM,SACJqxF,GACE7jF,EACJ6jF,SAAoDA,EAASrxF,EAAE,GAgB7D21D,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,cACT24D,EAAa,KACbwB,EAAI,cACJu9B,EAAa,SACbF,EAAQ,aACRhiB,EAAY,uBACZsiB,GAAyB,EAAI,MAC7Bz4D,EAAK,QAEL04B,EAAO,MACP/xB,EAAQ,IAAG,OACXswD,EACA0qC,WAAY8lK,EACZ/uM,OAAQgvM,EAAW,SACnB9mS,EAAQ,QACR8qG,GACEx4G,EACJkzD,EAzFgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAkFgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,gBAAiB,OAAQ,gBAAiB,WAAY,eAAgB,yBAA0B,QAAS,UAAW,QAAS,SAAU,aAAc,SAAU,WAAY,YAC5NmoD,EAAYhB,EAAa,QAASw6B,GAClC9pC,EAAgBsP,IAEhBlH,GAAU,OAAakI,IACtBy5B,EAAYn6B,EAAQo6B,IAAa,QAAS15B,EAAWlI,GACtD02Q,EAAwB,IAAWxxN,EAAe,CACtD,CAAC,GAAGh9C,gBAAyB88C,EAC7B,CAAC,GAAG98C,cAAqC,QAAd9pB,IAEvBu4R,EAA0B,OAAX7yN,GAAoByU,EAGlC,KAH0D,gBAAoB,IAAQ/mH,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CACpH4iG,KA3CepwG,IACf,MAAM,KACJowG,GACE5iG,EACJ4iG,SAA4CA,EAAKpwG,EAAE,EAwCnDqxF,SAAU6yO,MAELG,EAAgB16C,EAAiBk5B,IAAsB,QAAY,OAAar1S,IAAQ,OAAay2T,GAAe,CACzH30N,UAAU,EACVuD,UAAwB,gBAAoB,IAAe,CACzD53F,UAAW,GAAG06C,iBAEhB2uQ,gBAAiBv9S,IAAQ,OAAgB4uC,EAAW5uC,KAIhDk7R,GAAW,OAAY,IAAItsP,cAE1B1X,EAAQsmR,IAAiB,QAAU,QAAS7jQ,EAAUziB,QAE7D,OAAOmxC,EAAwB,gBAAoB,IAAiB,CAClExjD,MAAM,EACNumD,OAAO,GACO,gBAAoB,IAAc9lE,SAAU,CAC1D1sB,MAAO4kU,GACO,gBAAoB,IAAQtlU,OAAOqZ,OAAO,CACxD2oC,MAAOA,GACNyf,EAAW,CACZziB,OAAQA,EACRwyC,kBAA+BjxF,IAAjBixF,EAA6BkhO,EAA2BlhO,EACtE96B,UAAWA,EACXie,cAAe,IAAW3e,EAAQ2e,EAAeyb,EAAW5hC,GAC5D8jD,OAAQ6yN,EACRpxP,QAASoC,QAAmCA,EAAOpC,EACnDkwO,cAAkD,QAAlCl7R,EAAK04C,EAAUwiP,qBAAkC,IAAPl7R,EAAgBA,EAAKk7R,EAC/E3zM,QAAS20N,EACT50N,SAAU+0N,EAAiB,CACzBpuQ,SAAU4sP,EACVhwM,UAAW82K,GACT06C,EACJxxN,UAAW82K,EACX52K,uBAAwBA,EACxBppD,gBAAgB,OAAkBtE,EAAe,OAAQ73C,EAAMm8C,gBAC/DypD,oBAAoB,OAAkB/tD,EAAe,OAAQ73C,EAAM4lG,oBACnEn4F,UAAW,IAAWg6C,EAAQh6C,EAAWgpT,aAAmD,EAASA,EAAahpT,WAClHq/B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG2rT,aAAmD,EAASA,EAAa3pR,OAAQA,GACxH2hG,WAAYh9I,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG2rT,aAAmD,EAASA,EAAahoL,YAAa8lK,GAAkB,CAChKgD,QAAS,IAAWof,EAAuBpiB,aAAyD,EAASA,EAAgBgD,WAE/H/xM,OAAQ/zG,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG2rT,aAAmD,EAASA,EAAajxN,QAASgvM,GAC1HC,SAAUA,IACRj8L,EAAwB,gBAAoB,IAAU,CACxD3uF,QAAQ,EACRu3C,OAAO,EACPs7C,UAAW,CACTupG,KAAM,GAERx4M,UAAW,GAAG06C,oBACVz6C,KAAY,kDC1JpB,QADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+LAAmM,KAAQ,QAAS,MAAS,4GCEpXu7F,EAA2B,gBAAoB,CACjD+tN,kBAAmB,WAA8B,EACjDC,kBAAmB,WAA8B,EACjDC,aAAc,WAAyB,EACvCC,eAAgB,WAA2B,IAEzCj+O,EAAe,SAAsBjgF,GACvC,IAAIm+T,EAAmBn+T,EAAKm+T,iBAC1BC,EAAep+T,EAAKo+T,aACpBC,EAAer+T,EAAKq+T,aACpB5pT,EAAWzU,EAAKyU,SACdioG,EAAc,aAAiB1M,GAC/BsuN,EAAW,SAAa,CAAC,GAC7B,OAAoB,gBAAoBtuN,EAAYpqF,SAAU,CAC5D1sB,OAAO,QAAc,OAAc,CAAC,EAAGwjH,GAAc,CAAC,EAAG,CACvDyhN,kBAAkB,QAAc,OAAc,CAAC,EAAGzhN,EAAYyhN,kBAAmBA,GAIjFJ,kBAAmB,SAA2B94T,EAAMs5T,GAC9CH,GACFA,EAAan5T,EAAM,CACjBs5T,cAAeA,EACfz3D,MAAOw3D,EAAS38T,UAGpB+6G,EAAYqhN,kBAAkB94T,EAAMs5T,EACtC,EACAP,kBAAmB,SAA2B/4T,EAAMmU,GAC9CilT,GACFA,EAAap5T,EAAM,CACjBmU,OAAQA,EACR0tP,MAAOw3D,EAAS38T,UAGpB+6G,EAAYshN,kBAAkB/4T,EAAMmU,EACtC,EACA6kT,aAAc,SAAsBh5T,EAAMkgC,GACpClgC,IACFq5T,EAAS38T,SAAU,QAAc,OAAc,CAAC,EAAG28T,EAAS38T,SAAU,CAAC,GAAG,OAAgB,CAAC,EAAGsD,EAAMkgC,KAEtGu3E,EAAYuhN,aAAah5T,EAAMkgC,EACjC,EACA+4R,eAAgB,SAAwBj5T,GACtC,IAAIu5T,GAAW,OAAc,CAAC,EAAGF,EAAS38T,gBACnC68T,EAASv5T,GAChBq5T,EAAS38T,QAAU68T,EACnB9hN,EAAYwhN,eAAej5T,EAC7B,KAEDwP,EACL,EAEA,4BCxDAzb,EAAOC,QAAU,IAA0B,kHCMpC,MAAM6lJ,EAAoB,KAC/B,MAAM,OAAEv7E,IAAWuyB,EAAAA,EAAAA,KAGnB,GAAI2oO,EAAAA,GAAyBh0S,KAAK84C,GAChC,MAAO,GAAGA,aAIZ,MAAMp9B,GAAS4/N,EAAAA,EAAAA,MAEf,OAAO5/N,EAAS,oBAAoBA,IAAW,EAAE,+BCfnD3tC,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAQG,KAAOA,EACfH,EAAA,aAAkB,EAClBA,EAAQ0xB,KAAOA,EACf1xB,EAAQylU,SAAWA,EACnBzlU,EAAQ0lU,gBAAa,EACrB1lU,EAAQ2lU,YAAcA,EACtB3lU,EAAQgkC,QAAUA,EAClBhkC,EAAQ4lU,YAAcA,EAEtB,IAAIC,EAAS,CAAC,EACVC,EAAgB,GAMhBJ,EAAa1lU,EAAQ0lU,WAAa,SAAoB56T,GACxDg7T,EAAcrgU,KAAKqF,EACrB,EAaA,SAASk5B,EAAQvR,EAAOlR,GASxB,CAGA,SAASmQ,EAAKe,EAAOlR,GASrB,CACA,SAASokT,IACPE,EAAS,CAAC,CACZ,CACA,SAAS1lU,EAAKixB,EAAQqB,EAAOlR,GACtBkR,GAAUozS,EAAOtkT,KACpB6P,GAAO,EAAO7P,GACdskT,EAAOtkT,IAAW,EAEtB,CAGA,SAASqkT,EAAYnzS,EAAOlR,GAC1BphB,EAAK6jC,EAASvR,EAAOlR,EACvB,CAGA,SAASkkT,EAAShzS,EAAOlR,GACvBphB,EAAKuxB,EAAMe,EAAOlR,EACpB,CACAqkT,EAAYF,WAAaA,EACzBE,EAAYD,YAAcA,EAC1BC,EAAYH,SAAWA,EACRzlU,EAAA,QAAkB4lU,0ECzEQ,SAAmBlzT,IACnD,CACL1G,KAAM,yBACN,KAAA2xB,CAAMxb,GAGJA,EAAOyjE,GAAG,kBAAkBiuO,KAC1B,QAAoBA,GAAU,CAAC36P,EAAM/1D,KACnC,GAAa,UAATA,EAAkB,CACpB,MAAMymD,EAAQ13C,MAAMie,QAAQ+oC,GAAQ,EAAQ,QAAKp5D,EAE7C8pD,KACF,QAA6BA,GAC7BsP,EAAK,GAAKtP,EAEd,IACA,IAGJznC,EAAOyjE,GAAG,sBAAsBh8B,IAE9B,GAAIA,EAAMzmD,KACR,OAGF,MAAMmkS,EAAcnlR,EAAOe,aAAaokR,aACxC,QAAyBA,EAAa19O,EAAM,GAEhD,EAEA,YAAAysC,CAAazsC,GACX,MAAMm8Q,EA+BZ,SAAgDn8Q,GAC9C,MAAMq0G,GAAS,QAAmBr0G,GAElC,GAAKq0G,EAIL,OACEA,EAEGvnJ,QAAO/H,KAAWA,EAAMs/M,WACxBtpN,KAAIgK,GACCA,EAAM8sS,gBACDl8S,OAAOwK,KAAK4E,EAAM8sS,iBACtB/kS,QAAOpU,GAAOA,EAAIk9B,WAAWwmS,KAC7BrhU,KAAIrC,GAAOA,EAAIgF,MAAM0+T,EAA8BjiU,UAEjD,IAGf,CAnDwBkiU,CAAuCr8Q,GAEzD,GAAIm8Q,GAOuBA,EALD,8CAAtBrzT,EAAQwzT,WACc,6CAAtBxzT,EAAQwzT,UACJ,OACA,UAE0Cn8T,IAASA,EAAK/D,MAAK1D,GAAOoQ,EAAQq0S,WAAW5sS,SAAS7X,OAEhF,CAIpB,GAFwB,8CAAtBoQ,EAAQwzT,WACc,0DAAtBxzT,EAAQwzT,UAER,OAAO,KAEPt8Q,EAAM7lB,KAAO,IACR6lB,EAAM7lB,KACToiS,kBAAkB,EAGxB,CAGF,OAAOv8Q,CACT,MA0BJ,MAAMo8Q,EAAgC,0GCxFtC,IAAII,EAAkC,KAQtC,SAASC,EACPx4L,GAEA,MAAM1qI,EAAO,sBACb,QAAWA,EAAM0qI,IACjB,QAAgB1qI,EAAMmjU,EACxB,CAEA,SAASA,IACPF,EAAkC,IAAWG,qBAE7C,IAAWA,qBAAuB,SAAUjmU,GAC1C,MAAMkvJ,EAAclvJ,EAGpB,OAFA,QAAgB,qBAAsBkvJ,KAElC42K,IAAoCA,EAAgCI,oBAE/DJ,EAAgCr7T,MAAMnH,KAAMjC,UAIvD,EAEA,IAAW4kU,qBAAqBE,yBAA0B,CAC5D,kDCjCA,QADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,6LAAiM,KAAQ,QAAS,MAAS,8BCAtXngP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,gCAAiC,EAAQ,SACjEpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,8BAA+B,EAAQ,SAC/DpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,QACzDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,cAAe,EAAQ,SAC/CpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,QAC5DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,QACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,aAAc,EAAQ,SAC9CpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,QACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,QACpDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,cAAe,EAAQ,SAC/CpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,QACrDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,OAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,6BAA8B,EAAQ,SAC9DpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,OAChDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,QAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,aAAc,EAAQ,SAC9CpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,cAAe,EAAQ,SAC/CpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,QACnDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,QAChDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAChDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,SACjDpgP,IAAIruB,OAAOyuQ,aAAa,eAAgB,EAAQ,SAEhDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,QACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,mCAAoC,EAAQ,QACpEpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,8BAA+B,EAAQ,SAC/DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,iCAAkC,EAAQ,SAClEpgP,IAAIruB,OAAOyuQ,aAAa,gBAAiB,EAAQ,QACjDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,8BAA+B,EAAQ,SAC/DpgP,IAAIruB,OAAOyuQ,aAAa,+BAAgC,EAAQ,SAChEpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,gCAAiC,EAAQ,SACjEpgP,IAAIruB,OAAOyuQ,aAAa,kCAAmC,EAAQ,SACnEpgP,IAAIruB,OAAOyuQ,aAAa,oCAAqC,EAAQ,SACrEpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,QACzDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,6BAA8B,EAAQ,OAC9DpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,8BAA+B,EAAQ,SAC/DpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,QAC3DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,QAC3DpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,QACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,+BAAgC,EAAQ,SAChEpgP,IAAIruB,OAAOyuQ,aAAa,gCAAiC,EAAQ,SACjEpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,OACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,QAClDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,QACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,6BAA8B,EAAQ,SAC9DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,6BAA8B,EAAQ,SAC9DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,QACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,QACzDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,QACxDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,iCAAkC,EAAQ,SAClEpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,QACvDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,QACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,iBAAkB,EAAQ,SAClDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,QACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,QACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,kBAAmB,EAAQ,SACnDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,QACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,QACvDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,4BAA6B,EAAQ,SAC7DpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,qBAAsB,EAAQ,SACtDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,yBAA0B,EAAQ,SAC1DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,QACpDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,0BAA2B,EAAQ,SAC3DpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,wBAAyB,EAAQ,SACzDpgP,IAAIruB,OAAOyuQ,aAAa,uBAAwB,EAAQ,SACxDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,2BAA4B,EAAQ,SAC5DpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,SACpDpgP,IAAIruB,OAAOyuQ,aAAa,sBAAuB,EAAQ,SACvDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,oBAAqB,EAAQ,SACrDpgP,IAAIruB,OAAOyuQ,aAAa,mBAAoB,EAAQ,oHCxdpD,MAAM7oO,EAAW,CAAC,EACZ2vB,EAAe,CAAC,EAGtB,SAASm5M,EAAWxjU,EAAM0qI,GACxBhwC,EAAS16F,GAAQ06F,EAAS16F,IAAS,GAClC06F,EAAS16F,GAAQsC,KAAKooI,EACzB,CAaA,SAAS+4L,EAAgBzjU,EAAM0jU,GACxBr5M,EAAarqH,KAChB0jU,IACAr5M,EAAarqH,IAAQ,EAEzB,CAGA,SAAS2jU,EAAgB3jU,EAAMqK,GAC7B,MAAMu5T,EAAe5jU,GAAQ06F,EAAS16F,GACtC,GAAK4jU,EAIL,IAAK,MAAMl5L,KAAWk5L,EACpB,IACEl5L,EAAQrgI,EACV,CAAE,MAAOlN,GACP,KACE,KAAOkI,MACL,0DAA0DrF,aAAe,QAAgB0qI,aACzFvtI,EAEN,CAEJ,oBClDAP,EAAOC,QAAU,IAA0B,qJCK5B,SAASgnU,EAAS3xQ,EAAO4xQ,EAAahvQ,GACnD,IAAI3vC,GACY,QAAc,kBAA9B,MACM4+S,EAAc7xQ,GAAS,CAAC,EACxB8xQ,GAA4C,IAAxBD,EAAYE,SAAsBH,EAGvDA,EAHqE1nU,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG,MAAgB,CACxHwqE,OAAgG,QAAvF96D,EAAK2+S,aAAiD,EAASA,EAAY7jP,cAA2B,IAAP96D,EAAgBA,EAAK,KAAc86D,OAC3I5tB,OAAQyxQ,aAAiD,EAASA,EAAYzxQ,SAE1E6xQ,GAAW,SAMjB,OAAO,QAAQ,KACb,IAAI/+S,EAAIC,EACR,IAAK8sC,EACH,OAAO4xQ,EAGT,MAAM/tP,EAAmB35E,OAAOqZ,OAAO,CAAC,EAAGuuT,EAAkB3wQ,YAC7Dj3D,OAAOwK,KAAKsrD,EAAMmB,YAAc,CAAC,GAAGp0D,SAAQk4I,IAC1CphE,EAAiBohE,GAAiB/6I,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGsgE,EAAiBohE,IAAiBjlF,EAAMmB,WAAW8jF,GAAe,IAEtI,MAAMgtL,EAAY,WAAWD,EAASxrS,QAAQ,KAAM,MAC9C0rS,GAA8C,QAA7Bj/S,EAAK4+S,EAAY1xQ,cAA2B,IAAPltC,EAAgBA,EAAK6+S,EAAkB3xQ,SAAWj2D,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CACtJkmB,OAAQm5B,aAAuC,EAASA,EAAOhC,WAC1B,iBAA7BkxQ,EAAkB3xQ,OAAsB2xQ,EAAkB3xQ,OAAS,CAAC,GAAkC,iBAAvB0xQ,EAAY1xQ,OAAsB0xQ,EAAY1xQ,OAAS,CAAC,GAAI,CACnJlzD,IAAmC,iBAAvB4kU,EAAY1xQ,SAAsD,QAA7BjtC,EAAK2+S,EAAY1xQ,cAA2B,IAAPjtC,OAAgB,EAASA,EAAGjmB,MAAQglU,IAG5H,OAAO/nU,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGuuT,GAAoBD,GAAc,CACrFxvT,MAAOnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGuuT,EAAkBzvT,OAAQwvT,EAAYxvT,OAC7E8+C,WAAY0iB,EACZ1jB,OAAQ+xQ,GACR,GACD,CAACL,EAAaC,IAAoB,CAAC9iT,EAAM3gB,IAAS2gB,EAAKre,MAAK,CAACwhU,EAAWnwT,KACzE,MAAMowT,EAAY/jU,EAAK2T,GACvB,QAAQ,OAAQmwT,EAAWC,GAAW,EAAK,KAE/C,oBC7CA1nU,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,kDCgB3CD,EAAOC,QAJP,WAEA,2KCAA,SAAS0nU,EAEP7rN,EACAvlB,GAEA,OAAO,UAAkBoxO,iBAAiB7rN,GAAW,QAA+BvlB,GACtF,CASA,SAASqxO,EAAepmT,EAASqmT,GAG/B,MAAMz5P,EAAkC,iBAAnBy5P,EAA8BA,OAAiB9nU,EAC9D+K,EAAoC,iBAAnB+8T,EAA8B,CAAEA,uBAAmB9nU,EAC1E,OAAO,UAAkB6nU,eAAepmT,EAAS4sD,EAAOtjE,EAC1D,CASA,SAASg9T,EAAaj+Q,EAAO0sC,GAC3B,OAAO,UAAkBuxO,aAAaj+Q,EAAO0sC,EAC/C,CAQA,SAASvlF,EAAW/E,EAAMnB,IACxB,UAAoBkG,WAAW/E,EAAMnB,EACvC,CA4CA,SAASi9T,EAAQhnL,IACf,UAAoBgnL,QAAQhnL,EAC9B,CAaA,SAASinL,IACP,OAAO,UAAoBA,aAC7B,CAwHA,SAASC,EAAkBjuT,IACzB,UAAoBiuT,kBAAkBjuT,EACxC,sKC/OAha,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,qECC3C,IAAI2pE,EAAc,EAAQ,QACtBs+P,EAAuB,EAAQ,QAC/BC,EAA2B,EAAQ,QAEvCnoU,EAAOC,QAAU2pE,EAAc,SAAUniD,EAAQllB,EAAKrC,GACpD,OAAOgoU,EAAqB15S,EAAE/G,EAAQllB,EAAK4lU,EAAyB,EAAGjoU,GACzE,EAAI,SAAUunB,EAAQllB,EAAKrC,GAEzB,OADAunB,EAAOllB,GAAOrC,EACPunB,CACT,6ICMA,QAZoB,SAAuBwpC,EAAc/wD,GACvD,IAAIk7E,GAAkB,QAAenqB,EAAc,CAC/C/wD,MAAOA,IAETo7E,GAAmB,OAAeF,EAAiB,GACnDgtP,EAAc9sP,EAAiB,GAC/BqhN,EAAWrhN,EAAiB,GAI9B,MAAO,EAHK,IAAAxsB,UAAQ,WAClB,OAAO,QAAcs5Q,EACvB,GAAG,CAACA,IACWzrC,EACjB,6HCTA,SACEtqQ,SAAU,IACVitF,WAAY,IACZl8G,KAAM,IACNs0C,MAAO,IACP2nE,KAAM,IACN94G,QAAS,qDCVX,QADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4IAA+I,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wUAA4U,KAAQ,cAAe,MAAS,oGCDvwBg7F,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EASe,SAASu7T,EAAYC,GAClC,MAAM,SACFv3S,GACEu3S,EACJC,EAAYhnO,EAAO+mO,EAAiB,CAAC,aACjCE,EAAiBhpU,OAAOqZ,OAAO,CAAC,EAAGkY,GACzCvxB,OAAOwK,KAAK,KAAW3H,SAAQsV,WACtB6wT,EAAe7wT,EAAM,IAE9B,MAAM8wT,EAAcjpU,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG0vT,GAAYC,GAQhE,IAA2B,IAAvBC,EAAYx+Q,OAAkB,CAChC,MAAMy+Q,EAAe,KACrBD,EAAYljO,mBAAqBmjO,EACjCD,EAAYrkR,kBAAoBskR,EAChCD,EAAYlpR,mBAAqBmpR,CACnC,CAwIA,OAtImBlpU,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG4vT,GAAc,CAE7EzhO,iBAAkByhO,EAAY7kR,mBAC9B+kR,sBAAuBF,EAAYv0M,UACnCtzD,eAAgB6nQ,EAAYG,oBAC5BtoR,yBAA0BmoR,EAAYp9S,kBAEtCw9S,cAAeJ,EAAYr+S,iBAC3B65B,YAAY,OAAcwkR,EAAYK,qBAAsBL,EAAYr+S,kBAExE43B,qBAAsBymR,EAAY3jR,oBAClCvE,kBAAmBkoR,EAAY3jR,oBAC/B4a,iBAAkB+oQ,EAAYx9S,UAC9B89S,eAAgBN,EAAYvb,mBAC5BztQ,qBAAsBgpR,EAAYnjR,kBAClCv7B,oBAAqB0+S,EAAYlL,WACjCyL,eAAgBP,EAAYzlR,WAC5BkkD,iBAAkBuhO,EAAY7kR,mBAC9BmxE,kBAAmB0zM,EAAYv0M,UAC/BshK,UAAWizC,EAAYnjR,kBACvBmwO,eAAgBgzC,EAAYx9S,UAC5BnB,mBAAmB,OAAc2+S,EAAY5kR,aAAc4kR,EAAYr+S,kBACvEg5B,qBAAqB,OAAcqlR,EAAY1kR,eAAgB0kR,EAAYr+S,kBAE3E22B,aAAc0nR,EAAY/oR,WAE1B6O,eAAwC,EAAxBk6Q,EAAYj+S,UAE5BA,UAAWi+S,EAAYj+S,UACvBf,oBAA6C,EAAxBg/S,EAAYj+S,UAEjCy+S,uBAAwBR,EAAYv8S,cAAgB,EACpDm6B,mBAAoBoiR,EAAYp9S,kBAChC+6B,oBAAqBqiR,EAAYn0M,eACjC+4L,yBAA0Bob,EAAYl0M,oBACtC+oM,4BAA6BmL,EAAYv0M,UACzCxqG,kBAAmB++S,EAAYG,oBAC/Bh/S,gBAAgB,OAAc6+S,EAAYn0M,eAAgBm0M,EAAYr+S,kBACtEk4B,SAAUmmR,EAAYnmR,SACtBvD,aAAc0pR,EAAY1pR,aAC1B23P,eAAgB+xB,EAAY/xB,eAC5Bl3P,eAAgBipR,EAAYjpR,eAC5BR,eAAgBypR,EAAYzpR,eAC5BmH,iBAAkB,IAClB+uE,eAAgB,IAChBznE,eAAgB,OAChBG,oBAAqB,OACrBC,oBAAqB,OACrBnN,yBAA0B,GAC1BwB,2BAA4B,EAC5BxD,WAAY+pR,EAAYS,QACxB1jR,UAAWijR,EAAYU,OACvBrjR,UAAW2iR,EAAYW,OACvBvrR,QAAS4qR,EAAY3vS,KACrB68P,UAAW8yC,EAAYY,OACvBxpQ,UAAW4oQ,EAAYa,OACvBhkO,UAAWmjO,EAAYc,OACvB3zC,2BAA4B6yC,EAAYa,OACxCE,yBAA0Bf,EAAYgB,OACtCl/S,yBAA0Bk+S,EAAYgB,OACtCC,uBAAwBjB,EAAYW,OACpCO,2BAA4BlB,EAAY3vS,KACxC8wS,yBAA0BnB,EAAYU,OACtChiO,UAAWshO,EAAYS,QACvBnkO,SAAU0jO,EAAYU,OACtBvpQ,SAAU6oQ,EAAYW,OACtB7kR,OAAQkkR,EAAY3vS,KACpB+wS,SAAUpB,EAAYY,OACtBxzC,SAAU4yC,EAAYa,OACtBQ,SAAUrB,EAAYc,OACtBQ,UAAWtB,EAAYuB,QACvB9qR,UAAW,uIAKXC,mBAAoB,uIAKpB8qR,kBAAmB,mIAKnBC,SApGe,IAqGfC,YArGe,IAsGfC,YAAaC,IACbA,SAtGe,IAuGfC,YAvGe,IAwGfv2C,YAAaw2C,IACbA,SAxGe,IAyGfC,YAzGe,IA0GfC,YAAaC,IACbA,SA1Ge,IA2GfC,YA3Ge,IA4GfC,YAAaC,KACbA,SA5Ge,KA6GfC,YA7Ge,KA8GfC,YAAaC,KACbA,UA9GgB,KA+GhBC,aA/GgB,KAgHhBC,sBAAuB,kCACvBC,cAAe,0BACI,IAAI,KAAU,uBAAuBj0Q,qCACxC,IAAI,KAAU,uBAAuBA,wCAClC,IAAI,KAAU,uBAAuBA,sBAExDk0Q,qBAAsB,0IAKtBC,oBAAqB,uIAKrBC,kBAAmB,uIAKnBC,oBAAqB,0IAKrBC,0BAA2B,4CAC3BC,2BAA4B,6CAC5BC,yBAA0B,4CAC1BC,4BAA6B,+CAC3BnD,EAEN,oBC/KA,IAAIv1T,EAAW,EAAQ,QACnB24T,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QAc1B7rU,EAAOC,QAJP,SAAkBs9B,EAAMuf,GACtB,OAAO+uR,EAAYD,EAASruS,EAAMuf,EAAO7pC,GAAWsqB,EAAO,GAC7D,oBCdAv9B,EAAOC,QAAU,IAA0B,+DCUnC,SAAW6c,GAAU,aAIzB,IAAI20L,EAAQ,CACR1yL,GAAI,qCAAqC9d,MAAM,KAC/C+d,EAAG,iCAAiC/d,MAAM,KAC1Cge,GAAI,iCAAiChe,MAAM,KAC3Cie,EAAG,iCAAiCje,MAAM,KAC1Cke,GAAI,iCAAiCle,MAAM,KAC3Cme,EAAG,6BAA6Bne,MAAM,KACtCoe,GAAI,6BAA6Bpe,MAAM,KACvCqe,EAAG,iCAAiCre,MAAM,KAC1Cse,GAAI,iCAAiCte,MAAM,KAC3Cue,EAAG,wBAAwBve,MAAM,KACjCwe,GAAI,wBAAwBxe,MAAM,MAKtC,SAASic,EAAO4wP,EAAOluP,EAAQs7F,GAC3B,OAAIA,EAEOt7F,EAAS,IAAO,GAAKA,EAAS,KAAQ,GAAKkuP,EAAM,GAAKA,EAAM,GAI5DluP,EAAS,IAAO,GAAKA,EAAS,KAAQ,GAAKkuP,EAAM,GAAKA,EAAM,EAE3E,CACA,SAASD,EAAuBjuP,EAAQs7F,EAAe34G,GACnD,OAAOqd,EAAS,IAAM1C,EAAOu0L,EAAMlvM,GAAMqd,EAAQs7F,EACrD,CACA,SAAS4wN,EAAyBlsT,EAAQs7F,EAAe34G,GACrD,OAAO2a,EAAOu0L,EAAMlvM,GAAMqd,EAAQs7F,EACtC,CAKSp+F,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,uGAAuG/b,MAC3G,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SACI,0EAA0Erc,MACtE,KAERsc,cAAe,kBAAkBtc,MAAM,KACvCuc,YAAa,kBAAkBvc,MAAM,KACrCwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,cACHC,GAAI,uBACJE,IAAK,8BACLE,KAAM,qCAEVE,SAAU,CACNC,QAAS,uBACTE,QAAS,oBACTC,SAAU,qBACVC,QAAS,sBACTC,SAAU,gCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNpU,EAnCR,SAAyBkV,EAAQs7F,GAC7B,OAAOA,EAAgB,iBAAmB,gBAC9C,EAkCQn8F,GAAI8uP,EACJ7uP,EAAG8sT,EACH7sT,GAAI4uP,EACJ3uP,EAAG4sT,EACH3sT,GAAI0uP,EACJzuP,EAAG0sT,EACHzsT,GAAIwuP,EACJvuP,EAAGwsT,EACHvsT,GAAIsuP,EACJruP,EAAGssT,EACHrsT,GAAIouP,GAERnuP,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjGyCC,CAAQ,EAAQ,yDCc1D,QAJA,SAAqBhgB,GACnB,YAAiBH,IAAVG,CACT,iCChBAV,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEXV,OAAO8lB,eAAerlB,EAAS,UAAW,CACtCslB,YAAY,EACZrQ,IAAK,WACD,OAAOsQ,CACX,IAEJ,IAAIC,EAAuBC,EAA0B,EAAQ,SACzDqmT,EAA+BnmT,EAAyB,EAAQ,QAChEC,EAA0BD,EAAyB,EAAQ,SAC/D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CAwCA,IAAIkpI,EAAgB,SAAS5hJ,EAAO8V,GAChC,OAAqB4B,EAAOsB,cAAclB,EAAUK,SAZ1Bc,EA5B9B,SAAwBA,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CA0BsFK,CAAe,CAAC,EAAGtZ,GAXrGkZ,EAAmB,OADeA,EAY2E,CACzGpD,IAAKA,EACLyD,KAAMykT,EAAe7lT,UAbCe,EAAS,CAAC,EAChCznB,OAAO+nB,0BACP/nB,OAAOgoB,iBAAiBR,EAAQxnB,OAAO+nB,0BAA0BN,IAhBzE,SAAiBQ,EAAQC,GACrB,IAAI1d,EAAOxK,OAAOwK,KAAKyd,GACvB,GAAIjoB,OAAO2nB,sBAAuB,CAC9B,IAAIQ,EAAUnoB,OAAO2nB,sBAAsBM,GAM3Czd,EAAKtE,KAAKsF,MAAMhB,EAAM2d,EAC1B,CACA,OAAO3d,CACX,CAMQkd,CAAQ1nB,OAAOynB,IAAS5kB,SAAQ,SAASE,GACrC/C,OAAO8lB,eAAe0B,EAAQzkB,EAAK/C,OAAOonB,yBAAyBK,EAAQ1kB,GAC/E,IAEGykB,IATX,IAA8BA,EAAQC,CAgBtC,EAKIzB,EAJmfC,EAAOmC,WAAW+nI,qBCvHzgB,IAAIt3D,EAAa,EAAQ,QACrB2zO,EAAS,EAAQ,QA8BrBhsU,EAAOC,QAJP,SAAuBC,GACrB,OAAOm4F,EAAWn4F,EAAO8rU,EAAO9rU,GAClC,kGCxBO,SAAS+rU,EAAanhU,GAC3B,GAAKA,EAGL,MAAO,CACL+kG,SAAU/kG,EAAQ+kG,SAClBuD,UAAWtoG,EAAQsoG,UAEvB,CAEA,SAAS84N,EAAkBC,GACzB,MAAM,SACJt8N,EAAQ,UACRuD,GACE+4N,GAAsB,CAAC,EAC3B,OAAO,WAAc,KACnB,IAECt8N,KAA0B,IAAbA,IAAoC,IAAduD,GAAqC,OAAdA,GACzD,OAAO,EAET,QAAiBrzG,IAAb8vG,QAAwC9vG,IAAdqzG,EAC5B,OAAO,KAET,IAAIg5N,EAAiB,CACnBh5N,UAAgC,kBAAdA,GAAyC,OAAdA,EAAqBA,OAAYrzG,GAKhF,OAHI8vG,GAAgC,iBAAbA,IACrBu8N,EAAiB5sU,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGuzT,GAAiBv8N,IAE7Du8N,CAAc,GACpB,CAACv8N,EAAUuD,GAChB,CAKA,SAASi5N,IACP,MAAMrlT,EAAS,CAAC,EAChB,IAAK,IAAI9U,EAAOtQ,UAAUoC,OAAQsoU,EAAU,IAAIn6T,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFk6T,EAAQl6T,GAAQxQ,UAAUwQ,GAW5B,OATAk6T,EAAQjqU,SAAQW,IACVA,GACFxD,OAAOwK,KAAKhH,GAAKX,SAAQE,SACNxC,IAAbiD,EAAIT,KACNykB,EAAOzkB,GAAOS,EAAIT,GACpB,GAEJ,IAEKykB,CACT,CAEA,MAAMulT,EAA+B,CAAC,EACvB,SAASC,EAAYC,EAAqBC,GACvD,IAAIC,EAA0B/qU,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK2qU,EAElG,MAAMK,EAAkBV,EAAkBO,GACpCI,EAAqBX,EAAkBQ,GACvCtpB,EAAgD,kBAApBwpB,MAAmCA,aAAyD,EAASA,EAAgBp2Q,UACjJs2Q,EAAgC,WAAc,IAAMttU,OAAOqZ,OAAO,CACtEu6F,UAAwB,gBAAoB,IAAe,OAC1Du5N,IAA0B,CAACA,IAExBI,EAAuB,WAAc,KAGjB,IAApBH,IAGAA,EACKP,EAAuBS,EAA+BD,EAAoBD,IAIxD,IAAvBC,IAGAA,EACKR,EAAuBS,EAA+BD,KAGvDC,EAA8Bj9N,UAAmBi9N,KACxD,CAACF,EAAiBC,EAAoBC,IAEzC,OAAO,WAAc,KACnB,IAA6B,IAAzBC,EACF,MAAO,EAAC,EAAO,KAAM3pB,GAEvB,MAAM,gBACJyhB,GACEiI,GACE,UACJ15N,GACE25N,EACJ,IAAI7iD,EAAkB92K,EACtB,GAAI82K,QAA2D,CAEzD26C,IACF36C,EAAkB26C,EAAgBzxN,IAGpC,MAAM+vM,GAAY,OAAU4pB,GAAsB,GAC9CvtU,OAAOwK,KAAKm5S,GAAWn/S,SACzBkmR,EAA+B,iBAAqBA,GAAiC,eAAmBA,EAAiBi5B,GAA4B,gBAAoB,OAAQ3jT,OAAOqZ,OAAO,CAAC,EAAGsqS,GAAYj5B,GAEnN,CACA,MAAO,EAAC,EAAMA,EAAiBk5B,EAAmB,GACjD,CAAC2pB,EAAsBD,GAC5B,oBCnHA9sU,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,8FC0B3C,MAAM+sU,EAAgB,CACpB,cACA,kBACA,gBACA,mBACA,mBACA,iBACA,YACA,sBACA,cACA,gBACA,YACA,0BAeF,SAASC,EAAmBzzO,GA0B1B,OAvBqBwzO,EAAcpoU,KAAKsoU,IACtC,MAAMC,EAAW3zO,EAAQ0zO,GACnBhtU,EAAQiS,MAAMie,QAAQ+8S,GAAYA,EAASjsU,KAAK,KAAOisU,EAE7D,MAAmB,cAAfD,EAsBR,SAA8BhtU,GAC5B,IAAKA,EACH,OAAO,KAGT,IAAK,MAAM8wC,KAAQ9wC,EAAMe,MAAM,KAC7B,GAAI+vC,EAAKvR,WAAW,QAClB,OAAOuR,EAAKzpC,MAAM,GAItB,OAAO,IACT,CAjCa6lU,CAAqBltU,GAGvBA,GAASA,EAAMe,MAAM,KAAK2D,KAAK8pB,GAAMA,EAAEqN,QAAO,IAIZ73B,QAAO,CAACy6D,EAAKvhB,IACjDA,EAIEuhB,EAAIvzD,OAAOgyC,GAHTuhB,GAIR,IAGqCwgB,MAAKtxC,GAAa,OAAPA,GA2CjD,ouCACWpc,KA5C0Doc,MAEnD,IACtB,oBChFA7tC,EAAOC,QAAU,IAA0B,qECApC,SAASotU,IACd,MAAO,CACLnnT,QAAS,+BACTmM,SAAU,iBACVgtF,KAAM,uBACNC,WAAY,qBACZ/jF,KAAM,CACJre,OAAQ,sCACRkpB,MAAO,8CACP1U,QAAS,yBAEXsL,MAAO,CACL12B,OAAQ,iBACR+qB,OAAQ,4BACRvrB,MAAO,kBACP2hB,OAAQ,kBACR7H,OAAQ,iBACR2b,KAAM,iBACN0B,QAAS,iBACTuD,QAAS,kBACT++E,MAAO,iBACPC,OAAQ,uBACRjyE,MAAO,uBACP8L,IAAK,uBACL3L,IAAK,wBAEPpnC,OAAQ,CACNsB,IAAK,mCACL+3B,IAAK,oCACL1T,IAAK,yCACLyrB,MAAO,2CAET93B,OAAQ,CACNhY,IAAK,mBACL+3B,IAAK,4BACL1T,IAAK,+BACLyrB,MAAO,gCAET5xC,MAAO,CACL8B,IAAK,kCACL+3B,IAAK,sCACL1T,IAAK,yCACLyrB,MAAO,0CAETnxC,QAAS,CACPk5G,SAAU,yCAEZnvF,MAAO,WACL,IAAIg9S,EAAS1qS,KAAKwD,MAAMxD,KAAKL,UAAU1+B,OAEvC,OADAypU,EAAOh9S,MAAQzsB,KAAKysB,MACbg9S,CACT,EAEJ,0BACO,IAAI93S,EAAW63S,oECnDlBE,EAAW,GAAGniU,OAFD,ogCAEoB,KAAKA,OADzB,0tBAC4CnK,MAAM,WAG/DusU,EAAa,QACbC,EAAa,QACjB,SAASjgU,EAAMjL,EAAKw8B,GAClB,OAA+B,IAAxBx8B,EAAIy/B,QAAQjD,EACrB,CAMe,SAASskF,EAAUt1G,GAChC,IACI69P,EADA8hE,EAAW9rU,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAG5EgqQ,GADe,IAAb8hE,EACa,CACbpqN,MAAM,EACN71G,MAAM,EACN81G,MAAM,IAEc,IAAbmqN,EACM,CACbpqN,MAAM,IAGO,OAAc,CAAC,EAAGoqN,GAEnC,IAAI/2L,EAAQ,CAAC,EAYb,OAXAn3I,OAAOwK,KAAK+D,GAAO1L,SAAQ,SAAUE,IAGnCqpQ,EAAatoJ,OAAiB,SAAR/gH,GAAkBiL,EAAMjL,EAAKirU,KAEnD5hE,EAAan+P,MAAQD,EAAMjL,EAAKkrU,IAEhC7hE,EAAaroJ,MAAQgqN,EAASnzT,SAAS7X,MACrCo0I,EAAMp0I,GAAOwL,EAAMxL,GAEvB,IACOo0I,CACT,kDC1CA,QAFkC,iBAAVhiI,QAAsBA,QAAUA,OAAOnV,SAAWA,QAAUmV,gCCU5E,SAAWmI,GAAU,aAIzB,IAAIi7F,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPC,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJl7F,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,2FAA2F/b,MAC/F,KAEJmc,YAAa,mDAAmDnc,MAAM,KACtEqc,SAAU,wDAAwDrc,MAC9D,KAEJsc,cAAe,2BAA2Btc,MAAM,KAChDuc,YAAa,2BAA2Bvc,MAAM,KAE9Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,kBACTE,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,kBACNpU,EAAG,kBACHqU,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJC,EAAG,OACHC,GAAI,OACJC,EAAG,UACHC,GAAI,WAERw4F,SAAU,SAAU3xG,GAChB,OAAOA,EAAOw1B,QAAQ,iBAAiB,SAAUtuB,GAC7C,OAAOwqG,EAAUxqG,EACrB,GACJ,EACA0qG,WAAY,SAAU5xG,GAClB,OAAOA,EAAOw1B,QAAQ,OAAO,SAAUtuB,GACnC,OAAOuqG,EAAUvqG,EACrB,GACJ,EACAuS,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA7FyCC,CAAQ,EAAQ,kCCH1D,SAASsY,EAAMm1S,GACb9pU,KAAK+pU,SAAWD,EAChB9pU,KAAKgL,OACP,CACA2pB,EAAM/4B,UAAUoP,MAAQ,WACtBhL,KAAKs3N,MAAQ,EACbt3N,KAAKqsB,QAAU1wB,OAAO+Q,OAAO,KAC/B,EACAioB,EAAM/4B,UAAUyV,IAAM,SAAU3S,GAC9B,OAAOsB,KAAKqsB,QAAQ3tB,EACtB,EACAi2B,EAAM/4B,UAAU+C,IAAM,SAAUD,EAAKrC,GAInC,OAHA2D,KAAKs3N,OAASt3N,KAAK+pU,UAAY/pU,KAAKgL,QAC9BtM,KAAOsB,KAAKqsB,SAAUrsB,KAAKs3N,QAEzBt3N,KAAKqsB,QAAQ3tB,GAAOrC,CAC9B,EAEA,IAAI2tU,EAAc,4BAChBC,EAAc,QACdC,EAAmB,MACnBC,EAAkB,yCAClBC,EAAqB,2BAGnBC,EAAY,IAAI11S,EAFD,KAGjB21S,EAAW,IAAI31S,EAHE,KAIjB41S,EAAW,IAAI51S,EAJE,KA0EnB,SAASg4H,EAAc95I,GACrB,OACEw3T,EAAUh5T,IAAIwB,IACdw3T,EAAU1rU,IACRkU,EACAzV,EAAMyV,GAAM9R,KAAI,SAAUosC,GACxB,OAAOA,EAAKlV,QAAQmyS,EAAoB,KAC1C,IAGN,CAEA,SAAShtU,EAAMyV,GACb,OAAOA,EAAKlJ,MAAMqgU,IAAgB,CAAC,GACrC,CAyBA,SAASQ,EAASrxR,GAChB,MACiB,iBAARA,GAAoBA,IAA8C,IAAvC,CAAC,IAAK,KAAKhb,QAAQgb,EAAI/P,OAAO,GAEpE,CAUA,SAASqhS,EAAet9R,GACtB,OAAQq9R,EAASr9R,KATnB,SAA0BA,GACxB,OAAOA,EAAKxjC,MAAMugU,KAAsB/8R,EAAKxjC,MAAMsgU,EACrD,CAO6BS,CAAiBv9R,IAL9C,SAAyBA,GACvB,OAAOg9R,EAAgBv8S,KAAKuf,EAC9B,CAGuDw9R,CAAgBx9R,GACvE,CAzHAhxC,EAAOC,QAAU,CACfu4B,MAAOA,EAEPv3B,MAAOA,EAEPuvJ,cAAeA,EAEfnwH,OAAQ,SAAU3pB,GAChB,IAAI47C,EAAQk+F,EAAc95I,GAE1B,OACEy3T,EAASj5T,IAAIwB,IACby3T,EAAS3rU,IAAIkU,GAAM,SAAgB1T,EAAK9C,GAKtC,IAJA,IAAIoX,EAAQ,EACR1P,EAAM0qD,EAAMtuD,OACZyJ,EAAOzK,EAEJsU,EAAQ1P,EAAM,GAAG,CACtB,IAAIopC,EAAOshB,EAAMh7C,GACjB,GACW,cAAT05B,GACS,gBAATA,GACS,cAATA,EAEA,OAAOhuC,EAGTyK,EAAOA,EAAK6kD,EAAMh7C,KACpB,CACA7J,EAAK6kD,EAAMh7C,IAAUpX,CACvB,GAEJ,EAEAuuU,OAAQ,SAAU/3T,EAAMg4T,GACtB,IAAIp8Q,EAAQk+F,EAAc95I,GAC1B,OACE03T,EAASl5T,IAAIwB,IACb03T,EAAS5rU,IAAIkU,GAAM,SAAgBjJ,GAGjC,IAFA,IAAI6J,EAAQ,EACV1P,EAAM0qD,EAAMtuD,OACPsT,EAAQ1P,GAAK,CAClB,GAAY,MAAR6F,GAAiBihU,EAChB,OADsBjhU,EAAOA,EAAK6kD,EAAMh7C,KAE/C,CACA,OAAO7J,CACT,GAEJ,EAEAvM,KAAM,SAAUirL,GACd,OAAOA,EAASjoL,QAAO,SAAUwS,EAAMs6B,GACrC,OACEt6B,GACC23T,EAASr9R,IAAS88R,EAAYr8S,KAAKuf,GAChC,IAAMA,EAAO,KACZt6B,EAAO,IAAM,IAAMs6B,EAE5B,GAAG,GACL,EAEA3uC,QAAS,SAAUqU,EAAM3O,EAAI0pD,IAqB/B,SAAiBa,EAAOk9N,EAAM/9N,GAC5B,IACEzgB,EACAsuH,EACAlvI,EACAu+S,EAJE/mU,EAAM0qD,EAAMtuD,OAMhB,IAAKs7J,EAAM,EAAGA,EAAM13J,EAAK03J,KACvBtuH,EAAOshB,EAAMgtG,MAGPgvK,EAAet9R,KACjBA,EAAO,IAAMA,EAAO,KAItB5gB,IADAu+S,EAAYN,EAASr9R,KACG,QAAQvf,KAAKuf,GAErCw+O,EAAKpvR,KAAKqxD,EAASzgB,EAAM29R,EAAWv+S,EAASkvI,EAAKhtG,GAGxD,CAzCIjwD,CAAQ8P,MAAMie,QAAQ1Z,GAAQA,EAAOzV,EAAMyV,GAAO3O,EAAI0pD,EACxD,qBCnGFzxD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,0ICoC3CD,EAAOC,QAJP,SAAYC,EAAOipE,GACjB,OAAOjpE,IAAUipE,GAAUjpE,GAAUA,GAASipE,GAAUA,CAC1D,oUCtBA,MAaaylQ,EAAiBj3T,IAC5B,MACM47F,EAAS,CAAC,EAShB,MAViB,CAAC,EAAG,EAAG,EAAG,EAAG,GAErBlxG,SAAQwsU,IACft7N,EAAO,YACFs7N,oBACKA,mBACAA,yBACLA,WArBa,EAAC/lT,EAAUi1B,EAAYD,EAAOnmC,KAClD,MAAM,kBACJm3T,EAAiB,iBACjB3oR,GACExuC,EACJ,MAAO,CACLysF,aAAc0qO,EACdhxR,QACAv0B,WAAY48B,EACZr9B,WACAi1B,aACD,EAWMgxR,CAAcp3T,EAAM,kBAAkBk3T,KAAiBl3T,EAAM,oBAAoBk3T,KAAiBl3T,EAAM+nD,iBAAkB/nD,EAAM,IAEhI47F,CAAM,EAEFy7N,EAAgBr3T,IAC3B,MAAM,aACJumC,GACEvmC,EACJ,MAAO,CACL,QAASnY,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAclB,IAAS,CAC9D2jC,WAAY,OACZ,CAAC,iBAAiB4C,cAA0B,CAC1CJ,MAAOnmC,EAAM4oC,kBACblB,OAAQ,cACR,oBAAqB,CACnBvB,MAAOnmC,EAAM4oC,mBAEf,WAAY,CACVoB,cAAe,WAItB,EAEUiU,EAAiBj+C,IAAS,CACrCjX,KAAM,CACJ6jD,OAAQ,UACRv8B,cAAe,QACfE,aAAc,cACdY,SAAU,MACV27B,WAAY9sC,EAAMs3T,eAClBzsR,WAAY,2BACZH,OAAQ,qCACRtD,aAAc,GAEhBmwR,IAAK,CACH3qR,OAAQ,UACRv8B,cAAe,QACfE,aAAc,eACdY,SAAU,MACV27B,WAAY9sC,EAAMs3T,eAClBzsR,WAAY,4BACZH,OAAQ,qCACRiiD,kBAAmB,EACnBvlD,aAAc,GAEhBvE,KAAM,CACJqD,QAAS,EAETgB,gBAAiB,EAAAswR,KAAK,IAExB,SAAU,CACR3hR,eAAgB,YAChB4hR,sBAAuB,QAEzB,SAAU,CACR5hR,eAAgB,gBAElB6hR,OAAQ,CACN9lT,WAAY,KAGd,SAAU,CACR47E,aAAc,EACdC,YAAa,QACbvnD,QAAS,EACT+lG,GAAI,CACFz+C,aAAc,SACdC,YAAa,EACbp9E,cAAe,QACfE,aAAc,IAGlBy7H,GAAI,CACF/9C,cAAe,SACf+9C,GAAI,CACF/9C,cAAe,SAGnB0pO,GAAI,CACF1pO,cAAe,WAGjB,kBAAmB,CACjBrhD,OAAQ,SAEVgrR,IAAK,CACH1xR,QAAS,cACT3C,WAAY,WACZ+4O,SAAU,aACVzxO,WAAY,2BACZH,OAAQ,qCACRtD,aAAc,EACd0F,WAAY9sC,EAAMs3T,eAElBvuU,KAAM,CACJ0+B,QAAS,SACTmlB,OAAQ,EACR1G,QAAS,EACT/0B,SAAU,UACV27B,WAAY,UACZjC,WAAY,cACZH,OAAQ,IAGZmtR,WAAY,CACVxnT,cAAe,UACfE,aAAc,EACdskF,kBAAmB,qCACnBpnD,QAAS,OAGAqqR,EAAoB93T,IAC/B,MAAM,aACJumC,EAAY,UACZ4H,GACEnuC,EACE+3T,EAAa5pR,EACnB,MAAO,CACL,iBAAkB,CAChB/K,SAAU,WACV,OAAQ,CACNsG,iBAAkB1pC,EAAM8oC,KAAK9oC,EAAMmuC,WAAWnF,KAAK,GAAGxoB,QACtDysB,UAAWjtC,EAAM8oC,KAAKivR,GAAY/uR,KAAK,GAAGxoB,QAC1CisE,aAAc,eAAc,QAAKsrO,OAEnC,CAAC,GAAGxxR,0BAAsC,CACxCnD,SAAU,WACVuG,eAAgB3pC,EAAM8oC,KAAK9oC,EAAMotF,UAAUjsF,IAAI,GAAGqf,QAClDw3S,cAAeh4T,EAAMotF,SACrBjnD,MAAOnmC,EAAM8nC,qBAEbl2B,WAAY,SACZT,SAAUnR,EAAMmR,SAChBo8B,UAAW,SACXvD,cAAe,QAEjBiuR,SAAU,CACRrrR,OAAQ,cAERsrR,cAAe,OACfzuR,OAAQ,QAGb,EAEU0uR,EAAoBn4T,IAAS,CACxC,CAAC,GAAGA,EAAMumC,6BAA8B,CACtC,sCAGW,CACTJ,MAAOnmC,EAAM45F,eAGjB,CAAC,GAAG55F,EAAMumC,+BAAgC,CACxCmiB,kBAAmB,KC3LjB0vQ,EAAqBp4T,IACzB,MAAM,aACJumC,EAAY,eACZ8xR,GACEr4T,EACJ,MAAO,CACL,CAACumC,GAAe1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAC5IilC,MAAOnmC,EAAMsT,UACbglT,UAAW,aACXlyR,WAAYpmC,EAAMomC,WAClB,CAAC,IAAIG,eAA2B,CAC9BJ,MAAOnmC,EAAM8nC,sBAEf,CAAC,IAAIvB,aAAyB,CAC5BJ,MAAOnmC,EAAM45F,cAEf,CAAC,IAAIrzD,aAAyB,CAC5BJ,MAAOnmC,EAAMurC,cAEf,CAAC,IAAIhF,YAAwB,CAC3BJ,MAAOnmC,EAAMqrC,WACb,sBAAuB,CACrBlF,MAAOnmC,EAAM88G,kBAEf,WAAY,CACV32E,MAAOnmC,EAAMsrC,kBAGjB,CAAC,IAAI/E,cAA0B,CAC7BJ,MAAOnmC,EAAM4oC,kBACblB,OAAQ,cACR/D,WAAY,QAEd,qCAGI,CACF8oD,aAAc,QAEfwqO,EAAej3T,IAAS,CACzB,CAAC,iBACOumC,mBACAA,mBACAA,mBACAA,mBACAA,aACJ,CACF0G,UAAWorR,GAEb,qGASM,CACJ,uFAMI,CACFprR,UAAWorR,MAGbp6Q,EAAej+C,IAASq3T,EAAcr3T,IAAS,CAEjD,CAAC,aACGumC,sBACAA,wBACAA,oBACAA,kBACA1+C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,GAAG,QAAclB,IAAS,CACzD0oD,kBAAmB1oD,EAAMwvF,cAEzBsoO,EAAkB93T,IAASm4T,EAAkBn4T,ID+Gd,CACrC,yCAGI,CACFynB,QAAS,eACT8vE,SAAU,QAEZ,yBAA0B,CACxBh0D,WAAY,SACZyD,SAAU,SACVoO,aAAc,WAEd,YAAa,CACX/H,cAAe,UAEjB,SAAU,CACR98B,aAAc,EACdgnF,SAAU,qBACV9vE,QAAS,eACTuf,SAAU,SACVoO,aAAc,WACd/H,cAAe,SAEfhH,UAAW,gBAGf,2BAA4B,CAC1B5e,QAAS,cACTuf,SAAU,SACV61P,gBAAiB,EACjB07B,gBAAiB,cC9I+D,CAC9E,QAAS,CACP9jS,UAAW,SAGhB,EAOH,GAAe,QAAc,cAAcz0B,GAAS,CAACo4T,EAAmBp4T,MALnC,KAAM,CACzCq4T,eAAgB,QAChBlB,kBAAmB,YCwBrB,EA1GiB/gU,IACf,MAAM,UACJmoD,EACA,aAAci6Q,EAAS,UACvB30T,EAAS,MACTq/B,EAAK,UACLzO,EAAS,UACTgkS,EAAS,SACTC,GAAW,EAAI,MACfnwU,EAAK,OACLowU,EAAM,SACN1+O,EAAQ,MACR2+O,EAAK,UACLn/P,EAAS,UACTo/P,EAAyB,gBAAoBC,EAAA,EAAe,OAC1D1iU,EACE8V,EAAM,SAAa,MACnB6sT,EAAgB,UAAa,GAC7BC,EAAc,YACbhoU,EAAS0/S,GAAc,WAAenoT,GAC7C,aAAgB,KACdmoT,EAAWnoT,EAAM,GAChB,CAACA,IACJ,aAAgB,KACd,IAAIqoB,EACJ,GAA2B,QAAtBA,EAAK1E,EAAIlb,eAA4B,IAAP4f,OAAgB,EAASA,EAAGqoT,kBAAmB,CAChF,MAAM,SACJC,GACEhtT,EAAIlb,QAAQioU,kBAChBC,EAASj5R,QACT,MAAM,OACJ5zC,GACE6sU,EAAS3wU,MACb2wU,EAASC,kBAAkB9sU,EAAQA,EACrC,IACC,IACH,MAoBM+sU,EAAgB,KACpBT,EAAO3nU,EAAQozB,OAAO,GAwBjB4zD,EAAYn6B,EAAQo6B,GAAa,EAAS15B,GAC3C86Q,EAAoB,IAAW96Q,EAAW,GAAGA,iBAA0B,CAC3E,CAAC,GAAGA,SAAgC,QAAd9pB,EACtB,CAAC,GAAG8pB,KAAakb,OAAgBA,GAChC51D,EAAWg6C,EAAQo6B,GACtB,OAAOD,EAAwB,gBAAoB,MAAO,CACxDn0E,UAAWw1T,EACXn2R,MAAOA,GACO,gBAAoBgtE,EAAA,EAAU,CAC5ChkG,IAAKA,EACLusT,UAAWA,EACXlwU,MAAOyI,EACPkoD,SAzDe7pD,IACf,IAAI,OACFggB,GACEhgB,EACJqhT,EAAWrhS,EAAO9mB,MAAM47B,QAAQ,UAAW,IAAI,EAsD/C+zC,UA9CgBnmE,IAChB,IAAI,QACF4oS,GACE5oS,EAEAgnU,EAAc/nU,UAClBgoU,EAAYhoU,QAAU2pS,EAAO,EAyC7BzvL,QApCc15G,IACd,IAAI,QACFmpS,EAAO,QACPE,EAAO,OACPD,EAAM,QACNE,EAAO,SACP8S,GACEp8S,EAEAwnU,EAAYhoU,UAAY2pS,GAAWo+B,EAAc/nU,SAAW6pS,GAAWD,GAAUE,GAAW8S,IAG5FjT,IAAY3mO,EAAA,EAAQI,OACtBglQ,IACAR,SAA8CA,KACrCj+B,IAAY3mO,EAAA,EAAQK,KAC7B4lB,IACF,EAoBA+0B,mBAtDyB,KACzB+pN,EAAc/nU,SAAU,CAAI,EAsD5Bi+G,iBApDuB,KACvB8pN,EAAc/nU,SAAU,CAAK,EAoD7Bg/G,OApBa,KACbopN,GAAe,EAoBf,aAAcZ,EACdn8G,KAAM,EACNq8G,SAAUA,IACM,OAAdG,GAAqB,QAAaA,EAAW,CAC/Ch1T,UAAW,GAAG06C,2BACX,MAAM,iDClFb,MA8CA,EA9CqBlvD,IACnB,IAAI,WACFiqU,EAAU,SACVx1T,GACEzU,EACJ,MAAOk4G,EAAQgyN,GAAa,YAAe,IACpCC,EAAaC,GAAkB,YAAe,GAC/CC,EAAY,SAAa,MACzBC,EAAc,KACdD,EAAU1oU,SACZyjD,aAAailR,EAAU1oU,QACzB,EAEI4oU,EAAc,CAAC,EA2BrB,OA1BIN,EAAW/zT,SACbq0T,EAAYr0T,OAAS+zT,EAAW/zT,QAElC,aAAgB,IAAMo0T,GAAa,IAuB5B,CACLpyN,SACAiyN,cACAnwQ,SAxBc,EAAAiqC,EAAA,IAAS1qG,IAAKixU,OAlDoB//Q,OAkDV,EAlDmBggR,OAkDX,EAlD0BC,EAkDV,YAC9D,IAAInpT,EACJhoB,SAAsCA,EAAEi7C,iBACxCj7C,SAAsCA,EAAEg7C,kBACxC61R,GAAe,GACf,IACE,MAAM92R,EAAkC,mBAApB22R,EAAW32R,WAA4B22R,EAAW32R,OAAS22R,EAAW32R,KAC1F,IAAKA,IAAQ,EAAA2iD,EAAA,GAAOxhF,GAAU,GAAMva,KAAK,KAAO,GAAIqwU,GACpDH,GAAe,GACfF,GAAU,GAEVI,IACAD,EAAU1oU,QAAUsjD,YAAW,KAC7BilR,GAAU,EAAM,GACf,KAC0B,QAA5B3oT,EAAK0oT,EAAWn1R,cAA2B,IAAPvzB,GAAyBA,EAAGnoB,KAAK6wU,EAAY1wU,EACpF,CAAE,MAAOkI,GAEP,MADA2oU,GAAe,GACT3oU,CACR,CACF,EAhEO,KANgEgB,OAkDf,KA5CtCA,EAAIzE,WAAU,SAAUC,EAASC,GACjD,SAASysU,EAAUzxU,GACjB,IACEomI,EAAKorM,EAAU/tU,KAAKzD,GACtB,CAAE,MAAOK,GACP2E,EAAO3E,EACT,CACF,CACA,SAASsrH,EAAS3rH,GAChB,IACEomI,EAAKorM,EAAiB,MAAExxU,GAC1B,CAAE,MAAOK,GACP2E,EAAO3E,EACT,CACF,CACA,SAAS+lI,EAAK9lI,GApBhB,IAAeN,EAqBXM,EAAOoL,KAAO3G,EAAQzE,EAAON,QArBlBA,EAqBiCM,EAAON,MApB9CA,aAAiBuJ,EAAIvJ,EAAQ,IAAIuJ,GAAE,SAAUxE,GAClDA,EAAQ/E,EACV,KAkB4DsI,KAAKmpU,EAAW9lN,EAC5E,CACAya,GAAMorM,EAAYA,EAAU1mU,MAAMymD,EAASggR,GAAc,KAAK9tU,OAChE,IAzBwC,IAAU8tD,EAASggR,EAAYhoU,EAAGioU,CAsExE,IAKD,EC1EY,SAASE,EAAgBC,EAAYC,GAClD,OAAO,WAAc,KACnB,MAAMtsC,IAAYqsC,EAClB,MAAO,CAACrsC,EAAShmS,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi5T,GAAiBtsC,GAAiC,iBAAfqsC,EAA0BA,EAAa,MAAM,GAChI,CAACA,GACN,CCUA,MAAME,EAA0B,cAAiB,CAAChkU,EAAO8V,KACvD,MACIqyC,UAAWw5B,EACXte,UAAWsf,EAAY,UAAS,UAChCl1E,EAAS,cACT24D,EAAa,cACb69P,EAAa,SACbv2T,EACA2wB,UAAW6lS,EAAmB,MAC9Bp3R,GACE9sC,EACJkzD,EAzBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAkBgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,YAAa,gBAAiB,gBAAiB,WAAY,YAAa,WACzH,aACJmnD,EACA9oB,UAAW+lR,EAAgB,WAC3B+f,GACE,aAAiB,MACf9lS,EAAY6lS,QAAiEA,EAAsB9f,EACnGpnD,EAAYinE,GAAgB,QAAWnuT,EAAKmuT,GAAiBnuT,EAC7DqyC,EAAYhB,EAAa,aAAcw6B,IAMtCC,EAAYn6B,EAAQo6B,GAAa,EAAS15B,GAC3Ci8Q,EAAqB,IAAWj8Q,EAAWg8Q,aAA+C,EAASA,EAAW12T,UAAW,CAC7H,CAAC,GAAG06C,SAAgC,QAAd9pB,GACrB5wB,EAAW24D,EAAe3e,EAAQo6B,GAC/Bt2B,EAAc95D,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGq5T,aAA+C,EAASA,EAAWr3R,OAAQA,GAC/H,OAAO80C,EAGP,gBAAoBe,EAAWlxF,OAAOqZ,OAAO,CAC3C2C,UAAW22T,EACXt3R,MAAOye,EACPz1C,IAAKknP,GACJ9pM,GAAYxlD,GAAU,IAK3B,4CC1DO,SAAS,EAAO2hC,GACrB,OAAY,IAARA,EACK,EAAC,GAAO,GAEVjrC,MAAMie,QAAQgtB,GAAOA,EAAM,CAACA,EACrC,CACO,SAAS4uF,EAAQj6C,EAAKqgP,EAAaC,GACxC,OAAY,IAARtgP,QAAwBhyF,IAARgyF,EACXqgP,EAEFrgP,GAAOsgP,GAAWD,CAC3B,CA2BO,MAAME,EAAcl1R,GAAO,CAAC,SAAU,UAAUhjC,gBAAgBgjC,GCKvE,EAlCgBp2C,IACd,IAAI,UACFkvD,EAAS,OACTgpD,EAAM,OACN/tB,EAAM,SACNohP,EAAQ,SACRC,EAAQ,KACRlrT,EAAI,SACJmkD,EAAQ,OACR3vB,EACAyqE,QAASksN,GACPzrU,EACJ,MAAM0rU,EAAe,EAAOF,GACtBG,EAAY,EAAOrrT,IAEvB43F,OAAQ0zN,EACR3zN,KAAM4zN,GACJ1hP,QAAuCA,EAAS,CAAC,EAC/C2hP,EAAY5zN,EAAS0zN,EAAaC,EAClCE,EAAY/mM,EAAQ0mM,EAAaxzN,EAAS,EAAI,GAAI4zN,GAClD3C,EAAiC,iBAAd4C,EAAyBA,EAAYD,EAC9D,OAAoB,gBAAoB,IAAS,CAC/C3jQ,MAAO4jQ,GACO,gBAAoB,SAAU,CAC5C3vU,KAAM,SACNoY,UAAW,IAAW,GAAG06C,SAAkB,CACzC,CAAC,GAAGA,kBAA2BgpD,EAC/B,CAAC,GAAGhpD,oBAA6Bq8Q,IAEnCvxQ,QAASllB,EACT,aAAcq0R,EACd1kQ,SAAUA,GACTyzC,EAAS8sB,EAAQ2mM,EAAU,GAAiB,gBAAoBhjL,EAAA,EAAe,OAAO,GAAQ3jB,EAAQ2mM,EAAU,GAAIF,EAA0B,gBAAoBpzL,EAAA,EAAiB,MAAqB,gBAAoB2zL,EAAA,EAAc,OAAO,IAAO,iBClC7P,MAAMC,EAA2B,cAAiB,CAACjsU,EAAM6c,KACvD,IAAI,MACFg3B,EAAK,SACLp/B,GACEzU,EACJ,MAAMksU,EAAU,SAAa,MAQ7B,OAPA,sBAA0BrvT,GAAK,KAAM,CACnCsvT,SAAU,KACR,MAAMzxT,EAAOwxT,EAAQvqU,QACrB,OAAO+Y,EAAK+nC,aAAe/nC,EAAKs8G,YAAY,EAE9Co1M,UAAW,IAAMF,EAAQvqU,QAAQq1H,iBAEf,gBAAoB,OAAQ,CAC9C,eAAe,EACfn6G,IAAKqvT,EACLr4R,MAAOr7C,OAAOqZ,OAAO,CACnBkiC,SAAU,QACV3b,QAAS,QACTk/F,KAAM,EACNtjF,IAAK,EACL2G,cAAe,OACf9C,gBAAiB,yBAChBhE,IACFp/B,EAAS,IAGd,SAAS43T,EAAWC,EAAU1rU,GAC5B,IAAI2rU,EAAU,EACd,MAAMC,EAAkB,GACxB,IAAK,IAAI7rU,EAAI,EAAGA,EAAI2rU,EAAStvU,OAAQ2D,GAAK,EAAG,CAE3C,GAAI4rU,IAAY3rU,EACd,OAAO4rU,EAET,MAAM1vT,EAAOwvT,EAAS3rU,GAGhB8rU,EAAUF,GAFDjB,EAAYxuT,GACFtd,OAAOsd,GAAM9f,OAAS,GAI/C,GAAIyvU,EAAU7rU,EAAK,CACjB,MAAM8rU,EAAU9rU,EAAM2rU,EAEtB,OADAC,EAAgB9tU,KAAKc,OAAOsd,GAAMvc,MAAM,EAAGmsU,IACpCF,CACT,CACAA,EAAgB9tU,KAAKoe,GACrByvT,EAAUE,CACZ,CACA,OAAOH,CACT,CAEA,MAAMK,EAAsB,EAItBC,EAAkC,EAClCC,EAAgB,CACpBz0S,QAAS,cACTuf,SAAU,SACVuxR,gBAAiB,YAEJ,SAAS4D,GAAgB/lU,GACtC,MAAM,cACJgmU,EAAa,MACbvyR,EAAK,KACLlH,EAAI,SACJ7+B,EAAQ,KACRu4M,EAAI,SACJllH,EAAQ,SACRklO,EAAQ,WACRC,GACElmU,EACEulU,EAAW,WAAc,KAAM,EAAAvhQ,EAAA,GAAQz3B,IAAO,CAACA,IAC/C45R,EAAU,WAAc,IAhDZZ,IAAYA,EAASpvU,QAAO,CAACiwU,EAAUrwT,IAASqwT,GAAY7B,EAAYxuT,GAAQtd,OAAOsd,GAAM9f,OAAS,IAAI,GAgDxFowU,CAAYd,IAAW,CAACh5R,IAGtD+5R,EAAc,WAAc,IAAM54T,EAAS63T,GAAU,IAAQ,CAACh5R,KAE7Dg6R,EAAkBC,GAAuB,WAAe,MACzDC,EAAY,SAAa,MAEzBC,EAAuB,SAAa,MACpCC,EAAkB,SAAa,MAE/BC,EAAsB,SAAa,MACnCC,EAAuB,SAAa,OACnCC,EAAaC,GAAkB,YAAe,IAC9CC,EAAcC,GAAmB,WAAerB,IAChDsB,EAAgBC,GAAqB,WAAe,IACpDC,EAAkBC,GAAuB,WAAe,OAE/D,EAAAn8M,EAAA,IAAgB,KAEZ+7M,EADEjB,GAAiBvyR,GAAS0yR,EAxCH,EA2CTP,EAClB,GACC,CAACnyR,EAAOlH,EAAM05K,EAAM+/G,EAAeT,KAEtC,EAAAr6M,EAAA,IAAgB,KACd,IAAI1wG,EAAIC,EAAIC,EAAIC,EAChB,GAjD2B,IAiDvBqsT,EAAyC,CAC3CC,EAjDuB,GAmDvB,MAAMK,EAAiBZ,EAAqB9rU,SAAWs1H,iBAAiBw2M,EAAqB9rU,SAASuyC,WACtGk6R,EAAoBC,EACtB,MAAO,GArDkB,IAqDdN,EAAuC,CAChD,MAAMO,KAAmD,QAAlC/sT,EAAKmsT,EAAgB/rU,eAA4B,IAAP4f,OAAgB,EAASA,EAAG4qT,YAC7F6B,EAAgBM,EAtDe,EAsD6B1B,GAC5DW,EAAoBe,EAAa,CAAC,EAAGpB,GAAW,MAChDY,EAAeQ,GAEf,MAAMC,GAA6D,QAAlC/sT,EAAKksT,EAAgB/rU,eAA4B,IAAP6f,OAAgB,EAASA,EAAG4qT,cAAgB,EAEjHoC,EAAkC,IAATxhH,EAAa,GAA4C,QAAtCvrM,EAAKksT,EAAoBhsU,eAA4B,IAAP8f,OAAgB,EAASA,EAAG2qT,cAAgB,EACtIqC,GAAmE,QAAvC/sT,EAAKksT,EAAqBjsU,eAA4B,IAAP+f,OAAgB,EAASA,EAAG0qT,cAAgB,EACvHsC,EAAgB50U,KAAKmrB,IAAIspT,EAE/BC,EAAyBC,GACzBP,EAAkBQ,EAAgB,GAClCzB,EAAWqB,EACb,IACC,CAACP,IAEJ,MAAMY,EAAcrB,EAAmBxzU,KAAKkmD,MAAMstR,EAAiB,GAAKA,EAAiB,IAAM,GAAK,GACpG,EAAAr7M,EAAA,IAAgB,KACd,IAAI1wG,EACJ,MAAO8/J,EAAUC,GAAYgsJ,GAAoB,CAAC,EAAG,GACrD,GAAIjsJ,IAAaC,EAAU,CACzB,MACMgtJ,IAD0C,QAA5B/sT,EAAKisT,EAAU7rU,eAA4B,IAAP4f,OAAgB,EAASA,EAAG6qT,cAAgB,GACrE6B,EAC/B,IAAIW,EAAiBD,EACjBrtJ,EAAWD,GAAa,IAC1ButJ,EAAiBN,EAAajtJ,EAAWC,GAE3CisJ,EAAoBe,EAAa,CAACjtJ,EAAUutJ,GAAkB,CAACA,EAAgBttJ,GACjF,IACC,CAACgsJ,EAAkBqB,IAEtB,MAAME,EAAe,WAAc,KAEjC,IAAK9B,EACH,OAAOt4T,EAAS63T,GAAU,GAE5B,GA1FiC,IA0F7ByB,IAAkDT,GAAoBA,EAAiB,KAAOA,EAAiB,GAAI,CACrH,MAAMzyR,EAAUpmC,EAAS63T,GAAU,GAGnC,MAAI,CAACM,EAAiCD,GAAqBv5T,SAAS26T,GAC3DlzR,EAEW,gBAAoB,OAAQ,CAC9ChH,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGg7T,GAAgB,CACrDr/B,gBAAiBxgF,KAElBnyK,EACL,CACA,OAAOpmC,EAASqzF,EAAWwkO,EAAWD,EAAWC,EAAUgB,EAAiB,IAAKO,EAAY,GAC5F,CAAC/lO,EAAUimO,EAAcT,EAAkBhB,GAAUloU,QAAO,OAAmB4oU,KAE5E8B,EAAe,CACnBt0R,QACA+C,OAAQ,EACR1G,QAAS,EACT3C,WAAiC,WAArBi6R,EAAgC,SAAW,WAEzD,OAAoB,gBAAoB,WAAgB,KAAMU,EAjHnC,IAiHiDd,GAAuD,gBAAoB,WAAgB,KAAmB,gBAAoB9B,EAAa,CACzNp4R,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi9T,GAAejC,GAAgB,CAClFr/B,gBAAiBxgF,IAEnBnwM,IAAK6wT,GACJL,GAA2B,gBAAoBpB,EAAa,CAC7Dp4R,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi9T,GAAejC,GAAgB,CAClFr/B,gBAAiBxgF,EAAO,IAE1BnwM,IAAK8wT,GACJN,GAA2B,gBAAoBpB,EAAa,CAC7Dp4R,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi9T,GAAejC,GAAgB,CAClFr/B,gBAAiB,IAEnB3wR,IAAK+wT,GACJn5T,EAAS,IAAI,KA/HmB,IA+HTs5T,GAAiDT,GAAoBA,EAAiB,KAAOA,EAAiB,IAAoB,gBAAoBrB,EAAa,CAC3Lp4R,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGi9T,GAAe,CACpD96R,IAAK,MAEPn3B,IAAK2wT,GACJ/4T,EAAS43T,EAAWC,EAAUqC,IAAc,IAtIlB,IAsI2BZ,GAAyD,gBAAoB,OAAQ,CAC3Il6R,MAAO,CACLK,WAAY,WAEdr3B,IAAK4wT,IAET,CCnLA,SAjBwBztU,IACtB,IAAI,eACF+uU,EAAc,WACdC,EAAU,SACVv6T,EAAQ,aACRsmF,GACE/6F,EACJ,OAAM+6F,aAAmD,EAASA,EAAa5yB,QAAW4mQ,EAGtE,gBAAoB,IAASv2U,OAAOqZ,OAAO,CAC7D88D,OAAMqgQ,QAAaj2U,GAClBgiG,GAAetmF,GAJTA,CAIkB,EC2C7B,MACMkT,GAAoB,cAAiB,CAAC5gB,EAAO8V,KACjD,IAAI0E,EACJ,MACI2tC,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,MACTq/B,EAAK,KACLz3C,EAAI,SACJozD,EAAQ,SACR/6C,EAAQ,SACRw6T,EAAQ,SACRC,EAAQ,SACRC,EAAQ,UACR/kQ,EAAS,MACTjC,GACEphE,EACJkzD,EAzEgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAkEgB,CAAOiB,EAAO,CAAC,YAAa,YAAa,QAAS,OAAQ,WAAY,WAAY,WAAY,WAAY,WAAY,YAAa,WAC3I,aACJmnD,EAAY,UACZ9oB,GACE,aAAiB,OACdgqS,IAAc,EAAAC,EAAA,GAAU,QACzBC,EAAgB,SAAa,MAC7BC,EAAc,SAAa,MAE3BrgR,EAAYhB,EAAa,aAAcw6B,GACvC8mP,GAAY,EAAAjnQ,EAAA,GAAKtO,EAAW,CAAC,OAAQ,OAAQ,SAAU,YAAa,SAAU,WAAY,YAEzFw1Q,EAAYC,GAAc9E,EAAgBsE,IAC1CS,EAASC,IAAc,EAAAv7P,EAAA,IAAe,EAAO,CAClDn7E,MAAOw2U,EAAWC,WAEd,YACJE,EAAc,CAAC,SACbH,EACEI,EAAc93N,IAClB,IAAIz2F,EACAy2F,IAC4B,QAA7Bz2F,EAAKmuT,EAAWhmH,eAA4B,IAAPnoM,GAAyBA,EAAGnoB,KAAKs2U,IAEzEE,EAAW53N,EAAK,EAGZ+3N,ECrGY72U,KAClB,MAAM2jB,GAAM,IAAA49C,UAIZ,OAHA,IAAAI,YAAU,KACRh+C,EAAIlb,QAAUzI,CAAK,IAEd2jB,EAAIlb,OAAO,EDgGE,CAAYguU,IAChC,EAAA19M,EAAA,IAAgB,KACd,IAAI1wG,GACCouT,GAAWI,IACiB,QAA9BxuT,EAAKguT,EAAY5tU,eAA4B,IAAP4f,GAAyBA,EAAGqvB,QACrE,GACC,CAAC++R,IACJ,MAAMK,EAAcz2U,IAClBA,SAAsCA,EAAEi7C,iBACxCs7R,GAAY,EAAK,GAaZG,EAAYhG,GAAcW,EAAgBuE,IAC3C,OACJj3N,EAAM,YACNiyN,EACAnwQ,QAASk2Q,GACP,EAAa,CACfjG,aACAx1T,cAGK07T,GAAoBC,IAAyB,YAAe,IAC5DC,GAAuBC,IAA4B,YAAe,IAClEC,GAAcC,IAAmB,YAAe,IAChDC,GAAkBC,IAAuB,YAAe,IACxDC,GAAiBC,IAAsB,YAAe,IACtD7B,GAAgB8B,IAAkBjG,EAAgBqE,EAAU,CACjE6B,YAAY,EACZrxU,OAAQsxU,GAAcA,EAAa3B,aAA+C,EAASA,EAAW74N,SAAW64N,aAA+C,EAASA,EAAW94N,UAE/KxO,GAAUkpO,KAAe,EAAA38P,EAAA,GAAew8P,GAAeI,kBAAmB,EAAO,CACtF/3U,MAAO23U,GAAe/oO,WAElBopO,GAAuBnC,MAAoBjnO,IAA0C,gBAA9B+oO,GAAeC,aAEtE,KACJ9jH,GAAO,GACL6jH,GACEM,GAAsB,WAAc,IAE1CD,UAE0Bn4U,IAA1B83U,GAAeh3R,QAAwBg3R,GAAe5D,YAEtD4D,GAAeC,YAAcrB,GAAcQ,IAAa,CAACiB,GAAsBL,GAAgBpB,EAAYQ,KAC3G,EAAAh+M,EAAA,IAAgB,KACV88M,KAAmBoC,KACrBf,IAAsB,OAAe,oBACrCE,IAAyB,OAAe,iBAC1C,GACC,CAACa,GAAqBpC,KACzB,MAAOqC,GAAaC,IAAkB,WAAeH,IAC/CI,GAAoB,WAAc,KAClCH,KAGS,IAATnkH,GACKqjH,GAEFF,KACN,CAACgB,GAAqBd,GAAuBF,MAGhD,EAAAl+M,EAAA,IAAgB,KACdo/M,GAAeC,IAAqBJ,GAAqB,GACxD,CAACI,GAAmBJ,KACvB,MAAMK,GAAmBL,KAAyBE,GAAcX,GAAmBF,IAC7EiB,GAAkBN,IAAiC,IAATlkH,IAAcokH,GACxDK,GAAeP,IAAwBlkH,GAAO,GAAKokH,IAOlDM,GAAeC,IAAoB,WAAe,GAQnDC,GAAeC,IACnB,IAAItwT,EACJivT,GAAgBqB,GAEZtB,KAAiBsB,IACkB,QAApCtwT,EAAKsvT,GAAe5D,kBAA+B,IAAP1rT,GAAyBA,EAAGnoB,KAAKy3U,GAAgBgB,GAChG,EAGF,aAAgB,KACd,MAAMC,EAAUxC,EAAc3tU,QAC9B,GAAIotU,IAAkBqC,IAAeU,EAAS,CAC5C,MAAMC,EJ9LL,SAAuB3zT,GAE5B,MAAM4zT,EAAWhiS,SAASjwB,cAAc,MACxC3B,EAAI80B,YAAY8+R,GAKhB,MAAM95M,EAAO95G,EAAI+9M,wBACX81G,EAAYD,EAAS71G,wBAI3B,OAFA/9M,EAAIk3B,YAAY08R,GAId95M,EAAKZ,KAAO26M,EAAU36M,MAAQ26M,EAAU16M,MAAQW,EAAKX,OAErDW,EAAKlkF,IAAMi+R,EAAUj+R,KAAOi+R,EAAU13R,OAAS29E,EAAK39E,MAExD,CI2K8B23R,CAAcJ,GAClCrB,KAAqBsB,GACvBrB,GAAoBqB,EAExB,IACC,CAAChD,GAAgBqC,GAAa38T,EAAUg9T,GAAcd,GAAiBe,KAG1E,aAAgB,KACd,MAAMI,EAAUxC,EAAc3tU,QAC9B,GAAoC,oBAAzBwwU,uBAAyCL,IAAYV,KAAgBF,GAC9E,OAGF,MAAM10U,EAAW,IAAI21U,sBAAqB,KACxCvB,KAAqBkB,EAAQM,aAAa,IAG5C,OADA51U,EAASuW,QAAQ++T,GACV,KACLt1U,EAASgkD,YAAY,CACtB,GACA,CAAC4wR,GAAaF,KAEjB,MAAMn2O,GEtOgB,EAAC8rD,EAASwrL,EAAgB59T,KAAa,IAAAqzC,UAAQ,KACrD,IAAZ++F,EACK,CACL1+E,MAAOkqQ,QAAuDA,EAAiB59T,IAGlE,IAAAwJ,gBAAe4oI,GACvB,CACL1+E,MAAO0+E,GAGY,iBAAZA,EACFruJ,OAAOqZ,OAAO,CACnBs2D,MAAOkqQ,QAAuDA,EAAiB59T,GAC9EoyI,GAEE,CACL1+E,MAAO0+E,IAER,CAACA,EAASwrL,EAAgB59T,IFmNN,CAAgBo8T,GAAehqL,QAAS6oL,EAAWp8R,KAAM7+B,GACxE69T,GAAe,WAAc,KACjC,GAAKvD,KAAkBqC,GAGvB,MAAO,CAAC1B,EAAWp8R,KAAM7+B,EAAU0zD,EAAO4yB,GAAa5yB,OAAOgQ,KAAKmzP,EAAY,GAC9E,CAACyD,GAAgBqC,GAAajpQ,EAAO4yB,GAAa5yB,MAAOopQ,KAG5D,GAAI5B,EACF,OAAoB,gBAAoB,EAAU,CAChDz2U,MAAkC,QAA1BqoB,EAAKmuT,EAAWp8R,YAAyB,IAAP/xB,EAAgBA,EAAyB,iBAAb9M,EAAwBA,EAAW,GACzG60T,OAlIiBpwU,IACnB,IAAIqoB,EAC2B,QAA9BA,EAAKmuT,EAAW7lR,gBAA6B,IAAPtoC,GAAyBA,EAAGnoB,KAAKs2U,EAAYx2U,GACpF42U,GAAY,EAAM,EAgIhBllP,SA9HiB,KACnB,IAAIrpE,EAC2B,QAA9BA,EAAKmuT,EAAW9kP,gBAA6B,IAAPrpE,GAAyBA,EAAGnoB,KAAKs2U,GACxEI,GAAY,EAAM,EA4HhBvG,MAAOmG,EAAWnG,MAClBr6Q,UAAWA,EACX16C,UAAWA,EACXq/B,MAAOA,EACPzO,UAAWA,EACXglC,UAAWA,EACXg/P,UAAWsG,EAAWtG,UACtBC,SAAUqG,EAAWrG,SACrBG,UAAWkG,EAAWlG,YAK1B,MAAM+I,GAAe,KACnB,MAAM,WACJzB,EAAU,OACVrxU,GACEoxU,GACJ,OAAOC,EAA2B,gBAAoB,SAAU,CAC9D10U,KAAM,SACNb,IAAK,SACLiZ,UAAW,GAAG06C,KAAa44C,GAAW,WAAa,WACnD9tC,QAASzgE,GApFS,EAACA,EAAG66D,KACxB,IAAI7yC,EACJyvT,GAAY58Q,EAAK0zC,UACkB,QAAlCvmF,EAAKsvT,GAAe2B,gBAA6B,IAAPjxT,GAAyBA,EAAGnoB,KAAKy3U,GAAgBt3U,EAAG66D,EAAK,EAiFpFq+Q,CAAcl5U,EAAG,CAC7BuuG,UAAWA,KAEb,aAAcA,GAAWsnO,EAAW74N,SAAW64N,aAA+C,EAASA,EAAW94N,QAC/F,mBAAX72G,EAAwBA,EAAOqoG,IAAYroG,GAAW,IAAI,EAGhEizU,GAAa,KACjB,IAAKjD,EACH,OAEF,MAAM,KACJnvT,EAAI,QACJumI,EAAO,SACPpiF,GACEirQ,EACEiD,GAAY,EAAA5nQ,EAAA,GAAQ87E,GAAS,KAAOuoL,aAA+C,EAASA,EAAWp3N,MACvGmxN,EAAiC,iBAAdwJ,EAAyBA,EAAY,GAC9D,OAAO9C,EAAYz8T,SAAS,QAAwB,gBAAoB,IAAS,CAC/E7X,IAAK,OACL4sE,OAAmB,IAAZ0+E,EAAoB,GAAK8rL,GAClB,gBAAoB,SAAU,CAC5Cv2U,KAAM,SACNygB,IAAK0yT,EACL/6T,UAAW,GAAG06C,SACd8K,QAASg2Q,EACT,aAAc7G,EACd1kQ,SAAUA,GACTnkD,GAAqB,gBAAoBsyT,EAAA,EAAc,CACxDhqQ,KAAM,aACA,IAAI,EAkBRiqQ,GAAmBhF,GAAe,CAACA,GAAe0E,KAAgBG,KAdjEzC,EAGe,gBAAoB,EAASz3U,OAAOqZ,OAAO,CAC7DtW,IAAK,QACJ0uU,EAAY,CACb/6Q,UAAWA,EACXgpD,OAAQA,EACR/tB,OAAQilP,EACRt6R,OAAQo7R,EACR3wN,QAAS4qN,EACToB,SAAU92T,WAVH,MAkBX,OAAoB,gBAAoB,IAAgB,CACtDw7Q,SApIevtR,IACf,IAAI,YACFwtR,GACExtR,EACJivU,GAAiBzhD,EAAY,EAiI7B1gO,UAAW0hR,KACV4B,GAA2B,gBAAoB,GAAiB,CACjE/3O,aAAcA,GACdg0O,eAAgBmC,GAChBlC,WAAYuC,IACE,gBAAoB,EAAY/4U,OAAOqZ,OAAO,CAC5D2C,UAAW,IAAW,CACpB,CAAC,GAAG06C,KAAa9yD,KAASA,EAC1B,CAAC,GAAG8yD,cAAuBM,EAC3B,CAAC,GAAGN,cAAuB6/Q,GAC3B,CAAC,GAAG7/Q,0BAAmCsiR,GACvC,CAAC,GAAGtiR,4BAAqCuiR,IACxCj9T,GACH06C,UAAWw5B,EACX70C,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGgiC,GAAQ,CAC7C25P,gBAAiBikC,GAAezkH,QAAOj0N,IAEzCqxE,UAAWA,EACXvtD,KAAK,QAAWi2T,EAAWxD,EAAezyT,GAC1CuoB,UAAWA,EACX40B,QAAS61Q,EAAYz8T,SAAS,QAAU48T,OAAcj3U,EACtD,aAAcu5U,cAAmD,EAASA,GAAa15U,WACvFuvE,MAAOA,GACNqnQ,GAAyB,gBAAoB,GAAU,CACxDzC,cAAemE,KAAyBE,GACxC99R,KAAM7+B,EACNu4M,KAAMA,GACNxyK,MAAOk3R,GACPzE,WAAY2E,GACZ9pO,SAAUA,GACVklO,SAAU,CAAC90N,EAAQpQ,GAAUqiO,EAAasF,EAAYQ,KACrD,CAACnzT,EAAM+wT,IAhUZ,SAA4B7tU,EAAM66C,GAChC,IAAI,KACFrH,EAAI,KACJ95C,EAAI,UACJyxN,EACAtvN,OAAQk3U,EAAG,OACX1K,EAAM,SACNt8N,EAAQ,OACRinO,GACEhzU,EACAizU,EAAiBp4R,EACrB,SAASjoB,EAAKv5B,EAAK65U,GACZA,IAGLD,EAA8B,gBAAoB55U,EAAK,CAAC,EAAG45U,GAC7D,CAQA,OAPArgT,EAAK,SAAUy1S,GACfz1S,EAAK,IAAKu4L,GACVv4L,EAAK,MAAOmgT,GACZngT,EAAK,OAAQl5B,GACbk5B,EAAK,OAAQ4gB,GACb5gB,EAAK,MAAOm5E,GACZn5E,EAAK,IAAKogT,GACHC,CACT,CAuS4BE,CAAmBpsU,EAAoB,gBAAoB,WAAgB,KAAM+V,EAAK9f,OAAS,GAAK6wU,IAAgB/lO,IAAYwqO,GAA6B,gBAAoB,OAAQ,CACjN/2U,IAAK,eACL,eAAe,GACduhB,GAASA,EAxCW+wT,IAAe,CAACA,IAAgB/lO,IAA0B,gBAAoB,OAAQ,CAC3G,eAAe,EACfvsG,IAAK,YAnQY,OAoQAs1U,GAAeh3R,OAAQg5R,GAAiBhF,IAqCzCuF,CAAevF,UAAmB,IAEtD,MGzVA,MAqBA,GArB0B,cAAiB,CAACtsT,EAAI1E,KAC9C,IAAI,SACAoyT,EAAQ,IACRhvS,GACE1e,EACJ04C,EAhBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CASgB,CAAOyb,EAAI,CAAC,WAAY,QAKtC,MAAMy6S,EAAcxjU,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGooD,GAAY,CAC9Dh6B,SAAalnC,IAARknC,GAA0C,WAArBg6B,EAAUj6C,OAAsB,sBAAwBigB,IAIpF,cADO+7R,EAAY91K,SACC,gBAAoB,GAAM1tJ,OAAOqZ,OAAO,CAAC,EAAGmqT,EAAa,CAC3En/S,IAAKA,EACLoyT,WAAYA,EACZ7kQ,UAAW,MACV,ICvBL,GAL+B,cAAiB,CAACrjE,EAAO8V,IAAsB,gBAAoB,GAAMrkB,OAAOqZ,OAAO,CACpHgL,IAAKA,GACJ9V,EAAO,CACRqjE,UAAW,WCOb,MAAM2tC,GAAO,CAACx2F,EAAI1E,KAChB,IAAI,SACAoyT,GACE1tT,EACJ04C,EAhBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CASgB,CAAOyb,EAAI,CAAC,aAC1B,MAAM8xT,EAAiB,WAAc,IAC/BpE,GAAgC,iBAAbA,GACd,EAAA1mQ,EAAA,GAAK0mQ,EAAU,CAAC,aAAc,SAEhCA,GACN,CAACA,IAKJ,OAAoB,gBAAoB,GAAMz2U,OAAOqZ,OAAO,CAC1DgL,IAAKA,GACJo9C,EAAW,CACZg1Q,SAAUoE,EACVjpQ,UAAW,SACV,EAEL,GAA4B,aAAiB2tC,ICvB7C,MAAMu7N,GAAiB,CAAC,EAAG,EAAG,EAAG,EAAG,GAiBpC,GAhB2B,cAAiB,CAACvsU,EAAO8V,KAClD,MAAM,MACFuqD,EAAQ,GACNrgE,EACJkzD,EAhBgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CASgB,CAAOiB,EAAO,CAAC,UAKvBqjE,EAAYkpQ,GAAelgU,SAASg0D,GAAS,IAAIA,IAAU,KACjE,OAAoB,gBAAoB,GAAM5uE,OAAOqZ,OAAO,CAC1DgL,IAAKA,GACJo9C,EAAW,CACZmQ,UAAWA,IACV,ICrBC,GAAa,EACnB,GAAW2tC,KAAO,GAClB,GAAWw7N,KAAO,GAClB,GAAWC,MAAQ,GACnB,GAAWC,UAAY,GACvB,uECTA,MAAM/sT,EAAS,KAITgtT,EAAgB,IAAIr0T,SAwEW,SAtEC,CAAE1T,EAAU,CAAC,KACjD,MAAMqqB,EAAQrqB,EAAQqqB,OAAS,CAAC,QAAS,cAAe,gBAGxD,SAAS8wG,EAAQvqG,GACf,GAAKm3S,EAAcphU,KAAI,WAIvB,IAAK,MAAMoqB,KAAUH,GACnB,SAAUxiB,IACRA,EAAM45T,SAAS,MAAOj3S,EAAO2V,KAE7B,MAAMhoC,EAAQ,sBAAsBqyB,EAAOtgC,QAC3C,IAAIi3B,EAAU,uBAEd,GAAIqJ,EAAOsW,KAAM,CAEf,MAAM4gS,EAEb,CAAC,EAGM,IAAK,MAAM/sU,KAAQ61B,EAAOsW,KACxB4gS,EAAU/sU,GAAQ61B,EAAOsW,KAAKnsC,GAKhC,GAFAkT,EAAM45T,SAAS,OAAQC,GAEH,UAAhBl3S,EAAOtgC,KAAkB,CAC3B,MAAM42C,EAAOtW,EAAOsW,KAEpB3f,EAAU,CAAC2f,EAAK6gS,SAAW,GAAI7gS,EAAKtN,QAAU,IAAIxrC,KAAK,KAAK66B,QAAU1B,CACxE,MAEEA,EADaqJ,EAAOsW,KACLx4B,SAAW6Y,CAE9B,EAEA,QAAe,GAAGhpB,MAAUgpB,IAAU,GAG5C,CAEA,MAAO,CACLpuB,KAjDqB,oBAkDrB,SAAAgnQ,IACO,WAKY,IAAI,EAAU6nE,kBAAkBhtM,EAAS,CACxDtzH,UAAU,EACVwiB,UAIOjjB,SACX,EAEA,KAAA6jB,CAAMxb,GACJs4T,EAAcl4U,IAAI4f,GAAQ,EAC5B,EAEH,mCCzED,IAAI48C,EAAc,EAAQ,QACtB+7Q,EAAY,EAAQ,QACpB1tE,EAAc,EAAQ,QAEtBx6P,EAAOmsD,EAAYA,EAAYnsD,MAGnC7S,EAAOC,QAAU,SAAU8K,EAAI+1H,GAE7B,OADAi6M,EAAUhwU,QACMhL,IAAT+gI,EAAqB/1H,EAAKsiQ,EAAcx6P,EAAK9H,EAAI+1H,GAAQ,WAC9D,OAAO/1H,EAAGC,MAAM81H,EAAMl/H,UACxB,CACF,oBCbA,IAII22B,EAJY,EAAQ,MAIdk0Q,CAHC,EAAQ,QAGO,OAE1BzsS,EAAOC,QAAUs4B,uFCHb1b,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,sHAAuH,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gFAAgF,MAAQ,GAAG,SAAW,6CAA6C,eAAiB,CAAC,uKAAuK,WAAa,MAEphB,gXCII4B,EAAU,CAAC,0HAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OC+CnD,MAAMkjI,EAAW,aAGtB,UACAhjI,EAAS,IACT2hF,EAAG,OACH7V,EAAS,YAAW,UACpB0zP,EAAY,gBAAe,eAC3BC,EAAc,WACdn1N,GAAa,SAACo1N,EAAAA,EAAcA,CAAAA,IAGS,EADlCxoB,oXAAAA,CAAAA,EAAAA,CAPHl3S,YACA2hF,MACA7V,SACA0zP,YACAC,iBACAn1N,eA6BA,OACE,SAACynC,EAAAA,2UAAMA,CAAAA,CACL/xI,WAAWI,EAAAA,EAAAA,GAAK,YAAaJ,GAE7BsqG,WAAY4sM,EAAYnsM,SAAU,SAAC84B,IAAeA,CAAAA,GAAMv5B,EACxDmsM,UA9Bc,EAAG5gT,QAAOw+F,WAAUC,cACpC,MAAMqrO,EACJF,GAAkB5pU,IAAU4pU,EAAez0U,OAAO6K,IAOpD,OACE,SAAC+pU,EAAAA,EAAGA,CACFz5N,UAAU,EACVnmG,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB,CAChC,wBAAyBu/T,IAE3Br4N,YAXwBj5D,IAC1BA,EAAMrO,iBACNqO,EAAMtO,iBAAiB,EAUrBs0D,SAAUA,EACVC,QAASA,EACTroB,cAAauzP,WAEZ3pU,KAYHgqU,iBAAiB,SAEZ3oB,cAAAA,CACLjrO,cAAaH,EACb+V,WAAUF,uVAKhBqhD,EAASu0K,OAASxlK,EAAAA,EAAOwlK,yBC7HzB/yT,EAAOC,QAAU,IAA0B,sFCC3C,IAGIqsS,EAHYhqO,SAAS7iE,UAGIG,SAqB7B,QAZA,SAAkB29B,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO+uQ,EAAalsS,KAAKm9B,EAC3B,CAAE,MAAOh9B,GAAI,CACb,IACE,OAAQg9B,EAAO,EACjB,CAAE,MAAOh9B,GAAI,CACf,CACA,MAAO,EACT,oBCvBAP,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,qECE3CT,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAiB,aAAI,EAErB,IAAIwlB,EAkBJ,SAAiCziB,GAAO,GAAIA,GAAOA,EAAIijB,WAAc,OAAOjjB,EAAO,GAAY,OAARA,GAAiC,WAAjBq3F,EAAQr3F,IAAoC,mBAARA,EAAsB,MAAO,CAAE,QAAWA,GAAS,IAAIwjB,EAAQL,IAA4B,GAAIK,GAASA,EAAMlN,IAAItW,GAAQ,OAAOwjB,EAAMtR,IAAIlS,GAAQ,IAAIyjB,EAAS,CAAC,EAAOE,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAA0B,IAAK,IAAIrkB,KAAOS,EAAO,GAAIxD,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CAAE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAAUskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAAQhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAAgBJ,EAAOlkB,GAAOS,EAAIT,EAAQ,CAAoE,OAAhEkkB,EAAgB,QAAIzjB,EAASwjB,GAASA,EAAMhkB,IAAIQ,EAAKyjB,GAAkBA,CAAQ,CAlBhuB60T,CAAwB,EAAQ,SAEzCC,EAAaryM,EAAuB,EAAQ,SAE5CsyM,EAAc,EAAQ,OAEtBC,EAAe,EAAQ,QAEvBC,EAAUxyM,EAAuB,EAAQ,SAEzCkmJ,EAAW,EAAQ,QAEnBhmJ,EAAaF,EAAuB,EAAQ,SAEhD,SAASA,EAAuBlmI,GAAO,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASmjB,IAA6B,GAAuB,mBAAZE,QAAwB,OAAO,KAAM,IAAIG,EAAQ,IAAIH,QAA6F,OAAlFF,EAA2B,WAAsC,OAAOK,CAAO,EAAUA,CAAO,CAIjN,SAAS6zE,EAAQr3F,GAAmV,OAAtOq3F,EAArD,mBAAX/6F,QAAoD,iBAApBA,OAAOyM,SAAmC,SAAiB/I,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX1D,QAAyB0D,EAAI4rB,cAAgBtvB,QAAU0D,IAAQ1D,OAAOG,UAAY,gBAAkBuD,CAAK,EAAYq3F,EAAQr3F,EAAM,CAEzX,SAASusF,IAA2Q,OAA9PA,EAAW/vF,OAAOqZ,QAAU,SAAUmO,GAAU,IAAK,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAK,CAAE,IAAIsf,EAASrlB,UAAU+F,GAAI,IAAK,IAAIpF,KAAO0kB,EAAcznB,OAAOC,UAAUC,eAAeU,KAAK6mB,EAAQ1kB,KAAQykB,EAAOzkB,GAAO0kB,EAAO1kB,GAAU,CAAE,OAAOykB,CAAQ,EAAUuoE,EAASvkF,MAAMnH,KAAMjC,UAAY,CAI5T,SAAS27F,EAAkBv2E,EAAQjZ,GAAS,IAAK,IAAIpG,EAAI,EAAGA,EAAIoG,EAAM/J,OAAQ2D,IAAK,CAAE,IAAI2uT,EAAavoT,EAAMpG,GAAI2uT,EAAW/wS,WAAa+wS,EAAW/wS,aAAc,EAAO+wS,EAAWvwS,cAAe,EAAU,UAAWuwS,IAAYA,EAAWtwS,UAAW,GAAMxmB,OAAO8lB,eAAe0B,EAAQsvS,EAAW/zT,IAAK+zT,EAAa,CAAE,CAY5T,SAAS14N,EAAgB51F,GAAwJ,OAAnJ41F,EAAkBp+F,OAAO6wC,eAAiB7wC,OAAO0D,eAAiB,SAAyB8E,GAAK,OAAOA,EAAE0e,WAAalnB,OAAO0D,eAAe8E,EAAI,EAAU41F,EAAgB51F,EAAI,CAI5M,SAAS21F,EAAgB31F,EAAG9B,GAA+G,OAA1Gy3F,EAAkBn+F,OAAO6wC,gBAAkB,SAAyBroC,EAAG9B,GAAsB,OAAjB8B,EAAE0e,UAAYxgB,EAAU8B,CAAG,EAAU21F,EAAgB31F,EAAG9B,EAAI,CAsKzKjG,EAAiB,QApKW,SAA+Bk1S,GACzD,IACI3nL,GADmB,EAAI4b,EAAoB,SAAG+rK,GACf3nL,YAS/Bwb,EAA+B,SAAU2yM,IAf/C,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIj0R,UAAU,sDAAyDg0R,EAASn8U,UAAYD,OAAO+Q,OAAOsrU,GAAcA,EAAWp8U,UAAW,CAAEmvB,YAAa,CAAE1uB,MAAO07U,EAAU51T,UAAU,EAAMD,cAAc,KAAe81T,GAAYl+O,EAAgBi+O,EAAUC,EAAa,CAgB5Xn+O,CAAUsrC,EAAiB2yM,GAE3B,IA9BkBG,EAAaC,EAEbC,EA4BdhlT,GA5BcglT,EA4BQhzM,EA5BU,WAAc,IAAsCxoI,EAAlCy7U,EAAQr+O,EAAgBo+O,GAAkB,GAMpG,WAAuC,GAAuB,oBAAZ3iU,UAA4BA,QAAQ6iU,UAAW,OAAO,EAAO,GAAI7iU,QAAQ6iU,UAAUjgU,KAAM,OAAO,EAAO,GAAqB,mBAAV+wH,MAAsB,OAAO,EAAM,IAAiF,OAA3EnlH,KAAKpoB,UAAUG,SAASQ,KAAKiZ,QAAQ6iU,UAAUr0T,KAAM,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOtnB,GAAK,OAAO,CAAO,CAAE,CAN3N47U,GAA6B,CAAE,IAAIC,EAAYx+O,EAAgB/5F,MAAM+qB,YAAapuB,EAAS6Y,QAAQ6iU,UAAUD,EAAOr6U,UAAWw6U,EAAY,MAAS57U,EAASy7U,EAAMjxU,MAAMnH,KAAMjC,WAAc,OAErS,SAAoCusB,EAAM/tB,GAAQ,OAAIA,GAA2B,WAAlBi6F,EAAQj6F,IAAsC,mBAATA,EAEpG,SAAgC+tB,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIqxE,eAAe,6DAAgE,OAAOrxE,CAAM,CAFnBsxE,CAAuBtxE,GAAtC/tB,CAA6C,CAF4HkvF,CAA2BzrF,KAAMrD,EAAS,GA8BlV,SAASwoI,EAAgBj7H,GACvB,IAAIqzG,GArCV,SAAyB/5E,EAAUy0S,GAAe,KAAMz0S,aAAoBy0S,GAAgB,MAAM,IAAIl0R,UAAU,oCAAwC,CAuClJD,CAAgB9jD,KAAMmlI,GAEtB5nB,EAAQpqF,EAAO52B,KAAKyD,KAAMkK,GAC1B,IAAItJ,EAAQsJ,EAAMtJ,MACduT,EAAUjK,EAAMiK,QAChBk3I,EAAoBnhJ,EAAMmhJ,kBAC1BmtL,EAAuBtuU,EAAMsuU,qBACjCj7N,EAAMk7N,kBAAmB,EAEzBl7N,EAAMx9G,YAAca,EAAM/B,WAAU,WAMlC,IAAI65U,GAAgCxuU,EAAMyuU,sBAEtCC,EAAejvN,EAAY/oH,EAAMhC,YACjCi6U,EAAkBD,EAAa5/O,SAC/B8/O,EAAgBF,EAAal+Q,OAC7Bq+Q,EAAcH,EAAazlN,KAC3B6lN,EAAeJ,EAAa/oU,MAG5BopU,EAAoB9kU,EAAQ1J,SAC5ByuU,EAAoBD,EAAkBjgP,SACtCmgP,EAAkBF,EAAkBv+Q,OACpC0+Q,EAAgBH,EAAkB9lN,KAClCkmN,EAAiBJ,EAAkBppU,OAEnC6oU,GAAyD,SAAzBxuU,EAAMiK,QAAQjV,QAAsBg6U,IAAsBL,GAAmBM,IAAoBL,GAAiBM,IAAkBL,IAAgB,EAAIlB,EAAiB,SAAGmB,EAAcK,EAAgBb,KAC5Oj7N,EAAMk7N,kBAAmB,EAEzBtkU,EAAQtS,KAAK,CACXm3F,SAAU6/O,EACVn+Q,OAAQo+Q,EACR3lN,KAAM4lN,EACNlpU,MAAOmpU,IAGb,IAEA,IAAIM,EAAuB,SAA8B7uU,EAAUvL,GACjE,IAAIqsJ,EAAmBxtJ,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAGjFw/G,EAAMk7N,iBAGTl7N,EAAMk7N,kBAAmB,EAFzBptL,EAAkB5gJ,EAAUvL,EAAQqsJ,EAIxC,EAYA,OATAhuC,EAAMg8N,SAAWplU,EAAQowH,OAAO+0M,GAE3BpvU,EAAMsvU,cAITF,EAAqBnlU,EAAQ1J,SAAU0J,EAAQjV,QAAQ,GAGlDq+G,CACT,CA4BA,OA/HkB06N,EAqGL9yM,GArGkB+yM,EAqGD,CAAC,CAC7Bx5U,IAAK,uBACLrC,MAAO,WACL2D,KAAKu5U,WACLv5U,KAAKD,aACP,GACC,CACDrB,IAAK,SACLrC,MAAO,WACL,IAAIgvE,EAAcrrE,KAAKkK,MACnBuvU,EAAapuQ,EAAYouQ,WACzBtlU,EAAUk3D,EAAYl3D,QACtByD,EAAWyzD,EAAYzzD,SAI3B,OAAI6hU,EACkB73T,EAAgB,QAAEsB,cAActB,EAAgB,QAAEmvI,SAAU,KAAMn5I,GAGpEgK,EAAgB,QAAEsB,cAAc00T,EAAa8B,OAAQ,CACvEvlU,QAASA,GACRyD,EACL,MA5HwE8hF,EAAkBu+O,EAAYr8U,UAAWs8U,GA+H5G/yM,CACT,CArGmC,CAqGjCvjH,EAAOi6E,eAETspC,EAAgBppC,UAAY,CAC1Bn7F,MAAO82U,EAAoB,QAAE/wN,MAAM,CACjC/nH,SAAU84U,EAAoB,QAAEh+S,KAAKigT,WACrC96U,UAAW64U,EAAoB,QAAEh+S,KAAKigT,aACrCA,WACHxlU,QAASujU,EAAoB,QAAE/wN,MAAM,CACnCznH,OAAQw4U,EAAoB,QAAEj1U,OAAOk3U,WACrCp1M,OAAQmzM,EAAoB,QAAEh+S,KAAKigT,WACnClvU,SAAUitU,EAAoB,QAAE9zT,OAAO+1T,WACvC93U,KAAM61U,EAAoB,QAAEh+S,KAAKigT,aAChCA,WACHC,SAAUlC,EAAoB,QAAEj1U,OAChCmV,SAAU8/T,EAAoB,QAAEmC,UAAU,CAACnC,EAAoB,QAAEh+S,KAAMg+S,EAAoB,QAAEz3T,OAC7ForI,kBAAmBqsL,EAAoB,QAAEh+S,KAAKigT,WAC9CH,aAAc9B,EAAoB,QAAEj+S,KACpCk/S,sBAAuBjB,EAAoB,QAAEj+S,KAC7C++S,qBAAsBd,EAAoB,QAAEh+S,KAC5C+/S,WAAY/B,EAAoB,QAAEj+S,MAGpC,IAQIqgT,EAA6B,SAAoC5vU,GACnE,IAAI6vU,EAAU7vU,EAAMjD,SAAW0wU,EAAY1oP,kBAE3C,GAAe,MAAX8qP,EACF,KAAM,mCAGR,OAAoBn4T,EAAgB,QAAEsB,cAAc62T,EAAQC,SAAU,MAAM,SAAU72U,GACpF,IAAIvC,EAAQuC,EAAKvC,MACjB,OAAoBghB,EAAgB,QAAEsB,cAAciiH,EAAiBz5C,EAAS,CAC5E9qF,MAAOA,GACNsJ,GACL,GACF,EAKA,OAHA4vU,EAA2B/9O,UAAY,CACrC90F,QAASywU,EAAoB,QAAE9zT,SAE1B,EAAI+zT,EAAYsC,SAAS,MA1BP,SAA4Bh7U,GACnD,MAAO,CACLosJ,kBAAmB,SAA2B5gJ,EAAUvL,EAAQqsJ,GAC9D,OAAOtsJ,GAAS,EAAIssR,EAASlgI,mBAAmB5gJ,EAAUvL,EAAQqsJ,GACpE,EAEJ,GAoBO,CAAmDuuL,EAC5D,iCCpNA,SAAStjP,EAAQryF,GAGf,OAAOqyF,EAAU,mBAAqB/6F,QAAU,iBAAmBA,OAAOyM,SAAW,SAAU/D,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqB1I,QAAU0I,EAAE4mB,cAAgBtvB,QAAU0I,IAAM1I,OAAOG,UAAY,gBAAkBuI,CACpH,EAAGqyF,EAAQryF,EACb,wLCwBA,QA7BA,SAA2BopE,EAAWz5D,EAAOw2P,EAAcx7P,GACzD,IAAIorU,GAAc,OAAc,CAAC,EAAGpmU,EAAMy5D,IACtCz+D,SAA0CA,EAAQs3F,kBAC7Bt3F,EAAQs3F,iBACd5nG,SAAQ,SAAU2E,GACjC,IASMg3U,EATFt0U,GAAQ,OAAe1C,EAAM,GAC/Bi3U,EAAcv0U,EAAM,GACpBw0U,EAAcx0U,EAAM,IAMlBq0U,SAAkDA,EAAYE,IAAgBF,SAAkDA,EAAYG,MAEvF,QAAtDF,EAAwBD,EAAYG,UAAoD,IAA1BF,IAA2DD,EAAYG,GAAeH,aAAiD,EAASA,EAAYE,IAE/N,IAEF,IAAIxV,GAAc,QAAc,OAAc,CAAC,EAAGt6D,GAAe4vE,GAQjE,OALAv+U,OAAOwK,KAAKy+T,GAAapmU,SAAQ,SAAUE,GACrCkmU,EAAYlmU,KAASoV,EAAMpV,WACtBkmU,EAAYlmU,EAEvB,IACOkmU,CACT,mLC7BIlnO,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EAWA,MAEMqxU,EAAoB,WACpBv0D,EAAU5iR,IACd,IAAI,SACFyU,EAAQ,UACRy6C,GACElvD,EACJ,MAAMgnD,GAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,EAAYn6B,EAAQo6B,IAAa,QAAS15B,EAAWlI,GAC5D,OAAO2hC,EAAwB,gBAAoB,KAAsB,CACvE6sD,WAAY,CACVliI,KAAM,IAAWk7C,EAAQo6B,EAAW5hC,KAErCvyC,GAAU,EAETouQ,EAAsB,CAAC/lQ,EAAMpa,KACjC,IAAI,UACFwsD,EAAS,IACT3zD,GACEmH,EACJ,OAAoB,gBAAoBkgR,EAAS,CAC/C1zN,UAAWA,EACX3zD,IAAKA,GACJuhB,EAAK,EAEJgmQ,EAAsB,cAAiB,CAAC/7Q,EAAO8V,KACnD,MAAM,IACJm3B,EAAG,OACHuG,EACA2U,UAAW6zN,EACX/4L,aAAcg5L,EAAkB,SAChCvnM,EAAQ,IACRnU,EAAG,aACH27M,EAAY,MACZtwP,EAAK,SACLurC,EAAQ,aACRk5Q,GAAe,EAAI,aACnBC,GACEtwU,GACE,aACJmnD,EAAY,kBACZ2e,EAAiB,aACjBxS,EAAY,UACZj1B,IACE,IAAAgpB,YAAW,OACR,CAAEz9C,IAAS,UACZu+C,EAAY6zN,GAAmB70N,EAAa,iBAS3Ci1N,EAAKC,IAAU,QAAkB,CACtCl0N,YACArb,MATe25B,GCrEZ,SAA2BA,EAAWx5B,EAAKuG,GAChD,IAAI1G,EACJ,OAAQ25B,GACN,IAAK,MACH35B,EAAQ,CACNyjF,KAAM,MACN99D,UAAW,mBACX+9D,MAAO,OACPvjF,MACAuG,OAAQ,QAEV,MACF,IAAK,UACH1G,EAAQ,CACNyjF,KAAM,EACNtjF,MACAuG,OAAQ,QAEV,MACF,IAAK,WACH1G,EAAQ,CACN0jF,MAAO,EACPvjF,MACAuG,OAAQ,QAEV,MACF,IAAK,SACH1G,EAAQ,CACNyjF,KAAM,MACN99D,UAAW,mBACX+9D,MAAO,OACPvjF,IAAK,OACLuG,UAEF,MACF,IAAK,aACH1G,EAAQ,CACNyjF,KAAM,EACNtjF,IAAK,OACLuG,UAEF,MACF,QACE1G,EAAQ,CACN0jF,MAAO,EACPvjF,IAAK,OACLuG,UAIN,OAAO1G,CACT,CDkBgCyjS,CAAkB9pQ,EAAWx5B,QAAiCA,EAjDvE,GAiD6FuG,QAAuCA,EAjDpI,IA2DnB/lC,UATmB,IAAM,IAAW,CACpC,CAAC,GAAG06C,SAAkBoY,QAAiCA,EAAoB,QAAdliC,IAS7D6d,OAN4B,ICtBzB,SAAmBiM,GACxB,MAAO,CACL/L,WAAY,GAAG+L,SAEnB,CDkBsC+c,CAAU/c,GAO5C25C,UAAU,EACVuD,WAAW,QAAal9C,GACxBgP,SAAUA,QAA2CA,EA9DhC,IA+DrB8rB,aAAc,KAAOg5L,aAA+D,EAASA,OAA0Bn2M,aAA6D,EAASA,MAAwB78B,SAASgD,KAC9NyoC,WACA27P,eACAC,eACAp0D,eACAJ,sBACAlwP,OAAiB,IAAVA,GAA0B,CAC/BguK,UAA4B,iBAAVhuK,EAAqBA,aAAqC,EAASA,EAAMguK,eAAY5nM,EACvGgzD,OAAQ,EACRy/D,IAAK76G,EAAM4sC,UAQf,OAJA,sBAA0B1gC,GAAK,IAAMrkB,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGsxQ,GAAM,CACzEj0N,YACAmL,mBAEK+oN,CAAM,IAKR,SAASm0D,EAAwBC,GACtC,MAAMh0D,EAAY,SAAa,MAGzBi0D,IAFU,QAAc,gBAEd,WAAc,KAG5B,MAAM9oQ,EAAOzd,IACX,IAAI3vC,EACJ,IAAKiiQ,EAAU7hR,QAEb,OAEF,MACEgtE,KAAM0B,EAAU,UAChBnhB,EAAS,aACTmL,GACEmpN,EAAU7hR,QACR+hR,EAAkB,GAAGx0N,YACrB,QACF10C,EAAO,YACPoP,EAAW,KACXtJ,EAAI,KACJlkB,EAAI,IACJs7U,EAAG,UACHljU,EAAS,MACTq/B,EAAK,KACL+0B,EAAO,QAAO,UACdwjC,EAAS,SACTvD,GACE33C,EACJyyN,EAAappL,EAAOrpC,EAAQ,CAAC,UAAW,cAAe,OAAQ,OAAQ,MAAO,YAAa,QAAS,OAAQ,YAAa,aACrHymR,GAAgB,QAAaj0D,OAAsC,IAAdt3K,EAA4BA,EAAY/xC,aAAmD,EAASA,EAAa+xC,WAC5K,OAAO/7B,EAAW73E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAE5C27D,UAA2H,QAA/GjsD,EAAKi2T,aAA+D,EAASA,EAAmBhqQ,iBAA8B,IAAPjsD,EAAgBA,EAAK41T,GACvJxzD,GAAa,CACd9oO,QAAuB,gBAAoB,KAAa,CACtDqU,UAAWw0N,EACXpjQ,KAAMA,EACNlkB,KAAMA,EACNoe,QAASA,EACToP,YAAaA,EACb8tT,IAAKA,EACL9uQ,KAAMA,IAERp0D,UAAW,IAAWpY,GAAQ,GAAGsnR,KAAmBtnR,IAAQoY,EAAW6lD,aAAmD,EAASA,EAAa7lD,WAChJq/B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGwoD,aAAmD,EAASA,EAAaxmB,OAAQA,GACxHu4D,UAAWurO,EACX9uO,SAAUA,QAA2CA,IAAa8uO,IACjE,EAWCruT,EAAQ,CACZqlD,OACAG,QAVcvzE,IACd,IAAIgmB,EAAIC,OACIzoB,IAARwC,EAC2B,QAA5BgmB,EAAKiiQ,EAAU7hR,eAA4B,IAAP4f,GAAyBA,EAAGlhB,MAAM9E,GAE1C,QAA5BimB,EAAKgiQ,EAAU7hR,eAA4B,IAAP6f,GAAyBA,EAAGstD,SACnE,GAYF,MANa,CAAC,UAAW,OAAQ,UAAW,SACvCzzE,SAAQe,IACXktB,EAAMltB,GAAQ80D,GAAUyd,EAAKn2E,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGq/C,GAAS,CACpE90D,SACC,IAEEktB,CAAK,GACX,KAEH,MAAO,CAACmuT,EAAsB,gBAAoB30D,EAAQtqR,OAAOqZ,OAAO,CACtEtW,IAAK,uBACJi8U,EAAoB,CACrB36T,IAAK2mQ,KAET,CACe,SAASn6L,EAAgBmuP,GACtC,OAAOD,EAAwBC,EACjC,4HEtJA,QAtBA,SAAiB/2T,EAAQ/Q,EAAMwsE,GAO7B,IAJA,IAAI5rE,GAAS,EACTtT,GAHJ0S,GAAO,OAASA,EAAM+Q,IAGJzjB,OACdxD,GAAS,IAEJ8W,EAAQtT,GAAQ,CACvB,IAAIzB,GAAM,OAAMmU,EAAKY,IACrB,KAAM9W,EAAmB,MAAVinB,GAAkBy7D,EAAQz7D,EAAQllB,IAC/C,MAEFklB,EAASA,EAAOllB,EAClB,CACA,OAAI/B,KAAY8W,GAAStT,EAChBxD,KAETwD,EAAmB,MAAVyjB,EAAiB,EAAIA,EAAOzjB,UAClB,OAASA,KAAW,OAAQzB,EAAKyB,MACjD,OAAQyjB,KAAW,OAAYA,GACpC,+DCpCA,QAAe,IAA0B,6DCWjC,SAAW3K,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,gFAAgF/b,MACpF,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,4DAA4Drc,MAClE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,mBAAmBvc,MAAM,KACtCwc,oBAAoB,EACpBoQ,cAAe,QACfC,KAAM,SAAU9nB,GACZ,MAA2B,MAApBA,EAAMinC,OAAO,EACxB,EACAlf,SAAU,SAAUzP,EAAO6pC,EAASj6B,GAChC,OAAO5P,EAAQ,GAAK,KAAO,IAC/B,EACAZ,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,cACTE,QAAS,gBACTC,SAAU,eACVC,QAAS,cACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,aACNpU,EAAG,eACHqU,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAnEyCC,CAAQ,EAAQ,oTCGtDvN,EAAU,CAAC,szBAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OCb1D,MAoBasjU,EAAc,iBACzBzhP,EAAG,OACH7V,EAAS,cAAa,SACtB7rE,EAAQ,UACRD,EAAS,QACTqyI,GAEgB,EADbgxL,EAAAA,EAAAA,EAAAA,CALH1hP,MACA7V,SACA7rE,WACAD,YACAqyI,YAGA,OACE,UAACvjC,EAAAA,KAAQA,EAAAA,CACPjtB,WAAUF,EACV1V,cAAaH,EACb9rE,WAAWI,EAAAA,EAAAA,GAAK,cAAeJ,IAC3BqjU,cAAAA,WAEHpjU,EACAoyI,IAAW,SAACnC,EAAAA,EAAaA,CAACv8E,MAAO0+E,0VAMxC+wL,EAAWp3N,MA1Cc,kBACvBhsG,EAAS,OACT8rE,EAAS,qBAEY,EADlBw3P,EAAAA,EAAAA,EAAAA,CAFHtjU,YACA8rE,WAGA,OACE,SAACgjC,EAAAA,EAAS9C,MAAK,GACbhsG,WAAWI,EAAAA,EAAAA,GAAK,oBAAqBJ,GACrCisE,cAAaH,GACTw3P,GAAAA,maCZH,MAAMC,EAGX,UAAO/vS,CAAIxtB,GACL3d,KAAKm7U,kBACPtjS,QAAQ1M,IAAIxtB,EAEhB,KAN0B,KAAnBw9T,wBADID,woBCsBb,MAmLA,EAnLsB,CACpBlrO,EACAorO,EAAa,GACbtsU,EAAU,CAAC,EACXuF,EAAqB,QAKrB,MAAMgnU,EAAgB,CAAC,qBAAsB,eAC7C,IAAK1/U,OAAOwK,KAAK2I,GAAS4R,OAAOinH,GAAO0zM,EAAc9kU,SAASoxH,KAC7D,MAAM,IAAI7pI,MACR,iEAAiEihC,KAAKL,UACpE28S,OAMND,EAAW58U,SAASsF,IAClB,cAAeA,GACb,IAAK,SAGH,IAAKnI,OAAOwK,KAAKm1U,EAAAA,GAAkB/kU,SAASzS,GAC1C,MAAM,IAAIhG,MACR,sCAAsCgG,0DAG1C,MACF,IAAK,SACH,CAEE,MAAMy3U,EAA8B,CAClC,MACA,OACA,SACA,aACA,eACA,WACA,UACA,uBACA,qBACA,gBAEF,IACG5/U,OAAOwK,KAAKrC,GAAG4c,OAAOmK,GACrB0wT,EAA4BhlU,SAASsU,KAGvC,MAAM,IAAI/sB,MACR,sFAAsFihC,KAAKL,UACzF68S,gBACax8S,KAAKL,UAAU/iC,OAAOwK,KAAKrC,MAGhD,CACA,MACF,QACE,MAAM,IAAIhG,MACR,+EAA+EgG,MAErF,IAGF,MAAM7E,GAAW2nJ,EAAAA,EAAAA,MACX1xI,GAAmB+1C,EAAAA,EAAAA,UACvB,IACEmwR,EAAW/6U,QACT,CAACy6D,EAAKp8D,KAEJ,IAAI88U,EAAe98U,EAGf+8U,EAAgB,KAGhBC,EAAwB,GAE5B,GAAmB,iBAARh9U,EAAkB,CAC3B,MAAQA,IAAKi9U,EAAM,KAAEvzU,EAAO,KAAI,aAAE4jD,EAAe,IAAOttD,EACxD,IAAKi9U,EACH,MAAM,IAAI79U,MACR,+DAKJ09U,EAAeG,EACfF,EAAgBrzU,EAChBszU,EAAwB1vR,CAC1B,CACA,MAAM4vR,EAAaN,EAAAA,EAAiBE,GAEpC,IAAKI,EACH,MAAM,IAAI99U,MAAM,iCAAiC09U,KAGnD,MAAM,QAAE79U,EAAO,OAAEuB,GAAW08U,EAW5B,OAPA9gR,EAAInrD,SAAS8rU,GAAiB99U,IAAW42H,EAAAA,EAAAA,IACvCsnN,EAAAA,EAAAA,GAA0BH,EAAuBx8U,GACjD8wG,EACAyrO,GACA,GAEF3gR,EAAI30D,KAAKtE,KAAKlE,GACPm9D,CAAG,GAEZ,CAEEnrD,SAAU,GAGR+yG,SAAS6R,EAAAA,EAAAA,IACPsnN,EAAAA,EAAAA,IAA0B,EAAM,sBAChC7rO,IAQElhG,EAAQgtU,aAAe,CACzBxzS,MAAMisF,EAAAA,EAAAA,GAA0BwnN,EAAAA,EAAa/rO,KAK3C37F,GAAsB,IAAIhU,QAAO,CAACy6D,EAAKC,KAEzCD,EAAIC,EAAKr8D,MAAO61H,EAAAA,EAAAA,GAA0Bx5D,EAAKp9D,QAASqyG,GACjDl1C,IACN,CAAC,IAEN30D,KAAM,MAGZ,CAACi1U,EAAYprO,EAAM37F,EAAoBvF,EAAQgtU,cAG3CE,GAAmB/wR,EAAAA,EAAAA,UACvB,IAAM,CAAC,CAAEvsD,IAAKsxG,EAAMryG,SAASwS,EAAAA,EAAAA,GAAgB+E,EAAiBvF,aAC9D,CAACuF,EAAiBvF,SAAUqgG,KAE9BjhB,EAAAA,EAAAA,GAAkBitP,IAGlBC,EAAAA,EAAAA,KAAqB,KACnBh9U,GAAS4vR,EAAAA,EAAAA,IAAuB7+K,EAAMorO,GAAY,GACjD,CAACn8U,EAAUm8U,EAAYprO,IAI1B,MAAMksO,EAAgBd,EAAW/6U,QAC/B,CAACy6D,EAAKC,KACJ,MAAMr8D,EAAsB,iBAATq8D,EAAoBA,EAAKr8D,IAAMq8D,EAC5CohR,EACY,iBAATphR,GAAqBA,EAAK/O,aAAe+O,EAAK/O,aAAe,GAGtE,OADA8O,EAAIp8D,GAAOy9U,EACJrhR,CAAG,GAEZ,CACExyB,KAAM,CAAC,EACPo6E,SAAS,IAIP94G,EACJ89I,IAAc00L,EAAAA,EAAAA,IAA2BlnU,EAAiB/O,KAA5Ci2U,GAAqD,CACjErsR,MAAO,CAAE3nD,KAAM4nG,MACXksO,EACR,OAAOvgV,OAAOwK,KAAKyD,GAAMzJ,OAASyJ,EAAOsyU,CAAa,mDCzLxD,MAAMG,EAA2C,CAAC,EAI5CC,GAAer/U,KAAKC,SAAW,GAAGnB,SAAS,IAAIoB,UAAU,GAuD/D,EArD6BiL,IACtBi0U,EAAoBj0U,KAEvBi0U,EAAoBj0U,GAAQ,CAC1Bm0U,WAAY,CACVz3U,QAAS,IAAI03U,EAAAA,GAAiBp0U,IAEhCq0U,SAAU,KAIdz+Q,EAAAA,EAAAA,YAAU,KACHq+Q,EAAoBj0U,GAAMm0U,WAAWz3U,UAGxCu3U,EAAoBj0U,GAAMm0U,WAAWz3U,QAAU,IAAI03U,EAAAA,GAAiBp0U,IAItEi0U,EAAoBj0U,GAAMq0U,WAEnB,SAGHJ,EADF,IAC2B,QAAzBA,EAAAA,EAAoBj0U,UAApBi0U,IAAAA,OAAAA,EAAAA,EAA2BE,WAAWz3U,UACG,KAAvCu3U,EAAoBj0U,GAAMq0U,SAC5B,CAEA,MACEF,YAAcz3U,QAAS43U,IACrBL,EAAoBj0U,GAExBi0U,EAAoBj0U,GAAMm0U,WAAWz3U,QAAU,KAG/C43U,EAAgBl5U,QAAQo+H,OAAOllI,IAC7Bm7C,QAAQjzC,MAAMlI,GAEd44C,EAAAA,GAAsB,0BAA2B,CAC/C+9C,SAAU,CACRspP,UAAW,CACT/3U,MAAOm6B,KAAKL,UAAUhiC,MAG1B,GAEN,KAED,CAAC0L,IAEG,CAACi0U,EAAoBj0U,GAAMm0U,WAAYD,gUCnEhD,MAAMM,EAA4B,CAChC,CACEC,cAAe,IACfxzO,QAAS,CACP0kK,IAAK,wCAEP+uE,WAAY,CACVC,gBAAiB,KAKjBC,EAAyB,IAmCzBttO,EACa,8BADbA,EAGE,6DAGR,IACEr8F,QACA4pU,sBACAC,mBAAmBN,EACnBO,kBACArpU,QACAspU,6BAA4B,MAE5B,MAAOC,EAAqBf,GAAegB,EAAoB,UACzDC,GAAK3/Q,EAAAA,EAAAA,QAAyB,MAC9B4/Q,GAAoB5/Q,EAAAA,EAAAA,QAA8C,MAElE6/Q,GAA6B7/Q,EAAAA,EAAAA,QAjDrB,GAkDR8/Q,GAAU9/Q,EAAAA,EAAAA,QArDE,GAsDZ+/Q,GAAgB//Q,EAAAA,EAAAA,QAA6C,MAC7D2wK,GAAe3wK,EAAAA,EAAAA,QAAOo/Q,IAErB5wU,EAAQsR,IAAa46E,EAAAA,EAAAA,UAtDd,GAyDRslP,GAAuB7/Q,EAAAA,EAAAA,cAC1B8/Q,IACCA,SAAAA,EAAS5nS,iBAAiB,WAAY+P,IACpC,GAAKA,GAAUA,EAAMp8C,KAErB,QA8BIA,EA7BF,MAAMixD,EAAS97B,KAAKwD,MAAMyjB,EAAMp8C,OAC1B,KAAErK,EAAI,KAAEqK,GAASixD,GACjB,WAAEu1B,GAAexmF,MAuCR2zU,EA/BF,qBAATh+U,GAEFs4C,QAAQ1M,IACN,UAAUgyS,QAAsBvzU,EAAKk0U,qCAEjCl0U,EAAKm0U,sBACE,IAAI/5T,MAAOwZ,iBAAiBuB,KAAKL,UACxC90B,EAAKo0U,uBAET,eAAiBtuO,EACjBA,EAlDE,kCAoDFA,GAKO,qBAATnwG,GACe,MAAf6wF,IACAxmF,SAAyB,QAAzBA,EAAAA,EAAMo0U,2BAANp0U,IAAAA,OAAAA,EAAAA,EAA2Bq0U,aAAc,IACzCr0U,aAAAA,EAAAA,EAAMuzU,mBAAoBA,GAG1Bz/T,EA7FD,GAgGG0yE,GAAc,KAChB96C,EAAAA,GAAsB,qCAAsC,CAC1D+9C,SAAU,CACRspP,UAAW,CACTuB,OAAQn/S,KAAKL,UAAU,CACrB8W,IAAe,QAAV+nS,EAAAA,EAAGz4U,eAAHy4U,IAAAA,OAAAA,EAAAA,EAAY/nS,IACjB6tL,SAAU,oBAAoBhwN,qBAEhCirO,UAAWt4L,EAAMp8C,KACjBszU,iBAAkBn+S,KAAKL,UAAUw+S,GACjC7pU,QACA8pU,kBACA/sP,iBAQG,qBAAT7wF,GACA,CAAC,IAAK,IAAK,KAAKgX,SAAS65E,KAEzBqtP,EAA2B34U,QAtHxB,EAuHH4Y,EAvHG,GA2HP,CAAE,MAAOhhB,GACPm7C,QAAQjzC,MAAM,6CAA8ClI,EAAGspD,EACjE,KAGEi3R,GACFA,EAAoBY,EACtB,GAGF,CAACZ,EAAqBE,IAGlBlD,GAAUl8Q,EAAAA,EAAAA,cAAY,KAExBmuD,IAAAA,gBACAp4G,IACCypU,EAAGz4U,UACHuO,GAAmB,OAAVA,IAGVkqU,EAAGz4U,QAAU,IAAIq5U,UAAUjyN,IAAAA,eAA+B,CACxD,oBAAoB74G,KAASS,MAE/B2pU,EAA2B34U,QAtJnB,EAwJR+yC,QAAQ1M,IACN,0BAA0BgyS,YAAyB,IAAIn5T,MAAOwZ,gBAC9DkyE,EACAA,GAGF6tO,EAAGz4U,QAAQslN,QAAWpkK,QAMPu3R,EALb1lS,QAAQjzC,MAAM,4BAA6Bm6B,KAAKL,UAAUsnB,IAC1D1Q,EAAAA,GAAsB,mBAAoB,CACxC+9C,SAAU,CACRspP,UAAW,CACTuB,OAAQn/S,KAAKL,UAAU,CACrB8W,IAAe,QAAV+nS,EAAAA,EAAGz4U,eAAHy4U,IAAAA,OAAAA,EAAAA,EAAY/nS,IACjB6tL,SAAU,oBAAoBhwN,qBAEhC2yC,MAAOjnB,KAAKL,UAAUsnB,GACtBk3R,iBAAkBn+S,KAAKL,UAAUw+S,GACjC7pU,QACA8pU,qBAGJ,EAIJI,EAAGz4U,QAAQmxC,iBAAiB,UAAQ,YAClC,QA4BEsnS,EA1BA1lS,QAAQ1M,IACN,6BAA6BgyS,YAAyB,IAAIn5T,MAAOwZ,gBACjEkyE,EACAA,GAGFhyF,EA1LI,SCzBmC0gU,EDoNAb,EAAGz4U,QCnNlD,IAAI3D,SAAQ,CAACC,EAASC,KAIpB,IAAIg9U,EAAiB,EAErB,MAAMC,EAAoB,KACpBF,EAAOz4I,aAAey4I,EAAOG,KAC/Bn9U,IACSi9U,GARe,EASxBh9U,EAAO,IAAIvD,MAAM,yCAEjBugV,IACAj2R,WAAWk2R,EAXU,IAW4BD,GACnD,EAGFC,GAAmB,KDqMbzmS,QAAQ1M,IACN,4BAA4BgyS,YAAyB,IAAIn5T,MAAOwZ,gBAChEkyE,EACAA,GAIF+tO,EAA2B34U,QArMvB,EAsMA64U,EAAc74U,UAChByjD,aAAao1R,EAAc74U,SAC3B64U,EAAc74U,QAAU,MAE1B44U,EAAQ54U,QA9ME,EA+MVypO,EAAazpO,QAAUk4U,EAGb,QAAVO,EAAAA,EAAGz4U,eAAHy4U,IAAAA,GAAAA,EAAYl7P,KACVtjD,KAAKL,UAAU,CACbx/B,OAAQ,wBACRi+U,kBACAvzU,KAAMszU,KAOVM,EAAkB14U,QAAUuiD,aAAY,KACtC,GAAIk2R,EAAGz4U,SAAWy4U,EAAGz4U,QAAQ6gM,aAAew4I,UAAUI,KACpD,IAEE1mS,QAAQ1M,IAAI,iCACZoyS,EAAGz4U,QAAQu9E,KAAK,IAClB,CAAE,MAAO+qC,GACPv1E,QAAQjzC,MAAMwoH,GACd93E,EAAAA,GAAsB,mCAAoC,CACxD+9C,SAAU,CACRspP,UAAW,CACT/3U,MAAOwoH,EACP+vN,kBACA9pU,QACA6pU,iBAAkBn+S,KAAKL,UAAUw+S,MAIzC,CACF,GAlPe,MAqPjBU,EAAqBL,EAAGz4U,QAC1B,CAAE,MAAOa,OAUQ43U,EATf,MAAMiB,EAAY74U,EAElBkyC,QAAQ9a,KAAK,oBAAoByhT,EAAU7gU,WAC3C23B,EAAAA,GACE,qCAAqCkpS,EAAU7gU,UAC/C,CACE01E,SAAU,CACRspP,UAAW,CACTuB,OAAQn/S,KAAKL,UAAU,CACrB8W,IAAe,QAAV+nS,EAAAA,EAAGz4U,eAAHy4U,IAAAA,OAAAA,EAAAA,EAAY/nS,IACjB6tL,SAAU,oBAAoBhwN,qBAEhC8pU,kBACA9pU,QACA6pU,iBAAkBn+S,KAAKL,UAAUw+S,MAK3C,CC7RwC,IAACkB,CD8R3C,KAEAb,EAAGz4U,QAAQmxC,iBAAiB,SAAS,KAiBnC,OAfA4B,QAAQ1M,IACN,6BAA6BgyS,YAAyB,IAAIn5T,MAAOwZ,gBACjEkyE,EACAA,GAIE8tO,EAAkB14U,UACpBkjD,cAAcw1R,EAAkB14U,SAChC04U,EAAkB14U,QAAU,MAG9By4U,EAAGz4U,QAAU,KACb4Y,EAvRQ,GAyRA+/T,EAA2B34U,SACjC,KAtRK,EAwRH+yC,QAAQ1M,IACN,+BAA+BgyS,YAAyB,IAAIn5T,MAAOwZ,mCACnEkyE,EACAA,GAEF,MACF,KAjSI,EAoSF73D,QAAQ1M,IACN,+BAA+BgyS,YAAyB,IAAIn5T,MAAOwZ,+BACjE+wM,EAAazpO,QAAU,cAEzB4qG,EACAA,GAGEguO,EAAQ54U,QAAU,GACpB44U,EAAQ54U,SAAW,EACnB64U,EAAc74U,QAAUsjD,YAAW,KACjC6xR,GAAS,GACR1rG,EAAazpO,SAEhBypO,EAAazpO,SAAW,IAExB64U,EAAc74U,QAAU,KAExB+yC,QAAQ1M,IACN,mFAAmFgyS,YAAyB,IAAIn5T,MAAOwZ,gBACvHkyE,EACAA,IAOR,KAEQwc,IAAAA,eAMVr0E,QAAQzpB,MAAM,8BAJdypB,QAAQzpB,MACN,iEAIJ,GACC,CAAC/a,EAAOuqU,EAAsBV,EAAkBC,EAAiBrpU,IAE9D6vC,GAAaoa,EAAAA,EAAAA,cAAY,KACzBmuD,IAAAA,gBAAiCqxN,EAAGz4U,SAClCy4U,EAAGz4U,QAAQ6gM,aAAew4I,UAAUI,OACtChB,EAAGz4U,QAAQtB,MAAM,KAGjBi6U,EAA2B34U,QAnVnB,EAoVJ64U,EAAc74U,UAChByjD,aAAao1R,EAAc74U,SAC3B64U,EAAc74U,QAAU,MAE1B44U,EAAQ54U,QA3VI,EA4VZypO,EAAazpO,QAAUk4U,EAI3B,GACC,IAEGyB,GAAe1gR,EAAAA,EAAAA,cAAY,KAhWnB,IAkWV3xD,GAjWQ,IAkWRqxU,EAA2B34U,UAG3B+yC,QAAQ1M,IACN,oCAAoCgyS,YAAyB,IAAIn5T,MAAOwZ,iBAGtEmgT,EAAc74U,UAChByjD,aAAao1R,EAAc74U,SAC3B64U,EAAc74U,QAAU,MAE1B44U,EAAQ54U,QAjXM,EAkXTy4U,EAAGz4U,SACNm1U,IAEJ,GACC,CAAC7tU,EAAQ6tU,EAASkD,IAGfuB,GAAc9gR,EAAAA,EAAAA,QAAO6gR,GAsD3B,OApDAzgR,EAAAA,EAAAA,YAAU,KACR0gR,EAAY55U,QAAU25U,CAAY,GACjC,CAACA,KAEJzgR,EAAAA,EAAAA,YAAU,KACR,MAAM2gR,EAAW,IAAMD,EAAY55U,UAGnC,OAFAgzC,OAAO7B,iBAAiB,SAAU0oS,GAE3B,KACL7mS,OAAOsjD,oBAAoB,SAAUujP,EAAS,CAC/C,GACA,CAACxB,KAKJn/Q,EAAAA,EAAAA,YAAU,KACR,IAAKlmB,SAAWulS,EAAoBv4U,QAClC,MAAO,OAGT,MAAM85U,EAAmBvB,EAAoBv4U,QAEvC+5U,EAAiBx/S,IAEnB,CACmB,gBAAjBA,aAAAA,EAAAA,EAAKy/S,SACW,OAAhBz/S,aAAAA,EAAAA,EAAKlc,SACLkc,aAAAA,EAAAA,EAAK0/S,UAAWzC,GACfc,GACD18T,MAAML,UAERsjC,GACF,EAMF,OAFAi7R,EAAiB3oS,iBAAiB,UAAW4oS,GAEtC,KACLD,EAAiBxjP,oBAAoB,UAAWyjP,EAAc,CAC/D,GACA,CAACxB,EAAoBv4U,WAGxBk5D,EAAAA,EAAAA,YACE,IAAM,KACJra,GAAY,GAEd,CAACA,IAGI,CACLy6R,OAAQb,EAAGz4U,QACXk6U,YA3aO,IA2aM5yU,EACb6tU,UACAt2R,aACAv3C,SAEH,EEvbD,EApBA,SAA4B6yU,GAC1B,MAAOC,EAAaC,IAAkB7mP,EAAAA,EAAAA,WAAS,GAgB/C,OAfAt6B,EAAAA,EAAAA,YAAU,KAER,MAAMohR,EAAuBjsS,SAASq1B,iBAAiBy2Q,GACjDI,EAASlsS,SAASq1B,iBAAiB,cAEzC,IAAI56C,GAAO,EACPyxT,GAAUD,EAAqBA,EAAqBj/U,OAAS,IAC/Dk/U,EAAO7gV,SAASuuN,IACdn/L,EACEA,GACAm/L,EAAGslF,SAAS+sC,EAAqBA,EAAqBj/U,OAAS,GAAG,IAGxEg/U,EAAevxT,EAAK,GACnB,CAACqxT,IACGC,CACT,uCCVA,MAAMI,EAAsB,KACtBC,EAAkB,KAOT,SAASC,GAAoB,KAC1CxvO,EAAI,aACJyvO,EAAY,SACZC,EAAQ,UACRh9S,EAAS,UACTi9S,GAAY,EAAK,MACjBC,EAAQ,GAAE,gBACV3nN,EAAkB,KAAM,QAExB,MAAMh5H,GAAW2nJ,EAAAA,EAAAA,OAEVi5L,EAAcC,IAAmBxnP,EAAAA,EAAAA,UAAS,OAC1CynP,EAAcC,IAAmB1nP,EAAAA,EAAAA,UAAS,OAC1C2nP,EAAWC,IAAgB5nP,EAAAA,EAAAA,UAAS,OACpC6nP,EAAYC,IAAiB9nP,EAAAA,EAAAA,WAAS,GAEvCr3B,EAAYv+B,GACd6hC,EAAAA,EAAAA,IAAS,IAAIvgD,KAAiB,IAAZ0e,GAAkBlF,eACjCumC,SAAS,GAAI,WACbvmC,cACH,KACE0jC,EAAUx+B,GACZ6hC,EAAAA,EAAAA,IAAS,IAAIvgD,KAAiB,IAAZ0e,GAAkBlF,eACjCvoB,IAAI,GAAI,WACRuoB,cACH,KAEE6iT,GAAgBtiR,EAAAA,EAAAA,cAAY,KAEhClmB,QAAQzpB,MAAM,oBAAsBpK,KAAKC,MAAQ,IAAI87T,KACjDI,IAAeR,GAAaM,GAAaL,EAAMz/U,QAEjD03C,QAAQzpB,MACN,gDAAkDpK,KAAKC,OAEzD67T,EAAgB,MAChBE,EAAgB,OACPD,GAAgB/7T,KAAKC,MAAQ87T,EAAeR,GAErD1nS,QAAQzpB,MACN,sDACEpK,KAAKC,MAAQ87T,IAGjBC,EAAgB,MAChBF,EAAgB,MAChBM,GAAc,GACdnhV,GACE6nJ,EAAAA,EAAAA,IAAS,QAAS,mCAAoC,SAAU,CAC9DjpF,QAAS,OAGbo6D,MAGApgF,QAAQzpB,MACN,+CAAiDpK,KAAKC,OAExDhlB,GACE+vR,EAAAA,EAAAA,IAAyBh/K,EAAM,CAC7BtxG,IAAK,yBACL4hV,WAAY,CAACb,EAAcC,GAC3Ba,mBAAoB,CAAEt/Q,YAAWC,cAGvC,GACC,CACDw+Q,EACAO,EACAL,EAAMz/U,OACNs/U,EACAxgV,EACAkhV,EACAnwO,EACA+vO,EACAJ,EACA1+Q,EACAC,EACA+2D,IAyBF,OAtBAuoN,IAAYH,EAAeR,IAG3B7hR,EAAAA,EAAAA,WAAUqiR,EAAe,KAEzBriR,EAAAA,EAAAA,YAAU,KAER,IAAImiR,GAAeR,EAAnB,CAEA,GAAIC,EAAMz/U,OAAQ,CAChB,MAAMi3C,EAAOwoS,EAAM,GAEfxoS,GACF8oS,EAAa9oS,EAEjB,CAEA4oS,EAAgBh8T,KAAKC,OACrB67T,EAAgBR,GAChBe,GAZoC,CAYrB,GACd,CAACF,EAAYR,EAAWD,EAAUE,EAAMz/U,OAAQlB,EAAU+wG,IAEtD,CACLmwO,aACAF,YAEJ,igBCpHA,MAAMQ,GAAmC,CACvC,QACA,kBACA,oBACA,mBACA,WACA,YAwIF,GApIoB,CAACC,EAAa1lR,EAAW2lR,EAAgB,CAAC,KAC5D,MAAM1hV,GAAW2nJ,EAAAA,EAAAA,MACXg6L,EAAkBl5L,IAAcm5L,EAAAA,EAAAA,MAEtC,IACGllV,OAAOwK,KAAKw6U,GAAejgU,OAAOinH,GACjC84M,GAAiClqU,SAASoxH,KAG5C,MAAM,IAAI7pI,MACR,oEAAoEihC,KAAKL,UACvE/iC,OAAOwK,KAAKw6U,uBACO5hT,KAAKL,UAAU+hT,QAKpC3oS,OAAO60E,eAAeC,QAAQ,sBAEhC+zN,EAAcvyT,OAAQ,GAExB,MAAM,MAAEA,GAAUuyT,GAIhBA,aAAAA,EAAAA,EAAeG,qBACdxyU,MAAMie,QAAQo0T,EAAcG,qBAEzB1yT,GAEFypB,QAAQzpB,MACN,8EAIJuyT,EAAcG,kBAAoB,CAACH,EAAcG,oBAGnD,MAAMzsR,GAASpJ,EAAAA,EAAAA,UACb,KAAO,OACLy1R,eAAa,MACRA,KAAAA,CACH1lR,UAAW,MACNA,+VAGP2lR,cAAe,MACVA,WAEL,GAIF,IAMII,GAAehjR,EAAAA,EAAAA,cAClBnD,IACC,MAAMomR,EAA2B,MAAK3sR,GACtC2sR,EAAyBN,YAAY1lR,UAAY,MAC5CgmR,EAAyBN,YAAY1lR,UACrCJ,GAEL37D,GAASgiV,EAAAA,EAAAA,IAAYD,GAA0B,GAEjD,CAAC3sR,EAAQp1D,IAGLiiV,GAAgBnjR,EAAAA,EAAAA,cACnBnD,IACC,MAAMomR,EAA2B,MAAK3sR,GACtC2sR,EAAyBN,YAAY1lR,UAAY,MAC5CgmR,EAAyBN,YAAY1lR,UACrCJ,GAEL37D,GAASkiV,EAAAA,EAAAA,IAAeH,GAA0B,GAEpD,CAAC/hV,EAAUo1D,IAGP5pD,GAAWs6I,EAAAA,EAAAA,eA8CjB,OA3CA/mF,EAAAA,EAAAA,YAAU,KACR,MAAM,OAAEnD,EAAM,UAAED,IAAcH,EAAAA,EAAAA,GAAkBhwD,GAE1C22U,EAAuBR,EAAgB7/U,KAC1C8F,QAAMA,SAAAA,SAAc,QAAdA,EAAAA,EAAG65U,mBAAH75U,IAAAA,OAAAA,EAAAA,EAAgBgM,IAAI,IAEvBwuU,EACJxmR,EAAOvpD,WAAWuoB,GAAMA,EAAEk2B,MAAMx5C,SAASmqU,EAAY7tU,SAAU,EAC3DyuU,GACHF,EAAqBjhV,WAEpBwgV,EAAc3nP,YACdC,EAAAA,EAAAA,KAAoBD,SAASziF,SAASoqU,EAAc3nP,WAGlDuoP,EAAWF,GAAaC,EAE1BC,IAAaH,EAAqB7qU,SAASmqU,EAAY7tU,QACrDub,IAEFypB,QAAQzpB,MAAM,mCACdypB,QAAQzpB,MACN,mBAAmB2Q,KAAKL,UAAUiiT,EAAc3nP,SAAU,KAAM,MAElEnhD,QAAQzpB,MACN,wBAAwB2Q,KAAKL,UAC3BgiT,EAAY7tU,KACZ,KACA,iBACc0uU,kBAAyBF,sBAA8BC,MAEzEzpS,QAAQzpB,MAAM,iBAAiB2Q,KAAKL,UAAUk8B,EAAW,KAAM,MAC/D/iB,QAAQzpB,MAAM,oCAGZA,GAEFypB,QAAQzpB,MAAM,sCAAsCsyT,EAAY7tU,QAElEkuU,EAAanmR,GACf,GACC,CAACnwD,IAEG,CAACs2U,EAAcG,EAAe7sR,EAAO,gfC5H9C,MAoHA,GApH4B,CAACmtR,EAAMzxR,EAAO9wD,EAAUoU,KAClD,MAAM,EAAEpK,IAAM6tF,EAAAA,GAAAA,MAGR2qP,EAAc/5L,GAAcg6L,EAAAA,GAA8B,CAAE3xR,UAC5D4xR,EAAcj6L,IAAck6L,EAAAA,EAAAA,MAA6B,CAAE7xR,UAC3D8xR,EAAcn6L,IAAco6L,EAAAA,EAAAA,MAA6B,CAAE/xR,UAC3DgyR,EAAer6L,IAAcs6L,EAAAA,EAAAA,MAAsC,CACvEjyR,UAEIkyR,EAAev6L,IAAcw6L,EAAAA,EAAAA,MAA8B,CAAEnyR,UAC7DoyR,EAAyBz6L,IAC7B06L,EAAAA,EAAAA,MACA,CAAEryR,WAGE,+BAAEsyR,IACNC,EAAAA,GAAAA,GAA6BjvU,GAgG/B,MAAO,EA9Fe43C,EAAAA,EAAAA,UACpB,KAAO,CACLs3R,OAAQd,EACR,kBAAmBE,EACnB,kBAAmBE,EACnB,aAAcE,EACd,gBAAiBE,EACjBO,mBAAoBL,EACpBxlV,OAAQ,CACN,CAAE6Q,MAAOvE,EAAE,WAAY5M,MAAO,WAC9B,CAAEmR,MAAOvE,EAAE,UAAW5M,MAAO,UAC7B,CAAEmR,MAAOvE,EAAE,gBAAiB5M,MAAO,iBAErC0/S,SAAU,CACR,CAAEvuS,MAAOvE,EAAE,UAAW5M,MAAO,UAC7B,CAAEmR,MAAOvE,EAAE,SAAU5M,MAAO,SAC5B,CAAEmR,MAAOvE,EAAE,SAAU5M,MAAO,aAGhC,CACE4M,EACAw4U,EACAE,EACAE,EACAE,EACAE,EACAE,KAIwBpkR,EAAAA,EAAAA,cAC1B,CAACkpI,EAAYutG,KACX,IAAIiuC,EAAa,KACjB,OAAQx7I,GACN,IAAK,SACHw7I,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,IACjBolB,KACI6tC,GAAkC,CACpCvzU,QAAS,kBAGbugR,iBAAkBnD,GAAAA,IAClBl8K,KAAMwxO,GAER,MACF,IAAK,kBACHiB,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkBqzD,GAAAA,IAClB1yO,KAAMwxO,GAER,MACF,IAAK,kBACHiB,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkB1C,GAAAA,IAClB38K,KAAMwxO,GAER,MACF,IAAK,aACHiB,EAAa,CACXtzD,UAAW,cACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkB5C,GAAAA,IAClBz8K,KAAMwxO,GAER,MACF,IAAK,gBACHiB,EAAa,CACXtzD,UAAW,aACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkBjD,GAAAA,IAClBp8K,KAAMwxO,OASLiB,EAFHA,KAEiC,QAA9BA,EAAAA,EAAWrzD,kBAAkBolB,SAA7BiuC,IAAAA,OAAAA,EAAAA,EAAgCtiV,gBAC5BsiV,EAAWrzD,kBAAkBolB,EAEtCv1S,GAASiwR,EAAAA,EAAAA,IAA4BuzD,IACvC,GAEF,CAACJ,EAAgCb,EAAMviV,IAGE,qcC/G7C,MA2HA,GA3HiC,CAACuiV,EAAMzxR,EAAO9wD,EAAUoU,KAEvD,MAAMouU,EAAc/5L,GAAcg6L,EAAAA,GAA8B,CAAE3xR,UAC5D4xR,EAAcj6L,IAAck6L,EAAAA,EAAAA,MAA6B,CAAE7xR,UAC3D8xR,EAAcn6L,IAAco6L,EAAAA,EAAAA,MAA6B,CAAE/xR,UAC3DgyR,EAAer6L,IAAcs6L,EAAAA,EAAAA,MAAsC,CACvEjyR,UAEI4yR,EAAcj7L,GAAck7L,EAAAA,GAA2B,CAAE7yR,UACzD8yR,EAAan7L,IAAco7L,EAAAA,EAAAA,MAAuB,CACtD/yR,UAEIgzR,EAAgBr7L,GAAcs7L,EAAAA,GAAqB,CAAEjzR,UAErDkzR,GAAgBh4R,EAAAA,EAAAA,UACpB,KAAO,CACLs3R,OAAQd,EACRyB,eAAgBzB,EAChB0B,eAAgBR,EAChB,kBAAmBhB,EACnB,kBAAmBE,EACnB,aAAcE,EACdqB,MAAOP,EACPQ,SAAUN,KAEZ,CACEtB,EACAkB,EACAhB,EACAE,EACAE,EACAc,EACAE,KAIE,+BAAEV,IACNC,EAAAA,GAAAA,GAA6BjvU,GAmF/B,MAAO,CAAC4vU,GAjFoBllR,EAAAA,EAAAA,cAC1B,CAACkpI,EAAYutG,KACX,IAAIiuC,EAAa,KACjB,OAAQx7I,GACN,IAAK,SACL,IAAK,iBACHw7I,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,IACjBolB,KACI6tC,GAAkC,CACpCvzU,QAAS,kBAGbugR,iBAAkBnD,GAAAA,IAClBl8K,KAAMwxO,GAER,MACF,IAAK,iBACHiB,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkB5B,GAAAA,IAClBz9K,KAAMwxO,GAER,MACF,IAAK,kBACHiB,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkBqzD,GAAAA,IAClB1yO,KAAMwxO,GAER,MACF,IAAK,kBACHiB,EAAa,CACXtzD,UAAW,YACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkB1C,GAAAA,IAClB38K,KAAMwxO,GAER,MACF,IAAK,aACHiB,EAAa,CACXtzD,UAAW,cACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkB5C,GAAAA,IAClBz8K,KAAMwxO,GAER,MACF,IAAK,QACHiB,EAAa,CACXtzD,UAAW,WACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkBlC,GAAAA,IAClBn9K,KAAMwxO,GAER,MACF,IAAK,WACHiB,EAAa,CACXtzD,UAAW,cACXC,kBAAmB,CAAEolB,KACrBnlB,iBAAkBi0D,GAAAA,IAClBtzO,KAAMwxO,OASLiB,EAFHA,KAEiC,QAA9BA,EAAAA,EAAWrzD,kBAAkBolB,SAA7BiuC,IAAAA,OAAAA,EAAAA,EAAgCtiV,gBAC5BsiV,EAAWrzD,kBAAkBolB,EAEtCv1S,GAASiwR,EAAAA,EAAAA,IAA4BuzD,IACvC,GAEF,CAACJ,EAAgCb,EAAMviV,IAGE,6CCzI7C,MAAMskV,GAAuB,CAC3B,6CACA,0CACA,sCAEIC,GAA2B,CAC/B,yCACA,6CAEIC,GAAmB,yBAiPzB,GAxOiC,EAC/BpwU,QACAkvU,SACAmB,uBACA5vU,YAEA,MAAM7U,GAAW2nJ,EAAAA,EAAAA,OAMVy2L,EAAqBf,GAAegB,EAAoB,UAGzDqG,GAAY9zP,EAAAA,EAAAA,KAChB83D,EAAAA,GAAAA,IAAkB,wCAGdu1L,GAAmBjyR,EAAAA,EAAAA,UAAQ,IACxB,IACFs4R,GAAqBxiV,KAAK87U,IAAmB,CAC9C+G,UAAW,CACT/G,gBACA0F,UAEFl5O,QAAS,CACP0kK,IAAK,wCAEP+uE,WAAY,CAAC,SAEZ0G,GAAyBziV,KAAK87U,IAAmB,CAClD+G,UAAW,CACT/G,iBAEFxzO,QAAS,CACP0kK,IAAK,wCAEP+uE,WAAY,CAAC,QAGhB,CAACyF,IAGE1zE,GAAc9wM,EAAAA,EAAAA,cAClB,CAAC/X,EAAOo4R,KACN,MACEp4R,MAAOovC,EACPxrF,MAAM,gBACJ83E,EACAmiQ,QAASC,EAAmB,UAC5Bt+G,EAAS,QACTu+G,EAAO,MACPX,EAAK,kBACLzhQ,IAEA37B,EAKD,IAAIu9R,MAAyBC,IAA0BjtU,SACtD6+E,KAOAuuP,GAAavF,IAEfvmS,QAAQ1M,IAAI,6BAEZizS,EAAO/7P,KACLtjD,KAAKL,UAAU,CACbx/B,OAAQ,MACRisC,IAAK,CACH5rC,KAAM,WACNgjV,SACAlvU,QACA+vU,QACA1hQ,kBACAC,oBACAyT,YACA4uP,eAAgBh+R,EAAMtjB,UACtBuhT,cAAej+R,EAAM4uC,SACrBsvP,iBAAkBlgU,KAAKC,MAAQ,KAEjCk5T,gBAAiBsG,OAOrB,CACE,yCACA,6CACAltU,SAAS6+E,KAGXn2F,GAASklV,EAAAA,EAAAA,IAAW3+G,IAGpB4+G,GAAAA,GAAS19C,KACP29C,GAAAA,GAAaC,sBACbC,GAAAA,GAAOC,0BAMNT,GAAWA,EAAQ5jV,QAAU,GAM7B4jV,EAAQxtU,SAASgsU,KAIJ,4CAAdntP,EACFsuP,GAAqBz6U,EAAAA,GAAAA,GAAE,4BAA6B,CAClDy4E,kBACAoiQ,sBACAt+G,cAEqB,+CAAdpwI,GACTsuP,GAAqBz6U,EAAAA,GAAAA,GAAE,gCAAiC,CACtDy4E,kBACAoiQ,sBACAt+G,eAEJ,GAEF,CAACvmO,EAAUykV,EAAsBnB,EAAQoB,EAAWtwU,IAIhDoxU,GAAY1mR,EAAAA,EAAAA,cAChB,CAAC/X,EAAOo4R,KACN,GAAKp4R,GAAUA,EAAMp8C,KAErB,IACE,MAAMixD,EAAS97B,KAAKwD,MAAMyjB,EAAMp8C,OAC1B,KAAErK,EAAI,KAAEqK,GAASixD,EAIV,WAATt7D,GAAqBqK,GAAQ0E,MAAMie,QAAQ3iB,IAC7CA,EAAK7I,KAAKwa,GAAMszP,EAAYtzP,EAAG6iU,IAEnC,CAAE,MAAO1hV,GACPm7C,QAAQjzC,MAAM,6CAA8ClI,EAAGspD,EACjE,IAEF,CAAC6oN,IAKGouE,GAAsBl/Q,EAAAA,EAAAA,cACzBqgR,GACQA,EAAOnoS,iBAAiB,WAAY96B,GAAMspU,EAAUtpU,EAAGijU,MAEhE,CAACqG,KAGG,YACJzF,EACA/E,QAASyK,EAAU,WACnB/gS,GACEghS,EAAgB,CAClBtxU,QACA4pU,sBACAC,mBACAC,gBAAiBsG,GACjB3vU,QACAspU,2BAA2B,IAIvBnD,GAAUl8Q,EAAAA,EAAAA,cAAY,KAC1B,GAAIwkR,EAAQ,CAEVmC,IAGA,IACErH,EAAoBv4U,QAAQ0sI,YAAY,CACtCstM,QAAS,aACT37T,OAAQsgU,GACR1E,OAAQzC,GAEZ,CAAE,MAAO5/U,GACPm7C,QAAQjzC,MAAMlI,EAChB,CACF,MAEEm7C,QAAQzpB,MAAM,qDAChB,GACC,CAACs2T,EAAYrH,EAAqBf,EAAaiG,IA2BlD,OAzBAvkR,EAAAA,EAAAA,YAAU,KACR,IAAKlmB,SAAWulS,EAAoBv4U,QAClC,MAAO,OAGT,MAAM85U,EAAmBvB,EAAoBv4U,QAEvC+5U,EAAiBx/S,IAEF,gBAAjBA,aAAAA,EAAAA,EAAKy/S,WACJz/S,aAAAA,EAAAA,EAAKlc,UAAWsgU,IAAoC,OAAhBpkT,aAAAA,EAAAA,EAAKlc,UAC1Ckc,aAAAA,EAAAA,EAAK0/S,UAAWzC,GAEhB34R,GACF,EAMF,OAFAi7R,EAAiB3oS,iBAAiB,UAAW4oS,GAEtC,KACLD,EAAiBxjP,oBAAoB,UAAWyjP,EAAc,CAC/D,GACA,CAACxB,EAAoBv4U,UAEjB,CAAEm1U,UAASt2R,aAAYq7R,cAAa,EChI7C,GAjH2B,EACzB3rU,QACAkvU,SACAzuU,QACA8wU,4BAIA,MAAM1H,GAAmBjyR,EAAAA,EAAAA,UACvB,IAAM,CACJ,CACE24R,UAAW,CACT/G,cAAe,kBACf0F,UAEFl5O,QAAS,CACP12E,WAAY,CACVnE,SAAU,CAAC,QACX5kB,KAAM,CACJ+oB,WAAY,CACVkyT,aAAc,CACZrwT,IAAK,CACHgnF,KAAM,CAAC+mO,SAOnBzF,WAAY,CAAC,KAGjB,CAACyF,IAIG1zE,GAAc9wM,EAAAA,EAAAA,cAClB,EACE/X,MAAO4oN,EACPhlQ,MAAQ27S,YAAWu/B,eAAcvlV,OAAMkkB,OAAMshU,eAjDrB,oBAqDpBn2E,GAKJg2E,EAAsBr/B,EAAWu/B,EAAcvlV,EAAMkkB,EAAMshU,EAAQ,GAErE,CAACH,IAIGH,GAAY1mR,EAAAA,EAAAA,cACf/X,IACC,GAAKA,GAAUA,EAAMp8C,KAErB,IACE,MAAMixD,EAAS97B,KAAKwD,MAAMyjB,EAAMp8C,OAC1B,KAAErK,EAAI,KAAEqK,GAASixD,EAMV,WAATt7D,GAAqBqK,GAAQ0E,MAAMie,QAAQ3iB,IAC7CA,EAAKpL,QAAQqwQ,EAEjB,CAAE,MAAOnyQ,GACPm7C,QAAQjzC,MAAM,6CAA8ClI,EAAGspD,EACjE,IAEF,CAAC6oN,IAKGouE,GAAsBl/Q,EAAAA,EAAAA,cACzBqgR,GAEQA,EAAOnoS,iBAAiB,UAAWwuS,IAE5C,CAACA,KAGG,YACJzF,EACA/E,QAASyK,EAAU,WACnB/gS,GACEghS,EAAgB,CAClBtxU,QACA4pU,sBACAC,mBACAC,gBAvGqB,mBAwGrBrpU,UAeF,MAAO,CAAEmmU,SAXOl8Q,EAAAA,EAAAA,cAAY,KACtBwkR,EAEFmC,IAEA7sS,QAAQzpB,MAAM,qDAChB,GACC,CAACs2T,EAAYnC,IAIE5+R,aAAYq7R,cAAa,4HCpG7C,MAAMh2E,GAAU,IAAIC,EAAAA,EAEP+7E,GAAoB,IACbt9L,IAAcu9L,EAAAA,EAAAA,KAAmB,CAAC,GAEnBnyU,QAC/B,EAAGmuD,YAAWC,cACG,OAAdD,IAAsBsD,EAAAA,EAAAA,IAAStD,GAAWo3C,UAAS9zC,EAAAA,EAAAA,UACvC,OAAZrD,IAAoBqD,EAAAA,EAAAA,IAASrD,GAASmD,SAAQE,EAAAA,EAAAA,UAMxC2gR,GAA0BC,IACrC,MAAM1F,EAAe/3L,IAAc6/G,EAAAA,EAAAA,MAAsB,CAAC,GACpD2hB,EAAexhI,IAAc09L,EAAAA,EAAAA,MAAsB,CAAC,GAG1D,OADmBC,EAAAA,EAAAA,IAAen8D,EAAci8D,EAAa1F,EAC5C,EAIN/3L,GAAgB,CAACr+I,EAAUa,EAAOy1U,GAAY,KACzD,MAAMtjV,GAAQwzF,EAAAA,EAAAA,KACXhgF,GAAW8vU,EAAYt2U,EAASwG,EAAO3F,GAAS,OACjD,CAAC5J,EAAGC,KAAOD,aAAAA,EAAAA,EAAGqnQ,MAAOrnQ,EAAEquN,OAAOpuN,GAAKD,IAAMC,IAE3C,OAAO0qD,EAAAA,EAAAA,UAAQ,KAAO5uD,aAAAA,EAAAA,EAAOsrQ,MAAOtrQ,EAAMsrQ,OAAStrQ,GAAQ,CAACA,GAAO,EAaxDipV,GAAc,CAACjpV,EAAO4vH,KAEjC,MAAOs5N,EAAgBC,IAAqBltP,EAAAA,EAAAA,UAASj8F,GAmBrD,OAjBA2hE,EAAAA,EAAAA,YACE,KAEE,MAAMisE,EAAU7hF,YAAW,KACzBo9R,EAAkBnpV,EAAM,GACvB4vH,GAKH,MAAO,KACL1jE,aAAa0hF,EAAQ,CACtB,GAEH,CAAC5tI,EAAO4vH,IAGHs5N,CAAc,EAIVE,GAAuBC,GAAgB,KAClD,MAAM1zU,EAAc01I,IAAci+L,EAAAA,EAAAA,MAElC,QAAK3zU,GAIcA,EAAY5P,MAAK,EAAGvF,UAC9ByR,MAAMie,QAAQm5T,GACjBA,EAAYnvU,SAAS1Z,GACrB6oV,IAAgB7oV,GAGL,EAIN+oV,GAAkBF,IAE7B,MAAM1zU,EAAc01I,IAAci+L,EAAAA,EAAAA,OAG3B/1L,EAAQi2L,IAAavtP,EAAAA,EAAAA,WAAS,GAQrC,OANAt6B,EAAAA,EAAAA,YAAU,MACH4xF,GAAU59I,GAAeA,EAAY7R,OAAS,GACjD0lV,GAAU,EACZ,GACC,CAAC7zU,EAAa49I,IAEZA,GAAW81L,GAAgB1zU,EAIbA,EAAY5P,MAAK,EAAGvF,UAC9ByR,MAAMie,QAAQm5T,GACjBA,EAAYnvU,SAAS1Z,GACrB6oV,IAAgB7oV,IANb,IASQ,EAGNipV,GAAuB,IAQG,SAArC98E,GAAQ33P,IAAI,qBAGD00U,GAAYrsT,KACvBskC,EAAAA,EAAAA,WAAUtkC,EAAM,GAAG,EAwBRssT,GAA0B,KACrC,MAAOC,EAAkBC,IAAuB5tP,EAAAA,EAAAA,UAAS,WAqCzD,OAnCAt6B,EAAAA,EAAAA,YAAU,KACR,MAAMmoR,EAAAA,sBAA4B,YAChC,GAAI9tS,UAAU+tS,aAAe/tS,UAAU+tS,YAAYx0S,MACjD,IACE,MAAMj1C,QAAe07C,UAAU+tS,YAAYx0S,MAAM,CAC/CxpC,KAAM,eAER89U,EAAoBvpV,EAAOkT,OACN,WAAjBlT,EAAOkT,OACTwoC,UAAU8gD,aACPktP,aAAa,CAAE7yL,OAAO,IACtB7uJ,MAAK,KACJu2U,EAAO/vS,IAAI,6BACX+6S,EAAoB,UAAU,IAG/BtkN,OAAOj8H,IACNu1U,EAAO/vS,IAAI,UAAYxlC,GACvBugV,EAAoB,UAAU,IAGpCvpV,EAAO2pV,SAAW,KAChBJ,EAAoBvpV,EAAOkT,MAAM,CAErC,CAAE,MAAOjL,GACPizC,QAAQjzC,MAAM,wCAAyCA,EACzD,MAEAizC,QAAQ9a,KAAK,oDAEjB,qOA7BMopT,GA+BNA,GAA2B,GAC1B,IAEIF,CAAgB,gQCpMzB,MAEMM,EAA0B,IAAO12U,GACrCA,EAAMkD,MAAM,CAAC,cAAe,WACjByzU,EAAoB,IAAO32U,GACtCA,EAAMkD,MAAM,CAAC,cAAe,UACjB0zU,EAAoB52U,GAC/BA,EAAMkD,MAAM,CAAC,cAAe,WAAY,OACpC2zU,EAAwB,IAAO72U,GACnCA,EAAMkD,MAAM,CAAC,cAAe,oBACxBu0P,EAA2B,IAAOz3P,GACtCA,EAAMkD,MAAM,CAAC,cAAe,uBACxB4zU,EAAuB,IAAO92U,GAClCA,EAAMkD,MAAM,CAAC,cAAe,mBAEjB6zU,EAA4C,KACvDv/E,EAAAA,EAAAA,IAAek/E,KAA4BM,GACzCA,EAASxmV,QAAO,CAACy6D,EAAKC,KACpB,GACEA,EAAKhoD,MAAM,CAAC,MAAO,SACnB+zU,EAAAA,EAAAA,IAAuB/rR,EAAK1pD,IAAI,UAChC,KAEoB0pD,EAApB,MAAMgsR,EAC0B,QADZhsR,EAAAA,EACjBhoD,MAAM,CAAC,MAAO,wBADGgoD,IAAAA,OAAAA,EAAAA,EAEhB34D,MAAM4kV,QACNA,SACuC,QADvCA,EAAAA,EACGj0U,MAAM,CAAC,UAAW,2BADrBi0U,IAAAA,OAAAA,EAAAA,EAEI5kV,MAAM6kV,GAAyC,YAAlCA,EAAGl0U,MAAM,CAAC,UAAW,UAAuB,IAGjE,OAAO+nD,EAAIj5D,KAAKk5D,EAAK1pD,IAAI,OAAO1S,IAAI,cAAeooV,GACrD,CAEA,OAAOjsR,CAAG,IACT3rD,EAAAA,EAAAA,QAAO,OASRo4P,EAAqB,KACzBF,EAAAA,EAAAA,KA7C8Bx3P,GAAUA,EAAMkD,MAAM,CAAC,MAAO,iBA6CxB0gT,GAClCA,EAAa//S,OAAO+/S,GAAc,OAKhC2xB,EAAqB,KACzB/9E,EAAAA,EAAAA,IACE,CArD4Bx3P,GAAUA,EAAMkD,MAAM,CAAC,MAAO,eAuDxDwzU,IACAG,KACAQ,EAAAA,EAAAA,QAEF,CAACzzB,EAAYpkT,EAAQE,EAAiB43U,KACpCh+D,EAAAA,EAAAA,IACEsqC,EACApkT,EACAE,EAAgB8B,IAAI1O,OAAOwkV,OAa7BC,EAA4B,KAChC//E,EAAAA,EAAAA,IACE,CA9E4Bx3P,GAAUA,EAAMkD,MAAM,CAAC,MAAO,eA8ErCwzU,MACrB,CAAC9yB,EAAYpkT,KACX,MAAM65Q,GAAeC,EAAAA,EAAAA,IAAgBsqC,EAAYpkT,GAC3Cg4U,EAAqB,CACzB,KACA,KACA,KACA,OAKF,OAH2Bn+D,EAAa9mR,MAAMyE,GAC5CwgV,EAAmBjlV,MAAMC,GAAMwE,EAAE+0B,WAAWv5B,MAErB,IAmEzBilV,EAAiC,KACrCjgF,EAAAA,EAAAA,IACE,EAzBFA,EAAAA,EAAAA,IACE,CAvI4Bx3P,GAAUA,EAAMkD,MAAM,CAAC,MAAO,gBAuIrCw0U,EAAAA,EAAAA,QACrB,CAAC9zB,EAAY+zB,KACX,IAAKA,EAAY,MAAO,GACxB,MAAMC,GAAmBC,EAAAA,EAAAA,IACvBC,EAAAA,EAAAA,KACAH,EAAWn2U,IAAI,UACf6L,MACF,OAAKuqU,GACiBG,EAAAA,EAAAA,IACpBn0B,EACAg0B,GAH4B,EAKV,IAYQrC,MAC9B,CAACyC,EAAe3+D,KACd,MAAM4+D,EAAcD,EAAc/0U,QAAQjM,GAAMA,EAAE0P,SAAS,QAC3D,OAAOwxU,EAAAA,EAAAA,IAAY7+D,EAAc4+D,EAAY,IAI7CE,EAAoB,KACxB3gF,EAAAA,EAAAA,IACE,CAACk/E,IAA2Bh/E,MAC5B,CAACl4P,EAAS,GAAIowU,KACZ,MAAMwI,EAAiB54U,EAAOisE,MAC3Bz0E,GAAMlE,OAAOkE,EAAEkM,MAAM,CAAC,MAAO,UAAYpQ,OAAO88U,KAEnD,OAAIwI,EAAuBA,EAAel1U,MAAM,CAAC,SAC1C,IAAI,IAIXm1U,EAAsB,KAC1B7gF,EAAAA,EAAAA,IAAe,CAAC2gF,MAAuBG,GACjCA,EAAoBA,EAAY92U,IAAI,MACjC,OAGL+2U,EAAwB,KAC5B/gF,EAAAA,EAAAA,IAAe,CAAC2gF,MAAuBG,GACjCA,EAAoBA,EAAY92U,IAAI,QACjC,OAGLg3U,EAAoBh1U,IACxBg0P,EAAAA,EAAAA,IAAe,CAACk/E,MAA4B,CAACl3U,EAAS,MACpD,MAAMi5U,EAAUj5U,EAAOisE,MACpBz0E,GAAMlE,OAAOkE,EAAEkM,MAAM,CAAC,MAAO,UAAYpQ,OAAO0Q,KAEnD,OAAIi1U,EAAgBA,EAAQv1U,MAAM,CAAC,SAC5B,IAAI,IAGTw1U,EAAsBl1U,IAC1Bg0P,EAAAA,EAAAA,IAAe,CAACghF,EAAiBh1U,KAAUm1U,GACrCA,EAAmBA,EAAWn3U,IAAI,MAC/B,yBCtNX,IAAImlF,EAAU,kBAWdr6F,EAAOC,QAVP,SAAqB6M,EAAG7E,GACtB,GAAI,UAAYoyF,EAAQvtF,KAAOA,EAAG,OAAOA,EACzC,IAAIvM,EAAIuM,EAAExN,OAAOg7F,aACjB,QAAI,IAAW/5F,EAAG,CAChB,IAAIoH,EAAIpH,EAAEH,KAAK0M,EAAG7E,GAAK,WACvB,GAAI,UAAYoyF,EAAQ1yF,GAAI,OAAOA,EACnC,MAAM,IAAIigD,UAAU,+CACtB,CACA,OAAQ,WAAa3/C,EAAIzB,OAAS+Q,QAAQzK,EAC5C,EAC8B9M,EAAOC,QAAQgmB,YAAa,EAAMjmB,EAAOC,QAAiB,QAAID,EAAOC,iCCD3F,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyF/b,MAC7F,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,+CAA+Crc,MAAM,KAC/Dsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,4BACLE,KAAM,mCAEV2P,cAAe,6BACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAEM,WAAbD,EACOC,EACa,WAAbD,EACAC,GAAQ,GAAKA,EAAOA,EAAO,GACd,WAAbD,GAAsC,UAAbA,EACzBC,EAAO,QADX,CAGX,EACAD,SAAU,SAAUzP,EAAO6pC,EAASj6B,GAChC,OAAI5P,EAAQ,GACD,SACAA,EAAQ,GACR,SACAA,EAAQ,GACR,SAEA,OAEf,EACAF,SAAU,CACNC,QAAS,2BACTE,QAAS,sBACTC,SAAU,kBACVC,QAAS,wBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,uBACNpU,EAAG,kBACHqU,GAAI,WACJC,EAAG,kBACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERM,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA/EyCC,CAAQ,EAAQ,8FCJtDrD,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,mCAAoC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,MAAQ,GAAG,SAAW,kBAAkB,eAAiB,CAAC,6DAA6D,WAAa,MAEvS,6ECPA,MAAMu7U,EAAoB,EACpBC,EAAiB,EACjBC,EAAoB,oBCF1BxsV,EAAOC,QAAU,IAA0B,scCGpC,MAAMwsV,EAAS,QAAK1+U,EAAAA,EAAAA,CAAAA,+EAAAA,CAAAA,WACzB,SAAC2+U,EAAAA,wUAAaA,CAAAA,CAACC,UAAQ,EAACC,OAAK,GAAK7+U,GAAAA,+CCFhC8+U,YAAM,GAAc3wS,eAAYn8C,EACzB8sV,IAAQA,EAAIC,YAAcD,EAAIE,eAAiBF,EAAIG,uGCA1DnwU,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,+xBAAgyB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,MAAQ,GAAG,SAAW,sPAAsP,eAAiB,CAAC,+hCAA+hC,WAAa,MAE3uE,0DCkBA,QAFcoB,MAAMie,0BCvBpBpwB,EAAOC,QAAU,IAA0B,sFCE3C,QADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8TAAkU,KAAQ,OAAQ,MAAS,0JCDjfshG,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EAOO,MAAMm6C,EAAW,CACtBlJ,YAAY,EACZ2jR,cAAc,EACd/hQ,cAAc,EACdqiQ,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpB/sC,oBAAoB,EACpBlgK,gBAAgB,EAChB/uE,kBAAkB,EAClBD,iBAAiB,EACjB+mS,YAAY,EACZC,cAAc,GAEH39S,EAAS,CACpBzW,MAAM,EACNswS,QAAQ,EACRE,QAAQ,EACRD,QAAQ,EACRF,QAAQ,EACRD,SAAS,EACTO,QAAQ,EACRF,QAAQ,EACRS,SAAS,EACTmjB,UAAU,EACVC,UAAU,EACV3wD,YAAY,EACZD,YAAY,GAER6wD,EAAW,CACfnjB,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbv2C,aAAa,EACbw2C,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,WAAW,EACXC,cAAc,GAEHqiB,EAAmB,CAACC,EAAaC,EAAel4R,KAC3D,MAAMgzQ,EAAkBhzQ,EAAMm4R,mBAAmBF,IAC3C,SACFx8T,GACEy8T,EACJ/2R,EAAa8qC,EAAOisP,EAAe,CAAC,aAEtC,IAAIE,EAAwBluV,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGyvT,GAAkB,CAC5Ev3S,aAoBF,OAjBA28T,GAAwB,OAAYA,GAChCj3R,GACFj3D,OAAOg/B,QAAQi4B,GAAYp0D,SAAQ2E,IACjC,IAAKzE,EAAKrC,GAAS8G,EACnB,MACIsuD,MAAOq4R,GACLztV,EACJ0tV,EAAkBrsP,EAAOrhG,EAAO,CAAC,UACnC,IAAI2tV,EAAuBD,EACvBD,IACFE,EAAuBP,EAAiB9tV,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG60U,GAAwBE,GAAkB,CAChH78T,SAAU68T,GACTD,IAELD,EAAsBnrV,GAAOsrV,CAAoB,IAG9CH,CAAqB,EAGf,SAASr4R,IACtB,MACE19C,MAAOm2U,EAAe,OACtBzqQ,EAAM,MACN/tB,EAAK,SACLvkC,EAAQ,OACR0kC,GACE,aAAiB,MACfsvO,EAAO,GAAG,OAAW1hN,GAAU,KAC/B0qQ,EAAcz4R,GAAS,MACtB39C,EAAO69C,EAAQD,IAAa,QAAcw4R,EAAa,CAAC,IAAkBD,GAAkB,CACjG/oD,OACAh0Q,WACAu8T,mBAGAjlB,YAAW,IACX5yQ,OAAQA,GAAU,CAChB12B,OAAQ02B,EAAO12B,OACfx8B,IAAKkzD,EAAOlzD,IACZ0kD,WACA1X,SACA89S,cAGJ,MAAO,CAACU,EAAax4R,EAAW8tB,EAAS7tB,EAAS,GAAI79C,EAAO89C,EAC/D,oBCxHA,IAAIu4R,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OACvBC,EAA0B,EAAQ,QAmBtCluV,EAAOC,QAVP,SAAqBgnB,GACnB,IAAI86C,EAAYksR,EAAahnU,GAC7B,OAAwB,GAApB86C,EAAU/9D,QAAe+9D,EAAU,GAAG,GACjCmsR,EAAwBnsR,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASt6C,GACd,OAAOA,IAAWR,GAAU+mU,EAAYvmU,EAAQR,EAAQ86C,EAC1D,CACF,2BCVQ,SAAWjlD,GAAU,aAIzB,IAAIi7F,EAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPC,EAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJl7F,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyF/b,MAC7F,KAEJmc,YACI,yEAAyEnc,MACrE,KAERoc,kBAAkB,EAClBC,SAAU,wDAAwDrc,MAC9D,KAEJsc,cAAe,mCAAmCtc,MAAM,KACxDuc,YAAa,qBAAqBvc,MAAM,KACxCyc,eAAgB,CACZC,GAAI,gBACJC,IAAK,mBACLC,EAAG,aACHC,GAAI,cACJE,IAAK,6BACLE,KAAM,oCAEVE,SAAU,CACNC,QAAS,UACTE,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNpU,EAAG,WACHqU,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERw4F,SAAU,SAAU3xG,GAChB,OAAOA,EAAOw1B,QAAQ,iBAAiB,SAAUtuB,GAC7C,OAAOwqG,EAAUxqG,EACrB,GACJ,EACA0qG,WAAY,SAAU5xG,GAClB,OAAOA,EAAOw1B,QAAQ,OAAO,SAAUtuB,GACnC,OAAOuqG,EAAUvqG,EACrB,GACJ,EAGAqgB,cAAe,qBACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAEM,QAAbD,EACOC,EAAO,EAAIA,EAAOA,EAAO,GACZ,SAAbD,EACAC,EACa,SAAbD,EACAC,GAAQ,GAAKA,EAAOA,EAAO,GACd,SAAbD,EACAC,EAAO,QADX,CAGX,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,EACA,MACAA,EAAO,GACP,OACAA,EAAO,GACP,OACAA,EAAO,GACP,OAEA,KAEf,EACAjO,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA9HyCC,CAAQ,EAAQ,kCCGlD,SAAWpD,GAAU,aAIzB,IAAIs8H,EAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGCt8H,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,+EAA+E/b,MACnF,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SACI,qEAAqErc,MACjE,KAERsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,kBACTE,QAAS,kBACTC,SAAU,+BACVC,QAAS,aACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNpU,EAAG,kBACHqU,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,SACHC,GAAI,SAERoO,cAAe,0BACfC,KAAM,SAAU9nB,GACZ,MAAO,mBAAmByrB,KAAKzrB,EACnC,EACA+nB,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,OAAIF,EAAO,EACA,OACAA,EAAO,GACP,QACAA,EAAO,GACP,SAEA,OAEf,EACAtO,uBAAwB,wCACxBC,QAAS,SAAUC,GACf,GAAe,IAAXA,EAEA,OAAOA,EAAS,QAEpB,IAAIzb,EAAIyb,EAAS,GAGjB,OAAOA,GAAUw5H,EAASj1I,IAAMi1I,EAFvBx5H,EAAS,IAAOzb,IAEsBi1I,EADvCx5H,GAAU,IAAM,IAAM,MAElC,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CA1GyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,qECGzCD,EAAOC,QAAU,EAAjB,0BCHFD,EAAOC,QAAU,IAA0B,2HCE5B,SAASwsV,EAAM1+U,GAC5B,IAAI0N,EAAW1N,EAAM0N,SACnBy6C,EAAYnoD,EAAMmoD,UAClBnlD,EAAKhD,EAAMgD,GACX+6Q,EAAoB/9Q,EAAM+9Q,kBAC1BtwQ,EAAYzN,EAAMyN,UAClBq/B,EAAQ9sC,EAAM8sC,MAChB,OAAoB,gBAAoB,MAAO,CAC7Cr/B,UAAW,IAAW,GAAGpQ,OAAO8qD,EAAW,YAAa16C,GACxDq/B,MAAOA,GACO,gBAAoB,MAAO,CACzCr/B,UAAW,GAAGpQ,OAAO8qD,EAAW,UAChCnlD,GAAIA,EACJ6+D,KAAM,UACN/0B,MAAOixO,GACc,mBAAbrwQ,EAA0BA,IAAaA,GACnD,oBClBAzb,EAAOC,QAAU,IAA0B,+DCE3CD,EAAOC,QAAU,CAACqG,EAAQw4B,KACzB,GAAwB,iBAAXx4B,GAA4C,iBAAdw4B,EAC1C,MAAM,IAAI8oB,UAAU,iDAGrB,GAAkB,KAAd9oB,EACH,MAAO,CAACx4B,GAGT,MAAM6nV,EAAiB7nV,EAAO07B,QAAQlD,GAEtC,OAAwB,IAApBqvT,EACI,CAAC7nV,GAGF,CACNA,EAAOiB,MAAM,EAAG4mV,GAChB7nV,EAAOiB,MAAM4mV,EAAiBrvT,EAAU96B,QACxC,oBCpBFhE,EAAOC,QAAU,IAA0B,2HCGvC4c,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,8ZAA+Z,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+FAA+F,MAAQ,GAAG,SAAW,oKAAoK,eAAiB,CAAC,8gBAA8gB,WAAa,MAEzyC,4BCPA/Q,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,sGCEpC,MAAMkmV,EAAgCjvU,IAC3C,MACEo8S,YAAa86B,EACbhtN,UAAWitN,IACTn7B,EAAAA,EAAAA,GAAeh8S,EAAO,CAAC,yBAE3B,MAAO,CACLgvU,+BAAgChiU,QAAQkqU,GACxChtN,UAAWitN,EACZ,0ECVH7uV,OAAO8lB,eAAerlB,EAAS,aAAc,CACzCC,OAAO,IAEX,SAAiB8mB,EAAQ8zB,GACrB,IAAI,IAAI7uC,KAAQ6uC,EAAIt7C,OAAO8lB,eAAe0B,EAAQ/a,EAAM,CACpDsZ,YAAY,EACZrQ,IAAK4lC,EAAI7uC,IAEjB,CACAqiV,CAAQruV,EAAS,CACb43B,SAAU,WACN,OAAOA,CACX,EACA++G,kBAAmB,WACf,OAAOA,CACX,EACA23M,WAAY,WACR,OAAOA,CACX,EACA93M,iBAAkB,WACd,OAAOA,CACX,EACAC,eAAgB,WACZ,OAAOA,CACX,EACAG,uBAAwB,WACpB,OAAOA,CACX,EACAC,aAAc,WACV,OAAOA,CACX,EACAC,gBAAiB,WACb,OAAOA,CACX,EACA9yG,QAAS,WACL,OAAOA,CACX,IAEJ,IAAIo6P,EAAU,EAAQ,QAClBmwD,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAClBC,EAAyB9oU,EAAyB,EAAQ,SAC1DH,EAAuBC,EAA0B,EAAQ,SACzD44Q,EAAyB14Q,EAAyB,EAAQ,QAC9D,SAASE,EAAiB9iB,EAAKT,EAAKrC,GAWhC,OAVIqC,KAAOS,EACPxD,OAAO8lB,eAAetiB,EAAKT,EAAK,CAC5BrC,MAAOA,EACPqlB,YAAY,EACZQ,cAAc,EACdC,UAAU,IAGdhjB,EAAIT,GAAOrC,EAER8C,CACX,CACA,SAAS4iB,EAAyB5iB,GAC9B,OAAOA,GAAOA,EAAIijB,WAAajjB,EAAM,CACjCkjB,QAASljB,EAEjB,CACA,SAASmjB,EAAyBC,GAC9B,GAAuB,mBAAZC,QAAwB,OAAO,KAC1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAC3B,OAAQF,EAA2B,SAASC,GACxC,OAAOA,EAAcG,EAAmBD,CAC5C,GAAGF,EACP,CACA,SAASV,EAA0B1iB,EAAKojB,GACpC,IAAKA,GAAepjB,GAAOA,EAAIijB,WAC3B,OAAOjjB,EAEX,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAClD,MAAO,CACHkjB,QAASljB,GAGjB,IAAIwjB,EAAQL,EAAyBC,GACrC,GAAII,GAASA,EAAMlN,IAAItW,GACnB,OAAOwjB,EAAMtR,IAAIlS,GAErB,IAAIyjB,EAAS,CACTC,UAAW,MAEXC,EAAwBnnB,OAAO8lB,gBAAkB9lB,OAAOonB,yBAC5D,IAAI,IAAIrkB,KAAOS,EACX,GAAY,YAART,GAAqB/C,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKT,GAAM,CACrE,IAAIskB,EAAOF,EAAwBnnB,OAAOonB,yBAAyB5jB,EAAKT,GAAO,KAC3EskB,IAASA,EAAK3R,KAAO2R,EAAKrkB,KAC1BhD,OAAO8lB,eAAemB,EAAQlkB,EAAKskB,GAEnCJ,EAAOlkB,GAAOS,EAAIT,EAE1B,CAMJ,OAJAkkB,EAAOP,QAAUljB,EACbwjB,GACAA,EAAMhkB,IAAIQ,EAAKyjB,GAEZA,CACX,CACA,SAASY,EAAeL,GACpB,IAAI,IAAIrf,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAAI,CACrC,IAAIsf,EAAyB,MAAhBrlB,UAAU+F,GAAa/F,UAAU+F,GAAK,CAAC,EAChDuf,EAAU1nB,OAAOwK,KAAKid,GACkB,mBAAjCznB,OAAO2nB,wBACdD,EAAUA,EAAQ9b,OAAO5L,OAAO2nB,sBAAsBF,GAAQtQ,QAAO,SAASyQ,GAC1E,OAAO5nB,OAAOonB,yBAAyBK,EAAQG,GAAK7B,UACxD,MAEJ2B,EAAQ7kB,SAAQ,SAASE,GACrBujB,EAAiBkB,EAAQzkB,EAAK0kB,EAAO1kB,GACzC,GACJ,CACA,OAAOykB,CACX,CAMA,SAASid,EAAQvR,EAAOlR,IACpB,EAAIktU,EAASxoU,SAASwM,EAAO,uBAAuBtnB,OAAOoW,GAC/D,CACA,SAASi1H,EAAiBzvH,GACtB,MAAyB,iBAAXA,GAA8C,iBAAhBA,EAAO/a,MAA6C,iBAAjB+a,EAAOsuC,QAA8C,iBAAhBtuC,EAAOM,MAA4C,mBAAhBN,EAAOM,KAClK,CACA,SAASovH,IACL,IAAIC,EAAQ/0I,UAAUoC,OAAS,QAAsB,IAAjBpC,UAAU,GAAgBA,UAAU,GAAK,CAAC,EAC9E,OAAOpC,OAAOwK,KAAK2sI,GAAOzyI,QAAO,SAASy6D,EAAKp8D,GAC3C,IAdWyD,EAcPo3C,EAAMu5F,EAAMp0I,GAUhB,MARS,UADFA,GAECo8D,EAAInjD,UAAY4hC,SACTuhB,EAAIl4B,eAGJk4B,EAAIp8D,GACXo8D,GAtBG34D,EAsBWzD,EArBnByD,EAAM81B,QAAQ,SAAS,SAAStuB,EAAOihB,GAC1C,OAAOA,EAAE8oB,aACb,MAmBkC6F,GAEvBuhB,CACX,GAAG,CAAC,EACR,CACA,SAAS9mC,EAAS/T,EAAMvhB,EAAKouF,GACzB,OAAKA,EAOElrE,EAAOS,QAAQa,cAAcjD,EAAKzjB,IAAKgnB,EAAe,CACzD9kB,IAAKA,GACNm0I,EAAe5yH,EAAK6yH,OAAQhmD,IAAa7sE,EAAKrI,UAAY,IAAI7W,KAAI,SAASuH,EAAOmL,GACjF,OAAOugB,EAAS1rB,EAAO,GAAGf,OAAO7I,EAAK,KAAK6I,OAAO0Y,EAAKzjB,IAAK,KAAK+K,OAAOkM,GAC5E,KAVWmO,EAAOS,QAAQa,cAAcjD,EAAKzjB,IAAKgnB,EAAe,CACzD9kB,IAAKA,GACNm0I,EAAe5yH,EAAK6yH,SAAU7yH,EAAKrI,UAAY,IAAI7W,KAAI,SAASuH,EAAOmL,GACtE,OAAOugB,EAAS1rB,EAAO,GAAGf,OAAO7I,EAAK,KAAK6I,OAAO0Y,EAAKzjB,IAAK,KAAK+K,OAAOkM,GAC5E,IAOR,CACA,SAASs/H,EAAkBt6H,GAEvB,OAAO,EAAI+hR,EAAQxmQ,UAAUvb,GAAc,EAC/C,CACA,SAASu6H,EAAuB16H,GAC5B,OAAKA,EAGEhK,MAAMie,QAAQjU,GAAgBA,EAAe,CAChDA,GAHO,EAKf,CACA,IAAI26H,EAAe,CACft1F,MAAO,MACPJ,OAAQ,MACR5hB,KAAM,eACN,cAAe,OACfwrC,UAAW,SAEXujR,EAAa,+8BACbx3M,EAAkB,SAASC,GAC3B,IAAIC,GAAc,EAAIxxH,EAAO2vC,YAAYkpO,EAASp4Q,SAAUyvC,EAAMshF,EAAYthF,IAAKO,EAAY+gF,EAAY/gF,UACvGghF,EAAiBq3M,EACjBr4R,IACAghF,EAAiBA,EAAep7G,QAAQ,WAAYo6B,KAExD,EAAIzwC,EAAOo8C,YAAW,WAClB,IAAIz8C,EAAM4xH,EAAOruI,QACbkqI,GAAa,EAAI47M,EAAQtiF,eAAe/mP,IAC5C,EAAIopU,EAAYG,WAAWz3M,EAAgB,oBAAqB,CAC5Dl6E,SAAS,EACTrH,IAAKA,EACLsH,SAAU41E,GAElB,GAAG,GACP,oBCnMA,IAAI/wE,EAAc,EAAQ,QAkC1B9hE,EAAOC,QAJP,SAAiBC,EAAOipE,GACtB,OAAOrH,EAAY5hE,EAAOipE,EAC5B,iCCvBA,IAAIylR,EAAuB,EAAQ,MAEnC,SAASC,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3C7uV,EAAOC,QAAU,WACf,SAAS+uV,EAAKjhV,EAAOkhV,EAAU10M,EAAejsI,EAAU4gV,EAAcC,GACpE,GAAIA,IAAWP,EAAf,CAIA,IAAIplV,EAAM,IAAI7H,MACZ,mLAKF,MADA6H,EAAIyC,KAAO,sBACLzC,CAPN,CAQF,CAEA,SAAS4lV,IACP,OAAOJ,CACT,CAHAA,EAAKxR,WAAawR,EAMlB,IAAIK,EAAiB,CACnBvpV,MAAOkpV,EACPxpT,OAAQwpT,EACR1xT,KAAM0xT,EACNzxT,KAAMyxT,EACNpvU,OAAQovU,EACRvnU,OAAQunU,EACR1oV,OAAQ0oV,EACRvoV,OAAQuoV,EAERl3T,IAAKk3T,EACLM,QAASF,EACTriR,QAASiiR,EACTO,YAAaP,EACbQ,WAAYJ,EACZtrU,KAAMkrU,EACNS,SAAUL,EACVM,MAAON,EACP1R,UAAW0R,EACX5kO,MAAO4kO,EACP76E,MAAO66E,EAEPO,eAAgBb,EAChBC,kBAAmBF,GAKrB,OAFAQ,EAAeO,UAAYP,EAEpBA,CACT,2BCtDQ,SAAWvyU,GAAU,aAIzB,SAASwxQ,EAAoB1uQ,EAAQs7F,EAAe34G,EAAK44G,GACrD,IAAIj+F,EAAS,CACTxS,EAAG,CAAC,eAAgB,cAAe,iBACnCqU,GAAI,CAACa,EAAS,UAAWA,EAAS,YAClCZ,EAAG,CAAC,aAAc,aAClBC,GAAI,CAACW,EAAS,UAAWA,EAAS,YAClCV,EAAG,CAAC,YAAa,YAAa,YAC9BC,GAAI,CAACS,EAAS,SAAUA,EAAS,UACjCR,EAAG,CAAC,YAAa,YACjBE,EAAG,CAAC,UAAW,WAAY,WAC3BC,GAAI,CAACK,EAAS,OAAQA,EAAS,SAC/BJ,EAAG,CAAC,YAAa,QAAS,aAC1BC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAErC,OAAIs7F,EACOh+F,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,GAElD44G,EAAWj+F,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,EACnD,CAESua,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,6FAA6F/b,MACjG,KAEJmc,YACI,6DAA6Dnc,MAAM,KACvEqc,SACI,iEAAiErc,MAC7D,KAERsc,cAAe,gBAAgBtc,MAAM,KACrCuc,YAAa,gBAAgBvc,MAAM,KACnCyc,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,aACTE,QAAS,cACTC,SAAU,qBACVC,QAAS,aACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNpU,EAAG4jR,EACHvvQ,GAAIuvQ,EACJtvQ,EAAGsvQ,EACHrvQ,GAAIqvQ,EACJpvQ,EAAGovQ,EACHnvQ,GAAImvQ,EACJlvQ,EAAGkvQ,EACHjvQ,GAAI,WACJC,EAAGgvQ,EACH/uQ,GAAI+uQ,EACJ9uQ,EAAG8uQ,EACH7uQ,GAAI6uQ,GAER5uQ,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAjFyCC,CAAQ,EAAQ,2BCP1DlgB,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,+FAA+F/b,MACnG,KAEJmc,YACI,8DAA8Dnc,MAC1D,KAERoc,kBAAkB,EAClBC,SACI,sEAAsErc,MAClE,KAERsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJE,IAAK,gCACLE,KAAM,sCACNmQ,EAAG,WACHtQ,GAAI,oBACJE,IAAK,0BACLE,KAAM,gCAEVC,SAAU,CACNC,QAAS,kBACTE,QAAS,mBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNpU,EAAG,iBACHqU,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WAERC,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArEyCC,CAAQ,EAAQ,wCCJ1D,IAAI2vU,EAAU,EAAQ,OAMlBC,EAAgB,CAClBC,mBAAmB,EACnBhgN,aAAa,EACbigN,cAAc,EACd13C,cAAc,EACdn3O,aAAa,EACb8uR,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRxwP,WAAW,EACXx8F,MAAM,GAEJitV,EAAgB,CAClBpkV,MAAM,EACNjI,QAAQ,EACRvE,WAAW,EACX4rF,QAAQ,EACRilQ,QAAQ,EACR1uV,WAAW,EACX0+B,OAAO,GASLiwT,EAAe,CACjB,UAAY,EACZj2T,SAAS,EACTg+Q,cAAc,EACdn3O,aAAa,EACby+B,WAAW,EACXx8F,MAAM,GAEJotV,EAAe,CAAC,EAIpB,SAASC,EAAWr/Q,GAElB,OAAIy+Q,EAAQhrU,OAAOusD,GACVm/Q,EAIFC,EAAap/Q,EAAoB,WAAM0+Q,CAChD,CAXAU,EAAaX,EAAQ7qU,YAhBK,CACxB,UAAY,EACZF,QAAQ,EACRwzR,cAAc,EACdn3O,aAAa,EACby+B,WAAW,GAYb4wP,EAAaX,EAAQa,MAAQH,EAY7B,IAAIjrU,EAAiB9lB,OAAO8lB,eACxBusB,EAAsBryC,OAAOqyC,oBAC7B1qB,EAAwB3nB,OAAO2nB,sBAC/BP,EAA2BpnB,OAAOonB,yBAClC1jB,EAAiB1D,OAAO0D,eACxBytV,EAAkBnxV,OAAOC,UAsC7BO,EAAOC,QArCP,SAAS2wV,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB9tV,EAAe4tV,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAI/mV,EAAO6nC,EAAoBi/S,GAE3B3pU,IACFnd,EAAOA,EAAKoB,OAAO+b,EAAsB2pU,KAM3C,IAHA,IAAIG,EAAgBR,EAAWI,GAC3BK,EAAgBT,EAAWK,GAEtBnpV,EAAI,EAAGA,EAAIqC,EAAKhG,SAAU2D,EAAG,CACpC,IAAIpF,EAAMyH,EAAKrC,GAEf,KAAK0oV,EAAc9tV,IAAUwuV,GAAaA,EAAUxuV,IAAW2uV,GAAiBA,EAAc3uV,IAAW0uV,GAAiBA,EAAc1uV,IAAO,CAC7I,IAAI+zT,EAAa1vS,EAAyBkqU,EAAiBvuV,GAE3D,IAEE+iB,EAAeurU,EAAiBtuV,EAAK+zT,EACvC,CAAE,MAAO/1T,GAAI,CACf,CACF,CACF,CAEA,OAAOswV,CACT,oBCpGA,IAAIM,EAAW,EAAQ,QACnBC,EAAmB,EAAQ,QAC3BC,EAAW,EAAQ,QACnBC,EAAsB,EAAQ,QAmB9BC,EAAeF,GAAS,SAASzxT,GACnC,IAAIW,EAAS4wT,EAASvxT,EAAQ0xT,GAC9B,OAAQ/wT,EAAOv8B,QAAUu8B,EAAO,KAAOX,EAAO,GAC1CwxT,EAAiB7wT,GACjB,EACN,IAEAvgC,EAAOC,QAAUsxV,oBC7BjBvxV,EAAOC,QAAU,IAA0B,6GCMvCuxV,kCAAO,WACX,OAAWA,IACX,OAAYA,4BCCJ,SAAW10U,GAAU,aAIzB,SAASwxQ,EAAoBniO,EAAK+uD,EAAe34G,EAAK44G,GAClD,IAAIj+F,EAAS,CACTxS,EAAG,CAAC,cAAe,kBACnBqU,GAAI,CAACotC,EAAM,UAAWA,EAAM,cAC5BntC,EAAG,CAAC,YAAa,cACjBC,GAAI,CAACktC,EAAM,UAAWA,EAAM,cAC5BjtC,EAAG,CAAC,SAAU,WACdC,GAAI,CAACgtC,EAAM,QAASA,EAAM,WAC1B/sC,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC8sC,EAAM,OAAQA,EAAM,UACzBtnB,EAAG,CAAC,WAAY,aAChBqmF,GAAI,CAAC/+D,EAAM,SAAUA,EAAM,aAC3B7sC,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC4sC,EAAM,OAAQA,EAAM,UACzB3sC,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC0sC,EAAM,OAAQA,EAAM,WAE7B,OAAO+uD,EAAgBh+F,EAAO3a,GAAK,GAAK2a,EAAO3a,GAAK,EACxD,CAqBYua,EAAOC,aAAa,SAAU,CAItCC,OAAQ,oFAAoF/b,MACxF,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEoc,kBAAkB,EAClBC,SAAU,4CAA4Crc,MAAM,KAC5Dsc,cAAe,2BAA2Btc,MAAM,KAChDuc,YAAa,uBAAuBvc,MAAM,KAC1C8sB,SAAU,SAAUzP,EAAO6pC,EAASj6B,GAChC,OAAI5P,EAAQ,GACD4P,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,EACAL,cAAe,cACfnQ,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJE,IAAK,4BACLE,KAAM,kCACNH,GAAI,qBACJE,IAAK,2BACLE,KAAM,oCAEVC,SAAU,CACNC,QAAS,wBACTE,QAAS,yBACTC,SAAU,yBACVC,QAAS,wBACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNpU,EAAG4jR,EACHvvQ,GAAIuvQ,EACJtvQ,EAAGsvQ,EACHrvQ,GAAIqvQ,EACJpvQ,EAAGovQ,EACHnvQ,GAAImvQ,EACJlvQ,EAAGkvQ,EACHjvQ,GAAIivQ,EACJzpP,EAAGypP,EACHpjK,GAAIojK,EACJhvQ,EAAGgvQ,EACH/uQ,GAAI+uQ,EACJ9uQ,EAAG8uQ,EACH7uQ,GAAI6uQ,GAER5uQ,uBAAwB,qBACxBC,QAAS,SAAUwsC,EAAKtsC,GACpB,IAAI3Z,EAAI2Z,EAAOqmB,cACf,OAAIhgC,EAAEkU,SAAS,MAAQlU,EAAEkU,SAAS,KAAa+xC,EAAM,IAE9CA,EA1Ef,SAAwBA,GAEpB,IAAI99B,GADJ89B,EAAM,GAAKA,GACCnrD,UAAUmrD,EAAInoD,OAAS,GAC/B+Z,EAAKouC,EAAInoD,OAAS,EAAImoD,EAAInrD,UAAUmrD,EAAInoD,OAAS,GAAK,GAC1D,OACY,IAAN+Z,GAAkB,IAANA,GACR,KAALsQ,GAAiB,KAALA,GAAkB,MAANtQ,GAAmB,MAALsQ,GAAkB,MAALA,EAGjD,IADI,IAEf,CAgEqBojU,CAAetlS,EAChC,EACApsC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAtHyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,mECS9B,SAASuuB,EAAErqB,EAAEC,GAAG,IAAIkqB,EAAEnqB,EAAEH,OAAOG,EAAEuB,KAAKtB,GAAGD,EAAE,KAAK,EAAEmqB,GAAG,CAAC,IAAIlP,EAAEkP,EAAE,IAAI,EAAE/tB,EAAE4D,EAAEib,GAAG,KAAG,EAAEqP,EAAEluB,EAAE6D,IAA0B,MAAMD,EAA7BA,EAAEib,GAAGhb,EAAED,EAAEmqB,GAAG/tB,EAAE+tB,EAAElP,CAAc,CAAC,CAAC,SAASF,EAAE/a,GAAG,OAAO,IAAIA,EAAEH,OAAO,KAAKG,EAAE,EAAE,CAAC,SAASwC,EAAExC,GAAG,GAAG,IAAIA,EAAEH,OAAO,OAAO,KAAK,IAAII,EAAED,EAAE,GAAGmqB,EAAEnqB,EAAEqS,MAAM,GAAG8X,IAAIlqB,EAAE,CAACD,EAAE,GAAGmqB,EAAEnqB,EAAE,IAAI,IAAIib,EAAE,EAAE7e,EAAE4D,EAAEH,OAAO6gC,EAAEtkC,IAAI,EAAE6e,EAAEylB,GAAG,CAAC,IAAI7lB,EAAE,GAAGI,EAAE,GAAG,EAAEzU,EAAExG,EAAE6a,GAAGoP,EAAEpP,EAAE,EAAE0e,EAAEv5B,EAAEiqB,GAAG,GAAG,EAAEK,EAAE9jB,EAAE2jB,GAAGF,EAAE7tB,GAAG,EAAEkuB,EAAEiP,EAAE/yB,IAAIxG,EAAEib,GAAGse,EAAEv5B,EAAEiqB,GAAGE,EAAElP,EAAEgP,IAAIjqB,EAAEib,GAAGzU,EAAExG,EAAE6a,GAAGsP,EAAElP,EAAEJ,OAAQ,MAAGoP,EAAE7tB,GAAG,EAAEkuB,EAAEiP,EAAEpP,IAA0B,MAAMnqB,EAA7BA,EAAEib,GAAGse,EAAEv5B,EAAEiqB,GAAGE,EAAElP,EAAEgP,CAAajqB,CAAC,CAAC,CAAC,OAAOC,CAAC,CAC3c,SAASqqB,EAAEtqB,EAAEC,GAAG,IAAIkqB,EAAEnqB,EAAEutV,UAAUttV,EAAEstV,UAAU,OAAO,IAAIpjU,EAAEA,EAAEnqB,EAAE4M,GAAG3M,EAAE2M,EAAE,CAAC,GAAG,iBAAkB+K,aAAa,mBAAoBA,YAAYgM,IAAI,CAAC,IAAIuG,EAAEvS,YAAY7b,EAAQ0xV,aAAa,WAAW,OAAOtjU,EAAEvG,KAAK,CAAC,KAAK,CAAC,IAAI5hB,EAAE2hB,KAAKwwR,EAAEnyS,EAAE4hB,MAAM7nB,EAAQ0xV,aAAa,WAAW,OAAOzrV,EAAE4hB,MAAMuwR,CAAC,CAAC,CAAC,IAAIpwS,EAAE,GAAG6E,EAAE,GAAGyhB,EAAE,EAAEG,EAAE,KAAKlP,EAAE,EAAEyvE,GAAE,EAAGtlF,GAAE,EAAGilS,GAAE,EAAGx5P,EAAE,mBAAoB6W,WAAWA,WAAW,KAAK9W,EAAE,mBAAoBiX,aAAaA,aAAa,KAAK/gD,EAAE,oBAAqBumV,aAAaA,aAAa,KACnT,SAAShkV,EAAEzJ,GAAG,IAAI,IAAIC,EAAE8a,EAAEpS,GAAG,OAAO1I,GAAG,CAAC,GAAG,OAAOA,EAAE4V,SAASrT,EAAEmG,OAAQ,MAAG1I,EAAE2e,WAAW5e,GAAgD,MAA9CwC,EAAEmG,GAAG1I,EAAEstV,UAAUttV,EAAEotH,eAAehjG,EAAEvmB,EAAE7D,EAAa,CAACA,EAAE8a,EAAEpS,EAAE,CAAC,CAAC,SAAS+hS,EAAE1qS,GAAa,GAAVyqS,GAAE,EAAGhhS,EAAEzJ,IAAOwF,EAAE,GAAG,OAAOuV,EAAEjX,GAAG0B,GAAE,EAAGmlS,EAAEviS,OAAO,CAAC,IAAInI,EAAE8a,EAAEpS,GAAG,OAAO1I,GAAG2qS,EAAEF,EAAEzqS,EAAE2e,UAAU5e,EAAE,CAAC,CACra,SAASoI,EAAEpI,EAAEC,GAAGuF,GAAE,EAAGilS,IAAIA,GAAE,EAAGz5P,EAAEt3B,GAAGA,GAAG,GAAGoxE,GAAE,EAAG,IAAI3gE,EAAE9O,EAAE,IAAS,IAAL5R,EAAExJ,GAAOsqB,EAAExP,EAAEjX,GAAG,OAAOymB,MAAMA,EAAE8iG,eAAeptH,IAAID,IAAImb,MAAM,CAAC,IAAIF,EAAEsP,EAAE1U,SAAS,GAAG,mBAAoBoF,EAAE,CAACsP,EAAE1U,SAAS,KAAKwF,EAAEkP,EAAEmjU,cAAc,IAAItxV,EAAE6e,EAAEsP,EAAE8iG,gBAAgBptH,GAAGA,EAAEnE,EAAQ0xV,eAAe,mBAAoBpxV,EAAEmuB,EAAE1U,SAASzZ,EAAEmuB,IAAIxP,EAAEjX,IAAItB,EAAEsB,GAAG2F,EAAExJ,EAAE,MAAMuC,EAAEsB,GAAGymB,EAAExP,EAAEjX,EAAE,CAAC,GAAG,OAAOymB,EAAE,IAAImW,GAAE,MAAO,CAAC,IAAI7lB,EAAEE,EAAEpS,GAAG,OAAOkS,GAAG+vR,EAAEF,EAAE7vR,EAAE+D,UAAU3e,GAAGygC,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQnW,EAAE,KAAKlP,EAAE8O,EAAE2gE,GAAE,CAAE,CAAC,CAD1a,oBAAqB/yC,gBAAW,IAASA,UAAU41S,iBAAY,IAAS51S,UAAU41S,WAAWC,gBAAgB71S,UAAU41S,WAAWC,eAAel/U,KAAKqpC,UAAU41S,YAC2Q,IACzP9kV,EAD6PgiS,GAAE,EAAG95P,EAAE,KAAKr3B,GAAG,EAAEpU,EAAE,EAAEwlS,GAAG,EACvc,SAAS3vR,IAAI,QAAOrf,EAAQ0xV,eAAe1iD,EAAExlS,EAAO,CAAC,SAASS,IAAI,GAAG,OAAOgrC,EAAE,CAAC,IAAI/wC,EAAElE,EAAQ0xV,eAAe1iD,EAAE9qS,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAE8wC,GAAE,EAAG/wC,EAAE,CAAC,QAAQC,EAAE4I,KAAKgiS,GAAE,EAAG95P,EAAE,KAAK,CAAC,MAAM85P,GAAE,CAAE,CAAO,GAAG,mBAAoB3jS,EAAE2B,EAAE,WAAW3B,EAAEnB,EAAE,OAAO,GAAG,oBAAqBmuR,eAAe,CAAC,IAAIpvR,EAAE,IAAIovR,eAAe6W,EAAEjmS,EAAEsvR,MAAMtvR,EAAEqvR,MAAMplJ,UAAUhpI,EAAE8C,EAAE,WAAWkiS,EAAE75J,YAAY,KAAK,CAAC,MAAMroI,EAAE,WAAWooC,EAAElrC,EAAE,EAAE,EAAE,SAAS4kS,EAAE3qS,GAAG+wC,EAAE/wC,EAAE6qS,IAAIA,GAAE,EAAGhiS,IAAI,CAAC,SAAS+hS,EAAE5qS,EAAEC,GAAGyZ,EAAEu3B,GAAE,WAAWjxC,EAAElE,EAAQ0xV,eAAe,GAAEvtV,EAAE,CAC5dnE,EAAQ+xV,sBAAsB,EAAE/xV,EAAQgyV,2BAA2B,EAAEhyV,EAAQiyV,qBAAqB,EAAEjyV,EAAQkyV,wBAAwB,EAAElyV,EAAQmyV,mBAAmB,KAAKnyV,EAAQoyV,8BAA8B,EAAEpyV,EAAQqyV,wBAAwB,SAASnuV,GAAGA,EAAE6V,SAAS,IAAI,EAAE/Z,EAAQsyV,2BAA2B,WAAW5oV,GAAGslF,IAAItlF,GAAE,EAAGmlS,EAAEviS,GAAG,EAC1UtM,EAAQuyV,wBAAwB,SAASruV,GAAG,EAAEA,GAAG,IAAIA,EAAEu3C,QAAQjzC,MAAM,mHAAmHgB,EAAE,EAAEtF,EAAErD,KAAK6lD,MAAM,IAAIxiD,GAAG,CAAC,EAAElE,EAAQwyV,iCAAiC,WAAW,OAAOjzU,CAAC,EAAEvf,EAAQyyV,8BAA8B,WAAW,OAAOxzU,EAAEjX,EAAE,EAAEhI,EAAQ0yV,cAAc,SAASxuV,GAAG,OAAOqb,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIpb,EAAE,EAAE,MAAM,QAAQA,EAAEob,EAAE,IAAI8O,EAAE9O,EAAEA,EAAEpb,EAAE,IAAI,OAAOD,GAAG,CAAC,QAAQqb,EAAE8O,CAAC,CAAC,EAAEruB,EAAQ2yV,wBAAwB,WAAW,EAC9f3yV,EAAQ4yV,sBAAsB,WAAW,EAAE5yV,EAAQ6yV,yBAAyB,SAAS3uV,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAImqB,EAAE9O,EAAEA,EAAErb,EAAE,IAAI,OAAOC,GAAG,CAAC,QAAQob,EAAE8O,CAAC,CAAC,EAChMruB,EAAQ8yV,0BAA0B,SAAS5uV,EAAEC,EAAEkqB,GAAG,IAAIlP,EAAEnf,EAAQ0xV,eAA8F,OAAtCrjU,EAAzC,iBAAkBA,GAAG,OAAOA,GAAe,iBAAZA,EAAEA,EAAEwhG,QAA6B,EAAExhG,EAAElP,EAAEkP,EAAOlP,EAASjb,GAAG,KAAK,EAAE,IAAI5D,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzM4D,EAAE,CAAC4M,GAAGwd,IAAIvU,SAAS5V,EAAEytV,cAAc1tV,EAAE4e,UAAUuL,EAAEkjG,eAAvDjxH,EAAE+tB,EAAE/tB,EAAoEmxV,WAAW,GAAGpjU,EAAElP,GAAGjb,EAAEutV,UAAUpjU,EAAEE,EAAE1hB,EAAE3I,GAAG,OAAO+a,EAAEjX,IAAI9D,IAAI+a,EAAEpS,KAAK8hS,GAAGz5P,EAAEt3B,GAAGA,GAAG,GAAG+wR,GAAE,EAAGG,EAAEF,EAAEvgR,EAAElP,MAAMjb,EAAEutV,UAAUnxV,EAAEiuB,EAAEvmB,EAAE9D,GAAGwF,GAAGslF,IAAItlF,GAAE,EAAGmlS,EAAEviS,KAAYpI,CAAC,EACnelE,EAAQ+yV,qBAAqB1zU,EAAErf,EAAQgzV,sBAAsB,SAAS9uV,GAAG,IAAIC,EAAEob,EAAE,OAAO,WAAW,IAAI8O,EAAE9O,EAAEA,EAAEpb,EAAE,IAAI,OAAOD,EAAE6G,MAAMnH,KAAKjC,UAAU,CAAC,QAAQ4d,EAAE8O,CAAC,CAAC,CAAC,uFCf3JzR,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,qEAAsE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kEAAkE,MAAQ,GAAG,SAAW,6BAA6B,eAAiB,CAAC,qHAAqH,WAAa,MAEnZ,0DCLA,QADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qsBAAysB,KAAQ,eAAgB,MAAS,4BCDj6B/Q,EAAOC,QAAU,IAA0B,oJCyB3C,SAAS+0B,EAAUhvB,EAAOk5B,EAAQ,IAAKg0T,EAAgB,KACrD,IAEE,OAAOz5R,EAAM,GAAIzzD,EAAOk5B,EAAOg0T,EACjC,CAAE,MAAO1pV,GACP,MAAO,CAAE6yK,MAAO,yBAAyB7yK,KAC3C,CACF,CAGA,SAAS2pV,EAEP1rU,EAEAyX,EAAQ,EAERyuS,EAAU,QAEV,MAAMxiP,EAAan2D,EAAUvN,EAAQyX,GAErC,OAyNgBh/B,EAzNHirF,EAkNf,SAAoBjrF,GAElB,QAASsuC,UAAUtuC,GAAOe,MAAM,SAAS+C,MAC3C,CAKSovV,CAAWxwT,KAAKL,UAAUriC,IA1NNytU,EAClBwlB,EAAgB1rU,EAAQyX,EAAQ,EAAGyuS,GAGrCxiP,EAqNT,IAAkBjrF,CApNlB,CAWA,SAASu5D,EACPl3D,EACArC,EACAg/B,EAAQ,IACRg0T,EAAgB,IAChB7vM,GAAO,UAEP,MAAOtY,EAASsoN,GAAahwM,EAG7B,GACW,MAATnjJ,GACA,CAAC,UAAW,UAAUka,gBAAgBla,IACpB,iBAAVA,GAAsBqX,OAAOkhB,SAASv4B,GAE9C,OAAOA,EAGT,MAAMozV,EA6FR,SACE/wV,EAGArC,GAEA,IACE,GAAY,WAARqC,GAAoBrC,GAA0B,iBAAVA,GAAsB,EAAS6rN,QACrE,MAAO,WAGT,GAAY,kBAARxpN,EACF,MAAO,kBAMT,GAAsB,oBAAXoS,QAA0BzU,IAAUyU,OAC7C,MAAO,WAIT,GAAsB,oBAAXgnC,QAA0Bz7C,IAAUy7C,OAC7C,MAAO,WAIT,GAAwB,oBAAb3E,UAA4B92C,IAAU82C,SAC/C,MAAO,aAGT,IAAI,QAAe92C,GACjB,MAAO,iBAIT,IAAI,QAAiBA,GACnB,MAAO,mBAGT,GAAqB,iBAAVA,IAAuBqX,OAAOkhB,SAASv4B,GAChD,MAAO,IAAIA,KAGb,GAAqB,mBAAVA,EACT,MAAO,eAAc,QAAgBA,MAGvC,GAAqB,iBAAVA,EACT,MAAO,IAAIsG,OAAOtG,MAIpB,GAAqB,iBAAVA,EACT,MAAO,YAAYsG,OAAOtG,MAO5B,MAAMqzV,EAcV,SAA4BrzV,GAC1B,MAAMT,EAAYD,OAAO0D,eAAehD,GAExC,OAAOT,EAAYA,EAAUmvB,YAAY3iB,KAAO,gBAClD,CAlBoBunV,CAAmBtzV,GAGnC,MAAI,qBAAqBuxB,KAAK8hU,GACrB,iBAAiBA,KAGnB,WAAWA,IACpB,CAAE,MAAO/pV,GACP,MAAO,yBAAyBA,IAClC,CACF,CAtKsBiqV,CAAelxV,EAAKrC,GAIxC,IAAKozV,EAAY7zT,WAAW,YAC1B,OAAO6zT,EAQT,GAAI,EAAwC,8BAC1C,OAAOpzV,EAMT,MAAMwzV,EAC2D,iBAAxD,EAAkD,wCACpD,EAAoD,wCACrDx0T,EAGN,GAAuB,IAAnBw0T,EAEF,OAAOJ,EAAYx3T,QAAQ,UAAW,IAIxC,GAAIivG,EAAQ7qI,GACV,MAAO,eAIT,MAAMyzV,EAAkBzzV,EACxB,GAAIyzV,GAAqD,mBAA3BA,EAAgB78P,OAC5C,IAGE,OAAOr9B,EAAM,GAFKk6R,EAAgB78P,SAEN48P,EAAiB,EAAGR,EAAe7vM,EACjE,CAAE,MAAO75I,GAET,CAMF,MAAM2hF,EAAch5E,MAAMie,QAAQlwB,GAAS,GAAK,CAAC,EACjD,IAAI0zV,EAAW,EAIf,MAAMC,GAAY,QAAqB3zV,GAEvC,IAAK,MAAM4zV,KAAYD,EAAW,CAEhC,IAAKr0V,OAAOC,UAAUC,eAAeU,KAAKyzV,EAAWC,GACnD,SAGF,GAAIF,GAAYV,EAAe,CAC7B/nQ,EAAW2oQ,GAAY,oBACvB,KACF,CAGA,MAAMC,EAAaF,EAAUC,GAC7B3oQ,EAAW2oQ,GAAYr6R,EAAMq6R,EAAUC,EAAYL,EAAiB,EAAGR,EAAe7vM,GAEtFuwM,GACF,CAMA,OAHAP,EAAUnzV,GAGHirF,CACT,6EC1JA,SAFe,OAAU,IAAM,4BCE/B,SAFc,OAAU,IAAM,2BCE9B,SAFc,OAAU,IAAM,uCCK1B6oQ,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,GAAqB,OAAS,GAC9BC,GAAgB,OAAS,KACzBC,GAAoB,OAAS,GAC7BC,GAAgB,OAAS,KACzBC,GAAoB,OAAS,GAS7BC,EAAS,KAGR,GAAYA,EAAO,IAAI,EAAS,IAAIxlN,YAAY,MAAQklN,GACxD,KAAOM,EAAO,IAAI,MAAQV,GAC1B,GAAWU,EAAO,EAAQzvV,YAAcgvV,GACxC,KAAOS,EAAO,IAAI,MAAQR,GAC1B,GAAWQ,EAAO,IAAI,IAAYP,KACrCO,EAAS,SAASx0V,GAChB,IAAIM,GAAS,OAAWN,GACpB85P,EA/BQ,mBA+BDx5P,EAAsBN,EAAM0uB,iBAAc7uB,EACjD40V,EAAa36F,GAAO,OAASA,GAAQ,GAEzC,GAAI26F,EACF,OAAQA,GACN,KAAKN,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO3zV,CACT,GAGF,yCCjDA,IAAgCwC,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFc,EAAQ,UAEDA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,2BCiDjBxlB,EAAOC,QA3CO,WAAY,8EChBtB20V,EAAc,IAAI,IAKP,SAASC,EAAY5mE,GAClC,IAAI6mE,EAAgB3iV,MAAMie,QAAQ69P,GAAeA,EAAc,CAACA,GAOhE,OALK2mE,EAAYt7U,IAAIw7U,IACnBF,EAAYpyV,IAAIsyV,EAAe,IAAI,IAAMA,IAIpCF,EAAY1/U,IAAI4/U,EACzB,iCChBA,SAASC,EAAmB3mU,EAAGthB,EAAGvM,EAAG0H,EAAGD,EAAG7D,EAAGmqB,GAC5C,IACE,IAAI3mB,EAAIymB,EAAEjqB,GAAGmqB,GACXC,EAAI5mB,EAAEzH,KACV,CAAE,MAAOkuB,GACP,YAAY7tB,EAAE6tB,EAChB,CACAzmB,EAAEiE,KAAOkB,EAAEyhB,GAAKvpB,QAAQC,QAAQspB,GAAG/lB,KAAKP,EAAGD,EAC7C,CACA,SAASgtV,EAAkB5mU,GACzB,OAAO,WACL,IAAIthB,EAAIjJ,KACNtD,EAAIqB,UACN,OAAO,IAAIoD,SAAQ,SAAUiD,EAAGD,GAC9B,IAAI7D,EAAIiqB,EAAEpjB,MAAM8B,EAAGvM,GACnB,SAAS00V,EAAM7mU,GACb2mU,EAAmB5wV,EAAG8D,EAAGD,EAAGitV,EAAOC,EAAQ,OAAQ9mU,EACrD,CACA,SAAS8mU,EAAO9mU,GACd2mU,EAAmB5wV,EAAG8D,EAAGD,EAAGitV,EAAOC,EAAQ,QAAS9mU,EACtD,CACA6mU,OAAM,EACR,GACF,CACF,kECtBA,kBADkC,cAAoB,sDCC/C,MAAMvQ,EAAkB,IAAOhxU,GACpCA,EAAMkD,MAAM,CAAC,SAAU,0OCFlB,MAAM8gI,EAAoB,8BACpBO,EACX,0CAGWJ,EACX,uCACWY,EAAuB,iCACvBE,EAA4B,sCAC5BN,EAAkB,4BAKlB4jK,EAAoB,8BAOpBnjK,EAAiB,2BAKjBojK,EAAe,yBACfC,EAAuB,iCACvBC,EACX,wCAGWtkK,EAAyB,sBACzBQ,EAAc,aACdsjK,EAAU,UACV1jK,EAAiB,yBAKjB2jK,EAAgB,eAKhB9iK,EAAa,YAEb+iK,EAAW,UACXC,EAAmB,iBACnBC,EAA0B,qMCzC5Bm5C,EAAiB,SAuDjBthU,EAAU,SAAiBrN,EAAOs3C,EAAcnrD,GACzD,IAAI0c,GAAS,OAAe7I,EAAO,GACjCuxC,EAAW1oC,EAAO,GAClBwtC,EAAUxtC,EAAO,GACjBk4S,EAAYl4S,EAAO,GAEnB0uC,GADUprD,GAAW,CAAC,GACRorD,MAChB,IAAKhG,EACH,OAAO,KAET,IAIIkG,EAAc,CAChB,gBAAiB,eACjB,mBAAoB,GAAG7yD,QANb,MASZ,MAAO,EATK,IASGyxD,GADC,QAAW9E,EAAUwvQ,EAAW1qQ,EAASoB,EAAaF,GAExE,EACA,QA3EwB,SAA2B7F,EAAQntD,GACzD,IAAIxI,EAAM21D,EAAO31D,IACfw8B,EAASm5B,EAAOn5B,OAChBkoB,EAAWiR,EAAOjR,SAClB1X,EAAS2oB,EAAO3oB,OAChB53B,EAAQugD,EAAOvgD,MACfy9U,EAAgBl9R,EAAOn3C,MACvBA,OAA0B,IAAlBq0U,EAA2B,GAAKA,EACtCn+M,GAAc,IAAA7hF,YAAW,MAC3BkI,EAAa25E,EAAYzwH,MAAM82C,WAC/BzB,EAAYo7E,EAAYp7E,UACtBG,EAAWrkD,EAAMskD,UACjBo5R,EAAY,GAAGjqV,QAAO,OAAmB8sD,EAAOxhD,MAAO,CAACnU,EAAKwe,EAAOi7C,IAwCxE,OAvCY,OAAem5R,EAAgBE,GAAW,WACpD,IAAI9H,EAAcxiV,IACduqV,GAAkB,QAAe/H,EAAahrV,EAAK,CACnDw8B,OAAQA,EACRkoB,SAAUA,EACV1X,OAAQA,EACRxuB,MAAOA,IAETw0U,GAAmB,OAAeD,EAAiB,GACnD7sB,EAAc8sB,EAAiB,GAC/BC,EAAaD,EAAiB,GAEhC,MAAO,CAAC9sB,EAAa+sB,GADP,QAAWH,EAAWG,GACMjzV,EAC5C,IAAG,SAAUyE,GACX,IACE61D,GADU,OAAe71D,EAAM,GACf,GACd,OACF,QAAU61D,EAAS,CACjBriB,KAAM,MAGZ,IAAG,SAAUrxC,GACX,IAAIyB,GAAQ,OAAezB,EAAO,GAChCqsV,EAAa5qV,EAAM,GACnBiyD,EAAUjyD,EAAM,GAClB,GAAK4qV,EAAL,CAGA,IAAI36S,GAAQ,QAAU26S,EAAY34R,EAAS,CACzCriB,KAAM,KACNwiB,QAAS,QACTC,SAAUpB,EACVzmC,UAAW,MAEbylB,EAAM,MAAsByiB,EAG5BziB,EAAMr3B,aAAa,KAAYjhB,EAV/B,CAWF,GAEF,2UCjDO,MAAMyxF,EAAAA,sBAAe,WAAuC,gBACjEhB,EAAe,WACfC,EAAU,wBACVQ,EAAuB,QACvB+F,EAAU,CAAC,EAAC,kBACZ4yD,IAGA,MAAM,gBAAE94D,EAAe,YAAEmiQ,EAAW,UAAEliQ,IAAcC,EAAAA,EAAAA,GAClDR,EACAC,GAUIk3L,EAAM/9H,EACPA,EAAkBp5D,GAClBo9B,EAAAA,EAAOhuG,OAAO4wE,GAGnB,IAAKm3L,EACH,MAAM,IAAIxoR,MAAM,qCAAqCqxF,OAKvD,MAAM0iQ,EAAapiQ,EAAgB38E,QAChC+6E,GAA2B,iBAAVA,GAAuC,iBAAVA,IAI3CikQ,EACJF,GAAeliQ,EACXD,EAAgB38E,QAAQ+6E,GAA2B,iBAAVA,IACzC,GAEN,GAAoB,IAAhB+jQ,GAAqBE,EAAsB,GAAI,CAGjD,MAAMC,EAAW,IAAIC,SAErBr2V,OAAOg/B,QAAQm3T,EAAsB,IAAItzV,SAAQ,EAAEE,EAAKrC,OACjC,iBAAVA,GAAsBA,aAAiB8yI,OAChD4iN,EAAS76T,OAAOx4B,EAAKrC,EACvB,IAGFy1V,EAAsB,GAAKC,CAC7B,CAGA,MAAME,EAAuB,CAAE,kBAAmBriQ,GAC5CsiQ,wUAAe,IAChBv8P,GACAw8P,EAAAA,EAAAA,IAAmBF,IAKxB,OAAO3rE,KAAOurE,KAAeC,EAAuB,CAClDn8P,QAASu8P,GAEb,iMAnEa/hQ,mCAAAA,mECoBb,MAAMiiQ,EAAoB,CACxB33N,KAAM,CACJ9rD,OAAQ,CAAC,KAAM,OAEjB+rD,MAAO,CACL/rD,OAAQ,CAAC,KAAM,OAEjBx3B,IAAK,CACHw3B,OAAQ,CAAC,KAAM,OAEjBjxB,OAAQ,CACNixB,OAAQ,CAAC,KAAM,OAEjBD,QAAS,CACPC,OAAQ,CAAC,KAAM,OAEjBI,QAAS,CACPJ,OAAQ,CAAC,KAAM,OAEjBC,SAAU,CACRD,OAAQ,CAAC,KAAM,OAEjBM,SAAU,CACRN,OAAQ,CAAC,KAAM,OAEjBG,YAAa,CACXH,OAAQ,CAAC,KAAM,OAEjBO,YAAa,CACXP,OAAQ,CAAC,KAAM,OAEjBE,WAAY,CACVF,OAAQ,CAAC,KAAM,OAEjBK,WAAY,CACVL,OAAQ,CAAC,KAAM,QAGb0jR,EAA+B,CACnC3jR,QAAS,CACPC,OAAQ,CAAC,KAAM,OAEjBI,QAAS,CACPJ,OAAQ,CAAC,KAAM,OAEjBC,SAAU,CACRD,OAAQ,CAAC,KAAM,OAEjBM,SAAU,CACRN,OAAQ,CAAC,KAAM,OAEjBG,YAAa,CACXH,OAAQ,CAAC,KAAM,OAEjBO,YAAa,CACXP,OAAQ,CAAC,KAAM,OAEjBE,WAAY,CACVF,OAAQ,CAAC,KAAM,OAEjBK,WAAY,CACVL,OAAQ,CAAC,KAAM,QAGb2jR,EAAuB,IAAI59T,IAAI,CAAC,UAAW,WAAY,aAAc,cAAe,UAAW,aAAc,WAAY,gBAChH,SAAS69T,EAAcl+R,GACpC,MAAM,WACJm+R,EAAU,mBACVlkR,EAAkB,mBAClBmkR,EAAkB,OAClBvjS,EAAM,aACNhU,EAAY,aACZw3S,GACEr+R,EACEs+R,EAAiBH,EAAa,EAC9BI,EAAe,CAAC,EAmEtB,OAlEAj3V,OAAOwK,KAAKisV,GAAmB5zV,SAAQE,IACrC,MAAM63B,EAAWk8T,GAAsBJ,EAA6B3zV,IAAQ0zV,EAAkB1zV,GACxFm0V,EAAgBl3V,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGuhB,GAAW,CAC/D24B,OAAQ,CAAC,EAAG,GACZilE,cAAc,IAQhB,OANAy+N,EAAal0V,GAAOm0V,EAEhBP,EAAqB78U,IAAI/W,KAC3Bm0V,EAAc7gC,WAAY,GAGpBtzT,GACN,IAAK,MACL,IAAK,UACL,IAAK,WACHm0V,EAAc3jS,OAAO,IAAMyjS,EAAiBzjS,EAC5C,MACF,IAAK,SACL,IAAK,aACL,IAAK,cACH2jS,EAAc3jS,OAAO,GAAKyjS,EAAiBzjS,EAC3C,MACF,IAAK,OACL,IAAK,UACL,IAAK,aACH2jS,EAAc3jS,OAAO,IAAMyjS,EAAiBzjS,EAC5C,MACF,IAAK,QACL,IAAK,WACL,IAAK,cACH2jS,EAAc3jS,OAAO,GAAKyjS,EAAiBzjS,EAI/C,MAAM4jS,GAAc,QAAoB,CACtCC,cAAe73S,EACf83S,qBAAqB,IAEvB,GAAIP,EACF,OAAQ/zV,GACN,IAAK,UACL,IAAK,aACHm0V,EAAc3jS,OAAO,IAAM4jS,EAAYG,sBAAwBN,EAC/D,MACF,IAAK,WACL,IAAK,cACHE,EAAc3jS,OAAO,GAAK4jS,EAAYG,sBAAwBN,EAC9D,MACF,IAAK,UACL,IAAK,WACHE,EAAc3jS,OAAO,GAA0C,GAApC4jS,EAAYG,sBAA4BN,EACnE,MACF,IAAK,aACL,IAAK,cACHE,EAAc3jS,OAAO,GAAyC,EAApC4jS,EAAYG,sBAA4BN,EAKxEE,EAAc/3S,SAzKX,SAA4B61B,EAAWmiR,EAAaN,EAAYlkR,GACrE,IAA2B,IAAvBA,EACF,MAAO,CACLC,SAAS,EACTC,SAAS,GAGb,MAAM1zB,EAAWwzB,GAAoD,iBAAvBA,EAAkCA,EAAqB,CAAC,EAChG4kR,EAAe,CAAC,EACtB,OAAQviR,GACN,IAAK,MACL,IAAK,SACHuiR,EAAaC,OAA6C,EAApCL,EAAYG,sBAA4BT,EAC9DU,EAAaj/N,QAAS,EACtBi/N,EAAa1kR,SAAU,EACvB,MACF,IAAK,OACL,IAAK,QACH0kR,EAAaj/N,OAA2C,EAAlC6+N,EAAYM,oBAA0BZ,EAC5DU,EAAaC,QAAS,EACtBD,EAAa3kR,SAAU,EAG3B,MAAM8kR,EAAiB13V,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGk+U,GAAep4S,GAQtE,OANKu4S,EAAeF,SAClBE,EAAe9kR,SAAU,GAEtB8kR,EAAep/N,SAClBo/N,EAAe7kR,SAAU,GAEpB6kR,CACT,CAyI6BC,CAAmB50V,EAAKo0V,EAAaN,EAAYlkR,GAEtEokR,IACFG,EAAc3+N,WAAa,eAC7B,IAEK0+N,CACT,uFC9KI55U,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,4GAA6G,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,mDAAmD,MAAQ,GAAG,SAAW,iDAAiD,eAAiB,CAAC,4NAA4N,wIAAwI,WAAa,MAE7uB,sBCeA/Q,EAAOC,QAZP,SAAmB6F,EAAOM,GAIxB,IAHA,IAAIkR,GAAS,EACTtT,EAAkB,MAAT8B,EAAgB,EAAIA,EAAM9B,SAE9BsT,EAAQtT,GACf,GAAIoC,EAAUN,EAAMwR,GAAQA,EAAOxR,GACjC,OAAO,EAGX,OAAO,CACT,sHCpBA,IAAIsxV,EAAc,EAAQ,QACtBC,EAAsB,EAAQ,QAC9BpkV,EAAW,EAAQ,QACnBmd,EAAU,EAAQ,QAClBi1G,EAAW,EAAQ,QA0BvBrlI,EAAOC,QAjBP,SAAsBC,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACK+S,EAEW,iBAAT/S,EACFkwB,EAAQlwB,GACXm3V,EAAoBn3V,EAAM,GAAIA,EAAM,IACpCk3V,EAAYl3V,GAEXmlI,EAASnlI,EAClB,kDCvBA,SAFmB,cAAQV,OAAO0D,eAAgB1D,8GCHlD,QAAe,IAA0B,4KCGrCqd,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,mMAAoM,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,MAAQ,GAAG,SAAW,8BAA8B,eAAiB,CAAC,iUAAiU,WAAa,MAEjuB,sFC2GA,MAAMumV,EAAa,CACjB,CAAC,MA7GH,MACG,WAAA1oU,CAAa+qC,GAAS91D,KAAK81D,OAASA,CAAO,CAG3C,UAAIhO,GACH,OAAO,CACT,CAGC,GAAA7yC,CAAI5Y,GACH2D,KAAK81D,QAAUz5D,CACjB,CAGC,QAAAN,GACC,MAAO,GAAGiE,KAAK81D,QACjB,GA8FA,CAAC,MAxFH,MAEG,WAAA/qC,CAAY1uB,GACX2D,KAAK0zV,MAAQr3V,EACb2D,KAAK2zV,KAAOt3V,EACZ2D,KAAK60B,KAAOx4B,EACZ2D,KAAK4zV,KAAOv3V,EACZ2D,KAAK6zV,OAAS,CAChB,CAGC,UAAI/rS,GACH,OAAO,CACT,CAGC,GAAA7yC,CAAI5Y,GACH2D,KAAK0zV,MAAQr3V,EACTA,EAAQ2D,KAAK2zV,OACf3zV,KAAK2zV,KAAOt3V,GAEVA,EAAQ2D,KAAK60B,OACf70B,KAAK60B,KAAOx4B,GAEd2D,KAAK4zV,MAAQv3V,EACb2D,KAAK6zV,QACP,CAGC,QAAA93V,GACC,MAAO,GAAGiE,KAAK0zV,SAAS1zV,KAAK2zV,QAAQ3zV,KAAK60B,QAAQ70B,KAAK4zV,QAAQ5zV,KAAK6zV,QACtE,GA0DA,CAAC,MApDH,MAEG,WAAA9oU,CAAYmK,GACXl1B,KAAK81D,OAAS,CAAC5gC,EACjB,CAGC,UAAI4yB,GACH,OAAO9nD,KAAK81D,OAAO31D,MACrB,CAGC,GAAA8U,CAAI5Y,GACH2D,KAAK81D,OAAOj0D,KAAKxF,EACnB,CAGC,QAAAN,GACC,OAAOiE,KAAK81D,OAAOz4D,KAAK,IAC1B,GAkCA,CAAC,MA5BH,MAEG,WAAA0tB,CAAamK,GAAQl1B,KAAKk1B,MAAQA,EACjCl1B,KAAK81D,OAAS,IAAIphC,IAAI,CAACQ,GACzB,CAGC,UAAI4yB,GACH,OAAO9nD,KAAK81D,OAAO7gC,IACrB,CAGC,GAAAhgB,CAAI5Y,GACH2D,KAAK81D,OAAO7gD,IAAI5Y,EAClB,CAGC,QAAAN,GACC,OAAOuS,MAAMwqB,KAAK94B,KAAK81D,QACpB/0D,KAAIw4C,GAAuB,iBAARA,GAAmB,QAAWA,GAAOA,IACxDl8C,KAAK,IACV,4DC9GF,IAAIi5Q,EAAiB,CACnB39K,SAAU,kBACVC,cAAe,GACfk7P,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClDv8P,aAAa,EACbigE,mBAAQ,GAEH,MAAMu8L,EAAc,CAACplV,EAAU,CAAC,KACrCwnQ,EAAiB,IACZA,KACAxnQ,EACJ,EAEUqlV,EAAc,IAAM79E,+DCjBjC,QAAe,IAA0B,oTC4BlC,SAAS89E,EAAalrR,EAASykH,GACpC,IAAKzkH,EACH,OAEFA,EAAQn1B,MAAM45I,GAEd,MAAM,OACJnyI,GACEmyI,GAAU,CAAC,EACf,GAAInyI,EAAQ,CACV,MAAMz3C,EAAMmlE,EAAQ7sE,MAAM8D,OAC1B,OAAQq7C,GACN,IAAK,QACH0tB,EAAQ+jQ,kBAAkB,EAAG,GAC7B,MACF,IAAK,MACH/jQ,EAAQ+jQ,kBAAkBlpU,EAAKA,GAC/B,MACF,QACEmlE,EAAQ+jQ,kBAAkB,EAAGlpU,GAEnC,CACF,CA+IA,SA9I2B,IAAAggB,aAAW,CAAC7Z,EAAO8V,KAC5C,IAAI0E,EACJ,MACI2tC,UAAWw5B,EAAkB,SAC7BiyB,GAAW,EACX1xG,OAAQkzG,EACRrqF,KAAMmqF,EACNzsD,SAAU0uD,EAAc,OACxByC,EAAM,QACN73C,EAAO,OACPjvB,EAAM,WACNu5F,EAAU,WACV9zB,EAAU,YACV4xO,EAAW,UACX18U,EAAS,MACTq/B,EAAK,OACL04D,EAAM,cACNp/B,EAAa,SACbtjB,EACA2rF,WAAYulJ,EACZzkM,QAASi+C,GACPxtI,EACJ0/H,EAvEgC,SAAU/iI,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAgEWy0F,CAAOxzF,EAAO,CAAC,YAAa,WAAY,SAAU,OAAQ,WAAY,SAAU,UAAW,SAAU,aAAc,aAAc,cAAe,YAAa,QAAS,SAAU,gBAAiB,WAAY,aAAc,aAO9N,aACJmnD,EAAY,UACZ9oB,EAAS,MACTpmC,GACE,aAAiB,MACfkwD,EAAYhB,EAAa,QAASw6B,GAClC6yB,GAAW,IAAA9gD,QAAO,MAElBzT,GAAU,EAAAm9C,EAAA,GAAaj1C,IACtBy5B,EAAYn6B,EAAQo6B,IAAa,QAAS15B,EAAWlI,IAEtD,YACJ84D,EAAW,sBACX40B,IACE,QAAsBxlF,EAAW9pB,GAE/Bo3E,GAAa,EAAAC,EAAA,IAAQzgG,IACzB,IAAIuF,EACJ,OAA0F,QAAlFA,EAAK06F,QAA+CA,EAAa6D,SAAgC,IAAPv+F,EAAgBA,EAAKvF,CAAG,IAGtHwzC,EAAW,aAAiB6uD,EAAA,GAC5B70C,EAAiB00C,QAAuDA,EAAiB1uD,GAG7FvmD,OAAQ4rI,EAAa,YACrBjkC,EAAW,aACXC,KACE,IAAAziD,YAAW,MACTuuD,IAAe,OAAgBk4B,EAAe14B,GAE9Cg1O,GC/GD,SAAyBpqV,GAC9B,SAAUA,EAAMgxB,QAAUhxB,EAAM8yC,QAAU9yC,EAAMqsI,YAAcrsI,EAAMqqV,UACtE,CD6G+BC,CAAgBtqV,MAAY6pG,GAC7B,IAAAn2C,QAAO02R,IAcnC,MAAM3yO,IAAwB,EAAAC,EAAA,GAAyBlD,GAAU,GAa3Du5B,IAAclkC,GAAe/2D,IAAyB,gBAAoB,WAAgB,KAAMA,EAAQ+2D,GAAeC,IACvH+jC,IAAmB,EAAA08M,EAAA,GAAcl+M,QAA+CA,EAAap0I,aAAqC,EAASA,EAAMo0I,aAChJ98C,GAASq+C,KAAoB,OAAW,QAASJ,EAAe55B,GACvE,OAAOhyB,EAAwB,gBAAoB,IAASnwF,OAAOqZ,OAAO,CACxEgL,KAAK,QAAWA,EAAK0+F,GACrBrsD,UAAWA,EACX0wF,aAAc5gJ,aAAqC,EAASA,EAAM4gJ,cACjEnZ,EAAM,CACPj3E,SAAUga,EACVm3C,OArBiBpnH,IACjBilH,KACAmC,SAAgDA,EAAOpnH,EAAE,EAoBzDuvE,QAlBkBvvE,IAClBilH,KACA11C,SAAkDA,EAAQvvE,EAAE,EAiB5Ds6C,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG7S,aAAqC,EAASA,EAAM60C,OAAQA,GACnG04D,OAAQ/zG,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG7S,aAAqC,EAASA,EAAMutG,QAASA,GACrG1yD,OAAQi7F,GACR1B,WAAYwB,GACZpgI,UAAW,IAAWA,EAAW24D,EAAeyb,EAAW5hC,EAAS0tF,EAAuB11I,aAAqC,EAASA,EAAMwV,WAC/Iq1C,SApBmBtwD,IACnBilH,KACA30D,SAAoDA,EAAStwD,EAAE,EAmB/D23V,YAAaA,GAA6B,gBAAoBh8M,EAAA,EAAiB,CAC7E/vG,MAAM,EACNumD,OAAO,GACNwlQ,GACH5xO,WAAYA,GAA4B,gBAAoB41B,EAAA,EAAiB,CAC3E/vG,MAAM,EACNumD,OAAO,GACN4zB,GACHk2B,WAAYh9I,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGkpR,GAAU/7R,aAAqC,EAASA,EAAMw2I,YAAa,CACnIx2I,MAAO,IAAW,CAChB,CAAC,GAAGkwD,QAAgC,UAAfstD,EACrB,CAAC,GAAGttD,QAAgC,UAAfstD,EACrB,CAAC,GAAGttD,SAAgC,QAAd9pB,GACrB21P,aAAyC,EAASA,EAAQ/7R,MAAiF,QAAzEuiB,EAAKviB,aAAqC,EAASA,EAAMw2I,kBAA+B,IAAPj0H,OAAgB,EAASA,EAAGviB,MAAOwvD,GACzL8nC,QAAS,IAAW,CAClB,CAAC,GAAGpnC,KAAaonC,MAAYq+C,KAC5B,OAAoBzlF,EAAWytD,KAClC40O,aAAc,IAAW,CACvB,CAAC,GAAGriS,sBAA8C,UAAfstD,EACnC,CAAC,GAAGttD,sBAA8C,UAAfstD,EACnC,CAAC,GAAGttD,uBAA8C,QAAd9pB,GACnCopB,GACH8vP,QAAS,IAAW,CAClB,CAAC,GAAGpvP,eAAsC,QAAd9pB,GAC3BopB,GACHgjS,aAAc,IAAW,CACvB,CAAC,GAAGtiS,sBAA8C,UAAfstD,EACnC,CAAC,GAAGttD,sBAA8C,UAAfstD,EACnC,CAAC,GAAGttD,uBAA8C,QAAd9pB,EACpC,CAAC,GAAG8pB,mBAA2BonC,MAAYq+C,KAC1C,OAAoB,GAAGzlF,kBAA2BytD,GAAc/L,GAAcpiD,QAEjF,sBE5LNx1D,EAAOC,QAAU,IAA0B,8FCCpC,MAAMw4V,YAA4B,cAAoB,CAC3DC,YAAa,IAEFC,EAAuBF,EAAa7rU,+ICwBjD,SAASgsU,EACPjmV,EACAk3C,EACA0sC,EACAx1E,EACAqB,EACAT,GAEA,MAAM,eAAE+mR,EAAiB,EAAC,oBAAEmwD,EAAsB,KAASlmV,EACrDmmV,EAAW,IACZjvS,EACHw+O,SAAUx+O,EAAMw+O,UAAY9xM,EAAK8xM,WAAY,UAC7C9hQ,UAAWsjB,EAAMtjB,YAAa,WAE1B2yD,EAAe3C,EAAK2C,cAAgBvmF,EAAQumF,aAAat0F,KAAI+C,GAAKA,EAAEsE,QA4E5E,SAA4B49C,EAAOl3C,GACjC,MAAM,YAAE0xT,EAAW,QAAE7+T,EAAO,KAAEuzV,EAAI,eAAEviQ,EAAiB,KAAQ7jF,EAEvD,gBAAiBk3C,IACrBA,EAAMw6Q,YAAc,gBAAiB1xT,EAAU0xT,EAAc,UAGzCtkU,IAAlB8pD,EAAMrkD,cAAqCzF,IAAZyF,IACjCqkD,EAAMrkD,QAAUA,QAGCzF,IAAf8pD,EAAMkvS,WAA+Bh5V,IAATg5V,IAC9BlvS,EAAMkvS,KAAOA,GAGXlvS,EAAMroC,UACRqoC,EAAMroC,SAAU,QAASqoC,EAAMroC,QAASg1E,IAG1C,MAAMslB,EAAYjyD,EAAMiyD,WAAajyD,EAAMiyD,UAAU17F,QAAUypC,EAAMiyD,UAAU17F,OAAO,GAClF07F,GAAaA,EAAU57G,QACzB47G,EAAU57G,OAAQ,QAAS47G,EAAU57G,MAAOs2F,IAG9C,MAAMg9I,EAAU3pL,EAAM2pL,QAClBA,GAAWA,EAAQn6L,MACrBm6L,EAAQn6L,KAAM,QAASm6L,EAAQn6L,IAAKm9C,GAExC,CAtGEwiQ,CAAmBF,EAAUnmV,GAmN/B,SAAmCk3C,EAAOovS,GACpCA,EAAiBj1V,OAAS,IAC5B6lD,EAAMivC,IAAMjvC,EAAMivC,KAAO,CAAC,EAC1BjvC,EAAMivC,IAAII,aAAe,IAAKrvC,EAAMivC,IAAII,cAAgB,MAAQ+/P,GAEpE,CAvNEC,CAA0BJ,EAAU5/P,GAEhC92E,GACFA,EAAOC,KAAK,qBAAsBwnC,QAIjB9pD,IAAf8pD,EAAMzmD,MAqGZ,SAAuBymD,EAAO09O,GAC5B,MAAM4xD,EAAa,KAAWC,gBAE9B,IAAKD,EACH,OAGF,IAAIE,EACJ,MAAMC,EAA+BC,EAAwBrkV,IAAIqyR,GAC7D+xD,EACFD,EAA0BC,GAE1BD,EAA0B,IAAIr3V,IAC9Bu3V,EAAwB/2V,IAAI+kS,EAAa8xD,IAI3C,MAAMG,EAAqBh6V,OAAOg/B,QAAQ26T,GAAYj1V,QACpD,CAACy6D,GAAM86R,EAAmBC,MACxB,IAAIC,EACJ,MAAMC,EAAoBP,EAAwBnkV,IAAIukV,GAClDG,EACFD,EAAcC,GAEdD,EAAcpyD,EAAYkyD,GAC1BJ,EAAwB72V,IAAIi3V,EAAmBE,IAGjD,IAAK,IAAIhyV,EAAIgyV,EAAY31V,OAAS,EAAG2D,GAAK,EAAGA,IAAK,CAEhD,MAAMkyV,EAAaF,EAAYhyV,GAC/B,GAAIkyV,EAAW3rI,SAAU,CACvBvvJ,EAAIk7R,EAAW3rI,UAAYwrI,EAC3B,KACF,CACF,CACA,OAAO/6R,CAAG,GAEZ,CAAC,GAGH,IAEE9U,EAAMiyD,UAAU17F,OAAO/d,SAAQy5G,IAE7BA,EAAU4rL,WAAWxpI,OAAO77J,SAAQuM,IAC9BA,EAAMs/M,WACRt/M,EAAMkrV,SAAWN,EAAmB5qV,EAAMs/M,UAC5C,GACA,GAEN,CAAE,MAAO3tN,GAET,CACF,CA1JIw5V,CAAcjB,EAAUnmV,EAAQ40R,aAKlC,MAAMyyD,EA+QR,SACEj5U,EACA8mT,GAEA,IAAKA,EACH,OAAO9mT,EAGT,MAAMi5U,EAAaj5U,EAAQA,EAAMuP,QAAU,IAAI,IAE/C,OADA0pU,EAAW9nQ,OAAO21O,GACXmyB,CACT,CA1RqBC,CAAcl5U,EAAOw1E,EAAKsxO,gBAEzCtxO,EAAKy7K,YACP,QAAsB8mF,EAAUviQ,EAAKy7K,WAGvC,MAAMkoF,EAAwB93U,EAASA,EAAO+3U,qBAAuB,GAK/D1sV,GAAO,UAAiBuU,eAE9B,GAAIL,EAAgB,CAClB,MAAMy4U,EAAgBz4U,EAAeK,gBACrC,QAAevU,EAAM2sV,EACvB,CAEA,GAAIJ,EAAY,CACd,MAAMK,EAAiBL,EAAWh4U,gBAClC,QAAevU,EAAM4sV,EACvB,CAEA,MAAMC,EAAc,IAAK/jQ,EAAK+jQ,aAAe,MAAQ7sV,EAAK6sV,aACtDA,EAAYt2V,SACduyF,EAAK+jQ,YAAcA,IAGrB,QAAsBxB,EAAUrrV,GAEhC,MAAM8sV,EAAkB,IACnBL,KAEAzsV,EAAK8sV,iBAKV,OAFe,OAAsBA,EAAiBzB,EAAUviQ,GAElD/tF,MAAKsjN,IACbA,GAmHR,SAAwBjiK,GAEtB,MAAM2vS,EAAqB,CAAC,EAC5B,IAEE3vS,EAAMiyD,UAAU17F,OAAO/d,SAAQy5G,IAE7BA,EAAU4rL,WAAWxpI,OAAO77J,SAAQuM,IAC9BA,EAAMkrV,WACJlrV,EAAM4rV,SACRhB,EAAmB5qV,EAAM4rV,UAAY5rV,EAAMkrV,SAClClrV,EAAMs/M,WACfsrI,EAAmB5qV,EAAMs/M,UAAYt/M,EAAMkrV,iBAEtClrV,EAAMkrV,SACf,GACA,GAEN,CAAE,MAAOv5V,GAET,CAEA,GAA+C,IAA3Cf,OAAOwK,KAAKwvV,GAAoBx1V,OAClC,OAIF6lD,EAAM4wS,WAAa5wS,EAAM4wS,YAAc,CAAC,EACxC5wS,EAAM4wS,WAAWC,OAAS7wS,EAAM4wS,WAAWC,QAAU,GACrD,MAAMA,EAAS7wS,EAAM4wS,WAAWC,OAChCl7V,OAAOg/B,QAAQg7T,GAAoBn3V,SAAQ,EAAE6rN,EAAU4rI,MACrDY,EAAOh1V,KAAK,CACVtC,KAAM,YACNu3V,UAAWzsI,EACX4rI,YACA,GAEN,CAnJMc,CAAe9uI,GAGa,iBAAnB48E,GAA+BA,EAAiB,EAuK/D,SAAwB7+O,EAAO3qB,EAAO27T,GACpC,IAAKhxS,EACH,OAAO,KAGT,MAAMshC,EAAa,IACdthC,KACCA,EAAMixS,aAAe,CACvBA,YAAajxS,EAAMixS,YAAYl2V,KAAIR,IAAK,IACnCA,KACCA,EAAEqJ,MAAQ,CACZA,MAAM,QAAUrJ,EAAEqJ,KAAMyxB,EAAO27T,YAIjChxS,EAAMk3F,MAAQ,CAChBA,MAAM,QAAUl3F,EAAMk3F,KAAM7hH,EAAO27T,OAEjChxS,EAAMqtC,UAAY,CACpBA,UAAU,QAAUrtC,EAAMqtC,SAAUh4D,EAAO27T,OAEzChxS,EAAMmvB,OAAS,CACjBA,OAAO,QAAUnvB,EAAMmvB,MAAO95C,EAAO27T,KAgCzC,OArBIhxS,EAAMqtC,UAAYrtC,EAAMqtC,SAAS5nD,OAAS67C,EAAW+L,WACvD/L,EAAW+L,SAAS5nD,MAAQua,EAAMqtC,SAAS5nD,MAGvCua,EAAMqtC,SAAS5nD,MAAM7hC,OACvB09E,EAAW+L,SAAS5nD,MAAM7hC,MAAO,QAAUo8C,EAAMqtC,SAAS5nD,MAAM7hC,KAAMyxB,EAAO27T,KAK7EhxS,EAAMyvC,QACRnO,EAAWmO,MAAQzvC,EAAMyvC,MAAM10F,KAAI8c,IAC1B,IACFA,KACCA,EAAKjU,MAAQ,CACfA,MAAM,QAAUiU,EAAKjU,KAAMyxB,EAAO27T,SAMnC1vQ,CACT,CA7Na4vQ,CAAejvI,EAAK48E,EAAgBmwD,GAEtC/sI,IAEX,CAsCA,MAAMytI,EAA0B,IAAIlzU,QAsMpC,SAAS20U,EACPzkQ,GAEA,GAAKA,EAKL,OAaF,SACEA,GAEA,OAAOA,aAAgB,KAAyB,mBAATA,CACzC,CAjBM0kQ,CAAsB1kQ,IA8B5B,SAA4BA,GAC1B,OAAO/2F,OAAOwK,KAAKusF,GAAMtwF,MAAK1D,GAAO24V,EAAmB9gV,SAAS7X,IACnE,CA5BM44V,CAAmB5kQ,GAHd,CAAEsxO,eAAgBtxO,GASpBA,CACT,CAQA,MAAM2kQ,EAAqB,CACzB,OACA,QACA,QACA,WACA,OACA,cACA,iBACA,wCC7XFl7V,EAAOC,QAAU,IAA0B,qECA5B,SAASsvE,EAAKvsE,EAAKo4V,GAChC,IAAI9qU,EAAQ9wB,OAAOqZ,OAAO,CAAC,EAAG7V,GAM9B,OALImP,MAAMie,QAAQgrU,IAChBA,EAAO/4V,SAAQ,SAAUE,UAChB+tB,EAAM/tB,EACf,IAEK+tB,CACT,yICHA,SAAS+qU,EAAY36T,EAAQ8H,EAAOtoC,EAAOo7V,GACzC,IAAK9yT,EAAMxkC,OACT,OAAO9D,EAET,IAGIowB,EAHAirU,GAAS,OAAS/yT,GACpB9xB,EAAO6kV,EAAO,GACdC,EAAWD,EAAOh0V,MAAM,GAgB1B,OAXE+oB,EAHGoQ,GAA0B,iBAAThqB,EAEXvE,MAAMie,QAAQsQ,IACf,OAAmBA,IAEnB,OAAc,CAAC,EAAGA,GAJlB,GAQN46T,QAA+Bv7V,IAAVG,GAA2C,IAApBs7V,EAASx3V,cAChDssB,EAAM5Z,GAAM8kV,EAAS,IAE5BlrU,EAAM5Z,GAAQ2kV,EAAY/qU,EAAM5Z,GAAO8kV,EAAUt7V,EAAOo7V,GAEnDhrU,CACT,CACe,SAAS9tB,EAAIk+B,EAAQ8H,EAAOtoC,GACzC,IAAIo7V,EAAoB15V,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAEvF,OAAI4mC,EAAMxkC,QAAUs3V,QAA+Bv7V,IAAVG,KAAwB,OAAIwgC,EAAQ8H,EAAMjhC,MAAM,GAAI,IACpFm5B,EAEF26T,EAAY36T,EAAQ8H,EAAOtoC,EAAOo7V,EAC3C,CAIA,SAASG,EAAYx0U,GACnB,OAAO9U,MAAMie,QAAQnJ,GAAU,GAAK,CAAC,CACvC,CACA,IAAIjd,EAA0B,oBAAZqP,QAA0B7Z,OAAOwK,KAAOqP,QAAQ6N,QAK3D,SAAS/P,IACd,IAAK,IAAIjF,EAAOtQ,UAAUoC,OAAQ03V,EAAU,IAAIvpV,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFspV,EAAQtpV,GAAQxQ,UAAUwQ,GAE5B,IAAIke,EAAQmrU,EAAYC,EAAQ,IA4BhC,OA3BAA,EAAQr5V,SAAQ,SAAUq3C,IACxB,SAASiiT,EAAcjlV,EAAMklV,GAC3B,IAlBY54V,EAkBR64V,EAAU,IAAItjU,IAAIqjU,GAClB17V,GAAQ,OAAIw5C,EAAKhjC,GACjBolV,EAAQ3pV,MAAMie,QAAQlwB,GAC1B,GAAI47V,IArBQ94V,EAqBU9C,EApBF,YAAjB,OAAQ8C,IAA6B,OAARA,GAAgBxD,OAAO0D,eAAeF,KAASxD,OAAOC,YAsBpF,IAAKo8V,EAAQviV,IAAIpZ,GAAQ,CACvB27V,EAAQ/iV,IAAI5Y,GACZ,IAAI67V,GAAc,OAAIzrU,EAAO5Z,GACzBolV,EAEFxrU,EAAQ9tB,EAAI8tB,EAAO5Z,EAAM,IACfqlV,GAAwC,YAAzB,OAAQA,KAEjCzrU,EAAQ9tB,EAAI8tB,EAAO5Z,EAAM+kV,EAAYv7V,KAEvC8J,EAAK9J,GAAOmC,SAAQ,SAAUE,GAC5Bo5V,EAAc,GAAGvwV,QAAO,OAAmBsL,GAAO,CAACnU,IAAOs5V,EAC5D,GACF,OAEAvrU,EAAQ9tB,EAAI8tB,EAAO5Z,EAAMxW,EAE7B,CACAy7V,CAAc,GAChB,IACOrrU,CACT,kEC/EA,SAAS0rU,EAAclvV,GACrB,IAAInF,ECFN,SAAqBmF,EAAG7E,GACtB,GAAI,WAAY,OAAQ6E,KAAOA,EAAG,OAAOA,EACzC,IAAIvM,EAAIuM,EAAExN,OAAOg7F,aACjB,QAAI,IAAW/5F,EAAG,CAChB,IAAIoH,EAAIpH,EAAEH,KAAK0M,EAAG7E,UAClB,GAAI,WAAY,OAAQN,GAAI,OAAOA,EACnC,MAAM,IAAIigD,UAAU,+CACtB,CACA,OAAyBphD,OAAiBsG,EAC5C,CDPUwtF,CAAYxtF,GACpB,MAAO,WAAY,OAAQnF,GAAKA,EAAIA,EAAI,EAC1C,sKEHIs0V,EAAQ,SAAevtU,GACzB,OAAOA,OACT,EACIwtU,EAAW,SAAkBxtU,GAC/B,OAAOA,OACT,EACI6O,EAAO,SAAc/O,GACvB,MAAoB,mBAANA,CAChB,EAIIloB,EAAS,SAAgBoE,GAC3B,MAAoB,iBAANA,CAChB,EACI5E,EAAQqM,MAAMie,QAIdrrB,EAAU,SAAiBmB,GAC7B,OAAOA,GAAKq3B,EAAKr3B,EAAEsC,KACrB,EACIuD,EAAW,SAAkBozD,GAC/B,OAAOA,GAAM5hC,EAAK4hC,EAAGx7D,OAAS45B,EAAK4hC,EAAGhuD,MACxC,EAgBI5K,EAAU,SAASA,EAAQ41V,GAC7B,OAAOA,IAAQ71V,EAAO61V,IAAQ11V,EAAO01V,IAAQ5+T,EAAK4+T,IAAQr2V,EAAMq2V,IAAQA,EAAI53U,MAAMhe,GACpF,EACI8C,EAAU,SAAiB+yV,GAC7B,OAAOA,GAAM7+T,EAAK6+T,EAAGt0V,OAASy1B,EAAK6+T,EAAG/0V,MACxC,EACIg1V,EAAiB,SAAwB7tU,GAC3C,OAAO+O,EAAK/O,IAAMA,EAAE9uB,eAAe,WACrC,EACI+G,EAAS,SAAgB2gB,GAC3B,OAAOlD,QAAQkD,IAA0B,mBAAX9nB,QAAyB8nB,EAAIwH,cAAgBtvB,QAAU8nB,IAAQ9nB,OAAOG,SACtG,EACI68V,EAAY,SAAmBF,GACjC,OAAO/yV,EAAQ+yV,IAAOA,EAAG,KAC3B,oBCxDAp8V,EAAOC,QAAU,IAA0B,kgwvBCC3C,IAAIgxF,EAAgBzxF,OAAOqZ,OAAO,CAAC,EAAG,IAAcu4E,OAChDmrQ,EAAa,GACjB,MAAMC,EAAiB,IAAMD,EAAWr4V,QAAO,CAACosP,EAAQn/J,IAAW3xF,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGy3O,GAASn/J,IAAS,IAAcC,OAC5H,SAASqrQ,EAAoBC,GAClC,GAAIA,EAAW,CACb,MAAMC,EAAcn9V,OAAOqZ,OAAO,CAAC,EAAG6jV,GAGtC,OAFAH,EAAW72V,KAAKi3V,GAChB1rQ,EAAgBurQ,IACT,KACLD,EAAaA,EAAW5lV,QAAOw6E,GAAUA,IAAWwrQ,IACpD1rQ,EAAgBurQ,GAAgB,CAEpC,CACAvrQ,EAAgBzxF,OAAOqZ,OAAO,CAAC,EAAG,IAAcu4E,MAClD,CACO,SAASwrQ,IACd,OAAO3rQ,CACT,oBClBA,IAAI3xF,EAAS,EAAQ,QACjB+5G,EAAa,EAAQ,QACrBe,EAAK,EAAQ,QACbyiP,EAAc,EAAQ,QACtBC,EAAa,EAAQ,OACrBj0R,EAAa,EAAQ,QAqBrBywC,EAAch6G,EAASA,EAAOG,eAAYM,EAC1Cw5G,EAAgBD,EAAcA,EAAYzoE,aAAU9wC,EAoFxDC,EAAOC,QAjEP,SAAoBwnB,EAAQ0hD,EAAO9oE,EAAKo4G,EAASz2C,EAAY02C,EAAW/+E,GACtE,OAAQt5B,GACN,IAzBc,oBA0BZ,GAAKonB,EAAO0yF,YAAchxC,EAAMgxC,YAC3B1yF,EAAO0wE,YAAchvB,EAAMgvB,WAC9B,OAAO,EAET1wE,EAASA,EAAOla,OAChB47D,EAAQA,EAAM57D,OAEhB,IAlCiB,uBAmCf,QAAKka,EAAO0yF,YAAchxC,EAAMgxC,aAC3BzB,EAAU,IAAIW,EAAW5xF,GAAS,IAAI4xF,EAAWlwC,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOixC,GAAI3yF,GAAS0hD,GAEtB,IAxDW,iBAyDT,OAAO1hD,EAAOxb,MAAQk9D,EAAMl9D,MAAQwb,EAAOjG,SAAW2nD,EAAM3nD,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOiG,GAAW0hD,EAAQ,GAE5B,IAjES,eAkEP,IAAI52C,EAAUuqU,EAEhB,IAjES,eAkEP,IAAInkP,EA5EiB,EA4ELF,EAGhB,GAFAlmF,IAAYA,EAAUs2C,GAElBphD,EAAOqR,MAAQqwC,EAAMrwC,OAAS6/E,EAChC,OAAO,EAGT,IAAI0B,EAAU1gF,EAAMzkB,IAAIuS,GACxB,GAAI4yF,EACF,OAAOA,GAAWlxC,EAEpBsvC,GAtFuB,EAyFvB9+E,EAAMn3B,IAAIilB,EAAQ0hD,GAClB,IAAI3oE,EAASq8V,EAAYtqU,EAAQ9K,GAAS8K,EAAQ42C,GAAQsvC,EAASz2C,EAAY02C,EAAW/+E,GAE1F,OADAA,EAAc,OAAElS,GACTjnB,EAET,IAnFY,kBAoFV,GAAI+4G,EACF,OAAOA,EAAcn5G,KAAKqnB,IAAW8xF,EAAcn5G,KAAK+oE,GAG9D,OAAO,CACT,oBC7GAnpE,EAAOC,QAAU,IAA0B,qICO3C,SAAS88V,EAAar7U,GACpB,IAAK,IAAa,OAElB,MAAM,YAAEkP,EAAc,mBAAkB,GAAEosU,EAAK,iBAAkBC,eAAgB96U,IAAiB,QAAWT,IACvG,OAAEE,GAAWF,EAAKI,cAElBC,GAAU,QAAcL,GACxB6B,GAAW,QAAY7B,GACvBw7U,EAAa35U,IAAa7B,EAE1BmgI,EAAS,sBAAsB9/H,EAAU,UAAY,eAAem7U,EAAa,QAAU,SAE3FC,EAAY,CAAC,OAAOH,IAAM,SAASpsU,IAAe,OAAOhP,KAM/D,GAJIO,GACFg7U,EAAUz3V,KAAK,cAAcyc,MAG1B+6U,EAAY,CACf,MAAM,GAAEF,EAAE,YAAEpsU,IAAgB,QAAWrN,GACvC45U,EAAUz3V,KAAK,YAAY6d,EAASzB,cAAcF,UAC9Co7U,GACFG,EAAUz3V,KAAK,YAAYs3V,KAEzBpsU,GACFusU,EAAUz3V,KAAK,qBAAqBkrB,IAExC,CAEA,KAAOoe,IAAI,GAAG6yG,QACZs7M,EAAUj8V,KAAK,UACnB,CAKA,SAASk8V,EAAW17U,GAClB,IAAK,IAAa,OAElB,MAAM,YAAEkP,EAAc,mBAAkB,GAAEosU,EAAK,mBAAqB,QAAWt7U,IACzE,OAAEE,GAAWF,EAAKI,cAIlBohB,EAAM,wBAAwB85T,OAHnB,QAAYt7U,KACGA,EAEwB,QAAU,WAAWkP,cAAwBhP,IACrG,KAAOotB,IAAI9L,EACb,oGC9CIm6T,EAAqB,SAA4BtvV,EAAO8V,GAC1D,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiB+1U,gCCN/B,IAAIj5V,EAAE,mBAAoB9E,QAAQA,OAAO26B,IAAI3L,EAAElqB,EAAE9E,OAAO26B,IAAI,iBAAiB,MAAM7a,EAAEhb,EAAE9E,OAAO26B,IAAI,gBAAgB,MAAM15B,EAAE6D,EAAE9E,OAAO26B,IAAI,kBAAkB,MAAMzL,EAAEpqB,EAAE9E,OAAO26B,IAAI,qBAAqB,MAAMxL,EAAErqB,EAAE9E,OAAO26B,IAAI,kBAAkB,MAAM/a,EAAE9a,EAAE9E,OAAO26B,IAAI,kBAAkB,MAAMtzB,EAAEvC,EAAE9E,OAAO26B,IAAI,iBAAiB,MAAM5L,EAAEjqB,EAAE9E,OAAO26B,IAAI,oBAAoB,MAAMjb,EAAE5a,EAAE9E,OAAO26B,IAAI,yBAAyB,MAAM7L,EAAEhqB,EAAE9E,OAAO26B,IAAI,qBAAqB,MAAM/zB,EAAE9B,EAAE9E,OAAO26B,IAAI,kBAAkB,MAAMo+Q,EAAEj0S,EACpf9E,OAAO26B,IAAI,uBAAuB,MAAMhyB,EAAE7D,EAAE9E,OAAO26B,IAAI,cAAc,MAAMntB,EAAE1I,EAAE9E,OAAO26B,IAAI,cAAc,MAAMvL,EAAEtqB,EAAE9E,OAAO26B,IAAI,eAAe,MAAM4K,EAAEzgC,EAAE9E,OAAO26B,IAAI,qBAAqB,MAAMyD,EAAEt5B,EAAE9E,OAAO26B,IAAI,mBAAmB,MAAMza,EAAEpb,EAAE9E,OAAO26B,IAAI,eAAe,MAClQ,SAASg1D,EAAE9qF,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIoqB,EAAEpqB,EAAE4gB,SAAS,OAAOwJ,GAAG,KAAKD,EAAE,OAAOnqB,EAAEA,EAAEf,MAAQ,KAAKirB,EAAE,KAAKrP,EAAE,KAAKze,EAAE,KAAKkuB,EAAE,KAAKD,EAAE,KAAKtoB,EAAE,OAAO/B,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE4gB,UAAY,KAAKpe,EAAE,KAAKynB,EAAE,KAAKthB,EAAE,KAAK7E,EAAE,KAAKiX,EAAE,OAAO/a,EAAE,QAAQ,OAAOoqB,GAAG,KAAKnP,EAAE,OAAOmP,EAAE,CAAC,CAAC,SAAS5kB,EAAExF,GAAG,OAAO8qF,EAAE9qF,KAAK6a,CAAC,CAAC/e,EAAQq9V,UAAUjvU,EAAEpuB,EAAQs9V,eAAev+U,EAAE/e,EAAQu9V,gBAAgB72V,EAAE1G,EAAQw9V,gBAAgBv+U,EAAEjf,EAAQggI,QAAQ3xG,EAAEruB,EAAQ+kB,WAAWoJ,EAAEnuB,EAAQ20J,SAASr0J,EAAEN,EAAQy9V,KAAK5wV,EAAE7M,EAAQywV,KAAKzoV,EAAEhI,EAAQ09V,OAAOv+U,EAChfnf,EAAQ29V,SAASnvU,EAAExuB,EAAQ49V,WAAWrvU,EAAEvuB,EAAQ69V,SAAS53V,EAAEjG,EAAQ89V,YAAY,SAAS55V,GAAG,OAAOwF,EAAExF,IAAI8qF,EAAE9qF,KAAKkqB,CAAC,EAAEpuB,EAAQ+9V,iBAAiBr0V,EAAE1J,EAAQg+V,kBAAkB,SAAS95V,GAAG,OAAO8qF,EAAE9qF,KAAKwC,CAAC,EAAE1G,EAAQi+V,kBAAkB,SAAS/5V,GAAG,OAAO8qF,EAAE9qF,KAAK+a,CAAC,EAAEjf,EAAQ88S,UAAU,SAAS54S,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE4gB,WAAWuJ,CAAC,EAAEruB,EAAQk+V,aAAa,SAASh6V,GAAG,OAAO8qF,EAAE9qF,KAAKiqB,CAAC,EAAEnuB,EAAQm6F,WAAW,SAASj2F,GAAG,OAAO8qF,EAAE9qF,KAAK5D,CAAC,EAAEN,EAAQm+V,OAAO,SAASj6V,GAAG,OAAO8qF,EAAE9qF,KAAK2I,CAAC,EAC1d7M,EAAQ4kB,OAAO,SAAS1gB,GAAG,OAAO8qF,EAAE9qF,KAAK8D,CAAC,EAAEhI,EAAQo+V,SAAS,SAASl6V,GAAG,OAAO8qF,EAAE9qF,KAAKib,CAAC,EAAEnf,EAAQq+V,WAAW,SAASn6V,GAAG,OAAO8qF,EAAE9qF,KAAKsqB,CAAC,EAAExuB,EAAQs+V,aAAa,SAASp6V,GAAG,OAAO8qF,EAAE9qF,KAAKqqB,CAAC,EAAEvuB,EAAQu+V,WAAW,SAASr6V,GAAG,OAAO8qF,EAAE9qF,KAAK+B,CAAC,EAC1OjG,EAAQw+V,mBAAmB,SAASt6V,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI5D,GAAG4D,IAAI6a,GAAG7a,IAAIsqB,GAAGtqB,IAAIqqB,GAAGrqB,IAAI+B,GAAG/B,IAAIk0S,GAAG,iBAAkBl0S,GAAG,OAAOA,IAAIA,EAAE4gB,WAAWjY,GAAG3I,EAAE4gB,WAAW9c,GAAG9D,EAAE4gB,WAAW7F,GAAG/a,EAAE4gB,WAAWpe,GAAGxC,EAAE4gB,WAAWqJ,GAAGjqB,EAAE4gB,WAAW8f,GAAG1gC,EAAE4gB,WAAW2Y,GAAGv5B,EAAE4gB,WAAWvF,GAAGrb,EAAE4gB,WAAW2J,EAAE,EAAEzuB,EAAQy+V,OAAOzvQ,kDCN5T,MAAMyvD,EAA4B,CACvCigN,EACAC,KAEA,MAAMC,EAASr4V,OAAOm4V,EAAQttV,OAAO0qB,OAAOmK,cACtC44T,EAASt4V,OAAOo4V,EAAQvtV,OAAO0qB,OAAOmK,cAC5C,OAAI24T,EAASC,GACH,EAEND,EAASC,EACJ,EAEF,CAAC,kDCZuB,iBAAkB,CAACnsV,EAAU,CAAC,KAC7D,MAAM+H,EAAO/H,EAAQ+H,KACfqkB,EAASpsB,EAAQosB,QAAU,UAE3B87F,EAAY,sBAAgD96H,IAAtB,KAAW47C,OAEjDotB,EAAWp2D,EAAQo2D,UA+C3B,UAA0B,UACxB8xD,EAAS,KACTngH,EAAI,OACJqkB,IAIA,OAAQnwB,IACN,IAAKA,EAAMs/M,SACT,OAAOt/M,EAIT,MAAMmwV,EACJ,eAAettU,KAAK7iB,EAAMs/M,WAEzBt/M,EAAMs/M,SAAS9zM,SAAS,QAAUxL,EAAMs/M,SAAS9zM,SAAS,KAGvD4kV,EAAkB,MAAMvtU,KAAK7iB,EAAMs/M,UAEzC,GAAIrzF,GACF,GAAIngH,EAAM,CACR,MAAMukV,EAAcrwV,EAAMs/M,SACQ,IAA9B+wI,EAAYj9T,QAAQtnB,KACtB9L,EAAMs/M,SAAW+wI,EAAYnjU,QAAQphB,EAAMqkB,GAE/C,OAEA,GAAIggU,GAAkBC,EAAiB,CACrC,MAAM9wI,EAAW6wI,EACbnwV,EAAMs/M,SACHpyL,QAAQ,aAAc,IACtBA,QAAQ,MAAO,KAClBltB,EAAMs/M,SACJt6L,EAAOlZ,GAAO,QAASA,EAAMwzM,IAAY,QAASA,GACxDt/M,EAAMs/M,SAAW,GAAGnvL,IAASnL,GAC/B,CAGF,OAAOhlB,CAAK,CAEhB,CAzFuCswV,CAAiB,CAAErkO,YAAWngH,OAAMqkB,WA8BzE,MAAO,CACL9yB,KA1CqB,gBA2CrB,YAAAqqF,CAAaulB,GACX,IAAIsjP,EAAiBtjP,EAMrB,OAJIA,EAAcC,WAAa3pG,MAAMie,QAAQyrF,EAAcC,UAAU17F,UACnE++U,EAjCN,SAAiCt1S,GAC/B,IACE,MAAO,IACFA,EACHiyD,UAAW,IACNjyD,EAAMiyD,UAGT17F,OAAQypC,EAAMiyD,UAAU17F,OAAOxb,KAAI1E,IAAS,UACvCA,KACCA,EAAMwnS,YAAc,CAAEA,YAURA,EAVuCxnS,EAAMwnS,WAWhE,IACFA,EACHxpI,OAAQwpI,GAAcA,EAAWxpI,QAAUwpI,EAAWxpI,OAAOt5J,KAAI4pB,GAAKu6C,EAASv6C,SAHnF,IAA4Bk5Q,CATlB,KAGR,CAAE,MAAO03D,GACP,OAAOv1S,CACT,CACF,CAgBuBw1S,CAAwBF,IAGpCA,CACT,EACD,mGCrDI,MAAMG,EAAkB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MACzDC,EAAmB5nV,IAAS,CAChC+0F,GAAI,eAAe/0F,EAAMyyT,iBACzBz9N,GAAI,eAAeh1F,EAAM0yT,cACzBz9N,GAAI,eAAej1F,EAAM4yT,cACzB19N,GAAI,eAAel1F,EAAM+yT,cACzB59N,GAAI,eAAen1F,EAAMkzT,cACzB99N,IAAK,eAAep1F,EAAMqzT,iBAMtBw0B,EAAsB7nV,IAC1B,MAAM8nV,EAAiB9nV,EACjB+nV,EAAiB,GAAGt0V,OAAOk0V,GAAiB1uR,UAoBlD,OAnBA8uR,EAAer9V,SAAQ,CAACkrG,EAAY5lG,KAClC,MAAMg4V,EAAkBpyP,EAAWh2D,cAC7BqoT,EAAY,SAASD,OACrBnpI,EAAS,SAASmpI,IACxB,KAAMF,EAAeG,IAAcH,EAAejpI,IAChD,MAAM,IAAI70N,MAAM,GAAGi+V,MAAcppI,eAAoBipI,EAAeG,OAAeH,EAAejpI,OAEpG,GAAI7uN,EAAI+3V,EAAe17V,OAAS,EAAG,CACjC,MAAM67V,EAAY,SAASF,OAC3B,KAAMF,EAAejpI,IAAWipI,EAAeI,IAC7C,MAAM,IAAIl+V,MAAM,GAAG60N,MAAWqpI,eAAuBJ,EAAejpI,OAAYipI,EAAeI,OAEjG,MACMC,EAAgB,SADSJ,EAAe/3V,EAAI,GAAG4vC,mBAErD,KAAMkoT,EAAeI,IAAcJ,EAAeK,IAChD,MAAM,IAAIn+V,MAAM,GAAGk+V,MAAcC,eAA2BL,EAAeI,OAAeJ,EAAeK,MAE7G,KAEKnoV,CAAK,EAEC,SAASooV,IACtB,MAAO,CAAEpoV,IAAS,UACZqoV,EAAgBT,EAAiBC,EAAoB7nV,IAE3D,OAAO,WAAc,KACnB,MAAMsoV,EAAc,IAAIj+V,IACxB,IAAIk+V,GAAU,EACV9+D,EAAU,CAAC,EACf,MAAO,CACL++D,cAAe,CAAC,EAChBr9V,SAASs9V,IACPh/D,EAAUg/D,EACVH,EAAY59V,SAAQk7B,GAAQA,EAAK6jQ,KAC1B6+D,EAAYnnU,MAAQ,GAE7B,SAAAp2B,CAAU66B,GAKR,OAJK0iU,EAAYnnU,MAAMj1B,KAAKuvB,WAC5B8sU,GAAU,EACVD,EAAYz9V,IAAI09V,EAAQ3iU,GACxBA,EAAK6jQ,GACE8+D,CACT,EACA,WAAAt8V,CAAYy8V,GACVJ,EAAYp9V,OAAOw9V,GACdJ,EAAYnnU,MAAMj1B,KAAKy8V,YAC9B,EACA,UAAAA,GACE9gW,OAAOwK,KAAKg2V,GAAe39V,SAAQm0N,IACjC,MAAM+pI,EAAkBP,EAAcxpI,GAChC1oF,EAAUjqI,KAAKs8V,cAAcI,GACnCzyN,SAAkDA,EAAQ7/B,IAAII,eAAey/B,aAAyC,EAASA,EAAQxrI,SAAS,IAElJ29V,EAAYpxV,OACd,EACA,QAAAukB,GACE5zB,OAAOwK,KAAKg2V,GAAe39V,SAAQm0N,IACjC,MAAM+pI,EAAkBP,EAAcxpI,GAChCl0N,EAAW0E,IACf,IAAI,QACFq8B,GACEr8B,EACJnD,KAAKf,SAAStD,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAGuoR,GAAU,CACtD,CAAC5qE,GAASnzL,IACT,EAEC4qE,EAAMtyD,OAAOwyD,WAAWoyP,GAC9BtyP,EAAIG,YAAY9rG,GAChBuB,KAAKs8V,cAAcI,GAAmB,CACpCtyP,MACA3rG,YAEFA,EAAS2rG,EAAI,GAEjB,EACA+xP,gBACD,GACA,CAACroV,GACN,CACO,MAAM6oV,EAAc,CAACp/D,EAASq/D,KACnC,GAAIA,GAAsC,iBAAhBA,EACxB,IAAK,IAAI94V,EAAI,EAAGA,EAAI23V,EAAgBt7V,OAAQ2D,IAAK,CAC/C,MAAM4lG,EAAa+xP,EAAgB33V,GACnC,GAAIy5R,EAAQ7zL,SAA2CxtG,IAA5B0gW,EAAYlzP,GACrC,OAAOkzP,EAAYlzP,EAEvB,CACF,oBCzGF,IAAIptF,EAAW,EAAQ,QACnBugV,EAAY,EAAQ,QACpBC,EAAW,EAAQ,OAiFvB3gW,EAAOC,QA9DP,SAAqB6F,EAAOqjE,EAAOsvC,EAASz2C,EAAY02C,EAAW/+E,GACjE,IAAIg/E,EAjBqB,EAiBTF,EACZG,EAAY9yG,EAAM9B,OAClB60G,EAAY1vC,EAAMnlE,OAEtB,GAAI40G,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAan/E,EAAMzkB,IAAIpP,GACvBizG,EAAap/E,EAAMzkB,IAAIi0D,GAC3B,GAAI2vC,GAAcC,EAChB,OAAOD,GAAc3vC,GAAS4vC,GAAcjzG,EAE9C,IAAIwR,GAAS,EACT9W,GAAS,EACTw4G,EA/BuB,EA+BfP,EAAoC,IAAIt4F,OAAWpgB,EAM/D,IAJA45B,EAAMn3B,IAAIsD,EAAOqjE,GACjBxvC,EAAMn3B,IAAI2mE,EAAOrjE,KAGRwR,EAAQshG,GAAW,CAC1B,IAAIK,EAAWnzG,EAAMwR,GACjB4hG,EAAW/vC,EAAM7xD,GAErB,GAAI0qD,EACF,IAAIm3C,EAAWR,EACX32C,EAAWk3C,EAAUD,EAAU3hG,EAAO6xD,EAAOrjE,EAAO6zB,GACpDqoC,EAAWi3C,EAAUC,EAAU5hG,EAAOxR,EAAOqjE,EAAOxvC,GAE1D,QAAiB55B,IAAbo5G,EAAwB,CAC1B,GAAIA,EACF,SAEF34G,GAAS,EACT,KACF,CAEA,GAAIw4G,GACF,IAAK0nP,EAAUv3R,GAAO,SAAS+vC,EAAUE,GACnC,IAAKunP,EAAS3nP,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUT,EAASz2C,EAAYroC,IAC/E,OAAOq/E,EAAKtzG,KAAK0zG,EAErB,IAAI,CACN54G,GAAS,EACT,KACF,OACK,GACDy4G,IAAaC,IACXR,EAAUO,EAAUC,EAAUT,EAASz2C,EAAYroC,GACpD,CACLn5B,GAAS,EACT,KACF,CACF,CAGA,OAFAm5B,EAAc,OAAE7zB,GAChB6zB,EAAc,OAAEwvC,GACT3oE,CACT,oBCjFA,IAAI45G,EAAK,EAAQ,QAoBjBp6G,EAAOC,QAVP,SAAsB6F,EAAOvD,GAE3B,IADA,IAAIyB,EAAS8B,EAAM9B,OACZA,KACL,GAAIo2G,EAAGt0G,EAAM9B,GAAQ,GAAIzB,GACvB,OAAOyB,EAGX,OAAQ,CACV,iCCjBA,IAAI48V,EAAW,EAAQ,QAIvB5gW,EAAOC,QAAU,SAAU+C,GACzB,OAAO49V,EAAS59V,EAAIgB,OACtB,kDCLA,QADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kUAAsU,KAAQ,UAAW,MAAS,qCCQvf,SAAW8Y,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,uFAAuF/b,MAC3F,KAEJmc,YACI,iEAAiEnc,MAC7D,KAERoc,kBAAkB,EAClBC,SAAU,sDAAsDrc,MAAM,KACtEsc,cAAe,qCAAqCtc,MAAM,KAC1Duc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EACpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,0BAEVE,SAAU,CACNC,QAAS,qBACTE,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNpU,EAAG,oBACHqU,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,gBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOD,GAAqB,IAAXA,EAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAEnD,GAKP,CA1EyCM,CAAQ,EAAQ,8FCF1D,MAcA,GAdiC,IAAA0H,aAAW,CAAC7Z,EAAO8V,KAClD,MAAM,UACJrI,EAAS,MACTq/B,EAAK,SACLp/B,EAAQ,UACRy6C,GACEnoD,EACE8yV,EAAiB,IAAW,GAAG3qS,SAAkB16C,GACvD,OAAoB,gBAAoB,OAAQ,CAC9CqI,IAAKA,EACLrI,UAAWqlV,EACXhmT,MAAOA,GACNp/B,EAAS,4ICRd,MAAMqlV,EAAmB,CACvBjzT,IAAI,EACJ2lM,SAAS,EACTutH,aAAa,EACbhgN,MAAM,GAEFigN,EAA2B,CAAC,UAAW,OAAQ,UAAW,SAAU,eAAgB,OACpFC,EAAwB,CAAC,KAAM,WAAY,SAoBjD,SAASC,EACPntS,EACAphD,EAAU,CAAC,GAEX,MAAM0e,EAAS0iC,EAAI1iC,QAAU0iC,EAAI1iC,OAAOkmB,cAExC,IAAI7gC,EAAO,GACPuQ,EAAS,MAGTtU,EAAQwuV,aAAeptS,EAAIH,OAC7Bl9C,EAAO/D,EAAQwuV,aAAe,GAAGptS,EAAIu+D,SAAW,KAAKv+D,EAAIH,OAASG,EAAIH,MAAMl9C,OAC5EuQ,EAAS,UAIF8sC,EAAIqtS,aAAertS,EAAI1a,OAC9B3iC,GAAO,OAAyBq9C,EAAIqtS,aAAertS,EAAI1a,KAAO,KAGhE,IAAIptC,EAAO,GAWX,OAVI0G,EAAQ0e,QAAUA,IACpBplB,GAAQolB,GAEN1e,EAAQ0e,QAAU1e,EAAQ+D,OAC5BzK,GAAQ,KAEN0G,EAAQ+D,MAAQA,IAClBzK,GAAQyK,GAGH,CAACzK,EAAMgb,EAChB,CAiKA,SAASo6U,EACPx3S,EACAkK,EACAphD,GAEA,MAAM2uV,EAAU,IACXR,KACCnuV,GAAWA,EAAQ2uV,SAGzB,GAAIA,EAAQ9tH,QAAS,CACnB,MAAM+tH,EAAiBpvV,MAAMie,QAAQkxU,EAAQ9tH,SAAW,IAAI8tH,EAAQ9tH,SAAW,IAAIwtH,GAC/EM,EAAQzzT,IACV0zT,EAAe77V,KAAK,MAGtB,MAAM87V,EAnIV,SACEztS,EACAphD,EAEC,CAAC,GAEF,MAAM,QAAE2uV,EAAUN,GAA6BruV,EACzC8uV,EAAc,CAAC,EAIfjoQ,EAAWzlC,EAAIylC,SAAW,CAAC,EAK3BnoE,EAAS0iC,EAAI1iC,OAQbwhB,EAAO2mD,EAAQ3mD,MAAQkhB,EAAIpmB,UAAYomB,EAAIlhB,MAAQ,YAInDq0L,EAA4B,UAAjBnzK,EAAImzK,UAAyBnzK,EAAIkuR,QAAUluR,EAAIkuR,OAAO1rL,UAAa,QAAU,OAIxF6qM,EAAcrtS,EAAIqtS,aAAertS,EAAI1a,KAAO,GAE5CqoT,EAAcN,EAAY3hU,WAAWynM,GAAYk6H,EAAc,GAAGl6H,OAAcr0L,IAAOuuT,IAqE7F,OApEAE,EAAQj/V,SAAQE,IACd,OAAQA,GACN,IAAK,UACHk/V,EAAYjoQ,QAAUA,EAGjB8nQ,EAAQlnV,SAAS,mBACZqnV,EAAoB,QAAEnhD,OAI3BghD,EAAQlnV,SAAS,OACpB,IAAc/X,SAAQs/V,WAEZF,EAAoB,QAAEE,EAAa,IAI/C,MAEF,IAAK,SACHF,EAAYpwU,OAASA,EACrB,MAEF,IAAK,MACHowU,EAAYpoT,IAAMqoT,EAClB,MAEF,IAAK,UAIHD,EAAY50F,QAGV94M,EAAI84M,SAAYrzK,EAAQ8mN,SAAU,OAAY9mN,EAAQ8mN,SAAY,CAAC,EACrE,MAEF,IAAK,eAIHmhD,EAAYG,aAgGpB,SAA4B7tS,GAI1B,IAAIqtS,EAAcrtS,EAAIqtS,aAAertS,EAAI1a,KAAO,GAEhD,GAAK+nT,EAAL,CAMIA,EAAY3hU,WAAW,OACzB2hU,EAAc,wBAAwBA,KAGxC,IACE,MAAMS,EAAc9tS,EAAIte,OAAS,IAAIjD,IAAI4uT,GAAa7iS,OAAOh3D,MAAM,GACnE,OAAOs6V,EAAY79V,OAAS69V,OAAc9hW,CAC5C,CAAE,MAAO6rI,GACP,MACF,CAbA,CAcF,CAtHmCk2N,CAAmB/tS,GAC9C,MAEF,IAAK,OACH,GAAe,QAAX1iC,GAA+B,SAAXA,EACtB,WAQetxB,IAAbg0D,EAAI/Z,OACNynT,EAAYh0V,MAAO,QAASsmD,EAAI/Z,MAAQ+Z,EAAI/Z,KAAOpX,KAAKL,WAAU,QAAUwxB,EAAI/Z,QAElF,MAEF,SACM,CAAC,GAAEt6C,eAAeU,KAAK2zD,EAAKxxD,KAC9Bk/V,EAAYl/V,GAAO,EAAOA,IAGhC,IAGKk/V,CACT,CA2BiCM,CAAmBhuS,EAAK,CAAEutS,QAASC,IAEhE13S,EAAM2pL,QAAU,IACX3pL,EAAM2pL,WACNguH,EAEP,CAEA,GAAIF,EAAQvgN,KAAM,CAChB,MAAMihN,EAAgBjuS,EAAIgtF,OAAQ,QAAchtF,EAAIgtF,MAvKxD,SACEA,EAGA/2I,GAEA,MAAMg4V,EAAgB,CAAC,EASvB,OARmB7vV,MAAMie,QAAQpmB,GAAQA,EAAOi3V,GAErC5+V,SAAQE,IACbw+I,GAAQx+I,KAAOw+I,IACjBihN,EAAcz/V,GAAOw+I,EAAKx+I,GAC5B,IAGKy/V,CACT,CAuJgEC,CAAgBluS,EAAIgtF,KAAMugN,EAAQvgN,MAAQ,CAAC,EAEnGvhJ,OAAOwK,KAAKg4V,GAAeh+V,SAC7B6lD,EAAMk3F,KAAO,IACRl3F,EAAMk3F,QACNihN,GAGT,CAMA,GAAIV,EAAQzzT,GAAI,CACd,MAAMA,EAAMkmB,EAAIylC,UAAW,OAAmBzlC,EAAIylC,UAAazlC,EAAIlmB,IAAOkmB,EAAIkuR,QAAUluR,EAAIkuR,OAAOigB,cAC/Fr0T,IACFgc,EAAMk3F,KAAO,IACRl3F,EAAMk3F,KACTijL,WAAYn2R,GAGlB,CAQA,OANIyzT,EAAQP,cAAgBl3S,EAAMk3S,aAA8B,gBAAfl3S,EAAMzmD,OAGrDymD,EAAMk3S,YAnNV,SAA4BhtS,EAAK3wD,GAC/B,OAAQA,GACN,IAAK,OACH,OAAO89V,EAA0BntS,EAAK,CAAEr9C,MAAM,IAAQ,GAExD,IAAK,UACH,OAAQq9C,EAAIH,OAASG,EAAIH,MAAMj6B,OAASo6B,EAAIH,MAAMj6B,MAAM,IAAMo6B,EAAIH,MAAMj6B,MAAM,GAAG1tB,MAAS,cAG5F,QAGE,OAAOi1V,EAA0BntS,EAAK,CAAEr9C,MAAM,EAAM2a,QAAQ,EAAM8vU,YAD9CptS,EAAIouS,oBAAsBpuS,EAAIouS,yBAAsBpiW,IACS,GAGvF,CAoMwBqiW,CAAmBruS,EAAKutS,EAAQP,cAG/Cl3S,CACT,oBC5RA7pD,EAAOC,QAAU,IAA0B,mHCEpC,MAAMoiW,EAAS,IAAI,KAAU,YAAa,CAC/C,KAAM,CACJj9S,QAAS,GAEX,OAAQ,CACNA,QAAS,KAGAk9S,EAAU,IAAI,KAAU,aAAc,CACjD,KAAM,CACJl9S,QAAS,GAEX,OAAQ,CACNA,QAAS,KAGAm9S,EAAiB,SAAU5qV,GACtC,IAAI6qV,EAAY5gW,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,IAAmBA,UAAU,GAC/E,MAAM,OACJq8C,GACEtmC,EACEszR,EAAY,GAAGhtP,SACfmtP,EAAkBo3D,EAAY,IAAM,GAC1C,MAAO,EAAC,OAAWv3D,EAAWo3D,EAAQC,EAAS3qV,EAAMysC,kBAAmBo+S,GAAY,CAClF,CAAC,aACKp3D,IAAkBH,qBAClBG,IAAkBH,oBAClB,CACJ7lP,QAAS,EACTq9S,wBAAyB,UAE3B,CAAC,GAAGr3D,IAAkBH,WAAoB,CACxCw3D,wBAAyB,WAG/B,iCC7BA,IAAgCz/V,EAPhCxD,OAAO8lB,eAAerlB,EAAS,aAAc,CAC3CC,OAAO,IAETD,EAAA,aAAkB,EAMlB,MAAMulB,GAF0BxiB,EAFa,EAAQ,UAEAA,EAAIijB,WAAajjB,EAAM,CAAE,QAAWA,GAGzF/C,EAAA,QAAkBulB,EAClBxlB,EAAOC,QAAUulB,yFCTjB,SAASk9U,EAAa51V,GACpB,IAAI7E,GAAI,SACR,OAAO,WACL,IAAI1H,EACFyH,GAAI,OAAe8E,GACrB,GAAI7E,EAAG,CACL,IAAIyC,GAAI,OAAe7G,MAAM+qB,YAC7BruB,EAAI8Y,QAAQ6iU,UAAUl0U,EAAGpG,UAAW8I,EACtC,MAAOnK,EAAIyH,EAAEgD,MAAMnH,KAAMjC,WACzB,OAAO,OAA0BiC,KAAMtD,EACzC,CACF,oBCdAP,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,gQCUpC,MAAM0iW,EAAW,sBACtBlnV,EAAQ,UACRD,EAAS,MACTurI,GAEa,EADV67M,oXAAAA,CAAAA,EAAAA,CAHHnnV,WACAD,YACAurI,UAGA,OACE,SAAC87M,EAAAA,2UAAKA,CAAAA,CACJrnV,WAAWI,EAAAA,EAAAA,GAAK,WAAYJ,EAAW,CAAE,sBAAuBurI,KAC5D67M,cAAAA,UAEHnnV,uVAMPknV,EAAQG,QAAUD,EAAAA,EAAMC,6FCxBpBjmV,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,koCAAmoC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,+QAA+Q,eAAiB,CAAC,+0DAA+0D,WAAa,MAE94G,0DCLA,QADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mWAAuW,KAAQ,WAAY,MAAS,8BCDliB/Q,EAAOC,QAAU,IAA0B,+DCSnC,SAAW6c,GAAU,aAIzB,IAAIimV,EAAe,iDAAiD9hW,MAAM,KA4B1E,SAASg6G,EAAUr7F,EAAQs7F,EAAe50G,EAAQ60G,GAC9C,IAAI6nP,EAiBR,SAAsBpjV,GAClB,IAAIqjV,EAAUniW,KAAK6lD,MAAO/mC,EAAS,IAAQ,KACvCsjV,EAAMpiW,KAAK6lD,MAAO/mC,EAAS,IAAO,IAClCujV,EAAMvjV,EAAS,GACfs9K,EAAO,GAUX,OATI+lK,EAAU,IACV/lK,GAAQ6lK,EAAaE,GAAW,SAEhCC,EAAM,IACNhmK,IAAkB,KAATA,EAAc,IAAM,IAAM6lK,EAAaG,GAAO,OAEvDC,EAAM,IACNjmK,IAAkB,KAATA,EAAc,IAAM,IAAM6lK,EAAaI,IAEpC,KAATjmK,EAAc,OAASA,CAClC,CAhCqBkmK,CAAaxjV,GAC9B,OAAQtZ,GACJ,IAAK,KACD,OAAO08V,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OACxB,IAAK,KACD,OAAOA,EAAa,OAEhC,CAmBUlmV,EAAOC,aAAa,MAAO,CACjCC,OAAQ,kMAAkM/b,MACtM,KAEJmc,YACI,0HAA0Hnc,MACtH,KAERoc,kBAAkB,EAClBC,SAAU,2DAA2Drc,MACjE,KAEJsc,cACI,2DAA2Dtc,MAAM,KACrEuc,YACI,2DAA2Dvc,MAAM,KACrEyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,cACTE,QAAS,cACTC,SAAU,MACVC,QAAS,cACTC,SAAU,MACVC,SAAU,KAEdC,aAAc,CACVC,OA9FR,SAAyBiB,GACrB,IAAIwhB,EAAOxhB,EASX,OAP+B,IAA3BA,EAAOkiB,QAAQ,OACTV,EAAK/5B,MAAM,GAAI,GAAK,OACO,IAA3BuY,EAAOkiB,QAAQ,OACbV,EAAK/5B,MAAM,GAAI,GAAK,OACO,IAA3BuY,EAAOkiB,QAAQ,OACbV,EAAK/5B,MAAM,GAAI,GAAK,MACpB+5B,EAAO,MAEzB,EAoFQxiB,KAlFR,SAAuBgB,GACnB,IAAIwhB,EAAOxhB,EASX,OAP+B,IAA3BA,EAAOkiB,QAAQ,OACTV,EAAK/5B,MAAM,GAAI,GAAK,OACO,IAA3BuY,EAAOkiB,QAAQ,OACbV,EAAK/5B,MAAM,GAAI,GAAK,OACO,IAA3BuY,EAAOkiB,QAAQ,OACbV,EAAK/5B,MAAM,GAAI,GAAK,MACpB+5B,EAAO,MAEzB,EAwEQ52B,EAAG,UACHqU,GAAIk8F,EACJj8F,EAAG,UACHC,GAAIg8F,EACJ/7F,EAAG,UACHC,GAAI87F,EACJ77F,EAAG,UACHC,GAAI47F,EACJ37F,EAAG,UACHC,GAAI07F,EACJz7F,EAAG,UACHC,GAAIw7F,GAERv7F,uBAAwB,YACxBC,QAAS,MACTI,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhIyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,ktBCgB3C,IAAIiiI,EAAgB,SAAS9iH,EAAGhb,GAI9B,OAHA89H,EAAgB1iI,OAAO6wC,gBAClB,CAAE3pB,UAAW,cAAgBvU,OAAS,SAAUiN,EAAGhb,GAAKgb,EAAEsH,UAAYtiB,CAAG,GAC1E,SAAUgb,EAAGhb,GAAK,IAAK,IAAI8B,KAAK9B,EAAO5E,OAAOC,UAAUC,eAAeU,KAAKgE,EAAG8B,KAAIkZ,EAAElZ,GAAK9B,EAAE8B,GAAI,EAC7Fg8H,EAAc9iH,EAAGhb,EAC1B,EAEO,SAAS+9H,EAAU/iH,EAAGhb,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIwjD,UAAU,uBAAyBphD,OAAOpC,GAAK,iCAE7D,SAASotD,IAAO3tD,KAAK+qB,YAAcxP,CAAG,CADtC8iH,EAAc9iH,EAAGhb,GAEjBgb,EAAE3f,UAAkB,OAAN2E,EAAa5E,OAAO+Q,OAAOnM,IAAMotD,EAAG/xD,UAAY2E,EAAE3E,UAAW,IAAI+xD,EACjF,CAEO,IAAI6xS,EAAW,WAQpB,OAPAA,EAAW7jW,OAAOqZ,QAAU,SAAkB/L,GAC1C,IAAK,IAAIpC,EAAG/C,EAAI,EAAGymB,EAAIxsB,UAAUoC,OAAQ2D,EAAIymB,EAAGzmB,IAE5C,IAAK,IAAIzB,KADTwE,EAAI9I,UAAU+F,GACOnI,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,KAAI4G,EAAE5G,GAAKwE,EAAExE,IAE9E,OAAO4G,CACX,EACOu2V,EAASr4V,MAAMnH,KAAMjC,UAC9B,EAEO,SAAS2/F,EAAO72F,EAAGnK,GACxB,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAC9E4G,EAAE5G,GAAKwE,EAAExE,IACb,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBACtB,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAC3DpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MACvEmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IAF4B,CAItD,OAAOmF,CACT,CAEO,SAASw2V,EAAWC,EAAYv8U,EAAQzkB,EAAKskB,GAClD,IAA2HzH,EAAvHkP,EAAI1sB,UAAUoC,OAAQiE,EAAIqmB,EAAI,EAAItH,EAAkB,OAATH,EAAgBA,EAAOrnB,OAAOonB,yBAAyBI,EAAQzkB,GAAOskB,EACrH,GAAuB,iBAAZxN,SAAoD,mBAArBA,QAAQmqV,SAAyBv7V,EAAIoR,QAAQmqV,SAASD,EAAYv8U,EAAQzkB,EAAKskB,QACpH,IAAK,IAAIlf,EAAI47V,EAAWv/V,OAAS,EAAG2D,GAAK,EAAGA,KAASyX,EAAImkV,EAAW57V,MAAIM,GAAKqmB,EAAI,EAAIlP,EAAEnX,GAAKqmB,EAAI,EAAIlP,EAAE4H,EAAQzkB,EAAK0F,GAAKmX,EAAE4H,EAAQzkB,KAAS0F,GAChJ,OAAOqmB,EAAI,GAAKrmB,GAAKzI,OAAO8lB,eAAe0B,EAAQzkB,EAAK0F,GAAIA,CAC9D,CAEO,SAASw7V,EAAQC,EAAYC,GAClC,OAAO,SAAU38U,EAAQzkB,GAAOohW,EAAU38U,EAAQzkB,EAAKmhW,EAAa,CACtE,CAEO,SAASE,EAAav1N,EAAMw1N,EAAcN,EAAYO,EAAWC,EAAcC,GACpF,SAASC,EAAOz1U,GAAK,QAAU,IAANA,GAA6B,mBAANA,EAAkB,MAAM,IAAIo5B,UAAU,qBAAsB,OAAOp5B,CAAG,CAKtH,IAJA,IAGIoW,EAHAq6I,EAAO6kL,EAAU7kL,KAAM18K,EAAe,WAAT08K,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrFj4J,GAAU68U,GAAgBx1N,EAAOy1N,EAAkB,OAAIz1N,EAAOA,EAAK5uI,UAAY,KAC/E62T,EAAautC,IAAiB78U,EAASxnB,OAAOonB,yBAAyBI,EAAQ88U,EAAU73V,MAAQ,CAAC,GAC/FL,GAAO,EACLjE,EAAI47V,EAAWv/V,OAAS,EAAG2D,GAAK,EAAGA,IAAK,CAC7C,IAAImD,EAAU,CAAC,EACf,IAAK,IAAI5E,KAAK49V,EAAWh5V,EAAQ5E,GAAW,WAANA,EAAiB,CAAC,EAAI49V,EAAU59V,GACtE,IAAK,IAAIA,KAAK49V,EAAUI,OAAQp5V,EAAQo5V,OAAOh+V,GAAK49V,EAAUI,OAAOh+V,GACrE4E,EAAQq5V,eAAiB,SAAU31U,GAAK,GAAI5iB,EAAM,MAAM,IAAIg8C,UAAU,0DAA2Do8S,EAAkBt+V,KAAKu+V,EAAOz1U,GAAK,MAAQ,EAC5K,IAAIhuB,GAAS,EAAI+iW,EAAW57V,IAAa,aAATs3K,EAAsB,CAAE/pK,IAAKohT,EAAWphT,IAAK1S,IAAK8zT,EAAW9zT,KAAQ8zT,EAAW/zT,GAAMuI,GACtH,GAAa,aAATm0K,EAAqB,CACrB,QAAe,IAAXz+K,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAIonD,UAAU,oBACnEhjB,EAAIq/T,EAAOzjW,EAAO0U,QAAMohT,EAAWphT,IAAM0vB,IACzCA,EAAIq/T,EAAOzjW,EAAOgC,QAAM8zT,EAAW9zT,IAAMoiC,IACzCA,EAAIq/T,EAAOzjW,EAAO22B,QAAO4sU,EAAa1uU,QAAQuP,EACtD,MACSA,EAAIq/T,EAAOzjW,MACH,UAATy+K,EAAkB8kL,EAAa1uU,QAAQuP,GACtC0xR,EAAW/zT,GAAOqiC,EAE/B,CACI5d,GAAQxnB,OAAO8lB,eAAe0B,EAAQ88U,EAAU73V,KAAMqqT,GAC1D1qT,GAAO,CACT,CAEO,SAASw4V,EAAkB3yS,EAASsyS,EAAc7jW,GAEvD,IADA,IAAImkW,EAAWziW,UAAUoC,OAAS,EACzB2D,EAAI,EAAGA,EAAIo8V,EAAa//V,OAAQ2D,IACrCzH,EAAQmkW,EAAWN,EAAap8V,GAAGvH,KAAKqxD,EAASvxD,GAAS6jW,EAAap8V,GAAGvH,KAAKqxD,GAEnF,OAAO4yS,EAAWnkW,OAAQ,CAC5B,CAEO,SAASokW,EAAU5mU,GACxB,MAAoB,iBAANA,EAAiBA,EAAI,GAAGtyB,OAAOsyB,EAC/C,CAEO,SAAS6mU,EAAkB/1U,EAAGviB,EAAM8yB,GAEzC,MADoB,iBAAT9yB,IAAmBA,EAAOA,EAAK2kB,YAAc,IAAIxlB,OAAOa,EAAK2kB,YAAa,KAAO,IACrFpxB,OAAO8lB,eAAekJ,EAAG,OAAQ,CAAEzI,cAAc,EAAM7lB,MAAO6+B,EAAS,GAAG3zB,OAAO2zB,EAAQ,IAAK9yB,GAAQA,GAC/G,CAEO,SAASu4V,EAAWC,EAAaC,GACtC,GAAuB,iBAAZrrV,SAAoD,mBAArBA,QAAQo/E,SAAyB,OAAOp/E,QAAQo/E,SAASgsQ,EAAaC,EAClH,CAEO,SAASlzB,EAAU//Q,EAASggR,EAAYhoU,EAAGioU,GAEhD,OAAO,IAAKjoU,IAAMA,EAAIzE,WAAU,SAAUC,EAASC,GAC/C,SAASysU,EAAUzxU,GAAS,IAAMomI,EAAKorM,EAAU/tU,KAAKzD,GAAS,CAAE,MAAOK,GAAK2E,EAAO3E,EAAI,CAAE,CAC1F,SAASsrH,EAAS3rH,GAAS,IAAMomI,EAAKorM,EAAiB,MAAExxU,GAAS,CAAE,MAAOK,GAAK2E,EAAO3E,EAAI,CAAE,CAC7F,SAAS+lI,EAAK9lI,GAJlB,IAAeN,EAIaM,EAAOoL,KAAO3G,EAAQzE,EAAON,QAJ1CA,EAIyDM,EAAON,MAJhDA,aAAiBuJ,EAAIvJ,EAAQ,IAAIuJ,GAAE,SAAUxE,GAAWA,EAAQ/E,EAAQ,KAIjBsI,KAAKmpU,EAAW9lN,EAAW,CAC7Gya,GAAMorM,EAAYA,EAAU1mU,MAAMymD,EAASggR,GAAc,KAAK9tU,OAClE,GACF,CAEO,SAASghW,EAAYlzS,EAASzX,GACnC,IAAsGxrB,EAAGhP,EAAG1S,EAAxG83B,EAAI,CAAEvzB,MAAO,EAAGuzV,KAAM,WAAa,GAAW,EAAP93V,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG+3V,KAAM,GAAIC,IAAK,IAAer2U,EAAIjvB,OAAO+Q,QAA4B,mBAAbw0V,SAA0BA,SAAWvlW,QAAQC,WACtL,OAAOgvB,EAAE9qB,KAAOqhW,EAAK,GAAIv2U,EAAS,MAAIu2U,EAAK,GAAIv2U,EAAU,OAAIu2U,EAAK,GAAsB,mBAAX1lW,SAA0BmvB,EAAEnvB,OAAOyM,UAAY,WAAa,OAAOlI,IAAM,GAAI4qB,EAC1J,SAASu2U,EAAK52U,GAAK,OAAO,SAAUM,GAAK,OACzC,SAAcsuU,GACV,GAAIxuU,EAAG,MAAM,IAAIo5B,UAAU,mCAC3B,KAAOn5B,IAAMA,EAAI,EAAGuuU,EAAG,KAAOp4T,EAAI,IAAKA,OACnC,GAAIpW,EAAI,EAAGhP,IAAM1S,EAAY,EAARkwV,EAAG,GAASx9U,EAAU,OAAIw9U,EAAG,GAAKx9U,EAAS,SAAO1S,EAAI0S,EAAU,SAAM1S,EAAE1M,KAAKof,GAAI,GAAKA,EAAE7b,SAAWmJ,EAAIA,EAAE1M,KAAKof,EAAGw9U,EAAG,KAAKpxV,KAAM,OAAOkB,EAE3J,OADI0S,EAAI,EAAG1S,IAAGkwV,EAAK,CAAS,EAARA,EAAG,GAAQlwV,EAAE5M,QACzB88V,EAAG,IACP,KAAK,EAAG,KAAK,EAAGlwV,EAAIkwV,EAAI,MACxB,KAAK,EAAc,OAAXp4T,EAAEvzB,QAAgB,CAAEnR,MAAO88V,EAAG,GAAIpxV,MAAM,GAChD,KAAK,EAAGg5B,EAAEvzB,QAASmO,EAAIw9U,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKp4T,EAAEkgU,IAAItuV,MAAOouB,EAAEigU,KAAKruV,MAAO,SACxC,QACI,MAAkB1J,GAAZA,EAAI83B,EAAEigU,MAAY7gW,OAAS,GAAK8I,EAAEA,EAAE9I,OAAS,KAAkB,IAAVg5V,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEp4T,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVo4T,EAAG,MAAclwV,GAAMkwV,EAAG,GAAKlwV,EAAE,IAAMkwV,EAAG,GAAKlwV,EAAE,IAAM,CAAE83B,EAAEvzB,MAAQ2rV,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYp4T,EAAEvzB,MAAQvE,EAAE,GAAI,CAAE83B,EAAEvzB,MAAQvE,EAAE,GAAIA,EAAIkwV,EAAI,KAAO,CACpE,GAAIlwV,GAAK83B,EAAEvzB,MAAQvE,EAAE,GAAI,CAAE83B,EAAEvzB,MAAQvE,EAAE,GAAI83B,EAAEkgU,IAAIp/V,KAAKs3V,GAAK,KAAO,CAC9DlwV,EAAE,IAAI83B,EAAEkgU,IAAItuV,MAChBouB,EAAEigU,KAAKruV,MAAO,SAEtBwmV,EAAKhjT,EAAK55C,KAAKqxD,EAAS7sB,EAC5B,CAAE,MAAOrkC,GAAKy8V,EAAK,CAAC,EAAGz8V,GAAIif,EAAI,CAAG,CAAE,QAAUgP,EAAI1hB,EAAI,CAAG,CACzD,GAAY,EAARkwV,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE98V,MAAO88V,EAAG,GAAKA,EAAG,QAAK,EAAQpxV,MAAM,EAC9E,CAtBgD06H,CAAK,CAACl4G,EAAGM,GAAK,CAAG,CAuBnE,CAEO,IAAIu2U,EAAkBzlW,OAAO+Q,OAAS,SAAUvI,EAAGgX,EAAGrY,EAAGu+V,QACnDnlW,IAAPmlW,IAAkBA,EAAKv+V,GAC3B,IAAIkgB,EAAOrnB,OAAOonB,yBAAyB5H,EAAGrY,GACzCkgB,KAAS,QAASA,GAAQ7H,EAAEiH,WAAaY,EAAKb,UAAYa,EAAKd,gBAChEc,EAAO,CAAEtB,YAAY,EAAMrQ,IAAK,WAAa,OAAO8J,EAAErY,EAAI,IAE9DnH,OAAO8lB,eAAetd,EAAGk9V,EAAIr+U,EAC9B,EAAI,SAAU7e,EAAGgX,EAAGrY,EAAGu+V,QACXnlW,IAAPmlW,IAAkBA,EAAKv+V,GAC3BqB,EAAEk9V,GAAMlmV,EAAErY,EACX,EAEM,SAASw+V,EAAanmV,EAAGhX,GAC9B,IAAK,IAAI9B,KAAK8Y,EAAa,YAAN9Y,GAAoB1G,OAAOC,UAAUC,eAAeU,KAAK4H,EAAG9B,IAAI++V,EAAgBj9V,EAAGgX,EAAG9Y,EAC7G,CAEO,SAASk/V,EAASp9V,GACvB,IAAI0C,EAAsB,mBAAXpL,QAAyBA,OAAOyM,SAAUiT,EAAItU,GAAK1C,EAAE0C,GAAI/C,EAAI,EAC5E,GAAIqX,EAAG,OAAOA,EAAE5e,KAAK4H,GACrB,GAAIA,GAAyB,iBAAbA,EAAEhE,OAAqB,MAAO,CAC1CL,KAAM,WAEF,OADIqE,GAAKL,GAAKK,EAAEhE,SAAQgE,OAAI,GACrB,CAAE9H,MAAO8H,GAAKA,EAAEL,KAAMiE,MAAO5D,EACxC,GAEJ,MAAM,IAAI4/C,UAAUl9C,EAAI,0BAA4B,kCACtD,CAEO,SAAS26V,EAAOr9V,EAAGomB,GACxB,IAAIpP,EAAsB,mBAAX1f,QAAyB0I,EAAE1I,OAAOyM,UACjD,IAAKiT,EAAG,OAAOhX,EACf,IAAmBC,EAAY1H,EAA3BoH,EAAIqX,EAAE5e,KAAK4H,GAAOs6H,EAAK,GAC3B,IACI,WAAc,IAANl0G,GAAgBA,KAAM,MAAQnmB,EAAIN,EAAEhE,QAAQiI,MAAM02H,EAAG58H,KAAKuC,EAAE/H,MACxE,CACA,MAAOuI,GAASlI,EAAI,CAAEkI,MAAOA,EAAS,CACtC,QACI,IACQR,IAAMA,EAAE2D,OAASoT,EAAIrX,EAAU,SAAIqX,EAAE5e,KAAKuH,EAClD,CACA,QAAU,GAAIpH,EAAG,MAAMA,EAAEkI,KAAO,CACpC,CACA,OAAO65H,CACT,CAGO,SAASgjO,IACd,IAAK,IAAIhjO,EAAK,GAAI36H,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAC3C26H,EAAKA,EAAGl3H,OAAOi6V,EAAOzjW,UAAU+F,KACpC,OAAO26H,CACT,CAGO,SAASijO,IACd,IAAK,IAAI76V,EAAI,EAAG/C,EAAI,EAAG69V,EAAK5jW,UAAUoC,OAAQ2D,EAAI69V,EAAI79V,IAAK+C,GAAK9I,UAAU+F,GAAG3D,OACxE,IAAIiE,EAAIkK,MAAMzH,GAAI/D,EAAI,EAA3B,IAA8BgB,EAAI,EAAGA,EAAI69V,EAAI79V,IACzC,IAAK,IAAIxD,EAAIvC,UAAU+F,GAAIstC,EAAI,EAAGwwT,EAAKthW,EAAEH,OAAQixC,EAAIwwT,EAAIxwT,IAAKtuC,IAC1DsB,EAAEtB,GAAKxC,EAAE8wC,GACjB,OAAOhtC,CACT,CAEO,SAASm6H,EAAcjiG,EAAIxD,EAAM0lG,GACtC,GAAIA,GAA6B,IAArBzgI,UAAUoC,OAAc,IAAK,IAA4Bs+H,EAAxB36H,EAAI,EAAG0mB,EAAIsO,EAAK34B,OAAY2D,EAAI0mB,EAAG1mB,KACxE26H,GAAQ36H,KAAKg1B,IACR2lG,IAAIA,EAAKnwH,MAAM1S,UAAU8H,MAAMnH,KAAKu8B,EAAM,EAAGh1B,IAClD26H,EAAG36H,GAAKg1B,EAAKh1B,IAGrB,OAAOw4B,EAAG/0B,OAAOk3H,GAAMnwH,MAAM1S,UAAU8H,MAAMnH,KAAKu8B,GACpD,CAEO,SAAS+oU,EAAQh3U,GACtB,OAAO7qB,gBAAgB6hW,GAAW7hW,KAAK6qB,EAAIA,EAAG7qB,MAAQ,IAAI6hW,EAAQh3U,EACpE,CAEO,SAASi3U,EAAiBl0S,EAASggR,EAAYC,GACpD,IAAKpyU,OAAO6sH,cAAe,MAAM,IAAIvkE,UAAU,wCAC/C,IAAoDjgD,EAAhD8mB,EAAIijT,EAAU1mU,MAAMymD,EAASggR,GAAc,IAAQp5B,EAAI,GAC3D,OAAO1wS,EAAInI,OAAO+Q,QAAiC,mBAAlBq1V,cAA+BA,cAAgBpmW,QAAQC,WAAYulW,EAAK,QAASA,EAAK,SAAUA,EAAK,UACtI,SAAqBx2U,GAAK,OAAO,SAAUE,GAAK,OAAO1pB,QAAQC,QAAQypB,GAAGlmB,KAAKgmB,EAAGtpB,EAAS,CAAG,IADgEyC,EAAErI,OAAO6sH,eAAiB,WAAc,OAAOtoH,IAAM,EAAG8D,EAEtN,SAASq9V,EAAK52U,EAAGI,GAASC,EAAEL,KAAMzmB,EAAEymB,GAAK,SAAUM,GAAK,OAAO,IAAI1pB,SAAQ,SAAUb,EAAGC,GAAKi0S,EAAE3yS,KAAK,CAAC0oB,EAAGM,EAAGvqB,EAAGC,IAAM,GAAKyhW,EAAOz3U,EAAGM,EAAI,GAAI,EAAOF,IAAG7mB,EAAEymB,GAAKI,EAAE7mB,EAAEymB,KAAO,CACvK,SAASy3U,EAAOz3U,EAAGM,GAAK,KACVzmB,EADqBwmB,EAAEL,GAAGM,IACnBxuB,iBAAiBwlW,EAAU1gW,QAAQC,QAAQgD,EAAE/H,MAAMwuB,GAAGlmB,KAAKs9V,EAAS5gW,GAAU6gW,EAAO1tD,EAAE,GAAG,GAAIpwS,EADtE,CAAE,MAAO1H,GAAKwlW,EAAO1tD,EAAE,GAAG,GAAI93S,EAAI,CAC/E,IAAc0H,CADmE,CAEjF,SAAS69V,EAAQ5lW,GAAS2lW,EAAO,OAAQ3lW,EAAQ,CACjD,SAASgF,EAAOhF,GAAS2lW,EAAO,QAAS3lW,EAAQ,CACjD,SAAS6lW,EAAOv3U,EAAGE,GAASF,EAAEE,GAAI2pR,EAAExyS,QAASwyS,EAAEr0S,QAAQ6hW,EAAOxtD,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACnF,CAEO,SAAS2tD,EAAiBh+V,GAC/B,IAAIL,EAAGzB,EACP,OAAOyB,EAAI,CAAC,EAAGq9V,EAAK,QAASA,EAAK,SAAS,SAAUzkW,GAAK,MAAMA,CAAG,IAAIykW,EAAK,UAAWr9V,EAAErI,OAAOyM,UAAY,WAAc,OAAOlI,IAAM,EAAG8D,EAC1I,SAASq9V,EAAK52U,EAAGI,GAAK7mB,EAAEymB,GAAKpmB,EAAEomB,GAAK,SAAUM,GAAK,OAAQxoB,GAAKA,GAAK,CAAEhG,MAAOwlW,EAAQ19V,EAAEomB,GAAGM,IAAK9iB,MAAM,GAAU4iB,EAAIA,EAAEE,GAAKA,CAAG,EAAIF,CAAG,CACvI,CAEO,SAASy3U,EAAcj+V,GAC5B,IAAK1I,OAAO6sH,cAAe,MAAM,IAAIvkE,UAAU,wCAC/C,IAAiCjgD,EAA7BqX,EAAIhX,EAAE1I,OAAO6sH,eACjB,OAAOntG,EAAIA,EAAE5e,KAAK4H,IAAMA,EAAqCo9V,EAASp9V,GAA2BL,EAAI,CAAC,EAAGq9V,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWr9V,EAAErI,OAAO6sH,eAAiB,WAAc,OAAOtoH,IAAM,EAAG8D,GAC9M,SAASq9V,EAAK52U,GAAKzmB,EAAEymB,GAAKpmB,EAAEomB,IAAM,SAAUM,GAAK,OAAO,IAAI1pB,SAAQ,SAAUC,EAASC,IACvF,SAAgBD,EAASC,EAAQka,EAAGsP,GAAK1pB,QAAQC,QAAQypB,GAAGlmB,MAAK,SAASkmB,GAAKzpB,EAAQ,CAAE/E,MAAOwuB,EAAG9iB,KAAMwT,GAAM,GAAGla,EAAS,CADb6gW,CAAO9gW,EAASC,GAA7BwpB,EAAI1mB,EAAEomB,GAAGM,IAA8B9iB,KAAM8iB,EAAExuB,MAAQ,GAAI,CAAG,CAEjK,CAEO,SAASgmW,EAAqBC,EAAQ/zU,GAE3C,OADI5yB,OAAO8lB,eAAkB9lB,OAAO8lB,eAAe6gV,EAAQ,MAAO,CAAEjmW,MAAOkyB,IAAiB+zU,EAAO/zU,IAAMA,EAClG+zU,CACT,CAEA,IAAIC,EAAqB5mW,OAAO+Q,OAAS,SAAUvI,EAAG0mB,GACpDlvB,OAAO8lB,eAAetd,EAAG,UAAW,CAAEud,YAAY,EAAMrlB,MAAOwuB,GAChE,EAAI,SAAS1mB,EAAG0mB,GACf1mB,EAAW,QAAI0mB,CACjB,EAEO,SAAS41Q,EAAa+hE,GAC3B,GAAIA,GAAOA,EAAIpgV,WAAY,OAAOogV,EAClC,IAAI7lW,EAAS,CAAC,EACd,GAAW,MAAP6lW,EAAa,IAAK,IAAI1/V,KAAK0/V,EAAe,YAAN1/V,GAAmBnH,OAAOC,UAAUC,eAAeU,KAAKimW,EAAK1/V,IAAIs+V,EAAgBzkW,EAAQ6lW,EAAK1/V,GAEtI,OADAy/V,EAAmB5lW,EAAQ6lW,GACpB7lW,CACT,CAEO,SAAS+1H,EAAgB8vO,GAC9B,OAAQA,GAAOA,EAAIpgV,WAAcogV,EAAM,CAAEngV,QAASmgV,EACpD,CAEO,SAASC,EAAuBr5N,EAAUv5H,EAAOurK,EAAMzwJ,GAC5D,GAAa,MAATywJ,IAAiBzwJ,EAAG,MAAM,IAAIo5B,UAAU,iDAC5C,GAAqB,mBAAVl0C,EAAuBu5H,IAAav5H,IAAU8a,GAAK9a,EAAM4F,IAAI2zH,GAAW,MAAM,IAAIrlF,UAAU,4EACvG,MAAgB,MAATq3H,EAAezwJ,EAAa,MAATywJ,EAAezwJ,EAAEpuB,KAAK6sI,GAAYz+G,EAAIA,EAAEtuB,MAAQwT,EAAMwB,IAAI+3H,EACtF,CAEO,SAASs5N,EAAuBt5N,EAAUv5H,EAAOxT,EAAO++K,EAAMzwJ,GACnE,GAAa,MAATywJ,EAAc,MAAM,IAAIr3H,UAAU,kCACtC,GAAa,MAATq3H,IAAiBzwJ,EAAG,MAAM,IAAIo5B,UAAU,iDAC5C,GAAqB,mBAAVl0C,EAAuBu5H,IAAav5H,IAAU8a,GAAK9a,EAAM4F,IAAI2zH,GAAW,MAAM,IAAIrlF,UAAU,2EACvG,MAAiB,MAATq3H,EAAezwJ,EAAEpuB,KAAK6sI,EAAU/sI,GAASsuB,EAAIA,EAAEtuB,MAAQA,EAAQwT,EAAMlR,IAAIyqI,EAAU/sI,GAASA,CACtG,CAEO,SAASsmW,EAAsB9yV,EAAOu5H,GAC3C,GAAiB,OAAbA,GAA0C,iBAAbA,GAA6C,mBAAbA,EAA0B,MAAM,IAAIrlF,UAAU,0CAC/G,MAAwB,mBAAVl0C,EAAuBu5H,IAAav5H,EAAQA,EAAM4F,IAAI2zH,EACtE,CAEO,SAASw5N,EAAwBv9V,EAAKhJ,EAAO2uC,GAClD,GAAI3uC,QAAoC,CACtC,GAAqB,iBAAVA,GAAuC,mBAAVA,EAAsB,MAAM,IAAI0nD,UAAU,oBAClF,IAAI8+S,EAASC,EACb,GAAI93T,EAAO,CACT,IAAKvvC,OAAOsnW,aAAc,MAAM,IAAIh/S,UAAU,uCAC9C8+S,EAAUxmW,EAAMZ,OAAOsnW,aACzB,CACA,QAAgB,IAAZF,EAAoB,CACtB,IAAKpnW,OAAOonW,QAAS,MAAM,IAAI9+S,UAAU,kCACzC8+S,EAAUxmW,EAAMZ,OAAOonW,SACnB73T,IAAO83T,EAAQD,EACrB,CACA,GAAuB,mBAAZA,EAAwB,MAAM,IAAI9+S,UAAU,0BACnD++S,IAAOD,EAAU,WAAa,IAAMC,EAAMvmW,KAAKyD,KAAO,CAAE,MAAOtD,GAAK,OAAOyE,QAAQE,OAAO3E,EAAI,CAAE,GACpG2I,EAAIywB,MAAMj0B,KAAK,CAAExF,MAAOA,EAAOwmW,QAASA,EAAS73T,MAAOA,GAC1D,MACSA,GACP3lC,EAAIywB,MAAMj0B,KAAK,CAAEmpC,OAAO,IAE1B,OAAO3uC,CACT,CAEA,IAAI2mW,EAA8C,mBAApBtkO,gBAAiCA,gBAAkB,SAAU95H,EAAOq+V,EAAYtlV,GAC5G,IAAIjhB,EAAI,IAAIoB,MAAM6f,GAClB,OAAOjhB,EAAE0L,KAAO,kBAAmB1L,EAAEkI,MAAQA,EAAOlI,EAAEumW,WAAaA,EAAYvmW,CACjF,EAEO,SAASwmW,EAAmB79V,GACjC,SAAS89V,EAAKzmW,GACZ2I,EAAIT,MAAQS,EAAIs4I,SAAW,IAAIqlN,EAAiBtmW,EAAG2I,EAAIT,MAAO,4CAA8ClI,EAC5G2I,EAAIs4I,UAAW,CACjB,CACA,IAAIv5I,EAAGyC,EAAI,EAkBX,OAjBA,SAAS/G,IACP,KAAOsE,EAAIiB,EAAIywB,MAAMnjB,OACnB,IACE,IAAKvO,EAAE4mC,OAAe,IAANnkC,EAAS,OAAOA,EAAI,EAAGxB,EAAIywB,MAAMj0B,KAAKuC,GAAIjD,QAAQC,UAAUuD,KAAK7E,GACjF,GAAIsE,EAAEy+V,QAAS,CACb,IAAIlmW,EAASyH,EAAEy+V,QAAQtmW,KAAK6H,EAAE/H,OAC9B,GAAI+H,EAAE4mC,MAAO,OAAOnkC,GAAK,EAAG1F,QAAQC,QAAQzE,GAAQgI,KAAK7E,GAAM,SAASpD,GAAc,OAATymW,EAAKzmW,GAAWoD,GAAQ,GACvG,MACK+G,GAAK,CACZ,CACA,MAAOnK,GACLymW,EAAKzmW,EACP,CAEF,GAAU,IAANmK,EAAS,OAAOxB,EAAIs4I,SAAWx8I,QAAQE,OAAOgE,EAAIT,OAASzD,QAAQC,UACvE,GAAIiE,EAAIs4I,SAAU,MAAMt4I,EAAIT,KAC9B,CACO9E,EACT,CAEA,SACEw+H,YACAkhO,WACA9hQ,SACA+hQ,aACAG,UACAe,aACAhzB,YACAmzB,cACAM,kBACAE,eACAC,WACAC,SACAC,WACAC,iBACAnjO,gBACAsjO,UACAC,mBACAK,mBACAC,gBACAC,uBACA5hE,eACA/tK,kBACA+vO,yBACAC,yBACAC,wBACAC,0BACAM,wCCxXF/mW,EAAOC,QAAU,IAA0B,wDCA3C,IAII+E,EAJY,EAAQ,MAIVynS,CAHH,EAAQ,QAGW,WAE9BzsS,EAAOC,QAAU+E,oBCNjBhF,EAAOC,QAAU,IAA0B,wTCWvC0S,EAAU,CAAC,46BAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,OCHnD,MAAM2rV,EAAkB,0BAE7Bz4E,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,UAGL6tG,EAAS,SAGT3lH,EAAQ,gBACRyrV,EAAe,OACf5/Q,EAAM,SACN9wB,GAEe,EADZi4N,oXAAAA,CAAAA,EAAAA,CAdHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QAGA6tG,YAGA3lH,WACAyrV,kBACA5/Q,SACA9wB,aAKA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCu4E,EAAe5zU,aAAAA,EAAAA,EAAO4rD,MACzBnrD,GAAyB,iBAATA,GAAqBA,EAAK3B,WAGvC+0U,EAAqBljV,QAAQijV,GAI/B5zU,GAAS6zU,GACX7zU,EAAM7tB,KAAK,CACTslG,UAAS,sBAAE,UAAOpmE,EAAG2iR,GACnB,IAAKA,EACH,OAAOviT,QAAQE,OACb,IAAIvD,MACsB,iBAAjBwlW,GACyB,iBAAzBA,EAAa3lV,QAChB2lV,EAAa3lV,QACb,4BAIZ,iMAXkBojB,EAAG2iR,mCAAZ,KAeb,MACM8/C,EAAe,gBADR57T,EAAAA,EAAAA,QAGb,OACE,SAAC81G,EAAAA,EAAO/xE,KAAI,KACVh0D,WAAWI,EAAAA,EAAAA,GAAK,mBAAoB4yQ,GACpCviR,KAAMA,EACN4hJ,QAASA,EACTx8I,MAAOA,EACPkiB,MAAOA,EACP+zU,cAAc,YACRr7V,GAAQ,CAAEs7V,QAASF,IAAa,UAErC34E,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWG,OAAM,CAACxyF,QAAM,EAACkB,KAAK,QAAQ0xF,MAAM,YAE7C,UAACo0N,EAAAA,EAAUA,EAAAA,EAAAA,CACTpoR,SAAUm4N,GAAcn4N,EACxBq3F,QAASq5M,IACHj7V,GAAQ,CAAE8E,GAAIs2V,GAChB54E,GAAAA,CACJnnM,OAAQA,YAEP7rE,EACA2rV,IAAuB/1V,IACtB,SAACqQ,OAAAA,CAAKlG,UAAU,+CAAsC,8jBClFlE,SAAUgsV,GAAsB,KAAE3zP,EAAI,OAAE2kB,EAAM,OAAE7hH,EAAM,QAAE8wV,UAChD//V,EAAAA,EAAAA,KAAIggW,EAAAA,EAAAA,IAAqB,CAAE7zP,OAAM2kB,SAAQjS,SAAS,KAKxD,MAAM0sK,EAAoB,CAAEr4P,MAAO,IAUnC,GATIjkB,IACFs8Q,EAAkBolB,EAAI1hS,GAQpB8wV,EAAQE,QAAS,CACnB,MAAQl6V,KAAMm6V,EAAQ,WAAEx6O,SAAqBhtH,EAAAA,EAAAA,IAC3CynW,EAAAA,GACAJ,EAAQE,QAAQG,SAChBL,EAAQE,QAAQnvN,OAChB,CACEy6I,4BAIEvrR,EAAAA,EAAAA,KAAIqgW,EAAAA,EAAAA,IAAmB,CAAEl0P,OAAM2kB,SAAQ11D,MAAOsqD,WAC9C1lH,EAAAA,EAAAA,KAAIsgW,EAAAA,EAAAA,IAAkB,CAAEn0P,OAAM2kB,SAAQ/qH,KAAMm6V,IACpD,CAGA,MAAMK,EAAuB,CAC3Bh1E,kBAAmB,KACdA,IAIHw0E,EAAQtkV,WAAWxM,SACrBsxV,EAAqBh1E,kBAAkBt8Q,OAAS8wV,EAAQtkV,WAAWxM,QAGjE8wV,EAAQtkV,WAAWxQ,UACrBs1V,EAAqBh1E,kBAAkBtgR,QAAU80V,EAAQtkV,WAAWxQ,SAGtE,MAAQlF,KAAMy6V,SAAsB9nW,EAAAA,EAAAA,IAClCynW,EAAAA,GACAJ,EAAQtkV,WAAW2kV,SACnBL,EAAQtkV,WAAWq1H,OACnByvN,SAGIvgW,EAAAA,EAAAA,KAAIygW,EAAAA,EAAAA,IAAqB,CAAEt0P,OAAM2kB,SAAQ/qH,KAAMy6V,WAG/CxgW,EAAAA,EAAAA,KAAIggW,EAAAA,EAAAA,IAAqB,CAAE7zP,OAAM2kB,SAAQjS,SAAS,IAC1D,CAOA,QALA,kBACQzrE,EAAAA,EAAAA,IAAI,EAACstT,EAAAA,EAAAA,IAAUC,EAAAA,GAAyBb,WACxC1/V,EAAAA,EAAAA,GAAKqnJ,EAAAA,GACb,qOCtEI5tD,EAAgC,SAAU72F,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,EAeA,MAAMw7V,EAAgB,CACpB7tT,QAAS,IACT2gB,KAAM,IACN3yD,MAAO,IACPw7B,QAAS,KAELskU,EAAWx6V,IACf,MAAM,KACJuZ,EAAI,UACJ4uC,EAAS,KACT9yD,GACE2K,EACEysS,EAAW8tD,EAAcllW,IAAS,KACxC,OAAIkkB,GACK,QAAeA,EAAmB,gBAAoB,OAAQ,CACnE9L,UAAW,GAAG06C,UACb5uC,IAAO,KAAM,CACd9L,UAAW,IAAW,GAAG06C,SAAkB,CACzC,CAAC5uC,EAAKvZ,MAAMyN,WAAY8L,EAAKvZ,MAAMyN,gBAIrB,gBAAoBg/R,EAAU,CAChDh/R,UAAW,GAAG06C,UACd,EAEEsyS,EAAgBz6V,IACpB,MAAM,WACJ06V,EAAU,UACVvyS,EAAS,UACTk9C,EAAS,YACTs1P,EAAW,UACXvlD,GACEp1S,EACEm8Q,GAAgC,IAAd92K,QAAoCrzG,IAAdqzG,EAAuC,gBAAoB,IAAe,MAAQA,EAChI,OAAOq1P,EAA2B,gBAAoB,SAAUjpW,OAAOqZ,OAAO,CAC5EzV,KAAM,SACN49D,QAAS0nS,EACTltV,UAAW,GAAG06C,eACduV,SAAU,GACT03O,GAAYj5B,GAAoB,IAAI,EA0JzC,EAxJ2B,cAAiB,CAACn8Q,EAAO8V,KAClD,MAAM,YACF+M,EACAslC,UAAWw5B,EAAkB,QAC7BluE,EAAO,OACPmnV,EAAM,UACNntV,EAAS,cACT24D,EAAa,MACbt5B,EAAK,aACL+yB,EAAY,aACZC,EAAY,QACZ7M,EAAO,WACPixB,EAAU,SACV2d,EAAQ,SACRC,EAAQ,UACR+4P,EAAS,UACTx1P,EAAS,OACTrwG,EAAM,GACNgO,GACEhD,EACJ2/F,EAAanM,EAAOxzF,EAAO,CAAC,cAAe,YAAa,UAAW,SAAU,YAAa,gBAAiB,QAAS,eAAgB,eAAgB,UAAW,aAAc,WAAY,WAAY,YAAa,YAAa,SAAU,QACpO9G,EAAQ4hW,GAAa,YAAe,GAKrClvD,EAAc,SAAa,MACjC,sBAA0B91R,GAAK,KAAM,CACnCggG,cAAe81L,EAAYhxS,YAE7B,MAAM,aACJusD,EAAY,UACZ9oB,EAAS,MACTwsR,GACE,aAAiB,MACf1iQ,EAAYhB,EAAa,QAASw6B,IACjCC,EAAYn6B,EAAQo6B,IAAa,QAAS15B,GAC3CwyS,EAAcnoW,IAClB,IAAIgoB,EACJsgV,GAAU,GACe,QAAxBtgV,EAAKxa,EAAM+hG,eAA4B,IAAPvnF,GAAyBA,EAAGnoB,KAAK2N,EAAOxN,EAAE,EAEvE6C,EAAO,WAAc,SACNrD,IAAfgO,EAAM3K,KACD2K,EAAM3K,KAGRulW,EAAS,UAAY,QAC3B,CAAC56V,EAAM3K,KAAMulW,IAEVF,EAAa,WAAc,MACP,iBAAb54P,IAAyBA,EAASuD,cACzCw1P,IAGoB,kBAAb/4P,EACFA,GAGS,IAAduD,SAAuBA,MAGjBwlN,aAAqC,EAASA,EAAM/oN,YAC7D,CAAC+4P,EAAWx1P,EAAWvD,EAAU+oN,aAAqC,EAASA,EAAM/oN,WAElFi5P,KAAaH,QAAuB5oW,IAAb6vG,IAAgCA,EACvDm5P,EAAW,IAAW7yS,EAAW,GAAGA,KAAa9yD,IAAQ,CAC7D,CAAC,GAAG8yD,wBAAiCtlC,EACrC,CAAC,GAAGslC,cAAuB4yS,EAC3B,CAAC,GAAG5yS,cAAuByyS,EAC3B,CAAC,GAAGzyS,SAAgC,QAAd9pB,GACrBwsR,aAAqC,EAASA,EAAMp9S,UAAWA,EAAW24D,EAAeyb,EAAWp6B,GACjGyL,GAAY,OAAUysC,EAAY,CACtC4V,MAAM,EACN71G,MAAM,IAEFy8Q,EAAkB,WAAc,KACpC,IAAI3hQ,EAAIC,EACR,MAAwB,iBAAbqnF,GAAyBA,EAASuD,UACpCvD,EAASuD,UAEdw1P,SAGc7oW,IAAdqzG,EACKA,EAEqE,iBAAlEwlN,aAAqC,EAASA,EAAM/oN,YAAmG,QAAvEtnF,EAAKqwS,aAAqC,EAASA,EAAM/oN,gBAA6B,IAAPtnF,OAAgB,EAASA,EAAG6qF,WACtH,QAAvE5qF,EAAKowS,aAAqC,EAASA,EAAM/oN,gBAA6B,IAAPrnF,OAAgB,EAASA,EAAG4qF,UAE9GwlN,aAAqC,EAASA,EAAMxlN,UAAS,GACnE,CAACA,EAAWvD,EAAU+4P,EAAWhwC,aAAqC,EAASA,EAAMxlN,YAClF41P,EAAkB,WAAc,KACpC,MAAM14G,EAASzgJ,QAA2CA,EAAW+oN,aAAqC,EAASA,EAAM/oN,SACzH,GAAsB,iBAAXygJ,EAAqB,CAC9B,MACIl9I,UAAWxuE,GACT0rN,EAEN,OADc/uJ,EAAO+uJ,EAAQ,CAAC,aAEhC,CACA,MAAO,CAAC,CAAC,GACR,CAACzgJ,EAAU+oN,aAAqC,EAASA,EAAM/oN,WAClE,OAAOlgB,EAAwB,gBAAoB,KAAW,CAC5Dpc,SAAUtsE,EACVkjD,WAAY,GAAG+L,WACf6e,cAAc,EACdk0R,aAAa,EACbz+S,aAAc1mC,IAAQ,CACpBgiF,UAAWhiF,EAAK6lC,eAElBiB,WAAYqnC,IACX,CAACjrF,EAAM8jQ,KACR,IACEtvP,UAAW46D,EACXv7B,MAAOw7B,GACLrvE,EACJ,OAAoB,gBAAoB,MAAOxH,OAAOqZ,OAAO,CAC3D9H,GAAIA,EACJ8S,KAAK,QAAW81R,EAAa7uC,GAC7B,aAAc7jQ,EACduU,UAAW,IAAWutV,EAAU3yR,GAChCv7B,MAAOr7C,OAAOqZ,OAAOrZ,OAAOqZ,OAAOrZ,OAAOqZ,OAAO,CAAC,EAAG+/S,aAAqC,EAASA,EAAM/9Q,OAAQA,GAAQw7B,GACzHzI,aAAcA,EACdC,aAAcA,EACd7M,QAASA,EACT4O,KAAM,SACL3O,GAAY6nS,EAA2B,gBAAoBP,EAAU,CACtE33U,YAAaA,EACbtJ,KAAMvZ,EAAMuZ,KACZ4uC,UAAWA,EACX9yD,KAAMA,IACF,KAAmB,gBAAoB,MAAO,CAClDoY,UAAW,GAAG06C,aACb10C,EAAuB,gBAAoB,MAAO,CACnDhG,UAAW,GAAG06C,aACb10C,GAAW,KAAMoP,EAA2B,gBAAoB,MAAO,CACxEpV,UAAW,GAAG06C,iBACbtlC,GAAe,MAAO7tB,EAAsB,gBAAoB,MAAO,CACxEyY,UAAW,GAAG06C,YACbnzD,GAAU,KAAmB,gBAAoBylW,EAAe,CACjEC,WAAYA,EACZvyS,UAAWA,EACXk9C,UAAW82K,EACXw+E,YAAaA,EACbvlD,UAAW6lD,IACV,IACF,kSC9JL,MAAME,GAAkBl2V,EAAAA,EAAAA,QAAO,CAAC,GAChC,SAASS,EAAWC,EAAQw1V,EAAiBnmW,GAC3C,OAAQA,EAAOK,OACRuQ,EAAAA,KACIX,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAMy1V,GAAmCn2V,EAAAA,EAAAA,QAAO,IAChD,SAASo2V,EACP11V,EAAQy1V,EACRpmW,GAEA,OAAQA,EAAOK,OACRgtR,EAAAA,KACIp9Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM21V,GAAsBr2V,EAAAA,EAAAA,QAAO,IACnC,SAASs2V,EAAe51V,EAAQ21V,EAAqBtmW,GACnD,OAAQA,EAAOK,OACRktR,EAAAA,KACIt9Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM61V,GAAsBv2V,EAAAA,EAAAA,QAAO,IACnC,SAASw2V,EAAa91V,EAAQ61V,EAAqBxmW,GACjD,OAAQA,EAAOK,OACRkuR,EAAAA,KACIt+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAE2BV,EAAAA,EAAAA,QAAO,IAUlC,MAAMy2V,GAAqBz2V,EAAAA,EAAAA,QAAO,IAClC,SAAS02V,EAAch2V,EAAQ+1V,EAAoB1mW,GACjD,OAAQA,EAAOK,OACR6sR,EAAAA,KACIj9Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAE+BV,EAAAA,EAAAA,QAAO,KAUZA,EAAAA,EAAAA,QAAO,CAAC,IAURA,EAAAA,EAAAA,QAAO,IAUjC,MAAM22V,GAAoB32V,EAAAA,EAAAA,QAAO,IACjC,SAAS42V,EAAal2V,EAAQi2V,EAAmB5mW,GAC/C,OAAQA,EAAOK,OACRotR,EAAAA,KACIx9Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAMm2V,GAAmB72V,EAAAA,EAAAA,QAAO,CAAC,GACjC,SAAS82V,EAAYp2V,EAAQm2V,EAAkB9mW,GAC7C,OAAQA,EAAOK,OACRstR,EAAAA,KACI19Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAE+BV,EAAAA,EAAAA,QAAO,IAUtC,MAAM+2V,GAAoB/2V,EAAAA,EAAAA,QAAO,IACjC,SAASg3V,EAAat2V,EAAQq2V,EAAmBhnW,GAC/C,OAAQA,EAAOK,OACR2sR,EAAAA,KACI/8Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAGdiG,CAEb,CAEA,MAAMu2V,GAAgCj3V,EAAAA,EAAAA,QAAO,IAC7C,SAASk3V,EACPx2V,EAAQu2V,EACRlnW,GAEA,OAAQA,EAAOK,OACRmlH,EAAAA,KACIv1G,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAGdiG,CAEb,CAEA,MAAMy2V,GAA0Bn3V,EAAAA,EAAAA,QAAO,IACvC,SAASo3V,EAAmB12V,EAAQy2V,EAAyBpnW,GAC3D,OAAQA,EAAOK,OACRwtR,EAAAA,KACI59Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAEmCV,EAAAA,EAAAA,QAAO,KAUlBA,EAAAA,EAAAA,QAAO,KAUDA,EAAAA,EAAAA,QAAO,KAUFA,EAAAA,EAAAA,QAAO,IAU1C,MAAMq3V,GAAmBr3V,EAAAA,EAAAA,QAAO,IAChC,SAASs3V,EAAY52V,EAAQ22V,EAAkBtnW,GAC7C,OAAQA,EAAOK,OACR4tR,EAAAA,KACIh+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM62V,GAAqCv3V,EAAAA,EAAAA,QAAO,IAClD,SAASw3V,EACP92V,EAAQ62V,EACRxnW,GAEA,OAAQA,EAAOK,OACRouR,EAAAA,IACIx+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM+2V,GAA6Cz3V,EAAAA,EAAAA,QAAO,IAC1D,SAAS03V,EACPh3V,EAAQ+2V,EACR1nW,GAEA,OAAQA,EAAOK,OACRsuR,EAAAA,KACI1+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAMi3V,GAA6B33V,EAAAA,EAAAA,QAAO,IAC1C,SAAS43V,EAAsBl3V,EAAQi3V,EAA4B5nW,GACjE,OAAQA,EAAOK,OACRynW,EAAAA,IACI73V,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAEuCV,EAAAA,EAAAA,QAAO,KAaPA,EAAAA,EAAAA,QAAO,KAadA,EAAAA,EAAAA,QAAO,IAUvC,MAAM83V,GAA8B93V,EAAAA,EAAAA,QAAO,IAC3C,SAAS+3V,EAAuBr3V,EAAQo3V,EAA6B/nW,GACnE,OAAQA,EAAOK,OACRwuR,EAAAA,KACI5+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAEgCV,EAAAA,EAAAA,QAAO,IAUvC,MAAMg4V,GAA0Bh4V,EAAAA,EAAAA,QAAO,IACvC,SAASi4V,EAAmBv3V,EAAQs3V,EAAyBjoW,GAC3D,OAAQA,EAAOK,OACR0uR,EAAAA,IACI9+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAEkCV,EAAAA,EAAAA,QAAO,KAUNA,EAAAA,EAAAA,QAAO,KAaZA,EAAAA,EAAAA,QAAO,IAUrC,MAAMk4V,GAA0Bl4V,EAAAA,EAAAA,QAAO,IAChC,SAASm4V,EAAmBz3V,EAAQw3V,EAAyBnoW,GAClE,OAAQA,EAAOK,OACR4uR,EAAAA,KACIh/Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM03V,GAAuBp4V,EAAAA,EAAAA,QAAO,IAC7B,SAASq4V,EAAgB33V,EAAQ03V,EAAsBroW,GAC5D,OAAQA,EAAOK,OACR8uR,EAAAA,KACIl/Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM43V,GAA2Bt4V,EAAAA,EAAAA,QAAO,IACjC,SAASu4V,EAAoB73V,EAAQ43V,EAA0BvoW,GACpE,OAAQA,EAAOK,OACRgvR,EAAAA,KACIp/Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAM83V,GAA6Bx4V,EAAAA,EAAAA,QAAO,IACnC,SAASy4V,EACd/3V,EAAQ83V,EACRzoW,GAEA,OAAQA,EAAOK,OACRkvR,EAAAA,KACIt/Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAMg4V,GAAyB14V,EAAAA,EAAAA,QAAO,IAC/B,SAAS24V,EAAkBj4V,EAAQg4V,EAAwB3oW,GAChE,OAAQA,EAAOK,OACRovR,EAAAA,KACIx/Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,CAEA,MAAMk4V,GAA6B54V,EAAAA,EAAAA,QAAO,IAC1C,SAAS64V,EAAsBn4V,EAAQk4V,EAA4B7oW,GACjE,OAAQA,EAAOK,OACRguR,EAAAA,KACIp+Q,EAAAA,EAAAA,QAAOjQ,EAAO0K,MAEdiG,CAEb,EAE6BV,EAAAA,EAAAA,QAAO,KAUFA,EAAAA,EAAAA,QAAO,KAUNA,EAAAA,EAAAA,QAAO,KAUTA,EAAAA,EAAAA,QAAO,KAUJA,EAAAA,EAAAA,QAAO,KAUTA,EAAAA,EAAAA,QAAO,KAUCA,EAAAA,EAAAA,QAAO,CAC/C84V,WAAW,EACXr+V,KAAM,MAc8BuF,EAAAA,EAAAA,QAAO,CAAE84V,WAAW,EAAOr+V,KAAM,KAepCs+V,EAAAA,EAAgC51E,WAUzBnjR,EAAAA,EAAAA,QAAO,IA6E1C,MAAM0sU,EACX,CAACrrU,EAAc23V,IACf,CAACt4V,GAAQV,EAAAA,EAAAA,QAAOqB,IAAiBjR,OAAMqK,UACrCrK,IAAS4oW,GAAah5V,EAAAA,EAAAA,QAAOvF,GAAQiG,cCloBzC1T,EAAOC,QAAU,igWCiBjB,MAWagsW,EAAgD,EAC3Dl5S,SACAn4B,QACA05O,UAAU,GACV43F,SAAS,GACT/4D,UACAg5D,eACAC,2BAA2B,CAAC,MAE5B,MAAMn5E,EAAoB,KAAKm5E,GA8B/B,GA3BIr5S,IACFkgO,EAAkBlgO,OAASA,GAIzBn4B,IACFq4P,EAAkBr4P,MAAQA,GAIxB05O,EAAQtwQ,SACVivR,EAAkBt8Q,OAAS29P,EAAQpwQ,QACjC,CAACy6D,GAAO5tD,KAAI7Q,gBAERizS,EADF,MAAMk5D,EAEJ,iBADAl5D,SAAoDpiS,QAApDoiS,EAAAA,EAASh0N,MAAMsnO,IAASA,EAAI11S,IAAM01S,EAAI6lD,YAAcv7V,WAApDoiS,IAAAA,OAAAA,EAAAA,EAAyDx8R,QAG3D,MAAO,GAAGgoD,EAAM,GAAGA,KAAS,KAAK5tD,MAxCf,EAAC+4S,EAAauiD,IAM/B,GAJsBviD,EAAYhuR,QAAQ,WAAY,QAK1D76B,MAAM,KACN2D,KAAKo4C,GAAQ,GAAGqvT,EAAgB,IAAM,MAAMrvT,QAgCDuvT,CACtCrsW,EACAmsW,KACE,GAEN,GAAGp5E,EAAkBt8Q,QAAU,OAK/Bu1V,EAAOloW,OAAQ,CACjB,MAAM,GAAE+M,EAAE,KAAE8V,GAASqlV,EAAO,GAC5Bj5E,EAAkB1uP,KAAOxzB,EACzBkiR,EAAkB7tP,MAAQve,EAAO,OAAS,KAC5C,CAOA,OAJIslV,IACFl5E,EAAkBolB,EAAI8zD,GAGjBl5E,CAAiB,EAGbu5E,EAAsB/+V,GACjCA,EAAK7I,KAAK4vN,GACRh1N,OAAOg/B,QAAQg2L,GAAKtwN,QAClB,CAACy6D,GAAMp8D,EAAKrC,KAAY,OACnBy+D,GAAAA,CACH,CAACp8D,GACkB,iBAAVrC,EAAqBA,EAAM47B,QAAQ,YAAa,OAAS57B,KAEpE,CAAC,KAKP,SAAUq4I,GAAmB,KAC3B1kC,EAAI,QACJ0kB,EAAU,KAAI,MACd7kH,EAAK,aACL+4V,EACAC,0BAA2BN,EAAwB,2BACnDO,EAA6B,GAAE,iBAC/Bz5E,EAAgB,SAChB05E,EACAC,aAAc15D,EAAO,WACrB25D,IAKA,SAFMplW,EAAAA,EAAAA,KAAI8vI,EAAAA,EAAAA,IAAiB,CAAE3jC,OAAM0kB,UAAShS,SAAS,KAEjDkmP,GAAgBv5E,EAAkB,CACpC,MAAM,UAAE65E,EAAWrkD,SAAU9tR,EAAK,QAAE05O,EAAO,OAAE43F,EAAM,aAAEC,GAAiBz4V,EAChE8kI,EAAS,CACbzlF,OAAQg6S,EAAYnyU,EACpBA,QACA05O,UACA6+B,UACA+4D,SACAC,eACAC,kCAGIhsW,EAAAA,EAAAA,IAAKynW,EAAAA,GAAe4E,EAAcE,EAA4B,CAClE15E,kBAAmBg5E,EAA8CzzN,GACjEw0N,mBAAqBv0Q,IACnB,MAAMw0Q,EAAgB,OACjBx0Q,GAAAA,CACHhrF,KAAMq/V,EAAar0Q,EAAShrF,KAAKkJ,OAAOm2V,GAAcr0Q,EAAShrF,OAEjE,OAAOglR,EAAAA,EAAAA,IAAuBS,EAAkBr/K,EAAMo5P,EAAc,EAEtE/5Q,sBAAsBj3D,GAE1B,CAGI2wU,GAAUA,EAAS,SAEjBllW,EAAAA,EAAAA,KAAI8vI,EAAAA,EAAAA,IAAiB,CAAE3jC,OAAM0kB,UAAShS,SAAS,IACvD,CAEA,SAAU2mP,GAAuB,iBAC/BC,EAAgB,cAChBC,EAAa,KACbv5P,EAAI,iBACJq/K,EAAgB,gBAChBm6E,EAAe,mBACfC,EAAqB,GAAE,gBACvBC,EAAe,eACfC,EAAc,eACdC,GAAiB,EAAK,uBACtBC,EAAyB,CAAChwU,GAAMA,KAGhC,MAAM5tB,EAAUy9V,EAAgBH,GAEhC,GAAIC,EAAiB,CACnB,IAAIM,GAAkB,EAGtB,GAAIF,EAAgB,CAElB,GAAkC,mBAAvBH,EACT,MAAM,IAAI3rW,MACR,oHAGJ,GAAsC,mBAA3B+rW,EACT,MAAM,IAAI/rW,MACR,+GAIJ,KAAOmO,EAAQ9L,QAAQ,CACrB,MAAMkC,EAAI4J,EAAQ0G,MACZo3V,EAA2BN,EAAmBpnW,GAC9C2nW,EAAgBH,EAAuBxnW,IACvC,aAAEk9R,SAAuBhjS,EAAAA,EAAAA,IAC7B0tW,EAAAA,GACAT,EACAO,EACAC,EACA,CAAEL,mBAEJ,GAAIpqE,EAEF,YADAuqE,GAAkB,EAGtB,CACF,KAAO,CACL,MAAM,aAAEvqE,SAAuBhjS,EAAAA,EAAAA,IAC7B0tW,EAAAA,GACAT,EACAC,EACAx9V,EACA,CAAE09V,mBAEJG,IAAoBvqE,CACtB,CAGIuqE,UACIjmW,EAAAA,EAAAA,KACJ+qR,EAAAA,EAAAA,IAAuBS,EAAkBr/K,EAAMs5P,IAGrD,CACF,CAUA,QARA,kBACQryT,EAAAA,EAAAA,IAAI,EACRizT,EAAAA,EAAAA,IAAWt1N,EAAAA,GAAsBF,IACjC6vN,EAAAA,EAAAA,IAAUzvN,EAAAA,GAA2Bu0N,WAEjCplW,EAAAA,EAAAA,GAAKqnJ,EAAAA,GACb,8ECpNA,SAAS6+M,EAAWlhW,EAAGvM,EAAG0H,GACxB,IAAI,SAA4B,OAAOoR,QAAQ6iU,UAAUlxU,MAAM,KAAMpJ,WACrE,IAAIoG,EAAI,CAAC,MACTA,EAAEtC,KAAKsF,MAAMhD,EAAGzH,GAChB,IAAI2F,EAAI,IAAK4G,EAAE+F,KAAK7H,MAAM8B,EAAG9E,IAC7B,OAAOC,IAAK,OAAe/B,EAAG+B,EAAExI,WAAYyG,CAC9C,oBCRAlG,EAAOC,QAAU,IAA0B,6TCMpC,MAAMolV,EAAO,mBAEPp9N,EAA2B,OAAOo9N,6BAClCj9N,EAA8B,OAAOi9N,gCACrC98N,EAAyB,OAAO88N,2BAChC4oB,EAAiC,OAAO5oB,mCAExC38N,EAAiC,OAAO28N,mCACxCv8N,EAAmC,OAAOu8N,qCAC1Cp8N,EAAqB,OAAOo8N,uBAC5B6oB,EAAyB,OAAO7oB,2BAChC8oB,EAAqB,OAAO9oB,uBAC5B+oB,EAAqB,OAAO/oB,uBAC5BgpB,EAA8B,OAAOhpB,gCAErC7zD,EAA+B,OAAO6zD,iCACtCh8N,EAAsB,OAAOg8N,wBAC7B97N,EAAiB,OAAO87N,mBACxBx7N,EAAgC,OAAOw7N,kCACvCr7N,EAAgC,OAAOq7N,kCAEvCipB,EAAQ,CACnBC,OAAQ,CAAE70T,q7FAAiBmF,gBAAiB,UAAWuC,OAAQ,IAC/DotT,UAAW,CAAE90T,qnEAAoBmF,gBAAiB,UAAWuC,OAAQ,IACrEqtT,KAAM,CAAE/0T,qvIAAemF,gBAAiB,UAAWuC,OAAQ,IAE3DstT,SAAU,CAAEh1T,y6NAAmBmF,gBAAiB,UAAWuC,OAAQ,IACnEutT,QAAS,CACPj1T,UAAKk1T,GACL/vT,gBAAiB,UACjBgwT,eAAgB,CACdzvU,QAAS,OACTmtE,eAAgB,aAChB3sD,WAAY,UAEd/E,MAAO,CACLgD,QAAS,SACT9C,SAAU,WACVujF,KAAM,qHC5CZ,IAAIwwO,EAAY,EAAQ,QACpB32O,EAAY,EAAQ,QACpBj4B,EAAW,EAAQ,QAGnB6uQ,EAAY7uQ,GAAYA,EAAS8uQ,MAmBjCA,EAAQD,EAAY52O,EAAU42O,GAAaD,EAE/C9uW,EAAOC,QAAU+uW,kaCvBV,MAAM9zB,EAAkB,YAAKvmR,EAAAA,EAAAA,CAAAA,+EAAAA,CAAAA,WAClC,SAACC,EAAAA,2UAAUA,CAAAA,CAACC,QAAQ,aAAgBF,cAAAA,WAClC,SAACj+C,OAAAA,CACCu4V,SAAS,UACTC,SAAS,UACT9vV,EAAE,0qBCRRpf,EAAOC,QAAU,IAA0B,sNCiB3C,SAASu/B,EAAKvY,EAAQhb,EAAMkjW,GAC1B,KAAMljW,KAAQgb,GACZ,OAGF,MAAM8nB,EAAW9nB,EAAOhb,GAClBi2B,EAAUitU,EAAmBpgU,GAIZ,mBAAZ7M,GACTktU,EAAoBltU,EAAS6M,GAG/B9nB,EAAOhb,GAAQi2B,CACjB,CASA,SAASmtU,EAAyBrsW,EAAKiJ,EAAM/L,GAC3C,IACEV,OAAO8lB,eAAetiB,EAAKiJ,EAAM,CAE/B/L,MAAOA,EACP8lB,UAAU,EACVD,cAAc,GAElB,CAAE,MAAOupV,GACP,KAAe,KAAOtgU,IAAI,0CAA0C/iC,eAAmBjJ,EACzF,CACF,CASA,SAASosW,EAAoBltU,EAAS6M,GACpC,IACE,MAAM9rC,EAAQ8rC,EAAStvC,WAAa,CAAC,EACrCyiC,EAAQziC,UAAYsvC,EAAStvC,UAAYwD,EACzCosW,EAAyBntU,EAAS,sBAAuB6M,EAC3D,CAAE,MAAOugU,GAAM,CACjB,CASA,SAASC,EAAoBhyU,GAC3B,OAAOA,EAAKiyU,mBACd,CAQA,SAASC,EAAUhoV,GACjB,OAAOjoB,OAAOwK,KAAKyd,GAChB7iB,KAAIrC,GAAO,GAAGkxD,mBAAmBlxD,MAAQkxD,mBAAmBhsC,EAAOllB,QACnErB,KAAK,IACV,CAUA,SAASwuW,EACPxvW,GAIA,IAAI,QAAQA,GACV,MAAO,CACLshB,QAASthB,EAAMshB,QACfvV,KAAM/L,EAAM+L,KACZ0tB,MAAOz5B,EAAMy5B,SACVg2U,EAAiBzvW,IAEjB,IAAI,QAAQA,GAAQ,CACzB,MAAMumB,EAEP,CACGrjB,KAAMlD,EAAMkD,KACZ4jB,OAAQ4oV,EAAqB1vW,EAAM8mB,QACnCk8H,cAAe0sN,EAAqB1vW,EAAMgjJ,kBACvCysN,EAAiBzvW,IAOtB,MAJ2B,oBAAhB2vW,cAA+B,QAAa3vW,EAAO2vW,eAC5DppV,EAAOqpV,OAAS5vW,EAAM4vW,QAGjBrpV,CACT,CACE,OAAOvmB,CAEX,CAGA,SAAS0vW,EAAqB5oV,GAC5B,IACE,OAAO,QAAUA,IAAU,QAAiBA,GAAUxnB,OAAOC,UAAUG,SAASQ,KAAK4mB,EACvF,CAAE,MAAOo4U,GACP,MAAO,WACT,CACF,CAGA,SAASuQ,EAAiB3sW,GACxB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,CAC3C,MAAM+sW,EAAiB,CAAC,EACxB,IAAK,MAAM1qO,KAAYriI,EACjBxD,OAAOC,UAAUC,eAAeU,KAAK4C,EAAKqiI,KAC5C0qO,EAAe1qO,GAAY,EAAOA,IAGtC,OAAO0qO,CACT,CACE,MAAO,CAAC,CAEZ,CAOA,SAASC,EAA+Bl0P,EAAWs0N,EAAY,IAC7D,MAAMpmU,EAAOxK,OAAOwK,KAAK0lW,EAAqB5zP,IAC9C9xG,EAAKu6B,OAEL,MAAM0rU,EAAWjmW,EAAK,GAEtB,IAAKimW,EACH,MAAO,uBAGT,GAAIA,EAASjsW,QAAUosU,EACrB,OAAO,QAAS6/B,EAAU7/B,GAG5B,IAAK,IAAI8/B,EAAelmW,EAAKhG,OAAQksW,EAAe,EAAGA,IAAgB,CACrE,MAAMC,EAAanmW,EAAKzC,MAAM,EAAG2oW,GAAchvW,KAAK,MACpD,KAAIivW,EAAWnsW,OAASosU,GAGxB,OAAI8/B,IAAiBlmW,EAAKhG,OACjBmsW,GAEF,QAASA,EAAY//B,EAC9B,CAEA,MAAO,EACT,CAQA,SAASggC,EAAkBC,GAOzB,OAAOC,EAAmBD,EAHH,IAAIruW,IAI7B,CAEA,SAASsuW,EAAmBD,EAAYE,GACtC,GAyCF,SAAgBvqW,GACd,KAAK,QAAcA,GACjB,OAAO,EAGT,IACE,MAAMiG,EAAQzM,OAAO0D,eAAe8C,GAAS4oB,YAAY3iB,KACzD,OAAQA,GAAiB,WAATA,CAClB,CAAE,MAAO1L,GACP,OAAO,CACT,CACF,CApDMiwW,CAAOH,GAAa,CAEtB,MAAMI,EAAUF,EAAer7V,IAAIm7V,GACnC,QAAgBtwW,IAAZ0wW,EACF,OAAOA,EAGT,MAAMC,EAAc,CAAC,EAErBH,EAAe/tW,IAAI6tW,EAAYK,GAE/B,IAAK,MAAMnuW,KAAO/C,OAAOqyC,oBAAoBw+T,QACZ,IAApBA,EAAW9tW,KACpBmuW,EAAYnuW,GAAO+tW,EAAmBD,EAAW9tW,GAAMguW,IAI3D,OAAOG,CACT,CAEA,GAAIv+V,MAAMie,QAAQigV,GAAa,CAE7B,MAAMI,EAAUF,EAAer7V,IAAIm7V,GACnC,QAAgBtwW,IAAZ0wW,EACF,OAAOA,EAGT,MAAMC,EAAc,GAQpB,OANAH,EAAe/tW,IAAI6tW,EAAYK,GAE/BL,EAAWhuW,SAAS82D,IAClBu3S,EAAYhrW,KAAK4qW,EAAmBn3S,EAAMo3S,GAAgB,IAGrDG,CACT,CAEA,OAAOL,CACT,8ECxOArwW,EAAOC,QAVP,SAA2B0wW,EAAKC,GAC9B,GAAIA,EAAaC,WACfD,EAAaC,WAAWjqR,QAAU+pR,MAC7B,CACL,KAAOC,EAAa/5O,YAClB+5O,EAAat0T,YAAYs0T,EAAa/5O,YAExC+5O,EAAa12T,YAAYlD,SAAS85T,eAAeH,GACnD,CACF,2BCHQ,SAAW7zV,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,qGAAqG/b,MACzG,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,CACNL,WACI,gEAAgEhc,MAC5D,KAERic,OAAQ,iEAAiEjc,MACrE,KAEJkc,SAAU,iBAEdI,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,iBACTE,QAAS,iBACTE,QAAS,kBACTD,SAAU,wBACVE,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUnU,GACd,OAAOA,EAAEoxB,QACL,iCACA,SAAUi1U,EAAIC,EAAIC,GACd,MAAc,MAAPA,EAAaD,EAAK,KAAOA,EAAKC,EAAK,IAC9C,GAER,EACAnyV,KAAM,SAAUpU,GACZ,MAAI,4BAA4B+mB,KAAK/mB,GAC1BA,EAAEoxB,QAAQ,SAAU,UAE3B,OAAOrK,KAAK/mB,GACLA,EAAEoxB,QAAQ,QAAS,YAEvBpxB,CACX,EACAA,EAAG,iBACHqU,GAAI,UACJC,EAAG,OACHC,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,MACHC,GAAI,SACJC,EAAG,OACHC,GAAI,WAERC,uBAAwB,8BACxBC,QAAS,SAAUC,GACf,OAAe,IAAXA,EACOA,EAEI,IAAXA,EACOA,EAAS,MAGhBA,EAAS,IACRA,GAAU,KAAOA,EAAS,IAAO,GAClCA,EAAS,KAAQ,EAEV,MAAQA,EAEZA,EAAS,IACpB,EACAG,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAhGyCC,CAAQ,EAAQ,iPCNnD,SAASgxV,EAAap4U,GAC3B,MAAO,CAAC,QAAS,SAAU,SAAS1e,SAAS0e,EAC/C,CACO,SAASq4U,EAAiBr4U,GAC/B,QAAKA,GAIkB,iBAATA,IAAsBvhB,OAAOkjB,MAAM3B,EACnD,4CCTA94B,EAAOC,QAAU,IAA0B,wLCQ3C,SAASmxW,EAAct4U,GACrB,IACIu4U,EAAY,GAAGjmW,OADNxJ,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,GAE7E0vW,EAAQD,EAAU7jW,MAAM,YAC5B,OAAI8jW,EACKx4U,GAAQqK,WAAWmuU,EAAM,IAAM,KAEjCnuU,WAAWkuU,EACpB,CACA,SAASE,EAAgBryO,EAAMnsE,GAC7B,IAAI/rD,EAAO+rD,GAAU,GACnBrpD,GAAQ,OAAe1C,EAAM,GAC7BwqW,EAAU9nW,EAAM,GAChB+nW,EAAU/nW,EAAM,GAClB,MAAO,CAAC0nW,EAAclyO,EAAK19E,MAAOgwT,GAAUJ,EAAclyO,EAAK99E,OAAQqwT,GACzE,CACA,SAASC,IACP,IAAIl/R,EAAS5wE,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAO,CAAC4wE,EAAO,GAAIA,EAAO,GAC5B,CACA,SAASm/R,EAAczyO,EAAM1sD,GAC3B,IAGIhzD,EAHAoyV,EAAYp/R,EAAO,GACnBq/R,EAAYr/R,EAAO,GAqBvB,OAfEhzD,EADgB,MAAdoyV,EACE1yO,EAAK1/G,EACc,MAAdoyV,EACL1yO,EAAK1/G,EAAI0/G,EAAK99E,OAEd89E,EAAK1/G,EAAI0/G,EAAK99E,OAAS,EAWtB,CACL1jB,EARgB,MAAdm0U,EACE3yO,EAAKxhG,EACc,MAAdm0U,EACL3yO,EAAKxhG,EAAIwhG,EAAK19E,MAEd09E,EAAKxhG,EAAIwhG,EAAK19E,MAAQ,EAI1BhiC,EAAGA,EAEP,CACA,SAASsyV,EAAct/R,EAAQl7D,GAC7B,IAAIy6V,EAAa,CACfjlW,EAAG,IACH1I,EAAG,IACHiqB,EAAG,IACHpmB,EAAG,KAEL,OAAOuqE,EAAO5tE,KAAI,SAAUotW,EAAOrqW,GACjC,OAAIA,IAAM2P,EACDy6V,EAAWC,IAAU,IAEvBA,CACT,IAAG9wW,KAAK,GACV,CACe,SAAS+wW,EAASt8R,EAAM2/B,EAAUtuF,EAAQwtD,EAAWR,EAAmBmB,EAAY+8R,GACjG,IAAI99R,EAAkB,WAAe,CACjC5S,OAAO,EACPgwS,QAAS,EACTC,QAAS,EACTU,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,OAAQ,EACRC,OAAQ,EACRj2I,MAAOvoJ,EAAkBQ,IAAc,CAAC,IAE1CH,GAAmB,OAAeD,EAAiB,GACnDq+R,EAAap+R,EAAiB,GAC9Bq+R,EAAgBr+R,EAAiB,GAC/Bs+R,EAAgB,SAAa,GAC7BC,EAAe,WAAc,WAC/B,OAAKt9P,GAGE,QAAgBA,GAFd,EAGX,GAAG,CAACA,IAKAu9P,EAAc,SAAa,CAAC,GAI3Bl9R,IAFHk9R,EAAYlqW,QAAU,CAAC,GAOzB,IAAImqW,GAAU,QAAS,WACrB,GAAIx9P,GAAYtuF,GAAU2uD,EAAM,CAC9B,IAAIo9R,EAAuBC,EAAcC,EAAcC,EAkCnDC,EAjCAC,EAAe99P,EACfm5J,EAAM2kG,EAAan2O,cAEnBo2O,GADM,OAAOD,GACen1O,iBAAiBm1O,GAC/C5xT,EAAQ6xT,EAAsB7xT,MAC9BJ,EAASiyT,EAAsBjyT,OAC/BkyT,EAAgBD,EAAsBt4T,SACpCw4T,EAAaH,EAAav4T,MAAMyjF,KAChCk1O,EAAYJ,EAAav4T,MAAMG,IAC/By4T,EAAcL,EAAav4T,MAAM0jF,MACjCm1O,EAAeN,EAAav4T,MAAM0G,OAClCoyT,EAAiBP,EAAav4T,MAAM8D,SAGpC+3S,GAAgB,QAAc,OAAc,CAAC,EAAG1iR,EAAkBQ,IAAaW,GAG/Ey+R,EAAqBnlG,EAAI1nP,cAAc,OAiB3C,GAhByD,QAAxDgsV,EAAwBK,EAAan5T,qBAAqD,IAA1B84T,GAAoCA,EAAsB74T,YAAY05T,GACvIA,EAAmB/4T,MAAMyjF,KAAO,GAAGlzH,OAAOgoW,EAAaS,WAAY,MACnED,EAAmB/4T,MAAMG,IAAM,GAAG5vC,OAAOgoW,EAAaU,UAAW,MACjEF,EAAmB/4T,MAAME,SAAWu4T,EACpCM,EAAmB/4T,MAAMuG,OAAS,GAAGh2C,OAAOgoW,EAAazpT,aAAc,MACvEiqT,EAAmB/4T,MAAM2G,MAAQ,GAAGp2C,OAAOgoW,EAAal8E,YAAa,MAGrEk8E,EAAav4T,MAAMyjF,KAAO,IAC1B80O,EAAav4T,MAAMG,IAAM,IACzBo4T,EAAav4T,MAAM0jF,MAAQ,OAC3B60O,EAAav4T,MAAM0G,OAAS,OAC5B6xT,EAAav4T,MAAM8D,SAAW,SAI1BxsC,MAAMie,QAAQpJ,GAChBmsV,EAAa,CACXz1U,EAAG1W,EAAO,GACVxH,EAAGwH,EAAO,GACVw6B,MAAO,EACPJ,OAAQ,OAEL,CACL,IAAI2yT,EAASC,EACT90O,EAAOl4G,EAAOm8M,wBAClBjkG,EAAKxhG,EAA2B,QAAtBq2U,EAAU70O,EAAKxhG,SAA2B,IAAZq2U,EAAqBA,EAAU70O,EAAKZ,KAC5EY,EAAK1/G,EAA2B,QAAtBw0V,EAAU90O,EAAK1/G,SAA2B,IAAZw0V,EAAqBA,EAAU90O,EAAKlkF,IAC5Em4T,EAAa,CACXz1U,EAAGwhG,EAAKxhG,EACRle,EAAG0/G,EAAK1/G,EACRgiC,MAAO09E,EAAK19E,MACZJ,OAAQ89E,EAAK99E,OAEjB,CACA,IAAI6yT,EAAYb,EAAajwI,wBAC7B8wI,EAAUv2U,EAAqC,QAAhCs1U,EAAeiB,EAAUv2U,SAAgC,IAAjBs1U,EAA0BA,EAAeiB,EAAU31O,KAC1G21O,EAAUz0V,EAAqC,QAAhCyzV,EAAegB,EAAUz0V,SAAgC,IAAjByzV,EAA0BA,EAAegB,EAAUj5T,IAC1G,IAAIk5T,EAAuBzlG,EAAIz0K,gBAC7B+jC,EAAcm2O,EAAqBn2O,YACnCC,EAAek2O,EAAqBl2O,aACpCm2O,EAAcD,EAAqBC,YACnC1qT,EAAeyqT,EAAqBzqT,aACpC2qT,EAAYF,EAAqBE,UACjCC,EAAaH,EAAqBG,WAChC7xC,EAAcyxC,EAAU7yT,OACxBshR,EAAauxC,EAAUzyT,MACvB8yT,EAAenB,EAAW/xT,OAC1BmzT,EAAcpB,EAAW3xT,MAGzBgzT,EAAgB,CAClBl2O,KAAM,EACNtjF,IAAK,EACLujF,MAAOR,EACPx8E,OAAQy8E,GAENy2O,EAAe,CACjBn2O,MAAO+1O,EACPr5T,KAAMo5T,EACN71O,MAAO41O,EAAcE,EACrB9yT,OAAQkI,EAAe2qT,GAErBr8O,GAAa2+N,EAAc3+N,WAC3B28O,GAAU,UACVC,GAAgB,eACD,WAAf58O,IAA2BA,KAAe48O,KAC5C58O,GAAa28O,IAEf,IAAIE,GAAiB78O,KAAe48O,GAChCE,IAAmB,QAAeJ,EAAc7B,GAChDkC,IAAoB,QAAeN,EAAe5B,GAClDmC,GAAch9O,KAAe28O,GAAUI,GAAoBD,GAI3DG,GAAyBJ,GAAiBE,GAAoBC,GAGlE3B,EAAav4T,MAAMyjF,KAAO,OAC1B80O,EAAav4T,MAAMG,IAAM,OACzBo4T,EAAav4T,MAAM0jF,MAAQ,IAC3B60O,EAAav4T,MAAM0G,OAAS,IAC5B,IAAI0zT,GAAkB7B,EAAajwI,wBAGnCiwI,EAAav4T,MAAMyjF,KAAOi1O,EAC1BH,EAAav4T,MAAMG,IAAMw4T,EACzBJ,EAAav4T,MAAM0jF,MAAQk1O,EAC3BL,EAAav4T,MAAM0G,OAASmyT,EAC5BN,EAAav4T,MAAM8D,SAAWg1T,EAC4B,QAAzDT,EAAyBE,EAAan5T,qBAAsD,IAA3Bi5T,GAAqCA,EAAuB52T,YAAYs3T,GAG1I,IAAIsB,IAAU,QAAMp0W,KAAKgpC,MAAM44R,EAAav/R,WAAWqe,GAAS,KAAQ,KACpE2zT,IAAU,QAAMr0W,KAAKgpC,MAAM04R,EAAcr/R,WAAWie,GAAU,KAAQ,KAG1E,GAAgB,IAAZ8zT,IAA6B,IAAZC,KAAiB,QAAMnuV,MAAY,OAAUA,GAChE,OAIF,IAAI+rC,GAAS2jS,EAAc3jS,OACzBqiT,GAAe1e,EAAc0e,aAC3BC,GAAmB9D,EAAgB0C,EAAWlhT,IAChDuiT,IAAoB,OAAeD,GAAkB,GACrDE,GAAeD,GAAkB,GACjCE,GAAeF,GAAkB,GAC/BG,GAAoBlE,EAAgB4B,EAAYiC,IAClDM,IAAoB,OAAeD,GAAmB,GACtDE,GAAgBD,GAAkB,GAClCE,GAAgBF,GAAkB,GACpCvC,EAAWz1U,GAAKi4U,GAChBxC,EAAW3zV,GAAKo2V,GAGhB,IAAIzsW,GAAQutV,EAAclkR,QAAU,GAClC5nE,IAAQ,OAAezB,GAAO,GAC9B0sW,GAAajrW,GAAM,GAEjBmrT,GAAe27C,EADH9mW,GAAM,IAElBkrT,GAAc47C,EAAYmE,IAC1BC,GAAmBnE,EAAcwB,EAAYp9C,IAC7CggD,GAAkBpE,EAAcsC,EAAWn+C,IAG3CkgD,IAAgB,OAAc,CAAC,EAAGtf,GAGlCuf,GAAcH,GAAiBp4U,EAAIq4U,GAAgBr4U,EAAI63U,GACvDW,GAAcJ,GAAiBt2V,EAAIu2V,GAAgBv2V,EAAIg2V,GAI3D,SAASW,GAA2B3E,EAASC,GAC3C,IAAI2E,EAAOx0W,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAKmzW,GAC3E1mV,EAAI4lV,EAAUv2U,EAAI8zU,EAClB1kW,EAAImnW,EAAUz0V,EAAIiyV,EAClBxpW,EAAIomB,EAAIq0S,EACRt+T,EAAI0I,EAAI01T,EACR6zC,EAAWv1W,KAAKmrB,IAAIoC,EAAG+nV,EAAK93O,MAC5Bg4O,EAAWx1W,KAAKmrB,IAAInf,EAAGspW,EAAKp7T,KAC5Bu7T,EAAWz1W,KAAK6+B,IAAI13B,EAAGmuW,EAAK73O,OAC5Bi4O,EAAW11W,KAAK6+B,IAAIv7B,EAAGgyW,EAAK70T,QAChC,OAAOzgD,KAAKmrB,IAAI,GAAIsqV,EAAWF,IAAaG,EAAWF,GACzD,CACA,IAuBIG,GACAC,GACAC,GACAC,GA1BAC,GAAgCV,GAA2BF,GAAaC,IAGxEY,GAAkCX,GAA2BF,GAAaC,GAAapB,IAGvFiC,GAAqBpF,EAAcwB,EAAY,CAAC,IAAK,MACrD6D,GAAoBrF,EAAcsC,EAAW,CAAC,IAAK,MACnDgD,GAAqBtF,EAAcwB,EAAY,CAAC,IAAK,MACrD+D,GAAoBvF,EAAcsC,EAAW,CAAC,IAAK,MACnDt1T,GAAW+3S,EAAc/3S,UAAY,CAAC,EACtCyzB,GAAUzzB,GAASyzB,QACrBC,GAAU1zB,GAAS0zB,QACnB2kR,GAASr4S,GAASq4S,OAClBl/N,GAASn5E,GAASm5E,OAChBq/O,GAAgB,SAAuB/5T,GACzC,MAAmB,kBAARA,EACFA,EAEFA,GAAO,CAChB,EAOA,SAASg6T,KACPX,GAAaxC,EAAUz0V,EAAI02V,GAC3BQ,GAAkBD,GAAaj0C,EAC/Bm0C,GAAa1C,EAAUv2U,EAAIu4U,GAC3BW,GAAiBD,GAAaj0C,CAChC,CACA00C,KAGA,IAAIC,GAAcF,GAAc9kS,IAC5BilS,GAASxhD,GAAY,KAAOC,GAAa,GAG7C,GAAIshD,IAAkC,MAAnBvhD,GAAY,KAAe4gD,GAAkB1B,GAAuBzzT,QAAUsxT,EAAYlqW,QAAQ4uW,IAAK,CACxH,IAAIC,GAAiBtB,GACjBoB,GACFE,IAAkBh1C,EAAc8xC,EAEhCkD,GAAiBT,GAAmBv3V,EAAI03V,GAAkB13V,EAAIg2V,GAEhE,IAAIiC,GAAiBtB,GAA2BF,GAAauB,IACzDE,GAA0BvB,GAA2BF,GAAauB,GAAgB1C,IAGtF2C,GAAiBZ,IAAiCY,KAAmBZ,MAAmCjC,IAExG8C,IAA2BZ,KACzBjE,EAAYlqW,QAAQ4uW,IAAK,EACzBrB,GAAcsB,GACdhC,IAAgBA,GAChBQ,GAAcxjS,OAAS,CAACs/R,EAAch8C,GAAa,GAAIg8C,EAAc/7C,GAAc,KAEnF88C,EAAYlqW,QAAQ4uW,IAAK,CAE7B,CAGA,GAAIF,IAAkC,MAAnBvhD,GAAY,KAAe2gD,GAAazB,GAAuBh6T,KAAO63T,EAAYlqW,QAAQ+nO,IAAK,CAChH,IAAIinI,GAAkBzB,GAClBoB,GACFK,IAAmBn1C,EAAc8xC,EAEjCqD,GAAkBV,GAAmBz3V,EAAIw3V,GAAkBx3V,EAAIg2V,GAEjE,IAAIoC,GAAkBzB,GAA2BF,GAAa0B,IAC1DE,GAA2B1B,GAA2BF,GAAa0B,GAAiB7C,IAGxF8C,GAAkBf,IAAiCe,KAAoBf,MAAmCjC,IAE1GiD,IAA4Bf,KAC1BjE,EAAYlqW,QAAQ+nO,IAAK,EACzBwlI,GAAcyB,GACdnC,IAAgBA,GAChBQ,GAAcxjS,OAAS,CAACs/R,EAAch8C,GAAa,GAAIg8C,EAAc/7C,GAAc,KAEnF88C,EAAYlqW,QAAQ+nO,IAAK,CAE7B,CAGA,IAAIonI,GAAcX,GAAc/kS,IAG5B2lS,GAASjiD,GAAY,KAAOC,GAAa,GAG7C,GAAI+hD,IAAkC,MAAnBhiD,GAAY,KAAe8gD,GAAiB5B,GAAuBz2O,OAASs0O,EAAYlqW,QAAQqvW,IAAK,CACtH,IAAIC,GAAiBhC,GACjB8B,GACFE,IAAkBv1C,EAAa6xC,EAE/B0D,GAAiBlB,GAAmBr5U,EAAIw5U,GAAkBx5U,EAAI63U,GAEhE,IAAI2C,GAAmB/B,GAA2B8B,GAAgB/B,IAC9DiC,GAA4BhC,GAA2B8B,GAAgB/B,GAAapB,IAGxFoD,GAAmBrB,IAAiCqB,KAAqBrB,MAAmCjC,IAE5GuD,IAA6BrB,KAC3BjE,EAAYlqW,QAAQqvW,IAAK,EACzB/B,GAAcgC,GACd1C,IAAgBA,GAChBS,GAAcxjS,OAAS,CAACs/R,EAAch8C,GAAa,GAAIg8C,EAAc/7C,GAAc,KAEnF88C,EAAYlqW,QAAQqvW,IAAK,CAE7B,CAGA,GAAIF,IAAkC,MAAnBhiD,GAAY,KAAe6gD,GAAa3B,GAAuB12O,MAAQu0O,EAAYlqW,QAAQyvW,IAAK,CACjH,IAAIC,GAAkBpC,GAClB8B,GACFM,IAAmB31C,EAAa6xC,EAEhC8D,GAAkBpB,GAAmBv5U,EAAIs5U,GAAkBt5U,EAAI63U,GAEjE,IAAI+C,GAAmBnC,GAA2BkC,GAAiBnC,IAC/DqC,GAA4BpC,GAA2BkC,GAAiBnC,GAAapB,IAGzFwD,GAAmBzB,IAAiCyB,KAAqBzB,MAAmCjC,IAE5G2D,IAA6BzB,KAC3BjE,EAAYlqW,QAAQyvW,IAAK,EACzBnC,GAAcoC,GACd9C,IAAgBA,GAChBS,GAAcxjS,OAAS,CAACs/R,EAAch8C,GAAa,GAAIg8C,EAAc/7C,GAAc,KAEnF88C,EAAYlqW,QAAQyvW,IAAK,CAE7B,CAGAhB,KACA,IAAIoB,IAAuB,IAAXxhB,GAAkB,EAAIA,GACb,iBAAdwhB,KAEL7B,GAAa7B,GAAkBx2O,OACjC23O,IAAeU,GAAa7B,GAAkBx2O,KAAOi3O,GACjDpC,EAAWz1U,EAAI62U,EAAcO,GAAkBx2O,KAAOk6O,KACxDvC,IAAe9C,EAAWz1U,EAAIo3U,GAAkBx2O,KAAOi2O,EAAciE,KAKrE5B,GAAiB9B,GAAkBv2O,QACrC03O,IAAeW,GAAiB9B,GAAkBv2O,MAAQg3O,GACtDpC,EAAWz1U,EAAIo3U,GAAkBv2O,MAAQi6O,KAC3CvC,IAAe9C,EAAWz1U,EAAIo3U,GAAkBv2O,MAAQi6O,MAI9D,IAAIC,IAAuB,IAAX3gP,GAAkB,EAAIA,GACb,iBAAd2gP,KAELhC,GAAa3B,GAAkB95T,MACjCk7T,IAAeO,GAAa3B,GAAkB95T,IAAMw6T,GAIhDrC,EAAW3zV,EAAI80V,EAAeQ,GAAkB95T,IAAMy9T,KACxDvC,IAAe/C,EAAW3zV,EAAIs1V,GAAkB95T,IAAMs5T,EAAemE,KAKrE/B,GAAkB5B,GAAkBvzT,SACtC20T,IAAeQ,GAAkB5B,GAAkBvzT,OAASi0T,GACxDrC,EAAW3zV,EAAIs1V,GAAkBvzT,OAASk3T,KAC5CvC,IAAe/C,EAAW3zV,EAAIs1V,GAAkBvzT,OAASk3T,MAO/D,IAAIC,GAAYzE,EAAUv2U,EAAIu4U,GAC1B0C,GAAaD,GAAYh2C,EACzBk2C,GAAW3E,EAAUz0V,EAAI02V,GACzB2C,GAAcD,GAAWp2C,EACzBs2C,GAAa3F,EAAWz1U,EACxBq7U,GAAcD,GAAavE,EAC3ByE,GAAY7F,EAAW3zV,EACvBy5V,GAAeD,GAAY1E,EAI3B4E,IAHUp4W,KAAKmrB,IAAIysV,GAAWI,IACnBh4W,KAAK6+B,IAAIg5U,GAAYI,KACC,EACVL,GAIvBS,IAHSr4W,KAAKmrB,IAAI2sV,GAAUI,IAChBl4W,KAAK6+B,IAAIk5U,GAAaI,KACD,EACVL,GAC3B1G,SAAoDA,EAAa58P,EAAU0gQ,IAG3E,IAAIoD,GAAgBnE,GAAgB12O,MAAQ01O,EAAUv2U,GAAKu4U,GAAchC,EAAUzyT,OAC/E63T,GAAiBpE,GAAgB1zT,OAAS0yT,EAAUz0V,GAAK02V,GAAcjC,EAAU7yT,QACrE,IAAZ8zT,KACFe,GAAcn1W,KAAKgpC,MAAMmsU,IACzBmD,GAAgBt4W,KAAKgpC,MAAMsvU,KAEb,IAAZjE,KACFe,GAAcp1W,KAAKgpC,MAAMosU,IACzBmD,GAAiBv4W,KAAKgpC,MAAMuvU,KAc9B3G,EAZqB,CACnBlxS,OAAO,EACPgwS,QAASyE,GAAcf,GACvBzD,QAASyE,GAAcf,GACvBhD,QAASiH,GAAgBlE,GACzB9C,QAASiH,GAAiBlE,GAC1B9C,OAAQ6G,GAAahE,GACrB5C,OAAQ6G,GAAahE,GACrB5C,OAAQ2C,GACR1C,OAAQ2C,GACR54I,MAAOy5I,IAGX,CACF,IAcIsD,EAAa,WACf5G,GAAc,SAAU6G,GACtB,OAAO,QAAc,OAAc,CAAC,EAAGA,GAAM,CAAC,EAAG,CAC/C/3S,OAAO,GAEX,GACF,EAOA,OANA,OAAgB83S,EAAY,CAAC9kS,KAC7B,QAAgB,WACTmB,GACH2jS,GAEJ,GAAG,CAAC3jS,IACG,CAAC88R,EAAWjxS,MAAOixS,EAAWjB,QAASiB,EAAWhB,QAASgB,EAAWN,QAASM,EAAWL,QAASK,EAAWJ,OAAQI,EAAWH,OAAQG,EAAWF,OAAQE,EAAWD,OAAQC,EAAWl2I,MA1B9K,WACjBo2I,EAAchqW,SAAW,EACzB,IAAIoI,EAAK4hW,EAAchqW,QAGvB3D,QAAQC,UAAUuD,MAAK,WACjBmqW,EAAchqW,UAAYoI,GAC5B+hW,GAEJ,GACF,EAiBF,2BCzgBQ,SAAWh2V,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwF/b,MAC5F,KAEJmc,YAAa,kDAAkDnc,MAAM,KACrEqc,SAAU,2DAA2Drc,MACjE,KAEJsc,cAAe,8BAA8Btc,MAAM,KACnDuc,YAAa,uBAAuBvc,MAAM,KAC1Cyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,gBACTE,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNpU,EAAG,gBACHqU,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,GACf,IAAIxb,EAAIwb,EAAS,GAWjB,OAAOA,GAT6B,MAAxBA,EAAS,IAAO,IACd,KACM,IAANxb,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,KAExB,EACA2b,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CAxEyCC,CAAQ,EAAQ,2BCN1DlgB,EAAOC,QAAU,IAA0B,wICO3C,SAASu5W,EAAsB3vT,EAAOp8C,GACpC,MAAM,YAAEgsW,EAAW,KAAE/3V,EAAI,YAAEo5U,EAAW,sBAAE74U,GAA0BxU,GA0FpE,SAA0Bo8C,EAAOp8C,GAC/B,MAAM,MAAEurE,EAAK,KAAEh1C,EAAI,KAAE+8G,EAAI,SAAE7pD,EAAQ,MAAE9oB,EAAK,gBAAEsrS,GAAoBjsW,EAE1DksW,GAAe,QAAkB3gS,GACnC2gS,GAAgBn6W,OAAOwK,KAAK2vW,GAAc31W,SAC5C6lD,EAAMmvB,MAAQ,IAAK2gS,KAAiB9vT,EAAMmvB,QAG5C,MAAM4gS,GAAc,QAAkB51U,GAClC41U,GAAep6W,OAAOwK,KAAK4vW,GAAa51W,SAC1C6lD,EAAM7lB,KAAO,IAAK41U,KAAgB/vT,EAAM7lB,OAG1C,MAAM61U,GAAc,QAAkB94N,GAClC84N,GAAer6W,OAAOwK,KAAK6vW,GAAa71W,SAC1C6lD,EAAMk3F,KAAO,IAAK84N,KAAgBhwT,EAAMk3F,OAG1C,MAAM+4N,GAAkB,QAAkB5iR,GACtC4iR,GAAmBt6W,OAAOwK,KAAK8vW,GAAiB91W,SAClD6lD,EAAMqtC,SAAW,IAAK4iR,KAAoBjwT,EAAMqtC,WAG9C9oB,IACFvkB,EAAMukB,MAAQA,GAIZsrS,GAAkC,gBAAf7vT,EAAMzmD,OAC3BymD,EAAMk3S,YAAc2Y,EAExB,CAtHEK,CAAiBlwT,EAAOp8C,GAKpBiU,GA+HN,SAA0BmoC,EAAOnoC,GAC/BmoC,EAAMqtC,SAAW,CACf5nD,OAAO,QAAmB5tB,MACvBmoC,EAAMqtC,UAGXrtC,EAAM5nC,sBAAwB,CAC5B4yS,wBAAwB,QAAkCnzS,MACvDmoC,EAAM5nC,uBAGX,MAAMsB,GAAW,QAAY7B,GACvBg4V,GAAkB,QAAWn2V,GAAUqN,YACzC8oV,IAAoB7vT,EAAMk3S,aAA8B,gBAAfl3S,EAAMzmD,OACjDymD,EAAMk3S,YAAc2Y,EAExB,CA9IIM,CAAiBnwT,EAAOnoC,GAoJ5B,SAAiCmoC,EAAO4vT,GAEtC5vT,EAAM4vT,YAAc5vT,EAAM4vT,aAAc,QAAS5vT,EAAM4vT,aAAe,GAGlEA,IACF5vT,EAAM4vT,YAAc5vT,EAAM4vT,YAAYruW,OAAOquW,IAI3C5vT,EAAM4vT,cAAgB5vT,EAAM4vT,YAAYz1W,eACnC6lD,EAAM4vT,WAEjB,CA9JEQ,CAAwBpwT,EAAO4vT,GA+GjC,SAAiC5vT,EAAOixS,GACtC,MAAMof,EAAoB,IAAKrwT,EAAMixS,aAAe,MAAQA,GAC5DjxS,EAAMixS,YAAcof,EAAkBl2W,OAASk2W,OAAoBn6W,CACrE,CAjHEo6W,CAAwBtwT,EAAOixS,GAmHjC,SAAiCjxS,EAAO5nC,GACtC4nC,EAAM5nC,sBAAwB,IACzB4nC,EAAM5nC,yBACNA,EAEP,CAvHEm4V,CAAwBvwT,EAAO5nC,EACjC,CAGA,SAASo4V,EAAe5sW,EAAM6sW,GAC5B,MAAM,MACJthS,EAAK,KACLh1C,EAAI,KACJ+8G,EAAI,SACJ7pD,EAAQ,MACR9oB,EAAK,sBACLnsD,EAAqB,YACrB64U,EAAW,YACX2e,EAAW,gBACXlf,EAAe,YACfD,EAAW,mBACXigB,EAAkB,gBAClBb,EAAe,KACfh4V,GACE44V,EAEJE,EAA2B/sW,EAAM,QAASurE,GAC1CwhS,EAA2B/sW,EAAM,OAAQu2B,GACzCw2U,EAA2B/sW,EAAM,OAAQszI,GACzCy5N,EAA2B/sW,EAAM,WAAYypF,GAC7CsjR,EAA2B/sW,EAAM,wBAAyBwU,GAEtDmsD,IACF3gE,EAAK2gE,MAAQA,GAGXsrS,IACFjsW,EAAKisW,gBAAkBA,GAGrBh4V,IACFjU,EAAKiU,KAAOA,GAGVo5U,EAAY92V,SACdyJ,EAAKqtV,YAAc,IAAIrtV,EAAKqtV,eAAgBA,IAG1C2e,EAAYz1W,SACdyJ,EAAKgsW,YAAc,IAAIhsW,EAAKgsW,eAAgBA,IAG1Clf,EAAgBv2V,SAClByJ,EAAK8sV,gBAAkB,IAAI9sV,EAAK8sV,mBAAoBA,IAGlDD,EAAYt2V,SACdyJ,EAAK6sV,YAAc,IAAI7sV,EAAK6sV,eAAgBA,IAG9C7sV,EAAK8sW,mBAAqB,IAAK9sW,EAAK8sW,sBAAuBA,EAC7D,CAMA,SAASC,EAER/sW,EAAMI,EAAM4sW,GACX,GAAIA,GAAYj7W,OAAOwK,KAAKywW,GAAUz2W,OAAQ,CAE5CyJ,EAAKI,GAAQ,IAAKJ,EAAKI,IACvB,IAAK,MAAMtL,KAAOk4W,EACZj7W,OAAOC,UAAUC,eAAeU,KAAKq6W,EAAUl4W,KACjDkL,EAAKI,GAAMtL,GAAOk4W,EAASl4W,GAGjC,CACF,oBChGA,IAAI4uV,EAAW,EAAQ,QACnBC,EAAmB,EAAQ,QAC3BspB,EAAe,EAAQ,QACvBrpB,EAAW,EAAQ,QACnBC,EAAsB,EAAQ,QAC9BrjQ,EAAO,EAAQ,QAyBf0sR,EAAiBtpB,GAAS,SAASzxT,GACrC,IAAImpC,EAAWklB,EAAKruD,GAChBW,EAAS4wT,EAASvxT,EAAQ0xT,GAO9B,OALIvoR,IAAaklB,EAAK1tD,GACpBwoC,OAAWhpE,EAEXwgC,EAAO/pB,MAED+pB,EAAOv8B,QAAUu8B,EAAO,KAAOX,EAAO,GAC1CwxT,EAAiB7wT,EAAQm6U,EAAa3xS,EAAU,IAChD,EACN,IAEA/oE,EAAOC,QAAU06W,mOC4FjB,QApHO,SAAsBziT,GAC3B,IAAI0iT,EAAoB1iT,EACA,YAApB,OAAQA,KACV0iT,EAAoB1iT,EAAO0iT,mBAK7B,IAAIC,EAAyB,cAAiB,SAAU9sW,EAAO8V,GAC7D,IAAIqgS,EAAiBn2S,EAAMwlE,QACzBA,OAA6B,IAAnB2wO,GAAmCA,EAC7C42D,EAAuB/sW,EAAM+mE,cAC7BA,OAAyC,IAAzBgmS,GAAyCA,EACzDvlS,EAAcxnE,EAAMwnE,YACpB95D,EAAW1N,EAAM0N,SACjB0uC,EAAap8C,EAAMo8C,WACnB0qB,EAAkB9mE,EAAM8mE,gBACxBkmS,EAAahtW,EAAMgtW,WAGjBC,EAfN,SAA6BjtW,EAAOktW,GAClC,SAAUltW,EAAMo8C,aAAcywT,IAAuC,IAAlBK,EACrD,CAasBC,CAAoBntW,EAFhB,aAAiB,KACLk8C,QAIhCu5Q,GAAU,IAAA/hQ,UAEV05S,GAAiB,IAAA15S,UAajB25S,GAAa,OAAUJ,EAAeznS,GAZ1C,WACE,IAKE,OAAOiwP,EAAQ76T,mBAAmB0yW,YAAc73C,EAAQ76T,SAAU,QAAYwyW,EAAexyW,QAC/F,CAAE,MAAOpI,GAEP,OAAO,IACT,CACF,GACkEwN,GAChEutW,GAAc,OAAeF,EAAY,GACzCnrW,EAASqrW,EAAY,GACrBC,EAAaD,EAAY,GACzBE,EAAcF,EAAY,GAC1BG,EAAgBH,EAAY,GAI1BI,EAAc,SAAaD,GAC3BA,IACFC,EAAY/yW,SAAU,GAIxB,IAMIgzW,EANAC,EAAa,eAAkB,SAAU93V,GAC3C0/S,EAAQ76T,QAAUmb,GAClB,QAAQD,EAAKC,EACf,GAAG,CAACD,IAIAm/S,GAAc,QAAc,OAAc,CAAC,EAAG+3C,GAAa,CAAC,EAAG,CACjExnS,QAASA,IAEX,GAAK93D,EAGE,GAAIxL,IAAW,KAGlB0rW,EADEF,EACehgW,GAAS,OAAc,CAAC,EAAGunT,GAAc44C,IAChD9mS,GAAiB4mS,EAAY/yW,SAAWksE,EACjCp5D,GAAS,QAAc,OAAc,CAAC,EAAGunT,GAAc,CAAC,EAAG,CAC1ExnT,UAAWq5D,IACT+mS,GACKrmS,IAAgBT,IAAkBD,EAC1Bp5D,GAAS,QAAc,OAAc,CAAC,EAAGunT,GAAc,CAAC,EAAG,CAC1EnoR,MAAO,CACLzb,QAAS,UAETw8U,GAEa,SAEd,CAEL,IAAIC,EACAN,IAAe,KACjBM,EAAe,WACN,QAASN,GAClBM,EAAe,SACNN,IAAe,OACxBM,EAAe,SAEjB,IAAI5wE,GAAY,QAAkB9gP,EAAY,GAAG/+C,OAAO6E,EAAQ,KAAK7E,OAAOywW,IAC5EF,EAAiBlgW,GAAS,QAAc,OAAc,CAAC,EAAGunT,GAAc,CAAC,EAAG,CAC1ExnT,UAAW,KAAW,QAAkB2uC,EAAYl6C,IAAS,QAAgB,OAAgB,CAAC,EAAGg7R,EAAWA,GAAa4wE,GAAe1xT,EAAkC,iBAAfA,IAC3JtP,MAAO2gU,IACLI,EACN,MAjCED,EAAiB,KA4CnB,OARkB,iBAAqBA,KAAmB,QAAWA,MAC/C,QAAWA,KAE7BA,EAA8B,eAAmBA,EAAgB,CAC/D93V,IAAK+3V,MAIS,gBAAoB,IAAY,CAClD/3V,IAAKs3V,GACJQ,EACL,IAEA,OADAd,EAAU15S,YAAc,YACjB05S,CACT,CACA,CAA4B,6yBC7HxBloW,EAAU,CAAC,kcAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,mCCbtD,EAAU,CAAC,0HAEf,EAAQL,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCZnD,MAAMwgW,GAAgBl0V,EAAAA,EAAAA,aAC3B,CAAC,EAEC/D,SADA,OAAEyjE,EAAS,kBAAiB,UAAE9rE,EAAS,IAAE2hF,GAA0B,EAAlB4+Q,oXAAAA,CAAAA,EAAAA,CAA/Cz0R,SAA4B9rE,YAAW2hF,QAGzC,OACE,SAAC6+Q,EAAAA,wUAAWA,CAAAA,CACVn4V,IAAKA,EACLrI,WAAWI,EAAAA,EAAAA,GAAK,kBAAmBJ,GACnCisE,cAAaH,EACb+V,WAAUF,GACN4+Q,GAAAA,ocCCL,MAAME,GAAoBr0V,EAAAA,EAAAA,aAI/B,CAAC,EAuBC/D,SAtBA,kBAEE2qQ,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OAER8wB,GAGD,EADImnM,oXAAAA,CAAAA,EAAAA,CAlBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WAEA8wB,WAQF,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,gBAAiB4yQ,GACjCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQA,EAAS,GAAGA,sBAAwBvnF,WAE3C2uR,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAAC+0N,KAAaA,EAAAA,CACZtlT,SAAUm4N,GAAcn4N,EACxB8wB,OAAQA,GACJmnM,KAAAA,CACJ5qQ,IAAKA,wYCtEb,EAAU,CAAC,ECFd,gcDID,EAAQ5I,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCG1D,MAAM8gW,EAAqB,CACzB,CAAEl8W,MAAO,EAAGmR,MAAOmpF,EAAAA,GAAAA,EAAO,YAC1B,CAAEt6F,MAAO,GAAImR,MAAOmpF,EAAAA,GAAAA,EAAO,aAGhB6hR,GAAkBz0V,EAAAA,EAAAA,aAI7B,CAAC,EAYC/D,SAXA,UACErI,EAAS,OACT8rE,EAAS,oBAAmB,iBAC5Bg1R,EAAmBF,EAAmB,GAAGl8W,MAAK,YAC9Cq8W,EAAcH,EAAkB,WAChCI,EAAU,WACVC,EACAv8W,MAAOw8W,EACP7rT,SAAU8rT,GAEX,EADIZ,oXAAAA,CAAAA,EAAAA,CARHvgW,YACA8rE,SACAg1R,mBACAC,cACAC,aACAC,aACAv8W,QACA2wD,aAKF,MAAOp+B,EAAMmqV,IAAWzgR,EAAAA,EAAAA,UAASmgR,GAU3BO,EAAeH,GAAcjqV,EAAOiqV,EAAajqV,EAAOiqV,EAE9D,OACE,SAACV,EAAAA,EAAWA,KAAAA,EAAAA,CACVxgW,WAAWI,EAAAA,EAAAA,GAAK,oBAAqBJ,GACrCqI,IAAKA,EACL4jE,cAAaH,EACb3nD,IAAK,GACDo8U,cAAAA,CACJz1P,WACEi2P,EAAYv4W,OAAS,GACnB,SAACw6I,EAAAA,EAAQA,CACPhjI,WAAWI,EAAAA,EAAAA,GAAK,4BAA6BJ,GAC7C7I,QAAS4pW,EACTr8W,MAAOuyB,EACPo+B,SAvBgB3wD,IACxB08W,EAAQ18W,EAAM,IAyBRq8W,EAAY,GAAGlrW,MAGnBnR,MAAO28W,EACPhsT,SA1BuB3wD,IACzBy8W,SAAAA,EAAgBz8W,GAASuyB,EAAOvyB,EAAQuyB,EAAO,KAAK,qVA0B7C+pV,GAAc,CAAE78U,IAAK7+B,KAAK6lD,MAAM61T,EAAa/pV,IAC7CgqV,GAAc,CAAExwV,IAAKwwV,EAAahqV,YAAK,ocC9D7C,MAAMqqV,GAAsBl1V,EAAAA,EAAAA,aAIjC,CAAC,EAqBC/D,SApBA,kBAEE2qQ,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,aACfD,EAAY,UAGZuxE,EAAS,SAGT5qE,EAAQ,OAER8wB,GAGD,EADImnM,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAD,eAGAuxE,YAGA5qE,WAEA8wB,WAQF,MAAM,cAAEonM,EAAa,WAAEC,IAAev5N,EAAAA,EAAAA,YAAW2nT,EAAAA,GAEjD,OACE,SAACx7N,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,gBAAiB4yQ,GACjCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBD,aAAcA,EACdy3B,OAAQA,EAAS,GAAGA,sBAAwBvnF,WAE3C2uR,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAACs1N,KAAeA,EAAAA,CACd7lT,SAAUm4N,GAAcn4N,EACxB8wB,OAAQA,GACJmnM,KAAAA,CACJ5qQ,IAAKA,u1DChEV,MAAMm5V,GAAgB,EAC3B5iS,WACAl6E,QAAQ,KACRs2D,WACAymT,sBAEA,IAAIC,EAAoBr1R,GAAAA,EAEpBo1R,GAAmBA,EAAgBj5W,OAAS,IAC9Ck5W,EAAoBr1R,GAAAA,EAAUlxE,QAAQpW,GACpC08W,aAAAA,EAAAA,EAAiB7iW,SAAS7Z,EAAE48W,UAIhC,MAAMxqW,EAAUuqW,EAAkBt4W,KAAKu0D,IACrC,MAAMikT,EAAc,GAAGjkT,EAAKltD,SAASktD,EAAKkkT,YACpCC,EAAa,CACjB/6W,IAAK66W,EACLl9W,MAAOi5D,EAAKgkT,MACZ9rW,OACE,gCACG8nD,EAAKokT,MAAM,KAAGpkT,EAAKkkT,cAI1B,OACE,UAAC7+N,EAAAA,EAASu0K,iVAAM,IAAKuqD,cAAAA,WAClBnkT,EAAKokT,MAAM,IAAEH,kWAKpB,OACE,SAAC5+N,EAAAA,EAAQA,CACPlhD,QAAQ,aACRu0N,uBAAuB,EACvB2rD,gBAAgB,QAChBpjS,SAAUA,EACVnpB,aAAa,KACb/wD,MAAOA,EACPs2D,SAAUA,EACVioF,WAAYC,GAAAA,WAEX/rI,sBC3CH,GAAU,CAAC,2HAEf,GAAQsI,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCTnD,MAAMmiW,GAAgB,eAC3Bn2R,EAAS,iBAAgB,IACzB6V,EAAG,UACH3hF,EAAY,GAAE,SACdq1C,EAAQ,MACR3wD,EAAQ,GAAE,SACVs2D,EAAQ,gBACRymT,EAAkB,IAEA,EADfS,oXAAAA,CAAAA,EAAAA,CAPHp2R,SACA6V,MACA3hF,YACAq1C,WACA3wD,QACAs2D,WACAymT,oBAGA,MAAOU,EAAWC,IAAgBzhR,EAAAA,EAAAA,UAChC0hR,GAAAA,EAAWC,eAAet3W,OAAOtG,KAE7Bm9W,EAAYQ,GAAAA,EAAWE,4BAA4BJ,GAKnDK,EAA0Bx3W,OAAOtG,GAAO47B,QAAQ,GAAGuhV,IAAa,IAiBtE,OACE,SAACY,EAAAA,yUAAOA,CAAAA,CACNziW,UAAW,kBAAkBA,IAAYugB,OACzC0rD,cAAaH,EACb6V,IAAKA,EACL+6P,aACE,SAAC8kB,GAAaA,CACZxmT,SAAUA,EACV4jB,SAvBc8jS,IACpB,MAAMC,EAAeN,GAAAA,EAAWE,4BAA4BG,GAC5DN,EAAaM,GAETrtT,GAOFA,EANkB,CAChB7pC,OAAQ,CACN9mB,MAAO,GAAGi+W,IAAeH,MAK/B,EAYM99W,MAAOy9W,EACPV,gBAAiBA,IAGrB/8W,MAAO89W,EACPxnT,SAAUA,EACV3F,SAAWtwD,IAET,MACM8vW,EADM,QACW5+U,KAAKlxB,EAAEymB,OAAO9mB,OACjCK,EAAEymB,OAAO9mB,MACT89W,EAWAntT,GACFA,EAPgB,CAChB7pC,OAAQ,CACN9mB,MAJamwW,EAAa,GAAGgN,IAAYhN,IAAe,KAU5D,GAEEqN,GAAAA,gqBC1EN,GAAU,CAAC,2HAEf,GAAQziW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCNnD,MAAM8iW,GAAgB,kBAC3B5iW,EAAY,GAAE,OACd8rE,EAAS,iBAAgB,IACzB6V,EAAG,MACHj9F,EAAK,OACLgd,EAASmhW,GAAAA,GAAgB,SACzBxtT,GAEkB,EADfytT,oXAAAA,CAAAA,EAAAA,CANH9iW,YACA8rE,SACA6V,MACAj9F,QACAgd,SACA2zC,aAIA,MAQM0tT,EAA+B,iBAAVr+W,EAAqBqjE,KAAMrjE,GAASA,EAE/D,OACE,SAACm8G,GAAAA,yUAAUA,CAAAA,CACT7gG,WAAWI,EAAAA,EAAAA,GAAK,iBAAkBJ,GAClCisE,cAAaH,EACb+V,WAAUF,EACVjgF,OAAQA,EACRhd,MAAOq+W,EACP1tT,SAjBiB,CACnB2tT,EACAC,KAEA5tT,SAAAA,EAAW2tT,EAAeA,EAAan9U,cAAgB,KAAMo9U,EAAW,GAclEH,GAAAA,q1BCnCN,GAAU,CAAC,2HAEf,GAAQrjW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCLnD,MAAMojW,GAAgB,kBAC3BljW,EAAY,GAAE,OACd8rE,EAAS,iBAAgB,IACzB6V,EAAG,MACHj9F,EAAK,OACLgd,EAASyhW,GAAAA,GAAW,SACpB9tT,GAEkB,EADf+tT,oXAAAA,CAAAA,EAAAA,CANHpjW,YACA8rE,SACA6V,MACAj9F,QACAgd,SACA2zC,aAIA,MAQM0tT,EAA+B,iBAAVr+W,EAAqBqjE,KAAMrjE,GAASA,EAE/D,OACE,SAACo8G,GAAAA,yUAAUA,CAAAA,CACT9gG,WAAWI,EAAAA,EAAAA,GAAK,iBAAkBJ,GAClCisE,cAAaH,EACb+V,WAAUF,EACVjgF,OAAQA,EACR2hW,aAAa,EACb3+W,MAAOq+W,EACP1tT,SAlBiB,CACnB2tT,EACA30R,KAEAh5B,SAAAA,EAAW2tT,EAAeA,EAAan9U,cAAgB,KAAMwoD,EAAW,GAelE+0R,GAAAA,w0BCrCN,GAAU,CAAC,qcAEf,GAAQ3jW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCFnD,MAAMwjW,GAAa,QAGxB,UACAtjW,EAAY,GAAE,SACdq1C,EAAW,SAAQ,IACnBssC,EAAG,OACH7V,EAAS,gBAEsB,EAD5By3R,oXAAAA,CAAAA,EAAAA,CAJHvjW,YACAq1C,WACAssC,MACA7V,WAGA,MAAO03R,EAAaC,IAAkB9iR,EAAAA,EAAAA,UAAS,IAwB/C,OAKE,iCACE,SAACqiD,EAAAA,EAAQA,GAAAA,CACPhjI,UAAW,gBAAgBA,IAAYugB,OACvCsyC,KAAK,OACLi7O,gBAAiB,KACjB3zO,MAAM,EACNmwC,WAAY,KACZU,SAjCgBppE,GAAgB6hU,EAAe7hU,GAkC/CuqE,OAfa,IAAMs3P,EAAe,IAgBlCpuT,SAAU,CAAC3wD,EAAOyS,IAhCH,EAACzS,EAAgBsxL,KACpCytL,EAAe,IAGfpuT,EAAS3wD,EAAOsxL,EAAO,EA4BWr6H,CAAaj3D,EAAOyS,GAClDk9D,UAtBiBtvE,IACP,UAAVA,EAAEgC,KACJ08W,EAAe,GACjB,EAoBI33R,OAAQA,EACR6V,IAAKA,GAED4hR,IAELC,IACC,SAACn6T,MAAAA,CAAIrpC,UAAU,wCACb,UAACqpC,MAAAA,CAAIrpC,UAAU,8CACb,SAAC6zT,SAAAA,UAAO,QAAY,IAAE2vC,0eCrE9B,GAAU,CAAC,0vCAEf,GAAQ/jW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,qCCbtD,GAAU,CAAC,qcAEf,GAAQL,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,sgBCbtD,GAAU,CAAC,qcAEf,GAAQL,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,qCCbtD,GAAU,CAAC,qcAEf,GAAQL,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,oCCpBnD,MAAM4jW,GAA6B,IACxC,CACE,CACE7tW,OAAOvE,EAAAA,EAAAA,GAAE,SACT5M,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS+D,QAAQ,QAAQ/D,EAAAA,GAAAA,QAEnC,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,aACT5M,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,EAAG,SAAS9D,EAAAA,GAAAA,QAExC,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,uBAAwB,CAAEg2D,MAAO,IAC1C5iE,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,EAAG,UAAU9D,EAAAA,GAAAA,QAEzC,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,uBAAwB,CAAEg2D,MAAO,KAC1C5iE,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,GAAI,UAAU9D,EAAAA,GAAAA,QAE1C,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,uBAAwB,CAAEg2D,MAAO,KAC1C5iE,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,GAAI,UAAU9D,EAAAA,GAAAA,QAE1C,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,sBAAuB,CAAEg2D,MAAO,IACzC5iE,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,EAAG,SAAS9D,EAAAA,GAAAA,QAExC,CACEzyD,OAAOvE,EAAAA,EAAAA,GAAE,aACT5M,MAAO,EAAC4jE,EAAAA,GAAAA,MAAS8D,SAAS,EAAG,SAAS9D,EAAAA,GAAAA,0BCrBxC,GAAU,CAAC,2HAEf,GAAQ7oD,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCf1D,MAAM,YAAEgmG,IAAgBjF,GAAAA,EAgBX8iQ,GAAiB,kBAC5B3jW,EAAS,SACTq1C,EAAQ,QACRmQ,EAAO,MACP9gE,EAAK,YACLk/W,GAAc,EAAI,QAClBC,EAAO,IACPliR,EAAG,OACH7V,EAAS,mBAEU,EADhBg4R,oXAAAA,CAAAA,EAAAA,CARH9jW,YACAq1C,WACAmQ,UACA9gE,QACAk/W,cACAC,UACAliR,MACA7V,WAGA,MAAOi4R,EAAcC,IAAmBrjR,EAAAA,EAAAA,UACtCijR,GAAcC,aAAAA,EAAAA,MAAeH,UAA+Bn/W,GAmBxD0/W,EAAav/W,EACfA,EAAM0E,KAAK8pB,GAAOA,EAAI60C,KAAM70C,QAAK3uB,SACjCA,EAEJ,OACE,SAACuhH,0UAAAA,CAAAA,CACC9lG,WAAWI,EAAAA,EAAAA,GAAK,kBAAmBJ,GACnCkkW,SAAU,CAAExiW,OAAQyhW,GAAAA,IACpBzhW,OAAQmhW,GAAAA,GACRn+W,MAAOu/W,EACP5uT,SAzB+C,CAACzwC,EAAQu/V,KAC1D9uT,SAAAA,EACEzwC,EAASA,aAAAA,EAAAA,EAAQxb,KAAK8pB,GAAOA,EAAIA,EAAE2S,cAAgB,OAAS,KAC5Ds+U,EAAAA,EAuBA3+S,QAnB8CnX,IAChDmX,SAAAA,EAAUnX,GACV21T,EACEJ,GAAcC,aAAAA,EAAAA,MAAeH,UAA+Bn/W,EAAAA,EAiB5Ds/W,QAASE,EACT93R,cAAaH,EACb+V,WAAUF,GACNmiR,GAAAA,6nDCzCH,MC9BMM,GACX3sW,QAEAA,EAAAA,EAAAA,EACAA,SADAA,SAAmB,QAAnBA,EAAAA,EAAUwpC,iBAAVxpC,IAAAA,GAAqC,QAArCA,EAAAA,EAAqB2pC,wBAArB3pC,IAAAA,GAA2D,QAA3DA,EAAAA,EAAuC4pC,4BAAvC5pC,IAAAA,OAAAA,EAAAA,EAA6DhH,QAC7DgH,SAAmB,QAAnBA,EAAAA,EAAUwpC,iBAAVxpC,IAAAA,OAAAA,EAAAA,EAAqB2vI,WACrB,KAAK,yJCmBA,MAAMi9N,GAAqC,cAChD3oW,GAEuC,EADpC4oW,oXAAAA,CAAAA,EAAAA,CADH5oW,UAGA,MAAM,EAAEpK,IAAM6tF,EAAAA,EAAAA,MACRolR,GACJC,EAAAA,GAAAA,GAAkC9oW,GAEpC,OACE,SAAC+oW,GAAAA,yUAAiBA,CAAAA,CAChB5sR,aAAc,CACZL,gBAAiB,YACjBC,WAAY,CACV/7E,EACA,CAAEP,OAAQ,eAAgBhE,QAAS,mBAGvCutW,sBAAuB,CAOrBC,oBAAqB,CACnBxtW,QAAS,2CAGbytW,qBAAsB,EAAGC,WACvBN,EAAiCM,aAAAA,EAAAA,EAAOz7W,KAAI,EAAGmM,QAASA,KAG1DuvW,kBAAmB,EAAGvvW,GAAIq1U,EAAQnzU,WAAUotW,YAC1C,SAACjtG,GAAAA,EAASA,CACRjkM,MACE4wS,EAAiCM,aAAAA,EAAAA,EAAOz7W,KAAI,EAAGmM,QAASA,KACpDjE,EAAE,4DACF,GAAGmG,aAAAA,EAAAA,EAAUs6B,UAAUqyU,GAAgB3sW,gBAG5CA,aAAAA,EAAAA,EAAUstW,YAAYttW,aAAAA,EAAAA,EAAUs6B,QAAS64S,KAG1C05B,GAAAA,g7BC5CH,MAAMU,GAAqC,cAChDtpW,GAEuC,EADpC4oW,oXAAAA,CAAAA,EAAAA,CADH5oW,UAGA,MAAM,EAAEpK,IAAM6tF,EAAAA,EAAAA,MACRolR,GACJC,EAAAA,GAAAA,GAAkC9oW,GAEpC,OACE,SAAC+oW,GAAAA,yUAAiBA,CAAAA,CAChB5sR,aAAc,CACZL,gBAAiB,YACjBC,WAAY,CAAC/7E,IAEfgpW,sBAAuB,CAOrBC,oBAAqB,CACnBxtW,QAAS,6BAGbytW,qBAAsB,EAAGrvW,QAASgvW,EAAiC,CAAChvW,IAEpEuvW,kBAAmB,EAAGvvW,KAAI9E,WACxB,SAACmnQ,GAAAA,EAASA,CACRjkM,MACE4wS,EAAiC,CAAChvW,IAC9BjE,EAAE,4DACF,cAGLb,KAGD6zW,GAAAA,29BClDN,GAAU,CAAC,qcAEf,GAAQ7kW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCdnD,MAAMmlW,GAAc,kBACzBjlW,EAAS,OACT8rE,EAAS,eAEO,EADbmnM,oXAAAA,CAAAA,EAAAA,CAFHjzQ,YACA8rE,WAGA,OAEE,SAACziC,MAAAA,CAAI4iC,cAAaH,YAChB,SAAC02B,GAAAA,EAAQA,GAAAA,CAACxiG,WAAWI,EAAAA,EAAAA,GAAK,cAAeJ,IAAgBizQ,uBCP3D,GAAU,CAAC,qcAEf,GAAQxzQ,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCkC1D,MAAMolW,GAA8B,CAClCrtR,EACAstR,KAEA,MAAM,gBAAErtR,EAAe,UAAEC,IAAcC,EAAAA,GAAAA,GACrCH,EAAaL,gBACbK,EAAaJ,YAEf,GAAIM,EAAW,CAEb,MAAMK,EAAeN,EAAgBO,eAClCnC,GAAgC,iBAAVA,IAGzB,IAAsB,IAAlBkC,EAEF,MAAM,IAAIjyF,MACR,kFAAkF0xF,EAAaL,mBAInGM,EAAgBM,GAAgB,MAC1BN,EAAgBM,GACjB+sR,EAEP,CAEA,SAAO,MACFttR,cAAAA,CACHJ,WAAYK,6VAIHstR,GAAsB,QAwF/BC,EACAA,EA4BAC,EACAA,EAEAD,GArHF,UACArlW,EAAY,GAAE,OACd8rE,EAAS,yBAAwB,qBACjCy5R,EAAoB,oBACpBC,EAAmB,YACnBC,EAAc,CAAC9yD,GAAuBA,EAAOh/O,OAAK,mBAClD+xS,EACArwT,SAAUswT,GAIqB,EAD5BC,oXAAAA,CAAAA,EAAAA,CATH5lW,YACA8rE,SACAy5R,uBACAC,sBACAC,cACAC,qBACArwT,aAKA,MAAM,EAAE/jD,IAAM6tF,EAAAA,EAAAA,OAEP0mR,EAAqBC,IAA0BnlR,EAAAA,EAAAA,UACpD,KAEKolR,EAAoBC,IAAyBrlR,EAAAA,EAAAA,UAClD,KAEKslR,EAAqBC,IAA0BvlR,EAAAA,EAAAA,aAC/CwlR,EAAoBC,IAAyBzlR,EAAAA,EAAAA,aAC7C0lR,EAAqBC,IAA0B3lR,EAAAA,EAAAA,aAC/C4lR,EAAoBC,IAAyB7lR,EAAAA,EAAAA,aAC7CsxN,EAAYw0D,IAAiB9lR,EAAAA,EAAAA,UAAgB,IAC9C+lR,GAAazgT,EAAAA,EAAAA,QAAqB,IAClC0gT,GAAe1gT,EAAAA,EAAAA,QAAqB,KAElCh0D,KAAMqzW,IAAiC/tR,EAAAA,GAAAA,GAC7C2tR,GAA+BK,EAAqB1tR,aAAc,IAChEz4D,MAAO,IAAMsnV,EAAWv5W,QAAQ3E,QAC5B69W,GAAuB,CAAExpE,EAAGwpE,OAG5Bp0W,KAAMozW,IAAgC9tR,EAAAA,GAAAA,GAC5C2tR,GAA+BM,EAAoB3tR,aAAc,IAC/Dz4D,MAAO,GAAKunV,EAAax5W,QAAQ3E,QAC7B+9W,GAAsB,CAAE1pE,EAAG0pE,OAKnClgT,EAAAA,EAAAA,YACE,IAAM,KACJqgT,EAAWv5W,QAAU,GACrBw5W,EAAax5W,QAAU,EAAE,GAE3B,KAIFk5D,EAAAA,EAAAA,YAAU,SACkBg/S,EAA1B,MAAMuB,EAAoBvB,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCpzW,SAGrCozW,EADpB1uW,MAAMie,QAAQgyV,KAChBR,EAAsBf,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCzzP,YAEzDo0P,GAAsB,IACpBa,KACED,EAAkBx9W,KAAKu0D,QAChB6nT,EACEA,EACMA,EACHA,QAJqB,CAC/Bz+W,KAAkC,QAA7By+W,EAAAA,EAAoBsB,iBAApBtB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAgC7nT,KAAS3yD,OAAO2yD,EAAKpoD,IAC1Do+D,OAAsC,QAA/B6xS,EAAAA,EAAoBuB,mBAApBvB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAkC7nT,KAAS3yD,OAAO2yD,EAAKltD,MAC9D2kB,YAAkD,QAArCowV,EAAAA,EAAoBwB,yBAApBxB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAwC7nT,GACrD3C,SAA4C,QAAlCwqT,EAAAA,EAAoByB,sBAApBzB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAqC7nT,GAChD,IACD,SAKJ8oT,EACEG,EACGx9W,KACEu0D,QAAS6nT,SAA6B,QAA7BA,EAAAA,EAAoBsB,iBAApBtB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAgC7nT,KAAS3yD,OAAO2yD,EAAKpoD,GAAG,IAEnE4F,QACEpU,GACCA,IACC4/W,EAAax5W,QACX/D,KAAI,EAAGrC,IAAKmgX,KAAqBA,IACjCtoW,SAAS7X,MAGtB,GACC,CACDs+W,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCpzW,KACnCozW,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCzzP,WACnC4zP,KAKFn/S,EAAAA,EAAAA,YAAU,SACmBi/S,EAA3B,MAAM6B,EAAqB7B,SAAkC,QAAlCA,EAAAA,EAA8B5sR,YAA9B4sR,IAAAA,OAAAA,EAAAA,EAAoCrzW,SAI1DqzW,EACED,EAHH1uW,MAAMie,QAAQuyV,KAChBjB,IACGZ,SAAkC,QAAlCA,EAAAA,EAA8B5sR,YAA9B4sR,IAAAA,OAAAA,EAAAA,EAAoC1zP,aAAc,KAChDyzP,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCzzP,aAAc,IAGtDk0P,GAAuB,IACrBe,KACEM,EAAmB/9W,KAAKu0D,QACjB4nT,EAEHA,EACWA,QAJmB,CAChCx+W,KAAmC,QAA9Bw+W,EAAAA,EAAqBuB,iBAArBvB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAiC5nT,KAAS3yD,OAAO2yD,EAAKpoD,IAC3Do+D,OACkC,QAAhC4xS,EAAAA,EAAqBwB,mBAArBxB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAmC5nT,KAAS3yD,OAAO2yD,EAAKltD,MAC1D2kB,YAAmD,QAAtCmwV,EAAAA,EAAqByB,yBAArBzB,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,EAAyC5nT,GACvD,IACD,SAGN,GACC,CACD2nT,SAAkC,QAAlCA,EAAAA,EAA8B5sR,YAA9B4sR,IAAAA,OAAAA,EAAAA,EAAoCrzW,KACpCqzW,SAAkC,QAAlCA,EAAAA,EAA8B5sR,YAA9B4sR,IAAAA,OAAAA,EAAAA,EAAoC1zP,WACpC2zP,EACAF,SAAiC,QAAjCA,EAAAA,EAA6B3sR,YAA7B2sR,IAAAA,OAAAA,EAAAA,EAAmCzzP,aAGrC,MAiEM5G,EAAWo8P,MAAS,CAACx2U,EAAWlsC,KAClB,SAAdksC,EACF01U,EAAuB5hX,GAEvB8hX,EAAsB9hX,EACxB,GACC,KAGH,IAAIipT,EAAak4D,EAAoBj2W,OAAOm2W,GAQ5C,GALIQ,GACF54D,EAAWzjT,QAAQy8W,EAAax5W,SAI9Bk5W,EACF14D,EAAWzjT,QAAQw8W,EAAWv5W,aACzB,CAEL,MAAMk6W,EAA4BX,EAAWv5W,QAAQgO,QACnD,EAAGpU,UAAW4mT,EAAWljT,MAAMkzD,GAASA,EAAK52D,MAAQA,MAEvD4mT,EAAWzjT,QAAQm9W,EACrB,CAGA15D,EAAak5D,KAAOl5D,EAAY,OAGhCA,EAAaA,EAAW5kR,MAAK,CAACpgC,EAAGC,KAE/B,MAAM0+W,EAAY3+W,EAAE5B,IAChB4/W,EAAax5W,QAAQ/D,KAAI,EAAGrC,SAAUA,IAAKy/B,QAAQ79B,EAAE5B,MACpD,EACCwgX,EAAY3+W,EAAE7B,IAChB4/W,EAAax5W,QAAQ/D,KAAI,EAAGrC,SAAUA,IAAKy/B,QAAQ59B,EAAE7B,MACpD,EAEL,OAAmB,IAAfugX,IAAmC,IAAfC,GAEd,GAES,IAAfD,IAAmC,IAAfC,EAEf,EAIF,CAAC,IAIV,MAAMC,EAAmB,IACpB,IAAIzqV,IAAI2pV,EAAWv5W,QAAQ/D,KAAI,EAAGrC,SAAUA,IAAM6I,OAAOqiT,KAG9D,OACE,SAACgzD,GAAUA,GAAAA,CACTjlW,WAAWI,EAAAA,EAAAA,GAAK,yBAA0BJ,GAC1C2tS,WAAYA,EACZ1lK,YAAU,EACVn8D,OAAQA,EACRomO,gBAAiB,CACf,EACE1B,gBACA5+L,gBAoBO,GAdL4+L,EAAgB,EACZl/S,EAAE,0CAA2C,CAC3Cg2D,MAAOkpP,EACP5+L,eAEFtgH,EAAE,0BAA2B,CAAEg2D,MAAOsqD,OAG1Cq0P,GAAuBr0P,IAAeq0P,EAClC,IAAI30W,EAAE,oCAAqC,CACzC20W,2BAEF,KAIR,EACEz1D,gBACA5+L,gBAuBO,GAjBL4+L,EAAgB,EACZl/S,EAAE,0CAA2C,CAC3Cg2D,MAAOkpP,EACP5+L,eAEFtgH,EAAE,0BAA2B,CAAEg2D,MAAOsqD,OAE9Bu0P,EACV,IAAI70W,EAAE,gDAAiD,CACrD60W,mBACEA,EACAO,EAAWv5W,QAAQ3E,OACnBm+W,EAAax5W,QAAQ3E,OACvBk9W,mBAAoBA,GAAsBp0W,EAAE,cAE9C,MAKRogD,UAAW,CACT1L,MAAO,OACPJ,OAAQ,IACRzC,SAAU,UAEZ8uQ,WAAYu1D,EACZnyT,SA5L4D,CAC9D8+P,EACAvjR,EACAkjR,KAKA,GAFA2yD,EAActyD,GAEI,UAAdvjR,EAAuB,CAEzB,MAAM62U,EAA0Bl+F,KAC9BuqC,EACA6yD,EAAax5W,QAAQ/D,KAAI,EAAGrC,SAAUA,KAGlC2gX,EAAgB,IACjBhB,EAAWv5W,WACXwgT,EAAWxyS,QAAO,EAAGpU,SACtB0gX,EAAwB7oW,SAAS7X,MAG/B4gX,EAAkBC,KACtBjB,EAAax5W,QACbwgT,EAAWxyS,QAAO,EAAGpU,SAAUA,GAAO+sT,EAASl1S,SAAS7X,KACxD,OAGF4+W,SAAAA,EAAe,CACbroW,IAAKoqW,EAAct+W,KAAI,EAAGrC,SAAUgV,OAAOhV,KAC3C6S,OAAQ+tW,EAAgBv+W,KAAI,EAAGrC,SAAUgV,OAAOhV,OAGlD2/W,EAAWv5W,QAAUu6W,EAGrBf,EAAax5W,QAAUw6W,CACzB,KAAO,CAEL,MAAME,EAAuBt+F,KAC3BuqC,EACA4yD,EAAWv5W,QAAQ/D,KAAI,EAAGrC,SAAUA,KAGhC4gX,EAAkB,IACnBhB,EAAax5W,WACbwgT,EAAWxyS,QAAO,EAAGpU,SAAU8gX,EAAqBjpW,SAAS7X,MAE5D2gX,EAAgBE,KACpBlB,EAAWv5W,QACXwgT,EAAWxyS,QAAO,EAAGpU,SAAUA,GAAO+sT,EAASl1S,SAAS7X,KACxD,OAGF4+W,SAAAA,EAAe,CACb/rW,OAAQ+tW,EAAgBv+W,KAAI,EAAGrC,SAAUgV,OAAOhV,KAChDuW,IAAKoqW,EAAct+W,KAAI,EAAGrC,SAAUgV,OAAOhV,OAG7C4/W,EAAax5W,QAAUw6W,EAGvBjB,EAAWv5W,QAAUu6W,CACvB,GA+HE18P,SAAUA,EACVqjM,aAAc,CAACwmD,EAAY7+K,IAClBA,EAAOriH,MAAOjpC,cAAc9rB,SAASi2V,EAAWnqU,eAEzDphB,OAASqpS,IACP,MAAM,IAAE5rT,EAAG,MAAE4sE,GAAUg/O,EAEvB,MAAO,CACL98S,OACE,UAACwzC,MAAAA,CAAIrpC,UAAU,mDACb,SAACqpC,MAAAA,UAAKo8T,EAAY9yD,KACjB5rT,GACD2/W,EAAWv5W,QACR/D,KAAI,EAAGrC,IAAK+gX,KAAmBA,IAC/BlpW,SAAS7X,IACV,SAACghX,GAAAA,EAAKA,CAAC/nW,UAAU,uCAA8B,UAC7C,KACHjZ,GACD4/W,EAAax5W,QACV/D,KAAI,EAAGrC,IAAKmgX,KAAqBA,IACjCtoW,SAAS7X,IACV,SAACghX,GAAAA,EAAKA,CAAC/nW,UAAU,uCAA8B,YAC7C,QAGRtb,MAAOivE,GAAS,KACjB,GAECiyS,GAAAA,mBCpaN,GAAU,CAAC,qcAEf,GAAQnmW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,ggBCJnD,MAAMkoW,GAAuC,cAClDtsW,EAAK,0BACLusW,EAAyB,mBACzBvC,GAEyC,EADtCwC,oXAAAA,CAAAA,EAAAA,CAHHxsW,QACAusW,4BACAvC,uBAGA,MAAM,EAAEp0W,IAAM6tF,EAAAA,EAAAA,OAER,+BAAEurP,IACNC,EAAAA,GAAAA,GAA6BjvU,IAEvBzJ,KAAMk2W,IAAc5wR,EAAAA,GAAAA,GAAW,CACrCC,gBAAiB,YACjBC,WAAY,CAAC/7E,GACbwrG,OAASj1G,GAASA,EAAKymF,KAAKzmF,OAyB9B,OACE,SAACmzW,GAAmBA,GAAAA,CAElBG,qBAAsB,CACpB1tR,aAAc,CACZL,gBAAiB,YACjBC,WAAY,CACV/7E,EACA,IACEuwU,UAAW,gBACPvB,GAAkC,CACpCvzU,QAAS,oBAKjB4vW,YAAcppT,GAASA,EAAKlmD,SAASstW,UAAY,KACjDiC,kBAAoBrpT,GAASA,EAAKlmD,SAASs6B,OAE7CyzU,oBAAqB,CACnB3tR,aAAcowR,EACdlB,YAAcppT,GAASA,EAAKlmD,SAASstW,UAAY,KACjDiC,kBAAoBrpT,GAASA,EAAKlmD,SAASs6B,MAC3Ck1U,eAAiBtpT,QAMbA,EALF,IAAK+sR,EACH,OAAO,EAGT,MAAM09B,GACM,QAAVzqT,EAAAA,EAAKknT,aAALlnT,IAAAA,OAAAA,EAAAA,EAAYv0D,KAAI,EAAGmM,QAAyBA,MAAO,GAC/C8yW,GAAUF,aAAAA,EAAAA,EAAW/+W,KAAI,EAAGmM,QAAyBA,MAAO,GAMlE,OACE6yW,EAAY5/W,OAAS,IAAMutV,KAAaqyB,EAAaC,GAAS7/W,MAAM,GAI1Ei9W,YA7DgB9yD,IAClB,SAAC/6C,GAAAA,EAASA,CACRjkM,MACEg/O,EAAO33P,SACH1pD,EAAE,4DACF,KAEN0nE,UAAU,kBAEV,UAAC3vB,MAAAA,YACC,SAACi/T,GAAAA,EAAMA,CAAC7tC,UAAQ,WACI,OAAjB9nB,EAAOh/O,MACJ,GAAGg/O,EAAOh/O,UAAUg/O,EAAO5rT,OAC3B,IAAI4rT,EAAO5rT,UAEjB,SAACuhX,GAAAA,EAAMA,CAAC7tC,UAAQ,WAAE9nB,EAAOv9R,mBA+C3BswV,mBAAoBA,EAEpBr3D,aAAc,CAACwmD,EAAY7+K,OACrBA,EAAOriH,QAASqiH,EAAO5gK,eAEvB4gK,EAAOriH,MAAMjpC,cAAclE,QAAQquU,EAAWnqU,gBAAkB,GAChEsrJ,EAAO5gK,YAAYsV,cAAclE,QAAQquU,EAAWnqU,gBACjD,IAMLw9U,GAAAA,iBCvGN,GAAU,CAAC,qcAEf,GAAQzoW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCEnD,q3JCtBA,MAAMyoW,GAAoB,eAC/Bz8R,EAAS,qBAAoB,IAC7B6V,EAAG,SACH1hF,EAAQ,UACRD,GAEkD,EAD/CujW,oXAAAA,CAAAA,EAAAA,CAJHz3R,SACA6V,MACA1hF,WACAD,cAGA,MAAMwoW,EAAkBxkX,OAAOg/B,QAAQylV,IAAWr/W,KAAI,EAAEyM,EAAOnR,MAAY,CACzEA,QACAmR,YAGF,OACE,SAACmtI,EAAAA,4UAAQA,CAAAA,CACPhjI,WAAWI,EAAAA,EAAAA,GAAK,qBAAsBJ,GACtC8rE,OAAQA,EACR6V,IAAKA,EACLsmD,YAAU,GACNs7N,cAAAA,CACJpsW,QAASqxW,gwDCZX,GAAU,CAAC,qcAEf,GAAQ/oW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,iJChBnD,MAAM4oW,GAAiB,kBAC5B1oW,EAAS,OACT8rE,EAAS,mBAEU,EADhB68R,oXAAAA,CAAAA,EAAAA,CAFH3oW,YACA8rE,WAGA,OACE,SAAC04B,GAAAA,yUAAWA,CAAAA,CACVxkG,WAAWI,EAAAA,EAAAA,GAAK,kBAAmBJ,GACnCisE,cAAaH,GACT68R,GAAAA,yjBCfH,MAAMC,GAAgC,CAC3C7jX,EACAq4R,EACAyrF,KAEA,MAAM,KAAE/lP,EAAI,IAAEtjF,GAAQ,EAAGh0B,OAA0Bm8M,wBASnD,MAAO,CAPGriO,KAAK6lD,MACb7lD,KAAK6+B,IAAI,KAAM7+B,KAAKmrB,IAAI,GAAK1rB,EAAE+jX,QAAUhmP,GAAQs6J,EAAkB,OAE3D93R,KAAK6lD,MACb7lD,KAAK6+B,IAAI,KAAM7+B,KAAKmrB,IAAI,GAAK1rB,EAAEgkX,QAAUvpU,GAAOqpU,EAAmB,OAGxD,mBCLX,GAAU,CAAC,EAEf,GAAQppW,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OAAnD,MCbMkpW,GAAc,EACzBC,gBACA7rF,iBACAyrF,kBAAmC,IAAjBzrF,EAClBx1R,WAEA,MAAM2+R,GAAUnmR,EAAAA,EAAAA,GAAK,eAAgB,CACnC,6BAAuC,gBAATxY,EAC9B,iCAA2C,oBAATA,KAG7BshX,EAAK,EAAGC,EAAK,EAAGC,EAAKl0H,EAAK,EAAG+5C,EAAKo6E,EAAKC,EAAK,EAAGC,IACpDN,GAAiB,IAEhBxjX,MAAM,KACN2D,KAAK1E,GAAWqX,OAAOkjB,MAAMljB,OAAOrX,IAAU,EAAIqX,OAAOrX,KAEtD26C,EAAQ,CACZyjF,KAAM,EAAMs6J,EAAkB,IAC9B59O,IAAK,EAAMqpU,EAAmB,IAC9B7iU,OAASsjU,EAAKJ,GAAM9rF,EAAkB,IACtCx3O,QAAUsvM,EAAKi0H,GAAMN,EAAmB,KAG1C,OAAO,SAACx/T,MAAAA,CAAIrpC,UAAWumR,EAASlnP,MAAOA,sBCxBrC,GAAU,CAAC,qcAEf,GAAQ5/B,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCWnD,MAAM0pW,GAAoB,EAC/Bn0T,WACA00B,kBACA0/R,sBAAsB,EACtBC,0BAA0B,EAC1BhlX,QACAs2D,eAEA,MAAM,EAAE1pD,IAAM6tF,EAAAA,EAAAA,OAER,wBAAEwqR,EAA0B,GAAE,oBAAEC,EAAsB,IAC1DllX,GAAS,CAAC,EAENmlX,GAAkB5jT,EAAAA,EAAAA,QAAuB,OAExC,CAAE8H,IAAe4yB,EAAAA,EAAAA,UAAS,CAAC,IAE3BmpR,EAAkBC,IAAuBppR,EAAAA,EAAAA,WAAS,IAClDqpR,EAA6BC,IAClCtpR,EAAAA,EAAAA,aACKupR,EAA2BC,IAChCxpR,EAAAA,EAAAA,aAEKypR,EAA4BC,IACjC1pR,EAAAA,EAAAA,WAAS,IACJ2pR,EAAYC,IAAiB5pR,EAAAA,EAAAA,UAAS,IACtC6pR,EAAaC,IAAkB9pR,EAAAA,EAAAA,UAAS,IAI/Ct6B,EAAAA,EAAAA,YAAU,KAER,MAAMr+D,EAAW,IAAI88H,gBAAe,GAAIf,mBACtC0mP,EAAe1mP,EAAYn+E,QAC3B2kU,EAAcxmP,EAAY/9E,MAAM,IASlC,OANI6jU,EAAgB18W,SAElBnF,EAASuW,QAAQsrW,EAAgB18W,SAI5B,KACLnF,EAASgkD,YAAY,CACtB,GACA,IAEH,MAAM0+T,GAAoBp3T,EAAAA,EAAAA,UAAQ,KAChC,IAAK02T,IAAgCE,EACnC,OAIF,MAAMhB,EAAK5jX,KAAK6+B,IACd6lV,EAA4B,GAC5BE,EAA0B,IAEtBf,EAAK7jX,KAAK6+B,IACd6lV,EAA4B,GAC5BE,EAA0B,IAItBjpL,EAAK37L,KAAKmrB,IACdu5V,EAA4B,GAC5BE,EAA0B,IAEtB/0H,EAAK7vP,KAAKmrB,IACdu5V,EAA4B,GAC5BE,EAA0B,IAW5B,MAAO,GAAGhB,KAAMC,KAPLD,KACA/zH,KAMuBl0D,KAAMk0D,KAH7Bl0D,KACAkoL,GAE6C,GACvD,CAACa,EAA6BE,IAW3BS,GAAkBr3T,EAAAA,EAAAA,UAAQ,KAC9B,IAAKw2T,EAAkB,MAAO,IAAM,KAGpC,MAAMc,EAAYpqP,MAAUz7H,IAC1BolX,EACEvB,GAA8B7jX,EAAGulX,EAAYE,GAAAA,GAE9C,IAEH,OAAQzlX,IACNA,EAAE8lX,UACFD,EAAU7lX,EAAE,CACb,GACA,CAAC+kX,EAAkBQ,EAAYE,IAE5BM,GAAgB1kT,EAAAA,EAAAA,cAAY,KAC5B0jT,IACFC,GAAoB,GAChBW,GACFL,GAA8B,GAElC,GACC,CAACP,EAAkBY,IAEhBK,EAA6B,EACjCrjO,eAAiBnyI,UAQjB,GANA80W,GAA8B,GAG9BJ,OAA+B1lX,GAC/B4lX,OAA6B5lX,GAExB8wD,EAIL,GAAW,gBAAP9/C,EAAsB,CACxB,MAAMmgD,EAAqB,MAAKhxD,GAChCgxD,EAASk0T,oBAAoB1/W,KAAK,CAAE8gX,QAASN,IAC7Cr1T,EAAS,CAAE7pC,OAAQ,CAAE9mB,MAAOgxD,IAC9B,MAAO,GAAW,oBAAPngD,EAA0B,CACnC,MAAMmgD,EAAqB,MAAKhxD,GAChCgxD,EAASi0T,wBAAwBz/W,KAAK,CAAE8gX,QAASN,IACjDr1T,EAAS,CAAE7pC,OAAQ,CAAE9mB,MAAOgxD,IAC9B,GAGI83P,EAAc,EAClB9lK,eAAiBnyI,UAEjB,GAAK8/C,EAIL,GAAW,gBAAP9/C,EAAsB,CACxB,MAAMmgD,EAAqB,MAAKhxD,GAChCgxD,EAASk0T,oBAAsB,GAC/Bv0T,EAAS,CAAE7pC,OAAQ,CAAE9mB,MAAOgxD,KAC5BqY,EAAY,CAAC,EACf,KAAO,CACL,MAAMrY,EAAqB,MAAKhxD,GAChCgxD,EAASi0T,wBAA0B,GACnCt0T,EAAS,CAAE7pC,OAAQ,CAAE9mB,MAAOgxD,KAC5BqY,EAAY,CAAC,EACf,GAaF,OAPA1H,EAAAA,EAAAA,YAAU,KACRlmB,OAAO7B,iBAAiB,UAAWwsU,GAC5B,KACL3qU,OAAOsjD,oBAAoB,UAAWqnR,EAAc,IAErD,CAACA,KAGF,UAACzhU,MAAAA,CAAIrpC,UAAU,iCACb,SAACs9G,GAAAA,EAAMA,CACLt9G,UAAU,4BACVgG,QAAS1U,EACP,6EAKJ,UAAC+3C,MAAAA,CACCrpC,WAAWI,EAAAA,EAAAA,GAAK,qCAAsC,CACpD,gDAAiD46C,IAEnD3yC,IAAKwhW,EACLviQ,YAvGmBviH,IACvBslX,GAA8B,GAC9BN,GAAoB,GACpBI,OAA6B5lX,GAC7B0lX,EACErB,GAA8B7jX,EAAGulX,EAAYE,GAAAA,EAmG3CS,YAAaN,EACbv2S,KAAK,oBAEL,SAAC82S,GAAAA,EAAaA,CACZC,QAAM,EACNphS,gBAAiBA,EACjBqhS,UAAU,IAIXzB,EAAwBvgX,KAAI,EAAG4hX,QAAS/B,GAAiBntW,KACxD,SAACktW,GAAWA,CAEVC,cAAeA,EACf7rF,eAAgBktF,EAChBzB,gBAAiB2B,EACjB5iX,KAAK,mBAJAkU,KAOR8tW,EAAoBxgX,KAAI,EAAG4hX,QAAS/B,GAAiBntW,KACpD,SAACktW,GAAWA,CAEVC,cAAeA,EACf7rF,eAAgBktF,EAChBzB,gBAAiB2B,EACjB5iX,KAAK,eAJAkU,KAOR4uW,IACC,SAAC1B,GAAWA,CACVC,cAAeyB,EACfttF,eAAgBktF,EAChBzB,gBAAiB2B,QAKrBJ,IACCR,EAAoBphX,OAAS,GAC5BmhX,EAAwBnhX,OAAS,KACjC,UAAC6gD,MAAAA,CAAIrpC,UAAU,4DACZ4pW,EAAoBphX,OAAS,IAC5B,SAAC2X,GAAAA,EAAQA,CACPorI,OAAK,EACL3jJ,KAAK,UACL2N,GAAG,cACHiwD,QAASgoP,WAERl8S,EAAE,yBAGNq4W,EAAwBnhX,OAAS,IAChC,SAAC2X,GAAAA,EAAQA,CACPorI,OAAK,EACL3jJ,KAAK,UACL2N,GAAG,kBACHiwD,QAASgoP,WAERl8S,EAAE,mCAOb,SAAC+5W,GAAAA,EAAOA,CACN13S,MAAOriE,EAAE,yCACT6oE,KAAMiwS,EACNh0R,SAAU20R,EACVz0Q,OAAQ,EACN,SAACn2F,GAAAA,EAAQA,CAAcqlD,QAASulT,WAC7Bz5W,EAAE,WADS,WAGd,SAACsmQ,GAAAA,EAASA,CAERjkM,QACGi2S,aAAAA,EAAAA,EAAqBphX,SAAU,IAAMihX,GAAuB,GACzD,KACAn4W,EAAE,yDAA0D,CAC1Dm4W,kCAIR,SAACtpW,GAAAA,EAAQA,CACP66C,WACG4uT,aAAAA,EAAAA,EAAqBphX,SAAU,KAAOihX,GAAuB,GAEhEl0W,GAAG,cACH3N,KAAK,UACL49D,QAASulT,WAERz5W,EAAE,mBAjBD,gBAoBN,SAACsmQ,GAAAA,EAASA,CAERjkM,QACGg2S,aAAAA,EAAAA,EAAyBnhX,SAAU,IACnCkhX,GAA2B,GACxB,KACAp4W,EACE,mEACA,CAAEo4W,sCAIV,SAACvpW,GAAAA,EAAQA,CACP66C,WACG2uT,aAAAA,EAAAA,EAAyBnhX,SAAU,KACnCkhX,GAA2B,GAE9Bn0W,GAAG,kBACH3N,KAAK,UACL49D,QAASulT,WAERz5W,EAAE,yBApBD,2CCnTZ,GAAU,CAAC,qcAEf,GAAQmO,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCFnD,MCtBMwrW,GAA6C5mX,IACxD,GAAI,CAAC,QAAIH,EAAW,MAAMqa,SAASla,GACjC,OAAO,KAGT,GAAIiS,MAAMie,QAAQlwB,GAChB,OAAOA,EAAM0E,KAAKu0D,GAEI,iBAATA,GAA8B,OAATA,EACvB2tT,GAAqB3tT,GAGvBA,IAIX,GAAqB,iBAAVj5D,EACT,IAAK,MAAMqC,KAAOrC,EAEZV,OAAOC,UAAUC,eAAeU,KAAKF,EAAOqC,KAG9CrC,EAAMqC,GAAOukX,GAAqB5mX,EAAMqC,KAK9C,OAAOrC,CAAK,gCChBV,GAAU,CAAC,qPAEf,GAAQ+a,kBAAoB,IAC5B,GAAQC,cAAgB,IACxB,GAAQC,OAAS,SAAc,KAAM,QACrC,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OC+EnD,MAAMimI,GAAS,QAA0B,UAC9C/lI,EAAS,UACT4lH,GAAY,EAAK,WACjButJ,GAAa,EAAK,cAClBrtI,EAAa,SACbD,EAAQ,SACR5lI,EAAQ,OACRsrW,EAAS,WAAU,OACnBz/R,EAAS,UACTn7C,KAAM66U,EAAY,8BAClBtlO,GAAgC,EAAI,SACpCF,EAAQ,IACRrkD,EAAG,eAEHskD,EAAiB,CACfwlO,mBAAmBhsQ,EAAAA,EAAAA,GAAU,QAC7BisQ,uBAAuB,IAGV,EADZC,oXAAAA,CAAAA,EAAAA,CAjBH3rW,YACA4lH,YACAutJ,aACArtI,gBACAD,WACA5lI,WACAsrW,SACAz/R,SACAn7C,OACAu1G,gCACAF,WACArkD,MAEAskD,mBAMA,MAAM,EAAE30I,IAAM6tF,EAAAA,EAAAA,OAGPysR,GAAmBjoQ,EAAAA,EAAKh4B,UAGzBh7C,EAAO66U,GAAgBI,GAI3B7vP,aAAc8vP,EACd7vP,gBAAiB8vP,IACf5vP,EAAAA,GAAAA,MAGG6vP,EAAsBC,IAA2BrrR,EAAAA,EAAAA,WAAS,GAE3Do7B,EAAe8vP,GAA0BE,EACzC/vP,EAAkB8vP,GAA6BE,EAG/CC,EAAwBzkF,IAAAA,UAAc3wQ,YACpC5pB,MAAOi/W,GACbD,EAAsBlzV,SAASitH,GAO3BmmO,GAAqB/lT,EAAAA,EAAAA,cACxB/X,IACC,GAAI1d,EAAKy7U,kBAAmB,CAE1B/9T,EAAMrO,iBAQN,MAAMqsU,EACJ,4DAGFh+T,EAAM6mT,YAAcmX,CACtB,IAEF,CAAC17U,KAGH01B,EAAAA,EAAAA,YAAU,KAGN6/E,GAEA/lG,OAAO7B,iBAAiB,eAAgB6tU,GAGnC,KACLhsU,OAAOsjD,oBAAoB,eAAgB0oR,EAAmB,IAE/D,CAACA,EAAoBjmO,IAkBxB,MAAMomO,EAA2BllV,KAAKL,UAAU++G,IAChDz/E,EAAAA,EAAAA,YAAU,KACR11B,EAAK47U,aAAa,GACjB,CAAC57U,EAAM27U,IAEV,MAAME,EAAW3mO,EAAAA,sBACb,UAAOjhI,GACLo3G,GAAgB,GAEhB,IAME,MAAMywP,EAAmB97U,EAAK+7U,gBAC5B,GACA,EAAGC,aAAcA,IAGbC,EAAgBtB,GAAqBmB,SAErC5mO,EAAS,CACbjhI,SACAgoW,gBACA9mO,iBAEJ,CAAE,MAAO74I,GACPizC,QAAQjzC,MAAMA,EAChB,CAAE,QACA+uH,GAAgB,EAClB,CACF,mMA1BOp3G,mCADMihI,QA4BbthJ,EAEEwqG,GAAez7C,EAAAA,EAAAA,UACnB,KAAO,CACL4/N,cAAettJ,EACfutJ,WAAYzqQ,QAAQyqQ,GAAcntI,GAAYkmO,GAC9CnwP,eACAC,qBAEF,CACEgqB,EACAkmO,EACAtmP,EACAutJ,EACAp3J,EACAC,IAIJ,OACE,SAACrY,EAAAA,4UAAIA,CAAAA,CACHhzE,KAAMA,EACNm1G,cAAeA,EACfylO,OAAQA,EACRiB,SAAUA,EACVxsW,WAAWI,EAAAA,EAAAA,GAAK,UAAWJ,GAC3BisE,cAAaH,EACb+gS,oBAAkB,EAClBljD,iBAAkB,CAAE9yS,SAAUvlB,EAAE,cAC5Bq6W,cAAAA,WAEJ,SAACpK,EAAAA,EAAcnwV,SAAQ,CAAC1sB,MAAOqqG,YAC7B,gCACG9uF,EAGAgmI,IAAmBktI,IAClB,SAAC25F,EAAAA,EAAWA,CACV9sW,UAAU,mBACV2wB,KAAMA,EACNgxD,IAAKA,EACLorR,cAAennP,EACfonP,sBACEjxP,GAAgBkqB,EAAeylO,sBAEjCD,kBAAmBxlO,EAAewlO,kBAClCwB,iBAAkBhnO,EAAegnO,iBACjC1mO,aAAcN,EAAeM,iXAU3CR,GAAOp6D,QAAUg4B,EAAAA,EAAKh4B,QACtBo6D,GAAOn6D,SAAW+3B,EAAAA,EAAK/3B,SACvBm6D,GAAOmnO,gBAAkBvpQ,EAAAA,EAAKupQ,gBAC9BnnO,GAAO1oH,KAAOsmF,EAAAA,EAAKtmF,KAGnB0oH,GAAO5+B,MClRqB,0BAE1B6rK,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,aACfD,EAAY,SACZx9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OAER8wB,GAGiB,EADdmnM,oXAAAA,CAAAA,EAAAA,CAnBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAD,eACAx9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WAEA8wB,WAMA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAGhC+5F,EAAY,aADLl9U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,QAAI,GACVh0D,WAAWI,EAAAA,EAAAA,GAAK,gBAAiB4yQ,GACjCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBD,aAAcA,EACdx9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQA,EAAS,GAAGA,sBAAwBvnF,IACtCkM,GAAQ,CAAEs7V,QAASohB,eAAU,UAElCj6F,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAACk3N,EAAAA,EAAOA,EAAAA,CACNznT,SAAUm4N,GAAcn4N,EACxB8wB,OAAQA,IACFr7E,GAAQ,CAAE8E,GAAI43W,GAChBl6F,iWD2NdltI,GAAOg5L,KE/RoB,0BAEzB/rD,EAAiB,UAGjBptJ,EAAS,UAGT5lH,EAAS,SAETg7C,GAEgB,EADbi4N,oXAAAA,CAAAA,EAAAA,CATHD,oBAGAptJ,YAGA5lH,YAEAg7C,aAKA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CAACh0D,WAAWI,EAAAA,EAAAA,GAAK,eAAgB4yQ,YAC1CE,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAW7sB,OAAM,CAACxlE,QAAM,EAACmvH,MAAO0nI,EAAa1nI,SAG9C,SAAC25I,EAAAA,EAAMA,EAAAA,CACLllR,WAAWI,EAAAA,EAAAA,GAAK,uBAAwBJ,GACxCg7C,SAAUm4N,GAAcn4N,GACpBi4N,OFmQdltI,GAAOy6N,YAAcA,EACrBz6N,GAAOqnO,cAAgBA,EACvBrnO,GAAOsnO,WG5R0B,aAC/B58W,EAAI,MACJoF,EAAK,MACLkiB,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,UACjBptJ,EAAS,SAGT5qE,GAGsB,EADnBknT,oXAAAA,CAAAA,EAAAA,CAVHzxW,OACAoF,QACAkiB,QACAu8B,kBACA0+N,oBACAptJ,YAGA5qE,aAIA,MAAM,EAAE1pD,IAAM6tF,EAAAA,EAAAA,OAIR,cAAE+zL,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KACtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVvjE,KAAMA,EACNoF,MAAOA,EACPkiB,MAAO,CACL,CACEy3E,UAAS,sBAAE,UAAOpmE,EAAGy+P,EAAsB,IAEzC,OAAKA,EAAYr/R,QAKZw/R,EAAAA,GAAAA,IAAkBH,IAWlBN,EAAAA,GAAAA,IAAcM,QAAnB,EACSr+R,QAAQE,OACb,IAAIvD,MAAMmL,EAAE,GAAGu2R,mCAZVr+R,QAAQE,OACb,IAAIvD,MACFmL,EACE,GAAGu2R,sDARFr+R,QAAQC,SAoBnB,mMAvBkB2/B,mCAAT,OA0BPrR,GAAS,IAEfu8B,gBAAiBA,EACjBt0C,WAAWI,EAAAA,EAAAA,GAAK,sBAAuB4yQ,YAEtCE,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAAC02N,GAAYA,GAAAA,CAACjnT,SAAUm4N,GAAcn4N,GAAcknT,OH+N5Dn8N,GAAOnkD,OAASA,GAAAA,EAChBmkD,GAAOunO,SI3RwB,0BAE7Bt6F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,OACJ70R,EAAS,oBAAmB,UAG5B85C,EAAS,SAGT5qE,GAGoB,EADjBi4N,oXAAAA,CAAAA,EAAAA,CAjBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAz9B,WACA6pV,iBACAC,OACA70R,SAGA85C,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,oBAAqB4yQ,GACrCviR,KAAMA,EACNq7E,OAAQ,GAAGA,cACXj2E,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAAC+3N,GAAUA,GAAAA,CACTtoT,SAAUm4N,GAAcn4N,EACxB8wB,OAAQA,GACJmnM,OJgPdltI,GAAOllC,WKzR0B,0BAE/BmyK,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAGsB,EADnBmnM,oXAAAA,CAAAA,EAAAA,CAjBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAMA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAGhCm6F,EAAiB,mBADVt9U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,sBAAuB4yQ,GACvCviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,IACAlwW,GAAQ,CAAEs7V,QAASwhB,IAAe,UAEvCr6F,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACq3N,GAAYA,GAAAA,GAAAA,CACX5nT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIg4W,GAChBt6F,GAAAA,CACJnnM,OAAQA,SLuOlBi6D,GAAOjlC,WM3R0B,0BAE/BkyK,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAEsB,EADnBmnM,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAGhCo6F,EAAiB,mBADVv9U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,sBAAuB4yQ,GACvCviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,IACAlwW,GAAQ,CAAEs7V,QAASyhB,IAAe,UAEvCt6F,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAAC23N,GAAYA,GAAAA,GAAAA,CACXloT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIi4W,GAChBv6F,GAAAA,CACJnnM,OAAQA,SN0OlBi6D,GAAOuF,WOrS0B,0BAE/B0nI,EAAiB,UAGjBptJ,EAAS,UAGT5lH,EAAS,SAETg7C,GAEsB,EADnBi4N,oXAAAA,CAAAA,EAAAA,CATHD,oBAGAptJ,YAGA5lH,YAEAg7C,aAKA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CAACh0D,WAAWI,EAAAA,EAAAA,GAAK,sBAAuB4yQ,YACjDE,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAW7sB,OAAM,CAACxlE,QAAM,EAACmvH,MAAO0nI,EAAa1nI,SAG9C,SAACxrI,GAAAA,EAAYA,GAAAA,CACXC,WAAWI,EAAAA,EAAAA,GAAK,8BAA+BJ,GAC/Cg7C,SAAUm4N,GAAcn4N,GACpBi4N,OPyQdltI,GAAOsF,cQpR6B,0BAElC2nI,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,cAEJlxN,EAAa,UAGb7pB,EAAS,SAGT5qE,EAAQ,OAER8wB,GAGoB,EADjBmnM,oXAAAA,CAAAA,EAAAA,CApBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAz9B,WACA6pV,iBACAC,OAEAlxN,gBAGA7pB,YAGA5qE,WAEA8wB,WAMA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,MAChC,EAAE9hR,IAAM6tF,EAAAA,EAAAA,MAGRsuR,EAAoB,sBADbx9U,EAAAA,EAAAA,QAGb,IAAIy9U,EAAa31V,EA4BjB,OA1BI03H,IACFi+N,EAAa,IACP31V,QAAAA,EAAS,GACb,CACEoM,IA7Dc,GA8Ddne,QAAS1U,EAAE,8CAEb,CACEvG,QAAS,IAAI80B,OAAO,aACpB7Z,QAAS1U,EACP,mDAGJ,CACEvG,QAAS,IAAI80B,OAAO,aACpB7Z,QAAS1U,EACP,mDAGJ,CACEvG,QAAS,IAAI80B,OAAO,aACpB7Z,QAAS1U,EAAE,8CAMf,SAACy0I,GAAO/xE,QAAI,IACVh0D,WAAWI,EAAAA,EAAAA,GAAK,yBAA0B4yQ,GAC1CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAO21V,EACPp5T,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQA,EAAS,GAAGA,sBAAwBvnF,IACtCkM,GAAQ,CAAEs7V,QAAS0hB,eAAkB,UAE1Cv6F,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAACk3N,EAAAA,EAAQn2P,SAAQ,IACftxD,SAAUm4N,GAAcn4N,EACxB8wB,OAAQA,IACFr7E,GAAQ,CAAE8E,GAAIk4W,GAChBx6F,iWRgMdltI,GAAO4nO,YS/R2B,0BAChC36F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,GAGuB,EADpBi4N,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,uBAAwB4yQ,GACxCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAACk3N,EAAAA,EAAQr2P,OAAM,IAACpxD,SAAUm4N,GAAcn4N,GAAci4N,OTsP9DltI,GAAO6nO,cUhS6B,0BAElC56F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,GAGyB,EADtBi4N,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,0BAA2B4yQ,GAC3CviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAG9B,SAACk3N,EAAAA,EAAQp2P,SAAQ,IAACrxD,SAAUm4N,GAAcn4N,GAAci4N,OVsPhEltI,GAAOgM,OWzRqB,QAG1B,kBAEAihI,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,aACfD,EAAY,SACZx9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OAER8wB,GAGwB,EADrBmnM,oXAAAA,CAAAA,EAAAA,CAnBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAD,eACAx9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WAEA8wB,WAQA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCy6F,EAAmB/hS,EACrB,GAAGA,iBACc,iBAAVj2E,EACL,GAAGA,sBACHtR,EAEAupX,EAAa,cADN79U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB4yQ,GAClCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBD,aAAcA,EACdx9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQ+hS,IACFp9W,GAAQ,CAAEs7V,QAAS+hB,IAAW,UAEnC56F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACvI,EAAAA,EAAQA,GAAAA,GAAAA,CACPhoF,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIu4W,GAChB76F,GAAAA,CACJnnM,OAAQA,SX4NlBi6D,GAAOgoO,OY1SsB,0BAE3B/6F,EAAiB,KACjBviR,EAAI,aACJ4jD,EAAY,UAGZuxE,GAAY,EAAK,SAGjB5qE,GAGkB,EADfi4N,oXAAAA,CAAAA,EAAAA,CAVHD,oBACAviR,OACA4jD,eAGAuxE,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB4yQ,GAClCviR,KAAMA,EACN4jD,aAAcA,EACdy3S,cAAc,mBAEb54E,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAW7sB,OAAM,CAACxlE,QAAM,EAACkB,KAAK,QAAQ0xF,MAAM,YAE7C,SAACg/P,GAAAA,EAAQA,GAAAA,CAAChzT,SAAUm4N,GAAcn4N,GAAci4N,OZ+QxDltI,GAAO7hC,Ma9SqB,0BAE1B8uK,EAAiB,UAGjBptJ,EAAS,mBAETqoP,GAEiB,EADdh7F,oXAAAA,CAAAA,EAAAA,CANHD,oBAGAptJ,YAEAqoP,uBAKA,MAAM,cAAE/6F,IAAkBE,EAAAA,EAAAA,KACpBr7K,EAAgE,CAAC,EACnEk7K,EAAajtO,QACf+xD,EAAO/xD,MAAQitO,EAAajtO,OAE1BitO,EAAartO,SACfmyD,EAAOnyD,OAASqtO,EAAartO,QAG/B,MAAMsoU,EAAiBD,GACrB,SAACx/P,EAAAA,EAAWI,KAAI,CAACxvE,MAAO04D,EAAQ37E,QAAM,WACnC6xV,KAGH,SAACx/P,EAAAA,EAAWvK,MAAK,CAAC7kE,MAAO04D,EAAQ37E,QAAM,IAGzC,OACE,SAAC2pH,GAAO/xE,KAAI,CAACh0D,WAAWI,EAAAA,EAAAA,GAAK,gBAAiB4yQ,YAC3CE,GAAiBttJ,EAChBsoP,GAEA,SAACC,GAAAA,EAAOA,GAAAA,CAAAA,EAAKl7F,Ob6QrBltI,GAAOj3B,SAAWA,GAAAA,EAClBi3B,GAAOqoO,cc1S6B,0BAElCp7F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,UAGPzsB,EAAS,SAGT5qE,EAAQ,UACRh7C,GAEoB,EADjBizQ,oXAAAA,CAAAA,EAAAA,CAXHD,oBACAviR,OACAoF,QACAw8I,UAGAzsB,YAGA5qE,WACAh7C,cAKA,MAAM,cAAEkzQ,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,yBAA0B4yQ,GAC1CviR,KAAMA,EACN4hJ,QAASA,EACTx8I,MAAOA,WAINq9Q,GAAiBttJ,GAChB,SAACv8E,MAAAA,CAAIrpC,UAAU,qDACXizQ,EAAa97Q,SAAW,IAAI/N,KAAI,CAACggC,EAAGj9B,KACpC,SAACsiH,EAAAA,EAAWK,SAAQ,CAAS1yF,QAAM,GAATjwB,QAI9B,SAACi3U,GAAAA,EAAWp3N,MAAK,IACfhsG,WAAWI,EAAAA,EAAAA,GAAK,yCAA0CJ,GAC1Dg7C,SAAUm4N,GAAcn4N,GACpBi4N,OdqQdltI,GAAO4zK,Me1SqB,0BAE1B3mC,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,UAGPzsB,EAAS,SAGT3lH,EAAQ,aACRouW,EAAY,SAEZrzT,GAEiB,EADdi4N,oXAAAA,CAAAA,EAAAA,CAbHD,oBACAviR,OACAoF,QACAw8I,UAGAzsB,YAGA3lH,WACAouW,eAEArzT,aAKA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,gBAAiB4yQ,GACjCviR,KAAMA,EACN4hJ,QAASA,EACTx8I,MAAOA,EACPi2V,cAAc,mBAEb54E,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWG,OAAM,CAACxyF,QAAM,EAACkB,KAAK,QAAQ0xF,MAAM,YAE7C,SAACyqM,GAAAA,KAAOA,GAAAA,CACNz+P,SAAUm4N,GAAcn4N,EACxBq3F,QAASg8N,GACLp7F,KAAAA,UAEHhzQ,0WfsQX8lI,GAAO/xE,KAAOA,GAAAA,EACd+xE,GAAOjgC,YgBvS2B,0BAEhCktK,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAE2B,EADxBmnM,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAGhCk7F,EAAkB,oBADXr+U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,uBAAwB4yQ,GACxCviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,IACAlwW,GAAQ,CAAEs7V,QAASuiB,IAAgB,UAExCp7F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACo4N,GAAaA,GAAAA,GAAAA,CACZ3oT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAI+4W,GAChBr7F,GAAAA,CACJnnM,OAAQA,ShByPlBi6D,GAAOwoO,gBxBnS8B,QAInC,KAEA99W,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,aACjB3+N,EAAY,SACZx9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAEiD,EAD9CorO,oXAAAA,CAAAA,EAAAA,CAjBHzmT,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACA0+N,oBACA3+N,eACAx9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCy6F,EAAmB/hS,EACrB,GAAGA,iBACc,iBAAVj2E,EACL,GAAGA,sBACHtR,EAEAupX,EAAa,yBADN79U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,4BAA6B4yQ,GAC7CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBD,aAAcA,EACdx9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQ+hS,IACFp9W,GAAQ,CAAEs7V,QAAS+hB,IAAW,UAEnC56F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACk5N,GAAAA,EAAiBA,GAAAA,GAAAA,CAChBzpT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIu4W,GAChB52D,GAAAA,CACJprO,OAAQA,SwByOlBi6D,GAAOyoO,gCiBzS+C,aAEpD/9W,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,SACjBn8P,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAE2C,EADxCorO,oXAAAA,CAAAA,EAAAA,CAhBHzmT,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACA0+N,oBACAn8P,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCy6F,EAAmB/hS,EACrB,GAAGA,iBACc,iBAAVj2E,EACL,GAAGA,sBACHtR,EAEAupX,EAAa,yBADN79U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,4BAA6B4yQ,GAC7CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQ+hS,IACFp9W,GAAQ,CAAEs7V,QAAS+hB,IAAW,UAEnC56F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAAC84N,GAAiCA,GAAAA,GAAAA,CAChCrpT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIu4W,GAChB52D,GAAAA,CACJprO,OAAQA,SjBqPlBi6D,GAAO0oO,gCkB1S+C,aAEpDh+W,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,SACjBn8P,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAE2C,EADxCorO,oXAAAA,CAAAA,EAAAA,CAhBHzmT,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACA0+N,oBACAn8P,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCy6F,EAAmB/hS,EACrB,GAAGA,iBACc,iBAAVj2E,EACL,GAAGA,sBACHtR,EAEAupX,EAAa,yBADN79U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK,4BAA6B4yQ,GAC7CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQ+hS,IACFp9W,GAAQ,CAAEs7V,QAAS+hB,IAAW,UAEnC56F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACy5N,GAAiCA,GAAAA,GAAAA,CAChChqT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIu4W,GAChB52D,GAAAA,CACJprO,OAAQA,SlBsPlBi6D,GAAO2oO,kBmBxSgC,QAGrC,KAEAj+W,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,SACjBn8P,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,GAGmC,EADhC2zT,oXAAAA,CAAAA,EAAAA,CAhBHl+W,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACA0+N,oBACAn8P,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,8BAA+B4yQ,GAC/CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAAC65N,GAAmBA,GAAAA,CAClBpqT,SAAUm4N,GAAcn4N,GACpB2zT,OnB6Pd5oO,GAAO6oO,kCb3SiD,aAEtDn+W,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,kBACf0+N,EAAiB,SACjBn8P,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,GAG6C,EAD1C2zT,oXAAAA,CAAAA,EAAAA,CAhBHl+W,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACA0+N,oBACAn8P,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAev5N,EAAAA,EAAAA,YAAW2nT,EAAAA,GAEjD,OACE,SAACx7N,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GACT,iDACA4yQ,GAEFviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACTt6H,MAAOA,EACPu8B,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACy8N,GAAmCA,GAAAA,CAClChtT,SAAUm4N,GAAcn4N,GACpB2zT,OagQd5oO,GAAO8oO,eoB7S8B,0BAEnC77F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAK,gBACLu8B,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,EAAQ,OACR8wB,GAE0B,EADvBmnM,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAu8B,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,WACA8wB,WAKA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEhCy6F,EAAmB/hS,EACrB,GAAGA,iBACc,iBAAVj2E,EACL,GAAGA,sBACHtR,EAEAupX,EAAa,uBADN79U,EAAAA,EAAAA,QAGb,OACE,SAAC81G,GAAO/xE,KAAI,OACVh0D,WAAWI,EAAAA,EAAAA,GAAK4yQ,GAChBviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,EACN70R,OAAQ+hS,IACFp9W,GAAQ,CAAEs7V,QAAS+hB,IAAW,UAEnC56F,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACg9N,GAAgBA,GAAAA,GAAAA,CACfvtT,SAAUm4N,GAAcn4N,IAClBvqD,GAAQ,CAAE8E,GAAIu4W,GAChB76F,GAAAA,CACJnnM,OAAQA,SpByPlBi6D,GAAO+oO,WqB9S0B,0BAE/B97F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAQ,GAAE,SACVlB,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,OACT95C,EAAS,uBAIQ,EADdmnM,oXAAAA,CAAAA,EAAAA,CAdHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QACAlB,WACA6pV,iBACAC,OAGA/6O,YACA95C,WAOA,MAAM,cAAEonM,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,mBAAoB4yQ,GACpCviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACT/9F,gBAAgB,SAChB23B,cAAaH,EACb/zD,MAAO,IACFA,EACH,CACEy3E,UAAS,sBAAE,UAAOpmE,EAAQsvD,GACxB,IACEtxD,KAAKwD,MAAM8tD,EACb,CAAE,MAAO3zF,GACP,GAAIA,aAAag7N,YACf,MAAM,IAAI55N,MAAMpB,EAAEihB,QAEtB,CACF,mMARkBojB,EAAQsvD,mCAAjB,KAWb7hE,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWtH,MAAK,CAAC/qF,QAAM,EAACmvH,OAAK,KAE9B,SAACgvJ,GAAAA,EAAYA,GAAAA,CACXv/O,SAAUm4N,GAAcF,EAAaj4N,UACjCi4N,OrB0PdltI,GAAO5qF,OsB/SsB,0BAE3B63N,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,UACP74H,EAAS,cACTu1V,EAAa,aACb16T,EAAY,UAGZuxE,EAAS,SAET5qE,EAAQ,cACRg0T,GAEkB,EADf/7F,oXAAAA,CAAAA,EAAAA,CAbHD,oBACAviR,OACAoF,QACAw8I,UACA74H,YACAu1V,gBACA16T,eAGAuxE,YAEA5qE,WACAg0T,kBAKA,MAAM,cAAE97F,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,iBAAkB4yQ,GAClCviR,KAAMA,EACN4hJ,QAASA,EACTx8I,MAAOA,EACP2jB,UAAWA,EACXu1V,cAAeA,EACf16T,aAAcA,WAEb6+N,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWG,OAAM,CAACxyF,QAAM,EAACkB,KAAK,QAAQ0xF,MAAM,YAE7C,SAACigQ,GAAAA,EAAQA,GAAAA,CACPj0T,SAAUm4N,GAAcn4N,EACxBq3F,QAAS28N,GACL/7F,OtB2QdltI,GAAOvhC,YuBjT2B,0BAEhCwuK,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,MACLkiB,EAAK,QACLs6H,EAAO,gBACP/9F,EAAe,SACfz9B,EAAQ,eACR6pV,EAAc,KACdC,EAAI,UAGJ/6O,EAAS,SAGT5qE,GAGuB,EADpBi4N,oXAAAA,CAAAA,EAAAA,CAhBHD,oBACAviR,OACAoF,QACAkiB,QACAs6H,UACA/9F,kBACAz9B,WACA6pV,iBACAC,OAGA/6O,YAGA5qE,aAMA,MAAM,cAAEk4N,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,uBAAwB4yQ,GACxCviR,KAAMA,EACNoF,MAAOA,EACPkiB,MAAOA,EACPs6H,QAASA,EACT/9F,gBAAiBA,EACjBz9B,SAAUA,EACV6pV,eAAgBA,EAChBC,KAAMA,WAELztF,GAAiBttJ,GAIhB,SAACnX,EAAAA,EAAWK,SAAQ,CAAC1yF,QAAM,KAG3B,SAACssV,GAAaA,GAAAA,CAAC1tT,SAAUm4N,GAAcn4N,GAAci4N,OvBuQ7DltI,GAAOyjO,kBHpTiC,0BAEtCx2F,EAAiB,KACjBviR,EAAI,MACJoF,EAAK,QACLw8I,EAAO,MACPt6H,EAAQ,GAAE,UAGV6tG,GAI6B,EAD1BqtJ,oXAAAA,CAAAA,EAAAA,CAVHD,oBACAviR,OACAoF,QACAw8I,UACAt6H,QAGA6tG,cAOA,MAAM,cAAEstJ,EAAa,WAAEC,IAAeC,EAAAA,EAAAA,KAEtC,OACE,SAACrtI,GAAO/xE,KAAI,CACVh0D,WAAWI,EAAAA,EAAAA,GAAK,8BAA+B4yQ,GAC/CviR,KAAMA,EACNoF,MAAOA,EACPw8I,QAASA,EACT/9F,gBAAgB,WAChBv8B,MAAOA,WAENm7P,GAAiBttJ,GAChB,SAACnX,EAAAA,EAAWI,KAAI,CACdzyF,QAAM,EACNpc,UAAU,kDAEV,SAACkvW,KAAmBA,CAAClvW,UAAU,kDAGjC,SAACwpW,GAAiBA,GAAAA,CAChBxuT,SAAUtyC,QAAQyqQ,GAAcF,EAAaj4N,WACzCi4N,OGgRdltI,GAAOopO,yBAA2BA,GAAAA,kDwB3U3B,MAAM7tR,EAAoB,IAAMnhD,OAAOrtC,2BCA9CtO,EAAOC,QAAU,IAA0B,kDCA3CD,EAAOC,QAAUkS,MAAMie,SAAW,SAAU9iB,GAC1C,MAA8C,kBAAvC9N,OAAOC,UAAUG,SAASQ,KAAKkN,EACxC,cCDA,IAGIg/R,EAHYhqO,SAAS7iE,UAGIG,SAqB7BI,EAAOC,QAZP,SAAkBs9B,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO+uQ,EAAalsS,KAAKm9B,EAC3B,CAAE,MAAOh9B,GAAI,CACb,IACE,OAAQg9B,EAAO,EACjB,CAAE,MAAOh9B,GAAI,CACf,CACA,MAAO,EACT,6MCJA,MAkDA,GAAe,QAlDGwN,IAChB,MACImoD,UAAWw5B,EAAkB,UAC7Bl0E,EAAS,UACT43F,EAAS,SACTvD,EAAQ,KACRzsG,EAAI,MACJ+rE,EAAK,SACL1zD,EAAQ,OACRq2F,GACE/jG,EACJkzD,EA5BgC,SAAUv2D,EAAGnK,GAC/C,IAAIuM,EAAI,CAAC,EACT,IAAK,IAAI5G,KAAKwE,EAAOlL,OAAOC,UAAUC,eAAeU,KAAKsK,EAAGxE,IAAM3F,EAAEyhC,QAAQ97B,GAAK,IAAG4G,EAAE5G,GAAKwE,EAAExE,IAC9F,GAAS,MAALwE,GAAqD,mBAAjClL,OAAO2nB,sBAA2C,KAAIxf,EAAI,EAAb,IAAgBzB,EAAI1G,OAAO2nB,sBAAsBzc,GAAI/C,EAAIzB,EAAElC,OAAQ2D,IAClIpH,EAAEyhC,QAAQ97B,EAAEyB,IAAM,GAAKnI,OAAOC,UAAU4lB,qBAAqBjlB,KAAKsK,EAAGxE,EAAEyB,MAAKmF,EAAE5G,EAAEyB,IAAM+C,EAAExE,EAAEyB,IADuB,CAGvH,OAAOmF,CACT,CAqBgBy0F,CAAOxzF,EAAO,CAAC,YAAa,YAAa,YAAa,WAAY,OAAQ,QAAS,WAAY,YACvG,aACJmnD,GACE,aAAiB,MACftP,EAAgBsP,IAChBgB,EAAYw5B,GAAsBx6B,EAAa,SAC/ClH,GAAU,EAAAm9C,EAAA,GAAavlD,IACtB+pC,EAAYn6B,EAAQo6B,IAAa,QAAS15B,EAAWlI,GACtD4jD,EAAmB,GAAG17C,YAE5B,IAAI00T,EAAkB,CAAC,EAqBvB,OAnBEA,EADExnX,EACgB,CAChBysG,SAAUA,SAA2CA,EACrD1gC,MAAO,GACP2iC,OAAQ,GACRr2F,SAAwB,gBAAoB,IAAgBjc,OAAOqZ,OAAO,CAAC,EAAG9K,EAAO,CACnFmoD,UAAWA,EACX07C,iBAAkBA,EAClBhsD,cAAeA,EACf/D,QAASpmC,MAIK,CAChBo0F,SAAUA,SAA2CA,EACrD1gC,QACA2iC,OAAmB,OAAXA,GAAgC,gBAAoB,IAAQtyG,OAAOqZ,OAAO,CAAC,EAAG9K,IACtF0N,YAGGk0E,EAAwB,gBAAoB,IAAOnwF,OAAOqZ,OAAO,CACtEq9C,UAAWA,EACX16C,UAAW,IAAWg6C,EAAQ,GAAGU,eAAwB9yD,GAAQwuG,EAAkBxuG,GAAQ,GAAGwuG,KAAoBxuG,IAAQoY,EAAWo0E,EAAW5hC,IAC/IiT,EAAW,CACZmyC,WAAW,OAAgBl9C,EAAWk9C,GACtCvD,SAAUA,GACT+6Q,IAAkB,oBC5DvB,SAASC,EAAU98W,GACjB,OAAO,SAAQ,QAASA,GAC1B,CACA,MAAM,EAAQ,IACd,EAAMyiF,SAAWA,EAAA,EACjB,EAAMp1B,KAAO,SAAgBrtD,GAC3B,OAAO,SAAQ,QAASA,GAC1B,EACA,EAAM0sC,QAAU,SAAmB1sC,GACjC,OAAO,SAAQ,QAAYA,GAC7B,EACA,EAAMtF,MAAQ,SAAiBsF,GAC7B,OAAO,SAAQ,QAAUA,GAC3B,EACA,EAAMk2B,QAAU4mV,EAChB,EAAMjqV,KAAOiqV,EACb,EAAMx5R,QAAU,SAAmBtjF,GACjC,OAAO,SAAQ,QAAYA,GAC7B,EACA,EAAM+8W,WAAa,WACjB,KAAOC,EAAA,EAAW/mX,QAAQ,CACxB,MAAMqD,EAAQ0jX,EAAA,EAAWv0W,MACrBnP,GACFA,GAEJ,CACF,EACA,EAAM6wD,OAAS,KACf,EAAM6pD,uCAAyC,EAI/C,4BCvCA,IAAI1I,EAAa,EAAQ,QAezBr5G,EAAOC,QANP,SAA0B47L,GACxB,IAAIr7L,EAAS,IAAIq7L,EAAYjtK,YAAYitK,EAAY1hF,YAErD,OADA,IAAId,EAAW74G,GAAQgC,IAAI,IAAI62G,EAAWwiF,IACnCr7L,CACT,wGCZA,IAAIw+D,EAAc,EAAQ,QACtB6K,EAAQ,EAAQ,QAChBo8N,EAAa,EAAQ,QACrB/mO,EAAS,EAAQ,OACjB0K,EAAc,EAAQ,QACtBohT,EAA6B,uBAC7BC,EAAgB,EAAQ,QACxBC,EAAsB,EAAQ,QAE9BC,EAAuBD,EAAoBE,QAC3CC,EAAmBH,EAAoBh2W,IACvCq6C,EAAU/oD,OAEV8e,EAAiB9lB,OAAO8lB,eACxBgmW,EAActsT,EAAY,GAAGz3D,OAC7Bu0B,EAAUkjC,EAAY,GAAGljC,SACzB56B,EAAO89D,EAAY,GAAG99D,MAEtBqqX,EAAsB3hT,IAAgBC,GAAM,WAC9C,OAAsF,IAA/EvkD,GAAe,WAA0B,GAAG,SAAU,CAAEplB,MAAO,IAAK8D,MAC7E,IAEIwnX,EAAWhlX,OAAOA,QAAQvF,MAAM,UAEhCwqX,EAAczrX,EAAOC,QAAU,SAAUC,EAAO+L,EAAM0G,GACf,YAArC24W,EAAY/7T,EAAQtjD,GAAO,EAAG,KAChCA,EAAO,IAAM6vB,EAAQyzB,EAAQtjD,GAAO,wBAAyB,MAAQ,KAEnE0G,GAAWA,EAAQ87T,SAAQxiU,EAAO,OAASA,GAC3C0G,GAAWA,EAAQ0tB,SAAQp0B,EAAO,OAASA,KAC1CizD,EAAOh/D,EAAO,SAAY8qX,GAA8B9qX,EAAM+L,OAASA,KACtE29D,EAAatkD,EAAeplB,EAAO,OAAQ,CAAEA,MAAO+L,EAAM8Z,cAAc,IACvE7lB,EAAM+L,KAAOA,GAEhBs/W,GAAuB54W,GAAWusD,EAAOvsD,EAAS,UAAYzS,EAAM8D,SAAW2O,EAAQ2tB,OACzFhb,EAAeplB,EAAO,SAAU,CAAEA,MAAOyS,EAAQ2tB,QAEnD,IACM3tB,GAAWusD,EAAOvsD,EAAS,gBAAkBA,EAAQic,YACnDg7C,GAAatkD,EAAeplB,EAAO,YAAa,CAAE8lB,UAAU,IAEvD9lB,EAAMT,YAAWS,EAAMT,eAAYM,EAChD,CAAE,MAAO0I,GAAqB,CAC9B,IAAIiL,EAAQy3W,EAAqBjrX,GAG/B,OAFGg/D,EAAOxrD,EAAO,YACjBA,EAAMuT,OAAS/lB,EAAKsqX,EAAyB,iBAARv/W,EAAmBA,EAAO,KACxD/L,CACX,EAIAoiE,SAAS7iE,UAAUG,SAAW6rX,GAAY,WACxC,OAAOxlF,EAAWpiS,OAASwnX,EAAiBxnX,MAAMojB,QAAUgkW,EAAcpnX,KAC5E,GAAG,qCC5CK,SAAWiZ,GAAU,aAIdA,EAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwC/b,MAC5C,KAEJmc,YAAa,yCAAyCnc,MAClD,KAEJqc,SAAU,8BAA8Brc,MAAM,KAC9Csc,cAAe,uBAAuBtc,MAAM,KAC5Cuc,YAAa,gBAAgBvc,MAAM,KACnCyc,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJE,IAAK,kBACLE,KAAM,sBACNmQ,EAAG,WACHtQ,GAAI,YACJE,IAAK,kBACLE,KAAM,uBAEV0P,cAAe,oBACfuqE,aAAc,SAAUpqE,EAAMD,GAI1B,OAHa,KAATC,IACAA,EAAO,GAEM,OAAbD,GAAkC,OAAbA,GAAkC,OAAbA,EACnCC,EACa,OAAbD,EACAC,GAAQ,GAAKA,EAAOA,EAAO,GACd,OAAbD,GAAkC,OAAbA,EACrBC,EAAO,QADX,CAGX,EACAD,SAAU,SAAUC,EAAMC,EAAQC,GAC9B,IAAI2uQ,EAAY,IAAP7uQ,EAAaC,EACtB,OAAI4uQ,EAAK,IACE,KACAA,EAAK,IACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KACAA,EAAK,KACL,KAEA,IAEf,EACAz+Q,SAAU,CACNC,QAAS,UACTE,QAAS,UACTC,SAAU,aACVC,QAAS,UACTC,SAAU,aACVC,SAAU,KAEde,uBAAwB,iBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAhB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNpU,EAAG,KACHqU,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,SAMf,CAtGyCS,CAAQ,EAAQ,2BCP1DlgB,EAAOC,QAAU,IAA0B,2HCApC,MAAMolV,EAAO,sBACPqmC,EAA4B,0BAC5BC,EAAuB,qBAEvBC,EAAgB,OAAOvmC,kBACvBwmC,EAA0B,OAAOxmC,wCCJ9C,IAIIymC,EAAYjkW,KAAKC,IA+BrB9nB,EAAOC,QApBP,SAAkBs9B,GAChB,IAAIulC,EAAQ,EACRipT,EAAa,EAEjB,OAAO,WACL,IAAI38K,EAAQ08K,IACRxxK,EApBO,IAoBiBlL,EAAQ28K,GAGpC,GADAA,EAAa38K,EACTkL,EAAY,GACd,KAAMx3I,GAzBI,IA0BR,OAAOlhE,UAAU,QAGnBkhE,EAAQ,EAEV,OAAOvlC,EAAKvyB,WAAMjL,EAAW6B,UAC/B,CACF,qGC3BIolH,EAAiB,SAAwBj5G,EAAO8V,GAClD,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiB0/F,yICW5C,MAAMglQ,EAAgB,CAAC,IAAK,KAWtBC,EAAQ,CAAC5kU,EAAUptC,EAAO,CAAC,MAC/B,QAAc,KACZ,MAAMqtC,GAAoB,SACpBC,GAAS,OAAW,OAE1B,IAAI7jB,EAEJ,MAAMwoV,EAAe13V,IAEfA,EAAMzR,UAAYukC,EAAkBG,kBACtCF,EAAOrnD,MAAQs0B,EAAM23V,gBAAkB33V,EAAMzR,UAC7CwkC,EAAO/oB,QAAQ94B,KAAK8uB,GACpBkP,GAAO,GACT,EAGI0oV,EAAiB5tV,IACrB,EAAWn8B,QAAQ6pX,EAAY,EAG3B7xW,GAAK,OAAQ,cAAe+xW,GAClC1oV,GAAS,OAAa2jB,EAAUE,EAAQykU,EAAe/xW,EAAKytC,kBAExDrtC,IACF,QACE,QAAQ,KACN+xW,EAAc/xW,EAAGgyW,eACjBhyW,EAAGmtC,YAAY,IAGrB,GACA,kaC3DG,MAAM8kU,EAA2B,YACnC33T,EAAAA,EAAAA,CAAAA,+EAAAA,CAAAA,WAEH,SAACC,EAAAA,2UAAUA,CAAAA,CAACC,QAAQ,aAAgBF,cAAAA,WAClC,SAACj+C,OAAAA,CAAK0I,EAAE,0tCCbL,MAAMimU,EAAO,gBACPknC,EAAO,gBACPhpP,EAAQ,qBACRipP,EAAa,YACbZ,EAAgB,OAAOvmC,kBACvBonC,EAAmB,OAAOpnC,qBAC1BqnC,EAAuB,OAAOrnC,2CCN3C,IAAIsnC,EAAgB,EAAQ,OACxBC,EAAiB,EAAQ,QACzBC,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QACtBC,EAAc,EAAQ,QAS1B,SAASp0P,EAASn6F,GAChB,IAAIlnB,GAAS,EACTtT,EAAoB,MAAXw6B,EAAkB,EAAIA,EAAQx6B,OAG3C,IADAH,KAAKgL,UACIyI,EAAQtT,GAAQ,CACvB,IAAIwwB,EAAQgK,EAAQlnB,GACpBzT,KAAKrB,IAAIgyB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAmkG,EAASl5H,UAAUoP,MAAQ89W,EAC3Bh0P,EAASl5H,UAAkB,OAAImtX,EAC/Bj0P,EAASl5H,UAAUyV,IAAM23W,EACzBl0P,EAASl5H,UAAU6Z,IAAMwzW,EACzBn0P,EAASl5H,UAAU+C,IAAMuqX,EAEzB/sX,EAAOC,QAAU04H,uFC5Bb97G,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,sWAAuW,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+EAA+E,mDAAmD,MAAQ,GAAG,SAAW,uIAAuI,eAAiB,CAAC,sgBAAsgB,wIAAwI,WAAa,MAEv3C,yCCPA,SAAS6sF,EAAgB9wF,GACvB,OAAO8wF,EAAkBp+F,OAAO6wC,eAAiB7wC,OAAO0D,eAAe2P,OAAS,SAAU/F,GACxF,OAAOA,EAAE4Z,WAAalnB,OAAO0D,eAAe4J,EAC9C,EAAG8wF,EAAgB9wF,EACrB,+LCOI6F,EAAU,CAAC,EAEfA,EAAQsI,kBAAoB,IAC5BtI,EAAQuI,cAAgB,IACxBvI,EAAQwI,OAAS,SAAc,KAAM,QACrCxI,EAAQyI,OAAS,IACjBzI,EAAQ0I,mBAAqB,IAEhB,IAAI,IAAS1I,GAKJ,KAAW,IAAQ2I,QAAS,IAAQA,yBCxB1Dtb,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,8RCwCzC,YA6CA,YAeF,IAAI+sX,EAAoB,SAA2B7sV,EAAI8sV,GACrD,MAAqB,mBAAP9sV,EAAoBA,EAAG8sV,GAAmB9sV,CAC1D,EACI+sV,EAAsB,SAA6B/sV,EAAI8sV,GACzD,MAAqB,iBAAP9sV,GAAkB,QAAeA,EAAI,KAAM,KAAM8sV,GAAmB9sV,CACpF,EAEIgtV,EAAiB,SAAwBxiX,GAC3C,OAAOA,CACT,EAEIid,EAAa,kBAES,IAAfA,IACTA,EAAaulW,GAOf,IAAIC,EAAaxlW,GAAW,SAAU5gB,EAAMylQ,GAC1C,IAAIjxH,EAAWx0I,EAAKw0I,SAChB0R,EAAWlmJ,EAAKkmJ,SAChBmgO,EAAWrmX,EAAKg6D,QAChBysE,GAAO,OAA8BzmI,EAAM,CAAC,WAAY,WAAY,YAEpEggB,EAASymH,EAAKzmH,OAEdjZ,GAAQ,OAAS,CAAC,EAAG0/H,EAAM,CAC7BzsE,QAAS,SAAiBnX,GACxB,IACMwjU,GAAUA,EAASxjU,EACzB,CAAE,MAAOonE,GAEP,MADApnE,EAAMrO,iBACAy1E,CACR,CAEKpnE,EAAMyjU,kBACM,IAAjBzjU,EAAMq9D,QACLlgG,GAAqB,UAAXA,GAvBjB,SAAyB6iC,GACvB,SAAUA,EAAM4oP,SAAW5oP,EAAM0oP,QAAU1oP,EAAM2oP,SAAW3oP,EAAM07P,SACpE,CAsBOgoE,CAAgB1jU,KAEbA,EAAMrO,iBACN0xG,IAEN,IAYF,OAPEn/I,EAAM8V,IADJspW,IAAmBvlW,GACT6kP,GAEAjxH,EAKM,gBAAoB,IAAKztI,EAC/C,IAUIwsU,EAAO3yT,GAAW,SAAUle,EAAO+iQ,GACrC,IAAI+gH,EAAkB9jX,EAAM0nE,UACxBA,OAAgC,IAApBo8S,EAA6BJ,EAAaI,EACtD1xV,EAAUpyB,EAAMoyB,QAChBqE,EAAKz2B,EAAMy2B,GACXq7G,EAAW9xI,EAAM8xI,SACjB/N,GAAO,OAA8B/jI,EAAO,CAAC,YAAa,UAAW,KAAM,aAE/E,OAAoB,gBAAoB,EAAA+jX,gBAAgB5vC,SAAU,MAAM,SAAU/yU,GAC/EA,IAAqH,QAAU,GAChI,IAAIkN,EAAUlN,EAAQkN,QAClB1J,EAAW4+W,EAAoBF,EAAkB7sV,EAAIr1B,EAAQwD,UAAWxD,EAAQwD,UAChF0iH,EAAO1iH,EAAW0J,EAAQ01W,WAAWp/W,GAAY,GAEjDP,GAAQ,OAAS,CAAC,EAAG0/H,EAAM,CAC7Bzc,KAAMA,EACNk8B,SAAU,WACR,IAAI5+I,EAAW0+W,EAAkB7sV,EAAIr1B,EAAQwD,UACzCq/W,GAAwB,QAAW7iX,EAAQwD,aAAc,QAAW4+W,EAAoB5+W,KAC/EwtB,GAAW6xV,EAAwB31W,EAAQ8jB,QAAU9jB,EAAQtS,MACnE4I,EACT,IAUF,OANI6+W,IAAmBvlW,EACrB7Z,EAAM8V,IAAM4oP,GAAgBjxH,EAE5BztI,EAAMytI,SAAWA,EAGC,gBAAoBpqE,EAAWrjE,EACrD,GACF,IAiBI6/W,EAAmB,SAAwBjjX,GAC7C,OAAOA,CACT,EAEIkjX,EAAe,kBAES,IAAjBA,IACTA,EAAeD,GAiBHC,GAAa,SAAU7mX,EAAMylQ,GACzC,IAAIqhH,EAAmB9mX,EAAK,gBACxB+mX,OAAmC,IAArBD,EAA8B,OAASA,EACrDE,EAAuBhnX,EAAKinX,gBAC5BA,OAA2C,IAAzBD,EAAkC,SAAWA,EAC/Dj7P,EAAc/rH,EAAK+rH,YACnBm7P,EAAgBlnX,EAAKwU,UACrB+4P,EAAQvtQ,EAAKutQ,MACb45G,EAAennX,EAAKi4H,SACpBmvP,EAAepnX,EAAKsH,SACpBy3B,EAAY/+B,EAAK++B,UACjBzT,EAAStrB,EAAKsrB,OACd+7V,EAAYrnX,EAAK6zC,MACjB1a,EAAKn5B,EAAKm5B,GACVq7G,EAAWx0I,EAAKw0I,SAChB/N,GAAO,OAA8BzmI,EAAM,CAAC,eAAgB,kBAAmB,cAAe,YAAa,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,KAAM,aAEtL,OAAoB,gBAAoB,EAAAymX,gBAAgB5vC,SAAU,MAAM,SAAU/yU,GAC/EA,IAAwH,QAAU,GACnI,IAAImiX,EAAkBmB,GAAgBtjX,EAAQwD,SAC1CggX,EAAapB,EAAoBF,EAAkB7sV,EAAI8sV,GAAkBA,GACzEv2W,EAAO43W,EAAWzxR,SAElB0xR,EAAc73W,GAAQA,EAAKolB,QAAQ,4BAA6B,QAChEtuB,EAAQ+gX,GAAc,IAAAj5E,WAAU23E,EAAgBpwR,SAAU,CAC5DnmF,KAAM63W,EACNh6G,MAAOA,EACPxuO,UAAWA,EACXzT,OAAQA,IACL,KACD2sG,KAAckvP,EAAeA,EAAa3gX,EAAOy/W,GAAmBz/W,GACpEgO,EAAqC,mBAAlB0yW,EAA+BA,EAAcjvP,GAAYivP,EAC5ErzU,EAA6B,mBAAdwzU,EAA2BA,EAAUpvP,GAAYovP,EAEhEpvP,IACFzjH,EAjDN,WACE,IAAK,IAAItJ,EAAOtQ,UAAUoC,OAAQwqX,EAAa,IAAIr8W,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrFo8W,EAAWp8W,GAAQxQ,UAAUwQ,GAG/B,OAAOo8W,EAAW73W,QAAO,SAAUhP,GACjC,OAAOA,CACT,IAAGzG,KAAK,IACV,CAyCkButX,CAAejzW,EAAWyyW,GACtCpzU,GAAQ,OAAS,CAAC,EAAGA,EAAOk4E,IAG9B,IAAIhlH,GAAQ,OAAS,CACnB,eAAgBkxH,GAAY8uP,GAAe,KAC3CvyW,UAAWA,EACXq/B,MAAOA,EACP1a,GAAImuV,GACH7gP,GASH,OANImgP,IAAqBC,EACvB9/W,EAAM8V,IAAM4oP,GAAgBjxH,EAE5BztI,EAAMytI,SAAWA,EAGC,gBAAoB++L,EAAMxsU,EAChD,GACF,mCC1Se,SAASmoS,EAASx7R,EAAM0T,GACrC,IAAK1T,EACH,OAAO,EAIT,GAAIA,EAAKw7R,SACP,OAAOx7R,EAAKw7R,SAAS9nR,GAKvB,IADA,IAAItK,EAAOsK,EACJtK,GAAM,CACX,GAAIA,IAASpJ,EACX,OAAO,EAEToJ,EAAOA,EAAKmzG,UACd,CACA,OAAO,CACT,+HChBIp2D,EAAY,CAAC,eAAgB,SAAU,YAAa,WAAY,YAAa,QAAS,eAAgB,QAAS,uBAG/G6tT,EAAsB,WACxB,OAAO13U,SAASgD,IAClB,EACI20U,EAAY,EAkBD,SAASt+R,IACtB,IAAIu+R,EAAahtX,UAAUoC,OAAS,QAAsBjE,IAAjB6B,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClFitX,EAAwBD,EAAW59R,aACrCA,OAAyC,IAA1B69R,EAAmCH,EAAsBG,EACxE5kU,EAAS2kU,EAAW3kU,OACpBiM,EAAY04T,EAAW14T,UACvBusB,EAAWmsS,EAAWnsS,SACtBjnE,EAAYozW,EAAWpzW,UACvBq/B,EAAQ+zU,EAAW/zU,MACnBovO,EAAe2kG,EAAW3kG,aAC1BtwP,EAAQi1V,EAAWj1V,MACnBkwP,EAAsB+kG,EAAW/kG,oBACjCilG,GAAc,OAAyBF,EAAY/tT,GACjDuT,EAAkB,aACpBC,GAAmB,OAAeD,EAAiB,GACnDvY,EAAYwY,EAAiB,GAC7B06S,EAAe16S,EAAiB,GAC9B26S,EAAmB,WACnBllO,EAA6B,gBAAoB,IAAe,CAClEjuF,UAAWA,EACXh4C,IAAKmrW,EACL94T,UAAWA,EACXjM,OAAQA,EACRw4B,SAAUA,EACVjnE,UAAWA,EACXq/B,MAAOA,EACPovO,aAAcA,EACdtwP,MAAOA,EACPkwP,oBAAqBA,IAEnB5tM,EAAmB,WAAe,IACpCC,GAAmB,OAAeD,EAAkB,GACpDgzS,EAAY/yS,EAAiB,GAC7BgzS,EAAehzS,EAAiB,GAG9BiuM,EAAM,WAAc,WACtB,MAAO,CACLx0M,KAAM,SAAczd,GAClB,IAAI0zM,EAxDZ,WAEE,IADA,IAAIt7O,EAAQ,CAAC,EACJpe,EAAOtQ,UAAUoC,OAAQsoU,EAAU,IAAIn6T,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFk6T,EAAQl6T,GAAQxQ,UAAUwQ,GAY5B,OAVAk6T,EAAQjqU,SAAQ,SAAUW,GACpBA,GACFxD,OAAOwK,KAAKhH,GAAKX,SAAQ,SAAUE,GACjC,IAAI66C,EAAMp6C,EAAIT,QACFxC,IAARq9C,IACF9sB,EAAM/tB,GAAO66C,EAEjB,GAEJ,IACO9sB,CACT,CAwC2Bi3O,CAAYunH,EAAa52T,GACnB,OAArB0zM,EAAarpQ,UAAqCxC,IAArB6rQ,EAAarpQ,MAC5CqpQ,EAAarpQ,IAAM,mBAAmB6I,OAAOujX,GAC7CA,GAAa,GAEfO,GAAa,SAAU/pX,GACrB,MAAO,GAAGiG,QAAO,OAAmBjG,GAAQ,CAAC,CAC3C/B,KAAM,OACN80D,OAAQ0zM,IAEZ,GACF,EACAvkQ,MAAO,SAAe9E,GACpB2sX,GAAa,SAAU/pX,GACrB,MAAO,GAAGiG,QAAO,OAAmBjG,GAAQ,CAAC,CAC3C/B,KAAM,QACNb,IAAKA,IAET,GACF,EACAuzE,QAAS,WACPo5S,GAAa,SAAU/pX,GACrB,MAAO,GAAGiG,QAAO,OAAmBjG,GAAQ,CAAC,CAC3C/B,KAAM,YAEV,GACF,EAEJ,GAAG,IAyCH,OApCA,aAAgB,WACd2rX,EAAa/9R,IACf,IAGA,aAAgB,WAEVg+R,EAAiBrmX,SAAWsmX,EAAUjrX,SACxCirX,EAAU5sX,SAAQ,SAAUiD,GAC1B,OAAQA,EAAKlC,MACX,IAAK,OACH4rX,EAAiBrmX,QAAQgtE,KAAKrwE,EAAK4yD,QACnC,MACF,IAAK,QACH82T,EAAiBrmX,QAAQtB,MAAM/B,EAAK/C,KACpC,MACF,IAAK,UACHysX,EAAiBrmX,QAAQmtE,UAG/B,IAOAo5S,GAAa,SAAUC,GACrB,OAAOA,EAASx4W,QAAO,SAAUrR,GAC/B,OAAQ2pX,EAAU70W,SAAS9U,EAC7B,GACF,IAEJ,GAAG,CAAC2pX,IAGG,CAAC9kG,EAAKrgI,EACf,kEC7GA,QA1BA,SAAmB1mJ,GACjB,MAAa,OAATA,EACK,CACL6oB,IAAKnrB,KAAKmrB,IACV0T,IAAK7+B,KAAK6+B,KAGP,CACL1T,IAAK,WACH,IAAK,IAAI/Z,EAAOtQ,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMD,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/E/N,EAAK+N,GAAQxQ,UAAUwQ,GAEzB,MAAO,OAAOhH,OAAO/G,EAAKO,KAAI,SAAU1E,GACtC,OAAO,QAAKA,EACd,IAAGgB,KAAK,KAAM,IAChB,EACAy+B,IAAK,WACH,IAAK,IAAIvb,EAAQxiB,UAAUoC,OAAQK,EAAO,IAAI8N,MAAMiS,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFhgB,EAAKggB,GAASziB,UAAUyiB,GAE1B,MAAO,OAAOjZ,OAAO/G,EAAKO,KAAI,SAAU1E,GACtC,OAAO,QAAKA,EACd,IAAGgB,KAAK,KAAM,IAChB,EAEJ,qGCnBIoqG,EAAmB,SAA0Bv9F,EAAO8V,GACtD,OAAoB,gBAAoB,EAAAla,GAAU,OAAS,CAAC,EAAGoE,EAAO,CACpE8V,IAAKA,EACLyD,KAAM,MAEV,EAOA,QAJ2B,aAAiBgkF,wFCZxCzuF,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,2OAA4O,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,MAAQ,GAAG,SAAW,gFAAgF,eAAiB,CAAC,4RAA4R,WAAa,MAE9wB,4BCPA/Q,EAAOC,QAAU,IAA0B,2HCGvC4c,QAA0B,GAA4B,KAE1DA,EAAwBnX,KAAK,CAAC1F,EAAO+Q,GAAI,iDAAkD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2FAA2F,MAAQ,GAAG,SAAW,mBAAmB,eAAiB,CAAC,4FAA4F,WAAa,MAErX,4BCPA/Q,EAAOC,QAAU,IAA0B,oJCQ3C,MAAMmvX,EAAmB,IAEZC,EAAuBD,IAOvBE,EAA4B,CACvCl+R,MAAOg+R,EACPG,OAAQH,EACRI,QAASJ,EACTrxQ,WAAYqxQ,EACZ/7G,QAAS+7G,EACTzxQ,KAAMyxQ,EACNK,YAAaL,GAEFM,EAA2B,CACtCC,WAAY,GACZC,SAAU,GACVvzQ,WAAY,GACZ9Q,KAAM,GACNskR,aAAc,GAKHrlR,EAAY,CAACslR,EAAeC,KACvC,MAAO,CAAEp4W,IAAS,UACZq4W,EAAe,aAAiB,KAEtC,IAAIxvX,EACJ,QAAqBT,IAAjBgwX,EACFvvX,EAAS,CAACuvX,EAAcA,OACnB,CACL,IAAIvxU,EAASwxU,QAAmDA,EAAe,EAE7ExxU,GAPgCsxU,KALrBR,GAcVU,EAAe,EAAIr4W,EAAMuuC,iBAE1BopU,EAA0BQ,GAEhBJ,EAAyBI,GAErCtvX,EAAS,MAAkBT,IAAjBiwX,EAA6BD,EAAevxU,EAAQA,EAChE,CAOA,OAAOh+C,CAAM,mGC5Ca,gJCdxBwpE,EAAO,EAMPimT,EAAqB,WACvB,SAASA,EAAMhiG,IACb,OAAgBpqR,KAAMosX,IACtB,OAAgBpsX,KAAM,mBAAe,IACrC,OAAgBA,KAAM,UAAM,GAC5BA,KAAKoqR,YAAc97Q,MAAMie,QAAQ69P,GAAeA,EAAc,CAACA,GAC/DpqR,KAAKkN,GAAKi5D,EACiB,IAAvBikN,EAAYjqR,SACd,QAAQiqR,EAAYjqR,OAAS,EAAG,8EAElCgmE,GAAQ,CACV,CASA,OARA,OAAaimT,EAAO,CAAC,CACnB1tX,IAAK,qBACLrC,MAAO,SAA4ByX,GACjC,OAAO9T,KAAKoqR,YAAY/pR,QAAO,SAAU1D,EAAQo1H,GAC/C,OAAOA,EAAWj+G,EAAOnX,EAC3B,QAAGT,EACL,KAEKkwX,CACT,CArByB,qBCVzBjwX,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,sFCE3C,QADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uOAA2O,KAAQ,cAAe,MAAS,4BCDzaD,EAAOC,QAAU,IAA0B,gFCUnC,SAAW6c,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yCAAyC/b,MAAM,KACvDmc,YAAa,yCAAyCnc,MAClD,KAEJqc,SAAU,8BAA8Brc,MAAM,KAC9Csc,cAAe,gBAAgBtc,MAAM,KACrCuc,YAAa,gBAAgBvc,MAAM,KACnCyc,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,cACHC,GAAI,gBACJE,IAAK,uBACLE,KAAM,4BACNmQ,EAAG,cACHtQ,GAAI,gBACJE,IAAK,uBACLE,KAAM,6BAEVC,SAAU,CACNC,QAAS,QACTE,QAAS,QACTC,SAAU,UACVC,QAAS,QACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,OACNpU,EAAG,MACHqU,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,OACHC,GAAI,OACJC,EAAG,KACHC,GAAI,MACJC,EAAG,MACHC,GAAI,MACJC,EAAG,MACHC,GAAI,OAERC,uBAAwB,iBACxBC,QAAS,SAAUC,EAAQC,GACvB,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOD,EAAS,IACpB,IAAK,IACD,OAAOA,EAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,EAAS,IACpB,QACI,OAAOA,EAEnB,EACAiO,cAAe,QACfC,KAAM,SAAUnW,GACZ,MAAiB,OAAVA,CACX,EACAoW,SAAU,SAAUC,EAAMC,EAAQiiW,GAC9B,OAAOliW,EAAO,GAAK,KAAO,IAC9B,GAKP,CA9EyC9N,CAAQ,EAAQ,qBCM1DlgB,EAAOC,QAJP,SAAkBsC,GAChB,OAAOsB,KAAKwc,SAASnL,IAAI3S,EAC3B,uECXAvC,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,qECA3C,SAAS09F,EAAgB7wF,EAAGvM,GAC1B,OAAOo9F,EAAkBn+F,OAAO6wC,eAAiB7wC,OAAO6wC,eAAex9B,OAAS,SAAU/F,EAAGvM,GAC3F,OAAOuM,EAAE4Z,UAAYnmB,EAAGuM,CAC1B,EAAG6wF,EAAgB7wF,EAAGvM,EACxB,2CCMQ,SAAWuc,GAAU,aAIhBA,EAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyF/b,MAC7F,KAEJmc,YAAa,qDAAqDnc,MAC9D,KAEJqc,SACI,+EAA+Erc,MAC3E,KAERsc,cAAe,+BAA+Btc,MAAM,KACpDuc,YAAa,uBAAuBvc,MAAM,KAC1Cwc,oBAAoB,EAEpBC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJE,IAAK,oBACLE,KAAM,2BAEVE,SAAU,CACNC,QAAS,iBACTE,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNpU,EAAG,mBACHqU,GAAI,YACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,UACHC,GAAI,aACJC,EAAG,MACHC,GAAI,SACJC,EAAG,WACHC,GAAI,cAERC,uBAAwB,mCAExBC,QAAS,SAAUC,GACf,IACIE,EAAS,GAiCb,OAlCQF,EAyBA,GAEAE,EADM,KA1BNF,GA0BkB,KA1BlBA,GA0B8B,KA1B9BA,GA0B0C,KA1B1CA,GA0BsD,MA1BtDA,EA2BS,MAEA,MA7BTA,EA+BO,IACXE,EA9BS,CACL,GACA,KACA,KACA,MACA,MACA,KACA,KACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,OAvBAF,IAkCDA,EAASE,CACpB,EACAC,KAAM,CACFC,IAAK,EACLC,IAAK,IAMhB,CArGyCC,CAAQ,EAAQ,2BCP1DlgB,EAAOC,QAAU,IAA0B,sGCC3C,SAASw9F,EAAgBl9F,EAAG0H,EAAG6E,GAC7B,OAAQ7E,GAAI,OAAcA,MAAO1H,EAAIf,OAAO8lB,eAAe/kB,EAAG0H,EAAG,CAC/D/H,MAAO4M,EACPyY,YAAY,EACZQ,cAAc,EACdC,UAAU,IACPzlB,EAAE0H,GAAK6E,EAAGvM,CACjB,kECFA,QALe,SAAkByzB,EAAM9zB,EAAO+mB,EAAQiP,EAAQvjB,EAASvP,IACjE4wB,EAAK3B,UAAcpL,EAAOvnB,eAAes0B,EAAKkgC,UAAU,QAAah0D,EAAOkD,GAAQ4wB,EAAK5wB,OAC3F8yB,EAAOxwB,MAAK,QAAOiN,EAAQ6iB,SAASnD,SAAU2B,EAAKkiE,WAEvD,oBCLAl2F,EAAOC,QAAU,IAA0B,kDCC3C,IAOIkwX,EACAC,EARAn0V,EAAUj8B,EAAOC,QAAU,CAAC,EAUhC,SAASowX,IACL,MAAM,IAAI1uX,MAAM,kCACpB,CACA,SAAS2uX,IACL,MAAM,IAAI3uX,MAAM,oCACpB,CAqBA,SAAS4uX,EAAWC,GAChB,GAAIL,IAAqBlkU,WAErB,OAAOA,WAAWukU,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqBlkU,WAEhE,OADAkkU,EAAmBlkU,WACZA,WAAWukU,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,EACjC,CAAE,MAAMjwX,GACJ,IAEI,OAAO4vX,EAAiB/vX,KAAK,KAAMowX,EAAK,EAC5C,CAAE,MAAMjwX,GAEJ,OAAO4vX,EAAiB/vX,KAAKyD,KAAM2sX,EAAK,EAC5C,CACJ,CAGJ,EA5CC,WACG,IAEQL,EADsB,mBAAflkU,WACYA,WAEAokU,CAE3B,CAAE,MAAO9vX,GACL4vX,EAAmBE,CACvB,CACA,IAEQD,EADwB,mBAAjBhkU,aACcA,aAEAkkU,CAE7B,CAAE,MAAO/vX,GACL6vX,EAAqBE,CACzB,CACJ,CAnBA,GAwEA,IAEIG,EAFAtrX,EAAQ,GACRurX,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAazsX,OACbmB,EAAQsrX,EAAarlX,OAAOjG,GAE5BwrX,GAAc,EAEdxrX,EAAMnB,QACN6sX,IAER,CAEA,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIhvT,EAAU6uT,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAI9oX,EAAMzC,EAAMnB,OACV4D,GAAK,CAGP,IAFA6oX,EAAetrX,EACfA,EAAQ,KACCwrX,EAAa/oX,GACd6oX,GACAA,EAAaE,GAAY79W,MAGjC69W,GAAc,EACd/oX,EAAMzC,EAAMnB,MAChB,CACAysX,EAAe,KACfC,GAAW,EAnEf,SAAyBI,GACrB,GAAIV,IAAuBhkU,aAEvB,OAAOA,aAAa0kU,GAGxB,IAAKV,IAAuBE,IAAwBF,IAAuBhkU,aAEvE,OADAgkU,EAAqBhkU,aACdA,aAAa0kU,GAExB,IAEI,OAAOV,EAAmBU,EAC9B,CAAE,MAAOvwX,GACL,IAEI,OAAO6vX,EAAmBhwX,KAAK,KAAM0wX,EACzC,CAAE,MAAOvwX,GAGL,OAAO6vX,EAAmBhwX,KAAKyD,KAAMitX,EACzC,CACJ,CAIJ,CA0CIC,CAAgBrvT,EAlBhB,CAmBJ,CAgBA,SAAS8N,EAAKghT,EAAK1qX,GACfjC,KAAK2sX,IAAMA,EACX3sX,KAAKiC,MAAQA,CACjB,CAWA,SAAS8iE,IAAQ,CA5BjB3sC,EAAQ+0V,SAAW,SAAUR,GACzB,IAAInsX,EAAO,IAAI8N,MAAMvQ,UAAUoC,OAAS,GACxC,GAAIpC,UAAUoC,OAAS,EACnB,IAAK,IAAI2D,EAAI,EAAGA,EAAI/F,UAAUoC,OAAQ2D,IAClCtD,EAAKsD,EAAI,GAAK/F,UAAU+F,GAGhCxC,EAAMO,KAAK,IAAI8pE,EAAKghT,EAAKnsX,IACJ,IAAjBc,EAAMnB,QAAiB0sX,GACvBH,EAAWM,EAEnB,EAOArhT,EAAK/vE,UAAUqT,IAAM,WACjBjP,KAAK2sX,IAAIxlX,MAAM,KAAMnH,KAAKiC,MAC9B,EACAm2B,EAAQkzC,MAAQ,UAChBlzC,EAAQg1V,SAAU,EAClBh1V,EAAQ/yB,IAAM,CAAC,EACf+yB,EAAQi1V,KAAO,GACfj1V,EAAQtY,QAAU,GAClBsY,EAAQ6R,SAAW,CAAC,EAIpB7R,EAAQ4pD,GAAKjd,EACb3sC,EAAQmyE,YAAcxlC,EACtB3sC,EAAQswF,KAAO3jD,EACf3sC,EAAQ0gE,IAAM/zB,EACd3sC,EAAQoyE,eAAiBzlC,EACzB3sC,EAAQ4wL,mBAAqBjkJ,EAC7B3sC,EAAQ5Z,KAAOumD,EACf3sC,EAAQk1V,gBAAkBvoT,EAC1B3sC,EAAQm1V,oBAAsBxoT,EAE9B3sC,EAAQowL,UAAY,SAAUpgN,GAAQ,MAAO,EAAG,EAEhDgwB,EAAQkkE,QAAU,SAAUl0F,GACxB,MAAM,IAAItK,MAAM,mCACpB,EAEAs6B,EAAQo1V,IAAM,WAAc,MAAO,GAAI,EACvCp1V,EAAQq1V,MAAQ,SAAUlvS,GACtB,MAAM,IAAIzgF,MAAM,iCACpB,EACAs6B,EAAQs1V,MAAQ,WAAa,OAAO,CAAG,oBCvLvCvxX,EAAOC,QAAU,IAA0B,kHCQ3C,SAASuxX,EACPC,EACAj5R,EACAjyD,GAEA,MAAMmrV,EAAmB,CACvB,CAAEtuX,KAAM,iBACR,CACEmjC,UAAWA,IAAa,UACxBkrV,qBAGJ,OAAO,QAAej5R,EAAM,CAAEA,OAAQ,CAAC,EAAG,CAACk5R,GAC7C,yHChBO,MAAM3wW,GAAQwqU,EAAAA,EAAAA,IAAcC,EAAAA,EAAAA,KAAmB53R,EAAAA,KAAO7yC,MAG7D,GACE4wW,eAHqB9+R,EAAAA,MAAW,IAAM,kTAItC++R,gBAAiB,mCACjBl7W,KAAMk9C,EAAAA,IACN2gN,OAAO,EACPtoQ,KAAMo5U,EAAAA,GACNtkU,QACAvN,SAAU,CACR,CACEjR,IAAK8iV,EAAAA,GACL7jV,QAASilF,EAAAA,QAAAA,IAGborS,MAAO,CACL,CACEtvX,IAAK8iV,EAAAA,GACLxzU,KAAM40E,EAAAA,QAAAA,GAER,CACElkF,IAAKiqX,EAAAA,GACL36W,KAAM40E,EAAAA,QAAAA,GAER,CACElkF,IAAKghI,EAAAA,GACL1xH,KAAM40E,EAAAA,QAAAA,wBChCZzmF,EAAOC,QAAU,IAA0B,wDCA3CD,EAAOC,QAAU,IAA0B,gYCqCpC,MAOD6xX,EAAe,CAAC,qBAAsB,oBAAqB,cAAe,QAAS,aAAc,OAAQ,SAAU,UACzH,IAAIC,EACAC,EACAC,EACAC,EACJ,SAASC,IACP,OAAOJ,GAAmB,IAC5B,CACA,SAASK,IACP,OAAOJ,GAAuB,IAChC,CAIA,MAyBaK,EAAe,KAAM,CAChCn9T,aAAc,CAAC/T,EAAWuuC,IACpBA,IAGGvuC,EAAY,GAAGgxU,OAAwBhxU,IAAcgxU,KAE9DtgS,iBAAkBugS,EAClBthS,iBAAkB,IAEZihS,GAIGI,IAETrgS,SAAU,IAAMmgS,EAChBjgS,aAAckgS,IAEVI,EAAmBvkX,IACvB,MAAM,SACJ0N,EACAk6C,IAAK48T,EAAS,wBACdC,EAAuB,MACvB55D,EAAK,OACL65D,EAAM,KACNtmV,EAAI,OACJglD,EAAM,cACNuhS,EAAa,UACbtmV,EAAS,MACTsmD,EAAK,SACLigS,EAAQ,QACRvgE,EAAO,yBACPR,EAAwB,sBACxBC,EAAqB,cACrBj6L,EAAa,aACbg7P,EAAY,cACZvjX,EACA8lD,cAAe09T,EAAmB,MAClCv9T,EAAK,kBACLw9T,EAAiB,UACjBC,EAAS,UACTC,EAAS,KACTl0F,EAAI,SACJ1gR,EAAQ,SACR60W,EAAQ,SACRC,EAAQ,SACR31Q,EAAQ,WACR20N,EAAU,SACVihD,EAAQ,aACRC,EAAY,QACZt6S,EAAO,OACPoqQ,EAAM,SACNmwC,EAAQ,MACRC,EAAK,MACLC,GAAK,OACLxM,GAAM,KACNzsW,GAAI,SACJk5W,GAAQ,MACR1+W,GAAK,SACL2+W,GAAQ,OACRjzX,GAAM,OACNkzX,GAAM,WACNC,GAAU,KACV7oR,GAAI,WACJm9M,GAAU,MACVjiT,GAAK,SACL6qU,GAAQ,MACRhgT,GAAK,MACL+iW,GAAK,MACLh2D,GAAK,KACL1nN,GACArjF,OAAQghW,GAAM,SACd9lE,GAAQ,OACR+lE,GAAM,QACNtyW,GAAO,IACPnhB,GAAG,MACH0zX,GAAK,KACLhrU,GAAI,KACJirU,GAAI,SACJC,GAAQ,WACRC,GAAU,OACVC,GAAM,aACN9yT,GAAY,KACZ+yT,GAAI,YACJC,GAAW,WACXC,GAAU,YACV74O,GAAW,KACX97F,GAAI,KACJ8jR,GAAI,SACJ3X,GACA7nR,QAASswV,GAAa,KACtBC,GAAI,iBACJC,GAAgB,QAChBn3R,GAAO,YACPo3R,GAAW,WACXC,IACE5mX,EAEEmnD,GAAe,eAAkB,CAAC/T,EAAWuuC,KACjD,MAAM,UACJx5B,GACEnoD,EACJ,GAAI2hF,EACF,OAAOA,EAET,MAAMklS,EAAkB1+T,GAAa7mD,EAAc6lD,aAAa,IAChE,OAAO/T,EAAY,GAAGyzU,KAAmBzzU,IAAcyzU,CAAe,GACrE,CAACvlX,EAAc6lD,aAAcnnD,EAAMmoD,YAChCf,GAAgB09T,GAAuBxjX,EAAc8lD,eAAiB,KACtEQ,GAAM48T,GAAaljX,EAAcsmD,KACvC,OAASR,GAAeQ,IACxB,MAAMo4R,IAAc,OAASz4R,EAAOjmD,EAAcimD,MAAO,CACvDY,UAAWhB,GAAa,MAKpB2/T,GAAa,CACjBl/T,OACA68T,0BACA55D,QACA65D,SACAthS,OAAQA,GAAUyhS,EAClBxmV,YACAsmD,QACAigS,WACAvgE,UACAP,sBAAuBA,QAAqEA,EAAwBD,EACpHh6L,gBACA1iE,gBACAC,iBACAG,MAAOy4R,GACPglC,YACAC,YACAl0F,OACA1gR,WACA60W,WACAC,WACA31Q,WACA20N,aACAihD,WACAC,eACAt6S,UACAoqQ,SACAmwC,WACAC,QACAC,SACAvtX,SACA6qU,YACAk2C,UACAzsW,QACAk5W,YACA1+W,SACA2+W,YACAjzX,UACAkzX,UACAC,cACA7oR,QACAm9M,cACAp3R,SACA+iW,SACAh2D,SACA1nN,QACArjF,OAAQghW,GACR9lE,YACA+lE,UACAtyW,WACAnhB,OACA0zX,SACAhrU,QACAirU,QACAC,YACAC,cACAC,UACA9yT,gBACA+yT,QACAC,eACAC,cACA74O,eACA97F,QACA8jR,QACA3X,YACA7nR,QAASswV,GACTC,QACAC,oBACAn3R,WACAo3R,eACAC,eAMIz8T,GAAS14D,OAAOqZ,OAAO,CAAC,EAAGxJ,GACjC7P,OAAOwK,KAAK6qX,IAAYxyX,SAAQE,SACNxC,IAApB80X,GAAWtyX,KACb21D,GAAO31D,GAAOsyX,GAAWtyX,GAC3B,IAIFuvX,EAAazvX,SAAQ4sV,IACnB,MAAM9wC,EAAYpwS,EAAMkhV,GACpB9wC,IACFjmP,GAAO+2R,GAAY9wC,EACrB,SAEqC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MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,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wa,MAAM,SAAC6wc,EAAmBA,CAAAA,GAC1B2B,cAAc,SAAC1B,EAAiBA,CAAAA,GAChCr3c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKy5d,GAAAA,IACL7sZ,OAAOriE,EAAAA,GAAAA,GAAE,SACT8mD,MAAOooa,GAAAA,IACPj7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAK05d,GAAAA,IACL9sZ,OAAOriE,EAAAA,GAAAA,GAAE,eACT8mD,MAAOqoa,GAAAA,IACPl7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK25d,GAAAA,IACL/sZ,OAAOriE,EAAAA,GAAAA,GAAE,aACT8mD,MAAOsoa,GAAAA,IACPn7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAK45d,GAAAA,IACLhtZ,OAAOriE,EAAAA,GAAAA,GAAE,aACT8mD,MAAOuoa,GAAAA,IACPp7c,MAAO,CACL,kBACA,kBACA,sBACA,sBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAK65d,GAAAA,IACLjtZ,OAAOriE,EAAAA,GAAAA,GAAE,mBACT8mD,MAAOwoa,GAAAA,IACPr7c,MAAO,CACL,kBACA,kBACA,sBACA,sBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK85d,GAAAA,IACLltZ,OAAOriE,EAAAA,GAAAA,GAAE,iBACT8mD,MAAOyoa,GAAAA,IACPt7c,MAAO,CACL,kBACA,kBACA,sBACA,sBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAK+5d,GAAAA,IACLntZ,OAAOriE,EAAAA,GAAAA,GAAE,SACT8mD,MAAO0oa,GAAAA,IACPv7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKg6d,GAAAA,IACLptZ,OAAOriE,EAAAA,GAAAA,GAAE,eACT8mD,MAAO2oa,GAAAA,IACPx7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKi6d,GAAAA,IACLrtZ,OAAOriE,EAAAA,GAAAA,GAAE,aACT8mD,MAAO4oa,GAAAA,IACPz7c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKk6d,GAAAA,IACLttZ,OAAOriE,EAAAA,GAAAA,GAAE,aACT8mD,MAAO6oa,GAAAA,IACP17c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAKm6d,GAAAA,IACLvtZ,OAAOriE,EAAAA,GAAAA,GAAE,WACT8mD,MAAO8oa,GAAAA,IACP37c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,UAGJ,CACExe,IAAKo6d,GAAAA,IACLxtZ,OAAOriE,EAAAA,GAAAA,GAAE,gBACT8mD,MAAO+oa,GAAAA,IACPrvV,OAAQ8rV,EAAqBwD,8BAC7B77c,MAAO,CACL,kBACA,kBACA,wBACA,wBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKs6d,GAAAA,IACL1tZ,OAAOriE,EAAAA,GAAAA,GAAE,sBACT8mD,MAAOipa,GAAAA,IACP97c,MAAO,CACL,kBACA,kBACA,wBACA,wBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKu6d,GAAAA,IACL3tZ,OAAOriE,EAAAA,GAAAA,GAAE,oBACT8mD,MAAOkpa,GAAAA,IACP/7c,MAAO,CACL,kBACA,kBACA,wBACA,wBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAKw6d,GAAAA,IACL5tZ,OAAOriE,EAAAA,GAAAA,GAAE,mBACT8mD,MAAOmpa,GAAAA,IACPh8c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKy6d,GAAAA,IACL7tZ,OAAOriE,EAAAA,GAAAA,GAAE,mBACT8mD,MAAOopa,GAAAA,IACPj8c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK06d,GAAAA,IACL9tZ,OAAOriE,EAAAA,GAAAA,GAAE,iBACT8mD,MAAOqpa,GAAAA,IACPl8c,MAAO,CACL,kBACA,kBACA,yBACA,yBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAK26d,GAAAA,IACL/tZ,OAAOriE,EAAAA,GAAAA,GAAE,kBACT8mD,MAAOspa,GAAAA,IACPn8c,MAAO,CACL,iBACA,iBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAK46d,GAAAA,IACLhuZ,OAAOriE,EAAAA,GAAAA,GAAE,wBACT8mD,MAAOupa,GAAAA,IACPp8c,MAAO,CACL,iBACA,iBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK66d,GAAAA,IACLjuZ,OAAOriE,EAAAA,GAAAA,GAAE,sBACT8mD,MAAOwpa,GAAAA,IACPr8c,MAAO,CACL,iBACA,iBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK86d,GAAAA,IACLluZ,OAAOriE,EAAAA,GAAAA,GAAE,6BACT8mD,MAAOypa,GAAAA,IACPt8c,MAAO,CACL,iBACA,iBACA,MACA,MACA,QACA,SAEFusH,QAAQ,OAOlB,CACE/qI,IAAK,kBACL4sE,OAAOriE,EAAAA,GAAAA,GAAE,WACTwa,MAAM,SAAC+wc,EAAkBA,CAAAA,GACzByB,cAAc,SAACxB,EAAeA,CAAAA,GAC9Bv3c,MAAO,CAAC,gBAAiB,gBAAiB,MAAO,MAAO,QAAS,SACjEif,MAAO,CACL,CACEz9B,IAAK+6d,GAAAA,IACLnuZ,OAAOriE,EAAAA,GAAAA,GAAE,QACT8mD,MAAO0pa,GAAAA,IACPv8c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKg7d,GAAAA,IACLpuZ,OAAOriE,EAAAA,GAAAA,GAAE,cACT8mD,MAAO2pa,GAAAA,IACPx8c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKi7d,GAAAA,IACLruZ,OAAOriE,EAAAA,GAAAA,GAAE,YACT8mD,MAAO4pa,GAAAA,IACPz8c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKk7d,GAAAA,IACLtuZ,OAAOriE,EAAAA,GAAAA,GAAE,kBACT8mD,MAAO6pa,GAAAA,IACP18c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAKm7d,GAAAA,IACLvuZ,OAAOriE,EAAAA,GAAAA,GAAE,WACT8mD,MAAO8pa,GAAAA,IACP38c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAKo7d,GAAAA,GACLxuZ,OAAOriE,EAAAA,GAAAA,GAAE,iBACT8mD,MAAO+pa,GAAAA,GACP58c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKq7d,GAAAA,IACLzuZ,OAAOriE,EAAAA,GAAAA,GAAE,eACT8mD,MAAOgqa,GAAAA,IACP78c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKs7d,GAAAA,IACL1uZ,OAAOriE,EAAAA,GAAAA,GAAE,uBACT8mD,MAAOiqa,GAAAA,IACP98c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAKu7d,GAAAA,IACL3uZ,OAAOriE,EAAAA,GAAAA,GAAE,2BACT8mD,MAAOkqa,GAAAA,IACP/8c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAKw7d,GAAAA,IACL5uZ,OAAOriE,EAAAA,GAAAA,GAAE,iBACT8mD,MAAOmqa,GAAAA,IACPh9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,UAGJ,CACExe,IAAKy7d,GAAAA,IACL7uZ,OAAOriE,EAAAA,GAAAA,GAAE,aACT8mD,MAAOoqa,GAAAA,IACPj9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,UAGJ,CACExe,IAAK07d,GAAAA,IACL9uZ,OAAOriE,EAAAA,GAAAA,GAAE,kBACT8mD,MAAOqqa,GAAAA,IACPl9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAK27d,GAAAA,IACL/uZ,OAAOriE,EAAAA,GAAAA,GAAE,sBACT8mD,MAAOsqa,GAAAA,IACPn9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,GAEV,CACE/qI,IAAK47d,GAAAA,IACLhvZ,MAAO,0BACPvb,MAAOuqa,GAAAA,IACPp9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFusH,QAAQ,KAId,CACE/qI,IAAK67d,GAAAA,IACLjvZ,OAAOriE,EAAAA,GAAAA,GAAE,qBACT8mD,MAAOwqa,GAAAA,IACPr9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,SAEFif,MAAO,IAET,CACEz9B,IAAK87d,GAAAA,IACLlvZ,OAAOriE,EAAAA,GAAAA,GAAE,WACT8mD,MAAOyqa,GAAAA,IACPt9c,MAAO,CACL,gBACA,gBACA,MACA,MACA,QACA,YAMR,CACExe,IAAK,kBACL4sE,OAAOriE,EAAAA,GAAAA,GAAE,WACTwa,MAAM,SAACyxc,GAAeA,CAAAA,GACtBe,cAAc,SAACd,GAAaA,CAAAA,GAC5Bj4c,MAAO,CACL,iBACA,iBACA,wBACA,wBACA,0BACA,0BACA,6BACA,6BACA,8BACA,8BACA,yBACA,yBACA,wBACA,wBACA,MACA,MACA,QACA,SAEFif,MAAO,CACL,CACEz9B,IAAK,qBACLa,KAAM,QACN+rE,MAAO,GACPnvC,MAAO,CACL,CACEz9B,IAAK+7d,GAAAA,IACLnvZ,OAAOriE,EA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sxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,uBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,wBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,2BAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,kBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,4BAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,kBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,6BAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,oCAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,eAGR,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,sBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,uBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,yBAER,CACEsxW,MAAO,OACPF,UAAW,KACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,gBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,gBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,4BAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,yBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,qBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,oCAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,iBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEA,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,QACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,SACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,aACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,SACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,aACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,SACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,WACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACElxW,KAAM,UACNsxW,MAAO,OACPF,UAAW,IACXF,MAAO,MAET,CACEI,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,gBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,iBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,YAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,GACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,aAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,UAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,UAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,cAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,UAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,cAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,YAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,0BAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,IACXpxW,KAAM,mBAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,GACXpxW,KAAM,SAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,GACXpxW,KAAM,WAER,CACEkxW,MAAO,KACPI,MAAO,OACPF,UAAW,GACXpxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,kBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,iBAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,6BAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,iBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,qBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,oBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,mBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,gBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,iBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,oBAER,CACEsxW,MAAO,OACPF,UAAW,EACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,EACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,cAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,eAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,GACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,YAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,wBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,gBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,QAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,aAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,wBAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,WAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,SAER,CACEsxW,MAAO,OACPF,UAAW,IACXF,MAAO,KACPlxW,KAAM,UAER,CACEsxW,MAAO,O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EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,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AAOsB,SAAS,sBAAuB,CAAC,CACvE9P,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,EACJtopB,KAAM,cACL,CACDsopB,GAAI,EACJtopB,KAAM,gBACL,CACDsopB,GAAI,EACJtopB,KAAM,wBAMFk5pB,GAA8BpC,GAAOsB,SAAS,uBAAwB,CAAC,CAC3E9P,GAAI,EACJtopB,KAAM,OACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,EACJtopB,KAAM,QACL,CACDsopB,GAAI,EACJtopB,KAAM,SAMFm5pB,GAAmCrC,GAAOsB,SAAS,4BAA6B,CAAC,CACrF9P,GAAI,EACJtopB,KAAM,QACL,CACDsopB,GAAI,EACJtopB,KAAM,QACL,CACDsopB,GAAI,EACJtopB,KAAM,aACL,CACDsopB,GAAI,EACJtopB,KAAM,UAMFo5pB,GAAmCtC,GAAOsB,SAAS,8BAA+B,CAAC,CACvF9P,GAAI,EACJtopB,KAAM,SACL,CACDsopB,GAAI,EACJtopB,KAAM,YACL,CACDsopB,GAAI,EACJtopB,KAAM,aAMFq5pB,GAAgCvC,GAAOsB,SAAS,2BAA4B,CAAC,CACjF9P,GAAI,EACJtopB,KAAM,kBACL,CACDsopB,GAAI,EACJtopB,KAAM,oBACL,CACDsopB,GAAI,EACJtopB,KAAM,sBACL,CACDsopB,GAAI,EACJtopB,KAAM,mBACL,CACDsopB,GAAI,EACJtopB,KAAM,uBACL,CACDsopB,GAAI,EACJtopB,KAAM,gBACL,CACDsopB,GAAI,EACJtopB,KAAM,kBACL,CACDsopB,GAAI,EACJtopB,KAAM,gBACL,CACDsopB,GAAI,EACJtopB,KAAM,aACL,CACDsopB,GAAI,EACJtopB,KAAM,gBACL,CACDsopB,GAAI,GACJtopB,KAAM,eACL,CACDsopB,GAAI,GACJtopB,KAAM,oBACL,CACDsopB,GAAI,GACJtopB,KAAM,mBAMFs5pB,GAA+BxC,GAAOsB,SAAS,0BAA2B,CAAC,CAC/E9P,GAAI,EACJtopB,KAAM,cACL,CACDsopB,GAAI,EACJtopB,KAAM,0BACL,CACDsopB,GAAI,EACJtopB,KAAM,uBACL,CACDsopB,GAAI,EACJtopB,KAAM,wBACL,CACDsopB,GAAI,EACJtopB,KAAM,yBAMFu5pB,GAAiCzC,GAAOsB,SAAS,4BAA6B,CAAC,CACnF9P,GAAI,EACJtopB,KAAM,cACL,CACDsopB,GAAI,EACJtopB,KAAM,wBACL,CACDsopB,GAAI,EACJtopB,KAAM,uBAMFw5pB,GAAiC1C,GAAOsB,SAAS,4BAA6B,CAAC,CACnF9P,GAAI,EACJtopB,KAAM,aACL,CACDsopB,GAAI,EACJtopB,KAAM,aACL,CACDsopB,GAAI,EACJtopB,KAAM,wBACL,CACDsopB,GAAI,EACJtopB,KAAM,wBACL,CACDsopB,GAAI,EACJtopB,KAAM,wBACL,CACDsopB,GAAI,EACJtopB,KAAM,oCAMFy5pB,GAAsB3C,GAAOqB,gBAAgB,gBAAgB,IAAM,CAAC,CACxE7P,GAAI,EACJtopB,KAAM,MACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,OACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,gBACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,GACJtopB,KAAM,oBACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,EACJtopB,KAAM,mBACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,EACJtopB,KAAM,gBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,gBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,iBACNgzK,KAAM,UACNh2K,EAAG08pB,GACHjK,UAAU,GACT,CACDnH,GAAI,EACJtopB,KAAM,WACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,mBACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,GACJtopB,KAAM,iBACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,GACJtopB,KAAM,mBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,UACNgzK,KAAM,UACNh2K,EAAG28pB,OAMCD,GAAqB5C,GAAOqB,gBAAgB,iBAAiB,IAAM,CAAC,CACxE7P,GAAI,EACJtopB,KAAM,OACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,YACNgzK,KAAM,SACNh2K,EAAG,MAMC48pB,GAAqC9C,GAAOqB,gBAAgB,iCAAiC,IAAM,CAAC,CACxG7P,GAAI,EACJtopB,KAAM,gBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,cACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,mBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,sBACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAYY,IACtBxJ,UAAU,GACT,CACDnH,GAAI,EACJtopB,KAAM,SACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,WACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,sBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,QACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,wBACNgzK,KAAM,SACNh2K,EAAG,MAMC68pB,GAA+B/C,GAAOqB,gBAAgB,2BAA2B,IAAM,CAAC,CAC5F7P,GAAI,EACJtopB,KAAM,MACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,WACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,QACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAYyB,KACrB,CACDxR,GAAI,EACJtopB,KAAM,SACNgzK,KAAM,UACNh2K,EAAG+8pB,GACHtK,UAAU,GACT,CACDnH,GAAI,EACJtopB,KAAM,WACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,YACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,OACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,UACNgzK,KAAM,SACNh2K,EAAG,IACF,CACDsrpB,GAAI,GACJtopB,KAAM,aACNgzK,KAAM,UACNh2K,EAAG48pB,IACF,CACDtR,GAAI,GACJtopB,KAAM,SACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,eACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,OACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAY2B,KACrB,CACD1R,GAAI,GACJtopB,KAAM,aACNgzK,KAAM,MACN8vH,EAAG,EACHI,EAAG,CACDlwH,KAAM,SACNh2K,EAAG,IAEJ,CACDsrpB,GAAI,GACJtopB,KAAM,oBACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAYgB,QAMlBS,GAAqChD,GAAOsB,SAAS,gCAAiC,CAAC,CAC3F9P,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,EACJtopB,KAAM,kBAMFg6pB,GAAoClD,GAAOsB,SAAS,+BAAgC,CAAC,CACzF9P,GAAI,EACJtopB,KAAM,YACL,CACDsopB,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,EACJtopB,KAAM,OACL,CACDsopB,GAAI,EACJtopB,KAAM,WAMFi6pB,GAA+BnD,GAAOsB,SAAS,0BAA2B,CAAC,CAC/E9P,GAAI,EACJtopB,KAAM,QACL,CACDsopB,GAAI,EACJtopB,KAAM,OACL,CACDsopB,GAAI,EACJtopB,KAAM,YAMFk6pB,GAAkCpD,GAAOqB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ACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,kBACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,EACJtopB,KAAM,UACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,UACNgzK,KAAM,SACNh2K,EAAG,GACF,CACDsrpB,GAAI,GACJtopB,KAAM,aACNgzK,KAAM,SACNh2K,EAAG,MAMCq+pB,GAA8BvE,GAAOsB,SAAS,yBAA0B,CAAC,CAC7E9P,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,MACL,CACDsopB,GAAI,EACJtopB,KAAM,SACL,CACDsopB,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,WACL,CACDsopB,GAAI,EACJtopB,KAAM,MACL,CACDsopB,GAAI,EACJtopB,KAAM,SACL,CACDsopB,GAAI,EACJtopB,KAAM,gBACL,CACDsopB,GAAI,EACJtopB,KAAM,QACL,CACDsopB,GAAI,EACJtopB,KAAM,UACL,CACDsopB,GAAI,GACJtopB,KAAM,OACL,CACDsopB,GAAI,GACJtopB,KAAM,aACL,CACDsopB,GAAI,GACJtopB,KAAM,UAQFs7pB,GAAmCxE,GAAOqB,gBAAgB,+BAA+B,IAAM,CAAC,CACpG7P,GAAI,EACJtopB,KAAM,QACNgzK,KAAM,UACNh2K,EAAGu+pB,IACF,CACDjT,GAAI,EACJtopB,KAAM,SACNgzK,KAAM,UACNh2K,EAAGu+pB,IACF,CACDjT,GAAI,EACJtopB,KAAM,oBACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAYe,KACrB,CACD9Q,GAAI,EACJtopB,KAAM,kBACNgzK,KAAM,UACNh2K,EAAGw+pB,IACF,CACDlT,GAAI,EACJtopB,KAAM,cACNgzK,KAAM,OACNh2K,EAAG85pB,GAAOuB,YAAYe,QAMlBmC,GAAkCzE,GAAOqB,gBAAgB,8BAA8B,IAAM,CAAC,CAClG7P,GAAI,EACJtopB,KAAM,mBACNgzK,KAAM,OACNh2K,EAAG85pB,GAA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9I,GAAI,EACJtopB,KAAM,kBACNgzK,KAAM,UACNh2K,EAAG+/pB,GACH3L,MAAO,WACN,CACD9I,GAAI,EACJtopB,KAAM,QACNgzK,KAAM,UACNh2K,EAAGm/pB,GACH/K,MAAO,WACN,CACD9I,GAAI,EACJtopB,KAAM,OACNgzK,KAAM,UACNh2K,EAAGg/pB,GACH5K,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,mBACNgzK,KAAM,UACNh2K,EAAGggqB,GACH5L,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,cACNgzK,KAAM,UACNh2K,EAAGigqB,GACH7L,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,qBACNgzK,KAAM,UACNh2K,EAAGkgqB,GACH9L,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,sBACNgzK,KAAM,UACNh2K,EAAGmgqB,GACH/L,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,4BACNgzK,KAAM,UACNh2K,EAAGogqB,GACHhM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,iCACNgzK,KAAM,UACNh2K,EAAGqgqB,GACHjM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,gBACNgzK,KAAM,SACNh2K,EAAG,EACHo0pB,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,oBACNgzK,KAAM,UACNh2K,EAAGsgqB,GACHlM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,OACNgzK,KAAM,SACNh2K,EAAG,EACHo0pB,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,YACNgzK,KAAM,UACNh2K,EAAGugqB,GACHnM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,YACNgzK,KAAM,UACNh2K,EAAGwgqB,GACHpM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,wBACNgzK,KAAM,UACNh2K,EAAGygqB,GACHrM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,mBACNgzK,KAAM,UACNh2K,EAAG0gqB,GACHtM,MAAO,WACN,CACD9I,GAAI,GACJtopB,KAAM,mBAC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,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,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,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK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,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO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","sources":["webpack://platinum/webpack/runtime/create fake namespace object","webpack://platinum/webpack/runtime/load script","webpack://platinum/./node_modules/lodash/_getRawTag.js","webpack://platinum/./node_modules/redux/dist/redux.mjs","webpack://platinum/./node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js","webpack://platinum/./node_modules/@redux-saga/core/dist/redux-saga-core.esm.js","webpack://platinum/./node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js","webpack://platinum/./app/global/accessToken/reducer.js","webpack://platinum/./app/global/billing/reducer.js","webpack://platinum/./app/global/banner/reducer.js","webpack://platinum/./app/global/activityLogs/reducer.js","webpack://platinum/./app/global/lockdownPlans/reducer.js","webpack://platinum/./app/global/cloudKey/reducer.js","webpack://platinum/./app/global/modalDeluxe/reducer.js","webpack://platinum/./app/global/slideOuts/reducer.js","webpack://platinum/./app/reducers.js","webpack://platinum/./app/global/orgFeatures/reducer.js","webpack://platinum/./app/global/orgPackagePlans/reducer.js","webpack://platinum/./app/global/packages/reducer.js","webpack://platinum/./app/global/packages/constants.js","webpack://platinum/./app/global/features/reducer.js","webpack://platinum/./app/store/configureStore.prod.js","webpack://platinum/./node_modules/lodash/_baseFindIndex.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csp.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://platinum/./node_modules/lodash/isBuffer.js","webpack://platinum/./app/new-components/DLS/OpTextButton/OpTextButton.scss?a6ab","webpack://platinum/./app/new-components/DLS/OpTextButton/OpTextButton.tsx","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","webpack://platinum/./node_modules/lodash-es/isLength.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nix.js","webpack://platinum/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://platinum/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificUserDataFetchTransfer /OpFormSiteSpecificUserDataFetchTransfer.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-pig.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-javascript.js","webpack://platinum/./node_modules/moment/locale/ca.js","webpack://platinum/./node_modules/lodash-es/_SetCache.js","webpack://platinum/./node_modules/lodash-es/_setCacheAdd.js","webpack://platinum/./node_modules/lodash-es/_setCacheHas.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/trace.js","webpack://platinum/./node_modules/rc-util/es/ref.js","webpack://platinum/./node_modules/moment/locale/en-in.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/LockOutlined.js","webpack://platinum/./node_modules/lodash/now.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js","webpack://platinum/./node_modules/antd/es/button/style/token.js","webpack://platinum/./node_modules/react-use/esm/useDeepCompareEffect.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/ExportOutlined.js","webpack://platinum/./node_modules/lodash/_getMatchData.js","webpack://platinum/./node_modules/moment/locale/se.js","webpack://platinum/./node_modules/antd/es/modal/context.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ruby.js","webpack://platinum/./app/utils/customHooks/useUrlSearchParams.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-textmate.js","webpack://platinum/./altaLoginApp/helpers/getPlatinumUrl.ts","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/types.js","webpack://platinum/./node_modules/@sentry/core/build/esm/defaultScopes.js","webpack://platinum/./node_modules/moment/locale/lo.js","webpack://platinum/./node_modules/joi/dist/joi-browser.min.js","webpack://platinum/./node_modules/toggle-selection/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/autohotkey.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/utils/lazyLoadIntegration.js","webpack://platinum/./node_modules/copy-to-clipboard/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/plsql.js","webpack://platinum/./app/utils/identityProviders.js","webpack://platinum/./node_modules/lodash/_cacheHas.js","webpack://platinum/./node_modules/use-sync-external-store/shim/index.js","webpack://platinum/./node_modules/lodash-es/_castSlice.js","webpack://platinum/./node_modules/lodash/_mapToArray.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/cookie.js","webpack://platinum/./node_modules/core-js/internals/html.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-markdown.js","webpack://platinum/./node_modules/antd/es/select/style/dropdown.js","webpack://platinum/./node_modules/antd/es/select/style/single.js","webpack://platinum/./node_modules/antd/es/select/style/token.js","webpack://platinum/./node_modules/antd/es/select/style/variants.js","webpack://platinum/./node_modules/antd/es/select/style/index.js","webpack://platinum/./node_modules/moment/locale/it-ch.js","webpack://platinum/./node_modules/lodash/_hashClear.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://platinum/./app/utils/constants.js","webpack://platinum/./node_modules/antd/es/_util/motion.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/browser-aggregator.js","webpack://platinum/./app/global/cloudKey/constants.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","webpack://platinum/./node_modules/moment/locale/af.js","webpack://platinum/./node_modules/rc-util/es/raf.js","webpack://platinum/./node_modules/antd/es/style/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/debug-build.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-vibrant_ink.js","webpack://platinum/./node_modules/rc-util/es/hooks/useMemo.js","webpack://platinum/./app/global/cloudKey/actions.js","webpack://platinum/./node_modules/core-js/internals/an-object.js","webpack://platinum/./node_modules/dayjs/plugin/weekYear.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack://platinum/./app/new-components/DLS/OpSkeleton/OpSkeleton.scss","webpack://platinum/./node_modules/rc-field-form/es/List.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nsis.js","webpack://platinum/./node_modules/lodash/_setCacheAdd.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mushcode.js","webpack://platinum/./node_modules/lodash-es/_apply.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/d.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/LeftOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/smithy.js","webpack://platinum/./node_modules/lodash/_freeGlobal.js","webpack://platinum/./node_modules/void-elements/index.js","webpack://platinum/./node_modules/path-to-regexp/index.js","webpack://platinum/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/object.js","webpack://platinum/./node_modules/lodash/_Stack.js","webpack://platinum/./app/components/svgs/HomeOutlinedSvg/HomeOutlinedSvg.tsx","webpack://platinum/./node_modules/antd/es/theme/util/genStyleUtils.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/ColorPicker.js","webpack://platinum/./node_modules/moment/locale/fr-ch.js","webpack://platinum/./app/assets/favicons-prod/favicon-alert-32x32.png","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/PrinterOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/flix.js","webpack://platinum/./app/global/slideOuts/utils.js","webpack://platinum/./node_modules/core-js/internals/has-own-property.js","webpack://platinum/./node_modules/antd/es/collapse/style/index.js","webpack://platinum/./app/assets/favicons-prod/mstile-150x150.png","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-chaos.js","webpack://platinum/./node_modules/lodash-es/_overArg.js","webpack://platinum/./app/assets/scss/base/_root.scss","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordFlow.scss","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/components/IconBase.js","webpack://platinum/./node_modules/antd/es/app/context.js","webpack://platinum/./node_modules/react-use/esm/useTimeoutFn.js","webpack://platinum/./node_modules/lodash/_baseIsMatch.js","webpack://platinum/./node_modules/lodash-es/_root.js","webpack://platinum/./node_modules/lodash-es/noop.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/metric-summary.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/tsv.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/Cache.js","webpack://platinum/./node_modules/react-is/index.js","webpack://platinum/./app/utils/dates.js","webpack://platinum/./node_modules/lodash/_createSet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sql.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/pattern.js","webpack://platinum/./node_modules/lodash-es/_arrayMap.js","webpack://platinum/./node_modules/lodash/_isFlattenable.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-praat.js","webpack://platinum/./app/assets/favicons-prod/browserconfig.xml","webpack://platinum/./node_modules/lodash-es/isEqual.js","webpack://platinum/./node_modules/lodash/_baseGet.js","webpack://platinum/./node_modules/antd/es/_util/hooks/useForceUpdate.js","webpack://platinum/./node_modules/lodash-es/find.js","webpack://platinum/./node_modules/lodash-es/_createFind.js","webpack://platinum/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://platinum/./node_modules/rc-menu/es/context/IdContext.js","webpack://platinum/./node_modules/rc-menu/es/context/MenuContext.js","webpack://platinum/./node_modules/rc-menu/es/context/PathContext.js","webpack://platinum/./node_modules/rc-menu/es/context/PrivateContext.js","webpack://platinum/./node_modules/rc-util/es/Dom/focus.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useAccessibility.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useKeyRecords.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useMemoCallback.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useUUID.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useActive.js","webpack://platinum/./node_modules/rc-menu/es/hooks/useDirectionStyle.js","webpack://platinum/./node_modules/rc-menu/es/Icon.js","webpack://platinum/./node_modules/rc-menu/es/utils/warnUtil.js","webpack://platinum/./node_modules/rc-menu/es/MenuItem.js","webpack://platinum/./node_modules/rc-menu/es/SubMenu/SubMenuList.js","webpack://platinum/./node_modules/rc-menu/es/utils/commonUtil.js","webpack://platinum/./node_modules/rc-menu/es/placements.js","webpack://platinum/./node_modules/rc-menu/es/utils/motionUtil.js","webpack://platinum/./node_modules/rc-menu/es/SubMenu/PopupTrigger.js","webpack://platinum/./node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","webpack://platinum/./node_modules/rc-menu/es/SubMenu/index.js","webpack://platinum/./node_modules/rc-menu/es/Divider.js","webpack://platinum/./node_modules/rc-menu/es/MenuItemGroup.js","webpack://platinum/./node_modules/rc-menu/es/utils/nodeUtil.js","webpack://platinum/./node_modules/rc-menu/es/Menu.js","webpack://platinum/./node_modules/rc-menu/es/index.js","webpack://platinum/./node_modules/rc-menu/es/utils/timeUtil.js","webpack://platinum/./node_modules/lodash/_hasPath.js","webpack://platinum/./node_modules/antd/es/theme/context.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/less.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Palette.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mask.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/python.js","webpack://platinum/./node_modules/@msi-alta/opvideo-state-machine/dist/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud9_night.js","webpack://platinum/./node_modules/lodash-es/_baseClamp.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jade.js","webpack://platinum/./node_modules/rc-field-form/es/index.js","webpack://platinum/./app/new-components/DLS/OpFlex/OpFlex.tsx","webpack://platinum/./node_modules/lodash/_getNative.js","webpack://platinum/./node_modules/moment-timezone/moment-timezone.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-prql.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/prolog.js","webpack://platinum/./node_modules/antd/es/space/style/compact.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud9_night_low_color.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/CaretRightOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mysql.js","webpack://platinum/./node_modules/antd/es/app/style/index.js","webpack://platinum/./node_modules/antd/es/app/index.js","webpack://platinum/./node_modules/antd/es/modal/confirm.js","webpack://platinum/./node_modules/antd/es/locale/context.js","webpack://platinum/./node_modules/antd/es/style/motion/collapse.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/robot.js","webpack://platinum/./node_modules/antd/es/collapse/index.js","webpack://platinum/./node_modules/antd/es/_util/ContextIsolator.js","webpack://platinum/./node_modules/lodash/_mapCacheClear.js","webpack://platinum/./node_modules/dayjs/plugin/dayOfYear.js","webpack://platinum/./app/utils/injectReducer.js","webpack://platinum/./app/utils/customHooks/useOpQuery.ts","webpack://platinum/./node_modules/lodash/set.js","webpack://platinum/./node_modules/antd/es/layout/context.js","webpack://platinum/./node_modules/lodash-es/_arrayReduce.js","webpack://platinum/./node_modules/moment/locale/en-il.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-gob.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/color.js","webpack://platinum/./node_modules/rc-util/es/hooks/useSyncState.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/enum.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-gherkin.js","webpack://platinum/./node_modules/antd/es/_util/wave/style.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sjs.js","webpack://platinum/./node_modules/use-sync-external-store/shim/with-selector.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-toml.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/extraerrordata.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/aggregator.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/coldfusion.js","webpack://platinum/./node_modules/lodash/_cloneTypedArray.js","webpack://platinum/./node_modules/react-redux/dist/cjs/index.js","webpack://platinum/./node_modules/moment/locale/ml.js","webpack://platinum/./node_modules/lodash/_baseAssign.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-smithy.js","webpack://platinum/./node_modules/@sentry/core/build/esm/envelope.js","webpack://platinum/./node_modules/antd/es/_util/styleChecker.js","webpack://platinum/./node_modules/lodash/_initCloneArray.js","webpack://platinum/./node_modules/rc-util/es/React/isFragment.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-html_ruby.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/keybinding-vim.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/LeftOutlined.js","webpack://platinum/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://platinum/./node_modules/lodash/_baseTimes.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/partiql.js","webpack://platinum/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://platinum/./app/utils/getOpParams.ts","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/feedbackAsync.js","webpack://platinum/./node_modules/react-use/esm/useMediaDevices.js","webpack://platinum/./node_modules/core-js/internals/math-trunc.js","webpack://platinum/./node_modules/antd/es/_util/toList.js","webpack://platinum/./app/new-components/DLS/OpButton/OpButton.tsx","webpack://platinum/./node_modules/@semantic-ui-react/event-stack/lib/cjs/event-stack.production.js","webpack://platinum/./node_modules/lodash/_baseGetAllKeys.js","webpack://platinum/./node_modules/@rc-component/portal/es/Context.js","webpack://platinum/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://platinum/./node_modules/lodash-es/_nodeUtil.js","webpack://platinum/./node_modules/lodash-es/isTypedArray.js","webpack://platinum/./node_modules/rc-util/lib/Dom/canUseDom.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/utils.js","webpack://platinum/./node_modules/@ant-design/icons/lib/components/Context.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-fortran.js","webpack://platinum/./node_modules/antd/es/menu/MenuContext.js","webpack://platinum/./node_modules/antd/es/menu/MenuDivider.js","webpack://platinum/./node_modules/antd/es/menu/MenuItem.js","webpack://platinum/./node_modules/antd/es/menu/style/horizontal.js","webpack://platinum/./node_modules/antd/es/menu/style/rtl.js","webpack://platinum/./node_modules/antd/es/menu/style/theme.js","webpack://platinum/./node_modules/antd/es/menu/style/vertical.js","webpack://platinum/./node_modules/antd/es/menu/style/index.js","webpack://platinum/./node_modules/antd/es/menu/SubMenu.js","webpack://platinum/./node_modules/antd/es/menu/menu.js","webpack://platinum/./node_modules/antd/es/menu/index.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","webpack://platinum/./node_modules/antd/es/layout/style/sider.js","webpack://platinum/./node_modules/antd/es/layout/Sider.js","webpack://platinum/./node_modules/antd/es/_util/isNumeric.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/index.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://platinum/./app/new-components/DLS/OpInfo/components/OpInfoWithDismiss.tsx","webpack://platinum/./node_modules/antd/es/modal/components/ConfirmCancelBtn.js","webpack://platinum/./node_modules/antd/es/modal/components/ConfirmOkBtn.js","webpack://platinum/./node_modules/antd/es/modal/style/confirm.js","webpack://platinum/./node_modules/antd/es/modal/ConfirmDialog.js","webpack://platinum/./app/global/formWrapper/actions.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","webpack://platinum/./node_modules/@rc-component/trigger/es/hooks/useWinClick.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/scala.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","webpack://platinum/./node_modules/antd/es/form/context.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/crystal.js","webpack://platinum/./node_modules/moment/locale/km.js","webpack://platinum/./node_modules/@rc-component/trigger/es/Popup/Mask.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-keybinding_menu.js","webpack://platinum/./node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","webpack://platinum/./app/new-components/DLS/OpDataFetchTransfer/OpDataFetchTransfer.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-static_highlight.js","webpack://platinum/./node_modules/lodash-es/_arrayFilter.js","webpack://platinum/./node_modules/lodash-es/_equalArrays.js","webpack://platinum/./node_modules/lodash-es/_Uint8Array.js","webpack://platinum/./node_modules/lodash-es/_mapToArray.js","webpack://platinum/./node_modules/lodash-es/_equalByTag.js","webpack://platinum/./node_modules/lodash-es/_getSymbols.js","webpack://platinum/./node_modules/lodash-es/stubArray.js","webpack://platinum/./node_modules/lodash-es/_getAllKeys.js","webpack://platinum/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://platinum/./node_modules/lodash-es/_equalObjects.js","webpack://platinum/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://platinum/./node_modules/lodash-es/_baseIsEqual.js","webpack://platinum/./node_modules/moment/locale/sk.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/zoderrors.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/DownOutlined.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckboxGroup/OpFormCheckboxGroup.scss","webpack://platinum/./node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js","webpack://platinum/./node_modules/dayjs/plugin/weekOfYear.js","webpack://platinum/./node_modules/antd/es/locale/en_US.js","webpack://platinum/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegionSelect.scss","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/PauseOutlined.js","webpack://platinum/./altaLoginApp/components/NotYou/NotYou.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/twig.js","webpack://platinum/./node_modules/react-use/esm/useMouseHovered.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-cobol.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js","webpack://platinum/./node_modules/lodash-es/_nativeKeys.js","webpack://platinum/./node_modules/lodash-es/_baseKeys.js","webpack://platinum/./app/global/banner/constants.js","webpack://platinum/./node_modules/antd/es/time-picker/index.js","webpack://platinum/./node_modules/lodash/_assignValue.js","webpack://platinum/./node_modules/core-js/internals/try-to-string.js","webpack://platinum/./node_modules/lodash/_basePropertyDeep.js","webpack://platinum/./node_modules/antd/es/input/style/otp.js","webpack://platinum/./node_modules/antd/es/input/OTP/OTPInput.js","webpack://platinum/./node_modules/antd/es/input/OTP/index.js","webpack://platinum/./node_modules/antd/es/input/Password.js","webpack://platinum/./node_modules/antd/es/input/Search.js","webpack://platinum/./node_modules/antd/es/input/index.js","webpack://platinum/./node_modules/antd/es/input/Group.js","webpack://platinum/./app/routes/IntegrationsPage/actions.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-json5.js","webpack://platinum/./node_modules/@ant-design/icons/CloseOutlined.js","webpack://platinum/./app/new-components/DLS/OpSkeleton/OpSkeleton.scss?311b","webpack://platinum/./app/new-components/DLS/OpSkeleton/OpSkeleton.tsx","webpack://platinum/./node_modules/moment/locale/es-do.js","webpack://platinum/./node_modules/antd/es/config-provider/hooks/useCSSVarCls.js","webpack://platinum/./node_modules/lodash/_Hash.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-apex.js","webpack://platinum/./node_modules/antd/es/calendar/locale/en_US.js","webpack://platinum/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/QuestionCircleOutlined.js","webpack://platinum/./node_modules/antd/es/message/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-emmet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sac.js","webpack://platinum/./node_modules/rc-util/es/hooks/useEvent.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-whitespace.js","webpack://platinum/./app/new-components/DLS/OpCodeEditor/OpCodeEditor.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/verilog.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","webpack://platinum/./node_modules/@redux-saga/core/dist/io-22ea0cf9.js","webpack://platinum/./app/utils/helium.ts","webpack://platinum/./node_modules/core-js/internals/hidden-keys.js","webpack://platinum/./node_modules/antd/es/button/style/index.js","webpack://platinum/./node_modules/lodash/_trimmedEndIndex.js","webpack://platinum/./node_modules/antd/es/theme/themes/default/index.js","webpack://platinum/./node_modules/react-universal-interface/lib/addClassDecoratorSupport.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/ExportOutlined.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/StyleContext.js","webpack://platinum/./node_modules/core-js/internals/own-keys.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-django.js","webpack://platinum/./node_modules/core-js/internals/ie8-dom-define.js","webpack://platinum/./app/new-components/DLS/OpFormDrawer/OpFormDrawerContext.tsx","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/VideoCameraOutlined.js","webpack://platinum/./node_modules/antd/es/select/mergedBuiltinPlacements.js","webpack://platinum/./node_modules/lodash/isTypedArray.js","webpack://platinum/./node_modules/lodash/constant.js","webpack://platinum/./app/utils/reducers.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jack.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-zeek.js","webpack://platinum/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sparql.js","webpack://platinum/./node_modules/lodash/_SetCache.js","webpack://platinum/./altaLoginApp/components/PossibleLogins/PossibleLogins.scss","webpack://platinum/./app/new-components/DLS/OpInfo/OpInfo.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jsp.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/required.js","webpack://platinum/./node_modules/react-use/esm/useUpdateEffect.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/raku.js","webpack://platinum/./node_modules/rc-util/es/isEqual.js","webpack://platinum/./node_modules/lodash/_baseAssignValue.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/php_laravel_blade.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Picker.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/rst.js","webpack://platinum/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://platinum/./node_modules/core-js/internals/array-iteration-from-last.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-hjson.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jssm.js","webpack://platinum/./node_modules/lodash-es/difference.js","webpack://platinum/./app/utils/customHooks/useFeatureFlag.ts","webpack://platinum/./node_modules/@contentful/rich-text-types/dist/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-idle_fingers.js","webpack://platinum/./app/history.js","webpack://platinum/./node_modules/react-universal-interface/lib/hookToRenderProp.js","webpack://platinum/./node_modules/connected-react-router/lib/immutable.js","webpack://platinum/./node_modules/redux-immutable/dist/utilities/getStateName.js","webpack://platinum/./app/utils/unifiedLogin.ts","webpack://platinum/./node_modules/lodash/_listCacheHas.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-php_laravel_blade.js","webpack://platinum/./node_modules/lodash/memoize.js","webpack://platinum/./node_modules/@ant-design/icons/SaveOutlined.js","webpack://platinum/./node_modules/@sentry-internal/replay-canvas/build/npm/esm/index.js","webpack://platinum/./node_modules/lodash/_equalObjects.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-gruvbox_light_hard.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/c_cpp.js","webpack://platinum/./node_modules/lodash/_Symbol.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/utils.js","webpack://platinum/./node_modules/lodash-es/_baseMap.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/error.js","webpack://platinum/./node_modules/lodash-es/isArrayLikeObject.js","webpack://platinum/./app/assets/fonts/assistant-v2-latin-400.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/assembly_x86.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-tcl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-properties.js","webpack://platinum/./node_modules/antd/es/_util/wave/util.js","webpack://platinum/./app/containers/Table/actions.js","webpack://platinum/./node_modules/moment/locale/me.js","webpack://platinum/./node_modules/lodash/_objectToString.js","webpack://platinum/./node_modules/moment/locale/tk.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/objectivec.js","webpack://platinum/./node_modules/antd/es/date-picker/util.js","webpack://platinum/./node_modules/antd/es/date-picker/generatePicker/constant.js","webpack://platinum/./node_modules/antd/es/date-picker/PickerButton.js","webpack://platinum/./node_modules/antd/es/date-picker/generatePicker/useComponents.js","webpack://platinum/./node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","webpack://platinum/./node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","webpack://platinum/./node_modules/antd/es/date-picker/generatePicker/index.js","webpack://platinum/./node_modules/antd/es/date-picker/index.js","webpack://platinum/./node_modules/antd/es/space/style/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jsoniq.js","webpack://platinum/./node_modules/lodash-es/_nativeCreate.js","webpack://platinum/./node_modules/lodash-es/_hashGet.js","webpack://platinum/./node_modules/lodash-es/_hashHas.js","webpack://platinum/./node_modules/lodash-es/_Hash.js","webpack://platinum/./node_modules/lodash-es/_hashClear.js","webpack://platinum/./node_modules/lodash-es/_hashDelete.js","webpack://platinum/./node_modules/lodash-es/_hashSet.js","webpack://platinum/./node_modules/lodash-es/_mapCacheClear.js","webpack://platinum/./node_modules/lodash-es/_getMapData.js","webpack://platinum/./node_modules/lodash-es/_isKeyable.js","webpack://platinum/./node_modules/lodash-es/_MapCache.js","webpack://platinum/./node_modules/lodash-es/_mapCacheDelete.js","webpack://platinum/./node_modules/lodash-es/_mapCacheGet.js","webpack://platinum/./node_modules/lodash-es/_mapCacheHas.js","webpack://platinum/./node_modules/lodash-es/_mapCacheSet.js","webpack://platinum/./app/new-components/LanguageSelector/LanguageSelector.tsx","webpack://platinum/./altaLoginApp/components/LanguageSelectorNotAuthenticated/LanguageSelectorNotAuthenticated.scss?79a9","webpack://platinum/./altaLoginApp/components/LanguageSelectorNotAuthenticated/LanguageSelectorNotAuthenticated.tsx","webpack://platinum/./altaLoginApp/components/Marketing/hooks/useMarketing.tsx","webpack://platinum/./altaLoginApp/components/Marketing/Marketing.scss?236e","webpack://platinum/./altaLoginApp/components/Marketing/Marketing.tsx","webpack://platinum/./app/utils/customHooks/api/useGetSsoAuthUrl.ts","webpack://platinum/./altaLoginApp/hooks/useAltaLoginUrlParams.ts","webpack://platinum/./partnerCenterApp/constants/native-apps.ts","webpack://platinum/./app/utils/checkIsVideoOnlyCustomer.ts","webpack://platinum/./altaLoginApp/helpers/hasOnlyMailroomScopes.ts","webpack://platinum/./altaLoginApp/components/LoginFlow/EmailForm.scss?9322","webpack://platinum/./altaLoginApp/components/LoginFlow/EmailForm.tsx","webpack://platinum/./altaLoginApp/components/NotYou/NotYou.scss?a280","webpack://platinum/./altaLoginApp/components/NotYou/NotYou.tsx","webpack://platinum/./altaLoginApp/components/PossibleLogins/PossibleLogins.scss?61f7","webpack://platinum/./altaLoginApp/components/PossibleLogins/PossibleLogins.tsx","webpack://platinum/./altaLoginApp/helpers/isRedirectUrlValid.ts","webpack://platinum/./altaLoginApp/helpers/getOrgIdForRedirect.ts","webpack://platinum/./altaLoginApp/hooks/useAltaLogin.ts","webpack://platinum/./altaLoginApp/helpers/redirectToControlCenter.ts","webpack://platinum/./altaLoginApp/components/ErrorAlert/ErrorAlert.scss?fd23","webpack://platinum/./altaLoginApp/components/ErrorAlert/ErrorAlert.tsx","webpack://platinum/./altaLoginApp/helpers/redirectToUpc.ts","webpack://platinum/./app/utils/findNativeApp.ts","webpack://platinum/./altaLoginApp/helpers/getVideoOnlyCustomerRedirectUrl.ts","webpack://platinum/./altaLoginApp/components/LoginFlow/PasswordForm.scss?69cf","webpack://platinum/./altaLoginApp/components/LoginFlow/PasswordForm.tsx","webpack://platinum/./altaLoginApp/components/LoginFlow/utils/removeTrailingUrlSlash.ts","webpack://platinum/./altaLoginApp/helpers/setControlCenterCookie.ts","webpack://platinum/./altaLoginApp/helpers/getRegionFromHeliumUrl.tsx","webpack://platinum/./altaLoginApp/helpers/getPossibleLogins.ts","webpack://platinum/./altaLoginApp/hooks/useGetLoginsForEmail.ts","webpack://platinum/./altaLoginApp/components/LoginFlow/LoginFlow.scss?a065","webpack://platinum/./altaLoginApp/components/LoginFlow/LoginFlow.tsx","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordForm.scss?f9a4","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordForm.tsx","webpack://platinum/./altaLoginApp/helpers/requestResetPassword.ts","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ResetPasswordRequest.scss?0afa","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ResetPasswordRequest.tsx","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordFlow.scss?cccc","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordFlow.tsx","webpack://platinum/./altaLoginApp/helpers/getCloudServerRegions.ts","webpack://platinum/./altaLoginApp/components/ResetPasswordFlow/ResetPasswordFlow.scss?a462","webpack://platinum/./altaLoginApp/components/ResetPasswordFlow/ResetPasswordFlow.tsx","webpack://platinum/./altaLoginApp/components/LoginSSOAltaIdForm/constants.ts","webpack://platinum/./altaLoginApp/components/UseAltaIdButton/UseAltaIdButton.scss?df77","webpack://platinum/./altaLoginApp/components/UseAltaIdButton/UseAltaIdButton.tsx","webpack://platinum/./altaLoginApp/components/UnifiedLogin/UnifiedLogin.tsx","webpack://platinum/./altaLoginApp/components/LoginSSOEmailForm/LoginSSOEmailForm.scss?a5fe","webpack://platinum/./altaLoginApp/components/LoginSSOEmailForm/LoginSSOEmailForm.tsx","webpack://platinum/./app/utils/customHooks/api/useDetermineLoginCandidateNamespaces.ts","webpack://platinum/./altaLoginApp/components/LoginSSOAltaIdForm/LoginSSOAltaIdForm.scss?9444","webpack://platinum/./altaLoginApp/components/LoginSSOAltaIdForm/LoginSSOAltaIdForm.tsx","webpack://platinum/./altaLoginApp/hooks/useIsSso.ts","webpack://platinum/./altaLoginApp/components/App.scss?ee69","webpack://platinum/./altaLoginApp/components/App.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/rdoc.js","webpack://platinum/./node_modules/connected-react-router/lib/actions.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jexl.js","webpack://platinum/./node_modules/lodash/_listCacheClear.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/instrument/console.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ftl.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/javascript.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CheckOutlined.js","webpack://platinum/./node_modules/hls.js/dist/hls.mjs","webpack://platinum/./node_modules/antd/es/time-picker/locale/en_US.js","webpack://platinum/./app/assets/favicons-prod/favicon.ico","webpack://platinum/./node_modules/rc-util/node_modules/react-is/index.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/ZoomInOutlined.js","webpack://platinum/./node_modules/lodash-es/eq.js","webpack://platinum/./node_modules/@sentry/core/build/esm/sessionflusher.js","webpack://platinum/./node_modules/antd/es/config-provider/PropWarning.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-haskell_cabal.js","webpack://platinum/./node_modules/lodash-es/_Map.js","webpack://platinum/./node_modules/moment/locale/oc-lnc.js","webpack://platinum/./node_modules/@rc-component/trigger/es/TriggerWrapper.js","webpack://platinum/./node_modules/scheduler/index.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://platinum/./app/global/openpathconfig/selectors.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/array.js","webpack://platinum/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://platinum/./node_modules/lodash-es/_baseTrim.js","webpack://platinum/./node_modules/rc-util/es/Dom/shadow.js","webpack://platinum/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","webpack://platinum/./app/utils/accessToken.ts","webpack://platinum/./node_modules/lodash/_cloneDataView.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","webpack://platinum/./node_modules/lodash/_strictIndexOf.js","webpack://platinum/./node_modules/use-sync-external-store/with-selector.js","webpack://platinum/./node_modules/core-js/internals/function-uncurry-this.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/pattern.js","webpack://platinum/./node_modules/react-i18next/dist/es/context.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-haxe.js","webpack://platinum/./node_modules/moment/locale/tzm.js","webpack://platinum/./node_modules/moment/locale/ru.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-json.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","webpack://platinum/./node_modules/antd/es/alert/index.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/boolean.js","webpack://platinum/./app/new-components/DLS/OpTooltip/OpTooltip.tsx","webpack://platinum/./node_modules/moment-timezone/index.js","webpack://platinum/./node_modules/lodash/isString.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/any.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/turtle.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/BellOutlined.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/subscribable.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/utils.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/focusManager.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/onlineManager.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/thenable.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/retryer.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/notifyManager.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/removable.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/query.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/queryCache.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/mutation.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/mutationCache.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/queryClient.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/queryObserver.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/queriesObserver.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/mutationObserver.js","webpack://platinum/./node_modules/@tanstack/query-core/build/modern/types.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/isRestoring.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/utils.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/suspense.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/useQueries.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/useQuery.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/useMutation.js","webpack://platinum/./node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js","webpack://platinum/./node_modules/lodash-es/_isFlattenable.js","webpack://platinum/./node_modules/lodash-es/_baseFlatten.js","webpack://platinum/./node_modules/lodash/isMap.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ini.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/julia.js","webpack://platinum/./node_modules/core-js/internals/enum-bug-keys.js","webpack://platinum/./node_modules/@rc-component/portal/es/index.js","webpack://platinum/./node_modules/@ctrl/tinycolor/dist/module/util.js","webpack://platinum/./node_modules/antd/es/message/useMessage.js","webpack://platinum/./node_modules/@rc-component/trigger/es/Popup/PopupContent.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/cirru.js","webpack://platinum/./node_modules/moment/locale/fi.js","webpack://platinum/./node_modules/rc-tooltip/es/Tooltip.js","webpack://platinum/./app/utils/customHooks/useGetActiveScopes.ts","webpack://platinum/./node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","webpack://platinum/./node_modules/lodash/_cloneBuffer.js","webpack://platinum/./node_modules/moment/locale/gom-latn.js","webpack://platinum/./node_modules/lodash/_cloneSymbol.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormButton/OpFormButton.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-lsl.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/redshift.js","webpack://platinum/./node_modules/core-js/internals/is-callable.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genFontSizes.js","webpack://platinum/./node_modules/connected-react-router/lib/middleware.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/PauseOutlined.js","webpack://platinum/./app/routes/OrgContainer/actions.js","webpack://platinum/./node_modules/antd/es/modal/style/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/keybinding-vscode.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mixal.js","webpack://platinum/./node_modules/moment/locale/mn.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-solarized_light.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Slider.js","webpack://platinum/./node_modules/rc-overflow/es/Item.js","webpack://platinum/./node_modules/rc-overflow/es/hooks/useEffectState.js","webpack://platinum/./node_modules/rc-overflow/es/context.js","webpack://platinum/./node_modules/rc-overflow/es/RawItem.js","webpack://platinum/./node_modules/rc-overflow/es/Overflow.js","webpack://platinum/./node_modules/rc-overflow/es/hooks/channelUpdate.js","webpack://platinum/./node_modules/rc-overflow/es/index.js","webpack://platinum/./node_modules/rc-util/es/Dom/styleChecker.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-katzenmilch.js","webpack://platinum/./node_modules/rc-util/es/hooks/useState.js","webpack://platinum/./node_modules/moment/locale/zh-hk.js","webpack://platinum/./node_modules/core-js/es/array/find-last-index.js","webpack://platinum/./node_modules/core-js/internals/object-create.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","webpack://platinum/./node_modules/@ant-design/icons/lib/components/AntdIcon.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/maze.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/logger.js","webpack://platinum/./app/new-components/DLS/OpLink/OpLink.tsx","webpack://platinum/./node_modules/antd/es/grid/row.js","webpack://platinum/./app/utils/validators.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/velocity.js","webpack://platinum/./node_modules/react-dom/client.js","webpack://platinum/./node_modules/antd/es/message/PurePanel.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js","webpack://platinum/./node_modules/core-js/internals/add-to-unscopables.js","webpack://platinum/./node_modules/react-universal-interface/lib/wrapInStatefulComponent.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/util/index.js","webpack://platinum/./node_modules/core-js/internals/is-symbol.js","webpack://platinum/./app/global/lockdownPlans/constants.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/dsn.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-split.js?4aea","webpack://platinum/./node_modules/lodash/toString.js","webpack://platinum/./app/new-components/DLS/OpButton/OpButton.scss?0144","webpack://platinum/./app/assets/fonts/Graphik-Light.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/json5.js","webpack://platinum/./node_modules/rc-util/es/React/render.js","webpack://platinum/./node_modules/antd/es/style/motion/motion.js","webpack://platinum/./node_modules/@ant-design/icons/PrinterOutlined.js","webpack://platinum/./app/assets/fonts/Graphik-Regular.svg","webpack://platinum/./node_modules/lodash.get/index.js","webpack://platinum/./node_modules/rc-util/es/KeyCode.js","webpack://platinum/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://platinum/./node_modules/moment/locale/hy-am.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jade.js","webpack://platinum/./node_modules/moment/locale/es-mx.js","webpack://platinum/./node_modules/core-js/modules/esnext.array.find-last-index.js","webpack://platinum/./node_modules/core-js/internals/to-length.js","webpack://platinum/./node_modules/connected-react-router/esm/actions.js","webpack://platinum/./node_modules/connected-react-router/esm/selectors.js","webpack://platinum/./node_modules/connected-react-router/esm/structure/plain/index.js","webpack://platinum/./node_modules/connected-react-router/esm/index.js","webpack://platinum/./node_modules/connected-react-router/esm/structure/plain/getIn.js","webpack://platinum/./node_modules/lodash-es/_baseSome.js","webpack://platinum/./node_modules/lodash-es/some.js","webpack://platinum/./node_modules/lodash/_baseSetToString.js","webpack://platinum/./app/new-components/DLS/OpCodeEditor/helpers.ts","webpack://platinum/./app/new-components/DLS/OpCodeEditor/OpCodeEditor.scss?e5fd","webpack://platinum/./app/new-components/DLS/OpCodeEditor/OpCodeEditor.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sqlserver.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mips.js","webpack://platinum/./node_modules/antd/es/style/roundedArrow.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/ColorBlock.js","webpack://platinum/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://platinum/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://platinum/./node_modules/antd/es/button/button.js","webpack://platinum/./node_modules/antd/es/locale/index.js","webpack://platinum/./node_modules/lodash-es/_Stack.js","webpack://platinum/./node_modules/lodash-es/_stackClear.js","webpack://platinum/./node_modules/lodash-es/_stackDelete.js","webpack://platinum/./node_modules/lodash-es/_stackGet.js","webpack://platinum/./node_modules/lodash-es/_stackHas.js","webpack://platinum/./node_modules/lodash-es/_stackSet.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metadata.js","webpack://platinum/./node_modules/lodash/isObject.js","webpack://platinum/./node_modules/lodash-es/memoize.js","webpack://platinum/./node_modules/strict-uri-encode/index.js","webpack://platinum/./node_modules/lodash-es/_baseRest.js","webpack://platinum/./app/containers/Table/reducer.js","webpack://platinum/./app/global/activityLogs/constants.js","webpack://platinum/./node_modules/core-js/internals/to-indexed-object.js","webpack://platinum/./node_modules/moment/locale/de-at.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/is.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/liquid.js","webpack://platinum/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://platinum/./node_modules/antd/es/_util/hooks/useMultipleSelect.js","webpack://platinum/./node_modules/antd/es/_util/getRenderPropValue.js","webpack://platinum/./node_modules/antd/es/watermark/context.js","webpack://platinum/./node_modules/moment/locale/tl-ph.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-wollok.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSlider/OpFormSlider.scss","webpack://platinum/./node_modules/lodash/_baseForOwn.js","webpack://platinum/./node_modules/antd/es/theme/util/genPresetColor.js","webpack://platinum/./node_modules/lodash/_listCacheSet.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/ratelimit.js","webpack://platinum/./node_modules/@ant-design/icons/PauseOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/tcl.js","webpack://platinum/./node_modules/@ant-design/icons/ArrowUpOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-snippets.js","webpack://platinum/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/httpclient.js","webpack://platinum/./node_modules/rc-dialog/es/context.js","webpack://platinum/./node_modules/rc-dialog/es/util.js","webpack://platinum/./node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","webpack://platinum/./node_modules/rc-dialog/es/Dialog/Content/Panel.js","webpack://platinum/./node_modules/rc-dialog/es/Dialog/Content/index.js","webpack://platinum/./node_modules/rc-dialog/es/Dialog/Mask.js","webpack://platinum/./node_modules/rc-dialog/es/Dialog/index.js","webpack://platinum/./node_modules/rc-dialog/es/DialogWrap.js","webpack://platinum/./node_modules/rc-dialog/es/index.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","webpack://platinum/./node_modules/antd/es/_util/transKeys.js","webpack://platinum/./node_modules/antd/es/transfer/hooks/useData.js","webpack://platinum/./node_modules/antd/es/transfer/hooks/useSelection.js","webpack://platinum/./node_modules/antd/es/transfer/ListItem.js","webpack://platinum/./node_modules/antd/es/transfer/ListBody.js","webpack://platinum/./node_modules/antd/es/transfer/search.js","webpack://platinum/./node_modules/antd/es/transfer/list.js","webpack://platinum/./node_modules/antd/es/transfer/operation.js","webpack://platinum/./node_modules/antd/es/transfer/style/index.js","webpack://platinum/./node_modules/antd/es/transfer/index.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/url.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-matlab.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-html_elixir.js","webpack://platinum/./node_modules/antd/es/select/index.js","webpack://platinum/./node_modules/react-use/esm/usePinchZoom.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-verilog.js","webpack://platinum/./node_modules/lodash-es/_baseSlice.js","webpack://platinum/./app/utils/customHooks/useHasFeatures.ts","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/range.js","webpack://platinum/./node_modules/lodash-es/isArrayLike.js","webpack://platinum/./node_modules/react-use/esm/useAudio.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/WarningOutlined.js","webpack://platinum/./app/new-components/DLS/OpInput/OpInput.scss","webpack://platinum/./node_modules/moment/locale/ga.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/LoadingOutlined.js","webpack://platinum/./node_modules/lodash/isSymbol.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/envelope.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useEffectCleanupRegister.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/BellOutlined.js","webpack://platinum/./app/new-components/DLS/OpRadio/OpRadio.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-json.js?6b45","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/yaml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/cuttlefish.js","webpack://platinum/./node_modules/classnames/index.js","webpack://platinum/./node_modules/lodash/_baseProperty.js","webpack://platinum/./node_modules/@rc-component/trigger/es/Popup/Arrow.js","webpack://platinum/./node_modules/moment/locale/ug-cn.js","webpack://platinum/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mask.js","webpack://platinum/./node_modules/react-use/esm/useMeasure.js","webpack://platinum/./app/routes/AppContainer/reducer.js","webpack://platinum/./node_modules/nano-css/addon/cssom.js","webpack://platinum/./node_modules/antd/es/radio/context.js","webpack://platinum/./node_modules/antd/es/radio/style/index.js","webpack://platinum/./node_modules/antd/es/radio/radio.js","webpack://platinum/./node_modules/antd/es/radio/group.js","webpack://platinum/./node_modules/antd/es/radio/radioButton.js","webpack://platinum/./node_modules/antd/es/radio/index.js","webpack://platinum/./node_modules/universal-cookie/esm/index.mjs","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/zeek.js","webpack://platinum/./node_modules/lodash/_setCacheHas.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genFontMapToken.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/vala.js","webpack://platinum/./node_modules/moment/locale/fo.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-tsx.js","webpack://platinum/./node_modules/antd/es/_util/PurePanel.js","webpack://platinum/./node_modules/moment/locale/el.js","webpack://platinum/./node_modules/lodash/_isPrototype.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-pgsql.js","webpack://platinum/./node_modules/react-use/esm/useSize.js","webpack://platinum/./node_modules/antd/es/_util/wave/useWave.js","webpack://platinum/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/QuestionCircleOutlined.js","webpack://platinum/./app/assets/scss/base/_typography.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-tomorrow_night_eighties.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/BarsOutlined.js","webpack://platinum/./node_modules/@sentry/core/build/esm/session.js","webpack://platinum/./node_modules/antd/es/modal/Modal.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","webpack://platinum/./node_modules/rc-field-form/es/FormContext.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-stylus.js","webpack://platinum/./app/utils/getMailroomOrigin.ts","webpack://platinum/./node_modules/rc-util/lib/warning.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/third-party-errors-filter.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack://platinum/./node_modules/ace-builds/webpack-resolver.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/instrument/handlers.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-alda.js","webpack://platinum/./node_modules/antd/es/config-provider/hooks/useTheme.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-hardwrap.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-nord_dark.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-tex.js","webpack://platinum/./node_modules/lodash/noop.js","webpack://platinum/./node_modules/@sentry/core/build/esm/exports.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/xml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud9_night.js?15d3","webpack://platinum/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/hooks/useColorState.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/index.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","webpack://platinum/./node_modules/antd/es/theme/util/alias.js","webpack://platinum/./node_modules/lodash/_baseRest.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/gherkin.js","webpack://platinum/./node_modules/moment/locale/lv.js","webpack://platinum/./node_modules/lodash-es/isUndefined.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/CheckOutlined.js","webpack://platinum/./node_modules/lodash/toPlainObject.js","webpack://platinum/./node_modules/antd/es/_util/hooks/useClosable.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-gobstones.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-crystal.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ada.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/vendor/getIpAddress.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/haxe.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/messages.js","webpack://platinum/./node_modules/rc-util/es/pickAttrs.js","webpack://platinum/./node_modules/lodash-es/_freeGlobal.js","webpack://platinum/./node_modules/moment/locale/my.js","webpack://platinum/./node_modules/property-expr/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jsx.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mips.js","webpack://platinum/./node_modules/lodash/eq.js","webpack://platinum/./node_modules/antd/es/typography/style/mixins.js","webpack://platinum/./node_modules/antd/es/typography/style/index.js","webpack://platinum/./node_modules/antd/es/typography/Editable.js","webpack://platinum/./node_modules/antd/es/typography/hooks/useCopyClick.js","webpack://platinum/./node_modules/antd/es/typography/hooks/useMergedConfig.js","webpack://platinum/./node_modules/antd/es/typography/Typography.js","webpack://platinum/./node_modules/antd/es/typography/Base/util.js","webpack://platinum/./node_modules/antd/es/typography/Base/CopyBtn.js","webpack://platinum/./node_modules/antd/es/typography/Base/Ellipsis.js","webpack://platinum/./node_modules/antd/es/typography/Base/EllipsisTooltip.js","webpack://platinum/./node_modules/antd/es/typography/Base/index.js","webpack://platinum/./node_modules/antd/es/typography/hooks/usePrevious.js","webpack://platinum/./node_modules/antd/es/typography/hooks/useTooltipProps.js","webpack://platinum/./node_modules/antd/es/typography/Link.js","webpack://platinum/./node_modules/antd/es/typography/Paragraph.js","webpack://platinum/./node_modules/antd/es/typography/Text.js","webpack://platinum/./node_modules/antd/es/typography/Title.js","webpack://platinum/./node_modules/antd/es/typography/index.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/reportingobserver.js","webpack://platinum/./node_modules/core-js/internals/function-bind-context.js","webpack://platinum/./node_modules/lodash/_Set.js","webpack://platinum/./altaLoginApp/components/LoginSSOEmailForm/LoginSSOEmailForm.scss","webpack://platinum/./app/new-components/DLS/OpSelect/OpSelect.scss?33d3","webpack://platinum/./app/new-components/DLS/OpSelect/OpSelect.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-luapage.js","webpack://platinum/./node_modules/lodash-es/_toSource.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-clojure.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-scheme.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/markdown.js","webpack://platinum/./node_modules/connected-react-router/lib/ConnectedRouter.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js","webpack://platinum/./node_modules/antd/es/notification/useNotification.js","webpack://platinum/./node_modules/antd/es/notification/util.js","webpack://platinum/./node_modules/lodash-es/_hasPath.js","webpack://platinum/./app/assets/favicons-prod/favicon-32x32.png","webpack://platinum/./node_modules/moment/locale/sq.js","webpack://platinum/./app/new-components/DLS/OpCheckbox/OpCheckbox.scss?d644","webpack://platinum/./app/new-components/DLS/OpCheckbox/OpCheckbox.tsx","webpack://platinum/./e2e/framework/logger.ts","webpack://platinum/./app/utils/customHooks/useHeliumData.js","webpack://platinum/./app/utils/customHooks/useBroadcastChannel.ts","webpack://platinum/./app/utils/customHooks/useOxygenSocket.ts","webpack://platinum/./app/utils/waitForWebsocketConnectionToOpen.js","webpack://platinum/./app/utils/customHooks/useIsSlideOutChild.js","webpack://platinum/./app/utils/customHooks/useVideoClipPolling.js","webpack://platinum/./app/utils/customHooks/useSlideOut.js","webpack://platinum/./app/utils/customHooks/useFiltersForReport.js","webpack://platinum/./app/utils/customHooks/useFiltersForAlarmReport.js","webpack://platinum/./app/utils/customHooks/useIntercomNotifications.js","webpack://platinum/./app/utils/customHooks/useUiNotifications.js","webpack://platinum/./app/utils/customHooks/index.js","webpack://platinum/./app/global/accessToken/selectors.js","webpack://platinum/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://platinum/./node_modules/moment/locale/jv.js","webpack://platinum/./app/new-components/DLS/OpSpace/OpSpace.scss","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/spanstatus.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-searchbox.js","webpack://platinum/./app/components/Popup/index.js","webpack://platinum/./node_modules/react-use/esm/useNetworkState.js","webpack://platinum/./app/new-components/DLS/OpSelect/OpSelect.scss","webpack://platinum/./node_modules/lodash-es/isArray.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/coffee.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/SwapOutlined.js","webpack://platinum/./node_modules/antd/es/theme/useToken.js","webpack://platinum/./node_modules/lodash/_baseMatches.js","webpack://platinum/./node_modules/moment/locale/gu.js","webpack://platinum/./node_modules/moment/locale/az.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-fsl.js","webpack://platinum/./node_modules/react/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-elm.js","webpack://platinum/./node_modules/rc-tooltip/es/Popup.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ruby.js","webpack://platinum/./node_modules/split-on-first/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-julia.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckbox/OpFormCheckbox.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-dart.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/keybinding-sublime.js","webpack://platinum/./app/utils/customHooks/useShowSitePartitioningItems.ts","webpack://platinum/./node_modules/@ant-design/icons/lib/utils.js","webpack://platinum/./node_modules/lodash/isEqual.js","webpack://platinum/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://platinum/./node_modules/moment/locale/et.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/stylus.js","webpack://platinum/./node_modules/moment/locale/eu.js","webpack://platinum/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://platinum/./node_modules/lodash/intersection.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/vbscript.js","webpack://platinum/./node_modules/react-use/esm/useCss.js","webpack://platinum/./node_modules/moment/locale/ku-kmr.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-rdoc.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/snippets.js","webpack://platinum/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://platinum/./altaLoginApp/components/ErrorAlert/ErrorAlert.scss","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-monokai.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/normalize.js","webpack://platinum/./node_modules/lodash-es/_DataView.js","webpack://platinum/./node_modules/lodash-es/_Promise.js","webpack://platinum/./node_modules/lodash-es/_WeakMap.js","webpack://platinum/./node_modules/lodash-es/_getTag.js","webpack://platinum/./node_modules/@ant-design/icons/CheckOutlined.js","webpack://platinum/./node_modules/warning/warning.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/theme/createTheme.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://platinum/./node_modules/@rc-component/trigger/es/context.js","webpack://platinum/./app/global/slideOuts/selectors.js","webpack://platinum/./app/containers/Table/constants.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js","webpack://platinum/./app/utils/queryRequest.ts","webpack://platinum/./node_modules/antd/es/_util/placements.js","webpack://platinum/./altaLoginApp/components/LoginFlow/EmailForm.scss","webpack://platinum/./node_modules/lodash/_arraySome.js","webpack://platinum/./node_modules/lodash/_baseIteratee.js","webpack://platinum/./node_modules/lodash-es/_getPrototype.js","webpack://platinum/./app/assets/favicons-prod/favicon-alert.ico","webpack://platinum/./app/new-components/DLS/OpPhoneInput/OpPhoneInput.scss","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/instance.js","webpack://platinum/./node_modules/react-i18next/dist/es/defaults.js","webpack://platinum/./app/assets/favicons-prod/apple-touch-icon.png","webpack://platinum/./node_modules/antd/es/input/Input.js","webpack://platinum/./node_modules/antd/es/input/utils.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-prisma.js","webpack://platinum/./node_modules/antd/es/space/context.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/prepareEvent.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/gobstones.js","webpack://platinum/./node_modules/rc-util/es/omit.js","webpack://platinum/./node_modules/rc-util/es/utils/set.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://platinum/./node_modules/@redux-saga/is/dist/redux-saga-is.esm.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mixal.js","webpack://platinum/./node_modules/antd/es/modal/locale.js","webpack://platinum/./node_modules/lodash/_equalByTag.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/tsx.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/logSpans.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","webpack://platinum/./node_modules/react-is/cjs/react-is.production.min.js","webpack://platinum/./app/utils/sortOptionsAlphabetically.ts","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/rewriteframes.js","webpack://platinum/./node_modules/antd/es/_util/responsiveObserver.js","webpack://platinum/./node_modules/lodash/_equalArrays.js","webpack://platinum/./node_modules/lodash/_assocIndexOf.js","webpack://platinum/./node_modules/core-js/internals/length-of-array-like.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","webpack://platinum/./node_modules/moment/locale/fr-ca.js","webpack://platinum/./node_modules/antd/es/button/IconWrapper.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/requestdata.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-github.js","webpack://platinum/./node_modules/antd/es/style/motion/fade.js","webpack://platinum/./node_modules/@ant-design/icons/UndoOutlined.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-textile.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-space.js","webpack://platinum/./app/new-components/DLS/OpSpace/OpSpace.tsx","webpack://platinum/./app/assets/scss/base/_normalize.scss","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-latex.js","webpack://platinum/./node_modules/moment/locale/tlh.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-simple_tokenizer.js","webpack://platinum/./node_modules/tslib/tslib.es6.mjs","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nim.js","webpack://platinum/./node_modules/lodash/_Promise.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-asl.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckbox/OpFormCheckbox.scss?6c42","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckbox/OpFormCheckbox.tsx","webpack://platinum/./app/containers/OmniSelect/sagas.js","webpack://platinum/./node_modules/antd/es/alert/Alert.js","webpack://platinum/./app/routes/OrgContainer/reducer.js","webpack://platinum/./app/assets/img/workday-logo.svg","webpack://platinum/./app/containers/Table/sagas.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/rust.js","webpack://platinum/./app/routes/IntegrationsPage/constants.js","webpack://platinum/./node_modules/lodash/isSet.js","webpack://platinum/./app/components/svgs/ChevronDownSvg/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-gcode.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/object.js","webpack://platinum/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://platinum/./node_modules/moment/locale/ka.js","webpack://platinum/./node_modules/antd/es/_util/gapSize.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jack.js","webpack://platinum/./node_modules/@rc-component/trigger/es/hooks/useAlign.js","webpack://platinum/./node_modules/moment/locale/en-sg.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-rust.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","webpack://platinum/./node_modules/lodash/intersectionBy.js","webpack://platinum/./node_modules/rc-motion/es/CSSMotion.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormLink/OpFormLink.scss?0810","webpack://platinum/./app/new-components/DLS/OpInputNumber/OpInputNumber.scss?efcc","webpack://platinum/./app/new-components/DLS/OpInputNumber/OpInputNumber.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormInputNumber/OpFormInputNumber.tsx","webpack://platinum/./app/new-components/DLS/OpInputDuration/OpInputDuration.scss?ba3b","webpack://platinum/./app/new-components/DLS/OpInputDuration/OpInputDuration.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormInputDuration/OpFormInputDuration.tsx","webpack://platinum/./app/new-components/DLS/OpPhoneInput/components/CountrySelect.tsx","webpack://platinum/./app/new-components/DLS/OpPhoneInput/OpPhoneInput.scss?7855","webpack://platinum/./app/new-components/DLS/OpPhoneInput/OpPhoneInput.tsx","webpack://platinum/./app/new-components/DLS/OpDatePicker/OpDatePicker.scss?ed75","webpack://platinum/./app/new-components/DLS/OpDatePicker/OpDatePicker.tsx","webpack://platinum/./app/new-components/DLS/OpTimePicker/OpTimePicker.scss?bd1f","webpack://platinum/./app/new-components/DLS/OpTimePicker/OpTimePicker.tsx","webpack://platinum/./app/new-components/DLS/OpTagInput/OpTagInput.scss?4a24","webpack://platinum/./app/new-components/DLS/OpTagInput/OpTagInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTextButton/OpFormTextButton.scss?8c64","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSwitch/OpFormSwitch.scss?52af","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckboxGroup/OpFormCheckboxGroup.scss?529e","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormRadio/OpFormRadio.scss?6d97","webpack://platinum/./app/new-components/DLS/OpRangePicker/generateRangePickerPresets.ts","webpack://platinum/./app/new-components/DLS/OpRangePicker/OpRangePicker.scss?66c3","webpack://platinum/./app/new-components/DLS/OpRangePicker/OpRangePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormDataFetchSelect/OpFormDataFetchSelect.tsx","webpack://platinum/./app/new-components/forms/LockdownUserConfigForm/helpers.ts","webpack://platinum/./app/new-components/DLS/OpSiteSpecificUserDataFetchSelect/OpSiteSpecificUserDataFetchSelect.tsx","webpack://platinum/./app/new-components/DLS/OpSiteSpecificSiteDataFetchSelect/OpSiteSpecificSiteDataFetchSelect.tsx","webpack://platinum/./app/new-components/DLS/OpTransfer/OpTransfer.scss?5c76","webpack://platinum/./app/new-components/DLS/OpTransfer/OpTransfer.tsx","webpack://platinum/./app/new-components/DLS/OpDataFetchTransfer/OpDataFetchTransfer.scss?252a","webpack://platinum/./app/new-components/DLS/OpDataFetchTransfer/OpDataFetchTransfer.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormDataFetchTransfer/OpFormDataFetchTransfer.scss?4fef","webpack://platinum/./app/new-components/DLS/OpSiteSpecificUserDataFetchTransfer/OpSiteSpecificUserDataFetchTransfer.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificUserDataFetchTransfer /OpFormSiteSpecificUserDataFetchTransfer.scss?e145","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificUserDataFetchTransfer /OpFormSiteSpecificUserDataFetchTransfer.tsx","webpack://platinum/./app/new-components/DLS/OpTimezonePicker/OpTimezonePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSlider/OpFormSlider.scss?40b7","webpack://platinum/./app/new-components/DLS/OpColorPicker/OpColorPicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/createPolygonPointCoordinates.ts","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegion.scss?5e8f","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegion.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegionSelect.scss?ba2f","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegionSelect.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/OpFormVideoRegionSelect.scss?489f","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/OpFormVideoRegionSelect.tsx","webpack://platinum/./app/new-components/DLS/OpForm/helpers/replaceEmptyWithNull.ts","webpack://platinum/./app/new-components/DLS/OpForm/OpForm.scss?7058","webpack://platinum/./app/new-components/DLS/OpForm/OpForm.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormInput/OpFormInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormLink/OpFormLink.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormPhoneInput/OpFormPhoneInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTagInput/OpFormTagInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormDatePicker/OpFormDatePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTimePicker/OpFormTimePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTextButton/OpFormTextButton.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormPasswordInput/OpFormPasswordInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSearchInput/OpFormSearchInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTextAreaInput/OpFormTextAreaInput.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSelect/OpFormSelect.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSwitch/OpFormSwitch.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormImage/OpFormImage.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCheckboxGroup/OpFormCheckboxGroup.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormRadio/OpFormRadio.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormRangePicker/OpFormRangePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificUserDataFetchSelect/OpFormSiteSpecificUserDataFetchSelect.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificSiteDataFetchSelect/OpFormSiteSpecificSiteDataFetchSelect.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormDataFetchTransfer/OpFormDataFetchTransfer.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTimezonePicker/OpFormTimezonePicker.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormCodeEditor/OpFormCodeEditor.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSlider/OpFormSlider.tsx","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormColorPicker/OpFormColorPicker.tsx","webpack://platinum/./app/utils/window.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-haskell.js","webpack://platinum/./node_modules/path-to-regexp/node_modules/isarray/index.js","webpack://platinum/./node_modules/lodash/_toSource.js","webpack://platinum/./node_modules/antd/es/modal/PurePanel.js","webpack://platinum/./node_modules/antd/es/modal/index.js","webpack://platinum/./node_modules/lodash/_cloneArrayBuffer.js","webpack://platinum/./node_modules/core-js/internals/make-built-in.js","webpack://platinum/./node_modules/moment/locale/zh-tw.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-forth.js","webpack://platinum/./app/routes/MasterOrgsEditPackagePage/constants.js","webpack://platinum/./node_modules/lodash/_shortOut.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/SearchOutlined.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","webpack://platinum/./app/components/svgs/QuestionMarkOutlinedSvg/QuestionMarkOutlinedSvg.tsx","webpack://platinum/./app/routes/AlarmDashboardPage/AlarmEditPage/constants.js","webpack://platinum/./node_modules/lodash/_MapCache.js","webpack://platinum/./altaLoginApp/components/ResetPasswordFlow/ResetPasswordFlow.scss","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://platinum/./app/new-components/DLS/OpSpace/OpSpace.scss?edc0","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-clouds_midnight.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-bibtex.js","webpack://platinum/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://platinum/./node_modules/rc-util/es/Dom/contains.js","webpack://platinum/./node_modules/rc-notification/es/hooks/useNotification.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","webpack://platinum/./app/new-components/DLS/OpSwitch/OpSwitch.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/dockerfile.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormSwitch/OpFormSwitch.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/glsl.js","webpack://platinum/./node_modules/antd/es/_util/hooks/useZIndex.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/client.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/theme/Theme.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/asl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csp.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/logiql.js","webpack://platinum/./node_modules/moment/locale/ko.js","webpack://platinum/./node_modules/lodash/_stackGet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/lisp.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/powershell.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://platinum/./node_modules/moment/locale/cy.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/asciidoc.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/required.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/zig.js","webpack://platinum/./node_modules/process/browser.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/matlab.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/clientreport.js","webpack://platinum/./app/routes/AlarmDashboardPage/AlarmEditPage/route.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-kr_theme.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/scheme.js","webpack://platinum/./node_modules/antd/es/config-provider/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-pastel_on_dark.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-c_cpp.js","webpack://platinum/./node_modules/rc-util/es/Dom/addEventListener.js","webpack://platinum/./node_modules/moment/locale/gd.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/c9search.js","webpack://platinum/./node_modules/@ant-design/icons/DownOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/perl.js","webpack://platinum/./node_modules/lodash/_baseKeysIn.js","webpack://platinum/./node_modules/lodash/_mapCacheSet.js","webpack://platinum/./app/components/svgs/PlusSvg/index.js","webpack://platinum/./node_modules/stylis/src/Parser.js","webpack://platinum/./node_modules/@babel/runtime/helpers/typeof.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/terraform.js","webpack://platinum/./node_modules/lodash-es/_unicodeToArray.js","webpack://platinum/./node_modules/lodash-es/_stringToArray.js","webpack://platinum/./node_modules/lodash-es/_asciiToArray.js","webpack://platinum/./app/new-components/OpPage/OpPage.tsx","webpack://platinum/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://platinum/./node_modules/core-js/stable/array/find-last-index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-powershell.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-kuroir.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-twilight.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-html.js","webpack://platinum/./node_modules/antd/es/modal/destroyFns.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/EnterOutlined.js","webpack://platinum/./node_modules/lodash/hasIn.js","webpack://platinum/./node_modules/lodash-es/_baseFor.js","webpack://platinum/./node_modules/lodash-es/_createBaseFor.js","webpack://platinum/./node_modules/lodash-es/_baseForOwn.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/buildPolyfills/_nullishCoalesce.js","webpack://platinum/./node_modules/nano-css/addon/vcssom.js","webpack://platinum/./node_modules/lodash-es/_arrayIncludes.js","webpack://platinum/./app/new-components/DLS/OpSpin/OpSpin.scss","webpack://platinum/./node_modules/lodash/identity.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/CaretRightOutlined.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Gradient.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/xquery.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/ArrowUpOutlined.js","webpack://platinum/./node_modules/rc-util/es/Dom/dynamicCSS.js","webpack://platinum/./node_modules/moment/locale/mr.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-protobuf.js","webpack://platinum/./node_modules/antd/es/flex/utils.js","webpack://platinum/./node_modules/antd/es/flex/style/index.js","webpack://platinum/./node_modules/antd/es/flex/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-statusbar.js","webpack://platinum/./node_modules/lodash-es/_isKey.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ada.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-css.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/html.js","webpack://platinum/./app/new-components/OpPage/OpPage.scss","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js","webpack://platinum/./node_modules/lodash-es/isFunction.js","webpack://platinum/./node_modules/moment/locale/hu.js","webpack://platinum/./node_modules/antd/es/popover/style/index.js","webpack://platinum/./node_modules/@sentry/react/build/esm/errorboundary.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/max.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/regex.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/parse.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/validate.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/rng.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/v35.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/md5.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/v3.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/native.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/v4.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/sha1.js","webpack://platinum/./node_modules/uuid/dist/esm-browser/v5.js","webpack://platinum/./node_modules/moment/locale/da.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/WarningOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-liquid.js","webpack://platinum/./node_modules/react-ace/lib/editorOptions.js","webpack://platinum/./node_modules/lodash/keys.js","webpack://platinum/./node_modules/moment/locale/fil.js","webpack://platinum/./node_modules/rc-pagination/es/locale/en_US.js","webpack://platinum/./app/global/orgPackagePlans/constants.js","webpack://platinum/./node_modules/antd/es/skeleton/Element.js","webpack://platinum/./node_modules/antd/es/skeleton/style/index.js","webpack://platinum/./node_modules/antd/es/skeleton/Paragraph.js","webpack://platinum/./node_modules/antd/es/skeleton/Title.js","webpack://platinum/./node_modules/antd/es/skeleton/Skeleton.js","webpack://platinum/./node_modules/antd/es/skeleton/Button.js","webpack://platinum/./node_modules/antd/es/skeleton/Avatar.js","webpack://platinum/./node_modules/antd/es/skeleton/Input.js","webpack://platinum/./node_modules/antd/es/skeleton/Image.js","webpack://platinum/./node_modules/antd/es/skeleton/Node.js","webpack://platinum/./node_modules/antd/es/skeleton/index.js","webpack://platinum/./node_modules/@rc-component/portal/es/util.js","webpack://platinum/./node_modules/lodash-es/_baseIntersection.js","webpack://platinum/./node_modules/lodash-es/_castArrayLikeObject.js","webpack://platinum/./node_modules/lodash-es/intersection.js","webpack://platinum/./node_modules/lodash-es/_arrayEach.js","webpack://platinum/./node_modules/lodash-es/forEach.js","webpack://platinum/./node_modules/lodash-es/_castFunction.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/ModernAutoControlledComponent.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/childrenUtils.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/numberToWord.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/classNameBuilders.js","webpack://platinum/./node_modules/lodash-es/_baseSortBy.js","webpack://platinum/./node_modules/lodash-es/_compareAscending.js","webpack://platinum/./node_modules/lodash-es/_baseOrderBy.js","webpack://platinum/./node_modules/lodash-es/_compareMultiple.js","webpack://platinum/./node_modules/lodash-es/sortBy.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/customPropTypes.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/eventStack/index.js","webpack://platinum/./node_modules/lodash-es/uniq.js","webpack://platinum/./node_modules/lodash-es/isNumber.js","webpack://platinum/./node_modules/lodash-es/isBoolean.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/factories.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/getUnhandledProps.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/getElementType.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/htmlPropsUtils.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/isBrowser.js","webpack://platinum/./node_modules/lodash-es/_baseInRange.js","webpack://platinum/./node_modules/lodash-es/inRange.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/doesNodeContainClick.js","webpack://platinum/./node_modules/lodash-es/head.js","webpack://platinum/./node_modules/lodash-es/_baseRange.js","webpack://platinum/./node_modules/lodash-es/_createRange.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/SUI.js","webpack://platinum/./node_modules/lodash-es/_baseCreate.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/hooks/useIsomorphicLayoutEffect.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/lib/hooks/useClassNamesOnNode.js","webpack://platinum/./node_modules/lodash/toNumber.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-batchfile.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-error_marker.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-r.js","webpack://platinum/./node_modules/rc-tooltip/es/index.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","webpack://platinum/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-tomorrow_night_blue.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/golang.js","webpack://platinum/./node_modules/core-js/internals/document-create-element.js","webpack://platinum/./node_modules/@contentful/rich-text-react-renderer/dist/rich-text-react-renderer.es5.js","webpack://platinum/./node_modules/antd/es/_util/wave/interface.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","webpack://platinum/./node_modules/lodash/_baseIsTypedArray.js","webpack://platinum/./node_modules/antd/es/notification/style/placement.js","webpack://platinum/./node_modules/antd/es/notification/interface.js","webpack://platinum/./node_modules/antd/es/notification/style/stack.js","webpack://platinum/./node_modules/antd/es/notification/style/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/measurement.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ftl.js","webpack://platinum/./node_modules/lodash/_getTag.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/string.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/PlusOutlined.js","webpack://platinum/./node_modules/lodash/mergeWith.js","webpack://platinum/./node_modules/core-js/internals/create-property-descriptor.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/profiling/integration.js","webpack://platinum/./node_modules/lodash/throttle.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/SearchOutlined.js","webpack://platinum/./node_modules/lodash/_root.js","webpack://platinum/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack://platinum/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack://platinum/./node_modules/libphonenumber-js/es6/metadata.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://platinum/./node_modules/libphonenumber-js/es6/isPossible.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://platinum/./node_modules/libphonenumber-js/es6/constants.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/format.js","webpack://platinum/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/isValid.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://platinum/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parse.js","webpack://platinum/./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack://platinum/./node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://platinum/./node_modules/libphonenumber-js/es6/parsePhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/LRUCache.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/RegExpCache.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/util.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/utf-8.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/Leniency.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/parsePreCandidate.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/isValidPreCandidate.js","webpack://platinum/./node_modules/libphonenumber-js/es6/findNumbers/isValidCandidate.js","webpack://platinum/./node_modules/libphonenumber-js/es6/PhoneNumberMatcher.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack://platinum/./node_modules/libphonenumber-js/es6/AsYouType.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/parsePhoneNumberWithError.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/PhoneNumberMatcher.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/AsYouType.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/Metadata.js","webpack://platinum/./node_modules/libphonenumber-js/min/exports/PhoneNumber.js","webpack://platinum/./node_modules/libphonenumber-js/es6/legacy/findPhoneNumbersInitialImplementation.js","webpack://platinum/./node_modules/libphonenumber-js/index.es6.exports/PhoneNumberSearch.js","webpack://platinum/./node_modules/react-i18next/dist/es/utils.js","webpack://platinum/./node_modules/rc-textarea/es/calculateNodeHeight.js","webpack://platinum/./node_modules/rc-textarea/es/ResizableTextArea.js","webpack://platinum/./node_modules/rc-textarea/es/TextArea.js","webpack://platinum/./node_modules/rc-textarea/es/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-qml.js","webpack://platinum/./node_modules/lodash/isPlainObject.js","webpack://platinum/./node_modules/js-cookie/src/js.cookie.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-sqlserver.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-aql.js","webpack://platinum/./node_modules/lodash/_arrayIncludes.js","webpack://platinum/./node_modules/antd/es/version/index.js","webpack://platinum/./node_modules/semantic-ui-react/node_modules/@fluentui/react-component-ref/dist/es/utils.js","webpack://platinum/./node_modules/semantic-ui-react/node_modules/@fluentui/react-component-ref/dist/es/RefFindNode.js","webpack://platinum/./node_modules/semantic-ui-react/node_modules/@fluentui/react-component-ref/dist/es/RefForward.js","webpack://platinum/./node_modules/semantic-ui-react/node_modules/@fluentui/react-component-ref/dist/es/Ref.js","webpack://platinum/./node_modules/compare-versions/lib/esm/utils.js","webpack://platinum/./node_modules/compare-versions/lib/esm/validate.js","webpack://platinum/./node_modules/compare-versions/lib/esm/compare.js","webpack://platinum/./app/utils/logging.ts","webpack://platinum/./app/utils/helpers.js","webpack://platinum/./node_modules/compare-versions/lib/esm/compareVersions.js","webpack://platinum/./node_modules/antd/es/_util/warning.js","webpack://platinum/./node_modules/antd/es/alert/style/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-scala.js","webpack://platinum/./node_modules/@ant-design/icons/RightOutlined.js","webpack://platinum/./node_modules/dayjs/plugin/localeData.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/constants.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jssm.js","webpack://platinum/./node_modules/lodash/_copyArray.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nasal.js","webpack://platinum/./node_modules/lodash/_listCacheGet.js","webpack://platinum/./node_modules/@ant-design/icons/PlusOutlined.js","webpack://platinum/./node_modules/@sentry/core/build/esm/checkin.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-xcode.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-rtl.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/url.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-eclipse.js","webpack://platinum/./node_modules/antd/es/tooltip/util.js","webpack://platinum/./node_modules/moment/locale/tet.js","webpack://platinum/./node_modules/rc-collapse/es/Panel.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csharp.js","webpack://platinum/./node_modules/rc-motion/es/util/diff.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mediawiki.js","webpack://platinum/./node_modules/lodash/_isStrictComparable.js","webpack://platinum/./node_modules/moment/locale/gom-deva.js","webpack://platinum/./app/routes/OrgContainer/constants.js","webpack://platinum/./app/utils/customHooks/useConfirmModal.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-prolog.js","webpack://platinum/./node_modules/core-js/internals/to-absolute-index.js","webpack://platinum/./node_modules/rc-field-form/es/utils/messages.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-textarea.js","webpack://platinum/./node_modules/@msi-alta/helium-client/lib/index.js","webpack://platinum/./node_modules/antd/es/divider/style/index.js","webpack://platinum/./node_modules/antd/es/divider/index.js","webpack://platinum/./node_modules/antd/es/select/style/multiple.js","webpack://platinum/./node_modules/core-js/internals/define-built-in.js","webpack://platinum/./node_modules/lodash/keysIn.js","webpack://platinum/./node_modules/react-redux/dist/cjs/react-redux.production.min.cjs","webpack://platinum/./app/utils/audio.ts","webpack://platinum/./node_modules/lodash/_Uint8Array.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-gitignore.js","webpack://platinum/./node_modules/rc-checkbox/es/index.js","webpack://platinum/./node_modules/lodash/_baseCreate.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-logtalk.js","webpack://platinum/./node_modules/lodash-es/_Set.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Handler.js","webpack://platinum/./node_modules/stylis/src/Tokenizer.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-dot.js","webpack://platinum/./node_modules/react-dom/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/livescript.js","webpack://platinum/./node_modules/dayjs/plugin/quarterOfYear.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/supportUtil.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/numberUtil.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/NumberDecimal.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/MiniDecimal.js","webpack://platinum/./node_modules/@rc-component/mini-decimal/es/index.js","webpack://platinum/./node_modules/rc-input-number/es/StepHandler.js","webpack://platinum/./node_modules/rc-util/es/hooks/useMobile.js","webpack://platinum/./node_modules/rc-input-number/es/utils/numberUtil.js","webpack://platinum/./node_modules/rc-input-number/es/InputNumber.js","webpack://platinum/./node_modules/rc-input-number/es/hooks/useCursor.js","webpack://platinum/./node_modules/rc-input-number/es/hooks/useFrame.js","webpack://platinum/./node_modules/rc-util/es/proxyObject.js","webpack://platinum/./node_modules/rc-input-number/es/index.js","webpack://platinum/./node_modules/antd/es/input-number/style/token.js","webpack://platinum/./node_modules/antd/es/input-number/style/index.js","webpack://platinum/./node_modules/antd/es/input-number/index.js","webpack://platinum/./node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","webpack://platinum/./node_modules/node-fetch/browser.js","webpack://platinum/./node_modules/@rc-component/portal/es/Portal.js","webpack://platinum/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://platinum/./node_modules/lodash/_baseAssignIn.js","webpack://platinum/./app/global/formWrapper/constants.js","webpack://platinum/./node_modules/core-js/internals/global-this.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/eventbuilder.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/java.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","webpack://platinum/./app/assets/favicons-prod/favicon-alert-16x16.png","webpack://platinum/./node_modules/rc-picker/es/locale/common.js","webpack://platinum/./app/global/slideOuts/constants.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud9_day.js","webpack://platinum/./node_modules/lodash-es/_baseHasIn.js","webpack://platinum/./node_modules/lodash-es/hasIn.js","webpack://platinum/./app/new-components/DLS/OpInput/OpInput.scss?58bb","webpack://platinum/./app/new-components/DLS/OpInput/OpInput.tsx","webpack://platinum/./node_modules/moment/locale/bg.js","webpack://platinum/./node_modules/react-use/esm/useVibrate.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/linkederrors.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-inline_autocomplete.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/toml.js","webpack://platinum/./node_modules/stylis/src/Serializer.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-handlebars.js","webpack://platinum/./app/containers/NavMenu/selectors.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/SettingOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/apache_conf.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csound_orchestra.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/gcode.js","webpack://platinum/./app/assets/fonts/assistant-v2-latin-700.svg","webpack://platinum/./node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-fsharp.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","webpack://platinum/./node_modules/rc-field-form/es/utils/valueUtil.js","webpack://platinum/./node_modules/moment/locale/es-us.js","webpack://platinum/./node_modules/antd/es/modal/useModal/HookModal.js","webpack://platinum/./node_modules/antd/es/modal/useModal/index.js","webpack://platinum/./node_modules/antd/es/_util/hooks/usePatchElement.js","webpack://platinum/./node_modules/antd/es/tag/style/index.js","webpack://platinum/./node_modules/antd/es/tag/CheckableTag.js","webpack://platinum/./node_modules/antd/es/tag/style/presetCmp.js","webpack://platinum/./node_modules/antd/es/tag/style/statusCmp.js","webpack://platinum/./node_modules/antd/es/_util/capitalize.js","webpack://platinum/./node_modules/antd/es/tag/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csound_document.js","webpack://platinum/./node_modules/react-use/esm/useIsomorphicLayoutEffect.js","webpack://platinum/./app/new-components/DLS/OpInfo/components/OpInfoWithoutDismiss.tsx","webpack://platinum/./node_modules/lodash-es/_baseSetToString.js","webpack://platinum/./node_modules/lodash-es/_shortOut.js","webpack://platinum/./node_modules/lodash-es/_setToString.js","webpack://platinum/./app/new-components/OpAppScaffold/constants.ts","webpack://platinum/./node_modules/lodash-es/_baseDifference.js","webpack://platinum/./node_modules/antd/es/_util/statusUtils.js","webpack://platinum/./node_modules/moment/locale/ar-kw.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-css.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","webpack://platinum/./app/assets/scss/base/_overrides.scss","webpack://platinum/./node_modules/@rc-component/color-picker/es/hooks/useComponent.js","webpack://platinum/./node_modules/lodash-es/_stringToPath.js","webpack://platinum/./node_modules/lodash-es/_memoizeCapped.js","webpack://platinum/./node_modules/lodash-es/_castPath.js","webpack://platinum/./altaLoginApp/components/UseAltaIdButton/UseAltaIdButton.scss","webpack://platinum/./node_modules/@ctrl/tinycolor/dist/module/conversion.js","webpack://platinum/./node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","webpack://platinum/./node_modules/@ant-design/icons/LockOutlined.js","webpack://platinum/./node_modules/react-universal-interface/lib/index.js","webpack://platinum/./node_modules/lodash-es/_arraySome.js","webpack://platinum/./node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/isSentryRequestUrl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-php.js","webpack://platinum/./app/assets/fonts/assistant-v2-latin-300.svg","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://platinum/./node_modules/lodash-es/_baseFilter.js","webpack://platinum/./node_modules/lodash-es/filter.js","webpack://platinum/./node_modules/lodash/last.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","webpack://platinum/./node_modules/lodash/_Map.js","webpack://platinum/./node_modules/rc-util/es/isMobile.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integration.js","webpack://platinum/./node_modules/rc-collapse/es/hooks/useItems.js","webpack://platinum/./node_modules/rc-field-form/es/FieldContext.js","webpack://platinum/./node_modules/@ant-design/icons/lib/components/IconBase.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-logiql.js","webpack://platinum/./node_modules/lodash/_baseGetTag.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-less.js","webpack://platinum/./node_modules/filter-obj/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-coffee.js","webpack://platinum/./node_modules/lodash/_baseSet.js","webpack://platinum/./node_modules/throttle-debounce/esm/index.js","webpack://platinum/./node_modules/lodash/_overArg.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-livescript.js","webpack://platinum/./node_modules/lodash-es/map.js","webpack://platinum/./node_modules/react/jsx-runtime.js","webpack://platinum/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://platinum/./node_modules/i18next-locize-backend/esm/utils.js","webpack://platinum/./node_modules/i18next-locize-backend/esm/request.js","webpack://platinum/./node_modules/i18next-locize-backend/esm/index.js","webpack://platinum/./node_modules/locize-lastused/esm/request.js","webpack://platinum/./node_modules/i18next-subliminal/dist/esm/encoder.js","webpack://platinum/./node_modules/i18next-subliminal/dist/esm/postProcessor.js","webpack://platinum/./node_modules/locize/dist/esm/vars.js","webpack://platinum/./node_modules/locize/dist/esm/ui/stylesheet.js","webpack://platinum/./node_modules/locize/dist/esm/api/postMessage.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleEditKey.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleCommitKey.js","webpack://platinum/./node_modules/locize/dist/esm/uninstrumentedStore.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleCommitKeys.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleConfirmInitialized.js","webpack://platinum/./node_modules/locize/dist/esm/ui/utils.js","webpack://platinum/./node_modules/locize/dist/esm/utils.js","webpack://platinum/./node_modules/locize/dist/esm/ui/mouseDistance.js","webpack://platinum/./node_modules/locize/dist/esm/ui/highlightNode.js","webpack://platinum/./node_modules/locize/dist/esm/ui/elements/ribbonBox.js","webpack://platinum/./node_modules/locize/dist/esm/ui/elements/icons.js","webpack://platinum/./node_modules/locize/dist/esm/ui/elements/popup.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleRequestPopupChanges.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleRequestResourceBundle.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleSelectedKeys.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleIsLocizeEnabled.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleTurnOn.js","webpack://platinum/./node_modules/locize/dist/esm/api/handleTurnOff.js","webpack://platinum/./node_modules/locize/dist/esm/store.js","webpack://platinum/./node_modules/locize/dist/esm/shims/uniqueID.js","webpack://platinum/./node_modules/locize/dist/esm/clickHandler.js","webpack://platinum/./node_modules/locize/dist/esm/processLegacy.js","webpack://platinum/./node_modules/locize/dist/esm/locizePlugin.js","webpack://platinum/./node_modules/locize/dist/esm/startStandalone.js","webpack://platinum/./node_modules/locize/dist/esm/index.js","webpack://platinum/./node_modules/i18next-chained-backend/dist/esm/i18nextChainedBackend.js","webpack://platinum/./app/i18n/locize.js","webpack://platinum/./app/i18n/i18n.js","webpack://platinum/./node_modules/i18next-resources-to-backend/dist/esm/index.js","webpack://platinum/./app/new-components/DLS/OpSwitch/OpSwitch.scss?8a3e","webpack://platinum/./app/new-components/DLS/OpSwitch/OpSwitch.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-xml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-partiql.js","webpack://platinum/./node_modules/antd/es/checkbox/style/index.js","webpack://platinum/./node_modules/core-js/internals/shared-store.js","webpack://platinum/./node_modules/@semantic-ui-react/event-stack/lib/index.js","webpack://platinum/./node_modules/core-js/internals/a-callable.js","webpack://platinum/./node_modules/moment/locale/en-nz.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","webpack://platinum/./node_modules/rc-motion/es/util/motion.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/erlang.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-pascal.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nginx.js","webpack://platinum/./node_modules/lodash/_getAllKeysIn.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/rhtml.js","webpack://platinum/./node_modules/@sentry/react/build/esm/error.js","webpack://platinum/./node_modules/moment/locale/kn.js","webpack://platinum/./node_modules/jwt-decode/build/esm/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-puppet.js","webpack://platinum/./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack://platinum/./app/config/utils/index.js","webpack://platinum/./app/assets/favicons-prod/favicon-16x16.png","webpack://platinum/./node_modules/react-i18next/dist/es/Trans.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/OpFormVideoRegionSelect.scss","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://platinum/./node_modules/moment/locale/ar-tn.js","webpack://platinum/./node_modules/antd/es/button/style/compactCmp.js","webpack://platinum/./node_modules/lodash/stubFalse.js","webpack://platinum/./node_modules/connected-react-router/lib/structure/immutable/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/plain_text.js","webpack://platinum/./node_modules/lodash/_copySymbols.js","webpack://platinum/./node_modules/core-js/internals/is-forced.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud_editor_dark.js","webpack://platinum/./node_modules/rc-field-form/es/Field.js","webpack://platinum/./node_modules/lodash/_defineProperty.js","webpack://platinum/./app/new-components/DLS/OpForm/OpForm.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-xml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/protobuf.js","webpack://platinum/./node_modules/lodash-es/_baseEach.js","webpack://platinum/./node_modules/lodash-es/_createBaseEach.js","webpack://platinum/./node_modules/moment/locale/pl.js","webpack://platinum/./app/containers/OmniSelect/actions.js","webpack://platinum/./node_modules/dayjs/plugin/advancedFormat.js","webpack://platinum/./node_modules/moment/locale/es.js","webpack://platinum/./node_modules/core-js/internals/get-built-in.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cobalt.js","webpack://platinum/./node_modules/antd/es/config-provider/DisabledContext.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","webpack://platinum/./node_modules/moment/locale/fa.js","webpack://platinum/./app/constants/Dates.ts","webpack://platinum/./node_modules/lodash-es/toNumber.js","webpack://platinum/./node_modules/lodash/isFunction.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-glsl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-latte.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/env.js","webpack://platinum/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://platinum/./node_modules/lodash/_mapCacheHas.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","webpack://platinum/./app/routes/AuthenticatedContainer/constants.js","webpack://platinum/./node_modules/@rc-component/portal/es/useDom.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-odin.js","webpack://platinum/./app/routes/AppContainer/actions.js","webpack://platinum/./node_modules/moment/locale/ne.js","webpack://platinum/./app/new-components/DLS/OpInputDuration/OpInputDuration.scss","webpack://platinum/./node_modules/lodash/_baseClone.js","webpack://platinum/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://platinum/./node_modules/moment/locale/ta.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/wollok.js","webpack://platinum/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-chrome.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/components/Context.js","webpack://platinum/./node_modules/lodash/_arrayPush.js","webpack://platinum/./altaLoginApp/components/App.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-split.js","webpack://platinum/./node_modules/invariant/browser.js","webpack://platinum/./node_modules/moment/locale/vi.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/CloudUploadOutlined.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","webpack://platinum/./node_modules/lodash-es/isObject.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-soy_template.js","webpack://platinum/./node_modules/react-use/esm/useRafState.js","webpack://platinum/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://platinum/./node_modules/@remix-run/router/dist/router.js","webpack://platinum/./node_modules/react-router-dom-v5-compat/node_modules/react-router/dist/index.js","webpack://platinum/./node_modules/react-router-dom-v5-compat/node_modules/history/index.js","webpack://platinum/./node_modules/react-router-dom-v5-compat/dist/index.js","webpack://platinum/./node_modules/stylis/src/Enum.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/PrinterOutlined.js","webpack://platinum/./node_modules/rc-motion/es/hooks/useStatus.js","webpack://platinum/./node_modules/rc-resize-observer/es/Collection.js","webpack://platinum/./app/components/svgs/UserFilledSvg/UserFilledSvg.tsx","webpack://platinum/./app/components/svgs/CameraOutlinedSvg/CameraOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/HomeFilledSvg/HomeFilledSvg.tsx","webpack://platinum/./app/components/svgs/CameraFilledSvg/CameraFilledSvg.tsx","webpack://platinum/./app/components/svgs/UserOutlinedSvg/UserOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/LocationOutlinedSvg/LocationOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/LocationFilledSvg/LocationFilledSvg.tsx","webpack://platinum/./app/components/svgs/DevicesOutlinedSvg/DevicesOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/DeviceFilledSvg/DeviceFilledSvg.tsx","webpack://platinum/./app/components/svgs/PuzzleOutlinedSvg/PuzzleOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/PuzzleFilledSvg/PuzzleFilledSvg.tsx","webpack://platinum/./app/components/svgs/SettingOutlinedSvg/SettingOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/SettingFilledSvg/SettingFilledSvg.tsx","webpack://platinum/./app/components/svgs/AdminFilledSvg/AdminFilledSvg.tsx","webpack://platinum/./app/components/svgs/QuestionMarkFilledSvg/QuestionMarkFilledSvg.tsx","webpack://platinum/./app/components/svgs/DocumentOutlinedSvg/DocumentOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/DocumentFilledSvg/DocumentFilledSvg.tsx","webpack://platinum/./app/components/svgs/FileOutlinedSvg/FileOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/FileFilledSvg/FileFilledSvg.tsx","webpack://platinum/./app/components/svgs/AdminOutlinedSvg/AdminOutlinedSvg.tsx","webpack://platinum/./app/components/svgs/UserGroupOutlineSvg/UserGroupOutlineSvg.tsx","webpack://platinum/./app/components/svgs/UserGroupFilledSvg/UserGroupFilledSvg.tsx","webpack://platinum/./app/config/createRawMenuItems.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-xquery.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/logtalk.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CopyOutlined.js","webpack://platinum/./node_modules/rc-field-form/es/utils/typeUtil.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://platinum/./node_modules/lodash/_WeakMap.js","webpack://platinum/./node_modules/lodash/_baseIsMap.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/handleCallbackErrors.js","webpack://platinum/./node_modules/rc-motion/es/index.js","webpack://platinum/./node_modules/lodash/isLength.js","webpack://platinum/./node_modules/decode-uri-component/index.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormHiddenItemForDataSetting/OpFormHiddenItemForDataSetting.scss?7fc9","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormHiddenItemForDataSetting/OpFormHiddenItemForDataSetting.tsx","webpack://platinum/./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-terraform.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-yaml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/aql.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/regexp.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-clouds.js","webpack://platinum/./node_modules/react-use/esm/useFirstMountState.js","webpack://platinum/./app/assets/fonts/assistant-v2-latin-800.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-cuttlefish.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/profiling/utils.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/puppet.js","webpack://platinum/./app/constants/countries.ts","webpack://platinum/./node_modules/antd/es/_util/wave/WaveEffect.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/ZoomOutOutlined.js","webpack://platinum/./node_modules/keyboard-key/src/keyboardKey.js","webpack://platinum/./app/store/index.js","webpack://platinum/./app/utils/appColorThemeManager.ts","webpack://platinum/./node_modules/antd/es/config-provider/hooks/useThemeKey.js","webpack://platinum/./node_modules/lodash-es/_baseHas.js","webpack://platinum/./node_modules/lodash/isObjectLike.js","webpack://platinum/./app/assets/fonts/assistant-v2-latin-600.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/swift.js","webpack://platinum/./node_modules/react-use/esm/useDebounce.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js","webpack://platinum/./node_modules/moment/locale/hi.js","webpack://platinum/./node_modules/antd/es/layout/style/index.js","webpack://platinum/./node_modules/core-js/internals/classof-raw.js","webpack://platinum/./node_modules/lodash/_baseIsNative.js","webpack://platinum/./node_modules/moment/locale/sr.js","webpack://platinum/./node_modules/moment/locale/lt.js","webpack://platinum/./app/new-components/DLS/OpImage/OpImage.tsx","webpack://platinum/./node_modules/@rc-component/async-validator/es/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/latte.js","webpack://platinum/./node_modules/react-use/esm/useBattery.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-abap.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/number.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/hooks/useColorDrag.js","webpack://platinum/./node_modules/lodash/property.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/gitignore.js","webpack://platinum/./node_modules/moment/locale/zh-cn.js","webpack://platinum/./node_modules/lodash-es/_baseUnary.js","webpack://platinum/./node_modules/@ant-design/icons/VideoCameraOutlined.js","webpack://platinum/./node_modules/antd/es/style/motion/slide.js","webpack://platinum/./node_modules/lodash-es/_isStrictComparable.js","webpack://platinum/./node_modules/lodash-es/_getMatchData.js","webpack://platinum/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://platinum/./node_modules/lodash-es/_baseMatches.js","webpack://platinum/./node_modules/lodash-es/_baseIsMatch.js","webpack://platinum/./node_modules/lodash-es/_basePropertyDeep.js","webpack://platinum/./node_modules/lodash-es/property.js","webpack://platinum/./node_modules/lodash-es/_baseIteratee.js","webpack://platinum/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://platinum/./node_modules/antd/es/button/LoadingIcon.js","webpack://platinum/./node_modules/antd/es/_util/colors.js","webpack://platinum/./node_modules/antd/es/date-picker/style/multiple.js","webpack://platinum/./node_modules/antd/es/date-picker/style/panel.js","webpack://platinum/./node_modules/antd/es/date-picker/style/token.js","webpack://platinum/./node_modules/antd/es/date-picker/style/variants.js","webpack://platinum/./node_modules/antd/es/date-picker/style/index.js","webpack://platinum/./node_modules/lodash/_overRest.js","webpack://platinum/./node_modules/rc-util/es/hooks/useId.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/luapage.js","webpack://platinum/./node_modules/lodash-es/_createSet.js","webpack://platinum/./node_modules/lodash-es/_baseUniq.js","webpack://platinum/./node_modules/@rc-component/trigger/es/hooks/useAction.js","webpack://platinum/./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-dawn.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/haskell.js","webpack://platinum/./app/containers/AllegionInviter/constants.js","webpack://platinum/./node_modules/fast-shallow-equal/index.js","webpack://platinum/./node_modules/antd/es/date-picker/locale/en_US.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-mono_industrial.js","webpack://platinum/./node_modules/moment/locale/ar.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormRadio/OpFormRadio.scss","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormHiddenItemForDataSetting/OpFormHiddenItemForDataSetting.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/actionscript.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-crimson_editor.js","webpack://platinum/./node_modules/moment/locale/x-pseudo.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/scrypt.js","webpack://platinum/./altaLoginApp/components/LoginFlow/PasswordForm.scss","webpack://platinum/./app/new-components/DLS/OpInfo/OpInfo.scss","webpack://platinum/./node_modules/lodash-es/isEmpty.js","webpack://platinum/./node_modules/lodash/_matchesStrictComparable.js","webpack://platinum/./node_modules/core-js/internals/require-object-coercible.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/version.js","webpack://platinum/./app/assets/favicons-prod/site.webmanifest","webpack://platinum/./node_modules/antd/es/form/validateMessagesContext.js","webpack://platinum/./node_modules/lodash/transform.js","webpack://platinum/./node_modules/react-ace/lib/index.js","webpack://platinum/./node_modules/lodash/_arrayLikeKeys.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-vbscript.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/clojure.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/eiffel.js","webpack://platinum/./app/global/modalDeluxe/constants.js","webpack://platinum/./node_modules/rc-virtual-list/es/Filler.js","webpack://platinum/./node_modules/rc-virtual-list/es/Item.js","webpack://platinum/./node_modules/rc-virtual-list/es/utils/isFirefox.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","webpack://platinum/./node_modules/rc-virtual-list/es/utils/CacheMap.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useHeights.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","webpack://platinum/./node_modules/rc-virtual-list/es/ScrollBar.js","webpack://platinum/./node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","webpack://platinum/./node_modules/rc-virtual-list/es/List.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useDiffItem.js","webpack://platinum/./node_modules/rc-virtual-list/es/utils/algorithmUtil.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useScrollTo.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useGetSize.js","webpack://platinum/./node_modules/rc-virtual-list/es/hooks/useChildren.js","webpack://platinum/./node_modules/rc-virtual-list/es/index.js","webpack://platinum/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://platinum/./node_modules/i18next/dist/esm/i18next.js","webpack://platinum/./node_modules/moment/locale/ms.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","webpack://platinum/./node_modules/rc-notification/es/NoticeList.js","webpack://platinum/./node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://platinum/./app/components/svgs/SvgWrapper/SvgWrapper.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-objectivec.js","webpack://platinum/./node_modules/@sentry-internal/replay/build/npm/esm/index.js","webpack://platinum/./app/new-components/DLS/OpTransfer/OpTransfer.scss","webpack://platinum/./node_modules/@ctrl/tinycolor/dist/module/format-input.js","webpack://platinum/./node_modules/css-loader/dist/runtime/api.js","webpack://platinum/./node_modules/rc-resize-observer/es/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sh.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/SettingOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ejs.js","webpack://platinum/./node_modules/react-use/esm/useMouse.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genControlHeight.js","webpack://platinum/./app/utils/scopes.ts","webpack://platinum/./node_modules/moment/locale/pt.js","webpack://platinum/./node_modules/moment/locale/tzl.js","webpack://platinum/./node_modules/lodash/_ListCache.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/requestdata.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ace.js","webpack://platinum/./node_modules/rc-segmented/es/MotionThumb.js","webpack://platinum/./node_modules/rc-segmented/es/index.js","webpack://platinum/./node_modules/antd/es/segmented/style/index.js","webpack://platinum/./node_modules/antd/es/segmented/index.js","webpack://platinum/./node_modules/antd/es/input/style/index.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/svg.js","webpack://platinum/./node_modules/redux-immutable/dist/utilities/getUnexpectedInvocationParameterMessage.js","webpack://platinum/./node_modules/rc-util/es/Children/toArray.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/keybinding-emacs.js","webpack://platinum/./node_modules/moment/locale/ar-sa.js","webpack://platinum/./node_modules/rc-util/es/getScrollBarSize.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/extractStyle.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-red.js","webpack://platinum/./node_modules/lodash/_baseIsNaN.js","webpack://platinum/./node_modules/moment/locale/fr.js","webpack://platinum/./node_modules/lodash/_isMasked.js","webpack://platinum/./node_modules/lodash/_assignMergeValue.js","webpack://platinum/./node_modules/lodash/_baseMatchesProperty.js","webpack://platinum/./node_modules/antd/es/input/TextArea.js","webpack://platinum/./node_modules/antd/es/input/style/variants.js","webpack://platinum/./node_modules/moment/locale/is.js","webpack://platinum/./node_modules/react-popper/lib/esm/Manager.js","webpack://platinum/./node_modules/react-popper/lib/esm/utils.js","webpack://platinum/./node_modules/@popperjs/core/lib/enums.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/math.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/within.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://platinum/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://platinum/./node_modules/@popperjs/core/lib/createPopper.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://platinum/./node_modules/@popperjs/core/lib/popper.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://platinum/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://platinum/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://platinum/./node_modules/react-popper/lib/esm/usePopper.js","webpack://platinum/./node_modules/react-popper/lib/esm/Popper.js","webpack://platinum/./node_modules/lodash-es/invert.js","webpack://platinum/./node_modules/lodash-es/_createInverter.js","webpack://platinum/./node_modules/lodash-es/_baseInverter.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/modules/Popup/lib/positions.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/modules/Popup/lib/createReferenceProxy.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/modules/Popup/PopupContent.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/modules/Popup/PopupHeader.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/modules/Popup/Popup.js","webpack://platinum/./node_modules/lodash-es/isElement.js","webpack://platinum/./app/routes/AppContainer/selectors.js","webpack://platinum/./node_modules/core-js/internals/internal-state.js","webpack://platinum/./node_modules/antd/es/checkbox/GroupContext.js","webpack://platinum/./node_modules/antd/es/checkbox/Checkbox.js","webpack://platinum/./node_modules/antd/es/checkbox/Group.js","webpack://platinum/./node_modules/antd/es/checkbox/index.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/time.js","webpack://platinum/./node_modules/@sentry/react/build/esm/constants.js","webpack://platinum/./node_modules/moment/locale/nl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-plain_text.js","webpack://platinum/./node_modules/toposort/index.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormItem/OpFormItem.scss","webpack://platinum/./node_modules/react-use/esm/useEffectOnce.js","webpack://platinum/./node_modules/@sentry/core/build/esm/scope.js","webpack://platinum/./node_modules/antd/es/style/placementArrow.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/UndoOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-maze.js","webpack://platinum/./node_modules/lodash/_baseIndexOf.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-assembly_arm32.js","webpack://platinum/./app/global/orgFeatures/constants.js","webpack://platinum/./node_modules/lodash-es/_baseInvoke.js","webpack://platinum/./node_modules/lodash-es/invoke.js","webpack://platinum/./node_modules/lodash-es/last.js","webpack://platinum/./node_modules/lodash-es/_parent.js","webpack://platinum/./node_modules/antd/es/style/motion/zoom.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/exports.js","webpack://platinum/./app/containers/OmniSelect/reducer.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-beautify.js","webpack://platinum/./node_modules/lodash-es/_getRawTag.js","webpack://platinum/./node_modules/lodash-es/_objectToString.js","webpack://platinum/./node_modules/lodash-es/_baseGetTag.js","webpack://platinum/./node_modules/shallowequal/index.js","webpack://platinum/./node_modules/rc-dropdown/es/hooks/useAccessibility.js","webpack://platinum/./node_modules/rc-dropdown/es/Overlay.js","webpack://platinum/./node_modules/rc-dropdown/es/placements.js","webpack://platinum/./node_modules/rc-dropdown/es/Dropdown.js","webpack://platinum/./node_modules/rc-dropdown/es/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/sampling.js","webpack://platinum/./node_modules/rc-select/es/hooks/useId.js","webpack://platinum/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://platinum/./node_modules/antd/es/theme/themes/dark/colorAlgorithm.js","webpack://platinum/./node_modules/antd/es/theme/themes/dark/colors.js","webpack://platinum/./node_modules/antd/es/theme/index.js","webpack://platinum/./node_modules/antd/es/theme/themes/dark/index.js","webpack://platinum/./node_modules/antd/es/theme/themes/compact/index.js","webpack://platinum/./node_modules/antd/es/theme/themes/compact/genCompactSizeMapToken.js","webpack://platinum/./node_modules/antd/es/theme/getDesignToken.js","webpack://platinum/./app/new-components/OrgSwitcher/helpers/orgAccess.ts","webpack://platinum/./node_modules/rc-field-form/es/ListContext.js","webpack://platinum/./node_modules/prop-types/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/server-runtime-client.js","webpack://platinum/./app/new-components/DLS/OpTextButton/OpTextButton.scss","webpack://platinum/./node_modules/antd/es/slider/SliderTooltip.js","webpack://platinum/./node_modules/antd/es/slider/style/index.js","webpack://platinum/./node_modules/antd/es/slider/useRafLock.js","webpack://platinum/./node_modules/antd/es/slider/index.js","webpack://platinum/./node_modules/lodash-es/_isIterateeCall.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-rst.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/php.js","webpack://platinum/./node_modules/core-js/internals/function-name.js","webpack://platinum/./altaLoginApp/components/LoginFlow/LoginFlow.scss","webpack://platinum/./node_modules/moment/locale/br.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/fortran.js","webpack://platinum/./node_modules/rc-switch/es/index.js","webpack://platinum/./node_modules/antd/es/switch/style/index.js","webpack://platinum/./node_modules/antd/es/switch/index.js","webpack://platinum/./node_modules/yup/index.esm.js","webpack://platinum/./node_modules/lodash/_hashHas.js","webpack://platinum/./node_modules/dayjs/plugin/minMax.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-terminal.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-html.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sjs.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nginx.js","webpack://platinum/./node_modules/moment/locale/si.js","webpack://platinum/./app/routes/OrgContainer/selectors.js","webpack://platinum/./node_modules/rc-field-form/es/utils/NameMap.js","webpack://platinum/./node_modules/antd/es/tooltip/PurePanel.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-gruvbox.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-basic.js","webpack://platinum/./node_modules/antd/es/color-picker/color.js","webpack://platinum/./node_modules/lodash.debounce/index.js","webpack://platinum/./app/new-components/DLS/OpDivider/OpDivider.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/css.js","webpack://platinum/./node_modules/antd/es/style/motion/move.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormItem/OpFormItem.scss?ae66","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormItem/OpFormItem.tsx","webpack://platinum/./node_modules/antd/es/dropdown/style/status.js","webpack://platinum/./node_modules/antd/es/dropdown/style/index.js","webpack://platinum/./node_modules/antd/es/dropdown/dropdown.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ion.js","webpack://platinum/./app/utils/domains.ts","webpack://platinum/./node_modules/antd/es/grid/col.js","webpack://platinum/./app/new-components/DLS/OpSlider/OpSlider.scss?bcdf","webpack://platinum/./app/new-components/DLS/OpSlider/OpSlider.tsx","webpack://platinum/./app/assets/css/fonts.css","webpack://platinum/./node_modules/@msi-alta/helium-client/lib/scopes.js","webpack://platinum/./node_modules/lodash/_baseHasIn.js","webpack://platinum/./node_modules/lodash/_isKey.js","webpack://platinum/./node_modules/lodash/_getPrototype.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/EditOutlined.js","webpack://platinum/./node_modules/rc-notification/es/Notice.js","webpack://platinum/./node_modules/moment/locale/pa-in.js","webpack://platinum/./node_modules/react-use/esm/misc/parseTimeRanges.js","webpack://platinum/./node_modules/lodash-es/_baseToString.js","webpack://platinum/./node_modules/rc-image/es/context.js","webpack://platinum/./node_modules/rc-image/es/Operations.js","webpack://platinum/./node_modules/rc-image/es/hooks/useImageTransform.js","webpack://platinum/./node_modules/rc-image/es/getFixScaleEleTransPosition.js","webpack://platinum/./node_modules/rc-image/es/hooks/useStatus.js","webpack://platinum/./node_modules/rc-image/es/util.js","webpack://platinum/./node_modules/rc-image/es/hooks/useTouchEvent.js","webpack://platinum/./node_modules/rc-image/es/Preview.js","webpack://platinum/./node_modules/rc-image/es/hooks/useMouseEvent.js","webpack://platinum/./node_modules/rc-image/es/previewConfig.js","webpack://platinum/./node_modules/rc-image/es/common.js","webpack://platinum/./node_modules/rc-image/es/PreviewGroup.js","webpack://platinum/./node_modules/rc-image/es/hooks/useRegisterImage.js","webpack://platinum/./node_modules/rc-image/es/Image.js","webpack://platinum/./node_modules/rc-image/es/hooks/usePreviewItems.js","webpack://platinum/./node_modules/rc-image/es/index.js","webpack://platinum/./node_modules/antd/es/image/style/index.js","webpack://platinum/./node_modules/antd/es/image/PreviewGroup.js","webpack://platinum/./node_modules/antd/es/image/index.js","webpack://platinum/./node_modules/antd/es/theme/themes/default/colorAlgorithm.js","webpack://platinum/./node_modules/moment/locale/zh-mo.js","webpack://platinum/./node_modules/@sentry/core/build/esm/baseclient.js","webpack://platinum/./node_modules/react-use/esm/useHoverDirty.js","webpack://platinum/./node_modules/livekit-client/dist/livekit-client.esm.mjs","webpack://platinum/./node_modules/lodash/_setToString.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/DownOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jsx.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegion.scss","webpack://platinum/./node_modules/@sentry/core/build/esm/feedback.js","webpack://platinum/./node_modules/clsx/dist/clsx.mjs","webpack://platinum/./node_modules/lodash/_arrayMap.js","webpack://platinum/./node_modules/lodash-es/isPlainObject.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/elements/Icon/IconGroup.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/elements/Icon/Icon.js","webpack://platinum/./app/new-components/DLS/OpForm/FormButtons.scss?52fb","webpack://platinum/./app/new-components/DLS/OpForm/FormButtons.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-asciidoc.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ini.js","webpack://platinum/./node_modules/semantic-ui-react/node_modules/clsx/dist/clsx.m.js","webpack://platinum/./node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.esm.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/vhdl.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","webpack://platinum/./node_modules/lodash-es/constant.js","webpack://platinum/./app/assets/favicons-prod/android-chrome-192x192.png","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/typescript.js","webpack://platinum/./node_modules/core-js/internals/function-bind-native.js","webpack://platinum/./app/new-components/DLS/OpTag/OpTag.tsx","webpack://platinum/./node_modules/rc-util/es/Dom/isVisible.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://platinum/./node_modules/@redux-saga/core/dist/redux-saga-effects.esm.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-options.js","webpack://platinum/./node_modules/rc-collapse/es/Collapse.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/razor.js","webpack://platinum/./node_modules/tiny-case/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sql.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-merbivore.js","webpack://platinum/./node_modules/lodash-es/toString.js","webpack://platinum/./node_modules/antd/es/button/index.js","webpack://platinum/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://platinum/./node_modules/screenfull/dist/screenfull.js","webpack://platinum/./node_modules/@ant-design/icons/CloudUploadOutlined.js","webpack://platinum/./node_modules/nano-css/index.js","webpack://platinum/./app/utils/phone.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sass.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/curly.js","webpack://platinum/./node_modules/rc-notification/es/Notifications.js","webpack://platinum/./app/containers/AlertWrapper/AlertWrapper.scss","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","webpack://platinum/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://platinum/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://platinum/./node_modules/rc-slider/es/util.js","webpack://platinum/./node_modules/rc-slider/es/context.js","webpack://platinum/./node_modules/rc-slider/es/Handles/Handle.js","webpack://platinum/./node_modules/rc-slider/es/Handles/index.js","webpack://platinum/./node_modules/rc-slider/es/Marks/Mark.js","webpack://platinum/./node_modules/rc-slider/es/Marks/index.js","webpack://platinum/./node_modules/rc-slider/es/Steps/Dot.js","webpack://platinum/./node_modules/rc-slider/es/Steps/index.js","webpack://platinum/./node_modules/rc-slider/es/Tracks/Track.js","webpack://platinum/./node_modules/rc-slider/es/Tracks/index.js","webpack://platinum/./node_modules/rc-slider/es/hooks/useDrag.js","webpack://platinum/./node_modules/rc-slider/es/index.js","webpack://platinum/./node_modules/rc-slider/es/Slider.js","webpack://platinum/./node_modules/rc-slider/es/hooks/useRange.js","webpack://platinum/./node_modules/rc-slider/es/hooks/useOffset.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-lua.js","webpack://platinum/./node_modules/redux-immutable/dist/utilities/index.js","webpack://platinum/./node_modules/nano-css/addon/vcssom/removeRule.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/r.js","webpack://platinum/./node_modules/core-js/internals/get-method.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","webpack://platinum/./node_modules/moment/locale/ur.js","webpack://platinum/./app/global/slideOuts/actions.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/edifact.js","webpack://platinum/./node_modules/rc-field-form/es/Form.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/fsl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mushcode.js","webpack://platinum/./node_modules/moment/locale/bn.js","webpack://platinum/./node_modules/lodash-es/findIndex.js","webpack://platinum/./node_modules/lodash/_stringToPath.js","webpack://platinum/./node_modules/lodash/_memoizeCapped.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/handlebars.js","webpack://platinum/./node_modules/lodash/stubArray.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-merbivore_soft.js","webpack://platinum/./app/utils/setUnifiedCookie.ts","webpack://platinum/./node_modules/rc-picker/es/locale/en_US.js","webpack://platinum/./node_modules/react-use/esm/useLockBodyScroll.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/ArrowUpOutlined.js","webpack://platinum/./node_modules/lodash/difference.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-robot.js","webpack://platinum/./node_modules/@sentry/core/build/esm/asyncContext/index.js","webpack://platinum/./node_modules/rc-util/es/Dom/findDOMNode.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/smarty.js","webpack://platinum/./app/utils/request.js","webpack://platinum/./app/utils/redirects.js","webpack://platinum/./node_modules/lodash/_listCacheDelete.js","webpack://platinum/./altaLoginApp/components/Marketing/Marketing.scss","webpack://platinum/./node_modules/@sentry/utils/build/esm/instrument/fetch.js","webpack://platinum/./node_modules/react-redux/dist/react-redux.mjs","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-dreamweaver.js","webpack://platinum/./node_modules/rc-motion/es/DomWrapper.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nix.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mediawiki.js","webpack://platinum/./node_modules/antd/es/_util/zindexContext.js","webpack://platinum/./node_modules/fast-deep-equal/react.js","webpack://platinum/./node_modules/loglevel/lib/loglevel.js","webpack://platinum/./app/components/Clickable/Clickable.scss","webpack://platinum/./node_modules/moment/locale/id.js","webpack://platinum/./app/assets/favicons-prod/upc-favicon.ico","webpack://platinum/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://platinum/./node_modules/lodash-es/_baseTimes.js","webpack://platinum/./node_modules/lodash-es/keys.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://platinum/./node_modules/moment/locale/mt.js","webpack://platinum/./node_modules/lodash/_initCloneByTag.js","webpack://platinum/./node_modules/lodash/_baseToString.js","webpack://platinum/./node_modules/antd/es/version/version.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jsoniq.js","webpack://platinum/./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack://platinum/./node_modules/react-use/esm/useLocalStorage.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ejs.js","webpack://platinum/./node_modules/moment/locale/lb.js","webpack://platinum/./node_modules/lodash/_arrayFilter.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","webpack://platinum/./node_modules/lodash/_stackSet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nunjucks.js","webpack://platinum/./node_modules/lodash/isArrayLikeObject.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","webpack://platinum/./node_modules/dayjs/plugin/utc.js","webpack://platinum/./node_modules/lodash-es/_defineProperty.js","webpack://platinum/./app/components/Clickable/Clickable.scss?5f0d","webpack://platinum/./app/components/Clickable/Clickable.js","webpack://platinum/./node_modules/antd/es/theme/util/getAlphaColor.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-lucene.js","webpack://platinum/./node_modules/@rc-component/portal/es/useScrollLocker.js","webpack://platinum/./node_modules/lodash/_getSymbolsIn.js","webpack://platinum/./node_modules/query-string/index.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/Keyframes.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/prisma.js","webpack://platinum/./node_modules/lodash/cloneDeep.js","webpack://platinum/./node_modules/redux-immutable/dist/index.js","webpack://platinum/./node_modules/lodash/_mapCacheGet.js","webpack://platinum/./node_modules/dayjs/plugin/customParseFormat.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-c9search.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/graphqlschema.js","webpack://platinum/./node_modules/@ant-design/icons/QuestionCircleOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-io.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nim.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/textile.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","webpack://platinum/./app/utils/customHooks/useSupportedLanguages.js","webpack://platinum/./node_modules/rc-pagination/es/locale/zh_CN.js","webpack://platinum/./node_modules/rc-pagination/es/Options.js","webpack://platinum/./node_modules/rc-pagination/es/Pager.js","webpack://platinum/./node_modules/rc-pagination/es/Pagination.js","webpack://platinum/./node_modules/antd/es/pagination/Select.js","webpack://platinum/./node_modules/antd/es/pagination/style/index.js","webpack://platinum/./node_modules/antd/es/pagination/style/bordered.js","webpack://platinum/./node_modules/antd/es/pagination/Pagination.js","webpack://platinum/./node_modules/antd/es/pagination/index.js","webpack://platinum/./node_modules/core-js/internals/object-define-properties.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","webpack://platinum/./node_modules/core-js/internals/entry-unbind.js","webpack://platinum/./node_modules/rc-motion/es/CSSMotionList.js","webpack://platinum/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-vala.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csv.js","webpack://platinum/./node_modules/rc-field-form/es/useWatch.js","webpack://platinum/./node_modules/lodash-es/_Symbol.js","webpack://platinum/./node_modules/@ant-design/icons/CaretRightOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/latex.js","webpack://platinum/./node_modules/diff-match-patch/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-vue.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/sdk.js","webpack://platinum/./node_modules/@ant-design/icons/SettingOutlined.js","webpack://platinum/./node_modules/react-ace/lib/diff.js","webpack://platinum/./node_modules/moment/locale/sr-cyrl.js","webpack://platinum/./app/components/Button/helpers.tsx","webpack://platinum/./app/components/Button/ButtonWithoutSuir.scss?6886","webpack://platinum/./app/components/Button/ButtonWithoutSuir.js","webpack://platinum/./app/components/Button/index.tsx","webpack://platinum/./node_modules/lodash/_nativeKeys.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ion.js","webpack://platinum/./node_modules/rc-collapse/es/index.js","webpack://platinum/./node_modules/antd/es/collapse/Collapse.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-sparql.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/UndoOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/tex.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-rhtml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/alda.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-ambiance.js","webpack://platinum/./node_modules/lodash-es/_basePick.js","webpack://platinum/./node_modules/lodash-es/_basePickBy.js","webpack://platinum/./node_modules/lodash-es/flatten.js","webpack://platinum/./node_modules/lodash-es/pick.js","webpack://platinum/./node_modules/lodash-es/_flatRest.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/CloseOutlined.js","webpack://platinum/./node_modules/lodash-es/isString.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/cobol.js","webpack://platinum/./app/assets/fonts/open-sans-v15-latin-600.svg","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/ZoomInOutlined.js","webpack://platinum/./node_modules/rc-util/lib/Dom/contains.js","webpack://platinum/./node_modules/antd/es/space/Item.js","webpack://platinum/./node_modules/moment/locale/he.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-json.js","webpack://platinum/./node_modules/rc-input/es/utils/commonUtils.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/basic.js","webpack://platinum/./node_modules/@babel/runtime/helpers/objectSpread2.js","webpack://platinum/./node_modules/antd/es/theme/interface/presetColors.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/UpOutlined.js","webpack://platinum/./app/components/svgs/SvgWrapper/SvgWrapper.scss?4307","webpack://platinum/./app/components/svgs/SvgWrapper/SvgWrapper.tsx","webpack://platinum/./app/new-components/DLS/OpForm/OpFormContext.ts","webpack://platinum/./node_modules/lodash/_baseIsSet.js","webpack://platinum/./node_modules/rc-util/es/utils/get.js","webpack://platinum/./node_modules/is-plain-obj/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/api.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/elm.js","webpack://platinum/./app/new-components/DLS/OpModal/OpModal.tsx","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-prompt.js","webpack://platinum/./node_modules/@ant-design/icons/ExportOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mysql.js","webpack://platinum/./node_modules/rc-input/es/hooks/useCount.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-settings_menu.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-plsql.js","webpack://platinum/./node_modules/antd/es/grid/style/index.js","webpack://platinum/./node_modules/core-js/internals/shared.js","webpack://platinum/./node_modules/rc-motion/es/interface.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-cirru.js","webpack://platinum/./node_modules/antd/es/select/useIcons.js","webpack://platinum/./app/heliumDictionary.js","webpack://platinum/./node_modules/antd/es/button/button-group.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://platinum/./node_modules/antd/es/config-provider/hooks/useConfig.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/aggregate-errors.js","webpack://platinum/./node_modules/lodash-es/_coreJsData.js","webpack://platinum/./node_modules/lodash-es/_isMasked.js","webpack://platinum/./node_modules/lodash-es/_baseIsNative.js","webpack://platinum/./node_modules/lodash-es/_getNative.js","webpack://platinum/./node_modules/lodash-es/_getValue.js","webpack://platinum/./node_modules/antd/es/form/hooks/useDebounce.js","webpack://platinum/./node_modules/antd/es/form/style/explain.js","webpack://platinum/./node_modules/antd/es/form/style/index.js","webpack://platinum/./node_modules/antd/es/form/ErrorList.js","webpack://platinum/./node_modules/antd/es/form/util.js","webpack://platinum/./node_modules/antd/es/form/hooks/useForm.js","webpack://platinum/./node_modules/antd/es/form/Form.js","webpack://platinum/./node_modules/antd/es/form/hooks/useFormItemStatus.js","webpack://platinum/./node_modules/antd/es/form/style/fallbackCmp.js","webpack://platinum/./node_modules/antd/es/form/FormItemInput.js","webpack://platinum/./node_modules/antd/es/form/FormItemLabel.js","webpack://platinum/./node_modules/antd/es/form/FormItem/StatusProvider.js","webpack://platinum/./node_modules/antd/es/form/FormItem/ItemHolder.js","webpack://platinum/./node_modules/antd/es/form/FormItem/index.js","webpack://platinum/./node_modules/antd/es/form/hooks/useChildren.js","webpack://platinum/./node_modules/antd/es/form/hooks/useFrameState.js","webpack://platinum/./node_modules/antd/es/form/hooks/useItemRef.js","webpack://platinum/./node_modules/antd/es/form/FormList.js","webpack://platinum/./node_modules/antd/es/form/index.js","webpack://platinum/./node_modules/antd/es/form/hooks/useFormInstance.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/float.js","webpack://platinum/./node_modules/lodash/_arrayIncludesWith.js","webpack://platinum/./node_modules/lodash-es/_setToArray.js","webpack://platinum/./node_modules/react-fast-compare/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/sessiontiming.js","webpack://platinum/./node_modules/lodash/_isIndex.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/qml.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/functiontostring.js","webpack://platinum/./node_modules/@rc-component/color-picker/es/components/Transform.js","webpack://platinum/./app/containers/OpVideoPlayer/components/BigPlayButton.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-velocity.js","webpack://platinum/./node_modules/core-js/internals/uid.js","webpack://platinum/./node_modules/react-ace/lib/split.js","webpack://platinum/./node_modules/antd/es/popover/PurePanel.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","webpack://platinum/./node_modules/lodash/_initCloneObject.js","webpack://platinum/./node_modules/antd/es/color-picker/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-drools.js","webpack://platinum/./node_modules/moment/locale/fy.js","webpack://platinum/./app/assets/fonts/Graphik-Medium.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-astro.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sac.js","webpack://platinum/./node_modules/lodash/debounce.js","webpack://platinum/./node_modules/antd/es/button/buttonHelpers.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-gruvbox_dark_hard.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/callSuper.js","webpack://platinum/./app/containers/OpVideoPlayer/components/VideoPlayer.scss","webpack://platinum/./node_modules/moment/locale/sw.js","webpack://platinum/./node_modules/@ant-design/colors/es/generate.js","webpack://platinum/./node_modules/@ant-design/colors/es/presets.js","webpack://platinum/./node_modules/moment/locale/ar-dz.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-solarized_dark.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/html_ruby.js","webpack://platinum/./node_modules/lodash-es/includes.js","webpack://platinum/./node_modules/lodash/_baseMergeDeep.js","webpack://platinum/./node_modules/rc-resize-observer/es/SingleObserver/index.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/debug-build.js","webpack://platinum/./node_modules/core-js/internals/descriptors.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-linking.js","webpack://platinum/./node_modules/moment/locale/bs.js","webpack://platinum/./app/global/formWrapper/reducer.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-scad.js","webpack://platinum/./node_modules/core-js/internals/export.js","webpack://platinum/./node_modules/@ant-design/icons/LoadingOutlined.js","webpack://platinum/./app/new-components/DLS/OpSpin/OpSpin.scss?be31","webpack://platinum/./app/new-components/DLS/OpSpin/OpSpin.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csound_score.js","webpack://platinum/./node_modules/moment/locale/pt-br.js","webpack://platinum/./node_modules/rc-input/es/BaseInput.js","webpack://platinum/./node_modules/rc-input/es/Input.js","webpack://platinum/./node_modules/rc-input/es/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-clouds.js?b417","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-d.js","webpack://platinum/./node_modules/lodash/_copySymbolsIn.js","webpack://platinum/./node_modules/core-js/internals/to-object.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-ocaml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/abc.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/json.js","webpack://platinum/./node_modules/exenv/index.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","webpack://platinum/./node_modules/antd/es/badge/style/index.js","webpack://platinum/./node_modules/antd/es/badge/style/ribbon.js","webpack://platinum/./node_modules/antd/es/badge/SingleNumber.js","webpack://platinum/./node_modules/antd/es/badge/ScrollNumber.js","webpack://platinum/./node_modules/antd/es/badge/index.js","webpack://platinum/./node_modules/antd/es/badge/Ribbon.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/ZoomOutOutlined.js","webpack://platinum/./node_modules/rc-picker/es/generate/dayjs.js","webpack://platinum/./node_modules/lodash-es/isObjectLike.js","webpack://platinum/./node_modules/moment/locale/en-au.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/diff.js","webpack://platinum/./node_modules/antd/es/collapse/CollapsePanel.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-iplastic.js","webpack://platinum/./node_modules/moment/locale/bm.js","webpack://platinum/./node_modules/lodash/_coreJsData.js","webpack://platinum/./node_modules/lodash/_DataView.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-php.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/bibtex.js","webpack://platinum/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-slim.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-command_bar.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/components/AntdIcon.js","webpack://platinum/./node_modules/rc-resize-observer/es/utils/observerUtil.js","webpack://platinum/./node_modules/lodash-es/isSymbol.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-eiffel.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-dockerfile.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/errors.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/makefile.js","webpack://platinum/./node_modules/lodash-es/_cacheHas.js","webpack://platinum/./node_modules/react-use/esm/useUnmount.js","webpack://platinum/./node_modules/antd/es/style/compact-item-vertical.js","webpack://platinum/./app/utils/isShowingSitePartitioningItemsSaga.ts","webpack://platinum/./node_modules/core-js/internals/shared-key.js","webpack://platinum/./node_modules/@ant-design/icons/lib/components/twoTonePrimaryColor.js","webpack://platinum/./node_modules/lodash/_hashGet.js","webpack://platinum/./node_modules/@sentry-internal/feedback/build/npm/esm/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-yaml.js","webpack://platinum/./app/new-components/DLS/OpButton/OpButton.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-apache_conf.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/spanOnScope.js","webpack://platinum/./node_modules/lodash-es/_baseProperty.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-scrypt.js","webpack://platinum/./node_modules/lodash-es/_hasUnicode.js","webpack://platinum/./node_modules/moment/locale/cv.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-golang.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-coffee.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/dedupe.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-graphqlschema.js","webpack://platinum/./node_modules/antd/es/tooltip/style/index.js","webpack://platinum/./node_modules/antd/es/space/Compact.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/type.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/instrument/globalError.js","webpack://platinum/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-makefile.js","webpack://platinum/./app/new-components/DLS/OpInfoTooltip/OpInfoTooltip.scss","webpack://platinum/./node_modules/moment/locale/ky.js","webpack://platinum/./app/global/cloudKey/selectors.js","webpack://platinum/./node_modules/core-js/internals/fails.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/prql.js","webpack://platinum/./node_modules/connected-react-router/lib/structure/plain/getIn.js","webpack://platinum/./app/new-components/DLS/OpDivider/OpDivider.scss?9360","webpack://platinum/./app/new-components/DLS/OpDivider/OpDivider.tsx","webpack://platinum/./app/new-components/DLS/OpInfo/OpInfo.scss?c0fc","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/DownOutlined.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/addons/Portal/PortalInner.js","webpack://platinum/./node_modules/semantic-ui-react/dist/es/addons/Portal/Portal.js","webpack://platinum/./node_modules/react-i18next/dist/es/unescape.js","webpack://platinum/./node_modules/lodash/_createBaseFor.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","webpack://platinum/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genRadius.js","webpack://platinum/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://platinum/./node_modules/lodash/_baseMerge.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","webpack://platinum/./node_modules/lodash/_nodeUtil.js","webpack://platinum/./node_modules/moment/locale/tg.js","webpack://platinum/./node_modules/dayjs/plugin/timezone.js","webpack://platinum/./node_modules/antd/es/dropdown/dropdown-button.js","webpack://platinum/./node_modules/antd/es/dropdown/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/utils.js","webpack://platinum/./node_modules/rc-picker/es/utils/uiUtil.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/context.js","webpack://platinum/./node_modules/rc-picker/es/PickerTrigger/index.js","webpack://platinum/./node_modules/rc-picker/es/utils/miscUtil.js","webpack://platinum/./node_modules/rc-picker/es/PickerTrigger/util.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useCellRender.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useFieldsInvalidate.js","webpack://platinum/./node_modules/rc-picker/es/hooks/useLocale.js","webpack://platinum/./node_modules/rc-picker/es/hooks/useTimeConfig.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/hooks/useClearIcon.js","webpack://platinum/./node_modules/rc-picker/es/utils/dateUtil.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useFilledProps.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useFieldFormat.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useInputReadOnly.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useDisabledBoundary.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useInvalidate.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useOpen.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useDelayState.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/usePickerRef.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/usePresets.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useLockEffect.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useRangeActive.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useRangePickerValue.js","webpack://platinum/./node_modules/rc-picker/es/hooks/useSyncState.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useRangeValue.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useShowNow.js","webpack://platinum/./node_modules/rc-picker/es/hooks/useTimeInfo.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/util.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Popup/Footer.js","webpack://platinum/./node_modules/rc-picker/es/hooks/useToggleDates.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/context.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/PanelBody.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/PanelHeader.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/DatePanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/useScrollTo.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/TimeColumn.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/TimePanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/DateTimePanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/WeekPanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/MonthPanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/QuarterPanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/YearPanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerPanel/DecadePanel/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Popup/PopupPanel.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Popup/PresetPanel.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Popup/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/hooks/useInputProps.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/hooks/useRootProps.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/Icon.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/MaskFormat.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/Input.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/util.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/RangeSelector.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/RangePicker.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/hooks/useRangeDisabledDate.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/SingleSelector/MultipleDates.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/Selector/SingleSelector/index.js","webpack://platinum/./node_modules/rc-picker/es/PickerInput/SinglePicker.js","webpack://platinum/./node_modules/rc-picker/es/index.js","webpack://platinum/./node_modules/antd/es/_util/wave/index.js","webpack://platinum/./node_modules/antd/es/space/index.js","webpack://platinum/./node_modules/lodash/_nativeKeysIn.js","webpack://platinum/./node_modules/lodash/_stackDelete.js","webpack://platinum/./node_modules/@rc-component/trigger/es/Popup/index.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/CloseOutlined.js","webpack://platinum/./node_modules/lodash-es/values.js","webpack://platinum/./node_modules/lodash-es/_baseValues.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/io.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nsis.js","webpack://platinum/./node_modules/moment/moment.js","webpack://platinum/./node_modules/@sentry/core/build/esm/carrier.js","webpack://platinum/./node_modules/antd/es/_util/getAllowClear.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/RightOutlined.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/node.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/userfeedback.js","webpack://platinum/./node_modules/@rc-component/trigger/es/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/pgsql.js","webpack://platinum/./node_modules/rc-field-form/es/utils/asyncUtil.js","webpack://platinum/./node_modules/lodash-es/_baseReduce.js","webpack://platinum/./node_modules/lodash-es/reduce.js","webpack://platinum/external var \"{\\\"__GIT_VERSION__\\\":\\\"7193b3741\\\",\\\"__GIT_COMMITHASH__\\\":\\\"7193b3741920b4ae5dbf64d6ed460284d09a038d\\\",\\\"__BUILD_DATE__\\\":\\\"2025-03-28T16:49:51.260Z\\\",\\\"NOTE\\\":\\\"Preferably use disabled version of flag so that the flag doesn't need to be added to the other configs. In this manner selectFeatureFlag('IS_XXX_DISABLED') will only be truthy if it is explicitly added to a config and falsy if it is not.\\\",\\\"USE_PROTON_LOGS\\\":true,\\\"SCHEDULED_REPORTS_DISABLED\\\":false,\\\"BATCH_MQTT_PROCESSING\\\":true,\\\"ENABLE_CUSTOM_DASHBOARDS\\\":true,\\\"PRESENCE_HIDDEN\\\":true,\\\"CUSTOM_DASHBOARD_DEVELOPER_MODE\\\":false,\\\"ENABLE_OCCUPANCY_DASHBOARD\\\":true,\\\"ENABLE_MOBILE_SSO_SWITCH\\\":true,\\\"ENABLE_DUPLICATE_PIN_CODES_TOGGLE\\\":false,\\\"ENTERPRISE_VPN_FOR_VIDEO_READERS_IS_DISABLED\\\":true,\\\"OCCUPANCY_MANAGEMENT_HIDDEN\\\":false,\\\"SHOW_VISUAL_ACTIVITY_REPORT\\\":true,\\\"COOKIE_SETTINGS\\\":{\\\"path\\\":\\\"/\\\",\\\"secure\\\":true,\\\"sameSite\\\":\\\"lax\\\"},\\\"INIT_ADD_TO_APPLE_WALLET_SETTINGS\\\":{\\\"partnerId\\\":\\\"ORG-6ab1e4a1-7899-430e-bde9-88f0ef8e9be1\\\",\\\"domain\\\":\\\"https://apple-pay.apple.com\\\"},\\\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\\\":false,\\\"SHOW_GRAPHICAL_INTERFACE\\\":false,\\\"DONT_FORCE_TERMS_SIGNATURE\\\":false,\\\"CONTENTFUL_API_URL\\\":\\\"https://mw.openpath.com\\\",\\\"ENV_SUFFIX\\\":\\\"\\\",\\\"ENABLED_IDENTITY_PROVIDER_TYPES\\\":[\\\"gsuite\\\",\\\"msazuread\\\",\\\"okta\\\",\\\"onelogin\\\",\\\"workday\\\"],\\\"ENABLED_EMAIL_ALERT_TYPES\\\":[\\\"acuStatus\\\",\\\"billing\\\",\\\"contactSensor.stateChanged\\\",\\\"entry.ajar\\\",\\\"entry.apb.breach\\\",\\\"entry.authenticated.failed\\\",\\\"entry.authorized.failed\\\",\\\"entry.forcedOpen\\\",\\\"entry.unlocked.failed\\\",\\\"genericInput.eolStateChanged,rex.eolStateChanged,contactSensor.eolStateChanged\\\",\\\"genericInput.stateChanged\\\",\\\"idp\\\",\\\"lockdownPlan.triggered,lockdownPlan.reverted\\\",\\\"reader.faultStateChanged\\\",\\\"relay.faultStateChanged\\\",\\\"rex.stateChanged\\\",\\\"tamperDetector.stateChanged\\\",\\\"entry.apb.occupancyLimitExceeded\\\",\\\"gateway.disconnected,deviceBle.CommLoss\\\",\\\"deviceBattery.low,deviceBattery.critical\\\",\\\"deviceAuditBuffer.overrun,deviceDatabase.corrupted\\\",\\\"deviceCover.tampered,deviceBle.tampered,deviceMagnetic.tampered,deviceReader.tampered\\\",\\\"opvideoIntercom.ringButton.pressed\\\",\\\"opvideoMotionDetection.motion.detected\\\",\\\"opvideoAudioDetection.audio.thresholdExceeded\\\",\\\"opvideoDevice.gSensor.thresholdExceeded\\\",\\\"subscription.rateLimit.triggered\\\",\\\"alarm.openLimit.approaching\\\",\\\"alarm.openLimit.reached\\\"],\\\"UNUSED_EMAIL_ALERT_TYPES_PLACEHOLDER\\\":[\\\"reader.faultStateChanged\\\",\\\"relay.faultStateChanged\\\"],\\\"ENABLED_USER_ROLE_SCOPES\\\":[\\\"o{orgId}-account:r\\\",\\\"o{orgId}-account:w\\\",\\\"o{orgId}-admin:r\\\",\\\"o{orgId}-admin:w\\\",\\\"o{orgId}-alarmActions:w\\\",\\\"o{orgId}-alarmConfigurations:r\\\",\\\"o{orgId}-alarmConfigurations:w\\\",\\\"o{orgId}-alertSettings:r\\\",\\\"o{orgId}-alertSettings:w\\\",\\\"o{orgId}-badgePrinting:r\\\",\\\"o{orgId}-badgePrinting:w\\\",\\\"o{orgId}-building:r\\\",\\\"o{orgId}-building:w\\\",\\\"o{orgId}-configurations:r\\\",\\\"o{orgId}-configurations:w\\\",\\\"o{orgId}-credential:r\\\",\\\"o{orgId}-credential:w\\\",\\\"o{orgId}-dash:r\\\",\\\"o{orgId}-dash:w\\\",\\\"o{orgId}-dashActivity:r\\\",\\\"o{orgId}-dashActivity:w\\\",\\\"o{orgId}-dashAlarm:r\\\",\\\"o{orgId}-dashAlarm:w\\\",\\\"o{orgId}-dashEntry:r\\\",\\\"o{orgId}-dashEntry:w\\\",\\\"o{orgId}-entryAccessAudit:r\\\",\\\"o{orgId}-entryAccessAudit:w\\\",\\\"o{orgId}-entryState:r\\\",\\\"o{orgId}-entryState:w\\\",\\\"o{orgId}-erpParentCenter:w\\\",\\\"o{orgId}-erpParentStore:w\\\",\\\"o{orgId}-hw:r\\\",\\\"o{orgId}-hw:w\\\",\\\"o{orgId}-integrations:r\\\",\\\"o{orgId}-integrations:w\\\",\\\"o{orgId}-ldp:r\\\",\\\"o{orgId}-ldp:w\\\",\\\"o{orgId}-mobileAppSettings:r\\\",\\\"o{orgId}-mobileAppSettings:w\\\",\\\"o{orgId}-musterReport:r\\\",\\\"o{orgId}-musterReport:w\\\",\\\"o{orgId}-occupancyReport:r\\\",\\\"o{orgId}-occupancyReport:w\\\",\\\"o{orgId}-opvideoDevice:r\\\",\\\"o{orgId}-opvideoDevice:w\\\",\\\"o{orgId}-opvideoIntercomStartSession:w\\\",\\\"o{orgId}-opvideoIntercom:r\\\",\\\"o{orgId}-opvideoIntercom:w\\\",\\\"o{orgId}-outboundWebhooks:r\\\",\\\"o{orgId}-outboundWebhooks:w\\\",\\\"o{orgId}-parcelMgmtParcels:r\\\",\\\"o{orgId}-parcelMgmtParcels:w\\\",\\\"o{orgId}-portalAudit:r\\\",\\\"o{orgId}-portalAudit:w\\\",\\\"o{orgId}-presence:r\\\",\\\"o{orgId}-presence:w\\\",\\\"o{orgId}-quickStart:r\\\",\\\"o{orgId}-quickStart:w\\\",\\\"o{orgId}-role:r\\\",\\\"o{orgId}-role:w\\\",\\\"o{orgId}-rpt:r\\\",\\\"o{orgId}-rpt:w\\\",\\\"o{orgId}-rptAlarm:r\\\",\\\"o{orgId}-rptAlarm:w\\\",\\\"o{orgId}-rptDownload:r\\\",\\\"o{orgId}-rptGeneral:r\\\",\\\"o{orgId}-rptGeneral:w\\\",\\\"o{orgId}-site:r\\\",\\\"o{orgId}-site:w\\\",\\\"o{orgId}-siteGeneral:r\\\",\\\"o{orgId}-siteGeneral:w\\\",\\\"o{orgId}-user:r\\\",\\\"o{orgId}-user:w\\\",\\\"o{orgId}-videoProviderLive:w\\\",\\\"o{orgId}-videoProviderPlayback:w\\\",\\\"o{orgId}-exportClips:w\\\",\\\"s-o:r\\\",\\\"s-o:w\\\"],\\\"ENABLED_IDENTITY_ROLE_SCOPES\\\":[\\\"i:r\\\",\\\"i:w\\\",\\\"o:r\\\",\\\"o:w\\\",\\\"o-basic:r\\\",\\\"o-basic:w\\\",\\\"o-acu:r\\\",\\\"o-acu:w\\\",\\\"o-support:r\\\",\\\"o-support:w\\\",\\\"o-completeHookAction:w\\\",\\\"pc:r\\\",\\\"pc:w\\\"],\\\"ENABLED_USER_CREDENTIAL_TYPES\\\":[\\\"mobile\\\",\\\"cloudKey\\\",\\\"cardMifareCsn\\\",\\\"cardOpenpathDesfireEv1\\\",\\\"card\\\",\\\"pincode\\\",\\\"fobAllegion\\\"],\\\"ENABLED_TRIGGER_METHOD_CODES\\\":[\\\"card:card:one-factor\\\",\\\"card:card:override\\\",\\\"cardMifareCsn:card:one-factor\\\",\\\"cardMifareCsn:card:override\\\",\\\"cardOpenpathDesfireEv1:card:one-factor\\\",\\\"cardOpenpathDesfireEv1:card:override\\\",\\\"cloudKey:cloud:one-factor\\\",\\\"cloudKey:cloud:override\\\",\\\"mobile:ble:auto-one-factor\\\",\\\"mobile:ble:auto-two-factor\\\",\\\"mobile:ble:one-factor\\\",\\\"mobile:ble:override\\\",\\\"mobile:ble:touch-one-factor\\\",\\\"mobile:ble:touch-two-factor\\\",\\\"mobile:ble:two-factor\\\",\\\"mobile:bleprox-cloud:auto-one-factor\\\",\\\"mobile:bleprox-cloud:auto-two-factor\\\",\\\"mobile:bleprox-cloud:one-factor\\\",\\\"mobile:bleprox-cloud:override\\\",\\\"mobile:bleprox-cloud:touch-one-factor\\\",\\\"mobile:bleprox-cloud:touch-two-factor\\\",\\\"mobile:bleprox-cloud:two-factor\\\",\\\"mobile:bleprox-wifi:auto-one-factor\\\",\\\"mobile:bleprox-wifi:auto-two-factor\\\",\\\"mobile:bleprox-wifi:one-factor\\\",\\\"mobile:bleprox-wifi:override\\\",\\\"mobile:bleprox-wifi:touch-one-factor\\\",\\\"mobile:bleprox-wifi:touch-two-factor\\\",\\\"mobile:bleprox-wifi:two-factor\\\",\\\"mobile:cloud:one-factor\\\",\\\"mobile:cloud:override\\\",\\\"mobile:cloud:two-factor\\\",\\\"mobile:geoprox-cloud:one-factor\\\",\\\"mobile:geoprox-cloud:override\\\",\\\"mobile:geoprox-cloud:touch-one-factor\\\",\\\"mobile:geoprox-cloud:touch-two-factor\\\",\\\"mobile:geoprox-cloud:two-factor\\\",\\\"mobile:geoprox-wifi:one-factor\\\",\\\"mobile:geoprox-wifi:override\\\",\\\"mobile:geoprox-wifi:touch-one-factor\\\",\\\"mobile:geoprox-wifi:touch-two-factor\\\",\\\"mobile:geoprox-wifi:two-factor\\\",\\\"mobile:nfc-secure:one-factor\\\",\\\"mobile:wifi:one-factor\\\",\\\"mobile:wifi:override\\\",\\\"mobile:wifi:two-factor\\\",\\\"pincode:card:one-factor\\\",\\\"pincode:card:override\\\"],\\\"ENABLED_ACU_MODEL_IDS\\\":[1,4,5,6,7,9,11,12,13,14,15,16,17,18,19,20,21,22],\\\"ENABLED_DASHBOARD_WIDGET_IDS\\\":[2,3,4,5,6,7,8,9,10,11,12],\\\"ENABLED_VIDEO_PROVIDER_TYPE_IDS\\\":[0,1,5],\\\"ENABLED_CLOUD_GATEWAY_DEVICE_TYPES\\\":[\\\"Openpath\\\",\\\"Schlage\\\"],\\\"ENABLED_FEATURE_CODES\\\":[\\\"administrators\\\",\\\"advancedRulesEngine\\\",\\\"allegionNdebLeb\\\",\\\"allegionNdebLebNonOp\\\",\\\"apiIntegration\\\",\\\"apiIntegrationCS\\\",\\\"azureIdentityProvider\\\",\\\"badgePrinting\\\",\\\"basicRulesEngine\\\",\\\"basicTechSupport\\\",\\\"customAgreements\\\",\\\"customDashboards\\\",\\\"customFields\\\",\\\"directorySync\\\",\\\"elevatorIoBoards\\\",\\\"enterpriseTechSupport\\\",\\\"granularPermissions\\\",\\\"groupImportFilter\\\",\\\"gsuiteIdentityProvider\\\",\\\"guestPass\\\",\\\"lifetimeWarranty\\\",\\\"lockdown\\\",\\\"merakiVms\\\",\\\"occupancyManagement\\\",\\\"oktaIdentityProvider\\\",\\\"oneloginIdentityProvider\\\",\\\"premiumTechSupport\\\",\\\"remoteUnlock\\\",\\\"scheduledReports\\\",\\\"singleSignOn\\\",\\\"standardServiceLevelAgreement\\\",\\\"subOrgs\\\",\\\"syncAudit\\\",\\\"syncNotification\\\",\\\"userManagementUsers\\\",\\\"users\\\",\\\"vms\\\",\\\"workdayIdentityProvider\\\",\\\"musterReport\\\",\\\"occupancyReport\\\",\\\"samlJit\\\",\\\"samlSso\\\"],\\\"SENTRY\\\":{\\\"enabled\\\":true,\\\"dsn\\\":\\\"https://2e0be81be9e84fa2bc7d22fed64b9622@o130424.ingest.sentry.io/5342581\\\"},\\\"LOCIZE_PROJECTID\\\":\\\"b7740ce6-46d1-42b0-af48-701bd49dc830\\\",\\\"LOCIZE_APIKEY\\\":\\\"873297ab-6ea4-4e52-9557-28f702fec44b\\\",\\\"LOCIZE_REFLNG\\\":\\\"en\\\",\\\"LOCIZE_VERSION\\\":\\\"production\\\",\\\"PORTAL_API_URL\\\":\\\"https://helium.prod.openpath.com\\\",\\\"PORTAL_VANITY_URL\\\":\\\"https://api.openpath.com\\\",\\\"OXYGEN_API_URL\\\":\\\"wss://websocket.oxygen.prod.alta.avigilon.com/v1\\\",\\\"ENV\\\":\\\"prod\\\",\\\"OPAL_ENV\\\":\\\"prod\\\",\\\"orgSpecificConfig\\\":{\\\"302\\\":{\\\"ORG_NAME\\\":\\\"OPHQ\\\",\\\"CUSTOM_DASHBOARD_DEVELOPER_MODE\\\":true,\\\"PRESENCE_HIDDEN\\\":false,\\\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\\\":true},\\\"462\\\":{\\\"ORG_NAME\\\":\\\"Openpath Indy\\\",\\\"CUSTOM_DASHBOARD_DEVELOPER_MODE\\\":true},\\\"1480\\\":{\\\"ORG_NAME\\\":\\\"PWC\\\",\\\"USE_PROTON_LOGS\\\":false},\\\"3685\\\":{\\\"ORG_NAME\\\":\\\"Openpath system test\\\",\\\"ENTERPRISE_VPN_FOR_VIDEO_READERS_IS_DISABLED\\\":false},\\\"5577\\\":{\\\"ORG_NAME\\\":\\\"Match Group Inc\\\",\\\"USE_PROTON_LOGS\\\":false},\\\"5940\\\":{\\\"PRESENCE_HIDDEN\\\":false},\\\"7071\\\":{\\\"PRESENCE_HIDDEN\\\":false},\\\"7867\\\":{\\\"USE_PROTON_LOGS\\\":false},\\\"8858\\\":{\\\"USE_PROTON_LOGS\\\":false},\\\"9695\\\":{\\\"USE_PROTON_LOGS\\\":false},\\\"10897\\\":{\\\"USE_PROTON_LOGS\\\":false},\\\"21997\\\":{\\\"ORG_NAME\\\":\\\"Lake Zurich SD95\\\"},\\\"26962\\\":{\\\"ORG_NAME\\\":\\\"Spooky Corp (Premium)\\\"},\\\"30301\\\":{\\\"ORG_NAME\\\":\\\"Francisco Dev Test Org\\\"},\\\"44071\\\":{\\\"ORG_NAME\\\":\\\"Westwood Regional School District\\\",\\\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\\\":true}},\\\"ORG_IDS_THAT_SEE_REX_CHANGE_MESSAGE\\\":[10064,10094,10102,10122,10174,10188,1019,10198,10222,10241,10256,10265,10269,10295,10314,10325,10326,1037,10397,10418,10438,10442,10443,10481,10483,10491,10509,10523,10527,10561,10584,10595,10596,10662,10663,10708,10720,10721,10771,10774,10803,10818,10822,10834,10844,10890,1090,10921,10937,10939,10951,10958,10974,10994,11011,11066,11104,11113,11134,1114,11151,11159,11218,11229,11234,11238,11305,11314,11346,11353,11665,11674,11698,11791,11845,11866,11947,11980,1206,12133,12145,12184,12199,12334,12343,1249,1256,1258,12607,12712,12721,12754,12820,12943,12946,12952,12988,12991,1323,13360,13408,13480,13495,13516,13522,13621,13627,13726,13813,13831,13897,1409,1411,14110,14131,14185,14260,14287,14317,14362,14425,1447,14497,14593,14611,14653,14920,15037,15067,15130,15133,15439,1544,15514,15724,15733,15871,15949,15955,16156,16177,16219,16267,16282,16327,16333,16375,16441,16471,1656,16609,16669,16711,16825,16912,16915,16924,1709,17269,17377,1739,17458,17545,17587,17653,17836,17854,1790,1797,18130,1819,18319,18358,18458,18544,18610,18634,18658,18724,18829,1884,18910,18943,18949,19024,19054,19087,19234,19369,19408,19465,19528,19660,1993,19972,19981,2018,20233,20236,20257,2027,20311,20395,20413,20431,20518,20524,20773,20815,20866,20884,20899,20905,20965,20980,2099,21016,21025,21055,21058,21088,21097,21211,2124,21250,21427,21445,21469,21499,21529,21616,2167,21673,2168,2173,21757,21874,21889,21997,22078,22372,22393,22429,22465,22483,22570,22726,22747,22870,22891,22927,2295,23002,23008,23014,23059,23116,23203,23242,23266,23320,23344,23353,23371,23389,23392,23449,2347,23491,23536,23548,23554,23596,23632,23710,23746,23761,23770,23800,23818,23845,23887,23998,24025,2405,24052,24103,24193,24226,24262,2428,24289,24307,2442,24439,24493,24496,24520,24532,24550,2456,24595,24637,24655,24682,24718,24790,24862,24958,24982,25000,25072,25159,25264,25306,2536,25447,25504,25525,25570,25588,25630,25723,25738,25750,25765,25792,25864,25885,25948,26020,26023,26083,26125,26137,26152,26170,26245,26263,2628,26302,26347,26368,26491,26599,26761,26833,26854,26896,26914,27160,27211,27256,27259,27331,27466,27478,27490,27559,27571,27577,27607,27922,2847,2943,2968,2973,302,3042,3095,3105,311,3139,3211,3252,3253,3256,3333,3342,3343,3430,3452,3454,3534,3689,3690,3757,3767,3785,3832,3894,3927,4145,4328,4336,4571,4582,462,4741,4802,4815,4866,4969,4985,5007,5008,5082,524,5247,5291,5396,544,5484,5586,5661,5666,5782,5824,5832,594,5950,6028,6117,6126,6214,6452,6610,6656,6688,6703,6705,6711,6712,6768,6830,6947,6982,6995,701,7027,7058,7090,7164,7187,720,7200,7213,7218,7265,7341,7344,7351,7401,7490,7544,7557,7601,7622,7771,7818,7827,7846,7848,7868,7869,7870,7872,7873,7874,7885,7980,7995,8022,803,8041,8124,8130,8140,8151,8154,822,8237,8249,8256,8257,8273,8279,8303,8306,8310,8361,8371,8378,8395,8431,8478,8489,8491,8515,8535,856,8587,8593,8612,8621,8651,866,8675,8687,8738,8756,8768,8773,8793,881,8828,8873,8910,896,8960,9032,9034,9040,9131,929,9324,9356,9368,9404,9415,9443,9449,956,9567,9575,9577,9584,9601,9616,9628,9675,9689,9768,9841,9849,9855,9885,9930,9939,9975,9980,9986],\\\"ORG_IDS_THAT_SEE_APP_SWITCHER_BANNER\\\":[],\\\"OPVIDEO_DEVICE_ID_WITH_LIVEKIT_PROTOCOL_ENABLED\\\":[\\\"All devices have been opted in to LiveKit, this list will be removed\\\"],\\\"DMP_URL\\\":\\\"https://dmp.alta.avigilon.com\\\",\\\"FORBIDDEN_SUPPORT_EMAILS\\\":[\\\"NOTE: This list is maintained in Platinum and Helium. Ensure both are updated when making changes.\\\",\\\"accessfeedback@motorolasolutions.com\\\",\\\"altaaccesssupport@motorolasolutions.com\\\",\\\"general@openpath.com\\\",\\\"help@openpath.com\\\",\\\"sales@openpath.com\\\",\\\"security@openpath.com\\\",\\\"setup@openpath.com\\\",\\\"support@openpath.com\\\"],\\\"IS_VIDEO_STATE_MACHINE_ENABLED\\\":false,\\\"LPR_URL_PREFIX\\\":\\\"https://helium.prod.openpath.com/external/lpr\\\",\\\"ORG_IDS_WITH_INTERCOM_LANGUAGE_SELECTOR_ENABLED\\\":[35737,8659,1952,38125,33184,302,16942,8858],\\\"INTERCOM_AVAILABLE_LANGUAGES\\\":{\\\"en-us\\\":\\\"English (North America)\\\",\\\"es-mx\\\":\\\"Spanish (Mexico)\\\",\\\"es\\\":\\\"Spanish (Spain)\\\",\\\"it\\\":\\\"Italian (Italy)\\\",\\\"fr\\\":\\\"French (France)\\\",\\\"pl\\\":\\\"Polish (Poland)\\\",\\\"de\\\":\\\"German (Germany)\\\"},\\\"PARTNER_CENTER_APP_URL\\\":\\\"https://partner.alta.avigilon.com\\\",\\\"MAPS_APP_URL\\\":\\\"https://prod.apps.alta.avigilon.com\\\",\\\"MAPS_DEFAULT_VERSION\\\":\\\"v1.0.0\\\",\\\"MAPS_SHOULD_CHECK_AWARE_FOR_VERSION\\\":true,\\\"configUrl\\\":\\\"/dynamicConfig.json\\\",\\\"versionUrl\\\":\\\"/version.json\\\"}\"","webpack://platinum/./node_modules/moment/locale/sd.js","webpack://platinum/./node_modules/react-universal-interface/lib/render.js","webpack://platinum/./node_modules/rc-select/es/TransBtn.js","webpack://platinum/./node_modules/rc-select/es/hooks/useAllowClear.js","webpack://platinum/./node_modules/rc-select/es/hooks/useBaseProps.js","webpack://platinum/./node_modules/rc-select/es/hooks/useLock.js","webpack://platinum/./node_modules/rc-select/es/Selector/Input.js","webpack://platinum/./node_modules/rc-select/es/utils/commonUtil.js","webpack://platinum/./node_modules/rc-select/es/Selector/MultipleSelector.js","webpack://platinum/./node_modules/rc-select/es/hooks/useLayoutEffect.js","webpack://platinum/./node_modules/rc-select/es/Selector/SingleSelector.js","webpack://platinum/./node_modules/rc-select/es/Selector/index.js","webpack://platinum/./node_modules/rc-select/es/utils/keyUtil.js","webpack://platinum/./node_modules/rc-select/es/SelectTrigger.js","webpack://platinum/./node_modules/rc-select/es/utils/valueUtil.js","webpack://platinum/./node_modules/rc-select/es/SelectContext.js","webpack://platinum/./node_modules/rc-select/es/BaseSelect/Polite.js","webpack://platinum/./node_modules/rc-select/es/BaseSelect/index.js","webpack://platinum/./node_modules/rc-select/es/hooks/useDelayReset.js","webpack://platinum/./node_modules/rc-select/es/hooks/useSelectTriggerControl.js","webpack://platinum/./node_modules/rc-select/es/OptGroup.js","webpack://platinum/./node_modules/rc-select/es/Option.js","webpack://platinum/./node_modules/rc-select/es/OptionList.js","webpack://platinum/./node_modules/rc-select/es/utils/platformUtil.js","webpack://platinum/./node_modules/rc-select/es/hooks/useFilterOptions.js","webpack://platinum/./node_modules/rc-select/es/utils/legacyUtil.js","webpack://platinum/./node_modules/rc-select/es/hooks/useOptions.js","webpack://platinum/./node_modules/rc-select/es/hooks/useRefFunc.js","webpack://platinum/./node_modules/rc-select/es/Select.js","webpack://platinum/./node_modules/rc-select/es/hooks/useCache.js","webpack://platinum/./node_modules/rc-select/es/index.js","webpack://platinum/./node_modules/react-use/esm/misc/util.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-actionscript.js","webpack://platinum/./node_modules/lodash/_getSymbols.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-raku.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-autohotkey.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/config.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/refCount.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/Immediate.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/AsyncSubject.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/asap.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/queue.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/empty.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/args.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isPromise.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/Notification.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isIterable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/from.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/map.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/concat.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/startWith.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/throwError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/of.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/SequenceError.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/operators/timeout.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/observable/never.js","webpack://platinum/./node_modules/rxjs/dist/esm5/internal/util/argsOrArgArray.js","webpack://platinum/./node_modules/@livekit/components-core/dist/index.mjs","webpack://platinum/./node_modules/usehooks-ts/dist/index.js","webpack://platinum/./node_modules/@livekit/components-react/dist/index.mjs","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-typescript.js","webpack://platinum/./node_modules/moment/locale/ar-ps.js","webpack://platinum/./app/routes/MasterReleaseNotesPage/masterReleaseNotes.js","webpack://platinum/./node_modules/@ant-design/icons/BellOutlined.js","webpack://platinum/./node_modules/@sentry/core/build/esm/constants.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-visualforce.js","webpack://platinum/./node_modules/lodash-es/toFinite.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/statistic.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/CloudUploadOutlined.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/metadata.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/syncpromise.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/haskell_cabal.js","webpack://platinum/./node_modules/rc-notification/es/NotificationProvider.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-turtle.js","webpack://platinum/./node_modules/lodash/_getMapData.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-tomorrow.js","webpack://platinum/./node_modules/compute-scroll-into-view/dist/index.js","webpack://platinum/./node_modules/scroll-into-view-if-needed/dist/index.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sh.js","webpack://platinum/./node_modules/core-js/modules/es.array.find-last-index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-tsv.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormDataFetchTransfer/OpFormDataFetchTransfer.scss","webpack://platinum/./node_modules/react/cjs/react.production.min.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/html_elixir.js","webpack://platinum/./altaLoginApp/components/LanguageSelectorNotAuthenticated/LanguageSelectorNotAuthenticated.scss","webpack://platinum/./node_modules/antd/es/empty/empty.js","webpack://platinum/./node_modules/antd/es/empty/simple.js","webpack://platinum/./node_modules/antd/es/empty/style/index.js","webpack://platinum/./node_modules/antd/es/empty/index.js","webpack://platinum/./app/assets/img/avigilon-alta-logo-dark.svg","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/haml.js","webpack://platinum/./node_modules/lodash/_mapCacheDelete.js","webpack://platinum/./node_modules/lodash-es/toInteger.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-erlang.js","webpack://platinum/./node_modules/@sentry/core/build/esm/metrics/envelope.js","webpack://platinum/./node_modules/antd/es/locale/useLocale.js","webpack://platinum/./node_modules/antd/es/theme/themes/default/colors.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","webpack://platinum/./app/utils/customHooks/useOpMutation.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-edifact.js","webpack://platinum/./node_modules/core-js/internals/is-object.js","webpack://platinum/./app/new-components/DLS/OpText/OpText.scss","webpack://platinum/./app/components/svgs/TrashSvg/index.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/enum.js","webpack://platinum/./node_modules/antd/es/select/useShowArrow.js","webpack://platinum/./node_modules/moment/locale/nb.js","webpack://platinum/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://platinum/./node_modules/moment/locale/ja.js","webpack://platinum/./node_modules/moment/locale/ro.js","webpack://platinum/./node_modules/moment/locale/ar-ma.js","webpack://platinum/./node_modules/core-js/internals/object-define-property.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-tomorrow_night.js","webpack://platinum/./node_modules/@ctrl/tinycolor/dist/module/index.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js","webpack://platinum/./node_modules/reselect/dist/reselect.mjs","webpack://platinum/./app/utils/customHooks/useDebouncedState.ts","webpack://platinum/./node_modules/moment/locale/hr.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/baggage.js","webpack://platinum/./node_modules/lodash/_baseIntersection.js","webpack://platinum/./node_modules/lodash/_baseUnary.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/memo.js","webpack://platinum/./node_modules/antd/es/theme/themes/shared/genColorMapToken.js","webpack://platinum/./node_modules/lodash/_baseIsArguments.js","webpack://platinum/./node_modules/antd/es/popover/index.js","webpack://platinum/./node_modules/rc-tooltip/es/placements.js","webpack://platinum/./altaLoginApp/helpers/getUpcUrl.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-java.js","webpack://platinum/./node_modules/react-use/esm/useHover.js","webpack://platinum/./node_modules/lodash/_stackHas.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-diff.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","webpack://platinum/./app/components/svgs/DownloadSvg/index.js","webpack://platinum/./node_modules/lodash/_castPath.js","webpack://platinum/./app/global/orgFeatures/selectors.js","webpack://platinum/./node_modules/antd/es/tooltip/index.js","webpack://platinum/./node_modules/react-use/esm/useSpeech.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/path.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/SwapOutlined.js","webpack://platinum/./app/importFavicons.js","webpack://platinum/./node_modules/moment/locale/eo.js","webpack://platinum/./app/constants/featureCodes.ts","webpack://platinum/./node_modules/connected-react-router/lib/structure/immutable/getIn.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","webpack://platinum/./node_modules/@sentry/core/build/esm/eventProcessors.js","webpack://platinum/./node_modules/@ant-design/icons/LeftOutlined.js","webpack://platinum/./node_modules/antd/es/color-picker/context.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorClear.js","webpack://platinum/./node_modules/antd/es/color-picker/interface.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorSteppers.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorAlphaInput.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorHexInput.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorHsbInput.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorRgbInput.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorInput.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorSlider.js","webpack://platinum/./node_modules/antd/es/color-picker/components/PanelPicker/GradientColorBar.js","webpack://platinum/./node_modules/antd/es/color-picker/components/PanelPicker/index.js","webpack://platinum/./node_modules/antd/es/color-picker/components/PanelPresets.js","webpack://platinum/./node_modules/antd/es/color-picker/ColorPickerPanel.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorTrigger.js","webpack://platinum/./node_modules/antd/es/color-picker/style/color-block.js","webpack://platinum/./node_modules/antd/es/color-picker/style/input.js","webpack://platinum/./node_modules/antd/es/color-picker/style/picker.js","webpack://platinum/./node_modules/antd/es/color-picker/style/presets.js","webpack://platinum/./node_modules/antd/es/color-picker/style/slider.js","webpack://platinum/./node_modules/antd/es/color-picker/style/index.js","webpack://platinum/./node_modules/antd/es/color-picker/ColorPicker.js","webpack://platinum/./node_modules/antd/es/color-picker/hooks/useModeColor.js","webpack://platinum/./node_modules/antd/es/color-picker/index.js","webpack://platinum/./node_modules/react-ace/lib/ace.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/jsp.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/vue.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-redshift.js","webpack://platinum/./node_modules/json-lexer/index.js","webpack://platinum/./node_modules/lodash.isequalwith/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/lsl.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/isBrowser.js","webpack://platinum/./node_modules/rc-field-form/es/utils/validateUtil.js","webpack://platinum/./app/components/svgs/PencilSvg/index.js","webpack://platinum/./node_modules/core-js/internals/environment-v8-version.js","webpack://platinum/./altaLoginApp/components/LoginSSOAltaIdForm/LoginSSOAltaIdForm.scss","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/SearchOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-elastic_tabstops_lite.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/assembly_arm32.js","webpack://platinum/./node_modules/lodash-es/isBuffer.js","webpack://platinum/./node_modules/lodash-es/stubFalse.js","webpack://platinum/./node_modules/connected-react-router/lib/reducer.js","webpack://platinum/./node_modules/moment/locale/mi.js","webpack://platinum/./node_modules/moment/locale/ar-ly.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/astro.js","webpack://platinum/./node_modules/moment/locale/nl-be.js","webpack://platinum/./node_modules/connected-react-router/lib/selectors.js","webpack://platinum/./node_modules/antd/es/input/style/token.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csound_score.js","webpack://platinum/./node_modules/antd/es/alert/ErrorBoundary.js","webpack://platinum/./app/utils/customHooks/useAddQueryParams.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-smarty.js","webpack://platinum/./node_modules/antd/es/config-provider/SizeContext.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/scss.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","webpack://platinum/./node_modules/react-use/esm/useVideo.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/nasal.js","webpack://platinum/./app/containers/OpVideoPlayer/components/BigPlayButton.scss?c488","webpack://platinum/./app/containers/OpVideoPlayer/components/BigPlayButton.tsx","webpack://platinum/./app/containers/OpVideoPlayer/components/CurrentTime.js","webpack://platinum/./app/containers/OpVideoPlayer/components/FullscreenButton.js","webpack://platinum/./app/containers/OpVideoPlayer/components/LiveButton.js","webpack://platinum/./app/containers/OpVideoPlayer/components/MicrophoneToggleButton.js","webpack://platinum/./app/containers/OpVideoPlayer/components/PlayButton.js","webpack://platinum/./app/containers/OpVideoPlayer/components/RelativeTime.js","webpack://platinum/./app/containers/OpVideoPlayer/components/SeekBar.js","webpack://platinum/./app/containers/OpVideoPlayer/components/TimeDisplay.js","webpack://platinum/./app/containers/OpVideoPlayer/components/UpperControls.js","webpack://platinum/./app/containers/OpVideoPlayer/components/VideoPlayer.scss?9b88","webpack://platinum/./app/containers/OpVideoPlayer/components/VideoPlayer.js","webpack://platinum/./app/containers/OpVideoPlayer/components/VolumeButton.js","webpack://platinum/./app/containers/OpVideoPlayer/components/WebRtcButton.tsx","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/debug-build.js","webpack://platinum/./node_modules/immutable/dist/immutable.es.js","webpack://platinum/./node_modules/react-use/esm/useCustomCompareEffect.js","webpack://platinum/./node_modules/lodash/_getAllKeys.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-groovy.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/forth.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-github_light_default.js","webpack://platinum/./node_modules/@rc-component/trigger/es/hooks/useWatch.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/propagationContext.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/drools.js","webpack://platinum/./node_modules/antd/es/color-picker/components/ColorPresets.js","webpack://platinum/./node_modules/moment/locale/de-ch.js","webpack://platinum/./app/routes/AlarmDashboardPage/AlarmEditPage/sagas.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-scss.js","webpack://platinum/./node_modules/lodash/_baseUniq.js","webpack://platinum/./node_modules/moment/locale/th.js","webpack://platinum/./node_modules/antd/es/style/compact-item.js","webpack://platinum/./node_modules/rc-notification/es/hooks/useStack.js","webpack://platinum/./node_modules/moment/locale/cs.js","webpack://platinum/./node_modules/lodash-es/without.js","webpack://platinum/./node_modules/@sentry/core/build/esm/currentScopes.js","webpack://platinum/./node_modules/lodash/get.js","webpack://platinum/./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack://platinum/./app/utils/checkAuthIsUPCPartnerOrg.ts","webpack://platinum/./node_modules/lodash-es/_assignValue.js","webpack://platinum/./node_modules/lodash-es/_baseAssignValue.js","webpack://platinum/./node_modules/lodash-es/_baseSet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-base.js","webpack://platinum/./node_modules/lodash/_baseIsEqual.js","webpack://platinum/./node_modules/moment/locale/dv.js","webpack://platinum/./altaLoginApp/helpers/setWindowLocation.ts","webpack://platinum/./node_modules/@rc-component/trigger/es/index.js","webpack://platinum/./node_modules/antd/es/config-provider/context.js","webpack://platinum/./app/routes/AlarmDashboardPage/AlarmEditPage/reducer.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/hooks/useCompatibleInsertionEffect.js","webpack://platinum/./node_modules/rc-util/lib/Dom/shadow.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","webpack://platinum/./node_modules/lodash/_hashDelete.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-haml.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/apex.js","webpack://platinum/./node_modules/lodash/isArrayLike.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/browser.js","webpack://platinum/./node_modules/moment/locale/en-ie.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/feedbackSync.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/string.js","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ResetPasswordRequest.scss","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/util.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/methods/native.js","webpack://platinum/./node_modules/oblivious-set/dist/esm/src/index.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/options.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/method-chooser.js","webpack://platinum/./node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js","webpack://platinum/./node_modules/unload/dist/es/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-modelist.js","webpack://platinum/./node_modules/lodash/isArguments.js","webpack://platinum/./node_modules/core-js/internals/to-primitive.js","webpack://platinum/./node_modules/antd/es/config-provider/cssVariables.js","webpack://platinum/./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordForm.scss","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://platinum/./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://platinum/./app/new-components/DLS/OpSlider/OpSlider.scss","webpack://platinum/./node_modules/lodash-es/get.js","webpack://platinum/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://platinum/./node_modules/lodash/_toKey.js","webpack://platinum/./node_modules/moment/locale/de.js","webpack://platinum/ assets\\/favicons-prod\\/(.*).(svg%7Cpng%7Cico%7Cxml%7Cjson%7Cwebmanifest)$","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/pascal.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csound_orchestra.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","webpack://platinum/./app/new-components/svgs/SparkIcon.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-javascript.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/integer.js","webpack://platinum/./node_modules/moment/locale/yo.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/VideoCameraOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sass.js","webpack://platinum/./node_modules/core-js/internals/environment-user-agent.js","webpack://platinum/./app/global/accessToken/constants.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/batchfile.js","webpack://platinum/./node_modules/lodash/_setToArray.js","webpack://platinum/./node_modules/lodash-es/_baseIsNaN.js","webpack://platinum/./node_modules/lodash-es/_baseIndexOf.js","webpack://platinum/./node_modules/lodash-es/_strictIndexOf.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csound_document.js","webpack://platinum/./node_modules/rc-motion/es/context.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://platinum/./node_modules/@ant-design/icons/SearchOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-kotlin.js","webpack://platinum/./node_modules/lodash/_baseFor.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-zig.js","webpack://platinum/./app/routes/AuthenticatedContainer/actions.js","webpack://platinum/./node_modules/antd/es/slider/Context.js","webpack://platinum/./node_modules/react-use/esm/useLocation.js","webpack://platinum/./node_modules/lodash-es/_arrayIncludesWith.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/SaveOutlined.js","webpack://platinum/./app/components/svgs/PhoneFilledSvg/PhoneFilledSvg.tsx","webpack://platinum/./node_modules/connected-react-router/immutable.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-cloud_editor.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/helpers.js","webpack://platinum/./node_modules/lodash/_apply.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-tomorrow_night_bright.js","webpack://platinum/./node_modules/moment/locale/ms-my.js","webpack://platinum/./app/utils/awareClient.ts","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/slim.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/soy_template.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-curly.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/lucene.js","webpack://platinum/./node_modules/antd/es/menu/OverrideContext.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/CloseOutlined.js","webpack://platinum/./node_modules/lodash-es/_isPrototype.js","webpack://platinum/./node_modules/lodash/differenceBy.js","webpack://platinum/./node_modules/react-universal-interface/lib/createEnhancer.js","webpack://platinum/./node_modules/@ant-design/icons/WarningOutlined.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-vhdl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-flix.js","webpack://platinum/./app/new-components/DLS/OpInfoTooltip/OpInfoTooltip.scss?cf1a","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","webpack://platinum/./node_modules/antd/es/config-provider/hooks/useSize.js","webpack://platinum/./node_modules/@sentry/react/build/esm/profiler.js","webpack://platinum/./node_modules/react-use/esm/misc/isDeepEqual.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/django.js","webpack://platinum/./node_modules/react-use/esm/useMount.js","webpack://platinum/./app/containers/EntryUnlockButton.js","webpack://platinum/./app/new-components/LiveKitVideoPlayer/constants.ts","webpack://platinum/./app/new-components/LiveKitVideoPlayer/hooks/useDisconnectCallTimeout.ts","webpack://platinum/./app/new-components/LiveKitVideoPlayer/components/LiveKitCallManager.tsx","webpack://platinum/./app/new-components/LiveKitVideoPlayer/LiveKitVideoPlayer.tsx","webpack://platinum/./app/containers/OpVideoPlayer/helpers/useOpVideoPlayerData.js","webpack://platinum/./app/containers/OpVideoPlayer/helpers/useHls.js","webpack://platinum/./app/containers/OpVideoPlayer/components/VideoDownloadButton.js","webpack://platinum/./app/new-components/NewOpVideoPlayer/NewOpVideoPlayer.tsx","webpack://platinum/./app/containers/OpVideoPlayer/helpers/useIntercomCallButtonClick.js","webpack://platinum/./app/containers/OpVideoPlayer/helpers/useUpperControlsContent.js","webpack://platinum/./app/containers/OpVideoPlayer/helpers/useVideoLoadingEvents.js","webpack://platinum/./app/containers/OpVideoPlayer/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/spanUtils.js","webpack://platinum/./node_modules/@sentry/core/build/esm/breadcrumbs.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-perl.js","webpack://platinum/./node_modules/lodash.isequal/index.js","webpack://platinum/./node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/praat.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-assembly_x86.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-language_tools.js","webpack://platinum/./node_modules/lodash/_getValue.js","webpack://platinum/./node_modules/xstate/dev/dist/xstate-dev.esm.js","webpack://platinum/./node_modules/xstate/dist/raise-c17ec2bc.esm.js","webpack://platinum/./node_modules/xstate/actors/dist/xstate-actors.esm.js","webpack://platinum/./node_modules/xstate/dist/log-3d9d72a9.esm.js","webpack://platinum/./node_modules/xstate/dist/xstate.esm.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/rule/whitespace.js","webpack://platinum/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/profiling/startProfileForSpan.js","webpack://platinum/./node_modules/moment/locale/te.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-text.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/red.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-dracula.js","webpack://platinum/./node_modules/antd/es/notification/style/pure-panel.js","webpack://platinum/./node_modules/antd/es/notification/PurePanel.js","webpack://platinum/./node_modules/lodash/_safeGet.js","webpack://platinum/./node_modules/json-cst/dist/tokens.js","webpack://platinum/./node_modules/json-cst/dist/cst.js","webpack://platinum/./node_modules/jsonpos/dist/parse.js","webpack://platinum/./node_modules/jsonpos/dist/position.js","webpack://platinum/./node_modules/jsonpos/dist/location.js","webpack://platinum/./node_modules/jsonpos/dist/path.js","webpack://platinum/./node_modules/moment/locale/uk.js","webpack://platinum/./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack://platinum/./node_modules/@msi-alta/opvideo-state-machine/node_modules/@xstate/react/dist/xstate-react.esm.js","webpack://platinum/./node_modules/moment/locale/bn-bd.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/mel.js","webpack://platinum/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://platinum/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://platinum/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://platinum/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://platinum/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://platinum/./node_modules/value-equal/esm/value-equal.js","webpack://platinum/./node_modules/history/esm/history.js","webpack://platinum/./app/components/Button/ButtonWithoutSuir.scss","webpack://platinum/./node_modules/core-js/internals/array-includes.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/method.js","webpack://platinum/./node_modules/stylis/src/Utility.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/date.js","webpack://platinum/./node_modules/lodash/_createAssigner.js","webpack://platinum/./node_modules/lodash/_copyObject.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-abc.js","webpack://platinum/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","webpack://platinum/./app/new-components/OpPage/OpPage.scss?ad63","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-github_dark.js","webpack://platinum/./app/new-components/DLS/OpInputNumber/OpInputNumber.scss","webpack://platinum/./node_modules/lodash-es/_baseIsArguments.js","webpack://platinum/./node_modules/lodash-es/isArguments.js","webpack://platinum/./node_modules/lodash-es/_isIndex.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/EyeOutlined.js","webpack://platinum/./node_modules/lodash-es/_baseFindIndex.js","webpack://platinum/./node_modules/moment/locale/kk.js","webpack://platinum/./node_modules/redux-immutable/dist/utilities/validateNextState.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/groovy.js","webpack://platinum/./node_modules/moment/locale/en-ca.js","webpack://platinum/./node_modules/moment/locale/be.js","webpack://platinum/./node_modules/lodash-es/identity.js","webpack://platinum/./node_modules/antd/es/spin/Indicator/Progress.js","webpack://platinum/./node_modules/antd/es/spin/Indicator/Looper.js","webpack://platinum/./node_modules/antd/es/spin/Indicator/index.js","webpack://platinum/./node_modules/antd/es/spin/style/index.js","webpack://platinum/./node_modules/antd/es/spin/usePercent.js","webpack://platinum/./node_modules/antd/es/spin/index.js","webpack://platinum/./node_modules/@sentry/react/build/esm/debug-build.js","webpack://platinum/./node_modules/moment/locale/mk.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","webpack://platinum/./node_modules/lodash-es/_toKey.js","webpack://platinum/./node_modules/@sentry/core/build/esm/tracing/idleSpan.js","webpack://platinum/./node_modules/moment/locale/bo.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/pig.js","webpack://platinum/./node_modules/core-js/internals/inspect-source.js","webpack://platinum/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://platinum/./app/containers/OpVideoPlayer/constants.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/LoadingOutlined.js","webpack://platinum/./node_modules/antd/es/config-provider/defaultRenderEmpty.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/scad.js","webpack://platinum/./node_modules/lodash/_hashSet.js","webpack://platinum/./app/new-components/DLS/OpDataFetchSelect/helpers.tsx","webpack://platinum/./app/new-components/DLS/OpDataFetchSelect/constants.ts","webpack://platinum/./app/new-components/DLS/OpDataFetchSelect/OpDataFetchSelect.tsx","webpack://platinum/./node_modules/antd/es/grid/RowContext.js","webpack://platinum/./node_modules/lodash/_isIterateeCall.js","webpack://platinum/./node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js","webpack://platinum/./app/new-components/DLS/OpTimePicker/OpTimePicker.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/dot.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/integrations/contextlines.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/worldwide.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-swift.js","webpack://platinum/./node_modules/@ant-design/icons/lib/icons/RightOutlined.js","webpack://platinum/./node_modules/core-js/internals/define-global-property.js","webpack://platinum/./node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","webpack://platinum/./node_modules/antd/es/_util/reactNode.js","webpack://platinum/./node_modules/moment/locale/sv.js","webpack://platinum/./app/utils/ensurePayloadAndQuery.ts","webpack://platinum/./node_modules/@sentry/utils/build/esm/supports.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-code_lens.js","webpack://platinum/./node_modules/antd/es/modal/components/NormalCancelBtn.js","webpack://platinum/./node_modules/antd/es/modal/components/NormalOkBtn.js","webpack://platinum/./node_modules/antd/es/modal/shared.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/index.js","webpack://platinum/./app/new-components/DLS/OpRangePicker/OpRangePicker.scss","webpack://platinum/./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack://platinum/./app/assets/favicons-prod/android-chrome-512x512.png","webpack://platinum/./app/routes/AppContainer/constants.js","webpack://platinum/./node_modules/moment/locale/sl.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-lua.js","webpack://platinum/./node_modules/dayjs/plugin/weekday.js","webpack://platinum/./node_modules/core-js/internals/indexed-object.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/dart.js","webpack://platinum/./app/utils/customHooks/useIsRestrictedBySiteSpecificRole.ts","webpack://platinum/./node_modules/lodash/uniqBy.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/space.js","webpack://platinum/./node_modules/antd/es/theme/themes/seed.js","webpack://platinum/./node_modules/lodash/_stackClear.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-nunjucks.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-python.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-spellcheck.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/SaveOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/text.js","webpack://platinum/./node_modules/lodash/_baseTrim.js","webpack://platinum/./node_modules/moment/locale/nn.js","webpack://platinum/./node_modules/moment/locale/ss.js","webpack://platinum/./node_modules/rc-field-form/es/useForm.js","webpack://platinum/./node_modules/moment/locale/en-gb.js","webpack://platinum/./node_modules/react-router/esm/react-router.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/sqlserver.js","webpack://platinum/./node_modules/lodash/isArray.js","webpack://platinum/./node_modules/core-js/internals/to-property-key.js","webpack://platinum/./node_modules/moment/locale/uz.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/abap.js","webpack://platinum/./node_modules/antd/es/_util/ActionButton.js","webpack://platinum/./node_modules/react-useinterval/dist/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/fsharp.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://platinum/./node_modules/core-js/internals/object-keys-internal.js","webpack://platinum/./node_modules/@rc-component/portal/es/mock.js","webpack://platinum/./app/new-components/DLS/OpForm/FormButtons.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-jexl.js","webpack://platinum/./node_modules/lodash/isEmpty.js","webpack://platinum/./node_modules/lodash-es/_overRest.js","webpack://platinum/./node_modules/antd/es/theme/util/useResetIconStyle.js","webpack://platinum/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://platinum/./node_modules/antd/node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack://platinum/./node_modules/rc-collapse/es/PanelContent.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-mel.js","webpack://platinum/./node_modules/@ant-design/cssinjs/es/util/css-variables.js","webpack://platinum/./node_modules/lodash-es/_baseGet.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-razor.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/lua.js","webpack://platinum/./node_modules/@sentry/browser/build/npm/esm/tracing/request.js","webpack://platinum/./app/components/svgs/P1Svg/index.js","webpack://platinum/./app/components/svgs/P2Svg/index.js","webpack://platinum/./app/components/svgs/P3Svg/index.js","webpack://platinum/./app/components/svgs/P4Svg/index.js","webpack://platinum/./app/components/svgs/P5Svg/index.js","webpack://platinum/./app/containers/AlertWrapper/helpers.tsx","webpack://platinum/./app/containers/AlertWrapper/components/ClearAllAlertsButton.scss?1187","webpack://platinum/./app/containers/AlertWrapper/components/ClearAllAlertsButton.tsx","webpack://platinum/./app/containers/AlertWrapper/AlertWrapper.scss?6e37","webpack://platinum/./app/containers/AlertWrapper/AlertWrapperWithoutSuir.tsx","webpack://platinum/./app/containers/AlertWrapper/index.tsx","webpack://platinum/./node_modules/rc-util/es/warning.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-svg.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/csv.js","webpack://platinum/./node_modules/core-js/internals/function-call.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/index.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/hjson.js","webpack://platinum/./node_modules/core-js/internals/object-keys.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-twig.js","webpack://platinum/./node_modules/antd/es/config-provider/MotionWrapper.js","webpack://platinum/./app/routes/constants.js","webpack://platinum/./node_modules/moment/locale/uz-latn.js","webpack://platinum/./node_modules/lodash/_cloneRegExp.js","webpack://platinum/./node_modules/react-use/esm/factory/createHTMLMediaHook.js","webpack://platinum/./app/new-components/DLS/OpInfoTooltip/OpInfoTooltip.tsx","webpack://platinum/./node_modules/lodash/_isKeyable.js","webpack://platinum/./node_modules/dayjs/dayjs.min.js","webpack://platinum/./app/global/billing/constants.js","webpack://platinum/./node_modules/react-use/esm/useSetState.js","webpack://platinum/./node_modules/antd/es/notification/index.js","webpack://platinum/./node_modules/lodash-es/_arrayPush.js","webpack://platinum/./node_modules/@ant-design/fast-color/es/FastColor.js","webpack://platinum/./node_modules/moment/locale/gl.js","webpack://platinum/./node_modules/core-js/internals/well-known-symbol.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/debug.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-applescript.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","webpack://platinum/./app/new-components/DLS/OpDatePicker/OpDatePicker.scss","webpack://platinum/./node_modules/antd/es/button/style/group.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/LockOutlined.js","webpack://platinum/./node_modules/rc-util/lib/Dom/dynamicCSS.js","webpack://platinum/./node_modules/lodash/_castArrayLikeObject.js","webpack://platinum/./node_modules/lodash/_nativeCreate.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/elixir.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/visualforce.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-coldfusion.js","webpack://platinum/./node_modules/lodash/_baseFlatten.js","webpack://platinum/./node_modules/lodash/_arrayEach.js","webpack://platinum/./node_modules/lodash/_baseDifference.js","webpack://platinum/./node_modules/@rc-component/async-validator/es/validator/type.js","webpack://platinum/./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack://platinum/./node_modules/redux-immutable/dist/combineReducers.js","webpack://platinum/./node_modules/moment/locale/tr.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/ext-themelist.js","webpack://platinum/./node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-lisp.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-csharp.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/stacktrace.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/applescript.js","webpack://platinum/./node_modules/lodash/_baseIsEqualDeep.js","webpack://platinum/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://platinum/./node_modules/antd/es/message/index.js","webpack://platinum/./app/containers/AlertWrapper/components/ClearAllAlertsButton.scss","webpack://platinum/./node_modules/moment/locale/it.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/buildPolyfills/_optionalChain.js","webpack://platinum/./node_modules/lodash/_baseKeys.js","webpack://platinum/./node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","webpack://platinum/./node_modules/lodash-es/_assocIndexOf.js","webpack://platinum/./node_modules/lodash-es/_listCacheDelete.js","webpack://platinum/./node_modules/lodash-es/_ListCache.js","webpack://platinum/./node_modules/lodash-es/_listCacheClear.js","webpack://platinum/./node_modules/lodash-es/_listCacheGet.js","webpack://platinum/./node_modules/lodash-es/_listCacheHas.js","webpack://platinum/./node_modules/lodash-es/_listCacheSet.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormTextButton/OpFormTextButton.scss","webpack://platinum/./node_modules/@sentry/react/build/esm/reactrouterv6.js","webpack://platinum/./node_modules/antd/es/form/hooks/useVariants.js","webpack://platinum/./app/new-components/DLS/OpForm/formComponents/OpFormLink/OpFormLink.scss","webpack://platinum/./app/components/svgs/PhoneExternalSvg.tsx","webpack://platinum/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/mode-elixir.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/odin.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/properties.js","webpack://platinum/./app/global/features/constants.js","webpack://platinum/./app/new-components/DLS/OpTagInput/OpTagInput.scss","webpack://platinum/./node_modules/rc-util/es/Dom/css.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/severity.js","webpack://platinum/./node_modules/@ant-design/icons-svg/lib/asn/PlusOutlined.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/kotlin.js","webpack://platinum/./node_modules/core-js/actual/array/find-last-index.js","webpack://platinum/./app/new-components/DLS/OpCheckbox/OpCheckbox.scss","webpack://platinum/./node_modules/ace-builds/src-noconflict/snippets/ocaml.js","webpack://platinum/./node_modules/core-js/internals/is-pure.js","webpack://platinum/./app/containers/OmniSelect/constants.js","webpack://platinum/./node_modules/moment/locale/tzm-latn.js","webpack://platinum/./node_modules/lodash-es/isNil.js","webpack://platinum/./node_modules/ace-builds/src-noconflict/theme-one_dark.js","webpack://platinum/./node_modules/moment/locale/ku.js","webpack://platinum/./node_modules/@sentry/core/build/esm/integrations/captureconsole.js","webpack://platinum/./app/new-components/DLS/OpText/OpText.scss?63bf","webpack://platinum/./app/new-components/DLS/OpText/OpText.tsx","webpack://platinum/./node_modules/ace-builds/src-noconflict/worker-xquery.js","webpack://platinum/./app/assets/fonts/Graphik-RegularItalic.svg","webpack://platinum/./node_modules/antd/es/message/style/index.js","webpack://platinum/./node_modules/@sentry/utils/build/esm/misc.js","webpack://platinum/webpack/bootstrap","webpack://platinum/webpack/runtime/amd define","webpack://platinum/webpack/runtime/compat get default export","webpack://platinum/webpack/runtime/define property getters","webpack://platinum/webpack/runtime/ensure chunk","webpack://platinum/webpack/runtime/get javascript chunk filename","webpack://platinum/webpack/runtime/global","webpack://platinum/webpack/runtime/hasOwnProperty shorthand","webpack://platinum/webpack/runtime/make namespace object","webpack://platinum/webpack/runtime/node module decorator","webpack://platinum/webpack/runtime/publicPath","webpack://platinum/webpack/runtime/jsonp chunk loading","webpack://platinum/webpack/runtime/nonce","webpack://platinum/./app/op-themes.ts","webpack://platinum/./app/assets/css/fonts.css?0de1","webpack://platinum/./app/assets/scss/base/_typography.scss?6c3b","webpack://platinum/./app/assets/scss/base/_overrides.scss?54d7","webpack://platinum/./app/assets/scss/base/_root.scss?6cde","webpack://platinum/./app/assets/scss/base/_normalize.scss?869f","webpack://platinum/./altaLoginApp/index.tsx"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"platinum:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var Symbol = require('./_Symbol');\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\nmodule.exports = getRawTag;\n","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n }\n return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n if (reducerKeys.length === 0) {\n return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n }\n if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","function deferred() {\n var def = {};\n def.promise = new Promise(function (resolve, reject) {\n def.resolve = resolve;\n def.reject = reject;\n });\n return def;\n}\nfunction arrayOfDeferred(length) {\n var arr = [];\n\n for (var i = 0; i < length; i++) {\n arr.push(deferred());\n }\n\n return arr;\n}\n\nexport default deferred;\nexport { arrayOfDeferred };\n","import { CHANNEL_END_TYPE, MULTICAST, MATCH, SAGA_ACTION, CANCEL, SELF_CANCELLATION, TERMINATE, TASK, TASK_CANCEL, IO } from '@redux-saga/symbols';\nexport { CANCEL, SAGA_LOCATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { string as string$1, array as array$1, stringableFunc, func, symbol as symbol$1, buffer, notUndef, promise, iterator, undef, object, channel as channel$1 } from '@redux-saga/is';\nimport { k as kTrue, e as expanding, c as check, o as once, r as remove, n as none, i as internalErr, T as TAKE, P as PUT, A as ALL, R as RACE, C as CALL, a as CPS, F as FORK, J as JOIN, b as CANCEL$1, S as SELECT, d as ACTION_CHANNEL, f as CANCELLED$1, g as FLUSH, G as GET_CONTEXT, h as SET_CONTEXT, j as getMetaInfo, l as createAllStyleChildCallbacks, m as createEmptyArray, p as assignWithSymbols, q as makeIterator, s as shouldComplete, t as noop, u as flatMap, v as getLocation, w as createSetContextWarning, x as asyncIteratorSymbol, y as shouldCancel, z as shouldTerminate, B as compose, D as logError, E as wrapSagaDispatch, H as identity } from './io-22ea0cf9.js';\nexport { I as buffers, K as detach } from './io-22ea0cf9.js';\nimport deferred from '@redux-saga/deferred';\nimport '@redux-saga/delay-p';\n\nvar queue = [];\n/**\n Variable to hold a counting semaphore\n - Incrementing adds a lock and puts the scheduler in a `suspended` state (if it's not\n already suspended)\n - Decrementing releases a lock. Zero locks puts the scheduler in a `released` state. This\n triggers flushing the queued tasks.\n**/\n\nvar semaphore = 0;\n/**\n Executes a task 'atomically'. Tasks scheduled during this execution will be queued\n and flushed after this task has finished (assuming the scheduler endup in a released\n state).\n**/\n\nfunction exec(task) {\n try {\n suspend();\n task();\n } finally {\n release();\n }\n}\n/**\n Executes or queues a task depending on the state of the scheduler (`suspended` or `released`)\n**/\n\n\nfunction asap(task) {\n queue.push(task);\n\n if (!semaphore) {\n suspend();\n flush();\n }\n}\n/**\n * Puts the scheduler in a `suspended` state and executes a task immediately.\n */\n\nfunction immediately(task) {\n try {\n suspend();\n return task();\n } finally {\n flush();\n }\n}\n/**\n Puts the scheduler in a `suspended` state. Scheduled tasks will be queued until the\n scheduler is released.\n**/\n\nfunction suspend() {\n semaphore++;\n}\n/**\n Puts the scheduler in a `released` state.\n**/\n\n\nfunction release() {\n semaphore--;\n}\n/**\n Releases the current lock. Executes all queued tasks if the scheduler is in the released state.\n**/\n\n\nfunction flush() {\n release();\n var task;\n\n while (!semaphore && (task = queue.shift()) !== undefined) {\n exec(task);\n }\n}\n\nvar array = function array(patterns) {\n return function (input) {\n return patterns.some(function (p) {\n return matcher(p)(input);\n });\n };\n};\nvar predicate = function predicate(_predicate) {\n return function (input) {\n return _predicate(input);\n };\n};\nvar string = function string(pattern) {\n return function (input) {\n return input.type === String(pattern);\n };\n};\nvar symbol = function symbol(pattern) {\n return function (input) {\n return input.type === pattern;\n };\n};\nvar wildcard = function wildcard() {\n return kTrue;\n};\nfunction matcher(pattern) {\n // prettier-ignore\n var matcherCreator = pattern === '*' ? wildcard : string$1(pattern) ? string : array$1(pattern) ? array : stringableFunc(pattern) ? string : func(pattern) ? predicate : symbol$1(pattern) ? symbol : null;\n\n if (matcherCreator === null) {\n throw new Error(\"invalid pattern: \" + pattern);\n }\n\n return matcherCreator(pattern);\n}\n\nvar END = {\n type: CHANNEL_END_TYPE\n};\nvar isEnd = function isEnd(a) {\n return a && a.type === CHANNEL_END_TYPE;\n};\nvar CLOSED_CHANNEL_WITH_TAKERS = 'Cannot have a closed channel with pending takers';\nvar INVALID_BUFFER = 'invalid buffer passed to channel factory function';\nvar UNDEFINED_INPUT_ERROR = \"Saga or channel was provided with an undefined action\\nHints:\\n - check that your Action Creator returns a non-undefined value\\n - if the Saga was started using runSaga, check that your subscribe source provides the action to its listeners\";\nfunction channel(buffer$1) {\n if (buffer$1 === void 0) {\n buffer$1 = expanding();\n }\n\n var closed = false;\n var takers = [];\n\n if (process.env.NODE_ENV !== 'production') {\n check(buffer$1, buffer, INVALID_BUFFER);\n }\n\n function checkForbiddenStates() {\n if (closed && takers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n\n if (takers.length && !buffer$1.isEmpty()) {\n throw internalErr('Cannot have pending takers with non empty buffer');\n }\n }\n\n function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (takers.length === 0) {\n return buffer$1.put(input);\n }\n\n var cb = takers.shift();\n cb(input);\n }\n\n function take(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.take's callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n } else if (!buffer$1.isEmpty()) {\n cb(buffer$1.take());\n } else {\n takers.push(cb);\n\n cb.cancel = function () {\n remove(takers, cb);\n };\n }\n }\n\n function flush(cb) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(cb, func, \"channel.flush' callback must be a function\");\n }\n\n if (closed && buffer$1.isEmpty()) {\n cb(END);\n return;\n }\n\n cb(buffer$1.flush());\n }\n\n function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n return;\n }\n\n closed = true;\n var arr = takers;\n takers = [];\n\n for (var i = 0, len = arr.length; i < len; i++) {\n var taker = arr[i];\n taker(END);\n }\n }\n\n return {\n take: take,\n put: put,\n flush: flush,\n close: close\n };\n}\nfunction eventChannel(subscribe, buffer) {\n if (buffer === void 0) {\n buffer = none();\n }\n\n var closed = false;\n var unsubscribe;\n var chan = channel(buffer);\n\n var close = function close() {\n if (closed) {\n return;\n }\n\n closed = true;\n\n if (func(unsubscribe)) {\n unsubscribe();\n }\n\n chan.close();\n };\n\n unsubscribe = subscribe(function (input) {\n if (isEnd(input)) {\n close();\n return;\n }\n\n chan.put(input);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n check(unsubscribe, func, 'in eventChannel: subscribe should return a function to unsubscribe');\n }\n\n unsubscribe = once(unsubscribe);\n\n if (closed) {\n unsubscribe();\n }\n\n return {\n take: chan.take,\n flush: chan.flush,\n close: close\n };\n}\nfunction multicastChannel() {\n var _ref;\n\n var closed = false;\n var currentTakers = [];\n var nextTakers = currentTakers;\n\n function checkForbiddenStates() {\n if (closed && nextTakers.length) {\n throw internalErr(CLOSED_CHANNEL_WITH_TAKERS);\n }\n }\n\n var ensureCanMutateNextTakers = function ensureCanMutateNextTakers() {\n if (nextTakers !== currentTakers) {\n return;\n }\n\n nextTakers = currentTakers.slice();\n };\n\n var close = function close() {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n closed = true;\n var takers = currentTakers = nextTakers;\n nextTakers = [];\n takers.forEach(function (taker) {\n taker(END);\n });\n };\n\n return _ref = {}, _ref[MULTICAST] = true, _ref.put = function put(input) {\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n check(input, notUndef, UNDEFINED_INPUT_ERROR);\n }\n\n if (closed) {\n return;\n }\n\n if (isEnd(input)) {\n close();\n return;\n }\n\n var takers = currentTakers = nextTakers;\n\n for (var i = 0, len = takers.length; i < len; i++) {\n var taker = takers[i];\n\n if (taker[MATCH](input)) {\n taker.cancel();\n taker(input);\n }\n }\n }, _ref.take = function take(cb, matcher) {\n if (matcher === void 0) {\n matcher = wildcard;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkForbiddenStates();\n }\n\n if (closed) {\n cb(END);\n return;\n }\n\n cb[MATCH] = matcher;\n ensureCanMutateNextTakers();\n nextTakers.push(cb);\n cb.cancel = once(function () {\n ensureCanMutateNextTakers();\n remove(nextTakers, cb);\n });\n }, _ref.close = close, _ref;\n}\nfunction stdChannel() {\n var chan = multicastChannel();\n var put = chan.put;\n\n chan.put = function (input) {\n if (input[SAGA_ACTION]) {\n put(input);\n return;\n }\n\n asap(function () {\n put(input);\n });\n };\n\n return chan;\n}\n\nvar RUNNING = 0;\nvar CANCELLED = 1;\nvar ABORTED = 2;\nvar DONE = 3;\n\nfunction resolvePromise(promise, cb) {\n var cancelPromise = promise[CANCEL];\n\n if (func(cancelPromise)) {\n cb.cancel = cancelPromise;\n }\n\n promise.then(cb, function (error) {\n cb(error, true);\n });\n}\n\nvar current = 0;\nvar nextSagaId = (function () {\n return ++current;\n});\n\nvar _effectRunnerMap;\n\nfunction getIteratorMetaInfo(iterator, fn) {\n if (iterator.isSagaIterator) {\n return {\n name: iterator.meta.name\n };\n }\n\n return getMetaInfo(fn);\n}\n\nfunction createTaskIterator(_ref) {\n var context = _ref.context,\n fn = _ref.fn,\n args = _ref.args;\n\n // catch synchronous failures; see #152 and #441\n try {\n var result = fn.apply(context, args); // i.e. a generator function returns an iterator\n\n if (iterator(result)) {\n return result;\n }\n\n var resolved = false;\n\n var next = function next(arg) {\n if (!resolved) {\n resolved = true; // Only promises returned from fork will be interpreted. See #1573\n\n return {\n value: result,\n done: !promise(result)\n };\n } else {\n return {\n value: arg,\n done: true\n };\n }\n };\n\n return makeIterator(next);\n } catch (err) {\n // do not bubble up synchronous failures for detached forks\n // instead create a failed task. See #152 and #441\n return makeIterator(function () {\n throw err;\n });\n }\n}\n\nfunction runPutEffect(env, _ref2, cb) {\n var channel = _ref2.channel,\n action = _ref2.action,\n resolve = _ref2.resolve;\n\n /**\n Schedule the put in case another saga is holding a lock.\n The put will be executed atomically. ie nested puts will execute after\n this put has terminated.\n **/\n asap(function () {\n var result;\n\n try {\n result = (channel ? channel.put : env.dispatch)(action);\n } catch (error) {\n cb(error, true);\n return;\n }\n\n if (resolve && promise(result)) {\n resolvePromise(result, cb);\n } else {\n cb(result);\n }\n }); // Put effects are non cancellables\n}\n\nfunction runTakeEffect(env, _ref3, cb) {\n var _ref3$channel = _ref3.channel,\n channel = _ref3$channel === void 0 ? env.channel : _ref3$channel,\n pattern = _ref3.pattern,\n maybe = _ref3.maybe;\n\n var takeCb = function takeCb(input) {\n if (input instanceof Error) {\n cb(input, true);\n return;\n }\n\n if (isEnd(input) && !maybe) {\n cb(TERMINATE);\n return;\n }\n\n cb(input);\n };\n\n try {\n channel.take(takeCb, notUndef(pattern) ? matcher(pattern) : null);\n } catch (err) {\n cb(err, true);\n return;\n }\n\n cb.cancel = takeCb.cancel;\n}\n\nfunction runCallEffect(env, _ref4, cb, _ref5) {\n var context = _ref4.context,\n fn = _ref4.fn,\n args = _ref4.args;\n var task = _ref5.task;\n\n // catch synchronous failures; see #152\n try {\n var result = fn.apply(context, args);\n\n if (promise(result)) {\n resolvePromise(result, cb);\n return;\n }\n\n if (iterator(result)) {\n // resolve iterator\n proc(env, result, task.context, current, getMetaInfo(fn),\n /* isRoot */\n false, cb);\n return;\n }\n\n cb(result);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runCPSEffect(env, _ref6, cb) {\n var context = _ref6.context,\n fn = _ref6.fn,\n args = _ref6.args;\n\n // CPS (ie node style functions) can define their own cancellation logic\n // by setting cancel field on the cb\n // catch synchronous failures; see #152\n try {\n var cpsCb = function cpsCb(err, res) {\n if (undef(err)) {\n cb(res);\n } else {\n cb(err, true);\n }\n };\n\n fn.apply(context, args.concat(cpsCb));\n\n if (cpsCb.cancel) {\n cb.cancel = cpsCb.cancel;\n }\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runForkEffect(env, _ref7, cb, _ref8) {\n var context = _ref7.context,\n fn = _ref7.fn,\n args = _ref7.args,\n detached = _ref7.detached;\n var parent = _ref8.task;\n var taskIterator = createTaskIterator({\n context: context,\n fn: fn,\n args: args\n });\n var meta = getIteratorMetaInfo(taskIterator, fn);\n immediately(function () {\n var child = proc(env, taskIterator, parent.context, current, meta, detached, undefined);\n\n if (detached) {\n cb(child);\n } else {\n if (child.isRunning()) {\n parent.queue.addTask(child);\n cb(child);\n } else if (child.isAborted()) {\n parent.queue.abort(child.error());\n } else {\n cb(child);\n }\n }\n }); // Fork effects are non cancellables\n}\n\nfunction runJoinEffect(env, taskOrTasks, cb, _ref9) {\n var task = _ref9.task;\n\n var joinSingleTask = function joinSingleTask(taskToJoin, cb) {\n if (taskToJoin.isRunning()) {\n var joiner = {\n task: task,\n cb: cb\n };\n\n cb.cancel = function () {\n if (taskToJoin.isRunning()) remove(taskToJoin.joiners, joiner);\n };\n\n taskToJoin.joiners.push(joiner);\n } else {\n if (taskToJoin.isAborted()) {\n cb(taskToJoin.error(), true);\n } else {\n cb(taskToJoin.result());\n }\n }\n };\n\n if (array$1(taskOrTasks)) {\n if (taskOrTasks.length === 0) {\n cb([]);\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(taskOrTasks, cb);\n taskOrTasks.forEach(function (t, i) {\n joinSingleTask(t, childCallbacks[i]);\n });\n } else {\n joinSingleTask(taskOrTasks, cb);\n }\n}\n\nfunction cancelSingleTask(taskToCancel) {\n if (taskToCancel.isRunning()) {\n taskToCancel.cancel();\n }\n}\n\nfunction runCancelEffect(env, taskOrTasks, cb, _ref10) {\n var task = _ref10.task;\n\n if (taskOrTasks === SELF_CANCELLATION) {\n cancelSingleTask(task);\n } else if (array$1(taskOrTasks)) {\n taskOrTasks.forEach(cancelSingleTask);\n } else {\n cancelSingleTask(taskOrTasks);\n }\n\n cb(); // cancel effects are non cancellables\n}\n\nfunction runAllEffect(env, effects, cb, _ref11) {\n var digestEffect = _ref11.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n\n if (keys.length === 0) {\n cb(array$1(effects) ? [] : {});\n return;\n }\n\n var childCallbacks = createAllStyleChildCallbacks(effects, cb);\n keys.forEach(function (key) {\n digestEffect(effects[key], effectId, childCallbacks[key], key);\n });\n}\n\nfunction runRaceEffect(env, effects, cb, _ref12) {\n var digestEffect = _ref12.digestEffect;\n var effectId = current;\n var keys = Object.keys(effects);\n var response = array$1(effects) ? createEmptyArray(keys.length) : {};\n var childCbs = {};\n var completed = false;\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n // Race Auto cancellation\n cb.cancel();\n cb(res, isErr);\n } else {\n cb.cancel();\n completed = true;\n response[key] = res;\n cb(response);\n }\n };\n\n chCbAtKey.cancel = noop;\n childCbs[key] = chCbAtKey;\n });\n\n cb.cancel = function () {\n // prevents unnecessary cancellation\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCbs[key].cancel();\n });\n }\n };\n\n keys.forEach(function (key) {\n if (completed) {\n return;\n }\n\n digestEffect(effects[key], effectId, childCbs[key], key);\n });\n}\n\nfunction runSelectEffect(env, _ref13, cb) {\n var selector = _ref13.selector,\n args = _ref13.args;\n\n try {\n var state = selector.apply(void 0, [env.getState()].concat(args));\n cb(state);\n } catch (error) {\n cb(error, true);\n }\n}\n\nfunction runChannelEffect(env, _ref14, cb) {\n var pattern = _ref14.pattern,\n buffer = _ref14.buffer;\n var chan = channel(buffer);\n var match = matcher(pattern);\n\n var taker = function taker(action) {\n if (!isEnd(action)) {\n env.channel.take(taker, match);\n }\n\n chan.put(action);\n };\n\n var close = chan.close;\n\n chan.close = function () {\n taker.cancel();\n close();\n };\n\n env.channel.take(taker, match);\n cb(chan);\n}\n\nfunction runCancelledEffect(env, data, cb, _ref15) {\n var task = _ref15.task;\n cb(task.isCancelled());\n}\n\nfunction runFlushEffect(env, channel, cb) {\n channel.flush(cb);\n}\n\nfunction runGetContextEffect(env, prop, cb, _ref16) {\n var task = _ref16.task;\n cb(task.context[prop]);\n}\n\nfunction runSetContextEffect(env, props, cb, _ref17) {\n var task = _ref17.task;\n assignWithSymbols(task.context, props);\n cb();\n}\n\nvar effectRunnerMap = (_effectRunnerMap = {}, _effectRunnerMap[TAKE] = runTakeEffect, _effectRunnerMap[PUT] = runPutEffect, _effectRunnerMap[ALL] = runAllEffect, _effectRunnerMap[RACE] = runRaceEffect, _effectRunnerMap[CALL] = runCallEffect, _effectRunnerMap[CPS] = runCPSEffect, _effectRunnerMap[FORK] = runForkEffect, _effectRunnerMap[JOIN] = runJoinEffect, _effectRunnerMap[CANCEL$1] = runCancelEffect, _effectRunnerMap[SELECT] = runSelectEffect, _effectRunnerMap[ACTION_CHANNEL] = runChannelEffect, _effectRunnerMap[CANCELLED$1] = runCancelledEffect, _effectRunnerMap[FLUSH] = runFlushEffect, _effectRunnerMap[GET_CONTEXT] = runGetContextEffect, _effectRunnerMap[SET_CONTEXT] = runSetContextEffect, _effectRunnerMap);\n\n/**\n Used to track a parent task and its forks\n In the fork model, forked tasks are attached by default to their parent\n We model this using the concept of Parent task && main Task\n main task is the main flow of the current Generator, the parent tasks is the\n aggregation of the main tasks + all its forked tasks.\n Thus the whole model represents an execution tree with multiple branches (vs the\n linear execution tree in sequential (non parallel) programming)\n\n A parent tasks has the following semantics\n - It completes if all its forks either complete or all cancelled\n - If it's cancelled, all forks are cancelled as well\n - It aborts if any uncaught error bubbles up from forks\n - If it completes, the return value is the one returned by the main task\n **/\n\nfunction forkQueue(mainTask, onAbort, cont) {\n var tasks = [];\n var result;\n var completed = false;\n addTask(mainTask);\n\n var getTasks = function getTasks() {\n return tasks;\n };\n\n function abort(err) {\n onAbort();\n cancelAll();\n cont(err, true);\n }\n\n function addTask(task) {\n tasks.push(task);\n\n task.cont = function (res, isErr) {\n if (completed) {\n return;\n }\n\n remove(tasks, task);\n task.cont = noop;\n\n if (isErr) {\n abort(res);\n } else {\n if (task === mainTask) {\n result = res;\n }\n\n if (!tasks.length) {\n completed = true;\n cont(result);\n }\n }\n };\n }\n\n function cancelAll() {\n if (completed) {\n return;\n }\n\n completed = true;\n tasks.forEach(function (t) {\n t.cont = noop;\n t.cancel();\n });\n tasks = [];\n }\n\n return {\n addTask: addTask,\n cancelAll: cancelAll,\n abort: abort,\n getTasks: getTasks\n };\n}\n\n// there can be only a single saga error created at any given moment\n\nfunction formatLocation(fileName, lineNumber) {\n return fileName + \"?\" + lineNumber;\n}\n\nfunction effectLocationAsString(effect) {\n var location = getLocation(effect);\n\n if (location) {\n var code = location.code,\n fileName = location.fileName,\n lineNumber = location.lineNumber;\n var source = code + \" \" + formatLocation(fileName, lineNumber);\n return source;\n }\n\n return '';\n}\n\nfunction sagaLocationAsString(sagaMeta) {\n var name = sagaMeta.name,\n location = sagaMeta.location;\n\n if (location) {\n return name + \" \" + formatLocation(location.fileName, location.lineNumber);\n }\n\n return name;\n}\n\nfunction cancelledTasksAsString(sagaStack) {\n var cancelledTasks = flatMap(function (i) {\n return i.cancelledTasks;\n }, sagaStack);\n\n if (!cancelledTasks.length) {\n return '';\n }\n\n return ['Tasks cancelled due to error:'].concat(cancelledTasks).join('\\n');\n}\n\nvar crashedEffect = null;\nvar sagaStack = [];\nvar addSagaFrame = function addSagaFrame(frame) {\n frame.crashedEffect = crashedEffect;\n sagaStack.push(frame);\n};\nvar clear = function clear() {\n crashedEffect = null;\n sagaStack.length = 0;\n}; // this sets crashed effect for the soon-to-be-reported saga frame\n// this slightly streatches the singleton nature of this module into wrong direction\n// as it's even less obvious what's the data flow here, but it is what it is for now\n\nvar setCrashedEffect = function setCrashedEffect(effect) {\n crashedEffect = effect;\n};\n/**\n @returns {string}\n\n @example\n The above error occurred in task errorInPutSaga {pathToFile}\n when executing effect put({type: 'REDUCER_ACTION_ERROR_IN_PUT'}) {pathToFile}\n created by fetchSaga {pathToFile}\n created by rootSaga {pathToFile}\n*/\n\nvar toString = function toString() {\n var firstSaga = sagaStack[0],\n otherSagas = sagaStack.slice(1);\n var crashedEffectLocation = firstSaga.crashedEffect ? effectLocationAsString(firstSaga.crashedEffect) : null;\n var errorMessage = \"The above error occurred in task \" + sagaLocationAsString(firstSaga.meta) + (crashedEffectLocation ? \" \\n when executing effect \" + crashedEffectLocation : '');\n return [errorMessage].concat(otherSagas.map(function (s) {\n return \" created by \" + sagaLocationAsString(s.meta);\n }), [cancelledTasksAsString(sagaStack)]).join('\\n');\n};\n\nfunction newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont) {\n var _task;\n\n if (cont === void 0) {\n cont = noop;\n }\n\n var status = RUNNING;\n var taskResult;\n var taskError;\n var deferredEnd = null;\n var cancelledDueToErrorTasks = [];\n var context = Object.create(parentContext);\n var queue = forkQueue(mainTask, function onAbort() {\n cancelledDueToErrorTasks.push.apply(cancelledDueToErrorTasks, queue.getTasks().map(function (t) {\n return t.meta.name;\n }));\n }, end);\n /**\n This may be called by a parent generator to trigger/propagate cancellation\n cancel all pending tasks (including the main task), then end the current task.\n Cancellation propagates down to the whole execution tree held by this Parent task\n It's also propagated to all joiners of this task and their execution tree/joiners\n Cancellation is noop for terminated/Cancelled tasks tasks\n **/\n\n function cancel() {\n if (status === RUNNING) {\n // Setting status to CANCELLED does not necessarily mean that the task/iterators are stopped\n // effects in the iterator's finally block will still be executed\n status = CANCELLED;\n queue.cancelAll(); // Ending with a TASK_CANCEL will propagate the Cancellation to all joiners\n\n end(TASK_CANCEL, false);\n }\n }\n\n function end(result, isErr) {\n if (!isErr) {\n // The status here may be RUNNING or CANCELLED\n // If the status is CANCELLED, then we do not need to change it here\n if (result === TASK_CANCEL) {\n status = CANCELLED;\n } else if (status !== CANCELLED) {\n status = DONE;\n }\n\n taskResult = result;\n deferredEnd && deferredEnd.resolve(result);\n } else {\n status = ABORTED;\n addSagaFrame({\n meta: meta,\n cancelledTasks: cancelledDueToErrorTasks\n });\n\n if (task.isRoot) {\n var sagaStack = toString(); // we've dumped the saga stack to string and are passing it to user's code\n // we know that it won't be needed anymore and we need to clear it\n\n clear();\n env.onError(result, {\n sagaStack: sagaStack\n });\n }\n\n taskError = result;\n deferredEnd && deferredEnd.reject(result);\n }\n\n task.cont(result, isErr);\n task.joiners.forEach(function (joiner) {\n joiner.cb(result, isErr);\n });\n task.joiners = null;\n }\n\n function setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('task', props));\n }\n\n assignWithSymbols(context, props);\n }\n\n function toPromise() {\n if (deferredEnd) {\n return deferredEnd.promise;\n }\n\n deferredEnd = deferred();\n\n if (status === ABORTED) {\n deferredEnd.reject(taskError);\n } else if (status !== RUNNING) {\n deferredEnd.resolve(taskResult);\n }\n\n return deferredEnd.promise;\n }\n\n var task = (_task = {}, _task[TASK] = true, _task.id = parentEffectId, _task.meta = meta, _task.isRoot = isRoot, _task.context = context, _task.joiners = [], _task.queue = queue, _task.cancel = cancel, _task.cont = cont, _task.end = end, _task.setContext = setContext, _task.toPromise = toPromise, _task.isRunning = function isRunning() {\n return status === RUNNING;\n }, _task.isCancelled = function isCancelled() {\n return status === CANCELLED || status === RUNNING && mainTask.status === CANCELLED;\n }, _task.isAborted = function isAborted() {\n return status === ABORTED;\n }, _task.result = function result() {\n return taskResult;\n }, _task.error = function error() {\n return taskError;\n }, _task);\n return task;\n}\n\nfunction proc(env, iterator$1, parentContext, parentEffectId, meta, isRoot, cont) {\n if (process.env.NODE_ENV !== 'production' && iterator$1[asyncIteratorSymbol]) {\n throw new Error(\"redux-saga doesn't support async generators, please use only regular ones\");\n }\n\n var finalRunEffect = env.finalizeRunEffect(runEffect);\n /**\n Tracks the current effect cancellation\n Each time the generator progresses. calling runEffect will set a new value\n on it. It allows propagating cancellation to child effects\n **/\n\n next.cancel = noop;\n /** Creates a main task to track the main flow */\n\n var mainTask = {\n meta: meta,\n cancel: cancelMain,\n status: RUNNING\n };\n /**\n Creates a new task descriptor for this generator.\n A task is the aggregation of it's mainTask and all it's forked tasks.\n **/\n\n var task = newTask(env, mainTask, parentContext, parentEffectId, meta, isRoot, cont);\n var executingContext = {\n task: task,\n digestEffect: digestEffect\n };\n /**\n cancellation of the main task. We'll simply resume the Generator with a TASK_CANCEL\n **/\n\n function cancelMain() {\n if (mainTask.status === RUNNING) {\n mainTask.status = CANCELLED;\n next(TASK_CANCEL);\n }\n }\n /**\n attaches cancellation logic to this task's continuation\n this will permit cancellation to propagate down the call chain\n **/\n\n\n if (cont) {\n cont.cancel = task.cancel;\n } // kicks up the generator\n\n\n next(); // then return the task descriptor to the caller\n\n return task;\n /**\n * This is the generator driver\n * It's a recursive async/continuation function which calls itself\n * until the generator terminates or throws\n * @param {internal commands(TASK_CANCEL | TERMINATE) | any} arg - value, generator will be resumed with.\n * @param {boolean} isErr - the flag shows if effect finished with an error\n *\n * receives either (command | effect result, false) or (any thrown thing, true)\n */\n\n function next(arg, isErr) {\n try {\n var result;\n\n if (isErr) {\n result = iterator$1.throw(arg); // user handled the error, we can clear bookkept values\n\n clear();\n } else if (shouldCancel(arg)) {\n /**\n getting TASK_CANCEL automatically cancels the main task\n We can get this value here\n - By cancelling the parent task manually\n - By joining a Cancelled task\n **/\n mainTask.status = CANCELLED;\n /**\n Cancels the current effect; this will propagate the cancellation down to any called tasks\n **/\n\n next.cancel();\n /**\n If this Generator has a `return` method then invokes it\n This will jump to the finally block\n **/\n\n result = func(iterator$1.return) ? iterator$1.return(TASK_CANCEL) : {\n done: true,\n value: TASK_CANCEL\n };\n } else if (shouldTerminate(arg)) {\n // We get TERMINATE flag, i.e. by taking from a channel that ended using `take` (and not `takem` used to trap End of channels)\n result = func(iterator$1.return) ? iterator$1.return() : {\n done: true\n };\n } else {\n result = iterator$1.next(arg);\n }\n\n if (!result.done) {\n digestEffect(result.value, parentEffectId, next);\n } else {\n /**\n This Generator has ended, terminate the main task and notify the fork queue\n **/\n if (mainTask.status !== CANCELLED) {\n mainTask.status = DONE;\n }\n\n mainTask.cont(result.value);\n }\n } catch (error) {\n if (mainTask.status === CANCELLED) {\n throw error;\n }\n\n mainTask.status = ABORTED;\n mainTask.cont(error, true);\n }\n }\n\n function runEffect(effect, effectId, currCb) {\n /**\n each effect runner must attach its own logic of cancellation to the provided callback\n it allows this generator to propagate cancellation downward.\n ATTENTION! effect runners must setup the cancel logic by setting cb.cancel = [cancelMethod]\n And the setup must occur before calling the callback\n This is a sort of inversion of control: called async functions are responsible\n of completing the flow by calling the provided continuation; while caller functions\n are responsible for aborting the current flow by calling the attached cancel function\n Library users can attach their own cancellation logic to promises by defining a\n promise[CANCEL] method in their returned promises\n ATTENTION! calling cancel must have no effect on an already completed or cancelled effect\n **/\n if (promise(effect)) {\n resolvePromise(effect, currCb);\n } else if (iterator(effect)) {\n // resolve iterator\n proc(env, effect, task.context, effectId, meta,\n /* isRoot */\n false, currCb);\n } else if (effect && effect[IO]) {\n var effectRunner = effectRunnerMap[effect.type];\n effectRunner(env, effect.payload, currCb, executingContext);\n } else {\n // anything else returned as is\n currCb(effect);\n }\n }\n\n function digestEffect(effect, parentEffectId, cb, label) {\n if (label === void 0) {\n label = '';\n }\n\n var effectId = nextSagaId();\n env.sagaMonitor && env.sagaMonitor.effectTriggered({\n effectId: effectId,\n parentEffectId: parentEffectId,\n label: label,\n effect: effect\n });\n /**\n completion callback and cancel callback are mutually exclusive\n We can't cancel an already completed effect\n And We can't complete an already cancelled effectId\n **/\n\n var effectSettled; // Completion callback passed to the appropriate effect runner\n\n function currCb(res, isErr) {\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n cb.cancel = noop; // defensive measure\n\n if (env.sagaMonitor) {\n if (isErr) {\n env.sagaMonitor.effectRejected(effectId, res);\n } else {\n env.sagaMonitor.effectResolved(effectId, res);\n }\n }\n\n if (isErr) {\n setCrashedEffect(effect);\n }\n\n cb(res, isErr);\n } // tracks down the current cancel\n\n\n currCb.cancel = noop; // setup cancellation logic on the parent cb\n\n cb.cancel = function () {\n // prevents cancelling an already completed effect\n if (effectSettled) {\n return;\n }\n\n effectSettled = true;\n currCb.cancel(); // propagates cancel downward\n\n currCb.cancel = noop; // defensive measure\n\n env.sagaMonitor && env.sagaMonitor.effectCancelled(effectId);\n };\n\n finalRunEffect(effect, effectId, currCb);\n }\n}\n\nvar RUN_SAGA_SIGNATURE = 'runSaga(options, saga, ...args)';\nvar NON_GENERATOR_ERR = RUN_SAGA_SIGNATURE + \": saga argument must be a Generator function!\";\nfunction runSaga(_ref, saga) {\n var _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n dispatch = _ref.dispatch,\n getState = _ref.getState,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n sagaMonitor = _ref.sagaMonitor,\n effectMiddlewares = _ref.effectMiddlewares,\n _ref$onError = _ref.onError,\n onError = _ref$onError === void 0 ? logError : _ref$onError;\n\n if (process.env.NODE_ENV !== 'production') {\n check(saga, func, NON_GENERATOR_ERR);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var iterator$1 = saga.apply(void 0, args);\n\n if (process.env.NODE_ENV !== 'production') {\n check(iterator$1, iterator, NON_GENERATOR_ERR);\n }\n\n var effectId = nextSagaId();\n\n if (sagaMonitor) {\n // monitors are expected to have a certain interface, let's fill-in any missing ones\n sagaMonitor.rootSagaStarted = sagaMonitor.rootSagaStarted || noop;\n sagaMonitor.effectTriggered = sagaMonitor.effectTriggered || noop;\n sagaMonitor.effectResolved = sagaMonitor.effectResolved || noop;\n sagaMonitor.effectRejected = sagaMonitor.effectRejected || noop;\n sagaMonitor.effectCancelled = sagaMonitor.effectCancelled || noop;\n sagaMonitor.actionDispatched = sagaMonitor.actionDispatched || noop;\n sagaMonitor.rootSagaStarted({\n effectId: effectId,\n saga: saga,\n args: args\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (notUndef(dispatch)) {\n check(dispatch, func, 'dispatch must be a function');\n }\n\n if (notUndef(getState)) {\n check(getState, func, 'getState must be a function');\n }\n\n if (notUndef(effectMiddlewares)) {\n var MIDDLEWARE_TYPE_ERROR = 'effectMiddlewares must be an array of functions';\n check(effectMiddlewares, array$1, MIDDLEWARE_TYPE_ERROR);\n effectMiddlewares.forEach(function (effectMiddleware) {\n return check(effectMiddleware, func, MIDDLEWARE_TYPE_ERROR);\n });\n }\n\n check(onError, func, 'onError passed to the redux-saga is not a function!');\n }\n\n var finalizeRunEffect;\n\n if (effectMiddlewares) {\n var middleware = compose.apply(void 0, effectMiddlewares);\n\n finalizeRunEffect = function finalizeRunEffect(runEffect) {\n return function (effect, effectId, currCb) {\n var plainRunEffect = function plainRunEffect(eff) {\n return runEffect(eff, effectId, currCb);\n };\n\n return middleware(plainRunEffect)(effect);\n };\n };\n } else {\n finalizeRunEffect = identity;\n }\n\n var env = {\n channel: channel,\n dispatch: wrapSagaDispatch(dispatch),\n getState: getState,\n sagaMonitor: sagaMonitor,\n onError: onError,\n finalizeRunEffect: finalizeRunEffect\n };\n return immediately(function () {\n var task = proc(env, iterator$1, context, effectId, getMetaInfo(saga),\n /* isRoot */\n true, undefined);\n\n if (sagaMonitor) {\n sagaMonitor.effectResolved(effectId, task);\n }\n\n return task;\n });\n}\n\nfunction sagaMiddlewareFactory(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$context = _ref.context,\n context = _ref$context === void 0 ? {} : _ref$context,\n _ref$channel = _ref.channel,\n channel = _ref$channel === void 0 ? stdChannel() : _ref$channel,\n sagaMonitor = _ref.sagaMonitor,\n options = _objectWithoutPropertiesLoose(_ref, [\"context\", \"channel\", \"sagaMonitor\"]);\n\n var boundRunSaga;\n\n if (process.env.NODE_ENV !== 'production') {\n check(channel, channel$1, 'options.channel passed to the Saga middleware is not a channel');\n }\n\n function sagaMiddleware(_ref2) {\n var getState = _ref2.getState,\n dispatch = _ref2.dispatch;\n boundRunSaga = runSaga.bind(null, _extends({}, options, {\n context: context,\n channel: channel,\n dispatch: dispatch,\n getState: getState,\n sagaMonitor: sagaMonitor\n }));\n return function (next) {\n return function (action) {\n if (sagaMonitor && sagaMonitor.actionDispatched) {\n sagaMonitor.actionDispatched(action);\n }\n\n var result = next(action); // hit reducers\n\n channel.put(action);\n return result;\n };\n };\n }\n\n sagaMiddleware.run = function () {\n if (process.env.NODE_ENV !== 'production' && !boundRunSaga) {\n throw new Error('Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware');\n }\n\n return boundRunSaga.apply(void 0, arguments);\n };\n\n sagaMiddleware.setContext = function (props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning('sagaMiddleware', props));\n }\n\n assignWithSymbols(context, props);\n };\n\n return sagaMiddleware;\n}\n\nexport default sagaMiddlewareFactory;\nexport { END, channel, eventChannel, isEnd, multicastChannel, runSaga, stdChannel };\n","import createSagaMiddleware__default from '@redux-saga/core';\nexport * from '@redux-saga/core';\n\n\n\nexport default createSagaMiddleware__default;\n","import { fromJS } from 'immutable';\nimport {\n SET_CURRENT_ORG_NAME,\n LOGOUT_SUCCESS,\n} from 'routes/AppContainer/constants';\nimport {\n SET_ACCESS_TOKEN,\n SET_PROCESSED_SCOPES,\n SET_REMOTE_FEATURE_FLAGS,\n SET_MFA_CREDENTIALS,\n} from './constants';\n// Initial access token state\nconst accessTokenInitialState = fromJS({\n identity: fromJS({}),\n scopes: fromJS([]),\n expiresAt: null,\n processedScopes: fromJS([]),\n remoteFeatureFlags: fromJS({\n null: [],\n }),\n mfaCredentials: fromJS([]),\n});\n\nfunction accessTokenReducer(state = accessTokenInitialState, action) {\n switch (action.type) {\n case SET_REMOTE_FEATURE_FLAGS:\n // return state.setIn(['remoteFeatureFlags', action.orgId, action.key], fromJS(action.value))\n return state.setIn(\n ['remoteFeatureFlags', action.orgId],\n state\n .getIn(['remoteFeatureFlags', action.orgId], fromJS({}))\n .merge(action.flags),\n );\n case LOGOUT_SUCCESS:\n return accessTokenInitialState;\n case SET_CURRENT_ORG_NAME: {\n const index = state\n .get('scopes')\n .findIndex(\n (s) => Number(s.getIn(['org', 'id'])) === Number(action.orgId),\n );\n // list = list.setIn([index, \"count\"], 4)\n return state.setIn(['scopes', index, 'org', 'name'], action.orgName);\n }\n\n case SET_ACCESS_TOKEN:\n return state\n .set('identity', fromJS(action.data.identity))\n .set('scopes', fromJS(action.data.tokenScopeList))\n .set('expiresAt', action.data.expiresAt)\n .set('token', action.data.token);\n case SET_PROCESSED_SCOPES:\n return state.set('processedScopes', fromJS(action.scopes));\n case SET_MFA_CREDENTIALS: {\n return state.set('mfaCredentials', fromJS(action.mfaCredentials));\n }\n default:\n return state;\n }\n}\n\nexport default accessTokenReducer;\n","import { combineReducers } from 'redux-immutable';\nimport { fromJS } from 'immutable';\n\nimport { SET_ORG, SET_SAVING_BILLING_SUBSCRIPTION_INFO } from './constants';\n\nfunction orgReducer(state = fromJS({}), action) {\n switch (action.type) {\n case SET_ORG:\n return fromJS(action.org);\n default:\n return state;\n }\n}\n\nfunction savingBillingSubscriptionInfoReducer(state = false, action) {\n switch (action.type) {\n case SET_SAVING_BILLING_SUBSCRIPTION_INFO:\n return action.saving;\n default:\n return state;\n }\n}\n\nconst reducers = {\n orgReducer,\n savingBillingSubscriptionInfoReducer,\n};\n\nexport default combineReducers(reducers);\n","import { fromJS } from 'immutable';\nimport {\n ADD_BANNER_DATA,\n REMOVE_BANNER_BY_KEY,\n REMOVE_ALL_BANNERS,\n} from './constants';\n// Initial access token state\nconst bannerDataInitialState = fromJS({\n banners: [],\n});\n\nfunction bannerReducer(state = bannerDataInitialState, action) {\n switch (action?.type) {\n case REMOVE_BANNER_BY_KEY: {\n const i = state\n ?.get('banners')\n ?.findIndex((b) => b?.get('key') === action?.key);\n return i > -1\n ? state?.set('banners', state?.get('banners')?.remove(i))\n : state;\n }\n case ADD_BANNER_DATA: {\n // keys make banners unique\n if (action?.data?.key) {\n const i = state\n ?.get('banners')\n ?.findIndex((b) => b?.get('key') === action?.data?.key);\n if (i > -1) {\n return state;\n }\n }\n return state?.set(\n 'banners',\n state?.get('banners')?.push(fromJS(action?.data)),\n );\n }\n case REMOVE_ALL_BANNERS:\n return bannerDataInitialState;\n default:\n return state;\n }\n}\n\nexport default bannerReducer;\n","import { fromJS } from 'immutable';\nimport { SET_ACTIVITY_RANGE_HOURS } from './constants';\n\n// Initial access token state\nconst activityLogsInitialState = fromJS({\n activityRangeHours: 1,\n});\n\nfunction bannerReducer(state = activityLogsInitialState, action) {\n switch (action?.type) {\n case SET_ACTIVITY_RANGE_HOURS:\n return state.set('activityRangeHours', action.activityRangeHours);\n default:\n return state;\n }\n}\n\nexport default bannerReducer;\n","import { fromJS } from 'immutable';\nimport { SET_LOCKDOWN_PLANS } from './constants';\n// Initial access token state\nconst initialState = fromJS({\n lockdownPlanActive: null,\n lockdownPlans: fromJS([]),\n});\n\nfunction lockdownPlansReducer(state = initialState, action) {\n switch (action.type) {\n case SET_LOCKDOWN_PLANS:\n return state.set('lockdownPlans', fromJS(action.plans));\n default:\n return state;\n }\n}\n\nexport default lockdownPlansReducer;\n","import { fromJS } from 'immutable';\nimport { SET_CLOUD_KEYS } from './constants';\n// Initial access token state\nconst initialState = fromJS([]);\n\nfunction cloudKeysReducer(state = initialState, action) {\n switch (action.type) {\n case SET_CLOUD_KEYS:\n return fromJS(action.cloudKeys);\n default:\n return state;\n }\n}\n\nexport default cloudKeysReducer;\n","import { fromJS } from 'immutable';\n\nimport { SHOW_MODAL, HIDE_MODAL } from './constants';\n\nconst initialState = fromJS({\n showModal: false,\n});\n\nfunction modalDeluxeReducer(state = initialState, action) {\n switch (action.type) {\n case SHOW_MODAL:\n return state.set('showModal', true);\n case HIDE_MODAL:\n return state.set('showModal', false);\n default:\n return state;\n }\n}\n\nexport default modalDeluxeReducer;\n","import { fromJS } from 'immutable';\nimport {\n ADD_SLIDE_OUT,\n DELETE_SLIDE_OUT,\n REPLACE_SLIDE_OUT,\n} from './constants';\n\nconst initialSlideOutsState = fromJS([]);\n\nfunction slideOutsReducer(state = initialSlideOutsState, action) {\n switch (action.type) {\n case ADD_SLIDE_OUT: {\n return state.push(fromJS(action.slideOutData));\n }\n case REPLACE_SLIDE_OUT:\n return state.pop().push(fromJS(action.slideOutData));\n case DELETE_SLIDE_OUT: {\n // TEMP to support deleting individual slideouts\n if (action?.slideOutData?.path) {\n return state.filter(\n (s) => s.getIn(['routeConfig', 'path']) !== action.slideOutData.path,\n );\n }\n return state.pop();\n }\n default:\n return state;\n }\n}\n\nexport default slideOutsReducer;\n","import { combineReducers } from 'redux-immutable';\nimport { connectRouter } from 'connected-react-router/immutable';\nimport invariant from 'invariant';\nimport isEmpty from 'lodash/isEmpty';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\n\nimport { LOGOUT_SUCCESS } from 'routes/AppContainer/constants';\nimport { CLEAR_ORG_SPECIFIC_STORE_DATA } from 'routes/AuthenticatedContainer/constants';\nimport { reducer as accessTokenReducer } from 'global/accessToken/'; // this is named export. How is this working?\nimport { reducer as billingReducer } from 'global/billing/';\nimport { reducer as bannerReducer } from 'global/banner/';\nimport { reducer as activityLogsReducer } from 'global/activityLogs/';\nimport { reducer as lockdownPlansReducer } from 'global/lockdownPlans/';\nimport { reducer as cloudKeyReducer } from 'global/cloudKey/';\nimport modalDeluxeReducer from 'global/modalDeluxe/reducer';\nimport orgFeaturesReducer from 'global/orgFeatures/reducer';\nimport orgPackagePlansReducer from 'global/orgPackagePlans/reducer';\nimport featuresReducer from 'global/features/reducer';\nimport packagesReducer from 'global/packages/reducer';\nimport slideOutsReducer from 'global/slideOuts/reducer';\nimport history from './history';\n\nexport const staticReducers = {\n global: combineReducers({\n billing: billingReducer,\n modal: modalDeluxeReducer,\n banners: bannerReducer,\n activityLogs: activityLogsReducer,\n lockdownPlans: lockdownPlansReducer,\n cloudKeys: cloudKeyReducer,\n orgFeatures: orgFeaturesReducer,\n orgPackagePlans: orgPackagePlansReducer,\n packages: packagesReducer,\n slideOuts: slideOutsReducer,\n features: featuresReducer,\n }),\n accessToken: accessTokenReducer,\n router: connectRouter(history),\n};\n\nexport const createReducerManager = (additionalReducers = {}) => {\n // Create an object which maps keys to reducers\n const reducers = { ...staticReducers, ...additionalReducers };\n // Create the initial combinedReducer\n let combinedReducer = combineReducers(reducers);\n\n // An array which is used to delete state keys when reducers are removed\n let keysToRemove = [];\n\n // The root reducer function exposed by this object\n // This will be passed to the store\n const generateReduce = () => (state, action) => {\n // If any reducers have been removed, clean up their state first\n if (keysToRemove.length > 0) {\n const cleanedState = state.withMutations((temporaryState) => {\n keysToRemove.forEach((key) => {\n temporaryState.delete(key);\n });\n });\n keysToRemove = [];\n return combinedReducer(cleanedState, action);\n }\n\n return combinedReducer(state, action);\n };\n\n const reducerManager = {\n getReducerMap: () => reducers,\n reloadReducers: (initialReducers) => {\n Object.assign(reducers, initialReducers);\n\n combinedReducer = combineReducers(reducers);\n\n // Fire the INIT action to initialize the newly added state slices!\n reducerManager.store.replaceReducer(generateReduce());\n },\n reduce: generateReduce(),\n add: (injectedReducers, readyCallback) => {\n const changedReducers = injectedReducers.filter(({ key, reducer }) => {\n invariant(\n isString(key) && !isEmpty(key) && isFunction(reducer),\n '(app/utils...) injectReducers: Expected `reducer` to be a reducer function',\n );\n\n // Check `reducers[key] === reducer` for hot reloading when a key is the same but a reducer is different\n if (Reflect.has(reducers, key) && reducers[key] === reducer) {\n return false;\n }\n\n return true;\n });\n\n changedReducers.forEach(({ key, reducer }) => {\n const injectedReducerWrapper = (state, action) => {\n if (\n action.type === LOGOUT_SUCCESS ||\n action.type === CLEAR_ORG_SPECIFIC_STORE_DATA\n ) {\n state = undefined; // eslint-disable-line no-param-reassign\n }\n return reducer(state, action);\n };\n\n reducers[key] = injectedReducerWrapper;\n });\n\n combinedReducer = combineReducers(reducers);\n\n // Fire the INIT action to initialize the newly added state slices!\n reducerManager.store.replaceReducer(generateReduce());\n\n if (readyCallback) {\n readyCallback();\n }\n },\n\n remove: (injectedReducers) => {\n injectedReducers.forEach(({ key }) => {\n delete reducers[key];\n keysToRemove.push(key);\n });\n\n // Generate a new combined reducer\n combinedReducer = combineReducers(reducers);\n },\n };\n\n return reducerManager;\n};\n","import { fromJS } from 'immutable';\n\nimport { CLEAR_ORG_SPECIFIC_STORE_DATA } from 'routes/AuthenticatedContainer/constants';\nimport { LOGOUT_SUCCESS } from 'routes/AppContainer/constants';\nimport { SET_ORG_FEATURES } from './constants';\n\nfunction orgFeaturesReducer(state = fromJS([]), action) {\n switch (action.type) {\n case SET_ORG_FEATURES:\n return fromJS(action.orgFeatures);\n case CLEAR_ORG_SPECIFIC_STORE_DATA:\n case LOGOUT_SUCCESS:\n return fromJS([]);\n default:\n return state;\n }\n}\n\nexport default orgFeaturesReducer;\n","import { fromJS } from 'immutable';\nimport { CLEAR_ORG_SPECIFIC_STORE_DATA } from 'routes/AuthenticatedContainer/constants';\nimport { LOGOUT_SUCCESS } from 'routes/AppContainer/constants';\nimport { SET_ORG_PACKAGE_PLANS } from './constants';\n\nfunction orgPackagePlansReducer(state = fromJS([]), action) {\n switch (action.type) {\n case SET_ORG_PACKAGE_PLANS:\n return fromJS(action.orgPackagePlans);\n case CLEAR_ORG_SPECIFIC_STORE_DATA:\n case LOGOUT_SUCCESS:\n return fromJS([]);\n default:\n return state;\n }\n}\n\nexport default orgPackagePlansReducer;\n","import { fromJS } from 'immutable';\nimport { SET_PACKAGES } from './constants';\n\nfunction packagesReducer(state = fromJS([]), action) {\n switch (action.type) {\n case SET_PACKAGES:\n return fromJS(action.packages);\n default:\n return state;\n }\n}\n\nexport default packagesReducer;\n","export const REQUEST_PACKAGES = 'packages/REQUEST_PACKAGES';\nexport const SET_PACKAGES = 'packages/SET_PACKAGES';\n","import { fromJS } from 'immutable';\n\nimport { LOGOUT_SUCCESS } from 'routes/AppContainer/constants';\nimport { SET_ALL_FEATURES } from './constants';\n\nfunction featuresReducer(state = fromJS([]), action) {\n switch (action.type) {\n case SET_ALL_FEATURES:\n return fromJS(action.features);\n case LOGOUT_SUCCESS:\n return fromJS([]);\n default:\n return state;\n }\n}\n\nexport default featuresReducer;\n","/**\n * Create the store with asynchronously loaded reducers\n */\n\nimport { createStore, applyMiddleware, compose } from 'redux';\nimport { fromJS } from 'immutable';\nimport { routerMiddleware } from 'connected-react-router/immutable';\nimport createSagaMiddleware from 'redux-saga';\nimport { createReducerManager } from '../reducers';\nimport history from '../history';\n\nconst sagaMiddleware = createSagaMiddleware();\n\n// eslint-disable-next-line import/no-mutable-exports\nlet store = {};\n// eslint-disable-next-line import/no-mutable-exports\nlet isStoreConfigured = false;\n\nfunction configureStore(initialState = {}, additionalReducers = {}) {\n const middlewares = [sagaMiddleware, routerMiddleware(history)];\n\n const enhancers = [applyMiddleware(...middlewares)];\n\n const reducerManager = createReducerManager(additionalReducers);\n\n store = createStore(\n reducerManager.reduce,\n fromJS(initialState),\n compose(...enhancers),\n );\n\n // The manager needs to be able to call store.replaceReducers!\n reducerManager.store = store;\n\n // Extensions\n store.runSaga = sagaMiddleware.run;\n store.reducerManager = reducerManager;\n store.injectedSagas = {};\n\n isStoreConfigured = true;\n return store;\n}\n\nexport {\n configureStore,\n // DONT USE THIS UNLESS YOU HAVE TO\n store,\n isStoreConfigured,\n};\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nconst observe = (\n type,\n callback,\n opts,\n) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n const po = new PerformanceObserver(list => {\n // Delay by a microtask to workaround a bug in Safari where the\n // callback is invoked immediately, rather than in a separate task.\n // See: https://github.com/GoogleChrome/web-vitals/issues/277\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n callback(list.getEntries() );\n });\n });\n po.observe(\n Object.assign(\n {\n type,\n buffered: true,\n },\n opts || {},\n ) ,\n );\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","module.exports = __webpack_public_path__ + \"b1f3f77a9279cdb38846ebe13c3438bc.js\";","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","var root = require('./_root'),\n stubFalse = require('./stubFalse');\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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\nmodule.exports = isBuffer;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTextButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTextButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpButton } from '../OpButton/OpButton';\n\nimport './OpTextButton.scss';\n\nexport const OpTextButton = ({\n className,\n children,\n ...buttonProps\n}: Omit, 'type'>) => {\n return (\n \n {children}\n \n );\n};\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\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 * https://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\nconst getNavigationEntry = () => {\n return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];\n};\n\nexport { getNavigationEntry };\n//# sourceMappingURL=getNavigationEntry.js.map\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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\nexport default isLength;\n","module.exports = __webpack_public_path__ + \"e63fce237243190962fcc3b12b387e1b.js\";","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-site-specific-user-data-fetch-transfer .ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type=checkbox]{width:20px;height:20px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormSiteSpecificUserDataFetchTransfer /OpFormSiteSpecificUserDataFetchTransfer.scss\"],\"names\":[],\"mappings\":\"AAKE,6HAEE,UAAA,CACA,WAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-site-specific-user-data-fetch-transfer {\\n /** Making this a little bigger that checkbox which is 18px to prevent \\n issue where clicking on bottom of checkbox doesn't check/uncheck */\\n .ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item\\n input[type='checkbox'] {\\n width: 20px;\\n height: 20px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"764b59bdd3a89e14f88c9d63020551a1.js\";","module.exports = __webpack_public_path__ + \"bc27b2d7127da36a976f00f889810836.js\";","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\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// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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\nexport default setCacheAdd;\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\nexport default setCacheHas;\n","import { propagationContextFromHeaders, generatePropagationContext, logger } from '@sentry/utils';\nimport { getMainCarrier } from '../carrier.js';\nimport { withScope, getCurrentScope, getIsolationScope, getClient } from '../currentScopes.js';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { _setSpanForScope, _getSpanForScope } from '../utils/spanOnScope.js';\nimport { spanToJSON, addChildSpanToSpan, spanIsSampled, spanTimeInputToSeconds, getRootSpan } from '../utils/spanUtils.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan } from './utils.js';\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpan(options, callback) {\n const acs = getAcs();\n if (acs.startSpan) {\n return acs.startSpan(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n return withScope(options.scope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n () => activeSpan.end(),\n );\n });\n });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startSpanManual(options, callback) {\n const acs = getAcs();\n if (acs.startSpanManual) {\n return acs.startSpanManual(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n return withScope(options.scope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n function finishAndSetSpan() {\n activeSpan.end();\n }\n\n return handleCallbackErrors(\n () => callback(activeSpan, finishAndSetSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nfunction startInactiveSpan(options) {\n const acs = getAcs();\n if (acs.startInactiveSpan) {\n return acs.startInactiveSpan(options);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n // If `options.scope` is defined, we use this as as a wrapper,\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = options.scope\n ? (callback) => withScope(options.scope, callback)\n : customParentSpan !== undefined\n ? (callback) => withActiveSpan(customParentSpan, callback)\n : (callback) => callback();\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return new SentryNonRecordingSpan();\n }\n\n return createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nconst continueTrace = (\n {\n sentryTrace,\n baggage,\n }\n\n,\n callback,\n) => {\n return withScope(scope => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n return callback();\n });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nfunction withActiveSpan(span, callback) {\n const acs = getAcs();\n if (acs.withActiveSpan) {\n return acs.withActiveSpan(span, callback);\n }\n\n return withScope(scope => {\n _setSpanForScope(scope, span || undefined);\n return callback(scope);\n });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nfunction suppressTracing(callback) {\n const acs = getAcs();\n\n if (acs.suppressTracing) {\n return acs.suppressTracing(callback);\n }\n\n return withScope(scope => {\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n return callback();\n });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n * or page will automatically create a new trace.\n */\nfunction startNewTrace(callback) {\n return withScope(scope => {\n scope.setPropagationContext(generatePropagationContext());\n DEBUG_BUILD && logger.info(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n return withActiveSpan(null, callback);\n });\n}\n\nfunction createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n}\n\n) {\n if (!hasTracingEnabled()) {\n return new SentryNonRecordingSpan();\n }\n\n const isolationScope = getIsolationScope();\n\n let span;\n if (parentSpan && !forceTransaction) {\n span = _startChildSpan(parentSpan, scope, spanArguments);\n addChildSpanToSpan(parentSpan, span);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const parentSampled = spanIsSampled(parentSpan);\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n freezeDscOnSpan(span, dsc);\n } else {\n const {\n traceId,\n dsc,\n parentSpanId,\n sampled: parentSampled,\n } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n if (dsc) {\n freezeDscOnSpan(span, dsc);\n }\n }\n\n logSpanStart(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options) {\n const exp = options.experimental || {};\n const initialCtx = {\n isStandalone: exp.standalone,\n ...options,\n };\n\n if (options.startTime) {\n const ctx = { ...initialCtx };\n ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return initialCtx;\n}\n\nfunction getAcs() {\n const carrier = getMainCarrier();\n return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments, scope, parentSampled) {\n const client = getClient();\n const options = (client && client.getOptions()) || {};\n\n const { name = '', attributes } = spanArguments;\n const [sampled, sampleRate] = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY]\n ? [false]\n : sampleSpan(options, {\n name,\n parentSampled,\n attributes,\n transactionContext: {\n name,\n parentSampled,\n },\n });\n\n const rootSpan = new SentrySpan({\n ...spanArguments,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n ...spanArguments.attributes,\n },\n sampled,\n });\n if (sampleRate !== undefined) {\n rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, sampleRate);\n }\n\n if (client) {\n client.emit('spanStart', rootSpan);\n }\n\n return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan, scope, spanArguments) {\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n const childSpan = sampled\n ? new SentrySpan({\n ...spanArguments,\n parentSpanId: spanId,\n traceId,\n sampled,\n })\n : new SentryNonRecordingSpan({ traceId });\n\n addChildSpanToSpan(parentSpan, childSpan);\n\n const client = getClient();\n if (client) {\n client.emit('spanStart', childSpan);\n // If it has an endTimestamp, it's already ended\n if (spanArguments.endTimestamp) {\n client.emit('spanEnd', childSpan);\n }\n }\n\n return childSpan;\n}\n\nfunction getParentSpan(scope) {\n const span = _getSpanForScope(scope) ;\n\n if (!span) {\n return undefined;\n }\n\n const client = getClient();\n const options = client ? client.getOptions() : {};\n if (options.parentSpanIsAlwaysRootSpan) {\n return getRootSpan(span) ;\n }\n\n return span;\n}\n\nfunction getActiveSpanWrapper(parentSpan) {\n return parentSpan !== undefined\n ? (callback) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback) => callback();\n}\n\nexport { continueTrace, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nimport isFragment from \"./React/isFragment\";\nvar ReactMajorVersion = Number(version.split('.')[0]);\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n if (!nodeOrComponent) {\n return false;\n }\n\n // React 19 no need `forwardRef` anymore. So just pass if is a React element.\n if (isReactElement(nodeOrComponent) && ReactMajorVersion >= 19) {\n return true;\n }\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = function getNodeRef(node) {\n if (node && isReactElement(node)) {\n var ele = node;\n\n // Source from:\n // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/getReactNodeRef/getReactNodeRef.ts\n return ele.props.propertyIsEnumerable('ref') ? ele.props.ref : ele.ref;\n }\n return null;\n};","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _LockOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/LockOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar LockOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _LockOutlined.default\n }));\n};\n/**![lock](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA0NjRoLTY4VjI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzIgMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjRIMzMyVjI0MHptNDYwIDYwMEgyMzJWNTM2aDU2MHYzMDR6TTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxMC01NiAweiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(LockOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"LockOutlined\";\n}\nvar _default = RefIcon;\n","var root = require('./_root');\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\nmodule.exports = now;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexports.default = CheckOutlined;\n","import { AggregationColor } from '../../color-picker/color';\nimport { isBright } from '../../color-picker/components/ColorPresets';\nimport { getLineHeight, mergeToken } from '../../theme/internal';\nexport const prepareToken = token => {\n const {\n paddingInline,\n onlyIconSize,\n paddingBlock\n } = token;\n const buttonToken = mergeToken(token, {\n buttonPaddingHorizontal: paddingInline,\n buttonPaddingVertical: paddingBlock,\n buttonIconOnlyFontSize: onlyIconSize\n });\n return buttonToken;\n};\nexport const prepareComponentToken = token => {\n var _a, _b, _c, _d, _e, _f;\n const contentFontSize = (_a = token.contentFontSize) !== null && _a !== void 0 ? _a : token.fontSize;\n const contentFontSizeSM = (_b = token.contentFontSizeSM) !== null && _b !== void 0 ? _b : token.fontSize;\n const contentFontSizeLG = (_c = token.contentFontSizeLG) !== null && _c !== void 0 ? _c : token.fontSizeLG;\n const contentLineHeight = (_d = token.contentLineHeight) !== null && _d !== void 0 ? _d : getLineHeight(contentFontSize);\n const contentLineHeightSM = (_e = token.contentLineHeightSM) !== null && _e !== void 0 ? _e : getLineHeight(contentFontSizeSM);\n const contentLineHeightLG = (_f = token.contentLineHeightLG) !== null && _f !== void 0 ? _f : getLineHeight(contentFontSizeLG);\n const solidTextColor = isBright(new AggregationColor(token.colorBgSolid), '#fff') ? '#000' : '#fff';\n return {\n fontWeight: 400,\n defaultShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`,\n primaryShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`,\n dangerShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`,\n primaryColor: token.colorTextLightSolid,\n dangerColor: token.colorTextLightSolid,\n borderColorDisabled: token.colorBorder,\n defaultGhostColor: token.colorBgContainer,\n ghostBg: 'transparent',\n defaultGhostBorderColor: token.colorBgContainer,\n paddingInline: token.paddingContentHorizontal - token.lineWidth,\n paddingInlineLG: token.paddingContentHorizontal - token.lineWidth,\n paddingInlineSM: 8 - token.lineWidth,\n onlyIconSize: token.fontSizeLG,\n onlyIconSizeSM: token.fontSizeLG - 2,\n onlyIconSizeLG: token.fontSizeLG + 2,\n groupBorderColor: token.colorPrimaryHover,\n linkHoverBg: 'transparent',\n textTextColor: token.colorText,\n textTextHoverColor: token.colorText,\n textTextActiveColor: token.colorText,\n textHoverBg: token.colorFillTertiary,\n defaultColor: token.colorText,\n defaultBg: token.colorBgContainer,\n defaultBorderColor: token.colorBorder,\n defaultBorderColorDisabled: token.colorBorder,\n defaultHoverBg: token.colorBgContainer,\n defaultHoverColor: token.colorPrimaryHover,\n defaultHoverBorderColor: token.colorPrimaryHover,\n defaultActiveBg: token.colorBgContainer,\n defaultActiveColor: token.colorPrimaryActive,\n defaultActiveBorderColor: token.colorPrimaryActive,\n solidTextColor,\n contentFontSize,\n contentFontSizeSM,\n contentFontSizeLG,\n contentLineHeight,\n contentLineHeightSM,\n contentLineHeightLG,\n paddingBlock: Math.max((token.controlHeight - contentFontSize * contentLineHeight) / 2 - token.lineWidth, 0),\n paddingBlockSM: Math.max((token.controlHeightSM - contentFontSizeSM * contentLineHeightSM) / 2 - token.lineWidth, 0),\n paddingBlockLG: Math.max((token.controlHeightLG - contentFontSizeLG * contentLineHeightLG) / 2 - token.lineWidth, 0)\n };\n};","import useCustomCompareEffect from './useCustomCompareEffect';\nimport isDeepEqual from './misc/isDeepEqual';\nvar isPrimitive = function (val) { return val !== Object(val); };\nvar useDeepCompareEffect = function (effect, deps) {\n if (process.env.NODE_ENV !== 'production') {\n if (!(deps instanceof Array) || !deps.length) {\n console.warn('`useDeepCompareEffect` should not be used with no dependencies. Use React.useEffect instead.');\n }\n if (deps.every(isPrimitive)) {\n console.warn('`useDeepCompareEffect` should not be used with dependencies that are all primitive values. Use React.useEffect instead.');\n }\n }\n useCustomCompareEffect(effect, deps, isDeepEqual);\n};\nexport default useDeepCompareEffect;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _ExportOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/ExportOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar ExportOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _ExportOutlined.default\n }));\n};\n/**![export](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNODgwIDkxMkgxNDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE0NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzNjBjNC40IDAgOCAzLjYgOCA4djU2YzAgNC40LTMuNiA4LTggOEgxODR2NjU2aDY1NlY1MjBjMC00LjQgMy42LTggOC04aDU2YzQuNCAwIDggMy42IDggOHYzNjBjMCAxNy43LTE0LjMgMzItMzIgMzJ6TTc3MC44NyAxOTkuMTNsLTUyLjItNTIuMmE4LjAxIDguMDEgMCAwMTQuNy0xMy42bDE3OS40LTIxYzUuMS0uNiA5LjUgMy43IDguOSA4LjlsLTIxIDE3OS40Yy0uOCA2LjYtOC45IDkuNC0xMy42IDQuN2wtNTIuNC01Mi40LTI1Ni4yIDI1Ni4yYTguMDMgOC4wMyAwIDAxLTExLjMgMGwtNDIuNC00Mi40YTguMDMgOC4wMyAwIDAxMC0xMS4zbDI1Ni4xLTI1Ni4zeiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(ExportOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"ExportOutlined\";\n}\nvar _default = RefIcon;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","import React from 'react';\nexport const ModalContext = /*#__PURE__*/React.createContext({});\nexport const {\n Provider: ModalContextProvider\n} = ModalContext;","module.exports = __webpack_public_path__ + \"54a10f3bddad1e6da452fee7124fe846.js\";","import { useSearchParams } from 'react-router-dom-v5-compat';\n\nexport const useUrlSearchParams = () => {\n const [searchParams] = useSearchParams();\n\n return Object.fromEntries([...searchParams]);\n};\n","module.exports = __webpack_public_path__ + \"da740c1b29a85b999a6874b59a1baeef.js\";","const openpathLoginUrl: Record = {\n prod: `https://control.alta.avigilon.com/`,\n prodeu1: `https://control.eu.alta.avigilon.com/`,\n dev: 'https://platinum.dev.alta.avigilon.com/',\n sandbox: 'https://platinum.sandbox.alta.avigilon.com/',\n mine: `http://localhost:3000/`,\n};\n\nexport const getPlatinumUrl = (region: string): string => {\n return openpathLoginUrl[region];\n};\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.joi=t():e.joi=t()}(self,(()=>{return e={7629:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(9474),i=r(1687),o=r(8652),l=r(8160),c=r(3292),u=r(6354),f=r(8901),m=r(9708),h=r(6914),d=r(2294),p=r(6133),g=r(1152),y=r(8863),b=r(2036),v={Base:class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new d.Ids,this._preferences=null,this._refs=new p.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return s(\"function\"==typeof m.describe,\"Manifest functionality disabled\"),m.describe(this)}allow(...e){return l.verifyFlat(e,\"allow\"),this._values(e,\"_valids\")}alter(e){s(e&&\"object\"==typeof e&&!Array.isArray(e),\"Invalid targets argument\"),s(!this._inRuleset(),\"Cannot set alterations inside a ruleset\");const t=this.clone();t.$_terms.alterations=t.$_terms.alterations||[];for(const r in e){const n=e[r];s(\"function\"==typeof n,\"Alteration adjuster for\",r,\"must be a function\"),t.$_terms.alterations.push({target:r,adjuster:n})}return t.$_temp.ruleset=!1,t}artifact(e){return s(void 0!==e,\"Artifact cannot be undefined\"),s(!this._cache,\"Cannot set an artifact with a rule cache\"),this.$_setFlag(\"artifact\",e)}cast(e){return s(!1===e||\"string\"==typeof e,\"Invalid to value\"),s(!1===e||this._definition.cast[e],\"Type\",this.type,\"does not support casting to\",e),this.$_setFlag(\"cast\",!1===e?void 0:e)}default(e,t){return this._default(\"default\",e,t)}description(e){return s(e&&\"string\"==typeof e,\"Description must be a non-empty string\"),this.$_setFlag(\"description\",e)}empty(e){const t=this.clone();return void 0!==e&&(e=t.$_compile(e,{override:!1})),t.$_setFlag(\"empty\",e,{clone:!1})}error(e){return s(e,\"Missing error\"),s(e instanceof Error||\"function\"==typeof e,\"Must provide a valid Error object or a function\"),this.$_setFlag(\"error\",e)}example(e,t={}){return s(void 0!==e,\"Missing example\"),l.assertOptions(t,[\"override\"]),this._inner(\"examples\",e,{single:!0,override:t.override})}external(e,t){return\"object\"==typeof e&&(s(!t,\"Cannot combine options with description\"),t=e.description,e=e.method),s(\"function\"==typeof e,\"Method must be a function\"),s(void 0===t||t&&\"string\"==typeof t,\"Description must be a non-empty string\"),this._inner(\"externals\",{method:e,description:t},{single:!0})}failover(e,t){return this._default(\"failover\",e,t)}forbidden(){return this.presence(\"forbidden\")}id(e){return e?(s(\"string\"==typeof e,\"id must be a non-empty string\"),s(/^[^\\.]+$/.test(e),\"id cannot contain period character\"),this.$_setFlag(\"id\",e)):this.$_setFlag(\"id\",void 0)}invalid(...e){return this._values(e,\"_invalids\")}label(e){return s(e&&\"string\"==typeof e,\"Label name must be a non-empty string\"),this.$_setFlag(\"label\",e)}meta(e){return s(void 0!==e,\"Meta cannot be undefined\"),this._inner(\"metas\",e,{single:!0})}note(...e){s(e.length,\"Missing notes\");for(const t of e)s(t&&\"string\"==typeof t,\"Notes must be non-empty strings\");return this._inner(\"notes\",e)}only(e=!0){return s(\"boolean\"==typeof e,\"Invalid mode:\",e),this.$_setFlag(\"only\",e)}optional(){return this.presence(\"optional\")}prefs(e){s(e,\"Missing preferences\"),s(void 0===e.context,\"Cannot override context\"),s(void 0===e.externals,\"Cannot override externals\"),s(void 0===e.warnings,\"Cannot override warnings\"),s(void 0===e.debug,\"Cannot override debug\"),l.checkPreferences(e);const t=this.clone();return t._preferences=l.preferences(t._preferences,e),t}presence(e){return s([\"optional\",\"required\",\"forbidden\"].includes(e),\"Unknown presence mode\",e),this.$_setFlag(\"presence\",e)}raw(e=!0){return this.$_setFlag(\"result\",e?\"raw\":void 0)}result(e){return s([\"raw\",\"strip\"].includes(e),\"Unknown result mode\",e),this.$_setFlag(\"result\",e)}required(){return this.presence(\"required\")}strict(e){const t=this.clone(),r=void 0!==e&&!e;return t._preferences=l.preferences(t._preferences,{convert:r}),t}strip(e=!0){return this.$_setFlag(\"result\",e?\"strip\":void 0)}tag(...e){s(e.length,\"Missing tags\");for(const t of e)s(t&&\"string\"==typeof t,\"Tags must be non-empty strings\");return this._inner(\"tags\",e)}unit(e){return s(e&&\"string\"==typeof e,\"Unit name must be a non-empty string\"),this.$_setFlag(\"unit\",e)}valid(...e){l.verifyFlat(e,\"valid\");const t=this.allow(...e);return t.$_setFlag(\"only\",!!t._valids,{clone:!1}),t}when(e,t){const r=this.clone();r.$_terms.whens||(r.$_terms.whens=[]);const n=c.when(r,e,t);if(![\"any\",\"link\"].includes(r.type)){const e=n.is?[n]:n.switch;for(const t of e)s(!t.then||\"any\"===t.then.type||t.then.type===r.type,\"Cannot combine\",r.type,\"with\",t.then&&t.then.type),s(!t.otherwise||\"any\"===t.otherwise.type||t.otherwise.type===r.type,\"Cannot combine\",r.type,\"with\",t.otherwise&&t.otherwise.type)}return r.$_terms.whens.push(n),r.$_mutateRebuild()}cache(e){s(!this._inRuleset(),\"Cannot set caching inside a ruleset\"),s(!this._cache,\"Cannot override schema cache\"),s(void 0===this._flags.artifact,\"Cannot cache a rule with an artifact\");const t=this.clone();return t._cache=e||o.provider.provision(),t.$_temp.ruleset=!1,t}clone(){const e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){s(l.isSchema(e),\"Invalid schema object\"),s(\"any\"===this.type||\"any\"===e.type||e.type===this.type,\"Cannot merge type\",this.type,\"with another type:\",e.type),s(!this._inRuleset(),\"Cannot concatenate onto a schema with open ruleset\"),s(!e._inRuleset(),\"Cannot concatenate a schema with open ruleset\");let t=this.clone();if(\"any\"===this.type&&\"any\"!==e.type){const r=e.clone();for(const e of Object.keys(t))\"type\"!==e&&(r[e]=t[e]);t=r}t._ids.concat(e._ids),t._refs.register(e,p.toSibling),t._preferences=t._preferences?l.preferences(t._preferences,e._preferences):e._preferences,t._valids=b.merge(t._valids,e._valids,e._invalids),t._invalids=b.merge(t._invalids,e._invalids,e._valids);for(const r of e._singleRules.keys())t._singleRules.has(r)&&(t._rules=t._rules.filter((e=>e.keep||e.name!==r)),t._singleRules.delete(r));for(const r of e._rules)e._definition.rules[r.method].multi||t._singleRules.set(r.name,r),t._rules.push(r);if(t._flags.empty&&e._flags.empty){t._flags.empty=t._flags.empty.concat(e._flags.empty);const r=Object.assign({},e._flags);delete r.empty,i(t._flags,r)}else if(e._flags.empty){t._flags.empty=e._flags.empty;const r=Object.assign({},e._flags);delete r.empty,i(t._flags,r)}else i(t._flags,e._flags);for(const r in e.$_terms){const s=e.$_terms[r];s?t.$_terms[r]?t.$_terms[r]=t.$_terms[r].concat(s):t.$_terms[r]=s.slice():t.$_terms[r]||(t.$_terms[r]=s)}return this.$_root._tracer&&this.$_root._tracer._combine(t,[this,e]),t.$_mutateRebuild()}extend(e){return s(!e.base,\"Cannot extend type with another base\"),f.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split(\".\"),this._ids.reach(e)}fork(e,t){s(!this._inRuleset(),\"Cannot fork inside a ruleset\");let r=this;for(let s of[].concat(e))s=Array.isArray(s)?s:s.split(\".\"),r=r._ids.fork(s,t,r);return r.$_temp.ruleset=!1,r}rule(e){const t=this._definition;l.assertOptions(e,Object.keys(t.modifiers)),s(!1!==this.$_temp.ruleset,\"Cannot apply rules to empty ruleset or the last rule added does not support rule properties\");const r=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;s(r>=0&&rt.tailor(e),ref:!1}),t.$_temp.ruleset=!1,t.$_mutateRebuild()}tracer(){return g.location?g.location(this):this}validate(e,t){return y.entry(e,this,t)}validateAsync(e,t){return y.entryAsync(e,this,t)}$_addRule(e){\"string\"==typeof e&&(e={name:e}),s(e&&\"object\"==typeof e,\"Invalid options\"),s(e.name&&\"string\"==typeof e.name,\"Invalid rule name\");for(const t in e)s(\"_\"!==t[0],\"Cannot set private rule properties\");const t=Object.assign({},e);t._resolve=[],t.method=t.method||t.name;const r=this._definition.rules[t.method],n=t.args;s(r,\"Unknown rule\",t.method);const a=this.clone();if(n){s(1===Object.keys(n).length||Object.keys(n).length===this._definition.rules[t.name].args.length,\"Invalid rule definition for\",this.type,t.name);for(const e in n){let i=n[e];if(r.argsByName){const o=r.argsByName.get(e);if(o.ref&&l.isResolvable(i))t._resolve.push(e),a.$_mutateRegister(i);else if(o.normalize&&(i=o.normalize(i),n[e]=i),o.assert){const t=l.validateArg(i,e,o);s(!t,t,\"or reference\")}}void 0!==i?n[e]=i:delete n[e]}}return r.multi||(a._ruleRemove(t.name,{clone:!1}),a._singleRules.set(t.name,t)),!1===a.$_temp.ruleset&&(a.$_temp.ruleset=null),r.priority?a._rules.unshift(t):a._rules.push(t),a}$_compile(e,t){return c.schema(this.$_root,e,t)}$_createError(e,t,r,s,n,a={}){const i=!1!==a.flags?this._flags:{},o=a.messages?h.merge(this._definition.messages,a.messages):this._definition.messages;return new u.Report(e,t,r,i,o,s,n)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split(\".\"),this._ids.labels(e)}$_match(e,t,r,s){(r=Object.assign({},r)).abortEarly=!0,r._externals=!1,t.snapshot();const n=!y.validate(e,this,t,r,s).errors;return t.restore(),n}$_modify(e){return l.assertOptions(e,[\"each\",\"once\",\"ref\",\"schema\"]),d.schema(this,e)||this}$_mutateRebuild(){return s(!this._inRuleset(),\"Cannot add this rule inside a ruleset\"),this._refs.reset(),this._ids.reset(),this.$_modify({each:(e,{source:t,name:r,path:s,key:n})=>{const a=this._definition[t][r]&&this._definition[t][r].register;!1!==a&&this.$_mutateRegister(e,{family:a,key:n})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(e,{family:t,key:r}={}){this._refs.register(e,t),this._ids.register(e,{key:r})}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,t,r={}){s(\"_\"===e[0]||!this._inRuleset(),\"Cannot set flag inside a ruleset\");const n=this._definition.flags[e]||{};if(a(t,n.default)&&(t=void 0),a(t,this._flags[e]))return this;const i=!1!==r.clone?this.clone():this;return void 0!==t?(i._flags[e]=t,i.$_mutateRegister(t)):delete i._flags[e],\"_\"!==e[0]&&(i.$_temp.ruleset=!1),i}$_parent(e,...t){return this[e][l.symbols.parent].call(this,...t)}$_validate(e,t,r){return y.validate(e,this,t,r)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=n(this._singleRules,{shallow:!0}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(const t in this.$_terms)e.$_terms[t]=this.$_terms[t]?this.$_terms[t].slice():null;e.$_super={};for(const t in this.$_super)e.$_super[t]=this._super[t].bind(e);return e}_bare(){const e=this.clone();e._reset();const t=e._definition.terms;for(const r in t){const s=t[r];e.$_terms[r]=s.init}return e.$_mutateRebuild()}_default(e,t,r={}){return l.assertOptions(r,\"literal\"),s(void 0!==t,\"Missing\",e,\"value\"),s(\"function\"==typeof t||!r.literal,\"Only function value supports literal option\"),\"function\"==typeof t&&r.literal&&(t={[l.symbols.literal]:!0,literal:t}),this.$_setFlag(e,t)}_generate(e,t,r){if(!this.$_terms.whens)return{schema:this};const s=[],n=[];for(let a=0;ac)break}const a=n.join(\", \");if(t.mainstay.tracer.debug(t,\"rule\",\"when\",a),!a)return{schema:this};if(!t.mainstay.tracer.active&&this.$_temp.whens[a])return{schema:this.$_temp.whens[a],id:a};let i=this;this._definition.generate&&(i=this._definition.generate(this,e,t,r));for(const e of s)i=i.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(i,[this,...s]),this.$_temp.whens[a]=i,{schema:i,id:a}}_inner(e,t,r={}){s(!this._inRuleset(),`Cannot set ${e} inside a ruleset`);const n=this.clone();return n.$_terms[e]&&!r.override||(n.$_terms[e]=[]),r.single?n.$_terms[e].push(t):n.$_terms[e].push(...t),n.$_temp.ruleset=!1,n}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(e,t={}){if(!this._singleRules.has(e))return this;const r=!1!==t.clone?this.clone():this;r._singleRules.delete(e);const s=[];for(let t=0;t{\"use strict\";const s=r(375),n=r(8571),a=r(8160),i={max:1e3,supported:new Set([\"undefined\",\"boolean\",\"number\",\"string\"])};t.provider={provision:e=>new i.Cache(e)},i.Cache=class{constructor(e={}){a.assertOptions(e,[\"max\"]),s(void 0===e.max||e.max&&e.max>0&&isFinite(e.max),\"Invalid max cache size\"),this._max=e.max||i.max,this._map=new Map,this._list=new i.List}get length(){return this._map.size}set(e,t){if(null!==e&&!i.supported.has(typeof e))return;let r=this._map.get(e);if(r)return r.value=t,void this._list.first(r);r=this._list.unshift({key:e,value:t}),this._map.set(e,r),this._compact()}get(e){const t=this._map.get(e);if(t)return this._list.first(t),n(t.value)}_compact(){if(this._map.size>this._max){const e=this._list.pop();this._map.delete(e.key)}}},i.List=class{constructor(){this.tail=null,this.head=null}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e))}pop(){return this._remove(this.tail)}_remove(e){const{next:t,prev:r}=e;return t.prev=r,r&&(r.next=t),e===this.tail&&(this.tail=t),e.prev=null,e.next=null,e}}},8160:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7916),a=r(5934);let i,o;const l={isoDate:/^(?:[-+]\\d{2})?(?:\\d{4}(?!\\d{2}\\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\\1(?:[12]\\d|0[1-9]|3[01]))?|W(?:[0-4]\\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))(?![T]$|[T][\\d]+Z$)(?:[T\\s](?:(?:(?:[01]\\d|2[0-3])(?:(:?)[0-5]\\d)?|24\\:?00)(?:[.,]\\d+(?!:))?)(?:\\2[0-5]\\d(?:[.,]\\d+)?)?(?:[Z]|(?:[+-])(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?)?)?)?$/};t.version=a.version,t.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:\"iso\",errors:{escapeHtml:!1,label:\"path\",language:null,render:!0,stack:!1,wrap:{label:'\"',array:\"[]\"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:\"optional\",skipFunctions:!1,stripUnknown:!1,warnings:!1},t.symbols={any:Symbol.for(\"@hapi/joi/schema\"),arraySingle:Symbol(\"arraySingle\"),deepDefault:Symbol(\"deepDefault\"),errors:Symbol(\"errors\"),literal:Symbol(\"literal\"),override:Symbol(\"override\"),parent:Symbol(\"parent\"),prefs:Symbol(\"prefs\"),ref:Symbol(\"ref\"),template:Symbol(\"template\"),values:Symbol(\"values\")},t.assertOptions=function(e,t,r=\"Options\"){s(e&&\"object\"==typeof e&&!Array.isArray(e),\"Options must be of type object\");const n=Object.keys(e).filter((e=>!t.includes(e)));s(0===n.length,`${r} contain unknown keys: ${n}`)},t.checkPreferences=function(e){o=o||r(3378);const t=o.preferences.validate(e);if(t.error)throw new n([t.error.details[0].message])},t.compare=function(e,t,r){switch(r){case\"=\":return e===t;case\">\":return e>t;case\"<\":return e=\":return e>=t;case\"<=\":return e<=t}},t.default=function(e,t){return void 0===e?t:e},t.isIsoDate=function(e){return l.isoDate.test(e)},t.isNumber=function(e){return\"number\"==typeof e&&!isNaN(e)},t.isResolvable=function(e){return!!e&&(e[t.symbols.ref]||e[t.symbols.template])},t.isSchema=function(e,r={}){const n=e&&e[t.symbols.any];return!!n&&(s(r.legacy||n.version===t.version,\"Cannot mix different versions of joi schemas\"),!0)},t.isValues=function(e){return e[t.symbols.values]},t.limit=function(e){return Number.isSafeInteger(e)&&e>=0},t.preferences=function(e,s){i=i||r(6914),e=e||{},s=s||{};const n=Object.assign({},e,s);return s.errors&&e.errors&&(n.errors=Object.assign({},e.errors,s.errors),n.errors.wrap=Object.assign({},e.errors.wrap,s.errors.wrap)),s.messages&&(n.messages=i.compile(s.messages,e.messages)),delete n[t.symbols.prefs],n},t.tryWithPath=function(e,t,r={}){try{return e()}catch(e){throw void 0!==e.path?e.path=t+\".\"+e.path:e.path=t,r.append&&(e.message=`${e.message} (${e.path})`),e}},t.validateArg=function(e,r,{assert:s,message:n}){if(t.isSchema(s)){const t=s.validate(e);if(!t.error)return;return t.error.message}if(!s(e))return r?`${r} ${n}`:n},t.verifyFlat=function(e,t){for(const r of e)s(!Array.isArray(r),\"Method no longer accepts array arguments:\",t)}},3292:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8160),a=r(6133),i={};t.schema=function(e,t,r={}){n.assertOptions(r,[\"appendPath\",\"override\"]);try{return i.schema(e,t,r)}catch(e){throw r.appendPath&&void 0!==e.path&&(e.message=`${e.message} (${e.path})`),e}},i.schema=function(e,t,r){s(void 0!==t,\"Invalid undefined schema\"),Array.isArray(t)&&(s(t.length,\"Invalid empty array schema\"),1===t.length&&(t=t[0]));const a=(t,...s)=>!1!==r.override?t.valid(e.override,...s):t.valid(...s);if(i.simple(t))return a(e,t);if(\"function\"==typeof t)return e.custom(t);if(s(\"object\"==typeof t,\"Invalid schema content:\",typeof t),n.isResolvable(t))return a(e,t);if(n.isSchema(t))return t;if(Array.isArray(t)){for(const r of t)if(!i.simple(r))return e.alternatives().try(...t);return a(e,...t)}return t instanceof RegExp?e.string().regex(t):t instanceof Date?a(e.date(),t):(s(Object.getPrototypeOf(t)===Object.getPrototypeOf({}),\"Schema can only contain plain objects\"),e.object().keys(t))},t.ref=function(e,t){return a.isRef(e)?e:a.create(e,t)},t.compile=function(e,r,a={}){n.assertOptions(a,[\"legacy\"]);const o=r&&r[n.symbols.any];if(o)return s(a.legacy||o.version===n.version,\"Cannot mix different versions of joi schemas:\",o.version,n.version),r;if(\"object\"!=typeof r||!a.legacy)return t.schema(e,r,{appendPath:!0});const l=i.walk(r);return l?l.compile(l.root,r):t.schema(e,r,{appendPath:!0})},i.walk=function(e){if(\"object\"!=typeof e)return null;if(Array.isArray(e)){for(const t of e){const e=i.walk(t);if(e)return e}return null}const t=e[n.symbols.any];if(t)return{root:e[t.root],compile:t.compile};s(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),\"Schema can only contain plain objects\");for(const t in e){const r=i.walk(e[t]);if(r)return r}return null},i.simple=function(e){return null===e||[\"boolean\",\"string\",\"number\"].includes(typeof e)},t.when=function(e,r,o){if(void 0===o&&(s(r&&\"object\"==typeof r,\"Missing options\"),o=r,r=a.create(\".\")),Array.isArray(o)&&(o={switch:o}),n.assertOptions(o,[\"is\",\"not\",\"then\",\"otherwise\",\"switch\",\"break\"]),n.isSchema(r))return s(void 0===o.is,'\"is\" can not be used with a schema condition'),s(void 0===o.not,'\"not\" can not be used with a schema condition'),s(void 0===o.switch,'\"switch\" can not be used with a schema condition'),i.condition(e,{is:r,then:o.then,otherwise:o.otherwise,break:o.break});if(s(a.isRef(r)||\"string\"==typeof r,\"Invalid condition:\",r),s(void 0===o.not||void 0===o.is,'Cannot combine \"is\" with \"not\"'),void 0===o.switch){let l=o;void 0!==o.not&&(l={is:o.not,then:o.otherwise,otherwise:o.then,break:o.break});let c=void 0!==l.is?e.$_compile(l.is):e.$_root.invalid(null,!1,0,\"\").required();return s(void 0!==l.then||void 0!==l.otherwise,'options must have at least one of \"then\", \"otherwise\", or \"switch\"'),s(void 0===l.break||void 0===l.then||void 0===l.otherwise,\"Cannot specify then, otherwise, and break all together\"),void 0===o.is||a.isRef(o.is)||n.isSchema(o.is)||(c=c.required()),i.condition(e,{ref:t.ref(r),is:c,then:l.then,otherwise:l.otherwise,break:l.break})}s(Array.isArray(o.switch),'\"switch\" must be an array'),s(void 0===o.is,'Cannot combine \"switch\" with \"is\"'),s(void 0===o.not,'Cannot combine \"switch\" with \"not\"'),s(void 0===o.then,'Cannot combine \"switch\" with \"then\"');const l={ref:t.ref(r),switch:[],break:o.break};for(let t=0;t{\"use strict\";const s=r(5688),n=r(8160),a=r(3328);t.Report=class{constructor(e,r,s,n,a,i,o){if(this.code=e,this.flags=n,this.messages=a,this.path=i.path,this.prefs=o,this.state=i,this.value=r,this.message=null,this.template=null,this.local=s||{},this.local.label=t.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty(\"value\")||(this.local.value=this.value),this.path.length){const e=this.path[this.path.length-1];\"object\"!=typeof e&&(this.local.key=e)}}_setTemplate(e){if(this.template=e,!this.flags.label&&0===this.path.length){const e=this._template(this.template,\"root\");e&&(this.local.label=e)}}toString(){if(this.message)return this.message;const e=this.code;if(!this.prefs.errors.render)return this.code;const t=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===t?`Error code \"${e}\" is not defined, your custom type is missing the correct messages definition`:(this.message=t.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^\"\" /,\"\").trim()),this.message)}_template(e,r){return t.template(this.value,e,r||this.code,this.state,this.prefs)}},t.path=function(e){let t=\"\";for(const r of e)\"object\"!=typeof r&&(\"string\"==typeof r?(t&&(t+=\".\"),t+=r):t+=`[${r}]`);return t},t.template=function(e,t,r,s,i){if(!t)return;if(a.isTemplate(t))return\"root\"!==r?t:null;let o=i.errors.language;if(n.isResolvable(o)&&(o=o.resolve(e,s,i)),o&&t[o]){if(void 0!==t[o][r])return t[o][r];if(void 0!==t[o][\"*\"])return t[o][\"*\"]}return t[r]?t[r]:t[\"*\"]},t.label=function(e,r,s,n){if(!s.errors.label)return\"\";if(e.label)return e.label;let a=r.path;\"key\"===s.errors.label&&r.path.length>1&&(a=r.path.slice(-1));return t.path(a)||t.template(null,s.messages,\"root\",r,s)||n&&t.template(null,n,\"root\",r,s)||\"value\"},t.process=function(e,r,s){if(!e)return null;const{override:n,message:a,details:i}=t.details(e);if(n)return n;if(s.errors.stack)return new t.ValidationError(a,i,r);const o=Error.stackTraceLimit;Error.stackTraceLimit=0;const l=new t.ValidationError(a,i,r);return Error.stackTraceLimit=o,l},t.details=function(e,t={}){let r=[];const s=[];for(const n of e){if(n instanceof Error){if(!1!==t.override)return{override:n};const e=n.toString();r.push(e),s.push({message:e,type:\"override\",context:{error:n}});continue}const e=n.toString();r.push(e),s.push({message:e,path:n.path.filter((e=>\"object\"!=typeof e)),type:n.code,context:n.local})}return r.length>1&&(r=[...new Set(r)]),{message:r.join(\". \"),details:s}},t.ValidationError=class extends Error{constructor(e,t,r){super(e),this._original=r,this.details=t}static isError(e){return e instanceof t.ValidationError}},t.ValidationError.prototype.isJoi=!0,t.ValidationError.prototype.name=\"ValidationError\",t.ValidationError.prototype.annotate=s.error},8901:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(8160),i=r(6914),o={};t.type=function(e,t){const r=Object.getPrototypeOf(e),l=n(r),c=e._assign(Object.create(l)),u=Object.assign({},t);delete u.base,l._definition=u;const f=r._definition||{};u.messages=i.merge(f.messages,u.messages),u.properties=Object.assign({},f.properties,u.properties),c.type=u.type,u.flags=Object.assign({},f.flags,u.flags);const m=Object.assign({},f.terms);if(u.terms)for(const e in u.terms){const t=u.terms[e];s(void 0===c.$_terms[e],\"Invalid term override for\",u.type,e),c.$_terms[e]=t.init,m[e]=t}u.terms=m,u.args||(u.args=f.args),u.prepare=o.prepare(u.prepare,f.prepare),u.coerce&&(\"function\"==typeof u.coerce&&(u.coerce={method:u.coerce}),u.coerce.from&&!Array.isArray(u.coerce.from)&&(u.coerce={method:u.coerce.method,from:[].concat(u.coerce.from)})),u.coerce=o.coerce(u.coerce,f.coerce),u.validate=o.validate(u.validate,f.validate);const h=Object.assign({},f.rules);if(u.rules)for(const e in u.rules){const t=u.rules[e];s(\"object\"==typeof t,\"Invalid rule definition for\",u.type,e);let r=t.method;if(void 0===r&&(r=function(){return this.$_addRule(e)}),r&&(s(!l[e],\"Rule conflict in\",u.type,e),l[e]=r),s(!h[e],\"Rule conflict in\",u.type,e),h[e]=t,t.alias){const e=[].concat(t.alias);for(const r of e)l[r]=t.method}t.args&&(t.argsByName=new Map,t.args=t.args.map((e=>(\"string\"==typeof e&&(e={name:e}),s(!t.argsByName.has(e.name),\"Duplicated argument name\",e.name),a.isSchema(e.assert)&&(e.assert=e.assert.strict().label(e.name)),t.argsByName.set(e.name,e),e))))}u.rules=h;const d=Object.assign({},f.modifiers);if(u.modifiers)for(const e in u.modifiers){s(!l[e],\"Rule conflict in\",u.type,e);const t=u.modifiers[e];s(\"function\"==typeof t,\"Invalid modifier definition for\",u.type,e);const r=function(t){return this.rule({[e]:t})};l[e]=r,d[e]=t}if(u.modifiers=d,u.overrides){l._super=r,c.$_super={};for(const e in u.overrides)s(r[e],\"Cannot override missing\",e),u.overrides[e][a.symbols.parent]=r[e],c.$_super[e]=r[e].bind(c);Object.assign(l,u.overrides)}u.cast=Object.assign({},f.cast,u.cast);const p=Object.assign({},f.manifest,u.manifest);return p.build=o.build(u.manifest&&u.manifest.build,f.manifest&&f.manifest.build),u.manifest=p,u.rebuild=o.rebuild(u.rebuild,f.rebuild),c},o.build=function(e,t){return e&&t?function(r,s){return t(e(r,s),s)}:e||t},o.coerce=function(e,t){return e&&t?{from:e.from&&t.from?[...new Set([...e.from,...t.from])]:null,method(r,s){let n;if((!t.from||t.from.includes(typeof r))&&(n=t.method(r,s),n)){if(n.errors||void 0===n.value)return n;r=n.value}if(!e.from||e.from.includes(typeof r)){const t=e.method(r,s);if(t)return t}return n}}:e||t},o.prepare=function(e,t){return e&&t?function(r,s){const n=e(r,s);if(n){if(n.errors||void 0===n.value)return n;r=n.value}return t(r,s)||n}:e||t},o.rebuild=function(e,t){return e&&t?function(r){t(r),e(r)}:e||t},o.validate=function(e,t){return e&&t?function(r,s){const n=t(r,s);if(n){if(n.errors&&(!Array.isArray(n.errors)||n.errors.length))return n;r=n.value}return e(r,s)||n}:e||t}},5107:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(8652),i=r(8160),o=r(3292),l=r(6354),c=r(8901),u=r(9708),f=r(6133),m=r(3328),h=r(1152);let d;const p={types:{alternatives:r(4946),any:r(8068),array:r(546),boolean:r(4937),date:r(7500),function:r(390),link:r(8785),number:r(3832),object:r(8966),string:r(7417),symbol:r(8826)},aliases:{alt:\"alternatives\",bool:\"boolean\",func:\"function\"},root:function(){const e={_types:new Set(Object.keys(p.types))};for(const t of e._types)e[t]=function(...e){return s(!e.length||[\"alternatives\",\"link\",\"object\"].includes(t),\"The\",t,\"type does not allow arguments\"),p.generate(this,p.types[t],e)};for(const t of[\"allow\",\"custom\",\"disallow\",\"equal\",\"exist\",\"forbidden\",\"invalid\",\"not\",\"only\",\"optional\",\"options\",\"prefs\",\"preferences\",\"required\",\"strip\",\"valid\",\"when\"])e[t]=function(...e){return this.any()[t](...e)};Object.assign(e,p.methods);for(const t in p.aliases){const r=p.aliases[t];e[t]=e[r]}return e.x=e.expression,h.setup&&h.setup(e),e}};p.methods={ValidationError:l.ValidationError,version:i.version,cache:a.provider,assert(e,t,...r){p.assert(e,t,!0,r)},attempt:(e,t,...r)=>p.assert(e,t,!1,r),build(e){return s(\"function\"==typeof u.build,\"Manifest functionality disabled\"),u.build(this,e)},checkPreferences(e){i.checkPreferences(e)},compile(e,t){return o.compile(this,e,t)},defaults(e){s(\"function\"==typeof e,\"modifier must be a function\");const t=Object.assign({},this);for(const r of t._types){const n=e(t[r]());s(i.isSchema(n),\"modifier must return a valid schema object\"),t[r]=function(...e){return p.generate(this,n,e)}}return t},expression:(...e)=>new m(...e),extend(...e){i.verifyFlat(e,\"extend\"),d=d||r(3378),s(e.length,\"You need to provide at least one extension\"),this.assert(e,d.extensions);const t=Object.assign({},this);t._types=new Set(t._types);for(let r of e){\"function\"==typeof r&&(r=r(t)),this.assert(r,d.extension);const e=p.expandExtension(r,t);for(const r of e){s(void 0===t[r.type]||t._types.has(r.type),\"Cannot override name\",r.type);const e=r.base||this.any(),n=c.type(e,r);t._types.add(r.type),t[r.type]=function(...e){return p.generate(this,n,e)}}}return t},isError:l.ValidationError.isError,isExpression:m.isTemplate,isRef:f.isRef,isSchema:i.isSchema,in:(...e)=>f.in(...e),override:i.symbols.override,ref:(...e)=>f.create(...e),types(){const e={};for(const t of this._types)e[t]=this[t]();for(const t in p.aliases)e[t]=this[t]();return e}},p.assert=function(e,t,r,s){const a=s[0]instanceof Error||\"string\"==typeof s[0]?s[0]:null,o=null!==a?s[1]:s[0],c=t.validate(e,i.preferences({errors:{stack:!0}},o||{}));let u=c.error;if(!u)return c.value;if(a instanceof Error)throw a;const f=r&&\"function\"==typeof u.annotate?u.annotate():u.message;throw u instanceof l.ValidationError==0&&(u=n(u)),u.message=a?`${a} ${f}`:f,u},p.generate=function(e,t,r){return s(e,\"Must be invoked on a Joi instance.\"),t.$_root=e,t._definition.args&&r.length?t._definition.args(t,...r):t},p.expandExtension=function(e,t){if(\"string\"==typeof e.type)return[e];const r=[];for(const s of t._types)if(e.type.test(s)){const n=Object.assign({},e);n.type=s,n.base=t[s](),r.push(n)}return r},e.exports=p.root()},6914:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(3328);t.compile=function(e,t){if(\"string\"==typeof e)return s(!t,\"Cannot set single message string\"),new a(e);if(a.isTemplate(e))return s(!t,\"Cannot set single message template\"),e;s(\"object\"==typeof e&&!Array.isArray(e),\"Invalid message options\"),t=t?n(t):{};for(let r in e){const n=e[r];if(\"root\"===r||a.isTemplate(n)){t[r]=n;continue}if(\"string\"==typeof n){t[r]=new a(n);continue}s(\"object\"==typeof n&&!Array.isArray(n),\"Invalid message for\",r);const i=r;for(r in t[i]=t[i]||{},n){const e=n[r];\"root\"===r||a.isTemplate(e)?t[i][r]=e:(s(\"string\"==typeof e,\"Invalid message for\",r,\"in\",i),t[i][r]=new a(e))}}return t},t.decompile=function(e){const t={};for(let r in e){const s=e[r];if(\"root\"===r){t.root=s;continue}if(a.isTemplate(s)){t[r]=s.describe({compact:!0});continue}const n=r;for(r in t[n]={},s){const e=s[r];\"root\"!==r?t[n][r]=e.describe({compact:!0}):t[n].root=e}}return t},t.merge=function(e,r){if(!e)return t.compile(r);if(!r)return e;if(\"string\"==typeof r)return new a(r);if(a.isTemplate(r))return r;const i=n(e);for(let e in r){const t=r[e];if(\"root\"===e||a.isTemplate(t)){i[e]=t;continue}if(\"string\"==typeof t){i[e]=new a(t);continue}s(\"object\"==typeof t&&!Array.isArray(t),\"Invalid message for\",e);const n=e;for(e in i[n]=i[n]||{},t){const r=t[e];\"root\"===e||a.isTemplate(r)?i[n][e]=r:(s(\"string\"==typeof r,\"Invalid message for\",e,\"in\",n),i[n][e]=new a(r))}}return i}},2294:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8160),a=r(6133),i={};t.Ids=i.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){const e=new i.Ids;return e._byId=new Map(this._byId),e._byKey=new Map(this._byKey),e._schemaChain=this._schemaChain,e}concat(e){e._schemaChain&&(this._schemaChain=!0);for(const[t,r]of e._byId.entries())s(!this._byKey.has(t),\"Schema id conflicts with existing key:\",t),this._byId.set(t,r);for(const[t,r]of e._byKey.entries())s(!this._byId.has(t),\"Schema key conflicts with existing id:\",t),this._byKey.set(t,r)}fork(e,t,r){const a=this._collect(e);a.push({schema:r});const o=a.shift();let l={id:o.id,schema:t(o.schema)};s(n.isSchema(l.schema),\"adjuster function failed to return a joi schema type\");for(const e of a)l={id:e.id,schema:i.fork(e.schema,l.id,l.schema)};return l.schema}labels(e,t=[]){const r=e[0],s=this._get(r);if(!s)return[...t,...e].join(\".\");const n=e.slice(1);return t=[...t,s.schema._flags.label||r],n.length?s.schema._ids.labels(n,t):t.join(\".\")}reach(e,t=[]){const r=e[0],n=this._get(r);s(n,\"Schema does not contain path\",[...t,...e].join(\".\"));const a=e.slice(1);return a.length?n.schema._ids.reach(a,[...t,r]):n.schema}register(e,{key:t}={}){if(!e||!n.isSchema(e))return;(e.$_property(\"schemaChain\")||e._ids._schemaChain)&&(this._schemaChain=!0);const r=e._flags.id;if(r){const t=this._byId.get(r);s(!t||t.schema===e,\"Cannot add different schemas with the same id:\",r),s(!this._byKey.has(r),\"Schema id conflicts with existing key:\",r),this._byId.set(r,{schema:e,id:r})}t&&(s(!this._byKey.has(t),\"Schema already contains key:\",t),s(!this._byId.has(t),\"Schema key conflicts with existing id:\",t),this._byKey.set(t,{schema:e,id:t}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(e,t=[],r=[]){const n=e[0],a=this._get(n);s(a,\"Schema does not contain path\",[...t,...e].join(\".\")),r=[a,...r];const i=e.slice(1);return i.length?a.schema._ids._collect(i,[...t,n],r):r}_get(e){return this._byId.get(e)||this._byKey.get(e)}},i.fork=function(e,r,s){const n=t.schema(e,{each:(e,{key:t})=>{if(r===(e._flags.id||t))return s},ref:!1});return n?n.$_mutateRebuild():e},t.schema=function(e,t){let r;for(const s in e._flags){if(\"_\"===s[0])continue;const n=i.scan(e._flags[s],{source:\"flags\",name:s},t);void 0!==n&&(r=r||e.clone(),r._flags[s]=n)}for(let s=0;s{\"use strict\";const s=r(375),n=r(8571),a=r(9621),i=r(8160);let o;const l={symbol:Symbol(\"ref\"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:\".\",type:\"value\"}};t.create=function(e,t={}){s(\"string\"==typeof e,\"Invalid reference key:\",e),i.assertOptions(t,[\"adjust\",\"ancestor\",\"in\",\"iterables\",\"map\",\"prefix\",\"render\",\"separator\"]),s(!t.prefix||\"object\"==typeof t.prefix,\"options.prefix must be of type object\");const r=Object.assign({},l.defaults,t);delete r.prefix;const n=r.separator,a=l.context(e,n,t.prefix);if(r.type=a.type,e=a.key,\"value\"===r.type)if(a.root&&(s(!n||e[0]!==n,\"Cannot specify relative path with root prefix\"),r.ancestor=\"root\",e||(e=null)),n&&n===e)e=null,r.ancestor=0;else if(void 0!==r.ancestor)s(!n||!e||e[0]!==n,\"Cannot combine prefix with ancestor option\");else{const[t,s]=l.ancestor(e,n);s&&\"\"===(e=e.slice(s))&&(e=null),r.ancestor=t}return r.path=n?null===e?[]:e.split(n):[e],new l.Ref(r)},t.in=function(e,r={}){return t.create(e,{...r,in:!0})},t.isRef=function(e){return!!e&&!!e[i.symbols.ref]},l.Ref=class{constructor(e){s(\"object\"==typeof e,\"Invalid reference construction\"),i.assertOptions(e,[\"adjust\",\"ancestor\",\"in\",\"iterables\",\"map\",\"path\",\"render\",\"separator\",\"type\",\"depth\",\"key\",\"root\",\"display\"]),s([!1,void 0].includes(e.separator)||\"string\"==typeof e.separator&&1===e.separator.length,\"Invalid separator\"),s(!e.adjust||\"function\"==typeof e.adjust,\"options.adjust must be a function\"),s(!e.map||Array.isArray(e.map),\"options.map must be an array\"),s(!e.map||!e.adjust,\"Cannot set both map and adjust options\"),Object.assign(this,l.defaults,e),s(\"value\"===this.type||void 0===this.ancestor,\"Non-value references cannot reference ancestors\"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(e,t,r,n,a={}){return s(!this.in||a.in,\"Invalid in() reference usage\"),\"global\"===this.type?this._resolve(r.context,t,a):\"local\"===this.type?this._resolve(n,t,a):this.ancestor?\"root\"===this.ancestor?this._resolve(t.ancestors[t.ancestors.length-1],t,a):(s(this.ancestor<=t.ancestors.length,\"Invalid reference exceeds the schema root:\",this.display),this._resolve(t.ancestors[this.ancestor-1],t,a)):this._resolve(e,t,a)}_resolve(e,t,r){let s;if(\"value\"===this.type&&t.mainstay.shadow&&!1!==r.shadow&&(s=t.mainstay.shadow.get(this.absolute(t))),void 0===s&&(s=a(e,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(s=this.adjust(s)),this.map){const e=this.map.get(s);void 0!==e&&(s=e)}return t.mainstay&&t.mainstay.tracer.resolve(t,this,s),s}toString(){return this.display}absolute(e){return[...e.path.slice(0,-this.ancestor),...this.path]}clone(){return new l.Ref(this)}describe(){const e={path:this.path};\"value\"!==this.type&&(e.type=this.type),\".\"!==this.separator&&(e.separator=this.separator),\"value\"===this.type&&1!==this.ancestor&&(e.ancestor=this.ancestor),this.map&&(e.map=[...this.map]);for(const t of[\"adjust\",\"iterables\",\"render\"])null!==this[t]&&void 0!==this[t]&&(e[t]=this[t]);return!1!==this.in&&(e.in=!0),{ref:e}}updateDisplay(){const e=null!==this.key?this.key:\"\";if(\"value\"!==this.type)return void(this.display=`ref:${this.type}:${e}`);if(!this.separator)return void(this.display=`ref:${e}`);if(!this.ancestor)return void(this.display=`ref:${this.separator}${e}`);if(\"root\"===this.ancestor)return void(this.display=`ref:root:${e}`);if(1===this.ancestor)return void(this.display=`ref:${e||\"..\"}`);const t=new Array(this.ancestor+1).fill(this.separator).join(\"\");this.display=`ref:${t}${e||\"\"}`}},l.Ref.prototype[i.symbols.ref]=!0,t.build=function(e){return\"value\"===(e=Object.assign({},l.defaults,e)).type&&void 0===e.ancestor&&(e.ancestor=1),new l.Ref(e)},l.context=function(e,t,r={}){if(e=e.trim(),r){const s=void 0===r.global?\"$\":r.global;if(s!==t&&e.startsWith(s))return{key:e.slice(s.length),type:\"global\"};const n=void 0===r.local?\"#\":r.local;if(n!==t&&e.startsWith(n))return{key:e.slice(n.length),type:\"local\"};const a=void 0===r.root?\"/\":r.root;if(a!==t&&e.startsWith(a))return{key:e.slice(a.length),type:\"value\",root:!0}}return{key:e,type:\"value\"}},l.ancestor=function(e,t){if(!t)return[1,0];if(e[0]!==t)return[1,0];if(e[1]!==t)return[0,1];let r=2;for(;e[r]===t;)++r;return[r-1,r]},t.toSibling=0,t.toParent=1,t.Manager=class{constructor(){this.refs=[]}register(e,s){if(e)if(s=void 0===s?t.toParent:s,Array.isArray(e))for(const t of e)this.register(t,s);else if(i.isSchema(e))for(const t of e._refs.refs)t.ancestor-s>=0&&this.refs.push({ancestor:t.ancestor-s,root:t.root});else t.isRef(e)&&\"value\"===e.type&&e.ancestor-s>=0&&this.refs.push({ancestor:e.ancestor-s,root:e.root}),o=o||r(3328),o.isTemplate(e)&&this.register(e.refs(),s)}get length(){return this.refs.length}clone(){const e=new t.Manager;return e.refs=n(this.refs),e}reset(){this.refs=[]}roots(){return this.refs.filter((e=>!e.ancestor)).map((e=>e.root))}}},3378:(e,t,r)=>{\"use strict\";const s=r(5107),n={};n.wrap=s.string().min(1).max(2).allow(!1),t.preferences=s.object({allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),context:s.object(),convert:s.boolean(),dateFormat:s.valid(\"date\",\"iso\",\"string\",\"time\",\"utc\"),debug:s.boolean(),errors:{escapeHtml:s.boolean(),label:s.valid(\"path\",\"key\",!1),language:[s.string(),s.object().ref()],render:s.boolean(),stack:s.boolean(),wrap:{label:n.wrap,array:n.wrap,string:n.wrap}},externals:s.boolean(),messages:s.object(),noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:s.valid(\"required\",\"optional\",\"forbidden\"),skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or(\"arrays\",\"objects\").allow(!0,!1),warnings:s.boolean()}).strict(),n.nameRx=/^[a-zA-Z0-9]\\w*$/,n.rule=s.object({alias:s.array().items(s.string().pattern(n.nameRx)).single(),args:s.array().items(s.string(),s.object({name:s.string().pattern(n.nameRx).required(),ref:s.boolean(),assert:s.alternatives([s.function(),s.object().schema()]).conditional(\"ref\",{is:!0,then:s.required()}),normalize:s.function(),message:s.string().when(\"assert\",{is:s.function(),then:s.required()})})),convert:s.boolean(),manifest:s.boolean(),method:s.function().allow(!1),multi:s.boolean(),validate:s.function()}),t.extension=s.object({type:s.alternatives([s.string(),s.object().regex()]).required(),args:s.function(),cast:s.object().pattern(n.nameRx,s.object({from:s.function().maxArity(1).required(),to:s.function().minArity(1).maxArity(2).required()})),base:s.object().schema().when(\"type\",{is:s.object().regex(),then:s.forbidden()}),coerce:[s.function().maxArity(3),s.object({method:s.function().maxArity(3).required(),from:s.array().items(s.string()).single()})],flags:s.object().pattern(n.nameRx,s.object({setter:s.string(),default:s.any()})),manifest:{build:s.function().arity(2)},messages:[s.object(),s.string()],modifiers:s.object().pattern(n.nameRx,s.function().minArity(1).maxArity(2)),overrides:s.object().pattern(n.nameRx,s.function()),prepare:s.function().maxArity(3),rebuild:s.function().arity(1),rules:s.object().pattern(n.nameRx,n.rule),terms:s.object().pattern(n.nameRx,s.object({init:s.array().allow(null).required(),manifest:s.object().pattern(/.+/,[s.valid(\"schema\",\"single\"),s.object({mapped:s.object({from:s.string().required(),to:s.string().required()}).required()})])})),validate:s.function().maxArity(3)}).strict(),t.extensions=s.array().items(s.object(),s.function().arity(1)).strict(),n.desc={buffer:s.object({buffer:s.string()}),func:s.object({function:s.function().required(),options:{literal:!0}}),override:s.object({override:!0}),ref:s.object({ref:s.object({type:s.valid(\"value\",\"global\",\"local\"),path:s.array().required(),separator:s.string().length(1).allow(!1),ancestor:s.number().min(0).integer().allow(\"root\"),map:s.array().items(s.array().length(2)).min(1),adjust:s.function(),iterables:s.boolean(),in:s.boolean(),render:s.boolean()}).required()}),regex:s.object({regex:s.string().min(3)}),special:s.object({special:s.valid(\"deep\").required()}),template:s.object({template:s.string().required(),options:s.object()}),value:s.object({value:s.alternatives([s.object(),s.array()]).required()})},n.desc.entity=s.alternatives([s.array().items(s.link(\"...\")),s.boolean(),s.function(),s.number(),s.string(),n.desc.buffer,n.desc.func,n.desc.ref,n.desc.regex,n.desc.special,n.desc.template,n.desc.value,s.link(\"/\")]),n.desc.values=s.array().items(null,s.boolean(),s.function(),s.number().allow(1/0,-1/0),s.string().allow(\"\"),s.symbol(),n.desc.buffer,n.desc.func,n.desc.override,n.desc.ref,n.desc.regex,n.desc.template,n.desc.value),n.desc.messages=s.object().pattern(/.+/,[s.string(),n.desc.template,s.object().pattern(/.+/,[s.string(),n.desc.template])]),t.description=s.object({type:s.string().required(),flags:s.object({cast:s.string(),default:s.any(),description:s.string(),empty:s.link(\"/\"),failover:n.desc.entity,id:s.string(),label:s.string(),only:!0,presence:[\"optional\",\"required\",\"forbidden\"],result:[\"raw\",\"strip\"],strip:s.boolean(),unit:s.string()}).unknown(),preferences:{allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),convert:s.boolean(),dateFormat:[\"date\",\"iso\",\"string\",\"time\",\"utc\"],errors:{escapeHtml:s.boolean(),label:[\"path\",\"key\"],language:[s.string(),n.desc.ref],wrap:{label:n.wrap,array:n.wrap}},externals:s.boolean(),messages:n.desc.messages,noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:[\"required\",\"optional\",\"forbidden\"],skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or(\"arrays\",\"objects\").allow(!0,!1),warnings:s.boolean()},allow:n.desc.values,invalid:n.desc.values,rules:s.array().min(1).items({name:s.string().required(),args:s.object().min(1),keep:s.boolean(),message:[s.string(),n.desc.messages],warn:s.boolean()}),keys:s.object().pattern(/.*/,s.link(\"/\")),link:n.desc.ref}).pattern(/^[a-z]\\w*$/,s.any())},493:(e,t,r)=>{\"use strict\";const s=r(8571),n=r(9621),a=r(8160),i={value:Symbol(\"value\")};e.exports=i.State=class{constructor(e,t,r){this.path=e,this.ancestors=t,this.mainstay=r.mainstay,this.schemas=r.schemas,this.debug=null}localize(e,t=null,r=null){const s=new i.State(e,t,this);return r&&s.schemas&&(s.schemas=[i.schemas(r),...s.schemas]),s}nest(e,t){const r=new i.State(this.path,this.ancestors,this);return r.schemas=r.schemas&&[i.schemas(e),...r.schemas],r.debug=t,r}shadow(e,t){this.mainstay.shadow=this.mainstay.shadow||new i.Shadow,this.mainstay.shadow.set(this.path,e,t)}snapshot(){this.mainstay.shadow&&(this._snapshot=s(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore()}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},i.schemas=function(e){return a.isSchema(e)?{schema:e}:e},i.Shadow=class{constructor(){this._values=null}set(e,t,r){if(!e.length)return;if(\"strip\"===r&&\"number\"==typeof e[e.length-1])return;this._values=this._values||new Map;let s=this._values;for(let t=0;t{\"use strict\";const s=r(375),n=r(8571),a=r(5277),i=r(1447),o=r(8160),l=r(6354),c=r(6133),u={symbol:Symbol(\"template\"),opens:new Array(1e3).join(\"\\0\"),closes:new Array(1e3).join(\"\u0001\"),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};e.exports=u.Template=class{constructor(e,t){if(s(\"string\"==typeof e,\"Template source must be a string\"),s(!e.includes(\"\\0\")&&!e.includes(\"\u0001\"),\"Template source cannot contain reserved control characters\"),this.source=e,this.rendered=e,this._template=null,t){const{functions:e,...r}=t;this._settings=Object.keys(r).length?n(r):void 0,this._functions=e,this._functions&&(s(Object.keys(this._functions).every((e=>\"string\"==typeof e)),\"Functions keys must be strings\"),s(Object.values(this._functions).every((e=>\"function\"==typeof e)),\"Functions values must be functions\"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes(\"{\"))return;const e=u.encode(this.source),t=u.split(e);let r=!1;const s=[],n=t.shift();n&&s.push(n);for(const e of t){const t=\"{\"!==e[0],n=t?\"}\":\"}}\",a=e.indexOf(n);if(-1===a||\"{\"===e[1]){s.push(`{${u.decode(e)}`);continue}let i=e.slice(t?0:1,a);const o=\":\"===i[0];o&&(i=i.slice(1));const l=this._ref(u.decode(i),{raw:t,wrapped:o});s.push(l),\"string\"!=typeof l&&(r=!0);const c=e.slice(a+n.length);c&&s.push(u.decode(c))}r?this._template=s:this.rendered=s.join(\"\")}static date(e,t){return u.dateFormat[t.dateFormat].call(e)}describe(e={}){if(!this._settings&&e.compact)return this.source;const t={template:this.source};return this._settings&&(t.options=this._settings),this._functions&&(t.functions=this._functions),t}static build(e){return new u.Template(e.template,e.options||e.functions?{...e.options,functions:e.functions}:void 0)}isDynamic(){return!!this._template}static isTemplate(e){return!!e&&!!e[o.symbols.template]}refs(){if(!this._template)return;const e=[];for(const t of this._template)\"string\"!=typeof t&&e.push(...t.refs);return e}resolve(e,t,r,s){return this._template&&1===this._template.length?this._part(this._template[0],e,t,r,s,{}):this.render(e,t,r,s)}_part(e,...t){return e.ref?e.ref.resolve(...t):e.formula.evaluate(t)}render(e,t,r,s,n={}){if(!this.isDynamic())return this.rendered;const i=[];for(const o of this._template)if(\"string\"==typeof o)i.push(o);else{const l=this._part(o,e,t,r,s,n),c=u.stringify(l,e,t,r,s,n);if(void 0!==c){const e=o.raw||!1===(n.errors&&n.errors.escapeHtml)?c:a(c);i.push(u.wrap(e,o.wrapped&&r.errors.wrap.label))}}return i.join(\"\")}_ref(e,{raw:t,wrapped:r}){const s=[],n=e=>{const t=c.create(e,this._settings);return s.push(t),e=>{const r=t.resolve(...e);return void 0!==r?r:null}};try{const t=this._functions?{...u.functions,...this._functions}:u.functions;var a=new i.Parser(e,{reference:n,functions:t,constants:u.constants})}catch(t){throw t.message=`Invalid template variable \"${e}\" fails due to: ${t.message}`,t}if(a.single){if(\"reference\"===a.single.type){const e=s[0];return{ref:e,raw:t,refs:s,wrapped:r||\"local\"===e.type&&\"label\"===e.key}}return u.stringify(a.single.value)}return{formula:a,raw:t,refs:s}}toString(){return this.source}},u.Template.prototype[o.symbols.template]=!0,u.Template.prototype.isImmutable=!0,u.encode=function(e){return e.replace(/\\\\(\\{+)/g,((e,t)=>u.opens.slice(0,t.length))).replace(/\\\\(\\}+)/g,((e,t)=>u.closes.slice(0,t.length)))},u.decode=function(e){return e.replace(/\\u0000/g,\"{\").replace(/\\u0001/g,\"}\")},u.split=function(e){const t=[];let r=\"\";for(let s=0;s ${s.toString()}`);e=t}if(!Array.isArray(e))return e.toString();const f=[];for(const i of e)f.push(u.stringify(i,t,r,s,n,{arrayItems:!0,...a}));return u.wrap(f.join(\", \"),!l&&o.array)},u.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},u.functions={if:(e,t,r)=>e?t:r,length:e=>\"string\"==typeof e?e.length:e&&\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:null,msg(e){const[t,r,s,n,a]=this,i=a.messages;if(!i)return\"\";const o=l.template(t,i[0],e,r,s)||l.template(t,i[1],e,r,s);return o?o.render(t,r,s,n,a):\"\"},number:e=>\"number\"==typeof e?e:\"string\"==typeof e?parseFloat(e):\"boolean\"==typeof e?e?1:0:e instanceof Date?e.getTime():null}},4946:(e,t,r)=>{\"use strict\";const s=r(375),n=r(1687),a=r(8068),i=r(8160),o=r(3292),l=r(6354),c=r(6133),u={};e.exports=a.extend({type:\"alternatives\",flags:{match:{default:\"any\"}},terms:{matches:{init:[],register:c.toSibling}},args:(e,...t)=>1===t.length&&Array.isArray(t[0])?e.try(...t[0]):e.try(...t),validate(e,t){const{schema:r,error:s,state:a,prefs:i}=t;if(r._flags.match){const t=[],o=[];for(let s=0;sl.details(e,{override:!1})))})};if(\"one\"===r._flags.match)return 1===t.length?{value:t[0]}:{errors:s(\"alternatives.one\")};if(t.length!==r.$_terms.matches.length)return{errors:s(\"alternatives.all\",{details:o.map((e=>l.details(e,{override:!1})))})};const c=e=>e.$_terms.matches.some((e=>\"object\"===e.schema.type||\"alternatives\"===e.schema.type&&c(e.schema)));return c(r)?{value:t.reduce(((e,t)=>n(e,t,{mergeArrays:!1})))}:{value:t[t.length-1]}}const o=[];for(let t=0;t\"is\"!==r.path[0]&&\"string\"!=typeof t._flags.label?t.label(e):void 0,ref:!1})}},rebuild(e){e.$_modify({each:t=>{i.isSchema(t)&&\"array\"===t.type&&e.$_setFlag(\"_arrayItems\",!0,{clone:!1})}})},manifest:{build(e,t){if(t.matches)for(const r of t.matches){const{schema:t,ref:s,is:n,not:a,then:i,otherwise:o}=r;e=t?e.try(t):s?e.conditional(s,{is:n,then:i,not:a,otherwise:o,switch:r.switch}):e.conditional(n,{then:i,otherwise:o})}return e}},messages:{\"alternatives.all\":\"{{#label}} does not match all of the required types\",\"alternatives.any\":\"{{#label}} does not match any of the allowed types\",\"alternatives.match\":\"{{#label}} does not match any of the allowed types\",\"alternatives.one\":\"{{#label}} matches more than one allowed type\",\"alternatives.types\":\"{{#label}} must be one of {{#types}}\"}}),u.errors=function(e,{error:t,state:r}){if(!e.length)return{errors:t(\"alternatives.any\")};if(1===e.length)return{errors:e[0].reports};const s=new Set,n=[];for(const{reports:a,schema:i}of e){if(a.length>1)return u.unmatched(e,t);const o=a[0];if(o instanceof l.Report==0)return u.unmatched(e,t);if(o.state.path.length!==r.path.length){n.push({type:i.type,report:o});continue}if(\"any.only\"===o.code){for(const e of o.local.valids)s.add(e);continue}const[c,f]=o.code.split(\".\");\"base\"!==f?n.push({type:i.type,report:o}):\"object.base\"===o.code?s.add(o.local.type):s.add(c)}return n.length?1===n.length?{errors:n[0].report}:u.unmatched(e,t):{errors:t(\"alternatives.types\",{types:[...s]})}},u.unmatched=function(e,t){const r=[];for(const t of e)r.push(...t.reports);return{errors:t(\"alternatives.match\",l.details(r,{override:!1}))}}},8068:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7629),a=r(8160),i=r(6914);e.exports=n.extend({type:\"any\",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,t){return s(\"function\"==typeof e,\"Method must be a function\"),s(void 0===t||t&&\"string\"==typeof t,\"Description must be a non-empty string\"),this.$_addRule({name:\"custom\",args:{method:e,description:t}})},validate(e,t,{method:r}){try{return r(e,t)}catch(e){return t.error(\"any.custom\",{error:e})}},args:[\"method\",\"description\"],multi:!0},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){s(a.isSchema(e)&&e._flags.id,\"Schema must be a schema with an id\");const t=this.clone();return t.$_terms.shared=t.$_terms.shared||[],t.$_terms.shared.push(e),t.$_mutateRegister(e),t}},warning:{method(e,t){return s(e&&\"string\"==typeof e,\"Invalid warning code\"),this.$_addRule({name:\"warning\",args:{code:e,local:t},warn:!0})},validate:(e,t,{code:r,local:s})=>t.error(r,s),args:[\"code\",\"local\"],multi:!0}},modifiers:{keep(e,t=!0){e.keep=t},message(e,t){e.message=i.compile(t)},warn(e,t=!0){e.warn=t}},manifest:{build(e,t){for(const r in t){const s=t[r];if([\"examples\",\"externals\",\"metas\",\"notes\",\"tags\"].includes(r))for(const t of s)e=e[r.slice(0,-1)](t);else if(\"alterations\"!==r)if(\"whens\"!==r){if(\"shared\"===r)for(const t of s)e=e.shared(t)}else for(const t of s){const{ref:r,is:s,not:n,then:a,otherwise:i,concat:o}=t;e=o?e.concat(o):r?e.when(r,{is:s,not:n,then:a,otherwise:i,switch:t.switch,break:t.break}):e.when(s,{then:a,otherwise:i,break:t.break})}else{const t={};for(const{target:e,adjuster:r}of s)t[e]=r;e=e.alter(t)}}return e}},messages:{\"any.custom\":\"{{#label}} failed custom validation because {{#error.message}}\",\"any.default\":\"{{#label}} threw an error when running default method\",\"any.failover\":\"{{#label}} threw an error when running failover method\",\"any.invalid\":\"{{#label}} contains an invalid value\",\"any.only\":'{{#label}} must be {if(#valids.length == 1, \"\", \"one of \")}{{#valids}}',\"any.ref\":\"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}\",\"any.required\":\"{{#label}} is required\",\"any.unknown\":\"{{#label}} is not allowed\"}})},546:(e,t,r)=>{\"use strict\";const s=r(375),n=r(9474),a=r(9621),i=r(8068),o=r(8160),l=r(3292),c={};e.exports=i.extend({type:\"array\",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:\"schema\"},ordered:{init:[],manifest:\"schema\"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:\"object\",method(e,{schema:t,state:r,prefs:s}){if(!Array.isArray(e))return;const n=t.$_getRule(\"sort\");return n?c.sort(t,e,n.args.options,r,s):void 0}},validate(e,{schema:t,error:r}){if(!Array.isArray(e)){if(t._flags.single){const t=[e];return t[o.symbols.arraySingle]=!0,{value:t}}return{errors:r(\"array.base\")}}if(t.$_getRule(\"items\")||t.$_terms.externals)return{value:e.slice()}},rules:{has:{method(e){e=this.$_compile(e,{appendPath:!0});const t=this.$_addRule({name:\"has\",args:{schema:e}});return t.$_mutateRegister(e),t},validate(e,{state:t,prefs:r,error:s},{schema:n}){const a=[e,...t.ancestors];for(let s=0;sthis.$_compile(e[r])),r,{append:!0});t.$_terms.items.push(s)}return t.$_mutateRebuild()},validate(e,{schema:t,error:r,state:s,prefs:n,errorsArray:a}){const i=t.$_terms._requireds.slice(),l=t.$_terms.ordered.slice(),u=[...t.$_terms._inclusions,...i],f=!e[o.symbols.arraySingle];delete e[o.symbols.arraySingle];const m=a();let h=e.length;for(let a=0;ao.compare(e.length,r,n)?e:t.error(\"array.\"+s,{limit:a.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:o.limit,message:\"must be a positive integer\"}]},max:{method(e){return this.$_addRule({name:\"max\",method:\"length\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"length\",args:{limit:e},operator:\">=\"})}},ordered:{method(...e){o.verifyFlat(e,\"ordered\");const t=this.$_addRule(\"items\");for(let r=0;rthis.$_compile(e[r])),r,{append:!0});c.validateSingle(s,t),t.$_mutateRegister(s),t.$_terms.ordered.push(s)}return t.$_mutateRebuild()}},single:{method(e){const t=void 0===e||!!e;return s(!t||!this._flags._arrayItems,\"Cannot specify single rule when array has array items\"),this.$_setFlag(\"single\",t)}},sort:{method(e={}){o.assertOptions(e,[\"by\",\"order\"]);const t={order:e.order||\"ascending\"};return e.by&&(t.by=l.ref(e.by,{ancestor:0}),s(!t.by.ancestor,\"Cannot sort by ancestor\")),this.$_addRule({name:\"sort\",args:{options:t}})},validate(e,{error:t,state:r,prefs:s,schema:n},{options:a}){const{value:i,errors:o}=c.sort(n,e,a,r,s);if(o)return o;for(let r=0;rnew Set(e)}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(const t of e.$_terms.items)c.validateSingle(t,e),\"required\"===t._flags.presence?e.$_terms._requireds.push(t):\"forbidden\"===t._flags.presence?e.$_terms._exclusions.push(t):e.$_terms._inclusions.push(t);for(const t of e.$_terms.ordered)c.validateSingle(t,e)},manifest:{build:(e,t)=>(t.items&&(e=e.items(...t.items)),t.ordered&&(e=e.ordered(...t.ordered)),e)},messages:{\"array.base\":\"{{#label}} must be an array\",\"array.excludes\":\"{{#label}} contains an excluded value\",\"array.hasKnown\":\"{{#label}} does not contain at least one required match for type {:#patternLabel}\",\"array.hasUnknown\":\"{{#label}} does not contain at least one required match\",\"array.includes\":\"{{#label}} does not match any of the allowed types\",\"array.includesRequiredBoth\":\"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)\",\"array.includesRequiredKnowns\":\"{{#label}} does not contain {{#knownMisses}}\",\"array.includesRequiredUnknowns\":\"{{#label}} does not contain {{#unknownMisses}} required value(s)\",\"array.length\":\"{{#label}} must contain {{#limit}} items\",\"array.max\":\"{{#label}} must contain less than or equal to {{#limit}} items\",\"array.min\":\"{{#label}} must contain at least {{#limit}} items\",\"array.orderedLength\":\"{{#label}} must contain at most {{#limit}} items\",\"array.sort\":\"{{#label}} must be sorted in {#order} order by {{#by}}\",\"array.sort.mismatching\":\"{{#label}} cannot be sorted due to mismatching types\",\"array.sort.unsupported\":\"{{#label}} cannot be sorted due to unsupported type {#type}\",\"array.sparse\":\"{{#label}} must not be a sparse array item\",\"array.unique\":\"{{#label}} contains a duplicate value\"}}),c.fillMissedErrors=function(e,t,r,s,n,a){const i=[];let o=0;for(const e of r){const t=e._flags.label;t?i.push(t):++o}i.length?o?t.push(e.$_createError(\"array.includesRequiredBoth\",s,{knownMisses:i,unknownMisses:o},n,a)):t.push(e.$_createError(\"array.includesRequiredKnowns\",s,{knownMisses:i},n,a)):t.push(e.$_createError(\"array.includesRequiredUnknowns\",s,{unknownMisses:o},n,a))},c.fillOrderedErrors=function(e,t,r,s,n,a){const i=[];for(const e of r)\"required\"===e._flags.presence&&i.push(e);i.length&&c.fillMissedErrors(e,t,i,s,n,a)},c.fillDefault=function(e,t,r,s){const n=[];let a=!0;for(let i=e.length-1;i>=0;--i){const o=e[i],l=[t,...r.ancestors],c=o.$_validate(void 0,r.localize(r.path,l,o),s).value;if(a){if(void 0===c)continue;a=!1}n.unshift(c)}n.length&&t.push(...n)},c.fastSplice=function(e,t){let r=t;for(;r{let f=c.compare(l,u,i,o);if(null!==f)return f;if(r.by&&(l=r.by.resolve(l,s,n),u=r.by.resolve(u,s,n)),f=c.compare(l,u,i,o),null!==f)return f;const m=typeof l;if(m!==typeof u)throw e.$_createError(\"array.sort.mismatching\",t,null,s,n);if(\"number\"!==m&&\"string\"!==m)throw e.$_createError(\"array.sort.unsupported\",t,{type:m},s,n);return\"number\"===m?(l-u)*a:l{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(2036),o={isBool:function(e){return\"boolean\"==typeof e}};e.exports=n.extend({type:\"boolean\",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:\"values\"},truthy:{init:null,manifest:\"values\"}},coerce(e,{schema:t}){if(\"boolean\"!=typeof e){if(\"string\"==typeof e){const r=t._flags.sensitive?e:e.toLowerCase();e=\"true\"===r||\"false\"!==r&&e}return\"boolean\"!=typeof e&&(e=t.$_terms.truthy&&t.$_terms.truthy.has(e,null,null,!t._flags.sensitive)||(!t.$_terms.falsy||!t.$_terms.falsy.has(e,null,null,!t._flags.sensitive))&&e),{value:e}}},validate(e,{error:t}){if(\"boolean\"!=typeof e)return{value:e,errors:t(\"boolean.base\")}},rules:{truthy:{method(...e){a.verifyFlat(e,\"truthy\");const t=this.clone();t.$_terms.truthy=t.$_terms.truthy||new i;for(let r=0;re?1:0},string:{from:o.isBool,to:(e,t)=>e?\"true\":\"false\"}},manifest:{build:(e,t)=>(t.truthy&&(e=e.truthy(...t.truthy)),t.falsy&&(e=e.falsy(...t.falsy)),e)},messages:{\"boolean.base\":\"{{#label}} must be a boolean\"}})},7500:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(3328),o={isDate:function(e){return e instanceof Date}};e.exports=n.extend({type:\"date\",coerce:{from:[\"number\",\"string\"],method:(e,{schema:t})=>({value:o.parse(e,t._flags.format)||e})},validate(e,{schema:t,error:r,prefs:s}){if(e instanceof Date&&!isNaN(e.getTime()))return;const n=t._flags.format;return s.convert&&n&&\"string\"==typeof e?{value:e,errors:r(\"date.format\",{format:n})}:{value:e,errors:r(\"date.base\")}},rules:{compare:{method:!1,validate(e,t,{date:r},{name:s,operator:n,args:i}){const o=\"now\"===r?Date.now():r.getTime();return a.compare(e.getTime(),o,n)?e:t.error(\"date.\"+s,{limit:i.date,value:e})},args:[{name:\"date\",ref:!0,normalize:e=>\"now\"===e?e:o.parse(e),assert:e=>null!==e,message:\"must have a valid date format\"}]},format:{method(e){return s([\"iso\",\"javascript\",\"unix\"].includes(e),\"Unknown date format\",e),this.$_setFlag(\"format\",e)}},greater:{method(e){return this.$_addRule({name:\"greater\",method:\"compare\",args:{date:e},operator:\">\"})}},iso:{method(){return this.format(\"iso\")}},less:{method(e){return this.$_addRule({name:\"less\",method:\"compare\",args:{date:e},operator:\"<\"})}},max:{method(e){return this.$_addRule({name:\"max\",method:\"compare\",args:{date:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"compare\",args:{date:e},operator:\">=\"})}},timestamp:{method(e=\"javascript\"){return s([\"javascript\",\"unix\"].includes(e),'\"type\" must be one of \"javascript, unix\"'),this.format(e)}}},cast:{number:{from:o.isDate,to:(e,t)=>e.getTime()},string:{from:o.isDate,to:(e,{prefs:t})=>i.date(e,t)}},messages:{\"date.base\":\"{{#label}} must be a valid date\",\"date.format\":'{{#label}} must be in {msg(\"date.format.\" + #format) || #format} format',\"date.greater\":\"{{#label}} must be greater than {{:#limit}}\",\"date.less\":\"{{#label}} must be less than {{:#limit}}\",\"date.max\":\"{{#label}} must be less than or equal to {{:#limit}}\",\"date.min\":\"{{#label}} must be greater than or equal to {{:#limit}}\",\"date.format.iso\":\"ISO 8601 date\",\"date.format.javascript\":\"timestamp or number of milliseconds\",\"date.format.unix\":\"timestamp or number of seconds\"}}),o.parse=function(e,t){if(e instanceof Date)return e;if(\"string\"!=typeof e&&(isNaN(e)||!isFinite(e)))return null;if(/^\\s*$/.test(e))return null;if(\"iso\"===t)return a.isIsoDate(e)?o.date(e.toString()):null;const r=e;if(\"string\"==typeof e&&/^[+-]?\\d+(\\.\\d+)?$/.test(e)&&(e=parseFloat(e)),t){if(\"javascript\"===t)return o.date(1*e);if(\"unix\"===t)return o.date(1e3*e);if(\"string\"==typeof r)return null}return o.date(e)},o.date=function(e){const t=new Date(e);return isNaN(t.getTime())?null:t}},390:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7824);e.exports=n.extend({type:\"function\",properties:{typeof:\"function\"},rules:{arity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,\"n must be a positive integer\"),this.$_addRule({name:\"arity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length===r?e:t.error(\"function.arity\",{n:r})},class:{method(){return this.$_addRule(\"class\")},validate:(e,t)=>/^\\s*class\\s/.test(e.toString())?e:t.error(\"function.class\",{value:e})},minArity:{method(e){return s(Number.isSafeInteger(e)&&e>0,\"n must be a strict positive integer\"),this.$_addRule({name:\"minArity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length>=r?e:t.error(\"function.minArity\",{n:r})},maxArity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,\"n must be a positive integer\"),this.$_addRule({name:\"maxArity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length<=r?e:t.error(\"function.maxArity\",{n:r})}},messages:{\"function.arity\":\"{{#label}} must have an arity of {{#n}}\",\"function.class\":\"{{#label}} must be a class\",\"function.maxArity\":\"{{#label}} must have an arity lesser or equal to {{#n}}\",\"function.minArity\":\"{{#label}} must have an arity greater or equal to {{#n}}\"}})},7824:(e,t,r)=>{\"use strict\";const s=r(978),n=r(375),a=r(8571),i=r(3652),o=r(8068),l=r(8160),c=r(3292),u=r(6354),f=r(6133),m=r(3328),h={renameDefaults:{alias:!1,multiple:!1,override:!1}};e.exports=o.extend({type:\"_keys\",properties:{typeof:\"object\"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:\"schema\",to:\"key\"}}},patterns:{init:null},renames:{init:null}},args:(e,t)=>e.keys(t),validate(e,{schema:t,error:r,state:s,prefs:n}){if(!e||typeof e!==t.$_property(\"typeof\")||Array.isArray(e))return{value:e,errors:r(\"object.base\",{type:t.$_property(\"typeof\")})};if(!(t.$_terms.renames||t.$_terms.dependencies||t.$_terms.keys||t.$_terms.patterns||t.$_terms.externals))return;e=h.clone(e,n);const a=[];if(t.$_terms.renames&&!h.rename(t,e,s,n,a))return{value:e,errors:a};if(!t.$_terms.keys&&!t.$_terms.patterns&&!t.$_terms.dependencies)return{value:e,errors:a};const i=new Set(Object.keys(e));if(t.$_terms.keys){const r=[e,...s.ancestors];for(const o of t.$_terms.keys){const t=o.key,l=e[t];i.delete(t);const c=s.localize([...s.path,t],r,o),u=o.schema.$_validate(l,c,n);if(u.errors){if(n.abortEarly)return{value:e,errors:u.errors};void 0!==u.value&&(e[t]=u.value),a.push(...u.errors)}else\"strip\"===o.schema._flags.result||void 0===u.value&&void 0!==l?delete e[t]:void 0!==u.value&&(e[t]=u.value)}}if(i.size||t._flags._hasPatternMatch){const r=h.unknown(t,e,i,a,s,n);if(r)return r}if(t.$_terms.dependencies)for(const r of t.$_terms.dependencies){if(null!==r.key&&!1===h.isPresent(r.options)(r.key.resolve(e,s,n,null,{shadow:!1})))continue;const i=h.dependencies[r.rel](t,r,e,s,n);if(i){const r=t.$_createError(i.code,e,i.context,s,n);if(n.abortEarly)return{value:e,errors:r};a.push(r)}}return{value:e,errors:a}},rules:{and:{method(...e){return l.verifyFlat(e,\"and\"),h.dependency(this,\"and\",null,e)}},append:{method(e){return null==e||0===Object.keys(e).length?this:this.keys(e)}},assert:{method(e,t,r){m.isTemplate(e)||(e=c.ref(e)),n(void 0===r||\"string\"==typeof r,\"Message must be a string\"),t=this.$_compile(t,{appendPath:!0});const s=this.$_addRule({name:\"assert\",args:{subject:e,schema:t,message:r}});return s.$_mutateRegister(e),s.$_mutateRegister(t),s},validate(e,{error:t,prefs:r,state:s},{subject:n,schema:a,message:i}){const o=n.resolve(e,s,r),l=f.isRef(n)?n.absolute(s):[];return a.$_match(o,s.localize(l,[e,...s.ancestors],a),r)?e:t(\"object.assert\",{subject:n,message:i})},args:[\"subject\",\"schema\",\"message\"],multi:!0},instance:{method(e,t){return n(\"function\"==typeof e,\"constructor must be a function\"),t=t||e.name,this.$_addRule({name:\"instance\",args:{constructor:e,name:t}})},validate:(e,t,{constructor:r,name:s})=>e instanceof r?e:t.error(\"object.instance\",{type:s,value:e}),args:[\"constructor\",\"name\"]},keys:{method(e){n(void 0===e||\"object\"==typeof e,\"Object schema must be a valid object\"),n(!l.isSchema(e),\"Object schema cannot be a joi schema\");const t=this.clone();if(e)if(Object.keys(e).length){t.$_terms.keys=t.$_terms.keys?t.$_terms.keys.filter((t=>!e.hasOwnProperty(t.key))):new h.Keys;for(const r in e)l.tryWithPath((()=>t.$_terms.keys.push({key:r,schema:this.$_compile(e[r])})),r)}else t.$_terms.keys=new h.Keys;else t.$_terms.keys=null;return t.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:\"length\",args:{limit:e},operator:\"=\"})},validate:(e,t,{limit:r},{name:s,operator:n,args:a})=>l.compare(Object.keys(e).length,r,n)?e:t.error(\"object.\"+s,{limit:a.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:l.limit,message:\"must be a positive integer\"}]},max:{method(e){return this.$_addRule({name:\"max\",method:\"length\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"length\",args:{limit:e},operator:\">=\"})}},nand:{method(...e){return l.verifyFlat(e,\"nand\"),h.dependency(this,\"nand\",null,e)}},or:{method(...e){return l.verifyFlat(e,\"or\"),h.dependency(this,\"or\",null,e)}},oxor:{method(...e){return h.dependency(this,\"oxor\",null,e)}},pattern:{method(e,t,r={}){const s=e instanceof RegExp;s||(e=this.$_compile(e,{appendPath:!0})),n(void 0!==t,\"Invalid rule\"),l.assertOptions(r,[\"fallthrough\",\"matches\"]),s&&n(!e.flags.includes(\"g\")&&!e.flags.includes(\"y\"),\"pattern should not use global or sticky mode\"),t=this.$_compile(t,{appendPath:!0});const a=this.clone();a.$_terms.patterns=a.$_terms.patterns||[];const i={[s?\"regex\":\"schema\"]:e,rule:t};return r.matches&&(i.matches=this.$_compile(r.matches),\"array\"!==i.matches.type&&(i.matches=i.matches.$_root.array().items(i.matches)),a.$_mutateRegister(i.matches),a.$_setFlag(\"_hasPatternMatch\",!0,{clone:!1})),r.fallthrough&&(i.fallthrough=!0),a.$_terms.patterns.push(i),a.$_mutateRegister(t),a}},ref:{method(){return this.$_addRule(\"ref\")},validate:(e,t)=>f.isRef(e)?e:t.error(\"object.refType\",{value:e})},regex:{method(){return this.$_addRule(\"regex\")},validate:(e,t)=>e instanceof RegExp?e:t.error(\"object.regex\",{value:e})},rename:{method(e,t,r={}){n(\"string\"==typeof e||e instanceof RegExp,\"Rename missing the from argument\"),n(\"string\"==typeof t||t instanceof m,\"Invalid rename to argument\"),n(t!==e,\"Cannot rename key to same name:\",e),l.assertOptions(r,[\"alias\",\"ignoreUndefined\",\"override\",\"multiple\"]);const a=this.clone();a.$_terms.renames=a.$_terms.renames||[];for(const t of a.$_terms.renames)n(t.from!==e,\"Cannot rename the same key multiple times\");return t instanceof m&&a.$_mutateRegister(t),a.$_terms.renames.push({from:e,to:t,options:s(h.renameDefaults,r)}),a}},schema:{method(e=\"any\"){return this.$_addRule({name:\"schema\",args:{type:e}})},validate:(e,t,{type:r})=>!l.isSchema(e)||\"any\"!==r&&e.type!==r?t.error(\"object.schema\",{type:r}):e},unknown:{method(e){return this.$_setFlag(\"unknown\",!1!==e)}},with:{method(e,t,r={}){return h.dependency(this,\"with\",e,t,r)}},without:{method(e,t,r={}){return h.dependency(this,\"without\",e,t,r)}},xor:{method(...e){return l.verifyFlat(e,\"xor\"),h.dependency(this,\"xor\",null,e)}}},overrides:{default(e,t){return void 0===e&&(e=l.symbols.deepDefault),this.$_parent(\"default\",e,t)}},rebuild(e){if(e.$_terms.keys){const t=new i.Sorter;for(const r of e.$_terms.keys)l.tryWithPath((()=>t.add(r,{after:r.schema.$_rootReferences(),group:r.key})),r.key);e.$_terms.keys=new h.Keys(...t.nodes)}},manifest:{build(e,t){if(t.keys&&(e=e.keys(t.keys)),t.dependencies)for(const{rel:r,key:s=null,peers:n,options:a}of t.dependencies)e=h.dependency(e,r,s,n,a);if(t.patterns)for(const{regex:r,schema:s,rule:n,fallthrough:a,matches:i}of t.patterns)e=e.pattern(r||s,n,{fallthrough:a,matches:i});if(t.renames)for(const{from:r,to:s,options:n}of t.renames)e=e.rename(r,s,n);return e}},messages:{\"object.and\":\"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}\",\"object.assert\":'{{#label}} is invalid because {if(#subject.key, `\"` + #subject.key + `\" failed to ` + (#message || \"pass the assertion test\"), #message || \"the assertion failed\")}',\"object.base\":\"{{#label}} must be of type {{#type}}\",\"object.instance\":\"{{#label}} must be an instance of {{:#type}}\",\"object.length\":'{{#label}} must have {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.max\":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.min\":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.missing\":\"{{#label}} must contain at least one of {{#peersWithLabels}}\",\"object.nand\":\"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}\",\"object.oxor\":\"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}\",\"object.pattern.match\":\"{{#label}} keys failed to match pattern requirements\",\"object.refType\":\"{{#label}} must be a Joi reference\",\"object.regex\":\"{{#label}} must be a RegExp object\",\"object.rename.multiple\":\"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}\",\"object.rename.override\":\"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists\",\"object.schema\":\"{{#label}} must be a Joi schema of {{#type}} type\",\"object.unknown\":\"{{#label}} is not allowed\",\"object.with\":\"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}\",\"object.without\":\"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}\",\"object.xor\":\"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}\"}}),h.clone=function(e,t){if(\"object\"==typeof e){if(t.nonEnumerables)return a(e,{shallow:!0});const r=Object.create(Object.getPrototypeOf(e));return Object.assign(r,e),r}const r=function(...t){return e.apply(this,t)};return r.prototype=a(e.prototype),Object.defineProperty(r,\"name\",{value:e.name,writable:!1}),Object.defineProperty(r,\"length\",{value:e.length,writable:!1}),Object.assign(r,e),r},h.dependency=function(e,t,r,s,a){n(null===r||\"string\"==typeof r,t,\"key must be a strings\"),a||(a=s.length>1&&\"object\"==typeof s[s.length-1]?s.pop():{}),l.assertOptions(a,[\"separator\",\"isPresent\"]),s=[].concat(s);const i=l.default(a.separator,\".\"),o=[];for(const e of s)n(\"string\"==typeof e,t,\"peers must be strings\"),o.push(c.ref(e,{separator:i,ancestor:0,prefix:!1}));null!==r&&(r=c.ref(r,{separator:i,ancestor:0,prefix:!1}));const u=e.clone();return u.$_terms.dependencies=u.$_terms.dependencies||[],u.$_terms.dependencies.push(new h.Dependency(t,r,o,s,a)),u},h.dependencies={and(e,t,r,s,n){const a=[],i=[],o=t.peers.length,l=h.isPresent(t.options);for(const e of t.peers)!1===l(e.resolve(r,s,n,null,{shadow:!1}))?a.push(e.key):i.push(e.key);if(a.length!==o&&i.length!==o)return{code:\"object.and\",context:{present:i,presentWithLabels:h.keysToLabels(e,i),missing:a,missingWithLabels:h.keysToLabels(e,a)}}},nand(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(a.length!==t.peers.length)return;const o=t.paths[0],l=t.paths.slice(1);return{code:\"object.nand\",context:{main:o,mainWithLabel:h.keysToLabels(e,o),peers:l,peersWithLabels:h.keysToLabels(e,l)}}},or(e,t,r,s,n){const a=h.isPresent(t.options);for(const e of t.peers)if(a(e.resolve(r,s,n,null,{shadow:!1})))return;return{code:\"object.missing\",context:{peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)}}},oxor(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(!a.length||1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:\"object.oxor\",context:o}},with(e,t,r,s,n){const a=h.isPresent(t.options);for(const i of t.peers)if(!1===a(i.resolve(r,s,n,null,{shadow:!1})))return{code:\"object.with\",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:h.keysToLabels(e,i.key)}}},without(e,t,r,s,n){const a=h.isPresent(t.options);for(const i of t.peers)if(a(i.resolve(r,s,n,null,{shadow:!1})))return{code:\"object.without\",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:h.keysToLabels(e,i.key)}}},xor(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return 0===a.length?{code:\"object.missing\",context:o}:(o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:\"object.xor\",context:o})}},h.keysToLabels=function(e,t){return Array.isArray(t)?t.map((t=>e.$_mapLabels(t))):e.$_mapLabels(t)},h.isPresent=function(e){return\"function\"==typeof e.isPresent?e.isPresent:e=>void 0!==e},h.rename=function(e,t,r,s,n){const a={};for(const i of e.$_terms.renames){const o=[],l=\"string\"!=typeof i.from;if(l)for(const e in t){if(void 0===t[e]&&i.options.ignoreUndefined)continue;if(e===i.to)continue;const r=i.from.exec(e);r&&o.push({from:e,to:i.to,match:r})}else!Object.prototype.hasOwnProperty.call(t,i.from)||void 0===t[i.from]&&i.options.ignoreUndefined||o.push(i);for(const c of o){const o=c.from;let u=c.to;if(u instanceof m&&(u=u.render(t,r,s,c.match)),o!==u){if(!i.options.multiple&&a[u]&&(n.push(e.$_createError(\"object.rename.multiple\",t,{from:o,to:u,pattern:l},r,s)),s.abortEarly))return!1;if(Object.prototype.hasOwnProperty.call(t,u)&&!i.options.override&&!a[u]&&(n.push(e.$_createError(\"object.rename.override\",t,{from:o,to:u,pattern:l},r,s)),s.abortEarly))return!1;void 0===t[o]?delete t[u]:t[u]=t[o],a[u]=!0,i.options.alias||delete t[o]}}}return!0},h.unknown=function(e,t,r,s,n,a){if(e.$_terms.patterns){let i=!1;const o=e.$_terms.patterns.map((e=>{if(e.matches)return i=!0,[]})),l=[t,...n.ancestors];for(const i of r){const c=t[i],u=[...n.path,i];for(let f=0;f{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(3292),o=r(6354),l={};e.exports=n.extend({type:\"link\",properties:{schemaChain:!0},terms:{link:{init:null,manifest:\"single\",register:!1}},args:(e,t)=>e.ref(t),validate(e,{schema:t,state:r,prefs:n}){s(t.$_terms.link,\"Uninitialized link schema\");const a=l.generate(t,e,r,n),i=t.$_terms.link[0].ref;return a.$_validate(e,r.nest(a,`link:${i.display}:${a.type}`),n)},generate:(e,t,r,s)=>l.generate(e,t,r,s),rules:{ref:{method(e){s(!this.$_terms.link,\"Cannot reinitialize schema\"),e=i.ref(e),s(\"value\"===e.type||\"local\"===e.type,\"Invalid reference type:\",e.type),s(\"local\"===e.type||\"root\"===e.ancestor||e.ancestor>0,\"Link cannot reference itself\");const t=this.clone();return t.$_terms.link=[{ref:e}],t}},relative:{method(e=!0){return this.$_setFlag(\"relative\",e)}}},overrides:{concat(e){s(this.$_terms.link,\"Uninitialized link schema\"),s(a.isSchema(e),\"Invalid schema object\"),s(\"link\"!==e.type,\"Cannot merge type link with another link\");const t=this.clone();return t.$_terms.whens||(t.$_terms.whens=[]),t.$_terms.whens.push({concat:e}),t.$_mutateRebuild()}},manifest:{build:(e,t)=>(s(t.link,\"Invalid link description missing link\"),e.ref(t.link))}}),l.generate=function(e,t,r,s){let n=r.mainstay.links.get(e);if(n)return n._generate(t,r,s).schema;const a=e.$_terms.link[0].ref,{perspective:i,path:o}=l.perspective(a,r);l.assert(i,\"which is outside of schema boundaries\",a,e,r,s);try{n=o.length?i.$_reach(o):i}catch(t){l.assert(!1,\"to non-existing schema\",a,e,r,s)}return l.assert(\"link\"!==n.type,\"which is another link\",a,e,r,s),e._flags.relative||r.mainstay.links.set(e,n),n._generate(t,r,s).schema},l.perspective=function(e,t){if(\"local\"===e.type){for(const{schema:r,key:s}of t.schemas){if((r._flags.id||s)===e.path[0])return{perspective:r,path:e.path.slice(1)};if(r.$_terms.shared)for(const t of r.$_terms.shared)if(t._flags.id===e.path[0])return{perspective:t,path:e.path.slice(1)}}return{perspective:null,path:null}}return\"root\"===e.ancestor?{perspective:t.schemas[t.schemas.length-1].schema,path:e.path}:{perspective:t.schemas[e.ancestor]&&t.schemas[e.ancestor].schema,path:e.path}},l.assert=function(e,t,r,n,a,i){e||s(!1,`\"${o.label(n._flags,a,i)}\" contains link reference \"${r.display}\" ${t}`)}},3832:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i={numberRx:/^\\s*[+-]?(?:(?:\\d+(?:\\.\\d*)?)|(?:\\.\\d+))(?:e([+-]?\\d+))?\\s*$/i,precisionRx:/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/,exponentialPartRegex:/[eE][+-]?\\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\\./,trailingZerosRegex:/0+$/,decimalPlaces(e){const t=e.toString(),r=t.indexOf(\".\"),s=t.indexOf(\"e\");return(r<0?0:(s<0?t.length:s)-r-1)+(s<0?0:Math.max(0,-parseInt(t.slice(s+1))))}};e.exports=n.extend({type:\"number\",flags:{unsafe:{default:!1}},coerce:{from:\"string\",method(e,{schema:t,error:r}){if(!e.match(i.numberRx))return;e=e.trim();const s={value:parseFloat(e)};if(0===s.value&&(s.value=0),!t._flags.unsafe)if(e.match(/e/i)){if(i.extractSignificantDigits(e)!==i.extractSignificantDigits(String(s.value)))return s.errors=r(\"number.unsafe\"),s}else{const t=s.value.toString();if(t.match(/e/i))return s;if(t!==i.normalizeDecimal(e))return s.errors=r(\"number.unsafe\"),s}return s}},validate(e,{schema:t,error:r,prefs:s}){if(e===1/0||e===-1/0)return{value:e,errors:r(\"number.infinity\")};if(!a.isNumber(e))return{value:e,errors:r(\"number.base\")};const n={value:e};if(s.convert){const e=t.$_getRule(\"precision\");if(e){const t=Math.pow(10,e.args.limit);n.value=Math.round(n.value*t)/t}}return 0===n.value&&(n.value=0),!t._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||ea.compare(e,r,n)?e:t.error(\"number.\"+s,{limit:i.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:a.isNumber,message:\"must be a number\"}]},greater:{method(e){return this.$_addRule({name:\"greater\",method:\"compare\",args:{limit:e},operator:\">\"})}},integer:{method(){return this.$_addRule(\"integer\")},validate:(e,t)=>Math.trunc(e)-e==0?e:t.error(\"number.integer\")},less:{method(e){return this.$_addRule({name:\"less\",method:\"compare\",args:{limit:e},operator:\"<\"})}},max:{method(e){return this.$_addRule({name:\"max\",method:\"compare\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"compare\",args:{limit:e},operator:\">=\"})}},multiple:{method(e){const t=\"number\"==typeof e?i.decimalPlaces(e):null,r=Math.pow(10,t);return this.$_addRule({name:\"multiple\",args:{base:e,baseDecimalPlace:t,pfactor:r}})},validate:(e,t,{base:r,baseDecimalPlace:s,pfactor:n},a)=>i.decimalPlaces(e)>s?t.error(\"number.multiple\",{multiple:a.args.base,value:e}):Math.round(n*e)%Math.round(n*r)==0?e:t.error(\"number.multiple\",{multiple:a.args.base,value:e}),args:[{name:\"base\",ref:!0,assert:e=>\"number\"==typeof e&&isFinite(e)&&e>0,message:\"must be a positive number\"},\"baseDecimalPlace\",\"pfactor\"],multi:!0},negative:{method(){return this.sign(\"negative\")}},port:{method(){return this.$_addRule(\"port\")},validate:(e,t)=>Number.isSafeInteger(e)&&e>=0&&e<=65535?e:t.error(\"number.port\")},positive:{method(){return this.sign(\"positive\")}},precision:{method(e){return s(Number.isSafeInteger(e),\"limit must be an integer\"),this.$_addRule({name:\"precision\",args:{limit:e}})},validate(e,t,{limit:r}){const s=e.toString().match(i.precisionRx);return Math.max((s[1]?s[1].length:0)-(s[2]?parseInt(s[2],10):0),0)<=r?e:t.error(\"number.precision\",{limit:r,value:e})},convert:!0},sign:{method(e){return s([\"negative\",\"positive\"].includes(e),\"Invalid sign\",e),this.$_addRule({name:\"sign\",args:{sign:e}})},validate:(e,t,{sign:r})=>\"negative\"===r&&e<0||\"positive\"===r&&e>0?e:t.error(`number.${r}`)},unsafe:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_setFlag(\"unsafe\",e)}}},cast:{string:{from:e=>\"number\"==typeof e,to:(e,t)=>e.toString()}},messages:{\"number.base\":\"{{#label}} must be a number\",\"number.greater\":\"{{#label}} must be greater than {{#limit}}\",\"number.infinity\":\"{{#label}} cannot be infinity\",\"number.integer\":\"{{#label}} must be an integer\",\"number.less\":\"{{#label}} must be less than {{#limit}}\",\"number.max\":\"{{#label}} must be less than or equal to {{#limit}}\",\"number.min\":\"{{#label}} must be greater than or equal to {{#limit}}\",\"number.multiple\":\"{{#label}} must be a multiple of {{#multiple}}\",\"number.negative\":\"{{#label}} must be a negative number\",\"number.port\":\"{{#label}} must be a valid port\",\"number.positive\":\"{{#label}} must be a positive number\",\"number.precision\":\"{{#label}} must have no more than {{#limit}} decimal places\",\"number.unsafe\":\"{{#label}} must be a safe number\"}}),i.extractSignificantDigits=function(e){return e.replace(i.exponentialPartRegex,\"\").replace(i.dotRegex,\"\").replace(i.trailingZerosRegex,\"\").replace(i.leadingSignAndZerosRegex,\"\")},i.normalizeDecimal=function(e){return(e=e.replace(/^\\+/,\"\").replace(/\\.0*$/,\"\").replace(/^(-?)\\.([^\\.]*)$/,\"$10.$2\").replace(/^(-?)0+([0-9])/,\"$1$2\")).includes(\".\")&&e.endsWith(\"0\")&&(e=e.replace(/0+$/,\"\")),\"-0\"===e?\"0\":e}},8966:(e,t,r)=>{\"use strict\";const s=r(7824);e.exports=s.extend({type:\"object\",cast:{map:{from:e=>e&&\"object\"==typeof e,to:(e,t)=>new Map(Object.entries(e))}}})},7417:(e,t,r)=>{\"use strict\";const s=r(375),n=r(5380),a=r(1745),i=r(9959),o=r(6064),l=r(9926),c=r(5752),u=r(8068),f=r(8160),m={tlds:l instanceof Set&&{tlds:{allow:l,deny:null}},base64Regex:{true:{true:/^(?:[\\w\\-]{2}[\\w\\-]{2})*(?:[\\w\\-]{2}==|[\\w\\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/},false:{true:/^(?:[\\w\\-]{2}[\\w\\-]{2})*(?:[\\w\\-]{2}(==)?|[\\w\\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}(==)?|[A-Za-z0-9+\\/]{3}=?)?$/}},dataUriRegex:/^data:[\\w+.-]+\\/[\\w+.-]+;((charset=[\\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:i.regex({cidr:\"forbidden\"}).regex,isoDurationRegex:/^P(?!$)(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?$/,guidBrackets:{\"{\":\"}\",\"[\":\"]\",\"(\":\")\",\"\":\"\"},guidVersions:{uuidv1:\"1\",uuidv2:\"2\",uuidv3:\"3\",uuidv4:\"4\",uuidv5:\"5\",uuidv6:\"6\",uuidv7:\"7\",uuidv8:\"8\"},guidSeparators:new Set([void 0,!0,!1,\"-\",\":\"]),normalizationForms:[\"NFC\",\"NFD\",\"NFKC\",\"NFKD\"]};e.exports=u.extend({type:\"string\",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:\"string\",method(e,{schema:t,state:r,prefs:s}){const n=t.$_getRule(\"normalize\");n&&(e=e.normalize(n.args.form));const a=t.$_getRule(\"case\");a&&(e=\"upper\"===a.args.direction?e.toLocaleUpperCase():e.toLocaleLowerCase());const i=t.$_getRule(\"trim\");if(i&&i.args.enabled&&(e=e.trim()),t.$_terms.replacements)for(const r of t.$_terms.replacements)e=e.replace(r.pattern,r.replacement);const o=t.$_getRule(\"hex\");if(o&&o.args.options.byteAligned&&e.length%2!=0&&(e=`0${e}`),t.$_getRule(\"isoDate\")){const t=m.isoDate(e);t&&(e=t)}if(t._flags.truncate){const n=t.$_getRule(\"max\");if(n){let a=n.args.limit;if(f.isResolvable(a)&&(a=a.resolve(e,r,s),!f.limit(a)))return{value:e,errors:t.$_createError(\"any.ref\",a,{ref:n.args.limit,arg:\"limit\",reason:\"must be a positive integer\"},r,s)};e=e.slice(0,a)}}return{value:e}}},validate(e,{schema:t,error:r}){if(\"string\"!=typeof e)return{value:e,errors:r(\"string.base\")};if(\"\"===e){const s=t.$_getRule(\"min\");if(s&&0===s.args.limit)return;return{value:e,errors:r(\"string.empty\")}}},rules:{alphanum:{method(){return this.$_addRule(\"alphanum\")},validate:(e,t)=>/^[a-zA-Z0-9]+$/.test(e)?e:t.error(\"string.alphanum\")},base64:{method(e={}){return f.assertOptions(e,[\"paddingRequired\",\"urlSafe\"]),e={urlSafe:!1,paddingRequired:!0,...e},s(\"boolean\"==typeof e.paddingRequired,\"paddingRequired must be boolean\"),s(\"boolean\"==typeof e.urlSafe,\"urlSafe must be boolean\"),this.$_addRule({name:\"base64\",args:{options:e}})},validate:(e,t,{options:r})=>m.base64Regex[r.paddingRequired][r.urlSafe].test(e)?e:t.error(\"string.base64\")},case:{method(e){return s([\"lower\",\"upper\"].includes(e),\"Invalid case:\",e),this.$_addRule({name:\"case\",args:{direction:e}})},validate:(e,t,{direction:r})=>\"lower\"===r&&e===e.toLocaleLowerCase()||\"upper\"===r&&e===e.toLocaleUpperCase()?e:t.error(`string.${r}case`),convert:!0},creditCard:{method(){return this.$_addRule(\"creditCard\")},validate(e,t){let r=e.length,s=0,n=1;for(;r--;){const t=e.charAt(r)*n;s+=t-9*(t>9),n^=3}return s>0&&s%10==0?e:t.error(\"string.creditCard\")}},dataUri:{method(e={}){return f.assertOptions(e,[\"paddingRequired\"]),e={paddingRequired:!0,...e},s(\"boolean\"==typeof e.paddingRequired,\"paddingRequired must be boolean\"),this.$_addRule({name:\"dataUri\",args:{options:e}})},validate(e,t,{options:r}){const s=e.match(m.dataUriRegex);if(s){if(!s[2])return e;if(\"base64\"!==s[2])return e;if(m.base64Regex[r.paddingRequired].false.test(s[3]))return e}return t.error(\"string.dataUri\")}},domain:{method(e){e&&f.assertOptions(e,[\"allowFullyQualified\",\"allowUnicode\",\"maxDomainSegments\",\"minDomainSegments\",\"tlds\"]);const t=m.addressOptions(e);return this.$_addRule({name:\"domain\",args:{options:e},address:t})},validate:(e,t,r,{address:s})=>n.isValid(e,s)?e:t.error(\"string.domain\")},email:{method(e={}){f.assertOptions(e,[\"allowFullyQualified\",\"allowUnicode\",\"ignoreLength\",\"maxDomainSegments\",\"minDomainSegments\",\"multiple\",\"separator\",\"tlds\"]),s(void 0===e.multiple||\"boolean\"==typeof e.multiple,\"multiple option must be an boolean\");const t=m.addressOptions(e),r=new RegExp(`\\\\s*[${e.separator?o(e.separator):\",\"}]\\\\s*`);return this.$_addRule({name:\"email\",args:{options:e},regex:r,address:t})},validate(e,t,{options:r},{regex:s,address:n}){const i=r.multiple?e.split(s):[e],o=[];for(const e of i)a.isValid(e,n)||o.push(e);return o.length?t.error(\"string.email\",{value:e,invalids:o}):e}},guid:{alias:\"uuid\",method(e={}){f.assertOptions(e,[\"version\",\"separator\"]);let t=\"\";if(e.version){const r=[].concat(e.version);s(r.length>=1,\"version must have at least 1 valid version specified\");const n=new Set;for(let e=0;e(\"optional\"===r.prefix?m.hexRegex.withOptionalPrefix:!0===r.prefix?m.hexRegex.withPrefix:m.hexRegex.withoutPrefix).test(e)?r.byteAligned&&e.length%2!=0?t.error(\"string.hexAlign\"):e:t.error(\"string.hex\")},hostname:{method(){return this.$_addRule(\"hostname\")},validate:(e,t)=>n.isValid(e,{minDomainSegments:1})||m.ipRegex.test(e)?e:t.error(\"string.hostname\")},insensitive:{method(){return this.$_setFlag(\"insensitive\",!0)}},ip:{method(e={}){f.assertOptions(e,[\"cidr\",\"version\"]);const{cidr:t,versions:r,regex:s}=i.regex(e),n=e.version?r:void 0;return this.$_addRule({name:\"ip\",args:{options:{cidr:t,version:n}},regex:s})},validate:(e,t,{options:r},{regex:s})=>s.test(e)?e:r.version?t.error(\"string.ipVersion\",{value:e,cidr:r.cidr,version:r.version}):t.error(\"string.ip\",{value:e,cidr:r.cidr})},isoDate:{method(){return this.$_addRule(\"isoDate\")},validate:(e,{error:t})=>m.isoDate(e)?e:t(\"string.isoDate\")},isoDuration:{method(){return this.$_addRule(\"isoDuration\")},validate:(e,t)=>m.isoDurationRegex.test(e)?e:t.error(\"string.isoDuration\")},length:{method(e,t){return m.length(this,\"length\",e,\"=\",t)},validate(e,t,{limit:r,encoding:s},{name:n,operator:a,args:i}){const o=!s&&e.length;return f.compare(o,r,a)?e:t.error(\"string.\"+n,{limit:i.limit,value:e,encoding:s})},args:[{name:\"limit\",ref:!0,assert:f.limit,message:\"must be a positive integer\"},\"encoding\"]},lowercase:{method(){return this.case(\"lower\")}},max:{method(e,t){return m.length(this,\"max\",e,\"<=\",t)},args:[\"limit\",\"encoding\"]},min:{method(e,t){return m.length(this,\"min\",e,\">=\",t)},args:[\"limit\",\"encoding\"]},normalize:{method(e=\"NFC\"){return s(m.normalizationForms.includes(e),\"normalization form must be one of \"+m.normalizationForms.join(\", \")),this.$_addRule({name:\"normalize\",args:{form:e}})},validate:(e,{error:t},{form:r})=>e===e.normalize(r)?e:t(\"string.normalize\",{value:e,form:r}),convert:!0},pattern:{alias:\"regex\",method(e,t={}){s(e instanceof RegExp,\"regex must be a RegExp\"),s(!e.flags.includes(\"g\")&&!e.flags.includes(\"y\"),\"regex should not use global or sticky mode\"),\"string\"==typeof t&&(t={name:t}),f.assertOptions(t,[\"invert\",\"name\"]);const r=[\"string.pattern\",t.invert?\".invert\":\"\",t.name?\".name\":\".base\"].join(\"\");return this.$_addRule({name:\"pattern\",args:{regex:e,options:t},errorCode:r})},validate:(e,t,{regex:r,options:s},{errorCode:n})=>r.test(e)^s.invert?e:t.error(n,{name:s.name,regex:r,value:e}),args:[\"regex\",\"options\"],multi:!0},replace:{method(e,t){\"string\"==typeof e&&(e=new RegExp(o(e),\"g\")),s(e instanceof RegExp,\"pattern must be a RegExp\"),s(\"string\"==typeof t,\"replacement must be a String\");const r=this.clone();return r.$_terms.replacements||(r.$_terms.replacements=[]),r.$_terms.replacements.push({pattern:e,replacement:t}),r}},token:{method(){return this.$_addRule(\"token\")},validate:(e,t)=>/^\\w+$/.test(e)?e:t.error(\"string.token\")},trim:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_addRule({name:\"trim\",args:{enabled:e}})},validate:(e,t,{enabled:r})=>r&&e!==e.trim()?t.error(\"string.trim\"):e,convert:!0},truncate:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_setFlag(\"truncate\",e)}},uppercase:{method(){return this.case(\"upper\")}},uri:{method(e={}){f.assertOptions(e,[\"allowRelative\",\"allowQuerySquareBrackets\",\"domain\",\"relativeOnly\",\"scheme\",\"encodeUri\"]),e.domain&&f.assertOptions(e.domain,[\"allowFullyQualified\",\"allowUnicode\",\"maxDomainSegments\",\"minDomainSegments\",\"tlds\"]);const{regex:t,scheme:r}=c.regex(e),s=e.domain?m.addressOptions(e.domain):null;return this.$_addRule({name:\"uri\",args:{options:e},regex:t,domain:s,scheme:r})},validate(e,t,{options:r},{regex:s,domain:a,scheme:i}){if([\"http:/\",\"https:/\"].includes(e))return t.error(\"string.uri\");let o=s.exec(e);if(!o&&t.prefs.convert&&r.encodeUri){const t=encodeURI(e);o=s.exec(t),o&&(e=t)}if(o){const s=o[1]||o[2];return!a||r.allowRelative&&!s||n.isValid(s,a)?e:t.error(\"string.domain\",{value:s})}return r.relativeOnly?t.error(\"string.uriRelativeOnly\"):r.scheme?t.error(\"string.uriCustomScheme\",{scheme:i,value:e}):t.error(\"string.uri\")}}},manifest:{build(e,t){if(t.replacements)for(const{pattern:r,replacement:s}of t.replacements)e=e.replace(r,s);return e}},messages:{\"string.alphanum\":\"{{#label}} must only contain alpha-numeric characters\",\"string.base\":\"{{#label}} must be a string\",\"string.base64\":\"{{#label}} must be a valid base64 string\",\"string.creditCard\":\"{{#label}} must be a credit card\",\"string.dataUri\":\"{{#label}} must be a valid dataUri string\",\"string.domain\":\"{{#label}} must contain a valid domain name\",\"string.email\":\"{{#label}} must be a valid email\",\"string.empty\":\"{{#label}} is not allowed to be empty\",\"string.guid\":\"{{#label}} must be a valid GUID\",\"string.hex\":\"{{#label}} must only contain hexadecimal characters\",\"string.hexAlign\":\"{{#label}} hex decoded representation must be byte aligned\",\"string.hostname\":\"{{#label}} must be a valid hostname\",\"string.ip\":\"{{#label}} must be a valid ip address with a {{#cidr}} CIDR\",\"string.ipVersion\":\"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR\",\"string.isoDate\":\"{{#label}} must be in iso format\",\"string.isoDuration\":\"{{#label}} must be a valid ISO 8601 duration\",\"string.length\":\"{{#label}} length must be {{#limit}} characters long\",\"string.lowercase\":\"{{#label}} must only contain lowercase characters\",\"string.max\":\"{{#label}} length must be less than or equal to {{#limit}} characters long\",\"string.min\":\"{{#label}} length must be at least {{#limit}} characters long\",\"string.normalize\":\"{{#label}} must be unicode normalized in the {{#form}} form\",\"string.token\":\"{{#label}} must only contain alpha-numeric and underscore characters\",\"string.pattern.base\":\"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}\",\"string.pattern.name\":\"{{#label}} with value {:[.]} fails to match the {{#name}} pattern\",\"string.pattern.invert.base\":\"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}\",\"string.pattern.invert.name\":\"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern\",\"string.trim\":\"{{#label}} must not have leading or trailing whitespace\",\"string.uri\":\"{{#label}} must be a valid uri\",\"string.uriCustomScheme\":\"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern\",\"string.uriRelativeOnly\":\"{{#label}} must be a valid relative uri\",\"string.uppercase\":\"{{#label}} must only contain uppercase characters\"}}),m.addressOptions=function(e){if(!e)return m.tlds||e;if(s(void 0===e.minDomainSegments||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,\"minDomainSegments must be a positive integer\"),s(void 0===e.maxDomainSegments||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,\"maxDomainSegments must be a positive integer\"),!1===e.tlds)return e;if(!0===e.tlds||void 0===e.tlds)return s(m.tlds,\"Built-in TLD list disabled\"),Object.assign({},e,m.tlds);s(\"object\"==typeof e.tlds,\"tlds must be true, false, or an object\");const t=e.tlds.deny;if(t)return Array.isArray(t)&&(e=Object.assign({},e,{tlds:{deny:new Set(t)}})),s(e.tlds.deny instanceof Set,\"tlds.deny must be an array, Set, or boolean\"),s(!e.tlds.allow,\"Cannot specify both tlds.allow and tlds.deny lists\"),m.validateTlds(e.tlds.deny,\"tlds.deny\"),e;const r=e.tlds.allow;return r?!0===r?(s(m.tlds,\"Built-in TLD list disabled\"),Object.assign({},e,m.tlds)):(Array.isArray(r)&&(e=Object.assign({},e,{tlds:{allow:new Set(r)}})),s(e.tlds.allow instanceof Set,\"tlds.allow must be an array, Set, or boolean\"),m.validateTlds(e.tlds.allow,\"tlds.allow\"),e):e},m.validateTlds=function(e,t){for(const r of e)s(n.isValid(r,{minDomainSegments:1,maxDomainSegments:1}),`${t} must contain valid top level domain names`)},m.isoDate=function(e){if(!f.isIsoDate(e))return null;/.*T.*[+-]\\d\\d$/.test(e)&&(e+=\"00\");const t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()},m.length=function(e,t,r,n,a){return s(!a||!1,\"Invalid encoding:\",a),e.$_addRule({name:t,method:\"length\",args:{limit:r,encoding:a},operator:n})}},8826:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a={};a.Map=class extends Map{slice(){return new a.Map(this)}},e.exports=n.extend({type:\"symbol\",terms:{map:{init:new a.Map}},coerce:{method(e,{schema:t,error:r}){const s=t.$_terms.map.get(e);return s&&(e=s),t._flags.only&&\"symbol\"!=typeof e?{value:e,errors:r(\"symbol.map\",{map:t.$_terms.map})}:{value:e}}},validate(e,{error:t}){if(\"symbol\"!=typeof e)return{value:e,errors:t(\"symbol.base\")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&\"object\"==typeof e&&(e=Object.entries(e)),s(e&&e[Symbol.iterator],\"Iterable must be an iterable or object\");const t=this.clone(),r=[];for(const n of e){s(n&&n[Symbol.iterator],\"Entry must be an iterable\");const[e,a]=n;s(\"object\"!=typeof e&&\"function\"!=typeof e&&\"symbol\"!=typeof e,\"Key must not be of type object, function, or Symbol\"),s(\"symbol\"==typeof a,\"Value must be a Symbol\"),t.$_terms.map.set(e,a),r.push(a)}return t.valid(...r)}}},manifest:{build:(e,t)=>(t.map&&(e=e.map(t.map)),e)},messages:{\"symbol.base\":\"{{#label}} must be a symbol\",\"symbol.map\":\"{{#label}} must be one of {{#map}}\"}})},8863:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(738),i=r(9621),o=r(8160),l=r(6354),c=r(493),u={result:Symbol(\"result\")};t.entry=function(e,t,r){let n=o.defaults;r&&(s(void 0===r.warnings,\"Cannot override warnings preference in synchronous validation\"),s(void 0===r.artifacts,\"Cannot override artifacts preference in synchronous validation\"),n=o.preferences(o.defaults,r));const a=u.entry(e,t,n);s(!a.mainstay.externals.length,\"Schema with external rules must use validateAsync()\");const i={value:a.value};return a.error&&(i.error=a.error),a.mainstay.warnings.length&&(i.warning=l.details(a.mainstay.warnings)),a.mainstay.debug&&(i.debug=a.mainstay.debug),a.mainstay.artifacts&&(i.artifacts=a.mainstay.artifacts),i},t.entryAsync=async function(e,t,r){let s=o.defaults;r&&(s=o.preferences(o.defaults,r));const n=u.entry(e,t,s),a=n.mainstay;if(n.error)throw a.debug&&(n.error.debug=a.debug),n.error;if(a.externals.length){let t=n.value;const c=[];for(const n of a.externals){const f=n.state.path,m=\"link\"===n.schema.type?a.links.get(n.schema):null;let h,d,p=t;const g=f.length?[t]:[],y=f.length?i(e,f):e;if(f.length){h=f[f.length-1];let e=t;for(const t of f.slice(0,-1))e=e[t],g.unshift(e);d=g[0],p=d[h]}try{const e=(e,t)=>(m||n.schema).$_createError(e,p,t,n.state,s),i=await n.method(p,{schema:n.schema,linked:m,state:n.state,prefs:r,original:y,error:e,errorsArray:u.errorsArray,warn:(e,t)=>a.warnings.push((m||n.schema).$_createError(e,p,t,n.state,s)),message:(e,t)=>(m||n.schema).$_createError(\"external\",p,t,n.state,s,{messages:e})});if(void 0===i||i===p)continue;if(i instanceof l.Report){if(a.tracer.log(n.schema,n.state,\"rule\",\"external\",\"error\"),c.push(i),s.abortEarly)break;continue}if(Array.isArray(i)&&i[o.symbols.errors]){if(a.tracer.log(n.schema,n.state,\"rule\",\"external\",\"error\"),c.push(...i),s.abortEarly)break;continue}d?(a.tracer.value(n.state,\"rule\",p,i,\"external\"),d[h]=i):(a.tracer.value(n.state,\"rule\",t,i,\"external\"),t=i)}catch(e){throw s.errors.label&&(e.message+=` (${n.label})`),e}}if(n.value=t,c.length)throw n.error=l.process(c,e,s),a.debug&&(n.error.debug=a.debug),n.error}if(!s.warnings&&!s.debug&&!s.artifacts)return n.value;const c={value:n.value};return a.warnings.length&&(c.warning=l.details(a.warnings)),a.debug&&(c.debug=a.debug),a.artifacts&&(c.artifacts=a.artifacts),c},u.Mainstay=class{constructor(e,t,r){this.externals=[],this.warnings=[],this.tracer=e,this.debug=t,this.links=r,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()})}restore(){const e=this._snapshots.pop();this.externals=e.externals,this.warnings=e.warnings}commit(){this._snapshots.pop()}},u.entry=function(e,r,s){const{tracer:n,cleanup:a}=u.tracer(r,s),i=s.debug?[]:null,o=r._ids._schemaChain?new Map:null,f=new u.Mainstay(n,i,o),m=r._ids._schemaChain?[{schema:r}]:null,h=new c([],[],{mainstay:f,schemas:m}),d=t.validate(e,r,h,s);a&&r.$_root.untrace();const p=l.process(d.errors,e,s);return{value:d.value,error:p,mainstay:f}},u.tracer=function(e,t){return e.$_root._tracer?{tracer:e.$_root._tracer._register(e)}:t.debug?(s(e.$_root.trace,\"Debug mode not supported\"),{tracer:e.$_root.trace()._register(e),cleanup:!0}):{tracer:u.ignore}},t.validate=function(e,t,r,s,n={}){if(t.$_terms.whens&&(t=t._generate(e,r,s).schema),t._preferences&&(s=u.prefs(t,s)),t._cache&&s.cache){const s=t._cache.get(e);if(r.mainstay.tracer.debug(r,\"validate\",\"cached\",!!s),s)return s}const a=(n,a,i)=>t.$_createError(n,e,a,i||r,s),i={original:e,prefs:s,schema:t,state:r,error:a,errorsArray:u.errorsArray,warn:(e,t,s)=>r.mainstay.warnings.push(a(e,t,s)),message:(n,a)=>t.$_createError(\"custom\",e,a,r,s,{messages:n})};r.mainstay.tracer.entry(t,r);const l=t._definition;if(l.prepare&&void 0!==e&&s.convert){const t=l.prepare(e,i);if(t){if(r.mainstay.tracer.value(r,\"prepare\",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),i);e=t.value}}if(l.coerce&&void 0!==e&&s.convert&&(!l.coerce.from||l.coerce.from.includes(typeof e))){const t=l.coerce.method(e,i);if(t){if(r.mainstay.tracer.value(r,\"coerced\",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),i);e=t.value}}const c=t._flags.empty;c&&c.$_match(u.trim(e,t),r.nest(c),o.defaults)&&(r.mainstay.tracer.value(r,\"empty\",e,void 0),e=void 0);const f=n.presence||t._flags.presence||(t._flags._endedSwitch?null:s.presence);if(void 0===e){if(\"forbidden\"===f)return u.finalize(e,null,i);if(\"required\"===f)return u.finalize(e,[t.$_createError(\"any.required\",e,null,r,s)],i);if(\"optional\"===f){if(t._flags.default!==o.symbols.deepDefault)return u.finalize(e,null,i);r.mainstay.tracer.value(r,\"default\",e,{}),e={}}}else if(\"forbidden\"===f)return u.finalize(e,[t.$_createError(\"any.unknown\",e,null,r,s)],i);const m=[];if(t._valids){const n=t._valids.get(e,r,s,t._flags.insensitive);if(n)return s.convert&&(r.mainstay.tracer.value(r,\"valids\",e,n.value),e=n.value),r.mainstay.tracer.filter(t,r,\"valid\",n),u.finalize(e,null,i);if(t._flags.only){const n=t.$_createError(\"any.only\",e,{valids:t._valids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[n],i);m.push(n)}}if(t._invalids){const n=t._invalids.get(e,r,s,t._flags.insensitive);if(n){r.mainstay.tracer.filter(t,r,\"invalid\",n);const a=t.$_createError(\"any.invalid\",e,{invalids:t._invalids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[a],i);m.push(a)}}if(l.validate){const t=l.validate(e,i);if(t&&(r.mainstay.tracer.value(r,\"base\",e,t.value),e=t.value,t.errors)){if(!Array.isArray(t.errors))return m.push(t.errors),u.finalize(e,m,i);if(t.errors.length)return m.push(...t.errors),u.finalize(e,m,i)}}return t._rules.length?u.rules(e,m,i):u.finalize(e,m,i)},u.rules=function(e,t,r){const{schema:s,state:n,prefs:a}=r;for(const i of s._rules){const l=s._definition.rules[i.method];if(l.convert&&a.convert){n.mainstay.tracer.log(s,n,\"rule\",i.name,\"full\");continue}let c,f=i.args;if(i._resolve.length){f=Object.assign({},f);for(const t of i._resolve){const r=l.argsByName.get(t),i=f[t].resolve(e,n,a),u=r.normalize?r.normalize(i):i,m=o.validateArg(u,null,r);if(m){c=s.$_createError(\"any.ref\",i,{arg:t,ref:f[t],reason:m},n,a);break}f[t]=u}}c=c||l.validate(e,r,f,i);const m=u.rule(c,i);if(m.errors){if(n.mainstay.tracer.log(s,n,\"rule\",i.name,\"error\"),i.warn){n.mainstay.warnings.push(...m.errors);continue}if(a.abortEarly)return u.finalize(e,m.errors,r);t.push(...m.errors)}else n.mainstay.tracer.log(s,n,\"rule\",i.name,\"pass\"),n.mainstay.tracer.value(n,\"rule\",e,m.value,i.name),e=m.value}return u.finalize(e,t,r)},u.rule=function(e,t){return e instanceof l.Report?(u.error(e,t),{errors:[e],value:null}):Array.isArray(e)&&e[o.symbols.errors]?(e.forEach((e=>u.error(e,t))),{errors:e,value:null}):{errors:null,value:e}},u.error=function(e,t){return t.message&&e._setTemplate(t.message),e},u.finalize=function(e,t,r){t=t||[];const{schema:n,state:a,prefs:i}=r;if(t.length){const s=u.default(\"failover\",void 0,t,r);void 0!==s&&(a.mainstay.tracer.value(a,\"failover\",e,s),e=s,t=[])}if(t.length&&n._flags.error)if(\"function\"==typeof n._flags.error){t=n._flags.error(t),Array.isArray(t)||(t=[t]);for(const e of t)s(e instanceof Error||e instanceof l.Report,\"error() must return an Error object\")}else t=[n._flags.error];if(void 0===e){const s=u.default(\"default\",e,t,r);a.mainstay.tracer.value(a,\"default\",e,s),e=s}if(n._flags.cast&&void 0!==e){const t=n._definition.cast[n._flags.cast];if(t.from(e)){const s=t.to(e,r);a.mainstay.tracer.value(a,\"cast\",e,s,n._flags.cast),e=s}}if(n.$_terms.externals&&i.externals&&!1!==i._externals)for(const{method:e}of n.$_terms.externals)a.mainstay.externals.push({method:e,schema:n,state:a,label:l.label(n._flags,a,i)});const o={value:e,errors:t.length?t:null};return n._flags.result&&(o.value=\"strip\"===n._flags.result?void 0:r.original,a.mainstay.tracer.value(a,n._flags.result,e,o.value),a.shadow(e,n._flags.result)),n._cache&&!1!==i.cache&&!n._refs.length&&n._cache.set(r.original,o),void 0===e||o.errors||void 0===n._flags.artifact||(a.mainstay.artifacts=a.mainstay.artifacts||new Map,a.mainstay.artifacts.has(n._flags.artifact)||a.mainstay.artifacts.set(n._flags.artifact,[]),a.mainstay.artifacts.get(n._flags.artifact).push(a.path)),o},u.prefs=function(e,t){const r=t===o.defaults;return r&&e._preferences[o.symbols.prefs]?e._preferences[o.symbols.prefs]:(t=o.preferences(t,e._preferences),r&&(e._preferences[o.symbols.prefs]=t),t)},u.default=function(e,t,r,s){const{schema:a,state:i,prefs:l}=s,c=a._flags[e];if(l.noDefaults||void 0===c)return t;if(i.mainstay.tracer.log(a,i,\"rule\",e,\"full\"),!c)return c;if(\"function\"==typeof c){const t=c.length?[n(i.ancestors[0]),s]:[];try{return c(...t)}catch(t){return void r.push(a.$_createError(`any.${e}`,null,{error:t},i,l))}}return\"object\"!=typeof c?c:c[o.symbols.literal]?c.literal:o.isResolvable(c)?c.resolve(t,i,l):n(c)},u.trim=function(e,t){if(\"string\"!=typeof e)return e;const r=t.$_getRule(\"trim\");return r&&r.args.enabled?e.trim():e},u.ignore={active:!1,debug:a,entry:a,filter:a,log:a,resolve:a,value:a},u.errorsArray=function(){const e=[];return e[o.symbols.errors]=!0,e}},2036:(e,t,r)=>{\"use strict\";const s=r(375),n=r(9474),a=r(8160),i={};e.exports=i.Values=class{constructor(e,t){this._values=new Set(e),this._refs=new Set(t),this._lowercase=i.lowercases(e),this._override=!1}get length(){return this._values.size+this._refs.size}add(e,t){a.isResolvable(e)?this._refs.has(e)||(this._refs.add(e),t&&t.register(e)):this.has(e,null,null,!1)||(this._values.add(e),\"string\"==typeof e&&this._lowercase.set(e.toLowerCase(),e))}static merge(e,t,r){if(e=e||new i.Values,t){if(t._override)return t.clone();for(const r of[...t._values,...t._refs])e.add(r)}if(r)for(const t of[...r._values,...r._refs])e.remove(t);return e.length?e:null}remove(e){a.isResolvable(e)?this._refs.delete(e):(this._values.delete(e),\"string\"==typeof e&&this._lowercase.delete(e.toLowerCase()))}has(e,t,r,s){return!!this.get(e,t,r,s)}get(e,t,r,s){if(!this.length)return!1;if(this._values.has(e))return{value:e};if(\"string\"==typeof e&&e&&s){const t=this._lowercase.get(e.toLowerCase());if(t)return{value:t}}if(!this._refs.size&&\"object\"!=typeof e)return!1;if(\"object\"==typeof e)for(const t of this._values)if(n(t,e))return{value:t};if(t)for(const a of this._refs){const i=a.resolve(e,t,r,null,{in:!0});if(void 0===i)continue;const o=a.in&&\"object\"==typeof i?Array.isArray(i)?i:Object.keys(i):[i];for(const t of o)if(typeof t==typeof e)if(s&&e&&\"string\"==typeof e){if(t.toLowerCase()===e.toLowerCase())return{value:t,ref:a}}else if(n(t,e))return{value:t,ref:a}}return!1}override(){this._override=!0}values(e){if(e&&e.display){const e=[];for(const t of[...this._values,...this._refs])void 0!==t&&e.push(t);return e}return Array.from([...this._values,...this._refs])}clone(){const e=new i.Values(this._values,this._refs);return e._override=this._override,e}concat(e){s(!e._override,\"Cannot concat override set of values\");const t=new i.Values([...this._values,...e._values],[...this._refs,...e._refs]);return t._override=this._override,t}describe(){const e=[];this._override&&e.push({override:!0});for(const t of this._values.values())e.push(t&&\"object\"==typeof t?{value:t}:t);for(const t of this._refs.values())e.push(t.describe());return e}},i.Values.prototype[a.symbols.values]=!0,i.Values.prototype.slice=i.Values.prototype.clone,i.lowercases=function(e){const t=new Map;if(e)for(const r of e)\"string\"==typeof r&&t.set(r.toLowerCase(),r);return t}},978:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(1687),i=r(9621),o={};e.exports=function(e,t,r={}){if(s(e&&\"object\"==typeof e,\"Invalid defaults value: must be an object\"),s(!t||!0===t||\"object\"==typeof t,\"Invalid source value: must be true, falsy or an object\"),s(\"object\"==typeof r,\"Invalid options: must be an object\"),!t)return null;if(r.shallow)return o.applyToDefaultsWithShallow(e,t,r);const i=n(e);if(!0===t)return i;const l=void 0!==r.nullOverride&&r.nullOverride;return a(i,t,{nullOverride:l,mergeArrays:!1})},o.applyToDefaultsWithShallow=function(e,t,r){const l=r.shallow;s(Array.isArray(l),\"Invalid keys\");const c=new Map,u=!0===t?null:new Set;for(let r of l){r=Array.isArray(r)?r:r.split(\".\");const s=i(e,r);s&&\"object\"==typeof s?c.set(s,u&&i(t,r)||s):u&&u.add(r)}const f=n(e,{},c);if(!u)return f;for(const e of u)o.reachCopy(f,t,e);const m=void 0!==r.nullOverride&&r.nullOverride;return a(f,t,{nullOverride:m,mergeArrays:!1})},o.reachCopy=function(e,t,r){for(const e of r){if(!(e in t))return;const r=t[e];if(\"object\"!=typeof r||null===r)return;t=r}const s=t;let n=e;for(let e=0;e{\"use strict\";const s=r(7916);e.exports=function(e,...t){if(!e){if(1===t.length&&t[0]instanceof Error)throw t[0];throw new s(t)}}},8571:(e,t,r)=>{\"use strict\";const s=r(9621),n=r(4277),a=r(7043),i={needsProtoHack:new Set([n.set,n.map,n.weakSet,n.weakMap])};e.exports=i.clone=function(e,t={},r=null){if(\"object\"!=typeof e||null===e)return e;let s=i.clone,o=r;if(t.shallow){if(!0!==t.shallow)return i.cloneWithShallow(e,t);s=e=>e}else if(o){const t=o.get(e);if(t)return t}else o=new Map;const l=n.getInternalProto(e);if(l===n.buffer)return!1;if(l===n.date)return new Date(e.getTime());if(l===n.regex)return new RegExp(e);const c=i.base(e,l,t);if(c===e)return e;if(o&&o.set(e,c),l===n.set)for(const r of e)c.add(s(r,t,o));else if(l===n.map)for(const[r,n]of e)c.set(r,s(n,t,o));const u=a.keys(e,t);for(const r of u){if(\"__proto__\"===r)continue;if(l===n.array&&\"length\"===r){c.length=e.length;continue}const a=Object.getOwnPropertyDescriptor(e,r);a?a.get||a.set?Object.defineProperty(c,r,a):a.enumerable?c[r]=s(e[r],t,o):Object.defineProperty(c,r,{enumerable:!1,writable:!0,configurable:!0,value:s(e[r],t,o)}):Object.defineProperty(c,r,{enumerable:!0,writable:!0,configurable:!0,value:s(e[r],t,o)})}return c},i.cloneWithShallow=function(e,t){const r=t.shallow;(t=Object.assign({},t)).shallow=!1;const n=new Map;for(const t of r){const r=s(e,t);\"object\"!=typeof r&&\"function\"!=typeof r||n.set(r,r)}return i.clone(e,t,n)},i.base=function(e,t,r){if(!1===r.prototype)return i.needsProtoHack.has(t)?new t.constructor:t===n.array?[]:{};const s=Object.getPrototypeOf(e);if(s&&s.isImmutable)return e;if(t===n.array){const e=[];return s!==t&&Object.setPrototypeOf(e,s),e}if(i.needsProtoHack.has(t)){const e=new s.constructor;return s!==t&&Object.setPrototypeOf(e,s),e}return Object.create(s)}},9474:(e,t,r)=>{\"use strict\";const s=r(4277),n={mismatched:null};e.exports=function(e,t,r){return r=Object.assign({prototype:!0},r),!!n.isDeepEqual(e,t,r,[])},n.isDeepEqual=function(e,t,r,a){if(e===t)return 0!==e||1/e==1/t;const i=typeof e;if(i!==typeof t)return!1;if(null===e||null===t)return!1;if(\"function\"===i){if(!r.deepFunction||e.toString()!==t.toString())return!1}else if(\"object\"!==i)return e!=e&&t!=t;const o=n.getSharedType(e,t,!!r.prototype);switch(o){case s.buffer:return!1;case s.promise:return e===t;case s.regex:return e.toString()===t.toString();case n.mismatched:return!1}for(let r=a.length-1;r>=0;--r)if(a[r].isSame(e,t))return!0;a.push(new n.SeenEntry(e,t));try{return!!n.isDeepEqualObj(o,e,t,r,a)}finally{a.pop()}},n.getSharedType=function(e,t,r){if(r)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?n.mismatched:s.getInternalProto(e);const a=s.getInternalProto(e);return a!==s.getInternalProto(t)?n.mismatched:a},n.valueOf=function(e){const t=e.valueOf;if(void 0===t)return e;try{return t.call(e)}catch(e){return e}},n.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)},n.isSetSimpleEqual=function(e,t){for(const r of Set.prototype.values.call(e))if(!Set.prototype.has.call(t,r))return!1;return!0},n.isDeepEqualObj=function(e,t,r,a,i){const{isDeepEqual:o,valueOf:l,hasOwnEnumerableProperty:c}=n,{keys:u,getOwnPropertySymbols:f}=Object;if(e===s.array){if(!a.part){if(t.length!==r.length)return!1;for(let e=0;e{\"use strict\";const s=r(8761);e.exports=class extends Error{constructor(e){super(e.filter((e=>\"\"!==e)).map((e=>\"string\"==typeof e?e:e instanceof Error?e.message:s(e))).join(\" \")||\"Unknown error\"),\"function\"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t.assert)}}},5277:e=>{\"use strict\";const t={};e.exports=function(e){if(!e)return\"\";let r=\"\";for(let s=0;s=256?\"&#\"+e+\";\":`&#x${e.toString(16).padStart(2,\"0\")};`)},t.isSafe=function(e){return t.safeCharCodes.has(e)},t.namedHtml=new Map([[38,\"&\"],[60,\"<\"],[62,\">\"],[34,\""\"],[160,\" \"],[162,\"¢\"],[163,\"£\"],[164,\"¤\"],[169,\"©\"],[174,\"®\"]]),t.safeCharCodes=function(){const e=new Set;for(let t=32;t<123;++t)(t>=97||t>=65&&t<=90||t>=48&&t<=57||32===t||46===t||44===t||45===t||58===t||95===t)&&e.add(t);return e}()},6064:e=>{\"use strict\";e.exports=function(e){return e.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g,\"\\\\$&\")}},738:e=>{\"use strict\";e.exports=function(){}},1687:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(7043),i={};e.exports=i.merge=function(e,t,r){if(s(e&&\"object\"==typeof e,\"Invalid target value: must be an object\"),s(null==t||\"object\"==typeof t,\"Invalid source value: must be null, undefined, or an object\"),!t)return e;if(r=Object.assign({nullOverride:!0,mergeArrays:!0},r),Array.isArray(t)){s(Array.isArray(e),\"Cannot merge array onto an object\"),r.mergeArrays||(e.length=0);for(let s=0;s{\"use strict\";const s=r(375),n={};e.exports=function(e,t,r){if(!1===t||null==t)return e;\"string\"==typeof(r=r||{})&&(r={separator:r});const a=Array.isArray(t);s(!a||!r.separator,\"Separator option is not valid for array-based chain\");const i=a?t:t.split(r.separator||\".\");let o=e;for(let e=0;e{\"use strict\";e.exports=function(...e){try{return JSON.stringify(...e)}catch(e){return\"[Cannot display object: \"+e.message+\"]\"}}},4277:(e,t)=>{\"use strict\";const r={};t=e.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},r.typeMap=new Map([[\"[object Error]\",t.error],[\"[object Map]\",t.map],[\"[object Promise]\",t.promise],[\"[object Set]\",t.set],[\"[object WeakMap]\",t.weakMap],[\"[object WeakSet]\",t.weakSet]]),t.getInternalProto=function(e){if(Array.isArray(e))return t.array;if(e instanceof Date)return t.date;if(e instanceof RegExp)return t.regex;if(e instanceof Error)return t.error;const s=Object.prototype.toString.call(e);return r.typeMap.get(s)||t.generic}},7043:(e,t)=>{\"use strict\";t.keys=function(e,t={}){return!1!==t.symbols?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},3652:(e,t,r)=>{\"use strict\";const s=r(375),n={};t.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(e,t){const r=[].concat((t=t||{}).before||[]),n=[].concat(t.after||[]),a=t.group||\"?\",i=t.sort||0;s(!r.includes(a),`Item cannot come before itself: ${a}`),s(!r.includes(\"?\"),\"Item cannot come before unassociated items\"),s(!n.includes(a),`Item cannot come after itself: ${a}`),s(!n.includes(\"?\"),\"Item cannot come after unassociated items\"),Array.isArray(e)||(e=[e]);for(const t of e){const e={seq:this._items.length,sort:i,before:r,after:n,group:a,node:t};this._items.push(e)}if(!t.manual){const e=this._sort();s(e,\"item\",\"?\"!==a?`added into group ${a}`:\"\",\"created a dependencies error\")}return this.nodes}merge(e){Array.isArray(e)||(e=[e]);for(const t of e)if(t)for(const e of t._items)this._items.push(Object.assign({},e));this._items.sort(n.mergeSort);for(let e=0;ee.sort===t.sort?0:e.sort{\"use strict\";const s=r(443),n=r(2178),a={minDomainSegments:2,nonAsciiRx:/[^\\x00-\\x7f]/,domainControlRx:/[\\x00-\\x20@\\:\\/\\\\#!\\$&\\'\\(\\)\\*\\+,;=\\?]/,tldSegmentRx:/^[a-zA-Z](?:[a-zA-Z0-9\\-]*[a-zA-Z0-9])?$/,domainSegmentRx:/^[a-zA-Z0-9](?:[a-zA-Z0-9\\-]*[a-zA-Z0-9])?$/,URL:s.URL||URL};t.analyze=function(e,t={}){if(!e)return n.code(\"DOMAIN_NON_EMPTY_STRING\");if(\"string\"!=typeof e)throw new Error(\"Invalid input: domain must be a string\");if(e.length>256)return n.code(\"DOMAIN_TOO_LONG\");if(a.nonAsciiRx.test(e)){if(!1===t.allowUnicode)return n.code(\"DOMAIN_INVALID_UNICODE_CHARS\");e=e.normalize(\"NFC\")}if(a.domainControlRx.test(e))return n.code(\"DOMAIN_INVALID_CHARS\");e=a.punycode(e),t.allowFullyQualified&&\".\"===e[e.length-1]&&(e=e.slice(0,-1));const r=t.minDomainSegments||a.minDomainSegments,s=e.split(\".\");if(s.lengtht.maxDomainSegments)return n.code(\"DOMAIN_SEGMENTS_COUNT_MAX\");const i=t.tlds;if(i){const e=s[s.length-1].toLowerCase();if(i.deny&&i.deny.has(e)||i.allow&&!i.allow.has(e))return n.code(\"DOMAIN_FORBIDDEN_TLDS\")}for(let e=0;e63)return n.code(\"DOMAIN_LONG_SEGMENT\");if(e{\"use strict\";const s=r(9848),n=r(5380),a=r(2178),i={nonAsciiRx:/[^\\x00-\\x7f]/,encoder:new(s.TextEncoder||TextEncoder)};t.analyze=function(e,t){return i.email(e,t)},t.isValid=function(e,t){return!i.email(e,t)},i.email=function(e,t={}){if(\"string\"!=typeof e)throw new Error(\"Invalid input: email must be a string\");if(!e)return a.code(\"EMPTY_STRING\");const r=!i.nonAsciiRx.test(e);if(!r){if(!1===t.allowUnicode)return a.code(\"FORBIDDEN_UNICODE\");e=e.normalize(\"NFC\")}const s=e.split(\"@\");if(2!==s.length)return s.length>2?a.code(\"MULTIPLE_AT_CHAR\"):a.code(\"MISSING_AT_CHAR\");const[o,l]=s;if(!o)return a.code(\"EMPTY_LOCAL\");if(!t.ignoreLength){if(e.length>254)return a.code(\"ADDRESS_TOO_LONG\");if(i.encoder.encode(o).length>64)return a.code(\"LOCAL_TOO_LONG\")}return i.local(o,r)||n.analyze(l,t)},i.local=function(e,t){const r=e.split(\".\");for(const e of r){if(!e.length)return a.code(\"EMPTY_LOCAL_SEGMENT\");if(t){if(!i.atextRx.test(e))return a.code(\"INVALID_LOCAL_CHARS\")}else for(const t of e){if(i.atextRx.test(t))continue;const e=i.binary(t);if(!i.atomRx.test(e))return a.code(\"INVALID_LOCAL_CHARS\")}}},i.binary=function(e){return Array.from(i.encoder.encode(e)).map((e=>String.fromCharCode(e))).join(\"\")},i.atextRx=/^[\\w!#\\$%&'\\*\\+\\-/=\\?\\^`\\{\\|\\}~]+$/,i.atomRx=new RegExp([\"(?:[\\\\xc2-\\\\xdf][\\\\x80-\\\\xbf])\",\"(?:\\\\xe0[\\\\xa0-\\\\xbf][\\\\x80-\\\\xbf])|(?:[\\\\xe1-\\\\xec][\\\\x80-\\\\xbf]{2})|(?:\\\\xed[\\\\x80-\\\\x9f][\\\\x80-\\\\xbf])|(?:[\\\\xee-\\\\xef][\\\\x80-\\\\xbf]{2})\",\"(?:\\\\xf0[\\\\x90-\\\\xbf][\\\\x80-\\\\xbf]{2})|(?:[\\\\xf1-\\\\xf3][\\\\x80-\\\\xbf]{3})|(?:\\\\xf4[\\\\x80-\\\\x8f][\\\\x80-\\\\xbf]{2})\"].join(\"|\"))},2178:(e,t)=>{\"use strict\";t.codes={EMPTY_STRING:\"Address must be a non-empty string\",FORBIDDEN_UNICODE:\"Address contains forbidden Unicode characters\",MULTIPLE_AT_CHAR:\"Address cannot contain more than one @ character\",MISSING_AT_CHAR:\"Address must contain one @ character\",EMPTY_LOCAL:\"Address local part cannot be empty\",ADDRESS_TOO_LONG:\"Address too long\",LOCAL_TOO_LONG:\"Address local part too long\",EMPTY_LOCAL_SEGMENT:\"Address local part contains empty dot-separated segment\",INVALID_LOCAL_CHARS:\"Address local part contains invalid character\",DOMAIN_NON_EMPTY_STRING:\"Domain must be a non-empty string\",DOMAIN_TOO_LONG:\"Domain too long\",DOMAIN_INVALID_UNICODE_CHARS:\"Domain contains forbidden Unicode characters\",DOMAIN_INVALID_CHARS:\"Domain contains invalid character\",DOMAIN_INVALID_TLDS_CHARS:\"Domain contains invalid tld character\",DOMAIN_SEGMENTS_COUNT:\"Domain lacks the minimum required number of segments\",DOMAIN_SEGMENTS_COUNT_MAX:\"Domain contains too many segments\",DOMAIN_FORBIDDEN_TLDS:\"Domain uses forbidden TLD\",DOMAIN_EMPTY_SEGMENT:\"Domain contains empty dot-separated segment\",DOMAIN_LONG_SEGMENT:\"Domain contains dot-separated segment that is too long\"},t.code=function(e){return{code:e,error:t.codes[e]}}},9959:(e,t,r)=>{\"use strict\";const s=r(375),n=r(5752);t.regex=function(e={}){s(void 0===e.cidr||\"string\"==typeof e.cidr,\"options.cidr must be a string\");const t=e.cidr?e.cidr.toLowerCase():\"optional\";s([\"required\",\"optional\",\"forbidden\"].includes(t),\"options.cidr must be one of required, optional, forbidden\"),s(void 0===e.version||\"string\"==typeof e.version||Array.isArray(e.version),\"options.version must be a string or an array of string\");let r=e.version||[\"ipv4\",\"ipv6\",\"ipvfuture\"];Array.isArray(r)||(r=[r]),s(r.length>=1,\"options.version must have at least 1 version specified\");for(let e=0;e{if(\"forbidden\"===t)return n.ip[e];const r=`\\\\/${\"ipv4\"===e?n.ip.v4Cidr:n.ip.v6Cidr}`;return\"required\"===t?`${n.ip[e]}${r}`:`${n.ip[e]}(?:${r})?`})).join(\"|\")})`,i=new RegExp(`^${a}$`);return{cidr:t,versions:r,regex:i,raw:a}}},5752:(e,t,r)=>{\"use strict\";const s=r(375),n=r(6064),a={generate:function(){const e={},t=\"\\\\dA-Fa-f\",r=\"[\"+t+\"]\",s=\"\\\\w-\\\\.~\",n=\"!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=\",a=\"%\"+t,i=s+a+n+\":@\",o=\"[\"+i+\"]\",l=\"(?:0{0,2}\\\\d|0?[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])\";e.ipv4address=\"(?:\"+l+\"\\\\.){3}\"+l;const c=r+\"{1,4}\",u=\"(?:\"+c+\":\"+c+\"|\"+e.ipv4address+\")\",f=\"(?:\"+c+\":){6}\"+u,m=\"::(?:\"+c+\":){5}\"+u,h=\"(?:\"+c+\")?::(?:\"+c+\":){4}\"+u,d=\"(?:(?:\"+c+\":){0,1}\"+c+\")?::(?:\"+c+\":){3}\"+u,p=\"(?:(?:\"+c+\":){0,2}\"+c+\")?::(?:\"+c+\":){2}\"+u,g=\"(?:(?:\"+c+\":){0,3}\"+c+\")?::\"+c+\":\"+u,y=\"(?:(?:\"+c+\":){0,4}\"+c+\")?::\"+u,b=\"(?:(?:\"+c+\":){0,5}\"+c+\")?::\"+c,v=\"(?:(?:\"+c+\":){0,6}\"+c+\")?::\";e.ipv4Cidr=\"(?:\\\\d|[1-2]\\\\d|3[0-2])\",e.ipv6Cidr=\"(?:0{0,2}\\\\d|0?[1-9]\\\\d|1[01]\\\\d|12[0-8])\",e.ipv6address=\"(?:\"+f+\"|\"+m+\"|\"+h+\"|\"+d+\"|\"+p+\"|\"+g+\"|\"+y+\"|\"+b+\"|\"+v+\")\",e.ipvFuture=\"v\"+r+\"+\\\\.[\"+s+n+\":]+\",e.scheme=\"[a-zA-Z][a-zA-Z\\\\d+-\\\\.]*\",e.schemeRegex=new RegExp(e.scheme);const _=\"[\"+s+a+n+\":]*\",w=\"[\"+s+a+n+\"]{1,255}\",$=\"(?:\\\\[(?:\"+e.ipv6address+\"|\"+e.ipvFuture+\")\\\\]|\"+e.ipv4address+\"|\"+w+\")\",x=\"(?:\"+_+\"@)?\"+$+\"(?::\\\\d*)?\",j=\"(?:\"+_+\"@)?(\"+$+\")(?::\\\\d*)?\",k=o+\"*\",R=o+\"+\",S=\"(?:\\\\/\"+k+\")*\",A=\"\\\\/(?:\"+R+S+\")?\",O=R+S,E=\"[\"+s+a+n+\"@]+\"+S,D=\"(?:\\\\/\\\\/\\\\/\"+k+S+\")\";return e.hierPart=\"(?:(?:\\\\/\\\\/\"+x+S+\")|\"+A+\"|\"+O+\"|\"+D+\")\",e.hierPartCapture=\"(?:(?:\\\\/\\\\/\"+j+S+\")|\"+A+\"|\"+O+\")\",e.relativeRef=\"(?:(?:\\\\/\\\\/\"+x+S+\")|\"+A+\"|\"+E+\"|)\",e.relativeRefCapture=\"(?:(?:\\\\/\\\\/\"+j+S+\")|\"+A+\"|\"+E+\"|)\",e.query=\"[\"+i+\"\\\\/\\\\?]*(?=#|$)\",e.queryWithSquareBrackets=\"[\"+i+\"\\\\[\\\\]\\\\/\\\\?]*(?=#|$)\",e.fragment=\"[\"+i+\"\\\\/\\\\?]*\",e}};a.rfc3986=a.generate(),t.ip={v4Cidr:a.rfc3986.ipv4Cidr,v6Cidr:a.rfc3986.ipv6Cidr,ipv4:a.rfc3986.ipv4address,ipv6:a.rfc3986.ipv6address,ipvfuture:a.rfc3986.ipvFuture},a.createRegex=function(e){const t=a.rfc3986,r=\"(?:\\\\?\"+(e.allowQuerySquareBrackets?t.queryWithSquareBrackets:t.query)+\")?(?:#\"+t.fragment+\")?\",i=e.domain?t.relativeRefCapture:t.relativeRef;if(e.relativeOnly)return a.wrap(i+r);let o=\"\";if(e.scheme){s(e.scheme instanceof RegExp||\"string\"==typeof e.scheme||Array.isArray(e.scheme),\"scheme must be a RegExp, String, or Array\");const r=[].concat(e.scheme);s(r.length>=1,\"scheme must have at least 1 scheme specified\");const a=[];for(let e=0;e{\"use strict\";const r={operators:[\"!\",\"^\",\"*\",\"/\",\"%\",\"+\",\"-\",\"<\",\"<=\",\">\",\">=\",\"==\",\"!=\",\"&&\",\"||\",\"??\"],operatorCharacters:[\"!\",\"^\",\"*\",\"/\",\"%\",\"+\",\"-\",\"<\",\"=\",\">\",\"&\",\"|\",\"?\"],operatorsOrder:[[\"^\"],[\"*\",\"/\",\"%\"],[\"+\",\"-\"],[\"<\",\"<=\",\">\",\">=\"],[\"==\",\"!=\"],[\"&&\"],[\"||\",\"??\"]],operatorsPrefix:[\"!\",\"n\"],literals:{'\"':'\"',\"`\":\"`\",\"'\":\"'\",\"[\":\"]\"},numberRx:/^(?:[0-9]*(\\.[0-9]*)?){1}$/,tokenRx:/^[\\w\\$\\#\\.\\@\\:\\{\\}]+$/,symbol:Symbol(\"formula\"),settings:Symbol(\"settings\")};t.Parser=class{constructor(e,t={}){if(!t[r.settings]&&t.constants)for(const e in t.constants){const r=t.constants[e];if(null!==r&&![\"boolean\",\"number\",\"string\"].includes(typeof r))throw new Error(`Formula constant ${e} contains invalid ${typeof r} value type`)}this.settings=t[r.settings]?t:Object.assign({[r.settings]:!0,constants:{},functions:{}},t),this.single=null,this._parts=null,this._parse(e)}_parse(e){let s=[],n=\"\",a=0,i=!1;const o=e=>{if(a)throw new Error(\"Formula missing closing parenthesis\");const o=s.length?s[s.length-1]:null;if(i||n||e){if(o&&\"reference\"===o.type&&\")\"===e)return o.type=\"function\",o.value=this._subFormula(n,o.value),void(n=\"\");if(\")\"===e){const e=new t.Parser(n,this.settings);s.push({type:\"segment\",value:e})}else if(i){if(\"]\"===i)return s.push({type:\"reference\",value:n}),void(n=\"\");s.push({type:\"literal\",value:n})}else if(r.operatorCharacters.includes(n))o&&\"operator\"===o.type&&r.operators.includes(o.value+n)?o.value+=n:s.push({type:\"operator\",value:n});else if(n.match(r.numberRx))s.push({type:\"constant\",value:parseFloat(n)});else if(void 0!==this.settings.constants[n])s.push({type:\"constant\",value:this.settings.constants[n]});else{if(!n.match(r.tokenRx))throw new Error(`Formula contains invalid token: ${n}`);s.push({type:\"reference\",value:n})}n=\"\"}};for(const t of e)i?t===i?(o(),i=!1):n+=t:a?\"(\"===t?(n+=t,++a):\")\"===t?(--a,a?n+=t:o(t)):n+=t:t in r.literals?i=r.literals[t]:\"(\"===t?(o(),++a):r.operatorCharacters.includes(t)?(o(),n=t,o()):\" \"!==t?n+=t:o();o(),s=s.map(((e,t)=>\"operator\"!==e.type||\"-\"!==e.value||t&&\"operator\"!==s[t-1].type?e:{type:\"operator\",value:\"n\"}));let l=!1;for(const e of s){if(\"operator\"===e.type){if(r.operatorsPrefix.includes(e.value))continue;if(!l)throw new Error(\"Formula contains an operator in invalid position\");if(!r.operators.includes(e.value))throw new Error(`Formula contains an unknown operator ${e.value}`)}else if(l)throw new Error(\"Formula missing expected operator\");l=!l}if(!l)throw new Error(\"Formula contains invalid trailing operator\");1===s.length&&[\"reference\",\"literal\",\"constant\"].includes(s[0].type)&&(this.single={type:\"reference\"===s[0].type?\"reference\":\"value\",value:s[0].value}),this._parts=s.map((e=>{if(\"operator\"===e.type)return r.operatorsPrefix.includes(e.value)?e:e.value;if(\"reference\"!==e.type)return e.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(e.value))throw new Error(`Formula contains invalid reference ${e.value}`);return this.settings.reference?this.settings.reference(e.value):r.reference(e.value)}))}_subFormula(e,s){const n=this.settings.functions[s];if(\"function\"!=typeof n)throw new Error(`Formula contains unknown function ${s}`);let a=[];if(e){let t=\"\",n=0,i=!1;const o=()=>{if(!t)throw new Error(`Formula contains function ${s} with invalid arguments ${e}`);a.push(t),t=\"\"};for(let s=0;snew t.Parser(e,this.settings))),function(e){const t=[];for(const r of a)t.push(r.evaluate(e));return n.call(e,...t)}}evaluate(e){const t=this._parts.slice();for(let s=t.length-2;s>=0;--s){const n=t[s];if(n&&\"operator\"===n.type){const a=t[s+1];t.splice(s+1,1);const i=r.evaluate(a,e);t[s]=r.single(n.value,i)}}return r.operatorsOrder.forEach((s=>{for(let n=1;n\":return t>s;case\">=\":return t>=s;case\"==\":return t===s;case\"!=\":return t!==s;case\"&&\":return t&&s;case\"||\":return t||s}return null},r.exists=function(e){return null!=e}},9926:()=>{},5688:()=>{},9708:()=>{},1152:()=>{},443:()=>{},9848:()=>{},5934:e=>{\"use strict\";e.exports=JSON.parse('{\"version\":\"17.13.3\"}')}},t={},function r(s){var n=t[s];if(void 0!==n)return n.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,r),a.exports}(5107);var e,t}));","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","module.exports = __webpack_public_path__ + \"e7e1a807af3160b342e0a3550cf8f7c5.js\";","import { getClient, SDK_VERSION } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n// This is a map of integration function method to bundle file name.\nconst LazyLoadableIntegrations = {\n replayIntegration: 'replay',\n replayCanvasIntegration: 'replay-canvas',\n feedbackIntegration: 'feedback',\n feedbackModalIntegration: 'feedback-modal',\n feedbackScreenshotIntegration: 'feedback-screenshot',\n captureConsoleIntegration: 'captureconsole',\n contextLinesIntegration: 'contextlines',\n linkedErrorsIntegration: 'linkederrors',\n debugIntegration: 'debug',\n dedupeIntegration: 'dedupe',\n extraErrorDataIntegration: 'extraerrordata',\n httpClientIntegration: 'httpclient',\n reportingObserverIntegration: 'reportingobserver',\n rewriteFramesIntegration: 'rewriteframes',\n sessionTimingIntegration: 'sessiontiming',\n browserProfilingIntegration: 'browserprofiling',\n} ;\n\nconst WindowWithMaybeIntegration = WINDOW\n\n;\n\n/**\n * Lazy load an integration from the CDN.\n * Rejects if the integration cannot be loaded.\n */\nasync function lazyLoadIntegration(\n name,\n scriptNonce,\n) {\n const bundle = LazyLoadableIntegrations[name];\n\n // `window.Sentry` is only set when using a CDN bundle, but this method can also be used via the NPM package\n const sentryOnWindow = (WindowWithMaybeIntegration.Sentry = WindowWithMaybeIntegration.Sentry || {});\n\n if (!bundle) {\n throw new Error(`Cannot lazy load integration: ${name}`);\n }\n\n // Bail if the integration already exists\n const existing = sentryOnWindow[name];\n // The `feedbackIntegration` is loaded by default in the CDN bundles,\n // so we need to differentiate between the real integration and the shim.\n // if only the shim exists, we still want to lazy load the real integration.\n if (typeof existing === 'function' && !('_isShim' in existing)) {\n return existing;\n }\n\n const url = getScriptURL(bundle);\n const script = WINDOW.document.createElement('script');\n script.src = url;\n script.crossOrigin = 'anonymous';\n script.referrerPolicy = 'origin';\n\n if (scriptNonce) {\n script.setAttribute('nonce', scriptNonce);\n }\n\n const waitForLoad = new Promise((resolve, reject) => {\n script.addEventListener('load', () => resolve());\n script.addEventListener('error', reject);\n });\n\n const currentScript = WINDOW.document.currentScript;\n const parent = WINDOW.document.body || WINDOW.document.head || (currentScript && currentScript.parentElement);\n\n if (parent) {\n parent.appendChild(script);\n } else {\n throw new Error(`Could not find parent element to insert lazy-loaded ${name} script`);\n }\n\n try {\n await waitForLoad;\n } catch (e) {\n throw new Error(`Error when loading integration: ${name}`);\n }\n\n const integrationFn = sentryOnWindow[name];\n\n if (typeof integrationFn !== 'function') {\n throw new Error(`Could not load integration: ${name}`);\n }\n\n return integrationFn;\n}\n\nfunction getScriptURL(bundle) {\n const client = getClient();\n const options = client && client.getOptions();\n const baseURL = (options && options.cdnBaseUrl) || 'https://browser.sentry-cdn.com';\n\n return new URL(`/${SDK_VERSION}/${bundle}.min.js`, baseURL).toString();\n}\n\nexport { lazyLoadIntegration };\n//# sourceMappingURL=lazyLoadIntegration.js.map\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","module.exports = __webpack_public_path__ + \"432a5982ba3ddf958381d780e1e9a8e2.js\";","import { Map } from 'immutable';\n\nexport function parseIdentityProvider(identity) {\n if (Map.isMap(identity)) {\n switch (identity.getIn(['namespace', 'namespaceType', 'modelName'])) {\n case 'identityProvider':\n return identity.getIn([\n 'namespace',\n 'identityProvider',\n 'identityProviderType',\n 'name',\n ]);\n case 'org':\n return `Avigilon Alta / ${identity.getIn([\n 'namespace',\n 'org',\n 'name',\n ])}`;\n default:\n return 'Avigilon Alta / Global';\n }\n } else if (identity) {\n switch (identity?.namespace?.namespaceType?.modelName) {\n case 'identityProvider':\n return identity?.namespace?.identityProvider?.identityProviderType\n ?.name;\n case 'org':\n return `Avigilon Alta / ${identity?.namespace?.org?.name}`;\n default:\n return 'Avigilon Alta / Global';\n }\n } else {\n return 'Avigilon Alta / Global';\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\nmodule.exports = cacheHas;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\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","/**\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\nmodule.exports = mapToArray;\n","/**\n * This code was originally copied from the 'cookie` module at v0.5.0 and was simplified for our use case.\n * https://github.com/jshttp/cookie/blob/a0c84147aab6266bdb3996cf4062e93907c0b0fc/index.js\n * It had the following license:\n *\n * (The MIT License)\n *\n * Copyright (c) 2012-2014 Roman Shtylman \n * Copyright (c) 2015 Douglas Christopher Wilson \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 NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/**\n * Parses a cookie string\n */\nfunction parseCookie(str) {\n const obj = {};\n let index = 0;\n\n while (index < str.length) {\n const eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n\n let endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue;\n }\n\n const key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n try {\n obj[key] = val.indexOf('%') !== -1 ? decodeURIComponent(val) : val;\n } catch (e) {\n obj[key] = val;\n }\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n\nexport { parseCookie };\n//# sourceMappingURL=cookie.js.map\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = __webpack_public_path__ + \"05922e9c75ebd5e5ccf6f4dc59320e0d.js\";","import { resetComponent, textEllipsis } from '../../style';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nconst genItemStyle = token => {\n const {\n optionHeight,\n optionFontSize,\n optionLineHeight,\n optionPadding\n } = token;\n return {\n position: 'relative',\n display: 'block',\n minHeight: optionHeight,\n padding: optionPadding,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: optionFontSize,\n lineHeight: optionLineHeight,\n boxSizing: 'border-box'\n };\n};\nconst genSingleStyle = token => {\n const {\n antCls,\n componentCls\n } = token;\n const selectItemCls = `${componentCls}-item`;\n const slideUpEnterActive = `&${antCls}-slide-up-enter${antCls}-slide-up-enter-active`;\n const slideUpAppearActive = `&${antCls}-slide-up-appear${antCls}-slide-up-appear-active`;\n const slideUpLeaveActive = `&${antCls}-slide-up-leave${antCls}-slide-up-leave-active`;\n const dropdownPlacementCls = `${componentCls}-dropdown-placement-`;\n return [{\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n zIndex: token.zIndexPopup,\n boxSizing: 'border-box',\n padding: token.paddingXXS,\n overflow: 'hidden',\n fontSize: token.fontSize,\n // Fix select render lag of long text in chrome\n // https://github.com/ant-design/ant-design/issues/11456\n // https://github.com/ant-design/ant-design/issues/11843\n fontVariant: 'initial',\n backgroundColor: token.colorBgElevated,\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n [`\n ${slideUpEnterActive}${dropdownPlacementCls}bottomLeft,\n ${slideUpAppearActive}${dropdownPlacementCls}bottomLeft\n `]: {\n animationName: slideUpIn\n },\n [`\n ${slideUpEnterActive}${dropdownPlacementCls}topLeft,\n ${slideUpAppearActive}${dropdownPlacementCls}topLeft,\n ${slideUpEnterActive}${dropdownPlacementCls}topRight,\n ${slideUpAppearActive}${dropdownPlacementCls}topRight\n `]: {\n animationName: slideDownIn\n },\n [`${slideUpLeaveActive}${dropdownPlacementCls}bottomLeft`]: {\n animationName: slideUpOut\n },\n [`\n ${slideUpLeaveActive}${dropdownPlacementCls}topLeft,\n ${slideUpLeaveActive}${dropdownPlacementCls}topRight\n `]: {\n animationName: slideDownOut\n },\n '&-hidden': {\n display: 'none'\n },\n [selectItemCls]: Object.assign(Object.assign({}, genItemStyle(token)), {\n cursor: 'pointer',\n transition: `background ${token.motionDurationSlow} ease`,\n borderRadius: token.borderRadiusSM,\n // =========== Group ============\n '&-group': {\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n cursor: 'default'\n },\n // =========== Option ===========\n '&-option': {\n display: 'flex',\n '&-content': Object.assign({\n flex: 'auto'\n }, textEllipsis),\n '&-state': {\n flex: 'none',\n display: 'flex',\n alignItems: 'center'\n },\n [`&-active:not(${selectItemCls}-option-disabled)`]: {\n backgroundColor: token.optionActiveBg\n },\n [`&-selected:not(${selectItemCls}-option-disabled)`]: {\n color: token.optionSelectedColor,\n fontWeight: token.optionSelectedFontWeight,\n backgroundColor: token.optionSelectedBg,\n [`${selectItemCls}-option-state`]: {\n color: token.colorPrimary\n },\n [`&:has(+ ${selectItemCls}-option-selected:not(${selectItemCls}-option-disabled))`]: {\n borderEndStartRadius: 0,\n borderEndEndRadius: 0,\n [`& + ${selectItemCls}-option-selected:not(${selectItemCls}-option-disabled)`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0\n }\n }\n },\n '&-disabled': {\n [`&${selectItemCls}-option-selected`]: {\n backgroundColor: token.colorBgContainerDisabled\n },\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n '&-grouped': {\n paddingInlineStart: token.calc(token.controlPaddingHorizontal).mul(2).equal()\n }\n },\n '&-empty': Object.assign(Object.assign({}, genItemStyle(token)), {\n color: token.colorTextDisabled\n })\n }),\n // =========================== RTL ===========================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport default genSingleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls,\n inputPaddingHorizontalBase,\n borderRadius,\n fontSizeIcon\n } = token;\n const selectHeightWithoutBorder = token.calc(token.controlHeight).sub(token.calc(token.lineWidth).mul(2)).equal();\n const singleInputPaddingHorizontal = token.calc(inputPaddingHorizontalBase).add(fontSizeIcon).equal();\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n return {\n [`${componentCls}-single${suffixCls}`]: {\n fontSize: token.fontSize,\n height: token.controlHeight,\n // ========================= Selector =========================\n [`${componentCls}-selector`]: Object.assign(Object.assign({}, resetComponent(token, true)), {\n display: 'flex',\n borderRadius,\n [`${componentCls}-selection-search`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: inputPaddingHorizontalBase,\n insetInlineEnd: unit(singleInputPaddingHorizontal),\n bottom: 0,\n '&-input': {\n width: '100%',\n WebkitAppearance: 'textfield'\n }\n },\n [`\n ${componentCls}-selection-item,\n ${componentCls}-selection-placeholder\n `]: {\n padding: 0,\n lineHeight: unit(selectHeightWithoutBorder),\n transition: `all ${token.motionDurationSlow}, visibility 0s`,\n alignSelf: 'center'\n },\n [`${componentCls}-selection-placeholder`]: {\n transition: 'none',\n pointerEvents: 'none'\n },\n // For common baseline align\n [['&:after', /* For '' value baseline align */\n `${componentCls}-selection-item:empty:after`, /* For undefined value baseline align */\n `${componentCls}-selection-placeholder:empty:after`].join(',')]: {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n }\n }),\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: token.showArrowPaddingInlineEnd\n },\n // Opacity selection if open\n [`&${componentCls}-open ${componentCls}-selection-item`]: {\n color: token.colorTextPlaceholder\n },\n // ========================== Input ==========================\n // We only change the style of non-customize input which is only support by `combobox` mode.\n // Not customize\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selector`]: {\n width: '100%',\n height: '100%',\n padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n [`${componentCls}-selection-search-input`]: {\n height: selectHeightWithoutBorder\n },\n '&:after': {\n lineHeight: unit(selectHeightWithoutBorder)\n }\n }\n },\n [`&${componentCls}-customize-input`]: {\n [`${componentCls}-selector`]: {\n '&:after': {\n display: 'none'\n },\n [`${componentCls}-selection-search`]: {\n position: 'static',\n width: '100%'\n },\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n '&:after': {\n display: 'none'\n }\n }\n }\n }\n }\n };\n}\nexport default function genSingleStyle(token) {\n const {\n componentCls\n } = token;\n const inputPaddingHorizontalSM = token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal();\n return [genSizeStyle(token),\n // ======================== Small ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.controlHeightSM,\n borderRadius: token.borderRadiusSM\n }), 'sm'),\n // padding\n {\n [`${componentCls}-single${componentCls}-sm`]: {\n [`&:not(${componentCls}-customize-input)`]: {\n [`${componentCls}-selection-search`]: {\n insetInlineStart: inputPaddingHorizontalSM,\n insetInlineEnd: inputPaddingHorizontalSM\n },\n [`${componentCls}-selector`]: {\n padding: `0 ${unit(inputPaddingHorizontalSM)}`\n },\n // With arrow should provides `padding-right` to show the arrow\n [`&${componentCls}-show-arrow ${componentCls}-selection-search`]: {\n insetInlineEnd: token.calc(inputPaddingHorizontalSM).add(token.calc(token.fontSize).mul(1.5)).equal()\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selection-item,\n &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n `]: {\n paddingInlineEnd: token.calc(token.fontSize).mul(1.5).equal()\n }\n }\n }\n },\n // ======================== Large ========================\n // Shared\n genSizeStyle(mergeToken(token, {\n controlHeight: token.singleItemHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG\n }), 'lg')];\n}","export const prepareComponentToken = token => {\n const {\n fontSize,\n lineHeight,\n lineWidth,\n controlHeight,\n controlHeightSM,\n controlHeightLG,\n paddingXXS,\n controlPaddingHorizontal,\n zIndexPopupBase,\n colorText,\n fontWeightStrong,\n controlItemBgActive,\n controlItemBgHover,\n colorBgContainer,\n colorFillSecondary,\n colorBgContainerDisabled,\n colorTextDisabled,\n colorPrimaryHover,\n colorPrimary,\n controlOutline\n } = token;\n // Item height default use `controlHeight - 2 * paddingXXS`,\n // but some case `paddingXXS=0`.\n // Let's fallback it.\n const dblPaddingXXS = paddingXXS * 2;\n const dblLineWidth = lineWidth * 2;\n const multipleItemHeight = Math.min(controlHeight - dblPaddingXXS, controlHeight - dblLineWidth);\n const multipleItemHeightSM = Math.min(controlHeightSM - dblPaddingXXS, controlHeightSM - dblLineWidth);\n const multipleItemHeightLG = Math.min(controlHeightLG - dblPaddingXXS, controlHeightLG - dblLineWidth);\n // FIXED_ITEM_MARGIN is a hardcode calculation since calc not support rounding\n const INTERNAL_FIXED_ITEM_MARGIN = Math.floor(paddingXXS / 2);\n return {\n INTERNAL_FIXED_ITEM_MARGIN,\n zIndexPopup: zIndexPopupBase + 50,\n optionSelectedColor: colorText,\n optionSelectedFontWeight: fontWeightStrong,\n optionSelectedBg: controlItemBgActive,\n optionActiveBg: controlItemBgHover,\n optionPadding: `${(controlHeight - fontSize * lineHeight) / 2}px ${controlPaddingHorizontal}px`,\n optionFontSize: fontSize,\n optionLineHeight: lineHeight,\n optionHeight: controlHeight,\n selectorBg: colorBgContainer,\n clearBg: colorBgContainer,\n singleItemHeightLG: controlHeightLG,\n multipleItemBg: colorFillSecondary,\n multipleItemBorderColor: 'transparent',\n multipleItemHeight,\n multipleItemHeightSM,\n multipleItemHeightLG,\n multipleSelectorBgDisabled: colorBgContainerDisabled,\n multipleItemColorDisabled: colorTextDisabled,\n multipleItemBorderColorDisabled: 'transparent',\n showArrowPaddingInlineEnd: Math.ceil(token.fontSize * 1.25),\n hoverBorderColor: colorPrimaryHover,\n activeBorderColor: colorPrimary,\n activeOutlineColor: controlOutline\n };\n};","import { unit } from '@ant-design/cssinjs';\n// =====================================================\n// == Outlined ==\n// =====================================================\nconst genBaseOutlinedStyle = (token, options) => {\n const {\n componentCls,\n antCls,\n controlOutlineWidth\n } = token;\n return {\n [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n border: `${unit(token.lineWidth)} ${token.lineType} ${options.borderColor}`,\n background: token.selectorBg\n },\n [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n [`&:hover ${componentCls}-selector`]: {\n borderColor: options.hoverBorderHover\n },\n [`${componentCls}-focused& ${componentCls}-selector`]: {\n borderColor: options.activeBorderColor,\n boxShadow: `0 0 0 ${unit(controlOutlineWidth)} ${options.activeOutlineColor}`,\n outline: 0\n }\n }\n };\n};\nconst genOutlinedStatusStyle = (token, options) => ({\n [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseOutlinedStyle(token, options))\n});\nconst genOutlinedStyle = token => ({\n '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n borderColor: token.colorBorder,\n hoverBorderHover: token.hoverBorderColor,\n activeBorderColor: token.activeBorderColor,\n activeOutlineColor: token.activeOutlineColor\n })), genOutlinedStatusStyle(token, {\n status: 'error',\n borderColor: token.colorError,\n hoverBorderHover: token.colorErrorHover,\n activeBorderColor: token.colorError,\n activeOutlineColor: token.colorErrorOutline\n })), genOutlinedStatusStyle(token, {\n status: 'warning',\n borderColor: token.colorWarning,\n hoverBorderHover: token.colorWarningHover,\n activeBorderColor: token.colorWarning,\n activeOutlineColor: token.colorWarningOutline\n })), {\n [`&${token.componentCls}-disabled`]: {\n [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n background: token.colorBgContainerDisabled,\n color: token.colorTextDisabled\n }\n },\n [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n })\n});\n// =====================================================\n// == Filled ==\n// =====================================================\nconst genBaseFilledStyle = (token, options) => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n background: options.bg,\n border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n color: options.color\n },\n [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n [`&:hover ${componentCls}-selector`]: {\n background: options.hoverBg\n },\n [`${componentCls}-focused& ${componentCls}-selector`]: {\n background: token.selectorBg,\n borderColor: options.activeBorderColor,\n outline: 0\n }\n }\n };\n};\nconst genFilledStatusStyle = (token, options) => ({\n [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseFilledStyle(token, options))\n});\nconst genFilledStyle = token => ({\n '&-filled': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n bg: token.colorFillTertiary,\n hoverBg: token.colorFillSecondary,\n activeBorderColor: token.activeBorderColor,\n color: token.colorText\n })), genFilledStatusStyle(token, {\n status: 'error',\n bg: token.colorErrorBg,\n hoverBg: token.colorErrorBgHover,\n activeBorderColor: token.colorError,\n color: token.colorError\n })), genFilledStatusStyle(token, {\n status: 'warning',\n bg: token.colorWarningBg,\n hoverBg: token.colorWarningBgHover,\n activeBorderColor: token.colorWarning,\n color: token.colorWarning\n })), {\n [`&${token.componentCls}-disabled`]: {\n [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n borderColor: token.colorBorder,\n background: token.colorBgContainerDisabled,\n color: token.colorTextDisabled\n }\n },\n [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n background: token.colorBgContainer,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n }\n })\n});\n// =====================================================\n// == Borderless ==\n// =====================================================\nconst genBorderlessStyle = token => ({\n '&-borderless': {\n [`${token.componentCls}-selector`]: {\n background: 'transparent',\n borderColor: 'transparent'\n },\n [`&${token.componentCls}-disabled`]: {\n [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n color: token.colorTextDisabled\n }\n },\n [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n },\n // Status\n [`&${token.componentCls}-status-error`]: {\n [`${token.componentCls}-selection-item`]: {\n color: token.colorError\n }\n },\n [`&${token.componentCls}-status-warning`]: {\n [`${token.componentCls}-selection-item`]: {\n color: token.colorWarning\n }\n }\n }\n});\nconst genVariantsStyle = token => ({\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token))\n});\nexport default genVariantsStyle;","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genDropdownStyle from './dropdown';\nimport genMultipleStyle from './multiple';\nimport genSingleStyle from './single';\nimport { prepareComponentToken } from './token';\nimport genVariantsStyle from './variants';\n// ============================= Selector =============================\nconst genSelectorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n position: 'relative',\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n input: {\n cursor: 'pointer'\n },\n [`${componentCls}-show-search&`]: {\n cursor: 'text',\n input: {\n cursor: 'auto',\n color: 'inherit',\n height: '100%'\n }\n },\n [`${componentCls}-disabled&`]: {\n cursor: 'not-allowed',\n input: {\n cursor: 'not-allowed'\n }\n }\n };\n};\n// ============================== Styles ==============================\n// /* Reset search input style */\nconst getSearchInputWithoutBorderStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-selection-search-input`]: {\n margin: 0,\n padding: 0,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n appearance: 'none',\n fontFamily: 'inherit',\n '&::-webkit-search-cancel-button': {\n display: 'none',\n '-webkit-appearance': 'none'\n }\n }\n };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n antCls,\n componentCls,\n inputPaddingHorizontalBase,\n iconCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n cursor: 'pointer',\n [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: Object.assign(Object.assign({}, genSelectorStyle(token)), getSearchInputWithoutBorderStyle(token)),\n // ======================== Selection ========================\n [`${componentCls}-selection-item`]: Object.assign(Object.assign({\n flex: 1,\n fontWeight: 'normal',\n position: 'relative',\n userSelect: 'none'\n }, textEllipsis), {\n // https://github.com/ant-design/ant-design/issues/40421\n [`> ${antCls}-typography`]: {\n display: 'inline'\n }\n }),\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder`]: Object.assign(Object.assign({}, textEllipsis), {\n flex: 1,\n color: token.colorTextPlaceholder,\n pointerEvents: 'none'\n }),\n // ========================== Arrow ==========================\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n height: token.fontSizeIcon,\n marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n lineHeight: 1,\n textAlign: 'center',\n pointerEvents: 'none',\n display: 'flex',\n alignItems: 'center',\n transition: `opacity ${token.motionDurationSlow} ease`,\n [iconCls]: {\n verticalAlign: 'top',\n transition: `transform ${token.motionDurationSlow}`,\n '> svg': {\n verticalAlign: 'top'\n },\n [`&:not(${componentCls}-suffix)`]: {\n pointerEvents: 'auto'\n }\n },\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n },\n '> *:not(:last-child)': {\n marginInlineEnd: 8 // FIXME: magic\n }\n }),\n // ========================== Clear ==========================\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 'auto',\n insetInlineEnd: inputPaddingHorizontalBase,\n zIndex: 1,\n display: 'inline-block',\n width: token.fontSizeIcon,\n height: token.fontSizeIcon,\n marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n fontStyle: 'normal',\n lineHeight: 1,\n textAlign: 'center',\n textTransform: 'none',\n cursor: 'pointer',\n opacity: 0,\n transition: `color ${token.motionDurationMid} ease, opacity ${token.motionDurationSlow} ease`,\n textRendering: 'auto',\n '&:before': {\n display: 'block'\n },\n '&:hover': {\n color: token.colorTextTertiary\n }\n },\n [`&:hover ${componentCls}-clear`]: {\n opacity: 1,\n background: token.colorBgBase,\n borderRadius: '50%'\n }\n }),\n // ========================= Feedback ==========================\n [`${componentCls}-has-feedback`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: token.calc(inputPaddingHorizontalBase).add(token.fontSize).add(token.paddingXS).equal()\n }\n }\n };\n};\n// ============================== Styles ==============================\nconst genSelectStyle = token => {\n const {\n componentCls\n } = token;\n return [{\n [componentCls]: {\n // ==================== In Form ====================\n [`&${componentCls}-in-form-item`]: {\n width: '100%'\n }\n }\n },\n // =====================================================\n // == LTR ==\n // =====================================================\n // Base\n genBaseStyle(token),\n // Single\n genSingleStyle(token),\n // Multiple\n genMultipleStyle(token),\n // Dropdown\n genDropdownStyle(token),\n // =====================================================\n // == RTL ==\n // =====================================================\n {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n },\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n borderElCls: `${componentCls}-selector`,\n focusElCls: `${componentCls}-focused`\n })];\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Select', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const selectToken = mergeToken(token, {\n rootPrefixCls,\n inputPaddingHorizontalBase: token.calc(token.paddingSM).sub(1).equal(),\n multipleSelectItemHeight: token.multipleItemHeight,\n selectHeight: token.controlHeight\n });\n return [genSelectStyle(selectToken), genVariantsStyle(selectToken)];\n}, prepareComponentToken, {\n unitless: {\n optionLineHeight: true,\n optionSelectedFontWeight: true\n }\n});","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = hashClear;\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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/** Thresholds for FCP. See https://web.dev/articles/fcp#what_is_a_good_fcp_score */\nconst FCPThresholds = [1800, 3000];\n\n/**\n * Calculates the [FCP](https://web.dev/articles/fcp) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `paint` performance entry used to determine the value. The reported\n * value is a `DOMHighResTimeStamp`.\n */\nconst onFCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FCP');\n let report;\n\n const handleEntries = (entries) => {\n (entries ).forEach(entry => {\n if (entry.name === 'first-contentful-paint') {\n po.disconnect();\n\n // Only report if the page wasn't hidden prior to the first paint.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n // The activationStart reference is used because FCP should be\n // relative to page activation rather than navigation start if the\n // page was prerendered. But in cases where `activationStart` occurs\n // after the FCP, this time should be clamped at 0.\n metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n metric.entries.push(entry);\n report(true);\n }\n }\n });\n };\n\n const po = observe('paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, FCPThresholds, opts.reportAllChanges);\n }\n });\n};\n\nexport { FCPThresholds, onFCP };\n//# sourceMappingURL=onFCP.js.map\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","export const RESTART_ON_REMOUNT = '@@saga-injector/restart-on-remount';\nexport const DAEMON = '@@saga-injector/daemon';\nexport const ONCE_TILL_UNMOUNT = '@@saga-injector/once-till-unmount';\nexport const TYPING_DEBOUNCE_TIME = 300;\nexport const UNIT_TO_SECONDS_LOOKUP_TABLE = {\n seconds: 1,\n minutes: 60,\n hours: 3600,\n days: 86400,\n weeks: 604800,\n months: 2592000,\n years: 31556926,\n};\nexport const SECONDS_TO_UNIT_LOOKUP_TABLE = {\n 1: 'seconds',\n 60: 'minutes',\n 3600: 'hours',\n 86400: 'days',\n 604800: 'weeks',\n 2592000: 'months',\n 31556926: 'years',\n};\nexport const VIDEO_READER_ACU_MODEL_IDS = [9, 10];\nexport const MERCURY_EXPANSION_BOARD_ACU_MODEL_IDS = [\n 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28,\n];\nexport const HELIUM_LIMIT_MAX = 1000;\nexport const INITIAL_ACTIVITY_RANGE_HOURS = 1;\nexport const MAX_ACTIVITY_RANGE_HOURS = 12;\nexport const CREDENTIAL_IDS = {\n mobile: 1,\n card: 2,\n pin: 3,\n mifare: 4,\n desfire: 5,\n cloud: 6,\n fobAllegion: 7,\n licensePlate: 9,\n wallet: 10,\n};\n","import { defaultPrefixCls } from '../config-provider';\n// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultPrefixCls;\n return {\n motionName: `${rootCls}-motion-collapse`,\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n };\n};\nconst _SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName };\nexport default initCollapseMotion;","import { timestampInSeconds } from '@sentry/utils';\nimport { updateMetricSummaryOnActiveSpan } from '../utils/spanUtils.js';\nimport { DEFAULT_BROWSER_FLUSH_INTERVAL, SET_METRIC_TYPE } from './constants.js';\nimport { captureAggregateMetrics } from './envelope.js';\nimport { METRIC_MAP } from './instance.js';\nimport { sanitizeMetricKey, sanitizeTags, sanitizeUnit, getBucketKey } from './utils.js';\n\n/**\n * A simple metrics aggregator that aggregates metrics in memory and flushes them periodically.\n * Default flush interval is 5 seconds.\n *\n * @experimental This API is experimental and might change in the future.\n */\nclass BrowserMetricsAggregator {\n // TODO(@anonrig): Use FinalizationRegistry to have a proper way of flushing the buckets\n // when the aggregator is garbage collected.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry\n\n constructor( _client) {this._client = _client;\n this._buckets = new Map();\n this._interval = setInterval(() => this.flush(), DEFAULT_BROWSER_FLUSH_INTERVAL);\n }\n\n /**\n * @inheritDoc\n */\n add(\n metricType,\n unsanitizedName,\n value,\n unsanitizedUnit = 'none',\n unsanitizedTags = {},\n maybeFloatTimestamp = timestampInSeconds(),\n ) {\n const timestamp = Math.floor(maybeFloatTimestamp);\n const name = sanitizeMetricKey(unsanitizedName);\n const tags = sanitizeTags(unsanitizedTags);\n const unit = sanitizeUnit(unsanitizedUnit );\n\n const bucketKey = getBucketKey(metricType, name, unit, tags);\n\n let bucketItem = this._buckets.get(bucketKey);\n // If this is a set metric, we need to calculate the delta from the previous weight.\n const previousWeight = bucketItem && metricType === SET_METRIC_TYPE ? bucketItem.metric.weight : 0;\n\n if (bucketItem) {\n bucketItem.metric.add(value);\n // TODO(abhi): Do we need this check?\n if (bucketItem.timestamp < timestamp) {\n bucketItem.timestamp = timestamp;\n }\n } else {\n bucketItem = {\n // @ts-expect-error we don't need to narrow down the type of value here, saves bundle size.\n metric: new METRIC_MAP[metricType](value),\n timestamp,\n metricType,\n name,\n unit,\n tags,\n };\n this._buckets.set(bucketKey, bucketItem);\n }\n\n // If value is a string, it's a set metric so calculate the delta from the previous weight.\n const val = typeof value === 'string' ? bucketItem.metric.weight - previousWeight : value;\n updateMetricSummaryOnActiveSpan(metricType, name, val, unit, unsanitizedTags, bucketKey);\n }\n\n /**\n * @inheritDoc\n */\n flush() {\n // short circuit if buckets are empty.\n if (this._buckets.size === 0) {\n return;\n }\n\n const metricBuckets = Array.from(this._buckets.values());\n captureAggregateMetrics(this._client, metricBuckets);\n\n this._buckets.clear();\n }\n\n /**\n * @inheritDoc\n */\n close() {\n clearInterval(this._interval);\n this.flush();\n }\n}\n\nexport { BrowserMetricsAggregator };\n//# sourceMappingURL=browser-aggregator.js.map\n","export const REQUEST_LIST_CLOUD_KEYS = 'cloudKey/REQUEST_LIST_CLOUD_KEYS';\nexport const SET_CLOUD_KEYS = 'cloudkey/SET_CLOUD_KEYS';\nexport const REQUEST_UNLOCK_WITH_CLOUD_KEY =\n 'cloudkey/REQUEST_UNLOCK_WITH_CLOUD_KEY';\n","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","\"use client\";\n\nimport { unit } from '@ant-design/cssinjs';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = function (token) {\n let needInheritFontFamily = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return {\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: needInheritFontFamily ? 'inherit' : token.fontFamily\n };\n};\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n // remove the gray background on active links in IE 10.\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n // remove gaps in links underline in iOS 8+ and Safari 8+.\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n '&:active, &:hover': {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls, rootCls, resetFont) => {\n const prefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n const rootPrefixSelector = rootCls ? `.${rootCls}` : prefixSelector;\n const resetStyle = {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n };\n let resetFontStyle = {};\n if (resetFont !== false) {\n resetFontStyle = {\n fontFamily: token.fontFamily,\n fontSize: token.fontSize\n };\n }\n return {\n [rootPrefixSelector]: Object.assign(Object.assign(Object.assign({}, resetFontStyle), resetStyle), {\n [prefixSelector]: resetStyle\n })\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${unit(token.lineWidthFocus)} solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});\nexport const operationUnit = token => Object.assign(Object.assign({\n // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n // And Typography use this to generate link style which should not do this.\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n border: 0,\n padding: 0,\n background: 'none',\n userSelect: 'none'\n}, genFocusStyle(token)), {\n '&:focus, &:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n }\n});","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","module.exports = __webpack_public_path__ + \"1d3796180f854b5d8ab435ab0a1c2c11.js\";","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import {\n REQUEST_LIST_CLOUD_KEYS,\n SET_CLOUD_KEYS,\n REQUEST_UNLOCK_WITH_CLOUD_KEY,\n} from './constants';\n\n// requestUnlockWithCloudKey\nexport function requestUnlockWithCloudKey(entryId) {\n return {\n type: REQUEST_UNLOCK_WITH_CLOUD_KEY,\n entryId,\n };\n}\n\nexport function requestListCloudKeyCredentials() {\n return {\n type: REQUEST_LIST_CLOUD_KEYS,\n };\n}\n\nexport function setCloudKeys(cloudKeys) {\n return {\n type: SET_CLOUD_KEYS,\n cloudKeys,\n };\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","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}}));","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-skeleton-checkbox{display:flex;gap:0.5714285714rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSkeleton/OpSkeleton.scss\"],\"names\":[],\"mappings\":\"AAEA,sBACE,YAAA,CACA,mBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-skeleton-checkbox {\\n display: flex;\\n gap: common.toRem(8);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","module.exports = __webpack_public_path__ + \"a496f663a8cf2dc047e12d8a80d76510.js\";","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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\nmodule.exports = setCacheAdd;\n","module.exports = __webpack_public_path__ + \"37ee3b5201ae2e2dc5dc8b1b20ad900e.js\";","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","module.exports = __webpack_public_path__ + \"70074e0c785c9a808dea76c7c7d17af3.js\";","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _LeftOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/LeftOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar LeftOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _LeftOutlined.default\n }));\n};\n/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"LeftOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"a4d638b976f02f35740be031f996e088.js\";","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 561509,\n\t\"./ar-dz\": 741488,\n\t\"./ar-dz.js\": 741488,\n\t\"./ar-kw\": 458676,\n\t\"./ar-kw.js\": 458676,\n\t\"./ar-ly\": 842353,\n\t\"./ar-ly.js\": 842353,\n\t\"./ar-ma\": 824496,\n\t\"./ar-ma.js\": 824496,\n\t\"./ar-ps\": 806947,\n\t\"./ar-ps.js\": 806947,\n\t\"./ar-sa\": 582682,\n\t\"./ar-sa.js\": 582682,\n\t\"./ar-tn\": 489756,\n\t\"./ar-tn.js\": 489756,\n\t\"./ar.js\": 561509,\n\t\"./az\": 295533,\n\t\"./az.js\": 295533,\n\t\"./be\": 928959,\n\t\"./be.js\": 928959,\n\t\"./bg\": 447777,\n\t\"./bg.js\": 447777,\n\t\"./bm\": 754903,\n\t\"./bm.js\": 754903,\n\t\"./bn\": 661290,\n\t\"./bn-bd\": 917357,\n\t\"./bn-bd.js\": 917357,\n\t\"./bn.js\": 661290,\n\t\"./bo\": 931545,\n\t\"./bo.js\": 931545,\n\t\"./br\": 611470,\n\t\"./br.js\": 611470,\n\t\"./bs\": 744429,\n\t\"./bs.js\": 744429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 856464,\n\t\"./cs.js\": 856464,\n\t\"./cv\": 773635,\n\t\"./cv.js\": 773635,\n\t\"./cy\": 364226,\n\t\"./cy.js\": 364226,\n\t\"./da\": 393601,\n\t\"./da.js\": 393601,\n\t\"./de\": 877853,\n\t\"./de-at\": 226111,\n\t\"./de-at.js\": 226111,\n\t\"./de-ch\": 854697,\n\t\"./de-ch.js\": 854697,\n\t\"./de.js\": 877853,\n\t\"./dv\": 860708,\n\t\"./dv.js\": 860708,\n\t\"./el\": 254691,\n\t\"./el.js\": 254691,\n\t\"./en-au\": 753872,\n\t\"./en-au.js\": 753872,\n\t\"./en-ca\": 928298,\n\t\"./en-ca.js\": 928298,\n\t\"./en-gb\": 956195,\n\t\"./en-gb.js\": 956195,\n\t\"./en-ie\": 866584,\n\t\"./en-ie.js\": 866584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 479402,\n\t\"./en-nz.js\": 479402,\n\t\"./en-sg\": 343004,\n\t\"./en-sg.js\": 343004,\n\t\"./eo\": 832934,\n\t\"./eo.js\": 832934,\n\t\"./es\": 497650,\n\t\"./es-do\": 120838,\n\t\"./es-do.js\": 120838,\n\t\"./es-mx\": 217730,\n\t\"./es-mx.js\": 217730,\n\t\"./es-us\": 456575,\n\t\"./es-us.js\": 456575,\n\t\"./es.js\": 497650,\n\t\"./et\": 303035,\n\t\"./et.js\": 303035,\n\t\"./eu\": 303508,\n\t\"./eu.js\": 303508,\n\t\"./fa\": 500119,\n\t\"./fa.js\": 500119,\n\t\"./fi\": 190527,\n\t\"./fi.js\": 190527,\n\t\"./fil\": 395995,\n\t\"./fil.js\": 395995,\n\t\"./fo\": 252477,\n\t\"./fo.js\": 252477,\n\t\"./fr\": 585498,\n\t\"./fr-ca\": 326435,\n\t\"./fr-ca.js\": 326435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 585498,\n\t\"./fy\": 737071,\n\t\"./fy.js\": 737071,\n\t\"./ga\": 241734,\n\t\"./ga.js\": 241734,\n\t\"./gd\": 370217,\n\t\"./gd.js\": 370217,\n\t\"./gl\": 977329,\n\t\"./gl.js\": 977329,\n\t\"./gom-deva\": 432124,\n\t\"./gom-deva.js\": 432124,\n\t\"./gom-latn\": 193383,\n\t\"./gom-latn.js\": 193383,\n\t\"./gu\": 295050,\n\t\"./gu.js\": 295050,\n\t\"./he\": 711713,\n\t\"./he.js\": 711713,\n\t\"./hi\": 543861,\n\t\"./hi.js\": 543861,\n\t\"./hr\": 826308,\n\t\"./hr.js\": 826308,\n\t\"./hu\": 390609,\n\t\"./hu.js\": 390609,\n\t\"./hy-am\": 217160,\n\t\"./hy-am.js\": 217160,\n\t\"./id\": 674063,\n\t\"./id.js\": 674063,\n\t\"./is\": 589374,\n\t\"./is.js\": 589374,\n\t\"./it\": 988383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 988383,\n\t\"./ja\": 823827,\n\t\"./ja.js\": 823827,\n\t\"./jv\": 289722,\n\t\"./jv.js\": 289722,\n\t\"./ka\": 341794,\n\t\"./ka.js\": 341794,\n\t\"./kk\": 927088,\n\t\"./kk.js\": 927088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 484451,\n\t\"./kn.js\": 484451,\n\t\"./ko\": 363164,\n\t\"./ko.js\": 363164,\n\t\"./ku\": 998174,\n\t\"./ku-kmr\": 306181,\n\t\"./ku-kmr.js\": 306181,\n\t\"./ku.js\": 998174,\n\t\"./ky\": 778474,\n\t\"./ky.js\": 778474,\n\t\"./lb\": 679680,\n\t\"./lb.js\": 679680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 545766,\n\t\"./lt.js\": 545766,\n\t\"./lv\": 269532,\n\t\"./lv.js\": 269532,\n\t\"./me\": 158076,\n\t\"./me.js\": 158076,\n\t\"./mi\": 841848,\n\t\"./mi.js\": 841848,\n\t\"./mk\": 930306,\n\t\"./mk.js\": 930306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 199053,\n\t\"./mn.js\": 199053,\n\t\"./mr\": 386169,\n\t\"./mr.js\": 386169,\n\t\"./ms\": 573386,\n\t\"./ms-my\": 892297,\n\t\"./ms-my.js\": 892297,\n\t\"./ms.js\": 573386,\n\t\"./mt\": 677075,\n\t\"./mt.js\": 677075,\n\t\"./my\": 272264,\n\t\"./my.js\": 272264,\n\t\"./nb\": 822274,\n\t\"./nb.js\": 822274,\n\t\"./ne\": 508235,\n\t\"./ne.js\": 508235,\n\t\"./nl\": 592572,\n\t\"./nl-be\": 843784,\n\t\"./nl-be.js\": 843784,\n\t\"./nl.js\": 592572,\n\t\"./nn\": 954566,\n\t\"./nn.js\": 954566,\n\t\"./oc-lnc\": 169330,\n\t\"./oc-lnc.js\": 169330,\n\t\"./pa-in\": 629849,\n\t\"./pa-in.js\": 629849,\n\t\"./pl\": 494418,\n\t\"./pl.js\": 494418,\n\t\"./pt\": 579834,\n\t\"./pt-br\": 748303,\n\t\"./pt-br.js\": 748303,\n\t\"./pt.js\": 579834,\n\t\"./ro\": 824457,\n\t\"./ro.js\": 824457,\n\t\"./ru\": 182271,\n\t\"./ru.js\": 182271,\n\t\"./sd\": 801221,\n\t\"./sd.js\": 801221,\n\t\"./se\": 11097,\n\t\"./se.js\": 11097,\n\t\"./si\": 617538,\n\t\"./si.js\": 617538,\n\t\"./sk\": 105784,\n\t\"./sk.js\": 105784,\n\t\"./sl\": 946637,\n\t\"./sl.js\": 946637,\n\t\"./sq\": 286794,\n\t\"./sq.js\": 286794,\n\t\"./sr\": 545719,\n\t\"./sr-cyrl\": 703322,\n\t\"./sr-cyrl.js\": 703322,\n\t\"./sr.js\": 545719,\n\t\"./ss\": 956000,\n\t\"./ss.js\": 956000,\n\t\"./sv\": 941011,\n\t\"./sv.js\": 941011,\n\t\"./sw\": 740748,\n\t\"./sw.js\": 740748,\n\t\"./ta\": 511025,\n\t\"./ta.js\": 511025,\n\t\"./te\": 911885,\n\t\"./te.js\": 911885,\n\t\"./tet\": 428861,\n\t\"./tet.js\": 428861,\n\t\"./tg\": 786571,\n\t\"./tg.js\": 786571,\n\t\"./th\": 855802,\n\t\"./th.js\": 855802,\n\t\"./tk\": 159527,\n\t\"./tk.js\": 159527,\n\t\"./tl-ph\": 229231,\n\t\"./tl-ph.js\": 229231,\n\t\"./tlh\": 331052,\n\t\"./tlh.js\": 331052,\n\t\"./tr\": 985096,\n\t\"./tr.js\": 985096,\n\t\"./tzl\": 579846,\n\t\"./tzl.js\": 579846,\n\t\"./tzm\": 181765,\n\t\"./tzm-latn\": 997711,\n\t\"./tzm-latn.js\": 997711,\n\t\"./tzm.js\": 181765,\n\t\"./ug-cn\": 248414,\n\t\"./ug-cn.js\": 248414,\n\t\"./uk\": 916618,\n\t\"./uk.js\": 916618,\n\t\"./ur\": 657777,\n\t\"./ur.js\": 657777,\n\t\"./uz\": 957609,\n\t\"./uz-latn\": 972475,\n\t\"./uz-latn.js\": 972475,\n\t\"./uz.js\": 957609,\n\t\"./vi\": 521135,\n\t\"./vi.js\": 521135,\n\t\"./x-pseudo\": 564051,\n\t\"./x-pseudo.js\": 564051,\n\t\"./yo\": 882218,\n\t\"./yo.js\": 882218,\n\t\"./zh-cn\": 552648,\n\t\"./zh-cn.js\": 552648,\n\t\"./zh-hk\": 201632,\n\t\"./zh-hk.js\": 201632,\n\t\"./zh-mo\": 631541,\n\t\"./zh-mo.js\": 631541,\n\t\"./zh-tw\": 350304,\n\t\"./zh-tw.js\": 350304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar object = function object(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default object;","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\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// 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\nmodule.exports = Stack;\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface HomeOutlinedSvgProps extends Omit {}\n\nexport const HomeOutlinedSvg = ({ ...svgProps }: HomeOutlinedSvgProps) => (\n \n \n \n);\n","import { useContext } from 'react';\nimport { genStyleUtils } from '@ant-design/cssinjs-utils';\nimport { ConfigContext } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport useLocalToken, { unitless } from '../useToken';\nimport useResetIconStyle from './useResetIconStyle';\nexport const {\n genStyleHooks,\n genComponentStyleHook,\n genSubStyleComponent\n} = genStyleUtils({\n usePrefix: () => {\n const {\n getPrefixCls,\n iconPrefixCls\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n return {\n rootPrefixCls,\n iconPrefixCls\n };\n },\n useToken: () => {\n const [theme, realToken, hashId, token, cssVar] = useLocalToken();\n return {\n theme,\n realToken,\n hashId,\n token,\n cssVar\n };\n },\n useCSP: () => {\n const {\n csp,\n iconPrefixCls\n } = useContext(ConfigContext);\n // Generate style for icons\n useResetIconStyle(iconPrefixCls, csp);\n return csp !== null && csp !== void 0 ? csp : {};\n },\n getResetStyles: token => [{\n '&': genLinkStyle(token)\n }],\n getCommonStyle: genCommonStyle,\n getCompUnitless: () => unitless\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { forwardRef, useMemo } from 'react';\nimport { ColorPickerPrefixCls, defaultColor } from \"./util\";\nimport classNames from 'classnames';\nimport { Color } from \"./color\";\nimport ColorBlock from \"./components/ColorBlock\";\nimport Picker from \"./components/Picker\";\nimport useColorState from \"./hooks/useColorState\";\nimport useComponent from \"./hooks/useComponent\";\nvar HUE_COLORS = [{\n color: 'rgb(255, 0, 0)',\n percent: 0\n}, {\n color: 'rgb(255, 255, 0)',\n percent: 17\n}, {\n color: 'rgb(0, 255, 0)',\n percent: 33\n}, {\n color: 'rgb(0, 255, 255)',\n percent: 50\n}, {\n color: 'rgb(0, 0, 255)',\n percent: 67\n}, {\n color: 'rgb(255, 0, 255)',\n percent: 83\n}, {\n color: 'rgb(255, 0, 0)',\n percent: 100\n}];\nvar ColorPicker = /*#__PURE__*/forwardRef(function (props, ref) {\n var value = props.value,\n defaultValue = props.defaultValue,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? ColorPickerPrefixCls : _props$prefixCls,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n className = props.className,\n style = props.style,\n panelRender = props.panelRender,\n _props$disabledAlpha = props.disabledAlpha,\n disabledAlpha = _props$disabledAlpha === void 0 ? false : _props$disabledAlpha,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n components = props.components;\n\n // ========================== Components ==========================\n var _useComponent = useComponent(components),\n _useComponent2 = _slicedToArray(_useComponent, 1),\n Slider = _useComponent2[0];\n\n // ============================ Color =============================\n var _useColorState = useColorState(defaultValue || defaultColor, value),\n _useColorState2 = _slicedToArray(_useColorState, 2),\n colorValue = _useColorState2[0],\n setColorValue = _useColorState2[1];\n var alphaColor = useMemo(function () {\n return colorValue.setA(1).toRgbString();\n }, [colorValue]);\n\n // ============================ Events ============================\n var handleChange = function handleChange(data, type) {\n if (!value) {\n setColorValue(data);\n }\n onChange === null || onChange === void 0 || onChange(data, type);\n };\n\n // Convert\n var getHueColor = function getHueColor(hue) {\n return new Color(colorValue.setHue(hue));\n };\n var getAlphaColor = function getAlphaColor(alpha) {\n return new Color(colorValue.setA(alpha / 100));\n };\n\n // Slider change\n var onHueChange = function onHueChange(hue) {\n handleChange(getHueColor(hue), {\n type: 'hue',\n value: hue\n });\n };\n var onAlphaChange = function onAlphaChange(alpha) {\n handleChange(getAlphaColor(alpha), {\n type: 'alpha',\n value: alpha\n });\n };\n\n // Complete\n var onHueChangeComplete = function onHueChangeComplete(hue) {\n if (onChangeComplete) {\n onChangeComplete(getHueColor(hue));\n }\n };\n var onAlphaChangeComplete = function onAlphaChangeComplete(alpha) {\n if (onChangeComplete) {\n onChangeComplete(getAlphaColor(alpha));\n }\n };\n\n // ============================ Render ============================\n var mergeCls = classNames(\"\".concat(prefixCls, \"-panel\"), className, _defineProperty({}, \"\".concat(prefixCls, \"-panel-disabled\"), disabled));\n var sharedSliderProps = {\n prefixCls: prefixCls,\n disabled: disabled,\n color: colorValue\n };\n var defaultPanel = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Picker, _extends({\n onChange: handleChange\n }, sharedSliderProps, {\n onChangeComplete: onChangeComplete\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-slider-container\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-slider-group\"), _defineProperty({}, \"\".concat(prefixCls, \"-slider-group-disabled-alpha\"), disabledAlpha))\n }, /*#__PURE__*/React.createElement(Slider, _extends({}, sharedSliderProps, {\n type: \"hue\",\n colors: HUE_COLORS,\n min: 0,\n max: 359,\n value: colorValue.getHue(),\n onChange: onHueChange,\n onChangeComplete: onHueChangeComplete\n })), !disabledAlpha && /*#__PURE__*/React.createElement(Slider, _extends({}, sharedSliderProps, {\n type: \"alpha\",\n colors: [{\n percent: 0,\n color: 'rgba(255, 0, 4, 0)'\n }, {\n percent: 100,\n color: alphaColor\n }],\n min: 0,\n max: 100,\n value: colorValue.a * 100,\n onChange: onAlphaChange,\n onChangeComplete: onAlphaChangeComplete\n }))), /*#__PURE__*/React.createElement(ColorBlock, {\n color: colorValue.toRgbString(),\n prefixCls: prefixCls\n })));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mergeCls,\n style: style,\n ref: ref\n }, typeof panelRender === 'function' ? panelRender(defaultPanel) : defaultPanel);\n});\nif (process.env.NODE_ENV !== 'production') {\n ColorPicker.displayName = 'ColorPicker';\n}\nexport default ColorPicker;","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","export default __webpack_public_path__ + \"assets/favicons/favicon-alert-32x32.png\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react';\n// @ts-ignore\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { CSS_FILE_STYLE, existPath, getStyleAndHash } from \"../util/cacheMapUtil\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n var serialized = serialize(compile(styleStr), stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n return _typeof(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n // 注入 hashId\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n var fullPath = k.trim().split(/\\s+/);\n\n // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n// Parse CSSObject to style content\nexport var parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = _slicedToArray(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n return (trans === null || trans === void 0 || (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style);\n\n // Normal CSSObject\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false;\n\n // 当成嵌套对象来处理\n var mergedKey = key.trim();\n // Whether treat child as root. In most case it is false.\n var nextRoot = false;\n\n // 拆分多个选择器\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else if (mergedKey === '&') {\n // 抹掉 root selector 上的单个 &\n mergedKey = injectSelectorHash('', hashId, hashPriority);\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n function appendStyle(cssKey, cssValue) {\n if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n return linter(cssKey, cssValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n }\n\n // 如果是样式则直接插入\n var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n });\n\n // Auto suffix with px\n var formatValue = cssValue;\n if (!unitless[cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n }\n\n // handle animationName & Keyframe value\n if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n parseKeyframes(cssValue);\n formatValue = cssValue.getName(hashId);\n }\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n if (_typeof(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n actualValue.forEach(function (item) {\n appendStyle(key, item);\n });\n } else {\n appendStyle(key, actualValue);\n }\n }\n });\n }\n });\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer) {\n // fixme: https://github.com/thysultan/stylis/pull/339\n if (styleStr) {\n styleStr = \"@layer \".concat(layer.name, \" {\").concat(styleStr, \"}\");\n }\n if (layer.dependencies) {\n effectStyle[\"@layer \".concat(layer.name)] = layer.dependencies.map(function (deps) {\n return \"@layer \".concat(deps, \", \").concat(layer.name, \";\");\n }).join('\\n');\n }\n }\n return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// == Register ==\n// ============================================================================\nexport function uniqueHash(path, styleStr) {\n return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n return null;\n}\nexport var STYLE_PREFIX = 'style';\n/**\n * Register a style to the global style sheet.\n */\nexport default function useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer,\n nonce = info.nonce,\n clientOnly = info.clientOnly,\n _info$order = info.order,\n order = _info$order === void 0 ? 0 : _info$order;\n var _React$useContext = React.useContext(StyleContext),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters,\n cache = _React$useContext.cache,\n enableLayer = _React$useContext.layer;\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey];\n if (enableLayer) {\n fullPath.push('layer');\n }\n fullPath.push.apply(fullPath, _toConsumableArray(path));\n\n // Check if need insert style\n var isMergedClientSide = isClientSide;\n if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n var _useGlobalCache = useGlobalCache(STYLE_PREFIX, fullPath,\n // Create cache if needed\n function () {\n var cachePath = fullPath.join('|');\n\n // Get style from SSR inline style directly\n if (existPath(cachePath)) {\n var _getStyleAndHash = getStyleAndHash(cachePath),\n _getStyleAndHash2 = _slicedToArray(_getStyleAndHash, 2),\n inlineCacheStyleStr = _getStyleAndHash2[0],\n styleHash = _getStyleAndHash2[1];\n if (inlineCacheStyleStr) {\n return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n }\n }\n\n // Generate style\n var styleObj = styleFn();\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: enableLayer ? layer : undefined,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n },\n // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = _slicedToArray(_ref2, 3),\n styleId = _ref3[2];\n if ((fromHMR || autoClear) && isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n },\n // Effect: Inject style here\n function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 4),\n styleStr = _ref5[0],\n _ = _ref5[1],\n styleId = _ref5[2],\n effectStyle = _ref5[3];\n if (isMergedClientSide && styleStr !== CSS_FILE_STYLE) {\n var mergedCSSConfig = {\n mark: ATTR_MARK,\n prepend: enableLayer ? false : 'queue',\n attachTo: container,\n priority: order\n };\n var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n if (nonceStr) {\n mergedCSSConfig.csp = {\n nonce: nonceStr\n };\n }\n\n // ================= Split Effect Style =================\n // We will split effectStyle here since @layer should be at the top level\n var effectLayerKeys = [];\n var effectRestKeys = [];\n Object.keys(effectStyle).forEach(function (key) {\n if (key.startsWith('@layer')) {\n effectLayerKeys.push(key);\n } else {\n effectRestKeys.push(key);\n }\n });\n\n // ================= Inject Layer Style =================\n // Inject layer style\n effectLayerKeys.forEach(function (effectKey) {\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_layer-\".concat(effectKey), _objectSpread(_objectSpread({}, mergedCSSConfig), {}, {\n prepend: true\n }));\n });\n\n // ==================== Inject Style ====================\n // Inject style\n var style = updateCSS(styleStr, styleId, mergedCSSConfig);\n style[CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(ATTR_TOKEN, tokenKey);\n\n // Debug usage. Dev only\n if (process.env.NODE_ENV !== 'production') {\n style.setAttribute(ATTR_CACHE_PATH, fullPath.join('|'));\n }\n\n // ================ Inject Effect Style =================\n // Inject client side effect style\n effectRestKeys.forEach(function (effectKey) {\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n });\n }\n }),\n _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n return function (node) {\n var styleNode;\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/React.createElement(Empty, null);\n } else {\n var _ref6;\n styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref6 = {}, _defineProperty(_ref6, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref6, ATTR_MARK, cachedStyleId), _ref6), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n };\n}\nexport var extract = function extract(cache, effectStyles, options) {\n var _cache = _slicedToArray(cache, 6),\n styleStr = _cache[0],\n tokenKey = _cache[1],\n styleId = _cache[2],\n effectStyle = _cache[3],\n clientOnly = _cache[4],\n order = _cache[5];\n var _ref7 = options || {},\n plain = _ref7.plain;\n\n // Skip client only style\n if (clientOnly) {\n return null;\n }\n var keyStyleText = styleStr;\n\n // ====================== Share ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n\n // ====================== Style ======================\n keyStyleText = toStyleStr(styleStr, tokenKey, styleId, sharedAttrs, plain);\n\n // =============== Create effect style ===============\n if (effectStyle) {\n Object.keys(effectStyle).forEach(function (effectKey) {\n // Effect style can be reused\n if (!effectStyles[effectKey]) {\n effectStyles[effectKey] = true;\n var effectStyleStr = normalizeStyle(effectStyle[effectKey]);\n var effectStyleHTML = toStyleStr(effectStyleStr, tokenKey, \"_effect-\".concat(effectKey), sharedAttrs, plain);\n if (effectKey.startsWith('@layer')) {\n keyStyleText = effectStyleHTML + keyStyleText;\n } else {\n keyStyleText += effectStyleHTML;\n }\n }\n });\n }\n return [order, styleId, keyStyleText];\n};","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _PrinterOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/PrinterOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar PrinterOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _PrinterOutlined.default\n }));\n};\n/**![printer](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgyMCA0MzZoLTQwYy00LjQgMC04IDMuNi04IDh2NDBjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNDBjMC00LjQtMy42LTgtOC04em0zMi0xMDRINzMyVjEyMGMwLTQuNC0zLjYtOC04LThIMzAwYy00LjQgMC04IDMuNi04IDh2MjEySDE3MmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MzI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OHYxMzJjMCA0LjQgMy42IDggOCA4aDQyNGM0LjQgMCA4LTMuNiA4LThWNzcyaDE2OGMxNy43IDAgMzItMTQuMyAzMi0zMlY0MTJjMC00NC4yLTM1LjgtODAtODAtODB6TTM2MCAxODBoMzA0djE1MkgzNjBWMTgwem0zMDQgNjY0SDM2MFY1NjhoMzA0djI3NnptMjAwLTE0MEg3MzJWNTAwSDI5MnYyMDRIMTYwVjQxMmMwLTYuNiA1LjQtMTIgMTItMTJoNjgwYzYuNiAwIDEyIDUuNCAxMiAxMnYyOTJ6IiAvPjwvc3ZnPg==) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(PrinterOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"PrinterOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"3f896944a97f002f2146e028ff2eac63.js\";","import { parse } from 'query-string';\n\nexport function parseSlideoutUrls(location) {\n const { search } = location;\n // get the slideouts array, but they could be in either format:\n // - routeName\n // - routeName?x=123 <--- \"params\" will be passed as extraData\n // eslint-disable-next-line prefer-const\n let { s = [], ...otherData } = parse(search, { arrayFormat: 'none' });\n\n s = Array.isArray(s) ? s : [s];\n const parsed = s.reduce(\n (acc, curr) => {\n const [route, extraData = ''] = curr.split('?'); // split on ?\n const parsedExtraData = extraData.split('&').reduce((prev, next) => {\n const [key, value] = next.split('=');\n // eslint-disable-next-line no-param-reassign\n prev[key] = value;\n return prev;\n }, {});\n acc.parsed.push({ route, extraData: parsedExtraData });\n return acc;\n },\n { original: s, parsed: [] },\n );\n\n return { parsed: parsed.parsed, otherData };\n}\n\nexport function convertDataToSlideoutUrl(data) {\n const qp = { s: data.map((d) => d.route) };\n return qp;\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","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const genBaseStyle = token => {\n const {\n componentCls,\n contentBg,\n padding,\n headerBg,\n headerPadding,\n collapseHeaderPaddingSM,\n collapseHeaderPaddingLG,\n collapsePanelBorderRadius,\n lineWidth,\n lineType,\n colorBorder,\n colorText,\n colorTextHeading,\n colorTextDisabled,\n fontSizeLG,\n lineHeight,\n lineHeightLG,\n marginSM,\n paddingSM,\n paddingLG,\n paddingXS,\n motionDurationSlow,\n fontSizeIcon,\n contentPadding,\n fontHeight,\n fontHeightLG\n } = token;\n const borderBase = `${unit(lineWidth)} ${lineType} ${colorBorder}`;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n backgroundColor: headerBg,\n border: borderBase,\n borderRadius: collapsePanelBorderRadius,\n '&-rtl': {\n direction: 'rtl'\n },\n [`& > ${componentCls}-item`]: {\n borderBottom: borderBase,\n '&:last-child': {\n [`\n &,\n & > ${componentCls}-header`]: {\n borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n }\n },\n [`> ${componentCls}-header`]: {\n position: 'relative',\n // Compatible with old version of antd, should remove in next version\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'flex-start',\n padding: headerPadding,\n color: colorTextHeading,\n lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}, visibility 0s`,\n [`> ${componentCls}-header-text`]: {\n flex: 'auto'\n },\n '&:focus': {\n outline: 'none'\n },\n // >>>>> Arrow\n [`${componentCls}-expand-icon`]: {\n height: fontHeight,\n display: 'flex',\n alignItems: 'center',\n paddingInlineEnd: marginSM\n },\n [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n // when `transform: rotate()` is applied to icon's root element\n transition: `transform ${motionDurationSlow}`,\n // when `transform: rotate()` is applied to icon's child element\n svg: {\n transition: `transform ${motionDurationSlow}`\n }\n }),\n // >>>>> Text\n [`${componentCls}-header-text`]: {\n marginInlineEnd: 'auto'\n }\n },\n [`${componentCls}-icon-collapsible-only`]: {\n cursor: 'unset',\n [`${componentCls}-expand-icon`]: {\n cursor: 'pointer'\n }\n }\n },\n [`${componentCls}-content`]: {\n color: colorText,\n backgroundColor: contentBg,\n borderTop: borderBase,\n [`& > ${componentCls}-content-box`]: {\n padding: contentPadding\n },\n '&-hidden': {\n display: 'none'\n }\n },\n '&-small': {\n [`> ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingSM,\n paddingInlineStart: paddingXS,\n [`> ${componentCls}-expand-icon`]: {\n // Arrow offset\n marginInlineStart: token.calc(paddingSM).sub(paddingXS).equal()\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingSM\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-item`]: {\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n [`> ${componentCls}-header`]: {\n padding: collapseHeaderPaddingLG,\n paddingInlineStart: padding,\n [`> ${componentCls}-expand-icon`]: {\n height: fontHeightLG,\n // Arrow offset\n marginInlineStart: token.calc(paddingLG).sub(padding).equal()\n }\n },\n [`> ${componentCls}-content > ${componentCls}-content-box`]: {\n padding: paddingLG\n }\n }\n },\n [`${componentCls}-item:last-child`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n borderRadius: `0 0 ${unit(collapsePanelBorderRadius)} ${unit(collapsePanelBorderRadius)}`\n }\n },\n [`& ${componentCls}-item-disabled > ${componentCls}-header`]: {\n [`\n &,\n & > .arrow\n `]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // ========================== Icon Position ==========================\n [`&${componentCls}-icon-position-end`]: {\n [`& > ${componentCls}-item`]: {\n [`> ${componentCls}-header`]: {\n [`${componentCls}-expand-icon`]: {\n order: 1,\n paddingInlineEnd: 0,\n paddingInlineStart: marginSM\n }\n }\n }\n }\n })\n };\n};\nconst genArrowStyle = token => {\n const {\n componentCls\n } = token;\n const fixedSelector = `> ${componentCls}-item > ${componentCls}-header ${componentCls}-arrow`;\n return {\n [`${componentCls}-rtl`]: {\n [fixedSelector]: {\n transform: `rotate(180deg)`\n }\n }\n };\n};\nconst genBorderlessStyle = token => {\n const {\n componentCls,\n headerBg,\n paddingXXS,\n colorBorder\n } = token;\n return {\n [`${componentCls}-borderless`]: {\n backgroundColor: headerBg,\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: `1px solid ${colorBorder}`\n },\n [`\n > ${componentCls}-item:last-child,\n > ${componentCls}-item:last-child ${componentCls}-header\n `]: {\n borderRadius: 0\n },\n [`> ${componentCls}-item:last-child`]: {\n borderBottom: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n borderTop: 0\n },\n [`> ${componentCls}-item > ${componentCls}-content > ${componentCls}-content-box`]: {\n paddingTop: paddingXXS\n }\n }\n };\n};\nconst genGhostStyle = token => {\n const {\n componentCls,\n paddingSM\n } = token;\n return {\n [`${componentCls}-ghost`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-item`]: {\n borderBottom: 0,\n [`> ${componentCls}-content`]: {\n backgroundColor: 'transparent',\n border: 0,\n [`> ${componentCls}-content-box`]: {\n paddingBlock: paddingSM\n }\n }\n }\n }\n };\n};\nexport const prepareComponentToken = token => ({\n headerPadding: `${token.paddingSM}px ${token.padding}px`,\n headerBg: token.colorFillAlter,\n contentPadding: `${token.padding}px 16px`,\n // Fixed Value\n contentBg: token.colorBgContainer\n});\nexport default genStyleHooks('Collapse', token => {\n const collapseToken = mergeToken(token, {\n collapseHeaderPaddingSM: `${unit(token.paddingXS)} ${unit(token.paddingSM)}`,\n collapseHeaderPaddingLG: `${unit(token.padding)} ${unit(token.paddingLG)}`,\n collapsePanelBorderRadius: token.borderRadiusLG\n });\n return [genBaseStyle(collapseToken), genBorderlessStyle(collapseToken), genGhostStyle(collapseToken), genArrowStyle(collapseToken), genCollapseMotion(collapseToken)];\n}, prepareComponentToken);","export default __webpack_public_path__ + \"assets/favicons/mstile-150x150.png\";","module.exports = __webpack_public_path__ + \"8ed5aba33ead1f94e97d5c35a5e93434.js\";","/**\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\nexport default overArg;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--colorError: #de1111;--colorInfo: #8d9399;--colorLink: rgba(0, 110, 215, 1);--colorPrimary: rgba(0, 110, 215, 1);--colorSuccess: #20c62f;--colorTextBase: #121826;--colorWarning: #eaa301;--colorBgContainer: #ffffff;--colorBgElevated: #ffffff;--colorBgLayout: #f2f5f7;--colorBgMask: rgba(18, 24, 38, 0.45);--colorBgSpotlight: #363b47;--colorBorder: #c2c7cc;--colorBorderSecondary: #ebeef0;--colorErrorActive: #b8060b;--colorErrorBg: #ffeae6;--colorErrorBgHover: #ffc1b8;--colorErrorBorder: #ff9a8f;--colorErrorBorderHover: #f76d63;--colorErrorHover: #eb3e38;--colorErrorText: #de1111;--colorErrorTextActive: #b8060b;--colorErrorTextHover: #eb3e38;--colorErrorPageBg: linear-gradient(-70deg, #f3f5f7 50%, #ffffff 50%);--colorErrorPageText: linear-gradient(90deg, #ffffff 0.76%, #f2f5f7 98.79%);--colorFill: #dbdcde;--colorFillSecondary: #f1f1f2;--colorFillTertiary: #f6f6f6;--colorFillQuaternary: #fafafb;--colorInfoActive: #646b73;--colorInfoBg: #f2f6fb;--colorInfoBgHover: #e1e5eb;--colorInfoBorder: #d5d8dc;--colorInfoBorderHover: #a8aeb3;--colorInfoHover: #a8aeb3;--colorInfoText: #8d9399;--colorInfoTextActive: #646b73;--colorInfoTextHover: #9ca1a6;--colorLinkActive: #005cb5;--colorLinkHover: #0065c6;--colorPrimaryActive: #005cb5;--colorPrimaryBg: #e6f7ff;--colorPrimaryBgHover: #a3dfff;--colorPrimaryBorder: #79cafc;--colorPrimaryBorderHover: #4dacf0;--colorPrimaryHover: #0065c6;--colorPrimaryText: rgba(0, 110, 215, 1);--colorPrimaryTextActive: #0055b0;--colorPrimaryTextHover: #248de3;--colorSuccessActive: #12a122;--colorSuccessBg: #f1fff0;--colorSuccessBgHover: #cafac8;--colorSuccessBorder: #99ed98;--colorSuccessBorderHover: #6ce06e;--colorSuccessHover: #6ce06e;--colorSuccessText: #13761c;--colorSuccessTextActive: #12a122;--colorSuccessTextHover: #44d44b;--colorText: #121826;--colorTextSecondary: #656972;--colorTextTertiary: #94979d;--colorTextQuaternary: #c4c5c9;--colorWarningActive: #c48300;--colorWarningBg: #fffce6;--colorWarningBgHover: #fff0a3;--colorWarningBorder: #ffe47a;--colorWarningBorderHover: #ffd752;--colorWarningHover: #ffd752;--colorWarningText: #eaa301;--colorWarningTextActive: #c48300;--colorWarningTextHover: #f7c028;--colorWhite: #ffffff;--colorPurple: #a333c8;--colorBgContainerDisabled: rgba(0, 0, 0, 0.04);--colorBgTextActive: rgba(0, 0, 0, 0.15);--colorBgTextHover: rgba(0, 0, 0, 0.06);--colorBorderBg: #ffffff;--colorErrorOutline: rgba(255, 38, 5, 0.06);--colorFillAlter: rgba(0, 0, 0, 0.02);--colorFillContent: rgba(0, 0, 0, 0.06);--colorFillContentHover: rgba(0, 0, 0, 0.15);--colorHighlight: #ff4d4f;--colorIcon: rgba(18, 24, 38, 0.45);--colorIconHover: rgba(18, 24, 38, 0.88);--colorSplit: #ebecee;--colorTextDescription: rgba(18, 24, 38, 0.45);--colorTextDisabled: rgba(18, 24, 38, 0.65);--colorTextHeading: #121826;--colorTextLabel: rgba(18, 24, 38, 0.65);--colorTextLightSolid: #ffffff;--colorTextPlaceholder: #c2c7cc;--colorWarningOutline: rgba(255, 215, 5, 0.1);--controlItemBgActive: #e6f7ff;--controlItemBgActiveDisabled: rgba(0, 0, 0, 0.15);--controlItemBgActiveHover: #bae0ff;--controlItemBgHover: rgba(18, 24, 38, 0.04);--controlOutline: rgba(5, 175, 255, 0.1);--controlTmpOutline: rgba(0, 0, 0, 0.02);--colorAlarmHighBg: #a80c0c;--colorAlarmHighText: #ffffff;--colorAlarmMediumBg: #f7dea4;--colorAlarmMediumText: #7a5500;--colorAlarmLowBg: #d6dadd;--colorAlarmLowText: #121826;--colorHeaderBg: #f2f4f7;--colorHeaderButtonBg: #e0e4e7;--colorHeaderButtonText: #121826;--colorHeaderButtonBgHover: #d7dbde;--colorHeaderButtonBgActive: #d7dbde;--colorUserMenuTextSecondary: #666666;--colorNavSubMenuBg: #ebeef0;--colorSectionBorder: #eff0f1;--colorBoxShadow: #00000014;--colorSidebarHover: rgba(77, 100, 255, 0.12);--colorBoxShadowElevated: 0px 6px 16px 0px rgba(0, 0, 0, 0.08), 0px 3px 6px -4px rgba(0, 0, 0, 0.12), 0px 9px 28px 8px rgba(0, 0, 0, 0.05);--unlColorMenuItemHover: #b8d4ef;--scrollShadow: rgba(0, 0, 0, 0.2);--utnMenuBorder: 1px solid rgba(255, 255, 255, 1);--utnMenuBoxShadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);--baseFontSize: 14px;--baseSpacing: 8px;--borderRadius: 12px;--borderRadius--rounded: 100px;--styleBoxShadow: 0 1px 4px rgba(0, 0, 0, 0.08);--styleBoxShadowHover: 0 1px 16px 0 rgba(0, 0, 0, 0.16)}:root.dark{--colorError: #ff1f1f;--colorInfo: #7b8085;--colorLink: #1f93ff;--colorPrimary: rgba(0, 110, 215, 1);--colorSuccess: #20c62f;--colorTextBase: #ffffff;--colorWarning: #eaa301;--colorBgContainer: #121826;--colorBgElevated: #181f32;--colorBgLayout: #121826;--colorBgMask: rgba(0, 0, 0, 0.45);--colorBgSpotlight: #5c6a77;--colorBorder: #5c6a77;--colorBorderSecondary: #2d3642;--colorErrorActive: #ad1b1b;--colorErrorBg: #53151f;--colorErrorBgHover: #451315;--colorErrorBorder: #5b1717;--colorErrorBorderHover: #7e1919;--colorErrorHover: #e84842;--colorErrorPageBg: linear-gradient(-70deg, #171f31 50%, #121826 50%);--colorErrorPageText: linear-gradient(90deg, #121826 0.76%, #181f32 98.79%);--colorErrorText: #ee8787;--colorErrorTextActive: #ad1b1b;--colorErrorTextHover: #e84842;--colorFill: #3d424d;--colorFillSecondary: #2e3440;--colorFillTertiary: #252a37;--colorFillQuaternary: #1b212f;--colorInfoActive: #63676a;--colorInfoBg: #1a1b1d;--colorInfoBgHover: #282a2c;--colorInfoBorder: #383a3c;--colorInfoBorderHover: #4a4d50;--colorInfoHover: #4a4d50;--colorInfoText: #7b8085;--colorInfoTextActive: #63676a;--colorInfoTextHover: #8e9397;--colorLinkActive: #78beff;--colorLinkHover: #4ba8ff;--colorPrimaryActive: #005cb5;--colorPrimaryBg: #0c3a6b;--colorPrimaryBgHover: #0f243b;--colorPrimaryBorder: #0e2f4f;--colorPrimaryBorderHover: #0b3d6c;--colorPrimaryHover: #0065c6;--colorPrimaryText: #4aa8ff;--colorPrimaryTextActive: #074f93;--colorPrimaryTextHover: #2281ce;--colorSuccessActive: #1c8826;--colorSuccessBg: #122315;--colorSuccessBgHover: #143718;--colorSuccessBorder: #18491c;--colorSuccessBorderHover: #196420;--colorSuccessHover: #196420;--colorSuccessText: #78dc81;--colorSuccessTextActive: #1c8826;--colorSuccessTextHover: #3fc146;--colorText: #ffffff;--colorTextSecondary: #acaeb3;--colorTextTertiary: #7d8088;--colorTextQuaternary: #4d525c;--colorWarningActive: #9f7108;--colorWarningBg: #292011;--colorWarningBgHover: #40300f;--colorWarningBorder: #40300f;--colorWarningBorderHover: #74540b;--colorWarningHover: #74540b;--colorWarningText: #ca8e04;--colorWarningTextActive: #9f7108;--colorWarningTextHover: #e0af26;--colorWhite: #ffffff;--colorPurple: #a333c8;--colorBgContainerDisabled: rgba(255, 255, 255, 0.8);--colorIcon: rgba(255, 255, 255, 0.45);--colorTextDisabled: rgba(255, 255, 255, 0.65);--colorTextHeading: #ffffff;--colorTextLabel: rgba(255, 255, 255, 0.65);--colorTextLightSolid: #ffffff;--colorTextPlaceholder: rgba(255, 255, 255, 0.25);--controlItemBgHover: rgba(255, 255, 255, 0.08);--colorAlarmHighBg: #a80c0c;--colorAlarmHighText: #ffffff;--colorAlarmMediumBg: #57441a;--colorAlarmMediumText: #fcf4e1;--colorAlarmLowBg: #3e4652;--colorAlarmLowText: #ffffff;--colorHeaderBg: #181f32;--colorHeaderButtonBg: #31394b;--colorHeaderButtonText: #ffffff;--colorHeaderButtonBgHover: #3a4254;--colorHeaderButtonBgActive: #3a4254;--colorUserMenuTextSecondary: #91929b;--colorNavSubMenuBg: #21283a;--colorSectionBorder: #171d2d;--colorBoxShadow: #00000029;--colorSidebarHover: rgba(77, 100, 255, 0.12);--colorBoxShadowElevated: 0px 6px 16px 0px rgba(0, 0, 0, 0.32), 0px 3px 6px -4px rgba(0, 0, 0, 0.48), 0px 9px 28px 8px rgba(0, 0, 0, 0.2);--unlColorMenuItemHover: #12325a;--scrollShadow: rgba(255, 255, 255, 0.1);--utnMenuBorder: 1px solid rgba(255, 255, 255, 0.08);--utnMenuBoxShadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.24);--styleBoxShadow: 0 1px 4px rgba(0, 0, 0, 0.4);--styleBoxShadowHover: 0 1px 16px 0 rgba(0, 0, 0, 0.64)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/assets/scss/base/_root.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@use 'assets/scss/common/_colors';\\n@use 'assets/scss/common/_variables';\\n\\n:root {\\n // SEED TOKENS\\n --colorError: #de1111;\\n --colorInfo: #8d9399;\\n --colorLink: rgba(0, 110, 215, 1);\\n --colorPrimary: rgba(0, 110, 215, 1);\\n --colorSuccess: #20c62f;\\n --colorTextBase: #121826;\\n --colorWarning: #eaa301;\\n\\n // MAP: TOKENS\\n --colorBgContainer: #ffffff;\\n --colorBgElevated: #ffffff;\\n --colorBgLayout: #f2f5f7;\\n --colorBgMask: rgba(18, 24, 38, 0.45);\\n --colorBgSpotlight: #363b47;\\n --colorBorder: #c2c7cc;\\n --colorBorderSecondary: #ebeef0;\\n --colorErrorActive: #b8060b;\\n --colorErrorBg: #ffeae6;\\n --colorErrorBgHover: #ffc1b8;\\n --colorErrorBorder: #ff9a8f;\\n --colorErrorBorderHover: #f76d63;\\n --colorErrorHover: #eb3e38;\\n --colorErrorText: #de1111;\\n --colorErrorTextActive: #b8060b;\\n --colorErrorTextHover: #eb3e38;\\n --colorErrorPageBg: linear-gradient(-70deg, #f3f5f7 50%, #ffffff 50%);\\n --colorErrorPageText: linear-gradient(90deg, #ffffff 0.76%, #f2f5f7 98.79%);\\n --colorFill: #dbdcde;\\n --colorFillSecondary: #f1f1f2;\\n --colorFillTertiary: #f6f6f6;\\n --colorFillQuaternary: #fafafb;\\n --colorInfoActive: #646b73;\\n --colorInfoBg: #f2f6fb;\\n --colorInfoBgHover: #e1e5eb;\\n --colorInfoBorder: #d5d8dc;\\n --colorInfoBorderHover: #a8aeb3;\\n --colorInfoHover: #a8aeb3;\\n --colorInfoText: #8d9399;\\n --colorInfoTextActive: #646b73;\\n --colorInfoTextHover: #9ca1a6;\\n --colorLinkActive: #005cb5;\\n --colorLinkHover: #0065c6;\\n --colorPrimaryActive: #005cb5;\\n --colorPrimaryBg: #e6f7ff;\\n --colorPrimaryBgHover: #a3dfff;\\n --colorPrimaryBorder: #79cafc;\\n --colorPrimaryBorderHover: #4dacf0;\\n --colorPrimaryHover: #0065c6;\\n --colorPrimaryText: rgba(0, 110, 215, 1);\\n --colorPrimaryTextActive: #0055b0;\\n --colorPrimaryTextHover: #248de3;\\n --colorSuccessActive: #12a122;\\n --colorSuccessBg: #f1fff0;\\n --colorSuccessBgHover: #cafac8;\\n --colorSuccessBorder: #99ed98;\\n --colorSuccessBorderHover: #6ce06e;\\n --colorSuccessHover: #6ce06e;\\n --colorSuccessText: #13761c;\\n --colorSuccessTextActive: #12a122;\\n --colorSuccessTextHover: #44d44b;\\n --colorText: #121826;\\n --colorTextSecondary: #656972;\\n --colorTextTertiary: #94979d;\\n --colorTextQuaternary: #c4c5c9;\\n --colorWarningActive: #c48300;\\n --colorWarningBg: #fffce6;\\n --colorWarningBgHover: #fff0a3;\\n --colorWarningBorder: #ffe47a;\\n --colorWarningBorderHover: #ffd752;\\n --colorWarningHover: #ffd752;\\n --colorWarningText: #eaa301;\\n --colorWarningTextActive: #c48300;\\n --colorWarningTextHover: #f7c028;\\n --colorWhite: #ffffff;\\n --colorPurple: #a333c8;\\n // ALIAS: TOKENS (just for documentation, likely not needed for theming)\\t;\\n --colorBgContainerDisabled: rgba(0, 0, 0, 0.04);\\n --colorBgTextActive: rgba(0, 0, 0, 0.15);\\n --colorBgTextHover: rgba(0, 0, 0, 0.06);\\n --colorBorderBg: #ffffff;\\n --colorErrorOutline: rgba(255, 38, 5, 0.06);\\n --colorFillAlter: rgba(0, 0, 0, 0.02);\\n --colorFillContent: rgba(0, 0, 0, 0.06);\\n --colorFillContentHover: rgba(0, 0, 0, 0.15);\\n --colorHighlight: #ff4d4f;\\n --colorIcon: rgba(18, 24, 38, 0.45);\\n --colorIconHover: rgba(18, 24, 38, 0.88);\\n --colorSplit: #ebecee;\\n --colorTextDescription: rgba(18, 24, 38, 0.45);\\n --colorTextDisabled: rgba(18, 24, 38, 0.65);\\n --colorTextHeading: #121826;\\n --colorTextLabel: rgba(18, 24, 38, 0.65);\\n --colorTextLightSolid: #ffffff;\\n --colorTextPlaceholder: #c2c7cc;\\n --colorWarningOutline: rgba(255, 215, 5, 0.1);\\n --controlItemBgActive: #e6f7ff;\\n --controlItemBgActiveDisabled: rgba(0, 0, 0, 0.15);\\n --controlItemBgActiveHover: #bae0ff;\\n --controlItemBgHover: rgba(18, 24, 38, 0.04);\\n --controlOutline: rgba(5, 175, 255, 0.1);\\n --controlTmpOutline: rgba(0, 0, 0, 0.02);\\n\\n // ALARM COLORS\\n --colorAlarmHighBg: #a80c0c;\\n --colorAlarmHighText: #ffffff;\\n --colorAlarmMediumBg: #f7dea4;\\n --colorAlarmMediumText: #7a5500;\\n --colorAlarmLowBg: #d6dadd;\\n --colorAlarmLowText: #121826;\\n\\n // HEADER COLORS\\n --colorHeaderBg: #f2f4f7;\\n --colorHeaderButtonBg: #e0e4e7;\\n --colorHeaderButtonText: #121826;\\n --colorHeaderButtonBgHover: #d7dbde;\\n --colorHeaderButtonBgActive: #d7dbde;\\n\\n // OTHER COLORS\\n --colorUserMenuTextSecondary: #666666;\\n --colorNavSubMenuBg: #ebeef0;\\n --colorSectionBorder: #eff0f1;\\n --colorBoxShadow: #00000014;\\n --colorSidebarHover: rgba(77, 100, 255, 0.12);\\n --colorBoxShadowElevated: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),\\n 0px 3px 6px -4px rgba(0, 0, 0, 0.12), 0px 9px 28px 8px rgba(0, 0, 0, 0.05);\\n\\n // UNIFIED COLORS\\n --unlColorMenuItemHover: #b8d4ef;\\n --scrollShadow: rgba(0, 0, 0, 0.2);\\n --utnMenuBorder: 1px solid rgba(255, 255, 255, 1);\\n --utnMenuBoxShadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);\\n\\n // NON-COLOR STUFF\\n --baseFontSize: 14px;\\n --baseSpacing: 8px;\\n\\n --borderRadius: #{variables.$border-radius};\\n --borderRadius--rounded: #{variables.$border-radius--rounded};\\n\\n --styleBoxShadow: 0 1px 4px rgba(0, 0, 0, 0.08);\\n --styleBoxShadowHover: 0 1px 16px 0 rgba(0, 0, 0, 0.16);\\n}\\n\\n:root.dark {\\n // SEED TOKENS\\n --colorError: #ff1f1f;\\n --colorInfo: #7b8085;\\n --colorLink: #1f93ff;\\n --colorPrimary: rgba(0, 110, 215, 1);\\n --colorSuccess: #20c62f;\\n --colorTextBase: #ffffff;\\n --colorWarning: #eaa301;\\n\\n // MAP TOKENS;\\n --colorBgContainer: #121826;\\n --colorBgElevated: #181f32;\\n --colorBgLayout: #121826;\\n --colorBgMask: rgba(0, 0, 0, 0.45);\\n --colorBgSpotlight: #5c6a77;\\n --colorBorder: #5c6a77;\\n --colorBorderSecondary: #2d3642;\\n --colorErrorActive: #ad1b1b;\\n --colorErrorBg: #53151f;\\n --colorErrorBgHover: #451315;\\n --colorErrorBorder: #5b1717;\\n --colorErrorBorderHover: #7e1919;\\n --colorErrorHover: #e84842;\\n --colorErrorPageBg: linear-gradient(-70deg, #171f31 50%, #121826 50%);\\n --colorErrorPageText: linear-gradient(90deg, #121826 0.76%, #181f32 98.79%);\\n --colorErrorText: #ee8787;\\n --colorErrorTextActive: #ad1b1b;\\n --colorErrorTextHover: #e84842;\\n --colorFill: #3d424d;\\n --colorFillSecondary: #2e3440;\\n --colorFillTertiary: #252a37;\\n --colorFillQuaternary: #1b212f;\\n --colorInfoActive: #63676a;\\n --colorInfoBg: #1a1b1d;\\n --colorInfoBgHover: #282a2c;\\n --colorInfoBorder: #383a3c;\\n --colorInfoBorderHover: #4a4d50;\\n --colorInfoHover: #4a4d50;\\n --colorInfoText: #7b8085;\\n --colorInfoTextActive: #63676a;\\n --colorInfoTextHover: #8e9397;\\n --colorLinkActive: #78beff;\\n --colorLinkHover: #4ba8ff;\\n --colorPrimaryActive: #005cb5;\\n --colorPrimaryBg: #0c3a6b;\\n --colorPrimaryBgHover: #0f243b;\\n --colorPrimaryBorder: #0e2f4f;\\n --colorPrimaryBorderHover: #0b3d6c;\\n --colorPrimaryHover: #0065c6;\\n --colorPrimaryText: #4aa8ff;\\n --colorPrimaryTextActive: #074f93;\\n --colorPrimaryTextHover: #2281ce;\\n --colorSuccessActive: #1c8826;\\n --colorSuccessBg: #122315;\\n --colorSuccessBgHover: #143718;\\n --colorSuccessBorder: #18491c;\\n --colorSuccessBorderHover: #196420;\\n --colorSuccessHover: #196420;\\n --colorSuccessText: #78dc81;\\n --colorSuccessTextActive: #1c8826;\\n --colorSuccessTextHover: #3fc146;\\n --colorText: #ffffff;\\n --colorTextSecondary: #acaeb3;\\n --colorTextTertiary: #7d8088;\\n --colorTextQuaternary: #4d525c;\\n --colorWarningActive: #9f7108;\\n --colorWarningBg: #292011;\\n --colorWarningBgHover: #40300f;\\n --colorWarningBorder: #40300f;\\n --colorWarningBorderHover: #74540b;\\n --colorWarningHover: #74540b;\\n --colorWarningText: #ca8e04;\\n --colorWarningTextActive: #9f7108;\\n --colorWarningTextHover: #e0af26;\\n --colorWhite: #ffffff;\\n --colorPurple: #a333c8;\\n // ALIAS TOKENS (just for documentation, likely not needed for theming);\\n --colorBgContainerDisabled: rgba(255, 255, 255, 0.8);\\n // --colorBgTextActive: \\t;\\n // --colorBgTextHover: \\t;\\n // --colorBorderBg: \\t;\\n // --colorErrorOutline: \\t;\\n // --colorFillAlter: \\t;\\n // --colorFillContent: \\t;\\n // --colorFillContentHover: \\t;\\n // --colorHighlight: \\t;\\n --colorIcon: rgba(255, 255, 255, 0.45);\\n // --colorIconHover: rgba(255, 255, 255, 0.88);\\n // --colorSplit: \\t;\\n // --colorTextDescription: \\t;\\n --colorTextDisabled: rgba(255, 255, 255, 0.65);\\n --colorTextHeading: #ffffff;\\n --colorTextLabel: rgba(255, 255, 255, 0.65);\\n --colorTextLightSolid: #ffffff;\\n --colorTextPlaceholder: rgba(255, 255, 255, 0.25);\\n // --colorWarningOutline: \\t;\\n // --controlItemBgActive: \\t;\\n // --controlItemBgActiveDisabled: \\t;\\n // --controlItemBgActiveHover: \\t;\\n --controlItemBgHover: rgba(255, 255, 255, 0.08);\\n // --controlOutline: \\t;\\n // --controlTmpOutline: \\t;\\n\\n // ALARM COLORS\\n --colorAlarmHighBg: #a80c0c;\\n --colorAlarmHighText: #ffffff;\\n --colorAlarmMediumBg: #57441a;\\n --colorAlarmMediumText: #fcf4e1;\\n --colorAlarmLowBg: #3e4652;\\n --colorAlarmLowText: #ffffff;\\n\\n // HEADER COLORS\\n --colorHeaderBg: #181f32;\\n --colorHeaderButtonBg: #31394b;\\n --colorHeaderButtonText: #ffffff;\\n --colorHeaderButtonBgHover: #3a4254;\\n --colorHeaderButtonBgActive: #3a4254;\\n\\n // OTHER COLORS\\n --colorUserMenuTextSecondary: #91929b;\\n --colorNavSubMenuBg: #21283a;\\n --colorSectionBorder: #171d2d;\\n --colorBoxShadow: #00000029;\\n --colorSidebarHover: rgba(77, 100, 255, 0.12);\\n --colorBoxShadowElevated: 0px 6px 16px 0px rgba(0, 0, 0, 0.32),\\n 0px 3px 6px -4px rgba(0, 0, 0, 0.48), 0px 9px 28px 8px rgba(0, 0, 0, 0.2);\\n\\n // UNIFIED COLORS\\n --unlColorMenuItemHover: #12325a;\\n --scrollShadow: rgba(255, 255, 255, 0.1);\\n --utnMenuBorder: 1px solid rgba(255, 255, 255, 0.08);\\n --utnMenuBoxShadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.24);\\n\\n // NON-COLOR STUFF\\n --styleBoxShadow: 0 1px 4px rgba(0, 0, 0, 0.4);\\n --styleBoxShadowHover: 0 1px 16px 0 rgba(0, 0, 0, 0.64);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.forgot-password-page__back-button{width:22.2857142857rem}.forgot-password-page__back-button-primary{margin-top:1.1428571429rem;width:22.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordFlow.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAIE,mCACE,sBCFsB,CDKxB,2CACE,0BAAA,CACA,sBCPsB\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.forgot-password-page {\\n &__back-button {\\n width: global.$unification-login-width;\\n }\\n\\n &__back-button-primary {\\n margin-top: common.toRem(16);\\n width: global.$unification-login-width;\\n }\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import React from 'react';\nexport const AppConfigContext = /*#__PURE__*/React.createContext({});\nconst AppContext = /*#__PURE__*/React.createContext({\n message: {},\n notification: {},\n modal: {}\n});\nexport default AppContext;","import { useCallback, useEffect, useRef } from 'react';\nexport default function useTimeoutFn(fn, ms) {\n if (ms === void 0) { ms = 0; }\n var ready = useRef(false);\n var timeout = useRef();\n var callback = useRef(fn);\n var isReady = useCallback(function () { return ready.current; }, []);\n var set = useCallback(function () {\n ready.current = false;\n timeout.current && clearTimeout(timeout.current);\n timeout.current = setTimeout(function () {\n ready.current = true;\n callback.current();\n }, ms);\n }, [ms]);\n var clear = useCallback(function () {\n ready.current = null;\n timeout.current && clearTimeout(timeout.current);\n }, []);\n // update ref when function changes\n useEffect(function () {\n callback.current = fn;\n }, [fn]);\n // set on mount, clear on unmount\n useEffect(function () {\n set();\n return clear;\n }, [ms]);\n return [isReady, clear, set];\n}\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\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","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import { dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\n\nconst METRICS_SPAN_FIELD = '_sentryMetrics';\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nfunction getMetricSummaryJsonForSpan(span) {\n const storage = (span )[METRICS_SPAN_FIELD];\n\n if (!storage) {\n return undefined;\n }\n const output = {};\n\n for (const [, [exportKey, summary]] of storage) {\n const arr = output[exportKey] || (output[exportKey] = []);\n arr.push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on a span.\n */\nfunction updateMetricSummaryOnSpan(\n span,\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const existingStorage = (span )[METRICS_SPAN_FIELD];\n const storage =\n existingStorage ||\n ((span )[METRICS_SPAN_FIELD] = new Map());\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n}\n\nexport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan };\n//# sourceMappingURL=metric-summary.js.map\n","module.exports = __webpack_public_path__ + \"cb4380c2fd4e67769f509b2be529d7b2.js\";","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// [times, realValue]\n\nvar SPLIT = '%';\n\n/** Connect key with `SPLIT` */\nexport function pathKey(keys) {\n return keys.join(SPLIT);\n}\nvar Entity = /*#__PURE__*/function () {\n function Entity(instanceId) {\n _classCallCheck(this, Entity);\n _defineProperty(this, \"instanceId\", void 0);\n /** @private Internal cache map. Do not access this directly */\n _defineProperty(this, \"cache\", new Map());\n this.instanceId = instanceId;\n }\n _createClass(Entity, [{\n key: \"get\",\n value: function get(keys) {\n return this.opGet(pathKey(keys));\n }\n\n /** A fast get cache with `get` concat. */\n }, {\n key: \"opGet\",\n value: function opGet(keyPathStr) {\n return this.cache.get(keyPathStr) || null;\n }\n }, {\n key: \"update\",\n value: function update(keys, valueFn) {\n return this.opUpdate(pathKey(keys), valueFn);\n }\n\n /** A fast get cache with `get` concat. */\n }, {\n key: \"opUpdate\",\n value: function opUpdate(keyPathStr, valueFn) {\n var prevValue = this.cache.get(keyPathStr);\n var nextValue = valueFn(prevValue);\n if (nextValue === null) {\n this.cache.delete(keyPathStr);\n } else {\n this.cache.set(keyPathStr, nextValue);\n }\n }\n }]);\n return Entity;\n}();\nexport default Entity;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import moment from 'moment';\nimport momentTimezone from 'moment-timezone';\nimport {\n DATE_TIME_WITH_SECONDS_FORMAT,\n MINIMAL_DATE_FORMAT,\n MINIMAL_TIME_FORMAT,\n TIME_WITH_SECONDS_FORMAT,\n} from 'constants/Dates';\nimport { t } from 'i18next';\nimport dayjs from 'dayjs';\nimport dayjsMinMax from 'dayjs/plugin/minMax';\nimport dayjsUtc from 'dayjs/plugin/utc';\nimport dayjsTimezone from 'dayjs/plugin/timezone';\nimport dayjsCustomParseFormat from 'dayjs/plugin/customParseFormat';\nimport dayjsQuarterOfTheYear from 'dayjs/plugin/quarterOfYear';\nimport dayOfYear from 'dayjs/plugin/dayOfYear';\n\ndayjs.extend(dayjsMinMax);\ndayjs.extend(dayjsUtc);\ndayjs.extend(dayjsTimezone);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsQuarterOfTheYear);\ndayjs.extend(dayOfYear);\n\nexport const opTime = dayjs;\n\n/**\n * combineMinimalDateTimeAndTimezone\n * @param {String} minimalDate four-digit year, two digit month, two digit days\n * ex) '2018-12-06'\n * @param {String} minimalTime (optional) two-digit hour, two digit minutes, two digit seconds\n * Defaults to '00:00:00'\n * ex) '14:00:00'\n * @param {String} timezone (optional)\n * Defaults to current timezone\n * ex) 'America/Los_Angeles'\n * @return {Moment-Timezone instance} New object created with moment(...).format(...).tz(...)\n */\nexport function combineMinimalDateTimeAndTimezone(\n minimalDate,\n minimalTime = '00:00:00',\n timezone = momentTimezone.tz.guess(),\n) {\n if (!minimalDate) {\n return null;\n }\n\n return moment.tz(`${minimalDate} ${minimalTime}`, timezone);\n}\n\nexport function separateMinimalDateTime(combinedDateAndTimeInZulu) {\n return {\n date: moment(combinedDateAndTimeInZulu).format(MINIMAL_DATE_FORMAT),\n time: moment(combinedDateAndTimeInZulu).format(MINIMAL_TIME_FORMAT),\n };\n}\n\n/**\n * getDurationSummary\n * @param {String} minimalStartDate\n * @param {String} minimalStartTime\n * @param {String} minimalEndDate\n * @param {String} minimalEndTime\n * @param {String} timezone (optional)\n * Defaults to local timezone\n * Ex: 'America/Los_Angeles'\n * @returns {String}\n * Ex: '(Spans 2 hours)'\n * '(Spans 1 hour 3 minutes)'\n * '(Spans 3 minutes)'\n * '(Must be later than start)'\n */\nexport function getDurationSummary(\n minimalStartDate,\n minimalStartTime,\n minimalEndDate,\n minimalEndTime,\n timezone = momentTimezone.tz.guess(),\n) {\n const startDate = combineMinimalDateTimeAndTimezone(\n minimalStartDate,\n minimalStartTime,\n timezone,\n );\n\n const endDate = combineMinimalDateTimeAndTimezone(\n minimalEndDate,\n minimalEndTime,\n timezone,\n );\n\n // If we went over a daylight savings time boundary, then move the endDate backwards or forwards to hide the change from the user\n const deltaOffsetInMinutes = endDate.utcOffset() - startDate.utcOffset();\n if (deltaOffsetInMinutes !== 0) {\n endDate.add(deltaOffsetInMinutes, 'minutes');\n }\n\n const duration = moment.duration(endDate.diff(startDate));\n const numAsDays = duration.asDays();\n const numHours = duration.hours();\n const numMinutes = duration.minutes();\n const numSeconds = duration.seconds();\n\n const minutesClause =\n numMinutes !== 0 ? ' ' + t('{{count}} minutes', { count: numMinutes }) : '';\n const secondsClause =\n numSeconds !== 0 ? ' ' + t('{{count}} seconds', { count: numSeconds }) : '';\n\n if (\n Math.round(numAsDays) === 1 &&\n numHours === 0 &&\n numMinutes === 0 &&\n numSeconds === 0\n ) {\n return t('(Spans 24 hours)');\n }\n\n if (endDate <= startDate) {\n return t('(Must be later than start)');\n }\n\n const daysClause =\n Math.floor(numAsDays) !== 0\n ? ' ' + t('{{count}} days', { count: Math.floor(numAsDays) })\n : '';\n const hoursClause =\n numHours !== 0 ? ' ' + t('{{count}} hours', { count: numHours }) : '';\n return `(${t(\n 'Spans',\n )}${daysClause}${hoursClause}${minutesClause}${secondsClause})`;\n}\n\nexport function getTodaysDateAsMinimalDate() {\n return moment().format(MINIMAL_DATE_FORMAT);\n}\n\nexport function convertMinimalDateToJSDate(minimalDate) {\n if (!isValidMinimalDate(minimalDate)) {\n // Return empty string to allow timeDatePickers to be empty\n return '';\n }\n\n return moment.tz(minimalDate, momentTimezone.tz.guess()).toDate();\n}\n\nexport function convertMinimalTimeToJSDate(minimalTime) {\n if (!isValidMinimalTime(minimalTime)) {\n // Return empty string to allow timeDatePickers to be empty\n return '';\n }\n\n return moment\n .tz(\n `${getTodaysDateAsMinimalDate()} ${minimalTime}`,\n momentTimezone.tz.guess(),\n )\n .toDate();\n}\n\n/**\n * isValidMinimalDate\n * @param {String} minimalDate\n * Must be in 'YYYY-MM-DD format'\n * Ex: '2018-06-05'\n * @returns {Bool} True if minimalDate is a valid date\n */\nexport function isValidMinimalDate(minimalDate) {\n return /([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))/.test(minimalDate);\n}\n\n/**\n * isValidMinimalTime\n * @param {String} minimalTime\n * Must be in 24 hour 'HH:mm:ss format'\n * Ex: '14:30:00'\n * @returns {Bool} True if minimalTime is a valid time\n */\nexport function isValidMinimalTime(minimalTime) {\n return /(?:[01]\\d|2[0123]):(?:[012345]\\d):(?:[012345]\\d)/.test(minimalTime);\n}\n\n/**\n * combineDateTime\n * @param {Date} startDate\n * @param {String} startTime (hh:mm:ss)\n */\nexport function combineDateTime(startDate, startTime) {\n const mStart = moment(startTime, TIME_WITH_SECONDS_FORMAT);\n return moment(startDate)\n .set({\n hour: mStart.get('hour'),\n minute: mStart.get('minute'),\n second: mStart.get('second'),\n })\n .toDate();\n}\n\nexport function getMonthAbbreviation(timestamp) {\n const month = moment(timestamp).format('MMM');\n\n switch (month) {\n case 'May':\n return 'May';\n\n case 'June':\n return 'June';\n\n case 'Jun':\n return 'June';\n\n default:\n return `${month}.`;\n }\n}\n\n/**\n * Ex)\n * @param {String} date represented as a string\n * @param {Bool} allowShortcuts\n * If allowShortcuts is True, returns:\n * 'Today'\n * 'Yesterday'\n * If allowShortcuts is False, returns:\n * 'June 6, 2018'\n * @returns {String}\n * Ex) 'Today' or 'June 6, 2018'\n */\nexport function getFormattedDate(timestamp, allowShortcuts, addTime) {\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(today.getDate() - 1);\n\n const currentDateString = new Date(timestamp).toDateString();\n\n if (allowShortcuts) {\n if (today.toDateString() === currentDateString) {\n return addTime ? t('Today at') : t('Today');\n }\n if (yesterday.toDateString() === currentDateString) {\n return addTime ? t('Yesterday at') : t('Yesterday');\n }\n }\n\n return `${getMonthAbbreviation(timestamp)} ${moment(timestamp).format(\n 'D, YYYY',\n )}`;\n}\n\n/**\n * Ex)\n * If allowShortcuts is True:\n * 'Today 4:42 pm PDT'\n * 'Yesterday 4:42 pm PDT'\n * If allowShortcuts is False:\n * 'June 6, 2018 4:42 pm PDT'\n *\n * @param {string} timestamp\n * @param {bool} allowShortcuts\n */\nexport function getFormattedDateAndTimeWithTimezone(timestamp, allowShortcuts) {\n return `${getFormattedDate(timestamp, allowShortcuts, true)} ${moment(\n timestamp,\n ).format(`${TIME_WITH_SECONDS_FORMAT} z`)}`;\n}\n\nexport function getFormattedDateAndTime(timestamp, allowShortcuts) {\n // if this returns Jan 1, 1970 - timestamp is likely in seconds. Multiply timestamp by 1000 to get ms.\n return `${getFormattedDate(timestamp, allowShortcuts, true)} ${moment(\n timestamp,\n ).format(TIME_WITH_SECONDS_FORMAT)}`;\n}\n\n/**\n * Ex)\n * '2017-09-05'\n *\n * @param {string} timestamp\n */\nexport function getCompactDate(timestamp) {\n return moment(timestamp).format(MINIMAL_DATE_FORMAT);\n}\n\n/**\n * Ex)\n * '2017-09-05'\n *\n * @param {string} timestamp\n */\nexport function getCompactTime(timestamp) {\n return moment(timestamp).format(TIME_WITH_SECONDS_FORMAT);\n}\n\n/**\n * Ex)\n * '2017-09-05 3:42:35 pm'\n *\n * @param {string} timestamp\n */\nexport function getCompactDateAndTime(timestamp) {\n return timestamp\n ? moment(timestamp).format(DATE_TIME_WITH_SECONDS_FORMAT)\n : null;\n}\n\n// The functions below have been created as Day.js equivalents of the original Moment.js functions.\n// We have not modified the original functions to avoid a large testing surface. These new functions\n// allow us to migrate incrementally with minimal risk. Once all instances in the codebase have been\n// migrated to these new Day.js-based functions, we will perform a mass non-functional renaming to\n// remove the '_opTime' suffix.\nexport function getCompactDate_opTime(timestamp) {\n return opTime(timestamp).format(MINIMAL_DATE_FORMAT);\n}\n\nexport function getCompactTime_opTime(timestamp) {\n return opTime(timestamp).format(TIME_WITH_SECONDS_FORMAT);\n}\n\nexport function getCompactDateAndTime_opTime(timestamp) {\n return timestamp\n ? opTime(timestamp).format(DATE_TIME_WITH_SECONDS_FORMAT)\n : null;\n}\n\nexport function dateGreaterThan(value, targetValue) {\n const valueDate = new Date(value);\n const targetValueDate = new Date(targetValue);\n\n return valueDate.getTime() > targetValueDate.getTime();\n}\n\n/**\n * @param {number} secondsFromUnixEpoch\n * @param {Partial<{timezone: string, format: string, showTimezone: boolean}>} [config]\n * @returns {string}\n */\nexport function convertSecondsToReadableDate(\n secondsFromUnixEpoch,\n {\n format = DATE_TIME_WITH_SECONDS_FORMAT,\n timezone,\n showTimezone = false,\n } = {},\n) {\n const unixTime = secondsFromUnixEpoch * 1000;\n const finalTImeZone = timezone ?? opTime.tz.guess();\n const time = showTimezone\n ? opTime(unixTime).tz(finalTImeZone).format(format)\n : opTime(unixTime).format(format);\n\n return time;\n}\n\n/**\n * subtractSecondFromTime\n * @param {String} time Ex) \"00:00:00\"\n * @returns {String} time with one second less. Ex) \"23:59:59\"\n */\nexport function subtractSecondFromTime(time) {\n try {\n return moment(`2018-02-01 ${time}`)\n .subtract(1, 's')\n .format(MINIMAL_TIME_FORMAT);\n } catch {\n return time;\n }\n}\n\nexport function subtractDayFromDate(date) {\n try {\n return moment(`${date} 00:00:00`)\n .subtract(1, 'd')\n .format(MINIMAL_DATE_FORMAT);\n } catch {\n return date;\n }\n}\n\nexport function addDayToDate(date) {\n try {\n return moment(`${date} 00:00:00`).add(1, 'd').format(MINIMAL_DATE_FORMAT);\n } catch {\n return date;\n }\n}\n\nexport function addSecondToTime(time) {\n try {\n return moment(`2018-02-01 ${time}`).add(1, 's').format(MINIMAL_TIME_FORMAT);\n } catch {\n return time;\n }\n}\n\n/**\n * roundUpDateTime\n * Source: https://stackoverflow.com/a/37685886\n * @param {Object} momentObj\n * @param {String} roundBy (\"hour\"|\"minute\"|\"second\")\n */\nexport function roundUpDateTime(momentObj, roundBy = 'minute') {\n return momentObj\n .clone()\n .subtract(1, 'millisecond')\n .add(1, roundBy)\n .startOf(roundBy);\n}\n\n/**\n * timeCompare\n * @param {String} timeA in 'HH:mm:ss' format ex) '08:40:00'\n * @param {String} timeB in 'HH:mm:ss' format ex) '08:40:00'\n * @return {Int}\n * -1 if timeA is before timeB\n * 0 if they are identical strings\n * 1 if timeA is after timeB\n */\nexport function timeCompare(timeA, timeB) {\n if (timeA === timeB) {\n return 0;\n }\n\n const ARBITRARY_DATE = '2018-01-01';\n\n return moment(`${ARBITRARY_DATE} ${timeA}`).isAfter(\n moment(`${ARBITRARY_DATE} ${timeB}`),\n )\n ? 1\n : -1;\n}\n\nexport const generateUnixFromNMinutesAgo = (n) =>\n moment().subtract(n, 'minutes').valueOf() / 1000;\n\nexport const opMoment = moment;\n\nexport const formatSecondsToClock = (seconds) => {\n if (!isFinite(seconds)) {\n console.error(`Invalid input for formatSecondsToClock: ${seconds}`);\n return null;\n }\n\n let format = 'H:mm:ss';\n if (seconds < 3600) {\n format = 'mm:ss';\n }\n if (seconds < 600) {\n format = 'm:ss';\n }\n\n return opMoment.utc(seconds * 1000).format(format);\n};\n\nexport const calculateDateRangeFromPreset = (preset) => {\n let newFormValues = {\n startDate: null,\n startTime: null,\n endDate: null,\n endTime: null,\n };\n switch (preset) {\n case 'yesterday':\n {\n const startTime = moment()\n .subtract(24, 'hours')\n .startOf('day')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(24, 'hours')\n .startOf('day')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment()\n .subtract(24, 'hours')\n .endOf('day')\n .format(MINIMAL_TIME_FORMAT);\n const endDate = moment()\n .subtract(24, 'hours')\n .endOf('day')\n .format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'lastHour':\n {\n const startTime = moment()\n .subtract(1, 'hours')\n .startOf('hour')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(1, 'hours')\n .startOf('hour')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'last4Hours':\n {\n const startTime = moment()\n .subtract(4, 'hours')\n .startOf('hour')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(4, 'hours')\n .startOf('hour')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'last12Hours':\n {\n const startTime = moment()\n .subtract(12, 'hours')\n .startOf('hour')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(12, 'hours')\n .startOf('hour')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'last24Hours':\n {\n const startTime = moment()\n .subtract(24, 'hours')\n .startOf('hour')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(24, 'hours')\n .startOf('hour')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'today':\n {\n const startTime = moment().startOf('day').format(MINIMAL_TIME_FORMAT);\n const startDate = moment().startOf('day').format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'last7Days':\n {\n const startTime = moment()\n .subtract(7, 'days')\n .startOf('day')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(7, 'days')\n .startOf('day')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'lastFullWeek':\n {\n const startTime = moment()\n .subtract(1, 'weeks')\n .startOf('week')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(1, 'weeks')\n .startOf('week')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment()\n .subtract(1, 'weeks')\n .endOf('week')\n .format(MINIMAL_TIME_FORMAT);\n const endDate = moment()\n .subtract(1, 'weeks')\n .endOf('week')\n .format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'last30Days':\n {\n const startTime = moment()\n .subtract(30, 'days')\n .startOf('day')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(30, 'days')\n .startOf('day')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment().format(MINIMAL_TIME_FORMAT);\n const endDate = moment().format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'lastFullMonth':\n {\n const startTime = moment()\n .subtract(1, 'months')\n .startOf('month')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(1, 'months')\n .startOf('month')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment()\n .subtract(1, 'months')\n .endOf('month')\n .format(MINIMAL_TIME_FORMAT);\n const endDate = moment()\n .subtract(1, 'months')\n .endOf('month')\n .format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n case 'lastFullQuarter':\n {\n const startTime = moment()\n .subtract(1, 'quarter')\n .startOf('quarter')\n .format(MINIMAL_TIME_FORMAT);\n const startDate = moment()\n .subtract(1, 'quarter')\n .startOf('quarter')\n .format(MINIMAL_DATE_FORMAT);\n const endTime = moment()\n .subtract(1, 'quarter')\n .endOf('quarter')\n .format(MINIMAL_TIME_FORMAT);\n const endDate = moment()\n .subtract(1, 'quarter')\n .endOf('quarter')\n .format(MINIMAL_DATE_FORMAT);\n\n newFormValues = {\n startDate,\n startTime,\n endDate,\n endTime,\n };\n }\n break;\n }\n\n return { ...newFormValues, derivedFromPreset: preset };\n};\n\nexport const VALID_PRESETS = [\n 'today',\n 'lastHour',\n 'last4Hours',\n 'last12Hours',\n 'last24Hours',\n 'last7Days',\n 'last30Days',\n 'yesterday',\n 'lastFullWeek',\n 'lastFullMonth',\n 'lastFullQuarter',\n];\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","module.exports = __webpack_public_path__ + \"367def81f25c0a08527f9a4e86e70c56.js\";","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar pattern = function pattern(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default pattern;","/**\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","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","module.exports = __webpack_public_path__ + \"7f9a9efc9ab681fcbf6400e2adb368a9.js\";","export default __webpack_public_path__ + \"assets/favicons/browserconfig.xml\";","import baseIsEqual from './_baseIsEqual.js';\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\nexport default isEqual;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","import * as React from 'react';\nexport default function useForceUpdate() {\n const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n return forceUpdate;\n}","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\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","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getMenuId } from \"../context/IdContext\";\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = _defineProperty(_defineProperty({}, UP, prev), DOWN, next);\n var horizontal = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, LEFT, isRtl ? next : prev), RIGHT, isRtl ? prev : next), DOWN, children), ENTER, children);\n var vertical = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, UP, prev), DOWN, next), ENTER, children), ESC, parent), LEFT, isRtl ? children : parent), RIGHT, isRtl ? parent : children);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nexport function getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport var refreshElements = function refreshElements(keys, id) {\n var elements = new Set();\n var key2element = new Map();\n var element2key = new Map();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return {\n elements: elements,\n key2element: key2element,\n element2key: element2key\n };\n};\nexport function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n var keys = getKeys();\n var refreshedElements = refreshElements(keys, id);\n var _refreshedElements = refreshedElements,\n elements = _refreshedElements.elements,\n key2element = _refreshedElements.key2element,\n element2key = _refreshedElements.element2key;\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshedElements = refreshElements(keys, id);\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.filter(function (item) {\n return item !== undefined;\n }).some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (icon === null || icon === false) {\n return null;\n }\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else if (typeof icon !== \"boolean\") {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(itemCls, \"-active\"), active), \"\".concat(itemCls, \"-selected\"), selected), \"\".concat(itemCls, \"-disabled\"), mergedDisabled), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupStyle = _ref.popupStyle,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupStyle: popupStyle,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion,\n fresh: true\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"popupStyle\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/commonUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n popupStyle = props.popupStyle,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;\n var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 || onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popupStyle: popupStyle,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n ref: ref,\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(subMenuPrefixCls, \"-open\"), open), \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n});\nvar SubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, _extends({\n ref: ref\n }, props), childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n});\nif (process.env.NODE_ENV !== 'production') {\n SubMenu.displayName = 'SubMenu';\n}\nexport default SubMenu;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n role: \"separator\",\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/commonUtil\";\nvar InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n ref: ref,\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n});\nvar MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, _extends({\n ref: ref\n }, omit(props, ['warnKey'])), childList);\n});\nif (process.env.NODE_ENV !== 'production') {\n MenuItemGroup.displayName = 'MenuItemGroup';\n}\nexport default MenuItemGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\", \"extra\"];\nimport * as React from 'react';\nimport Divider from \"../Divider\";\nimport MenuItem from \"../MenuItem\";\nimport MenuItemGroup from \"../MenuItemGroup\";\nimport SubMenu from \"../SubMenu\";\nimport { parseChildren } from \"./commonUtil\";\nfunction convertItemsToNodes(list, components, prefixCls) {\n var MergedMenuItem = components.item,\n MergedMenuItemGroup = components.group,\n MergedSubMenu = components.submenu,\n MergedDivider = components.divider;\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n extra = _ref.extra,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MergedMenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children, components, prefixCls));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(MergedSubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children, components, prefixCls));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MergedDivider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MergedMenuItem, _extends({\n key: mergedKey\n }, restProps), label, (!!extra || extra === 0) && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-extra\")\n }, extra));\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath, components, prefixCls) {\n var childNodes = children;\n var mergedComponents = _objectSpread({\n divider: Divider,\n item: MenuItem,\n group: MenuItemGroup,\n submenu: SubMenu\n }, components);\n if (items) {\n childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);\n }\n return parseChildren(childNodes, keyPath);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\", \"_internalComponents\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport { IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport { getFocusableElements, refreshElements, useAccessibility } from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n _internalComponents = _ref._internalComponents,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useMemo = React.useMemo(function () {\n return [parseItems(children, items, EMPTY_LIST, _internalComponents, prefixCls), parseItems(children, items, EMPTY_LIST, {}, prefixCls)];\n }, [children, items, _internalComponents]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n childList = _React$useMemo2[0],\n measureChildList = _React$useMemo2[1];\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo3 = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n mergedMode = _React$useMemo4[0],\n mergedInlineCollapsed = _React$useMemo4[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var keys = getKeys();\n var _refreshElements = refreshElements(keys, uuid),\n elements = _refreshElements.elements,\n key2element = _refreshElements.key2element,\n element2key = _refreshElements.element2key;\n var focusableElements = getFocusableElements(containerRef.current, elements);\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n var elementToFocus = key2element.get(shouldFocusKey);\n if (shouldFocusKey && elementToFocus) {\n var _elementToFocus$focus;\n elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 || onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), \"\".concat(prefixCls, \"-rtl\"), isRtl), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, measureChildList)))));\n});\nexport default Menu;","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","import React from 'react';\nimport { createTheme } from '@ant-design/cssinjs';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nexport const defaultTheme = createTheme(defaultDerivative);\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n override: {\n override: defaultSeedToken\n },\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);","module.exports = __webpack_public_path__ + \"cbdbd623038183a8c068dd24ecd90682.js\";","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nvar Palette = function Palette(_ref) {\n var children = _ref.children,\n style = _ref.style,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-palette\"),\n style: _objectSpread({\n position: 'relative'\n }, style)\n }, children);\n};\nexport default Palette;","module.exports = __webpack_public_path__ + \"48827a80c9c8a8b394a208065231dabb.js\";","module.exports = __webpack_public_path__ + \"283970c76db99e2d0d90f0e7c45494f9.js\";","'use strict';\n\nvar React2 = require('react');\nvar react = require('@xstate/react');\nvar xstate = require('xstate');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }\n\nvar React2__default = /*#__PURE__*/_interopDefault(React2);\n\n// src/VideoStateProvider/VideoStateProvider.tsx\nvar VideoStateContext = React2.createContext({\n sendEvent: () => {\n }\n});\nvar VideoStateContext_default = VideoStateContext;\n\n// src/stateMachine/videoStates.ts\nvar VideoStates = /* @__PURE__ */ ((VideoStates2) => {\n VideoStates2[\"DISCONNECTED\"] = \"DISCONNECTED\";\n VideoStates2[\"CONNECTING\"] = \"CONNECTING\";\n VideoStates2[\"RECONNECTING\"] = \"RECONNECTING\";\n VideoStates2[\"CONNECTED\"] = \"CONNECTED\";\n VideoStates2[\"PREVIEW\"] = \"PREVIEW\";\n VideoStates2[\"SURVEILLANCE\"] = \"SURVEILLANCE\";\n VideoStates2[\"CALL\"] = \"CALL\";\n VideoStates2[\"FAILED\"] = \"FAILED\";\n VideoStates2[\"DISCONNECTING\"] = \"DISCONNECTING\";\n return VideoStates2;\n})(VideoStates || {});\nvar humanReadableState = (state) => {\n switch (state) {\n case \"DISCONNECTING\" /* DISCONNECTING */:\n return \"Call Ending...\";\n case \"DISCONNECTED\" /* DISCONNECTED */:\n return \"Call Ended\";\n case \"CONNECTING\" /* CONNECTING */:\n return \"Connecting...\";\n case \"CONNECTED\" /* CONNECTED */:\n case \"SURVEILLANCE\" /* SURVEILLANCE */:\n case \"CALL\" /* CALL */:\n return \"Connected\";\n case \"PREVIEW\" /* PREVIEW */:\n return \"Incoming Call\";\n case \"RECONNECTING\" /* RECONNECTING */:\n return \"Reconnecting...\";\n case \"FAILED\" /* FAILED */:\n return \"Call Failed\";\n default:\n return \"\";\n }\n};\n\n// src/stateMachine/guards.ts\nvar verifyMicPermission = ({ context }) => {\n if (context.callData.deviceData.supportsIntercom) {\n return context.micPermission;\n }\n return true;\n};\n\n// src/stateMachine/events.ts\nvar VideoEvents = /* @__PURE__ */ ((VideoEvents2) => {\n VideoEvents2[\"ConnectionStart\"] = \"ConnectionStart\";\n VideoEvents2[\"ConnectionSuccessful\"] = \"ConnectionSuccessful\";\n VideoEvents2[\"ConnectionFailed\"] = \"ConnectionFailed\";\n VideoEvents2[\"MaxAttemptsUnsuccessful\"] = \"MaxAttemptsUnsuccessful\";\n VideoEvents2[\"ShouldReconnect\"] = \"ShouldReconnect\";\n VideoEvents2[\"MicPermissionEnabled\"] = \"MicPermissionEnabled\";\n VideoEvents2[\"MicPermissionDisabled\"] = \"MicPermissionDisabled\";\n VideoEvents2[\"MicEnabled\"] = \"MicEnabled\";\n VideoEvents2[\"MicDisabled\"] = \"MicDisabled\";\n VideoEvents2[\"JoinCall\"] = \"JoinCall\";\n VideoEvents2[\"StartCall\"] = \"StartCall\";\n VideoEvents2[\"EndCall\"] = \"EndCall\";\n VideoEvents2[\"IncomingCall\"] = \"IncomingCall\";\n VideoEvents2[\"VideoDetails\"] = \"VideoDetails\";\n VideoEvents2[\"StartTeardown\"] = \"StartTeardown\";\n VideoEvents2[\"TeardownCompleted\"] = \"TeardownCompleted\";\n VideoEvents2[\"UpdateCallData\"] = \"UpdateCallData\";\n VideoEvents2[\"WebRTCReconnected\"] = \"WebRTCReconnected\";\n return VideoEvents2;\n})(VideoEvents || {});\nvar ActorEvents = /* @__PURE__ */ ((ActorEvents2) => {\n ActorEvents2[\"DeviceChanged\"] = \"DeviceChanged\";\n return ActorEvents2;\n})(ActorEvents || {});\n\n// src/stateMachine/videoStateMachine.ts\nvar VIDEO_STATE_MACHINE_ID = \"videoState\";\nvar initialContext = {\n micEnabled: false,\n micPermission: false,\n callData: {\n roomData: {},\n deviceData: {},\n history: {}\n }\n};\nvar entered = (value) => console.log(\"[opvideo-state-machine]\", value, \"entered\");\nvar exited = (value) => console.log(\"[opvideo-state-machine]\", value, \"exited\");\nvar logger = ({ context, event }) => console.log(\"[opvideo-state-machine] context:\", context, \"event: \", event);\nvar videoStateMachine = xstate.setup({\n types: {\n context: {}\n },\n guards: {\n verifyMicPermission\n },\n actions: {\n resetContext: xstate.assign(initialContext),\n micEnabled: xstate.assign({\n micEnabled: true\n }),\n micDisabled: xstate.assign({\n micEnabled: false\n }),\n micPermissionEnabled: xstate.assign({\n micPermission: true\n }),\n micPermissionDisabled: xstate.assign({\n micPermission: false\n }),\n updateCallData: xstate.assign({\n callData: ({ event, context }) => {\n var _a, _b, _c, _d, _e, _f;\n const { roomData, deviceData } = event;\n const { wsUrl, token } = context.callData.roomData;\n const { opvideoDeviceId, opvideoIntercomId } = context.callData.deviceData;\n const callData = {\n roomData: {\n wsUrl: (_a = roomData == null ? void 0 : roomData.wsUrl) != null ? _a : wsUrl,\n token: (_b = roomData == null ? void 0 : roomData.token) != null ? _b : token\n },\n deviceData: {\n opvideoDeviceId: (_c = deviceData == null ? void 0 : deviceData.opvideoDeviceId) != null ? _c : opvideoDeviceId,\n opvideoIntercomId: (_d = deviceData == null ? void 0 : deviceData.opvideoIntercomId) != null ? _d : opvideoIntercomId\n },\n history: {\n opvideoDeviceId: (_e = deviceData == null ? void 0 : deviceData.opvideoDeviceId) != null ? _e : opvideoDeviceId,\n opvideoIntercomId: (_f = deviceData == null ? void 0 : deviceData.opvideoIntercomId) != null ? _f : opvideoIntercomId\n }\n };\n callData.deviceData.supportsIntercom = !!callData.deviceData.opvideoIntercomId && callData.deviceData.opvideoIntercomId > 0;\n return callData;\n }\n }),\n resetCallData: xstate.assign({\n callData: ({ context }) => {\n var _a;\n const callData = {\n roomData: {},\n deviceData: {},\n history: (_a = context.callData.deviceData) != null ? _a : context.callData.history\n };\n return callData;\n }\n }),\n notifyDeviceChanged: xstate.emit(({ event, context }) => ({\n type: \"DeviceChanged\" /* DeviceChanged */,\n deviceData: context.callData.history,\n nextValue: \"deviceData\" in event ? event.deviceData : {}\n }))\n }\n}).createMachine({\n context: initialContext,\n id: VIDEO_STATE_MACHINE_ID,\n initial: \"DISCONNECTED\" /* DISCONNECTED */,\n on: {\n [\"MicPermissionEnabled\" /* MicPermissionEnabled */]: {\n actions: \"micPermissionEnabled\"\n },\n [\"MicPermissionDisabled\" /* MicPermissionDisabled */]: {\n actions: \"micPermissionDisabled\"\n }\n },\n states: {\n [\"DISCONNECTED\" /* DISCONNECTED */]: {\n entry: [logger, () => entered(\"DISCONNECTED\" /* DISCONNECTED */)],\n exit: [logger, () => exited(\"DISCONNECTED\" /* DISCONNECTED */)],\n on: {\n [\"UpdateCallData\" /* UpdateCallData */]: {\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n },\n [\"ConnectionStart\" /* ConnectionStart */]: {\n target: \"CONNECTING\" /* CONNECTING */,\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n }\n }\n },\n [\"RECONNECTING\" /* RECONNECTING */]: {\n entry: [logger, () => entered(\"RECONNECTING\" /* RECONNECTING */)],\n exit: [logger, () => exited(\"RECONNECTING\" /* RECONNECTING */)],\n on: {\n [\"UpdateCallData\" /* UpdateCallData */]: {\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n },\n [\"ConnectionFailed\" /* ConnectionFailed */]: {\n target: \"FAILED\" /* FAILED */,\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n },\n [\"WebRTCReconnected\" /* WebRTCReconnected */]: { target: \"CONNECTED\" /* CONNECTED */ }\n }\n },\n [\"CONNECTING\" /* CONNECTING */]: {\n entry: [logger, () => entered(\"CONNECTING\" /* CONNECTING */)],\n exit: [logger, () => exited(\"CONNECTING\" /* CONNECTING */)],\n on: {\n [\"ConnectionSuccessful\" /* ConnectionSuccessful */]: { target: \"CONNECTED\" /* CONNECTED */ },\n [\"ConnectionFailed\" /* ConnectionFailed */]: { target: \"FAILED\" /* FAILED */ },\n [\"MaxAttemptsUnsuccessful\" /* MaxAttemptsUnsuccessful */]: { target: \"FAILED\" /* FAILED */ }\n }\n },\n [\"CONNECTED\" /* CONNECTED */]: {\n entry: [logger, () => entered(\"CONNECTED\" /* CONNECTED */)],\n exit: [logger, () => exited(\"CONNECTED\" /* CONNECTED */)],\n on: {\n [\"VideoDetails\" /* VideoDetails */]: {\n target: \"SURVEILLANCE\" /* SURVEILLANCE */\n },\n [\"IncomingCall\" /* IncomingCall */]: {\n target: \"PREVIEW\" /* PREVIEW */,\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n },\n [\"EndCall\" /* EndCall */]: {\n target: \"DISCONNECTING\" /* DISCONNECTING */\n }\n }\n },\n [\"PREVIEW\" /* PREVIEW */]: {\n entry: [logger, () => entered(\"PREVIEW\" /* PREVIEW */)],\n exit: [logger, () => exited(\"PREVIEW\" /* PREVIEW */)],\n on: {\n [\"JoinCall\" /* JoinCall */]: {\n target: \"CALL\" /* CALL */\n },\n [\"EndCall\" /* EndCall */]: {\n target: \"DISCONNECTING\" /* DISCONNECTING */\n },\n [\"ShouldReconnect\" /* ShouldReconnect */]: {\n target: \"RECONNECTING\" /* RECONNECTING */\n },\n [\"ConnectionFailed\" /* ConnectionFailed */]: { target: \"FAILED\" /* FAILED */ }\n }\n },\n [\"SURVEILLANCE\" /* SURVEILLANCE */]: {\n entry: [logger, () => entered(\"SURVEILLANCE\" /* SURVEILLANCE */)],\n exit: [logger, () => exited(\"SURVEILLANCE\" /* SURVEILLANCE */)],\n on: {\n [\"IncomingCall\" /* IncomingCall */]: {\n target: \"PREVIEW\" /* PREVIEW */,\n actions: [\"notifyDeviceChanged\", \"updateCallData\"]\n },\n [\"StartCall\" /* StartCall */]: {\n target: \"CALL\" /* CALL */\n },\n [\"EndCall\" /* EndCall */]: {\n target: \"DISCONNECTING\" /* DISCONNECTING */\n },\n [\"ShouldReconnect\" /* ShouldReconnect */]: {\n target: \"RECONNECTING\" /* RECONNECTING */\n },\n [\"ConnectionFailed\" /* ConnectionFailed */]: { target: \"FAILED\" /* FAILED */ }\n }\n },\n [\"CALL\" /* CALL */]: {\n entry: [\n xstate.raise({ type: \"MicEnabled\" /* MicEnabled */ }),\n logger,\n () => entered(\"CALL\" /* CALL */)\n ],\n exit: [logger, () => exited(\"CALL\" /* CALL */)],\n on: {\n [\"MicEnabled\" /* MicEnabled */]: {\n guard: \"verifyMicPermission\",\n actions: \"micEnabled\"\n },\n [\"MicDisabled\" /* MicDisabled */]: {\n actions: \"micDisabled\"\n },\n [\"MicPermissionDisabled\" /* MicPermissionDisabled */]: {\n target: \"SURVEILLANCE\" /* SURVEILLANCE */,\n actions: [\"micDisabled\"]\n },\n [\"VideoDetails\" /* VideoDetails */]: {\n target: \"SURVEILLANCE\" /* SURVEILLANCE */,\n actions: \"micDisabled\"\n },\n [\"EndCall\" /* EndCall */]: {\n target: \"DISCONNECTING\" /* DISCONNECTING */,\n actions: \"micDisabled\"\n },\n [\"ShouldReconnect\" /* ShouldReconnect */]: {\n target: \"RECONNECTING\" /* RECONNECTING */,\n actions: [\"micDisabled\", \"resetCallData\"]\n },\n [\"ConnectionFailed\" /* ConnectionFailed */]: { target: \"FAILED\" /* FAILED */ }\n }\n },\n [\"FAILED\" /* FAILED */]: {\n entry: [logger, () => entered(\"FAILED\" /* FAILED */)],\n exit: [logger, () => exited(\"FAILED\" /* FAILED */)],\n on: {\n [\"StartTeardown\" /* StartTeardown */]: { target: \"DISCONNECTING\" /* DISCONNECTING */ }\n }\n },\n [\"DISCONNECTING\" /* DISCONNECTING */]: {\n entry: [logger, () => entered(\"DISCONNECTING\" /* DISCONNECTING */)],\n exit: [logger, () => exited(\"DISCONNECTING\" /* DISCONNECTING */)],\n on: {\n [\"TeardownCompleted\" /* TeardownCompleted */]: {\n target: \"DISCONNECTED\" /* DISCONNECTED */,\n actions: \"resetContext\"\n }\n }\n }\n }\n});\nvar videoStateMachine_default = videoStateMachine;\n\n// src/stateMachine/index.ts\nvar stateMachine_default = videoStateMachine_default;\n\n// src/VideoStateProvider/VideoStateProvider.tsx\nvar VideoStateProvider = (props) => {\n const { children } = props;\n const [state, send, actor] = react.useMachine(stateMachine_default);\n const value = React2.useMemo(\n () => ({\n sendEvent: send,\n videoState: state,\n machineActor: actor\n }),\n [state, send, actor]\n );\n return /* @__PURE__ */ React2__default.default.createElement(VideoStateContext_default.Provider, { value }, children);\n};\nvar VideoStateProvider_default = VideoStateProvider;\n\n// src/VideoStateProvider/index.tsx\nvar VideoStateProvider_default2 = VideoStateProvider_default;\nvar useVideoState_default = () => {\n const context = React2.useContext(VideoStateContext_default);\n if (!context) {\n throw new Error(\"useVideoState should be used under VideoStateProvider\");\n }\n return context;\n};\n\nexports.ActorEvents = ActorEvents;\nexports.VideoEvents = VideoEvents;\nexports.VideoStateProvider = VideoStateProvider_default2;\nexports.VideoStates = VideoStates;\nexports.humanReadableState = humanReadableState;\nexports.useVideoState = useVideoState_default;\nexports.videoStateMachine = stateMachine_default;\n","ace.define(\"ace/theme/cloud9_night-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-cloud9-night .ace_gutter {\\n background: #303130;\\n color: #eee\\n}\\n\\n.ace-cloud9-night .ace_print-margin {\\n width: 1px;\\n background: #222\\n}\\n\\n.ace-cloud9-night {\\n background-color: #181818;\\n color: #EBEBEB\\n}\\n\\n.ace-cloud9-night .ace_cursor {\\n color: #9F9F9F\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_selection {\\n background: #424242\\n}\\n\\n.ace-cloud9-night.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px #000000;\\n border-radius: 2px\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_step {\\n background: rgb(102, 82, 0)\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid #888888\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_highlight {\\n border: 1px solid rgb(110, 119, 0);\\n border-bottom: 0;\\n box-shadow: inset 0 -1px rgb(110, 119, 0);\\n margin: -1px 0 0 -1px;\\n background: rgba(255, 235, 0, 0.1);\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_active-line {\\n background: #292929\\n}\\n\\n.ace-cloud9-night .ace_gutter-active-line {\\n background-color: #3D3D3D\\n}\\n\\n.ace-cloud9-night .ace_stack {\\n background-color: rgb(66, 90, 44)\\n}\\n\\n.ace-cloud9-night .ace_marker-layer .ace_selected-word {\\n border: 1px solid #888888\\n}\\n\\n.ace-cloud9-night .ace_invisible {\\n color: #343434\\n}\\n\\n.ace-cloud9-night .ace_keyword,\\n.ace-cloud9-night .ace_meta,\\n.ace-cloud9-night .ace_storage,\\n.ace-cloud9-night .ace_storage.ace_type,\\n.ace-cloud9-night .ace_support.ace_type {\\n color: #C397D8\\n}\\n\\n.ace-cloud9-night .ace_keyword.ace_operator {\\n color: #70C0B1\\n}\\n\\n.ace-cloud9-night .ace_constant.ace_character,\\n.ace-cloud9-night .ace_constant.ace_language,\\n.ace-cloud9-night .ace_constant.ace_numeric,\\n.ace-cloud9-night .ace_keyword.ace_other.ace_unit,\\n.ace-cloud9-night .ace_support.ace_constant,\\n.ace-cloud9-night .ace_variable.ace_parameter {\\n color: #E78C45\\n}\\n\\n.ace-cloud9-night .ace_constant.ace_other {\\n color: #EEEEEE\\n}\\n\\n.ace-cloud9-night .ace_invalid {\\n color: #CED2CF;\\n background-color: #DF5F5F\\n}\\n\\n.ace-cloud9-night .ace_invalid.ace_deprecated {\\n color: #CED2CF;\\n background-color: #B798BF\\n}\\n\\n.ace-cloud9-night .ace_fold {\\n background-color: #7AA6DA;\\n border-color: #DEDEDE\\n}\\n\\n.ace-cloud9-night .ace_entity.ace_name.ace_function,\\n.ace-cloud9-night .ace_support.ace_function,\\n.ace-cloud9-night .ace_variable:not(.ace_parameter),\\n.ace-cloud9-night .ace_constant:not(.ace_numeric) {\\n color: #7AA6DA\\n}\\n\\n.ace-cloud9-night .ace_support.ace_class,\\n.ace-cloud9-night .ace_support.ace_type {\\n color: #E7C547\\n}\\n\\n.ace-cloud9-night .ace_heading,\\n.ace-cloud9-night .ace_markup.ace_heading,\\n.ace-cloud9-night .ace_string {\\n color: #B9CA4A\\n}\\n\\n.ace-cloud9-night .ace_entity.ace_name.ace_tag,\\n.ace-cloud9-night .ace_entity.ace_other.ace_attribute-name,\\n.ace-cloud9-night .ace_meta.ace_tag,\\n.ace-cloud9-night .ace_string.ace_regexp,\\n.ace-cloud9-night .ace_variable {\\n color: #D54E53\\n}\\n\\n.ace-cloud9-night .ace_comment {\\n color: #969896\\n}\\n\\n.ace-cloud9-night .ace_c9searchresults.ace_keyword {\\n color: #C2C280;\\n}\\n\\n.ace-cloud9-night .ace_indent-guide {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\\n}\\n\\n.ace-cloud9-night .ace_indent-guide-active {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/cloud9_night\",[\"require\",\"exports\",\"module\",\"ace/theme/cloud9_night-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = true;\nexports.cssClass = \"ace-cloud9-night\";\nexports.cssText = require(\"./cloud9_night-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n\n}); (function() {\n ace.require([\"ace/theme/cloud9_night\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","module.exports = __webpack_public_path__ + \"29c12604c7db4a1ad67ed4d7cdb4f4ed.js\";","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport Flex from 'antd/es/flex';\n\ninterface OpFlexProps extends ComponentProps {\n testId?: string;\n}\n\nexport const OpFlex = ({\n className,\n testId = 'op-row',\n ...flexProps\n}: OpFlexProps) => {\n return (\n \n );\n};\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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\nmodule.exports = getNative;\n","//! moment-timezone.js\n//! version : 0.5.45\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.45\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tfunction closest (num, arr) {\n\t\tvar len = arr.length;\n\t\tif (num < arr[0]) {\n\t\t\treturn 0;\n\t\t} else if (len > 1 && arr[len - 1] === Infinity && num >= arr[len - 2]) {\n\t\t\treturn len - 1;\n\t\t} else if (num >= arr[len - 1]) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tvar mid;\n\t\tvar lo = 0;\n\t\tvar hi = len - 1;\n\t\twhile (hi - lo > 1) {\n\t\t\tmid = Math.floor((lo + hi) / 2);\n\t\t\tif (arr[mid] <= num) {\n\t\t\t\tlo = mid;\n\t\t\t} else {\n\t\t\t\thi = mid;\n\t\t\t}\n\t\t}\n\t\treturn hi;\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\ti = closest(target, untils);\n\t\t\tif (i >= 0) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\tlastOffset = last.offset,\n\t\t\toffsets = [last],\n\t\t\tchange, next, nextOffset, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnextOffset = new Date(startYear, i, 1).getTimezoneOffset();\n\t\t\tif (nextOffset !== lastOffset) {\n\t\t\t\t// Create OffsetAt here to avoid unnecessary abbr parsing before checking offsets\n\t\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t\tlast = next;\n\t\t\t\tlastOffset = nextOffset;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\tcheckedOffsets = {},\n\t\t\ti, j, offset, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\toffset = offsets[i].offset;\n\t\t\tif (checkedOffsets.hasOwnProperty(offset)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tguessesOffset = guesses[offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckedOffsets[offset] = true;\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tout = moment.utc.apply(null, args),\n\t\t\tzone;\n\n\t\tif (!moment.isMoment(input) && needsOffset(out) && (zone = getZone(name))) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","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 };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","module.exports = __webpack_public_path__ + \"79455ab9a6cd507f5314141cc965093a.js\";","module.exports = __webpack_public_path__ + \"0a1d9862d917663419ac2dd2e8193267.js\";","const genSpaceCompactStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n '&-block': {\n display: 'flex',\n width: '100%'\n },\n '&-vertical': {\n flexDirection: 'column'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSpaceCompactStyle;","module.exports = __webpack_public_path__ + \"328cbf598e9711b0a87c19437b02f80d.js\";","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexports.default = CaretRightOutlined;\n","module.exports = __webpack_public_path__ + \"cf3f6b1c74c72cb5d02870022dbc9f94.js\";","import { genStyleHooks } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorText,\n fontSize,\n lineHeight,\n fontFamily\n } = token;\n return {\n [componentCls]: {\n color: colorText,\n fontSize,\n lineHeight,\n fontFamily,\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n }\n };\n};\nexport const prepareComponentToken = () => ({});\n// ============================== Export ==============================\nexport default genStyleHooks('App', genBaseStyle, prepareComponentToken);","\"use client\";\n\nimport React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useMessage from '../message/useMessage';\nimport useModal from '../modal/useModal';\nimport useNotification from '../notification/useNotification';\nimport AppContext, { AppConfigContext } from './context';\nimport useStyle from './style';\nconst useApp = () => React.useContext(AppContext);\nconst App = props => {\n const {\n prefixCls: customizePrefixCls,\n children,\n className,\n rootClassName,\n message,\n notification,\n style,\n component = 'div'\n } = props;\n const {\n direction,\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('app', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const customClassName = classNames(hashId, prefixCls, className, rootClassName, cssVarCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n const appConfig = useContext(AppConfigContext);\n const mergedAppConfig = React.useMemo(() => ({\n message: Object.assign(Object.assign({}, appConfig.message), message),\n notification: Object.assign(Object.assign({}, appConfig.notification), notification)\n }), [message, notification, appConfig.message, appConfig.notification]);\n const [messageApi, messageContextHolder] = useMessage(mergedAppConfig.message);\n const [notificationApi, notificationContextHolder] = useNotification(mergedAppConfig.notification);\n const [ModalApi, ModalContextHolder] = useModal();\n const memoizedContextValue = React.useMemo(() => ({\n message: messageApi,\n notification: notificationApi,\n modal: ModalApi\n }), [messageApi, notificationApi, ModalApi]);\n // https://github.com/ant-design/ant-design/issues/48802#issuecomment-2097813526\n devUseWarning('App')(!(cssVarCls && component === false), 'usage', 'When using cssVar, ensure `component` is assigned a valid React component string.');\n // ============================ Render ============================\n const Component = component === false ? React.Fragment : component;\n const rootProps = {\n className: customClassName,\n style\n };\n return wrapCSSVar(/*#__PURE__*/React.createElement(AppContext.Provider, {\n value: memoizedContextValue\n }, /*#__PURE__*/React.createElement(AppConfigContext.Provider, {\n value: mergedAppConfig\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, component === false ? undefined : rootProps), ModalContextHolder, messageContextHolder, notificationContextHolder, children))));\n};\nif (process.env.NODE_ENV !== 'production') {\n App.displayName = 'App';\n}\nApp.useApp = useApp;\nexport default App;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useContext } from 'react';\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport warning from '../_util/warning';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nlet defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nconst ConfirmDialogWrapper = props => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n getContainer,\n direction\n } = props;\n const runtimeLocale = getConfirmLocale();\n const config = useContext(ConfigContext);\n const rootPrefixCls = getRootPrefixCls() || config.getPrefixCls();\n // because Modal.config set rootPrefixCls, which is different from other components\n const prefixCls = customizePrefixCls || `${rootPrefixCls}-modal`;\n let mergedGetContainer = getContainer;\n if (mergedGetContainer === false) {\n mergedGetContainer = undefined;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Static method not support `getContainer` to be `false` since it do not have context env.') : void 0;\n }\n }\n return /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props, {\n rootPrefixCls: rootPrefixCls,\n prefixCls: prefixCls,\n iconPrefixCls: config.iconPrefixCls,\n theme: config.theme,\n direction: direction !== null && direction !== void 0 ? direction : config.direction,\n locale: (_b = (_a = config.locale) === null || _a === void 0 ? void 0 : _a.Modal) !== null && _b !== void 0 ? _b : runtimeLocale,\n getContainer: mergedGetContainer\n }));\n};\nexport default function confirm(config) {\n const global = globalConfig();\n if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n warnContext('Modal');\n }\n const container = document.createDocumentFragment();\n let currentConfig = Object.assign(Object.assign({}, config), {\n close,\n open: true\n });\n let timeoutId;\n function destroy() {\n var _a;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const triggerCancel = args.some(param => param === null || param === void 0 ? void 0 : param.triggerCancel);\n if (triggerCancel) {\n var _a2;\n (_a = config.onCancel) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [config, () => {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (let i = 0; i < destroyFns.length; i++) {\n const fn = destroyFns[i];\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(props) {\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(() => {\n const rootPrefixCls = global.getPrefixCls(undefined, getRootPrefixCls());\n const iconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const dom = /*#__PURE__*/React.createElement(ConfirmDialogWrapper, Object.assign({}, props));\n reactRender(/*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n theme: theme\n }, global.holderRender ? global.holderRender(dom) : dom), container);\n });\n }\n function close() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = Object.assign(Object.assign({}, currentConfig), {\n open: false,\n afterClose: () => {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n // @ts-ignore\n destroy.apply(this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = Object.assign(Object.assign({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update\n };\n}\nexport function withWarn(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return Object.assign(Object.assign({}, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n let {\n rootPrefixCls\n } = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","const genCollapseMotion = token => ({\n [token.componentCls]: {\n // For common/openAnimation\n [`${token.antCls}-motion-collapse-legacy`]: {\n overflow: 'hidden',\n '&-active': {\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n },\n [`${token.antCls}-motion-collapse`]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n }\n});\nexport default genCollapseMotion;","module.exports = __webpack_public_path__ + \"02174460fe8ff6a6bc19db86543b9600.js\";","\"use client\";\n\nimport Collapse from './Collapse';\nexport default Collapse;","\"use client\";\n\nimport React from 'react';\nimport { NoFormStyle } from '../form/context';\nimport { NoCompactStyle } from '../space/Compact';\nconst ContextIsolator = props => {\n const {\n space,\n form,\n children\n } = props;\n if (children === undefined || children === null) {\n return null;\n }\n let result = children;\n if (form) {\n result = /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, result);\n }\n if (space) {\n result = /*#__PURE__*/React.createElement(NoCompactStyle, null, result);\n }\n return result;\n};\nexport default ContextIsolator;","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\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\nmodule.exports = mapCacheClear;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){\"use strict\";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf(\"day\")-n(this).startOf(\"year\"))/864e5)+1;return null==e?t:this.add(e-t,\"day\")}}}));","import React from 'react';\nimport { ReactReduxContext } from 'react-redux';\n\nconst useInjectReducers = (reducers = [], readyCallback = null) => {\n const context = React.useContext(ReactReduxContext);\n\n React.useEffect(() => {\n if (!reducers.length) {\n if (readyCallback) {\n readyCallback();\n }\n return;\n }\n\n context.store.reducerManager.add(reducers, readyCallback);\n\n return () => {\n context.store.reducerManager.remove(reducers);\n };\n }, [context.store, readyCallback, reducers]);\n};\n\nexport { useInjectReducers };\n","import {\n QueryKey,\n useQuery,\n UseQueryOptions,\n skipToken,\n} from '@tanstack/react-query';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { queryRequest } from 'utils/queryRequest';\nimport { ensurePayloadAndQuery } from 'utils/ensurePayloadAndQuery';\nimport * as Sentry from '@sentry/react';\nimport { HELIUM_LIMIT_MAX } from 'utils/constants';\n\ninterface WithParameters<\n T extends keyof Api.ClientSpec,\n SelectData = Awaited>,\n> extends Omit<\n UseQueryOptions<\n Awaited>,\n OP.ApiError,\n SelectData\n >,\n 'queryKey'\n > {\n apiEndpointName: T;\n parameters: Parameters;\n suppressErrorMessage?: boolean;\n getAll?: boolean;\n queryKey?: QueryKey;\n}\n\ninterface WithOptionalParameters<\n T extends keyof Api.ClientSpec,\n SelectData = Awaited>,\n> extends Omit<\n UseQueryOptions<\n Awaited>,\n OP.ApiError,\n SelectData\n >,\n 'queryKey'\n > {\n apiEndpointName: T;\n parameters?: Parameters;\n suppressErrorMessage?: boolean;\n getAll?: boolean;\n queryKey?: QueryKey;\n}\n\nexport type UseOpQueryOptions<\n T extends keyof Api.ClientSpec = keyof Api.ClientSpec,\n SelectData = Awaited>,\n> = Api.ClientSpec[T]['pathParams'] extends []\n ? WithOptionalParameters\n : WithParameters;\n\n// T = 'listOrgs' | 'describeUser' | ...\nexport const useOpQuery = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited>,\n>({\n apiEndpointName,\n parameters,\n suppressErrorMessage = false,\n getAll,\n queryKey = [apiEndpointName, JSON.stringify(parameters)],\n ...queryOptions\n}: UseOpQueryOptions) => {\n const { parametersArray, withQuery } = ensurePayloadAndQuery(\n apiEndpointName,\n parameters,\n );\n\n // TODO - get the language based on authenticated page logic if not in identity\n /** we first look at the identity language and set the language to that.\n * If that is not set, we then fallback to the local storage setting.\n * If that is not set, then we fallback to the browser locale.\n * And if that is not supported then we use English (en). */\n const currentIdentityLanguage = useSelector(selectCurrentIdentityLanguage());\n\n // Find the index of the queries (last object)\n const queriesIndex = parametersArray.findLastIndex(\n (param) => typeof param === 'object',\n );\n\n const queryFn = async () => {\n let result;\n\n /** When getAll is true we add a limit of 1000 and loops through calls\n * until we get all the results in the db. */\n if (getAll && withQuery) {\n let offset = 0;\n let filteredCount;\n\n if (queriesIndex === -1) {\n // ensurePayloadAndQuery guarantees the presence of a queries object, so throw since something is way off...\n throw new Error(\n `Critical: ensurePayloadAndQuery did not ensure a query object for API endpoint ${apiEndpointName}`,\n );\n }\n\n parametersArray[queriesIndex] = {\n ...(parametersArray[queriesIndex] as Record),\n limit: HELIUM_LIMIT_MAX,\n offset,\n };\n\n result = await queryRequest({\n apiEndpointName,\n parameters: parametersArray,\n currentIdentityLanguage,\n });\n\n if (result.statusCode >= 400) {\n // Not allowing to suppress error message\n throw result.json;\n }\n\n filteredCount = result?.json?.filteredCount;\n offset += HELIUM_LIMIT_MAX;\n\n while (filteredCount && offset <= filteredCount) {\n parametersArray[queriesIndex] = {\n ...(parametersArray[queriesIndex] as Record),\n limit: HELIUM_LIMIT_MAX,\n offset,\n };\n\n /** Need to disable the lint rule below as we do want to await\n * each call and act accordingly */\n // eslint-disable-next-line no-await-in-loop\n const subResult = await queryRequest({\n apiEndpointName,\n parameters: parametersArray,\n currentIdentityLanguage,\n });\n\n if (result.statusCode >= 400) {\n // Not allowing to suppress error message\n throw result.json;\n }\n\n if (\n Array.isArray(result.json.data) &&\n Array.isArray(subResult.json.data)\n ) {\n result.json.data = [...result.json.data, ...subResult.json.data];\n }\n\n filteredCount = result?.json?.filteredCount;\n offset += HELIUM_LIMIT_MAX;\n }\n\n return result;\n }\n\n /** When getAll is false we call the endpoint normally */\n result = await queryRequest({\n apiEndpointName,\n parameters: parametersArray,\n currentIdentityLanguage,\n });\n // This is for the query limits error\n if (result?.json?.errorData?.errorCode === 'H-3500') {\n Sentry.captureException(result.json.message, {\n extra: {\n apiInfo: { apiEndpointName, parametersArray },\n },\n });\n }\n\n if (result.statusCode >= 400) {\n const finalErrorObject = {\n ...result.json,\n suppressErrorMessage,\n };\n\n throw finalErrorObject;\n }\n\n return result;\n };\n\n const hasValidParams = parametersArray.every(Boolean); // The query should never run if a falsy value is passed in parameters\n\n return useQuery>, OP.ApiError, SelectData>({\n queryKey,\n queryFn: hasValidParams ? queryFn : skipToken,\n ...queryOptions,\n ...(process.env.NODE_ENV === 'development' && {\n refetchOnWindowFocus: false,\n }),\n });\n};\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","import * as React from 'react';\nexport const LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: () => null,\n removeSider: () => null\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 == null ? 0 : array.length;\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\nexport default arrayReduce;\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","module.exports = __webpack_public_path__ + \"983fccb9f00748c487e889f6c83aa367.js\";","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n _excluded2 = [\"v\"];\nimport { FastColor } from '@ant-design/fast-color';\nexport var getRoundNumber = function getRoundNumber(value) {\n return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n if (color instanceof FastColor) {\n return color;\n }\n if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n var _ref = color,\n b = _ref.b,\n resets = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, resets), {}, {\n v: b\n });\n }\n if (typeof color === 'string' && /hsb/.test(color)) {\n return color.replace(/hsb/, 'hsv');\n }\n return color;\n};\nexport var Color = /*#__PURE__*/function (_FastColor) {\n _inherits(Color, _FastColor);\n var _super = _createSuper(Color);\n function Color(color) {\n _classCallCheck(this, Color);\n return _super.call(this, convertHsb2Hsv(color));\n }\n _createClass(Color, [{\n key: \"toHsbString\",\n value: function toHsbString() {\n var hsb = this.toHsb();\n var saturation = getRoundNumber(hsb.s * 100);\n var lightness = getRoundNumber(hsb.b * 100);\n var hue = getRoundNumber(hsb.h);\n var alpha = hsb.a;\n var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n return alpha === 1 ? hsbString : hsbaString;\n }\n }, {\n key: \"toHsb\",\n value: function toHsb() {\n var _this$toHsv = this.toHsv(),\n v = _this$toHsv.v,\n resets = _objectWithoutProperties(_this$toHsv, _excluded2);\n return _objectSpread(_objectSpread({}, resets), {}, {\n b: v,\n a: this.a\n });\n }\n }]);\n return Color;\n}(FastColor);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n var currentValueRef = React.useRef(defaultValue);\n var getValue = useEvent(function () {\n return currentValueRef.current;\n });\n var setValue = useEvent(function (updater) {\n currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n forceUpdate();\n });\n return [getValue, setValue];\n}","import { format } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, source, errors, options) {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n }\n};\nexport default enumerable;","module.exports = __webpack_public_path__ + \"981bd23edacd811f9e4a583d89b544ee.js\";","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n const {\n componentCls,\n colorPrimary\n } = token;\n return {\n [componentCls]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none',\n boxSizing: 'border-box',\n color: `var(--wave-color, ${colorPrimary})`,\n boxShadow: `0 0 0 0 currentcolor`,\n opacity: 0.2,\n // =================== Motion ===================\n '&.wave-motion-appear': {\n transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n '&-active': {\n boxShadow: `0 0 0 6px currentcolor`,\n opacity: 0\n },\n '&.wave-quick': {\n transition: [`box-shadow ${token.motionDurationSlow} ${token.motionEaseInOut}`, `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`].join(',')\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","module.exports = __webpack_public_path__ + \"4e389cce6fb8f78845fab249bce43c0b.js\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","module.exports = __webpack_public_path__ + \"9fd3f255cfd09016ec7f4896bc51864c.js\";","import { isError, normalize, isPlainObject, addNonEnumerableProperty, truncate, logger } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'ExtraErrorData';\n\n/**\n * Extract additional data for from original exceptions.\n */\nconst _extraErrorDataIntegration = ((options = {}) => {\n const { depth = 3, captureErrorCause = true } = options;\n return {\n name: INTEGRATION_NAME,\n processEvent(event, hint, client) {\n const { maxValueLength = 250 } = client.getOptions();\n return _enhanceEventWithErrorData(event, hint, depth, captureErrorCause, maxValueLength);\n },\n };\n}) ;\n\nconst extraErrorDataIntegration = defineIntegration(_extraErrorDataIntegration);\n\nfunction _enhanceEventWithErrorData(\n event,\n hint = {},\n depth,\n captureErrorCause,\n maxValueLength,\n) {\n if (!hint.originalException || !isError(hint.originalException)) {\n return event;\n }\n const exceptionName = (hint.originalException ).name || hint.originalException.constructor.name;\n\n const errorData = _extractErrorData(hint.originalException , captureErrorCause, maxValueLength);\n\n if (errorData) {\n const contexts = {\n ...event.contexts,\n };\n\n const normalizedErrorData = normalize(errorData, depth);\n\n if (isPlainObject(normalizedErrorData)) {\n // We mark the error data as \"already normalized\" here, because we don't want other normalization procedures to\n // potentially truncate the data we just already normalized, with a certain depth setting.\n addNonEnumerableProperty(normalizedErrorData, '__sentry_skip_normalization__', true);\n contexts[exceptionName] = normalizedErrorData;\n }\n\n return {\n ...event,\n contexts,\n };\n }\n\n return event;\n}\n\n/**\n * Extract extra information from the Error object\n */\nfunction _extractErrorData(\n error,\n captureErrorCause,\n maxValueLength,\n) {\n // We are trying to enhance already existing event, so no harm done if it won't succeed\n try {\n const nativeKeys = [\n 'name',\n 'message',\n 'stack',\n 'line',\n 'column',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'toJSON',\n ];\n\n const extraErrorInfo = {};\n\n // We want only enumerable properties, thus `getOwnPropertyNames` is redundant here, as we filter keys anyway.\n for (const key of Object.keys(error)) {\n if (nativeKeys.indexOf(key) !== -1) {\n continue;\n }\n const value = error[key];\n extraErrorInfo[key] = isError(value) || typeof value === 'string' ? truncate(`${value}`, maxValueLength) : value;\n }\n\n // Error.cause is a standard property that is non enumerable, we therefore need to access it separately.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause\n if (captureErrorCause && error.cause !== undefined) {\n extraErrorInfo.cause = isError(error.cause) ? error.cause.toString() : error.cause;\n }\n\n // Check if someone attached `toJSON` method to grab even more properties (eg. axios is doing that)\n if (typeof error.toJSON === 'function') {\n const serializedError = error.toJSON() ;\n\n for (const key of Object.keys(serializedError)) {\n const value = serializedError[key];\n extraErrorInfo[key] = isError(value) ? value.toString() : value;\n }\n }\n\n return extraErrorInfo;\n } catch (oO) {\n DEBUG_BUILD && logger.error('Unable to extract extra data from the Error object:', oO);\n }\n\n return null;\n}\n\nexport { extraErrorDataIntegration };\n//# sourceMappingURL=extraerrordata.js.map\n","import { startTrackingWebVitals, startTrackingINP, startTrackingLongAnimationFrames, startTrackingLongTasks, startTrackingInteractions, addHistoryInstrumentationHandler, registerInpInteractionListener, addPerformanceEntries } from '@sentry-internal/browser-utils';\nimport { TRACING_DEFAULTS, registerSpanErrorInstrumentation, getClient, spanToJSON, getCurrentScope, getRootSpan, spanIsSampled, getDynamicSamplingContextFromSpan, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getActiveSpan, getIsolationScope, startIdleSpan, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '@sentry/core';\nimport { GLOBAL_OBJ, logger, propagationContextFromHeaders, browserPerformanceTimeOrigin, generatePropagationContext, getDomElement } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\n\n/* eslint-disable max-lines */\n\nconst BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n ...TRACING_DEFAULTS,\n instrumentNavigation: true,\n instrumentPageLoad: true,\n markBackgroundSpan: true,\n enableLongTask: true,\n enableLongAnimationFrame: true,\n enableInp: true,\n _experiments: {},\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library.\n *\n * We explicitly export the proper type here, as this has to be extended in some cases.\n */\nconst browserTracingIntegration = ((_options = {}) => {\n registerSpanErrorInstrumentation();\n\n const {\n enableInp,\n enableLongTask,\n enableLongAnimationFrame,\n _experiments: { enableInteractions, enableStandaloneClsSpans },\n beforeStartSpan,\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n markBackgroundSpan,\n traceFetch,\n traceXHR,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n instrumentPageLoad,\n instrumentNavigation,\n } = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n };\n\n const _collectWebVitals = startTrackingWebVitals({ recordClsStandaloneSpans: enableStandaloneClsSpans || false });\n\n if (enableInp) {\n startTrackingINP();\n }\n\n if (\n enableLongAnimationFrame &&\n GLOBAL_OBJ.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes &&\n PerformanceObserver.supportedEntryTypes.includes('long-animation-frame')\n ) {\n startTrackingLongAnimationFrames();\n } else if (enableLongTask) {\n startTrackingLongTasks();\n }\n\n if (enableInteractions) {\n startTrackingInteractions();\n }\n\n const latestRoute = {\n name: undefined,\n source: undefined,\n };\n\n /** Create routing idle transaction. */\n function _createRouteSpan(client, startSpanOptions) {\n const isPageloadTransaction = startSpanOptions.op === 'pageload';\n\n const finalStartSpanOptions = beforeStartSpan\n ? beforeStartSpan(startSpanOptions)\n : startSpanOptions;\n\n const attributes = finalStartSpanOptions.attributes || {};\n\n // If `finalStartSpanOptions.name` is different than `startSpanOptions.name`\n // it is because `beforeStartSpan` set a custom name. Therefore we set the source to 'custom'.\n if (startSpanOptions.name !== finalStartSpanOptions.name) {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'custom';\n finalStartSpanOptions.attributes = attributes;\n }\n\n latestRoute.name = finalStartSpanOptions.name;\n latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n const idleSpan = startIdleSpan(finalStartSpanOptions, {\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n // should wait for finish signal if it's a pageload transaction\n disableAutoFinish: isPageloadTransaction,\n beforeSpanEnd: span => {\n _collectWebVitals();\n addPerformanceEntries(span, { recordClsOnPageloadSpan: !enableStandaloneClsSpans });\n },\n });\n\n function emitFinish() {\n if (['interactive', 'complete'].includes(WINDOW.document.readyState)) {\n client.emit('idleSpanEnableAutoFinish', idleSpan);\n }\n }\n\n if (isPageloadTransaction && WINDOW.document) {\n WINDOW.document.addEventListener('readystatechange', () => {\n emitFinish();\n });\n\n emitFinish();\n }\n\n return idleSpan;\n }\n\n return {\n name: BROWSER_TRACING_INTEGRATION_ID,\n afterAllSetup(client) {\n let activeSpan;\n let startingUrl = WINDOW.location && WINDOW.location.href;\n\n client.on('startNavigationSpan', startSpanOptions => {\n if (getClient() !== client) {\n return;\n }\n\n if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current root span with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n\n activeSpan = _createRouteSpan(client, {\n op: 'navigation',\n ...startSpanOptions,\n });\n });\n\n client.on('startPageLoadSpan', (startSpanOptions, traceOptions = {}) => {\n if (getClient() !== client) {\n return;\n }\n\n if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n DEBUG_BUILD && logger.log(`[Tracing] Finishing current root span with op: ${spanToJSON(activeSpan).op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeSpan.end();\n }\n\n const sentryTrace = traceOptions.sentryTrace || getMetaContent('sentry-trace');\n const baggage = traceOptions.baggage || getMetaContent('baggage');\n\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n getCurrentScope().setPropagationContext(propagationContext);\n\n activeSpan = _createRouteSpan(client, {\n op: 'pageload',\n ...startSpanOptions,\n });\n });\n\n // A trace should to stay the consistent over the entire time span of one route.\n // Therefore, when the initial pageload or navigation root span ends, we update the\n // scope's propagation context to keep span-specific attributes like the `sampled` decision and\n // the dynamic sampling context valid, even after the root span has ended.\n // This ensures that the trace data is consistent for the entire duration of the route.\n client.on('spanEnd', span => {\n const op = spanToJSON(span).op;\n if (span !== getRootSpan(span) || (op !== 'navigation' && op !== 'pageload')) {\n return;\n }\n\n const scope = getCurrentScope();\n const oldPropagationContext = scope.getPropagationContext();\n\n scope.setPropagationContext({\n ...oldPropagationContext,\n sampled: oldPropagationContext.sampled !== undefined ? oldPropagationContext.sampled : spanIsSampled(span),\n dsc: oldPropagationContext.dsc || getDynamicSamplingContextFromSpan(span),\n });\n });\n\n if (WINDOW.location) {\n if (instrumentPageLoad) {\n startBrowserTracingPageLoadSpan(client, {\n name: WINDOW.location.pathname,\n // pageload should always start at timeOrigin (and needs to be in s, not ms)\n startTime: browserPerformanceTimeOrigin ? browserPerformanceTimeOrigin / 1000 : undefined,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.browser',\n },\n });\n }\n\n if (instrumentNavigation) {\n addHistoryInstrumentationHandler(({ to, from }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n startBrowserTracingNavigationSpan(client, {\n name: WINDOW.location.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.browser',\n },\n });\n }\n });\n }\n }\n\n if (markBackgroundSpan) {\n registerBackgroundTabDetection();\n }\n\n if (enableInteractions) {\n registerInteractionListener(idleTimeout, finalTimeout, childSpanTimeout, latestRoute);\n }\n\n if (enableInp) {\n registerInpInteractionListener();\n }\n\n instrumentOutgoingRequests(client, {\n traceFetch,\n traceXHR,\n tracePropagationTargets: client.getOptions().tracePropagationTargets,\n shouldCreateSpanForRequest,\n enableHTTPTimings,\n });\n },\n };\n}) ;\n\n/**\n * Manually start a page load span.\n * This will only do something if a browser tracing integration integration has been setup.\n *\n * If you provide a custom `traceOptions` object, it will be used to continue the trace\n * instead of the default behavior, which is to look it up on the tags.\n */\nfunction startBrowserTracingPageLoadSpan(\n client,\n spanOptions,\n traceOptions,\n) {\n client.emit('startPageLoadSpan', spanOptions, traceOptions);\n\n getCurrentScope().setTransactionName(spanOptions.name);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'pageload' ? span : undefined;\n}\n\n/**\n * Manually start a navigation span.\n * This will only do something if a browser tracing integration has been setup.\n */\nfunction startBrowserTracingNavigationSpan(client, spanOptions) {\n getIsolationScope().setPropagationContext(generatePropagationContext());\n getCurrentScope().setPropagationContext(generatePropagationContext());\n\n client.emit('startNavigationSpan', spanOptions);\n\n getCurrentScope().setTransactionName(spanOptions.name);\n\n const span = getActiveSpan();\n const op = span && spanToJSON(span).op;\n return op === 'navigation' ? span : undefined;\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n // Can't specify generic to `getDomElement` because tracing can be used\n // in a variety of environments, have to disable `no-unsafe-member-access`\n // as a result.\n const metaTag = getDomElement(`meta[name=${metaName}]`);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return metaTag ? metaTag.getAttribute('content') : undefined;\n}\n\n/** Start listener for interaction transactions */\nfunction registerInteractionListener(\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n latestRoute,\n) {\n let inflightInteractionSpan;\n const registerInteractionTransaction = () => {\n const op = 'ui.action.click';\n\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const currentRootSpanOp = spanToJSON(rootSpan).op;\n if (['navigation', 'pageload'].includes(currentRootSpanOp )) {\n DEBUG_BUILD &&\n logger.warn(`[Tracing] Did not create ${op} span because a pageload or navigation span is in progress.`);\n return undefined;\n }\n }\n\n if (inflightInteractionSpan) {\n inflightInteractionSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, 'interactionInterrupted');\n inflightInteractionSpan.end();\n inflightInteractionSpan = undefined;\n }\n\n if (!latestRoute.name) {\n DEBUG_BUILD && logger.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n return undefined;\n }\n\n inflightInteractionSpan = startIdleSpan(\n {\n name: latestRoute.name,\n op,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRoute.source || 'url',\n },\n },\n {\n idleTimeout,\n finalTimeout,\n childSpanTimeout,\n },\n );\n };\n\n if (WINDOW.document) {\n addEventListener('click', registerInteractionTransaction, { once: false, capture: true });\n }\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, browserTracingIntegration, getMetaContent, startBrowserTracingNavigationSpan, startBrowserTracingPageLoadSpan };\n//# sourceMappingURL=browserTracingIntegration.js.map\n","import { timestampInSeconds } from '@sentry/utils';\nimport { updateMetricSummaryOnActiveSpan } from '../utils/spanUtils.js';\nimport { DEFAULT_FLUSH_INTERVAL, SET_METRIC_TYPE, MAX_WEIGHT } from './constants.js';\nimport { captureAggregateMetrics } from './envelope.js';\nimport { METRIC_MAP } from './instance.js';\nimport { sanitizeMetricKey, sanitizeTags, sanitizeUnit, getBucketKey } from './utils.js';\n\n/**\n * A metrics aggregator that aggregates metrics in memory and flushes them periodically.\n */\nclass MetricsAggregator {\n // TODO(@anonrig): Use FinalizationRegistry to have a proper way of flushing the buckets\n // when the aggregator is garbage collected.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry\n\n // Different metrics have different weights. We use this to limit the number of metrics\n // that we store in memory.\n\n // Cast to any so that it can use Node.js timeout\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n // SDKs are required to shift the flush interval by random() * rollup_in_seconds.\n // That shift is determined once per startup to create jittering.\n\n // An SDK is required to perform force flushing ahead of scheduled time if the memory\n // pressure is too high. There is no rule for this other than that SDKs should be tracking\n // abstract aggregation complexity (eg: a counter only carries a single float, whereas a\n // distribution is a float per emission).\n //\n // Force flush is used on either shutdown, flush() or when we exceed the max weight.\n\n constructor( _client) {this._client = _client;\n this._buckets = new Map();\n this._bucketsTotalWeight = 0;\n\n this._interval = setInterval(() => this._flush(), DEFAULT_FLUSH_INTERVAL) ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (this._interval.unref) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n this._interval.unref();\n }\n\n this._flushShift = Math.floor((Math.random() * DEFAULT_FLUSH_INTERVAL) / 1000);\n this._forceFlush = false;\n }\n\n /**\n * @inheritDoc\n */\n add(\n metricType,\n unsanitizedName,\n value,\n unsanitizedUnit = 'none',\n unsanitizedTags = {},\n maybeFloatTimestamp = timestampInSeconds(),\n ) {\n const timestamp = Math.floor(maybeFloatTimestamp);\n const name = sanitizeMetricKey(unsanitizedName);\n const tags = sanitizeTags(unsanitizedTags);\n const unit = sanitizeUnit(unsanitizedUnit );\n\n const bucketKey = getBucketKey(metricType, name, unit, tags);\n\n let bucketItem = this._buckets.get(bucketKey);\n // If this is a set metric, we need to calculate the delta from the previous weight.\n const previousWeight = bucketItem && metricType === SET_METRIC_TYPE ? bucketItem.metric.weight : 0;\n\n if (bucketItem) {\n bucketItem.metric.add(value);\n // TODO(abhi): Do we need this check?\n if (bucketItem.timestamp < timestamp) {\n bucketItem.timestamp = timestamp;\n }\n } else {\n bucketItem = {\n // @ts-expect-error we don't need to narrow down the type of value here, saves bundle size.\n metric: new METRIC_MAP[metricType](value),\n timestamp,\n metricType,\n name,\n unit,\n tags,\n };\n this._buckets.set(bucketKey, bucketItem);\n }\n\n // If value is a string, it's a set metric so calculate the delta from the previous weight.\n const val = typeof value === 'string' ? bucketItem.metric.weight - previousWeight : value;\n updateMetricSummaryOnActiveSpan(metricType, name, val, unit, unsanitizedTags, bucketKey);\n\n // We need to keep track of the total weight of the buckets so that we can\n // flush them when we exceed the max weight.\n this._bucketsTotalWeight += bucketItem.metric.weight;\n\n if (this._bucketsTotalWeight >= MAX_WEIGHT) {\n this.flush();\n }\n }\n\n /**\n * Flushes the current metrics to the transport via the transport.\n */\n flush() {\n this._forceFlush = true;\n this._flush();\n }\n\n /**\n * Shuts down metrics aggregator and clears all metrics.\n */\n close() {\n this._forceFlush = true;\n clearInterval(this._interval);\n this._flush();\n }\n\n /**\n * Flushes the buckets according to the internal state of the aggregator.\n * If it is a force flush, which happens on shutdown, it will flush all buckets.\n * Otherwise, it will only flush buckets that are older than the flush interval,\n * and according to the flush shift.\n *\n * This function mutates `_forceFlush` and `_bucketsTotalWeight` properties.\n */\n _flush() {\n // TODO(@anonrig): Add Atomics for locking to avoid having force flush and regular flush\n // running at the same time.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics\n\n // This path eliminates the need for checking for timestamps since we're forcing a flush.\n // Remember to reset the flag, or it will always flush all metrics.\n if (this._forceFlush) {\n this._forceFlush = false;\n this._bucketsTotalWeight = 0;\n this._captureMetrics(this._buckets);\n this._buckets.clear();\n return;\n }\n const cutoffSeconds = Math.floor(timestampInSeconds()) - DEFAULT_FLUSH_INTERVAL / 1000 - this._flushShift;\n // TODO(@anonrig): Optimization opportunity.\n // Convert this map to an array and store key in the bucketItem.\n const flushedBuckets = new Map();\n for (const [key, bucket] of this._buckets) {\n if (bucket.timestamp <= cutoffSeconds) {\n flushedBuckets.set(key, bucket);\n this._bucketsTotalWeight -= bucket.metric.weight;\n }\n }\n\n for (const [key] of flushedBuckets) {\n this._buckets.delete(key);\n }\n\n this._captureMetrics(flushedBuckets);\n }\n\n /**\n * Only captures a subset of the buckets passed to this function.\n * @param flushedBuckets\n */\n _captureMetrics(flushedBuckets) {\n if (flushedBuckets.size > 0) {\n // TODO(@anonrig): Optimization opportunity.\n // This copy operation can be avoided if we store the key in the bucketItem.\n const buckets = Array.from(flushedBuckets).map(([, bucketItem]) => bucketItem);\n captureAggregateMetrics(this._client, buckets);\n }\n }\n}\n\nexport { MetricsAggregator };\n//# sourceMappingURL=aggregator.js.map\n","module.exports = __webpack_public_path__ + \"6c67587c2093ac3a19da9f2196e040b7.js\";","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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\nmodule.exports = cloneTypedArray;\n","'use strict'\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./react-redux.production.min.cjs')\n} else {\n module.exports = require('./react-redux.development.cjs')\n}","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\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\nmodule.exports = baseAssign;\n","module.exports = __webpack_public_path__ + \"5d312b184c1f4565f51247d3c6dbba90.js\";","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { spanToJSON } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjut a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n }\n\n // For the moment we'll obtain the DSC from the first span in the array\n // This might need to be changed if we permit sending multiple spans from\n // different segments in one envelope\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n const headers = {\n sent_at: new Date().toISOString(),\n ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const beforeSendSpan = client && client.getOptions().beforeSendSpan;\n const convertToSpanJSON = beforeSendSpan\n ? (span) => beforeSendSpan(spanToJSON(span) )\n : (span) => spanToJSON(span);\n\n const items = [];\n for (const span of spans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n\n return createEnvelope(headers, items);\n}\n\nexport { createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };","/** 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 * 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 = new 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\nmodule.exports = initCloneArray;\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar REACT_ELEMENT_TYPE_18 = Symbol.for('react.element');\nvar REACT_ELEMENT_TYPE_19 = Symbol.for('react.transitional.element');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n\n/**\n * Compatible with React 18 or 19 to check if node is a Fragment.\n */\nexport default function isFragment(object) {\n return (\n // Base object type\n object && _typeof(object) === 'object' && (\n // React Element type\n object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) &&\n // React Fragment type\n object.type === REACT_FRAGMENT_TYPE\n );\n}","module.exports = __webpack_public_path__ + \"dd6d3e34e82e105b85f3dc94c559c131.js\";","module.exports = __webpack_public_path__ + \"e4fc956693373117f057fe9914e983fc.js\";","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexports.default = LeftOutlined;\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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\nmodule.exports = baseTimes;\n","module.exports = __webpack_public_path__ + \"63596b4896732fb322ab0496b4be1e74.js\";","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","import { getWindowLocation } from 'utils/window';\n\nexport const getOpParams = () => {\n const { pathname } = getWindowLocation();\n\n const orgIdRegex = /o\\/[0-9]+/;\n\n const orgId = pathname.match(orgIdRegex)?.[0]?.split('/')[1] ?? 0;\n\n return { orgId: Number(orgId) };\n};\n","import { buildFeedbackIntegration } from '@sentry-internal/feedback';\nimport { lazyLoadIntegration } from './utils/lazyLoadIntegration.js';\n\n/**\n * An integration to add user feedback to your application,\n * while loading most of the code lazily only when it's needed.\n */\nconst feedbackAsyncIntegration = buildFeedbackIntegration({\n lazyLoadIntegration,\n});\n\nexport { feedbackAsyncIntegration };\n//# sourceMappingURL=feedbackAsync.js.map\n","import { useEffect, useState } from 'react';\nimport { isNavigator, noop, off, on } from './misc/util';\nvar useMediaDevices = function () {\n var _a = useState({}), state = _a[0], setState = _a[1];\n useEffect(function () {\n var mounted = true;\n var onChange = function () {\n navigator.mediaDevices\n .enumerateDevices()\n .then(function (devices) {\n if (mounted) {\n setState({\n devices: devices.map(function (_a) {\n var deviceId = _a.deviceId, groupId = _a.groupId, kind = _a.kind, label = _a.label;\n return ({\n deviceId: deviceId,\n groupId: groupId,\n kind: kind,\n label: label,\n });\n }),\n });\n }\n })\n .catch(noop);\n };\n on(navigator.mediaDevices, 'devicechange', onChange);\n onChange();\n return function () {\n mounted = false;\n off(navigator.mediaDevices, 'devicechange', onChange);\n };\n }, []);\n return state;\n};\nvar useMediaDevicesMock = function () { return ({}); };\nexport default isNavigator && !!navigator.mediaDevices ? useMediaDevices : useMediaDevicesMock;\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","export default function toList(candidate) {\n let skipEmpty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (skipEmpty && (candidate === undefined || candidate === null)) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}","import { ComponentProps, forwardRef } from 'react';\nimport Button from 'antd/es/button';\n\nimport './OpButton.scss';\n\ninterface OpButtonProps extends ComponentProps {\n testId?: string;\n gtm?: string;\n}\n\nexport const OpButton = forwardRef(\n (\n {\n testId = 'op-button',\n children,\n className = '',\n gtm,\n ...buttonProps\n }: OpButtonProps,\n ref,\n ) => {\n return (\n \n {children}\n \n );\n },\n);\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var env=require(\"exenv\");require(\"prop-types\");var React=require(\"react\");function _typeof(e){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var n=0;n=0;r-=1)this.handlers[r].called||(this.handlers[r].called=!0,this.handlers[r](e));for(var o=n;o>=0;o-=1)this.handlers[o].called=!1}else{(0,this.handlers[n])(e)}}},{key:\"hasHandlers\",value:function(){return this.handlers.length>0}},{key:\"removeHandlers\",value:function(t){for(var n=[],r=this.handlers.length,o=0;o0;var t=this.handlerSets.get(e);return!!t&&t.hasHandlers()}},{key:\"removeHandlers\",value:function(t,n){var r=cloneMap(this.handlerSets);if(!r.has(t))return new e(this.poolName,r);var o=r.get(t).removeHandlers(n);return o.hasHandlers()?r.set(t,o):r.delete(t),new e(this.poolName,r)}}]),e}();_defineProperty(EventPool,\"createByType\",function(e,t,n){var r=new Map;return r.set(t,new EventSet(n)),new EventPool(e,r)});var EventTarget=function(){function e(t){var n=this;_classCallCheck(this,e),_defineProperty(this,\"handlers\",new Map),_defineProperty(this,\"pools\",new Map),_defineProperty(this,\"target\",void 0),_defineProperty(this,\"createEmitter\",function(e){return function(t){n.pools.forEach(function(n){n.dispatchEvent(e,t)})}}),this.target=t}return _createClass(e,[{key:\"addHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e);this.pools.set(e,r.addHandlers(t,n))}else this.pools.set(e,EventPool.createByType(e,t,n));this.handlers.has(t)||this.addTargetHandler(t)}},{key:\"hasHandlers\",value:function(){return this.handlers.size>0}},{key:\"removeHandlers\",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e).removeHandlers(t,n);r.hasHandlers()?this.pools.set(e,r):this.pools.delete(e);var o=!1;this.pools.forEach(function(e){return o=o||e.hasHandlers(t)}),o||this.removeTargetHandler(t)}}},{key:\"addTargetHandler\",value:function(e){var t=this.createEmitter(e);this.handlers.set(e,t),this.target.addEventListener(e,t,!0)}},{key:\"removeTargetHandler\",value:function(e){this.handlers.has(e)&&(this.target.removeEventListener(e,this.handlers.get(e),!0),this.handlers.delete(e))}}]),e}(),EventStack=function(){function e(){var t=this;_classCallCheck(this,e),_defineProperty(this,\"targets\",new Map),_defineProperty(this,\"getTarget\",function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=normalizeTarget(e);if(t.targets.has(r))return t.targets.get(r);if(!n)return null;var o=new EventTarget(r);return t.targets.set(r,o),o}),_defineProperty(this,\"removeTarget\",function(e){t.targets.delete(normalizeTarget(e))})}return _createClass(e,[{key:\"sub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a;this.getTarget(o).addHandlers(s,e,normalizeHandlers(t))}}},{key:\"unsub\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?\"default\":a,i=this.getTarget(o,!1);i&&(i.removeHandlers(s,e,normalizeHandlers(t)),i.hasHandlers()||this.removeTarget(o))}}}]),e}(),instance=new EventStack,EventStack$1=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,React.PureComponent),_createClass(t,[{key:\"componentDidMount\",value:function(){this.subscribe(this.props)}},{key:\"componentDidUpdate\",value:function(e){this.unsubscribe(e),this.subscribe(this.props)}},{key:\"componentWillUnmount\",value:function(){this.unsubscribe(this.props)}},{key:\"subscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.sub(t,n,{pool:r,target:o})}},{key:\"unsubscribe\",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.unsub(t,n,{pool:r,target:o})}},{key:\"render\",value:function(){return null}}]),t}();_defineProperty(EventStack$1,\"defaultProps\",{pool:\"default\",target:\"document\"}),EventStack$1.propTypes={},exports.instance=instance,exports.default=EventStack$1;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\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\nmodule.exports = baseGetAllKeys;\n","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\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 mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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/** 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/**\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\nexport default baseIsTypedArray;\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 baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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\nexport default isTypedArray;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = canUseDom;\nfunction canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Generate bucket key from metric properties.\n */\nfunction getBucketKey(\n metricType,\n name,\n unit,\n tags,\n) {\n const stringifiedTags = Object.entries(dropUndefinedKeys(tags)).sort((a, b) => a[0].localeCompare(b[0]));\n return `${metricType}${name}${unit}${stringifiedTags}`;\n}\n\n/* eslint-disable no-bitwise */\n/**\n * Simple hash function for strings.\n */\nfunction simpleHash(s) {\n let rv = 0;\n for (let i = 0; i < s.length; i++) {\n const c = s.charCodeAt(i);\n rv = (rv << 5) - rv + c;\n rv &= rv;\n }\n return rv >>> 0;\n}\n/* eslint-enable no-bitwise */\n\n/**\n * Serialize metrics buckets into a string based on statsd format.\n *\n * Example of format:\n * metric.name@second:1:1.2|d|#a:value,b:anothervalue|T12345677\n * Segments:\n * name: metric.name\n * unit: second\n * value: [1, 1.2]\n * type of metric: d (distribution)\n * tags: { a: value, b: anothervalue }\n * timestamp: 12345677\n */\nfunction serializeMetricBuckets(metricBucketItems) {\n let out = '';\n for (const item of metricBucketItems) {\n const tagEntries = Object.entries(item.tags);\n const maybeTags = tagEntries.length > 0 ? `|#${tagEntries.map(([key, value]) => `${key}:${value}`).join(',')}` : '';\n out += `${item.name}@${item.unit}:${item.metric}|${item.metricType}${maybeTags}|T${item.timestamp}\\n`;\n }\n return out;\n}\n\n/**\n * Sanitizes units\n *\n * These Regex's are straight from the normalisation docs:\n * https://develop.sentry.dev/sdk/metrics/#normalization\n */\nfunction sanitizeUnit(unit) {\n return unit.replace(/[^\\w]+/gi, '_');\n}\n\n/**\n * Sanitizes metric keys\n *\n * These Regex's are straight from the normalisation docs:\n * https://develop.sentry.dev/sdk/metrics/#normalization\n */\nfunction sanitizeMetricKey(key) {\n return key.replace(/[^\\w\\-.]+/gi, '_');\n}\n\n/**\n * Sanitizes metric keys\n *\n * These Regex's are straight from the normalisation docs:\n * https://develop.sentry.dev/sdk/metrics/#normalization\n */\nfunction sanitizeTagKey(key) {\n return key.replace(/[^\\w\\-./]+/gi, '');\n}\n\n/**\n * These Regex's are straight from the normalisation docs:\n * https://develop.sentry.dev/sdk/metrics/#normalization\n */\nconst tagValueReplacements = [\n ['\\n', '\\\\n'],\n ['\\r', '\\\\r'],\n ['\\t', '\\\\t'],\n ['\\\\', '\\\\\\\\'],\n ['|', '\\\\u{7c}'],\n [',', '\\\\u{2c}'],\n];\n\nfunction getCharOrReplacement(input) {\n for (const [search, replacement] of tagValueReplacements) {\n if (input === search) {\n return replacement;\n }\n }\n\n return input;\n}\n\nfunction sanitizeTagValue(value) {\n return [...value].reduce((acc, char) => acc + getCharOrReplacement(char), '');\n}\n\n/**\n * Sanitizes tags.\n */\nfunction sanitizeTags(unsanitizedTags) {\n const tags = {};\n for (const key in unsanitizedTags) {\n if (Object.prototype.hasOwnProperty.call(unsanitizedTags, key)) {\n const sanitizedKey = sanitizeTagKey(key);\n tags[sanitizedKey] = sanitizeTagValue(String(unsanitizedTags[key]));\n }\n }\n return tags;\n}\n\nexport { getBucketKey, sanitizeMetricKey, sanitizeTags, sanitizeUnit, serializeMetricBuckets, simpleHash };\n//# sourceMappingURL=utils.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = require(\"react\");\nvar IconContext = /*#__PURE__*/ (0, _react.createContext)({});\nvar _default = IconContext;\n","module.exports = __webpack_public_path__ + \"cb9910e014b468ada91393696fcad206.js\";","\"use client\";\n\nimport { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport { ConfigContext } from '../config-provider';\nconst MenuDivider = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n dashed\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('menu', customizePrefixCls);\n const classString = classNames({\n [`${prefixCls}-item-divider-dashed`]: !!dashed\n }, className);\n return /*#__PURE__*/React.createElement(Divider, Object.assign({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport { cloneElement } from '../_util/reactNode';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n var _a;\n const {\n className,\n children,\n icon,\n title,\n danger\n } = props;\n const {\n prefixCls,\n firstLevel,\n direction,\n disableMenuItemTitleTooltip,\n inlineCollapsed: isInlineCollapsed\n } = React.useContext(MenuContext);\n const renderItemChildren = inlineCollapsed => {\n const label = children === null || children === void 0 ? void 0 : children[0];\n const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || /*#__PURE__*/React.isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof label === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, label.charAt(0));\n }\n }\n return wrapNode;\n };\n const {\n siderCollapsed\n } = React.useContext(SiderContext);\n let tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n const tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !isInlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n const childrenLength = toArray(children).length;\n let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n className: classNames({\n [`${prefixCls}-item-danger`]: danger,\n [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n }, className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), renderItemChildren(isInlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: `${prefixCls}-inline-collapsed-tooltip`\n }), returnNode);\n }\n return returnNode;\n};\nexport default MenuItem;","import { unit } from '@ant-design/cssinjs';\nconst getHorizontalStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n horizontalLineHeight,\n colorSplit,\n lineWidth,\n lineType,\n itemPaddingInline\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n lineHeight: horizontalLineHeight,\n border: 0,\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n boxShadow: 'none',\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n content: '\"\\\\20\"'\n },\n // ======================= Item =======================\n [`${componentCls}-item, ${componentCls}-submenu`]: {\n position: 'relative',\n display: 'inline-block',\n verticalAlign: 'bottom',\n paddingInline: itemPaddingInline\n },\n [`> ${componentCls}-item:hover,\n > ${componentCls}-item-active,\n > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n },\n // ===================== Sub Menu =====================\n [`${componentCls}-submenu-arrow`]: {\n display: 'none'\n }\n }\n };\n};\nexport default getHorizontalStyle;","import { unit } from '@ant-design/cssinjs';\nconst getRTLStyle = _ref => {\n let {\n componentCls,\n menuArrowOffset,\n calc\n } = _ref;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-submenu-rtl`]: {\n transformOrigin: '100% 0'\n },\n // Vertical Arrow\n [`${componentCls}-rtl${componentCls}-vertical,\n ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n [`${componentCls}-submenu-arrow`]: {\n '&::before': {\n transform: `rotate(-45deg) translateY(${unit(calc(menuArrowOffset).mul(-1).equal())})`\n },\n '&::after': {\n transform: `rotate(45deg) translateY(${unit(menuArrowOffset)})`\n }\n }\n }\n };\n};\nexport default getRTLStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n const {\n componentCls,\n itemColor,\n itemSelectedColor,\n groupTitleColor,\n itemBg,\n subMenuItemBg,\n itemSelectedBg,\n activeBarHeight,\n activeBarWidth,\n activeBarBorderWidth,\n motionDurationSlow,\n motionEaseInOut,\n motionEaseOut,\n itemPaddingInline,\n motionDurationMid,\n itemHoverColor,\n lineType,\n colorSplit,\n // Disabled\n itemDisabledColor,\n // Danger\n dangerItemColor,\n dangerItemHoverColor,\n dangerItemSelectedColor,\n dangerItemActiveBg,\n dangerItemSelectedBg,\n // Bg\n popupBg,\n itemHoverBg,\n itemActiveBg,\n menuSubMenuBg,\n // Horizontal\n horizontalItemSelectedColor,\n horizontalItemSelectedBg,\n horizontalItemBorderRadius,\n horizontalItemHoverBg\n } = token;\n return {\n [`${componentCls}-${themeSuffix}, ${componentCls}-${themeSuffix} > ${componentCls}`]: {\n color: itemColor,\n background: itemBg,\n [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n // ======================== Item ========================\n [`${componentCls}-item-group-title`]: {\n color: groupTitleColor\n },\n [`${componentCls}-submenu-selected`]: {\n [`> ${componentCls}-submenu-title`]: {\n color: itemSelectedColor\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n color: itemColor,\n [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n },\n // Disabled\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n color: `${itemDisabledColor} !important`\n },\n // Hover\n [`${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n [`&:hover, > ${componentCls}-submenu-title:hover`]: {\n color: itemHoverColor\n }\n },\n [`&:not(${componentCls}-horizontal)`]: {\n [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n '&:hover': {\n backgroundColor: itemHoverBg\n },\n '&:active': {\n backgroundColor: itemActiveBg\n }\n },\n [`${componentCls}-submenu-title`]: {\n '&:hover': {\n backgroundColor: itemHoverBg\n },\n '&:active': {\n backgroundColor: itemActiveBg\n }\n }\n },\n // Danger - only Item has\n [`${componentCls}-item-danger`]: {\n color: dangerItemColor,\n [`&${componentCls}-item:hover`]: {\n [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n color: dangerItemHoverColor\n }\n },\n [`&${componentCls}-item:active`]: {\n background: dangerItemActiveBg\n }\n },\n [`${componentCls}-item a`]: {\n '&, &:hover': {\n color: 'inherit'\n }\n },\n [`${componentCls}-item-selected`]: {\n color: itemSelectedColor,\n // Danger\n [`&${componentCls}-item-danger`]: {\n color: dangerItemSelectedColor\n },\n 'a, a:hover': {\n color: 'inherit'\n }\n },\n [`& ${componentCls}-item-selected`]: {\n backgroundColor: itemSelectedBg,\n // Danger\n [`&${componentCls}-item-danger`]: {\n backgroundColor: dangerItemSelectedBg\n }\n },\n [`&${componentCls}-submenu > ${componentCls}`]: {\n backgroundColor: menuSubMenuBg\n },\n // ===== 设置浮层的颜色 =======\n // !dark 模式会被popupBg 会被rest 为 darkPopupBg\n [`&${componentCls}-popup > ${componentCls}`]: {\n backgroundColor: popupBg\n },\n [`&${componentCls}-submenu-popup > ${componentCls}`]: {\n backgroundColor: popupBg\n },\n // ===== 设置浮层的颜色 end =======\n // ====================== Horizontal ======================\n [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n borderBottom: 0\n } : {}), {\n [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n top: activeBarBorderWidth,\n marginTop: token.calc(activeBarBorderWidth).mul(-1).equal(),\n marginBottom: 0,\n borderRadius: horizontalItemBorderRadius,\n '&::after': {\n position: 'absolute',\n insetInline: itemPaddingInline,\n bottom: 0,\n borderBottom: `${unit(activeBarHeight)} solid transparent`,\n transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n content: '\"\"'\n },\n '&:hover, &-active, &-open': {\n background: horizontalItemHoverBg,\n '&::after': {\n borderBottomWidth: activeBarHeight,\n borderBottomColor: horizontalItemSelectedColor\n }\n },\n '&-selected': {\n color: horizontalItemSelectedColor,\n backgroundColor: horizontalItemSelectedBg,\n '&:hover': {\n backgroundColor: horizontalItemSelectedBg\n },\n '&::after': {\n borderBottomWidth: activeBarHeight,\n borderBottomColor: horizontalItemSelectedColor\n }\n }\n }\n }),\n // ================== Inline & Vertical ===================\n //\n [`&${componentCls}-root`]: {\n [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n borderInlineEnd: `${unit(activeBarBorderWidth)} ${lineType} ${colorSplit}`\n }\n },\n // ======================== Inline ========================\n [`&${componentCls}-inline`]: {\n // Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n background: subMenuItemBg\n },\n [`${componentCls}-item`]: {\n position: 'relative',\n '&::after': {\n position: 'absolute',\n insetBlock: 0,\n insetInlineEnd: 0,\n borderInlineEnd: `${unit(activeBarWidth)} solid ${itemSelectedColor}`,\n transform: 'scaleY(0.0001)',\n opacity: 0,\n transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n content: '\"\"'\n },\n // Danger\n [`&${componentCls}-item-danger`]: {\n '&::after': {\n borderInlineEndColor: dangerItemSelectedColor\n }\n }\n },\n [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n '&::after': {\n transform: 'scaleY(1)',\n opacity: 1,\n transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n }\n }\n }\n }\n };\n};\nexport default getThemeStyle;","import { unit } from '@ant-design/cssinjs';\nimport { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n const {\n componentCls,\n itemHeight,\n itemMarginInline,\n padding,\n menuArrowSize,\n marginXS,\n itemMarginBlock,\n itemWidth,\n itemPaddingInline\n } = token;\n const paddingWithArrow = token.calc(menuArrowSize).add(padding).add(marginXS).equal();\n return {\n [`${componentCls}-item`]: {\n position: 'relative',\n overflow: 'hidden'\n },\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n height: itemHeight,\n lineHeight: unit(itemHeight),\n paddingInline: itemPaddingInline,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginInline: itemMarginInline,\n marginBlock: itemMarginBlock,\n width: itemWidth\n },\n [`> ${componentCls}-item,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n height: itemHeight,\n lineHeight: unit(itemHeight)\n },\n [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n ${componentCls}-submenu-title`]: {\n paddingInlineEnd: paddingWithArrow\n }\n };\n};\nconst getVerticalStyle = token => {\n const {\n componentCls,\n iconCls,\n itemHeight,\n colorTextLightSolid,\n dropdownWidth,\n controlHeightLG,\n motionEaseOut,\n paddingXL,\n itemMarginInline,\n fontSizeLG,\n motionDurationFast,\n motionDurationSlow,\n paddingXS,\n boxShadowSecondary,\n collapsedWidth,\n collapsedIconSize\n } = token;\n const inlineItemStyle = {\n height: itemHeight,\n lineHeight: unit(itemHeight),\n listStylePosition: 'inside',\n listStyleType: 'disc'\n };\n return [{\n [componentCls]: {\n '&-inline, &-vertical': Object.assign({\n [`&${componentCls}-root`]: {\n boxShadow: 'none'\n }\n }, getVerticalInlineStyle(token))\n },\n [`${componentCls}-submenu-popup`]: {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n boxShadow: boxShadowSecondary\n })\n }\n },\n // Vertical only\n {\n [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n minWidth: dropdownWidth,\n maxHeight: `calc(100vh - ${unit(token.calc(controlHeightLG).mul(2.5).equal())})`,\n padding: '0',\n overflow: 'hidden',\n borderInlineEnd: 0,\n // https://github.com/ant-design/ant-design/issues/22244\n // https://github.com/ant-design/ant-design/issues/26812\n \"&:not([class*='-active'])\": {\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n },\n // Inline Only\n {\n [`${componentCls}-inline`]: {\n width: '100%',\n // Motion enhance for first level\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n display: 'flex',\n alignItems: 'center',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationFast} ${motionEaseOut}`].join(','),\n [`> ${componentCls}-title-content`]: {\n flex: 'auto',\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n '> *': {\n flex: 'none'\n }\n }\n },\n // >>>>> Sub\n [`${componentCls}-sub${componentCls}-inline`]: {\n padding: 0,\n border: 0,\n borderRadius: 0,\n boxShadow: 'none',\n [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n [`& ${componentCls}-item-group-title`]: {\n paddingInlineStart: paddingXL\n }\n },\n // >>>>> Item\n [`${componentCls}-item`]: inlineItemStyle\n }\n },\n // Inline Collapse Only\n {\n [`${componentCls}-inline-collapsed`]: {\n width: collapsedWidth,\n [`&${componentCls}-root`]: {\n [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n [`> ${componentCls}-inline-collapsed-noicon`]: {\n fontSize: fontSizeLG,\n textAlign: 'center'\n }\n }\n },\n [`> ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n insetInlineStart: 0,\n paddingInline: `calc(50% - ${unit(token.calc(fontSizeLG).div(2).equal())} - ${unit(itemMarginInline)})`,\n textOverflow: 'clip',\n [`\n ${componentCls}-submenu-arrow,\n ${componentCls}-submenu-expand-icon\n `]: {\n opacity: 0\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n margin: 0,\n fontSize: collapsedIconSize,\n lineHeight: unit(itemHeight),\n '+ span': {\n display: 'inline-block',\n opacity: 0\n }\n }\n },\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'inline-block'\n },\n '&-tooltip': {\n pointerEvents: 'none',\n [`${componentCls}-item-icon, ${iconCls}`]: {\n display: 'none'\n },\n 'a, a:hover': {\n color: colorTextLightSolid\n }\n },\n [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n paddingInline: paddingXS\n })\n }\n }];\n};\nexport default getVerticalStyle;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nconst genMenuItemStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n motionEaseOut,\n iconCls,\n iconSize,\n iconMarginInlineEnd\n } = token;\n return {\n // >>>>> Item\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n position: 'relative',\n display: 'block',\n margin: 0,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding calc(${motionDurationSlow} + 0.1s) ${motionEaseInOut}`].join(','),\n [`${componentCls}-item-icon, ${iconCls}`]: {\n minWidth: iconSize,\n fontSize: iconSize,\n transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n '+ span': {\n marginInlineStart: iconMarginInlineEnd,\n opacity: 1,\n transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n }\n },\n [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n [`&${componentCls}-item-only-child`]: {\n [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n marginInlineEnd: 0\n }\n }\n },\n // Disabled state sets text to gray and nukes hover/tab effects\n [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n background: 'none !important',\n cursor: 'not-allowed',\n '&::after': {\n borderColor: 'transparent !important'\n },\n a: {\n color: 'inherit !important'\n },\n [`> ${componentCls}-submenu-title`]: {\n color: 'inherit !important',\n cursor: 'not-allowed'\n }\n }\n };\n};\nconst genSubMenuArrowStyle = token => {\n const {\n componentCls,\n motionDurationSlow,\n motionEaseInOut,\n borderRadius,\n menuArrowSize,\n menuArrowOffset\n } = token;\n return {\n [`${componentCls}-submenu`]: {\n '&-expand-icon, &-arrow': {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: token.margin,\n width: menuArrowSize,\n color: 'currentcolor',\n transform: 'translateY(-50%)',\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n },\n '&-arrow': {\n // →\n '&::before, &::after': {\n position: 'absolute',\n width: token.calc(menuArrowSize).mul(0.6).equal(),\n height: token.calc(menuArrowSize).mul(0.15).equal(),\n backgroundColor: 'currentcolor',\n borderRadius,\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n content: '\"\"'\n },\n '&::before': {\n transform: `rotate(45deg) translateY(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n },\n '&::after': {\n transform: `rotate(-45deg) translateY(${unit(menuArrowOffset)})`\n }\n }\n }\n };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n const {\n antCls,\n componentCls,\n fontSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOut,\n paddingXS,\n padding,\n colorSplit,\n lineWidth,\n zIndexPopup,\n borderRadiusLG,\n subMenuItemBorderRadius,\n menuArrowSize,\n menuArrowOffset,\n lineType,\n groupTitleLineHeight,\n groupTitleFontSize\n } = token;\n return [\n // Misc\n {\n '': {\n [componentCls]: Object.assign(Object.assign({}, clearFix()), {\n // Hidden\n '&-hidden': {\n display: 'none'\n }\n })\n },\n [`${componentCls}-submenu-hidden`]: {\n display: 'none'\n }\n }, {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n marginBottom: 0,\n paddingInlineStart: 0,\n // Override default ul/ol\n fontSize,\n lineHeight: 0,\n listStyle: 'none',\n outline: 'none',\n // Magic cubic here but smooth transition\n transition: `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`,\n 'ul, ol': {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n // Overflow ellipsis\n '&-overflow': {\n display: 'flex',\n [`${componentCls}-item`]: {\n flex: 'none'\n }\n },\n [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n borderRadius: token.itemBorderRadius\n },\n [`${componentCls}-item-group-title`]: {\n padding: `${unit(paddingXS)} ${unit(padding)}`,\n fontSize: groupTitleFontSize,\n lineHeight: groupTitleLineHeight,\n transition: `all ${motionDurationSlow}`\n },\n [`&-horizontal ${componentCls}-submenu`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-submenu ${componentCls}-sub`]: {\n cursor: 'initial',\n transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n },\n [`${componentCls}-title-content`]: {\n display: 'inline-flex',\n alignItems: 'center',\n transition: `color ${motionDurationSlow}`,\n '> a:first-child': {\n flexGrow: 1\n },\n // https://github.com/ant-design/ant-design/issues/41143\n [`> ${antCls}-typography-ellipsis-single-line`]: {\n display: 'inline',\n verticalAlign: 'unset'\n },\n [`${componentCls}-item-extra`]: {\n marginInlineStart: 'auto',\n paddingInlineStart: token.padding,\n fontSize: token.fontSizeSM,\n color: token.colorTextDescription\n }\n },\n [`${componentCls}-item a`]: {\n '&::before': {\n position: 'absolute',\n inset: 0,\n backgroundColor: 'transparent',\n content: '\"\"'\n }\n },\n // Removed a Badge related style seems it's safe\n // https://github.com/ant-design/ant-design/issues/19809\n // >>>>> Divider\n [`${componentCls}-item-divider`]: {\n overflow: 'hidden',\n lineHeight: 0,\n borderColor: colorSplit,\n borderStyle: lineType,\n borderWidth: 0,\n borderTopWidth: lineWidth,\n marginBlock: lineWidth,\n padding: 0,\n '&-dashed': {\n borderStyle: 'dashed'\n }\n }\n }), genMenuItemStyle(token)), {\n [`${componentCls}-item-group`]: {\n [`${componentCls}-item-group-list`]: {\n margin: 0,\n padding: 0,\n [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n paddingInline: `${unit(token.calc(fontSize).mul(2).equal())} ${unit(padding)}`\n }\n }\n },\n // ======================= Sub Menu =======================\n '&-submenu': {\n '&-popup': {\n position: 'absolute',\n zIndex: zIndexPopup,\n borderRadius: borderRadiusLG,\n boxShadow: 'none',\n transformOrigin: '0 0',\n [`&${componentCls}-submenu`]: {\n background: 'transparent'\n },\n // https://github.com/ant-design/ant-design/issues/13955\n '&::before': {\n position: 'absolute',\n inset: 0,\n zIndex: -1,\n width: '100%',\n height: '100%',\n opacity: 0,\n content: '\"\"'\n },\n [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n borderRadius: borderRadiusLG\n }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n borderRadius: subMenuItemBorderRadius\n },\n [`${componentCls}-submenu-title::after`]: {\n transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n }\n })\n },\n [`\n &-placement-leftTop,\n &-placement-bottomRight,\n `]: {\n transformOrigin: '100% 0'\n },\n [`\n &-placement-leftBottom,\n &-placement-topRight,\n `]: {\n transformOrigin: '100% 100%'\n },\n [`\n &-placement-rightBottom,\n &-placement-topLeft,\n `]: {\n transformOrigin: '0 100%'\n },\n [`\n &-placement-bottomLeft,\n &-placement-rightTop,\n `]: {\n transformOrigin: '0 0'\n },\n [`\n &-placement-leftTop,\n &-placement-leftBottom\n `]: {\n paddingInlineEnd: token.paddingXS\n },\n [`\n &-placement-rightTop,\n &-placement-rightBottom\n `]: {\n paddingInlineStart: token.paddingXS\n },\n [`\n &-placement-topRight,\n &-placement-topLeft\n `]: {\n paddingBottom: token.paddingXS\n },\n [`\n &-placement-bottomRight,\n &-placement-bottomLeft\n `]: {\n paddingTop: token.paddingXS\n }\n }\n }), genSubMenuArrowStyle(token)), {\n [`&-inline-collapsed ${componentCls}-submenu-arrow,\n &-inline ${componentCls}-submenu-arrow`]: {\n // ↓\n '&::before': {\n transform: `rotate(-45deg) translateX(${unit(menuArrowOffset)})`\n },\n '&::after': {\n transform: `rotate(45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n }\n },\n [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n // ↑\n transform: `translateY(${unit(token.calc(menuArrowSize).mul(0.2).mul(-1).equal())})`,\n '&::after': {\n transform: `rotate(-45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n },\n '&::before': {\n transform: `rotate(45deg) translateX(${unit(menuArrowOffset)})`\n }\n }\n })\n },\n // Integration with header element so menu items have the same height\n {\n [`${antCls}-layout-header`]: {\n [componentCls]: {\n lineHeight: 'inherit'\n }\n }\n }];\n};\nexport const prepareComponentToken = token => {\n var _a, _b, _c;\n const {\n colorPrimary,\n colorError,\n colorTextDisabled,\n colorErrorBg,\n colorText,\n colorTextDescription,\n colorBgContainer,\n colorFillAlter,\n colorFillContent,\n lineWidth,\n lineWidthBold,\n controlItemBgActive,\n colorBgTextHover,\n controlHeightLG,\n lineHeight,\n colorBgElevated,\n marginXXS,\n padding,\n fontSize,\n controlHeightSM,\n fontSizeLG,\n colorTextLightSolid,\n colorErrorHover\n } = token;\n const activeBarWidth = (_a = token.activeBarWidth) !== null && _a !== void 0 ? _a : 0;\n const activeBarBorderWidth = (_b = token.activeBarBorderWidth) !== null && _b !== void 0 ? _b : lineWidth;\n const itemMarginInline = (_c = token.itemMarginInline) !== null && _c !== void 0 ? _c : token.marginXXS;\n const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n return {\n dropdownWidth: 160,\n zIndexPopup: token.zIndexPopupBase + 50,\n radiusItem: token.borderRadiusLG,\n itemBorderRadius: token.borderRadiusLG,\n radiusSubMenuItem: token.borderRadiusSM,\n subMenuItemBorderRadius: token.borderRadiusSM,\n colorItemText: colorText,\n itemColor: colorText,\n colorItemTextHover: colorText,\n itemHoverColor: colorText,\n colorItemTextHoverHorizontal: colorPrimary,\n horizontalItemHoverColor: colorPrimary,\n colorGroupTitle: colorTextDescription,\n groupTitleColor: colorTextDescription,\n colorItemTextSelected: colorPrimary,\n itemSelectedColor: colorPrimary,\n colorItemTextSelectedHorizontal: colorPrimary,\n horizontalItemSelectedColor: colorPrimary,\n colorItemBg: colorBgContainer,\n itemBg: colorBgContainer,\n colorItemBgHover: colorBgTextHover,\n itemHoverBg: colorBgTextHover,\n colorItemBgActive: colorFillContent,\n itemActiveBg: controlItemBgActive,\n colorSubItemBg: colorFillAlter,\n subMenuItemBg: colorFillAlter,\n colorItemBgSelected: controlItemBgActive,\n itemSelectedBg: controlItemBgActive,\n colorItemBgSelectedHorizontal: 'transparent',\n horizontalItemSelectedBg: 'transparent',\n colorActiveBarWidth: 0,\n activeBarWidth,\n colorActiveBarHeight: lineWidthBold,\n activeBarHeight: lineWidthBold,\n colorActiveBarBorderSize: lineWidth,\n activeBarBorderWidth,\n // Disabled\n colorItemTextDisabled: colorTextDisabled,\n itemDisabledColor: colorTextDisabled,\n // Danger\n colorDangerItemText: colorError,\n dangerItemColor: colorError,\n colorDangerItemTextHover: colorError,\n dangerItemHoverColor: colorError,\n colorDangerItemTextSelected: colorError,\n dangerItemSelectedColor: colorError,\n colorDangerItemBgActive: colorErrorBg,\n dangerItemActiveBg: colorErrorBg,\n colorDangerItemBgSelected: colorErrorBg,\n dangerItemSelectedBg: colorErrorBg,\n itemMarginInline,\n horizontalItemBorderRadius: 0,\n horizontalItemHoverBg: 'transparent',\n itemHeight: controlHeightLG,\n groupTitleLineHeight: lineHeight,\n collapsedWidth: controlHeightLG * 2,\n popupBg: colorBgElevated,\n itemMarginBlock: marginXXS,\n itemPaddingInline: padding,\n horizontalLineHeight: `${controlHeightLG * 1.15}px`,\n iconSize: fontSize,\n iconMarginInlineEnd: controlHeightSM - fontSize,\n collapsedIconSize: fontSizeLG,\n groupTitleFontSize: fontSize,\n // Disabled\n darkItemDisabledColor: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n // Dark\n darkItemColor: colorTextDark,\n darkDangerItemColor: colorError,\n darkItemBg: '#001529',\n darkPopupBg: '#001529',\n darkSubMenuItemBg: '#000c17',\n darkItemSelectedColor: colorTextLightSolid,\n darkItemSelectedBg: colorPrimary,\n darkDangerItemSelectedBg: colorError,\n darkItemHoverBg: 'transparent',\n darkGroupTitleColor: colorTextDark,\n darkItemHoverColor: colorTextLightSolid,\n darkDangerItemHoverColor: colorErrorHover,\n darkDangerItemSelectedColor: colorTextLightSolid,\n darkDangerItemActiveBg: colorError,\n // internal\n itemWidth: activeBarWidth ? `calc(100% + ${activeBarBorderWidth}px)` : `calc(100% - ${itemMarginInline * 2}px)`\n };\n};\n// ============================== Export ==============================\nexport default (function (prefixCls) {\n let rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n let injectStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const useStyle = genStyleHooks('Menu', token => {\n const {\n colorBgElevated,\n controlHeightLG,\n fontSize,\n darkItemColor,\n darkDangerItemColor,\n darkItemBg,\n darkSubMenuItemBg,\n darkItemSelectedColor,\n darkItemSelectedBg,\n darkDangerItemSelectedBg,\n darkItemHoverBg,\n darkGroupTitleColor,\n darkItemHoverColor,\n darkItemDisabledColor,\n darkDangerItemHoverColor,\n darkDangerItemSelectedColor,\n darkDangerItemActiveBg,\n popupBg,\n darkPopupBg\n } = token;\n const menuArrowSize = token.calc(fontSize).div(7).mul(5).equal();\n // Menu Token\n const menuToken = mergeToken(token, {\n menuArrowSize,\n menuHorizontalHeight: token.calc(controlHeightLG).mul(1.15).equal(),\n menuArrowOffset: token.calc(menuArrowSize).mul(0.25).equal(),\n menuSubMenuBg: colorBgElevated,\n calc: token.calc,\n popupBg\n });\n const menuDarkToken = mergeToken(menuToken, {\n itemColor: darkItemColor,\n itemHoverColor: darkItemHoverColor,\n groupTitleColor: darkGroupTitleColor,\n itemSelectedColor: darkItemSelectedColor,\n itemBg: darkItemBg,\n popupBg: darkPopupBg,\n subMenuItemBg: darkSubMenuItemBg,\n itemActiveBg: 'transparent',\n itemSelectedBg: darkItemSelectedBg,\n activeBarHeight: 0,\n activeBarBorderWidth: 0,\n itemHoverBg: darkItemHoverBg,\n // Disabled\n itemDisabledColor: darkItemDisabledColor,\n // Danger\n dangerItemColor: darkDangerItemColor,\n dangerItemHoverColor: darkDangerItemHoverColor,\n dangerItemSelectedColor: darkDangerItemSelectedColor,\n dangerItemActiveBg: darkDangerItemActiveBg,\n dangerItemSelectedBg: darkDangerItemSelectedBg,\n menuSubMenuBg: darkSubMenuItemBg,\n // Horizontal\n horizontalItemSelectedColor: darkItemSelectedColor,\n horizontalItemSelectedBg: darkItemSelectedBg\n });\n return [\n // Basic\n getBaseStyle(menuToken),\n // Horizontal\n getHorizontalStyle(menuToken),\n // Hard code for some light style\n // Vertical\n getVerticalStyle(menuToken),\n // Hard code for some light style\n // Theme\n getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n // RTL\n getRTLStyle(menuToken),\n // Motion\n genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n }, prepareComponentToken, {\n deprecatedTokens: [['colorGroupTitle', 'groupTitleColor'], ['radiusItem', 'itemBorderRadius'], ['radiusSubMenuItem', 'subMenuItemBorderRadius'], ['colorItemText', 'itemColor'], ['colorItemTextHover', 'itemHoverColor'], ['colorItemTextHoverHorizontal', 'horizontalItemHoverColor'], ['colorItemTextSelected', 'itemSelectedColor'], ['colorItemTextSelectedHorizontal', 'horizontalItemSelectedColor'], ['colorItemTextDisabled', 'itemDisabledColor'], ['colorDangerItemText', 'dangerItemColor'], ['colorDangerItemTextHover', 'dangerItemHoverColor'], ['colorDangerItemTextSelected', 'dangerItemSelectedColor'], ['colorDangerItemBgActive', 'dangerItemActiveBg'], ['colorDangerItemBgSelected', 'dangerItemSelectedBg'], ['colorItemBg', 'itemBg'], ['colorItemBgHover', 'itemHoverBg'], ['colorSubItemBg', 'subMenuItemBg'], ['colorItemBgActive', 'itemActiveBg'], ['colorItemBgSelectedHorizontal', 'horizontalItemSelectedBg'], ['colorActiveBarWidth', 'activeBarWidth'], ['colorActiveBarHeight', 'activeBarHeight'], ['colorActiveBarBorderSize', 'activeBarBorderWidth'], ['colorItemBgSelected', 'itemSelectedBg']],\n // Dropdown will handle menu style self. We do not need to handle this.\n injectStyle,\n unitless: {\n groupTitleLineHeight: true\n }\n });\n return useStyle(prefixCls, rootCls);\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { cloneElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst SubMenu = props => {\n var _a;\n const {\n popupClassName,\n icon,\n title,\n theme: customTheme\n } = props;\n const context = React.useContext(MenuContext);\n const {\n prefixCls,\n inlineCollapsed,\n theme: contextTheme\n } = context;\n const parentPath = useFullPath();\n let titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inline-collapsed-noicon`\n }, title.charAt(0))) : (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title));\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n const titleIsSpan = /*#__PURE__*/React.isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-title-content`\n }, title));\n }\n const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n firstLevel: false\n }), [context]);\n // ============================ zIndex ============================\n const [zIndex] = useZIndex('Menu');\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`),\n popupStyle: Object.assign({\n zIndex\n }, props.popupStyle)\n })));\n};\nexport default SubMenu;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport MenuContext from './MenuContext';\nimport Divider from './MenuDivider';\nimport MenuItem from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport useStyle from './style';\nimport SubMenu from './SubMenu';\nfunction isEmptyIcon(icon) {\n return icon === null || icon === false;\n}\nconst MENU_COMPONENTS = {\n item: MenuItem,\n submenu: SubMenu,\n divider: Divider\n};\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const override = React.useContext(OverrideContext);\n const overrideObj = override || {};\n const {\n getPrefixCls,\n getPopupContainer,\n direction,\n menu\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n theme = 'light',\n expandIcon,\n _internalDisableMenuItemTitleTooltip,\n inlineCollapsed,\n siderCollapsed,\n rootClassName,\n mode,\n selectable,\n onClick,\n overflowedIndicatorPopupClassName\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\", \"overflowedIndicatorPopupClassName\"]);\n const passedProps = omit(restProps, ['collapsedWidth']);\n // ======================== Warning ==========================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Menu');\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'usage', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'usage', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n warning.deprecated('items' in props && !props.children, 'children', 'items');\n }\n (_a = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n const onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n });\n // ========================== Mode ===========================\n const mergedMode = overrideObj.mode || mode;\n // ======================= Selectable ========================\n const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n const mergedInlineCollapsed = React.useMemo(() => {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n const defaultMotions = {\n horizontal: {\n motionName: `${rootPrefixCls}-slide-up`\n },\n inline: initCollapseMotion(rootPrefixCls),\n other: {\n motionName: `${rootPrefixCls}-zoom-big`\n }\n };\n const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls, !override);\n const menuClassName = classNames(`${prefixCls}-${theme}`, menu === null || menu === void 0 ? void 0 : menu.className, className);\n // ====================== ExpandIcon ========================\n const mergedExpandIcon = React.useMemo(() => {\n var _a, _b;\n if (typeof expandIcon === 'function' || isEmptyIcon(expandIcon)) {\n return expandIcon || null;\n }\n if (typeof overrideObj.expandIcon === 'function' || isEmptyIcon(overrideObj.expandIcon)) {\n return overrideObj.expandIcon || null;\n }\n if (typeof (menu === null || menu === void 0 ? void 0 : menu.expandIcon) === 'function' || isEmptyIcon(menu === null || menu === void 0 ? void 0 : menu.expandIcon)) {\n return (menu === null || menu === void 0 ? void 0 : menu.expandIcon) || null;\n }\n const mergedIcon = (_a = expandIcon !== null && expandIcon !== void 0 ? expandIcon : overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon) !== null && _a !== void 0 ? _a : menu === null || menu === void 0 ? void 0 : menu.expandIcon;\n return cloneElement(mergedIcon, {\n className: classNames(`${prefixCls}-submenu-expand-icon`, /*#__PURE__*/React.isValidElement(mergedIcon) ? (_b = mergedIcon.props) === null || _b === void 0 ? void 0 : _b.className : undefined)\n });\n }, [expandIcon, overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon, menu === null || menu === void 0 ? void 0 : menu.expandIcon, prefixCls]);\n // ======================== Context ==========================\n const contextValue = React.useMemo(() => ({\n prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n direction,\n firstLevel: true,\n theme,\n mode: mergedMode,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n // ========================= Render ==========================\n return wrapCSSVar(/*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: classNames(prefixCls, `${prefixCls}-${theme}`, overflowedIndicatorPopupClassName),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n style: Object.assign(Object.assign({}, menu === null || menu === void 0 ? void 0 : menu.style), style),\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref,\n rootClassName: classNames(rootClassName, hashId, overrideObj.rootClassName, cssVarCls, rootCls),\n _internalComponents: MENU_COMPONENTS\n })))));\n});\nexport default InternalMenu;","\"use client\";\n\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { ItemGroup } from 'rc-menu';\nimport { SiderContext } from '../layout/Sider';\nimport InternalMenu from './menu';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n const menuRef = useRef(null);\n const context = React.useContext(SiderContext);\n useImperativeHandle(ref, () => ({\n menu: menuRef.current,\n focus: options => {\n var _a;\n (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n }\n }));\n return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n ref: menuRef\n }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n Menu.displayName = 'Menu';\n}\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\n\n/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DoubleRightOutlined';\n}\nexport default RefIcon;","import { unit } from '@ant-design/cssinjs';\nimport { DEPRECATED_TOKENS, prepareComponentToken } from '.';\nimport { genStyleHooks } from '../../theme/internal';\nconst genSiderStyle = token => {\n const {\n componentCls,\n siderBg,\n motionDurationMid,\n motionDurationSlow,\n antCls,\n triggerHeight,\n triggerColor,\n triggerBg,\n headerHeight,\n zeroTriggerWidth,\n zeroTriggerHeight,\n borderRadius,\n lightSiderBg,\n lightTriggerColor,\n lightTriggerBg,\n bodyBg\n } = token;\n return {\n [componentCls]: {\n position: 'relative',\n // fix firefox can't set width smaller than content on flex item\n minWidth: 0,\n background: siderBg,\n transition: `all ${motionDurationMid}, background 0s`,\n '&-has-trigger': {\n paddingBottom: triggerHeight\n },\n '&-right': {\n order: 1\n },\n [`${componentCls}-children`]: {\n height: '100%',\n // Hack for fixing margin collapse bug\n // https://github.com/ant-design/ant-design/issues/7967\n // solution from https://stackoverflow.com/a/33132624/3040605\n marginTop: -0.1,\n paddingTop: 0.1,\n [`${antCls}-menu${antCls}-menu-inline-collapsed`]: {\n width: 'auto'\n }\n },\n [`${componentCls}-trigger`]: {\n position: 'fixed',\n bottom: 0,\n zIndex: 1,\n height: triggerHeight,\n color: triggerColor,\n lineHeight: unit(triggerHeight),\n textAlign: 'center',\n background: triggerBg,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`\n },\n '&-zero-width': {\n '> *': {\n overflow: 'hidden'\n },\n '&-trigger': {\n position: 'absolute',\n top: headerHeight,\n insetInlineEnd: token.calc(zeroTriggerWidth).mul(-1).equal(),\n zIndex: 1,\n width: zeroTriggerWidth,\n height: zeroTriggerHeight,\n color: triggerColor,\n fontSize: token.fontSizeXL,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: siderBg,\n borderStartStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius,\n borderEndStartRadius: 0,\n cursor: 'pointer',\n transition: `background ${motionDurationSlow} ease`,\n '&::after': {\n position: 'absolute',\n inset: 0,\n background: 'transparent',\n transition: `all ${motionDurationSlow}`,\n content: '\"\"'\n },\n '&:hover::after': {\n background: `rgba(255, 255, 255, 0.2)`\n },\n '&-right': {\n insetInlineStart: token.calc(zeroTriggerWidth).mul(-1).equal(),\n borderStartStartRadius: borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: borderRadius\n }\n }\n },\n // Light\n '&-light': {\n background: lightSiderBg,\n [`${componentCls}-trigger`]: {\n color: lightTriggerColor,\n background: lightTriggerBg\n },\n [`${componentCls}-zero-width-trigger`]: {\n color: lightTriggerColor,\n background: lightTriggerBg,\n border: `1px solid ${bodyBg}`,\n // Safe to modify to any other color\n borderInlineStart: 0\n }\n }\n }\n };\n};\nexport default genStyleHooks(['Layout', 'Sider'], token => [genSiderStyle(token)], prepareComponentToken, {\n deprecatedTokens: DEPRECATED_TOKENS\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport isNumeric from '../_util/isNumeric';\nimport { ConfigContext } from '../config-provider';\nimport { LayoutContext } from './context';\nimport useStyle from './style/sider';\nconst dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n let i = 0;\n return function () {\n let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return `${prefix}${i}`;\n };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n trigger,\n children,\n defaultCollapsed = false,\n theme = 'dark',\n style = {},\n collapsible = false,\n reverseArrow = false,\n width = 200,\n collapsedWidth = 80,\n zeroWidthTriggerStyle,\n breakpoint,\n onCollapse,\n onBreakpoint\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n const {\n siderHook\n } = useContext(LayoutContext);\n const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n const [below, setBelow] = useState(false);\n useEffect(() => {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n const handleSetCollapsed = (value, type) => {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // =========================== Prefix ===========================\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // ========================= Responsive =========================\n const responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = mql => {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(() => {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n let mql;\n if (typeof window !== 'undefined') {\n const {\n matchMedia\n } = window;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(`screen and (max-width: ${dimensionMaxMap[breakpoint]})`);\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (_a) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return () => {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (_a) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(() => {\n const uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return () => siderHook.removeSider(uniqueId);\n }, []);\n const toggle = () => {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n const renderSider = () => {\n const divProps = omit(otherProps, ['collapsed']);\n const rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n // special trigger when collapsedWidth == 0\n const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? (/*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null))) : null;\n const iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n const status = collapsed ? 'collapsed' : 'expanded';\n const defaultTrigger = iconObj[status];\n const triggerDom = trigger !== null ? zeroWidthTrigger || (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-trigger`,\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger)) : null;\n const divStyle = Object.assign(Object.assign({}, style), {\n flex: `0 0 ${siderWidth}`,\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n [`${prefixCls}-collapsed`]: !!collapsed,\n [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n [`${prefixCls}-below`]: !!below,\n [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n }, className, hashId, cssVarCls);\n return /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-children`\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n const contextValue = React.useMemo(() => ({\n siderCollapsed: collapsed\n }), [collapsed]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider()));\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","const isNumeric = value => !isNaN(parseFloat(value)) && isFinite(value);\nexport default isNumeric;","import ColorPicker from \"./ColorPicker\";\nexport { Color } from \"./color\";\nexport { default as ColorBlock } from \"./components/ColorBlock\";\nexport * from \"./interface\";\nexport default ColorPicker;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import clsx from 'clsx';\nimport Alert from 'antd/es/alert';\nimport { useLocalStorage } from 'react-use';\nimport { OpInfoProps } from '../OpInfo';\n\nimport '../OpInfo.scss';\n\ninterface OpInfoWithDismissProps extends Omit {\n dismissibleId: string;\n}\n\nexport const OpInfoWithDismiss = ({\n className,\n dismissibleId,\n ...alertProps\n}: OpInfoWithDismissProps) => {\n /** Using the useLocalStorage hook in order to allow for the Tipbox to be hidden */\n const [isVisible, setIsVisible] = useLocalStorage(dismissibleId, true);\n\n if (!isVisible) {\n return null;\n }\n\n const handleClose = () => {\n setIsVisible(false);\n };\n\n return (\n \n );\n};\n","\"use client\";\n\nimport React, { useContext } from 'react';\nimport ActionButton from '../../_util/ActionButton';\nimport { ModalContext } from '../context';\nconst ConfirmCancelBtn = () => {\n const {\n autoFocusButton,\n cancelButtonProps,\n cancelTextLocale,\n isSilent,\n mergedOkCancel,\n rootPrefixCls,\n close,\n onCancel,\n onConfirm\n } = useContext(ModalContext);\n return mergedOkCancel ? (/*#__PURE__*/React.createElement(ActionButton, {\n isSilent: isSilent,\n actionFn: onCancel,\n close: function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);\n },\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, cancelTextLocale)) : null;\n};\nexport default ConfirmCancelBtn;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport ActionButton from '../../_util/ActionButton';\nimport { ModalContext } from '../context';\nconst ConfirmOkBtn = () => {\n const {\n autoFocusButton,\n close,\n isSilent,\n okButtonProps,\n rootPrefixCls,\n okTextLocale,\n okType,\n onConfirm,\n onOk\n } = useContext(ModalContext);\n return /*#__PURE__*/React.createElement(ActionButton, {\n isSilent: isSilent,\n type: okType || 'primary',\n actionFn: onOk,\n close: function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(true);\n },\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: `${rootPrefixCls}-btn`\n }, okTextLocale);\n};\nexport default ConfirmOkBtn;","// Style as confirm component\nimport { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { clearFix } from '../../style';\nimport { genSubStyleComponent } from '../../theme/internal';\n// ============================= Confirm ==============================\nconst genModalConfirmStyle = token => {\n const {\n componentCls,\n titleFontSize,\n titleLineHeight,\n modalConfirmIconSize,\n fontSize,\n lineHeight,\n modalTitleHeight,\n fontHeight,\n confirmBodyPadding\n } = token;\n const confirmComponentCls = `${componentCls}-confirm`;\n return {\n [confirmComponentCls]: {\n '&-rtl': {\n direction: 'rtl'\n },\n [`${token.antCls}-modal-header`]: {\n display: 'none'\n },\n [`${confirmComponentCls}-body-wrapper`]: Object.assign({}, clearFix()),\n [`&${componentCls} ${componentCls}-body`]: {\n padding: confirmBodyPadding\n },\n // ====================== Body ======================\n [`${confirmComponentCls}-body`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'start',\n [`> ${token.iconCls}`]: {\n flex: 'none',\n fontSize: modalConfirmIconSize,\n marginInlineEnd: token.confirmIconMarginInlineEnd,\n marginTop: token.calc(token.calc(fontHeight).sub(modalConfirmIconSize).equal()).div(2).equal()\n },\n [`&-has-title > ${token.iconCls}`]: {\n marginTop: token.calc(token.calc(modalTitleHeight).sub(modalConfirmIconSize).equal()).div(2).equal()\n }\n },\n [`${confirmComponentCls}-paragraph`]: {\n display: 'flex',\n flexDirection: 'column',\n flex: 'auto',\n rowGap: token.marginXS\n },\n // https://github.com/ant-design/ant-design/issues/48159\n [`${token.iconCls} + ${confirmComponentCls}-paragraph`]: {\n maxWidth: `calc(100% - ${unit(token.calc(token.modalConfirmIconSize).add(token.marginSM).equal())})`\n },\n [`${confirmComponentCls}-title`]: {\n color: token.colorTextHeading,\n fontWeight: token.fontWeightStrong,\n fontSize: titleFontSize,\n lineHeight: titleLineHeight\n },\n [`${confirmComponentCls}-content`]: {\n color: token.colorText,\n fontSize,\n lineHeight\n },\n // ===================== Footer =====================\n [`${confirmComponentCls}-btns`]: {\n textAlign: 'end',\n marginTop: token.confirmBtnsMarginTop,\n [`${token.antCls}-btn + ${token.antCls}-btn`]: {\n marginBottom: 0,\n marginInlineStart: token.marginXS\n }\n }\n },\n [`${confirmComponentCls}-error ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorError\n },\n [`${confirmComponentCls}-warning ${confirmComponentCls}-body > ${token.iconCls},\n ${confirmComponentCls}-confirm ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorWarning\n },\n [`${confirmComponentCls}-info ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorInfo\n },\n [`${confirmComponentCls}-success ${confirmComponentCls}-body > ${token.iconCls}`]: {\n color: token.colorSuccess\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Modal', 'confirm'], token => {\n const modalToken = prepareToken(token);\n return [genModalConfirmStyle(modalToken)];\n}, prepareComponentToken, {\n // confirm is weak than modal since no conflict here\n order: -1000\n});","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport { CONTAINER_MAX_OFFSET } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { devUseWarning } from '../_util/warning';\nimport ConfigProvider from '../config-provider';\nimport { useLocale } from '../locale';\nimport useToken from '../theme/useToken';\nimport CancelBtn from './components/ConfirmCancelBtn';\nimport OkBtn from './components/ConfirmOkBtn';\nimport { ModalContextProvider } from './context';\nimport Modal from './Modal';\nimport Confirm from './style/confirm';\nexport function ConfirmContent(props) {\n const {\n prefixCls,\n icon,\n okText,\n cancelText,\n confirmPrefixCls,\n type,\n okCancel,\n footer,\n // Legacy for static function usage\n locale: staticLocale\n } = props,\n resetProps = __rest(props, [\"prefixCls\", \"icon\", \"okText\", \"cancelText\", \"confirmPrefixCls\", \"type\", \"okCancel\", \"footer\", \"locale\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Modal');\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n }\n // Icon\n let mergedIcon = icon;\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n if (!icon && icon !== null) {\n switch (type) {\n case 'info':\n mergedIcon = /*#__PURE__*/React.createElement(InfoCircleFilled, null);\n break;\n case 'success':\n mergedIcon = /*#__PURE__*/React.createElement(CheckCircleFilled, null);\n break;\n case 'error':\n mergedIcon = /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n break;\n default:\n mergedIcon = /*#__PURE__*/React.createElement(ExclamationCircleFilled, null);\n }\n }\n // 默认为 true,保持向下兼容\n const mergedOkCancel = okCancel !== null && okCancel !== void 0 ? okCancel : type === 'confirm';\n const autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n const [locale] = useLocale('Modal');\n const mergedLocale = staticLocale || locale;\n // ================== Locale Text ==================\n const okTextLocale = okText || (mergedOkCancel ? mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.okText : mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.justOkText);\n const cancelTextLocale = cancelText || (mergedLocale === null || mergedLocale === void 0 ? void 0 : mergedLocale.cancelText);\n // ================= Context Value =================\n const btnCtxValue = Object.assign({\n autoFocusButton,\n cancelTextLocale,\n okTextLocale,\n mergedOkCancel\n }, resetProps);\n const btnCtxValueMemo = React.useMemo(() => btnCtxValue, _toConsumableArray(Object.values(btnCtxValue)));\n // ====================== Footer Origin Node ======================\n const footerOriginNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CancelBtn, null), /*#__PURE__*/React.createElement(OkBtn, null));\n const hasTitle = props.title !== undefined && props.title !== null;\n const bodyCls = `${confirmPrefixCls}-body`;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-body-wrapper`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(bodyCls, {\n [`${bodyCls}-has-title`]: hasTitle\n })\n }, mergedIcon, /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-paragraph`\n }, hasTitle && /*#__PURE__*/React.createElement(\"span\", {\n className: `${confirmPrefixCls}-title`\n }, props.title), /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-content`\n }, props.content))), footer === undefined || typeof footer === 'function' ? (/*#__PURE__*/React.createElement(ModalContextProvider, {\n value: btnCtxValueMemo\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${confirmPrefixCls}-btns`\n }, typeof footer === 'function' ? footer(footerOriginNode, {\n OkBtn,\n CancelBtn\n }) : footerOriginNode))) : footer, /*#__PURE__*/React.createElement(Confirm, {\n prefixCls: prefixCls\n }));\n}\nconst ConfirmDialog = props => {\n const {\n close,\n zIndex,\n afterClose,\n open,\n keyboard,\n centered,\n getContainer,\n maskStyle,\n direction,\n prefixCls,\n wrapClassName,\n rootPrefixCls,\n bodyStyle,\n closable = false,\n closeIcon,\n modalRender,\n focusTriggerAfterClose,\n onConfirm,\n styles\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Modal');\n [['visible', 'open'], ['bodyStyle', 'styles.body'], ['maskStyle', 'styles.mask']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n });\n }\n const confirmPrefixCls = `${prefixCls}-confirm`;\n const width = props.width || 416;\n const style = props.style || {};\n const mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n const maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n const classString = classNames(confirmPrefixCls, `${confirmPrefixCls}-${props.type}`, {\n [`${confirmPrefixCls}-rtl`]: direction === 'rtl'\n }, props.className);\n // ========================= zIndex =========================\n const [, token] = useToken();\n const mergedZIndex = React.useMemo(() => {\n if (zIndex !== undefined) {\n return zIndex;\n }\n // Static always use max zIndex\n return token.zIndexPopupBase + CONTAINER_MAX_OFFSET;\n }, [zIndex, token]);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(Modal, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames({\n [`${confirmPrefixCls}-centered`]: !!props.centered\n }, wrapClassName),\n onCancel: () => {\n close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n });\n onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(false);\n },\n open: open,\n title: \"\",\n footer: null,\n transitionName: getTransitionName(rootPrefixCls || '', 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls || '', 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n style: style,\n styles: Object.assign({\n body: bodyStyle,\n mask: maskStyle\n }, styles),\n width: width,\n zIndex: mergedZIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n confirmPrefixCls: confirmPrefixCls\n })));\n};\nconst ConfirmDialogWrapper = props => {\n const {\n rootPrefixCls,\n iconPrefixCls,\n direction,\n theme\n } = props;\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction,\n theme: theme\n }, /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({}, props)));\n};\nif (process.env.NODE_ENV !== 'production') {\n ConfirmDialog.displayName = 'ConfirmDialog';\n ConfirmDialogWrapper.displayName = 'ConfirmDialogWrapper';\n}\nexport default ConfirmDialogWrapper;","import {\n SET_IS_EDITING,\n SET_FORM_VALUE,\n SET_NESTED_FORM_VALUE,\n SET_FORM_VALUES,\n SET_INITIAL_FORM_VALUES,\n SET_IS_LOADING,\n SET_FORM_VALIDATION,\n SET_FORM_ERROR_MESSAGE,\n DELETE_FORM_ERROR_MESSAGE,\n CREATE_EDIT_ITEM,\n RESET_FORM_VALUES,\n} from './constants';\n\nexport function setFormValue(page, subFilterId, key, value) {\n // for updating a single form value while keeping the rest the same\n return {\n type: SET_FORM_VALUE,\n page,\n subFilterId,\n key,\n value,\n };\n}\n\nexport function setNestedFormValue(page, subFilterId, keys, value) {\n // for updating a single form value, at a nested key path within the formValues object, while keeping the rest the same\n return {\n type: SET_NESTED_FORM_VALUE,\n page,\n subFilterId,\n keys,\n value,\n };\n}\n\nexport function setFormValues(page, subFilterId, data) {\n // for replacing all formValues with new ones\n return {\n type: SET_FORM_VALUES,\n page,\n subFilterId,\n data,\n };\n}\n\nexport function setInitialFormValues(page, subFilterId, data) {\n return {\n type: SET_INITIAL_FORM_VALUES,\n page,\n subFilterId,\n data,\n };\n}\n\nexport function setIsLoading(page, subFilterId, value) {\n return {\n type: SET_IS_LOADING,\n page,\n subFilterId,\n value,\n };\n}\n\nexport function setIsEditing(page, subFilterId, isEditing) {\n return {\n type: SET_IS_EDITING,\n page,\n subFilterId,\n isEditing,\n };\n}\n\nexport function setFormValidation(page, subFilterId, data) {\n return {\n type: SET_FORM_VALIDATION,\n page,\n subFilterId,\n data,\n };\n}\n\nexport function setFormErrorMessage(page, subFilterId, key, errorMessage) {\n return {\n type: SET_FORM_ERROR_MESSAGE,\n page,\n subFilterId,\n key,\n errorMessage,\n };\n}\n\nexport function deleteFormErrorMessage(page, subFilterId, key) {\n return {\n type: DELETE_FORM_ERROR_MESSAGE,\n page,\n subFilterId,\n key,\n };\n}\n\nexport function createEditItem(\n formValues,\n initialFormValues,\n submitFormConfig,\n) {\n return {\n type: CREATE_EDIT_ITEM,\n formValues,\n initialFormValues,\n submitFormConfig,\n };\n}\n\nexport function resetFormValues(page, subFilterId, resetValues) {\n return {\n type: RESET_FORM_VALUES,\n page,\n subFilterId,\n resetValues,\n };\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EyeInvisibleOutlinedSvg\n }));\n};\n\n/**![eye-invisible](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwMDAtNTEuNXptLTYzLjU3LTMyMC42NEw4MzYgMTIyLjg4YTggOCAwIDAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwMDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwMDAgMTEuMzFMMTU1LjE3IDg4OWE4IDggMCAwMDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwMDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMDExNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwMTM5NiA1MTJ6IiAvPjxwYXRoIGQ9Ik01MDggNjI0Yy0zLjQ2IDAtNi44Ny0uMTYtMTAuMjUtLjQ3bC01Mi44MiA1Mi44MmExNzYuMDkgMTc2LjA5IDAgMDAyMjcuNDItMjI3LjQybC01Mi44MiA1Mi44MmMuMzEgMy4zOC40NyA2Ljc5LjQ3IDEwLjI1YTExMS45NCAxMTEuOTQgMCAwMS0xMTIgMTEyeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EyeInvisibleOutlined';\n}\nexport default RefIcon;","import { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = React.useRef(open);\n openRef.current = open;\n var popupPointerDownRef = React.useRef(false);\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onPointerDown = function onPointerDown() {\n popupPointerDownRef.current = false;\n };\n var onTriggerClose = function onTriggerClose(e) {\n var _e$composedPath;\n if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {\n triggerOpen(false);\n }\n };\n var win = getWin(popupEle);\n win.addEventListener('pointerdown', onPointerDown, true);\n win.addEventListener('mousedown', onTriggerClose, true);\n win.addEventListener('contextmenu', onTriggerClose, true);\n\n // shadow root\n var targetShadowRoot = getShadowRoot(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('pointerdown', onPointerDown, true);\n win.removeEventListener('mousedown', onTriggerClose, true);\n win.removeEventListener('contextmenu', onTriggerClose, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n function onPopupPointerDown() {\n popupPointerDownRef.current = true;\n }\n return onPopupPointerDown;\n}","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\n/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate,\n )} of type ${JSON.stringify(typeof sampleRate)}.`,\n );\n return undefined;\n }\n\n return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","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 };","module.exports = __webpack_public_path__ + \"2272c6632c52c3e402ab27b8045ab8f1.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { pathKey } from \"../Cache\";\nimport StyleContext from \"../StyleContext\";\nimport useCompatibleInsertionEffect from \"./useCompatibleInsertionEffect\";\nimport useEffectCleanupRegister from \"./useEffectCleanupRegister\";\nimport useHMR from \"./useHMR\";\nexport default function useGlobalCache(prefix, keyPath, cacheFn, onCacheRemove,\n// Add additional effect trigger by `useInsertionEffect`\nonCacheEffect) {\n var _React$useContext = React.useContext(StyleContext),\n globalCache = _React$useContext.cache;\n var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n var fullPathStr = pathKey(fullPath);\n var register = useEffectCleanupRegister([fullPathStr]);\n var HMRUpdate = useHMR();\n var buildCache = function buildCache(updater) {\n globalCache.opUpdate(fullPathStr, function (prevCache) {\n var _ref = prevCache || [undefined, undefined],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n times = _ref2$ === void 0 ? 0 : _ref2$,\n cache = _ref2[1];\n\n // HMR should always ignore cache since developer may change it\n var tmpCache = cache;\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n var mergedCache = tmpCache || cacheFn();\n var data = [times, mergedCache];\n\n // Call updater if need additional logic\n return updater ? updater(data) : data;\n });\n };\n\n // Create cache\n React.useMemo(function () {\n buildCache();\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [fullPathStr]\n /* eslint-enable */);\n\n var cacheEntity = globalCache.opGet(fullPathStr);\n\n // HMR clean the cache but not trigger `useMemo` again\n // Let's fallback of this\n // ref https://github.com/ant-design/cssinjs/issues/127\n if (process.env.NODE_ENV !== 'production' && !cacheEntity) {\n buildCache();\n cacheEntity = globalCache.opGet(fullPathStr);\n }\n var cacheContent = cacheEntity[1];\n\n // Remove if no need anymore\n useCompatibleInsertionEffect(function () {\n onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n }, function (polyfill) {\n // It's bad to call build again in effect.\n // But we have to do this since StrictMode will call effect twice\n // which will clear cache on the first time.\n buildCache(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n times = _ref4[0],\n cache = _ref4[1];\n if (polyfill && times === 0) {\n onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n }\n return [times + 1, cache];\n });\n return function () {\n globalCache.opUpdate(fullPathStr, function (prevCache) {\n var _ref5 = prevCache || [],\n _ref6 = _slicedToArray(_ref5, 2),\n _ref6$ = _ref6[0],\n times = _ref6$ === void 0 ? 0 : _ref6$,\n cache = _ref6[1];\n var nextCount = times - 1;\n if (nextCount === 0) {\n // Always remove styles in useEffect callback\n register(function () {\n // With polyfill, registered callback will always be called synchronously\n // But without polyfill, it will be called in effect clean up,\n // And by that time this cache is cleaned up.\n if (polyfill || !globalCache.opGet(fullPathStr)) {\n onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(cache, false);\n }\n });\n return null;\n }\n return [times - 1, cache];\n });\n };\n }, [fullPathStr]);\n return cacheContent;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n const providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n FormItemInputContext.displayName = 'FormItemInputContext';\n}\nexport const NoFormStyle = _ref => {\n let {\n children,\n status,\n override\n } = _ref;\n const formItemInputContext = useContext(FormItemInputContext);\n const newFormItemInputContext = useMemo(() => {\n const newContext = Object.assign({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};\nexport const VariantContext = /*#__PURE__*/createContext(undefined);","module.exports = __webpack_public_path__ + \"5a496ae20cc576bef1d35972548207cf.js\";","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","module.exports = __webpack_public_path__ + \"f666b5647087bcfdf6623f8b14d56657.js\";","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2022 Google LLC\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 * https://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\nconst getActivationStart = () => {\n const navEntry = getNavigationEntry();\n return (navEntry && navEntry.activationStart) || 0;\n};\n\nexport { getActivationStart };\n//# sourceMappingURL=getActivationStart.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-data-fetch-transfer__label-wrapper{display:flex;align-items:center;gap:0.5714285714rem}.op-data-fetch-transfer__tag{height:fit-content}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpDataFetchTransfer/OpDataFetchTransfer.scss\"],\"names\":[],\"mappings\":\"AAGE,uCACE,YAAA,CACA,kBAAA,CACA,mBAAA,CAGF,6BACE,kBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-data-fetch-transfer {\\n &__label-wrapper {\\n display: flex;\\n align-items: center;\\n gap: common.toRem(8);\\n }\\n\\n &__tag {\\n height: fit-content;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"d429602e0ebf3c1ec040e070e9b05b9b.js\";","/**\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\nexport default arrayFilter;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\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\nexport default equalArrays;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\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\nexport default mapToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\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 * 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\nexport default equalByTag;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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\nexport default getSymbols;\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\nexport default stubArray;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\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\nexport default getAllKeys;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\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\nexport default baseGetAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * 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 // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\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\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * 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\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsEqual;\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","import { isError, truncate } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst DEFAULT_LIMIT = 10;\nconst INTEGRATION_NAME = 'ZodErrors';\n\n// Simplified ZodIssue type definition\n\nfunction originalExceptionIsZodError(originalException) {\n return (\n isError(originalException) &&\n originalException.name === 'ZodError' &&\n Array.isArray((originalException ).errors)\n );\n}\n\n/**\n * Formats child objects or arrays to a string\n * That is preserved when sent to Sentry\n */\nfunction formatIssueTitle(issue) {\n return {\n ...issue,\n path: 'path' in issue && Array.isArray(issue.path) ? issue.path.join('.') : undefined,\n keys: 'keys' in issue ? JSON.stringify(issue.keys) : undefined,\n unionErrors: 'unionErrors' in issue ? JSON.stringify(issue.unionErrors) : undefined,\n };\n}\n\n/**\n * Zod error message is a stringified version of ZodError.issues\n * This doesn't display well in the Sentry UI. Replace it with something shorter.\n */\nfunction formatIssueMessage(zodError) {\n const errorKeyMap = new Set();\n for (const iss of zodError.issues) {\n if (iss.path && iss.path[0]) {\n errorKeyMap.add(iss.path[0]);\n }\n }\n const errorKeys = Array.from(errorKeyMap);\n\n return `Failed to validate keys: ${truncate(errorKeys.join(', '), 100)}`;\n}\n\n/**\n * Applies ZodError issues to an event extras and replaces the error message\n */\nfunction applyZodErrorsToEvent(limit, event, hint) {\n if (\n !event.exception ||\n !event.exception.values ||\n !hint ||\n !hint.originalException ||\n !originalExceptionIsZodError(hint.originalException) ||\n hint.originalException.issues.length === 0\n ) {\n return event;\n }\n\n return {\n ...event,\n exception: {\n ...event.exception,\n values: [\n {\n ...event.exception.values[0],\n value: formatIssueMessage(hint.originalException),\n },\n ...event.exception.values.slice(1),\n ],\n },\n extra: {\n ...event.extra,\n 'zoderror.issues': hint.originalException.errors.slice(0, limit).map(formatIssueTitle),\n },\n };\n}\n\nconst _zodErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(originalEvent, hint) {\n const processedEvent = applyZodErrorsToEvent(limit, originalEvent, hint);\n return processedEvent;\n },\n };\n}) ;\n\nconst zodErrorsIntegration = defineIntegration(_zodErrorsIntegration);\n\nexport { applyZodErrorsToEvent, zodErrorsIntegration };\n//# sourceMappingURL=zoderrors.js.map\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexports.default = DownOutlined;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-checkbox-group__skeleton-wrapper{display:flex;flex-direction:column;gap:0.4285714286rem}.op-form-checkbox-group__checkbox-group{display:grid;grid-template-columns:repeat(1, 1fr);grid-gap:0.8571428571rem 1.1428571429rem;border:0.0714285714rem solid var(--colorBorder);border-radius:var(--borderRadius);padding:0.7857142857rem}@media(min-width: 48rem){.op-form-checkbox-group__checkbox-group{grid-template-columns:repeat(3, 1fr)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormCheckboxGroup/OpFormCheckboxGroup.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAGE,0CACE,YAAA,CACA,qBAAA,CACA,mBAAA,CAGF,wCACE,YAAA,CACA,oCAAA,CACA,wCAAA,CACA,+CAAA,CACA,iCAAA,CACA,uBAAA,CCXF,yBDKA,wCASI,oCAAA,CAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-checkbox-group {\\n &__skeleton-wrapper {\\n display: flex;\\n flex-direction: column;\\n gap: common.toRem(6);\\n }\\n\\n &__checkbox-group {\\n display: grid;\\n grid-template-columns: repeat(1, 1fr);\\n grid-gap: common.toRem(12) common.toRem(16);\\n border: common.toRem(1) solid var(--colorBorder);\\n border-radius: var(--borderRadius);\\n padding: common.toRem(11);\\n\\n @include common.larger-than(common.$tablet-portrait-width) {\\n grid-template-columns: repeat(3, 1fr);\\n }\\n }\\n}\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _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 AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n if (typeof value === 'number') {\n return \"\".concat(value).concat(CALC_UNIT);\n }\n return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n _inherits(CSSCalculator, _AbstractCalculator);\n var _super = _createSuper(CSSCalculator);\n function CSSCalculator(num, unitlessCssVar) {\n var _this;\n _classCallCheck(this, CSSCalculator);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"result\", '');\n _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n var numType = _typeof(num);\n _this.unitlessCssVar = unitlessCssVar;\n if (num instanceof CSSCalculator) {\n _this.result = \"(\".concat(num.result, \")\");\n } else if (numType === 'number') {\n _this.result = unit(num);\n } else if (numType === 'string') {\n _this.result = num;\n }\n return _this;\n }\n _createClass(CSSCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" * \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" / \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"getResult\",\n value: function getResult(force) {\n return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n }\n }, {\n key: \"equal\",\n value: function equal(options) {\n var _this2 = this;\n var _ref = options || {},\n cssUnit = _ref.unit;\n var mergedUnit = true;\n if (typeof cssUnit === 'boolean') {\n mergedUnit = cssUnit;\n } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n return _this2.result.includes(cssVar);\n })) {\n mergedUnit = false;\n }\n this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n if (typeof this.lowPriority !== 'undefined') {\n return \"calc(\".concat(this.result, \")\");\n }\n return this.result;\n }\n }]);\n return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","import Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n deselectAll: 'Deselect all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand',\n collapse: 'Collapse'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh',\n scanned: 'Scanned'\n },\n ColorPicker: {\n presetEmpty: 'Empty',\n transparent: 'Transparent',\n singleColor: 'Single',\n gradientColor: 'Gradient'\n }\n};\nexport default localeValues;","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.video-region-select__info{margin-bottom:1.1428571429rem}.video-region-select__video-wrapper{border-radius:var(--borderRadius);overflow:auto;position:relative;background-color:rgba(0,0,0,.8)}.video-region-select__video-wrapper--read-only{pointer-events:none;cursor:not-allowed}.video-region-select__type-choice-button-wrapper{width:100%;display:flex;align-items:center;gap:1.1428571429rem;flex-wrap:wrap;margin-top:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegionSelect.scss\"],\"names\":[],\"mappings\":\"AAGE,2BACE,6BAAA,CAGF,oCACE,iCAAA,CACA,aAAA,CACA,iBAAA,CACA,+BAAA,CAEA,+CACE,mBAAA,CACA,kBAAA,CAIJ,iDACE,UAAA,CACA,YAAA,CACA,kBAAA,CACA,mBAAA,CACA,cAAA,CACA,0BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.video-region-select {\\n &__info {\\n margin-bottom: common.toRem(16);\\n }\\n\\n &__video-wrapper {\\n border-radius: var(--borderRadius);\\n overflow: auto;\\n position: relative;\\n background-color: rgba(0, 0, 0, 0.8);\\n\\n &--read-only {\\n pointer-events: none;\\n cursor: not-allowed;\\n }\\n }\\n\\n &__type-choice-button-wrapper {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n gap: common.toRem(16);\\n flex-wrap: wrap;\\n margin-top: common.toRem(16);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","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 };","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _PauseOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/PauseOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar PauseOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _PauseOutlined.default\n }));\n};\n/**![pause](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwNCAxNzZoODB2NjcyaC04MHptNDA4IDBoLTY0Yy00LjQgMC04IDMuNi04IDh2NjU2YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTg0YzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(PauseOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"PauseOutlined\";\n}\nvar _default = RefIcon;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.information{align-items:center;display:flex;flex-direction:column;padding-top:2.2857142857rem;margin-bottom:0.2857142857rem}.information p{color:var(--colorText);margin-bottom:0.1428571429rem;text-align:center}.information__header{font-size:1rem !important}.information__sub-line{font-size:0.8571428571rem !important}.information__email{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/NotYou/NotYou.scss\"],\"names\":[],\"mappings\":\"AAEA,aACE,kBAAA,CACA,YAAA,CACA,qBAAA,CACA,2BAAA,CACA,6BAAA,CAEA,eACE,sBAAA,CACA,6BAAA,CACA,iBAAA,CAGF,qBACE,yBAAA,CAGF,uBACE,oCAAA,CAGF,oBACE,gBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.information {\\n align-items: center;\\n display: flex;\\n flex-direction: column;\\n padding-top: common.toRem(32);\\n margin-bottom: common.toRem(4);\\n\\n p {\\n color: var(--colorText);\\n margin-bottom: common.toRem(2);\\n text-align: center;\\n }\\n\\n &__header {\\n font-size: common.toRem(14) !important;\\n }\\n\\n &__sub-line {\\n font-size: common.toRem(12) !important;\\n }\\n\\n &__email {\\n font-weight: bold;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"d7d616d4aa8fd3f51d681242853dcde9.js\";","import useHoverDirty from './useHoverDirty';\nimport useMouse from './useMouse';\nvar nullRef = { current: null };\nvar useMouseHovered = function (ref, options) {\n if (options === void 0) { options = {}; }\n var whenHovered = !!options.whenHovered;\n var bound = !!options.bound;\n var isHovered = useHoverDirty(ref, whenHovered);\n var state = useMouse(whenHovered && !isHovered ? nullRef : ref);\n if (bound) {\n state.elX = Math.max(0, Math.min(state.elX, state.elW));\n state.elY = Math.max(0, Math.min(state.elY, state.elH));\n }\n return state;\n};\nexport default useMouseHovered;\n","module.exports = __webpack_public_path__ + \"5348f3cfbe5a63954e7d984f197bbddb.js\";","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 AbstractCalculator from \"./calculator\";\nvar NumCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n _inherits(NumCalculator, _AbstractCalculator);\n var _super = _createSuper(NumCalculator);\n function NumCalculator(num) {\n var _this;\n _classCallCheck(this, NumCalculator);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"result\", 0);\n if (num instanceof NumCalculator) {\n _this.result = num.result;\n } else if (typeof num === 'number') {\n _this.result = num;\n }\n return _this;\n }\n _createClass(NumCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof NumCalculator) {\n this.result += num.result;\n } else if (typeof num === 'number') {\n this.result += num;\n }\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof NumCalculator) {\n this.result -= num.result;\n } else if (typeof num === 'number') {\n this.result -= num;\n }\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (num instanceof NumCalculator) {\n this.result *= num.result;\n } else if (typeof num === 'number') {\n this.result *= num;\n }\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (num instanceof NumCalculator) {\n this.result /= num.result;\n } else if (typeof num === 'number') {\n this.result /= num;\n }\n return this;\n }\n }, {\n key: \"equal\",\n value: function equal() {\n return this.result;\n }\n }]);\n return NumCalculator;\n}(AbstractCalculator);\nexport default NumCalculator;","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.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 * 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\nexport default baseKeys;\n","export const ADD_BANNER_DATA = 'ADD_BANNER_DATA';\nexport const REMOVE_BANNER_BY_KEY = 'REMOVE_BANNER_BY_KEY';\nexport const REMOVE_ALL_BANNERS = 'REMOVE_ALL_BANNERS';\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport { devUseWarning } from '../_util/warning';\nimport DatePicker from '../date-picker';\nimport useVariant from '../form/hooks/useVariants';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => (/*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n}))));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter,\n variant,\n bordered\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\", \"variant\", \"bordered\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('TimePicker');\n warning.deprecated(!addon, 'addon', 'renderExtraFooter');\n }\n const [mergedVariant] = useVariant('timePicker', variant, bordered);\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter,\n variant: mergedVariant\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 * 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 baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\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","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","import { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { initComponentToken, initInputToken } from './token';\n// =============================== OTP ================================\nconst genOTPStyle = token => {\n const {\n componentCls,\n paddingXS\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n alignItems: 'center',\n flexWrap: 'nowrap',\n columnGap: paddingXS,\n '&-rtl': {\n direction: 'rtl'\n },\n [`${componentCls}-input`]: {\n textAlign: 'center',\n paddingInline: token.paddingXXS\n },\n // ================= Size =================\n [`&${componentCls}-sm ${componentCls}-input`]: {\n paddingInline: token.calc(token.paddingXXS).div(2).equal()\n },\n [`&${componentCls}-lg ${componentCls}-input`]: {\n paddingInline: token.paddingXS\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks(['Input', 'OTP'], token => {\n const inputToken = mergeToken(token, initInputToken(token));\n return [genOTPStyle(inputToken)];\n}, initComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport Input from '../Input';\nconst OTPInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n value,\n onChange,\n onActiveChange,\n index,\n mask\n } = props,\n restProps = __rest(props, [\"value\", \"onChange\", \"onActiveChange\", \"index\", \"mask\"]);\n const internalValue = value && typeof mask === 'string' ? mask : value;\n const onInternalChange = e => {\n onChange(index, e.target.value);\n };\n // ========================== Ref ===========================\n const inputRef = React.useRef(null);\n React.useImperativeHandle(ref, () => inputRef.current);\n // ========================= Focus ==========================\n const syncSelection = () => {\n raf(() => {\n var _a;\n const inputEle = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input;\n if (document.activeElement === inputEle && inputEle) {\n inputEle.select();\n }\n });\n };\n // ======================== Keyboard ========================\n const onInternalKeyDown = _ref => {\n let {\n key\n } = _ref;\n if (key === 'ArrowLeft') {\n onActiveChange(index - 1);\n } else if (key === 'ArrowRight') {\n onActiveChange(index + 1);\n }\n syncSelection();\n };\n const onInternalKeyUp = e => {\n if (e.key === 'Backspace' && !value) {\n onActiveChange(index - 1);\n }\n syncSelection();\n };\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n type: mask === true ? 'password' : 'text'\n }, restProps, {\n ref: inputRef,\n value: internalValue,\n onInput: onInternalChange,\n onFocus: syncSelection,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onMouseDown: syncSelection,\n onMouseUp: syncSelection\n }));\n});\nexport default OTPInput;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { getMergedStatus } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useStyle from '../style/otp';\nimport OTPInput from './OTPInput';\nfunction strToArr(str) {\n return (str || '').split('');\n}\nconst OTP = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n length = 6,\n size: customSize,\n defaultValue,\n value,\n onChange,\n formatter,\n variant,\n disabled,\n status: customStatus,\n autoFocus,\n mask,\n type\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"length\", \"size\", \"defaultValue\", \"value\", \"onChange\", \"formatter\", \"variant\", \"disabled\", \"status\", \"autoFocus\", \"mask\", \"type\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Input.OTP');\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof mask === 'string' && mask.length > 1), 'usage', '`mask` prop should be a single character.') : void 0;\n }\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('otp', customizePrefixCls);\n const domAttrs = pickAttrs(restProps, {\n aria: true,\n data: true,\n attr: true\n });\n // ========================= Root =========================\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // ========================= Size =========================\n const mergedSize = useSize(ctx => customSize !== null && customSize !== void 0 ? customSize : ctx);\n // ======================== Status ========================\n const formContext = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(formContext.status, customStatus);\n const proxyFormContext = React.useMemo(() => Object.assign(Object.assign({}, formContext), {\n status: mergedStatus,\n hasFeedback: false,\n feedbackIcon: null\n }), [formContext, mergedStatus]);\n // ========================= Refs =========================\n const containerRef = React.useRef(null);\n const refs = React.useRef({});\n React.useImperativeHandle(ref, () => ({\n focus: () => {\n var _a;\n (_a = refs.current[0]) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: () => {\n var _a;\n for (let i = 0; i < length; i += 1) {\n (_a = refs.current[i]) === null || _a === void 0 ? void 0 : _a.blur();\n }\n },\n nativeElement: containerRef.current\n }));\n // ======================= Formatter ======================\n const internalFormatter = txt => formatter ? formatter(txt) : txt;\n // ======================== Values ========================\n const [valueCells, setValueCells] = React.useState(strToArr(internalFormatter(defaultValue || '')));\n React.useEffect(() => {\n if (value !== undefined) {\n setValueCells(strToArr(value));\n }\n }, [value]);\n const triggerValueCellsChange = useEvent(nextValueCells => {\n setValueCells(nextValueCells);\n // Trigger if all cells are filled\n if (onChange && nextValueCells.length === length && nextValueCells.every(c => c) && nextValueCells.some((c, index) => valueCells[index] !== c)) {\n onChange(nextValueCells.join(''));\n }\n });\n const patchValue = useEvent((index, txt) => {\n let nextCells = _toConsumableArray(valueCells);\n // Fill cells till index\n for (let i = 0; i < index; i += 1) {\n if (!nextCells[i]) {\n nextCells[i] = '';\n }\n }\n if (txt.length <= 1) {\n nextCells[index] = txt;\n } else {\n nextCells = nextCells.slice(0, index).concat(strToArr(txt));\n }\n nextCells = nextCells.slice(0, length);\n // Clean the last empty cell\n for (let i = nextCells.length - 1; i >= 0; i -= 1) {\n if (nextCells[i]) {\n break;\n }\n nextCells.pop();\n }\n // Format if needed\n const formattedValue = internalFormatter(nextCells.map(c => c || ' ').join(''));\n nextCells = strToArr(formattedValue).map((c, i) => {\n if (c === ' ' && !nextCells[i]) {\n return nextCells[i];\n }\n return c;\n });\n return nextCells;\n });\n // ======================== Change ========================\n const onInputChange = (index, txt) => {\n var _a;\n const nextCells = patchValue(index, txt);\n const nextIndex = Math.min(index + txt.length, length - 1);\n if (nextIndex !== index) {\n (_a = refs.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n triggerValueCellsChange(nextCells);\n };\n const onInputActiveChange = nextIndex => {\n var _a;\n (_a = refs.current[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();\n };\n // ======================== Render ========================\n const inputSharedProps = {\n variant,\n disabled,\n status: mergedStatus,\n mask,\n type\n };\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, domAttrs, {\n ref: containerRef,\n className: classNames(prefixCls, {\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, cssVarCls, hashId)\n }), /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: proxyFormContext\n }, Array.from({\n length\n }).map((_, index) => {\n const key = `otp-${index}`;\n const singleValue = valueCells[index] || '';\n return /*#__PURE__*/React.createElement(OTPInput, Object.assign({\n ref: inputEle => {\n refs.current[index] = inputEle;\n },\n key: key,\n index: index,\n size: mergedSize,\n htmlSize: 1,\n className: `${prefixCls}-input`,\n onChange: onInputChange,\n value: singleValue,\n onActiveChange: onInputActiveChange,\n autoFocus: index === 0 && autoFocus\n }, inputSharedProps));\n }))));\n});\nexport default OTP;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nimport DisabledContext from '../config-provider/DisabledContext';\nconst defaultIconRender = visible => visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\nconst actionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nconst Password = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n disabled: customDisabled,\n action = 'click',\n visibilityToggle = true,\n iconRender = defaultIconRender\n } = props;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;\n const [visible, setVisible] = useState(() => visibilityControlled ? visibilityToggle.visible : false);\n const inputRef = useRef(null);\n React.useEffect(() => {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n const onVisibleChange = () => {\n if (mergedDisabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(prevState => {\n var _a;\n const newState = !prevState;\n if (typeof visibilityToggle === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n const getIcon = prefixCls => {\n const iconTrigger = actionMap[action] || '';\n const icon = iconRender(visible);\n const iconProps = {\n [iconTrigger]: onVisibleChange,\n className: `${prefixCls}-icon`,\n key: 'passwordIcon',\n onMouseDown: e => {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n },\n onMouseUp: e => {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n }\n };\n return /*#__PURE__*/React.cloneElement(/*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n const {\n className,\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n size\n } = props,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const prefixCls = getPrefixCls('input-password', customizePrefixCls);\n const suffixIcon = visibilityToggle && getIcon(prefixCls);\n const inputClassName = classNames(prefixCls, className, {\n [`${prefixCls}-${size}`]: !!size\n });\n const omittedProps = Object.assign(Object.assign({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Input.Password';\n}\nexport default Password;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { cloneElement } from '../_util/reactNode';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Input from './Input';\nconst Search = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n className,\n size: customizeSize,\n suffix,\n enterButton = false,\n addonAfter,\n loading,\n disabled,\n onSearch: customOnSearch,\n onChange: customOnChange,\n onCompositionStart,\n onCompositionEnd\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const composedRef = React.useRef(false);\n const prefixCls = getPrefixCls('input-search', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const {\n compactSize\n } = useCompactItemContext(prefixCls, direction);\n const size = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n const inputRef = React.useRef(null);\n const onChange = e => {\n if ((e === null || e === void 0 ? void 0 : e.target) && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e, {\n source: 'clear'\n });\n }\n customOnChange === null || customOnChange === void 0 ? void 0 : customOnChange(e);\n };\n const onMouseDown = e => {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n const onSearch = e => {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e, {\n source: 'input'\n });\n }\n };\n const onPressEnter = e => {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n const btnClassName = `${prefixCls}-button`;\n let button;\n const enterButtonAsElement = enterButton || {};\n const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, Object.assign({\n onMouseDown,\n onClick: e => {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: !!size,\n [`${prefixCls}-with-button`]: !!enterButton\n }, className);\n const handleOnCompositionStart = e => {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n const handleOnCompositionEnd = e => {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","\"use client\";\n\nimport Group from './Group';\nimport InternalInput from './Input';\nimport OTP from './OTP';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nconst Input = InternalInput;\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nInput.OTP = OTP;\nexport default Input;","\"use client\";\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className\n } = props;\n const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input');\n const [wrapCSSVar, hashId] = useStyle(inputPrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-lg`]: props.size === 'large',\n [`${prefixCls}-sm`]: props.size === 'small',\n [`${prefixCls}-compact`]: props.compact,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, className);\n const formItemContext = useContext(FormItemInputContext);\n const groupFormItemContext = useMemo(() => Object.assign(Object.assign({}, formItemContext), {\n isFormItemInput: false\n }), [formItemContext]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Input.Group');\n warning.deprecated(false, 'Input.Group', 'Space.Compact');\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children)));\n};\nexport default Group;","import {\n REQUEST_GET_INITIAL_DATA,\n REQUEST_GET_IDENTITY_PROVIDERS,\n SET_IDENTITY_PROVIDER_TYPES,\n SET_IDENTITY_PROVIDERS,\n REQUEST_SYNC_IDENTITY_PROVIDER,\n REQUEST_UPSERT_IDENTITY_PROVIDER,\n OAUTH_SET_AUTH_URL,\n OAUTH_REQUEST_CALLBACK,\n REQUEST_GET_GROUPS,\n REQUEST_GET_GROUP_RELATIONS,\n SET_GROUP_RELATIONS,\n REQUEST_GET_IDP_GROUPS,\n SET_IDENTITY_PROVIDER_GROUPS,\n INACTIVATE_IDP,\n REQUEST_CREATE_VIDEO_PROVIDER,\n REQUEST_UPDATE_VIDEO_PROVIDER,\n REQUEST_IDP_REAUTH,\n} from './constants';\n\nexport function setIdentityProviderGroups(code, data) {\n return {\n type: SET_IDENTITY_PROVIDER_GROUPS,\n code,\n data,\n };\n}\nexport function requestGetIdentityProviderGroups(idpId, code, status, query) {\n return {\n type: REQUEST_GET_IDP_GROUPS,\n idpId,\n code,\n status,\n query,\n };\n}\n\nexport function requestGetInitialData() {\n return {\n type: REQUEST_GET_INITIAL_DATA,\n };\n}\n// export function requestGetInitialData(directorySyncFeatureAvailable) {\n// return {\n// type: REQUEST_GET_INITIAL_DATA,\n// directorySyncFeatureAvailable,\n// }\n// }\n\n// @TODO - this may not be necessary any more\nexport function requestGetIdentityProviders() {\n return {\n type: REQUEST_GET_IDENTITY_PROVIDERS,\n };\n}\n\nexport function setIdentityProviderTypes(identityProviderTypes) {\n return {\n type: SET_IDENTITY_PROVIDER_TYPES,\n data: identityProviderTypes,\n };\n}\n\nexport function setIdentityProviders(identityProviders) {\n return {\n type: SET_IDENTITY_PROVIDERS,\n data: identityProviders,\n };\n}\n\nexport function requestSyncIdentityProvider(identityProviderId) {\n return {\n type: REQUEST_SYNC_IDENTITY_PROVIDER,\n id: identityProviderId,\n };\n}\n\nexport function requestUpsertIdentityProvider({ idpt, idpPageItems }) {\n return {\n type: REQUEST_UPSERT_IDENTITY_PROVIDER,\n idpt,\n idpPageItems,\n };\n}\n\nexport function setOAuthRedirectUrl(url) {\n return {\n type: OAUTH_SET_AUTH_URL,\n url,\n };\n}\n\nexport function requestPostOAuthCallback(authCode, authState, siteCode) {\n return {\n type: OAUTH_REQUEST_CALLBACK,\n authCode,\n authState,\n siteCode,\n };\n}\n\nexport function requestIdpReauth(orgId, idpId) {\n return {\n type: REQUEST_IDP_REAUTH,\n orgId,\n idpId,\n };\n}\n\nexport function requestGetGroups() {\n return {\n type: REQUEST_GET_GROUPS,\n };\n}\n\nexport function requestGetGroupRelations(identityProviderId) {\n return {\n type: REQUEST_GET_GROUP_RELATIONS,\n id: identityProviderId,\n };\n}\n\nexport function setGroupRelations(identityProviderCode, groupRelations) {\n return {\n type: SET_GROUP_RELATIONS,\n data: groupRelations,\n code: identityProviderCode,\n };\n}\n\nexport function inactivateIdp(identityProviderId) {\n return {\n type: INACTIVATE_IDP,\n identityProviderId,\n };\n}\n\n// This shouldn't live here\nexport function requestCreateVideoProvider({\n videoProviderTypeId,\n apiKey,\n authState,\n name,\n supportsGroups,\n}) {\n return {\n type: REQUEST_CREATE_VIDEO_PROVIDER,\n videoProviderTypeId,\n apiKey,\n authState,\n name,\n supportsGroups,\n };\n}\n\n// This shouldn't live here\nexport function requestUpdateVideoProvider(\n videoProviderId,\n { apiKey, authState, name, supportsGroups },\n) {\n return {\n type: REQUEST_UPDATE_VIDEO_PROVIDER,\n videoProviderId,\n apiKey,\n authState,\n name,\n supportsGroups,\n };\n}\n","module.exports = __webpack_public_path__ + \"cb5746e29527a2fdb9f857a121e086ed.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _CloseOutlined = _interopRequireDefault(require('./lib/icons/CloseOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _CloseOutlined;\nexports.default = _default;\nmodule.exports = _default;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSkeleton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSkeleton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport Skeleton from 'antd/es/skeleton';\nimport clsx from 'clsx';\n\nimport './OpSkeleton.scss';\n\ntype OpSkeletonCheckboxType = Omit<\n ComponentProps,\n 'shape'\n> & {\n skeletonAvatarProps?: ComponentProps;\n skeletonProps?: ComponentProps;\n};\n\nconst OpSkeletonCheckbox = ({\n className,\n skeletonAvatarProps,\n skeletonProps,\n}: OpSkeletonCheckboxType) => (\n
\n \n \n
\n);\nexport const OpSkeleton = ({\n className,\n ...skeletonProps\n}: ComponentProps) => (\n \n);\n\nOpSkeleton.Button = Skeleton.Button;\nOpSkeleton.Avatar = Skeleton.Avatar;\nOpSkeleton.Input = Skeleton.Input;\nOpSkeleton.Image = Skeleton.Image;\nOpSkeleton.Node = Skeleton.Node;\nOpSkeleton.Checkbox = OpSkeletonCheckbox;\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","import { useToken } from '../../theme/internal';\n/**\n * This hook is only for cssVar to add root className for components.\n * If root ClassName is needed, this hook could be refactored with `-root`\n * @param prefixCls\n */\nconst useCSSVarCls = prefixCls => {\n const [,,,, cssVar] = useToken();\n return cssVar ? `${prefixCls}-css-var` : '';\n};\nexport default useCSSVarCls;","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\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// 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\nmodule.exports = Hash;\n","module.exports = __webpack_public_path__ + \"d76046afaf4d32b0f0afb63b4fabc680.js\";","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexports.default = QuestionCircleOutlined;\n","export function getMotion(prefixCls, transitionName) {\n return {\n motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n let closeFn;\n const closePromise = new Promise(resolve => {\n closeFn = openFn(() => {\n resolve(true);\n });\n });\n const result = () => {\n closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}","module.exports = __webpack_public_path__ + \"c8acc93023012737a3bf8fb767b66838.js\";","module.exports = __webpack_public_path__ + \"a3a941911290b143d26ceb5e776e1d18.js\";","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","module.exports = __webpack_public_path__ + \"2f25a4dc442bc9aebc58cae30c50c3e2.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-code-editor{font-family:Monaco,Menlo,\"Ubuntu Mono\",Consolas,source-code-pro,monospace !important;width:100% !important;border:0.0714285714rem solid var(--colorBorderSecondary);border-radius:0.2857142857rem;padding-left:0.7142857143rem;padding-right:2.8571428571rem}.op-code-editor .ace_gutter{z-index:1 !important}.op-code-editor .ace_scrollbar{z-index:1 !important}.op-code-editor .css-45sl8r-ClearIndicator{z-index:3 !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpCodeEditor/OpCodeEditor.scss\"],\"names\":[],\"mappings\":\"AAEA,gBACE,oFAAA,CAEA,qBAAA,CACA,wDAAA,CACA,6BAAA,CACA,4BAAA,CACA,6BAAA,CAgBA,4BACE,oBAAA,CAGF,+BACE,oBAAA,CAGF,2CACE,oBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-code-editor {\\n font-family: Monaco, Menlo, 'Ubuntu Mono', Consolas, source-code-pro,\\n monospace !important;\\n width: 100% !important;\\n border: common.toRem(1) solid var(--colorBorderSecondary);\\n border-radius: common.toRem(4);\\n padding-left: common.toRem(10);\\n padding-right: common.toRem(40);\\n\\n // Prevent editing the code in the editor when disabled, but still allow scrolling\\n // &--disabled {\\n // .ace_scroller {\\n // opacity: 0.5;\\n // }\\n // }\\n\\n // &--error {\\n // border-color: var(--colorErrorText);\\n // background-color: var(--colorErrorBg);\\n // }\\n\\n /** Ace Editor Changes to prevent table z-index issues */\\n //! We Need this - do not delete - if you do delete it: run a portal audit report -> expand json -> scroll down\\n .ace_gutter {\\n z-index: 1 !important;\\n }\\n\\n .ace_scrollbar {\\n z-index: 1 !important;\\n }\\n\\n .css-45sl8r-ClearIndicator {\\n z-index: 3 !important;\\n /* Normal is z-index: 10 */\\n }\\n\\n // /* This cuts off text so it doesn't overflow */\\n // .css-ltvhks {\\n // position: relative !important;\\n // overflow: hidden !important;\\n // }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"f326f2f263b1498fedbe1d07d7254d10.js\";","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\n}\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","import { HeliumClient } from '@msi-alta/helium-client';\nimport { jwtDecode } from 'jwt-decode';\nimport * as Sentry from '@sentry/react';\n// @TODO - refactor this function into here post-refactor\nimport { parseDebugTeapot } from './request';\nimport {\n getAccessToken,\n setAccessToken,\n removeAccessToken,\n} from './accessToken';\nimport { getWindowLocation } from './window';\n\nconst openpathConfig = require('openpathConfig');\n\nconst TOKEN_EXPIRATION_LIMIT = 10800;\nconst MAINTENANCE_MODE_CHECK_INTERVAL = 1000 * 60 * 5; // 5 minutes\n\nconst server = openpathConfig.PORTAL_API_URL;\nlet token: string | null = null;\n\nif (openpathConfig.ENV !== 'test') {\n token = getAccessToken();\n}\n\nexport default class Helium {\n static async checkForMaintenanceMode(\n forceCheck = false,\n callback = () => null,\n ) {\n const mCheck = window.sessionStorage.getItem('mCheck');\n if (\n forceCheck ||\n !mCheck ||\n Date.now() - Number(mCheck) > MAINTENANCE_MODE_CHECK_INTERVAL\n ) {\n window.sessionStorage.setItem('mCheck', String(Date.now()));\n try {\n const { json: maintenanceCheck } = await Helium.client\n .raw()\n .checkMaintenanceEndpoint(openpathConfig.configUrl);\n if (maintenanceCheck?.maintenanceMode) {\n const windowLocation = getWindowLocation();\n if (windowLocation.pathname !== '/maintenance') {\n windowLocation.href = '/maintenance';\n }\n } else if (callback) {\n callback();\n }\n } catch (ex) {\n // eslint-disable-next-line no-console\n console.log(`Something went wrong with maintenanceCheck (${ex})`);\n }\n }\n }\n\n static async checkForExpiringToken() {\n if (openpathConfig.ENV === 'test') {\n return;\n }\n\n const cookieToken = getAccessToken();\n\n // if we don't have a cookie, just return\n if (!cookieToken) {\n return;\n }\n\n // If the token is expiring, we need a new one\n let tempToken: { exp: number } | null = null;\n try {\n tempToken = jwtDecode(cookieToken);\n } catch {\n // - Also make this a utility called clearToken() and hook up anywhere we need to do this\n Sentry.captureMessage(\n 'Caught error decoding token in checkForExpiringToken(). User will be logged out.',\n {\n contexts: {\n token: { isUndefined: cookieToken === undefined },\n },\n },\n );\n\n // eslint-disable-next-line no-console\n console.debug(\n 'Caught error decoding token in checkForExpiringToken(). User will be logged out.',\n );\n removeAccessToken();\n getWindowLocation().href = '/';\n }\n const expirationTime = tempToken?.exp || 0;\n const currentTime = new Date().getTime() / 1000;\n\n if (\n expirationTime - currentTime < TOKEN_EXPIRATION_LIMIT &&\n expirationTime - currentTime > 0\n ) {\n removeAccessToken();\n try {\n const response = await Helium.client.refreshLogin();\n const newToken = response.json.data.token;\n\n setAccessToken(newToken);\n } catch (ex) {\n console.error(`Something went wrong refreshing token ${ex}`);\n }\n }\n }\n\n // This function will get called on (almost) every request HeliumClient sends\n // out so we can do platinum-specific stuff\n static async postRequestCallback(\n expectCode: any,\n rawResponse: { statusCode: number; json: { message: string } },\n ) {\n if (openpathConfig.ENV === 'test') {\n return;\n }\n const { statusCode } = rawResponse;\n // check status code for specifics\n if (!statusCode) throw new Error('Helium request didnt get a status code!');\n switch (statusCode) {\n // Handle 401 if we used an expired token\n // If so, we are gonna kick them back to login page\n // (this should rarely happen though since we checkForExpiringToken()\n // at the end end of near every request)\n case 401: {\n /** We do not want to run this logic during login for the cases where\n * MFA or namespace are required */\n if (\n ![\n 'Multi-factor authentication is required.', // MFA required during regular login\n 'Namespace is required.', // When email/password combo associated with multiple namespaces in SSO login and forgot password\n ].includes(rawResponse.json.message)\n ) {\n removeAccessToken();\n getWindowLocation().href = '/';\n }\n\n break;\n }\n // We co-op the 418 (Teapot) error to distinguish from other errors\n // when we're using `op-scope-check` headers to check API scopes.\n case 418: {\n await parseDebugTeapot(rawResponse);\n break;\n }\n default:\n break;\n }\n // check if we need to be in maintenance mode or if this route is\n // disabled (if interval isn't up it will early out)\n await Helium.checkForMaintenanceMode();\n\n // Check if our token is about to expire, if so, we'll just refresh it\n // before it runs out\n await Helium.checkForExpiringToken();\n }\n\n static client = HeliumClient.forLiveServer(\n server,\n token,\n Helium.postRequestCallback,\n true,\n );\n}\n\nexport class DynamicHelium extends Helium {\n baseUrl: string;\n\n constructor(baseUrl: string) {\n super();\n this.baseUrl = baseUrl;\n }\n\n createClient() {\n return HeliumClient.forLiveServer(\n this.baseUrl,\n token,\n Helium.postRequestCallback,\n true,\n );\n }\n}\n","'use strict';\nmodule.exports = {};\n","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\nimport { prepareComponentToken, prepareToken } from './token';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n const {\n componentCls,\n iconCls,\n fontWeight\n } = token;\n return {\n [componentCls]: {\n outline: 'none',\n position: 'relative',\n display: 'inline-flex',\n gap: token.marginXS,\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n backgroundImage: 'none',\n background: 'transparent',\n border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n userSelect: 'none',\n touchAction: 'manipulation',\n color: token.colorText,\n '&:disabled > *': {\n pointerEvents: 'none'\n },\n '> span': {\n // https://github.com/ant-design/ant-design/issues/51380\n display: 'inline-flex'\n },\n [`${componentCls}-icon`]: {\n lineHeight: 1\n },\n '> a': {\n color: 'currentColor'\n },\n '&:not(:disabled)': Object.assign({}, genFocusStyle(token)),\n [`&${componentCls}-two-chinese-chars::first-letter`]: {\n letterSpacing: '0.34em'\n },\n [`&${componentCls}-two-chinese-chars > *:not(${iconCls})`]: {\n marginInlineEnd: '-0.34em',\n letterSpacing: '0.34em'\n },\n // iconPosition=\"end\"\n '&-icon-end': {\n flexDirection: 'row-reverse'\n }\n }\n };\n};\nconst genHoverActiveButtonStyle = (btnCls, hoverStyle, activeStyle) => ({\n [`&:not(:disabled):not(${btnCls}-disabled)`]: {\n '&:hover': hoverStyle,\n '&:active': activeStyle\n }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n minWidth: token.controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n borderRadius: token.controlHeight,\n paddingInlineStart: token.calc(token.controlHeight).div(2).equal(),\n paddingInlineEnd: token.calc(token.controlHeight).div(2).equal()\n});\nconst genDisabledStyle = token => ({\n cursor: 'not-allowed',\n borderColor: token.borderColorDisabled,\n color: token.colorTextDisabled,\n background: token.colorBgContainerDisabled,\n boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, background, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n color: textColor || undefined,\n background,\n borderColor: borderColor || undefined,\n boxShadow: 'none'\n }, genHoverActiveButtonStyle(btnCls, Object.assign({\n background\n }, hoverStyle), Object.assign({\n background\n }, activeStyle))), {\n '&:disabled': {\n cursor: 'not-allowed',\n color: textColorDisabled || undefined,\n borderColor: borderColorDisabled || undefined\n }\n })\n});\nconst genSolidDisabledButtonStyle = token => ({\n [`&:disabled, &${token.componentCls}-disabled`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genPureDisabledButtonStyle = token => ({\n [`&:disabled, &${token.componentCls}-disabled`]: {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n }\n});\n// ============================== Variant =============================\nconst genVariantButtonStyle = (token, hoverStyle, activeStyle, variant) => {\n const isPureDisabled = variant && ['link', 'text'].includes(variant);\n const genDisabledButtonStyle = isPureDisabled ? genPureDisabledButtonStyle : genSolidDisabledButtonStyle;\n return Object.assign(Object.assign({}, genDisabledButtonStyle(token)), genHoverActiveButtonStyle(token.componentCls, hoverStyle, activeStyle));\n};\nconst genSolidButtonStyle = (token, textColor, background, hoverStyle, activeStyle) => ({\n [`&${token.componentCls}-variant-solid`]: Object.assign({\n color: textColor,\n background\n }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genOutlinedDashedButtonStyle = (token, borderColor, background, hoverStyle, activeStyle) => ({\n [`&${token.componentCls}-variant-outlined, &${token.componentCls}-variant-dashed`]: Object.assign({\n borderColor,\n background\n }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genDashedButtonStyle = token => ({\n [`&${token.componentCls}-variant-dashed`]: {\n borderStyle: 'dashed'\n }\n});\nconst genFilledButtonStyle = (token, background, hoverStyle, activeStyle) => ({\n [`&${token.componentCls}-variant-filled`]: Object.assign({\n boxShadow: 'none',\n background\n }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genTextLinkButtonStyle = (token, textColor, variant, hoverStyle, activeStyle) => ({\n [`&${token.componentCls}-variant-${variant}`]: Object.assign({\n color: textColor,\n boxShadow: 'none'\n }, genVariantButtonStyle(token, hoverStyle, activeStyle, variant))\n});\n// =============================== Color ==============================\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.defaultColor,\n boxShadow: token.defaultShadow\n}, genSolidButtonStyle(token, token.solidTextColor, token.colorBgSolid, {\n background: token.colorBgSolidHover\n}, {\n background: token.colorBgSolidActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorFillTertiary, {\n background: token.colorFillSecondary\n}, {\n background: token.colorFill\n})), genTextLinkButtonStyle(token, token.textTextColor, 'link', {\n color: token.colorLinkHover,\n background: token.linkHoverBg\n}, {\n color: token.colorLinkActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.defaultGhostColor, token.defaultGhostBorderColor, token.colorTextDisabled, token.colorBorder));\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorPrimary,\n boxShadow: token.primaryShadow\n}, genOutlinedDashedButtonStyle(token, token.colorPrimary, token.colorBgContainer, {\n color: token.colorPrimaryTextHover,\n borderColor: token.colorPrimaryHover,\n background: token.colorBgContainer\n}, {\n color: token.colorPrimaryTextActive,\n borderColor: token.colorPrimaryActive,\n background: token.colorBgContainer\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorPrimaryBg, {\n background: token.colorPrimaryBgHover\n}, {\n background: token.colorPrimaryBorder\n})), genTextLinkButtonStyle(token, token.colorLink, 'text', {\n color: token.colorPrimaryTextHover,\n background: token.colorPrimaryBg\n}, {\n color: token.colorPrimaryTextActive,\n background: token.colorPrimaryBorder\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n}));\nconst genDangerousStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorError,\n boxShadow: token.dangerShadow\n}, genSolidButtonStyle(token, token.dangerColor, token.colorError, {\n background: token.colorErrorHover\n}, {\n background: token.colorErrorActive\n})), genOutlinedDashedButtonStyle(token, token.colorError, token.colorBgContainer, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorBorderHover\n}, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorErrorBg, {\n background: token.colorErrorBgFilledHover\n}, {\n background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'text', {\n color: token.colorErrorHover,\n background: token.colorErrorBg\n}, {\n color: token.colorErrorHover,\n background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'link', {\n color: token.colorErrorHover\n}, {\n color: token.colorErrorActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorHover\n}, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n}));\nconst genColorButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-color-default`]: genDefaultButtonStyle(token),\n [`${componentCls}-color-primary`]: genPrimaryButtonStyle(token),\n [`${componentCls}-color-dangerous`]: genDangerousStyle(token)\n };\n};\n// =========== Compatible with versions earlier than 5.21.0 ===========\nconst genCompatibleButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign({}, genOutlinedDashedButtonStyle(token, token.defaultBorderColor, token.defaultBg, {\n color: token.defaultHoverColor,\n borderColor: token.defaultHoverBorderColor,\n background: token.defaultHoverBg\n}, {\n color: token.defaultActiveColor,\n borderColor: token.defaultActiveBorderColor,\n background: token.defaultActiveBg\n})), genTextLinkButtonStyle(token, token.textTextColor, 'text', {\n color: token.textTextHoverColor,\n background: token.textHoverBg\n}, {\n color: token.textTextActiveColor,\n background: token.colorBgTextActive\n})), genSolidButtonStyle(token, token.primaryColor, token.colorPrimary, {\n background: token.colorPrimaryHover,\n color: token.primaryColor\n}, {\n background: token.colorPrimaryActive,\n color: token.primaryColor\n})), genTextLinkButtonStyle(token, token.colorLink, 'link', {\n color: token.colorLinkHover,\n background: token.linkHoverBg\n}, {\n color: token.colorLinkActive\n}));\n// =============================== Size ===============================\nconst genButtonStyle = function (token) {\n let prefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const {\n componentCls,\n controlHeight,\n fontSize,\n lineHeight,\n borderRadius,\n buttonPaddingHorizontal,\n iconCls,\n buttonPaddingVertical\n } = token;\n const iconOnlyCls = `${componentCls}-icon-only`;\n return [{\n [prefixCls]: {\n fontSize,\n lineHeight,\n height: controlHeight,\n padding: `${unit(buttonPaddingVertical)} ${unit(buttonPaddingHorizontal)}`,\n borderRadius,\n [`&${iconOnlyCls}`]: {\n width: controlHeight,\n paddingInline: 0,\n // make `btn-icon-only` not too narrow\n [`&${componentCls}-compact-item`]: {\n flex: 'none'\n },\n [`&${componentCls}-round`]: {\n width: 'auto'\n },\n [iconCls]: {\n fontSize: token.buttonIconOnlyFontSize\n }\n },\n // Loading\n [`&${componentCls}-loading`]: {\n opacity: token.opacityLoading,\n cursor: 'default'\n },\n [`${componentCls}-loading-icon`]: {\n transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`\n }\n }\n },\n // Shape - patch prefixCls again to override solid border radius style\n {\n [`${componentCls}${componentCls}-circle${prefixCls}`]: genCircleButtonStyle(token)\n }, {\n [`${componentCls}${componentCls}-round${prefixCls}`]: genRoundButtonStyle(token)\n }];\n};\nconst genSizeBaseButtonStyle = token => {\n const baseToken = mergeToken(token, {\n fontSize: token.contentFontSize,\n lineHeight: token.contentLineHeight\n });\n return genButtonStyle(baseToken, token.componentCls);\n};\nconst genSizeSmallButtonStyle = token => {\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n fontSize: token.contentFontSizeSM,\n lineHeight: token.contentLineHeightSM,\n padding: token.paddingXS,\n buttonPaddingHorizontal: token.paddingInlineSM,\n buttonPaddingVertical: token.paddingBlockSM,\n borderRadius: token.borderRadiusSM,\n buttonIconOnlyFontSize: token.onlyIconSizeSM\n });\n return genButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n const largeToken = mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.contentFontSizeLG,\n lineHeight: token.contentLineHeightLG,\n buttonPaddingHorizontal: token.paddingInlineLG,\n buttonPaddingVertical: token.paddingBlockLG,\n borderRadius: token.borderRadiusLG,\n buttonIconOnlyFontSize: token.onlyIconSizeLG\n });\n return genButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`&${componentCls}-block`]: {\n width: '100%'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Button', token => {\n const buttonToken = prepareToken(token);\n return [\n // Shared\n genSharedButtonStyle(buttonToken),\n // Size\n genSizeBaseButtonStyle(buttonToken), genSizeSmallButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n // Block\n genBlockButtonStyle(buttonToken),\n // Color\n genColorButtonStyle(buttonToken),\n // https://github.com/ant-design/ant-design/issues/50969\n genCompatibleButtonStyle(buttonToken),\n // Button Group\n genGroupStyle(buttonToken)];\n}, prepareComponentToken, {\n unitless: {\n fontWeight: true,\n contentLineHeight: true,\n contentLineHeightSM: true,\n contentLineHeightLG: true\n }\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\nmodule.exports = trimmedEndIndex;\n","import { generate, presetPalettes, presetPrimaryColors } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport genControlHeight from '../shared/genControlHeight';\nimport genFontMapToken from '../shared/genFontMapToken';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nexport default function derivative(token) {\n // pink is deprecated name of magenta, keep this for backwards compatibility\n presetPrimaryColors.pink = presetPrimaryColors.magenta;\n presetPalettes.pink = presetPalettes.magenta;\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = token[colorKey] === presetPrimaryColors[colorKey] ? presetPalettes[colorKey] : generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n // biome-ignore lint/style/noParameterAssign: it is a reduce\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar wrapInStatefulComponent_1 = tslib_1.__importDefault(require(\"./wrapInStatefulComponent\"));\nvar addClassDecoratorSupport = function (Comp) {\n var isSFC = !Comp.prototype;\n return !isSFC ? Comp : wrapInStatefulComponent_1.default(Comp);\n};\nexports.default = addClassDecoratorSupport;\n//# sourceMappingURL=addClassDecoratorSupport.js.map","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ExportOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM770.87 199.13l-52.2-52.2a8.01 8.01 0 014.7-13.6l179.4-21c5.1-.6 9.5 3.7 8.9 8.9l-21 179.4c-.8 6.6-8.9 9.4-13.6 4.7l-52.4-52.4-256.2 256.2a8.03 8.03 0 01-11.3 0l-42.4-42.4a8.03 8.03 0 010-11.3l256.1-256.3z\" } }] }, \"name\": \"export\", \"theme\": \"outlined\" };\nexports.default = ExportOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_CACHE_PATH = 'data-cache-path';\n\n// Mark css-in-js instance in style element\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n var cssinjsInstanceId = Math.random().toString(12).slice(2);\n\n // Tricky SSR: Move all inline style to the head.\n // PS: We do not recommend tricky mode.\n if (typeof document !== 'undefined' && document.head && document.body) {\n var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n var firstChild = document.head.firstChild;\n Array.from(styles).forEach(function (style) {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n\n // Not force move if no head\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n document.head.insertBefore(style, firstChild);\n }\n });\n\n // Deduplicate of moved styles\n var styleHash = {};\n Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n var hash = style.getAttribute(ATTR_MARK);\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n return new CacheEntity(cssinjsInstanceId);\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n hashPriority: 'low',\n cache: createCache(),\n defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n var children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var parentContext = React.useContext(StyleContext);\n var context = useMemo(function () {\n var mergedContext = _objectSpread({}, parentContext);\n Object.keys(restProps).forEach(function (key) {\n var value = restProps[key];\n if (restProps[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n var cache = restProps.cache;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.defaultCache;\n return mergedContext;\n }, [parentContext, restProps], function (prev, next) {\n return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n });\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: context\n }, children);\n};\nexport default StyleContext;","'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","module.exports = __webpack_public_path__ + \"aa973685905798627140a5159a35b395.js\";","'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","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useContext,\n useMemo,\n useState,\n} from 'react';\n\ninterface OpFormDrawerContextProps {\n isSubmitting: boolean;\n setIsSubmitting: Dispatch> | undefined;\n}\n\nconst OpFormDrawerContext = createContext({\n isSubmitting: false,\n setIsSubmitting: undefined, // Set to undefined so we can use Form context if falsy\n});\n\n/**\n * Provides context for the OpFormDrawer, including submission state.\n *\n * @param {Object} props - The properties object.\n * @param {ReactNode} props.children - The child components that will have access to the context.\n *\n * @returns {JSX.Element} The provider component that wraps its children with the OpFormDrawer context.\n *\n * @context {boolean} isSubmitting - Indicates whether a form is currently being submitted.\n * @context {Function} setIsSubmitting - Function to update the submission state.\n */\nexport const OpFormDrawerContextProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => {\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const contextValue = useMemo(\n () => ({ isSubmitting, setIsSubmitting }),\n [isSubmitting],\n );\n\n return (\n \n {children}\n \n );\n};\n\n/**\n * Custom hook to access the OpFormDrawerContext.\n *\n * This hook provides access to the context value of the OpFormDrawerContext.\n * It should be used within a component that is a descendant of the OpFormDrawerContext provider.\n *\n * @returns {OpFormDrawerContextType} The current context value of the OpFormDrawerContext.\n */\nexport const useOpFormDrawerContext = () => {\n const context = useContext(OpFormDrawerContext);\n\n return context;\n};\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VideoCameraOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"video-camera\", \"theme\": \"outlined\" };\nexports.default = VideoCameraOutlined;\n","const getBuiltInPlacements = popupOverflow => {\n const htmlRegion = popupOverflow === 'scroll' ? 'scroll' : 'visible';\n const sharedConfig = {\n overflow: {\n adjustX: true,\n adjustY: true,\n shiftY: true\n },\n htmlRegion,\n dynamicInset: true\n };\n return {\n bottomLeft: Object.assign(Object.assign({}, sharedConfig), {\n points: ['tl', 'bl'],\n offset: [0, 4]\n }),\n bottomRight: Object.assign(Object.assign({}, sharedConfig), {\n points: ['tr', 'br'],\n offset: [0, 4]\n }),\n topLeft: Object.assign(Object.assign({}, sharedConfig), {\n points: ['bl', 'tl'],\n offset: [0, -4]\n }),\n topRight: Object.assign(Object.assign({}, sharedConfig), {\n points: ['br', 'tr'],\n offset: [0, -4]\n })\n };\n};\nfunction mergedBuiltinPlacements(buildInPlacements, popupOverflow) {\n return buildInPlacements || getBuiltInPlacements(popupOverflow);\n}\nexport default mergedBuiltinPlacements;","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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\nmodule.exports = isTypedArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","export function createNamedWrapperReducer(\n reducerFunction,\n page,\n subFilterId,\n strictMode = false,\n) {\n return (state, action) => {\n const isInitializationCall = state === undefined;\n if (!isInitializationCall) {\n if (page !== action.page) return state;\n if (subFilterId) {\n // @HACK - this is how we filter down to multiple named reducers inside a named reducer (table + omnibox)\n // We should start using subFilterId universally, right? - justin\n if (\n ![action.tableId, action.omniId, action.subFilterId].includes(\n subFilterId,\n )\n ) {\n return state;\n }\n }\n }\n // its possible to have a reducer initialized without a subFilter, but\n // the action has a subfilter... so we don't need to run the reducer function!\n if (\n strictMode &&\n !subFilterId &&\n (action.subFilterId || action.tableId || action.omniId)\n ) {\n return state;\n }\n\n return reducerFunction(state, action);\n };\n}\n","module.exports = __webpack_public_path__ + \"e0adad8a8579bf99f3e22f7c214a5c64.js\";","module.exports = __webpack_public_path__ + \"e37ac12436bcd0536ec98ae8470a1228.js\";","'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","module.exports = __webpack_public_path__ + \"1034e3807d1bcf55cb564491950237ab.js\";","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\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// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.possible-logins{min-width:22.2857142857rem}.possible-logins__region-list{list-style:none;padding-left:0}.possible-logins__region{padding-bottom:1.7142857143rem;display:flex;flex-direction:column;min-width:22.2857142857rem}.possible-logins__region-name{display:flex;color:var(--colorTextLabel);font-weight:800;padding:0.5714285714rem;text-transform:uppercase;font-weight:800;font-size:0.8571428571rem !important}.possible-logins__namespace-list{list-style:none;padding-left:0;min-width:22.2857142857rem;text-align:center}.possible-logins__namespace{padding-bottom:0.5714285714rem}.possible-logins__button{min-width:22.2857142857rem;max-width:22.2857142857rem;font-size:1rem}.possible-logins__button span{overflow:hidden;text-overflow:ellipsis}.possible-logins__select{width:100%;margin-bottom:1.7142857143rem}.possible-logins__select .op-select{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/PossibleLogins/PossibleLogins.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,iBACE,0BCDwB,CDGxB,8BACE,eAAA,CACA,cAAA,CAGF,yBACE,8BAAA,CACA,YAAA,CACA,qBAAA,CACA,0BCZsB,CDexB,8BACE,YAAA,CACA,2BAAA,CACA,eAAA,CACA,uBAAA,CACA,wBAAA,CACA,eAAA,CACA,oCAAA,CAGF,iCACE,eAAA,CACA,cAAA,CACA,0BC5BsB,CD6BtB,iBAAA,CAGF,4BACE,8BAAA,CAGF,yBACE,0BCrCsB,CDsCtB,0BCtCsB,CDuCtB,cAAA,CAEA,8BACE,eAAA,CACA,sBAAA,CAIJ,yBACE,UAAA,CACA,6BAAA,CAEA,oCACE,UAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.possible-logins {\\n min-width: global.$unification-login-width;\\n\\n &__region-list {\\n list-style: none;\\n padding-left: 0;\\n }\\n\\n &__region {\\n padding-bottom: common.toRem(24);\\n display: flex;\\n flex-direction: column;\\n min-width: global.$unification-login-width;\\n }\\n\\n &__region-name {\\n display: flex;\\n color: var(--colorTextLabel);\\n font-weight: 800;\\n padding: common.toRem(8);\\n text-transform: uppercase;\\n font-weight: 800;\\n font-size: common.toRem(12) !important;\\n }\\n\\n &__namespace-list {\\n list-style: none;\\n padding-left: 0;\\n min-width: global.$unification-login-width;\\n text-align: center;\\n }\\n\\n &__namespace {\\n padding-bottom: common.toRem(8);\\n }\\n\\n &__button {\\n min-width: global.$unification-login-width;\\n max-width: global.$unification-login-width;\\n font-size: common.toRem(14);\\n\\n span {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n }\\n }\\n\\n &__select {\\n width: 100%;\\n margin-bottom: common.toRem(24);\\n\\n .op-select {\\n width: 100%;\\n }\\n }\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { ComponentProps, useLayoutEffect, useRef } from 'react';\nimport Alert from 'antd/es/alert';\nimport { OpInfoWithDismiss } from './components/OpInfoWithDismiss';\nimport { OpInfoWithoutDismiss } from './components/OpInfoWithoutDismiss';\n\nimport './OpInfo.scss';\n\nexport interface OpInfoProps extends ComponentProps {\n className?: string;\n dismissibleId?: string;\n scrollIntoView?: boolean;\n}\n\nexport const OpInfo = ({\n dismissibleId,\n scrollIntoView,\n ...alertProps\n}: OpInfoProps) => {\n const scrollRef = useRef(null);\n\n useLayoutEffect(() => {\n if (scrollIntoView) {\n // scrollRef.current will not be null in a layout effect\n scrollRef.current!.scrollIntoView({ behavior: 'smooth' });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); // We only want to run once on initial render\n\n const content = dismissibleId ? (\n \n ) : (\n \n );\n\n return scrollIntoView ? (\n <>\n
\n {content}\n \n ) : (\n content\n );\n};\n","module.exports = __webpack_public_path__ + \"9a1770fb5ef173575790243507a91740.js\";","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport rules from \"../rule\";\nvar required = function required(rule, value, callback, source, options) {\n var errors = [];\n var type = Array.isArray(value) ? 'array' : _typeof(value);\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\nexport default required;","import { useEffect } from 'react';\nimport { useFirstMountState } from './useFirstMountState';\nvar useUpdateEffect = function (effect, deps) {\n var isFirstMount = useFirstMountState();\n useEffect(function () {\n if (!isFirstMount) {\n return effect();\n }\n }, deps);\n};\nexport default useUpdateEffect;\n","module.exports = __webpack_public_path__ + \"cf9c7cbfc2b609b9ae59daeab82719c4.js\";","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\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 baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","module.exports = __webpack_public_path__ + \"25eda4bb98e40a82cfd5b4bf9fbc06ec.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport { calcOffset, calculateColor } from \"../util\";\nimport { useEvent } from 'rc-util';\nimport Handler from \"./Handler\";\nimport Palette from \"./Palette\";\nimport Transform from \"./Transform\";\nvar Picker = function Picker(_ref) {\n var color = _ref.color,\n onChange = _ref.onChange,\n prefixCls = _ref.prefixCls,\n onChangeComplete = _ref.onChangeComplete,\n disabled = _ref.disabled;\n var pickerRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var onDragChange = useEvent(function (offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: pickerRef,\n color: color\n });\n colorRef.current = calcColor;\n onChange(calcColor);\n });\n var _useColorDrag = useColorDrag({\n color: color,\n containerRef: pickerRef,\n targetRef: transformRef,\n calculate: function calculate() {\n return calcOffset(color);\n },\n onDragChange: onDragChange,\n onDragChangeComplete: function onDragChangeComplete() {\n return onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(colorRef.current);\n },\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: pickerRef,\n className: \"\".concat(prefixCls, \"-select\"),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n x: offset.x,\n y: offset.y,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n color: color.toRgbString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-saturation\"),\n style: {\n backgroundColor: \"hsl(\".concat(color.toHsb().h, \",100%, 50%)\"),\n backgroundImage: 'linear-gradient(0deg, #000, transparent),linear-gradient(90deg, #fff, hsla(0, 0%, 100%, 0))'\n }\n })));\n};\nexport default Picker;","module.exports = __webpack_public_path__ + \"c64d6e1e72024bb5d3d3e9bfc19d183d.js\";","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var index = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","module.exports = __webpack_public_path__ + \"83bd353f98aa901411c82b8af58d1296.js\";","module.exports = __webpack_public_path__ + \"b881dca9d9a80f61d87374b4bd5a2dd5.js\";","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","import { useMemo } from 'react';\nimport opConfig from 'openpathConfig';\nimport { useOpQuery } from './useOpQuery';\n\nexport const useFeatureFlag = (\n flag: keyof typeof opConfig,\n orgId?: number,\n) => {\n const {\n data: heliumOrgFlags,\n isLoading: isLoadingHeliumOrgFlags,\n isPending: isPendingHeliumOrgFlags,\n isFetching: isFetchingHeliumOrgFlags,\n } = useOpQuery({\n apiEndpointName: 'listOrgFeatureFlags',\n parameters: [orgId!],\n select: (data) => data.json.data,\n });\n\n // Check for the flag value based on helium and environment config\n const flagValue: T | undefined | null = useMemo(() => {\n // Only run after the helium calls finish loading\n if (isLoadingHeliumOrgFlags) {\n return;\n }\n\n // Check if the flag is set in helium - will get org setting, if set and global default if not\n const heliumOrgFlag = heliumOrgFlags?.find(\n (hf) => hf.featureFlag?.name === flag,\n );\n\n return (\n // If the helium flag exists and the value is set, use. If not set or does not exist, move on.\n heliumOrgFlag?.value ??\n // Handle if the flag does not exist or the value was never set in helium\n opConfig[flag]\n );\n }, [flag, heliumOrgFlags, isLoadingHeliumOrgFlags]);\n\n return {\n value: flagValue,\n isLoading: isLoadingHeliumOrgFlags,\n isFetching: isFetchingHeliumOrgFlags,\n isPending: isPendingHeliumOrgFlags,\n };\n};\n","'use strict';\n\nvar isPlainObject = require('is-plain-obj');\n\n/**\n * Map of all Contentful block types. Blocks contain inline or block nodes.\n */\nexports.BLOCKS = void 0;\n(function (BLOCKS) {\n BLOCKS[\"DOCUMENT\"] = \"document\";\n BLOCKS[\"PARAGRAPH\"] = \"paragraph\";\n BLOCKS[\"HEADING_1\"] = \"heading-1\";\n BLOCKS[\"HEADING_2\"] = \"heading-2\";\n BLOCKS[\"HEADING_3\"] = \"heading-3\";\n BLOCKS[\"HEADING_4\"] = \"heading-4\";\n BLOCKS[\"HEADING_5\"] = \"heading-5\";\n BLOCKS[\"HEADING_6\"] = \"heading-6\";\n BLOCKS[\"OL_LIST\"] = \"ordered-list\";\n BLOCKS[\"UL_LIST\"] = \"unordered-list\";\n BLOCKS[\"LIST_ITEM\"] = \"list-item\";\n BLOCKS[\"HR\"] = \"hr\";\n BLOCKS[\"QUOTE\"] = \"blockquote\";\n BLOCKS[\"EMBEDDED_ENTRY\"] = \"embedded-entry-block\";\n BLOCKS[\"EMBEDDED_ASSET\"] = \"embedded-asset-block\";\n BLOCKS[\"EMBEDDED_RESOURCE\"] = \"embedded-resource-block\";\n BLOCKS[\"TABLE\"] = \"table\";\n BLOCKS[\"TABLE_ROW\"] = \"table-row\";\n BLOCKS[\"TABLE_CELL\"] = \"table-cell\";\n BLOCKS[\"TABLE_HEADER_CELL\"] = \"table-header-cell\";\n})(exports.BLOCKS || (exports.BLOCKS = {}));\n\n/**\n * Map of all Contentful inline types. Inline contain inline or text nodes.\n *\n * @note This should be kept in alphabetical order since the\n * [validation package](https://github.com/contentful/content-stack/tree/master/packages/validation)\n * relies on the values being in a predictable order.\n */\nexports.INLINES = void 0;\n(function (INLINES) {\n INLINES[\"ASSET_HYPERLINK\"] = \"asset-hyperlink\";\n INLINES[\"EMBEDDED_ENTRY\"] = \"embedded-entry-inline\";\n INLINES[\"EMBEDDED_RESOURCE\"] = \"embedded-resource-inline\";\n INLINES[\"ENTRY_HYPERLINK\"] = \"entry-hyperlink\";\n INLINES[\"HYPERLINK\"] = \"hyperlink\";\n INLINES[\"RESOURCE_HYPERLINK\"] = \"resource-hyperlink\";\n})(exports.INLINES || (exports.INLINES = {}));\n\n/**\n * Map of all Contentful marks.\n */\nexports.MARKS = void 0;\n(function (MARKS) {\n MARKS[\"BOLD\"] = \"bold\";\n MARKS[\"ITALIC\"] = \"italic\";\n MARKS[\"UNDERLINE\"] = \"underline\";\n MARKS[\"CODE\"] = \"code\";\n MARKS[\"SUPERSCRIPT\"] = \"superscript\";\n MARKS[\"SUBSCRIPT\"] = \"subscript\";\n MARKS[\"STRIKETHROUGH\"] = \"strikethrough\";\n})(exports.MARKS || (exports.MARKS = {}));\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar 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\nfunction __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\nfunction __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 || Array.prototype.slice.call(from));\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar _a$1;\n/**\n * Array of all top level block types.\n * Only these block types can be the direct children of the document.\n */\nvar TOP_LEVEL_BLOCKS = [\n exports.BLOCKS.PARAGRAPH,\n exports.BLOCKS.HEADING_1,\n exports.BLOCKS.HEADING_2,\n exports.BLOCKS.HEADING_3,\n exports.BLOCKS.HEADING_4,\n exports.BLOCKS.HEADING_5,\n exports.BLOCKS.HEADING_6,\n exports.BLOCKS.OL_LIST,\n exports.BLOCKS.UL_LIST,\n exports.BLOCKS.HR,\n exports.BLOCKS.QUOTE,\n exports.BLOCKS.EMBEDDED_ENTRY,\n exports.BLOCKS.EMBEDDED_ASSET,\n exports.BLOCKS.EMBEDDED_RESOURCE,\n exports.BLOCKS.TABLE,\n];\n/**\n * Array of all allowed block types inside list items\n */\nvar LIST_ITEM_BLOCKS = [\n exports.BLOCKS.PARAGRAPH,\n exports.BLOCKS.HEADING_1,\n exports.BLOCKS.HEADING_2,\n exports.BLOCKS.HEADING_3,\n exports.BLOCKS.HEADING_4,\n exports.BLOCKS.HEADING_5,\n exports.BLOCKS.HEADING_6,\n exports.BLOCKS.OL_LIST,\n exports.BLOCKS.UL_LIST,\n exports.BLOCKS.HR,\n exports.BLOCKS.QUOTE,\n exports.BLOCKS.EMBEDDED_ENTRY,\n exports.BLOCKS.EMBEDDED_ASSET,\n exports.BLOCKS.EMBEDDED_RESOURCE,\n];\nvar TABLE_BLOCKS = [\n exports.BLOCKS.TABLE,\n exports.BLOCKS.TABLE_ROW,\n exports.BLOCKS.TABLE_CELL,\n exports.BLOCKS.TABLE_HEADER_CELL,\n];\n/**\n * Array of all void block types\n */\nvar VOID_BLOCKS = [\n exports.BLOCKS.HR,\n exports.BLOCKS.EMBEDDED_ENTRY,\n exports.BLOCKS.EMBEDDED_ASSET,\n exports.BLOCKS.EMBEDDED_RESOURCE,\n];\n/**\n * Dictionary of all container block types, and the set block types they accept as children.\n *\n * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`\n */\nvar CONTAINERS = (_a$1 = {},\n _a$1[exports.BLOCKS.OL_LIST] = [exports.BLOCKS.LIST_ITEM],\n _a$1[exports.BLOCKS.UL_LIST] = [exports.BLOCKS.LIST_ITEM],\n _a$1[exports.BLOCKS.LIST_ITEM] = LIST_ITEM_BLOCKS,\n _a$1[exports.BLOCKS.QUOTE] = [exports.BLOCKS.PARAGRAPH],\n _a$1[exports.BLOCKS.TABLE] = [exports.BLOCKS.TABLE_ROW],\n _a$1[exports.BLOCKS.TABLE_ROW] = [exports.BLOCKS.TABLE_CELL, exports.BLOCKS.TABLE_HEADER_CELL],\n _a$1[exports.BLOCKS.TABLE_CELL] = [exports.BLOCKS.PARAGRAPH, exports.BLOCKS.UL_LIST, exports.BLOCKS.OL_LIST],\n _a$1[exports.BLOCKS.TABLE_HEADER_CELL] = [exports.BLOCKS.PARAGRAPH],\n _a$1);\n/**\n * Array of all heading levels\n */\nvar HEADINGS = [\n exports.BLOCKS.HEADING_1,\n exports.BLOCKS.HEADING_2,\n exports.BLOCKS.HEADING_3,\n exports.BLOCKS.HEADING_4,\n exports.BLOCKS.HEADING_5,\n exports.BLOCKS.HEADING_6,\n];\n/**\n * Array of all block types that may contain text and inline nodes.\n */\nvar TEXT_CONTAINERS = __spreadArray([exports.BLOCKS.PARAGRAPH], HEADINGS, true);\n/**\n * Node types before `tables` release.\n */\nvar V1_NODE_TYPES = [\n exports.BLOCKS.DOCUMENT,\n exports.BLOCKS.PARAGRAPH,\n exports.BLOCKS.HEADING_1,\n exports.BLOCKS.HEADING_2,\n exports.BLOCKS.HEADING_3,\n exports.BLOCKS.HEADING_4,\n exports.BLOCKS.HEADING_5,\n exports.BLOCKS.HEADING_6,\n exports.BLOCKS.OL_LIST,\n exports.BLOCKS.UL_LIST,\n exports.BLOCKS.LIST_ITEM,\n exports.BLOCKS.HR,\n exports.BLOCKS.QUOTE,\n exports.BLOCKS.EMBEDDED_ENTRY,\n exports.BLOCKS.EMBEDDED_ASSET,\n exports.INLINES.HYPERLINK,\n exports.INLINES.ENTRY_HYPERLINK,\n exports.INLINES.ASSET_HYPERLINK,\n exports.INLINES.EMBEDDED_ENTRY,\n 'text',\n];\n/**\n * Marks before `superscript` & `subscript` release.\n */\nvar V1_MARKS = [exports.MARKS.BOLD, exports.MARKS.CODE, exports.MARKS.ITALIC, exports.MARKS.UNDERLINE];\n\n/**\n * A rich text document considered to be empty.\n * Any other document structure than this is not considered empty.\n */\nvar EMPTY_DOCUMENT = {\n nodeType: exports.BLOCKS.DOCUMENT,\n data: {},\n content: [\n {\n nodeType: exports.BLOCKS.PARAGRAPH,\n data: {},\n content: [\n {\n nodeType: 'text',\n value: '',\n marks: [],\n data: {},\n },\n ],\n },\n ],\n};\n\n/**\n * Tiny replacement for Object.values(object).includes(key) to\n * avoid including CoreJS polyfills\n */\nfunction hasValue(obj, value) {\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (value === obj[key]) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the node is an instance of Inline.\n */\nfunction isInline(node) {\n return hasValue(exports.INLINES, node.nodeType);\n}\n/**\n * Checks if the node is an instance of Block.\n */\nfunction isBlock(node) {\n return hasValue(exports.BLOCKS, node.nodeType);\n}\n/**\n * Checks if the node is an instance of Text.\n */\nfunction isText(node) {\n return node.nodeType === 'text';\n}\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBlock: isBlock,\n isInline: isInline,\n isText: isText\n});\n\nvar typeMismatchError = function (_a) {\n var path = _a.path, property = _a.property, typeName = _a.typeName, value = _a.value;\n return {\n details: \"The type of \\\"\".concat(property, \"\\\" is incorrect, expected type: \").concat(typeName),\n name: 'type',\n path: path.toArray(),\n type: typeName,\n value: value,\n };\n};\nvar minSizeError = function (_a) {\n var min = _a.min, value = _a.value, path = _a.path;\n return {\n name: 'size',\n min: min,\n path: path.toArray(),\n details: \"Size must be at least \".concat(min),\n value: value,\n };\n};\nvar maxSizeError = function (_a) {\n var max = _a.max, value = _a.value, path = _a.path;\n return {\n name: 'size',\n max: max,\n path: path.toArray(),\n details: \"Size must be at most \".concat(max),\n value: value,\n };\n};\nvar enumError = function (_a) {\n var expected = _a.expected, value = _a.value, path = _a.path;\n return {\n details: \"Value must be one of expected values\",\n name: 'in',\n expected: __spreadArray([], expected, true).sort(),\n path: path.toArray(),\n value: value,\n };\n};\nvar unknownPropertyError = function (_a) {\n var property = _a.property, path = _a.path;\n return {\n details: \"The property \\\"\".concat(property, \"\\\" is not expected\"),\n name: 'unexpected',\n path: path.toArray(),\n };\n};\nvar requiredPropertyError = function (_a) {\n var property = _a.property, path = _a.path;\n return {\n details: \"The property \\\"\".concat(property, \"\\\" is required here\"),\n name: 'required',\n path: path.toArray(),\n };\n};\n\nvar ObjectAssertion = /** @class */ (function () {\n function ObjectAssertion(obj, path) {\n var _this = this;\n this.obj = obj;\n this.path = path;\n this._errors = [];\n this.catch = function () {\n var _a;\n var errors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n errors[_i] = arguments[_i];\n }\n (_a = _this._errors).push.apply(_a, errors);\n };\n /**\n * Asserts the key exists in the object. You probably shouldn't call this\n * function directly. Instead, use `$.object`, `$.number`, `$.string`, etc.\n */\n this.exists = function (key) {\n if (key in _this.obj) {\n return true;\n }\n _this.catch(requiredPropertyError({\n property: key,\n path: _this.path.of(key),\n }));\n return false;\n };\n /**\n * Asserts the key exists in the object and its value is a plain object. if\n * no key is provided, it asserts the object itself.\n */\n this.object = function (key) {\n var _a;\n var value = key ? _this.obj[key] : _this.obj;\n if (key) {\n if (!_this.exists(key)) {\n return false;\n }\n }\n if (isPlainObject(value)) {\n return true;\n }\n var path = key ? _this.path.of(key) : _this.path;\n var property = (_a = key !== null && key !== void 0 ? key : _this.path.last()) !== null && _a !== void 0 ? _a : 'value';\n _this.catch(typeMismatchError({\n typeName: 'Object',\n property: property,\n path: path,\n value: value,\n }));\n return false;\n };\n /**\n * Asserts the key exists in the object and its value is a string.\n */\n this.string = function (key) {\n var value = _this.obj[key];\n if (key && !_this.exists(key)) {\n return false;\n }\n if (typeof value === 'string') {\n return true;\n }\n _this.catch(typeMismatchError({\n typeName: 'String',\n property: key,\n path: _this.path.of(key),\n value: value,\n }));\n return false;\n };\n /**\n * Asserts the key exists in the object and its value is a number.\n */\n this.number = function (key, optional) {\n var value = _this.obj[key];\n if (optional && !(key in _this.obj)) {\n return true;\n }\n if (!_this.exists(key)) {\n return false;\n }\n if (typeof value === 'number' && !Number.isNaN(value)) {\n return true;\n }\n _this.catch(typeMismatchError({\n typeName: 'Number',\n property: key,\n path: _this.path.of(key),\n value: value,\n }));\n return false;\n };\n /**\n * Asserts the key exists in the object and its value is an array. You don't\n * need to manually call this function before `$.each` or `$.maxLength`.\n */\n this.array = function (key) {\n var value = _this.obj[key];\n if (key && !_this.exists(key)) {\n return false;\n }\n if (Array.isArray(value)) {\n return true;\n }\n _this.catch(typeMismatchError({\n typeName: 'Array',\n property: key,\n path: _this.path.of(key),\n value: value,\n }));\n return false;\n };\n /**\n * Asserts the value of the key is one of the expected values.\n */\n this.enum = function (key, expected) {\n var value = _this.obj[key];\n if (typeof value === 'string' && expected.includes(value)) {\n return true;\n }\n _this.catch(enumError({\n expected: expected,\n value: value,\n path: _this.path.of(key),\n }));\n return false;\n };\n /**\n * Asserts the array value of the object key is empty. If the value isn't an\n * array, the function captures a type error and returns false.\n */\n this.empty = function (key) {\n if (!_this.array(key)) {\n return false;\n }\n var value = _this.obj[key];\n if (value.length === 0) {\n return true;\n }\n _this.catch(maxSizeError({\n max: 0,\n value: value,\n path: _this.path.of(key),\n }));\n return false;\n };\n /**\n * Asserts the length of the value of the object key is at least `min`. If the\n * value isn't an array, the function captures a type error and returns false.\n */\n this.minLength = function (key, min) {\n if (!_this.array(key)) {\n return false;\n }\n var value = _this.obj[key];\n if (value.length >= min) {\n return true;\n }\n _this.catch(minSizeError({\n min: min,\n value: value,\n path: _this.path.of(key),\n }));\n return false;\n };\n /**\n * Asserts the object has no additional properties other than the ones\n * specified\n */\n this.noAdditionalProperties = function (properties) {\n var unknowns = Object.keys(_this.obj)\n .sort()\n .filter(function (key) { return !properties.includes(key); });\n unknowns.forEach(function (property) {\n return _this.catch(unknownPropertyError({\n property: property,\n path: _this.path.of(property),\n }));\n });\n return unknowns.length === 0;\n };\n /**\n * Iterates over the value of the key and assert each item. If the value isn't\n * an array, the function captures a type error and safely exits.\n *\n * To maintain compatibility with previous implementation, we stop early if we\n * find any errors.\n */\n this.each = function (key, assert) {\n if (!_this.array(key)) {\n return;\n }\n var value = _this.obj[key];\n var foundErrors = false;\n value.forEach(function (item, index) {\n if (foundErrors) {\n return;\n }\n var errors = assert(item, _this.path.of(key).of(index));\n if (errors.length > 0) {\n foundErrors = true;\n }\n _this.catch.apply(_this, errors);\n });\n };\n }\n Object.defineProperty(ObjectAssertion.prototype, \"errors\", {\n get: function () {\n var _this = this;\n var serializeError = function (error) {\n return JSON.stringify({\n details: error.details,\n path: error.path,\n });\n };\n return this._errors.filter(function (error, index) {\n return _this._errors.findIndex(function (step) { return serializeError(error) === serializeError(step); }) === index;\n });\n },\n enumerable: false,\n configurable: true\n });\n return ObjectAssertion;\n}());\n\nvar VOID_CONTENT = [];\nvar NodeAssertion = /** @class */ (function () {\n function NodeAssertion(contentRule, validateData) {\n this.contentRule = contentRule;\n this.validateData = validateData;\n }\n NodeAssertion.prototype.assert = function (node, path) {\n var _a, _b;\n var $ = new ObjectAssertion(node, path);\n if (!$.object()) {\n return $.errors;\n }\n $.noAdditionalProperties(['nodeType', 'data', 'content']);\n var _c = Array.isArray(this.contentRule)\n ? {\n nodeTypes: this.contentRule,\n }\n : this.contentRule(node, path), nodeTypes = _c.nodeTypes, _d = _c.min, min = _d === void 0 ? 0 : _d;\n if (nodeTypes.length === 0 && min > 0) {\n throw new Error(\"Invalid content rule. Cannot have enforce a 'min' of \".concat(min, \" with no nodeTypes\"));\n }\n $.minLength('content', min);\n // Is void\n if (nodeTypes.length === 0) {\n $.empty('content');\n }\n // Ensure content nodes have valid nodeTypes without validating the full\n // shape which is something that's only done later if the current node is\n // valid.\n else {\n $.each('content', function (item, path) {\n var item$ = new ObjectAssertion(item, path);\n if (!item$.object()) {\n return item$.errors;\n }\n item$.enum('nodeType', nodeTypes);\n return item$.errors;\n });\n }\n if ($.object('data')) {\n var dataErrors = (_b = (_a = this.validateData) === null || _a === void 0 ? void 0 : _a.call(this, node.data, path.of('data'))) !== null && _b !== void 0 ? _b : [];\n $.catch.apply($, dataErrors);\n }\n return $.errors;\n };\n return NodeAssertion;\n}());\nvar EntityLinkAssertion = /** @class */ (function (_super) {\n __extends(EntityLinkAssertion, _super);\n function EntityLinkAssertion(linkType, contentNodeTypes) {\n var _this = _super.call(this, contentNodeTypes, function (data, path) { return _this.assertLink(data, path); }) || this;\n _this.linkType = linkType;\n _this.assertLink = function (data, path) {\n var $ = new ObjectAssertion(data, path);\n if ($.object('target')) {\n var sys$ = new ObjectAssertion(data.target.sys, path.of('target').of('sys'));\n if (sys$.object()) {\n sys$.enum('type', [_this.type]);\n sys$.enum('linkType', [_this.linkType]);\n if (_this.type === 'Link') {\n sys$.string('id');\n sys$.noAdditionalProperties(['type', 'linkType', 'id']);\n }\n else if (_this.type === 'ResourceLink') {\n sys$.string('urn');\n sys$.noAdditionalProperties(['type', 'linkType', 'urn']);\n }\n }\n $.catch.apply($, sys$.errors);\n }\n $.noAdditionalProperties(['target']);\n return $.errors;\n };\n _this.type = _this.linkType.startsWith('Contentful:') ? 'ResourceLink' : 'Link';\n return _this;\n }\n return EntityLinkAssertion;\n}(NodeAssertion));\nvar HyperLinkAssertion = /** @class */ (function (_super) {\n __extends(HyperLinkAssertion, _super);\n function HyperLinkAssertion() {\n var _this = _super.call(this, ['text'], function (data, path) { return _this.assertLink(data, path); }) || this;\n _this.assertLink = function (data, path) {\n var $ = new ObjectAssertion(data, path);\n $.string('uri');\n $.noAdditionalProperties(['uri']);\n return $.errors;\n };\n return _this;\n }\n return HyperLinkAssertion;\n}(NodeAssertion));\nvar assert = function (contentRule, validateData) {\n return new NodeAssertion(contentRule, validateData);\n};\nvar assertLink = function (linkType, contentRule) {\n return new EntityLinkAssertion(linkType, contentRule);\n};\n\nvar Path = /** @class */ (function () {\n function Path(path) {\n if (path === void 0) { path = []; }\n var _this = this;\n this.path = path;\n this.of = function (element) {\n return new Path(__spreadArray(__spreadArray([], _this.path, true), [element], false));\n };\n this.isRoot = function () {\n return _this.path.length === 0;\n };\n this.last = function () {\n return _this.path[_this.path.length - 1];\n };\n this.toArray = function () {\n return _this.path;\n };\n }\n return Path;\n}());\n\nfunction assertText(text, path) {\n var $ = new ObjectAssertion(text, path);\n if (!$.object()) {\n return $.errors;\n }\n $.noAdditionalProperties(['nodeType', 'data', 'value', 'marks']);\n $.object('data');\n $.each('marks', function (mark, path) {\n var mark$ = new ObjectAssertion(mark, path);\n if (!mark$.object()) {\n return mark$.errors;\n }\n // For historical reasons, we don't explicitly check for supported marks\n // e.g. bold, italic ..etc. This makes it possible for a customer to add\n // custom marks\n mark$.string('type');\n return mark$.errors;\n });\n $.string('value');\n return $.errors;\n}\n\nvar _a;\nvar assertInlineOrText = assert(__spreadArray(__spreadArray([], Object.values(exports.INLINES), true), ['text'], false).sort());\nvar assertList = assert([exports.BLOCKS.LIST_ITEM]);\nvar assertVoidEntryLink = assertLink('Entry', VOID_CONTENT);\nvar assertTableCell = assert(function () { return ({\n nodeTypes: [exports.BLOCKS.PARAGRAPH],\n min: 1,\n}); }, function (data, path) {\n var $ = new ObjectAssertion(data, path);\n $.noAdditionalProperties(['colspan', 'rowspan']);\n $.number('colspan', true);\n $.number('rowspan', true);\n return $.errors;\n});\nvar nodeValidator = (_a = {},\n _a[exports.BLOCKS.DOCUMENT] = assert(TOP_LEVEL_BLOCKS),\n _a[exports.BLOCKS.PARAGRAPH] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_1] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_2] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_3] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_4] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_5] = assertInlineOrText,\n _a[exports.BLOCKS.HEADING_6] = assertInlineOrText,\n _a[exports.BLOCKS.QUOTE] = assert(CONTAINERS[exports.BLOCKS.QUOTE]),\n _a[exports.BLOCKS.EMBEDDED_ENTRY] = assertVoidEntryLink,\n _a[exports.BLOCKS.EMBEDDED_ASSET] = assertLink('Asset', VOID_CONTENT),\n _a[exports.BLOCKS.EMBEDDED_RESOURCE] = assertLink('Contentful:Entry', VOID_CONTENT),\n _a[exports.BLOCKS.HR] = assert(VOID_CONTENT),\n _a[exports.BLOCKS.OL_LIST] = assertList,\n _a[exports.BLOCKS.UL_LIST] = assertList,\n _a[exports.BLOCKS.LIST_ITEM] = assert(__spreadArray([], LIST_ITEM_BLOCKS, true).sort()),\n _a[exports.BLOCKS.TABLE] = assert(function () { return ({\n nodeTypes: [exports.BLOCKS.TABLE_ROW],\n min: 1,\n }); }),\n _a[exports.BLOCKS.TABLE_ROW] = assert(function () { return ({\n nodeTypes: [exports.BLOCKS.TABLE_CELL, exports.BLOCKS.TABLE_HEADER_CELL],\n min: 1,\n }); }),\n _a[exports.BLOCKS.TABLE_CELL] = assertTableCell,\n _a[exports.BLOCKS.TABLE_HEADER_CELL] = assertTableCell,\n _a[exports.INLINES.HYPERLINK] = new HyperLinkAssertion(),\n _a[exports.INLINES.EMBEDDED_ENTRY] = assertVoidEntryLink,\n _a[exports.INLINES.EMBEDDED_RESOURCE] = assertLink('Contentful:Entry', VOID_CONTENT),\n _a[exports.INLINES.ENTRY_HYPERLINK] = assertLink('Entry', ['text']),\n _a[exports.INLINES.ASSET_HYPERLINK] = assertLink('Asset', ['text']),\n _a[exports.INLINES.RESOURCE_HYPERLINK] = assertLink('Contentful:Entry', ['text']),\n _a);\nfunction validateNode(node, path) {\n if (node.nodeType === 'text') {\n return assertText(node, path);\n }\n var errors = nodeValidator[node.nodeType].assert(node, path);\n if (errors.length > 0) {\n return errors;\n }\n var $ = new ObjectAssertion(node, path);\n $.each('content', function (item, path) {\n // We already know those are valid nodes thanks to the assertion done in\n // the NodeAssertion class\n return validateNode(item, path);\n });\n return $.errors;\n}\nvar validateRichTextDocument = function (document) {\n var path = new Path();\n var $ = new ObjectAssertion(document, path);\n if ($.object()) {\n $.enum('nodeType', [exports.BLOCKS.DOCUMENT]);\n }\n if ($.errors.length > 0) {\n return $.errors;\n }\n return validateNode(document, path);\n};\n\nexports.CONTAINERS = CONTAINERS;\nexports.EMPTY_DOCUMENT = EMPTY_DOCUMENT;\nexports.HEADINGS = HEADINGS;\nexports.LIST_ITEM_BLOCKS = LIST_ITEM_BLOCKS;\nexports.TABLE_BLOCKS = TABLE_BLOCKS;\nexports.TEXT_CONTAINERS = TEXT_CONTAINERS;\nexports.TOP_LEVEL_BLOCKS = TOP_LEVEL_BLOCKS;\nexports.V1_MARKS = V1_MARKS;\nexports.V1_NODE_TYPES = V1_NODE_TYPES;\nexports.VOID_BLOCKS = VOID_BLOCKS;\nexports.helpers = helpers;\nexports.validateRichTextDocument = validateRichTextDocument;\n//# sourceMappingURL=index.js.map\n","module.exports = __webpack_public_path__ + \"9b4de1346c73ba258736f1a3f00fdc14.js\";","import { createBrowserHistory } from 'history';\nimport opConfig from 'openpathConfig';\n\nconst history = createBrowserHistory({\n getUserConfirmation(symbolKey, callback) {\n const trigger = window[Symbol.for(symbolKey)];\n if (trigger) {\n // if we've registered a callback to handle navigation, lets pass it\n return trigger(callback);\n }\n // otherwise just let navigation happen\n return callback(true);\n },\n});\n\nif (['dev', 'sandbox', 'mine'].includes(opConfig.ENV)) {\n let previousLocation = history.location;\n history.listen((newLocation) => {\n // Grab the search parameters from the previous and current locations\n const previousSearchParams = new URLSearchParams(previousLocation.search);\n const newSearchParams = new URLSearchParams(newLocation.search);\n\n const previousPRMatch = previousSearchParams.get('PR');\n const newPRMatch = newSearchParams.get('PR');\n\n if (!newPRMatch && previousPRMatch) {\n // grab all the search params from the new location\n const searchParams = new URLSearchParams(location.search);\n // add the PR param from the previous location\n searchParams.set('PR', previousPRMatch);\n // construct the modified pathname\n const modifiedPathname = `${location.pathname}?${searchParams.toString()}`;\n // replace with the modified pathname\n history.replace(modifiedPathname);\n }\n\n previousLocation = history.location;\n });\n}\n\nexport default history;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar render_1 = tslib_1.__importDefault(require(\"./render\"));\nvar defaultMapPropsToArgs = function (props) { return [props]; };\nvar hookToRenderProp = function (hook, mapPropsToArgs) {\n if (mapPropsToArgs === void 0) { mapPropsToArgs = defaultMapPropsToArgs; }\n return function (props) { return render_1.default(props, hook.apply(void 0, mapPropsToArgs(props))); };\n};\nexports.default = hookToRenderProp;\n//# sourceMappingURL=hookToRenderProp.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"LOCATION_CHANGE\", {\n enumerable: true,\n get: function get() {\n return _actions.LOCATION_CHANGE;\n }\n});\nObject.defineProperty(exports, \"CALL_HISTORY_METHOD\", {\n enumerable: true,\n get: function get() {\n return _actions.CALL_HISTORY_METHOD;\n }\n});\nObject.defineProperty(exports, \"onLocationChanged\", {\n enumerable: true,\n get: function get() {\n return _actions.onLocationChanged;\n }\n});\nObject.defineProperty(exports, \"push\", {\n enumerable: true,\n get: function get() {\n return _actions.push;\n }\n});\nObject.defineProperty(exports, \"replace\", {\n enumerable: true,\n get: function get() {\n return _actions.replace;\n }\n});\nObject.defineProperty(exports, \"go\", {\n enumerable: true,\n get: function get() {\n return _actions.go;\n }\n});\nObject.defineProperty(exports, \"goBack\", {\n enumerable: true,\n get: function get() {\n return _actions.goBack;\n }\n});\nObject.defineProperty(exports, \"goForward\", {\n enumerable: true,\n get: function get() {\n return _actions.goForward;\n }\n});\nObject.defineProperty(exports, \"routerActions\", {\n enumerable: true,\n get: function get() {\n return _actions.routerActions;\n }\n});\nObject.defineProperty(exports, \"routerMiddleware\", {\n enumerable: true,\n get: function get() {\n return _middleware[\"default\"];\n }\n});\nexports.createMatchSelector = exports.getSearch = exports.getRouter = exports.getHash = exports.getAction = exports.getLocation = exports.connectRouter = exports.ConnectedRouter = void 0;\n\nvar _ConnectedRouter = _interopRequireDefault(require(\"./ConnectedRouter\"));\n\nvar _reducer = _interopRequireDefault(require(\"./reducer\"));\n\nvar _selectors = _interopRequireDefault(require(\"./selectors\"));\n\nvar _immutable = _interopRequireDefault(require(\"./structure/immutable\"));\n\nvar _actions = require(\"./actions\");\n\nvar _middleware = _interopRequireDefault(require(\"./middleware\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ConnectedRouter = /*#__PURE__*/(0, _ConnectedRouter[\"default\"])(_immutable[\"default\"]);\nexports.ConnectedRouter = ConnectedRouter;\nvar connectRouter = /*#__PURE__*/(0, _reducer[\"default\"])(_immutable[\"default\"]);\nexports.connectRouter = connectRouter;\n\nvar _createSelectors = /*#__PURE__*/(0, _selectors[\"default\"])(_immutable[\"default\"]),\n getLocation = _createSelectors.getLocation,\n getAction = _createSelectors.getAction,\n getHash = _createSelectors.getHash,\n getRouter = _createSelectors.getRouter,\n getSearch = _createSelectors.getSearch,\n createMatchSelector = _createSelectors.createMatchSelector;\n\nexports.createMatchSelector = createMatchSelector;\nexports.getSearch = getSearch;\nexports.getRouter = getRouter;\nexports.getHash = getHash;\nexports.getAction = getAction;\nexports.getLocation = getLocation;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (action) {\n return action && action.type === '@@redux/INIT' ? 'initialState argument passed to createStore' : 'previous state received by the reducer';\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=getStateName.js.map","import { t } from 'i18next';\nimport * as Sentry from '@sentry/react';\nimport { awareClient } from './awareClient';\nimport { getAccessToken } from './accessToken';\nimport { setUnifiedCookie } from './setUnifiedCookie';\n\ninterface UnifiedLoginError {\n code: 'login_time_denied' | 'ip_address_denied';\n kind: string;\n}\n\nconst UNIFIED_LOGIN_ERROR_MESSAGE = {\n login_time_denied: t('Aware login is schedule-restricted during this time.'),\n ip_address_denied: t(\n 'Aware login not permitted from your current IP address.',\n ),\n};\n\nexport interface UnifiedLoginArgs {\n url: string;\n urlToOpen?: string;\n options?: {\n org_id?: number;\n region?: string;\n redirect_url?: string;\n nonce?: string;\n };\n newTab?: boolean;\n bypassAuth?: boolean;\n}\n\n/**\n * @description A wrapper around other utilities for the purpose of \"logging in\" to Aware. Essentially\n * we auth to aware via setUnifiedCookie and then are able to navigate to the page immediately via urlToOpen\n */\nexport const unifiedLogin = async ({\n url,\n urlToOpen,\n options = {},\n newTab = true,\n bypassAuth = false,\n}: UnifiedLoginArgs) => {\n let awareUser: OP.Aware.LookupUserResponse | null;\n let finalNonce = options.nonce;\n const jwt = getAccessToken();\n const target = newTab ? '_blank' : '_self';\n\n // Can remove this once launched\n if (!bypassAuth) {\n try {\n awareUser = await awareClient.lookupUser({\n deploymentUrl: url,\n });\n\n // Give preference to the nonce passed via prop\n finalNonce = finalNonce || awareUser?.nonce;\n } catch (err) {\n Sentry.captureMessage(`awareClient.lookupUser fetch failed`, {\n level: 'log',\n extra: {\n error: JSON.stringify(err),\n },\n });\n }\n }\n /**\n * If we have a nonce this is the indicator to use the new auth flow.\n * A nonce can be explicitly passed OR found in the lookupUser call.\n * Currently we'd explicitly pass a nonce if available in the unified\n * login flow. App switching / deep linking would rely on the lookupUser\n * call\n */\n if (finalNonce) {\n const finalOptions = {\n jwt,\n ...options,\n nonce: finalNonce,\n };\n const finalUrl = new URL(`${url}/api/v1/setOpenpathCookie`);\n Object.entries(finalOptions).forEach(([key, value]) => {\n finalUrl.searchParams.append(key, String(value));\n });\n\n window.open(finalUrl.href, target, 'noopener,noreferrer');\n\n return;\n }\n\n /**\n * We potentially want to start rethinking this a bit but I'll wait until potentially one more scenario pops up\n * but because this handler also handles opening a new window there is a possibility we know before hand that\n * the cookie for authenticating has already been set thus we don't need to do it again. That being said we\n * may actually want to pull the window.open portion out of here soon as we probably don't want to assume\n * a unifiedLogin means opening a new window as well. Right now this issue only really popped up due to the\n * coupling of the AwareDeepLink component but now the PermissionedAwareDeepLink component that needs to know a user's\n * permissions ahead of time which would have required ensuring a cookie was already set to hit the api endpoint\n * needed to get the user's Aware permissions. Adding extra finalNonce check though it shouldn't come into play as we\n * should be getting redirected off this page before this hits\n */\n let response = null;\n\n if (!bypassAuth) {\n response = await setUnifiedCookie({\n baseUrl: url,\n options,\n });\n }\n\n if (response?.ok || bypassAuth) {\n // default to opening the root url\n window.open(urlToOpen || url, target, 'noopener,noreferrer');\n } else {\n const resData: UnifiedLoginError = await response!.json();\n\n if (UNIFIED_LOGIN_ERROR_MESSAGE[resData.code]) {\n throw new Error(UNIFIED_LOGIN_ERROR_MESSAGE[resData.code]);\n } else {\n throw new Error(t('Failed to connect') as string);\n }\n }\n};\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheHas;\n","module.exports = __webpack_public_path__ + \"33062102a809cea705ff3056240885a2.js\";","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _SaveOutlined = _interopRequireDefault(require('./lib/icons/SaveOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _SaveOutlined;\nexports.default = _default;\nmodule.exports = _default;","import { _optionalChain } from '@sentry/utils';\nimport { defineIntegration } from '@sentry/core';\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\nfunction elementClassMatchesRegex(el, regex) {\n for (let eIndex = el.classList.length; eIndex--;) {\n const className = el.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n if (!node)\n return -1;\n if (node.nodeType !== node.ELEMENT_NODE)\n return -1;\n if (distance > limit)\n return -1;\n if (matchPredicate(node))\n return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n return (node) => {\n const el = node;\n if (el === null)\n return false;\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(`.${className}`))\n return true;\n }\n else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n if (selector && el.matches(selector))\n return true;\n return false;\n }\n catch (e2) {\n return false;\n }\n };\n}\n\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n }\n catch (e2) {\n return () => {\n };\n }\n}\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) ;\nfunction closestElementOfNode(node) {\n if (!node) {\n return null;\n }\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n return el;\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n if (!el) {\n return false;\n }\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n if (!checkAncestors) {\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\n return blockedPredicate(el) && !isUnblocked;\n }\n const blockDistance = distanceToMatch(el, blockedPredicate);\n let unblockDistance = -1;\n if (blockDistance < 0) {\n return false;\n }\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n return blockDistance < unblockDistance;\n}\nconst cachedImplementations = {};\nfunction getImplementation(name) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations[name] = impl.bind(window));\n}\nfunction onRequestAnimationFrame(...rest) {\n return getImplementation('requestAnimationFrame')(...rest);\n}\nfunction setTimeout(...rest) {\n return getImplementation('setTimeout')(...rest);\n}\n\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\n\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n }\n catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return () => {\n };\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\n\n/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\n\nconst canvasVarMap = new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\n return;\n const name = value.constructor.name;\n const list = variableListFor(ctx, name);\n let index = list.indexOf(value);\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n }\n else if (value === null) {\n return value;\n }\n else if (value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)],\n };\n }\n else if (value instanceof ArrayBuffer) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64,\n };\n }\n else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength,\n ],\n };\n }\n else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src,\n };\n }\n else if (value instanceof HTMLCanvasElement) {\n const name = 'HTMLImageElement';\n const src = value.toDataURL();\n return {\n rr_type: name,\n src,\n };\n }\n else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\n };\n }\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index,\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n 'WebGLVertexArrayObjectOES',\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector, unblockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\n continue;\n }\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\n return function (...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set(v) {\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nfunction getNormalizedContextName(contextType) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\n return function (contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, unblockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this))\n this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue &&\n ['webgl', 'webgl2'].includes(ctxName)) {\n if (args[0] && typeof args[0] === 'object') {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n }\n else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true,\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, unblockSelector, mirror, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if ([\n 'isContextLost',\n 'canvas',\n 'drawingBufferWidth',\n 'drawingBufferHeight',\n ].includes(prop)) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== 'function') {\n continue;\n }\n const restoreHandler = patch(prototype, prop, function (original) {\n return function (...args) {\n const result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n if ('tagName' in this.canvas &&\n !isBlocked(this.canvas, blockClass, blockSelector, unblockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs,\n };\n cb(this.canvas, mutation);\n }\n return result;\n };\n });\n handlers.push(restoreHandler);\n }\n catch (e) {\n const hookHandler = hookSetter(prototype, prop, {\n set(v) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, unblockSelector, mirror) {\n const handlers = [];\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, unblockSelector, mirror, win));\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, unblockSelector, mirror, win));\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n\nvar r = `for(var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",t=\"undefined\"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s=\"\";for(a=0;a>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+\"=\":r%3==1&&(s=s.substring(0,s.length-2)+\"==\"),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!(\"OffscreenCanvas\"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+\"-\"+t;if(\"OffscreenCanvas\"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext(\"2d\");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return\"\"}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext(\"bitmaprenderer\"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:\"low\"});w.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};`;\n\nfunction t(){const t=new Blob([r]);return URL.createObjectURL(t)}\n\nclass CanvasManager {\n reset() {\n this.pendingCanvasMutations.clear();\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n }\n catch (e) {\n }\n });\n this.restoreHandlers = [];\n this.windowsSet = new WeakSet();\n this.windows = [];\n this.shadowDoms = new Set();\n _optionalChain([this, 'access', _ => _.worker, 'optionalAccess', _2 => _2.terminate, 'call', _3 => _3()]);\n this.worker = null;\n this.snapshotInProgressMap = new Map();\n if ((this.options.recordCanvas &&\n typeof this.options.sampling === 'number') ||\n this.options.enableManualSnapshot) {\n this.worker = this.initFPSWorker();\n }\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n constructor(options) {\n this.pendingCanvasMutations = new Map();\n this.rafStamps = { latestId: 0, invokeId: null };\n this.shadowDoms = new Set();\n this.windowsSet = new WeakSet();\n this.windows = [];\n this.restoreHandlers = [];\n this.frozen = false;\n this.locked = false;\n this.snapshotInProgressMap = new Map();\n this.worker = null;\n this.processMutation = (target, mutation) => {\n const newFrame = this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n };\n const { sampling = 'all', win, blockClass, blockSelector, unblockSelector, maxCanvasSize, recordCanvas, dataURLOptions, errorHandler, } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n this.options = options;\n if (errorHandler) {\n registerErrorHandler(errorHandler);\n }\n if ((recordCanvas && typeof sampling === 'number') ||\n options.enableManualSnapshot) {\n this.worker = this.initFPSWorker();\n }\n this.addWindow(win);\n if (options.enableManualSnapshot) {\n return;\n }\n callbackWrapper(() => {\n if (recordCanvas && sampling === 'all') {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n }\n if (recordCanvas && typeof sampling === 'number') {\n this.initCanvasFPSObserver(sampling, blockClass, blockSelector, unblockSelector, maxCanvasSize, {\n dataURLOptions,\n });\n }\n })();\n }\n addWindow(win) {\n const { sampling = 'all', blockClass, blockSelector, unblockSelector, recordCanvas, enableManualSnapshot, } = this.options;\n if (this.windowsSet.has(win))\n return;\n if (enableManualSnapshot) {\n this.windowsSet.add(win);\n this.windows.push(new WeakRef(win));\n return;\n }\n callbackWrapper(() => {\n if (recordCanvas && sampling === 'all') {\n this.initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector);\n }\n if (recordCanvas && typeof sampling === 'number') {\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, true);\n this.restoreHandlers.push(() => {\n canvasContextReset();\n });\n }\n })();\n this.windowsSet.add(win);\n this.windows.push(new WeakRef(win));\n }\n addShadowRoot(shadowRoot) {\n this.shadowDoms.add(new WeakRef(shadowRoot));\n }\n resetShadowRoots() {\n this.shadowDoms = new Set();\n }\n initFPSWorker() {\n const worker = new Worker(t());\n worker.onmessage = (e) => {\n const data = e.data;\n const { id } = data;\n this.snapshotInProgressMap.set(id, false);\n if (!('base64' in data))\n return;\n const { base64, type, width, height } = data;\n this.mutationCb({\n id,\n type: CanvasContext['2D'],\n commands: [\n {\n property: 'clearRect',\n args: [0, 0, width, height],\n },\n {\n property: 'drawImage',\n args: [\n {\n rr_type: 'ImageBitmap',\n args: [\n {\n rr_type: 'Blob',\n data: [{ rr_type: 'ArrayBuffer', base64 }],\n type,\n },\n ],\n },\n 0,\n 0,\n width,\n height,\n ],\n },\n ],\n });\n };\n return worker;\n }\n initCanvasFPSObserver(fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, options) {\n const rafId = this.takeSnapshot(false, fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, options.dataURLOptions);\n this.restoreHandlers.push(() => {\n cancelAnimationFrame(rafId);\n });\n }\n initCanvasMutationObserver(win, blockClass, blockSelector, unblockSelector) {\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, unblockSelector, false);\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector);\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, unblockSelector, this.mirror);\n this.restoreHandlers.push(() => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n });\n }\n snapshot(canvasElement) {\n const { options } = this;\n const rafId = this.takeSnapshot(true, options.sampling === 'all' ? 2 : options.sampling || 2, options.blockClass, options.blockSelector, options.unblockSelector, options.maxCanvasSize, options.dataURLOptions, canvasElement);\n this.restoreHandlers.push(() => {\n cancelAnimationFrame(rafId);\n });\n }\n takeSnapshot(isManualSnapshot, fps, blockClass, blockSelector, unblockSelector, maxCanvasSize, dataURLOptions, canvasElement) {\n const timeBetweenSnapshots = 1000 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = (canvasElement) => {\n if (canvasElement) {\n return [canvasElement];\n }\n const matchedCanvas = [];\n const searchCanvas = (root) => {\n root.querySelectorAll('canvas').forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, unblockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n };\n for (const item of this.windows) {\n const window = item.deref();\n if (window) {\n searchCanvas(window.document);\n }\n }\n for (const item of this.shadowDoms) {\n const shadowRoot = item.deref();\n if (shadowRoot) {\n searchCanvas(shadowRoot);\n }\n }\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (!this.windows.length) {\n return;\n }\n if (lastSnapshotTime &&\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas(canvasElement).forEach((canvas) => {\n if (!this.mirror.hasNode(canvas)) {\n return;\n }\n const id = this.mirror.getId(canvas);\n if (this.snapshotInProgressMap.get(id))\n return;\n if (!canvas.width || !canvas.height)\n return;\n this.snapshotInProgressMap.set(id, true);\n if (!isManualSnapshot &&\n ['webgl', 'webgl2'].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (_optionalChain([context, 'optionalAccess', _4 => _4.getContextAttributes, 'call', _5 => _5(), 'optionalAccess', _6 => _6.preserveDrawingBuffer]) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n createImageBitmap(canvas)\n .then((bitmap) => {\n _optionalChain([this, 'access', _7 => _7.worker, 'optionalAccess', _8 => _8.postMessage, 'call', _9 => _9({\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions,\n maxCanvasSize,\n }, [bitmap])]);\n })\n .catch((error) => {\n callbackWrapper(() => {\n throw error;\n })();\n });\n });\n if (!isManualSnapshot) {\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n }\n };\n rafId = onRequestAnimationFrame(takeCanvasSnapshots);\n return rafId;\n }\n startPendingCanvasMutationFlusher() {\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n onRequestAnimationFrame(setLatestRAFTimestamp);\n };\n onRequestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach((values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n });\n onRequestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1)\n return;\n const values = valuesWithType.map((value) => {\n const { type, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\n\nconst CANVAS_QUALITY = {\n low: {\n sampling: {\n canvas: 1,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.25,\n },\n },\n medium: {\n sampling: {\n canvas: 2,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.4,\n },\n },\n high: {\n sampling: {\n canvas: 4,\n },\n dataURLOptions: {\n type: 'image/webp',\n quality: 0.5,\n },\n },\n};\n\nconst INTEGRATION_NAME = 'ReplayCanvas';\nconst DEFAULT_MAX_CANVAS_SIZE = 1280;\n\n/** Exported only for type safe tests. */\nconst _replayCanvasIntegration = ((options = {}) => {\n const [maxCanvasWidth, maxCanvasHeight] = options.maxCanvasSize || [];\n const _canvasOptions = {\n quality: options.quality || 'medium',\n enableManualSnapshot: options.enableManualSnapshot,\n maxCanvasSize: [\n maxCanvasWidth ? Math.min(maxCanvasWidth, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE,\n maxCanvasHeight ? Math.min(maxCanvasHeight, DEFAULT_MAX_CANVAS_SIZE) : DEFAULT_MAX_CANVAS_SIZE,\n ] ,\n };\n\n let canvasManagerResolve;\n const _canvasManager = new Promise(resolve => (canvasManagerResolve = resolve));\n\n return {\n name: INTEGRATION_NAME,\n getOptions() {\n const { quality, enableManualSnapshot, maxCanvasSize } = _canvasOptions;\n\n return {\n enableManualSnapshot,\n recordCanvas: true,\n getCanvasManager: (getCanvasManagerOptions) => {\n const manager = new CanvasManager({\n ...getCanvasManagerOptions,\n enableManualSnapshot,\n maxCanvasSize,\n errorHandler: (err) => {\n try {\n if (typeof err === 'object') {\n (err ).__rrweb__ = true;\n }\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n });\n canvasManagerResolve(manager);\n return manager;\n },\n ...(CANVAS_QUALITY[quality || 'medium'] || CANVAS_QUALITY.medium),\n };\n },\n async snapshot(canvasElement) {\n const canvasManager = await _canvasManager;\n canvasManager.snapshot(canvasElement);\n },\n };\n}) ;\n\n/**\n * Add this in addition to `replayIntegration()` to enable canvas recording.\n */\nconst replayCanvasIntegration = defineIntegration(\n _replayCanvasIntegration,\n) ;\n\nexport { replayCanvasIntegration };\n//# sourceMappingURL=index.js.map\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * 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 // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\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\nmodule.exports = equalObjects;\n","module.exports = __webpack_public_path__ + \"bd309bb3f23f2bfbcf914f2e71474ab5.js\";","module.exports = __webpack_public_path__ + \"a2746fc96d535b19c120d4b87dc86ef1.js\";","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n align-items: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isArrayLikeObject;\n","export default __webpack_public_path__ + \"4facd54028a16681bb381297ee6569f3.svg\";","module.exports = __webpack_public_path__ + \"e874d975c9128dc6eb9a513d088bed9f.js\";","module.exports = __webpack_public_path__ + \"60ede8d7ffdf4c05f2ce51b6d8d2be68.js\";","module.exports = __webpack_public_path__ + \"0144de97a3c256f81447e7e7135780e5.js\";","export function isValidWaveColor(color) {\n return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n // any transparent rgba color\n color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n const {\n borderTopColor,\n borderColor,\n backgroundColor\n } = getComputedStyle(node);\n if (isValidWaveColor(borderTopColor)) {\n return borderTopColor;\n }\n if (isValidWaveColor(borderColor)) {\n return borderColor;\n }\n if (isValidWaveColor(backgroundColor)) {\n return backgroundColor;\n }\n return null;\n}","import {\n REQUEST_AND_SET_CSV_DATA,\n SET_TABLE_LOADING,\n SET_TABLE_STATE,\n REQUEST_UPDATE_TABLE,\n TABLE_HAS_BEEN_UPDATED,\n SET_TABLE_HAS_BEEN_UPDATED,\n SET_PAGE_COUNT,\n PAGE_COUNT,\n TABLE_STATE,\n REQUEST_UPDATE_DATA_ORDER,\n SET_TABLE_DATA_PERCENT_LOADED,\n PERCENT_LOADED,\n} from './constants';\n\nexport function setTableUpdating({\n page,\n tableId = null,\n loading,\n updatingMessage = null,\n}) {\n return {\n type: SET_TABLE_LOADING,\n page,\n tableId,\n loading,\n updatingMessage,\n };\n}\n\nexport function setTableHasBeenUpdated(page, tableId, tableHasBeenUpdated) {\n return {\n type: SET_TABLE_HAS_BEEN_UPDATED,\n page,\n tableId,\n [TABLE_HAS_BEEN_UPDATED]: tableHasBeenUpdated,\n };\n}\n\nexport function requestAndSetCsvData(params) {\n return {\n type: REQUEST_AND_SET_CSV_DATA,\n ...params,\n };\n}\n\nexport function setTableDataPercentLoaded({\n page,\n tableId = null,\n tableDataPercentLoaded,\n}) {\n return {\n type: SET_TABLE_DATA_PERCENT_LOADED,\n page,\n tableId,\n [PERCENT_LOADED]: tableDataPercentLoaded,\n };\n}\n\nexport function setTableState(page, tableId, tableState) {\n return {\n type: SET_TABLE_STATE,\n page,\n tableId,\n [TABLE_STATE]: tableState,\n };\n}\n\nexport function requestUpdateTable(params) {\n return {\n type: REQUEST_UPDATE_TABLE,\n ...params,\n };\n}\n\nexport function updateDataOrder(params) {\n return {\n type: REQUEST_UPDATE_DATA_ORDER,\n ...params,\n };\n}\n\nexport function setPageCount(page, tableId, pageCount) {\n return {\n type: SET_PAGE_COUNT,\n page,\n tableId,\n [PAGE_COUNT]: pageCount,\n };\n}\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\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\nmodule.exports = objectToString;\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","module.exports = __webpack_public_path__ + \"2fc0239242a898632ca8aa451cb930c2.js\";","import * as React from 'react';\nimport useSelectIcons from '../select/useIcons';\nexport function getPlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function transPlacement2DropdownAlign(direction, placement) {\n const overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow\n };\n }\n }\n}\nexport function useIcons(props, prefixCls) {\n const {\n allowClear = true\n } = props;\n const {\n clearIcon,\n removeIcon\n } = useSelectIcons(Object.assign(Object.assign({}, props), {\n prefixCls,\n componentName: 'DatePicker'\n }));\n const mergedAllowClear = React.useMemo(() => {\n if (allowClear === false) {\n return false;\n }\n const allowClearConfig = allowClear === true ? {} : allowClear;\n return Object.assign({\n clearIcon: clearIcon\n }, allowClearConfig);\n }, [allowClear, clearIcon]);\n return [mergedAllowClear, removeIcon];\n}","export const [WEEK, WEEKPICKER] = ['week', 'WeekPicker'];\nexport const [MONTH, MONTHPICKER] = ['month', 'MonthPicker'];\nexport const [YEAR, YEARPICKER] = ['year', 'YearPicker'];\nexport const [QUARTER, QUARTERPICKER] = ['quarter', 'QuarterPicker'];\nexport const [TIME, TIMEPICKER] = ['time', 'TimePicker'];","\"use client\";\n\nimport * as React from 'react';\nimport Button from '../button';\nconst PickerButton = props => (/*#__PURE__*/React.createElement(Button, Object.assign({\n size: \"small\",\n type: \"primary\"\n}, props)));\nexport default PickerButton;","import { useMemo } from 'react';\nimport PickerButton from '../PickerButton';\nexport default function useComponents(components) {\n return useMemo(() => Object.assign({\n button: PickerButton\n }, components), [components]);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport ContextIsolator from '../../_util/ContextIsolator';\nimport { useZIndex } from '../../_util/hooks/useZIndex';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useVariant from '../../form/hooks/useVariants';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getRangePlaceholder, transPlacement2DropdownAlign, useIcons } from '../util';\nimport { TIME } from './constant';\nimport useComponents from './useComponents';\nconst generateRangePicker = generateConfig => {\n const RangePicker = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customGetPopupContainer,\n components,\n className,\n style,\n placement,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n placeholder,\n popupClassName,\n dropdownClassName,\n status: customStatus,\n rootClassName,\n variant: customVariant,\n picker\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"components\", \"className\", \"style\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\", \"rootClassName\", \"variant\", \"picker\"]);\n const innerRef = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n rangePicker\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const rootPrefixCls = getPrefixCls();\n const [variant, enableVariantCls] = useVariant('rangePicker', customVariant, bordered);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('DatePicker.RangePicker');\n warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n }\n // ===================== Icon =====================\n const [mergedAllowClear] = useIcons(props, prefixCls);\n // ================== components ==================\n const mergedComponents = useComponents(components);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === TIME ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, () => innerRef.current);\n const [contextLocale] = useLocale('Calendar', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n // ============================ zIndex ============================\n const [zIndex] = useZIndex('DatePicker', (_a = props.popupStyle) === null || _a === void 0 ? void 0 : _a.zIndex);\n return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, /*#__PURE__*/React.createElement(RCRangePicker, Object.assign({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: `${prefixCls}-separator`\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n popupAlign: transPlacement2DropdownAlign(direction, placement),\n placement: placement,\n placeholder: getRangePlaceholder(locale, picker, placeholder),\n suffixIcon: suffixNode,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`,\n picker: picker\n }, restProps, {\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className, rangePicker === null || rangePicker === void 0 ? void 0 : rangePicker.className, cssVarCls, rootCls, rootClassName),\n style: Object.assign(Object.assign({}, rangePicker === null || rangePicker === void 0 ? void 0 : rangePicker.style), style),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: mergedComponents,\n direction: direction,\n classNames: {\n popup: classNames(hashId, popupClassName || dropdownClassName, cssVarCls, rootCls, rootClassName)\n },\n styles: {\n popup: Object.assign(Object.assign({}, props.popupStyle), {\n zIndex\n })\n },\n allowClear: mergedAllowClear\n }))));\n });\n if (process.env.NODE_ENV !== 'production') {\n RangePicker.displayName = 'RangePicker';\n }\n return RangePicker;\n};\nexport default generateRangePicker;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport ContextIsolator from '../../_util/ContextIsolator';\nimport { useZIndex } from '../../_util/hooks/useZIndex';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useVariant from '../../form/hooks/useVariants';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getPlaceholder, transPlacement2DropdownAlign, useIcons } from '../util';\nimport { MONTH, MONTHPICKER, QUARTER, QUARTERPICKER, TIME, TIMEPICKER, WEEK, WEEKPICKER, YEAR, YEARPICKER } from './constant';\nimport useComponents from './useComponents';\nconst generatePicker = generateConfig => {\n const getPicker = (picker, displayName) => {\n const consumerName = displayName === TIMEPICKER ? 'timePicker' : 'datePicker';\n const Picker = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customizeGetPopupContainer,\n components,\n style,\n className,\n rootClassName,\n size: customizeSize,\n bordered,\n placement,\n placeholder,\n popupClassName,\n dropdownClassName,\n disabled: customDisabled,\n status: customStatus,\n variant: customVariant,\n onCalendarChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"components\", \"style\", \"className\", \"rootClassName\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\", \"variant\", \"onCalendarChange\"]);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n // Consume different styles according to different names\n [consumerName]: consumerStyle\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const innerRef = React.useRef(null);\n const [variant, enableVariantCls] = useVariant('datePicker', customVariant, bordered);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n useImperativeHandle(ref, () => innerRef.current);\n const additionalProps = {\n showToday: true\n };\n const mergedPicker = picker || props.picker;\n const rootPrefixCls = getPrefixCls();\n // ==================== Legacy =====================\n const {\n onSelect,\n multiple\n } = restProps;\n const hasLegacyOnSelect = onSelect && picker === 'time' && !multiple;\n const onInternalCalendarChange = (date, dateStr, info) => {\n onCalendarChange === null || onCalendarChange === void 0 ? void 0 : onCalendarChange(date, dateStr, info);\n if (hasLegacyOnSelect) {\n onSelect(date);\n }\n };\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning(displayName || 'DatePicker');\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', 'deprecated', `DatePicker.${displayName} is legacy usage. Please use DatePicker[picker='${picker}'] directly.`) : void 0;\n warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n warning.deprecated(!hasLegacyOnSelect, 'onSelect', 'onCalendarChange');\n }\n // ===================== Icon =====================\n const [mergedAllowClear, removeIcon] = useIcons(props, prefixCls);\n // ================== components ==================\n const mergedComponents = useComponents(components);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n const [contextLocale] = useLocale('DatePicker', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n // ============================ zIndex ============================\n const [zIndex] = useZIndex('DatePicker', (_a = props.popupStyle) === null || _a === void 0 ? void 0 : _a.zIndex);\n return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, /*#__PURE__*/React.createElement(RCPicker, Object.assign({\n ref: innerRef,\n placeholder: getPlaceholder(locale, mergedPicker, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placement: placement,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`,\n picker: picker,\n onCalendarChange: onInternalCalendarChange\n }, additionalProps, restProps, {\n locale: locale.lang,\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.className, className, cssVarCls, rootCls, rootClassName),\n style: Object.assign(Object.assign({}, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.style), style),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: mergedComponents,\n direction: direction,\n disabled: mergedDisabled,\n classNames: {\n popup: classNames(hashId, cssVarCls, rootCls, rootClassName, popupClassName || dropdownClassName)\n },\n styles: {\n popup: Object.assign(Object.assign({}, props.popupStyle), {\n zIndex\n })\n },\n allowClear: mergedAllowClear,\n removeIcon: removeIcon\n }))));\n });\n if (process.env.NODE_ENV !== 'production' && displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n };\n const DatePicker = getPicker();\n const WeekPicker = getPicker(WEEK, WEEKPICKER);\n const MonthPicker = getPicker(MONTH, MONTHPICKER);\n const YearPicker = getPicker(YEAR, YEARPICKER);\n const QuarterPicker = getPicker(QUARTER, QUARTERPICKER);\n const TimePicker = getPicker(TIME, TIMEPICKER);\n return {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n };\n};\nexport default generatePicker;","\"use client\";\n\nimport generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nconst generatePicker = generateConfig => {\n // =========================== Picker ===========================\n const {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n } = generateSinglePicker(generateConfig);\n // ======================== Range Picker ========================\n const RangePicker = generateRangePicker(generateConfig);\n const MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n if (process.env.NODE_ENV !== 'production') {\n MergedDatePicker.displayName = 'DatePicker';\n }\n return MergedDatePicker;\n};\nexport default generatePicker;","\"use client\";\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport genPurePanel from '../_util/PurePanel';\nimport generatePicker from './generatePicker';\nimport { transPlacement2DropdownAlign } from './util';\nconst DatePicker = generatePicker(dayjsGenerateConfig);\nfunction postPureProps(props) {\n const dropdownAlign = transPlacement2DropdownAlign(props.direction, props.placement);\n dropdownAlign.overflow.adjustY = false;\n dropdownAlign.overflow.adjustX = false;\n return Object.assign(Object.assign({}, props), {\n dropdownAlign\n });\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(DatePicker, 'picker', null, postPureProps);\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nconst PureRangePanel = genPurePanel(DatePicker.RangePicker, 'picker', null, postPureProps);\nDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = PureRangePanel;\nDatePicker.generatePicker = generatePicker;\nexport default DatePicker;","import { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genSpaceCompactStyle from './compact';\nconst genSpaceStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-align': {\n flexDirection: 'column',\n '&-center': {\n alignItems: 'center'\n },\n '&-start': {\n alignItems: 'flex-start'\n },\n '&-end': {\n alignItems: 'flex-end'\n },\n '&-baseline': {\n alignItems: 'baseline'\n }\n },\n [`${componentCls}-item:empty`]: {\n display: 'none'\n },\n // https://github.com/ant-design/ant-design/issues/47875\n [`${componentCls}-item > ${antCls}-badge-not-a-wrapper:only-child`]: {\n display: 'block'\n }\n }\n };\n};\nconst genSpaceGapStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n '&-gap-row-small': {\n rowGap: token.spaceGapSmallSize\n },\n '&-gap-row-middle': {\n rowGap: token.spaceGapMiddleSize\n },\n '&-gap-row-large': {\n rowGap: token.spaceGapLargeSize\n },\n '&-gap-col-small': {\n columnGap: token.spaceGapSmallSize\n },\n '&-gap-col-middle': {\n columnGap: token.spaceGapMiddleSize\n },\n '&-gap-col-large': {\n columnGap: token.spaceGapLargeSize\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = () => ({});\nexport default genStyleHooks('Space', token => {\n const spaceToken = mergeToken(token, {\n spaceGapSmallSize: token.paddingXS,\n spaceGapMiddleSize: token.padding,\n spaceGapLargeSize: token.paddingLG\n });\n return [genSpaceStyle(spaceToken), genSpaceGapStyle(spaceToken), genSpaceCompactStyle(spaceToken)];\n}, () => ({}), {\n // Space component don't apply extra font style\n // https://github.com/ant-design/ant-design/issues/40315\n resetStyle: false\n});","module.exports = __webpack_public_path__ + \"432aff60ba31a74d2120031fdc894775.js\";","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * 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\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.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 * 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\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\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// 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\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashClear;\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\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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\nexport default hashSet;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\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\nexport default mapCacheClear;\n","import isKeyable from './_isKeyable.js';\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\nexport default getMapData;\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\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\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// 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\nexport default MapCache;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheSet;\n","import {\n OpSelect,\n OpSelectSingleProps,\n} from 'new-components/DLS/OpSelect/OpSelect';\nimport { sortOptionsAlphabetically } from 'utils/sortOptionsAlphabetically';\nimport { useSupportedLanguages } from '../../utils/customHooks/useSupportedLanguages';\n\ntype LanguageSelectorProps = Pick<\n OpSelectSingleProps,\n 'value' | 'onChange'\n>;\n\nexport const LanguageSelector = ({\n value,\n onChange,\n}: LanguageSelectorProps) => {\n const supportedLanguages = useSupportedLanguages();\n\n const languageOptions = supportedLanguages.map(({ code, nativeName }) => ({\n value: code,\n label: nativeName,\n }));\n\n const selectedLanguage = languageOptions.find(\n ({ label: language }) => language === value,\n );\n\n return (\n \n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LanguageSelectorNotAuthenticated.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LanguageSelectorNotAuthenticated.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { useTranslation } from 'react-i18next';\nimport { LanguageSelector } from 'new-components/LanguageSelector/LanguageSelector';\nimport { getAccessToken } from 'utils/accessToken';\n\nimport './LanguageSelectorNotAuthenticated.scss';\n\nexport const LanguageSelectorNotAuthenticated = () => {\n const { i18n } = useTranslation();\n\n const accessToken = getAccessToken();\n\n if (accessToken) return null;\n\n const handleLanguageChange = (language: string | string[]) => {\n if (typeof language === 'string') {\n i18n.changeLanguage(language);\n }\n };\n\n return (\n
\n \n
\n );\n};\n","import { Dispatch, SetStateAction, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Document } from '@contentful/rich-text-types';\n\nconst openpathConfig = require('openpathConfig');\n\ninterface MarketingData {\n headline: string;\n backgroundImage: string;\n bodyContent: Document;\n buttonLink: string;\n buttonText: string;\n}\n\nconst loadMarketingData = async (\n language: string,\n setMarketingData: Dispatch>,\n setIsFetching: Dispatch>,\n) => {\n const api = openpathConfig.CONTENTFUL_API_URL;\n const path = '/.netlify/functions/server/splitscreen/';\n const _intent = 'regular';\n\n const url = `${api}${path}${_intent}/${language}`;\n const response = await fetch(url);\n if (!response.ok) {\n setIsFetching(false);\n return;\n }\n\n const data = await response.json();\n\n setMarketingData(data.data);\n setIsFetching(false);\n};\n\nexport const useMarketing = () => {\n const { i18n } = useTranslation();\n const language = i18n.language || 'en';\n const [marketingData, setMarketingData] = useState<\n MarketingData | undefined\n >();\n const [isFetching, setIsFetching] = useState(true);\n\n useEffect(() => {\n loadMarketingData(language, setMarketingData, setIsFetching);\n }, [language]);\n\n return { marketingData, isFetching };\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./Marketing.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./Marketing.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { documentToReactComponents } from '@contentful/rich-text-react-renderer';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport clsx from 'clsx';\nimport { useMarketing } from './hooks/useMarketing';\n\nimport './Marketing.scss';\n\nexport const Marketing = () => {\n const { marketingData, isFetching } = useMarketing();\n\n const isError = !marketingData && !isFetching;\n\n return (\n \n {!isError &&\n (isFetching ? (\n
\n \n
\n ) : (\n <>\n
\n

\n {marketingData?.headline}\n

\n
\n {marketingData?.bodyContent &&\n documentToReactComponents(marketingData.bodyContent)}\n
\n {\n window.open(marketingData?.buttonLink, '_blank');\n }}\n >\n {marketingData?.buttonText}\n \n
\n
\n \n ))}\n
\n );\n};\n","import { useOpMutation } from '../useOpMutation';\n\nexport const useGetSsoAuthUrl = () => {\n return useOpMutation({\n apiEndpointName: 'getSsoAuthUrl',\n shouldSuppressErrorMessage: (error) =>\n error.statusCode === 401 && error.message === 'Namespace is required.',\n });\n};\n","import { getWindowLocation } from 'utils/window';\n\nexport const useAltaLoginUrlParams = () => {\n /**\n * urlParams\n * email: if exists, we go straight to searching for the possible logins for the email skipping the email\n * form unless no valid namespaces are found. The user can hit the \"Not you\" button to reset the email.\n * orgId: if exists, we use it to filter the allowed namespaces to only ones where the user can login\n * to the org with the orgId.\n * service: if exists, we use it to know if we are logging into dmp or aware. if dmp, we only show\n * namespaces that can login to dmp orgs\n * region: if exists, we only show namespaces within this region\n * forgotPassword: if true show forgotPassword flow\n * resetPassword: if true show resetPassword flow\n */\n const urlParams = new URLSearchParams(getWindowLocation().search);\n const orgId = urlParams.get('orgId');\n const emailParam = urlParams.get('email');\n const service = urlParams.get('service');\n const region = urlParams.get('region') ?? '';\n const token = urlParams.get('token');\n const resetPassword = urlParams.get('resetPassword');\n const nonce = urlParams.get('nonce') ?? '';\n\n /**\n * The redirectUrl from aware includes /login which is not desired. In order to\n * assist we are removing on our end so the user isn't directed to /login.\n */\n const redirectUrl = urlParams.get('redirectUrl')?.replace('/login', '') || '';\n\n return {\n orgId,\n emailParam,\n service,\n region: region as 'prod' | 'prodeu1' | 'dev' | 'sandbox' | '',\n token,\n resetPassword,\n redirectUrl,\n nonce,\n };\n};\n","export const ACCESS_NATIVE_APP_ID = 1;\nexport const MAILROOM_NATIVE_APP_ID = 2;\nexport const PROTECT_NATIVE_APP_ID = 3;\nexport const VIDEO_NATIVE_APP_ID = 4;\nexport const SOS_NATIVE_APP_ID = 5;\nexport const VISITOR_NATIVE_APP_ID = 6;\n\nexport enum NativeAppStatus {\n Active = 'A',\n Inactive = 'I',\n Pending = 'P',\n Error = 'E',\n}\n","import {\n PROTECT_NATIVE_APP_ID,\n VIDEO_NATIVE_APP_ID,\n} from '../../partnerCenterApp/constants/native-apps';\n\ntype ScopeListOrgNativeApp = Utils.NonUndefined<\n Utils.ArrayElement['org']\n>['orgNativeApps'];\n\nexport const checkIsVideoOnlyCustomer = (\n orgNativeApps: ScopeListOrgNativeApp,\n) => {\n if (!orgNativeApps?.length) return false;\n\n const currentNativeAppIds = orgNativeApps.map(\n (orgNativeApp) => orgNativeApp.nativeApp.id,\n );\n const videoNativeApps = currentNativeAppIds.filter((nativeAppId) =>\n [VIDEO_NATIVE_APP_ID, PROTECT_NATIVE_APP_ID].includes(nativeAppId),\n );\n\n const nativeAppChecks = [\n videoNativeApps.length > 0,\n // If video native apps are equal to your total apps then you only have video native apps\n videoNativeApps.length === orgNativeApps.length,\n ];\n\n return nativeAppChecks.every(Boolean);\n};\n","export const hasOnlyMailroomScopes = (\n tokenScopeItem?: Utils.ArrayElement<\n Api.Response['describeAccessToken']['tokenScopeList']\n >,\n) => {\n if (!tokenScopeItem) return false;\n const { org, scope, user } = tokenScopeItem;\n\n const mailroomScopes = [\n `o${org?.id}-parcelMgmtParcels:r`,\n `o${org?.id}-parcelMgmtParcels:w`,\n ];\n\n const userScope = `user${user?.id}`;\n\n const filteredScopes = scope?.filter(\n (scopeItem) => !scopeItem.includes(userScope),\n );\n\n return (\n filteredScopes?.length! > 0 &&\n filteredScopes?.every((scopeItem) => mailroomScopes.includes(scopeItem))\n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./EmailForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./EmailForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { FormInstance } from 'antd/es/form/Form';\nimport { useTranslation } from 'react-i18next';\n\nimport './EmailForm.scss';\n\nexport interface EmailFormInstance {\n email: string;\n}\n\ninterface EmailForm {\n form: FormInstance;\n isSubmitting: boolean;\n initialValues?: { email: string | null };\n onSubmit: FormOnSubmitType;\n}\n\n/**\n * @component\n * @description Component that asks for the users email. Will show error if no allowed namespaces are found for the email.\n */\nexport const EmailForm = ({\n form,\n onSubmit,\n initialValues,\n isSubmitting,\n}: EmailForm) => {\n const { t } = useTranslation();\n\n return (\n \n \n {\n form.submit();\n }}\n >\n {t('Continue')}\n \n \n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./NotYou.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./NotYou.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { useTranslation } from 'react-i18next';\n\nimport './NotYou.scss';\n\n/**\n * @component\n * @description Component that shows the user where they are logging into and what email they are using.\n * Allows the user to reset that data.\n * @returns {JSX.Element} React component\n */\nexport const NotYou = ({\n header,\n emailPrefix,\n email,\n name,\n onResetClick,\n}: {\n header?: string;\n email: string;\n emailPrefix?: string;\n name?: string | null;\n onResetClick: () => void;\n}) => {\n const { t } = useTranslation();\n\n return (\n
\n {header &&

{header}

}\n

\n {emailPrefix || t('You are signing in as ')}\n {email}\n

\n {name && (\n

\n {name}\n

\n )}\n \n {t('Not you?')}\n \n
\n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./PossibleLogins.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./PossibleLogins.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { OpSelect } from 'new-components/DLS/OpSelect/OpSelect';\nimport { Logins } from '../../helpers/getPossibleLogins';\nimport { NotYou } from '../NotYou/NotYou';\nimport { HandleIdpSsoLoginArgs } from '../UnifiedLogin/UnifiedLogin';\n\nimport './PossibleLogins.scss';\n\nexport interface SelectedLogin {\n regionEnv: string;\n heliumEndpoint: string;\n namespace: Logins['namespaces'][0];\n}\n\ninterface Namespaces {\n email: string;\n logins: Logins[];\n isPasswordReset?: boolean;\n resetLogins: () => void;\n setSelectedLogin(value: SelectedLogin): void;\n handleIdpSsoLogin(args: HandleIdpSsoLoginArgs): void;\n}\n\n/**\n * @component\n * @description Component that allows the user to choose a namespace to login with.\n * @param {string} props.email - email they are using to login with.\n * @param {Logins[]} props.login - the regions and namespaces the user has to choose from\n * @param {function} props.restLogins - callback to reset the possible logins and the user's email takes you back to emailForm\n * @param {function} props.setSelectedLogin - c callback to set the chosen namespace\n */\nexport const PossibleLogins = ({\n email,\n logins,\n isPasswordReset,\n resetLogins,\n setSelectedLogin,\n handleIdpSsoLogin,\n}: Namespaces) => {\n const { t } = useTranslation();\n const selectDelimiter = ':';\n\n const loginHandler = (\n regionName?: string | null,\n namespaceId?: string | number | null,\n ) => {\n const region = logins.find(\n (loginRegion) => loginRegion.name === regionName,\n );\n const namespace = region?.namespaces.find(\n (ns) => ns.id === Number(namespaceId),\n );\n\n if (region && namespace) {\n // Check if the namespace is of type 'identityProvider' and SSO is enabled.\n // If true, initiate the SSO login process. Otherwise, set the selected login options\n if (\n namespace.namespaceType?.modelName === 'identityProvider' &&\n namespace.identityProvider?.isSsoEnabled\n ) {\n handleIdpSsoLogin({\n email,\n namespaceNickname: namespace.nickname!,\n // Helium type is not an enum so need to typecast this for now\n env: region.env as 'prod' | 'prodeu1' | 'dev' | 'sandbox',\n });\n } else {\n setSelectedLogin({\n regionEnv: region.env!,\n heliumEndpoint: region.helium?.endpoint!,\n namespace,\n });\n }\n }\n };\n\n const handleLoginClick: ComponentProps['onClick'] = async (\n e,\n ) => {\n const regionName = e.currentTarget.getAttribute('data-region');\n const namespaceId = e.currentTarget.getAttribute('data-namespace');\n\n loginHandler(regionName, namespaceId);\n };\n\n const handleSelectOptionClick = async (value: string) => {\n const [regionName, namespaceId] = value.split(selectDelimiter);\n\n loginHandler(regionName, namespaceId);\n };\n\n const hasAlotOfNameSpaces =\n logins.reduce((memo, login) => {\n return memo + login.namespaces.length;\n }, 0) > 10;\n\n const renderDropdown = () => {\n const selectOptions = logins.map((login) => {\n return {\n label: login.name,\n options: login.namespaces.map((namespace) => ({\n label: generateButtonText(namespace),\n value: `${login.name}${selectDelimiter}${namespace.id}`,\n })),\n };\n });\n\n return (\n
\n \n
\n );\n };\n\n const generateButtonText = (namespace: Logins['namespaces'][0]) => {\n const { org, identityProvider } = namespace;\n\n // If org is at the top level it is not an IdP namespace\n if (org) {\n return org.name;\n }\n\n // These should all exist but leaning on inference\n if (identityProvider && identityProvider.org) {\n return identityProvider.isSsoEnabled ? (\n <>SSO: {identityProvider.org.name}\n ) : (\n identityProvider.org.name\n );\n }\n\n // Probably master mode account\n return namespace.nickname;\n };\n\n const renderDefault = () => (\n
    \n {logins.map((loginRegion) => {\n return (\n
  • \n

    {loginRegion.name}

    \n
      \n {loginRegion.namespaces.map((namespace) => (\n
    • \n \n {generateButtonText(namespace)}\n \n
    • \n ))}\n
    \n
  • \n );\n })}\n
\n );\n\n return (\n
\n \n {hasAlotOfNameSpaces ? renderDropdown() : renderDefault()}\n
\n );\n};\n","/**\n * @description type guard function that validates that the given redirectUrl is an allowed domain\n * @returns boolean\n */\nexport const isRedirectUrlValid = (\n redirectUrl?: string,\n): redirectUrl is string => {\n const re = /(http|https):\\/\\/*.*\\.(alta.avigilon.com|avasecurity.com|ava.uk)/;\n const local = /(http):\\/\\/(localhost:3000)/;\n return Boolean(\n redirectUrl && (re.test(redirectUrl) || local.test(redirectUrl)),\n );\n};\n","/**\n * @description function that identifies the correct orgId to pass to the redirect Url.\n * Prioritize the org id in the url param\n * if no org id in the url and the isDmp flag is true, choose the 1st dmp org that\n * the chosen namespace can log into.\n * otherwise choose the org of thechosen namespace.\n * @param {string} orgIdUrlParam - This takes priority and should be the org id in the url param.\n * @param {object} namespace - choose the org of the chosen namespace as a last resort.\n * @param {string} isDmp - choose the 1st dmp org that the chosen namespace can log into if no url param.\n * @returns string\n */\nexport const getOrgIdForRedirect = (\n orgIdUrlParam: string | null,\n namespace: Api.Response['determineLoginCandidateNamespaces'][0],\n isDmp?: boolean,\n): string => {\n let orgId: string | number | undefined =\n namespace.org?.id ?? namespace.identityProvider?.org?.id;\n\n if (isDmp) {\n // Grab the namespace within the matchedIdentity that has dmp\n const dmpUser = namespace.matchedIdentity?.users?.find((user) => {\n return user.org?.orgAwareConfig?.isDmpOrg;\n });\n\n orgId = dmpUser?.org?.id;\n }\n\n orgId = orgIdUrlParam ?? orgId;\n\n return String(orgId ?? '');\n};\n","import { useState } from 'react';\nimport { unifiedLogin, UnifiedLoginArgs } from 'utils/unifiedLogin';\n\ntype UnifiedLoginArgsNeeded = Omit;\n\ninterface UseAltaLoginArgs extends UnifiedLoginArgsNeeded {\n setError: (error: string) => void;\n}\n\n/**\n * @description hooke that returns a handler already setup with various options to login to Aware\n * when we have a token and redirect to the urlToOpen.\n * @params\n * url: endpoint to call setOpenpathCookie on\n * urlToOpen: url to redirect to after logging in successfully\n * options: org_id and region to be passed to the urlToOpen\n * setError: method to call when an error happens\n * nonce: a value used by Aware when setting our cookie in the new auth strategy\n * @returns {\n * handleAltaLogin: handler to login to aware.\n * isLoggingIn: flag to mark if we are currently logging in.\n * }\n */\nexport const useAltaLogin = ({\n url,\n urlToOpen,\n options,\n setError,\n}: UseAltaLoginArgs) => {\n const [isLoggingIn, setIsLoggingIn] = useState(false);\n /**\n * Potentially need to rethink this hook but for the sake of not breaking everything\n * lets do this later. It was assumed we would know about these values ahead of time thus\n * why the args were passed through but there is now at least 1 scenario via unified login\n * where if a customer is video only based on their tokenScopeList we want to use this.\n * Since this was only initially used for logging in when redirecting from Aware this made\n * sense but now people will start going to the unified login page by default\n */\n const handleAltaLogin = async (overrides?: Partial) => {\n setIsLoggingIn(true);\n try {\n await unifiedLogin({\n url,\n urlToOpen,\n options,\n newTab: false,\n ...overrides,\n });\n } catch (err) {\n const typedError = err as Error;\n\n setError(typedError.message);\n } finally {\n setIsLoggingIn(false);\n }\n };\n\n return {\n handleAltaLogin,\n isLoggingIn,\n };\n};\n","import { getPlatinumUrl } from './getPlatinumUrl';\nimport { setWindowLocation } from './setWindowLocation';\n\nexport const redirectToControlCenter = (\n region: string,\n pathname: string = '',\n) => {\n const endpoint = getPlatinumUrl(region);\n\n setWindowLocation(`${endpoint}${pathname}`);\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ErrorAlert.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ErrorAlert.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import Alert from 'antd/es/alert';\n\nimport './ErrorAlert.scss';\n\nexport const ErrorAlert = ({ message }: { message: string }) => {\n return (\n
\n \n
\n );\n};\n","import { getUpcUrl } from './getUpcUrl';\nimport { setWindowLocation } from './setWindowLocation';\n\nexport const redirectToUpc = (region: string, orgId: number) => {\n setWindowLocation(`${getUpcUrl(region)}/o/${orgId}`);\n};\n","import {\n ACCESS_NATIVE_APP_ID,\n PROTECT_NATIVE_APP_ID,\n MAILROOM_NATIVE_APP_ID,\n VIDEO_NATIVE_APP_ID,\n} from '../../partnerCenterApp/constants/native-apps';\n\ntype TokenScopeOrg = Utils.DeepNonUndefined<\n Utils.ArrayElement<\n Api.Response['describeAccessToken']['tokenScopeList']\n >['org']\n>;\ntype NativeAppIds =\n | typeof ACCESS_NATIVE_APP_ID\n | typeof PROTECT_NATIVE_APP_ID\n | typeof MAILROOM_NATIVE_APP_ID\n | typeof VIDEO_NATIVE_APP_ID;\n\nexport const findNativeApp = (\n orgNativeApps:\n | Api.Response['listOrgNativeApps']\n | TokenScopeOrg['orgNativeApps'] = [],\n nativeAppId: NativeAppIds,\n) =>\n orgNativeApps.find(({ nativeApp }) => {\n return nativeApp.id === nativeAppId;\n });\n","import { findNativeApp } from 'utils/findNativeApp';\nimport {\n PROTECT_NATIVE_APP_ID,\n VIDEO_NATIVE_APP_ID,\n} from '../../partnerCenterApp/constants/native-apps';\n\nexport type TokenScopeOrg = Utils.DeepNonUndefined<\n Utils.ArrayElement<\n Api.Response['describeAccessToken']['tokenScopeList']\n >['org']\n>;\n\nexport const getVideoOnlyCustomerRedirectUrl = (org: TokenScopeOrg) => {\n if (!org) return;\n\n // A video only customer should go to Aware immediately\n const videoNativeApp = findNativeApp(org.orgNativeApps, VIDEO_NATIVE_APP_ID);\n const protectNativeApp = findNativeApp(\n org.orgNativeApps,\n PROTECT_NATIVE_APP_ID,\n );\n\n // Protect is considered video use any of the urls with the order here being the preference\n return videoNativeApp?.url || protectNativeApp?.url;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./PasswordForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./PasswordForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { useTranslation } from 'react-i18next';\nimport { useState } from 'react';\nimport { useUnmount } from 'react-use';\nimport { checkIsVideoOnlyCustomer } from 'utils/checkIsVideoOnlyCustomer';\nimport { checkAuthIsUPCPartnerOrg } from 'utils/checkAuthIsUPCPartnerOrg';\nimport opConf from 'openpathConfig';\nimport { getMailroomOrigin } from 'utils/getMailroomOrigin';\nimport { checkMasterModeAccess } from 'new-components/OrgSwitcher/helpers/orgAccess';\nimport { hasOnlyMailroomScopes } from '../../helpers/hasOnlyMailroomScopes';\nimport { isRedirectUrlValid } from '../../helpers/isRedirectUrlValid';\nimport { setControlCenterCookie } from '../../helpers/setControlCenterCookie';\nimport { setWindowLocation } from '../../helpers/setWindowLocation';\nimport { Logins } from '../../helpers/getPossibleLogins';\nimport { getOrgIdForRedirect } from '../../helpers/getOrgIdForRedirect';\nimport { NotYou } from '../NotYou/NotYou';\nimport { useAltaLogin } from '../../hooks/useAltaLogin';\nimport { redirectToControlCenter } from '../../helpers/redirectToControlCenter';\nimport { ErrorAlert } from '../ErrorAlert/ErrorAlert';\nimport { useAltaLoginUrlParams } from '../../hooks/useAltaLoginUrlParams';\nimport { redirectToUpc } from '../../helpers/redirectToUpc';\nimport { getVideoOnlyCustomerRedirectUrl } from '../../helpers/getVideoOnlyCustomerRedirectUrl';\nimport { getUpcUrl } from '../../helpers/getUpcUrl';\nimport { removeTrailingUrlSlash } from './utils/removeTrailingUrlSlash';\n\nimport './PasswordForm.scss';\n\ninterface PasswordFormProps {\n email: string;\n namespace: Logins['namespaces'][0];\n regionEnv: string;\n heliumEndpoint: string;\n resetLogins: () => void;\n}\n\nconst region = opConf.ENV;\n\n/**\n * @component\n * @description Component that allows the user enter their password.\n * @param {string} props.email - email they are using to login with.\n * @param {string} props.namespace - the namespace the user chose to login with.\n * @param {string} props.regionEnv - region env name the user is logging into.\n * @param {string} props.heliumEndpoint - endpoint for the current environment and chosen region to call /auth endpoints.\n * @param {string} props.resetLogins - callback to reset the possible logins and the user's email, takes you back to emailForm\n * @returns {JSX.Element} React component\n */\nexport const PasswordForm = ({\n email,\n namespace,\n regionEnv,\n heliumEndpoint,\n resetLogins,\n}: PasswordFormProps) => {\n const { t } = useTranslation();\n const { orgId, redirectUrl, service, nonce } = useAltaLoginUrlParams();\n const [isShowing2fa, setIsShowing2fa] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [error, setError] = useState();\n\n const redirectOrgId = getOrgIdForRedirect(\n orgId,\n namespace,\n service === 'dmp',\n );\n\n const { handleAltaLogin, isLoggingIn } = useAltaLogin({\n url: isRedirectUrlValid(redirectUrl) ? new URL(redirectUrl).origin : '',\n urlToOpen: redirectUrl,\n options: {\n region: regionEnv,\n org_id: Number(redirectOrgId),\n nonce,\n },\n setError,\n });\n\n /**\n * Hack for now...we need to launch and we need to rethink the handleAltaLogin function.\n * When we have shared domains and cookies we shouldnt need this at all\n */\n const isRedirectUrlUPC = redirectUrl?.includes(\n removeTrailingUrlSlash(new URL(getUpcUrl(region)).href),\n );\n\n const isRedirectUrlMailroom = redirectUrl?.includes(getMailroomOrigin());\n\n const isMfaError = (loginError: OP.ApiError) => {\n return (\n loginError.statusCode === 401 &&\n loginError.message === 'Multi-factor authentication is required.'\n );\n };\n\n const onSubmit: FormOnSubmitType = async ({\n values: { password, totpCode },\n }) => {\n setError(undefined);\n setIsSubmitting(true);\n const loginResponse = await fetch(`${heliumEndpoint}/auth/login`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n password,\n namespaceId: namespace.id,\n ...(totpCode && { mfa: { totpCode } }),\n }),\n });\n const data = await loginResponse.json();\n\n setIsSubmitting(false);\n\n if (loginResponse.status === 201) {\n setControlCenterCookie(data.data.token);\n\n const finalRegion = opConf.LOGIN_REDIRECT_REGION_OVERRIDE || regionEnv;\n\n // TODO Fix types at some point\n const tokenScopeListItem =\n data.data.tokenScopeList.find((scopeListItem: any) => {\n return scopeListItem.org.id === Number(redirectOrgId);\n }) || {};\n const { org } = tokenScopeListItem;\n if (isRedirectUrlValid(redirectUrl)) {\n handleAltaLogin({\n // Bypass setting cookies / doing auth checks originally needed for deployments which didn't have shared cookies\n bypassAuth: isRedirectUrlUPC || isRedirectUrlMailroom,\n });\n } else if (checkMasterModeAccess({ token: data.data })) {\n redirectToControlCenter(finalRegion, 'master');\n } else if (checkAuthIsUPCPartnerOrg(tokenScopeListItem)) {\n redirectToUpc(finalRegion, org.id);\n } else if (checkIsVideoOnlyCustomer(org?.orgNativeApps)) {\n const videoUrl = getVideoOnlyCustomerRedirectUrl(org);\n\n handleAltaLogin({\n url: videoUrl!,\n urlToOpen: videoUrl!, // ew\n });\n } else if (hasOnlyMailroomScopes(tokenScopeListItem)) {\n const mailroomUrl = `${getMailroomOrigin()}/o/${org.id}`;\n setWindowLocation(mailroomUrl);\n } else {\n // go to control center when no redirectUrl passed in\n redirectToControlCenter(finalRegion);\n }\n } else if (isMfaError(data)) {\n setIsShowing2fa(true);\n } else {\n setError(data.message);\n }\n };\n\n useUnmount(() => {\n setError(undefined);\n });\n\n const { org, identityProvider } = namespace;\n\n const name =\n !org && !identityProvider\n ? namespace.nickname\n : org?.name || identityProvider?.org?.name;\n\n return (\n
\n \n {error && }\n \n \n\n {isShowing2fa && (\n \n )}\n\n {!isShowing2fa && (\n {\n setIsShowing2fa(true);\n }}\n >\n {t('Enter two-factor authentication code')}\n \n )}\n\n \n {t('Sign in')}\n \n \n
\n );\n};\n","export const removeTrailingUrlSlash = (url: string) => {\n return url.endsWith('/') ? url.slice(0, -1) : url;\n};\n","import { setAccessToken } from 'utils/accessToken';\n\nexport const setControlCenterCookie = (token?: string | null) => {\n // this will have to change when the url of /signin is moved to new domain\n // though maybe not, now that we use domain for alta.avigilon access token cookie\n // TODO remove this comment after https://openpath.atlassian.net/browse/OPAC-10444\n setAccessToken(token);\n};\n","export type PossibleRegionEnvs =\n | 'prodeu1'\n | 'prod'\n | 'dev'\n | 'sandbox'\n | 'mine';\n\nconst possibleRegionEnvs: PossibleRegionEnvs[] = [\n 'prodeu1',\n 'prod',\n 'dev',\n 'sandbox',\n];\n\nexport const getRegionFromHeliumUrl = (url: string): PossibleRegionEnvs => {\n for (let envIdx = 0; envIdx < possibleRegionEnvs.length; envIdx += 1) {\n if (url.includes(`.${possibleRegionEnvs[envIdx]}.`)) {\n return possibleRegionEnvs[envIdx];\n }\n }\n\n return 'mine';\n};\n","import opConfig from 'openpathConfig';\nimport {\n PossibleRegionEnvs,\n getRegionFromHeliumUrl,\n} from './getRegionFromHeliumUrl';\n\nexport type Logins = Api.Response['listCloudServerRegions'][0] & {\n namespaces: Api.Response['determineLoginCandidateNamespaces'];\n};\n\nconst HELIUM_ENDPOINT = opConfig.PORTAL_API_URL;\n\ninterface LoginOptions {\n env?: string | null;\n orgId?: number | null;\n isDmp?: boolean;\n}\n\ninterface NamespaceOptions {\n orgId?: number | null;\n isDmp?: boolean;\n}\n\ntype LoginCandidateNamespace = Utils.SingularOfType<\n Api.Response['determineLoginCandidateNamespaces']\n>;\n\ntype LoginCandidateNamespaceWithRegion = LoginCandidateNamespace & {\n region: PossibleRegionEnvs;\n};\n\n/**\n * @description function to be used inside Array.filter of namespaces based on SSO, orgId, and isDmp\n * filter out SSO enabled namespaces\n * filter out namespaces with no users with a matching orgId\n * - This filters on matchedIdentity.users (they can be imported from this namespace into the org matching the orgId)\n * filter out namespaces where user with matching orgId that is dmp or any users with a dmp org when isDmp is true\n * - This filters on matchedIdentity.users (they can be imported from this namespace into the org that has dmp)\n * @returns boolean\n */\nconst namespaceFilter = (\n namespace: Logins['namespaces'][0],\n { orgId, isDmp }: NamespaceOptions,\n): boolean => {\n const MASTERMODE_NAMESPACE_TYPE_ID = 1;\n\n /**\n * For all namespaces outside of global/mastermode: when there are no active\n * users the system should not allow using the namespace\n */\n if (\n namespace.namespaceType?.id !== MASTERMODE_NAMESPACE_TYPE_ID &&\n (!namespace.matchedIdentity?.users ||\n namespace.matchedIdentity?.users.length === 0)\n ) {\n return false;\n }\n\n // Remove any mobile SSO Enabled namespaces\n if (\n !namespace.identityProvider?.isSsoEnabled &&\n namespace.identityProvider?.isMobileSsoEnabled\n ) {\n return false;\n }\n\n const users = namespace.matchedIdentity?.users ?? [];\n\n // namespace is only valid if any user is in the org requested\n if (orgId) {\n // If logging into dmp - the user's matching org needs to be a dmp org\n return (\n users.findIndex(\n (user) =>\n user.org?.id === orgId &&\n (!isDmp || user.org.orgAwareConfig?.dmpOrgIdExt),\n ) > -1\n );\n }\n\n // If logging into dmp - at least one user's org needs to be a dmp org otherwise any will do\n return (\n !isDmp ||\n users.findIndex((user) => user.org?.orgAwareConfig?.dmpOrgIdExt) > -1\n );\n};\n\n/**\n * @description function that retrieves available regions for the current environment and returns\n * the non sso enabled namespaces matching the given email and filtered appropriately per the env, orgId, isDmp options.\n * @returns Promise\n */\nexport const getPossibleLogins = async (\n email: string,\n { env, orgId, isDmp }: LoginOptions = {},\n): Promise => {\n const regionsResponse = await fetch(`${HELIUM_ENDPOINT}/cloudServerRegions`);\n const regions: {\n data: Api.Response['listCloudServerRegions'];\n } = await regionsResponse.json();\n\n const namespacesResponse = await Promise.all(\n regions.data\n // only call for the region matching the given env if exists\n .filter((region) => !env || region.env === env)\n .map((region) =>\n fetch(\n `${region.helium?.endpoint}/auth/determineLoginCandidateNamespaces`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ email }),\n },\n ),\n ),\n );\n\n const namespaceDataResponse: Array<\n LoginCandidateNamespaceWithRegion[] | null\n > = await Promise.all(\n namespacesResponse.map(async (res) => {\n /**\n * Inject candidate regions into their data so we can be more exact on which region they belong to\n * The url we hit indicates which api this came from\n */\n const region = getRegionFromHeliumUrl(res.url);\n\n const json = await res.json();\n\n // Check if no namespaces found - email not found returns a 400\n if (res.status === 400 && json.errorData?.errorCode === 'H-2102') {\n return null;\n }\n\n return [...json.data].map(\n (data: LoginCandidateNamespace) => ({\n ...data,\n region,\n }),\n );\n }),\n );\n\n // Filter out the regions where no namespaces were found\n // Need to use typeGaurd method in filter to get typesafety\n const namespaceData = namespaceDataResponse.filter(\n (\n maybeData: LoginCandidateNamespaceWithRegion[] | null,\n ): maybeData is LoginCandidateNamespaceWithRegion[] => !!maybeData,\n );\n\n const possibleLogins: Logins[] = [];\n namespaceData.forEach((namespaces) => {\n // filter out SSO enabled namespaces and filter out namespaces with no users with a matching orgId and handle isDmp\n const allowedNamespaces = namespaces?.filter((namespace) =>\n namespaceFilter(namespace, { orgId, isDmp }),\n );\n\n if (allowedNamespaces?.length > 0) {\n const region = regions.data.find(\n // allowedNamespaces are a group of namespaces from the same region so we can use the first one's region\n ({ env: regionEnv }) => regionEnv === allowedNamespaces[0].region,\n );\n\n possibleLogins.push({\n ...region,\n namespaces: allowedNamespaces,\n });\n }\n });\n\n return possibleLogins;\n};\n","import {\n Dispatch,\n SetStateAction,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { FormInstance } from 'antd/es/form/Form';\nimport { useTranslation } from 'react-i18next';\nimport { Logins, getPossibleLogins } from '../helpers/getPossibleLogins';\nimport { SelectedLogin } from '../components/PossibleLogins/PossibleLogins';\nimport { EmailFormInstance } from '../components/LoginFlow/EmailForm';\nimport { useAltaLoginUrlParams } from './useAltaLoginUrlParams';\nimport { HandleIdpSsoLoginArgs } from '../components/UnifiedLogin/UnifiedLogin';\n\ninterface UseGetLoginsForEmailIOptions {\n emailForm: FormInstance;\n setLogins: Dispatch>;\n setSelectedLogin(value: SelectedLogin): void;\n handleIdpSsoLogin(args: HandleIdpSsoLoginArgs): void;\n}\n\n/**\n * @description hook that sets up the ability to process an email, org id, region,\n * and service to gather all possible logins for the current state.\n * @returns {\n * getLoginsForEmail: handler search for logins.\n * isSubmittingEmail: flag to mark if we are currently searching for logins\n * }\n */\nexport const useGetLoginsForEmail = ({\n emailForm,\n setSelectedLogin,\n setLogins,\n handleIdpSsoLogin,\n}: UseGetLoginsForEmailIOptions) => {\n const { t } = useTranslation();\n const [isSubmittingEmail, setIsSubmittingEmail] = useState(false);\n\n const { orgId, service, region } = useAltaLoginUrlParams();\n const isDmp = useMemo(() => Boolean(service && service === 'dmp'), [service]);\n\n /**\n * @description function that finds the allowed namespaces to login to for the given options.\n * if no allowed namespaces are found, we set a form error.\n * if only 1 allowed namespace is found, we set that namespace as selected.\n * if more than 1 allowed namespace is found, we allow the user to choose the namespace.\n * @returns void\n */\n const getLoginsForEmail = useCallback(\n async (chosenEmail: string) => {\n try {\n setIsSubmittingEmail(true);\n\n const possibleLogins = await getPossibleLogins(chosenEmail, {\n env: region,\n orgId: orgId ? Number(orgId) : undefined,\n isDmp,\n });\n\n // More than one found, user needs to choose which one\n if (\n possibleLogins.length > 1 ||\n possibleLogins[0]?.namespaces.length > 1\n ) {\n setIsSubmittingEmail(false);\n setLogins(possibleLogins);\n return;\n }\n\n // Only one found, redirect to control center\n if (possibleLogins.length === 1) {\n // Only one SSO enabled IDP found, initiate SSO login process\n if (\n possibleLogins[0].namespaces[0].namespaceType?.modelName ===\n 'identityProvider' &&\n possibleLogins[0].namespaces[0].identityProvider?.isSsoEnabled\n ) {\n return handleIdpSsoLogin({\n email: chosenEmail,\n namespaceNickname: possibleLogins[0].namespaces[0].nickname!,\n env: region,\n });\n }\n setIsSubmittingEmail(false);\n setSelectedLogin({\n regionEnv: possibleLogins[0].env!,\n heliumEndpoint: possibleLogins[0].helium?.endpoint!,\n namespace: possibleLogins[0].namespaces[0],\n });\n\n return;\n }\n\n setIsSubmittingEmail(false);\n\n emailForm.setFields([\n {\n name: 'email',\n errors: [t(\"Couldn't find your account\")],\n },\n ]);\n } catch {\n setIsSubmittingEmail(false);\n }\n },\n [\n region,\n orgId,\n isDmp,\n emailForm,\n t,\n setLogins,\n setSelectedLogin,\n handleIdpSsoLogin,\n ],\n );\n\n return { getLoginsForEmail, isSubmittingEmail };\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginFlow.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginFlow.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { useTranslation } from 'react-i18next';\nimport Form from 'antd/es/form';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { getAccessToken } from 'utils/accessToken';\nimport { useOpQuery } from 'utils/customHooks/useOpQuery';\nimport { checkAuthIsUPCPartnerOrg } from 'utils/checkAuthIsUPCPartnerOrg';\nimport { checkIsVideoOnlyCustomer } from 'utils/checkIsVideoOnlyCustomer';\nimport opConfig from 'openpathConfig';\nimport { getMailroomOrigin } from 'utils/getMailroomOrigin';\nimport { checkMasterModeAccess } from 'new-components/OrgSwitcher/helpers/orgAccess';\nimport { useLocation } from 'react-router';\nimport { hasOnlyMailroomScopes } from '../../helpers/hasOnlyMailroomScopes';\n\nimport { EmailForm, EmailFormInstance } from './EmailForm';\nimport {\n PossibleLogins,\n SelectedLogin,\n} from '../PossibleLogins/PossibleLogins';\nimport { PasswordForm } from './PasswordForm';\nimport { Logins } from '../../helpers/getPossibleLogins';\nimport { useGetLoginsForEmail } from '../../hooks/useGetLoginsForEmail';\nimport { useAltaLoginUrlParams } from '../../hooks/useAltaLoginUrlParams';\nimport { HandleIdpSsoLoginArgs } from '../UnifiedLogin/UnifiedLogin';\nimport { isRedirectUrlValid } from '../../helpers/isRedirectUrlValid';\nimport { setWindowLocation } from '../../helpers/setWindowLocation';\nimport { redirectToUpc } from '../../helpers/redirectToUpc';\nimport { redirectToControlCenter } from '../../helpers/redirectToControlCenter';\nimport {\n getVideoOnlyCustomerRedirectUrl,\n TokenScopeOrg,\n} from '../../helpers/getVideoOnlyCustomerRedirectUrl';\n\nimport './LoginFlow.scss';\n\ninterface LoginFlowProps {\n initialEmail: string | null;\n onForgotPassword(value: { didForget: boolean; initialEmail: string }): void;\n handleIdpSsoLogin(args: HandleIdpSsoLoginArgs): void;\n}\n\n/**\n * @component\n * @description Component that allows the user to login\n * @param {string} props.initialEmail - email currently being used - useful if navigating back here from a\n * different route like forgotPassword.\n * @param {string} props.onForgotPassword - callback to navigate to forgot password route.\n */\nexport const LoginFlow = ({\n initialEmail,\n onForgotPassword,\n handleIdpSsoLogin,\n}: LoginFlowProps) => {\n const { t } = useTranslation();\n const { orgId, redirectUrl } = useAltaLoginUrlParams();\n\n const { emailParam } = useAltaLoginUrlParams();\n const [emailForm] = OpForm.useForm();\n const accessToken = getAccessToken();\n const location = useLocation();\n\n // prioritize initialEmail prop when first mounting this component.\n // use the email search param if the initialEmail is not set.\n const [email, setEmail] = React.useState(initialEmail ?? emailParam);\n const [logins, setLogins] = React.useState();\n const [selectedLogin, setSelectedLogin] = useState<\n SelectedLogin | undefined\n >();\n\n const resetLogins = useCallback(() => {\n setLogins(undefined);\n setSelectedLogin(undefined);\n setEmail(null);\n }, []);\n\n const { getLoginsForEmail, isSubmittingEmail } = useGetLoginsForEmail({\n emailForm,\n setLogins,\n setSelectedLogin,\n handleIdpSsoLogin,\n });\n\n const onEmailSubmit: FormOnSubmitType = useCallback(\n async ({ values }) => {\n setEmail(values.email);\n await getLoginsForEmail(values.email);\n },\n [setEmail, getLoginsForEmail],\n );\n\n const { data: tokenData } = useOpQuery({\n apiEndpointName: 'describeAccessToken',\n parameters: [accessToken],\n enabled: Boolean(accessToken),\n select: (data) => data.json.data,\n });\n\n // verify of the user is aready logged in and redirect them to the correct page\n useEffect(() => {\n if (tokenData) {\n if (redirectUrl && isRedirectUrlValid(redirectUrl)) {\n setWindowLocation(redirectUrl);\n return;\n }\n\n const region =\n opConfig.LOGIN_REDIRECT_REGION_OVERRIDE ||\n selectedLogin?.regionEnv ||\n opConfig.ENV;\n\n const hasMasterModeAccess = checkMasterModeAccess({ token: tokenData });\n if (hasMasterModeAccess) {\n redirectToControlCenter(region, 'master');\n }\n\n let tokenScopeListItem = tokenData.tokenScopeList?.find((tokenScope) =>\n orgId\n ? tokenScope.org?.id === Number(orgId)\n : checkAuthIsUPCPartnerOrg(tokenScope),\n );\n\n if (!tokenScopeListItem) {\n tokenScopeListItem = tokenData.tokenScopeList?.find(\n (tokenScope) => tokenScope.org?.id,\n );\n }\n\n if (!tokenScopeListItem) {\n return;\n }\n\n if (checkAuthIsUPCPartnerOrg(tokenScopeListItem)) {\n redirectToUpc(region, tokenScopeListItem?.org?.id || 0);\n } else if (\n checkIsVideoOnlyCustomer(tokenScopeListItem?.org?.orgNativeApps)\n ) {\n const videoUrl = getVideoOnlyCustomerRedirectUrl({\n ...tokenScopeListItem.org,\n isUnified: tokenScopeListItem.org?.isUnified ?? false,\n } as TokenScopeOrg);\n\n setWindowLocation(videoUrl!);\n } else if (hasOnlyMailroomScopes(tokenScopeListItem)) {\n const mailroomUrl = `${getMailroomOrigin()}/o/${tokenScopeListItem?.org?.id}`;\n\n setWindowLocation(mailroomUrl);\n } else {\n /**\n * A couple notes:\n *\n * - This component can render on the `/login` route\n * - The `redirectToControlCenter` function will redirect '/'\n * - The root route, in some scenarios, redirects to `/login`\n *\n * Given the above, there can be a redirect loop; to ensure that does\n * not happen - prevent the redirect if the user is on the `/login`\n * route.\n */\n if (location.pathname.includes('login')) return;\n redirectToControlCenter(region);\n }\n }\n }, [\n tokenData,\n orgId,\n redirectUrl,\n location.pathname,\n selectedLogin?.regionEnv,\n ]);\n\n // Only do on mount if emailParam is set\n // \"Not You?\" button resets email state and allows the user to retype their email whether the email param is set or not\n useEffect(() => {\n const emailToFetch = initialEmail ?? emailParam;\n if (emailToFetch) {\n getLoginsForEmail(emailToFetch);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // track the email as it is typed\n const currentEmailValue = Form.useWatch('email', emailForm);\n\n const handleForgotPassword = () => {\n onForgotPassword({\n didForget: true,\n initialEmail: currentEmailValue ?? email,\n });\n };\n\n // Should only show one\n const needsEmail = !logins && !selectedLogin;\n const needsNamespace = logins && email && !selectedLogin;\n const needsPassword = email && selectedLogin;\n\n return (\n
\n {needsEmail && (\n \n )}\n {needsNamespace && (\n \n )}\n {needsPassword && (\n \n )}\n \n {t('Forgot password?')}\n \n
\n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ForgotPasswordForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ForgotPasswordForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { FormInstance } from 'antd/es/form/Form';\nimport { useTranslation } from 'react-i18next';\n\nimport './ForgotPasswordForm.scss';\n\nexport interface ForgotPasswordInstance {\n email: string;\n}\n\ninterface ForgotPasswordFormProps {\n form: FormInstance;\n isSubmitting: boolean;\n initialValues?: { email: string | null };\n onSubmit: FormOnSubmitType;\n}\n\n/**\n * @component\n * @description Component that asks for the users email. Will show error if no allowed namespaces are found for the email.\n */\nexport const ForgotPasswordForm = ({\n form,\n initialValues,\n isSubmitting,\n onSubmit,\n}: ForgotPasswordFormProps) => {\n const { t } = useTranslation();\n\n return (\n
\n
\n

{t('Enter the email address you use with Avigilon Alta')}

\n
\n \n \n {\n form.submit();\n }}\n >\n {t('Send password reset email')}\n \n \n
\n );\n};\n","import { getWindowLocation } from 'utils/window';\n\nexport const requestResetPassword = async ({\n email,\n namespaceNickname,\n heliumEndpoint,\n resetUrlParams,\n}: {\n email: string;\n namespaceNickname: string;\n heliumEndpoint: string;\n resetUrlParams: URLSearchParams;\n}) => {\n const baseUrl = getWindowLocation().href.split('?')[0];\n const payload = {\n email,\n namespaceNickname,\n resetUrl: `${baseUrl}?${resetUrlParams}`,\n };\n\n const resetPasswordResponse = await fetch(\n `${heliumEndpoint}/auth/resetPassword`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n },\n );\n\n return resetPasswordResponse;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ResetPasswordRequest.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ResetPasswordRequest.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { useTranslation } from 'react-i18next';\nimport { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { useCallback, useEffect, useState } from 'react';\nimport message from 'antd/es/message';\nimport { requestResetPassword } from '../../helpers/requestResetPassword';\nimport { useAltaLoginUrlParams } from '../../hooks/useAltaLoginUrlParams';\nimport { ErrorAlert } from '../ErrorAlert/ErrorAlert';\n\nimport './ResetPasswordRequest.scss';\n\n/**\n * @component\n * @description Component that sends the user an email to reset their password.\n * The user can also navigate back to the signin page or resend the reset password email.\n * @param {string} props.email - email for the account they are trying to reset.\n * @param {string} props.namespaceNickname - the namespace nickname for the account they are trying to reset.\n * @param {string} props.regionEnv - region env name of the namespace chosen.\n * @param {string} props.heliumEndpoint - endpoint for the current environment and chosen region to call /auth endpoints.\n * @param {string} props.onBackToSignIn - callback to navigate back to the signin page.\n * @returns {JSX.Element} React component\n */\nexport const ResetPasswordRequest = ({\n email,\n namespaceNickname,\n orgId,\n region,\n heliumEndpoint,\n}: {\n email: string;\n namespaceNickname: string;\n orgId: string;\n region: string;\n heliumEndpoint: string;\n}) => {\n const { t } = useTranslation();\n const { service } = useAltaLoginUrlParams();\n const [error, setError] = useState();\n const [messageApi, contextHolder] = message.useMessage();\n\n const showSuccessMessage = useCallback(() => {\n messageApi.open({\n type: 'success',\n content: 'Email sent',\n className: 'reset-password-email__email-sent',\n });\n }, [messageApi]);\n\n const handleSendEmail = useCallback(async () => {\n const resetUrlParams = new URLSearchParams({\n email,\n orgId,\n region,\n namespace: namespaceNickname,\n resetPassword: 'true',\n ...(service && { service }),\n });\n\n const resetPasswordResponse = await requestResetPassword({\n email: email!,\n namespaceNickname,\n heliumEndpoint,\n resetUrlParams,\n });\n\n if (\n resetPasswordResponse.status >= 200 &&\n resetPasswordResponse.status < 300\n ) {\n showSuccessMessage();\n } else {\n const errorData = await resetPasswordResponse.json();\n\n setError(errorData.message);\n }\n }, [\n email,\n heliumEndpoint,\n namespaceNickname,\n orgId,\n region,\n service,\n showSuccessMessage,\n ]);\n\n // send the email when this component is rendered with new values only.\n useEffect(() => {\n handleSendEmail();\n }, [handleSendEmail]);\n\n return (\n
\n {error && }\n

\n {t('If an account exists for ')}\n {email}\n {t(\" we'll send instructions for resetting your password.\")}\n

\n {contextHolder}\n \n {t('Send email again')}\n \n
\n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ForgotPasswordFlow.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ForgotPasswordFlow.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useCallback } from 'react';\nimport { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { useTranslation } from 'react-i18next';\nimport { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport {\n PossibleLogins,\n SelectedLogin,\n} from '../PossibleLogins/PossibleLogins';\nimport { Logins } from '../../helpers/getPossibleLogins';\nimport { useGetLoginsForEmail } from '../../hooks/useGetLoginsForEmail';\nimport {\n ForgotPasswordForm,\n ForgotPasswordInstance,\n} from './ForgotPasswordForm';\nimport { ResetPasswordRequest } from './ResetPasswordRequest';\nimport { getOrgIdForRedirect } from '../../helpers/getOrgIdForRedirect';\nimport { HandleIdpSsoLoginArgs } from '../UnifiedLogin/UnifiedLogin';\n\nimport './ForgotPasswordFlow.scss';\n\ninterface ForgotPasswordFlowProps {\n initialEmail: string | null;\n onBackToSignIn(email: string | null): void;\n handleIdpSsoLogin(args: HandleIdpSsoLoginArgs): void;\n}\n\nexport const ForgotPasswordFlow = ({\n initialEmail,\n onBackToSignIn,\n handleIdpSsoLogin,\n}: ForgotPasswordFlowProps) => {\n const { t } = useTranslation();\n const [emailForm] = OpForm.useForm();\n\n const [email, setEmail] = React.useState(initialEmail);\n const [logins, setLogins] = React.useState();\n const [selectedLogin, setSelectedLogin] = React.useState<\n SelectedLogin | undefined\n >();\n\n const { getLoginsForEmail, isSubmittingEmail } = useGetLoginsForEmail({\n emailForm,\n setLogins,\n setSelectedLogin,\n handleIdpSsoLogin,\n });\n\n const resetLogins = useCallback(() => {\n setLogins(undefined);\n setEmail(null);\n }, []);\n\n const onEmailSubmit: FormOnSubmitType = useCallback(\n async ({ values }) => {\n setEmail(values.email);\n getLoginsForEmail(values.email);\n },\n [setEmail, getLoginsForEmail],\n );\n\n // Should only show one\n const needsEmail = !logins && !selectedLogin;\n const needsNamespace = logins && email && !selectedLogin;\n const needsRequestPasswordChange = email && selectedLogin;\n\n return (\n
\n {needsEmail && (\n \n )}\n {needsNamespace && (\n \n )}\n {needsRequestPasswordChange && (\n \n )}\n {needsRequestPasswordChange ? (\n onBackToSignIn(email)}\n >\n {t('Back to sign in')}\n \n ) : (\n onBackToSignIn(email)}\n >\n {t('Back to sign in')}\n \n )}\n
\n );\n};\n","import opConfig from 'openpathConfig';\n\nexport const getCloudServerRegions = async () => {\n const HeliumEndpoint = opConfig.PORTAL_API_URL;\n const regionsResponse = await fetch(`${HeliumEndpoint}/cloudServerRegions`);\n const regions: {\n data: Api.Response['listCloudServerRegions'];\n } = await regionsResponse.json();\n\n return regions;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ResetPasswordFlow.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ResetPasswordFlow.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { useTranslation } from 'react-i18next';\nimport { ComponentProps, useState } from 'react';\nimport clsx from 'clsx';\nimport { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { getWindowLocation } from 'utils/window';\nimport { useDispatch } from 'react-redux';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport { useAltaLoginUrlParams } from '../../hooks/useAltaLoginUrlParams';\nimport { getCloudServerRegions } from '../../helpers/getCloudServerRegions';\nimport { ErrorAlert } from '../ErrorAlert/ErrorAlert';\n\nimport './ResetPasswordFlow.scss';\n\ninterface ResetPasswordFlowProps {\n backToSignin(email: string): void;\n}\n\n/**\n * @component\n * @description Component that allows the user to choose a new password if a valid token is the search params\n * and gets redirected to signin page with the correct url search params when successful\n */\nexport const ResetPasswordFlow = ({ backToSignin }: ResetPasswordFlowProps) => {\n const { t } = useTranslation();\n const { token, emailParam, region, orgId, service } = useAltaLoginUrlParams();\n const [error, setError] = useState();\n const dispatch = useDispatch();\n\n const handleBackToSignIn = () => {\n const params = new URLSearchParams({\n ...(region && { region }),\n ...(emailParam && { email: emailParam }),\n ...(orgId && { orgId }),\n ...(service && { service }),\n });\n\n dispatch(\n setAlert('success', t('Your password has been successfully set.')),\n );\n\n const windowLocation = getWindowLocation();\n\n window.history.replaceState(\n null,\n '',\n `${windowLocation.origin}${windowLocation.pathname}?${params}`,\n );\n\n backToSignin(params.get('email')!);\n };\n\n const handleSubmit: ComponentProps['onSubmit'] = async ({\n values,\n }) => {\n const availableRegions = await getCloudServerRegions();\n const currentRegion = availableRegions.data.find(\n (reg) => reg.env === region,\n );\n\n const heliumEndpoint = currentRegion?.helium?.endpoint;\n\n if (!heliumEndpoint) {\n setError(t('Missing required information'));\n return;\n }\n\n const changePasswordResponse = await fetch(\n `${heliumEndpoint}/tokens/resetPasswordTokens/${token}/use`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n password: values.password,\n }),\n },\n );\n\n if (\n changePasswordResponse.status >= 200 &&\n changePasswordResponse.status < 300\n ) {\n handleBackToSignIn();\n } else {\n const errorData = await changePasswordResponse.json();\n setError(errorData.message);\n }\n };\n\n return (\n
\n {error && }\n \n \n \n {t('Set password')}\n \n \n \n {t('Back to sign in')}\n \n
\n );\n};\n","export const avigilonAltaIdTooltipText =\n 'This is a unique identifier associated with your SSO app configuration and may be required the first time you use SSO to sign in. You can get this from your Avigilon Alta admin. ';\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./UseAltaIdButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./UseAltaIdButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { useTranslation } from 'react-i18next';\nimport { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { useAddQueryParams } from 'utils/customHooks/useAddQueryParams';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { OpInfoTooltip } from 'new-components/DLS/OpInfoTooltip/OpInfoTooltip';\nimport { avigilonAltaIdTooltipText } from '../LoginSSOAltaIdForm/constants';\n\nimport './UseAltaIdButton.scss';\n\n/**\n * @component\n * @description Component used on the LoginSSOEmailForm component to navigate to\n * a different form of login using an Avigilon Alta Id. That will be an uuid provider\n * from their identity provider (currently only used with a samlJit IdP thats associated with out SAML SSO app)\n */\nexport const UseAltaIdButton = () => {\n const { t } = useTranslation();\n const addQueryParams = useAddQueryParams();\n const enabledFeatureCodes = useSelectorJs(\n selectFeatureFlag('ENABLED_FEATURE_CODES'),\n );\n\n // Hide behind feature flag for now\n if (\n !enabledFeatureCodes.includes('samlSso') ||\n !enabledFeatureCodes.includes('samlJit')\n ) {\n return null;\n }\n\n const onClick = () => {\n addQueryParams({ useAltaId: 'true' });\n };\n\n return (\n
\n \n {t('Use Avigilon Alta Id')}\n \n \n
\n );\n};\n","import { useCallback, useMemo, useState } from 'react';\nimport { OpDivider } from 'new-components/DLS/OpDivider/OpDivider';\nimport { useTranslation } from 'react-i18next';\nimport { useGetSsoAuthUrl } from 'utils/customHooks/api/useGetSsoAuthUrl';\nimport { getWindowLocation } from 'utils/window';\nimport { DynamicHelium } from 'utils/helium';\nimport { useOpMutation } from 'utils/customHooks/useOpMutation';\nimport { useAltaLoginUrlParams } from '../../hooks/useAltaLoginUrlParams';\nimport { LoginFlow } from '../LoginFlow/LoginFlow';\nimport { ForgotPasswordFlow } from '../ForgotPasswordFlow/ForgotPasswordFlow';\nimport { ResetPasswordFlow } from '../ResetPasswordFlow/ResetPasswordFlow';\nimport { UseAltaIdButton } from '../UseAltaIdButton/UseAltaIdButton';\n\nconst PROD_API = 'https://helium.prod.openpath.com';\nconst PRODEU1_API = 'https://helium.prodeu1.openpath.com';\nconst DEV_API = 'https://helium.dev.openpath.com';\nconst SANDBOX_API = 'https://helium.sandbox.openpath.com';\n\ninterface UnifiedLoginProps {\n redirectUrl?: string;\n}\n\nexport interface HandleIdpSsoLoginArgs {\n email: string;\n namespaceNickname: string;\n env?: 'prod' | 'prodeu1' | 'dev' | 'sandbox' | '';\n}\n\nexport const UnifiedLogin = ({ redirectUrl }: UnifiedLoginProps) => {\n const { t } = useTranslation();\n\n const { resetPassword } = useAltaLoginUrlParams();\n const [forgotPassword, setForgotPassword] = useState<{\n didForget: boolean;\n initialEmail: string | null;\n }>({\n didForget: false,\n initialEmail: null,\n });\n\n const prodHeliumClient = new DynamicHelium(PROD_API).createClient();\n const prodeu1HeliumClient = new DynamicHelium(PRODEU1_API).createClient();\n const devHeliumClient = new DynamicHelium(DEV_API).createClient();\n const sandboxHeliumClient = new DynamicHelium(SANDBOX_API).createClient();\n\n const getSsoAuthUrlMutation = useGetSsoAuthUrl();\n\n const prodSsoAuthUrlMutation = useOpMutation({\n apiEndpointName: 'getSsoAuthUrl',\n shouldSuppressErrorMessage: (error) =>\n error.statusCode === 401 && error.message === 'Namespace is required.',\n overrideApiClient: prodHeliumClient,\n });\n const prodeu1SsoAuthUrlMutation = useOpMutation({\n apiEndpointName: 'getSsoAuthUrl',\n shouldSuppressErrorMessage: (error) =>\n error.statusCode === 401 && error.message === 'Namespace is required.',\n overrideApiClient: prodeu1HeliumClient,\n });\n const devSsoAuthUrlMutation = useOpMutation({\n apiEndpointName: 'getSsoAuthUrl',\n shouldSuppressErrorMessage: (error) =>\n error.statusCode === 401 && error.message === 'Namespace is required.',\n overrideApiClient: devHeliumClient,\n });\n\n const sandboxSsoAuthUrlMutation = useOpMutation({\n apiEndpointName: 'getSsoAuthUrl',\n shouldSuppressErrorMessage: (error) =>\n error.statusCode === 401 && error.message === 'Namespace is required.',\n overrideApiClient: sandboxHeliumClient,\n });\n\n const envSsoMutations = useMemo(\n () => ({\n prod: prodSsoAuthUrlMutation,\n prodeu1: prodeu1SsoAuthUrlMutation,\n dev: devSsoAuthUrlMutation,\n sandbox: sandboxSsoAuthUrlMutation,\n }),\n [\n devSsoAuthUrlMutation,\n prodSsoAuthUrlMutation,\n prodeu1SsoAuthUrlMutation,\n sandboxSsoAuthUrlMutation,\n ],\n );\n\n // call a SSO login api for IDP\n const handleIdpSsoLogin = ({\n email,\n namespaceNickname,\n env,\n }: HandleIdpSsoLoginArgs) => {\n // have a fallback which relies on current env variable for whatever reason which will generally be \"mine\" and \"test\"\n const mutation = env ? envSsoMutations[env] : getSsoAuthUrlMutation;\n mutation.mutate(\n {\n payload: {\n email,\n namespaceNickname,\n ...(redirectUrl && { redirectUrl }),\n },\n },\n {\n onSuccess: (data) => {\n getWindowLocation().href = data!.authUrl!;\n },\n },\n );\n };\n\n const handleBackToSignIn = useCallback((initialEmail: string) => {\n setForgotPassword({ didForget: false, initialEmail });\n }, []);\n\n const showLogin = !resetPassword && !forgotPassword.didForget;\n const showForgotPassword = !resetPassword && forgotPassword.didForget;\n let FormInputPortion = null;\n\n if (showLogin) {\n FormInputPortion = (\n \n );\n }\n\n if (showForgotPassword) {\n FormInputPortion = (\n \n );\n }\n\n if (resetPassword) {\n FormInputPortion = ;\n }\n\n return (\n <>\n {FormInputPortion}\n\n {t('or')}\n \n \n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginSSOEmailForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginSSOEmailForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport { useNavigate } from 'react-router-dom-v5-compat';\nimport { OpDivider } from 'new-components/DLS/OpDivider/OpDivider';\nimport { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { useDetermineLoginCandidateNamespaces } from 'utils/customHooks/api/useDetermineLoginCandidateNamespaces';\nimport { useGetSsoAuthUrl } from 'utils/customHooks/api/useGetSsoAuthUrl';\nimport { sortOptionsAlphabetically } from 'utils/sortOptionsAlphabetically';\nimport { getWindowLocation } from 'utils/window';\nimport { UseAltaIdButton } from '../UseAltaIdButton/UseAltaIdButton';\n\nimport './LoginSSOEmailForm.scss';\n\ninterface LoginSSOEmailFormProps {\n loginRoute: '/login' | '/signin';\n redirectUrl?: string;\n}\n\nexport const LoginSSOEmailForm = ({\n loginRoute,\n redirectUrl,\n}: LoginSSOEmailFormProps) => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { t } = useTranslation();\n\n const [namespaceNicknameOptions, setNamespaceNicknameOptions] = useState<\n { label: string; value: string }[] | null\n >(null);\n\n const determineLoginCandidateNamespacesMutation =\n useDetermineLoginCandidateNamespaces();\n\n const getSsoAuthUrlMutation = useGetSsoAuthUrl();\n\n const onSubmit: FormOnSubmitType = ({\n values: { email, namespaceNickname },\n }) => {\n getSsoAuthUrlMutation.mutate(\n {\n payload: {\n email,\n ...(redirectUrl && { redirectUrl }),\n ...(namespaceNickname && { namespaceNickname }),\n },\n },\n {\n onSuccess: (data) => {\n getWindowLocation().href = data!.authUrl!;\n },\n onError: (error) => {\n if (\n error.statusCode === 401 &&\n error.message === 'Namespace is required.'\n ) {\n dispatch(setAlert('info', error.message, null, { timeout: 3000 }));\n\n determineLoginCandidateNamespacesMutation.mutate(\n {\n payload: {\n email,\n },\n },\n {\n onSuccess: (data) => {\n setNamespaceNicknameOptions(\n data!.map(({ nickname }) => ({\n label: nickname!,\n value: nickname!,\n })),\n );\n },\n },\n );\n }\n },\n },\n );\n };\n\n return (\n \n \n\n {namespaceNicknameOptions?.length && (\n \n )}\n\n \n {t('Continue')}\n \n\n \n\n or\n\n {\n // Using navigate here as we don't have access to\n // changeRoute yet since it is in Auth container\n navigate(loginRoute);\n }}\n >\n {t('Sign in without SSO')}\n \n \n );\n};\n","import { useOpMutation } from '../useOpMutation';\n\nexport const useDetermineLoginCandidateNamespaces = () =>\n useOpMutation({\n apiEndpointName: 'determineLoginCandidateNamespaces',\n });\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginSSOAltaIdForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./LoginSSOAltaIdForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { FormOnSubmitType, OpForm } from 'new-components/DLS/OpForm/OpForm';\nimport { useGetSsoAuthUrl } from 'utils/customHooks/api/useGetSsoAuthUrl';\nimport { useTranslation } from 'react-i18next';\nimport { OpDivider } from 'new-components/DLS/OpDivider/OpDivider';\nimport { useNavigate } from 'react-router-dom-v5-compat';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { getWindowLocation } from 'utils/window';\nimport { useIsSso } from '../../hooks/useIsSso';\nimport { LoginSSOEmailForm } from '../LoginSSOEmailForm/LoginSSOEmailForm';\nimport { avigilonAltaIdTooltipText } from './constants';\n\nimport './LoginSSOAltaIdForm.scss';\n\ninterface LoginSSOAltaIdFormData {\n uuid: string;\n}\n\ninterface LoginSSOAltaIdFormProps {\n loginRoute: '/login' | '/signin';\n redirectUrl?: string;\n}\n\n/**\n * @component\n * @description Component used to login w/ SSO via an Avigilon Alta id. This id is a uuid associated with their IdP\n * which for now should be the samlJit IdP associated with the SAML SSO App. The uuid is used to find the login url\n * of the associated IdP and should error if non returned (the mutation would catch this)\n */\nexport const LoginSSOAltaIdForm = ({\n loginRoute,\n redirectUrl,\n}: LoginSSOAltaIdFormProps) => {\n const getSsoAuthUrlMutation = useGetSsoAuthUrl();\n const navigate = useNavigate();\n const { t } = useTranslation();\n const enabledFeatureCodes = useSelectorJs(\n selectFeatureFlag('ENABLED_FEATURE_CODES'),\n );\n\n const isSso = useIsSso();\n\n // Hide behind feature flag for now\n if (\n !enabledFeatureCodes.includes('samlSso') ||\n !enabledFeatureCodes.includes('samlJit')\n ) {\n // If for some reason this component rendered return the default email version until release\n return ;\n }\n\n const onSubmit: FormOnSubmitType = async ({\n values: { uuid },\n }) => {\n const res = await getSsoAuthUrlMutation.mutateAsync({\n payload: {\n uuid,\n ...(redirectUrl && { redirectUrl }),\n },\n });\n\n if (res?.authUrl) {\n getWindowLocation().href = res.authUrl;\n }\n };\n\n return (\n \n \n\n \n {t('Continue')}\n \n\n or\n\n {\n // Using navigate here as we don't have access to\n // changeRoute yet since it is in Auth container\n navigate(loginRoute);\n }}\n >\n {isSso ? t('Sign in without SSO') : t('Sign in without Alta Id')}\n \n \n );\n};\n","import { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { useUrlSearchParams } from 'utils/customHooks/useUrlSearchParams';\n\nexport const useIsSso = () => {\n const { sso } = useUrlSearchParams();\n const isSso = sso === 'true';\n\n const enabledFeatureCodes = useSelectorJs(\n selectFeatureFlag('ENABLED_FEATURE_CODES'),\n );\n\n const isSsoEnabled =\n enabledFeatureCodes.includes('samlSso') &&\n enabledFeatureCodes.includes('samlJit');\n\n return isSso && isSsoEnabled;\n};\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./App.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./App.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect, useLayoutEffect } from 'react';\nimport { OpPage } from 'new-components/OpPage/OpPage';\nimport { appColorThemeManager } from 'utils/appColorThemeManager';\nimport {\n QueryCache,\n QueryClient,\n QueryClientProvider,\n} from '@tanstack/react-query';\nimport { OpApp } from 'new-components/DLS/OpApp/OpApp';\nimport { useDispatch } from 'react-redux';\nimport { setAlert } from 'routes/AppContainer/actions';\n\nimport { useUrlSearchParams } from 'utils/customHooks/useUrlSearchParams';\nimport AlertWrapper from 'containers/AlertWrapper';\nimport { LanguageSelectorNotAuthenticated } from './LanguageSelectorNotAuthenticated/LanguageSelectorNotAuthenticated';\nimport { Marketing } from './Marketing/Marketing';\nimport { UnifiedLogin } from './UnifiedLogin/UnifiedLogin';\nimport { useAltaLoginUrlParams } from '../hooks/useAltaLoginUrlParams';\nimport { LoginSSOAltaIdForm } from './LoginSSOAltaIdForm/LoginSSOAltaIdForm';\n\nimport './App.scss';\n\n/**\n * @component\n * @description Component that wraps the altaLoginApp and holds the top level functionality.\n * Gathers the url params and figures out what functions to call and pages to render based on these params.\n */\nexport const App = () => {\n const dispatch = useDispatch();\n const { redirectUrl } = useAltaLoginUrlParams();\n\n const { hasPortalAccess, useAltaId } = useUrlSearchParams();\n const isAltaIdForm = useAltaId === 'true';\n\n // Create a react-query client\n const queryClient = new QueryClient({\n queryCache: new QueryCache({\n // Catch any react-query useQuery error globally and display the alert (this will not catch useMutation errors)\n onError: (error) => {\n const typedError = error as unknown as Error & {\n suppressErrorMessage: boolean;\n };\n\n if (!typedError.suppressErrorMessage) {\n dispatch(setAlert('error', error.message));\n }\n },\n }),\n });\n\n useLayoutEffect(() => {\n // Save the current theme so we can set it back before unmount\n const previousTheme = appColorThemeManager.getCurrentElColorTheme();\n appColorThemeManager.handleThemeToggle('dark');\n return () => {\n appColorThemeManager.handleThemeToggle(previousTheme);\n };\n }, []);\n\n useEffect(() => {\n if (hasPortalAccess === 'false') {\n dispatch(\n setAlert(\n 'error',\n 'Oops! Your user profile currently has no permission to access this portal. If you feel this is in error, please contact an administrator for your Avigilon Alta account.',\n ),\n );\n }\n }, [dispatch, hasPortalAccess]);\n\n return (\n \n \n
\n \n
\n
\n
\n
\n \n
\n \n {isAltaIdForm ? (\n \n ) : (\n \n )}\n \n \n \n
\n
\n
\n
\n );\n};\n\nexport default App;\n","module.exports = __webpack_public_path__ + \"d5a6140d581e5c4eb200259ce372f40b.js\";","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.routerActions = exports.goForward = exports.goBack = exports.go = exports.replace = exports.push = exports.CALL_HISTORY_METHOD = exports.onLocationChanged = exports.LOCATION_CHANGE = void 0;\n\n/**\n * This action type will be dispatched when your history\n * receives a location change.\n */\nvar LOCATION_CHANGE = '@@router/LOCATION_CHANGE';\nexports.LOCATION_CHANGE = LOCATION_CHANGE;\n\nvar onLocationChanged = function onLocationChanged(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: LOCATION_CHANGE,\n payload: {\n location: location,\n action: action,\n isFirstRendering: isFirstRendering\n }\n };\n};\n/**\n * This action type will be dispatched by the history actions below.\n * If you're writing a middleware to watch for navigation events, be sure to\n * look for actions of this type.\n */\n\n\nexports.onLocationChanged = onLocationChanged;\nvar CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD';\nexports.CALL_HISTORY_METHOD = CALL_HISTORY_METHOD;\n\nvar updateLocation = function updateLocation(method) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return {\n type: CALL_HISTORY_METHOD,\n payload: {\n method: method,\n args: args\n }\n };\n };\n};\n/**\n * These actions correspond to the history API.\n * The associated routerMiddleware will capture these events before they get to\n * your reducer and reissue them as the matching function on your history.\n */\n\n\nvar push = updateLocation('push');\nexports.push = push;\nvar replace = updateLocation('replace');\nexports.replace = replace;\nvar go = updateLocation('go');\nexports.go = go;\nvar goBack = updateLocation('goBack');\nexports.goBack = goBack;\nvar goForward = updateLocation('goForward');\nexports.goForward = goForward;\nvar routerActions = {\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward\n};\nexports.routerActions = routerActions;","module.exports = __webpack_public_path__ + \"a9cb92db2399f7ac97ad55fe79fe5c20.js\";","/**\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\nmodule.exports = listCacheClear;\n","import { CONSOLE_LEVELS, originalConsoleMethods } from '../logger.js';\nimport { fill } from '../object.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n//# sourceMappingURL=console.js.map\n","module.exports = __webpack_public_path__ + \"03aae8272914723a7bf85b984385032c.js\";","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","module.exports = __webpack_public_path__ + \"8a31266178067a316bb2503147cdb5cb.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\n\n/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CheckOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CheckOutlined';\n}\nexport default RefIcon;","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar urlToolkit = {exports: {}};\n\n(function (module, exports) {\n\t// see https://tools.ietf.org/html/rfc1808\n\n\t(function (root) {\n\t var URL_REGEX =\n\t /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n\t var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n\t var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n\t var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n\t var URLToolkit = {\n\t // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n\t // E.g\n\t // With opts.alwaysNormalize = false (default, spec compliant)\n\t // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n\t // With opts.alwaysNormalize = true (not spec compliant)\n\t // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n\t buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n\t opts = opts || {};\n\t // remove any remaining space and CRLF\n\t baseURL = baseURL.trim();\n\t relativeURL = relativeURL.trim();\n\t if (!relativeURL) {\n\t // 2a) If the embedded URL is entirely empty, it inherits the\n\t // entire base URL (i.e., is set equal to the base URL)\n\t // and we are done.\n\t if (!opts.alwaysNormalize) {\n\t return baseURL;\n\t }\n\t var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n\t if (!basePartsForNormalise) {\n\t throw new Error('Error trying to parse base URL.');\n\t }\n\t basePartsForNormalise.path = URLToolkit.normalizePath(\n\t basePartsForNormalise.path\n\t );\n\t return URLToolkit.buildURLFromParts(basePartsForNormalise);\n\t }\n\t var relativeParts = URLToolkit.parseURL(relativeURL);\n\t if (!relativeParts) {\n\t throw new Error('Error trying to parse relative URL.');\n\t }\n\t if (relativeParts.scheme) {\n\t // 2b) If the embedded URL starts with a scheme name, it is\n\t // interpreted as an absolute URL and we are done.\n\t if (!opts.alwaysNormalize) {\n\t return relativeURL;\n\t }\n\t relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n\t return URLToolkit.buildURLFromParts(relativeParts);\n\t }\n\t var baseParts = URLToolkit.parseURL(baseURL);\n\t if (!baseParts) {\n\t throw new Error('Error trying to parse base URL.');\n\t }\n\t if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n\t // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n\t // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n\t var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n\t baseParts.netLoc = pathParts[1];\n\t baseParts.path = pathParts[2];\n\t }\n\t if (baseParts.netLoc && !baseParts.path) {\n\t baseParts.path = '/';\n\t }\n\t var builtParts = {\n\t // 2c) Otherwise, the embedded URL inherits the scheme of\n\t // the base URL.\n\t scheme: baseParts.scheme,\n\t netLoc: relativeParts.netLoc,\n\t path: null,\n\t params: relativeParts.params,\n\t query: relativeParts.query,\n\t fragment: relativeParts.fragment,\n\t };\n\t if (!relativeParts.netLoc) {\n\t // 3) If the embedded URL's is non-empty, we skip to\n\t // Step 7. Otherwise, the embedded URL inherits the \n\t // (if any) of the base URL.\n\t builtParts.netLoc = baseParts.netLoc;\n\t // 4) If the embedded URL path is preceded by a slash \"/\", the\n\t // path is not relative and we skip to Step 7.\n\t if (relativeParts.path[0] !== '/') {\n\t if (!relativeParts.path) {\n\t // 5) If the embedded URL path is empty (and not preceded by a\n\t // slash), then the embedded URL inherits the base URL path\n\t builtParts.path = baseParts.path;\n\t // 5a) if the embedded URL's is non-empty, we skip to\n\t // step 7; otherwise, it inherits the of the base\n\t // URL (if any) and\n\t if (!relativeParts.params) {\n\t builtParts.params = baseParts.params;\n\t // 5b) if the embedded URL's is non-empty, we skip to\n\t // step 7; otherwise, it inherits the of the base\n\t // URL (if any) and we skip to step 7.\n\t if (!relativeParts.query) {\n\t builtParts.query = baseParts.query;\n\t }\n\t }\n\t } else {\n\t // 6) The last segment of the base URL's path (anything\n\t // following the rightmost slash \"/\", or the entire path if no\n\t // slash is present) is removed and the embedded URL's path is\n\t // appended in its place.\n\t var baseURLPath = baseParts.path;\n\t var newPath =\n\t baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n\t relativeParts.path;\n\t builtParts.path = URLToolkit.normalizePath(newPath);\n\t }\n\t }\n\t }\n\t if (builtParts.path === null) {\n\t builtParts.path = opts.alwaysNormalize\n\t ? URLToolkit.normalizePath(relativeParts.path)\n\t : relativeParts.path;\n\t }\n\t return URLToolkit.buildURLFromParts(builtParts);\n\t },\n\t parseURL: function (url) {\n\t var parts = URL_REGEX.exec(url);\n\t if (!parts) {\n\t return null;\n\t }\n\t return {\n\t scheme: parts[1] || '',\n\t netLoc: parts[2] || '',\n\t path: parts[3] || '',\n\t params: parts[4] || '',\n\t query: parts[5] || '',\n\t fragment: parts[6] || '',\n\t };\n\t },\n\t normalizePath: function (path) {\n\t // The following operations are\n\t // then applied, in order, to the new path:\n\t // 6a) All occurrences of \"./\", where \".\" is a complete path\n\t // segment, are removed.\n\t // 6b) If the path ends with \".\" as a complete path segment,\n\t // that \".\" is removed.\n\t path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n\t // 6c) All occurrences of \"/../\", where is a\n\t // complete path segment not equal to \"..\", are removed.\n\t // Removal of these path segments is performed iteratively,\n\t // removing the leftmost matching pattern on each iteration,\n\t // until no matching pattern remains.\n\t // 6d) If the path ends with \"/..\", where is a\n\t // complete path segment not equal to \"..\", that\n\t // \"/..\" is removed.\n\t while (\n\t path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n\t ) {}\n\t return path.split('').reverse().join('');\n\t },\n\t buildURLFromParts: function (parts) {\n\t return (\n\t parts.scheme +\n\t parts.netLoc +\n\t parts.path +\n\t parts.params +\n\t parts.query +\n\t parts.fragment\n\t );\n\t },\n\t };\n\n\t module.exports = URLToolkit;\n\t})(); \n} (urlToolkit));\n\nvar urlToolkitExports = urlToolkit.exports;\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\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}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// https://caniuse.com/mdn-javascript_builtins_number_isfinite\nconst isFiniteNumber = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\n// https://caniuse.com/mdn-javascript_builtins_number_issafeinteger\nconst isSafeInteger = Number.isSafeInteger || function (value) {\n return typeof value === 'number' && Math.abs(value) <= MAX_SAFE_INTEGER;\n};\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nlet Events = /*#__PURE__*/function (Events) {\n Events[\"MEDIA_ATTACHING\"] = \"hlsMediaAttaching\";\n Events[\"MEDIA_ATTACHED\"] = \"hlsMediaAttached\";\n Events[\"MEDIA_DETACHING\"] = \"hlsMediaDetaching\";\n Events[\"MEDIA_DETACHED\"] = \"hlsMediaDetached\";\n Events[\"BUFFER_RESET\"] = \"hlsBufferReset\";\n Events[\"BUFFER_CODECS\"] = \"hlsBufferCodecs\";\n Events[\"BUFFER_CREATED\"] = \"hlsBufferCreated\";\n Events[\"BUFFER_APPENDING\"] = \"hlsBufferAppending\";\n Events[\"BUFFER_APPENDED\"] = \"hlsBufferAppended\";\n Events[\"BUFFER_EOS\"] = \"hlsBufferEos\";\n Events[\"BUFFER_FLUSHING\"] = \"hlsBufferFlushing\";\n Events[\"BUFFER_FLUSHED\"] = \"hlsBufferFlushed\";\n Events[\"MANIFEST_LOADING\"] = \"hlsManifestLoading\";\n Events[\"MANIFEST_LOADED\"] = \"hlsManifestLoaded\";\n Events[\"MANIFEST_PARSED\"] = \"hlsManifestParsed\";\n Events[\"LEVEL_SWITCHING\"] = \"hlsLevelSwitching\";\n Events[\"LEVEL_SWITCHED\"] = \"hlsLevelSwitched\";\n Events[\"LEVEL_LOADING\"] = \"hlsLevelLoading\";\n Events[\"LEVEL_LOADED\"] = \"hlsLevelLoaded\";\n Events[\"LEVEL_UPDATED\"] = \"hlsLevelUpdated\";\n Events[\"LEVEL_PTS_UPDATED\"] = \"hlsLevelPtsUpdated\";\n Events[\"LEVELS_UPDATED\"] = \"hlsLevelsUpdated\";\n Events[\"AUDIO_TRACKS_UPDATED\"] = \"hlsAudioTracksUpdated\";\n Events[\"AUDIO_TRACK_SWITCHING\"] = \"hlsAudioTrackSwitching\";\n Events[\"AUDIO_TRACK_SWITCHED\"] = \"hlsAudioTrackSwitched\";\n Events[\"AUDIO_TRACK_LOADING\"] = \"hlsAudioTrackLoading\";\n Events[\"AUDIO_TRACK_LOADED\"] = \"hlsAudioTrackLoaded\";\n Events[\"SUBTITLE_TRACKS_UPDATED\"] = \"hlsSubtitleTracksUpdated\";\n Events[\"SUBTITLE_TRACKS_CLEARED\"] = \"hlsSubtitleTracksCleared\";\n Events[\"SUBTITLE_TRACK_SWITCH\"] = \"hlsSubtitleTrackSwitch\";\n Events[\"SUBTITLE_TRACK_LOADING\"] = \"hlsSubtitleTrackLoading\";\n Events[\"SUBTITLE_TRACK_LOADED\"] = \"hlsSubtitleTrackLoaded\";\n Events[\"SUBTITLE_FRAG_PROCESSED\"] = \"hlsSubtitleFragProcessed\";\n Events[\"CUES_PARSED\"] = \"hlsCuesParsed\";\n Events[\"NON_NATIVE_TEXT_TRACKS_FOUND\"] = \"hlsNonNativeTextTracksFound\";\n Events[\"INIT_PTS_FOUND\"] = \"hlsInitPtsFound\";\n Events[\"FRAG_LOADING\"] = \"hlsFragLoading\";\n Events[\"FRAG_LOAD_EMERGENCY_ABORTED\"] = \"hlsFragLoadEmergencyAborted\";\n Events[\"FRAG_LOADED\"] = \"hlsFragLoaded\";\n Events[\"FRAG_DECRYPTED\"] = \"hlsFragDecrypted\";\n Events[\"FRAG_PARSING_INIT_SEGMENT\"] = \"hlsFragParsingInitSegment\";\n Events[\"FRAG_PARSING_USERDATA\"] = \"hlsFragParsingUserdata\";\n Events[\"FRAG_PARSING_METADATA\"] = \"hlsFragParsingMetadata\";\n Events[\"FRAG_PARSED\"] = \"hlsFragParsed\";\n Events[\"FRAG_BUFFERED\"] = \"hlsFragBuffered\";\n Events[\"FRAG_CHANGED\"] = \"hlsFragChanged\";\n Events[\"FPS_DROP\"] = \"hlsFpsDrop\";\n Events[\"FPS_DROP_LEVEL_CAPPING\"] = \"hlsFpsDropLevelCapping\";\n Events[\"MAX_AUTO_LEVEL_UPDATED\"] = \"hlsMaxAutoLevelUpdated\";\n Events[\"ERROR\"] = \"hlsError\";\n Events[\"DESTROYING\"] = \"hlsDestroying\";\n Events[\"KEY_LOADING\"] = \"hlsKeyLoading\";\n Events[\"KEY_LOADED\"] = \"hlsKeyLoaded\";\n Events[\"LIVE_BACK_BUFFER_REACHED\"] = \"hlsLiveBackBufferReached\";\n Events[\"BACK_BUFFER_REACHED\"] = \"hlsBackBufferReached\";\n Events[\"STEERING_MANIFEST_LOADED\"] = \"hlsSteeringManifestLoaded\";\n return Events;\n}({});\n\n/**\n * Defines each Event type and payload by Event name. Used in {@link hls.js#HlsEventEmitter} to strongly type the event listener API.\n */\n\nlet ErrorTypes = /*#__PURE__*/function (ErrorTypes) {\n ErrorTypes[\"NETWORK_ERROR\"] = \"networkError\";\n ErrorTypes[\"MEDIA_ERROR\"] = \"mediaError\";\n ErrorTypes[\"KEY_SYSTEM_ERROR\"] = \"keySystemError\";\n ErrorTypes[\"MUX_ERROR\"] = \"muxError\";\n ErrorTypes[\"OTHER_ERROR\"] = \"otherError\";\n return ErrorTypes;\n}({});\nlet ErrorDetails = /*#__PURE__*/function (ErrorDetails) {\n ErrorDetails[\"KEY_SYSTEM_NO_KEYS\"] = \"keySystemNoKeys\";\n ErrorDetails[\"KEY_SYSTEM_NO_ACCESS\"] = \"keySystemNoAccess\";\n ErrorDetails[\"KEY_SYSTEM_NO_SESSION\"] = \"keySystemNoSession\";\n ErrorDetails[\"KEY_SYSTEM_NO_CONFIGURED_LICENSE\"] = \"keySystemNoConfiguredLicense\";\n ErrorDetails[\"KEY_SYSTEM_LICENSE_REQUEST_FAILED\"] = \"keySystemLicenseRequestFailed\";\n ErrorDetails[\"KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED\"] = \"keySystemServerCertificateRequestFailed\";\n ErrorDetails[\"KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED\"] = \"keySystemServerCertificateUpdateFailed\";\n ErrorDetails[\"KEY_SYSTEM_SESSION_UPDATE_FAILED\"] = \"keySystemSessionUpdateFailed\";\n ErrorDetails[\"KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED\"] = \"keySystemStatusOutputRestricted\";\n ErrorDetails[\"KEY_SYSTEM_STATUS_INTERNAL_ERROR\"] = \"keySystemStatusInternalError\";\n ErrorDetails[\"MANIFEST_LOAD_ERROR\"] = \"manifestLoadError\";\n ErrorDetails[\"MANIFEST_LOAD_TIMEOUT\"] = \"manifestLoadTimeOut\";\n ErrorDetails[\"MANIFEST_PARSING_ERROR\"] = \"manifestParsingError\";\n ErrorDetails[\"MANIFEST_INCOMPATIBLE_CODECS_ERROR\"] = \"manifestIncompatibleCodecsError\";\n ErrorDetails[\"LEVEL_EMPTY_ERROR\"] = \"levelEmptyError\";\n ErrorDetails[\"LEVEL_LOAD_ERROR\"] = \"levelLoadError\";\n ErrorDetails[\"LEVEL_LOAD_TIMEOUT\"] = \"levelLoadTimeOut\";\n ErrorDetails[\"LEVEL_PARSING_ERROR\"] = \"levelParsingError\";\n ErrorDetails[\"LEVEL_SWITCH_ERROR\"] = \"levelSwitchError\";\n ErrorDetails[\"AUDIO_TRACK_LOAD_ERROR\"] = \"audioTrackLoadError\";\n ErrorDetails[\"AUDIO_TRACK_LOAD_TIMEOUT\"] = \"audioTrackLoadTimeOut\";\n ErrorDetails[\"SUBTITLE_LOAD_ERROR\"] = \"subtitleTrackLoadError\";\n ErrorDetails[\"SUBTITLE_TRACK_LOAD_TIMEOUT\"] = \"subtitleTrackLoadTimeOut\";\n ErrorDetails[\"FRAG_LOAD_ERROR\"] = \"fragLoadError\";\n ErrorDetails[\"FRAG_LOAD_TIMEOUT\"] = \"fragLoadTimeOut\";\n ErrorDetails[\"FRAG_DECRYPT_ERROR\"] = \"fragDecryptError\";\n ErrorDetails[\"FRAG_PARSING_ERROR\"] = \"fragParsingError\";\n ErrorDetails[\"FRAG_GAP\"] = \"fragGap\";\n ErrorDetails[\"REMUX_ALLOC_ERROR\"] = \"remuxAllocError\";\n ErrorDetails[\"KEY_LOAD_ERROR\"] = \"keyLoadError\";\n ErrorDetails[\"KEY_LOAD_TIMEOUT\"] = \"keyLoadTimeOut\";\n ErrorDetails[\"BUFFER_ADD_CODEC_ERROR\"] = \"bufferAddCodecError\";\n ErrorDetails[\"BUFFER_INCOMPATIBLE_CODECS_ERROR\"] = \"bufferIncompatibleCodecsError\";\n ErrorDetails[\"BUFFER_APPEND_ERROR\"] = \"bufferAppendError\";\n ErrorDetails[\"BUFFER_APPENDING_ERROR\"] = \"bufferAppendingError\";\n ErrorDetails[\"BUFFER_STALLED_ERROR\"] = \"bufferStalledError\";\n ErrorDetails[\"BUFFER_FULL_ERROR\"] = \"bufferFullError\";\n ErrorDetails[\"BUFFER_SEEK_OVER_HOLE\"] = \"bufferSeekOverHole\";\n ErrorDetails[\"BUFFER_NUDGE_ON_STALL\"] = \"bufferNudgeOnStall\";\n ErrorDetails[\"INTERNAL_EXCEPTION\"] = \"internalException\";\n ErrorDetails[\"INTERNAL_ABORTED\"] = \"aborted\";\n ErrorDetails[\"UNKNOWN\"] = \"unknown\";\n return ErrorDetails;\n}({});\n\nconst noop = function noop() {};\nconst fakeLogger = {\n trace: noop,\n debug: noop,\n log: noop,\n warn: noop,\n info: noop,\n error: noop\n};\nlet exportedLogger = fakeLogger;\n\n// let lastCallTime;\n// function formatMsgWithTimeInfo(type, msg) {\n// const now = Date.now();\n// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';\n// lastCallTime = now;\n// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';\n// return msg;\n// }\n\nfunction consolePrintFn(type) {\n const func = self.console[type];\n if (func) {\n return func.bind(self.console, `[${type}] >`);\n }\n return noop;\n}\nfunction exportLoggerFunctions(debugConfig, ...functions) {\n functions.forEach(function (type) {\n exportedLogger[type] = debugConfig[type] ? debugConfig[type].bind(debugConfig) : consolePrintFn(type);\n });\n}\nfunction enableLogs(debugConfig, id) {\n // check that console is available\n if (typeof console === 'object' && debugConfig === true || typeof debugConfig === 'object') {\n exportLoggerFunctions(debugConfig,\n // Remove out from list here to hard-disable a log-level\n // 'trace',\n 'debug', 'log', 'info', 'warn', 'error');\n // Some browsers don't allow to use bind on console object anyway\n // fallback to default if needed\n try {\n exportedLogger.log(`Debug logs enabled for \"${id}\" in hls.js version ${\"1.5.20\"}`);\n } catch (e) {\n exportedLogger = fakeLogger;\n }\n } else {\n exportedLogger = fakeLogger;\n }\n}\nconst logger = exportedLogger;\n\nconst DECIMAL_RESOLUTION_REGEX = /^(\\d+)x(\\d+)$/;\nconst ATTR_LIST_REGEX = /(.+?)=(\".*?\"|.*?)(?:,|$)/g;\n\n// adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js\nclass AttrList {\n constructor(attrs) {\n if (typeof attrs === 'string') {\n attrs = AttrList.parseAttrList(attrs);\n }\n _extends(this, attrs);\n }\n get clientAttrs() {\n return Object.keys(this).filter(attr => attr.substring(0, 2) === 'X-');\n }\n decimalInteger(attrName) {\n const intValue = parseInt(this[attrName], 10);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n return intValue;\n }\n hexadecimalInteger(attrName) {\n if (this[attrName]) {\n let stringValue = (this[attrName] || '0x').slice(2);\n stringValue = (stringValue.length & 1 ? '0' : '') + stringValue;\n const value = new Uint8Array(stringValue.length / 2);\n for (let i = 0; i < stringValue.length / 2; i++) {\n value[i] = parseInt(stringValue.slice(i * 2, i * 2 + 2), 16);\n }\n return value;\n } else {\n return null;\n }\n }\n hexadecimalIntegerAsNumber(attrName) {\n const intValue = parseInt(this[attrName], 16);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n return intValue;\n }\n decimalFloatingPoint(attrName) {\n return parseFloat(this[attrName]);\n }\n optionalFloat(attrName, defaultValue) {\n const value = this[attrName];\n return value ? parseFloat(value) : defaultValue;\n }\n enumeratedString(attrName) {\n return this[attrName];\n }\n bool(attrName) {\n return this[attrName] === 'YES';\n }\n decimalResolution(attrName) {\n const res = DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);\n if (res === null) {\n return undefined;\n }\n return {\n width: parseInt(res[1], 10),\n height: parseInt(res[2], 10)\n };\n }\n static parseAttrList(input) {\n let match;\n const attrs = {};\n const quote = '\"';\n ATTR_LIST_REGEX.lastIndex = 0;\n while ((match = ATTR_LIST_REGEX.exec(input)) !== null) {\n let value = match[2];\n if (value.indexOf(quote) === 0 && value.lastIndexOf(quote) === value.length - 1) {\n value = value.slice(1, -1);\n }\n const name = match[1].trim();\n attrs[name] = value;\n }\n return attrs;\n }\n}\n\n// Avoid exporting const enum so that these values can be inlined\n\nfunction isDateRangeCueAttribute(attrName) {\n return attrName !== \"ID\" && attrName !== \"CLASS\" && attrName !== \"START-DATE\" && attrName !== \"DURATION\" && attrName !== \"END-DATE\" && attrName !== \"END-ON-NEXT\";\n}\nfunction isSCTE35Attribute(attrName) {\n return attrName === \"SCTE35-OUT\" || attrName === \"SCTE35-IN\";\n}\nclass DateRange {\n constructor(dateRangeAttr, dateRangeWithSameId) {\n this.attr = void 0;\n this._startDate = void 0;\n this._endDate = void 0;\n this._badValueForSameId = void 0;\n if (dateRangeWithSameId) {\n const previousAttr = dateRangeWithSameId.attr;\n for (const key in previousAttr) {\n if (Object.prototype.hasOwnProperty.call(dateRangeAttr, key) && dateRangeAttr[key] !== previousAttr[key]) {\n logger.warn(`DATERANGE tag attribute: \"${key}\" does not match for tags with ID: \"${dateRangeAttr.ID}\"`);\n this._badValueForSameId = key;\n break;\n }\n }\n // Merge DateRange tags with the same ID\n dateRangeAttr = _extends(new AttrList({}), previousAttr, dateRangeAttr);\n }\n this.attr = dateRangeAttr;\n this._startDate = new Date(dateRangeAttr[\"START-DATE\"]);\n if (\"END-DATE\" in this.attr) {\n const endDate = new Date(this.attr[\"END-DATE\"]);\n if (isFiniteNumber(endDate.getTime())) {\n this._endDate = endDate;\n }\n }\n }\n get id() {\n return this.attr.ID;\n }\n get class() {\n return this.attr.CLASS;\n }\n get startDate() {\n return this._startDate;\n }\n get endDate() {\n if (this._endDate) {\n return this._endDate;\n }\n const duration = this.duration;\n if (duration !== null) {\n return new Date(this._startDate.getTime() + duration * 1000);\n }\n return null;\n }\n get duration() {\n if (\"DURATION\" in this.attr) {\n const duration = this.attr.decimalFloatingPoint(\"DURATION\");\n if (isFiniteNumber(duration)) {\n return duration;\n }\n } else if (this._endDate) {\n return (this._endDate.getTime() - this._startDate.getTime()) / 1000;\n }\n return null;\n }\n get plannedDuration() {\n if (\"PLANNED-DURATION\" in this.attr) {\n return this.attr.decimalFloatingPoint(\"PLANNED-DURATION\");\n }\n return null;\n }\n get endOnNext() {\n return this.attr.bool(\"END-ON-NEXT\");\n }\n get isValid() {\n return !!this.id && !this._badValueForSameId && isFiniteNumber(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class);\n }\n}\n\nclass LoadStats {\n constructor() {\n this.aborted = false;\n this.loaded = 0;\n this.retry = 0;\n this.total = 0;\n this.chunkCount = 0;\n this.bwEstimate = 0;\n this.loading = {\n start: 0,\n first: 0,\n end: 0\n };\n this.parsing = {\n start: 0,\n end: 0\n };\n this.buffering = {\n start: 0,\n first: 0,\n end: 0\n };\n }\n}\n\nvar ElementaryStreamTypes = {\n AUDIO: \"audio\",\n VIDEO: \"video\",\n AUDIOVIDEO: \"audiovideo\"\n};\nclass BaseSegment {\n constructor(baseurl) {\n this._byteRange = null;\n this._url = null;\n // baseurl is the URL to the playlist\n this.baseurl = void 0;\n // relurl is the portion of the URL that comes from inside the playlist.\n this.relurl = void 0;\n // Holds the types of data this fragment supports\n this.elementaryStreams = {\n [ElementaryStreamTypes.AUDIO]: null,\n [ElementaryStreamTypes.VIDEO]: null,\n [ElementaryStreamTypes.AUDIOVIDEO]: null\n };\n this.baseurl = baseurl;\n }\n\n // setByteRange converts a EXT-X-BYTERANGE attribute into a two element array\n setByteRange(value, previous) {\n const params = value.split('@', 2);\n let start;\n if (params.length === 1) {\n start = (previous == null ? void 0 : previous.byteRangeEndOffset) || 0;\n } else {\n start = parseInt(params[1]);\n }\n this._byteRange = [start, parseInt(params[0]) + start];\n }\n get byteRange() {\n if (!this._byteRange) {\n return [];\n }\n return this._byteRange;\n }\n get byteRangeStartOffset() {\n return this.byteRange[0];\n }\n get byteRangeEndOffset() {\n return this.byteRange[1];\n }\n get url() {\n if (!this._url && this.baseurl && this.relurl) {\n this._url = urlToolkitExports.buildAbsoluteURL(this.baseurl, this.relurl, {\n alwaysNormalize: true\n });\n }\n return this._url || '';\n }\n set url(value) {\n this._url = value;\n }\n}\n\n/**\n * Object representing parsed data from an HLS Segment. Found in {@link hls.js#LevelDetails.fragments}.\n */\nclass Fragment extends BaseSegment {\n constructor(type, baseurl) {\n super(baseurl);\n this._decryptdata = null;\n this.rawProgramDateTime = null;\n this.programDateTime = null;\n this.tagList = [];\n // EXTINF has to be present for a m3u8 to be considered valid\n this.duration = 0;\n // sn notates the sequence number for a segment, and if set to a string can be 'initSegment'\n this.sn = 0;\n // levelkeys are the EXT-X-KEY tags that apply to this segment for decryption\n // core difference from the private field _decryptdata is the lack of the initialized IV\n // _decryptdata will set the IV for this segment based on the segment number in the fragment\n this.levelkeys = void 0;\n // A string representing the fragment type\n this.type = void 0;\n // A reference to the loader. Set while the fragment is loading, and removed afterwards. Used to abort fragment loading\n this.loader = null;\n // A reference to the key loader. Set while the key is loading, and removed afterwards. Used to abort key loading\n this.keyLoader = null;\n // The level/track index to which the fragment belongs\n this.level = -1;\n // The continuity counter of the fragment\n this.cc = 0;\n // The starting Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n this.startPTS = void 0;\n // The ending Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n this.endPTS = void 0;\n // The starting Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n this.startDTS = void 0;\n // The ending Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n this.endDTS = void 0;\n // The start time of the fragment, as listed in the manifest. Updated after transmux complete.\n this.start = 0;\n // Set by `updateFragPTSDTS` in level-helper\n this.deltaPTS = void 0;\n // The maximum starting Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n this.maxStartPTS = void 0;\n // The minimum ending Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n this.minEndPTS = void 0;\n // Load/parse timing information\n this.stats = new LoadStats();\n // Init Segment bytes (unset for media segments)\n this.data = void 0;\n // A flag indicating whether the segment was downloaded in order to test bitrate, and was not buffered\n this.bitrateTest = false;\n // #EXTINF segment title\n this.title = null;\n // The Media Initialization Section for this segment\n this.initSegment = null;\n // Fragment is the last fragment in the media playlist\n this.endList = void 0;\n // Fragment is marked by an EXT-X-GAP tag indicating that it does not contain media data and should not be loaded\n this.gap = void 0;\n // Deprecated\n this.urlId = 0;\n this.type = type;\n }\n get decryptdata() {\n const {\n levelkeys\n } = this;\n if (!levelkeys && !this._decryptdata) {\n return null;\n }\n if (!this._decryptdata && this.levelkeys && !this.levelkeys.NONE) {\n const key = this.levelkeys.identity;\n if (key) {\n this._decryptdata = key.getDecryptData(this.sn);\n } else {\n const keyFormats = Object.keys(this.levelkeys);\n if (keyFormats.length === 1) {\n return this._decryptdata = this.levelkeys[keyFormats[0]].getDecryptData(this.sn);\n }\n }\n }\n return this._decryptdata;\n }\n get end() {\n return this.start + this.duration;\n }\n get endProgramDateTime() {\n if (this.programDateTime === null) {\n return null;\n }\n if (!isFiniteNumber(this.programDateTime)) {\n return null;\n }\n const duration = !isFiniteNumber(this.duration) ? 0 : this.duration;\n return this.programDateTime + duration * 1000;\n }\n get encrypted() {\n var _this$_decryptdata;\n // At the m3u8-parser level we need to add support for manifest signalled keyformats\n // when we want the fragment to start reporting that it is encrypted.\n // Currently, keyFormat will only be set for identity keys\n if ((_this$_decryptdata = this._decryptdata) != null && _this$_decryptdata.encrypted) {\n return true;\n } else if (this.levelkeys) {\n const keyFormats = Object.keys(this.levelkeys);\n const len = keyFormats.length;\n if (len > 1 || len === 1 && this.levelkeys[keyFormats[0]].encrypted) {\n return true;\n }\n }\n return false;\n }\n setKeyFormat(keyFormat) {\n if (this.levelkeys) {\n const key = this.levelkeys[keyFormat];\n if (key && !this._decryptdata) {\n this._decryptdata = key.getDecryptData(this.sn);\n }\n }\n }\n abortRequests() {\n var _this$loader, _this$keyLoader;\n (_this$loader = this.loader) == null ? void 0 : _this$loader.abort();\n (_this$keyLoader = this.keyLoader) == null ? void 0 : _this$keyLoader.abort();\n }\n setElementaryStreamInfo(type, startPTS, endPTS, startDTS, endDTS, partial = false) {\n const {\n elementaryStreams\n } = this;\n const info = elementaryStreams[type];\n if (!info) {\n elementaryStreams[type] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n partial\n };\n return;\n }\n info.startPTS = Math.min(info.startPTS, startPTS);\n info.endPTS = Math.max(info.endPTS, endPTS);\n info.startDTS = Math.min(info.startDTS, startDTS);\n info.endDTS = Math.max(info.endDTS, endDTS);\n }\n clearElementaryStreamInfo() {\n const {\n elementaryStreams\n } = this;\n elementaryStreams[ElementaryStreamTypes.AUDIO] = null;\n elementaryStreams[ElementaryStreamTypes.VIDEO] = null;\n elementaryStreams[ElementaryStreamTypes.AUDIOVIDEO] = null;\n }\n}\n\n/**\n * Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.\n */\nclass Part extends BaseSegment {\n constructor(partAttrs, frag, baseurl, index, previous) {\n super(baseurl);\n this.fragOffset = 0;\n this.duration = 0;\n this.gap = false;\n this.independent = false;\n this.relurl = void 0;\n this.fragment = void 0;\n this.index = void 0;\n this.stats = new LoadStats();\n this.duration = partAttrs.decimalFloatingPoint('DURATION');\n this.gap = partAttrs.bool('GAP');\n this.independent = partAttrs.bool('INDEPENDENT');\n this.relurl = partAttrs.enumeratedString('URI');\n this.fragment = frag;\n this.index = index;\n const byteRange = partAttrs.enumeratedString('BYTERANGE');\n if (byteRange) {\n this.setByteRange(byteRange, previous);\n }\n if (previous) {\n this.fragOffset = previous.fragOffset + previous.duration;\n }\n }\n get start() {\n return this.fragment.start + this.fragOffset;\n }\n get end() {\n return this.start + this.duration;\n }\n get loaded() {\n const {\n elementaryStreams\n } = this;\n return !!(elementaryStreams.audio || elementaryStreams.video || elementaryStreams.audiovideo);\n }\n}\n\nconst DEFAULT_TARGET_DURATION = 10;\n\n/**\n * Object representing parsed data from an HLS Media Playlist. Found in {@link hls.js#Level.details}.\n */\nclass LevelDetails {\n constructor(baseUrl) {\n this.PTSKnown = false;\n this.alignedSliding = false;\n this.averagetargetduration = void 0;\n this.endCC = 0;\n this.endSN = 0;\n this.fragments = void 0;\n this.fragmentHint = void 0;\n this.partList = null;\n this.dateRanges = void 0;\n this.live = true;\n this.ageHeader = 0;\n this.advancedDateTime = void 0;\n this.updated = true;\n this.advanced = true;\n this.availabilityDelay = void 0;\n // Manifest reload synchronization\n this.misses = 0;\n this.startCC = 0;\n this.startSN = 0;\n this.startTimeOffset = null;\n this.targetduration = 0;\n this.totalduration = 0;\n this.type = null;\n this.url = void 0;\n this.m3u8 = '';\n this.version = null;\n this.canBlockReload = false;\n this.canSkipUntil = 0;\n this.canSkipDateRanges = false;\n this.skippedSegments = 0;\n this.recentlyRemovedDateranges = void 0;\n this.partHoldBack = 0;\n this.holdBack = 0;\n this.partTarget = 0;\n this.preloadHint = void 0;\n this.renditionReports = void 0;\n this.tuneInGoal = 0;\n this.deltaUpdateFailed = void 0;\n this.driftStartTime = 0;\n this.driftEndTime = 0;\n this.driftStart = 0;\n this.driftEnd = 0;\n this.encryptedFragments = void 0;\n this.playlistParsingError = null;\n this.variableList = null;\n this.hasVariableRefs = false;\n this.fragments = [];\n this.encryptedFragments = [];\n this.dateRanges = {};\n this.url = baseUrl;\n }\n reloaded(previous) {\n if (!previous) {\n this.advanced = true;\n this.updated = true;\n return;\n }\n const partSnDiff = this.lastPartSn - previous.lastPartSn;\n const partIndexDiff = this.lastPartIndex - previous.lastPartIndex;\n this.updated = this.endSN !== previous.endSN || !!partIndexDiff || !!partSnDiff || !this.live;\n this.advanced = this.endSN > previous.endSN || partSnDiff > 0 || partSnDiff === 0 && partIndexDiff > 0;\n if (this.updated || this.advanced) {\n this.misses = Math.floor(previous.misses * 0.6);\n } else {\n this.misses = previous.misses + 1;\n }\n this.availabilityDelay = previous.availabilityDelay;\n }\n get hasProgramDateTime() {\n if (this.fragments.length) {\n return isFiniteNumber(this.fragments[this.fragments.length - 1].programDateTime);\n }\n return false;\n }\n get levelTargetDuration() {\n return this.averagetargetduration || this.targetduration || DEFAULT_TARGET_DURATION;\n }\n get drift() {\n const runTime = this.driftEndTime - this.driftStartTime;\n if (runTime > 0) {\n const runDuration = this.driftEnd - this.driftStart;\n return runDuration * 1000 / runTime;\n }\n return 1;\n }\n get edge() {\n return this.partEnd || this.fragmentEnd;\n }\n get partEnd() {\n var _this$partList;\n if ((_this$partList = this.partList) != null && _this$partList.length) {\n return this.partList[this.partList.length - 1].end;\n }\n return this.fragmentEnd;\n }\n get fragmentEnd() {\n var _this$fragments;\n if ((_this$fragments = this.fragments) != null && _this$fragments.length) {\n return this.fragments[this.fragments.length - 1].end;\n }\n return 0;\n }\n get age() {\n if (this.advancedDateTime) {\n return Math.max(Date.now() - this.advancedDateTime, 0) / 1000;\n }\n return 0;\n }\n get lastPartIndex() {\n var _this$partList2;\n if ((_this$partList2 = this.partList) != null && _this$partList2.length) {\n return this.partList[this.partList.length - 1].index;\n }\n return -1;\n }\n get lastPartSn() {\n var _this$partList3;\n if ((_this$partList3 = this.partList) != null && _this$partList3.length) {\n return this.partList[this.partList.length - 1].fragment.sn;\n }\n return this.endSN;\n }\n}\n\nfunction base64Decode(base64encodedStr) {\n return Uint8Array.from(atob(base64encodedStr), c => c.charCodeAt(0));\n}\n\nfunction getKeyIdBytes(str) {\n const keyIdbytes = strToUtf8array(str).subarray(0, 16);\n const paddedkeyIdbytes = new Uint8Array(16);\n paddedkeyIdbytes.set(keyIdbytes, 16 - keyIdbytes.length);\n return paddedkeyIdbytes;\n}\nfunction changeEndianness(keyId) {\n const swap = function swap(array, from, to) {\n const cur = array[from];\n array[from] = array[to];\n array[to] = cur;\n };\n swap(keyId, 0, 3);\n swap(keyId, 1, 2);\n swap(keyId, 4, 5);\n swap(keyId, 6, 7);\n}\nfunction convertDataUriToArrayBytes(uri) {\n // data:[\n const colonsplit = uri.split(':');\n let keydata = null;\n if (colonsplit[0] === 'data' && colonsplit.length === 2) {\n const semicolonsplit = colonsplit[1].split(';');\n const commasplit = semicolonsplit[semicolonsplit.length - 1].split(',');\n if (commasplit.length === 2) {\n const isbase64 = commasplit[0] === 'base64';\n const data = commasplit[1];\n if (isbase64) {\n semicolonsplit.splice(-1, 1); // remove from processing\n keydata = base64Decode(data);\n } else {\n keydata = getKeyIdBytes(data);\n }\n }\n }\n return keydata;\n}\nfunction strToUtf8array(str) {\n return Uint8Array.from(unescape(encodeURIComponent(str)), c => c.charCodeAt(0));\n}\n\n/** returns `undefined` is `self` is missing, e.g. in node */\nconst optionalSelf = typeof self !== 'undefined' ? self : undefined;\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess\n */\nvar KeySystems = {\n CLEARKEY: \"org.w3.clearkey\",\n FAIRPLAY: \"com.apple.fps\",\n PLAYREADY: \"com.microsoft.playready\",\n WIDEVINE: \"com.widevine.alpha\"\n};\n\n// Playlist #EXT-X-KEY KEYFORMAT values\nvar KeySystemFormats = {\n CLEARKEY: \"org.w3.clearkey\",\n FAIRPLAY: \"com.apple.streamingkeydelivery\",\n PLAYREADY: \"com.microsoft.playready\",\n WIDEVINE: \"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed\"\n};\nfunction keySystemFormatToKeySystemDomain(format) {\n switch (format) {\n case KeySystemFormats.FAIRPLAY:\n return KeySystems.FAIRPLAY;\n case KeySystemFormats.PLAYREADY:\n return KeySystems.PLAYREADY;\n case KeySystemFormats.WIDEVINE:\n return KeySystems.WIDEVINE;\n case KeySystemFormats.CLEARKEY:\n return KeySystems.CLEARKEY;\n }\n}\n\n// System IDs for which we can extract a key ID from \"encrypted\" event PSSH\nvar KeySystemIds = {\n CENC: \"1077efecc0b24d02ace33c1e52e2fb4b\",\n CLEARKEY: \"e2719d58a985b3c9781ab030af78d30e\",\n FAIRPLAY: \"94ce86fb07ff4f43adb893d2fa968ca2\",\n PLAYREADY: \"9a04f07998404286ab92e65be0885f95\",\n WIDEVINE: \"edef8ba979d64acea3c827dcd51d21ed\"\n};\nfunction keySystemIdToKeySystemDomain(systemId) {\n if (systemId === KeySystemIds.WIDEVINE) {\n return KeySystems.WIDEVINE;\n } else if (systemId === KeySystemIds.PLAYREADY) {\n return KeySystems.PLAYREADY;\n } else if (systemId === KeySystemIds.CENC || systemId === KeySystemIds.CLEARKEY) {\n return KeySystems.CLEARKEY;\n }\n}\nfunction keySystemDomainToKeySystemFormat(keySystem) {\n switch (keySystem) {\n case KeySystems.FAIRPLAY:\n return KeySystemFormats.FAIRPLAY;\n case KeySystems.PLAYREADY:\n return KeySystemFormats.PLAYREADY;\n case KeySystems.WIDEVINE:\n return KeySystemFormats.WIDEVINE;\n case KeySystems.CLEARKEY:\n return KeySystemFormats.CLEARKEY;\n }\n}\nfunction getKeySystemsForConfig(config) {\n const {\n drmSystems,\n widevineLicenseUrl\n } = config;\n const keySystemsToAttempt = drmSystems ? [KeySystems.FAIRPLAY, KeySystems.WIDEVINE, KeySystems.PLAYREADY, KeySystems.CLEARKEY].filter(keySystem => !!drmSystems[keySystem]) : [];\n if (!keySystemsToAttempt[KeySystems.WIDEVINE] && widevineLicenseUrl) {\n keySystemsToAttempt.push(KeySystems.WIDEVINE);\n }\n return keySystemsToAttempt;\n}\nconst requestMediaKeySystemAccess = function (_optionalSelf$navigat) {\n if (optionalSelf != null && (_optionalSelf$navigat = optionalSelf.navigator) != null && _optionalSelf$navigat.requestMediaKeySystemAccess) {\n return self.navigator.requestMediaKeySystemAccess.bind(self.navigator);\n } else {\n return null;\n }\n}();\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration\n */\nfunction getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs, drmSystemOptions) {\n let initDataTypes;\n switch (keySystem) {\n case KeySystems.FAIRPLAY:\n initDataTypes = ['cenc', 'sinf'];\n break;\n case KeySystems.WIDEVINE:\n case KeySystems.PLAYREADY:\n initDataTypes = ['cenc'];\n break;\n case KeySystems.CLEARKEY:\n initDataTypes = ['cenc', 'keyids'];\n break;\n default:\n throw new Error(`Unknown key-system: ${keySystem}`);\n }\n return createMediaKeySystemConfigurations(initDataTypes, audioCodecs, videoCodecs, drmSystemOptions);\n}\nfunction createMediaKeySystemConfigurations(initDataTypes, audioCodecs, videoCodecs, drmSystemOptions) {\n const baseConfig = {\n initDataTypes: initDataTypes,\n persistentState: drmSystemOptions.persistentState || 'optional',\n distinctiveIdentifier: drmSystemOptions.distinctiveIdentifier || 'optional',\n sessionTypes: drmSystemOptions.sessionTypes || [drmSystemOptions.sessionType || 'temporary'],\n audioCapabilities: audioCodecs.map(codec => ({\n contentType: `audio/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.audioRobustness || '',\n encryptionScheme: drmSystemOptions.audioEncryptionScheme || null\n })),\n videoCapabilities: videoCodecs.map(codec => ({\n contentType: `video/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.videoRobustness || '',\n encryptionScheme: drmSystemOptions.videoEncryptionScheme || null\n }))\n };\n return [baseConfig];\n}\nfunction parsePlayReadyWRM(keyBytes) {\n const keyBytesUtf16 = new Uint16Array(keyBytes.buffer, keyBytes.byteOffset, keyBytes.byteLength / 2);\n const keyByteStr = String.fromCharCode.apply(null, Array.from(keyBytesUtf16));\n\n // Parse Playready WRMHeader XML\n const xmlKeyBytes = keyByteStr.substring(keyByteStr.indexOf('<'), keyByteStr.length);\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlKeyBytes, 'text/xml');\n const keyData = xmlDoc.getElementsByTagName('KID')[0];\n if (keyData) {\n const keyId = keyData.childNodes[0] ? keyData.childNodes[0].nodeValue : keyData.getAttribute('VALUE');\n if (keyId) {\n const keyIdArray = base64Decode(keyId).subarray(0, 16);\n // KID value in PRO is a base64-encoded little endian GUID interpretation of UUID\n // KID value in ‘tenc’ is a big endian UUID GUID interpretation of UUID\n changeEndianness(keyIdArray);\n return keyIdArray;\n }\n }\n return null;\n}\n\nfunction sliceUint8(array, start, end) {\n // @ts-expect-error This polyfills IE11 usage of Uint8Array slice.\n // It always exists in the TypeScript definition so fails, but it fails at runtime on IE11.\n return Uint8Array.prototype.slice ? array.slice(start, end) : new Uint8Array(Array.prototype.slice.call(array, start, end));\n}\n\n// breaking up those two types in order to clarify what is happening in the decoding path.\n\n/**\n * Returns true if an ID3 header can be found at offset in data\n * @param data - The data to search\n * @param offset - The offset at which to start searching\n */\nconst isHeader$2 = (data, offset) => {\n /*\n * http://id3.org/id3v2.3.0\n * [0] = 'I'\n * [1] = 'D'\n * [2] = '3'\n * [3,4] = {Version}\n * [5] = {Flags}\n * [6-9] = {ID3 Size}\n *\n * An ID3v2 tag can be detected with the following pattern:\n * $49 44 33 yy yy xx zz zz zz zz\n * Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80\n */\n if (offset + 10 <= data.length) {\n // look for 'ID3' identifier\n if (data[offset] === 0x49 && data[offset + 1] === 0x44 && data[offset + 2] === 0x33) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n return false;\n};\n\n/**\n * Returns true if an ID3 footer can be found at offset in data\n * @param data - The data to search\n * @param offset - The offset at which to start searching\n */\nconst isFooter = (data, offset) => {\n /*\n * The footer is a copy of the header, but with a different identifier\n */\n if (offset + 10 <= data.length) {\n // look for '3DI' identifier\n if (data[offset] === 0x33 && data[offset + 1] === 0x44 && data[offset + 2] === 0x49) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n return false;\n};\n\n/**\n * Returns any adjacent ID3 tags found in data starting at offset, as one block of data\n * @param data - The data to search in\n * @param offset - The offset at which to start searching\n * @returns the block of data containing any ID3 tags found\n * or *undefined* if no header is found at the starting offset\n */\nconst getID3Data = (data, offset) => {\n const front = offset;\n let length = 0;\n while (isHeader$2(data, offset)) {\n // ID3 header is 10 bytes\n length += 10;\n const size = readSize(data, offset + 6);\n length += size;\n if (isFooter(data, offset + 10)) {\n // ID3 footer is 10 bytes\n length += 10;\n }\n offset += length;\n }\n if (length > 0) {\n return data.subarray(front, front + length);\n }\n return undefined;\n};\nconst readSize = (data, offset) => {\n let size = 0;\n size = (data[offset] & 0x7f) << 21;\n size |= (data[offset + 1] & 0x7f) << 14;\n size |= (data[offset + 2] & 0x7f) << 7;\n size |= data[offset + 3] & 0x7f;\n return size;\n};\nconst canParse$2 = (data, offset) => {\n return isHeader$2(data, offset) && readSize(data, offset + 6) + 10 <= data.length - offset;\n};\n\n/**\n * Searches for the Elementary Stream timestamp found in the ID3 data chunk\n * @param data - Block of data containing one or more ID3 tags\n */\nconst getTimeStamp = data => {\n const frames = getID3Frames(data);\n for (let i = 0; i < frames.length; i++) {\n const frame = frames[i];\n if (isTimeStampFrame(frame)) {\n return readTimeStamp(frame);\n }\n }\n return undefined;\n};\n\n/**\n * Returns true if the ID3 frame is an Elementary Stream timestamp frame\n */\nconst isTimeStampFrame = frame => {\n return frame && frame.key === 'PRIV' && frame.info === 'com.apple.streaming.transportStreamTimestamp';\n};\nconst getFrameData = data => {\n /*\n Frame ID $xx xx xx xx (four characters)\n Size $xx xx xx xx\n Flags $xx xx\n */\n const type = String.fromCharCode(data[0], data[1], data[2], data[3]);\n const size = readSize(data, 4);\n\n // skip frame id, size, and flags\n const offset = 10;\n return {\n type,\n size,\n data: data.subarray(offset, offset + size)\n };\n};\n\n/**\n * Returns an array of ID3 frames found in all the ID3 tags in the id3Data\n * @param id3Data - The ID3 data containing one or more ID3 tags\n */\nconst getID3Frames = id3Data => {\n let offset = 0;\n const frames = [];\n while (isHeader$2(id3Data, offset)) {\n const size = readSize(id3Data, offset + 6);\n // skip past ID3 header\n offset += 10;\n const end = offset + size;\n // loop through frames in the ID3 tag\n while (offset + 8 < end) {\n const frameData = getFrameData(id3Data.subarray(offset));\n const frame = decodeFrame(frameData);\n if (frame) {\n frames.push(frame);\n }\n\n // skip frame header and frame data\n offset += frameData.size + 10;\n }\n if (isFooter(id3Data, offset)) {\n offset += 10;\n }\n }\n return frames;\n};\nconst decodeFrame = frame => {\n if (frame.type === 'PRIV') {\n return decodePrivFrame(frame);\n } else if (frame.type[0] === 'W') {\n return decodeURLFrame(frame);\n }\n return decodeTextFrame(frame);\n};\nconst decodePrivFrame = frame => {\n /*\n Format: \\0\n */\n if (frame.size < 2) {\n return undefined;\n }\n const owner = utf8ArrayToStr(frame.data, true);\n const privateData = new Uint8Array(frame.data.subarray(owner.length + 1));\n return {\n key: frame.type,\n info: owner,\n data: privateData.buffer\n };\n};\nconst decodeTextFrame = frame => {\n if (frame.size < 2) {\n return undefined;\n }\n if (frame.type === 'TXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{Value}\n */\n let index = 1;\n const description = utf8ArrayToStr(frame.data.subarray(index), true);\n index += description.length + 1;\n const value = utf8ArrayToStr(frame.data.subarray(index));\n return {\n key: frame.type,\n info: description,\n data: value\n };\n }\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Value}\n */\n const text = utf8ArrayToStr(frame.data.subarray(1));\n return {\n key: frame.type,\n data: text\n };\n};\nconst decodeURLFrame = frame => {\n if (frame.type === 'WXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{URL}\n */\n if (frame.size < 2) {\n return undefined;\n }\n let index = 1;\n const description = utf8ArrayToStr(frame.data.subarray(index), true);\n index += description.length + 1;\n const value = utf8ArrayToStr(frame.data.subarray(index));\n return {\n key: frame.type,\n info: description,\n data: value\n };\n }\n /*\n Format:\n [0-?] = {URL}\n */\n const url = utf8ArrayToStr(frame.data);\n return {\n key: frame.type,\n data: url\n };\n};\nconst readTimeStamp = timeStampFrame => {\n if (timeStampFrame.data.byteLength === 8) {\n const data = new Uint8Array(timeStampFrame.data);\n // timestamp is 33 bit expressed as a big-endian eight-octet number,\n // with the upper 31 bits set to zero.\n const pts33Bit = data[3] & 0x1;\n let timestamp = (data[4] << 23) + (data[5] << 15) + (data[6] << 7) + data[7];\n timestamp /= 45;\n if (pts33Bit) {\n timestamp += 47721858.84;\n } // 2^32 / 90\n\n return Math.round(timestamp);\n }\n return undefined;\n};\n\n// http://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript/22373197\n// http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo \n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nconst utf8ArrayToStr = (array, exitOnNull = false) => {\n const decoder = getTextDecoder();\n if (decoder) {\n const decoded = decoder.decode(array);\n if (exitOnNull) {\n // grab up to the first null\n const idx = decoded.indexOf('\\0');\n return idx !== -1 ? decoded.substring(0, idx) : decoded;\n }\n\n // remove any null characters\n return decoded.replace(/\\0/g, '');\n }\n const len = array.length;\n let c;\n let char2;\n let char3;\n let out = '';\n let i = 0;\n while (i < len) {\n c = array[i++];\n if (c === 0x00 && exitOnNull) {\n return out;\n } else if (c === 0x00 || c === 0x03) {\n // If the character is 3 (END_OF_TEXT) or 0 (NULL) then skip it\n continue;\n }\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++];\n out += String.fromCharCode((c & 0x1f) << 6 | char2 & 0x3f);\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++];\n char3 = array[i++];\n out += String.fromCharCode((c & 0x0f) << 12 | (char2 & 0x3f) << 6 | (char3 & 0x3f) << 0);\n break;\n }\n }\n return out;\n};\nlet decoder;\nfunction getTextDecoder() {\n // On Play Station 4, TextDecoder is defined but partially implemented.\n // Manual decoding option is preferable\n if (navigator.userAgent.includes('PlayStation 4')) {\n return;\n }\n if (!decoder && typeof self.TextDecoder !== 'undefined') {\n decoder = new self.TextDecoder('utf-8');\n }\n return decoder;\n}\n\n/**\n * hex dump helper class\n */\n\nconst Hex = {\n hexDump: function (array) {\n let str = '';\n for (let i = 0; i < array.length; i++) {\n let h = array[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n str += h;\n }\n return str;\n }\n};\n\nconst UINT32_MAX$1 = Math.pow(2, 32) - 1;\nconst push = [].push;\n\n// We are using fixed track IDs for driving the MP4 remuxer\n// instead of following the TS PIDs.\n// There is no reason not to do this and some browsers/SourceBuffer-demuxers\n// may not like if there are TrackID \"switches\"\n// See https://github.com/video-dev/hls.js/issues/1331\n// Here we are mapping our internal track types to constant MP4 track IDs\n// With MSE currently one can only have one track of each, and we are muxing\n// whatever video/audio rendition in them.\nconst RemuxerTrackIdConfig = {\n video: 1,\n audio: 2,\n id3: 3,\n text: 4\n};\nfunction bin2str(data) {\n return String.fromCharCode.apply(null, data);\n}\nfunction readUint16(buffer, offset) {\n const val = buffer[offset] << 8 | buffer[offset + 1];\n return val < 0 ? 65536 + val : val;\n}\nfunction readUint32(buffer, offset) {\n const val = readSint32(buffer, offset);\n return val < 0 ? 4294967296 + val : val;\n}\nfunction readUint64(buffer, offset) {\n let result = readUint32(buffer, offset);\n result *= Math.pow(2, 32);\n result += readUint32(buffer, offset + 4);\n return result;\n}\nfunction readSint32(buffer, offset) {\n return buffer[offset] << 24 | buffer[offset + 1] << 16 | buffer[offset + 2] << 8 | buffer[offset + 3];\n}\nfunction writeUint32(buffer, offset, value) {\n buffer[offset] = value >> 24;\n buffer[offset + 1] = value >> 16 & 0xff;\n buffer[offset + 2] = value >> 8 & 0xff;\n buffer[offset + 3] = value & 0xff;\n}\n\n// Find \"moof\" box\nfunction hasMoofData(data) {\n const end = data.byteLength;\n for (let i = 0; i < end;) {\n const size = readUint32(data, i);\n if (size > 8 && data[i + 4] === 0x6d && data[i + 5] === 0x6f && data[i + 6] === 0x6f && data[i + 7] === 0x66) {\n return true;\n }\n i = size > 1 ? i + size : end;\n }\n return false;\n}\n\n// Find the data for a box specified by its path\nfunction findBox(data, path) {\n const results = [];\n if (!path.length) {\n // short-circuit the search for empty paths\n return results;\n }\n const end = data.byteLength;\n for (let i = 0; i < end;) {\n const size = readUint32(data, i);\n const type = bin2str(data.subarray(i + 4, i + 8));\n const endbox = size > 1 ? i + size : end;\n if (type === path[0]) {\n if (path.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data.subarray(i + 8, endbox));\n } else {\n // recursively search for the next box along the path\n const subresults = findBox(data.subarray(i + 8, endbox), path.slice(1));\n if (subresults.length) {\n push.apply(results, subresults);\n }\n }\n }\n i = endbox;\n }\n\n // we've finished searching all of data\n return results;\n}\nfunction parseSegmentIndex(sidx) {\n const references = [];\n const version = sidx[0];\n\n // set initial offset, we skip the reference ID (not needed)\n let index = 8;\n const timescale = readUint32(sidx, index);\n index += 4;\n let earliestPresentationTime = 0;\n let firstOffset = 0;\n if (version === 0) {\n earliestPresentationTime = readUint32(sidx, index);\n firstOffset = readUint32(sidx, index + 4);\n index += 8;\n } else {\n earliestPresentationTime = readUint64(sidx, index);\n firstOffset = readUint64(sidx, index + 8);\n index += 16;\n }\n\n // skip reserved\n index += 2;\n let startByte = sidx.length + firstOffset;\n const referencesCount = readUint16(sidx, index);\n index += 2;\n for (let i = 0; i < referencesCount; i++) {\n let referenceIndex = index;\n const referenceInfo = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n const referenceSize = referenceInfo & 0x7fffffff;\n const referenceType = (referenceInfo & 0x80000000) >>> 31;\n if (referenceType === 1) {\n logger.warn('SIDX has hierarchical references (not supported)');\n return null;\n }\n const subsegmentDuration = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n references.push({\n referenceSize,\n subsegmentDuration,\n // unscaled\n info: {\n duration: subsegmentDuration / timescale,\n start: startByte,\n end: startByte + referenceSize - 1\n }\n });\n startByte += referenceSize;\n\n // Skipping 1 bit for |startsWithSap|, 3 bits for |sapType|, and 28 bits\n // for |sapDelta|.\n referenceIndex += 4;\n\n // skip to next ref\n index = referenceIndex;\n }\n return {\n earliestPresentationTime,\n timescale,\n version,\n referencesCount,\n references\n };\n}\n\n/**\n * Parses an MP4 initialization segment and extracts stream type and\n * timescale values for any declared tracks. Timescale values indicate the\n * number of clock ticks per second to assume for time-based values\n * elsewhere in the MP4.\n *\n * To determine the start time of an MP4, you need two pieces of\n * information: the timescale unit and the earliest base media decode\n * time. Multiple timescales can be specified within an MP4 but the\n * base media decode time is always expressed in the timescale from\n * the media header box for the track:\n * ```\n * moov > trak > mdia > mdhd.timescale\n * moov > trak > mdia > hdlr\n * ```\n * @param initSegment the bytes of the init segment\n * @returns a hash of track type to timescale values or null if\n * the init segment is malformed.\n */\n\nfunction parseInitSegment(initSegment) {\n const result = [];\n const traks = findBox(initSegment, ['moov', 'trak']);\n for (let i = 0; i < traks.length; i++) {\n const trak = traks[i];\n const tkhd = findBox(trak, ['tkhd'])[0];\n if (tkhd) {\n let version = tkhd[0];\n const trackId = readUint32(tkhd, version === 0 ? 12 : 20);\n const mdhd = findBox(trak, ['mdia', 'mdhd'])[0];\n if (mdhd) {\n version = mdhd[0];\n const timescale = readUint32(mdhd, version === 0 ? 12 : 20);\n const hdlr = findBox(trak, ['mdia', 'hdlr'])[0];\n if (hdlr) {\n const hdlrType = bin2str(hdlr.subarray(8, 12));\n const type = {\n soun: ElementaryStreamTypes.AUDIO,\n vide: ElementaryStreamTypes.VIDEO\n }[hdlrType];\n if (type) {\n // Parse codec details\n const stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n const stsdData = parseStsd(stsd);\n result[trackId] = {\n timescale,\n type\n };\n result[type] = _objectSpread2({\n timescale,\n id: trackId\n }, stsdData);\n }\n }\n }\n }\n }\n const trex = findBox(initSegment, ['moov', 'mvex', 'trex']);\n trex.forEach(trex => {\n const trackId = readUint32(trex, 4);\n const track = result[trackId];\n if (track) {\n track.default = {\n duration: readUint32(trex, 12),\n flags: readUint32(trex, 20)\n };\n }\n });\n return result;\n}\nfunction parseStsd(stsd) {\n const sampleEntries = stsd.subarray(8);\n const sampleEntriesEnd = sampleEntries.subarray(8 + 78);\n const fourCC = bin2str(sampleEntries.subarray(4, 8));\n let codec = fourCC;\n const encrypted = fourCC === 'enca' || fourCC === 'encv';\n if (encrypted) {\n const encBox = findBox(sampleEntries, [fourCC])[0];\n const encBoxChildren = encBox.subarray(fourCC === 'enca' ? 28 : 78);\n const sinfs = findBox(encBoxChildren, ['sinf']);\n sinfs.forEach(sinf => {\n const schm = findBox(sinf, ['schm'])[0];\n if (schm) {\n const scheme = bin2str(schm.subarray(4, 8));\n if (scheme === 'cbcs' || scheme === 'cenc') {\n const frma = findBox(sinf, ['frma'])[0];\n if (frma) {\n // for encrypted content codec fourCC will be in frma\n codec = bin2str(frma);\n }\n }\n }\n });\n }\n switch (codec) {\n case 'avc1':\n case 'avc2':\n case 'avc3':\n case 'avc4':\n {\n // extract profile + compatibility + level out of avcC box\n const avcCBox = findBox(sampleEntriesEnd, ['avcC'])[0];\n codec += '.' + toHex(avcCBox[1]) + toHex(avcCBox[2]) + toHex(avcCBox[3]);\n break;\n }\n case 'mp4a':\n {\n const codecBox = findBox(sampleEntries, [fourCC])[0];\n const esdsBox = findBox(codecBox.subarray(28), ['esds'])[0];\n if (esdsBox && esdsBox.length > 12) {\n let i = 4;\n // ES Descriptor tag\n if (esdsBox[i++] !== 0x03) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n i += 2; // skip es_id;\n const flags = esdsBox[i++];\n if (flags & 0x80) {\n i += 2; // skip dependency es_id\n }\n if (flags & 0x40) {\n i += esdsBox[i++]; // skip URL\n }\n // Decoder config descriptor\n if (esdsBox[i++] !== 0x04) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n const objectType = esdsBox[i++];\n if (objectType === 0x40) {\n codec += '.' + toHex(objectType);\n } else {\n break;\n }\n i += 12;\n // Decoder specific info\n if (esdsBox[i++] !== 0x05) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n const firstByte = esdsBox[i++];\n let audioObjectType = (firstByte & 0xf8) >> 3;\n if (audioObjectType === 31) {\n audioObjectType += 1 + ((firstByte & 0x7) << 3) + ((esdsBox[i] & 0xe0) >> 5);\n }\n codec += '.' + audioObjectType;\n }\n break;\n }\n case 'hvc1':\n case 'hev1':\n {\n const hvcCBox = findBox(sampleEntriesEnd, ['hvcC'])[0];\n const profileByte = hvcCBox[1];\n const profileSpace = ['', 'A', 'B', 'C'][profileByte >> 6];\n const generalProfileIdc = profileByte & 0x1f;\n const profileCompat = readUint32(hvcCBox, 2);\n const tierFlag = (profileByte & 0x20) >> 5 ? 'H' : 'L';\n const levelIDC = hvcCBox[12];\n const constraintIndicator = hvcCBox.subarray(6, 12);\n codec += '.' + profileSpace + generalProfileIdc;\n codec += '.' + profileCompat.toString(16).toUpperCase();\n codec += '.' + tierFlag + levelIDC;\n let constraintString = '';\n for (let i = constraintIndicator.length; i--;) {\n const byte = constraintIndicator[i];\n if (byte || constraintString) {\n const encodedByte = byte.toString(16).toUpperCase();\n constraintString = '.' + encodedByte + constraintString;\n }\n }\n codec += constraintString;\n break;\n }\n case 'dvh1':\n case 'dvhe':\n {\n const dvcCBox = findBox(sampleEntriesEnd, ['dvcC'])[0];\n const profile = dvcCBox[2] >> 1 & 0x7f;\n const level = dvcCBox[2] << 5 & 0x20 | dvcCBox[3] >> 3 & 0x1f;\n codec += '.' + addLeadingZero(profile) + '.' + addLeadingZero(level);\n break;\n }\n case 'vp09':\n {\n const vpcCBox = findBox(sampleEntriesEnd, ['vpcC'])[0];\n const profile = vpcCBox[4];\n const level = vpcCBox[5];\n const bitDepth = vpcCBox[6] >> 4 & 0x0f;\n codec += '.' + addLeadingZero(profile) + '.' + addLeadingZero(level) + '.' + addLeadingZero(bitDepth);\n break;\n }\n case 'av01':\n {\n const av1CBox = findBox(sampleEntriesEnd, ['av1C'])[0];\n const profile = av1CBox[1] >>> 5;\n const level = av1CBox[1] & 0x1f;\n const tierFlag = av1CBox[2] >>> 7 ? 'H' : 'M';\n const highBitDepth = (av1CBox[2] & 0x40) >> 6;\n const twelveBit = (av1CBox[2] & 0x20) >> 5;\n const bitDepth = profile === 2 && highBitDepth ? twelveBit ? 12 : 10 : highBitDepth ? 10 : 8;\n const monochrome = (av1CBox[2] & 0x10) >> 4;\n const chromaSubsamplingX = (av1CBox[2] & 0x08) >> 3;\n const chromaSubsamplingY = (av1CBox[2] & 0x04) >> 2;\n const chromaSamplePosition = av1CBox[2] & 0x03;\n // TODO: parse color_description_present_flag\n // default it to BT.709/limited range for now\n // more info https://aomediacodec.github.io/av1-isobmff/#av1codecconfigurationbox-syntax\n const colorPrimaries = 1;\n const transferCharacteristics = 1;\n const matrixCoefficients = 1;\n const videoFullRangeFlag = 0;\n codec += '.' + profile + '.' + addLeadingZero(level) + tierFlag + '.' + addLeadingZero(bitDepth) + '.' + monochrome + '.' + chromaSubsamplingX + chromaSubsamplingY + chromaSamplePosition + '.' + addLeadingZero(colorPrimaries) + '.' + addLeadingZero(transferCharacteristics) + '.' + addLeadingZero(matrixCoefficients) + '.' + videoFullRangeFlag;\n break;\n }\n }\n return {\n codec,\n encrypted\n };\n}\nfunction skipBERInteger(bytes, i) {\n const limit = i + 5;\n while (bytes[i++] & 0x80 && i < limit) {}\n return i;\n}\nfunction toHex(x) {\n return ('0' + x.toString(16).toUpperCase()).slice(-2);\n}\nfunction addLeadingZero(num) {\n return (num < 10 ? '0' : '') + num;\n}\nfunction patchEncyptionData(initSegment, decryptdata) {\n if (!initSegment || !decryptdata) {\n return initSegment;\n }\n const keyId = decryptdata.keyId;\n if (keyId && decryptdata.isCommonEncryption) {\n const traks = findBox(initSegment, ['moov', 'trak']);\n traks.forEach(trak => {\n const stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n\n // skip the sample entry count\n const sampleEntries = stsd.subarray(8);\n let encBoxes = findBox(sampleEntries, ['enca']);\n const isAudio = encBoxes.length > 0;\n if (!isAudio) {\n encBoxes = findBox(sampleEntries, ['encv']);\n }\n encBoxes.forEach(enc => {\n const encBoxChildren = isAudio ? enc.subarray(28) : enc.subarray(78);\n const sinfBoxes = findBox(encBoxChildren, ['sinf']);\n sinfBoxes.forEach(sinf => {\n const tenc = parseSinf(sinf);\n if (tenc) {\n // Look for default key id (keyID offset is always 8 within the tenc box):\n const tencKeyId = tenc.subarray(8, 24);\n if (!tencKeyId.some(b => b !== 0)) {\n logger.log(`[eme] Patching keyId in 'enc${isAudio ? 'a' : 'v'}>sinf>>tenc' box: ${Hex.hexDump(tencKeyId)} -> ${Hex.hexDump(keyId)}`);\n tenc.set(keyId, 8);\n }\n }\n });\n });\n });\n }\n return initSegment;\n}\nfunction parseSinf(sinf) {\n const schm = findBox(sinf, ['schm'])[0];\n if (schm) {\n const scheme = bin2str(schm.subarray(4, 8));\n if (scheme === 'cbcs' || scheme === 'cenc') {\n return findBox(sinf, ['schi', 'tenc'])[0];\n }\n }\n return null;\n}\n\n/**\n * Determine the base media decode start time, in seconds, for an MP4\n * fragment. If multiple fragments are specified, the earliest time is\n * returned.\n *\n * The base media decode time can be parsed from track fragment\n * metadata:\n * ```\n * moof > traf > tfdt.baseMediaDecodeTime\n * ```\n * It requires the timescale value from the mdhd to interpret.\n *\n * @param initData - a hash of track type to timescale values\n * @param fmp4 - the bytes of the mp4 fragment\n * @returns the earliest base media decode start time for the\n * fragment, in seconds\n */\nfunction getStartDTS(initData, fmp4) {\n // we need info from two children of each track fragment box\n return findBox(fmp4, ['moof', 'traf']).reduce((result, traf) => {\n const tfdt = findBox(traf, ['tfdt'])[0];\n const version = tfdt[0];\n const start = findBox(traf, ['tfhd']).reduce((result, tfhd) => {\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (track) {\n let baseTime = readUint32(tfdt, 4);\n if (version === 1) {\n // If value is too large, assume signed 64-bit. Negative track fragment decode times are invalid, but they exist in the wild.\n // This prevents large values from being used for initPTS, which can cause playlist sync issues.\n // https://github.com/video-dev/hls.js/issues/5303\n if (baseTime === UINT32_MAX$1) {\n logger.warn(`[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time`);\n return result;\n }\n baseTime *= UINT32_MAX$1 + 1;\n baseTime += readUint32(tfdt, 8);\n }\n // assume a 90kHz clock if no timescale was specified\n const scale = track.timescale || 90e3;\n // convert base time to seconds\n const startTime = baseTime / scale;\n if (isFiniteNumber(startTime) && (result === null || startTime < result)) {\n return startTime;\n }\n }\n return result;\n }, null);\n if (start !== null && isFiniteNumber(start) && (result === null || start < result)) {\n return start;\n }\n return result;\n }, null);\n}\n\n/*\n For Reference:\n aligned(8) class TrackFragmentHeaderBox\n extends FullBox(‘tfhd’, 0, tf_flags){\n unsigned int(32) track_ID;\n // all the following are optional fields\n unsigned int(64) base_data_offset;\n unsigned int(32) sample_description_index;\n unsigned int(32) default_sample_duration;\n unsigned int(32) default_sample_size;\n unsigned int(32) default_sample_flags\n }\n */\nfunction getDuration(data, initData) {\n let rawDuration = 0;\n let videoDuration = 0;\n let audioDuration = 0;\n const trafs = findBox(data, ['moof', 'traf']);\n for (let i = 0; i < trafs.length; i++) {\n const traf = trafs[i];\n // There is only one tfhd & trun per traf\n // This is true for CMAF style content, and we should perhaps check the ftyp\n // and only look for a single trun then, but for ISOBMFF we should check\n // for multiple track runs.\n const tfhd = findBox(traf, ['tfhd'])[0];\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (!track) {\n continue;\n }\n const trackDefault = track.default;\n const tfhdFlags = readUint32(tfhd, 0) | (trackDefault == null ? void 0 : trackDefault.flags);\n let sampleDuration = trackDefault == null ? void 0 : trackDefault.duration;\n if (tfhdFlags & 0x000008) {\n // 0x000008 indicates the presence of the default_sample_duration field\n if (tfhdFlags & 0x000002) {\n // 0x000002 indicates the presence of the sample_description_index field, which precedes default_sample_duration\n // If present, the default_sample_duration exists at byte offset 12\n sampleDuration = readUint32(tfhd, 12);\n } else {\n // Otherwise, the duration is at byte offset 8\n sampleDuration = readUint32(tfhd, 8);\n }\n }\n // assume a 90kHz clock if no timescale was specified\n const timescale = track.timescale || 90e3;\n const truns = findBox(traf, ['trun']);\n for (let j = 0; j < truns.length; j++) {\n rawDuration = computeRawDurationFromSamples(truns[j]);\n if (!rawDuration && sampleDuration) {\n const sampleCount = readUint32(truns[j], 4);\n rawDuration = sampleDuration * sampleCount;\n }\n if (track.type === ElementaryStreamTypes.VIDEO) {\n videoDuration += rawDuration / timescale;\n } else if (track.type === ElementaryStreamTypes.AUDIO) {\n audioDuration += rawDuration / timescale;\n }\n }\n }\n if (videoDuration === 0 && audioDuration === 0) {\n // If duration samples are not available in the traf use sidx subsegment_duration\n let sidxMinStart = Infinity;\n let sidxMaxEnd = 0;\n let sidxDuration = 0;\n const sidxs = findBox(data, ['sidx']);\n for (let i = 0; i < sidxs.length; i++) {\n const sidx = parseSegmentIndex(sidxs[i]);\n if (sidx != null && sidx.references) {\n sidxMinStart = Math.min(sidxMinStart, sidx.earliestPresentationTime / sidx.timescale);\n const subSegmentDuration = sidx.references.reduce((dur, ref) => dur + ref.info.duration || 0, 0);\n sidxMaxEnd = Math.max(sidxMaxEnd, subSegmentDuration + sidx.earliestPresentationTime / sidx.timescale);\n sidxDuration = sidxMaxEnd - sidxMinStart;\n }\n }\n if (sidxDuration && isFiniteNumber(sidxDuration)) {\n return sidxDuration;\n }\n }\n if (videoDuration) {\n return videoDuration;\n }\n return audioDuration;\n}\n\n/*\n For Reference:\n aligned(8) class TrackRunBox\n extends FullBox(‘trun’, version, tr_flags) {\n unsigned int(32) sample_count;\n // the following are optional fields\n signed int(32) data_offset;\n unsigned int(32) first_sample_flags;\n // all fields in the following array are optional\n {\n unsigned int(32) sample_duration;\n unsigned int(32) sample_size;\n unsigned int(32) sample_flags\n if (version == 0)\n { unsigned int(32)\n else\n { signed int(32)\n }[ sample_count ]\n }\n */\nfunction computeRawDurationFromSamples(trun) {\n const flags = readUint32(trun, 0);\n // Flags are at offset 0, non-optional sample_count is at offset 4. Therefore we start 8 bytes in.\n // Each field is an int32, which is 4 bytes\n let offset = 8;\n // data-offset-present flag\n if (flags & 0x000001) {\n offset += 4;\n }\n // first-sample-flags-present flag\n if (flags & 0x000004) {\n offset += 4;\n }\n let duration = 0;\n const sampleCount = readUint32(trun, 4);\n for (let i = 0; i < sampleCount; i++) {\n // sample-duration-present flag\n if (flags & 0x000100) {\n const sampleDuration = readUint32(trun, offset);\n duration += sampleDuration;\n offset += 4;\n }\n // sample-size-present flag\n if (flags & 0x000200) {\n offset += 4;\n }\n // sample-flags-present flag\n if (flags & 0x000400) {\n offset += 4;\n }\n // sample-composition-time-offsets-present flag\n if (flags & 0x000800) {\n offset += 4;\n }\n }\n return duration;\n}\nfunction offsetStartDTS(initData, fmp4, timeOffset) {\n findBox(fmp4, ['moof', 'traf']).forEach(traf => {\n findBox(traf, ['tfhd']).forEach(tfhd => {\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (!track) {\n return;\n }\n // assume a 90kHz clock if no timescale was specified\n const timescale = track.timescale || 90e3;\n // get the base media decode time from the tfdt\n findBox(traf, ['tfdt']).forEach(tfdt => {\n const version = tfdt[0];\n const offset = timeOffset * timescale;\n if (offset) {\n let baseMediaDecodeTime = readUint32(tfdt, 4);\n if (version === 0) {\n baseMediaDecodeTime -= offset;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n writeUint32(tfdt, 4, baseMediaDecodeTime);\n } else {\n baseMediaDecodeTime *= Math.pow(2, 32);\n baseMediaDecodeTime += readUint32(tfdt, 8);\n baseMediaDecodeTime -= offset;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n const upper = Math.floor(baseMediaDecodeTime / (UINT32_MAX$1 + 1));\n const lower = Math.floor(baseMediaDecodeTime % (UINT32_MAX$1 + 1));\n writeUint32(tfdt, 4, upper);\n writeUint32(tfdt, 8, lower);\n }\n }\n });\n });\n });\n}\n\n// TODO: Check if the last moof+mdat pair is part of the valid range\nfunction segmentValidRange(data) {\n const segmentedRange = {\n valid: null,\n remainder: null\n };\n const moofs = findBox(data, ['moof']);\n if (moofs.length < 2) {\n segmentedRange.remainder = data;\n return segmentedRange;\n }\n const last = moofs[moofs.length - 1];\n // Offset by 8 bytes; findBox offsets the start by as much\n segmentedRange.valid = sliceUint8(data, 0, last.byteOffset - 8);\n segmentedRange.remainder = sliceUint8(data, last.byteOffset - 8);\n return segmentedRange;\n}\nfunction appendUint8Array(data1, data2) {\n const temp = new Uint8Array(data1.length + data2.length);\n temp.set(data1);\n temp.set(data2, data1.length);\n return temp;\n}\nfunction parseSamples(timeOffset, track) {\n const seiSamples = [];\n const videoData = track.samples;\n const timescale = track.timescale;\n const trackId = track.id;\n let isHEVCFlavor = false;\n const moofs = findBox(videoData, ['moof']);\n moofs.map(moof => {\n const moofOffset = moof.byteOffset - 8;\n const trafs = findBox(moof, ['traf']);\n trafs.map(traf => {\n // get the base media decode time from the tfdt\n const baseTime = findBox(traf, ['tfdt']).map(tfdt => {\n const version = tfdt[0];\n let result = readUint32(tfdt, 4);\n if (version === 1) {\n result *= Math.pow(2, 32);\n result += readUint32(tfdt, 8);\n }\n return result / timescale;\n })[0];\n if (baseTime !== undefined) {\n timeOffset = baseTime;\n }\n return findBox(traf, ['tfhd']).map(tfhd => {\n const id = readUint32(tfhd, 4);\n const tfhdFlags = readUint32(tfhd, 0) & 0xffffff;\n const baseDataOffsetPresent = (tfhdFlags & 0x000001) !== 0;\n const sampleDescriptionIndexPresent = (tfhdFlags & 0x000002) !== 0;\n const defaultSampleDurationPresent = (tfhdFlags & 0x000008) !== 0;\n let defaultSampleDuration = 0;\n const defaultSampleSizePresent = (tfhdFlags & 0x000010) !== 0;\n let defaultSampleSize = 0;\n const defaultSampleFlagsPresent = (tfhdFlags & 0x000020) !== 0;\n let tfhdOffset = 8;\n if (id === trackId) {\n if (baseDataOffsetPresent) {\n tfhdOffset += 8;\n }\n if (sampleDescriptionIndexPresent) {\n tfhdOffset += 4;\n }\n if (defaultSampleDurationPresent) {\n defaultSampleDuration = readUint32(tfhd, tfhdOffset);\n tfhdOffset += 4;\n }\n if (defaultSampleSizePresent) {\n defaultSampleSize = readUint32(tfhd, tfhdOffset);\n tfhdOffset += 4;\n }\n if (defaultSampleFlagsPresent) {\n tfhdOffset += 4;\n }\n if (track.type === 'video') {\n isHEVCFlavor = isHEVC(track.codec);\n }\n findBox(traf, ['trun']).map(trun => {\n const version = trun[0];\n const flags = readUint32(trun, 0) & 0xffffff;\n const dataOffsetPresent = (flags & 0x000001) !== 0;\n let dataOffset = 0;\n const firstSampleFlagsPresent = (flags & 0x000004) !== 0;\n const sampleDurationPresent = (flags & 0x000100) !== 0;\n let sampleDuration = 0;\n const sampleSizePresent = (flags & 0x000200) !== 0;\n let sampleSize = 0;\n const sampleFlagsPresent = (flags & 0x000400) !== 0;\n const sampleCompositionOffsetsPresent = (flags & 0x000800) !== 0;\n let compositionOffset = 0;\n const sampleCount = readUint32(trun, 4);\n let trunOffset = 8; // past version, flags, and sample count\n\n if (dataOffsetPresent) {\n dataOffset = readUint32(trun, trunOffset);\n trunOffset += 4;\n }\n if (firstSampleFlagsPresent) {\n trunOffset += 4;\n }\n let sampleOffset = dataOffset + moofOffset;\n for (let ix = 0; ix < sampleCount; ix++) {\n if (sampleDurationPresent) {\n sampleDuration = readUint32(trun, trunOffset);\n trunOffset += 4;\n } else {\n sampleDuration = defaultSampleDuration;\n }\n if (sampleSizePresent) {\n sampleSize = readUint32(trun, trunOffset);\n trunOffset += 4;\n } else {\n sampleSize = defaultSampleSize;\n }\n if (sampleFlagsPresent) {\n trunOffset += 4;\n }\n if (sampleCompositionOffsetsPresent) {\n if (version === 0) {\n compositionOffset = readUint32(trun, trunOffset);\n } else {\n compositionOffset = readSint32(trun, trunOffset);\n }\n trunOffset += 4;\n }\n if (track.type === ElementaryStreamTypes.VIDEO) {\n let naluTotalSize = 0;\n while (naluTotalSize < sampleSize) {\n const naluSize = readUint32(videoData, sampleOffset);\n sampleOffset += 4;\n if (isSEIMessage(isHEVCFlavor, videoData[sampleOffset])) {\n const data = videoData.subarray(sampleOffset, sampleOffset + naluSize);\n parseSEIMessageFromNALu(data, isHEVCFlavor ? 2 : 1, timeOffset + compositionOffset / timescale, seiSamples);\n }\n sampleOffset += naluSize;\n naluTotalSize += naluSize + 4;\n }\n }\n timeOffset += sampleDuration / timescale;\n }\n });\n }\n });\n });\n });\n return seiSamples;\n}\nfunction isHEVC(codec) {\n if (!codec) {\n return false;\n }\n const delimit = codec.indexOf('.');\n const baseCodec = delimit < 0 ? codec : codec.substring(0, delimit);\n return baseCodec === 'hvc1' || baseCodec === 'hev1' ||\n // Dolby Vision\n baseCodec === 'dvh1' || baseCodec === 'dvhe';\n}\nfunction isSEIMessage(isHEVCFlavor, naluHeader) {\n if (isHEVCFlavor) {\n const naluType = naluHeader >> 1 & 0x3f;\n return naluType === 39 || naluType === 40;\n } else {\n const naluType = naluHeader & 0x1f;\n return naluType === 6;\n }\n}\nfunction parseSEIMessageFromNALu(unescapedData, headerSize, pts, samples) {\n const data = discardEPB(unescapedData);\n let seiPtr = 0;\n // skip nal header\n seiPtr += headerSize;\n let payloadType = 0;\n let payloadSize = 0;\n let b = 0;\n while (seiPtr < data.length) {\n payloadType = 0;\n do {\n if (seiPtr >= data.length) {\n break;\n }\n b = data[seiPtr++];\n payloadType += b;\n } while (b === 0xff);\n\n // Parse payload size.\n payloadSize = 0;\n do {\n if (seiPtr >= data.length) {\n break;\n }\n b = data[seiPtr++];\n payloadSize += b;\n } while (b === 0xff);\n const leftOver = data.length - seiPtr;\n // Create a variable to process the payload\n let payPtr = seiPtr;\n\n // Increment the seiPtr to the end of the payload\n if (payloadSize < leftOver) {\n seiPtr += payloadSize;\n } else if (payloadSize > leftOver) {\n // Some type of corruption has happened?\n logger.error(`Malformed SEI payload. ${payloadSize} is too small, only ${leftOver} bytes left to parse.`);\n // We might be able to parse some data, but let's be safe and ignore it.\n break;\n }\n if (payloadType === 4) {\n const countryCode = data[payPtr++];\n if (countryCode === 181) {\n const providerCode = readUint16(data, payPtr);\n payPtr += 2;\n if (providerCode === 49) {\n const userStructure = readUint32(data, payPtr);\n payPtr += 4;\n if (userStructure === 0x47413934) {\n const userDataType = data[payPtr++];\n\n // Raw CEA-608 bytes wrapped in CEA-708 packet\n if (userDataType === 3) {\n const firstByte = data[payPtr++];\n const totalCCs = 0x1f & firstByte;\n const enabled = 0x40 & firstByte;\n const totalBytes = enabled ? 2 + totalCCs * 3 : 0;\n const byteArray = new Uint8Array(totalBytes);\n if (enabled) {\n byteArray[0] = firstByte;\n for (let i = 1; i < totalBytes; i++) {\n byteArray[i] = data[payPtr++];\n }\n }\n samples.push({\n type: userDataType,\n payloadType,\n pts,\n bytes: byteArray\n });\n }\n }\n }\n }\n } else if (payloadType === 5) {\n if (payloadSize > 16) {\n const uuidStrArray = [];\n for (let i = 0; i < 16; i++) {\n const _b = data[payPtr++].toString(16);\n uuidStrArray.push(_b.length == 1 ? '0' + _b : _b);\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n uuidStrArray.push('-');\n }\n }\n const length = payloadSize - 16;\n const userDataBytes = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n userDataBytes[i] = data[payPtr++];\n }\n samples.push({\n payloadType,\n pts,\n uuid: uuidStrArray.join(''),\n userData: utf8ArrayToStr(userDataBytes),\n userDataBytes\n });\n }\n }\n }\n}\n\n/**\n * remove Emulation Prevention bytes from a RBSP\n */\nfunction discardEPB(data) {\n const length = data.byteLength;\n const EPBPositions = [];\n let i = 1;\n\n // Find all `Emulation Prevention Bytes`\n while (i < length - 2) {\n if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {\n EPBPositions.push(i + 2);\n i += 2;\n } else {\n i++;\n }\n }\n\n // If no Emulation Prevention Bytes were found just return the original\n // array\n if (EPBPositions.length === 0) {\n return data;\n }\n\n // Create a new array to hold the NAL unit data\n const newLength = length - EPBPositions.length;\n const newData = new Uint8Array(newLength);\n let sourceIndex = 0;\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === EPBPositions[0]) {\n // Skip this byte\n sourceIndex++;\n // Remove this position index\n EPBPositions.shift();\n }\n newData[i] = data[sourceIndex];\n }\n return newData;\n}\nfunction parseEmsg(data) {\n const version = data[0];\n let schemeIdUri = '';\n let value = '';\n let timeScale = 0;\n let presentationTimeDelta = 0;\n let presentationTime = 0;\n let eventDuration = 0;\n let id = 0;\n let offset = 0;\n if (version === 0) {\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n timeScale = readUint32(data, 12);\n presentationTimeDelta = readUint32(data, 16);\n eventDuration = readUint32(data, 20);\n id = readUint32(data, 24);\n offset = 28;\n } else if (version === 1) {\n offset += 4;\n timeScale = readUint32(data, offset);\n offset += 4;\n const leftPresentationTime = readUint32(data, offset);\n offset += 4;\n const rightPresentationTime = readUint32(data, offset);\n offset += 4;\n presentationTime = 2 ** 32 * leftPresentationTime + rightPresentationTime;\n if (!isSafeInteger(presentationTime)) {\n presentationTime = Number.MAX_SAFE_INTEGER;\n logger.warn('Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box');\n }\n eventDuration = readUint32(data, offset);\n offset += 4;\n id = readUint32(data, offset);\n offset += 4;\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n const payload = data.subarray(offset, data.byteLength);\n return {\n schemeIdUri,\n value,\n timeScale,\n presentationTime,\n presentationTimeDelta,\n eventDuration,\n id,\n payload\n };\n}\nfunction mp4Box(type, ...payload) {\n const len = payload.length;\n let size = 8;\n let i = len;\n while (i--) {\n size += payload[i].byteLength;\n }\n const result = new Uint8Array(size);\n result[0] = size >> 24 & 0xff;\n result[1] = size >> 16 & 0xff;\n result[2] = size >> 8 & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4);\n for (i = 0, size = 8; i < len; i++) {\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n return result;\n}\nfunction mp4pssh(systemId, keyids, data) {\n if (systemId.byteLength !== 16) {\n throw new RangeError('Invalid system id');\n }\n let version;\n let kids;\n if (keyids) {\n version = 1;\n kids = new Uint8Array(keyids.length * 16);\n for (let ix = 0; ix < keyids.length; ix++) {\n const k = keyids[ix]; // uint8array\n if (k.byteLength !== 16) {\n throw new RangeError('Invalid key');\n }\n kids.set(k, ix * 16);\n }\n } else {\n version = 0;\n kids = new Uint8Array();\n }\n let kidCount;\n if (version > 0) {\n kidCount = new Uint8Array(4);\n if (keyids.length > 0) {\n new DataView(kidCount.buffer).setUint32(0, keyids.length, false);\n }\n } else {\n kidCount = new Uint8Array();\n }\n const dataSize = new Uint8Array(4);\n if (data && data.byteLength > 0) {\n new DataView(dataSize.buffer).setUint32(0, data.byteLength, false);\n }\n return mp4Box([112, 115, 115, 104], new Uint8Array([version, 0x00, 0x00, 0x00 // Flags\n ]), systemId,\n // 16 bytes\n kidCount, kids, dataSize, data || new Uint8Array());\n}\nfunction parseMultiPssh(initData) {\n const results = [];\n if (initData instanceof ArrayBuffer) {\n const length = initData.byteLength;\n let offset = 0;\n while (offset + 32 < length) {\n const view = new DataView(initData, offset);\n const pssh = parsePssh(view);\n results.push(pssh);\n offset += pssh.size;\n }\n }\n return results;\n}\nfunction parsePssh(view) {\n const size = view.getUint32(0);\n const offset = view.byteOffset;\n const length = view.byteLength;\n if (length < size) {\n return {\n offset,\n size: length\n };\n }\n const type = view.getUint32(4);\n if (type !== 0x70737368) {\n return {\n offset,\n size\n };\n }\n const version = view.getUint32(8) >>> 24;\n if (version !== 0 && version !== 1) {\n return {\n offset,\n size\n };\n }\n const buffer = view.buffer;\n const systemId = Hex.hexDump(new Uint8Array(buffer, offset + 12, 16));\n const dataSizeOrKidCount = view.getUint32(28);\n let kids = null;\n let data = null;\n if (version === 0) {\n if (size - 32 < dataSizeOrKidCount || dataSizeOrKidCount < 22) {\n return {\n offset,\n size\n };\n }\n data = new Uint8Array(buffer, offset + 32, dataSizeOrKidCount);\n } else if (version === 1) {\n if (!dataSizeOrKidCount || length < offset + 32 + dataSizeOrKidCount * 16 + 16) {\n return {\n offset,\n size\n };\n }\n kids = [];\n for (let i = 0; i < dataSizeOrKidCount; i++) {\n kids.push(new Uint8Array(buffer, offset + 32 + i * 16, 16));\n }\n }\n return {\n version,\n systemId,\n kids,\n data,\n offset,\n size\n };\n}\n\nlet keyUriToKeyIdMap = {};\nclass LevelKey {\n static clearKeyUriToKeyIdMap() {\n keyUriToKeyIdMap = {};\n }\n constructor(method, uri, format, formatversions = [1], iv = null) {\n this.uri = void 0;\n this.method = void 0;\n this.keyFormat = void 0;\n this.keyFormatVersions = void 0;\n this.encrypted = void 0;\n this.isCommonEncryption = void 0;\n this.iv = null;\n this.key = null;\n this.keyId = null;\n this.pssh = null;\n this.method = method;\n this.uri = uri;\n this.keyFormat = format;\n this.keyFormatVersions = formatversions;\n this.iv = iv;\n this.encrypted = method ? method !== 'NONE' : false;\n this.isCommonEncryption = this.encrypted && method !== 'AES-128';\n }\n isSupported() {\n // If it's Segment encryption or No encryption, just select that key system\n if (this.method) {\n if (this.method === 'AES-128' || this.method === 'NONE') {\n return true;\n }\n if (this.keyFormat === 'identity') {\n // Maintain support for clear SAMPLE-AES with MPEG-3 TS\n return this.method === 'SAMPLE-AES';\n } else {\n switch (this.keyFormat) {\n case KeySystemFormats.FAIRPLAY:\n case KeySystemFormats.WIDEVINE:\n case KeySystemFormats.PLAYREADY:\n case KeySystemFormats.CLEARKEY:\n return ['ISO-23001-7', 'SAMPLE-AES', 'SAMPLE-AES-CENC', 'SAMPLE-AES-CTR'].indexOf(this.method) !== -1;\n }\n }\n }\n return false;\n }\n getDecryptData(sn) {\n if (!this.encrypted || !this.uri) {\n return null;\n }\n if (this.method === 'AES-128' && this.uri && !this.iv) {\n if (typeof sn !== 'number') {\n // We are fetching decryption data for a initialization segment\n // If the segment was encrypted with AES-128\n // It must have an IV defined. We cannot substitute the Segment Number in.\n if (this.method === 'AES-128' && !this.iv) {\n logger.warn(`missing IV for initialization segment with method=\"${this.method}\" - compliance issue`);\n }\n // Explicitly set sn to resulting value from implicit conversions 'initSegment' values for IV generation.\n sn = 0;\n }\n const iv = createInitializationVector(sn);\n const decryptdata = new LevelKey(this.method, this.uri, 'identity', this.keyFormatVersions, iv);\n return decryptdata;\n }\n\n // Initialize keyId if possible\n const keyBytes = convertDataUriToArrayBytes(this.uri);\n if (keyBytes) {\n switch (this.keyFormat) {\n case KeySystemFormats.WIDEVINE:\n // Setting `pssh` on this LevelKey/DecryptData allows HLS.js to generate a session using\n // the playlist-key before the \"encrypted\" event. (Comment out to only use \"encrypted\" path.)\n this.pssh = keyBytes;\n // In case of widevine keyID is embedded in PSSH box. Read Key ID.\n if (keyBytes.length >= 22) {\n this.keyId = keyBytes.subarray(keyBytes.length - 22, keyBytes.length - 6);\n }\n break;\n case KeySystemFormats.PLAYREADY:\n {\n const PlayReadyKeySystemUUID = new Uint8Array([0x9a, 0x04, 0xf0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xab, 0x92, 0xe6, 0x5b, 0xe0, 0x88, 0x5f, 0x95]);\n\n // Setting `pssh` on this LevelKey/DecryptData allows HLS.js to generate a session using\n // the playlist-key before the \"encrypted\" event. (Comment out to only use \"encrypted\" path.)\n this.pssh = mp4pssh(PlayReadyKeySystemUUID, null, keyBytes);\n this.keyId = parsePlayReadyWRM(keyBytes);\n break;\n }\n default:\n {\n let keydata = keyBytes.subarray(0, 16);\n if (keydata.length !== 16) {\n const padded = new Uint8Array(16);\n padded.set(keydata, 16 - keydata.length);\n keydata = padded;\n }\n this.keyId = keydata;\n break;\n }\n }\n }\n\n // Default behavior: assign a new keyId for each uri\n if (!this.keyId || this.keyId.byteLength !== 16) {\n let keyId = keyUriToKeyIdMap[this.uri];\n if (!keyId) {\n const val = Object.keys(keyUriToKeyIdMap).length % Number.MAX_SAFE_INTEGER;\n keyId = new Uint8Array(16);\n const dv = new DataView(keyId.buffer, 12, 4); // Just set the last 4 bytes\n dv.setUint32(0, val);\n keyUriToKeyIdMap[this.uri] = keyId;\n }\n this.keyId = keyId;\n }\n return this;\n }\n}\nfunction createInitializationVector(segmentNumber) {\n const uint8View = new Uint8Array(16);\n for (let i = 12; i < 16; i++) {\n uint8View[i] = segmentNumber >> 8 * (15 - i) & 0xff;\n }\n return uint8View;\n}\n\nconst VARIABLE_REPLACEMENT_REGEX = /\\{\\$([a-zA-Z0-9-_]+)\\}/g;\nfunction hasVariableReferences(str) {\n return VARIABLE_REPLACEMENT_REGEX.test(str);\n}\nfunction substituteVariablesInAttributes(parsed, attr, attributeNames) {\n if (parsed.variableList !== null || parsed.hasVariableRefs) {\n for (let i = attributeNames.length; i--;) {\n const name = attributeNames[i];\n const value = attr[name];\n if (value) {\n attr[name] = substituteVariables(parsed, value);\n }\n }\n }\n}\nfunction substituteVariables(parsed, value) {\n if (parsed.variableList !== null || parsed.hasVariableRefs) {\n const variableList = parsed.variableList;\n return value.replace(VARIABLE_REPLACEMENT_REGEX, variableReference => {\n const variableName = variableReference.substring(2, variableReference.length - 1);\n const variableValue = variableList == null ? void 0 : variableList[variableName];\n if (variableValue === undefined) {\n parsed.playlistParsingError || (parsed.playlistParsingError = new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: \"${variableName}\"`));\n return variableReference;\n }\n return variableValue;\n });\n }\n return value;\n}\nfunction addVariableDefinition(parsed, attr, parentUrl) {\n let variableList = parsed.variableList;\n if (!variableList) {\n parsed.variableList = variableList = {};\n }\n let NAME;\n let VALUE;\n if ('QUERYPARAM' in attr) {\n NAME = attr.QUERYPARAM;\n try {\n const searchParams = new self.URL(parentUrl).searchParams;\n if (searchParams.has(NAME)) {\n VALUE = searchParams.get(NAME);\n } else {\n throw new Error(`\"${NAME}\" does not match any query parameter in URI: \"${parentUrl}\"`);\n }\n } catch (error) {\n parsed.playlistParsingError || (parsed.playlistParsingError = new Error(`EXT-X-DEFINE QUERYPARAM: ${error.message}`));\n }\n } else {\n NAME = attr.NAME;\n VALUE = attr.VALUE;\n }\n if (NAME in variableList) {\n parsed.playlistParsingError || (parsed.playlistParsingError = new Error(`EXT-X-DEFINE duplicate Variable Name declarations: \"${NAME}\"`));\n } else {\n variableList[NAME] = VALUE || '';\n }\n}\nfunction importVariableDefinition(parsed, attr, sourceVariableList) {\n const IMPORT = attr.IMPORT;\n if (sourceVariableList && IMPORT in sourceVariableList) {\n let variableList = parsed.variableList;\n if (!variableList) {\n parsed.variableList = variableList = {};\n }\n variableList[IMPORT] = sourceVariableList[IMPORT];\n } else {\n parsed.playlistParsingError || (parsed.playlistParsingError = new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: \"${IMPORT}\"`));\n }\n}\n\n/**\n * MediaSource helper\n */\n\nfunction getMediaSource(preferManagedMediaSource = true) {\n if (typeof self === 'undefined') return undefined;\n const mms = (preferManagedMediaSource || !self.MediaSource) && self.ManagedMediaSource;\n return mms || self.MediaSource || self.WebKitMediaSource;\n}\nfunction isManagedMediaSource(source) {\n return typeof self !== 'undefined' && source === self.ManagedMediaSource;\n}\n\n// from http://mp4ra.org/codecs.html\n// values indicate codec selection preference (lower is higher priority)\nconst sampleEntryCodesISO = {\n audio: {\n a3ds: 1,\n 'ac-3': 0.95,\n 'ac-4': 1,\n alac: 0.9,\n alaw: 1,\n dra1: 1,\n 'dts+': 1,\n 'dts-': 1,\n dtsc: 1,\n dtse: 1,\n dtsh: 1,\n 'ec-3': 0.9,\n enca: 1,\n fLaC: 0.9,\n // MP4-RA listed codec entry for FLAC\n flac: 0.9,\n // legacy browser codec name for FLAC\n FLAC: 0.9,\n // some manifests may list \"FLAC\" with Apple's tools\n g719: 1,\n g726: 1,\n m4ae: 1,\n mha1: 1,\n mha2: 1,\n mhm1: 1,\n mhm2: 1,\n mlpa: 1,\n mp4a: 1,\n 'raw ': 1,\n Opus: 1,\n opus: 1,\n // browsers expect this to be lowercase despite MP4RA says 'Opus'\n samr: 1,\n sawb: 1,\n sawp: 1,\n sevc: 1,\n sqcp: 1,\n ssmv: 1,\n twos: 1,\n ulaw: 1\n },\n video: {\n avc1: 1,\n avc2: 1,\n avc3: 1,\n avc4: 1,\n avcp: 1,\n av01: 0.8,\n drac: 1,\n dva1: 1,\n dvav: 1,\n dvh1: 0.7,\n dvhe: 0.7,\n encv: 1,\n hev1: 0.75,\n hvc1: 0.75,\n mjp2: 1,\n mp4v: 1,\n mvc1: 1,\n mvc2: 1,\n mvc3: 1,\n mvc4: 1,\n resv: 1,\n rv60: 1,\n s263: 1,\n svc1: 1,\n svc2: 1,\n 'vc-1': 1,\n vp08: 1,\n vp09: 0.9\n },\n text: {\n stpp: 1,\n wvtt: 1\n }\n};\nfunction isCodecType(codec, type) {\n const typeCodes = sampleEntryCodesISO[type];\n return !!typeCodes && !!typeCodes[codec.slice(0, 4)];\n}\nfunction areCodecsMediaSourceSupported(codecs, type, preferManagedMediaSource = true) {\n return !codecs.split(',').some(codec => !isCodecMediaSourceSupported(codec, type, preferManagedMediaSource));\n}\nfunction isCodecMediaSourceSupported(codec, type, preferManagedMediaSource = true) {\n var _MediaSource$isTypeSu;\n const MediaSource = getMediaSource(preferManagedMediaSource);\n return (_MediaSource$isTypeSu = MediaSource == null ? void 0 : MediaSource.isTypeSupported(mimeTypeForCodec(codec, type))) != null ? _MediaSource$isTypeSu : false;\n}\nfunction mimeTypeForCodec(codec, type) {\n return `${type}/mp4;codecs=\"${codec}\"`;\n}\nfunction videoCodecPreferenceValue(videoCodec) {\n if (videoCodec) {\n const fourCC = videoCodec.substring(0, 4);\n return sampleEntryCodesISO.video[fourCC];\n }\n return 2;\n}\nfunction codecsSetSelectionPreferenceValue(codecSet) {\n return codecSet.split(',').reduce((num, fourCC) => {\n const preferenceValue = sampleEntryCodesISO.video[fourCC];\n if (preferenceValue) {\n return (preferenceValue * 2 + num) / (num ? 3 : 2);\n }\n return (sampleEntryCodesISO.audio[fourCC] + num) / (num ? 2 : 1);\n }, 0);\n}\nconst CODEC_COMPATIBLE_NAMES = {};\nfunction getCodecCompatibleNameLower(lowerCaseCodec, preferManagedMediaSource = true) {\n if (CODEC_COMPATIBLE_NAMES[lowerCaseCodec]) {\n return CODEC_COMPATIBLE_NAMES[lowerCaseCodec];\n }\n\n // Idealy fLaC and Opus would be first (spec-compliant) but\n // some browsers will report that fLaC is supported then fail.\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=1422728\n const codecsToCheck = {\n flac: ['flac', 'fLaC', 'FLAC'],\n opus: ['opus', 'Opus']\n }[lowerCaseCodec];\n for (let i = 0; i < codecsToCheck.length; i++) {\n if (isCodecMediaSourceSupported(codecsToCheck[i], 'audio', preferManagedMediaSource)) {\n CODEC_COMPATIBLE_NAMES[lowerCaseCodec] = codecsToCheck[i];\n return codecsToCheck[i];\n }\n }\n return lowerCaseCodec;\n}\nconst AUDIO_CODEC_REGEXP = /flac|opus/i;\nfunction getCodecCompatibleName(codec, preferManagedMediaSource = true) {\n return codec.replace(AUDIO_CODEC_REGEXP, m => getCodecCompatibleNameLower(m.toLowerCase(), preferManagedMediaSource));\n}\nfunction pickMostCompleteCodecName(parsedCodec, levelCodec) {\n // Parsing of mp4a codecs strings in mp4-tools from media is incomplete as of d8c6c7a\n // so use level codec is parsed codec is unavailable or incomplete\n if (parsedCodec && parsedCodec !== 'mp4a') {\n return parsedCodec;\n }\n return levelCodec ? levelCodec.split(',')[0] : levelCodec;\n}\nfunction convertAVC1ToAVCOTI(codec) {\n // Convert avc1 codec string from RFC-4281 to RFC-6381 for MediaSource.isTypeSupported\n // Examples: avc1.66.30 to avc1.42001e and avc1.77.30,avc1.66.30 to avc1.4d001e,avc1.42001e.\n const codecs = codec.split(',');\n for (let i = 0; i < codecs.length; i++) {\n const avcdata = codecs[i].split('.');\n if (avcdata.length > 2) {\n let result = avcdata.shift() + '.';\n result += parseInt(avcdata.shift()).toString(16);\n result += ('000' + parseInt(avcdata.shift()).toString(16)).slice(-4);\n codecs[i] = result;\n }\n }\n return codecs.join(',');\n}\n\nconst MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\\r\\n]*)(?:[\\r\\n](?:#[^\\r\\n]*)?)*([^\\r\\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\\r\\n]*)[\\r\\n]+/g;\nconst MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g;\nconst IS_MEDIA_PLAYLIST = /^#EXT(?:INF|-X-TARGETDURATION):/m; // Handle empty Media Playlist (first EXTINF not signaled, but TARGETDURATION present)\n\nconst LEVEL_PLAYLIST_REGEX_FAST = new RegExp([/#EXTINF:\\s*(\\d*(?:\\.\\d+)?)(?:,(.*)\\s+)?/.source,\n// duration (#EXTINF:,), group 1 => duration, group 2 => title\n/(?!#) *(\\S[^\\r\\n]*)/.source,\n// segment URI, group 3 => the URI (note newline is not eaten)\n/#EXT-X-BYTERANGE:*(.+)/.source,\n// next segment's byterange, group 4 => range spec (x@y)\n/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,\n// next segment's program date/time group 5 => the datetime spec\n/#.*/.source // All other non-segment oriented tags will match with all groups empty\n].join('|'), 'g');\nconst LEVEL_PLAYLIST_REGEX_SLOW = new RegExp([/#(EXTM3U)/.source, /#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source, /#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\\d+)/.source, /#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source, /(#)([^:]*):(.*)/.source, /(#)(.*)(?:.*)\\r?\\n?/.source].join('|'));\nclass M3U8Parser {\n static findGroup(groups, mediaGroupId) {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n if (group.id === mediaGroupId) {\n return group;\n }\n }\n }\n static resolve(url, baseUrl) {\n return urlToolkitExports.buildAbsoluteURL(baseUrl, url, {\n alwaysNormalize: true\n });\n }\n static isMediaPlaylist(str) {\n return IS_MEDIA_PLAYLIST.test(str);\n }\n static parseMasterPlaylist(string, baseurl) {\n const hasVariableRefs = hasVariableReferences(string) ;\n const parsed = {\n contentSteering: null,\n levels: [],\n playlistParsingError: null,\n sessionData: null,\n sessionKeys: null,\n startTimeOffset: null,\n variableList: null,\n hasVariableRefs\n };\n const levelsWithKnownCodecs = [];\n MASTER_PLAYLIST_REGEX.lastIndex = 0;\n let result;\n while ((result = MASTER_PLAYLIST_REGEX.exec(string)) != null) {\n if (result[1]) {\n var _level$unknownCodecs;\n // '#EXT-X-STREAM-INF' is found, parse level tag in group 1\n const attrs = new AttrList(result[1]);\n {\n substituteVariablesInAttributes(parsed, attrs, ['CODECS', 'SUPPLEMENTAL-CODECS', 'ALLOWED-CPC', 'PATHWAY-ID', 'STABLE-VARIANT-ID', 'AUDIO', 'VIDEO', 'SUBTITLES', 'CLOSED-CAPTIONS', 'NAME']);\n }\n const uri = substituteVariables(parsed, result[2]) ;\n const level = {\n attrs,\n bitrate: attrs.decimalInteger('BANDWIDTH') || attrs.decimalInteger('AVERAGE-BANDWIDTH'),\n name: attrs.NAME,\n url: M3U8Parser.resolve(uri, baseurl)\n };\n const resolution = attrs.decimalResolution('RESOLUTION');\n if (resolution) {\n level.width = resolution.width;\n level.height = resolution.height;\n }\n setCodecs(attrs.CODECS, level);\n if (!((_level$unknownCodecs = level.unknownCodecs) != null && _level$unknownCodecs.length)) {\n levelsWithKnownCodecs.push(level);\n }\n parsed.levels.push(level);\n } else if (result[3]) {\n const tag = result[3];\n const attributes = result[4];\n switch (tag) {\n case 'SESSION-DATA':\n {\n // #EXT-X-SESSION-DATA\n const sessionAttrs = new AttrList(attributes);\n {\n substituteVariablesInAttributes(parsed, sessionAttrs, ['DATA-ID', 'LANGUAGE', 'VALUE', 'URI']);\n }\n const dataId = sessionAttrs['DATA-ID'];\n if (dataId) {\n if (parsed.sessionData === null) {\n parsed.sessionData = {};\n }\n parsed.sessionData[dataId] = sessionAttrs;\n }\n break;\n }\n case 'SESSION-KEY':\n {\n // #EXT-X-SESSION-KEY\n const sessionKey = parseKey(attributes, baseurl, parsed);\n if (sessionKey.encrypted && sessionKey.isSupported()) {\n if (parsed.sessionKeys === null) {\n parsed.sessionKeys = [];\n }\n parsed.sessionKeys.push(sessionKey);\n } else {\n logger.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: \"${attributes}\"`);\n }\n break;\n }\n case 'DEFINE':\n {\n // #EXT-X-DEFINE\n {\n const variableAttributes = new AttrList(attributes);\n substituteVariablesInAttributes(parsed, variableAttributes, ['NAME', 'VALUE', 'QUERYPARAM']);\n addVariableDefinition(parsed, variableAttributes, baseurl);\n }\n break;\n }\n case 'CONTENT-STEERING':\n {\n // #EXT-X-CONTENT-STEERING\n const contentSteeringAttributes = new AttrList(attributes);\n {\n substituteVariablesInAttributes(parsed, contentSteeringAttributes, ['SERVER-URI', 'PATHWAY-ID']);\n }\n parsed.contentSteering = {\n uri: M3U8Parser.resolve(contentSteeringAttributes['SERVER-URI'], baseurl),\n pathwayId: contentSteeringAttributes['PATHWAY-ID'] || '.'\n };\n break;\n }\n case 'START':\n {\n // #EXT-X-START\n parsed.startTimeOffset = parseStartTimeOffset(attributes);\n break;\n }\n }\n }\n }\n // Filter out levels with unknown codecs if it does not remove all levels\n const stripUnknownCodecLevels = levelsWithKnownCodecs.length > 0 && levelsWithKnownCodecs.length < parsed.levels.length;\n parsed.levels = stripUnknownCodecLevels ? levelsWithKnownCodecs : parsed.levels;\n if (parsed.levels.length === 0) {\n parsed.playlistParsingError = new Error('no levels found in manifest');\n }\n return parsed;\n }\n static parseMasterPlaylistMedia(string, baseurl, parsed) {\n let result;\n const results = {};\n const levels = parsed.levels;\n const groupsByType = {\n AUDIO: levels.map(level => ({\n id: level.attrs.AUDIO,\n audioCodec: level.audioCodec\n })),\n SUBTITLES: levels.map(level => ({\n id: level.attrs.SUBTITLES,\n textCodec: level.textCodec\n })),\n 'CLOSED-CAPTIONS': []\n };\n let id = 0;\n MASTER_PLAYLIST_MEDIA_REGEX.lastIndex = 0;\n while ((result = MASTER_PLAYLIST_MEDIA_REGEX.exec(string)) !== null) {\n const attrs = new AttrList(result[1]);\n const type = attrs.TYPE;\n if (type) {\n const groups = groupsByType[type];\n const medias = results[type] || [];\n results[type] = medias;\n {\n substituteVariablesInAttributes(parsed, attrs, ['URI', 'GROUP-ID', 'LANGUAGE', 'ASSOC-LANGUAGE', 'STABLE-RENDITION-ID', 'NAME', 'INSTREAM-ID', 'CHARACTERISTICS', 'CHANNELS']);\n }\n const lang = attrs.LANGUAGE;\n const assocLang = attrs['ASSOC-LANGUAGE'];\n const channels = attrs.CHANNELS;\n const characteristics = attrs.CHARACTERISTICS;\n const instreamId = attrs['INSTREAM-ID'];\n const media = {\n attrs,\n bitrate: 0,\n id: id++,\n groupId: attrs['GROUP-ID'] || '',\n name: attrs.NAME || lang || '',\n type,\n default: attrs.bool('DEFAULT'),\n autoselect: attrs.bool('AUTOSELECT'),\n forced: attrs.bool('FORCED'),\n lang,\n url: attrs.URI ? M3U8Parser.resolve(attrs.URI, baseurl) : ''\n };\n if (assocLang) {\n media.assocLang = assocLang;\n }\n if (channels) {\n media.channels = channels;\n }\n if (characteristics) {\n media.characteristics = characteristics;\n }\n if (instreamId) {\n media.instreamId = instreamId;\n }\n if (groups != null && groups.length) {\n // If there are audio or text groups signalled in the manifest, let's look for a matching codec string for this track\n // If we don't find the track signalled, lets use the first audio groups codec we have\n // Acting as a best guess\n const groupCodec = M3U8Parser.findGroup(groups, media.groupId) || groups[0];\n assignCodec(media, groupCodec, 'audioCodec');\n assignCodec(media, groupCodec, 'textCodec');\n }\n medias.push(media);\n }\n }\n return results;\n }\n static parseLevelPlaylist(string, baseurl, id, type, levelUrlId, multivariantVariableList) {\n const level = new LevelDetails(baseurl);\n const fragments = level.fragments;\n // The most recent init segment seen (applies to all subsequent segments)\n let currentInitSegment = null;\n let currentSN = 0;\n let currentPart = 0;\n let totalduration = 0;\n let discontinuityCounter = 0;\n let prevFrag = null;\n let frag = new Fragment(type, baseurl);\n let result;\n let i;\n let levelkeys;\n let firstPdtIndex = -1;\n let createNextFrag = false;\n let nextByteRange = null;\n LEVEL_PLAYLIST_REGEX_FAST.lastIndex = 0;\n level.m3u8 = string;\n level.hasVariableRefs = hasVariableReferences(string) ;\n while ((result = LEVEL_PLAYLIST_REGEX_FAST.exec(string)) !== null) {\n if (createNextFrag) {\n createNextFrag = false;\n frag = new Fragment(type, baseurl);\n // setup the next fragment for part loading\n frag.start = totalduration;\n frag.sn = currentSN;\n frag.cc = discontinuityCounter;\n frag.level = id;\n if (currentInitSegment) {\n frag.initSegment = currentInitSegment;\n frag.rawProgramDateTime = currentInitSegment.rawProgramDateTime;\n currentInitSegment.rawProgramDateTime = null;\n if (nextByteRange) {\n frag.setByteRange(nextByteRange);\n nextByteRange = null;\n }\n }\n }\n const duration = result[1];\n if (duration) {\n // INF\n frag.duration = parseFloat(duration);\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const title = (' ' + result[2]).slice(1);\n frag.title = title || null;\n frag.tagList.push(title ? ['INF', duration, title] : ['INF', duration]);\n } else if (result[3]) {\n // url\n if (isFiniteNumber(frag.duration)) {\n frag.start = totalduration;\n if (levelkeys) {\n setFragLevelKeys(frag, levelkeys, level);\n }\n frag.sn = currentSN;\n frag.level = id;\n frag.cc = discontinuityCounter;\n fragments.push(frag);\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const uri = (' ' + result[3]).slice(1);\n frag.relurl = substituteVariables(level, uri) ;\n assignProgramDateTime(frag, prevFrag);\n prevFrag = frag;\n totalduration += frag.duration;\n currentSN++;\n currentPart = 0;\n createNextFrag = true;\n }\n } else if (result[4]) {\n // X-BYTERANGE\n const data = (' ' + result[4]).slice(1);\n if (prevFrag) {\n frag.setByteRange(data, prevFrag);\n } else {\n frag.setByteRange(data);\n }\n } else if (result[5]) {\n // PROGRAM-DATE-TIME\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n frag.rawProgramDateTime = (' ' + result[5]).slice(1);\n frag.tagList.push(['PROGRAM-DATE-TIME', frag.rawProgramDateTime]);\n if (firstPdtIndex === -1) {\n firstPdtIndex = fragments.length;\n }\n } else {\n result = result[0].match(LEVEL_PLAYLIST_REGEX_SLOW);\n if (!result) {\n logger.warn('No matches on slow regex match for level playlist!');\n continue;\n }\n for (i = 1; i < result.length; i++) {\n if (typeof result[i] !== 'undefined') {\n break;\n }\n }\n\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const tag = (' ' + result[i]).slice(1);\n const value1 = (' ' + result[i + 1]).slice(1);\n const value2 = result[i + 2] ? (' ' + result[i + 2]).slice(1) : '';\n switch (tag) {\n case 'PLAYLIST-TYPE':\n level.type = value1.toUpperCase();\n break;\n case 'MEDIA-SEQUENCE':\n currentSN = level.startSN = parseInt(value1);\n break;\n case 'SKIP':\n {\n const skipAttrs = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, skipAttrs, ['RECENTLY-REMOVED-DATERANGES']);\n }\n const skippedSegments = skipAttrs.decimalInteger('SKIPPED-SEGMENTS');\n if (isFiniteNumber(skippedSegments)) {\n level.skippedSegments = skippedSegments;\n // This will result in fragments[] containing undefined values, which we will fill in with `mergeDetails`\n for (let _i = skippedSegments; _i--;) {\n fragments.unshift(null);\n }\n currentSN += skippedSegments;\n }\n const recentlyRemovedDateranges = skipAttrs.enumeratedString('RECENTLY-REMOVED-DATERANGES');\n if (recentlyRemovedDateranges) {\n level.recentlyRemovedDateranges = recentlyRemovedDateranges.split('\\t');\n }\n break;\n }\n case 'TARGETDURATION':\n level.targetduration = Math.max(parseInt(value1), 1);\n break;\n case 'VERSION':\n level.version = parseInt(value1);\n break;\n case 'INDEPENDENT-SEGMENTS':\n case 'EXTM3U':\n break;\n case 'ENDLIST':\n level.live = false;\n break;\n case '#':\n if (value1 || value2) {\n frag.tagList.push(value2 ? [value1, value2] : [value1]);\n }\n break;\n case 'DISCONTINUITY':\n discontinuityCounter++;\n frag.tagList.push(['DIS']);\n break;\n case 'GAP':\n frag.gap = true;\n frag.tagList.push([tag]);\n break;\n case 'BITRATE':\n frag.tagList.push([tag, value1]);\n break;\n case 'DATERANGE':\n {\n const dateRangeAttr = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, dateRangeAttr, ['ID', 'CLASS', 'START-DATE', 'END-DATE', 'SCTE35-CMD', 'SCTE35-OUT', 'SCTE35-IN']);\n substituteVariablesInAttributes(level, dateRangeAttr, dateRangeAttr.clientAttrs);\n }\n const dateRange = new DateRange(dateRangeAttr, level.dateRanges[dateRangeAttr.ID]);\n if (dateRange.isValid || level.skippedSegments) {\n level.dateRanges[dateRange.id] = dateRange;\n } else {\n logger.warn(`Ignoring invalid DATERANGE tag: \"${value1}\"`);\n }\n // Add to fragment tag list for backwards compatibility (< v1.2.0)\n frag.tagList.push(['EXT-X-DATERANGE', value1]);\n break;\n }\n case 'DEFINE':\n {\n {\n const variableAttributes = new AttrList(value1);\n substituteVariablesInAttributes(level, variableAttributes, ['NAME', 'VALUE', 'IMPORT', 'QUERYPARAM']);\n if ('IMPORT' in variableAttributes) {\n importVariableDefinition(level, variableAttributes, multivariantVariableList);\n } else {\n addVariableDefinition(level, variableAttributes, baseurl);\n }\n }\n break;\n }\n case 'DISCONTINUITY-SEQUENCE':\n discontinuityCounter = parseInt(value1);\n break;\n case 'KEY':\n {\n const levelKey = parseKey(value1, baseurl, level);\n if (levelKey.isSupported()) {\n if (levelKey.method === 'NONE') {\n levelkeys = undefined;\n break;\n }\n if (!levelkeys) {\n levelkeys = {};\n }\n if (levelkeys[levelKey.keyFormat]) {\n levelkeys = _extends({}, levelkeys);\n }\n levelkeys[levelKey.keyFormat] = levelKey;\n } else {\n logger.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: \"${value1}\"`);\n }\n break;\n }\n case 'START':\n level.startTimeOffset = parseStartTimeOffset(value1);\n break;\n case 'MAP':\n {\n const mapAttrs = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, mapAttrs, ['BYTERANGE', 'URI']);\n }\n if (frag.duration) {\n // Initial segment tag is after segment duration tag.\n // #EXTINF: 6.0\n // #EXT-X-MAP:URI=\"init.mp4\n const init = new Fragment(type, baseurl);\n setInitSegment(init, mapAttrs, id, levelkeys);\n currentInitSegment = init;\n frag.initSegment = currentInitSegment;\n if (currentInitSegment.rawProgramDateTime && !frag.rawProgramDateTime) {\n frag.rawProgramDateTime = currentInitSegment.rawProgramDateTime;\n }\n } else {\n // Initial segment tag is before segment duration tag\n // Handle case where EXT-X-MAP is declared after EXT-X-BYTERANGE\n const end = frag.byteRangeEndOffset;\n if (end) {\n const start = frag.byteRangeStartOffset;\n nextByteRange = `${end - start}@${start}`;\n } else {\n nextByteRange = null;\n }\n setInitSegment(frag, mapAttrs, id, levelkeys);\n currentInitSegment = frag;\n createNextFrag = true;\n }\n break;\n }\n case 'SERVER-CONTROL':\n {\n const serverControlAttrs = new AttrList(value1);\n level.canBlockReload = serverControlAttrs.bool('CAN-BLOCK-RELOAD');\n level.canSkipUntil = serverControlAttrs.optionalFloat('CAN-SKIP-UNTIL', 0);\n level.canSkipDateRanges = level.canSkipUntil > 0 && serverControlAttrs.bool('CAN-SKIP-DATERANGES');\n level.partHoldBack = serverControlAttrs.optionalFloat('PART-HOLD-BACK', 0);\n level.holdBack = serverControlAttrs.optionalFloat('HOLD-BACK', 0);\n break;\n }\n case 'PART-INF':\n {\n const partInfAttrs = new AttrList(value1);\n level.partTarget = partInfAttrs.decimalFloatingPoint('PART-TARGET');\n break;\n }\n case 'PART':\n {\n let partList = level.partList;\n if (!partList) {\n partList = level.partList = [];\n }\n const previousFragmentPart = currentPart > 0 ? partList[partList.length - 1] : undefined;\n const index = currentPart++;\n const partAttrs = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, partAttrs, ['BYTERANGE', 'URI']);\n }\n const part = new Part(partAttrs, frag, baseurl, index, previousFragmentPart);\n partList.push(part);\n frag.duration += part.duration;\n break;\n }\n case 'PRELOAD-HINT':\n {\n const preloadHintAttrs = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, preloadHintAttrs, ['URI']);\n }\n level.preloadHint = preloadHintAttrs;\n break;\n }\n case 'RENDITION-REPORT':\n {\n const renditionReportAttrs = new AttrList(value1);\n {\n substituteVariablesInAttributes(level, renditionReportAttrs, ['URI']);\n }\n level.renditionReports = level.renditionReports || [];\n level.renditionReports.push(renditionReportAttrs);\n break;\n }\n default:\n logger.warn(`line parsed but not handled: ${result}`);\n break;\n }\n }\n }\n if (prevFrag && !prevFrag.relurl) {\n fragments.pop();\n totalduration -= prevFrag.duration;\n if (level.partList) {\n level.fragmentHint = prevFrag;\n }\n } else if (level.partList) {\n assignProgramDateTime(frag, prevFrag);\n frag.cc = discontinuityCounter;\n level.fragmentHint = frag;\n if (levelkeys) {\n setFragLevelKeys(frag, levelkeys, level);\n }\n }\n const fragmentLength = fragments.length;\n const firstFragment = fragments[0];\n const lastFragment = fragments[fragmentLength - 1];\n totalduration += level.skippedSegments * level.targetduration;\n if (totalduration > 0 && fragmentLength && lastFragment) {\n level.averagetargetduration = totalduration / fragmentLength;\n const lastSn = lastFragment.sn;\n level.endSN = lastSn !== 'initSegment' ? lastSn : 0;\n if (!level.live) {\n lastFragment.endList = true;\n }\n if (firstFragment) {\n level.startCC = firstFragment.cc;\n }\n } else {\n level.endSN = 0;\n level.startCC = 0;\n }\n if (level.fragmentHint) {\n totalduration += level.fragmentHint.duration;\n }\n level.totalduration = totalduration;\n level.endCC = discontinuityCounter;\n\n /**\n * Backfill any missing PDT values\n * \"If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after\n * one or more Media Segment URIs, the client SHOULD extrapolate\n * backward from that tag (using EXTINF durations and/or media\n * timestamps) to associate dates with those segments.\"\n * We have already extrapolated forward, but all fragments up to the first instance of PDT do not have their PDTs\n * computed.\n */\n if (firstPdtIndex > 0) {\n backfillProgramDateTimes(fragments, firstPdtIndex);\n }\n return level;\n }\n}\nfunction parseKey(keyTagAttributes, baseurl, parsed) {\n var _keyAttrs$METHOD, _keyAttrs$KEYFORMAT;\n // https://tools.ietf.org/html/rfc8216#section-4.3.2.4\n const keyAttrs = new AttrList(keyTagAttributes);\n {\n substituteVariablesInAttributes(parsed, keyAttrs, ['KEYFORMAT', 'KEYFORMATVERSIONS', 'URI', 'IV', 'URI']);\n }\n const decryptmethod = (_keyAttrs$METHOD = keyAttrs.METHOD) != null ? _keyAttrs$METHOD : '';\n const decrypturi = keyAttrs.URI;\n const decryptiv = keyAttrs.hexadecimalInteger('IV');\n const decryptkeyformatversions = keyAttrs.KEYFORMATVERSIONS;\n // From RFC: This attribute is OPTIONAL; its absence indicates an implicit value of \"identity\".\n const decryptkeyformat = (_keyAttrs$KEYFORMAT = keyAttrs.KEYFORMAT) != null ? _keyAttrs$KEYFORMAT : 'identity';\n if (decrypturi && keyAttrs.IV && !decryptiv) {\n logger.error(`Invalid IV: ${keyAttrs.IV}`);\n }\n // If decrypturi is a URI with a scheme, then baseurl will be ignored\n // No uri is allowed when METHOD is NONE\n const resolvedUri = decrypturi ? M3U8Parser.resolve(decrypturi, baseurl) : '';\n const keyFormatVersions = (decryptkeyformatversions ? decryptkeyformatversions : '1').split('/').map(Number).filter(Number.isFinite);\n return new LevelKey(decryptmethod, resolvedUri, decryptkeyformat, keyFormatVersions, decryptiv);\n}\nfunction parseStartTimeOffset(startAttributes) {\n const startAttrs = new AttrList(startAttributes);\n const startTimeOffset = startAttrs.decimalFloatingPoint('TIME-OFFSET');\n if (isFiniteNumber(startTimeOffset)) {\n return startTimeOffset;\n }\n return null;\n}\nfunction setCodecs(codecsAttributeValue, level) {\n let codecs = (codecsAttributeValue || '').split(/[ ,]+/).filter(c => c);\n ['video', 'audio', 'text'].forEach(type => {\n const filtered = codecs.filter(codec => isCodecType(codec, type));\n if (filtered.length) {\n // Comma separated list of all codecs for type\n level[`${type}Codec`] = filtered.join(',');\n // Remove known codecs so that only unknownCodecs are left after iterating through each type\n codecs = codecs.filter(codec => filtered.indexOf(codec) === -1);\n }\n });\n level.unknownCodecs = codecs;\n}\nfunction assignCodec(media, groupItem, codecProperty) {\n const codecValue = groupItem[codecProperty];\n if (codecValue) {\n media[codecProperty] = codecValue;\n }\n}\nfunction backfillProgramDateTimes(fragments, firstPdtIndex) {\n let fragPrev = fragments[firstPdtIndex];\n for (let i = firstPdtIndex; i--;) {\n const frag = fragments[i];\n // Exit on delta-playlist skipped segments\n if (!frag) {\n return;\n }\n frag.programDateTime = fragPrev.programDateTime - frag.duration * 1000;\n fragPrev = frag;\n }\n}\nfunction assignProgramDateTime(frag, prevFrag) {\n if (frag.rawProgramDateTime) {\n frag.programDateTime = Date.parse(frag.rawProgramDateTime);\n } else if (prevFrag != null && prevFrag.programDateTime) {\n frag.programDateTime = prevFrag.endProgramDateTime;\n }\n if (!isFiniteNumber(frag.programDateTime)) {\n frag.programDateTime = null;\n frag.rawProgramDateTime = null;\n }\n}\nfunction setInitSegment(frag, mapAttrs, id, levelkeys) {\n frag.relurl = mapAttrs.URI;\n if (mapAttrs.BYTERANGE) {\n frag.setByteRange(mapAttrs.BYTERANGE);\n }\n frag.level = id;\n frag.sn = 'initSegment';\n if (levelkeys) {\n frag.levelkeys = levelkeys;\n }\n frag.initSegment = null;\n}\nfunction setFragLevelKeys(frag, levelkeys, level) {\n frag.levelkeys = levelkeys;\n const {\n encryptedFragments\n } = level;\n if ((!encryptedFragments.length || encryptedFragments[encryptedFragments.length - 1].levelkeys !== levelkeys) && Object.keys(levelkeys).some(format => levelkeys[format].isCommonEncryption)) {\n encryptedFragments.push(frag);\n }\n}\n\nvar PlaylistContextType = {\n MANIFEST: \"manifest\",\n LEVEL: \"level\",\n AUDIO_TRACK: \"audioTrack\",\n SUBTITLE_TRACK: \"subtitleTrack\"\n};\nvar PlaylistLevelType = {\n MAIN: \"main\",\n AUDIO: \"audio\",\n SUBTITLE: \"subtitle\"\n};\n\nfunction mapContextToLevelType(context) {\n const {\n type\n } = context;\n switch (type) {\n case PlaylistContextType.AUDIO_TRACK:\n return PlaylistLevelType.AUDIO;\n case PlaylistContextType.SUBTITLE_TRACK:\n return PlaylistLevelType.SUBTITLE;\n default:\n return PlaylistLevelType.MAIN;\n }\n}\nfunction getResponseUrl(response, context) {\n let url = response.url;\n // responseURL not supported on some browsers (it is used to detect URL redirection)\n // data-uri mode also not supported (but no need to detect redirection)\n if (url === undefined || url.indexOf('data:') === 0) {\n // fallback to initial URL\n url = context.url;\n }\n return url;\n}\nclass PlaylistLoader {\n constructor(hls) {\n this.hls = void 0;\n this.loaders = Object.create(null);\n this.variableList = null;\n this.hls = hls;\n this.registerListeners();\n }\n startLoad(startPosition) {}\n stopLoad() {\n this.destroyInternalLoaders();\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.on(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n }\n unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.off(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n }\n\n /**\n * Returns defaults or configured loader-type overloads (pLoader and loader config params)\n */\n createInternalLoader(context) {\n const config = this.hls.config;\n const PLoader = config.pLoader;\n const Loader = config.loader;\n const InternalLoader = PLoader || Loader;\n const loader = new InternalLoader(config);\n this.loaders[context.type] = loader;\n return loader;\n }\n getInternalLoader(context) {\n return this.loaders[context.type];\n }\n resetInternalLoader(contextType) {\n if (this.loaders[contextType]) {\n delete this.loaders[contextType];\n }\n }\n\n /**\n * Call `destroy` on all internal loader instances mapped (one per context type)\n */\n destroyInternalLoaders() {\n for (const contextType in this.loaders) {\n const loader = this.loaders[contextType];\n if (loader) {\n loader.destroy();\n }\n this.resetInternalLoader(contextType);\n }\n }\n destroy() {\n this.variableList = null;\n this.unregisterListeners();\n this.destroyInternalLoaders();\n }\n onManifestLoading(event, data) {\n const {\n url\n } = data;\n this.variableList = null;\n this.load({\n id: null,\n level: 0,\n responseType: 'text',\n type: PlaylistContextType.MANIFEST,\n url,\n deliveryDirectives: null\n });\n }\n onLevelLoading(event, data) {\n const {\n id,\n level,\n pathwayId,\n url,\n deliveryDirectives\n } = data;\n this.load({\n id,\n level,\n pathwayId,\n responseType: 'text',\n type: PlaylistContextType.LEVEL,\n url,\n deliveryDirectives\n });\n }\n onAudioTrackLoading(event, data) {\n const {\n id,\n groupId,\n url,\n deliveryDirectives\n } = data;\n this.load({\n id,\n groupId,\n level: null,\n responseType: 'text',\n type: PlaylistContextType.AUDIO_TRACK,\n url,\n deliveryDirectives\n });\n }\n onSubtitleTrackLoading(event, data) {\n const {\n id,\n groupId,\n url,\n deliveryDirectives\n } = data;\n this.load({\n id,\n groupId,\n level: null,\n responseType: 'text',\n type: PlaylistContextType.SUBTITLE_TRACK,\n url,\n deliveryDirectives\n });\n }\n load(context) {\n var _context$deliveryDire;\n const config = this.hls.config;\n\n // logger.debug(`[playlist-loader]: Loading playlist of type ${context.type}, level: ${context.level}, id: ${context.id}`);\n\n // Check if a loader for this context already exists\n let loader = this.getInternalLoader(context);\n if (loader) {\n const loaderContext = loader.context;\n if (loaderContext && loaderContext.url === context.url && loaderContext.level === context.level) {\n // same URL can't overlap\n logger.trace('[playlist-loader]: playlist request ongoing');\n return;\n }\n logger.log(`[playlist-loader]: aborting previous loader for type: ${context.type}`);\n loader.abort();\n }\n\n // apply different configs for retries depending on\n // context (manifest, level, audio/subs playlist)\n let loadPolicy;\n if (context.type === PlaylistContextType.MANIFEST) {\n loadPolicy = config.manifestLoadPolicy.default;\n } else {\n loadPolicy = _extends({}, config.playlistLoadPolicy.default, {\n timeoutRetry: null,\n errorRetry: null\n });\n }\n loader = this.createInternalLoader(context);\n\n // Override level/track timeout for LL-HLS requests\n // (the default of 10000ms is counter productive to blocking playlist reload requests)\n if (isFiniteNumber((_context$deliveryDire = context.deliveryDirectives) == null ? void 0 : _context$deliveryDire.part)) {\n let levelDetails;\n if (context.type === PlaylistContextType.LEVEL && context.level !== null) {\n levelDetails = this.hls.levels[context.level].details;\n } else if (context.type === PlaylistContextType.AUDIO_TRACK && context.id !== null) {\n levelDetails = this.hls.audioTracks[context.id].details;\n } else if (context.type === PlaylistContextType.SUBTITLE_TRACK && context.id !== null) {\n levelDetails = this.hls.subtitleTracks[context.id].details;\n }\n if (levelDetails) {\n const partTarget = levelDetails.partTarget;\n const targetDuration = levelDetails.targetduration;\n if (partTarget && targetDuration) {\n const maxLowLatencyPlaylistRefresh = Math.max(partTarget * 3, targetDuration * 0.8) * 1000;\n loadPolicy = _extends({}, loadPolicy, {\n maxTimeToFirstByteMs: Math.min(maxLowLatencyPlaylistRefresh, loadPolicy.maxTimeToFirstByteMs),\n maxLoadTimeMs: Math.min(maxLowLatencyPlaylistRefresh, loadPolicy.maxTimeToFirstByteMs)\n });\n }\n }\n }\n const legacyRetryCompatibility = loadPolicy.errorRetry || loadPolicy.timeoutRetry || {};\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: legacyRetryCompatibility.maxNumRetry || 0,\n retryDelay: legacyRetryCompatibility.retryDelayMs || 0,\n maxRetryDelay: legacyRetryCompatibility.maxRetryDelayMs || 0\n };\n const loaderCallbacks = {\n onSuccess: (response, stats, context, networkDetails) => {\n const loader = this.getInternalLoader(context);\n this.resetInternalLoader(context.type);\n const string = response.data;\n\n // Validate if it is an M3U8 at all\n if (string.indexOf('#EXTM3U') !== 0) {\n this.handleManifestParsingError(response, context, new Error('no EXTM3U delimiter'), networkDetails || null, stats);\n return;\n }\n stats.parsing.start = performance.now();\n if (M3U8Parser.isMediaPlaylist(string)) {\n this.handleTrackOrLevelPlaylist(response, stats, context, networkDetails || null, loader);\n } else {\n this.handleMasterPlaylist(response, stats, context, networkDetails);\n }\n },\n onError: (response, context, networkDetails, stats) => {\n this.handleNetworkError(context, networkDetails, false, response, stats);\n },\n onTimeout: (stats, context, networkDetails) => {\n this.handleNetworkError(context, networkDetails, true, undefined, stats);\n }\n };\n\n // logger.debug(`[playlist-loader]: Calling internal loader delegate for URL: ${context.url}`);\n\n loader.load(context, loaderConfig, loaderCallbacks);\n }\n handleMasterPlaylist(response, stats, context, networkDetails) {\n const hls = this.hls;\n const string = response.data;\n const url = getResponseUrl(response, context);\n const parsedResult = M3U8Parser.parseMasterPlaylist(string, url);\n if (parsedResult.playlistParsingError) {\n this.handleManifestParsingError(response, context, parsedResult.playlistParsingError, networkDetails, stats);\n return;\n }\n const {\n contentSteering,\n levels,\n sessionData,\n sessionKeys,\n startTimeOffset,\n variableList\n } = parsedResult;\n this.variableList = variableList;\n const {\n AUDIO: audioTracks = [],\n SUBTITLES: subtitles,\n 'CLOSED-CAPTIONS': captions\n } = M3U8Parser.parseMasterPlaylistMedia(string, url, parsedResult);\n if (audioTracks.length) {\n // check if we have found an audio track embedded in main playlist (audio track without URI attribute)\n const embeddedAudioFound = audioTracks.some(audioTrack => !audioTrack.url);\n\n // if no embedded audio track defined, but audio codec signaled in quality level,\n // we need to signal this main audio track this could happen with playlists with\n // alt audio rendition in which quality levels (main)\n // contains both audio+video. but with mixed audio track not signaled\n if (!embeddedAudioFound && levels[0].audioCodec && !levels[0].attrs.AUDIO) {\n logger.log('[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one');\n audioTracks.unshift({\n type: 'main',\n name: 'main',\n groupId: 'main',\n default: false,\n autoselect: false,\n forced: false,\n id: -1,\n attrs: new AttrList({}),\n bitrate: 0,\n url: ''\n });\n }\n }\n hls.trigger(Events.MANIFEST_LOADED, {\n levels,\n audioTracks,\n subtitles,\n captions,\n contentSteering,\n url,\n stats,\n networkDetails,\n sessionData,\n sessionKeys,\n startTimeOffset,\n variableList\n });\n }\n handleTrackOrLevelPlaylist(response, stats, context, networkDetails, loader) {\n const hls = this.hls;\n const {\n id,\n level,\n type\n } = context;\n const url = getResponseUrl(response, context);\n const levelUrlId = 0;\n const levelId = isFiniteNumber(level) ? level : isFiniteNumber(id) ? id : 0;\n const levelType = mapContextToLevelType(context);\n const levelDetails = M3U8Parser.parseLevelPlaylist(response.data, url, levelId, levelType, levelUrlId, this.variableList);\n\n // We have done our first request (Manifest-type) and receive\n // not a master playlist but a chunk-list (track/level)\n // We fire the manifest-loaded event anyway with the parsed level-details\n // by creating a single-level structure for it.\n if (type === PlaylistContextType.MANIFEST) {\n const singleLevel = {\n attrs: new AttrList({}),\n bitrate: 0,\n details: levelDetails,\n name: '',\n url\n };\n hls.trigger(Events.MANIFEST_LOADED, {\n levels: [singleLevel],\n audioTracks: [],\n url,\n stats,\n networkDetails,\n sessionData: null,\n sessionKeys: null,\n contentSteering: null,\n startTimeOffset: null,\n variableList: null\n });\n }\n\n // save parsing time\n stats.parsing.end = performance.now();\n\n // extend the context with the new levelDetails property\n context.levelDetails = levelDetails;\n this.handlePlaylistLoaded(levelDetails, response, stats, context, networkDetails, loader);\n }\n handleManifestParsingError(response, context, error, networkDetails, stats) {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.MANIFEST_PARSING_ERROR,\n fatal: context.type === PlaylistContextType.MANIFEST,\n url: response.url,\n err: error,\n error,\n reason: error.message,\n response,\n context,\n networkDetails,\n stats\n });\n }\n handleNetworkError(context, networkDetails, timeout = false, response, stats) {\n let message = `A network ${timeout ? 'timeout' : 'error' + (response ? ' (status ' + response.code + ')' : '')} occurred while loading ${context.type}`;\n if (context.type === PlaylistContextType.LEVEL) {\n message += `: ${context.level} id: ${context.id}`;\n } else if (context.type === PlaylistContextType.AUDIO_TRACK || context.type === PlaylistContextType.SUBTITLE_TRACK) {\n message += ` id: ${context.id} group-id: \"${context.groupId}\"`;\n }\n const error = new Error(message);\n logger.warn(`[playlist-loader]: ${message}`);\n let details = ErrorDetails.UNKNOWN;\n let fatal = false;\n const loader = this.getInternalLoader(context);\n switch (context.type) {\n case PlaylistContextType.MANIFEST:\n details = timeout ? ErrorDetails.MANIFEST_LOAD_TIMEOUT : ErrorDetails.MANIFEST_LOAD_ERROR;\n fatal = true;\n break;\n case PlaylistContextType.LEVEL:\n details = timeout ? ErrorDetails.LEVEL_LOAD_TIMEOUT : ErrorDetails.LEVEL_LOAD_ERROR;\n fatal = false;\n break;\n case PlaylistContextType.AUDIO_TRACK:\n details = timeout ? ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT : ErrorDetails.AUDIO_TRACK_LOAD_ERROR;\n fatal = false;\n break;\n case PlaylistContextType.SUBTITLE_TRACK:\n details = timeout ? ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT : ErrorDetails.SUBTITLE_LOAD_ERROR;\n fatal = false;\n break;\n }\n if (loader) {\n this.resetInternalLoader(context.type);\n }\n const errorData = {\n type: ErrorTypes.NETWORK_ERROR,\n details,\n fatal,\n url: context.url,\n loader,\n context,\n error,\n networkDetails,\n stats\n };\n if (response) {\n const url = (networkDetails == null ? void 0 : networkDetails.url) || context.url;\n errorData.response = _objectSpread2({\n url,\n data: undefined\n }, response);\n }\n this.hls.trigger(Events.ERROR, errorData);\n }\n handlePlaylistLoaded(levelDetails, response, stats, context, networkDetails, loader) {\n const hls = this.hls;\n const {\n type,\n level,\n id,\n groupId,\n deliveryDirectives\n } = context;\n const url = getResponseUrl(response, context);\n const parent = mapContextToLevelType(context);\n const levelIndex = typeof context.level === 'number' && parent === PlaylistLevelType.MAIN ? level : undefined;\n if (!levelDetails.fragments.length) {\n const _error = new Error('No Segments found in Playlist');\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.LEVEL_EMPTY_ERROR,\n fatal: false,\n url,\n error: _error,\n reason: _error.message,\n response,\n context,\n level: levelIndex,\n parent,\n networkDetails,\n stats\n });\n return;\n }\n if (!levelDetails.targetduration) {\n levelDetails.playlistParsingError = new Error('Missing Target Duration');\n }\n const error = levelDetails.playlistParsingError;\n if (error) {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.LEVEL_PARSING_ERROR,\n fatal: false,\n url,\n error,\n reason: error.message,\n response,\n context,\n level: levelIndex,\n parent,\n networkDetails,\n stats\n });\n return;\n }\n if (levelDetails.live && loader) {\n if (loader.getCacheAge) {\n levelDetails.ageHeader = loader.getCacheAge() || 0;\n }\n if (!loader.getCacheAge || isNaN(levelDetails.ageHeader)) {\n levelDetails.ageHeader = 0;\n }\n }\n switch (type) {\n case PlaylistContextType.MANIFEST:\n case PlaylistContextType.LEVEL:\n hls.trigger(Events.LEVEL_LOADED, {\n details: levelDetails,\n level: levelIndex || 0,\n id: id || 0,\n stats,\n networkDetails,\n deliveryDirectives\n });\n break;\n case PlaylistContextType.AUDIO_TRACK:\n hls.trigger(Events.AUDIO_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats,\n networkDetails,\n deliveryDirectives\n });\n break;\n case PlaylistContextType.SUBTITLE_TRACK:\n hls.trigger(Events.SUBTITLE_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats,\n networkDetails,\n deliveryDirectives\n });\n break;\n }\n }\n}\n\nfunction sendAddTrackEvent(track, videoEl) {\n let event;\n try {\n event = new Event('addtrack');\n } catch (err) {\n // for IE11\n event = document.createEvent('Event');\n event.initEvent('addtrack', false, false);\n }\n event.track = track;\n videoEl.dispatchEvent(event);\n}\nfunction addCueToTrack(track, cue) {\n // Sometimes there are cue overlaps on segmented vtts so the same\n // cue can appear more than once in different vtt files.\n // This avoid showing duplicated cues with same timecode and text.\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n if (track.cues && !track.cues.getCueById(cue.id)) {\n try {\n track.addCue(cue);\n if (!track.cues.getCueById(cue.id)) {\n throw new Error(`addCue is failed for: ${cue}`);\n }\n } catch (err) {\n logger.debug(`[texttrack-utils]: ${err}`);\n try {\n const textTrackCue = new self.TextTrackCue(cue.startTime, cue.endTime, cue.text);\n textTrackCue.id = cue.id;\n track.addCue(textTrackCue);\n } catch (err2) {\n logger.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${err2}`);\n }\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\nfunction clearCurrentCues(track) {\n // When track.mode is disabled, track.cues will be null.\n // To guarantee the removal of cues, we need to temporarily\n // change the mode to hidden\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n if (track.cues) {\n for (let i = track.cues.length; i--;) {\n track.removeCue(track.cues[i]);\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\nfunction removeCuesInRange(track, start, end, predicate) {\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n if (track.cues && track.cues.length > 0) {\n const cues = getCuesInRange(track.cues, start, end);\n for (let i = 0; i < cues.length; i++) {\n if (!predicate || predicate(cues[i])) {\n track.removeCue(cues[i]);\n }\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\n\n// Find first cue starting after given time.\n// Modified version of binary search O(log(n)).\nfunction getFirstCueIndexAfterTime(cues, time) {\n // If first cue starts after time, start there\n if (time < cues[0].startTime) {\n return 0;\n }\n // If the last cue ends before time there is no overlap\n const len = cues.length - 1;\n if (time > cues[len].endTime) {\n return -1;\n }\n let left = 0;\n let right = len;\n while (left <= right) {\n const mid = Math.floor((right + left) / 2);\n if (time < cues[mid].startTime) {\n right = mid - 1;\n } else if (time > cues[mid].startTime && left < len) {\n left = mid + 1;\n } else {\n // If it's not lower or higher, it must be equal.\n return mid;\n }\n }\n // At this point, left and right have swapped.\n // No direct match was found, left or right element must be the closest. Check which one has the smallest diff.\n return cues[left].startTime - time < time - cues[right].startTime ? left : right;\n}\nfunction getCuesInRange(cues, start, end) {\n const cuesFound = [];\n const firstCueInRange = getFirstCueIndexAfterTime(cues, start);\n if (firstCueInRange > -1) {\n for (let i = firstCueInRange, len = cues.length; i < len; i++) {\n const cue = cues[i];\n if (cue.startTime >= start && cue.endTime <= end) {\n cuesFound.push(cue);\n } else if (cue.startTime > end) {\n return cuesFound;\n }\n }\n }\n return cuesFound;\n}\nfunction filterSubtitleTracks(textTrackList) {\n const tracks = [];\n for (let i = 0; i < textTrackList.length; i++) {\n const track = textTrackList[i];\n // Edge adds a track without a label; we don't want to use it\n if ((track.kind === 'subtitles' || track.kind === 'captions') && track.label) {\n tracks.push(textTrackList[i]);\n }\n }\n return tracks;\n}\n\nvar MetadataSchema = {\n audioId3: \"org.id3\",\n dateRange: \"com.apple.quicktime.HLS\",\n emsg: \"https://aomedia.org/emsg/ID3\"\n};\n\nconst MIN_CUE_DURATION = 0.25;\nfunction getCueClass() {\n if (typeof self === 'undefined') return undefined;\n return self.VTTCue || self.TextTrackCue;\n}\nfunction createCueWithDataFields(Cue, startTime, endTime, data, type) {\n let cue = new Cue(startTime, endTime, '');\n try {\n cue.value = data;\n if (type) {\n cue.type = type;\n }\n } catch (e) {\n cue = new Cue(startTime, endTime, JSON.stringify(type ? _objectSpread2({\n type\n }, data) : data));\n }\n return cue;\n}\n\n// VTTCue latest draft allows an infinite duration, fallback\n// to MAX_VALUE if necessary\nconst MAX_CUE_ENDTIME = (() => {\n const Cue = getCueClass();\n try {\n Cue && new Cue(0, Number.POSITIVE_INFINITY, '');\n } catch (e) {\n return Number.MAX_VALUE;\n }\n return Number.POSITIVE_INFINITY;\n})();\nfunction dateRangeDateToTimelineSeconds(date, offset) {\n return date.getTime() / 1000 - offset;\n}\nfunction hexToArrayBuffer(str) {\n return Uint8Array.from(str.replace(/^0x/, '').replace(/([\\da-fA-F]{2}) ?/g, '0x$1 ').replace(/ +$/, '').split(' ')).buffer;\n}\nclass ID3TrackController {\n constructor(hls) {\n this.hls = void 0;\n this.id3Track = null;\n this.media = null;\n this.dateRangeCuesAppended = {};\n this.hls = hls;\n this._registerListeners();\n }\n destroy() {\n this._unregisterListeners();\n this.id3Track = null;\n this.media = null;\n this.dateRangeCuesAppended = {};\n // @ts-ignore\n this.hls = null;\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n\n // Add ID3 metatadata text track.\n onMediaAttached(event, data) {\n this.media = data.media;\n }\n onMediaDetaching() {\n if (!this.id3Track) {\n return;\n }\n clearCurrentCues(this.id3Track);\n this.id3Track = null;\n this.media = null;\n this.dateRangeCuesAppended = {};\n }\n onManifestLoading() {\n this.dateRangeCuesAppended = {};\n }\n createTrack(media) {\n const track = this.getID3Track(media.textTracks);\n track.mode = 'hidden';\n return track;\n }\n getID3Track(textTracks) {\n if (!this.media) {\n return;\n }\n for (let i = 0; i < textTracks.length; i++) {\n const textTrack = textTracks[i];\n if (textTrack.kind === 'metadata' && textTrack.label === 'id3') {\n // send 'addtrack' when reusing the textTrack for metadata,\n // same as what we do for captions\n sendAddTrackEvent(textTrack, this.media);\n return textTrack;\n }\n }\n return this.media.addTextTrack('metadata', 'id3');\n }\n onFragParsingMetadata(event, data) {\n if (!this.media) {\n return;\n }\n const {\n hls: {\n config: {\n enableEmsgMetadataCues,\n enableID3MetadataCues\n }\n }\n } = this;\n if (!enableEmsgMetadataCues && !enableID3MetadataCues) {\n return;\n }\n const {\n samples\n } = data;\n\n // create track dynamically\n if (!this.id3Track) {\n this.id3Track = this.createTrack(this.media);\n }\n const Cue = getCueClass();\n if (!Cue) {\n return;\n }\n for (let i = 0; i < samples.length; i++) {\n const type = samples[i].type;\n if (type === MetadataSchema.emsg && !enableEmsgMetadataCues || !enableID3MetadataCues) {\n continue;\n }\n const frames = getID3Frames(samples[i].data);\n if (frames) {\n const startTime = samples[i].pts;\n let endTime = startTime + samples[i].duration;\n if (endTime > MAX_CUE_ENDTIME) {\n endTime = MAX_CUE_ENDTIME;\n }\n const timeDiff = endTime - startTime;\n if (timeDiff <= 0) {\n endTime = startTime + MIN_CUE_DURATION;\n }\n for (let j = 0; j < frames.length; j++) {\n const frame = frames[j];\n // Safari doesn't put the timestamp frame in the TextTrack\n if (!isTimeStampFrame(frame)) {\n // add a bounds to any unbounded cues\n this.updateId3CueEnds(startTime, type);\n const cue = createCueWithDataFields(Cue, startTime, endTime, frame, type);\n if (cue) {\n this.id3Track.addCue(cue);\n }\n }\n }\n }\n }\n }\n updateId3CueEnds(startTime, type) {\n var _this$id3Track;\n const cues = (_this$id3Track = this.id3Track) == null ? void 0 : _this$id3Track.cues;\n if (cues) {\n for (let i = cues.length; i--;) {\n const cue = cues[i];\n if (cue.type === type && cue.startTime < startTime && cue.endTime === MAX_CUE_ENDTIME) {\n cue.endTime = startTime;\n }\n }\n }\n }\n onBufferFlushing(event, {\n startOffset,\n endOffset,\n type\n }) {\n const {\n id3Track,\n hls\n } = this;\n if (!hls) {\n return;\n }\n const {\n config: {\n enableEmsgMetadataCues,\n enableID3MetadataCues\n }\n } = hls;\n if (id3Track && (enableEmsgMetadataCues || enableID3MetadataCues)) {\n let predicate;\n if (type === 'audio') {\n predicate = cue => cue.type === MetadataSchema.audioId3 && enableID3MetadataCues;\n } else if (type === 'video') {\n predicate = cue => cue.type === MetadataSchema.emsg && enableEmsgMetadataCues;\n } else {\n predicate = cue => cue.type === MetadataSchema.audioId3 && enableID3MetadataCues || cue.type === MetadataSchema.emsg && enableEmsgMetadataCues;\n }\n removeCuesInRange(id3Track, startOffset, endOffset, predicate);\n }\n }\n onLevelUpdated(event, {\n details\n }) {\n if (!this.media || !details.hasProgramDateTime || !this.hls.config.enableDateRangeMetadataCues) {\n return;\n }\n const {\n dateRangeCuesAppended,\n id3Track\n } = this;\n const {\n dateRanges\n } = details;\n const ids = Object.keys(dateRanges);\n // Remove cues from track not found in details.dateRanges\n if (id3Track) {\n const idsToRemove = Object.keys(dateRangeCuesAppended).filter(id => !ids.includes(id));\n for (let i = idsToRemove.length; i--;) {\n const id = idsToRemove[i];\n Object.keys(dateRangeCuesAppended[id].cues).forEach(key => {\n id3Track.removeCue(dateRangeCuesAppended[id].cues[key]);\n });\n delete dateRangeCuesAppended[id];\n }\n }\n // Exit if the playlist does not have Date Ranges or does not have Program Date Time\n const lastFragment = details.fragments[details.fragments.length - 1];\n if (ids.length === 0 || !isFiniteNumber(lastFragment == null ? void 0 : lastFragment.programDateTime)) {\n return;\n }\n if (!this.id3Track) {\n this.id3Track = this.createTrack(this.media);\n }\n const dateTimeOffset = lastFragment.programDateTime / 1000 - lastFragment.start;\n const Cue = getCueClass();\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n const dateRange = dateRanges[id];\n const startTime = dateRangeDateToTimelineSeconds(dateRange.startDate, dateTimeOffset);\n\n // Process DateRanges to determine end-time (known DURATION, END-DATE, or END-ON-NEXT)\n const appendedDateRangeCues = dateRangeCuesAppended[id];\n const cues = (appendedDateRangeCues == null ? void 0 : appendedDateRangeCues.cues) || {};\n let durationKnown = (appendedDateRangeCues == null ? void 0 : appendedDateRangeCues.durationKnown) || false;\n let endTime = MAX_CUE_ENDTIME;\n const endDate = dateRange.endDate;\n if (endDate) {\n endTime = dateRangeDateToTimelineSeconds(endDate, dateTimeOffset);\n durationKnown = true;\n } else if (dateRange.endOnNext && !durationKnown) {\n const nextDateRangeWithSameClass = ids.reduce((candidateDateRange, id) => {\n if (id !== dateRange.id) {\n const otherDateRange = dateRanges[id];\n if (otherDateRange.class === dateRange.class && otherDateRange.startDate > dateRange.startDate && (!candidateDateRange || dateRange.startDate < candidateDateRange.startDate)) {\n return otherDateRange;\n }\n }\n return candidateDateRange;\n }, null);\n if (nextDateRangeWithSameClass) {\n endTime = dateRangeDateToTimelineSeconds(nextDateRangeWithSameClass.startDate, dateTimeOffset);\n durationKnown = true;\n }\n }\n\n // Create TextTrack Cues for each MetadataGroup Item (select DateRange attribute)\n // This is to emulate Safari HLS playback handling of DateRange tags\n const attributes = Object.keys(dateRange.attr);\n for (let j = 0; j < attributes.length; j++) {\n const key = attributes[j];\n if (!isDateRangeCueAttribute(key)) {\n continue;\n }\n const cue = cues[key];\n if (cue) {\n if (durationKnown && !appendedDateRangeCues.durationKnown) {\n cue.endTime = endTime;\n }\n } else if (Cue) {\n let data = dateRange.attr[key];\n if (isSCTE35Attribute(key)) {\n data = hexToArrayBuffer(data);\n }\n const _cue = createCueWithDataFields(Cue, startTime, endTime, {\n key,\n data\n }, MetadataSchema.dateRange);\n if (_cue) {\n _cue.id = id;\n this.id3Track.addCue(_cue);\n cues[key] = _cue;\n }\n }\n }\n\n // Keep track of processed DateRanges by ID for updating cues with new DateRange tag attributes\n dateRangeCuesAppended[id] = {\n cues,\n dateRange,\n durationKnown\n };\n }\n }\n}\n\nclass LatencyController {\n constructor(hls) {\n this.hls = void 0;\n this.config = void 0;\n this.media = null;\n this.levelDetails = null;\n this.currentTime = 0;\n this.stallCount = 0;\n this._latency = null;\n this.timeupdateHandler = () => this.timeupdate();\n this.hls = hls;\n this.config = hls.config;\n this.registerListeners();\n }\n get latency() {\n return this._latency || 0;\n }\n get maxLatency() {\n const {\n config,\n levelDetails\n } = this;\n if (config.liveMaxLatencyDuration !== undefined) {\n return config.liveMaxLatencyDuration;\n }\n return levelDetails ? config.liveMaxLatencyDurationCount * levelDetails.targetduration : 0;\n }\n get targetLatency() {\n const {\n levelDetails\n } = this;\n if (levelDetails === null) {\n return null;\n }\n const {\n holdBack,\n partHoldBack,\n targetduration\n } = levelDetails;\n const {\n liveSyncDuration,\n liveSyncDurationCount,\n lowLatencyMode\n } = this.config;\n const userConfig = this.hls.userConfig;\n let targetLatency = lowLatencyMode ? partHoldBack || holdBack : holdBack;\n if (userConfig.liveSyncDuration || userConfig.liveSyncDurationCount || targetLatency === 0) {\n targetLatency = liveSyncDuration !== undefined ? liveSyncDuration : liveSyncDurationCount * targetduration;\n }\n const maxLiveSyncOnStallIncrease = targetduration;\n const liveSyncOnStallIncrease = 1.0;\n return targetLatency + Math.min(this.stallCount * liveSyncOnStallIncrease, maxLiveSyncOnStallIncrease);\n }\n get liveSyncPosition() {\n const liveEdge = this.estimateLiveEdge();\n const targetLatency = this.targetLatency;\n const levelDetails = this.levelDetails;\n if (liveEdge === null || targetLatency === null || levelDetails === null) {\n return null;\n }\n const edge = levelDetails.edge;\n const syncPosition = liveEdge - targetLatency - this.edgeStalled;\n const min = edge - levelDetails.totalduration;\n const max = edge - (this.config.lowLatencyMode && levelDetails.partTarget || levelDetails.targetduration);\n return Math.min(Math.max(min, syncPosition), max);\n }\n get drift() {\n const {\n levelDetails\n } = this;\n if (levelDetails === null) {\n return 1;\n }\n return levelDetails.drift;\n }\n get edgeStalled() {\n const {\n levelDetails\n } = this;\n if (levelDetails === null) {\n return 0;\n }\n const maxLevelUpdateAge = (this.config.lowLatencyMode && levelDetails.partTarget || levelDetails.targetduration) * 3;\n return Math.max(levelDetails.age - maxLevelUpdateAge, 0);\n }\n get forwardBufferLength() {\n const {\n media,\n levelDetails\n } = this;\n if (!media || !levelDetails) {\n return 0;\n }\n const bufferedRanges = media.buffered.length;\n return (bufferedRanges ? media.buffered.end(bufferedRanges - 1) : levelDetails.edge) - this.currentTime;\n }\n destroy() {\n this.unregisterListeners();\n this.onMediaDetaching();\n this.levelDetails = null;\n // @ts-ignore\n this.hls = this.timeupdateHandler = null;\n }\n registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n this.hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n this.hls.on(Events.ERROR, this.onError, this);\n }\n unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n this.hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n this.hls.off(Events.ERROR, this.onError, this);\n }\n onMediaAttached(event, data) {\n this.media = data.media;\n this.media.addEventListener('timeupdate', this.timeupdateHandler);\n }\n onMediaDetaching() {\n if (this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n this.media = null;\n }\n }\n onManifestLoading() {\n this.levelDetails = null;\n this._latency = null;\n this.stallCount = 0;\n }\n onLevelUpdated(event, {\n details\n }) {\n this.levelDetails = details;\n if (details.advanced) {\n this.timeupdate();\n }\n if (!details.live && this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n }\n }\n onError(event, data) {\n var _this$levelDetails;\n if (data.details !== ErrorDetails.BUFFER_STALLED_ERROR) {\n return;\n }\n this.stallCount++;\n if ((_this$levelDetails = this.levelDetails) != null && _this$levelDetails.live) {\n logger.warn('[playback-rate-controller]: Stall detected, adjusting target latency');\n }\n }\n timeupdate() {\n const {\n media,\n levelDetails\n } = this;\n if (!media || !levelDetails) {\n return;\n }\n this.currentTime = media.currentTime;\n const latency = this.computeLatency();\n if (latency === null) {\n return;\n }\n this._latency = latency;\n\n // Adapt playbackRate to meet target latency in low-latency mode\n const {\n lowLatencyMode,\n maxLiveSyncPlaybackRate\n } = this.config;\n if (!lowLatencyMode || maxLiveSyncPlaybackRate === 1 || !levelDetails.live) {\n return;\n }\n const targetLatency = this.targetLatency;\n if (targetLatency === null) {\n return;\n }\n const distanceFromTarget = latency - targetLatency;\n // Only adjust playbackRate when within one target duration of targetLatency\n // and more than one second from under-buffering.\n // Playback further than one target duration from target can be considered DVR playback.\n const liveMinLatencyDuration = Math.min(this.maxLatency, targetLatency + levelDetails.targetduration);\n const inLiveRange = distanceFromTarget < liveMinLatencyDuration;\n if (inLiveRange && distanceFromTarget > 0.05 && this.forwardBufferLength > 1) {\n const max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));\n const rate = Math.round(2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled)) * 20) / 20;\n media.playbackRate = Math.min(max, Math.max(1, rate));\n } else if (media.playbackRate !== 1 && media.playbackRate !== 0) {\n media.playbackRate = 1;\n }\n }\n estimateLiveEdge() {\n const {\n levelDetails\n } = this;\n if (levelDetails === null) {\n return null;\n }\n return levelDetails.edge + levelDetails.age;\n }\n computeLatency() {\n const liveEdge = this.estimateLiveEdge();\n if (liveEdge === null) {\n return null;\n }\n return liveEdge - this.currentTime;\n }\n}\n\nconst HdcpLevels = ['NONE', 'TYPE-0', 'TYPE-1', null];\nfunction isHdcpLevel(value) {\n return HdcpLevels.indexOf(value) > -1;\n}\nconst VideoRangeValues = ['SDR', 'PQ', 'HLG'];\nfunction isVideoRange(value) {\n return !!value && VideoRangeValues.indexOf(value) > -1;\n}\nvar HlsSkip = {\n No: \"\",\n Yes: \"YES\",\n v2: \"v2\"\n};\nfunction getSkipValue(details) {\n const {\n canSkipUntil,\n canSkipDateRanges,\n age\n } = details;\n // A Client SHOULD NOT request a Playlist Delta Update unless it already\n // has a version of the Playlist that is no older than one-half of the Skip Boundary.\n // @see: https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-6.3.7\n const playlistRecentEnough = age < canSkipUntil / 2;\n if (canSkipUntil && playlistRecentEnough) {\n if (canSkipDateRanges) {\n return HlsSkip.v2;\n }\n return HlsSkip.Yes;\n }\n return HlsSkip.No;\n}\nclass HlsUrlParameters {\n constructor(msn, part, skip) {\n this.msn = void 0;\n this.part = void 0;\n this.skip = void 0;\n this.msn = msn;\n this.part = part;\n this.skip = skip;\n }\n addDirectives(uri) {\n const url = new self.URL(uri);\n if (this.msn !== undefined) {\n url.searchParams.set('_HLS_msn', this.msn.toString());\n }\n if (this.part !== undefined) {\n url.searchParams.set('_HLS_part', this.part.toString());\n }\n if (this.skip) {\n url.searchParams.set('_HLS_skip', this.skip);\n }\n return url.href;\n }\n}\nclass Level {\n constructor(data) {\n this._attrs = void 0;\n this.audioCodec = void 0;\n this.bitrate = void 0;\n this.codecSet = void 0;\n this.url = void 0;\n this.frameRate = void 0;\n this.height = void 0;\n this.id = void 0;\n this.name = void 0;\n this.videoCodec = void 0;\n this.width = void 0;\n this.details = void 0;\n this.fragmentError = 0;\n this.loadError = 0;\n this.loaded = void 0;\n this.realBitrate = 0;\n this.supportedPromise = void 0;\n this.supportedResult = void 0;\n this._avgBitrate = 0;\n this._audioGroups = void 0;\n this._subtitleGroups = void 0;\n // Deprecated (retained for backwards compatibility)\n this._urlId = 0;\n this.url = [data.url];\n this._attrs = [data.attrs];\n this.bitrate = data.bitrate;\n if (data.details) {\n this.details = data.details;\n }\n this.id = data.id || 0;\n this.name = data.name;\n this.width = data.width || 0;\n this.height = data.height || 0;\n this.frameRate = data.attrs.optionalFloat('FRAME-RATE', 0);\n this._avgBitrate = data.attrs.decimalInteger('AVERAGE-BANDWIDTH');\n this.audioCodec = data.audioCodec;\n this.videoCodec = data.videoCodec;\n this.codecSet = [data.videoCodec, data.audioCodec].filter(c => !!c).map(s => s.substring(0, 4)).join(',');\n this.addGroupId('audio', data.attrs.AUDIO);\n this.addGroupId('text', data.attrs.SUBTITLES);\n }\n get maxBitrate() {\n return Math.max(this.realBitrate, this.bitrate);\n }\n get averageBitrate() {\n return this._avgBitrate || this.realBitrate || this.bitrate;\n }\n get attrs() {\n return this._attrs[0];\n }\n get codecs() {\n return this.attrs.CODECS || '';\n }\n get pathwayId() {\n return this.attrs['PATHWAY-ID'] || '.';\n }\n get videoRange() {\n return this.attrs['VIDEO-RANGE'] || 'SDR';\n }\n get score() {\n return this.attrs.optionalFloat('SCORE', 0);\n }\n get uri() {\n return this.url[0] || '';\n }\n hasAudioGroup(groupId) {\n return hasGroup(this._audioGroups, groupId);\n }\n hasSubtitleGroup(groupId) {\n return hasGroup(this._subtitleGroups, groupId);\n }\n get audioGroups() {\n return this._audioGroups;\n }\n get subtitleGroups() {\n return this._subtitleGroups;\n }\n addGroupId(type, groupId) {\n if (!groupId) {\n return;\n }\n if (type === 'audio') {\n let audioGroups = this._audioGroups;\n if (!audioGroups) {\n audioGroups = this._audioGroups = [];\n }\n if (audioGroups.indexOf(groupId) === -1) {\n audioGroups.push(groupId);\n }\n } else if (type === 'text') {\n let subtitleGroups = this._subtitleGroups;\n if (!subtitleGroups) {\n subtitleGroups = this._subtitleGroups = [];\n }\n if (subtitleGroups.indexOf(groupId) === -1) {\n subtitleGroups.push(groupId);\n }\n }\n }\n\n // Deprecated methods (retained for backwards compatibility)\n get urlId() {\n return 0;\n }\n set urlId(value) {}\n get audioGroupIds() {\n return this.audioGroups ? [this.audioGroupId] : undefined;\n }\n get textGroupIds() {\n return this.subtitleGroups ? [this.textGroupId] : undefined;\n }\n get audioGroupId() {\n var _this$audioGroups;\n return (_this$audioGroups = this.audioGroups) == null ? void 0 : _this$audioGroups[0];\n }\n get textGroupId() {\n var _this$subtitleGroups;\n return (_this$subtitleGroups = this.subtitleGroups) == null ? void 0 : _this$subtitleGroups[0];\n }\n addFallback() {}\n}\nfunction hasGroup(groups, groupId) {\n if (!groupId || !groups) {\n return false;\n }\n return groups.indexOf(groupId) !== -1;\n}\n\nfunction updateFromToPTS(fragFrom, fragTo) {\n const fragToPTS = fragTo.startPTS;\n // if we know startPTS[toIdx]\n if (isFiniteNumber(fragToPTS)) {\n // update fragment duration.\n // it helps to fix drifts between playlist reported duration and fragment real duration\n let duration = 0;\n let frag;\n if (fragTo.sn > fragFrom.sn) {\n duration = fragToPTS - fragFrom.start;\n frag = fragFrom;\n } else {\n duration = fragFrom.start - fragToPTS;\n frag = fragTo;\n }\n if (frag.duration !== duration) {\n frag.duration = duration;\n }\n // we dont know startPTS[toIdx]\n } else if (fragTo.sn > fragFrom.sn) {\n const contiguous = fragFrom.cc === fragTo.cc;\n // TODO: With part-loading end/durations we need to confirm the whole fragment is loaded before using (or setting) minEndPTS\n if (contiguous && fragFrom.minEndPTS) {\n fragTo.start = fragFrom.start + (fragFrom.minEndPTS - fragFrom.start);\n } else {\n fragTo.start = fragFrom.start + fragFrom.duration;\n }\n } else {\n fragTo.start = Math.max(fragFrom.start - fragTo.duration, 0);\n }\n}\nfunction updateFragPTSDTS(details, frag, startPTS, endPTS, startDTS, endDTS) {\n const parsedMediaDuration = endPTS - startPTS;\n if (parsedMediaDuration <= 0) {\n logger.warn('Fragment should have a positive duration', frag);\n endPTS = startPTS + frag.duration;\n endDTS = startDTS + frag.duration;\n }\n let maxStartPTS = startPTS;\n let minEndPTS = endPTS;\n const fragStartPts = frag.startPTS;\n const fragEndPts = frag.endPTS;\n if (isFiniteNumber(fragStartPts)) {\n // delta PTS between audio and video\n const deltaPTS = Math.abs(fragStartPts - startPTS);\n if (!isFiniteNumber(frag.deltaPTS)) {\n frag.deltaPTS = deltaPTS;\n } else {\n frag.deltaPTS = Math.max(deltaPTS, frag.deltaPTS);\n }\n maxStartPTS = Math.max(startPTS, fragStartPts);\n startPTS = Math.min(startPTS, fragStartPts);\n startDTS = Math.min(startDTS, frag.startDTS);\n minEndPTS = Math.min(endPTS, fragEndPts);\n endPTS = Math.max(endPTS, fragEndPts);\n endDTS = Math.max(endDTS, frag.endDTS);\n }\n const drift = startPTS - frag.start;\n if (frag.start !== 0) {\n frag.start = startPTS;\n }\n frag.duration = endPTS - frag.start;\n frag.startPTS = startPTS;\n frag.maxStartPTS = maxStartPTS;\n frag.startDTS = startDTS;\n frag.endPTS = endPTS;\n frag.minEndPTS = minEndPTS;\n frag.endDTS = endDTS;\n const sn = frag.sn; // 'initSegment'\n // exit if sn out of range\n if (!details || sn < details.startSN || sn > details.endSN) {\n return 0;\n }\n let i;\n const fragIdx = sn - details.startSN;\n const fragments = details.fragments;\n // update frag reference in fragments array\n // rationale is that fragments array might not contain this frag object.\n // this will happen if playlist has been refreshed between frag loading and call to updateFragPTSDTS()\n // if we don't update frag, we won't be able to propagate PTS info on the playlist\n // resulting in invalid sliding computation\n fragments[fragIdx] = frag;\n // adjust fragment PTS/duration from seqnum-1 to frag 0\n for (i = fragIdx; i > 0; i--) {\n updateFromToPTS(fragments[i], fragments[i - 1]);\n }\n\n // adjust fragment PTS/duration from seqnum to last frag\n for (i = fragIdx; i < fragments.length - 1; i++) {\n updateFromToPTS(fragments[i], fragments[i + 1]);\n }\n if (details.fragmentHint) {\n updateFromToPTS(fragments[fragments.length - 1], details.fragmentHint);\n }\n details.PTSKnown = details.alignedSliding = true;\n return drift;\n}\nfunction mergeDetails(oldDetails, newDetails) {\n // Track the last initSegment processed. Initialize it to the last one on the timeline.\n let currentInitSegment = null;\n const oldFragments = oldDetails.fragments;\n for (let i = oldFragments.length - 1; i >= 0; i--) {\n const oldInit = oldFragments[i].initSegment;\n if (oldInit) {\n currentInitSegment = oldInit;\n break;\n }\n }\n if (oldDetails.fragmentHint) {\n // prevent PTS and duration from being adjusted on the next hint\n delete oldDetails.fragmentHint.endPTS;\n }\n // check if old/new playlists have fragments in common\n // loop through overlapping SN and update startPTS, cc, and duration if any found\n let PTSFrag;\n mapFragmentIntersection(oldDetails, newDetails, (oldFrag, newFrag, newFragIndex, newFragments) => {\n if (newDetails.skippedSegments) {\n if (newFrag.cc !== oldFrag.cc) {\n const ccOffset = oldFrag.cc - newFrag.cc;\n for (let i = newFragIndex; i < newFragments.length; i++) {\n newFragments[i].cc += ccOffset;\n }\n }\n }\n if (isFiniteNumber(oldFrag.startPTS) && isFiniteNumber(oldFrag.endPTS)) {\n newFrag.start = newFrag.startPTS = oldFrag.startPTS;\n newFrag.startDTS = oldFrag.startDTS;\n newFrag.maxStartPTS = oldFrag.maxStartPTS;\n newFrag.endPTS = oldFrag.endPTS;\n newFrag.endDTS = oldFrag.endDTS;\n newFrag.minEndPTS = oldFrag.minEndPTS;\n newFrag.duration = oldFrag.endPTS - oldFrag.startPTS;\n if (newFrag.duration) {\n PTSFrag = newFrag;\n }\n\n // PTS is known when any segment has startPTS and endPTS\n newDetails.PTSKnown = newDetails.alignedSliding = true;\n }\n newFrag.elementaryStreams = oldFrag.elementaryStreams;\n newFrag.loader = oldFrag.loader;\n newFrag.stats = oldFrag.stats;\n if (oldFrag.initSegment) {\n newFrag.initSegment = oldFrag.initSegment;\n currentInitSegment = oldFrag.initSegment;\n }\n });\n const newFragments = newDetails.fragments;\n if (currentInitSegment) {\n const fragmentsToCheck = newDetails.fragmentHint ? newFragments.concat(newDetails.fragmentHint) : newFragments;\n fragmentsToCheck.forEach(frag => {\n var _currentInitSegment;\n if (frag && (!frag.initSegment || frag.initSegment.relurl === ((_currentInitSegment = currentInitSegment) == null ? void 0 : _currentInitSegment.relurl))) {\n frag.initSegment = currentInitSegment;\n }\n });\n }\n if (newDetails.skippedSegments) {\n newDetails.deltaUpdateFailed = newFragments.some(frag => !frag);\n if (newDetails.deltaUpdateFailed) {\n logger.warn('[level-helper] Previous playlist missing segments skipped in delta playlist');\n for (let i = newDetails.skippedSegments; i--;) {\n newFragments.shift();\n }\n newDetails.startSN = newFragments[0].sn;\n } else {\n if (newDetails.canSkipDateRanges) {\n newDetails.dateRanges = mergeDateRanges(oldDetails.dateRanges, newDetails.dateRanges, newDetails.recentlyRemovedDateranges);\n }\n }\n newDetails.startCC = newDetails.fragments[0].cc;\n newDetails.endCC = newFragments[newFragments.length - 1].cc;\n }\n\n // Merge parts\n mapPartIntersection(oldDetails.partList, newDetails.partList, (oldPart, newPart) => {\n newPart.elementaryStreams = oldPart.elementaryStreams;\n newPart.stats = oldPart.stats;\n });\n\n // if at least one fragment contains PTS info, recompute PTS information for all fragments\n if (PTSFrag) {\n updateFragPTSDTS(newDetails, PTSFrag, PTSFrag.startPTS, PTSFrag.endPTS, PTSFrag.startDTS, PTSFrag.endDTS);\n } else {\n // ensure that delta is within oldFragments range\n // also adjust sliding in case delta is 0 (we could have old=[50-60] and new=old=[50-61])\n // in that case we also need to adjust start offset of all fragments\n adjustSliding(oldDetails, newDetails);\n }\n if (newFragments.length) {\n newDetails.totalduration = newDetails.edge - newFragments[0].start;\n }\n newDetails.driftStartTime = oldDetails.driftStartTime;\n newDetails.driftStart = oldDetails.driftStart;\n const advancedDateTime = newDetails.advancedDateTime;\n if (newDetails.advanced && advancedDateTime) {\n const edge = newDetails.edge;\n if (!newDetails.driftStart) {\n newDetails.driftStartTime = advancedDateTime;\n newDetails.driftStart = edge;\n }\n newDetails.driftEndTime = advancedDateTime;\n newDetails.driftEnd = edge;\n } else {\n newDetails.driftEndTime = oldDetails.driftEndTime;\n newDetails.driftEnd = oldDetails.driftEnd;\n newDetails.advancedDateTime = oldDetails.advancedDateTime;\n }\n}\nfunction mergeDateRanges(oldDateRanges, deltaDateRanges, recentlyRemovedDateranges) {\n const dateRanges = _extends({}, oldDateRanges);\n if (recentlyRemovedDateranges) {\n recentlyRemovedDateranges.forEach(id => {\n delete dateRanges[id];\n });\n }\n Object.keys(deltaDateRanges).forEach(id => {\n const dateRange = new DateRange(deltaDateRanges[id].attr, dateRanges[id]);\n if (dateRange.isValid) {\n dateRanges[id] = dateRange;\n } else {\n logger.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: \"${JSON.stringify(deltaDateRanges[id].attr)}\"`);\n }\n });\n return dateRanges;\n}\nfunction mapPartIntersection(oldParts, newParts, intersectionFn) {\n if (oldParts && newParts) {\n let delta = 0;\n for (let i = 0, len = oldParts.length; i <= len; i++) {\n const oldPart = oldParts[i];\n const newPart = newParts[i + delta];\n if (oldPart && newPart && oldPart.index === newPart.index && oldPart.fragment.sn === newPart.fragment.sn) {\n intersectionFn(oldPart, newPart);\n } else {\n delta--;\n }\n }\n }\n}\nfunction mapFragmentIntersection(oldDetails, newDetails, intersectionFn) {\n const skippedSegments = newDetails.skippedSegments;\n const start = Math.max(oldDetails.startSN, newDetails.startSN) - newDetails.startSN;\n const end = (oldDetails.fragmentHint ? 1 : 0) + (skippedSegments ? newDetails.endSN : Math.min(oldDetails.endSN, newDetails.endSN)) - newDetails.startSN;\n const delta = newDetails.startSN - oldDetails.startSN;\n const newFrags = newDetails.fragmentHint ? newDetails.fragments.concat(newDetails.fragmentHint) : newDetails.fragments;\n const oldFrags = oldDetails.fragmentHint ? oldDetails.fragments.concat(oldDetails.fragmentHint) : oldDetails.fragments;\n for (let i = start; i <= end; i++) {\n const oldFrag = oldFrags[delta + i];\n let newFrag = newFrags[i];\n if (skippedSegments && !newFrag && i < skippedSegments) {\n // Fill in skipped segments in delta playlist\n newFrag = newDetails.fragments[i] = oldFrag;\n }\n if (oldFrag && newFrag) {\n intersectionFn(oldFrag, newFrag, i, newFrags);\n }\n }\n}\nfunction adjustSliding(oldDetails, newDetails) {\n const delta = newDetails.startSN + newDetails.skippedSegments - oldDetails.startSN;\n const oldFragments = oldDetails.fragments;\n if (delta < 0 || delta >= oldFragments.length) {\n return;\n }\n addSliding(newDetails, oldFragments[delta].start);\n}\nfunction addSliding(details, start) {\n if (start) {\n const fragments = details.fragments;\n for (let i = details.skippedSegments; i < fragments.length; i++) {\n fragments[i].start += start;\n }\n if (details.fragmentHint) {\n details.fragmentHint.start += start;\n }\n }\n}\nfunction computeReloadInterval(newDetails, distanceToLiveEdgeMs = Infinity) {\n let reloadInterval = 1000 * newDetails.targetduration;\n if (newDetails.updated) {\n // Use last segment duration when shorter than target duration and near live edge\n const fragments = newDetails.fragments;\n const liveEdgeMaxTargetDurations = 4;\n if (fragments.length && reloadInterval * liveEdgeMaxTargetDurations > distanceToLiveEdgeMs) {\n const lastSegmentDuration = fragments[fragments.length - 1].duration * 1000;\n if (lastSegmentDuration < reloadInterval) {\n reloadInterval = lastSegmentDuration;\n }\n }\n } else {\n // estimate = 'miss half average';\n // follow HLS Spec, If the client reloads a Playlist file and finds that it has not\n // changed then it MUST wait for a period of one-half the target\n // duration before retrying.\n reloadInterval /= 2;\n }\n return Math.round(reloadInterval);\n}\nfunction getFragmentWithSN(level, sn, fragCurrent) {\n if (!(level != null && level.details)) {\n return null;\n }\n const levelDetails = level.details;\n let fragment = levelDetails.fragments[sn - levelDetails.startSN];\n if (fragment) {\n return fragment;\n }\n fragment = levelDetails.fragmentHint;\n if (fragment && fragment.sn === sn) {\n return fragment;\n }\n if (sn < levelDetails.startSN && fragCurrent && fragCurrent.sn === sn) {\n return fragCurrent;\n }\n return null;\n}\nfunction getPartWith(level, sn, partIndex) {\n var _level$details;\n if (!(level != null && level.details)) {\n return null;\n }\n return findPart((_level$details = level.details) == null ? void 0 : _level$details.partList, sn, partIndex);\n}\nfunction findPart(partList, sn, partIndex) {\n if (partList) {\n for (let i = partList.length; i--;) {\n const part = partList[i];\n if (part.index === partIndex && part.fragment.sn === sn) {\n return part;\n }\n }\n }\n return null;\n}\nfunction reassignFragmentLevelIndexes(levels) {\n levels.forEach((level, index) => {\n const {\n details\n } = level;\n if (details != null && details.fragments) {\n details.fragments.forEach(fragment => {\n fragment.level = index;\n });\n }\n });\n}\n\nfunction isTimeoutError(error) {\n switch (error.details) {\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n case ErrorDetails.MANIFEST_LOAD_TIMEOUT:\n return true;\n }\n return false;\n}\nfunction getRetryConfig(loadPolicy, error) {\n const isTimeout = isTimeoutError(error);\n return loadPolicy.default[`${isTimeout ? 'timeout' : 'error'}Retry`];\n}\nfunction getRetryDelay(retryConfig, retryCount) {\n // exponential backoff capped to max retry delay\n const backoffFactor = retryConfig.backoff === 'linear' ? 1 : Math.pow(2, retryCount);\n return Math.min(backoffFactor * retryConfig.retryDelayMs, retryConfig.maxRetryDelayMs);\n}\nfunction getLoaderConfigWithoutReties(loderConfig) {\n return _objectSpread2(_objectSpread2({}, loderConfig), {\n errorRetry: null,\n timeoutRetry: null\n });\n}\nfunction shouldRetry(retryConfig, retryCount, isTimeout, loaderResponse) {\n if (!retryConfig) {\n return false;\n }\n const httpStatus = loaderResponse == null ? void 0 : loaderResponse.code;\n const retry = retryCount < retryConfig.maxNumRetry && (retryForHttpStatus(httpStatus) || !!isTimeout);\n return retryConfig.shouldRetry ? retryConfig.shouldRetry(retryConfig, retryCount, isTimeout, loaderResponse, retry) : retry;\n}\nfunction retryForHttpStatus(httpStatus) {\n // Do not retry on status 4xx, status 0 (CORS error), or undefined (decrypt/gap/parse error)\n return httpStatus === 0 && navigator.onLine === false || !!httpStatus && (httpStatus < 400 || httpStatus > 499);\n}\n\nconst BinarySearch = {\n /**\n * Searches for an item in an array which matches a certain condition.\n * This requires the condition to only match one item in the array,\n * and for the array to be ordered.\n *\n * @param list The array to search.\n * @param comparisonFn\n * Called and provided a candidate item as the first argument.\n * Should return:\n * > -1 if the item should be located at a lower index than the provided item.\n * > 1 if the item should be located at a higher index than the provided item.\n * > 0 if the item is the item you're looking for.\n *\n * @returns the object if found, otherwise returns null\n */\n search: function (list, comparisonFn) {\n let minIndex = 0;\n let maxIndex = list.length - 1;\n let currentIndex = null;\n let currentElement = null;\n while (minIndex <= maxIndex) {\n currentIndex = (minIndex + maxIndex) / 2 | 0;\n currentElement = list[currentIndex];\n const comparisonResult = comparisonFn(currentElement);\n if (comparisonResult > 0) {\n minIndex = currentIndex + 1;\n } else if (comparisonResult < 0) {\n maxIndex = currentIndex - 1;\n } else {\n return currentElement;\n }\n }\n return null;\n }\n};\n\n/**\n * Returns first fragment whose endPdt value exceeds the given PDT, or null.\n * @param fragments - The array of candidate fragments\n * @param PDTValue - The PDT value which must be exceeded\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n */\nfunction findFragmentByPDT(fragments, PDTValue, maxFragLookUpTolerance) {\n if (PDTValue === null || !Array.isArray(fragments) || !fragments.length || !isFiniteNumber(PDTValue)) {\n return null;\n }\n\n // if less than start\n const startPDT = fragments[0].programDateTime;\n if (PDTValue < (startPDT || 0)) {\n return null;\n }\n const endPDT = fragments[fragments.length - 1].endProgramDateTime;\n if (PDTValue >= (endPDT || 0)) {\n return null;\n }\n maxFragLookUpTolerance = maxFragLookUpTolerance || 0;\n for (let seg = 0; seg < fragments.length; ++seg) {\n const frag = fragments[seg];\n if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {\n return frag;\n }\n }\n return null;\n}\n\n/**\n * Finds a fragment based on the SN of the previous fragment; or based on the needs of the current buffer.\n * This method compensates for small buffer gaps by applying a tolerance to the start of any candidate fragment, thus\n * breaking any traps which would cause the same fragment to be continuously selected within a small range.\n * @param fragPrevious - The last frag successfully appended\n * @param fragments - The array of candidate fragments\n * @param bufferEnd - The end of the contiguous buffered range the playhead is currently within\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns a matching fragment or null\n */\nfunction findFragmentByPTS(fragPrevious, fragments, bufferEnd = 0, maxFragLookUpTolerance = 0, nextFragLookupTolerance = 0.005) {\n let fragNext = null;\n if (fragPrevious) {\n fragNext = fragments[fragPrevious.sn - fragments[0].sn + 1] || null;\n // check for buffer-end rounding error\n const bufferEdgeError = fragPrevious.endDTS - bufferEnd;\n if (bufferEdgeError > 0 && bufferEdgeError < 0.0000015) {\n bufferEnd += 0.0000015;\n }\n } else if (bufferEnd === 0 && fragments[0].start === 0) {\n fragNext = fragments[0];\n }\n // Prefer the next fragment if it's within tolerance\n if (fragNext && ((!fragPrevious || fragPrevious.level === fragNext.level) && fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, fragNext) === 0 || fragmentWithinFastStartSwitch(fragNext, fragPrevious, Math.min(nextFragLookupTolerance, maxFragLookUpTolerance)))) {\n return fragNext;\n }\n // We might be seeking past the tolerance so find the best match\n const foundFragment = BinarySearch.search(fragments, fragmentWithinToleranceTest.bind(null, bufferEnd, maxFragLookUpTolerance));\n if (foundFragment && (foundFragment !== fragPrevious || !fragNext)) {\n return foundFragment;\n }\n // If no match was found return the next fragment after fragPrevious, or null\n return fragNext;\n}\nfunction fragmentWithinFastStartSwitch(fragNext, fragPrevious, nextFragLookupTolerance) {\n if (fragPrevious && fragPrevious.start === 0 && fragPrevious.level < fragNext.level && (fragPrevious.endPTS || 0) > 0) {\n const firstDuration = fragPrevious.tagList.reduce((duration, tag) => {\n if (tag[0] === 'INF') {\n duration += parseFloat(tag[1]);\n }\n return duration;\n }, nextFragLookupTolerance);\n return fragNext.start <= firstDuration;\n }\n return false;\n}\n\n/**\n * The test function used by the findFragmentBySn's BinarySearch to look for the best match to the current buffer conditions.\n * @param candidate - The fragment to test\n * @param bufferEnd - The end of the current buffered range the playhead is currently within\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns 0 if it matches, 1 if too low, -1 if too high\n */\nfunction fragmentWithinToleranceTest(bufferEnd = 0, maxFragLookUpTolerance = 0, candidate) {\n // eagerly accept an accurate match (no tolerance)\n if (candidate.start <= bufferEnd && candidate.start + candidate.duration > bufferEnd) {\n return 0;\n }\n // offset should be within fragment boundary - config.maxFragLookUpTolerance\n // this is to cope with situations like\n // bufferEnd = 9.991\n // frag[Ø] : [0,10]\n // frag[1] : [10,20]\n // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n // frag start frag start+duration\n // |-----------------------------|\n // <---> <--->\n // ...--------><-----------------------------><---------....\n // previous frag matching fragment next frag\n // return -1 return 0 return 1\n // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n const candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0));\n if (candidate.start + candidate.duration - candidateLookupTolerance <= bufferEnd) {\n return 1;\n } else if (candidate.start - candidateLookupTolerance > bufferEnd && candidate.start) {\n // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n return -1;\n }\n return 0;\n}\n\n/**\n * The test function used by the findFragmentByPdt's BinarySearch to look for the best match to the current buffer conditions.\n * This function tests the candidate's program date time values, as represented in Unix time\n * @param candidate - The fragment to test\n * @param pdtBufferEnd - The Unix time representing the end of the current buffered range\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns true if contiguous, false otherwise\n */\nfunction pdtWithinToleranceTest(pdtBufferEnd, maxFragLookUpTolerance, candidate) {\n const candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0)) * 1000;\n\n // endProgramDateTime can be null, default to zero\n const endProgramDateTime = candidate.endProgramDateTime || 0;\n return endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;\n}\nfunction findFragWithCC(fragments, cc) {\n return BinarySearch.search(fragments, candidate => {\n if (candidate.cc < cc) {\n return 1;\n } else if (candidate.cc > cc) {\n return -1;\n } else {\n return 0;\n }\n });\n}\n\nvar NetworkErrorAction = {\n DoNothing: 0,\n SendEndCallback: 1,\n SendAlternateToPenaltyBox: 2,\n RemoveAlternatePermanently: 3,\n InsertDiscontinuity: 4,\n RetryRequest: 5\n};\nvar ErrorActionFlags = {\n None: 0,\n MoveAllAlternatesMatchingHost: 1,\n MoveAllAlternatesMatchingHDCP: 2,\n SwitchToSDR: 4\n}; // Reserved for future use\nclass ErrorController {\n constructor(hls) {\n this.hls = void 0;\n this.playlistError = 0;\n this.penalizedRenditions = {};\n this.log = void 0;\n this.warn = void 0;\n this.error = void 0;\n this.hls = hls;\n this.log = logger.log.bind(logger, `[info]:`);\n this.warn = logger.warn.bind(logger, `[warning]:`);\n this.error = logger.error.bind(logger, `[error]:`);\n this.registerListeners();\n }\n registerListeners() {\n const hls = this.hls;\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n unregisterListeners() {\n const hls = this.hls;\n if (!hls) {\n return;\n }\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.ERROR, this.onErrorOut, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n destroy() {\n this.unregisterListeners();\n // @ts-ignore\n this.hls = null;\n this.penalizedRenditions = {};\n }\n startLoad(startPosition) {}\n stopLoad() {\n this.playlistError = 0;\n }\n getVariantLevelIndex(frag) {\n return (frag == null ? void 0 : frag.type) === PlaylistLevelType.MAIN ? frag.level : this.hls.loadLevel;\n }\n onManifestLoading() {\n this.playlistError = 0;\n this.penalizedRenditions = {};\n }\n onLevelUpdated() {\n this.playlistError = 0;\n }\n onError(event, data) {\n var _data$frag, _data$level;\n if (data.fatal) {\n return;\n }\n const hls = this.hls;\n const context = data.context;\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n data.errorAction = this.getFragRetryOrSwitchAction(data);\n return;\n case ErrorDetails.FRAG_PARSING_ERROR:\n // ignore empty segment errors marked as gap\n if ((_data$frag = data.frag) != null && _data$frag.gap) {\n data.errorAction = {\n action: NetworkErrorAction.DoNothing,\n flags: ErrorActionFlags.None\n };\n return;\n }\n // falls through\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_DECRYPT_ERROR:\n {\n // Switch level if possible, otherwise allow retry count to reach max error retries\n data.errorAction = this.getFragRetryOrSwitchAction(data);\n data.errorAction.action = NetworkErrorAction.SendAlternateToPenaltyBox;\n return;\n }\n case ErrorDetails.LEVEL_EMPTY_ERROR:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n {\n var _data$context, _data$context$levelDe;\n // Only retry when empty and live\n const levelIndex = data.parent === PlaylistLevelType.MAIN ? data.level : hls.loadLevel;\n if (data.details === ErrorDetails.LEVEL_EMPTY_ERROR && !!((_data$context = data.context) != null && (_data$context$levelDe = _data$context.levelDetails) != null && _data$context$levelDe.live)) {\n data.errorAction = this.getPlaylistRetryOrSwitchAction(data, levelIndex);\n } else {\n // Escalate to fatal if not retrying or switching\n data.levelRetry = false;\n data.errorAction = this.getLevelSwitchAction(data, levelIndex);\n }\n }\n return;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n if (typeof (context == null ? void 0 : context.level) === 'number') {\n data.errorAction = this.getPlaylistRetryOrSwitchAction(data, context.level);\n }\n return;\n case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:\n case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:\n case ErrorDetails.SUBTITLE_LOAD_ERROR:\n case ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:\n if (context) {\n const level = hls.levels[hls.loadLevel];\n if (level && (context.type === PlaylistContextType.AUDIO_TRACK && level.hasAudioGroup(context.groupId) || context.type === PlaylistContextType.SUBTITLE_TRACK && level.hasSubtitleGroup(context.groupId))) {\n // Perform Pathway switch or Redundant failover if possible for fastest recovery\n // otherwise allow playlist retry count to reach max error retries\n data.errorAction = this.getPlaylistRetryOrSwitchAction(data, hls.loadLevel);\n data.errorAction.action = NetworkErrorAction.SendAlternateToPenaltyBox;\n data.errorAction.flags = ErrorActionFlags.MoveAllAlternatesMatchingHost;\n return;\n }\n }\n return;\n case ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:\n {\n const level = hls.levels[hls.loadLevel];\n const restrictedHdcpLevel = level == null ? void 0 : level.attrs['HDCP-LEVEL'];\n if (restrictedHdcpLevel) {\n data.errorAction = {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.MoveAllAlternatesMatchingHDCP,\n hdcpLevel: restrictedHdcpLevel\n };\n } else {\n this.keySystemError(data);\n }\n }\n return;\n case ErrorDetails.BUFFER_ADD_CODEC_ERROR:\n case ErrorDetails.REMUX_ALLOC_ERROR:\n case ErrorDetails.BUFFER_APPEND_ERROR:\n data.errorAction = this.getLevelSwitchAction(data, (_data$level = data.level) != null ? _data$level : hls.loadLevel);\n return;\n case ErrorDetails.INTERNAL_EXCEPTION:\n case ErrorDetails.BUFFER_APPENDING_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n case ErrorDetails.LEVEL_SWITCH_ERROR:\n case ErrorDetails.BUFFER_STALLED_ERROR:\n case ErrorDetails.BUFFER_SEEK_OVER_HOLE:\n case ErrorDetails.BUFFER_NUDGE_ON_STALL:\n data.errorAction = {\n action: NetworkErrorAction.DoNothing,\n flags: ErrorActionFlags.None\n };\n return;\n }\n if (data.type === ErrorTypes.KEY_SYSTEM_ERROR) {\n this.keySystemError(data);\n }\n }\n keySystemError(data) {\n const levelIndex = this.getVariantLevelIndex(data.frag);\n // Do not retry level. Escalate to fatal if switching levels fails.\n data.levelRetry = false;\n data.errorAction = this.getLevelSwitchAction(data, levelIndex);\n }\n getPlaylistRetryOrSwitchAction(data, levelIndex) {\n const hls = this.hls;\n const retryConfig = getRetryConfig(hls.config.playlistLoadPolicy, data);\n const retryCount = this.playlistError++;\n const retry = shouldRetry(retryConfig, retryCount, isTimeoutError(data), data.response);\n if (retry) {\n return {\n action: NetworkErrorAction.RetryRequest,\n flags: ErrorActionFlags.None,\n retryConfig,\n retryCount\n };\n }\n const errorAction = this.getLevelSwitchAction(data, levelIndex);\n if (retryConfig) {\n errorAction.retryConfig = retryConfig;\n errorAction.retryCount = retryCount;\n }\n return errorAction;\n }\n getFragRetryOrSwitchAction(data) {\n const hls = this.hls;\n // Share fragment error count accross media options (main, audio, subs)\n // This allows for level based rendition switching when media option assets fail\n const variantLevelIndex = this.getVariantLevelIndex(data.frag);\n const level = hls.levels[variantLevelIndex];\n const {\n fragLoadPolicy,\n keyLoadPolicy\n } = hls.config;\n const retryConfig = getRetryConfig(data.details.startsWith('key') ? keyLoadPolicy : fragLoadPolicy, data);\n const fragmentErrors = hls.levels.reduce((acc, level) => acc + level.fragmentError, 0);\n // Switch levels when out of retried or level index out of bounds\n if (level) {\n if (data.details !== ErrorDetails.FRAG_GAP) {\n level.fragmentError++;\n }\n const retry = shouldRetry(retryConfig, fragmentErrors, isTimeoutError(data), data.response);\n if (retry) {\n return {\n action: NetworkErrorAction.RetryRequest,\n flags: ErrorActionFlags.None,\n retryConfig,\n retryCount: fragmentErrors\n };\n }\n }\n // Reach max retry count, or Missing level reference\n // Switch to valid index\n const errorAction = this.getLevelSwitchAction(data, variantLevelIndex);\n // Add retry details to allow skipping of FRAG_PARSING_ERROR\n if (retryConfig) {\n errorAction.retryConfig = retryConfig;\n errorAction.retryCount = fragmentErrors;\n }\n return errorAction;\n }\n getLevelSwitchAction(data, levelIndex) {\n const hls = this.hls;\n if (levelIndex === null || levelIndex === undefined) {\n levelIndex = hls.loadLevel;\n }\n const level = this.hls.levels[levelIndex];\n if (level) {\n var _data$frag2, _data$context2;\n const errorDetails = data.details;\n level.loadError++;\n if (errorDetails === ErrorDetails.BUFFER_APPEND_ERROR) {\n level.fragmentError++;\n }\n // Search for next level to retry\n let nextLevel = -1;\n const {\n levels,\n loadLevel,\n minAutoLevel,\n maxAutoLevel\n } = hls;\n if (!hls.autoLevelEnabled) {\n hls.loadLevel = -1;\n }\n const fragErrorType = (_data$frag2 = data.frag) == null ? void 0 : _data$frag2.type;\n // Find alternate audio codec if available on audio codec error\n const isAudioCodecError = fragErrorType === PlaylistLevelType.AUDIO && errorDetails === ErrorDetails.FRAG_PARSING_ERROR || data.sourceBufferName === 'audio' && (errorDetails === ErrorDetails.BUFFER_ADD_CODEC_ERROR || errorDetails === ErrorDetails.BUFFER_APPEND_ERROR);\n const findAudioCodecAlternate = isAudioCodecError && levels.some(({\n audioCodec\n }) => level.audioCodec !== audioCodec);\n // Find alternate video codec if available on video codec error\n const isVideoCodecError = data.sourceBufferName === 'video' && (errorDetails === ErrorDetails.BUFFER_ADD_CODEC_ERROR || errorDetails === ErrorDetails.BUFFER_APPEND_ERROR);\n const findVideoCodecAlternate = isVideoCodecError && levels.some(({\n codecSet,\n audioCodec\n }) => level.codecSet !== codecSet && level.audioCodec === audioCodec);\n const {\n type: playlistErrorType,\n groupId: playlistErrorGroupId\n } = (_data$context2 = data.context) != null ? _data$context2 : {};\n for (let i = levels.length; i--;) {\n const candidate = (i + loadLevel) % levels.length;\n if (candidate !== loadLevel && candidate >= minAutoLevel && candidate <= maxAutoLevel && levels[candidate].loadError === 0) {\n var _level$audioGroups, _level$subtitleGroups;\n const levelCandidate = levels[candidate];\n // Skip level switch if GAP tag is found in next level at same position\n if (errorDetails === ErrorDetails.FRAG_GAP && fragErrorType === PlaylistLevelType.MAIN && data.frag) {\n const levelDetails = levels[candidate].details;\n if (levelDetails) {\n const fragCandidate = findFragmentByPTS(data.frag, levelDetails.fragments, data.frag.start);\n if (fragCandidate != null && fragCandidate.gap) {\n continue;\n }\n }\n } else if (playlistErrorType === PlaylistContextType.AUDIO_TRACK && levelCandidate.hasAudioGroup(playlistErrorGroupId) || playlistErrorType === PlaylistContextType.SUBTITLE_TRACK && levelCandidate.hasSubtitleGroup(playlistErrorGroupId)) {\n // For audio/subs playlist errors find another group ID or fallthrough to redundant fail-over\n continue;\n } else if (fragErrorType === PlaylistLevelType.AUDIO && (_level$audioGroups = level.audioGroups) != null && _level$audioGroups.some(groupId => levelCandidate.hasAudioGroup(groupId)) || fragErrorType === PlaylistLevelType.SUBTITLE && (_level$subtitleGroups = level.subtitleGroups) != null && _level$subtitleGroups.some(groupId => levelCandidate.hasSubtitleGroup(groupId)) || findAudioCodecAlternate && level.audioCodec === levelCandidate.audioCodec || !findAudioCodecAlternate && level.audioCodec !== levelCandidate.audioCodec || findVideoCodecAlternate && level.codecSet === levelCandidate.codecSet) {\n // For video/audio/subs frag errors find another group ID or fallthrough to redundant fail-over\n continue;\n }\n nextLevel = candidate;\n break;\n }\n }\n if (nextLevel > -1 && hls.loadLevel !== nextLevel) {\n data.levelRetry = true;\n this.playlistError = 0;\n return {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.None,\n nextAutoLevel: nextLevel\n };\n }\n }\n // No levels to switch / Manual level selection / Level not found\n // Resolve with Pathway switch, Redundant fail-over, or stay on lowest Level\n return {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.MoveAllAlternatesMatchingHost\n };\n }\n onErrorOut(event, data) {\n var _data$errorAction;\n switch ((_data$errorAction = data.errorAction) == null ? void 0 : _data$errorAction.action) {\n case NetworkErrorAction.DoNothing:\n break;\n case NetworkErrorAction.SendAlternateToPenaltyBox:\n this.sendAlternateToPenaltyBox(data);\n if (!data.errorAction.resolved && data.details !== ErrorDetails.FRAG_GAP) {\n data.fatal = true;\n } else if (/MediaSource readyState: ended/.test(data.error.message)) {\n this.warn(`MediaSource ended after \"${data.sourceBufferName}\" sourceBuffer append error. Attempting to recover from media error.`);\n this.hls.recoverMediaError();\n }\n break;\n case NetworkErrorAction.RetryRequest:\n // handled by stream and playlist/level controllers\n break;\n }\n if (data.fatal) {\n this.hls.stopLoad();\n return;\n }\n }\n sendAlternateToPenaltyBox(data) {\n const hls = this.hls;\n const errorAction = data.errorAction;\n if (!errorAction) {\n return;\n }\n const {\n flags,\n hdcpLevel,\n nextAutoLevel\n } = errorAction;\n switch (flags) {\n case ErrorActionFlags.None:\n this.switchLevel(data, nextAutoLevel);\n break;\n case ErrorActionFlags.MoveAllAlternatesMatchingHDCP:\n if (hdcpLevel) {\n hls.maxHdcpLevel = HdcpLevels[HdcpLevels.indexOf(hdcpLevel) - 1];\n errorAction.resolved = true;\n }\n this.warn(`Restricting playback to HDCP-LEVEL of \"${hls.maxHdcpLevel}\" or lower`);\n break;\n }\n // If not resolved by previous actions try to switch to next level\n if (!errorAction.resolved) {\n this.switchLevel(data, nextAutoLevel);\n }\n }\n switchLevel(data, levelIndex) {\n if (levelIndex !== undefined && data.errorAction) {\n this.warn(`switching to level ${levelIndex} after ${data.details}`);\n this.hls.nextAutoLevel = levelIndex;\n data.errorAction.resolved = true;\n // Stream controller is responsible for this but won't switch on false start\n this.hls.nextLoadLevel = this.hls.nextAutoLevel;\n }\n }\n}\n\nclass BasePlaylistController {\n constructor(hls, logPrefix) {\n this.hls = void 0;\n this.timer = -1;\n this.requestScheduled = -1;\n this.canLoad = false;\n this.log = void 0;\n this.warn = void 0;\n this.log = logger.log.bind(logger, `${logPrefix}:`);\n this.warn = logger.warn.bind(logger, `${logPrefix}:`);\n this.hls = hls;\n }\n destroy() {\n this.clearTimer();\n // @ts-ignore\n this.hls = this.log = this.warn = null;\n }\n clearTimer() {\n if (this.timer !== -1) {\n self.clearTimeout(this.timer);\n this.timer = -1;\n }\n }\n startLoad() {\n this.canLoad = true;\n this.requestScheduled = -1;\n this.loadPlaylist();\n }\n stopLoad() {\n this.canLoad = false;\n this.clearTimer();\n }\n switchParams(playlistUri, previous, current) {\n const renditionReports = previous == null ? void 0 : previous.renditionReports;\n if (renditionReports) {\n let foundIndex = -1;\n for (let i = 0; i < renditionReports.length; i++) {\n const attr = renditionReports[i];\n let uri;\n try {\n uri = new self.URL(attr.URI, previous.url).href;\n } catch (error) {\n logger.warn(`Could not construct new URL for Rendition Report: ${error}`);\n uri = attr.URI || '';\n }\n // Use exact match. Otherwise, the last partial match, if any, will be used\n // (Playlist URI includes a query string that the Rendition Report does not)\n if (uri === playlistUri) {\n foundIndex = i;\n break;\n } else if (uri === playlistUri.substring(0, uri.length)) {\n foundIndex = i;\n }\n }\n if (foundIndex !== -1) {\n const attr = renditionReports[foundIndex];\n const msn = parseInt(attr['LAST-MSN']) || (previous == null ? void 0 : previous.lastPartSn);\n let part = parseInt(attr['LAST-PART']) || (previous == null ? void 0 : previous.lastPartIndex);\n if (this.hls.config.lowLatencyMode) {\n const currentGoal = Math.min(previous.age - previous.partTarget, previous.targetduration);\n if (part >= 0 && currentGoal > previous.partTarget) {\n part += 1;\n }\n }\n const skip = current && getSkipValue(current);\n return new HlsUrlParameters(msn, part >= 0 ? part : undefined, skip);\n }\n }\n }\n loadPlaylist(hlsUrlParameters) {\n if (this.requestScheduled === -1) {\n this.requestScheduled = self.performance.now();\n }\n // Loading is handled by the subclasses\n }\n shouldLoadPlaylist(playlist) {\n return this.canLoad && !!playlist && !!playlist.url && (!playlist.details || playlist.details.live);\n }\n shouldReloadPlaylist(playlist) {\n return this.timer === -1 && this.requestScheduled === -1 && this.shouldLoadPlaylist(playlist);\n }\n playlistLoaded(index, data, previousDetails) {\n const {\n details,\n stats\n } = data;\n\n // Set last updated date-time\n const now = self.performance.now();\n const elapsed = stats.loading.first ? Math.max(0, now - stats.loading.first) : 0;\n details.advancedDateTime = Date.now() - elapsed;\n\n // if current playlist is a live playlist, arm a timer to reload it\n if (details.live || previousDetails != null && previousDetails.live) {\n details.reloaded(previousDetails);\n if (previousDetails) {\n this.log(`live playlist ${index} ${details.advanced ? 'REFRESHED ' + details.lastPartSn + '-' + details.lastPartIndex : details.updated ? 'UPDATED' : 'MISSED'}`);\n }\n // Merge live playlists to adjust fragment starts and fill in delta playlist skipped segments\n if (previousDetails && details.fragments.length > 0) {\n mergeDetails(previousDetails, details);\n }\n if (!this.canLoad || !details.live) {\n return;\n }\n let deliveryDirectives;\n let msn = undefined;\n let part = undefined;\n if (details.canBlockReload && details.endSN && details.advanced) {\n // Load level with LL-HLS delivery directives\n const lowLatencyMode = this.hls.config.lowLatencyMode;\n const lastPartSn = details.lastPartSn;\n const endSn = details.endSN;\n const lastPartIndex = details.lastPartIndex;\n const hasParts = lastPartIndex !== -1;\n const lastPart = lastPartSn === endSn;\n // When low latency mode is disabled, we'll skip part requests once the last part index is found\n const nextSnStartIndex = lowLatencyMode ? 0 : lastPartIndex;\n if (hasParts) {\n msn = lastPart ? endSn + 1 : lastPartSn;\n part = lastPart ? nextSnStartIndex : lastPartIndex + 1;\n } else {\n msn = endSn + 1;\n }\n // Low-Latency CDN Tune-in: \"age\" header and time since load indicates we're behind by more than one part\n // Update directives to obtain the Playlist that has the estimated additional duration of media\n const lastAdvanced = details.age;\n const cdnAge = lastAdvanced + details.ageHeader;\n let currentGoal = Math.min(cdnAge - details.partTarget, details.targetduration * 1.5);\n if (currentGoal > 0) {\n if (previousDetails && currentGoal > previousDetails.tuneInGoal) {\n // If we attempted to get the next or latest playlist update, but currentGoal increased,\n // then we either can't catchup, or the \"age\" header cannot be trusted.\n this.warn(`CDN Tune-in goal increased from: ${previousDetails.tuneInGoal} to: ${currentGoal} with playlist age: ${details.age}`);\n currentGoal = 0;\n } else {\n const segments = Math.floor(currentGoal / details.targetduration);\n msn += segments;\n if (part !== undefined) {\n const parts = Math.round(currentGoal % details.targetduration / details.partTarget);\n part += parts;\n }\n this.log(`CDN Tune-in age: ${details.ageHeader}s last advanced ${lastAdvanced.toFixed(2)}s goal: ${currentGoal} skip sn ${segments} to part ${part}`);\n }\n details.tuneInGoal = currentGoal;\n }\n deliveryDirectives = this.getDeliveryDirectives(details, data.deliveryDirectives, msn, part);\n if (lowLatencyMode || !lastPart) {\n this.loadPlaylist(deliveryDirectives);\n return;\n }\n } else if (details.canBlockReload || details.canSkipUntil) {\n deliveryDirectives = this.getDeliveryDirectives(details, data.deliveryDirectives, msn, part);\n }\n const bufferInfo = this.hls.mainForwardBufferInfo;\n const position = bufferInfo ? bufferInfo.end - bufferInfo.len : 0;\n const distanceToLiveEdgeMs = (details.edge - position) * 1000;\n const reloadInterval = computeReloadInterval(details, distanceToLiveEdgeMs);\n if (details.updated && now > this.requestScheduled + reloadInterval) {\n this.requestScheduled = stats.loading.start;\n }\n if (msn !== undefined && details.canBlockReload) {\n this.requestScheduled = stats.loading.first + reloadInterval - (details.partTarget * 1000 || 1000);\n } else if (this.requestScheduled === -1 || this.requestScheduled + reloadInterval < now) {\n this.requestScheduled = now;\n } else if (this.requestScheduled - now <= 0) {\n this.requestScheduled += reloadInterval;\n }\n let estimatedTimeUntilUpdate = this.requestScheduled - now;\n estimatedTimeUntilUpdate = Math.max(0, estimatedTimeUntilUpdate);\n this.log(`reload live playlist ${index} in ${Math.round(estimatedTimeUntilUpdate)} ms`);\n // this.log(\n // `live reload ${details.updated ? 'REFRESHED' : 'MISSED'}\n // reload in ${estimatedTimeUntilUpdate / 1000}\n // round trip ${(stats.loading.end - stats.loading.start) / 1000}\n // diff ${\n // (reloadInterval -\n // (estimatedTimeUntilUpdate +\n // stats.loading.end -\n // stats.loading.start)) /\n // 1000\n // }\n // reload interval ${reloadInterval / 1000}\n // target duration ${details.targetduration}\n // distance to edge ${distanceToLiveEdgeMs / 1000}`\n // );\n\n this.timer = self.setTimeout(() => this.loadPlaylist(deliveryDirectives), estimatedTimeUntilUpdate);\n } else {\n this.clearTimer();\n }\n }\n getDeliveryDirectives(details, previousDeliveryDirectives, msn, part) {\n let skip = getSkipValue(details);\n if (previousDeliveryDirectives != null && previousDeliveryDirectives.skip && details.deltaUpdateFailed) {\n msn = previousDeliveryDirectives.msn;\n part = previousDeliveryDirectives.part;\n skip = HlsSkip.No;\n }\n return new HlsUrlParameters(msn, part, skip);\n }\n checkRetry(errorEvent) {\n const errorDetails = errorEvent.details;\n const isTimeout = isTimeoutError(errorEvent);\n const errorAction = errorEvent.errorAction;\n const {\n action,\n retryCount = 0,\n retryConfig\n } = errorAction || {};\n const retry = !!errorAction && !!retryConfig && (action === NetworkErrorAction.RetryRequest || !errorAction.resolved && action === NetworkErrorAction.SendAlternateToPenaltyBox);\n if (retry) {\n var _errorEvent$context;\n this.requestScheduled = -1;\n if (retryCount >= retryConfig.maxNumRetry) {\n return false;\n }\n if (isTimeout && (_errorEvent$context = errorEvent.context) != null && _errorEvent$context.deliveryDirectives) {\n // The LL-HLS request already timed out so retry immediately\n this.warn(`Retrying playlist loading ${retryCount + 1}/${retryConfig.maxNumRetry} after \"${errorDetails}\" without delivery-directives`);\n this.loadPlaylist();\n } else {\n const delay = getRetryDelay(retryConfig, retryCount);\n // Schedule level/track reload\n this.timer = self.setTimeout(() => this.loadPlaylist(), delay);\n this.warn(`Retrying playlist loading ${retryCount + 1}/${retryConfig.maxNumRetry} after \"${errorDetails}\" in ${delay}ms`);\n }\n // `levelRetry = true` used to inform other controllers that a retry is happening\n errorEvent.levelRetry = true;\n errorAction.resolved = true;\n }\n return retry;\n }\n}\n\n/*\n * compute an Exponential Weighted moving average\n * - https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average\n * - heavily inspired from shaka-player\n */\n\nclass EWMA {\n // About half of the estimated value will be from the last |halfLife| samples by weight.\n constructor(halfLife, estimate = 0, weight = 0) {\n this.halfLife = void 0;\n this.alpha_ = void 0;\n this.estimate_ = void 0;\n this.totalWeight_ = void 0;\n this.halfLife = halfLife;\n // Larger values of alpha expire historical data more slowly.\n this.alpha_ = halfLife ? Math.exp(Math.log(0.5) / halfLife) : 0;\n this.estimate_ = estimate;\n this.totalWeight_ = weight;\n }\n sample(weight, value) {\n const adjAlpha = Math.pow(this.alpha_, weight);\n this.estimate_ = value * (1 - adjAlpha) + adjAlpha * this.estimate_;\n this.totalWeight_ += weight;\n }\n getTotalWeight() {\n return this.totalWeight_;\n }\n getEstimate() {\n if (this.alpha_) {\n const zeroFactor = 1 - Math.pow(this.alpha_, this.totalWeight_);\n if (zeroFactor) {\n return this.estimate_ / zeroFactor;\n }\n }\n return this.estimate_;\n }\n}\n\n/*\n * EWMA Bandwidth Estimator\n * - heavily inspired from shaka-player\n * Tracks bandwidth samples and estimates available bandwidth.\n * Based on the minimum of two exponentially-weighted moving averages with\n * different half-lives.\n */\n\nclass EwmaBandWidthEstimator {\n constructor(slow, fast, defaultEstimate, defaultTTFB = 100) {\n this.defaultEstimate_ = void 0;\n this.minWeight_ = void 0;\n this.minDelayMs_ = void 0;\n this.slow_ = void 0;\n this.fast_ = void 0;\n this.defaultTTFB_ = void 0;\n this.ttfb_ = void 0;\n this.defaultEstimate_ = defaultEstimate;\n this.minWeight_ = 0.001;\n this.minDelayMs_ = 50;\n this.slow_ = new EWMA(slow);\n this.fast_ = new EWMA(fast);\n this.defaultTTFB_ = defaultTTFB;\n this.ttfb_ = new EWMA(slow);\n }\n update(slow, fast) {\n const {\n slow_,\n fast_,\n ttfb_\n } = this;\n if (slow_.halfLife !== slow) {\n this.slow_ = new EWMA(slow, slow_.getEstimate(), slow_.getTotalWeight());\n }\n if (fast_.halfLife !== fast) {\n this.fast_ = new EWMA(fast, fast_.getEstimate(), fast_.getTotalWeight());\n }\n if (ttfb_.halfLife !== slow) {\n this.ttfb_ = new EWMA(slow, ttfb_.getEstimate(), ttfb_.getTotalWeight());\n }\n }\n sample(durationMs, numBytes) {\n durationMs = Math.max(durationMs, this.minDelayMs_);\n const numBits = 8 * numBytes;\n // weight is duration in seconds\n const durationS = durationMs / 1000;\n // value is bandwidth in bits/s\n const bandwidthInBps = numBits / durationS;\n this.fast_.sample(durationS, bandwidthInBps);\n this.slow_.sample(durationS, bandwidthInBps);\n }\n sampleTTFB(ttfb) {\n // weight is frequency curve applied to TTFB in seconds\n // (longer times have less weight with expected input under 1 second)\n const seconds = ttfb / 1000;\n const weight = Math.sqrt(2) * Math.exp(-Math.pow(seconds, 2) / 2);\n this.ttfb_.sample(weight, Math.max(ttfb, 5));\n }\n canEstimate() {\n return this.fast_.getTotalWeight() >= this.minWeight_;\n }\n getEstimate() {\n if (this.canEstimate()) {\n // console.log('slow estimate:'+ Math.round(this.slow_.getEstimate()));\n // console.log('fast estimate:'+ Math.round(this.fast_.getEstimate()));\n // Take the minimum of these two estimates. This should have the effect of\n // adapting down quickly, but up more slowly.\n return Math.min(this.fast_.getEstimate(), this.slow_.getEstimate());\n } else {\n return this.defaultEstimate_;\n }\n }\n getEstimateTTFB() {\n if (this.ttfb_.getTotalWeight() >= this.minWeight_) {\n return this.ttfb_.getEstimate();\n } else {\n return this.defaultTTFB_;\n }\n }\n destroy() {}\n}\n\nconst SUPPORTED_INFO_DEFAULT = {\n supported: true,\n configurations: [],\n decodingInfoResults: [{\n supported: true,\n powerEfficient: true,\n smooth: true\n }]\n};\nconst SUPPORTED_INFO_CACHE = {};\nfunction requiresMediaCapabilitiesDecodingInfo(level, audioTracksByGroup, currentVideoRange, currentFrameRate, currentBw, audioPreference) {\n // Only test support when configuration is exceeds minimum options\n const audioGroups = level.audioCodec ? level.audioGroups : null;\n const audioCodecPreference = audioPreference == null ? void 0 : audioPreference.audioCodec;\n const channelsPreference = audioPreference == null ? void 0 : audioPreference.channels;\n const maxChannels = channelsPreference ? parseInt(channelsPreference) : audioCodecPreference ? Infinity : 2;\n let audioChannels = null;\n if (audioGroups != null && audioGroups.length) {\n try {\n if (audioGroups.length === 1 && audioGroups[0]) {\n audioChannels = audioTracksByGroup.groups[audioGroups[0]].channels;\n } else {\n audioChannels = audioGroups.reduce((acc, groupId) => {\n if (groupId) {\n const audioTrackGroup = audioTracksByGroup.groups[groupId];\n if (!audioTrackGroup) {\n throw new Error(`Audio track group ${groupId} not found`);\n }\n // Sum all channel key values\n Object.keys(audioTrackGroup.channels).forEach(key => {\n acc[key] = (acc[key] || 0) + audioTrackGroup.channels[key];\n });\n }\n return acc;\n }, {\n 2: 0\n });\n }\n } catch (error) {\n return true;\n }\n }\n return level.videoCodec !== undefined && (level.width > 1920 && level.height > 1088 || level.height > 1920 && level.width > 1088 || level.frameRate > Math.max(currentFrameRate, 30) || level.videoRange !== 'SDR' && level.videoRange !== currentVideoRange || level.bitrate > Math.max(currentBw, 8e6)) || !!audioChannels && isFiniteNumber(maxChannels) && Object.keys(audioChannels).some(channels => parseInt(channels) > maxChannels);\n}\nfunction getMediaDecodingInfoPromise(level, audioTracksByGroup, mediaCapabilities) {\n const videoCodecs = level.videoCodec;\n const audioCodecs = level.audioCodec;\n if (!videoCodecs || !audioCodecs || !mediaCapabilities) {\n return Promise.resolve(SUPPORTED_INFO_DEFAULT);\n }\n const baseVideoConfiguration = {\n width: level.width,\n height: level.height,\n bitrate: Math.ceil(Math.max(level.bitrate * 0.9, level.averageBitrate)),\n // Assume a framerate of 30fps since MediaCapabilities will not accept Level default of 0.\n framerate: level.frameRate || 30\n };\n const videoRange = level.videoRange;\n if (videoRange !== 'SDR') {\n baseVideoConfiguration.transferFunction = videoRange.toLowerCase();\n }\n const configurations = videoCodecs.split(',').map(videoCodec => ({\n type: 'media-source',\n video: _objectSpread2(_objectSpread2({}, baseVideoConfiguration), {}, {\n contentType: mimeTypeForCodec(videoCodec, 'video')\n })\n }));\n if (audioCodecs && level.audioGroups) {\n level.audioGroups.forEach(audioGroupId => {\n var _audioTracksByGroup$g;\n if (!audioGroupId) {\n return;\n }\n (_audioTracksByGroup$g = audioTracksByGroup.groups[audioGroupId]) == null ? void 0 : _audioTracksByGroup$g.tracks.forEach(audioTrack => {\n if (audioTrack.groupId === audioGroupId) {\n const channels = audioTrack.channels || '';\n const channelsNumber = parseFloat(channels);\n if (isFiniteNumber(channelsNumber) && channelsNumber > 2) {\n configurations.push.apply(configurations, audioCodecs.split(',').map(audioCodec => ({\n type: 'media-source',\n audio: {\n contentType: mimeTypeForCodec(audioCodec, 'audio'),\n channels: '' + channelsNumber\n // spatialRendering:\n // audioCodec === 'ec-3' && channels.indexOf('JOC'),\n }\n })));\n }\n }\n });\n });\n }\n return Promise.all(configurations.map(configuration => {\n // Cache MediaCapabilities promises\n const decodingInfoKey = getMediaDecodingInfoKey(configuration);\n return SUPPORTED_INFO_CACHE[decodingInfoKey] || (SUPPORTED_INFO_CACHE[decodingInfoKey] = mediaCapabilities.decodingInfo(configuration));\n })).then(decodingInfoResults => ({\n supported: !decodingInfoResults.some(info => !info.supported),\n configurations,\n decodingInfoResults\n })).catch(error => ({\n supported: false,\n configurations,\n decodingInfoResults: [],\n error\n }));\n}\nfunction getMediaDecodingInfoKey(config) {\n const {\n audio,\n video\n } = config;\n const mediaConfig = video || audio;\n if (mediaConfig) {\n const codec = mediaConfig.contentType.split('\"')[1];\n if (video) {\n return `r${video.height}x${video.width}f${Math.ceil(video.framerate)}${video.transferFunction || 'sd'}_${codec}_${Math.ceil(video.bitrate / 1e5)}`;\n }\n if (audio) {\n return `c${audio.channels}${audio.spatialRendering ? 's' : 'n'}_${codec}`;\n }\n }\n return '';\n}\n\n/**\n * @returns Whether we can detect and validate HDR capability within the window context\n */\nfunction isHdrSupported() {\n if (typeof matchMedia === 'function') {\n const mediaQueryList = matchMedia('(dynamic-range: high)');\n const badQuery = matchMedia('bad query');\n if (mediaQueryList.media !== badQuery.media) {\n return mediaQueryList.matches === true;\n }\n }\n return false;\n}\n\n/**\n * Sanitizes inputs to return the active video selection options for HDR/SDR.\n * When both inputs are null:\n *\n * `{ preferHDR: false, allowedVideoRanges: [] }`\n *\n * When `currentVideoRange` non-null, maintain the active range:\n *\n * `{ preferHDR: currentVideoRange !== 'SDR', allowedVideoRanges: [currentVideoRange] }`\n *\n * When VideoSelectionOption non-null:\n *\n * - Allow all video ranges if `allowedVideoRanges` unspecified.\n * - If `preferHDR` is non-null use the value to filter `allowedVideoRanges`.\n * - Else check window for HDR support and set `preferHDR` to the result.\n *\n * @param currentVideoRange\n * @param videoPreference\n */\nfunction getVideoSelectionOptions(currentVideoRange, videoPreference) {\n let preferHDR = false;\n let allowedVideoRanges = [];\n if (currentVideoRange) {\n preferHDR = currentVideoRange !== 'SDR';\n allowedVideoRanges = [currentVideoRange];\n }\n if (videoPreference) {\n allowedVideoRanges = videoPreference.allowedVideoRanges || VideoRangeValues.slice(0);\n preferHDR = videoPreference.preferHDR !== undefined ? videoPreference.preferHDR : isHdrSupported();\n if (preferHDR) {\n allowedVideoRanges = allowedVideoRanges.filter(range => range !== 'SDR');\n } else {\n allowedVideoRanges = ['SDR'];\n }\n }\n return {\n preferHDR,\n allowedVideoRanges\n };\n}\n\nfunction getStartCodecTier(codecTiers, currentVideoRange, currentBw, audioPreference, videoPreference) {\n const codecSets = Object.keys(codecTiers);\n const channelsPreference = audioPreference == null ? void 0 : audioPreference.channels;\n const audioCodecPreference = audioPreference == null ? void 0 : audioPreference.audioCodec;\n const preferStereo = channelsPreference && parseInt(channelsPreference) === 2;\n // Use first level set to determine stereo, and minimum resolution and framerate\n let hasStereo = true;\n let hasCurrentVideoRange = false;\n let minHeight = Infinity;\n let minFramerate = Infinity;\n let minBitrate = Infinity;\n let selectedScore = 0;\n let videoRanges = [];\n const {\n preferHDR,\n allowedVideoRanges\n } = getVideoSelectionOptions(currentVideoRange, videoPreference);\n for (let i = codecSets.length; i--;) {\n const tier = codecTiers[codecSets[i]];\n hasStereo = tier.channels[2] > 0;\n minHeight = Math.min(minHeight, tier.minHeight);\n minFramerate = Math.min(minFramerate, tier.minFramerate);\n minBitrate = Math.min(minBitrate, tier.minBitrate);\n const matchingVideoRanges = allowedVideoRanges.filter(range => tier.videoRanges[range] > 0);\n if (matchingVideoRanges.length > 0) {\n hasCurrentVideoRange = true;\n videoRanges = matchingVideoRanges;\n }\n }\n minHeight = isFiniteNumber(minHeight) ? minHeight : 0;\n minFramerate = isFiniteNumber(minFramerate) ? minFramerate : 0;\n const maxHeight = Math.max(1080, minHeight);\n const maxFramerate = Math.max(30, minFramerate);\n minBitrate = isFiniteNumber(minBitrate) ? minBitrate : currentBw;\n currentBw = Math.max(minBitrate, currentBw);\n // If there are no variants with matching preference, set currentVideoRange to undefined\n if (!hasCurrentVideoRange) {\n currentVideoRange = undefined;\n videoRanges = [];\n }\n const codecSet = codecSets.reduce((selected, candidate) => {\n // Remove candiates which do not meet bitrate, default audio, stereo or channels preference, 1080p or lower, 30fps or lower, or SDR/HDR selection if present\n const candidateTier = codecTiers[candidate];\n if (candidate === selected) {\n return selected;\n }\n if (candidateTier.minBitrate > currentBw) {\n logStartCodecCandidateIgnored(candidate, `min bitrate of ${candidateTier.minBitrate} > current estimate of ${currentBw}`);\n return selected;\n }\n if (!candidateTier.hasDefaultAudio) {\n logStartCodecCandidateIgnored(candidate, `no renditions with default or auto-select sound found`);\n return selected;\n }\n if (audioCodecPreference && candidate.indexOf(audioCodecPreference.substring(0, 4)) % 5 !== 0) {\n logStartCodecCandidateIgnored(candidate, `audio codec preference \"${audioCodecPreference}\" not found`);\n return selected;\n }\n if (channelsPreference && !preferStereo) {\n if (!candidateTier.channels[channelsPreference]) {\n logStartCodecCandidateIgnored(candidate, `no renditions with ${channelsPreference} channel sound found (channels options: ${Object.keys(candidateTier.channels)})`);\n return selected;\n }\n } else if ((!audioCodecPreference || preferStereo) && hasStereo && candidateTier.channels['2'] === 0) {\n logStartCodecCandidateIgnored(candidate, `no renditions with stereo sound found`);\n return selected;\n }\n if (candidateTier.minHeight > maxHeight) {\n logStartCodecCandidateIgnored(candidate, `min resolution of ${candidateTier.minHeight} > maximum of ${maxHeight}`);\n return selected;\n }\n if (candidateTier.minFramerate > maxFramerate) {\n logStartCodecCandidateIgnored(candidate, `min framerate of ${candidateTier.minFramerate} > maximum of ${maxFramerate}`);\n return selected;\n }\n if (!videoRanges.some(range => candidateTier.videoRanges[range] > 0)) {\n logStartCodecCandidateIgnored(candidate, `no variants with VIDEO-RANGE of ${JSON.stringify(videoRanges)} found`);\n return selected;\n }\n if (candidateTier.maxScore < selectedScore) {\n logStartCodecCandidateIgnored(candidate, `max score of ${candidateTier.maxScore} < selected max of ${selectedScore}`);\n return selected;\n }\n // Remove candiates with less preferred codecs or more errors\n if (selected && (codecsSetSelectionPreferenceValue(candidate) >= codecsSetSelectionPreferenceValue(selected) || candidateTier.fragmentError > codecTiers[selected].fragmentError)) {\n return selected;\n }\n selectedScore = candidateTier.maxScore;\n return candidate;\n }, undefined);\n return {\n codecSet,\n videoRanges,\n preferHDR,\n minFramerate,\n minBitrate\n };\n}\nfunction logStartCodecCandidateIgnored(codeSet, reason) {\n logger.log(`[abr] start candidates with \"${codeSet}\" ignored because ${reason}`);\n}\nfunction getAudioTracksByGroup(allAudioTracks) {\n return allAudioTracks.reduce((audioTracksByGroup, track) => {\n let trackGroup = audioTracksByGroup.groups[track.groupId];\n if (!trackGroup) {\n trackGroup = audioTracksByGroup.groups[track.groupId] = {\n tracks: [],\n channels: {\n 2: 0\n },\n hasDefault: false,\n hasAutoSelect: false\n };\n }\n trackGroup.tracks.push(track);\n const channelsKey = track.channels || '2';\n trackGroup.channels[channelsKey] = (trackGroup.channels[channelsKey] || 0) + 1;\n trackGroup.hasDefault = trackGroup.hasDefault || track.default;\n trackGroup.hasAutoSelect = trackGroup.hasAutoSelect || track.autoselect;\n if (trackGroup.hasDefault) {\n audioTracksByGroup.hasDefaultAudio = true;\n }\n if (trackGroup.hasAutoSelect) {\n audioTracksByGroup.hasAutoSelectAudio = true;\n }\n return audioTracksByGroup;\n }, {\n hasDefaultAudio: false,\n hasAutoSelectAudio: false,\n groups: {}\n });\n}\nfunction getCodecTiers(levels, audioTracksByGroup, minAutoLevel, maxAutoLevel) {\n return levels.slice(minAutoLevel, maxAutoLevel + 1).reduce((tiers, level) => {\n if (!level.codecSet) {\n return tiers;\n }\n const audioGroups = level.audioGroups;\n let tier = tiers[level.codecSet];\n if (!tier) {\n tiers[level.codecSet] = tier = {\n minBitrate: Infinity,\n minHeight: Infinity,\n minFramerate: Infinity,\n maxScore: 0,\n videoRanges: {\n SDR: 0\n },\n channels: {\n '2': 0\n },\n hasDefaultAudio: !audioGroups,\n fragmentError: 0\n };\n }\n tier.minBitrate = Math.min(tier.minBitrate, level.bitrate);\n const lesserWidthOrHeight = Math.min(level.height, level.width);\n tier.minHeight = Math.min(tier.minHeight, lesserWidthOrHeight);\n tier.minFramerate = Math.min(tier.minFramerate, level.frameRate);\n tier.maxScore = Math.max(tier.maxScore, level.score);\n tier.fragmentError += level.fragmentError;\n tier.videoRanges[level.videoRange] = (tier.videoRanges[level.videoRange] || 0) + 1;\n if (audioGroups) {\n audioGroups.forEach(audioGroupId => {\n if (!audioGroupId) {\n return;\n }\n const audioGroup = audioTracksByGroup.groups[audioGroupId];\n if (!audioGroup) {\n return;\n }\n // Default audio is any group with DEFAULT=YES, or if missing then any group with AUTOSELECT=YES, or all variants\n tier.hasDefaultAudio = tier.hasDefaultAudio || audioTracksByGroup.hasDefaultAudio ? audioGroup.hasDefault : audioGroup.hasAutoSelect || !audioTracksByGroup.hasDefaultAudio && !audioTracksByGroup.hasAutoSelectAudio;\n Object.keys(audioGroup.channels).forEach(channels => {\n tier.channels[channels] = (tier.channels[channels] || 0) + audioGroup.channels[channels];\n });\n });\n }\n return tiers;\n }, {});\n}\nfunction findMatchingOption(option, tracks, matchPredicate) {\n if ('attrs' in option) {\n const index = tracks.indexOf(option);\n if (index !== -1) {\n return index;\n }\n }\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (matchesOption(option, track, matchPredicate)) {\n return i;\n }\n }\n return -1;\n}\nfunction matchesOption(option, track, matchPredicate) {\n const {\n groupId,\n name,\n lang,\n assocLang,\n default: isDefault\n } = option;\n const forced = option.forced;\n return (groupId === undefined || track.groupId === groupId) && (name === undefined || track.name === name) && (lang === undefined || track.lang === lang) && (lang === undefined || track.assocLang === assocLang) && (isDefault === undefined || track.default === isDefault) && (forced === undefined || track.forced === forced) && (!('characteristics' in option) || characteristicsMatch(option.characteristics || '', track.characteristics)) && (matchPredicate === undefined || matchPredicate(option, track));\n}\nfunction characteristicsMatch(characteristicsA, characteristicsB = '') {\n const arrA = characteristicsA.split(',');\n const arrB = characteristicsB.split(',');\n // Expects each item to be unique:\n return arrA.length === arrB.length && !arrA.some(el => arrB.indexOf(el) === -1);\n}\nfunction audioMatchPredicate(option, track) {\n const {\n audioCodec,\n channels\n } = option;\n return (audioCodec === undefined || (track.audioCodec || '').substring(0, 4) === audioCodec.substring(0, 4)) && (channels === undefined || channels === (track.channels || '2'));\n}\nfunction findClosestLevelWithAudioGroup(option, levels, allAudioTracks, searchIndex, matchPredicate) {\n const currentLevel = levels[searchIndex];\n // Are there variants with same URI as current level?\n // If so, find a match that does not require any level URI change\n const variants = levels.reduce((variantMap, level, index) => {\n const uri = level.uri;\n const renditions = variantMap[uri] || (variantMap[uri] = []);\n renditions.push(index);\n return variantMap;\n }, {});\n const renditions = variants[currentLevel.uri];\n if (renditions.length > 1) {\n searchIndex = Math.max.apply(Math, renditions);\n }\n // Find best match\n const currentVideoRange = currentLevel.videoRange;\n const currentFrameRate = currentLevel.frameRate;\n const currentVideoCodec = currentLevel.codecSet.substring(0, 4);\n const matchingVideo = searchDownAndUpList(levels, searchIndex, level => {\n if (level.videoRange !== currentVideoRange || level.frameRate !== currentFrameRate || level.codecSet.substring(0, 4) !== currentVideoCodec) {\n return false;\n }\n const audioGroups = level.audioGroups;\n const tracks = allAudioTracks.filter(track => !audioGroups || audioGroups.indexOf(track.groupId) !== -1);\n return findMatchingOption(option, tracks, matchPredicate) > -1;\n });\n if (matchingVideo > -1) {\n return matchingVideo;\n }\n return searchDownAndUpList(levels, searchIndex, level => {\n const audioGroups = level.audioGroups;\n const tracks = allAudioTracks.filter(track => !audioGroups || audioGroups.indexOf(track.groupId) !== -1);\n return findMatchingOption(option, tracks, matchPredicate) > -1;\n });\n}\nfunction searchDownAndUpList(arr, searchIndex, predicate) {\n for (let i = searchIndex; i > -1; i--) {\n if (predicate(arr[i])) {\n return i;\n }\n }\n for (let i = searchIndex + 1; i < arr.length; i++) {\n if (predicate(arr[i])) {\n return i;\n }\n }\n return -1;\n}\n\nclass AbrController {\n constructor(_hls) {\n this.hls = void 0;\n this.lastLevelLoadSec = 0;\n this.lastLoadedFragLevel = -1;\n this.firstSelection = -1;\n this._nextAutoLevel = -1;\n this.nextAutoLevelKey = '';\n this.audioTracksByGroup = null;\n this.codecTiers = null;\n this.timer = -1;\n this.fragCurrent = null;\n this.partCurrent = null;\n this.bitrateTestDelay = 0;\n this.bwEstimator = void 0;\n /*\n This method monitors the download rate of the current fragment, and will downswitch if that fragment will not load\n quickly enough to prevent underbuffering\n */\n this._abandonRulesCheck = () => {\n const {\n fragCurrent: frag,\n partCurrent: part,\n hls\n } = this;\n const {\n autoLevelEnabled,\n media\n } = hls;\n if (!frag || !media) {\n return;\n }\n const now = performance.now();\n const stats = part ? part.stats : frag.stats;\n const duration = part ? part.duration : frag.duration;\n const timeLoading = now - stats.loading.start;\n const minAutoLevel = hls.minAutoLevel;\n // If frag loading is aborted, complete, or from lowest level, stop timer and return\n if (stats.aborted || stats.loaded && stats.loaded === stats.total || frag.level <= minAutoLevel) {\n this.clearTimer();\n // reset forced auto level value so that next level will be selected\n this._nextAutoLevel = -1;\n return;\n }\n\n // This check only runs if we're in ABR mode and actually playing\n if (!autoLevelEnabled || media.paused || !media.playbackRate || !media.readyState) {\n return;\n }\n const bufferInfo = hls.mainForwardBufferInfo;\n if (bufferInfo === null) {\n return;\n }\n const ttfbEstimate = this.bwEstimator.getEstimateTTFB();\n const playbackRate = Math.abs(media.playbackRate);\n // To maintain stable adaptive playback, only begin monitoring frag loading after half or more of its playback duration has passed\n if (timeLoading <= Math.max(ttfbEstimate, 1000 * (duration / (playbackRate * 2)))) {\n return;\n }\n\n // bufferStarvationDelay is an estimate of the amount time (in seconds) it will take to exhaust the buffer\n const bufferStarvationDelay = bufferInfo.len / playbackRate;\n const ttfb = stats.loading.first ? stats.loading.first - stats.loading.start : -1;\n const loadedFirstByte = stats.loaded && ttfb > -1;\n const bwEstimate = this.getBwEstimate();\n const levels = hls.levels;\n const level = levels[frag.level];\n const expectedLen = stats.total || Math.max(stats.loaded, Math.round(duration * level.averageBitrate / 8));\n let timeStreaming = loadedFirstByte ? timeLoading - ttfb : timeLoading;\n if (timeStreaming < 1 && loadedFirstByte) {\n timeStreaming = Math.min(timeLoading, stats.loaded * 8 / bwEstimate);\n }\n const loadRate = loadedFirstByte ? stats.loaded * 1000 / timeStreaming : 0;\n // fragLoadDelay is an estimate of the time (in seconds) it will take to buffer the remainder of the fragment\n const fragLoadedDelay = loadRate ? (expectedLen - stats.loaded) / loadRate : expectedLen * 8 / bwEstimate + ttfbEstimate / 1000;\n // Only downswitch if the time to finish loading the current fragment is greater than the amount of buffer left\n if (fragLoadedDelay <= bufferStarvationDelay) {\n return;\n }\n const bwe = loadRate ? loadRate * 8 : bwEstimate;\n let fragLevelNextLoadedDelay = Number.POSITIVE_INFINITY;\n let nextLoadLevel;\n // Iterate through lower level and try to find the largest one that avoids rebuffering\n for (nextLoadLevel = frag.level - 1; nextLoadLevel > minAutoLevel; nextLoadLevel--) {\n // compute time to load next fragment at lower level\n // 8 = bits per byte (bps/Bps)\n const levelNextBitrate = levels[nextLoadLevel].maxBitrate;\n fragLevelNextLoadedDelay = this.getTimeToLoadFrag(ttfbEstimate / 1000, bwe, duration * levelNextBitrate, !levels[nextLoadLevel].details);\n if (fragLevelNextLoadedDelay < bufferStarvationDelay) {\n break;\n }\n }\n // Only emergency switch down if it takes less time to load a new fragment at lowest level instead of continuing\n // to load the current one\n if (fragLevelNextLoadedDelay >= fragLoadedDelay) {\n return;\n }\n\n // if estimated load time of new segment is completely unreasonable, ignore and do not emergency switch down\n if (fragLevelNextLoadedDelay > duration * 10) {\n return;\n }\n hls.nextLoadLevel = hls.nextAutoLevel = nextLoadLevel;\n if (loadedFirstByte) {\n // If there has been loading progress, sample bandwidth using loading time offset by minimum TTFB time\n this.bwEstimator.sample(timeLoading - Math.min(ttfbEstimate, ttfb), stats.loaded);\n } else {\n // If there has been no loading progress, sample TTFB\n this.bwEstimator.sampleTTFB(timeLoading);\n }\n const nextLoadLevelBitrate = levels[nextLoadLevel].maxBitrate;\n if (this.getBwEstimate() * this.hls.config.abrBandWidthUpFactor > nextLoadLevelBitrate) {\n this.resetEstimator(nextLoadLevelBitrate);\n }\n this.clearTimer();\n logger.warn(`[abr] Fragment ${frag.sn}${part ? ' part ' + part.index : ''} of level ${frag.level} is loading too slowly;\n Time to underbuffer: ${bufferStarvationDelay.toFixed(3)} s\n Estimated load time for current fragment: ${fragLoadedDelay.toFixed(3)} s\n Estimated load time for down switch fragment: ${fragLevelNextLoadedDelay.toFixed(3)} s\n TTFB estimate: ${ttfb | 0} ms\n Current BW estimate: ${isFiniteNumber(bwEstimate) ? bwEstimate | 0 : 'Unknown'} bps\n New BW estimate: ${this.getBwEstimate() | 0} bps\n Switching to level ${nextLoadLevel} @ ${nextLoadLevelBitrate | 0} bps`);\n hls.trigger(Events.FRAG_LOAD_EMERGENCY_ABORTED, {\n frag,\n part,\n stats\n });\n };\n this.hls = _hls;\n this.bwEstimator = this.initEstimator();\n this.registerListeners();\n }\n resetEstimator(abrEwmaDefaultEstimate) {\n if (abrEwmaDefaultEstimate) {\n logger.log(`setting initial bwe to ${abrEwmaDefaultEstimate}`);\n this.hls.config.abrEwmaDefaultEstimate = abrEwmaDefaultEstimate;\n }\n this.firstSelection = -1;\n this.bwEstimator = this.initEstimator();\n }\n initEstimator() {\n const config = this.hls.config;\n return new EwmaBandWidthEstimator(config.abrEwmaSlowVoD, config.abrEwmaFastVoD, config.abrEwmaDefaultEstimate);\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n unregisterListeners() {\n const {\n hls\n } = this;\n if (!hls) {\n return;\n }\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n destroy() {\n this.unregisterListeners();\n this.clearTimer();\n // @ts-ignore\n this.hls = this._abandonRulesCheck = null;\n this.fragCurrent = this.partCurrent = null;\n }\n onManifestLoading(event, data) {\n this.lastLoadedFragLevel = -1;\n this.firstSelection = -1;\n this.lastLevelLoadSec = 0;\n this.fragCurrent = this.partCurrent = null;\n this.onLevelsUpdated();\n this.clearTimer();\n }\n onLevelsUpdated() {\n if (this.lastLoadedFragLevel > -1 && this.fragCurrent) {\n this.lastLoadedFragLevel = this.fragCurrent.level;\n }\n this._nextAutoLevel = -1;\n this.onMaxAutoLevelUpdated();\n this.codecTiers = null;\n this.audioTracksByGroup = null;\n }\n onMaxAutoLevelUpdated() {\n this.firstSelection = -1;\n this.nextAutoLevelKey = '';\n }\n onFragLoading(event, data) {\n const frag = data.frag;\n if (this.ignoreFragment(frag)) {\n return;\n }\n if (!frag.bitrateTest) {\n var _data$part;\n this.fragCurrent = frag;\n this.partCurrent = (_data$part = data.part) != null ? _data$part : null;\n }\n this.clearTimer();\n this.timer = self.setInterval(this._abandonRulesCheck, 100);\n }\n onLevelSwitching(event, data) {\n this.clearTimer();\n }\n onError(event, data) {\n if (data.fatal) {\n return;\n }\n switch (data.details) {\n case ErrorDetails.BUFFER_ADD_CODEC_ERROR:\n case ErrorDetails.BUFFER_APPEND_ERROR:\n // Reset last loaded level so that a new selection can be made after calling recoverMediaError\n this.lastLoadedFragLevel = -1;\n this.firstSelection = -1;\n break;\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n {\n const frag = data.frag;\n const {\n fragCurrent,\n partCurrent: part\n } = this;\n if (frag && fragCurrent && frag.sn === fragCurrent.sn && frag.level === fragCurrent.level) {\n const now = performance.now();\n const stats = part ? part.stats : frag.stats;\n const timeLoading = now - stats.loading.start;\n const ttfb = stats.loading.first ? stats.loading.first - stats.loading.start : -1;\n const loadedFirstByte = stats.loaded && ttfb > -1;\n if (loadedFirstByte) {\n const ttfbEstimate = this.bwEstimator.getEstimateTTFB();\n this.bwEstimator.sample(timeLoading - Math.min(ttfbEstimate, ttfb), stats.loaded);\n } else {\n this.bwEstimator.sampleTTFB(timeLoading);\n }\n }\n break;\n }\n }\n }\n getTimeToLoadFrag(timeToFirstByteSec, bandwidth, fragSizeBits, isSwitch) {\n const fragLoadSec = timeToFirstByteSec + fragSizeBits / bandwidth;\n const playlistLoadSec = isSwitch ? this.lastLevelLoadSec : 0;\n return fragLoadSec + playlistLoadSec;\n }\n onLevelLoaded(event, data) {\n const config = this.hls.config;\n const {\n loading\n } = data.stats;\n const timeLoadingMs = loading.end - loading.start;\n if (isFiniteNumber(timeLoadingMs)) {\n this.lastLevelLoadSec = timeLoadingMs / 1000;\n }\n if (data.details.live) {\n this.bwEstimator.update(config.abrEwmaSlowLive, config.abrEwmaFastLive);\n } else {\n this.bwEstimator.update(config.abrEwmaSlowVoD, config.abrEwmaFastVoD);\n }\n }\n onFragLoaded(event, {\n frag,\n part\n }) {\n const stats = part ? part.stats : frag.stats;\n if (frag.type === PlaylistLevelType.MAIN) {\n this.bwEstimator.sampleTTFB(stats.loading.first - stats.loading.start);\n }\n if (this.ignoreFragment(frag)) {\n return;\n }\n // stop monitoring bw once frag loaded\n this.clearTimer();\n // reset forced auto level value so that next level will be selected\n if (frag.level === this._nextAutoLevel) {\n this._nextAutoLevel = -1;\n }\n this.firstSelection = -1;\n\n // compute level average bitrate\n if (this.hls.config.abrMaxWithRealBitrate) {\n const duration = part ? part.duration : frag.duration;\n const level = this.hls.levels[frag.level];\n const loadedBytes = (level.loaded ? level.loaded.bytes : 0) + stats.loaded;\n const loadedDuration = (level.loaded ? level.loaded.duration : 0) + duration;\n level.loaded = {\n bytes: loadedBytes,\n duration: loadedDuration\n };\n level.realBitrate = Math.round(8 * loadedBytes / loadedDuration);\n }\n if (frag.bitrateTest) {\n const fragBufferedData = {\n stats,\n frag,\n part,\n id: frag.type\n };\n this.onFragBuffered(Events.FRAG_BUFFERED, fragBufferedData);\n frag.bitrateTest = false;\n } else {\n // store level id after successful fragment load for playback\n this.lastLoadedFragLevel = frag.level;\n }\n }\n onFragBuffered(event, data) {\n const {\n frag,\n part\n } = data;\n const stats = part != null && part.stats.loaded ? part.stats : frag.stats;\n if (stats.aborted) {\n return;\n }\n if (this.ignoreFragment(frag)) {\n return;\n }\n // Use the difference between parsing and request instead of buffering and request to compute fragLoadingProcessing;\n // rationale is that buffer appending only happens once media is attached. This can happen when config.startFragPrefetch\n // is used. If we used buffering in that case, our BW estimate sample will be very large.\n const processingMs = stats.parsing.end - stats.loading.start - Math.min(stats.loading.first - stats.loading.start, this.bwEstimator.getEstimateTTFB());\n this.bwEstimator.sample(processingMs, stats.loaded);\n stats.bwEstimate = this.getBwEstimate();\n if (frag.bitrateTest) {\n this.bitrateTestDelay = processingMs / 1000;\n } else {\n this.bitrateTestDelay = 0;\n }\n }\n ignoreFragment(frag) {\n // Only count non-alt-audio frags which were actually buffered in our BW calculations\n return frag.type !== PlaylistLevelType.MAIN || frag.sn === 'initSegment';\n }\n clearTimer() {\n if (this.timer > -1) {\n self.clearInterval(this.timer);\n this.timer = -1;\n }\n }\n get firstAutoLevel() {\n const {\n maxAutoLevel,\n minAutoLevel\n } = this.hls;\n const bwEstimate = this.getBwEstimate();\n const maxStartDelay = this.hls.config.maxStarvationDelay;\n const abrAutoLevel = this.findBestLevel(bwEstimate, minAutoLevel, maxAutoLevel, 0, maxStartDelay, 1, 1);\n if (abrAutoLevel > -1) {\n return abrAutoLevel;\n }\n const firstLevel = this.hls.firstLevel;\n const clamped = Math.min(Math.max(firstLevel, minAutoLevel), maxAutoLevel);\n logger.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${firstLevel} clamped to ${clamped}`);\n return clamped;\n }\n get forcedAutoLevel() {\n if (this.nextAutoLevelKey) {\n return -1;\n }\n return this._nextAutoLevel;\n }\n\n // return next auto level\n get nextAutoLevel() {\n const forcedAutoLevel = this.forcedAutoLevel;\n const bwEstimator = this.bwEstimator;\n const useEstimate = bwEstimator.canEstimate();\n const loadedFirstFrag = this.lastLoadedFragLevel > -1;\n // in case next auto level has been forced, and bw not available or not reliable, return forced value\n if (forcedAutoLevel !== -1 && (!useEstimate || !loadedFirstFrag || this.nextAutoLevelKey === this.getAutoLevelKey())) {\n return forcedAutoLevel;\n }\n\n // compute next level using ABR logic\n const nextABRAutoLevel = useEstimate && loadedFirstFrag ? this.getNextABRAutoLevel() : this.firstAutoLevel;\n\n // use forced auto level while it hasn't errored more than ABR selection\n if (forcedAutoLevel !== -1) {\n const levels = this.hls.levels;\n if (levels.length > Math.max(forcedAutoLevel, nextABRAutoLevel) && levels[forcedAutoLevel].loadError <= levels[nextABRAutoLevel].loadError) {\n return forcedAutoLevel;\n }\n }\n\n // save result until state has changed\n this._nextAutoLevel = nextABRAutoLevel;\n this.nextAutoLevelKey = this.getAutoLevelKey();\n return nextABRAutoLevel;\n }\n getAutoLevelKey() {\n return `${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`;\n }\n getNextABRAutoLevel() {\n const {\n fragCurrent,\n partCurrent,\n hls\n } = this;\n const {\n maxAutoLevel,\n config,\n minAutoLevel\n } = hls;\n const currentFragDuration = partCurrent ? partCurrent.duration : fragCurrent ? fragCurrent.duration : 0;\n const avgbw = this.getBwEstimate();\n // bufferStarvationDelay is the wall-clock time left until the playback buffer is exhausted.\n const bufferStarvationDelay = this.getStarvationDelay();\n let bwFactor = config.abrBandWidthFactor;\n let bwUpFactor = config.abrBandWidthUpFactor;\n\n // First, look to see if we can find a level matching with our avg bandwidth AND that could also guarantee no rebuffering at all\n if (bufferStarvationDelay) {\n const _bestLevel = this.findBestLevel(avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, 0, bwFactor, bwUpFactor);\n if (_bestLevel >= 0) {\n return _bestLevel;\n }\n }\n // not possible to get rid of rebuffering... try to find level that will guarantee less than maxStarvationDelay of rebuffering\n let maxStarvationDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxStarvationDelay) : config.maxStarvationDelay;\n if (!bufferStarvationDelay) {\n // in case buffer is empty, let's check if previous fragment was loaded to perform a bitrate test\n const bitrateTestDelay = this.bitrateTestDelay;\n if (bitrateTestDelay) {\n // if it is the case, then we need to adjust our max starvation delay using maxLoadingDelay config value\n // max video loading delay used in automatic start level selection :\n // in that mode ABR controller will ensure that video loading time (ie the time to fetch the first fragment at lowest quality level +\n // the time to fetch the fragment at the appropriate quality level is less than ```maxLoadingDelay``` )\n // cap maxLoadingDelay and ensure it is not bigger 'than bitrate test' frag duration\n const maxLoadingDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxLoadingDelay) : config.maxLoadingDelay;\n maxStarvationDelay = maxLoadingDelay - bitrateTestDelay;\n logger.info(`[abr] bitrate test took ${Math.round(1000 * bitrateTestDelay)}ms, set first fragment max fetchDuration to ${Math.round(1000 * maxStarvationDelay)} ms`);\n // don't use conservative factor on bitrate test\n bwFactor = bwUpFactor = 1;\n }\n }\n const bestLevel = this.findBestLevel(avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, maxStarvationDelay, bwFactor, bwUpFactor);\n logger.info(`[abr] ${bufferStarvationDelay ? 'rebuffering expected' : 'buffer is empty'}, optimal quality level ${bestLevel}`);\n if (bestLevel > -1) {\n return bestLevel;\n }\n // If no matching level found, see if min auto level would be a better option\n const minLevel = hls.levels[minAutoLevel];\n const autoLevel = hls.levels[hls.loadLevel];\n if ((minLevel == null ? void 0 : minLevel.bitrate) < (autoLevel == null ? void 0 : autoLevel.bitrate)) {\n return minAutoLevel;\n }\n // or if bitrate is not lower, continue to use loadLevel\n return hls.loadLevel;\n }\n getStarvationDelay() {\n const hls = this.hls;\n const media = hls.media;\n if (!media) {\n return Infinity;\n }\n // playbackRate is the absolute value of the playback rate; if media.playbackRate is 0, we use 1 to load as\n // if we're playing back at the normal rate.\n const playbackRate = media && media.playbackRate !== 0 ? Math.abs(media.playbackRate) : 1.0;\n const bufferInfo = hls.mainForwardBufferInfo;\n return (bufferInfo ? bufferInfo.len : 0) / playbackRate;\n }\n getBwEstimate() {\n return this.bwEstimator.canEstimate() ? this.bwEstimator.getEstimate() : this.hls.config.abrEwmaDefaultEstimate;\n }\n findBestLevel(currentBw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, maxStarvationDelay, bwFactor, bwUpFactor) {\n var _level$details;\n const maxFetchDuration = bufferStarvationDelay + maxStarvationDelay;\n const lastLoadedFragLevel = this.lastLoadedFragLevel;\n const selectionBaseLevel = lastLoadedFragLevel === -1 ? this.hls.firstLevel : lastLoadedFragLevel;\n const {\n fragCurrent,\n partCurrent\n } = this;\n const {\n levels,\n allAudioTracks,\n loadLevel,\n config\n } = this.hls;\n if (levels.length === 1) {\n return 0;\n }\n const level = levels[selectionBaseLevel];\n const live = !!(level != null && (_level$details = level.details) != null && _level$details.live);\n const firstSelection = loadLevel === -1 || lastLoadedFragLevel === -1;\n let currentCodecSet;\n let currentVideoRange = 'SDR';\n let currentFrameRate = (level == null ? void 0 : level.frameRate) || 0;\n const {\n audioPreference,\n videoPreference\n } = config;\n const audioTracksByGroup = this.audioTracksByGroup || (this.audioTracksByGroup = getAudioTracksByGroup(allAudioTracks));\n if (firstSelection) {\n if (this.firstSelection !== -1) {\n return this.firstSelection;\n }\n const codecTiers = this.codecTiers || (this.codecTiers = getCodecTiers(levels, audioTracksByGroup, minAutoLevel, maxAutoLevel));\n const startTier = getStartCodecTier(codecTiers, currentVideoRange, currentBw, audioPreference, videoPreference);\n const {\n codecSet,\n videoRanges,\n minFramerate,\n minBitrate,\n preferHDR\n } = startTier;\n currentCodecSet = codecSet;\n currentVideoRange = preferHDR ? videoRanges[videoRanges.length - 1] : videoRanges[0];\n currentFrameRate = minFramerate;\n currentBw = Math.max(currentBw, minBitrate);\n logger.log(`[abr] picked start tier ${JSON.stringify(startTier)}`);\n } else {\n currentCodecSet = level == null ? void 0 : level.codecSet;\n currentVideoRange = level == null ? void 0 : level.videoRange;\n }\n const currentFragDuration = partCurrent ? partCurrent.duration : fragCurrent ? fragCurrent.duration : 0;\n const ttfbEstimateSec = this.bwEstimator.getEstimateTTFB() / 1000;\n const levelsSkipped = [];\n for (let i = maxAutoLevel; i >= minAutoLevel; i--) {\n var _levelInfo$supportedR;\n const levelInfo = levels[i];\n const upSwitch = i > selectionBaseLevel;\n if (!levelInfo) {\n continue;\n }\n if (config.useMediaCapabilities && !levelInfo.supportedResult && !levelInfo.supportedPromise) {\n const mediaCapabilities = navigator.mediaCapabilities;\n if (typeof (mediaCapabilities == null ? void 0 : mediaCapabilities.decodingInfo) === 'function' && requiresMediaCapabilitiesDecodingInfo(levelInfo, audioTracksByGroup, currentVideoRange, currentFrameRate, currentBw, audioPreference)) {\n levelInfo.supportedPromise = getMediaDecodingInfoPromise(levelInfo, audioTracksByGroup, mediaCapabilities);\n levelInfo.supportedPromise.then(decodingInfo => {\n if (!this.hls) {\n return;\n }\n levelInfo.supportedResult = decodingInfo;\n const levels = this.hls.levels;\n const index = levels.indexOf(levelInfo);\n if (decodingInfo.error) {\n logger.warn(`[abr] MediaCapabilities decodingInfo error: \"${decodingInfo.error}\" for level ${index} ${JSON.stringify(decodingInfo)}`);\n } else if (!decodingInfo.supported) {\n logger.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${index} ${JSON.stringify(decodingInfo)}`);\n if (index > -1 && levels.length > 1) {\n logger.log(`[abr] Removing unsupported level ${index}`);\n this.hls.removeLevel(index);\n }\n }\n });\n } else {\n levelInfo.supportedResult = SUPPORTED_INFO_DEFAULT;\n }\n }\n\n // skip candidates which change codec-family or video-range,\n // and which decrease or increase frame-rate for up and down-switch respectfully\n if (currentCodecSet && levelInfo.codecSet !== currentCodecSet || currentVideoRange && levelInfo.videoRange !== currentVideoRange || upSwitch && currentFrameRate > levelInfo.frameRate || !upSwitch && currentFrameRate > 0 && currentFrameRate < levelInfo.frameRate || levelInfo.supportedResult && !((_levelInfo$supportedR = levelInfo.supportedResult.decodingInfoResults) != null && _levelInfo$supportedR[0].smooth)) {\n levelsSkipped.push(i);\n continue;\n }\n const levelDetails = levelInfo.details;\n const avgDuration = (partCurrent ? levelDetails == null ? void 0 : levelDetails.partTarget : levelDetails == null ? void 0 : levelDetails.averagetargetduration) || currentFragDuration;\n let adjustedbw;\n // follow algorithm captured from stagefright :\n // https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp\n // Pick the highest bandwidth stream below or equal to estimated bandwidth.\n // consider only 80% of the available bandwidth, but if we are switching up,\n // be even more conservative (70%) to avoid overestimating and immediately\n // switching back.\n if (!upSwitch) {\n adjustedbw = bwFactor * currentBw;\n } else {\n adjustedbw = bwUpFactor * currentBw;\n }\n\n // Use average bitrate when starvation delay (buffer length) is gt or eq two segment durations and rebuffering is not expected (maxStarvationDelay > 0)\n const bitrate = currentFragDuration && bufferStarvationDelay >= currentFragDuration * 2 && maxStarvationDelay === 0 ? levels[i].averageBitrate : levels[i].maxBitrate;\n const fetchDuration = this.getTimeToLoadFrag(ttfbEstimateSec, adjustedbw, bitrate * avgDuration, levelDetails === undefined);\n const canSwitchWithinTolerance =\n // if adjusted bw is greater than level bitrate AND\n adjustedbw >= bitrate && (\n // no level change, or new level has no error history\n i === lastLoadedFragLevel || levelInfo.loadError === 0 && levelInfo.fragmentError === 0) && (\n // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches\n // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...\n // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that findBestLevel will return -1\n fetchDuration <= ttfbEstimateSec || !isFiniteNumber(fetchDuration) || live && !this.bitrateTestDelay || fetchDuration < maxFetchDuration);\n if (canSwitchWithinTolerance) {\n const forcedAutoLevel = this.forcedAutoLevel;\n if (i !== loadLevel && (forcedAutoLevel === -1 || forcedAutoLevel !== loadLevel)) {\n if (levelsSkipped.length) {\n logger.trace(`[abr] Skipped level(s) ${levelsSkipped.join(',')} of ${maxAutoLevel} max with CODECS and VIDEO-RANGE:\"${levels[levelsSkipped[0]].codecs}\" ${levels[levelsSkipped[0]].videoRange}; not compatible with \"${level.codecs}\" ${currentVideoRange}`);\n }\n logger.info(`[abr] switch candidate:${selectionBaseLevel}->${i} adjustedbw(${Math.round(adjustedbw)})-bitrate=${Math.round(adjustedbw - bitrate)} ttfb:${ttfbEstimateSec.toFixed(1)} avgDuration:${avgDuration.toFixed(1)} maxFetchDuration:${maxFetchDuration.toFixed(1)} fetchDuration:${fetchDuration.toFixed(1)} firstSelection:${firstSelection} codecSet:${currentCodecSet} videoRange:${currentVideoRange} hls.loadLevel:${loadLevel}`);\n }\n if (firstSelection) {\n this.firstSelection = i;\n }\n // as we are looping from highest to lowest, this will return the best achievable quality level\n return i;\n }\n }\n // not enough time budget even with quality level 0 ... rebuffering might happen\n return -1;\n }\n set nextAutoLevel(nextLevel) {\n const {\n maxAutoLevel,\n minAutoLevel\n } = this.hls;\n const value = Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);\n if (this._nextAutoLevel !== value) {\n this.nextAutoLevelKey = '';\n this._nextAutoLevel = value;\n }\n }\n}\n\n/**\n * @ignore\n * Sub-class specialization of EventHandler base class.\n *\n * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,\n * scheduled asynchroneously, avoiding recursive calls in the same tick.\n *\n * The task itself is implemented in `doTick`. It can be requested and called for single execution\n * using the `tick` method.\n *\n * It will be assured that the task execution method (`tick`) only gets called once per main loop \"tick\",\n * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.\n *\n * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,\n * and cancelled with `clearNextTick`.\n *\n * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).\n *\n * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.\n *\n * Further explanations:\n *\n * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously\n * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.\n *\n * When the task execution (`tick` method) is called in re-entrant way this is detected and\n * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further\n * task processing on the next main loop iteration (also known as \"next tick\" in the Node/JS runtime lingo).\n */\nclass TaskLoop {\n constructor() {\n this._boundTick = void 0;\n this._tickTimer = null;\n this._tickInterval = null;\n this._tickCallCount = 0;\n this._boundTick = this.tick.bind(this);\n }\n destroy() {\n this.onHandlerDestroying();\n this.onHandlerDestroyed();\n }\n onHandlerDestroying() {\n // clear all timers before unregistering from event bus\n this.clearNextTick();\n this.clearInterval();\n }\n onHandlerDestroyed() {}\n hasInterval() {\n return !!this._tickInterval;\n }\n hasNextTick() {\n return !!this._tickTimer;\n }\n\n /**\n * @param millis - Interval time (ms)\n * @eturns True when interval has been scheduled, false when already scheduled (no effect)\n */\n setInterval(millis) {\n if (!this._tickInterval) {\n this._tickCallCount = 0;\n this._tickInterval = self.setInterval(this._boundTick, millis);\n return true;\n }\n return false;\n }\n\n /**\n * @returns True when interval was cleared, false when none was set (no effect)\n */\n clearInterval() {\n if (this._tickInterval) {\n self.clearInterval(this._tickInterval);\n this._tickInterval = null;\n return true;\n }\n return false;\n }\n\n /**\n * @returns True when timeout was cleared, false when none was set (no effect)\n */\n clearNextTick() {\n if (this._tickTimer) {\n self.clearTimeout(this._tickTimer);\n this._tickTimer = null;\n return true;\n }\n return false;\n }\n\n /**\n * Will call the subclass doTick implementation in this main loop tick\n * or in the next one (via setTimeout(,0)) in case it has already been called\n * in this tick (in case this is a re-entrant call).\n */\n tick() {\n this._tickCallCount++;\n if (this._tickCallCount === 1) {\n this.doTick();\n // re-entrant call to tick from previous doTick call stack\n // -> schedule a call on the next main loop iteration to process this task processing request\n if (this._tickCallCount > 1) {\n // make sure only one timer exists at any time at max\n this.tickImmediate();\n }\n this._tickCallCount = 0;\n }\n }\n tickImmediate() {\n this.clearNextTick();\n this._tickTimer = self.setTimeout(this._boundTick, 0);\n }\n\n /**\n * For subclass to implement task logic\n * @abstract\n */\n doTick() {}\n}\n\nvar FragmentState = {\n NOT_LOADED: \"NOT_LOADED\",\n APPENDING: \"APPENDING\",\n PARTIAL: \"PARTIAL\",\n OK: \"OK\"\n};\nclass FragmentTracker {\n constructor(hls) {\n this.activePartLists = Object.create(null);\n this.endListFragments = Object.create(null);\n this.fragments = Object.create(null);\n this.timeRanges = Object.create(null);\n this.bufferPadding = 0.2;\n this.hls = void 0;\n this.hasGaps = false;\n this.hls = hls;\n this._registerListeners();\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.BUFFER_APPENDED, this.onBufferAppended, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.BUFFER_APPENDED, this.onBufferAppended, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n }\n destroy() {\n this._unregisterListeners();\n // @ts-ignore\n this.fragments =\n // @ts-ignore\n this.activePartLists =\n // @ts-ignore\n this.endListFragments = this.timeRanges = null;\n }\n\n /**\n * Return a Fragment or Part with an appended range that matches the position and levelType\n * Otherwise, return null\n */\n getAppendedFrag(position, levelType) {\n const activeParts = this.activePartLists[levelType];\n if (activeParts) {\n for (let i = activeParts.length; i--;) {\n const activePart = activeParts[i];\n if (!activePart) {\n break;\n }\n const appendedPTS = activePart.end;\n if (activePart.start <= position && appendedPTS !== null && position <= appendedPTS) {\n return activePart;\n }\n }\n }\n return this.getBufferedFrag(position, levelType);\n }\n\n /**\n * Return a buffered Fragment that matches the position and levelType.\n * A buffered Fragment is one whose loading, parsing and appending is done (completed or \"partial\" meaning aborted).\n * If not found any Fragment, return null\n */\n getBufferedFrag(position, levelType) {\n const {\n fragments\n } = this;\n const keys = Object.keys(fragments);\n for (let i = keys.length; i--;) {\n const fragmentEntity = fragments[keys[i]];\n if ((fragmentEntity == null ? void 0 : fragmentEntity.body.type) === levelType && fragmentEntity.buffered) {\n const frag = fragmentEntity.body;\n if (frag.start <= position && position <= frag.end) {\n return frag;\n }\n }\n }\n return null;\n }\n\n /**\n * Partial fragments effected by coded frame eviction will be removed\n * The browser will unload parts of the buffer to free up memory for new buffer data\n * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)\n */\n detectEvictedFragments(elementaryStream, timeRange, playlistType, appendedPart) {\n if (this.timeRanges) {\n this.timeRanges[elementaryStream] = timeRange;\n }\n // Check if any flagged fragments have been unloaded\n // excluding anything newer than appendedPartSn\n const appendedPartSn = (appendedPart == null ? void 0 : appendedPart.fragment.sn) || -1;\n Object.keys(this.fragments).forEach(key => {\n const fragmentEntity = this.fragments[key];\n if (!fragmentEntity) {\n return;\n }\n if (appendedPartSn >= fragmentEntity.body.sn) {\n return;\n }\n if (!fragmentEntity.buffered && !fragmentEntity.loaded) {\n if (fragmentEntity.body.type === playlistType) {\n this.removeFragment(fragmentEntity.body);\n }\n return;\n }\n const esData = fragmentEntity.range[elementaryStream];\n if (!esData) {\n return;\n }\n esData.time.some(time => {\n const isNotBuffered = !this.isTimeBuffered(time.startPTS, time.endPTS, timeRange);\n if (isNotBuffered) {\n // Unregister partial fragment as it needs to load again to be reused\n this.removeFragment(fragmentEntity.body);\n }\n return isNotBuffered;\n });\n });\n }\n\n /**\n * Checks if the fragment passed in is loaded in the buffer properly\n * Partially loaded fragments will be registered as a partial fragment\n */\n detectPartialFragments(data) {\n const timeRanges = this.timeRanges;\n const {\n frag,\n part\n } = data;\n if (!timeRanges || frag.sn === 'initSegment') {\n return;\n }\n const fragKey = getFragmentKey(frag);\n const fragmentEntity = this.fragments[fragKey];\n if (!fragmentEntity || fragmentEntity.buffered && frag.gap) {\n return;\n }\n const isFragHint = !frag.relurl;\n Object.keys(timeRanges).forEach(elementaryStream => {\n const streamInfo = frag.elementaryStreams[elementaryStream];\n if (!streamInfo) {\n return;\n }\n const timeRange = timeRanges[elementaryStream];\n const partial = isFragHint || streamInfo.partial === true;\n fragmentEntity.range[elementaryStream] = this.getBufferedTimes(frag, part, partial, timeRange);\n });\n fragmentEntity.loaded = null;\n if (Object.keys(fragmentEntity.range).length) {\n fragmentEntity.buffered = true;\n const endList = fragmentEntity.body.endList = frag.endList || fragmentEntity.body.endList;\n if (endList) {\n this.endListFragments[fragmentEntity.body.type] = fragmentEntity;\n }\n if (!isPartial(fragmentEntity)) {\n // Remove older fragment parts from lookup after frag is tracked as buffered\n this.removeParts(frag.sn - 1, frag.type);\n }\n } else {\n // remove fragment if nothing was appended\n this.removeFragment(fragmentEntity.body);\n }\n }\n removeParts(snToKeep, levelType) {\n const activeParts = this.activePartLists[levelType];\n if (!activeParts) {\n return;\n }\n this.activePartLists[levelType] = activeParts.filter(part => part.fragment.sn >= snToKeep);\n }\n fragBuffered(frag, force) {\n const fragKey = getFragmentKey(frag);\n let fragmentEntity = this.fragments[fragKey];\n if (!fragmentEntity && force) {\n fragmentEntity = this.fragments[fragKey] = {\n body: frag,\n appendedPTS: null,\n loaded: null,\n buffered: false,\n range: Object.create(null)\n };\n if (frag.gap) {\n this.hasGaps = true;\n }\n }\n if (fragmentEntity) {\n fragmentEntity.loaded = null;\n fragmentEntity.buffered = true;\n }\n }\n getBufferedTimes(fragment, part, partial, timeRange) {\n const buffered = {\n time: [],\n partial\n };\n const startPTS = fragment.start;\n const endPTS = fragment.end;\n const minEndPTS = fragment.minEndPTS || endPTS;\n const maxStartPTS = fragment.maxStartPTS || startPTS;\n for (let i = 0; i < timeRange.length; i++) {\n const startTime = timeRange.start(i) - this.bufferPadding;\n const endTime = timeRange.end(i) + this.bufferPadding;\n if (maxStartPTS >= startTime && minEndPTS <= endTime) {\n // Fragment is entirely contained in buffer\n // No need to check the other timeRange times since it's completely playable\n buffered.time.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i))\n });\n break;\n } else if (startPTS < endTime && endPTS > startTime) {\n const start = Math.max(startPTS, timeRange.start(i));\n const end = Math.min(endPTS, timeRange.end(i));\n if (end > start) {\n buffered.partial = true;\n // Check for intersection with buffer\n // Get playable sections of the fragment\n buffered.time.push({\n startPTS: start,\n endPTS: end\n });\n }\n } else if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n break;\n }\n }\n return buffered;\n }\n\n /**\n * Gets the partial fragment for a certain time\n */\n getPartialFragment(time) {\n let bestFragment = null;\n let timePadding;\n let startTime;\n let endTime;\n let bestOverlap = 0;\n const {\n bufferPadding,\n fragments\n } = this;\n Object.keys(fragments).forEach(key => {\n const fragmentEntity = fragments[key];\n if (!fragmentEntity) {\n return;\n }\n if (isPartial(fragmentEntity)) {\n startTime = fragmentEntity.body.start - bufferPadding;\n endTime = fragmentEntity.body.end + bufferPadding;\n if (time >= startTime && time <= endTime) {\n // Use the fragment that has the most padding from start and end time\n timePadding = Math.min(time - startTime, endTime - time);\n if (bestOverlap <= timePadding) {\n bestFragment = fragmentEntity.body;\n bestOverlap = timePadding;\n }\n }\n }\n });\n return bestFragment;\n }\n isEndListAppended(type) {\n const lastFragmentEntity = this.endListFragments[type];\n return lastFragmentEntity !== undefined && (lastFragmentEntity.buffered || isPartial(lastFragmentEntity));\n }\n getState(fragment) {\n const fragKey = getFragmentKey(fragment);\n const fragmentEntity = this.fragments[fragKey];\n if (fragmentEntity) {\n if (!fragmentEntity.buffered) {\n return FragmentState.APPENDING;\n } else if (isPartial(fragmentEntity)) {\n return FragmentState.PARTIAL;\n } else {\n return FragmentState.OK;\n }\n }\n return FragmentState.NOT_LOADED;\n }\n isTimeBuffered(startPTS, endPTS, timeRange) {\n let startTime;\n let endTime;\n for (let i = 0; i < timeRange.length; i++) {\n startTime = timeRange.start(i) - this.bufferPadding;\n endTime = timeRange.end(i) + this.bufferPadding;\n if (startPTS >= startTime && endPTS <= endTime) {\n return true;\n }\n if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n return false;\n }\n }\n return false;\n }\n onFragLoaded(event, data) {\n const {\n frag,\n part\n } = data;\n // don't track initsegment (for which sn is not a number)\n // don't track frags used for bitrateTest, they're irrelevant.\n if (frag.sn === 'initSegment' || frag.bitrateTest) {\n return;\n }\n\n // Fragment entity `loaded` FragLoadedData is null when loading parts\n const loaded = part ? null : data;\n const fragKey = getFragmentKey(frag);\n this.fragments[fragKey] = {\n body: frag,\n appendedPTS: null,\n loaded,\n buffered: false,\n range: Object.create(null)\n };\n }\n onBufferAppended(event, data) {\n const {\n frag,\n part,\n timeRanges\n } = data;\n if (frag.sn === 'initSegment') {\n return;\n }\n const playlistType = frag.type;\n if (part) {\n let activeParts = this.activePartLists[playlistType];\n if (!activeParts) {\n this.activePartLists[playlistType] = activeParts = [];\n }\n activeParts.push(part);\n }\n // Store the latest timeRanges loaded in the buffer\n this.timeRanges = timeRanges;\n Object.keys(timeRanges).forEach(elementaryStream => {\n const timeRange = timeRanges[elementaryStream];\n this.detectEvictedFragments(elementaryStream, timeRange, playlistType, part);\n });\n }\n onFragBuffered(event, data) {\n this.detectPartialFragments(data);\n }\n hasFragment(fragment) {\n const fragKey = getFragmentKey(fragment);\n return !!this.fragments[fragKey];\n }\n hasParts(type) {\n var _this$activePartLists;\n return !!((_this$activePartLists = this.activePartLists[type]) != null && _this$activePartLists.length);\n }\n removeFragmentsInRange(start, end, playlistType, withGapOnly, unbufferedOnly) {\n if (withGapOnly && !this.hasGaps) {\n return;\n }\n Object.keys(this.fragments).forEach(key => {\n const fragmentEntity = this.fragments[key];\n if (!fragmentEntity) {\n return;\n }\n const frag = fragmentEntity.body;\n if (frag.type !== playlistType || withGapOnly && !frag.gap) {\n return;\n }\n if (frag.start < end && frag.end > start && (fragmentEntity.buffered || unbufferedOnly)) {\n this.removeFragment(frag);\n }\n });\n }\n removeFragment(fragment) {\n const fragKey = getFragmentKey(fragment);\n fragment.stats.loaded = 0;\n fragment.clearElementaryStreamInfo();\n const activeParts = this.activePartLists[fragment.type];\n if (activeParts) {\n const snToRemove = fragment.sn;\n this.activePartLists[fragment.type] = activeParts.filter(part => part.fragment.sn !== snToRemove);\n }\n delete this.fragments[fragKey];\n if (fragment.endList) {\n delete this.endListFragments[fragment.type];\n }\n }\n removeAllFragments() {\n this.fragments = Object.create(null);\n this.endListFragments = Object.create(null);\n this.activePartLists = Object.create(null);\n this.hasGaps = false;\n }\n}\nfunction isPartial(fragmentEntity) {\n var _fragmentEntity$range, _fragmentEntity$range2, _fragmentEntity$range3;\n return fragmentEntity.buffered && (fragmentEntity.body.gap || ((_fragmentEntity$range = fragmentEntity.range.video) == null ? void 0 : _fragmentEntity$range.partial) || ((_fragmentEntity$range2 = fragmentEntity.range.audio) == null ? void 0 : _fragmentEntity$range2.partial) || ((_fragmentEntity$range3 = fragmentEntity.range.audiovideo) == null ? void 0 : _fragmentEntity$range3.partial));\n}\nfunction getFragmentKey(fragment) {\n return `${fragment.type}_${fragment.level}_${fragment.sn}`;\n}\n\n/**\n * Provides methods dealing with buffer length retrieval for example.\n *\n * In general, a helper around HTML5 MediaElement TimeRanges gathered from `buffered` property.\n *\n * Also @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered\n */\n\nconst noopBuffered = {\n length: 0,\n start: () => 0,\n end: () => 0\n};\nclass BufferHelper {\n /**\n * Return true if `media`'s buffered include `position`\n */\n static isBuffered(media, position) {\n try {\n if (media) {\n const buffered = BufferHelper.getBuffered(media);\n for (let i = 0; i < buffered.length; i++) {\n if (position >= buffered.start(i) && position <= buffered.end(i)) {\n return true;\n }\n }\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return false;\n }\n static bufferInfo(media, pos, maxHoleDuration) {\n try {\n if (media) {\n const vbuffered = BufferHelper.getBuffered(media);\n const buffered = [];\n let i;\n for (i = 0; i < vbuffered.length; i++) {\n buffered.push({\n start: vbuffered.start(i),\n end: vbuffered.end(i)\n });\n }\n return this.bufferedInfo(buffered, pos, maxHoleDuration);\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return {\n len: 0,\n start: pos,\n end: pos,\n nextStart: undefined\n };\n }\n static bufferedInfo(buffered, pos, maxHoleDuration) {\n pos = Math.max(0, pos);\n // sort on buffer.start/smaller end (IE does not always return sorted buffered range)\n buffered.sort(function (a, b) {\n const diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n let buffered2 = [];\n if (maxHoleDuration) {\n // there might be some small holes between buffer time range\n // consider that holes smaller than maxHoleDuration are irrelevant and build another\n // buffer time range representations that discards those holes\n for (let i = 0; i < buffered.length; i++) {\n const buf2len = buffered2.length;\n if (buf2len) {\n const buf2end = buffered2[buf2len - 1].end;\n // if small hole (value between 0 or maxHoleDuration ) or overlapping (negative)\n if (buffered[i].start - buf2end < maxHoleDuration) {\n // merge overlapping time ranges\n // update lastRange.end only if smaller than item.end\n // e.g. [ 1, 15] with [ 2,8] => [ 1,15] (no need to modify lastRange.end)\n // whereas [ 1, 8] with [ 2,15] => [ 1,15] ( lastRange should switch from [1,8] to [1,15])\n if (buffered[i].end > buf2end) {\n buffered2[buf2len - 1].end = buffered[i].end;\n }\n } else {\n // big hole\n buffered2.push(buffered[i]);\n }\n } else {\n // first value\n buffered2.push(buffered[i]);\n }\n }\n } else {\n buffered2 = buffered;\n }\n let bufferLen = 0;\n\n // bufferStartNext can possibly be undefined based on the conditional logic below\n let bufferStartNext;\n\n // bufferStart and bufferEnd are buffer boundaries around current video position\n let bufferStart = pos;\n let bufferEnd = pos;\n for (let i = 0; i < buffered2.length; i++) {\n const start = buffered2[i].start;\n const end = buffered2[i].end;\n // logger.log('buf start/end:' + buffered.start(i) + '/' + buffered.end(i));\n if (pos + maxHoleDuration >= start && pos < end) {\n // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n bufferStart = start;\n bufferEnd = end;\n bufferLen = bufferEnd - pos;\n } else if (pos + maxHoleDuration < start) {\n bufferStartNext = start;\n break;\n }\n }\n return {\n len: bufferLen,\n start: bufferStart || 0,\n end: bufferEnd || 0,\n nextStart: bufferStartNext\n };\n }\n\n /**\n * Safe method to get buffered property.\n * SourceBuffer.buffered may throw if SourceBuffer is removed from it's MediaSource\n */\n static getBuffered(media) {\n try {\n return media.buffered;\n } catch (e) {\n logger.log('failed to get media.buffered', e);\n return noopBuffered;\n }\n }\n}\n\nclass ChunkMetadata {\n constructor(level, sn, id, size = 0, part = -1, partial = false) {\n this.level = void 0;\n this.sn = void 0;\n this.part = void 0;\n this.id = void 0;\n this.size = void 0;\n this.partial = void 0;\n this.transmuxing = getNewPerformanceTiming();\n this.buffering = {\n audio: getNewPerformanceTiming(),\n video: getNewPerformanceTiming(),\n audiovideo: getNewPerformanceTiming()\n };\n this.level = level;\n this.sn = sn;\n this.id = id;\n this.size = size;\n this.part = part;\n this.partial = partial;\n }\n}\nfunction getNewPerformanceTiming() {\n return {\n start: 0,\n executeStart: 0,\n executeEnd: 0,\n end: 0\n };\n}\n\nfunction findFirstFragWithCC(fragments, cc) {\n for (let i = 0, len = fragments.length; i < len; i++) {\n var _fragments$i;\n if (((_fragments$i = fragments[i]) == null ? void 0 : _fragments$i.cc) === cc) {\n return fragments[i];\n }\n }\n return null;\n}\nfunction shouldAlignOnDiscontinuities(lastFrag, switchDetails, details) {\n if (switchDetails) {\n if (details.endCC > details.startCC || lastFrag && lastFrag.cc < details.startCC) {\n return true;\n }\n }\n return false;\n}\n\n// Find the first frag in the previous level which matches the CC of the first frag of the new level\nfunction findDiscontinuousReferenceFrag(prevDetails, curDetails) {\n const prevFrags = prevDetails.fragments;\n const curFrags = curDetails.fragments;\n if (!curFrags.length || !prevFrags.length) {\n logger.log('No fragments to align');\n return;\n }\n const prevStartFrag = findFirstFragWithCC(prevFrags, curFrags[0].cc);\n if (!prevStartFrag || prevStartFrag && !prevStartFrag.startPTS) {\n logger.log('No frag in previous level to align on');\n return;\n }\n return prevStartFrag;\n}\nfunction adjustFragmentStart(frag, sliding) {\n if (frag) {\n const start = frag.start + sliding;\n frag.start = frag.startPTS = start;\n frag.endPTS = start + frag.duration;\n }\n}\nfunction adjustSlidingStart(sliding, details) {\n // Update segments\n const fragments = details.fragments;\n for (let i = 0, len = fragments.length; i < len; i++) {\n adjustFragmentStart(fragments[i], sliding);\n }\n // Update LL-HLS parts at the end of the playlist\n if (details.fragmentHint) {\n adjustFragmentStart(details.fragmentHint, sliding);\n }\n details.alignedSliding = true;\n}\n\n/**\n * Using the parameters of the last level, this function computes PTS' of the new fragments so that they form a\n * contiguous stream with the last fragments.\n * The PTS of a fragment lets Hls.js know where it fits into a stream - by knowing every PTS, we know which fragment to\n * download at any given time. PTS is normally computed when the fragment is demuxed, so taking this step saves us time\n * and an extra download.\n * @param lastFrag\n * @param lastLevel\n * @param details\n */\nfunction alignStream(lastFrag, switchDetails, details) {\n if (!switchDetails) {\n return;\n }\n alignDiscontinuities(lastFrag, details, switchDetails);\n if (!details.alignedSliding && switchDetails) {\n // If the PTS wasn't figured out via discontinuity sequence that means there was no CC increase within the level.\n // Aligning via Program Date Time should therefore be reliable, since PDT should be the same within the same\n // discontinuity sequence.\n alignMediaPlaylistByPDT(details, switchDetails);\n }\n if (!details.alignedSliding && switchDetails && !details.skippedSegments) {\n // Try to align on sn so that we pick a better start fragment.\n // Do not perform this on playlists with delta updates as this is only to align levels on switch\n // and adjustSliding only adjusts fragments after skippedSegments.\n adjustSliding(switchDetails, details);\n }\n}\n\n/**\n * Computes the PTS if a new level's fragments using the PTS of a fragment in the last level which shares the same\n * discontinuity sequence.\n * @param lastFrag - The last Fragment which shares the same discontinuity sequence\n * @param lastLevel - The details of the last loaded level\n * @param details - The details of the new level\n */\nfunction alignDiscontinuities(lastFrag, details, switchDetails) {\n if (shouldAlignOnDiscontinuities(lastFrag, switchDetails, details)) {\n const referenceFrag = findDiscontinuousReferenceFrag(switchDetails, details);\n if (referenceFrag && isFiniteNumber(referenceFrag.start)) {\n logger.log(`Adjusting PTS using last level due to CC increase within current level ${details.url}`);\n adjustSlidingStart(referenceFrag.start, details);\n }\n }\n}\n\n/**\n * Ensures appropriate time-alignment between renditions based on PDT.\n * This function assumes the timelines represented in `refDetails` are accurate, including the PDTs\n * for the last discontinuity sequence number shared by both playlists when present,\n * and uses the \"wallclock\"/PDT timeline as a cross-reference to `details`, adjusting the presentation\n * times/timelines of `details` accordingly.\n * Given the asynchronous nature of fetches and initial loads of live `main` and audio/subtitle tracks,\n * the primary purpose of this function is to ensure the \"local timelines\" of audio/subtitle tracks\n * are aligned to the main/video timeline, using PDT as the cross-reference/\"anchor\" that should\n * be consistent across playlists, per the HLS spec.\n * @param details - The details of the rendition you'd like to time-align (e.g. an audio rendition).\n * @param refDetails - The details of the reference rendition with start and PDT times for alignment.\n */\nfunction alignMediaPlaylistByPDT(details, refDetails) {\n if (!details.hasProgramDateTime || !refDetails.hasProgramDateTime) {\n return;\n }\n const fragments = details.fragments;\n const refFragments = refDetails.fragments;\n if (!fragments.length || !refFragments.length) {\n return;\n }\n\n // Calculate a delta to apply to all fragments according to the delta in PDT times and start times\n // of a fragment in the reference details, and a fragment in the target details of the same discontinuity.\n // If a fragment of the same discontinuity was not found use the middle fragment of both.\n let refFrag;\n let frag;\n const targetCC = Math.min(refDetails.endCC, details.endCC);\n if (refDetails.startCC < targetCC && details.startCC < targetCC) {\n refFrag = findFirstFragWithCC(refFragments, targetCC);\n frag = findFirstFragWithCC(fragments, targetCC);\n }\n if (!refFrag || !frag) {\n refFrag = refFragments[Math.floor(refFragments.length / 2)];\n frag = findFirstFragWithCC(fragments, refFrag.cc) || fragments[Math.floor(fragments.length / 2)];\n }\n const refPDT = refFrag.programDateTime;\n const targetPDT = frag.programDateTime;\n if (!refPDT || !targetPDT) {\n return;\n }\n const delta = (targetPDT - refPDT) / 1000 - (frag.start - refFrag.start);\n adjustSlidingStart(delta, details);\n}\n\nconst MIN_CHUNK_SIZE = Math.pow(2, 17); // 128kb\n\nclass FragmentLoader {\n constructor(config) {\n this.config = void 0;\n this.loader = null;\n this.partLoadTimeout = -1;\n this.config = config;\n }\n destroy() {\n if (this.loader) {\n this.loader.destroy();\n this.loader = null;\n }\n }\n abort() {\n if (this.loader) {\n // Abort the loader for current fragment. Only one may load at any given time\n this.loader.abort();\n }\n }\n load(frag, onProgress) {\n const url = frag.url;\n if (!url) {\n return Promise.reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n error: new Error(`Fragment does not have a ${url ? 'part list' : 'url'}`),\n networkDetails: null\n }));\n }\n this.abort();\n const config = this.config;\n const FragmentILoader = config.fLoader;\n const DefaultILoader = config.loader;\n return new Promise((resolve, reject) => {\n if (this.loader) {\n this.loader.destroy();\n }\n if (frag.gap) {\n if (frag.tagList.some(tags => tags[0] === 'GAP')) {\n reject(createGapLoadError(frag));\n return;\n } else {\n // Reset temporary treatment as GAP tag\n frag.gap = false;\n }\n }\n const loader = this.loader = frag.loader = FragmentILoader ? new FragmentILoader(config) : new DefaultILoader(config);\n const loaderContext = createLoaderContext(frag);\n const loadPolicy = getLoaderConfigWithoutReties(config.fragLoadPolicy.default);\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n highWaterMark: frag.sn === 'initSegment' ? Infinity : MIN_CHUNK_SIZE\n };\n // Assign frag stats to the loader's stats reference\n frag.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: (response, stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n let payload = response.data;\n if (context.resetIV && frag.decryptdata) {\n frag.decryptdata.iv = new Uint8Array(payload.slice(0, 16));\n payload = payload.slice(16);\n }\n resolve({\n frag,\n part: null,\n payload,\n networkDetails\n });\n },\n onError: (response, context, networkDetails, stats) => {\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n response: _objectSpread2({\n url,\n data: undefined\n }, response),\n error: new Error(`HTTP Error ${response.code} ${response.text}`),\n networkDetails,\n stats\n }));\n },\n onAbort: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.INTERNAL_ABORTED,\n fatal: false,\n frag,\n error: new Error('Aborted'),\n networkDetails,\n stats\n }));\n },\n onTimeout: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag,\n error: new Error(`Timeout after ${loaderConfig.timeout}ms`),\n networkDetails,\n stats\n }));\n },\n onProgress: (stats, context, data, networkDetails) => {\n if (onProgress) {\n onProgress({\n frag,\n part: null,\n payload: data,\n networkDetails\n });\n }\n }\n });\n });\n }\n loadPart(frag, part, onProgress) {\n this.abort();\n const config = this.config;\n const FragmentILoader = config.fLoader;\n const DefaultILoader = config.loader;\n return new Promise((resolve, reject) => {\n if (this.loader) {\n this.loader.destroy();\n }\n if (frag.gap || part.gap) {\n reject(createGapLoadError(frag, part));\n return;\n }\n const loader = this.loader = frag.loader = FragmentILoader ? new FragmentILoader(config) : new DefaultILoader(config);\n const loaderContext = createLoaderContext(frag, part);\n // Should we define another load policy for parts?\n const loadPolicy = getLoaderConfigWithoutReties(config.fragLoadPolicy.default);\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n highWaterMark: MIN_CHUNK_SIZE\n };\n // Assign part stats to the loader's stats reference\n part.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: (response, stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n this.updateStatsFromPart(frag, part);\n const partLoadedData = {\n frag,\n part,\n payload: response.data,\n networkDetails\n };\n onProgress(partLoadedData);\n resolve(partLoadedData);\n },\n onError: (response, context, networkDetails, stats) => {\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n part,\n response: _objectSpread2({\n url: loaderContext.url,\n data: undefined\n }, response),\n error: new Error(`HTTP Error ${response.code} ${response.text}`),\n networkDetails,\n stats\n }));\n },\n onAbort: (stats, context, networkDetails) => {\n frag.stats.aborted = part.stats.aborted;\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.INTERNAL_ABORTED,\n fatal: false,\n frag,\n part,\n error: new Error('Aborted'),\n networkDetails,\n stats\n }));\n },\n onTimeout: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag,\n part,\n error: new Error(`Timeout after ${loaderConfig.timeout}ms`),\n networkDetails,\n stats\n }));\n }\n });\n });\n }\n updateStatsFromPart(frag, part) {\n const fragStats = frag.stats;\n const partStats = part.stats;\n const partTotal = partStats.total;\n fragStats.loaded += partStats.loaded;\n if (partTotal) {\n const estTotalParts = Math.round(frag.duration / part.duration);\n const estLoadedParts = Math.min(Math.round(fragStats.loaded / partTotal), estTotalParts);\n const estRemainingParts = estTotalParts - estLoadedParts;\n const estRemainingBytes = estRemainingParts * Math.round(fragStats.loaded / estLoadedParts);\n fragStats.total = fragStats.loaded + estRemainingBytes;\n } else {\n fragStats.total = Math.max(fragStats.loaded, fragStats.total);\n }\n const fragLoading = fragStats.loading;\n const partLoading = partStats.loading;\n if (fragLoading.start) {\n // add to fragment loader latency\n fragLoading.first += partLoading.first - partLoading.start;\n } else {\n fragLoading.start = partLoading.start;\n fragLoading.first = partLoading.first;\n }\n fragLoading.end = partLoading.end;\n }\n resetLoader(frag, loader) {\n frag.loader = null;\n if (this.loader === loader) {\n self.clearTimeout(this.partLoadTimeout);\n this.loader = null;\n }\n loader.destroy();\n }\n}\nfunction createLoaderContext(frag, part = null) {\n const segment = part || frag;\n const loaderContext = {\n frag,\n part,\n responseType: 'arraybuffer',\n url: segment.url,\n headers: {},\n rangeStart: 0,\n rangeEnd: 0\n };\n const start = segment.byteRangeStartOffset;\n const end = segment.byteRangeEndOffset;\n if (isFiniteNumber(start) && isFiniteNumber(end)) {\n var _frag$decryptdata;\n let byteRangeStart = start;\n let byteRangeEnd = end;\n if (frag.sn === 'initSegment' && ((_frag$decryptdata = frag.decryptdata) == null ? void 0 : _frag$decryptdata.method) === 'AES-128') {\n // MAP segment encrypted with method 'AES-128', when served with HTTP Range,\n // has the unencrypted size specified in the range.\n // Ref: https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-6.3.6\n const fragmentLen = end - start;\n if (fragmentLen % 16) {\n byteRangeEnd = end + (16 - fragmentLen % 16);\n }\n if (start !== 0) {\n loaderContext.resetIV = true;\n byteRangeStart = start - 16;\n }\n }\n loaderContext.rangeStart = byteRangeStart;\n loaderContext.rangeEnd = byteRangeEnd;\n }\n return loaderContext;\n}\nfunction createGapLoadError(frag, part) {\n const error = new Error(`GAP ${frag.gap ? 'tag' : 'attribute'} found`);\n const errorData = {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_GAP,\n fatal: false,\n frag,\n error,\n networkDetails: null\n };\n if (part) {\n errorData.part = part;\n }\n (part ? part : frag).stats.aborted = true;\n return new LoadError(errorData);\n}\nclass LoadError extends Error {\n constructor(data) {\n super(data.error.message);\n this.data = void 0;\n this.data = data;\n }\n}\n\nclass AESCrypto {\n constructor(subtle, iv) {\n this.subtle = void 0;\n this.aesIV = void 0;\n this.subtle = subtle;\n this.aesIV = iv;\n }\n decrypt(data, key) {\n return this.subtle.decrypt({\n name: 'AES-CBC',\n iv: this.aesIV\n }, key, data);\n }\n}\n\nclass FastAESKey {\n constructor(subtle, key) {\n this.subtle = void 0;\n this.key = void 0;\n this.subtle = subtle;\n this.key = key;\n }\n expandKey() {\n return this.subtle.importKey('raw', this.key, {\n name: 'AES-CBC'\n }, false, ['encrypt', 'decrypt']);\n }\n}\n\n// PKCS7\nfunction removePadding(array) {\n const outputBytes = array.byteLength;\n const paddingBytes = outputBytes && new DataView(array.buffer).getUint8(outputBytes - 1);\n if (paddingBytes) {\n return sliceUint8(array, 0, outputBytes - paddingBytes);\n }\n return array;\n}\nclass AESDecryptor {\n constructor() {\n this.rcon = [0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.sBox = new Uint32Array(256);\n this.invSBox = new Uint32Array(256);\n this.key = new Uint32Array(0);\n this.ksRows = 0;\n this.keySize = 0;\n this.keySchedule = void 0;\n this.invKeySchedule = void 0;\n this.initTable();\n }\n\n // Using view.getUint32() also swaps the byte order.\n uint8ArrayToUint32Array_(arrayBuffer) {\n const view = new DataView(arrayBuffer);\n const newArray = new Uint32Array(4);\n for (let i = 0; i < 4; i++) {\n newArray[i] = view.getUint32(i * 4);\n }\n return newArray;\n }\n initTable() {\n const sBox = this.sBox;\n const invSBox = this.invSBox;\n const subMix = this.subMix;\n const subMix0 = subMix[0];\n const subMix1 = subMix[1];\n const subMix2 = subMix[2];\n const subMix3 = subMix[3];\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n const d = new Uint32Array(256);\n let x = 0;\n let xi = 0;\n let i = 0;\n for (i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 0x11b;\n }\n }\n for (i = 0; i < 256; i++) {\n let sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n sBox[x] = sx;\n invSBox[sx] = x;\n\n // Compute multiplication\n const x2 = d[x];\n const x4 = d[x2];\n const x8 = d[x4];\n\n // Compute sub/invSub bytes, mix columns tables\n let t = d[sx] * 0x101 ^ sx * 0x1010100;\n subMix0[x] = t << 24 | t >>> 8;\n subMix1[x] = t << 16 | t >>> 16;\n subMix2[x] = t << 8 | t >>> 24;\n subMix3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n invSubMix0[sx] = t << 24 | t >>> 8;\n invSubMix1[sx] = t << 16 | t >>> 16;\n invSubMix2[sx] = t << 8 | t >>> 24;\n invSubMix3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n }\n expandKey(keyBuffer) {\n // convert keyBuffer to Uint32Array\n const key = this.uint8ArrayToUint32Array_(keyBuffer);\n let sameKey = true;\n let offset = 0;\n while (offset < key.length && sameKey) {\n sameKey = key[offset] === this.key[offset];\n offset++;\n }\n if (sameKey) {\n return;\n }\n this.key = key;\n const keySize = this.keySize = key.length;\n if (keySize !== 4 && keySize !== 6 && keySize !== 8) {\n throw new Error('Invalid aes key size=' + keySize);\n }\n const ksRows = this.ksRows = (keySize + 6 + 1) * 4;\n let ksRow;\n let invKsRow;\n const keySchedule = this.keySchedule = new Uint32Array(ksRows);\n const invKeySchedule = this.invKeySchedule = new Uint32Array(ksRows);\n const sbox = this.sBox;\n const rcon = this.rcon;\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n let prev;\n let t;\n for (ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n prev = keySchedule[ksRow] = key[ksRow];\n continue;\n }\n t = prev;\n if (ksRow % keySize === 0) {\n // Rot word\n t = t << 8 | t >>> 24;\n\n // Sub word\n t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff];\n\n // Mix Rcon\n t ^= rcon[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize === 4) {\n // Sub word\n t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff];\n }\n keySchedule[ksRow] = prev = (keySchedule[ksRow - keySize] ^ t) >>> 0;\n }\n for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n ksRow = ksRows - invKsRow;\n if (invKsRow & 3) {\n t = keySchedule[ksRow];\n } else {\n t = keySchedule[ksRow - 4];\n }\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = invSubMix0[sbox[t >>> 24]] ^ invSubMix1[sbox[t >>> 16 & 0xff]] ^ invSubMix2[sbox[t >>> 8 & 0xff]] ^ invSubMix3[sbox[t & 0xff]];\n }\n invKeySchedule[invKsRow] = invKeySchedule[invKsRow] >>> 0;\n }\n }\n\n // Adding this as a method greatly improves performance.\n networkToHostOrderSwap(word) {\n return word << 24 | (word & 0xff00) << 8 | (word & 0xff0000) >> 8 | word >>> 24;\n }\n decrypt(inputArrayBuffer, offset, aesIV) {\n const nRounds = this.keySize + 6;\n const invKeySchedule = this.invKeySchedule;\n const invSBOX = this.invSBox;\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n const initVector = this.uint8ArrayToUint32Array_(aesIV);\n let initVector0 = initVector[0];\n let initVector1 = initVector[1];\n let initVector2 = initVector[2];\n let initVector3 = initVector[3];\n const inputInt32 = new Int32Array(inputArrayBuffer);\n const outputInt32 = new Int32Array(inputInt32.length);\n let t0, t1, t2, t3;\n let s0, s1, s2, s3;\n let inputWords0, inputWords1, inputWords2, inputWords3;\n let ksRow, i;\n const swapWord = this.networkToHostOrderSwap;\n while (offset < inputInt32.length) {\n inputWords0 = swapWord(inputInt32[offset]);\n inputWords1 = swapWord(inputInt32[offset + 1]);\n inputWords2 = swapWord(inputInt32[offset + 2]);\n inputWords3 = swapWord(inputInt32[offset + 3]);\n s0 = inputWords0 ^ invKeySchedule[0];\n s1 = inputWords3 ^ invKeySchedule[1];\n s2 = inputWords2 ^ invKeySchedule[2];\n s3 = inputWords1 ^ invKeySchedule[3];\n ksRow = 4;\n\n // Iterate through the rounds of decryption\n for (i = 1; i < nRounds; i++) {\n t0 = invSubMix0[s0 >>> 24] ^ invSubMix1[s1 >> 16 & 0xff] ^ invSubMix2[s2 >> 8 & 0xff] ^ invSubMix3[s3 & 0xff] ^ invKeySchedule[ksRow];\n t1 = invSubMix0[s1 >>> 24] ^ invSubMix1[s2 >> 16 & 0xff] ^ invSubMix2[s3 >> 8 & 0xff] ^ invSubMix3[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n t2 = invSubMix0[s2 >>> 24] ^ invSubMix1[s3 >> 16 & 0xff] ^ invSubMix2[s0 >> 8 & 0xff] ^ invSubMix3[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n t3 = invSubMix0[s3 >>> 24] ^ invSubMix1[s0 >> 16 & 0xff] ^ invSubMix2[s1 >> 8 & 0xff] ^ invSubMix3[s2 & 0xff] ^ invKeySchedule[ksRow + 3];\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n ksRow = ksRow + 4;\n }\n\n // Shift rows, sub bytes, add round key\n t0 = invSBOX[s0 >>> 24] << 24 ^ invSBOX[s1 >> 16 & 0xff] << 16 ^ invSBOX[s2 >> 8 & 0xff] << 8 ^ invSBOX[s3 & 0xff] ^ invKeySchedule[ksRow];\n t1 = invSBOX[s1 >>> 24] << 24 ^ invSBOX[s2 >> 16 & 0xff] << 16 ^ invSBOX[s3 >> 8 & 0xff] << 8 ^ invSBOX[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n t2 = invSBOX[s2 >>> 24] << 24 ^ invSBOX[s3 >> 16 & 0xff] << 16 ^ invSBOX[s0 >> 8 & 0xff] << 8 ^ invSBOX[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n t3 = invSBOX[s3 >>> 24] << 24 ^ invSBOX[s0 >> 16 & 0xff] << 16 ^ invSBOX[s1 >> 8 & 0xff] << 8 ^ invSBOX[s2 & 0xff] ^ invKeySchedule[ksRow + 3];\n\n // Write\n outputInt32[offset] = swapWord(t0 ^ initVector0);\n outputInt32[offset + 1] = swapWord(t3 ^ initVector1);\n outputInt32[offset + 2] = swapWord(t2 ^ initVector2);\n outputInt32[offset + 3] = swapWord(t1 ^ initVector3);\n\n // reset initVector to last 4 unsigned int\n initVector0 = inputWords0;\n initVector1 = inputWords1;\n initVector2 = inputWords2;\n initVector3 = inputWords3;\n offset = offset + 4;\n }\n return outputInt32.buffer;\n }\n}\n\nconst CHUNK_SIZE = 16; // 16 bytes, 128 bits\n\nclass Decrypter {\n constructor(config, {\n removePKCS7Padding = true\n } = {}) {\n this.logEnabled = true;\n this.removePKCS7Padding = void 0;\n this.subtle = null;\n this.softwareDecrypter = null;\n this.key = null;\n this.fastAesKey = null;\n this.remainderData = null;\n this.currentIV = null;\n this.currentResult = null;\n this.useSoftware = void 0;\n this.useSoftware = config.enableSoftwareAES;\n this.removePKCS7Padding = removePKCS7Padding;\n // built in decryptor expects PKCS7 padding\n if (removePKCS7Padding) {\n try {\n const browserCrypto = self.crypto;\n if (browserCrypto) {\n this.subtle = browserCrypto.subtle || browserCrypto.webkitSubtle;\n }\n } catch (e) {\n /* no-op */\n }\n }\n this.useSoftware = !this.subtle;\n }\n destroy() {\n this.subtle = null;\n this.softwareDecrypter = null;\n this.key = null;\n this.fastAesKey = null;\n this.remainderData = null;\n this.currentIV = null;\n this.currentResult = null;\n }\n isSync() {\n return this.useSoftware;\n }\n flush() {\n const {\n currentResult,\n remainderData\n } = this;\n if (!currentResult || remainderData) {\n this.reset();\n return null;\n }\n const data = new Uint8Array(currentResult);\n this.reset();\n if (this.removePKCS7Padding) {\n return removePadding(data);\n }\n return data;\n }\n reset() {\n this.currentResult = null;\n this.currentIV = null;\n this.remainderData = null;\n if (this.softwareDecrypter) {\n this.softwareDecrypter = null;\n }\n }\n decrypt(data, key, iv) {\n if (this.useSoftware) {\n return new Promise((resolve, reject) => {\n this.softwareDecrypt(new Uint8Array(data), key, iv);\n const decryptResult = this.flush();\n if (decryptResult) {\n resolve(decryptResult.buffer);\n } else {\n reject(new Error('[softwareDecrypt] Failed to decrypt data'));\n }\n });\n }\n return this.webCryptoDecrypt(new Uint8Array(data), key, iv);\n }\n\n // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached\n // data is handled in the flush() call\n softwareDecrypt(data, key, iv) {\n const {\n currentIV,\n currentResult,\n remainderData\n } = this;\n this.logOnce('JS AES decrypt');\n // The output is staggered during progressive parsing - the current result is cached, and emitted on the next call\n // This is done in order to strip PKCS7 padding, which is found at the end of each segment. We only know we've reached\n // the end on flush(), but by that time we have already received all bytes for the segment.\n // Progressive decryption does not work with WebCrypto\n\n if (remainderData) {\n data = appendUint8Array(remainderData, data);\n this.remainderData = null;\n }\n\n // Byte length must be a multiple of 16 (AES-128 = 128 bit blocks = 16 bytes)\n const currentChunk = this.getValidChunk(data);\n if (!currentChunk.length) {\n return null;\n }\n if (currentIV) {\n iv = currentIV;\n }\n let softwareDecrypter = this.softwareDecrypter;\n if (!softwareDecrypter) {\n softwareDecrypter = this.softwareDecrypter = new AESDecryptor();\n }\n softwareDecrypter.expandKey(key);\n const result = currentResult;\n this.currentResult = softwareDecrypter.decrypt(currentChunk.buffer, 0, iv);\n this.currentIV = sliceUint8(currentChunk, -16).buffer;\n if (!result) {\n return null;\n }\n return result;\n }\n webCryptoDecrypt(data, key, iv) {\n if (this.key !== key || !this.fastAesKey) {\n if (!this.subtle) {\n return Promise.resolve(this.onWebCryptoError(data, key, iv));\n }\n this.key = key;\n this.fastAesKey = new FastAESKey(this.subtle, key);\n }\n return this.fastAesKey.expandKey().then(aesKey => {\n // decrypt using web crypto\n if (!this.subtle) {\n return Promise.reject(new Error('web crypto not initialized'));\n }\n this.logOnce('WebCrypto AES decrypt');\n const crypto = new AESCrypto(this.subtle, new Uint8Array(iv));\n return crypto.decrypt(data.buffer, aesKey);\n }).catch(err => {\n logger.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${err.name}: ${err.message}`);\n return this.onWebCryptoError(data, key, iv);\n });\n }\n onWebCryptoError(data, key, iv) {\n this.useSoftware = true;\n this.logEnabled = true;\n this.softwareDecrypt(data, key, iv);\n const decryptResult = this.flush();\n if (decryptResult) {\n return decryptResult.buffer;\n }\n throw new Error('WebCrypto and softwareDecrypt: failed to decrypt data');\n }\n getValidChunk(data) {\n let currentChunk = data;\n const splitPoint = data.length - data.length % CHUNK_SIZE;\n if (splitPoint !== data.length) {\n currentChunk = sliceUint8(data, 0, splitPoint);\n this.remainderData = sliceUint8(data, splitPoint);\n }\n return currentChunk;\n }\n logOnce(msg) {\n if (!this.logEnabled) {\n return;\n }\n logger.log(`[decrypter]: ${msg}`);\n this.logEnabled = false;\n }\n}\n\n/**\n * TimeRanges to string helper\n */\n\nconst TimeRanges = {\n toString: function (r) {\n let log = '';\n const len = r.length;\n for (let i = 0; i < len; i++) {\n log += `[${r.start(i).toFixed(3)}-${r.end(i).toFixed(3)}]`;\n }\n return log;\n }\n};\n\nconst State = {\n STOPPED: 'STOPPED',\n IDLE: 'IDLE',\n KEY_LOADING: 'KEY_LOADING',\n FRAG_LOADING: 'FRAG_LOADING',\n FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n WAITING_TRACK: 'WAITING_TRACK',\n PARSING: 'PARSING',\n PARSED: 'PARSED',\n ENDED: 'ENDED',\n ERROR: 'ERROR',\n WAITING_INIT_PTS: 'WAITING_INIT_PTS',\n WAITING_LEVEL: 'WAITING_LEVEL'\n};\nclass BaseStreamController extends TaskLoop {\n constructor(hls, fragmentTracker, keyLoader, logPrefix, playlistType) {\n super();\n this.hls = void 0;\n this.fragPrevious = null;\n this.fragCurrent = null;\n this.fragmentTracker = void 0;\n this.transmuxer = null;\n this._state = State.STOPPED;\n this.playlistType = void 0;\n this.media = null;\n this.mediaBuffer = null;\n this.config = void 0;\n this.bitrateTest = false;\n this.lastCurrentTime = 0;\n this.nextLoadPosition = 0;\n this.startPosition = 0;\n this.startTimeOffset = null;\n this.loadedmetadata = false;\n this.retryDate = 0;\n this.levels = null;\n this.fragmentLoader = void 0;\n this.keyLoader = void 0;\n this.levelLastLoaded = null;\n this.startFragRequested = false;\n this.decrypter = void 0;\n this.initPTS = [];\n this.buffering = true;\n this.onvseeking = null;\n this.onvended = null;\n this.logPrefix = '';\n this.log = void 0;\n this.warn = void 0;\n this.playlistType = playlistType;\n this.logPrefix = logPrefix;\n this.log = logger.log.bind(logger, `${logPrefix}:`);\n this.warn = logger.warn.bind(logger, `${logPrefix}:`);\n this.hls = hls;\n this.fragmentLoader = new FragmentLoader(hls.config);\n this.keyLoader = keyLoader;\n this.fragmentTracker = fragmentTracker;\n this.config = hls.config;\n this.decrypter = new Decrypter(hls.config);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n doTick() {\n this.onTickEnd();\n }\n onTickEnd() {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n startLoad(startPosition) {}\n stopLoad() {\n this.fragmentLoader.abort();\n this.keyLoader.abort(this.playlistType);\n const frag = this.fragCurrent;\n if (frag != null && frag.loader) {\n frag.abortRequests();\n this.fragmentTracker.removeFragment(frag);\n }\n this.resetTransmuxer();\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.clearInterval();\n this.clearNextTick();\n this.state = State.STOPPED;\n }\n pauseBuffering() {\n this.buffering = false;\n }\n resumeBuffering() {\n this.buffering = true;\n }\n _streamEnded(bufferInfo, levelDetails) {\n // If playlist is live, there is another buffered range after the current range, nothing buffered, media is detached,\n // of nothing loading/loaded return false\n if (levelDetails.live || bufferInfo.nextStart || !bufferInfo.end || !this.media) {\n return false;\n }\n const partList = levelDetails.partList;\n // Since the last part isn't guaranteed to correspond to the last playlist segment for Low-Latency HLS,\n // check instead if the last part is buffered.\n if (partList != null && partList.length) {\n const lastPart = partList[partList.length - 1];\n\n // Checking the midpoint of the part for potential margin of error and related issues.\n // NOTE: Technically I believe parts could yield content that is < the computed duration (including potential a duration of 0)\n // and still be spec-compliant, so there may still be edge cases here. Likewise, there could be issues in end of stream\n // part mismatches for independent audio and video playlists/segments.\n const lastPartBuffered = BufferHelper.isBuffered(this.media, lastPart.start + lastPart.duration / 2);\n return lastPartBuffered;\n }\n const playlistType = levelDetails.fragments[levelDetails.fragments.length - 1].type;\n return this.fragmentTracker.isEndListAppended(playlistType);\n }\n getLevelDetails() {\n if (this.levels && this.levelLastLoaded !== null) {\n var _this$levelLastLoaded;\n return (_this$levelLastLoaded = this.levelLastLoaded) == null ? void 0 : _this$levelLastLoaded.details;\n }\n }\n onMediaAttached(event, data) {\n const media = this.media = this.mediaBuffer = data.media;\n this.onvseeking = this.onMediaSeeking.bind(this);\n this.onvended = this.onMediaEnded.bind(this);\n media.addEventListener('seeking', this.onvseeking);\n media.addEventListener('ended', this.onvended);\n const config = this.config;\n if (this.levels && config.autoStartLoad && this.state === State.STOPPED) {\n this.startLoad(config.startPosition);\n }\n }\n onMediaDetaching() {\n const media = this.media;\n if (media != null && media.ended) {\n this.log('MSE detaching and video ended, reset startPosition');\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n // remove video listeners\n if (media && this.onvseeking && this.onvended) {\n media.removeEventListener('seeking', this.onvseeking);\n media.removeEventListener('ended', this.onvended);\n this.onvseeking = this.onvended = null;\n }\n if (this.keyLoader) {\n this.keyLoader.detach();\n }\n this.media = this.mediaBuffer = null;\n this.loadedmetadata = false;\n this.fragmentTracker.removeAllFragments();\n this.stopLoad();\n }\n onMediaSeeking() {\n const {\n config,\n fragCurrent,\n media,\n mediaBuffer,\n state\n } = this;\n const currentTime = media ? media.currentTime : 0;\n const bufferInfo = BufferHelper.bufferInfo(mediaBuffer ? mediaBuffer : media, currentTime, config.maxBufferHole);\n this.log(`media seeking to ${isFiniteNumber(currentTime) ? currentTime.toFixed(3) : currentTime}, state: ${state}`);\n if (this.state === State.ENDED) {\n this.resetLoadingState();\n } else if (fragCurrent) {\n // Seeking while frag load is in progress\n const tolerance = config.maxFragLookUpTolerance;\n const fragStartOffset = fragCurrent.start - tolerance;\n const fragEndOffset = fragCurrent.start + fragCurrent.duration + tolerance;\n // if seeking out of buffered range or into new one\n if (!bufferInfo.len || fragEndOffset < bufferInfo.start || fragStartOffset > bufferInfo.end) {\n const pastFragment = currentTime > fragEndOffset;\n // if the seek position is outside the current fragment range\n if (currentTime < fragStartOffset || pastFragment) {\n if (pastFragment && fragCurrent.loader) {\n this.log('seeking outside of buffer while fragment load in progress, cancel fragment load');\n fragCurrent.abortRequests();\n this.resetLoadingState();\n }\n this.fragPrevious = null;\n }\n }\n }\n if (media) {\n // Remove gap fragments\n this.fragmentTracker.removeFragmentsInRange(currentTime, Infinity, this.playlistType, true);\n this.lastCurrentTime = currentTime;\n }\n\n // in case seeking occurs although no media buffered, adjust startPosition and nextLoadPosition to seek target\n if (!this.loadedmetadata && !bufferInfo.len) {\n this.nextLoadPosition = this.startPosition = currentTime;\n }\n\n // Async tick to speed up processing\n this.tickImmediate();\n }\n onMediaEnded() {\n // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n this.startPosition = this.lastCurrentTime = 0;\n }\n onManifestLoaded(event, data) {\n this.startTimeOffset = data.startTimeOffset;\n this.initPTS = [];\n }\n onHandlerDestroying() {\n this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n this.stopLoad();\n super.onHandlerDestroying();\n // @ts-ignore\n this.hls = null;\n }\n onHandlerDestroyed() {\n this.state = State.STOPPED;\n if (this.fragmentLoader) {\n this.fragmentLoader.destroy();\n }\n if (this.keyLoader) {\n this.keyLoader.destroy();\n }\n if (this.decrypter) {\n this.decrypter.destroy();\n }\n this.hls = this.log = this.warn = this.decrypter = this.keyLoader = this.fragmentLoader = this.fragmentTracker = null;\n super.onHandlerDestroyed();\n }\n loadFragment(frag, level, targetBufferTime) {\n this._loadFragForPlayback(frag, level, targetBufferTime);\n }\n _loadFragForPlayback(frag, level, targetBufferTime) {\n const progressCallback = data => {\n if (this.fragContextChanged(frag)) {\n this.warn(`Fragment ${frag.sn}${data.part ? ' p: ' + data.part.index : ''} of level ${frag.level} was dropped during download.`);\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n frag.stats.chunkCount++;\n this._handleFragmentLoadProgress(data);\n };\n this._doFragLoad(frag, level, targetBufferTime, progressCallback).then(data => {\n if (!data) {\n // if we're here we probably needed to backtrack or are waiting for more parts\n return;\n }\n const state = this.state;\n if (this.fragContextChanged(frag)) {\n if (state === State.FRAG_LOADING || !this.fragCurrent && state === State.PARSING) {\n this.fragmentTracker.removeFragment(frag);\n this.state = State.IDLE;\n }\n return;\n }\n if ('payload' in data) {\n this.log(`Loaded fragment ${frag.sn} of level ${frag.level}`);\n this.hls.trigger(Events.FRAG_LOADED, data);\n }\n\n // Pass through the whole payload; controllers not implementing progressive loading receive data from this callback\n this._handleFragmentLoadComplete(data);\n }).catch(reason => {\n if (this.state === State.STOPPED || this.state === State.ERROR) {\n return;\n }\n this.warn(`Frag error: ${(reason == null ? void 0 : reason.message) || reason}`);\n this.resetFragmentLoading(frag);\n });\n }\n clearTrackerIfNeeded(frag) {\n var _this$mediaBuffer;\n const {\n fragmentTracker\n } = this;\n const fragState = fragmentTracker.getState(frag);\n if (fragState === FragmentState.APPENDING) {\n // Lower the max buffer length and try again\n const playlistType = frag.type;\n const bufferedInfo = this.getFwdBufferInfo(this.mediaBuffer, playlistType);\n const minForwardBufferLength = Math.max(frag.duration, bufferedInfo ? bufferedInfo.len : this.config.maxBufferLength);\n // If backtracking, always remove from the tracker without reducing max buffer length\n const backtrackFragment = this.backtrackFragment;\n const backtracked = backtrackFragment ? frag.sn - backtrackFragment.sn : 0;\n if (backtracked === 1 || this.reduceMaxBufferLength(minForwardBufferLength, frag.duration)) {\n fragmentTracker.removeFragment(frag);\n }\n } else if (((_this$mediaBuffer = this.mediaBuffer) == null ? void 0 : _this$mediaBuffer.buffered.length) === 0) {\n // Stop gap for bad tracker / buffer flush behavior\n fragmentTracker.removeAllFragments();\n } else if (fragmentTracker.hasParts(frag.type)) {\n // In low latency mode, remove fragments for which only some parts were buffered\n fragmentTracker.detectPartialFragments({\n frag,\n part: null,\n stats: frag.stats,\n id: frag.type\n });\n if (fragmentTracker.getState(frag) === FragmentState.PARTIAL) {\n fragmentTracker.removeFragment(frag);\n }\n }\n }\n checkLiveUpdate(details) {\n if (details.updated && !details.live) {\n // Live stream ended, update fragment tracker\n const lastFragment = details.fragments[details.fragments.length - 1];\n this.fragmentTracker.detectPartialFragments({\n frag: lastFragment,\n part: null,\n stats: lastFragment.stats,\n id: lastFragment.type\n });\n }\n if (!details.fragments[0]) {\n details.deltaUpdateFailed = true;\n }\n }\n flushMainBuffer(startOffset, endOffset, type = null) {\n if (!(startOffset - endOffset)) {\n return;\n }\n // When alternate audio is playing, the audio-stream-controller is responsible for the audio buffer. Otherwise,\n // passing a null type flushes both buffers\n const flushScope = {\n startOffset,\n endOffset,\n type\n };\n this.hls.trigger(Events.BUFFER_FLUSHING, flushScope);\n }\n _loadInitSegment(frag, level) {\n this._doFragLoad(frag, level).then(data => {\n if (!data || this.fragContextChanged(frag) || !this.levels) {\n throw new Error('init load aborted');\n }\n return data;\n }).then(data => {\n const {\n hls\n } = this;\n const {\n payload\n } = data;\n const decryptData = frag.decryptdata;\n\n // check to see if the payload needs to be decrypted\n if (payload && payload.byteLength > 0 && decryptData != null && decryptData.key && decryptData.iv && decryptData.method === 'AES-128') {\n const startTime = self.performance.now();\n // decrypt init segment data\n return this.decrypter.decrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).catch(err => {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_DECRYPT_ERROR,\n fatal: false,\n error: err,\n reason: err.message,\n frag\n });\n throw err;\n }).then(decryptedData => {\n const endTime = self.performance.now();\n hls.trigger(Events.FRAG_DECRYPTED, {\n frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime\n }\n });\n data.payload = decryptedData;\n return this.completeInitSegmentLoad(data);\n });\n }\n return this.completeInitSegmentLoad(data);\n }).catch(reason => {\n if (this.state === State.STOPPED || this.state === State.ERROR) {\n return;\n }\n this.warn(reason);\n this.resetFragmentLoading(frag);\n });\n }\n completeInitSegmentLoad(data) {\n const {\n levels\n } = this;\n if (!levels) {\n throw new Error('init load aborted, missing levels');\n }\n const stats = data.frag.stats;\n this.state = State.IDLE;\n data.frag.data = new Uint8Array(data.payload);\n stats.parsing.start = stats.buffering.start = self.performance.now();\n stats.parsing.end = stats.buffering.end = self.performance.now();\n this.tick();\n }\n fragContextChanged(frag) {\n const {\n fragCurrent\n } = this;\n return !frag || !fragCurrent || frag.sn !== fragCurrent.sn || frag.level !== fragCurrent.level;\n }\n fragBufferedComplete(frag, part) {\n var _frag$startPTS, _frag$endPTS, _this$fragCurrent, _this$fragPrevious;\n const media = this.mediaBuffer ? this.mediaBuffer : this.media;\n this.log(`Buffered ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.playlistType === PlaylistLevelType.MAIN ? 'level' : 'track'} ${frag.level} (frag:[${((_frag$startPTS = frag.startPTS) != null ? _frag$startPTS : NaN).toFixed(3)}-${((_frag$endPTS = frag.endPTS) != null ? _frag$endPTS : NaN).toFixed(3)}] > buffer:${media ? TimeRanges.toString(BufferHelper.getBuffered(media)) : '(detached)'})`);\n if (frag.sn !== 'initSegment') {\n var _this$levels;\n if (frag.type !== PlaylistLevelType.SUBTITLE) {\n const el = frag.elementaryStreams;\n if (!Object.keys(el).some(type => !!el[type])) {\n // empty segment\n this.state = State.IDLE;\n return;\n }\n }\n const level = (_this$levels = this.levels) == null ? void 0 : _this$levels[frag.level];\n if (level != null && level.fragmentError) {\n this.log(`Resetting level fragment error count of ${level.fragmentError} on frag buffered`);\n level.fragmentError = 0;\n }\n }\n this.state = State.IDLE;\n if (!media) {\n return;\n }\n if (!this.loadedmetadata && frag.type == PlaylistLevelType.MAIN && media.buffered.length && ((_this$fragCurrent = this.fragCurrent) == null ? void 0 : _this$fragCurrent.sn) === ((_this$fragPrevious = this.fragPrevious) == null ? void 0 : _this$fragPrevious.sn)) {\n this.loadedmetadata = true;\n this.seekToStartPos();\n }\n this.tick();\n }\n seekToStartPos() {}\n _handleFragmentLoadComplete(fragLoadedEndData) {\n const {\n transmuxer\n } = this;\n if (!transmuxer) {\n return;\n }\n const {\n frag,\n part,\n partsLoaded\n } = fragLoadedEndData;\n // If we did not load parts, or loaded all parts, we have complete (not partial) fragment data\n const complete = !partsLoaded || partsLoaded.length === 0 || partsLoaded.some(fragLoaded => !fragLoaded);\n const chunkMeta = new ChunkMetadata(frag.level, frag.sn, frag.stats.chunkCount + 1, 0, part ? part.index : -1, !complete);\n transmuxer.flush(chunkMeta);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _handleFragmentLoadProgress(frag) {}\n _doFragLoad(frag, level, targetBufferTime = null, progressCallback) {\n var _frag$decryptdata;\n const details = level == null ? void 0 : level.details;\n if (!this.levels || !details) {\n throw new Error(`frag load aborted, missing level${details ? '' : ' detail'}s`);\n }\n let keyLoadingPromise = null;\n if (frag.encrypted && !((_frag$decryptdata = frag.decryptdata) != null && _frag$decryptdata.key)) {\n this.log(`Loading key for ${frag.sn} of [${details.startSN}-${details.endSN}], ${this.logPrefix === '[stream-controller]' ? 'level' : 'track'} ${frag.level}`);\n this.state = State.KEY_LOADING;\n this.fragCurrent = frag;\n keyLoadingPromise = this.keyLoader.load(frag).then(keyLoadedData => {\n if (!this.fragContextChanged(keyLoadedData.frag)) {\n this.hls.trigger(Events.KEY_LOADED, keyLoadedData);\n if (this.state === State.KEY_LOADING) {\n this.state = State.IDLE;\n }\n return keyLoadedData;\n }\n });\n this.hls.trigger(Events.KEY_LOADING, {\n frag\n });\n if (this.fragCurrent === null) {\n keyLoadingPromise = Promise.reject(new Error(`frag load aborted, context changed in KEY_LOADING`));\n }\n } else if (!frag.encrypted && details.encryptedFragments.length) {\n this.keyLoader.loadClear(frag, details.encryptedFragments);\n }\n targetBufferTime = Math.max(frag.start, targetBufferTime || 0);\n if (this.config.lowLatencyMode && frag.sn !== 'initSegment') {\n const partList = details.partList;\n if (partList && progressCallback) {\n if (targetBufferTime > frag.end && details.fragmentHint) {\n frag = details.fragmentHint;\n }\n const partIndex = this.getNextPart(partList, frag, targetBufferTime);\n if (partIndex > -1) {\n const part = partList[partIndex];\n this.log(`Loading part sn: ${frag.sn} p: ${part.index} cc: ${frag.cc} of playlist [${details.startSN}-${details.endSN}] parts [0-${partIndex}-${partList.length - 1}] ${this.logPrefix === '[stream-controller]' ? 'level' : 'track'}: ${frag.level}, target: ${parseFloat(targetBufferTime.toFixed(3))}`);\n this.nextLoadPosition = part.start + part.duration;\n this.state = State.FRAG_LOADING;\n let _result;\n if (keyLoadingPromise) {\n _result = keyLoadingPromise.then(keyLoadedData => {\n if (!keyLoadedData || this.fragContextChanged(keyLoadedData.frag)) {\n return null;\n }\n return this.doFragPartsLoad(frag, part, level, progressCallback);\n }).catch(error => this.handleFragLoadError(error));\n } else {\n _result = this.doFragPartsLoad(frag, part, level, progressCallback).catch(error => this.handleFragLoadError(error));\n }\n this.hls.trigger(Events.FRAG_LOADING, {\n frag,\n part,\n targetBufferTime\n });\n if (this.fragCurrent === null) {\n return Promise.reject(new Error(`frag load aborted, context changed in FRAG_LOADING parts`));\n }\n return _result;\n } else if (!frag.url || this.loadedEndOfParts(partList, targetBufferTime)) {\n // Fragment hint has no parts\n return Promise.resolve(null);\n }\n }\n }\n this.log(`Loading fragment ${frag.sn} cc: ${frag.cc} ${details ? 'of [' + details.startSN + '-' + details.endSN + '] ' : ''}${this.logPrefix === '[stream-controller]' ? 'level' : 'track'}: ${frag.level}, target: ${parseFloat(targetBufferTime.toFixed(3))}`);\n // Don't update nextLoadPosition for fragments which are not buffered\n if (isFiniteNumber(frag.sn) && !this.bitrateTest) {\n this.nextLoadPosition = frag.start + frag.duration;\n }\n this.state = State.FRAG_LOADING;\n\n // Load key before streaming fragment data\n const dataOnProgress = this.config.progressive;\n let result;\n if (dataOnProgress && keyLoadingPromise) {\n result = keyLoadingPromise.then(keyLoadedData => {\n if (!keyLoadedData || this.fragContextChanged(keyLoadedData == null ? void 0 : keyLoadedData.frag)) {\n return null;\n }\n return this.fragmentLoader.load(frag, progressCallback);\n }).catch(error => this.handleFragLoadError(error));\n } else {\n // load unencrypted fragment data with progress event,\n // or handle fragment result after key and fragment are finished loading\n result = Promise.all([this.fragmentLoader.load(frag, dataOnProgress ? progressCallback : undefined), keyLoadingPromise]).then(([fragLoadedData]) => {\n if (!dataOnProgress && fragLoadedData && progressCallback) {\n progressCallback(fragLoadedData);\n }\n return fragLoadedData;\n }).catch(error => this.handleFragLoadError(error));\n }\n this.hls.trigger(Events.FRAG_LOADING, {\n frag,\n targetBufferTime\n });\n if (this.fragCurrent === null) {\n return Promise.reject(new Error(`frag load aborted, context changed in FRAG_LOADING`));\n }\n return result;\n }\n doFragPartsLoad(frag, fromPart, level, progressCallback) {\n return new Promise((resolve, reject) => {\n var _level$details;\n const partsLoaded = [];\n const initialPartList = (_level$details = level.details) == null ? void 0 : _level$details.partList;\n const loadPart = part => {\n this.fragmentLoader.loadPart(frag, part, progressCallback).then(partLoadedData => {\n partsLoaded[part.index] = partLoadedData;\n const loadedPart = partLoadedData.part;\n this.hls.trigger(Events.FRAG_LOADED, partLoadedData);\n const nextPart = getPartWith(level, frag.sn, part.index + 1) || findPart(initialPartList, frag.sn, part.index + 1);\n if (nextPart) {\n loadPart(nextPart);\n } else {\n return resolve({\n frag,\n part: loadedPart,\n partsLoaded\n });\n }\n }).catch(reject);\n };\n loadPart(fromPart);\n });\n }\n handleFragLoadError(error) {\n if ('data' in error) {\n const data = error.data;\n if (error.data && data.details === ErrorDetails.INTERNAL_ABORTED) {\n this.handleFragLoadAborted(data.frag, data.part);\n } else {\n this.hls.trigger(Events.ERROR, data);\n }\n } else {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n err: error,\n error,\n fatal: true\n });\n }\n return null;\n }\n _handleTransmuxerFlush(chunkMeta) {\n const context = this.getCurrentContext(chunkMeta);\n if (!context || this.state !== State.PARSING) {\n if (!this.fragCurrent && this.state !== State.STOPPED && this.state !== State.ERROR) {\n this.state = State.IDLE;\n }\n return;\n }\n const {\n frag,\n part,\n level\n } = context;\n const now = self.performance.now();\n frag.stats.parsing.end = now;\n if (part) {\n part.stats.parsing.end = now;\n }\n this.updateLevelTiming(frag, part, level, chunkMeta.partial);\n }\n getCurrentContext(chunkMeta) {\n const {\n levels,\n fragCurrent\n } = this;\n const {\n level: levelIndex,\n sn,\n part: partIndex\n } = chunkMeta;\n if (!(levels != null && levels[levelIndex])) {\n this.warn(`Levels object was unset while buffering fragment ${sn} of level ${levelIndex}. The current chunk will not be buffered.`);\n return null;\n }\n const level = levels[levelIndex];\n const part = partIndex > -1 ? getPartWith(level, sn, partIndex) : null;\n const frag = part ? part.fragment : getFragmentWithSN(level, sn, fragCurrent);\n if (!frag) {\n return null;\n }\n if (fragCurrent && fragCurrent !== frag) {\n frag.stats = fragCurrent.stats;\n }\n return {\n frag,\n part,\n level\n };\n }\n bufferFragmentData(data, frag, part, chunkMeta, noBacktracking) {\n var _buffer;\n if (!data || this.state !== State.PARSING) {\n return;\n }\n const {\n data1,\n data2\n } = data;\n let buffer = data1;\n if (data1 && data2) {\n // Combine the moof + mdat so that we buffer with a single append\n buffer = appendUint8Array(data1, data2);\n }\n if (!((_buffer = buffer) != null && _buffer.length)) {\n return;\n }\n const segment = {\n type: data.type,\n frag,\n part,\n chunkMeta,\n parent: frag.type,\n data: buffer\n };\n this.hls.trigger(Events.BUFFER_APPENDING, segment);\n if (data.dropped && data.independent && !part) {\n if (noBacktracking) {\n return;\n }\n // Clear buffer so that we reload previous segments sequentially if required\n this.flushBufferGap(frag);\n }\n }\n flushBufferGap(frag) {\n const media = this.media;\n if (!media) {\n return;\n }\n // If currentTime is not buffered, clear the back buffer so that we can backtrack as much as needed\n if (!BufferHelper.isBuffered(media, media.currentTime)) {\n this.flushMainBuffer(0, frag.start);\n return;\n }\n // Remove back-buffer without interrupting playback to allow back tracking\n const currentTime = media.currentTime;\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const fragDuration = frag.duration;\n const segmentFraction = Math.min(this.config.maxFragLookUpTolerance * 2, fragDuration * 0.25);\n const start = Math.max(Math.min(frag.start - segmentFraction, bufferInfo.end - segmentFraction), currentTime + segmentFraction);\n if (frag.start - start > segmentFraction) {\n this.flushMainBuffer(start, frag.start);\n }\n }\n getFwdBufferInfo(bufferable, type) {\n const pos = this.getLoadPosition();\n if (!isFiniteNumber(pos)) {\n return null;\n }\n return this.getFwdBufferInfoAtPos(bufferable, pos, type);\n }\n getFwdBufferInfoAtPos(bufferable, pos, type) {\n const {\n config: {\n maxBufferHole\n }\n } = this;\n const bufferInfo = BufferHelper.bufferInfo(bufferable, pos, maxBufferHole);\n // Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos\n if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {\n const bufferedFragAtPos = this.fragmentTracker.getBufferedFrag(pos, type);\n if (bufferedFragAtPos && bufferInfo.nextStart < bufferedFragAtPos.end) {\n return BufferHelper.bufferInfo(bufferable, pos, Math.max(bufferInfo.nextStart, maxBufferHole));\n }\n }\n return bufferInfo;\n }\n getMaxBufferLength(levelBitrate) {\n const {\n config\n } = this;\n let maxBufLen;\n if (levelBitrate) {\n maxBufLen = Math.max(8 * config.maxBufferSize / levelBitrate, config.maxBufferLength);\n } else {\n maxBufLen = config.maxBufferLength;\n }\n return Math.min(maxBufLen, config.maxMaxBufferLength);\n }\n reduceMaxBufferLength(threshold, fragDuration) {\n const config = this.config;\n const minLength = Math.max(Math.min(threshold - fragDuration, config.maxBufferLength), fragDuration);\n const reducedLength = Math.max(threshold - fragDuration * 3, config.maxMaxBufferLength / 2, minLength);\n if (reducedLength >= minLength) {\n // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n config.maxMaxBufferLength = reducedLength;\n this.warn(`Reduce max buffer length to ${reducedLength}s`);\n return true;\n }\n return false;\n }\n getAppendedFrag(position, playlistType = PlaylistLevelType.MAIN) {\n const fragOrPart = this.fragmentTracker.getAppendedFrag(position, PlaylistLevelType.MAIN);\n if (fragOrPart && 'fragment' in fragOrPart) {\n return fragOrPart.fragment;\n }\n return fragOrPart;\n }\n getNextFragment(pos, levelDetails) {\n const fragments = levelDetails.fragments;\n const fragLen = fragments.length;\n if (!fragLen) {\n return null;\n }\n\n // find fragment index, contiguous with end of buffer position\n const {\n config\n } = this;\n const start = fragments[0].start;\n let frag;\n if (levelDetails.live) {\n const initialLiveManifestSize = config.initialLiveManifestSize;\n if (fragLen < initialLiveManifestSize) {\n this.warn(`Not enough fragments to start playback (have: ${fragLen}, need: ${initialLiveManifestSize})`);\n return null;\n }\n // The real fragment start times for a live stream are only known after the PTS range for that level is known.\n // In order to discover the range, we load the best matching fragment for that level and demux it.\n // Do not load using live logic if the starting frag is requested - we want to use getFragmentAtPosition() so that\n // we get the fragment matching that start time\n if (!levelDetails.PTSKnown && !this.startFragRequested && this.startPosition === -1 || pos < start) {\n frag = this.getInitialLiveFragment(levelDetails, fragments);\n this.startPosition = this.nextLoadPosition = frag ? this.hls.liveSyncPosition || frag.start : pos;\n }\n } else if (pos <= start) {\n // VoD playlist: if loadPosition before start of playlist, load first fragment\n frag = fragments[0];\n }\n\n // If we haven't run into any special cases already, just load the fragment most closely matching the requested position\n if (!frag) {\n const end = config.lowLatencyMode ? levelDetails.partEnd : levelDetails.fragmentEnd;\n frag = this.getFragmentAtPosition(pos, end, levelDetails);\n }\n return this.mapToInitFragWhenRequired(frag);\n }\n isLoopLoading(frag, targetBufferTime) {\n const trackerState = this.fragmentTracker.getState(frag);\n return (trackerState === FragmentState.OK || trackerState === FragmentState.PARTIAL && !!frag.gap) && this.nextLoadPosition > targetBufferTime;\n }\n getNextFragmentLoopLoading(frag, levelDetails, bufferInfo, playlistType, maxBufLen) {\n const gapStart = frag.gap;\n const nextFragment = this.getNextFragment(this.nextLoadPosition, levelDetails);\n if (nextFragment === null) {\n return nextFragment;\n }\n frag = nextFragment;\n if (gapStart && frag && !frag.gap && bufferInfo.nextStart) {\n // Media buffered after GAP tags should not make the next buffer timerange exceed forward buffer length\n const nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType);\n if (nextbufferInfo !== null && bufferInfo.len + nextbufferInfo.len >= maxBufLen) {\n // Returning here might result in not finding an audio and video candiate to skip to\n this.log(`buffer full after gaps in \"${playlistType}\" playlist starting at sn: ${frag.sn}`);\n return null;\n }\n }\n return frag;\n }\n mapToInitFragWhenRequired(frag) {\n // If an initSegment is present, it must be buffered first\n if (frag != null && frag.initSegment && !(frag != null && frag.initSegment.data) && !this.bitrateTest) {\n return frag.initSegment;\n }\n return frag;\n }\n getNextPart(partList, frag, targetBufferTime) {\n let nextPart = -1;\n let contiguous = false;\n let independentAttrOmitted = true;\n for (let i = 0, len = partList.length; i < len; i++) {\n const part = partList[i];\n independentAttrOmitted = independentAttrOmitted && !part.independent;\n if (nextPart > -1 && targetBufferTime < part.start) {\n break;\n }\n const loaded = part.loaded;\n if (loaded) {\n nextPart = -1;\n } else if ((contiguous || part.independent || independentAttrOmitted) && part.fragment === frag) {\n nextPart = i;\n }\n contiguous = loaded;\n }\n return nextPart;\n }\n loadedEndOfParts(partList, targetBufferTime) {\n const lastPart = partList[partList.length - 1];\n return lastPart && targetBufferTime > lastPart.start && lastPart.loaded;\n }\n\n /*\n This method is used find the best matching first fragment for a live playlist. This fragment is used to calculate the\n \"sliding\" of the playlist, which is its offset from the start of playback. After sliding we can compute the real\n start and end times for each fragment in the playlist (after which this method will not need to be called).\n */\n getInitialLiveFragment(levelDetails, fragments) {\n const fragPrevious = this.fragPrevious;\n let frag = null;\n if (fragPrevious) {\n if (levelDetails.hasProgramDateTime) {\n // Prefer using PDT, because it can be accurate enough to choose the correct fragment without knowing the level sliding\n this.log(`Live playlist, switching playlist, load frag with same PDT: ${fragPrevious.programDateTime}`);\n frag = findFragmentByPDT(fragments, fragPrevious.endProgramDateTime, this.config.maxFragLookUpTolerance);\n }\n if (!frag) {\n // SN does not need to be accurate between renditions, but depending on the packaging it may be so.\n const targetSN = fragPrevious.sn + 1;\n if (targetSN >= levelDetails.startSN && targetSN <= levelDetails.endSN) {\n const fragNext = fragments[targetSN - levelDetails.startSN];\n // Ensure that we're staying within the continuity range, since PTS resets upon a new range\n if (fragPrevious.cc === fragNext.cc) {\n frag = fragNext;\n this.log(`Live playlist, switching playlist, load frag with next SN: ${frag.sn}`);\n }\n }\n // It's important to stay within the continuity range if available; otherwise the fragments in the playlist\n // will have the wrong start times\n if (!frag) {\n frag = findFragWithCC(fragments, fragPrevious.cc);\n if (frag) {\n this.log(`Live playlist, switching playlist, load frag with same CC: ${frag.sn}`);\n }\n }\n }\n } else {\n // Find a new start fragment when fragPrevious is null\n const liveStart = this.hls.liveSyncPosition;\n if (liveStart !== null) {\n frag = this.getFragmentAtPosition(liveStart, this.bitrateTest ? levelDetails.fragmentEnd : levelDetails.edge, levelDetails);\n }\n }\n return frag;\n }\n\n /*\n This method finds the best matching fragment given the provided position.\n */\n getFragmentAtPosition(bufferEnd, end, levelDetails) {\n const {\n config\n } = this;\n let {\n fragPrevious\n } = this;\n let {\n fragments,\n endSN\n } = levelDetails;\n const {\n fragmentHint\n } = levelDetails;\n const {\n maxFragLookUpTolerance\n } = config;\n const partList = levelDetails.partList;\n const loadingParts = !!(config.lowLatencyMode && partList != null && partList.length && fragmentHint);\n if (loadingParts && fragmentHint && !this.bitrateTest) {\n // Include incomplete fragment with parts at end\n fragments = fragments.concat(fragmentHint);\n endSN = fragmentHint.sn;\n }\n let frag;\n if (bufferEnd < end) {\n const lookupTolerance = bufferEnd > end - maxFragLookUpTolerance ? 0 : maxFragLookUpTolerance;\n // Remove the tolerance if it would put the bufferEnd past the actual end of stream\n // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n frag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, lookupTolerance);\n } else {\n // reach end of playlist\n frag = fragments[fragments.length - 1];\n }\n if (frag) {\n const curSNIdx = frag.sn - levelDetails.startSN;\n // Move fragPrevious forward to support forcing the next fragment to load\n // when the buffer catches up to a previously buffered range.\n const fragState = this.fragmentTracker.getState(frag);\n if (fragState === FragmentState.OK || fragState === FragmentState.PARTIAL && frag.gap) {\n fragPrevious = frag;\n }\n if (fragPrevious && frag.sn === fragPrevious.sn && (!loadingParts || partList[0].fragment.sn > frag.sn)) {\n // Force the next fragment to load if the previous one was already selected. This can occasionally happen with\n // non-uniform fragment durations\n const sameLevel = fragPrevious && frag.level === fragPrevious.level;\n if (sameLevel) {\n const nextFrag = fragments[curSNIdx + 1];\n if (frag.sn < endSN && this.fragmentTracker.getState(nextFrag) !== FragmentState.OK) {\n frag = nextFrag;\n } else {\n frag = null;\n }\n }\n }\n }\n return frag;\n }\n synchronizeToLiveEdge(levelDetails) {\n const {\n config,\n media\n } = this;\n if (!media) {\n return;\n }\n const liveSyncPosition = this.hls.liveSyncPosition;\n const currentTime = media.currentTime;\n const start = levelDetails.fragments[0].start;\n const end = levelDetails.edge;\n const withinSlidingWindow = currentTime >= start - config.maxFragLookUpTolerance && currentTime <= end;\n // Continue if we can seek forward to sync position or if current time is outside of sliding window\n if (liveSyncPosition !== null && media.duration > liveSyncPosition && (currentTime < liveSyncPosition || !withinSlidingWindow)) {\n // Continue if buffer is starving or if current time is behind max latency\n const maxLatency = config.liveMaxLatencyDuration !== undefined ? config.liveMaxLatencyDuration : config.liveMaxLatencyDurationCount * levelDetails.targetduration;\n if (!withinSlidingWindow && media.readyState < 4 || currentTime < end - maxLatency) {\n if (!this.loadedmetadata) {\n this.nextLoadPosition = liveSyncPosition;\n }\n // Only seek if ready and there is not a significant forward buffer available for playback\n if (media.readyState) {\n this.warn(`Playback: ${currentTime.toFixed(3)} is located too far from the end of live sliding playlist: ${end}, reset currentTime to : ${liveSyncPosition.toFixed(3)}`);\n media.currentTime = liveSyncPosition;\n }\n }\n }\n }\n alignPlaylists(details, previousDetails, switchDetails) {\n // FIXME: If not for `shouldAlignOnDiscontinuities` requiring fragPrevious.cc,\n // this could all go in level-helper mergeDetails()\n const length = details.fragments.length;\n if (!length) {\n this.warn(`No fragments in live playlist`);\n return 0;\n }\n const slidingStart = details.fragments[0].start;\n const firstLevelLoad = !previousDetails;\n const aligned = details.alignedSliding && isFiniteNumber(slidingStart);\n if (firstLevelLoad || !aligned && !slidingStart) {\n const {\n fragPrevious\n } = this;\n alignStream(fragPrevious, switchDetails, details);\n const alignedSlidingStart = details.fragments[0].start;\n this.log(`Live playlist sliding: ${alignedSlidingStart.toFixed(2)} start-sn: ${previousDetails ? previousDetails.startSN : 'na'}->${details.startSN} prev-sn: ${fragPrevious ? fragPrevious.sn : 'na'} fragments: ${length}`);\n return alignedSlidingStart;\n }\n return slidingStart;\n }\n waitForCdnTuneIn(details) {\n // Wait for Low-Latency CDN Tune-in to get an updated playlist\n const advancePartLimit = 3;\n return details.live && details.canBlockReload && details.partTarget && details.tuneInGoal > Math.max(details.partHoldBack, details.partTarget * advancePartLimit);\n }\n setStartPosition(details, sliding) {\n // compute start position if set to -1. use it straight away if value is defined\n let startPosition = this.startPosition;\n if (startPosition < sliding) {\n startPosition = -1;\n }\n if (startPosition === -1 || this.lastCurrentTime === -1) {\n // Use Playlist EXT-X-START:TIME-OFFSET when set\n // Prioritize Multivariant Playlist offset so that main, audio, and subtitle stream-controller start times match\n const offsetInMultivariantPlaylist = this.startTimeOffset !== null;\n const startTimeOffset = offsetInMultivariantPlaylist ? this.startTimeOffset : details.startTimeOffset;\n if (startTimeOffset !== null && isFiniteNumber(startTimeOffset)) {\n startPosition = sliding + startTimeOffset;\n if (startTimeOffset < 0) {\n startPosition += details.totalduration;\n }\n startPosition = Math.min(Math.max(sliding, startPosition), sliding + details.totalduration);\n this.log(`Start time offset ${startTimeOffset} found in ${offsetInMultivariantPlaylist ? 'multivariant' : 'media'} playlist, adjust startPosition to ${startPosition}`);\n this.startPosition = startPosition;\n } else if (details.live) {\n // Leave this.startPosition at -1, so that we can use `getInitialLiveFragment` logic when startPosition has\n // not been specified via the config or an as an argument to startLoad (#3736).\n startPosition = this.hls.liveSyncPosition || sliding;\n } else {\n this.startPosition = startPosition = 0;\n }\n this.lastCurrentTime = startPosition;\n }\n this.nextLoadPosition = startPosition;\n }\n getLoadPosition() {\n const {\n media\n } = this;\n // if we have not yet loaded any fragment, start loading from start position\n let pos = 0;\n if (this.loadedmetadata && media) {\n pos = media.currentTime;\n } else if (this.nextLoadPosition) {\n pos = this.nextLoadPosition;\n }\n return pos;\n }\n handleFragLoadAborted(frag, part) {\n if (this.transmuxer && frag.sn !== 'initSegment' && frag.stats.aborted) {\n this.warn(`Fragment ${frag.sn}${part ? ' part ' + part.index : ''} of level ${frag.level} was aborted`);\n this.resetFragmentLoading(frag);\n }\n }\n resetFragmentLoading(frag) {\n if (!this.fragCurrent || !this.fragContextChanged(frag) && this.state !== State.FRAG_LOADING_WAITING_RETRY) {\n this.state = State.IDLE;\n }\n }\n onFragmentOrKeyLoadError(filterType, data) {\n if (data.chunkMeta && !data.frag) {\n const context = this.getCurrentContext(data.chunkMeta);\n if (context) {\n data.frag = context.frag;\n }\n }\n const frag = data.frag;\n // Handle frag error related to caller's filterType\n if (!frag || frag.type !== filterType || !this.levels) {\n return;\n }\n if (this.fragContextChanged(frag)) {\n var _this$fragCurrent2;\n this.warn(`Frag load error must match current frag to retry ${frag.url} > ${(_this$fragCurrent2 = this.fragCurrent) == null ? void 0 : _this$fragCurrent2.url}`);\n return;\n }\n const gapTagEncountered = data.details === ErrorDetails.FRAG_GAP;\n if (gapTagEncountered) {\n this.fragmentTracker.fragBuffered(frag, true);\n }\n // keep retrying until the limit will be reached\n const errorAction = data.errorAction;\n const {\n action,\n retryCount = 0,\n retryConfig\n } = errorAction || {};\n if (errorAction && action === NetworkErrorAction.RetryRequest && retryConfig) {\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n const delay = getRetryDelay(retryConfig, retryCount);\n this.warn(`Fragment ${frag.sn} of ${filterType} ${frag.level} errored with ${data.details}, retrying loading ${retryCount + 1}/${retryConfig.maxNumRetry} in ${delay}ms`);\n errorAction.resolved = true;\n this.retryDate = self.performance.now() + delay;\n this.state = State.FRAG_LOADING_WAITING_RETRY;\n } else if (retryConfig && errorAction) {\n this.resetFragmentErrors(filterType);\n if (retryCount < retryConfig.maxNumRetry) {\n // Network retry is skipped when level switch is preferred\n if (!gapTagEncountered && action !== NetworkErrorAction.RemoveAlternatePermanently) {\n errorAction.resolved = true;\n }\n } else {\n logger.warn(`${data.details} reached or exceeded max retry (${retryCount})`);\n return;\n }\n } else if ((errorAction == null ? void 0 : errorAction.action) === NetworkErrorAction.SendAlternateToPenaltyBox) {\n this.state = State.WAITING_LEVEL;\n } else {\n this.state = State.ERROR;\n }\n // Perform next async tick sooner to speed up error action resolution\n this.tickImmediate();\n }\n reduceLengthAndFlushBuffer(data) {\n // if in appending state\n if (this.state === State.PARSING || this.state === State.PARSED) {\n const frag = data.frag;\n const playlistType = data.parent;\n const bufferedInfo = this.getFwdBufferInfo(this.mediaBuffer, playlistType);\n // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n // reduce max buf len if current position is buffered\n const buffered = bufferedInfo && bufferedInfo.len > 0.5;\n if (buffered) {\n this.reduceMaxBufferLength(bufferedInfo.len, (frag == null ? void 0 : frag.duration) || 10);\n }\n const flushBuffer = !buffered;\n if (flushBuffer) {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole audio buffer to recover\n this.warn(`Buffer full error while media.currentTime is not buffered, flush ${playlistType} buffer`);\n }\n if (frag) {\n this.fragmentTracker.removeFragment(frag);\n this.nextLoadPosition = frag.start;\n }\n this.resetLoadingState();\n return flushBuffer;\n }\n return false;\n }\n resetFragmentErrors(filterType) {\n if (filterType === PlaylistLevelType.AUDIO) {\n // Reset current fragment since audio track audio is essential and may not have a fail-over track\n this.fragCurrent = null;\n }\n // Fragment errors that result in a level switch or redundant fail-over\n // should reset the stream controller state to idle\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n }\n if (this.state !== State.STOPPED) {\n this.state = State.IDLE;\n }\n }\n afterBufferFlushed(media, bufferType, playlistType) {\n if (!media) {\n return;\n }\n // After successful buffer flushing, filter flushed fragments from bufferedFrags use mediaBuffered instead of media\n // (so that we will check against video.buffered ranges in case of alt audio track)\n const bufferedTimeRanges = BufferHelper.getBuffered(media);\n this.fragmentTracker.detectEvictedFragments(bufferType, bufferedTimeRanges, playlistType);\n if (this.state === State.ENDED) {\n this.resetLoadingState();\n }\n }\n resetLoadingState() {\n this.log('Reset loading state');\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.state = State.IDLE;\n }\n resetStartWhenNotLoaded(level) {\n // if loadedmetadata is not set, it means that first frag request failed\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n const details = level ? level.details : null;\n if (details != null && details.live) {\n // Update the start position and return to IDLE to recover live start\n this.startPosition = -1;\n this.setStartPosition(details, 0);\n this.resetLoadingState();\n } else {\n this.nextLoadPosition = this.startPosition;\n }\n }\n }\n resetWhenMissingContext(chunkMeta) {\n this.warn(`The loading context changed while buffering fragment ${chunkMeta.sn} of level ${chunkMeta.level}. This chunk will not be buffered.`);\n this.removeUnbufferedFrags();\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n this.resetLoadingState();\n }\n removeUnbufferedFrags(start = 0) {\n this.fragmentTracker.removeFragmentsInRange(start, Infinity, this.playlistType, false, true);\n }\n updateLevelTiming(frag, part, level, partial) {\n var _this$transmuxer;\n const details = level.details;\n if (!details) {\n this.warn('level.details undefined');\n return;\n }\n const parsed = Object.keys(frag.elementaryStreams).reduce((result, type) => {\n const info = frag.elementaryStreams[type];\n if (info) {\n const parsedDuration = info.endPTS - info.startPTS;\n if (parsedDuration <= 0) {\n // Destroy the transmuxer after it's next time offset failed to advance because duration was <= 0.\n // The new transmuxer will be configured with a time offset matching the next fragment start,\n // preventing the timeline from shifting.\n this.warn(`Could not parse fragment ${frag.sn} ${type} duration reliably (${parsedDuration})`);\n return result || false;\n }\n const drift = partial ? 0 : updateFragPTSDTS(details, frag, info.startPTS, info.endPTS, info.startDTS, info.endDTS);\n this.hls.trigger(Events.LEVEL_PTS_UPDATED, {\n details,\n level,\n drift,\n type,\n frag,\n start: info.startPTS,\n end: info.endPTS\n });\n return true;\n }\n return result;\n }, false);\n if (!parsed && ((_this$transmuxer = this.transmuxer) == null ? void 0 : _this$transmuxer.error) === null) {\n const error = new Error(`Found no media in fragment ${frag.sn} of level ${frag.level} resetting transmuxer to fallback to playlist timing`);\n if (level.fragmentError === 0) {\n // Mark and track the odd empty segment as a gap to avoid reloading\n level.fragmentError++;\n frag.gap = true;\n this.fragmentTracker.removeFragment(frag);\n this.fragmentTracker.fragBuffered(frag, true);\n }\n this.warn(error.message);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n error,\n frag,\n reason: `Found no media in msn ${frag.sn} of level \"${level.url}\"`\n });\n if (!this.hls) {\n return;\n }\n this.resetTransmuxer();\n // For this error fallthrough. Marking parsed will allow advancing to next fragment.\n }\n this.state = State.PARSED;\n this.hls.trigger(Events.FRAG_PARSED, {\n frag,\n part\n });\n }\n resetTransmuxer() {\n if (this.transmuxer) {\n this.transmuxer.destroy();\n this.transmuxer = null;\n }\n }\n recoverWorkerError(data) {\n if (data.event === 'demuxerWorker') {\n this.fragmentTracker.removeAllFragments();\n this.resetTransmuxer();\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n this.resetLoadingState();\n }\n }\n set state(nextState) {\n const previousState = this._state;\n if (previousState !== nextState) {\n this._state = nextState;\n this.log(`${previousState}->${nextState}`);\n }\n }\n get state() {\n return this._state;\n }\n}\n\nclass ChunkCache {\n constructor() {\n this.chunks = [];\n this.dataLength = 0;\n }\n push(chunk) {\n this.chunks.push(chunk);\n this.dataLength += chunk.length;\n }\n flush() {\n const {\n chunks,\n dataLength\n } = this;\n let result;\n if (!chunks.length) {\n return new Uint8Array(0);\n } else if (chunks.length === 1) {\n result = chunks[0];\n } else {\n result = concatUint8Arrays(chunks, dataLength);\n }\n this.reset();\n return result;\n }\n reset() {\n this.chunks.length = 0;\n this.dataLength = 0;\n }\n}\nfunction concatUint8Arrays(chunks, dataLength) {\n const result = new Uint8Array(dataLength);\n let offset = 0;\n for (let i = 0; i < chunks.length; i++) {\n const chunk = chunks[i];\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n}\n\n// ensure the worker ends up in the bundle\n// If the worker should not be included this gets aliased to empty.js\nfunction hasUMDWorker() {\n return typeof __HLS_WORKER_BUNDLE__ === 'function';\n}\nfunction injectWorker() {\n const blob = new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`], {\n type: 'text/javascript'\n });\n const objectURL = self.URL.createObjectURL(blob);\n const worker = new self.Worker(objectURL);\n return {\n worker,\n objectURL\n };\n}\nfunction loadWorker(path) {\n const scriptURL = new self.URL(path, self.location.href).href;\n const worker = new self.Worker(scriptURL);\n return {\n worker,\n scriptURL\n };\n}\n\nfunction dummyTrack(type = '', inputTimeScale = 90000) {\n return {\n type,\n id: -1,\n pid: -1,\n inputTimeScale,\n sequenceNumber: -1,\n samples: [],\n dropped: 0\n };\n}\n\nclass BaseAudioDemuxer {\n constructor() {\n this._audioTrack = void 0;\n this._id3Track = void 0;\n this.frameIndex = 0;\n this.cachedData = null;\n this.basePTS = null;\n this.initPTS = null;\n this.lastPTS = null;\n }\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n this._id3Track = {\n type: 'id3',\n id: 3,\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0\n };\n }\n resetTimeStamp(deaultTimestamp) {\n this.initPTS = deaultTimestamp;\n this.resetContiguity();\n }\n resetContiguity() {\n this.basePTS = null;\n this.lastPTS = null;\n this.frameIndex = 0;\n }\n canParse(data, offset) {\n return false;\n }\n appendFrame(track, data, offset) {}\n\n // feed incoming data to the front of the parsing pipeline\n demux(data, timeOffset) {\n if (this.cachedData) {\n data = appendUint8Array(this.cachedData, data);\n this.cachedData = null;\n }\n let id3Data = getID3Data(data, 0);\n let offset = id3Data ? id3Data.length : 0;\n let lastDataIndex;\n const track = this._audioTrack;\n const id3Track = this._id3Track;\n const timestamp = id3Data ? getTimeStamp(id3Data) : undefined;\n const length = data.length;\n if (this.basePTS === null || this.frameIndex === 0 && isFiniteNumber(timestamp)) {\n this.basePTS = initPTSFn(timestamp, timeOffset, this.initPTS);\n this.lastPTS = this.basePTS;\n }\n if (this.lastPTS === null) {\n this.lastPTS = this.basePTS;\n }\n\n // more expressive than alternative: id3Data?.length\n if (id3Data && id3Data.length > 0) {\n id3Track.samples.push({\n pts: this.lastPTS,\n dts: this.lastPTS,\n data: id3Data,\n type: MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY\n });\n }\n while (offset < length) {\n if (this.canParse(data, offset)) {\n const frame = this.appendFrame(track, data, offset);\n if (frame) {\n this.frameIndex++;\n this.lastPTS = frame.sample.pts;\n offset += frame.length;\n lastDataIndex = offset;\n } else {\n offset = length;\n }\n } else if (canParse$2(data, offset)) {\n // after a ID3.canParse, a call to ID3.getID3Data *should* always returns some data\n id3Data = getID3Data(data, offset);\n id3Track.samples.push({\n pts: this.lastPTS,\n dts: this.lastPTS,\n data: id3Data,\n type: MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY\n });\n offset += id3Data.length;\n lastDataIndex = offset;\n } else {\n offset++;\n }\n if (offset === length && lastDataIndex !== length) {\n const partialData = sliceUint8(data, lastDataIndex);\n if (this.cachedData) {\n this.cachedData = appendUint8Array(this.cachedData, partialData);\n } else {\n this.cachedData = partialData;\n }\n }\n }\n return {\n audioTrack: track,\n videoTrack: dummyTrack(),\n id3Track,\n textTrack: dummyTrack()\n };\n }\n demuxSampleAes(data, keyData, timeOffset) {\n return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`));\n }\n flush(timeOffset) {\n // Parse cache in case of remaining frames.\n const cachedData = this.cachedData;\n if (cachedData) {\n this.cachedData = null;\n this.demux(cachedData, 0);\n }\n return {\n audioTrack: this._audioTrack,\n videoTrack: dummyTrack(),\n id3Track: this._id3Track,\n textTrack: dummyTrack()\n };\n }\n destroy() {}\n}\n\n/**\n * Initialize PTS\n * <p>\n * use timestamp unless it is undefined, NaN or Infinity\n * </p>\n */\nconst initPTSFn = (timestamp, timeOffset, initPTS) => {\n if (isFiniteNumber(timestamp)) {\n return timestamp * 90;\n }\n const init90kHz = initPTS ? initPTS.baseTime * 90000 / initPTS.timescale : 0;\n return timeOffset * 90000 + init90kHz;\n};\n\n/**\n * ADTS parser helper\n * @link https://wiki.multimedia.cx/index.php?title=ADTS\n */\nfunction getAudioConfig(observer, data, offset, audioCodec) {\n let adtsObjectType;\n let adtsExtensionSamplingIndex;\n let adtsChannelConfig;\n let config;\n const userAgent = navigator.userAgent.toLowerCase();\n const manifestCodec = audioCodec;\n const adtsSamplingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];\n // byte 2\n adtsObjectType = ((data[offset + 2] & 0xc0) >>> 6) + 1;\n const adtsSamplingIndex = (data[offset + 2] & 0x3c) >>> 2;\n if (adtsSamplingIndex > adtsSamplingRates.length - 1) {\n const error = new Error(`invalid ADTS sampling index:${adtsSamplingIndex}`);\n observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: true,\n error,\n reason: error.message\n });\n return;\n }\n adtsChannelConfig = (data[offset + 2] & 0x01) << 2;\n // byte 3\n adtsChannelConfig |= (data[offset + 3] & 0xc0) >>> 6;\n logger.log(`manifest codec:${audioCodec}, ADTS type:${adtsObjectType}, samplingIndex:${adtsSamplingIndex}`);\n // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n if (/firefox/i.test(userAgent)) {\n if (adtsSamplingIndex >= 6) {\n adtsObjectType = 5;\n config = new Array(4);\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n }\n // Android : always use AAC\n } else if (userAgent.indexOf('android') !== -1) {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n } else {\n /* for other browsers (Chrome/Vivaldi/Opera ...)\n always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n */\n adtsObjectType = 5;\n config = new Array(4);\n // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n if (audioCodec && (audioCodec.indexOf('mp4a.40.29') !== -1 || audioCodec.indexOf('mp4a.40.5') !== -1) || !audioCodec && adtsSamplingIndex >= 6) {\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC. This is not a problem with stereo.\n if (audioCodec && audioCodec.indexOf('mp4a.40.2') !== -1 && (adtsSamplingIndex >= 6 && adtsChannelConfig === 1 || /vivaldi/i.test(userAgent)) || !audioCodec && adtsChannelConfig === 1) {\n adtsObjectType = 2;\n config = new Array(2);\n }\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n }\n }\n /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n ISO 14496-3 (AAC).pdf - Table 1.13 — Syntax of AudioSpecificConfig()\n Audio Profile / Audio Object Type\n 0: Null\n 1: AAC Main\n 2: AAC LC (Low Complexity)\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: SBR (Spectral Band Replication)\n 6: AAC Scalable\n sampling freq\n 0: 96000 Hz\n 1: 88200 Hz\n 2: 64000 Hz\n 3: 48000 Hz\n 4: 44100 Hz\n 5: 32000 Hz\n 6: 24000 Hz\n 7: 22050 Hz\n 8: 16000 Hz\n 9: 12000 Hz\n 10: 11025 Hz\n 11: 8000 Hz\n 12: 7350 Hz\n 13: Reserved\n 14: Reserved\n 15: frequency is written explictly\n Channel Configurations\n These are the channel configurations:\n 0: Defined in AOT Specifc Config\n 1: 1 channel: front-center\n 2: 2 channels: front-left, front-right\n */\n // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n config[0] = adtsObjectType << 3;\n // samplingFrequencyIndex\n config[0] |= (adtsSamplingIndex & 0x0e) >> 1;\n config[1] |= (adtsSamplingIndex & 0x01) << 7;\n // channelConfiguration\n config[1] |= adtsChannelConfig << 3;\n if (adtsObjectType === 5) {\n // adtsExtensionSamplingIndex\n config[1] |= (adtsExtensionSamplingIndex & 0x0e) >> 1;\n config[2] = (adtsExtensionSamplingIndex & 0x01) << 7;\n // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n // https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n return {\n config,\n samplerate: adtsSamplingRates[adtsSamplingIndex],\n channelCount: adtsChannelConfig,\n codec: 'mp4a.40.' + adtsObjectType,\n manifestCodec\n };\n}\nfunction isHeaderPattern$1(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\nfunction getHeaderLength(data, offset) {\n return data[offset + 1] & 0x01 ? 7 : 9;\n}\nfunction getFullFrameLength(data, offset) {\n return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xe0) >>> 5;\n}\nfunction canGetFrameLength(data, offset) {\n return offset + 5 < data.length;\n}\nfunction isHeader$1(data, offset) {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n return offset + 1 < data.length && isHeaderPattern$1(data, offset);\n}\nfunction canParse$1(data, offset) {\n return canGetFrameLength(data, offset) && isHeaderPattern$1(data, offset) && getFullFrameLength(data, offset) <= data.length - offset;\n}\nfunction probe$1(data, offset) {\n // same as isHeader but we also check that ADTS frame follows last ADTS frame\n // or end of data is reached\n if (isHeader$1(data, offset)) {\n // ADTS header Length\n const headerLength = getHeaderLength(data, offset);\n if (offset + headerLength >= data.length) {\n return false;\n }\n // ADTS frame Length\n const frameLength = getFullFrameLength(data, offset);\n if (frameLength <= headerLength) {\n return false;\n }\n const newOffset = offset + frameLength;\n return newOffset === data.length || isHeader$1(data, newOffset);\n }\n return false;\n}\nfunction initTrackConfig(track, observer, data, offset, audioCodec) {\n if (!track.samplerate) {\n const config = getAudioConfig(observer, data, offset, audioCodec);\n if (!config) {\n return;\n }\n track.config = config.config;\n track.samplerate = config.samplerate;\n track.channelCount = config.channelCount;\n track.codec = config.codec;\n track.manifestCodec = config.manifestCodec;\n logger.log(`parsed codec:${track.codec}, rate:${config.samplerate}, channels:${config.channelCount}`);\n }\n}\nfunction getFrameDuration(samplerate) {\n return 1024 * 90000 / samplerate;\n}\nfunction parseFrameHeader(data, offset) {\n // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n const headerLength = getHeaderLength(data, offset);\n if (offset + headerLength <= data.length) {\n // retrieve frame size\n const frameLength = getFullFrameLength(data, offset) - headerLength;\n if (frameLength > 0) {\n // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}`);\n return {\n headerLength,\n frameLength\n };\n }\n }\n}\nfunction appendFrame$2(track, data, offset, pts, frameIndex) {\n const frameDuration = getFrameDuration(track.samplerate);\n const stamp = pts + frameIndex * frameDuration;\n const header = parseFrameHeader(data, offset);\n let unit;\n if (header) {\n const {\n frameLength,\n headerLength\n } = header;\n const _length = headerLength + frameLength;\n const missing = Math.max(0, offset + _length - data.length);\n // logger.log(`AAC frame ${frameIndex}, pts:${stamp} length@offset/total: ${frameLength}@${offset+headerLength}/${data.byteLength} missing: ${missing}`);\n if (missing) {\n unit = new Uint8Array(_length - headerLength);\n unit.set(data.subarray(offset + headerLength, data.length), 0);\n } else {\n unit = data.subarray(offset + headerLength, offset + _length);\n }\n const _sample = {\n unit,\n pts: stamp\n };\n if (!missing) {\n track.samples.push(_sample);\n }\n return {\n sample: _sample,\n length: _length,\n missing\n };\n }\n // overflow incomplete header\n const length = data.length - offset;\n unit = new Uint8Array(length);\n unit.set(data.subarray(offset, data.length), 0);\n const sample = {\n unit,\n pts: stamp\n };\n return {\n sample,\n length,\n missing: -1\n };\n}\n\n/**\n * MPEG parser helper\n */\n\nlet chromeVersion$1 = null;\nconst BitratesMap = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160];\nconst SamplingRateMap = [44100, 48000, 32000, 22050, 24000, 16000, 11025, 12000, 8000];\nconst SamplesCoefficients = [\n// MPEG 2.5\n[0,\n// Reserved\n72,\n// Layer3\n144,\n// Layer2\n12 // Layer1\n],\n// Reserved\n[0,\n// Reserved\n0,\n// Layer3\n0,\n// Layer2\n0 // Layer1\n],\n// MPEG 2\n[0,\n// Reserved\n72,\n// Layer3\n144,\n// Layer2\n12 // Layer1\n],\n// MPEG 1\n[0,\n// Reserved\n144,\n// Layer3\n144,\n// Layer2\n12 // Layer1\n]];\nconst BytesInSlot = [0,\n// Reserved\n1,\n// Layer3\n1,\n// Layer2\n4 // Layer1\n];\nfunction appendFrame$1(track, data, offset, pts, frameIndex) {\n // Using http://www.datavoyage.com/mpgscript/mpeghdr.htm as a reference\n if (offset + 24 > data.length) {\n return;\n }\n const header = parseHeader(data, offset);\n if (header && offset + header.frameLength <= data.length) {\n const frameDuration = header.samplesPerFrame * 90000 / header.sampleRate;\n const stamp = pts + frameIndex * frameDuration;\n const sample = {\n unit: data.subarray(offset, offset + header.frameLength),\n pts: stamp,\n dts: stamp\n };\n track.config = [];\n track.channelCount = header.channelCount;\n track.samplerate = header.sampleRate;\n track.samples.push(sample);\n return {\n sample,\n length: header.frameLength,\n missing: 0\n };\n }\n}\nfunction parseHeader(data, offset) {\n const mpegVersion = data[offset + 1] >> 3 & 3;\n const mpegLayer = data[offset + 1] >> 1 & 3;\n const bitRateIndex = data[offset + 2] >> 4 & 15;\n const sampleRateIndex = data[offset + 2] >> 2 & 3;\n if (mpegVersion !== 1 && bitRateIndex !== 0 && bitRateIndex !== 15 && sampleRateIndex !== 3) {\n const paddingBit = data[offset + 2] >> 1 & 1;\n const channelMode = data[offset + 3] >> 6;\n const columnInBitrates = mpegVersion === 3 ? 3 - mpegLayer : mpegLayer === 3 ? 3 : 4;\n const bitRate = BitratesMap[columnInBitrates * 14 + bitRateIndex - 1] * 1000;\n const columnInSampleRates = mpegVersion === 3 ? 0 : mpegVersion === 2 ? 1 : 2;\n const sampleRate = SamplingRateMap[columnInSampleRates * 3 + sampleRateIndex];\n const channelCount = channelMode === 3 ? 1 : 2; // If bits of channel mode are `11` then it is a single channel (Mono)\n const sampleCoefficient = SamplesCoefficients[mpegVersion][mpegLayer];\n const bytesInSlot = BytesInSlot[mpegLayer];\n const samplesPerFrame = sampleCoefficient * 8 * bytesInSlot;\n const frameLength = Math.floor(sampleCoefficient * bitRate / sampleRate + paddingBit) * bytesInSlot;\n if (chromeVersion$1 === null) {\n const userAgent = navigator.userAgent || '';\n const result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion$1 = result ? parseInt(result[1]) : 0;\n }\n const needChromeFix = !!chromeVersion$1 && chromeVersion$1 <= 87;\n if (needChromeFix && mpegLayer === 2 && bitRate >= 224000 && channelMode === 0) {\n // Work around bug in Chromium by setting channelMode to dual-channel (01) instead of stereo (00)\n data[offset + 3] = data[offset + 3] | 0x80;\n }\n return {\n sampleRate,\n channelCount,\n frameLength,\n samplesPerFrame\n };\n }\n}\nfunction isHeaderPattern(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00;\n}\nfunction isHeader(data, offset) {\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n return offset + 1 < data.length && isHeaderPattern(data, offset);\n}\nfunction canParse(data, offset) {\n const headerSize = 4;\n return isHeaderPattern(data, offset) && headerSize <= data.length - offset;\n}\nfunction probe(data, offset) {\n // same as isHeader but we also check that MPEG frame follows last MPEG frame\n // or end of data is reached\n if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n // MPEG header Length\n const headerLength = 4;\n // MPEG frame Length\n const header = parseHeader(data, offset);\n let frameLength = headerLength;\n if (header != null && header.frameLength) {\n frameLength = header.frameLength;\n }\n const newOffset = offset + frameLength;\n return newOffset === data.length || isHeader(data, newOffset);\n }\n return false;\n}\n\n/**\n * AAC demuxer\n */\nclass AACDemuxer extends BaseAudioDemuxer {\n constructor(observer, config) {\n super();\n this.observer = void 0;\n this.config = void 0;\n this.observer = observer;\n this.config = config;\n }\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/adts',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'aac',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0\n };\n }\n\n // Source for probe info - https://wiki.multimedia.cx/index.php?title=ADTS\n static probe(data) {\n if (!data) {\n return false;\n }\n\n // Check for the ADTS sync word\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n const id3Data = getID3Data(data, 0);\n let offset = (id3Data == null ? void 0 : id3Data.length) || 0;\n if (probe(data, offset)) {\n return false;\n }\n for (let length = data.length; offset < length; offset++) {\n if (probe$1(data, offset)) {\n logger.log('ADTS sync word found !');\n return true;\n }\n }\n return false;\n }\n canParse(data, offset) {\n return canParse$1(data, offset);\n }\n appendFrame(track, data, offset) {\n initTrackConfig(track, this.observer, data, offset, track.manifestCodec);\n const frame = appendFrame$2(track, data, offset, this.basePTS, this.frameIndex);\n if (frame && frame.missing === 0) {\n return frame;\n }\n }\n}\n\nconst emsgSchemePattern = /\\/emsg[-/]ID3/i;\nclass MP4Demuxer {\n constructor(observer, config) {\n this.remainderData = null;\n this.timeOffset = 0;\n this.config = void 0;\n this.videoTrack = void 0;\n this.audioTrack = void 0;\n this.id3Track = void 0;\n this.txtTrack = void 0;\n this.config = config;\n }\n resetTimeStamp() {}\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n const videoTrack = this.videoTrack = dummyTrack('video', 1);\n const audioTrack = this.audioTrack = dummyTrack('audio', 1);\n const captionTrack = this.txtTrack = dummyTrack('text', 1);\n this.id3Track = dummyTrack('id3', 1);\n this.timeOffset = 0;\n if (!(initSegment != null && initSegment.byteLength)) {\n return;\n }\n const initData = parseInitSegment(initSegment);\n if (initData.video) {\n const {\n id,\n timescale,\n codec\n } = initData.video;\n videoTrack.id = id;\n videoTrack.timescale = captionTrack.timescale = timescale;\n videoTrack.codec = codec;\n }\n if (initData.audio) {\n const {\n id,\n timescale,\n codec\n } = initData.audio;\n audioTrack.id = id;\n audioTrack.timescale = timescale;\n audioTrack.codec = codec;\n }\n captionTrack.id = RemuxerTrackIdConfig.text;\n videoTrack.sampleDuration = 0;\n videoTrack.duration = audioTrack.duration = trackDuration;\n }\n resetContiguity() {\n this.remainderData = null;\n }\n static probe(data) {\n return hasMoofData(data);\n }\n demux(data, timeOffset) {\n this.timeOffset = timeOffset;\n // Load all data into the avc track. The CMAF remuxer will look for the data in the samples object; the rest of the fields do not matter\n let videoSamples = data;\n const videoTrack = this.videoTrack;\n const textTrack = this.txtTrack;\n if (this.config.progressive) {\n // Split the bytestream into two ranges: one encompassing all data up until the start of the last moof, and everything else.\n // This is done to guarantee that we're sending valid data to MSE - when demuxing progressively, we have no guarantee\n // that the fetch loader gives us flush moof+mdat pairs. If we push jagged data to MSE, it will throw an exception.\n if (this.remainderData) {\n videoSamples = appendUint8Array(this.remainderData, data);\n }\n const segmentedData = segmentValidRange(videoSamples);\n this.remainderData = segmentedData.remainder;\n videoTrack.samples = segmentedData.valid || new Uint8Array();\n } else {\n videoTrack.samples = videoSamples;\n }\n const id3Track = this.extractID3Track(videoTrack, timeOffset);\n textTrack.samples = parseSamples(timeOffset, videoTrack);\n return {\n videoTrack,\n audioTrack: this.audioTrack,\n id3Track,\n textTrack: this.txtTrack\n };\n }\n flush() {\n const timeOffset = this.timeOffset;\n const videoTrack = this.videoTrack;\n const textTrack = this.txtTrack;\n videoTrack.samples = this.remainderData || new Uint8Array();\n this.remainderData = null;\n const id3Track = this.extractID3Track(videoTrack, this.timeOffset);\n textTrack.samples = parseSamples(timeOffset, videoTrack);\n return {\n videoTrack,\n audioTrack: dummyTrack(),\n id3Track,\n textTrack: dummyTrack()\n };\n }\n extractID3Track(videoTrack, timeOffset) {\n const id3Track = this.id3Track;\n if (videoTrack.samples.length) {\n const emsgs = findBox(videoTrack.samples, ['emsg']);\n if (emsgs) {\n emsgs.forEach(data => {\n const emsgInfo = parseEmsg(data);\n if (emsgSchemePattern.test(emsgInfo.schemeIdUri)) {\n const pts = isFiniteNumber(emsgInfo.presentationTime) ? emsgInfo.presentationTime / emsgInfo.timeScale : timeOffset + emsgInfo.presentationTimeDelta / emsgInfo.timeScale;\n let duration = emsgInfo.eventDuration === 0xffffffff ? Number.POSITIVE_INFINITY : emsgInfo.eventDuration / emsgInfo.timeScale;\n // Safari takes anything <= 0.001 seconds and maps it to Infinity\n if (duration <= 0.001) {\n duration = Number.POSITIVE_INFINITY;\n }\n const payload = emsgInfo.payload;\n id3Track.samples.push({\n data: payload,\n len: payload.byteLength,\n dts: pts,\n pts: pts,\n type: MetadataSchema.emsg,\n duration: duration\n });\n }\n });\n }\n }\n return id3Track;\n }\n demuxSampleAes(data, keyData, timeOffset) {\n return Promise.reject(new Error('The MP4 demuxer does not support SAMPLE-AES decryption'));\n }\n destroy() {}\n}\n\nconst getAudioBSID = (data, offset) => {\n // check the bsid to confirm ac-3 | ec-3\n let bsid = 0;\n let numBits = 5;\n offset += numBits;\n const temp = new Uint32Array(1); // unsigned 32 bit for temporary storage\n const mask = new Uint32Array(1); // unsigned 32 bit mask value\n const byte = new Uint8Array(1); // unsigned 8 bit for temporary storage\n while (numBits > 0) {\n byte[0] = data[offset];\n // read remaining bits, upto 8 bits at a time\n const bits = Math.min(numBits, 8);\n const shift = 8 - bits;\n mask[0] = 0xff000000 >>> 24 + shift << shift;\n temp[0] = (byte[0] & mask[0]) >> shift;\n bsid = !bsid ? temp[0] : bsid << bits | temp[0];\n offset += 1;\n numBits -= bits;\n }\n return bsid;\n};\n\nclass AC3Demuxer extends BaseAudioDemuxer {\n constructor(observer) {\n super();\n this.observer = void 0;\n this.observer = observer;\n }\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/ac-3',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'ac3',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0\n };\n }\n canParse(data, offset) {\n return offset + 64 < data.length;\n }\n appendFrame(track, data, offset) {\n const frameLength = appendFrame(track, data, offset, this.basePTS, this.frameIndex);\n if (frameLength !== -1) {\n const sample = track.samples[track.samples.length - 1];\n return {\n sample,\n length: frameLength,\n missing: 0\n };\n }\n }\n static probe(data) {\n if (!data) {\n return false;\n }\n const id3Data = getID3Data(data, 0);\n if (!id3Data) {\n return false;\n }\n\n // look for the ac-3 sync bytes\n const offset = id3Data.length;\n if (data[offset] === 0x0b && data[offset + 1] === 0x77 && getTimeStamp(id3Data) !== undefined &&\n // check the bsid to confirm ac-3\n getAudioBSID(data, offset) < 16) {\n return true;\n }\n return false;\n }\n}\nfunction appendFrame(track, data, start, pts, frameIndex) {\n if (start + 8 > data.length) {\n return -1; // not enough bytes left\n }\n if (data[start] !== 0x0b || data[start + 1] !== 0x77) {\n return -1; // invalid magic\n }\n\n // get sample rate\n const samplingRateCode = data[start + 4] >> 6;\n if (samplingRateCode >= 3) {\n return -1; // invalid sampling rate\n }\n const samplingRateMap = [48000, 44100, 32000];\n const sampleRate = samplingRateMap[samplingRateCode];\n\n // get frame size\n const frameSizeCode = data[start + 4] & 0x3f;\n const frameSizeMap = [64, 69, 96, 64, 70, 96, 80, 87, 120, 80, 88, 120, 96, 104, 144, 96, 105, 144, 112, 121, 168, 112, 122, 168, 128, 139, 192, 128, 140, 192, 160, 174, 240, 160, 175, 240, 192, 208, 288, 192, 209, 288, 224, 243, 336, 224, 244, 336, 256, 278, 384, 256, 279, 384, 320, 348, 480, 320, 349, 480, 384, 417, 576, 384, 418, 576, 448, 487, 672, 448, 488, 672, 512, 557, 768, 512, 558, 768, 640, 696, 960, 640, 697, 960, 768, 835, 1152, 768, 836, 1152, 896, 975, 1344, 896, 976, 1344, 1024, 1114, 1536, 1024, 1115, 1536, 1152, 1253, 1728, 1152, 1254, 1728, 1280, 1393, 1920, 1280, 1394, 1920];\n const frameLength = frameSizeMap[frameSizeCode * 3 + samplingRateCode] * 2;\n if (start + frameLength > data.length) {\n return -1;\n }\n\n // get channel count\n const channelMode = data[start + 6] >> 5;\n let skipCount = 0;\n if (channelMode === 2) {\n skipCount += 2;\n } else {\n if (channelMode & 1 && channelMode !== 1) {\n skipCount += 2;\n }\n if (channelMode & 4) {\n skipCount += 2;\n }\n }\n const lfeon = (data[start + 6] << 8 | data[start + 7]) >> 12 - skipCount & 1;\n const channelsMap = [2, 1, 2, 3, 3, 4, 4, 5];\n const channelCount = channelsMap[channelMode] + lfeon;\n\n // build dac3 box\n const bsid = data[start + 5] >> 3;\n const bsmod = data[start + 5] & 7;\n const config = new Uint8Array([samplingRateCode << 6 | bsid << 1 | bsmod >> 2, (bsmod & 3) << 6 | channelMode << 3 | lfeon << 2 | frameSizeCode >> 4, frameSizeCode << 4 & 0xe0]);\n const frameDuration = 1536 / sampleRate * 90000;\n const stamp = pts + frameIndex * frameDuration;\n const unit = data.subarray(start, start + frameLength);\n track.config = config;\n track.channelCount = channelCount;\n track.samplerate = sampleRate;\n track.samples.push({\n unit,\n pts: stamp\n });\n return frameLength;\n}\n\nclass BaseVideoParser {\n constructor() {\n this.VideoSample = null;\n }\n createVideoSample(key, pts, dts, debug) {\n return {\n key,\n frame: false,\n pts,\n dts,\n units: [],\n debug,\n length: 0\n };\n }\n getLastNalUnit(samples) {\n var _VideoSample;\n let VideoSample = this.VideoSample;\n let lastUnit;\n // try to fallback to previous sample if current one is empty\n if (!VideoSample || VideoSample.units.length === 0) {\n VideoSample = samples[samples.length - 1];\n }\n if ((_VideoSample = VideoSample) != null && _VideoSample.units) {\n const units = VideoSample.units;\n lastUnit = units[units.length - 1];\n }\n return lastUnit;\n }\n pushAccessUnit(VideoSample, videoTrack) {\n if (VideoSample.units.length && VideoSample.frame) {\n // if sample does not have PTS/DTS, patch with last sample PTS/DTS\n if (VideoSample.pts === undefined) {\n const samples = videoTrack.samples;\n const nbSamples = samples.length;\n if (nbSamples) {\n const lastSample = samples[nbSamples - 1];\n VideoSample.pts = lastSample.pts;\n VideoSample.dts = lastSample.dts;\n } else {\n // dropping samples, no timestamp found\n videoTrack.dropped++;\n return;\n }\n }\n videoTrack.samples.push(VideoSample);\n }\n if (VideoSample.debug.length) {\n logger.log(VideoSample.pts + '/' + VideoSample.dts + ':' + VideoSample.debug);\n }\n }\n}\n\n/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n */\n\nclass ExpGolomb {\n constructor(data) {\n this.data = void 0;\n this.bytesAvailable = void 0;\n this.word = void 0;\n this.bitsAvailable = void 0;\n this.data = data;\n // the number of bytes left to examine in this.data\n this.bytesAvailable = data.byteLength;\n // the current word being examined\n this.word = 0; // :uint\n // the number of bits left to examine in the current word\n this.bitsAvailable = 0; // :uint\n }\n\n // ():void\n loadWord() {\n const data = this.data;\n const bytesAvailable = this.bytesAvailable;\n const position = data.byteLength - bytesAvailable;\n const workingBytes = new Uint8Array(4);\n const availableBytes = Math.min(4, bytesAvailable);\n if (availableBytes === 0) {\n throw new Error('no bytes available');\n }\n workingBytes.set(data.subarray(position, position + availableBytes));\n this.word = new DataView(workingBytes.buffer).getUint32(0);\n // track the amount of this.data that has been processed\n this.bitsAvailable = availableBytes * 8;\n this.bytesAvailable -= availableBytes;\n }\n\n // (count:int):void\n skipBits(count) {\n let skipBytes; // :int\n count = Math.min(count, this.bytesAvailable * 8 + this.bitsAvailable);\n if (this.bitsAvailable > count) {\n this.word <<= count;\n this.bitsAvailable -= count;\n } else {\n count -= this.bitsAvailable;\n skipBytes = count >> 3;\n count -= skipBytes << 3;\n this.bytesAvailable -= skipBytes;\n this.loadWord();\n this.word <<= count;\n this.bitsAvailable -= count;\n }\n }\n\n // (size:int):uint\n readBits(size) {\n let bits = Math.min(this.bitsAvailable, size); // :uint\n const valu = this.word >>> 32 - bits; // :uint\n if (size > 32) {\n logger.error('Cannot read more than 32 bits at a time');\n }\n this.bitsAvailable -= bits;\n if (this.bitsAvailable > 0) {\n this.word <<= bits;\n } else if (this.bytesAvailable > 0) {\n this.loadWord();\n } else {\n throw new Error('no bits available');\n }\n bits = size - bits;\n if (bits > 0 && this.bitsAvailable) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n }\n\n // ():uint\n skipLZ() {\n let leadingZeroCount; // :uint\n for (leadingZeroCount = 0; leadingZeroCount < this.bitsAvailable; ++leadingZeroCount) {\n if ((this.word & 0x80000000 >>> leadingZeroCount) !== 0) {\n // the first bit of working word is 1\n this.word <<= leadingZeroCount;\n this.bitsAvailable -= leadingZeroCount;\n return leadingZeroCount;\n }\n }\n // we exhausted word and still have not found a 1\n this.loadWord();\n return leadingZeroCount + this.skipLZ();\n }\n\n // ():void\n skipUEG() {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():void\n skipEG() {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():uint\n readUEG() {\n const clz = this.skipLZ(); // :uint\n return this.readBits(clz + 1) - 1;\n }\n\n // ():int\n readEG() {\n const valu = this.readUEG(); // :int\n if (0x01 & valu) {\n // the number is odd if the low order bit is set\n return 1 + valu >>> 1; // add 1 to make it even, and divide by 2\n } else {\n return -1 * (valu >>> 1); // divide by two then make it negative\n }\n }\n\n // Some convenience functions\n // :Boolean\n readBoolean() {\n return this.readBits(1) === 1;\n }\n\n // ():int\n readUByte() {\n return this.readBits(8);\n }\n\n // ():int\n readUShort() {\n return this.readBits(16);\n }\n\n // ():int\n readUInt() {\n return this.readBits(32);\n }\n\n /**\n * Advance the ExpGolomb decoder past a scaling list. The scaling\n * list is optionally transmitted as part of a sequence parameter\n * set and is not relevant to transmuxing.\n * @param count the number of entries in this scaling list\n * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n */\n skipScalingList(count) {\n let lastScale = 8;\n let nextScale = 8;\n let deltaScale;\n for (let j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n\n /**\n * Read a sequence parameter set and return some interesting video\n * properties. A sequence parameter set is the H264 metadata that\n * describes the properties of upcoming video frames.\n * @returns an object with configuration parsed from the\n * sequence parameter set, including the dimensions of the\n * associated video frames.\n */\n readSPS() {\n let frameCropLeftOffset = 0;\n let frameCropRightOffset = 0;\n let frameCropTopOffset = 0;\n let frameCropBottomOffset = 0;\n let numRefFramesInPicOrderCntCycle;\n let scalingListCount;\n let i;\n const readUByte = this.readUByte.bind(this);\n const readBits = this.readBits.bind(this);\n const readUEG = this.readUEG.bind(this);\n const readBoolean = this.readBoolean.bind(this);\n const skipBits = this.skipBits.bind(this);\n const skipEG = this.skipEG.bind(this);\n const skipUEG = this.skipUEG.bind(this);\n const skipScalingList = this.skipScalingList.bind(this);\n readUByte();\n const profileIdc = readUByte(); // profile_idc\n readBits(5); // profileCompat constraint_set[0-4]_flag, u(5)\n skipBits(3); // reserved_zero_3bits u(3),\n readUByte(); // level_idc u(8)\n skipUEG(); // seq_parameter_set_id\n // some profiles have more optional data we don't need\n if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128) {\n const chromaFormatIdc = readUEG();\n if (chromaFormatIdc === 3) {\n skipBits(1);\n } // separate_colour_plane_flag\n\n skipUEG(); // bit_depth_luma_minus8\n skipUEG(); // bit_depth_chroma_minus8\n skipBits(1); // qpprime_y_zero_transform_bypass_flag\n if (readBoolean()) {\n // seq_scaling_matrix_present_flag\n scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;\n for (i = 0; i < scalingListCount; i++) {\n if (readBoolean()) {\n // seq_scaling_list_present_flag[ i ]\n if (i < 6) {\n skipScalingList(16);\n } else {\n skipScalingList(64);\n }\n }\n }\n }\n }\n skipUEG(); // log2_max_frame_num_minus4\n const picOrderCntType = readUEG();\n if (picOrderCntType === 0) {\n readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n } else if (picOrderCntType === 1) {\n skipBits(1); // delta_pic_order_always_zero_flag\n skipEG(); // offset_for_non_ref_pic\n skipEG(); // offset_for_top_to_bottom_field\n numRefFramesInPicOrderCntCycle = readUEG();\n for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n skipEG();\n } // offset_for_ref_frame[ i ]\n }\n skipUEG(); // max_num_ref_frames\n skipBits(1); // gaps_in_frame_num_value_allowed_flag\n const picWidthInMbsMinus1 = readUEG();\n const picHeightInMapUnitsMinus1 = readUEG();\n const frameMbsOnlyFlag = readBits(1);\n if (frameMbsOnlyFlag === 0) {\n skipBits(1);\n } // mb_adaptive_frame_field_flag\n\n skipBits(1); // direct_8x8_inference_flag\n if (readBoolean()) {\n // frame_cropping_flag\n frameCropLeftOffset = readUEG();\n frameCropRightOffset = readUEG();\n frameCropTopOffset = readUEG();\n frameCropBottomOffset = readUEG();\n }\n let pixelRatio = [1, 1];\n if (readBoolean()) {\n // vui_parameters_present_flag\n if (readBoolean()) {\n // aspect_ratio_info_present_flag\n const aspectRatioIdc = readUByte();\n switch (aspectRatioIdc) {\n case 1:\n pixelRatio = [1, 1];\n break;\n case 2:\n pixelRatio = [12, 11];\n break;\n case 3:\n pixelRatio = [10, 11];\n break;\n case 4:\n pixelRatio = [16, 11];\n break;\n case 5:\n pixelRatio = [40, 33];\n break;\n case 6:\n pixelRatio = [24, 11];\n break;\n case 7:\n pixelRatio = [20, 11];\n break;\n case 8:\n pixelRatio = [32, 11];\n break;\n case 9:\n pixelRatio = [80, 33];\n break;\n case 10:\n pixelRatio = [18, 11];\n break;\n case 11:\n pixelRatio = [15, 11];\n break;\n case 12:\n pixelRatio = [64, 33];\n break;\n case 13:\n pixelRatio = [160, 99];\n break;\n case 14:\n pixelRatio = [4, 3];\n break;\n case 15:\n pixelRatio = [3, 2];\n break;\n case 16:\n pixelRatio = [2, 1];\n break;\n case 255:\n {\n pixelRatio = [readUByte() << 8 | readUByte(), readUByte() << 8 | readUByte()];\n break;\n }\n }\n }\n }\n return {\n width: Math.ceil((picWidthInMbsMinus1 + 1) * 16 - frameCropLeftOffset * 2 - frameCropRightOffset * 2),\n height: (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 - (frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset),\n pixelRatio: pixelRatio\n };\n }\n readSliceType() {\n // skip NALu type\n this.readUByte();\n // discard first_mb_in_slice\n this.readUEG();\n // return slice_type\n return this.readUEG();\n }\n}\n\nclass AvcVideoParser extends BaseVideoParser {\n parseAVCPES(track, textTrack, pes, last, duration) {\n const units = this.parseAVCNALu(track, pes.data);\n let VideoSample = this.VideoSample;\n let push;\n let spsfound = false;\n // free pes.data to save up some memory\n pes.data = null;\n\n // if new NAL units found and last sample still there, let's push ...\n // this helps parsing streams with missing AUD (only do this if AUD never found)\n if (VideoSample && units.length && !track.audFound) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = this.createVideoSample(false, pes.pts, pes.dts, '');\n }\n units.forEach(unit => {\n var _VideoSample2;\n switch (unit.type) {\n // NDR\n case 1:\n {\n let iskey = false;\n push = true;\n const data = unit.data;\n // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n if (spsfound && data.length > 4) {\n // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n const sliceType = new ExpGolomb(data).readSliceType();\n // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n // if (sliceType === 2 || sliceType === 7) {\n if (sliceType === 2 || sliceType === 4 || sliceType === 7 || sliceType === 9) {\n iskey = true;\n }\n }\n if (iskey) {\n var _VideoSample;\n // if we have non-keyframe data already, that cannot belong to the same frame as a keyframe, so force a push\n if ((_VideoSample = VideoSample) != null && _VideoSample.frame && !VideoSample.key) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = null;\n }\n }\n if (!VideoSample) {\n VideoSample = this.VideoSample = this.createVideoSample(true, pes.pts, pes.dts, '');\n }\n VideoSample.frame = true;\n VideoSample.key = iskey;\n break;\n // IDR\n }\n case 5:\n push = true;\n // handle PES not starting with AUD\n // if we have frame data already, that cannot belong to the same frame, so force a push\n if ((_VideoSample2 = VideoSample) != null && _VideoSample2.frame && !VideoSample.key) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = null;\n }\n if (!VideoSample) {\n VideoSample = this.VideoSample = this.createVideoSample(true, pes.pts, pes.dts, '');\n }\n VideoSample.key = true;\n VideoSample.frame = true;\n break;\n // SEI\n case 6:\n {\n push = true;\n parseSEIMessageFromNALu(unit.data, 1, pes.pts, textTrack.samples);\n break;\n // SPS\n }\n case 7:\n {\n var _track$pixelRatio, _track$pixelRatio2;\n push = true;\n spsfound = true;\n const sps = unit.data;\n const expGolombDecoder = new ExpGolomb(sps);\n const config = expGolombDecoder.readSPS();\n if (!track.sps || track.width !== config.width || track.height !== config.height || ((_track$pixelRatio = track.pixelRatio) == null ? void 0 : _track$pixelRatio[0]) !== config.pixelRatio[0] || ((_track$pixelRatio2 = track.pixelRatio) == null ? void 0 : _track$pixelRatio2[1]) !== config.pixelRatio[1]) {\n track.width = config.width;\n track.height = config.height;\n track.pixelRatio = config.pixelRatio;\n track.sps = [sps];\n track.duration = duration;\n const codecarray = sps.subarray(1, 4);\n let codecstring = 'avc1.';\n for (let i = 0; i < 3; i++) {\n let h = codecarray[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecstring += h;\n }\n track.codec = codecstring;\n }\n break;\n }\n // PPS\n case 8:\n push = true;\n track.pps = [unit.data];\n break;\n // AUD\n case 9:\n push = true;\n track.audFound = true;\n if (VideoSample) {\n this.pushAccessUnit(VideoSample, track);\n }\n VideoSample = this.VideoSample = this.createVideoSample(false, pes.pts, pes.dts, '');\n break;\n // Filler Data\n case 12:\n push = true;\n break;\n default:\n push = false;\n if (VideoSample) {\n VideoSample.debug += 'unknown NAL ' + unit.type + ' ';\n }\n break;\n }\n if (VideoSample && push) {\n const units = VideoSample.units;\n units.push(unit);\n }\n });\n // if last PES packet, push samples\n if (last && VideoSample) {\n this.pushAccessUnit(VideoSample, track);\n this.VideoSample = null;\n }\n }\n parseAVCNALu(track, array) {\n const len = array.byteLength;\n let state = track.naluState || 0;\n const lastState = state;\n const units = [];\n let i = 0;\n let value;\n let overflow;\n let unitType;\n let lastUnitStart = -1;\n let lastUnitType = 0;\n // logger.log('PES:' + Hex.hexDump(array));\n\n if (state === -1) {\n // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n lastUnitStart = 0;\n // NALu type is value read from offset 0\n lastUnitType = array[0] & 0x1f;\n state = 0;\n i = 1;\n }\n while (i < len) {\n value = array[i++];\n // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n if (!state) {\n state = value ? 0 : 1;\n continue;\n }\n if (state === 1) {\n state = value ? 0 : 2;\n continue;\n }\n // here we have state either equal to 2 or 3\n if (!value) {\n state = 3;\n } else if (value === 1) {\n overflow = i - state - 1;\n if (lastUnitStart >= 0) {\n const unit = {\n data: array.subarray(lastUnitStart, overflow),\n type: lastUnitType\n };\n // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n units.push(unit);\n } else {\n // lastUnitStart is undefined => this is the first start code found in this PES packet\n // first check if start code delimiter is overlapping between 2 PES packets,\n // ie it started in last packet (lastState not zero)\n // and ended at the beginning of this PES packet (i <= 4 - lastState)\n const lastUnit = this.getLastNalUnit(track.samples);\n if (lastUnit) {\n if (lastState && i <= 4 - lastState) {\n // start delimiter overlapping between PES packets\n // strip start delimiter bytes from the end of last NAL unit\n // check if lastUnit had a state different from zero\n if (lastUnit.state) {\n // strip last bytes\n lastUnit.data = lastUnit.data.subarray(0, lastUnit.data.byteLength - lastState);\n }\n }\n // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n\n if (overflow > 0) {\n // logger.log('first NALU found with overflow:' + overflow);\n lastUnit.data = appendUint8Array(lastUnit.data, array.subarray(0, overflow));\n lastUnit.state = 0;\n }\n }\n }\n // check if we can read unit type\n if (i < len) {\n unitType = array[i] & 0x1f;\n // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n lastUnitStart = i;\n lastUnitType = unitType;\n state = 0;\n } else {\n // not enough byte to read unit type. let's read it on next PES parsing\n state = -1;\n }\n } else {\n state = 0;\n }\n }\n if (lastUnitStart >= 0 && state >= 0) {\n const unit = {\n data: array.subarray(lastUnitStart, len),\n type: lastUnitType,\n state: state\n };\n units.push(unit);\n // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n }\n // no NALu found\n if (units.length === 0) {\n // append pes.data to previous NAL unit\n const lastUnit = this.getLastNalUnit(track.samples);\n if (lastUnit) {\n lastUnit.data = appendUint8Array(lastUnit.data, array);\n }\n }\n track.naluState = state;\n return units;\n }\n}\n\n/**\n * SAMPLE-AES decrypter\n */\n\nclass SampleAesDecrypter {\n constructor(observer, config, keyData) {\n this.keyData = void 0;\n this.decrypter = void 0;\n this.keyData = keyData;\n this.decrypter = new Decrypter(config, {\n removePKCS7Padding: false\n });\n }\n decryptBuffer(encryptedData) {\n return this.decrypter.decrypt(encryptedData, this.keyData.key.buffer, this.keyData.iv.buffer);\n }\n\n // AAC - encrypt all full 16 bytes blocks starting from offset 16\n decryptAacSample(samples, sampleIndex, callback) {\n const curUnit = samples[sampleIndex].unit;\n if (curUnit.length <= 16) {\n // No encrypted portion in this sample (first 16 bytes is not\n // encrypted, see https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/HLS_Sample_Encryption/Encryption/Encryption.html),\n return;\n }\n const encryptedData = curUnit.subarray(16, curUnit.length - curUnit.length % 16);\n const encryptedBuffer = encryptedData.buffer.slice(encryptedData.byteOffset, encryptedData.byteOffset + encryptedData.length);\n this.decryptBuffer(encryptedBuffer).then(decryptedBuffer => {\n const decryptedData = new Uint8Array(decryptedBuffer);\n curUnit.set(decryptedData, 16);\n if (!this.decrypter.isSync()) {\n this.decryptAacSamples(samples, sampleIndex + 1, callback);\n }\n });\n }\n decryptAacSamples(samples, sampleIndex, callback) {\n for (;; sampleIndex++) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n if (samples[sampleIndex].unit.length < 32) {\n continue;\n }\n this.decryptAacSample(samples, sampleIndex, callback);\n if (!this.decrypter.isSync()) {\n return;\n }\n }\n }\n\n // AVC - encrypt one 16 bytes block out of ten, starting from offset 32\n getAvcEncryptedData(decodedData) {\n const encryptedDataLen = Math.floor((decodedData.length - 48) / 160) * 16 + 16;\n const encryptedData = new Int8Array(encryptedDataLen);\n let outputPos = 0;\n for (let inputPos = 32; inputPos < decodedData.length - 16; inputPos += 160, outputPos += 16) {\n encryptedData.set(decodedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n return encryptedData;\n }\n getAvcDecryptedUnit(decodedData, decryptedData) {\n const uint8DecryptedData = new Uint8Array(decryptedData);\n let inputPos = 0;\n for (let outputPos = 32; outputPos < decodedData.length - 16; outputPos += 160, inputPos += 16) {\n decodedData.set(uint8DecryptedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n return decodedData;\n }\n decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit) {\n const decodedData = discardEPB(curUnit.data);\n const encryptedData = this.getAvcEncryptedData(decodedData);\n this.decryptBuffer(encryptedData.buffer).then(decryptedBuffer => {\n curUnit.data = this.getAvcDecryptedUnit(decodedData, decryptedBuffer);\n if (!this.decrypter.isSync()) {\n this.decryptAvcSamples(samples, sampleIndex, unitIndex + 1, callback);\n }\n });\n }\n decryptAvcSamples(samples, sampleIndex, unitIndex, callback) {\n if (samples instanceof Uint8Array) {\n throw new Error('Cannot decrypt samples of type Uint8Array');\n }\n for (;; sampleIndex++, unitIndex = 0) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n const curUnits = samples[sampleIndex].units;\n for (;; unitIndex++) {\n if (unitIndex >= curUnits.length) {\n break;\n }\n const curUnit = curUnits[unitIndex];\n if (curUnit.data.length <= 48 || curUnit.type !== 1 && curUnit.type !== 5) {\n continue;\n }\n this.decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit);\n if (!this.decrypter.isSync()) {\n return;\n }\n }\n }\n }\n}\n\nconst PACKET_LENGTH = 188;\nclass TSDemuxer {\n constructor(observer, config, typeSupported) {\n this.observer = void 0;\n this.config = void 0;\n this.typeSupported = void 0;\n this.sampleAes = null;\n this.pmtParsed = false;\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this._duration = 0;\n this._pmtId = -1;\n this._videoTrack = void 0;\n this._audioTrack = void 0;\n this._id3Track = void 0;\n this._txtTrack = void 0;\n this.aacOverFlow = null;\n this.remainderData = null;\n this.videoParser = void 0;\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.videoParser = new AvcVideoParser();\n }\n static probe(data) {\n const syncOffset = TSDemuxer.syncOffset(data);\n if (syncOffset > 0) {\n logger.warn(`MPEG2-TS detected but first sync word found @ offset ${syncOffset}`);\n }\n return syncOffset !== -1;\n }\n static syncOffset(data) {\n const length = data.length;\n let scanwindow = Math.min(PACKET_LENGTH * 5, length - PACKET_LENGTH) + 1;\n let i = 0;\n while (i < scanwindow) {\n // a TS init segment should contain at least 2 TS packets: PAT and PMT, each starting with 0x47\n let foundPat = false;\n let packetStart = -1;\n let tsPackets = 0;\n for (let j = i; j < length; j += PACKET_LENGTH) {\n if (data[j] === 0x47 && (length - j === PACKET_LENGTH || data[j + PACKET_LENGTH] === 0x47)) {\n tsPackets++;\n if (packetStart === -1) {\n packetStart = j;\n // First sync word found at offset, increase scan length (#5251)\n if (packetStart !== 0) {\n scanwindow = Math.min(packetStart + PACKET_LENGTH * 99, data.length - PACKET_LENGTH) + 1;\n }\n }\n if (!foundPat) {\n foundPat = parsePID(data, j) === 0;\n }\n // Sync word found at 0 with 3 packets, or found at offset least 2 packets up to scanwindow (#5501)\n if (foundPat && tsPackets > 1 && (packetStart === 0 && tsPackets > 2 || j + PACKET_LENGTH > scanwindow)) {\n return packetStart;\n }\n } else if (tsPackets) {\n // Exit if sync word found, but does not contain contiguous packets\n return -1;\n } else {\n break;\n }\n }\n i++;\n }\n return -1;\n }\n\n /**\n * Creates a track model internal to demuxer used to drive remuxing input\n */\n static createTrack(type, duration) {\n return {\n container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n type,\n id: RemuxerTrackIdConfig[type],\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0,\n duration: type === 'audio' ? duration : undefined\n };\n }\n\n /**\n * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start)\n * Resets all internal track instances of the demuxer.\n */\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n this.pmtParsed = false;\n this._pmtId = -1;\n this._videoTrack = TSDemuxer.createTrack('video');\n this._audioTrack = TSDemuxer.createTrack('audio', trackDuration);\n this._id3Track = TSDemuxer.createTrack('id3');\n this._txtTrack = TSDemuxer.createTrack('text');\n this._audioTrack.segmentCodec = 'aac';\n\n // flush any partial content\n this.aacOverFlow = null;\n this.remainderData = null;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this._duration = trackDuration;\n }\n resetTimeStamp() {}\n resetContiguity() {\n const {\n _audioTrack,\n _videoTrack,\n _id3Track\n } = this;\n if (_audioTrack) {\n _audioTrack.pesData = null;\n }\n if (_videoTrack) {\n _videoTrack.pesData = null;\n }\n if (_id3Track) {\n _id3Track.pesData = null;\n }\n this.aacOverFlow = null;\n this.remainderData = null;\n }\n demux(data, timeOffset, isSampleAes = false, flush = false) {\n if (!isSampleAes) {\n this.sampleAes = null;\n }\n let pes;\n const videoTrack = this._videoTrack;\n const audioTrack = this._audioTrack;\n const id3Track = this._id3Track;\n const textTrack = this._txtTrack;\n let videoPid = videoTrack.pid;\n let videoData = videoTrack.pesData;\n let audioPid = audioTrack.pid;\n let id3Pid = id3Track.pid;\n let audioData = audioTrack.pesData;\n let id3Data = id3Track.pesData;\n let unknownPID = null;\n let pmtParsed = this.pmtParsed;\n let pmtId = this._pmtId;\n let len = data.length;\n if (this.remainderData) {\n data = appendUint8Array(this.remainderData, data);\n len = data.length;\n this.remainderData = null;\n }\n if (len < PACKET_LENGTH && !flush) {\n this.remainderData = data;\n return {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack\n };\n }\n const syncOffset = Math.max(0, TSDemuxer.syncOffset(data));\n len -= (len - syncOffset) % PACKET_LENGTH;\n if (len < data.byteLength && !flush) {\n this.remainderData = new Uint8Array(data.buffer, len, data.buffer.byteLength - len);\n }\n\n // loop through TS packets\n let tsPacketErrors = 0;\n for (let start = syncOffset; start < len; start += PACKET_LENGTH) {\n if (data[start] === 0x47) {\n const stt = !!(data[start + 1] & 0x40);\n const pid = parsePID(data, start);\n const atf = (data[start + 3] & 0x30) >> 4;\n\n // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n let offset;\n if (atf > 1) {\n offset = start + 5 + data[start + 4];\n // continue if there is only adaptation field\n if (offset === start + PACKET_LENGTH) {\n continue;\n }\n } else {\n offset = start + 4;\n }\n switch (pid) {\n case videoPid:\n if (stt) {\n if (videoData && (pes = parsePES(videoData))) {\n this.videoParser.parseAVCPES(videoTrack, textTrack, pes, false, this._duration);\n }\n videoData = {\n data: [],\n size: 0\n };\n }\n if (videoData) {\n videoData.data.push(data.subarray(offset, start + PACKET_LENGTH));\n videoData.size += start + PACKET_LENGTH - offset;\n }\n break;\n case audioPid:\n if (stt) {\n if (audioData && (pes = parsePES(audioData))) {\n switch (audioTrack.segmentCodec) {\n case 'aac':\n this.parseAACPES(audioTrack, pes);\n break;\n case 'mp3':\n this.parseMPEGPES(audioTrack, pes);\n break;\n case 'ac3':\n {\n this.parseAC3PES(audioTrack, pes);\n }\n break;\n }\n }\n audioData = {\n data: [],\n size: 0\n };\n }\n if (audioData) {\n audioData.data.push(data.subarray(offset, start + PACKET_LENGTH));\n audioData.size += start + PACKET_LENGTH - offset;\n }\n break;\n case id3Pid:\n if (stt) {\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(id3Track, pes);\n }\n id3Data = {\n data: [],\n size: 0\n };\n }\n if (id3Data) {\n id3Data.data.push(data.subarray(offset, start + PACKET_LENGTH));\n id3Data.size += start + PACKET_LENGTH - offset;\n }\n break;\n case 0:\n if (stt) {\n offset += data[offset] + 1;\n }\n pmtId = this._pmtId = parsePAT(data, offset);\n // logger.log('PMT PID:' + this._pmtId);\n break;\n case pmtId:\n {\n if (stt) {\n offset += data[offset] + 1;\n }\n const parsedPIDs = parsePMT(data, offset, this.typeSupported, isSampleAes, this.observer);\n\n // only update track id if track PID found while parsing PMT\n // this is to avoid resetting the PID to -1 in case\n // track PID transiently disappears from the stream\n // this could happen in case of transient missing audio samples for example\n // NOTE this is only the PID of the track as found in TS,\n // but we are not using this for MP4 track IDs.\n videoPid = parsedPIDs.videoPid;\n if (videoPid > 0) {\n videoTrack.pid = videoPid;\n videoTrack.segmentCodec = parsedPIDs.segmentVideoCodec;\n }\n audioPid = parsedPIDs.audioPid;\n if (audioPid > 0) {\n audioTrack.pid = audioPid;\n audioTrack.segmentCodec = parsedPIDs.segmentAudioCodec;\n }\n id3Pid = parsedPIDs.id3Pid;\n if (id3Pid > 0) {\n id3Track.pid = id3Pid;\n }\n if (unknownPID !== null && !pmtParsed) {\n logger.warn(`MPEG-TS PMT found at ${start} after unknown PID '${unknownPID}'. Backtracking to sync byte @${syncOffset} to parse all TS packets.`);\n unknownPID = null;\n // we set it to -188, the += 188 in the for loop will reset start to 0\n start = syncOffset - 188;\n }\n pmtParsed = this.pmtParsed = true;\n break;\n }\n case 0x11:\n case 0x1fff:\n break;\n default:\n unknownPID = pid;\n break;\n }\n } else {\n tsPacketErrors++;\n }\n }\n if (tsPacketErrors > 0) {\n emitParsingError(this.observer, new Error(`Found ${tsPacketErrors} TS packet/s that do not start with 0x47`));\n }\n videoTrack.pesData = videoData;\n audioTrack.pesData = audioData;\n id3Track.pesData = id3Data;\n const demuxResult = {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack\n };\n if (flush) {\n this.extractRemainingSamples(demuxResult);\n }\n return demuxResult;\n }\n flush() {\n const {\n remainderData\n } = this;\n this.remainderData = null;\n let result;\n if (remainderData) {\n result = this.demux(remainderData, -1, false, true);\n } else {\n result = {\n videoTrack: this._videoTrack,\n audioTrack: this._audioTrack,\n id3Track: this._id3Track,\n textTrack: this._txtTrack\n };\n }\n this.extractRemainingSamples(result);\n if (this.sampleAes) {\n return this.decrypt(result, this.sampleAes);\n }\n return result;\n }\n extractRemainingSamples(demuxResult) {\n const {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack\n } = demuxResult;\n const videoData = videoTrack.pesData;\n const audioData = audioTrack.pesData;\n const id3Data = id3Track.pesData;\n // try to parse last PES packets\n let pes;\n if (videoData && (pes = parsePES(videoData))) {\n this.videoParser.parseAVCPES(videoTrack, textTrack, pes, true, this._duration);\n videoTrack.pesData = null;\n } else {\n // either avcData null or PES truncated, keep it for next frag parsing\n videoTrack.pesData = videoData;\n }\n if (audioData && (pes = parsePES(audioData))) {\n switch (audioTrack.segmentCodec) {\n case 'aac':\n this.parseAACPES(audioTrack, pes);\n break;\n case 'mp3':\n this.parseMPEGPES(audioTrack, pes);\n break;\n case 'ac3':\n {\n this.parseAC3PES(audioTrack, pes);\n }\n break;\n }\n audioTrack.pesData = null;\n } else {\n if (audioData != null && audioData.size) {\n logger.log('last AAC PES packet truncated,might overlap between fragments');\n }\n\n // either audioData null or PES truncated, keep it for next frag parsing\n audioTrack.pesData = audioData;\n }\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(id3Track, pes);\n id3Track.pesData = null;\n } else {\n // either id3Data null or PES truncated, keep it for next frag parsing\n id3Track.pesData = id3Data;\n }\n }\n demuxSampleAes(data, keyData, timeOffset) {\n const demuxResult = this.demux(data, timeOffset, true, !this.config.progressive);\n const sampleAes = this.sampleAes = new SampleAesDecrypter(this.observer, this.config, keyData);\n return this.decrypt(demuxResult, sampleAes);\n }\n decrypt(demuxResult, sampleAes) {\n return new Promise(resolve => {\n const {\n audioTrack,\n videoTrack\n } = demuxResult;\n if (audioTrack.samples && audioTrack.segmentCodec === 'aac') {\n sampleAes.decryptAacSamples(audioTrack.samples, 0, () => {\n if (videoTrack.samples) {\n sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => {\n resolve(demuxResult);\n });\n } else {\n resolve(demuxResult);\n }\n });\n } else if (videoTrack.samples) {\n sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => {\n resolve(demuxResult);\n });\n }\n });\n }\n destroy() {\n this._duration = 0;\n }\n parseAACPES(track, pes) {\n let startOffset = 0;\n const aacOverFlow = this.aacOverFlow;\n let data = pes.data;\n if (aacOverFlow) {\n this.aacOverFlow = null;\n const frameMissingBytes = aacOverFlow.missing;\n const sampleLength = aacOverFlow.sample.unit.byteLength;\n // logger.log(`AAC: append overflowing ${sampleLength} bytes to beginning of new PES`);\n if (frameMissingBytes === -1) {\n data = appendUint8Array(aacOverFlow.sample.unit, data);\n } else {\n const frameOverflowBytes = sampleLength - frameMissingBytes;\n aacOverFlow.sample.unit.set(data.subarray(0, frameMissingBytes), frameOverflowBytes);\n track.samples.push(aacOverFlow.sample);\n startOffset = aacOverFlow.missing;\n }\n }\n // look for ADTS header (0xFFFx)\n let offset;\n let len;\n for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n if (isHeader$1(data, offset)) {\n break;\n }\n }\n // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n if (offset !== startOffset) {\n let reason;\n const recoverable = offset < len - 1;\n if (recoverable) {\n reason = `AAC PES did not start with ADTS header,offset:${offset}`;\n } else {\n reason = 'No ADTS header found in AAC PES';\n }\n emitParsingError(this.observer, new Error(reason), recoverable);\n if (!recoverable) {\n return;\n }\n }\n initTrackConfig(track, this.observer, data, offset, this.audioCodec);\n let pts;\n if (pes.pts !== undefined) {\n pts = pes.pts;\n } else if (aacOverFlow) {\n // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n // first sample PTS should be equal to last sample PTS + frameDuration\n const frameDuration = getFrameDuration(track.samplerate);\n pts = aacOverFlow.sample.pts + frameDuration;\n } else {\n logger.warn('[tsdemuxer]: AAC PES unknown PTS');\n return;\n }\n\n // scan for aac samples\n let frameIndex = 0;\n let frame;\n while (offset < len) {\n frame = appendFrame$2(track, data, offset, pts, frameIndex);\n offset += frame.length;\n if (!frame.missing) {\n frameIndex++;\n for (; offset < len - 1; offset++) {\n if (isHeader$1(data, offset)) {\n break;\n }\n }\n } else {\n this.aacOverFlow = frame;\n break;\n }\n }\n }\n parseMPEGPES(track, pes) {\n const data = pes.data;\n const length = data.length;\n let frameIndex = 0;\n let offset = 0;\n const pts = pes.pts;\n if (pts === undefined) {\n logger.warn('[tsdemuxer]: MPEG PES unknown PTS');\n return;\n }\n while (offset < length) {\n if (isHeader(data, offset)) {\n const frame = appendFrame$1(track, data, offset, pts, frameIndex);\n if (frame) {\n offset += frame.length;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n }\n parseAC3PES(track, pes) {\n {\n const data = pes.data;\n const pts = pes.pts;\n if (pts === undefined) {\n logger.warn('[tsdemuxer]: AC3 PES unknown PTS');\n return;\n }\n const length = data.length;\n let frameIndex = 0;\n let offset = 0;\n let parsed;\n while (offset < length && (parsed = appendFrame(track, data, offset, pts, frameIndex++)) > 0) {\n offset += parsed;\n }\n }\n }\n parseID3PES(id3Track, pes) {\n if (pes.pts === undefined) {\n logger.warn('[tsdemuxer]: ID3 PES unknown PTS');\n return;\n }\n const id3Sample = _extends({}, pes, {\n type: this._videoTrack ? MetadataSchema.emsg : MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY\n });\n id3Track.samples.push(id3Sample);\n }\n}\nfunction parsePID(data, offset) {\n // pid is a 13-bit field starting at the last bit of TS[1]\n return ((data[offset + 1] & 0x1f) << 8) + data[offset + 2];\n}\nfunction parsePAT(data, offset) {\n // skip the PSI header and parse the first PMT entry\n return (data[offset + 10] & 0x1f) << 8 | data[offset + 11];\n}\nfunction parsePMT(data, offset, typeSupported, isSampleAes, observer) {\n const result = {\n audioPid: -1,\n videoPid: -1,\n id3Pid: -1,\n segmentVideoCodec: 'avc',\n segmentAudioCodec: 'aac'\n };\n const sectionLength = (data[offset + 1] & 0x0f) << 8 | data[offset + 2];\n const tableEnd = offset + 3 + sectionLength - 4;\n // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n const programInfoLength = (data[offset + 10] & 0x0f) << 8 | data[offset + 11];\n // advance the offset to the first entry in the mapping table\n offset += 12 + programInfoLength;\n while (offset < tableEnd) {\n const pid = parsePID(data, offset);\n const esInfoLength = (data[offset + 3] & 0x0f) << 8 | data[offset + 4];\n switch (data[offset]) {\n case 0xcf:\n // SAMPLE-AES AAC\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('ADTS AAC');\n break;\n }\n /* falls through */\n case 0x0f:\n // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n // logger.log('AAC PID:' + pid);\n if (result.audioPid === -1) {\n result.audioPid = pid;\n }\n break;\n\n // Packetized metadata (ID3)\n case 0x15:\n // logger.log('ID3 PID:' + pid);\n if (result.id3Pid === -1) {\n result.id3Pid = pid;\n }\n break;\n case 0xdb:\n // SAMPLE-AES AVC\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('H.264');\n break;\n }\n /* falls through */\n case 0x1b:\n // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n // logger.log('AVC PID:' + pid);\n if (result.videoPid === -1) {\n result.videoPid = pid;\n result.segmentVideoCodec = 'avc';\n }\n break;\n\n // ISO/IEC 11172-3 (MPEG-1 audio)\n // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n case 0x03:\n case 0x04:\n // logger.log('MPEG PID:' + pid);\n if (!typeSupported.mpeg && !typeSupported.mp3) {\n logger.log('MPEG audio found, not supported in this browser');\n } else if (result.audioPid === -1) {\n result.audioPid = pid;\n result.segmentAudioCodec = 'mp3';\n }\n break;\n case 0xc1:\n // SAMPLE-AES AC3\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('AC-3');\n break;\n }\n /* falls through */\n case 0x81:\n {\n if (!typeSupported.ac3) {\n logger.log('AC-3 audio found, not supported in this browser');\n } else if (result.audioPid === -1) {\n result.audioPid = pid;\n result.segmentAudioCodec = 'ac3';\n }\n }\n break;\n case 0x06:\n // stream_type 6 can mean a lot of different things in case of DVB.\n // We need to look at the descriptors. Right now, we're only interested\n // in AC-3 audio, so we do the descriptor parsing only when we don't have\n // an audio PID yet.\n if (result.audioPid === -1 && esInfoLength > 0) {\n let parsePos = offset + 5;\n let remaining = esInfoLength;\n while (remaining > 2) {\n const descriptorId = data[parsePos];\n switch (descriptorId) {\n case 0x6a:\n // DVB Descriptor for AC-3\n {\n if (typeSupported.ac3 !== true) {\n logger.log('AC-3 audio found, not supported in this browser for now');\n } else {\n result.audioPid = pid;\n result.segmentAudioCodec = 'ac3';\n }\n }\n break;\n }\n const descriptorLen = data[parsePos + 1] + 2;\n parsePos += descriptorLen;\n remaining -= descriptorLen;\n }\n }\n break;\n case 0xc2: // SAMPLE-AES EC3\n /* falls through */\n case 0x87:\n emitParsingError(observer, new Error('Unsupported EC-3 in M2TS found'));\n return result;\n case 0x24:\n emitParsingError(observer, new Error('Unsupported HEVC in M2TS found'));\n return result;\n }\n // move to the next table entry\n // skip past the elementary stream descriptors, if present\n offset += esInfoLength + 5;\n }\n return result;\n}\nfunction emitParsingError(observer, error, levelRetry) {\n logger.warn(`parsing error: ${error.message}`);\n observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n levelRetry,\n error,\n reason: error.message\n });\n}\nfunction logEncryptedSamplesFoundInUnencryptedStream(type) {\n logger.log(`${type} with AES-128-CBC encryption found in unencrypted stream`);\n}\nfunction parsePES(stream) {\n let i = 0;\n let frag;\n let pesLen;\n let pesHdrLen;\n let pesPts;\n let pesDts;\n const data = stream.data;\n // safety check\n if (!stream || stream.size === 0) {\n return null;\n }\n\n // we might need up to 19 bytes to read PES header\n // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n // usually only one merge is needed (and this is rare ...)\n while (data[0].length < 19 && data.length > 1) {\n data[0] = appendUint8Array(data[0], data[1]);\n data.splice(1, 1);\n }\n // retrieve PTS/DTS from first fragment\n frag = data[0];\n const pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n if (pesPrefix === 1) {\n pesLen = (frag[4] << 8) + frag[5];\n // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n // minus 6 : PES header size\n if (pesLen && pesLen > stream.size - 6) {\n return null;\n }\n const pesFlags = frag[7];\n if (pesFlags & 0xc0) {\n /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n as Bitwise operators treat their operands as a sequence of 32 bits */\n pesPts = (frag[9] & 0x0e) * 536870912 +\n // 1 << 29\n (frag[10] & 0xff) * 4194304 +\n // 1 << 22\n (frag[11] & 0xfe) * 16384 +\n // 1 << 14\n (frag[12] & 0xff) * 128 +\n // 1 << 7\n (frag[13] & 0xfe) / 2;\n if (pesFlags & 0x40) {\n pesDts = (frag[14] & 0x0e) * 536870912 +\n // 1 << 29\n (frag[15] & 0xff) * 4194304 +\n // 1 << 22\n (frag[16] & 0xfe) * 16384 +\n // 1 << 14\n (frag[17] & 0xff) * 128 +\n // 1 << 7\n (frag[18] & 0xfe) / 2;\n if (pesPts - pesDts > 60 * 90000) {\n logger.warn(`${Math.round((pesPts - pesDts) / 90000)}s delta between PTS and DTS, align them`);\n pesPts = pesDts;\n }\n } else {\n pesDts = pesPts;\n }\n }\n pesHdrLen = frag[8];\n // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n let payloadStartOffset = pesHdrLen + 9;\n if (stream.size <= payloadStartOffset) {\n return null;\n }\n stream.size -= payloadStartOffset;\n // reassemble PES packet\n const pesData = new Uint8Array(stream.size);\n for (let j = 0, dataLen = data.length; j < dataLen; j++) {\n frag = data[j];\n let len = frag.byteLength;\n if (payloadStartOffset) {\n if (payloadStartOffset > len) {\n // trim full frag if PES header bigger than frag\n payloadStartOffset -= len;\n continue;\n } else {\n // trim partial frag if PES header smaller than frag\n frag = frag.subarray(payloadStartOffset);\n len -= payloadStartOffset;\n payloadStartOffset = 0;\n }\n }\n pesData.set(frag, i);\n i += len;\n }\n if (pesLen) {\n // payload size : remove PES header + PES extension\n pesLen -= pesHdrLen + 3;\n }\n return {\n data: pesData,\n pts: pesPts,\n dts: pesDts,\n len: pesLen\n };\n }\n return null;\n}\n\n/**\n * MP3 demuxer\n */\nclass MP3Demuxer extends BaseAudioDemuxer {\n resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/mpeg',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'mp3',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0\n };\n }\n static probe(data) {\n if (!data) {\n return false;\n }\n\n // check if data contains ID3 timestamp and MPEG sync word\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n const id3Data = getID3Data(data, 0);\n let offset = (id3Data == null ? void 0 : id3Data.length) || 0;\n\n // Check for ac-3|ec-3 sync bytes and return false if present\n if (id3Data && data[offset] === 0x0b && data[offset + 1] === 0x77 && getTimeStamp(id3Data) !== undefined &&\n // check the bsid to confirm ac-3 or ec-3 (not mp3)\n getAudioBSID(data, offset) <= 16) {\n return false;\n }\n for (let length = data.length; offset < length; offset++) {\n if (probe(data, offset)) {\n logger.log('MPEG Audio sync word found !');\n return true;\n }\n }\n return false;\n }\n canParse(data, offset) {\n return canParse(data, offset);\n }\n appendFrame(track, data, offset) {\n if (this.basePTS === null) {\n return;\n }\n return appendFrame$1(track, data, offset, this.basePTS, this.frameIndex);\n }\n}\n\n/**\n * AAC helper\n */\n\nclass AAC {\n static getSilentFrame(codec, channelCount) {\n switch (codec) {\n case 'mp4a.40.2':\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n break;\n // handle HE-AAC below (mp4a.40.5 / mp4a.40.29)\n default:\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n break;\n }\n return undefined;\n }\n}\n\n/**\n * Generate MP4 Box\n */\n\nconst UINT32_MAX = Math.pow(2, 32) - 1;\nclass MP4 {\n static init() {\n MP4.types = {\n avc1: [],\n // codingname\n avcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n '.mp3': [],\n dac3: [],\n 'ac-3': [],\n mvex: [],\n mvhd: [],\n pasp: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: []\n };\n let i;\n for (i in MP4.types) {\n if (MP4.types.hasOwnProperty(i)) {\n MP4.types[i] = [i.charCodeAt(0), i.charCodeAt(1), i.charCodeAt(2), i.charCodeAt(3)];\n }\n }\n const videoHdlr = new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00,\n // pre_defined\n 0x76, 0x69, 0x64, 0x65,\n // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n ]);\n const audioHdlr = new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00,\n // pre_defined\n 0x73, 0x6f, 0x75, 0x6e,\n // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'\n ]);\n MP4.HDLR_TYPES = {\n video: videoHdlr,\n audio: audioHdlr\n };\n const dref = new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x01,\n // entry_count\n 0x00, 0x00, 0x00, 0x0c,\n // entry_size\n 0x75, 0x72, 0x6c, 0x20,\n // 'url' type\n 0x00,\n // version 0\n 0x00, 0x00, 0x01 // entry_flags\n ]);\n const stco = new Uint8Array([0x00,\n // version\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n MP4.STTS = MP4.STSC = MP4.STCO = stco;\n MP4.STSZ = new Uint8Array([0x00,\n // version\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00,\n // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n MP4.VMHD = new Uint8Array([0x00,\n // version\n 0x00, 0x00, 0x01,\n // flags\n 0x00, 0x00,\n // graphicsmode\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor\n ]);\n MP4.SMHD = new Uint8Array([0x00,\n // version\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00,\n // balance\n 0x00, 0x00 // reserved\n ]);\n MP4.STSD = new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x01]); // entry_count\n\n const majorBrand = new Uint8Array([105, 115, 111, 109]); // isom\n const avc1Brand = new Uint8Array([97, 118, 99, 49]); // avc1\n const minorVersion = new Uint8Array([0, 0, 0, 1]);\n MP4.FTYP = MP4.box(MP4.types.ftyp, majorBrand, minorVersion, majorBrand, avc1Brand);\n MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref));\n }\n static box(type, ...payload) {\n let size = 8;\n let i = payload.length;\n const len = i;\n // calculate the total size we need to allocate\n while (i--) {\n size += payload[i].byteLength;\n }\n const result = new Uint8Array(size);\n result[0] = size >> 24 & 0xff;\n result[1] = size >> 16 & 0xff;\n result[2] = size >> 8 & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4);\n // copy the payload into the result\n for (i = 0, size = 8; i < len; i++) {\n // copy payload[i] array @ offset size\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n return result;\n }\n static hdlr(type) {\n return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type]);\n }\n static mdat(data) {\n return MP4.box(MP4.types.mdat, data);\n }\n static mdhd(timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.mdhd, new Uint8Array([0x01,\n // version 1\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,\n // modification_time\n timescale >> 24 & 0xff, timescale >> 16 & 0xff, timescale >> 8 & 0xff, timescale & 0xff,\n // timescale\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x55, 0xc4,\n // 'und' language (undetermined)\n 0x00, 0x00]));\n }\n static mdia(track) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale, track.duration), MP4.hdlr(track.type), MP4.minf(track));\n }\n static mfhd(sequenceNumber) {\n return MP4.box(MP4.types.mfhd, new Uint8Array([0x00, 0x00, 0x00, 0x00,\n // flags\n sequenceNumber >> 24, sequenceNumber >> 16 & 0xff, sequenceNumber >> 8 & 0xff, sequenceNumber & 0xff // sequence_number\n ]));\n }\n static minf(track) {\n if (track.type === 'audio') {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.smhd, MP4.SMHD), MP4.DINF, MP4.stbl(track));\n } else {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track));\n }\n }\n static moof(sn, baseMediaDecodeTime, track) {\n return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime));\n }\n static moov(tracks) {\n let i = tracks.length;\n const boxes = [];\n while (i--) {\n boxes[i] = MP4.trak(tracks[i]);\n }\n return MP4.box.apply(null, [MP4.types.moov, MP4.mvhd(tracks[0].timescale, tracks[0].duration)].concat(boxes).concat(MP4.mvex(tracks)));\n }\n static mvex(tracks) {\n let i = tracks.length;\n const boxes = [];\n while (i--) {\n boxes[i] = MP4.trex(tracks[i]);\n }\n return MP4.box.apply(null, [MP4.types.mvex, ...boxes]);\n }\n static mvhd(timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n const bytes = new Uint8Array([0x01,\n // version 1\n 0x00, 0x00, 0x00,\n // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,\n // modification_time\n timescale >> 24 & 0xff, timescale >> 16 & 0xff, timescale >> 8 & 0xff, timescale & 0xff,\n // timescale\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x00, 0x01, 0x00, 0x00,\n // 1.0 rate\n 0x01, 0x00,\n // 1.0 volume\n 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,\n // transformation: unity matrix\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n // pre_defined\n 0xff, 0xff, 0xff, 0xff // next_track_ID\n ]);\n return MP4.box(MP4.types.mvhd, bytes);\n }\n static sdtp(track) {\n const samples = track.samples || [];\n const bytes = new Uint8Array(4 + samples.length);\n let i;\n let flags;\n // leave the full box header (4 bytes) all zero\n // write the sample table\n for (i = 0; i < samples.length; i++) {\n flags = samples[i].flags;\n bytes[i + 4] = flags.dependsOn << 4 | flags.isDependedOn << 2 | flags.hasRedundancy;\n }\n return MP4.box(MP4.types.sdtp, bytes);\n }\n static stbl(track) {\n return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO));\n }\n static avc1(track) {\n let sps = [];\n let pps = [];\n let i;\n let data;\n let len;\n // assemble the SPSs\n\n for (i = 0; i < track.sps.length; i++) {\n data = track.sps[i];\n len = data.byteLength;\n sps.push(len >>> 8 & 0xff);\n sps.push(len & 0xff);\n\n // SPS\n sps = sps.concat(Array.prototype.slice.call(data));\n }\n\n // assemble the PPSs\n for (i = 0; i < track.pps.length; i++) {\n data = track.pps[i];\n len = data.byteLength;\n pps.push(len >>> 8 & 0xff);\n pps.push(len & 0xff);\n pps = pps.concat(Array.prototype.slice.call(data));\n }\n const avcc = MP4.box(MP4.types.avcC, new Uint8Array([0x01,\n // version\n sps[3],\n // profile\n sps[4],\n // profile compat\n sps[5],\n // level\n 0xfc | 3,\n // lengthSizeMinusOne, hard-coded to 4 bytes\n 0xe0 | track.sps.length // 3bit reserved (111) + numOfSequenceParameterSets\n ].concat(sps).concat([track.pps.length // numOfPictureParameterSets\n ]).concat(pps))); // \"PPS\"\n const width = track.width;\n const height = track.height;\n const hSpacing = track.pixelRatio[0];\n const vSpacing = track.pixelRatio[1];\n return MP4.box(MP4.types.avc1, new Uint8Array([0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x01,\n // data_reference_index\n 0x00, 0x00,\n // pre_defined\n 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n // pre_defined\n width >> 8 & 0xff, width & 0xff,\n // width\n height >> 8 & 0xff, height & 0xff,\n // height\n 0x00, 0x48, 0x00, 0x00,\n // horizresolution\n 0x00, 0x48, 0x00, 0x00,\n // vertresolution\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x01,\n // frame_count\n 0x12, 0x64, 0x61, 0x69, 0x6c,\n // dailymotion/hls.js\n 0x79, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x6c, 0x73, 0x2e, 0x6a, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n // compressorname\n 0x00, 0x18,\n // depth = 24\n 0x11, 0x11]),\n // pre_defined = -1\n avcc, MP4.box(MP4.types.btrt, new Uint8Array([0x00, 0x1c, 0x9c, 0x80,\n // bufferSizeDB\n 0x00, 0x2d, 0xc6, 0xc0,\n // maxBitrate\n 0x00, 0x2d, 0xc6, 0xc0])),\n // avgBitrate\n MP4.box(MP4.types.pasp, new Uint8Array([hSpacing >> 24,\n // hSpacing\n hSpacing >> 16 & 0xff, hSpacing >> 8 & 0xff, hSpacing & 0xff, vSpacing >> 24,\n // vSpacing\n vSpacing >> 16 & 0xff, vSpacing >> 8 & 0xff, vSpacing & 0xff])));\n }\n static esds(track) {\n const configlen = track.config.length;\n return new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n\n 0x03,\n // descriptor_type\n 0x17 + configlen,\n // length\n 0x00, 0x01,\n // es_id\n 0x00,\n // stream_priority\n\n 0x04,\n // descriptor_type\n 0x0f + configlen,\n // length\n 0x40,\n // codec : mpeg4_audio\n 0x15,\n // stream_type\n 0x00, 0x00, 0x00,\n // buffer_size\n 0x00, 0x00, 0x00, 0x00,\n // maxBitrate\n 0x00, 0x00, 0x00, 0x00,\n // avgBitrate\n\n 0x05 // descriptor_type\n ].concat([configlen]).concat(track.config).concat([0x06, 0x01, 0x02])); // GASpecificConfig)); // length + audio config descriptor\n }\n static audioStsd(track) {\n const samplerate = track.samplerate;\n return new Uint8Array([0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x01,\n // data_reference_index\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, track.channelCount,\n // channelcount\n 0x00, 0x10,\n // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00,\n // reserved2\n samplerate >> 8 & 0xff, samplerate & 0xff,\n //\n 0x00, 0x00]);\n }\n static mp4a(track) {\n return MP4.box(MP4.types.mp4a, MP4.audioStsd(track), MP4.box(MP4.types.esds, MP4.esds(track)));\n }\n static mp3(track) {\n return MP4.box(MP4.types['.mp3'], MP4.audioStsd(track));\n }\n static ac3(track) {\n return MP4.box(MP4.types['ac-3'], MP4.audioStsd(track), MP4.box(MP4.types.dac3, track.config));\n }\n static stsd(track) {\n if (track.type === 'audio') {\n if (track.segmentCodec === 'mp3' && track.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp3(track));\n }\n if (track.segmentCodec === 'ac3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.ac3(track));\n }\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp4a(track));\n } else {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track));\n }\n }\n static tkhd(track) {\n const id = track.id;\n const duration = track.duration * track.timescale;\n const width = track.width;\n const height = track.height;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.tkhd, new Uint8Array([0x01,\n // version 1\n 0x00, 0x00, 0x07,\n // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,\n // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,\n // modification_time\n id >> 24 & 0xff, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff,\n // track_ID\n 0x00, 0x00, 0x00, 0x00,\n // reserved\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n // reserved\n 0x00, 0x00,\n // layer\n 0x00, 0x00,\n // alternate_group\n 0x00, 0x00,\n // non-audio track volume\n 0x00, 0x00,\n // reserved\n 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,\n // transformation: unity matrix\n width >> 8 & 0xff, width & 0xff, 0x00, 0x00,\n // width\n height >> 8 & 0xff, height & 0xff, 0x00, 0x00 // height\n ]));\n }\n static traf(track, baseMediaDecodeTime) {\n const sampleDependencyTable = MP4.sdtp(track);\n const id = track.id;\n const upperWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n const lowerWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n return MP4.box(MP4.types.traf, MP4.box(MP4.types.tfhd, new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n id >> 24, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff // track_ID\n ])), MP4.box(MP4.types.tfdt, new Uint8Array([0x01,\n // version 1\n 0x00, 0x00, 0x00,\n // flags\n upperWordBaseMediaDecodeTime >> 24, upperWordBaseMediaDecodeTime >> 16 & 0xff, upperWordBaseMediaDecodeTime >> 8 & 0xff, upperWordBaseMediaDecodeTime & 0xff, lowerWordBaseMediaDecodeTime >> 24, lowerWordBaseMediaDecodeTime >> 16 & 0xff, lowerWordBaseMediaDecodeTime >> 8 & 0xff, lowerWordBaseMediaDecodeTime & 0xff])), MP4.trun(track, sampleDependencyTable.length + 16 +\n // tfhd\n 20 +\n // tfdt\n 8 +\n // traf header\n 16 +\n // mfhd\n 8 +\n // moof header\n 8),\n // mdat header\n sampleDependencyTable);\n }\n\n /**\n * Generate a track box.\n * @param track a track definition\n */\n static trak(track) {\n track.duration = track.duration || 0xffffffff;\n return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track));\n }\n static trex(track) {\n const id = track.id;\n return MP4.box(MP4.types.trex, new Uint8Array([0x00,\n // version 0\n 0x00, 0x00, 0x00,\n // flags\n id >> 24, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff,\n // track_ID\n 0x00, 0x00, 0x00, 0x01,\n // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00,\n // default_sample_duration\n 0x00, 0x00, 0x00, 0x00,\n // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]));\n }\n static trun(track, offset) {\n const samples = track.samples || [];\n const len = samples.length;\n const arraylen = 12 + 16 * len;\n const array = new Uint8Array(arraylen);\n let i;\n let sample;\n let duration;\n let size;\n let flags;\n let cts;\n offset += 8 + arraylen;\n array.set([track.type === 'video' ? 0x01 : 0x00,\n // version 1 for video with signed-int sample_composition_time_offset\n 0x00, 0x0f, 0x01,\n // flags\n len >>> 24 & 0xff, len >>> 16 & 0xff, len >>> 8 & 0xff, len & 0xff,\n // sample_count\n offset >>> 24 & 0xff, offset >>> 16 & 0xff, offset >>> 8 & 0xff, offset & 0xff // data_offset\n ], 0);\n for (i = 0; i < len; i++) {\n sample = samples[i];\n duration = sample.duration;\n size = sample.size;\n flags = sample.flags;\n cts = sample.cts;\n array.set([duration >>> 24 & 0xff, duration >>> 16 & 0xff, duration >>> 8 & 0xff, duration & 0xff,\n // sample_duration\n size >>> 24 & 0xff, size >>> 16 & 0xff, size >>> 8 & 0xff, size & 0xff,\n // sample_size\n flags.isLeading << 2 | flags.dependsOn, flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.paddingValue << 1 | flags.isNonSync, flags.degradPrio & 0xf0 << 8, flags.degradPrio & 0x0f,\n // sample_flags\n cts >>> 24 & 0xff, cts >>> 16 & 0xff, cts >>> 8 & 0xff, cts & 0xff // sample_composition_time_offset\n ], 12 + 16 * i);\n }\n return MP4.box(MP4.types.trun, array);\n }\n static initSegment(tracks) {\n if (!MP4.types) {\n MP4.init();\n }\n const movie = MP4.moov(tracks);\n const result = appendUint8Array(MP4.FTYP, movie);\n return result;\n }\n}\nMP4.types = void 0;\nMP4.HDLR_TYPES = void 0;\nMP4.STTS = void 0;\nMP4.STSC = void 0;\nMP4.STCO = void 0;\nMP4.STSZ = void 0;\nMP4.VMHD = void 0;\nMP4.SMHD = void 0;\nMP4.STSD = void 0;\nMP4.FTYP = void 0;\nMP4.DINF = void 0;\n\nconst MPEG_TS_CLOCK_FREQ_HZ = 90000;\nfunction toTimescaleFromBase(baseTime, destScale, srcBase = 1, round = false) {\n const result = baseTime * destScale * srcBase; // equivalent to `(value * scale) / (1 / base)`\n return round ? Math.round(result) : result;\n}\nfunction toTimescaleFromScale(baseTime, destScale, srcScale = 1, round = false) {\n return toTimescaleFromBase(baseTime, destScale, 1 / srcScale, round);\n}\nfunction toMsFromMpegTsClock(baseTime, round = false) {\n return toTimescaleFromBase(baseTime, 1000, 1 / MPEG_TS_CLOCK_FREQ_HZ, round);\n}\nfunction toMpegTsClockFromTimescale(baseTime, srcScale = 1) {\n return toTimescaleFromBase(baseTime, MPEG_TS_CLOCK_FREQ_HZ, 1 / srcScale);\n}\n\nconst MAX_SILENT_FRAME_DURATION = 10 * 1000; // 10 seconds\nconst AAC_SAMPLES_PER_FRAME = 1024;\nconst MPEG_AUDIO_SAMPLE_PER_FRAME = 1152;\nconst AC3_SAMPLES_PER_FRAME = 1536;\nlet chromeVersion = null;\nlet safariWebkitVersion = null;\nclass MP4Remuxer {\n constructor(observer, config, typeSupported, vendor = '') {\n this.observer = void 0;\n this.config = void 0;\n this.typeSupported = void 0;\n this.ISGenerated = false;\n this._initPTS = null;\n this._initDTS = null;\n this.nextAvcDts = null;\n this.nextAudioPts = null;\n this.videoSampleDuration = null;\n this.isAudioContiguous = false;\n this.isVideoContiguous = false;\n this.videoTrackConfig = void 0;\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.ISGenerated = false;\n if (chromeVersion === null) {\n const userAgent = navigator.userAgent || '';\n const result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n if (safariWebkitVersion === null) {\n const result = navigator.userAgent.match(/Safari\\/(\\d+)/i);\n safariWebkitVersion = result ? parseInt(result[1]) : 0;\n }\n }\n destroy() {\n // @ts-ignore\n this.config = this.videoTrackConfig = this._initPTS = this._initDTS = null;\n }\n resetTimeStamp(defaultTimeStamp) {\n logger.log('[mp4-remuxer]: initPTS & initDTS reset');\n this._initPTS = this._initDTS = defaultTimeStamp;\n }\n resetNextTimestamp() {\n logger.log('[mp4-remuxer]: reset next timestamp');\n this.isVideoContiguous = false;\n this.isAudioContiguous = false;\n }\n resetInitSegment() {\n logger.log('[mp4-remuxer]: ISGenerated flag reset');\n this.ISGenerated = false;\n this.videoTrackConfig = undefined;\n }\n getVideoStartPts(videoSamples) {\n // Get the minimum PTS value relative to the first sample's PTS, normalized for 33-bit wrapping\n let rolloverDetected = false;\n const firstPts = videoSamples[0].pts;\n const startPTS = videoSamples.reduce((minPTS, sample) => {\n let pts = sample.pts;\n let delta = pts - minPTS;\n if (delta < -4294967296) {\n // 2^32, see PTSNormalize for reasoning, but we're hitting a rollover here, and we don't want that to impact the timeOffset calculation\n rolloverDetected = true;\n pts = normalizePts(pts, firstPts);\n delta = pts - minPTS;\n }\n if (delta > 0) {\n return minPTS;\n }\n return pts;\n }, firstPts);\n if (rolloverDetected) {\n logger.debug('PTS rollover detected');\n }\n return startPTS;\n }\n remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, flush, playlistType) {\n let video;\n let audio;\n let initSegment;\n let text;\n let id3;\n let independent;\n let audioTimeOffset = timeOffset;\n let videoTimeOffset = timeOffset;\n\n // If we're remuxing audio and video progressively, wait until we've received enough samples for each track before proceeding.\n // This is done to synchronize the audio and video streams. We know if the current segment will have samples if the \"pid\"\n // parameter is greater than -1. The pid is set when the PMT is parsed, which contains the tracks list.\n // However, if the initSegment has already been generated, or we've reached the end of a segment (flush),\n // then we can remux one track without waiting for the other.\n const hasAudio = audioTrack.pid > -1;\n const hasVideo = videoTrack.pid > -1;\n const length = videoTrack.samples.length;\n const enoughAudioSamples = audioTrack.samples.length > 0;\n const enoughVideoSamples = flush && length > 0 || length > 1;\n const canRemuxAvc = (!hasAudio || enoughAudioSamples) && (!hasVideo || enoughVideoSamples) || this.ISGenerated || flush;\n if (canRemuxAvc) {\n if (this.ISGenerated) {\n var _videoTrack$pixelRati, _config$pixelRatio, _videoTrack$pixelRati2, _config$pixelRatio2;\n const config = this.videoTrackConfig;\n if (config && (videoTrack.width !== config.width || videoTrack.height !== config.height || ((_videoTrack$pixelRati = videoTrack.pixelRatio) == null ? void 0 : _videoTrack$pixelRati[0]) !== ((_config$pixelRatio = config.pixelRatio) == null ? void 0 : _config$pixelRatio[0]) || ((_videoTrack$pixelRati2 = videoTrack.pixelRatio) == null ? void 0 : _videoTrack$pixelRati2[1]) !== ((_config$pixelRatio2 = config.pixelRatio) == null ? void 0 : _config$pixelRatio2[1]))) {\n this.resetInitSegment();\n }\n } else {\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset, accurateTimeOffset);\n }\n const isVideoContiguous = this.isVideoContiguous;\n let firstKeyFrameIndex = -1;\n let firstKeyFramePTS;\n if (enoughVideoSamples) {\n firstKeyFrameIndex = findKeyframeIndex(videoTrack.samples);\n if (!isVideoContiguous && this.config.forceKeyFrameOnDiscontinuity) {\n independent = true;\n if (firstKeyFrameIndex > 0) {\n logger.warn(`[mp4-remuxer]: Dropped ${firstKeyFrameIndex} out of ${length} video samples due to a missing keyframe`);\n const startPTS = this.getVideoStartPts(videoTrack.samples);\n videoTrack.samples = videoTrack.samples.slice(firstKeyFrameIndex);\n videoTrack.dropped += firstKeyFrameIndex;\n videoTimeOffset += (videoTrack.samples[0].pts - startPTS) / videoTrack.inputTimeScale;\n firstKeyFramePTS = videoTimeOffset;\n } else if (firstKeyFrameIndex === -1) {\n logger.warn(`[mp4-remuxer]: No keyframe found out of ${length} video samples`);\n independent = false;\n }\n }\n }\n if (this.ISGenerated) {\n if (enoughAudioSamples && enoughVideoSamples) {\n // timeOffset is expected to be the offset of the first timestamp of this fragment (first DTS)\n // if first audio DTS is not aligned with first video DTS then we need to take that into account\n // when providing timeOffset to remuxAudio / remuxVideo. if we don't do that, there might be a permanent / small\n // drift between audio and video streams\n const startPTS = this.getVideoStartPts(videoTrack.samples);\n const tsDelta = normalizePts(audioTrack.samples[0].pts, startPTS) - startPTS;\n const audiovideoTimestampDelta = tsDelta / videoTrack.inputTimeScale;\n audioTimeOffset += Math.max(0, audiovideoTimestampDelta);\n videoTimeOffset += Math.max(0, -audiovideoTimestampDelta);\n }\n\n // Purposefully remuxing audio before video, so that remuxVideo can use nextAudioPts, which is calculated in remuxAudio.\n if (enoughAudioSamples) {\n // if initSegment was generated without audio samples, regenerate it again\n if (!audioTrack.samplerate) {\n logger.warn('[mp4-remuxer]: regenerate InitSegment as audio detected');\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset, accurateTimeOffset);\n }\n audio = this.remuxAudio(audioTrack, audioTimeOffset, this.isAudioContiguous, accurateTimeOffset, hasVideo || enoughVideoSamples || playlistType === PlaylistLevelType.AUDIO ? videoTimeOffset : undefined);\n if (enoughVideoSamples) {\n const audioTrackLength = audio ? audio.endPTS - audio.startPTS : 0;\n // if initSegment was generated without video samples, regenerate it again\n if (!videoTrack.inputTimeScale) {\n logger.warn('[mp4-remuxer]: regenerate InitSegment as video detected');\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset, accurateTimeOffset);\n }\n video = this.remuxVideo(videoTrack, videoTimeOffset, isVideoContiguous, audioTrackLength);\n }\n } else if (enoughVideoSamples) {\n video = this.remuxVideo(videoTrack, videoTimeOffset, isVideoContiguous, 0);\n }\n if (video) {\n video.firstKeyFrame = firstKeyFrameIndex;\n video.independent = firstKeyFrameIndex !== -1;\n video.firstKeyFramePTS = firstKeyFramePTS;\n }\n }\n }\n\n // Allow ID3 and text to remux, even if more audio/video samples are required\n if (this.ISGenerated && this._initPTS && this._initDTS) {\n if (id3Track.samples.length) {\n id3 = flushTextTrackMetadataCueSamples(id3Track, timeOffset, this._initPTS, this._initDTS);\n }\n if (textTrack.samples.length) {\n text = flushTextTrackUserdataCueSamples(textTrack, timeOffset, this._initPTS);\n }\n }\n return {\n audio,\n video,\n initSegment,\n independent,\n text,\n id3\n };\n }\n generateIS(audioTrack, videoTrack, timeOffset, accurateTimeOffset) {\n const audioSamples = audioTrack.samples;\n const videoSamples = videoTrack.samples;\n const typeSupported = this.typeSupported;\n const tracks = {};\n const _initPTS = this._initPTS;\n let computePTSDTS = !_initPTS || accurateTimeOffset;\n let container = 'audio/mp4';\n let initPTS;\n let initDTS;\n let timescale;\n if (computePTSDTS) {\n initPTS = initDTS = Infinity;\n }\n if (audioTrack.config && audioSamples.length) {\n // let's use audio sampling rate as MP4 time scale.\n // rationale is that there is a integer nb of audio frames per audio sample (1024 for AAC)\n // using audio sampling rate here helps having an integer MP4 frame duration\n // this avoids potential rounding issue and AV sync issue\n audioTrack.timescale = audioTrack.samplerate;\n switch (audioTrack.segmentCodec) {\n case 'mp3':\n if (typeSupported.mpeg) {\n // Chrome and Safari\n container = 'audio/mpeg';\n audioTrack.codec = '';\n } else if (typeSupported.mp3) {\n // Firefox\n audioTrack.codec = 'mp3';\n }\n break;\n case 'ac3':\n audioTrack.codec = 'ac-3';\n break;\n }\n tracks.audio = {\n id: 'audio',\n container: container,\n codec: audioTrack.codec,\n initSegment: audioTrack.segmentCodec === 'mp3' && typeSupported.mpeg ? new Uint8Array(0) : MP4.initSegment([audioTrack]),\n metadata: {\n channelCount: audioTrack.channelCount\n }\n };\n if (computePTSDTS) {\n timescale = audioTrack.inputTimeScale;\n if (!_initPTS || timescale !== _initPTS.timescale) {\n // remember first PTS of this demuxing context. for audio, PTS = DTS\n initPTS = initDTS = audioSamples[0].pts - Math.round(timescale * timeOffset);\n } else {\n computePTSDTS = false;\n }\n }\n }\n if (videoTrack.sps && videoTrack.pps && videoSamples.length) {\n // let's use input time scale as MP4 video timescale\n // we use input time scale straight away to avoid rounding issues on frame duration / cts computation\n videoTrack.timescale = videoTrack.inputTimeScale;\n tracks.video = {\n id: 'main',\n container: 'video/mp4',\n codec: videoTrack.codec,\n initSegment: MP4.initSegment([videoTrack]),\n metadata: {\n width: videoTrack.width,\n height: videoTrack.height\n }\n };\n if (computePTSDTS) {\n timescale = videoTrack.inputTimeScale;\n if (!_initPTS || timescale !== _initPTS.timescale) {\n const startPTS = this.getVideoStartPts(videoSamples);\n const startOffset = Math.round(timescale * timeOffset);\n initDTS = Math.min(initDTS, normalizePts(videoSamples[0].dts, startPTS) - startOffset);\n initPTS = Math.min(initPTS, startPTS - startOffset);\n } else {\n computePTSDTS = false;\n }\n }\n this.videoTrackConfig = {\n width: videoTrack.width,\n height: videoTrack.height,\n pixelRatio: videoTrack.pixelRatio\n };\n }\n if (Object.keys(tracks).length) {\n this.ISGenerated = true;\n if (computePTSDTS) {\n this._initPTS = {\n baseTime: initPTS,\n timescale: timescale\n };\n this._initDTS = {\n baseTime: initDTS,\n timescale: timescale\n };\n } else {\n initPTS = timescale = undefined;\n }\n return {\n tracks,\n initPTS,\n timescale\n };\n }\n }\n remuxVideo(track, timeOffset, contiguous, audioTrackLength) {\n const timeScale = track.inputTimeScale;\n const inputSamples = track.samples;\n const outputSamples = [];\n const nbSamples = inputSamples.length;\n const initPTS = this._initPTS;\n let nextAvcDts = this.nextAvcDts;\n let offset = 8;\n let mp4SampleDuration = this.videoSampleDuration;\n let firstDTS;\n let lastDTS;\n let minPTS = Number.POSITIVE_INFINITY;\n let maxPTS = Number.NEGATIVE_INFINITY;\n let sortSamples = false;\n\n // if parsed fragment is contiguous with last one, let's use last DTS value as reference\n if (!contiguous || nextAvcDts === null) {\n const pts = timeOffset * timeScale;\n const cts = inputSamples[0].pts - normalizePts(inputSamples[0].dts, inputSamples[0].pts);\n if (chromeVersion && nextAvcDts !== null && Math.abs(pts - cts - nextAvcDts) < 15000) {\n // treat as contigous to adjust samples that would otherwise produce video buffer gaps in Chrome\n contiguous = true;\n } else {\n // if not contiguous, let's use target timeOffset\n nextAvcDts = pts - cts;\n }\n }\n\n // PTS is coded on 33bits, and can loop from -2^32 to 2^32\n // PTSNormalize will make PTS/DTS value monotonic, we use last known DTS value as reference value\n const initTime = initPTS.baseTime * timeScale / initPTS.timescale;\n for (let i = 0; i < nbSamples; i++) {\n const sample = inputSamples[i];\n sample.pts = normalizePts(sample.pts - initTime, nextAvcDts);\n sample.dts = normalizePts(sample.dts - initTime, nextAvcDts);\n if (sample.dts < inputSamples[i > 0 ? i - 1 : i].dts) {\n sortSamples = true;\n }\n }\n\n // sort video samples by DTS then PTS then demux id order\n if (sortSamples) {\n inputSamples.sort(function (a, b) {\n const deltadts = a.dts - b.dts;\n const deltapts = a.pts - b.pts;\n return deltadts || deltapts;\n });\n }\n\n // Get first/last DTS\n firstDTS = inputSamples[0].dts;\n lastDTS = inputSamples[inputSamples.length - 1].dts;\n\n // Sample duration (as expected by trun MP4 boxes), should be the delta between sample DTS\n // set this constant duration as being the avg delta between consecutive DTS.\n const inputDuration = lastDTS - firstDTS;\n const averageSampleDuration = inputDuration ? Math.round(inputDuration / (nbSamples - 1)) : mp4SampleDuration || track.inputTimeScale / 30;\n\n // if fragment are contiguous, detect hole/overlapping between fragments\n if (contiguous) {\n // check timestamp continuity across consecutive fragments (this is to remove inter-fragment gap/hole)\n const delta = firstDTS - nextAvcDts;\n const foundHole = delta > averageSampleDuration;\n const foundOverlap = delta < -1;\n if (foundHole || foundOverlap) {\n if (foundHole) {\n logger.warn(`AVC: ${toMsFromMpegTsClock(delta, true)} ms (${delta}dts) hole between fragments detected at ${timeOffset.toFixed(3)}`);\n } else {\n logger.warn(`AVC: ${toMsFromMpegTsClock(-delta, true)} ms (${delta}dts) overlapping between fragments detected at ${timeOffset.toFixed(3)}`);\n }\n if (!foundOverlap || nextAvcDts >= inputSamples[0].pts || chromeVersion) {\n firstDTS = nextAvcDts;\n const firstPTS = inputSamples[0].pts - delta;\n if (foundHole) {\n inputSamples[0].dts = firstDTS;\n inputSamples[0].pts = firstPTS;\n } else {\n for (let i = 0; i < inputSamples.length; i++) {\n if (inputSamples[i].dts > firstPTS) {\n break;\n }\n inputSamples[i].dts -= delta;\n inputSamples[i].pts -= delta;\n }\n }\n logger.log(`Video: Initial PTS/DTS adjusted: ${toMsFromMpegTsClock(firstPTS, true)}/${toMsFromMpegTsClock(firstDTS, true)}, delta: ${toMsFromMpegTsClock(delta, true)} ms`);\n }\n }\n }\n firstDTS = Math.max(0, firstDTS);\n let nbNalu = 0;\n let naluLen = 0;\n let dtsStep = firstDTS;\n for (let i = 0; i < nbSamples; i++) {\n // compute total/avc sample length and nb of NAL units\n const sample = inputSamples[i];\n const units = sample.units;\n const nbUnits = units.length;\n let sampleLen = 0;\n for (let j = 0; j < nbUnits; j++) {\n sampleLen += units[j].data.length;\n }\n naluLen += sampleLen;\n nbNalu += nbUnits;\n sample.length = sampleLen;\n\n // ensure sample monotonic DTS\n if (sample.dts < dtsStep) {\n sample.dts = dtsStep;\n dtsStep += averageSampleDuration / 4 | 0 || 1;\n } else {\n dtsStep = sample.dts;\n }\n minPTS = Math.min(sample.pts, minPTS);\n maxPTS = Math.max(sample.pts, maxPTS);\n }\n lastDTS = inputSamples[nbSamples - 1].dts;\n\n /* concatenate the video data and construct the mdat in place\n (need 8 more bytes to fill length and mpdat type) */\n const mdatSize = naluLen + 4 * nbNalu + 8;\n let mdat;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MUX_ERROR,\n details: ErrorDetails.REMUX_ALLOC_ERROR,\n fatal: false,\n error: err,\n bytes: mdatSize,\n reason: `fail allocating video mdat ${mdatSize}`\n });\n return;\n }\n const view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n let stretchedLastFrame = false;\n let minDtsDelta = Number.POSITIVE_INFINITY;\n let minPtsDelta = Number.POSITIVE_INFINITY;\n let maxDtsDelta = Number.NEGATIVE_INFINITY;\n let maxPtsDelta = Number.NEGATIVE_INFINITY;\n for (let i = 0; i < nbSamples; i++) {\n const VideoSample = inputSamples[i];\n const VideoSampleUnits = VideoSample.units;\n let mp4SampleLength = 0;\n // convert NALU bitstream to MP4 format (prepend NALU with size field)\n for (let j = 0, nbUnits = VideoSampleUnits.length; j < nbUnits; j++) {\n const unit = VideoSampleUnits[j];\n const unitData = unit.data;\n const unitDataLen = unit.data.byteLength;\n view.setUint32(offset, unitDataLen);\n offset += 4;\n mdat.set(unitData, offset);\n offset += unitDataLen;\n mp4SampleLength += 4 + unitDataLen;\n }\n\n // expected sample duration is the Decoding Timestamp diff of consecutive samples\n let ptsDelta;\n if (i < nbSamples - 1) {\n mp4SampleDuration = inputSamples[i + 1].dts - VideoSample.dts;\n ptsDelta = inputSamples[i + 1].pts - VideoSample.pts;\n } else {\n const config = this.config;\n const lastFrameDuration = i > 0 ? VideoSample.dts - inputSamples[i - 1].dts : averageSampleDuration;\n ptsDelta = i > 0 ? VideoSample.pts - inputSamples[i - 1].pts : averageSampleDuration;\n if (config.stretchShortVideoTrack && this.nextAudioPts !== null) {\n // In some cases, a segment's audio track duration may exceed the video track duration.\n // Since we've already remuxed audio, and we know how long the audio track is, we look to\n // see if the delta to the next segment is longer than maxBufferHole.\n // If so, playback would potentially get stuck, so we artificially inflate\n // the duration of the last frame to minimize any potential gap between segments.\n const gapTolerance = Math.floor(config.maxBufferHole * timeScale);\n const deltaToFrameEnd = (audioTrackLength ? minPTS + audioTrackLength * timeScale : this.nextAudioPts) - VideoSample.pts;\n if (deltaToFrameEnd > gapTolerance) {\n // We subtract lastFrameDuration from deltaToFrameEnd to try to prevent any video\n // frame overlap. maxBufferHole should be >> lastFrameDuration anyway.\n mp4SampleDuration = deltaToFrameEnd - lastFrameDuration;\n if (mp4SampleDuration < 0) {\n mp4SampleDuration = lastFrameDuration;\n } else {\n stretchedLastFrame = true;\n }\n logger.log(`[mp4-remuxer]: It is approximately ${deltaToFrameEnd / 90} ms to the next segment; using duration ${mp4SampleDuration / 90} ms for the last video frame.`);\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n }\n const compositionTimeOffset = Math.round(VideoSample.pts - VideoSample.dts);\n minDtsDelta = Math.min(minDtsDelta, mp4SampleDuration);\n maxDtsDelta = Math.max(maxDtsDelta, mp4SampleDuration);\n minPtsDelta = Math.min(minPtsDelta, ptsDelta);\n maxPtsDelta = Math.max(maxPtsDelta, ptsDelta);\n outputSamples.push(new Mp4Sample(VideoSample.key, mp4SampleDuration, mp4SampleLength, compositionTimeOffset));\n }\n if (outputSamples.length) {\n if (chromeVersion) {\n if (chromeVersion < 70) {\n // Chrome workaround, mark first sample as being a Random Access Point (keyframe) to avoid sourcebuffer append issue\n // https://code.google.com/p/chromium/issues/detail?id=229412\n const flags = outputSamples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n } else if (safariWebkitVersion) {\n // Fix for \"CNN special report, with CC\" in test-streams (Safari browser only)\n // Ignore DTS when frame durations are irregular. Safari MSE does not handle this leading to gaps.\n if (maxPtsDelta - minPtsDelta < maxDtsDelta - minDtsDelta && averageSampleDuration / maxDtsDelta < 0.025 && outputSamples[0].cts === 0) {\n logger.warn('Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.');\n let dts = firstDTS;\n for (let i = 0, len = outputSamples.length; i < len; i++) {\n const nextDts = dts + outputSamples[i].duration;\n const pts = dts + outputSamples[i].cts;\n if (i < len - 1) {\n const nextPts = nextDts + outputSamples[i + 1].cts;\n outputSamples[i].duration = nextPts - pts;\n } else {\n outputSamples[i].duration = i ? outputSamples[i - 1].duration : averageSampleDuration;\n }\n outputSamples[i].cts = 0;\n dts = nextDts;\n }\n }\n }\n }\n // next AVC sample DTS should be equal to last sample DTS + last sample duration (in PES timescale)\n mp4SampleDuration = stretchedLastFrame || !mp4SampleDuration ? averageSampleDuration : mp4SampleDuration;\n this.nextAvcDts = nextAvcDts = lastDTS + mp4SampleDuration;\n this.videoSampleDuration = mp4SampleDuration;\n this.isVideoContiguous = true;\n const moof = MP4.moof(track.sequenceNumber++, firstDTS, _extends({}, track, {\n samples: outputSamples\n }));\n const type = 'video';\n const data = {\n data1: moof,\n data2: mdat,\n startPTS: minPTS / timeScale,\n endPTS: (maxPTS + mp4SampleDuration) / timeScale,\n startDTS: firstDTS / timeScale,\n endDTS: nextAvcDts / timeScale,\n type,\n hasAudio: false,\n hasVideo: true,\n nb: outputSamples.length,\n dropped: track.dropped\n };\n track.samples = [];\n track.dropped = 0;\n return data;\n }\n getSamplesPerFrame(track) {\n switch (track.segmentCodec) {\n case 'mp3':\n return MPEG_AUDIO_SAMPLE_PER_FRAME;\n case 'ac3':\n return AC3_SAMPLES_PER_FRAME;\n default:\n return AAC_SAMPLES_PER_FRAME;\n }\n }\n remuxAudio(track, timeOffset, contiguous, accurateTimeOffset, videoTimeOffset) {\n const inputTimeScale = track.inputTimeScale;\n const mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale;\n const scaleFactor = inputTimeScale / mp4timeScale;\n const mp4SampleDuration = this.getSamplesPerFrame(track);\n const inputSampleDuration = mp4SampleDuration * scaleFactor;\n const initPTS = this._initPTS;\n const rawMPEG = track.segmentCodec === 'mp3' && this.typeSupported.mpeg;\n const outputSamples = [];\n const alignedWithVideo = videoTimeOffset !== undefined;\n let inputSamples = track.samples;\n let offset = rawMPEG ? 0 : 8;\n let nextAudioPts = this.nextAudioPts || -1;\n\n // window.audioSamples ? window.audioSamples.push(inputSamples.map(s => s.pts)) : (window.audioSamples = [inputSamples.map(s => s.pts)]);\n\n // for audio samples, also consider consecutive fragments as being contiguous (even if a level switch occurs),\n // for sake of clarity:\n // consecutive fragments are frags with\n // - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n // - less than 20 audio frames distance\n // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n // this helps ensuring audio continuity\n // and this also avoids audio glitches/cut when switching quality, or reporting wrong duration on first audio frame\n const timeOffsetMpegTS = timeOffset * inputTimeScale;\n const initTime = initPTS.baseTime * inputTimeScale / initPTS.timescale;\n this.isAudioContiguous = contiguous = contiguous || inputSamples.length && nextAudioPts > 0 && (accurateTimeOffset && Math.abs(timeOffsetMpegTS - nextAudioPts) < 9000 || Math.abs(normalizePts(inputSamples[0].pts - initTime, timeOffsetMpegTS) - nextAudioPts) < 20 * inputSampleDuration);\n\n // compute normalized PTS\n inputSamples.forEach(function (sample) {\n sample.pts = normalizePts(sample.pts - initTime, timeOffsetMpegTS);\n });\n if (!contiguous || nextAudioPts < 0) {\n // filter out sample with negative PTS that are not playable anyway\n // if we don't remove these negative samples, they will shift all audio samples forward.\n // leading to audio overlap between current / next fragment\n inputSamples = inputSamples.filter(sample => sample.pts >= 0);\n\n // in case all samples have negative PTS, and have been filtered out, return now\n if (!inputSamples.length) {\n return;\n }\n if (videoTimeOffset === 0) {\n // Set the start to 0 to match video so that start gaps larger than inputSampleDuration are filled with silence\n nextAudioPts = 0;\n } else if (accurateTimeOffset && !alignedWithVideo) {\n // When not seeking, not live, and LevelDetails.PTSKnown, use fragment start as predicted next audio PTS\n nextAudioPts = Math.max(0, timeOffsetMpegTS);\n } else {\n // if frags are not contiguous and if we cant trust time offset, let's use first sample PTS as next audio PTS\n nextAudioPts = inputSamples[0].pts;\n }\n }\n\n // If the audio track is missing samples, the frames seem to get \"left-shifted\" within the\n // resulting mp4 segment, causing sync issues and leaving gaps at the end of the audio segment.\n // In an effort to prevent this from happening, we inject frames here where there are gaps.\n // When possible, we inject a silent frame; when that's not possible, we duplicate the last\n // frame.\n\n if (track.segmentCodec === 'aac') {\n const maxAudioFramesDrift = this.config.maxAudioFramesDrift;\n for (let i = 0, nextPts = nextAudioPts; i < inputSamples.length; i++) {\n // First, let's see how far off this frame is from where we expect it to be\n const sample = inputSamples[i];\n const pts = sample.pts;\n const delta = pts - nextPts;\n const duration = Math.abs(1000 * delta / inputTimeScale);\n\n // When remuxing with video, if we're overlapping by more than a duration, drop this sample to stay in sync\n if (delta <= -maxAudioFramesDrift * inputSampleDuration && alignedWithVideo) {\n if (i === 0) {\n logger.warn(`Audio frame @ ${(pts / inputTimeScale).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000 * delta / inputTimeScale)} ms.`);\n this.nextAudioPts = nextAudioPts = nextPts = pts;\n }\n } // eslint-disable-line brace-style\n\n // Insert missing frames if:\n // 1: We're more than maxAudioFramesDrift frame away\n // 2: Not more than MAX_SILENT_FRAME_DURATION away\n // 3: currentTime (aka nextPtsNorm) is not 0\n // 4: remuxing with video (videoTimeOffset !== undefined)\n else if (delta >= maxAudioFramesDrift * inputSampleDuration && duration < MAX_SILENT_FRAME_DURATION && alignedWithVideo) {\n let missing = Math.round(delta / inputSampleDuration);\n // Adjust nextPts so that silent samples are aligned with media pts. This will prevent media samples from\n // later being shifted if nextPts is based on timeOffset and delta is not a multiple of inputSampleDuration.\n nextPts = pts - missing * inputSampleDuration;\n if (nextPts < 0) {\n missing--;\n nextPts += inputSampleDuration;\n }\n if (i === 0) {\n this.nextAudioPts = nextAudioPts = nextPts;\n }\n logger.warn(`[mp4-remuxer]: Injecting ${missing} audio frame @ ${(nextPts / inputTimeScale).toFixed(3)}s due to ${Math.round(1000 * delta / inputTimeScale)} ms gap.`);\n for (let j = 0; j < missing; j++) {\n const newStamp = Math.max(nextPts, 0);\n let fillFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n if (!fillFrame) {\n logger.log('[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead.');\n fillFrame = sample.unit.subarray();\n }\n inputSamples.splice(i, 0, {\n unit: fillFrame,\n pts: newStamp\n });\n nextPts += inputSampleDuration;\n i++;\n }\n }\n sample.pts = nextPts;\n nextPts += inputSampleDuration;\n }\n }\n let firstPTS = null;\n let lastPTS = null;\n let mdat;\n let mdatSize = 0;\n let sampleLength = inputSamples.length;\n while (sampleLength--) {\n mdatSize += inputSamples[sampleLength].unit.byteLength;\n }\n for (let j = 0, _nbSamples = inputSamples.length; j < _nbSamples; j++) {\n const audioSample = inputSamples[j];\n const unit = audioSample.unit;\n let pts = audioSample.pts;\n if (lastPTS !== null) {\n // If we have more than one sample, set the duration of the sample to the \"real\" duration; the PTS diff with\n // the previous sample\n const prevSample = outputSamples[j - 1];\n prevSample.duration = Math.round((pts - lastPTS) / scaleFactor);\n } else {\n if (contiguous && track.segmentCodec === 'aac') {\n // set PTS/DTS to expected PTS/DTS\n pts = nextAudioPts;\n }\n // remember first PTS of our audioSamples\n firstPTS = pts;\n if (mdatSize > 0) {\n /* concatenate the audio data and construct the mdat in place\n (need 8 more bytes to fill length and mdat type) */\n mdatSize += offset;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MUX_ERROR,\n details: ErrorDetails.REMUX_ALLOC_ERROR,\n fatal: false,\n error: err,\n bytes: mdatSize,\n reason: `fail allocating audio mdat ${mdatSize}`\n });\n return;\n }\n if (!rawMPEG) {\n const view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n }\n } else {\n // no audio samples\n return;\n }\n }\n mdat.set(unit, offset);\n const unitLen = unit.byteLength;\n offset += unitLen;\n // Default the sample's duration to the computed mp4SampleDuration, which will either be 1024 for AAC or 1152 for MPEG\n // In the case that we have 1 sample, this will be the duration. If we have more than one sample, the duration\n // becomes the PTS diff with the previous sample\n outputSamples.push(new Mp4Sample(true, mp4SampleDuration, unitLen, 0));\n lastPTS = pts;\n }\n\n // We could end up with no audio samples if all input samples were overlapping with the previously remuxed ones\n const nbSamples = outputSamples.length;\n if (!nbSamples) {\n return;\n }\n\n // The next audio sample PTS should be equal to last sample PTS + duration\n const lastSample = outputSamples[outputSamples.length - 1];\n this.nextAudioPts = nextAudioPts = lastPTS + scaleFactor * lastSample.duration;\n\n // Set the track samples from inputSamples to outputSamples before remuxing\n const moof = rawMPEG ? new Uint8Array(0) : MP4.moof(track.sequenceNumber++, firstPTS / scaleFactor, _extends({}, track, {\n samples: outputSamples\n }));\n\n // Clear the track samples. This also clears the samples array in the demuxer, since the reference is shared\n track.samples = [];\n const start = firstPTS / inputTimeScale;\n const end = nextAudioPts / inputTimeScale;\n const type = 'audio';\n const audioData = {\n data1: moof,\n data2: mdat,\n startPTS: start,\n endPTS: end,\n startDTS: start,\n endDTS: end,\n type,\n hasAudio: true,\n hasVideo: false,\n nb: nbSamples\n };\n this.isAudioContiguous = true;\n return audioData;\n }\n remuxEmptyAudio(track, timeOffset, contiguous, videoData) {\n const inputTimeScale = track.inputTimeScale;\n const mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale;\n const scaleFactor = inputTimeScale / mp4timeScale;\n const nextAudioPts = this.nextAudioPts;\n // sync with video's timestamp\n const initDTS = this._initDTS;\n const init90kHz = initDTS.baseTime * 90000 / initDTS.timescale;\n const startDTS = (nextAudioPts !== null ? nextAudioPts : videoData.startDTS * inputTimeScale) + init90kHz;\n const endDTS = videoData.endDTS * inputTimeScale + init90kHz;\n // one sample's duration value\n const frameDuration = scaleFactor * AAC_SAMPLES_PER_FRAME;\n // samples count of this segment's duration\n const nbSamples = Math.ceil((endDTS - startDTS) / frameDuration);\n // silent frame\n const silentFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n logger.warn('[mp4-remuxer]: remux empty Audio');\n // Can't remux if we can't generate a silent frame...\n if (!silentFrame) {\n logger.trace('[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec');\n return;\n }\n const samples = [];\n for (let i = 0; i < nbSamples; i++) {\n const stamp = startDTS + i * frameDuration;\n samples.push({\n unit: silentFrame,\n pts: stamp,\n dts: stamp\n });\n }\n track.samples = samples;\n return this.remuxAudio(track, timeOffset, contiguous, false);\n }\n}\nfunction normalizePts(value, reference) {\n let offset;\n if (reference === null) {\n return value;\n }\n if (reference < value) {\n // - 2^33\n offset = -8589934592;\n } else {\n // + 2^33\n offset = 8589934592;\n }\n /* PTS is 33bit (from 0 to 2^33 -1)\n if diff between value and reference is bigger than half of the amplitude (2^32) then it means that\n PTS looping occured. fill the gap */\n while (Math.abs(value - reference) > 4294967296) {\n value += offset;\n }\n return value;\n}\nfunction findKeyframeIndex(samples) {\n for (let i = 0; i < samples.length; i++) {\n if (samples[i].key) {\n return i;\n }\n }\n return -1;\n}\nfunction flushTextTrackMetadataCueSamples(track, timeOffset, initPTS, initDTS) {\n const length = track.samples.length;\n if (!length) {\n return;\n }\n const inputTimeScale = track.inputTimeScale;\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting id3 pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts = normalizePts(sample.pts - initPTS.baseTime * inputTimeScale / initPTS.timescale, timeOffset * inputTimeScale) / inputTimeScale;\n sample.dts = normalizePts(sample.dts - initDTS.baseTime * inputTimeScale / initDTS.timescale, timeOffset * inputTimeScale) / inputTimeScale;\n }\n const samples = track.samples;\n track.samples = [];\n return {\n samples\n };\n}\nfunction flushTextTrackUserdataCueSamples(track, timeOffset, initPTS) {\n const length = track.samples.length;\n if (!length) {\n return;\n }\n const inputTimeScale = track.inputTimeScale;\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting text pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts = normalizePts(sample.pts - initPTS.baseTime * inputTimeScale / initPTS.timescale, timeOffset * inputTimeScale) / inputTimeScale;\n }\n track.samples.sort((a, b) => a.pts - b.pts);\n const samples = track.samples;\n track.samples = [];\n return {\n samples\n };\n}\nclass Mp4Sample {\n constructor(isKeyframe, duration, size, cts) {\n this.size = void 0;\n this.duration = void 0;\n this.cts = void 0;\n this.flags = void 0;\n this.duration = duration;\n this.size = size;\n this.cts = cts;\n this.flags = {\n isLeading: 0,\n isDependedOn: 0,\n hasRedundancy: 0,\n degradPrio: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isNonSync: isKeyframe ? 0 : 1\n };\n }\n}\n\nclass PassThroughRemuxer {\n constructor() {\n this.emitInitSegment = false;\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this.initData = void 0;\n this.initPTS = null;\n this.initTracks = void 0;\n this.lastEndTime = null;\n }\n destroy() {}\n resetTimeStamp(defaultInitPTS) {\n this.initPTS = defaultInitPTS;\n this.lastEndTime = null;\n }\n resetNextTimestamp() {\n this.lastEndTime = null;\n }\n resetInitSegment(initSegment, audioCodec, videoCodec, decryptdata) {\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.generateInitSegment(patchEncyptionData(initSegment, decryptdata));\n this.emitInitSegment = true;\n }\n generateInitSegment(initSegment) {\n let {\n audioCodec,\n videoCodec\n } = this;\n if (!(initSegment != null && initSegment.byteLength)) {\n this.initTracks = undefined;\n this.initData = undefined;\n return;\n }\n const initData = this.initData = parseInitSegment(initSegment);\n\n // Get codec from initSegment or fallback to default\n if (initData.audio) {\n audioCodec = getParsedTrackCodec(initData.audio, ElementaryStreamTypes.AUDIO);\n }\n if (initData.video) {\n videoCodec = getParsedTrackCodec(initData.video, ElementaryStreamTypes.VIDEO);\n }\n const tracks = {};\n if (initData.audio && initData.video) {\n tracks.audiovideo = {\n container: 'video/mp4',\n codec: audioCodec + ',' + videoCodec,\n initSegment,\n id: 'main'\n };\n } else if (initData.audio) {\n tracks.audio = {\n container: 'audio/mp4',\n codec: audioCodec,\n initSegment,\n id: 'audio'\n };\n } else if (initData.video) {\n tracks.video = {\n container: 'video/mp4',\n codec: videoCodec,\n initSegment,\n id: 'main'\n };\n } else {\n logger.warn('[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes.');\n }\n this.initTracks = tracks;\n }\n remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset) {\n var _initData, _initData2;\n let {\n initPTS,\n lastEndTime\n } = this;\n const result = {\n audio: undefined,\n video: undefined,\n text: textTrack,\n id3: id3Track,\n initSegment: undefined\n };\n\n // If we haven't yet set a lastEndDTS, or it was reset, set it to the provided timeOffset. We want to use the\n // lastEndDTS over timeOffset whenever possible; during progressive playback, the media source will not update\n // the media duration (which is what timeOffset is provided as) before we need to process the next chunk.\n if (!isFiniteNumber(lastEndTime)) {\n lastEndTime = this.lastEndTime = timeOffset || 0;\n }\n\n // The binary segment data is added to the videoTrack in the mp4demuxer. We don't check to see if the data is only\n // audio or video (or both); adding it to video was an arbitrary choice.\n const data = videoTrack.samples;\n if (!(data != null && data.length)) {\n return result;\n }\n const initSegment = {\n initPTS: undefined,\n timescale: 1\n };\n let initData = this.initData;\n if (!((_initData = initData) != null && _initData.length)) {\n this.generateInitSegment(data);\n initData = this.initData;\n }\n if (!((_initData2 = initData) != null && _initData2.length)) {\n // We can't remux if the initSegment could not be generated\n logger.warn('[passthrough-remuxer.ts]: Failed to generate initSegment.');\n return result;\n }\n if (this.emitInitSegment) {\n initSegment.tracks = this.initTracks;\n this.emitInitSegment = false;\n }\n const duration = getDuration(data, initData);\n const startDTS = getStartDTS(initData, data);\n const decodeTime = startDTS === null ? timeOffset : startDTS;\n if (isInvalidInitPts(initPTS, decodeTime, timeOffset, duration) || initSegment.timescale !== initPTS.timescale && accurateTimeOffset) {\n initSegment.initPTS = decodeTime - timeOffset;\n if (initPTS && initPTS.timescale === 1) {\n logger.warn(`Adjusting initPTS by ${initSegment.initPTS - initPTS.baseTime}`);\n }\n this.initPTS = initPTS = {\n baseTime: initSegment.initPTS,\n timescale: 1\n };\n }\n const startTime = audioTrack ? decodeTime - initPTS.baseTime / initPTS.timescale : lastEndTime;\n const endTime = startTime + duration;\n offsetStartDTS(initData, data, initPTS.baseTime / initPTS.timescale);\n if (duration > 0) {\n this.lastEndTime = endTime;\n } else {\n logger.warn('Duration parsed from mp4 should be greater than zero');\n this.resetNextTimestamp();\n }\n const hasAudio = !!initData.audio;\n const hasVideo = !!initData.video;\n let type = '';\n if (hasAudio) {\n type += 'audio';\n }\n if (hasVideo) {\n type += 'video';\n }\n const track = {\n data1: data,\n startPTS: startTime,\n startDTS: startTime,\n endPTS: endTime,\n endDTS: endTime,\n type,\n hasAudio,\n hasVideo,\n nb: 1,\n dropped: 0\n };\n result.audio = track.type === 'audio' ? track : undefined;\n result.video = track.type !== 'audio' ? track : undefined;\n result.initSegment = initSegment;\n result.id3 = flushTextTrackMetadataCueSamples(id3Track, timeOffset, initPTS, initPTS);\n if (textTrack.samples.length) {\n result.text = flushTextTrackUserdataCueSamples(textTrack, timeOffset, initPTS);\n }\n return result;\n }\n}\nfunction isInvalidInitPts(initPTS, startDTS, timeOffset, duration) {\n if (initPTS === null) {\n return true;\n }\n // InitPTS is invalid when distance from program would be more than segment duration or a minimum of one second\n const minDuration = Math.max(duration, 1);\n const startTime = startDTS - initPTS.baseTime / initPTS.timescale;\n return Math.abs(startTime - timeOffset) > minDuration;\n}\nfunction getParsedTrackCodec(track, type) {\n const parsedCodec = track == null ? void 0 : track.codec;\n if (parsedCodec && parsedCodec.length > 4) {\n return parsedCodec;\n }\n if (type === ElementaryStreamTypes.AUDIO) {\n if (parsedCodec === 'ec-3' || parsedCodec === 'ac-3' || parsedCodec === 'alac') {\n return parsedCodec;\n }\n if (parsedCodec === 'fLaC' || parsedCodec === 'Opus') {\n // Opting not to get `preferManagedMediaSource` from player config for isSupported() check for simplicity\n const preferManagedMediaSource = false;\n return getCodecCompatibleName(parsedCodec, preferManagedMediaSource);\n }\n const result = 'mp4a.40.5';\n logger.info(`Parsed audio codec \"${parsedCodec}\" or audio object type not handled. Using \"${result}\"`);\n return result;\n }\n // Provide defaults based on codec type\n // This allows for some playback of some fmp4 playlists without CODECS defined in manifest\n logger.warn(`Unhandled video codec \"${parsedCodec}\"`);\n if (parsedCodec === 'hvc1' || parsedCodec === 'hev1') {\n return 'hvc1.1.6.L120.90';\n }\n if (parsedCodec === 'av01') {\n return 'av01.0.04M.08';\n }\n return 'avc1.42e01e';\n}\n\nlet now;\n// performance.now() not available on WebWorker, at least on Safari Desktop\ntry {\n now = self.performance.now.bind(self.performance);\n} catch (err) {\n logger.debug('Unable to use Performance API on this environment');\n now = optionalSelf == null ? void 0 : optionalSelf.Date.now;\n}\nconst muxConfig = [{\n demux: MP4Demuxer,\n remux: PassThroughRemuxer\n}, {\n demux: TSDemuxer,\n remux: MP4Remuxer\n}, {\n demux: AACDemuxer,\n remux: MP4Remuxer\n}, {\n demux: MP3Demuxer,\n remux: MP4Remuxer\n}];\n{\n muxConfig.splice(2, 0, {\n demux: AC3Demuxer,\n remux: MP4Remuxer\n });\n}\nclass Transmuxer {\n constructor(observer, typeSupported, config, vendor, id) {\n this.async = false;\n this.observer = void 0;\n this.typeSupported = void 0;\n this.config = void 0;\n this.vendor = void 0;\n this.id = void 0;\n this.demuxer = void 0;\n this.remuxer = void 0;\n this.decrypter = void 0;\n this.probe = void 0;\n this.decryptionPromise = null;\n this.transmuxConfig = void 0;\n this.currentTransmuxState = void 0;\n this.observer = observer;\n this.typeSupported = typeSupported;\n this.config = config;\n this.vendor = vendor;\n this.id = id;\n }\n configure(transmuxConfig) {\n this.transmuxConfig = transmuxConfig;\n if (this.decrypter) {\n this.decrypter.reset();\n }\n }\n push(data, decryptdata, chunkMeta, state) {\n const stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n let uintData = new Uint8Array(data);\n const {\n currentTransmuxState,\n transmuxConfig\n } = this;\n if (state) {\n this.currentTransmuxState = state;\n }\n const {\n contiguous,\n discontinuity,\n trackSwitch,\n accurateTimeOffset,\n timeOffset,\n initSegmentChange\n } = state || currentTransmuxState;\n const {\n audioCodec,\n videoCodec,\n defaultInitPts,\n duration,\n initSegmentData\n } = transmuxConfig;\n const keyData = getEncryptionType(uintData, decryptdata);\n if (keyData && keyData.method === 'AES-128') {\n const decrypter = this.getDecrypter();\n // Software decryption is synchronous; webCrypto is not\n if (decrypter.isSync()) {\n // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached\n // data is handled in the flush() call\n let decryptedData = decrypter.softwareDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer);\n // For Low-Latency HLS Parts, decrypt in place, since part parsing is expected on push progress\n const loadingParts = chunkMeta.part > -1;\n if (loadingParts) {\n decryptedData = decrypter.flush();\n }\n if (!decryptedData) {\n stats.executeEnd = now();\n return emptyResult(chunkMeta);\n }\n uintData = new Uint8Array(decryptedData);\n } else {\n this.decryptionPromise = decrypter.webCryptoDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer).then(decryptedData => {\n // Calling push here is important; if flush() is called while this is still resolving, this ensures that\n // the decrypted data has been transmuxed\n const result = this.push(decryptedData, null, chunkMeta);\n this.decryptionPromise = null;\n return result;\n });\n return this.decryptionPromise;\n }\n }\n const resetMuxers = this.needsProbing(discontinuity, trackSwitch);\n if (resetMuxers) {\n const error = this.configureTransmuxer(uintData);\n if (error) {\n logger.warn(`[transmuxer] ${error.message}`);\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n error,\n reason: error.message\n });\n stats.executeEnd = now();\n return emptyResult(chunkMeta);\n }\n }\n if (discontinuity || trackSwitch || initSegmentChange || resetMuxers) {\n this.resetInitSegment(initSegmentData, audioCodec, videoCodec, duration, decryptdata);\n }\n if (discontinuity || initSegmentChange || resetMuxers) {\n this.resetInitialTimestamp(defaultInitPts);\n }\n if (!contiguous) {\n this.resetContiguity();\n }\n const result = this.transmux(uintData, keyData, timeOffset, accurateTimeOffset, chunkMeta);\n const currentState = this.currentTransmuxState;\n currentState.contiguous = true;\n currentState.discontinuity = false;\n currentState.trackSwitch = false;\n stats.executeEnd = now();\n return result;\n }\n\n // Due to data caching, flush calls can produce more than one TransmuxerResult (hence the Array type)\n flush(chunkMeta) {\n const stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n const {\n decrypter,\n currentTransmuxState,\n decryptionPromise\n } = this;\n if (decryptionPromise) {\n // Upon resolution, the decryption promise calls push() and returns its TransmuxerResult up the stack. Therefore\n // only flushing is required for async decryption\n return decryptionPromise.then(() => {\n return this.flush(chunkMeta);\n });\n }\n const transmuxResults = [];\n const {\n timeOffset\n } = currentTransmuxState;\n if (decrypter) {\n // The decrypter may have data cached, which needs to be demuxed. In this case we'll have two TransmuxResults\n // This happens in the case that we receive only 1 push call for a segment (either for non-progressive downloads,\n // or for progressive downloads with small segments)\n const decryptedData = decrypter.flush();\n if (decryptedData) {\n // Push always returns a TransmuxerResult if decryptdata is null\n transmuxResults.push(this.push(decryptedData, null, chunkMeta));\n }\n }\n const {\n demuxer,\n remuxer\n } = this;\n if (!demuxer || !remuxer) {\n // If probing failed, then Hls.js has been given content its not able to handle\n stats.executeEnd = now();\n return [emptyResult(chunkMeta)];\n }\n const demuxResultOrPromise = demuxer.flush(timeOffset);\n if (isPromise(demuxResultOrPromise)) {\n // Decrypt final SAMPLE-AES samples\n return demuxResultOrPromise.then(demuxResult => {\n this.flushRemux(transmuxResults, demuxResult, chunkMeta);\n return transmuxResults;\n });\n }\n this.flushRemux(transmuxResults, demuxResultOrPromise, chunkMeta);\n return transmuxResults;\n }\n flushRemux(transmuxResults, demuxResult, chunkMeta) {\n const {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack\n } = demuxResult;\n const {\n accurateTimeOffset,\n timeOffset\n } = this.currentTransmuxState;\n logger.log(`[transmuxer.ts]: Flushed fragment ${chunkMeta.sn}${chunkMeta.part > -1 ? ' p: ' + chunkMeta.part : ''} of level ${chunkMeta.level}`);\n const remuxResult = this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, true, this.id);\n transmuxResults.push({\n remuxResult,\n chunkMeta\n });\n chunkMeta.transmuxing.executeEnd = now();\n }\n resetInitialTimestamp(defaultInitPts) {\n const {\n demuxer,\n remuxer\n } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetTimeStamp(defaultInitPts);\n remuxer.resetTimeStamp(defaultInitPts);\n }\n resetContiguity() {\n const {\n demuxer,\n remuxer\n } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetContiguity();\n remuxer.resetNextTimestamp();\n }\n resetInitSegment(initSegmentData, audioCodec, videoCodec, trackDuration, decryptdata) {\n const {\n demuxer,\n remuxer\n } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetInitSegment(initSegmentData, audioCodec, videoCodec, trackDuration);\n remuxer.resetInitSegment(initSegmentData, audioCodec, videoCodec, decryptdata);\n }\n destroy() {\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = undefined;\n }\n if (this.remuxer) {\n this.remuxer.destroy();\n this.remuxer = undefined;\n }\n }\n transmux(data, keyData, timeOffset, accurateTimeOffset, chunkMeta) {\n let result;\n if (keyData && keyData.method === 'SAMPLE-AES') {\n result = this.transmuxSampleAes(data, keyData, timeOffset, accurateTimeOffset, chunkMeta);\n } else {\n result = this.transmuxUnencrypted(data, timeOffset, accurateTimeOffset, chunkMeta);\n }\n return result;\n }\n transmuxUnencrypted(data, timeOffset, accurateTimeOffset, chunkMeta) {\n const {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack\n } = this.demuxer.demux(data, timeOffset, false, !this.config.progressive);\n const remuxResult = this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, false, this.id);\n return {\n remuxResult,\n chunkMeta\n };\n }\n transmuxSampleAes(data, decryptData, timeOffset, accurateTimeOffset, chunkMeta) {\n return this.demuxer.demuxSampleAes(data, decryptData, timeOffset).then(demuxResult => {\n const remuxResult = this.remuxer.remux(demuxResult.audioTrack, demuxResult.videoTrack, demuxResult.id3Track, demuxResult.textTrack, timeOffset, accurateTimeOffset, false, this.id);\n return {\n remuxResult,\n chunkMeta\n };\n });\n }\n configureTransmuxer(data) {\n const {\n config,\n observer,\n typeSupported,\n vendor\n } = this;\n // probe for content type\n let mux;\n for (let i = 0, len = muxConfig.length; i < len; i++) {\n var _muxConfig$i$demux;\n if ((_muxConfig$i$demux = muxConfig[i].demux) != null && _muxConfig$i$demux.probe(data)) {\n mux = muxConfig[i];\n break;\n }\n }\n if (!mux) {\n return new Error('Failed to find demuxer by probing fragment data');\n }\n // so let's check that current remuxer and demuxer are still valid\n const demuxer = this.demuxer;\n const remuxer = this.remuxer;\n const Remuxer = mux.remux;\n const Demuxer = mux.demux;\n if (!remuxer || !(remuxer instanceof Remuxer)) {\n this.remuxer = new Remuxer(observer, config, typeSupported, vendor);\n }\n if (!demuxer || !(demuxer instanceof Demuxer)) {\n this.demuxer = new Demuxer(observer, config, typeSupported);\n this.probe = Demuxer.probe;\n }\n }\n needsProbing(discontinuity, trackSwitch) {\n // in case of continuity change, or track switch\n // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)\n return !this.demuxer || !this.remuxer || discontinuity || trackSwitch;\n }\n getDecrypter() {\n let decrypter = this.decrypter;\n if (!decrypter) {\n decrypter = this.decrypter = new Decrypter(this.config);\n }\n return decrypter;\n }\n}\nfunction getEncryptionType(data, decryptData) {\n let encryptionType = null;\n if (data.byteLength > 0 && (decryptData == null ? void 0 : decryptData.key) != null && decryptData.iv !== null && decryptData.method != null) {\n encryptionType = decryptData;\n }\n return encryptionType;\n}\nconst emptyResult = chunkMeta => ({\n remuxResult: {},\n chunkMeta\n});\nfunction isPromise(p) {\n return 'then' in p && p.then instanceof Function;\n}\nclass TransmuxConfig {\n constructor(audioCodec, videoCodec, initSegmentData, duration, defaultInitPts) {\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this.initSegmentData = void 0;\n this.duration = void 0;\n this.defaultInitPts = void 0;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.initSegmentData = initSegmentData;\n this.duration = duration;\n this.defaultInitPts = defaultInitPts || null;\n }\n}\nclass TransmuxState {\n constructor(discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange) {\n this.discontinuity = void 0;\n this.contiguous = void 0;\n this.accurateTimeOffset = void 0;\n this.trackSwitch = void 0;\n this.timeOffset = void 0;\n this.initSegmentChange = void 0;\n this.discontinuity = discontinuity;\n this.contiguous = contiguous;\n this.accurateTimeOffset = accurateTimeOffset;\n this.trackSwitch = trackSwitch;\n this.timeOffset = timeOffset;\n this.initSegmentChange = initSegmentChange;\n }\n}\n\nvar eventemitter3 = {exports: {}};\n\n(function (module) {\n\n\tvar has = Object.prototype.hasOwnProperty\n\t , prefix = '~';\n\n\t/**\n\t * Constructor to create a storage for our `EE` objects.\n\t * An `Events` instance is a plain object whose properties are event names.\n\t *\n\t * @constructor\n\t * @private\n\t */\n\tfunction Events() {}\n\n\t//\n\t// We try to not inherit from `Object.prototype`. In some engines creating an\n\t// instance in this way is faster than calling `Object.create(null)` directly.\n\t// If `Object.create(null)` is not supported we prefix the event names with a\n\t// character to make sure that the built-in object properties are not\n\t// overridden or used as an attack vector.\n\t//\n\tif (Object.create) {\n\t Events.prototype = Object.create(null);\n\n\t //\n\t // This hack is needed because the `__proto__` property is still inherited in\n\t // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n\t //\n\t if (!new Events().__proto__) prefix = false;\n\t}\n\n\t/**\n\t * Representation of a single event listener.\n\t *\n\t * @param {Function} fn The listener function.\n\t * @param {*} context The context to invoke the listener with.\n\t * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n\t * @constructor\n\t * @private\n\t */\n\tfunction EE(fn, context, once) {\n\t this.fn = fn;\n\t this.context = context;\n\t this.once = once || false;\n\t}\n\n\t/**\n\t * Add a listener for a given event.\n\t *\n\t * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n\t * @param {(String|Symbol)} event The event name.\n\t * @param {Function} fn The listener function.\n\t * @param {*} context The context to invoke the listener with.\n\t * @param {Boolean} once Specify if the listener is a one-time listener.\n\t * @returns {EventEmitter}\n\t * @private\n\t */\n\tfunction addListener(emitter, event, fn, context, once) {\n\t if (typeof fn !== 'function') {\n\t throw new TypeError('The listener must be a function');\n\t }\n\n\t var listener = new EE(fn, context || emitter, once)\n\t , evt = prefix ? prefix + event : event;\n\n\t if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n\t else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n\t else emitter._events[evt] = [emitter._events[evt], listener];\n\n\t return emitter;\n\t}\n\n\t/**\n\t * Clear event by name.\n\t *\n\t * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n\t * @param {(String|Symbol)} evt The Event name.\n\t * @private\n\t */\n\tfunction clearEvent(emitter, evt) {\n\t if (--emitter._eventsCount === 0) emitter._events = new Events();\n\t else delete emitter._events[evt];\n\t}\n\n\t/**\n\t * Minimal `EventEmitter` interface that is molded against the Node.js\n\t * `EventEmitter` interface.\n\t *\n\t * @constructor\n\t * @public\n\t */\n\tfunction EventEmitter() {\n\t this._events = new Events();\n\t this._eventsCount = 0;\n\t}\n\n\t/**\n\t * Return an array listing the events for which the emitter has registered\n\t * listeners.\n\t *\n\t * @returns {Array}\n\t * @public\n\t */\n\tEventEmitter.prototype.eventNames = function eventNames() {\n\t var names = []\n\t , events\n\t , name;\n\n\t if (this._eventsCount === 0) return names;\n\n\t for (name in (events = this._events)) {\n\t if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n\t }\n\n\t if (Object.getOwnPropertySymbols) {\n\t return names.concat(Object.getOwnPropertySymbols(events));\n\t }\n\n\t return names;\n\t};\n\n\t/**\n\t * Return the listeners registered for a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @returns {Array} The registered listeners.\n\t * @public\n\t */\n\tEventEmitter.prototype.listeners = function listeners(event) {\n\t var evt = prefix ? prefix + event : event\n\t , handlers = this._events[evt];\n\n\t if (!handlers) return [];\n\t if (handlers.fn) return [handlers.fn];\n\n\t for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n\t ee[i] = handlers[i].fn;\n\t }\n\n\t return ee;\n\t};\n\n\t/**\n\t * Return the number of listeners listening to a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @returns {Number} The number of listeners.\n\t * @public\n\t */\n\tEventEmitter.prototype.listenerCount = function listenerCount(event) {\n\t var evt = prefix ? prefix + event : event\n\t , listeners = this._events[evt];\n\n\t if (!listeners) return 0;\n\t if (listeners.fn) return 1;\n\t return listeners.length;\n\t};\n\n\t/**\n\t * Calls each of the listeners registered for a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @returns {Boolean} `true` if the event had listeners, else `false`.\n\t * @public\n\t */\n\tEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n\t var evt = prefix ? prefix + event : event;\n\n\t if (!this._events[evt]) return false;\n\n\t var listeners = this._events[evt]\n\t , len = arguments.length\n\t , args\n\t , i;\n\n\t if (listeners.fn) {\n\t if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n\t switch (len) {\n\t case 1: return listeners.fn.call(listeners.context), true;\n\t case 2: return listeners.fn.call(listeners.context, a1), true;\n\t case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n\t case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n\t case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n\t case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n\t }\n\n\t for (i = 1, args = new Array(len -1); i < len; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\n\t listeners.fn.apply(listeners.context, args);\n\t } else {\n\t var length = listeners.length\n\t , j;\n\n\t for (i = 0; i < length; i++) {\n\t if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n\t switch (len) {\n\t case 1: listeners[i].fn.call(listeners[i].context); break;\n\t case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n\t case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n\t case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n\t default:\n\t if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n\t args[j - 1] = arguments[j];\n\t }\n\n\t listeners[i].fn.apply(listeners[i].context, args);\n\t }\n\t }\n\t }\n\n\t return true;\n\t};\n\n\t/**\n\t * Add a listener for a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @param {Function} fn The listener function.\n\t * @param {*} [context=this] The context to invoke the listener with.\n\t * @returns {EventEmitter} `this`.\n\t * @public\n\t */\n\tEventEmitter.prototype.on = function on(event, fn, context) {\n\t return addListener(this, event, fn, context, false);\n\t};\n\n\t/**\n\t * Add a one-time listener for a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @param {Function} fn The listener function.\n\t * @param {*} [context=this] The context to invoke the listener with.\n\t * @returns {EventEmitter} `this`.\n\t * @public\n\t */\n\tEventEmitter.prototype.once = function once(event, fn, context) {\n\t return addListener(this, event, fn, context, true);\n\t};\n\n\t/**\n\t * Remove the listeners of a given event.\n\t *\n\t * @param {(String|Symbol)} event The event name.\n\t * @param {Function} fn Only remove the listeners that match this function.\n\t * @param {*} context Only remove the listeners that have this context.\n\t * @param {Boolean} once Only remove one-time listeners.\n\t * @returns {EventEmitter} `this`.\n\t * @public\n\t */\n\tEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n\t var evt = prefix ? prefix + event : event;\n\n\t if (!this._events[evt]) return this;\n\t if (!fn) {\n\t clearEvent(this, evt);\n\t return this;\n\t }\n\n\t var listeners = this._events[evt];\n\n\t if (listeners.fn) {\n\t if (\n\t listeners.fn === fn &&\n\t (!once || listeners.once) &&\n\t (!context || listeners.context === context)\n\t ) {\n\t clearEvent(this, evt);\n\t }\n\t } else {\n\t for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n\t if (\n\t listeners[i].fn !== fn ||\n\t (once && !listeners[i].once) ||\n\t (context && listeners[i].context !== context)\n\t ) {\n\t events.push(listeners[i]);\n\t }\n\t }\n\n\t //\n\t // Reset the array, or remove it completely if we have no more listeners.\n\t //\n\t if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n\t else clearEvent(this, evt);\n\t }\n\n\t return this;\n\t};\n\n\t/**\n\t * Remove all listeners, or those of the specified event.\n\t *\n\t * @param {(String|Symbol)} [event] The event name.\n\t * @returns {EventEmitter} `this`.\n\t * @public\n\t */\n\tEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n\t var evt;\n\n\t if (event) {\n\t evt = prefix ? prefix + event : event;\n\t if (this._events[evt]) clearEvent(this, evt);\n\t } else {\n\t this._events = new Events();\n\t this._eventsCount = 0;\n\t }\n\n\t return this;\n\t};\n\n\t//\n\t// Alias methods names because people roll like that.\n\t//\n\tEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\tEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n\t//\n\t// Expose the prefix.\n\t//\n\tEventEmitter.prefixed = prefix;\n\n\t//\n\t// Allow `EventEmitter` to be imported as module namespace.\n\t//\n\tEventEmitter.EventEmitter = EventEmitter;\n\n\t//\n\t// Expose the module.\n\t//\n\t{\n\t module.exports = EventEmitter;\n\t} \n} (eventemitter3));\n\nvar eventemitter3Exports = eventemitter3.exports;\nvar EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);\n\nclass TransmuxerInterface {\n constructor(hls, id, onTransmuxComplete, onFlush) {\n this.error = null;\n this.hls = void 0;\n this.id = void 0;\n this.observer = void 0;\n this.frag = null;\n this.part = null;\n this.useWorker = void 0;\n this.workerContext = null;\n this.onwmsg = void 0;\n this.transmuxer = null;\n this.onTransmuxComplete = void 0;\n this.onFlush = void 0;\n const config = hls.config;\n this.hls = hls;\n this.id = id;\n this.useWorker = !!config.enableWorker;\n this.onTransmuxComplete = onTransmuxComplete;\n this.onFlush = onFlush;\n const forwardMessage = (ev, data) => {\n data = data || {};\n data.frag = this.frag;\n data.id = this.id;\n if (ev === Events.ERROR) {\n this.error = data.error;\n }\n this.hls.trigger(ev, data);\n };\n\n // forward events to main thread\n this.observer = new EventEmitter();\n this.observer.on(Events.FRAG_DECRYPTED, forwardMessage);\n this.observer.on(Events.ERROR, forwardMessage);\n const MediaSource = getMediaSource(config.preferManagedMediaSource) || {\n isTypeSupported: () => false\n };\n const m2tsTypeSupported = {\n mpeg: MediaSource.isTypeSupported('audio/mpeg'),\n mp3: MediaSource.isTypeSupported('audio/mp4; codecs=\"mp3\"'),\n ac3: MediaSource.isTypeSupported('audio/mp4; codecs=\"ac-3\"') \n };\n if (this.useWorker && typeof Worker !== 'undefined') {\n const canCreateWorker = config.workerPath || hasUMDWorker();\n if (canCreateWorker) {\n try {\n if (config.workerPath) {\n logger.log(`loading Web Worker ${config.workerPath} for \"${id}\"`);\n this.workerContext = loadWorker(config.workerPath);\n } else {\n logger.log(`injecting Web Worker for \"${id}\"`);\n this.workerContext = injectWorker();\n }\n this.onwmsg = event => this.onWorkerMessage(event);\n const {\n worker\n } = this.workerContext;\n worker.addEventListener('message', this.onwmsg);\n worker.onerror = event => {\n const error = new Error(`${event.message} (${event.filename}:${event.lineno})`);\n config.enableWorker = false;\n logger.warn(`Error in \"${id}\" Web Worker, fallback to inline`);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n fatal: false,\n event: 'demuxerWorker',\n error\n });\n };\n worker.postMessage({\n cmd: 'init',\n typeSupported: m2tsTypeSupported,\n vendor: '',\n id: id,\n config: JSON.stringify(config)\n });\n } catch (err) {\n logger.warn(`Error setting up \"${id}\" Web Worker, fallback to inline`, err);\n this.resetWorker();\n this.error = null;\n this.transmuxer = new Transmuxer(this.observer, m2tsTypeSupported, config, '', id);\n }\n return;\n }\n }\n this.transmuxer = new Transmuxer(this.observer, m2tsTypeSupported, config, '', id);\n }\n resetWorker() {\n if (this.workerContext) {\n const {\n worker,\n objectURL\n } = this.workerContext;\n if (objectURL) {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(objectURL);\n }\n worker.removeEventListener('message', this.onwmsg);\n worker.onerror = null;\n worker.terminate();\n this.workerContext = null;\n }\n }\n destroy() {\n if (this.workerContext) {\n this.resetWorker();\n this.onwmsg = undefined;\n } else {\n const transmuxer = this.transmuxer;\n if (transmuxer) {\n transmuxer.destroy();\n this.transmuxer = null;\n }\n }\n const observer = this.observer;\n if (observer) {\n observer.removeAllListeners();\n }\n this.frag = null;\n // @ts-ignore\n this.observer = null;\n // @ts-ignore\n this.hls = null;\n }\n push(data, initSegmentData, audioCodec, videoCodec, frag, part, duration, accurateTimeOffset, chunkMeta, defaultInitPTS) {\n var _frag$initSegment, _lastFrag$initSegment;\n chunkMeta.transmuxing.start = self.performance.now();\n const {\n transmuxer\n } = this;\n const timeOffset = part ? part.start : frag.start;\n // TODO: push \"clear-lead\" decrypt data for unencrypted fragments in streams with encrypted ones\n const decryptdata = frag.decryptdata;\n const lastFrag = this.frag;\n const discontinuity = !(lastFrag && frag.cc === lastFrag.cc);\n const trackSwitch = !(lastFrag && chunkMeta.level === lastFrag.level);\n const snDiff = lastFrag ? chunkMeta.sn - lastFrag.sn : -1;\n const partDiff = this.part ? chunkMeta.part - this.part.index : -1;\n const progressive = snDiff === 0 && chunkMeta.id > 1 && chunkMeta.id === (lastFrag == null ? void 0 : lastFrag.stats.chunkCount);\n const contiguous = !trackSwitch && (snDiff === 1 || snDiff === 0 && (partDiff === 1 || progressive && partDiff <= 0));\n const now = self.performance.now();\n if (trackSwitch || snDiff || frag.stats.parsing.start === 0) {\n frag.stats.parsing.start = now;\n }\n if (part && (partDiff || !contiguous)) {\n part.stats.parsing.start = now;\n }\n const initSegmentChange = !(lastFrag && ((_frag$initSegment = frag.initSegment) == null ? void 0 : _frag$initSegment.url) === ((_lastFrag$initSegment = lastFrag.initSegment) == null ? void 0 : _lastFrag$initSegment.url));\n const state = new TransmuxState(discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange);\n if (!contiguous || discontinuity || initSegmentChange) {\n logger.log(`[transmuxer-interface, ${frag.type}]: Starting new transmux session for sn: ${chunkMeta.sn} p: ${chunkMeta.part} level: ${chunkMeta.level} id: ${chunkMeta.id}\n discontinuity: ${discontinuity}\n trackSwitch: ${trackSwitch}\n contiguous: ${contiguous}\n accurateTimeOffset: ${accurateTimeOffset}\n timeOffset: ${timeOffset}\n initSegmentChange: ${initSegmentChange}`);\n const config = new TransmuxConfig(audioCodec, videoCodec, initSegmentData, duration, defaultInitPTS);\n this.configureTransmuxer(config);\n }\n this.frag = frag;\n this.part = part;\n\n // Frags with sn of 'initSegment' are not transmuxed\n if (this.workerContext) {\n // post fragment payload as transferable objects for ArrayBuffer (no copy)\n this.workerContext.worker.postMessage({\n cmd: 'demux',\n data,\n decryptdata,\n chunkMeta,\n state\n }, data instanceof ArrayBuffer ? [data] : []);\n } else if (transmuxer) {\n const transmuxResult = transmuxer.push(data, decryptdata, chunkMeta, state);\n if (isPromise(transmuxResult)) {\n transmuxer.async = true;\n transmuxResult.then(data => {\n this.handleTransmuxComplete(data);\n }).catch(error => {\n this.transmuxerError(error, chunkMeta, 'transmuxer-interface push error');\n });\n } else {\n transmuxer.async = false;\n this.handleTransmuxComplete(transmuxResult);\n }\n }\n }\n flush(chunkMeta) {\n chunkMeta.transmuxing.start = self.performance.now();\n const {\n transmuxer\n } = this;\n if (this.workerContext) {\n this.workerContext.worker.postMessage({\n cmd: 'flush',\n chunkMeta\n });\n } else if (transmuxer) {\n let transmuxResult = transmuxer.flush(chunkMeta);\n const asyncFlush = isPromise(transmuxResult);\n if (asyncFlush || transmuxer.async) {\n if (!isPromise(transmuxResult)) {\n transmuxResult = Promise.resolve(transmuxResult);\n }\n transmuxResult.then(data => {\n this.handleFlushResult(data, chunkMeta);\n }).catch(error => {\n this.transmuxerError(error, chunkMeta, 'transmuxer-interface flush error');\n });\n } else {\n this.handleFlushResult(transmuxResult, chunkMeta);\n }\n }\n }\n transmuxerError(error, chunkMeta, reason) {\n if (!this.hls) {\n return;\n }\n this.error = error;\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n chunkMeta,\n frag: this.frag || undefined,\n fatal: false,\n error,\n err: error,\n reason\n });\n }\n handleFlushResult(results, chunkMeta) {\n results.forEach(result => {\n this.handleTransmuxComplete(result);\n });\n this.onFlush(chunkMeta);\n }\n onWorkerMessage(event) {\n const data = event.data;\n if (!(data != null && data.event)) {\n logger.warn(`worker message received with no ${data ? 'event name' : 'data'}`);\n return;\n }\n const hls = this.hls;\n if (!this.hls) {\n return;\n }\n switch (data.event) {\n case 'init':\n {\n var _this$workerContext;\n const objectURL = (_this$workerContext = this.workerContext) == null ? void 0 : _this$workerContext.objectURL;\n if (objectURL) {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(objectURL);\n }\n break;\n }\n case 'transmuxComplete':\n {\n this.handleTransmuxComplete(data.data);\n break;\n }\n case 'flush':\n {\n this.onFlush(data.data);\n break;\n }\n\n // pass logs from the worker thread to the main logger\n case 'workerLog':\n if (logger[data.data.logType]) {\n logger[data.data.logType](data.data.message);\n }\n break;\n default:\n {\n data.data = data.data || {};\n data.data.frag = this.frag;\n data.data.id = this.id;\n hls.trigger(data.event, data.data);\n break;\n }\n }\n }\n configureTransmuxer(config) {\n const {\n transmuxer\n } = this;\n if (this.workerContext) {\n this.workerContext.worker.postMessage({\n cmd: 'configure',\n config\n });\n } else if (transmuxer) {\n transmuxer.configure(config);\n }\n }\n handleTransmuxComplete(result) {\n result.chunkMeta.transmuxing.end = self.performance.now();\n this.onTransmuxComplete(result);\n }\n}\n\nconst TICK_INTERVAL$2 = 100; // how often to tick in ms\n\nclass AudioStreamController extends BaseStreamController {\n constructor(hls, fragmentTracker, keyLoader) {\n super(hls, fragmentTracker, keyLoader, '[audio-stream-controller]', PlaylistLevelType.AUDIO);\n this.videoBuffer = null;\n this.videoTrackCC = -1;\n this.waitingVideoCC = -1;\n this.bufferedTrack = null;\n this.switchingTrack = null;\n this.trackId = -1;\n this.waitingData = null;\n this.mainDetails = null;\n this.flushing = false;\n this.bufferFlushed = false;\n this.cachedTrackLoadedData = null;\n this._registerListeners();\n }\n onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n this.mainDetails = null;\n this.bufferedTrack = null;\n this.switchingTrack = null;\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.on(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.off(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n // INIT_PTS_FOUND is triggered when the video track parsed in the stream-controller has a new PTS value\n onInitPtsFound(event, {\n frag,\n id,\n initPTS,\n timescale\n }) {\n // Always update the new INIT PTS\n // Can change due level switch\n if (id === 'main') {\n const cc = frag.cc;\n this.initPTS[frag.cc] = {\n baseTime: initPTS,\n timescale\n };\n this.log(`InitPTS for cc: ${cc} found from main: ${initPTS}`);\n this.videoTrackCC = cc;\n // If we are waiting, tick immediately to unblock audio fragment transmuxing\n if (this.state === State.WAITING_INIT_PTS) {\n this.tick();\n }\n }\n }\n startLoad(startPosition) {\n if (!this.levels) {\n this.startPosition = startPosition;\n this.state = State.STOPPED;\n return;\n }\n const lastCurrentTime = this.lastCurrentTime;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL$2);\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(`Override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(3)}`);\n startPosition = lastCurrentTime;\n this.state = State.IDLE;\n } else {\n this.loadedmetadata = false;\n this.state = State.WAITING_TRACK;\n }\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n }\n doTick() {\n switch (this.state) {\n case State.IDLE:\n this.doTickIdle();\n break;\n case State.WAITING_TRACK:\n {\n var _levels$trackId;\n const {\n levels,\n trackId\n } = this;\n const details = levels == null ? void 0 : (_levels$trackId = levels[trackId]) == null ? void 0 : _levels$trackId.details;\n if (details) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n this.state = State.WAITING_INIT_PTS;\n }\n break;\n }\n case State.FRAG_LOADING_WAITING_RETRY:\n {\n var _this$media;\n const now = performance.now();\n const retryDate = this.retryDate;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || now >= retryDate || (_this$media = this.media) != null && _this$media.seeking) {\n const {\n levels,\n trackId\n } = this;\n this.log('RetryDate reached, switch back to IDLE state');\n this.resetStartWhenNotLoaded((levels == null ? void 0 : levels[trackId]) || null);\n this.state = State.IDLE;\n }\n break;\n }\n case State.WAITING_INIT_PTS:\n {\n // Ensure we don't get stuck in the WAITING_INIT_PTS state if the waiting frag CC doesn't match any initPTS\n const waitingData = this.waitingData;\n if (waitingData) {\n const {\n frag,\n part,\n cache,\n complete\n } = waitingData;\n if (this.initPTS[frag.cc] !== undefined) {\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = State.FRAG_LOADING;\n const payload = cache.flush();\n const data = {\n frag,\n part,\n payload,\n networkDetails: null\n };\n this._handleFragmentLoadProgress(data);\n if (complete) {\n super._handleFragmentLoadComplete(data);\n }\n } else if (this.videoTrackCC !== this.waitingVideoCC) {\n // Drop waiting fragment if videoTrackCC has changed since waitingFragment was set and initPTS was not found\n this.log(`Waiting fragment cc (${frag.cc}) cancelled because video is at cc ${this.videoTrackCC}`);\n this.clearWaitingFragment();\n } else {\n // Drop waiting fragment if an earlier fragment is needed\n const pos = this.getLoadPosition();\n const bufferInfo = BufferHelper.bufferInfo(this.mediaBuffer, pos, this.config.maxBufferHole);\n const waitingFragmentAtPosition = fragmentWithinToleranceTest(bufferInfo.end, this.config.maxFragLookUpTolerance, frag);\n if (waitingFragmentAtPosition < 0) {\n this.log(`Waiting fragment cc (${frag.cc}) @ ${frag.start} cancelled because another fragment at ${bufferInfo.end} is needed`);\n this.clearWaitingFragment();\n }\n }\n } else {\n this.state = State.IDLE;\n }\n }\n }\n this.onTickEnd();\n }\n clearWaitingFragment() {\n const waitingData = this.waitingData;\n if (waitingData) {\n this.fragmentTracker.removeFragment(waitingData.frag);\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = State.IDLE;\n }\n }\n resetLoadingState() {\n this.clearWaitingFragment();\n super.resetLoadingState();\n }\n onTickEnd() {\n const {\n media\n } = this;\n if (!(media != null && media.readyState)) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n }\n this.lastCurrentTime = media.currentTime;\n }\n doTickIdle() {\n const {\n hls,\n levels,\n media,\n trackId\n } = this;\n const config = hls.config;\n\n // 1. if buffering is suspended\n // 2. if video not attached AND\n // start fragment already requested OR start frag prefetch not enabled\n // 3. if tracks or track not loaded and selected\n // then exit loop\n // => if media not attached but start frag prefetch is enabled and start frag not requested yet, we will not exit loop\n if (!this.buffering || !media && (this.startFragRequested || !config.startFragPrefetch) || !(levels != null && levels[trackId])) {\n return;\n }\n const levelInfo = levels[trackId];\n const trackDetails = levelInfo.details;\n if (!trackDetails || trackDetails.live && this.levelLastLoaded !== levelInfo || this.waitForCdnTuneIn(trackDetails)) {\n this.state = State.WAITING_TRACK;\n return;\n }\n const bufferable = this.mediaBuffer ? this.mediaBuffer : this.media;\n if (this.bufferFlushed && bufferable) {\n this.bufferFlushed = false;\n this.afterBufferFlushed(bufferable, ElementaryStreamTypes.AUDIO, PlaylistLevelType.AUDIO);\n }\n const bufferInfo = this.getFwdBufferInfo(bufferable, PlaylistLevelType.AUDIO);\n if (bufferInfo === null) {\n return;\n }\n if (!this.switchingTrack && this._streamEnded(bufferInfo, trackDetails)) {\n hls.trigger(Events.BUFFER_EOS, {\n type: 'audio'\n });\n this.state = State.ENDED;\n return;\n }\n const mainBufferInfo = this.getFwdBufferInfo(this.videoBuffer ? this.videoBuffer : this.media, PlaylistLevelType.MAIN);\n const bufferLen = bufferInfo.len;\n const maxBufLen = this.getMaxBufferLength(mainBufferInfo == null ? void 0 : mainBufferInfo.len);\n const fragments = trackDetails.fragments;\n const start = fragments[0].start;\n const loadPosition = this.getLoadPosition();\n const targetBufferTime = this.flushing ? loadPosition : bufferInfo.end;\n if (this.switchingTrack && media) {\n const pos = loadPosition;\n // if currentTime (pos) is less than alt audio playlist start time, it means that alt audio is ahead of currentTime\n if (trackDetails.PTSKnown && pos < start) {\n // if everything is buffered from pos to start or if audio buffer upfront, let's seek to start\n if (bufferInfo.end > start || bufferInfo.nextStart) {\n this.log('Alt audio track ahead of main track, seek to start of alt audio track');\n media.currentTime = start + 0.05;\n }\n }\n }\n\n // if buffer length is less than maxBufLen, or near the end, find a fragment to load\n if (bufferLen >= maxBufLen && !this.switchingTrack && targetBufferTime < fragments[fragments.length - 1].start) {\n return;\n }\n let frag = this.getNextFragment(targetBufferTime, trackDetails);\n let atGap = false;\n // Avoid loop loading by using nextLoadPosition set for backtracking and skipping consecutive GAP tags\n if (frag && this.isLoopLoading(frag, targetBufferTime)) {\n atGap = !!frag.gap;\n frag = this.getNextFragmentLoopLoading(frag, trackDetails, bufferInfo, PlaylistLevelType.MAIN, maxBufLen);\n }\n if (!frag) {\n this.bufferFlushed = true;\n return;\n }\n\n // Buffer audio up to one target duration ahead of main buffer\n const atBufferSyncLimit = mainBufferInfo && frag.start > mainBufferInfo.end + trackDetails.targetduration;\n if (atBufferSyncLimit ||\n // Or wait for main buffer after buffing some audio\n !(mainBufferInfo != null && mainBufferInfo.len) && bufferInfo.len) {\n // Check fragment-tracker for main fragments since GAP segments do not show up in bufferInfo\n const mainFrag = this.getAppendedFrag(frag.start, PlaylistLevelType.MAIN);\n if (mainFrag === null) {\n return;\n }\n // Bridge gaps in main buffer\n atGap || (atGap = !!mainFrag.gap || !!atBufferSyncLimit && mainBufferInfo.len === 0);\n if (atBufferSyncLimit && !atGap || atGap && bufferInfo.nextStart && bufferInfo.nextStart < mainFrag.end) {\n return;\n }\n }\n this.loadFragment(frag, levelInfo, targetBufferTime);\n }\n getMaxBufferLength(mainBufferLength) {\n const maxConfigBuffer = super.getMaxBufferLength();\n if (!mainBufferLength) {\n return maxConfigBuffer;\n }\n return Math.min(Math.max(maxConfigBuffer, mainBufferLength), this.config.maxMaxBufferLength);\n }\n onMediaDetaching() {\n this.videoBuffer = null;\n this.bufferFlushed = this.flushing = false;\n super.onMediaDetaching();\n }\n onAudioTracksUpdated(event, {\n audioTracks\n }) {\n // Reset tranxmuxer is essential for large context switches (Content Steering)\n this.resetTransmuxer();\n this.levels = audioTracks.map(mediaPlaylist => new Level(mediaPlaylist));\n }\n onAudioTrackSwitching(event, data) {\n // if any URL found on new audio track, it is an alternate audio track\n const altAudio = !!data.url;\n this.trackId = data.id;\n const {\n fragCurrent\n } = this;\n if (fragCurrent) {\n fragCurrent.abortRequests();\n this.removeUnbufferedFrags(fragCurrent.start);\n }\n this.resetLoadingState();\n // destroy useless transmuxer when switching audio to main\n if (!altAudio) {\n this.resetTransmuxer();\n } else {\n // switching to audio track, start timer if not already started\n this.setInterval(TICK_INTERVAL$2);\n }\n\n // should we switch tracks ?\n if (altAudio) {\n this.switchingTrack = data;\n // main audio track are handled by stream-controller, just do something if switching to alt audio track\n this.state = State.IDLE;\n this.flushAudioIfNeeded(data);\n } else {\n this.switchingTrack = null;\n this.bufferedTrack = data;\n this.state = State.STOPPED;\n }\n this.tick();\n }\n onManifestLoading() {\n this.fragmentTracker.removeAllFragments();\n this.startPosition = this.lastCurrentTime = 0;\n this.bufferFlushed = this.flushing = false;\n this.levels = this.mainDetails = this.waitingData = this.bufferedTrack = this.cachedTrackLoadedData = this.switchingTrack = null;\n this.startFragRequested = false;\n this.trackId = this.videoTrackCC = this.waitingVideoCC = -1;\n }\n onLevelLoaded(event, data) {\n this.mainDetails = data.details;\n if (this.cachedTrackLoadedData !== null) {\n this.hls.trigger(Events.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData);\n this.cachedTrackLoadedData = null;\n }\n }\n onAudioTrackLoaded(event, data) {\n var _track$details;\n if (this.mainDetails == null) {\n this.cachedTrackLoadedData = data;\n return;\n }\n const {\n levels\n } = this;\n const {\n details: newDetails,\n id: trackId\n } = data;\n if (!levels) {\n this.warn(`Audio tracks were reset while loading level ${trackId}`);\n return;\n }\n this.log(`Audio track ${trackId} loaded [${newDetails.startSN},${newDetails.endSN}]${newDetails.lastPartSn ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]` : ''},duration:${newDetails.totalduration}`);\n const track = levels[trackId];\n let sliding = 0;\n if (newDetails.live || (_track$details = track.details) != null && _track$details.live) {\n this.checkLiveUpdate(newDetails);\n const mainDetails = this.mainDetails;\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n if (!track.details && newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {\n // Make sure our audio rendition is aligned with the \"main\" rendition, using\n // pdt as our reference times.\n alignMediaPlaylistByPDT(newDetails, mainDetails);\n sliding = newDetails.fragments[0].start;\n } else {\n var _this$levelLastLoaded;\n sliding = this.alignPlaylists(newDetails, track.details, (_this$levelLastLoaded = this.levelLastLoaded) == null ? void 0 : _this$levelLastLoaded.details);\n }\n }\n track.details = newDetails;\n this.levelLastLoaded = track;\n\n // compute start position if we are aligned with the main playlist\n if (!this.startFragRequested && (this.mainDetails || !newDetails.live)) {\n this.setStartPosition(this.mainDetails || newDetails, sliding);\n }\n // only switch back to IDLE state if we were waiting for track to start downloading a new fragment\n if (this.state === State.WAITING_TRACK && !this.waitForCdnTuneIn(newDetails)) {\n this.state = State.IDLE;\n }\n\n // trigger handler right now\n this.tick();\n }\n _handleFragmentLoadProgress(data) {\n var _frag$initSegment;\n const {\n frag,\n part,\n payload\n } = data;\n const {\n config,\n trackId,\n levels\n } = this;\n if (!levels) {\n this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${frag.sn} of level ${frag.level} will not be buffered`);\n return;\n }\n const track = levels[trackId];\n if (!track) {\n this.warn('Audio track is undefined on fragment load progress');\n return;\n }\n const details = track.details;\n if (!details) {\n this.warn('Audio track details undefined on fragment load progress');\n this.removeUnbufferedFrags(frag.start);\n return;\n }\n const audioCodec = config.defaultAudioCodec || track.audioCodec || 'mp4a.40.2';\n let transmuxer = this.transmuxer;\n if (!transmuxer) {\n transmuxer = this.transmuxer = new TransmuxerInterface(this.hls, PlaylistLevelType.AUDIO, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this));\n }\n\n // Check if we have video initPTS\n // If not we need to wait for it\n const initPTS = this.initPTS[frag.cc];\n const initSegmentData = (_frag$initSegment = frag.initSegment) == null ? void 0 : _frag$initSegment.data;\n if (initPTS !== undefined) {\n // this.log(`Transmuxing ${sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n const accurateTimeOffset = false; // details.PTSKnown || !details.live;\n const partIndex = part ? part.index : -1;\n const partial = partIndex !== -1;\n const chunkMeta = new ChunkMetadata(frag.level, frag.sn, frag.stats.chunkCount, payload.byteLength, partIndex, partial);\n transmuxer.push(payload, initSegmentData, audioCodec, '', frag, part, details.totalduration, accurateTimeOffset, chunkMeta, initPTS);\n } else {\n this.log(`Unknown video PTS for cc ${frag.cc}, waiting for video PTS before demuxing audio frag ${frag.sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n const {\n cache\n } = this.waitingData = this.waitingData || {\n frag,\n part,\n cache: new ChunkCache(),\n complete: false\n };\n cache.push(new Uint8Array(payload));\n this.waitingVideoCC = this.videoTrackCC;\n this.state = State.WAITING_INIT_PTS;\n }\n }\n _handleFragmentLoadComplete(fragLoadedData) {\n if (this.waitingData) {\n this.waitingData.complete = true;\n return;\n }\n super._handleFragmentLoadComplete(fragLoadedData);\n }\n onBufferReset( /* event: Events.BUFFER_RESET */\n ) {\n // reset reference to sourcebuffers\n this.mediaBuffer = this.videoBuffer = null;\n this.loadedmetadata = false;\n }\n onBufferCreated(event, data) {\n const audioTrack = data.tracks.audio;\n if (audioTrack) {\n this.mediaBuffer = audioTrack.buffer || null;\n }\n if (data.tracks.video) {\n this.videoBuffer = data.tracks.video.buffer || null;\n }\n }\n onFragBuffered(event, data) {\n const {\n frag,\n part\n } = data;\n if (frag.type !== PlaylistLevelType.AUDIO) {\n if (!this.loadedmetadata && frag.type === PlaylistLevelType.MAIN) {\n const bufferable = this.videoBuffer || this.media;\n if (bufferable) {\n const bufferedTimeRanges = BufferHelper.getBuffered(bufferable);\n if (bufferedTimeRanges.length) {\n this.loadedmetadata = true;\n }\n }\n }\n return;\n }\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE or concluding the audio switch; otherwise, the switched-to track will not buffer\n this.warn(`Fragment ${frag.sn}${part ? ' p: ' + part.index : ''} of level ${frag.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack ? this.switchingTrack.name : 'false'}`);\n return;\n }\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n const track = this.switchingTrack;\n if (track) {\n this.bufferedTrack = track;\n this.switchingTrack = null;\n this.hls.trigger(Events.AUDIO_TRACK_SWITCHED, _objectSpread2({}, track));\n }\n }\n this.fragBufferedComplete(frag, part);\n }\n onError(event, data) {\n var _data$context;\n if (data.fatal) {\n this.state = State.ERROR;\n return;\n }\n switch (data.details) {\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_PARSING_ERROR:\n case ErrorDetails.FRAG_DECRYPT_ERROR:\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n this.onFragmentOrKeyLoadError(PlaylistLevelType.AUDIO, data);\n break;\n case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:\n case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n // in case of non fatal error while loading track, if not retrying to load track, switch back to IDLE\n if (!data.levelRetry && this.state === State.WAITING_TRACK && ((_data$context = data.context) == null ? void 0 : _data$context.type) === PlaylistContextType.AUDIO_TRACK) {\n this.state = State.IDLE;\n }\n break;\n case ErrorDetails.BUFFER_APPEND_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n if (!data.parent || data.parent !== 'audio') {\n return;\n }\n if (data.details === ErrorDetails.BUFFER_APPEND_ERROR) {\n this.resetLoadingState();\n return;\n }\n if (this.reduceLengthAndFlushBuffer(data)) {\n this.bufferedTrack = null;\n super.flushMainBuffer(0, Number.POSITIVE_INFINITY, 'audio');\n }\n break;\n case ErrorDetails.INTERNAL_EXCEPTION:\n this.recoverWorkerError(data);\n break;\n }\n }\n onBufferFlushing(event, {\n type\n }) {\n if (type !== ElementaryStreamTypes.VIDEO) {\n this.flushing = true;\n }\n }\n onBufferFlushed(event, {\n type\n }) {\n if (type !== ElementaryStreamTypes.VIDEO) {\n this.flushing = false;\n this.bufferFlushed = true;\n if (this.state === State.ENDED) {\n this.state = State.IDLE;\n }\n const mediaBuffer = this.mediaBuffer || this.media;\n if (mediaBuffer) {\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.AUDIO);\n this.tick();\n }\n }\n }\n _handleTransmuxComplete(transmuxResult) {\n var _id3$samples;\n const id = 'audio';\n const {\n hls\n } = this;\n const {\n remuxResult,\n chunkMeta\n } = transmuxResult;\n const context = this.getCurrentContext(chunkMeta);\n if (!context) {\n this.resetWhenMissingContext(chunkMeta);\n return;\n }\n const {\n frag,\n part,\n level\n } = context;\n const {\n details\n } = level;\n const {\n audio,\n text,\n id3,\n initSegment\n } = remuxResult;\n\n // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n if (this.fragContextChanged(frag) || !details) {\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n this.state = State.PARSING;\n if (this.switchingTrack && audio) {\n this.completeAudioSwitch(this.switchingTrack);\n }\n if (initSegment != null && initSegment.tracks) {\n const mapFragment = frag.initSegment || frag;\n this._bufferInitSegment(level, initSegment.tracks, mapFragment, chunkMeta);\n hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {\n frag: mapFragment,\n id,\n tracks: initSegment.tracks\n });\n // Only flush audio from old audio tracks when PTS is known on new audio track\n }\n if (audio) {\n const {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n } = audio;\n if (part) {\n part.elementaryStreams[ElementaryStreamTypes.AUDIO] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n };\n }\n frag.setElementaryStreamInfo(ElementaryStreamTypes.AUDIO, startPTS, endPTS, startDTS, endDTS);\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n if (id3 != null && (_id3$samples = id3.samples) != null && _id3$samples.length) {\n const emittedID3 = _extends({\n id,\n frag,\n details\n }, id3);\n hls.trigger(Events.FRAG_PARSING_METADATA, emittedID3);\n }\n if (text) {\n const emittedText = _extends({\n id,\n frag,\n details\n }, text);\n hls.trigger(Events.FRAG_PARSING_USERDATA, emittedText);\n }\n }\n _bufferInitSegment(currentLevel, tracks, frag, chunkMeta) {\n if (this.state !== State.PARSING) {\n return;\n }\n // delete any video track found on audio transmuxer\n if (tracks.video) {\n delete tracks.video;\n }\n\n // include levelCodec in audio and video tracks\n const track = tracks.audio;\n if (!track) {\n return;\n }\n track.id = 'audio';\n const variantAudioCodecs = currentLevel.audioCodec;\n this.log(`Init audio buffer, container:${track.container}, codecs[level/parsed]=[${variantAudioCodecs}/${track.codec}]`);\n // SourceBuffer will use track.levelCodec if defined\n if (variantAudioCodecs && variantAudioCodecs.split(',').length === 1) {\n track.levelCodec = variantAudioCodecs;\n }\n this.hls.trigger(Events.BUFFER_CODECS, tracks);\n const initSegment = track.initSegment;\n if (initSegment != null && initSegment.byteLength) {\n const segment = {\n type: 'audio',\n frag,\n part: null,\n chunkMeta,\n parent: frag.type,\n data: initSegment\n };\n this.hls.trigger(Events.BUFFER_APPENDING, segment);\n }\n // trigger handler right now\n this.tickImmediate();\n }\n loadFragment(frag, track, targetBufferTime) {\n // only load if fragment is not loaded or if in audio switch\n const fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag;\n\n // we force a frag loading in audio switch as fragment tracker might not have evicted previous frags in case of quick audio switch\n if (this.switchingTrack || fragState === FragmentState.NOT_LOADED || fragState === FragmentState.PARTIAL) {\n var _track$details2;\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, track);\n } else if ((_track$details2 = track.details) != null && _track$details2.live && !this.initPTS[frag.cc]) {\n this.log(`Waiting for video PTS in continuity counter ${frag.cc} of live stream before loading audio fragment ${frag.sn} of level ${this.trackId}`);\n this.state = State.WAITING_INIT_PTS;\n const mainDetails = this.mainDetails;\n if (mainDetails && mainDetails.fragments[0].start !== track.details.fragments[0].start) {\n alignMediaPlaylistByPDT(track.details, mainDetails);\n }\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, track, targetBufferTime);\n }\n } else {\n this.clearTrackerIfNeeded(frag);\n }\n }\n flushAudioIfNeeded(switchingTrack) {\n if (this.media && this.bufferedTrack) {\n const {\n name,\n lang,\n assocLang,\n characteristics,\n audioCodec,\n channels\n } = this.bufferedTrack;\n if (!matchesOption({\n name,\n lang,\n assocLang,\n characteristics,\n audioCodec,\n channels\n }, switchingTrack, audioMatchPredicate)) {\n this.log('Switching audio track : flushing all audio');\n super.flushMainBuffer(0, Number.POSITIVE_INFINITY, 'audio');\n this.bufferedTrack = null;\n }\n }\n }\n completeAudioSwitch(switchingTrack) {\n const {\n hls\n } = this;\n this.flushAudioIfNeeded(switchingTrack);\n this.bufferedTrack = switchingTrack;\n this.switchingTrack = null;\n hls.trigger(Events.AUDIO_TRACK_SWITCHED, _objectSpread2({}, switchingTrack));\n }\n}\n\nfunction subtitleOptionsIdentical(trackList1, trackList2) {\n if (trackList1.length !== trackList2.length) {\n return false;\n }\n for (let i = 0; i < trackList1.length; i++) {\n if (!mediaAttributesIdentical(trackList1[i].attrs, trackList2[i].attrs)) {\n return false;\n }\n }\n return true;\n}\nfunction mediaAttributesIdentical(attrs1, attrs2, customAttributes) {\n // Media options with the same rendition ID must be bit identical\n const stableRenditionId = attrs1['STABLE-RENDITION-ID'];\n if (stableRenditionId && !customAttributes) {\n return stableRenditionId === attrs2['STABLE-RENDITION-ID'];\n }\n // When rendition ID is not present, compare attributes\n return !(customAttributes || ['LANGUAGE', 'NAME', 'CHARACTERISTICS', 'AUTOSELECT', 'DEFAULT', 'FORCED', 'ASSOC-LANGUAGE']).some(subtitleAttribute => attrs1[subtitleAttribute] !== attrs2[subtitleAttribute]);\n}\nfunction subtitleTrackMatchesTextTrack(subtitleTrack, textTrack) {\n return textTrack.label.toLowerCase() === subtitleTrack.name.toLowerCase() && (!textTrack.language || textTrack.language.toLowerCase() === (subtitleTrack.lang || '').toLowerCase());\n}\n\nclass AudioTrackController extends BasePlaylistController {\n constructor(hls) {\n super(hls, '[audio-track-controller]');\n this.tracks = [];\n this.groupIds = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.currentTrack = null;\n this.selectDefaultTrack = true;\n this.registerListeners();\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n this.currentTrack = null;\n super.destroy();\n }\n onManifestLoading() {\n this.tracks = [];\n this.tracksInGroup = [];\n this.groupIds = null;\n this.currentTrack = null;\n this.trackId = -1;\n this.selectDefaultTrack = true;\n }\n onManifestParsed(event, data) {\n this.tracks = data.audioTracks || [];\n }\n onAudioTrackLoaded(event, data) {\n const {\n id,\n groupId,\n details\n } = data;\n const trackInActiveGroup = this.tracksInGroup[id];\n if (!trackInActiveGroup || trackInActiveGroup.groupId !== groupId) {\n this.warn(`Audio track with id:${id} and group:${groupId} not found in active group ${trackInActiveGroup == null ? void 0 : trackInActiveGroup.groupId}`);\n return;\n }\n const curDetails = trackInActiveGroup.details;\n trackInActiveGroup.details = data.details;\n this.log(`Audio track ${id} \"${trackInActiveGroup.name}\" lang:${trackInActiveGroup.lang} group:${groupId} loaded [${details.startSN}-${details.endSN}]`);\n if (id === this.trackId) {\n this.playlistLoaded(id, data, curDetails);\n }\n }\n onLevelLoading(event, data) {\n this.switchLevel(data.level);\n }\n onLevelSwitching(event, data) {\n this.switchLevel(data.level);\n }\n switchLevel(levelIndex) {\n const levelInfo = this.hls.levels[levelIndex];\n if (!levelInfo) {\n return;\n }\n const audioGroups = levelInfo.audioGroups || null;\n const currentGroups = this.groupIds;\n let currentTrack = this.currentTrack;\n if (!audioGroups || (currentGroups == null ? void 0 : currentGroups.length) !== (audioGroups == null ? void 0 : audioGroups.length) || audioGroups != null && audioGroups.some(groupId => (currentGroups == null ? void 0 : currentGroups.indexOf(groupId)) === -1)) {\n this.groupIds = audioGroups;\n this.trackId = -1;\n this.currentTrack = null;\n const audioTracks = this.tracks.filter(track => !audioGroups || audioGroups.indexOf(track.groupId) !== -1);\n if (audioTracks.length) {\n // Disable selectDefaultTrack if there are no default tracks\n if (this.selectDefaultTrack && !audioTracks.some(track => track.default)) {\n this.selectDefaultTrack = false;\n }\n // track.id should match hls.audioTracks index\n audioTracks.forEach((track, i) => {\n track.id = i;\n });\n } else if (!currentTrack && !this.tracksInGroup.length) {\n // Do not dispatch AUDIO_TRACKS_UPDATED when there were and are no tracks\n return;\n }\n this.tracksInGroup = audioTracks;\n\n // Find preferred track\n const audioPreference = this.hls.config.audioPreference;\n if (!currentTrack && audioPreference) {\n const groupIndex = findMatchingOption(audioPreference, audioTracks, audioMatchPredicate);\n if (groupIndex > -1) {\n currentTrack = audioTracks[groupIndex];\n } else {\n const allIndex = findMatchingOption(audioPreference, this.tracks);\n currentTrack = this.tracks[allIndex];\n }\n }\n\n // Select initial track\n let trackId = this.findTrackId(currentTrack);\n if (trackId === -1 && currentTrack) {\n trackId = this.findTrackId(null);\n }\n\n // Dispatch events and load track if needed\n const audioTracksUpdated = {\n audioTracks\n };\n this.log(`Updating audio tracks, ${audioTracks.length} track(s) found in group(s): ${audioGroups == null ? void 0 : audioGroups.join(',')}`);\n this.hls.trigger(Events.AUDIO_TRACKS_UPDATED, audioTracksUpdated);\n const selectedTrackId = this.trackId;\n if (trackId !== -1 && selectedTrackId === -1) {\n this.setAudioTrack(trackId);\n } else if (audioTracks.length && selectedTrackId === -1) {\n var _this$groupIds;\n const error = new Error(`No audio track selected for current audio group-ID(s): ${(_this$groupIds = this.groupIds) == null ? void 0 : _this$groupIds.join(',')} track count: ${audioTracks.length}`);\n this.warn(error.message);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.AUDIO_TRACK_LOAD_ERROR,\n fatal: true,\n error\n });\n }\n } else if (this.shouldReloadPlaylist(currentTrack)) {\n // Retry playlist loading if no playlist is or has been loaded yet\n this.setAudioTrack(this.trackId);\n }\n }\n onError(event, data) {\n if (data.fatal || !data.context) {\n return;\n }\n if (data.context.type === PlaylistContextType.AUDIO_TRACK && data.context.id === this.trackId && (!this.groupIds || this.groupIds.indexOf(data.context.groupId) !== -1)) {\n this.requestScheduled = -1;\n this.checkRetry(data);\n }\n }\n get allAudioTracks() {\n return this.tracks;\n }\n get audioTracks() {\n return this.tracksInGroup;\n }\n get audioTrack() {\n return this.trackId;\n }\n set audioTrack(newId) {\n // If audio track is selected from API then don't choose from the manifest default track\n this.selectDefaultTrack = false;\n this.setAudioTrack(newId);\n }\n setAudioOption(audioOption) {\n const hls = this.hls;\n hls.config.audioPreference = audioOption;\n if (audioOption) {\n const allAudioTracks = this.allAudioTracks;\n this.selectDefaultTrack = false;\n if (allAudioTracks.length) {\n // First see if current option matches (no switch op)\n const currentTrack = this.currentTrack;\n if (currentTrack && matchesOption(audioOption, currentTrack, audioMatchPredicate)) {\n return currentTrack;\n }\n // Find option in available tracks (tracksInGroup)\n const groupIndex = findMatchingOption(audioOption, this.tracksInGroup, audioMatchPredicate);\n if (groupIndex > -1) {\n const track = this.tracksInGroup[groupIndex];\n this.setAudioTrack(groupIndex);\n return track;\n } else if (currentTrack) {\n // Find option in nearest level audio group\n let searchIndex = hls.loadLevel;\n if (searchIndex === -1) {\n searchIndex = hls.firstAutoLevel;\n }\n const switchIndex = findClosestLevelWithAudioGroup(audioOption, hls.levels, allAudioTracks, searchIndex, audioMatchPredicate);\n if (switchIndex === -1) {\n // could not find matching variant\n return null;\n }\n // and switch level to acheive the audio group switch\n hls.nextLoadLevel = switchIndex;\n }\n if (audioOption.channels || audioOption.audioCodec) {\n // Could not find a match with codec / channels predicate\n // Find a match without channels or codec\n const withoutCodecAndChannelsMatch = findMatchingOption(audioOption, allAudioTracks);\n if (withoutCodecAndChannelsMatch > -1) {\n return allAudioTracks[withoutCodecAndChannelsMatch];\n }\n }\n }\n }\n return null;\n }\n setAudioTrack(newId) {\n const tracks = this.tracksInGroup;\n\n // check if level idx is valid\n if (newId < 0 || newId >= tracks.length) {\n this.warn(`Invalid audio track id: ${newId}`);\n return;\n }\n\n // stopping live reloading timer if any\n this.clearTimer();\n this.selectDefaultTrack = false;\n const lastTrack = this.currentTrack;\n const track = tracks[newId];\n const trackLoaded = track.details && !track.details.live;\n if (newId === this.trackId && track === lastTrack && trackLoaded) {\n return;\n }\n this.log(`Switching to audio-track ${newId} \"${track.name}\" lang:${track.lang} group:${track.groupId} channels:${track.channels}`);\n this.trackId = newId;\n this.currentTrack = track;\n this.hls.trigger(Events.AUDIO_TRACK_SWITCHING, _objectSpread2({}, track));\n // Do not reload track unless live\n if (trackLoaded) {\n return;\n }\n const hlsUrlParameters = this.switchParams(track.url, lastTrack == null ? void 0 : lastTrack.details, track.details);\n this.loadPlaylist(hlsUrlParameters);\n }\n findTrackId(currentTrack) {\n const audioTracks = this.tracksInGroup;\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (this.selectDefaultTrack && !track.default) {\n continue;\n }\n if (!currentTrack || matchesOption(currentTrack, track, audioMatchPredicate)) {\n return i;\n }\n }\n if (currentTrack) {\n const {\n name,\n lang,\n assocLang,\n characteristics,\n audioCodec,\n channels\n } = currentTrack;\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (matchesOption({\n name,\n lang,\n assocLang,\n characteristics,\n audioCodec,\n channels\n }, track, audioMatchPredicate)) {\n return i;\n }\n }\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (mediaAttributesIdentical(currentTrack.attrs, track.attrs, ['LANGUAGE', 'ASSOC-LANGUAGE', 'CHARACTERISTICS'])) {\n return i;\n }\n }\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (mediaAttributesIdentical(currentTrack.attrs, track.attrs, ['LANGUAGE'])) {\n return i;\n }\n }\n }\n return -1;\n }\n loadPlaylist(hlsUrlParameters) {\n const audioTrack = this.currentTrack;\n if (this.shouldLoadPlaylist(audioTrack) && audioTrack) {\n super.loadPlaylist();\n const id = audioTrack.id;\n const groupId = audioTrack.groupId;\n let url = audioTrack.url;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(`Could not construct new URL with HLS Delivery Directives: ${error}`);\n }\n }\n // track not retrieved yet, or live playlist we need to (re)load it\n this.log(`loading audio-track playlist ${id} \"${audioTrack.name}\" lang:${audioTrack.lang} group:${groupId}`);\n this.clearTimer();\n this.hls.trigger(Events.AUDIO_TRACK_LOADING, {\n url,\n id,\n groupId,\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n }\n}\n\nconst TICK_INTERVAL$1 = 500; // how often to tick in ms\n\nclass SubtitleStreamController extends BaseStreamController {\n constructor(hls, fragmentTracker, keyLoader) {\n super(hls, fragmentTracker, keyLoader, '[subtitle-stream-controller]', PlaylistLevelType.SUBTITLE);\n this.currentTrackId = -1;\n this.tracksBuffered = [];\n this.mainDetails = null;\n this._registerListeners();\n }\n onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n this.mainDetails = null;\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n startLoad(startPosition) {\n this.stopLoad();\n this.state = State.IDLE;\n this.setInterval(TICK_INTERVAL$1);\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n }\n onManifestLoading() {\n this.mainDetails = null;\n this.fragmentTracker.removeAllFragments();\n }\n onMediaDetaching() {\n this.tracksBuffered = [];\n super.onMediaDetaching();\n }\n onLevelLoaded(event, data) {\n this.mainDetails = data.details;\n }\n onSubtitleFragProcessed(event, data) {\n const {\n frag,\n success\n } = data;\n this.fragPrevious = frag;\n this.state = State.IDLE;\n if (!success) {\n return;\n }\n const buffered = this.tracksBuffered[this.currentTrackId];\n if (!buffered) {\n return;\n }\n\n // Create/update a buffered array matching the interface used by BufferHelper.bufferedInfo\n // so we can re-use the logic used to detect how much has been buffered\n let timeRange;\n const fragStart = frag.start;\n for (let i = 0; i < buffered.length; i++) {\n if (fragStart >= buffered[i].start && fragStart <= buffered[i].end) {\n timeRange = buffered[i];\n break;\n }\n }\n const fragEnd = frag.start + frag.duration;\n if (timeRange) {\n timeRange.end = fragEnd;\n } else {\n timeRange = {\n start: fragStart,\n end: fragEnd\n };\n buffered.push(timeRange);\n }\n this.fragmentTracker.fragBuffered(frag);\n this.fragBufferedComplete(frag, null);\n }\n onBufferFlushing(event, data) {\n const {\n startOffset,\n endOffset\n } = data;\n if (startOffset === 0 && endOffset !== Number.POSITIVE_INFINITY) {\n const endOffsetSubtitles = endOffset - 1;\n if (endOffsetSubtitles <= 0) {\n return;\n }\n data.endOffsetSubtitles = Math.max(0, endOffsetSubtitles);\n this.tracksBuffered.forEach(buffered => {\n for (let i = 0; i < buffered.length;) {\n if (buffered[i].end <= endOffsetSubtitles) {\n buffered.shift();\n continue;\n } else if (buffered[i].start < endOffsetSubtitles) {\n buffered[i].start = endOffsetSubtitles;\n } else {\n break;\n }\n i++;\n }\n });\n this.fragmentTracker.removeFragmentsInRange(startOffset, endOffsetSubtitles, PlaylistLevelType.SUBTITLE);\n }\n }\n onFragBuffered(event, data) {\n if (!this.loadedmetadata && data.frag.type === PlaylistLevelType.MAIN) {\n var _this$media;\n if ((_this$media = this.media) != null && _this$media.buffered.length) {\n this.loadedmetadata = true;\n }\n }\n }\n\n // If something goes wrong, proceed to next frag, if we were processing one.\n onError(event, data) {\n const frag = data.frag;\n if ((frag == null ? void 0 : frag.type) === PlaylistLevelType.SUBTITLE) {\n if (data.details === ErrorDetails.FRAG_GAP) {\n this.fragmentTracker.fragBuffered(frag, true);\n }\n if (this.fragCurrent) {\n this.fragCurrent.abortRequests();\n }\n if (this.state !== State.STOPPED) {\n this.state = State.IDLE;\n }\n }\n }\n\n // Got all new subtitle levels.\n onSubtitleTracksUpdated(event, {\n subtitleTracks\n }) {\n if (this.levels && subtitleOptionsIdentical(this.levels, subtitleTracks)) {\n this.levels = subtitleTracks.map(mediaPlaylist => new Level(mediaPlaylist));\n return;\n }\n this.tracksBuffered = [];\n this.levels = subtitleTracks.map(mediaPlaylist => {\n const level = new Level(mediaPlaylist);\n this.tracksBuffered[level.id] = [];\n return level;\n });\n this.fragmentTracker.removeFragmentsInRange(0, Number.POSITIVE_INFINITY, PlaylistLevelType.SUBTITLE);\n this.fragPrevious = null;\n this.mediaBuffer = null;\n }\n onSubtitleTrackSwitch(event, data) {\n var _this$levels;\n this.currentTrackId = data.id;\n if (!((_this$levels = this.levels) != null && _this$levels.length) || this.currentTrackId === -1) {\n this.clearInterval();\n return;\n }\n\n // Check if track has the necessary details to load fragments\n const currentTrack = this.levels[this.currentTrackId];\n if (currentTrack != null && currentTrack.details) {\n this.mediaBuffer = this.mediaBufferTimeRanges;\n } else {\n this.mediaBuffer = null;\n }\n if (currentTrack) {\n this.setInterval(TICK_INTERVAL$1);\n }\n }\n\n // Got a new set of subtitle fragments.\n onSubtitleTrackLoaded(event, data) {\n var _track$details;\n const {\n currentTrackId,\n levels\n } = this;\n const {\n details: newDetails,\n id: trackId\n } = data;\n if (!levels) {\n this.warn(`Subtitle tracks were reset while loading level ${trackId}`);\n return;\n }\n const track = levels[trackId];\n if (trackId >= levels.length || !track) {\n return;\n }\n this.log(`Subtitle track ${trackId} loaded [${newDetails.startSN},${newDetails.endSN}]${newDetails.lastPartSn ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]` : ''},duration:${newDetails.totalduration}`);\n this.mediaBuffer = this.mediaBufferTimeRanges;\n let sliding = 0;\n if (newDetails.live || (_track$details = track.details) != null && _track$details.live) {\n const mainDetails = this.mainDetails;\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n const mainSlidingStartFragment = mainDetails.fragments[0];\n if (!track.details) {\n if (newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {\n alignMediaPlaylistByPDT(newDetails, mainDetails);\n sliding = newDetails.fragments[0].start;\n } else if (mainSlidingStartFragment) {\n // line up live playlist with main so that fragments in range are loaded\n sliding = mainSlidingStartFragment.start;\n addSliding(newDetails, sliding);\n }\n } else {\n var _this$levelLastLoaded;\n sliding = this.alignPlaylists(newDetails, track.details, (_this$levelLastLoaded = this.levelLastLoaded) == null ? void 0 : _this$levelLastLoaded.details);\n if (sliding === 0 && mainSlidingStartFragment) {\n // realign with main when there is no overlap with last refresh\n sliding = mainSlidingStartFragment.start;\n addSliding(newDetails, sliding);\n }\n }\n }\n track.details = newDetails;\n this.levelLastLoaded = track;\n if (trackId !== currentTrackId) {\n return;\n }\n if (!this.startFragRequested && (this.mainDetails || !newDetails.live)) {\n this.setStartPosition(this.mainDetails || newDetails, sliding);\n }\n\n // trigger handler right now\n this.tick();\n\n // If playlist is misaligned because of bad PDT or drift, delete details to resync with main on reload\n if (newDetails.live && !this.fragCurrent && this.media && this.state === State.IDLE) {\n const foundFrag = findFragmentByPTS(null, newDetails.fragments, this.media.currentTime, 0);\n if (!foundFrag) {\n this.warn('Subtitle playlist not aligned with playback');\n track.details = undefined;\n }\n }\n }\n _handleFragmentLoadComplete(fragLoadedData) {\n const {\n frag,\n payload\n } = fragLoadedData;\n const decryptData = frag.decryptdata;\n const hls = this.hls;\n if (this.fragContextChanged(frag)) {\n return;\n }\n // check to see if the payload needs to be decrypted\n if (payload && payload.byteLength > 0 && decryptData != null && decryptData.key && decryptData.iv && decryptData.method === 'AES-128') {\n const startTime = performance.now();\n // decrypt the subtitles\n this.decrypter.decrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).catch(err => {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_DECRYPT_ERROR,\n fatal: false,\n error: err,\n reason: err.message,\n frag\n });\n throw err;\n }).then(decryptedData => {\n const endTime = performance.now();\n hls.trigger(Events.FRAG_DECRYPTED, {\n frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime\n }\n });\n }).catch(err => {\n this.warn(`${err.name}: ${err.message}`);\n this.state = State.IDLE;\n });\n }\n }\n doTick() {\n if (!this.media) {\n this.state = State.IDLE;\n return;\n }\n if (this.state === State.IDLE) {\n const {\n currentTrackId,\n levels\n } = this;\n const track = levels == null ? void 0 : levels[currentTrackId];\n if (!track || !levels.length || !track.details) {\n return;\n }\n const {\n config\n } = this;\n const currentTime = this.getLoadPosition();\n const bufferedInfo = BufferHelper.bufferedInfo(this.tracksBuffered[this.currentTrackId] || [], currentTime, config.maxBufferHole);\n const {\n end: targetBufferTime,\n len: bufferLen\n } = bufferedInfo;\n const mainBufferInfo = this.getFwdBufferInfo(this.media, PlaylistLevelType.MAIN);\n const trackDetails = track.details;\n const maxBufLen = this.getMaxBufferLength(mainBufferInfo == null ? void 0 : mainBufferInfo.len) + trackDetails.levelTargetDuration;\n if (bufferLen > maxBufLen) {\n return;\n }\n const fragments = trackDetails.fragments;\n const fragLen = fragments.length;\n const end = trackDetails.edge;\n let foundFrag = null;\n const fragPrevious = this.fragPrevious;\n if (targetBufferTime < end) {\n const tolerance = config.maxFragLookUpTolerance;\n const lookupTolerance = targetBufferTime > end - tolerance ? 0 : tolerance;\n foundFrag = findFragmentByPTS(fragPrevious, fragments, Math.max(fragments[0].start, targetBufferTime), lookupTolerance);\n if (!foundFrag && fragPrevious && fragPrevious.start < fragments[0].start) {\n foundFrag = fragments[0];\n }\n } else {\n foundFrag = fragments[fragLen - 1];\n }\n if (!foundFrag) {\n return;\n }\n foundFrag = this.mapToInitFragWhenRequired(foundFrag);\n if (foundFrag.sn !== 'initSegment') {\n // Load earlier fragment in same discontinuity to make up for misaligned playlists and cues that extend beyond end of segment\n const curSNIdx = foundFrag.sn - trackDetails.startSN;\n const prevFrag = fragments[curSNIdx - 1];\n if (prevFrag && prevFrag.cc === foundFrag.cc && this.fragmentTracker.getState(prevFrag) === FragmentState.NOT_LOADED) {\n foundFrag = prevFrag;\n }\n }\n if (this.fragmentTracker.getState(foundFrag) === FragmentState.NOT_LOADED) {\n // only load if fragment is not loaded\n this.loadFragment(foundFrag, track, targetBufferTime);\n }\n }\n }\n getMaxBufferLength(mainBufferLength) {\n const maxConfigBuffer = super.getMaxBufferLength();\n if (!mainBufferLength) {\n return maxConfigBuffer;\n }\n return Math.max(maxConfigBuffer, mainBufferLength);\n }\n loadFragment(frag, level, targetBufferTime) {\n this.fragCurrent = frag;\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, level);\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, level, targetBufferTime);\n }\n }\n get mediaBufferTimeRanges() {\n return new BufferableInstance(this.tracksBuffered[this.currentTrackId] || []);\n }\n}\nclass BufferableInstance {\n constructor(timeranges) {\n this.buffered = void 0;\n const getRange = (name, index, length) => {\n index = index >>> 0;\n if (index > length - 1) {\n throw new DOMException(`Failed to execute '${name}' on 'TimeRanges': The index provided (${index}) is greater than the maximum bound (${length})`);\n }\n return timeranges[index][name];\n };\n this.buffered = {\n get length() {\n return timeranges.length;\n },\n end(index) {\n return getRange('end', index, timeranges.length);\n },\n start(index) {\n return getRange('start', index, timeranges.length);\n }\n };\n }\n}\n\nclass SubtitleTrackController extends BasePlaylistController {\n constructor(hls) {\n super(hls, '[subtitle-track-controller]');\n this.media = null;\n this.tracks = [];\n this.groupIds = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.currentTrack = null;\n this.selectDefaultTrack = true;\n this.queuedDefaultTrack = -1;\n this.asyncPollTrackChange = () => this.pollTrackChange(0);\n this.useTextTrackPolling = false;\n this.subtitlePollingInterval = -1;\n this._subtitleDisplay = true;\n this.onTextTracksChanged = () => {\n if (!this.useTextTrackPolling) {\n self.clearInterval(this.subtitlePollingInterval);\n }\n // Media is undefined when switching streams via loadSource()\n if (!this.media || !this.hls.config.renderTextTracksNatively) {\n return;\n }\n let textTrack = null;\n const tracks = filterSubtitleTracks(this.media.textTracks);\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].mode === 'hidden') {\n // Do not break in case there is a following track with showing.\n textTrack = tracks[i];\n } else if (tracks[i].mode === 'showing') {\n textTrack = tracks[i];\n break;\n }\n }\n\n // Find internal track index for TextTrack\n const trackId = this.findTrackForTextTrack(textTrack);\n if (this.subtitleTrack !== trackId) {\n this.setSubtitleTrack(trackId);\n }\n };\n this.registerListeners();\n }\n destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n this.currentTrack = null;\n this.onTextTracksChanged = this.asyncPollTrackChange = null;\n super.destroy();\n }\n get subtitleDisplay() {\n return this._subtitleDisplay;\n }\n set subtitleDisplay(value) {\n this._subtitleDisplay = value;\n if (this.trackId > -1) {\n this.toggleTrackModes();\n }\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n // Listen for subtitle track change, then extract the current track ID.\n onMediaAttached(event, data) {\n this.media = data.media;\n if (!this.media) {\n return;\n }\n if (this.queuedDefaultTrack > -1) {\n this.subtitleTrack = this.queuedDefaultTrack;\n this.queuedDefaultTrack = -1;\n }\n this.useTextTrackPolling = !(this.media.textTracks && 'onchange' in this.media.textTracks);\n if (this.useTextTrackPolling) {\n this.pollTrackChange(500);\n } else {\n this.media.textTracks.addEventListener('change', this.asyncPollTrackChange);\n }\n }\n pollTrackChange(timeout) {\n self.clearInterval(this.subtitlePollingInterval);\n this.subtitlePollingInterval = self.setInterval(this.onTextTracksChanged, timeout);\n }\n onMediaDetaching() {\n if (!this.media) {\n return;\n }\n self.clearInterval(this.subtitlePollingInterval);\n if (!this.useTextTrackPolling) {\n this.media.textTracks.removeEventListener('change', this.asyncPollTrackChange);\n }\n if (this.trackId > -1) {\n this.queuedDefaultTrack = this.trackId;\n }\n const textTracks = filterSubtitleTracks(this.media.textTracks);\n // Clear loaded cues on media detachment from tracks\n textTracks.forEach(track => {\n clearCurrentCues(track);\n });\n // Disable all subtitle tracks before detachment so when reattached only tracks in that content are enabled.\n this.subtitleTrack = -1;\n this.media = null;\n }\n onManifestLoading() {\n this.tracks = [];\n this.groupIds = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.currentTrack = null;\n this.selectDefaultTrack = true;\n }\n\n // Fired whenever a new manifest is loaded.\n onManifestParsed(event, data) {\n this.tracks = data.subtitleTracks;\n }\n onSubtitleTrackLoaded(event, data) {\n const {\n id,\n groupId,\n details\n } = data;\n const trackInActiveGroup = this.tracksInGroup[id];\n if (!trackInActiveGroup || trackInActiveGroup.groupId !== groupId) {\n this.warn(`Subtitle track with id:${id} and group:${groupId} not found in active group ${trackInActiveGroup == null ? void 0 : trackInActiveGroup.groupId}`);\n return;\n }\n const curDetails = trackInActiveGroup.details;\n trackInActiveGroup.details = data.details;\n this.log(`Subtitle track ${id} \"${trackInActiveGroup.name}\" lang:${trackInActiveGroup.lang} group:${groupId} loaded [${details.startSN}-${details.endSN}]`);\n if (id === this.trackId) {\n this.playlistLoaded(id, data, curDetails);\n }\n }\n onLevelLoading(event, data) {\n this.switchLevel(data.level);\n }\n onLevelSwitching(event, data) {\n this.switchLevel(data.level);\n }\n switchLevel(levelIndex) {\n const levelInfo = this.hls.levels[levelIndex];\n if (!levelInfo) {\n return;\n }\n const subtitleGroups = levelInfo.subtitleGroups || null;\n const currentGroups = this.groupIds;\n let currentTrack = this.currentTrack;\n if (!subtitleGroups || (currentGroups == null ? void 0 : currentGroups.length) !== (subtitleGroups == null ? void 0 : subtitleGroups.length) || subtitleGroups != null && subtitleGroups.some(groupId => (currentGroups == null ? void 0 : currentGroups.indexOf(groupId)) === -1)) {\n this.groupIds = subtitleGroups;\n this.trackId = -1;\n this.currentTrack = null;\n const subtitleTracks = this.tracks.filter(track => !subtitleGroups || subtitleGroups.indexOf(track.groupId) !== -1);\n if (subtitleTracks.length) {\n // Disable selectDefaultTrack if there are no default tracks\n if (this.selectDefaultTrack && !subtitleTracks.some(track => track.default)) {\n this.selectDefaultTrack = false;\n }\n // track.id should match hls.audioTracks index\n subtitleTracks.forEach((track, i) => {\n track.id = i;\n });\n } else if (!currentTrack && !this.tracksInGroup.length) {\n // Do not dispatch SUBTITLE_TRACKS_UPDATED when there were and are no tracks\n return;\n }\n this.tracksInGroup = subtitleTracks;\n\n // Find preferred track\n const subtitlePreference = this.hls.config.subtitlePreference;\n if (!currentTrack && subtitlePreference) {\n this.selectDefaultTrack = false;\n const groupIndex = findMatchingOption(subtitlePreference, subtitleTracks);\n if (groupIndex > -1) {\n currentTrack = subtitleTracks[groupIndex];\n } else {\n const allIndex = findMatchingOption(subtitlePreference, this.tracks);\n currentTrack = this.tracks[allIndex];\n }\n }\n\n // Select initial track\n let trackId = this.findTrackId(currentTrack);\n if (trackId === -1 && currentTrack) {\n trackId = this.findTrackId(null);\n }\n\n // Dispatch events and load track if needed\n const subtitleTracksUpdated = {\n subtitleTracks\n };\n this.log(`Updating subtitle tracks, ${subtitleTracks.length} track(s) found in \"${subtitleGroups == null ? void 0 : subtitleGroups.join(',')}\" group-id`);\n this.hls.trigger(Events.SUBTITLE_TRACKS_UPDATED, subtitleTracksUpdated);\n if (trackId !== -1 && this.trackId === -1) {\n this.setSubtitleTrack(trackId);\n }\n } else if (this.shouldReloadPlaylist(currentTrack)) {\n // Retry playlist loading if no playlist is or has been loaded yet\n this.setSubtitleTrack(this.trackId);\n }\n }\n findTrackId(currentTrack) {\n const tracks = this.tracksInGroup;\n const selectDefault = this.selectDefaultTrack;\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (selectDefault && !track.default || !selectDefault && !currentTrack) {\n continue;\n }\n if (!currentTrack || matchesOption(track, currentTrack)) {\n return i;\n }\n }\n if (currentTrack) {\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (mediaAttributesIdentical(currentTrack.attrs, track.attrs, ['LANGUAGE', 'ASSOC-LANGUAGE', 'CHARACTERISTICS'])) {\n return i;\n }\n }\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (mediaAttributesIdentical(currentTrack.attrs, track.attrs, ['LANGUAGE'])) {\n return i;\n }\n }\n }\n return -1;\n }\n findTrackForTextTrack(textTrack) {\n if (textTrack) {\n const tracks = this.tracksInGroup;\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (subtitleTrackMatchesTextTrack(track, textTrack)) {\n return i;\n }\n }\n }\n return -1;\n }\n onError(event, data) {\n if (data.fatal || !data.context) {\n return;\n }\n if (data.context.type === PlaylistContextType.SUBTITLE_TRACK && data.context.id === this.trackId && (!this.groupIds || this.groupIds.indexOf(data.context.groupId) !== -1)) {\n this.checkRetry(data);\n }\n }\n get allSubtitleTracks() {\n return this.tracks;\n }\n\n /** get alternate subtitle tracks list from playlist **/\n get subtitleTracks() {\n return this.tracksInGroup;\n }\n\n /** get/set index of the selected subtitle track (based on index in subtitle track lists) **/\n get subtitleTrack() {\n return this.trackId;\n }\n set subtitleTrack(newId) {\n this.selectDefaultTrack = false;\n this.setSubtitleTrack(newId);\n }\n setSubtitleOption(subtitleOption) {\n this.hls.config.subtitlePreference = subtitleOption;\n if (subtitleOption) {\n const allSubtitleTracks = this.allSubtitleTracks;\n this.selectDefaultTrack = false;\n if (allSubtitleTracks.length) {\n // First see if current option matches (no switch op)\n const currentTrack = this.currentTrack;\n if (currentTrack && matchesOption(subtitleOption, currentTrack)) {\n return currentTrack;\n }\n // Find option in current group\n const groupIndex = findMatchingOption(subtitleOption, this.tracksInGroup);\n if (groupIndex > -1) {\n const track = this.tracksInGroup[groupIndex];\n this.setSubtitleTrack(groupIndex);\n return track;\n } else if (currentTrack) {\n // If this is not the initial selection return null\n // option should have matched one in active group\n return null;\n } else {\n // Find the option in all tracks for initial selection\n const allIndex = findMatchingOption(subtitleOption, allSubtitleTracks);\n if (allIndex > -1) {\n return allSubtitleTracks[allIndex];\n }\n }\n }\n }\n return null;\n }\n loadPlaylist(hlsUrlParameters) {\n super.loadPlaylist();\n const currentTrack = this.currentTrack;\n if (this.shouldLoadPlaylist(currentTrack) && currentTrack) {\n const id = currentTrack.id;\n const groupId = currentTrack.groupId;\n let url = currentTrack.url;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(`Could not construct new URL with HLS Delivery Directives: ${error}`);\n }\n }\n this.log(`Loading subtitle playlist for id ${id}`);\n this.hls.trigger(Events.SUBTITLE_TRACK_LOADING, {\n url,\n id,\n groupId,\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n }\n\n /**\n * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.\n * This operates on the DOM textTracks.\n * A value of -1 will disable all subtitle tracks.\n */\n toggleTrackModes() {\n const {\n media\n } = this;\n if (!media) {\n return;\n }\n const textTracks = filterSubtitleTracks(media.textTracks);\n const currentTrack = this.currentTrack;\n let nextTrack;\n if (currentTrack) {\n nextTrack = textTracks.filter(textTrack => subtitleTrackMatchesTextTrack(currentTrack, textTrack))[0];\n if (!nextTrack) {\n this.warn(`Unable to find subtitle TextTrack with name \"${currentTrack.name}\" and language \"${currentTrack.lang}\"`);\n }\n }\n [].slice.call(textTracks).forEach(track => {\n if (track.mode !== 'disabled' && track !== nextTrack) {\n track.mode = 'disabled';\n }\n });\n if (nextTrack) {\n const mode = this.subtitleDisplay ? 'showing' : 'hidden';\n if (nextTrack.mode !== mode) {\n nextTrack.mode = mode;\n }\n }\n }\n\n /**\n * This method is responsible for validating the subtitle index and periodically reloading if live.\n * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.\n */\n setSubtitleTrack(newId) {\n const tracks = this.tracksInGroup;\n\n // setting this.subtitleTrack will trigger internal logic\n // if media has not been attached yet, it will fail\n // we keep a reference to the default track id\n // and we'll set subtitleTrack when onMediaAttached is triggered\n if (!this.media) {\n this.queuedDefaultTrack = newId;\n return;\n }\n\n // exit if track id as already set or invalid\n if (newId < -1 || newId >= tracks.length || !isFiniteNumber(newId)) {\n this.warn(`Invalid subtitle track id: ${newId}`);\n return;\n }\n\n // stopping live reloading timer if any\n this.clearTimer();\n this.selectDefaultTrack = false;\n const lastTrack = this.currentTrack;\n const track = tracks[newId] || null;\n this.trackId = newId;\n this.currentTrack = track;\n this.toggleTrackModes();\n if (!track) {\n // switch to -1\n this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, {\n id: newId\n });\n return;\n }\n const trackLoaded = !!track.details && !track.details.live;\n if (newId === this.trackId && track === lastTrack && trackLoaded) {\n return;\n }\n this.log(`Switching to subtitle-track ${newId}` + (track ? ` \"${track.name}\" lang:${track.lang} group:${track.groupId}` : ''));\n const {\n id,\n groupId = '',\n name,\n type,\n url\n } = track;\n this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, {\n id,\n groupId,\n name,\n type,\n url\n });\n const hlsUrlParameters = this.switchParams(track.url, lastTrack == null ? void 0 : lastTrack.details, track.details);\n this.loadPlaylist(hlsUrlParameters);\n }\n}\n\nclass BufferOperationQueue {\n constructor(sourceBufferReference) {\n this.buffers = void 0;\n this.queues = {\n video: [],\n audio: [],\n audiovideo: []\n };\n this.buffers = sourceBufferReference;\n }\n append(operation, type, pending) {\n const queue = this.queues[type];\n queue.push(operation);\n if (queue.length === 1 && !pending) {\n this.executeNext(type);\n }\n }\n insertAbort(operation, type) {\n const queue = this.queues[type];\n queue.unshift(operation);\n this.executeNext(type);\n }\n appendBlocker(type) {\n let execute;\n const promise = new Promise(resolve => {\n execute = resolve;\n });\n const operation = {\n execute,\n onStart: () => {},\n onComplete: () => {},\n onError: () => {}\n };\n this.append(operation, type);\n return promise;\n }\n executeNext(type) {\n const queue = this.queues[type];\n if (queue.length) {\n const operation = queue[0];\n try {\n // Operations are expected to result in an 'updateend' event being fired. If not, the queue will lock. Operations\n // which do not end with this event must call _onSBUpdateEnd manually\n operation.execute();\n } catch (error) {\n logger.warn(`[buffer-operation-queue]: Exception executing \"${type}\" SourceBuffer operation: ${error}`);\n operation.onError(error);\n\n // Only shift the current operation off, otherwise the updateend handler will do this for us\n const sb = this.buffers[type];\n if (!(sb != null && sb.updating)) {\n this.shiftAndExecuteNext(type);\n }\n }\n }\n }\n shiftAndExecuteNext(type) {\n this.queues[type].shift();\n this.executeNext(type);\n }\n current(type) {\n return this.queues[type][0];\n }\n}\n\nconst VIDEO_CODEC_PROFILE_REPLACE = /(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\\.[^.,]+)+/;\nclass BufferController {\n constructor(hls) {\n // The level details used to determine duration, target-duration and live\n this.details = null;\n // cache the self generated object url to detect hijack of video tag\n this._objectUrl = null;\n // A queue of buffer operations which require the SourceBuffer to not be updating upon execution\n this.operationQueue = void 0;\n // References to event listeners for each SourceBuffer, so that they can be referenced for event removal\n this.listeners = void 0;\n this.hls = void 0;\n // The number of BUFFER_CODEC events received before any sourceBuffers are created\n this.bufferCodecEventsExpected = 0;\n // The total number of BUFFER_CODEC events received\n this._bufferCodecEventsTotal = 0;\n // A reference to the attached media element\n this.media = null;\n // A reference to the active media source\n this.mediaSource = null;\n // Last MP3 audio chunk appended\n this.lastMpegAudioChunk = null;\n this.appendSource = void 0;\n // counters\n this.appendErrors = {\n audio: 0,\n video: 0,\n audiovideo: 0\n };\n this.tracks = {};\n this.pendingTracks = {};\n this.sourceBuffer = void 0;\n this.log = void 0;\n this.warn = void 0;\n this.error = void 0;\n this._onEndStreaming = event => {\n if (!this.hls) {\n return;\n }\n this.hls.pauseBuffering();\n };\n this._onStartStreaming = event => {\n if (!this.hls) {\n return;\n }\n this.hls.resumeBuffering();\n };\n // Keep as arrow functions so that we can directly reference these functions directly as event listeners\n this._onMediaSourceOpen = () => {\n const {\n media,\n mediaSource\n } = this;\n this.log('Media source opened');\n if (media) {\n media.removeEventListener('emptied', this._onMediaEmptied);\n this.updateMediaElementDuration();\n this.hls.trigger(Events.MEDIA_ATTACHED, {\n media,\n mediaSource: mediaSource\n });\n }\n if (mediaSource) {\n // once received, don't listen anymore to sourceopen event\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n }\n this.checkPendingTracks();\n };\n this._onMediaSourceClose = () => {\n this.log('Media source closed');\n };\n this._onMediaSourceEnded = () => {\n this.log('Media source ended');\n };\n this._onMediaEmptied = () => {\n const {\n mediaSrc,\n _objectUrl\n } = this;\n if (mediaSrc !== _objectUrl) {\n logger.error(`Media element src was set while attaching MediaSource (${_objectUrl} > ${mediaSrc})`);\n }\n };\n this.hls = hls;\n const logPrefix = '[buffer-controller]';\n this.appendSource = isManagedMediaSource(getMediaSource(hls.config.preferManagedMediaSource));\n this.log = logger.log.bind(logger, logPrefix);\n this.warn = logger.warn.bind(logger, logPrefix);\n this.error = logger.error.bind(logger, logPrefix);\n this._initSourceBuffer();\n this.registerListeners();\n }\n hasSourceTypes() {\n return this.getSourceBufferTypes().length > 0 || Object.keys(this.pendingTracks).length > 0;\n }\n destroy() {\n this.unregisterListeners();\n this.details = null;\n this.lastMpegAudioChunk = null;\n // @ts-ignore\n this.hls = null;\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.on(Events.BUFFER_APPENDING, this.onBufferAppending, this);\n hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(Events.BUFFER_EOS, this.onBufferEos, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.on(Events.FRAG_PARSED, this.onFragParsed, this);\n hls.on(Events.FRAG_CHANGED, this.onFragChanged, this);\n }\n unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.off(Events.BUFFER_APPENDING, this.onBufferAppending, this);\n hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(Events.BUFFER_EOS, this.onBufferEos, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.off(Events.FRAG_PARSED, this.onFragParsed, this);\n hls.off(Events.FRAG_CHANGED, this.onFragChanged, this);\n }\n _initSourceBuffer() {\n this.sourceBuffer = {};\n this.operationQueue = new BufferOperationQueue(this.sourceBuffer);\n this.listeners = {\n audio: [],\n video: [],\n audiovideo: []\n };\n this.appendErrors = {\n audio: 0,\n video: 0,\n audiovideo: 0\n };\n this.lastMpegAudioChunk = null;\n }\n onManifestLoading() {\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = 0;\n this.details = null;\n }\n onManifestParsed(event, data) {\n // in case of alt audio 2 BUFFER_CODECS events will be triggered, one per stream controller\n // sourcebuffers will be created all at once when the expected nb of tracks will be reached\n // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller\n // it will contain the expected nb of source buffers, no need to compute it\n let codecEvents = 2;\n if (data.audio && !data.video || !data.altAudio || !true) {\n codecEvents = 1;\n }\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = codecEvents;\n this.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`);\n }\n onMediaAttaching(event, data) {\n const media = this.media = data.media;\n const MediaSource = getMediaSource(this.appendSource);\n if (media && MediaSource) {\n var _ms$constructor;\n const ms = this.mediaSource = new MediaSource();\n this.log(`created media source: ${(_ms$constructor = ms.constructor) == null ? void 0 : _ms$constructor.name}`);\n // MediaSource listeners are arrow functions with a lexical scope, and do not need to be bound\n ms.addEventListener('sourceopen', this._onMediaSourceOpen);\n ms.addEventListener('sourceended', this._onMediaSourceEnded);\n ms.addEventListener('sourceclose', this._onMediaSourceClose);\n if (this.appendSource) {\n ms.addEventListener('startstreaming', this._onStartStreaming);\n ms.addEventListener('endstreaming', this._onEndStreaming);\n }\n\n // cache the locally generated object url\n const objectUrl = this._objectUrl = self.URL.createObjectURL(ms);\n // link video and media Source\n if (this.appendSource) {\n try {\n media.removeAttribute('src');\n // ManagedMediaSource will not open without disableRemotePlayback set to false or source alternatives\n const MMS = self.ManagedMediaSource;\n media.disableRemotePlayback = media.disableRemotePlayback || MMS && ms instanceof MMS;\n removeSourceChildren(media);\n addSource(media, objectUrl);\n media.load();\n } catch (error) {\n media.src = objectUrl;\n }\n } else {\n media.src = objectUrl;\n }\n media.addEventListener('emptied', this._onMediaEmptied);\n }\n }\n onMediaDetaching() {\n const {\n media,\n mediaSource,\n _objectUrl\n } = this;\n if (mediaSource) {\n this.log('media source detaching');\n if (mediaSource.readyState === 'open') {\n try {\n // endOfStream could trigger exception if any sourcebuffer is in updating state\n // we don't really care about checking sourcebuffer state here,\n // as we are anyway detaching the MediaSource\n // let's just avoid this exception to propagate\n mediaSource.endOfStream();\n } catch (err) {\n this.warn(`onMediaDetaching: ${err.message} while calling endOfStream`);\n }\n }\n // Clean up the SourceBuffers by invoking onBufferReset\n this.onBufferReset();\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n mediaSource.removeEventListener('sourceended', this._onMediaSourceEnded);\n mediaSource.removeEventListener('sourceclose', this._onMediaSourceClose);\n if (this.appendSource) {\n mediaSource.removeEventListener('startstreaming', this._onStartStreaming);\n mediaSource.removeEventListener('endstreaming', this._onEndStreaming);\n }\n\n // Detach properly the MediaSource from the HTMLMediaElement as\n // suggested in https://github.com/w3c/media-source/issues/53.\n if (media) {\n media.removeEventListener('emptied', this._onMediaEmptied);\n if (_objectUrl) {\n self.URL.revokeObjectURL(_objectUrl);\n }\n\n // clean up video tag src only if it's our own url. some external libraries might\n // hijack the video tag and change its 'src' without destroying the Hls instance first\n if (this.mediaSrc === _objectUrl) {\n media.removeAttribute('src');\n if (this.appendSource) {\n removeSourceChildren(media);\n }\n media.load();\n } else {\n this.warn('media|source.src was changed by a third party - skip cleanup');\n }\n }\n this.mediaSource = null;\n this.media = null;\n this._objectUrl = null;\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal;\n this.pendingTracks = {};\n this.tracks = {};\n }\n this.hls.trigger(Events.MEDIA_DETACHED, undefined);\n }\n onBufferReset() {\n this.getSourceBufferTypes().forEach(type => {\n this.resetBuffer(type);\n });\n this._initSourceBuffer();\n this.hls.resumeBuffering();\n }\n resetBuffer(type) {\n const sb = this.sourceBuffer[type];\n try {\n if (sb) {\n var _this$mediaSource;\n this.removeBufferListeners(type);\n // Synchronously remove the SB from the map before the next call in order to prevent an async function from\n // accessing it\n this.sourceBuffer[type] = undefined;\n if ((_this$mediaSource = this.mediaSource) != null && _this$mediaSource.sourceBuffers.length) {\n this.mediaSource.removeSourceBuffer(sb);\n }\n }\n } catch (err) {\n this.warn(`onBufferReset ${type}`, err);\n }\n }\n onBufferCodecs(event, data) {\n const sourceBufferCount = this.getSourceBufferTypes().length;\n const trackNames = Object.keys(data);\n trackNames.forEach(trackName => {\n if (sourceBufferCount) {\n // check if SourceBuffer codec needs to change\n const track = this.tracks[trackName];\n if (track && typeof track.buffer.changeType === 'function') {\n var _trackCodec;\n const {\n id,\n codec,\n levelCodec,\n container,\n metadata\n } = data[trackName];\n const currentCodecFull = pickMostCompleteCodecName(track.codec, track.levelCodec);\n const currentCodec = currentCodecFull == null ? void 0 : currentCodecFull.replace(VIDEO_CODEC_PROFILE_REPLACE, '$1');\n let trackCodec = pickMostCompleteCodecName(codec, levelCodec);\n const nextCodec = (_trackCodec = trackCodec) == null ? void 0 : _trackCodec.replace(VIDEO_CODEC_PROFILE_REPLACE, '$1');\n if (trackCodec && currentCodec !== nextCodec) {\n if (trackName.slice(0, 5) === 'audio') {\n trackCodec = getCodecCompatibleName(trackCodec, this.appendSource);\n }\n const mimeType = `${container};codecs=${trackCodec}`;\n this.appendChangeType(trackName, mimeType);\n this.log(`switching codec ${currentCodecFull} to ${trackCodec}`);\n this.tracks[trackName] = {\n buffer: track.buffer,\n codec,\n container,\n levelCodec,\n metadata,\n id\n };\n }\n }\n } else {\n // if source buffer(s) not created yet, appended buffer tracks in this.pendingTracks\n this.pendingTracks[trackName] = data[trackName];\n }\n });\n\n // if sourcebuffers already created, do nothing ...\n if (sourceBufferCount) {\n return;\n }\n const bufferCodecEventsExpected = Math.max(this.bufferCodecEventsExpected - 1, 0);\n if (this.bufferCodecEventsExpected !== bufferCodecEventsExpected) {\n this.log(`${bufferCodecEventsExpected} bufferCodec event(s) expected ${trackNames.join(',')}`);\n this.bufferCodecEventsExpected = bufferCodecEventsExpected;\n }\n if (this.mediaSource && this.mediaSource.readyState === 'open') {\n this.checkPendingTracks();\n }\n }\n appendChangeType(type, mimeType) {\n const {\n operationQueue\n } = this;\n const operation = {\n execute: () => {\n const sb = this.sourceBuffer[type];\n if (sb) {\n this.log(`changing ${type} sourceBuffer type to ${mimeType}`);\n sb.changeType(mimeType);\n }\n operationQueue.shiftAndExecuteNext(type);\n },\n onStart: () => {},\n onComplete: () => {},\n onError: error => {\n this.warn(`Failed to change ${type} SourceBuffer type`, error);\n }\n };\n operationQueue.append(operation, type, !!this.pendingTracks[type]);\n }\n onBufferAppending(event, eventData) {\n const {\n hls,\n operationQueue,\n tracks\n } = this;\n const {\n data,\n type,\n frag,\n part,\n chunkMeta\n } = eventData;\n const chunkStats = chunkMeta.buffering[type];\n const bufferAppendingStart = self.performance.now();\n chunkStats.start = bufferAppendingStart;\n const fragBuffering = frag.stats.buffering;\n const partBuffering = part ? part.stats.buffering : null;\n if (fragBuffering.start === 0) {\n fragBuffering.start = bufferAppendingStart;\n }\n if (partBuffering && partBuffering.start === 0) {\n partBuffering.start = bufferAppendingStart;\n }\n\n // TODO: Only update timestampOffset when audio/mpeg fragment or part is not contiguous with previously appended\n // Adjusting `SourceBuffer.timestampOffset` (desired point in the timeline where the next frames should be appended)\n // in Chrome browser when we detect MPEG audio container and time delta between level PTS and `SourceBuffer.timestampOffset`\n // is greater than 100ms (this is enough to handle seek for VOD or level change for LIVE videos).\n // More info here: https://github.com/video-dev/hls.js/issues/332#issuecomment-257986486\n const audioTrack = tracks.audio;\n let checkTimestampOffset = false;\n if (type === 'audio' && (audioTrack == null ? void 0 : audioTrack.container) === 'audio/mpeg') {\n checkTimestampOffset = !this.lastMpegAudioChunk || chunkMeta.id === 1 || this.lastMpegAudioChunk.sn !== chunkMeta.sn;\n this.lastMpegAudioChunk = chunkMeta;\n }\n const fragStart = frag.start;\n const operation = {\n execute: () => {\n chunkStats.executeStart = self.performance.now();\n if (checkTimestampOffset) {\n const sb = this.sourceBuffer[type];\n if (sb) {\n const delta = fragStart - sb.timestampOffset;\n if (Math.abs(delta) >= 0.1) {\n this.log(`Updating audio SourceBuffer timestampOffset to ${fragStart} (delta: ${delta}) sn: ${frag.sn})`);\n sb.timestampOffset = fragStart;\n }\n }\n }\n this.appendExecutor(data, type);\n },\n onStart: () => {\n // logger.debug(`[buffer-controller]: ${type} SourceBuffer updatestart`);\n },\n onComplete: () => {\n // logger.debug(`[buffer-controller]: ${type} SourceBuffer updateend`);\n const end = self.performance.now();\n chunkStats.executeEnd = chunkStats.end = end;\n if (fragBuffering.first === 0) {\n fragBuffering.first = end;\n }\n if (partBuffering && partBuffering.first === 0) {\n partBuffering.first = end;\n }\n const {\n sourceBuffer\n } = this;\n const timeRanges = {};\n for (const type in sourceBuffer) {\n timeRanges[type] = BufferHelper.getBuffered(sourceBuffer[type]);\n }\n this.appendErrors[type] = 0;\n if (type === 'audio' || type === 'video') {\n this.appendErrors.audiovideo = 0;\n } else {\n this.appendErrors.audio = 0;\n this.appendErrors.video = 0;\n }\n this.hls.trigger(Events.BUFFER_APPENDED, {\n type,\n frag,\n part,\n chunkMeta,\n parent: frag.type,\n timeRanges\n });\n },\n onError: error => {\n // in case any error occured while appending, put back segment in segments table\n const event = {\n type: ErrorTypes.MEDIA_ERROR,\n parent: frag.type,\n details: ErrorDetails.BUFFER_APPEND_ERROR,\n sourceBufferName: type,\n frag,\n part,\n chunkMeta,\n error,\n err: error,\n fatal: false\n };\n if (error.code === DOMException.QUOTA_EXCEEDED_ERR) {\n // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror\n // let's stop appending any segments, and report BUFFER_FULL_ERROR error\n event.details = ErrorDetails.BUFFER_FULL_ERROR;\n } else {\n const appendErrorCount = ++this.appendErrors[type];\n event.details = ErrorDetails.BUFFER_APPEND_ERROR;\n /* with UHD content, we could get loop of quota exceeded error until\n browser is able to evict some data from sourcebuffer. Retrying can help recover.\n */\n this.warn(`Failed ${appendErrorCount}/${hls.config.appendErrorMaxRetry} times to append segment in \"${type}\" sourceBuffer`);\n if (appendErrorCount >= hls.config.appendErrorMaxRetry) {\n event.fatal = true;\n }\n }\n hls.trigger(Events.ERROR, event);\n }\n };\n operationQueue.append(operation, type, !!this.pendingTracks[type]);\n }\n onBufferFlushing(event, data) {\n const {\n operationQueue\n } = this;\n const flushOperation = type => ({\n execute: this.removeExecutor.bind(this, type, data.startOffset, data.endOffset),\n onStart: () => {\n // logger.debug(`[buffer-controller]: Started flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n },\n onComplete: () => {\n // logger.debug(`[buffer-controller]: Finished flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n this.hls.trigger(Events.BUFFER_FLUSHED, {\n type\n });\n },\n onError: error => {\n this.warn(`Failed to remove from ${type} SourceBuffer`, error);\n }\n });\n if (data.type) {\n operationQueue.append(flushOperation(data.type), data.type);\n } else {\n this.getSourceBufferTypes().forEach(type => {\n operationQueue.append(flushOperation(type), type);\n });\n }\n }\n onFragParsed(event, data) {\n const {\n frag,\n part\n } = data;\n const buffersAppendedTo = [];\n const elementaryStreams = part ? part.elementaryStreams : frag.elementaryStreams;\n if (elementaryStreams[ElementaryStreamTypes.AUDIOVIDEO]) {\n buffersAppendedTo.push('audiovideo');\n } else {\n if (elementaryStreams[ElementaryStreamTypes.AUDIO]) {\n buffersAppendedTo.push('audio');\n }\n if (elementaryStreams[ElementaryStreamTypes.VIDEO]) {\n buffersAppendedTo.push('video');\n }\n }\n const onUnblocked = () => {\n const now = self.performance.now();\n frag.stats.buffering.end = now;\n if (part) {\n part.stats.buffering.end = now;\n }\n const stats = part ? part.stats : frag.stats;\n this.hls.trigger(Events.FRAG_BUFFERED, {\n frag,\n part,\n stats,\n id: frag.type\n });\n };\n if (buffersAppendedTo.length === 0) {\n this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${frag.type} level: ${frag.level} sn: ${frag.sn}`);\n }\n this.blockBuffers(onUnblocked, buffersAppendedTo);\n }\n onFragChanged(event, data) {\n this.trimBuffers();\n }\n\n // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos()\n // an undefined data.type will mark all buffers as EOS.\n onBufferEos(event, data) {\n const ended = this.getSourceBufferTypes().reduce((acc, type) => {\n const sb = this.sourceBuffer[type];\n if (sb && (!data.type || data.type === type)) {\n sb.ending = true;\n if (!sb.ended) {\n sb.ended = true;\n this.log(`${type} sourceBuffer now EOS`);\n }\n }\n return acc && !!(!sb || sb.ended);\n }, true);\n if (ended) {\n this.log(`Queueing mediaSource.endOfStream()`);\n this.blockBuffers(() => {\n this.getSourceBufferTypes().forEach(type => {\n const sb = this.sourceBuffer[type];\n if (sb) {\n sb.ending = false;\n }\n });\n const {\n mediaSource\n } = this;\n if (!mediaSource || mediaSource.readyState !== 'open') {\n if (mediaSource) {\n this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${mediaSource.readyState}`);\n }\n return;\n }\n this.log(`Calling mediaSource.endOfStream()`);\n // Allow this to throw and be caught by the enqueueing function\n mediaSource.endOfStream();\n });\n }\n }\n onLevelUpdated(event, {\n details\n }) {\n if (!details.fragments.length) {\n return;\n }\n this.details = details;\n if (this.getSourceBufferTypes().length) {\n this.blockBuffers(this.updateMediaElementDuration.bind(this));\n } else {\n this.updateMediaElementDuration();\n }\n }\n trimBuffers() {\n const {\n hls,\n details,\n media\n } = this;\n if (!media || details === null) {\n return;\n }\n const sourceBufferTypes = this.getSourceBufferTypes();\n if (!sourceBufferTypes.length) {\n return;\n }\n const config = hls.config;\n const currentTime = media.currentTime;\n const targetDuration = details.levelTargetDuration;\n\n // Support for deprecated liveBackBufferLength\n const backBufferLength = details.live && config.liveBackBufferLength !== null ? config.liveBackBufferLength : config.backBufferLength;\n if (isFiniteNumber(backBufferLength) && backBufferLength > 0) {\n const maxBackBufferLength = Math.max(backBufferLength, targetDuration);\n const targetBackBufferPosition = Math.floor(currentTime / targetDuration) * targetDuration - maxBackBufferLength;\n this.flushBackBuffer(currentTime, targetDuration, targetBackBufferPosition);\n }\n if (isFiniteNumber(config.frontBufferFlushThreshold) && config.frontBufferFlushThreshold > 0) {\n const frontBufferLength = Math.max(config.maxBufferLength, config.frontBufferFlushThreshold);\n const maxFrontBufferLength = Math.max(frontBufferLength, targetDuration);\n const targetFrontBufferPosition = Math.floor(currentTime / targetDuration) * targetDuration + maxFrontBufferLength;\n this.flushFrontBuffer(currentTime, targetDuration, targetFrontBufferPosition);\n }\n }\n flushBackBuffer(currentTime, targetDuration, targetBackBufferPosition) {\n const {\n details,\n sourceBuffer\n } = this;\n const sourceBufferTypes = this.getSourceBufferTypes();\n sourceBufferTypes.forEach(type => {\n const sb = sourceBuffer[type];\n if (sb) {\n const buffered = BufferHelper.getBuffered(sb);\n // when target buffer start exceeds actual buffer start\n if (buffered.length > 0 && targetBackBufferPosition > buffered.start(0)) {\n this.hls.trigger(Events.BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition\n });\n\n // Support for deprecated event:\n if (details != null && details.live) {\n this.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition\n });\n } else if (sb.ended && buffered.end(buffered.length - 1) - currentTime < targetDuration * 2) {\n this.log(`Cannot flush ${type} back buffer while SourceBuffer is in ended state`);\n return;\n }\n this.hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: targetBackBufferPosition,\n type\n });\n }\n }\n });\n }\n flushFrontBuffer(currentTime, targetDuration, targetFrontBufferPosition) {\n const {\n sourceBuffer\n } = this;\n const sourceBufferTypes = this.getSourceBufferTypes();\n sourceBufferTypes.forEach(type => {\n const sb = sourceBuffer[type];\n if (sb) {\n const buffered = BufferHelper.getBuffered(sb);\n const numBufferedRanges = buffered.length;\n // The buffer is either empty or contiguous\n if (numBufferedRanges < 2) {\n return;\n }\n const bufferStart = buffered.start(numBufferedRanges - 1);\n const bufferEnd = buffered.end(numBufferedRanges - 1);\n // No flush if we can tolerate the current buffer length or the current buffer range we would flush is contiguous with current position\n if (targetFrontBufferPosition > bufferStart || currentTime >= bufferStart && currentTime <= bufferEnd) {\n return;\n } else if (sb.ended && currentTime - bufferEnd < 2 * targetDuration) {\n this.log(`Cannot flush ${type} front buffer while SourceBuffer is in ended state`);\n return;\n }\n this.hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: bufferStart,\n endOffset: Infinity,\n type\n });\n }\n });\n }\n\n /**\n * Update Media Source duration to current level duration or override to Infinity if configuration parameter\n * 'liveDurationInfinity` is set to `true`\n * More details: https://github.com/video-dev/hls.js/issues/355\n */\n updateMediaElementDuration() {\n if (!this.details || !this.media || !this.mediaSource || this.mediaSource.readyState !== 'open') {\n return;\n }\n const {\n details,\n hls,\n media,\n mediaSource\n } = this;\n const levelDuration = details.fragments[0].start + details.totalduration;\n const mediaDuration = media.duration;\n const msDuration = isFiniteNumber(mediaSource.duration) ? mediaSource.duration : 0;\n if (details.live && hls.config.liveDurationInfinity) {\n // Override duration to Infinity\n mediaSource.duration = Infinity;\n this.updateSeekableRange(details);\n } else if (levelDuration > msDuration && levelDuration > mediaDuration || !isFiniteNumber(mediaDuration)) {\n // levelDuration was the last value we set.\n // not using mediaSource.duration as the browser may tweak this value\n // only update Media Source duration if its value increase, this is to avoid\n // flushing already buffered portion when switching between quality level\n this.log(`Updating Media Source duration to ${levelDuration.toFixed(3)}`);\n mediaSource.duration = levelDuration;\n }\n }\n updateSeekableRange(levelDetails) {\n const mediaSource = this.mediaSource;\n const fragments = levelDetails.fragments;\n const len = fragments.length;\n if (len && levelDetails.live && mediaSource != null && mediaSource.setLiveSeekableRange) {\n const start = Math.max(0, fragments[0].start);\n const end = Math.max(start, start + levelDetails.totalduration);\n this.log(`Media Source duration is set to ${mediaSource.duration}. Setting seekable range to ${start}-${end}.`);\n mediaSource.setLiveSeekableRange(start, end);\n }\n }\n checkPendingTracks() {\n const {\n bufferCodecEventsExpected,\n operationQueue,\n pendingTracks\n } = this;\n\n // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.\n // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after\n // data has been appended to existing ones.\n // 2 tracks is the max (one for audio, one for video). If we've reach this max go ahead and create the buffers.\n const pendingTracksCount = Object.keys(pendingTracks).length;\n if (pendingTracksCount && (!bufferCodecEventsExpected || pendingTracksCount === 2 || 'audiovideo' in pendingTracks)) {\n // ok, let's create them now !\n this.createSourceBuffers(pendingTracks);\n this.pendingTracks = {};\n // append any pending segments now !\n const buffers = this.getSourceBufferTypes();\n if (buffers.length) {\n this.hls.trigger(Events.BUFFER_CREATED, {\n tracks: this.tracks\n });\n buffers.forEach(type => {\n operationQueue.executeNext(type);\n });\n } else {\n const error = new Error('could not create source buffer for media codec(s)');\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n error,\n reason: error.message\n });\n }\n }\n }\n createSourceBuffers(tracks) {\n const {\n sourceBuffer,\n mediaSource\n } = this;\n if (!mediaSource) {\n throw Error('createSourceBuffers called when mediaSource was null');\n }\n for (const trackName in tracks) {\n if (!sourceBuffer[trackName]) {\n var _track$levelCodec;\n const track = tracks[trackName];\n if (!track) {\n throw Error(`source buffer exists for track ${trackName}, however track does not`);\n }\n // use levelCodec as first priority unless it contains multiple comma-separated codec values\n let codec = ((_track$levelCodec = track.levelCodec) == null ? void 0 : _track$levelCodec.indexOf(',')) === -1 ? track.levelCodec : track.codec;\n if (codec) {\n if (trackName.slice(0, 5) === 'audio') {\n codec = getCodecCompatibleName(codec, this.appendSource);\n }\n }\n const mimeType = `${track.container};codecs=${codec}`;\n this.log(`creating sourceBuffer(${mimeType})`);\n try {\n const sb = sourceBuffer[trackName] = mediaSource.addSourceBuffer(mimeType);\n const sbName = trackName;\n this.addBufferListener(sbName, 'updatestart', this._onSBUpdateStart);\n this.addBufferListener(sbName, 'updateend', this._onSBUpdateEnd);\n this.addBufferListener(sbName, 'error', this._onSBUpdateError);\n // ManagedSourceBuffer bufferedchange event\n if (this.appendSource) {\n this.addBufferListener(sbName, 'bufferedchange', (type, event) => {\n // If media was ejected check for a change. Added ranges are redundant with changes on 'updateend' event.\n const removedRanges = event.removedRanges;\n if (removedRanges != null && removedRanges.length) {\n this.hls.trigger(Events.BUFFER_FLUSHED, {\n type: trackName\n });\n }\n });\n }\n this.tracks[trackName] = {\n buffer: sb,\n codec: codec,\n container: track.container,\n levelCodec: track.levelCodec,\n metadata: track.metadata,\n id: track.id\n };\n } catch (err) {\n this.error(`error while trying to add sourceBuffer: ${err.message}`);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_ADD_CODEC_ERROR,\n fatal: false,\n error: err,\n sourceBufferName: trackName,\n mimeType: mimeType\n });\n }\n }\n }\n }\n get mediaSrc() {\n var _this$media, _this$media$querySele;\n const media = ((_this$media = this.media) == null ? void 0 : (_this$media$querySele = _this$media.querySelector) == null ? void 0 : _this$media$querySele.call(_this$media, 'source')) || this.media;\n return media == null ? void 0 : media.src;\n }\n _onSBUpdateStart(type) {\n const {\n operationQueue\n } = this;\n const operation = operationQueue.current(type);\n operation.onStart();\n }\n _onSBUpdateEnd(type) {\n var _this$mediaSource2;\n if (((_this$mediaSource2 = this.mediaSource) == null ? void 0 : _this$mediaSource2.readyState) === 'closed') {\n this.resetBuffer(type);\n return;\n }\n const {\n operationQueue\n } = this;\n const operation = operationQueue.current(type);\n operation.onComplete();\n operationQueue.shiftAndExecuteNext(type);\n }\n _onSBUpdateError(type, event) {\n var _this$mediaSource3;\n const error = new Error(`${type} SourceBuffer error. MediaSource readyState: ${(_this$mediaSource3 = this.mediaSource) == null ? void 0 : _this$mediaSource3.readyState}`);\n this.error(`${error}`, event);\n // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n // SourceBuffer errors are not necessarily fatal; if so, the HTMLMediaElement will fire an error event\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_APPENDING_ERROR,\n sourceBufferName: type,\n error,\n fatal: false\n });\n // updateend is always fired after error, so we'll allow that to shift the current operation off of the queue\n const operation = this.operationQueue.current(type);\n if (operation) {\n operation.onError(error);\n }\n }\n\n // This method must result in an updateend event; if remove is not called, _onSBUpdateEnd must be called manually\n removeExecutor(type, startOffset, endOffset) {\n const {\n media,\n mediaSource,\n operationQueue,\n sourceBuffer\n } = this;\n const sb = sourceBuffer[type];\n if (!media || !mediaSource || !sb) {\n this.warn(`Attempting to remove from the ${type} SourceBuffer, but it does not exist`);\n operationQueue.shiftAndExecuteNext(type);\n return;\n }\n const mediaDuration = isFiniteNumber(media.duration) ? media.duration : Infinity;\n const msDuration = isFiniteNumber(mediaSource.duration) ? mediaSource.duration : Infinity;\n const removeStart = Math.max(0, startOffset);\n const removeEnd = Math.min(endOffset, mediaDuration, msDuration);\n if (removeEnd > removeStart && (!sb.ending || sb.ended)) {\n sb.ended = false;\n this.log(`Removing [${removeStart},${removeEnd}] from the ${type} SourceBuffer`);\n sb.remove(removeStart, removeEnd);\n } else {\n // Cycle the queue\n operationQueue.shiftAndExecuteNext(type);\n }\n }\n\n // This method must result in an updateend event; if append is not called, _onSBUpdateEnd must be called manually\n appendExecutor(data, type) {\n const sb = this.sourceBuffer[type];\n if (!sb) {\n if (!this.pendingTracks[type]) {\n throw new Error(`Attempting to append to the ${type} SourceBuffer, but it does not exist`);\n }\n return;\n }\n sb.ended = false;\n sb.appendBuffer(data);\n }\n\n // Enqueues an operation to each SourceBuffer queue which, upon execution, resolves a promise. When all promises\n // resolve, the onUnblocked function is executed. Functions calling this method do not need to unblock the queue\n // upon completion, since we already do it here\n blockBuffers(onUnblocked, buffers = this.getSourceBufferTypes()) {\n if (!buffers.length) {\n this.log('Blocking operation requested, but no SourceBuffers exist');\n Promise.resolve().then(onUnblocked);\n return;\n }\n const {\n operationQueue\n } = this;\n\n // logger.debug(`[buffer-controller]: Blocking ${buffers} SourceBuffer`);\n const blockingOperations = buffers.map(type => operationQueue.appendBlocker(type));\n Promise.all(blockingOperations).then(() => {\n // logger.debug(`[buffer-controller]: Blocking operation resolved; unblocking ${buffers} SourceBuffer`);\n onUnblocked();\n buffers.forEach(type => {\n const sb = this.sourceBuffer[type];\n // Only cycle the queue if the SB is not updating. There's a bug in Chrome which sets the SB updating flag to\n // true when changing the MediaSource duration (https://bugs.chromium.org/p/chromium/issues/detail?id=959359&can=2&q=mediasource%20duration)\n // While this is a workaround, it's probably useful to have around\n if (!(sb != null && sb.updating)) {\n operationQueue.shiftAndExecuteNext(type);\n }\n });\n });\n }\n getSourceBufferTypes() {\n return Object.keys(this.sourceBuffer);\n }\n addBufferListener(type, event, fn) {\n const buffer = this.sourceBuffer[type];\n if (!buffer) {\n return;\n }\n const listener = fn.bind(this, type);\n this.listeners[type].push({\n event,\n listener\n });\n buffer.addEventListener(event, listener);\n }\n removeBufferListeners(type) {\n const buffer = this.sourceBuffer[type];\n if (!buffer) {\n return;\n }\n this.listeners[type].forEach(l => {\n buffer.removeEventListener(l.event, l.listener);\n });\n }\n}\nfunction removeSourceChildren(node) {\n const sourceChildren = node.querySelectorAll('source');\n [].slice.call(sourceChildren).forEach(source => {\n node.removeChild(source);\n });\n}\nfunction addSource(media, url) {\n const source = self.document.createElement('source');\n source.type = 'video/mp4';\n source.src = url;\n media.appendChild(source);\n}\n\n/**\n *\n * This code was ported from the dash.js project at:\n * https://github.com/Dash-Industry-Forum/dash.js/blob/development/externals/cea608-parser.js\n * https://github.com/Dash-Industry-Forum/dash.js/commit/8269b26a761e0853bb21d78780ed945144ecdd4d#diff-71bc295a2d6b6b7093a1d3290d53a4b2\n *\n * The original copyright appears below:\n *\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2015-2016, DASH Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * 2. Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * Exceptions from regular ASCII. CodePoints are mapped to UTF-16 codes\n */\n\nconst specialCea608CharsCodes = {\n 0x2a: 0xe1,\n // lowercase a, acute accent\n 0x5c: 0xe9,\n // lowercase e, acute accent\n 0x5e: 0xed,\n // lowercase i, acute accent\n 0x5f: 0xf3,\n // lowercase o, acute accent\n 0x60: 0xfa,\n // lowercase u, acute accent\n 0x7b: 0xe7,\n // lowercase c with cedilla\n 0x7c: 0xf7,\n // division symbol\n 0x7d: 0xd1,\n // uppercase N tilde\n 0x7e: 0xf1,\n // lowercase n tilde\n 0x7f: 0x2588,\n // Full block\n // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F\n // THIS MEANS THAT \\x50 MUST BE ADDED TO THE VALUES\n 0x80: 0xae,\n // Registered symbol (R)\n 0x81: 0xb0,\n // degree sign\n 0x82: 0xbd,\n // 1/2 symbol\n 0x83: 0xbf,\n // Inverted (open) question mark\n 0x84: 0x2122,\n // Trademark symbol (TM)\n 0x85: 0xa2,\n // Cents symbol\n 0x86: 0xa3,\n // Pounds sterling\n 0x87: 0x266a,\n // Music 8'th note\n 0x88: 0xe0,\n // lowercase a, grave accent\n 0x89: 0x20,\n // transparent space (regular)\n 0x8a: 0xe8,\n // lowercase e, grave accent\n 0x8b: 0xe2,\n // lowercase a, circumflex accent\n 0x8c: 0xea,\n // lowercase e, circumflex accent\n 0x8d: 0xee,\n // lowercase i, circumflex accent\n 0x8e: 0xf4,\n // lowercase o, circumflex accent\n 0x8f: 0xfb,\n // lowercase u, circumflex accent\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F\n 0x90: 0xc1,\n // capital letter A with acute\n 0x91: 0xc9,\n // capital letter E with acute\n 0x92: 0xd3,\n // capital letter O with acute\n 0x93: 0xda,\n // capital letter U with acute\n 0x94: 0xdc,\n // capital letter U with diaresis\n 0x95: 0xfc,\n // lowercase letter U with diaeresis\n 0x96: 0x2018,\n // opening single quote\n 0x97: 0xa1,\n // inverted exclamation mark\n 0x98: 0x2a,\n // asterisk\n 0x99: 0x2019,\n // closing single quote\n 0x9a: 0x2501,\n // box drawings heavy horizontal\n 0x9b: 0xa9,\n // copyright sign\n 0x9c: 0x2120,\n // Service mark\n 0x9d: 0x2022,\n // (round) bullet\n 0x9e: 0x201c,\n // Left double quotation mark\n 0x9f: 0x201d,\n // Right double quotation mark\n 0xa0: 0xc0,\n // uppercase A, grave accent\n 0xa1: 0xc2,\n // uppercase A, circumflex\n 0xa2: 0xc7,\n // uppercase C with cedilla\n 0xa3: 0xc8,\n // uppercase E, grave accent\n 0xa4: 0xca,\n // uppercase E, circumflex\n 0xa5: 0xcb,\n // capital letter E with diaresis\n 0xa6: 0xeb,\n // lowercase letter e with diaresis\n 0xa7: 0xce,\n // uppercase I, circumflex\n 0xa8: 0xcf,\n // uppercase I, with diaresis\n 0xa9: 0xef,\n // lowercase i, with diaresis\n 0xaa: 0xd4,\n // uppercase O, circumflex\n 0xab: 0xd9,\n // uppercase U, grave accent\n 0xac: 0xf9,\n // lowercase u, grave accent\n 0xad: 0xdb,\n // uppercase U, circumflex\n 0xae: 0xab,\n // left-pointing double angle quotation mark\n 0xaf: 0xbb,\n // right-pointing double angle quotation mark\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F\n 0xb0: 0xc3,\n // Uppercase A, tilde\n 0xb1: 0xe3,\n // Lowercase a, tilde\n 0xb2: 0xcd,\n // Uppercase I, acute accent\n 0xb3: 0xcc,\n // Uppercase I, grave accent\n 0xb4: 0xec,\n // Lowercase i, grave accent\n 0xb5: 0xd2,\n // Uppercase O, grave accent\n 0xb6: 0xf2,\n // Lowercase o, grave accent\n 0xb7: 0xd5,\n // Uppercase O, tilde\n 0xb8: 0xf5,\n // Lowercase o, tilde\n 0xb9: 0x7b,\n // Open curly brace\n 0xba: 0x7d,\n // Closing curly brace\n 0xbb: 0x5c,\n // Backslash\n 0xbc: 0x5e,\n // Caret\n 0xbd: 0x5f,\n // Underscore\n 0xbe: 0x7c,\n // Pipe (vertical line)\n 0xbf: 0x223c,\n // Tilde operator\n 0xc0: 0xc4,\n // Uppercase A, umlaut\n 0xc1: 0xe4,\n // Lowercase A, umlaut\n 0xc2: 0xd6,\n // Uppercase O, umlaut\n 0xc3: 0xf6,\n // Lowercase o, umlaut\n 0xc4: 0xdf,\n // Esszett (sharp S)\n 0xc5: 0xa5,\n // Yen symbol\n 0xc6: 0xa4,\n // Generic currency sign\n 0xc7: 0x2503,\n // Box drawings heavy vertical\n 0xc8: 0xc5,\n // Uppercase A, ring\n 0xc9: 0xe5,\n // Lowercase A, ring\n 0xca: 0xd8,\n // Uppercase O, stroke\n 0xcb: 0xf8,\n // Lowercase o, strok\n 0xcc: 0x250f,\n // Box drawings heavy down and right\n 0xcd: 0x2513,\n // Box drawings heavy down and left\n 0xce: 0x2517,\n // Box drawings heavy up and right\n 0xcf: 0x251b // Box drawings heavy up and left\n};\n\n/**\n * Utils\n */\nconst getCharForByte = byte => String.fromCharCode(specialCea608CharsCodes[byte] || byte);\nconst NR_ROWS = 15;\nconst NR_COLS = 100;\n// Tables to look up row from PAC data\nconst rowsLowCh1 = {\n 0x11: 1,\n 0x12: 3,\n 0x15: 5,\n 0x16: 7,\n 0x17: 9,\n 0x10: 11,\n 0x13: 12,\n 0x14: 14\n};\nconst rowsHighCh1 = {\n 0x11: 2,\n 0x12: 4,\n 0x15: 6,\n 0x16: 8,\n 0x17: 10,\n 0x13: 13,\n 0x14: 15\n};\nconst rowsLowCh2 = {\n 0x19: 1,\n 0x1a: 3,\n 0x1d: 5,\n 0x1e: 7,\n 0x1f: 9,\n 0x18: 11,\n 0x1b: 12,\n 0x1c: 14\n};\nconst rowsHighCh2 = {\n 0x19: 2,\n 0x1a: 4,\n 0x1d: 6,\n 0x1e: 8,\n 0x1f: 10,\n 0x1b: 13,\n 0x1c: 15\n};\nconst backgroundColors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'black', 'transparent'];\nclass CaptionsLogger {\n constructor() {\n this.time = null;\n this.verboseLevel = 0;\n }\n log(severity, msg) {\n if (this.verboseLevel >= severity) {\n const m = typeof msg === 'function' ? msg() : msg;\n logger.log(`${this.time} [${severity}] ${m}`);\n }\n }\n}\nconst numArrayToHexArray = function numArrayToHexArray(numArray) {\n const hexArray = [];\n for (let j = 0; j < numArray.length; j++) {\n hexArray.push(numArray[j].toString(16));\n }\n return hexArray;\n};\nclass PenState {\n constructor() {\n this.foreground = 'white';\n this.underline = false;\n this.italics = false;\n this.background = 'black';\n this.flash = false;\n }\n reset() {\n this.foreground = 'white';\n this.underline = false;\n this.italics = false;\n this.background = 'black';\n this.flash = false;\n }\n setStyles(styles) {\n const attribs = ['foreground', 'underline', 'italics', 'background', 'flash'];\n for (let i = 0; i < attribs.length; i++) {\n const style = attribs[i];\n if (styles.hasOwnProperty(style)) {\n this[style] = styles[style];\n }\n }\n }\n isDefault() {\n return this.foreground === 'white' && !this.underline && !this.italics && this.background === 'black' && !this.flash;\n }\n equals(other) {\n return this.foreground === other.foreground && this.underline === other.underline && this.italics === other.italics && this.background === other.background && this.flash === other.flash;\n }\n copy(newPenState) {\n this.foreground = newPenState.foreground;\n this.underline = newPenState.underline;\n this.italics = newPenState.italics;\n this.background = newPenState.background;\n this.flash = newPenState.flash;\n }\n toString() {\n return 'color=' + this.foreground + ', underline=' + this.underline + ', italics=' + this.italics + ', background=' + this.background + ', flash=' + this.flash;\n }\n}\n\n/**\n * Unicode character with styling and background.\n * @constructor\n */\nclass StyledUnicodeChar {\n constructor() {\n this.uchar = ' ';\n this.penState = new PenState();\n }\n reset() {\n this.uchar = ' ';\n this.penState.reset();\n }\n setChar(uchar, newPenState) {\n this.uchar = uchar;\n this.penState.copy(newPenState);\n }\n setPenState(newPenState) {\n this.penState.copy(newPenState);\n }\n equals(other) {\n return this.uchar === other.uchar && this.penState.equals(other.penState);\n }\n copy(newChar) {\n this.uchar = newChar.uchar;\n this.penState.copy(newChar.penState);\n }\n isEmpty() {\n return this.uchar === ' ' && this.penState.isDefault();\n }\n}\n\n/**\n * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.\n * @constructor\n */\nclass Row {\n constructor(logger) {\n this.chars = [];\n this.pos = 0;\n this.currPenState = new PenState();\n this.cueStartTime = null;\n this.logger = void 0;\n for (let i = 0; i < NR_COLS; i++) {\n this.chars.push(new StyledUnicodeChar());\n }\n this.logger = logger;\n }\n equals(other) {\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].equals(other.chars[i])) {\n return false;\n }\n }\n return true;\n }\n copy(other) {\n for (let i = 0; i < NR_COLS; i++) {\n this.chars[i].copy(other.chars[i]);\n }\n }\n isEmpty() {\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n\n /**\n * Set the cursor to a valid column.\n */\n setCursor(absPos) {\n if (this.pos !== absPos) {\n this.pos = absPos;\n }\n if (this.pos < 0) {\n this.logger.log(3, 'Negative cursor position ' + this.pos);\n this.pos = 0;\n } else if (this.pos > NR_COLS) {\n this.logger.log(3, 'Too large cursor position ' + this.pos);\n this.pos = NR_COLS;\n }\n }\n\n /**\n * Move the cursor relative to current position.\n */\n moveCursor(relPos) {\n const newPos = this.pos + relPos;\n if (relPos > 1) {\n for (let i = this.pos + 1; i < newPos + 1; i++) {\n this.chars[i].setPenState(this.currPenState);\n }\n }\n this.setCursor(newPos);\n }\n\n /**\n * Backspace, move one step back and clear character.\n */\n backSpace() {\n this.moveCursor(-1);\n this.chars[this.pos].setChar(' ', this.currPenState);\n }\n insertChar(byte) {\n if (byte >= 0x90) {\n // Extended char\n this.backSpace();\n }\n const char = getCharForByte(byte);\n if (this.pos >= NR_COLS) {\n this.logger.log(0, () => 'Cannot insert ' + byte.toString(16) + ' (' + char + ') at position ' + this.pos + '. Skipping it!');\n return;\n }\n this.chars[this.pos].setChar(char, this.currPenState);\n this.moveCursor(1);\n }\n clearFromPos(startPos) {\n let i;\n for (i = startPos; i < NR_COLS; i++) {\n this.chars[i].reset();\n }\n }\n clear() {\n this.clearFromPos(0);\n this.pos = 0;\n this.currPenState.reset();\n }\n clearToEndOfRow() {\n this.clearFromPos(this.pos);\n }\n getTextString() {\n const chars = [];\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n const char = this.chars[i].uchar;\n if (char !== ' ') {\n empty = false;\n }\n chars.push(char);\n }\n if (empty) {\n return '';\n } else {\n return chars.join('');\n }\n }\n setPenStyles(styles) {\n this.currPenState.setStyles(styles);\n const currChar = this.chars[this.pos];\n currChar.setPenState(this.currPenState);\n }\n}\n\n/**\n * Keep a CEA-608 screen of 32x15 styled characters\n * @constructor\n */\nclass CaptionScreen {\n constructor(logger) {\n this.rows = [];\n this.currRow = NR_ROWS - 1;\n this.nrRollUpRows = null;\n this.lastOutputScreen = null;\n this.logger = void 0;\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows.push(new Row(logger));\n }\n this.logger = logger;\n }\n reset() {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n this.currRow = NR_ROWS - 1;\n }\n equals(other) {\n let equal = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].equals(other.rows[i])) {\n equal = false;\n break;\n }\n }\n return equal;\n }\n copy(other) {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].copy(other.rows[i]);\n }\n }\n isEmpty() {\n let empty = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n backSpace() {\n const row = this.rows[this.currRow];\n row.backSpace();\n }\n clearToEndOfRow() {\n const row = this.rows[this.currRow];\n row.clearToEndOfRow();\n }\n\n /**\n * Insert a character (without styling) in the current row.\n */\n insertChar(char) {\n const row = this.rows[this.currRow];\n row.insertChar(char);\n }\n setPen(styles) {\n const row = this.rows[this.currRow];\n row.setPenStyles(styles);\n }\n moveCursor(relPos) {\n const row = this.rows[this.currRow];\n row.moveCursor(relPos);\n }\n setCursor(absPos) {\n this.logger.log(2, 'setCursor: ' + absPos);\n const row = this.rows[this.currRow];\n row.setCursor(absPos);\n }\n setPAC(pacData) {\n this.logger.log(2, () => 'pacData = ' + JSON.stringify(pacData));\n let newRow = pacData.row - 1;\n if (this.nrRollUpRows && newRow < this.nrRollUpRows - 1) {\n newRow = this.nrRollUpRows - 1;\n }\n\n // Make sure this only affects Roll-up Captions by checking this.nrRollUpRows\n if (this.nrRollUpRows && this.currRow !== newRow) {\n // clear all rows first\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n\n // Copy this.nrRollUpRows rows from lastOutputScreen and place it in the newRow location\n // topRowIndex - the start of rows to copy (inclusive index)\n const topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n // We only copy if the last position was already shown.\n // We use the cueStartTime value to check this.\n const lastOutputScreen = this.lastOutputScreen;\n if (lastOutputScreen) {\n const prevLineTime = lastOutputScreen.rows[topRowIndex].cueStartTime;\n const time = this.logger.time;\n if (prevLineTime !== null && time !== null && prevLineTime < time) {\n for (let i = 0; i < this.nrRollUpRows; i++) {\n this.rows[newRow - this.nrRollUpRows + i + 1].copy(lastOutputScreen.rows[topRowIndex + i]);\n }\n }\n }\n }\n this.currRow = newRow;\n const row = this.rows[this.currRow];\n if (pacData.indent !== null) {\n const indent = pacData.indent;\n const prevPos = Math.max(indent - 1, 0);\n row.setCursor(pacData.indent);\n pacData.color = row.chars[prevPos].penState.foreground;\n }\n const styles = {\n foreground: pacData.color,\n underline: pacData.underline,\n italics: pacData.italics,\n background: 'black',\n flash: false\n };\n this.setPen(styles);\n }\n\n /**\n * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).\n */\n setBkgData(bkgData) {\n this.logger.log(2, () => 'bkgData = ' + JSON.stringify(bkgData));\n this.backSpace();\n this.setPen(bkgData);\n this.insertChar(0x20); // Space\n }\n setRollUpRows(nrRows) {\n this.nrRollUpRows = nrRows;\n }\n rollUp() {\n if (this.nrRollUpRows === null) {\n this.logger.log(3, 'roll_up but nrRollUpRows not set yet');\n return; // Not properly setup\n }\n this.logger.log(1, () => this.getDisplayText());\n const topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n const topRow = this.rows.splice(topRowIndex, 1)[0];\n topRow.clear();\n this.rows.splice(this.currRow, 0, topRow);\n this.logger.log(2, 'Rolling up');\n // this.logger.log(VerboseLevel.TEXT, this.get_display_text())\n }\n\n /**\n * Get all non-empty rows with as unicode text.\n */\n getDisplayText(asOneRow) {\n asOneRow = asOneRow || false;\n const displayText = [];\n let text = '';\n let rowNr = -1;\n for (let i = 0; i < NR_ROWS; i++) {\n const rowText = this.rows[i].getTextString();\n if (rowText) {\n rowNr = i + 1;\n if (asOneRow) {\n displayText.push('Row ' + rowNr + \": '\" + rowText + \"'\");\n } else {\n displayText.push(rowText.trim());\n }\n }\n }\n if (displayText.length > 0) {\n if (asOneRow) {\n text = '[' + displayText.join(' | ') + ']';\n } else {\n text = displayText.join('\\n');\n }\n }\n return text;\n }\n getTextAndFormat() {\n return this.rows;\n }\n}\n\n// var modes = ['MODE_ROLL-UP', 'MODE_POP-ON', 'MODE_PAINT-ON', 'MODE_TEXT'];\n\nclass Cea608Channel {\n constructor(channelNumber, outputFilter, logger) {\n this.chNr = void 0;\n this.outputFilter = void 0;\n this.mode = void 0;\n this.verbose = void 0;\n this.displayedMemory = void 0;\n this.nonDisplayedMemory = void 0;\n this.lastOutputScreen = void 0;\n this.currRollUpRow = void 0;\n this.writeScreen = void 0;\n this.cueStartTime = void 0;\n this.logger = void 0;\n this.chNr = channelNumber;\n this.outputFilter = outputFilter;\n this.mode = null;\n this.verbose = 0;\n this.displayedMemory = new CaptionScreen(logger);\n this.nonDisplayedMemory = new CaptionScreen(logger);\n this.lastOutputScreen = new CaptionScreen(logger);\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null; // Keeps track of where a cue started.\n this.logger = logger;\n }\n reset() {\n this.mode = null;\n this.displayedMemory.reset();\n this.nonDisplayedMemory.reset();\n this.lastOutputScreen.reset();\n this.outputFilter.reset();\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null;\n }\n getHandler() {\n return this.outputFilter;\n }\n setHandler(newHandler) {\n this.outputFilter = newHandler;\n }\n setPAC(pacData) {\n this.writeScreen.setPAC(pacData);\n }\n setBkgData(bkgData) {\n this.writeScreen.setBkgData(bkgData);\n }\n setMode(newMode) {\n if (newMode === this.mode) {\n return;\n }\n this.mode = newMode;\n this.logger.log(2, () => 'MODE=' + newMode);\n if (this.mode === 'MODE_POP-ON') {\n this.writeScreen = this.nonDisplayedMemory;\n } else {\n this.writeScreen = this.displayedMemory;\n this.writeScreen.reset();\n }\n if (this.mode !== 'MODE_ROLL-UP') {\n this.displayedMemory.nrRollUpRows = null;\n this.nonDisplayedMemory.nrRollUpRows = null;\n }\n this.mode = newMode;\n }\n insertChars(chars) {\n for (let i = 0; i < chars.length; i++) {\n this.writeScreen.insertChar(chars[i]);\n }\n const screen = this.writeScreen === this.displayedMemory ? 'DISP' : 'NON_DISP';\n this.logger.log(2, () => screen + ': ' + this.writeScreen.getDisplayText(true));\n if (this.mode === 'MODE_PAINT-ON' || this.mode === 'MODE_ROLL-UP') {\n this.logger.log(1, () => 'DISPLAYED: ' + this.displayedMemory.getDisplayText(true));\n this.outputDataUpdate();\n }\n }\n ccRCL() {\n // Resume Caption Loading (switch mode to Pop On)\n this.logger.log(2, 'RCL - Resume Caption Loading');\n this.setMode('MODE_POP-ON');\n }\n ccBS() {\n // BackSpace\n this.logger.log(2, 'BS - BackSpace');\n if (this.mode === 'MODE_TEXT') {\n return;\n }\n this.writeScreen.backSpace();\n if (this.writeScreen === this.displayedMemory) {\n this.outputDataUpdate();\n }\n }\n ccAOF() {\n // Reserved (formerly Alarm Off)\n }\n ccAON() {\n // Reserved (formerly Alarm On)\n }\n ccDER() {\n // Delete to End of Row\n this.logger.log(2, 'DER- Delete to End of Row');\n this.writeScreen.clearToEndOfRow();\n this.outputDataUpdate();\n }\n ccRU(nrRows) {\n // Roll-Up Captions-2,3,or 4 Rows\n this.logger.log(2, 'RU(' + nrRows + ') - Roll Up');\n this.writeScreen = this.displayedMemory;\n this.setMode('MODE_ROLL-UP');\n this.writeScreen.setRollUpRows(nrRows);\n }\n ccFON() {\n // Flash On\n this.logger.log(2, 'FON - Flash On');\n this.writeScreen.setPen({\n flash: true\n });\n }\n ccRDC() {\n // Resume Direct Captioning (switch mode to PaintOn)\n this.logger.log(2, 'RDC - Resume Direct Captioning');\n this.setMode('MODE_PAINT-ON');\n }\n ccTR() {\n // Text Restart in text mode (not supported, however)\n this.logger.log(2, 'TR');\n this.setMode('MODE_TEXT');\n }\n ccRTD() {\n // Resume Text Display in Text mode (not supported, however)\n this.logger.log(2, 'RTD');\n this.setMode('MODE_TEXT');\n }\n ccEDM() {\n // Erase Displayed Memory\n this.logger.log(2, 'EDM - Erase Displayed Memory');\n this.displayedMemory.reset();\n this.outputDataUpdate(true);\n }\n ccCR() {\n // Carriage Return\n this.logger.log(2, 'CR - Carriage Return');\n this.writeScreen.rollUp();\n this.outputDataUpdate(true);\n }\n ccENM() {\n // Erase Non-Displayed Memory\n this.logger.log(2, 'ENM - Erase Non-displayed Memory');\n this.nonDisplayedMemory.reset();\n }\n ccEOC() {\n // End of Caption (Flip Memories)\n this.logger.log(2, 'EOC - End Of Caption');\n if (this.mode === 'MODE_POP-ON') {\n const tmp = this.displayedMemory;\n this.displayedMemory = this.nonDisplayedMemory;\n this.nonDisplayedMemory = tmp;\n this.writeScreen = this.nonDisplayedMemory;\n this.logger.log(1, () => 'DISP: ' + this.displayedMemory.getDisplayText());\n }\n this.outputDataUpdate(true);\n }\n ccTO(nrCols) {\n // Tab Offset 1,2, or 3 columns\n this.logger.log(2, 'TO(' + nrCols + ') - Tab Offset');\n this.writeScreen.moveCursor(nrCols);\n }\n ccMIDROW(secondByte) {\n // Parse MIDROW command\n const styles = {\n flash: false\n };\n styles.underline = secondByte % 2 === 1;\n styles.italics = secondByte >= 0x2e;\n if (!styles.italics) {\n const colorIndex = Math.floor(secondByte / 2) - 0x10;\n const colors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta'];\n styles.foreground = colors[colorIndex];\n } else {\n styles.foreground = 'white';\n }\n this.logger.log(2, 'MIDROW: ' + JSON.stringify(styles));\n this.writeScreen.setPen(styles);\n }\n outputDataUpdate(dispatch = false) {\n const time = this.logger.time;\n if (time === null) {\n return;\n }\n if (this.outputFilter) {\n if (this.cueStartTime === null && !this.displayedMemory.isEmpty()) {\n // Start of a new cue\n this.cueStartTime = time;\n } else {\n if (!this.displayedMemory.equals(this.lastOutputScreen)) {\n this.outputFilter.newCue(this.cueStartTime, time, this.lastOutputScreen);\n if (dispatch && this.outputFilter.dispatchCue) {\n this.outputFilter.dispatchCue();\n }\n this.cueStartTime = this.displayedMemory.isEmpty() ? null : time;\n }\n }\n this.lastOutputScreen.copy(this.displayedMemory);\n }\n }\n cueSplitAtTime(t) {\n if (this.outputFilter) {\n if (!this.displayedMemory.isEmpty()) {\n if (this.outputFilter.newCue) {\n this.outputFilter.newCue(this.cueStartTime, t, this.displayedMemory);\n }\n this.cueStartTime = t;\n }\n }\n }\n}\n\n// Will be 1 or 2 when parsing captions\n\nclass Cea608Parser {\n constructor(field, out1, out2) {\n this.channels = void 0;\n this.currentChannel = 0;\n this.cmdHistory = createCmdHistory();\n this.logger = void 0;\n const logger = this.logger = new CaptionsLogger();\n this.channels = [null, new Cea608Channel(field, out1, logger), new Cea608Channel(field + 1, out2, logger)];\n }\n getHandler(channel) {\n return this.channels[channel].getHandler();\n }\n setHandler(channel, newHandler) {\n this.channels[channel].setHandler(newHandler);\n }\n\n /**\n * Add data for time t in forms of list of bytes (unsigned ints). The bytes are treated as pairs.\n */\n addData(time, byteList) {\n this.logger.time = time;\n for (let i = 0; i < byteList.length; i += 2) {\n const a = byteList[i] & 0x7f;\n const b = byteList[i + 1] & 0x7f;\n let cmdFound = false;\n let charsFound = null;\n if (a === 0 && b === 0) {\n continue;\n } else {\n this.logger.log(3, () => '[' + numArrayToHexArray([byteList[i], byteList[i + 1]]) + '] -> (' + numArrayToHexArray([a, b]) + ')');\n }\n const cmdHistory = this.cmdHistory;\n const isControlCode = a >= 0x10 && a <= 0x1f;\n if (isControlCode) {\n // Skip redundant control codes\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n this.logger.log(3, () => 'Repeated command (' + numArrayToHexArray([a, b]) + ') is dropped');\n continue;\n }\n setLastCmd(a, b, this.cmdHistory);\n cmdFound = this.parseCmd(a, b);\n if (!cmdFound) {\n cmdFound = this.parseMidrow(a, b);\n }\n if (!cmdFound) {\n cmdFound = this.parsePAC(a, b);\n }\n if (!cmdFound) {\n cmdFound = this.parseBackgroundAttributes(a, b);\n }\n } else {\n setLastCmd(null, null, cmdHistory);\n }\n if (!cmdFound) {\n charsFound = this.parseChars(a, b);\n if (charsFound) {\n const currChNr = this.currentChannel;\n if (currChNr && currChNr > 0) {\n const channel = this.channels[currChNr];\n channel.insertChars(charsFound);\n } else {\n this.logger.log(2, 'No channel found yet. TEXT-MODE?');\n }\n }\n }\n if (!cmdFound && !charsFound) {\n this.logger.log(2, () => \"Couldn't parse cleaned data \" + numArrayToHexArray([a, b]) + ' orig: ' + numArrayToHexArray([byteList[i], byteList[i + 1]]));\n }\n }\n }\n\n /**\n * Parse Command.\n * @returns True if a command was found\n */\n parseCmd(a, b) {\n const cond1 = (a === 0x14 || a === 0x1c || a === 0x15 || a === 0x1d) && b >= 0x20 && b <= 0x2f;\n const cond2 = (a === 0x17 || a === 0x1f) && b >= 0x21 && b <= 0x23;\n if (!(cond1 || cond2)) {\n return false;\n }\n const chNr = a === 0x14 || a === 0x15 || a === 0x17 ? 1 : 2;\n const channel = this.channels[chNr];\n if (a === 0x14 || a === 0x15 || a === 0x1c || a === 0x1d) {\n if (b === 0x20) {\n channel.ccRCL();\n } else if (b === 0x21) {\n channel.ccBS();\n } else if (b === 0x22) {\n channel.ccAOF();\n } else if (b === 0x23) {\n channel.ccAON();\n } else if (b === 0x24) {\n channel.ccDER();\n } else if (b === 0x25) {\n channel.ccRU(2);\n } else if (b === 0x26) {\n channel.ccRU(3);\n } else if (b === 0x27) {\n channel.ccRU(4);\n } else if (b === 0x28) {\n channel.ccFON();\n } else if (b === 0x29) {\n channel.ccRDC();\n } else if (b === 0x2a) {\n channel.ccTR();\n } else if (b === 0x2b) {\n channel.ccRTD();\n } else if (b === 0x2c) {\n channel.ccEDM();\n } else if (b === 0x2d) {\n channel.ccCR();\n } else if (b === 0x2e) {\n channel.ccENM();\n } else if (b === 0x2f) {\n channel.ccEOC();\n }\n } else {\n // a == 0x17 || a == 0x1F\n channel.ccTO(b - 0x20);\n }\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Parse midrow styling command\n */\n parseMidrow(a, b) {\n let chNr = 0;\n if ((a === 0x11 || a === 0x19) && b >= 0x20 && b <= 0x2f) {\n if (a === 0x11) {\n chNr = 1;\n } else {\n chNr = 2;\n }\n if (chNr !== this.currentChannel) {\n this.logger.log(0, 'Mismatch channel in midrow parsing');\n return false;\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.ccMIDROW(b);\n this.logger.log(3, () => 'MIDROW (' + numArrayToHexArray([a, b]) + ')');\n return true;\n }\n return false;\n }\n\n /**\n * Parse Preable Access Codes (Table 53).\n * @returns {Boolean} Tells if PAC found\n */\n parsePAC(a, b) {\n let row;\n const case1 = (a >= 0x11 && a <= 0x17 || a >= 0x19 && a <= 0x1f) && b >= 0x40 && b <= 0x7f;\n const case2 = (a === 0x10 || a === 0x18) && b >= 0x40 && b <= 0x5f;\n if (!(case1 || case2)) {\n return false;\n }\n const chNr = a <= 0x17 ? 1 : 2;\n if (b >= 0x40 && b <= 0x5f) {\n row = chNr === 1 ? rowsLowCh1[a] : rowsLowCh2[a];\n } else {\n // 0x60 <= b <= 0x7F\n row = chNr === 1 ? rowsHighCh1[a] : rowsHighCh2[a];\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.setPAC(this.interpretPAC(row, b));\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Interpret the second byte of the pac, and return the information.\n * @returns pacData with style parameters\n */\n interpretPAC(row, byte) {\n let pacIndex;\n const pacData = {\n color: null,\n italics: false,\n indent: null,\n underline: false,\n row: row\n };\n if (byte > 0x5f) {\n pacIndex = byte - 0x60;\n } else {\n pacIndex = byte - 0x40;\n }\n pacData.underline = (pacIndex & 1) === 1;\n if (pacIndex <= 0xd) {\n pacData.color = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'white'][Math.floor(pacIndex / 2)];\n } else if (pacIndex <= 0xf) {\n pacData.italics = true;\n pacData.color = 'white';\n } else {\n pacData.indent = Math.floor((pacIndex - 0x10) / 2) * 4;\n }\n return pacData; // Note that row has zero offset. The spec uses 1.\n }\n\n /**\n * Parse characters.\n * @returns An array with 1 to 2 codes corresponding to chars, if found. null otherwise.\n */\n parseChars(a, b) {\n let channelNr;\n let charCodes = null;\n let charCode1 = null;\n if (a >= 0x19) {\n channelNr = 2;\n charCode1 = a - 8;\n } else {\n channelNr = 1;\n charCode1 = a;\n }\n if (charCode1 >= 0x11 && charCode1 <= 0x13) {\n // Special character\n let oneCode;\n if (charCode1 === 0x11) {\n oneCode = b + 0x50;\n } else if (charCode1 === 0x12) {\n oneCode = b + 0x70;\n } else {\n oneCode = b + 0x90;\n }\n this.logger.log(2, () => \"Special char '\" + getCharForByte(oneCode) + \"' in channel \" + channelNr);\n charCodes = [oneCode];\n } else if (a >= 0x20 && a <= 0x7f) {\n charCodes = b === 0 ? [a] : [a, b];\n }\n if (charCodes) {\n this.logger.log(3, () => 'Char codes = ' + numArrayToHexArray(charCodes).join(','));\n }\n return charCodes;\n }\n\n /**\n * Parse extended background attributes as well as new foreground color black.\n * @returns True if background attributes are found\n */\n parseBackgroundAttributes(a, b) {\n const case1 = (a === 0x10 || a === 0x18) && b >= 0x20 && b <= 0x2f;\n const case2 = (a === 0x17 || a === 0x1f) && b >= 0x2d && b <= 0x2f;\n if (!(case1 || case2)) {\n return false;\n }\n let index;\n const bkgData = {};\n if (a === 0x10 || a === 0x18) {\n index = Math.floor((b - 0x20) / 2);\n bkgData.background = backgroundColors[index];\n if (b % 2 === 1) {\n bkgData.background = bkgData.background + '_semi';\n }\n } else if (b === 0x2d) {\n bkgData.background = 'transparent';\n } else {\n bkgData.foreground = 'black';\n if (b === 0x2f) {\n bkgData.underline = true;\n }\n }\n const chNr = a <= 0x17 ? 1 : 2;\n const channel = this.channels[chNr];\n channel.setBkgData(bkgData);\n return true;\n }\n\n /**\n * Reset state of parser and its channels.\n */\n reset() {\n for (let i = 0; i < Object.keys(this.channels).length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.reset();\n }\n }\n setLastCmd(null, null, this.cmdHistory);\n }\n\n /**\n * Trigger the generation of a cue, and the start of a new one if displayScreens are not empty.\n */\n cueSplitAtTime(t) {\n for (let i = 0; i < this.channels.length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.cueSplitAtTime(t);\n }\n }\n }\n}\nfunction setLastCmd(a, b, cmdHistory) {\n cmdHistory.a = a;\n cmdHistory.b = b;\n}\nfunction hasCmdRepeated(a, b, cmdHistory) {\n return cmdHistory.a === a && cmdHistory.b === b;\n}\nfunction createCmdHistory() {\n return {\n a: null,\n b: null\n };\n}\n\nclass OutputFilter {\n constructor(timelineController, trackName) {\n this.timelineController = void 0;\n this.cueRanges = [];\n this.trackName = void 0;\n this.startTime = null;\n this.endTime = null;\n this.screen = null;\n this.timelineController = timelineController;\n this.trackName = trackName;\n }\n dispatchCue() {\n if (this.startTime === null) {\n return;\n }\n this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges);\n this.startTime = null;\n }\n newCue(startTime, endTime, screen) {\n if (this.startTime === null || this.startTime > startTime) {\n this.startTime = startTime;\n }\n this.endTime = endTime;\n this.screen = screen;\n this.timelineController.createCaptionsTrack(this.trackName);\n }\n reset() {\n this.cueRanges = [];\n this.startTime = null;\n }\n}\n\n/**\n * Copyright 2013 vtt.js Contributors\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\nvar VTTCue = (function () {\n if (optionalSelf != null && optionalSelf.VTTCue) {\n return self.VTTCue;\n }\n const AllowedDirections = ['', 'lr', 'rl'];\n const AllowedAlignments = ['start', 'middle', 'end', 'left', 'right'];\n function isAllowedValue(allowed, value) {\n if (typeof value !== 'string') {\n return false;\n }\n // necessary for assuring the generic conforms to the Array interface\n if (!Array.isArray(allowed)) {\n return false;\n }\n // reset the type so that the next narrowing works well\n const lcValue = value.toLowerCase();\n // use the allow list to narrow the type to a specific subset of strings\n if (~allowed.indexOf(lcValue)) {\n return lcValue;\n }\n return false;\n }\n function findDirectionSetting(value) {\n return isAllowedValue(AllowedDirections, value);\n }\n function findAlignSetting(value) {\n return isAllowedValue(AllowedAlignments, value);\n }\n function extend(obj, ...rest) {\n let i = 1;\n for (; i < arguments.length; i++) {\n const cobj = arguments[i];\n for (const p in cobj) {\n obj[p] = cobj[p];\n }\n }\n return obj;\n }\n function VTTCue(startTime, endTime, text) {\n const cue = this;\n const baseObj = {\n enumerable: true\n };\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n cue.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n let _id = '';\n let _pauseOnExit = false;\n let _startTime = startTime;\n let _endTime = endTime;\n let _text = text;\n let _region = null;\n let _vertical = '';\n let _snapToLines = true;\n let _line = 'auto';\n let _lineAlign = 'start';\n let _position = 50;\n let _positionAlign = 'middle';\n let _size = 50;\n let _align = 'middle';\n Object.defineProperty(cue, 'id', extend({}, baseObj, {\n get: function () {\n return _id;\n },\n set: function (value) {\n _id = '' + value;\n }\n }));\n Object.defineProperty(cue, 'pauseOnExit', extend({}, baseObj, {\n get: function () {\n return _pauseOnExit;\n },\n set: function (value) {\n _pauseOnExit = !!value;\n }\n }));\n Object.defineProperty(cue, 'startTime', extend({}, baseObj, {\n get: function () {\n return _startTime;\n },\n set: function (value) {\n if (typeof value !== 'number') {\n throw new TypeError('Start time must be set to a number.');\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'endTime', extend({}, baseObj, {\n get: function () {\n return _endTime;\n },\n set: function (value) {\n if (typeof value !== 'number') {\n throw new TypeError('End time must be set to a number.');\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'text', extend({}, baseObj, {\n get: function () {\n return _text;\n },\n set: function (value) {\n _text = '' + value;\n this.hasBeenReset = true;\n }\n }));\n\n // todo: implement VTTRegion polyfill?\n Object.defineProperty(cue, 'region', extend({}, baseObj, {\n get: function () {\n return _region;\n },\n set: function (value) {\n _region = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'vertical', extend({}, baseObj, {\n get: function () {\n return _vertical;\n },\n set: function (value) {\n const setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'snapToLines', extend({}, baseObj, {\n get: function () {\n return _snapToLines;\n },\n set: function (value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'line', extend({}, baseObj, {\n get: function () {\n return _line;\n },\n set: function (value) {\n if (typeof value !== 'number' && value !== 'auto') {\n throw new SyntaxError('An invalid number or illegal string was specified.');\n }\n _line = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'lineAlign', extend({}, baseObj, {\n get: function () {\n return _lineAlign;\n },\n set: function (value) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'position', extend({}, baseObj, {\n get: function () {\n return _position;\n },\n set: function (value) {\n if (value < 0 || value > 100) {\n throw new Error('Position must be between 0 and 100.');\n }\n _position = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'positionAlign', extend({}, baseObj, {\n get: function () {\n return _positionAlign;\n },\n set: function (value) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'size', extend({}, baseObj, {\n get: function () {\n return _size;\n },\n set: function (value) {\n if (value < 0 || value > 100) {\n throw new Error('Size must be between 0 and 100.');\n }\n _size = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'align', extend({}, baseObj, {\n get: function () {\n return _align;\n },\n set: function (value) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }));\n\n /**\n * Other <track> spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n cue.displayState = undefined;\n }\n\n /**\n * VTTCue methods\n */\n\n VTTCue.prototype.getCueAsHTML = function () {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n const WebVTT = self.WebVTT;\n return WebVTT.convertCueToDOMTree(self, this.text);\n };\n // this is a polyfill hack\n return VTTCue;\n})();\n\n/*\n * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js\n */\n\nclass StringDecoder {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n decode(data, options) {\n if (!data) {\n return '';\n }\n if (typeof data !== 'string') {\n throw new Error('Error - expected string data.');\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n}\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + parseFloat(f || 0);\n }\n const m = input.match(/^(?:(\\d+):)?(\\d{2}):(\\d{2})(\\.\\d+)?/);\n if (!m) {\n return null;\n }\n if (parseFloat(m[2]) > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[2], m[3], 0, m[4]);\n }\n // Timestamp takes the form of [hours (optional)]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3], m[4]);\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nclass Settings {\n constructor() {\n this.values = Object.create(null);\n }\n // Only accept the first assignment to any key.\n set(k, v) {\n if (!this.get(k) && v !== '') {\n this.values[k] = v;\n }\n }\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n }\n // Check whether we have a value for a key.\n has(k) {\n return k in this.values;\n }\n // Accept a setting if its one of the given alternatives.\n alt(k, v, a) {\n for (let n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n }\n // Accept a setting if its a valid (signed) integer.\n integer(k, v) {\n if (/^-?\\d+$/.test(v)) {\n // integer\n this.set(k, parseInt(v, 10));\n }\n }\n // Accept a setting if its a valid percentage.\n percent(k, v) {\n if (/^([\\d]{1,3})(\\.[\\d]*)?%$/.test(v)) {\n const percent = parseFloat(v);\n if (percent >= 0 && percent <= 100) {\n this.set(k, percent);\n return true;\n }\n }\n return false;\n }\n}\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interpret each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n const groups = groupDelim ? input.split(groupDelim) : [input];\n for (const i in groups) {\n if (typeof groups[i] !== 'string') {\n continue;\n }\n const kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n const k = kv[0];\n const v = kv[1];\n callback(k, v);\n }\n}\nconst defaults = new VTTCue(0, 0, '');\n// 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244\n// Safari doesn't yet support this change, but FF and Chrome do.\nconst center = defaults.align === 'middle' ? 'middle' : 'center';\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n const oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n const ts = parseTimeStamp(input);\n if (ts === null) {\n throw new Error('Malformed timestamp: ' + oInput);\n }\n\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, '');\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n const settings = new Settings();\n parseOptions(input, function (k, v) {\n let vals;\n switch (k) {\n case 'region':\n // Find the last region we parsed with the same region id.\n for (let i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case 'vertical':\n settings.alt(k, v, ['rl', 'lr']);\n break;\n case 'line':\n vals = v.split(',');\n settings.integer(k, vals[0]);\n if (settings.percent(k, vals[0])) {\n settings.set('snapToLines', false);\n }\n settings.alt(k, vals[0], ['auto']);\n if (vals.length === 2) {\n settings.alt('lineAlign', vals[1], ['start', center, 'end']);\n }\n break;\n case 'position':\n vals = v.split(',');\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt('positionAlign', vals[1], ['start', center, 'end', 'line-left', 'line-right', 'auto']);\n }\n break;\n case 'size':\n settings.percent(k, v);\n break;\n case 'align':\n settings.alt(k, v, ['start', center, 'end', 'left', 'right']);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get('region', null);\n cue.vertical = settings.get('vertical', '');\n let line = settings.get('line', 'auto');\n if (line === 'auto' && defaults.line === -1) {\n // set numeric line number for Safari\n line = -1;\n }\n cue.line = line;\n cue.lineAlign = settings.get('lineAlign', 'start');\n cue.snapToLines = settings.get('snapToLines', true);\n cue.size = settings.get('size', 100);\n cue.align = settings.get('align', center);\n let position = settings.get('position', 'auto');\n if (position === 'auto' && defaults.position === 50) {\n // set numeric position for Safari\n position = cue.align === 'start' || cue.align === 'left' ? 0 : cue.align === 'end' || cue.align === 'right' ? 100 : 50;\n }\n cue.position = position;\n }\n function skipWhitespace() {\n input = input.replace(/^\\s+/, '');\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.slice(0, 3) !== '-->') {\n // (3) next characters must match '-->'\n throw new Error(\"Malformed time stamp (time stamps must be separated by '-->'): \" + oInput);\n }\n input = input.slice(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\nfunction fixLineBreaks(input) {\n return input.replace(/<br(?: \\/)?>/gi, '\\n');\n}\nclass VTTParser {\n constructor() {\n this.state = 'INITIAL';\n this.buffer = '';\n this.decoder = new StringDecoder();\n this.regionList = [];\n this.cue = null;\n this.oncue = void 0;\n this.onparsingerror = void 0;\n this.onflush = void 0;\n }\n parse(data) {\n const _this = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n _this.buffer += _this.decoder.decode(data, {\n stream: true\n });\n }\n function collectNextLine() {\n let buffer = _this.buffer;\n let pos = 0;\n buffer = fixLineBreaks(buffer);\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n const line = buffer.slice(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n _this.buffer = buffer.slice(pos);\n return line;\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n parseOptions(input, function (k, v) {\n // switch (k) {\n // case 'region':\n // 3.3 WebVTT region metadata header syntax\n // console.log('parse region', v);\n // parseRegion(v);\n // break;\n // }\n }, /:/);\n }\n\n // 5.1 WebVTT file parsing.\n try {\n let line = '';\n if (_this.state === 'INITIAL') {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n line = collectNextLine();\n // strip of UTF-8 BOM if any\n // https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8\n const m = line.match(/^()?WEBVTT([ \\t].*)?$/);\n if (!(m != null && m[0])) {\n throw new Error('Malformed WebVTT signature.');\n }\n _this.state = 'HEADER';\n }\n let alreadyCollectedLine = false;\n while (_this.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n switch (_this.state) {\n case 'HEADER':\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n _this.state = 'ID';\n }\n continue;\n case 'NOTE':\n // Ignore NOTE blocks.\n if (!line) {\n _this.state = 'ID';\n }\n continue;\n case 'ID':\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n _this.state = 'NOTE';\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n _this.cue = new VTTCue(0, 0, '');\n _this.state = 'CUE';\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf('-->') === -1) {\n _this.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /* falls through */\n case 'CUE':\n // 40 - Collect cue timings and settings.\n if (!_this.cue) {\n _this.state = 'BADCUE';\n continue;\n }\n try {\n parseCue(line, _this.cue, _this.regionList);\n } catch (e) {\n // In case of an error ignore rest of the cue.\n _this.cue = null;\n _this.state = 'BADCUE';\n continue;\n }\n _this.state = 'CUETEXT';\n continue;\n case 'CUETEXT':\n {\n const hasSubstring = line.indexOf('-->') !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n if (_this.oncue && _this.cue) {\n _this.oncue(_this.cue);\n }\n _this.cue = null;\n _this.state = 'ID';\n continue;\n }\n if (_this.cue === null) {\n continue;\n }\n if (_this.cue.text) {\n _this.cue.text += '\\n';\n }\n _this.cue.text += line;\n }\n continue;\n case 'BADCUE':\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n _this.state = 'ID';\n }\n }\n }\n } catch (e) {\n // If we are currently parsing a cue, report what we have.\n if (_this.state === 'CUETEXT' && _this.cue && _this.oncue) {\n _this.oncue(_this.cue);\n }\n _this.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n _this.state = _this.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE';\n }\n return this;\n }\n flush() {\n const _this = this;\n try {\n // Finish decoding the stream.\n // _this.buffer += _this.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (_this.cue || _this.state === 'HEADER') {\n _this.buffer += '\\n\\n';\n _this.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (_this.state === 'INITIAL' || _this.state === 'BADWEBVTT') {\n throw new Error('Malformed WebVTT signature.');\n }\n } catch (e) {\n if (_this.onparsingerror) {\n _this.onparsingerror(e);\n }\n }\n if (_this.onflush) {\n _this.onflush();\n }\n return this;\n }\n}\n\nconst LINEBREAKS = /\\r\\n|\\n\\r|\\n|\\r/g;\n\n// String.prototype.startsWith is not supported in IE11\nconst startsWith = function startsWith(inputString, searchString, position = 0) {\n return inputString.slice(position, position + searchString.length) === searchString;\n};\nconst cueString2millis = function cueString2millis(timeString) {\n let ts = parseInt(timeString.slice(-3));\n const secs = parseInt(timeString.slice(-6, -4));\n const mins = parseInt(timeString.slice(-9, -7));\n const hours = timeString.length > 9 ? parseInt(timeString.substring(0, timeString.indexOf(':'))) : 0;\n if (!isFiniteNumber(ts) || !isFiniteNumber(secs) || !isFiniteNumber(mins) || !isFiniteNumber(hours)) {\n throw Error(`Malformed X-TIMESTAMP-MAP: Local:${timeString}`);\n }\n ts += 1000 * secs;\n ts += 60 * 1000 * mins;\n ts += 60 * 60 * 1000 * hours;\n return ts;\n};\n\n// From https://github.com/darkskyapp/string-hash\nconst hash = function hash(text) {\n let _hash = 5381;\n let i = text.length;\n while (i) {\n _hash = _hash * 33 ^ text.charCodeAt(--i);\n }\n return (_hash >>> 0).toString();\n};\n\n// Create a unique hash id for a cue based on start/end times and text.\n// This helps timeline-controller to avoid showing repeated captions.\nfunction generateCueId(startTime, endTime, text) {\n return hash(startTime.toString()) + hash(endTime.toString()) + hash(text);\n}\nconst calculateOffset = function calculateOffset(vttCCs, cc, presentationTime) {\n let currCC = vttCCs[cc];\n let prevCC = vttCCs[currCC.prevCC];\n\n // This is the first discontinuity or cues have been processed since the last discontinuity\n // Offset = current discontinuity time\n if (!prevCC || !prevCC.new && currCC.new) {\n vttCCs.ccOffset = vttCCs.presentationOffset = currCC.start;\n currCC.new = false;\n return;\n }\n\n // There have been discontinuities since cues were last parsed.\n // Offset = time elapsed\n while ((_prevCC = prevCC) != null && _prevCC.new) {\n var _prevCC;\n vttCCs.ccOffset += currCC.start - prevCC.start;\n currCC.new = false;\n currCC = prevCC;\n prevCC = vttCCs[currCC.prevCC];\n }\n vttCCs.presentationOffset = presentationTime;\n};\nfunction parseWebVTT(vttByteArray, initPTS, vttCCs, cc, timeOffset, callBack, errorCallBack) {\n const parser = new VTTParser();\n // Convert byteArray into string, replacing any somewhat exotic linefeeds with \"\\n\", then split on that character.\n // Uint8Array.prototype.reduce is not implemented in IE11\n const vttLines = utf8ArrayToStr(new Uint8Array(vttByteArray)).trim().replace(LINEBREAKS, '\\n').split('\\n');\n const cues = [];\n const init90kHz = initPTS ? toMpegTsClockFromTimescale(initPTS.baseTime, initPTS.timescale) : 0;\n let cueTime = '00:00.000';\n let timestampMapMPEGTS = 0;\n let timestampMapLOCAL = 0;\n let parsingError;\n let inHeader = true;\n parser.oncue = function (cue) {\n // Adjust cue timing; clamp cues to start no earlier than - and drop cues that don't end after - 0 on timeline.\n const currCC = vttCCs[cc];\n let cueOffset = vttCCs.ccOffset;\n\n // Calculate subtitle PTS offset\n const webVttMpegTsMapOffset = (timestampMapMPEGTS - init90kHz) / 90000;\n\n // Update offsets for new discontinuities\n if (currCC != null && currCC.new) {\n if (timestampMapLOCAL !== undefined) {\n // When local time is provided, offset = discontinuity start time - local time\n cueOffset = vttCCs.ccOffset = currCC.start;\n } else {\n calculateOffset(vttCCs, cc, webVttMpegTsMapOffset);\n }\n }\n if (webVttMpegTsMapOffset) {\n if (!initPTS) {\n parsingError = new Error('Missing initPTS for VTT MPEGTS');\n return;\n }\n // If we have MPEGTS, offset = presentation time + discontinuity offset\n cueOffset = webVttMpegTsMapOffset - vttCCs.presentationOffset;\n }\n const duration = cue.endTime - cue.startTime;\n const startTime = normalizePts((cue.startTime + cueOffset - timestampMapLOCAL) * 90000, timeOffset * 90000) / 90000;\n cue.startTime = Math.max(startTime, 0);\n cue.endTime = Math.max(startTime + duration, 0);\n\n //trim trailing webvtt block whitespaces\n const text = cue.text.trim();\n\n // Fix encoding of special characters\n cue.text = decodeURIComponent(encodeURIComponent(text));\n\n // If the cue was not assigned an id from the VTT file (line above the content), create one.\n if (!cue.id) {\n cue.id = generateCueId(cue.startTime, cue.endTime, text);\n }\n if (cue.endTime > 0) {\n cues.push(cue);\n }\n };\n parser.onparsingerror = function (error) {\n parsingError = error;\n };\n parser.onflush = function () {\n if (parsingError) {\n errorCallBack(parsingError);\n return;\n }\n callBack(cues);\n };\n\n // Go through contents line by line.\n vttLines.forEach(line => {\n if (inHeader) {\n // Look for X-TIMESTAMP-MAP in header.\n if (startsWith(line, 'X-TIMESTAMP-MAP=')) {\n // Once found, no more are allowed anyway, so stop searching.\n inHeader = false;\n // Extract LOCAL and MPEGTS.\n line.slice(16).split(',').forEach(timestamp => {\n if (startsWith(timestamp, 'LOCAL:')) {\n cueTime = timestamp.slice(6);\n } else if (startsWith(timestamp, 'MPEGTS:')) {\n timestampMapMPEGTS = parseInt(timestamp.slice(7));\n }\n });\n try {\n // Convert cue time to seconds\n timestampMapLOCAL = cueString2millis(cueTime) / 1000;\n } catch (error) {\n parsingError = error;\n }\n // Return without parsing X-TIMESTAMP-MAP line.\n return;\n } else if (line === '') {\n inHeader = false;\n }\n }\n // Parse line by default.\n parser.parse(line + '\\n');\n });\n parser.flush();\n}\n\nconst IMSC1_CODEC = 'stpp.ttml.im1t';\n\n// Time format: h:m:s:frames(.subframes)\nconst HMSF_REGEX = /^(\\d{2,}):(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d+)?$/;\n\n// Time format: hours, minutes, seconds, milliseconds, frames, ticks\nconst TIME_UNIT_REGEX = /^(\\d*(?:\\.\\d*)?)(h|m|s|ms|f|t)$/;\nconst textAlignToLineAlign = {\n left: 'start',\n center: 'center',\n right: 'end',\n start: 'start',\n end: 'end'\n};\nfunction parseIMSC1(payload, initPTS, callBack, errorCallBack) {\n const results = findBox(new Uint8Array(payload), ['mdat']);\n if (results.length === 0) {\n errorCallBack(new Error('Could not parse IMSC1 mdat'));\n return;\n }\n const ttmlList = results.map(mdat => utf8ArrayToStr(mdat));\n const syncTime = toTimescaleFromScale(initPTS.baseTime, 1, initPTS.timescale);\n try {\n ttmlList.forEach(ttml => callBack(parseTTML(ttml, syncTime)));\n } catch (error) {\n errorCallBack(error);\n }\n}\nfunction parseTTML(ttml, syncTime) {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(ttml, 'text/xml');\n const tt = xmlDoc.getElementsByTagName('tt')[0];\n if (!tt) {\n throw new Error('Invalid ttml');\n }\n const defaultRateInfo = {\n frameRate: 30,\n subFrameRate: 1,\n frameRateMultiplier: 0,\n tickRate: 0\n };\n const rateInfo = Object.keys(defaultRateInfo).reduce((result, key) => {\n result[key] = tt.getAttribute(`ttp:${key}`) || defaultRateInfo[key];\n return result;\n }, {});\n const trim = tt.getAttribute('xml:space') !== 'preserve';\n const styleElements = collectionToDictionary(getElementCollection(tt, 'styling', 'style'));\n const regionElements = collectionToDictionary(getElementCollection(tt, 'layout', 'region'));\n const cueElements = getElementCollection(tt, 'body', '[begin]');\n return [].map.call(cueElements, cueElement => {\n const cueText = getTextContent(cueElement, trim);\n if (!cueText || !cueElement.hasAttribute('begin')) {\n return null;\n }\n const startTime = parseTtmlTime(cueElement.getAttribute('begin'), rateInfo);\n const duration = parseTtmlTime(cueElement.getAttribute('dur'), rateInfo);\n let endTime = parseTtmlTime(cueElement.getAttribute('end'), rateInfo);\n if (startTime === null) {\n throw timestampParsingError(cueElement);\n }\n if (endTime === null) {\n if (duration === null) {\n throw timestampParsingError(cueElement);\n }\n endTime = startTime + duration;\n }\n const cue = new VTTCue(startTime - syncTime, endTime - syncTime, cueText);\n cue.id = generateCueId(cue.startTime, cue.endTime, cue.text);\n const region = regionElements[cueElement.getAttribute('region')];\n const style = styleElements[cueElement.getAttribute('style')];\n\n // Apply styles to cue\n const styles = getTtmlStyles(region, style, styleElements);\n const {\n textAlign\n } = styles;\n if (textAlign) {\n // cue.positionAlign not settable in FF~2016\n const lineAlign = textAlignToLineAlign[textAlign];\n if (lineAlign) {\n cue.lineAlign = lineAlign;\n }\n cue.align = textAlign;\n }\n _extends(cue, styles);\n return cue;\n }).filter(cue => cue !== null);\n}\nfunction getElementCollection(fromElement, parentName, childName) {\n const parent = fromElement.getElementsByTagName(parentName)[0];\n if (parent) {\n return [].slice.call(parent.querySelectorAll(childName));\n }\n return [];\n}\nfunction collectionToDictionary(elementsWithId) {\n return elementsWithId.reduce((dict, element) => {\n const id = element.getAttribute('xml:id');\n if (id) {\n dict[id] = element;\n }\n return dict;\n }, {});\n}\nfunction getTextContent(element, trim) {\n return [].slice.call(element.childNodes).reduce((str, node, i) => {\n var _node$childNodes;\n if (node.nodeName === 'br' && i) {\n return str + '\\n';\n }\n if ((_node$childNodes = node.childNodes) != null && _node$childNodes.length) {\n return getTextContent(node, trim);\n } else if (trim) {\n return str + node.textContent.trim().replace(/\\s+/g, ' ');\n }\n return str + node.textContent;\n }, '');\n}\nfunction getTtmlStyles(region, style, styleElements) {\n const ttsNs = 'http://www.w3.org/ns/ttml#styling';\n let regionStyle = null;\n const styleAttributes = ['displayAlign', 'textAlign', 'color', 'backgroundColor', 'fontSize', 'fontFamily'\n // 'fontWeight',\n // 'lineHeight',\n // 'wrapOption',\n // 'fontStyle',\n // 'direction',\n // 'writingMode'\n ];\n const regionStyleName = region != null && region.hasAttribute('style') ? region.getAttribute('style') : null;\n if (regionStyleName && styleElements.hasOwnProperty(regionStyleName)) {\n regionStyle = styleElements[regionStyleName];\n }\n return styleAttributes.reduce((styles, name) => {\n const value = getAttributeNS(style, ttsNs, name) || getAttributeNS(region, ttsNs, name) || getAttributeNS(regionStyle, ttsNs, name);\n if (value) {\n styles[name] = value;\n }\n return styles;\n }, {});\n}\nfunction getAttributeNS(element, ns, name) {\n if (!element) {\n return null;\n }\n return element.hasAttributeNS(ns, name) ? element.getAttributeNS(ns, name) : null;\n}\nfunction timestampParsingError(node) {\n return new Error(`Could not parse ttml timestamp ${node}`);\n}\nfunction parseTtmlTime(timeAttributeValue, rateInfo) {\n if (!timeAttributeValue) {\n return null;\n }\n let seconds = parseTimeStamp(timeAttributeValue);\n if (seconds === null) {\n if (HMSF_REGEX.test(timeAttributeValue)) {\n seconds = parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo);\n } else if (TIME_UNIT_REGEX.test(timeAttributeValue)) {\n seconds = parseTimeUnits(timeAttributeValue, rateInfo);\n }\n }\n return seconds;\n}\nfunction parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo) {\n const m = HMSF_REGEX.exec(timeAttributeValue);\n const frames = (m[4] | 0) + (m[5] | 0) / rateInfo.subFrameRate;\n return (m[1] | 0) * 3600 + (m[2] | 0) * 60 + (m[3] | 0) + frames / rateInfo.frameRate;\n}\nfunction parseTimeUnits(timeAttributeValue, rateInfo) {\n const m = TIME_UNIT_REGEX.exec(timeAttributeValue);\n const value = Number(m[1]);\n const unit = m[2];\n switch (unit) {\n case 'h':\n return value * 3600;\n case 'm':\n return value * 60;\n case 'ms':\n return value * 1000;\n case 'f':\n return value / rateInfo.frameRate;\n case 't':\n return value / rateInfo.tickRate;\n }\n return value;\n}\n\nclass TimelineController {\n constructor(hls) {\n this.hls = void 0;\n this.media = null;\n this.config = void 0;\n this.enabled = true;\n this.Cues = void 0;\n this.textTracks = [];\n this.tracks = [];\n this.initPTS = [];\n this.unparsedVttFrags = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n this.cea608Parser1 = void 0;\n this.cea608Parser2 = void 0;\n this.lastCc = -1;\n // Last video (CEA-608) fragment CC\n this.lastSn = -1;\n // Last video (CEA-608) fragment MSN\n this.lastPartIndex = -1;\n // Last video (CEA-608) fragment Part Index\n this.prevCC = -1;\n // Last subtitle fragment CC\n this.vttCCs = newVTTCCs();\n this.captionsProperties = void 0;\n this.hls = hls;\n this.config = hls.config;\n this.Cues = hls.config.cueHandler;\n this.captionsProperties = {\n textTrack1: {\n label: this.config.captionsTextTrack1Label,\n languageCode: this.config.captionsTextTrack1LanguageCode\n },\n textTrack2: {\n label: this.config.captionsTextTrack2Label,\n languageCode: this.config.captionsTextTrack2LanguageCode\n },\n textTrack3: {\n label: this.config.captionsTextTrack3Label,\n languageCode: this.config.captionsTextTrack3LanguageCode\n },\n textTrack4: {\n label: this.config.captionsTextTrack4Label,\n languageCode: this.config.captionsTextTrack4LanguageCode\n }\n };\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.on(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.on(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n }\n destroy() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.off(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.off(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n // @ts-ignore\n this.hls = this.config = null;\n this.cea608Parser1 = this.cea608Parser2 = undefined;\n }\n initCea608Parsers() {\n if (this.config.enableCEA708Captions && (!this.cea608Parser1 || !this.cea608Parser2)) {\n const channel1 = new OutputFilter(this, 'textTrack1');\n const channel2 = new OutputFilter(this, 'textTrack2');\n const channel3 = new OutputFilter(this, 'textTrack3');\n const channel4 = new OutputFilter(this, 'textTrack4');\n this.cea608Parser1 = new Cea608Parser(1, channel1, channel2);\n this.cea608Parser2 = new Cea608Parser(3, channel3, channel4);\n }\n }\n addCues(trackName, startTime, endTime, screen, cueRanges) {\n // skip cues which overlap more than 50% with previously parsed time ranges\n let merged = false;\n for (let i = cueRanges.length; i--;) {\n const cueRange = cueRanges[i];\n const overlap = intersection(cueRange[0], cueRange[1], startTime, endTime);\n if (overlap >= 0) {\n cueRange[0] = Math.min(cueRange[0], startTime);\n cueRange[1] = Math.max(cueRange[1], endTime);\n merged = true;\n if (overlap / (endTime - startTime) > 0.5) {\n return;\n }\n }\n }\n if (!merged) {\n cueRanges.push([startTime, endTime]);\n }\n if (this.config.renderTextTracksNatively) {\n const track = this.captionsTracks[trackName];\n this.Cues.newCue(track, startTime, endTime, screen);\n } else {\n const cues = this.Cues.newCue(null, startTime, endTime, screen);\n this.hls.trigger(Events.CUES_PARSED, {\n type: 'captions',\n cues,\n track: trackName\n });\n }\n }\n\n // Triggered when an initial PTS is found; used for synchronisation of WebVTT.\n onInitPtsFound(event, {\n frag,\n id,\n initPTS,\n timescale\n }) {\n const {\n unparsedVttFrags\n } = this;\n if (id === 'main') {\n this.initPTS[frag.cc] = {\n baseTime: initPTS,\n timescale\n };\n }\n\n // Due to asynchronous processing, initial PTS may arrive later than the first VTT fragments are loaded.\n // Parse any unparsed fragments upon receiving the initial PTS.\n if (unparsedVttFrags.length) {\n this.unparsedVttFrags = [];\n unparsedVttFrags.forEach(frag => {\n this.onFragLoaded(Events.FRAG_LOADED, frag);\n });\n }\n }\n getExistingTrack(label, language) {\n const {\n media\n } = this;\n if (media) {\n for (let i = 0; i < media.textTracks.length; i++) {\n const textTrack = media.textTracks[i];\n if (canReuseVttTextTrack(textTrack, {\n name: label,\n lang: language,\n attrs: {}\n })) {\n return textTrack;\n }\n }\n }\n return null;\n }\n createCaptionsTrack(trackName) {\n if (this.config.renderTextTracksNatively) {\n this.createNativeTrack(trackName);\n } else {\n this.createNonNativeTrack(trackName);\n }\n }\n createNativeTrack(trackName) {\n if (this.captionsTracks[trackName]) {\n return;\n }\n const {\n captionsProperties,\n captionsTracks,\n media\n } = this;\n const {\n label,\n languageCode\n } = captionsProperties[trackName];\n // Enable reuse of existing text track.\n const existingTrack = this.getExistingTrack(label, languageCode);\n if (!existingTrack) {\n const textTrack = this.createTextTrack('captions', label, languageCode);\n if (textTrack) {\n // Set a special property on the track so we know it's managed by Hls.js\n textTrack[trackName] = true;\n captionsTracks[trackName] = textTrack;\n }\n } else {\n captionsTracks[trackName] = existingTrack;\n clearCurrentCues(captionsTracks[trackName]);\n sendAddTrackEvent(captionsTracks[trackName], media);\n }\n }\n createNonNativeTrack(trackName) {\n if (this.nonNativeCaptionsTracks[trackName]) {\n return;\n }\n // Create a list of a single track for the provider to consume\n const trackProperties = this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n const label = trackProperties.label;\n const track = {\n _id: trackName,\n label,\n kind: 'captions',\n default: trackProperties.media ? !!trackProperties.media.default : false,\n closedCaptions: trackProperties.media\n };\n this.nonNativeCaptionsTracks[trackName] = track;\n this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, {\n tracks: [track]\n });\n }\n createTextTrack(kind, label, lang) {\n const media = this.media;\n if (!media) {\n return;\n }\n return media.addTextTrack(kind, label, lang);\n }\n onMediaAttaching(event, data) {\n this.media = data.media;\n this._cleanTracks();\n }\n onMediaDetaching() {\n const {\n captionsTracks\n } = this;\n Object.keys(captionsTracks).forEach(trackName => {\n clearCurrentCues(captionsTracks[trackName]);\n delete captionsTracks[trackName];\n });\n this.nonNativeCaptionsTracks = {};\n }\n onManifestLoading() {\n // Detect discontinuity in video fragment (CEA-608) parsing\n this.lastCc = -1;\n this.lastSn = -1;\n this.lastPartIndex = -1;\n // Detect discontinuity in subtitle manifests\n this.prevCC = -1;\n this.vttCCs = newVTTCCs();\n // Reset tracks\n this._cleanTracks();\n this.tracks = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n this.textTracks = [];\n this.unparsedVttFrags = [];\n this.initPTS = [];\n if (this.cea608Parser1 && this.cea608Parser2) {\n this.cea608Parser1.reset();\n this.cea608Parser2.reset();\n }\n }\n _cleanTracks() {\n // clear outdated subtitles\n const {\n media\n } = this;\n if (!media) {\n return;\n }\n const textTracks = media.textTracks;\n if (textTracks) {\n for (let i = 0; i < textTracks.length; i++) {\n clearCurrentCues(textTracks[i]);\n }\n }\n }\n onSubtitleTracksUpdated(event, data) {\n const tracks = data.subtitleTracks || [];\n const hasIMSC1 = tracks.some(track => track.textCodec === IMSC1_CODEC);\n if (this.config.enableWebVTT || hasIMSC1 && this.config.enableIMSC1) {\n const listIsIdentical = subtitleOptionsIdentical(this.tracks, tracks);\n if (listIsIdentical) {\n this.tracks = tracks;\n return;\n }\n this.textTracks = [];\n this.tracks = tracks;\n if (this.config.renderTextTracksNatively) {\n const media = this.media;\n const inUseTracks = media ? filterSubtitleTracks(media.textTracks) : null;\n this.tracks.forEach((track, index) => {\n // Reuse tracks with the same label and lang, but do not reuse 608/708 tracks\n let textTrack;\n if (inUseTracks) {\n let inUseTrack = null;\n for (let i = 0; i < inUseTracks.length; i++) {\n if (inUseTracks[i] && canReuseVttTextTrack(inUseTracks[i], track)) {\n inUseTrack = inUseTracks[i];\n inUseTracks[i] = null;\n break;\n }\n }\n if (inUseTrack) {\n textTrack = inUseTrack;\n }\n }\n if (textTrack) {\n clearCurrentCues(textTrack);\n } else {\n const textTrackKind = captionsOrSubtitlesFromCharacteristics(track);\n textTrack = this.createTextTrack(textTrackKind, track.name, track.lang);\n if (textTrack) {\n textTrack.mode = 'disabled';\n }\n }\n if (textTrack) {\n this.textTracks.push(textTrack);\n }\n });\n // Warn when video element has captions or subtitle TextTracks carried over from another source\n if (inUseTracks != null && inUseTracks.length) {\n const unusedTextTracks = inUseTracks.filter(t => t !== null).map(t => t.label);\n if (unusedTextTracks.length) {\n logger.warn(`Media element contains unused subtitle tracks: ${unusedTextTracks.join(', ')}. Replace media element for each source to clear TextTracks and captions menu.`);\n }\n }\n } else if (this.tracks.length) {\n // Create a list of tracks for the provider to consume\n const tracksList = this.tracks.map(track => {\n return {\n label: track.name,\n kind: track.type.toLowerCase(),\n default: track.default,\n subtitleTrack: track\n };\n });\n this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, {\n tracks: tracksList\n });\n }\n }\n }\n onManifestLoaded(event, data) {\n if (this.config.enableCEA708Captions && data.captions) {\n data.captions.forEach(captionsTrack => {\n const instreamIdMatch = /(?:CC|SERVICE)([1-4])/.exec(captionsTrack.instreamId);\n if (!instreamIdMatch) {\n return;\n }\n const trackName = `textTrack${instreamIdMatch[1]}`;\n const trackProperties = this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n trackProperties.label = captionsTrack.name;\n if (captionsTrack.lang) {\n // optional attribute\n trackProperties.languageCode = captionsTrack.lang;\n }\n trackProperties.media = captionsTrack;\n });\n }\n }\n closedCaptionsForLevel(frag) {\n const level = this.hls.levels[frag.level];\n return level == null ? void 0 : level.attrs['CLOSED-CAPTIONS'];\n }\n onFragLoading(event, data) {\n // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack\n if (this.enabled && data.frag.type === PlaylistLevelType.MAIN) {\n var _data$part$index, _data$part;\n const {\n cea608Parser1,\n cea608Parser2,\n lastSn\n } = this;\n const {\n cc,\n sn\n } = data.frag;\n const partIndex = (_data$part$index = (_data$part = data.part) == null ? void 0 : _data$part.index) != null ? _data$part$index : -1;\n if (cea608Parser1 && cea608Parser2) {\n if (sn !== lastSn + 1 || sn === lastSn && partIndex !== this.lastPartIndex + 1 || cc !== this.lastCc) {\n cea608Parser1.reset();\n cea608Parser2.reset();\n }\n }\n this.lastCc = cc;\n this.lastSn = sn;\n this.lastPartIndex = partIndex;\n }\n }\n onFragLoaded(event, data) {\n const {\n frag,\n payload\n } = data;\n if (frag.type === PlaylistLevelType.SUBTITLE) {\n // If fragment is subtitle type, parse as WebVTT.\n if (payload.byteLength) {\n const decryptData = frag.decryptdata;\n // fragment after decryption has a stats object\n const decrypted = ('stats' in data);\n // If the subtitles are not encrypted, parse VTTs now. Otherwise, we need to wait.\n if (decryptData == null || !decryptData.encrypted || decrypted) {\n const trackPlaylistMedia = this.tracks[frag.level];\n const vttCCs = this.vttCCs;\n if (!vttCCs[frag.cc]) {\n vttCCs[frag.cc] = {\n start: frag.start,\n prevCC: this.prevCC,\n new: true\n };\n this.prevCC = frag.cc;\n }\n if (trackPlaylistMedia && trackPlaylistMedia.textCodec === IMSC1_CODEC) {\n this._parseIMSC1(frag, payload);\n } else {\n this._parseVTTs(data);\n }\n }\n } else {\n // In case there is no payload, finish unsuccessfully.\n this.hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag,\n error: new Error('Empty subtitle payload')\n });\n }\n }\n }\n _parseIMSC1(frag, payload) {\n const hls = this.hls;\n parseIMSC1(payload, this.initPTS[frag.cc], cues => {\n this._appendCues(cues, frag.level);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag\n });\n }, error => {\n logger.log(`Failed to parse IMSC1: ${error}`);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error\n });\n });\n }\n _parseVTTs(data) {\n var _frag$initSegment;\n const {\n frag,\n payload\n } = data;\n // We need an initial synchronisation PTS. Store fragments as long as none has arrived\n const {\n initPTS,\n unparsedVttFrags\n } = this;\n const maxAvCC = initPTS.length - 1;\n if (!initPTS[frag.cc] && maxAvCC === -1) {\n unparsedVttFrags.push(data);\n return;\n }\n const hls = this.hls;\n // Parse the WebVTT file contents.\n const payloadWebVTT = (_frag$initSegment = frag.initSegment) != null && _frag$initSegment.data ? appendUint8Array(frag.initSegment.data, new Uint8Array(payload)) : payload;\n parseWebVTT(payloadWebVTT, this.initPTS[frag.cc], this.vttCCs, frag.cc, frag.start, cues => {\n this._appendCues(cues, frag.level);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag\n });\n }, error => {\n const missingInitPTS = error.message === 'Missing initPTS for VTT MPEGTS';\n if (missingInitPTS) {\n unparsedVttFrags.push(data);\n } else {\n this._fallbackToIMSC1(frag, payload);\n }\n // Something went wrong while parsing. Trigger event with success false.\n logger.log(`Failed to parse VTT cue: ${error}`);\n if (missingInitPTS && maxAvCC > frag.cc) {\n return;\n }\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error\n });\n });\n }\n _fallbackToIMSC1(frag, payload) {\n // If textCodec is unknown, try parsing as IMSC1. Set textCodec based on the result\n const trackPlaylistMedia = this.tracks[frag.level];\n if (!trackPlaylistMedia.textCodec) {\n parseIMSC1(payload, this.initPTS[frag.cc], () => {\n trackPlaylistMedia.textCodec = IMSC1_CODEC;\n this._parseIMSC1(frag, payload);\n }, () => {\n trackPlaylistMedia.textCodec = 'wvtt';\n });\n }\n }\n _appendCues(cues, fragLevel) {\n const hls = this.hls;\n if (this.config.renderTextTracksNatively) {\n const textTrack = this.textTracks[fragLevel];\n // WebVTTParser.parse is an async method and if the currently selected text track mode is set to \"disabled\"\n // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null\n // and trying to access getCueById method of cues will throw an exception\n // Because we check if the mode is disabled, we can force check `cues` below. They can't be null.\n if (!textTrack || textTrack.mode === 'disabled') {\n return;\n }\n cues.forEach(cue => addCueToTrack(textTrack, cue));\n } else {\n const currentTrack = this.tracks[fragLevel];\n if (!currentTrack) {\n return;\n }\n const track = currentTrack.default ? 'default' : 'subtitles' + fragLevel;\n hls.trigger(Events.CUES_PARSED, {\n type: 'subtitles',\n cues,\n track\n });\n }\n }\n onFragDecrypted(event, data) {\n const {\n frag\n } = data;\n if (frag.type === PlaylistLevelType.SUBTITLE) {\n this.onFragLoaded(Events.FRAG_LOADED, data);\n }\n }\n onSubtitleTracksCleared() {\n this.tracks = [];\n this.captionsTracks = {};\n }\n onFragParsingUserdata(event, data) {\n this.initCea608Parsers();\n const {\n cea608Parser1,\n cea608Parser2\n } = this;\n if (!this.enabled || !cea608Parser1 || !cea608Parser2) {\n return;\n }\n const {\n frag,\n samples\n } = data;\n if (frag.type === PlaylistLevelType.MAIN && this.closedCaptionsForLevel(frag) === 'NONE') {\n return;\n }\n // If the event contains captions (found in the bytes property), push all bytes into the parser immediately\n // It will create the proper timestamps based on the PTS value\n for (let i = 0; i < samples.length; i++) {\n const ccBytes = samples[i].bytes;\n if (ccBytes) {\n const ccdatas = this.extractCea608Data(ccBytes);\n cea608Parser1.addData(samples[i].pts, ccdatas[0]);\n cea608Parser2.addData(samples[i].pts, ccdatas[1]);\n }\n }\n }\n onBufferFlushing(event, {\n startOffset,\n endOffset,\n endOffsetSubtitles,\n type\n }) {\n const {\n media\n } = this;\n if (!media || media.currentTime < endOffset) {\n return;\n }\n // Clear 608 caption cues from the captions TextTracks when the video back buffer is flushed\n // Forward cues are never removed because we can loose streamed 608 content from recent fragments\n if (!type || type === 'video') {\n const {\n captionsTracks\n } = this;\n Object.keys(captionsTracks).forEach(trackName => removeCuesInRange(captionsTracks[trackName], startOffset, endOffset));\n }\n if (this.config.renderTextTracksNatively) {\n // Clear VTT/IMSC1 subtitle cues from the subtitle TextTracks when the back buffer is flushed\n if (startOffset === 0 && endOffsetSubtitles !== undefined) {\n const {\n textTracks\n } = this;\n Object.keys(textTracks).forEach(trackName => removeCuesInRange(textTracks[trackName], startOffset, endOffsetSubtitles));\n }\n }\n }\n extractCea608Data(byteArray) {\n const actualCCBytes = [[], []];\n const count = byteArray[0] & 0x1f;\n let position = 2;\n for (let j = 0; j < count; j++) {\n const tmpByte = byteArray[position++];\n const ccbyte1 = 0x7f & byteArray[position++];\n const ccbyte2 = 0x7f & byteArray[position++];\n if (ccbyte1 === 0 && ccbyte2 === 0) {\n continue;\n }\n const ccValid = (0x04 & tmpByte) !== 0; // Support all four channels\n if (ccValid) {\n const ccType = 0x03 & tmpByte;\n if (0x00 /* CEA608 field1*/ === ccType || 0x01 /* CEA608 field2*/ === ccType) {\n // Exclude CEA708 CC data.\n actualCCBytes[ccType].push(ccbyte1);\n actualCCBytes[ccType].push(ccbyte2);\n }\n }\n }\n return actualCCBytes;\n }\n}\nfunction captionsOrSubtitlesFromCharacteristics(track) {\n if (track.characteristics) {\n if (/transcribes-spoken-dialog/gi.test(track.characteristics) && /describes-music-and-sound/gi.test(track.characteristics)) {\n return 'captions';\n }\n }\n return 'subtitles';\n}\nfunction canReuseVttTextTrack(inUseTrack, manifestTrack) {\n return !!inUseTrack && inUseTrack.kind === captionsOrSubtitlesFromCharacteristics(manifestTrack) && subtitleTrackMatchesTextTrack(manifestTrack, inUseTrack);\n}\nfunction intersection(x1, x2, y1, y2) {\n return Math.min(x2, y2) - Math.max(x1, y1);\n}\nfunction newVTTCCs() {\n return {\n ccOffset: 0,\n presentationOffset: 0,\n 0: {\n start: 0,\n prevCC: -1,\n new: true\n }\n };\n}\n\nclass CapLevelController {\n constructor(hls) {\n this.hls = void 0;\n this.autoLevelCapping = void 0;\n this.firstLevel = void 0;\n this.media = void 0;\n this.restrictedLevels = void 0;\n this.timer = void 0;\n this.clientRect = void 0;\n this.streamController = void 0;\n this.hls = hls;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.firstLevel = -1;\n this.media = null;\n this.restrictedLevels = [];\n this.timer = undefined;\n this.clientRect = null;\n this.registerListeners();\n }\n setStreamController(streamController) {\n this.streamController = streamController;\n }\n destroy() {\n if (this.hls) {\n this.unregisterListener();\n }\n if (this.timer) {\n this.stopCapping();\n }\n this.media = null;\n this.clientRect = null;\n // @ts-ignore\n this.hls = this.streamController = null;\n }\n registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n }\n unregisterListener() {\n const {\n hls\n } = this;\n hls.off(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n }\n onFpsDropLevelCapping(event, data) {\n // Don't add a restricted level more than once\n const level = this.hls.levels[data.droppedLevel];\n if (this.isLevelAllowed(level)) {\n this.restrictedLevels.push({\n bitrate: level.bitrate,\n height: level.height,\n width: level.width\n });\n }\n }\n onMediaAttaching(event, data) {\n this.media = data.media instanceof HTMLVideoElement ? data.media : null;\n this.clientRect = null;\n if (this.timer && this.hls.levels.length) {\n this.detectPlayerSize();\n }\n }\n onManifestParsed(event, data) {\n const hls = this.hls;\n this.restrictedLevels = [];\n this.firstLevel = data.firstLevel;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // Start capping immediately if the manifest has signaled video codecs\n this.startCapping();\n }\n }\n onLevelsUpdated(event, data) {\n if (this.timer && isFiniteNumber(this.autoLevelCapping)) {\n this.detectPlayerSize();\n }\n }\n\n // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted\n // to the first level\n onBufferCodecs(event, data) {\n const hls = this.hls;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // If the manifest did not signal a video codec capping has been deferred until we're certain video is present\n this.startCapping();\n }\n }\n onMediaDetaching() {\n this.stopCapping();\n }\n detectPlayerSize() {\n if (this.media) {\n if (this.mediaHeight <= 0 || this.mediaWidth <= 0) {\n this.clientRect = null;\n return;\n }\n const levels = this.hls.levels;\n if (levels.length) {\n const hls = this.hls;\n const maxLevel = this.getMaxLevel(levels.length - 1);\n if (maxLevel !== this.autoLevelCapping) {\n logger.log(`Setting autoLevelCapping to ${maxLevel}: ${levels[maxLevel].height}p@${levels[maxLevel].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`);\n }\n hls.autoLevelCapping = maxLevel;\n if (hls.autoLevelCapping > this.autoLevelCapping && this.streamController) {\n // if auto level capping has a higher value for the previous one, flush the buffer using nextLevelSwitch\n // usually happen when the user go to the fullscreen mode.\n this.streamController.nextLevelSwitch();\n }\n this.autoLevelCapping = hls.autoLevelCapping;\n }\n }\n }\n\n /*\n * returns level should be the one with the dimensions equal or greater than the media (player) dimensions (so the video will be downscaled)\n */\n getMaxLevel(capLevelIndex) {\n const levels = this.hls.levels;\n if (!levels.length) {\n return -1;\n }\n const validLevels = levels.filter((level, index) => this.isLevelAllowed(level) && index <= capLevelIndex);\n this.clientRect = null;\n return CapLevelController.getMaxLevelByMediaSize(validLevels, this.mediaWidth, this.mediaHeight);\n }\n startCapping() {\n if (this.timer) {\n // Don't reset capping if started twice; this can happen if the manifest signals a video codec\n return;\n }\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n self.clearInterval(this.timer);\n this.timer = self.setInterval(this.detectPlayerSize.bind(this), 1000);\n this.detectPlayerSize();\n }\n stopCapping() {\n this.restrictedLevels = [];\n this.firstLevel = -1;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n if (this.timer) {\n self.clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n getDimensions() {\n if (this.clientRect) {\n return this.clientRect;\n }\n const media = this.media;\n const boundsRect = {\n width: 0,\n height: 0\n };\n if (media) {\n const clientRect = media.getBoundingClientRect();\n boundsRect.width = clientRect.width;\n boundsRect.height = clientRect.height;\n if (!boundsRect.width && !boundsRect.height) {\n // When the media element has no width or height (equivalent to not being in the DOM),\n // then use its width and height attributes (media.width, media.height)\n boundsRect.width = clientRect.right - clientRect.left || media.width || 0;\n boundsRect.height = clientRect.bottom - clientRect.top || media.height || 0;\n }\n }\n this.clientRect = boundsRect;\n return boundsRect;\n }\n get mediaWidth() {\n return this.getDimensions().width * this.contentScaleFactor;\n }\n get mediaHeight() {\n return this.getDimensions().height * this.contentScaleFactor;\n }\n get contentScaleFactor() {\n let pixelRatio = 1;\n if (!this.hls.config.ignoreDevicePixelRatio) {\n try {\n pixelRatio = self.devicePixelRatio;\n } catch (e) {\n /* no-op */\n }\n }\n return pixelRatio;\n }\n isLevelAllowed(level) {\n const restrictedLevels = this.restrictedLevels;\n return !restrictedLevels.some(restrictedLevel => {\n return level.bitrate === restrictedLevel.bitrate && level.width === restrictedLevel.width && level.height === restrictedLevel.height;\n });\n }\n static getMaxLevelByMediaSize(levels, width, height) {\n if (!(levels != null && levels.length)) {\n return -1;\n }\n\n // Levels can have the same dimensions but differing bandwidths - since levels are ordered, we can look to the next\n // to determine whether we've chosen the greatest bandwidth for the media's dimensions\n const atGreatestBandwidth = (curLevel, nextLevel) => {\n if (!nextLevel) {\n return true;\n }\n return curLevel.width !== nextLevel.width || curLevel.height !== nextLevel.height;\n };\n\n // If we run through the loop without breaking, the media's dimensions are greater than every level, so default to\n // the max level\n let maxLevelIndex = levels.length - 1;\n // Prevent changes in aspect-ratio from causing capping to toggle back and forth\n const squareSize = Math.max(width, height);\n for (let i = 0; i < levels.length; i += 1) {\n const level = levels[i];\n if ((level.width >= squareSize || level.height >= squareSize) && atGreatestBandwidth(level, levels[i + 1])) {\n maxLevelIndex = i;\n break;\n }\n }\n return maxLevelIndex;\n }\n}\n\nclass FPSController {\n constructor(hls) {\n this.hls = void 0;\n this.isVideoPlaybackQualityAvailable = false;\n this.timer = void 0;\n this.media = null;\n this.lastTime = void 0;\n this.lastDroppedFrames = 0;\n this.lastDecodedFrames = 0;\n // stream controller must be provided as a dependency!\n this.streamController = void 0;\n this.hls = hls;\n this.registerListeners();\n }\n setStreamController(streamController) {\n this.streamController = streamController;\n }\n registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n }\n unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n }\n destroy() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n this.unregisterListeners();\n this.isVideoPlaybackQualityAvailable = false;\n this.media = null;\n }\n onMediaAttaching(event, data) {\n const config = this.hls.config;\n if (config.capLevelOnFPSDrop) {\n const media = data.media instanceof self.HTMLVideoElement ? data.media : null;\n this.media = media;\n if (media && typeof media.getVideoPlaybackQuality === 'function') {\n this.isVideoPlaybackQualityAvailable = true;\n }\n self.clearInterval(this.timer);\n this.timer = self.setInterval(this.checkFPSInterval.bind(this), config.fpsDroppedMonitoringPeriod);\n }\n }\n checkFPS(video, decodedFrames, droppedFrames) {\n const currentTime = performance.now();\n if (decodedFrames) {\n if (this.lastTime) {\n const currentPeriod = currentTime - this.lastTime;\n const currentDropped = droppedFrames - this.lastDroppedFrames;\n const currentDecoded = decodedFrames - this.lastDecodedFrames;\n const droppedFPS = 1000 * currentDropped / currentPeriod;\n const hls = this.hls;\n hls.trigger(Events.FPS_DROP, {\n currentDropped: currentDropped,\n currentDecoded: currentDecoded,\n totalDroppedFrames: droppedFrames\n });\n if (droppedFPS > 0) {\n // logger.log('checkFPS : droppedFPS/decodedFPS:' + droppedFPS/(1000 * currentDecoded / currentPeriod));\n if (currentDropped > hls.config.fpsDroppedMonitoringThreshold * currentDecoded) {\n let currentLevel = hls.currentLevel;\n logger.warn('drop FPS ratio greater than max allowed value for currentLevel: ' + currentLevel);\n if (currentLevel > 0 && (hls.autoLevelCapping === -1 || hls.autoLevelCapping >= currentLevel)) {\n currentLevel = currentLevel - 1;\n hls.trigger(Events.FPS_DROP_LEVEL_CAPPING, {\n level: currentLevel,\n droppedLevel: hls.currentLevel\n });\n hls.autoLevelCapping = currentLevel;\n this.streamController.nextLevelSwitch();\n }\n }\n }\n }\n this.lastTime = currentTime;\n this.lastDroppedFrames = droppedFrames;\n this.lastDecodedFrames = decodedFrames;\n }\n }\n checkFPSInterval() {\n const video = this.media;\n if (video) {\n if (this.isVideoPlaybackQualityAvailable) {\n const videoPlaybackQuality = video.getVideoPlaybackQuality();\n this.checkFPS(video, videoPlaybackQuality.totalVideoFrames, videoPlaybackQuality.droppedVideoFrames);\n } else {\n // HTMLVideoElement doesn't include the webkit types\n this.checkFPS(video, video.webkitDecodedFrameCount, video.webkitDroppedFrameCount);\n }\n }\n }\n}\n\nconst LOGGER_PREFIX = '[eme]';\n/**\n * Controller to deal with encrypted media extensions (EME)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API\n *\n * @class\n * @constructor\n */\nclass EMEController {\n constructor(hls) {\n this.hls = void 0;\n this.config = void 0;\n this.media = null;\n this.keyFormatPromise = null;\n this.keySystemAccessPromises = {};\n this._requestLicenseFailureCount = 0;\n this.mediaKeySessions = [];\n this.keyIdToKeySessionPromise = {};\n this.setMediaKeysQueue = EMEController.CDMCleanupPromise ? [EMEController.CDMCleanupPromise] : [];\n this.debug = logger.debug.bind(logger, LOGGER_PREFIX);\n this.log = logger.log.bind(logger, LOGGER_PREFIX);\n this.warn = logger.warn.bind(logger, LOGGER_PREFIX);\n this.error = logger.error.bind(logger, LOGGER_PREFIX);\n this.onMediaEncrypted = event => {\n const {\n initDataType,\n initData\n } = event;\n const logMessage = `\"${event.type}\" event: init data type: \"${initDataType}\"`;\n this.debug(logMessage);\n\n // Ignore event when initData is null\n if (initData === null) {\n return;\n }\n if (!this.keyFormatPromise) {\n let keySystems = Object.keys(this.keySystemAccessPromises);\n if (!keySystems.length) {\n keySystems = getKeySystemsForConfig(this.config);\n }\n const keyFormats = keySystems.map(keySystemDomainToKeySystemFormat).filter(k => !!k);\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n this.keyFormatPromise.then(keySystemFormat => {\n const keySystem = keySystemFormatToKeySystemDomain(keySystemFormat);\n let keyId;\n let keySystemDomain;\n if (initDataType === 'sinf') {\n if (keySystem !== KeySystems.FAIRPLAY) {\n this.warn(`Ignoring unexpected \"${event.type}\" event with init data type: \"${initDataType}\" for selected key-system ${keySystem}`);\n return;\n }\n // Match sinf keyId to playlist skd://keyId=\n const json = bin2str(new Uint8Array(initData));\n try {\n const sinf = base64Decode(JSON.parse(json).sinf);\n const tenc = parseSinf(sinf);\n if (!tenc) {\n throw new Error(`'schm' box missing or not cbcs/cenc with schi > tenc`);\n }\n keyId = tenc.subarray(8, 24);\n keySystemDomain = KeySystems.FAIRPLAY;\n } catch (error) {\n this.warn(`${logMessage} Failed to parse sinf: ${error}`);\n return;\n }\n } else {\n if (keySystem !== KeySystems.WIDEVINE && keySystem !== KeySystems.PLAYREADY) {\n this.warn(`Ignoring unexpected \"${event.type}\" event with init data type: \"${initDataType}\" for selected key-system ${keySystem}`);\n return;\n }\n // Support Widevine/PlayReady clear-lead key-session creation (otherwise depend on playlist keys)\n const psshResults = parseMultiPssh(initData);\n const psshInfos = psshResults.filter(pssh => !!pssh.systemId && keySystemIdToKeySystemDomain(pssh.systemId) === keySystem);\n if (psshInfos.length > 1) {\n this.warn(`${logMessage} Using first of ${psshInfos.length} pssh found for selected key-system ${keySystem}`);\n }\n const psshInfo = psshInfos[0];\n if (!psshInfo) {\n if (psshResults.length === 0 || psshResults.some(pssh => !pssh.systemId)) {\n this.warn(`${logMessage} contains incomplete or invalid pssh data`);\n } else {\n this.log(`ignoring ${logMessage} for ${psshResults.map(pssh => keySystemIdToKeySystemDomain(pssh.systemId)).join(',')} pssh data in favor of playlist keys`);\n }\n return;\n }\n keySystemDomain = keySystemIdToKeySystemDomain(psshInfo.systemId);\n if (psshInfo.version === 0 && psshInfo.data) {\n if (keySystemDomain === KeySystems.WIDEVINE) {\n const offset = psshInfo.data.length - 22;\n keyId = psshInfo.data.subarray(offset, offset + 16);\n } else if (keySystemDomain === KeySystems.PLAYREADY) {\n keyId = parsePlayReadyWRM(psshInfo.data);\n }\n }\n }\n if (!keySystemDomain || !keyId) {\n this.log(`Unable to handle ${logMessage} with key-system ${keySystem}`);\n return;\n }\n const keyIdHex = Hex.hexDump(keyId);\n const {\n keyIdToKeySessionPromise,\n mediaKeySessions\n } = this;\n let keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex];\n for (let i = 0; i < mediaKeySessions.length; i++) {\n // Match playlist key\n const keyContext = mediaKeySessions[i];\n const decryptdata = keyContext.decryptdata;\n if (!decryptdata.keyId) {\n continue;\n }\n const oldKeyIdHex = Hex.hexDump(decryptdata.keyId);\n if (keyIdHex === oldKeyIdHex || decryptdata.uri.replace(/-/g, '').indexOf(keyIdHex) !== -1) {\n keySessionContextPromise = keyIdToKeySessionPromise[oldKeyIdHex];\n if (decryptdata.pssh) {\n break;\n }\n delete keyIdToKeySessionPromise[oldKeyIdHex];\n decryptdata.pssh = new Uint8Array(initData);\n decryptdata.keyId = keyId;\n keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex] = keySessionContextPromise.then(() => {\n return this.generateRequestWithPreferredKeySession(keyContext, initDataType, initData, 'encrypted-event-key-match');\n });\n keySessionContextPromise.catch(error => this.handleError(error));\n break;\n }\n }\n if (!keySessionContextPromise) {\n if (keySystemDomain !== keySystem) {\n this.log(`Ignoring \"${logMessage}\" with ${keySystemDomain} init data for selected key-system ${keySystem}`);\n return;\n }\n // \"Clear-lead\" (misc key not encountered in playlist)\n keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex] = this.getKeySystemSelectionPromise([keySystemDomain]).then(({\n keySystem,\n mediaKeys\n }) => {\n var _keySystemToKeySystem;\n this.throwIfDestroyed();\n const decryptdata = new LevelKey('ISO-23001-7', keyIdHex, (_keySystemToKeySystem = keySystemDomainToKeySystemFormat(keySystem)) != null ? _keySystemToKeySystem : '');\n decryptdata.pssh = new Uint8Array(initData);\n decryptdata.keyId = keyId;\n return this.attemptSetMediaKeys(keySystem, mediaKeys).then(() => {\n this.throwIfDestroyed();\n const keySessionContext = this.createMediaKeySessionContext({\n decryptdata,\n keySystem,\n mediaKeys\n });\n return this.generateRequestWithPreferredKeySession(keySessionContext, initDataType, initData, 'encrypted-event-no-match');\n });\n });\n keySessionContextPromise.catch(error => this.handleError(error));\n }\n });\n };\n this.onWaitingForKey = event => {\n this.log(`\"${event.type}\" event`);\n };\n this.hls = hls;\n this.config = hls.config;\n this.registerListeners();\n }\n destroy() {\n this.unregisterListeners();\n this.onMediaDetached();\n // Remove any references that could be held in config options or callbacks\n const config = this.config;\n config.requestMediaKeySystemAccessFunc = null;\n config.licenseXhrSetup = config.licenseResponseCallback = undefined;\n config.drmSystems = config.drmSystemOptions = {};\n // @ts-ignore\n this.hls = this.config = this.keyIdToKeySessionPromise = null;\n // @ts-ignore\n this.onMediaEncrypted = this.onWaitingForKey = null;\n }\n registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n getLicenseServerUrl(keySystem) {\n const {\n drmSystems,\n widevineLicenseUrl\n } = this.config;\n const keySystemConfiguration = drmSystems[keySystem];\n if (keySystemConfiguration) {\n return keySystemConfiguration.licenseUrl;\n }\n\n // For backward compatibility\n if (keySystem === KeySystems.WIDEVINE && widevineLicenseUrl) {\n return widevineLicenseUrl;\n }\n }\n getLicenseServerUrlOrThrow(keySystem) {\n const url = this.getLicenseServerUrl(keySystem);\n if (url === undefined) {\n throw new Error(`no license server URL configured for key-system \"${keySystem}\"`);\n }\n return url;\n }\n getServerCertificateUrl(keySystem) {\n const {\n drmSystems\n } = this.config;\n const keySystemConfiguration = drmSystems[keySystem];\n if (keySystemConfiguration) {\n return keySystemConfiguration.serverCertificateUrl;\n } else {\n this.log(`No Server Certificate in config.drmSystems[\"${keySystem}\"]`);\n }\n }\n attemptKeySystemAccess(keySystemsToAttempt) {\n const levels = this.hls.levels;\n const uniqueCodec = (value, i, a) => !!value && a.indexOf(value) === i;\n const audioCodecs = levels.map(level => level.audioCodec).filter(uniqueCodec);\n const videoCodecs = levels.map(level => level.videoCodec).filter(uniqueCodec);\n if (audioCodecs.length + videoCodecs.length === 0) {\n videoCodecs.push('avc1.42e01e');\n }\n return new Promise((resolve, reject) => {\n const attempt = keySystems => {\n const keySystem = keySystems.shift();\n this.getMediaKeysPromise(keySystem, audioCodecs, videoCodecs).then(mediaKeys => resolve({\n keySystem,\n mediaKeys\n })).catch(error => {\n if (keySystems.length) {\n attempt(keySystems);\n } else if (error instanceof EMEKeyError) {\n reject(error);\n } else {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_ACCESS,\n error,\n fatal: true\n }, error.message));\n }\n });\n };\n attempt(keySystemsToAttempt);\n });\n }\n requestMediaKeySystemAccess(keySystem, supportedConfigurations) {\n const {\n requestMediaKeySystemAccessFunc\n } = this.config;\n if (!(typeof requestMediaKeySystemAccessFunc === 'function')) {\n let errMessage = `Configured requestMediaKeySystemAccess is not a function ${requestMediaKeySystemAccessFunc}`;\n if (requestMediaKeySystemAccess === null && self.location.protocol === 'http:') {\n errMessage = `navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`;\n }\n return Promise.reject(new Error(errMessage));\n }\n return requestMediaKeySystemAccessFunc(keySystem, supportedConfigurations);\n }\n getMediaKeysPromise(keySystem, audioCodecs, videoCodecs) {\n // This can throw, but is caught in event handler callpath\n const mediaKeySystemConfigs = getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs, this.config.drmSystemOptions);\n const keySystemAccessPromises = this.keySystemAccessPromises[keySystem];\n let keySystemAccess = keySystemAccessPromises == null ? void 0 : keySystemAccessPromises.keySystemAccess;\n if (!keySystemAccess) {\n this.log(`Requesting encrypted media \"${keySystem}\" key-system access with config: ${JSON.stringify(mediaKeySystemConfigs)}`);\n keySystemAccess = this.requestMediaKeySystemAccess(keySystem, mediaKeySystemConfigs);\n const _keySystemAccessPromises = this.keySystemAccessPromises[keySystem] = {\n keySystemAccess\n };\n keySystemAccess.catch(error => {\n this.log(`Failed to obtain access to key-system \"${keySystem}\": ${error}`);\n });\n return keySystemAccess.then(mediaKeySystemAccess => {\n this.log(`Access for key-system \"${mediaKeySystemAccess.keySystem}\" obtained`);\n const certificateRequest = this.fetchServerCertificate(keySystem);\n this.log(`Create media-keys for \"${keySystem}\"`);\n _keySystemAccessPromises.mediaKeys = mediaKeySystemAccess.createMediaKeys().then(mediaKeys => {\n this.log(`Media-keys created for \"${keySystem}\"`);\n return certificateRequest.then(certificate => {\n if (certificate) {\n return this.setMediaKeysServerCertificate(mediaKeys, keySystem, certificate);\n }\n return mediaKeys;\n });\n });\n _keySystemAccessPromises.mediaKeys.catch(error => {\n this.error(`Failed to create media-keys for \"${keySystem}\"}: ${error}`);\n });\n return _keySystemAccessPromises.mediaKeys;\n });\n }\n return keySystemAccess.then(() => keySystemAccessPromises.mediaKeys);\n }\n createMediaKeySessionContext({\n decryptdata,\n keySystem,\n mediaKeys\n }) {\n this.log(`Creating key-system session \"${keySystem}\" keyId: ${Hex.hexDump(decryptdata.keyId || [])}`);\n const mediaKeysSession = mediaKeys.createSession();\n const mediaKeySessionContext = {\n decryptdata,\n keySystem,\n mediaKeys,\n mediaKeysSession,\n keyStatus: 'status-pending'\n };\n this.mediaKeySessions.push(mediaKeySessionContext);\n return mediaKeySessionContext;\n }\n renewKeySession(mediaKeySessionContext) {\n const decryptdata = mediaKeySessionContext.decryptdata;\n if (decryptdata.pssh) {\n const keySessionContext = this.createMediaKeySessionContext(mediaKeySessionContext);\n const keyId = this.getKeyIdString(decryptdata);\n const scheme = 'cenc';\n this.keyIdToKeySessionPromise[keyId] = this.generateRequestWithPreferredKeySession(keySessionContext, scheme, decryptdata.pssh, 'expired');\n } else {\n this.warn(`Could not renew expired session. Missing pssh initData.`);\n }\n this.removeSession(mediaKeySessionContext);\n }\n getKeyIdString(decryptdata) {\n if (!decryptdata) {\n throw new Error('Could not read keyId of undefined decryptdata');\n }\n if (decryptdata.keyId === null) {\n throw new Error('keyId is null');\n }\n return Hex.hexDump(decryptdata.keyId);\n }\n updateKeySession(mediaKeySessionContext, data) {\n var _mediaKeySessionConte;\n const keySession = mediaKeySessionContext.mediaKeysSession;\n this.log(`Updating key-session \"${keySession.sessionId}\" for keyID ${Hex.hexDump(((_mediaKeySessionConte = mediaKeySessionContext.decryptdata) == null ? void 0 : _mediaKeySessionConte.keyId) || [])}\n } (data length: ${data ? data.byteLength : data})`);\n return keySession.update(data);\n }\n selectKeySystemFormat(frag) {\n const keyFormats = Object.keys(frag.levelkeys || {});\n if (!this.keyFormatPromise) {\n this.log(`Selecting key-system from fragment (sn: ${frag.sn} ${frag.type}: ${frag.level}) key formats ${keyFormats.join(', ')}`);\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n return this.keyFormatPromise;\n }\n getKeyFormatPromise(keyFormats) {\n return new Promise((resolve, reject) => {\n const keySystemsInConfig = getKeySystemsForConfig(this.config);\n const keySystemsToAttempt = keyFormats.map(keySystemFormatToKeySystemDomain).filter(value => !!value && keySystemsInConfig.indexOf(value) !== -1);\n return this.getKeySystemSelectionPromise(keySystemsToAttempt).then(({\n keySystem\n }) => {\n const keySystemFormat = keySystemDomainToKeySystemFormat(keySystem);\n if (keySystemFormat) {\n resolve(keySystemFormat);\n } else {\n reject(new Error(`Unable to find format for key-system \"${keySystem}\"`));\n }\n }).catch(reject);\n });\n }\n loadKey(data) {\n const decryptdata = data.keyInfo.decryptdata;\n const keyId = this.getKeyIdString(decryptdata);\n const keyDetails = `(keyId: ${keyId} format: \"${decryptdata.keyFormat}\" method: ${decryptdata.method} uri: ${decryptdata.uri})`;\n this.log(`Starting session for key ${keyDetails}`);\n let keySessionContextPromise = this.keyIdToKeySessionPromise[keyId];\n if (!keySessionContextPromise) {\n keySessionContextPromise = this.keyIdToKeySessionPromise[keyId] = this.getKeySystemForKeyPromise(decryptdata).then(({\n keySystem,\n mediaKeys\n }) => {\n this.throwIfDestroyed();\n this.log(`Handle encrypted media sn: ${data.frag.sn} ${data.frag.type}: ${data.frag.level} using key ${keyDetails}`);\n return this.attemptSetMediaKeys(keySystem, mediaKeys).then(() => {\n this.throwIfDestroyed();\n const keySessionContext = this.createMediaKeySessionContext({\n keySystem,\n mediaKeys,\n decryptdata\n });\n const scheme = 'cenc';\n return this.generateRequestWithPreferredKeySession(keySessionContext, scheme, decryptdata.pssh, 'playlist-key');\n });\n });\n keySessionContextPromise.catch(error => this.handleError(error));\n }\n return keySessionContextPromise;\n }\n throwIfDestroyed(message = 'Invalid state') {\n if (!this.hls) {\n throw new Error('invalid state');\n }\n }\n handleError(error) {\n if (!this.hls) {\n return;\n }\n this.error(error.message);\n if (error instanceof EMEKeyError) {\n this.hls.trigger(Events.ERROR, error.data);\n } else {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_KEYS,\n error,\n fatal: true\n });\n }\n }\n getKeySystemForKeyPromise(decryptdata) {\n const keyId = this.getKeyIdString(decryptdata);\n const mediaKeySessionContext = this.keyIdToKeySessionPromise[keyId];\n if (!mediaKeySessionContext) {\n const keySystem = keySystemFormatToKeySystemDomain(decryptdata.keyFormat);\n const keySystemsToAttempt = keySystem ? [keySystem] : getKeySystemsForConfig(this.config);\n return this.attemptKeySystemAccess(keySystemsToAttempt);\n }\n return mediaKeySessionContext;\n }\n getKeySystemSelectionPromise(keySystemsToAttempt) {\n if (!keySystemsToAttempt.length) {\n keySystemsToAttempt = getKeySystemsForConfig(this.config);\n }\n if (keySystemsToAttempt.length === 0) {\n throw new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE,\n fatal: true\n }, `Missing key-system license configuration options ${JSON.stringify({\n drmSystems: this.config.drmSystems\n })}`);\n }\n return this.attemptKeySystemAccess(keySystemsToAttempt);\n }\n attemptSetMediaKeys(keySystem, mediaKeys) {\n const queue = this.setMediaKeysQueue.slice();\n this.log(`Setting media-keys for \"${keySystem}\"`);\n // Only one setMediaKeys() can run at one time, and multiple setMediaKeys() operations\n // can be queued for execution for multiple key sessions.\n const setMediaKeysPromise = Promise.all(queue).then(() => {\n if (!this.media) {\n throw new Error('Attempted to set mediaKeys without media element attached');\n }\n return this.media.setMediaKeys(mediaKeys);\n });\n this.setMediaKeysQueue.push(setMediaKeysPromise);\n return setMediaKeysPromise.then(() => {\n this.log(`Media-keys set for \"${keySystem}\"`);\n queue.push(setMediaKeysPromise);\n this.setMediaKeysQueue = this.setMediaKeysQueue.filter(p => queue.indexOf(p) === -1);\n });\n }\n generateRequestWithPreferredKeySession(context, initDataType, initData, reason) {\n var _this$config$drmSyste, _this$config$drmSyste2;\n const generateRequestFilter = (_this$config$drmSyste = this.config.drmSystems) == null ? void 0 : (_this$config$drmSyste2 = _this$config$drmSyste[context.keySystem]) == null ? void 0 : _this$config$drmSyste2.generateRequest;\n if (generateRequestFilter) {\n try {\n const mappedInitData = generateRequestFilter.call(this.hls, initDataType, initData, context);\n if (!mappedInitData) {\n throw new Error('Invalid response from configured generateRequest filter');\n }\n initDataType = mappedInitData.initDataType;\n initData = context.decryptdata.pssh = mappedInitData.initData ? new Uint8Array(mappedInitData.initData) : null;\n } catch (error) {\n var _this$hls;\n this.warn(error.message);\n if ((_this$hls = this.hls) != null && _this$hls.config.debug) {\n throw error;\n }\n }\n }\n if (initData === null) {\n this.log(`Skipping key-session request for \"${reason}\" (no initData)`);\n return Promise.resolve(context);\n }\n const keyId = this.getKeyIdString(context.decryptdata);\n this.log(`Generating key-session request for \"${reason}\": ${keyId} (init data type: ${initDataType} length: ${initData ? initData.byteLength : null})`);\n const licenseStatus = new EventEmitter();\n const onmessage = context._onmessage = event => {\n const keySession = context.mediaKeysSession;\n if (!keySession) {\n licenseStatus.emit('error', new Error('invalid state'));\n return;\n }\n const {\n messageType,\n message\n } = event;\n this.log(`\"${messageType}\" message event for session \"${keySession.sessionId}\" message size: ${message.byteLength}`);\n if (messageType === 'license-request' || messageType === 'license-renewal') {\n this.renewLicense(context, message).catch(error => {\n this.handleError(error);\n licenseStatus.emit('error', error);\n });\n } else if (messageType === 'license-release') {\n if (context.keySystem === KeySystems.FAIRPLAY) {\n this.updateKeySession(context, strToUtf8array('acknowledged'));\n this.removeSession(context);\n }\n } else {\n this.warn(`unhandled media key message type \"${messageType}\"`);\n }\n };\n const onkeystatuseschange = context._onkeystatuseschange = event => {\n const keySession = context.mediaKeysSession;\n if (!keySession) {\n licenseStatus.emit('error', new Error('invalid state'));\n return;\n }\n this.onKeyStatusChange(context);\n const keyStatus = context.keyStatus;\n licenseStatus.emit('keyStatus', keyStatus);\n if (keyStatus === 'expired') {\n this.warn(`${context.keySystem} expired for key ${keyId}`);\n this.renewKeySession(context);\n }\n };\n context.mediaKeysSession.addEventListener('message', onmessage);\n context.mediaKeysSession.addEventListener('keystatuseschange', onkeystatuseschange);\n const keyUsablePromise = new Promise((resolve, reject) => {\n licenseStatus.on('error', reject);\n licenseStatus.on('keyStatus', keyStatus => {\n if (keyStatus.startsWith('usable')) {\n resolve();\n } else if (keyStatus === 'output-restricted') {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,\n fatal: false\n }, 'HDCP level output restricted'));\n } else if (keyStatus === 'internal-error') {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR,\n fatal: true\n }, `key status changed to \"${keyStatus}\"`));\n } else if (keyStatus === 'expired') {\n reject(new Error('key expired while generating request'));\n } else {\n this.warn(`unhandled key status change \"${keyStatus}\"`);\n }\n });\n });\n return context.mediaKeysSession.generateRequest(initDataType, initData).then(() => {\n var _context$mediaKeysSes;\n this.log(`Request generated for key-session \"${(_context$mediaKeysSes = context.mediaKeysSession) == null ? void 0 : _context$mediaKeysSes.sessionId}\" keyId: ${keyId}`);\n }).catch(error => {\n throw new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_SESSION,\n error,\n fatal: false\n }, `Error generating key-session request: ${error}`);\n }).then(() => keyUsablePromise).catch(error => {\n licenseStatus.removeAllListeners();\n this.removeSession(context);\n throw error;\n }).then(() => {\n licenseStatus.removeAllListeners();\n return context;\n });\n }\n onKeyStatusChange(mediaKeySessionContext) {\n mediaKeySessionContext.mediaKeysSession.keyStatuses.forEach((status, keyId) => {\n this.log(`key status change \"${status}\" for keyStatuses keyId: ${Hex.hexDump('buffer' in keyId ? new Uint8Array(keyId.buffer, keyId.byteOffset, keyId.byteLength) : new Uint8Array(keyId))} session keyId: ${Hex.hexDump(new Uint8Array(mediaKeySessionContext.decryptdata.keyId || []))} uri: ${mediaKeySessionContext.decryptdata.uri}`);\n mediaKeySessionContext.keyStatus = status;\n });\n }\n fetchServerCertificate(keySystem) {\n const config = this.config;\n const Loader = config.loader;\n const certLoader = new Loader(config);\n const url = this.getServerCertificateUrl(keySystem);\n if (!url) {\n return Promise.resolve();\n }\n this.log(`Fetching server certificate for \"${keySystem}\"`);\n return new Promise((resolve, reject) => {\n const loaderContext = {\n responseType: 'arraybuffer',\n url\n };\n const loadPolicy = config.certLoadPolicy.default;\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0\n };\n const loaderCallbacks = {\n onSuccess: (response, stats, context, networkDetails) => {\n resolve(response.data);\n },\n onError: (response, contex, networkDetails, stats) => {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,\n fatal: true,\n networkDetails,\n response: _objectSpread2({\n url: loaderContext.url,\n data: undefined\n }, response)\n }, `\"${keySystem}\" certificate request failed (${url}). Status: ${response.code} (${response.text})`));\n },\n onTimeout: (stats, context, networkDetails) => {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,\n fatal: true,\n networkDetails,\n response: {\n url: loaderContext.url,\n data: undefined\n }\n }, `\"${keySystem}\" certificate request timed out (${url})`));\n },\n onAbort: (stats, context, networkDetails) => {\n reject(new Error('aborted'));\n }\n };\n certLoader.load(loaderContext, loaderConfig, loaderCallbacks);\n });\n }\n setMediaKeysServerCertificate(mediaKeys, keySystem, cert) {\n return new Promise((resolve, reject) => {\n mediaKeys.setServerCertificate(cert).then(success => {\n this.log(`setServerCertificate ${success ? 'success' : 'not supported by CDM'} (${cert == null ? void 0 : cert.byteLength}) on \"${keySystem}\"`);\n resolve(mediaKeys);\n }).catch(error => {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,\n error,\n fatal: true\n }, error.message));\n });\n });\n }\n renewLicense(context, keyMessage) {\n return this.requestLicense(context, new Uint8Array(keyMessage)).then(data => {\n return this.updateKeySession(context, new Uint8Array(data)).catch(error => {\n throw new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED,\n error,\n fatal: true\n }, error.message);\n });\n });\n }\n unpackPlayReadyKeyMessage(xhr, licenseChallenge) {\n // On Edge, the raw license message is UTF-16-encoded XML. We need\n // to unpack the Challenge element (base64-encoded string containing the\n // actual license request) and any HttpHeader elements (sent as request\n // headers).\n // For PlayReady CDMs, we need to dig the Challenge out of the XML.\n const xmlString = String.fromCharCode.apply(null, new Uint16Array(licenseChallenge.buffer));\n if (!xmlString.includes('PlayReadyKeyMessage')) {\n // This does not appear to be a wrapped message as on Edge. Some\n // clients do not need this unwrapping, so we will assume this is one of\n // them. Note that \"xml\" at this point probably looks like random\n // garbage, since we interpreted UTF-8 as UTF-16.\n xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');\n return licenseChallenge;\n }\n const keyMessageXml = new DOMParser().parseFromString(xmlString, 'application/xml');\n // Set request headers.\n const headers = keyMessageXml.querySelectorAll('HttpHeader');\n if (headers.length > 0) {\n let header;\n for (let i = 0, len = headers.length; i < len; i++) {\n var _header$querySelector, _header$querySelector2;\n header = headers[i];\n const name = (_header$querySelector = header.querySelector('name')) == null ? void 0 : _header$querySelector.textContent;\n const value = (_header$querySelector2 = header.querySelector('value')) == null ? void 0 : _header$querySelector2.textContent;\n if (name && value) {\n xhr.setRequestHeader(name, value);\n }\n }\n }\n const challengeElement = keyMessageXml.querySelector('Challenge');\n const challengeText = challengeElement == null ? void 0 : challengeElement.textContent;\n if (!challengeText) {\n throw new Error(`Cannot find <Challenge> in key message`);\n }\n return strToUtf8array(atob(challengeText));\n }\n setupLicenseXHR(xhr, url, keysListItem, licenseChallenge) {\n const licenseXhrSetup = this.config.licenseXhrSetup;\n if (!licenseXhrSetup) {\n xhr.open('POST', url, true);\n return Promise.resolve({\n xhr,\n licenseChallenge\n });\n }\n return Promise.resolve().then(() => {\n if (!keysListItem.decryptdata) {\n throw new Error('Key removed');\n }\n return licenseXhrSetup.call(this.hls, xhr, url, keysListItem, licenseChallenge);\n }).catch(error => {\n if (!keysListItem.decryptdata) {\n // Key session removed. Cancel license request.\n throw error;\n }\n // let's try to open before running setup\n xhr.open('POST', url, true);\n return licenseXhrSetup.call(this.hls, xhr, url, keysListItem, licenseChallenge);\n }).then(licenseXhrSetupResult => {\n // if licenseXhrSetup did not yet call open, let's do it now\n if (!xhr.readyState) {\n xhr.open('POST', url, true);\n }\n const finalLicenseChallenge = licenseXhrSetupResult ? licenseXhrSetupResult : licenseChallenge;\n return {\n xhr,\n licenseChallenge: finalLicenseChallenge\n };\n });\n }\n requestLicense(keySessionContext, licenseChallenge) {\n const keyLoadPolicy = this.config.keyLoadPolicy.default;\n return new Promise((resolve, reject) => {\n const url = this.getLicenseServerUrlOrThrow(keySessionContext.keySystem);\n this.log(`Sending license request to URL: ${url}`);\n const xhr = new XMLHttpRequest();\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = () => {\n if (!this.hls || !keySessionContext.mediaKeysSession) {\n return reject(new Error('invalid state'));\n }\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n this._requestLicenseFailureCount = 0;\n let data = xhr.response;\n this.log(`License received ${data instanceof ArrayBuffer ? data.byteLength : data}`);\n const licenseResponseCallback = this.config.licenseResponseCallback;\n if (licenseResponseCallback) {\n try {\n data = licenseResponseCallback.call(this.hls, xhr, url, keySessionContext);\n } catch (error) {\n this.error(error);\n }\n }\n resolve(data);\n } else {\n const retryConfig = keyLoadPolicy.errorRetry;\n const maxNumRetry = retryConfig ? retryConfig.maxNumRetry : 0;\n this._requestLicenseFailureCount++;\n if (this._requestLicenseFailureCount > maxNumRetry || xhr.status >= 400 && xhr.status < 500) {\n reject(new EMEKeyError({\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true,\n networkDetails: xhr,\n response: {\n url,\n data: undefined,\n code: xhr.status,\n text: xhr.statusText\n }\n }, `License Request XHR failed (${url}). Status: ${xhr.status} (${xhr.statusText})`));\n } else {\n const attemptsLeft = maxNumRetry - this._requestLicenseFailureCount + 1;\n this.warn(`Retrying license request, ${attemptsLeft} attempts left`);\n this.requestLicense(keySessionContext, licenseChallenge).then(resolve, reject);\n }\n }\n }\n };\n if (keySessionContext.licenseXhr && keySessionContext.licenseXhr.readyState !== XMLHttpRequest.DONE) {\n keySessionContext.licenseXhr.abort();\n }\n keySessionContext.licenseXhr = xhr;\n this.setupLicenseXHR(xhr, url, keySessionContext, licenseChallenge).then(({\n xhr,\n licenseChallenge\n }) => {\n if (keySessionContext.keySystem == KeySystems.PLAYREADY) {\n licenseChallenge = this.unpackPlayReadyKeyMessage(xhr, licenseChallenge);\n }\n xhr.send(licenseChallenge);\n });\n });\n }\n onMediaAttached(event, data) {\n if (!this.config.emeEnabled) {\n return;\n }\n const media = data.media;\n\n // keep reference of media\n this.media = media;\n media.removeEventListener('encrypted', this.onMediaEncrypted);\n media.removeEventListener('waitingforkey', this.onWaitingForKey);\n media.addEventListener('encrypted', this.onMediaEncrypted);\n media.addEventListener('waitingforkey', this.onWaitingForKey);\n }\n onMediaDetached() {\n const media = this.media;\n const mediaKeysList = this.mediaKeySessions;\n if (media) {\n media.removeEventListener('encrypted', this.onMediaEncrypted);\n media.removeEventListener('waitingforkey', this.onWaitingForKey);\n this.media = null;\n }\n this._requestLicenseFailureCount = 0;\n this.setMediaKeysQueue = [];\n this.mediaKeySessions = [];\n this.keyIdToKeySessionPromise = {};\n LevelKey.clearKeyUriToKeyIdMap();\n\n // Close all sessions and remove media keys from the video element.\n const keySessionCount = mediaKeysList.length;\n EMEController.CDMCleanupPromise = Promise.all(mediaKeysList.map(mediaKeySessionContext => this.removeSession(mediaKeySessionContext)).concat(media == null ? void 0 : media.setMediaKeys(null).catch(error => {\n this.log(`Could not clear media keys: ${error}`);\n }))).then(() => {\n if (keySessionCount) {\n this.log('finished closing key sessions and clearing media keys');\n mediaKeysList.length = 0;\n }\n }).catch(error => {\n this.log(`Could not close sessions and clear media keys: ${error}`);\n });\n }\n onManifestLoading() {\n this.keyFormatPromise = null;\n }\n onManifestLoaded(event, {\n sessionKeys\n }) {\n if (!sessionKeys || !this.config.emeEnabled) {\n return;\n }\n if (!this.keyFormatPromise) {\n const keyFormats = sessionKeys.reduce((formats, sessionKey) => {\n if (formats.indexOf(sessionKey.keyFormat) === -1) {\n formats.push(sessionKey.keyFormat);\n }\n return formats;\n }, []);\n this.log(`Selecting key-system from session-keys ${keyFormats.join(', ')}`);\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n }\n removeSession(mediaKeySessionContext) {\n const {\n mediaKeysSession,\n licenseXhr\n } = mediaKeySessionContext;\n if (mediaKeysSession) {\n this.log(`Remove licenses and keys and close session ${mediaKeysSession.sessionId}`);\n if (mediaKeySessionContext._onmessage) {\n mediaKeysSession.removeEventListener('message', mediaKeySessionContext._onmessage);\n mediaKeySessionContext._onmessage = undefined;\n }\n if (mediaKeySessionContext._onkeystatuseschange) {\n mediaKeysSession.removeEventListener('keystatuseschange', mediaKeySessionContext._onkeystatuseschange);\n mediaKeySessionContext._onkeystatuseschange = undefined;\n }\n if (licenseXhr && licenseXhr.readyState !== XMLHttpRequest.DONE) {\n licenseXhr.abort();\n }\n mediaKeySessionContext.mediaKeysSession = mediaKeySessionContext.decryptdata = mediaKeySessionContext.licenseXhr = undefined;\n const index = this.mediaKeySessions.indexOf(mediaKeySessionContext);\n if (index > -1) {\n this.mediaKeySessions.splice(index, 1);\n }\n return mediaKeysSession.remove().catch(error => {\n this.log(`Could not remove session: ${error}`);\n }).then(() => {\n return mediaKeysSession.close();\n }).catch(error => {\n this.log(`Could not close session: ${error}`);\n });\n }\n }\n}\nEMEController.CDMCleanupPromise = void 0;\nclass EMEKeyError extends Error {\n constructor(data, message) {\n super(message);\n this.data = void 0;\n data.error || (data.error = new Error(message));\n this.data = data;\n data.err = data.error;\n }\n}\n\n/**\n * Common Media Object Type\n *\n * @group CMCD\n * @group CMSD\n *\n * @beta\n */\nvar CmObjectType;\n(function (CmObjectType) {\n /**\n * text file, such as a manifest or playlist\n */\n CmObjectType[\"MANIFEST\"] = \"m\";\n /**\n * audio only\n */\n CmObjectType[\"AUDIO\"] = \"a\";\n /**\n * video only\n */\n CmObjectType[\"VIDEO\"] = \"v\";\n /**\n * muxed audio and video\n */\n CmObjectType[\"MUXED\"] = \"av\";\n /**\n * init segment\n */\n CmObjectType[\"INIT\"] = \"i\";\n /**\n * caption or subtitle\n */\n CmObjectType[\"CAPTION\"] = \"c\";\n /**\n * ISOBMFF timed text track\n */\n CmObjectType[\"TIMED_TEXT\"] = \"tt\";\n /**\n * cryptographic key, license or certificate.\n */\n CmObjectType[\"KEY\"] = \"k\";\n /**\n * other\n */\n CmObjectType[\"OTHER\"] = \"o\";\n})(CmObjectType || (CmObjectType = {}));\n\n/**\n * Common Media Streaming Format\n *\n * @group CMCD\n * @group CMSD\n *\n * @beta\n */\nvar CmStreamingFormat;\n(function (CmStreamingFormat) {\n /**\n * MPEG DASH\n */\n CmStreamingFormat[\"DASH\"] = \"d\";\n /**\n * HTTP Live Streaming (HLS)\n */\n CmStreamingFormat[\"HLS\"] = \"h\";\n /**\n * Smooth Streaming\n */\n CmStreamingFormat[\"SMOOTH\"] = \"s\";\n /**\n * Other\n */\n CmStreamingFormat[\"OTHER\"] = \"o\";\n})(CmStreamingFormat || (CmStreamingFormat = {}));\n\n/**\n * CMCD header fields.\n *\n * @group CMCD\n *\n * @beta\n */\nvar CmcdHeaderField;\n(function (CmcdHeaderField) {\n /**\n * keys whose values vary with the object being requested.\n */\n CmcdHeaderField[\"OBJECT\"] = \"CMCD-Object\";\n /**\n * keys whose values vary with each request.\n */\n CmcdHeaderField[\"REQUEST\"] = \"CMCD-Request\";\n /**\n * keys whose values are expected to be invariant over the life of the session.\n */\n CmcdHeaderField[\"SESSION\"] = \"CMCD-Session\";\n /**\n * keys whose values do not vary with every request or object.\n */\n CmcdHeaderField[\"STATUS\"] = \"CMCD-Status\";\n})(CmcdHeaderField || (CmcdHeaderField = {}));\n\n/**\n * The map of CMCD header fields to official CMCD keys.\n *\n * @internal\n *\n * @group CMCD\n */\nconst CmcdHeaderMap = {\n [CmcdHeaderField.OBJECT]: ['br', 'd', 'ot', 'tb'],\n [CmcdHeaderField.REQUEST]: ['bl', 'dl', 'mtp', 'nor', 'nrr', 'su'],\n [CmcdHeaderField.SESSION]: ['cid', 'pr', 'sf', 'sid', 'st', 'v'],\n [CmcdHeaderField.STATUS]: ['bs', 'rtp']\n};\n\n/**\n * Structured Field Item\n *\n * @group Structured Field\n *\n * @beta\n */\nclass SfItem {\n constructor(value, params) {\n this.value = void 0;\n this.params = void 0;\n if (Array.isArray(value)) {\n value = value.map(v => v instanceof SfItem ? v : new SfItem(v));\n }\n this.value = value;\n this.params = params;\n }\n}\n\n/**\n * A class to represent structured field tokens when `Symbol` is not available.\n *\n * @group Structured Field\n *\n * @beta\n */\nclass SfToken {\n constructor(description) {\n this.description = void 0;\n this.description = description;\n }\n}\n\nconst DICT = 'Dict';\n\nfunction format(value) {\n if (Array.isArray(value)) {\n return JSON.stringify(value);\n }\n if (value instanceof Map) {\n return 'Map{}';\n }\n if (value instanceof Set) {\n return 'Set{}';\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n}\nfunction throwError(action, src, type, cause) {\n return new Error(`failed to ${action} \"${format(src)}\" as ${type}`, {\n cause\n });\n}\n\nconst BARE_ITEM = 'Bare Item';\n\nconst BOOLEAN = 'Boolean';\n\nconst BYTES = 'Byte Sequence';\n\nconst DECIMAL = 'Decimal';\n\nconst INTEGER = 'Integer';\n\nfunction isInvalidInt(value) {\n return value < -999999999999999 || 999999999999999 < value;\n}\n\nconst STRING_REGEX = /[\\x00-\\x1f\\x7f]+/; // eslint-disable-line no-control-regex\n\nconst TOKEN = 'Token';\n\nconst KEY = 'Key';\n\nfunction serializeError(src, type, cause) {\n return throwError('serialize', src, type, cause);\n}\n\n// 4.1.9. Serializing a Boolean\n//\n// Given a Boolean as input_boolean, return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. If input_boolean is not a boolean, fail serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. Append \"?\" to output.\n//\n// 4. If input_boolean is true, append \"1\" to output.\n//\n// 5. If input_boolean is false, append \"0\" to output.\n//\n// 6. Return output.\nfunction serializeBoolean(value) {\n if (typeof value !== 'boolean') {\n throw serializeError(value, BOOLEAN);\n }\n return value ? '?1' : '?0';\n}\n\n/**\n * Encodes binary data to base64\n *\n * @param binary - The binary data to encode\n * @returns The base64 encoded string\n *\n * @group Utils\n *\n * @beta\n */\nfunction base64encode(binary) {\n return btoa(String.fromCharCode(...binary));\n}\n\n// 4.1.8. Serializing a Byte Sequence\n//\n// Given a Byte Sequence as input_bytes, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. If input_bytes is not a sequence of bytes, fail serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. Append \":\" to output.\n//\n// 4. Append the result of base64-encoding input_bytes as per\n// [RFC4648], Section 4, taking account of the requirements below.\n//\n// 5. Append \":\" to output.\n//\n// 6. Return output.\n//\n// The encoded data is required to be padded with \"=\", as per [RFC4648],\n// Section 3.2.\n//\n// Likewise, encoded data SHOULD have pad bits set to zero, as per\n// [RFC4648], Section 3.5, unless it is not possible to do so due to\n// implementation constraints.\nfunction serializeByteSequence(value) {\n if (ArrayBuffer.isView(value) === false) {\n throw serializeError(value, BYTES);\n }\n return `:${base64encode(value)}:`;\n}\n\n// 4.1.4. Serializing an Integer\n//\n// Given an Integer as input_integer, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. If input_integer is not an integer in the range of\n// -999,999,999,999,999 to 999,999,999,999,999 inclusive, fail\n// serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. If input_integer is less than (but not equal to) 0, append \"-\" to\n// output.\n//\n// 4. Append input_integer's numeric value represented in base 10 using\n// only decimal digits to output.\n//\n// 5. Return output.\nfunction serializeInteger(value) {\n if (isInvalidInt(value)) {\n throw serializeError(value, INTEGER);\n }\n return value.toString();\n}\n\n// 4.1.10. Serializing a Date\n//\n// Given a Date as input_integer, return an ASCII string suitable for\n// use in an HTTP field value.\n// 1. Let output be \"@\".\n// 2. Append to output the result of running Serializing an Integer\n// with input_date (Section 4.1.4).\n// 3. Return output.\nfunction serializeDate(value) {\n return `@${serializeInteger(value.getTime() / 1000)}`;\n}\n\n/**\n * This implements the rounding procedure described in step 2 of the \"Serializing a Decimal\" specification.\n * This rounding style is known as \"even rounding\", \"banker's rounding\", or \"commercial rounding\".\n *\n * @param value - The value to round\n * @param precision - The number of decimal places to round to\n * @returns The rounded value\n *\n * @group Utils\n *\n * @beta\n */\nfunction roundToEven(value, precision) {\n if (value < 0) {\n return -roundToEven(-value, precision);\n }\n const decimalShift = Math.pow(10, precision);\n const isEquidistant = Math.abs(value * decimalShift % 1 - 0.5) < Number.EPSILON;\n if (isEquidistant) {\n // If the tail of the decimal place is 'equidistant' we round to the nearest even value\n const flooredValue = Math.floor(value * decimalShift);\n return (flooredValue % 2 === 0 ? flooredValue : flooredValue + 1) / decimalShift;\n } else {\n // Otherwise, proceed as normal\n return Math.round(value * decimalShift) / decimalShift;\n }\n}\n\n// 4.1.5. Serializing a Decimal\n//\n// Given a decimal number as input_decimal, return an ASCII string\n// suitable for use in a HTTP field value.\n//\n// 1. If input_decimal is not a decimal number, fail serialization.\n//\n// 2. If input_decimal has more than three significant digits to the\n// right of the decimal point, round it to three decimal places,\n// rounding the final digit to the nearest value, or to the even\n// value if it is equidistant.\n//\n// 3. If input_decimal has more than 12 significant digits to the left\n// of the decimal point after rounding, fail serialization.\n//\n// 4. Let output be an empty string.\n//\n// 5. If input_decimal is less than (but not equal to) 0, append \"-\"\n// to output.\n//\n// 6. Append input_decimal's integer component represented in base 10\n// (using only decimal digits) to output; if it is zero, append\n// \"0\".\n//\n// 7. Append \".\" to output.\n//\n// 8. If input_decimal's fractional component is zero, append \"0\" to\n// output.\n//\n// 9. Otherwise, append the significant digits of input_decimal's\n// fractional component represented in base 10 (using only decimal\n// digits) to output.\n//\n// 10. Return output.\nfunction serializeDecimal(value) {\n const roundedValue = roundToEven(value, 3); // round to 3 decimal places\n if (Math.floor(Math.abs(roundedValue)).toString().length > 12) {\n throw serializeError(value, DECIMAL);\n }\n const stringValue = roundedValue.toString();\n return stringValue.includes('.') ? stringValue : `${stringValue}.0`;\n}\n\nconst STRING = 'String';\n\n// 4.1.6. Serializing a String\n//\n// Given a String as input_string, return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Convert input_string into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_string contains characters in the range %x00-1f or %x7f\n// (i.e., not in VCHAR or SP), fail serialization.\n//\n// 3. Let output be the string DQUOTE.\n//\n// 4. For each character char in input_string:\n//\n// 1. If char is \"\\\" or DQUOTE:\n//\n// 1. Append \"\\\" to output.\n//\n// 2. Append char to output.\n//\n// 5. Append DQUOTE to output.\n//\n// 6. Return output.\nfunction serializeString(value) {\n if (STRING_REGEX.test(value)) {\n throw serializeError(value, STRING);\n }\n return `\"${value.replace(/\\\\/g, `\\\\\\\\`).replace(/\"/g, `\\\\\"`)}\"`;\n}\n\nfunction symbolToStr(symbol) {\n return symbol.description || symbol.toString().slice(7, -1);\n}\n\nfunction serializeToken(token) {\n const value = symbolToStr(token);\n if (/^([a-zA-Z*])([!#$%&'*+\\-.^_`|~\\w:/]*)$/.test(value) === false) {\n throw serializeError(value, TOKEN);\n }\n return value;\n}\n\n// 4.1.3.1. Serializing a Bare Item\n//\n// Given an Item as input_item, return an ASCII string suitable for use\n// in a HTTP field value.\n//\n// 1. If input_item is an Integer, return the result of running\n// Serializing an Integer (Section 4.1.4) with input_item.\n//\n// 2. If input_item is a Decimal, return the result of running\n// Serializing a Decimal (Section 4.1.5) with input_item.\n//\n// 3. If input_item is a String, return the result of running\n// Serializing a String (Section 4.1.6) with input_item.\n//\n// 4. If input_item is a Token, return the result of running\n// Serializing a Token (Section 4.1.7) with input_item.\n//\n// 5. If input_item is a Boolean, return the result of running\n// Serializing a Boolean (Section 4.1.9) with input_item.\n//\n// 6. If input_item is a Byte Sequence, return the result of running\n// Serializing a Byte Sequence (Section 4.1.8) with input_item.\n//\n// 7. If input_item is a Date, return the result of running Serializing\n// a Date (Section 4.1.10) with input_item.\n//\n// 8. Otherwise, fail serialization.\nfunction serializeBareItem(value) {\n switch (typeof value) {\n case 'number':\n if (!isFiniteNumber(value)) {\n throw serializeError(value, BARE_ITEM);\n }\n if (Number.isInteger(value)) {\n return serializeInteger(value);\n }\n return serializeDecimal(value);\n case 'string':\n return serializeString(value);\n case 'symbol':\n return serializeToken(value);\n case 'boolean':\n return serializeBoolean(value);\n case 'object':\n if (value instanceof Date) {\n return serializeDate(value);\n }\n if (value instanceof Uint8Array) {\n return serializeByteSequence(value);\n }\n if (value instanceof SfToken) {\n return serializeToken(value);\n }\n default:\n // fail\n throw serializeError(value, BARE_ITEM);\n }\n}\n\n// 4.1.1.3. Serializing a Key\n//\n// Given a key as input_key, return an ASCII string suitable for use in\n// a HTTP field value.\n//\n// 1. Convert input_key into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_key contains characters not in lcalpha, DIGIT, \"_\", \"-\",\n// \".\", or \"*\" fail serialization.\n//\n// 3. If the first character of input_key is not lcalpha or \"*\", fail\n// serialization.\n//\n// 4. Let output be an empty string.\n//\n// 5. Append input_key to output.\n//\n// 6. Return output.\nfunction serializeKey(value) {\n if (/^[a-z*][a-z0-9\\-_.*]*$/.test(value) === false) {\n throw serializeError(value, KEY);\n }\n return value;\n}\n\n// 4.1.1.2. Serializing Parameters\n//\n// Given an ordered Dictionary as input_parameters (each member having a\n// param_name and a param_value), return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each param_name with a value of param_value in\n// input_parameters:\n//\n// 1. Append \";\" to output.\n//\n// 2. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with param_name to output.\n//\n// 3. If param_value is not Boolean true:\n//\n// 1. Append \"=\" to output.\n//\n// 2. Append the result of running Serializing a bare Item\n// (Section 4.1.3.1) with param_value to output.\n//\n// 3. Return output.\nfunction serializeParams(params) {\n if (params == null) {\n return '';\n }\n return Object.entries(params).map(([key, value]) => {\n if (value === true) {\n return `;${serializeKey(key)}`; // omit true\n }\n return `;${serializeKey(key)}=${serializeBareItem(value)}`;\n }).join('');\n}\n\n// 4.1.3. Serializing an Item\n//\n// Given an Item as bare_item and Parameters as item_parameters, return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. Append the result of running Serializing a Bare Item\n// Section 4.1.3.1 with bare_item to output.\n//\n// 3. Append the result of running Serializing Parameters\n// Section 4.1.1.2 with item_parameters to output.\n//\n// 4. Return output.\nfunction serializeItem(value) {\n if (value instanceof SfItem) {\n return `${serializeBareItem(value.value)}${serializeParams(value.params)}`;\n } else {\n return serializeBareItem(value);\n }\n}\n\n// 4.1.1.1. Serializing an Inner List\n//\n// Given an array of (member_value, parameters) tuples as inner_list,\n// and parameters as list_parameters, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. Let output be the string \"(\".\n//\n// 2. For each (member_value, parameters) of inner_list:\n//\n// 1. Append the result of running Serializing an Item\n// (Section 4.1.3) with (member_value, parameters) to output.\n//\n// 2. If more values remain in inner_list, append a single SP to\n// output.\n//\n// 3. Append \")\" to output.\n//\n// 4. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with list_parameters to output.\n//\n// 5. Return output.\nfunction serializeInnerList(value) {\n return `(${value.value.map(serializeItem).join(' ')})${serializeParams(value.params)}`;\n}\n\n// 4.1.2. Serializing a Dictionary\n//\n// Given an ordered Dictionary as input_dictionary (each member having a\n// member_name and a tuple value of (member_value, parameters)), return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each member_name with a value of (member_value, parameters)\n// in input_dictionary:\n//\n// 1. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with member's member_name to output.\n//\n// 2. If member_value is Boolean true:\n//\n// 1. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with parameters to output.\n//\n// 3. Otherwise:\n//\n// 1. Append \"=\" to output.\n//\n// 2. If member_value is an array, append the result of running\n// Serializing an Inner List (Section 4.1.1.1) with\n// (member_value, parameters) to output.\n//\n// 3. Otherwise, append the result of running Serializing an\n// Item (Section 4.1.3) with (member_value, parameters) to\n// output.\n//\n// 4. If more members remain in input_dictionary:\n//\n// 1. Append \",\" to output.\n//\n// 2. Append a single SP to output.\n//\n// 3. Return output.\nfunction serializeDict(dict, options = {\n whitespace: true\n}) {\n if (typeof dict !== 'object') {\n throw serializeError(dict, DICT);\n }\n const entries = dict instanceof Map ? dict.entries() : Object.entries(dict);\n const optionalWhiteSpace = options != null && options.whitespace ? ' ' : '';\n return Array.from(entries).map(([key, item]) => {\n if (item instanceof SfItem === false) {\n item = new SfItem(item);\n }\n let output = serializeKey(key);\n if (item.value === true) {\n output += serializeParams(item.params);\n } else {\n output += '=';\n if (Array.isArray(item.value)) {\n output += serializeInnerList(item);\n } else {\n output += serializeItem(item);\n }\n }\n return output;\n }).join(`,${optionalWhiteSpace}`);\n}\n\n/**\n * Encode an object into a structured field dictionary\n *\n * @param input - The structured field dictionary to encode\n * @returns The structured field string\n *\n * @group Structured Field\n *\n * @beta\n */\nfunction encodeSfDict(value, options) {\n return serializeDict(value, options);\n}\n\n/**\n * Checks if the given key is a token field.\n *\n * @param key - The key to check.\n *\n * @returns `true` if the key is a token field.\n *\n * @internal\n *\n * @group CMCD\n */\nconst isTokenField = key => key === 'ot' || key === 'sf' || key === 'st';\n\nconst isValid = value => {\n if (typeof value === 'number') {\n return isFiniteNumber(value);\n }\n return value != null && value !== '' && value !== false;\n};\n\n/**\n * Constructs a relative path from a URL.\n *\n * @param url - The destination URL\n * @param base - The base URL\n * @returns The relative path\n *\n * @group Utils\n *\n * @beta\n */\nfunction urlToRelativePath(url, base) {\n const to = new URL(url);\n const from = new URL(base);\n if (to.origin !== from.origin) {\n return url;\n }\n const toPath = to.pathname.split('/').slice(1);\n const fromPath = from.pathname.split('/').slice(1, -1);\n // remove common parents\n while (toPath[0] === fromPath[0]) {\n toPath.shift();\n fromPath.shift();\n }\n // add back paths\n while (fromPath.length) {\n fromPath.shift();\n toPath.unshift('..');\n }\n return toPath.join('/');\n}\n\n/**\n * Generate a random v4 UUID\n *\n * @returns A random v4 UUID\n *\n * @group Utils\n *\n * @beta\n */\nfunction uuid() {\n try {\n return crypto.randomUUID();\n } catch (error) {\n try {\n const url = URL.createObjectURL(new Blob());\n const uuid = url.toString();\n URL.revokeObjectURL(url);\n return uuid.slice(uuid.lastIndexOf('/') + 1);\n } catch (error) {\n let dt = new Date().getTime();\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n return (c == 'x' ? r : r & 0x3 | 0x8).toString(16);\n });\n return uuid;\n }\n }\n}\n\nconst toRounded = value => Math.round(value);\nconst toUrlSafe = (value, options) => {\n if (options != null && options.baseUrl) {\n value = urlToRelativePath(value, options.baseUrl);\n }\n return encodeURIComponent(value);\n};\nconst toHundred = value => toRounded(value / 100) * 100;\n/**\n * The default formatters for CMCD values.\n *\n * @group CMCD\n *\n * @beta\n */\nconst CmcdFormatters = {\n /**\n * Bitrate (kbps) rounded integer\n */\n br: toRounded,\n /**\n * Duration (milliseconds) rounded integer\n */\n d: toRounded,\n /**\n * Buffer Length (milliseconds) rounded nearest 100ms\n */\n bl: toHundred,\n /**\n * Deadline (milliseconds) rounded nearest 100ms\n */\n dl: toHundred,\n /**\n * Measured Throughput (kbps) rounded nearest 100kbps\n */\n mtp: toHundred,\n /**\n * Next Object Request URL encoded\n */\n nor: toUrlSafe,\n /**\n * Requested maximum throughput (kbps) rounded nearest 100kbps\n */\n rtp: toHundred,\n /**\n * Top Bitrate (kbps) rounded integer\n */\n tb: toRounded\n};\n\n/**\n * Internal CMCD processing function.\n *\n * @param obj - The CMCD object to process.\n * @param map - The mapping function to use.\n * @param options - Options for encoding.\n *\n * @internal\n *\n * @group CMCD\n */\nfunction processCmcd(obj, options) {\n const results = {};\n if (obj == null || typeof obj !== 'object') {\n return results;\n }\n const keys = Object.keys(obj).sort();\n const formatters = _extends({}, CmcdFormatters, options == null ? void 0 : options.formatters);\n const filter = options == null ? void 0 : options.filter;\n keys.forEach(key => {\n if (filter != null && filter(key)) {\n return;\n }\n let value = obj[key];\n const formatter = formatters[key];\n if (formatter) {\n value = formatter(value, options);\n }\n // Version should only be reported if not equal to 1.\n if (key === 'v' && value === 1) {\n return;\n }\n // Playback rate should only be sent if not equal to 1.\n if (key == 'pr' && value === 1) {\n return;\n }\n // ignore invalid values\n if (!isValid(value)) {\n return;\n }\n if (isTokenField(key) && typeof value === 'string') {\n value = new SfToken(value);\n }\n results[key] = value;\n });\n return results;\n}\n\n/**\n * Encode a CMCD object to a string.\n *\n * @param cmcd - The CMCD object to encode.\n * @param options - Options for encoding.\n *\n * @returns The encoded CMCD string.\n *\n * @group CMCD\n *\n * @beta\n */\nfunction encodeCmcd(cmcd, options = {}) {\n if (!cmcd) {\n return '';\n }\n return encodeSfDict(processCmcd(cmcd, options), _extends({\n whitespace: false\n }, options));\n}\n\n/**\n * Convert a CMCD data object to request headers\n *\n * @param cmcd - The CMCD data object to convert.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The CMCD header shards.\n *\n * @group CMCD\n *\n * @beta\n */\nfunction toCmcdHeaders(cmcd, options = {}) {\n if (!cmcd) {\n return {};\n }\n const entries = Object.entries(cmcd);\n const headerMap = Object.entries(CmcdHeaderMap).concat(Object.entries((options == null ? void 0 : options.customHeaderMap) || {}));\n const shards = entries.reduce((acc, entry) => {\n var _headerMap$find, _acc$field;\n const [key, value] = entry;\n const field = ((_headerMap$find = headerMap.find(entry => entry[1].includes(key))) == null ? void 0 : _headerMap$find[0]) || CmcdHeaderField.REQUEST;\n (_acc$field = acc[field]) != null ? _acc$field : acc[field] = {};\n acc[field][key] = value;\n return acc;\n }, {});\n return Object.entries(shards).reduce((acc, [field, value]) => {\n acc[field] = encodeCmcd(value, options);\n return acc;\n }, {});\n}\n\n/**\n * Append CMCD query args to a header object.\n *\n * @param headers - The headers to append to.\n * @param cmcd - The CMCD object to append.\n * @param customHeaderMap - A map of custom CMCD keys to header fields.\n *\n * @returns The headers with the CMCD header shards appended.\n *\n * @group CMCD\n *\n * @beta\n */\nfunction appendCmcdHeaders(headers, cmcd, options) {\n return _extends(headers, toCmcdHeaders(cmcd, options));\n}\n\n/**\n * CMCD parameter name.\n *\n * @group CMCD\n *\n * @beta\n */\nconst CMCD_PARAM = 'CMCD';\n\n/**\n * Convert a CMCD data object to a query arg.\n *\n * @param cmcd - The CMCD object to convert.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The CMCD query arg.\n *\n * @group CMCD\n *\n * @beta\n */\nfunction toCmcdQuery(cmcd, options = {}) {\n if (!cmcd) {\n return '';\n }\n const params = encodeCmcd(cmcd, options);\n return `${CMCD_PARAM}=${encodeURIComponent(params)}`;\n}\n\nconst REGEX = /CMCD=[^&#]+/;\n/**\n * Append CMCD query args to a URL.\n *\n * @param url - The URL to append to.\n * @param cmcd - The CMCD object to append.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The URL with the CMCD query args appended.\n *\n * @group CMCD\n *\n * @beta\n */\nfunction appendCmcdQuery(url, cmcd, options) {\n // TODO: Replace with URLSearchParams once we drop Safari < 10.1 & Chrome < 49 support.\n // https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\n const query = toCmcdQuery(cmcd, options);\n if (!query) {\n return url;\n }\n if (REGEX.test(url)) {\n return url.replace(REGEX, query);\n }\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}${query}`;\n}\n\n/**\n * Controller to deal with Common Media Client Data (CMCD)\n * @see https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf\n */\nclass CMCDController {\n // eslint-disable-line no-restricted-globals\n\n constructor(hls) {\n this.hls = void 0;\n this.config = void 0;\n this.media = void 0;\n this.sid = void 0;\n this.cid = void 0;\n this.useHeaders = false;\n this.includeKeys = void 0;\n this.initialized = false;\n this.starved = false;\n this.buffering = true;\n this.audioBuffer = void 0;\n // eslint-disable-line no-restricted-globals\n this.videoBuffer = void 0;\n this.onWaiting = () => {\n if (this.initialized) {\n this.starved = true;\n }\n this.buffering = true;\n };\n this.onPlaying = () => {\n if (!this.initialized) {\n this.initialized = true;\n }\n this.buffering = false;\n };\n /**\n * Apply CMCD data to a manifest request.\n */\n this.applyPlaylistData = context => {\n try {\n this.apply(context, {\n ot: CmObjectType.MANIFEST,\n su: !this.initialized\n });\n } catch (error) {\n logger.warn('Could not generate manifest CMCD data.', error);\n }\n };\n /**\n * Apply CMCD data to a segment request\n */\n this.applyFragmentData = context => {\n try {\n const fragment = context.frag;\n const level = this.hls.levels[fragment.level];\n const ot = this.getObjectType(fragment);\n const data = {\n d: fragment.duration * 1000,\n ot\n };\n if (ot === CmObjectType.VIDEO || ot === CmObjectType.AUDIO || ot == CmObjectType.MUXED) {\n data.br = level.bitrate / 1000;\n data.tb = this.getTopBandwidth(ot) / 1000;\n data.bl = this.getBufferLength(ot);\n }\n this.apply(context, data);\n } catch (error) {\n logger.warn('Could not generate segment CMCD data.', error);\n }\n };\n this.hls = hls;\n const config = this.config = hls.config;\n const {\n cmcd\n } = config;\n if (cmcd != null) {\n config.pLoader = this.createPlaylistLoader();\n config.fLoader = this.createFragmentLoader();\n this.sid = cmcd.sessionId || uuid();\n this.cid = cmcd.contentId;\n this.useHeaders = cmcd.useHeaders === true;\n this.includeKeys = cmcd.includeKeys;\n this.registerListeners();\n }\n }\n registerListeners() {\n const hls = this.hls;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n }\n unregisterListeners() {\n const hls = this.hls;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n }\n destroy() {\n this.unregisterListeners();\n this.onMediaDetached();\n\n // @ts-ignore\n this.hls = this.config = this.audioBuffer = this.videoBuffer = null;\n // @ts-ignore\n this.onWaiting = this.onPlaying = null;\n }\n onMediaAttached(event, data) {\n this.media = data.media;\n this.media.addEventListener('waiting', this.onWaiting);\n this.media.addEventListener('playing', this.onPlaying);\n }\n onMediaDetached() {\n if (!this.media) {\n return;\n }\n this.media.removeEventListener('waiting', this.onWaiting);\n this.media.removeEventListener('playing', this.onPlaying);\n\n // @ts-ignore\n this.media = null;\n }\n onBufferCreated(event, data) {\n var _data$tracks$audio, _data$tracks$video;\n this.audioBuffer = (_data$tracks$audio = data.tracks.audio) == null ? void 0 : _data$tracks$audio.buffer;\n this.videoBuffer = (_data$tracks$video = data.tracks.video) == null ? void 0 : _data$tracks$video.buffer;\n }\n /**\n * Create baseline CMCD data\n */\n createData() {\n var _this$media;\n return {\n v: 1,\n sf: CmStreamingFormat.HLS,\n sid: this.sid,\n cid: this.cid,\n pr: (_this$media = this.media) == null ? void 0 : _this$media.playbackRate,\n mtp: this.hls.bandwidthEstimate / 1000\n };\n }\n\n /**\n * Apply CMCD data to a request.\n */\n apply(context, data = {}) {\n // apply baseline data\n _extends(data, this.createData());\n const isVideo = data.ot === CmObjectType.INIT || data.ot === CmObjectType.VIDEO || data.ot === CmObjectType.MUXED;\n if (this.starved && isVideo) {\n data.bs = true;\n data.su = true;\n this.starved = false;\n }\n if (data.su == null) {\n data.su = this.buffering;\n }\n\n // TODO: Implement rtp, nrr, nor, dl\n\n const {\n includeKeys\n } = this;\n if (includeKeys) {\n data = Object.keys(data).reduce((acc, key) => {\n includeKeys.includes(key) && (acc[key] = data[key]);\n return acc;\n }, {});\n }\n if (this.useHeaders) {\n if (!context.headers) {\n context.headers = {};\n }\n appendCmcdHeaders(context.headers, data);\n } else {\n context.url = appendCmcdQuery(context.url, data);\n }\n }\n /**\n * The CMCD object type.\n */\n getObjectType(fragment) {\n const {\n type\n } = fragment;\n if (type === 'subtitle') {\n return CmObjectType.TIMED_TEXT;\n }\n if (fragment.sn === 'initSegment') {\n return CmObjectType.INIT;\n }\n if (type === 'audio') {\n return CmObjectType.AUDIO;\n }\n if (type === 'main') {\n if (!this.hls.audioTracks.length) {\n return CmObjectType.MUXED;\n }\n return CmObjectType.VIDEO;\n }\n return undefined;\n }\n\n /**\n * Get the highest bitrate.\n */\n getTopBandwidth(type) {\n let bitrate = 0;\n let levels;\n const hls = this.hls;\n if (type === CmObjectType.AUDIO) {\n levels = hls.audioTracks;\n } else {\n const max = hls.maxAutoLevel;\n const len = max > -1 ? max + 1 : hls.levels.length;\n levels = hls.levels.slice(0, len);\n }\n for (const level of levels) {\n if (level.bitrate > bitrate) {\n bitrate = level.bitrate;\n }\n }\n return bitrate > 0 ? bitrate : NaN;\n }\n\n /**\n * Get the buffer length for a media type in milliseconds\n */\n getBufferLength(type) {\n const media = this.hls.media;\n const buffer = type === CmObjectType.AUDIO ? this.audioBuffer : this.videoBuffer;\n if (!buffer || !media) {\n return NaN;\n }\n const info = BufferHelper.bufferInfo(buffer, media.currentTime, this.config.maxBufferHole);\n return info.len * 1000;\n }\n\n /**\n * Create a playlist loader\n */\n createPlaylistLoader() {\n const {\n pLoader\n } = this.config;\n const apply = this.applyPlaylistData;\n const Ctor = pLoader || this.config.loader;\n return class CmcdPlaylistLoader {\n constructor(config) {\n this.loader = void 0;\n this.loader = new Ctor(config);\n }\n get stats() {\n return this.loader.stats;\n }\n get context() {\n return this.loader.context;\n }\n destroy() {\n this.loader.destroy();\n }\n abort() {\n this.loader.abort();\n }\n load(context, config, callbacks) {\n apply(context);\n this.loader.load(context, config, callbacks);\n }\n };\n }\n\n /**\n * Create a playlist loader\n */\n createFragmentLoader() {\n const {\n fLoader\n } = this.config;\n const apply = this.applyFragmentData;\n const Ctor = fLoader || this.config.loader;\n return class CmcdFragmentLoader {\n constructor(config) {\n this.loader = void 0;\n this.loader = new Ctor(config);\n }\n get stats() {\n return this.loader.stats;\n }\n get context() {\n return this.loader.context;\n }\n destroy() {\n this.loader.destroy();\n }\n abort() {\n this.loader.abort();\n }\n load(context, config, callbacks) {\n apply(context);\n this.loader.load(context, config, callbacks);\n }\n };\n }\n}\n\nconst PATHWAY_PENALTY_DURATION_MS = 300000;\nclass ContentSteeringController {\n constructor(hls) {\n this.hls = void 0;\n this.log = void 0;\n this.loader = null;\n this.uri = null;\n this.pathwayId = '.';\n this.pathwayPriority = null;\n this.timeToLoad = 300;\n this.reloadTimer = -1;\n this.updated = 0;\n this.started = false;\n this.enabled = true;\n this.levels = null;\n this.audioTracks = null;\n this.subtitleTracks = null;\n this.penalizedPathways = {};\n this.hls = hls;\n this.log = logger.log.bind(logger, `[content-steering]:`);\n this.registerListeners();\n }\n registerListeners() {\n const hls = this.hls;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n unregisterListeners() {\n const hls = this.hls;\n if (!hls) {\n return;\n }\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n startLoad() {\n this.started = true;\n this.clearTimeout();\n if (this.enabled && this.uri) {\n if (this.updated) {\n const ttl = this.timeToLoad * 1000 - (performance.now() - this.updated);\n if (ttl > 0) {\n this.scheduleRefresh(this.uri, ttl);\n return;\n }\n }\n this.loadSteeringManifest(this.uri);\n }\n }\n stopLoad() {\n this.started = false;\n if (this.loader) {\n this.loader.destroy();\n this.loader = null;\n }\n this.clearTimeout();\n }\n clearTimeout() {\n if (this.reloadTimer !== -1) {\n self.clearTimeout(this.reloadTimer);\n this.reloadTimer = -1;\n }\n }\n destroy() {\n this.unregisterListeners();\n this.stopLoad();\n // @ts-ignore\n this.hls = null;\n this.levels = this.audioTracks = this.subtitleTracks = null;\n }\n removeLevel(levelToRemove) {\n const levels = this.levels;\n if (levels) {\n this.levels = levels.filter(level => level !== levelToRemove);\n }\n }\n onManifestLoading() {\n this.stopLoad();\n this.enabled = true;\n this.timeToLoad = 300;\n this.updated = 0;\n this.uri = null;\n this.pathwayId = '.';\n this.levels = this.audioTracks = this.subtitleTracks = null;\n }\n onManifestLoaded(event, data) {\n const {\n contentSteering\n } = data;\n if (contentSteering === null) {\n return;\n }\n this.pathwayId = contentSteering.pathwayId;\n this.uri = contentSteering.uri;\n if (this.started) {\n this.startLoad();\n }\n }\n onManifestParsed(event, data) {\n this.audioTracks = data.audioTracks;\n this.subtitleTracks = data.subtitleTracks;\n }\n onError(event, data) {\n const {\n errorAction\n } = data;\n if ((errorAction == null ? void 0 : errorAction.action) === NetworkErrorAction.SendAlternateToPenaltyBox && errorAction.flags === ErrorActionFlags.MoveAllAlternatesMatchingHost) {\n const levels = this.levels;\n let pathwayPriority = this.pathwayPriority;\n let errorPathway = this.pathwayId;\n if (data.context) {\n const {\n groupId,\n pathwayId,\n type\n } = data.context;\n if (groupId && levels) {\n errorPathway = this.getPathwayForGroupId(groupId, type, errorPathway);\n } else if (pathwayId) {\n errorPathway = pathwayId;\n }\n }\n if (!(errorPathway in this.penalizedPathways)) {\n this.penalizedPathways[errorPathway] = performance.now();\n }\n if (!pathwayPriority && levels) {\n // If PATHWAY-PRIORITY was not provided, list pathways for error handling\n pathwayPriority = levels.reduce((pathways, level) => {\n if (pathways.indexOf(level.pathwayId) === -1) {\n pathways.push(level.pathwayId);\n }\n return pathways;\n }, []);\n }\n if (pathwayPriority && pathwayPriority.length > 1) {\n this.updatePathwayPriority(pathwayPriority);\n errorAction.resolved = this.pathwayId !== errorPathway;\n }\n if (!errorAction.resolved) {\n logger.warn(`Could not resolve ${data.details} (\"${data.error.message}\") with content-steering for Pathway: ${errorPathway} levels: ${levels ? levels.length : levels} priorities: ${JSON.stringify(pathwayPriority)} penalized: ${JSON.stringify(this.penalizedPathways)}`);\n }\n }\n }\n filterParsedLevels(levels) {\n // Filter levels to only include those that are in the initial pathway\n this.levels = levels;\n let pathwayLevels = this.getLevelsForPathway(this.pathwayId);\n if (pathwayLevels.length === 0) {\n const pathwayId = levels[0].pathwayId;\n this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to \"${pathwayId}\"`);\n pathwayLevels = this.getLevelsForPathway(pathwayId);\n this.pathwayId = pathwayId;\n }\n if (pathwayLevels.length !== levels.length) {\n this.log(`Found ${pathwayLevels.length}/${levels.length} levels in Pathway \"${this.pathwayId}\"`);\n }\n return pathwayLevels;\n }\n getLevelsForPathway(pathwayId) {\n if (this.levels === null) {\n return [];\n }\n return this.levels.filter(level => pathwayId === level.pathwayId);\n }\n updatePathwayPriority(pathwayPriority) {\n this.pathwayPriority = pathwayPriority;\n let levels;\n\n // Evaluate if we should remove the pathway from the penalized list\n const penalizedPathways = this.penalizedPathways;\n const now = performance.now();\n Object.keys(penalizedPathways).forEach(pathwayId => {\n if (now - penalizedPathways[pathwayId] > PATHWAY_PENALTY_DURATION_MS) {\n delete penalizedPathways[pathwayId];\n }\n });\n for (let i = 0; i < pathwayPriority.length; i++) {\n const pathwayId = pathwayPriority[i];\n if (pathwayId in penalizedPathways) {\n continue;\n }\n if (pathwayId === this.pathwayId) {\n return;\n }\n const selectedIndex = this.hls.nextLoadLevel;\n const selectedLevel = this.hls.levels[selectedIndex];\n levels = this.getLevelsForPathway(pathwayId);\n if (levels.length > 0) {\n this.log(`Setting Pathway to \"${pathwayId}\"`);\n this.pathwayId = pathwayId;\n reassignFragmentLevelIndexes(levels);\n this.hls.trigger(Events.LEVELS_UPDATED, {\n levels\n });\n // Set LevelController's level to trigger LEVEL_SWITCHING which loads playlist if needed\n const levelAfterChange = this.hls.levels[selectedIndex];\n if (selectedLevel && levelAfterChange && this.levels) {\n if (levelAfterChange.attrs['STABLE-VARIANT-ID'] !== selectedLevel.attrs['STABLE-VARIANT-ID'] && levelAfterChange.bitrate !== selectedLevel.bitrate) {\n this.log(`Unstable Pathways change from bitrate ${selectedLevel.bitrate} to ${levelAfterChange.bitrate}`);\n }\n this.hls.nextLoadLevel = selectedIndex;\n }\n break;\n }\n }\n }\n getPathwayForGroupId(groupId, type, defaultPathway) {\n const levels = this.getLevelsForPathway(defaultPathway).concat(this.levels || []);\n for (let i = 0; i < levels.length; i++) {\n if (type === PlaylistContextType.AUDIO_TRACK && levels[i].hasAudioGroup(groupId) || type === PlaylistContextType.SUBTITLE_TRACK && levels[i].hasSubtitleGroup(groupId)) {\n return levels[i].pathwayId;\n }\n }\n return defaultPathway;\n }\n clonePathways(pathwayClones) {\n const levels = this.levels;\n if (!levels) {\n return;\n }\n const audioGroupCloneMap = {};\n const subtitleGroupCloneMap = {};\n pathwayClones.forEach(pathwayClone => {\n const {\n ID: cloneId,\n 'BASE-ID': baseId,\n 'URI-REPLACEMENT': uriReplacement\n } = pathwayClone;\n if (levels.some(level => level.pathwayId === cloneId)) {\n return;\n }\n const clonedVariants = this.getLevelsForPathway(baseId).map(baseLevel => {\n const attributes = new AttrList(baseLevel.attrs);\n attributes['PATHWAY-ID'] = cloneId;\n const clonedAudioGroupId = attributes.AUDIO && `${attributes.AUDIO}_clone_${cloneId}`;\n const clonedSubtitleGroupId = attributes.SUBTITLES && `${attributes.SUBTITLES}_clone_${cloneId}`;\n if (clonedAudioGroupId) {\n audioGroupCloneMap[attributes.AUDIO] = clonedAudioGroupId;\n attributes.AUDIO = clonedAudioGroupId;\n }\n if (clonedSubtitleGroupId) {\n subtitleGroupCloneMap[attributes.SUBTITLES] = clonedSubtitleGroupId;\n attributes.SUBTITLES = clonedSubtitleGroupId;\n }\n const url = performUriReplacement(baseLevel.uri, attributes['STABLE-VARIANT-ID'], 'PER-VARIANT-URIS', uriReplacement);\n const clonedLevel = new Level({\n attrs: attributes,\n audioCodec: baseLevel.audioCodec,\n bitrate: baseLevel.bitrate,\n height: baseLevel.height,\n name: baseLevel.name,\n url,\n videoCodec: baseLevel.videoCodec,\n width: baseLevel.width\n });\n if (baseLevel.audioGroups) {\n for (let i = 1; i < baseLevel.audioGroups.length; i++) {\n clonedLevel.addGroupId('audio', `${baseLevel.audioGroups[i]}_clone_${cloneId}`);\n }\n }\n if (baseLevel.subtitleGroups) {\n for (let i = 1; i < baseLevel.subtitleGroups.length; i++) {\n clonedLevel.addGroupId('text', `${baseLevel.subtitleGroups[i]}_clone_${cloneId}`);\n }\n }\n return clonedLevel;\n });\n levels.push(...clonedVariants);\n cloneRenditionGroups(this.audioTracks, audioGroupCloneMap, uriReplacement, cloneId);\n cloneRenditionGroups(this.subtitleTracks, subtitleGroupCloneMap, uriReplacement, cloneId);\n });\n }\n loadSteeringManifest(uri) {\n const config = this.hls.config;\n const Loader = config.loader;\n if (this.loader) {\n this.loader.destroy();\n }\n this.loader = new Loader(config);\n let url;\n try {\n url = new self.URL(uri);\n } catch (error) {\n this.enabled = false;\n this.log(`Failed to parse Steering Manifest URI: ${uri}`);\n return;\n }\n if (url.protocol !== 'data:') {\n const throughput = (this.hls.bandwidthEstimate || config.abrEwmaDefaultEstimate) | 0;\n url.searchParams.set('_HLS_pathway', this.pathwayId);\n url.searchParams.set('_HLS_throughput', '' + throughput);\n }\n const context = {\n responseType: 'json',\n url: url.href\n };\n const loadPolicy = config.steeringManifestLoadPolicy.default;\n const legacyRetryCompatibility = loadPolicy.errorRetry || loadPolicy.timeoutRetry || {};\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: legacyRetryCompatibility.maxNumRetry || 0,\n retryDelay: legacyRetryCompatibility.retryDelayMs || 0,\n maxRetryDelay: legacyRetryCompatibility.maxRetryDelayMs || 0\n };\n const callbacks = {\n onSuccess: (response, stats, context, networkDetails) => {\n this.log(`Loaded steering manifest: \"${url}\"`);\n const steeringData = response.data;\n if (steeringData.VERSION !== 1) {\n this.log(`Steering VERSION ${steeringData.VERSION} not supported!`);\n return;\n }\n this.updated = performance.now();\n this.timeToLoad = steeringData.TTL;\n const {\n 'RELOAD-URI': reloadUri,\n 'PATHWAY-CLONES': pathwayClones,\n 'PATHWAY-PRIORITY': pathwayPriority\n } = steeringData;\n if (reloadUri) {\n try {\n this.uri = new self.URL(reloadUri, url).href;\n } catch (error) {\n this.enabled = false;\n this.log(`Failed to parse Steering Manifest RELOAD-URI: ${reloadUri}`);\n return;\n }\n }\n this.scheduleRefresh(this.uri || context.url);\n if (pathwayClones) {\n this.clonePathways(pathwayClones);\n }\n const loadedSteeringData = {\n steeringManifest: steeringData,\n url: url.toString()\n };\n this.hls.trigger(Events.STEERING_MANIFEST_LOADED, loadedSteeringData);\n if (pathwayPriority) {\n this.updatePathwayPriority(pathwayPriority);\n }\n },\n onError: (error, context, networkDetails, stats) => {\n this.log(`Error loading steering manifest: ${error.code} ${error.text} (${context.url})`);\n this.stopLoad();\n if (error.code === 410) {\n this.enabled = false;\n this.log(`Steering manifest ${context.url} no longer available`);\n return;\n }\n let ttl = this.timeToLoad * 1000;\n if (error.code === 429) {\n const loader = this.loader;\n if (typeof (loader == null ? void 0 : loader.getResponseHeader) === 'function') {\n const retryAfter = loader.getResponseHeader('Retry-After');\n if (retryAfter) {\n ttl = parseFloat(retryAfter) * 1000;\n }\n }\n this.log(`Steering manifest ${context.url} rate limited`);\n return;\n }\n this.scheduleRefresh(this.uri || context.url, ttl);\n },\n onTimeout: (stats, context, networkDetails) => {\n this.log(`Timeout loading steering manifest (${context.url})`);\n this.scheduleRefresh(this.uri || context.url);\n }\n };\n this.log(`Requesting steering manifest: ${url}`);\n this.loader.load(context, loaderConfig, callbacks);\n }\n scheduleRefresh(uri, ttlMs = this.timeToLoad * 1000) {\n this.clearTimeout();\n this.reloadTimer = self.setTimeout(() => {\n var _this$hls;\n const media = (_this$hls = this.hls) == null ? void 0 : _this$hls.media;\n if (media && !media.ended) {\n this.loadSteeringManifest(uri);\n return;\n }\n this.scheduleRefresh(uri, this.timeToLoad * 1000);\n }, ttlMs);\n }\n}\nfunction cloneRenditionGroups(tracks, groupCloneMap, uriReplacement, cloneId) {\n if (!tracks) {\n return;\n }\n Object.keys(groupCloneMap).forEach(audioGroupId => {\n const clonedTracks = tracks.filter(track => track.groupId === audioGroupId).map(track => {\n const clonedTrack = _extends({}, track);\n clonedTrack.details = undefined;\n clonedTrack.attrs = new AttrList(clonedTrack.attrs);\n clonedTrack.url = clonedTrack.attrs.URI = performUriReplacement(track.url, track.attrs['STABLE-RENDITION-ID'], 'PER-RENDITION-URIS', uriReplacement);\n clonedTrack.groupId = clonedTrack.attrs['GROUP-ID'] = groupCloneMap[audioGroupId];\n clonedTrack.attrs['PATHWAY-ID'] = cloneId;\n return clonedTrack;\n });\n tracks.push(...clonedTracks);\n });\n}\nfunction performUriReplacement(uri, stableId, perOptionKey, uriReplacement) {\n const {\n HOST: host,\n PARAMS: params,\n [perOptionKey]: perOptionUris\n } = uriReplacement;\n let perVariantUri;\n if (stableId) {\n perVariantUri = perOptionUris == null ? void 0 : perOptionUris[stableId];\n if (perVariantUri) {\n uri = perVariantUri;\n }\n }\n const url = new self.URL(uri);\n if (host && !perVariantUri) {\n url.host = host;\n }\n if (params) {\n Object.keys(params).sort().forEach(key => {\n if (key) {\n url.searchParams.set(key, params[key]);\n }\n });\n }\n return url.href;\n}\n\nconst AGE_HEADER_LINE_REGEX = /^age:\\s*[\\d.]+\\s*$/im;\nclass XhrLoader {\n constructor(config) {\n this.xhrSetup = void 0;\n this.requestTimeout = void 0;\n this.retryTimeout = void 0;\n this.retryDelay = void 0;\n this.config = null;\n this.callbacks = null;\n this.context = null;\n this.loader = null;\n this.stats = void 0;\n this.xhrSetup = config ? config.xhrSetup || null : null;\n this.stats = new LoadStats();\n this.retryDelay = 0;\n }\n destroy() {\n this.callbacks = null;\n this.abortInternal();\n this.loader = null;\n this.config = null;\n this.context = null;\n this.xhrSetup = null;\n }\n abortInternal() {\n const loader = this.loader;\n self.clearTimeout(this.requestTimeout);\n self.clearTimeout(this.retryTimeout);\n if (loader) {\n loader.onreadystatechange = null;\n loader.onprogress = null;\n if (loader.readyState !== 4) {\n this.stats.aborted = true;\n loader.abort();\n }\n }\n }\n abort() {\n var _this$callbacks;\n this.abortInternal();\n if ((_this$callbacks = this.callbacks) != null && _this$callbacks.onAbort) {\n this.callbacks.onAbort(this.stats, this.context, this.loader);\n }\n }\n load(context, config, callbacks) {\n if (this.stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n this.stats.loading.start = self.performance.now();\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.loadInternal();\n }\n loadInternal() {\n const {\n config,\n context\n } = this;\n if (!config || !context) {\n return;\n }\n const xhr = this.loader = new self.XMLHttpRequest();\n const stats = this.stats;\n stats.loading.first = 0;\n stats.loaded = 0;\n stats.aborted = false;\n const xhrSetup = this.xhrSetup;\n if (xhrSetup) {\n Promise.resolve().then(() => {\n if (this.loader !== xhr || this.stats.aborted) return;\n return xhrSetup(xhr, context.url);\n }).catch(error => {\n if (this.loader !== xhr || this.stats.aborted) return;\n xhr.open('GET', context.url, true);\n return xhrSetup(xhr, context.url);\n }).then(() => {\n if (this.loader !== xhr || this.stats.aborted) return;\n this.openAndSendXhr(xhr, context, config);\n }).catch(error => {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n this.callbacks.onError({\n code: xhr.status,\n text: error.message\n }, context, xhr, stats);\n return;\n });\n } else {\n this.openAndSendXhr(xhr, context, config);\n }\n }\n openAndSendXhr(xhr, context, config) {\n if (!xhr.readyState) {\n xhr.open('GET', context.url, true);\n }\n const headers = context.headers;\n const {\n maxTimeToFirstByteMs,\n maxLoadTimeMs\n } = config.loadPolicy;\n if (headers) {\n for (const header in headers) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n if (context.rangeEnd) {\n xhr.setRequestHeader('Range', 'bytes=' + context.rangeStart + '-' + (context.rangeEnd - 1));\n }\n xhr.onreadystatechange = this.readystatechange.bind(this);\n xhr.onprogress = this.loadprogress.bind(this);\n xhr.responseType = context.responseType;\n // setup timeout before we perform request\n self.clearTimeout(this.requestTimeout);\n config.timeout = maxTimeToFirstByteMs && isFiniteNumber(maxTimeToFirstByteMs) ? maxTimeToFirstByteMs : maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), config.timeout);\n xhr.send();\n }\n readystatechange() {\n const {\n context,\n loader: xhr,\n stats\n } = this;\n if (!context || !xhr) {\n return;\n }\n const readyState = xhr.readyState;\n const config = this.config;\n\n // don't proceed if xhr has been aborted\n if (stats.aborted) {\n return;\n }\n\n // >= HEADERS_RECEIVED\n if (readyState >= 2) {\n if (stats.loading.first === 0) {\n stats.loading.first = Math.max(self.performance.now(), stats.loading.start);\n // readyState >= 2 AND readyState !==4 (readyState = HEADERS_RECEIVED || LOADING) rearm timeout as xhr not finished yet\n if (config.timeout !== config.loadPolicy.maxLoadTimeMs) {\n self.clearTimeout(this.requestTimeout);\n config.timeout = config.loadPolicy.maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), config.loadPolicy.maxLoadTimeMs - (stats.loading.first - stats.loading.start));\n }\n }\n if (readyState === 4) {\n self.clearTimeout(this.requestTimeout);\n xhr.onreadystatechange = null;\n xhr.onprogress = null;\n const status = xhr.status;\n // http status between 200 to 299 are all successful\n const useResponseText = xhr.responseType === 'text' ? xhr.responseText : null;\n if (status >= 200 && status < 300) {\n const data = useResponseText != null ? useResponseText : xhr.response;\n if (data != null) {\n stats.loading.end = Math.max(self.performance.now(), stats.loading.first);\n const len = xhr.responseType === 'arraybuffer' ? data.byteLength : data.length;\n stats.loaded = stats.total = len;\n stats.bwEstimate = stats.total * 8000 / (stats.loading.end - stats.loading.first);\n if (!this.callbacks) {\n return;\n }\n const onProgress = this.callbacks.onProgress;\n if (onProgress) {\n onProgress(stats, context, data, xhr);\n }\n if (!this.callbacks) {\n return;\n }\n const _response = {\n url: xhr.responseURL,\n data: data,\n code: status\n };\n this.callbacks.onSuccess(_response, stats, context, xhr);\n return;\n }\n }\n\n // Handle bad status or nullish response\n const retryConfig = config.loadPolicy.errorRetry;\n const retryCount = stats.retry;\n // if max nb of retries reached or if http status between 400 and 499 (such error cannot be recovered, retrying is useless), return error\n const response = {\n url: context.url,\n data: undefined,\n code: status\n };\n if (shouldRetry(retryConfig, retryCount, false, response)) {\n this.retry(retryConfig);\n } else {\n logger.error(`${status} while loading ${context.url}`);\n this.callbacks.onError({\n code: status,\n text: xhr.statusText\n }, context, xhr, stats);\n }\n }\n }\n }\n loadtimeout() {\n if (!this.config) return;\n const retryConfig = this.config.loadPolicy.timeoutRetry;\n const retryCount = this.stats.retry;\n if (shouldRetry(retryConfig, retryCount, true)) {\n this.retry(retryConfig);\n } else {\n var _this$context;\n logger.warn(`timeout while loading ${(_this$context = this.context) == null ? void 0 : _this$context.url}`);\n const callbacks = this.callbacks;\n if (callbacks) {\n this.abortInternal();\n callbacks.onTimeout(this.stats, this.context, this.loader);\n }\n }\n }\n retry(retryConfig) {\n const {\n context,\n stats\n } = this;\n this.retryDelay = getRetryDelay(retryConfig, stats.retry);\n stats.retry++;\n logger.warn(`${status ? 'HTTP Status ' + status : 'Timeout'} while loading ${context == null ? void 0 : context.url}, retrying ${stats.retry}/${retryConfig.maxNumRetry} in ${this.retryDelay}ms`);\n // abort and reset internal state\n this.abortInternal();\n this.loader = null;\n // schedule retry\n self.clearTimeout(this.retryTimeout);\n this.retryTimeout = self.setTimeout(this.loadInternal.bind(this), this.retryDelay);\n }\n loadprogress(event) {\n const stats = this.stats;\n stats.loaded = event.loaded;\n if (event.lengthComputable) {\n stats.total = event.total;\n }\n }\n getCacheAge() {\n let result = null;\n if (this.loader && AGE_HEADER_LINE_REGEX.test(this.loader.getAllResponseHeaders())) {\n const ageHeader = this.loader.getResponseHeader('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n return result;\n }\n getResponseHeader(name) {\n if (this.loader && new RegExp(`^${name}:\\\\s*[\\\\d.]+\\\\s*$`, 'im').test(this.loader.getAllResponseHeaders())) {\n return this.loader.getResponseHeader(name);\n }\n return null;\n }\n}\n\nfunction fetchSupported() {\n if (\n // @ts-ignore\n self.fetch && self.AbortController && self.ReadableStream && self.Request) {\n try {\n new self.ReadableStream({}); // eslint-disable-line no-new\n return true;\n } catch (e) {\n /* noop */\n }\n }\n return false;\n}\nconst BYTERANGE = /(\\d+)-(\\d+)\\/(\\d+)/;\nclass FetchLoader {\n constructor(config /* HlsConfig */) {\n this.fetchSetup = void 0;\n this.requestTimeout = void 0;\n this.request = null;\n this.response = null;\n this.controller = void 0;\n this.context = null;\n this.config = null;\n this.callbacks = null;\n this.stats = void 0;\n this.loader = null;\n this.fetchSetup = config.fetchSetup || getRequest;\n this.controller = new self.AbortController();\n this.stats = new LoadStats();\n }\n destroy() {\n this.loader = this.callbacks = this.context = this.config = this.request = null;\n this.abortInternal();\n this.response = null;\n // @ts-ignore\n this.fetchSetup = this.controller = this.stats = null;\n }\n abortInternal() {\n if (this.controller && !this.stats.loading.end) {\n this.stats.aborted = true;\n this.controller.abort();\n }\n }\n abort() {\n var _this$callbacks;\n this.abortInternal();\n if ((_this$callbacks = this.callbacks) != null && _this$callbacks.onAbort) {\n this.callbacks.onAbort(this.stats, this.context, this.response);\n }\n }\n load(context, config, callbacks) {\n const stats = this.stats;\n if (stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n stats.loading.start = self.performance.now();\n const initParams = getRequestParameters(context, this.controller.signal);\n const onProgress = callbacks.onProgress;\n const isArrayBuffer = context.responseType === 'arraybuffer';\n const LENGTH = isArrayBuffer ? 'byteLength' : 'length';\n const {\n maxTimeToFirstByteMs,\n maxLoadTimeMs\n } = config.loadPolicy;\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.request = this.fetchSetup(context, initParams);\n self.clearTimeout(this.requestTimeout);\n config.timeout = maxTimeToFirstByteMs && isFiniteNumber(maxTimeToFirstByteMs) ? maxTimeToFirstByteMs : maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(() => {\n this.abortInternal();\n callbacks.onTimeout(stats, context, this.response);\n }, config.timeout);\n self.fetch(this.request).then(response => {\n this.response = this.loader = response;\n const first = Math.max(self.performance.now(), stats.loading.start);\n self.clearTimeout(this.requestTimeout);\n config.timeout = maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(() => {\n this.abortInternal();\n callbacks.onTimeout(stats, context, this.response);\n }, maxLoadTimeMs - (first - stats.loading.start));\n if (!response.ok) {\n const {\n status,\n statusText\n } = response;\n throw new FetchError(statusText || 'fetch, bad network response', status, response);\n }\n stats.loading.first = first;\n stats.total = getContentLength(response.headers) || stats.total;\n if (onProgress && isFiniteNumber(config.highWaterMark)) {\n return this.loadProgressively(response, stats, context, config.highWaterMark, onProgress);\n }\n if (isArrayBuffer) {\n return response.arrayBuffer();\n }\n if (context.responseType === 'json') {\n return response.json();\n }\n return response.text();\n }).then(responseData => {\n const response = this.response;\n if (!response) {\n throw new Error('loader destroyed');\n }\n self.clearTimeout(this.requestTimeout);\n stats.loading.end = Math.max(self.performance.now(), stats.loading.first);\n const total = responseData[LENGTH];\n if (total) {\n stats.loaded = stats.total = total;\n }\n const loaderResponse = {\n url: response.url,\n data: responseData,\n code: response.status\n };\n if (onProgress && !isFiniteNumber(config.highWaterMark)) {\n onProgress(stats, context, responseData, response);\n }\n callbacks.onSuccess(loaderResponse, stats, context, response);\n }).catch(error => {\n self.clearTimeout(this.requestTimeout);\n if (stats.aborted) {\n return;\n }\n // CORS errors result in an undefined code. Set it to 0 here to align with XHR's behavior\n // when destroying, 'error' itself can be undefined\n const code = !error ? 0 : error.code || 0;\n const text = !error ? null : error.message;\n callbacks.onError({\n code,\n text\n }, context, error ? error.details : null, stats);\n });\n }\n getCacheAge() {\n let result = null;\n if (this.response) {\n const ageHeader = this.response.headers.get('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n return result;\n }\n getResponseHeader(name) {\n return this.response ? this.response.headers.get(name) : null;\n }\n loadProgressively(response, stats, context, highWaterMark = 0, onProgress) {\n const chunkCache = new ChunkCache();\n const reader = response.body.getReader();\n const pump = () => {\n return reader.read().then(data => {\n if (data.done) {\n if (chunkCache.dataLength) {\n onProgress(stats, context, chunkCache.flush(), response);\n }\n return Promise.resolve(new ArrayBuffer(0));\n }\n const chunk = data.value;\n const len = chunk.length;\n stats.loaded += len;\n if (len < highWaterMark || chunkCache.dataLength) {\n // The current chunk is too small to to be emitted or the cache already has data\n // Push it to the cache\n chunkCache.push(chunk);\n if (chunkCache.dataLength >= highWaterMark) {\n // flush in order to join the typed arrays\n onProgress(stats, context, chunkCache.flush(), response);\n }\n } else {\n // If there's nothing cached already, and the chache is large enough\n // just emit the progress event\n onProgress(stats, context, chunk, response);\n }\n return pump();\n }).catch(() => {\n /* aborted */\n return Promise.reject();\n });\n };\n return pump();\n }\n}\nfunction getRequestParameters(context, signal) {\n const initParams = {\n method: 'GET',\n mode: 'cors',\n credentials: 'same-origin',\n signal,\n headers: new self.Headers(_extends({}, context.headers))\n };\n if (context.rangeEnd) {\n initParams.headers.set('Range', 'bytes=' + context.rangeStart + '-' + String(context.rangeEnd - 1));\n }\n return initParams;\n}\nfunction getByteRangeLength(byteRangeHeader) {\n const result = BYTERANGE.exec(byteRangeHeader);\n if (result) {\n return parseInt(result[2]) - parseInt(result[1]) + 1;\n }\n}\nfunction getContentLength(headers) {\n const contentRange = headers.get('Content-Range');\n if (contentRange) {\n const byteRangeLength = getByteRangeLength(contentRange);\n if (isFiniteNumber(byteRangeLength)) {\n return byteRangeLength;\n }\n }\n const contentLength = headers.get('Content-Length');\n if (contentLength) {\n return parseInt(contentLength);\n }\n}\nfunction getRequest(context, initParams) {\n return new self.Request(context.url, initParams);\n}\nclass FetchError extends Error {\n constructor(message, code, details) {\n super(message);\n this.code = void 0;\n this.details = void 0;\n this.code = code;\n this.details = details;\n }\n}\n\nconst WHITESPACE_CHAR = /\\s/;\nconst Cues = {\n newCue(track, startTime, endTime, captionScreen) {\n const result = [];\n let row;\n // the type data states this is VTTCue, but it can potentially be a TextTrackCue on old browsers\n let cue;\n let indenting;\n let indent;\n let text;\n const Cue = self.VTTCue || self.TextTrackCue;\n for (let r = 0; r < captionScreen.rows.length; r++) {\n row = captionScreen.rows[r];\n indenting = true;\n indent = 0;\n text = '';\n if (!row.isEmpty()) {\n var _track$cues;\n for (let c = 0; c < row.chars.length; c++) {\n if (WHITESPACE_CHAR.test(row.chars[c].uchar) && indenting) {\n indent++;\n } else {\n text += row.chars[c].uchar;\n indenting = false;\n }\n }\n // To be used for cleaning-up orphaned roll-up captions\n row.cueStartTime = startTime;\n\n // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n if (startTime === endTime) {\n endTime += 0.0001;\n }\n if (indent >= 16) {\n indent--;\n } else {\n indent++;\n }\n const cueText = fixLineBreaks(text.trim());\n const id = generateCueId(startTime, endTime, cueText);\n\n // If this cue already exists in the track do not push it\n if (!(track != null && (_track$cues = track.cues) != null && _track$cues.getCueById(id))) {\n cue = new Cue(startTime, endTime, cueText);\n cue.id = id;\n cue.line = r + 1;\n cue.align = 'left';\n // Clamp the position between 10 and 80 percent (CEA-608 PAC indent code)\n // https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608\n // Firefox throws an exception and captions break with out of bounds 0-100 values\n cue.position = 10 + Math.min(80, Math.floor(indent * 8 / 32) * 10);\n result.push(cue);\n }\n }\n }\n if (track && result.length) {\n // Sort bottom cues in reverse order so that they render in line order when overlapping in Chrome\n result.sort((cueA, cueB) => {\n if (cueA.line === 'auto' || cueB.line === 'auto') {\n return 0;\n }\n if (cueA.line > 8 && cueB.line > 8) {\n return cueB.line - cueA.line;\n }\n return cueA.line - cueB.line;\n });\n result.forEach(cue => addCueToTrack(track, cue));\n }\n return result;\n }\n};\n\n/**\n * @deprecated use fragLoadPolicy.default\n */\n\n/**\n * @deprecated use manifestLoadPolicy.default and playlistLoadPolicy.default\n */\n\nconst defaultLoadPolicy = {\n maxTimeToFirstByteMs: 8000,\n maxLoadTimeMs: 20000,\n timeoutRetry: null,\n errorRetry: null\n};\n\n/**\n * @ignore\n * If possible, keep hlsDefaultConfig shallow\n * It is cloned whenever a new Hls instance is created, by keeping the config\n * shallow the properties are cloned, and we don't end up manipulating the default\n */\nconst hlsDefaultConfig = _objectSpread2(_objectSpread2({\n autoStartLoad: true,\n // used by stream-controller\n startPosition: -1,\n // used by stream-controller\n defaultAudioCodec: undefined,\n // used by stream-controller\n debug: false,\n // used by logger\n capLevelOnFPSDrop: false,\n // used by fps-controller\n capLevelToPlayerSize: false,\n // used by cap-level-controller\n ignoreDevicePixelRatio: false,\n // used by cap-level-controller\n preferManagedMediaSource: true,\n initialLiveManifestSize: 1,\n // used by stream-controller\n maxBufferLength: 30,\n // used by stream-controller\n backBufferLength: Infinity,\n // used by buffer-controller\n frontBufferFlushThreshold: Infinity,\n maxBufferSize: 60 * 1000 * 1000,\n // used by stream-controller\n maxBufferHole: 0.1,\n // used by stream-controller\n highBufferWatchdogPeriod: 2,\n // used by stream-controller\n nudgeOffset: 0.1,\n // used by stream-controller\n nudgeMaxRetry: 3,\n // used by stream-controller\n maxFragLookUpTolerance: 0.25,\n // used by stream-controller\n liveSyncDurationCount: 3,\n // used by latency-controller\n liveMaxLatencyDurationCount: Infinity,\n // used by latency-controller\n liveSyncDuration: undefined,\n // used by latency-controller\n liveMaxLatencyDuration: undefined,\n // used by latency-controller\n maxLiveSyncPlaybackRate: 1,\n // used by latency-controller\n liveDurationInfinity: false,\n // used by buffer-controller\n /**\n * @deprecated use backBufferLength\n */\n liveBackBufferLength: null,\n // used by buffer-controller\n maxMaxBufferLength: 600,\n // used by stream-controller\n enableWorker: true,\n // used by transmuxer\n workerPath: null,\n // used by transmuxer\n enableSoftwareAES: true,\n // used by decrypter\n startLevel: undefined,\n // used by level-controller\n startFragPrefetch: false,\n // used by stream-controller\n fpsDroppedMonitoringPeriod: 5000,\n // used by fps-controller\n fpsDroppedMonitoringThreshold: 0.2,\n // used by fps-controller\n appendErrorMaxRetry: 3,\n // used by buffer-controller\n loader: XhrLoader,\n // loader: FetchLoader,\n fLoader: undefined,\n // used by fragment-loader\n pLoader: undefined,\n // used by playlist-loader\n xhrSetup: undefined,\n // used by xhr-loader\n licenseXhrSetup: undefined,\n // used by eme-controller\n licenseResponseCallback: undefined,\n // used by eme-controller\n abrController: AbrController,\n bufferController: BufferController,\n capLevelController: CapLevelController,\n errorController: ErrorController,\n fpsController: FPSController,\n stretchShortVideoTrack: false,\n // used by mp4-remuxer\n maxAudioFramesDrift: 1,\n // used by mp4-remuxer\n forceKeyFrameOnDiscontinuity: true,\n // used by ts-demuxer\n abrEwmaFastLive: 3,\n // used by abr-controller\n abrEwmaSlowLive: 9,\n // used by abr-controller\n abrEwmaFastVoD: 3,\n // used by abr-controller\n abrEwmaSlowVoD: 9,\n // used by abr-controller\n abrEwmaDefaultEstimate: 5e5,\n // 500 kbps // used by abr-controller\n abrEwmaDefaultEstimateMax: 5e6,\n // 5 mbps\n abrBandWidthFactor: 0.95,\n // used by abr-controller\n abrBandWidthUpFactor: 0.7,\n // used by abr-controller\n abrMaxWithRealBitrate: false,\n // used by abr-controller\n maxStarvationDelay: 4,\n // used by abr-controller\n maxLoadingDelay: 4,\n // used by abr-controller\n minAutoBitrate: 0,\n // used by hls\n emeEnabled: false,\n // used by eme-controller\n widevineLicenseUrl: undefined,\n // used by eme-controller\n drmSystems: {},\n // used by eme-controller\n drmSystemOptions: {},\n // used by eme-controller\n requestMediaKeySystemAccessFunc: requestMediaKeySystemAccess ,\n // used by eme-controller\n testBandwidth: true,\n progressive: false,\n lowLatencyMode: true,\n cmcd: undefined,\n enableDateRangeMetadataCues: true,\n enableEmsgMetadataCues: true,\n enableID3MetadataCues: true,\n useMediaCapabilities: true,\n certLoadPolicy: {\n default: defaultLoadPolicy\n },\n keyLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 8000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 20000,\n backoff: 'linear'\n },\n errorRetry: {\n maxNumRetry: 8,\n retryDelayMs: 1000,\n maxRetryDelayMs: 20000,\n backoff: 'linear'\n }\n }\n },\n manifestLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: Infinity,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0\n },\n errorRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000\n }\n }\n },\n playlistLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0\n },\n errorRetry: {\n maxNumRetry: 2,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000\n }\n }\n },\n fragLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 120000,\n timeoutRetry: {\n maxNumRetry: 4,\n retryDelayMs: 0,\n maxRetryDelayMs: 0\n },\n errorRetry: {\n maxNumRetry: 6,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000\n }\n }\n },\n steeringManifestLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0\n },\n errorRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000\n }\n } \n },\n // These default settings are deprecated in favor of the above policies\n // and are maintained for backwards compatibility\n manifestLoadingTimeOut: 10000,\n manifestLoadingMaxRetry: 1,\n manifestLoadingRetryDelay: 1000,\n manifestLoadingMaxRetryTimeout: 64000,\n levelLoadingTimeOut: 10000,\n levelLoadingMaxRetry: 4,\n levelLoadingRetryDelay: 1000,\n levelLoadingMaxRetryTimeout: 64000,\n fragLoadingTimeOut: 20000,\n fragLoadingMaxRetry: 6,\n fragLoadingRetryDelay: 1000,\n fragLoadingMaxRetryTimeout: 64000\n}, timelineConfig()), {}, {\n subtitleStreamController: SubtitleStreamController ,\n subtitleTrackController: SubtitleTrackController ,\n timelineController: TimelineController ,\n audioStreamController: AudioStreamController ,\n audioTrackController: AudioTrackController ,\n emeController: EMEController ,\n cmcdController: CMCDController ,\n contentSteeringController: ContentSteeringController \n});\nfunction timelineConfig() {\n return {\n cueHandler: Cues,\n // used by timeline-controller\n enableWebVTT: true,\n // used by timeline-controller\n enableIMSC1: true,\n // used by timeline-controller\n enableCEA708Captions: true,\n // used by timeline-controller\n captionsTextTrack1Label: 'English',\n // used by timeline-controller\n captionsTextTrack1LanguageCode: 'en',\n // used by timeline-controller\n captionsTextTrack2Label: 'Spanish',\n // used by timeline-controller\n captionsTextTrack2LanguageCode: 'es',\n // used by timeline-controller\n captionsTextTrack3Label: 'Unknown CC',\n // used by timeline-controller\n captionsTextTrack3LanguageCode: '',\n // used by timeline-controller\n captionsTextTrack4Label: 'Unknown CC',\n // used by timeline-controller\n captionsTextTrack4LanguageCode: '',\n // used by timeline-controller\n renderTextTracksNatively: true\n };\n}\n\n/**\n * @ignore\n */\nfunction mergeConfig(defaultConfig, userConfig) {\n if ((userConfig.liveSyncDurationCount || userConfig.liveMaxLatencyDurationCount) && (userConfig.liveSyncDuration || userConfig.liveMaxLatencyDuration)) {\n throw new Error(\"Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration\");\n }\n if (userConfig.liveMaxLatencyDurationCount !== undefined && (userConfig.liveSyncDurationCount === undefined || userConfig.liveMaxLatencyDurationCount <= userConfig.liveSyncDurationCount)) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDurationCount\" must be greater than \"liveSyncDurationCount\"');\n }\n if (userConfig.liveMaxLatencyDuration !== undefined && (userConfig.liveSyncDuration === undefined || userConfig.liveMaxLatencyDuration <= userConfig.liveSyncDuration)) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDuration\" must be greater than \"liveSyncDuration\"');\n }\n const defaultsCopy = deepCpy(defaultConfig);\n\n // Backwards compatibility with deprecated config values\n const deprecatedSettingTypes = ['manifest', 'level', 'frag'];\n const deprecatedSettings = ['TimeOut', 'MaxRetry', 'RetryDelay', 'MaxRetryTimeout'];\n deprecatedSettingTypes.forEach(type => {\n const policyName = `${type === 'level' ? 'playlist' : type}LoadPolicy`;\n const policyNotSet = userConfig[policyName] === undefined;\n const report = [];\n deprecatedSettings.forEach(setting => {\n const deprecatedSetting = `${type}Loading${setting}`;\n const value = userConfig[deprecatedSetting];\n if (value !== undefined && policyNotSet) {\n report.push(deprecatedSetting);\n const settings = defaultsCopy[policyName].default;\n userConfig[policyName] = {\n default: settings\n };\n switch (setting) {\n case 'TimeOut':\n settings.maxLoadTimeMs = value;\n settings.maxTimeToFirstByteMs = value;\n break;\n case 'MaxRetry':\n settings.errorRetry.maxNumRetry = value;\n settings.timeoutRetry.maxNumRetry = value;\n break;\n case 'RetryDelay':\n settings.errorRetry.retryDelayMs = value;\n settings.timeoutRetry.retryDelayMs = value;\n break;\n case 'MaxRetryTimeout':\n settings.errorRetry.maxRetryDelayMs = value;\n settings.timeoutRetry.maxRetryDelayMs = value;\n break;\n }\n }\n });\n if (report.length) {\n logger.warn(`hls.js config: \"${report.join('\", \"')}\" setting(s) are deprecated, use \"${policyName}\": ${JSON.stringify(userConfig[policyName])}`);\n }\n });\n return _objectSpread2(_objectSpread2({}, defaultsCopy), userConfig);\n}\nfunction deepCpy(obj) {\n if (obj && typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return obj.map(deepCpy);\n }\n return Object.keys(obj).reduce((result, key) => {\n result[key] = deepCpy(obj[key]);\n return result;\n }, {});\n }\n return obj;\n}\n\n/**\n * @ignore\n */\nfunction enableStreamingMode(config) {\n const currentLoader = config.loader;\n if (currentLoader !== FetchLoader && currentLoader !== XhrLoader) {\n // If a developer has configured their own loader, respect that choice\n logger.log('[config]: Custom loader detected, cannot enable progressive streaming');\n config.progressive = false;\n } else {\n const canStreamProgressively = fetchSupported();\n if (canStreamProgressively) {\n config.loader = FetchLoader;\n config.progressive = true;\n config.enableSoftwareAES = true;\n logger.log('[config]: Progressive streaming enabled, using FetchLoader');\n }\n }\n}\n\nlet chromeOrFirefox;\nclass LevelController extends BasePlaylistController {\n constructor(hls, contentSteeringController) {\n super(hls, '[level-controller]');\n this._levels = [];\n this._firstLevel = -1;\n this._maxAutoLevel = -1;\n this._startLevel = void 0;\n this.currentLevel = null;\n this.currentLevelIndex = -1;\n this.manualLevelIndex = -1;\n this.steering = void 0;\n this.onParsedComplete = void 0;\n this.steering = contentSteeringController;\n this._registerListeners();\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n destroy() {\n this._unregisterListeners();\n this.steering = null;\n this.resetLevels();\n super.destroy();\n }\n stopLoad() {\n const levels = this._levels;\n\n // clean up live level details to force reload them, and reset load errors\n levels.forEach(level => {\n level.loadError = 0;\n level.fragmentError = 0;\n });\n super.stopLoad();\n }\n resetLevels() {\n this._startLevel = undefined;\n this.manualLevelIndex = -1;\n this.currentLevelIndex = -1;\n this.currentLevel = null;\n this._levels = [];\n this._maxAutoLevel = -1;\n }\n onManifestLoading(event, data) {\n this.resetLevels();\n }\n onManifestLoaded(event, data) {\n const preferManagedMediaSource = this.hls.config.preferManagedMediaSource;\n const levels = [];\n const redundantSet = {};\n const generatePathwaySet = {};\n let resolutionFound = false;\n let videoCodecFound = false;\n let audioCodecFound = false;\n data.levels.forEach(levelParsed => {\n var _audioCodec, _videoCodec;\n const attributes = levelParsed.attrs;\n\n // erase audio codec info if browser does not support mp4a.40.34.\n // demuxer will autodetect codec and fallback to mpeg/audio\n let {\n audioCodec,\n videoCodec\n } = levelParsed;\n if (((_audioCodec = audioCodec) == null ? void 0 : _audioCodec.indexOf('mp4a.40.34')) !== -1) {\n chromeOrFirefox || (chromeOrFirefox = /chrome|firefox/i.test(navigator.userAgent));\n if (chromeOrFirefox) {\n levelParsed.audioCodec = audioCodec = undefined;\n }\n }\n if (audioCodec) {\n levelParsed.audioCodec = audioCodec = getCodecCompatibleName(audioCodec, preferManagedMediaSource);\n }\n if (((_videoCodec = videoCodec) == null ? void 0 : _videoCodec.indexOf('avc1')) === 0) {\n videoCodec = levelParsed.videoCodec = convertAVC1ToAVCOTI(videoCodec);\n }\n\n // only keep levels with supported audio/video codecs\n const {\n width,\n height,\n unknownCodecs\n } = levelParsed;\n resolutionFound || (resolutionFound = !!(width && height));\n videoCodecFound || (videoCodecFound = !!videoCodec);\n audioCodecFound || (audioCodecFound = !!audioCodec);\n if (unknownCodecs != null && unknownCodecs.length || audioCodec && !areCodecsMediaSourceSupported(audioCodec, 'audio', preferManagedMediaSource) || videoCodec && !areCodecsMediaSourceSupported(videoCodec, 'video', preferManagedMediaSource)) {\n return;\n }\n const {\n CODECS,\n 'FRAME-RATE': FRAMERATE,\n 'HDCP-LEVEL': HDCP,\n 'PATHWAY-ID': PATHWAY,\n RESOLUTION,\n 'VIDEO-RANGE': VIDEO_RANGE\n } = attributes;\n const contentSteeringPrefix = `${PATHWAY || '.'}-`;\n const levelKey = `${contentSteeringPrefix}${levelParsed.bitrate}-${RESOLUTION}-${FRAMERATE}-${CODECS}-${VIDEO_RANGE}-${HDCP}`;\n if (!redundantSet[levelKey]) {\n const level = new Level(levelParsed);\n redundantSet[levelKey] = level;\n generatePathwaySet[levelKey] = 1;\n levels.push(level);\n } else if (redundantSet[levelKey].uri !== levelParsed.url && !levelParsed.attrs['PATHWAY-ID']) {\n // Assign Pathway IDs to Redundant Streams (default Pathways is \".\". Redundant Streams \"..\", \"...\", and so on.)\n // Content Steering controller to handles Pathway fallback on error\n const pathwayCount = generatePathwaySet[levelKey] += 1;\n levelParsed.attrs['PATHWAY-ID'] = new Array(pathwayCount + 1).join('.');\n const level = new Level(levelParsed);\n redundantSet[levelKey] = level;\n levels.push(level);\n } else {\n redundantSet[levelKey].addGroupId('audio', attributes.AUDIO);\n redundantSet[levelKey].addGroupId('text', attributes.SUBTITLES);\n }\n });\n this.filterAndSortMediaOptions(levels, data, resolutionFound, videoCodecFound, audioCodecFound);\n }\n filterAndSortMediaOptions(filteredLevels, data, resolutionFound, videoCodecFound, audioCodecFound) {\n let audioTracks = [];\n let subtitleTracks = [];\n let levels = filteredLevels;\n\n // remove audio-only and invalid video-range levels if we also have levels with video codecs or RESOLUTION signalled\n if ((resolutionFound || videoCodecFound) && audioCodecFound) {\n levels = levels.filter(({\n videoCodec,\n videoRange,\n width,\n height\n }) => (!!videoCodec || !!(width && height)) && isVideoRange(videoRange));\n }\n if (levels.length === 0) {\n // Dispatch error after MANIFEST_LOADED is done propagating\n Promise.resolve().then(() => {\n if (this.hls) {\n if (data.levels.length) {\n this.warn(`One or more CODECS in variant not supported: ${JSON.stringify(data.levels[0].attrs)}`);\n }\n const error = new Error('no level with compatible codecs found in manifest');\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n url: data.url,\n error,\n reason: error.message\n });\n }\n });\n return;\n }\n if (data.audioTracks) {\n const {\n preferManagedMediaSource\n } = this.hls.config;\n audioTracks = data.audioTracks.filter(track => !track.audioCodec || areCodecsMediaSourceSupported(track.audioCodec, 'audio', preferManagedMediaSource));\n // Assign ids after filtering as array indices by group-id\n assignTrackIdsByGroup(audioTracks);\n }\n if (data.subtitles) {\n subtitleTracks = data.subtitles;\n assignTrackIdsByGroup(subtitleTracks);\n }\n // start bitrate is the first bitrate of the manifest\n const unsortedLevels = levels.slice(0);\n // sort levels from lowest to highest\n levels.sort((a, b) => {\n if (a.attrs['HDCP-LEVEL'] !== b.attrs['HDCP-LEVEL']) {\n return (a.attrs['HDCP-LEVEL'] || '') > (b.attrs['HDCP-LEVEL'] || '') ? 1 : -1;\n }\n // sort on height before bitrate for cap-level-controller\n if (resolutionFound && a.height !== b.height) {\n return a.height - b.height;\n }\n if (a.frameRate !== b.frameRate) {\n return a.frameRate - b.frameRate;\n }\n if (a.videoRange !== b.videoRange) {\n return VideoRangeValues.indexOf(a.videoRange) - VideoRangeValues.indexOf(b.videoRange);\n }\n if (a.videoCodec !== b.videoCodec) {\n const valueA = videoCodecPreferenceValue(a.videoCodec);\n const valueB = videoCodecPreferenceValue(b.videoCodec);\n if (valueA !== valueB) {\n return valueB - valueA;\n }\n }\n if (a.uri === b.uri && a.codecSet !== b.codecSet) {\n const valueA = codecsSetSelectionPreferenceValue(a.codecSet);\n const valueB = codecsSetSelectionPreferenceValue(b.codecSet);\n if (valueA !== valueB) {\n return valueB - valueA;\n }\n }\n if (a.averageBitrate !== b.averageBitrate) {\n return a.averageBitrate - b.averageBitrate;\n }\n return 0;\n });\n let firstLevelInPlaylist = unsortedLevels[0];\n if (this.steering) {\n levels = this.steering.filterParsedLevels(levels);\n if (levels.length !== unsortedLevels.length) {\n for (let i = 0; i < unsortedLevels.length; i++) {\n if (unsortedLevels[i].pathwayId === levels[0].pathwayId) {\n firstLevelInPlaylist = unsortedLevels[i];\n break;\n }\n }\n }\n }\n this._levels = levels;\n\n // find index of first level in sorted levels\n for (let i = 0; i < levels.length; i++) {\n if (levels[i] === firstLevelInPlaylist) {\n var _this$hls$userConfig;\n this._firstLevel = i;\n const firstLevelBitrate = firstLevelInPlaylist.bitrate;\n const bandwidthEstimate = this.hls.bandwidthEstimate;\n this.log(`manifest loaded, ${levels.length} level(s) found, first bitrate: ${firstLevelBitrate}`);\n // Update default bwe to first variant bitrate as long it has not been configured or set\n if (((_this$hls$userConfig = this.hls.userConfig) == null ? void 0 : _this$hls$userConfig.abrEwmaDefaultEstimate) === undefined) {\n const startingBwEstimate = Math.min(firstLevelBitrate, this.hls.config.abrEwmaDefaultEstimateMax);\n if (startingBwEstimate > bandwidthEstimate && bandwidthEstimate === hlsDefaultConfig.abrEwmaDefaultEstimate) {\n this.hls.bandwidthEstimate = startingBwEstimate;\n }\n }\n break;\n }\n }\n\n // Audio is only alternate if manifest include a URI along with the audio group tag,\n // and this is not an audio-only stream where levels contain audio-only\n const audioOnly = audioCodecFound && !videoCodecFound;\n const edata = {\n levels,\n audioTracks,\n subtitleTracks,\n sessionData: data.sessionData,\n sessionKeys: data.sessionKeys,\n firstLevel: this._firstLevel,\n stats: data.stats,\n audio: audioCodecFound,\n video: videoCodecFound,\n altAudio: !audioOnly && audioTracks.some(t => !!t.url)\n };\n this.hls.trigger(Events.MANIFEST_PARSED, edata);\n\n // Initiate loading after all controllers have received MANIFEST_PARSED\n if (this.hls.config.autoStartLoad || this.hls.forceStartLoad) {\n this.hls.startLoad(this.hls.config.startPosition);\n }\n }\n get levels() {\n if (this._levels.length === 0) {\n return null;\n }\n return this._levels;\n }\n get level() {\n return this.currentLevelIndex;\n }\n set level(newLevel) {\n const levels = this._levels;\n if (levels.length === 0) {\n return;\n }\n // check if level idx is valid\n if (newLevel < 0 || newLevel >= levels.length) {\n // invalid level id given, trigger error\n const error = new Error('invalid level idx');\n const fatal = newLevel < 0;\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.LEVEL_SWITCH_ERROR,\n level: newLevel,\n fatal,\n error,\n reason: error.message\n });\n if (fatal) {\n return;\n }\n newLevel = Math.min(newLevel, levels.length - 1);\n }\n const lastLevelIndex = this.currentLevelIndex;\n const lastLevel = this.currentLevel;\n const lastPathwayId = lastLevel ? lastLevel.attrs['PATHWAY-ID'] : undefined;\n const level = levels[newLevel];\n const pathwayId = level.attrs['PATHWAY-ID'];\n this.currentLevelIndex = newLevel;\n this.currentLevel = level;\n if (lastLevelIndex === newLevel && level.details && lastLevel && lastPathwayId === pathwayId) {\n return;\n }\n this.log(`Switching to level ${newLevel} (${level.height ? level.height + 'p ' : ''}${level.videoRange ? level.videoRange + ' ' : ''}${level.codecSet ? level.codecSet + ' ' : ''}@${level.bitrate})${pathwayId ? ' with Pathway ' + pathwayId : ''} from level ${lastLevelIndex}${lastPathwayId ? ' with Pathway ' + lastPathwayId : ''}`);\n const levelSwitchingData = {\n level: newLevel,\n attrs: level.attrs,\n details: level.details,\n bitrate: level.bitrate,\n averageBitrate: level.averageBitrate,\n maxBitrate: level.maxBitrate,\n realBitrate: level.realBitrate,\n width: level.width,\n height: level.height,\n codecSet: level.codecSet,\n audioCodec: level.audioCodec,\n videoCodec: level.videoCodec,\n audioGroups: level.audioGroups,\n subtitleGroups: level.subtitleGroups,\n loaded: level.loaded,\n loadError: level.loadError,\n fragmentError: level.fragmentError,\n name: level.name,\n id: level.id,\n uri: level.uri,\n url: level.url,\n urlId: 0,\n audioGroupIds: level.audioGroupIds,\n textGroupIds: level.textGroupIds\n };\n this.hls.trigger(Events.LEVEL_SWITCHING, levelSwitchingData);\n // check if we need to load playlist for this level\n const levelDetails = level.details;\n if (!levelDetails || levelDetails.live) {\n // level not retrieved yet, or live playlist we need to (re)load it\n const hlsUrlParameters = this.switchParams(level.uri, lastLevel == null ? void 0 : lastLevel.details, levelDetails);\n this.loadPlaylist(hlsUrlParameters);\n }\n }\n get manualLevel() {\n return this.manualLevelIndex;\n }\n set manualLevel(newLevel) {\n this.manualLevelIndex = newLevel;\n if (this._startLevel === undefined) {\n this._startLevel = newLevel;\n }\n if (newLevel !== -1) {\n this.level = newLevel;\n }\n }\n get firstLevel() {\n return this._firstLevel;\n }\n set firstLevel(newLevel) {\n this._firstLevel = newLevel;\n }\n get startLevel() {\n // Setting hls.startLevel (this._startLevel) overrides config.startLevel\n if (this._startLevel === undefined) {\n const configStartLevel = this.hls.config.startLevel;\n if (configStartLevel !== undefined) {\n return configStartLevel;\n }\n return this.hls.firstAutoLevel;\n }\n return this._startLevel;\n }\n set startLevel(newLevel) {\n this._startLevel = newLevel;\n }\n onError(event, data) {\n if (data.fatal || !data.context) {\n return;\n }\n if (data.context.type === PlaylistContextType.LEVEL && data.context.level === this.level) {\n this.checkRetry(data);\n }\n }\n\n // reset errors on the successful load of a fragment\n onFragBuffered(event, {\n frag\n }) {\n if (frag !== undefined && frag.type === PlaylistLevelType.MAIN) {\n const el = frag.elementaryStreams;\n if (!Object.keys(el).some(type => !!el[type])) {\n return;\n }\n const level = this._levels[frag.level];\n if (level != null && level.loadError) {\n this.log(`Resetting level error count of ${level.loadError} on frag buffered`);\n level.loadError = 0;\n }\n }\n }\n onLevelLoaded(event, data) {\n var _data$deliveryDirecti2;\n const {\n level,\n details\n } = data;\n const curLevel = this._levels[level];\n if (!curLevel) {\n var _data$deliveryDirecti;\n this.warn(`Invalid level index ${level}`);\n if ((_data$deliveryDirecti = data.deliveryDirectives) != null && _data$deliveryDirecti.skip) {\n details.deltaUpdateFailed = true;\n }\n return;\n }\n\n // only process level loaded events matching with expected level\n if (level === this.currentLevelIndex) {\n // reset level load error counter on successful level loaded only if there is no issues with fragments\n if (curLevel.fragmentError === 0) {\n curLevel.loadError = 0;\n }\n this.playlistLoaded(level, data, curLevel.details);\n } else if ((_data$deliveryDirecti2 = data.deliveryDirectives) != null && _data$deliveryDirecti2.skip) {\n // received a delta playlist update that cannot be merged\n details.deltaUpdateFailed = true;\n }\n }\n loadPlaylist(hlsUrlParameters) {\n super.loadPlaylist();\n const currentLevelIndex = this.currentLevelIndex;\n const currentLevel = this.currentLevel;\n if (currentLevel && this.shouldLoadPlaylist(currentLevel)) {\n let url = currentLevel.uri;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(`Could not construct new URL with HLS Delivery Directives: ${error}`);\n }\n }\n const pathwayId = currentLevel.attrs['PATHWAY-ID'];\n this.log(`Loading level index ${currentLevelIndex}${(hlsUrlParameters == null ? void 0 : hlsUrlParameters.msn) !== undefined ? ' at sn ' + hlsUrlParameters.msn + ' part ' + hlsUrlParameters.part : ''} with${pathwayId ? ' Pathway ' + pathwayId : ''} ${url}`);\n\n // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n // console.log('New video quality level audio group id:', levelObject.attrs.AUDIO, level);\n this.clearTimer();\n this.hls.trigger(Events.LEVEL_LOADING, {\n url,\n level: currentLevelIndex,\n pathwayId: currentLevel.attrs['PATHWAY-ID'],\n id: 0,\n // Deprecated Level urlId\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n }\n get nextLoadLevel() {\n if (this.manualLevelIndex !== -1) {\n return this.manualLevelIndex;\n } else {\n return this.hls.nextAutoLevel;\n }\n }\n set nextLoadLevel(nextLevel) {\n this.level = nextLevel;\n if (this.manualLevelIndex === -1) {\n this.hls.nextAutoLevel = nextLevel;\n }\n }\n removeLevel(levelIndex) {\n var _this$currentLevel;\n const levels = this._levels.filter((level, index) => {\n if (index !== levelIndex) {\n return true;\n }\n if (this.steering) {\n this.steering.removeLevel(level);\n }\n if (level === this.currentLevel) {\n this.currentLevel = null;\n this.currentLevelIndex = -1;\n if (level.details) {\n level.details.fragments.forEach(f => f.level = -1);\n }\n }\n return false;\n });\n reassignFragmentLevelIndexes(levels);\n this._levels = levels;\n if (this.currentLevelIndex > -1 && (_this$currentLevel = this.currentLevel) != null && _this$currentLevel.details) {\n this.currentLevelIndex = this.currentLevel.details.fragments[0].level;\n }\n this.hls.trigger(Events.LEVELS_UPDATED, {\n levels\n });\n }\n onLevelsUpdated(event, {\n levels\n }) {\n this._levels = levels;\n }\n checkMaxAutoUpdated() {\n const {\n autoLevelCapping,\n maxAutoLevel,\n maxHdcpLevel\n } = this.hls;\n if (this._maxAutoLevel !== maxAutoLevel) {\n this._maxAutoLevel = maxAutoLevel;\n this.hls.trigger(Events.MAX_AUTO_LEVEL_UPDATED, {\n autoLevelCapping,\n levels: this.levels,\n maxAutoLevel,\n minAutoLevel: this.hls.minAutoLevel,\n maxHdcpLevel\n });\n }\n }\n}\nfunction assignTrackIdsByGroup(tracks) {\n const groups = {};\n tracks.forEach(track => {\n const groupId = track.groupId || '';\n track.id = groups[groupId] = groups[groupId] || 0;\n groups[groupId]++;\n });\n}\n\nclass KeyLoader {\n constructor(config) {\n this.config = void 0;\n this.keyUriToKeyInfo = {};\n this.emeController = null;\n this.config = config;\n }\n abort(type) {\n for (const uri in this.keyUriToKeyInfo) {\n const loader = this.keyUriToKeyInfo[uri].loader;\n if (loader) {\n var _loader$context;\n if (type && type !== ((_loader$context = loader.context) == null ? void 0 : _loader$context.frag.type)) {\n return;\n }\n loader.abort();\n }\n }\n }\n detach() {\n for (const uri in this.keyUriToKeyInfo) {\n const keyInfo = this.keyUriToKeyInfo[uri];\n // Remove cached EME keys on detach\n if (keyInfo.mediaKeySessionContext || keyInfo.decryptdata.isCommonEncryption) {\n delete this.keyUriToKeyInfo[uri];\n }\n }\n }\n destroy() {\n this.detach();\n for (const uri in this.keyUriToKeyInfo) {\n const loader = this.keyUriToKeyInfo[uri].loader;\n if (loader) {\n loader.destroy();\n }\n }\n this.keyUriToKeyInfo = {};\n }\n createKeyLoadError(frag, details = ErrorDetails.KEY_LOAD_ERROR, error, networkDetails, response) {\n return new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details,\n fatal: false,\n frag,\n response,\n error,\n networkDetails\n });\n }\n loadClear(loadingFrag, encryptedFragments) {\n if (this.emeController && this.config.emeEnabled) {\n // access key-system with nearest key on start (loaidng frag is unencrypted)\n const {\n sn,\n cc\n } = loadingFrag;\n for (let i = 0; i < encryptedFragments.length; i++) {\n const frag = encryptedFragments[i];\n if (cc <= frag.cc && (sn === 'initSegment' || frag.sn === 'initSegment' || sn < frag.sn)) {\n this.emeController.selectKeySystemFormat(frag).then(keySystemFormat => {\n frag.setKeyFormat(keySystemFormat);\n });\n break;\n }\n }\n }\n }\n load(frag) {\n if (!frag.decryptdata && frag.encrypted && this.emeController && this.config.emeEnabled) {\n // Multiple keys, but none selected, resolve in eme-controller\n return this.emeController.selectKeySystemFormat(frag).then(keySystemFormat => {\n return this.loadInternal(frag, keySystemFormat);\n });\n }\n return this.loadInternal(frag);\n }\n loadInternal(frag, keySystemFormat) {\n var _keyInfo, _keyInfo2;\n if (keySystemFormat) {\n frag.setKeyFormat(keySystemFormat);\n }\n const decryptdata = frag.decryptdata;\n if (!decryptdata) {\n const error = new Error(keySystemFormat ? `Expected frag.decryptdata to be defined after setting format ${keySystemFormat}` : 'Missing decryption data on fragment in onKeyLoading');\n return Promise.reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, error));\n }\n const uri = decryptdata.uri;\n if (!uri) {\n return Promise.reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, new Error(`Invalid key URI: \"${uri}\"`)));\n }\n let keyInfo = this.keyUriToKeyInfo[uri];\n if ((_keyInfo = keyInfo) != null && _keyInfo.decryptdata.key) {\n decryptdata.key = keyInfo.decryptdata.key;\n return Promise.resolve({\n frag,\n keyInfo\n });\n }\n // Return key load promise as long as it does not have a mediakey session with an unusable key status\n if ((_keyInfo2 = keyInfo) != null && _keyInfo2.keyLoadPromise) {\n var _keyInfo$mediaKeySess;\n switch ((_keyInfo$mediaKeySess = keyInfo.mediaKeySessionContext) == null ? void 0 : _keyInfo$mediaKeySess.keyStatus) {\n case undefined:\n case 'status-pending':\n case 'usable':\n case 'usable-in-future':\n return keyInfo.keyLoadPromise.then(keyLoadedData => {\n // Return the correct fragment with updated decryptdata key and loaded keyInfo\n decryptdata.key = keyLoadedData.keyInfo.decryptdata.key;\n return {\n frag,\n keyInfo\n };\n });\n }\n // If we have a key session and status and it is not pending or usable, continue\n // This will go back to the eme-controller for expired keys to get a new keyLoadPromise\n }\n\n // Load the key or return the loading promise\n keyInfo = this.keyUriToKeyInfo[uri] = {\n decryptdata,\n keyLoadPromise: null,\n loader: null,\n mediaKeySessionContext: null\n };\n switch (decryptdata.method) {\n case 'ISO-23001-7':\n case 'SAMPLE-AES':\n case 'SAMPLE-AES-CENC':\n case 'SAMPLE-AES-CTR':\n if (decryptdata.keyFormat === 'identity') {\n // loadKeyHTTP handles http(s) and data URLs\n return this.loadKeyHTTP(keyInfo, frag);\n }\n return this.loadKeyEME(keyInfo, frag);\n case 'AES-128':\n return this.loadKeyHTTP(keyInfo, frag);\n default:\n return Promise.reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, new Error(`Key supplied with unsupported METHOD: \"${decryptdata.method}\"`)));\n }\n }\n loadKeyEME(keyInfo, frag) {\n const keyLoadedData = {\n frag,\n keyInfo\n };\n if (this.emeController && this.config.emeEnabled) {\n const keySessionContextPromise = this.emeController.loadKey(keyLoadedData);\n if (keySessionContextPromise) {\n return (keyInfo.keyLoadPromise = keySessionContextPromise.then(keySessionContext => {\n keyInfo.mediaKeySessionContext = keySessionContext;\n return keyLoadedData;\n })).catch(error => {\n // Remove promise for license renewal or retry\n keyInfo.keyLoadPromise = null;\n throw error;\n });\n }\n }\n return Promise.resolve(keyLoadedData);\n }\n loadKeyHTTP(keyInfo, frag) {\n const config = this.config;\n const Loader = config.loader;\n const keyLoader = new Loader(config);\n frag.keyLoader = keyInfo.loader = keyLoader;\n return keyInfo.keyLoadPromise = new Promise((resolve, reject) => {\n const loaderContext = {\n keyInfo,\n frag,\n responseType: 'arraybuffer',\n url: keyInfo.decryptdata.uri\n };\n\n // maxRetry is 0 so that instead of retrying the same key on the same variant multiple times,\n // key-loader will trigger an error and rely on stream-controller to handle retry logic.\n // this will also align retry logic with fragment-loader\n const loadPolicy = config.keyLoadPolicy.default;\n const loaderConfig = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0\n };\n const loaderCallbacks = {\n onSuccess: (response, stats, context, networkDetails) => {\n const {\n frag,\n keyInfo,\n url: uri\n } = context;\n if (!frag.decryptdata || keyInfo !== this.keyUriToKeyInfo[uri]) {\n return reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, new Error('after key load, decryptdata unset or changed'), networkDetails));\n }\n keyInfo.decryptdata.key = frag.decryptdata.key = new Uint8Array(response.data);\n\n // detach fragment key loader on load success\n frag.keyLoader = null;\n keyInfo.loader = null;\n resolve({\n frag,\n keyInfo\n });\n },\n onError: (response, context, networkDetails, stats) => {\n this.resetLoader(context);\n reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, new Error(`HTTP Error ${response.code} loading key ${response.text}`), networkDetails, _objectSpread2({\n url: loaderContext.url,\n data: undefined\n }, response)));\n },\n onTimeout: (stats, context, networkDetails) => {\n this.resetLoader(context);\n reject(this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_TIMEOUT, new Error('key loading timed out'), networkDetails));\n },\n onAbort: (stats, context, networkDetails) => {\n this.resetLoader(context);\n reject(this.createKeyLoadError(frag, ErrorDetails.INTERNAL_ABORTED, new Error('key loading aborted'), networkDetails));\n }\n };\n keyLoader.load(loaderContext, loaderConfig, loaderCallbacks);\n });\n }\n resetLoader(context) {\n const {\n frag,\n keyInfo,\n url: uri\n } = context;\n const loader = keyInfo.loader;\n if (frag.keyLoader === loader) {\n frag.keyLoader = null;\n keyInfo.loader = null;\n }\n delete this.keyUriToKeyInfo[uri];\n if (loader) {\n loader.destroy();\n }\n }\n}\n\nfunction getSourceBuffer() {\n return self.SourceBuffer || self.WebKitSourceBuffer;\n}\nfunction isMSESupported() {\n const mediaSource = getMediaSource();\n if (!mediaSource) {\n return false;\n }\n\n // if SourceBuffer is exposed ensure its API is valid\n // Older browsers do not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\n const sourceBuffer = getSourceBuffer();\n return !sourceBuffer || sourceBuffer.prototype && typeof sourceBuffer.prototype.appendBuffer === 'function' && typeof sourceBuffer.prototype.remove === 'function';\n}\nfunction isSupported() {\n if (!isMSESupported()) {\n return false;\n }\n const mediaSource = getMediaSource();\n return typeof (mediaSource == null ? void 0 : mediaSource.isTypeSupported) === 'function' && (['avc1.42E01E,mp4a.40.2', 'av01.0.01M.08', 'vp09.00.50.08'].some(codecsForVideoContainer => mediaSource.isTypeSupported(mimeTypeForCodec(codecsForVideoContainer, 'video'))) || ['mp4a.40.2', 'fLaC'].some(codecForAudioContainer => mediaSource.isTypeSupported(mimeTypeForCodec(codecForAudioContainer, 'audio'))));\n}\nfunction changeTypeSupported() {\n var _sourceBuffer$prototy;\n const sourceBuffer = getSourceBuffer();\n return typeof (sourceBuffer == null ? void 0 : (_sourceBuffer$prototy = sourceBuffer.prototype) == null ? void 0 : _sourceBuffer$prototy.changeType) === 'function';\n}\n\nconst STALL_MINIMUM_DURATION_MS = 250;\nconst MAX_START_GAP_JUMP = 2.0;\nconst SKIP_BUFFER_HOLE_STEP_SECONDS = 0.1;\nconst SKIP_BUFFER_RANGE_START = 0.05;\nclass GapController {\n constructor(config, media, fragmentTracker, hls) {\n this.config = void 0;\n this.media = null;\n this.fragmentTracker = void 0;\n this.hls = void 0;\n this.nudgeRetry = 0;\n this.stallReported = false;\n this.stalled = null;\n this.moved = false;\n this.seeking = false;\n this.config = config;\n this.media = media;\n this.fragmentTracker = fragmentTracker;\n this.hls = hls;\n }\n destroy() {\n this.media = null;\n // @ts-ignore\n this.hls = this.fragmentTracker = null;\n }\n\n /**\n * Checks if the playhead is stuck within a gap, and if so, attempts to free it.\n * A gap is an unbuffered range between two buffered ranges (or the start and the first buffered range).\n *\n * @param lastCurrentTime - Previously read playhead position\n */\n poll(lastCurrentTime, activeFrag) {\n const {\n config,\n media,\n stalled\n } = this;\n if (media === null) {\n return;\n }\n const {\n currentTime,\n seeking\n } = media;\n const seeked = this.seeking && !seeking;\n const beginSeek = !this.seeking && seeking;\n this.seeking = seeking;\n\n // The playhead is moving, no-op\n if (currentTime !== lastCurrentTime) {\n this.moved = true;\n if (!seeking) {\n this.nudgeRetry = 0;\n }\n if (stalled !== null) {\n // The playhead is now moving, but was previously stalled\n if (this.stallReported) {\n const _stalledDuration = self.performance.now() - stalled;\n logger.warn(`playback not stuck anymore @${currentTime}, after ${Math.round(_stalledDuration)}ms`);\n this.stallReported = false;\n }\n this.stalled = null;\n }\n return;\n }\n\n // Clear stalled state when beginning or finishing seeking so that we don't report stalls coming out of a seek\n if (beginSeek || seeked) {\n this.stalled = null;\n return;\n }\n\n // The playhead should not be moving\n if (media.paused && !seeking || media.ended || media.playbackRate === 0 || !BufferHelper.getBuffered(media).length) {\n this.nudgeRetry = 0;\n return;\n }\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const nextStart = bufferInfo.nextStart || 0;\n if (seeking) {\n // Waiting for seeking in a buffered range to complete\n const hasEnoughBuffer = bufferInfo.len > MAX_START_GAP_JUMP;\n // Next buffered range is too far ahead to jump to while still seeking\n const noBufferGap = !nextStart || activeFrag && activeFrag.start <= currentTime || nextStart - currentTime > MAX_START_GAP_JUMP && !this.fragmentTracker.getPartialFragment(currentTime);\n if (hasEnoughBuffer || noBufferGap) {\n return;\n }\n // Reset moved state when seeking to a point in or before a gap\n this.moved = false;\n }\n\n // Skip start gaps if we haven't played, but the last poll detected the start of a stall\n // The addition poll gives the browser a chance to jump the gap for us\n if (!this.moved && this.stalled !== null) {\n var _level$details;\n // There is no playable buffer (seeked, waiting for buffer)\n const isBuffered = bufferInfo.len > 0;\n if (!isBuffered && !nextStart) {\n return;\n }\n // Jump start gaps within jump threshold\n const startJump = Math.max(nextStart, bufferInfo.start || 0) - currentTime;\n\n // When joining a live stream with audio tracks, account for live playlist window sliding by allowing\n // a larger jump over start gaps caused by the audio-stream-controller buffering a start fragment\n // that begins over 1 target duration after the video start position.\n const level = this.hls.levels ? this.hls.levels[this.hls.currentLevel] : null;\n const isLive = level == null ? void 0 : (_level$details = level.details) == null ? void 0 : _level$details.live;\n const maxStartGapJump = isLive ? level.details.targetduration * 2 : MAX_START_GAP_JUMP;\n const partialOrGap = this.fragmentTracker.getPartialFragment(currentTime);\n if (startJump > 0 && (startJump <= maxStartGapJump || partialOrGap)) {\n if (!media.paused) {\n this._trySkipBufferHole(partialOrGap);\n }\n return;\n }\n }\n\n // Start tracking stall time\n const tnow = self.performance.now();\n if (stalled === null) {\n this.stalled = tnow;\n return;\n }\n const stalledDuration = tnow - stalled;\n if (!seeking && stalledDuration >= STALL_MINIMUM_DURATION_MS) {\n // Report stalling after trying to fix\n this._reportStall(bufferInfo);\n if (!this.media) {\n return;\n }\n }\n const bufferedWithHoles = BufferHelper.bufferInfo(media, currentTime, config.maxBufferHole);\n this._tryFixBufferStall(bufferedWithHoles, stalledDuration);\n }\n\n /**\n * Detects and attempts to fix known buffer stalling issues.\n * @param bufferInfo - The properties of the current buffer.\n * @param stalledDurationMs - The amount of time Hls.js has been stalling for.\n * @private\n */\n _tryFixBufferStall(bufferInfo, stalledDurationMs) {\n const {\n config,\n fragmentTracker,\n media\n } = this;\n if (media === null) {\n return;\n }\n const currentTime = media.currentTime;\n const partial = fragmentTracker.getPartialFragment(currentTime);\n if (partial) {\n // Try to skip over the buffer hole caused by a partial fragment\n // This method isn't limited by the size of the gap between buffered ranges\n const targetTime = this._trySkipBufferHole(partial);\n // we return here in this case, meaning\n // the branch below only executes when we haven't seeked to a new position\n if (targetTime || !this.media) {\n return;\n }\n }\n\n // if we haven't had to skip over a buffer hole of a partial fragment\n // we may just have to \"nudge\" the playlist as the browser decoding/rendering engine\n // needs to cross some sort of threshold covering all source-buffers content\n // to start playing properly.\n if ((bufferInfo.len > config.maxBufferHole || bufferInfo.nextStart && bufferInfo.nextStart - currentTime < config.maxBufferHole) && stalledDurationMs > config.highBufferWatchdogPeriod * 1000) {\n logger.warn('Trying to nudge playhead over buffer-hole');\n // Try to nudge currentTime over a buffer hole if we've been stalling for the configured amount of seconds\n // We only try to jump the hole if it's under the configured size\n // Reset stalled so to rearm watchdog timer\n this.stalled = null;\n this._tryNudgeBuffer();\n }\n }\n\n /**\n * Triggers a BUFFER_STALLED_ERROR event, but only once per stall period.\n * @param bufferLen - The playhead distance from the end of the current buffer segment.\n * @private\n */\n _reportStall(bufferInfo) {\n const {\n hls,\n media,\n stallReported\n } = this;\n if (!stallReported && media) {\n // Report stalled error once\n this.stallReported = true;\n const error = new Error(`Playback stalling at @${media.currentTime} due to low buffer (${JSON.stringify(bufferInfo)})`);\n logger.warn(error.message);\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n fatal: false,\n error,\n buffer: bufferInfo.len\n });\n }\n }\n\n /**\n * Attempts to fix buffer stalls by jumping over known gaps caused by partial fragments\n * @param partial - The partial fragment found at the current time (where playback is stalling).\n * @private\n */\n _trySkipBufferHole(partial) {\n const {\n config,\n hls,\n media\n } = this;\n if (media === null) {\n return 0;\n }\n\n // Check if currentTime is between unbuffered regions of partial fragments\n const currentTime = media.currentTime;\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const startTime = currentTime < bufferInfo.start ? bufferInfo.start : bufferInfo.nextStart;\n if (startTime) {\n const bufferStarved = bufferInfo.len <= config.maxBufferHole;\n const waiting = bufferInfo.len > 0 && bufferInfo.len < 1 && media.readyState < 3;\n const gapLength = startTime - currentTime;\n if (gapLength > 0 && (bufferStarved || waiting)) {\n // Only allow large gaps to be skipped if it is a start gap, or all fragments in skip range are partial\n if (gapLength > config.maxBufferHole) {\n const {\n fragmentTracker\n } = this;\n let startGap = false;\n if (currentTime === 0) {\n const startFrag = fragmentTracker.getAppendedFrag(0, PlaylistLevelType.MAIN);\n if (startFrag && startTime < startFrag.end) {\n startGap = true;\n }\n }\n if (!startGap) {\n const startProvisioned = partial || fragmentTracker.getAppendedFrag(currentTime, PlaylistLevelType.MAIN);\n if (startProvisioned) {\n let moreToLoad = false;\n let pos = startProvisioned.end;\n while (pos < startTime) {\n const provisioned = fragmentTracker.getPartialFragment(pos);\n if (provisioned) {\n pos += provisioned.duration;\n } else {\n moreToLoad = true;\n break;\n }\n }\n if (moreToLoad) {\n return 0;\n }\n }\n }\n }\n const targetTime = Math.max(startTime + SKIP_BUFFER_RANGE_START, currentTime + SKIP_BUFFER_HOLE_STEP_SECONDS);\n logger.warn(`skipping hole, adjusting currentTime from ${currentTime} to ${targetTime}`);\n this.moved = true;\n this.stalled = null;\n media.currentTime = targetTime;\n if (partial && !partial.gap) {\n const error = new Error(`fragment loaded with buffer holes, seeking from ${currentTime} to ${targetTime}`);\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_SEEK_OVER_HOLE,\n fatal: false,\n error,\n reason: error.message,\n frag: partial\n });\n }\n return targetTime;\n }\n }\n return 0;\n }\n\n /**\n * Attempts to fix buffer stalls by advancing the mediaElement's current time by a small amount.\n * @private\n */\n _tryNudgeBuffer() {\n const {\n config,\n hls,\n media,\n nudgeRetry\n } = this;\n if (media === null) {\n return;\n }\n const currentTime = media.currentTime;\n this.nudgeRetry++;\n if (nudgeRetry < config.nudgeMaxRetry) {\n const targetTime = currentTime + (nudgeRetry + 1) * config.nudgeOffset;\n // playback stalled in buffered area ... let's nudge currentTime to try to overcome this\n const error = new Error(`Nudging 'currentTime' from ${currentTime} to ${targetTime}`);\n logger.warn(error.message);\n media.currentTime = targetTime;\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_NUDGE_ON_STALL,\n error,\n fatal: false\n });\n } else {\n const error = new Error(`Playhead still not moving while enough data buffered @${currentTime} after ${config.nudgeMaxRetry} nudges`);\n logger.error(error.message);\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n error,\n fatal: true\n });\n }\n }\n}\n\nconst TICK_INTERVAL = 100; // how often to tick in ms\n\nclass StreamController extends BaseStreamController {\n constructor(hls, fragmentTracker, keyLoader) {\n super(hls, fragmentTracker, keyLoader, '[stream-controller]', PlaylistLevelType.MAIN);\n this.audioCodecSwap = false;\n this.gapController = null;\n this.level = -1;\n this._forceStartLoad = false;\n this.altAudio = false;\n this.audioOnly = false;\n this.fragPlaying = null;\n this.onvplaying = null;\n this.onvseeked = null;\n this.fragLastKbps = 0;\n this.couldBacktrack = false;\n this.backtrackFragment = null;\n this.audioCodecSwitch = false;\n this.videoBuffer = null;\n this._registerListeners();\n }\n _registerListeners() {\n const {\n hls\n } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this);\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n _unregisterListeners() {\n const {\n hls\n } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this);\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n }\n startLoad(startPosition) {\n if (this.levels) {\n const {\n lastCurrentTime,\n hls\n } = this;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.level = -1;\n if (!this.startFragRequested) {\n // determine load level\n let startLevel = hls.startLevel;\n if (startLevel === -1) {\n if (hls.config.testBandwidth && this.levels.length > 1) {\n // -1 : guess start Level by doing a bitrate test by loading first fragment of lowest quality level\n startLevel = 0;\n this.bitrateTest = true;\n } else {\n startLevel = hls.firstAutoLevel;\n }\n }\n // set new level to playlist loader : this will trigger start level load\n // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded\n hls.nextLoadLevel = startLevel;\n this.level = hls.loadLevel;\n this.loadedmetadata = false;\n }\n // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(`Override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(3)}`);\n startPosition = lastCurrentTime;\n }\n this.state = State.IDLE;\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n } else {\n this._forceStartLoad = true;\n this.state = State.STOPPED;\n }\n }\n stopLoad() {\n this._forceStartLoad = false;\n super.stopLoad();\n }\n doTick() {\n switch (this.state) {\n case State.WAITING_LEVEL:\n {\n const {\n levels,\n level\n } = this;\n const currentLevel = levels == null ? void 0 : levels[level];\n const details = currentLevel == null ? void 0 : currentLevel.details;\n if (details && (!details.live || this.levelLastLoaded === currentLevel)) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n this.state = State.IDLE;\n break;\n } else if (this.hls.nextLoadLevel !== this.level) {\n this.state = State.IDLE;\n break;\n }\n break;\n }\n case State.FRAG_LOADING_WAITING_RETRY:\n {\n var _this$media;\n const now = self.performance.now();\n const retryDate = this.retryDate;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || now >= retryDate || (_this$media = this.media) != null && _this$media.seeking) {\n const {\n levels,\n level\n } = this;\n const currentLevel = levels == null ? void 0 : levels[level];\n this.resetStartWhenNotLoaded(currentLevel || null);\n this.state = State.IDLE;\n }\n }\n break;\n }\n if (this.state === State.IDLE) {\n this.doTickIdle();\n }\n this.onTickEnd();\n }\n onTickEnd() {\n super.onTickEnd();\n this.checkBuffer();\n this.checkFragmentChanged();\n }\n doTickIdle() {\n const {\n hls,\n levelLastLoaded,\n levels,\n media\n } = this;\n\n // if start level not parsed yet OR\n // if video not attached AND start fragment already requested OR start frag prefetch not enabled\n // exit loop, as we either need more info (level not parsed) or we need media to be attached to load new fragment\n if (levelLastLoaded === null || !media && (this.startFragRequested || !hls.config.startFragPrefetch)) {\n return;\n }\n\n // If the \"main\" level is audio-only but we are loading an alternate track in the same group, do not load anything\n if (this.altAudio && this.audioOnly) {\n return;\n }\n const level = this.buffering ? hls.nextLoadLevel : hls.loadLevel;\n if (!(levels != null && levels[level])) {\n return;\n }\n const levelInfo = levels[level];\n\n // if buffer length is less than maxBufLen try to load a new fragment\n\n const bufferInfo = this.getMainFwdBufferInfo();\n if (bufferInfo === null) {\n return;\n }\n const lastDetails = this.getLevelDetails();\n if (lastDetails && this._streamEnded(bufferInfo, lastDetails)) {\n const data = {};\n if (this.altAudio) {\n data.type = 'video';\n }\n this.hls.trigger(Events.BUFFER_EOS, data);\n this.state = State.ENDED;\n return;\n }\n if (!this.buffering) {\n return;\n }\n\n // set next load level : this will trigger a playlist load if needed\n if (hls.loadLevel !== level && hls.manualLevel === -1) {\n this.log(`Adapting to level ${level} from level ${this.level}`);\n }\n this.level = hls.nextLoadLevel = level;\n const levelDetails = levelInfo.details;\n // if level info not retrieved yet, switch state and wait for level retrieval\n // if live playlist, ensure that new playlist has been refreshed to avoid loading/try to load\n // a useless and outdated fragment (that might even introduce load error if it is already out of the live playlist)\n if (!levelDetails || this.state === State.WAITING_LEVEL || levelDetails.live && this.levelLastLoaded !== levelInfo) {\n this.level = level;\n this.state = State.WAITING_LEVEL;\n return;\n }\n const bufferLen = bufferInfo.len;\n\n // compute max Buffer Length that we could get from this load level, based on level bitrate. don't buffer more than 60 MB and more than 30s\n const maxBufLen = this.getMaxBufferLength(levelInfo.maxBitrate);\n\n // Stay idle if we are still with buffer margins\n if (bufferLen >= maxBufLen) {\n return;\n }\n if (this.backtrackFragment && this.backtrackFragment.start > bufferInfo.end) {\n this.backtrackFragment = null;\n }\n const targetBufferTime = this.backtrackFragment ? this.backtrackFragment.start : bufferInfo.end;\n let frag = this.getNextFragment(targetBufferTime, levelDetails);\n // Avoid backtracking by loading an earlier segment in streams with segments that do not start with a key frame (flagged by `couldBacktrack`)\n if (this.couldBacktrack && !this.fragPrevious && frag && frag.sn !== 'initSegment' && this.fragmentTracker.getState(frag) !== FragmentState.OK) {\n var _this$backtrackFragme;\n const backtrackSn = ((_this$backtrackFragme = this.backtrackFragment) != null ? _this$backtrackFragme : frag).sn;\n const fragIdx = backtrackSn - levelDetails.startSN;\n const backtrackFrag = levelDetails.fragments[fragIdx - 1];\n if (backtrackFrag && frag.cc === backtrackFrag.cc) {\n frag = backtrackFrag;\n this.fragmentTracker.removeFragment(backtrackFrag);\n }\n } else if (this.backtrackFragment && bufferInfo.len) {\n this.backtrackFragment = null;\n }\n // Avoid loop loading by using nextLoadPosition set for backtracking and skipping consecutive GAP tags\n if (frag && this.isLoopLoading(frag, targetBufferTime)) {\n const gapStart = frag.gap;\n if (!gapStart) {\n // Cleanup the fragment tracker before trying to find the next unbuffered fragment\n const type = this.audioOnly && !this.altAudio ? ElementaryStreamTypes.AUDIO : ElementaryStreamTypes.VIDEO;\n const mediaBuffer = (type === ElementaryStreamTypes.VIDEO ? this.videoBuffer : this.mediaBuffer) || this.media;\n if (mediaBuffer) {\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.MAIN);\n }\n }\n frag = this.getNextFragmentLoopLoading(frag, levelDetails, bufferInfo, PlaylistLevelType.MAIN, maxBufLen);\n }\n if (!frag) {\n return;\n }\n if (frag.initSegment && !frag.initSegment.data && !this.bitrateTest) {\n frag = frag.initSegment;\n }\n this.loadFragment(frag, levelInfo, targetBufferTime);\n }\n loadFragment(frag, level, targetBufferTime) {\n // Check if fragment is not loaded\n const fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag;\n if (fragState === FragmentState.NOT_LOADED || fragState === FragmentState.PARTIAL) {\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, level);\n } else if (this.bitrateTest) {\n this.log(`Fragment ${frag.sn} of level ${frag.level} is being downloaded to test bitrate and will not be buffered`);\n this._loadBitrateTestFrag(frag, level);\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, level, targetBufferTime);\n }\n } else {\n this.clearTrackerIfNeeded(frag);\n }\n }\n getBufferedFrag(position) {\n return this.fragmentTracker.getBufferedFrag(position, PlaylistLevelType.MAIN);\n }\n followingBufferedFrag(frag) {\n if (frag) {\n // try to get range of next fragment (500ms after this range)\n return this.getBufferedFrag(frag.end + 0.5);\n }\n return null;\n }\n\n /*\n on immediate level switch :\n - pause playback if playing\n - cancel any pending load request\n - and trigger a buffer flush\n */\n immediateLevelSwitch() {\n this.abortCurrentFrag();\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n\n /**\n * try to switch ASAP without breaking video playback:\n * in order to ensure smooth but quick level switching,\n * we need to find the next flushable buffer range\n * we should take into account new segment fetch time\n */\n nextLevelSwitch() {\n const {\n levels,\n media\n } = this;\n // ensure that media is defined and that metadata are available (to retrieve currentTime)\n if (media != null && media.readyState) {\n let fetchdelay;\n const fragPlayingCurrent = this.getAppendedFrag(media.currentTime);\n if (fragPlayingCurrent && fragPlayingCurrent.start > 1) {\n // flush buffer preceding current fragment (flush until current fragment start offset)\n // minus 1s to avoid video freezing, that could happen if we flush keyframe of current video ...\n this.flushMainBuffer(0, fragPlayingCurrent.start - 1);\n }\n const levelDetails = this.getLevelDetails();\n if (levelDetails != null && levelDetails.live) {\n const bufferInfo = this.getMainFwdBufferInfo();\n // Do not flush in live stream with low buffer\n if (!bufferInfo || bufferInfo.len < levelDetails.targetduration * 2) {\n return;\n }\n }\n if (!media.paused && levels) {\n // add a safety delay of 1s\n const nextLevelId = this.hls.nextLoadLevel;\n const nextLevel = levels[nextLevelId];\n const fragLastKbps = this.fragLastKbps;\n if (fragLastKbps && this.fragCurrent) {\n fetchdelay = this.fragCurrent.duration * nextLevel.maxBitrate / (1000 * fragLastKbps) + 1;\n } else {\n fetchdelay = 0;\n }\n } else {\n fetchdelay = 0;\n }\n // this.log('fetchdelay:'+fetchdelay);\n // find buffer range that will be reached once new fragment will be fetched\n const bufferedFrag = this.getBufferedFrag(media.currentTime + fetchdelay);\n if (bufferedFrag) {\n // we can flush buffer range following this one without stalling playback\n const nextBufferedFrag = this.followingBufferedFrag(bufferedFrag);\n if (nextBufferedFrag) {\n // if we are here, we can also cancel any loading/demuxing in progress, as they are useless\n this.abortCurrentFrag();\n // start flush position is in next buffered frag. Leave some padding for non-independent segments and smoother playback.\n const maxStart = nextBufferedFrag.maxStartPTS ? nextBufferedFrag.maxStartPTS : nextBufferedFrag.start;\n const fragDuration = nextBufferedFrag.duration;\n const startPts = Math.max(bufferedFrag.end, maxStart + Math.min(Math.max(fragDuration - this.config.maxFragLookUpTolerance, fragDuration * (this.couldBacktrack ? 0.5 : 0.125)), fragDuration * (this.couldBacktrack ? 0.75 : 0.25)));\n this.flushMainBuffer(startPts, Number.POSITIVE_INFINITY);\n }\n }\n }\n }\n abortCurrentFrag() {\n const fragCurrent = this.fragCurrent;\n this.fragCurrent = null;\n this.backtrackFragment = null;\n if (fragCurrent) {\n fragCurrent.abortRequests();\n this.fragmentTracker.removeFragment(fragCurrent);\n }\n switch (this.state) {\n case State.KEY_LOADING:\n case State.FRAG_LOADING:\n case State.FRAG_LOADING_WAITING_RETRY:\n case State.PARSING:\n case State.PARSED:\n this.state = State.IDLE;\n break;\n }\n this.nextLoadPosition = this.getLoadPosition();\n }\n flushMainBuffer(startOffset, endOffset) {\n super.flushMainBuffer(startOffset, endOffset, this.altAudio ? 'video' : null);\n }\n onMediaAttached(event, data) {\n super.onMediaAttached(event, data);\n const media = data.media;\n this.onvplaying = this.onMediaPlaying.bind(this);\n this.onvseeked = this.onMediaSeeked.bind(this);\n media.addEventListener('playing', this.onvplaying);\n media.addEventListener('seeked', this.onvseeked);\n this.gapController = new GapController(this.config, media, this.fragmentTracker, this.hls);\n }\n onMediaDetaching() {\n const {\n media\n } = this;\n if (media && this.onvplaying && this.onvseeked) {\n media.removeEventListener('playing', this.onvplaying);\n media.removeEventListener('seeked', this.onvseeked);\n this.onvplaying = this.onvseeked = null;\n this.videoBuffer = null;\n }\n this.fragPlaying = null;\n if (this.gapController) {\n this.gapController.destroy();\n this.gapController = null;\n }\n super.onMediaDetaching();\n }\n onMediaPlaying() {\n // tick to speed up FRAG_CHANGED triggering\n this.tick();\n }\n onMediaSeeked() {\n const media = this.media;\n const currentTime = media ? media.currentTime : null;\n if (isFiniteNumber(currentTime)) {\n this.log(`Media seeked to ${currentTime.toFixed(3)}`);\n }\n\n // If seeked was issued before buffer was appended do not tick immediately\n const bufferInfo = this.getMainFwdBufferInfo();\n if (bufferInfo === null || bufferInfo.len === 0) {\n this.warn(`Main forward buffer length on \"seeked\" event ${bufferInfo ? bufferInfo.len : 'empty'})`);\n return;\n }\n\n // tick to speed up FRAG_CHANGED triggering\n this.tick();\n }\n onManifestLoading() {\n // reset buffer on manifest loading\n this.log('Trigger BUFFER_RESET');\n this.hls.trigger(Events.BUFFER_RESET, undefined);\n this.fragmentTracker.removeAllFragments();\n this.couldBacktrack = false;\n this.startPosition = this.lastCurrentTime = this.fragLastKbps = 0;\n this.levels = this.fragPlaying = this.backtrackFragment = this.levelLastLoaded = null;\n this.altAudio = this.audioOnly = this.startFragRequested = false;\n }\n onManifestParsed(event, data) {\n // detect if we have different kind of audio codecs used amongst playlists\n let aac = false;\n let heaac = false;\n data.levels.forEach(level => {\n const codec = level.audioCodec;\n if (codec) {\n aac = aac || codec.indexOf('mp4a.40.2') !== -1;\n heaac = heaac || codec.indexOf('mp4a.40.5') !== -1;\n }\n });\n this.audioCodecSwitch = aac && heaac && !changeTypeSupported();\n if (this.audioCodecSwitch) {\n this.log('Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC');\n }\n this.levels = data.levels;\n this.startFragRequested = false;\n }\n onLevelLoading(event, data) {\n const {\n levels\n } = this;\n if (!levels || this.state !== State.IDLE) {\n return;\n }\n const level = levels[data.level];\n if (!level.details || level.details.live && this.levelLastLoaded !== level || this.waitForCdnTuneIn(level.details)) {\n this.state = State.WAITING_LEVEL;\n }\n }\n onLevelLoaded(event, data) {\n var _curLevel$details;\n const {\n levels\n } = this;\n const newLevelId = data.level;\n const newDetails = data.details;\n const duration = newDetails.totalduration;\n if (!levels) {\n this.warn(`Levels were reset while loading level ${newLevelId}`);\n return;\n }\n this.log(`Level ${newLevelId} loaded [${newDetails.startSN},${newDetails.endSN}]${newDetails.lastPartSn ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]` : ''}, cc [${newDetails.startCC}, ${newDetails.endCC}] duration:${duration}`);\n const curLevel = levels[newLevelId];\n const fragCurrent = this.fragCurrent;\n if (fragCurrent && (this.state === State.FRAG_LOADING || this.state === State.FRAG_LOADING_WAITING_RETRY)) {\n if (fragCurrent.level !== data.level && fragCurrent.loader) {\n this.abortCurrentFrag();\n }\n }\n let sliding = 0;\n if (newDetails.live || (_curLevel$details = curLevel.details) != null && _curLevel$details.live) {\n var _this$levelLastLoaded;\n this.checkLiveUpdate(newDetails);\n if (newDetails.deltaUpdateFailed) {\n return;\n }\n sliding = this.alignPlaylists(newDetails, curLevel.details, (_this$levelLastLoaded = this.levelLastLoaded) == null ? void 0 : _this$levelLastLoaded.details);\n }\n // override level info\n curLevel.details = newDetails;\n this.levelLastLoaded = curLevel;\n this.hls.trigger(Events.LEVEL_UPDATED, {\n details: newDetails,\n level: newLevelId\n });\n\n // only switch back to IDLE state if we were waiting for level to start downloading a new fragment\n if (this.state === State.WAITING_LEVEL) {\n if (this.waitForCdnTuneIn(newDetails)) {\n // Wait for Low-Latency CDN Tune-in\n return;\n }\n this.state = State.IDLE;\n }\n if (!this.startFragRequested) {\n this.setStartPosition(newDetails, sliding);\n } else if (newDetails.live) {\n this.synchronizeToLiveEdge(newDetails);\n }\n\n // trigger handler right now\n this.tick();\n }\n _handleFragmentLoadProgress(data) {\n var _frag$initSegment;\n const {\n frag,\n part,\n payload\n } = data;\n const {\n levels\n } = this;\n if (!levels) {\n this.warn(`Levels were reset while fragment load was in progress. Fragment ${frag.sn} of level ${frag.level} will not be buffered`);\n return;\n }\n const currentLevel = levels[frag.level];\n const details = currentLevel.details;\n if (!details) {\n this.warn(`Dropping fragment ${frag.sn} of level ${frag.level} after level details were reset`);\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n const videoCodec = currentLevel.videoCodec;\n\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n const accurateTimeOffset = details.PTSKnown || !details.live;\n const initSegmentData = (_frag$initSegment = frag.initSegment) == null ? void 0 : _frag$initSegment.data;\n const audioCodec = this._getAudioCodec(currentLevel);\n\n // transmux the MPEG-TS data to ISO-BMFF segments\n // this.log(`Transmuxing ${frag.sn} of [${details.startSN} ,${details.endSN}],level ${frag.level}, cc ${frag.cc}`);\n const transmuxer = this.transmuxer = this.transmuxer || new TransmuxerInterface(this.hls, PlaylistLevelType.MAIN, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this));\n const partIndex = part ? part.index : -1;\n const partial = partIndex !== -1;\n const chunkMeta = new ChunkMetadata(frag.level, frag.sn, frag.stats.chunkCount, payload.byteLength, partIndex, partial);\n const initPTS = this.initPTS[frag.cc];\n transmuxer.push(payload, initSegmentData, audioCodec, videoCodec, frag, part, details.totalduration, accurateTimeOffset, chunkMeta, initPTS);\n }\n onAudioTrackSwitching(event, data) {\n // if any URL found on new audio track, it is an alternate audio track\n const fromAltAudio = this.altAudio;\n const altAudio = !!data.url;\n // if we switch on main audio, ensure that main fragment scheduling is synced with media.buffered\n // don't do anything if we switch to alt audio: audio stream controller is handling it.\n // we will just have to change buffer scheduling on audioTrackSwitched\n if (!altAudio) {\n if (this.mediaBuffer !== this.media) {\n this.log('Switching on main audio, use media.buffered to schedule main fragment loading');\n this.mediaBuffer = this.media;\n const fragCurrent = this.fragCurrent;\n // we need to refill audio buffer from main: cancel any frag loading to speed up audio switch\n if (fragCurrent) {\n this.log('Switching to main audio track, cancel main fragment load');\n fragCurrent.abortRequests();\n this.fragmentTracker.removeFragment(fragCurrent);\n }\n // destroy transmuxer to force init segment generation (following audio switch)\n this.resetTransmuxer();\n // switch to IDLE state to load new fragment\n this.resetLoadingState();\n } else if (this.audioOnly) {\n // Reset audio transmuxer so when switching back to main audio we're not still appending where we left off\n this.resetTransmuxer();\n }\n const hls = this.hls;\n // If switching from alt to main audio, flush all audio and trigger track switched\n if (fromAltAudio) {\n hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: Number.POSITIVE_INFINITY,\n type: null\n });\n this.fragmentTracker.removeAllFragments();\n }\n hls.trigger(Events.AUDIO_TRACK_SWITCHED, data);\n }\n }\n onAudioTrackSwitched(event, data) {\n const trackId = data.id;\n const altAudio = !!this.hls.audioTracks[trackId].url;\n if (altAudio) {\n const videoBuffer = this.videoBuffer;\n // if we switched on alternate audio, ensure that main fragment scheduling is synced with video sourcebuffer buffered\n if (videoBuffer && this.mediaBuffer !== videoBuffer) {\n this.log('Switching on alternate audio, use video.buffered to schedule main fragment loading');\n this.mediaBuffer = videoBuffer;\n }\n }\n this.altAudio = altAudio;\n this.tick();\n }\n onBufferCreated(event, data) {\n const tracks = data.tracks;\n let mediaTrack;\n let name;\n let alternate = false;\n for (const type in tracks) {\n const track = tracks[type];\n if (track.id === 'main') {\n name = type;\n mediaTrack = track;\n // keep video source buffer reference\n if (type === 'video') {\n const videoTrack = tracks[type];\n if (videoTrack) {\n this.videoBuffer = videoTrack.buffer;\n }\n }\n } else {\n alternate = true;\n }\n }\n if (alternate && mediaTrack) {\n this.log(`Alternate track found, use ${name}.buffered to schedule main fragment loading`);\n this.mediaBuffer = mediaTrack.buffer;\n } else {\n this.mediaBuffer = this.media;\n }\n }\n onFragBuffered(event, data) {\n const {\n frag,\n part\n } = data;\n if (frag && frag.type !== PlaylistLevelType.MAIN) {\n return;\n }\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE, since that will interfere with a level switch\n this.warn(`Fragment ${frag.sn}${part ? ' p: ' + part.index : ''} of level ${frag.level} finished buffering, but was aborted. state: ${this.state}`);\n if (this.state === State.PARSED) {\n this.state = State.IDLE;\n }\n return;\n }\n const stats = part ? part.stats : frag.stats;\n this.fragLastKbps = Math.round(8 * stats.total / (stats.buffering.end - stats.loading.first));\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n }\n this.fragBufferedComplete(frag, part);\n }\n onError(event, data) {\n var _data$context;\n if (data.fatal) {\n this.state = State.ERROR;\n return;\n }\n switch (data.details) {\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_PARSING_ERROR:\n case ErrorDetails.FRAG_DECRYPT_ERROR:\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n this.onFragmentOrKeyLoadError(PlaylistLevelType.MAIN, data);\n break;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n // in case of non fatal error while loading level, if level controller is not retrying to load level, switch back to IDLE\n if (!data.levelRetry && this.state === State.WAITING_LEVEL && ((_data$context = data.context) == null ? void 0 : _data$context.type) === PlaylistContextType.LEVEL) {\n this.state = State.IDLE;\n }\n break;\n case ErrorDetails.BUFFER_APPEND_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n if (!data.parent || data.parent !== 'main') {\n return;\n }\n if (data.details === ErrorDetails.BUFFER_APPEND_ERROR) {\n this.resetLoadingState();\n return;\n }\n if (this.reduceLengthAndFlushBuffer(data)) {\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n break;\n case ErrorDetails.INTERNAL_EXCEPTION:\n this.recoverWorkerError(data);\n break;\n }\n }\n\n // Checks the health of the buffer and attempts to resolve playback stalls.\n checkBuffer() {\n const {\n media,\n gapController\n } = this;\n if (!media || !gapController || !media.readyState) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n }\n if (this.loadedmetadata || !BufferHelper.getBuffered(media).length) {\n // Resolve gaps using the main buffer, whose ranges are the intersections of the A/V sourcebuffers\n const activeFrag = this.state !== State.IDLE ? this.fragCurrent : null;\n gapController.poll(this.lastCurrentTime, activeFrag);\n }\n this.lastCurrentTime = media.currentTime;\n }\n onFragLoadEmergencyAborted() {\n this.state = State.IDLE;\n // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n this.nextLoadPosition = this.startPosition;\n }\n this.tickImmediate();\n }\n onBufferFlushed(event, {\n type\n }) {\n if (type !== ElementaryStreamTypes.AUDIO || this.audioOnly && !this.altAudio) {\n const mediaBuffer = (type === ElementaryStreamTypes.VIDEO ? this.videoBuffer : this.mediaBuffer) || this.media;\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.MAIN);\n this.tick();\n }\n }\n onLevelsUpdated(event, data) {\n if (this.level > -1 && this.fragCurrent) {\n this.level = this.fragCurrent.level;\n }\n this.levels = data.levels;\n }\n swapAudioCodec() {\n this.audioCodecSwap = !this.audioCodecSwap;\n }\n\n /**\n * Seeks to the set startPosition if not equal to the mediaElement's current time.\n */\n seekToStartPos() {\n const {\n media\n } = this;\n if (!media) {\n return;\n }\n const currentTime = media.currentTime;\n let startPosition = this.startPosition;\n // only adjust currentTime if different from startPosition or if startPosition not buffered\n // at that stage, there should be only one buffered range, as we reach that code after first fragment has been buffered\n if (startPosition >= 0 && currentTime < startPosition) {\n if (media.seeking) {\n this.log(`could not seek to ${startPosition}, already seeking at ${currentTime}`);\n return;\n }\n const buffered = BufferHelper.getBuffered(media);\n const bufferStart = buffered.length ? buffered.start(0) : 0;\n const delta = bufferStart - startPosition;\n if (delta > 0 && (delta < this.config.maxBufferHole || delta < this.config.maxFragLookUpTolerance)) {\n this.log(`adjusting start position by ${delta} to match buffer start`);\n startPosition += delta;\n this.startPosition = startPosition;\n }\n this.log(`seek to target start position ${startPosition} from current time ${currentTime}`);\n media.currentTime = startPosition;\n }\n }\n _getAudioCodec(currentLevel) {\n let audioCodec = this.config.defaultAudioCodec || currentLevel.audioCodec;\n if (this.audioCodecSwap && audioCodec) {\n this.log('Swapping audio codec');\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n return audioCodec;\n }\n _loadBitrateTestFrag(frag, level) {\n frag.bitrateTest = true;\n this._doFragLoad(frag, level).then(data => {\n const {\n hls\n } = this;\n if (!data || this.fragContextChanged(frag)) {\n return;\n }\n level.fragmentError = 0;\n this.state = State.IDLE;\n this.startFragRequested = false;\n this.bitrateTest = false;\n const stats = frag.stats;\n // Bitrate tests fragments are neither parsed nor buffered\n stats.parsing.start = stats.parsing.end = stats.buffering.start = stats.buffering.end = self.performance.now();\n hls.trigger(Events.FRAG_LOADED, data);\n frag.bitrateTest = false;\n });\n }\n _handleTransmuxComplete(transmuxResult) {\n var _id3$samples;\n const id = 'main';\n const {\n hls\n } = this;\n const {\n remuxResult,\n chunkMeta\n } = transmuxResult;\n const context = this.getCurrentContext(chunkMeta);\n if (!context) {\n this.resetWhenMissingContext(chunkMeta);\n return;\n }\n const {\n frag,\n part,\n level\n } = context;\n const {\n video,\n text,\n id3,\n initSegment\n } = remuxResult;\n const {\n details\n } = level;\n // The audio-stream-controller handles audio buffering if Hls.js is playing an alternate audio track\n const audio = this.altAudio ? undefined : remuxResult.audio;\n\n // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n if (this.fragContextChanged(frag)) {\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n this.state = State.PARSING;\n if (initSegment) {\n if (initSegment != null && initSegment.tracks) {\n const mapFragment = frag.initSegment || frag;\n this._bufferInitSegment(level, initSegment.tracks, mapFragment, chunkMeta);\n hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {\n frag: mapFragment,\n id,\n tracks: initSegment.tracks\n });\n }\n\n // This would be nice if Number.isFinite acted as a typeguard, but it doesn't. See: https://github.com/Microsoft/TypeScript/issues/10038\n const initPTS = initSegment.initPTS;\n const timescale = initSegment.timescale;\n if (isFiniteNumber(initPTS)) {\n this.initPTS[frag.cc] = {\n baseTime: initPTS,\n timescale\n };\n hls.trigger(Events.INIT_PTS_FOUND, {\n frag,\n id,\n initPTS,\n timescale\n });\n }\n }\n\n // Avoid buffering if backtracking this fragment\n if (video && details && frag.sn !== 'initSegment') {\n const prevFrag = details.fragments[frag.sn - 1 - details.startSN];\n const isFirstFragment = frag.sn === details.startSN;\n const isFirstInDiscontinuity = !prevFrag || frag.cc > prevFrag.cc;\n if (remuxResult.independent !== false) {\n const {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n } = video;\n if (part) {\n part.elementaryStreams[video.type] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n };\n } else {\n if (video.firstKeyFrame && video.independent && chunkMeta.id === 1 && !isFirstInDiscontinuity) {\n this.couldBacktrack = true;\n }\n if (video.dropped && video.independent) {\n // Backtrack if dropped frames create a gap after currentTime\n\n const bufferInfo = this.getMainFwdBufferInfo();\n const targetBufferTime = (bufferInfo ? bufferInfo.end : this.getLoadPosition()) + this.config.maxBufferHole;\n const startTime = video.firstKeyFramePTS ? video.firstKeyFramePTS : startPTS;\n if (!isFirstFragment && targetBufferTime < startTime - this.config.maxBufferHole && !isFirstInDiscontinuity) {\n this.backtrack(frag);\n return;\n } else if (isFirstInDiscontinuity) {\n // Mark segment with a gap to avoid loop loading\n frag.gap = true;\n }\n // Set video stream start to fragment start so that truncated samples do not distort the timeline, and mark it partial\n frag.setElementaryStreamInfo(video.type, frag.start, endPTS, frag.start, endDTS, true);\n } else if (isFirstFragment && startPTS > MAX_START_GAP_JUMP) {\n // Mark segment with a gap to skip large start gap\n frag.gap = true;\n }\n }\n frag.setElementaryStreamInfo(video.type, startPTS, endPTS, startDTS, endDTS);\n if (this.backtrackFragment) {\n this.backtrackFragment = frag;\n }\n this.bufferFragmentData(video, frag, part, chunkMeta, isFirstFragment || isFirstInDiscontinuity);\n } else if (isFirstFragment || isFirstInDiscontinuity) {\n // Mark segment with a gap to avoid loop loading\n frag.gap = true;\n } else {\n this.backtrack(frag);\n return;\n }\n }\n if (audio) {\n const {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n } = audio;\n if (part) {\n part.elementaryStreams[ElementaryStreamTypes.AUDIO] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS\n };\n }\n frag.setElementaryStreamInfo(ElementaryStreamTypes.AUDIO, startPTS, endPTS, startDTS, endDTS);\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n if (details && id3 != null && (_id3$samples = id3.samples) != null && _id3$samples.length) {\n const emittedID3 = {\n id,\n frag,\n details,\n samples: id3.samples\n };\n hls.trigger(Events.FRAG_PARSING_METADATA, emittedID3);\n }\n if (details && text) {\n const emittedText = {\n id,\n frag,\n details,\n samples: text.samples\n };\n hls.trigger(Events.FRAG_PARSING_USERDATA, emittedText);\n }\n }\n _bufferInitSegment(currentLevel, tracks, frag, chunkMeta) {\n if (this.state !== State.PARSING) {\n return;\n }\n this.audioOnly = !!tracks.audio && !tracks.video;\n\n // if audio track is expected to come from audio stream controller, discard any coming from main\n if (this.altAudio && !this.audioOnly) {\n delete tracks.audio;\n }\n // include levelCodec in audio and video tracks\n const {\n audio,\n video,\n audiovideo\n } = tracks;\n if (audio) {\n let audioCodec = currentLevel.audioCodec;\n const ua = navigator.userAgent.toLowerCase();\n if (this.audioCodecSwitch) {\n if (audioCodec) {\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n // In the case that AAC and HE-AAC audio codecs are signalled in manifest,\n // force HE-AAC, as it seems that most browsers prefers it.\n // don't force HE-AAC if mono stream, or in Firefox\n const audioMetadata = audio.metadata;\n if (audioMetadata && 'channelCount' in audioMetadata && (audioMetadata.channelCount || 1) !== 1 && ua.indexOf('firefox') === -1) {\n audioCodec = 'mp4a.40.5';\n }\n }\n // HE-AAC is broken on Android, always signal audio codec as AAC even if variant manifest states otherwise\n if (audioCodec && audioCodec.indexOf('mp4a.40.5') !== -1 && ua.indexOf('android') !== -1 && audio.container !== 'audio/mpeg') {\n // Exclude mpeg audio\n audioCodec = 'mp4a.40.2';\n this.log(`Android: force audio codec to ${audioCodec}`);\n }\n if (currentLevel.audioCodec && currentLevel.audioCodec !== audioCodec) {\n this.log(`Swapping manifest audio codec \"${currentLevel.audioCodec}\" for \"${audioCodec}\"`);\n }\n audio.levelCodec = audioCodec;\n audio.id = 'main';\n this.log(`Init audio buffer, container:${audio.container}, codecs[selected/level/parsed]=[${audioCodec || ''}/${currentLevel.audioCodec || ''}/${audio.codec}]`);\n }\n if (video) {\n video.levelCodec = currentLevel.videoCodec;\n video.id = 'main';\n this.log(`Init video buffer, container:${video.container}, codecs[level/parsed]=[${currentLevel.videoCodec || ''}/${video.codec}]`);\n }\n if (audiovideo) {\n this.log(`Init audiovideo buffer, container:${audiovideo.container}, codecs[level/parsed]=[${currentLevel.codecs}/${audiovideo.codec}]`);\n }\n this.hls.trigger(Events.BUFFER_CODECS, tracks);\n // loop through tracks that are going to be provided to bufferController\n Object.keys(tracks).forEach(trackName => {\n const track = tracks[trackName];\n const initSegment = track.initSegment;\n if (initSegment != null && initSegment.byteLength) {\n this.hls.trigger(Events.BUFFER_APPENDING, {\n type: trackName,\n data: initSegment,\n frag,\n part: null,\n chunkMeta,\n parent: frag.type\n });\n }\n });\n // trigger handler right now\n this.tickImmediate();\n }\n getMainFwdBufferInfo() {\n return this.getFwdBufferInfo(this.mediaBuffer ? this.mediaBuffer : this.media, PlaylistLevelType.MAIN);\n }\n backtrack(frag) {\n this.couldBacktrack = true;\n // Causes findFragments to backtrack through fragments to find the keyframe\n this.backtrackFragment = frag;\n this.resetTransmuxer();\n this.flushBufferGap(frag);\n this.fragmentTracker.removeFragment(frag);\n this.fragPrevious = null;\n this.nextLoadPosition = frag.start;\n this.state = State.IDLE;\n }\n checkFragmentChanged() {\n const video = this.media;\n let fragPlayingCurrent = null;\n if (video && video.readyState > 1 && video.seeking === false) {\n const currentTime = video.currentTime;\n /* if video element is in seeked state, currentTime can only increase.\n (assuming that playback rate is positive ...)\n As sometimes currentTime jumps back to zero after a\n media decode error, check this, to avoid seeking back to\n wrong position after a media decode error\n */\n\n if (BufferHelper.isBuffered(video, currentTime)) {\n fragPlayingCurrent = this.getAppendedFrag(currentTime);\n } else if (BufferHelper.isBuffered(video, currentTime + 0.1)) {\n /* ensure that FRAG_CHANGED event is triggered at startup,\n when first video frame is displayed and playback is paused.\n add a tolerance of 100ms, in case current position is not buffered,\n check if current pos+100ms is buffered and use that buffer range\n for FRAG_CHANGED event reporting */\n fragPlayingCurrent = this.getAppendedFrag(currentTime + 0.1);\n }\n if (fragPlayingCurrent) {\n this.backtrackFragment = null;\n const fragPlaying = this.fragPlaying;\n const fragCurrentLevel = fragPlayingCurrent.level;\n if (!fragPlaying || fragPlayingCurrent.sn !== fragPlaying.sn || fragPlaying.level !== fragCurrentLevel) {\n this.fragPlaying = fragPlayingCurrent;\n this.hls.trigger(Events.FRAG_CHANGED, {\n frag: fragPlayingCurrent\n });\n if (!fragPlaying || fragPlaying.level !== fragCurrentLevel) {\n this.hls.trigger(Events.LEVEL_SWITCHED, {\n level: fragCurrentLevel\n });\n }\n }\n }\n }\n }\n get nextLevel() {\n const frag = this.nextBufferedFrag;\n if (frag) {\n return frag.level;\n }\n return -1;\n }\n get currentFrag() {\n const media = this.media;\n if (media) {\n return this.fragPlaying || this.getAppendedFrag(media.currentTime);\n }\n return null;\n }\n get currentProgramDateTime() {\n const media = this.media;\n if (media) {\n const currentTime = media.currentTime;\n const frag = this.currentFrag;\n if (frag && isFiniteNumber(currentTime) && isFiniteNumber(frag.programDateTime)) {\n const epocMs = frag.programDateTime + (currentTime - frag.start) * 1000;\n return new Date(epocMs);\n }\n }\n return null;\n }\n get currentLevel() {\n const frag = this.currentFrag;\n if (frag) {\n return frag.level;\n }\n return -1;\n }\n get nextBufferedFrag() {\n const frag = this.currentFrag;\n if (frag) {\n return this.followingBufferedFrag(frag);\n }\n return null;\n }\n get forceStartLoad() {\n return this._forceStartLoad;\n }\n}\n\n/**\n * The `Hls` class is the core of the HLS.js library used to instantiate player instances.\n * @public\n */\nclass Hls {\n /**\n * Get the video-dev/hls.js package version.\n */\n static get version() {\n return \"1.5.20\";\n }\n\n /**\n * Check if the required MediaSource Extensions are available.\n */\n static isMSESupported() {\n return isMSESupported();\n }\n\n /**\n * Check if MediaSource Extensions are available and isTypeSupported checks pass for any baseline codecs.\n */\n static isSupported() {\n return isSupported();\n }\n\n /**\n * Get the MediaSource global used for MSE playback (ManagedMediaSource, MediaSource, or WebKitMediaSource).\n */\n static getMediaSource() {\n return getMediaSource();\n }\n static get Events() {\n return Events;\n }\n static get ErrorTypes() {\n return ErrorTypes;\n }\n static get ErrorDetails() {\n return ErrorDetails;\n }\n\n /**\n * Get the default configuration applied to new instances.\n */\n static get DefaultConfig() {\n if (!Hls.defaultConfig) {\n return hlsDefaultConfig;\n }\n return Hls.defaultConfig;\n }\n\n /**\n * Replace the default configuration applied to new instances.\n */\n static set DefaultConfig(defaultConfig) {\n Hls.defaultConfig = defaultConfig;\n }\n\n /**\n * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.\n * @param userConfig - Configuration options applied over `Hls.DefaultConfig`\n */\n constructor(userConfig = {}) {\n /**\n * The runtime configuration used by the player. At instantiation this is combination of `hls.userConfig` merged over `Hls.DefaultConfig`.\n */\n this.config = void 0;\n /**\n * The configuration object provided on player instantiation.\n */\n this.userConfig = void 0;\n this.coreComponents = void 0;\n this.networkControllers = void 0;\n this.started = false;\n this._emitter = new EventEmitter();\n this._autoLevelCapping = -1;\n this._maxHdcpLevel = null;\n this.abrController = void 0;\n this.bufferController = void 0;\n this.capLevelController = void 0;\n this.latencyController = void 0;\n this.levelController = void 0;\n this.streamController = void 0;\n this.audioTrackController = void 0;\n this.subtitleTrackController = void 0;\n this.emeController = void 0;\n this.cmcdController = void 0;\n this._media = null;\n this.url = null;\n this.triggeringException = void 0;\n enableLogs(userConfig.debug || false, 'Hls instance');\n const config = this.config = mergeConfig(Hls.DefaultConfig, userConfig);\n this.userConfig = userConfig;\n if (config.progressive) {\n enableStreamingMode(config);\n }\n\n // core controllers and network loaders\n const {\n abrController: ConfigAbrController,\n bufferController: ConfigBufferController,\n capLevelController: ConfigCapLevelController,\n errorController: ConfigErrorController,\n fpsController: ConfigFpsController\n } = config;\n const errorController = new ConfigErrorController(this);\n const abrController = this.abrController = new ConfigAbrController(this);\n const bufferController = this.bufferController = new ConfigBufferController(this);\n const capLevelController = this.capLevelController = new ConfigCapLevelController(this);\n const fpsController = new ConfigFpsController(this);\n const playListLoader = new PlaylistLoader(this);\n const id3TrackController = new ID3TrackController(this);\n const ConfigContentSteeringController = config.contentSteeringController;\n // ConentSteeringController is defined before LevelController to receive Multivariant Playlist events first\n const contentSteering = ConfigContentSteeringController ? new ConfigContentSteeringController(this) : null;\n const levelController = this.levelController = new LevelController(this, contentSteering);\n // FragmentTracker must be defined before StreamController because the order of event handling is important\n const fragmentTracker = new FragmentTracker(this);\n const keyLoader = new KeyLoader(this.config);\n const streamController = this.streamController = new StreamController(this, fragmentTracker, keyLoader);\n\n // Cap level controller uses streamController to flush the buffer\n capLevelController.setStreamController(streamController);\n // fpsController uses streamController to switch when frames are being dropped\n fpsController.setStreamController(streamController);\n const networkControllers = [playListLoader, levelController, streamController];\n if (contentSteering) {\n networkControllers.splice(1, 0, contentSteering);\n }\n this.networkControllers = networkControllers;\n const coreComponents = [abrController, bufferController, capLevelController, fpsController, id3TrackController, fragmentTracker];\n this.audioTrackController = this.createController(config.audioTrackController, networkControllers);\n const AudioStreamControllerClass = config.audioStreamController;\n if (AudioStreamControllerClass) {\n networkControllers.push(new AudioStreamControllerClass(this, fragmentTracker, keyLoader));\n }\n // subtitleTrackController must be defined before subtitleStreamController because the order of event handling is important\n this.subtitleTrackController = this.createController(config.subtitleTrackController, networkControllers);\n const SubtitleStreamControllerClass = config.subtitleStreamController;\n if (SubtitleStreamControllerClass) {\n networkControllers.push(new SubtitleStreamControllerClass(this, fragmentTracker, keyLoader));\n }\n this.createController(config.timelineController, coreComponents);\n keyLoader.emeController = this.emeController = this.createController(config.emeController, coreComponents);\n this.cmcdController = this.createController(config.cmcdController, coreComponents);\n this.latencyController = this.createController(LatencyController, coreComponents);\n this.coreComponents = coreComponents;\n\n // Error controller handles errors before and after all other controllers\n // This listener will be invoked after all other controllers error listeners\n networkControllers.push(errorController);\n const onErrorOut = errorController.onErrorOut;\n if (typeof onErrorOut === 'function') {\n this.on(Events.ERROR, onErrorOut, errorController);\n }\n }\n createController(ControllerClass, components) {\n if (ControllerClass) {\n const controllerInstance = new ControllerClass(this);\n if (components) {\n components.push(controllerInstance);\n }\n return controllerInstance;\n }\n return null;\n }\n\n // Delegate the EventEmitter through the public API of Hls.js\n on(event, listener, context = this) {\n this._emitter.on(event, listener, context);\n }\n once(event, listener, context = this) {\n this._emitter.once(event, listener, context);\n }\n removeAllListeners(event) {\n this._emitter.removeAllListeners(event);\n }\n off(event, listener, context = this, once) {\n this._emitter.off(event, listener, context, once);\n }\n listeners(event) {\n return this._emitter.listeners(event);\n }\n emit(event, name, eventObject) {\n return this._emitter.emit(event, name, eventObject);\n }\n trigger(event, eventObject) {\n if (this.config.debug) {\n return this.emit(event, event, eventObject);\n } else {\n try {\n return this.emit(event, event, eventObject);\n } catch (error) {\n logger.error('An internal error happened while handling event ' + event + '. Error message: \"' + error.message + '\". Here is a stacktrace:', error);\n // Prevent recursion in error event handlers that throw #5497\n if (!this.triggeringException) {\n this.triggeringException = true;\n const fatal = event === Events.ERROR;\n this.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n fatal,\n event,\n error\n });\n this.triggeringException = false;\n }\n }\n }\n return false;\n }\n listenerCount(event) {\n return this._emitter.listenerCount(event);\n }\n\n /**\n * Dispose of the instance\n */\n destroy() {\n logger.log('destroy');\n this.trigger(Events.DESTROYING, undefined);\n this.detachMedia();\n this.removeAllListeners();\n this._autoLevelCapping = -1;\n this.url = null;\n this.networkControllers.forEach(component => component.destroy());\n this.networkControllers.length = 0;\n this.coreComponents.forEach(component => component.destroy());\n this.coreComponents.length = 0;\n // Remove any references that could be held in config options or callbacks\n const config = this.config;\n config.xhrSetup = config.fetchSetup = undefined;\n // @ts-ignore\n this.userConfig = null;\n }\n\n /**\n * Attaches Hls.js to a media element\n */\n attachMedia(media) {\n logger.log('attachMedia');\n this._media = media;\n this.trigger(Events.MEDIA_ATTACHING, {\n media: media\n });\n }\n\n /**\n * Detach Hls.js from the media\n */\n detachMedia() {\n logger.log('detachMedia');\n this.trigger(Events.MEDIA_DETACHING, undefined);\n this._media = null;\n }\n\n /**\n * Set the source URL. Can be relative or absolute.\n */\n loadSource(url) {\n this.stopLoad();\n const media = this.media;\n const loadedSource = this.url;\n const loadingSource = this.url = urlToolkitExports.buildAbsoluteURL(self.location.href, url, {\n alwaysNormalize: true\n });\n this._autoLevelCapping = -1;\n this._maxHdcpLevel = null;\n logger.log(`loadSource:${loadingSource}`);\n if (media && loadedSource && (loadedSource !== loadingSource || this.bufferController.hasSourceTypes())) {\n this.detachMedia();\n this.attachMedia(media);\n }\n // when attaching to a source URL, trigger a playlist load\n this.trigger(Events.MANIFEST_LOADING, {\n url: url\n });\n }\n\n /**\n * Start loading data from the stream source.\n * Depending on default config, client starts loading automatically when a source is set.\n *\n * @param startPosition - Set the start position to stream from.\n * Defaults to -1 (None: starts from earliest point)\n */\n startLoad(startPosition = -1) {\n logger.log(`startLoad(${startPosition})`);\n this.started = true;\n this.resumeBuffering();\n for (let i = 0; i < this.networkControllers.length; i++) {\n this.networkControllers[i].startLoad(startPosition);\n if (!this.started || !this.networkControllers) {\n break;\n }\n }\n }\n\n /**\n * Stop loading of any stream data.\n */\n stopLoad() {\n logger.log('stopLoad');\n this.started = false;\n for (let i = 0; i < this.networkControllers.length; i++) {\n this.networkControllers[i].stopLoad();\n if (this.started || !this.networkControllers) {\n break;\n }\n }\n }\n\n /**\n * Resumes stream controller segment loading after `pauseBuffering` has been called.\n */\n resumeBuffering() {\n logger.log(`resume buffering`);\n this.networkControllers.forEach(controller => {\n if (controller.resumeBuffering) {\n controller.resumeBuffering();\n }\n });\n }\n\n /**\n * Prevents stream controller from loading new segments until `resumeBuffering` is called.\n * This allows for media buffering to be paused without interupting playlist loading.\n */\n pauseBuffering() {\n logger.log(`pause buffering`);\n this.networkControllers.forEach(controller => {\n if (controller.pauseBuffering) {\n controller.pauseBuffering();\n }\n });\n }\n\n /**\n * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)\n */\n swapAudioCodec() {\n logger.log('swapAudioCodec');\n this.streamController.swapAudioCodec();\n }\n\n /**\n * When the media-element fails, this allows to detach and then re-attach it\n * as one call (convenience method).\n *\n * Automatic recovery of media-errors by this process is configurable.\n */\n recoverMediaError() {\n logger.log('recoverMediaError');\n const media = this._media;\n this.detachMedia();\n if (media) {\n this.attachMedia(media);\n }\n }\n removeLevel(levelIndex) {\n this.levelController.removeLevel(levelIndex);\n }\n\n /**\n * @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH\n */\n get levels() {\n const levels = this.levelController.levels;\n return levels ? levels : [];\n }\n\n /**\n * Index of quality level (variant) currently played\n */\n get currentLevel() {\n return this.streamController.currentLevel;\n }\n\n /**\n * Set quality level index immediately. This will flush the current buffer to replace the quality asap. That means playback will interrupt at least shortly to re-buffer and re-sync eventually. Set to -1 for automatic level selection.\n */\n set currentLevel(newLevel) {\n logger.log(`set currentLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n this.streamController.immediateLevelSwitch();\n }\n\n /**\n * Index of next quality level loaded as scheduled by stream controller.\n */\n get nextLevel() {\n return this.streamController.nextLevel;\n }\n\n /**\n * Set quality level index for next loaded data.\n * This will switch the video quality asap, without interrupting playback.\n * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).\n * @param newLevel - Pass -1 for automatic level selection\n */\n set nextLevel(newLevel) {\n logger.log(`set nextLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n this.streamController.nextLevelSwitch();\n }\n\n /**\n * Return the quality level of the currently or last (of none is loaded currently) segment\n */\n get loadLevel() {\n return this.levelController.level;\n }\n\n /**\n * Set quality level index for next loaded data in a conservative way.\n * This will switch the quality without flushing, but interrupt current loading.\n * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.\n * @param newLevel - Pass -1 for automatic level selection\n */\n set loadLevel(newLevel) {\n logger.log(`set loadLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n }\n\n /**\n * get next quality level loaded\n */\n get nextLoadLevel() {\n return this.levelController.nextLoadLevel;\n }\n\n /**\n * Set quality level of next loaded segment in a fully \"non-destructive\" way.\n * Same as `loadLevel` but will wait for next switch (until current loading is done).\n */\n set nextLoadLevel(level) {\n this.levelController.nextLoadLevel = level;\n }\n\n /**\n * Return \"first level\": like a default level, if not set,\n * falls back to index of first level referenced in manifest\n */\n get firstLevel() {\n return Math.max(this.levelController.firstLevel, this.minAutoLevel);\n }\n\n /**\n * Sets \"first-level\", see getter.\n */\n set firstLevel(newLevel) {\n logger.log(`set firstLevel:${newLevel}`);\n this.levelController.firstLevel = newLevel;\n }\n\n /**\n * Return the desired start level for the first fragment that will be loaded.\n * The default value of -1 indicates automatic start level selection.\n * Setting hls.nextAutoLevel without setting a startLevel will result in\n * the nextAutoLevel value being used for one fragment load.\n */\n get startLevel() {\n const startLevel = this.levelController.startLevel;\n if (startLevel === -1 && this.abrController.forcedAutoLevel > -1) {\n return this.abrController.forcedAutoLevel;\n }\n return startLevel;\n }\n\n /**\n * set start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n */\n set startLevel(newLevel) {\n logger.log(`set startLevel:${newLevel}`);\n // if not in automatic start level detection, ensure startLevel is greater than minAutoLevel\n if (newLevel !== -1) {\n newLevel = Math.max(newLevel, this.minAutoLevel);\n }\n this.levelController.startLevel = newLevel;\n }\n\n /**\n * Whether level capping is enabled.\n * Default value is set via `config.capLevelToPlayerSize`.\n */\n get capLevelToPlayerSize() {\n return this.config.capLevelToPlayerSize;\n }\n\n /**\n * Enables or disables level capping. If disabled after previously enabled, `nextLevelSwitch` will be immediately called.\n */\n set capLevelToPlayerSize(shouldStartCapping) {\n const newCapLevelToPlayerSize = !!shouldStartCapping;\n if (newCapLevelToPlayerSize !== this.config.capLevelToPlayerSize) {\n if (newCapLevelToPlayerSize) {\n this.capLevelController.startCapping(); // If capping occurs, nextLevelSwitch will happen based on size.\n } else {\n this.capLevelController.stopCapping();\n this.autoLevelCapping = -1;\n this.streamController.nextLevelSwitch(); // Now we're uncapped, get the next level asap.\n }\n this.config.capLevelToPlayerSize = newCapLevelToPlayerSize;\n }\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n */\n get autoLevelCapping() {\n return this._autoLevelCapping;\n }\n\n /**\n * Returns the current bandwidth estimate in bits per second, when available. Otherwise, `NaN` is returned.\n */\n get bandwidthEstimate() {\n const {\n bwEstimator\n } = this.abrController;\n if (!bwEstimator) {\n return NaN;\n }\n return bwEstimator.getEstimate();\n }\n set bandwidthEstimate(abrEwmaDefaultEstimate) {\n this.abrController.resetEstimator(abrEwmaDefaultEstimate);\n }\n\n /**\n * get time to first byte estimate\n * @type {number}\n */\n get ttfbEstimate() {\n const {\n bwEstimator\n } = this.abrController;\n if (!bwEstimator) {\n return NaN;\n }\n return bwEstimator.getEstimateTTFB();\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n */\n set autoLevelCapping(newLevel) {\n if (this._autoLevelCapping !== newLevel) {\n logger.log(`set autoLevelCapping:${newLevel}`);\n this._autoLevelCapping = newLevel;\n this.levelController.checkMaxAutoUpdated();\n }\n }\n get maxHdcpLevel() {\n return this._maxHdcpLevel;\n }\n set maxHdcpLevel(value) {\n if (isHdcpLevel(value) && this._maxHdcpLevel !== value) {\n this._maxHdcpLevel = value;\n this.levelController.checkMaxAutoUpdated();\n }\n }\n\n /**\n * True when automatic level selection enabled\n */\n get autoLevelEnabled() {\n return this.levelController.manualLevel === -1;\n }\n\n /**\n * Level set manually (if any)\n */\n get manualLevel() {\n return this.levelController.manualLevel;\n }\n\n /**\n * min level selectable in auto mode according to config.minAutoBitrate\n */\n get minAutoLevel() {\n const {\n levels,\n config: {\n minAutoBitrate\n }\n } = this;\n if (!levels) return 0;\n const len = levels.length;\n for (let i = 0; i < len; i++) {\n if (levels[i].maxBitrate >= minAutoBitrate) {\n return i;\n }\n }\n return 0;\n }\n\n /**\n * max level selectable in auto mode according to autoLevelCapping\n */\n get maxAutoLevel() {\n const {\n levels,\n autoLevelCapping,\n maxHdcpLevel\n } = this;\n let maxAutoLevel;\n if (autoLevelCapping === -1 && levels != null && levels.length) {\n maxAutoLevel = levels.length - 1;\n } else {\n maxAutoLevel = autoLevelCapping;\n }\n if (maxHdcpLevel) {\n for (let i = maxAutoLevel; i--;) {\n const hdcpLevel = levels[i].attrs['HDCP-LEVEL'];\n if (hdcpLevel && hdcpLevel <= maxHdcpLevel) {\n return i;\n }\n }\n }\n return maxAutoLevel;\n }\n get firstAutoLevel() {\n return this.abrController.firstAutoLevel;\n }\n\n /**\n * next automatically selected quality level\n */\n get nextAutoLevel() {\n return this.abrController.nextAutoLevel;\n }\n\n /**\n * this setter is used to force next auto level.\n * this is useful to force a switch down in auto mode:\n * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)\n * forced value is valid for one fragment. upon successful frag loading at forced level,\n * this value will be resetted to -1 by ABR controller.\n */\n set nextAutoLevel(nextLevel) {\n this.abrController.nextAutoLevel = nextLevel;\n }\n\n /**\n * get the datetime value relative to media.currentTime for the active level Program Date Time if present\n */\n get playingDate() {\n return this.streamController.currentProgramDateTime;\n }\n get mainForwardBufferInfo() {\n return this.streamController.getMainFwdBufferInfo();\n }\n\n /**\n * Find and select the best matching audio track, making a level switch when a Group change is necessary.\n * Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.\n */\n setAudioOption(audioOption) {\n var _this$audioTrackContr;\n return (_this$audioTrackContr = this.audioTrackController) == null ? void 0 : _this$audioTrackContr.setAudioOption(audioOption);\n }\n /**\n * Find and select the best matching subtitle track, making a level switch when a Group change is necessary.\n * Updates `hls.config.subtitlePreference`. Returns the selected track, or null when no matching track is found.\n */\n setSubtitleOption(subtitleOption) {\n var _this$subtitleTrackCo;\n (_this$subtitleTrackCo = this.subtitleTrackController) == null ? void 0 : _this$subtitleTrackCo.setSubtitleOption(subtitleOption);\n return null;\n }\n\n /**\n * Get the complete list of audio tracks across all media groups\n */\n get allAudioTracks() {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.allAudioTracks : [];\n }\n\n /**\n * Get the list of selectable audio tracks\n */\n get audioTracks() {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTracks : [];\n }\n\n /**\n * index of the selected audio track (index in audio track lists)\n */\n get audioTrack() {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTrack : -1;\n }\n\n /**\n * selects an audio track, based on its index in audio track lists\n */\n set audioTrack(audioTrackId) {\n const audioTrackController = this.audioTrackController;\n if (audioTrackController) {\n audioTrackController.audioTrack = audioTrackId;\n }\n }\n\n /**\n * get the complete list of subtitle tracks across all media groups\n */\n get allSubtitleTracks() {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.allSubtitleTracks : [];\n }\n\n /**\n * get alternate subtitle tracks list from playlist\n */\n get subtitleTracks() {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTracks : [];\n }\n\n /**\n * index of the selected subtitle track (index in subtitle track lists)\n */\n get subtitleTrack() {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTrack : -1;\n }\n get media() {\n return this._media;\n }\n\n /**\n * select an subtitle track, based on its index in subtitle track lists\n */\n set subtitleTrack(subtitleTrackId) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleTrack = subtitleTrackId;\n }\n }\n\n /**\n * Whether subtitle display is enabled or not\n */\n get subtitleDisplay() {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleDisplay : false;\n }\n\n /**\n * Enable/disable subtitle display rendering\n */\n set subtitleDisplay(value) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleDisplay = value;\n }\n }\n\n /**\n * get mode for Low-Latency HLS loading\n */\n get lowLatencyMode() {\n return this.config.lowLatencyMode;\n }\n\n /**\n * Enable/disable Low-Latency HLS part playlist and segment loading, and start live streams at playlist PART-HOLD-BACK rather than HOLD-BACK.\n */\n set lowLatencyMode(mode) {\n this.config.lowLatencyMode = mode;\n }\n\n /**\n * Position (in seconds) of live sync point (ie edge of live position minus safety delay defined by ```hls.config.liveSyncDuration```)\n * @returns null prior to loading live Playlist\n */\n get liveSyncPosition() {\n return this.latencyController.liveSyncPosition;\n }\n\n /**\n * Estimated position (in seconds) of live edge (ie edge of live playlist plus time sync playlist advanced)\n * @returns 0 before first playlist is loaded\n */\n get latency() {\n return this.latencyController.latency;\n }\n\n /**\n * maximum distance from the edge before the player seeks forward to ```hls.liveSyncPosition```\n * configured using ```liveMaxLatencyDurationCount``` (multiple of target duration) or ```liveMaxLatencyDuration```\n * @returns 0 before first playlist is loaded\n */\n get maxLatency() {\n return this.latencyController.maxLatency;\n }\n\n /**\n * target distance from the edge as calculated by the latency controller\n */\n get targetLatency() {\n return this.latencyController.targetLatency;\n }\n\n /**\n * the rate at which the edge of the current live playlist is advancing or 1 if there is none\n */\n get drift() {\n return this.latencyController.drift;\n }\n\n /**\n * set to true when startLoad is called before MANIFEST_PARSED event\n */\n get forceStartLoad() {\n return this.streamController.forceStartLoad;\n }\n}\nHls.defaultConfig = void 0;\n\nexport { AbrController, AttrList, AudioStreamController, AudioTrackController, BasePlaylistController, BaseSegment, BaseStreamController, BufferController, CMCDController, CapLevelController, ChunkMetadata, ContentSteeringController, DateRange, EMEController, ErrorActionFlags, ErrorController, ErrorDetails, ErrorTypes, Events, FPSController, Fragment, Hls, HlsSkip, HlsUrlParameters, KeySystemFormats, KeySystems, Level, LevelDetails, LevelKey, LoadStats, MetadataSchema, NetworkErrorAction, Part, PlaylistLevelType, SubtitleStreamController, SubtitleTrackController, TimelineController, Hls as default, getMediaSource, isMSESupported, isSupported };\n//# sourceMappingURL=hls.mjs.map\n","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","export default __webpack_public_path__ + \"assets/favicons/favicon.ico\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// This icon file is generated automatically.\nvar ZoomInOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-in\", \"theme\": \"outlined\" };\nexport default ZoomInOutlined;\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\nexport default eq;\n","import { dropUndefinedKeys } from '@sentry/utils';\nimport { getIsolationScope } from './currentScopes.js';\n\n/**\n * @inheritdoc\n */\nclass SessionFlusher {\n\n // Cast to any so that it can use Node.js timeout\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n constructor(client, attrs) {\n this._client = client;\n this.flushTimeout = 60;\n this._pendingAggregates = new Map();\n this._isEnabled = true;\n\n // Call to setInterval, so that flush is called every 60 seconds.\n this._intervalId = setInterval(() => this.flush(), this.flushTimeout * 1000);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (this._intervalId.unref) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n this._intervalId.unref();\n }\n this._sessionAttrs = attrs;\n }\n\n /** Checks if `pendingAggregates` has entries, and if it does flushes them by calling `sendSession` */\n flush() {\n const sessionAggregates = this.getSessionAggregates();\n if (sessionAggregates.aggregates.length === 0) {\n return;\n }\n this._pendingAggregates = new Map();\n this._client.sendSession(sessionAggregates);\n }\n\n /** Massages the entries in `pendingAggregates` and returns aggregated sessions */\n getSessionAggregates() {\n const aggregates = Array.from(this._pendingAggregates.values());\n\n const sessionAggregates = {\n attrs: this._sessionAttrs,\n aggregates,\n };\n return dropUndefinedKeys(sessionAggregates);\n }\n\n /** JSDoc */\n close() {\n clearInterval(this._intervalId);\n this._isEnabled = false;\n this.flush();\n }\n\n /**\n * Wrapper function for _incrementSessionStatusCount that checks if the instance of SessionFlusher is enabled then\n * fetches the session status of the request from `Scope.getRequestSession().status` on the scope and passes them to\n * `_incrementSessionStatusCount` along with the start date\n */\n incrementSessionStatusCount() {\n if (!this._isEnabled) {\n return;\n }\n const isolationScope = getIsolationScope();\n const requestSession = isolationScope.getRequestSession();\n\n if (requestSession && requestSession.status) {\n this._incrementSessionStatusCount(requestSession.status, new Date());\n // This is not entirely necessarily but is added as a safe guard to indicate the bounds of a request and so in\n // case captureRequestSession is called more than once to prevent double count\n isolationScope.setRequestSession(undefined);\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n }\n }\n\n /**\n * Increments status bucket in pendingAggregates buffer (internal state) corresponding to status of\n * the session received\n */\n _incrementSessionStatusCount(status, date) {\n // Truncate minutes and seconds on Session Started attribute to have one minute bucket keys\n const sessionStartedTrunc = new Date(date).setSeconds(0, 0);\n\n // corresponds to aggregated sessions in one specific minute bucket\n // for example, {\"started\":\"2021-03-16T08:00:00.000Z\",\"exited\":4, \"errored\": 1}\n let aggregationCounts = this._pendingAggregates.get(sessionStartedTrunc);\n if (!aggregationCounts) {\n aggregationCounts = { started: new Date(sessionStartedTrunc).toISOString() };\n this._pendingAggregates.set(sessionStartedTrunc, aggregationCounts);\n }\n\n switch (status) {\n case 'errored':\n aggregationCounts.errored = (aggregationCounts.errored || 0) + 1;\n return aggregationCounts.errored;\n case 'ok':\n aggregationCounts.exited = (aggregationCounts.exited || 0) + 1;\n return aggregationCounts.exited;\n default:\n aggregationCounts.crashed = (aggregationCounts.crashed || 0) + 1;\n return aggregationCounts.crashed;\n }\n }\n}\n\nexport { SessionFlusher };\n//# sourceMappingURL=sessionflusher.js.map\n","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\n/**\n * Warning for ConfigProviderProps.\n * This will be empty function in production.\n */\nconst PropWarning = /*#__PURE__*/React.memo(_ref => {\n let {\n dropdownMatchSelectWidth\n } = _ref;\n const warning = devUseWarning('ConfigProvider');\n warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n return null;\n});\nif (process.env.NODE_ENV !== 'production') {\n PropWarning.displayName = 'PropWarning';\n}\nexport default process.env.NODE_ENV !== 'production' ? PropWarning : () => null;","module.exports = __webpack_public_path__ + \"1cc6fc3772824e2f87f10a9c3fad2dae.js\";","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","import { fillRef, getNodeRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, getNodeRef(children));\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import mergeWith from 'lodash/mergeWith';\nimport { createSelector } from 'reselect';\nimport {\n selectCurrentOrgId,\n selectRemoteFeatureFlags,\n} from 'global/accessToken/selectors';\n\nconst openpathConfig = require('openpathConfig');\n\nfunction customizer(objValue, srcValue) {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue);\n }\n return undefined;\n}\n\nconst selectConfig = () => () => {\n return openpathConfig;\n};\n\nexport const selectMergedConfig = () =>\n createSelector(\n selectConfig(),\n selectRemoteFeatureFlags(),\n selectCurrentOrgId(),\n (opconfig, remoteFlags, orgId) => {\n const remoteFlagsJS = remoteFlags?.toJS();\n\n // start with opconfig\n let merged = { ...opconfig };\n\n // merge in any org specific flags in the config\n if (opconfig.orgSpecificConfig) {\n merged = mergeWith(\n merged,\n opconfig.orgSpecificConfig[String(orgId)],\n customizer,\n );\n }\n\n // merge in any remote global flags\n if (remoteFlagsJS?.null) {\n merged = mergeWith(merged, remoteFlagsJS.null, customizer);\n }\n\n // merge in remote org specific flags\n if (remoteFlagsJS && remoteFlagsJS[String(orgId)]) {\n merged = mergeWith(merged, remoteFlagsJS[String(orgId)], customizer);\n }\n return merged;\n },\n );\n\nexport const selectFeatureFlag = (flag, fallback = null) =>\n createSelector(selectMergedConfig(), (mergedConfig) =>\n mergedConfig[flag] === undefined ? fallback : mergedConfig[flag],\n );\n\n// TODO: Remove this once we refactor Core in DB\nexport const selectEnabledAcuModelIds = createSelector(\n selectFeatureFlag('ENABLED_ACU_MODEL_IDS'),\n\n // If 4/8 port enabled then we add Core as an option\n // Core (id 8) is hardcoded in Platinum currently and\n // will be refactored in Helium shortly\n (enabledAcuModelIds) =>\n enabledAcuModelIds.includes(6) || enabledAcuModelIds.includes(7)\n ? enabledAcuModelIds.concat(8)\n : enabledAcuModelIds,\n);\n","import rules from \"../rule/index\";\nvar array = function array(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default array;","/** 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","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","import { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation.js';\nimport { getDisplayName } from './utils.js';\nexport const withTranslation = (ns, options = {}) => function Extend(WrappedComponent) {\n function I18nextWithTranslation({\n forwardedRef,\n ...rest\n }) {\n const [t, i18n, ready] = useTranslation(ns, {\n ...rest,\n keyPrefix: options.keyPrefix\n });\n const passDownProps = {\n ...rest,\n t,\n i18n,\n tReady: ready\n };\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n return createElement(WrappedComponent, passDownProps);\n }\n I18nextWithTranslation.displayName = `withI18nextTranslation(${getDisplayName(WrappedComponent)})`;\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n const forwardRef = (props, ref) => createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n};","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\n","import Cookies from 'universal-cookie';\nimport openpathConfig from 'openpathConfig';\nimport { getAltaDomain, getEnvironment } from './domains';\n\n/**\n * @description Checks if the domain is alta.avigilon. If true, it sets the access token based on the\n * environment (dev, prod, sandbox, eu) and the domain. If false, sets the access token the current openpath way.\n * @returns void\n */\nexport const setAccessToken = (token?: string | null) => {\n const cookies = new Cookies();\n const domain = getAltaDomain();\n\n if (domain) {\n const env = getEnvironment();\n const accessTokenName = env ? `accessToken-${env}` : 'accessToken';\n // Get current domain\n const cookieSettings = {\n ...openpathConfig.COOKIE_SETTINGS,\n domain,\n };\n\n cookies.set(accessTokenName, token, cookieSettings);\n } else {\n // do it the old openpath way\n cookies.set('accessToken', token, openpathConfig.COOKIE_SETTINGS);\n }\n};\n\n/**\n * @description Checks if the domain is alta.avigilon. If true, it gets the access token based on the\n * environment (dev, prod, sandbox, eu). If false, gets the access token the current openpath way.\n * @returns access token for the environment/domain.\n */\nexport const getAccessToken = () => {\n const cookies = new Cookies();\n const domain = getAltaDomain();\n\n const env = getEnvironment();\n return domain && env\n ? cookies.get(`accessToken-${env}`)\n : cookies.get('accessToken');\n};\n\n/**\n * @description Checks if the domain is alta.avigilon. If true, it removes the access token based on the\n * environment (dev, prod, sandbox, eu). If false, removes the access token the current openpath way.\n * @returns void\n */\nexport const removeAccessToken = () => {\n const cookies = new Cookies();\n const domain = getAltaDomain();\n\n if (domain) {\n const env = getEnvironment();\n const accessTokenName = env ? `accessToken-${env}` : 'accessToken';\n cookies.remove(accessTokenName, {\n path: '/',\n domain,\n });\n\n // removing prod domain from revert of cookie changes\n cookies.remove(accessTokenName, {\n path: '/',\n domain: '.alta.avigilon.com',\n });\n }\n\n /**\n * We call this secondary removal as a temporary \"fix\" for the following scenario as well as for control.openpath.com.\n * 1. Log into control.alta.avigilon.com (sets cookie to .alta.avigilon.com)\n * 2. App switch to Aware and app switch back (a cookie is set on the more specific control.alta.avigilon.com set from our cloudfront function we didn't update when this change was made for native apps like Mailroom to share cookies)\n *\n * The issue is when app switching back from Aware and then logging out from Access\n * you get stuck in an infinite loop because theres still the control.alta.avigilon.com\n * domain token sitting around and our app is trying to use it to \"log in\" and creates an\n * infinite rerender loop. We could try and fix the cloudfront function but this is a slightly\n * quicker and dirty qay to achieve the same thing. That function should potentially be obsolete\n * soon anyways once we permanently move to alta.avigilon.com\n */\n cookies.remove('accessToken', { path: '/' });\n};\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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\nmodule.exports = cloneDataView;\n","/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import { format } from \"../util\";\nvar pattern = function pattern(rule, value, source, errors, options) {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n } else if (typeof rule.pattern === 'string') {\n var _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n }\n }\n }\n};\nexport default pattern;","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","module.exports = __webpack_public_path__ + \"41e8a86a20df71cb48a373b096c06cd1.js\";","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar JsonHighlightRules = function () {\n this.$rules = {\n \"start\": [\n {\n token: \"variable\", // single line\n regex: '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token: \"string\", // single line\n regex: '\"',\n next: \"string\"\n }, {\n token: \"constant.numeric\", // hex\n regex: \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token: \"constant.numeric\", // float\n regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token: \"constant.language.boolean\",\n regex: \"(?:true|false)\\\\b\"\n }, {\n token: \"text\", // single quoted strings are not allowed\n regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token: \"comment\", // comments are not allowed, but who cares?\n regex: \"\\\\/\\\\/.*$\"\n }, {\n token: \"comment.start\", // comments are not allowed, but who cares?\n regex: \"\\\\/\\\\*\",\n next: \"comment\"\n }, {\n token: \"paren.lparen\",\n regex: \"[[({]\"\n }, {\n token: \"paren.rparen\",\n regex: \"[\\\\])}]\"\n }, {\n token: \"punctuation.operator\",\n regex: /[,]/\n }, {\n token: \"text\",\n regex: \"\\\\s+\"\n }\n ],\n \"string\": [\n {\n token: \"constant.language.escape\",\n regex: /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token: \"string\",\n regex: '\"|$',\n next: \"start\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"comment\": [\n {\n token: \"comment.end\", // comments are not allowed, but who cares?\n regex: \"\\\\*\\\\/\",\n next: \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n};\noop.inherits(JsonHighlightRules, TextHighlightRules);\nexports.JsonHighlightRules = JsonHighlightRules;\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\nvar Mode = function () {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.createWorker = function (session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n worker.on(\"annotate\", function (e) {\n session.setAnnotations(e.data);\n });\n worker.on(\"terminate\", function () {\n session.clearAnnotations();\n });\n return worker;\n };\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","import { defineIntegration } from '@sentry/core';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'BrowserApiErrors';\n\nconst _browserApiErrorsIntegration = ((options = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) ;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nconst browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original,)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { browserApiErrorsIntegration };\n//# sourceMappingURL=browserapierrors.js.map\n","\"use client\";\n\nimport InternalAlert from './Alert';\nimport ErrorBoundary from './ErrorBoundary';\nconst Alert = InternalAlert;\nAlert.ErrorBoundary = ErrorBoundary;\nexport default Alert;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar boolean = function boolean(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default boolean;","import { ComponentProps } from 'react';\nimport Tooltip from 'antd/es/tooltip';\n\nexport const OpTooltip = ({\n children,\n className = '',\n ...tooltipProps\n}: ComponentProps<typeof Tooltip>) => {\n return (\n <Tooltip className={`op-tooltip ${className}`.trim()} {...tooltipProps}>\n {children}\n </Tooltip>\n );\n};\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar any = function any(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\nexport default any;","module.exports = __webpack_public_path__ + \"9b1fd9cf4206cc32e84150c49707d811.js\";","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _BellOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/BellOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar BellOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _BellOutlined.default\n }));\n};\n/**![bell](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgxNiA3NjhoLTI0VjQyOGMwLTE0MS4xLTEwNC4zLTI1Ny43LTI0MC0yNzcuMVYxMTJjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB2MzguOWMtMTM1LjcgMTkuNC0yNDAgMTM2LTI0MCAyNzcuMXYzNDBoLTI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoMjE2YzAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJoMjE2YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4ODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4aDk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4ek0zMDQgNzY4VjQyOGMwLTU1LjYgMjEuNi0xMDcuOCA2MC45LTE0Ny4xUzQ1Ni40IDIyMCA1MTIgMjIwYzU1LjYgMCAxMDcuOCAyMS42IDE0Ny4xIDYwLjlTNzIwIDM3Mi40IDcyMCA0Mjh2MzQwSDMwNHoiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(BellOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"BellOutlined\";\n}\nvar _default = RefIcon;\n","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/thenable.ts\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nexport {\n pendingThenable\n};\n//# sourceMappingURL=thenable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n if (!this.options.experimental_prefetchInRender) {\n this.#currentThenable.reject(\n new Error(\"experimental_prefetchInRender feature flag is not enabled\")\n );\n }\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult(notifyOptions);\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackProp(key);\n onPropTracked?.(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n if (options.select && newState.data !== void 0) {\n if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(newState.data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n } else {\n data = newState.data;\n }\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n if (options.select && placeholderData !== void 0) {\n try {\n placeholderData = options.select(placeholderData);\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const finalizeThenableIfPossible = (thenable) => {\n if (nextResult.status === \"error\") {\n thenable.reject(nextResult.error);\n } else if (nextResult.data !== void 0) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (nextResult.status === \"error\" || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (nextResult.status !== \"error\" || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult(notifyOptions) {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const defaultNotifyOptions = {};\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n this.#notify({ ...defaultNotifyOptions, ...notifyOptions });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false) {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep } from \"./utils.js\";\nfunction difference(array1, array2) {\n return array1.filter((x) => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options, notifyOptions) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n this.#observerMatches = newObserverMatches;\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return;\n }\n this.#observers = newObservers;\n this.#result = newResult;\n if (!this.hasListeners()) {\n return;\n }\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine) {\n if (combine) {\n if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = new Map(\n this.#observers.map((observer) => [observer.options.queryHash, observer])\n );\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash);\n if (match) {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: match\n });\n } else {\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer: new QueryObserver(this.#client, defaultedOptions)\n });\n }\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options, notifyOptions) {\n super.setOptions(\n {\n ...options,\n behavior: infiniteQueryBehavior()\n },\n notifyOptions\n );\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/types.ts\nvar dataTagSymbol = Symbol(\"dataTagSymbol\");\nvar dataTagErrorSymbol = Symbol(\"dataTagErrorSymbol\");\nvar unsetMarker = Symbol(\"unsetMarker\");\nexport {\n dataTagErrorSymbol,\n dataTagSymbol,\n unsetMarker\n};\n//# sourceMappingURL=types.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/isRestoring.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=isRestoring.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","// src/utils.ts\nfunction shouldThrowError(throwError, params) {\n if (typeof throwError === \"function\") {\n return throwError(...params);\n }\n return !!throwError;\n}\nfunction noop() {\n}\nexport {\n noop,\n shouldThrowError\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"./utils.js\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.throwOnError || options.experimental_prefetchInRender) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n const originalStaleTime = defaultedOptions.staleTime;\n if (defaultedOptions.suspense) {\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => Math.max(originalStaleTime(...args), 1e3) : Math.max(originalStaleTime ?? 1e3, 1e3);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, 1e3);\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((query) => {\n ensureSuspenseTimers(query);\n ensurePreventErrorBoundaryRetry(query, errorResetBoundary);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options,\n {\n listeners: false\n }\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts) {\n const queryObserver = new QueryObserver(client, opts);\n if (shouldSuspend(opts, result)) {\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n } else if (willFetch(result, isRestoring)) {\n void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nimport { noop } from \"./utils.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query: client.getQueryCache().get(defaultedOptions.queryHash),\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n client.getQueryCache().get(defaultedOptions.queryHash)?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","\"use client\";\n\n// src/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useInfiniteQuery(options, queryClient) {\n return useBaseQuery(\n options,\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useInfiniteQuery\n};\n//# sourceMappingURL=useInfiniteQuery.js.map","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\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 map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","module.exports = __webpack_public_path__ + \"4d156ee0485ab4b40b090a3cd7b995a9.js\";","module.exports = __webpack_public_path__ + \"88e2feda80ac8cfb28f1dc0ec833b40d.js\";","'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","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { NotificationProvider, useNotification as useRcNotification } from 'rc-notification';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Wrapper = _ref => {\n let {\n children,\n prefixCls\n } = _ref;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(NotificationProvider, {\n classNames: {\n list: classNames(hashId, cssVarCls, rootCls)\n }\n }, children));\n};\nconst renderNotifications = (node, _ref2) => {\n let {\n prefixCls,\n key\n } = _ref2;\n return /*#__PURE__*/React.createElement(Wrapper, {\n prefixCls: prefixCls,\n key: key\n }, node);\n};\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n duration = DEFAULT_DURATION,\n rtl,\n transitionName,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n message,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n // =============================== Style ===============================\n const getStyle = () => ({\n left: '50%',\n transform: 'translateX(-50%)',\n top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n });\n const getClassName = () => classNames({\n [`${prefixCls}-rtl`]: rtl !== null && rtl !== void 0 ? rtl : direction === 'rtl'\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n // ============================ Close Icon =============================\n const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved,\n renderNotifications\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n message\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = React.useRef(null);\n const warning = devUseWarning('Message');\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n message\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n className,\n style,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"style\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(Object.assign(Object.assign({}, restConfig), {\n key: mergedKey,\n content: (/*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)),\n placement: 'top',\n className: classNames(type && `${noticePrefixCls}-${type}`, className, message === null || message === void 0 ? void 0 : message.className),\n style: Object.assign(Object.assign({}, message === null || message === void 0 ? void 0 : message.style), style),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = Object.assign(Object.assign({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n clone[type] = typeOpen;\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"message-holder\"\n }, messageConfig, {\n ref: holderRef\n }))];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","module.exports = __webpack_public_path__ + \"23bb1a9f279e7a732bfd405350aab114.js\";","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"];\nimport Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n restProps = _objectWithoutProperties(props, _excluded);\n var triggerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var extraProps = _objectSpread({}, restProps);\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: triggerRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n autoDestroy: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay,\n arrow: showArrow\n }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import { getAccessToken } from 'utils/accessToken';\nimport { useOpQuery } from 'utils/customHooks/useOpQuery';\nimport { getActiveScopes } from 'utils/scopes';\n\nexport const useGetActiveScopes = (orgId: number) => {\n const accessToken = getAccessToken();\n\n const { data: orgData, isLoading: isOrgDataLoading } = useOpQuery({\n apiEndpointName: 'describeOrg',\n parameters: [orgId],\n select: (data) => data.json.data,\n });\n\n const { data: tokenData, isLoading: isAccessTokenDataLoading } = useOpQuery({\n apiEndpointName: 'describeAccessToken',\n parameters: [accessToken],\n select: (data) => data.json.data,\n });\n\n // Get the active scopes for the current user\n const activeScopes = getActiveScopes({\n tokenScopeList: tokenData?.tokenScopeList ?? [],\n orgId: Number(orgId),\n parentOrgId: orgData?.parentOrg?.id,\n });\n\n return {\n activeScopes,\n isLoading: isOrgDataLoading || isAccessTokenDataLoading,\n };\n};\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\n\nexport function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n for (var i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n return true;\n}\nvar ThemeCache = /*#__PURE__*/function () {\n function ThemeCache() {\n _classCallCheck(this, ThemeCache);\n _defineProperty(this, \"cache\", void 0);\n _defineProperty(this, \"keys\", void 0);\n _defineProperty(this, \"cacheCallTimes\", void 0);\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n _createClass(ThemeCache, [{\n key: \"size\",\n value: function size() {\n return this.keys.length;\n }\n }, {\n key: \"internalGet\",\n value: function internalGet(derivativeOption) {\n var _cache2, _cache3;\n var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cache = {\n map: this.cache\n };\n derivativeOption.forEach(function (derivative) {\n if (!cache) {\n cache = undefined;\n } else {\n var _cache;\n cache = (_cache = cache) === null || _cache === void 0 || (_cache = _cache.map) === null || _cache === void 0 ? void 0 : _cache.get(derivative);\n }\n });\n if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n }\n }, {\n key: \"get\",\n value: function get(derivativeOption) {\n var _this$internalGet;\n return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n }\n }, {\n key: \"has\",\n value: function has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n }, {\n key: \"set\",\n value: function set(derivativeOption, value) {\n var _this = this;\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n var _this$keys$reduce = this.keys.reduce(function (result, key) {\n var _result = _slicedToArray(result, 2),\n callTimes = _result[1];\n if (_this.internalGet(key)[1] < callTimes) {\n return [key, _this.internalGet(key)[1]];\n }\n return result;\n }, [this.keys[0], this.cacheCallTimes]),\n _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n targetKey = _this$keys$reduce2[0];\n this.delete(targetKey);\n }\n this.keys.push(derivativeOption);\n }\n var cache = this.cache;\n derivativeOption.forEach(function (derivative, index) {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, _this.cacheCallTimes++]\n });\n } else {\n var cacheValue = cache.get(derivative);\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n cache = cache.get(derivative).map;\n }\n });\n }\n }, {\n key: \"deleteByPath\",\n value: function deleteByPath(currentCache, derivatives) {\n var cache = currentCache.get(derivatives[0]);\n if (derivatives.length === 1) {\n var _cache$value;\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n }\n var result = this.deleteByPath(cache.map, derivatives.slice(1));\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n return result;\n }\n }, {\n key: \"delete\",\n value: function _delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(function (item) {\n return !sameDerivativeOption(item, derivativeOption);\n });\n return this.deleteByPath(this.cache, derivativeOption);\n }\n return undefined;\n }\n }]);\n return ThemeCache;\n}();\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\nexport { ThemeCache as default };","var root = require('./_root');\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\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 length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","var Symbol = require('./_Symbol');\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 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\nmodule.exports = cloneSymbol;\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormButtonProps\n extends Pick<ComponentProps<typeof OpForm.Item>, 'label'>,\n Omit<ComponentProps<typeof OpButton>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormButton = ({\n // Form Item props\n formItemClassName,\n label,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n className,\n\n disabled,\n ...elementProps\n}: OpFormButtonProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-button', formItemClassName)}\n label={label}\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Button active block={elementProps.block} />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpButton\n disabled={isReadOnly || disabled}\n className={className}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","module.exports = __webpack_public_path__ + \"c1a1f4ba29aa2d9a0b1a1abe5cfee0c6.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\n\n/**![question-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'QuestionCircleOutlined';\n}\nexport default RefIcon;","module.exports = __webpack_public_path__ + \"83387cb17a7680f59240e7b399e3ac2b.js\";","'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","export function getLineHeight(fontSize) {\n return (fontSize + 8) / fontSize;\n}\n// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(Math.E, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => ({\n size,\n lineHeight: getLineHeight(size)\n }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _actions = require(\"./actions\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * This middleware captures CALL_HISTORY_METHOD actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\nvar routerMiddleware = function routerMiddleware(history) {\n return function (store) {\n return function (next) {\n return function (action) {\n // eslint-disable-line no-unused-vars\n if (action.type !== _actions.CALL_HISTORY_METHOD) {\n return next(action);\n }\n\n var _action$payload = action.payload,\n method = _action$payload.method,\n args = _action$payload.args;\n history[method].apply(history, _toConsumableArray(args));\n };\n };\n };\n};\n\nvar _default = routerMiddleware;\nexports[\"default\"] = _default;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PauseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"pause\", \"theme\": \"outlined\" };\nexports.default = PauseOutlined;\n","import {\n SAVE_TABLE_STATE,\n REQUEST_AND_SET_GENERAL_WRAPPER,\n SET_USER_GROUPS,\n SET_ORG,\n SET_GROUPS,\n SET_GROUP,\n SET_SITES,\n SET_ZONES,\n SET_ZONE,\n SET_ZONE_GROUPS,\n SET_ENTRIES,\n SET_ENTRY_USER_SCHEDULES,\n SET_USERS,\n SET_FILTERED_USERS_COUNT,\n SET_IDENTITY_PROVIDERS,\n SET_ENTRY_STATES,\n SET_TRIGGER_METHODS,\n SET_IOS,\n SET_SCHEDULES,\n SET_GROUP_SCHEDULES,\n SET_ACUS,\n SET_SCOPE_RESOURCES,\n SET_ROLES,\n SET_ROLE,\n REQUEST_GET_CURRENT_ORG_DATA,\n SET_ACTIVITY,\n SET_ALARM_ACTIVITY,\n SET_VISUAL_ACTIVITY,\n SET_USER_ACTIVITY,\n SET_IDENTITY_PROVIDER_GROUPS,\n SET_IDENTITY_PROVIDER_GROUP_RELATIONS,\n SET_ALL_ACU_ENTRIES_USERS,\n SET_USER_ENTRIES,\n SET_CREDENTIAL_TYPES,\n SET_CREDENTIALS,\n SET_CARD_FORMATS,\n SET_SCHEDULE_TYPES,\n SET_SCHEDULE_EVENTS,\n SET_AUDIT_LOGS,\n SET_SHARED_USERS,\n SET_ACU_PORTS,\n SET_REQUEST_TYPES,\n SET_PROTON_STATUSES,\n SET_USER_CREDENTIALS,\n SET_NAMESPACES,\n SET_TOTAL_USERS_COUNT,\n SET_HOOK_EVENTS,\n REQUEST_PAGE_DATA_GENERIC,\n REQUEST_HELIUM_DATA_GENERIC,\n SET_ALLEGION_INVITE_STATE,\n SET_NETSUITE_PACKAGE_PLANS,\n RESET_HLS_URL,\n RESET_POSTER_URL,\n SLIDE_OUT_SUCCESSFUL,\n UPDATE_OPTIONS,\n SET_ALARM_CONFIGURATIONS,\n} from './constants';\n\n// ** this line ends new testing actions\n\nexport function setUsers(page, data) {\n return {\n type: SET_USERS,\n page,\n data,\n };\n}\n\nexport function setFilteredUsersCount(page, data) {\n return {\n type: SET_FILTERED_USERS_COUNT,\n page,\n data,\n };\n}\n\nexport function setTotalUsersCount(page, data) {\n return {\n type: SET_TOTAL_USERS_COUNT,\n page,\n data,\n };\n}\n\nexport function setGroups(page, data) {\n return {\n type: SET_GROUPS,\n page,\n data,\n };\n}\n\nexport function setOrg(page, data) {\n return {\n type: SET_ORG,\n page,\n data,\n };\n}\n\nexport function setNetsuitePackagePlans(page, data) {\n return {\n type: SET_NETSUITE_PACKAGE_PLANS,\n page,\n data,\n };\n}\n\nexport function setUserEntries(page, data) {\n return {\n type: SET_USER_ENTRIES,\n page,\n data,\n };\n}\n\nexport function setEntries(page, data) {\n return {\n type: SET_ENTRIES,\n page,\n data,\n };\n}\n\nexport function setEntryUserSchedules(page, data) {\n return {\n type: SET_ENTRY_USER_SCHEDULES,\n page,\n data,\n };\n}\n\nexport function setGroup(page, data) {\n return {\n type: SET_GROUP,\n page,\n data,\n };\n}\n\nexport function setSites(page, data) {\n return {\n type: SET_SITES,\n page,\n data,\n };\n}\n\nexport function setZones(page, data) {\n return {\n type: SET_ZONES,\n page,\n data,\n };\n}\n\nexport function setZone(page, data) {\n return {\n type: SET_ZONE,\n page,\n data,\n };\n}\n\nexport function setZoneGroups(page, data) {\n return {\n type: SET_ZONE_GROUPS,\n page,\n data,\n };\n}\n\nexport function setIdentityProviders(page, data) {\n return {\n type: SET_IDENTITY_PROVIDERS,\n page,\n data,\n };\n}\n\nexport function setEntryStates(page, data) {\n return {\n type: SET_ENTRY_STATES,\n page,\n data,\n };\n}\n\nexport function setTriggerMethods(page, data) {\n return {\n type: SET_TRIGGER_METHODS,\n page,\n data,\n };\n}\n\nexport function setIos(page, data) {\n return {\n type: SET_IOS,\n page,\n data,\n };\n}\n\nexport function setSchedules(page, data) {\n return {\n type: SET_SCHEDULES,\n page,\n data,\n };\n}\n\nexport function setGroupSchedules(page, data) {\n return {\n type: SET_GROUP_SCHEDULES,\n page,\n data,\n };\n}\n\nexport function setAcus(page, data) {\n return {\n type: SET_ACUS,\n page,\n data,\n };\n}\n\nexport function setAllegionInviteState(page, data) {\n return {\n type: SET_ALLEGION_INVITE_STATE,\n page,\n data,\n };\n}\n\nexport function setScopeResources(page, data) {\n return {\n type: SET_SCOPE_RESOURCES,\n data,\n page,\n };\n}\n\nexport function setRoles(page, data) {\n return {\n type: SET_ROLES,\n page,\n data,\n };\n}\n\nexport function setRole(page, data) {\n return {\n type: SET_ROLE,\n page,\n data,\n };\n}\n\nexport function setActivity(page, data) {\n return {\n type: SET_ACTIVITY,\n page,\n data,\n };\n}\n\nexport function setAlarmActivity(page, data) {\n return {\n type: SET_ALARM_ACTIVITY,\n page,\n data,\n };\n}\n\nexport function setVisualActivity(page, data) {\n return {\n type: SET_VISUAL_ACTIVITY,\n page,\n data,\n };\n}\n\nexport function setUserActivity(page, data) {\n return {\n type: SET_USER_ACTIVITY,\n page,\n data,\n };\n}\n\nexport function setUserGroups(page, data) {\n return {\n type: SET_USER_GROUPS,\n page,\n data,\n };\n}\n\nexport function setUserCredentials(page, data) {\n return {\n type: SET_USER_CREDENTIALS,\n page,\n data,\n };\n}\n\nexport function setIdentityProviderGroups(page, data) {\n return {\n type: SET_IDENTITY_PROVIDER_GROUPS,\n page,\n data,\n };\n}\n\nexport function setIdentityProviderGroupRelations(page, data) {\n return {\n type: SET_IDENTITY_PROVIDER_GROUP_RELATIONS,\n page,\n data,\n };\n}\n\nexport function setAllAcuEntriesUsers(page, data) {\n return {\n type: SET_ALL_ACU_ENTRIES_USERS,\n page,\n data,\n };\n}\n\nexport function setCredentialTypes(page, data) {\n return {\n type: SET_CREDENTIAL_TYPES,\n page,\n data,\n };\n}\n\nexport function setCredentials(page, data) {\n return {\n type: SET_CREDENTIALS,\n page,\n data,\n };\n}\n\nexport function setCardFormats(page, data) {\n return {\n type: SET_CARD_FORMATS,\n page,\n data,\n };\n}\n\nexport function setScheduleTypes(page, data) {\n return {\n type: SET_SCHEDULE_TYPES,\n page,\n data,\n };\n}\n\nexport function setScheduleEvents(page, data) {\n return {\n type: SET_SCHEDULE_EVENTS,\n page,\n data,\n };\n}\n\nexport function setAuditLogs(page, data) {\n return {\n type: SET_AUDIT_LOGS,\n page,\n data,\n };\n}\n\nexport function setSharedUsers(page, data) {\n return {\n type: SET_SHARED_USERS,\n page,\n data,\n };\n}\n\nexport function setAcuPorts(page, data) {\n return {\n type: SET_ACU_PORTS,\n page,\n data,\n };\n}\n\nexport function setRequestTypes(page, data) {\n return {\n type: SET_REQUEST_TYPES,\n page,\n data,\n };\n}\n\nexport function setProtonStatuses(page, data) {\n return {\n type: SET_PROTON_STATUSES,\n page,\n data,\n };\n}\n\nexport function setNamespaces(page, data) {\n return {\n type: SET_NAMESPACES,\n page,\n data,\n };\n}\n\nexport function setHookEvents(page, data) {\n return {\n type: SET_HOOK_EVENTS,\n page,\n data,\n };\n}\n\nexport function setAlarmConfigurations(page, data) {\n return {\n type: SET_ALARM_CONFIGURATIONS,\n page,\n data,\n };\n}\n\nexport function requestGetCurrentOrgData(orgId) {\n return {\n type: REQUEST_GET_CURRENT_ORG_DATA,\n orgId,\n };\n}\n\n/// ////////////////////\n\nexport function setOrgContainerReducer(type, page, data, subFilterId) {\n return { type, page, data, subFilterId };\n}\n\nexport const updateOptions = ({\n endpointName,\n setterActionType,\n page,\n filterQuery,\n options,\n}) => ({\n type: UPDATE_OPTIONS,\n endpointName,\n setterActionType,\n page,\n filterQuery,\n options,\n});\n\n// ** NOTE - these two actions are being tested on the dashboard\n// ** for a new way to generalize calls to helium\n// ** see justin if you have any questions\nexport function requestPageDataGeneric(page, injects) {\n return {\n type: REQUEST_PAGE_DATA_GENERIC,\n page,\n injects,\n };\n}\n\nexport function requestHeliumDataGeneric(page, key) {\n return {\n type: REQUEST_HELIUM_DATA_GENERIC,\n page,\n key,\n };\n}\n\n// this action is a wrapper action to call a helium API without needing to make a \"copypasta\" saga\nexport function requestAndSetGeneralWrapper({\n heliumApi,\n queryStringParams = {},\n setterActionType = () => null,\n page,\n additionalEndpointRequisites = [],\n}) {\n return {\n type: REQUEST_AND_SET_GENERAL_WRAPPER,\n heliumApi,\n queryStringParams,\n setterActionType,\n page,\n additionalEndpointRequisites,\n };\n}\n\nexport function saveTableState(page, state, subFilter) {\n return {\n type: SAVE_TABLE_STATE,\n page,\n data: state,\n subFilter,\n };\n}\n\n// These are here rather than with the OpVideoPlayers because when a route was changed\n// and the new route didn't have the OpVideoPlayers saga, the saga to reset the HLS\n// URL and poster URL would not run. When they are at the org level they will always run\nexport const resetHlsUrl = (page, hlsSetterActionType, subFilter) => ({\n type: RESET_HLS_URL,\n page,\n hlsSetterActionType,\n subFilter,\n});\n\nexport const resetPosterUrl = (page, subFilter) => ({\n type: RESET_POSTER_URL,\n page,\n subFilter,\n});\nexport function slideOutSuccessful(data) {\n return {\n type: SLIDE_OUT_SUCCESSFUL,\n data,\n };\n}\n","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nfunction box(position) {\n return {\n position,\n inset: 0\n };\n}\nexport const genModalMaskStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return [{\n [`${componentCls}-root`]: {\n [`${componentCls}${antCls}-zoom-enter, ${componentCls}${antCls}-zoom-appear`]: {\n // reset scale avoid mousePosition bug\n transform: 'none',\n opacity: 0,\n animationDuration: token.motionDurationSlow,\n // https://github.com/ant-design/ant-design/issues/11777\n userSelect: 'none'\n },\n // https://github.com/ant-design/ant-design/issues/37329\n // https://github.com/ant-design/ant-design/issues/40272\n [`${componentCls}${antCls}-zoom-leave ${componentCls}-content`]: {\n pointerEvents: 'none'\n },\n [`${componentCls}-mask`]: Object.assign(Object.assign({}, box('fixed')), {\n zIndex: token.zIndexPopupBase,\n height: '100%',\n backgroundColor: token.colorBgMask,\n pointerEvents: 'none',\n [`${componentCls}-hidden`]: {\n display: 'none'\n }\n }),\n [`${componentCls}-wrap`]: Object.assign(Object.assign({}, box('fixed')), {\n zIndex: token.zIndexPopupBase,\n overflow: 'auto',\n outline: 0,\n WebkitOverflowScrolling: 'touch'\n })\n }\n }, {\n [`${componentCls}-root`]: initFadeMotion(token)\n }];\n};\nconst genModalStyle = token => {\n const {\n componentCls\n } = token;\n return [\n // ======================== Root =========================\n {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-centered`]: {\n textAlign: 'center',\n '&::before': {\n display: 'inline-block',\n width: 0,\n height: '100%',\n verticalAlign: 'middle',\n content: '\"\"'\n },\n [componentCls]: {\n top: 0,\n display: 'inline-block',\n paddingBottom: 0,\n textAlign: 'start',\n verticalAlign: 'middle'\n }\n },\n [`@media (max-width: ${token.screenSMMax}px)`]: {\n [componentCls]: {\n maxWidth: 'calc(100vw - 16px)',\n margin: `${unit(token.marginXS)} auto`\n },\n [`${componentCls}-centered`]: {\n [componentCls]: {\n flex: 1\n }\n }\n }\n }\n },\n // ======================== Modal ========================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n pointerEvents: 'none',\n position: 'relative',\n top: 100,\n width: 'auto',\n maxWidth: `calc(100vw - ${unit(token.calc(token.margin).mul(2).equal())})`,\n margin: '0 auto',\n paddingBottom: token.paddingLG,\n [`${componentCls}-title`]: {\n margin: 0,\n color: token.titleColor,\n fontWeight: token.fontWeightStrong,\n fontSize: token.titleFontSize,\n lineHeight: token.titleLineHeight,\n wordWrap: 'break-word'\n },\n [`${componentCls}-content`]: {\n position: 'relative',\n backgroundColor: token.contentBg,\n backgroundClip: 'padding-box',\n border: 0,\n borderRadius: token.borderRadiusLG,\n boxShadow: token.boxShadow,\n pointerEvents: 'auto',\n padding: token.contentPadding\n },\n [`${componentCls}-close`]: Object.assign({\n position: 'absolute',\n top: token.calc(token.modalHeaderHeight).sub(token.modalCloseBtnSize).div(2).equal(),\n insetInlineEnd: token.calc(token.modalHeaderHeight).sub(token.modalCloseBtnSize).div(2).equal(),\n zIndex: token.calc(token.zIndexPopupBase).add(10).equal(),\n padding: 0,\n color: token.modalCloseIconColor,\n fontWeight: token.fontWeightStrong,\n lineHeight: 1,\n textDecoration: 'none',\n background: 'transparent',\n borderRadius: token.borderRadiusSM,\n width: token.modalCloseBtnSize,\n height: token.modalCloseBtnSize,\n border: 0,\n outline: 0,\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid}, background-color ${token.motionDurationMid}`,\n '&-x': {\n display: 'flex',\n fontSize: token.fontSizeLG,\n fontStyle: 'normal',\n lineHeight: unit(token.modalCloseBtnSize),\n justifyContent: 'center',\n textTransform: 'none',\n textRendering: 'auto'\n },\n '&:disabled': {\n pointerEvents: 'none'\n },\n '&:hover': {\n color: token.modalCloseIconHoverColor,\n backgroundColor: token.colorBgTextHover,\n textDecoration: 'none'\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n }, genFocusStyle(token)),\n [`${componentCls}-header`]: {\n color: token.colorText,\n background: token.headerBg,\n borderRadius: `${unit(token.borderRadiusLG)} ${unit(token.borderRadiusLG)} 0 0`,\n marginBottom: token.headerMarginBottom,\n padding: token.headerPadding,\n borderBottom: token.headerBorderBottom\n },\n [`${componentCls}-body`]: {\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n wordWrap: 'break-word',\n padding: token.bodyPadding,\n [`${componentCls}-body-skeleton`]: {\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: `${unit(token.margin)} auto`\n }\n },\n [`${componentCls}-footer`]: {\n textAlign: 'end',\n background: token.footerBg,\n marginTop: token.footerMarginTop,\n padding: token.footerPadding,\n borderTop: token.footerBorderTop,\n borderRadius: token.footerBorderRadius,\n [`> ${token.antCls}-btn + ${token.antCls}-btn`]: {\n marginInlineStart: token.marginXS\n }\n },\n [`${componentCls}-open`]: {\n overflow: 'hidden'\n }\n })\n },\n // ======================== Pure =========================\n {\n [`${componentCls}-pure-panel`]: {\n top: 'auto',\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n [`${componentCls}-content,\n ${componentCls}-body,\n ${componentCls}-confirm-body-wrapper`]: {\n display: 'flex',\n flexDirection: 'column',\n flex: 'auto'\n },\n [`${componentCls}-confirm-body`]: {\n marginBottom: 'auto'\n }\n }\n }];\n};\nconst genRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-root`]: {\n [`${componentCls}-wrap-rtl`]: {\n direction: 'rtl',\n [`${componentCls}-confirm-body`]: {\n direction: 'rtl'\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const headerPaddingVertical = token.padding;\n const headerFontSize = token.fontSizeHeading5;\n const headerLineHeight = token.lineHeightHeading5;\n const modalToken = mergeToken(token, {\n modalHeaderHeight: token.calc(token.calc(headerLineHeight).mul(headerFontSize).equal()).add(token.calc(headerPaddingVertical).mul(2).equal()).equal(),\n modalFooterBorderColorSplit: token.colorSplit,\n modalFooterBorderStyle: token.lineType,\n modalFooterBorderWidth: token.lineWidth,\n modalCloseIconColor: token.colorIcon,\n modalCloseIconHoverColor: token.colorIconHover,\n modalCloseBtnSize: token.controlHeight,\n modalConfirmIconSize: token.fontHeight,\n modalTitleHeight: token.calc(token.titleFontSize).mul(token.titleLineHeight).equal()\n });\n return modalToken;\n};\nexport const prepareComponentToken = token => ({\n footerBg: 'transparent',\n headerBg: token.colorBgElevated,\n titleLineHeight: token.lineHeightHeading5,\n titleFontSize: token.fontSizeHeading5,\n contentBg: token.colorBgElevated,\n titleColor: token.colorTextHeading,\n // internal\n contentPadding: token.wireframe ? 0 : `${unit(token.paddingMD)} ${unit(token.paddingContentHorizontalLG)}`,\n headerPadding: token.wireframe ? `${unit(token.padding)} ${unit(token.paddingLG)}` : 0,\n headerBorderBottom: token.wireframe ? `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}` : 'none',\n headerMarginBottom: token.wireframe ? 0 : token.marginXS,\n bodyPadding: token.wireframe ? token.paddingLG : 0,\n footerPadding: token.wireframe ? `${unit(token.paddingXS)} ${unit(token.padding)}` : 0,\n footerBorderTop: token.wireframe ? `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}` : 'none',\n footerBorderRadius: token.wireframe ? `0 0 ${unit(token.borderRadiusLG)} ${unit(token.borderRadiusLG)}` : 0,\n footerMarginTop: token.wireframe ? 0 : token.marginSM,\n confirmBodyPadding: token.wireframe ? `${unit(token.padding * 2)} ${unit(token.padding * 2)} ${unit(token.paddingLG)}` : 0,\n confirmIconMarginInlineEnd: token.wireframe ? token.margin : token.marginSM,\n confirmBtnsMarginTop: token.wireframe ? token.marginLG : token.marginSM\n});\nexport default genStyleHooks('Modal', token => {\n const modalToken = prepareToken(token);\n return [genModalStyle(modalToken), genRTLStyle(modalToken), genModalMaskStyle(modalToken), initZoomMotion(modalToken, 'zoom')];\n}, prepareComponentToken, {\n unitless: {\n titleLineHeight: true\n }\n});","module.exports = __webpack_public_path__ + \"88730abfeb4a23e692ac7933882f12eb.js\";","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","module.exports = __webpack_public_path__ + \"4f683c6881e9f8740f5516a85b9eb9da.js\";","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","module.exports = __webpack_public_path__ + \"eb0b62e1895dcf7491419aa728f00c38.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport React, { useRef } from 'react';\nimport useColorDrag from \"../hooks/useColorDrag\";\nimport Palette from \"./Palette\";\nimport classNames from 'classnames';\nimport { useEvent } from 'rc-util';\nimport { Color } from \"../color\";\nimport { calcOffset, calculateColor } from \"../util\";\nimport Gradient from \"./Gradient\";\nimport Handler from \"./Handler\";\nimport Transform from \"./Transform\";\nvar Slider = function Slider(props) {\n var prefixCls = props.prefixCls,\n colors = props.colors,\n disabled = props.disabled,\n onChange = props.onChange,\n onChangeComplete = props.onChangeComplete,\n color = props.color,\n type = props.type;\n var sliderRef = useRef();\n var transformRef = useRef();\n var colorRef = useRef(color);\n var getValue = function getValue(c) {\n return type === 'hue' ? c.getHue() : c.a * 100;\n };\n var onDragChange = useEvent(function (offsetValue) {\n var calcColor = calculateColor({\n offset: offsetValue,\n targetRef: transformRef,\n containerRef: sliderRef,\n color: color,\n type: type\n });\n colorRef.current = calcColor;\n onChange(getValue(calcColor));\n });\n var _useColorDrag = useColorDrag({\n color: color,\n targetRef: transformRef,\n containerRef: sliderRef,\n calculate: function calculate() {\n return calcOffset(color, type);\n },\n onDragChange: onDragChange,\n onDragChangeComplete: function onDragChangeComplete() {\n onChangeComplete(getValue(colorRef.current));\n },\n direction: 'x',\n disabledDrag: disabled\n }),\n _useColorDrag2 = _slicedToArray(_useColorDrag, 2),\n offset = _useColorDrag2[0],\n dragStartHandle = _useColorDrag2[1];\n var handleColor = React.useMemo(function () {\n if (type === 'hue') {\n var hsb = color.toHsb();\n hsb.s = 1;\n hsb.b = 1;\n hsb.a = 1;\n var lightColor = new Color(hsb);\n return lightColor;\n }\n return color;\n }, [color, type]);\n\n // ========================= Gradient =========================\n var gradientList = React.useMemo(function () {\n return colors.map(function (info) {\n return \"\".concat(info.color, \" \").concat(info.percent, \"%\");\n });\n }, [colors]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: sliderRef,\n className: classNames(\"\".concat(prefixCls, \"-slider\"), \"\".concat(prefixCls, \"-slider-\").concat(type)),\n onMouseDown: dragStartHandle,\n onTouchStart: dragStartHandle\n }, /*#__PURE__*/React.createElement(Palette, {\n prefixCls: prefixCls\n }, /*#__PURE__*/React.createElement(Transform, {\n x: offset.x,\n y: offset.y,\n ref: transformRef\n }, /*#__PURE__*/React.createElement(Handler, {\n size: \"small\",\n color: handleColor.toHexString(),\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(Gradient, {\n colors: gradientList,\n type: type,\n prefixCls: prefixCls\n })));\n};\nexport default Slider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedHidden = responsive && !display;\n // ================================ Effect ================================\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []);\n // ================================ Render ================================\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n var overflowProps = {};\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n // Updater Trigger\n var updateFuncRef = React.useRef(null);\n // Notify update\n var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n if (!updateFuncRef.current) {\n updateFuncRef.current = [];\n channelUpdate(function () {\n unstable_batchedUpdates(function () {\n updateFuncRef.current.forEach(function (fn) {\n fn();\n });\n updateFuncRef.current = null;\n });\n });\n }\n updateFuncRef.current.push(callback);\n };\n return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n // Value\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stateValue = _React$useState2[0],\n setStateValue = _React$useState2[1];\n // Set State\n var setEffectVal = useEvent(function (nextValue) {\n notifyEffectUpdate(function () {\n setStateValue(nextValue);\n });\n });\n return [stateValue, setEffectVal];\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext);\n // Render directly when context not provided\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3);\n // Do not pass context to sub item to avoid multiple measure\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var fullySSR = ssr === 'full';\n var notifyEffectUpdate = useBatcher();\n var _useEffectState = useEffectState(notifyEffectUpdate, null),\n _useEffectState2 = _slicedToArray(_useEffectState, 2),\n containerWidth = _useEffectState2[0],\n setContainerWidth = _useEffectState2[1];\n var mergedContainerWidth = containerWidth || 0;\n var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n itemWidths = _useEffectState4[0],\n setItemWidths = _useEffectState4[1];\n var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n prevRestWidth = _useEffectState6[0],\n setPrevRestWidth = _useEffectState6[1];\n var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n restWidth = _useEffectState8[0],\n setRestWidth = _useEffectState8[1];\n var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n suffixWidth = _useEffectState10[0],\n setSuffixWidth = _useEffectState10[1];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n // Always use the max width to avoid blink\n var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n // ================================= Data =================================\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n // ================================= Item =================================\n var getKey = useCallback(function (item, index) {\n var _ref;\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n setDisplayCount(count);\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n }\n // ================================= Size =================================\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n return clone;\n });\n }\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n }\n // ================================ Effect ================================\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n useLayoutEffect(function () {\n if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1;\n // When data count change to 0, reset this since not loop will reach\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i);\n // Fully will always render\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n }\n // Break since data not ready\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n }\n // Find best match\n totalWidth += currentItemWidth;\n if (\n // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n // ================================ Render ================================\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n };\n // >>>>> Choice render fun by `renderRawItem`\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n };\n // >>>>> Rest node\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n if (typeof MessageChannel === 'undefined') {\n raf(callback);\n } else {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n return callback();\n };\n channel.port2.postMessage(undefined);\n }\n}","import Overflow from './Overflow';\nexport default Overflow;","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","module.exports = __webpack_public_path__ + \"3eefbe1c009cfd730b2ca6f834367c45.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","'use strict';\nrequire('../../modules/es.array.find-last-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findLastIndex');\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","import { isNativeFunction, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\nconst cachedImplementations = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nfunction getNativeImplementation(\n name,\n) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n\n let impl = WINDOW[name] ;\n\n // Fast path to avoid DOM I/O\n if (isNativeFunction(impl)) {\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n }\n\n const document = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name] ;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n // Could not create sandbox iframe, just use window.xxx\n DEBUG_BUILD && logger.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n }\n }\n\n // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n if (!impl) {\n return impl;\n }\n\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n}\n\n/** Clear a cached implementation. */\nfunction clearCachedImplementation(name) {\n cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction fetch(...rest) {\n return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nfunction setTimeout(...rest) {\n return getNativeImplementation('setTimeout')(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","\"use client\";\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _classnames = /*#__PURE__*/ _interop_require_default(require(\"classnames\"));\nvar _colors = require(\"@ant-design/colors\");\nvar _Context = /*#__PURE__*/ _interop_require_default(require(\"./Context\"));\nvar _IconBase = /*#__PURE__*/ _interop_require_default(require(\"./IconBase\"));\nvar _twoTonePrimaryColor = require(\"./twoTonePrimaryColor\");\nvar _utils = require(\"../utils\");\nfunction _array_like_to_array(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 _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\n// Initial setting\n// should move it to antd main repo?\n(0, _twoTonePrimaryColor.setTwoToneColor)(_colors.blue.primary);\nvar Icon = /*#__PURE__*/ _react.forwardRef(function(props, ref) {\n var // affect outter <i>...</i>\n className = props.className, // affect inner <svg>...</svg>\n icon = props.icon, spin = props.spin, rotate = props.rotate, tabIndex = props.tabIndex, onClick = props.onClick, // other\n twoToneColor = props.twoToneColor, restProps = _object_without_properties(props, [\n \"className\",\n \"icon\",\n \"spin\",\n \"rotate\",\n \"tabIndex\",\n \"onClick\",\n \"twoToneColor\"\n ]);\n var _React_useContext = _react.useContext(_Context.default), _React_useContext_prefixCls = _React_useContext.prefixCls, prefixCls = _React_useContext_prefixCls === void 0 ? \"anticon\" : _React_useContext_prefixCls, rootClassName = _React_useContext.rootClassName;\n var _obj;\n var classString = (0, _classnames.default)(rootClassName, prefixCls, (_obj = {}, _define_property(_obj, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _define_property(_obj, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === \"loading\"), _obj), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColors = _sliced_to_array((0, _utils.normalizeTwoToneColors)(twoToneColor), 2), primaryColor = _normalizeTwoToneColors[0], secondaryColor = _normalizeTwoToneColors[1];\n return /*#__PURE__*/ _react.createElement(\"span\", _object_spread_props(_object_spread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/ _react.createElement(_IconBase.default, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = \"AntdIcon\";\nIcon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\n","module.exports = __webpack_public_path__ + \"0f147528a6f36ca40c8b3ec796429f58.js\";","import { DEBUG_BUILD } from './debug-build.js';\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** JSDoc */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n//# sourceMappingURL=logger.js.map\n","import { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport { useDispatch } from 'react-redux';\nimport { changeRoute } from 'routes/AuthenticatedContainer/actions';\nimport { OpTextButton } from '../OpTextButton/OpTextButton';\n\ninterface OpLinkProps\n extends Omit<ComponentProps<typeof OpTextButton>, 'title' | 'onClick'> {\n route: string;\n}\n\nexport const OpLink = ({\n className,\n children,\n route,\n ...buttonProps\n}: OpLinkProps) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n return (\n <OpTextButton\n className={clsx('op-link', className)}\n {...buttonProps}\n title={t('(Changes page)')}\n onClick={() => dispatch(changeRoute(route))}\n >\n {children}\n </OpTextButton>\n );\n};\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { useRowStyle } from './style';\nconst _RowAligns = ['top', 'middle', 'bottom', 'stretch'];\nconst _RowJustify = ['start', 'end', 'center', 'space-around', 'space-between', 'space-evenly'];\nfunction useMergedPropByScreen(oriProp, screen) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '');\n const calcMergedAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (typeof oriProp !== 'object') {\n return;\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) {\n continue;\n }\n const curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(() => {\n calcMergedAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nconst Row = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap\n } = props,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [screens, setScreens] = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n });\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n });\n // ================================== calc responsive data ==================================\n const mergedAlign = useMergedPropByScreen(align, curScreens);\n const mergedJustify = useMergedPropByScreen(justify, curScreens);\n const gutterRef = React.useRef(gutter);\n const responsiveObserver = useResponsiveObserver();\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(screen => {\n setCurScreens(screen);\n const currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && typeof currentGutter === 'object' || Array.isArray(currentGutter) && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object')) {\n setScreens(screen);\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n // ================================== Render ==================================\n const getGutter = () => {\n const results = [undefined, undefined];\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useRowStyle(prefixCls);\n const gutters = getGutter();\n const classes = classNames(prefixCls, {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergedJustify}`]: mergedJustify,\n [`${prefixCls}-${mergedAlign}`]: mergedAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId, cssVarCls);\n // Add gutter related style\n const rowStyle = {};\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters;\n rowStyle.rowGap = gutterV;\n const rowContext = React.useMemo(() => ({\n gutter: [gutterH, gutterV],\n wrap\n }), [gutterH, gutterV, wrap]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes,\n style: Object.assign(Object.assign({}, rowStyle), style),\n ref: ref\n }), children)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import {\n parsePhoneNumber,\n isValidPhoneNumber,\n ParseError,\n} from 'libphonenumber-js';\nimport Joi from 'joi';\nimport { t } from 'i18next';\n\n// Helper function for phoneNumber\nconst parseAndValidatePhoneNumber = (\n pn: string,\n options: { onlyUsNumbers: boolean; multiple: boolean },\n) => {\n let message = null;\n\n /** note this will parse *all* numbers from *all* countries, it's just\n * telling the parser to *default* to US if no country code is included */\n const parsed = parsePhoneNumber(pn, {\n defaultCountry: 'US',\n });\n\n if (options.onlyUsNumbers && parsed.country !== 'US') {\n message = t('Only US phone numbers are supported.');\n }\n\n // Convert to E.164 format\n const parsedNumber = parsed.format('E.164');\n\n if (!isValidPhoneNumber(parsedNumber)) {\n message = t('Invalid phone number: `{{parsedNumber}}', { parsedNumber });\n }\n\n return message;\n};\n\n/** Take a phone number (of generally any format), validate it, and convert it\n * into an E.164 our DB/code expects */\nconst phoneNumber =\n (options = { onlyUsNumbers: false, multiple: false }) =>\n (\n value: string,\n helper: {\n message: (arg0: { custom: string }) => any;\n error: (arg0: string) => any;\n },\n ) => {\n let message = null;\n\n try {\n // When multiple is true, we expect a comma-separated list of phone numbers\n if (options.multiple) {\n const trimmedPhoneNumbers = value\n .split(',') // split by comma\n .map((pn) => pn.trim()); // remove any white space in front or back of number so spaces before and after comma are ok\n\n for (let i = 0; i < trimmedPhoneNumbers.length; i++) {\n message = parseAndValidatePhoneNumber(\n trimmedPhoneNumbers[i],\n options,\n );\n\n // Stop on the first error\n if (message) {\n return helper.message({ custom: message });\n }\n }\n\n // return back the E.164 formatted phone numbers as a comma-separated string\n return trimmedPhoneNumbers\n .map((pn) =>\n parsePhoneNumber(pn, { defaultCountry: 'US' }).format('E.164'),\n )\n .join(', ');\n }\n\n message = parseAndValidatePhoneNumber(value, options);\n\n return message\n ? helper.message({ custom: message })\n : parsePhoneNumber(value, { defaultCountry: 'US' }).format('E.164');\n } catch (e) {\n return e instanceof ParseError\n ? helper.message({\n custom: options.multiple\n ? t(\n 'One or more phone numbers are formatted incorrectly. Please provide a comma-separated list of valid E.164 formatted phone numbers.',\n )\n : t('Invalid phone number format {{errorMessage}}', {\n errorMessage: e.message,\n }),\n })\n : helper.error('any.invalid');\n }\n };\n\nexport const isPhoneNumber = (\n value?: string,\n options = { onlyUsNumbers: false, multiple: false },\n) => !Joi.string().custom(phoneNumber(options)).validate(value).error;\n\nexport const isEmail = (value?: string) =>\n !Joi.string()\n .email({\n multiple: true,\n allowUnicode: false,\n tlds: { allow: false }, // Must add this in the browser or else get `Built-in TLD list disabled` error\n })\n .trim()\n .min(1)\n .max(1000)\n .allow(null)\n .validate(value).error;\n\nconst e164PhoneNumberRegExp = /^\\s*\\+\\S{10,15}\\s*$/;\nexport const isE164PhoneNumber = (value?: string) =>\n !Joi.string()\n .regex(e164PhoneNumberRegExp)\n .message(\n t('`{{value}}` is not in the E.164 format (e.g. +15556667777)', {\n value,\n }),\n )\n .validate(value).error;\n\n/**\n * Defined 6 years ago, but seems to still serve our purpose\n *\n * Examples\n * 'foo' => false\n * 'foo.com' => true\n * 'www.foo.com' => true\n * 'http://www.foo.com' => true\n * 'http://www.foo.com/' => true\n * 'http://www.foo.com/page' => true\n * 'http://www.foo.com/page?param=value' => true\n * 'http://www.foo.com/page?param=value#anchor' => true\n * 'http://www.foo.com/page?param=value#anchor¶m2=value2' => true\n * '{URL with length greater than 2048 chars}' => false\n */\nconst urlRegExp =\n /^(?:(?:https?|ftp):\\/\\/)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:\\/\\S*)?$/;\nexport const isUrl = (value?: string) =>\n !Joi.string()\n .max(2048) // limit imposed by Internet Explorer\n .regex(urlRegExp)\n .message(t('`{{value}}` is not a valid URL', { value }))\n .validate(value).error;\n\nexport const isUrlWithProtocol = (value?: string) =>\n !Joi.string()\n .max(2048) // limit imposed by Internet Explorer\n .uri()\n .message(t('`{{value}}` is not a valid URL', { value }))\n .validate(value).error;\n\n/**\n * please be very cautious adding to this file, we want validators to remain as\n * self-contained and easy to read as possible\n *\n * Joi is ~quite~ expressive so you should be able to construct most validations\n * using it's built-in rules\n * */\n","module.exports = __webpack_public_path__ + \"ef87482c92662e8b69a21f47588474ea.js\";","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport const PureContent = _ref => {\n let {\n prefixCls,\n type,\n icon,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n type,\n icon,\n content\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`, cssVarCls, rootCls),\n eventKey: \"pure\",\n duration: null,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)\n })));\n};\nexport default PurePanel;","import { merge as mergeToken } from \"./statistic\";\nfunction getDefaultComponentToken(component, token, getDefaultToken) {\n if (typeof getDefaultToken === 'function') {\n var _token$component;\n return getDefaultToken(mergeToken(token, (_token$component = token[component]) !== null && _token$component !== void 0 ? _token$component : {}));\n }\n return getDefaultToken !== null && getDefaultToken !== void 0 ? getDefaultToken : {};\n}\nexport default getDefaultComponentToken;","'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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar React = tslib_1.__importStar(require(\"react\"));\nvar wrapInStatefulComponent = function (Comp) {\n var Decorated = (function (_super) {\n tslib_1.__extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n class_1.prototype.render = function () {\n return Comp(this.props, this.context);\n };\n return class_1;\n }(React.Component));\n if (process.env.NODE_ENV !== 'production') {\n Decorated.displayName = \"Decorated(\" + (Comp.displayName || Comp.name) + \")\";\n }\n return Decorated;\n};\nexports.default = wrapInStatefulComponent;\n//# sourceMappingURL=wrapInStatefulComponent.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { ATTR_MARK, ATTR_TOKEN } from \"../StyleContext\";\nimport { Theme } from \"../theme\";\n\n// Create a cache for memo concat\n\nvar resultCache = new WeakMap();\nvar RESULT_VALUE = {};\nexport function memoResult(callback, deps) {\n var current = resultCache;\n for (var i = 0; i < deps.length; i += 1) {\n var dep = deps[i];\n if (!current.has(dep)) {\n current.set(dep, new WeakMap());\n }\n current = current.get(dep);\n }\n if (!current.has(RESULT_VALUE)) {\n current.set(RESULT_VALUE, callback());\n }\n return current.get(RESULT_VALUE);\n}\n\n// Create a cache here to avoid always loop generate\nvar flattenTokenCache = new WeakMap();\n\n/**\n * Flatten token to string, this will auto cache the result when token not change\n */\nexport function flattenToken(token) {\n var str = flattenTokenCache.get(token) || '';\n if (!str) {\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n if (value instanceof Theme) {\n str += value.id;\n } else if (value && _typeof(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n\n // https://github.com/ant-design/ant-design/issues/48386\n // Should hash the string to avoid style tag name too long\n str = hash(str);\n\n // Put in cache\n flattenTokenCache.set(token, str);\n }\n return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n if (canUseDom()) {\n var _getComputedStyle$con, _ele$parentNode;\n updateCSS(styleStr, randomSelectorKey);\n var _ele = document.createElement('div');\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 || handleElement(_ele);\n document.body.appendChild(_ele);\n if (process.env.NODE_ENV !== 'production') {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 || _ele$parentNode.removeChild(_ele);\n removeCSS(randomSelectorKey);\n return support;\n }\n return false;\n}\nvar canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nvar canWhere = undefined;\nexport function supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nvar canLogic = undefined;\nexport function supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n }, function (ele) {\n return getComputedStyle(ele).bottom === '93px';\n });\n }\n return canLogic;\n}\nexport var isClientSide = canUseDom();\nexport function unit(num) {\n if (typeof num === 'number') {\n return \"\".concat(num, \"px\");\n }\n return num;\n}\nexport function toStyleStr(style, tokenKey, styleId) {\n var _objectSpread2;\n var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var plain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n if (plain) {\n return style;\n }\n var attrs = _objectSpread(_objectSpread({}, customizeAttrs), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, ATTR_TOKEN, tokenKey), _defineProperty(_objectSpread2, ATTR_MARK, styleId), _objectSpread2));\n var attrStr = Object.keys(attrs).map(function (attr) {\n var val = attrs[attr];\n return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n }).filter(function (v) {\n return v;\n }).join(' ');\n return \"<style \".concat(attrStr, \">\").concat(style, \"</style>\");\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","export const REQUEST_LIST_LOCKDOWN_PLANS =\n 'app/global/lockdownPlans/REQUEST_LIST_LOCKDOWN_PLANS';\nexport const SET_LOCKDOWN_PLANS = 'app/global/lockdownPlans/SET_LOCKDOWN_PLANS';\nexport const TRIGGER_LOCKDOWN_PLAN =\n 'app/global/lockdownPlans/TRIGGER_LOCKDOWN_PLAN';\nexport const REVERT_LOCKDOWN_PLAN =\n 'app/global/lockdownPlans/REVERT_LOCKDOWN_PLAN';\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { consoleSandbox, logger } from './logger.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { getClient } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, isParameterizedString, normalizeToSize, extractExceptionKeysForMessage } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n // If we can, we extract an exception from the object properties\n const errorFromProp = getErrorPropertyFromObject(exception);\n\n const extra = {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n };\n\n if (errorFromProp) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, errorFromProp)],\n },\n extra,\n };\n }\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n } ,\n ],\n },\n extra,\n } ;\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const skipLines = getSkipFirstStackStringLines(ex);\n const framesToPop = getPopFirstTopFrames(ex);\n\n try {\n return stackParser(stacktrace, skipLines, framesToPop);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex) {\n if (ex && reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\nfunction eventFromString(\n stackParser,\n message,\n syntheticException,\n attachStacktrace,\n) {\n const event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception,\n { isUnhandledRejection },\n) {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nexport { eventFromException, eventFromMessage, eventFromUnknownInput, exceptionFromError };\n//# sourceMappingURL=eventbuilder.js.map\n","module.exports = __webpack_public_path__ + \"27846e85433e54a3ec0ab34d62233dc5.js\";","var baseToString = require('./_baseToString');\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\nmodule.exports = toString;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","export default __webpack_public_path__ + \"a32941d48b6c170705ed37f746c96603.svg\";","module.exports = __webpack_public_path__ + \"8d9bb1799d9b98db107e84f10132e17f.js\";","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender === null || reactRender === void 0 || reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 || _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _PrinterOutlined = _interopRequireDefault(require('./lib/icons/PrinterOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _PrinterOutlined;\nexports.default = _default;\nmodule.exports = _default;","export default __webpack_public_path__ + \"f7ae2abaf5bafd6b1997932015b90335.svg\";","/**\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 `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\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 INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\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 backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\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/**\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/** 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 Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\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 * 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 * 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 `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\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 `_.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 (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\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 * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\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 * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\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 * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\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 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 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 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 * 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) && objectToString.call(value) == symbolTag);\n}\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 process.\n * @returns {string} Returns the 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\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","module.exports = __webpack_public_path__ + \"3b190e5159c72fb7e27271956772bcba.js\";","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.find-last-index');\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","/**\n * This action type will be dispatched when your history\n * receives a location change.\n */\nexport var LOCATION_CHANGE = '@@router/LOCATION_CHANGE';\nexport var onLocationChanged = function onLocationChanged(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: LOCATION_CHANGE,\n payload: {\n location: location,\n action: action,\n isFirstRendering: isFirstRendering\n }\n };\n};\n/**\n * This action type will be dispatched by the history actions below.\n * If you're writing a middleware to watch for navigation events, be sure to\n * look for actions of this type.\n */\n\nexport var CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD';\n\nvar updateLocation = function updateLocation(method) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return {\n type: CALL_HISTORY_METHOD,\n payload: {\n method: method,\n args: args\n }\n };\n };\n};\n/**\n * These actions correspond to the history API.\n * The associated routerMiddleware will capture these events before they get to\n * your reducer and reissue them as the matching function on your history.\n */\n\n\nexport var push = updateLocation('push');\nexport var replace = updateLocation('replace');\nexport var go = updateLocation('go');\nexport var goBack = updateLocation('goBack');\nexport var goForward = updateLocation('goForward');\nexport var routerActions = {\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward\n};","function _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\nimport { matchPath } from \"react-router\";\n\nvar createSelectors = function createSelectors(structure) {\n var getIn = structure.getIn,\n toJS = structure.toJS;\n\n var isRouter = function isRouter(value) {\n return value != null && _typeof(value) === 'object' && getIn(value, ['location']) && getIn(value, ['action']);\n };\n\n var getRouter = function getRouter(state) {\n var router = toJS(getIn(state, ['router']));\n\n if (!isRouter(router)) {\n throw 'Could not find router reducer in state tree, it must be mounted under \"router\"';\n }\n\n return router;\n };\n\n var getLocation = function getLocation(state) {\n return toJS(getIn(getRouter(state), ['location']));\n };\n\n var getAction = function getAction(state) {\n return toJS(getIn(getRouter(state), ['action']));\n };\n\n var getSearch = function getSearch(state) {\n return toJS(getIn(getRouter(state), ['location', 'search']));\n };\n\n var getHash = function getHash(state) {\n return toJS(getIn(getRouter(state), ['location', 'hash']));\n }; // It only makes sense to recalculate the `matchPath` whenever the pathname\n // of the location changes. That's why `createMatchSelector` memoizes\n // the latest result based on the location's pathname.\n\n\n var createMatchSelector = function createMatchSelector(path) {\n var lastPathname = null;\n var lastMatch = null;\n return function (state) {\n var _ref = getLocation(state) || {},\n pathname = _ref.pathname;\n\n if (pathname === lastPathname) {\n return lastMatch;\n }\n\n lastPathname = pathname;\n var match = matchPath(pathname, path);\n\n if (!match || !lastMatch || match.url !== lastMatch.url // When URL matched for nested routes, URL is the same but isExact is not.\n || match.isExact !== lastMatch.isExact) {\n lastMatch = match;\n }\n\n return lastMatch;\n };\n };\n\n return {\n getLocation: getLocation,\n getAction: getAction,\n getRouter: getRouter,\n getSearch: getSearch,\n getHash: getHash,\n createMatchSelector: createMatchSelector\n };\n};\n\nexport default createSelectors;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getIn from './getIn';\nvar structure = {\n fromJS: function fromJS(value) {\n return value;\n },\n getIn: getIn,\n merge: function merge(state, payload) {\n return _objectSpread({}, state, {}, payload);\n },\n toJS: function toJS(value) {\n return value;\n }\n};\nexport default structure;","import createConnectedRouter from \"./ConnectedRouter\";\nimport createConnectRouter from \"./reducer\";\nimport createSelectors from \"./selectors\";\nimport plainStructure from \"./structure/plain\";\nexport { LOCATION_CHANGE, CALL_HISTORY_METHOD, onLocationChanged, push, replace, go, goBack, goForward, routerActions } from \"./actions\";\nexport { default as routerMiddleware } from \"./middleware\";\nexport var ConnectedRouter = /*#__PURE__*/createConnectedRouter(plainStructure);\nexport var connectRouter = /*#__PURE__*/createConnectRouter(plainStructure);\n\nvar _createSelectors = /*#__PURE__*/createSelectors(plainStructure),\n getLocation = _createSelectors.getLocation,\n getAction = _createSelectors.getAction,\n getHash = _createSelectors.getHash,\n getRouter = _createSelectors.getRouter,\n getSearch = _createSelectors.getSearch,\n createMatchSelector = _createSelectors.createMatchSelector;\n\nexport { getLocation, getAction, getHash, getRouter, getSearch, createMatchSelector };","/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nexport default getIn;","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection 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 baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","import { getLocation, getParsedByString } from 'jsonpos';\nimport { IAnnotation } from 'react-ace';\nimport { type Schema, ValidationError } from 'joi';\n\n// Function to validate JSON and return errors\nexport const validateJSON = async (\n json: string,\n schema?: Schema,\n): Promise<IAnnotation[] | undefined> => {\n try {\n const value = JSON.parse(json);\n\n if (!schema) {\n return [];\n }\n\n await schema.validateAsync(value, { abortEarly: false });\n\n return [];\n } catch (error) {\n if (error instanceof SyntaxError) {\n const message = error.message;\n const lineColumnMatch = message.match(/line (\\d+) column (\\d+)/);\n\n const row = lineColumnMatch ? parseInt(lineColumnMatch[1], 10) - 1 : 0; // Ace uses 0-based index for rows\n const column = lineColumnMatch ? parseInt(lineColumnMatch[2], 10) - 1 : 0;\n\n return [\n {\n row,\n column,\n text: message,\n type: 'error',\n },\n ];\n }\n\n if (error instanceof ValidationError) {\n const parsedJson = getParsedByString(json);\n\n return error.details\n .map((err) => {\n const path = err.path;\n\n /**\n * If a required member is missing that means the path won't exist.\n * Pop off the last segment of the JSON path to attach an error to\n * the parent key in the JSON structure.\n */\n if (\n err.message.match(/(is required|must contain at least one of)/i)\n ) {\n path.pop();\n }\n\n // Gets the column and line details from parsed JSON\n const location = getLocation(parsedJson, { path });\n\n // Don't attempt to add an annotation if column/line can't be identified\n if (!location.start) {\n return null;\n }\n\n const annotation: IAnnotation = {\n row: location.start.line - 1,\n column: location.start.column,\n text: err.message,\n type: 'error',\n };\n\n return annotation;\n })\n .filter<NonNullable<IAnnotation>>((annotation) => !!annotation);\n }\n }\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpCodeEditor.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpCodeEditor.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, useState } from 'react';\nimport AceEditor, { IAnnotation } from 'react-ace';\nimport clsx from 'clsx';\nimport ace from 'ace-builds';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/theme-clouds';\nimport 'ace-builds/src-noconflict/theme-cloud9_night';\nimport 'ace-builds/webpack-resolver';\nimport { type Schema } from 'joi';\nimport { validateJSON } from './helpers';\n\nimport './OpCodeEditor.scss';\n\nace.config.set('loadWorkerFromBlob', false); // Disable worker loading from blob\n\ninterface OpCodeEditorProps extends ComponentProps<typeof AceEditor> {\n testId?: string;\n showAnnotation?: boolean;\n disabled?: boolean;\n id?: string;\n schema?: Schema;\n}\n\nexport const OpCodeEditor = ({\n testId = 'op-code-editor',\n className,\n showAnnotation = true,\n disabled,\n schema,\n ...elementProps\n}: OpCodeEditorProps) => {\n const [annotations, setAnnotations] = useState<IAnnotation[] | undefined>([]);\n\n const onChange = async (newValue: string) => {\n const errors = await validateJSON(newValue, schema);\n\n setAnnotations(errors);\n\n elementProps.onChange?.(newValue);\n };\n\n const theme = document.documentElement.classList.contains('dark')\n ? 'cloud9_night'\n : 'clouds';\n\n return (\n <AceEditor\n data-testid={testId}\n className={clsx('op-code-editor', 'op-code-editor--error', className, {\n 'op-code-editor--disabled': disabled,\n })}\n mode=\"json\"\n readOnly={disabled}\n editorProps={{ $blockScrolling: true }}\n tabSize={2}\n highlightActiveLine={!disabled}\n {...elementProps}\n onChange={onChange} // If we ever need to customize the onChange through a prop, we can move this up\n theme={theme}\n annotations={showAnnotation ? annotations : undefined}\n /**\n * Disable the built-in JSON linting by setting `useWorker: false`. The\n * built-in JSON linting prevents creating custom annotations based on\n * JSON & schema validation failures.\n */\n setOptions={{ useWorker: false }}\n />\n );\n};\n","module.exports = __webpack_public_path__ + \"a8c8aa148991e4ca35ed78cd5ccfcc03.js\";","module.exports = __webpack_public_path__ + \"0e67325b9a04863301e36c0c37947069.js\";","import { unit } from '@ant-design/cssinjs';\nexport function getArrowToken(token) {\n const {\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter\n } = token;\n const unitWidth = sizePopupArrow / 2;\n const ax = 0;\n const ay = unitWidth;\n const bx = borderRadiusOuter * 1 / Math.sqrt(2);\n const by = unitWidth - borderRadiusOuter * (1 - 1 / Math.sqrt(2));\n const cx = unitWidth - borderRadiusXS * (1 / Math.sqrt(2));\n const cy = borderRadiusOuter * (Math.sqrt(2) - 1) + borderRadiusXS * (1 / Math.sqrt(2));\n const dx = 2 * unitWidth - cx;\n const dy = cy;\n const ex = 2 * unitWidth - bx;\n const ey = by;\n const fx = 2 * unitWidth - ax;\n const fy = ay;\n const shadowWidth = unitWidth * Math.sqrt(2) + borderRadiusOuter * (Math.sqrt(2) - 2);\n const polygonOffset = borderRadiusOuter * (Math.sqrt(2) - 1);\n const arrowPolygon = `polygon(${polygonOffset}px 100%, 50% ${polygonOffset}px, ${2 * unitWidth - polygonOffset}px 100%, ${polygonOffset}px 100%)`;\n const arrowPath = `path('M ${ax} ${ay} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${borderRadiusXS} ${borderRadiusXS} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${fx} ${fy} Z')`;\n return {\n arrowShadowWidth: shadowWidth,\n arrowPath,\n arrowPolygon\n };\n}\nexport const genRoundedArrow = (token, bgColor, boxShadow) => {\n const {\n sizePopupArrow,\n arrowPolygon,\n arrowPath,\n arrowShadowWidth,\n borderRadiusXS,\n calc\n } = token;\n return {\n pointerEvents: 'none',\n width: sizePopupArrow,\n height: sizePopupArrow,\n overflow: 'hidden',\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width: sizePopupArrow,\n height: calc(sizePopupArrow).div(2).equal(),\n background: bgColor,\n clipPath: {\n _multi_value_: true,\n value: [arrowPolygon, arrowPath]\n },\n content: '\"\"'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: arrowShadowWidth,\n height: arrowShadowWidth,\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${unit(borderRadiusXS)} 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n }\n };\n};","import classNames from 'classnames';\nimport React from 'react';\nvar ColorBlock = function ColorBlock(_ref) {\n var color = _ref.color,\n prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n onClick = _ref.onClick;\n var colorBlockCls = \"\".concat(prefixCls, \"-color-block\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(colorBlockCls, className),\n style: style,\n onClick: onClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(colorBlockCls, \"-inner\"),\n style: {\n background: color\n }\n }));\n};\nexport default ColorBlock;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { Children, createRef, useContext, useEffect, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonVariant, spaceChildren } from './buttonHelpers';\nimport IconWrapper from './IconWrapper';\nimport LoadingIcon from './LoadingIcon';\nimport useStyle from './style';\nimport CompactCmp from './style/compactCmp';\nfunction getLoadingConfig(loading) {\n if (typeof loading === 'object' && loading) {\n let delay = loading === null || loading === void 0 ? void 0 : loading.delay;\n delay = !Number.isNaN(delay) && typeof delay === 'number' ? delay : 0;\n return {\n loading: delay <= 0,\n delay\n };\n }\n return {\n loading: !!loading,\n delay: 0\n };\n}\nconst ButtonTypeMap = {\n default: ['default', 'outlined'],\n primary: ['primary', 'solid'],\n dashed: ['default', 'dashed'],\n link: ['primary', 'link'],\n text: ['default', 'text']\n};\nconst InternalCompoundedButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c, _d;\n const {\n loading = false,\n prefixCls: customizePrefixCls,\n color,\n variant,\n type,\n danger = false,\n shape = 'default',\n size: customizeSize,\n styles,\n disabled: customDisabled,\n className,\n rootClassName,\n children,\n icon,\n iconPosition = 'start',\n ghost = false,\n block = false,\n // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n htmlType = 'button',\n classNames: customClassNames,\n style: customStyle = {},\n autoInsertSpace\n } = props,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"color\", \"variant\", \"type\", \"danger\", \"shape\", \"size\", \"styles\", \"disabled\", \"className\", \"rootClassName\", \"children\", \"icon\", \"iconPosition\", \"ghost\", \"block\", \"htmlType\", \"classNames\", \"style\", \"autoInsertSpace\"]);\n // https://github.com/ant-design/ant-design/issues/47605\n // Compatible with original `type` behavior\n const mergedType = type || 'default';\n const [mergedColor, mergedVariant] = useMemo(() => {\n if (color && variant) {\n return [color, variant];\n }\n const colorVariantPair = ButtonTypeMap[mergedType] || [];\n if (danger) {\n return ['danger', colorVariantPair[1]];\n }\n return colorVariantPair;\n }, [type, color, variant, danger]);\n const isDanger = mergedColor === 'danger';\n const mergedColorText = isDanger ? 'dangerous' : mergedColor;\n const {\n getPrefixCls,\n direction,\n button\n } = useContext(ConfigContext);\n const mergedInsertSpace = (_a = autoInsertSpace !== null && autoInsertSpace !== void 0 ? autoInsertSpace : button === null || button === void 0 ? void 0 : button.autoInsertSpace) !== null && _a !== void 0 ? _a : true;\n const prefixCls = getPrefixCls('btn', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const disabled = useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const groupSize = useContext(GroupSizeContext);\n const loadingOrDelay = useMemo(() => getLoadingConfig(loading), [loading]);\n const [innerLoading, setLoading] = useState(loadingOrDelay.loading);\n const [hasTwoCNChar, setHasTwoCNChar] = useState(false);\n const internalRef = /*#__PURE__*/createRef();\n const buttonRef = composeRef(ref, internalRef);\n const needInserted = Children.count(children) === 1 && !icon && !isUnBorderedButtonVariant(mergedVariant);\n useEffect(() => {\n let delayTimer = null;\n if (loadingOrDelay.delay > 0) {\n delayTimer = setTimeout(() => {\n delayTimer = null;\n setLoading(true);\n }, loadingOrDelay.delay);\n } else {\n setLoading(loadingOrDelay.loading);\n }\n function cleanupTimer() {\n if (delayTimer) {\n clearTimeout(delayTimer);\n delayTimer = null;\n }\n }\n return cleanupTimer;\n }, [loadingOrDelay]);\n useEffect(() => {\n // FIXME: for HOC usage like <FormatMessage />\n if (!buttonRef || !buttonRef.current || !mergedInsertSpace) {\n return;\n }\n const buttonText = buttonRef.current.textContent;\n if (needInserted && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n }, [buttonRef]);\n const handleClick = React.useCallback(e => {\n var _a;\n // FIXME: https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);\n }, [props.onClick, innerLoading, mergedDisabled]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Button');\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonVariant(mergedVariant)), 'usage', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n }\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n const sizeFullName = useSize(ctxSize => {\n var _a, _b;\n return (_b = (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : groupSize) !== null && _b !== void 0 ? _b : ctxSize;\n });\n const sizeCls = sizeFullName ? (_b = sizeClassNameMap[sizeFullName]) !== null && _b !== void 0 ? _b : '' : '';\n const iconType = innerLoading ? 'loading' : icon;\n const linkButtonRestProps = omit(rest, ['navigate']);\n const classes = classNames(prefixCls, hashId, cssVarCls, {\n [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n // line(253 - 254): Compatible with versions earlier than 5.21.0\n [`${prefixCls}-${mergedType}`]: mergedType,\n [`${prefixCls}-dangerous`]: danger,\n [`${prefixCls}-color-${mergedColorText}`]: mergedColorText,\n [`${prefixCls}-variant-${mergedVariant}`]: mergedVariant,\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonVariant(mergedVariant),\n [`${prefixCls}-loading`]: innerLoading,\n [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && mergedInsertSpace && !innerLoading,\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-icon-end`]: iconPosition === 'end'\n }, compactItemClassnames, className, rootClassName, button === null || button === void 0 ? void 0 : button.className);\n const fullStyle = Object.assign(Object.assign({}, button === null || button === void 0 ? void 0 : button.style), customStyle);\n const iconClasses = classNames(customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.icon, (_c = button === null || button === void 0 ? void 0 : button.classNames) === null || _c === void 0 ? void 0 : _c.icon);\n const iconStyle = Object.assign(Object.assign({}, (styles === null || styles === void 0 ? void 0 : styles.icon) || {}), ((_d = button === null || button === void 0 ? void 0 : button.styles) === null || _d === void 0 ? void 0 : _d.icon) || {});\n const iconNode = icon && !innerLoading ? (/*#__PURE__*/React.createElement(IconWrapper, {\n prefixCls: prefixCls,\n className: iconClasses,\n style: iconStyle\n }, icon)) : (/*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: innerLoading\n }));\n const kids = children || children === 0 ? spaceChildren(children, needInserted && mergedInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n className: classNames(classes, {\n [`${prefixCls}-disabled`]: mergedDisabled\n }),\n href: mergedDisabled ? undefined : linkButtonRestProps.href,\n style: fullStyle,\n onClick: handleClick,\n ref: buttonRef,\n tabIndex: mergedDisabled ? -1 : 0\n }), iconNode, kids));\n }\n let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n type: htmlType,\n className: classes,\n style: fullStyle,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids, !!compactItemClassnames && /*#__PURE__*/React.createElement(CompactCmp, {\n key: \"compact\",\n prefixCls: prefixCls\n }));\n if (!isUnBorderedButtonVariant(mergedVariant)) {\n buttonNode = /*#__PURE__*/React.createElement(Wave, {\n component: \"Button\",\n disabled: innerLoading\n }, buttonNode);\n }\n return wrapCSSVar(buttonNode);\n});\nconst Button = InternalCompoundedButton;\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nexport default Button;","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('LocaleProvider');\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'deprecated', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n const clearLocale = changeConfirmLocale(locale === null || locale === void 0 ? void 0 : locale.Modal);\n return clearLocale;\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\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// 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\nexport default Stack;\n","import ListCache from './_ListCache.js';\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\nexport default stackClear;\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\nexport default stackDelete;\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\nexport default stackGet;\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\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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\nexport default stackSet;\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\n/** Keys are source filename/url, values are metadata objects. */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filenameMetadataMap = new Map();\n/** Set of stack strings that have already been parsed. */\nconst parsedStacks = new Set();\n\nfunction ensureMetadataStacksAreParsed(parser) {\n if (!GLOBAL_OBJ._sentryModuleMetadata) {\n return;\n }\n\n for (const stack of Object.keys(GLOBAL_OBJ._sentryModuleMetadata)) {\n const metadata = GLOBAL_OBJ._sentryModuleMetadata[stack];\n\n if (parsedStacks.has(stack)) {\n continue;\n }\n\n // Ensure this stack doesn't get parsed again\n parsedStacks.add(stack);\n\n const frames = parser(stack);\n\n // Go through the frames starting from the top of the stack and find the first one with a filename\n for (const frame of frames.reverse()) {\n if (frame.filename) {\n // Save the metadata for this filename\n filenameMetadataMap.set(frame.filename, metadata);\n break;\n }\n }\n }\n}\n\n/**\n * Retrieve metadata for a specific JavaScript file URL.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMetadataForUrl(parser, filename) {\n ensureMetadataStacksAreParsed(parser);\n return filenameMetadataMap.get(filename);\n}\n\n/**\n * Adds metadata to stack frames.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\nfunction addMetadataToStackFrames(parser, event) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n if (!frame.filename || frame.module_metadata) {\n continue;\n }\n\n const metadata = getMetadataForUrl(parser, frame.filename);\n\n if (metadata) {\n frame.module_metadata = metadata;\n }\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Strips metadata from stack frames.\n */\nfunction stripMetadataFromStackFrames(event) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n if (!exception.stacktrace) {\n return;\n }\n\n for (const frame of exception.stacktrace.frames || []) {\n delete frame.module_metadata;\n }\n });\n } catch (_) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\nexport { addMetadataToStackFrames, getMetadataForUrl, stripMetadataFromStackFrames };\n//# sourceMappingURL=metadata.js.map\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\nmodule.exports = isObject;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import { fromJS } from 'immutable';\n\nimport {\n SET_TABLE_HAS_BEEN_UPDATED,\n SET_TABLE_LOADING,\n SET_TABLE_DATA_PERCENT_LOADED,\n SET_COLUMN_WIDTHS,\n SET_PAGE_COUNT,\n SET_CSV_DATA_LOADING,\n SET_CSV_DATA_PERCENT_LOADED,\n LOADING,\n PERCENT_LOADED,\n COLUMN_WIDTHS,\n PAGE_COUNT,\n CSV_DATA,\n CSV_DATA_LOADING,\n CSV_DATA_PERCENT_LOADED,\n SET_TABLE_STATE,\n TABLE_HAS_BEEN_UPDATED,\n TABLE_STATE,\n SET_CSV_DATA,\n} from './constants';\n\nconst initialState = fromJS({\n // Loaders\n [LOADING]: false,\n [PERCENT_LOADED]: 0,\n\n // Table state\n [TABLE_HAS_BEEN_UPDATED]: false,\n [COLUMN_WIDTHS]: [],\n [TABLE_STATE]: {},\n [PAGE_COUNT]: 0, // Controlled table pagination\n\n // CSV\n [CSV_DATA]: [],\n [CSV_DATA_LOADING]: false,\n [CSV_DATA_PERCENT_LOADED]: 0,\n});\n\nfunction tableReducer(state = initialState, action) {\n switch (action.type) {\n case SET_TABLE_HAS_BEEN_UPDATED:\n return state.set(TABLE_HAS_BEEN_UPDATED, action[TABLE_HAS_BEEN_UPDATED]);\n\n // Loaders\n case SET_TABLE_LOADING:\n return state.set(LOADING, action[LOADING]);\n case SET_TABLE_DATA_PERCENT_LOADED:\n return state.set(PERCENT_LOADED, action[PERCENT_LOADED]);\n\n // Table state\n case SET_TABLE_STATE:\n return state.set(TABLE_STATE, fromJS(action.tableState));\n case SET_COLUMN_WIDTHS:\n return state.set(COLUMN_WIDTHS, fromJS(action[COLUMN_WIDTHS]));\n\n // Always set page count on page\n case SET_PAGE_COUNT:\n return state.set(PAGE_COUNT, action[PAGE_COUNT]);\n\n // CSV\n case SET_CSV_DATA:\n return state.set(CSV_DATA, fromJS(action[CSV_DATA]));\n case SET_CSV_DATA_LOADING:\n return state.set(CSV_DATA_LOADING, action[CSV_DATA_LOADING]);\n case SET_CSV_DATA_PERCENT_LOADED:\n return state.set(\n CSV_DATA_PERCENT_LOADED,\n action[CSV_DATA_PERCENT_LOADED],\n );\n default:\n return state;\n }\n}\n\nexport default tableReducer;\n","export const SET_ACTIVITY_RANGE_HOURS = 'SET_ACTIVITY_RANGE_HOURS';\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","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","module.exports = __webpack_public_path__ + \"0972f21af3e75388ef55435c0b3b831d.js\";","'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","import { useCallback, useState } from 'react';\n/**\n * @title multipleSelect hooks\n * @description multipleSelect by hold down shift key\n */\nexport default function useMultipleSelect(getKey) {\n const [prevSelectedIndex, setPrevSelectedIndex] = useState(null);\n const multipleSelect = useCallback((currentSelectedIndex, data, selectedKeys) => {\n const configPrevSelectedIndex = prevSelectedIndex !== null && prevSelectedIndex !== void 0 ? prevSelectedIndex : currentSelectedIndex;\n // add/delete the selected range\n const startIndex = Math.min(configPrevSelectedIndex || 0, currentSelectedIndex);\n const endIndex = Math.max(configPrevSelectedIndex || 0, currentSelectedIndex);\n const rangeKeys = data.slice(startIndex, endIndex + 1).map(item => getKey(item));\n const shouldSelected = rangeKeys.some(rangeKey => !selectedKeys.has(rangeKey));\n const changedKeys = [];\n rangeKeys.forEach(item => {\n if (shouldSelected) {\n if (!selectedKeys.has(item)) {\n changedKeys.push(item);\n }\n selectedKeys.add(item);\n } else {\n selectedKeys.delete(item);\n changedKeys.push(item);\n }\n });\n setPrevSelectedIndex(shouldSelected ? endIndex : null);\n return changedKeys;\n }, [prevSelectedIndex]);\n const updatePrevSelectedIndex = val => {\n setPrevSelectedIndex(val);\n };\n return [multipleSelect, updatePrevSelectedIndex];\n}","export const getRenderPropValue = propValue => {\n if (!propValue) {\n return null;\n }\n return typeof propValue === 'function' ? propValue() : propValue;\n};","import * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nfunction voidFunc() {}\nconst WatermarkContext = /*#__PURE__*/React.createContext({\n add: voidFunc,\n remove: voidFunc\n});\nexport function usePanelRef(panelSelector) {\n const watermark = React.useContext(WatermarkContext);\n const panelEleRef = React.useRef();\n const panelRef = useEvent(ele => {\n if (ele) {\n const innerContentEle = panelSelector ? ele.querySelector(panelSelector) : ele;\n watermark.add(innerContentEle);\n panelEleRef.current = innerContentEle;\n } else {\n watermark.remove(panelEleRef.current);\n }\n });\n return panelRef;\n}\nexport default WatermarkContext;","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","module.exports = __webpack_public_path__ + \"a392c1300172c8d16d524b8ce2d43ac2.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-slider .ant-form-item-control{border:0.0714285714rem solid var(--colorBorderSecondary) !important;border-radius:var(--borderRadius);padding:0.5714285714rem 1.1428571429rem 0.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormSlider/OpFormSlider.scss\"],\"names\":[],\"mappings\":\"AAGE,uCACE,mEAAA,CACA,iCAAA,CACA,uDAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-slider {\\n .ant-form-item-control {\\n border: common.toRem(1) solid var(--colorBorderSecondary) !important;\\n border-radius: var(--borderRadius);\\n padding: common.toRem(8) common.toRem(16) common.toRem(4);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}1`];\n const lightBorderColor = token[`${colorKey}3`];\n const darkColor = token[`${colorKey}6`];\n const textColor = token[`${colorKey}7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheSet;\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = Date.now()) {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>: <namespaces>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n * <namespaces> Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _PauseOutlined = _interopRequireDefault(require('./lib/icons/PauseOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _PauseOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"dc8240db39815020378555a4d80571c3.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _ArrowUpOutlined = _interopRequireDefault(require('./lib/icons/ArrowUpOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _ArrowUpOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"2b5729e073775b8fb827fc8e4725e48a.js\";","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider({\n i18n,\n defaultNS,\n children\n}) {\n const value = useMemo(() => ({\n i18n,\n defaultNS\n }), [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value\n }, children);\n}","import { addXhrInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { defineIntegration, getClient, captureEvent, isSentryRequestUrl } from '@sentry/core';\nimport { supportsNativeFetch, addFetchInstrumentationHandler, GLOBAL_OBJ, logger, addExceptionMechanism } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'HttpClient';\n\nconst _httpClientIntegration = ((options = {}) => {\n const _options = {\n failedRequestStatusCodes: [[500, 599]],\n failedRequestTargets: [/.*/],\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n _wrapFetch(client, _options);\n _wrapXHR(client, _options);\n },\n };\n}) ;\n\n/**\n * Create events for failed client side HTTP requests.\n */\nconst httpClientIntegration = defineIntegration(_httpClientIntegration);\n\n/**\n * Interceptor function for fetch requests\n *\n * @param requestInfo The Fetch API request info\n * @param response The Fetch API response\n * @param requestInit The request init object\n */\nfunction _fetchResponseHandler(\n options,\n requestInfo,\n response,\n requestInit,\n) {\n if (_shouldCaptureResponse(options, response.status, response.url)) {\n const request = _getRequest(requestInfo, requestInit);\n\n let requestHeaders, responseHeaders, requestCookies, responseCookies;\n\n if (_shouldSendDefaultPii()) {\n [requestHeaders, requestCookies] = _parseCookieHeaders('Cookie', request);\n [responseHeaders, responseCookies] = _parseCookieHeaders('Set-Cookie', response);\n }\n\n const event = _createEvent({\n url: request.url,\n method: request.method,\n status: response.status,\n requestHeaders,\n responseHeaders,\n requestCookies,\n responseCookies,\n });\n\n captureEvent(event);\n }\n}\n\nfunction _parseCookieHeaders(\n cookieHeader,\n obj,\n) {\n const headers = _extractFetchHeaders(obj.headers);\n let cookies;\n\n try {\n const cookieString = headers[cookieHeader] || headers[cookieHeader.toLowerCase()] || undefined;\n\n if (cookieString) {\n cookies = _parseCookieString(cookieString);\n }\n } catch (e) {\n DEBUG_BUILD && logger.log(`Could not extract cookies from header ${cookieHeader}`);\n }\n\n return [headers, cookies];\n}\n\n/**\n * Interceptor function for XHR requests\n *\n * @param xhr The XHR request\n * @param method The HTTP method\n * @param headers The HTTP headers\n */\nfunction _xhrResponseHandler(\n options,\n xhr,\n method,\n headers,\n) {\n if (_shouldCaptureResponse(options, xhr.status, xhr.responseURL)) {\n let requestHeaders, responseCookies, responseHeaders;\n\n if (_shouldSendDefaultPii()) {\n try {\n const cookieString = xhr.getResponseHeader('Set-Cookie') || xhr.getResponseHeader('set-cookie') || undefined;\n\n if (cookieString) {\n responseCookies = _parseCookieString(cookieString);\n }\n } catch (e) {\n DEBUG_BUILD && logger.log('Could not extract cookies from response headers');\n }\n\n try {\n responseHeaders = _getXHRResponseHeaders(xhr);\n } catch (e) {\n DEBUG_BUILD && logger.log('Could not extract headers from response');\n }\n\n requestHeaders = headers;\n }\n\n const event = _createEvent({\n url: xhr.responseURL,\n method,\n status: xhr.status,\n requestHeaders,\n // Can't access request cookies from XHR\n responseHeaders,\n responseCookies,\n });\n\n captureEvent(event);\n }\n}\n\n/**\n * Extracts response size from `Content-Length` header when possible\n *\n * @param headers\n * @returns The response size in bytes or undefined\n */\nfunction _getResponseSizeFromHeaders(headers) {\n if (headers) {\n const contentLength = headers['Content-Length'] || headers['content-length'];\n\n if (contentLength) {\n return parseInt(contentLength, 10);\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates an object containing cookies from the given cookie string\n *\n * @param cookieString The cookie string to parse\n * @returns The parsed cookies\n */\nfunction _parseCookieString(cookieString) {\n return cookieString.split('; ').reduce((acc, cookie) => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Extracts the headers as an object from the given Fetch API request or response object\n *\n * @param headers The headers to extract\n * @returns The extracted headers as an object\n */\nfunction _extractFetchHeaders(headers) {\n const result = {};\n\n headers.forEach((value, key) => {\n result[key] = value;\n });\n\n return result;\n}\n\n/**\n * Extracts the response headers as an object from the given XHR object\n *\n * @param xhr The XHR object to extract the response headers from\n * @returns The response headers as an object\n */\nfunction _getXHRResponseHeaders(xhr) {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc, line) => {\n const [key, value] = line.split(': ');\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Checks if the given target url is in the given list of targets\n *\n * @param target The target url to check\n * @returns true if the target url is in the given list of targets, false otherwise\n */\nfunction _isInGivenRequestTargets(\n failedRequestTargets,\n target,\n) {\n return failedRequestTargets.some((givenRequestTarget) => {\n if (typeof givenRequestTarget === 'string') {\n return target.includes(givenRequestTarget);\n }\n\n return givenRequestTarget.test(target);\n });\n}\n\n/**\n * Checks if the given status code is in the given range\n *\n * @param status The status code to check\n * @returns true if the status code is in the given range, false otherwise\n */\nfunction _isInGivenStatusRanges(\n failedRequestStatusCodes,\n status,\n) {\n return failedRequestStatusCodes.some((range) => {\n if (typeof range === 'number') {\n return range === status;\n }\n\n return status >= range[0] && status <= range[1];\n });\n}\n\n/**\n * Wraps `fetch` function to capture request and response data\n */\nfunction _wrapFetch(client, options) {\n if (!supportsNativeFetch()) {\n return;\n }\n\n addFetchInstrumentationHandler(handlerData => {\n if (getClient() !== client) {\n return;\n }\n\n const { response, args } = handlerData;\n const [requestInfo, requestInit] = args ;\n\n if (!response) {\n return;\n }\n\n _fetchResponseHandler(options, requestInfo, response , requestInit);\n });\n}\n\n/**\n * Wraps XMLHttpRequest to capture request and response data\n */\nfunction _wrapXHR(client, options) {\n if (!('XMLHttpRequest' in GLOBAL_OBJ)) {\n return;\n }\n\n addXhrInstrumentationHandler(handlerData => {\n if (getClient() !== client) {\n return;\n }\n\n const xhr = handlerData.xhr ;\n\n const sentryXhrData = xhr[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return;\n }\n\n const { method, request_headers: headers } = sentryXhrData;\n\n try {\n _xhrResponseHandler(options, xhr, method, headers);\n } catch (e) {\n DEBUG_BUILD && logger.warn('Error while extracting response event form XHR response', e);\n }\n });\n}\n\n/**\n * Checks whether to capture given response as an event\n *\n * @param status response status code\n * @param url response url\n */\nfunction _shouldCaptureResponse(options, status, url) {\n return (\n _isInGivenStatusRanges(options.failedRequestStatusCodes, status) &&\n _isInGivenRequestTargets(options.failedRequestTargets, url) &&\n !isSentryRequestUrl(url, getClient())\n );\n}\n\n/**\n * Creates a synthetic Sentry event from given response data\n *\n * @param data response data\n * @returns event\n */\nfunction _createEvent(data\n\n) {\n const message = `HTTP Client Error with status code: ${data.status}`;\n\n const event = {\n message,\n exception: {\n values: [\n {\n type: 'Error',\n value: message,\n },\n ],\n },\n request: {\n url: data.url,\n method: data.method,\n headers: data.requestHeaders,\n cookies: data.requestCookies,\n },\n contexts: {\n response: {\n status_code: data.status,\n headers: data.responseHeaders,\n cookies: data.responseCookies,\n body_size: _getResponseSizeFromHeaders(data.responseHeaders),\n },\n },\n };\n\n addExceptionMechanism(event, {\n type: 'http.client',\n handled: false,\n });\n\n return event;\n}\n\nfunction _getRequest(requestInfo, requestInit) {\n if (!requestInit && requestInfo instanceof Request) {\n return requestInfo;\n }\n\n // If both are set, we try to construct a new Request with the given arguments\n // However, if e.g. the original request has a `body`, this will throw an error because it was already accessed\n // In this case, as a fallback, we just use the original request - using both is rather an edge case\n if (requestInfo instanceof Request && requestInfo.bodyUsed) {\n return requestInfo;\n }\n\n return new Request(requestInfo, requestInit);\n}\n\nfunction _shouldSendDefaultPii() {\n const client = getClient();\n return client ? Boolean(client.getOptions().sendDefaultPii) : false;\n}\n\nexport { httpClientIntegration };\n//# sourceMappingURL=httpclient.js.map\n","import * as React from 'react';\nexport var RefContext = /*#__PURE__*/React.createContext({});","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport React, { useMemo, useRef } from 'react';\nimport { RefContext } from \"../../context\";\nimport MemoChildren from \"./MemoChildren\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar entityStyle = {\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height,\n modalClassNames = props.classNames,\n modalStyles = props.styles;\n\n // ================================= Refs =================================\n var _React$useContext = React.useContext(RefContext),\n panelRef = _React$useContext.panel;\n var mergedRef = useComposeRef(holderRef, panelRef);\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 || _sentinelStartRef$cur.focus({\n preventScroll: true\n });\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus({\n preventScroll: true\n });\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus({\n preventScroll: true\n });\n }\n }\n };\n });\n\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode = footer ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-footer\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.footer),\n style: _objectSpread({}, modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.footer)\n }, footer) : null;\n var headerNode = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-header\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.header),\n style: _objectSpread({}, modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.header)\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title)) : null;\n var closableObj = useMemo(function () {\n if (_typeof(closable) === 'object' && closable !== null) {\n return closable;\n }\n if (closable) {\n return {\n closeIcon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n })\n };\n }\n return {};\n }, [closable, closeIcon, prefixCls]);\n var ariaProps = pickAttrs(closableObj, true);\n var closeBtnIsDisabled = _typeof(closable) === 'object' && closable.disabled;\n var closerNode = closable ? /*#__PURE__*/React.createElement(\"button\", _extends({\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\"\n }, ariaProps, {\n className: \"\".concat(prefixCls, \"-close\"),\n disabled: closeBtnIsDisabled\n }), closableObj.closeIcon) : null;\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.content),\n style: modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.content\n }, closerNode, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-body\"), modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.body),\n style: _objectSpread(_objectSpread({}, bodyStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.body)\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: mergedRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: sentinelStartRef,\n tabIndex: 0,\n style: entityStyle\n }, /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content)), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from \"../../util\";\nimport Panel from \"./Panel\";\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition && (mousePosition.x || mousePosition.y) ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nvar Mask = function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName,\n className = props.className;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName, className)\n }, maskProps));\n });\n};\nexport default Mask;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport contains from \"rc-util/es/Dom/contains\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { getMotionName } from \"../util\";\nimport Content from \"./Content\";\nimport Mask from \"./Mask\";\nimport { warning } from \"rc-util/es/warning\";\nvar Dialog = function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterOpenChange = props.afterOpenChange,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName,\n modalClassNames = props.classNames,\n modalStyles = props.styles;\n if (process.env.NODE_ENV !== 'production') {\n ['wrapStyle', 'bodyStyle', 'maskStyle'].forEach(function (prop) {\n // (prop in props) && console.error(`Warning: ${prop} is deprecated, please use styles instead.`)\n warning(!(prop in props), \"\".concat(prop, \" is deprecated, please use styles instead.\"));\n });\n if ('wrapClassName' in props) {\n warning(false, \"wrapClassName is deprecated, please use classNames instead.\");\n }\n }\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 || _contentRef$current.focus();\n }\n }\n\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 || afterClose();\n }\n }\n afterOpenChange === null || afterOpenChange === void 0 || afterOpenChange(newVisible);\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 || onClose(e);\n }\n\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n\n // keep focus inside dialog\n if (visible && e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.wrapper), {}, {\n display: !animatedVisible ? 'none' : null\n });\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, maskStyle), modalStyles === null || modalStyles === void 0 ? void 0 : modalStyles.mask),\n maskProps: maskProps,\n className: modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.mask\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName, modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.wrapper),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: mergedStyle\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n};\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport Portal from '@rc-component/portal';\nimport * as React from 'react';\nimport { RefContext } from \"./context\";\nimport Dialog from \"./Dialog\";\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\n\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose,\n panelRef = props.panelRef;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n var refContext = React.useMemo(function () {\n return {\n panel: panelRef\n };\n }, [panelRef]);\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(RefContext.Provider, {\n value: refContext\n }, /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 || _afterClose();\n setAnimatedVisible(false);\n }\n }))));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import DialogWrap from \"./DialogWrap\";\nimport Panel from \"./Dialog/Content/Panel\";\nexport { Panel };\nexport default DialogWrap;","/*\n * Copyright 2022 Google LLC\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 * https://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\nconst runOnce = (cb) => {\n let called = false;\n return (arg) => {\n if (!called) {\n cb(arg);\n called = true;\n }\n };\n};\n\nexport { runOnce };\n//# sourceMappingURL=runOnce.js.map\n","import { createStackParser, UNKNOWN_FUNCTION } from '@sentry/utils';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func === '<anonymous>' ? UNKNOWN_FUNCTION : func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn = line => {\n // If the stack line has no function name, we need to parse it differently\n const noFnParts = chromeRegexNoFnName.exec(line) ;\n\n if (noFnParts) {\n const [, filename, line, col] = noFnParts;\n return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n }\n\n const parts = chromeRegex.exec(line) ;\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line) ;\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line) ;\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line) ;\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line) ;\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? (func.split('@')[0] ) : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","export const groupKeysMap = keys => {\n const map = new Map();\n keys.forEach((key, index) => {\n map.set(key, index);\n });\n return map;\n};\nexport const groupDisabledKeysMap = dataSource => {\n const map = new Map();\n dataSource.forEach((_ref, index) => {\n let {\n disabled,\n key\n } = _ref;\n if (disabled) {\n map.set(key, index);\n }\n });\n return map;\n};","import * as React from 'react';\nimport { groupKeysMap } from '../../_util/transKeys';\nconst useData = (dataSource, rowKey, targetKeys) => {\n const mergedDataSource = React.useMemo(() => (dataSource || []).map(record => {\n if (rowKey) {\n return Object.assign(Object.assign({}, record), {\n key: rowKey(record)\n });\n }\n return record;\n }), [dataSource, rowKey]);\n const [leftDataSource, rightDataSource] = React.useMemo(() => {\n const leftData = [];\n const rightData = new Array((targetKeys || []).length);\n const targetKeysMap = groupKeysMap(targetKeys || []);\n mergedDataSource.forEach(record => {\n // rightData should be ordered by targetKeys\n // leftData should be ordered by dataSource\n if (targetKeysMap.has(record.key)) {\n rightData[targetKeysMap.get(record.key)] = record;\n } else {\n leftData.push(record);\n }\n });\n return [leftData, rightData];\n }, [mergedDataSource, targetKeys, rowKey]);\n return [mergedDataSource, leftDataSource, rightDataSource];\n};\nexport default useData;","import * as React from 'react';\nconst EMPTY_KEYS = [];\nfunction filterKeys(keys, dataKeys) {\n const filteredKeys = keys.filter(key => dataKeys.has(key));\n return keys.length === filteredKeys.length ? keys : filteredKeys;\n}\nfunction flattenKeys(keys) {\n return Array.from(keys).join(';');\n}\nexport default function useSelection(leftDataSource, rightDataSource) {\n let selectedKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EMPTY_KEYS;\n // Prepare `dataSource` keys\n const [leftKeys, rightKeys] = React.useMemo(() => [new Set(leftDataSource.map(src => src.key)), new Set(rightDataSource.map(src => src.key))], [leftDataSource, rightDataSource]);\n // Selected Keys\n const [sourceSelectedKeys, setSourceSelectedKeys] = React.useState(() => filterKeys(selectedKeys, leftKeys));\n const [targetSelectedKeys, setTargetSelectedKeys] = React.useState(() => filterKeys(selectedKeys, rightKeys));\n // Fill selected keys\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(selectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(selectedKeys, rightKeys));\n }, [selectedKeys]);\n // Reset when data changed\n React.useEffect(() => {\n setSourceSelectedKeys(filterKeys(sourceSelectedKeys, leftKeys));\n setTargetSelectedKeys(filterKeys(targetSelectedKeys, rightKeys));\n }, [flattenKeys(leftKeys), flattenKeys(rightKeys)]);\n return [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Updater\n setSourceSelectedKeys, setTargetSelectedKeys];\n}","\"use client\";\n\nimport * as React from 'react';\nimport DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport classNames from 'classnames';\nimport Checkbox from '../checkbox';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nconst ListItem = props => {\n const {\n renderedText,\n renderedEl,\n item,\n checked,\n disabled,\n prefixCls,\n onClick,\n onRemove,\n showRemove\n } = props;\n const className = classNames(`${prefixCls}-content-item`, {\n [`${prefixCls}-content-item-disabled`]: disabled || item.disabled,\n [`${prefixCls}-content-item-checked`]: checked\n });\n let title;\n if (typeof renderedText === 'string' || typeof renderedText === 'number') {\n title = String(renderedText);\n }\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const liProps = {\n className,\n title\n };\n const labelNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-item-text`\n }, renderedEl);\n if (showRemove) {\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), labelNode, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n disabled: disabled || item.disabled,\n className: `${prefixCls}-content-item-remove`,\n \"aria-label\": contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.remove,\n onClick: () => onRemove === null || onRemove === void 0 ? void 0 : onRemove(item)\n }, /*#__PURE__*/React.createElement(DeleteOutlined, null)));\n }\n // Default click to select\n liProps.onClick = disabled || item.disabled ? undefined : event => onClick(item, event);\n return /*#__PURE__*/React.createElement(\"li\", Object.assign({}, liProps), /*#__PURE__*/React.createElement(Checkbox, {\n className: `${prefixCls}-checkbox`,\n checked: checked,\n disabled: disabled || item.disabled\n }), labelNode);\n};\nexport default /*#__PURE__*/React.memo(ListItem);","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Pagination from '../pagination';\nimport ListItem from './ListItem';\nexport const OmitProps = ['handleFilter', 'handleClear', 'checkedKeys'];\nconst parsePagination = pagination => {\n const defaultPagination = {\n simple: true,\n showSizeChanger: false,\n showLessItems: false\n };\n return Object.assign(Object.assign({}, defaultPagination), pagination);\n};\nconst TransferListBody = (props, ref) => {\n const {\n prefixCls,\n filteredRenderItems,\n selectedKeys,\n disabled: globalDisabled,\n showRemove,\n pagination,\n onScroll,\n onItemSelect,\n onItemRemove\n } = props;\n const [current, setCurrent] = React.useState(1);\n const mergedPagination = React.useMemo(() => {\n if (!pagination) {\n return null;\n }\n const convertPagination = typeof pagination === 'object' ? pagination : {};\n return parsePagination(convertPagination);\n }, [pagination]);\n const [pageSize, setPageSize] = useMergedState(10, {\n value: mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize\n });\n React.useEffect(() => {\n if (mergedPagination) {\n const maxPageCount = Math.ceil(filteredRenderItems.length / pageSize);\n setCurrent(Math.min(current, maxPageCount));\n }\n }, [filteredRenderItems, mergedPagination, pageSize]);\n const onInternalClick = (item, e) => {\n onItemSelect(item.key, !selectedKeys.includes(item.key), e);\n };\n const onRemove = item => {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove([item.key]);\n };\n const onPageChange = cur => {\n setCurrent(cur);\n };\n const onSizeChange = (cur, size) => {\n setCurrent(cur);\n setPageSize(size);\n };\n const memoizedItems = React.useMemo(() => {\n const displayItems = mergedPagination ? filteredRenderItems.slice((current - 1) * pageSize, current * pageSize) : filteredRenderItems;\n return displayItems;\n }, [current, filteredRenderItems, mergedPagination, pageSize]);\n React.useImperativeHandle(ref, () => ({\n items: memoizedItems\n }));\n const paginationNode = mergedPagination ? (/*#__PURE__*/React.createElement(Pagination, {\n size: \"small\",\n disabled: globalDisabled,\n simple: mergedPagination.simple,\n pageSize: pageSize,\n showLessItems: mergedPagination.showLessItems,\n showSizeChanger: mergedPagination.showSizeChanger,\n className: `${prefixCls}-pagination`,\n total: filteredRenderItems.length,\n current: current,\n onChange: onPageChange,\n onShowSizeChange: onSizeChange\n })) : null;\n const cls = classNames(`${prefixCls}-content`, {\n [`${prefixCls}-content-show-remove`]: showRemove\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"ul\", {\n className: cls,\n onScroll: onScroll\n }, (memoizedItems || []).map(_ref => {\n let {\n renderedEl,\n renderedText,\n item\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: item.key,\n item: item,\n renderedText: renderedText,\n renderedEl: renderedEl,\n prefixCls: prefixCls,\n showRemove: showRemove,\n onClick: onInternalClick,\n onRemove: onRemove,\n checked: selectedKeys.includes(item.key),\n disabled: globalDisabled || item.disabled\n });\n })), paginationNode);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferListBody.displayName = 'TransferListBody';\n}\nexport default /*#__PURE__*/React.forwardRef(TransferListBody);","\"use client\";\n\nimport * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport Input from '../input';\nconst Search = props => {\n const {\n placeholder = '',\n value,\n prefixCls,\n disabled,\n onChange,\n handleClear\n } = props;\n const handleChange = React.useCallback(e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n if (e.target.value === '') {\n handleClear === null || handleClear === void 0 ? void 0 : handleClear();\n }\n }, [onChange]);\n return /*#__PURE__*/React.createElement(Input, {\n placeholder: placeholder,\n className: prefixCls,\n value: value,\n onChange: handleChange,\n disabled: disabled,\n allowClear: true,\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null)\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","\"use client\";\n\nimport React, { useMemo, useRef, useState } from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { groupKeysMap } from '../_util/transKeys';\nimport Checkbox from '../checkbox';\nimport Dropdown from '../dropdown';\nimport DefaultListBody, { OmitProps } from './ListBody';\nimport Search from './search';\nconst defaultRender = () => null;\nfunction isRenderResultPlainObject(result) {\n return !!(result && ! /*#__PURE__*/React.isValidElement(result) && Object.prototype.toString.call(result) === '[object Object]');\n}\nfunction getEnabledItemKeys(items) {\n return items.filter(data => !data.disabled).map(data => data.key);\n}\nconst isValidIcon = icon => icon !== undefined;\nconst TransferList = props => {\n const {\n prefixCls,\n dataSource = [],\n titleText = '',\n checkedKeys,\n disabled,\n showSearch = false,\n style,\n searchPlaceholder,\n notFoundContent,\n selectAll,\n deselectAll,\n selectCurrent,\n selectInvert,\n removeAll,\n removeCurrent,\n showSelectAll = true,\n showRemove,\n pagination,\n direction,\n itemsUnit,\n itemUnit,\n selectAllLabel,\n selectionsIcon,\n footer,\n renderList,\n onItemSelectAll,\n onItemRemove,\n handleFilter,\n handleClear,\n filterOption,\n render = defaultRender\n } = props;\n const [filterValue, setFilterValue] = useState('');\n const listBodyRef = useRef({});\n const internalHandleFilter = e => {\n setFilterValue(e.target.value);\n handleFilter(e);\n };\n const internalHandleClear = () => {\n setFilterValue('');\n handleClear();\n };\n const matchFilter = (text, item) => {\n if (filterOption) {\n return filterOption(filterValue, item, direction);\n }\n return text.includes(filterValue);\n };\n const renderListBody = listProps => {\n let bodyContent = renderList ? renderList(Object.assign(Object.assign({}, listProps), {\n onItemSelect: (key, check) => listProps.onItemSelect(key, check)\n })) : null;\n const customize = !!bodyContent;\n if (!customize) {\n // @ts-ignore\n bodyContent = /*#__PURE__*/React.createElement(DefaultListBody, Object.assign({\n ref: listBodyRef\n }, listProps));\n }\n return {\n customize,\n bodyContent\n };\n };\n const renderItem = item => {\n const renderResult = render(item);\n const isRenderResultPlain = isRenderResultPlainObject(renderResult);\n return {\n item,\n renderedEl: isRenderResultPlain ? renderResult.label : renderResult,\n renderedText: isRenderResultPlain ? renderResult.value : renderResult\n };\n };\n const notFoundContentEle = useMemo(() => Array.isArray(notFoundContent) ? notFoundContent[direction === 'left' ? 0 : 1] : notFoundContent, [notFoundContent, direction]);\n const [filteredItems, filteredRenderItems] = useMemo(() => {\n const filterItems = [];\n const filterRenderItems = [];\n dataSource.forEach(item => {\n const renderedItem = renderItem(item);\n if (filterValue && !matchFilter(renderedItem.renderedText, item)) {\n return;\n }\n filterItems.push(item);\n filterRenderItems.push(renderedItem);\n });\n return [filterItems, filterRenderItems];\n }, [dataSource, filterValue]);\n const checkStatus = useMemo(() => {\n if (checkedKeys.length === 0) {\n return 'none';\n }\n const checkedKeysMap = groupKeysMap(checkedKeys);\n if (filteredItems.every(item => checkedKeysMap.has(item.key) || !!item.disabled)) {\n return 'all';\n }\n return 'part';\n }, [checkedKeys, filteredItems]);\n const listBody = useMemo(() => {\n const search = showSearch ? (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-search-wrapper`\n }, /*#__PURE__*/React.createElement(Search, {\n prefixCls: `${prefixCls}-search`,\n onChange: internalHandleFilter,\n handleClear: internalHandleClear,\n placeholder: searchPlaceholder,\n value: filterValue,\n disabled: disabled\n }))) : null;\n const {\n customize,\n bodyContent\n } = renderListBody(Object.assign(Object.assign({}, omit(props, OmitProps)), {\n filteredItems,\n filteredRenderItems,\n selectedKeys: checkedKeys\n }));\n let bodyNode;\n // We should wrap customize list body in a classNamed div to use flex layout.\n if (customize) {\n bodyNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-customize-wrapper`\n }, bodyContent);\n } else {\n bodyNode = filteredItems.length ? bodyContent : (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-body-not-found`\n }, notFoundContentEle));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(showSearch ? `${prefixCls}-body ${prefixCls}-body-with-search` : `${prefixCls}-body`)\n }, search, bodyNode);\n }, [showSearch, prefixCls, searchPlaceholder, filterValue, disabled, checkedKeys, filteredItems, filteredRenderItems, notFoundContentEle]);\n const checkBox = /*#__PURE__*/React.createElement(Checkbox, {\n disabled: dataSource.length === 0 || disabled,\n checked: checkStatus === 'all',\n indeterminate: checkStatus === 'part',\n className: `${prefixCls}-checkbox`,\n onChange: () => {\n // Only select enabled items\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(filteredItems.filter(item => !item.disabled).map(_ref => {\n let {\n key\n } = _ref;\n return key;\n }), checkStatus !== 'all');\n }\n });\n const getSelectAllLabel = (selectedCount, totalCount) => {\n if (selectAllLabel) {\n return typeof selectAllLabel === 'function' ? selectAllLabel({\n selectedCount,\n totalCount\n }) : selectAllLabel;\n }\n const unit = totalCount > 1 ? itemsUnit : itemUnit;\n return /*#__PURE__*/React.createElement(React.Fragment, null, (selectedCount > 0 ? `${selectedCount}/` : '') + totalCount, \" \", unit);\n };\n // Custom Layout\n const footerDom = footer && (footer.length < 2 ? footer(props) : footer(props, {\n direction\n }));\n const listCls = classNames(prefixCls, {\n [`${prefixCls}-with-pagination`]: !!pagination,\n [`${prefixCls}-with-footer`]: !!footerDom\n });\n // ====================== Get filtered, checked item list ======================\n const listFooter = footerDom ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, footerDom) : null;\n const checkAllCheckbox = !showRemove && !pagination && checkBox;\n let items;\n if (showRemove) {\n items = [/* Remove Current Page */\n pagination ? {\n key: 'removeCurrent',\n label: removeCurrent,\n onClick() {\n var _a;\n const pageKeys = getEnabledItemKeys((((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item));\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(pageKeys);\n }\n } : null, /* Remove All */\n {\n key: 'removeAll',\n label: removeAll,\n onClick() {\n onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(getEnabledItemKeys(filteredItems));\n }\n }].filter(Boolean);\n } else {\n items = [{\n key: 'selectAll',\n label: checkStatus === 'all' ? deselectAll : selectAll,\n onClick() {\n const keys = getEnabledItemKeys(filteredItems);\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(keys, keys.length !== checkedKeys.length);\n }\n }, pagination ? {\n key: 'selectCurrent',\n label: selectCurrent,\n onClick() {\n var _a;\n const pageItems = ((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || [];\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(getEnabledItemKeys(pageItems.map(entity => entity.item)), true);\n }\n } : null, {\n key: 'selectInvert',\n label: selectInvert,\n onClick() {\n var _a;\n const availablePageItemKeys = getEnabledItemKeys((((_a = listBodyRef.current) === null || _a === void 0 ? void 0 : _a.items) || []).map(entity => entity.item));\n const checkedKeySet = new Set(checkedKeys);\n const newCheckedKeysSet = new Set(checkedKeySet);\n availablePageItemKeys.forEach(key => {\n if (checkedKeySet.has(key)) {\n newCheckedKeysSet.delete(key);\n } else {\n newCheckedKeysSet.add(key);\n }\n });\n onItemSelectAll === null || onItemSelectAll === void 0 ? void 0 : onItemSelectAll(Array.from(newCheckedKeysSet), 'replace');\n }\n }];\n }\n const dropdown = /*#__PURE__*/React.createElement(Dropdown, {\n className: `${prefixCls}-header-dropdown`,\n menu: {\n items\n },\n disabled: disabled\n }, isValidIcon(selectionsIcon) ? selectionsIcon : /*#__PURE__*/React.createElement(DownOutlined, null));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listCls,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, showSelectAll ? (/*#__PURE__*/React.createElement(React.Fragment, null, checkAllCheckbox, dropdown)) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-selected`\n }, getSelectAllLabel(checkedKeys.length, filteredItems.length)), /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-header-title`\n }, titleText)), listBody, listFooter);\n};\nif (process.env.NODE_ENV !== 'production') {\n TransferList.displayName = 'TransferList';\n}\nexport default TransferList;","\"use client\";\n\nimport * as React from 'react';\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport Button from '../button';\nconst Operation = props => {\n const {\n disabled,\n moveToLeft,\n moveToRight,\n leftArrowText = '',\n rightArrowText = '',\n leftActive,\n rightActive,\n className,\n style,\n direction,\n oneWay\n } = props;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !rightActive,\n onClick: moveToRight,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null)\n }, rightArrowText), !oneWay && (/*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n disabled: disabled || !leftActive,\n onClick: moveToLeft,\n icon: direction !== 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n }, leftArrowText)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Operation.displayName = 'Operation';\n}\nexport default Operation;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent, resetIcon, textEllipsis, operationUnit } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genTransferCustomizeStyle = token => {\n const {\n antCls,\n componentCls,\n listHeight,\n controlHeightLG\n } = token;\n const tableCls = `${antCls}-table`;\n const inputCls = `${antCls}-input`;\n return {\n [`${componentCls}-customize-list`]: {\n [`${componentCls}-list`]: {\n flex: '1 1 50%',\n width: 'auto',\n height: 'auto',\n minHeight: listHeight,\n minWidth: 0\n },\n // =================== Hook Components ===================\n [`${tableCls}-wrapper`]: {\n [`${tableCls}-small`]: {\n border: 0,\n borderRadius: 0,\n [`${tableCls}-selection-column`]: {\n width: controlHeightLG,\n minWidth: controlHeightLG\n }\n },\n [`${tableCls}-pagination${tableCls}-pagination`]: {\n margin: 0,\n padding: token.paddingXS\n }\n },\n [`${inputCls}[disabled]`]: {\n backgroundColor: 'transparent'\n }\n }\n };\n};\nconst genTransferStatusColor = (token, color) => {\n const {\n componentCls,\n colorBorder\n } = token;\n return {\n [`${componentCls}-list`]: {\n borderColor: color,\n '&-search:not([disabled])': {\n borderColor: colorBorder\n }\n }\n };\n};\nconst genTransferStatusStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-status-error`]: Object.assign({}, genTransferStatusColor(token, token.colorError)),\n [`${componentCls}-status-warning`]: Object.assign({}, genTransferStatusColor(token, token.colorWarning))\n };\n};\nconst genTransferListStyle = token => {\n const {\n componentCls,\n colorBorder,\n colorSplit,\n lineWidth,\n itemHeight,\n headerHeight,\n transferHeaderVerticalPadding,\n itemPaddingBlock,\n controlItemBgActive,\n colorTextDisabled,\n colorTextSecondary,\n listHeight,\n listWidth,\n listWidthLG,\n fontSizeIcon,\n marginXS,\n paddingSM,\n lineType,\n antCls,\n iconCls,\n motionDurationSlow,\n controlItemBgHover,\n borderRadiusLG,\n colorBgContainer,\n colorText,\n controlItemBgActiveHover\n } = token;\n return {\n display: 'flex',\n flexDirection: 'column',\n width: listWidth,\n height: listHeight,\n border: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&-with-pagination': {\n width: listWidthLG,\n height: 'auto'\n },\n '&-search': {\n [`${iconCls}-search`]: {\n color: colorTextDisabled\n }\n },\n '&-header': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n height: headerHeight,\n // border-top is on the transfer dom. We should minus 1px for this\n padding: `${unit(token.calc(transferHeaderVerticalPadding).sub(lineWidth).equal())} ${unit(paddingSM)} ${unit(transferHeaderVerticalPadding)}`,\n color: colorText,\n background: colorBgContainer,\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n borderRadius: `${unit(borderRadiusLG)} ${unit(borderRadiusLG)} 0 0`,\n '> *:not(:last-child)': {\n marginInlineEnd: 4 // This is magic and fixed number, DO NOT use token since it may change.\n },\n '> *': {\n flex: 'none'\n },\n '&-title': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto',\n textAlign: 'end'\n }),\n '&-dropdown': Object.assign(Object.assign({}, resetIcon()), {\n fontSize: fontSizeIcon,\n transform: 'translateY(10%)',\n cursor: 'pointer',\n '&[disabled]': {\n cursor: 'not-allowed'\n }\n })\n },\n '&-body': {\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n fontSize: token.fontSize,\n // https://blog.csdn.net/qq449245884/article/details/107373672/\n minHeight: 0,\n '&-search-wrapper': {\n position: 'relative',\n flex: 'none',\n padding: paddingSM\n }\n },\n '&-content': {\n flex: 'auto',\n margin: 0,\n padding: 0,\n overflow: 'auto',\n listStyle: 'none',\n '&-item': {\n display: 'flex',\n alignItems: 'center',\n minHeight: itemHeight,\n padding: `${unit(itemPaddingBlock)} ${unit(paddingSM)}`,\n transition: `all ${motionDurationSlow}`,\n '> *:not(:last-child)': {\n marginInlineEnd: marginXS\n },\n '> *': {\n flex: 'none'\n },\n '&-text': Object.assign(Object.assign({}, textEllipsis), {\n flex: 'auto'\n }),\n '&-remove': Object.assign(Object.assign({}, operationUnit(token)), {\n color: colorBorder,\n '&:hover, &:focus': {\n color: colorTextSecondary\n }\n }),\n [`&:not(${componentCls}-list-content-item-disabled)`]: {\n '&:hover': {\n backgroundColor: controlItemBgHover,\n cursor: 'pointer'\n },\n [`&${componentCls}-list-content-item-checked:hover`]: {\n backgroundColor: controlItemBgActiveHover\n }\n },\n '&-checked': {\n backgroundColor: controlItemBgActive\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n // Do not change hover style when `oneWay` mode\n [`&-show-remove ${componentCls}-list-content-item:not(${componentCls}-list-content-item-disabled):hover`]: {\n background: 'transparent',\n cursor: 'default'\n }\n },\n '&-pagination': {\n padding: token.paddingXS,\n textAlign: 'end',\n borderTop: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n [`${antCls}-pagination-options`]: {\n paddingInlineEnd: token.paddingXS\n }\n },\n '&-body-not-found': {\n flex: 'none',\n width: '100%',\n margin: 'auto 0',\n color: colorTextDisabled,\n textAlign: 'center'\n },\n '&-footer': {\n borderTop: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n },\n // fix: https://github.com/ant-design/ant-design/issues/44489\n '&-checkbox': {\n lineHeight: 1\n }\n };\n};\nconst genTransferStyle = token => {\n const {\n antCls,\n iconCls,\n componentCls,\n marginXS,\n marginXXS,\n fontSizeIcon,\n colorBgContainerDisabled\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n [`${componentCls}-disabled`]: {\n [`${componentCls}-list`]: {\n background: colorBgContainerDisabled\n }\n },\n [`${componentCls}-list`]: genTransferListStyle(token),\n [`${componentCls}-operation`]: {\n display: 'flex',\n flex: 'none',\n flexDirection: 'column',\n alignSelf: 'center',\n margin: `0 ${unit(marginXS)}`,\n verticalAlign: 'middle',\n gap: marginXXS,\n [`${antCls}-btn ${iconCls}`]: {\n fontSize: fontSizeIcon\n }\n }\n })\n };\n};\nconst genTransferRTLStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nexport const prepareComponentToken = token => {\n const {\n fontSize,\n lineHeight,\n controlHeight,\n controlHeightLG,\n lineWidth\n } = token;\n const fontHeight = Math.round(fontSize * lineHeight);\n return {\n listWidth: 180,\n listHeight: 200,\n listWidthLG: 250,\n headerHeight: controlHeightLG,\n itemHeight: controlHeight,\n itemPaddingBlock: (controlHeight - fontHeight) / 2,\n transferHeaderVerticalPadding: Math.ceil((controlHeightLG - lineWidth - fontHeight) / 2)\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Transfer', token => {\n const transferToken = mergeToken(token);\n return [genTransferStyle(transferToken), genTransferCustomizeStyle(transferToken), genTransferStatusStyle(transferToken), genTransferRTLStyle(transferToken)];\n}, prepareComponentToken);","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useCallback, useContext } from 'react';\nimport classNames from 'classnames';\nimport useMultipleSelect from '../_util/hooks/useMultipleSelect';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { groupDisabledKeysMap, groupKeysMap } from '../_util/transKeys';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { FormItemInputContext } from '../form/context';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport useData from './hooks/useData';\nimport useSelection from './hooks/useSelection';\nimport List from './list';\nimport Operation from './operation';\nimport Search from './search';\nimport useStyle from './style';\nconst Transfer = props => {\n const {\n dataSource,\n targetKeys = [],\n selectedKeys,\n selectAllLabels = [],\n operations = [],\n style = {},\n listStyle = {},\n locale = {},\n titles,\n disabled,\n showSearch = false,\n operationStyle,\n showSelectAll,\n oneWay,\n pagination,\n status: customStatus,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n selectionsIcon,\n filterOption,\n render,\n footer,\n children,\n rowKey,\n onScroll,\n onChange,\n onSearch,\n onSelectChange\n } = props;\n const {\n getPrefixCls,\n renderEmpty,\n direction: dir,\n transfer\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('transfer', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // Fill record with `key`\n const [mergedDataSource, leftDataSource, rightDataSource] = useData(dataSource, rowKey, targetKeys);\n // Get direction selected keys\n const [\n // Keys\n sourceSelectedKeys, targetSelectedKeys,\n // Setters\n setSourceSelectedKeys, setTargetSelectedKeys] = useSelection(leftDataSource, rightDataSource, selectedKeys);\n const [leftMultipleSelect, updateLeftPrevSelectedIndex] = useMultipleSelect(item => item.key);\n const [rightMultipleSelect, updateRightPrevSelectedIndex] = useMultipleSelect(item => item.key);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Transfer');\n process.env.NODE_ENV !== \"production\" ? warning(!pagination || !children, 'usage', '`pagination` not support customize render list.') : void 0;\n }\n const setStateKeys = useCallback((direction, keys) => {\n if (direction === 'left') {\n const nextKeys = typeof keys === 'function' ? keys(sourceSelectedKeys || []) : keys;\n setSourceSelectedKeys(nextKeys);\n } else {\n const nextKeys = typeof keys === 'function' ? keys(targetSelectedKeys || []) : keys;\n setTargetSelectedKeys(nextKeys);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const setPrevSelectedIndex = (direction, value) => {\n const isLeftDirection = direction === 'left';\n const updatePrevSelectedIndex = isLeftDirection ? updateLeftPrevSelectedIndex : updateRightPrevSelectedIndex;\n updatePrevSelectedIndex(value);\n };\n const handleSelectChange = useCallback((direction, holder) => {\n if (direction === 'left') {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(holder, targetSelectedKeys);\n } else {\n onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(sourceSelectedKeys, holder);\n }\n }, [sourceSelectedKeys, targetSelectedKeys]);\n const getTitles = transferLocale => {\n var _a;\n return (_a = titles !== null && titles !== void 0 ? titles : transferLocale.titles) !== null && _a !== void 0 ? _a : [];\n };\n const handleLeftScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('left', e);\n };\n const handleRightScroll = e => {\n onScroll === null || onScroll === void 0 ? void 0 : onScroll('right', e);\n };\n const moveTo = direction => {\n const moveKeys = direction === 'right' ? sourceSelectedKeys : targetSelectedKeys;\n const dataSourceDisabledKeysMap = groupDisabledKeysMap(mergedDataSource);\n // filter the disabled options\n const newMoveKeys = moveKeys.filter(key => !dataSourceDisabledKeysMap.has(key));\n const newMoveKeysMap = groupKeysMap(newMoveKeys);\n // move items to target box\n const newTargetKeys = direction === 'right' ? newMoveKeys.concat(targetKeys) : targetKeys.filter(targetKey => !newMoveKeysMap.has(targetKey));\n // empty checked keys\n const oppositeDirection = direction === 'right' ? 'left' : 'right';\n setStateKeys(oppositeDirection, []);\n handleSelectChange(oppositeDirection, []);\n onChange === null || onChange === void 0 ? void 0 : onChange(newTargetKeys, direction, newMoveKeys);\n };\n const moveToLeft = () => {\n moveTo('left');\n setPrevSelectedIndex('left', null);\n };\n const moveToRight = () => {\n moveTo('right');\n setPrevSelectedIndex('right', null);\n };\n const onItemSelectAll = (direction, keys, checkAll) => {\n setStateKeys(direction, prevKeys => {\n let mergedCheckedKeys = [];\n if (checkAll === 'replace') {\n mergedCheckedKeys = keys;\n } else if (checkAll) {\n // Merge current keys with origin key\n mergedCheckedKeys = Array.from(new Set([].concat(_toConsumableArray(prevKeys), _toConsumableArray(keys))));\n } else {\n const selectedKeysMap = groupKeysMap(keys);\n // Remove current keys from origin keys\n mergedCheckedKeys = prevKeys.filter(key => !selectedKeysMap.has(key));\n }\n handleSelectChange(direction, mergedCheckedKeys);\n return mergedCheckedKeys;\n });\n setPrevSelectedIndex(direction, null);\n };\n const onLeftItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('left', keys, checkAll);\n };\n const onRightItemSelectAll = (keys, checkAll) => {\n onItemSelectAll('right', keys, checkAll);\n };\n const leftFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', e.target.value);\n const rightFilter = e => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', e.target.value);\n const handleLeftClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('left', '');\n const handleRightClear = () => onSearch === null || onSearch === void 0 ? void 0 : onSearch('right', '');\n const handleSingleSelect = (direction, holder, selectedKey, checked, currentSelectedIndex) => {\n const isSelected = holder.has(selectedKey);\n if (isSelected) {\n holder.delete(selectedKey);\n setPrevSelectedIndex(direction, null);\n }\n if (checked) {\n holder.add(selectedKey);\n setPrevSelectedIndex(direction, currentSelectedIndex);\n }\n };\n const handleMultipleSelect = (direction, data, holder, currentSelectedIndex) => {\n const isLeftDirection = direction === 'left';\n const multipleSelect = isLeftDirection ? leftMultipleSelect : rightMultipleSelect;\n multipleSelect(currentSelectedIndex, data, holder);\n };\n const onItemSelect = (direction, selectedKey, checked, multiple) => {\n const isLeftDirection = direction === 'left';\n const holder = _toConsumableArray(isLeftDirection ? sourceSelectedKeys : targetSelectedKeys);\n const holderSet = new Set(holder);\n const data = _toConsumableArray(isLeftDirection ? leftDataSource : rightDataSource).filter(item => !(item === null || item === void 0 ? void 0 : item.disabled));\n const currentSelectedIndex = data.findIndex(item => item.key === selectedKey);\n // multiple select by hold down the shift key\n if (multiple && holder.length > 0) {\n handleMultipleSelect(direction, data, holderSet, currentSelectedIndex);\n } else {\n handleSingleSelect(direction, holderSet, selectedKey, checked, currentSelectedIndex);\n }\n const holderArr = Array.from(holderSet);\n handleSelectChange(direction, holderArr);\n if (!props.selectedKeys) {\n setStateKeys(direction, holderArr);\n }\n };\n const onLeftItemSelect = (selectedKey, checked, e) => {\n onItemSelect('left', selectedKey, checked, e === null || e === void 0 ? void 0 : e.shiftKey);\n };\n const onRightItemSelect = (selectedKey, checked, e) => {\n onItemSelect('right', selectedKey, checked, e === null || e === void 0 ? void 0 : e.shiftKey);\n };\n const onRightItemRemove = keys => {\n setStateKeys('right', []);\n onChange === null || onChange === void 0 ? void 0 : onChange(targetKeys.filter(key => !keys.includes(key)), 'left', _toConsumableArray(keys));\n };\n const handleListStyle = direction => {\n if (typeof listStyle === 'function') {\n return listStyle({\n direction\n });\n }\n return listStyle || {};\n };\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status\n } = formItemContext;\n const getLocale = transferLocale => Object.assign(Object.assign(Object.assign({}, transferLocale), {\n notFoundContent: (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Transfer')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Transfer\"\n })\n }), locale);\n const mergedStatus = getMergedStatus(status, customStatus);\n const mergedPagination = !children && pagination;\n const leftActive = targetSelectedKeys.length > 0;\n const rightActive = sourceSelectedKeys.length > 0;\n const cls = classNames(prefixCls, {\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-customize-list`]: !!children,\n [`${prefixCls}-rtl`]: dir === 'rtl'\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), transfer === null || transfer === void 0 ? void 0 : transfer.className, className, rootClassName, hashId, cssVarCls);\n const [contextLocale] = useLocale('Transfer', defaultLocale.Transfer);\n const listLocale = getLocale(contextLocale);\n const [leftTitle, rightTitle] = getTitles(listLocale);\n const mergedSelectionsIcon = selectionsIcon !== null && selectionsIcon !== void 0 ? selectionsIcon : transfer === null || transfer === void 0 ? void 0 : transfer.selectionsIcon;\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, transfer === null || transfer === void 0 ? void 0 : transfer.style), style)\n }, /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: leftTitle,\n dataSource: leftDataSource,\n filterOption: filterOption,\n style: handleListStyle('left'),\n checkedKeys: sourceSelectedKeys,\n handleFilter: leftFilter,\n handleClear: handleLeftClear,\n onItemSelect: onLeftItemSelect,\n onItemSelectAll: onLeftItemSelectAll,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleLeftScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'right' : 'left',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[0],\n pagination: mergedPagination,\n selectionsIcon: mergedSelectionsIcon\n }, listLocale)), /*#__PURE__*/React.createElement(Operation, {\n className: `${prefixCls}-operation`,\n rightActive: rightActive,\n rightArrowText: operations[0],\n moveToRight: moveToRight,\n leftActive: leftActive,\n leftArrowText: operations[1],\n moveToLeft: moveToLeft,\n style: operationStyle,\n disabled: disabled,\n direction: dir,\n oneWay: oneWay\n }), /*#__PURE__*/React.createElement(List, Object.assign({\n prefixCls: `${prefixCls}-list`,\n titleText: rightTitle,\n dataSource: rightDataSource,\n filterOption: filterOption,\n style: handleListStyle('right'),\n checkedKeys: targetSelectedKeys,\n handleFilter: rightFilter,\n handleClear: handleRightClear,\n onItemSelect: onRightItemSelect,\n onItemSelectAll: onRightItemSelectAll,\n onItemRemove: onRightItemRemove,\n render: render,\n showSearch: showSearch,\n renderList: children,\n footer: footer,\n onScroll: handleRightScroll,\n disabled: disabled,\n direction: dir === 'rtl' ? 'left' : 'right',\n showSelectAll: showSelectAll,\n selectAllLabel: selectAllLabels[1],\n showRemove: oneWay,\n pagination: mergedPagination,\n selectionsIcon: mergedSelectionsIcon\n }, listLocale))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Transfer.displayName = 'Transfer';\n}\nTransfer.List = List;\nTransfer.Search = Search;\nTransfer.Operation = Operation;\nexport default Transfer;","// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nexport default (function () {\n if (urlReg) {\n return urlReg;\n }\n var word = '[a-fA-F\\\\d:]';\n var b = function b(options) {\n return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\".concat(word, \")|(?<=\").concat(word, \")(?=\\\\s|$))\") : '';\n };\n var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n var v6seg = '[a-fA-F\\\\d]{1,4}';\n var v6List = [\"(?:\".concat(v6seg, \":){7}(?:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n \"(?:\".concat(v6seg, \":){6}(?:\").concat(v4, \"|:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::\n \"(?:\".concat(v6seg, \":){5}(?::\").concat(v4, \"|(?::\").concat(v6seg, \"){1,2}|:)\"), // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::\n \"(?:\".concat(v6seg, \":){4}(?:(?::\").concat(v6seg, \"){0,1}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,3}|:)\"), // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::\n \"(?:\".concat(v6seg, \":){3}(?:(?::\").concat(v6seg, \"){0,2}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,4}|:)\"), // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::\n \"(?:\".concat(v6seg, \":){2}(?:(?::\").concat(v6seg, \"){0,3}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,5}|:)\"), // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::\n \"(?:\".concat(v6seg, \":){1}(?:(?::\").concat(v6seg, \"){0,4}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,6}|:)\"), // 1:: 1::3:4:5:6:7:8 1::8 1::\n \"(?::(?:(?::\".concat(v6seg, \"){0,5}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,7}|:))\") // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::\n ];\n var v6Eth0 = \"(?:%[0-9a-zA-Z]{1,})?\"; // %eth0 %1\n\n var v6 = \"(?:\".concat(v6List.join('|'), \")\").concat(v6Eth0);\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n var v46Exact = new RegExp(\"(?:^\".concat(v4, \"$)|(?:^\").concat(v6, \"$)\"));\n var v4exact = new RegExp(\"^\".concat(v4, \"$\"));\n var v6exact = new RegExp(\"^\".concat(v6, \"$\"));\n var ip = function ip(options) {\n return options && options.exact ? v46Exact : new RegExp(\"(?:\".concat(b(options)).concat(v4).concat(b(options), \")|(?:\").concat(b(options)).concat(v6).concat(b(options), \")\"), 'g');\n };\n ip.v4 = function (options) {\n return options && options.exact ? v4exact : new RegExp(\"\".concat(b(options)).concat(v4).concat(b(options)), 'g');\n };\n ip.v6 = function (options) {\n return options && options.exact ? v6exact : new RegExp(\"\".concat(b(options)).concat(v6).concat(b(options)), 'g');\n };\n var protocol = \"(?:(?:[a-z]+:)?//)\";\n var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n var ipv4 = ip.v4().source;\n var ipv6 = ip.v6().source;\n var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n var port = '(?::\\\\d{2,5})?';\n var path = '(?:[/?#][^\\\\s\"]*)?';\n var regex = \"(?:\".concat(protocol, \"|www\\\\.)\").concat(auth, \"(?:localhost|\").concat(ipv4, \"|\").concat(ipv6, \"|\").concat(host).concat(domain).concat(tld, \")\").concat(port).concat(path);\n urlReg = new RegExp(\"(?:^\".concat(regex, \"$)\"), 'i');\n return urlReg;\n});","module.exports = __webpack_public_path__ + \"84270e22d4439d15b0d8f392d1338d8e.js\";","module.exports = __webpack_public_path__ + \"393edb0552508a3e36dd3922b33fe642.js\";","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariants from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport { useToken } from '../theme/internal';\nimport mergedBuiltinPlacements from './mergedBuiltinPlacements';\nimport useStyle from './style';\nimport useIcons from './useIcons';\nimport useShowArrow from './useShowArrow';\nconst SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nconst InternalSelect = (props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n bordered,\n className,\n rootClassName,\n getPopupContainer,\n popupClassName,\n dropdownClassName,\n listHeight = 256,\n placement,\n listItemHeight: customListItemHeight,\n size: customizeSize,\n disabled: customDisabled,\n notFoundContent,\n status: customStatus,\n builtinPlacements,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n direction: propDirection,\n style,\n allowClear,\n variant: customizeVariant,\n dropdownStyle,\n transitionName,\n tagRender,\n maxCount\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"className\", \"rootClassName\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"direction\", \"style\", \"allowClear\", \"variant\", \"dropdownStyle\", \"transitionName\", \"tagRender\", \"maxCount\"]);\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n renderEmpty,\n direction: contextDirection,\n virtual,\n popupMatchSelectWidth: contextPopupMatchSelectWidth,\n popupOverflow,\n select\n } = React.useContext(ConfigContext);\n const [, token] = useToken();\n const listItemHeight = customListItemHeight !== null && customListItemHeight !== void 0 ? customListItemHeight : token === null || token === void 0 ? void 0 : token.controlHeight;\n const prefixCls = getPrefixCls('select', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const direction = propDirection !== null && propDirection !== void 0 ? propDirection : contextDirection;\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const [variant, enableVariantCls] = useVariants('select', customizeVariant, bordered);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const mode = React.useMemo(() => {\n const {\n mode: m\n } = props;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n const isMultiple = mode === 'multiple' || mode === 'tags';\n const showSuffixIcon = useShowArrow(props.suffixIcon, props.showArrow);\n const mergedPopupMatchSelectWidth = (_a = popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : contextPopupMatchSelectWidth;\n // ===================== Form Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n let mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Select\"\n });\n }\n // ===================== Icons =====================\n const {\n suffixIcon,\n itemIcon,\n removeIcon,\n clearIcon\n } = useIcons(Object.assign(Object.assign({}, rest), {\n multiple: isMultiple,\n hasFeedback,\n feedbackIcon,\n showSuffixIcon,\n prefixCls,\n componentName: 'Select'\n }));\n const mergedAllowClear = allowClear === true ? {\n clearIcon\n } : allowClear;\n const selectProps = omit(rest, ['suffixIcon', 'itemIcon']);\n const mergedPopupClassName = classNames(popupClassName || dropdownClassName, {\n [`${prefixCls}-dropdown-${direction}`]: direction === 'rtl'\n }, rootClassName, cssVarCls, rootCls, hashId);\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const mergedClassName = classNames({\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${variant}`]: enableVariantCls,\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, select === null || select === void 0 ? void 0 : select.className, className, rootClassName, cssVarCls, rootCls, hashId);\n // ===================== Placement =====================\n const memoPlacement = React.useMemo(() => {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }, [placement, direction]);\n // ====================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Select');\n warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'deprecated', '`showArrow` is deprecated which will be removed in next major version. It will be a default behavior, you can hide it by setting `suffixIcon` to null.') : void 0;\n warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof maxCount !== 'undefined' && !isMultiple), 'usage', '`maxCount` only works with mode `multiple` or `tags`') : void 0;\n }\n // ====================== zIndex =========================\n const [zIndex] = useZIndex('SelectLike', dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.zIndex);\n // ====================== Render =======================\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcSelect, Object.assign({\n ref: ref,\n virtual: virtual,\n showSearch: select === null || select === void 0 ? void 0 : select.showSearch\n }, selectProps, {\n style: Object.assign(Object.assign({}, select === null || select === void 0 ? void 0 : select.style), style),\n dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n builtinPlacements: mergedBuiltinPlacements(builtinPlacements, popupOverflow),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: memoPlacement,\n direction: direction,\n suffixIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n allowClear: mergedAllowClear,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: mergedPopupClassName,\n disabled: mergedDisabled,\n dropdownStyle: Object.assign(Object.assign({}, dropdownStyle), {\n zIndex\n }),\n maxCount: isMultiple ? maxCount : undefined,\n tagRender: isMultiple ? tagRender : undefined\n })));\n};\nif (process.env.NODE_ENV !== 'production') {\n InternalSelect.displayName = 'Select';\n}\nconst Select = /*#__PURE__*/React.forwardRef(InternalSelect);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Select);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nexport default Select;","import { useEffect, useMemo, useState } from 'react';\nexport var ZoomState;\n(function (ZoomState) {\n ZoomState[\"ZOOMING_IN\"] = \"ZOOMING_IN\";\n ZoomState[\"ZOOMING_OUT\"] = \"ZOOMING_OUT\";\n})(ZoomState || (ZoomState = {}));\nvar usePinchZoom = function (ref) {\n var cacheRef = useMemo(function () { return ({\n evCache: [],\n prevDiff: -1,\n }); }, [ref.current]);\n var _a = useState(), zoomingState = _a[0], setZoomingState = _a[1];\n var pointermove_handler = function (ev) {\n // This function implements a 2-pointer horizontal pinch/zoom gesture.\n //\n // If the distance between the two pointers has increased (zoom in),\n // the target element's background is changed to 'pink' and if the\n // distance is decreasing (zoom out), the color is changed to 'lightblue'.\n //\n // This function sets the target element's border to 'dashed' to visually\n // indicate the pointer's target received a move event.\n // Find this event in the cache and update its record with this event\n for (var i = 0; i < cacheRef.evCache.length; i++) {\n if (ev.pointerId == cacheRef.evCache[i].pointerId) {\n cacheRef.evCache[i] = ev;\n break;\n }\n }\n // If two pointers are down, check for pinch gestures\n if (cacheRef.evCache.length == 2) {\n // console.log(prevDiff)\n // Calculate the distance between the two pointers\n var curDiff = Math.abs(cacheRef.evCache[0].clientX - cacheRef.evCache[1].clientX);\n if (cacheRef.prevDiff > 0) {\n if (curDiff > cacheRef.prevDiff) {\n // The distance between the two pointers has increased\n setZoomingState([ZoomState.ZOOMING_IN, curDiff]);\n }\n if (curDiff < cacheRef.prevDiff) {\n // The distance between the two pointers has decreased\n setZoomingState([ZoomState.ZOOMING_OUT, curDiff]);\n }\n }\n // Cache the distance for the next move event\n cacheRef.prevDiff = curDiff;\n }\n };\n var pointerdown_handler = function (ev) {\n // The pointerdown event signals the start of a touch interaction.\n // This event is cached to support 2-finger gestures\n cacheRef.evCache.push(ev);\n // console.log('pointerDown', ev);\n };\n var pointerup_handler = function (ev) {\n // Remove this pointer from the cache and reset the target's\n // background and border\n remove_event(ev);\n // If the number of pointers down is less than two then reset diff tracker\n if (cacheRef.evCache.length < 2) {\n cacheRef.prevDiff = -1;\n }\n };\n var remove_event = function (ev) {\n // Remove this event from the target's cache\n for (var i = 0; i < cacheRef.evCache.length; i++) {\n if (cacheRef.evCache[i].pointerId == ev.pointerId) {\n cacheRef.evCache.splice(i, 1);\n break;\n }\n }\n };\n useEffect(function () {\n if (ref === null || ref === void 0 ? void 0 : ref.current) {\n ref.current.onpointerdown = pointerdown_handler;\n ref.current.onpointermove = pointermove_handler;\n ref.current.onpointerup = pointerup_handler;\n ref.current.onpointercancel = pointerup_handler;\n ref.current.onpointerout = pointerup_handler;\n ref.current.onpointerleave = pointerup_handler;\n }\n }, [ref === null || ref === void 0 ? void 0 : ref.current]);\n return zoomingState\n ? { zoomingState: zoomingState[0], pinchState: zoomingState[1] }\n : { zoomingState: null, pinchState: 0 };\n};\nexport default usePinchZoom;\n","module.exports = __webpack_public_path__ + \"90812d89181b698975cbb081adcbbcb0.js\";","/**\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 { useOpQuery } from './useOpQuery';\n\nexport const useHasFeatures = (\n orgId: number,\n featureCodes: string | string[] = [],\n) => {\n const { data: org, isLoading } = useOpQuery({\n apiEndpointName: 'describeOrg',\n parameters: [orgId],\n select: (heliumResponse) => heliumResponse?.json?.data,\n });\n\n const featureCodesArray = Array.isArray(featureCodes)\n ? featureCodes\n : [featureCodes];\n\n return {\n hasFeatures: org?.enabledFeatures?.some((feature) =>\n featureCodesArray.includes(feature?.code || ''),\n ),\n isLoading,\n };\n};\n","import { format } from \"../util\";\nvar range = function range(rule, value, source, errors, options) {\n var len = typeof rule.len === 'number';\n var min = typeof rule.min === 'number';\n var max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var val = value;\n var key = null;\n var num = typeof value === 'number';\n var str = typeof value === 'string';\n var arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n }\n};\nexport default range;","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\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\nexport default isArrayLike;\n","import createHTMLMediaHook from './factory/createHTMLMediaHook';\nvar useAudio = createHTMLMediaHook('audio');\nexport default useAudio;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _WarningOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/WarningOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar WarningOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _WarningOutlined.default\n }));\n};\n/**![warning](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ2NCA3MjBhNDggNDggMCAxMDk2IDAgNDggNDggMCAxMC05NiAwem0xNi0zMDR2MTg0YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDE2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHptNDc1LjcgNDQwbC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzgzLjUtMjcuOUw1MTIgMjM5LjlsMzM5LjggNTg4LjJIMTcyLjJ6IiAvPjwvc3ZnPg==) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(WarningOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"WarningOutlined\";\n}\nvar _default = RefIcon;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-input,.op-password-input,.op-text-area-input,.op-search-input{box-shadow:none !important}.op-input:hover:not(:focus),.op-password-input:hover:not(:focus),.op-text-area-input:hover:not(:focus),.op-search-input:hover:not(:focus){border-color:var(--colorTextLabel) !important}.op-input:focus,.op-password-input:focus,.op-text-area-input:focus,.op-search-input:focus{border-color:var(--colorPrimaryHover) !important}.op-input.ant-input-affix-wrapper-focused:hover,.op-password-input.ant-input-affix-wrapper-focused:hover,.op-text-area-input.ant-input-affix-wrapper-focused:hover,.op-search-input.ant-input-affix-wrapper-focused:hover{border-color:var(--colorPrimaryHover) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpInput/OpInput.scss\"],\"names\":[],\"mappings\":\"AAAA,kEAIE,0BAAA,CAEA,0IACE,6CAAA,CAGF,0FACE,gDAAA,CAIF,0NACE,gDAAA\",\"sourcesContent\":[\".op-input,\\n.op-password-input,\\n.op-text-area-input,\\n.op-search-input {\\n box-shadow: none !important;\\n\\n &:hover:not(:focus) {\\n border-color: var(--colorTextLabel) !important;\\n }\\n\\n &:focus {\\n border-color: var(--colorPrimaryHover) !important;\\n }\\n\\n // Need this for unqiue password input setup from antd\\n &.ant-input-affix-wrapper-focused:hover {\\n border-color: var(--colorPrimaryHover) !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _LoadingOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/LoadingOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar LoadingOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _LoadingOutlined.default\n }));\n};\n/**![loading](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6IiAvPjwvc3ZnPg==) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(LoadingOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"LoadingOutlined\";\n}\nvar _default = RefIcon;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isSymbol;\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.encodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.encodePolyfill(input)\n : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.decodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.decodePolyfill(input)\n : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(decodeUTF8(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: 'span',\n };\n\n return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n profile_chunk: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n\n// DO NOT register functions in useEffect cleanup function, or functions that registered will never be called.\nvar useCleanupRegister = function useCleanupRegister(deps) {\n var effectCleanups = [];\n var cleanupFlag = false;\n function register(fn) {\n if (cleanupFlag) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '[Ant Design CSS-in-JS] You are registering a cleanup function after unmount, which will not have any effect.');\n }\n return;\n }\n effectCleanups.push(fn);\n }\n React.useEffect(function () {\n // Compatible with strict mode\n cleanupFlag = false;\n return function () {\n cleanupFlag = true;\n if (effectCleanups.length) {\n effectCleanups.forEach(function (fn) {\n return fn();\n });\n }\n };\n }, deps);\n return register;\n};\nvar useRun = function useRun() {\n return function (fn) {\n fn();\n };\n};\n\n// Only enable register in React 18\nvar useEffectCleanupRegister = typeof useInsertionEffect !== 'undefined' ? useCleanupRegister : useRun;\nexport default useEffectCleanupRegister;","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BellOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z\" } }] }, \"name\": \"bell\", \"theme\": \"outlined\" };\nexports.default = BellOutlined;\n","import { ComponentProps, ReactNode } from 'react';\nimport Radio from 'antd/es/radio';\nimport { OpInfoTooltip } from '../OpInfoTooltip/OpInfoTooltip';\n\ninterface OpRadioProps extends ComponentProps<typeof Radio> {\n tooltip?: ReactNode;\n gtm?: string;\n}\nexport const OpRadio = ({\n children,\n className = '',\n tooltip,\n gtm,\n ...radioProps\n}: OpRadioProps) => {\n return (\n <Radio\n className={`op-radio ${className}`.trim()}\n data-gtm={gtm}\n {...radioProps}\n >\n {children}\n {tooltip && <OpInfoTooltip title={tooltip} />}\n </Radio>\n );\n};\n\n/** Need to attach static properties on antd Radio to allow dot\n * notation subcomponents to work on this component as well */\nOpRadio.Group = Radio.Group;\nOpRadio.Button = Radio.Button;\n","module.exports = __webpack_public_path__ + \"8c7616f0adba6a5ac0d2f06ba4ebd696.js\";","module.exports = __webpack_public_path__ + \"59cc05504a1c823b6d4796bf6b430822.js\";","module.exports = __webpack_public_path__ + \"6a1c347ab79a93f3ac01b08c8ccfc827.js\";","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\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\nmodule.exports = baseProperty;\n","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n arrow = props.arrow,\n arrowPos = props.arrowPos;\n var _ref = arrow || {},\n className = _ref.className,\n content = _ref.content;\n var _arrowPos$x = arrowPos.x,\n x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n _arrowPos$y = arrowPos.y,\n y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = y;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = x;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n style: alignStyle\n }, content);\n}","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\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","module.exports = __webpack_public_path__ + \"e2b38a8393be2cf23f3894ace3efb1c3.js\";","import { useMemo, useState } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport { isBrowser, noop } from './misc/util';\nvar defaultState = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n};\nfunction useMeasure() {\n var _a = useState(null), element = _a[0], ref = _a[1];\n var _b = useState(defaultState), rect = _b[0], setRect = _b[1];\n var observer = useMemo(function () {\n return new window.ResizeObserver(function (entries) {\n if (entries[0]) {\n var _a = entries[0].contentRect, x = _a.x, y = _a.y, width = _a.width, height = _a.height, top_1 = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n setRect({ x: x, y: y, width: width, height: height, top: top_1, left: left, bottom: bottom, right: right });\n }\n });\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (!element)\n return;\n observer.observe(element);\n return function () {\n observer.disconnect();\n };\n }, [element]);\n return [ref, rect];\n}\nexport default isBrowser && typeof window.ResizeObserver !== 'undefined'\n ? useMeasure\n : (function () { return [noop, defaultState]; });\n","/*\n *\n * App reducer\n *\n */\n\nimport { fromJS } from 'immutable';\nimport {\n SET_ORG_USER_PROFILE_IMAGE_URL,\n SET_IDENTITY_INFO,\n SET_UPDATE_REQUIRED,\n SET_DISABLED_ROUTES,\n SET_MAINTENANCE_MODE,\n LOGIN_SUCCESS,\n SET_CURRENT_ORG_NAME,\n SET_CURRENT_ORG,\n APP_ERROR,\n SET_ORG_DROPDOWN_VISIBILITY,\n SET_LOCKDOWN_DROPDOWN_VISIBILITY,\n SET_ALERT,\n CLEAR_ALERT,\n SET_ERROR_MESSAGE,\n SET_CONFIRMATION_PROPS,\n SET_PUSH_NOTIFICATION_IS_ENABLED,\n SET_CURRENT_USER_PREFERENCES,\n SET_PREFETCHED_VIDEOCALL_AUTH,\n RESET_PREFETCHED_VIDEOCALL_AUTH,\n} from './constants';\n\nconst intercomNotificationsPermission = JSON.parse(\n localStorage.getItem('intercomNotificationsPermission'),\n);\n\n// This should be kept in sync with Helium's user preference defaults!\nexport const initialUserPreferences = {\n videoTimestamp: 'browser',\n preferredMeasurementUnits: 'metric',\n playAlarmNotificationSound: true,\n alarmNotificationSoundVolume: 1.0,\n};\n\nexport const initialStateObject = fromJS({\n alertStack: [],\n orgDropDownVisible: false,\n lockdownDropDownVisible: false,\n error: null,\n currentIdentity: null,\n currentOrg: null,\n currentParentOrgId: null,\n maintenanceMode: false,\n disabledRoutes: [],\n errorMessage: '',\n errorCta: null,\n forceRefresh: false,\n currentOrgUserImageUrl: null,\n currentIdentityInfo: {},\n loginComplete: false,\n confirmationProps: {\n open: false,\n // header: undefined,\n // content: undefined,\n // cancelButton: undefined,\n // confirmButton: undefined,\n // onCancel: undefined,\n // onConfirm: undefined,\n },\n intercomNotificationsAreEnabled: intercomNotificationsPermission\n ? intercomNotificationsPermission === 'granted'\n : true,\n prefetchedVideocallAuthForDevices: [],\n currentUserPreferences: initialUserPreferences,\n});\n\nconst initialState = fromJS(initialStateObject);\n\n/**\n * Reducer for App container.\n *\n * @param {object} state The current state\n * @param {string} action The action to apply to current state\n *\n * @returns {object} An object containing the new state\n */\nfunction appReducer(state = initialState, action) {\n switch (action.type) {\n case SET_IDENTITY_INFO:\n return state.set('currentIdentityInfo', fromJS(action.info));\n case SET_ORG_USER_PROFILE_IMAGE_URL:\n return state.set('currentOrgUserImageUrl', fromJS(action.imageUrl));\n case SET_UPDATE_REQUIRED:\n return state.set('forceRefresh', action.required);\n case SET_ERROR_MESSAGE:\n return state\n .set('errorMessage', action.message)\n .set('errorCta', action.cta);\n case SET_DISABLED_ROUTES:\n return state.set('disabledRoutes', action.routes);\n case SET_MAINTENANCE_MODE: {\n return state.set('maintenanceMode', action.on);\n }\n case SET_ALERT: {\n const alert = {\n alertType: action.alertType,\n alertIcon: action.alertIcon,\n alertButtons: action.alertButtons,\n alertMessage: action.alertMessage,\n alertHeader: action.alertHeader,\n alertId: action.alertId || state.get('alertStack').size + 1,\n alertTime: action.alertTime,\n timeout: action.timeout\n ? action.timeout\n : action.alertType === 'success'\n ? 5000\n : action.alertType === 'intercom'\n ? 30000\n : null,\n };\n return state.set(\n 'alertStack',\n state.get('alertStack').push(fromJS(alert)),\n );\n }\n case CLEAR_ALERT:\n if (action.clearAll) {\n // we want to clear them ALL\n return state.set('alertStack', initialState.get('alertStack'));\n }\n if (action.alertType) {\n // we want to clear ALL alerts of a certain type\n return state.set(\n 'alertStack',\n state\n .get('alertStack')\n .filter((alert) => alert.get('alertType') !== action.alertType),\n );\n }\n if (action.id) {\n const index = state\n .get('alertStack')\n .findIndex((alert) => alert.get('alertId') == action.id); // eslint-disable-line eqeqeq\n return index >= 0\n ? state.set('alertStack', state.get('alertStack').remove(index))\n : state;\n }\n return state.set('alertStack', fromJS([]));\n case LOGIN_SUCCESS:\n return state\n .set('error', action.errorMessage || null)\n .set('currentIdentity', action.identityId)\n .set('currentOrg', action.orgId || null)\n .set('currentOrgName', action.orgName || null)\n .set('currentOrgParentId', action.parentOrgId || null)\n .set('isLicenseBased', action.isLicenseBased)\n .set(\n 'currentUserPreferences',\n fromJS(action.currentUserPreferences || initialUserPreferences),\n )\n .set('loginComplete', true); // do this last, so that anyone waiting for selectIsLoginComplete() will only see true AFTER currentIdentity, currentOrg, etc. are already set\n case SET_CURRENT_ORG:\n return state.set('currentOrg', action.orgId);\n case SET_CURRENT_ORG_NAME:\n return state.set('currentOrgName', action.orgName);\n case APP_ERROR:\n return state.set('error', action.error);\n case SET_ORG_DROPDOWN_VISIBILITY:\n return state.set('orgDropDownVisible', !state.get('orgDropDownVisible'));\n case SET_LOCKDOWN_DROPDOWN_VISIBILITY:\n return state.set(\n 'lockdownDropDownVisible',\n !state.get('lockdownDropDownVisible'),\n );\n case SET_CONFIRMATION_PROPS: {\n return state.set('confirmationProps', fromJS(action.confirmationProps));\n }\n case SET_PUSH_NOTIFICATION_IS_ENABLED:\n return state.set(\n 'intercomNotificationsAreEnabled',\n action.intercomNotificationsAreEnabled,\n );\n case SET_CURRENT_USER_PREFERENCES:\n return state.set(\n 'currentUserPreferences',\n fromJS(action.currentUserPreferences || initialUserPreferences),\n );\n case SET_PREFETCHED_VIDEOCALL_AUTH: {\n const { opVideoDeviceId, wsUrl, token } = action;\n const currentPrefetchedDevices = state.get(\n 'prefetchedVideocallAuthForDevices',\n );\n\n // Check if we already have auth data stored for this device\n const deviceExists = currentPrefetchedDevices.some(\n (device) => device.opVideoDeviceId === opVideoDeviceId,\n );\n\n let updatedList;\n if (deviceExists) {\n // Update existing device auth data\n updatedList = currentPrefetchedDevices.map((device) =>\n device.opVideoDeviceId === opVideoDeviceId\n ? {\n ...device,\n wsUrl, // Update WebSocket URL\n token, // Update authentication token\n timeUpdated: Date.now(), // Update timestamp\n }\n : device,\n );\n } else {\n // Add new device auth data\n updatedList = [\n ...currentPrefetchedDevices,\n {\n opVideoDeviceId,\n wsUrl,\n token,\n timeUpdated: Date.now(),\n },\n ];\n }\n\n // Update state with new auth data list\n return state.set('prefetchedVideocallAuthForDevices', updatedList);\n }\n case RESET_PREFETCHED_VIDEOCALL_AUTH: {\n const { opVideoDeviceId } = action;\n\n // Get current list of devices with auth data\n const currentPrefetchedDevices = state.get(\n 'prefetchedVideocallAuthForDevices',\n );\n\n // If opVideoDeviceId is provided, remove only that specific device\n // Otherwise, remove all devices by returning an empty array\n let updatedList = [];\n if (opVideoDeviceId) {\n updatedList = currentPrefetchedDevices.filter(\n (device) => device.opVideoDeviceId !== opVideoDeviceId,\n );\n }\n\n // Update state with filtered list (or empty list if clearing all)\n return state.set('prefetchedVideocallAuthForDevices', updatedList);\n }\n default:\n return state;\n }\n}\n\nexport default appReducer;\n","'use strict';\n\nexports.addon = function (renderer) {\n // CSSOM support only browser environment.\n if (!renderer.client) return;\n\n if (process.env.NODE_ENV !== 'production') {\n require('./__dev__/warnOnMissingDependencies')('cssom', renderer, ['sh']);\n }\n\n // Style sheet for media queries.\n document.head.appendChild(renderer.msh = document.createElement('style'));\n\n renderer.createRule = function (selector, prelude) {\n var rawCss = selector + '{}';\n if (prelude) rawCss = prelude + '{' + rawCss + '}';\n var sheet = prelude ? renderer.msh.sheet : renderer.sh.sheet;\n var index = sheet.insertRule(rawCss, sheet.cssRules.length);\n var rule = (sheet.cssRules || sheet.rules)[index];\n\n // Keep track of `index` where rule was inserted in the sheet. This is\n // needed for rule deletion.\n rule.index = index;\n\n if (prelude) {\n // If rule has media query (it has prelude), move style (CSSStyleDeclaration)\n // object to the \"top\" to normalize it with a rule without the media\n // query, so that both rules have `.style` property available.\n var selectorRule = (rule.cssRules || rule.rules)[0];\n rule.style = selectorRule.style;\n rule.styleMap = selectorRule.styleMap;\n }\n\n return rule;\n };\n};\n","import * as React from 'react';\nconst RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport const RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport const RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\n// styles from RadioGroup only\nconst getGroupRadioStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n fontSize: 0,\n // RTL\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [`&${groupPrefixCls}-block`]: {\n display: 'flex'\n },\n [`${antCls}-badge ${antCls}-badge-count`]: {\n zIndex: 1\n },\n [`> ${antCls}-badge:not(:first-child) > ${antCls}-button-wrapper`]: {\n borderInlineStart: 'none'\n }\n })\n };\n};\n// Styles from radio-wrapper\nconst getRadioBasicStyle = token => {\n const {\n componentCls,\n wrapperMarginInlineEnd,\n colorPrimary,\n radioSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOutCirc,\n colorBgContainer,\n colorBorder,\n lineWidth,\n colorBgContainerDisabled,\n colorTextDisabled,\n paddingXS,\n dotColorDisabled,\n lineType,\n radioColor,\n radioBgColor,\n calc\n } = token;\n const radioInnerPrefixCls = `${componentCls}-inner`;\n const dotPadding = 4;\n const radioDotDisabledSize = calc(radioSize).sub(calc(dotPadding).mul(2));\n const radioSizeCalc = calc(1).mul(radioSize).equal({\n unit: true\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n marginInlineStart: 0,\n marginInlineEnd: wrapperMarginInlineEnd,\n cursor: 'pointer',\n // RTL\n [`&${componentCls}-wrapper-rtl`]: {\n direction: 'rtl'\n },\n '&-disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n },\n '&::after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: '\"\\\\a0\"'\n },\n '&-block': {\n flex: 1,\n justifyContent: 'center'\n },\n // hashId 在 wrapper 上,只能铺平\n [`${componentCls}-checked::after`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n border: `${unit(lineWidth)} ${lineType} ${colorPrimary}`,\n borderRadius: '50%',\n visibility: 'hidden',\n opacity: 0,\n content: '\"\"'\n },\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n outline: 'none',\n cursor: 'pointer',\n alignSelf: 'center',\n borderRadius: '50%'\n }),\n [`${componentCls}-wrapper:hover &,\n &:hover ${radioInnerPrefixCls}`]: {\n borderColor: colorPrimary\n },\n [`${componentCls}-input:focus-visible + ${radioInnerPrefixCls}`]: Object.assign({}, genFocusOutline(token)),\n [`${componentCls}:hover::after, ${componentCls}-wrapper:hover &::after`]: {\n visibility: 'visible'\n },\n [`${componentCls}-inner`]: {\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: '50%',\n display: 'block',\n width: radioSizeCalc,\n height: radioSizeCalc,\n marginBlockStart: calc(1).mul(radioSize).div(-2).equal({\n unit: true\n }),\n marginInlineStart: calc(1).mul(radioSize).div(-2).equal({\n unit: true\n }),\n backgroundColor: radioColor,\n borderBlockStart: 0,\n borderInlineStart: 0,\n borderRadius: radioSizeCalc,\n transform: 'scale(0)',\n opacity: 0,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`,\n content: '\"\"'\n },\n boxSizing: 'border-box',\n position: 'relative',\n insetBlockStart: 0,\n insetInlineStart: 0,\n display: 'block',\n width: radioSizeCalc,\n height: radioSizeCalc,\n backgroundColor: colorBgContainer,\n borderColor: colorBorder,\n borderStyle: 'solid',\n borderWidth: lineWidth,\n borderRadius: '50%',\n transition: `all ${motionDurationMid}`\n },\n [`${componentCls}-input`]: {\n position: 'absolute',\n inset: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0\n },\n // 选中状态\n [`${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n borderColor: colorPrimary,\n backgroundColor: radioBgColor,\n '&::after': {\n transform: `scale(${token.calc(token.dotSize).div(radioSize).equal()})`,\n opacity: 1,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`\n }\n }\n },\n [`${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [radioInnerPrefixCls]: {\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&::after': {\n backgroundColor: dotColorDisabled\n }\n },\n [`${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [`${componentCls}-disabled + span`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n '&::after': {\n transform: `scale(${calc(radioDotDisabledSize).div(radioSize).equal()})`\n }\n }\n }\n },\n [`span${componentCls} + *`]: {\n paddingInlineStart: paddingXS,\n paddingInlineEnd: paddingXS\n }\n })\n };\n};\n// Styles from radio-button\nconst getRadioButtonStyle = token => {\n const {\n buttonColor,\n controlHeight,\n componentCls,\n lineWidth,\n lineType,\n colorBorder,\n motionDurationSlow,\n motionDurationMid,\n buttonPaddingInline,\n fontSize,\n buttonBg,\n fontSizeLG,\n controlHeightLG,\n controlHeightSM,\n paddingXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusLG,\n buttonCheckedBg,\n buttonSolidCheckedColor,\n colorTextDisabled,\n colorBgContainerDisabled,\n buttonCheckedBgDisabled,\n buttonCheckedColorDisabled,\n colorPrimary,\n colorPrimaryHover,\n colorPrimaryActive,\n buttonSolidCheckedBg,\n buttonSolidCheckedHoverBg,\n buttonSolidCheckedActiveBg,\n calc\n } = token;\n return {\n [`${componentCls}-button-wrapper`]: {\n position: 'relative',\n display: 'inline-block',\n height: controlHeight,\n margin: 0,\n paddingInline: buttonPaddingInline,\n paddingBlock: 0,\n color: buttonColor,\n fontSize,\n lineHeight: unit(calc(controlHeight).sub(calc(lineWidth).mul(2)).equal()),\n background: buttonBg,\n border: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n borderBlockStartWidth: calc(lineWidth).add(0.02).equal(),\n borderInlineStartWidth: 0,\n borderInlineEndWidth: lineWidth,\n cursor: 'pointer',\n transition: [`color ${motionDurationMid}`, `background ${motionDurationMid}`, `box-shadow ${motionDurationMid}`].join(','),\n a: {\n color: buttonColor\n },\n [`> ${componentCls}-button`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: -1,\n width: '100%',\n height: '100%'\n },\n '&:not(:first-child)': {\n '&::before': {\n position: 'absolute',\n insetBlockStart: calc(lineWidth).mul(-1).equal(),\n insetInlineStart: calc(lineWidth).mul(-1).equal(),\n display: 'block',\n boxSizing: 'content-box',\n width: 1,\n height: '100%',\n paddingBlock: lineWidth,\n paddingInline: 0,\n backgroundColor: colorBorder,\n transition: `background-color ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n '&:first-child': {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n borderStartStartRadius: borderRadius,\n borderEndStartRadius: borderRadius\n },\n '&:last-child': {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n '&:first-child:last-child': {\n borderRadius\n },\n [`${componentCls}-group-large &`]: {\n height: controlHeightLG,\n fontSize: fontSizeLG,\n lineHeight: unit(calc(controlHeightLG).sub(calc(lineWidth).mul(2)).equal()),\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderEndStartRadius: borderRadiusLG\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n }\n },\n [`${componentCls}-group-small &`]: {\n height: controlHeightSM,\n paddingInline: calc(paddingXS).sub(lineWidth).equal(),\n paddingBlock: 0,\n lineHeight: unit(calc(controlHeightSM).sub(calc(lineWidth).mul(2)).equal()),\n '&:first-child': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover': {\n position: 'relative',\n color: colorPrimary\n },\n '&:has(:focus-visible)': Object.assign({}, genFocusOutline(token)),\n [`${componentCls}-inner, input[type='checkbox'], input[type='radio']`]: {\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n },\n [`&-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n zIndex: 1,\n color: colorPrimary,\n background: buttonCheckedBg,\n borderColor: colorPrimary,\n '&::before': {\n backgroundColor: colorPrimary\n },\n '&:first-child': {\n borderColor: colorPrimary\n },\n '&:hover': {\n color: colorPrimaryHover,\n borderColor: colorPrimaryHover,\n '&::before': {\n backgroundColor: colorPrimaryHover\n }\n },\n '&:active': {\n color: colorPrimaryActive,\n borderColor: colorPrimaryActive,\n '&::before': {\n backgroundColor: colorPrimaryActive\n }\n }\n },\n [`${componentCls}-group-solid &-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedBg,\n borderColor: buttonSolidCheckedBg,\n '&:hover': {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedHoverBg,\n borderColor: buttonSolidCheckedHoverBg\n },\n '&:active': {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedActiveBg,\n borderColor: buttonSolidCheckedActiveBg\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&:first-child, &:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder\n }\n },\n [`&-disabled${componentCls}-button-wrapper-checked`]: {\n color: buttonCheckedColorDisabled,\n backgroundColor: buttonCheckedBgDisabled,\n borderColor: colorBorder,\n boxShadow: 'none'\n },\n '&-block': {\n flex: 1,\n textAlign: 'center'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n wireframe,\n padding,\n marginXS,\n lineWidth,\n fontSizeLG,\n colorText,\n colorBgContainer,\n colorTextDisabled,\n controlItemBgActiveDisabled,\n colorTextLightSolid,\n colorPrimary,\n colorPrimaryHover,\n colorPrimaryActive,\n colorWhite\n } = token;\n const dotPadding = 4; // Fixed value\n const radioSize = fontSizeLG;\n const radioDotSize = wireframe ? radioSize - dotPadding * 2 : radioSize - (dotPadding + lineWidth) * 2;\n return {\n // Radio\n radioSize,\n dotSize: radioDotSize,\n dotColorDisabled: colorTextDisabled,\n // Radio buttons\n buttonSolidCheckedColor: colorTextLightSolid,\n buttonSolidCheckedBg: colorPrimary,\n buttonSolidCheckedHoverBg: colorPrimaryHover,\n buttonSolidCheckedActiveBg: colorPrimaryActive,\n buttonBg: colorBgContainer,\n buttonCheckedBg: colorBgContainer,\n buttonColor: colorText,\n buttonCheckedBgDisabled: controlItemBgActiveDisabled,\n buttonCheckedColorDisabled: colorTextDisabled,\n buttonPaddingInline: padding - lineWidth,\n wrapperMarginInlineEnd: marginXS,\n // internal\n radioColor: wireframe ? colorPrimary : colorWhite,\n radioBgColor: wireframe ? colorBgContainer : colorPrimary\n };\n};\nexport default genStyleHooks('Radio', token => {\n const {\n controlOutline,\n controlOutlineWidth\n } = token;\n const radioFocusShadow = `0 0 0 ${unit(controlOutlineWidth)} ${controlOutline}`;\n const radioButtonFocusShadow = radioFocusShadow;\n const radioToken = mergeToken(token, {\n radioFocusShadow,\n radioButtonFocusShadow\n });\n return [getGroupRadioStyle(radioToken), getRadioBasicStyle(radioToken), getRadioButtonStyle(radioToken)];\n}, prepareComponentToken, {\n unitless: {\n radioSize: true,\n dotSize: true\n }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemInputContext } from '../form/context';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nimport useStyle from './style';\nconst InternalRadio = (props, ref) => {\n var _a, _b;\n const groupContext = React.useContext(RadioGroupContext);\n const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n const {\n getPrefixCls,\n direction,\n radio\n } = React.useContext(ConfigContext);\n const innerRef = React.useRef(null);\n const mergedRef = composeRef(ref, innerRef);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Radio');\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'usage', '`optionType` is only support in Radio.Group.') : void 0;\n }\n const onChange = e => {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n style,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"style\", \"title\"]);\n const radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n const isButtonType = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button';\n const prefixCls = isButtonType ? `${radioPrefixCls}-button` : radioPrefixCls;\n // Style\n const rootCls = useCSSVarCls(radioPrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(radioPrefixCls, rootCls);\n const radioProps = Object.assign({}, restProps);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n }\n radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n const wrapperClassString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput,\n [`${prefixCls}-wrapper-block`]: !!(groupContext === null || groupContext === void 0 ? void 0 : groupContext.block)\n }, radio === null || radio === void 0 ? void 0 : radio.className, className, rootClassName, hashId, cssVarCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n component: \"Radio\",\n disabled: radioProps.disabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: wrapperClassString,\n style: Object.assign(Object.assign({}, radio === null || radio === void 0 ? void 0 : radio.style), style),\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n title: title\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, radioProps, {\n className: classNames(radioProps.className, {\n [TARGET_CLS]: !isButtonType\n }),\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)));\n};\nconst Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nimport useStyle from './style';\nconst RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n options,\n buttonStyle = 'outline',\n disabled,\n children,\n size: customizeSize,\n style,\n id,\n optionType,\n name,\n defaultValue,\n value: customizedValue,\n block = false,\n onChange,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur\n } = props;\n const [value, setValue] = useMergedState(defaultValue, {\n value: customizedValue\n });\n const onRadioChange = React.useCallback(event => {\n const lastValue = value;\n const val = event.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n if (val !== lastValue) {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n }\n }, [value, setValue, onChange]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n let childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: `radio-group-value-options-${option.value}`,\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n title: option.title,\n style: option.style,\n id: option.id,\n required: option.required\n }, option.label);\n });\n }\n const mergedSize = useSize(customizeSize);\n const classString = classNames(groupPrefixCls, `${groupPrefixCls}-${buttonStyle}`, {\n [`${groupPrefixCls}-${mergedSize}`]: mergedSize,\n [`${groupPrefixCls}-rtl`]: direction === 'rtl',\n [`${groupPrefixCls}-block`]: block\n }, className, rootClassName, hashId, cssVarCls, rootCls);\n const memoizedValue = React.useMemo(() => ({\n onChange: onRadioChange,\n value,\n disabled,\n name,\n optionType,\n block\n }), [onRadioChange, value, disabled, name, optionType, block]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, pickAttrs(props, {\n aria: true,\n data: true\n }), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: memoizedValue\n }, childrenToRender)));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nconst RadioButton = (props, ref) => {\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls\n } = props,\n radioProps = __rest(props, [\"prefixCls\"]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, Object.assign({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","\"use client\";\n\nimport Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nconst Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","var cookie = {};\n\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\nvar hasRequiredCookie;\n\nfunction requireCookie () {\n\tif (hasRequiredCookie) return cookie;\n\thasRequiredCookie = 1;\n\n\t/**\n\t * Module exports.\n\t * @public\n\t */\n\n\tcookie.parse = parse;\n\tcookie.serialize = serialize;\n\n\t/**\n\t * Module variables.\n\t * @private\n\t */\n\n\tvar __toString = Object.prototype.toString;\n\tvar __hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\t/**\n\t * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n\t * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n\t * which has been replaced by the token definition in RFC 7230 appendix B.\n\t *\n\t * cookie-name = token\n\t * token = 1*tchar\n\t * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n\t * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n\t * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n\t */\n\n\tvar cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\n\t/**\n\t * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n\t *\n\t * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n\t * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n\t * ; US-ASCII characters excluding CTLs,\n\t * ; whitespace DQUOTE, comma, semicolon,\n\t * ; and backslash\n\t */\n\n\tvar cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n\n\t/**\n\t * RegExp to match domain-value in RFC 6265 sec 4.1.1\n\t *\n\t * domain-value = <subdomain>\n\t * ; defined in [RFC1034], Section 3.5, as\n\t * ; enhanced by [RFC1123], Section 2.1\n\t * <subdomain> = <label> | <subdomain> \".\" <label>\n\t * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n\t * Labels must be 63 characters or less.\n\t * 'let-dig' not 'letter' in the first char, per RFC1123\n\t * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n\t * <let-dig-hyp> = <let-dig> | \"-\"\n\t * <let-dig> = <letter> | <digit>\n\t * <letter> = any one of the 52 alphabetic characters A through Z in\n\t * upper case and a through z in lower case\n\t * <digit> = any one of the ten digits 0 through 9\n\t *\n\t * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n\t *\n\t * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n\t * character is not permitted, but a trailing %x2E (\".\"), if present, will\n\t * cause the user agent to ignore the attribute.)\n\t */\n\n\tvar domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\n\t/**\n\t * RegExp to match path-value in RFC 6265 sec 4.1.1\n\t *\n\t * path-value = <any CHAR except CTLs or \";\">\n\t * CHAR = %x01-7F\n\t * ; defined in RFC 5234 appendix B.1\n\t */\n\n\tvar pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\n\t/**\n\t * Parse a cookie header.\n\t *\n\t * Parse the given cookie header string into an object\n\t * The object has the various cookies as keys(names) => values\n\t *\n\t * @param {string} str\n\t * @param {object} [opt]\n\t * @return {object}\n\t * @public\n\t */\n\n\tfunction parse(str, opt) {\n\t if (typeof str !== 'string') {\n\t throw new TypeError('argument str must be a string');\n\t }\n\n\t var obj = {};\n\t var len = str.length;\n\t // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n\t if (len < 2) return obj;\n\n\t var dec = (opt && opt.decode) || decode;\n\t var index = 0;\n\t var eqIdx = 0;\n\t var endIdx = 0;\n\n\t do {\n\t eqIdx = str.indexOf('=', index);\n\t if (eqIdx === -1) break; // No more cookie pairs.\n\n\t endIdx = str.indexOf(';', index);\n\n\t if (endIdx === -1) {\n\t endIdx = len;\n\t } else if (eqIdx > endIdx) {\n\t // backtrack on prior semicolon\n\t index = str.lastIndexOf(';', eqIdx - 1) + 1;\n\t continue;\n\t }\n\n\t var keyStartIdx = startIndex(str, index, eqIdx);\n\t var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n\t var key = str.slice(keyStartIdx, keyEndIdx);\n\n\t // only assign once\n\t if (!__hasOwnProperty.call(obj, key)) {\n\t var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n\t var valEndIdx = endIndex(str, endIdx, valStartIdx);\n\n\t if (str.charCodeAt(valStartIdx) === 0x22 /* \" */ && str.charCodeAt(valEndIdx - 1) === 0x22 /* \" */) {\n\t valStartIdx++;\n\t valEndIdx--;\n\t }\n\n\t var val = str.slice(valStartIdx, valEndIdx);\n\t obj[key] = tryDecode(val, dec);\n\t }\n\n\t index = endIdx + 1;\n\t } while (index < len);\n\n\t return obj;\n\t}\n\n\tfunction startIndex(str, index, max) {\n\t do {\n\t var code = str.charCodeAt(index);\n\t if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) return index;\n\t } while (++index < max);\n\t return max;\n\t}\n\n\tfunction endIndex(str, index, min) {\n\t while (index > min) {\n\t var code = str.charCodeAt(--index);\n\t if (code !== 0x20 /* */ && code !== 0x09 /* \\t */) return index + 1;\n\t }\n\t return min;\n\t}\n\n\t/**\n\t * Serialize data into a cookie header.\n\t *\n\t * Serialize a name value pair into a cookie string suitable for\n\t * http headers. An optional options object specifies cookie parameters.\n\t *\n\t * serialize('foo', 'bar', { httpOnly: true })\n\t * => \"foo=bar; httpOnly\"\n\t *\n\t * @param {string} name\n\t * @param {string} val\n\t * @param {object} [opt]\n\t * @return {string}\n\t * @public\n\t */\n\n\tfunction serialize(name, val, opt) {\n\t var enc = (opt && opt.encode) || encodeURIComponent;\n\n\t if (typeof enc !== 'function') {\n\t throw new TypeError('option encode is invalid');\n\t }\n\n\t if (!cookieNameRegExp.test(name)) {\n\t throw new TypeError('argument name is invalid');\n\t }\n\n\t var value = enc(val);\n\n\t if (!cookieValueRegExp.test(value)) {\n\t throw new TypeError('argument val is invalid');\n\t }\n\n\t var str = name + '=' + value;\n\t if (!opt) return str;\n\n\t if (null != opt.maxAge) {\n\t var maxAge = Math.floor(opt.maxAge);\n\n\t if (!isFinite(maxAge)) {\n\t throw new TypeError('option maxAge is invalid')\n\t }\n\n\t str += '; Max-Age=' + maxAge;\n\t }\n\n\t if (opt.domain) {\n\t if (!domainValueRegExp.test(opt.domain)) {\n\t throw new TypeError('option domain is invalid');\n\t }\n\n\t str += '; Domain=' + opt.domain;\n\t }\n\n\t if (opt.path) {\n\t if (!pathValueRegExp.test(opt.path)) {\n\t throw new TypeError('option path is invalid');\n\t }\n\n\t str += '; Path=' + opt.path;\n\t }\n\n\t if (opt.expires) {\n\t var expires = opt.expires;\n\n\t if (!isDate(expires) || isNaN(expires.valueOf())) {\n\t throw new TypeError('option expires is invalid');\n\t }\n\n\t str += '; Expires=' + expires.toUTCString();\n\t }\n\n\t if (opt.httpOnly) {\n\t str += '; HttpOnly';\n\t }\n\n\t if (opt.secure) {\n\t str += '; Secure';\n\t }\n\n\t if (opt.partitioned) {\n\t str += '; Partitioned';\n\t }\n\n\t if (opt.priority) {\n\t var priority = typeof opt.priority === 'string'\n\t ? opt.priority.toLowerCase() : opt.priority;\n\n\t switch (priority) {\n\t case 'low':\n\t str += '; Priority=Low';\n\t break\n\t case 'medium':\n\t str += '; Priority=Medium';\n\t break\n\t case 'high':\n\t str += '; Priority=High';\n\t break\n\t default:\n\t throw new TypeError('option priority is invalid')\n\t }\n\t }\n\n\t if (opt.sameSite) {\n\t var sameSite = typeof opt.sameSite === 'string'\n\t ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n\t switch (sameSite) {\n\t case true:\n\t str += '; SameSite=Strict';\n\t break;\n\t case 'lax':\n\t str += '; SameSite=Lax';\n\t break;\n\t case 'strict':\n\t str += '; SameSite=Strict';\n\t break;\n\t case 'none':\n\t str += '; SameSite=None';\n\t break;\n\t default:\n\t throw new TypeError('option sameSite is invalid');\n\t }\n\t }\n\n\t return str;\n\t}\n\n\t/**\n\t * URL-decode string value. Optimized to skip native call when no %.\n\t *\n\t * @param {string} str\n\t * @returns {string}\n\t */\n\n\tfunction decode (str) {\n\t return str.indexOf('%') !== -1\n\t ? decodeURIComponent(str)\n\t : str\n\t}\n\n\t/**\n\t * Determine if value is a Date.\n\t *\n\t * @param {*} val\n\t * @private\n\t */\n\n\tfunction isDate (val) {\n\t return __toString.call(val) === '[object Date]';\n\t}\n\n\t/**\n\t * Try decoding a string using a decoding function.\n\t *\n\t * @param {string} str\n\t * @param {function} decode\n\t * @private\n\t */\n\n\tfunction tryDecode(str, decode) {\n\t try {\n\t return decode(str);\n\t } catch (e) {\n\t return str;\n\t }\n\t}\n\treturn cookie;\n}\n\nvar cookieExports = requireCookie();\n\nfunction hasDocumentCookie() {\n const testingValue = typeof global === 'undefined'\n ? undefined\n : global.TEST_HAS_DOCUMENT_COOKIE;\n if (typeof testingValue === 'boolean') {\n return testingValue;\n }\n // Can we get/set cookies on document.cookie?\n return typeof document === 'object' && typeof document.cookie === 'string';\n}\nfunction parseCookies(cookies) {\n if (typeof cookies === 'string') {\n return cookieExports.parse(cookies);\n }\n else if (typeof cookies === 'object' && cookies !== null) {\n return cookies;\n }\n else {\n return {};\n }\n}\nfunction readCookie(value, options = {}) {\n const cleanValue = cleanupCookieValue(value);\n if (!options.doNotParse) {\n try {\n return JSON.parse(cleanValue);\n }\n catch (e) {\n // At least we tried\n }\n }\n // Ignore clean value if we failed the deserialization\n // It is not relevant anymore to trim those values\n return value;\n}\nfunction cleanupCookieValue(value) {\n // express prepend j: before serializing a cookie\n if (value && value[0] === 'j' && value[1] === ':') {\n return value.substr(2);\n }\n return value;\n}\n\nclass Cookies {\n constructor(cookies, defaultSetOptions = {}) {\n this.changeListeners = [];\n this.HAS_DOCUMENT_COOKIE = false;\n this.update = () => {\n if (!this.HAS_DOCUMENT_COOKIE) {\n return;\n }\n const previousCookies = this.cookies;\n this.cookies = cookieExports.parse(document.cookie);\n this._checkChanges(previousCookies);\n };\n const domCookies = typeof document === 'undefined' ? '' : document.cookie;\n this.cookies = parseCookies(cookies || domCookies);\n this.defaultSetOptions = defaultSetOptions;\n this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\n }\n _emitChange(params) {\n for (let i = 0; i < this.changeListeners.length; ++i) {\n this.changeListeners[i](params);\n }\n }\n _checkChanges(previousCookies) {\n const names = new Set(Object.keys(previousCookies).concat(Object.keys(this.cookies)));\n names.forEach((name) => {\n if (previousCookies[name] !== this.cookies[name]) {\n this._emitChange({\n name,\n value: readCookie(this.cookies[name]),\n });\n }\n });\n }\n _startPolling() {\n this.pollingInterval = setInterval(this.update, 300);\n }\n _stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n }\n }\n get(name, options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n return readCookie(this.cookies[name], options);\n }\n getAll(options = {}) {\n if (!options.doNotUpdate) {\n this.update();\n }\n const result = {};\n for (let name in this.cookies) {\n result[name] = readCookie(this.cookies[name], options);\n }\n return result;\n }\n set(name, value, options) {\n if (options) {\n options = Object.assign(Object.assign({}, this.defaultSetOptions), options);\n }\n else {\n options = this.defaultSetOptions;\n }\n const stringValue = typeof value === 'string' ? value : JSON.stringify(value);\n this.cookies = Object.assign(Object.assign({}, this.cookies), { [name]: stringValue });\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookieExports.serialize(name, stringValue, options);\n }\n this._emitChange({ name, value, options });\n }\n remove(name, options) {\n const finalOptions = (options = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\n this.cookies = Object.assign({}, this.cookies);\n delete this.cookies[name];\n if (this.HAS_DOCUMENT_COOKIE) {\n document.cookie = cookieExports.serialize(name, '', finalOptions);\n }\n this._emitChange({ name, value: undefined, options });\n }\n addChangeListener(callback) {\n this.changeListeners.push(callback);\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.addEventListener('change', this.update);\n }\n else {\n this._startPolling();\n }\n }\n }\n removeChangeListener(callback) {\n const idx = this.changeListeners.indexOf(callback);\n if (idx >= 0) {\n this.changeListeners.splice(idx, 1);\n }\n if (this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0) {\n if (typeof window === 'object' && 'cookieStore' in window) {\n window.cookieStore.removeEventListener('change', this.update);\n }\n else {\n this._stopPolling();\n }\n }\n }\n}\n\nexport { Cookies as default };\n","module.exports = __webpack_public_path__ + \"b20cd9acf45420fcacfd923754185663.js\";","/**\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\nmodule.exports = setCacheHas;\n","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n const fontSizeMD = fontSizes[1];\n const fontSizeSM = fontSizes[0];\n const fontSizeLG = fontSizes[2];\n const lineHeight = lineHeights[1];\n const lineHeightSM = lineHeights[0];\n const lineHeightLG = lineHeights[2];\n return {\n fontSizeSM,\n fontSize: fontSizeMD,\n fontSizeLG,\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight,\n lineHeightLG,\n lineHeightSM,\n fontHeight: Math.round(lineHeight * fontSizeMD),\n fontHeightLG: Math.round(lineHeightLG * fontSizeLG),\n fontHeightSM: Math.round(lineHeightSM * fontSizeSM),\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","module.exports = __webpack_public_path__ + \"49582665262ff6179b9f3a98adf7ed5c.js\";","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","module.exports = __webpack_public_path__ + \"d2242507bff41457eace047e5b93394e.js\";","\"use client\";\n\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nexport function withPureRenderTheme(Component) {\n return props => (/*#__PURE__*/React.createElement(ConfigProvider, {\n theme: {\n token: {\n motion: false,\n zIndexPopupBase: 0\n }\n }\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, props))));\n}\n/* istanbul ignore next */\nconst genPurePanel = (Component, defaultPrefixCls, getDropdownCls, postProps) => {\n const PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n style\n } = props;\n const holderRef = React.useRef(null);\n const [popupHeight, setPopupHeight] = React.useState(0);\n const [popupWidth, setPopupWidth] = React.useState(0);\n const [open, setOpen] = useMergedState(false, {\n value: props.open\n });\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls(defaultPrefixCls || 'select', customizePrefixCls);\n React.useEffect(() => {\n // We do not care about ssr\n setOpen(true);\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(entries => {\n const element = entries[0].target;\n setPopupHeight(element.offsetHeight + 8);\n setPopupWidth(element.offsetWidth);\n });\n const interval = setInterval(() => {\n var _a;\n const dropdownCls = getDropdownCls ? `.${getDropdownCls(prefixCls)}` : `.${prefixCls}-dropdown`;\n const popup = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(dropdownCls);\n if (popup) {\n clearInterval(interval);\n resizeObserver.observe(popup);\n }\n }, 10);\n return () => {\n clearInterval(interval);\n resizeObserver.disconnect();\n };\n }\n }, []);\n let mergedProps = Object.assign(Object.assign({}, props), {\n style: Object.assign(Object.assign({}, style), {\n margin: 0\n }),\n open,\n visible: open,\n getPopupContainer: () => holderRef.current\n });\n if (postProps) {\n mergedProps = postProps(mergedProps);\n }\n const mergedStyle = {\n paddingBottom: popupHeight,\n position: 'relative',\n minWidth: popupWidth\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: holderRef,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Component, Object.assign({}, mergedProps)));\n };\n return withPureRenderTheme(PurePanel);\n};\nexport default genPurePanel;","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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\nmodule.exports = isPrototype;\n","module.exports = __webpack_public_path__ + \"21ce36baab7df3edd2c728ac1a6776b7.js\";","import { __spreadArrays } from \"tslib\";\nimport * as React from 'react';\nimport { isBrowser, off, on } from './misc/util';\nvar useState = React.useState, useEffect = React.useEffect, useRef = React.useRef;\nvar DRAF = function (callback) { return setTimeout(callback, 35); };\nvar useSize = function (element, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.width, width = _c === void 0 ? Infinity : _c, _d = _b.height, height = _d === void 0 ? Infinity : _d;\n if (!isBrowser) {\n return [\n typeof element === 'function' ? element({ width: width, height: height }) : element,\n { width: width, height: height },\n ];\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var _e = useState({ width: width, height: height }), state = _e[0], setState = _e[1];\n if (typeof element === 'function') {\n element = element(state);\n }\n var style = element.props.style || {};\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var ref = useRef(null);\n var window = null;\n var setSize = function () {\n var iframe = ref.current;\n var size = iframe\n ? {\n width: iframe.offsetWidth,\n height: iframe.offsetHeight,\n }\n : { width: width, height: height };\n setState(size);\n };\n var onWindow = function (windowToListenOn) {\n on(windowToListenOn, 'resize', setSize);\n DRAF(setSize);\n };\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n var iframe = ref.current;\n if (!iframe) {\n // iframe will be undefined if component is already unmounted\n return;\n }\n if (iframe.contentWindow) {\n window = iframe.contentWindow;\n onWindow(window);\n }\n else {\n var onLoad_1 = function () {\n on(iframe, 'load', onLoad_1);\n window = iframe.contentWindow;\n onWindow(window);\n };\n off(iframe, 'load', onLoad_1);\n }\n return function () {\n if (window && window.removeEventListener) {\n off(window, 'resize', setSize);\n }\n };\n }, []);\n style.position = 'relative';\n var sized = React.cloneElement.apply(React, __spreadArrays([element, { style: style }], __spreadArrays([\n React.createElement('iframe', {\n ref: ref,\n style: {\n background: 'transparent',\n border: 'none',\n height: '100%',\n left: 0,\n position: 'absolute',\n top: 0,\n width: '100%',\n zIndex: -1,\n },\n })\n ], React.Children.toArray(element.props.children))));\n return [sized, state];\n};\nexport default useSize;\n","import * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { ConfigContext } from '../../config-provider';\nimport useToken from '../../theme/useToken';\nimport { TARGET_CLS } from './interface';\nimport showWaveEffect from './WaveEffect';\nconst useWave = (nodeRef, className, component) => {\n const {\n wave\n } = React.useContext(ConfigContext);\n const [, token, hashId] = useToken();\n const showWave = useEvent(event => {\n const node = nodeRef.current;\n if ((wave === null || wave === void 0 ? void 0 : wave.disabled) || !node) {\n return;\n }\n const targetNode = node.querySelector(`.${TARGET_CLS}`) || node;\n const {\n showEffect\n } = wave || {};\n // Customize wave effect\n (showEffect || showWaveEffect)(targetNode, {\n className,\n token,\n component,\n event,\n hashId\n });\n });\n const rafId = React.useRef();\n // Merge trigger event into one for each frame\n const showDebounceWave = event => {\n raf.cancel(rafId.current);\n rafId.current = raf(() => {\n showWave(event);\n });\n };\n return showDebounceWave;\n};\nexport default useWave;","'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","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _QuestionCircleOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/QuestionCircleOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar QuestionCircleOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _QuestionCircleOutlined.default\n }));\n};\n/**![question-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(QuestionCircleOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"QuestionCircleOutlined\";\n}\nvar _default = RefIcon;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body{transition:color .3s;font-feature-settings:\"liga\",\"kern\";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color:var(--colorText) !important;font-family:\"Graphik\",Lato,\"Helvetica Neue\",Arial,Helvetica,sans-serif;font-weight:400;font-size:var(--baseFontSize)}.text--small{font-size:.85714286rem;line-height:1.5}.text--tiny{font-size:.71428571rem;line-height:1.5}.text--stat{font-size:2.85714286rem;line-height:1.2857142857%}p{font-size:1rem;line-height:1.2857142857;margin:0;font-family:\"Graphik\",Lato,\"Helvetica Neue\",Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5,h6{margin:0;font-family:\"Graphik\",Lato,\"Helvetica Neue\",Arial,Helvetica,sans-serif;font-weight:500;color:var(--colorText)}h1{font-size:1.42857143rem;line-height:125%}h2{font-size:1.28571429rem;line-height:125%}h3{font-size:1.14285714rem;line-height:125%}h4{font-size:1rem;line-height:150%}h5{font-size:.85714286rem;line-height:125%}h6{font-size:.71428571rem;line-height:125%}input{font-size:1rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/assets/scss/base/_typography.scss\",\"webpack://./app/assets/scss/common/_variables.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAEA,KACE,oBAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,iCAAA,CACA,iCAAA,CACA,sECNiB,CDOjB,eCLiB,CDMjB,6BAAA,CAGF,aE6BI,sBAAA,CACA,eAAA,CF1BJ,YEyBI,sBAAA,CACA,eAAA,CFtBJ,YEqBI,uBAAA,CACA,yBAAA,CFlBJ,EEiBI,cAAA,CACA,wBAAA,CFhBF,QAAA,CACA,sEC1BiB,CDmCnB,kBAME,QAAA,CACA,sEC1CiB,CD2CjB,eAAA,CACA,sBAAA,CAGF,GEjBI,uBAAA,CACA,gBAAA,CFoBJ,GErBI,uBAAA,CACA,gBAAA,CFwBJ,GEzBI,uBAAA,CACA,gBAAA,CF4BJ,GE7BI,cAAA,CACA,gBAAA,CFgCJ,GEjCI,sBAAA,CACA,gBAAA,CFoCJ,GErCI,sBAAA,CACA,gBAAA,CFwCJ,MACE,cAAA\",\"sourcesContent\":[\"@use '../common';\\n\\nbody {\\n transition: color 0.3s;\\n font-feature-settings: 'liga', 'kern';\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n text-rendering: optimizeLegibility;\\n color: var(--colorText) !important;\\n font-family: common.$base-font-family;\\n font-weight: common.$base-font-weight;\\n font-size: var(--baseFontSize);\\n}\\n\\n.text--small {\\n @include common.get-body-font-styles('small');\\n}\\n\\n.text--tiny {\\n @include common.get-body-font-styles('tiny');\\n}\\n\\n.text--stat {\\n @include common.get-body-font-styles('stats');\\n}\\n\\np {\\n @include common.get-body-font-styles('regular');\\n margin: 0;\\n font-family: common.$base-font-family;\\n}\\n// span {\\n// font-size: 14px;\\n// line-height: inherit;\\n// margin: 0;\\n// font-family: common.$base-font-family;\\n// }\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin: 0;\\n font-family: common.$base-font-family;\\n font-weight: 500;\\n color: var(--colorText);\\n}\\n\\nh1 {\\n @include common.get-header-font-styles('h1');\\n}\\n\\nh2 {\\n @include common.get-header-font-styles('h2');\\n}\\n\\nh3 {\\n @include common.get-header-font-styles('h3');\\n}\\n\\nh4 {\\n @include common.get-header-font-styles('h4');\\n}\\n\\nh5 {\\n @include common.get-header-font-styles('h5');\\n}\\n\\nh6 {\\n @include common.get-header-font-styles('h6');\\n}\\n\\ninput {\\n font-size: 1rem;\\n // line-height: 1.35714286rem;\\n}\\n\",\"$border-radius: 12px;\\n$border-radius--rounded: 100px;\\n\\n$base-font-family: 'Graphik', Lato, 'Helvetica Neue', Arial, Helvetica,\\n sans-serif;\\n$base-font-weight: 400;\\n$base-font-value: 14;\\n\\n$heading-font-sizes: (\\n // 20px\\n 'h1': 1.42857143rem,\\n // 18px\\n 'h2': 1.28571429rem,\\n // 16px\\n 'h3': 1.14285714rem,\\n // 14px\\n 'h4': 1rem,\\n // 12px\\n 'h5': 0.85714286rem,\\n // 10px\\n 'h6': 0.71428571rem\\n);\\n\\n$heading-line-heights: (\\n 'h1': 125%,\\n 'h2': 125%,\\n 'h3': 125%,\\n 'h4': 150%,\\n 'h5': 125%,\\n 'h6': 125%,\\n);\\n\\n$body-font-sizes: (\\n // stats seems like a loner (40px)\\n stats: 2.85714286rem,\\n // 24px\\n statsSmall: 1.7rem,\\n // 16px\\n large: 1.14285714rem,\\n // 14px\\n regular: 1rem,\\n // 12px\\n small: 0.85714286rem,\\n // 10px\\n tiny: 0.71428571rem\\n);\\n\\n$body-line-heights: (\\n stats: 1.2857142857%,\\n large: 1.5,\\n regular: 1.2857142857,\\n small: 1.5,\\n tiny: 1.5,\\n);\\n\\n$form-font-sizes: (\\n // 14px\\n label: 1rem,\\n // 14px\\n input: 1rem,\\n // 12px\\n error: 0.85714286rem,\\n // 12px\\n tooltip: 0.85714286rem\\n);\\n\\n$form-line-heights: (\\n // 17px\\n label: 1.21428571rem,\\n // 19px\\n input: 1.35714286rem,\\n // 15px\\n error: 1.07142857rem,\\n // 17px\\n tooltip: 1.21428571rem\\n);\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"ee41eb1fd1d1c87c45e818b5a8a65cf8.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\n\n/**![bars](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAweiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(BarsOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'BarsOutlined';\n}\nexport default RefIcon;","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport ContextIsolator from '../_util/ContextIsolator';\nimport useClosable, { pickClosable } from '../_util/hooks/useClosable';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Skeleton from '../skeleton';\nimport { usePanelRef } from '../watermark/context';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nlet mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nconst getClickPosition = e => {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(() => {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nconst Modal = props => {\n var _a;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction,\n modal: modalContext\n } = React.useContext(ConfigContext);\n const handleCancel = e => {\n const {\n onCancel\n } = props;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n const handleOk = e => {\n const {\n onOk\n } = props;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Modal');\n [['visible', 'open'], ['bodyStyle', 'styles.body'], ['maskStyle', 'styles.mask']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n });\n }\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n open,\n wrapClassName,\n centered,\n getContainer,\n focusTriggerAfterClose = true,\n style,\n // Deprecated\n visible,\n width = 520,\n footer,\n classNames: modalClassNames,\n styles: modalStyles,\n children,\n loading\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"focusTriggerAfterClose\", \"style\", \"visible\", \"width\", \"footer\", \"classNames\", \"styles\", \"children\", \"loading\"]);\n const prefixCls = getPrefixCls('modal', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const wrapClassNameExtended = classNames(wrapClassName, {\n [`${prefixCls}-centered`]: !!centered,\n [`${prefixCls}-wrap-rtl`]: direction === 'rtl'\n });\n const dialogFooter = footer !== null && !loading ? (/*#__PURE__*/React.createElement(Footer, Object.assign({}, props, {\n onOk: handleOk,\n onCancel: handleCancel\n }))) : null;\n const [mergedClosable, mergedCloseIcon, closeBtnIsDisabled] = useClosable(pickClosable(props), pickClosable(modalContext), {\n closable: true,\n closeIcon: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }),\n closeIconRender: icon => renderCloseIcon(prefixCls, icon)\n });\n // ============================ Refs ============================\n // Select `ant-modal-content` by `panelRef`\n const panelRef = usePanelRef(`.${prefixCls}-content`);\n // ============================ zIndex ============================\n const [zIndex, contextZIndex] = useZIndex('Modal', restProps.zIndex);\n // =========================== Render ===========================\n return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n form: true,\n space: true\n }, /*#__PURE__*/React.createElement(zIndexContext.Provider, {\n value: contextZIndex\n }, /*#__PURE__*/React.createElement(Dialog, Object.assign({\n width: width\n }, restProps, {\n zIndex: zIndex,\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n rootClassName: classNames(hashId, rootClassName, cssVarCls, rootCls),\n footer: dialogFooter,\n visible: open !== null && open !== void 0 ? open : visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closable: mergedClosable ? {\n disabled: closeBtnIsDisabled,\n closeIcon: mergedCloseIcon\n } : mergedClosable,\n closeIcon: mergedCloseIcon,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n className: classNames(hashId, className, modalContext === null || modalContext === void 0 ? void 0 : modalContext.className),\n style: Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.style), style),\n classNames: Object.assign(Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.classNames), modalClassNames), {\n wrapper: classNames(wrapClassNameExtended, modalClassNames === null || modalClassNames === void 0 ? void 0 : modalClassNames.wrapper)\n }),\n styles: Object.assign(Object.assign({}, modalContext === null || modalContext === void 0 ? void 0 : modalContext.styles), modalStyles),\n panelRef: panelRef\n }), loading ? (/*#__PURE__*/React.createElement(Skeleton, {\n active: true,\n title: false,\n paragraph: {\n rows: 4\n },\n className: `${prefixCls}-body-skeleton`\n })) : children))));\n};\nexport default Modal;","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","module.exports = __webpack_public_path__ + \"a4d0588d199cb1afffb42e57ea40fa86.js\";","import { getAltaDomain, validDevelopmentUrlRegEx } from 'utils/domains';\nimport { getWindowLocation } from 'utils/window';\n\n/**\n * @returns the mailroom origin url for the current env\n */\nexport const getMailroomOrigin = () => {\n const { origin } = getWindowLocation();\n\n // local development\n if (validDevelopmentUrlRegEx.test(origin)) {\n return `${origin}/mailroom`;\n }\n\n // for deployed envs\n const domain = getAltaDomain();\n\n return domain ? `https://mailroom.${domain}` : '';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.call = call;\nexports.default = void 0;\nexports.note = note;\nexports.noteOnce = noteOnce;\nexports.preMessage = void 0;\nexports.resetWarned = resetWarned;\nexports.warning = warning;\nexports.warningOnce = warningOnce;\n/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nvar preMessage = exports.preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nfunction warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nfunction note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nfunction resetWarned() {\n warned = {};\n}\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nvar _default = exports.default = warningOnce;","import { forEachEnvelopeItem, getFramesFromEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { stripMetadataFromStackFrames, addMetadataToStackFrames } from '../metadata.js';\n\n/**\n * This integration allows you to filter out, or tag error events that do not come from user code marked with a bundle key via the Sentry bundler plugins.\n */\nconst thirdPartyErrorFilterIntegration = defineIntegration((options) => {\n return {\n name: 'ThirdPartyErrorsFilter',\n setup(client) {\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n // TODO(lforst): Move this cleanup logic into a more central place in the SDK.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item )[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n\n client.on('applyFrameMetadata', event => {\n // Only apply stack frame metadata to error events\n if (event.type) {\n return;\n }\n\n const stackParser = client.getOptions().stackParser;\n addMetadataToStackFrames(stackParser, event);\n });\n },\n\n processEvent(event) {\n const frameKeys = getBundleKeysForAllFramesWithFilenames(event);\n\n if (frameKeys) {\n const arrayMethod =\n options.behaviour === 'drop-error-if-contains-third-party-frames' ||\n options.behaviour === 'apply-tag-if-contains-third-party-frames'\n ? 'some'\n : 'every';\n\n const behaviourApplies = frameKeys[arrayMethod](keys => !keys.some(key => options.filterKeys.includes(key)));\n\n if (behaviourApplies) {\n const shouldDrop =\n options.behaviour === 'drop-error-if-contains-third-party-frames' ||\n options.behaviour === 'drop-error-if-exclusively-contains-third-party-frames';\n if (shouldDrop) {\n return null;\n } else {\n event.tags = {\n ...event.tags,\n third_party_code: true,\n };\n }\n }\n }\n\n return event;\n },\n };\n});\n\nfunction getBundleKeysForAllFramesWithFilenames(event) {\n const frames = getFramesFromEvent(event);\n\n if (!frames) {\n return undefined;\n }\n\n return (\n frames\n // Exclude frames without a filename since these are likely native code or built-ins\n .filter(frame => !!frame.filename)\n .map(frame => {\n if (frame.module_metadata) {\n return Object.keys(frame.module_metadata)\n .filter(key => key.startsWith(BUNDLER_PLUGIN_APP_KEY_PREFIX))\n .map(key => key.slice(BUNDLER_PLUGIN_APP_KEY_PREFIX.length));\n }\n return [];\n })\n );\n}\n\nconst BUNDLER_PLUGIN_APP_KEY_PREFIX = '_sentryBundlerPluginAppKey:';\n\nexport { thirdPartyErrorFilterIntegration };\n//# sourceMappingURL=third-party-errors-filter.js.map\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","\nace.config.setModuleUrl('ace/ext/beautify', require('file-loader?esModule=false!./src-noconflict/ext-beautify.js'));\nace.config.setModuleUrl('ace/ext/code_lens', require('file-loader?esModule=false!./src-noconflict/ext-code_lens.js'));\nace.config.setModuleUrl('ace/ext/command_bar', require('file-loader?esModule=false!./src-noconflict/ext-command_bar.js'));\nace.config.setModuleUrl('ace/ext/elastic_tabstops_lite', require('file-loader?esModule=false!./src-noconflict/ext-elastic_tabstops_lite.js'));\nace.config.setModuleUrl('ace/ext/emmet', require('file-loader?esModule=false!./src-noconflict/ext-emmet.js'));\nace.config.setModuleUrl('ace/ext/error_marker', require('file-loader?esModule=false!./src-noconflict/ext-error_marker.js'));\nace.config.setModuleUrl('ace/ext/hardwrap', require('file-loader?esModule=false!./src-noconflict/ext-hardwrap.js'));\nace.config.setModuleUrl('ace/ext/inline_autocomplete', require('file-loader?esModule=false!./src-noconflict/ext-inline_autocomplete.js'));\nace.config.setModuleUrl('ace/ext/keyboard_menu', require('file-loader?esModule=false!./src-noconflict/ext-keybinding_menu.js'));\nace.config.setModuleUrl('ace/ext/language_tools', require('file-loader?esModule=false!./src-noconflict/ext-language_tools.js'));\nace.config.setModuleUrl('ace/ext/linking', require('file-loader?esModule=false!./src-noconflict/ext-linking.js'));\nace.config.setModuleUrl('ace/ext/modelist', require('file-loader?esModule=false!./src-noconflict/ext-modelist.js'));\nace.config.setModuleUrl('ace/ext/options', require('file-loader?esModule=false!./src-noconflict/ext-options.js'));\nace.config.setModuleUrl('ace/ext/prompt', require('file-loader?esModule=false!./src-noconflict/ext-prompt.js'));\nace.config.setModuleUrl('ace/ext/rtl', require('file-loader?esModule=false!./src-noconflict/ext-rtl.js'));\nace.config.setModuleUrl('ace/ext/searchbox', require('file-loader?esModule=false!./src-noconflict/ext-searchbox.js'));\nace.config.setModuleUrl('ace/ext/settings_menu', require('file-loader?esModule=false!./src-noconflict/ext-settings_menu.js'));\nace.config.setModuleUrl('ace/ext/simple_tokenizer', require('file-loader?esModule=false!./src-noconflict/ext-simple_tokenizer.js'));\nace.config.setModuleUrl('ace/ext/spellcheck', require('file-loader?esModule=false!./src-noconflict/ext-spellcheck.js'));\nace.config.setModuleUrl('ace/ext/split', require('file-loader?esModule=false!./src-noconflict/ext-split.js'));\nace.config.setModuleUrl('ace/ext/static_highlight', require('file-loader?esModule=false!./src-noconflict/ext-static_highlight.js'));\nace.config.setModuleUrl('ace/ext/statusbar', require('file-loader?esModule=false!./src-noconflict/ext-statusbar.js'));\nace.config.setModuleUrl('ace/ext/textarea', require('file-loader?esModule=false!./src-noconflict/ext-textarea.js'));\nace.config.setModuleUrl('ace/ext/themelist', require('file-loader?esModule=false!./src-noconflict/ext-themelist.js'));\nace.config.setModuleUrl('ace/ext/whitespace', require('file-loader?esModule=false!./src-noconflict/ext-whitespace.js'));\nace.config.setModuleUrl('ace/keyboard/emacs', require('file-loader?esModule=false!./src-noconflict/keybinding-emacs.js'));\nace.config.setModuleUrl('ace/keyboard/sublime', require('file-loader?esModule=false!./src-noconflict/keybinding-sublime.js'));\nace.config.setModuleUrl('ace/keyboard/vim', require('file-loader?esModule=false!./src-noconflict/keybinding-vim.js'));\nace.config.setModuleUrl('ace/keyboard/vscode', require('file-loader?esModule=false!./src-noconflict/keybinding-vscode.js'));\nace.config.setModuleUrl('ace/mode/abap', require('file-loader?esModule=false!./src-noconflict/mode-abap.js'));\nace.config.setModuleUrl('ace/mode/abc', require('file-loader?esModule=false!./src-noconflict/mode-abc.js'));\nace.config.setModuleUrl('ace/mode/actionscript', require('file-loader?esModule=false!./src-noconflict/mode-actionscript.js'));\nace.config.setModuleUrl('ace/mode/ada', require('file-loader?esModule=false!./src-noconflict/mode-ada.js'));\nace.config.setModuleUrl('ace/mode/alda', require('file-loader?esModule=false!./src-noconflict/mode-alda.js'));\nace.config.setModuleUrl('ace/mode/apache_conf', require('file-loader?esModule=false!./src-noconflict/mode-apache_conf.js'));\nace.config.setModuleUrl('ace/mode/apex', require('file-loader?esModule=false!./src-noconflict/mode-apex.js'));\nace.config.setModuleUrl('ace/mode/applescript', require('file-loader?esModule=false!./src-noconflict/mode-applescript.js'));\nace.config.setModuleUrl('ace/mode/aql', require('file-loader?esModule=false!./src-noconflict/mode-aql.js'));\nace.config.setModuleUrl('ace/mode/asciidoc', require('file-loader?esModule=false!./src-noconflict/mode-asciidoc.js'));\nace.config.setModuleUrl('ace/mode/asl', require('file-loader?esModule=false!./src-noconflict/mode-asl.js'));\nace.config.setModuleUrl('ace/mode/assembly_arm32', require('file-loader?esModule=false!./src-noconflict/mode-assembly_arm32.js'));\nace.config.setModuleUrl('ace/mode/assembly_x86', require('file-loader?esModule=false!./src-noconflict/mode-assembly_x86.js'));\nace.config.setModuleUrl('ace/mode/astro', require('file-loader?esModule=false!./src-noconflict/mode-astro.js'));\nace.config.setModuleUrl('ace/mode/autohotkey', require('file-loader?esModule=false!./src-noconflict/mode-autohotkey.js'));\nace.config.setModuleUrl('ace/mode/basic', require('file-loader?esModule=false!./src-noconflict/mode-basic.js'));\nace.config.setModuleUrl('ace/mode/batchfile', require('file-loader?esModule=false!./src-noconflict/mode-batchfile.js'));\nace.config.setModuleUrl('ace/mode/bibtex', require('file-loader?esModule=false!./src-noconflict/mode-bibtex.js'));\nace.config.setModuleUrl('ace/mode/c9search', require('file-loader?esModule=false!./src-noconflict/mode-c9search.js'));\nace.config.setModuleUrl('ace/mode/c_cpp', require('file-loader?esModule=false!./src-noconflict/mode-c_cpp.js'));\nace.config.setModuleUrl('ace/mode/cirru', require('file-loader?esModule=false!./src-noconflict/mode-cirru.js'));\nace.config.setModuleUrl('ace/mode/clojure', require('file-loader?esModule=false!./src-noconflict/mode-clojure.js'));\nace.config.setModuleUrl('ace/mode/cobol', require('file-loader?esModule=false!./src-noconflict/mode-cobol.js'));\nace.config.setModuleUrl('ace/mode/coffee', require('file-loader?esModule=false!./src-noconflict/mode-coffee.js'));\nace.config.setModuleUrl('ace/mode/coldfusion', require('file-loader?esModule=false!./src-noconflict/mode-coldfusion.js'));\nace.config.setModuleUrl('ace/mode/crystal', require('file-loader?esModule=false!./src-noconflict/mode-crystal.js'));\nace.config.setModuleUrl('ace/mode/csharp', require('file-loader?esModule=false!./src-noconflict/mode-csharp.js'));\nace.config.setModuleUrl('ace/mode/csound_document', require('file-loader?esModule=false!./src-noconflict/mode-csound_document.js'));\nace.config.setModuleUrl('ace/mode/csound_orchestra', require('file-loader?esModule=false!./src-noconflict/mode-csound_orchestra.js'));\nace.config.setModuleUrl('ace/mode/csound_score', require('file-loader?esModule=false!./src-noconflict/mode-csound_score.js'));\nace.config.setModuleUrl('ace/mode/csp', require('file-loader?esModule=false!./src-noconflict/mode-csp.js'));\nace.config.setModuleUrl('ace/mode/css', require('file-loader?esModule=false!./src-noconflict/mode-css.js'));\nace.config.setModuleUrl('ace/mode/csv', require('file-loader?esModule=false!./src-noconflict/mode-csv.js'));\nace.config.setModuleUrl('ace/mode/curly', require('file-loader?esModule=false!./src-noconflict/mode-curly.js'));\nace.config.setModuleUrl('ace/mode/cuttlefish', require('file-loader?esModule=false!./src-noconflict/mode-cuttlefish.js'));\nace.config.setModuleUrl('ace/mode/d', require('file-loader?esModule=false!./src-noconflict/mode-d.js'));\nace.config.setModuleUrl('ace/mode/dart', require('file-loader?esModule=false!./src-noconflict/mode-dart.js'));\nace.config.setModuleUrl('ace/mode/diff', require('file-loader?esModule=false!./src-noconflict/mode-diff.js'));\nace.config.setModuleUrl('ace/mode/django', require('file-loader?esModule=false!./src-noconflict/mode-django.js'));\nace.config.setModuleUrl('ace/mode/dockerfile', require('file-loader?esModule=false!./src-noconflict/mode-dockerfile.js'));\nace.config.setModuleUrl('ace/mode/dot', require('file-loader?esModule=false!./src-noconflict/mode-dot.js'));\nace.config.setModuleUrl('ace/mode/drools', require('file-loader?esModule=false!./src-noconflict/mode-drools.js'));\nace.config.setModuleUrl('ace/mode/edifact', require('file-loader?esModule=false!./src-noconflict/mode-edifact.js'));\nace.config.setModuleUrl('ace/mode/eiffel', require('file-loader?esModule=false!./src-noconflict/mode-eiffel.js'));\nace.config.setModuleUrl('ace/mode/ejs', require('file-loader?esModule=false!./src-noconflict/mode-ejs.js'));\nace.config.setModuleUrl('ace/mode/elixir', require('file-loader?esModule=false!./src-noconflict/mode-elixir.js'));\nace.config.setModuleUrl('ace/mode/elm', require('file-loader?esModule=false!./src-noconflict/mode-elm.js'));\nace.config.setModuleUrl('ace/mode/erlang', require('file-loader?esModule=false!./src-noconflict/mode-erlang.js'));\nace.config.setModuleUrl('ace/mode/flix', require('file-loader?esModule=false!./src-noconflict/mode-flix.js'));\nace.config.setModuleUrl('ace/mode/forth', require('file-loader?esModule=false!./src-noconflict/mode-forth.js'));\nace.config.setModuleUrl('ace/mode/fortran', require('file-loader?esModule=false!./src-noconflict/mode-fortran.js'));\nace.config.setModuleUrl('ace/mode/fsharp', require('file-loader?esModule=false!./src-noconflict/mode-fsharp.js'));\nace.config.setModuleUrl('ace/mode/fsl', require('file-loader?esModule=false!./src-noconflict/mode-fsl.js'));\nace.config.setModuleUrl('ace/mode/ftl', require('file-loader?esModule=false!./src-noconflict/mode-ftl.js'));\nace.config.setModuleUrl('ace/mode/gcode', require('file-loader?esModule=false!./src-noconflict/mode-gcode.js'));\nace.config.setModuleUrl('ace/mode/gherkin', require('file-loader?esModule=false!./src-noconflict/mode-gherkin.js'));\nace.config.setModuleUrl('ace/mode/gitignore', require('file-loader?esModule=false!./src-noconflict/mode-gitignore.js'));\nace.config.setModuleUrl('ace/mode/glsl', require('file-loader?esModule=false!./src-noconflict/mode-glsl.js'));\nace.config.setModuleUrl('ace/mode/gobstones', require('file-loader?esModule=false!./src-noconflict/mode-gobstones.js'));\nace.config.setModuleUrl('ace/mode/golang', require('file-loader?esModule=false!./src-noconflict/mode-golang.js'));\nace.config.setModuleUrl('ace/mode/graphqlschema', require('file-loader?esModule=false!./src-noconflict/mode-graphqlschema.js'));\nace.config.setModuleUrl('ace/mode/groovy', require('file-loader?esModule=false!./src-noconflict/mode-groovy.js'));\nace.config.setModuleUrl('ace/mode/haml', require('file-loader?esModule=false!./src-noconflict/mode-haml.js'));\nace.config.setModuleUrl('ace/mode/handlebars', require('file-loader?esModule=false!./src-noconflict/mode-handlebars.js'));\nace.config.setModuleUrl('ace/mode/haskell', require('file-loader?esModule=false!./src-noconflict/mode-haskell.js'));\nace.config.setModuleUrl('ace/mode/haskell_cabal', require('file-loader?esModule=false!./src-noconflict/mode-haskell_cabal.js'));\nace.config.setModuleUrl('ace/mode/haxe', require('file-loader?esModule=false!./src-noconflict/mode-haxe.js'));\nace.config.setModuleUrl('ace/mode/hjson', require('file-loader?esModule=false!./src-noconflict/mode-hjson.js'));\nace.config.setModuleUrl('ace/mode/html', require('file-loader?esModule=false!./src-noconflict/mode-html.js'));\nace.config.setModuleUrl('ace/mode/html_elixir', require('file-loader?esModule=false!./src-noconflict/mode-html_elixir.js'));\nace.config.setModuleUrl('ace/mode/html_ruby', require('file-loader?esModule=false!./src-noconflict/mode-html_ruby.js'));\nace.config.setModuleUrl('ace/mode/ini', require('file-loader?esModule=false!./src-noconflict/mode-ini.js'));\nace.config.setModuleUrl('ace/mode/io', require('file-loader?esModule=false!./src-noconflict/mode-io.js'));\nace.config.setModuleUrl('ace/mode/ion', require('file-loader?esModule=false!./src-noconflict/mode-ion.js'));\nace.config.setModuleUrl('ace/mode/jack', require('file-loader?esModule=false!./src-noconflict/mode-jack.js'));\nace.config.setModuleUrl('ace/mode/jade', require('file-loader?esModule=false!./src-noconflict/mode-jade.js'));\nace.config.setModuleUrl('ace/mode/java', require('file-loader?esModule=false!./src-noconflict/mode-java.js'));\nace.config.setModuleUrl('ace/mode/javascript', require('file-loader?esModule=false!./src-noconflict/mode-javascript.js'));\nace.config.setModuleUrl('ace/mode/jexl', require('file-loader?esModule=false!./src-noconflict/mode-jexl.js'));\nace.config.setModuleUrl('ace/mode/json', require('file-loader?esModule=false!./src-noconflict/mode-json.js'));\nace.config.setModuleUrl('ace/mode/json5', require('file-loader?esModule=false!./src-noconflict/mode-json5.js'));\nace.config.setModuleUrl('ace/mode/jsoniq', require('file-loader?esModule=false!./src-noconflict/mode-jsoniq.js'));\nace.config.setModuleUrl('ace/mode/jsp', require('file-loader?esModule=false!./src-noconflict/mode-jsp.js'));\nace.config.setModuleUrl('ace/mode/jssm', require('file-loader?esModule=false!./src-noconflict/mode-jssm.js'));\nace.config.setModuleUrl('ace/mode/jsx', require('file-loader?esModule=false!./src-noconflict/mode-jsx.js'));\nace.config.setModuleUrl('ace/mode/julia', require('file-loader?esModule=false!./src-noconflict/mode-julia.js'));\nace.config.setModuleUrl('ace/mode/kotlin', require('file-loader?esModule=false!./src-noconflict/mode-kotlin.js'));\nace.config.setModuleUrl('ace/mode/latex', require('file-loader?esModule=false!./src-noconflict/mode-latex.js'));\nace.config.setModuleUrl('ace/mode/latte', require('file-loader?esModule=false!./src-noconflict/mode-latte.js'));\nace.config.setModuleUrl('ace/mode/less', require('file-loader?esModule=false!./src-noconflict/mode-less.js'));\nace.config.setModuleUrl('ace/mode/liquid', require('file-loader?esModule=false!./src-noconflict/mode-liquid.js'));\nace.config.setModuleUrl('ace/mode/lisp', require('file-loader?esModule=false!./src-noconflict/mode-lisp.js'));\nace.config.setModuleUrl('ace/mode/livescript', require('file-loader?esModule=false!./src-noconflict/mode-livescript.js'));\nace.config.setModuleUrl('ace/mode/logiql', require('file-loader?esModule=false!./src-noconflict/mode-logiql.js'));\nace.config.setModuleUrl('ace/mode/logtalk', require('file-loader?esModule=false!./src-noconflict/mode-logtalk.js'));\nace.config.setModuleUrl('ace/mode/lsl', require('file-loader?esModule=false!./src-noconflict/mode-lsl.js'));\nace.config.setModuleUrl('ace/mode/lua', require('file-loader?esModule=false!./src-noconflict/mode-lua.js'));\nace.config.setModuleUrl('ace/mode/luapage', require('file-loader?esModule=false!./src-noconflict/mode-luapage.js'));\nace.config.setModuleUrl('ace/mode/lucene', require('file-loader?esModule=false!./src-noconflict/mode-lucene.js'));\nace.config.setModuleUrl('ace/mode/makefile', require('file-loader?esModule=false!./src-noconflict/mode-makefile.js'));\nace.config.setModuleUrl('ace/mode/markdown', require('file-loader?esModule=false!./src-noconflict/mode-markdown.js'));\nace.config.setModuleUrl('ace/mode/mask', require('file-loader?esModule=false!./src-noconflict/mode-mask.js'));\nace.config.setModuleUrl('ace/mode/matlab', require('file-loader?esModule=false!./src-noconflict/mode-matlab.js'));\nace.config.setModuleUrl('ace/mode/maze', require('file-loader?esModule=false!./src-noconflict/mode-maze.js'));\nace.config.setModuleUrl('ace/mode/mediawiki', require('file-loader?esModule=false!./src-noconflict/mode-mediawiki.js'));\nace.config.setModuleUrl('ace/mode/mel', require('file-loader?esModule=false!./src-noconflict/mode-mel.js'));\nace.config.setModuleUrl('ace/mode/mips', require('file-loader?esModule=false!./src-noconflict/mode-mips.js'));\nace.config.setModuleUrl('ace/mode/mixal', require('file-loader?esModule=false!./src-noconflict/mode-mixal.js'));\nace.config.setModuleUrl('ace/mode/mushcode', require('file-loader?esModule=false!./src-noconflict/mode-mushcode.js'));\nace.config.setModuleUrl('ace/mode/mysql', require('file-loader?esModule=false!./src-noconflict/mode-mysql.js'));\nace.config.setModuleUrl('ace/mode/nasal', require('file-loader?esModule=false!./src-noconflict/mode-nasal.js'));\nace.config.setModuleUrl('ace/mode/nginx', require('file-loader?esModule=false!./src-noconflict/mode-nginx.js'));\nace.config.setModuleUrl('ace/mode/nim', require('file-loader?esModule=false!./src-noconflict/mode-nim.js'));\nace.config.setModuleUrl('ace/mode/nix', require('file-loader?esModule=false!./src-noconflict/mode-nix.js'));\nace.config.setModuleUrl('ace/mode/nsis', require('file-loader?esModule=false!./src-noconflict/mode-nsis.js'));\nace.config.setModuleUrl('ace/mode/nunjucks', require('file-loader?esModule=false!./src-noconflict/mode-nunjucks.js'));\nace.config.setModuleUrl('ace/mode/objectivec', require('file-loader?esModule=false!./src-noconflict/mode-objectivec.js'));\nace.config.setModuleUrl('ace/mode/ocaml', require('file-loader?esModule=false!./src-noconflict/mode-ocaml.js'));\nace.config.setModuleUrl('ace/mode/odin', require('file-loader?esModule=false!./src-noconflict/mode-odin.js'));\nace.config.setModuleUrl('ace/mode/partiql', require('file-loader?esModule=false!./src-noconflict/mode-partiql.js'));\nace.config.setModuleUrl('ace/mode/pascal', require('file-loader?esModule=false!./src-noconflict/mode-pascal.js'));\nace.config.setModuleUrl('ace/mode/perl', require('file-loader?esModule=false!./src-noconflict/mode-perl.js'));\nace.config.setModuleUrl('ace/mode/pgsql', require('file-loader?esModule=false!./src-noconflict/mode-pgsql.js'));\nace.config.setModuleUrl('ace/mode/php', require('file-loader?esModule=false!./src-noconflict/mode-php.js'));\nace.config.setModuleUrl('ace/mode/php_laravel_blade', require('file-loader?esModule=false!./src-noconflict/mode-php_laravel_blade.js'));\nace.config.setModuleUrl('ace/mode/pig', require('file-loader?esModule=false!./src-noconflict/mode-pig.js'));\nace.config.setModuleUrl('ace/mode/plain_text', require('file-loader?esModule=false!./src-noconflict/mode-plain_text.js'));\nace.config.setModuleUrl('ace/mode/plsql', require('file-loader?esModule=false!./src-noconflict/mode-plsql.js'));\nace.config.setModuleUrl('ace/mode/powershell', require('file-loader?esModule=false!./src-noconflict/mode-powershell.js'));\nace.config.setModuleUrl('ace/mode/praat', require('file-loader?esModule=false!./src-noconflict/mode-praat.js'));\nace.config.setModuleUrl('ace/mode/prisma', require('file-loader?esModule=false!./src-noconflict/mode-prisma.js'));\nace.config.setModuleUrl('ace/mode/prolog', require('file-loader?esModule=false!./src-noconflict/mode-prolog.js'));\nace.config.setModuleUrl('ace/mode/properties', require('file-loader?esModule=false!./src-noconflict/mode-properties.js'));\nace.config.setModuleUrl('ace/mode/protobuf', require('file-loader?esModule=false!./src-noconflict/mode-protobuf.js'));\nace.config.setModuleUrl('ace/mode/prql', require('file-loader?esModule=false!./src-noconflict/mode-prql.js'));\nace.config.setModuleUrl('ace/mode/puppet', require('file-loader?esModule=false!./src-noconflict/mode-puppet.js'));\nace.config.setModuleUrl('ace/mode/python', require('file-loader?esModule=false!./src-noconflict/mode-python.js'));\nace.config.setModuleUrl('ace/mode/qml', require('file-loader?esModule=false!./src-noconflict/mode-qml.js'));\nace.config.setModuleUrl('ace/mode/r', require('file-loader?esModule=false!./src-noconflict/mode-r.js'));\nace.config.setModuleUrl('ace/mode/raku', require('file-loader?esModule=false!./src-noconflict/mode-raku.js'));\nace.config.setModuleUrl('ace/mode/razor', require('file-loader?esModule=false!./src-noconflict/mode-razor.js'));\nace.config.setModuleUrl('ace/mode/rdoc', require('file-loader?esModule=false!./src-noconflict/mode-rdoc.js'));\nace.config.setModuleUrl('ace/mode/red', require('file-loader?esModule=false!./src-noconflict/mode-red.js'));\nace.config.setModuleUrl('ace/mode/redshift', require('file-loader?esModule=false!./src-noconflict/mode-redshift.js'));\nace.config.setModuleUrl('ace/mode/rhtml', require('file-loader?esModule=false!./src-noconflict/mode-rhtml.js'));\nace.config.setModuleUrl('ace/mode/robot', require('file-loader?esModule=false!./src-noconflict/mode-robot.js'));\nace.config.setModuleUrl('ace/mode/rst', require('file-loader?esModule=false!./src-noconflict/mode-rst.js'));\nace.config.setModuleUrl('ace/mode/ruby', require('file-loader?esModule=false!./src-noconflict/mode-ruby.js'));\nace.config.setModuleUrl('ace/mode/rust', require('file-loader?esModule=false!./src-noconflict/mode-rust.js'));\nace.config.setModuleUrl('ace/mode/sac', require('file-loader?esModule=false!./src-noconflict/mode-sac.js'));\nace.config.setModuleUrl('ace/mode/sass', require('file-loader?esModule=false!./src-noconflict/mode-sass.js'));\nace.config.setModuleUrl('ace/mode/scad', require('file-loader?esModule=false!./src-noconflict/mode-scad.js'));\nace.config.setModuleUrl('ace/mode/scala', require('file-loader?esModule=false!./src-noconflict/mode-scala.js'));\nace.config.setModuleUrl('ace/mode/scheme', require('file-loader?esModule=false!./src-noconflict/mode-scheme.js'));\nace.config.setModuleUrl('ace/mode/scrypt', require('file-loader?esModule=false!./src-noconflict/mode-scrypt.js'));\nace.config.setModuleUrl('ace/mode/scss', require('file-loader?esModule=false!./src-noconflict/mode-scss.js'));\nace.config.setModuleUrl('ace/mode/sh', require('file-loader?esModule=false!./src-noconflict/mode-sh.js'));\nace.config.setModuleUrl('ace/mode/sjs', require('file-loader?esModule=false!./src-noconflict/mode-sjs.js'));\nace.config.setModuleUrl('ace/mode/slim', require('file-loader?esModule=false!./src-noconflict/mode-slim.js'));\nace.config.setModuleUrl('ace/mode/smarty', require('file-loader?esModule=false!./src-noconflict/mode-smarty.js'));\nace.config.setModuleUrl('ace/mode/smithy', require('file-loader?esModule=false!./src-noconflict/mode-smithy.js'));\nace.config.setModuleUrl('ace/mode/snippets', require('file-loader?esModule=false!./src-noconflict/mode-snippets.js'));\nace.config.setModuleUrl('ace/mode/soy_template', require('file-loader?esModule=false!./src-noconflict/mode-soy_template.js'));\nace.config.setModuleUrl('ace/mode/space', require('file-loader?esModule=false!./src-noconflict/mode-space.js'));\nace.config.setModuleUrl('ace/mode/sparql', require('file-loader?esModule=false!./src-noconflict/mode-sparql.js'));\nace.config.setModuleUrl('ace/mode/sql', require('file-loader?esModule=false!./src-noconflict/mode-sql.js'));\nace.config.setModuleUrl('ace/mode/sqlserver', require('file-loader?esModule=false!./src-noconflict/mode-sqlserver.js'));\nace.config.setModuleUrl('ace/mode/stylus', require('file-loader?esModule=false!./src-noconflict/mode-stylus.js'));\nace.config.setModuleUrl('ace/mode/svg', require('file-loader?esModule=false!./src-noconflict/mode-svg.js'));\nace.config.setModuleUrl('ace/mode/swift', require('file-loader?esModule=false!./src-noconflict/mode-swift.js'));\nace.config.setModuleUrl('ace/mode/tcl', require('file-loader?esModule=false!./src-noconflict/mode-tcl.js'));\nace.config.setModuleUrl('ace/mode/terraform', require('file-loader?esModule=false!./src-noconflict/mode-terraform.js'));\nace.config.setModuleUrl('ace/mode/tex', require('file-loader?esModule=false!./src-noconflict/mode-tex.js'));\nace.config.setModuleUrl('ace/mode/text', require('file-loader?esModule=false!./src-noconflict/mode-text.js'));\nace.config.setModuleUrl('ace/mode/textile', require('file-loader?esModule=false!./src-noconflict/mode-textile.js'));\nace.config.setModuleUrl('ace/mode/toml', require('file-loader?esModule=false!./src-noconflict/mode-toml.js'));\nace.config.setModuleUrl('ace/mode/tsv', require('file-loader?esModule=false!./src-noconflict/mode-tsv.js'));\nace.config.setModuleUrl('ace/mode/tsx', require('file-loader?esModule=false!./src-noconflict/mode-tsx.js'));\nace.config.setModuleUrl('ace/mode/turtle', require('file-loader?esModule=false!./src-noconflict/mode-turtle.js'));\nace.config.setModuleUrl('ace/mode/twig', require('file-loader?esModule=false!./src-noconflict/mode-twig.js'));\nace.config.setModuleUrl('ace/mode/typescript', require('file-loader?esModule=false!./src-noconflict/mode-typescript.js'));\nace.config.setModuleUrl('ace/mode/vala', require('file-loader?esModule=false!./src-noconflict/mode-vala.js'));\nace.config.setModuleUrl('ace/mode/vbscript', require('file-loader?esModule=false!./src-noconflict/mode-vbscript.js'));\nace.config.setModuleUrl('ace/mode/velocity', require('file-loader?esModule=false!./src-noconflict/mode-velocity.js'));\nace.config.setModuleUrl('ace/mode/verilog', require('file-loader?esModule=false!./src-noconflict/mode-verilog.js'));\nace.config.setModuleUrl('ace/mode/vhdl', require('file-loader?esModule=false!./src-noconflict/mode-vhdl.js'));\nace.config.setModuleUrl('ace/mode/visualforce', require('file-loader?esModule=false!./src-noconflict/mode-visualforce.js'));\nace.config.setModuleUrl('ace/mode/vue', require('file-loader?esModule=false!./src-noconflict/mode-vue.js'));\nace.config.setModuleUrl('ace/mode/wollok', require('file-loader?esModule=false!./src-noconflict/mode-wollok.js'));\nace.config.setModuleUrl('ace/mode/xml', require('file-loader?esModule=false!./src-noconflict/mode-xml.js'));\nace.config.setModuleUrl('ace/mode/xquery', require('file-loader?esModule=false!./src-noconflict/mode-xquery.js'));\nace.config.setModuleUrl('ace/mode/yaml', require('file-loader?esModule=false!./src-noconflict/mode-yaml.js'));\nace.config.setModuleUrl('ace/mode/zeek', require('file-loader?esModule=false!./src-noconflict/mode-zeek.js'));\nace.config.setModuleUrl('ace/mode/zig', require('file-loader?esModule=false!./src-noconflict/mode-zig.js'));\n\nace.config.setModuleUrl('ace/theme/ambiance', require('file-loader?esModule=false!./src-noconflict/theme-ambiance.js'));\nace.config.setModuleUrl('ace/theme/chaos', require('file-loader?esModule=false!./src-noconflict/theme-chaos.js'));\nace.config.setModuleUrl('ace/theme/chrome', require('file-loader?esModule=false!./src-noconflict/theme-chrome.js'));\nace.config.setModuleUrl('ace/theme/cloud9_day', require('file-loader?esModule=false!./src-noconflict/theme-cloud9_day.js'));\nace.config.setModuleUrl('ace/theme/cloud9_night', require('file-loader?esModule=false!./src-noconflict/theme-cloud9_night.js'));\nace.config.setModuleUrl('ace/theme/cloud9_night_low_color', require('file-loader?esModule=false!./src-noconflict/theme-cloud9_night_low_color.js'));\nace.config.setModuleUrl('ace/theme/cloud_editor', require('file-loader?esModule=false!./src-noconflict/theme-cloud_editor.js'));\nace.config.setModuleUrl('ace/theme/cloud_editor_dark', require('file-loader?esModule=false!./src-noconflict/theme-cloud_editor_dark.js'));\nace.config.setModuleUrl('ace/theme/clouds', require('file-loader?esModule=false!./src-noconflict/theme-clouds.js'));\nace.config.setModuleUrl('ace/theme/clouds_midnight', require('file-loader?esModule=false!./src-noconflict/theme-clouds_midnight.js'));\nace.config.setModuleUrl('ace/theme/cobalt', require('file-loader?esModule=false!./src-noconflict/theme-cobalt.js'));\nace.config.setModuleUrl('ace/theme/crimson_editor', require('file-loader?esModule=false!./src-noconflict/theme-crimson_editor.js'));\nace.config.setModuleUrl('ace/theme/dawn', require('file-loader?esModule=false!./src-noconflict/theme-dawn.js'));\nace.config.setModuleUrl('ace/theme/dracula', require('file-loader?esModule=false!./src-noconflict/theme-dracula.js'));\nace.config.setModuleUrl('ace/theme/dreamweaver', require('file-loader?esModule=false!./src-noconflict/theme-dreamweaver.js'));\nace.config.setModuleUrl('ace/theme/eclipse', require('file-loader?esModule=false!./src-noconflict/theme-eclipse.js'));\nace.config.setModuleUrl('ace/theme/github', require('file-loader?esModule=false!./src-noconflict/theme-github.js'));\nace.config.setModuleUrl('ace/theme/github_dark', require('file-loader?esModule=false!./src-noconflict/theme-github_dark.js'));\nace.config.setModuleUrl('ace/theme/github_light_default', require('file-loader?esModule=false!./src-noconflict/theme-github_light_default.js'));\nace.config.setModuleUrl('ace/theme/gob', require('file-loader?esModule=false!./src-noconflict/theme-gob.js'));\nace.config.setModuleUrl('ace/theme/gruvbox', require('file-loader?esModule=false!./src-noconflict/theme-gruvbox.js'));\nace.config.setModuleUrl('ace/theme/gruvbox_dark_hard', require('file-loader?esModule=false!./src-noconflict/theme-gruvbox_dark_hard.js'));\nace.config.setModuleUrl('ace/theme/gruvbox_light_hard', require('file-loader?esModule=false!./src-noconflict/theme-gruvbox_light_hard.js'));\nace.config.setModuleUrl('ace/theme/idle_fingers', require('file-loader?esModule=false!./src-noconflict/theme-idle_fingers.js'));\nace.config.setModuleUrl('ace/theme/iplastic', require('file-loader?esModule=false!./src-noconflict/theme-iplastic.js'));\nace.config.setModuleUrl('ace/theme/katzenmilch', require('file-loader?esModule=false!./src-noconflict/theme-katzenmilch.js'));\nace.config.setModuleUrl('ace/theme/kr_theme', require('file-loader?esModule=false!./src-noconflict/theme-kr_theme.js'));\nace.config.setModuleUrl('ace/theme/kuroir', require('file-loader?esModule=false!./src-noconflict/theme-kuroir.js'));\nace.config.setModuleUrl('ace/theme/merbivore', require('file-loader?esModule=false!./src-noconflict/theme-merbivore.js'));\nace.config.setModuleUrl('ace/theme/merbivore_soft', require('file-loader?esModule=false!./src-noconflict/theme-merbivore_soft.js'));\nace.config.setModuleUrl('ace/theme/mono_industrial', require('file-loader?esModule=false!./src-noconflict/theme-mono_industrial.js'));\nace.config.setModuleUrl('ace/theme/monokai', require('file-loader?esModule=false!./src-noconflict/theme-monokai.js'));\nace.config.setModuleUrl('ace/theme/nord_dark', require('file-loader?esModule=false!./src-noconflict/theme-nord_dark.js'));\nace.config.setModuleUrl('ace/theme/one_dark', require('file-loader?esModule=false!./src-noconflict/theme-one_dark.js'));\nace.config.setModuleUrl('ace/theme/pastel_on_dark', require('file-loader?esModule=false!./src-noconflict/theme-pastel_on_dark.js'));\nace.config.setModuleUrl('ace/theme/solarized_dark', require('file-loader?esModule=false!./src-noconflict/theme-solarized_dark.js'));\nace.config.setModuleUrl('ace/theme/solarized_light', require('file-loader?esModule=false!./src-noconflict/theme-solarized_light.js'));\nace.config.setModuleUrl('ace/theme/sqlserver', require('file-loader?esModule=false!./src-noconflict/theme-sqlserver.js'));\nace.config.setModuleUrl('ace/theme/terminal', require('file-loader?esModule=false!./src-noconflict/theme-terminal.js'));\nace.config.setModuleUrl('ace/theme/textmate', require('file-loader?esModule=false!./src-noconflict/theme-textmate.js'));\nace.config.setModuleUrl('ace/theme/tomorrow', require('file-loader?esModule=false!./src-noconflict/theme-tomorrow.js'));\nace.config.setModuleUrl('ace/theme/tomorrow_night', require('file-loader?esModule=false!./src-noconflict/theme-tomorrow_night.js'));\nace.config.setModuleUrl('ace/theme/tomorrow_night_blue', require('file-loader?esModule=false!./src-noconflict/theme-tomorrow_night_blue.js'));\nace.config.setModuleUrl('ace/theme/tomorrow_night_bright', require('file-loader?esModule=false!./src-noconflict/theme-tomorrow_night_bright.js'));\nace.config.setModuleUrl('ace/theme/tomorrow_night_eighties', require('file-loader?esModule=false!./src-noconflict/theme-tomorrow_night_eighties.js'));\nace.config.setModuleUrl('ace/theme/twilight', require('file-loader?esModule=false!./src-noconflict/theme-twilight.js'));\nace.config.setModuleUrl('ace/theme/vibrant_ink', require('file-loader?esModule=false!./src-noconflict/theme-vibrant_ink.js'));\nace.config.setModuleUrl('ace/theme/xcode', require('file-loader?esModule=false!./src-noconflict/theme-xcode.js'));\nace.config.setModuleUrl('ace/mode/base_worker', require('file-loader?esModule=false!./src-noconflict/worker-base.js'));\nace.config.setModuleUrl('ace/mode/coffee_worker', require('file-loader?esModule=false!./src-noconflict/worker-coffee.js'));\nace.config.setModuleUrl('ace/mode/css_worker', require('file-loader?esModule=false!./src-noconflict/worker-css.js'));\nace.config.setModuleUrl('ace/mode/html_worker', require('file-loader?esModule=false!./src-noconflict/worker-html.js'));\nace.config.setModuleUrl('ace/mode/javascript_worker', require('file-loader?esModule=false!./src-noconflict/worker-javascript.js'));\nace.config.setModuleUrl('ace/mode/json_worker', require('file-loader?esModule=false!./src-noconflict/worker-json.js'));\nace.config.setModuleUrl('ace/mode/lua_worker', require('file-loader?esModule=false!./src-noconflict/worker-lua.js'));\nace.config.setModuleUrl('ace/mode/php_worker', require('file-loader?esModule=false!./src-noconflict/worker-php.js'));\nace.config.setModuleUrl('ace/mode/xml_worker', require('file-loader?esModule=false!./src-noconflict/worker-xml.js'));\nace.config.setModuleUrl('ace/mode/xquery_worker', require('file-loader?esModule=false!./src-noconflict/worker-xquery.js'));\nace.config.setModuleUrl('ace/mode/yaml_worker', require('file-loader?esModule=false!./src-noconflict/worker-yaml.js'));\nace.config.setModuleUrl('ace/snippets/abap', require('file-loader?esModule=false!./src-noconflict/snippets/abap.js'));\nace.config.setModuleUrl('ace/snippets/abc', require('file-loader?esModule=false!./src-noconflict/snippets/abc.js'));\nace.config.setModuleUrl('ace/snippets/actionscript', require('file-loader?esModule=false!./src-noconflict/snippets/actionscript.js'));\nace.config.setModuleUrl('ace/snippets/ada', require('file-loader?esModule=false!./src-noconflict/snippets/ada.js'));\nace.config.setModuleUrl('ace/snippets/alda', require('file-loader?esModule=false!./src-noconflict/snippets/alda.js'));\nace.config.setModuleUrl('ace/snippets/apache_conf', require('file-loader?esModule=false!./src-noconflict/snippets/apache_conf.js'));\nace.config.setModuleUrl('ace/snippets/apex', require('file-loader?esModule=false!./src-noconflict/snippets/apex.js'));\nace.config.setModuleUrl('ace/snippets/applescript', require('file-loader?esModule=false!./src-noconflict/snippets/applescript.js'));\nace.config.setModuleUrl('ace/snippets/aql', require('file-loader?esModule=false!./src-noconflict/snippets/aql.js'));\nace.config.setModuleUrl('ace/snippets/asciidoc', require('file-loader?esModule=false!./src-noconflict/snippets/asciidoc.js'));\nace.config.setModuleUrl('ace/snippets/asl', require('file-loader?esModule=false!./src-noconflict/snippets/asl.js'));\nace.config.setModuleUrl('ace/snippets/assembly_arm32', require('file-loader?esModule=false!./src-noconflict/snippets/assembly_arm32.js'));\nace.config.setModuleUrl('ace/snippets/assembly_x86', require('file-loader?esModule=false!./src-noconflict/snippets/assembly_x86.js'));\nace.config.setModuleUrl('ace/snippets/astro', require('file-loader?esModule=false!./src-noconflict/snippets/astro.js'));\nace.config.setModuleUrl('ace/snippets/autohotkey', require('file-loader?esModule=false!./src-noconflict/snippets/autohotkey.js'));\nace.config.setModuleUrl('ace/snippets/basic', require('file-loader?esModule=false!./src-noconflict/snippets/basic.js'));\nace.config.setModuleUrl('ace/snippets/batchfile', require('file-loader?esModule=false!./src-noconflict/snippets/batchfile.js'));\nace.config.setModuleUrl('ace/snippets/bibtex', require('file-loader?esModule=false!./src-noconflict/snippets/bibtex.js'));\nace.config.setModuleUrl('ace/snippets/c9search', require('file-loader?esModule=false!./src-noconflict/snippets/c9search.js'));\nace.config.setModuleUrl('ace/snippets/c_cpp', require('file-loader?esModule=false!./src-noconflict/snippets/c_cpp.js'));\nace.config.setModuleUrl('ace/snippets/cirru', require('file-loader?esModule=false!./src-noconflict/snippets/cirru.js'));\nace.config.setModuleUrl('ace/snippets/clojure', require('file-loader?esModule=false!./src-noconflict/snippets/clojure.js'));\nace.config.setModuleUrl('ace/snippets/cobol', require('file-loader?esModule=false!./src-noconflict/snippets/cobol.js'));\nace.config.setModuleUrl('ace/snippets/coffee', require('file-loader?esModule=false!./src-noconflict/snippets/coffee.js'));\nace.config.setModuleUrl('ace/snippets/coldfusion', require('file-loader?esModule=false!./src-noconflict/snippets/coldfusion.js'));\nace.config.setModuleUrl('ace/snippets/crystal', require('file-loader?esModule=false!./src-noconflict/snippets/crystal.js'));\nace.config.setModuleUrl('ace/snippets/csharp', require('file-loader?esModule=false!./src-noconflict/snippets/csharp.js'));\nace.config.setModuleUrl('ace/snippets/csound_document', require('file-loader?esModule=false!./src-noconflict/snippets/csound_document.js'));\nace.config.setModuleUrl('ace/snippets/csound_orchestra', require('file-loader?esModule=false!./src-noconflict/snippets/csound_orchestra.js'));\nace.config.setModuleUrl('ace/snippets/csound_score', require('file-loader?esModule=false!./src-noconflict/snippets/csound_score.js'));\nace.config.setModuleUrl('ace/snippets/csp', require('file-loader?esModule=false!./src-noconflict/snippets/csp.js'));\nace.config.setModuleUrl('ace/snippets/css', require('file-loader?esModule=false!./src-noconflict/snippets/css.js'));\nace.config.setModuleUrl('ace/snippets/csv', require('file-loader?esModule=false!./src-noconflict/snippets/csv.js'));\nace.config.setModuleUrl('ace/snippets/curly', require('file-loader?esModule=false!./src-noconflict/snippets/curly.js'));\nace.config.setModuleUrl('ace/snippets/cuttlefish', require('file-loader?esModule=false!./src-noconflict/snippets/cuttlefish.js'));\nace.config.setModuleUrl('ace/snippets/d', require('file-loader?esModule=false!./src-noconflict/snippets/d.js'));\nace.config.setModuleUrl('ace/snippets/dart', require('file-loader?esModule=false!./src-noconflict/snippets/dart.js'));\nace.config.setModuleUrl('ace/snippets/diff', require('file-loader?esModule=false!./src-noconflict/snippets/diff.js'));\nace.config.setModuleUrl('ace/snippets/django', require('file-loader?esModule=false!./src-noconflict/snippets/django.js'));\nace.config.setModuleUrl('ace/snippets/dockerfile', require('file-loader?esModule=false!./src-noconflict/snippets/dockerfile.js'));\nace.config.setModuleUrl('ace/snippets/dot', require('file-loader?esModule=false!./src-noconflict/snippets/dot.js'));\nace.config.setModuleUrl('ace/snippets/drools', require('file-loader?esModule=false!./src-noconflict/snippets/drools.js'));\nace.config.setModuleUrl('ace/snippets/edifact', require('file-loader?esModule=false!./src-noconflict/snippets/edifact.js'));\nace.config.setModuleUrl('ace/snippets/eiffel', require('file-loader?esModule=false!./src-noconflict/snippets/eiffel.js'));\nace.config.setModuleUrl('ace/snippets/ejs', require('file-loader?esModule=false!./src-noconflict/snippets/ejs.js'));\nace.config.setModuleUrl('ace/snippets/elixir', require('file-loader?esModule=false!./src-noconflict/snippets/elixir.js'));\nace.config.setModuleUrl('ace/snippets/elm', require('file-loader?esModule=false!./src-noconflict/snippets/elm.js'));\nace.config.setModuleUrl('ace/snippets/erlang', require('file-loader?esModule=false!./src-noconflict/snippets/erlang.js'));\nace.config.setModuleUrl('ace/snippets/flix', require('file-loader?esModule=false!./src-noconflict/snippets/flix.js'));\nace.config.setModuleUrl('ace/snippets/forth', require('file-loader?esModule=false!./src-noconflict/snippets/forth.js'));\nace.config.setModuleUrl('ace/snippets/fortran', require('file-loader?esModule=false!./src-noconflict/snippets/fortran.js'));\nace.config.setModuleUrl('ace/snippets/fsharp', require('file-loader?esModule=false!./src-noconflict/snippets/fsharp.js'));\nace.config.setModuleUrl('ace/snippets/fsl', require('file-loader?esModule=false!./src-noconflict/snippets/fsl.js'));\nace.config.setModuleUrl('ace/snippets/ftl', require('file-loader?esModule=false!./src-noconflict/snippets/ftl.js'));\nace.config.setModuleUrl('ace/snippets/gcode', require('file-loader?esModule=false!./src-noconflict/snippets/gcode.js'));\nace.config.setModuleUrl('ace/snippets/gherkin', require('file-loader?esModule=false!./src-noconflict/snippets/gherkin.js'));\nace.config.setModuleUrl('ace/snippets/gitignore', require('file-loader?esModule=false!./src-noconflict/snippets/gitignore.js'));\nace.config.setModuleUrl('ace/snippets/glsl', require('file-loader?esModule=false!./src-noconflict/snippets/glsl.js'));\nace.config.setModuleUrl('ace/snippets/gobstones', require('file-loader?esModule=false!./src-noconflict/snippets/gobstones.js'));\nace.config.setModuleUrl('ace/snippets/golang', require('file-loader?esModule=false!./src-noconflict/snippets/golang.js'));\nace.config.setModuleUrl('ace/snippets/graphqlschema', require('file-loader?esModule=false!./src-noconflict/snippets/graphqlschema.js'));\nace.config.setModuleUrl('ace/snippets/groovy', require('file-loader?esModule=false!./src-noconflict/snippets/groovy.js'));\nace.config.setModuleUrl('ace/snippets/haml', require('file-loader?esModule=false!./src-noconflict/snippets/haml.js'));\nace.config.setModuleUrl('ace/snippets/handlebars', require('file-loader?esModule=false!./src-noconflict/snippets/handlebars.js'));\nace.config.setModuleUrl('ace/snippets/haskell', require('file-loader?esModule=false!./src-noconflict/snippets/haskell.js'));\nace.config.setModuleUrl('ace/snippets/haskell_cabal', require('file-loader?esModule=false!./src-noconflict/snippets/haskell_cabal.js'));\nace.config.setModuleUrl('ace/snippets/haxe', require('file-loader?esModule=false!./src-noconflict/snippets/haxe.js'));\nace.config.setModuleUrl('ace/snippets/hjson', require('file-loader?esModule=false!./src-noconflict/snippets/hjson.js'));\nace.config.setModuleUrl('ace/snippets/html', require('file-loader?esModule=false!./src-noconflict/snippets/html.js'));\nace.config.setModuleUrl('ace/snippets/html_elixir', require('file-loader?esModule=false!./src-noconflict/snippets/html_elixir.js'));\nace.config.setModuleUrl('ace/snippets/html_ruby', require('file-loader?esModule=false!./src-noconflict/snippets/html_ruby.js'));\nace.config.setModuleUrl('ace/snippets/ini', require('file-loader?esModule=false!./src-noconflict/snippets/ini.js'));\nace.config.setModuleUrl('ace/snippets/io', require('file-loader?esModule=false!./src-noconflict/snippets/io.js'));\nace.config.setModuleUrl('ace/snippets/ion', require('file-loader?esModule=false!./src-noconflict/snippets/ion.js'));\nace.config.setModuleUrl('ace/snippets/jack', require('file-loader?esModule=false!./src-noconflict/snippets/jack.js'));\nace.config.setModuleUrl('ace/snippets/jade', require('file-loader?esModule=false!./src-noconflict/snippets/jade.js'));\nace.config.setModuleUrl('ace/snippets/java', require('file-loader?esModule=false!./src-noconflict/snippets/java.js'));\nace.config.setModuleUrl('ace/snippets/javascript', require('file-loader?esModule=false!./src-noconflict/snippets/javascript.js'));\nace.config.setModuleUrl('ace/snippets/jexl', require('file-loader?esModule=false!./src-noconflict/snippets/jexl.js'));\nace.config.setModuleUrl('ace/snippets/json', require('file-loader?esModule=false!./src-noconflict/snippets/json.js'));\nace.config.setModuleUrl('ace/snippets/json5', require('file-loader?esModule=false!./src-noconflict/snippets/json5.js'));\nace.config.setModuleUrl('ace/snippets/jsoniq', require('file-loader?esModule=false!./src-noconflict/snippets/jsoniq.js'));\nace.config.setModuleUrl('ace/snippets/jsp', require('file-loader?esModule=false!./src-noconflict/snippets/jsp.js'));\nace.config.setModuleUrl('ace/snippets/jssm', require('file-loader?esModule=false!./src-noconflict/snippets/jssm.js'));\nace.config.setModuleUrl('ace/snippets/jsx', require('file-loader?esModule=false!./src-noconflict/snippets/jsx.js'));\nace.config.setModuleUrl('ace/snippets/julia', require('file-loader?esModule=false!./src-noconflict/snippets/julia.js'));\nace.config.setModuleUrl('ace/snippets/kotlin', require('file-loader?esModule=false!./src-noconflict/snippets/kotlin.js'));\nace.config.setModuleUrl('ace/snippets/latex', require('file-loader?esModule=false!./src-noconflict/snippets/latex.js'));\nace.config.setModuleUrl('ace/snippets/latte', require('file-loader?esModule=false!./src-noconflict/snippets/latte.js'));\nace.config.setModuleUrl('ace/snippets/less', require('file-loader?esModule=false!./src-noconflict/snippets/less.js'));\nace.config.setModuleUrl('ace/snippets/liquid', require('file-loader?esModule=false!./src-noconflict/snippets/liquid.js'));\nace.config.setModuleUrl('ace/snippets/lisp', require('file-loader?esModule=false!./src-noconflict/snippets/lisp.js'));\nace.config.setModuleUrl('ace/snippets/livescript', require('file-loader?esModule=false!./src-noconflict/snippets/livescript.js'));\nace.config.setModuleUrl('ace/snippets/logiql', require('file-loader?esModule=false!./src-noconflict/snippets/logiql.js'));\nace.config.setModuleUrl('ace/snippets/logtalk', require('file-loader?esModule=false!./src-noconflict/snippets/logtalk.js'));\nace.config.setModuleUrl('ace/snippets/lsl', require('file-loader?esModule=false!./src-noconflict/snippets/lsl.js'));\nace.config.setModuleUrl('ace/snippets/lua', require('file-loader?esModule=false!./src-noconflict/snippets/lua.js'));\nace.config.setModuleUrl('ace/snippets/luapage', require('file-loader?esModule=false!./src-noconflict/snippets/luapage.js'));\nace.config.setModuleUrl('ace/snippets/lucene', require('file-loader?esModule=false!./src-noconflict/snippets/lucene.js'));\nace.config.setModuleUrl('ace/snippets/makefile', require('file-loader?esModule=false!./src-noconflict/snippets/makefile.js'));\nace.config.setModuleUrl('ace/snippets/markdown', require('file-loader?esModule=false!./src-noconflict/snippets/markdown.js'));\nace.config.setModuleUrl('ace/snippets/mask', require('file-loader?esModule=false!./src-noconflict/snippets/mask.js'));\nace.config.setModuleUrl('ace/snippets/matlab', require('file-loader?esModule=false!./src-noconflict/snippets/matlab.js'));\nace.config.setModuleUrl('ace/snippets/maze', require('file-loader?esModule=false!./src-noconflict/snippets/maze.js'));\nace.config.setModuleUrl('ace/snippets/mediawiki', require('file-loader?esModule=false!./src-noconflict/snippets/mediawiki.js'));\nace.config.setModuleUrl('ace/snippets/mel', require('file-loader?esModule=false!./src-noconflict/snippets/mel.js'));\nace.config.setModuleUrl('ace/snippets/mips', require('file-loader?esModule=false!./src-noconflict/snippets/mips.js'));\nace.config.setModuleUrl('ace/snippets/mixal', require('file-loader?esModule=false!./src-noconflict/snippets/mixal.js'));\nace.config.setModuleUrl('ace/snippets/mushcode', require('file-loader?esModule=false!./src-noconflict/snippets/mushcode.js'));\nace.config.setModuleUrl('ace/snippets/mysql', require('file-loader?esModule=false!./src-noconflict/snippets/mysql.js'));\nace.config.setModuleUrl('ace/snippets/nasal', require('file-loader?esModule=false!./src-noconflict/snippets/nasal.js'));\nace.config.setModuleUrl('ace/snippets/nginx', require('file-loader?esModule=false!./src-noconflict/snippets/nginx.js'));\nace.config.setModuleUrl('ace/snippets/nim', require('file-loader?esModule=false!./src-noconflict/snippets/nim.js'));\nace.config.setModuleUrl('ace/snippets/nix', require('file-loader?esModule=false!./src-noconflict/snippets/nix.js'));\nace.config.setModuleUrl('ace/snippets/nsis', require('file-loader?esModule=false!./src-noconflict/snippets/nsis.js'));\nace.config.setModuleUrl('ace/snippets/nunjucks', require('file-loader?esModule=false!./src-noconflict/snippets/nunjucks.js'));\nace.config.setModuleUrl('ace/snippets/objectivec', require('file-loader?esModule=false!./src-noconflict/snippets/objectivec.js'));\nace.config.setModuleUrl('ace/snippets/ocaml', require('file-loader?esModule=false!./src-noconflict/snippets/ocaml.js'));\nace.config.setModuleUrl('ace/snippets/odin', require('file-loader?esModule=false!./src-noconflict/snippets/odin.js'));\nace.config.setModuleUrl('ace/snippets/partiql', require('file-loader?esModule=false!./src-noconflict/snippets/partiql.js'));\nace.config.setModuleUrl('ace/snippets/pascal', require('file-loader?esModule=false!./src-noconflict/snippets/pascal.js'));\nace.config.setModuleUrl('ace/snippets/perl', require('file-loader?esModule=false!./src-noconflict/snippets/perl.js'));\nace.config.setModuleUrl('ace/snippets/pgsql', require('file-loader?esModule=false!./src-noconflict/snippets/pgsql.js'));\nace.config.setModuleUrl('ace/snippets/php', require('file-loader?esModule=false!./src-noconflict/snippets/php.js'));\nace.config.setModuleUrl('ace/snippets/php_laravel_blade', require('file-loader?esModule=false!./src-noconflict/snippets/php_laravel_blade.js'));\nace.config.setModuleUrl('ace/snippets/pig', require('file-loader?esModule=false!./src-noconflict/snippets/pig.js'));\nace.config.setModuleUrl('ace/snippets/plain_text', require('file-loader?esModule=false!./src-noconflict/snippets/plain_text.js'));\nace.config.setModuleUrl('ace/snippets/plsql', require('file-loader?esModule=false!./src-noconflict/snippets/plsql.js'));\nace.config.setModuleUrl('ace/snippets/powershell', require('file-loader?esModule=false!./src-noconflict/snippets/powershell.js'));\nace.config.setModuleUrl('ace/snippets/praat', require('file-loader?esModule=false!./src-noconflict/snippets/praat.js'));\nace.config.setModuleUrl('ace/snippets/prisma', require('file-loader?esModule=false!./src-noconflict/snippets/prisma.js'));\nace.config.setModuleUrl('ace/snippets/prolog', require('file-loader?esModule=false!./src-noconflict/snippets/prolog.js'));\nace.config.setModuleUrl('ace/snippets/properties', require('file-loader?esModule=false!./src-noconflict/snippets/properties.js'));\nace.config.setModuleUrl('ace/snippets/protobuf', require('file-loader?esModule=false!./src-noconflict/snippets/protobuf.js'));\nace.config.setModuleUrl('ace/snippets/prql', require('file-loader?esModule=false!./src-noconflict/snippets/prql.js'));\nace.config.setModuleUrl('ace/snippets/puppet', require('file-loader?esModule=false!./src-noconflict/snippets/puppet.js'));\nace.config.setModuleUrl('ace/snippets/python', require('file-loader?esModule=false!./src-noconflict/snippets/python.js'));\nace.config.setModuleUrl('ace/snippets/qml', require('file-loader?esModule=false!./src-noconflict/snippets/qml.js'));\nace.config.setModuleUrl('ace/snippets/r', require('file-loader?esModule=false!./src-noconflict/snippets/r.js'));\nace.config.setModuleUrl('ace/snippets/raku', require('file-loader?esModule=false!./src-noconflict/snippets/raku.js'));\nace.config.setModuleUrl('ace/snippets/razor', require('file-loader?esModule=false!./src-noconflict/snippets/razor.js'));\nace.config.setModuleUrl('ace/snippets/rdoc', require('file-loader?esModule=false!./src-noconflict/snippets/rdoc.js'));\nace.config.setModuleUrl('ace/snippets/red', require('file-loader?esModule=false!./src-noconflict/snippets/red.js'));\nace.config.setModuleUrl('ace/snippets/redshift', require('file-loader?esModule=false!./src-noconflict/snippets/redshift.js'));\nace.config.setModuleUrl('ace/snippets/rhtml', require('file-loader?esModule=false!./src-noconflict/snippets/rhtml.js'));\nace.config.setModuleUrl('ace/snippets/robot', require('file-loader?esModule=false!./src-noconflict/snippets/robot.js'));\nace.config.setModuleUrl('ace/snippets/rst', require('file-loader?esModule=false!./src-noconflict/snippets/rst.js'));\nace.config.setModuleUrl('ace/snippets/ruby', require('file-loader?esModule=false!./src-noconflict/snippets/ruby.js'));\nace.config.setModuleUrl('ace/snippets/rust', require('file-loader?esModule=false!./src-noconflict/snippets/rust.js'));\nace.config.setModuleUrl('ace/snippets/sac', require('file-loader?esModule=false!./src-noconflict/snippets/sac.js'));\nace.config.setModuleUrl('ace/snippets/sass', require('file-loader?esModule=false!./src-noconflict/snippets/sass.js'));\nace.config.setModuleUrl('ace/snippets/scad', require('file-loader?esModule=false!./src-noconflict/snippets/scad.js'));\nace.config.setModuleUrl('ace/snippets/scala', require('file-loader?esModule=false!./src-noconflict/snippets/scala.js'));\nace.config.setModuleUrl('ace/snippets/scheme', require('file-loader?esModule=false!./src-noconflict/snippets/scheme.js'));\nace.config.setModuleUrl('ace/snippets/scrypt', require('file-loader?esModule=false!./src-noconflict/snippets/scrypt.js'));\nace.config.setModuleUrl('ace/snippets/scss', require('file-loader?esModule=false!./src-noconflict/snippets/scss.js'));\nace.config.setModuleUrl('ace/snippets/sh', require('file-loader?esModule=false!./src-noconflict/snippets/sh.js'));\nace.config.setModuleUrl('ace/snippets/sjs', require('file-loader?esModule=false!./src-noconflict/snippets/sjs.js'));\nace.config.setModuleUrl('ace/snippets/slim', require('file-loader?esModule=false!./src-noconflict/snippets/slim.js'));\nace.config.setModuleUrl('ace/snippets/smarty', require('file-loader?esModule=false!./src-noconflict/snippets/smarty.js'));\nace.config.setModuleUrl('ace/snippets/smithy', require('file-loader?esModule=false!./src-noconflict/snippets/smithy.js'));\nace.config.setModuleUrl('ace/snippets/snippets', require('file-loader?esModule=false!./src-noconflict/snippets/snippets.js'));\nace.config.setModuleUrl('ace/snippets/soy_template', require('file-loader?esModule=false!./src-noconflict/snippets/soy_template.js'));\nace.config.setModuleUrl('ace/snippets/space', require('file-loader?esModule=false!./src-noconflict/snippets/space.js'));\nace.config.setModuleUrl('ace/snippets/sparql', require('file-loader?esModule=false!./src-noconflict/snippets/sparql.js'));\nace.config.setModuleUrl('ace/snippets/sql', require('file-loader?esModule=false!./src-noconflict/snippets/sql.js'));\nace.config.setModuleUrl('ace/snippets/sqlserver', require('file-loader?esModule=false!./src-noconflict/snippets/sqlserver.js'));\nace.config.setModuleUrl('ace/snippets/stylus', require('file-loader?esModule=false!./src-noconflict/snippets/stylus.js'));\nace.config.setModuleUrl('ace/snippets/svg', require('file-loader?esModule=false!./src-noconflict/snippets/svg.js'));\nace.config.setModuleUrl('ace/snippets/swift', require('file-loader?esModule=false!./src-noconflict/snippets/swift.js'));\nace.config.setModuleUrl('ace/snippets/tcl', require('file-loader?esModule=false!./src-noconflict/snippets/tcl.js'));\nace.config.setModuleUrl('ace/snippets/terraform', require('file-loader?esModule=false!./src-noconflict/snippets/terraform.js'));\nace.config.setModuleUrl('ace/snippets/tex', require('file-loader?esModule=false!./src-noconflict/snippets/tex.js'));\nace.config.setModuleUrl('ace/snippets/text', require('file-loader?esModule=false!./src-noconflict/snippets/text.js'));\nace.config.setModuleUrl('ace/snippets/textile', require('file-loader?esModule=false!./src-noconflict/snippets/textile.js'));\nace.config.setModuleUrl('ace/snippets/toml', require('file-loader?esModule=false!./src-noconflict/snippets/toml.js'));\nace.config.setModuleUrl('ace/snippets/tsv', require('file-loader?esModule=false!./src-noconflict/snippets/tsv.js'));\nace.config.setModuleUrl('ace/snippets/tsx', require('file-loader?esModule=false!./src-noconflict/snippets/tsx.js'));\nace.config.setModuleUrl('ace/snippets/turtle', require('file-loader?esModule=false!./src-noconflict/snippets/turtle.js'));\nace.config.setModuleUrl('ace/snippets/twig', require('file-loader?esModule=false!./src-noconflict/snippets/twig.js'));\nace.config.setModuleUrl('ace/snippets/typescript', require('file-loader?esModule=false!./src-noconflict/snippets/typescript.js'));\nace.config.setModuleUrl('ace/snippets/vala', require('file-loader?esModule=false!./src-noconflict/snippets/vala.js'));\nace.config.setModuleUrl('ace/snippets/vbscript', require('file-loader?esModule=false!./src-noconflict/snippets/vbscript.js'));\nace.config.setModuleUrl('ace/snippets/velocity', require('file-loader?esModule=false!./src-noconflict/snippets/velocity.js'));\nace.config.setModuleUrl('ace/snippets/verilog', require('file-loader?esModule=false!./src-noconflict/snippets/verilog.js'));\nace.config.setModuleUrl('ace/snippets/vhdl', require('file-loader?esModule=false!./src-noconflict/snippets/vhdl.js'));\nace.config.setModuleUrl('ace/snippets/visualforce', require('file-loader?esModule=false!./src-noconflict/snippets/visualforce.js'));\nace.config.setModuleUrl('ace/snippets/vue', require('file-loader?esModule=false!./src-noconflict/snippets/vue.js'));\nace.config.setModuleUrl('ace/snippets/wollok', require('file-loader?esModule=false!./src-noconflict/snippets/wollok.js'));\nace.config.setModuleUrl('ace/snippets/xml', require('file-loader?esModule=false!./src-noconflict/snippets/xml.js'));\nace.config.setModuleUrl('ace/snippets/xquery', require('file-loader?esModule=false!./src-noconflict/snippets/xquery.js'));\nace.config.setModuleUrl('ace/snippets/yaml', require('file-loader?esModule=false!./src-noconflict/snippets/yaml.js'));\nace.config.setModuleUrl('ace/snippets/zeek', require('file-loader?esModule=false!./src-noconflict/snippets/zeek.js'));\nace.config.setModuleUrl('ace/snippets/zig', require('file-loader?esModule=false!./src-noconflict/snippets/zig.js'));","import { DEBUG_BUILD } from '../debug-build.js';\nimport { logger } from '../logger.js';\nimport { getFunctionName } from '../stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumentFn();\n instrumented[type] = true;\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n","module.exports = __webpack_public_path__ + \"d4f1a314cb3668f8e17f24bccf0229b6.js\";","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { devUseWarning } from '../../_util/warning';\nimport { defaultConfig } from '../../theme/internal';\nimport useThemeKey from './useThemeKey';\nexport default function useTheme(theme, parentTheme, config) {\n var _a, _b;\n const warning = devUseWarning('ConfigProvider');\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? Object.assign(Object.assign({}, defaultConfig), {\n hashed: (_a = parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.hashed) !== null && _a !== void 0 ? _a : defaultConfig.hashed,\n cssVar: parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.cssVar\n }) : parentTheme;\n const themeKey = useThemeKey();\n if (process.env.NODE_ENV !== 'production') {\n const cssVarEnabled = themeConfig.cssVar || parentThemeConfig.cssVar;\n const validKey = !!(typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || themeKey);\n process.env.NODE_ENV !== \"production\" ? warning(!cssVarEnabled || validKey, 'breaking', 'Missing key in `cssVar` config. Please upgrade to React 18 or set `cssVar.key` manually in each ConfigProvider inside `cssVar` enabled ConfigProvider.') : void 0;\n }\n return useMemo(() => {\n var _a, _b;\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n const cssVarKey = `css-var-${themeKey.replace(/:/g, '')}`;\n const mergedCssVar = ((_a = themeConfig.cssVar) !== null && _a !== void 0 ? _a : parentThemeConfig.cssVar) && Object.assign(Object.assign(Object.assign({\n prefix: config === null || config === void 0 ? void 0 : config.prefixCls\n }, typeof parentThemeConfig.cssVar === 'object' ? parentThemeConfig.cssVar : {}), typeof themeConfig.cssVar === 'object' ? themeConfig.cssVar : {}), {\n key: typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || cssVarKey\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents,\n cssVar: mergedCssVar\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n}","module.exports = __webpack_public_path__ + \"2fe2904fc024afaf81732563cb83e547.js\";","module.exports = __webpack_public_path__ + \"2d2a75e3d01a74b93d07db04df8abe5e.js\";","module.exports = __webpack_public_path__ + \"24f97ddd76026815674affbc50ad6169.js\";","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","import { logger, uuid4, timestampInSeconds, isThenable, GLOBAL_OBJ } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getCurrentScope, getIsolationScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception,\n hint,\n) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n () => {\n finishCheckIn('error');\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return !!client && client.getOptions().enabled !== false && !!client.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n//# sourceMappingURL=exports.js.map\n","module.exports = __webpack_public_path__ + \"8ed58ed9c7e1cb1ae1f2830d29011ffb.js\";","module.exports = __webpack_public_path__ + \"6b4b87a54f673cfbb82be45329441bef.js\";","'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","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useMergedState } from 'rc-util';\nimport { useMemo } from 'react';\nimport { generateColor } from \"../util\";\nvar useColorState = function useColorState(defaultValue, value) {\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var color = useMemo(function () {\n return generateColor(mergedValue);\n }, [mergedValue]);\n return [color, setValue];\n};\nexport default useColorState;","import enumRule from \"./enum\";\nimport pattern from \"./pattern\";\nimport range from \"./range\";\nimport required from \"./required\";\nimport type from \"./type\";\nimport whitespace from \"./whitespace\";\nexport default {\n required: required,\n whitespace: whitespace,\n type: type,\n range: range,\n enum: enumRule,\n pattern: pattern\n};","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\n","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport seedToken from '../themes/seed';\nimport getAlphaColor from './getAlphaColor';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Line\n lineWidthFocus: mergedToken.lineWidth * 3,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","module.exports = __webpack_public_path__ + \"cb652f200fc3dd740b2e7f678a9272ea.js\";","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _CheckOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/CheckOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar CheckOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _CheckOutlined.default\n }));\n};\n/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(CheckOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"CheckOutlined\";\n}\nvar _default = RefIcon;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","\"use client\";\n\nimport React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nexport function pickClosable(context) {\n if (!context) {\n return undefined;\n }\n return {\n closable: context.closable,\n closeIcon: context.closeIcon\n };\n}\n/** Convert `closable` and `closeIcon` to config object */\nfunction useClosableConfig(closableCollection) {\n const {\n closable,\n closeIcon\n } = closableCollection || {};\n return React.useMemo(() => {\n if (\n // If `closable`, whatever rest be should be true\n !closable && (closable === false || closeIcon === false || closeIcon === null)) {\n return false;\n }\n if (closable === undefined && closeIcon === undefined) {\n return null;\n }\n let closableConfig = {\n closeIcon: typeof closeIcon !== 'boolean' && closeIcon !== null ? closeIcon : undefined\n };\n if (closable && typeof closable === 'object') {\n closableConfig = Object.assign(Object.assign({}, closableConfig), closable);\n }\n return closableConfig;\n }, [closable, closeIcon]);\n}\n/**\n * Assign object without `undefined` field. Will skip if is `false`.\n * This helps to handle both closableConfig or false\n */\nfunction assignWithoutUndefined() {\n const target = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(obj => {\n if (obj) {\n Object.keys(obj).forEach(key => {\n if (obj[key] !== undefined) {\n target[key] = obj[key];\n }\n });\n }\n });\n return target;\n}\n/** Use same object to support `useMemo` optimization */\nconst EmptyFallbackCloseCollection = {};\nexport default function useClosable(propCloseCollection, contextCloseCollection) {\n let fallbackCloseCollection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : EmptyFallbackCloseCollection;\n // Align the `props`, `context` `fallback` to config object first\n const propCloseConfig = useClosableConfig(propCloseCollection);\n const contextCloseConfig = useClosableConfig(contextCloseCollection);\n const closeBtnIsDisabled = typeof propCloseConfig !== 'boolean' ? !!(propCloseConfig === null || propCloseConfig === void 0 ? void 0 : propCloseConfig.disabled) : false;\n const mergedFallbackCloseCollection = React.useMemo(() => Object.assign({\n closeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null)\n }, fallbackCloseCollection), [fallbackCloseCollection]);\n // Use fallback logic to fill the config\n const mergedClosableConfig = React.useMemo(() => {\n // ================ Props First ================\n // Skip if prop is disabled\n if (propCloseConfig === false) {\n return false;\n }\n if (propCloseConfig) {\n return assignWithoutUndefined(mergedFallbackCloseCollection, contextCloseConfig, propCloseConfig);\n }\n // =============== Context Second ==============\n // Skip if context is disabled\n if (contextCloseConfig === false) {\n return false;\n }\n if (contextCloseConfig) {\n return assignWithoutUndefined(mergedFallbackCloseCollection, contextCloseConfig);\n }\n // ============= Fallback Default ==============\n return !mergedFallbackCloseCollection.closable ? false : mergedFallbackCloseCollection;\n }, [propCloseConfig, contextCloseConfig, mergedFallbackCloseCollection]);\n // Calculate the final closeIcon\n return React.useMemo(() => {\n if (mergedClosableConfig === false) {\n return [false, null, closeBtnIsDisabled];\n }\n const {\n closeIconRender\n } = mergedFallbackCloseCollection;\n const {\n closeIcon\n } = mergedClosableConfig;\n let mergedCloseIcon = closeIcon;\n if (mergedCloseIcon !== null && mergedCloseIcon !== undefined) {\n // Wrap the closeIcon if needed\n if (closeIconRender) {\n mergedCloseIcon = closeIconRender(closeIcon);\n }\n // Wrap the closeIcon with aria props\n const ariaProps = pickAttrs(mergedClosableConfig, true);\n if (Object.keys(ariaProps).length) {\n mergedCloseIcon = /*#__PURE__*/React.isValidElement(mergedCloseIcon) ? (/*#__PURE__*/React.cloneElement(mergedCloseIcon, ariaProps)) : (/*#__PURE__*/React.createElement(\"span\", Object.assign({}, ariaProps), mergedCloseIcon));\n }\n }\n return [true, mergedCloseIcon, closeBtnIsDisabled];\n }, [mergedClosableConfig, mergedFallbackCloseCollection]);\n}","module.exports = __webpack_public_path__ + \"caf0856934a6dcba7b4a70fb5897a4c9.js\";","module.exports = __webpack_public_path__ + \"5106411f7468a5ee5b1ee77aed12c0c7.js\";","module.exports = __webpack_public_path__ + \"2f055ac4066041b9008dd6aebf9df34b.js\";","// Vendored / modified from @sergiodxa/remix-utils\n\n// https://github.com/sergiodxa/remix-utils/blob/02af80e12829a53696bfa8f3c2363975cf59f55e/src/server/get-client-ip-address.ts\n// MIT License\n\n// Copyright (c) 2021 Sergio Xalambrí\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 deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// 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 all\n// 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 FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n// The headers to check, in priority order\nconst ipHeaderNames = [\n 'X-Client-IP',\n 'X-Forwarded-For',\n 'Fly-Client-IP',\n 'CF-Connecting-IP',\n 'Fastly-Client-Ip',\n 'True-Client-Ip',\n 'X-Real-IP',\n 'X-Cluster-Client-IP',\n 'X-Forwarded',\n 'Forwarded-For',\n 'Forwarded',\n 'X-Vercel-Forwarded-For',\n];\n\n/**\n * Get the IP address of the client sending a request.\n *\n * It receives a Request headers object and use it to get the\n * IP address from one of the following headers in order.\n *\n * If the IP address is valid, it will be returned. Otherwise, null will be\n * returned.\n *\n * If the header values contains more than one IP address, the first valid one\n * will be returned.\n */\nfunction getClientIPAddress(headers) {\n // This will end up being Array<string | string[] | undefined | null> because of the various possible values a header\n // can take\n const headerValues = ipHeaderNames.map((headerName) => {\n const rawValue = headers[headerName];\n const value = Array.isArray(rawValue) ? rawValue.join(';') : rawValue;\n\n if (headerName === 'Forwarded') {\n return parseForwardedHeader(value);\n }\n\n return value && value.split(',').map((v) => v.trim());\n });\n\n // Flatten the array and filter out any falsy entries\n const flattenedHeaderValues = headerValues.reduce((acc, val) => {\n if (!val) {\n return acc;\n }\n\n return acc.concat(val);\n }, []);\n\n // Find the first value which is a valid IP address, if any\n const ipAddress = flattenedHeaderValues.find(ip => ip !== null && isIP(ip));\n\n return ipAddress || null;\n}\n\nfunction parseForwardedHeader(value) {\n if (!value) {\n return null;\n }\n\n for (const part of value.split(';')) {\n if (part.startsWith('for=')) {\n return part.slice(4);\n }\n }\n\n return null;\n}\n\n//\n/**\n * Custom method instead of importing this from `net` package, as this only exists in node\n * Accepts:\n * 127.0.0.1\n * 192.168.1.1\n * 192.168.1.255\n * 255.255.255.255\n * 10.1.1.1\n * 0.0.0.0\n * 2b01:cb19:8350:ed00:d0dd:fa5b:de31:8be5\n *\n * Rejects:\n * 1.1.1.01\n * 30.168.1.255.1\n * 127.1\n * 192.168.1.256\n * -1.2.3.4\n * 1.1.1.1.\n * 3...3\n * 192.168.1.099\n */\nfunction isIP(str) {\n const regex =\n /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n\nexport { getClientIPAddress, ipHeaderNames };\n//# sourceMappingURL=getIpAddress.js.map\n","module.exports = __webpack_public_path__ + \"c80e89199aef31e48addb2b35ea96365.js\";","export function newMessages() {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid'\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s'\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters'\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s'\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length'\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s'\n },\n clone: function clone() {\n var cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n }\n };\n}\nexport var messages = newMessages();","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","module.exports = __webpack_public_path__ + \"b60ba1535a60c18ce97b4e7f53ddbe67.js\";","module.exports = __webpack_public_path__ + \"54560f13b36626237959e93b7771a484.js\";","/**\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\nmodule.exports = eq;\n","/*\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n fontSize: @fontSize;\n line-height: @lineHeight;\n}\n*/\nimport { gold } from '@ant-design/colors';\nimport { unit } from '@ant-design/cssinjs';\nimport { operationUnit } from '../../style';\nconst getTitleStyle = (fontSize, lineHeight, color, token) => {\n const {\n titleMarginBottom,\n fontWeightStrong\n } = token;\n return {\n marginBottom: titleMarginBottom,\n color,\n fontWeight: fontWeightStrong,\n fontSize,\n lineHeight\n };\n};\nexport const getTitleStyles = token => {\n const headings = [1, 2, 3, 4, 5];\n const styles = {};\n headings.forEach(headingLevel => {\n styles[`\n h${headingLevel}&,\n div&-h${headingLevel},\n div&-h${headingLevel} > textarea,\n h${headingLevel}\n `] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);\n });\n return styles;\n};\nexport const getLinkStyles = token => {\n const {\n componentCls\n } = token;\n return {\n 'a&, a': Object.assign(Object.assign({}, operationUnit(token)), {\n userSelect: 'text',\n [`&[disabled], &${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:active, &:hover': {\n color: token.colorTextDisabled\n },\n '&:active': {\n pointerEvents: 'none'\n }\n }\n })\n };\n};\nexport const getResetStyles = token => ({\n code: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.2em 0.1em',\n fontSize: '85%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3\n },\n kbd: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.15em 0.1em',\n fontSize: '90%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.06)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderBottomWidth: 2,\n borderRadius: 3\n },\n mark: {\n padding: 0,\n // FIXME hardcode in v4\n backgroundColor: gold[2]\n },\n 'u, ins': {\n textDecoration: 'underline',\n textDecorationSkipInk: 'auto'\n },\n 's, del': {\n textDecoration: 'line-through'\n },\n strong: {\n fontWeight: 600\n },\n // list\n 'ul, ol': {\n marginInline: 0,\n marginBlock: '0 1em',\n padding: 0,\n li: {\n marginInline: '20px 0',\n marginBlock: 0,\n paddingInline: '4px 0',\n paddingBlock: 0\n }\n },\n ul: {\n listStyleType: 'circle',\n ul: {\n listStyleType: 'disc'\n }\n },\n ol: {\n listStyleType: 'decimal'\n },\n // pre & block\n 'pre, blockquote': {\n margin: '1em 0'\n },\n pre: {\n padding: '0.4em 0.6em',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3,\n fontFamily: token.fontFamilyCode,\n // Compatible for marked\n code: {\n display: 'inline',\n margin: 0,\n padding: 0,\n fontSize: 'inherit',\n fontFamily: 'inherit',\n background: 'transparent',\n border: 0\n }\n },\n blockquote: {\n paddingInline: '0.6em 0',\n paddingBlock: 0,\n borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',\n opacity: 0.85\n }\n});\nexport const getEditableStyles = token => {\n const {\n componentCls,\n paddingSM\n } = token;\n const inputShift = paddingSM;\n return {\n '&-edit-content': {\n position: 'relative',\n 'div&': {\n insetInlineStart: token.calc(token.paddingSM).mul(-1).equal(),\n marginTop: token.calc(inputShift).mul(-1).equal(),\n marginBottom: `calc(1em - ${unit(inputShift)})`\n },\n [`${componentCls}-edit-content-confirm`]: {\n position: 'absolute',\n insetInlineEnd: token.calc(token.marginXS).add(2).equal(),\n insetBlockEnd: token.marginXS,\n color: token.colorTextDescription,\n // default style\n fontWeight: 'normal',\n fontSize: token.fontSize,\n fontStyle: 'normal',\n pointerEvents: 'none'\n },\n textarea: {\n margin: '0!important',\n // Fix Editable Textarea flash in Firefox\n MozTransition: 'none',\n height: '1em'\n }\n }\n };\n};\nexport const getCopyableStyles = token => ({\n [`${token.componentCls}-copy-success`]: {\n [`\n &,\n &:hover,\n &:focus`]: {\n color: token.colorSuccess\n }\n },\n [`${token.componentCls}-copy-icon-only`]: {\n marginInlineStart: 0\n }\n});\nexport const getEllipsisStyles = () => ({\n [`\n a&-ellipsis,\n span&-ellipsis\n `]: {\n display: 'inline-block',\n maxWidth: '100%'\n },\n '&-ellipsis-single-line': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // https://blog.csdn.net/iefreer/article/details/50421025\n 'a&, span&': {\n verticalAlign: 'bottom'\n },\n '> code': {\n paddingBlock: 0,\n maxWidth: 'calc(100% - 1.2em)',\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'bottom',\n // https://github.com/ant-design/ant-design/issues/45953\n boxSizing: 'content-box'\n }\n },\n '&-ellipsis-multiple-line': {\n display: '-webkit-box',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical'\n }\n});","import { operationUnit } from '../../style';\nimport { genStyleHooks } from '../../theme/internal';\nimport { getCopyableStyles, getEditableStyles, getEllipsisStyles, getLinkStyles, getResetStyles, getTitleStyles } from './mixins';\nconst genTypographyStyle = token => {\n const {\n componentCls,\n titleMarginTop\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorText,\n wordBreak: 'break-word',\n lineHeight: token.lineHeight,\n [`&${componentCls}-secondary`]: {\n color: token.colorTextDescription\n },\n [`&${componentCls}-success`]: {\n color: token.colorSuccess\n },\n [`&${componentCls}-warning`]: {\n color: token.colorWarning\n },\n [`&${componentCls}-danger`]: {\n color: token.colorError,\n 'a&:active, a&:focus': {\n color: token.colorErrorActive\n },\n 'a&:hover': {\n color: token.colorErrorHover\n }\n },\n [`&${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n userSelect: 'none'\n },\n [`\n div&,\n p\n `]: {\n marginBottom: '1em'\n }\n }, getTitleStyles(token)), {\n [`\n & + h1${componentCls},\n & + h2${componentCls},\n & + h3${componentCls},\n & + h4${componentCls},\n & + h5${componentCls}\n `]: {\n marginTop: titleMarginTop\n },\n [`\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5`]: {\n [`\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n `]: {\n marginTop: titleMarginTop\n }\n }\n }), getResetStyles(token)), getLinkStyles(token)), {\n // Operation\n [`\n ${componentCls}-expand,\n ${componentCls}-collapse,\n ${componentCls}-edit,\n ${componentCls}-copy\n `]: Object.assign(Object.assign({}, operationUnit(token)), {\n marginInlineStart: token.marginXXS\n })\n }), getEditableStyles(token)), getCopyableStyles(token)), getEllipsisStyles()), {\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\nexport const prepareComponentToken = () => ({\n titleMarginTop: '1.2em',\n titleMarginBottom: '0.5em'\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Typography', token => [genTypographyStyle(token)], prepareComponentToken);","\"use client\";\n\nimport * as React from 'react';\nimport EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { cloneElement } from '../_util/reactNode';\nimport TextArea from '../input/TextArea';\nimport useStyle from './style';\nconst Editable = props => {\n const {\n prefixCls,\n 'aria-label': ariaLabel,\n className,\n style,\n direction,\n maxLength,\n autoSize = true,\n value,\n onSave,\n onCancel,\n onEnd,\n component,\n enterIcon = /*#__PURE__*/React.createElement(EnterOutlined, null)\n } = props;\n const ref = React.useRef(null);\n const inComposition = React.useRef(false);\n const lastKeyCode = React.useRef();\n const [current, setCurrent] = React.useState(value);\n React.useEffect(() => {\n setCurrent(value);\n }, [value]);\n React.useEffect(() => {\n var _a;\n if ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) {\n const {\n textArea\n } = ref.current.resizableTextArea;\n textArea.focus();\n const {\n length\n } = textArea.value;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n const onChange = _ref => {\n let {\n target\n } = _ref;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n const onCompositionStart = () => {\n inComposition.current = true;\n };\n const onCompositionEnd = () => {\n inComposition.current = false;\n };\n const onKeyDown = _ref2 => {\n let {\n keyCode\n } = _ref2;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n const confirmChange = () => {\n onSave(current.trim());\n };\n const onKeyUp = _ref3 => {\n let {\n keyCode,\n ctrlKey,\n altKey,\n metaKey,\n shiftKey\n } = _ref3;\n // Check if it's a real key\n if (lastKeyCode.current !== keyCode || inComposition.current || ctrlKey || altKey || metaKey || shiftKey) {\n return;\n }\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n };\n const onBlur = () => {\n confirmChange();\n };\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const textAreaClassName = classNames(prefixCls, `${prefixCls}-edit-content`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${component}`]: !!component\n }, className, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: `${prefixCls}-edit-content-confirm`\n }) : null));\n};\nexport default Editable;","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport * as React from 'react';\nimport copy from 'copy-to-clipboard';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport toList from '../../_util/toList';\nconst useCopyClick = _ref => {\n let {\n copyConfig,\n children\n } = _ref;\n const [copied, setCopied] = React.useState(false);\n const [copyLoading, setCopyLoading] = React.useState(false);\n const copyIdRef = React.useRef(null);\n const cleanCopyId = () => {\n if (copyIdRef.current) {\n clearTimeout(copyIdRef.current);\n }\n };\n const copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n React.useEffect(() => cleanCopyId, []);\n // Keep copy action up to date\n const onClick = useEvent(e => __awaiter(void 0, void 0, void 0, function* () {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n setCopyLoading(true);\n try {\n const text = typeof copyConfig.text === 'function' ? yield copyConfig.text() : copyConfig.text;\n copy(text || toList(children, true).join('') || '', copyOptions);\n setCopyLoading(false);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = setTimeout(() => {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n } catch (error) {\n setCopyLoading(false);\n throw error;\n }\n }));\n return {\n copied,\n copyLoading,\n onClick\n };\n};\nexport default useCopyClick;","import * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(() => {\n const support = !!propConfig;\n return [support, Object.assign(Object.assign({}, templateConfig), support && typeof propConfig === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Typography = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n component: Component = 'article',\n className,\n rootClassName,\n setContentRef,\n children,\n direction: typographyDirection,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"component\", \"className\", \"rootClassName\", \"setContentRef\", \"children\", \"direction\", \"style\"]);\n const {\n getPrefixCls,\n direction: contextDirection,\n typography\n } = React.useContext(ConfigContext);\n const direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n const mergedRef = setContentRef ? composeRef(ref, setContentRef) : ref;\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Typography');\n warning.deprecated(!setContentRef, 'setContentRef', 'ref');\n }\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const componentClassName = classNames(prefixCls, typography === null || typography === void 0 ? void 0 : typography.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId, cssVarCls);\n const mergedStyle = Object.assign(Object.assign({}, typography === null || typography === void 0 ? void 0 : typography.style), style);\n return wrapCSSVar(\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, Object.assign({\n className: componentClassName,\n style: mergedStyle,\n ref: mergedRef\n }, restProps), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\nexport default Typography;","export function toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport function getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\n/**\n * Check for element is native ellipsis\n * ref:\n * - https://github.com/ant-design/ant-design/issues/50143\n * - https://github.com/ant-design/ant-design/issues/50414\n */\nexport function isEleEllipsis(ele) {\n // Create a new div to get the size\n const childDiv = document.createElement('em');\n ele.appendChild(childDiv);\n // For test case\n if (process.env.NODE_ENV !== 'production') {\n childDiv.className = 'ant-typography-css-ellipsis-content-measure';\n }\n const rect = ele.getBoundingClientRect();\n const childRect = childDiv.getBoundingClientRect();\n // Reset\n ele.removeChild(childDiv);\n // Range checker\n return (\n // Horizontal out of range\n rect.left > childRect.left || childRect.right > rect.right ||\n // Vertical out of range\n rect.top > childRect.top || childRect.bottom > rect.bottom\n );\n}\nexport const isValidText = val => ['string', 'number'].includes(typeof val);","\"use client\";\n\nimport * as React from 'react';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport Tooltip from '../../tooltip';\nimport { getNode, toList } from './util';\nconst CopyBtn = _ref => {\n let {\n prefixCls,\n copied,\n locale,\n iconOnly,\n tooltips,\n icon,\n tabIndex,\n onCopy,\n loading: btnLoading\n } = _ref;\n const tooltipNodes = toList(tooltips);\n const iconNodes = toList(icon);\n const {\n copied: copiedText,\n copy: copyText\n } = locale !== null && locale !== void 0 ? locale : {};\n const systemStr = copied ? copiedText : copyText;\n const copyTitle = getNode(tooltipNodes[copied ? 1 : 0], systemStr);\n const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n title: copyTitle\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: classNames(`${prefixCls}-copy`, {\n [`${prefixCls}-copy-success`]: copied,\n [`${prefixCls}-copy-icon-only`]: iconOnly\n }),\n onClick: onCopy,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], btnLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n};\nexport default CopyBtn;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { isValidText } from './util';\nconst MeasureText = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n style,\n children\n } = _ref;\n const spanRef = React.useRef(null);\n React.useImperativeHandle(ref, () => ({\n isExceed: () => {\n const span = spanRef.current;\n return span.scrollHeight > span.clientHeight;\n },\n getHeight: () => spanRef.current.clientHeight\n }));\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: spanRef,\n style: Object.assign({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n pointerEvents: 'none',\n backgroundColor: 'rgba(255, 0, 0, 0.65)'\n }, style)\n }, children);\n});\nconst getNodesLen = nodeList => nodeList.reduce((totalLen, node) => totalLen + (isValidText(node) ? String(node).length : 1), 0);\nfunction sliceNodes(nodeList, len) {\n let currLen = 0;\n const currentNodeList = [];\n for (let i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n const node = nodeList[i];\n const canCut = isValidText(node);\n const nodeLen = canCut ? String(node).length : 1;\n const nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n const restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\n// Measure for the `text` is exceed the `rows` or not\nconst STATUS_MEASURE_NONE = 0;\nconst STATUS_MEASURE_PREPARE = 1;\nconst STATUS_MEASURE_START = 2;\nconst STATUS_MEASURE_NEED_ELLIPSIS = 3;\nconst STATUS_MEASURE_NO_NEED_ELLIPSIS = 4;\nconst lineClipStyle = {\n display: '-webkit-box',\n overflow: 'hidden',\n WebkitBoxOrient: 'vertical'\n};\nexport default function EllipsisMeasure(props) {\n const {\n enableMeasure,\n width,\n text,\n children,\n rows,\n expanded,\n miscDeps,\n onEllipsis\n } = props;\n const nodeList = React.useMemo(() => toArray(text), [text]);\n const nodeLen = React.useMemo(() => getNodesLen(nodeList), [text]);\n // ========================= Full Content =========================\n // Used for measure only, which means it's always render as no need ellipsis\n const fullContent = React.useMemo(() => children(nodeList, false), [text]);\n // ========================= Cut Content ==========================\n const [ellipsisCutIndex, setEllipsisCutIndex] = React.useState(null);\n const cutMidRef = React.useRef(null);\n // ========================= NeedEllipsis =========================\n const measureWhiteSpaceRef = React.useRef(null);\n const needEllipsisRef = React.useRef(null);\n // Measure for `rows-1` height, to avoid operation exceed the line height\n const descRowsEllipsisRef = React.useRef(null);\n const symbolRowEllipsisRef = React.useRef(null);\n const [canEllipsis, setCanEllipsis] = React.useState(false);\n const [needEllipsis, setNeedEllipsis] = React.useState(STATUS_MEASURE_NONE);\n const [ellipsisHeight, setEllipsisHeight] = React.useState(0);\n const [parentWhiteSpace, setParentWhiteSpace] = React.useState(null);\n // Trigger start measure\n useLayoutEffect(() => {\n if (enableMeasure && width && nodeLen) {\n setNeedEllipsis(STATUS_MEASURE_PREPARE);\n } else {\n setNeedEllipsis(STATUS_MEASURE_NONE);\n }\n }, [width, text, rows, enableMeasure, nodeList]);\n // Measure process\n useLayoutEffect(() => {\n var _a, _b, _c, _d;\n if (needEllipsis === STATUS_MEASURE_PREPARE) {\n setNeedEllipsis(STATUS_MEASURE_START);\n // Parent ref `white-space`\n const nextWhiteSpace = measureWhiteSpaceRef.current && getComputedStyle(measureWhiteSpaceRef.current).whiteSpace;\n setParentWhiteSpace(nextWhiteSpace);\n } else if (needEllipsis === STATUS_MEASURE_START) {\n const isOverflow = !!((_a = needEllipsisRef.current) === null || _a === void 0 ? void 0 : _a.isExceed());\n setNeedEllipsis(isOverflow ? STATUS_MEASURE_NEED_ELLIPSIS : STATUS_MEASURE_NO_NEED_ELLIPSIS);\n setEllipsisCutIndex(isOverflow ? [0, nodeLen] : null);\n setCanEllipsis(isOverflow);\n // Get the basic height of ellipsis rows\n const baseRowsEllipsisHeight = ((_b = needEllipsisRef.current) === null || _b === void 0 ? void 0 : _b.getHeight()) || 0;\n // Get the height of `rows - 1` + symbol height\n const descRowsEllipsisHeight = rows === 1 ? 0 : ((_c = descRowsEllipsisRef.current) === null || _c === void 0 ? void 0 : _c.getHeight()) || 0;\n const symbolRowEllipsisHeight = ((_d = symbolRowEllipsisRef.current) === null || _d === void 0 ? void 0 : _d.getHeight()) || 0;\n const maxRowsHeight = Math.max(baseRowsEllipsisHeight,\n // height of rows with ellipsis\n descRowsEllipsisHeight + symbolRowEllipsisHeight);\n setEllipsisHeight(maxRowsHeight + 1);\n onEllipsis(isOverflow);\n }\n }, [needEllipsis]);\n // ========================= Cut Measure ==========================\n const cutMidIndex = ellipsisCutIndex ? Math.ceil((ellipsisCutIndex[0] + ellipsisCutIndex[1]) / 2) : 0;\n useLayoutEffect(() => {\n var _a;\n const [minIndex, maxIndex] = ellipsisCutIndex || [0, 0];\n if (minIndex !== maxIndex) {\n const midHeight = ((_a = cutMidRef.current) === null || _a === void 0 ? void 0 : _a.getHeight()) || 0;\n const isOverflow = midHeight > ellipsisHeight;\n let targetMidIndex = cutMidIndex;\n if (maxIndex - minIndex === 1) {\n targetMidIndex = isOverflow ? minIndex : maxIndex;\n }\n setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);\n }\n }, [ellipsisCutIndex, cutMidIndex]);\n // ========================= Text Content =========================\n const finalContent = React.useMemo(() => {\n // Skip everything if `enableMeasure` is disabled\n if (!enableMeasure) {\n return children(nodeList, false);\n }\n if (needEllipsis !== STATUS_MEASURE_NEED_ELLIPSIS || !ellipsisCutIndex || ellipsisCutIndex[0] !== ellipsisCutIndex[1]) {\n const content = children(nodeList, false);\n // Limit the max line count to avoid scrollbar blink unless no need ellipsis\n // https://github.com/ant-design/ant-design/issues/42958\n if ([STATUS_MEASURE_NO_NEED_ELLIPSIS, STATUS_MEASURE_NONE].includes(needEllipsis)) {\n return content;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: Object.assign(Object.assign({}, lineClipStyle), {\n WebkitLineClamp: rows\n })\n }, content);\n }\n return children(expanded ? nodeList : sliceNodes(nodeList, ellipsisCutIndex[0]), canEllipsis);\n }, [expanded, needEllipsis, ellipsisCutIndex, nodeList].concat(_toConsumableArray(miscDeps)));\n // ============================ Render ============================\n const measureStyle = {\n width,\n margin: 0,\n padding: 0,\n whiteSpace: parentWhiteSpace === 'nowrap' ? 'normal' : 'inherit'\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, finalContent, needEllipsis === STATUS_MEASURE_START && (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MeasureText, {\n style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n WebkitLineClamp: rows\n }),\n ref: needEllipsisRef\n }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n WebkitLineClamp: rows - 1\n }),\n ref: descRowsEllipsisRef\n }, fullContent), /*#__PURE__*/React.createElement(MeasureText, {\n style: Object.assign(Object.assign(Object.assign({}, measureStyle), lineClipStyle), {\n WebkitLineClamp: 1\n }),\n ref: symbolRowEllipsisRef\n }, children([], true)))), needEllipsis === STATUS_MEASURE_NEED_ELLIPSIS && ellipsisCutIndex && ellipsisCutIndex[0] !== ellipsisCutIndex[1] && (/*#__PURE__*/React.createElement(MeasureText, {\n style: Object.assign(Object.assign({}, measureStyle), {\n top: 400\n }),\n ref: cutMidRef\n }, children(sliceNodes(nodeList, cutMidIndex), true))), needEllipsis === STATUS_MEASURE_PREPARE && (/*#__PURE__*/React.createElement(\"span\", {\n style: {\n whiteSpace: 'inherit'\n },\n ref: measureWhiteSpaceRef\n })));\n}","\"use client\";\n\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nconst EllipsisTooltip = _ref => {\n let {\n enableEllipsis,\n isEllipsis,\n children,\n tooltipProps\n } = _ref;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enableEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport { ConfigContext } from '../../config-provider';\nimport useLocale from '../../locale/useLocale';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport useCopyClick from '../hooks/useCopyClick';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport usePrevious from '../hooks/usePrevious';\nimport useTooltipProps from '../hooks/useTooltipProps';\nimport Typography from '../Typography';\nimport CopyBtn from './CopyBtn';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nimport { isEleEllipsis, isValidText } from './util';\nfunction wrapperDecorations(_ref, content) {\n let {\n mark,\n code,\n underline,\n delete: del,\n strong,\n keyboard,\n italic\n } = _ref;\n let currentContent = content;\n function wrap(tag, needed) {\n if (!needed) {\n return;\n }\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap('strong', strong);\n wrap('u', underline);\n wrap('del', del);\n wrap('code', code);\n wrap('mark', mark);\n wrap('kbd', keyboard);\n wrap('i', italic);\n return currentContent;\n}\nconst ELLIPSIS_STR = '...';\nconst Base = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n type,\n disabled,\n children,\n ellipsis,\n editable,\n copyable,\n component,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [textLocale] = useLocale('Text');\n const typographyRef = React.useRef(null);\n const editIconRef = React.useRef(null);\n // ============================ MISC ============================\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n const textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n const [enableEdit, editConfig] = useMergedConfig(editable);\n const [editing, setEditing] = useMergedState(false, {\n value: editConfig.editing\n });\n const {\n triggerType = ['icon']\n } = editConfig;\n const triggerEdit = edit => {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n const prevEditing = usePrevious(editing);\n useLayoutEffect(() => {\n var _a;\n if (!editing && prevEditing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n const onEditClick = e => {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n const onEditChange = value => {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n const onEditCancel = () => {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n const [enableCopy, copyConfig] = useMergedConfig(copyable);\n const {\n copied,\n copyLoading,\n onClick: onCopyClick\n } = useCopyClick({\n copyConfig,\n children\n });\n // ========================== Ellipsis ==========================\n const [isLineClampSupport, setIsLineClampSupport] = React.useState(false);\n const [isTextOverflowSupport, setIsTextOverflowSupport] = React.useState(false);\n const [isJsEllipsis, setIsJsEllipsis] = React.useState(false);\n const [isNativeEllipsis, setIsNativeEllipsis] = React.useState(false);\n const [isNativeVisible, setIsNativeVisible] = React.useState(true);\n const [enableEllipsis, ellipsisConfig] = useMergedConfig(ellipsis, {\n expandable: false,\n symbol: isExpanded => isExpanded ? textLocale === null || textLocale === void 0 ? void 0 : textLocale.collapse : textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand\n });\n const [expanded, setExpanded] = useMergedState(ellipsisConfig.defaultExpanded || false, {\n value: ellipsisConfig.expanded\n });\n const mergedEnableEllipsis = enableEllipsis && (!expanded || ellipsisConfig.expandable === 'collapsible');\n // Shared prop to reduce bundle size\n const {\n rows = 1\n } = ellipsisConfig;\n const needMeasureEllipsis = React.useMemo(() =>\n // Disable ellipsis\n mergedEnableEllipsis && (\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy), [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useLayoutEffect(() => {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n const [cssEllipsis, setCssEllipsis] = React.useState(mergedEnableEllipsis);\n const canUseCssEllipsis = React.useMemo(() => {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n // We use effect to change from css ellipsis to js ellipsis.\n // To make SSR still can see the ellipsis.\n useLayoutEffect(() => {\n setCssEllipsis(canUseCssEllipsis && mergedEnableEllipsis);\n }, [canUseCssEllipsis, mergedEnableEllipsis]);\n const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n const onExpandClick = (e, info) => {\n var _a;\n setExpanded(info.expanded);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e, info);\n };\n const [ellipsisWidth, setEllipsisWidth] = React.useState(0);\n const onResize = _ref2 => {\n let {\n offsetWidth\n } = _ref2;\n setEllipsisWidth(offsetWidth);\n };\n // >>>>> JS Ellipsis\n const onJsEllipsis = jsEllipsis => {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n const currentEllipsis = isEleEllipsis(textEle);\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible, ellipsisWidth]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n const observer = new IntersectionObserver(() => {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return () => {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n const tooltipProps = useTooltipProps(ellipsisConfig.tooltip, editConfig.text, children);\n const topAriaLabel = React.useMemo(() => {\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n return [editConfig.text, children, title, tooltipProps.title].find(isValidText);\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_a = editConfig.text) !== null && _a !== void 0 ? _a : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n const renderExpand = () => {\n const {\n expandable,\n symbol\n } = ellipsisConfig;\n return expandable ? (/*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"expand\",\n className: `${prefixCls}-${expanded ? 'collapse' : 'expand'}`,\n onClick: e => onExpandClick(e, {\n expanded: !expanded\n }),\n \"aria-label\": expanded ? textLocale.collapse : textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand\n }, typeof symbol === 'function' ? symbol(expanded) : symbol)) : null;\n };\n // Edit\n const renderEdit = () => {\n if (!enableEdit) {\n return;\n }\n const {\n icon,\n tooltip,\n tabIndex\n } = editConfig;\n const editTitle = toArray(tooltip)[0] || (textLocale === null || textLocale === void 0 ? void 0 : textLocale.edit);\n const ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? (/*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n ref: editIconRef,\n className: `${prefixCls}-edit`,\n onClick: onEditClick,\n \"aria-label\": ariaLabel,\n tabIndex: tabIndex\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n })))) : null;\n };\n // Copy\n const renderCopy = () => {\n if (!enableCopy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CopyBtn, Object.assign({\n key: \"copy\"\n }, copyConfig, {\n prefixCls: prefixCls,\n copied: copied,\n locale: textLocale,\n onCopy: onCopyClick,\n loading: copyLoading,\n iconOnly: children === null || children === undefined\n }));\n };\n const renderOperations = canEllipsis => [canEllipsis && renderExpand(), renderEdit(), renderCopy()];\n const renderEllipsis = canEllipsis => [canEllipsis && !expanded && (/*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR)), ellipsisConfig.suffix, renderOperations(canEllipsis)];\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis\n }, resizeRef => (/*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enableEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, Object.assign({\n className: classNames({\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-ellipsis`]: enableEllipsis,\n [`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,\n [`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp\n }, className),\n prefixCls: customizePrefixCls,\n style: Object.assign(Object.assign({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enableMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n onEllipsis: onJsEllipsis,\n expanded: expanded,\n miscDeps: [copied, expanded, copyLoading, enableEdit, enableCopy]\n }, (node, canEllipsis) => wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, node.length > 0 && canEllipsis && !expanded && topAriaLabel ? (/*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, node)) : node, renderEllipsis(canEllipsis))))))));\n});\nexport default Base;","import { useEffect, useRef } from 'react';\nconst usePrevious = value => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePrevious;","import { isValidElement, useMemo } from 'react';\nconst useTooltipProps = (tooltip, editConfigText, children) => useMemo(() => {\n if (tooltip === true) {\n return {\n title: editConfigText !== null && editConfigText !== void 0 ? editConfigText : children\n };\n }\n if (/*#__PURE__*/isValidElement(tooltip)) {\n return {\n title: tooltip\n };\n }\n if (typeof tooltip === 'object') {\n return Object.assign({\n title: editConfigText !== null && editConfigText !== void 0 ? editConfigText : children\n }, tooltip);\n }\n return {\n title: tooltip\n };\n}, [tooltip, editConfigText, children]);\nexport default useTooltipProps;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\nimport Base from './Base';\nconst Link = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n ellipsis,\n rel\n } = _a,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Typography.Link');\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object', 'usage', '`ellipsis` only supports boolean value.') : void 0;\n }\n const mergedProps = Object.assign(Object.assign({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, Object.assign({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","\"use client\";\n\nimport * as React from 'react';\nimport Base from './Base';\nconst Paragraph = /*#__PURE__*/React.forwardRef((props, ref) => (/*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n}, props, {\n component: \"div\"\n}))));\nexport default Paragraph;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport { devUseWarning } from '../_util/warning';\nimport Base from './Base';\nconst Text = (_a, ref) => {\n var {\n ellipsis\n } = _a,\n restProps = __rest(_a, [\"ellipsis\"]);\n const mergedEllipsis = React.useMemo(() => {\n if (ellipsis && typeof ellipsis === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Typography.Text');\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'usage', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n }\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\nimport Base from './Base';\nconst TITLE_ELE_LIST = [1, 2, 3, 4, 5];\nconst Title = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n level = 1\n } = props,\n restProps = __rest(props, [\"level\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Typography.Title');\n process.env.NODE_ENV !== \"production\" ? warning(TITLE_ELE_LIST.includes(level), 'usage', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n }\n const component = TITLE_ELE_LIST.includes(level) ? `h${level}` : `h1`;\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","\"use client\";\n\nimport Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nconst Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","import { defineIntegration, getClient, withScope, captureMessage } from '@sentry/core';\nimport { supportsReportingObserver, GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst INTEGRATION_NAME = 'ReportingObserver';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _reportingObserverIntegration = ((options = {}) => {\n const types = options.types || ['crash', 'deprecation', 'intervention'];\n\n /** Handler for the reporting observer. */\n function handler(reports) {\n if (!SETUP_CLIENTS.has(getClient() )) {\n return;\n }\n\n for (const report of reports) {\n withScope(scope => {\n scope.setExtra('url', report.url);\n\n const label = `ReportingObserver [${report.type}]`;\n let details = 'No details available';\n\n if (report.body) {\n // Object.keys doesn't work on ReportBody, as all properties are inheirted\n const plainBody\n\n = {};\n\n // eslint-disable-next-line guard-for-in\n for (const prop in report.body) {\n plainBody[prop] = report.body[prop];\n }\n\n scope.setExtra('body', plainBody);\n\n if (report.type === 'crash') {\n const body = report.body ;\n // A fancy way to create a message out of crashId OR reason OR both OR fallback\n details = [body.crashId || '', body.reason || ''].join(' ').trim() || details;\n } else {\n const body = report.body ;\n details = body.message || details;\n }\n }\n\n captureMessage(`${label}: ${details}`);\n });\n }\n }\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n if (!supportsReportingObserver()) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const observer = new (WINDOW ).ReportingObserver(handler, {\n buffered: true,\n types,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n observer.observe();\n },\n\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Reporting API integration - https://w3c.github.io/reporting/\n */\nconst reportingObserverIntegration = defineIntegration(_reportingObserverIntegration);\n\nexport { reportingObserverIntegration };\n//# sourceMappingURL=reportingobserver.js.map\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","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-sso-email-form{width:100%}.login-sso-email-form__continue-button{margin-bottom:0;margin-top:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/LoginSSOEmailForm/LoginSSOEmailForm.scss\"],\"names\":[],\"mappings\":\"AAEA,sBACE,UAAA,CAEA,uCACE,eAAA,CACA,0BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.login-sso-email-form {\\n width: 100%;\\n\\n &__continue-button {\\n margin-bottom: 0;\\n margin-top: common.toRem(16);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSelect.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSelect.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, MouseEvent, ReactNode } from 'react';\nimport Select, { DefaultOptionType } from 'antd/es/select';\nimport Tag from 'antd/es/tag';\nimport { CustomTagProps } from 'rc-select/lib/BaseSelect';\nimport { ChevronDownSvg } from 'components/svgs/ChevronDownSvg';\nimport clsx from 'clsx';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\n\nimport './OpSelect.scss';\n\ntype InternalSelect<V, O extends DefaultOptionType> = Omit<\n ComponentProps<typeof Select<V, O>>,\n 'options' | 'mode' | 'value' | 'onChange' | 'labelInValue'\n>;\n\nexport type SelectableValueTypes = string | number | null;\n\nexport interface OpSelectOptionType<\n T extends SelectableValueTypes = SelectableValueTypes,\n> extends DefaultOptionType {\n label?: ReactNode;\n value: T;\n}\n\ntype CommonTypes<\n ValueType extends SelectableValueTypes,\n OptionType extends DefaultOptionType,\n> = InternalSelect<ValueType | ValueType[], OptionType> & {\n gtm?: string;\n testId?: string;\n tagTestId?: string;\n labelValidator?: (value: ReactNode) => boolean;\n options?: OptionType[];\n};\n\nexport type OpSelectSingleProps<\n ValueType extends SelectableValueTypes,\n OptionType extends DefaultOptionType = OpSelectOptionType<ValueType>,\n> = {\n value?: ValueType;\n onChange?: (value: ValueType, option: OptionType) => void;\n} & CommonTypes<ValueType, OptionType>;\n\nexport type OpSelectMultipleProps<\n ValueType extends SelectableValueTypes,\n OptionType extends DefaultOptionType,\n> = {\n value?: ValueType[];\n onChange?: (values: ValueType[], options: OptionType[]) => void;\n} & CommonTypes<ValueType, OptionType>;\n\ntype OpSelectProps<\n ValueType extends SelectableValueTypes,\n OptionType extends DefaultOptionType,\n> =\n | ({ mode?: undefined } & OpSelectSingleProps<ValueType, OptionType>)\n | ({ mode: 'multiple' | 'tags' } & OpSelectMultipleProps<\n ValueType,\n OptionType\n >);\n\n/**\n * @component\n * @description Main select component to be used. When using a Form you can use the OpForm.Select component which is a wrapper around this component. There is also OpDataFetchSelect if you need the select to fetch external api data. If you want to sort options passed alphabetically you should use our utility function from utils/sortOptionsAlphabetically\n *\n * @example\n * <OpSelect\n * options={options}\n * filterSort={sortOptionsAlphabetically}\n * />\n */\nexport const OpSelect = <\n ValueType extends SelectableValueTypes,\n OptionType extends DefaultOptionType = OpSelectOptionType<ValueType>,\n>({\n className,\n gtm,\n testId = 'op-select',\n tagTestId = 'op-select-tag',\n labelValidator,\n suffixIcon = <ChevronDownSvg />,\n // suffixIcon = <ChevronDownSvg fill={'#65697C'} />,\n ...selectProps\n}: OpSelectProps<ValueType, OptionType>) => {\n const tagRender = ({ label, closable, onClose }: CustomTagProps) => {\n const validationError =\n labelValidator && label && !labelValidator(String(label));\n\n const onPreventMouseDown = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n return (\n <Tag\n bordered={false}\n className={clsx('op-select__tag', {\n 'op-select__tag--error': validationError,\n })}\n onMouseDown={onPreventMouseDown}\n closable={closable}\n onClose={onClose}\n data-testid={tagTestId}\n >\n {label}\n </Tag>\n );\n };\n\n return (\n <Select\n className={clsx('op-select', className)}\n // As we are using a custom suffixIcon we need to show the loading icon manually when loading\n suffixIcon={selectProps.loading ? <LoadingOutlined /> : suffixIcon}\n tagRender={tagRender}\n // Defaulting to label as Select should always have options and antd docs recommend using label\n optionFilterProp=\"label\"\n // Casting to any as we handle the types ourselves\n {...(selectProps as any)}\n data-testid={testId}\n data-gtm={gtm}\n />\n );\n};\n\nOpSelect.Option = Select.Option;\n","module.exports = __webpack_public_path__ + \"6b09edfd49172cff5174b710ba90a2e5.js\";","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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\nexport default toSource;\n","module.exports = __webpack_public_path__ + \"1195816afa4a5e8183857be16a04ae6f.js\";","module.exports = __webpack_public_path__ + \"60190285b6c2243e14184b9e57d48dbb.js\";","module.exports = __webpack_public_path__ + \"663ffb67b9683a2126410325d1a5a152.js\";","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactRedux = require(\"react-redux\");\n\nvar _reactRouter = require(\"react-router\");\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequalwith\"));\n\nvar _actions = require(\"./actions\");\n\nvar _selectors = _interopRequireDefault(require(\"./selectors\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _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\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar createConnectedRouter = function createConnectedRouter(structure) {\n var _createSelectors = (0, _selectors[\"default\"])(structure),\n getLocation = _createSelectors.getLocation;\n /*\n * ConnectedRouter listens to a history object passed from props.\n * When history is changed, it dispatches action to redux store.\n * Then, store will pass props to component to render.\n * This creates uni-directional flow from history->store->router->components.\n */\n\n\n var ConnectedRouter = /*#__PURE__*/function (_PureComponent) {\n _inherits(ConnectedRouter, _PureComponent);\n\n var _super = _createSuper(ConnectedRouter);\n\n function ConnectedRouter(props) {\n var _this;\n\n _classCallCheck(this, ConnectedRouter);\n\n _this = _super.call(this, props);\n var store = props.store,\n history = props.history,\n onLocationChanged = props.onLocationChanged,\n stateCompareFunction = props.stateCompareFunction;\n _this.inTimeTravelling = false; // Subscribe to store changes to check if we are in time travelling\n\n _this.unsubscribe = store.subscribe(function () {\n // Allow time travel debugging compatibility to be turned off\n // as the detection for this (below) is error prone in apps where the\n // store may be unmounted, a navigation occurs, and then the store is re-mounted\n // during the app's lifetime. Detection could be much improved if Redux DevTools\n // simply set a global variable like `REDUX_DEVTOOLS_IS_TIME_TRAVELLING=true`.\n var isTimeTravelDebuggingAllowed = !props.noTimeTravelDebugging; // Extract store's location\n\n var _getLocation = getLocation(store.getState()),\n pathnameInStore = _getLocation.pathname,\n searchInStore = _getLocation.search,\n hashInStore = _getLocation.hash,\n stateInStore = _getLocation.state; // Extract history's location\n\n\n var _history$location = history.location,\n pathnameInHistory = _history$location.pathname,\n searchInHistory = _history$location.search,\n hashInHistory = _history$location.hash,\n stateInHistory = _history$location.state; // If we do time travelling, the location in store is changed but location in history is not changed\n\n if (isTimeTravelDebuggingAllowed && props.history.action === 'PUSH' && (pathnameInHistory !== pathnameInStore || searchInHistory !== searchInStore || hashInHistory !== hashInStore || !(0, _lodash[\"default\"])(stateInStore, stateInHistory, stateCompareFunction))) {\n _this.inTimeTravelling = true; // Update history's location to match store's location\n\n history.push({\n pathname: pathnameInStore,\n search: searchInStore,\n hash: hashInStore,\n state: stateInStore\n });\n }\n });\n\n var handleLocationChange = function handleLocationChange(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Dispatch onLocationChanged except when we're in time travelling\n if (!_this.inTimeTravelling) {\n onLocationChanged(location, action, isFirstRendering);\n } else {\n _this.inTimeTravelling = false;\n }\n }; // Listen to history changes\n\n\n _this.unlisten = history.listen(handleLocationChange);\n\n if (!props.noInitialPop) {\n // Dispatch a location change action for the initial location.\n // This makes it backward-compatible with react-router-redux.\n // But, we add `isFirstRendering` to `true` to prevent double-rendering.\n handleLocationChange(history.location, history.action, true);\n }\n\n return _this;\n }\n\n _createClass(ConnectedRouter, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unlisten();\n this.unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n omitRouter = _this$props.omitRouter,\n history = _this$props.history,\n children = _this$props.children; // The `omitRouter` option is available for applications that must\n // have a Router instance higher in the component tree but still desire\n // to use connected-react-router for its Redux integration.\n\n if (omitRouter) {\n return /*#__PURE__*/_react[\"default\"].createElement(_react[\"default\"].Fragment, null, children);\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_reactRouter.Router, {\n history: history\n }, children);\n }\n }]);\n\n return ConnectedRouter;\n }(_react.PureComponent);\n\n ConnectedRouter.propTypes = {\n store: _propTypes[\"default\"].shape({\n getState: _propTypes[\"default\"].func.isRequired,\n subscribe: _propTypes[\"default\"].func.isRequired\n }).isRequired,\n history: _propTypes[\"default\"].shape({\n action: _propTypes[\"default\"].string.isRequired,\n listen: _propTypes[\"default\"].func.isRequired,\n location: _propTypes[\"default\"].object.isRequired,\n push: _propTypes[\"default\"].func.isRequired\n }).isRequired,\n basename: _propTypes[\"default\"].string,\n children: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].node]),\n onLocationChanged: _propTypes[\"default\"].func.isRequired,\n noInitialPop: _propTypes[\"default\"].bool,\n noTimeTravelDebugging: _propTypes[\"default\"].bool,\n stateCompareFunction: _propTypes[\"default\"].func,\n omitRouter: _propTypes[\"default\"].bool\n };\n\n var mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onLocationChanged: function onLocationChanged(location, action, isFirstRendering) {\n return dispatch((0, _actions.onLocationChanged)(location, action, isFirstRendering));\n }\n };\n };\n\n var ConnectedRouterWithContext = function ConnectedRouterWithContext(props) {\n var Context = props.context || _reactRedux.ReactReduxContext;\n\n if (Context == null) {\n throw 'Please upgrade to react-redux v6';\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(Context.Consumer, null, function (_ref) {\n var store = _ref.store;\n return /*#__PURE__*/_react[\"default\"].createElement(ConnectedRouter, _extends({\n store: store\n }, props));\n });\n };\n\n ConnectedRouterWithContext.propTypes = {\n context: _propTypes[\"default\"].object\n };\n return (0, _reactRedux.connect)(null, mapDispatchToProps)(ConnectedRouterWithContext);\n};\n\nvar _default = createConnectedRouter;\nexports[\"default\"] = _default;","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 };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nfunction getComponentToken(component, token, defaultToken, options) {\n var customToken = _objectSpread({}, token[component]);\n if (options !== null && options !== void 0 && options.deprecatedTokens) {\n var deprecatedTokens = options.deprecatedTokens;\n deprecatedTokens.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n oldTokenKey = _ref2[0],\n newTokenKey = _ref2[1];\n if (process.env.NODE_ENV !== 'production') {\n warning(!(customToken !== null && customToken !== void 0 && customToken[oldTokenKey]), \"Component Token `\".concat(String(oldTokenKey), \"` of \").concat(String(component), \" is deprecated. Please use `\").concat(String(newTokenKey), \"` instead.\"));\n }\n\n // Should wrap with `if` clause, or there will be `undefined` in object.\n if (customToken !== null && customToken !== void 0 && customToken[oldTokenKey] || customToken !== null && customToken !== void 0 && customToken[newTokenKey]) {\n var _customToken$newToken;\n (_customToken$newToken = customToken[newTokenKey]) !== null && _customToken$newToken !== void 0 ? _customToken$newToken : customToken[newTokenKey] = customToken === null || customToken === void 0 ? void 0 : customToken[oldTokenKey];\n }\n });\n }\n var mergedToken = _objectSpread(_objectSpread({}, defaultToken), customToken);\n\n // Remove same value as global token to minimize size\n Object.keys(mergedToken).forEach(function (key) {\n if (mergedToken[key] === token[key]) {\n delete mergedToken[key];\n }\n });\n return mergedToken;\n}\nexport default getComponentToken;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { NotificationProvider, useNotification as useRcNotification } from 'rc-notification';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { useToken } from '../theme/internal';\nimport { getCloseIcon, PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, getPlacementStyle } from './util';\nconst DEFAULT_OFFSET = 24;\nconst DEFAULT_DURATION = 4.5;\nconst DEFAULT_PLACEMENT = 'topRight';\nconst Wrapper = _ref => {\n let {\n children,\n prefixCls\n } = _ref;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(NotificationProvider, {\n classNames: {\n list: classNames(hashId, cssVarCls, rootCls)\n }\n }, children));\n};\nconst renderNotifications = (node, _ref2) => {\n let {\n prefixCls,\n key\n } = _ref2;\n return /*#__PURE__*/React.createElement(Wrapper, {\n prefixCls: prefixCls,\n key: key\n }, node);\n};\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n bottom,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n rtl,\n onAllRemoved,\n stack,\n duration,\n pauseOnHover = true,\n showProgress\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n notification,\n direction\n } = useContext(ConfigContext);\n const [, token] = useToken();\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n // =============================== Style ===============================\n const getStyle = placement => getPlacementStyle(placement, top !== null && top !== void 0 ? top : DEFAULT_OFFSET, bottom !== null && bottom !== void 0 ? bottom : DEFAULT_OFFSET);\n const getClassName = () => classNames({\n [`${prefixCls}-rtl`]: rtl !== null && rtl !== void 0 ? rtl : direction === 'rtl'\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls);\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: true,\n closeIcon: getCloseIcon(prefixCls),\n duration: duration !== null && duration !== void 0 ? duration : DEFAULT_DURATION,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n pauseOnHover,\n showProgress,\n onAllRemoved,\n renderNotifications,\n stack: stack === false ? false : {\n threshold: typeof stack === 'object' ? stack === null || stack === void 0 ? void 0 : stack.threshold : undefined,\n offset: 8,\n gap: token.margin\n }\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n notification\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nexport function useInternalNotification(notificationConfig) {\n const holderRef = React.useRef(null);\n const warning = devUseWarning('Notification');\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> Open\n const open = config => {\n var _a;\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n return;\n }\n const {\n open: originOpen,\n prefixCls,\n notification\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n message,\n description,\n icon,\n type,\n btn,\n className,\n style,\n role = 'alert',\n closeIcon,\n closable\n } = config,\n restConfig = __rest(config, [\"message\", \"description\", \"icon\", \"type\", \"btn\", \"className\", \"style\", \"role\", \"closeIcon\", \"closable\"]);\n const realCloseIcon = getCloseIcon(noticePrefixCls, typeof closeIcon !== 'undefined' ? closeIcon : notification === null || notification === void 0 ? void 0 : notification.closeIcon);\n return originOpen(Object.assign(Object.assign({\n // use placement from props instead of hard-coding \"topRight\"\n placement: (_a = notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.placement) !== null && _a !== void 0 ? _a : DEFAULT_PLACEMENT\n }, restConfig), {\n content: (/*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n btn: btn,\n role: role\n })),\n className: classNames(type && `${noticePrefixCls}-${type}`, className, notification === null || notification === void 0 ? void 0 : notification.className),\n style: Object.assign(Object.assign({}, notification === null || notification === void 0 ? void 0 : notification.style), style),\n closeIcon: realCloseIcon,\n closable: closable !== null && closable !== void 0 ? closable : !!realCloseIcon\n }));\n };\n // >>> destroy\n const destroy = key => {\n var _a, _b;\n if (key !== undefined) {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n } else {\n (_b = holderRef.current) === null || _b === void 0 ? void 0 : _b.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['success', 'info', 'warning', 'error'];\n keys.forEach(type => {\n clone[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"notification-holder\"\n }, notificationConfig, {\n ref: holderRef\n }))];\n}\nexport default function useNotification(notificationConfig) {\n return useInternalNotification(notificationConfig);\n}","export function getPlacementStyle(placement, top, bottom) {\n let style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n}\nexport function getMotion(prefixCls) {\n return {\n motionName: `${prefixCls}-fade`\n };\n}","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","export default __webpack_public_path__ + \"assets/favicons/favicon-32x32.png\";","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpCheckbox.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpCheckbox.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, ReactNode } from 'react';\nimport Checkbox from 'antd/es/checkbox';\nimport clsx from 'clsx';\nimport { OpInfoTooltip } from '../OpInfoTooltip/OpInfoTooltip';\n\nimport './OpCheckbox.scss';\n\ninterface OpCheckboxGroupProps extends ComponentProps<typeof Checkbox.Group> {\n testId?: string;\n}\n\nconst OpCheckboxGroup = ({\n className,\n testId = 'op-checkbox-group',\n ...checkboxGroupProps\n}: OpCheckboxGroupProps) => {\n return (\n <Checkbox.Group\n className={clsx('op-checkbox-group', className)}\n data-testid={testId}\n {...checkboxGroupProps}\n />\n );\n};\n\ninterface OpCheckboxProps extends ComponentProps<typeof Checkbox> {\n gtm?: string;\n testId?: string;\n tooltip?: ReactNode;\n}\n\nexport const OpCheckbox = ({\n gtm,\n testId = 'op-checkbox',\n children,\n className,\n tooltip,\n ...checkboxProps\n}: OpCheckboxProps) => {\n return (\n <Checkbox\n data-gtm={gtm}\n data-testid={testId}\n className={clsx('op-checkbox', className)}\n {...checkboxProps}\n >\n {children}\n {tooltip && <OpInfoTooltip title={tooltip} />}\n </Checkbox>\n );\n};\n\n// Add sub-components from the antd component to our version\nOpCheckbox.Group = OpCheckboxGroup;\n","/**\n * Library used to enable/disable logging. Change value of isLoggingEnabled to toggle whther logs are created or not.\n */\n\n// External libraries\n\n// Local libraries\n\nexport class Logger {\n static isLoggingEnabled = false;\n\n static log(message: string): void {\n if (this.isLoggingEnabled) {\n console.log(message);\n }\n }\n}\n","import { useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\nimport HeliumDictionary from 'heliumDictionary';\nimport { useInjectReducers } from 'utils/injectReducer';\n// import { useInjectSagas } from 'utils/injectSaga'\nimport { selectOrgContainerReducers } from 'routes/OrgContainer/selectors';\nimport { requestPageDataGeneric } from 'routes/OrgContainer/actions';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { useDeepCompareEffect } from 'react-use';\nimport { combineReducers } from 'redux-immutable';\nimport { createNamedWrapperReducer } from 'utils/reducers';\nimport { createOrgContainerReducer } from 'routes/OrgContainer/reducer';\nimport formReducer from 'global/formWrapper/reducer';\n\n// import { HeliumClient } from '@msi-alta/helium-client'\n// console.debug(`[HeliumClient.getDefaultSpec()] - ${JSON.stringify(HeliumClient.getDefaultSpec(), null, 2)}`)\n//\n// TODO - I think we can convert this to use the spec.json file instead of helium dictionary (for less complexity)\n// 1 - we will pass in an API like `acus` or `acu` and this hook will:\n// 1.1 - if singular, add `describe` to the beginning and check spec for `describeAcu`, error if not found\n// 1.2 - if plural, check spec for `listAcus`, error if not found\n// 2 - the reducer and action don't really matter, as long as they're unique so..\n// 2.1 - we can use the `acus` or `acu` as the reducer name\n// 2.2 - and the action we can define as toUpperCase(`SET_${acus}`)\n//\n// this will leads us to be able to do simpler `useHeliumData(['acus', { key: 'acu', initOnly: true}])`\n// PS - possibly make a long-hand shortcut to directly type the API to avoid the pattern matching, and if\n// a new API is added that doesn't follow spec exactly, the user can still do `useHeliumData([{spec: 'someCrazyShit'}])`\n\n// THIS HOOK IS UNDER DEVELOPMENT, TALK TO JUSTIN <3\nconst useHeliumData = (\n page,\n injections = [],\n options = {},\n additionalReducers = null,\n) => {\n // @TODO error if additionalReducers is an object\n\n // validate the options\n const VALID_OPTIONS = ['includeVideoPlayer', 'includeForm'];\n if (!Object.keys(options).every((el) => VALID_OPTIONS.includes(el))) {\n throw new Error(\n `useHeliumData() - Invalid options passed to . (valid options: ${JSON.stringify(\n VALID_OPTIONS,\n )})`,\n );\n }\n\n // validate the injection format!\n injections.forEach((i) => {\n switch (typeof i) {\n case 'string':\n // we're using super simple shorthand default like \"users\"\n // so make sure its in the dictionary!\n if (!Object.keys(HeliumDictionary).includes(i)) {\n throw new Error(\n `useHeliumData() - Trying to inject ${i} shorthand, which does not exist in HeliumDictionary!`,\n );\n }\n break;\n case 'object':\n {\n // in this case, we're customizing the defaults\n const VALID_INJECTION_OBJECT_KEYS = [\n 'key',\n 'name',\n 'filter',\n 'requisites',\n 'initialValue',\n 'initOnly',\n 'onError',\n 'suppressErrorMessage',\n 'defaultQueryParams',\n 'loopToGetAll',\n ];\n if (\n !Object.keys(i).every((v) =>\n VALID_INJECTION_OBJECT_KEYS.includes(v),\n )\n ) {\n throw new Error(\n `useHeliumData() - Trying to inject an object with invalid settings! Must be one of ${JSON.stringify(\n VALID_INJECTION_OBJECT_KEYS,\n )}. Received ${JSON.stringify(Object.keys(i))}`,\n );\n }\n }\n break;\n default:\n throw new Error(\n `useHeliumData() - Unrecognized data type passed as injections param (${typeof i})`,\n );\n }\n });\n\n const dispatch = useDispatch();\n const injectedReducers = useMemo(\n () =>\n injections.reduce(\n (acc, key) => {\n // this is the key we'll use to look up data in heliumDictionary.js\n let effectiveKey = key;\n\n // this is the name of the reducer in redux, often the PAGE variable\n let effectiveName = null;\n\n // this is the default value for the reducer\n let effectiveInitialValue = [];\n\n if (typeof key === 'object') {\n const { key: objKey, name = null, initialValue = [] } = key;\n if (!objKey) {\n throw new Error(\n 'If passing object to useHeliumData, must include key param!',\n );\n }\n // we could receive more complicated options like:\n // - name: we want our reducer to be named something else\n effectiveKey = objKey;\n effectiveName = name;\n effectiveInitialValue = initialValue;\n }\n const heliumData = HeliumDictionary[effectiveKey];\n\n if (!heliumData) {\n throw new Error(`Missing from HeliumDictionary ${effectiveKey}`);\n }\n\n const { reducer, action } = heliumData;\n\n // We're going to dynamically inject the reducers so we don't need to define the boilerplate for our route\n // eslint-disable-next-line no-param-reassign\n acc.reducers[effectiveName || reducer] = createNamedWrapperReducer(\n createOrgContainerReducer(effectiveInitialValue, action),\n page,\n effectiveName,\n true,\n );\n acc.keys.push(reducer);\n return acc;\n },\n {\n // this is the default reducer state that will be injected when using this hook...\n reducers: {\n // all reducers that use this hook will have a loading boolean, can be used to know when injection is finished\n // at the very least, also used whenever we are talking to Helium\n loading: createNamedWrapperReducer(\n createOrgContainerReducer(true, 'TOGGLE_DATA_LOADER'),\n page,\n ), // TODO - constant\n\n // // if we want to include the video player...\n // ...(options.includeVideoPlayer && {\n // }),\n\n // if we want to include the form reducer...\n ...(options.includeForm && {\n form: createNamedWrapperReducer(formReducer, page),\n }),\n\n // we are able to add additional reducers here...\n // something like ` const reducers = useMemo(() => ([{ key: 'widgetData', reducer: occupancyReducer }]), [])`\n ...(additionalReducers || []).reduce((acc, curr) => {\n // eslint-disable-next-line no-param-reassign\n acc[curr.key] = createNamedWrapperReducer(curr.reducer, page);\n return acc;\n }, {}),\n },\n keys: [],\n },\n ),\n [injections, page, additionalReducers, options.includeForm],\n );\n\n const memoizedReducers = useMemo(\n () => [{ key: page, reducer: combineReducers(injectedReducers.reducers) }],\n [injectedReducers.reducers, page],\n );\n useInjectReducers(memoizedReducers);\n\n // request the data from helium!\n useDeepCompareEffect(() => {\n dispatch(requestPageDataGeneric(page, injections));\n }, [dispatch, injections, page]);\n\n // TODO PERHAPS define the skeleton of the data to return?\n // TODO clean this up if we keep it\n const defaultReturn = injections.reduce(\n (acc, curr) => {\n const key = typeof curr === 'object' ? curr.key : curr;\n const retVal =\n typeof curr === 'object' && curr.initialValue ? curr.initialValue : [];\n // eslint-disable-next-line no-param-reassign\n acc[key] = retVal;\n return acc;\n },\n {\n form: {},\n loading: true,\n },\n );\n\n const data =\n useSelectorJs(selectOrgContainerReducers(injectedReducers.keys)(), {\n route: { name: page },\n }) || defaultReturn;\n return Object.keys(data).length ? data : defaultReturn;\n};\n\nexport default useHeliumData;\n","import { useEffect } from 'react';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport * as Sentry from '@sentry/react';\n\nexport interface BroadcastMessage {\n command?: string;\n target?: string;\n sender?: string;\n}\n\ninterface BroadcastChannelMapEntry {\n channelRef: {\n current: BroadcastChannel<BroadcastMessage> | null;\n };\n refCount: number;\n}\n\ninterface BroadcastChannelMap {\n [name: string]: BroadcastChannelMapEntry;\n}\n\nconst broadcastChannelMap: BroadcastChannelMap = {};\n\n// each tab/instance needs it's own unique ID\n// This is useful in certain cases, e.g. so that it knows to ignore the disconnect messages it sent\nconst broadcastId = (Math.random() + 1).toString(36).substring(2);\n\nconst useBroadcastChannel = (name: string) => {\n if (!broadcastChannelMap[name]) {\n // Handle external memoization\n broadcastChannelMap[name] = {\n channelRef: {\n current: new BroadcastChannel(name),\n },\n refCount: 0, // refCount is handled in the effect\n };\n }\n\n useEffect(() => {\n if (!broadcastChannelMap[name].channelRef.current) {\n // Sometimes, this can be cleaned up in the interim, which is why we return a ref\n // and fix the current value here...\n broadcastChannelMap[name].channelRef.current = new BroadcastChannel(name);\n }\n\n // refCount incremented once per name per component\n broadcastChannelMap[name].refCount++;\n\n return () => {\n // cleanup this broadcast channel ref\n if (\n broadcastChannelMap[name]?.channelRef.current &&\n --broadcastChannelMap[name].refCount === 0\n ) {\n // <= instead of === just because...\n const {\n channelRef: { current: channelToRemove },\n } = broadcastChannelMap[name];\n\n broadcastChannelMap[name].channelRef.current = null;\n\n // no need to await close()\n channelToRemove.close().catch((e) => {\n console.error(e);\n\n Sentry.captureMessage('Issue broadcast channel', {\n contexts: {\n debugInfo: {\n error: JSON.stringify(e),\n },\n },\n });\n });\n }\n };\n }, [name]);\n\n return [broadcastChannelMap[name].channelRef, broadcastId] as const;\n};\n\nexport default useBroadcastChannel;\n","import { useEffect, useRef, useState, useCallback } from 'react';\nimport * as Sentry from '@sentry/react';\nimport { waitForWebsocketConnectionToOpen } from 'utils/waitForWebsocketConnectionToOpen';\n\nimport openpathConfig from 'openpathConfig';\nimport useBroadcastChannel, { BroadcastMessage } from './useBroadcastChannel';\n\n// NOTE: this does not have any unit tests but it is sort of covered by unit tests for useIntercomNotifications\n// if you're working on this file specifically in the future, you should probably copy them over and expand\n\nconst DEFAULT_SUBSCRIPTION_DATA = [\n {\n hookEventType: '*',\n trigger: {\n $id: 'https://openpath.com/all-events.json',\n },\n clientData: {\n dashboardWidget: 0,\n },\n },\n];\nconst KEEPALIVE_INTERVAL = 9 * 60000; // 9 minutes\nconst RETRY_STARTING_TIMEOUT = 10000; // 10 seconds\nconst MAX_RETRIES = 5;\n\nconst STATUS = {\n DISCONNECTED: 0,\n CONNECTING: 1,\n CONNECTION_FAILURE: 2,\n SUCCESS: 3,\n FATAL_ERROR: 4, // do not attempt to reconnect\n};\n\ntype SubscriptionData = {\n hookEventType?: string;\n preFilter?: {\n hookEventType: string;\n };\n trigger: Record<string, unknown>;\n clientData?: Record<string, unknown>;\n}[];\n\ninterface UseOxygenSocketProps {\n orgId: number | null;\n onConnectionHandler: (socket: WebSocket | null) => void;\n subscriptionData: SubscriptionData;\n clientRequestId: string; // unique string that identifies the socket\n token: string;\n /**\n * This is temporary for now as to not interfere with the original\n * implementation used in useIntercomNotifications. Once we can confirm\n * https://jira.mot-solutions.com/browse/OPAC-13236 is fixed we can look to migrate\n * it's current usage\n */\n ignoreBroadcastDisconnect?: boolean;\n}\n\nconst styles = {\n clientRequestId: 'text-decoration: underline;',\n connectionId: 'color: blue; font-weight: bold;',\n none: 'color: initial; font-weight: normal; text-decoration: none',\n};\n\nexport default ({\n orgId,\n onConnectionHandler,\n subscriptionData = DEFAULT_SUBSCRIPTION_DATA, // see above for shape\n clientRequestId, // unique string that identifies the socket\n token, // required\n ignoreBroadcastDisconnect = false,\n}: UseOxygenSocketProps) => {\n const [broadcastChannelRef, broadcastId] = useBroadcastChannel('oxygen');\n const ws = useRef<WebSocket | null>(null);\n const keepAliveTimerRef = useRef<ReturnType<typeof setInterval> | null>(null);\n // using ref instead of state due to rerender issues\n const connectionStatusForRetries = useRef(STATUS.DISCONNECTED);\n const retries = useRef(MAX_RETRIES);\n const retryTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const retryTimeout = useRef(RETRY_STARTING_TIMEOUT);\n\n const [status, setStatus] = useState(STATUS.DISCONNECTED);\n\n // we wrap the onConnectionHandler to handle status/error replies from Oxygen\n const _onConnectionHandler = useCallback(\n (pointer: WebSocket | null) => {\n pointer?.addEventListener('message', (event) => {\n if (!event || !event.data) return;\n\n try {\n const parsed = JSON.parse(event.data);\n const { type, data } = parsed;\n const { statusCode } = data;\n\n // look for a response to our hello message\n // type === 'command.response' checks that this is a response from Oxygen\n // statusCode === 200 makes sure the request returned successfully\n // data.subscriptionsStatus.numAccepted > 0 makes sure we got at least 1 hookEvent subscription successfully wired\n // data.clientRequestId === clientRequestId allows multiple different clients (eg dashboards, intercom, etc.) to have simultaneous connections to Oxygen without overlap/conflict\n\n if (type === 'command.response') {\n // eslint-disable-next-line no-console\n console.log(\n `[WS] %c${clientRequestId}%c: ${data.statusCodeDetail}, ` +\n `connectionId: %c${\n data.connectionId\n }%c at ${new Date().toISOString()} ${JSON.stringify(\n data.subscriptionsStatus,\n )}`,\n 'color: blue;' + styles.clientRequestId,\n styles.none,\n styles.connectionId,\n styles.none,\n );\n }\n\n if (\n type === 'command.response' &&\n statusCode === 200 &&\n data?.subscriptionsStatus?.numAccepted > 0 &&\n data?.clientRequestId === clientRequestId\n ) {\n // TODO: we should compare data.subscriptionsStatus.numAccepted against subscriptionData.length and console.log an error or something\n setStatus(STATUS.SUCCESS);\n }\n\n if (statusCode >= 400) {\n Sentry.captureMessage('Websocket error response received:', {\n contexts: {\n debugInfo: {\n wsInfo: JSON.stringify({\n url: ws.current?.url,\n protocol: `oxygen-events-v1|${orgId}|<SIG_REDACTED>`,\n }),\n eventData: event.data,\n subscriptionData: JSON.stringify(subscriptionData),\n orgId,\n clientRequestId,\n statusCode,\n },\n },\n });\n }\n\n // look for a response that indicates an authentication error\n if (\n type === 'command.response' &&\n [400, 401, 403].includes(statusCode)\n ) {\n connectionStatusForRetries.current = STATUS.FATAL_ERROR;\n setStatus(STATUS.FATAL_ERROR);\n }\n\n // TODO: ask Jim how we want to handle 5xxs\n } catch (e) {\n console.error('got unhandled error, probably invalid json', e, event);\n }\n });\n\n if (onConnectionHandler) {\n onConnectionHandler(pointer);\n }\n },\n // Disabling for now as its wants dependencies from the Sentry debugging we are using to try and track down why these error so often\n [onConnectionHandler, clientRequestId], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const connect = useCallback(() => {\n if (\n openpathConfig.OXYGEN_API_URL &&\n token &&\n !ws.current &&\n (orgId || orgId === null)\n ) {\n // authenticate with protocol\n ws.current = new WebSocket(openpathConfig.OXYGEN_API_URL, [\n `oxygen-events-v1|${orgId}|${token}`,\n ]);\n connectionStatusForRetries.current = STATUS.CONNECTING;\n // eslint-disable-next-line no-console\n console.log(\n `[WS] connect called (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n styles.clientRequestId,\n styles.none,\n );\n // error\n ws.current.onerror = (event) => {\n console.error('WebSocket error observed:', JSON.stringify(event));\n Sentry.captureMessage('Websocket error:', {\n contexts: {\n debugInfo: {\n wsInfo: JSON.stringify({\n url: ws.current?.url,\n protocol: `oxygen-events-v1|${orgId}|<SIG_REDACTED>`,\n }),\n event: JSON.stringify(event),\n subscriptionData: JSON.stringify(subscriptionData),\n orgId,\n clientRequestId,\n },\n },\n });\n };\n\n // Connection opened\n ws.current.addEventListener('open', async () => {\n try {\n // eslint-disable-next-line no-console\n console.log(\n `[WS] connection opened (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n styles.clientRequestId,\n styles.none,\n );\n\n setStatus(STATUS.CONNECTING);\n await waitForWebsocketConnectionToOpen(ws.current);\n\n // eslint-disable-next-line no-console\n console.log(\n `[WS] Connection ready (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n styles.clientRequestId,\n styles.none,\n );\n\n // reset retry settings because opened succcessfully\n connectionStatusForRetries.current = STATUS.CONNECTING;\n if (retryTimerRef.current) {\n clearTimeout(retryTimerRef.current);\n retryTimerRef.current = null;\n }\n retries.current = MAX_RETRIES;\n retryTimeout.current = RETRY_STARTING_TIMEOUT;\n\n // send subscription data\n ws.current?.send(\n JSON.stringify({\n action: 'replace.subscriptions',\n clientRequestId,\n data: subscriptionData,\n }),\n );\n\n // start interval\n /** The connection timeout is 10 minutes for idle connection, so we send a keep alive\n * packet every 9 minutes */\n keepAliveTimerRef.current = setInterval(() => {\n if (ws.current && ws.current.readyState === WebSocket.OPEN) {\n try {\n // eslint-disable-next-line no-console\n console.log('[WS] Sending keepalive packet');\n ws.current.send(' ');\n } catch (ex) {\n console.error(ex);\n Sentry.captureMessage('useOxygenSocket keepAlive error:', {\n contexts: {\n debugInfo: {\n error: ex,\n clientRequestId,\n orgId,\n subscriptionData: JSON.stringify(subscriptionData),\n },\n },\n });\n }\n }\n }, KEEPALIVE_INTERVAL);\n\n _onConnectionHandler(ws.current);\n } catch (err) {\n const typeError = err as Error;\n\n console.warn(`useOxygenSocket: ${typeError.message}`);\n Sentry.captureMessage(\n `useOxygenSocket open event error: ${typeError.message}`,\n {\n contexts: {\n debugInfo: {\n wsInfo: JSON.stringify({\n url: ws.current?.url,\n protocol: `oxygen-events-v1|${orgId}|<SIG_REDACTED>`,\n }),\n clientRequestId,\n orgId,\n subscriptionData: JSON.stringify(subscriptionData),\n },\n },\n },\n );\n }\n });\n\n ws.current.addEventListener('close', () => {\n // eslint-disable-next-line no-console\n console.log(\n `[WS] Connection closed (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n styles.clientRequestId,\n styles.none,\n );\n\n // kill the keepalive interval\n if (keepAliveTimerRef.current) {\n clearInterval(keepAliveTimerRef.current);\n keepAliveTimerRef.current = null;\n }\n\n ws.current = null;\n setStatus(STATUS.DISCONNECTED);\n\n switch (connectionStatusForRetries.current) {\n case STATUS.FATAL_ERROR:\n // eslint-disable-next-line no-console\n console.log(\n `[WS] Closed unexpectedly (%c${clientRequestId}%c) at ${new Date().toISOString()} due to fatal error`,\n styles.clientRequestId,\n styles.none,\n );\n break;\n case STATUS.CONNECTING:\n // Closed without our input - retry to open the connection if there was not a fatal error\n // eslint-disable-next-line no-console\n console.log(\n `[WS] Closed unexpectedly (%c${clientRequestId}%c) at ${new Date().toISOString()} - retrying in ${\n retryTimeout.current / 1000\n } seconds`,\n styles.clientRequestId,\n styles.none,\n );\n\n if (retries.current > 0) {\n retries.current -= 1;\n retryTimerRef.current = setTimeout(() => {\n connect();\n }, retryTimeout.current);\n // Double the retry timeout for the next retry\n retryTimeout.current *= 2;\n } else {\n retryTimerRef.current = null;\n // eslint-disable-next-line no-console\n console.log(\n `[WS] Retries exhausted - Could not establish a connection with the WebSocket (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n styles.clientRequestId,\n styles.none,\n );\n }\n\n break;\n default:\n break;\n }\n });\n } else if (!openpathConfig.OXYGEN_API_URL) {\n // eslint-disable-next-line\n console.debug(\n 'OXYGEN_API_URL NOT DEFINED: No Socket Connection will be made.',\n );\n } else {\n console.debug('No Oxygen token was passed'); // eslint-disable-line\n }\n }, [orgId, _onConnectionHandler, subscriptionData, clientRequestId, token]);\n\n const disconnect = useCallback(() => {\n if (openpathConfig.OXYGEN_API_URL && ws.current) {\n if (ws.current.readyState === WebSocket.OPEN) {\n ws.current.close(1000); // status code 1000 https://www.rfc-editor.org/rfc/rfc6455.html#section-7.4.1\n\n // reset retry settings because disconnect was called and next time connect is called should behave normally.\n connectionStatusForRetries.current = STATUS.DISCONNECTED;\n if (retryTimerRef.current) {\n clearTimeout(retryTimerRef.current);\n retryTimerRef.current = null;\n }\n retries.current = MAX_RETRIES;\n retryTimeout.current = RETRY_STARTING_TIMEOUT;\n\n // we don't need to do teardown here (keepalive timer reset, setIsConnected, etc.) because that's all handled in our websocket close handler\n }\n }\n }, []);\n\n const handleOnline = useCallback(() => {\n if (\n status === STATUS.DISCONNECTED &&\n connectionStatusForRetries.current === STATUS.CONNECTING\n ) {\n // eslint-disable-next-line no-console\n console.log(\n `[WS] handleOnline triggered - (%c${clientRequestId}%c) at ${new Date().toISOString()}`,\n );\n // reset retry code because computer coming online should restart retries.\n if (retryTimerRef.current) {\n clearTimeout(retryTimerRef.current);\n retryTimerRef.current = null;\n }\n retries.current = MAX_RETRIES;\n if (!ws.current) {\n connect();\n }\n }\n }, [status, connect, clientRequestId]);\n\n // using this ref allows us to only set the online eventlistener once per socket\n const onlineCBRef = useRef(handleOnline);\n\n useEffect(() => {\n onlineCBRef.current = handleOnline;\n }, [handleOnline]);\n\n useEffect(() => {\n const onlineCB = () => onlineCBRef.current();\n window.addEventListener('online', onlineCB);\n\n return () => {\n window.removeEventListener('online', onlineCB);\n };\n }, [clientRequestId]);\n\n /**\n * Listen to DISCONNECT EVENT (currently * happens on logout)\n */\n useEffect(() => {\n if (!window || !broadcastChannelRef.current) {\n return () => {}; // No-op to always return a function\n }\n\n const broadcastChannel = broadcastChannelRef.current;\n\n const handleMessage = (msg: BroadcastMessage) => {\n if (\n [\n msg?.command === 'DISCONNECT',\n msg?.target === '*', // only listen for messages addressed to all\n msg?.sender !== broadcastId,\n !ignoreBroadcastDisconnect,\n ].every(Boolean)\n ) {\n disconnect();\n }\n };\n\n // listen for commands from other instances (in most cases other tabs)\n broadcastChannel.addEventListener('message', handleMessage);\n\n return () => {\n broadcastChannel.removeEventListener('message', handleMessage);\n };\n }, [broadcastChannelRef.current]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Disconnect from oxygen websocket when the component unmounts\n useEffect(\n () => () => {\n disconnect();\n },\n [disconnect],\n );\n\n return {\n socket: ws.current,\n isConnected: status === STATUS.SUCCESS,\n connect,\n disconnect,\n status,\n };\n};\n","// https://dev.to/ndrbrt/wait-for-the-websocket-connection-to-be-open-before-sending-a-message-1h12\n\nexport const waitForWebsocketConnectionToOpen = (socket) =>\n new Promise((resolve, reject) => {\n const maxNumberOfAttempts = 5;\n const baseIntervalTime = 100; // initial interval time in ms\n\n let currentAttempt = 0;\n\n const attemptConnection = () => {\n if (socket.readyState === socket.OPEN) {\n resolve();\n } else if (currentAttempt >= maxNumberOfAttempts) {\n reject(new Error('Maximum number of attempts exceeded'));\n } else {\n currentAttempt++;\n setTimeout(attemptConnection, baseIntervalTime * currentAttempt);\n }\n };\n\n attemptConnection();\n });\n","import { useEffect, useState } from 'react';\n\nfunction useIsSlideOutChild(selfQueryAll) {\n const [isInSideBar, setIsInSideBar] = useState(false);\n useEffect(() => {\n // We check to see if the direct parent of the Container is a SlideOut and if so change the styles accordingly\n const thisContentContainer = document.querySelectorAll(selfQueryAll);\n const drawer = document.querySelectorAll('.op-drawer');\n\n let test = false;\n if (drawer && thisContentContainer[thisContentContainer.length - 1]) {\n drawer.forEach((sb) => {\n test =\n test ||\n sb.contains(thisContentContainer[thisContentContainer.length - 1]);\n });\n }\n setIsInSideBar(test);\n }, [selfQueryAll]);\n return isInSideBar;\n}\n\nexport default useIsSlideOutChild;\n","import { useEffect, useState, useCallback } from 'react';\nimport useInterval from 'react-useinterval';\nimport { requestHeliumDataGeneric } from 'routes/OrgContainer/actions';\n\nimport { opMoment } from 'utils/dates';\n\nimport { useDispatch } from 'react-redux';\n\nimport { setAlert } from 'routes/AppContainer/actions';\n\nconst POLLING_DELAY_TIMER = 2500;\nconst POLLING_TIMEOUT = 1000 * 15; // 15 seconds\n\n// takes hlsPlaybackUrl\n// returns\n// - isPolling: boolean\n// - isErrorState: boolean\n// -\nexport default function useVideoClipPolling({\n page,\n currentOrgId,\n cameraId,\n timestamp,\n shouldRun = false,\n clips = [],\n timeoutCallback = () => null,\n}) {\n const dispatch = useDispatch();\n\n const [pollingDelay, setPollingDelay] = useState(null);\n const [pollingStart, setPollingStart] = useState(null);\n const [videoClip, setVideoClip] = useState(null);\n const [errorState, setErrorState] = useState(false);\n\n const startDate = timestamp\n ? opMoment(new Date(timestamp * 1000).toISOString())\n .subtract(10, 'seconds')\n .toISOString()\n : null;\n const endDate = timestamp\n ? opMoment(new Date(timestamp * 1000).toISOString())\n .add(10, 'seconds')\n .toISOString()\n : null;\n\n const intervalCheck = useCallback(() => {\n // eslint-disable-next-line no-console\n console.debug(':: intervalcheck ' + Date.now() + ` ${pollingStart}`);\n if (errorState || !shouldRun || videoClip || clips.length) {\n // eslint-disable-next-line no-console\n console.debug(\n ':: POLLING STOPPING (useVideoClipPolling)... ' + Date.now(),\n );\n setPollingDelay(null); // stop the interval!\n setPollingStart(null);\n } else if (pollingStart && Date.now() - pollingStart > POLLING_TIMEOUT) {\n // eslint-disable-next-line no-console\n console.debug(\n `:: POLLING TIMEOUT (useVideoClipPolling)... Diff: ${\n Date.now() - pollingStart\n }`,\n );\n setPollingStart(null);\n setPollingDelay(null); // stop the interval!\n setErrorState(true);\n dispatch(\n setAlert('error', 'Clip not ready! Please try again', 'Failed', {\n timeout: 5000,\n }),\n );\n timeoutCallback();\n } else {\n // eslint-disable-next-line no-console\n console.debug(\n ':: POLLING FOR CLIPS (useVideoClipPolling) ' + Date.now(),\n );\n dispatch(\n requestHeliumDataGeneric(page, {\n key: 'opvideoDeviceListClips',\n requisites: [currentOrgId, cameraId],\n defaultQueryParams: { startDate, endDate },\n }),\n );\n }\n }, [\n cameraId,\n videoClip,\n clips.length,\n currentOrgId,\n dispatch,\n errorState,\n page,\n pollingStart,\n shouldRun,\n startDate,\n endDate,\n timeoutCallback,\n ]);\n\n useInterval(intervalCheck, pollingDelay); // null will stop interval\n\n // ** do one dispatch on mount to make sure if we have a clip we don't wait for the interval\n useEffect(intervalCheck, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // if we're in an error, we aren't going to do anything\n if (errorState || !shouldRun) return;\n\n if (clips.length) {\n const clip = clips[0];\n\n if (clip) {\n setVideoClip(clip);\n }\n }\n\n setPollingStart(Date.now());\n setPollingDelay(POLLING_DELAY_TIMER);\n intervalCheck(); // ---> fire once so we dont have to wait\n }, [errorState, shouldRun, cameraId, clips.length, dispatch, page]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n errorState,\n videoClip,\n };\n}\n","import { useCallback, useEffect, useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router';\nimport { parseSlideoutUrls } from 'global/slideOuts/utils';\nimport { selectSlideOuts } from 'global/slideOuts/selectors';\nimport { addSlideOut, deleteSlideOut } from 'global/slideOuts/actions';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { getWindowLocation } from 'utils/window';\n\nconst VALID_OPTIONS_FOR_SLIDEOUT_PROPS = [\n 'debug', // DEFAULT: null :: show debugging information for the slideout\n 'showCloseButton', // DEFAULT: true :: whether or not we want to show the close button\n 'requiredExtraData', // DEFAULT: null :: extraData/url param that is required to open this slideout (will close if not available)\n 'closeButtonStyle', // DEFAULT: null :: css to be passed to the close button\n 'maxWidth', // DEFAULT: 1200 :: the max width (integer) that the slideout should take up.\n 'pathname', // DEFAULT: null :: if this slideout should use a path (i.e. /edit) instead of a query param\n];\n\n// This works in conjunction with SlideOuts/index.js to manage URL state\nconst useSlideOut = (routeConfig, extraData, slideOutProps = {}) => {\n const dispatch = useDispatch();\n const activeSlideOuts = useSelectorJs(selectSlideOuts());\n\n if (\n !Object.keys(slideOutProps).every((el) =>\n VALID_OPTIONS_FOR_SLIDEOUT_PROPS.includes(el),\n )\n ) {\n throw new Error(\n `useSlideOut() - Invalid slideOutProps passed to hook. You passed ${JSON.stringify(\n Object.keys(slideOutProps),\n )} (valid options: ${JSON.stringify(VALID_OPTIONS_FOR_SLIDEOUT_PROPS)})`,\n );\n }\n\n // whether or not we want to show additional debug\n if (window.sessionStorage.getItem('op-history-debug')) {\n // eslint-disable-next-line no-param-reassign\n slideOutProps.debug = true;\n }\n const { debug } = slideOutProps;\n\n // error checking\n if (\n slideOutProps?.requiredExtraData &&\n !Array.isArray(slideOutProps.requiredExtraData)\n ) {\n if (debug) {\n // eslint-disable-next-line no-console\n console.debug(\n 'useSlideOut() - requiredExtraData is not an array, you should correct this',\n );\n }\n // eslint-disable-next-line no-param-reassign\n slideOutProps.requiredExtraData = [slideOutProps.requiredExtraData];\n }\n\n const config = useMemo(\n () => ({\n routeConfig: {\n ...routeConfig,\n extraData: {\n ...extraData,\n },\n },\n slideOutProps: {\n ...slideOutProps,\n },\n }),\n\n // note - this is on purpose, we only want to caluclate this once on mount. Otherwise, it will trigger a re-render on openSlideOut and then again on the useEffect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // create a helper function that also manages the URL\n // otherData is data passed at execution time that we may want to inject\n // into the slideout\n const openSlideout = useCallback(\n (otherData) => {\n const configWithAdditionalData = { ...config };\n configWithAdditionalData.routeConfig.extraData = {\n ...configWithAdditionalData.routeConfig.extraData,\n ...otherData,\n };\n dispatch(addSlideOut(configWithAdditionalData));\n },\n [config, dispatch],\n );\n\n const closeSlideout = useCallback(\n (otherData) => {\n const configWithAdditionalData = { ...config };\n configWithAdditionalData.routeConfig.extraData = {\n ...configWithAdditionalData.routeConfig.extraData,\n ...otherData,\n };\n dispatch(deleteSlideOut(configWithAdditionalData));\n },\n [dispatch, config],\n );\n\n const location = useLocation();\n\n // this effect is used on page load to see if we need to open a slideout\n useEffect(() => {\n const { parsed, otherData } = parseSlideoutUrls(location);\n\n const activeSlideoutRoutes = activeSlideOuts.map(\n (s) => s?.routeConfig?.path,\n );\n const urlMatch1 =\n parsed.findIndex((x) => x.route.includes(routeConfig.path)) > -1;\n const pathNameMatch =\n !activeSlideoutRoutes.length &&\n !!(\n slideOutProps.pathname &&\n getWindowLocation().pathname.includes(slideOutProps.pathname)\n ); // this is the problem, it matches multiple times!\n\n const urlMatch = urlMatch1 || pathNameMatch;\n\n if (urlMatch && !activeSlideoutRoutes.includes(routeConfig.path)) {\n if (debug) {\n /* eslint-disable no-console */\n console.debug('\\n\\n***************************');\n console.debug(\n `useSlideOut() - ${JSON.stringify(slideOutProps.pathname, null, 2)}`,\n );\n console.debug(\n `[routeConfig.path] - ${JSON.stringify(\n routeConfig.path,\n null,\n 2,\n )} (urlMatch: ${urlMatch} - urlMatch1: ${urlMatch1} - pathNameMatch: ${pathNameMatch})`,\n );\n console.debug(`[otherData] - ${JSON.stringify(otherData, null, 2)}`);\n console.debug('\\n\\n***************************');\n /* eslint-enable no-console */\n }\n if (debug) {\n // eslint-disable-next-line no-console\n console.debug(`useSlideOut() - launching slideout ${routeConfig.path}`);\n }\n openSlideout(otherData);\n }\n }, [location]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return [openSlideout, closeSlideout, config];\n};\n\nexport default useSlideOut;\n","import { useCallback, useMemo } from 'react';\n\nimport {\n SET_ENTRIES,\n SET_GROUPS,\n SET_SITES,\n SET_ZONES,\n SET_USERS,\n} from 'routes/OrgContainer/constants';\nimport {\n selectGroupsForMultiSelect,\n selectOptionsForEntriesMultiSelect,\n selectSitesForMultiSelect,\n selectZonesForMultiSelect,\n selectUserOptionsForDropdown,\n selectOptionsForCredentialTypesMultiSelect,\n} from 'routes/OrgContainer/selectors';\n\nimport { requestAndSetGeneralWrapper } from 'routes/OrgContainer/actions';\n\nimport { useTranslation } from 'react-i18next';\nimport { useSelectorJs } from '.';\nimport { useShowSitePartitioningItems } from './useShowSitePartitioningItems';\n\nconst useFiltersForReport = (PAGE, route, dispatch, orgId) => {\n const { t } = useTranslation();\n\n // filter options\n const userOptions = useSelectorJs(selectUserOptionsForDropdown, { route });\n const siteOptions = useSelectorJs(selectSitesForMultiSelect(), { route });\n const zoneOptions = useSelectorJs(selectZonesForMultiSelect(), { route });\n const entryOptions = useSelectorJs(selectOptionsForEntriesMultiSelect(), {\n route,\n });\n const groupOptions = useSelectorJs(selectGroupsForMultiSelect(), { route });\n const credentialTypesOptions = useSelectorJs(\n selectOptionsForCredentialTypesMultiSelect(),\n { route },\n );\n\n const { isShowingSitePartitioningItems } =\n useShowSitePartitioningItems(orgId);\n\n const filterOptions = useMemo(\n () => ({\n userId: userOptions,\n 'entries.site.id': siteOptions,\n 'entries.zone.id': zoneOptions,\n 'entries.id': entryOptions,\n 'userGroups.id': groupOptions,\n credentialTypeName: credentialTypesOptions,\n result: [\n { label: t('Granted'), value: 'Granted' },\n { label: t('Denied'), value: 'Denied' },\n { label: t('Pass-Through'), value: 'Pass-Through' },\n ],\n category: [\n { label: t('Device'), value: 'Device' },\n { label: t('Alert'), value: 'Alert' },\n { label: t('Entry'), value: 'Entry' },\n ],\n }),\n [\n t,\n userOptions,\n siteOptions,\n zoneOptions,\n entryOptions,\n groupOptions,\n credentialTypesOptions,\n ],\n );\n\n const filterOptionsUpdate = useCallback(\n (filterType, q) => {\n let actionInfo = null;\n switch (filterType) {\n case 'userId':\n actionInfo = {\n heliumApi: 'listUsers',\n queryStringParams: {\n q,\n ...(isShowingSitePartitioningItems && {\n options: 'withUserSites',\n }),\n },\n setterActionType: SET_USERS,\n page: PAGE,\n };\n break;\n case 'entries.site.id':\n actionInfo = {\n heliumApi: 'listSites',\n queryStringParams: { q },\n setterActionType: SET_SITES,\n page: PAGE,\n };\n break;\n case 'entries.zone.id':\n actionInfo = {\n heliumApi: 'listZones',\n queryStringParams: { q },\n setterActionType: SET_ZONES,\n page: PAGE,\n };\n break;\n case 'entries.id':\n actionInfo = {\n heliumApi: 'listEntries',\n queryStringParams: { q },\n setterActionType: SET_ENTRIES,\n page: PAGE,\n };\n break;\n case 'userGroups.id':\n actionInfo = {\n heliumApi: 'listGroups',\n queryStringParams: { q },\n setterActionType: SET_GROUPS,\n page: PAGE,\n };\n break;\n default:\n // do nothing, user hasn't selected anything yet\n }\n\n if (actionInfo) {\n // API doesn't like empty q's\n if (!actionInfo.queryStringParams.q?.length) {\n delete actionInfo.queryStringParams.q;\n }\n dispatch(requestAndSetGeneralWrapper(actionInfo));\n }\n },\n [isShowingSitePartitioningItems, PAGE, dispatch],\n );\n\n return [filterOptions, filterOptionsUpdate];\n};\n\nexport default useFiltersForReport;\n","import { useCallback, useMemo } from 'react';\n\nimport {\n SET_ENTRIES,\n SET_SITES,\n SET_ZONES,\n SET_USERS,\n SET_ROLES,\n SET_ACUS,\n SET_READERS,\n} from 'routes/OrgContainer/constants';\nimport {\n selectOptionsForEntriesMultiSelect,\n selectSitesForMultiSelect,\n selectZonesForMultiSelect,\n selectUserOptionsForDropdown,\n selectRolesForMultiSelect,\n selectAllAcuOptions,\n selectReaderOptions,\n} from 'routes/OrgContainer/selectors';\n\nimport { requestAndSetGeneralWrapper } from 'routes/OrgContainer/actions';\n\nimport { useSelectorJs } from '.';\nimport { useShowSitePartitioningItems } from './useShowSitePartitioningItems';\n\nconst useFiltersForAlarmReport = (PAGE, route, dispatch, orgId) => {\n // filter options\n const userOptions = useSelectorJs(selectUserOptionsForDropdown, { route });\n const siteOptions = useSelectorJs(selectSitesForMultiSelect(), { route });\n const zoneOptions = useSelectorJs(selectZonesForMultiSelect(), { route });\n const entryOptions = useSelectorJs(selectOptionsForEntriesMultiSelect(), {\n route,\n });\n const roleOptions = useSelectorJs(selectRolesForMultiSelect, { route });\n const acuOptions = useSelectorJs(selectAllAcuOptions(), {\n route,\n });\n const readerOptions = useSelectorJs(selectReaderOptions, { route });\n\n const filterOptions = useMemo(\n () => ({\n userId: userOptions,\n assignedUserId: userOptions,\n assignedRoleId: roleOptions,\n 'entries.site.id': siteOptions,\n 'entries.zone.id': zoneOptions,\n 'entries.id': entryOptions,\n acuId: acuOptions,\n readerId: readerOptions,\n }),\n [\n userOptions,\n roleOptions,\n siteOptions,\n zoneOptions,\n entryOptions,\n acuOptions,\n readerOptions,\n ],\n );\n\n const { isShowingSitePartitioningItems } =\n useShowSitePartitioningItems(orgId);\n\n const filterOptionsUpdate = useCallback(\n (filterType, q) => {\n let actionInfo = null;\n switch (filterType) {\n case 'userId':\n case 'assignedUserId':\n actionInfo = {\n heliumApi: 'listUsers',\n queryStringParams: {\n q,\n ...(isShowingSitePartitioningItems && {\n options: 'withUserSites',\n }),\n },\n setterActionType: SET_USERS,\n page: PAGE,\n };\n break;\n case 'assignedRoleId':\n actionInfo = {\n heliumApi: 'listRoles',\n queryStringParams: { q },\n setterActionType: SET_ROLES,\n page: PAGE,\n };\n break;\n case 'entries.site.id':\n actionInfo = {\n heliumApi: 'listSites',\n queryStringParams: { q },\n setterActionType: SET_SITES,\n page: PAGE,\n };\n break;\n case 'entries.zone.id':\n actionInfo = {\n heliumApi: 'listZones',\n queryStringParams: { q },\n setterActionType: SET_ZONES,\n page: PAGE,\n };\n break;\n case 'entries.id':\n actionInfo = {\n heliumApi: 'listEntries',\n queryStringParams: { q },\n setterActionType: SET_ENTRIES,\n page: PAGE,\n };\n break;\n case 'acuId':\n actionInfo = {\n heliumApi: 'listAcus',\n queryStringParams: { q },\n setterActionType: SET_ACUS,\n page: PAGE,\n };\n break;\n case 'readerId':\n actionInfo = {\n heliumApi: 'listReaders',\n queryStringParams: { q },\n setterActionType: SET_READERS,\n page: PAGE,\n };\n break;\n default:\n // do nothing, user hasn't selected anything yet\n }\n\n if (actionInfo) {\n // API doesn't like empty q's\n if (!actionInfo.queryStringParams.q?.length) {\n delete actionInfo.queryStringParams.q;\n }\n dispatch(requestAndSetGeneralWrapper(actionInfo));\n }\n },\n [isShowingSitePartitioningItems, PAGE, dispatch],\n );\n\n return [filterOptions, filterOptionsUpdate];\n};\n\nexport default useFiltersForAlarmReport;\n","import { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { t } from 'i18next';\nimport { useEffect, useCallback, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { clearAlert } from 'routes/AppContainer/actions';\nimport { Layers, SoundEffects, WebAudio } from 'utils/audio';\nimport { useBroadcastChannel, useOxygenSocket } from 'utils/customHooks';\n\n// only subscribe to these events\nconst INTERCOM_USER_EVENTS = [\n 'opvideoIntercom.frontDeskConnect.requested',\n 'opvideoIntercom.directConnect.requested',\n 'opvideoIntercom.voicemail.recorded',\n];\nconst INTERCOM_NON_USER_EVENTS = [\n 'opvideoIntercom.directConnect.answered',\n 'opvideoIntercom.frontDeskConnect.answered',\n];\nconst OXYGEN_CLIENT_ID = 'intercom-notifications';\n\n// note this does not connect on load, you have to use your own useEffect() to do initial connect\n\n/**\n * @param {number} args.userId [Required] The current user's ID\n * @param {string} args.token [Required] The current user's Oxygen token\n * @param {function(alertTitle, {opvideoDeviceId: number, opvideoIntercomName: string})} args.displayIntercomAlert Called every time we want to visually display a notification; natural refactor point\n */\nconst useIntercomNotifications = ({\n orgId,\n userId,\n displayIntercomAlert,\n token,\n}) => {\n const dispatch = useDispatch();\n // TODO: break out if the user is not in an org with an intercom\n\n // used for coordination between tabs (when one tab connects to Oxygen, it tells all others to disconnect)\n // note this is an abstraction layer on top of the BrowserChannel standard that works in more browsers more reliably\n // the API differs slightly from the browser version\n const [broadcastChannelRef, broadcastId] = useBroadcastChannel('oxygen');\n\n // used to debug when a customer is having deliverability issues\n const shouldAck = useSelector(\n selectFeatureFlag('SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES'),\n );\n\n const subscriptionData = useMemo(() => {\n return [\n ...INTERCOM_USER_EVENTS.map((hookEventType) => ({\n preFilter: {\n hookEventType,\n userId,\n },\n trigger: {\n $id: 'https://openpath.com/all-events.json',\n },\n clientData: {},\n })),\n ...INTERCOM_NON_USER_EVENTS.map((hookEventType) => ({\n preFilter: {\n hookEventType,\n },\n trigger: {\n $id: 'https://openpath.com/all-events.json',\n },\n clientData: {},\n })),\n ];\n }, [userId]);\n\n // this will get called once for each hookEvent\n const handleEvent = useCallback(\n (event, socket) => {\n const {\n event: eventType,\n data: {\n opvideoDeviceId,\n acuName: opvideoIntercomName,\n sessionId,\n userIds,\n acuId,\n opvideoIntercomId,\n },\n } = event;\n\n // filter down to just intercom notifications we care about\n // technically we should never hit this because we're prefiltering, but it's not impossible\n if (\n ![...INTERCOM_USER_EVENTS, ...INTERCOM_NON_USER_EVENTS].includes(\n eventType,\n )\n ) {\n return;\n }\n\n // used to debug deliverability, see feature flag code above\n if (shouldAck && socket) {\n // eslint-disable-next-line no-console\n console.log('[Oxygen] Sending ack back');\n // tell Oxygen \"we got the event - btw, here's some info about the event we got\"\n socket.send(\n JSON.stringify({\n action: 'log',\n log: {\n type: 'eventAck',\n userId,\n orgId,\n acuId,\n opvideoDeviceId,\n opvideoIntercomId,\n eventType,\n eventTimestamp: event.timestamp,\n eventMetadata: event.metadata,\n clientReceivedTs: Date.now() / 1000,\n },\n clientRequestId: OXYGEN_CLIENT_ID,\n }),\n );\n }\n\n // The answered events are not user related, so we check to see if they occur and handle them here\n if (\n [\n 'opvideoIntercom.directConnect.answered',\n 'opvideoIntercom.frontDeskConnect.answered',\n ].includes(eventType)\n ) {\n // Clear the intercom notification\n dispatch(clearAlert(sessionId));\n\n // Stop the intercom notification audio\n WebAudio.stop(\n SoundEffects.INTERCOM_NOTIFICATION,\n Layers.INTERCOM_NOTIFICATIONS,\n );\n }\n\n // make sure the event contains a userIds payload\n // technically we should never hit this because we're prefiltering, but it's not impossible\n if (!userIds || userIds.length <= 0) {\n return;\n }\n\n // check if the event was addressed to the current user\n // technically we should never hit this because we're prefiltering, but it's not impossible\n if (!userIds.includes(userId)) {\n return;\n }\n\n if (eventType === 'opvideoIntercom.directConnect.requested') {\n displayIntercomAlert(t('Direct connect requested'), {\n opvideoDeviceId,\n opvideoIntercomName,\n sessionId,\n });\n } else if (eventType === 'opvideoIntercom.frontDeskConnect.requested') {\n displayIntercomAlert(t('Front desk connect requested'), {\n opvideoDeviceId,\n opvideoIntercomName,\n sessionId,\n });\n }\n },\n [dispatch, displayIntercomAlert, userId, shouldAck, orgId],\n );\n\n // this gets called every time we get an Oxygen message\n const onMessage = useCallback(\n (event, socket) => {\n if (!event || !event.data) return;\n\n try {\n const parsed = JSON.parse(event.data);\n const { type, data } = parsed;\n\n // grab event batches from the Oxygen message\n // pass them each to handleEvent\n if (type === 'events' && data && Array.isArray(data)) {\n data.map((d) => handleEvent(d, socket));\n }\n } catch (e) {\n console.error('got unhandled error, probably invalid json', e, event);\n }\n },\n [handleEvent],\n );\n\n // when Oxygen successfully connects, call this function\n // this function binds the onMessage function to each socket message we get\n const onConnectionHandler = useCallback(\n (socket) => {\n return socket.addEventListener('message', (m) => onMessage(m, socket));\n },\n [onMessage],\n );\n\n const {\n isConnected,\n connect: oxyConnect,\n disconnect,\n } = useOxygenSocket({\n orgId,\n onConnectionHandler,\n subscriptionData,\n clientRequestId: OXYGEN_CLIENT_ID,\n token,\n ignoreBroadcastDisconnect: true,\n });\n\n // wrap the underlying Oxygen connect() method to disconnect other tabs\n const connect = useCallback(() => {\n if (userId) {\n // first we connect this tab to Oxygen\n oxyConnect();\n\n // then we tell all the other tabs to disconnect\n try {\n broadcastChannelRef.current.postMessage({\n command: 'DISCONNECT',\n target: OXYGEN_CLIENT_ID,\n sender: broadcastId,\n });\n } catch (e) {\n console.error(e);\n }\n } else {\n // eslint-disable-next-line no-console\n console.debug('Not connecting to Oxygen, userId param is required');\n }\n }, [oxyConnect, broadcastChannelRef, broadcastId, userId]);\n\n useEffect(() => {\n if (!window || !broadcastChannelRef.current) {\n return () => {}; // No-op to always return a function\n }\n\n const broadcastChannel = broadcastChannelRef.current;\n\n const handleMessage = (msg) => {\n if (\n msg?.command === 'DISCONNECT' &&\n (msg?.target === OXYGEN_CLIENT_ID || msg?.target === '*') && // only listen for messages addressed to us OR addressed to all\n msg?.sender !== broadcastId\n ) {\n disconnect();\n }\n };\n\n // listen for commands from other instances (in most cases other tabs)\n broadcastChannel.addEventListener('message', handleMessage);\n\n return () => {\n broadcastChannel.removeEventListener('message', handleMessage);\n };\n }, [broadcastChannelRef.current]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return { connect, disconnect, isConnected };\n};\n\nexport default useIntercomNotifications;\n","import { useCallback, useMemo } from 'react';\n\nimport { useOxygenSocket } from 'utils/customHooks';\n\n// only subscribe to these events\nconst UI_NOTIFICATION_EVENT = 'ui.notification';\nconst OXYGEN_CLIENT_ID = 'ui-notifications';\n\n// note this does not connect on load, you have to use your own useEffect() to do initial connect\n\n/**\n * @param {number} args.userId [Required] The current user's ID\n * @param {string} args.token [Required] The current user's Oxygen token\n * @param {function(titleText: string, subtitleText: string, type: string, icon: string, buttons, recipientUserIds, recipientRoleIds)} args.displayUiNotification Called every time we want to visually display a notification; natural refactor point\n */\nconst useUiNotifications = ({\n orgId,\n userId,\n token,\n displayUiNotification,\n}) => {\n /* eslint-disable no-console */\n\n const subscriptionData = useMemo(\n () => [\n {\n preFilter: {\n hookEventType: 'ui.notification',\n userId,\n },\n trigger: {\n properties: {\n required: ['data'],\n data: {\n properties: {\n originUserId: {\n not: {\n enum: [userId],\n },\n },\n },\n },\n },\n },\n clientData: {},\n },\n ],\n [userId],\n );\n\n // this will get called once for each hookEvent\n const handleEvent = useCallback(\n ({\n event: eventName,\n data: { titleText, subtitleText, type, icon, buttons },\n }) => {\n // filter down to just ui notifications we care about\n // technically we should never hit this because we're prefiltering, but it's not impossible\n if (eventName !== UI_NOTIFICATION_EVENT) {\n // console.log('ui notifications got unhandled event', eventName, data)\n return;\n }\n\n displayUiNotification(titleText, subtitleText, type, icon, buttons);\n },\n [displayUiNotification],\n );\n\n // this gets called every time we get an Oxygen message\n const onMessage = useCallback(\n (event) => {\n if (!event || !event.data) return;\n\n try {\n const parsed = JSON.parse(event.data);\n const { type, data } = parsed;\n\n // console.log('ui notifications got event', event?.data)\n\n // grab event batches from the Oxygen message\n // pass them each to handleEvent\n if (type === 'events' && data && Array.isArray(data)) {\n data.forEach(handleEvent);\n }\n } catch (e) {\n console.error('got unhandled error, probably invalid json', e, event);\n }\n },\n [handleEvent],\n );\n\n // when Oxygen successfully connects, call this function\n // this function binds the onMessage function to each socket message we get\n const onConnectionHandler = useCallback(\n (socket) => {\n // console.log('connected to oxygen for ui notifications')\n return socket.addEventListener('message', onMessage);\n },\n [onMessage],\n );\n\n const {\n isConnected,\n connect: oxyConnect,\n disconnect,\n } = useOxygenSocket({\n orgId,\n onConnectionHandler,\n subscriptionData,\n clientRequestId: OXYGEN_CLIENT_ID,\n token,\n });\n\n // wrap the underlying Oxygen connect() method to disconnect other tabs\n const connect = useCallback(() => {\n if (userId) {\n // Connect this tab to Oxygen\n oxyConnect();\n } else {\n console.debug('Not connecting to Oxygen, userId param is required');\n }\n }, [oxyConnect, userId]);\n\n /* eslint-enable no-console */\n\n return { connect, disconnect, isConnected };\n};\n\nexport default useUiNotifications;\n","import { useState, useRef, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport Cookies from 'universal-cookie';\nimport { selectOrgFeatures } from 'global/orgFeatures/selectors';\nimport { opMoment } from 'utils/dates';\nimport { selectCloudKeys } from 'global/cloudKey/selectors';\nimport {\n selectCurrentOrgId,\n selectActiveScopes,\n} from 'global/accessToken/selectors';\nimport { verifyApiScope } from 'utils/redirects';\n\nimport { Logger } from '../../../e2e/framework/logger';\n\nexport { default as useHeliumData } from './useHeliumData';\nexport { default as useOxygenSocket } from './useOxygenSocket';\nexport { default as useIsSlideOutChild } from './useIsSlideOutChild';\nexport { default as useVideoClipPolling } from './useVideoClipPolling';\nexport { default as useSlideOut } from './useSlideOut';\nexport { default as useFiltersForReport } from './useFiltersForReport';\nexport { default as useFiltersForAlarmReport } from './useFiltersForAlarmReport';\nexport { default as useIntercomNotifications } from './useIntercomNotifications';\nexport { default as useUiNotifications } from './useUiNotifications';\nexport { default as useBroadcastChannel } from './useBroadcastChannel';\n\nconst cookies = new Cookies();\n\nexport const useValidCloudKeys = () => {\n const cloudKeys = useSelectorJs(selectCloudKeys(), {});\n\n const validCloudKeys = cloudKeys.filter(\n ({ startDate, endDate }) =>\n (startDate === null || opMoment(startDate).isBefore(opMoment())) &&\n (endDate === null || opMoment(endDate).isAfter(opMoment())),\n );\n\n return validCloudKeys;\n};\n\nexport const useHasPermissionForApi = (operationId) => {\n const currentOrgId = useSelectorJs(selectCurrentOrgId(), {});\n const activeScopes = useSelectorJs(selectActiveScopes(), {});\n\n const scopeCheck = verifyApiScope(activeScopes, operationId, currentOrgId);\n return scopeCheck;\n};\n\n// Uses createPropsSelector to return a memoized version of the selector in plain js\nexport const useSelectorJs = (selector, props, shouldRun = true) => {\n const value = useSelector(\n (state) => (shouldRun ? selector(state, props) : null),\n (a, b) => (a?.toJS ? a.equals(b) : a === b),\n );\n return useMemo(() => (value?.toJS ? value.toJS() : value), [value]);\n};\n\n// Used to get the last instance of the prop (like prevProps in ComponentDidUpdate)\nexport const usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\n\n// Can be used to debounce API calls\nexport const useDebounce = (value, delay) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n },\n [value, delay], // Only re-call effect if value or delay changes\n );\n\n return debouncedValue;\n};\n\n// Can be used to check feature gate in sagas\nexport const selectOrgHasFeature = (featureCode) => () => {\n const orgFeatures = useSelectorJs(selectOrgFeatures());\n\n if (!orgFeatures) {\n return false;\n }\n\n const hasFeature = orgFeatures.some(({ code }) => {\n return Array.isArray(featureCode)\n ? featureCode.includes(code)\n : featureCode === code;\n });\n\n return hasFeature;\n};\n\n// Can be used to feature gate elements\nexport const useFeatureGate = (featureCode) => {\n // Selectors\n const orgFeatures = useSelectorJs(selectOrgFeatures());\n\n // Prevent initial flash of upgrade message when the component first loads\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n if (!loaded && orgFeatures && orgFeatures.length > 0) {\n setLoaded(true);\n }\n }, [orgFeatures, loaded]);\n\n if (!loaded || !featureCode || !orgFeatures) {\n return null;\n }\n\n const hasFeature = orgFeatures.some(({ code }) => {\n return Array.isArray(featureCode)\n ? featureCode.includes(code)\n : featureCode === code;\n });\n\n return hasFeature;\n};\n\nexport const useIsInMobileWebView = () =>\n /*\n * Tungsten displays Platinum in a webview. To prevent the user from navigating on their own, Tungsten adds a cookie with\n * key 'isInMobileWebView' and value 'true' which tells Platinum\n * to not show Navigation, HeaderWrapper, or SmallBreadcrumbs\n * It also hides the icon in <PageHeader />\n * And it reduces margins on the side of the table and content boxes\n */\n cookies.get('isInMobileWebView') === 'true';\n\n// this is considered bad practice, I believe, but sometimes it's necessary\nexport const useMount = (func) => {\n useEffect(func, []); // eslint-disable-line react-hooks/exhaustive-deps\n};\n\n// To get the hovering state of an element\nexport const useHover = (ref) => {\n const [isHovering, setIsHovering] = useState(false);\n const handleMouseEnter = () => setIsHovering(true);\n const handleMouseLeave = () => setIsHovering(false);\n useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener('mouseenter', handleMouseEnter);\n node.addEventListener('mouseleave', handleMouseLeave);\n return () => {\n node.removeEventListener('mouseenter', handleMouseEnter);\n node.removeEventListener('mouseleave', handleMouseLeave);\n };\n }\n }, [ref]);\n return isHovering;\n};\n\n// potential values are 'granted' | 'denied' | 'unknown'\n// all browsers except Chrome will always return 'unknown'\nexport const useMicrophonePermission = () => {\n const [permissionStatus, setPermissionStatus] = useState('unknown');\n\n useEffect(() => {\n const checkMicrophonePermission = async () => {\n if (navigator.permissions && navigator.permissions.query) {\n try {\n const result = await navigator.permissions.query({\n name: 'microphone',\n });\n setPermissionStatus(result.state);\n if (result.state === 'prompt') {\n navigator.mediaDevices\n .getUserMedia({ audio: true })\n .then(() => {\n Logger.log('Microphone access granted');\n setPermissionStatus('granted');\n // You can now use the stream\n })\n .catch((err) => {\n Logger.log('Error: ' + err);\n setPermissionStatus('unknown');\n });\n }\n result.onchange = () => {\n setPermissionStatus(result.state);\n };\n } catch (error) {\n console.error('Error checking microphone permission:', error);\n }\n } else {\n console.warn('Permissions API is not supported in this browser.');\n }\n };\n\n checkMicrophonePermission();\n }, []);\n\n return permissionStatus;\n};\n","import { createSelector } from 'reselect';\nimport {\n getActiveScopes,\n verifyScope,\n substituteOrgIdInScope,\n} from 'utils/redirects';\nimport { getRawMenuItems, getItemConfig } from 'config/utils';\nimport { selectActiveItem } from 'containers/NavMenu/selectors';\nimport { selectCurrentOrgParentId } from 'routes/AppContainer/selectors';\nimport { includesAnyPortalScope } from 'utils/helpers';\nimport { fromJS } from 'immutable';\n\nconst selectCurrentOrg = () => (state) => state.getIn(['app', 'currentOrg']);\nconst selectAppError = () => (state) => state.getIn(['app', 'error']);\nconst selectAccessTokenScopes = () => (state) =>\n state.getIn(['accessToken', 'scopes']);\nexport const selectAccessToken = () => (state) =>\n state.getIn(['accessToken', 'token']);\nexport const selectIdentityId = (state) =>\n state.getIn(['accessToken', 'identity', 'id']);\nconst selectProcessedScopes = () => (state) =>\n state.getIn(['accessToken', 'processedScopes']);\nconst selectRemoteFeatureFlags = () => (state) =>\n state.getIn(['accessToken', 'remoteFeatureFlags']);\nconst selectMfaCredentials = () => (state) =>\n state.getIn(['accessToken', 'mfaCredentials']);\n\nexport const selectOrgsForIdentityUsersWithPortalScope = () =>\n createSelector(selectAccessTokenScopes(), (substate) =>\n substate.reduce((acc, curr) => {\n if (\n curr.getIn(['org', 'id']) &&\n includesAnyPortalScope(curr.get('scope'))\n ) {\n // Org is a parent org if it has a package with the subOrgs feature\n const isParentOrg = curr\n .getIn(['org', 'packagePlans'])\n ?.some((pp) =>\n pp\n .getIn(['package', 'packageFeatures'])\n ?.some((pf) => pf.getIn(['feature', 'code']) === 'subOrgs'),\n );\n\n return acc.push(curr.get('org').set('isParentOrg', isParentOrg));\n }\n\n return acc;\n }, fromJS([])),\n );\n\nexport const selectOrgIdsForIdentityUsersWithPortalScope = () =>\n createSelector(selectOrgsForIdentityUsersWithPortalScope(), (orgs) =>\n orgs.map((org) => org.get('id')),\n );\n\n// Helper to just get the org id\nconst selectCurrentOrgId = () =>\n createSelector(selectCurrentOrg(), (currentOrg) =>\n currentOrg ? Number(currentOrg) : null,\n );\n\n// Returns a flat list of scopes from all applicable sources; see\n// additional comments at getActiveScopes in utils/redirects.\nconst selectActiveScopes = () =>\n createSelector(\n [\n selectCurrentOrg(),\n selectAccessTokenScopes(),\n selectProcessedScopes(),\n selectCurrentOrgParentId(),\n ],\n (currentOrg, scopes, processedScopes, parentId) =>\n getActiveScopes(\n currentOrg,\n scopes,\n processedScopes.get(String(parentId)),\n ),\n );\n\n// OR if any of the orgs in tokenScopeList have s-o:r or s-o:w scope AND that org has the Sub-Orgs feature\n// TOOD remove this whole selector when OPAC-2987 rolls around\nexport const selectIfAnyOrgsHaveSubOrgFeature = () =>\n createSelector([selectProcessedScopes()], (processedScopes) =>\n processedScopes.find(\n (s) => s.get('hasSubOrgFeature') && s.get('partnerScopes').size,\n ),\n );\n\nconst selectHasMasterModeAccess = () =>\n createSelector(\n [selectCurrentOrg(), selectAccessTokenScopes()],\n (currentOrg, scopes) => {\n const activeScopes = getActiveScopes(currentOrg, scopes);\n const validScopePrefixes = [\n 'o:', // o:r, o:w\n 'o-', // e.g. o-basic:r, o-basic:w, o-acu:r, o-acu:w, and more later...\n 'i:', // i:r, i:w\n 'pc:', // pc:r, pc:w\n ];\n const hasMasterModeScope = activeScopes.some((s) =>\n validScopePrefixes.some((p) => s.startsWith(p)),\n );\n return hasMasterModeScope;\n },\n );\n\nconst selectHasGeneralOrgSwitchAccess = () =>\n createSelector(\n [\n selectCurrentOrg(),\n selectAccessTokenScopes(),\n selectIfAnyOrgsHaveSubOrgFeature(),\n ],\n (currentOrg, scopes, anOrgHasSubOrgsFeature) => {\n // it's an OR check, so if we have this we can early exit\n if (\n anOrgHasSubOrgsFeature ||\n scopes.filter((scope) => scope.getIn(['org', 'id'])).size > 1\n ) {\n return true;\n }\n const activeScopes = getActiveScopes(currentOrg, scopes);\n\n const validScopePrefixes = [\n 'o:', // o:r, o:w\n\n // NOTE: specifically NOT included here are the various o-\n // granular scopes like o-basic:r, etc., and the i: scopes and\n // the pc: scopes, because while those carry some permission for\n // Master Mode menu functions, they don't (by themselves) carry\n // enough permission to org-switch and have access to the\n // org-mode portal for an arbitrary org\n ];\n const hasOrgSwitchScope = activeScopes.some((s) =>\n validScopePrefixes.some((p) => s.startsWith(p)),\n );\n return hasOrgSwitchScope;\n },\n );\n\nconst selectIsFullSupportAccessRequiredForOrgSwitch = () =>\n createSelector([selectProcessedScopes()], (processedScopes) =>\n processedScopes.getIn(['null', 'isFullSupportAccessRequired']),\n );\n\nconst selectActiveAllowedScopes = () =>\n createSelector(\n [selectCurrentOrg(), selectActiveItem()],\n (currentOrg, activeItem) => {\n if (!activeItem) return [];\n const allowedScopesRaw = getItemConfig(\n getRawMenuItems(),\n activeItem.get('route'),\n ).scope;\n if (!allowedScopesRaw) return [];\n const allowedScopes = substituteOrgIdInScope(\n currentOrg,\n allowedScopesRaw,\n );\n return allowedScopes;\n },\n );\n\nconst selectHasValidScopeAccess = () =>\n createSelector(\n [selectActiveAllowedScopes(), selectActiveScopes()],\n (allowedScopes, activeScopes) => verifyScope(activeScopes, allowedScopes),\n );\n\nconst selectHasValidScopeWriteAccess = () =>\n createSelector(\n [selectActiveAllowedScopes(), selectActiveScopes()],\n (allowedScopes, activeScopes) => {\n const writeScopes = allowedScopes.filter((s) => s.includes(':w'));\n return verifyScope(activeScopes, writeScopes);\n },\n );\n\nconst selectCurrentUser = () =>\n createSelector(\n [selectAccessTokenScopes(), selectCurrentOrgId()],\n (scopes = [], currentOrgId) => {\n const currentOrgUser = scopes.find(\n (s) => String(s.getIn(['org', 'id'])) === String(currentOrgId),\n );\n if (currentOrgUser) return currentOrgUser.getIn(['user']);\n return null;\n },\n );\n\nconst selectCurrentUserId = () =>\n createSelector([selectCurrentUser()], (currentUser) => {\n if (currentUser) return currentUser.get('id');\n return null;\n });\n\nconst selectCurrentUserOpal = () =>\n createSelector([selectCurrentUser()], (currentUser) => {\n if (currentUser) return currentUser.get('opal');\n return null;\n });\n\nconst selectUserForOrg = (orgId) =>\n createSelector([selectAccessTokenScopes()], (scopes = []) => {\n const orgUser = scopes.find(\n (s) => String(s.getIn(['org', 'id'])) === String(orgId),\n );\n if (orgUser) return orgUser.getIn(['user']);\n return null;\n });\n\nconst selectUserIdForOrg = (orgId) =>\n createSelector([selectUserForOrg(orgId)], (userForOrg) => {\n if (userForOrg) return userForOrg.get('id');\n return null;\n });\n\nconst selectUserOpalForOrg = (orgId) =>\n createSelector([selectUserForOrg(orgId)], (userForOrg) => {\n if (userForOrg) return userForOrg.get('opal');\n return null;\n });\n\nexport {\n selectAccessTokenScopes,\n selectCurrentOrgId,\n selectActiveScopes,\n selectCurrentOrg,\n selectAppError,\n selectHasMasterModeAccess,\n selectHasGeneralOrgSwitchAccess,\n selectIsFullSupportAccessRequiredForOrgSwitch,\n selectHasValidScopeAccess,\n selectHasValidScopeWriteAccess,\n selectCurrentUserId,\n selectCurrentUserOpal,\n selectUserForOrg,\n selectUserIdForOrg,\n selectUserOpalForOrg,\n selectProcessedScopes,\n selectRemoteFeatureFlags,\n selectMfaCredentials,\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\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}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-space--fullWidth{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSpace/OpSpace.scss\"],\"names\":[],\"mappings\":\"AACE,qBACE,UAAA\",\"sourcesContent\":[\".op-space {\\n &--fullWidth {\\n width: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","module.exports = __webpack_public_path__ + \"03246a0892adc688f659baa5e0113aee.js\";","import React from 'react';\nimport SemanticPopup from 'semantic-ui-react/dist/es/modules/Popup/Popup';\n\nexport const Popup = ({ ...props }) => (\n <SemanticPopup inverted basic {...props} />\n);\n","import { useEffect, useState } from 'react';\nimport { isNavigator, off, on } from './misc/util';\nvar nav = isNavigator ? navigator : undefined;\nvar conn = nav && (nav.connection || nav.mozConnection || nav.webkitConnection);\nfunction getConnectionState(previousState) {\n var online = nav === null || nav === void 0 ? void 0 : nav.onLine;\n var previousOnline = previousState === null || previousState === void 0 ? void 0 : previousState.online;\n return {\n online: online,\n previous: previousOnline,\n since: online !== previousOnline ? new Date() : previousState === null || previousState === void 0 ? void 0 : previousState.since,\n downlink: conn === null || conn === void 0 ? void 0 : conn.downlink,\n downlinkMax: conn === null || conn === void 0 ? void 0 : conn.downlinkMax,\n effectiveType: conn === null || conn === void 0 ? void 0 : conn.effectiveType,\n rtt: conn === null || conn === void 0 ? void 0 : conn.rtt,\n saveData: conn === null || conn === void 0 ? void 0 : conn.saveData,\n type: conn === null || conn === void 0 ? void 0 : conn.type,\n };\n}\nexport default function useNetworkState(initialState) {\n var _a = useState(initialState !== null && initialState !== void 0 ? initialState : getConnectionState), state = _a[0], setState = _a[1];\n useEffect(function () {\n var handleStateChange = function () {\n setState(getConnectionState);\n };\n on(window, 'online', handleStateChange, { passive: true });\n on(window, 'offline', handleStateChange, { passive: true });\n if (conn) {\n on(conn, 'change', handleStateChange, { passive: true });\n }\n return function () {\n off(window, 'online', handleStateChange);\n off(window, 'offline', handleStateChange);\n if (conn) {\n off(conn, 'change', handleStateChange);\n }\n };\n }, []);\n return state;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-select{color:var(--colorText)}.op-select:hover .ant-select-selector{border-color:var(--colorTextLabel) !important}.op-select:focus .ant-select-selector{border-color:var(--colorPrimaryHover)}.op-select__tag{border-radius:8px;line-height:24px;margin-inline-end:4px}.op-select__tag--error{background-color:var(--colorErrorBg);color:var(--colorErrorText)}.op-select .ant-select-selector{box-shadow:none !important;padding:0px 4px}.op-select .ant-select-selector:after{margin:1px 0}.op-select .ant-select-focused{border-color:rgba(0,0,0,0) !important}.op-select .ant-select-selection-overflow-item>span{line-height:30px}.op-select.ant-select-disabled .ant-tag{color:var(--colorTextDisabled)}.op-select .ant-select-arrow{color:var(--colorTextLabel)}.ant-select-item-option-selected{font-weight:500}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSelect/OpSelect.scss\"],\"names\":[],\"mappings\":\"AAEA,WACE,sBAAA,CAGE,sCACE,6CAAA,CAKF,sCACE,qCAAA,CAIJ,gBACE,iBAAA,CACA,gBAAA,CACA,qBAAA,CAEA,uBACE,oCAAA,CACA,2BAAA,CAIJ,gCACE,0BAAA,CACA,eAAA,CAGF,sCACE,YAAA,CAGF,+BACE,qCAAA,CAIF,oDACE,gBAAA,CAIA,wCACE,8BAAA,CAIJ,6BACE,2BAAA,CAIJ,iCACE,eAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-select {\\n color: var(--colorText);\\n\\n &:hover {\\n .ant-select-selector {\\n border-color: var(--colorTextLabel) !important;\\n }\\n }\\n\\n &:focus {\\n .ant-select-selector {\\n border-color: var(--colorPrimaryHover);\\n }\\n }\\n\\n &__tag {\\n border-radius: 8px;\\n line-height: 24px;\\n margin-inline-end: 4px;\\n\\n &--error {\\n background-color: var(--colorErrorBg);\\n color: var(--colorErrorText);\\n }\\n }\\n\\n .ant-select-selector {\\n box-shadow: none !important;\\n padding: 0px 4px;\\n }\\n\\n .ant-select-selector:after {\\n margin: 1px 0;\\n }\\n\\n .ant-select-focused {\\n border-color: transparent !important;\\n }\\n\\n // For multiple rows of tags\\n .ant-select-selection-overflow-item > span {\\n line-height: 30px;\\n }\\n\\n &.ant-select-disabled {\\n .ant-tag {\\n color: var(--colorTextDisabled);\\n }\\n }\\n\\n .ant-select-arrow {\\n color: var(--colorTextLabel);\\n }\\n}\\n\\n.ant-select-item-option-selected {\\n font-weight: 500;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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","module.exports = __webpack_public_path__ + \"87bce6f50196688852142c679227b1b9.js\";","// This icon file is generated automatically.\nvar SwapOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"swap\", \"theme\": \"outlined\" };\nexport default SwapOutlined;\n","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { useCacheToken } from '@ant-design/cssinjs';\nimport version from '../version';\nimport { defaultTheme, DesignTokenContext } from './context';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nexport const unitless = {\n lineHeight: true,\n lineHeightSM: true,\n lineHeightLG: true,\n lineHeightHeading1: true,\n lineHeightHeading2: true,\n lineHeightHeading3: true,\n lineHeightHeading4: true,\n lineHeightHeading5: true,\n opacityLoading: true,\n fontWeightStrong: true,\n zIndexPopupBase: true,\n zIndexBase: true,\n opacityImage: true\n};\nexport const ignore = {\n size: true,\n sizeSM: true,\n sizeLG: true,\n sizeMD: true,\n sizeXS: true,\n sizeXXS: true,\n sizeMS: true,\n sizeXL: true,\n sizeXXL: true,\n sizeUnit: true,\n sizeStep: true,\n motionBase: true,\n motionUnit: true\n};\nconst preserve = {\n screenXS: true,\n screenXSMin: true,\n screenXSMax: true,\n screenSM: true,\n screenSMMin: true,\n screenSMMax: true,\n screenMD: true,\n screenMDMin: true,\n screenMDMax: true,\n screenLG: true,\n screenLGMin: true,\n screenLGMax: true,\n screenXL: true,\n screenXLMin: true,\n screenXLMax: true,\n screenXXL: true,\n screenXXLMin: true\n};\nexport const getComputedToken = (originToken, overrideToken, theme) => {\n const derivativeToken = theme.getDerivativeToken(originToken);\n const {\n override\n } = overrideToken,\n components = __rest(overrideToken, [\"override\"]);\n // Merge with override\n let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {\n override\n });\n // Format if needed\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n if (components) {\n Object.entries(components).forEach(_ref => {\n let [key, value] = _ref;\n const {\n theme: componentTheme\n } = value,\n componentTokens = __rest(value, [\"theme\"]);\n let mergedComponentToken = componentTokens;\n if (componentTheme) {\n mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {\n override: componentTokens\n }, componentTheme);\n }\n mergedDerivativeToken[key] = mergedComponentToken;\n });\n }\n return mergedDerivativeToken;\n};\n// ================================== Hook ==================================\nexport default function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n override,\n cssVar\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId, realToken] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override,\n getComputedToken,\n // formatToken will not be consumed after 1.15.0 with getComputedToken.\n // But token will break if @ant-design/cssinjs is under 1.15.0 without it\n formatToken,\n cssVar: cssVar && {\n prefix: cssVar.prefix,\n key: cssVar.key,\n unitless,\n ignore,\n preserve\n }\n });\n return [mergedTheme, realToken, hashed ? hashId : '', token, cssVar];\n}","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","module.exports = __webpack_public_path__ + \"111d9fdb9864abba36298d1a0807fe6d.js\";","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","module.exports = __webpack_public_path__ + \"e0fa6a4fe8bff90d50ce812e666957ca.js\";","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n var children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","module.exports = __webpack_public_path__ + \"4f03709d8b1d52a622f0676f7a299510.js\";","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","module.exports = __webpack_public_path__ + \"349237ad9565dc823ce7bcb7527ba7ee.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-checkbox .ant-skeleton-avatar.ant-skeleton-avatar-sm{width:18px !important;height:18px !important;line-height:18px !important}.op-form-checkbox__required-asterisk{position:relative;top:-0.1428571429rem;display:inline-block;margin-inline-end:0.2857142857rem;color:var(--colorErrorText);font-size:1rem;font-family:SimSun,sans-serif !important;line-height:1;content:\"*\";visibility:inherit;margin-left:2px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormCheckbox/OpFormCheckbox.scss\"],\"names\":[],\"mappings\":\"AACE,8DACE,qBAAA,CACA,sBAAA,CACA,2BAAA,CAGF,qCACE,iBAAA,CACA,oBAAA,CACA,oBAAA,CACA,iCAAA,CACA,2BAAA,CACA,cAAA,CACA,wCAAA,CACA,aAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA\",\"sourcesContent\":[\".op-form-checkbox {\\n .ant-skeleton-avatar.ant-skeleton-avatar-sm {\\n width: 18px !important;\\n height: 18px !important;\\n line-height: 18px !important;\\n }\\n\\n &__required-asterisk {\\n position: relative;\\n top: -0.1428571429rem;\\n display: inline-block;\\n margin-inline-end: 0.2857142857rem;\\n color: var(--colorErrorText);\\n font-size: 1rem;\\n font-family: SimSun, sans-serif !important;\\n line-height: 1;\\n content: '*';\\n visibility: inherit;\\n margin-left: 2px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"9d5bba46df7fb1577fec6cb90f1bb2a7.js\";","module.exports = __webpack_public_path__ + \"3b02cca9e95276a74f3ed2bbc7a64ce6.js\";","import { useHasFeatures } from './useHasFeatures';\n\nexport const useShowSitePartitioningItems = (orgId: number) => {\n const {\n hasFeatures: orgHasUserSitePartitioningFeature,\n isLoading: areFeaturesLoading,\n } = useHasFeatures(orgId, ['userSitePartitioning']);\n\n return {\n isShowingSitePartitioningItems: Boolean(orgHasUserSitePartitioningFeature),\n isLoading: areFeaturesLoading,\n };\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n generate: function() {\n return generate;\n },\n getSecondaryColor: function() {\n return getSecondaryColor;\n },\n iconStyles: function() {\n return iconStyles;\n },\n isIconDefinition: function() {\n return isIconDefinition;\n },\n normalizeAttrs: function() {\n return normalizeAttrs;\n },\n normalizeTwoToneColors: function() {\n return normalizeTwoToneColors;\n },\n svgBaseProps: function() {\n return svgBaseProps;\n },\n useInsertStyles: function() {\n return useInsertStyles;\n },\n warning: function() {\n return warning;\n }\n});\nvar _colors = require(\"@ant-design/colors\");\nvar _dynamicCSS = require(\"rc-util/lib/Dom/dynamicCSS\");\nvar _shadow = require(\"rc-util/lib/Dom/shadow\");\nvar _warning = /*#__PURE__*/ _interop_require_default(require(\"rc-util/lib/warning\"));\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _Context = /*#__PURE__*/ _interop_require_default(require(\"./components/Context\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function(match, g) {\n return g.toUpperCase();\n });\n}\nfunction warning(valid, message) {\n (0, _warning.default)(valid, \"[@ant-design/icons] \".concat(message));\n}\nfunction isIconDefinition(target) {\n return typeof target === \"object\" && typeof target.name === \"string\" && typeof target.theme === \"string\" && (typeof target.icon === \"object\" || typeof target.icon === \"function\");\n}\nfunction normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n return Object.keys(attrs).reduce(function(acc, key) {\n var val = attrs[key];\n switch(key){\n case \"class\":\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nfunction generate(node, key, rootProps) {\n if (!rootProps) {\n return _react.default.createElement(node.tag, _object_spread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function(child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return _react.default.createElement(node.tag, _object_spread({\n key: key\n }, normalizeAttrs(node.attrs), rootProps), (node.children || []).map(function(child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nfunction getSecondaryColor(primaryColor) {\n // choose the second color\n return (0, _colors.generate)(primaryColor)[0];\n}\nfunction normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [\n twoToneColor\n ];\n}\nvar svgBaseProps = {\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n focusable: \"false\"\n};\nvar iconStyles = \"\\n.anticon {\\n display: inline-flex;\\n alignItems: center;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nvar useInsertStyles = function(eleRef) {\n var _useContext = (0, _react.useContext)(_Context.default), csp = _useContext.csp, prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n (0, _react.useEffect)(function() {\n var ele = eleRef.current;\n var shadowRoot = (0, _shadow.getShadowRoot)(ele);\n (0, _dynamicCSS.updateCSS)(mergedStyleStr, \"@ant-design-icons\", {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};\n","var baseIsEqual = require('./_baseIsEqual');\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\nmodule.exports = isEqual;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","module.exports = __webpack_public_path__ + \"5f3ce6efab3c679ec1ad25ab0b3f6b2f.js\";","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","module.exports = __webpack_public_path__ + \"7080d2a1db1608264a6d9d9fbaf2cce8.js\";","import { create } from 'nano-css';\nimport { addon as addonCSSOM } from 'nano-css/addon/cssom';\nimport { addon as addonVCSSOM } from 'nano-css/addon/vcssom';\nimport { cssToTree } from 'nano-css/addon/vcssom/cssToTree';\nimport { useMemo } from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar nano = create();\naddonCSSOM(nano);\naddonVCSSOM(nano);\nvar counter = 0;\nvar useCss = function (css) {\n var className = useMemo(function () { return 'react-use-css-' + (counter++).toString(36); }, []);\n var sheet = useMemo(function () { return new nano.VSheet(); }, []);\n useIsomorphicLayoutEffect(function () {\n var tree = {};\n cssToTree(tree, css, '.' + className, '');\n sheet.diff(tree);\n return function () {\n sheet.diff({});\n };\n });\n return className;\n};\nexport default useCss;\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","module.exports = __webpack_public_path__ + \"96b8d8b5efd11741639659c63a485c27.js\";","module.exports = __webpack_public_path__ + \"b306285dfd802d091e788de0f96b8cb2.js\";","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.error{padding-top:1.7142857143rem;padding-bottom:0.5714285714rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/ErrorAlert/ErrorAlert.scss\"],\"names\":[],\"mappings\":\"AAEA,OACE,2BAAA,CACA,8BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.error {\\n padding-top: common.toRem(24);\\n padding-bottom: common.toRem(8);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","module.exports = __webpack_public_path__ + \"cc65d108f0e7cfb200de1d0bcf115005.js\";","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n//# sourceMappingURL=normalize.js.map\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\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/**\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\nexport default getTag;\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _CheckOutlined = _interopRequireDefault(require('./lib/icons/CheckOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _CheckOutlined;\nexports.default = _default;\nmodule.exports = _default;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n // Create new theme if not exist\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n }\n\n // Get theme from cache and return\n return cacheThemes.get(derivativeArr);\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 };","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","// import { createSelector } from 'reselect'\n\nexport const selectSlideOuts = () => (state) =>\n state.getIn(['global', 'slideOuts']);\n\n// import { createSelector } from 'reselect'\n\n// export const selectGlobalState = () => state => {\n// console.log('state', state)\n// return state.get('global')\n// }\n// // export const selectSlideOuts = state => state.getIn(['global', 'slideOuts'])\n\n// export const selectSlideOuts = createSelector(\n// selectGlobalState(),\n// globalState => globalState.get('slideOuts')\n// )\n","// Loaders\nexport const SET_TABLE_LOADING = 'app/table/SET_TABLE_LOADING';\nexport const SET_TABLE_DATA_PERCENT_LOADED =\n 'app/table/SET_TABLE_DATA_PERCENT_LOADED';\n\n// Table state\nexport const SET_TABLE_HAS_BEEN_UPDATED =\n 'app/table/SET_TABLE_HAS_BEEN_UPDATED';\nexport const REQUEST_UPDATE_TABLE = 'app/table/REQUEST_UPDATE_TABLE';\nexport const REQUEST_UPDATE_DATA_ORDER = 'app/table/REQUEST_UPDATE_DATA_ORDER';\nexport const SET_TABLE_STATE = 'app/table/SET_TABLE_STATE';\nexport const SET_FILTERS = 'app/table/SET_FILTERS';\nexport const SET_GLOBAL_FILTER = 'app/table/SET_GLOBAL_FILTER';\nexport const SET_SEARCH_QUERY = 'app/table/SET_SEARCH_QUERY';\nexport const SET_SORT_BY = 'app/table/SET_SORT_BY';\nexport const SET_COLUMN_WIDTHS = 'app/table/SET_COLUMN_WIDTHS';\nexport const SET_EXPANDED = 'app/table/SET_EXPANDED';\nexport const SET_SELECTED_ROWS = 'app/table/SET_SELECTED_ROWS';\nexport const SET_HIDDEN_COLUMNS = 'app/table/SET_HIDDEN_COLUMNS';\n\n// Pagination\nexport const SET_PAGE_INDEX = 'app/table/SET_PAGE_INDEX';\nexport const SET_PAGE_COUNT = 'app/table/SET_PAGE_COUNT';\nexport const SET_PAGE_SIZE = 'app/table/SET_PAGE_SIZE';\n\n// CSV\nexport const REQUEST_AND_SET_CSV_DATA = 'app/table/REQUEST_AND_SET_CSV_DATA';\nexport const SET_CSV_DATA = 'app/table/SET_CSV_DATA';\nexport const SET_CSV_DATA_LOADING = 'app/table/SET_CSV_DATA_LOADING';\nexport const SET_CSV_DATA_PERCENT_LOADED =\n 'app/table/SET_CSV_DATA_PERCENT_LOADED';\n\n// State item names\nexport const TABLE_HAS_BEEN_UPDATED = 'tableHasBeenUpdated';\nexport const TABLE_STATE = 'tableState';\nexport const LOADING = 'loading';\nexport const PERCENT_LOADED = 'tableDataPercentLoaded';\nexport const FILTERS = 'filters';\nexport const GLOBAL_FILTER = 'globalFilter';\nexport const SORT_BY = 'sortBy';\nexport const SEARCH_QUERY = 'searchQuery';\nexport const COLUMN_WIDTHS = 'columnWidths';\nexport const EXPANDED = 'expanded';\nexport const SELECTED_ROW_IDS = 'selectedRowIds';\nexport const HIDDEN_COLUMNS = 'hiddenColumns';\nexport const PAGE_INDEX = 'pageIndex';\nexport const PAGE_COUNT = 'pageCount';\nexport const PAGE_SIZE = 'pageSize';\nexport const CSV_DATA = 'csvData';\nexport const CSV_DATA_LOADING = 'csvDataLoading';\nexport const CSV_DATA_PERCENT_LOADED = 'csvDataPercentLoaded';\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { uniqueHash } from \"./useStyleRegister\";\nexport var CSS_VAR_PREFIX = 'cssVar';\nvar useCSSVarRegister = function useCSSVarRegister(config, fn) {\n var key = config.key,\n prefix = config.prefix,\n unitless = config.unitless,\n ignore = config.ignore,\n token = config.token,\n _config$scope = config.scope,\n scope = _config$scope === void 0 ? '' : _config$scope;\n var _useContext = useContext(StyleContext),\n instanceId = _useContext.cache.instanceId,\n container = _useContext.container;\n var tokenKey = token._tokenKey;\n var stylePath = [].concat(_toConsumableArray(config.path), [key, scope, tokenKey]);\n var cache = useGlobalCache(CSS_VAR_PREFIX, stylePath, function () {\n var originToken = fn();\n var _transformToken = transformToken(originToken, key, {\n prefix: prefix,\n unitless: unitless,\n ignore: ignore,\n scope: scope\n }),\n _transformToken2 = _slicedToArray(_transformToken, 2),\n mergedToken = _transformToken2[0],\n cssVarsStr = _transformToken2[1];\n var styleId = uniqueHash(stylePath, cssVarsStr);\n return [mergedToken, cssVarsStr, styleId, key];\n }, function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n styleId = _ref2[2];\n if (isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n }, function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 3),\n cssVarsStr = _ref4[1],\n styleId = _ref4[2];\n if (!cssVarsStr) {\n return;\n }\n var style = updateCSS(cssVarsStr, styleId, {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container,\n priority: -999\n });\n style[CSS_IN_JS_INSTANCE] = instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(ATTR_TOKEN, key);\n });\n return cache;\n};\nexport var extract = function extract(cache, effectStyles, options) {\n var _cache = _slicedToArray(cache, 4),\n styleStr = _cache[1],\n styleId = _cache[2],\n cssVarKey = _cache[3];\n var _ref5 = options || {},\n plain = _ref5.plain;\n if (!styleStr) {\n return null;\n }\n var order = -999;\n\n // ====================== Style ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n return [order, styleId, styleText];\n};\nexport default useCSSVarRegister;","import { QueryKey } from '@tanstack/react-query';\nimport { UseOpQueryOptions } from './customHooks/useOpQuery';\nimport { ensurePayloadAndQuery } from './ensurePayloadAndQuery';\nimport Helium from './helium';\nimport { injectScopeHeaders } from './request';\n\ntype QueryRequestProps<T extends keyof Api.ClientSpec> =\n UseOpQueryOptions<T> & {\n currentIdentityLanguage: string;\n queryKey?: QueryKey;\n headers?: Record<string, any>;\n overrideApiClient?: typeof Helium.client;\n };\n\nexport const queryRequest = async <T extends keyof Api.ClientSpec>({\n apiEndpointName,\n parameters,\n currentIdentityLanguage,\n headers = {},\n overrideApiClient,\n}: QueryRequestProps<T>): // @ts-expect-error as already returns promise\nReturnType<Api.Client[T]> => {\n const { parametersArray, withPayload, withQuery } = ensurePayloadAndQuery(\n apiEndpointName,\n parameters,\n );\n\n /**\n * With unification we need the ability to make calls to other env servers in a practical way\n * For example in SAML SSO if the identity is an eu user and they're on the unified login page\n * which lives in the US, we cant rely on the Helium.client because its baseUrl is config based.\n * We could think about not making it config based and enforcing passing a base url but thats a\n * larger change\n */\n const api = overrideApiClient\n ? (overrideApiClient[apiEndpointName] satisfies Api.Client[T])\n : (Helium.client[apiEndpointName] satisfies Api.Client[T]);\n\n // Throw an error if an invalid api endpoint name\n if (!api) {\n throw new Error(`Invalid Helium client endpoint: \\`${apiEndpointName}\\``);\n }\n\n /** path params can be numbers or strings (e.g. describeAlarm has alarmIdExt\n * which is a string) */\n const pathParams = parametersArray.filter(\n (param) => typeof param === 'string' || typeof param === 'number',\n );\n\n // We need to pull out the payload and query to properly pass to api\n const payloadAndQueryParams =\n withPayload || withQuery\n ? parametersArray.filter((param) => typeof param === 'object')\n : [];\n\n if (withPayload === 2 && payloadAndQueryParams[0]) {\n // multipart/form-data, use a FormData object instead of a plain object\n // Note: payload is always the first object when a payload should be specified\n const formData = new FormData();\n\n Object.entries(payloadAndQueryParams[0]).forEach(([key, value]) => {\n if (typeof value === 'string' || value instanceof Blob) {\n formData.append(key, value);\n }\n });\n\n payloadAndQueryParams[0] = formData;\n }\n\n // Add Platinum's language to the headers\n const acceptLanguageHeader = { 'Accept-Language': currentIdentityLanguage };\n const finalHeaders = {\n ...headers,\n ...injectScopeHeaders(acceptLanguageHeader),\n };\n\n // TODO Headers should be injected at client level, not at endpoint level\n // @ts-expect-error cannot infer return\n return api(...pathParams, ...payloadAndQueryParams, {\n headers: finalHeaders,\n });\n};\n","import { getArrowOffsetToken } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n if (autoAdjustOverflow === false) {\n return {\n adjustX: false,\n adjustY: false\n };\n }\n const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n const baseOverflow = {};\n switch (placement) {\n case 'top':\n case 'bottom':\n baseOverflow.shiftX = arrowOffset.arrowOffsetHorizontal * 2 + arrowWidth;\n baseOverflow.shiftY = true;\n baseOverflow.adjustY = true;\n break;\n case 'left':\n case 'right':\n baseOverflow.shiftY = arrowOffset.arrowOffsetVertical * 2 + arrowWidth;\n baseOverflow.shiftX = true;\n baseOverflow.adjustX = true;\n break;\n }\n const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n // Support auto shift\n if (!mergedOverflow.shiftX) {\n mergedOverflow.adjustX = true;\n }\n if (!mergedOverflow.shiftY) {\n mergedOverflow.adjustY = true;\n }\n return mergedOverflow;\n}\nconst PlacementAlignMap = {\n left: {\n points: ['cr', 'cl']\n },\n right: {\n points: ['cl', 'cr']\n },\n top: {\n points: ['bc', 'tc']\n },\n bottom: {\n points: ['tc', 'bc']\n },\n topLeft: {\n points: ['bl', 'tl']\n },\n leftTop: {\n points: ['tr', 'tl']\n },\n topRight: {\n points: ['br', 'tr']\n },\n rightTop: {\n points: ['tl', 'tr']\n },\n bottomRight: {\n points: ['tr', 'br']\n },\n rightBottom: {\n points: ['bl', 'br']\n },\n bottomLeft: {\n points: ['tl', 'bl']\n },\n leftBottom: {\n points: ['br', 'bl']\n }\n};\nconst ArrowCenterPlacementAlignMap = {\n topLeft: {\n points: ['bl', 'tc']\n },\n leftTop: {\n points: ['tr', 'cl']\n },\n topRight: {\n points: ['br', 'tc']\n },\n rightTop: {\n points: ['tl', 'cr']\n },\n bottomRight: {\n points: ['tr', 'bc']\n },\n rightBottom: {\n points: ['bl', 'cr']\n },\n bottomLeft: {\n points: ['tl', 'bc']\n },\n leftBottom: {\n points: ['br', 'cl']\n }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n const {\n arrowWidth,\n autoAdjustOverflow,\n arrowPointAtCenter,\n offset,\n borderRadius,\n visibleFirst\n } = config;\n const halfArrowWidth = arrowWidth / 2;\n const placementMap = {};\n Object.keys(PlacementAlignMap).forEach(key => {\n const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n const placementInfo = Object.assign(Object.assign({}, template), {\n offset: [0, 0],\n dynamicInset: true\n });\n placementMap[key] = placementInfo;\n // Disable autoArrow since design is fixed position\n if (DisableAutoArrowList.has(key)) {\n placementInfo.autoArrow = false;\n }\n // Static offset\n switch (key) {\n case 'top':\n case 'topLeft':\n case 'topRight':\n placementInfo.offset[1] = -halfArrowWidth - offset;\n break;\n case 'bottom':\n case 'bottomLeft':\n case 'bottomRight':\n placementInfo.offset[1] = halfArrowWidth + offset;\n break;\n case 'left':\n case 'leftTop':\n case 'leftBottom':\n placementInfo.offset[0] = -halfArrowWidth - offset;\n break;\n case 'right':\n case 'rightTop':\n case 'rightBottom':\n placementInfo.offset[0] = halfArrowWidth + offset;\n break;\n }\n // Dynamic offset\n const arrowOffset = getArrowOffsetToken({\n contentRadius: borderRadius,\n limitVerticalRadius: true\n });\n if (arrowPointAtCenter) {\n switch (key) {\n case 'topLeft':\n case 'bottomLeft':\n placementInfo.offset[0] = -arrowOffset.arrowOffsetHorizontal - halfArrowWidth;\n break;\n case 'topRight':\n case 'bottomRight':\n placementInfo.offset[0] = arrowOffset.arrowOffsetHorizontal + halfArrowWidth;\n break;\n case 'leftTop':\n case 'rightTop':\n placementInfo.offset[1] = -arrowOffset.arrowOffsetHorizontal * 2 + halfArrowWidth;\n break;\n case 'leftBottom':\n case 'rightBottom':\n placementInfo.offset[1] = arrowOffset.arrowOffsetHorizontal * 2 - halfArrowWidth;\n break;\n }\n }\n // Overflow\n placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n // VisibleFirst\n if (visibleFirst) {\n placementInfo.htmlRegion = 'visibleFirst';\n }\n });\n return placementMap;\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.email-form{width:22.2857142857rem}.email-form__submit{margin-top:1.1428571429rem;width:22.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/LoginFlow/EmailForm.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,YACE,sBCDwB,CDGxB,oBACE,0BAAA,CACA,sBCLsB\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.email-form {\\n width: global.$unification-login-width;\\n\\n &__submit {\\n margin-top: common.toRem(16);\\n width: global.$unification-login-width;\\n }\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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\nmodule.exports = arraySome;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","export default __webpack_public_path__ + \"assets/favicons/favicon-alert.ico\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-phone-input .ant-input-group>.ant-input:not(:first-child):not(:last-child){border-top-right-radius:var(--borderRadius) !important;border-bottom-right-radius:var(--borderRadius) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpPhoneInput/OpPhoneInput.scss\"],\"names\":[],\"mappings\":\"AAEE,+EACE,sDAAA,CACA,yDAAA\",\"sourcesContent\":[\".op-phone-input {\\n // When clicking on the input on some browsers the right borders lose their border radius\\n .ant-input-group > .ant-input:not(:first-child):not(:last-child) {\\n border-top-right-radius: var(--borderRadius) !important;\\n border-bottom-right-radius: var(--borderRadius) !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { COUNTER_METRIC_TYPE, GAUGE_METRIC_TYPE, DISTRIBUTION_METRIC_TYPE, SET_METRIC_TYPE } from './constants.js';\nimport { simpleHash } from './utils.js';\n\n/**\n * A metric instance representing a counter.\n */\nclass CounterMetric {\n constructor( _value) {this._value = _value;}\n\n /** @inheritDoc */\n get weight() {\n return 1;\n }\n\n /** @inheritdoc */\n add(value) {\n this._value += value;\n }\n\n /** @inheritdoc */\n toString() {\n return `${this._value}`;\n }\n}\n\n/**\n * A metric instance representing a gauge.\n */\nclass GaugeMetric {\n\n constructor(value) {\n this._last = value;\n this._min = value;\n this._max = value;\n this._sum = value;\n this._count = 1;\n }\n\n /** @inheritDoc */\n get weight() {\n return 5;\n }\n\n /** @inheritdoc */\n add(value) {\n this._last = value;\n if (value < this._min) {\n this._min = value;\n }\n if (value > this._max) {\n this._max = value;\n }\n this._sum += value;\n this._count++;\n }\n\n /** @inheritdoc */\n toString() {\n return `${this._last}:${this._min}:${this._max}:${this._sum}:${this._count}`;\n }\n}\n\n/**\n * A metric instance representing a distribution.\n */\nclass DistributionMetric {\n\n constructor(first) {\n this._value = [first];\n }\n\n /** @inheritDoc */\n get weight() {\n return this._value.length;\n }\n\n /** @inheritdoc */\n add(value) {\n this._value.push(value);\n }\n\n /** @inheritdoc */\n toString() {\n return this._value.join(':');\n }\n}\n\n/**\n * A metric instance representing a set.\n */\nclass SetMetric {\n\n constructor( first) {this.first = first;\n this._value = new Set([first]);\n }\n\n /** @inheritDoc */\n get weight() {\n return this._value.size;\n }\n\n /** @inheritdoc */\n add(value) {\n this._value.add(value);\n }\n\n /** @inheritdoc */\n toString() {\n return Array.from(this._value)\n .map(val => (typeof val === 'string' ? simpleHash(val) : val))\n .join(':');\n }\n}\n\nconst METRIC_MAP = {\n [COUNTER_METRIC_TYPE]: CounterMetric,\n [GAUGE_METRIC_TYPE]: GaugeMetric,\n [DISTRIBUTION_METRIC_TYPE]: DistributionMetric,\n [SET_METRIC_TYPE]: SetMetric,\n};\n\nexport { CounterMetric, DistributionMetric, GaugeMetric, METRIC_MAP, SetMetric };\n//# sourceMappingURL=instance.js.map\n","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","export default __webpack_public_path__ + \"assets/favicons/apple-touch-icon.png\";","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport getAllowClear from '../_util/getAllowClear';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariant from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport useStyle from './style';\nimport { hasPrefixSuffix } from './utils';\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n const {\n cursor\n } = option || {};\n if (cursor) {\n const len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n status: customStatus,\n size: customSize,\n disabled: customDisabled,\n onBlur,\n onFocus,\n suffix,\n allowClear,\n addonAfter,\n addonBefore,\n className,\n style,\n styles,\n rootClassName,\n onChange,\n classNames: classes,\n variant: customVariant\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"style\", \"styles\", \"rootClassName\", \"onChange\", \"classNames\", \"variant\"]);\n if (process.env.NODE_ENV !== 'production') {\n const {\n deprecated\n } = devUseWarning('Input');\n deprecated(!('bordered' in props), 'bordered', 'variant');\n }\n const {\n getPrefixCls,\n direction,\n input\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n const inputRef = useRef(null);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // ===================== Compact Item =====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customSize !== null && customSize !== void 0 ? customSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n /* eslint-disable react-hooks/rules-of-hooks */\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Input');\n useEffect(() => {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'usage', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n }\n /* eslint-enable */\n // ===================== Remove Password value =====================\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n const handleBlur = e => {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n const handleFocus = e => {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n const handleChange = e => {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n const suffixNode = (hasFeedback || suffix) && (/*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon));\n const mergedAllowClear = getAllowClear(allowClear !== null && allowClear !== void 0 ? allowClear : input === null || input === void 0 ? void 0 : input.allowClear);\n const [variant, enableVariantCls] = useVariant('input', customVariant, bordered);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcInput, Object.assign({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n style: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.style), style),\n styles: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.styles), styles),\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, rootClassName, cssVarCls, rootCls, compactItemClassnames, input === null || input === void 0 ? void 0 : input.className),\n onChange: handleChange,\n addonBefore: addonBefore && (/*#__PURE__*/React.createElement(ContextIsolator, {\n form: true,\n space: true\n }, addonBefore)),\n addonAfter: addonAfter && (/*#__PURE__*/React.createElement(ContextIsolator, {\n form: true,\n space: true\n }, addonAfter)),\n classNames: Object.assign(Object.assign(Object.assign({}, classes), input === null || input === void 0 ? void 0 : input.classNames), {\n input: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, classes === null || classes === void 0 ? void 0 : classes.input, (_a = input === null || input === void 0 ? void 0 : input.classNames) === null || _a === void 0 ? void 0 : _a.input, hashId),\n variant: classNames({\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, mergedStatus)),\n affixWrapper: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl'\n }, hashId),\n wrapper: classNames({\n [`${prefixCls}-group-rtl`]: direction === 'rtl'\n }, hashId),\n groupWrapper: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-group-wrapper-${variant}`]: enableVariantCls\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n })\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nexport default Input;","export function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear || props.showCount);\n}","module.exports = __webpack_public_path__ + \"23602ad4c88f0f19e7a0a12454ebf556.js\";","import React from 'react';\nexport const SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0\n});\nexport const SpaceContextProvider = SpaceContext.Provider;","import { uuid4, dateTimestampInSeconds, addExceptionMechanism, truncate, GLOBAL_OBJ, normalize } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\nconst debugIdStackParserCache = new WeakMap();\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return;\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.entries(debugIdMap).reduce(\n (acc, [debugIdStackTrace, debugIdValue]) => {\n let parsedStack;\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const stackFrame = parsedStack[i];\n if (stackFrame.filename) {\n acc[stackFrame.filename] = debugIdValue;\n break;\n }\n }\n return acc;\n },\n {},\n );\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(\n scope,\n captureContext,\n) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint,\n) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","module.exports = __webpack_public_path__ + \"4d0ebf4c528cee9b0cdd3e076e06570b.js\";","export default function omit(obj, fields) {\n var clone = Object.assign({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","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 _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 { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","module.exports = __webpack_public_path__ + \"582e24f5ba929e358fadfc7be4c18025.js\";","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nlet localeList = [];\nconst generateLocale = () => localeList.reduce((merged, locale) => Object.assign(Object.assign({}, merged), locale), defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n const cloneLocale = Object.assign({}, newLocale);\n localeList.push(cloneLocale);\n runtimeLocale = generateLocale();\n return () => {\n localeList = localeList.filter(locale => locale !== cloneLocale);\n runtimeLocale = generateLocale();\n };\n }\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\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 * 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\nmodule.exports = equalByTag;\n","module.exports = __webpack_public_path__ + \"9807cf1e443a7440371904b6525f37eb.js\";","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { spanToJSON, spanIsSampled, getRootSpan } from '../utils/spanUtils.js';\n\n/**\n * Print a log message for a started span.\n */\nfunction logSpanStart(span) {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n const { spanId } = span.spanContext();\n\n const sampled = spanIsSampled(span);\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n const infoParts = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n if (parentSpanId) {\n infoParts.push(`parent ID: ${parentSpanId}`);\n }\n\n if (!isRootSpan) {\n const { op, description } = spanToJSON(rootSpan);\n infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n if (op) {\n infoParts.push(`root op: ${op}`);\n }\n if (description) {\n infoParts.push(`root description: ${description}`);\n }\n }\n\n logger.log(`${header}\n ${infoParts.join('\\n ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nfunction logSpanEnd(span) {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n logger.log(msg);\n}\n\nexport { logSpanEnd, logSpanStart };\n//# sourceMappingURL=logSpans.js.map\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\n\n/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DoubleLeftOutlined';\n}\nexport default RefIcon;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","import { OpSelect } from 'new-components/DLS/OpSelect/OpSelect';\nimport { ComponentProps } from 'react';\n\n// Used in selects or anything with a label: string can be used since this function only needs a label\nexport type FilterableType =\n | Utils.SingularOfType<ComponentProps<typeof OpSelect>['options']>\n | { label: string; [key: string]: unknown };\n\nexport const sortOptionsAlphabetically = (\n optionA: FilterableType,\n optionB: FilterableType,\n) => {\n const labelA = String(optionA.label).trim().toLowerCase();\n const labelB = String(optionB.label).trim().toLowerCase();\n if (labelA < labelB) {\n return -1;\n }\n if (labelA > labelB) {\n return 1;\n }\n return 0;\n};\n","import { GLOBAL_OBJ, relative, basename } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst INTEGRATION_NAME = 'RewriteFrames';\n\n/**\n * Rewrite event frames paths.\n */\nconst rewriteFramesIntegration = defineIntegration((options = {}) => {\n const root = options.root;\n const prefix = options.prefix || 'app:///';\n\n const isBrowser = 'window' in GLOBAL_OBJ && GLOBAL_OBJ.window !== undefined;\n\n const iteratee = options.iteratee || generateIteratee({ isBrowser, root, prefix });\n\n /** Process an exception event. */\n function _processExceptionsEvent(event) {\n try {\n return {\n ...event,\n exception: {\n ...event.exception,\n // The check for this is performed inside `process` call itself, safe to skip here\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n values: event.exception.values.map(value => ({\n ...value,\n ...(value.stacktrace && { stacktrace: _processStacktrace(value.stacktrace) }),\n })),\n },\n };\n } catch (_oO) {\n return event;\n }\n }\n\n /** Process a stack trace. */\n function _processStacktrace(stacktrace) {\n return {\n ...stacktrace,\n frames: stacktrace && stacktrace.frames && stacktrace.frames.map(f => iteratee(f)),\n };\n }\n\n return {\n name: INTEGRATION_NAME,\n processEvent(originalEvent) {\n let processedEvent = originalEvent;\n\n if (originalEvent.exception && Array.isArray(originalEvent.exception.values)) {\n processedEvent = _processExceptionsEvent(processedEvent);\n }\n\n return processedEvent;\n },\n };\n});\n\n/**\n * Exported only for tests.\n */\nfunction generateIteratee({\n isBrowser,\n root,\n prefix,\n}\n\n) {\n return (frame) => {\n if (!frame.filename) {\n return frame;\n }\n\n // Determine if this is a Windows frame by checking for a Windows-style prefix such as `C:\\`\n const isWindowsFrame =\n /^[a-zA-Z]:\\\\/.test(frame.filename) ||\n // or the presence of a backslash without a forward slash (which are not allowed on Windows)\n (frame.filename.includes('\\\\') && !frame.filename.includes('/'));\n\n // Check if the frame filename begins with `/`\n const startsWithSlash = /^\\//.test(frame.filename);\n\n if (isBrowser) {\n if (root) {\n const oldFilename = frame.filename;\n if (oldFilename.indexOf(root) === 0) {\n frame.filename = oldFilename.replace(root, prefix);\n }\n }\n } else {\n if (isWindowsFrame || startsWithSlash) {\n const filename = isWindowsFrame\n ? frame.filename\n .replace(/^[a-zA-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/') // replace all `\\\\` instances with `/`\n : frame.filename;\n const base = root ? relative(root, filename) : basename(filename);\n frame.filename = `${prefix}${base}`;\n }\n }\n\n return frame;\n };\n}\n\nexport { generateIteratee, rewriteFramesIntegration };\n//# sourceMappingURL=rewriteframes.js.map\n","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n xs: `(max-width: ${token.screenXSMax}px)`,\n sm: `(min-width: ${token.screenSM}px)`,\n md: `(min-width: ${token.screenMD}px)`,\n lg: `(min-width: ${token.screenLG}px)`,\n xl: `(min-width: ${token.screenXL}px)`,\n xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n const indexableToken = token;\n const revBreakpoints = [].concat(responsiveArray).reverse();\n revBreakpoints.forEach((breakpoint, i) => {\n const breakpointUpper = breakpoint.toUpperCase();\n const screenMin = `screen${breakpointUpper}Min`;\n const screen = `screen${breakpointUpper}`;\n if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n }\n if (i < revBreakpoints.length - 1) {\n const screenMax = `screen${breakpointUpper}Max`;\n if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n }\n const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n }\n }\n });\n return token;\n};\nexport default function useResponsiveObserver() {\n const [, token] = useToken();\n const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n // To avoid repeat create instance, we add `useMemo` here.\n return React.useMemo(() => {\n const subscribers = new Map();\n let subUid = -1;\n let screens = {};\n return {\n matchHandlers: {},\n dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(func => func(screens));\n return subscribers.size >= 1;\n },\n subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe(paramToken) {\n subscribers.delete(paramToken);\n if (!subscribers.size) this.unregister();\n },\n unregister() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const handler = this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const listener = _ref => {\n let {\n matches\n } = _ref;\n this.dispatch(Object.assign(Object.assign({}, screens), {\n [screen]: matches\n }));\n };\n const mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n this.matchHandlers[matchMediaQuery] = {\n mql,\n listener\n };\n listener(mql);\n });\n },\n responsiveMap\n };\n }, [token]);\n}\nexport const matchScreen = (screens, screenSizes) => {\n if (screenSizes && typeof screenSizes === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && screenSizes[breakpoint] !== undefined) {\n return screenSizes[breakpoint];\n }\n }\n }\n};","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\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 // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\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\nmodule.exports = equalArrays;\n","var eq = require('./eq');\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\nmodule.exports = assocIndexOf;\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","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nconst IconWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n className,\n style,\n children,\n prefixCls\n } = props;\n const iconWrapperCls = classNames(`${prefixCls}-icon`, className);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: ref,\n className: iconWrapperCls,\n style: style\n }, children);\n});\nexport default IconWrapper;","import { parseCookie } from './cookie.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isString, isPlainObject } from './is.js';\nimport { logger } from './logger.js';\nimport { normalize } from './normalize.js';\nimport { stripUrlQueryAndFragment } from './url.js';\nimport { ipHeaderNames, getClientIPAddress } from './vendor/getIpAddress.js';\n\nconst DEFAULT_INCLUDES = {\n ip: false,\n request: true,\n transaction: true,\n user: true,\n};\nconst DEFAULT_REQUEST_INCLUDES = ['cookies', 'data', 'headers', 'method', 'query_string', 'url'];\nconst DEFAULT_USER_INCLUDES = ['id', 'username', 'email'];\n\n/**\n * Options deciding what parts of the request to use when enhancing an event\n */\n\n/**\n * Extracts a complete and parameterized path from the request object and uses it to construct transaction name.\n * If the parameterized transaction name cannot be extracted, we fall back to the raw URL.\n *\n * Additionally, this function determines and returns the transaction name source\n *\n * eg. GET /mountpoint/user/:id\n *\n * @param req A request object\n * @param options What to include in the transaction name (method, path, or a custom route name to be\n * used instead of the request's route)\n *\n * @returns A tuple of the fully constructed transaction name [0] and its source [1] (can be either 'route' or 'url')\n */\nfunction extractPathForTransaction(\n req,\n options = {},\n) {\n const method = req.method && req.method.toUpperCase();\n\n let path = '';\n let source = 'url';\n\n // Check to see if there's a parameterized route we can use (as there is in Express)\n if (options.customRoute || req.route) {\n path = options.customRoute || `${req.baseUrl || ''}${req.route && req.route.path}`;\n source = 'route';\n }\n\n // Otherwise, just take the original URL\n else if (req.originalUrl || req.url) {\n path = stripUrlQueryAndFragment(req.originalUrl || req.url || '');\n }\n\n let name = '';\n if (options.method && method) {\n name += method;\n }\n if (options.method && options.path) {\n name += ' ';\n }\n if (options.path && path) {\n name += path;\n }\n\n return [name, source];\n}\n\nfunction extractTransaction(req, type) {\n switch (type) {\n case 'path': {\n return extractPathForTransaction(req, { path: true })[0];\n }\n case 'handler': {\n return (req.route && req.route.stack && req.route.stack[0] && req.route.stack[0].name) || '<anonymous>';\n }\n case 'methodPath':\n default: {\n // if exist _reconstructedRoute return that path instead of route.path\n const customRoute = req._reconstructedRoute ? req._reconstructedRoute : undefined;\n return extractPathForTransaction(req, { path: true, method: true, customRoute })[0];\n }\n }\n}\n\nfunction extractUserData(\n user\n\n,\n keys,\n) {\n const extractedUser = {};\n const attributes = Array.isArray(keys) ? keys : DEFAULT_USER_INCLUDES;\n\n attributes.forEach(key => {\n if (user && key in user) {\n extractedUser[key] = user[key];\n }\n });\n\n return extractedUser;\n}\n\n/**\n * Normalize data from the request object, accounting for framework differences.\n *\n * @param req The request object from which to extract data\n * @param options.include An optional array of keys to include in the normalized data. Defaults to\n * DEFAULT_REQUEST_INCLUDES if not provided.\n * @param options.deps Injected, platform-specific dependencies\n * @returns An object containing normalized request data\n */\nfunction extractRequestData(\n req,\n options\n\n = {},\n) {\n const { include = DEFAULT_REQUEST_INCLUDES } = options;\n const requestData = {};\n\n // headers:\n // node, express, koa, nextjs: req.headers\n const headers = (req.headers || {})\n\n;\n // method:\n // node, express, koa, nextjs: req.method\n const method = req.method;\n // host:\n // express: req.hostname in > 4 and req.host in < 4\n // koa: req.host\n // node, nextjs: req.headers.host\n // Express 4 mistakenly strips off port number from req.host / req.hostname so we can't rely on them\n // See: https://github.com/expressjs/express/issues/3047#issuecomment-236653223\n // Also: https://github.com/getsentry/sentry-javascript/issues/1917\n const host = headers.host || req.hostname || req.host || '<no host>';\n // protocol:\n // node, nextjs: <n/a>\n // express, koa: req.protocol\n const protocol = req.protocol === 'https' || (req.socket && req.socket.encrypted) ? 'https' : 'http';\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n const originalUrl = req.originalUrl || req.url || '';\n // absolute url\n const absoluteUrl = originalUrl.startsWith(protocol) ? originalUrl : `${protocol}://${host}${originalUrl}`;\n include.forEach(key => {\n switch (key) {\n case 'headers': {\n requestData.headers = headers;\n\n // Remove the Cookie header in case cookie data should not be included in the event\n if (!include.includes('cookies')) {\n delete (requestData.headers ).cookie;\n }\n\n // Remove IP headers in case IP data should not be included in the event\n if (!include.includes('ip')) {\n ipHeaderNames.forEach(ipHeaderName => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (requestData.headers )[ipHeaderName];\n });\n }\n\n break;\n }\n case 'method': {\n requestData.method = method;\n break;\n }\n case 'url': {\n requestData.url = absoluteUrl;\n break;\n }\n case 'cookies': {\n // cookies:\n // node, express, koa: req.headers.cookie\n // vercel, sails.js, express (w/ cookie middleware), nextjs: req.cookies\n requestData.cookies =\n // TODO (v8 / #5257): We're only sending the empty object for backwards compatibility, so the last bit can\n // come off in v8\n req.cookies || (headers.cookie && parseCookie(headers.cookie)) || {};\n break;\n }\n case 'query_string': {\n // query string:\n // node: req.url (raw)\n // express, koa, nextjs: req.query\n requestData.query_string = extractQueryParams(req);\n break;\n }\n case 'data': {\n if (method === 'GET' || method === 'HEAD') {\n break;\n }\n // body data:\n // express, koa, nextjs: req.body\n //\n // when using node by itself, you have to read the incoming stream(see\n // https://nodejs.dev/learn/get-http-request-body-data-using-nodejs); if a user is doing that, we can't know\n // where they're going to store the final result, so they'll have to capture this data themselves\n if (req.body !== undefined) {\n requestData.data = isString(req.body) ? req.body : JSON.stringify(normalize(req.body));\n }\n break;\n }\n default: {\n if ({}.hasOwnProperty.call(req, key)) {\n requestData[key] = (req )[key];\n }\n }\n }\n });\n\n return requestData;\n}\n\n/**\n * Add data from the given request to the given event\n *\n * @param event The event to which the request data will be added\n * @param req Request object\n * @param options.include Flags to control what data is included\n * @param options.deps Injected platform-specific dependencies\n * @returns The mutated `Event` object\n */\nfunction addRequestDataToEvent(\n event,\n req,\n options,\n) {\n const include = {\n ...DEFAULT_INCLUDES,\n ...(options && options.include),\n };\n\n if (include.request) {\n const includeRequest = Array.isArray(include.request) ? [...include.request] : [...DEFAULT_REQUEST_INCLUDES];\n if (include.ip) {\n includeRequest.push('ip');\n }\n\n const extractedRequestData = extractRequestData(req, { include: includeRequest });\n\n event.request = {\n ...event.request,\n ...extractedRequestData,\n };\n }\n\n if (include.user) {\n const extractedUser = req.user && isPlainObject(req.user) ? extractUserData(req.user, include.user) : {};\n\n if (Object.keys(extractedUser).length) {\n event.user = {\n ...event.user,\n ...extractedUser,\n };\n }\n }\n\n // client ip:\n // node, nextjs: req.socket.remoteAddress\n // express, koa: req.ip\n // It may also be sent by proxies as specified in X-Forwarded-For or similar headers\n if (include.ip) {\n const ip = (req.headers && getClientIPAddress(req.headers)) || req.ip || (req.socket && req.socket.remoteAddress);\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n\n if (include.transaction && !event.transaction && event.type === 'transaction') {\n // TODO do we even need this anymore?\n // TODO make this work for nextjs\n event.transaction = extractTransaction(req, include.transaction);\n }\n\n return event;\n}\n\nfunction extractQueryParams(req) {\n // url (including path and query string):\n // node, express: req.originalUrl\n // koa, nextjs: req.url\n let originalUrl = req.originalUrl || req.url || '';\n\n if (!originalUrl) {\n return;\n }\n\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname on the beginning. Since the point here is just to grab the query string, it doesn't matter what we use.\n if (originalUrl.startsWith('/')) {\n originalUrl = `http://dogs.are.great${originalUrl}`;\n }\n\n try {\n const queryParams = req.query || new URL(originalUrl).search.slice(1);\n return queryParams.length ? queryParams : undefined;\n } catch (e2) {\n return undefined;\n }\n}\n\n/**\n * Transforms a `Headers` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into a simple key-value dict.\n * The header keys will be lower case: e.g. A \"Content-Type\" header will be stored as \"content-type\".\n */\n// TODO(v8): Make this function return undefined when the extraction fails.\nfunction winterCGHeadersToDict(winterCGHeaders) {\n const headers = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === 'string') {\n // We check that value is a string even though it might be redundant to make sure prototype pollution is not possible.\n headers[key] = value;\n }\n });\n } catch (e) {\n DEBUG_BUILD &&\n logger.warn('Sentry failed extracting headers from a request object. If you see this, please file an issue.');\n }\n\n return headers;\n}\n\n/**\n * Converts a `Request` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into the format that the `RequestData` integration understands.\n */\nfunction winterCGRequestToRequestData(req) {\n const headers = winterCGHeadersToDict(req.headers);\n return {\n method: req.method,\n url: req.url,\n headers,\n };\n}\n\nexport { DEFAULT_USER_INCLUDES, addRequestDataToEvent, extractPathForTransaction, extractRequestData, winterCGHeadersToDict, winterCGRequestToRequestData };\n//# sourceMappingURL=requestdata.js.map\n","module.exports = __webpack_public_path__ + \"0fa30731c46fe8b6a54f9752ad0ed7e0.js\";","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const fadeIn = new Keyframes('antFadeIn', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\nexport const fadeOut = new Keyframes('antFadeOut', {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n});\nexport const initFadeMotion = function (token) {\n let sameLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-fade`;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return [initMotion(motionCls, fadeIn, fadeOut, token.motionDurationMid, sameLevel), {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: 'linear'\n },\n [`${sameLevelPrefix}${motionCls}-leave`]: {\n animationTimingFunction: 'linear'\n }\n }];\n};","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _UndoOutlined = _interopRequireDefault(require('./lib/icons/UndoOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _UndoOutlined;\nexports.default = _default;\nmodule.exports = _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 };","module.exports = __webpack_public_path__ + \"b934b22e8f8a8b1ba81dbc2cf058b0cd.js\";","module.exports = __webpack_public_path__ + \"2b1b8f8b9e8f1e423a69afd121fd7da9.js\";","import { ComponentProps } from 'react';\nimport Space from 'antd/es/space';\nimport clsx from 'clsx';\n\nimport './OpSpace.scss';\n\ninterface OpSpaceProps extends ComponentProps<typeof Space> {\n block?: boolean;\n}\n\nexport const OpSpace = ({\n children,\n className,\n block,\n ...spaceProps\n}: OpSpaceProps) => {\n return (\n <Space\n className={clsx('op-space', className, { 'op-space--fullWidth': block })}\n {...spaceProps}\n >\n {children}\n </Space>\n );\n};\n\n// Make the sub components available as a property on the wrapper component\nOpSpace.Compact = Space.Compact;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body{background-color:var(--colorBgLayout);background:var(--colorBgLayout);-ms-overflow-style:none;caret-color:var(--colorText) !important}ul,ol{padding-inline-start:16px}input:-internal-autofill-selected,input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{box-shadow:0 0 0 30px rgba(0,0,0,0) inset !important;-webkit-box-shadow:0 0 0 30px rgba(0,0,0,0) inset !important;-webkit-background-clip:text !important;-webkit-text-fill-color:var(--colorText);background-color:inherit !important}footer{color:var(--colorText) !important;background-color:rgba(0,0,0,0) !important}::-webkit-scrollbar-corner{background-color:var(--colorFillSecondary)}::-webkit-scrollbar-track{background-color:var(--colorFillSecondary) !important}::-webkit-scrollbar-thumb{background-color:var(--colorFill) !important}.live-button,.sliding-toggle-label,nav ul li.active a,nav ul li a:hover,.sub-tables-data-label{font-weight:500}i.icon.delete::before,i.icon.close::before{content:\"✕\"}[data-lastpass-icon-root]:not(.op-password-input [data-lastpass-icon-root]){display:none !important}:root.dark ::selection{color:#fff}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/assets/scss/base/_normalize.scss\"],\"names\":[],\"mappings\":\"AAAA,KAAA,qCACE,CAAA,+BACA,CAAA,uBACA,CAAA,uCACA,CAAA,MAGF,yBAEE,CAAA,iJAGF,oDAME,CAAA,4DACA,CAAA,uCACA,CAAA,wCACA,CAAA,mCACA,CAAA,OAGF,iCACE,CAAA,yCACA,CAAA,2BASF,0CACE,CAAA,0BAIF,qDACE,CAAA,0BAIF,4CACE,CAAA,+FAGF,eAKE,CAAA,2CAIF,WAEE,CAAA,4EAIF,uBACE,CAAA,uBAKA,UACE\",\"sourcesContent\":[\"body {\\n background-color: var(--colorBgLayout);\\n background: var(--colorBgLayout);\\n -ms-overflow-style: none;\\n caret-color: var(--colorText) !important;\\n}\\n\\nul,\\nol {\\n padding-inline-start: 16px;\\n}\\n\\ninput:-internal-autofill-selected,\\ninput:-webkit-autofill,\\ninput:-webkit-autofill:hover,\\ninput:-webkit-autofill:focus,\\ninput:-webkit-autofill:active {\\n // TODO: Need to update input background colors when autofilled\\n box-shadow: 0 0 0 30px transparent inset !important;\\n -webkit-box-shadow: 0 0 0 30px transparent inset !important;\\n -webkit-background-clip: text !important;\\n -webkit-text-fill-color: var(--colorText);\\n background-color: inherit !important;\\n}\\n\\nfooter {\\n color: var(--colorText) !important;\\n background-color: transparent !important;\\n}\\n\\n//? Uncomment this to hide scroll bars\\n// ::-webkit-scrollbar {\\n// display: none;\\n// }\\n\\n// Change the color of the intersection when the vertical and horizontal scroll bars meet\\n::-webkit-scrollbar-corner {\\n background-color: var(--colorFillSecondary);\\n}\\n\\n// Change the color of the scrollbar track\\n::-webkit-scrollbar-track {\\n background-color: var(--colorFillSecondary) !important;\\n}\\n\\n/* Change the color of the scrollbar thumb (the draggable part) */\\n::-webkit-scrollbar-thumb {\\n background-color: var(--colorFill) !important;\\n}\\n\\n.live-button,\\n.sliding-toggle-label,\\nnav ul li.active a,\\nnav ul li a:hover,\\n.sub-tables-data-label {\\n font-weight: 500;\\n}\\n\\n/* Icons */\\ni.icon.delete::before,\\ni.icon.close::before {\\n content: '\\\\2715';\\n}\\n\\n/* Prevents LastPass from affecting anything but our password inputs */\\n[data-lastpass-icon-root]:not(.op-password-input [data-lastpass-icon-root]) {\\n display: none !important;\\n}\\n\\n/* So you can see the text when highlighting it */\\n:root.dark {\\n ::selection {\\n color: white;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\n","module.exports = __webpack_public_path__ + \"a223748cd69094dd12b486353b22f479.js\";","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","module.exports = __webpack_public_path__ + \"e763b242cf412f4c38ae1e396a14c65b.js\";","/******************************************************************************\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***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","module.exports = __webpack_public_path__ + \"4430c55f023b72fb5e389cee9351b38c.js\";","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","module.exports = __webpack_public_path__ + \"5a8ead0357e5029a2518959423dc29f3.js\";","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormCheckbox.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormCheckbox.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { OpCheckbox } from 'new-components/DLS/OpCheckbox/OpCheckbox';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormCheckbox.scss';\n\ninterface OpFormCheckbox\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n 'name' | 'label' | 'tooltip' | 'rules'\n >,\n Omit<ComponentProps<typeof OpCheckbox>, 'name' | 'tooltip'> {\n formItemClassName?: string;\n isLoading?: boolean;\n checkboxTooltip?: ReactNode;\n}\n\nexport const OpFormCheckbox = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n children,\n checkboxTooltip,\n testId,\n disabled,\n ...elementProps\n}: OpFormCheckbox) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const requiredRule = rules?.find(\n (rule) => typeof rule === 'object' && rule.required,\n );\n\n const isCheckboxRequired = Boolean(requiredRule);\n\n /** Adding the `{ required: true }` rule to the `rules` prop doesn't\n * show the UI error, so we must add a custom validator */\n if (rules && isCheckboxRequired) {\n rules.push({\n validator: async (_, checked: boolean) => {\n if (!checked) {\n return Promise.reject(\n new Error(\n typeof requiredRule === 'object' &&\n typeof requiredRule.message === 'string'\n ? requiredRule.message\n : 'Checkbox must be checked',\n ),\n );\n }\n },\n });\n }\n\n const uuid = uuidv4();\n const opCheckboxId = `op-checkbox-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-checkbox', formItemClassName)}\n name={name}\n tooltip={tooltip}\n label={label}\n rules={rules}\n valuePropName=\"checked\"\n {...(!name && { htmlFor: opCheckboxId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Avatar active size=\"small\" shape=\"square\" />\n ) : (\n <OpCheckbox\n disabled={isReadOnly || disabled}\n tooltip={checkboxTooltip}\n {...(!name && { id: opCheckboxId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n >\n {children}\n {isCheckboxRequired && !label && (\n <span className=\"op-form-checkbox__required-asterisk\">*</span>\n )}\n </OpCheckbox>\n )}\n </OpForm.Item>\n );\n};\n","import { put, call, all, take, takeEvery } from 'redux-saga/effects';\nimport { LOCATION_CHANGE } from 'connected-react-router';\nimport { requestAndSet } from 'utils/helpers';\nimport { REQUEST_OMNISELECT_DATA } from './constants';\nimport {\n setOmniSelectList,\n setOmniSelectOptions,\n setOmniSelectLoading,\n setOmniSelectCount,\n} from './actions';\n\nfunction* requestOmniSelectData({ page, omniId, filter, apiData }) {\n yield put(setOmniSelectLoading({ page, omniId, loading: true }));\n\n // ** We need to populate the initial view, even though it may not show ALL the results\n // * first get the existing values for this query\n // ** users?filter=group.id:[!={groupId}]\n const queryStringParams = { limit: 50 };\n if (filter) {\n queryStringParams.q = filter;\n }\n\n /**\n * Fix put in place moving OmniSelects into a Create mode. The\n * getList call is being used to fetch data for already created\n * items in a `edit` mode\n */\n if (apiData.getList) {\n const { data: listData, totalCount } = yield call(\n requestAndSet,\n apiData.getList.resource,\n apiData.getList.params,\n {\n queryStringParams,\n },\n );\n\n yield put(setOmniSelectCount({ page, omniId, count: totalCount }));\n yield put(setOmniSelectList({ page, omniId, data: listData }));\n }\n\n // * Next get the available options for this query (limited)\n const requestAndSetOptions = {\n queryStringParams: {\n ...queryStringParams,\n },\n };\n\n if (apiData.getOptions.filter) {\n requestAndSetOptions.queryStringParams.filter = apiData.getOptions.filter;\n }\n\n if (apiData.getOptions.options) {\n requestAndSetOptions.queryStringParams.options = apiData.getOptions.options;\n }\n\n const { data: optionsData } = yield call(\n requestAndSet,\n apiData.getOptions.resource,\n apiData.getOptions.params,\n requestAndSetOptions,\n );\n\n yield put(setOmniSelectOptions({ page, omniId, data: optionsData }));\n\n // loaded!\n yield put(setOmniSelectLoading({ page, omniId, loading: false }));\n}\n\nfunction* rootSaga() {\n yield all([takeEvery(REQUEST_OMNISELECT_DATA, requestOmniSelectData)]);\n yield take(LOCATION_CHANGE);\n}\n\nexport default rootSaga;\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { replaceElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst iconMapFilled = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nconst IconNode = props => {\n const {\n icon,\n prefixCls,\n type\n } = props;\n const iconType = iconMapFilled[type] || null;\n if (icon) {\n return replaceElement(icon, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-icon`\n }, icon), () => ({\n className: classNames(`${prefixCls}-icon`, {\n [icon.props.className]: icon.props.className\n })\n }));\n }\n return /*#__PURE__*/React.createElement(iconType, {\n className: `${prefixCls}-icon`\n });\n};\nconst CloseIconNode = props => {\n const {\n isClosable,\n prefixCls,\n closeIcon,\n handleClose,\n ariaProps\n } = props;\n const mergedCloseIcon = closeIcon === true || closeIcon === undefined ? /*#__PURE__*/React.createElement(CloseOutlined, null) : closeIcon;\n return isClosable ? (/*#__PURE__*/React.createElement(\"button\", Object.assign({\n type: \"button\",\n onClick: handleClose,\n className: `${prefixCls}-close-icon`,\n tabIndex: 0\n }, ariaProps), mergedCloseIcon)) : null;\n};\nconst Alert = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n description,\n prefixCls: customizePrefixCls,\n message,\n banner,\n className,\n rootClassName,\n style,\n onMouseEnter,\n onMouseLeave,\n onClick,\n afterClose,\n showIcon,\n closable,\n closeText,\n closeIcon,\n action,\n id\n } = props,\n otherProps = __rest(props, [\"description\", \"prefixCls\", \"message\", \"banner\", \"className\", \"rootClassName\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"afterClose\", \"showIcon\", \"closable\", \"closeText\", \"closeIcon\", \"action\", \"id\"]);\n const [closed, setClosed] = React.useState(false);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Alert');\n warning.deprecated(!closeText, 'closeText', 'closable.closeIcon');\n }\n const internalRef = React.useRef(null);\n React.useImperativeHandle(ref, () => ({\n nativeElement: internalRef.current\n }));\n const {\n getPrefixCls,\n direction,\n alert\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('alert', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const handleClose = e => {\n var _a;\n setClosed(true);\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);\n };\n const type = React.useMemo(() => {\n if (props.type !== undefined) {\n return props.type;\n }\n // banner mode defaults to 'warning'\n return banner ? 'warning' : 'info';\n }, [props.type, banner]);\n // closeable when closeText or closeIcon is assigned\n const isClosable = React.useMemo(() => {\n if (typeof closable === 'object' && closable.closeIcon) return true;\n if (closeText) {\n return true;\n }\n if (typeof closable === 'boolean') {\n return closable;\n }\n // should be true when closeIcon is 0 or ''\n if (closeIcon !== false && closeIcon !== null && closeIcon !== undefined) {\n return true;\n }\n return !!(alert === null || alert === void 0 ? void 0 : alert.closable);\n }, [closeText, closeIcon, closable, alert === null || alert === void 0 ? void 0 : alert.closable]);\n // banner mode defaults to Icon\n const isShowIcon = banner && showIcon === undefined ? true : showIcon;\n const alertCls = classNames(prefixCls, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-description`]: !!description,\n [`${prefixCls}-no-icon`]: !isShowIcon,\n [`${prefixCls}-banner`]: !!banner,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, alert === null || alert === void 0 ? void 0 : alert.className, className, rootClassName, cssVarCls, hashId);\n const restProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n const mergedCloseIcon = React.useMemo(() => {\n var _a, _b;\n if (typeof closable === 'object' && closable.closeIcon) {\n return closable.closeIcon;\n }\n if (closeText) {\n return closeText;\n }\n if (closeIcon !== undefined) {\n return closeIcon;\n }\n if (typeof (alert === null || alert === void 0 ? void 0 : alert.closable) === 'object' && ((_a = alert === null || alert === void 0 ? void 0 : alert.closable) === null || _a === void 0 ? void 0 : _a.closeIcon)) {\n return (_b = alert === null || alert === void 0 ? void 0 : alert.closable) === null || _b === void 0 ? void 0 : _b.closeIcon;\n }\n return alert === null || alert === void 0 ? void 0 : alert.closeIcon;\n }, [closeIcon, closable, closeText, alert === null || alert === void 0 ? void 0 : alert.closeIcon]);\n const mergedAriaProps = React.useMemo(() => {\n const merged = closable !== null && closable !== void 0 ? closable : alert === null || alert === void 0 ? void 0 : alert.closable;\n if (typeof merged === 'object') {\n const {\n closeIcon: _\n } = merged,\n ariaProps = __rest(merged, [\"closeIcon\"]);\n return ariaProps;\n }\n return {};\n }, [closable, alert === null || alert === void 0 ? void 0 : alert.closable]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(CSSMotion, {\n visible: !closed,\n motionName: `${prefixCls}-motion`,\n motionAppear: false,\n motionEnter: false,\n onLeaveStart: node => ({\n maxHeight: node.offsetHeight\n }),\n onLeaveEnd: afterClose\n }, (_ref, setRef) => {\n let {\n className: motionClassName,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n id: id,\n ref: composeRef(internalRef, setRef),\n \"data-show\": !closed,\n className: classNames(alertCls, motionClassName),\n style: Object.assign(Object.assign(Object.assign({}, alert === null || alert === void 0 ? void 0 : alert.style), style), motionStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n role: \"alert\"\n }, restProps), isShowIcon ? (/*#__PURE__*/React.createElement(IconNode, {\n description: description,\n icon: props.icon,\n prefixCls: prefixCls,\n type: type\n })) : null, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, message ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, message) : null, description ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description) : null), action ? /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-action`\n }, action) : null, /*#__PURE__*/React.createElement(CloseIconNode, {\n isClosable: isClosable,\n prefixCls: prefixCls,\n closeIcon: mergedCloseIcon,\n handleClose: handleClose,\n ariaProps: mergedAriaProps\n }));\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Alert.displayName = 'Alert';\n}\nexport default Alert;","import { WirelessLockGatewayInviteStates } from 'containers/AllegionInviter/constants';\nimport { fromJS } from 'immutable';\nimport {\n SET_USER_GROUPS,\n SET_ORG,\n SET_GROUPS,\n SET_GROUP,\n SET_SITES,\n SET_ZONES,\n SET_ZONE,\n SET_ZONE_GROUPS,\n SET_ENTRIES,\n SET_USERS,\n SET_FILTERED_USERS_COUNT,\n SET_IDENTITY_PROVIDERS,\n SET_ENTRY_STATES,\n SET_TRIGGER_METHODS,\n SET_IOS,\n SET_SCHEDULES,\n SET_GROUP_SCHEDULES,\n SET_ACUS,\n SET_SCOPE_RESOURCES,\n SET_ROLES,\n SET_ROLE,\n SET_ACTIVITY,\n SET_ALARM_ACTIVITY,\n SET_VISUAL_ACTIVITY,\n SET_USER_ACTIVITY,\n SET_USER_CREDENTIALS,\n SET_IDENTITY_PROVIDER_GROUPS,\n SET_IDENTITY_PROVIDER_GROUP_RELATIONS,\n SET_ALL_ACU_ENTRIES_USERS,\n SET_ENTRY_USER_SCHEDULES,\n SET_USER_ENTRIES,\n SET_CREDENTIAL_TYPES,\n SET_CREDENTIALS,\n SET_CARD_FORMATS,\n SET_SCHEDULE_TYPES,\n SET_SCHEDULE_EVENTS,\n SET_AUDIT_LOGS,\n SET_SHARED_USERS,\n SET_ACU_PORTS,\n SET_REQUEST_TYPES,\n SET_PROTON_STATUSES,\n SET_NAMESPACES,\n SET_TOTAL_USERS_COUNT,\n SET_VIDEO_PROVIDERS,\n SET_WIRELESS_LOCKS,\n SET_WIRELESS_LOCK_PROVIDERS,\n SET_NETSUITE_PACKAGE_PLANS,\n SET_ALLEGION_OPERATORS,\n SET_ALLEGION_INVITE_STATE,\n SET_ALARM_CONFIGURATIONS,\n} from './constants';\n\nconst initialOrgState = fromJS({});\nfunction orgReducer(state = initialOrgState, action) {\n switch (action.type) {\n case SET_ORG:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialNetsuitePackagePlansState = fromJS([]);\nfunction netsuitePackagePlansReducer(\n state = initialNetsuitePackagePlansState,\n action,\n) {\n switch (action.type) {\n case SET_NETSUITE_PACKAGE_PLANS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialEntriesState = fromJS([]);\nfunction entriesReducer(state = initialEntriesState, action) {\n switch (action.type) {\n case SET_ENTRIES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialRolesReducer = fromJS([]);\nfunction rolesReducer(state = initialRolesReducer, action) {\n switch (action.type) {\n case SET_ROLES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialRoleReducer = fromJS([]);\nfunction roleReducer(state = initialRoleReducer, action) {\n switch (action.type) {\n case SET_ROLE:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialGroupsState = fromJS([]);\nfunction groupsReducer(state = initialGroupsState, action) {\n switch (action.type) {\n case SET_GROUPS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialUserGroupsState = fromJS([]);\nfunction userGroupsReducer(state = initialUserGroupsState, action) {\n switch (action.type) {\n case SET_USER_GROUPS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialGroupState = fromJS({});\nfunction groupReducer(state = initialGroupState, action) {\n switch (action.type) {\n case SET_GROUP:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialSitesState = fromJS([]);\nfunction sitesReducer(state = initialSitesState, action) {\n switch (action.type) {\n case SET_SITES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialZonesState = fromJS([]);\nfunction zonesReducer(state = initialZonesState, action) {\n switch (action.type) {\n case SET_ZONES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialZoneState = fromJS({});\nfunction zoneReducer(state = initialZoneState, action) {\n switch (action.type) {\n case SET_ZONE:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialZoneGroupsState = fromJS([]);\nfunction zoneGroupsReducer(state = initialZoneGroupsState, action) {\n switch (action.type) {\n case SET_ZONE_GROUPS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialUsersState = fromJS([]);\nfunction usersReducer(state = initialUsersState, action) {\n switch (action.type) {\n case SET_USERS: {\n return fromJS(action.data);\n }\n default:\n return state;\n }\n}\n\nconst initialIdentityProvidersState = fromJS([]);\nfunction identityProvidersReducer(\n state = initialIdentityProvidersState,\n action,\n) {\n switch (action.type) {\n case SET_IDENTITY_PROVIDERS: {\n return fromJS(action.data);\n }\n default:\n return state;\n }\n}\n\nconst initialEntryStatesState = fromJS([]);\nfunction entryStatesReducer(state = initialEntryStatesState, action) {\n switch (action.type) {\n case SET_ENTRY_STATES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialTriggerMethodsState = fromJS([]);\nfunction triggerMethodsReducer(state = initialTriggerMethodsState, action) {\n switch (action.type) {\n case SET_TRIGGER_METHODS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialIosState = fromJS([]);\nfunction iosReducer(state = initialIosState, action) {\n switch (action.type) {\n case SET_IOS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialSchedulesState = fromJS([]);\nfunction schedulesReducer(state = initialSchedulesState, action) {\n switch (action.type) {\n case SET_SCHEDULES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialGroupSchedulesState = fromJS([]);\nfunction groupSchedulesReducer(state = initialGroupSchedulesState, action) {\n switch (action.type) {\n case SET_GROUP_SCHEDULES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialAcusState = fromJS([]);\nfunction acusReducer(state = initialAcusState, action) {\n switch (action.type) {\n case SET_ACUS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialIdentityProviderGroupsState = fromJS([]);\nfunction identityProviderGroupsReducer(\n state = initialIdentityProviderGroupsState,\n action,\n) {\n switch (action.type) {\n case SET_IDENTITY_PROVIDER_GROUPS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialIdentityProviderGroupRelationsState = fromJS([]);\nfunction identityProviderGroupRelationsReducer(\n state = initialIdentityProviderGroupRelationsState,\n action,\n) {\n switch (action.type) {\n case SET_IDENTITY_PROVIDER_GROUP_RELATIONS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialVideoProvidersState = fromJS([]);\nfunction videoProvidersReducer(state = initialVideoProvidersState, action) {\n switch (action.type) {\n case SET_VIDEO_PROVIDERS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialAllAcuEntriesUsersState = fromJS([]);\nfunction allAcuEntriesUsersReducer(\n state = initialAllAcuEntriesUsersState,\n action,\n) {\n switch (action.type) {\n case SET_ALL_ACU_ENTRIES_USERS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialEntryUserSchedulesState = fromJS([]);\nfunction entryUserSchedulesReducer(\n state = initialEntryUserSchedulesState,\n action,\n) {\n switch (action.type) {\n case SET_ENTRY_USER_SCHEDULES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialUserEntriesState = fromJS([]);\nfunction userEntriesReducer(state = initialUserEntriesState, action) {\n switch (action.type) {\n case SET_USER_ENTRIES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialCredentialTypesState = fromJS([]);\nfunction credentialTypesReducer(state = initialCredentialTypesState, action) {\n switch (action.type) {\n case SET_CREDENTIAL_TYPES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialCredentialsState = fromJS([]);\nfunction credentialsReducer(state = initialCredentialsState, action) {\n switch (action.type) {\n case SET_CREDENTIALS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialCardFormatsState = fromJS([]);\nfunction cardFormatsReducer(state = initialCardFormatsState, action) {\n switch (action.type) {\n case SET_CARD_FORMATS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialScheduleTypesState = fromJS([]);\nfunction scheduleTypesReducer(state = initialScheduleTypesState, action) {\n switch (action.type) {\n case SET_SCHEDULE_TYPES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialScheduleEventsState = fromJS([]);\nexport function scheduleEventsReducer(\n state = initialScheduleEventsState,\n action,\n) {\n switch (action.type) {\n case SET_SCHEDULE_EVENTS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialAuditLogsState = fromJS([]);\nexport function auditLogsReducer(state = initialAuditLogsState, action) {\n switch (action.type) {\n case SET_AUDIT_LOGS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialSharedUsersState = fromJS([]);\nexport function sharedUsersReducer(state = initialSharedUsersState, action) {\n switch (action.type) {\n case SET_SHARED_USERS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialAcuPortsState = fromJS([]);\nexport function acuPortsReducer(state = initialAcuPortsState, action) {\n switch (action.type) {\n case SET_ACU_PORTS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialRequestTypesState = fromJS([]);\nexport function requestTypesReducer(state = initialRequestTypesState, action) {\n switch (action.type) {\n case SET_REQUEST_TYPES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialProtonStatusesState = fromJS([]);\nexport function protonStatusesReducer(\n state = initialProtonStatusesState,\n action,\n) {\n switch (action.type) {\n case SET_PROTON_STATUSES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialNamespacesState = fromJS([]);\nexport function namespacesReducer(state = initialNamespacesState, action) {\n switch (action.type) {\n case SET_NAMESPACES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialScopeResourcesState = fromJS([]);\nfunction scopeResourcesReducer(state = initialScopeResourcesState, action) {\n switch (action.type) {\n case SET_SCOPE_RESOURCES:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialActivityState = fromJS([]);\nfunction activityReducer(state = initialActivityState, action) {\n switch (action.type) {\n case SET_ACTIVITY:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialAlarmActivityState = fromJS([]);\nfunction alarmActivityReducer(state = initialAlarmActivityState, action) {\n switch (action.type) {\n case SET_ALARM_ACTIVITY:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialVisualActivityState = fromJS([]);\nfunction visualActivityReducer(state = initialVisualActivityState, action) {\n switch (action.type) {\n case SET_VISUAL_ACTIVITY:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialUserActivityState = fromJS([]);\nfunction activityUserReducer(state = initialUserActivityState, action) {\n switch (action.type) {\n case SET_USER_ACTIVITY:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialUserCredentialsState = fromJS([]);\nfunction userCredentialsReducer(state = initialUserCredentialsState, action) {\n switch (action.type) {\n case SET_USER_CREDENTIALS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialWirelessLocksState = fromJS([]);\nfunction wirelessLocksReducer(state = initialWirelessLocksState, action) {\n switch (action.type) {\n case SET_WIRELESS_LOCKS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nconst initialWirelessLockProvidersState = fromJS({\n hasLoaded: false,\n data: [],\n});\nfunction wirelessLockProvidersReducer(\n state = initialWirelessLockProvidersState,\n action,\n) {\n switch (action.type) {\n case SET_WIRELESS_LOCK_PROVIDERS:\n return state.merge(fromJS({ data: action.data, hasLoaded: true }));\n default:\n return state;\n }\n}\n\nconst initialAllegionOperatorsState = fromJS({ hasLoaded: false, data: [] });\nfunction allegionOperatorsReducer(\n state = initialAllegionOperatorsState,\n action,\n) {\n switch (action.type) {\n case SET_ALLEGION_OPERATORS:\n return state.merge(\n fromJS({ data: fromJS(action.data), hasLoaded: true }),\n );\n default:\n return state;\n }\n}\n\nconst initialAllegionInviteState = WirelessLockGatewayInviteStates.UNDEFINED;\nfunction allegionInviterReducer(state = initialAllegionInviteState, action) {\n switch (action.type) {\n case SET_ALLEGION_INVITE_STATE:\n return action.data;\n default:\n return state;\n }\n}\n\nconst initialAlarmConfigurationsReducer = fromJS([]);\nfunction alarmConfigurationsReducer(\n state = initialAlarmConfigurationsReducer,\n action,\n) {\n switch (action.type) {\n case SET_ALARM_CONFIGURATIONS:\n return fromJS(action.data);\n default:\n return state;\n }\n}\n\nexport function filteredUsersCountReducer(state = null, { type, data }) {\n switch (type) {\n case SET_FILTERED_USERS_COUNT:\n return data;\n default:\n return state;\n }\n}\n\nexport function totalUsersCountReducer(state = null, { type, data }) {\n switch (type) {\n case SET_TOTAL_USERS_COUNT:\n return data;\n default:\n return state;\n }\n}\n\nexport {\n orgReducer,\n netsuitePackagePlansReducer,\n groupsReducer,\n groupReducer,\n sitesReducer,\n zonesReducer,\n zoneReducer,\n zoneGroupsReducer,\n entriesReducer,\n usersReducer,\n identityProvidersReducer,\n entryStatesReducer,\n triggerMethodsReducer,\n iosReducer,\n schedulesReducer,\n groupSchedulesReducer,\n acusReducer,\n scopeResourcesReducer,\n rolesReducer,\n roleReducer,\n activityReducer,\n alarmActivityReducer,\n visualActivityReducer,\n activityUserReducer,\n identityProviderGroupsReducer,\n identityProviderGroupRelationsReducer,\n videoProvidersReducer,\n allAcuEntriesUsersReducer,\n entryUserSchedulesReducer,\n userEntriesReducer,\n credentialTypesReducer,\n credentialsReducer,\n cardFormatsReducer,\n scheduleTypesReducer,\n userCredentialsReducer,\n userGroupsReducer,\n wirelessLocksReducer,\n wirelessLockProvidersReducer,\n allegionOperatorsReducer,\n allegionInviterReducer,\n alarmConfigurationsReducer,\n};\n\n// This can be used instead of all the others above\n// The actionType should be imported from the OrgContainer constants\nexport const createOrgContainerReducer =\n (initialState, actionType) =>\n (state = fromJS(initialState), { type, data }) =>\n type === actionType ? fromJS(data) : state;\n","module.exports = \"data:image/svg+xml,%3csvg width='182' height='73' viewBox='0 0 182 73' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cpath d='M93.1241 0.0301042C99.6354 -0.188305 106.188 0.780885 112.33 2.96497C121.572 6.21381 129.817 12.1518 135.864 19.8507C138.526 23.2224 140.751 26.9354 142.484 30.8667C142.798 31.5219 143.031 32.2591 142.867 32.9826C142.662 34.2111 141.597 35.2212 140.355 35.3304C139.072 35.5216 137.748 34.7162 137.297 33.5149C133.83 25.3519 127.906 18.2672 120.521 13.353C115.961 10.309 110.842 8.08393 105.491 6.84173C98.5979 5.23097 91.3359 5.23097 84.4423 6.84173C74.5866 9.10773 65.5773 14.7591 59.2161 22.6081C56.5133 25.9116 54.2882 29.5972 52.6092 33.5286C52.2407 34.4432 51.408 35.153 50.4388 35.3168C49.4969 35.4943 48.4731 35.1803 47.8179 34.4705C47.0398 33.6924 46.7941 32.4638 47.19 31.44C51.8038 20.5196 60.3627 11.3464 70.8873 5.88619C77.7262 2.2961 85.3979 0.289465 93.1241 0.0301042Z' fill='%23F49813'/%3e %3cpath d='M84.51 33.6649C84.4691 33.0916 85.0015 32.6684 85.5338 32.6547C86.23 32.6411 86.9125 32.6547 87.6087 32.6547C88.0865 32.6684 88.6462 32.996 88.6462 33.5284C88.6735 39.8759 88.6325 46.2234 88.6735 52.5709C91.2398 49.7179 93.8334 46.865 96.4133 44.012C96.9184 43.5069 97.3279 42.7562 98.1196 42.6879C99.1844 42.647 100.249 42.6743 101.314 42.6743C101.723 42.6333 102.188 43.0155 102.037 43.4523C101.874 43.7936 101.56 44.0257 101.314 44.2987C98.5292 47.0834 95.7171 49.8681 92.9461 52.6665C95.6216 55.7242 98.2698 58.8229 100.945 61.8942C101.287 62.3311 101.723 62.6996 102.01 63.191C102.215 63.5733 101.874 64.0237 101.464 64.0374C100.577 64.092 99.6895 64.0374 98.8022 64.0647C98.338 64.0647 97.8466 64.1193 97.4235 63.8872C96.9866 63.6279 96.7136 63.1774 96.3997 62.7952C93.8197 59.5463 91.2671 56.2975 88.6871 53.0623C88.6598 56.2566 88.6871 59.4508 88.6871 62.6314C88.6871 62.9999 88.7554 63.4368 88.4277 63.7098C87.9227 64.2012 87.1582 64.0237 86.5167 64.0647C85.957 64.051 85.2881 64.1739 84.8376 63.7507C84.5783 63.546 84.51 63.2183 84.5237 62.9044C84.5237 53.1579 84.5237 43.4114 84.5237 33.6649' fill='white'/%3e %3cpath d='M72.7849 42.6331C74.0817 42.2236 75.5287 42.1417 76.7982 42.6877C77.2487 42.8925 77.7537 43.3429 77.5626 43.889C77.3579 44.5715 77.1941 45.2677 76.9483 45.9502C76.7709 46.4416 76.2112 46.6191 75.7334 46.5235C74.6687 46.3461 73.6176 45.9911 72.5256 46.0184C71.7611 46.0048 71.065 46.4143 70.5326 46.933C69.6862 47.7521 69.2631 48.9124 69.0583 50.0454C68.9082 50.8644 68.9491 51.7107 68.9355 52.5434C68.9355 56.0516 68.9355 59.5461 68.9355 63.0543C68.9901 63.6277 68.3894 64.0235 67.8707 64.0372C67.1609 64.0372 66.4511 64.0508 65.7276 64.0372C65.2089 64.0099 64.6355 63.6277 64.7038 63.0543C64.7038 56.5703 64.7038 50.0863 64.7038 43.6023C64.6628 42.9607 65.3727 42.6058 65.9323 42.6741C66.6422 42.715 67.5977 42.4556 68.0482 43.1655C68.3894 43.9845 68.5533 44.8718 68.8809 45.7045C69.8637 44.3531 71.1605 43.1791 72.7713 42.6468' fill='white'/%3e %3cpath d='M0 43.1246C0.204758 42.8926 0.436818 42.6469 0.764431 42.6742C1.73362 42.6742 2.70281 42.6469 3.672 42.6878C4.16342 42.7015 4.50468 43.1383 4.57294 43.5887C5.52848 47.4655 6.45671 51.3423 7.41225 55.2054C7.68526 56.4066 8.02653 57.5806 8.20399 58.7955C8.39509 59.8875 8.42239 60.9932 8.59985 62.0989C8.84556 60.5427 9.06397 58.9593 9.48714 57.4304C10.7293 52.8029 11.9715 48.189 13.2001 43.5614C13.2956 43.0291 13.7871 42.6605 14.3194 42.6605C15.3978 42.6332 16.4762 42.6605 17.5546 42.6605C18.1279 42.6332 18.7559 42.9745 18.8924 43.5614C19.8206 46.9331 20.7352 50.3048 21.6498 53.6765C22.2095 55.8606 22.9466 58.0037 23.2605 60.2424C23.3425 60.8567 23.438 61.4846 23.5609 62.0852C23.9021 58.5634 24.8167 55.1371 25.5538 51.6972C26.1681 48.9534 26.7687 46.2097 27.3967 43.4659C27.4922 42.9199 28.0655 42.6332 28.5843 42.6469C29.4579 42.6469 30.3315 42.6196 31.2052 42.6605C31.7239 42.6742 32.0242 43.2475 31.8331 43.7116C30.0858 50.1683 28.3386 56.625 26.5913 63.0817C26.4957 63.6005 26.0453 63.9963 25.5129 64.01C24.1615 64.0509 22.8101 64.01 21.4587 64.0236C20.9809 64.0509 20.4622 63.7916 20.3803 63.2865C19.1654 58.8501 17.9914 54.4 16.7902 49.9636C16.3534 48.421 16.1759 46.8103 15.9985 45.2268C15.78 46.6465 15.6708 48.0798 15.2886 49.4721C14.0601 54.0451 12.8315 58.618 11.603 63.1909C11.4665 63.9281 10.6201 64.0782 9.99221 64.0373C8.73636 64.01 7.4805 64.0646 6.22465 64.01C5.77419 64.01 5.43292 63.6687 5.35102 63.2455C3.5901 56.8161 1.82917 50.3867 0.0682528 43.9573C0.0136506 43.6706 0.0136506 43.384 0 43.111H0' fill='white'/%3e %3cpath d='M158.428 42.6878C159.343 42.6741 160.271 42.6741 161.186 42.6878C161.745 42.6878 162.264 43.0837 162.442 43.616C164.025 47.7521 165.595 51.9019 167.178 56.038C167.506 56.8844 167.738 57.758 167.888 58.6453C168.543 56.1882 169.417 53.7993 170.181 51.3695C171.028 48.7486 171.888 46.1277 172.734 43.5068C172.857 43.0564 173.294 42.7424 173.758 42.7014C174.509 42.6468 175.259 42.7014 176.01 42.6741C176.447 42.6741 176.966 42.6332 177.307 42.9745C177.525 43.1519 177.471 43.4659 177.389 43.6979C174.864 50.9191 172.338 58.1402 169.813 65.3614C169.376 66.5626 169.035 67.8185 168.325 68.9105C167.315 70.5622 165.663 71.7498 163.861 72.3914C163.233 72.5825 162.578 73.0193 161.896 72.7736C161.418 72.6508 161.227 72.1457 160.967 71.7771C160.776 71.4495 160.435 71.1356 160.517 70.7124C160.544 70.3029 160.885 69.9616 161.268 69.8524C162.032 69.593 162.81 69.2927 163.424 68.7604C164.926 67.4909 165.854 65.6207 166.209 63.7096C165.963 62.8633 165.527 62.0852 165.199 61.2662C162.783 55.6558 160.367 50.0454 157.951 44.4351C157.8 44.0665 157.596 43.7116 157.555 43.3157C157.555 42.8789 158.06 42.6878 158.428 42.6741' fill='white'/%3e %3cpath d='M45.8929 45.4047C44.5825 45.6504 43.3812 46.4694 42.7124 47.6297C41.593 49.5271 41.4702 51.8068 41.5111 53.9499C41.593 55.8883 41.907 57.9632 43.1492 59.533C44.0774 60.7206 45.5926 61.3076 47.0669 61.2803C48.4866 61.3212 49.9745 60.8434 50.9437 59.765C52.1722 58.4136 52.5681 56.5572 52.7455 54.7962C52.8138 53.0626 52.8547 51.3017 52.4043 49.6227C52.0493 48.1894 51.2986 46.7697 49.9881 46.0053C48.7732 45.2545 47.2717 45.1863 45.9066 45.4047H45.8929ZM46.4526 42.3196C48.8415 42.1695 51.3259 42.6746 53.2916 44.0806C55.0525 45.3364 56.2401 47.2611 56.7997 49.3224C57.4686 51.7931 57.455 54.4277 56.8543 56.9121C56.281 59.2054 54.9569 61.3622 52.9639 62.659C50.8208 64.0786 48.1453 64.4472 45.6336 64.1469C43.4904 63.8875 41.4156 62.9456 39.9277 61.3758C38.1804 59.5466 37.3067 57.0213 37.1293 54.5232C36.9109 51.7522 37.334 48.831 38.8766 46.4694C40.0096 44.6948 41.8251 43.3844 43.8454 42.7838C44.6917 42.5244 45.5653 42.4015 46.439 42.3196' fill='white'/%3e %3cpath d='M116.726 45.282C115.415 45.3639 114.16 46.1147 113.573 47.3159C112.44 49.5273 112.412 52.08 112.467 54.5098C112.562 56.0932 112.726 57.7313 113.463 59.1646C113.968 60.1338 114.869 60.8846 115.948 61.1166C117.586 61.5125 119.524 61.1712 120.685 59.8744C121.804 58.5913 122.172 56.8577 122.35 55.2059C122.473 53.3358 122.473 51.4111 122.009 49.5819C121.695 48.3534 121.149 47.1248 120.179 46.2785C119.251 45.4594 117.941 45.1455 116.726 45.282ZM122.35 33.3924C122.323 32.9009 122.828 32.5733 123.264 32.5324C123.974 32.4914 124.684 32.5187 125.394 32.5324C125.94 32.5324 126.541 32.9282 126.459 33.5289C126.459 43.3163 126.459 53.1174 126.459 62.9049C126.5 63.4099 125.995 63.8058 125.53 63.8331C124.971 63.8604 124.397 63.8604 123.838 63.8331C123.442 63.8058 123.06 63.5601 122.923 63.1779C122.705 62.5363 122.596 61.8811 122.445 61.2395C121.667 62.3042 120.657 63.2325 119.401 63.7102C117.613 64.3655 115.62 64.3791 113.791 63.9287C111.948 63.4918 110.337 62.2223 109.45 60.5433C108.058 57.9907 107.894 55.0012 107.976 52.1619C108.03 49.7321 108.495 47.1658 110.064 45.241C111.252 43.603 113.218 42.6747 115.183 42.429C117.026 42.156 119.019 42.47 120.534 43.5893C121.258 44.0944 121.831 44.7769 122.35 45.4867C122.336 41.4735 122.35 37.4466 122.35 33.4333' fill='white'/%3e %3cpath d='M142.116 45.4045C141.461 45.541 140.82 45.8004 140.301 46.2099C139.236 47.029 138.717 48.3394 138.431 49.6226C138.021 51.6428 138.021 53.7314 138.24 55.7653C138.431 57.2669 138.813 58.864 139.919 59.9697C140.82 60.9116 142.171 61.2528 143.427 61.1982C144.792 61.2528 146.198 60.7478 147.071 59.6694C148.164 58.3453 148.477 56.5843 148.641 54.919C148.737 52.9669 148.75 50.9603 148.191 49.0629C147.85 47.8753 147.208 46.7013 146.143 46.0325C144.969 45.2544 143.468 45.1861 142.116 45.3909V45.4045ZM140.301 42.729C142.185 42.2103 144.205 42.1694 146.116 42.6062C147.891 43.0157 149.542 44.0122 150.634 45.4864C151.781 47.0017 152.368 48.8718 152.614 50.7283C152.818 52.1616 152.764 53.6222 152.764 55.0691C152.764 57.6764 152.764 60.2973 152.764 62.9046C152.791 63.2185 152.586 63.5052 152.327 63.669C151.89 63.942 151.344 63.8191 150.853 63.8464C150.307 63.8464 149.583 63.8874 149.283 63.3141C148.996 62.6452 148.928 61.8944 148.75 61.1846C148.013 62.0855 147.249 63.0001 146.184 63.5188C144.56 64.3242 142.662 64.2696 140.929 63.9283C138.799 63.5052 136.847 62.2493 135.646 60.4474C134.213 58.3453 133.694 55.738 133.721 53.2263C133.708 50.7692 134.185 48.2439 135.55 46.169C136.642 44.4763 138.39 43.2478 140.328 42.7154' fill='white'/%3e %3cpath d='M178.29 58.782C177.211 59.1779 176.529 60.4201 176.802 61.5394C177.088 62.8635 178.617 63.7645 179.9 63.273C181.074 62.9181 181.825 61.5667 181.457 60.3791C181.129 59.0414 179.545 58.2496 178.29 58.782ZM178.44 58.2223C179.081 58.1268 179.778 58.1131 180.365 58.4134C181.375 58.8776 182.098 59.956 181.989 61.089C182.071 62.4404 180.938 63.6416 179.641 63.86C178.18 64.174 176.624 63.1092 176.324 61.6623C175.942 60.2017 176.952 58.5499 178.426 58.236' fill='white'/%3e %3cpath d='M178.74 59.8607C178.74 60.161 178.74 60.475 178.74 60.7753C179.013 60.7616 179.286 60.7753 179.546 60.707C179.792 60.5978 179.764 60.2839 179.696 60.0791C179.437 59.8334 179.054 59.888 178.727 59.8607H178.74ZM177.935 59.3693C178.713 59.4102 179.573 59.1918 180.269 59.6286C180.829 60.0518 180.556 60.9664 179.928 61.1575C180.105 61.6353 180.365 62.0857 180.597 62.5499C180.31 62.5499 180.01 62.5499 179.723 62.5635C179.519 62.1403 179.314 61.7035 179.109 61.2804C178.986 61.2804 178.863 61.2804 178.74 61.2804C178.74 61.7172 178.74 62.1403 178.74 62.5772C178.467 62.5772 178.194 62.5772 177.935 62.5772C177.935 61.5124 177.935 60.4477 177.935 59.3966' fill='white'/%3e %3c/svg%3e\"","import {\n put,\n call,\n takeEvery,\n all,\n take,\n takeLatest,\n} from 'redux-saga/effects';\nimport { LOCATION_CHANGE } from 'connected-react-router';\n\nimport { requestAndSet, sendToHelium } from 'utils/helpers';\n\nimport { setOrgContainerReducer } from 'routes/OrgContainer/actions';\nimport { REQUEST_UPDATE_TABLE, REQUEST_UPDATE_DATA_ORDER } from './constants';\nimport { setTableUpdating } from './actions';\n\n// Helper functions\nconst createFilterValue = (filterValue, isMultiSelect) => {\n // Escape offending filter characters\n const sanitizedFilterValue = filterValue.replace(/[\\\\():]/g, '\\\\$&');\n\n // `~` is for fuzzy/partial matching, and `=` is for exact match.\n // Default is `~`, but we want to be explict from here on out.\n return `${sanitizedFilterValue\n .split(',')\n .map((str) => `${isMultiSelect ? '=' : '~'}${str}`)}`;\n};\n\nexport const createApiQueryStringParamsFromReactTableState = ({\n offset,\n limit,\n filters = [],\n sortBy = [],\n columns,\n globalFilter,\n defaultQueryStringParams = {},\n}) => {\n const queryStringParams = { ...defaultQueryStringParams };\n\n // Set offset if there is one\n if (offset) {\n queryStringParams.offset = offset;\n }\n\n // Set limit if there is one\n if (limit) {\n queryStringParams.limit = limit;\n }\n\n // Set filter option if any filtered columns\n if (filters.length) {\n queryStringParams.filter = filters.reduce(\n (acc, { id, value }) => {\n const isMultiSelect =\n columns?.find((col) => (col.id || col.accessor) === id)?.filter ===\n 'multiselect';\n\n return `${acc ? `${acc} ` : ''}${id}:(${createFilterValue(\n value,\n isMultiSelect,\n )})`;\n },\n `${queryStringParams.filter || ''}`,\n );\n }\n\n // Set sort queryStringParams if any sorted columns\n if (sortBy.length) {\n const { id, desc } = sortBy[0];\n queryStringParams.sort = id;\n queryStringParams.order = desc ? 'desc' : 'asc';\n }\n\n // Set query if any search query\n if (globalFilter) {\n queryStringParams.q = globalFilter;\n }\n\n return queryStringParams;\n};\n\nexport const createValidCsvData = (data) =>\n data.map((row) =>\n Object.entries(row).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]:\n typeof value === 'string' ? value.replace(/^[@+\\-=]/g, \"'$&\") : value,\n }),\n {},\n ),\n );\n\n// Updates the table using the passed API endpoint\nfunction* requestUpdateTable({\n page,\n tableId = null,\n state,\n endpointName,\n endpointQueryStringParams: defaultQueryStringParams,\n additionEndpointRequisites = [],\n setterActionType,\n gotoPage,\n tableColumns: columns,\n dataFilter,\n}) {\n // Set loading to true immediately so we see loader even if not latest call\n yield put(setTableUpdating({ page, tableId, loading: true }));\n\n if (endpointName && setterActionType) {\n const { pageIndex, pageSize: limit, filters, sortBy, globalFilter } = state;\n const params = {\n offset: pageIndex * limit,\n limit,\n filters,\n columns,\n sortBy,\n globalFilter,\n defaultQueryStringParams,\n };\n\n yield call(requestAndSet, endpointName, additionEndpointRequisites, {\n queryStringParams: createApiQueryStringParamsFromReactTableState(params),\n createSetterAction: (metadata) => {\n const finalMetadata = {\n ...metadata,\n data: dataFilter ? metadata.data.filter(dataFilter) : metadata.data,\n };\n return setOrgContainerReducer(setterActionType, page, finalMetadata);\n },\n suppressErrorMessage: process.env.NODE_ENV === 'production',\n });\n }\n\n // Reset to page 1 if paginated and a filter was used\n if (gotoPage) gotoPage(0);\n\n yield put(setTableUpdating({ page, tableId, loading: false }));\n}\n\nfunction* requestUpdateDataOrder({\n originalMetadata,\n reorderedData,\n page,\n setterActionType,\n updaterEndpoint,\n endpointRequisites = [],\n payloadCallback,\n successMessage,\n iteratePayload = false,\n iteratePayloadCallback = (x) => x,\n}) {\n // Update database so order matches what is shown\n const payload = payloadCallback(reorderedData);\n\n if (updaterEndpoint) {\n let errorDuringSend = false;\n // this is probably temp, but we should be able to have the ability to send data to endpoints that aren't \"batch friendly\"\n // at least until we make a new batch endpoint\n if (iteratePayload) {\n // need endpointRequisites to be a function so we can inject the last param from payload\n if (typeof endpointRequisites !== 'function') {\n throw new Error(\n 'If using iteratePayload, endpointRequisites must be a function (otherwise how will you know the last url param?)',\n );\n }\n if (typeof iteratePayloadCallback !== 'function') {\n throw new Error(\n 'If using iteratePayload, iteratePayloadCallback must be a function (to put the payload in the right format)',\n );\n }\n\n while (payload.length) {\n const p = payload.pop();\n const actualEndpointRequisites = endpointRequisites(p);\n const actualPayload = iteratePayloadCallback(p);\n const { errorMessage } = yield call(\n sendToHelium,\n updaterEndpoint,\n actualEndpointRequisites,\n actualPayload,\n { successMessage },\n );\n if (errorMessage) {\n errorDuringSend = true;\n return;\n }\n }\n } else {\n const { errorMessage } = yield call(\n sendToHelium,\n updaterEndpoint,\n endpointRequisites,\n payload,\n { successMessage },\n );\n errorDuringSend = !!errorMessage;\n }\n\n // Revert to original order if there is an error\n if (errorDuringSend) {\n yield put(\n setOrgContainerReducer(setterActionType, page, originalMetadata),\n );\n }\n }\n}\n\nfunction* rootSaga() {\n yield all([\n takeLatest(REQUEST_UPDATE_TABLE, requestUpdateTable),\n takeEvery(REQUEST_UPDATE_DATA_ORDER, requestUpdateDataOrder),\n ]);\n yield take(LOCATION_CHANGE);\n}\n\nexport default rootSaga;\n","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","module.exports = __webpack_public_path__ + \"24a3ff38afde257888d755ece9bfd704.js\";","import gsuiteLogo from 'assets/img/g-suite-white-66.png';\nimport msazureadLogo from 'assets/img/azure-active-directory-white-66.png';\nimport oktaLogo from 'assets/img/okta-white-66.png';\nimport oneloginLogo from 'assets/img/onelogin-white-66.png';\nimport workdayLogo from 'assets/img/workday-logo.svg';\n\nexport const PAGE = 'integrationsPage';\n\nexport const REQUEST_GET_INITIAL_DATA = `app/${PAGE}/REQUEST_GET_INITIAL_DATA`;\nexport const SET_IDENTITY_PROVIDER_TYPES = `app/${PAGE}/SET_IDENTITY_PROVIDER_TYPES`;\nexport const SET_IDENTITY_PROVIDERS = `app/${PAGE}/SET_IDENTITY_PROVIDERS`;\nexport const REQUEST_GET_IDENTITY_PROVIDERS = `app/${PAGE}/REQUEST_GET_IDENTITY_PROVIDERS`;\nexport const REQUEST_GET_IDENTITY_PROVIDER_BY_ID = `app/${PAGE}/REQUEST_GET_IDENTITY_PROVIDER_BY_ID`;\nexport const REQUEST_SYNC_IDENTITY_PROVIDER = `app/${PAGE}/REQUEST_SYNC_IDENTITY_PROVIDER`;\nexport const REQUEST_UPSERT_IDENTITY_PROVIDER = `app/${PAGE}/REQUEST_UPSERT_IDENTITY_PROVIDER`;\nexport const REQUEST_IDP_REAUTH = `app/${PAGE}/REQUEST_IDP_REAUTH`;\nexport const OAUTH_REQUEST_CALLBACK = `app/${PAGE}/OAUTH_REQUEST_CALLBACK`;\nexport const OAUTH_SET_AUTH_URL = `app/${PAGE}/OAUTH_SET_AUTH_URL`;\nexport const REQUEST_GET_GROUPS = `app/${PAGE}/REQUEST_GET_GROUPS`;\nexport const REQUEST_GET_GROUP_RELATIONS = `app/${PAGE}/REQUEST_GET_GROUP_RELATIONS`;\nexport const REQUEST_GET_IDP_GROUPS = `app/${PAGE}/REQUEST_GET_IDP_GROUPS`;\nexport const SET_IDENTITY_PROVIDER_GROUPS = `app/${PAGE}/SET_IDENTITY_PROVIDER_GROUPS`;\nexport const SET_GROUP_RELATIONS = `app/${PAGE}/SET_GROUP_RELATIONS`;\nexport const INACTIVATE_IDP = `app/${PAGE}/INACTIVATE_IDP`;\nexport const REQUEST_CREATE_VIDEO_PROVIDER = `app/${PAGE}/REQUEST_CREATE_VIDEO_PROVIDER`;\nexport const REQUEST_UPDATE_VIDEO_PROVIDER = `app/${PAGE}/REQUEST_UPDATE_VIDEO_PROVIDER`;\n\nexport const logos = {\n gsuite: { src: gsuiteLogo, backgroundColor: '#767676', height: 22 },\n msazuread: { src: msazureadLogo, backgroundColor: '#00ABF5', height: 33 },\n okta: { src: oktaLogo, backgroundColor: '#007DC1', height: 22 },\n // see https://www.onelogin.com/press-center/press-kit - bg color is \"OneLogin Black\"\n onelogin: { src: oneloginLogo, backgroundColor: '#1C1F2A', height: 33 },\n workday: {\n src: workdayLogo,\n backgroundColor: '#005BB8',\n containerStyle: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n },\n style: {\n padding: '10px 0',\n position: 'relative',\n left: '18px',\n },\n },\n};\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\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 set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const ChevronDownSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 10 10\" {...svgProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.12038 3.67461C1.30009 3.46495 1.61574 3.44067 1.8254 3.62038L5.00001 6.34147L8.17461 3.62038C8.38428 3.44067 8.69993 3.46495 8.87964 3.67461C9.05935 3.88428 9.03507 4.19993 8.8254 4.37964L5.3254 7.37964C5.13816 7.54013 4.86186 7.54013 4.67461 7.37964L1.17461 4.37964C0.96495 4.19993 0.94067 3.88428 1.12038 3.67461Z\"\n />\n </SvgWrapper>\n);\n","module.exports = __webpack_public_path__ + \"afba1f28f2baa29eae717d6cb03f5464.js\";","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.getOwnPropertyNames(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch (e) {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","export function isPresetSize(size) {\n return ['small', 'middle', 'large'].includes(size);\n}\nexport function isValidGapNumber(size) {\n if (!size) {\n // The case of size = 0 is deliberately excluded here, because the default value of the gap attribute in CSS is 0, so if the user passes 0 in, we can directly ignore it.\n return false;\n }\n return typeof size === 'number' && !Number.isNaN(size);\n}","module.exports = __webpack_public_path__ + \"b10accbff47791a59b8494225af07025.js\";","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n var originOverflow = popupElement.style.overflow;\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n popupElement.style.overflow = 'hidden';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var _rect$x, _rect$y;\n var rect = target.getBoundingClientRect();\n rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n popupElement.style.overflow = originOverflow;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = _slicedToArray(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n if (_scaleX === 1) {\n nextOffsetX = Math.round(nextOffsetX);\n offsetX4Right = Math.round(offsetX4Right);\n }\n if (_scaleY === 1) {\n nextOffsetY = Math.round(nextOffsetY);\n offsetY4Bottom = Math.round(offsetY4Bottom);\n }\n var nextOffsetInfo = {\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n };\n setOffsetInfo(nextOffsetInfo);\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","module.exports = __webpack_public_path__ + \"d4b890206d2316955676dd69ef0f2779.js\";","import { dropUndefinedKeys, arrayify } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=applyScopeDataToEvent.js.map\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = intersectionBy;\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var originNodeRef = getNodeRef(motionChildren);\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormLink.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormLink.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInputNumber.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInputNumber.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import InputNumber from 'antd/es/input-number';\nimport { ComponentProps, forwardRef } from 'react';\nimport clsx from 'clsx';\n\nimport './OpInputNumber.scss';\n\ninterface OpInputNumberProps\n extends ComponentProps<typeof InputNumber<string | number>> {\n testId?: string;\n gtm?: string;\n}\n\nexport const OpInputNumber = forwardRef<HTMLInputElement, OpInputNumberProps>(\n (\n { testId = 'op-input-number', className, gtm, ...inputNumberProps },\n ref,\n ) => {\n return (\n <InputNumber\n ref={ref}\n className={clsx('op-input-number', className)}\n data-testid={testId}\n data-gtm={gtm}\n {...inputNumberProps}\n />\n );\n },\n);\n","import { ComponentProps, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { OpInputNumber } from 'new-components/DLS/OpInputNumber/OpInputNumber';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormInputNumberProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpInputNumber>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormInputNumber = forwardRef<\n HTMLInputElement,\n OpFormInputNumberProps\n>(\n (\n {\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n testId,\n\n ...elementProps\n },\n ref,\n ) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-input', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={testId ? `${testId}-op-form-item` : undefined}\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInputNumber\n disabled={isReadOnly || disabled}\n testId={testId}\n {...elementProps}\n ref={ref}\n />\n )}\n </OpForm.Item>\n );\n },\n);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInputDuration.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInputDuration.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * i18n.t vs Destructured t: While both provide translation\n * functionalities, i18n.t ensures consistency with your\n * configured instance and is generally safer for maintaining\n * reactivity and configuration.\n *\n * Best Practice: Use the i18n instance (i18n.t) when needing\n * translations outside React components. For React components,\n * prefer the useTranslation hook to handle reactivity seamlessly.\n */\nimport i18n from 'i18next';\nimport { ComponentProps, forwardRef, useState } from 'react';\nimport InputNumber from 'antd/es/input-number';\nimport clsx from 'clsx';\nimport { OpSelect } from '../OpSelect/OpSelect';\n\nimport './OpInputDuration.scss';\n\ninterface OpInputDurationProps\n extends ComponentProps<typeof InputNumber<number>> {\n testId?: string;\n defaultUnitValue?: number;\n unitOptions?: { value: number; label: string }[];\n minSeconds?: number;\n maxSeconds?: number;\n}\n\nconst defaultUnitOptions = [\n { value: 1, label: i18n.t('Seconds') },\n { value: 60, label: i18n.t('Minutes') },\n];\n\nexport const OpInputDuration = forwardRef<\n HTMLInputElement,\n OpInputDurationProps\n>(\n (\n {\n className,\n testId = 'op-duration-input',\n defaultUnitValue = defaultUnitOptions[0].value,\n unitOptions = defaultUnitOptions,\n minSeconds,\n maxSeconds,\n value: propsValue,\n onChange: propsOnChange,\n ...inputNumberProps\n },\n ref,\n ) => {\n const [unit, setUnit] = useState(defaultUnitValue);\n\n const handleUnitChange = (value: number) => {\n setUnit(value);\n };\n\n const handleValueChange = (value: number | null) => {\n propsOnChange?.(value && unit ? value * unit : null);\n };\n\n const displayValue = propsValue && unit ? propsValue / unit : propsValue;\n\n return (\n <InputNumber\n className={clsx('op-input-duration', className)}\n ref={ref}\n data-testid={testId}\n min={0}\n {...inputNumberProps}\n addonAfter={\n unitOptions.length > 1 ? (\n <OpSelect\n className={clsx('op-input-duration__select', className)}\n options={unitOptions}\n value={unit}\n onChange={handleUnitChange}\n />\n ) : (\n unitOptions[0].label\n )\n }\n value={displayValue}\n onChange={handleValueChange}\n {...(minSeconds && { min: Math.floor(minSeconds / unit) })}\n {...(maxSeconds && { max: maxSeconds / unit })}\n />\n );\n },\n);\n","import { ComponentProps, forwardRef, useContext } from 'react';\nimport clsx from 'clsx';\nimport { OpInputDuration } from 'new-components/DLS/OpInputDuration/OpInputDuration';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormInputDurationProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'initialValue'\n >,\n Omit<ComponentProps<typeof OpInputDuration>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormInputDuration = forwardRef<\n HTMLInputElement,\n OpFormInputDurationProps\n>(\n (\n {\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n initialValue,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n testId,\n\n ...elementProps\n },\n ref,\n ) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useContext(OpFormContext);\n\n return (\n <OpForm.Item\n className={clsx('op-form-input', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n initialValue={initialValue}\n testId={testId ? `${testId}-op-form-item` : undefined}\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInputDuration\n disabled={isReadOnly || disabled}\n testId={testId}\n {...elementProps}\n ref={ref}\n />\n )}\n </OpForm.Item>\n );\n },\n);\n","import { countries } from 'constants/countries';\nimport { OpSelect } from 'new-components/DLS/OpSelect/OpSelect';\nimport { sortOptionsAlphabetically } from 'utils/sortOptionsAlphabetically';\n\ninterface CountrySelectProps {\n onSelect(shortCode: string): void;\n value?: string;\n disabled?: boolean;\n filterCondition: string[] | undefined;\n}\n\nexport const CountrySelect = ({\n onSelect,\n value = 'US',\n disabled,\n filterCondition,\n}: CountrySelectProps) => {\n let filteredCountries = countries;\n\n if (filterCondition && filterCondition.length > 0) {\n filteredCountries = countries.filter((e) =>\n filterCondition?.includes(e.short!),\n );\n }\n\n const options = filteredCountries.map((item) => {\n const optionLabel = `${item.name} +${item.phoneCode}`;\n const fixedProps = {\n key: optionLabel,\n value: item.short,\n label: (\n <>\n {item.emoji} +{item.phoneCode}\n </>\n ),\n };\n return (\n <OpSelect.Option {...fixedProps}>\n {item.emoji} {optionLabel}\n </OpSelect.Option>\n );\n });\n\n return (\n <OpSelect\n variant=\"borderless\"\n popupMatchSelectWidth={false}\n optionLabelProp=\"label\"\n onSelect={onSelect}\n defaultValue=\"US\"\n value={value}\n disabled={disabled}\n filterSort={sortOptionsAlphabetically}\n >\n {options}\n </OpSelect>\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpPhoneInput.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpPhoneInput.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ChangeEvent, ComponentProps, useState } from 'react';\nimport { CountryCode } from 'libphonenumber-js';\nimport { phoneUtils } from 'utils/phone';\nimport { OpInput } from '../OpInput/OpInput';\nimport { CountrySelect } from './components/CountrySelect';\n\nimport './OpPhoneInput.scss';\n\ninterface OpPhoneInputProps extends ComponentProps<typeof OpInput> {\n testId?: string;\n gtm?: string;\n className?: string;\n filterCondition?: string[];\n}\n\nexport const OpPhoneInput = ({\n testId = 'op-phone-input',\n gtm,\n className = '',\n onChange,\n value = '',\n disabled,\n filterCondition = [],\n ...inputProps\n}: OpPhoneInputProps) => {\n const [shortCode, setShortCode] = useState<CountryCode>(\n phoneUtils.getCountryCode(String(value)),\n );\n const phoneCode = phoneUtils.getFormattedE164CountryCode(shortCode);\n /**\n * We take out the country code from the value here so\n * that we dont see the redundant code after the Select\n */\n const phoneWithoutCountryCode = String(value).replace(`${phoneCode}`, '');\n\n const handleSelect = (newShortCode: CountryCode) => {\n const newPhoneCode = phoneUtils.getFormattedE164CountryCode(newShortCode);\n setShortCode(newShortCode);\n\n if (onChange) {\n const eventData = {\n target: {\n value: `${newPhoneCode}${phoneWithoutCountryCode}`,\n },\n } as ChangeEvent<HTMLInputElement>;\n\n onChange(eventData);\n }\n };\n\n return (\n <OpInput\n className={`op-phone-input ${className}`.trim()}\n data-testid={testId}\n gtm={gtm} // Pass through\n addonBefore={\n <CountrySelect\n disabled={disabled}\n onSelect={handleSelect}\n value={shortCode}\n filterCondition={filterCondition}\n />\n }\n value={phoneWithoutCountryCode}\n disabled={disabled}\n onChange={(e) => {\n // Only allow numerical values (empty string passes too)\n const reg = /^\\d*$/;\n const inputValue = reg.test(e.target.value)\n ? e.target.value\n : phoneWithoutCountryCode;\n\n // if the new value is empty (perhaps deleting) clear everything including country code\n const newValue = inputValue ? `${phoneCode}${inputValue}` : '';\n\n const eventData = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n\n if (onChange) {\n onChange(eventData);\n }\n }}\n {...inputProps}\n />\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDatePicker.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDatePicker.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport DatePicker from 'antd/es/date-picker';\nimport clsx from 'clsx';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { DATE_TIME_FORMAT } from 'constants/Dates';\n\nimport './OpDatePicker.scss';\n\ntype DatePickerProps = ComponentProps<typeof DatePicker<Dayjs>>;\n\ninterface OpDatePickerProps\n extends Omit<DatePickerProps, 'value' | 'onChange' | 'picker'> {\n testId?: string;\n gtm?: string;\n value?: Dayjs | string;\n onChange?: (value: string | null, dateString: string | string[]) => void;\n}\n\nexport const OpDatePicker = ({\n className = '',\n testId = 'op-date-picker',\n gtm,\n value,\n format = DATE_TIME_FORMAT,\n onChange,\n ...datePickerProps\n}: OpDatePickerProps) => {\n // We want to store a string in the form values rather than a dayjs object\n const handleChange = (\n changedValue: Dayjs | null,\n dateString: string | string[],\n ): void => {\n onChange?.(changedValue ? changedValue.toISOString() : null, dateString);\n };\n\n // We need to convert the now stored string to a dayjs object\n const pickerValue = typeof value === 'string' ? dayjs(value) : value;\n\n return (\n <DatePicker\n className={clsx('op-date-picker', className)}\n data-testid={testId}\n data-gtm={gtm}\n format={format}\n value={pickerValue}\n onChange={handleChange}\n {...datePickerProps}\n />\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTimePicker.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTimePicker.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport TimePicker from 'antd/es/time-picker';\nimport clsx from 'clsx';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { TIME_FORMAT } from 'constants/Dates';\n\nimport './OpTimePicker.scss';\n\ninterface OpTimePickerProps\n extends Omit<\n ComponentProps<typeof TimePicker>,\n 'value' | 'onChange' | 'picker'\n > {\n testId?: string;\n gtm?: string;\n value?: Dayjs | string;\n onChange?: (value: string | null, timeString: string | string[]) => void;\n}\n\nexport const OpTimePicker = ({\n className = '',\n testId = 'op-time-picker',\n gtm,\n value,\n format = TIME_FORMAT,\n onChange,\n ...timePickerProps\n}: OpTimePickerProps) => {\n // We want to store a string in the form values rather than a dayjs object\n const handleChange = (\n changedValue: Dayjs | null,\n timeString: string | string[],\n ): void => {\n onChange?.(changedValue ? changedValue.toISOString() : null, timeString);\n };\n\n // We need to convert the now stored string to a dayjs object\n const pickerValue = typeof value === 'string' ? dayjs(value) : value;\n\n return (\n <TimePicker\n className={clsx('op-time-picker', className)}\n data-testid={testId}\n data-gtm={gtm}\n format={format}\n needConfirm={false}\n value={pickerValue}\n onChange={handleChange}\n {...timePickerProps}\n />\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTagInput.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTagInput.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { KeyboardEvent, useState } from 'react';\nimport { DefaultOptionType } from 'antd/es/select';\nimport { OpSelect, OpSelectMultipleProps } from '../OpSelect/OpSelect';\n\nimport './OpTagInput.scss';\n\ntype SelectProps<\n T extends string | number,\n Option extends DefaultOptionType,\n> = OpSelectMultipleProps<T, Option>;\n\ninterface OpTagInputProps<\n T extends string | number,\n Option extends DefaultOptionType,\n> extends Omit<\n SelectProps<T, Option>,\n 'mode | notFoundContent' | 'open' | 'showArrow'\n > {\n gtm?: string;\n testId?: string;\n}\n\nexport const OpTagInput = <\n Value extends string | number,\n Option extends DefaultOptionType = DefaultOptionType,\n>({\n className = '',\n onChange = () => {},\n gtm,\n testId = 'op-tag-input',\n ...opSelectProps\n}: OpTagInputProps<Value, Option>) => {\n const [searchValue, setSearchValue] = useState('');\n\n // Update the search value in state when typing in the input\n const handleSearch = (val: string) => setSearchValue(val);\n\n // Reset the value when a tag is created so we can hide the \"dropdown\"\n const handleChange = (value: Value[], option: Option[]) => {\n setSearchValue('');\n\n // Execute the onChange callback if passed through (normally from Form.Item wrapper)\n onChange(value, option);\n };\n\n /** Normally both pressing \"Enter\" or clicking outside the element would create\n * a tag and fire onChange. However, when the tag is a duplicate, then the tag\n * is not created and onChange is not fired. We must handle these cases manually\n * by clearing the search value on key down and on blur. */\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n setSearchValue('');\n }\n };\n const handleBlur = () => setSearchValue('');\n\n return (\n /** This would be easier if we wrapped in a div and put relative\n * positioning on it so that we could position the \"mock dropdown\"\n * off of the Select wrapper, but that would mess up any classes\n * passed to the Select */\n <>\n <OpSelect\n className={`op-tag-input ${className}`.trim()}\n mode=\"tags\"\n notFoundContent={null}\n open={false}\n suffixIcon={null}\n onSearch={handleSearch}\n onBlur={handleBlur}\n onChange={(value, options) => handleChange(value, options)}\n onKeyDown={handleKeyDown}\n testId={testId}\n gtm={gtm} // Pass the gtm through to OpSelect to handle\n // Other props are passed through to OpSelect\n {...opSelectProps}\n />\n {searchValue && (\n <div className=\"op-tag-input__mock-dropdown\">\n <div className=\"op-tag-input__mock-dropdown-item\">\n <strong>Add</strong> {searchValue}\n </div>\n </div>\n )}\n </>\n );\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormTextButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormTextButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSwitch.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSwitch.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormCheckboxGroup.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormCheckboxGroup.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormRadio.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormRadio.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { RangePickerProps } from 'antd/es/date-picker';\nimport { t } from 'i18next';\nimport { opTime } from 'utils/dates';\n\nexport const generateRangePickerPresets = () =>\n [\n {\n label: t('Today'),\n value: [opTime().startOf('day'), opTime()],\n },\n {\n label: t('Last hour'),\n value: [opTime().subtract(1, 'hour'), opTime()],\n },\n {\n label: t('Last {{count}} hours', { count: 4 }),\n value: [opTime().subtract(4, 'hours'), opTime()],\n },\n {\n label: t('Last {{count}} hours', { count: 12 }),\n value: [opTime().subtract(12, 'hours'), opTime()],\n },\n {\n label: t('Last {{count}} hours', { count: 24 }),\n value: [opTime().subtract(24, 'hours'), opTime()],\n },\n {\n label: t('Last {{count}} days', { count: 2 }),\n value: [opTime().subtract(2, 'days'), opTime()],\n },\n {\n label: t('Last week'),\n value: [opTime().subtract(1, 'week'), opTime()],\n },\n ] satisfies RangePickerProps['presets'];\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpRangePicker.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpRangePicker.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, useState } from 'react';\nimport clsx from 'clsx';\nimport { DATE_TIME_FORMAT, TIME_FORMAT } from 'constants/Dates';\nimport DatePicker from 'antd/es/date-picker';\nimport dayjs from 'dayjs';\nimport { generateRangePickerPresets } from './generateRangePickerPresets';\n\nimport './OpRangePicker.scss';\n\nconst { RangePicker } = DatePicker;\n\ntype RangePickerProps = ComponentProps<typeof RangePicker>;\n\ninterface OpRangePickerProps\n extends Omit<RangePickerProps, 'value' | 'onChange' | 'presets'> {\n className?: string;\n showTime?: boolean;\n showPresets?: boolean;\n presets?: () => RangePickerProps['presets'];\n value?: (string | null)[] | null;\n onChange?: (value: (string | null)[] | null, formatString: string[]) => void;\n gtm?: string;\n testId?: string;\n}\n\nexport const OpRangePicker = ({\n className,\n onChange,\n onClick,\n value,\n showPresets = true,\n presets,\n gtm,\n testId = 'op-range-picker',\n ...rangePickerProps\n}: OpRangePickerProps) => {\n const [finalPresets, setFinalPresets] = useState(\n showPresets ? presets?.() || generateRangePickerPresets() : undefined,\n );\n\n // We want to store array of strings in the form values rather than array of dayjs objects\n const handleChange: RangePickerProps['onChange'] = (values, formatString) => {\n onChange?.(\n values ? values?.map((v) => (v ? v.toISOString() : null)) : null,\n formatString,\n );\n };\n\n const handleClick: RangePickerProps['onClick'] = (event) => {\n onClick?.(event);\n setFinalPresets(\n showPresets ? presets?.() || generateRangePickerPresets() : undefined,\n );\n };\n\n // We need to convert the now stored array of strings to array dayjs objects\n const finalValue = value\n ? value.map((v) => (v ? dayjs(v) : undefined))\n : undefined;\n\n return (\n <RangePicker\n className={clsx('op-range-picker', className)}\n showTime={{ format: TIME_FORMAT }}\n format={DATE_TIME_FORMAT}\n value={finalValue as RangePickerProps['value']}\n onChange={handleChange}\n onClick={handleClick}\n presets={finalPresets}\n data-testid={testId}\n data-gtm={gtm}\n {...rangePickerProps}\n />\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpDataFetchSelect } from 'new-components/DLS/OpDataFetchSelect/OpDataFetchSelect';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\nimport { SelectableValueTypes } from '../../../OpSelect/OpSelect';\n\ntype OpFormDataFetchSelectProps<\n Value extends SelectableValueTypes,\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n> = Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'initialValue'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n> &\n ComponentProps<typeof OpDataFetchSelect<Value, T, SelectData>> & {\n formItemClassName?: string;\n isLoading?: boolean;\n };\n\nexport const OpFormDataFetchSelect = <\n Value extends SelectableValueTypes,\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n>({\n // Form Item props\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n formItemClassName,\n initialValue,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...selectProps\n}: OpFormDataFetchSelectProps<Value, T, SelectData>) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const opFormItemTestId = testId\n ? `${testId}-op-form-item`\n : typeof label === 'string'\n ? `${label}-op-form-item`\n : undefined;\n const uuid = uuidv4();\n const opSelectId = `op-data-fetch-select-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-data-fetch-select', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n initialValue={initialValue}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={opFormItemTestId}\n {...(!name && { htmlFor: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpDataFetchSelect<Value, T, SelectData>\n disabled={isReadOnly || disabled}\n {...(!name && { id: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...selectProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","export const renderNamespace = (\n identity: Api.Response['describeUser']['identity'],\n) =>\n identity?.namespace?.identityProvider?.identityProviderType?.name ||\n identity?.namespace?.nickname ||\n '???';\n","import { renderNamespace } from 'new-components/forms/LockdownUserConfigForm/helpers';\nimport { useIsRestrictedBySiteSpecificRole } from 'utils/customHooks/useIsRestrictedBySiteSpecificRole';\nimport { useTranslation } from 'react-i18next';\nimport { OpSiteSpecificUserDataFetchSelectProps } from './types';\nimport { OpDataFetchSelect } from '../OpDataFetchSelect/OpDataFetchSelect';\nimport { OpTooltip } from '../OpTooltip/OpTooltip';\n\n/**\n * Component that wraps `OpDataFetchSelect` to fetch and display users that would\n * normally not have data due to site-specific access limitations.\n *\n * @param {OpSiteSpecificUserDataFetchSelectProps} props - The properties for the component.\n * @param {string} props.orgId - The organization ID used to fetch site data.\n * @param {object} props.opDataFetchSelectProps - Additional properties passed to `OpDataFetchSelect`.\n *\n * @returns {JSX.Element} The rendered `OpSiteSpecificUserDataFetchSelect` component.\n *\n * @remarks\n * It uses the `useIsRestrictedBySiteSpecificRole` hook to determine if the user has\n * site-specific restrictions and modifies the options and labels accordingly.\n * The `createDisabledOption` function disables options for users restricted by site-specific roles\n * the `createOptionLabel` function displays a tooltip with the user's email and namespace or a\n * restriction message if the user is restricted.\n */\nexport const OpSiteSpecificUserDataFetchSelect = ({\n orgId,\n ...opDataFetchSelectProps\n}: OpSiteSpecificUserDataFetchSelectProps) => {\n const { t } = useTranslation();\n const checkSiteSpecificRoleRestriction =\n useIsRestrictedBySiteSpecificRole(orgId);\n\n return (\n <OpDataFetchSelect\n queryOptions={{\n apiEndpointName: 'listUsers',\n parameters: [\n orgId,\n { filter: 'status:(!=I)', options: 'withUserSites' },\n ],\n }}\n fetchAllInitialValues={{\n /**\n * Pass ignoreSiteSpecificAccess to fetch all users so that we can create options for\n * any users that may have been restricted by site-specific access. Creating the options\n * allows us to display the user name as well as disabling the option if the user has\n * site-specific restrictions.\n */\n queryParamOverrides: {\n options: 'withUserSites,ignoreSiteSpecificAccess',\n },\n }}\n createDisabledOption={({ sites }) =>\n checkSiteSpecificRoleRestriction(sites?.map(({ id }) => id))\n }\n // eslint-disable-next-line react/no-unstable-nested-components\n createOptionLabel={({ id: userId, identity, sites }) => (\n <OpTooltip\n title={\n checkSiteSpecificRoleRestriction(sites?.map(({ id }) => id))\n ? t('Your site-specific role prevents management of this user')\n : `${identity?.email} (${renderNamespace(identity)})`\n }\n >\n {identity?.fullName || identity?.email || userId}\n </OpTooltip>\n )}\n {...opDataFetchSelectProps}\n />\n );\n};\n","import { useIsRestrictedBySiteSpecificRole } from 'utils/customHooks/useIsRestrictedBySiteSpecificRole';\nimport { useTranslation } from 'react-i18next';\nimport { OpSiteSpecificSiteDataFetchSelectProps } from './types';\nimport { OpDataFetchSelect } from '../OpDataFetchSelect/OpDataFetchSelect';\nimport { OpTooltip } from '../OpTooltip/OpTooltip';\n\n/**\n * Component that wraps `OpDataFetchSelect` to fetch and display sites that would\n * normally not have data due to site-specific access limitations.\n *\n * @param {OpSiteSpecificSiteDataFetchSelectProps} props - The properties for the component.\n * @param {string} props.orgId - The organization ID used to fetch site data.\n * @param {object} props.opDataFetchSelectProps - Additional properties passed to `OpDataFetchSelect`.\n *\n * @returns {JSX.Element} The rendered `OpSiteSpecificSiteDataFetchSelect` component.\n *\n * @remarks\n * It uses the `useIsRestrictedBySiteSpecificRole` hook to determine if the site has\n * site-specific restrictions and modifies the options and labels accordingly.\n * The `createDisabledOption` function disables options for users restricted by site-specific roles\n * the `createOptionLabel` function displays a tooltip with the user's email and namespace or a\n * restriction message if the user is restricted.\n */\nexport const OpSiteSpecificSiteDataFetchSelect = ({\n orgId,\n ...opDataFetchSelectProps\n}: OpSiteSpecificSiteDataFetchSelectProps) => {\n const { t } = useTranslation();\n const checkSiteSpecificRoleRestriction =\n useIsRestrictedBySiteSpecificRole(orgId);\n\n return (\n <OpDataFetchSelect\n queryOptions={{\n apiEndpointName: 'listSites',\n parameters: [orgId],\n }}\n fetchAllInitialValues={{\n /**\n * Pass ignoreSiteSpecificAccess to fetch all sites so that we can create options for\n * any sites that may have been restricted by site-specific access. Creating the options\n * allows us to display the site name as well as disabling the option if the site has\n * site-specific restrictions.\n */\n queryParamOverrides: {\n options: 'ignoreSiteSpecificAccess',\n },\n }}\n createDisabledOption={({ id }) => checkSiteSpecificRoleRestriction([id])}\n // eslint-disable-next-line react/no-unstable-nested-components\n createOptionLabel={({ id, name }) => (\n <OpTooltip\n title={\n checkSiteSpecificRoleRestriction([id])\n ? t('Your site-specific role prevents management of this site')\n : null\n }\n >\n {name}\n </OpTooltip>\n )}\n {...opDataFetchSelectProps}\n />\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTransfer.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpTransfer.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport Transfer from 'antd/es/transfer';\n\nimport './OpTransfer.scss';\n\ninterface OpTransferProps extends ComponentProps<typeof Transfer> {\n testId?: string;\n}\n\nexport const OpTransfer = ({\n className,\n testId = 'op-transfer',\n ...elementProps\n}: OpTransferProps) => {\n return (\n // Currently antd isnt supporting data-testid being directly added to the component\n <div data-testid={testId}>\n <Transfer className={clsx('op-transfer', className)} {...elementProps} />\n </div>\n );\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDataFetchTransfer.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDataFetchTransfer.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import {\n ComponentProps,\n ReactNode,\n useEffect,\n useRef,\n useState,\n Key,\n} from 'react';\nimport { UseOpQueryOptions, useOpQuery } from 'utils/customHooks/useOpQuery';\nimport difference from 'lodash/difference';\nimport debounce from 'lodash/debounce';\nimport differenceBy from 'lodash/differenceBy';\nimport { useTranslation } from 'react-i18next';\nimport clsx from 'clsx';\nimport uniqBy from 'lodash/uniqBy';\nimport { ensurePayloadAndQuery } from 'utils/ensurePayloadAndQuery';\nimport { OpTag } from '../OpTag/OpTag';\nimport { OpTransfer } from '../OpTransfer/OpTransfer';\n\nimport './OpDataFetchTransfer.scss';\n\ninterface DataParams<T extends keyof Api.ClientSpec> {\n queryOptions: UseOpQueryOptions<T>;\n createKey?: (item: Record<string, any>) => string;\n createTitle?: (item: Record<string, any>) => string;\n createDescription?: (item: Record<string, any>) => string;\n createDisabled?: (item: Record<string, any>) => boolean;\n}\n\ninterface RecordType {\n key?: Key;\n title?: string;\n description?: string;\n disabled?: boolean;\n}\n\ninterface Queries {\n limit?: number;\n offset?: number;\n sort?: string;\n order?: string;\n q?: string;\n filter?: string;\n options?: string;\n}\n\ninterface OpDataFetchTransferProps<\n T extends keyof Api.ClientSpec,\n U extends keyof Api.ClientSpec,\n> extends Omit<ComponentProps<typeof OpTransfer>, 'onChange'> {\n availableItemsParams: DataParams<T>;\n existingItemsParams: DataParams<U>;\n createLabel: (record: RecordType) => ReactNode;\n existingItemsLabel?: string;\n testId?: string;\n onChange?: (idsToAddAndRemove: { add: number[]; remove: number[] }) => void;\n}\n\nconst appendQueriesInQueryOptions = <T extends keyof Api.ClientSpec>(\n queryOptions: UseOpQueryOptions<T>,\n queriesToAppend: Queries,\n) => {\n const { parametersArray, withQuery } = ensurePayloadAndQuery(\n queryOptions.apiEndpointName,\n queryOptions.parameters,\n );\n if (withQuery) {\n // Find the index of the queries (last object)\n const queriesIndex = parametersArray.findLastIndex(\n (param: any) => typeof param === 'object',\n );\n\n if (queriesIndex === -1) {\n // ensurePayloadAndQuery guarantees the presence of a queries object, so throw since something is way off...\n throw new Error(\n `Critical: ensurePayloadAndQuery did not ensure a query object for API endpoint ${queryOptions.apiEndpointName}`,\n );\n }\n\n parametersArray[queriesIndex] = {\n ...(parametersArray[queriesIndex] as Queries),\n ...queriesToAppend,\n } satisfies Queries;\n }\n\n return {\n ...queryOptions,\n parameters: parametersArray,\n } as UseOpQueryOptions<T>;\n};\n\nexport const OpDataFetchTransfer = <\n T extends keyof Api.ClientSpec,\n U extends keyof Api.ClientSpec,\n>({\n className = '',\n testId = 'op-data-fetch-transfer',\n availableItemsParams,\n existingItemsParams,\n createLabel = (record: RecordType) => record.title,\n existingItemsLabel,\n onChange: onChangeProp,\n\n // Props passed through to OpTransfer\n ...opTransferProps\n}: OpDataFetchTransferProps<T, U>) => {\n const { t } = useTranslation();\n\n const [availableDataSource, setAvailableDataSource] = useState<RecordType[]>(\n [],\n );\n const [existingDataSource, setExistingDataSource] = useState<RecordType[]>(\n [],\n );\n const [availableTotalItems, setAvailableTotalItems] = useState<number>();\n const [existingTotalItems, setExistingTotalItems] = useState<number>();\n const [availableItemsQuery, setAvailableItemsQuery] = useState<string>();\n const [existingItemsQuery, setExistingItemsQuery] = useState<string>();\n const [targetKeys, setTargetKeys] = useState<Key[]>([]);\n const addedItems = useRef<RecordType[]>([]);\n const removedItems = useRef<RecordType[]>([]);\n\n const { data: availableItemsHeliumResponse } = useOpQuery(\n appendQueriesInQueryOptions<T>(availableItemsParams.queryOptions, {\n limit: 100 + addedItems.current.length, // Makes sure there are always items (if more than 50 in db)\n ...(availableItemsQuery && { q: availableItemsQuery }),\n }),\n );\n const { data: existingItemsHeliumResponse } = useOpQuery(\n appendQueriesInQueryOptions<U>(existingItemsParams.queryOptions, {\n limit: 50 + removedItems.current.length, // Makes sure there are always items (if more than 50 in db)\n ...(existingItemsQuery && { q: existingItemsQuery }),\n }),\n );\n\n // Cleanup\n useEffect(\n () => () => {\n addedItems.current = [];\n removedItems.current = [];\n },\n [],\n );\n\n // Set the existingDataSource\n useEffect(() => {\n const existingItemsData = existingItemsHeliumResponse?.json?.data;\n\n if (Array.isArray(existingItemsData)) {\n setExistingTotalItems(existingItemsHeliumResponse?.json?.totalCount);\n\n setExistingDataSource(() =>\n uniqBy(\n existingItemsData.map((item) => ({\n key: existingItemsParams.createKey?.(item) || String(item.id),\n title: existingItemsParams.createTitle?.(item) || String(item.name),\n description: existingItemsParams.createDescription?.(item),\n disabled: existingItemsParams.createDisabled?.(item),\n })),\n 'key',\n ),\n );\n\n // Add group users to targetKeys\n setTargetKeys(\n existingItemsData\n .map(\n (item) => existingItemsParams.createKey?.(item) || String(item.id),\n )\n .filter(\n (key) =>\n key &&\n !removedItems.current\n .map(({ key: removedItemKey }) => removedItemKey)\n .includes(key),\n ),\n );\n }\n }, [\n existingItemsHeliumResponse?.json?.data,\n existingItemsHeliumResponse?.json?.totalCount,\n existingItemsParams,\n ]);\n\n // TODO - persist removed item on available when not in available or existing fetched data\n // Set the availableDataSource\n useEffect(() => {\n const availableItemsData = availableItemsHeliumResponse?.json?.data;\n\n if (Array.isArray(availableItemsData)) {\n setAvailableTotalItems(\n (availableItemsHeliumResponse?.json?.totalCount || 0) -\n (existingItemsHeliumResponse?.json?.totalCount || 0),\n );\n\n setAvailableDataSource(() =>\n uniqBy(\n availableItemsData.map((item) => ({\n key: availableItemsParams.createKey?.(item) || String(item.id),\n title:\n availableItemsParams.createTitle?.(item) || String(item.name),\n description: availableItemsParams.createDescription?.(item),\n })),\n 'key',\n ),\n );\n }\n }, [\n availableItemsHeliumResponse?.json?.data,\n availableItemsHeliumResponse?.json?.totalCount,\n availableItemsParams,\n existingItemsHeliumResponse?.json?.totalCount,\n ]);\n\n const onChange: ComponentProps<typeof OpTransfer>['onChange'] = (\n newTargetKeys,\n direction,\n moveKeys,\n ) => {\n // Update targetKeys\n setTargetKeys(newTargetKeys);\n\n if (direction === 'right') {\n // Only add tag if wasn't there originally\n const moveKeysNotInRemoveKeys = difference(\n moveKeys,\n removedItems.current.map(({ key }) => key),\n );\n\n const newAddedItems = [\n ...addedItems.current,\n ...dataSource.filter(({ key }) =>\n moveKeysNotInRemoveKeys.includes(key),\n ),\n ];\n const newRemovedItems = differenceBy(\n removedItems.current,\n dataSource.filter(({ key }) => key && moveKeys.includes(key)),\n 'key',\n );\n\n onChangeProp?.({\n add: newAddedItems.map(({ key }) => Number(key)),\n remove: newRemovedItems.map(({ key }) => Number(key)),\n });\n\n addedItems.current = newAddedItems;\n\n // Remove old tags\n removedItems.current = newRemovedItems;\n } else {\n // Only add tag if wasn't there originally\n const moveKeysNotInAddKeys = difference(\n moveKeys,\n addedItems.current.map(({ key }) => key),\n );\n\n const newRemovedItems = [\n ...removedItems.current,\n ...dataSource.filter(({ key }) => moveKeysNotInAddKeys.includes(key)),\n ];\n const newAddedItems = differenceBy(\n addedItems.current,\n dataSource.filter(({ key }) => key && moveKeys.includes(key)),\n 'key',\n );\n\n onChangeProp?.({\n remove: newRemovedItems.map(({ key }) => Number(key)),\n add: newAddedItems.map(({ key }) => Number(key)),\n });\n\n removedItems.current = newRemovedItems;\n\n // Remove old tags\n addedItems.current = newAddedItems;\n }\n };\n\n const onSearch = debounce((direction, value) => {\n if (direction === 'left') {\n setAvailableItemsQuery(value);\n } else {\n setExistingItemsQuery(value);\n }\n }, 300);\n\n // DataSource is the combined responses from available and existing item endpoints\n let dataSource = availableDataSource.concat(existingDataSource);\n\n // If there is an existing items query, add removed items to the end of the dataSource\n if (existingItemsQuery) {\n dataSource.push(...removedItems.current);\n }\n\n // Ensure added items persist in the dataSource\n if (availableItemsQuery) {\n dataSource.push(...addedItems.current);\n } else {\n // Add added items to the dataSource if not already present\n const addedItemsNotInDataSource = addedItems.current.filter(\n ({ key }) => !dataSource.some((item) => item.key === key),\n );\n dataSource.push(...addedItemsNotInDataSource);\n }\n\n // Make sure dataSource items are unique\n dataSource = uniqBy(dataSource, 'key');\n\n // Sort the dataSource so removed items are at top of available list\n dataSource = dataSource.sort((a, b) => {\n // Sorted so removed items are at top of available list\n const aKeyIndex = a.key\n ? removedItems.current.map(({ key }) => key).indexOf(a.key)\n : -1;\n const bKeyIndex = b.key\n ? removedItems.current.map(({ key }) => key).indexOf(b.key)\n : -1;\n\n if (aKeyIndex !== -1 && bKeyIndex === -1) {\n // a's key is in removedItems, but b's key is not\n return -1;\n }\n if (aKeyIndex === -1 && bKeyIndex !== -1) {\n // b's key is in removedItems, but a's key is not\n return 1;\n }\n // Both a's key and b's key are in removedItems or both are not in removedItems\n // Preserve the original order\n return 0;\n });\n\n // Ensure targetKeys includes all added items\n const uniqueTargetKeys = [\n ...new Set(addedItems.current.map(({ key }) => key!).concat(targetKeys)),\n ];\n\n return (\n <OpTransfer\n className={clsx('op-data-fetch-transfer', className)}\n dataSource={dataSource}\n showSearch\n testId={testId}\n selectAllLabels={[\n ({\n selectedCount,\n totalCount,\n }: {\n selectedCount: number;\n totalCount: number;\n }) => {\n const count =\n selectedCount > 0\n ? t('{{count}}/{{totalCount}} items selected', {\n count: selectedCount,\n totalCount,\n })\n : t('Showing {{count}} items', { count: totalCount });\n\n const total =\n availableTotalItems && totalCount !== availableTotalItems\n ? `(${t('{{availableTotalItems}} available', {\n availableTotalItems,\n })})`\n : '';\n\n return `${count} ${total}`;\n },\n ({\n selectedCount,\n totalCount,\n }: {\n selectedCount: number;\n totalCount: number;\n }) => {\n const count =\n selectedCount > 0\n ? t('{{count}}/{{totalCount}} items selected', {\n count: selectedCount,\n totalCount,\n })\n : t('Showing {{count}} items', { count: totalCount });\n\n const total = existingTotalItems\n ? `(${t('{{existingTotalItems}} {{existingItemsLabel}}', {\n existingTotalItems:\n existingTotalItems +\n addedItems.current.length -\n removedItems.current.length,\n existingItemsLabel: existingItemsLabel || t('total'),\n })})`\n : '';\n\n return `${count} ${total}`;\n },\n ]}\n listStyle={{\n width: '100%',\n height: 500,\n overflow: 'hidden', // Keeps overall width constrained to drawer width\n }}\n targetKeys={uniqueTargetKeys}\n onChange={onChange}\n onSearch={onSearch}\n filterOption={(inputValue, option) => {\n return option.title!.toLowerCase().includes(inputValue.toLowerCase());\n }}\n render={(record: RecordType) => {\n const { key, title } = record;\n\n return {\n label: (\n <div className=\"op-data-fetch-transfer__label-wrapper\">\n <div>{createLabel(record)}</div>\n {key &&\n addedItems.current\n .map(({ key: addedItemKey }) => addedItemKey)\n .includes(key) ? (\n <OpTag className=\"op-data-fetch-transfer__tag\">added</OpTag>\n ) : null}\n {key &&\n removedItems.current\n .map(({ key: removedItemKey }) => removedItemKey)\n .includes(key) ? (\n <OpTag className=\"op-data-fetch-transfer__tag\">removed</OpTag>\n ) : null}\n </div>\n ),\n value: title || '--',\n };\n }}\n {...opTransferProps}\n />\n );\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormDataFetchTransfer.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormDataFetchTransfer.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { useTranslation } from 'react-i18next';\nimport { useShowSitePartitioningItems } from 'utils/customHooks/useShowSitePartitioningItems';\nimport intersection from 'lodash/intersection';\nimport { useOpQuery } from 'utils/customHooks/useOpQuery';\nimport { ComponentProps } from 'react';\nimport { OpSiteSpecificUserDataFetchTransferProps } from './types';\nimport { OpTooltip } from '../OpTooltip/OpTooltip';\nimport { OpDataFetchTransfer } from '../OpDataFetchTransfer/OpDataFetchTransfer';\nimport { OpText } from '../OpText/OpText';\n\n/**\n * Component that wraps `OpDataFetchTransfer` to fetch and display users in a way appropriate for\n * site specific access when enabled.\n *\n * @param {OpSiteSpecificUserDataFetchTransferProps} props - The properties for the component.\n * @param {string} props.orgId - The organization ID used to fetch site data.\n * @param {object} props.opDataFetchTransferProps - Additional properties passed to `OpDataFetchTransfer`.\n *\n * @returns {JSX.Element} The rendered `OpSiteSpecificUserDataFetchTransfer` component.\n */\nexport const OpSiteSpecificUserDataFetchTransfer = ({\n orgId,\n existingItemsQueryOptions,\n existingItemsLabel,\n ...opSiteSpecificUserDataFetchTransferProps\n}: OpSiteSpecificUserDataFetchTransferProps) => {\n const { t } = useTranslation();\n\n const { isShowingSitePartitioningItems } =\n useShowSitePartitioningItems(orgId);\n\n const { data: sitesData } = useOpQuery({\n apiEndpointName: 'listSites',\n parameters: [orgId],\n select: (data) => data.json.data,\n });\n\n const createLabel: ComponentProps<\n typeof OpDataFetchTransfer\n >['createLabel'] = (record) => (\n <OpTooltip\n title={\n record.disabled\n ? t('Your site-specific role prevents management of this user')\n : null\n }\n placement=\"right\"\n >\n <div>\n <OpText ellipsis>\n {record.title !== '--'\n ? `${record.title} (${record.key})`\n : `(${record.key})`}\n </OpText>\n <OpText ellipsis>{record.description}</OpText>\n </div>\n </OpTooltip>\n );\n\n return (\n <OpDataFetchTransfer\n // TODO - Find a way to prevent users that can not be added (e.g. users from the error message: \"At least one user (id 15346 - Biz Dev) cannot be added to this group because the user belongs to an identity provider that has \"auto-assign to groups\" and \"auto-remove users from groups\" options turned on.\" -org 338 in DEV)\n availableItemsParams={{\n queryOptions: {\n apiEndpointName: 'listUsers',\n parameters: [\n orgId,\n {\n preFilter: 'status:(!=I)',\n ...(isShowingSitePartitioningItems && {\n options: 'withUserSites',\n }),\n },\n ],\n },\n createTitle: (item) => item.identity.fullName || '--',\n createDescription: (item) => item.identity.email,\n }}\n existingItemsParams={{\n queryOptions: existingItemsQueryOptions,\n createTitle: (item) => item.identity.fullName || '--',\n createDescription: (item) => item.identity.email,\n createDisabled: (item) => {\n if (!isShowingSitePartitioningItems) {\n return false;\n }\n\n const userSiteIds =\n item.sites?.map(({ id }: { id: number }) => id) || [];\n const siteIds = sitesData?.map(({ id }: { id: number }) => id) || [];\n\n /**\n * If the user has site(s) assigned to it and the signed in user\n * doesn't have access to any of those sites, disable the user\n */\n return (\n userSiteIds.length > 0 && !intersection(userSiteIds, siteIds).length\n );\n },\n }}\n createLabel={createLabel}\n existingItemsLabel={existingItemsLabel}\n // Custom filter option that checks both title and description\n filterOption={(inputValue, option) => {\n if (option.title && option.description) {\n return (\n option.title.toLowerCase().indexOf(inputValue.toLowerCase()) > -1 ||\n option.description.toLowerCase().indexOf(inputValue.toLowerCase()) >\n -1\n );\n }\n\n return false;\n }}\n {...opSiteSpecificUserDataFetchTransferProps}\n />\n );\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSiteSpecificUserDataFetchTransfer.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSiteSpecificUserDataFetchTransfer.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, useContext } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpSiteSpecificUserDataFetchTransfer } from 'new-components/DLS/OpSiteSpecificUserDataFetchTransfer/OpSiteSpecificUserDataFetchTransfer';\nimport { OpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormSiteSpecificUserDataFetchTransfer.scss';\n\ninterface OpFormSiteSpecificUserDataFetchTransferProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n ComponentProps<typeof OpSiteSpecificUserDataFetchTransfer> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormSiteSpecificUserDataFetchTransfer = ({\n // Form Item props\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n formItemClassName,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...transferProps\n}: OpFormSiteSpecificUserDataFetchTransferProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useContext(OpFormContext);\n\n return (\n <OpForm.Item\n className={clsx(\n 'op-form-site-specific-user-data-fetch-transfer',\n formItemClassName,\n )}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpSiteSpecificUserDataFetchTransfer\n disabled={isReadOnly || disabled}\n {...transferProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import clsx from 'clsx';\nimport { OpSelect, OpSelectSingleProps } from '../OpSelect/OpSelect';\nimport timezones from './timezones.json';\n\nexport const OpTimezonePicker = ({\n testId = 'op-timezone-picker',\n gtm,\n children,\n className,\n ...opSelectProps\n}: Omit<OpSelectSingleProps<string, any>, 'options'>) => {\n const timezoneOptions = Object.entries(timezones).map(([label, value]) => ({\n value,\n label,\n }));\n\n return (\n <OpSelect\n className={clsx('op-timezone-picker', className)}\n testId={testId}\n gtm={gtm}\n showSearch\n {...opSelectProps}\n options={timezoneOptions}\n />\n );\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSlider.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormSlider.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport ColorPicker from 'antd/es/color-picker';\nimport clsx from 'clsx';\n\ninterface OpColorPickerProps extends ComponentProps<typeof ColorPicker> {\n testId?: string;\n}\n\nexport const OpColorPicker = ({\n className,\n testId = 'op-color-picker',\n ...colorPickerProps\n}: OpColorPickerProps) => {\n return (\n <ColorPicker\n className={clsx('op-color-picker', className)}\n data-testid={testId}\n {...colorPickerProps}\n />\n );\n};\n","import { MouseEvent } from 'react';\n\nexport const createPolygonPointCoordinates = (\n e: MouseEvent<HTMLDivElement>,\n containerWidth: number,\n containerHeight: number,\n) => {\n const { left, top } = (e.target as HTMLDivElement).getBoundingClientRect();\n\n const x = Math.floor(\n Math.min(9999, Math.max(0, ((e.clientX - left) / containerWidth) * 10000)),\n ); // x position within the element (valid values 0 - 9999)\n const y = Math.floor(\n Math.min(9999, Math.max(0, ((e.clientY - top) / containerHeight) * 10000)),\n ); // y position within the element (valid values 0 - 9999)\n\n return [x, y];\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoRegion.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoRegion.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import clsx from 'clsx';\n\nimport './VideoRegion.scss';\n\ninterface VideoRegionProps {\n polygonPoints?: string; // x0,y0,x1,y1,x2,y2,x3,y3 (topLeft counterClockwise / value 0 - 9999 [as % of total width/height])\n containerWidth: number;\n containerHeight?: number;\n type?: 'privacyMask' | 'detectionWindow';\n}\n\nexport const VideoRegion = ({\n polygonPoints,\n containerWidth,\n containerHeight = containerWidth * 0.75,\n type,\n}: VideoRegionProps) => {\n const classes = clsx('video-region', {\n 'video-region__privacy-mask': type === 'privacyMask',\n 'video-region__detection-window': type === 'detectionWindow',\n });\n\n const [x0 = 0, y0 = 0, _x1, y1 = 0, _x2, _y2, x3 = 0, _y3] = (\n polygonPoints || ''\n )\n .split(',')\n .map((value) => (Number.isNaN(Number(value)) ? 0 : Number(value)));\n\n const style = {\n left: (x0 * containerWidth) / 10000,\n top: (y0 * containerHeight) / 10000,\n width: ((x3 - x0) * containerWidth) / 10000,\n height: ((y1 - y0) * containerHeight) / 10000,\n };\n\n return <div className={classes} style={style} />;\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoRegionSelect.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoRegionSelect.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import {\n MouseEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport OpVideoPlayer from 'containers/OpVideoPlayer';\nimport { useTranslation } from 'react-i18next';\nimport { OpInfo } from 'new-components/DLS/OpInfo/OpInfo';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { OpModal } from 'new-components/DLS/OpModal/OpModal';\nimport clsx from 'clsx';\nimport throttle from 'lodash/throttle';\nimport { OpTooltip } from 'new-components/DLS/OpTooltip/OpTooltip';\nimport { createPolygonPointCoordinates } from './createPolygonPointCoordinates';\nimport { VideoRegion } from './VideoRegion';\n\nimport './VideoRegionSelect.scss';\n\nexport interface Polygons {\n detectionWindowPolygons: { polygon?: string }[];\n privacyMaskPolygons: { polygon?: string }[];\n}\n\ninterface VideoRegionSelectorProps {\n opvideoDeviceId?: number | null;\n privacyMaskMaxCount?: number | null;\n detectionWindowMaxCount?: number | null;\n onChange?: (e: { target: { value: Polygons } }) => void;\n value?: Polygons;\n disabled?: boolean;\n}\n\nexport const VideoRegionSelect = ({\n onChange,\n opvideoDeviceId,\n privacyMaskMaxCount = 5,\n detectionWindowMaxCount = 5,\n value,\n disabled,\n}: VideoRegionSelectorProps) => {\n const { t } = useTranslation();\n\n const { detectionWindowPolygons = [], privacyMaskPolygons = [] } =\n value || {};\n\n const videoWrapperRef = useRef<HTMLDivElement>(null);\n\n const [, forceUpdate] = useState({});\n\n const [isFormingPolygon, setIsFormingPolygon] = useState(false);\n const [tempPolygonStartingPosition, setTempPolygonStartingPosition] =\n useState<number[]>();\n const [tempPolygonEndingPosition, setTempPolygonEndingPosition] =\n useState<number[]>();\n\n const [isShowingPolygonTypeChoice, setIsShowingPolygonTypeChoice] =\n useState(false);\n const [videoWidth, setVideoWidth] = useState(0);\n const [videoHeight, setVideoHeight] = useState(0);\n\n /** Watch for changes in the dimensions of the video play wrapper div so\n * that we can create polygons accordingly */\n useEffect(() => {\n // Watch the first element (video player wrapper div)\n const observer = new ResizeObserver(([{ contentRect }]) => {\n setVideoHeight(contentRect.height);\n setVideoWidth(contentRect.width);\n });\n\n if (videoWrapperRef.current) {\n // Start observing the div element for size changes\n observer.observe(videoWrapperRef.current);\n }\n\n // Clean up the observer when the component is unmounted\n return () => {\n observer.disconnect();\n };\n }, []);\n\n const tempPolygonPoints = useMemo(() => {\n if (!tempPolygonStartingPosition || !tempPolygonEndingPosition) {\n return undefined;\n }\n\n // Top left\n const x0 = Math.min(\n tempPolygonStartingPosition[0],\n tempPolygonEndingPosition[0],\n );\n const y0 = Math.min(\n tempPolygonStartingPosition[1],\n tempPolygonEndingPosition[1],\n );\n\n // Bottom right\n const x2 = Math.max(\n tempPolygonStartingPosition[0],\n tempPolygonEndingPosition[0],\n );\n const y2 = Math.max(\n tempPolygonStartingPosition[1],\n tempPolygonEndingPosition[1],\n );\n\n // Bottom left\n const x1 = x0;\n const y1 = y2;\n\n // Top right\n const x3 = x2;\n const y3 = y0;\n\n return `${x0},${y0},${x1},${y1},${x2},${y2},${x3},${y3}`;\n }, [tempPolygonStartingPosition, tempPolygonEndingPosition]);\n\n const handleMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n setIsShowingPolygonTypeChoice(false);\n setIsFormingPolygon(true);\n setTempPolygonEndingPosition(undefined);\n setTempPolygonStartingPosition(\n createPolygonPointCoordinates(e, videoWidth, videoHeight),\n );\n };\n\n const handleMouseMove = useMemo(() => {\n if (!isFormingPolygon) return () => null;\n\n // By using throttle we can limit number of times we set the coordinates and hence renders\n const throttled = throttle((e: MouseEvent<HTMLDivElement>) => {\n setTempPolygonEndingPosition(\n createPolygonPointCoordinates(e, videoWidth, videoHeight),\n );\n }, 40);\n\n return (e: MouseEvent<HTMLDivElement>) => {\n e.persist();\n throttled(e);\n };\n }, [isFormingPolygon, videoWidth, videoHeight]);\n\n const handleMouseUp = useCallback(() => {\n if (isFormingPolygon) {\n setIsFormingPolygon(false);\n if (tempPolygonPoints) {\n setIsShowingPolygonTypeChoice(true);\n }\n }\n }, [isFormingPolygon, tempPolygonPoints]);\n\n const handlePolygonTypeSelection = ({\n currentTarget: { id },\n }: MouseEvent<HTMLButtonElement>) => {\n setIsShowingPolygonTypeChoice(false);\n\n // Reset temp polygon positions (in doing so will also close selection area)\n setTempPolygonStartingPosition(undefined);\n setTempPolygonEndingPosition(undefined);\n\n if (!onChange) {\n return;\n }\n\n if (id === 'privacyMask') {\n const newValue: Polygons = { ...value! };\n newValue.privacyMaskPolygons.push({ polygon: tempPolygonPoints });\n onChange({ target: { value: newValue } });\n } else if (id === 'detectionWindow') {\n const newValue: Polygons = { ...value! };\n newValue.detectionWindowPolygons.push({ polygon: tempPolygonPoints });\n onChange({ target: { value: newValue } });\n }\n };\n\n const handleClear = ({\n currentTarget: { id },\n }: MouseEvent<HTMLButtonElement>) => {\n if (!onChange) {\n return;\n }\n\n if (id === 'privacyMask') {\n const newValue: Polygons = { ...value! };\n newValue.privacyMaskPolygons = [];\n onChange({ target: { value: newValue } });\n forceUpdate({});\n } else {\n const newValue: Polygons = { ...value! };\n newValue.detectionWindowPolygons = [];\n onChange({ target: { value: newValue } });\n forceUpdate({});\n }\n };\n\n /** If mouse is moved outside the component we still want to handle the\n * mouseUp event. This makes it much easier to create a box the extends\n * all the way to the edge. */\n useEffect(() => {\n window.addEventListener('mouseup', handleMouseUp);\n return () => {\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [handleMouseUp]);\n\n return (\n <div className=\"video-region-select\">\n <OpInfo\n className=\"video-region-select__info\"\n message={t(\n 'Click and drag on the feed to add a privacy mask or region of interest',\n )}\n />\n\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <div\n className={clsx('video-region-select__video-wrapper', {\n 'video-region-select__video-wrapper--read-only': disabled,\n })}\n ref={videoWrapperRef}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n role=\"region\"\n >\n <OpVideoPlayer\n isLive\n opvideoDeviceId={opvideoDeviceId}\n controls={false}\n />\n\n {/* These must stay in this order so that overlaps make sense */}\n {detectionWindowPolygons.map(({ polygon: polygonPoints }, index) => (\n <VideoRegion\n key={index}\n polygonPoints={polygonPoints}\n containerWidth={videoWidth}\n containerHeight={videoHeight}\n type=\"detectionWindow\"\n />\n ))}\n {privacyMaskPolygons.map(({ polygon: polygonPoints }, index) => (\n <VideoRegion\n key={index}\n polygonPoints={polygonPoints}\n containerWidth={videoWidth}\n containerHeight={videoHeight}\n type=\"privacyMask\"\n />\n ))}\n {tempPolygonPoints && (\n <VideoRegion\n polygonPoints={tempPolygonPoints}\n containerWidth={videoWidth}\n containerHeight={videoHeight}\n />\n )}\n </div>\n\n {!isShowingPolygonTypeChoice &&\n (privacyMaskPolygons.length > 0 ||\n detectionWindowPolygons.length > 0) && (\n <div className=\"video-region-select__type-choice-button-wrapper\">\n {privacyMaskPolygons.length > 0 && (\n <OpButton\n block\n type=\"primary\"\n id=\"privacyMask\"\n onClick={handleClear}\n >\n {t('Clear privacy masks')}\n </OpButton>\n )}\n {detectionWindowPolygons.length > 0 && (\n <OpButton\n block\n type=\"primary\"\n id=\"detectionWindow\"\n onClick={handleClear}\n >\n {t('Clear regions of interest')}\n </OpButton>\n )}\n </div>\n )}\n\n {/* Selection application */}\n <OpModal\n title={t('How should this selection be applied?')}\n open={isShowingPolygonTypeChoice}\n onCancel={handlePolygonTypeSelection}\n footer={[\n <OpButton key=\"cancel\" onClick={handlePolygonTypeSelection}>\n {t('Cancel')}\n </OpButton>,\n <OpTooltip\n key=\"privacyMask\"\n title={\n (privacyMaskPolygons?.length || 0) < (privacyMaskMaxCount || 5)\n ? null\n : t('Only {{privacyMaskMaxCount}} privacy masks are allowed', {\n privacyMaskMaxCount,\n })\n }\n >\n <OpButton\n disabled={\n (privacyMaskPolygons?.length || 0) >= (privacyMaskMaxCount || 5)\n }\n id=\"privacyMask\"\n type=\"primary\"\n onClick={handlePolygonTypeSelection}\n >\n {t('Privacy mask')}\n </OpButton>\n </OpTooltip>,\n <OpTooltip\n key=\"detectionWindow\"\n title={\n (detectionWindowPolygons?.length || 0) <\n (detectionWindowMaxCount || 5)\n ? null\n : t(\n 'Only {{detectionWindowMaxCount}} regions of interest are allowed',\n { detectionWindowMaxCount },\n )\n }\n >\n <OpButton\n disabled={\n (detectionWindowPolygons?.length || 0) >=\n (detectionWindowMaxCount || 5)\n }\n id=\"detectionWindow\"\n type=\"primary\"\n onClick={handlePolygonTypeSelection}\n >\n {t('Region of interest')}\n </OpButton>\n </OpTooltip>,\n ]}\n />\n </div>\n );\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormVideoRegionSelect.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormVideoRegionSelect.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport VideoCameraOutlined from '@ant-design/icons/VideoCameraOutlined';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\nimport { VideoRegionSelect } from './VideoRegionSelect';\n\nimport './OpFormVideoRegionSelect.scss';\n\ninterface OpFormVideoRegionSelectProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n 'name' | 'label' | 'rules' | 'tooltip'\n >,\n Omit<ComponentProps<typeof VideoRegionSelect>, 'name' | 'tooltip'> {\n formItemClassName?: string;\n isLoading?: boolean;\n showAnnotation?: boolean;\n disabled?: boolean;\n}\n\nexport const OpFormVideoRegionSelect = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules = [],\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n ...elementProps\n}: OpFormVideoRegionSelectProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-video-region-select', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n validateTrigger=\"onSubmit\"\n rules={rules}\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Node\n active\n className=\"op-form-video-region-select__skeleton\"\n >\n <VideoCameraOutlined className=\"op-form-video-region-select__skeleton-icon\" />\n </OpSkeleton.Node>\n ) : (\n <VideoRegionSelect\n disabled={Boolean(isReadOnly || elementProps.disabled)}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","export const replaceEmptyWithNull: (value: any) => any = (value: any) => {\n if (['', undefined, null].includes(value)) {\n return null;\n }\n\n if (Array.isArray(value)) {\n return value.map((item: any) => {\n // Do nothing for empty items in arrays but look at nested arrays and objects\n if (typeof item === 'object' && item !== null) {\n return replaceEmptyWithNull(item);\n }\n\n return item;\n });\n }\n\n if (typeof value === 'object') {\n for (const key in value) {\n // Make sure we aren't affecting any inherited properties\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n // Intentionally replacing empty values with null so we do want to mutate\n // eslint-disable-next-line no-param-reassign\n value[key] = replaceEmptyWithNull(value[key]);\n }\n }\n }\n\n return value;\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpForm.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpForm.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import {\n ComponentProps,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport Form, { FormInstance } from 'antd/es/form';\nimport { t as translate } from 'i18next';\nimport clsx from 'clsx';\nimport Joi from 'joi';\nimport { Store } from 'antd/es/form/interface';\nimport { useTranslation } from 'react-i18next';\nimport { OpFormContext } from './OpFormContext';\nimport { FormButtons } from './FormButtons';\nimport { OpFormInput as Input } from './formComponents/OpFormInput/OpFormInput';\nimport { OpFormLink as Link } from './formComponents/OpFormLink/OpFormLink';\nimport { OpFormInputNumber as InputNumber } from './formComponents/OpFormInputNumber/OpFormInputNumber';\nimport { OpFormInputDuration as InputDuration } from './formComponents/OpFormInputDuration/OpFormInputDuration';\nimport { OpFormPasswordInput as PasswordInput } from './formComponents/OpFormPasswordInput/OpFormPasswordInput';\nimport { OpFormSearchInput as SearchInput } from './formComponents/OpFormSearchInput/OpFormSearchInput';\nimport { OpFormTextAreaInput as TextAreaInput } from './formComponents/OpFormTextAreaInput/OpFormTextAreaInput';\nimport { OpFormPhoneInput as PhoneInput } from './formComponents/OpFormPhoneInput/OpFormPhoneInput';\nimport { OpFormButton as Button } from './formComponents/OpFormButton/OpFormButton';\nimport { OpFormDatePicker as DatePicker } from './formComponents/OpFormDatePicker/OpFormDatePicker';\nimport { OpFormTimePicker as TimePicker } from './formComponents/OpFormTimePicker/OpFormTimePicker';\nimport { OpFormTagInput as TagInput } from './formComponents/OpFormTagInput/OpFormTagInput';\nimport { OpFormTextButton as TextButton } from './formComponents/OpFormTextButton/OpFormTextButton';\nimport { OpFormSelect as Select } from './formComponents/OpFormSelect/OpFormSelect';\nimport { OpFormSwitch as Switch } from './formComponents/OpFormSwitch/OpFormSwitch';\nimport { OpFormImage as Image } from './formComponents/OpFormImage/OpFormImage';\nimport { OpFormCheckbox as Checkbox } from './formComponents/OpFormCheckbox/OpFormCheckbox';\nimport { OpFormCheckboxGroup as CheckboxGroup } from './formComponents/OpFormCheckboxGroup/OpFormCheckboxGroup';\nimport { OpFormRadio as Radio } from './formComponents/OpFormRadio/OpFormRadio';\nimport { OpFormItem as Item } from './formComponents/OpFormItem/OpFormItem';\nimport { OpFormRangePicker as RangePicker } from './formComponents/OpFormRangePicker/OpFormRangePicker';\nimport { OpFormDataFetchSelect as DataFetchSelect } from './formComponents/OpFormDataFetchSelect/OpFormDataFetchSelect';\nimport { OpFormSiteSpecificUserDataFetchSelect as SiteSpecificUserDataFetchSelect } from './formComponents/OpFormSiteSpecificUserDataFetchSelect/OpFormSiteSpecificUserDataFetchSelect';\nimport { OpFormSiteSpecificSiteDataFetchSelect as SiteSpecificSiteDataFetchSelect } from './formComponents/OpFormSiteSpecificSiteDataFetchSelect/OpFormSiteSpecificSiteDataFetchSelect';\nimport { OpFormDataFetchTransfer as DataFetchTransfer } from './formComponents/OpFormDataFetchTransfer/OpFormDataFetchTransfer';\nimport { OpFormSiteSpecificUserDataFetchTransfer as SiteSpecificUserDataFetchTransfer } from './formComponents/OpFormSiteSpecificUserDataFetchTransfer /OpFormSiteSpecificUserDataFetchTransfer';\nimport { OpFormTimezonePicker as TimezonePicker } from './formComponents/OpFormTimezonePicker/OpFormTimezonePicker';\nimport { OpFormCodeEditor as CodeEditor } from './formComponents/OpFormCodeEditor/OpFormCodeEditor';\nimport { OpFormSlider as Slider } from './formComponents/OpFormSlider/OpFormSlider';\nimport { OpFormColorPicker as ColorPicker } from './formComponents/OpFormColorPicker/OpFormColorPicker';\nimport { OpFormHiddenItemForDataSetting as HiddenItemForDataSetting } from './formComponents/OpFormHiddenItemForDataSetting/OpFormHiddenItemForDataSetting';\nimport { OpFormVideoRegionSelect as VideoRegionSelect } from './formComponents/OpFormVideoRegionSelect/OpFormVideoRegionSelect';\nimport { replaceEmptyWithNull } from './helpers/replaceEmptyWithNull';\nimport { useOpFormDrawerContext } from '../OpFormDrawer/OpFormDrawerContext';\n\nimport './OpForm.scss';\n\nexport interface OnSubmitArgs<T extends Store = Store> {\n values: T;\n initialValues?: Store;\n touchedValues: Partial<T>;\n}\n\nexport type FormOnSubmitType<T extends Store = Store> = (\n args: OnSubmitArgs<T>,\n) => void | Promise<void>;\n\nexport type OpFormDefaultButtonType =\n | false\n | {\n submitButtonLabel?: string;\n resetButtonLabel?: string;\n submitButtonIsLoading?: boolean;\n onResetClick?: () => void;\n };\n\nexport type OpFormInstance<T extends Record<string, any>> = FormInstance<T>;\n\ninterface CoreFormProps<T extends Store = Store>\n extends ComponentProps<typeof Form<T>> {\n isLoading?: boolean;\n testId?: string;\n defaultButtons?: OpFormDefaultButtonType;\n shouldWarnChangesBeforeUnload?: boolean;\n gtm?: string;\n}\n\ntype AdditionalFormProps<T extends Store = Store> =\n | {\n isReadOnly: true;\n onSubmit?: FormOnSubmitType<T>;\n hasError?: boolean;\n }\n | {\n isReadOnly?: false;\n onSubmit: FormOnSubmitType<T>;\n /**\n * This prop is here to force the developer to think about any dependency the form relies on that\n * if falsy should not allow you to use the form. For example if there are api calls needed\n * to properly populate the form and one fails, then the form will be in an unreliable state and thus\n * shouldn't be allowed to be use able\n */\n hasError: boolean;\n };\n\nexport type OpFormProps<T extends Store = Store> = CoreFormProps<T> &\n AdditionalFormProps<T> & { form?: FormInstance<T> };\n\nexport const OpForm = <T extends Store = Store>({\n className,\n isLoading = false,\n isReadOnly = false,\n initialValues,\n onSubmit,\n children,\n layout = 'vertical',\n testId = 'op-form',\n form: propsFormRef,\n shouldWarnChangesBeforeUnload = true,\n hasError,\n gtm,\n // When false the submit and reset buttons are hidden\n defaultButtons = {\n submitButtonLabel: translate('Save'),\n submitButtonIsLoading: false,\n },\n ...formProps\n}: OpFormProps<T>) => {\n const { t } = useTranslation();\n\n // Create Form instance to maintain data store\n const [internalFormRef] = Form.useForm<T>();\n\n // Use either the internal form instance or the instance passed in via props\n const form = propsFormRef || internalFormRef;\n\n // Submitting state from form drawer context\n const {\n isSubmitting: isDrawerFormSubmitting,\n setIsSubmitting: setIsDrawerFormSubmitting,\n } = useOpFormDrawerContext();\n\n // Submitting state for the core form\n const [isCoreFormSubmitting, setIsCoreFormSubmitting] = useState(false);\n\n const isSubmitting = isDrawerFormSubmitting || isCoreFormSubmitting;\n const setIsSubmitting = setIsDrawerFormSubmitting || setIsCoreFormSubmitting;\n\n // Validation for hasError prop\n const hasErrorPropValidator = Joi.boolean().required();\n const { error: hasErrorValidationError } =\n hasErrorPropValidator.validate(hasError);\n\n /**\n * This is so that if a change in the form occurs browser tabs can't be closed or\n * reloaded without a confirmation prompt. NOTE: we don't need to remove the listener\n * after form submittal as the fields will revert back to being untouched\n */\n const handleBeforeUnload = useCallback(\n (event: BeforeUnloadEvent) => {\n if (form.isFieldsTouched()) {\n // Recommended\n event.preventDefault();\n\n /**\n * Included for legacy support, e.g. Chrome/Edge < 119\n *\n * Most modern browsers no longer accept a custom message, but a truthy value\n * is needed in general so the default prompt displays\n */\n const confirmationMessage =\n 'You have unsaved changes. Are you sure you want to leave?';\n\n // eslint-disable-next-line no-param-reassign\n event.returnValue = confirmationMessage;\n }\n },\n [form],\n );\n\n useEffect(() => {\n if (\n process.env.NODE_ENV === 'production' &&\n shouldWarnChangesBeforeUnload\n ) {\n window.addEventListener('beforeunload', handleBeforeUnload);\n }\n\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [handleBeforeUnload, shouldWarnChangesBeforeUnload]);\n\n /**\n * When initialValues change (data source is API endpoint data) we reset the fields so the\n * new data is used as the initial values\n * (Ref: https://github.com/ant-design/ant-design/issues/22372)\n *\n * Ultimately ended up using JSON.stringify to determine if the initialValues have changed.\n * This prevents the need to memoize the initialValues when passed to OpForm\n *\n * NOTE1: Tried using useRef to store the value of the previous initialValues, and use lodash\n * isEqual to determine if the values have changed, but this didn't work in cases where the\n * initialValues were mutated in place (e.g. using initialValues.name = 'new name') as useEffect\n * will only rerun when the object reference for a dependency has changed.\n *\n * NOTE2: By doing this we lose form value changes when initialValues change (e.g. when you\n * close a drawer with a form in it).\n */\n const stringifiedInitialValues = JSON.stringify(initialValues);\n useEffect(() => {\n form.resetFields();\n }, [form, stringifiedInitialValues]);\n\n const onFinish = onSubmit\n ? async (values: T) => {\n setIsSubmitting(true);\n\n try {\n /** These are only the values that have been \"touched\" meaning the values have been\n * interacted with. This doesn't necessarily mean changed, as the user could add a\n * letter and then remove it, and it would still be considered touched.\n * We are also transforming any values with empty strings to null as Helium only\n * accepts null at this time. */\n const rawTouchedValues = form.getFieldsValue(\n true,\n ({ touched }) => touched,\n );\n\n const touchedValues = replaceEmptyWithNull(rawTouchedValues);\n\n await onSubmit({\n values, // Current values\n touchedValues, // Values that have been \"touched\"\n initialValues, // Initial form values\n });\n } catch (error) {\n console.error(error);\n } finally {\n setIsSubmitting(false);\n }\n }\n : undefined;\n\n const contextValue = useMemo(\n () => ({\n isDataLoading: isLoading,\n isReadOnly: Boolean(isReadOnly || hasError || hasErrorValidationError),\n isSubmitting,\n setIsSubmitting,\n }),\n [\n hasError,\n hasErrorValidationError,\n isLoading,\n isReadOnly,\n isSubmitting,\n setIsSubmitting,\n ],\n );\n\n return (\n <Form<T>\n form={form}\n initialValues={initialValues}\n layout={layout}\n onFinish={onFinish}\n className={clsx('op-form', className)}\n data-testid={testId}\n scrollToFirstError\n validateMessages={{ required: t('Required') }}\n {...formProps}\n >\n <OpFormContext.Provider value={contextValue}>\n <>\n {children}\n\n {/** Default submit and reset buttons */}\n {defaultButtons && !isReadOnly && (\n <FormButtons\n className=\"op-form__buttons\"\n form={form}\n gtm={gtm}\n isFormLoading={isLoading}\n isSubmitButtonLoading={\n isSubmitting || defaultButtons.submitButtonIsLoading\n }\n submitButtonLabel={defaultButtons.submitButtonLabel}\n resetButtonLabel={defaultButtons.resetButtonLabel}\n onResetClick={defaultButtons.onResetClick}\n />\n )}\n </>\n </OpFormContext.Provider>\n </Form>\n );\n};\n\n// Allow for native methods and sub-components to be available as a property on the wrapper component\nOpForm.useForm = Form.useForm;\nOpForm.useWatch = Form.useWatch;\nOpForm.useFormInstance = Form.useFormInstance;\nOpForm.List = Form.List;\n\n// Make the sub components available as a property on the wrapper component\nOpForm.Input = Input;\nOpForm.Link = Link;\nOpForm.InputNumber = InputNumber;\nOpForm.InputDuration = InputDuration;\nOpForm.PhoneInput = PhoneInput;\nOpForm.Button = Button;\nOpForm.TagInput = TagInput;\nOpForm.DatePicker = DatePicker;\nOpForm.TimePicker = TimePicker;\nOpForm.TextButton = TextButton;\nOpForm.PasswordInput = PasswordInput;\nOpForm.SearchInput = SearchInput;\nOpForm.TextAreaInput = TextAreaInput;\nOpForm.Select = Select;\nOpForm.Switch = Switch;\nOpForm.Image = Image;\nOpForm.Checkbox = Checkbox;\nOpForm.CheckboxGroup = CheckboxGroup;\nOpForm.Radio = Radio;\nOpForm.Item = Item;\nOpForm.RangePicker = RangePicker;\nOpForm.DataFetchSelect = DataFetchSelect;\nOpForm.SiteSpecificUserDataFetchSelect = SiteSpecificUserDataFetchSelect;\nOpForm.SiteSpecificSiteDataFetchSelect = SiteSpecificSiteDataFetchSelect;\nOpForm.DataFetchTransfer = DataFetchTransfer;\nOpForm.SiteSpecificUserDataFetchTransfer = SiteSpecificUserDataFetchTransfer;\nOpForm.TimezonePicker = TimezonePicker;\nOpForm.CodeEditor = CodeEditor;\nOpForm.Slider = Slider;\nOpForm.ColorPicker = ColorPicker;\nOpForm.VideoRegionSelect = VideoRegionSelect;\nOpForm.HiddenItemForDataSetting = HiddenItemForDataSetting;\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpInput } from 'new-components/DLS/OpInput/OpInput';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormInputProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'initialValue'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpInput>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormInput = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n initialValue,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n testId,\n\n ...elementProps\n}: OpFormInputProps) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const uuid = uuidv4();\n const opInputId = `op-input-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-input', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n initialValue={initialValue}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={testId ? `${testId}-op-form-item` : undefined}\n {...(!name && { htmlFor: opInputId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInput\n disabled={isReadOnly || disabled}\n testId={testId}\n {...(!name && { id: opInputId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpLink } from 'new-components/DLS/OpLink/OpLink';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormLink.scss';\n\ninterface OpFormLinkProps extends ComponentProps<typeof OpLink> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormLink = ({\n // Form Item props\n formItemClassName,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n className,\n\n disabled,\n ...elementProps\n}: OpFormLinkProps) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item className={clsx('op-form-link', formItemClassName)}>\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Button active block={elementProps.block} />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpLink\n className={clsx('op-form-link__button', className)}\n disabled={isReadOnly || disabled}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpPhoneInput } from 'new-components/DLS/OpPhoneInput/OpPhoneInput';\nimport { useTranslation } from 'react-i18next';\nimport { isE164PhoneNumber, isPhoneNumber } from 'utils/validators';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormPhoneInputProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n 'name' | 'label' | 'rules' | 'validateTrigger'\n >,\n Omit<ComponentProps<typeof OpPhoneInput>, 'name'> {\n formItemClassName?: string;\n testId?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormPhoneInput = ({\n name,\n label,\n rules,\n validateTrigger,\n formItemClassName,\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...inputProps\n}: OpFormPhoneInputProps) => {\n const { t } = useTranslation();\n\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n return (\n <OpForm.Item\n name={name}\n label={label}\n rules={[\n {\n validator: async (_, phoneNumber: string = '') => {\n // Empty phoneNumber is valid as it is optional\n if (!phoneNumber.length) {\n return Promise.resolve();\n }\n\n // Check if it is in E.164 format\n if (!isE164PhoneNumber(phoneNumber)) {\n return Promise.reject(\n new Error(\n t(\n `${phoneNumber} is not in the E.164 format (e.g. +15556667777)`,\n ),\n ),\n );\n }\n\n // Check if it is a valid phone number\n if (!isPhoneNumber(phoneNumber)) {\n return Promise.reject(\n new Error(t(`${phoneNumber} is not a valid phone number`)),\n );\n }\n },\n },\n\n ...(rules || []),\n ]}\n validateTrigger={validateTrigger}\n className={clsx('op-form-phone-input', formItemClassName)}\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpPhoneInput disabled={isReadOnly || disabled} {...inputProps} />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpTagInput } from 'new-components/DLS/OpTagInput/OpTagInput';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ntype OpFormTagInputProps = Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n> &\n ComponentProps<typeof OpTagInput> & {\n formItemClassName?: string;\n isLoading?: boolean;\n };\n\nexport const OpFormTagInput = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n testId = 'op-form-tag-input',\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...elementProps\n}: OpFormTagInputProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-tag-input', formItemClassName)}\n name={name}\n testId={`${testId}-container`}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpTagInput\n disabled={isReadOnly || disabled}\n testId={testId}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpDatePicker } from 'new-components/DLS/OpDatePicker/OpDatePicker';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormDatePickerProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpDatePicker>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n testId?: string;\n}\n\nexport const OpFormDatePicker = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n\n ...elementProps\n}: OpFormDatePickerProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const uuid = uuidv4();\n const opDatePickerId = `op-date-picker-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-date-picker', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n {...(!name && { htmlFor: opDatePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n <OpDatePicker\n disabled={isReadOnly || disabled}\n {...(!name && { id: opDatePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpTimePicker } from 'new-components/DLS/OpTimePicker/OpTimePicker';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormTimePickerProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpTimePicker>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormTimePicker = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...elementProps\n}: OpFormTimePickerProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const uuid = uuidv4();\n const opTimePickerId = `op-time-picker-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-time-picker', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n {...(!name && { htmlFor: opTimePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n <OpTimePicker\n disabled={isReadOnly || disabled}\n {...(!name && { id: opTimePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormTextButton.scss';\n\ninterface OpFormTextButtonProps extends ComponentProps<typeof OpButton> {\n formItemClassName?: string;\n disabled?: boolean;\n isLoading?: boolean;\n}\n\nexport const OpFormTextButton = ({\n // Form Item props\n formItemClassName,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n className,\n\n disabled,\n ...elementProps\n}: OpFormTextButtonProps) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item className={clsx('op-form-text-button', formItemClassName)}>\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Button active block={elementProps.block} />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpTextButton\n className={clsx('op-form-text-button__button', className)}\n disabled={isReadOnly || disabled}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpInput } from 'new-components/DLS/OpInput/OpInput';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useTranslation } from 'react-i18next';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\n// These values are from Helium's `passwordPolicy` table\n\nconst minimumLength = 15;\nconst numLowercaseRequired = 1;\nconst numUppercaseRequired = 1;\nconst numDigitRequired = 1;\n\ninterface OpFormPasswordInput\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpInput.Password>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n enforcePolicy?: boolean;\n}\n\nexport const OpFormPasswordInput = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n enforcePolicy,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n testId,\n\n ...elementProps\n}: OpFormPasswordInput) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n const { t } = useTranslation();\n\n const uuid = uuidv4();\n const opPasswordInputId = `op-password-input-${uuid}`;\n\n let inputRules = rules;\n\n if (enforcePolicy) {\n inputRules = [\n ...(rules ?? []),\n {\n min: minimumLength,\n message: t(`Password must have at least ${minimumLength} characters`),\n },\n {\n pattern: new RegExp(`[a-z]{${numLowercaseRequired},}`),\n message: t(\n `Password must have at least ${numLowercaseRequired} lowercase letter`,\n ),\n },\n {\n pattern: new RegExp(`[A-Z]{${numUppercaseRequired},}`),\n message: t(\n `Password must have at least ${numUppercaseRequired} uppercase letter`,\n ),\n },\n {\n pattern: new RegExp(`[0-9]{${numDigitRequired},}`),\n message: t(`Password must have at least ${numDigitRequired} digit(s)`),\n },\n ];\n }\n\n return (\n <OpForm.Item\n className={clsx('op-form-password-input', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={inputRules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={testId ? `${testId}-op-form-item` : undefined}\n {...(!name && { htmlFor: opPasswordInputId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInput.Password\n disabled={isReadOnly || disabled}\n testId={testId}\n {...(!name && { id: opPasswordInputId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpInput } from 'new-components/DLS/OpInput/OpInput';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormSearchInputProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpInput.Search>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormSearchInput = ({\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...elementProps\n}: OpFormSearchInputProps) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-search-input', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInput.Search disabled={isReadOnly || disabled} {...elementProps} />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpInput } from 'new-components/DLS/OpInput/OpInput';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormTextAreaInputProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpInput.TextArea>, 'name' | 'required'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormTextAreaInput = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...elementProps\n}: OpFormTextAreaInputProps) => {\n /** The Form is wrapped in a provider that passes the loading and readOnly\n * contexts to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-text-area-input', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Input active block />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpInput.TextArea disabled={isReadOnly || disabled} {...elementProps} />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport {\n OpSelect,\n OpSelectOptionType,\n} from 'new-components/DLS/OpSelect/OpSelect';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { DefaultOptionType } from 'antd/es/select';\nimport { OpForm } from '../../OpForm';\nimport { useOpFormContext } from '../../OpFormContext';\n\ntype OpFormSelectProps<\n T extends string | number,\n U extends DefaultOptionType,\n> = Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'initialValue'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n> &\n ComponentProps<typeof OpSelect<T, U>> & {\n formItemClassName?: string;\n isLoading?: boolean;\n };\n\nexport const OpFormSelect = <\n T extends string | number,\n U extends DefaultOptionType = OpSelectOptionType<T>,\n>({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n initialValue,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n testId,\n\n ...elementProps\n}: OpFormSelectProps<T, U>) => {\n /**\n * The Form is wrapped in a provider that passes the loading context\n * to the component\n */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const opFormItemTestId = testId\n ? `${testId}-op-form-item`\n : typeof label === 'string'\n ? `${label}-op-form-item`\n : undefined;\n const uuid = uuidv4();\n const opSelectId = `op-select-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-select', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n initialValue={initialValue}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={opFormItemTestId}\n {...(!name && { htmlFor: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpSelect\n disabled={isReadOnly || disabled}\n {...(!name && { id: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSwitch } from 'new-components/DLS/OpSwitch/OpSwitch';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormSwitch.scss';\n\ninterface OpFormSwitchProps\n extends Pick<ComponentProps<typeof OpForm.Item>, 'name' | 'initialValue'>,\n Omit<ComponentProps<typeof OpSwitch>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormSwitch = ({\n // Form Item props\n formItemClassName,\n name,\n initialValue,\n\n // For skeleton loading state\n isLoading = false,\n\n // Wrapped element props\n disabled,\n\n ...elementProps\n}: OpFormSwitchProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-switch', formItemClassName)}\n name={name}\n initialValue={initialValue}\n valuePropName=\"checked\"\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Button active size=\"small\" shape=\"circle\" />\n ) : (\n <OpSwitch disabled={isReadOnly || disabled} {...elementProps} />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps, ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { OpImage } from 'new-components/DLS/OpImage/OpImage';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormImageProps extends ComponentProps<typeof OpImage> {\n formItemClassName?: string;\n isLoading?: boolean;\n loadingPlaceholder: ReactNode;\n}\n\nexport const OpFormImage = ({\n // Form Item props\n formItemClassName,\n\n // For skeleton loading state\n isLoading,\n\n loadingPlaceholder,\n ...elementProps\n}: OpFormImageProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading } = useOpFormContext();\n const styles: { width?: string | number; height?: string | number } = {};\n if (elementProps.width) {\n styles.width = elementProps.width;\n }\n if (elementProps.height) {\n styles.height = elementProps.height;\n }\n\n const loadingContent = loadingPlaceholder ? (\n <OpSkeleton.Node style={styles} active>\n {loadingPlaceholder}\n </OpSkeleton.Node>\n ) : (\n <OpSkeleton.Image style={styles} active />\n );\n\n return (\n <OpForm.Item className={clsx('op-form-image', formItemClassName)}>\n {isDataLoading || isLoading ? (\n loadingContent\n ) : (\n <OpImage {...elementProps} />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpCheckbox } from 'new-components/DLS/OpCheckbox/OpCheckbox';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormCheckboxGroup.scss';\n\ninterface OpFormCheckboxGroup\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n 'name' | 'label' | 'tooltip'\n >,\n Omit<ComponentProps<typeof OpCheckbox.Group>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormCheckboxGroup = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element(s) props\n disabled,\n className,\n ...elementProps\n}: OpFormCheckboxGroup) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-checkbox-group', formItemClassName)}\n name={name}\n tooltip={tooltip}\n label={label}\n /** Checkbox.Group uses value instead of checked so we don't need to\n * set the valuePropName to \"checked\" here. */\n >\n {isDataLoading || isLoading ? (\n <div className=\"op-form-checkbox-group__skeleton-wrapper\">\n {(elementProps.options || []).map((_, i) => (\n <OpSkeleton.Checkbox key={i} active />\n ))}\n </div>\n ) : (\n <OpCheckbox.Group\n className={clsx('op-form-checkbox-group__checkbox-group', className)}\n disabled={isReadOnly || disabled}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps, ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { OpRadio } from 'new-components/DLS/OpRadio/OpRadio';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormRadio.scss';\n\ninterface OpFormRadioProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n 'name' | 'label' | 'tooltip'\n >,\n Omit<ComponentProps<typeof OpRadio>, 'name' | 'tooltip'> {\n formItemClassName?: string;\n isLoading?: boolean;\n radioTooltip?: ReactNode;\n}\n\nexport const OpFormRadio = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n children,\n radioTooltip,\n\n disabled,\n ...elementProps\n}: OpFormRadioProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-radio', formItemClassName)}\n name={name}\n tooltip={tooltip}\n label={label}\n valuePropName=\"checked\"\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Avatar active size=\"small\" shape=\"circle\" />\n ) : (\n <OpRadio\n disabled={isReadOnly || disabled}\n tooltip={radioTooltip}\n {...elementProps}\n >\n {children}\n </OpRadio>\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpRangePicker } from 'new-components/DLS/OpRangePicker/OpRangePicker';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormRangePickerPropsType\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpRangePicker>, 'name'> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormRangePicker = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...elementProps\n}: OpFormRangePickerPropsType) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const uuid = uuidv4();\n const opRangePickerId = `op-range-picker-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-range-picker', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n {...(!name && { htmlFor: opRangePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpRangePicker\n disabled={isReadOnly || disabled}\n {...(!name && { id: opRangePickerId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { OpSiteSpecificUserDataFetchSelect } from 'new-components/DLS/OpSiteSpecificUserDataFetchSelect/OpSiteSpecificUserDataFetchSelect';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ntype OpFormSiteSpecificUserDataFetchSelectProps = Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n> &\n ComponentProps<typeof OpSiteSpecificUserDataFetchSelect> & {\n formItemClassName?: string;\n isLoading?: boolean;\n orgId: number;\n };\n\nexport const OpFormSiteSpecificUserDataFetchSelect = ({\n // Form Item props\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n formItemClassName,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...selectProps\n}: OpFormSiteSpecificUserDataFetchSelectProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const opFormItemTestId = testId\n ? `${testId}-op-form-item`\n : typeof label === 'string'\n ? `${label}-op-form-item`\n : undefined;\n const uuid = uuidv4();\n const opSelectId = `op-data-fetch-select-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-data-fetch-select', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={opFormItemTestId}\n {...(!name && { htmlFor: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpSiteSpecificUserDataFetchSelect\n disabled={isReadOnly || disabled}\n {...(!name && { id: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...selectProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { v4 as uuidv4 } from 'uuid';\nimport { OpSiteSpecificSiteDataFetchSelect } from 'new-components/DLS/OpSiteSpecificSiteDataFetchSelect/OpSiteSpecificSiteDataFetchSelect';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ntype OpFormSiteSpecificSiteDataFetchSelectProps = Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n> &\n ComponentProps<typeof OpSiteSpecificSiteDataFetchSelect> & {\n formItemClassName?: string;\n isLoading?: boolean;\n orgId: number;\n };\n\nexport const OpFormSiteSpecificSiteDataFetchSelect = ({\n // Form Item props\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n formItemClassName,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...selectProps\n}: OpFormSiteSpecificSiteDataFetchSelectProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const opFormItemTestId = testId\n ? `${testId}-op-form-item`\n : typeof label === 'string'\n ? `${label}-op-form-item`\n : undefined;\n const uuid = uuidv4();\n const opSelectId = `op-data-fetch-select-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx('op-form-data-fetch-select', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={opFormItemTestId}\n {...(!name && { htmlFor: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpSiteSpecificSiteDataFetchSelect\n disabled={isReadOnly || disabled}\n {...(!name && { id: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...selectProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpDataFetchTransfer } from 'new-components/DLS/OpDataFetchTransfer/OpDataFetchTransfer';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormDataFetchTransfer.scss';\n\ninterface OpFormDataFetchTransferProps<\n T extends keyof Api.ClientSpec,\n U extends keyof Api.ClientSpec,\n> extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n ComponentProps<typeof OpDataFetchTransfer<T, U>> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormDataFetchTransfer = <\n T extends keyof Api.ClientSpec,\n U extends keyof Api.ClientSpec,\n>({\n // Form Item props\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n formItemClassName,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...transferProps\n}: OpFormDataFetchTransferProps<T, U>) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-data-fetch-transfer', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n rules={rules}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpDataFetchTransfer<T, U>\n disabled={isReadOnly || disabled}\n {...transferProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpTimezonePicker } from 'new-components/DLS/OpTimezonePicker/OpTimezonePicker';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormTimezonePickerProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n ComponentProps<typeof OpTimezonePicker> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormTimezonePicker = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n testId,\n ...elementProps\n}: OpFormTimezonePickerProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n const opFormItemTestId = testId\n ? `${testId}-op-form-item`\n : typeof label === 'string'\n ? `${label}-op-form-item`\n : undefined;\n const uuid = uuidv4();\n const opSelectId = `op-timezone-picker-${uuid}`;\n\n return (\n <OpForm.Item\n className={clsx(formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n testId={opFormItemTestId}\n {...(!name && { htmlFor: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpTimezonePicker\n disabled={isReadOnly || disabled}\n {...(!name && { id: opSelectId })} // If a name isn't passed there is no association between the label and the input. This creates that association.\n {...elementProps}\n testId={testId}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { OpCodeEditor } from 'new-components/DLS/OpCodeEditor/OpCodeEditor';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormCodeEditor\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'rules'\n | 'tooltip'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n Omit<ComponentProps<typeof OpCodeEditor>, 'name' | 'tooltip'> {\n formItemClassName?: string;\n isLoading?: boolean;\n showAnnotation?: boolean;\n disabled?: boolean;\n}\n\nexport const OpFormCodeEditor = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n rules = [],\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n testId = 'op-form-code-editor',\n\n // Wrapped element props\n ...elementProps\n}: OpFormCodeEditor) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-checkbox', formItemClassName)}\n name={name}\n label={label}\n tooltip={tooltip}\n validateTrigger=\"onBlur\"\n data-testid={testId}\n rules={[\n ...rules,\n {\n validator: async (_: any, json: string) => {\n try {\n JSON.parse(json);\n } catch (e) {\n if (e instanceof SyntaxError) {\n throw new Error(e.message);\n }\n }\n },\n },\n ]}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Input active block />\n ) : (\n <OpCodeEditor\n disabled={isReadOnly || elementProps.disabled}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpSlider } from 'new-components/DLS/OpSlider/OpSlider';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormSlider.scss';\n\ninterface OpFormSliderProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'normalize'\n | 'getValueProps'\n | 'initialValue'\n >,\n Omit<ComponentProps<typeof OpSlider>, 'name' | 'tooltip'> {\n formItemClassName?: string;\n isLoading?: boolean;\n sliderTooltip?: ComponentProps<typeof OpSlider>['tooltip'];\n}\n\nexport const OpFormSlider = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n tooltip,\n normalize,\n getValueProps,\n initialValue,\n\n // For skeleton loading state\n isLoading,\n\n disabled,\n sliderTooltip,\n ...elementProps\n}: OpFormSliderProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-slider', formItemClassName)}\n name={name}\n tooltip={tooltip}\n label={label}\n normalize={normalize}\n getValueProps={getValueProps}\n initialValue={initialValue}\n >\n {isDataLoading || isLoading ? (\n <OpSkeleton.Avatar active size=\"small\" shape=\"square\" />\n ) : (\n <OpSlider\n disabled={isReadOnly || disabled}\n tooltip={sliderTooltip}\n {...elementProps}\n />\n )}\n </OpForm.Item>\n );\n};\n","import { ComponentProps } from 'react';\nimport clsx from 'clsx';\nimport { OpColorPicker } from 'new-components/DLS/OpColorPicker/OpColorPicker';\nimport { OpSkeleton } from 'new-components/DLS/OpSkeleton/OpSkeleton';\nimport { useOpFormContext } from '../../OpFormContext';\nimport { OpForm } from '../../OpForm';\n\ninterface OpFormColorPickerProps\n extends Pick<\n ComponentProps<typeof OpForm.Item>,\n | 'name'\n | 'label'\n | 'tooltip'\n | 'rules'\n | 'validateTrigger'\n | 'validateStatus' // Temp: For SUIR wrapped version\n | 'help' // Temp: For SUIR wrapped version\n | 'required' // Temp: For SUIR wrapped version\n >,\n ComponentProps<typeof OpColorPicker> {\n formItemClassName?: string;\n isLoading?: boolean;\n}\n\nexport const OpFormColorPicker = ({\n // Form Item props\n formItemClassName,\n name,\n label,\n rules,\n tooltip,\n validateTrigger,\n required, // TEMP: For old form component validation\n validateStatus, // TEMP: For old form component validation\n help, // TEMP: For old form component validation\n\n // For skeleton loading state\n isLoading,\n\n // Wrapped element props\n disabled,\n\n ...elementProps\n}: OpFormColorPickerProps) => {\n /** The Form is wrapped in a provider that passes the loading context\n * to the component */\n const { isDataLoading, isReadOnly } = useOpFormContext();\n\n return (\n <OpForm.Item\n className={clsx('op-form-color-picker', formItemClassName)}\n name={name}\n label={label}\n rules={rules}\n tooltip={tooltip}\n validateTrigger={validateTrigger}\n required={required} // TEMP: For old form component validation\n validateStatus={validateStatus} // TEMP: For old form component validation\n help={help} // TEMP: For old form component validation\n >\n {isDataLoading || isLoading ? (\n /** A placeholder in the shape of the component\n * so we can immediately render the structure of the form while\n * data is loading */\n <OpSkeleton.Checkbox active />\n ) : (\n /** The actual component that is rendered when we have the data */\n <OpColorPicker disabled={isReadOnly || disabled} {...elementProps} />\n )}\n </OpForm.Item>\n );\n};\n","export const getWindowLocation = () => window.location;\n","module.exports = __webpack_public_path__ + \"5df362c9904925cdf574d9506e4be76d.js\";","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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\nmodule.exports = toSource;\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Panel } from 'rc-dialog';\nimport { withPureRenderTheme } from '../_util/PurePanel';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { ConfirmContent } from './ConfirmDialog';\nimport { Footer, renderCloseIcon } from './shared';\nimport useStyle from './style';\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n closeIcon,\n closable,\n type,\n title,\n children,\n footer\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"closeIcon\", \"closable\", \"type\", \"title\", \"children\", \"footer\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const prefixCls = customizePrefixCls || getPrefixCls('modal');\n const rootCls = useCSSVarCls(rootPrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const confirmPrefixCls = `${prefixCls}-confirm`;\n // Choose target props by confirm mark\n let additionalProps = {};\n if (type) {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : false,\n title: '',\n footer: '',\n children: (/*#__PURE__*/React.createElement(ConfirmContent, Object.assign({}, props, {\n prefixCls: prefixCls,\n confirmPrefixCls: confirmPrefixCls,\n rootPrefixCls: rootPrefixCls,\n content: children\n })))\n };\n } else {\n additionalProps = {\n closable: closable !== null && closable !== void 0 ? closable : true,\n title,\n footer: footer !== null && /*#__PURE__*/React.createElement(Footer, Object.assign({}, props)),\n children\n };\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(Panel, Object.assign({\n prefixCls: prefixCls,\n className: classNames(hashId, `${prefixCls}-pure-panel`, type && confirmPrefixCls, type && `${confirmPrefixCls}-${type}`, className, cssVarCls, rootCls)\n }, restProps, {\n closeIcon: renderCloseIcon(prefixCls, closeIcon),\n closable: closable\n }, additionalProps)));\n};\nexport default withPureRenderTheme(PurePanel);","\"use client\";\n\nimport confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport PurePanel from './PurePanel';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nconst Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n const close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nModal._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Modal.displayName = 'Modal';\n}\nexport default Modal;","var Uint8Array = require('./_Uint8Array');\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\nmodule.exports = cloneArrayBuffer;\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","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","module.exports = __webpack_public_path__ + \"10c464f3f882bfeeefbc0934c2ee9fbe.js\";","export const PAGE = 'orgsEditPackagePage';\nexport const BILLING_SUBSCRIPTION_FORM = 'billingSubscriptionForm';\nexport const QUANTITY_LIMITS_FORM = 'quantityLimitsForm';\n\nexport const SET_PAGE_DATA = `app/${PAGE}/SET_PAGE_DATA`;\nexport const DELETE_SOFTWARE_LICENSE = `app/${PAGE}/DELETE_SOFTWARE_LICENSE`;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\n\n/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SearchOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SearchOutlined';\n}\nexport default RefIcon;","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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/** Thresholds for FID. See https://web.dev/articles/fid#what_is_a_good_fid_score */\nconst FIDThresholds = [100, 300];\n\n/**\n * Calculates the [FID](https://web.dev/articles/fid) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `first-input` performance entry used to determine the value. The\n * reported value is a `DOMHighResTimeStamp`.\n *\n * _**Important:** since FID is only reported after the user interacts with the\n * page, it's possible that it will not be reported for some page loads._\n */\nconst onFID = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntry = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const handleEntries = (entries) => {\n (entries ).forEach(handleEntry);\n };\n\n const po = observe('first-input', handleEntries);\n report = bindReporter(onReport, metric, FIDThresholds, opts.reportAllChanges);\n\n if (po) {\n onHidden(\n runOnce(() => {\n handleEntries(po.takeRecords() );\n po.disconnect();\n }),\n );\n }\n });\n};\n\nexport { FIDThresholds, onFID };\n//# sourceMappingURL=getFID.js.map\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface QuestionMarkOutlinedSvgProps\n extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const QuestionMarkOutlinedSvg = ({\n ...svgProps\n}: QuestionMarkOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M9 1C13.411 1 17 4.589 17 9C17 13.411 13.411 17 9 17C4.589 17 1 13.411 1 9C1 4.589 4.589 1 9 1ZM9 2C5.14 2 2 5.14 2 9C2 12.859 5.14 16 9 16C12.859 16 16 12.859 16 9C16 5.14 12.859 2 9 2ZM9 13C9.276 13 9.5 13.224 9.5 13.5C9.5 13.776 9.276 14 9 14C8.724 14 8.5 13.776 8.5 13.5C8.5 13.224 8.724 13 9 13ZM9.724 4.093C10.656 4.334 11.415 5.092 11.657 6.025C12.026 7.456 11.264 8.887 9.883 9.355C9.698 9.417 9.5 9.57 9.5 9.808V11.5C9.5 11.776 9.276 12 9 12C8.724 12 8.5 11.776 8.5 11.5V9.808C8.5 9.176 8.917 8.626 9.562 8.408C10.31 8.154 10.959 7.321 10.688 6.276C10.537 5.689 10.06 5.212 9.474 5.061C8.925 4.921 8.363 5.03 7.93 5.365C7.498 5.7 7.25 6.205 7.25 6.75C7.25 7.026 7.026 7.25 6.75 7.25C6.474 7.25 6.25 7.026 6.25 6.75C6.25 5.893 6.639 5.1 7.317 4.575C7.996 4.049 8.875 3.874 9.724 4.093Z\" />\n </SvgWrapper>\n);\n","export const PAGE = 'editAlarmPage';\nexport const FORM = 'editAlarmForm';\nexport const TABLE = 'alarmActivityTable';\nexport const USERS_OMNI = 'usersOmni';\nexport const SET_PAGE_DATA = `app/${PAGE}/SET_PAGE_DATA`;\nexport const FILTER_ORG_USERS = `app/${PAGE}/FILTER_ORG_USERS`;\nexport const REQUEST_ALARM_ACTION = `app/${PAGE}/REQUEST_ALARM_ACTION`;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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// 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\nmodule.exports = MapCache;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password{padding-top:1.1428571429rem}.reset-password__form{width:22.2857142857rem}.reset-password__form-error{padding-top:1.1428571429rem}.reset-password__submit{margin-top:0.5714285714rem;width:22.2857142857rem}.reset-password__back-button{width:22.2857142857rem;margin-bottom:0.5714285714rem}.reset-password .error{padding-bottom:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/ResetPasswordFlow/ResetPasswordFlow.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,gBACE,2BAAA,CAEA,sBACE,sBCJsB,CDOxB,4BACE,2BAAA,CAGF,wBACE,0BAAA,CACA,sBCbsB,CDgBxB,6BACE,sBCjBsB,CDkBtB,6BAAA,CAIJ,uBACE,8BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.reset-password {\\n padding-top: common.toRem(16);\\n\\n &__form {\\n width: global.$unification-login-width;\\n }\\n\\n &__form-error {\\n padding-top: common.toRem(16);\\n }\\n\\n &__submit {\\n margin-top: common.toRem(8);\\n width: global.$unification-login-width;\\n }\\n\\n &__back-button {\\n width: global.$unification-login-width;\\n margin-bottom: common.toRem(8);\\n }\\n}\\n\\n.reset-password .error {\\n padding-bottom: common.toRem(16);\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","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 };","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSpace.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSpace.scss\";\n export default content && content.locals ? content.locals : undefined;\n","module.exports = __webpack_public_path__ + \"9920e03a65566d728a73c7bf18bc5741.js\";","module.exports = __webpack_public_path__ + \"5cab33610b8d9c1aee4db4672811cb5f.js\";","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<BrowserRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<HashRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware <a>.\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Link> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <NavLink> outside a <Router>\") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"className\", \"style\", \"onAllRemoved\", \"stack\", \"renderNotifications\"];\nimport * as React from 'react';\nimport Notifications from \"../Notifications\";\nvar defaultGetContainer = function defaultGetContainer() {\n return document.body;\n};\nvar uniqueKey = 0;\nfunction mergeConfig() {\n var clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n var rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _rootConfig$getContai = rootConfig.getContainer,\n getContainer = _rootConfig$getContai === void 0 ? defaultGetContainer : _rootConfig$getContai,\n motion = rootConfig.motion,\n prefixCls = rootConfig.prefixCls,\n maxCount = rootConfig.maxCount,\n className = rootConfig.className,\n style = rootConfig.style,\n onAllRemoved = rootConfig.onAllRemoved,\n stack = rootConfig.stack,\n renderNotifications = rootConfig.renderNotifications,\n shareConfig = _objectWithoutProperties(rootConfig, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n container = _React$useState2[0],\n setContainer = _React$useState2[1];\n var notificationsRef = React.useRef();\n var contextHolder = /*#__PURE__*/React.createElement(Notifications, {\n container: container,\n ref: notificationsRef,\n prefixCls: prefixCls,\n motion: motion,\n maxCount: maxCount,\n className: className,\n style: style,\n onAllRemoved: onAllRemoved,\n stack: stack,\n renderNotifications: renderNotifications\n });\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n taskQueue = _React$useState4[0],\n setTaskQueue = _React$useState4[1];\n\n // ========================= Refs =========================\n var api = React.useMemo(function () {\n return {\n open: function open(config) {\n var mergedConfig = mergeConfig(shareConfig, config);\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n mergedConfig.key = \"rc-notification-\".concat(uniqueKey);\n uniqueKey += 1;\n }\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'open',\n config: mergedConfig\n }]);\n });\n },\n close: function close(key) {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'close',\n key: key\n }]);\n });\n },\n destroy: function destroy() {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'destroy'\n }]);\n });\n }\n };\n }, []);\n\n // ======================= Container ======================\n // React 18 should all in effect that we will check container in each render\n // Which means getContainer should be stable.\n React.useEffect(function () {\n setContainer(getContainer());\n });\n\n // ======================== Effect ========================\n React.useEffect(function () {\n // Flush task when node ready\n if (notificationsRef.current && taskQueue.length) {\n taskQueue.forEach(function (task) {\n switch (task.type) {\n case 'open':\n notificationsRef.current.open(task.config);\n break;\n case 'close':\n notificationsRef.current.close(task.key);\n break;\n case 'destroy':\n notificationsRef.current.destroy();\n break;\n }\n });\n\n // React 17 will mix order of effect & setState in async\n // - open: setState[0]\n // - effect[0]\n // - open: setState[1]\n // - effect setState([]) * here will clean up [0, 1] in React 17\n setTaskQueue(function (oriQueue) {\n return oriQueue.filter(function (task) {\n return !taskQueue.includes(task);\n });\n });\n }\n }, [taskQueue]);\n\n // ======================== Return ========================\n return [api, contextHolder];\n}","import { unit } from '@ant-design/cssinjs';\nfunction genMaxMin(type) {\n if (type === 'js') {\n return {\n max: Math.max,\n min: Math.min\n };\n }\n return {\n max: function max() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return \"max(\".concat(args.map(function (value) {\n return unit(value);\n }).join(','), \")\");\n },\n min: function min() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return \"min(\".concat(args.map(function (value) {\n return unit(value);\n }).join(','), \")\");\n }\n };\n}\nexport default genMaxMin;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\n\n/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EllipsisOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EllipsisOutlined';\n}\nexport default RefIcon;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-switch-container{display:flex}.op-switch-container__label{margin-left:0.5714285714rem}.op-switch-container__tooltip{margin-left:0.2857142857rem}.op-switch-container .ant-switch-inner{height:1.7142857143rem;width:3.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSwitch/OpSwitch.scss\"],\"names\":[],\"mappings\":\"AAEA,qBACE,YAAA,CAEA,4BACE,2BAAA,CAGF,8BACE,2BAAA,CAGF,uCACE,sBAAA,CACA,qBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-switch-container {\\n display: flex;\\n\\n &__label {\\n margin-left: common.toRem(8);\\n }\\n\\n &__tooltip {\\n margin-left: common.toRem(4);\\n }\\n\\n .ant-switch-inner {\\n height: common.toRem(24);\\n width: common.toRem(44);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"06d958315fc6cdbb28576b03e43203aa.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-switch{margin-bottom:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormSwitch/OpFormSwitch.scss\"],\"names\":[],\"mappings\":\"AAEA,gBACE,6BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-switch {\\n margin-bottom: common.toRem(16);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"d78d3b050ea95b068380d975fd413fd7.js\";","import React from 'react';\nimport useToken from '../../theme/useToken';\nimport { devUseWarning } from '../warning';\nimport zIndexContext from '../zindexContext';\n// Z-Index control range\n// Container: 1000 + offset 100 (max base + 10 * offset = 2000)\n// Popover: offset 50\n// Notification: Container Max zIndex + componentOffset\nconst CONTAINER_OFFSET = 100;\nconst CONTAINER_OFFSET_MAX_COUNT = 10;\nexport const CONTAINER_MAX_OFFSET = CONTAINER_OFFSET * CONTAINER_OFFSET_MAX_COUNT;\n/**\n * Static function will default be the `CONTAINER_MAX_OFFSET`.\n * But it still may have children component like Select, Dropdown.\n * So the warning zIndex should exceed the `CONTAINER_MAX_OFFSET`.\n */\nconst CONTAINER_MAX_OFFSET_WITH_CHILDREN = CONTAINER_MAX_OFFSET + CONTAINER_OFFSET;\nexport const containerBaseZIndexOffset = {\n Modal: CONTAINER_OFFSET,\n Drawer: CONTAINER_OFFSET,\n Popover: CONTAINER_OFFSET,\n Popconfirm: CONTAINER_OFFSET,\n Tooltip: CONTAINER_OFFSET,\n Tour: CONTAINER_OFFSET,\n FloatButton: CONTAINER_OFFSET\n};\nexport const consumerBaseZIndexOffset = {\n SelectLike: 50,\n Dropdown: 50,\n DatePicker: 50,\n Menu: 50,\n ImagePreview: 1\n};\nfunction isContainerType(type) {\n return type in containerBaseZIndexOffset;\n}\nexport const useZIndex = (componentType, customZIndex) => {\n const [, token] = useToken();\n const parentZIndex = React.useContext(zIndexContext);\n const isContainer = isContainerType(componentType);\n let result;\n if (customZIndex !== undefined) {\n result = [customZIndex, customZIndex];\n } else {\n let zIndex = parentZIndex !== null && parentZIndex !== void 0 ? parentZIndex : 0;\n if (isContainer) {\n zIndex +=\n // Use preset token zIndex by default but not stack when has parent container\n (parentZIndex ? 0 : token.zIndexPopupBase) +\n // Container offset\n containerBaseZIndexOffset[componentType];\n } else {\n zIndex += consumerBaseZIndexOffset[componentType];\n }\n result = [parentZIndex === undefined ? customZIndex : zIndex, zIndex];\n }\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning(componentType);\n const maxZIndex = token.zIndexPopupBase + CONTAINER_MAX_OFFSET_WITH_CHILDREN;\n const currentZIndex = result[0] || 0;\n process.env.NODE_ENV !== \"production\" ? warning(customZIndex !== undefined || currentZIndex <= maxZIndex, 'usage', '`zIndex` is over design token `zIndexPopupBase` too much. It may cause unexpected override.') : void 0;\n }\n return result;\n};","import { BaseClient, applySdkMetadata } from '@sentry/core';\nimport { getSDKSource, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const opts = {\n // We default this to true, as it is the safer scenario\n parentSpanIsAlwaysRootSpan: true,\n ...options,\n };\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n super(opts);\n\n if (opts.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","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 { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nvar Theme = /*#__PURE__*/function () {\n function Theme(derivatives) {\n _classCallCheck(this, Theme);\n _defineProperty(this, \"derivatives\", void 0);\n _defineProperty(this, \"id\", void 0);\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n }\n uuid += 1;\n }\n _createClass(Theme, [{\n key: \"getDerivativeToken\",\n value: function getDerivativeToken(token) {\n return this.derivatives.reduce(function (result, derivative) {\n return derivative(token, result);\n }, undefined);\n }\n }]);\n return Theme;\n}();\nexport { Theme as default };","module.exports = __webpack_public_path__ + \"b808fb222140a85b23ebbe0fffa906d9.js\";","module.exports = __webpack_public_path__ + \"9b80d1a12acd18c90e41ca92073122a7.js\";","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","module.exports = __webpack_public_path__ + \"ecdb4966f685f3e44b1f28fae46827a3.js\";","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\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\nmodule.exports = stackGet;\n","module.exports = __webpack_public_path__ + \"4d8cb7033879cb7fcc7a43798e2bde22.js\";","module.exports = __webpack_public_path__ + \"3c5b59a666c5d39d9ba9cc054d36a410.js\";","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 };","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","module.exports = __webpack_public_path__ + \"eaa55a522fb2cb2f0287711f42344984.js\";","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 { format, isEmptyValue } from \"../util\";\nvar required = function required(rule, value, source, errors, options, type) {\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\nexport default required;","module.exports = __webpack_public_path__ + \"a41ce517e26d17d855b7224af9ee433b.js\";","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = __webpack_public_path__ + \"27730a0bdc6f430cc85049a46a73a029.js\";","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import React from 'react';\nimport { getRawMenuItems, getItemConfig } from 'config/utils';\nimport { alarmEditRoute as route } from 'routes/constants';\nimport { PAGE, TABLE, USERS_OMNI } from './constants';\n\nexport const scope = getItemConfig(getRawMenuItems(), route).scope;\nconst RouteComponent = React.lazy(() => import('.'));\n\nexport default {\n RouteComponent,\n RouteImportPath: 'AlarmDashboardPage/AlarmEditPage',\n path: route,\n exact: true,\n name: PAGE,\n scope,\n reducers: [\n {\n key: PAGE,\n reducer: require('./reducer').default,\n },\n ],\n sagas: [\n {\n key: PAGE,\n saga: require('./sagas').default,\n },\n {\n key: USERS_OMNI,\n saga: require('containers/OmniSelect/sagas').default,\n },\n {\n key: TABLE,\n saga: require('containers/Table/sagas').default,\n },\n ],\n};\n","module.exports = __webpack_public_path__ + \"4bee3a46b8378a7b4ef84492f08abd22.js\";","module.exports = __webpack_public_path__ + \"03980cb12dacd26148c22bb61fce440f.js\";","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning, { devUseWarning, WarningContext } from '../_util/warning';\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { defaultTheme, DesignTokenContext } from '../theme/context';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls, defaultPrefixCls, Variants } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport MotionWrapper from './MotionWrapper';\nimport PropWarning from './PropWarning';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nexport { Variants };\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme, we record the\n * theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigConsumer, ConfigContext, defaultPrefixCls, defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'input', 'pagination', 'form', 'select', 'button'];\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nlet globalTheme;\nlet globalHolderRender;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nfunction isLegacyTheme(theme) {\n return Object.keys(theme).some(key => key.endsWith('Color'));\n}\nconst setGlobalConfig = props => {\n const {\n prefixCls,\n iconPrefixCls,\n theme,\n holderRender\n } = props;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if ('holderRender' in props) {\n globalHolderRender = holderRender;\n }\n if (theme) {\n if (isLegacyTheme(theme)) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', '`config` of css variable theme is not work in v5. Please use new `theme` config instead.') : void 0;\n registerTheme(getGlobalPrefixCls(), theme);\n } else {\n globalTheme = theme;\n }\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n },\n getTheme: () => globalTheme,\n holderRender: globalHolderRender\n});\nconst ProviderChildren = props => {\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n form,\n locale,\n componentSize,\n direction,\n space,\n splitter,\n virtual,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n popupOverflow,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n input,\n textArea,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n rangePicker,\n flex,\n wave,\n dropdown,\n warning: warningConfig,\n tour,\n floatButtonGroup,\n variant,\n inputNumber,\n treeSelect\n } = props;\n // =================================== Context ===================================\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const csp = customCsp || parentContext.csp;\n useStyle(iconPrefixCls, csp);\n const mergedTheme = useTheme(theme, parentContext.theme, {\n prefixCls: getPrefixCls('')\n });\n if (process.env.NODE_ENV !== 'production') {\n existThemeConfig = existThemeConfig || !!mergedTheme;\n }\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n locale: locale || legacyLocale,\n direction,\n space,\n splitter,\n virtual,\n popupMatchSelectWidth: popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth,\n popupOverflow,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n input,\n textArea,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n rangePicker,\n flex,\n wave,\n dropdown,\n warning: warningConfig,\n tour,\n floatButtonGroup,\n variant,\n inputNumber,\n treeSelect\n };\n if (process.env.NODE_ENV !== 'production') {\n const warningFn = devUseWarning('ConfigProvider');\n warningFn(!('autoInsertSpaceInButton' in props), 'deprecated', '`autoInsertSpaceInButton` is deprecated. Please use `{ button: { autoInsertSpace: boolean }}` instead.');\n }\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n if (typeof autoInsertSpaceInButton !== 'undefined') {\n // merge deprecated api\n config.button = Object.assign({\n autoInsertSpace: autoInsertSpaceInButton\n }, config.button);\n }\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PropWarning, {\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }), children);\n const validateMessages = React.useMemo(() => {\n var _a, _b, _c, _d;\n return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n value: validateMessages\n }, childNode);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // =================================== Motion ===================================\n childNode = /*#__PURE__*/React.createElement(MotionWrapper, null, childNode);\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token,\n components,\n cssVar\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\", \"components\", \"cssVar\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : defaultTheme;\n const parsedComponents = {};\n Object.entries(components || {}).forEach(_ref => {\n let [componentName, componentToken] = _ref;\n const parsedToken = Object.assign({}, componentToken);\n if ('algorithm' in parsedToken) {\n if (parsedToken.algorithm === true) {\n parsedToken.theme = themeObj;\n } else if (Array.isArray(parsedToken.algorithm) || typeof parsedToken.algorithm === 'function') {\n parsedToken.theme = createTheme(parsedToken.algorithm);\n }\n delete parsedToken.algorithm;\n }\n parsedComponents[componentName] = parsedToken;\n });\n const mergedToken = Object.assign(Object.assign({}, defaultSeedToken), token);\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: mergedToken,\n components: parsedComponents,\n override: Object.assign({\n override: mergedToken\n }, parsedComponents),\n cssVar: cssVar\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // ================================== Warning ===================================\n if (memoedConfig.warning) {\n childNode = /*#__PURE__*/React.createElement(WarningContext.Provider, {\n value: memoedConfig.warning\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => {\n const context = React.useContext(ConfigContext);\n const antLocale = React.useContext(LocaleContext);\n return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: antLocale\n }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n get: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n return SizeContext;\n }\n});\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","module.exports = __webpack_public_path__ + \"fd3859a700b456e06c65c0cf6b0af05c.js\";","module.exports = __webpack_public_path__ + \"41ae585cdbb9c2e8eefff5d30193029f.js\";","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","module.exports = __webpack_public_path__ + \"bb5bab7a675544fe31ddb7f4a77dffb9.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _DownOutlined = _interopRequireDefault(require('./lib/icons/DownOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _DownOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"07397bd479cbc34bc04576b4f15bdf18.js\";","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\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 * The base implementation of `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheSet;\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const PlusSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 12 12\" {...svgProps}>\n <path d=\"M6.49994 5.49643V1.5C6.49994 1.224 6.27594 1 5.99994 1C5.72394 1 5.49994 1.224 5.49994 1.5V5.49643H1.5C1.224 5.49643 1 5.72043 1 5.99643C1 6.27243 1.224 6.49643 1.5 6.49643H5.49994V10.5C5.49994 10.776 5.72394 11 5.99994 11C6.27594 11 6.49994 10.776 6.49994 10.5V6.49643H10.5C10.776 6.49643 11 6.27243 11 5.99643C11 5.72043 10.776 5.49643 10.5 5.49643H6.49994Z\" />\n </SvgWrapper>\n);\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = __webpack_public_path__ + \"1b15b9f88acaf59b96e59c6b5f32da12.js\";","/** 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 * 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","import { ReactNode } from 'react';\nimport { OpInfoTooltip } from 'new-components/DLS/OpInfoTooltip/OpInfoTooltip';\n\nimport './OpPage.scss';\n\ninterface OpPageProps {\n children: ReactNode | ReactNode[];\n className?: string;\n title?: string | null;\n tooltip?: ReactNode | null;\n subtitle?: string | null;\n contentRight?: ReactNode;\n testId?: string;\n}\n\nexport const OpPage = ({\n children,\n className = '',\n title,\n tooltip,\n subtitle,\n contentRight,\n testId = 'op-page',\n}: OpPageProps) => (\n <div className={`op-page ${className}`.trim()} data-testid={testId}>\n {(title || tooltip || subtitle || contentRight) && (\n <div className=\"op-page__header\">\n <div>\n <div className=\"op-page__title-row\">\n {title && <h1 className=\"op-page__title\">{title}</h1>}\n {tooltip && <OpInfoTooltip title={tooltip} />}\n </div>\n {subtitle && <div className=\"op-page__subtitle\">{subtitle}</div>}\n </div>\n <div className=\"op-page__content-right\">{contentRight}</div>\n </div>\n )}\n {children}\n </div>\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';\nmodule.exports = require('../../es/array/find-last-index');\n","module.exports = __webpack_public_path__ + \"a3dfa410d90c00078f4b015410048f34.js\";","module.exports = __webpack_public_path__ + \"ab0128ab12bcb8729032421b40f5f8dd.js\";","module.exports = __webpack_public_path__ + \"dc932cde2fbfca8e2901fb693968b131.js\";","module.exports = __webpack_public_path__ + \"af6fdb556ee3f9065578bb01f81f6216.js\";","const destroyFns = [];\nexport default destroyFns;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\n\n/**![enter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2NCAxNzBoLTYwYy00LjQgMC04IDMuNi04IDh2NTE4SDMxMHYtNzNjMC02LjctNy44LTEwLjUtMTMtNi4zbC0xNDEuOSAxMTJhOCA4IDAgMDAwIDEyLjZsMTQxLjkgMTEyYzUuMyA0LjIgMTMgLjQgMTMtNi4zdi03NWg0OThjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTc4YzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EnterOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EnterOutlined';\n}\nexport default RefIcon;","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","// https://github.com/alangpierce/sucrase/tree/265887868966917f3b924ce38dfad01fbab1329f\n//\n// The MIT License (MIT)\n//\n// Copyright (c) 2012-2018 various contributors (see AUTHORS)\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 deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// 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 all\n// 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 FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n/**\n * Polyfill for the nullish coalescing operator (`??`).\n *\n * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the\n * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n *\n * @param lhs The value of the expression to the left of the `??`\n * @param rhsFn A function returning the value of the expression to the right of the `??`\n * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value\n */\nfunction _nullishCoalesce(lhs, rhsFn) {\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n return lhs != null ? lhs : rhsFn();\n}\n\n// Sucrase version:\n// function _nullishCoalesce(lhs, rhsFn) {\n// if (lhs != null) {\n// return lhs;\n// } else {\n// return rhsFn();\n// }\n// }\n\nexport { _nullishCoalesce };\n//# sourceMappingURL=_nullishCoalesce.js.map\n","'use strict';\n\nvar removeRule = require('./vcssom/removeRule').removeRule;\n\nexports.addon = function (renderer) {\n // VCSSOM support only browser environment.\n if (!renderer.client) return;\n\n if (process.env.NODE_ENV !== 'production') {\n require('./__dev__/warnOnMissingDependencies')('cssom', renderer, ['createRule']); // cssom\n }\n\n var kebab = renderer.kebab;\n\n function VRule (selector, prelude) {\n this.rule = renderer.createRule(selector, prelude);\n this.decl = {};\n }\n VRule.prototype.diff = function (newDecl) {\n var oldDecl = this.decl;\n var style = this.rule.style;\n var property;\n for (property in oldDecl)\n if (newDecl[property] === undefined)\n style.removeProperty(property);\n for (property in newDecl)\n if (newDecl[property] !== oldDecl[property])\n style.setProperty(kebab(property), newDecl[property]);\n this.decl = newDecl;\n };\n VRule.prototype.del = function () {\n removeRule(this.rule);\n };\n\n function VSheet () {\n /**\n * {\n * '<at-rule-prelude>': {\n * '<selector>': {\n * color: 'red\n * }\n * }\n * }\n */\n this.tree = {};\n }\n VSheet.prototype.diff = function (newTree) {\n var oldTree = this.tree;\n\n // Remove media queries not present in new tree.\n for (var prelude in oldTree) {\n if (newTree[prelude] === undefined) {\n var rules = oldTree[prelude];\n for (var selector in rules)\n rules[selector].del();\n }\n }\n\n for (var prelude in newTree) {\n if (oldTree[prelude] === undefined) {\n // Whole media query is new.\n for (var selector in newTree[prelude]) {\n var rule = new VRule(selector, prelude);\n rule.diff(newTree[prelude][selector]);\n newTree[prelude][selector] = rule;\n }\n } else {\n // Old tree already has rules with this media query.\n var oldRules = oldTree[prelude];\n var newRules = newTree[prelude];\n\n // Remove rules not present in new tree.\n for (var selector in oldRules)\n if (!newRules[selector])\n oldRules[selector].del();\n\n // Apply new rules.\n for (var selector in newRules) {\n var rule = oldRules[selector];\n if (rule) {\n rule.diff(newRules[selector]);\n newRules[selector] = rule;\n } else {\n rule = new VRule(selector, prelude);\n rule.diff(newRules[selector]);\n newRules[selector] = rule;\n }\n }\n }\n }\n\n this.tree = newTree;\n };\n\n renderer.VRule = VRule;\n renderer.VSheet = VSheet;\n};\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-spin{color:var(--colorText)}.op-spin--centered{display:flex;justify-content:center;align-items:center;height:100%;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSpin/OpSpin.scss\"],\"names\":[],\"mappings\":\"AAAA,SACE,sBAAA,CAEA,mBACE,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,UAAA\",\"sourcesContent\":[\".op-spin {\\n color: var(--colorText);\\n\\n &--centered {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 100%;\\n width: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _CaretRightOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/CaretRightOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar CaretRightOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _CaretRightOutlined.default\n }));\n};\n/**![caret-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcxNS44IDQ5My41TDMzNSAxNjUuMWMtMTQuMi0xMi4yLTM1LTEuMi0zNSAxOC41djY1Ni44YzAgMTkuNyAyMC44IDMwLjcgMzUgMTguNWwzODAuOC0zMjguNGMxMC45LTkuNCAxMC45LTI3LjYgMC0zN3oiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(CaretRightOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"CaretRightOutlined\";\n}\nvar _default = RefIcon;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\n\n/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LeftOutlined';\n}\nexport default RefIcon;","import React, { useMemo } from 'react';\nimport { Color } from \"../color\";\nimport { generateColor } from \"../util\";\nvar Gradient = function Gradient(_ref) {\n var colors = _ref.colors,\n children = _ref.children,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'to right' : _ref$direction,\n type = _ref.type,\n prefixCls = _ref.prefixCls;\n var gradientColors = useMemo(function () {\n return colors.map(function (color, idx) {\n var result = generateColor(color);\n if (type === 'alpha' && idx === colors.length - 1) {\n result = new Color(result.setA(1));\n }\n return result.toRgbString();\n }).join(',');\n }, [colors, type]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-gradient\"),\n style: {\n position: 'absolute',\n inset: 0,\n background: \"linear-gradient(\".concat(direction, \", \").concat(gradientColors, \")\")\n }\n }, children);\n};\nexport default Gradient;","module.exports = __webpack_public_path__ + \"c4e58637b4d14c303e29d3ce4b4a210f.js\";","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _ArrowUpOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/ArrowUpOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar ArrowUpOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _ArrowUpOutlined.default\n }));\n};\n/**![arrow-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2OCA1NDUuNUw1MzYuMSAxNjNhMzEuOTYgMzEuOTYgMCAwMC00OC4zIDBMMTU2IDU0NS41YTcuOTcgNy45NyAwIDAwNiAxMy4yaDgxYzQuNiAwIDktMiAxMi4xLTUuNUw0NzQgMzAwLjlWODY0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzAwLjlsMjE4LjkgMjUyLjNjMyAzLjUgNy40IDUuNSAxMi4xIDUuNWg4MWM2LjggMCAxMC41LTggNi0xMy4yeiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(ArrowUpOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"ArrowUpOutlined\";\n}\nvar _default = RefIcon;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","module.exports = __webpack_public_path__ + \"cc715c90d57b30965fc297a12746d6b5.js\";","import classNames from 'classnames';\nexport const flexWrapValues = ['wrap', 'nowrap', 'wrap-reverse'];\nexport const justifyContentValues = ['flex-start', 'flex-end', 'start', 'end', 'center', 'space-between', 'space-around', 'space-evenly', 'stretch', 'normal', 'left', 'right'];\nexport const alignItemsValues = ['center', 'start', 'end', 'flex-start', 'flex-end', 'self-start', 'self-end', 'baseline', 'normal', 'stretch'];\nconst genClsWrap = (prefixCls, props) => {\n const wrap = props.wrap === true ? 'wrap' : props.wrap;\n return {\n [`${prefixCls}-wrap-${wrap}`]: wrap && flexWrapValues.includes(wrap)\n };\n};\nconst genClsAlign = (prefixCls, props) => {\n const alignCls = {};\n alignItemsValues.forEach(cssKey => {\n alignCls[`${prefixCls}-align-${cssKey}`] = props.align === cssKey;\n });\n alignCls[`${prefixCls}-align-stretch`] = !props.align && !!props.vertical;\n return alignCls;\n};\nconst genClsJustify = (prefixCls, props) => {\n const justifyCls = {};\n justifyContentValues.forEach(cssKey => {\n justifyCls[`${prefixCls}-justify-${cssKey}`] = props.justify === cssKey;\n });\n return justifyCls;\n};\nfunction createFlexClassNames(prefixCls, props) {\n return classNames(Object.assign(Object.assign(Object.assign({}, genClsWrap(prefixCls, props)), genClsAlign(prefixCls, props)), genClsJustify(prefixCls, props)));\n}\nexport default createFlexClassNames;","import { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { alignItemsValues, flexWrapValues, justifyContentValues } from '../utils';\nconst genFlexStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'flex',\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-rtl': {\n direction: 'rtl'\n },\n '&:empty': {\n display: 'none'\n }\n }\n };\n};\nconst genFlexGapStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n '&-gap-small': {\n gap: token.flexGapSM\n },\n '&-gap-middle': {\n gap: token.flexGap\n },\n '&-gap-large': {\n gap: token.flexGapLG\n }\n }\n };\n};\nconst genFlexWrapStyle = token => {\n const {\n componentCls\n } = token;\n const wrapStyle = {};\n flexWrapValues.forEach(value => {\n wrapStyle[`${componentCls}-wrap-${value}`] = {\n flexWrap: value\n };\n });\n return wrapStyle;\n};\nconst genAlignItemsStyle = token => {\n const {\n componentCls\n } = token;\n const alignStyle = {};\n alignItemsValues.forEach(value => {\n alignStyle[`${componentCls}-align-${value}`] = {\n alignItems: value\n };\n });\n return alignStyle;\n};\nconst genJustifyContentStyle = token => {\n const {\n componentCls\n } = token;\n const justifyStyle = {};\n justifyContentValues.forEach(value => {\n justifyStyle[`${componentCls}-justify-${value}`] = {\n justifyContent: value\n };\n });\n return justifyStyle;\n};\nexport const prepareComponentToken = () => ({});\nexport default genStyleHooks('Flex', token => {\n const {\n paddingXS,\n padding,\n paddingLG\n } = token;\n const flexToken = mergeToken(token, {\n flexGapSM: paddingXS,\n flexGap: padding,\n flexGapLG: paddingLG\n });\n return [genFlexStyle(flexToken), genFlexGapStyle(flexToken), genFlexWrapStyle(flexToken), genAlignItemsStyle(flexToken), genJustifyContentStyle(flexToken)];\n}, prepareComponentToken, {\n // Flex component don't apply extra font style\n // https://github.com/ant-design/ant-design/issues/46403\n resetStyle: false\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { isPresetSize } from '../_util/gapSize';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport createFlexClassNames from './utils';\nconst Flex = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n rootClassName,\n className,\n style,\n flex,\n gap,\n children,\n vertical = false,\n component: Component = 'div'\n } = props,\n othersProps = __rest(props, [\"prefixCls\", \"rootClassName\", \"className\", \"style\", \"flex\", \"gap\", \"children\", \"vertical\", \"component\"]);\n const {\n flex: ctxFlex,\n direction: ctxDirection,\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('flex', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const mergedVertical = vertical !== null && vertical !== void 0 ? vertical : ctxFlex === null || ctxFlex === void 0 ? void 0 : ctxFlex.vertical;\n const mergedCls = classNames(className, rootClassName, ctxFlex === null || ctxFlex === void 0 ? void 0 : ctxFlex.className, prefixCls, hashId, cssVarCls, createFlexClassNames(prefixCls, props), {\n [`${prefixCls}-rtl`]: ctxDirection === 'rtl',\n [`${prefixCls}-gap-${gap}`]: isPresetSize(gap),\n [`${prefixCls}-vertical`]: mergedVertical\n });\n const mergedStyle = Object.assign(Object.assign({}, ctxFlex === null || ctxFlex === void 0 ? void 0 : ctxFlex.style), style);\n if (flex) {\n mergedStyle.flex = flex;\n }\n if (gap && !isPresetSize(gap)) {\n mergedStyle.gap = gap;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(Component, Object.assign({\n ref: ref,\n className: mergedCls,\n style: mergedStyle\n }, omit(othersProps, ['justify', 'wrap', 'align'])), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Flex.displayName = 'Flex';\n}\nexport default Flex;","module.exports = __webpack_public_path__ + \"d0415105402964718010284fcfa8b2ea.js\";","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","module.exports = __webpack_public_path__ + \"210aec2722e6416a0349a987260e14a3.js\";","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n if (color instanceof Color) {\n return color;\n }\n return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n var offset = props.offset,\n targetRef = props.targetRef,\n containerRef = props.containerRef,\n color = props.color,\n type = props.type;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var saturation = (offset.x + centerOffsetX) / width;\n var bright = 1 - (offset.y + centerOffsetY) / height;\n var hsb = color.toHsb();\n var alphaOffset = saturation;\n var hueOffset = (offset.x + centerOffsetX) / width * 360;\n if (type) {\n switch (type) {\n case 'hue':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n h: hueOffset <= 0 ? 0 : hueOffset\n }));\n case 'alpha':\n return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n a: alphaOffset <= 0 ? 0 : alphaOffset\n }));\n }\n }\n return generateColor({\n h: hsb.h,\n s: saturation <= 0 ? 0 : saturation,\n b: bright >= 1 ? 1 : bright,\n a: hsb.a\n });\n};\nexport var calcOffset = function calcOffset(color, type) {\n var hsb = color.toHsb();\n switch (type) {\n case 'hue':\n return {\n x: hsb.h / 360 * 100,\n y: 50\n };\n case 'alpha':\n return {\n x: color.a * 100,\n y: 50\n };\n\n // Picker panel\n default:\n return {\n x: hsb.s * 100,\n y: (1 - hsb.b) * 100\n };\n }\n};","module.exports = __webpack_public_path__ + \"fb393a7455b47f3d4fc30cf219d5145c.js\";","module.exports = __webpack_public_path__ + \"fd9645aaf1f70c8abc562be41bee25fc.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-page{padding:0.5714285714rem 1.1428571429rem;background-color:var(--colorBgContainer)}@media(min-width: 48rem){.op-page{padding:0.5714285714rem 2.2857142857rem}}.op-page__header{margin-bottom:1.1428571429rem;display:flex;justify-content:space-between}.op-page__title-row{display:flex}.op-page__title{padding-right:0.2857142857rem}.op-page__subtitle{font-size:1rem;color:var(--colorTextLabel)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/OpPage/OpPage.scss\"],\"names\":[],\"mappings\":\"AAEA,SACE,uCAAA,CACA,wCAAA,CAAA,yBAFF,SAKI,uCAAA,CAAA,CAGF,iBACE,6BAAA,CACA,YAAA,CACA,6BAAA,CAGF,oBACE,YAAA,CAGF,gBACE,6BAAA,CAGF,mBACE,cAAA,CACA,2BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-page {\\n padding: common.toRem(8) common.toRem(16);\\n background-color: var(--colorBgContainer);\\n\\n @include common.larger-than(common.$tablet-portrait-width) {\\n padding: common.toRem(8) common.toRem(32);\\n }\\n\\n &__header {\\n margin-bottom: common.toRem(16);\\n display: flex;\\n justify-content: space-between;\\n }\\n\\n &__title-row {\\n display: flex;\\n }\\n\\n &__title {\\n padding-right: common.toRem(4);\\n }\\n\\n &__subtitle {\\n font-size: common.toRem(14);\\n color: var(--colorTextLabel);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import CSSCalculator from \"./CSSCalculator\";\nimport NumCalculator from \"./NumCalculator\";\nvar genCalc = function genCalc(type, unitlessCssVar) {\n var Calculator = type === 'css' ? CSSCalculator : NumCalculator;\n return function (num) {\n return new Calculator(num, unitlessCssVar);\n };\n};\nexport default genCalc;","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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\nexport default isFunction;\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","import { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genStyleHooks, mergeToken, PresetColors } from '../../theme/internal';\nconst genBaseStyle = token => {\n const {\n componentCls,\n popoverColor,\n titleMinWidth,\n fontWeightStrong,\n innerPadding,\n boxShadowSecondary,\n colorTextHeading,\n borderRadiusLG,\n zIndexPopup,\n titleMarginBottom,\n colorBgElevated,\n popoverBg,\n titleBorderBottom,\n innerContentPadding,\n titlePadding\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: 0,\n // use `left` to fix https://github.com/ant-design/ant-design/issues/39195\n left: {\n _skip_check_: true,\n value: 0\n },\n zIndex: zIndexPopup,\n fontWeight: 'normal',\n whiteSpace: 'normal',\n textAlign: 'start',\n cursor: 'auto',\n userSelect: 'text',\n // When use `autoArrow`, origin will follow the arrow position\n '--valid-offset-x': 'var(--arrow-offset-horizontal, var(--arrow-x))',\n transformOrigin: [`var(--valid-offset-x, 50%)`, `var(--arrow-y, 50%)`].join(' '),\n '--antd-arrow-background-color': colorBgElevated,\n width: 'max-content',\n maxWidth: '100vw',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n },\n [`${componentCls}-inner`]: {\n backgroundColor: popoverBg,\n backgroundClip: 'padding-box',\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n padding: innerPadding\n },\n [`${componentCls}-title`]: {\n minWidth: titleMinWidth,\n marginBottom: titleMarginBottom,\n color: colorTextHeading,\n fontWeight: fontWeightStrong,\n borderBottom: titleBorderBottom,\n padding: titlePadding\n },\n [`${componentCls}-inner-content`]: {\n color: popoverColor,\n padding: innerContentPadding\n }\n })\n },\n // Arrow Style\n getArrowStyle(token, 'var(--antd-arrow-background-color)'),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow,\n display: 'inline-block',\n [`${componentCls}-content`]: {\n display: 'inline-block'\n }\n }\n }];\n};\nconst genColorStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: PresetColors.map(colorKey => {\n const lightColor = token[`${colorKey}6`];\n return {\n [`&${componentCls}-${colorKey}`]: {\n '--antd-arrow-background-color': lightColor,\n [`${componentCls}-inner`]: {\n backgroundColor: lightColor\n },\n [`${componentCls}-arrow`]: {\n background: 'transparent'\n }\n }\n };\n })\n };\n};\nexport const prepareComponentToken = token => {\n const {\n lineWidth,\n controlHeight,\n fontHeight,\n padding,\n wireframe,\n zIndexPopupBase,\n borderRadiusLG,\n marginXS,\n lineType,\n colorSplit,\n paddingSM\n } = token;\n const titlePaddingBlockDist = controlHeight - fontHeight;\n const popoverTitlePaddingBlockTop = titlePaddingBlockDist / 2;\n const popoverTitlePaddingBlockBottom = titlePaddingBlockDist / 2 - lineWidth;\n const popoverPaddingHorizontal = padding;\n return Object.assign(Object.assign(Object.assign({\n titleMinWidth: 177,\n zIndexPopup: zIndexPopupBase + 30\n }, getArrowToken(token)), getArrowOffsetToken({\n contentRadius: borderRadiusLG,\n limitVerticalRadius: true\n })), {\n // internal\n innerPadding: wireframe ? 0 : 12,\n titleMarginBottom: wireframe ? 0 : marginXS,\n titlePadding: wireframe ? `${popoverTitlePaddingBlockTop}px ${popoverPaddingHorizontal}px ${popoverTitlePaddingBlockBottom}px` : 0,\n titleBorderBottom: wireframe ? `${lineWidth}px ${lineType} ${colorSplit}` : 'none',\n innerContentPadding: wireframe ? `${paddingSM}px ${popoverPaddingHorizontal}px` : 0\n });\n};\nexport default genStyleHooks('Popover', token => {\n const {\n colorBgElevated,\n colorText\n } = token;\n const popoverToken = mergeToken(token, {\n popoverBg: colorBgElevated,\n popoverColor: colorText\n });\n return [genBaseStyle(popoverToken), genColorStyle(popoverToken), initZoomMotion(popoverToken, 'zoom-big')];\n}, prepareComponentToken, {\n resetStyle: false,\n deprecatedTokens: [['width', 'titleMinWidth'], ['minWidth', 'titleMinWidth']]\n});","import { getClient, showReportDialog, withScope } from '@sentry/browser';\nimport { logger } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { captureReactException } from './error.js';\n\nconst UNKNOWN_COMPONENT = 'unknown';\n\nconst INITIAL_STATE = {\n componentStack: null,\n error: null,\n eventId: null,\n};\n\n/**\n * A ErrorBoundary component that logs errors to Sentry.\n * NOTE: If you are a Sentry user, and you are seeing this stack frame, it means the\n * Sentry React SDK ErrorBoundary caught an error invoking your application code. This\n * is expected behavior and NOT indicative of a bug with the Sentry React SDK.\n */\nclass ErrorBoundary extends React.Component {\n\n constructor(props) {\n super(props);ErrorBoundary.prototype.__init.call(this);\n this.state = INITIAL_STATE;\n this._openFallbackReportDialog = true;\n\n const client = getClient();\n if (client && props.showDialog) {\n this._openFallbackReportDialog = false;\n this._cleanupHook = client.on('afterSendEvent', event => {\n if (!event.type && this._lastEventId && event.event_id === this._lastEventId) {\n showReportDialog({ ...props.dialogOptions, eventId: this._lastEventId });\n }\n });\n }\n }\n\n componentDidCatch(error, errorInfo) {\n const { componentStack } = errorInfo;\n // TODO(v9): Remove this check and type `componentStack` to be React.ErrorInfo['componentStack'].\n const passedInComponentStack = componentStack == null ? undefined : componentStack;\n\n const { beforeCapture, onError, showDialog, dialogOptions } = this.props;\n withScope(scope => {\n if (beforeCapture) {\n beforeCapture(scope, error, passedInComponentStack);\n }\n\n const eventId = captureReactException(error, errorInfo, { mechanism: { handled: !!this.props.fallback } });\n\n if (onError) {\n onError(error, passedInComponentStack, eventId);\n }\n if (showDialog) {\n this._lastEventId = eventId;\n if (this._openFallbackReportDialog) {\n showReportDialog({ ...dialogOptions, eventId });\n }\n }\n\n // componentDidCatch is used over getDerivedStateFromError\n // so that componentStack is accessible through state.\n this.setState({ error, componentStack, eventId });\n });\n }\n\n componentDidMount() {\n const { onMount } = this.props;\n if (onMount) {\n onMount();\n }\n }\n\n componentWillUnmount() {\n const { error, componentStack, eventId } = this.state;\n const { onUnmount } = this.props;\n if (onUnmount) {\n onUnmount(error, componentStack, eventId);\n }\n\n if (this._cleanupHook) {\n this._cleanupHook();\n this._cleanupHook = undefined;\n }\n }\n\n __init() {this.resetErrorBoundary = () => {\n const { onReset } = this.props;\n const { error, componentStack, eventId } = this.state;\n if (onReset) {\n onReset(error, componentStack, eventId);\n }\n this.setState(INITIAL_STATE);\n };}\n\n render() {\n const { fallback, children } = this.props;\n const state = this.state;\n\n if (state.error) {\n let element = undefined;\n if (typeof fallback === 'function') {\n element = React.createElement(fallback, {\n error: state.error,\n componentStack: state.componentStack ,\n resetError: this.resetErrorBoundary,\n eventId: state.eventId ,\n });\n } else {\n element = fallback;\n }\n\n if (React.isValidElement(element)) {\n return element;\n }\n\n if (fallback) {\n DEBUG_BUILD && logger.warn('fallback did not produce a valid ReactElement');\n }\n\n // Fail gracefully if no fallback provided or is not valid\n return null;\n }\n\n if (typeof children === 'function') {\n return (children )();\n }\n return children;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withErrorBoundary(\n WrappedComponent,\n errorBoundaryOptions,\n) {\n const componentDisplayName = WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped = (props) => (\n React.createElement(ErrorBoundary, { ...errorBoundaryOptions,}\n , React.createElement(WrappedComponent, { ...props,} )\n )\n );\n\n Wrapped.displayName = `errorBoundary(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\nexport { ErrorBoundary, UNKNOWN_COMPONENT, withErrorBoundary };\n//# sourceMappingURL=errorboundary.js.map\n","export default 'ffffffff-ffff-ffff-ffff-ffffffffffff';","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;","import validate from './validate.js';\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n var v;\n var arr = new Uint8Array(16);\n\n // Parse ########-....-....-....-............\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff;\n\n // Parse ........-####-....-....-............\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff;\n\n // Parse ........-....-####-....-............\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff;\n\n // Parse ........-....-....-####-............\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff;\n\n // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\nexport default parse;","import REGEX from './regex.js';\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\nexport default validate;","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n return bytes;\n}\nexport var DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport var URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n }\n\n // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n return buf;\n }\n return unsafeStringify(bytes);\n }\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch (err) {}\n\n // For CommonJS default export support\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n\n/*\n * Convert an array of little-endian words to an array of bytes\n */\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n return output;\n}\n\n/**\n * Calculate output length with padding and bit length\n */\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n return [a, b, c, d];\n}\n\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n return output;\n}\n\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nvar v3 = v35('v3', 0x30, md5);\nexport default v3;","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n case 1:\n return x ^ y ^ z;\n case 2:\n return x & y ^ x & z ^ y & z;\n case 3:\n return x ^ y ^ z;\n }\n}\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n M[_i] = arr;\n }\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nvar v5 = v35('v5', 0x50, sha1);\nexport default v5;","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar WarningOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\" } }] }, \"name\": \"warning\", \"theme\": \"outlined\" };\nexports.default = WarningOutlined;\n","module.exports = __webpack_public_path__ + \"ceecba6f637fcd258c33ac42d59c3166.js\";","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAceInstance = exports.debounce = exports.editorEvents = exports.editorOptions = void 0;\nvar editorOptions = [\n \"minLines\",\n \"maxLines\",\n \"readOnly\",\n \"highlightActiveLine\",\n \"tabSize\",\n \"enableBasicAutocompletion\",\n \"enableLiveAutocompletion\",\n \"enableSnippets\"\n];\nexports.editorOptions = editorOptions;\nvar editorEvents = [\n \"onChange\",\n \"onFocus\",\n \"onInput\",\n \"onBlur\",\n \"onCopy\",\n \"onPaste\",\n \"onSelectionChange\",\n \"onCursorChange\",\n \"onScroll\",\n \"handleOptions\",\n \"updateRef\"\n];\nexports.editorEvents = editorEvents;\nvar getAceInstance = function () {\n var ace;\n if (typeof window === \"undefined\") {\n // ace-builds just needs some window object to attach ace to.\n // During SSR even just an empty object will work.\n global.window = {};\n ace = require(\"ace-builds\");\n // And it can be discarded immediately afterward to avoid confusing\n // other libraries that might detect SSR the same way we did.\n delete global.window;\n }\n else if (window.ace) {\n // Fallback for ace.require when vanilla ACE is hosted over a CDN\n ace = window.ace;\n ace.acequire = window.ace.require || window.ace.acequire;\n }\n else {\n ace = require(\"ace-builds\");\n }\n return ace;\n};\nexports.getAceInstance = getAceInstance;\nvar debounce = function (fn, delay) {\n var timer = null;\n // tslint:disable-next-line\n return function () {\n var context = this;\n var args = arguments;\n clearTimeout(timer);\n timer = setTimeout(function () {\n fn.apply(context, args);\n }, delay);\n };\n};\nexports.debounce = debounce;\n//# sourceMappingURL=editorOptions.js.map","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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\nmodule.exports = keys;\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","var locale = {\n // Options\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};\nexport default locale;","export const REQUEST_ORG_PACKAGE_PLANS =\n 'orgPackagePlans/REQUEST_ORG_PACKAGE_PLANS';\nexport const SET_ORG_PACKAGE_PLANS = 'orgPackagePlans/SET_ORG_PACKAGE_PLANS';\n","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Element = props => {\n const {\n prefixCls,\n className,\n style,\n size,\n shape\n } = props;\n const sizeCls = classNames({\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-sm`]: size === 'small'\n });\n const shapeCls = classNames({\n [`${prefixCls}-circle`]: shape === 'circle',\n [`${prefixCls}-square`]: shape === 'square',\n [`${prefixCls}-round`]: shape === 'round'\n });\n const sizeStyle = React.useMemo(() => typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: `${size}px`\n } : {}, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: Object.assign(Object.assign({}, sizeStyle), style)\n });\n};\nexport default Element;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst skeletonClsLoading = new Keyframes(`ant-skeleton-loading`, {\n '0%': {\n backgroundPosition: '100% 50%'\n },\n '100%': {\n backgroundPosition: '0 50%'\n }\n});\nconst genSkeletonElementCommonSize = size => ({\n height: size,\n lineHeight: unit(size)\n});\nconst genSkeletonElementAvatarSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonColor = token => ({\n background: token.skeletonLoadingBackground,\n backgroundSize: '400% 100%',\n animationName: skeletonClsLoading,\n animationDuration: token.skeletonLoadingMotionDuration,\n animationTimingFunction: 'ease',\n animationIterationCount: 'infinite'\n});\nconst genSkeletonElementInputSize = (size, calc) => Object.assign({\n width: calc(size).mul(5).equal(),\n minWidth: calc(size).mul(5).equal()\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementAvatar = token => {\n const {\n skeletonAvatarCls,\n gradientFromColor,\n controlHeight,\n controlHeightLG,\n controlHeightSM\n } = token;\n return {\n [skeletonAvatarCls]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n };\n};\nconst genSkeletonElementInput = token => {\n const {\n controlHeight,\n borderRadiusSM,\n skeletonInputCls,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor,\n calc\n } = token;\n return {\n [skeletonInputCls]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor,\n borderRadius: borderRadiusSM\n }, genSkeletonElementInputSize(controlHeight, calc)),\n [`${skeletonInputCls}-lg`]: Object.assign({}, genSkeletonElementInputSize(controlHeightLG, calc)),\n [`${skeletonInputCls}-sm`]: Object.assign({}, genSkeletonElementInputSize(controlHeightSM, calc))\n };\n};\nconst genSkeletonElementImageSize = size => Object.assign({\n width: size\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementImage = token => {\n const {\n skeletonImageCls,\n imageSizeBase,\n gradientFromColor,\n borderRadiusSM,\n calc\n } = token;\n return {\n [skeletonImageCls]: Object.assign(Object.assign({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n background: gradientFromColor,\n borderRadius: borderRadiusSM\n }, genSkeletonElementImageSize(calc(imageSizeBase).mul(2).equal())), {\n [`${skeletonImageCls}-path`]: {\n fill: '#bfbfbf'\n },\n [`${skeletonImageCls}-svg`]: Object.assign(Object.assign({}, genSkeletonElementImageSize(imageSizeBase)), {\n maxWidth: calc(imageSizeBase).mul(4).equal(),\n maxHeight: calc(imageSizeBase).mul(4).equal()\n }),\n [`${skeletonImageCls}-svg${skeletonImageCls}-svg-circle`]: {\n borderRadius: '50%'\n }\n }),\n [`${skeletonImageCls}${skeletonImageCls}-circle`]: {\n borderRadius: '50%'\n }\n };\n};\nconst genSkeletonElementButtonShape = (token, size, buttonCls) => {\n const {\n skeletonButtonCls\n } = token;\n return {\n [`${buttonCls}${skeletonButtonCls}-circle`]: {\n width: size,\n minWidth: size,\n borderRadius: '50%'\n },\n [`${buttonCls}${skeletonButtonCls}-round`]: {\n borderRadius: size\n }\n };\n};\nconst genSkeletonElementButtonSize = (size, calc) => Object.assign({\n width: calc(size).mul(2).equal(),\n minWidth: calc(size).mul(2).equal()\n}, genSkeletonElementCommonSize(size));\nconst genSkeletonElementButton = token => {\n const {\n borderRadiusSM,\n skeletonButtonCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor,\n calc\n } = token;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n [skeletonButtonCls]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor,\n borderRadius: borderRadiusSM,\n width: calc(controlHeight).mul(2).equal(),\n minWidth: calc(controlHeight).mul(2).equal()\n }, genSkeletonElementButtonSize(controlHeight, calc))\n }, genSkeletonElementButtonShape(token, controlHeight, skeletonButtonCls)), {\n [`${skeletonButtonCls}-lg`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightLG, calc))\n }), genSkeletonElementButtonShape(token, controlHeightLG, `${skeletonButtonCls}-lg`)), {\n [`${skeletonButtonCls}-sm`]: Object.assign({}, genSkeletonElementButtonSize(controlHeightSM, calc))\n }), genSkeletonElementButtonShape(token, controlHeightSM, `${skeletonButtonCls}-sm`));\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n skeletonAvatarCls,\n skeletonTitleCls,\n skeletonParagraphCls,\n skeletonButtonCls,\n skeletonInputCls,\n skeletonImageCls,\n controlHeight,\n controlHeightLG,\n controlHeightSM,\n gradientFromColor,\n padding,\n marginSM,\n borderRadius,\n titleHeight,\n blockRadius,\n paragraphLiHeight,\n controlHeightXS,\n paragraphMarginTop\n } = token;\n return {\n [componentCls]: {\n display: 'table',\n width: '100%',\n [`${componentCls}-header`]: {\n display: 'table-cell',\n paddingInlineEnd: padding,\n verticalAlign: 'top',\n // Avatar\n [skeletonAvatarCls]: Object.assign({\n display: 'inline-block',\n verticalAlign: 'top',\n background: gradientFromColor\n }, genSkeletonElementAvatarSize(controlHeight)),\n [`${skeletonAvatarCls}-circle`]: {\n borderRadius: '50%'\n },\n [`${skeletonAvatarCls}-lg`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightLG)),\n [`${skeletonAvatarCls}-sm`]: Object.assign({}, genSkeletonElementAvatarSize(controlHeightSM))\n },\n [`${componentCls}-content`]: {\n display: 'table-cell',\n width: '100%',\n verticalAlign: 'top',\n // Title\n [skeletonTitleCls]: {\n width: '100%',\n height: titleHeight,\n background: gradientFromColor,\n borderRadius: blockRadius,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: controlHeightSM\n }\n },\n // paragraph\n [skeletonParagraphCls]: {\n padding: 0,\n '> li': {\n width: '100%',\n height: paragraphLiHeight,\n listStyle: 'none',\n background: gradientFromColor,\n borderRadius: blockRadius,\n '+ li': {\n marginBlockStart: controlHeightXS\n }\n }\n },\n [`${skeletonParagraphCls}> li:last-child:not(:first-child):not(:nth-child(2))`]: {\n width: '61%'\n }\n },\n [`&-round ${componentCls}-content`]: {\n [`${skeletonTitleCls}, ${skeletonParagraphCls} > li`]: {\n borderRadius\n }\n }\n },\n [`${componentCls}-with-avatar ${componentCls}-content`]: {\n // Title\n [skeletonTitleCls]: {\n marginBlockStart: marginSM,\n [`+ ${skeletonParagraphCls}`]: {\n marginBlockStart: paragraphMarginTop\n }\n }\n },\n // Skeleton element\n [`${componentCls}${componentCls}-element`]: Object.assign(Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n width: 'auto'\n }, genSkeletonElementButton(token)), genSkeletonElementAvatar(token)), genSkeletonElementInput(token)), genSkeletonElementImage(token)),\n // Skeleton Block Button, Input\n [`${componentCls}${componentCls}-block`]: {\n width: '100%',\n [skeletonButtonCls]: {\n width: '100%'\n },\n [skeletonInputCls]: {\n width: '100%'\n }\n },\n // With active animation\n [`${componentCls}${componentCls}-active`]: {\n [`\n ${skeletonTitleCls},\n ${skeletonParagraphCls} > li,\n ${skeletonAvatarCls},\n ${skeletonButtonCls},\n ${skeletonInputCls},\n ${skeletonImageCls}\n `]: Object.assign({}, genSkeletonColor(token))\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n colorFillContent,\n colorFill\n } = token;\n const gradientFromColor = colorFillContent;\n const gradientToColor = colorFill;\n return {\n color: gradientFromColor,\n colorGradientEnd: gradientToColor,\n gradientFromColor,\n gradientToColor,\n titleHeight: token.controlHeight / 2,\n blockRadius: token.borderRadiusSM,\n paragraphMarginTop: token.marginLG + token.marginXXS,\n paragraphLiHeight: token.controlHeight / 2\n };\n};\nexport default genStyleHooks('Skeleton', token => {\n const {\n componentCls,\n calc\n } = token;\n const skeletonToken = mergeToken(token, {\n skeletonAvatarCls: `${componentCls}-avatar`,\n skeletonTitleCls: `${componentCls}-title`,\n skeletonParagraphCls: `${componentCls}-paragraph`,\n skeletonButtonCls: `${componentCls}-button`,\n skeletonInputCls: `${componentCls}-input`,\n skeletonImageCls: `${componentCls}-image`,\n imageSizeBase: calc(token.controlHeight).mul(1.5).equal(),\n borderRadius: 100,\n // Large number to make capsule shape\n skeletonLoadingBackground: `linear-gradient(90deg, ${token.gradientFromColor} 25%, ${token.gradientToColor} 37%, ${token.gradientFromColor} 63%)`,\n skeletonLoadingMotionDuration: '1.4s'\n });\n return [genBaseStyle(skeletonToken)];\n}, prepareComponentToken, {\n deprecatedTokens: [['color', 'gradientFromColor'], ['colorGradientEnd', 'gradientToColor']]\n});","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst getWidth = (index, props) => {\n const {\n width,\n rows = 2\n } = props;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n};\nconst Paragraph = props => {\n const {\n prefixCls,\n className,\n style,\n rows\n } = props;\n const rowList = _toConsumableArray(new Array(rows)).map((_, index) => (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index, props)\n }\n })));\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","\"use client\";\n\n/* eslint-disable jsx-a11y/heading-has-content */\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst Title = _ref => {\n let {\n prefixCls,\n className,\n width,\n style\n } = _ref;\n return (\n /*#__PURE__*/\n // biome-ignore lint/a11y/useHeadingContent: HOC here\n React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: Object.assign({\n width\n }, style)\n })\n );\n};\nexport default Title;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport SkeletonNode from './Node';\nimport Paragraph from './Paragraph';\nimport useStyle from './style';\nimport Title from './Title';\nfunction getComponentProps(prop) {\n if (prop && typeof prop === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n const basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nconst Skeleton = props => {\n const {\n prefixCls: customizePrefixCls,\n loading,\n className,\n rootClassName,\n style,\n children,\n avatar = false,\n title = true,\n paragraph = true,\n active,\n round\n } = props;\n const {\n getPrefixCls,\n direction,\n skeleton\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n if (loading || !('loading' in props)) {\n const hasAvatar = !!avatar;\n const hasTitle = !!title;\n const hasParagraph = !!paragraph;\n // Avatar\n let avatarNode;\n if (hasAvatar) {\n const avatarProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-avatar`\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-header`\n }, /*#__PURE__*/React.createElement(Element, Object.assign({}, avatarProps)));\n }\n let contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n let $title;\n if (hasTitle) {\n const titleProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-title`\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, Object.assign({}, titleProps));\n }\n // Paragraph\n let paragraphNode;\n if (hasParagraph) {\n const paragraphProps = Object.assign(Object.assign({\n prefixCls: `${prefixCls}-paragraph`\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, Object.assign({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, $title, paragraphNode);\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-with-avatar`]: hasAvatar,\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-round`]: round\n }, skeleton === null || skeleton === void 0 ? void 0 : skeleton.className, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: Object.assign(Object.assign({}, skeleton === null || skeleton === void 0 ? void 0 : skeleton.style), style)\n }, avatarNode, contentNode));\n }\n return children !== null && children !== void 0 ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nif (process.env.NODE_ENV !== 'production') {\n Skeleton.displayName = 'Skeleton';\n}\nexport default Skeleton;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonButton = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n block = false,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-button`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonButton;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonAvatar = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n shape = 'circle',\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls', 'className']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-avatar`,\n shape: shape,\n size: size\n }, otherProps))));\n};\nexport default SkeletonAvatar;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nimport useStyle from './style';\nconst SkeletonInput = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n active,\n block,\n size = 'default'\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const otherProps = omit(props, ['prefixCls']);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active,\n [`${prefixCls}-block`]: block\n }, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, Object.assign({\n prefixCls: `${prefixCls}-input`,\n size: size\n }, otherProps))));\n};\nexport default SkeletonInput;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nconst SkeletonImage = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n active\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: `${prefixCls}-image-svg`\n }, /*#__PURE__*/React.createElement(\"title\", null, \"Image placeholder\"), /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: `${prefixCls}-image-path`\n })))));\n};\nexport default SkeletonImage;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst SkeletonNode = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n active,\n children\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-element`, {\n [`${prefixCls}-active`]: active\n }, hashId, className, rootClassName, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-image`, className),\n style: style\n }, children)));\n};\nexport default SkeletonNode;","\"use client\";\n\nimport Skeleton from './Skeleton';\nexport default Skeleton;","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _isUndefined from \"lodash-es/isUndefined\";\nimport _startsWith from \"lodash-es/startsWith\";\nimport _filter from \"lodash-es/filter\";\nimport _isEmpty from \"lodash-es/isEmpty\";\nimport _keys from \"lodash-es/keys\";\nimport _intersection from \"lodash-es/intersection\";\nimport _has from \"lodash-es/has\";\nimport _each from \"lodash-es/each\";\nimport _invoke from \"lodash-es/invoke\";\nimport React from 'react';\n\nvar getDefaultPropName = function getDefaultPropName(prop) {\n return \"default\" + (prop[0].toUpperCase() + prop.slice(1));\n};\n/**\n * Return the auto controlled state value for a give prop. The initial value is chosen in this order:\n * - regular props\n * - then, default props\n * - then, initial state\n * - then, `checked` defaults to false\n * - then, `value` defaults to '' or [] if props.multiple\n * - else, undefined\n *\n * @param {string} propName A prop name\n * @param {object} [props] A props object\n * @param {object} [state] A state object\n * @param {boolean} [includeDefaults=false] Whether or not to heed the default props or initial state\n */\n\n\nvar getAutoControlledStateValue = function getAutoControlledStateValue(propName, props, state, includeDefaults) {\n if (includeDefaults === void 0) {\n includeDefaults = false;\n }\n\n // regular props\n var propValue = props[propName];\n if (propValue !== undefined) return propValue;\n\n if (includeDefaults) {\n // defaultProps\n var defaultProp = props[getDefaultPropName(propName)];\n if (defaultProp !== undefined) return defaultProp; // initial state - state may be null or undefined\n\n if (state) {\n var initialState = state[propName];\n if (initialState !== undefined) return initialState;\n }\n } // React doesn't allow changing from uncontrolled to controlled components,\n // default checked/value if they were not present.\n\n\n if (propName === 'checked') return false;\n if (propName === 'value') return props.multiple ? [] : ''; // otherwise, undefined\n};\n\nvar ModernAutoControlledComponent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ModernAutoControlledComponent, _React$Component);\n\n function ModernAutoControlledComponent() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n var _this$constructor = _this.constructor,\n autoControlledProps = _this$constructor.autoControlledProps,\n getAutoControlledStateFromProps = _this$constructor.getAutoControlledStateFromProps;\n var state = _invoke(_assertThisInitialized(_this), 'getInitialAutoControlledState', _this.props) || {};\n\n if (process.env.NODE_ENV !== 'production') {\n var _this$constructor2 = _this.constructor,\n defaultProps = _this$constructor2.defaultProps,\n name = _this$constructor2.name,\n propTypes = _this$constructor2.propTypes,\n getDerivedStateFromProps = _this$constructor2.getDerivedStateFromProps; // require usage of getAutoControlledStateFromProps()\n\n if (getDerivedStateFromProps !== ModernAutoControlledComponent.getDerivedStateFromProps) {\n /* eslint-disable-next-line no-console */\n console.error(\"Auto controlled \" + name + \" must specify a static getAutoControlledStateFromProps() instead of getDerivedStateFromProps().\");\n } // require propTypes\n\n\n _each(autoControlledProps, function (prop) {\n var defaultProp = getDefaultPropName(prop); // regular prop\n\n if (!_has(propTypes, defaultProp)) {\n console.error(name + \" is missing \\\"\" + defaultProp + \"\\\" propTypes validation for auto controlled prop \\\"\" + prop + \"\\\".\");\n } // its default prop\n\n\n if (!_has(propTypes, prop)) {\n console.error(name + \" is missing propTypes validation for auto controlled prop \\\"\" + prop + \"\\\".\");\n }\n }); // prevent autoControlledProps in defaultProps\n //\n // When setting state, auto controlled props values always win (so the parent can manage them).\n // It is not reasonable to decipher the difference between props from the parent and defaultProps.\n // Allowing defaultProps results in trySetState always deferring to the defaultProp value.\n // Auto controlled props also listed in defaultProps can never be updated.\n //\n // To set defaults for an AutoControlled prop, you can set the initial state in the\n // constructor or by using an ES7 property initializer:\n // https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers\n\n\n var illegalDefaults = _intersection(autoControlledProps, _keys(defaultProps));\n\n if (!_isEmpty(illegalDefaults)) {\n console.error(['Do not set defaultProps for autoControlledProps. You can set defaults by', 'setting state in the constructor or using an ES7 property initializer', '(https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers)', \"See \" + name + \" props: \\\"\" + illegalDefaults + \"\\\".\"].join(' '));\n } // prevent listing defaultProps in autoControlledProps\n //\n // Default props are automatically handled.\n // Listing defaults in autoControlledProps would result in allowing defaultDefaultValue props.\n\n\n var illegalAutoControlled = _filter(autoControlledProps, function (prop) {\n return _startsWith(prop, 'default');\n });\n\n if (!_isEmpty(illegalAutoControlled)) {\n console.error(['Do not add default props to autoControlledProps.', 'Default props are automatically handled.', \"See \" + name + \" autoControlledProps: \\\"\" + illegalAutoControlled + \"\\\".\"].join(' '));\n }\n } // Auto controlled props are copied to state.\n // Set initial state by copying auto controlled props to state.\n // Also look for the default prop for any auto controlled props (foo => defaultFoo)\n // so we can set initial values from defaults.\n\n\n var initialAutoControlledState = autoControlledProps.reduce(function (acc, prop) {\n acc[prop] = getAutoControlledStateValue(prop, _this.props, state, true);\n\n if (process.env.NODE_ENV !== 'production') {\n var defaultPropName = getDefaultPropName(prop);\n var _name = _this.constructor.name; // prevent defaultFoo={} along side foo={}\n\n if (!_isUndefined(_this.props[defaultPropName]) && !_isUndefined(_this.props[prop])) {\n console.error(_name + \" prop \\\"\" + prop + \"\\\" is auto controlled. Specify either \" + defaultPropName + \" or \" + prop + \", but not both.\");\n }\n }\n\n return acc;\n }, {});\n _this.state = _extends({}, state, initialAutoControlledState, {\n autoControlledProps: autoControlledProps,\n getAutoControlledStateFromProps: getAutoControlledStateFromProps\n });\n return _this;\n }\n\n ModernAutoControlledComponent.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var autoControlledProps = state.autoControlledProps,\n getAutoControlledStateFromProps = state.getAutoControlledStateFromProps; // Solve the next state for autoControlledProps\n\n var newStateFromProps = autoControlledProps.reduce(function (acc, prop) {\n var isNextDefined = !_isUndefined(props[prop]); // if next is defined then use its value\n\n if (isNextDefined) acc[prop] = props[prop];\n return acc;\n }, {}); // Due to the inheritance of the AutoControlledComponent we should call its\n // getAutoControlledStateFromProps() and merge it with the existing state\n\n if (getAutoControlledStateFromProps) {\n var computedState = getAutoControlledStateFromProps(props, _extends({}, state, newStateFromProps), state); // We should follow the idea of getDerivedStateFromProps() and return only modified state\n\n return _extends({}, newStateFromProps, computedState);\n }\n\n return newStateFromProps;\n }\n /**\n * Override this method to use getDerivedStateFromProps() in child components.\n */\n ;\n\n ModernAutoControlledComponent.getAutoControlledStateFromProps = function getAutoControlledStateFromProps() {\n return null;\n };\n\n return ModernAutoControlledComponent;\n}(React.Component);\n\nexport { ModernAutoControlledComponent as default };","import _find from \"lodash-es/find\";\nimport _some from \"lodash-es/some\";\nimport { Children } from 'react';\n/**\n * Determine if child by type exists in children.\n * @param {Object} children The children prop of a component.\n * @param {string|Function} type An html tag name string or React component.\n * @returns {Boolean}\n */\n\nexport var someByType = function someByType(children, type) {\n return _some(Children.toArray(children), {\n type: type\n });\n};\n/**\n * Find child by type.\n * @param {Object} children The children prop of a component.\n * @param {string|Function} type An html tag name string or React component.\n * @returns {undefined|Object}\n */\n\nexport var findByType = function findByType(children, type) {\n return _find(Children.toArray(children), {\n type: type\n });\n};\n/**\n * Tests if children are nil in React and Preact.\n * @param {Object} children The children prop of a component.\n * @returns {Boolean}\n */\n\nexport var isNil = function isNil(children) {\n return children === null || children === undefined || Array.isArray(children) && children.length === 0;\n};","export var numberToWordMap = {\n 1: 'one',\n 2: 'two',\n 3: 'three',\n 4: 'four',\n 5: 'five',\n 6: 'six',\n 7: 'seven',\n 8: 'eight',\n 9: 'nine',\n 10: 'ten',\n 11: 'eleven',\n 12: 'twelve',\n 13: 'thirteen',\n 14: 'fourteen',\n 15: 'fifteen',\n 16: 'sixteen'\n};\n/**\n * Return the number word for numbers 1-16.\n * Returns strings or numbers as is if there is no corresponding word.\n * Returns an empty string if value is not a string or number.\n * @param {string|number} value The value to convert to a word.\n * @returns {string}\n */\n\nexport function numberToWord(value) {\n var type = typeof value;\n\n if (type === 'string' || type === 'number') {\n return numberToWordMap[value] || value;\n }\n\n return '';\n}","import { numberToWord } from './numberToWord';\n/*\n * There are 3 prop patterns used to build up the className for a component.\n * Each utility here is meant for use in a classnames() argument.\n *\n * There is no util for valueOnly() because it would simply return val.\n * Use the prop value inline instead.\n * <Label size='big' />\n * <div class=\"ui big label\"></div>\n */\n\n/**\n * Props where only the prop key is used in the className.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example\n * <Label tag />\n * <div class=\"ui tag label\"></div>\n */\n\nexport var useKeyOnly = function useKeyOnly(val, key) {\n return val && key;\n};\n/**\n * Props that require both a key and value to create a className.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example\n * <Label corner='left' />\n * <div class=\"ui left corner label\"></div>\n */\n\nexport var useValueAndKey = function useValueAndKey(val, key) {\n return val && val !== true && val + \" \" + key;\n};\n/**\n * Props whose key will be used in className, or value and key.\n * @param {*} val A props value\n * @param {string} key A props key\n *\n * @example Key Only\n * <Label pointing />\n * <div class=\"ui pointing label\"></div>\n *\n * @example Key and Value\n * <Label pointing='left' />\n * <div class=\"ui left pointing label\"></div>\n */\n\nexport var useKeyOrValueAndKey = function useKeyOrValueAndKey(val, key) {\n return val && (val === true ? key : val + \" \" + key);\n}; //\n// Prop to className exceptions\n//\n\n/**\n * The \"multiple\" prop implements control of visibility and reserved classes for Grid subcomponents.\n *\n * @param {*} val The value of the \"multiple\" prop\n * @param {*} key A props key\n *\n * @example\n * <Grid.Row only='mobile' />\n * <Grid.Row only='mobile tablet' />\n * <div class=\"mobile only row\"></div>\n * <div class=\"mobile only tablet only row\"></div>\n */\n\nexport var useMultipleProp = function useMultipleProp(val, key) {\n if (!val || val === true) return null;\n return val.replace('large screen', 'large-screen').replace(/ vertically/g, '-vertically').split(' ').map(function (prop) {\n return prop.replace('-', ' ') + \" \" + key;\n }).join(' ');\n};\n/**\n * The \"textAlign\" prop follows the useValueAndKey except when the value is \"justified'.\n * In this case, only the class \"justified\" is used, ignoring the \"aligned\" class.\n * @param {*} val The value of the \"textAlign\" prop\n *\n * @example\n * <Container textAlign='justified' />\n * <div class=\"ui justified container\"></div>\n *\n * @example\n * <Container textAlign='left' />\n * <div class=\"ui left aligned container\"></div>\n */\n\nexport var useTextAlignProp = function useTextAlignProp(val) {\n return val === 'justified' ? 'justified' : useValueAndKey(val, 'aligned');\n};\n/**\n * The \"verticalAlign\" prop follows the useValueAndKey.\n *\n * @param {*} val The value of the \"verticalAlign\" prop\n *\n * @example\n * <Grid verticalAlign='middle' />\n * <div class=\"ui middle aligned grid\"></div>\n */\n\nexport var useVerticalAlignProp = function useVerticalAlignProp(val) {\n return useValueAndKey(val, 'aligned');\n};\n/**\n * Create \"X\", \"X wide\" and \"equal width\" classNames.\n * \"X\" is a numberToWord value and \"wide\" is configurable.\n * @param {*} val The prop value\n * @param {string} [widthClass=''] The class\n * @param {boolean} [canEqual=false] Flag that indicates possibility of \"equal\" value\n *\n * @example\n * <Grid columns='equal' />\n * <div class=\"ui equal width grid\"></div>\n *\n * <Form widths='equal' />\n * <div class=\"ui equal width form\"></div>\n *\n * <FieldGroup widths='equal' />\n * <div class=\"equal width fields\"></div>\n *\n * @example\n * <Grid columns={4} />\n * <div class=\"ui four column grid\"></div>\n */\n\nexport var useWidthProp = function useWidthProp(val, widthClass, canEqual) {\n if (widthClass === void 0) {\n widthClass = '';\n }\n\n if (canEqual === void 0) {\n canEqual = false;\n }\n\n if (canEqual && val === 'equal') {\n return 'equal width';\n }\n\n var valType = typeof val;\n\n if ((valType === 'string' || valType === 'number') && widthClass) {\n return numberToWord(val) + \" \" + widthClass;\n }\n\n return numberToWord(val);\n};","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import _difference from \"lodash-es/difference\";\nimport _trim from \"lodash-es/trim\";\nimport _isObject from \"lodash-es/isObject\";\nimport _pick from \"lodash-es/pick\";\nimport _keys from \"lodash-es/keys\";\nimport _isPlainObject from \"lodash-es/isPlainObject\";\nimport _isNil from \"lodash-es/isNil\";\nimport _min from \"lodash-es/min\";\nimport _sum from \"lodash-es/sum\";\nimport _map from \"lodash-es/map\";\nimport _sortBy from \"lodash-es/sortBy\";\nimport _take from \"lodash-es/take\";\nimport _memoize from \"lodash-es/memoize\";\nimport PropTypes from 'prop-types';\nimport leven from './leven';\n\nvar typeOf = function typeOf() {\n var _Object$prototype$toS;\n\n return (_Object$prototype$toS = Object.prototype.toString).call.apply(_Object$prototype$toS, arguments);\n};\n/**\n * Ensure a prop is a valid DOM node.\n */\n\n\nexport var domNode = function domNode(props, propName) {\n // skip if prop is undefined\n if (props[propName] === undefined) return; // short circle for SSR env\n\n if (typeof Element === 'undefined') return; // skip if prop is valid\n\n if (props[propName] instanceof Element) return;\n return new Error(\"Invalid prop \\\"\" + propName + \"\\\" supplied, expected a DOM node.\");\n};\n/**\n * Similar to PropTypes.oneOf but shows closest matches.\n * Word order is ignored allowing `left chevron` to match `chevron left`.\n * Useful for very large lists of options (e.g. Icon name, Flag name, etc.)\n * @param {string[]} suggestions An array of allowed values.\n */\n\nexport var suggest = function suggest(suggestions) {\n if (!Array.isArray(suggestions)) {\n throw new Error('Invalid argument supplied to suggest, expected an instance of array.');\n }\n /* eslint-disable max-nested-callbacks */\n\n\n var findBestSuggestions = _memoize(function (str) {\n var propValueWords = str.split(' ');\n return _take(_sortBy(_map(suggestions, function (suggestion) {\n var suggestionWords = suggestion.split(' ');\n\n var propValueScore = _sum(_map(_map(propValueWords, function (x) {\n return _map(suggestionWords, function (y) {\n return leven(x, y);\n });\n }), _min));\n\n var suggestionScore = _sum(_map(_map(suggestionWords, function (x) {\n return _map(propValueWords, function (y) {\n return leven(x, y);\n });\n }), _min));\n\n return {\n suggestion: suggestion,\n score: propValueScore + suggestionScore\n };\n }), ['score', 'suggestion']), 3);\n });\n /* eslint-enable max-nested-callbacks */\n // Convert the suggestions list into a hash map for O(n) lookup times. Ensure\n // the words in each key are sorted alphabetically so that we have a consistent\n // way of looking up a value in the map, i.e. we can sort the words in the\n // incoming propValue and look that up without having to check all permutations.\n\n\n var suggestionsLookup = suggestions.reduce(function (acc, key) {\n acc[key.split(' ').sort().join(' ')] = true;\n return acc;\n }, {});\n return function (props, propName, componentName) {\n var propValue = props[propName]; // skip if prop is undefined or is included in the suggestions\n\n if (!propValue || suggestionsLookup[propValue]) return; // check if the words were correct but ordered differently.\n // Since we're matching for classNames we need to allow any word order\n // to pass validation, e.g. `left chevron` vs `chevron left`.\n\n var propValueSorted = propValue.split(' ').sort().join(' ');\n if (suggestionsLookup[propValueSorted]) return; // find best suggestions\n\n var bestMatches = findBestSuggestions(propValue); // skip if a match scored 0\n\n if (bestMatches.some(function (x) {\n return x.score === 0;\n })) return;\n return new Error([\"Invalid prop `\" + propName + \"` of value `\" + propValue + \"` supplied to `\" + componentName + \"`.\", \"\\n\\nInstead of `\" + propValue + \"`, did you mean:\", bestMatches.map(function (x) {\n return \"\\n - \" + x.suggestion;\n }).join(''), '\\n'].join(''));\n };\n};\n/**\n * Disallow other props from being defined with this prop.\n * @param {string[]} disallowedProps An array of props that cannot be used with this prop.\n */\n\nexport var disallow = function disallow(disallowedProps) {\n return function (props, propName, componentName) {\n if (!Array.isArray(disallowedProps)) {\n throw new Error(['Invalid argument supplied to disallow, expected an instance of array.', \" See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(''));\n } // skip if prop is undefined\n\n\n if (_isNil(props[propName]) || props[propName] === false) {\n return;\n } // find disallowed props with values\n\n\n var disallowed = disallowedProps.reduce(function (acc, disallowedProp) {\n if (!_isNil(props[disallowedProp]) && props[disallowedProp] !== false) {\n return [].concat(acc, [disallowedProp]);\n }\n\n return acc;\n }, []);\n\n if (disallowed.length > 0) {\n return new Error([\"Prop `\" + propName + \"` in `\" + componentName + \"` conflicts with props: `\" + disallowed.join('`, `') + \"`.\", 'They cannot be defined together, choose one or the other.'].join(' '));\n }\n };\n};\n/**\n * Ensure a prop adherers to multiple prop type validators.\n * @param {function[]} validators An array of propType functions.\n */\n\nexport var every = function every(validators) {\n return function (props, propName, componentName) {\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n if (!Array.isArray(validators)) {\n throw new Error(['Invalid argument supplied to every, expected an instance of array.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n }\n\n var errors = [];\n validators.forEach(function (validator) {\n if (typeof validator !== 'function') {\n throw new Error(\"every() argument \\\"validators\\\" should contain functions, found: \" + typeOf(validator) + \".\");\n }\n\n var error = validator.apply(void 0, [props, propName, componentName].concat(rest));\n\n if (error) {\n errors.push(error);\n }\n }); // we can only return one error at a time\n\n return errors[0];\n };\n};\n/**\n * Ensure a validator passes only when a component has a given propsShape.\n * @param {object} propsShape An object describing the prop shape.\n * @param {function} validator A propType function.\n */\n\nexport var givenProps = function givenProps(propsShape, validator) {\n return function (props, propName, componentName) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {\n rest[_key2 - 3] = arguments[_key2];\n }\n\n if (!_isPlainObject(propsShape)) {\n throw new Error(['Invalid argument supplied to givenProps, expected an object.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n }\n\n if (typeof validator !== 'function') {\n throw new Error(['Invalid argument supplied to givenProps, expected a function.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n }\n\n var shouldValidate = _keys(propsShape).every(function (key) {\n var val = propsShape[key]; // require propShape validators to pass or prop values to match\n\n return typeof val === 'function' ? !val.apply(void 0, [props, key, componentName].concat(rest)) : val === props[propName];\n });\n\n if (!shouldValidate) return;\n var error = validator.apply(void 0, [props, propName, componentName].concat(rest));\n\n if (error) {\n // poor mans shallow pretty print, prevents JSON circular reference errors\n var prettyProps = \"{ \" + _keys(_pick(_keys(propsShape), props)).map(function (key) {\n var val = props[key];\n var renderedValue = val;\n if (typeof val === 'string') renderedValue = \"\\\"\" + val + \"\\\"\";else if (Array.isArray(val)) renderedValue = \"[\" + val.join(', ') + \"]\";else if (_isObject(val)) renderedValue = '{...}';\n return key + \": \" + renderedValue;\n }).join(', ') + \" }\";\n error.message = \"Given props \" + prettyProps + \": \" + error.message;\n return error;\n }\n };\n};\n/**\n * Define prop dependencies by requiring other props.\n * @param {string[]} requiredProps An array of required prop names.\n */\n\nexport var demand = function demand(requiredProps) {\n return function (props, propName, componentName) {\n if (!Array.isArray(requiredProps)) {\n throw new Error(['Invalid `requiredProps` argument supplied to require, expected an instance of array.', \" See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(''));\n } // skip if prop is undefined\n\n\n if (props[propName] === undefined) return;\n var missingRequired = requiredProps.filter(function (requiredProp) {\n return props[requiredProp] === undefined;\n });\n\n if (missingRequired.length > 0) {\n return new Error(\"`\" + propName + \"` prop in `\" + componentName + \"` requires props: `\" + missingRequired.join('`, `') + \"`.\");\n }\n };\n};\n/**\n * Ensure an multiple prop contains a string with only possible values.\n * @param {string[]} possible An array of possible values to prop.\n */\n\nexport var multipleProp = function multipleProp(possible) {\n return function (props, propName, componentName) {\n if (!Array.isArray(possible)) {\n throw new Error(['Invalid argument supplied to some, expected an instance of array.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n }\n\n var propValue = props[propName]; // skip if prop is undefined\n\n if (_isNil(propValue) || propValue === false) return;\n var values = propValue.replace('large screen', 'large-screen').replace(/ vertically/g, '-vertically').split(' ').map(function (val) {\n return _trim(val).replace('-', ' ');\n });\n\n var invalid = _difference(values, possible); // fail only if there are invalid values\n\n\n if (invalid.length > 0) {\n return new Error(\"`\" + propName + \"` prop in `\" + componentName + \"` has invalid values: `\" + invalid.join('`, `') + \"`.\");\n }\n };\n};\n/**\n * Ensure a component can render as a node passed as a prop value in place of children.\n */\n\nexport var contentShorthand = function contentShorthand() {\n return every([disallow(['children']), PropTypes.node]).apply(void 0, arguments);\n};\n/**\n * Item shorthand is a description of a component that can be a literal,\n * a props object, or an element.\n */\n\nexport var itemShorthand = function itemShorthand() {\n return every([disallow(['children']), PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.object, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.object]))])]).apply(void 0, arguments);\n};\n/**\n * Collection shorthand ensures a prop is an array of item shorthand.\n */\n\nexport var collectionShorthand = function collectionShorthand() {\n return every([disallow(['children']), PropTypes.arrayOf(itemShorthand)]).apply(void 0, arguments);\n};\n/**\n * Show a deprecated warning for component props with a help message and optional validator.\n * @param {string} help A help message to display with the deprecation warning.\n * @param {function} [validator] A propType function.\n */\n\nexport var deprecate = function deprecate(help, validator) {\n return function (props, propName, componentName) {\n if (typeof help !== 'string') {\n throw new Error(['Invalid `help` argument supplied to deprecate, expected a string.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n } // skip if prop is undefined\n\n\n if (props[propName] === undefined) return; // deprecation error and help\n\n var error = new Error(\"The `\" + propName + \"` prop in `\" + componentName + \"` is deprecated.\");\n if (help) error.message += \" \" + help; // add optional validation error message\n\n if (validator) {\n if (typeof validator === 'function') {\n for (var _len3 = arguments.length, args = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) {\n args[_key3 - 3] = arguments[_key3];\n }\n\n var validationError = validator.apply(void 0, [props, propName, componentName].concat(args));\n\n if (validationError) {\n error.message = error.message + \" \" + validationError.message;\n }\n } else {\n throw new Error(['Invalid argument supplied to deprecate, expected a function.', \"See `\" + propName + \"` prop in `\" + componentName + \"`.\"].join(' '));\n }\n }\n\n return error;\n };\n};\n/** A checker that matches the React.RefObject type. */\n\nexport var refObject = PropTypes.shape({\n current: PropTypes.object\n});\n/** A checker that matches the React.Ref type. */\n\nexport var ref = PropTypes.oneOfType([PropTypes.func, refObject]);","import { instance } from '@semantic-ui-react/event-stack';\nexport default instance;","import baseUniq from './_baseUniq.js';\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nexport default uniq;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _uniq from \"lodash-es/uniq\";\nimport _isArray from \"lodash-es/isArray\";\nimport _isPlainObject from \"lodash-es/isPlainObject\";\nimport _isFunction from \"lodash-es/isFunction\";\nimport _isNumber from \"lodash-es/isNumber\";\nimport _isString from \"lodash-es/isString\";\nimport _isBoolean from \"lodash-es/isBoolean\";\nimport _isNil from \"lodash-es/isNil\";\nimport cx from 'clsx';\nimport * as React from 'react';\nvar DEPRECATED_CALLS = {}; // ============================================================\n// Factories\n// ============================================================\n\n/**\n * A more robust React.createElement. It can create elements from primitive values.\n *\n * @param {function|string} Component A ReactClass or string\n * @param {function} mapValueToProps A function that maps a primitive value to the Component props\n * @param {string|object|function} val The value to create a ReactElement from\n * @param {Object} [options={}]\n * @param {object} [options.defaultProps={}] Default props object\n * @param {object|function} [options.overrideProps={}] Override props object or function (called with regular props)\n * @param {boolean} [options.autoGenerateKey=true] Whether or not automatic key generation is allowed\n * @returns {object|null}\n */\n\nexport function createShorthand(Component, mapValueToProps, val, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof Component !== 'function' && typeof Component !== 'string') {\n throw new Error('createShorthand() Component must be a string or function.');\n } // short circuit noop values\n\n\n if (_isNil(val) || _isBoolean(val)) {\n return null;\n }\n\n var valIsString = _isString(val);\n\n var valIsNumber = _isNumber(val);\n\n var valIsFunction = _isFunction(val);\n\n var valIsReactElement = /*#__PURE__*/React.isValidElement(val);\n\n var valIsPropsObject = _isPlainObject(val);\n\n var valIsPrimitiveValue = valIsString || valIsNumber || _isArray(val); // unhandled type return null\n\n /* eslint-disable no-console */\n\n\n if (!valIsFunction && !valIsReactElement && !valIsPropsObject && !valIsPrimitiveValue) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['Shorthand value must be a string|number|array|object|ReactElement|function.', ' Use null|undefined|boolean for none', \" Received \" + typeof val + \".\"].join(''));\n }\n\n return null;\n }\n /* eslint-enable no-console */\n // ----------------------------------------\n // Build up props\n // ----------------------------------------\n\n\n var _options = options,\n _options$defaultProps = _options.defaultProps,\n defaultProps = _options$defaultProps === void 0 ? {} : _options$defaultProps; // User's props\n\n var usersProps = valIsReactElement && val.props || valIsPropsObject && val || valIsPrimitiveValue && mapValueToProps(val); // Override props\n\n var _options2 = options,\n _options2$overridePro = _options2.overrideProps,\n overrideProps = _options2$overridePro === void 0 ? {} : _options2$overridePro;\n overrideProps = _isFunction(overrideProps) ? overrideProps(_extends({}, defaultProps, usersProps)) : overrideProps; // Merge props\n\n /* eslint-disable react/prop-types */\n\n var props = _extends({}, defaultProps, usersProps, overrideProps); // Merge className\n\n\n if (defaultProps.className || overrideProps.className || usersProps.className) {\n var mergedClassesNames = cx(defaultProps.className, overrideProps.className, usersProps.className);\n props.className = _uniq(mergedClassesNames.split(' ')).join(' ');\n } // Merge style\n\n\n if (defaultProps.style || overrideProps.style || usersProps.style) {\n props.style = _extends({}, defaultProps.style, usersProps.style, overrideProps.style);\n } // ----------------------------------------\n // Get key\n // ----------------------------------------\n // Use key, childKey, or generate key\n\n\n if (_isNil(props.key)) {\n var childKey = props.childKey;\n var _options3 = options,\n _options3$autoGenerat = _options3.autoGenerateKey,\n autoGenerateKey = _options3$autoGenerat === void 0 ? true : _options3$autoGenerat;\n\n if (!_isNil(childKey)) {\n // apply and consume the childKey\n props.key = typeof childKey === 'function' ? childKey(props) : childKey;\n delete props.childKey;\n } else if (autoGenerateKey && (valIsString || valIsNumber)) {\n // use string/number shorthand values as the key\n props.key = val;\n }\n } // ----------------------------------------\n // Create Element\n // ----------------------------------------\n // Clone ReactElements\n\n\n if (valIsReactElement) {\n return /*#__PURE__*/React.cloneElement(val, props);\n }\n\n if (typeof props.children === 'function') {\n return props.children(Component, _extends({}, props, {\n children: undefined\n }));\n } // Create ReactElements from built up props\n\n\n if (valIsPrimitiveValue || valIsPropsObject) {\n return /*#__PURE__*/React.createElement(Component, props);\n } // Call functions with args similar to createElement()\n // TODO: V3 remove the implementation\n\n\n if (valIsFunction) {\n if (process.env.NODE_ENV !== 'production') {\n if (!DEPRECATED_CALLS[Component]) {\n DEPRECATED_CALLS[Component] = true; // eslint-disable-next-line no-console\n\n console.warn(\"Warning: There is a deprecated shorthand function usage for \\\"\" + Component + \"\\\". It is deprecated and will be removed in v3 release. Please follow our upgrade guide: https://github.com/Semantic-Org/Semantic-UI-React/pull/4029\");\n }\n }\n\n return val(Component, props, props.children);\n }\n /* eslint-enable react/prop-types */\n\n} // ============================================================\n// Factory Creators\n// ============================================================\n\n/**\n * Creates a `createShorthand` function that is waiting for a value and options.\n *\n * @param {function|string} Component A ReactClass or string\n * @param {function} mapValueToProps A function that maps a primitive value to the Component props\n * @returns {function} A shorthand factory function waiting for `val` and `defaultProps`.\n */\n\nexport function createShorthandFactory(Component, mapValueToProps) {\n if (typeof Component !== 'function' && typeof Component !== 'string') {\n throw new Error('createShorthandFactory() Component must be a string or function.');\n }\n\n return function (val, options) {\n return createShorthand(Component, mapValueToProps, val, options);\n };\n} // ============================================================\n// HTML Factories\n// ============================================================\n\nexport var createHTMLDivision = /* #__PURE__ */createShorthandFactory('div', function (val) {\n return {\n children: val\n };\n});\nexport var createHTMLIframe = /* #__PURE__ */createShorthandFactory('iframe', function (src) {\n return {\n src: src\n };\n});\nexport var createHTMLImage = /* #__PURE__ */createShorthandFactory('img', function (val) {\n return {\n src: val\n };\n});\nexport var createHTMLInput = /* #__PURE__ */createShorthandFactory('input', function (val) {\n return {\n type: val\n };\n});\nexport var createHTMLLabel = /* #__PURE__ */createShorthandFactory('label', function (val) {\n return {\n children: val\n };\n});\nexport var createHTMLParagraph = /* #__PURE__ */createShorthandFactory('p', function (val) {\n return {\n children: val\n };\n});","/**\n * Returns an object consisting of props beyond the scope of the Component.\n * Useful for getting and spreading unknown props from the user.\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @returns {{}} A shallow copy of the prop object\n */\nvar getUnhandledProps = function getUnhandledProps(Component, props) {\n // Note that `handledProps` are generated automatically during build with `babel-plugin-transform-react-handled-props`\n var _Component$handledPro = Component.handledProps,\n handledProps = _Component$handledPro === void 0 ? [] : _Component$handledPro;\n return Object.keys(props).reduce(function (acc, prop) {\n if (prop === 'childKey') return acc;\n if (handledProps.indexOf(prop) === -1) acc[prop] = props[prop];\n return acc;\n }, {});\n};\n\nexport default getUnhandledProps;","/**\n * Returns a createElement() type based on the props of the Component.\n * Useful for calculating what type a component should render as.\n *\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @param {function} [getDefault] A function that returns a default element type.\n * @returns {string|function} A ReactElement type\n */\nfunction getElementType(Component, props, getDefault) {\n var _Component$defaultPro = Component.defaultProps,\n defaultProps = _Component$defaultPro === void 0 ? {} : _Component$defaultPro; // ----------------------------------------\n // user defined \"as\" element type\n\n if (props.as && props.as !== defaultProps.as) return props.as; // ----------------------------------------\n // computed default element type\n\n if (getDefault) {\n var computedDefault = getDefault();\n if (computedDefault) return computedDefault;\n } // ----------------------------------------\n // infer anchor links\n\n\n if (props.href) return 'a'; // ----------------------------------------\n // use defaultProp or 'div'\n\n return defaultProps.as || 'div';\n}\n\nexport default getElementType;","import _includes from \"lodash-es/includes\";\nimport _forEach from \"lodash-es/forEach\";\nexport var htmlInputAttrs = [// REACT\n'selected', 'defaultValue', 'defaultChecked', // LIMITED HTML PROPS\n'accept', 'autoCapitalize', 'autoComplete', 'autoCorrect', 'autoFocus', 'checked', 'disabled', 'enterKeyHint', 'form', 'id', 'inputMode', 'lang', 'list', 'max', 'maxLength', 'min', 'minLength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'step', 'title', 'type', 'value'];\nexport var htmlInputEvents = [// EVENTS\n// keyboard\n'onKeyDown', 'onKeyPress', 'onKeyUp', // focus\n'onFocus', 'onBlur', // form\n'onChange', 'onInput', // mouse\n'onClick', 'onContextMenu', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', // selection\n'onSelect', // touch\n'onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var htmlInputProps = [].concat(htmlInputAttrs, htmlInputEvents);\nexport var htmlImageProps = ['alt', 'height', 'src', 'srcSet', 'width', 'loading'];\n/**\n * Returns an array of objects consisting of: props of html input element and rest.\n * @param {object} props A ReactElement props object\n * @param {Object} [options={}]\n * @param {Array} [options.htmlProps] An array of html input props\n * @param {boolean} [options.includeAria] Includes all input props that starts with \"aria-\"\n * @returns {[{}, {}]} An array of objects\n */\n\nexport var partitionHTMLProps = function partitionHTMLProps(props, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$htmlProps = _options.htmlProps,\n htmlProps = _options$htmlProps === void 0 ? htmlInputProps : _options$htmlProps,\n _options$includeAria = _options.includeAria,\n includeAria = _options$includeAria === void 0 ? true : _options$includeAria;\n var inputProps = {};\n var rest = {};\n\n _forEach(props, function (val, prop) {\n var possibleAria = includeAria && (/^aria-.*$/.test(prop) || prop === 'role');\n var target = _includes(htmlProps, prop) || possibleAria ? inputProps : rest;\n target[prop] = val;\n });\n\n return [inputProps, rest];\n};","import _isNil from \"lodash-es/isNil\";\nvar hasDocument = typeof document === 'object' && document !== null;\nvar hasWindow = typeof window === 'object' && window !== null && window.self === window; // eslint-disable-next-line no-confusing-arrow\n\nvar isBrowser = function isBrowser() {\n return !_isNil(isBrowser.override) ? isBrowser.override : hasDocument && hasWindow;\n};\n\nexport default isBrowser;","/* 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 * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import _inRange from \"lodash-es/inRange\";\nimport _first from \"lodash-es/first\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isNil from \"lodash-es/isNil\";\nimport _some from \"lodash-es/some\";\n\n/**\n * Determines if a click's coordinates are within the bounds of a node.\n *\n * @see https://github.com/Semantic-Org/Semantic-UI-React/pull/2384\n *\n * @param {object} node - A DOM node.\n * @param {object} e - A SyntheticEvent or DOM Event.\n * @returns {boolean}\n */\nvar doesNodeContainClick = function doesNodeContainClick(node, e) {\n if (_some([e, node], _isNil)) return false; // if there is an e.target and it is in the document, use a simple node.contains() check\n\n if (e.target) {\n _invoke(e.target, 'setAttribute', 'data-suir-click-target', true);\n\n if (document.querySelector('[data-suir-click-target=true]')) {\n _invoke(e.target, 'removeAttribute', 'data-suir-click-target');\n\n return node.contains(e.target);\n }\n } // Below logic handles cases where the e.target is no longer in the document.\n // The result of the click likely has removed the e.target node.\n // Instead of node.contains(), we'll identify the click by X/Y position.\n // return early if the event properties aren't available\n // prevent measuring the node and repainting if we don't need to\n\n\n var clientX = e.clientX,\n clientY = e.clientY;\n if (_some([clientX, clientY], _isNil)) return false; // false if the node is not visible\n\n var clientRects = node.getClientRects(); // Heads Up!\n // getClientRects returns a DOMRectList, not an array nor a plain object\n // We explicitly avoid _.isEmpty and check .length to cover all possible shapes\n\n if (!node.offsetWidth || !node.offsetHeight || !clientRects || !clientRects.length) return false; // false if the node doesn't have a valid bounding rect\n\n var _first2 = _first(clientRects),\n top = _first2.top,\n bottom = _first2.bottom,\n left = _first2.left,\n right = _first2.right;\n\n if (_some([top, bottom, left, right], _isNil)) return false; // we add a small decimal to the upper bound just to make it inclusive\n // don't add an whole pixel (1) as the event/node values may be decimal sensitive\n\n return _inRange(clientY, top, bottom + 0.001) && _inRange(clientX, left, right + 0.001);\n};\n\nexport default doesNodeContainClick;","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import _uniq from \"lodash-es/uniq\";\nimport _values from \"lodash-es/values\";\nimport _keys from \"lodash-es/keys\";\nimport { numberToWordMap } from './numberToWord';\nexport var COLORS = ['red', 'orange', 'yellow', 'olive', 'green', 'teal', 'blue', 'violet', 'purple', 'pink', 'brown', 'grey', 'black'];\nexport var FLOATS = ['left', 'right'];\nexport var SIZES = ['mini', 'tiny', 'small', 'medium', 'large', 'big', 'huge', 'massive'];\nexport var TEXT_ALIGNMENTS = ['left', 'center', 'right', 'justified'];\nexport var VERTICAL_ALIGNMENTS = ['bottom', 'middle', 'top'];\nexport var VISIBILITY = ['mobile', 'tablet', 'computer', 'large screen', 'widescreen'];\nexport var WIDTHS = [].concat(_keys(numberToWordMap), _keys(numberToWordMap).map(Number), _values(numberToWordMap));\nexport var DIRECTIONAL_TRANSITIONS = ['browse', 'browse right', 'drop', 'fade', 'fade up', 'fade down', 'fade left', 'fade right', 'fly up', 'fly down', 'fly left', 'fly right', 'horizontal flip', 'vertical flip', 'scale', 'slide up', 'slide down', 'slide left', 'slide right', 'swing up', 'swing down', 'swing left', 'swing right', 'zoom'];\nexport var STATIC_TRANSITIONS = ['jiggle', 'flash', 'shake', 'pulse', 'tada', 'bounce', 'glow'];\nexport var TRANSITIONS = [].concat(DIRECTIONAL_TRANSITIONS, STATIC_TRANSITIONS); // Generated from:\n// https://github.com/Semantic-Org/Semantic-UI/blob/master/dist/components/icon.css\n\nexport var ACCESSIBILITY = ['american sign language interpreting', 'assistive listening systems', 'audio description', 'blind', 'braille', 'closed captioning', 'closed captioning outline', 'deaf', 'low vision', 'phone volume', 'question circle', 'question circle outline', 'sign language', 'tty', 'universal access', 'wheelchair'];\nexport var ARROWS = ['angle double down', 'angle double left', 'angle double right', 'angle double up', 'angle down', 'angle left', 'angle right', 'angle up', 'arrow alternate circle down', 'arrow alternate circle down outline', 'arrow alternate circle left', 'arrow alternate circle left outline', 'arrow alternate circle right', 'arrow alternate circle right outline', 'arrow alternate circle up', 'arrow alternate circle up outline', 'arrow circle down', 'arrow circle left', 'arrow circle right', 'arrow circle up', 'arrow down', 'arrow left', 'arrow right', 'arrow up', 'arrows alternate', 'arrows alternate horizontal', 'arrows alternate vertical', 'caret down', 'caret left', 'caret right', 'caret square down', 'caret square down outline', 'caret square left', 'caret square left outline', 'caret square right', 'caret square right outline', 'caret square up', 'caret square up outline', 'caret up', 'cart arrow down', 'chart line', 'chevron circle down', 'chevron circle left', 'chevron circle right', 'chevron circle up', 'chevron down', 'chevron left', 'chevron right', 'chevron up', 'cloud download', 'cloud upload', 'download', 'exchange', 'expand arrows alternate', 'external alternate', 'external square alternate', 'hand point down', 'hand point down outline', 'hand point left', 'hand point left outline', 'hand point right', 'hand point right outline', 'hand point up', 'hand point up outline', 'hand pointer', 'hand pointer outline', 'history', 'level down alternate', 'level up alternate', 'location arrow', 'long arrow alternate down', 'long arrow alternate left', 'long arrow alternate right', 'long arrow alternate up', 'mouse pointer', 'play', 'random', 'recycle', 'redo', 'redo alternate', 'reply', 'reply all', 'retweet', 'share', 'share square', 'share square outline', 'sign-in', 'sign-out', 'sign-in alternate', 'sign-out alternate', 'sort', 'sort alphabet down', 'sort alphabet up', 'sort amount down', 'sort amount up', 'sort down', 'sort numeric down', 'sort numeric up', 'sort up', 'sync', 'sync alternate', 'text height', 'text width', 'undo', 'undo alternate', 'upload', 'zoom-in', 'zoom-out'];\nexport var AUDIO_VIDEO = ['audio description', 'backward', 'circle', 'circle outline', 'closed captioning', 'closed captioning outline', 'compress', 'eject', 'expand', 'expand arrows alternate', 'fast backward', 'fast forward', 'file audio', 'file audio outline', 'file video', 'file video outline', 'film', 'forward', 'headphones', 'microphone', 'microphone slash', 'music', 'pause', 'pause circle', 'pause circle outline', 'phone volume', 'play', 'play circle', 'play circle outline', 'podcast', 'random', 'redo', 'redo alternate', 'rss', 'rss square', 'step backward', 'step forward', 'stop', 'stop circle', 'stop circle outline', 'sync', 'sync alternate', 'undo', 'undo alternate', 'video', 'volume down', 'volume off', 'volume up'];\nexport var BUSINESS = ['address book', 'address book outline', 'address card', 'address card outline', 'archive', 'balance scale', 'birthday cake', 'book', 'briefcase', 'building', 'building outline', 'bullhorn', 'bullseye', 'calculator', 'calendar', 'calendar outline', 'calendar alternate', 'calendar alternate outline', 'certificate', 'chart area', 'chart bar', 'chart bar outline', 'chart line', 'chart pie', 'clipboard', 'clipboard outline', 'coffee', 'columns', 'compass', 'compass outline', 'copy', 'copy outline', 'copyright', 'copyright outline', 'cut', 'edit', 'edit outline', 'envelope', 'envelope outline', 'envelope open', 'envelope open outline', 'envelope square', 'eraser', 'fax', 'file', 'file outline', 'file alternate', 'file alternate outline', 'folder', 'folder outline', 'folder open', 'folder open outline', 'globe', 'industry', 'paperclip', 'paste', 'pen square', 'pencil alternate', 'percent', 'phone', 'phone square', 'phone volume', 'registered', 'registered outline', 'save', 'save outline', 'sitemap', 'sticky note', 'sticky note outline', 'suitcase', 'table', 'tag', 'tags', 'tasks', 'thumbtack', 'trademark'];\nexport var CHESS = ['chess', 'chess bishop', 'chess board', 'chess king', 'chess knight', 'chess pawn', 'chess queen', 'chess rook', 'square full'];\nexport var CODE = ['archive', 'barcode', 'bath', 'bug', 'code', 'code branch', 'coffee', 'file', 'file outline', 'file alternate', 'file alternate outline', 'file code', 'file code outline', 'filter', 'fire extinguisher', 'folder', 'folder outline', 'folder open', 'folder open outline', 'keyboard', 'keyboard outline', 'microchip', 'qrcode', 'shield alternate', 'sitemap', 'terminal', 'user secret', 'window close', 'window close outline', 'window maximize', 'window maximize outline', 'window minimize', 'window minimize outline', 'window restore', 'window restore outline'];\nexport var COMMUNICATION = ['address book', 'address book outline', 'address card', 'address card outline', 'american sign language interpreting', 'assistive listening systems', 'at', 'bell', 'bell outline', 'bell slash', 'bell slash outline', 'bullhorn', 'comment', 'comment outline', 'comment alternate', 'comment alternate outline', 'comments', 'comments outline', 'envelope', 'envelope outline', 'envelope open', 'envelope open outline', 'envelope square', 'fax', 'inbox', 'language', 'microphone', 'microphone slash', 'mobile', 'mobile alternate', 'paper plane', 'paper plane outline', 'phone', 'phone square', 'phone volume', 'rss', 'rss square', 'tty', 'wifi'];\nexport var COMPUTERS = ['desktop', 'download', 'hdd', 'hdd outline', 'headphones', 'keyboard', 'keyboard outline', 'laptop', 'microchip', 'mobile', 'mobile alternate', 'plug', 'power off', 'print', 'save', 'save outline', 'server', 'tablet', 'tablet alternate', 'tv', 'upload'];\nexport var CURRENCY = ['dollar sign', 'euro sign', 'lira sign', 'money bill alternate', 'money bill alternate outline', 'pound sign', 'ruble sign', 'rupee sign', 'shekel sign', 'won sign', 'yen sign'];\nexport var DATE_TIME = ['bell', 'bell outline', 'bell slash', 'bell slash outline', 'calendar', 'calendar outline', 'calendar alternate', 'calendar alternate outline', 'calendar check', 'calendar check outline', 'calendar minus', 'calendar minus outline', 'calendar plus', 'calendar plus outline', 'calendar times', 'calendar times outline', 'clock', 'clock outline', 'hourglass', 'hourglass outline', 'hourglass end', 'hourglass half', 'hourglass start', 'stopwatch'];\nexport var DESIGN = ['adjust', 'clone', 'clone outline', 'copy', 'copy outline', 'crop', 'crosshairs', 'cut', 'edit', 'edit outline', 'eraser', 'eye', 'eye dropper', 'eye slash', 'eye slash outline', 'object group', 'object group outline', 'object ungroup', 'object ungroup outline', 'paint brush', 'paste', 'pencil alternate', 'save', 'save outline', 'tint'];\nexport var EDITORS = ['align center', 'align justify', 'align left', 'align right', 'bold', 'clipboard', 'clipboard outline', 'clone', 'clone outline', 'columns', 'copy', 'copy outline', 'cut', 'edit', 'edit outline', 'eraser', 'file', 'file outline', 'file alternate', 'file alternate outline', 'font', 'heading', 'i cursor', 'indent', 'italic', 'linkify', 'list', 'list alternate', 'list alternate outline', 'list ol', 'list ul', 'outdent', 'paper plane', 'paper plane outline', 'paperclip', 'paragraph', 'paste', 'pencil alternate', 'print', 'quote left', 'quote right', 'redo', 'redo alternate', 'reply', 'reply all', 'share', 'strikethrough', 'subscript', 'superscript', 'sync', 'sync alternate', 'table', 'tasks', 'text height', 'text width', 'th', 'th large', 'th list', 'trash', 'trash alternate', 'trash alternate outline', 'underline', 'undo', 'undo alternate', 'unlink'];\nexport var FILES = ['archive', 'clone', 'clone outline', 'copy', 'copy outline', 'cut', 'file', 'file outline', 'file alternate', 'file alternate outline', 'file archive', 'file archive outline', 'file audio', 'file audio outline', 'file code', 'file code outline', 'file excel', 'file excel outline', 'file image', 'file image outline', 'file pdf', 'file pdf outline', 'file powerpoint', 'file powerpoint outline', 'file video', 'file video outline', 'file word', 'file word outline', 'folder', 'folder outline', 'folder open', 'folder open outline', 'paste', 'save', 'save outline', 'sticky note', 'sticky note outline'];\nexport var GENDERS = ['genderless', 'mars', 'mars double', 'mars stroke', 'mars stroke horizontal', 'mars stroke vertical', 'mercury', 'neuter', 'transgender', 'transgender alternate', 'venus', 'venus double', 'venus mars'];\nexport var HANDS_GESTURES = ['hand lizard', 'hand lizard outline', 'hand paper', 'hand paper outline', 'hand peace', 'hand peace outline', 'hand point down', 'hand point down outline', 'hand point left', 'hand point left outline', 'hand point right', 'hand point right outline', 'hand point up', 'hand point up outline', 'hand pointer', 'hand pointer outline', 'hand rock', 'hand rock outline', 'hand scissors', 'hand scissors outline', 'hand spock', 'hand spock outline', 'handshake', 'handshake outline', 'thumbs down', 'thumbs down outline', 'thumbs up', 'thumbs up outline'];\nexport var HEALTH = ['ambulance', 'h square', 'heart', 'heart outline', 'heartbeat', 'hospital', 'hospital outline', 'medkit', 'plus square', 'plus square outline', 'stethoscope', 'user md', 'wheelchair'];\nexport var IMAGES = ['adjust', 'bolt', 'camera', 'camera retro', 'clone', 'clone outline', 'compress', 'expand', 'eye', 'eye dropper', 'eye slash', 'eye slash outline', 'file image', 'file image outline', 'film', 'id badge', 'id badge outline', 'id card', 'id card outline', 'image', 'image outline', 'images', 'images outline', 'sliders horizontal', 'tint'];\nexport var INTERFACES = ['ban', 'barcode', 'bars', 'beer', 'bell', 'bell outline', 'bell slash', 'bell slash outline', 'bug', 'bullhorn', 'bullseye', 'calculator', 'calendar', 'calendar outline', 'calendar alternate', 'calendar alternate outline', 'calendar check', 'calendar check outline', 'calendar minus', 'calendar minus outline', 'calendar plus', 'calendar plus outline', 'calendar times', 'calendar times outline', 'certificate', 'check', 'check circle', 'check circle outline', 'check square', 'check square outline', 'circle', 'circle outline', 'clipboard', 'clipboard outline', 'clone', 'clone outline', 'cloud', 'cloud download', 'cloud upload', 'coffee', 'cog', 'cogs', 'copy', 'copy outline', 'cut', 'database', 'dot circle', 'dot circle outline', 'download', 'edit', 'edit outline', 'ellipsis horizontal', 'ellipsis vertical', 'envelope', 'envelope outline', 'envelope open', 'envelope open outline', 'eraser', 'exclamation', 'exclamation circle', 'exclamation triangle', 'external alternate', 'external square alternate', 'eye', 'eye slash', 'eye slash outline', 'file', 'file outline', 'file alternate', 'file alternate outline', 'filter', 'flag', 'flag outline', 'flag checkered', 'folder', 'folder outline', 'folder open', 'folder open outline', 'frown', 'frown outline', 'hashtag', 'heart', 'heart outline', 'history', 'home', 'i cursor', 'info', 'info circle', 'language', 'magic', 'meh', 'meh outline', 'microphone', 'microphone slash', 'minus', 'minus circle', 'minus square', 'minus square outline', 'paste', 'pencil alternate', 'plus', 'plus circle', 'plus square', 'plus square outline', 'qrcode', 'question', 'question circle', 'question circle outline', 'quote left', 'quote right', 'redo', 'redo alternate', 'reply', 'reply all', 'rss', 'rss square', 'save', 'save outline', 'search', 'search minus', 'search plus', 'share', 'share alternate', 'share alternate square', 'share square', 'share square outline', 'shield alternate', 'sign-in', 'sign-out', 'signal', 'sitemap', 'sliders horizontal', 'smile', 'smile outline', 'sort', 'sort alphabet down', 'sort alphabet up', 'sort amount down', 'sort amount up', 'sort down', 'sort numeric down', 'sort numeric up', 'sort up', 'star', 'star outline', 'star half', 'star half outline', 'sync', 'sync alternate', 'thumbs down', 'thumbs down outline', 'thumbs up', 'thumbs up outline', 'times', 'times circle', 'times circle outline', 'toggle off', 'toggle on', 'trash', 'trash alternate', 'trash alternate outline', 'trophy', 'undo', 'undo alternate', 'upload', 'user', 'user outline', 'user circle', 'user circle outline', 'wifi'];\nexport var LOGISTICS = ['box', 'boxes', 'clipboard check', 'clipboard list', 'dolly', 'dolly flatbed', 'pallet', 'shipping fast', 'truck', 'warehouse'];\nexport var MAPS = ['ambulance', 'anchor', 'balance scale', 'bath', 'bed', 'beer', 'bell', 'bell outline', 'bell slash', 'bell slash outline', 'bicycle', 'binoculars', 'birthday cake', 'blind', 'bomb', 'book', 'bookmark', 'bookmark outline', 'briefcase', 'building', 'building outline', 'car', 'coffee', 'crosshairs', 'dollar sign', 'eye', 'eye slash', 'eye slash outline', 'fighter jet', 'fire', 'fire extinguisher', 'flag', 'flag outline', 'flag checkered', 'flask', 'gamepad', 'gavel', 'gift', 'glass martini', 'globe', 'graduation cap', 'h square', 'heart', 'heart outline', 'heartbeat', 'home', 'hospital', 'hospital outline', 'image', 'image outline', 'images', 'images outline', 'industry', 'info', 'info circle', 'key', 'leaf', 'lemon', 'lemon outline', 'life ring', 'life ring outline', 'lightbulb', 'lightbulb outline', 'location arrow', 'low vision', 'magnet', 'male', 'map', 'map outline', 'map marker', 'map marker alternate', 'map pin', 'map signs', 'medkit', 'money bill alternate', 'money bill alternate outline', 'motorcycle', 'music', 'newspaper', 'newspaper outline', 'paw', 'phone', 'phone square', 'phone volume', 'plane', 'plug', 'plus', 'plus square', 'plus square outline', 'print', 'recycle', 'road', 'rocket', 'search', 'search minus', 'search plus', 'ship', 'shopping bag', 'shopping basket', 'shopping cart', 'shower', 'street view', 'subway', 'suitcase', 'tag', 'tags', 'taxi', 'thumbtack', 'ticket alternate', 'tint', 'train', 'tree', 'trophy', 'truck', 'tty', 'umbrella', 'university', 'utensil spoon', 'utensils', 'wheelchair', 'wifi', 'wrench'];\nexport var MEDICAL = ['ambulance', 'band aid', 'dna', 'first aid', 'heart', 'heart outline', 'heartbeat', 'hospital', 'hospital outline', 'hospital symbol', 'pills', 'plus', 'stethoscope', 'syringe', 'thermometer', 'user md', 'weight'];\nexport var OBJECTS = ['ambulance', 'anchor', 'archive', 'balance scale', 'bath', 'bed', 'beer', 'bell', 'bell outline', 'bicycle', 'binoculars', 'birthday cake', 'bomb', 'book', 'bookmark', 'bookmark outline', 'briefcase', 'bug', 'building', 'building outline', 'bullhorn', 'bullseye', 'bus', 'calculator', 'calendar', 'calendar outline', 'calendar alternate', 'calendar alternate outline', 'camera', 'camera retro', 'car', 'clipboard', 'clipboard outline', 'cloud', 'coffee', 'cog', 'cogs', 'compass', 'compass outline', 'copy', 'copy outline', 'cube', 'cubes', 'cut', 'envelope', 'envelope outline', 'envelope open', 'envelope open outline', 'eraser', 'eye', 'eye dropper', 'fax', 'fighter jet', 'file', 'file outline', 'file alternate', 'file alternate outline', 'film', 'fire', 'fire extinguisher', 'flag', 'flag outline', 'flag checkered', 'flask', 'futbol', 'futbol outline', 'gamepad', 'gavel', 'gem', 'gem outline', 'gift', 'glass martini', 'globe', 'graduation cap', 'hdd', 'hdd outline', 'headphones', 'heart', 'heart outline', 'home', 'hospital', 'hospital outline', 'hourglass', 'hourglass outline', 'image', 'image outline', 'images', 'images outline', 'industry', 'key', 'keyboard', 'keyboard outline', 'laptop', 'leaf', 'lemon', 'lemon outline', 'life ring', 'life ring outline', 'lightbulb', 'lightbulb outline', 'lock', 'lock open', 'magic', 'magnet', 'map', 'map outline', 'map marker', 'map marker alternate', 'map pin', 'map signs', 'medkit', 'microchip', 'microphone', 'mobile', 'mobile alternate', 'money bill alternate', 'money bill alternate outline', 'moon', 'moon outline', 'motorcycle', 'newspaper', 'newspaper outline', 'paint brush', 'paper plane', 'paper plane outline', 'paperclip', 'paste', 'paw', 'pencil alternate', 'phone', 'plane', 'plug', 'print', 'puzzle piece', 'road', 'rocket', 'save', 'save outline', 'search', 'shield alternate', 'shopping bag', 'shopping basket', 'shopping cart', 'shower', 'snowflake', 'snowflake outline', 'space shuttle', 'star', 'star outline', 'sticky note', 'sticky note outline', 'stopwatch', 'subway', 'suitcase', 'sun', 'sun outline', 'tablet', 'tablet alternate', 'tachometer alternate', 'tag', 'tags', 'taxi', 'thumbtack', 'ticket alternate', 'train', 'trash', 'trash alternate', 'trash alternate outline', 'tree', 'trophy', 'truck', 'tv', 'umbrella', 'university', 'unlock', 'unlock alternate', 'utensil spoon', 'utensils', 'wheelchair', 'wrench'];\nexport var PAYMENTS_SHOPPING = ['bell', 'bell outline', 'bookmark', 'bookmark outline', 'bullhorn', 'camera', 'camera retro', 'cart arrow down', 'cart plus', 'certificate', 'credit card', 'credit card outline', 'gem', 'gem outline', 'gift', 'handshake', 'handshake outline', 'heart', 'heart outline', 'key', 'shopping bag', 'shopping basket', 'shopping cart', 'star', 'star outline', 'tag', 'tags', 'thumbs down', 'thumbs down outline', 'thumbs up', 'thumbs up outline', 'trophy'];\nexport var SHAPES = ['bookmark', 'bookmark outline', 'calendar', 'calendar outline', 'certificate', 'circle', 'circle outline', 'cloud', 'comment', 'comment outline', 'file', 'file outline', 'folder', 'folder outline', 'heart', 'heart outline', 'map marker', 'play', 'square', 'square outline', 'star', 'star outline'];\nexport var SPINNERS = ['asterisk', 'certificate', 'circle notch', 'cog', 'compass', 'compass outline', 'crosshairs', 'life ring', 'life ring outline', 'snowflake', 'snowflake outline', 'spinner', 'sun', 'sun outline', 'sync'];\nexport var SPORTS = ['baseball ball', 'basketball ball', 'bowling ball', 'football ball', 'futbol', 'futbol outline', 'golf ball', 'hockey puck', 'quidditch', 'table tennis', 'volleyball ball'];\nexport var STATUS = ['ban', 'battery empty', 'battery full', 'battery half', 'battery quarter', 'battery three quarters', 'bell', 'bell outline', 'bell slash', 'bell slash outline', 'calendar', 'calendar outline', 'calendar alternate', 'calendar alternate outline', 'calendar check', 'calendar check outline', 'calendar minus', 'calendar minus outline', 'calendar plus', 'calendar plus outline', 'calendar times', 'calendar times outline', 'cart arrow down', 'cart plus', 'exclamation', 'exclamation circle', 'exclamation triangle', 'eye', 'eye slash', 'eye slash outline', 'file', 'file outline', 'file alternate', 'file alternate outline', 'folder', 'folder outline', 'folder open', 'folder open outline', 'info', 'info circle', 'lock', 'lock open', 'minus', 'minus circle', 'minus square', 'minus square outline', 'plus', 'plus circle', 'plus square', 'plus square outline', 'question', 'question circle', 'question circle outline', 'shield alternate', 'shopping cart', 'sign in alternate', 'sign out alternate', 'thermometer empty', 'thermometer full', 'thermometer half', 'thermometer quarter', 'thermometer three quarters', 'thumbs down', 'thumbs down outline', 'thumbs up', 'thumbs up outline', 'toggle off', 'toggle on', 'unlock', 'unlock alternate'];\nexport var USERS_PEOPLE = ['address book', 'address book outline', 'address card', 'address card outline', 'bed', 'blind', 'child', 'female', 'frown', 'frown outline', 'id badge', 'id badge outline', 'id card', 'id card outline', 'male', 'meh', 'meh outline', 'power off', 'smile', 'smile outline', 'street view', 'user', 'user outline', 'user circle', 'user circle outline', 'user md', 'user plus', 'user secret', 'user times', 'users', 'wheelchair'];\nexport var VEHICLES = ['ambulance', 'bicycle', 'bus', 'car', 'fighter jet', 'motorcycle', 'paper plane', 'paper plane outline', 'plane', 'rocket', 'ship', 'shopping cart', 'space shuttle', 'subway', 'taxi', 'train', 'truck', 'wheelchair'];\nexport var WRITING = ['archive', 'book', 'bookmark', 'bookmark outline', 'edit', 'edit outline', 'envelope', 'envelope outline', 'envelope open', 'envelope open outline', 'eraser', 'file', 'file outline', 'file alternate', 'file alternate outline', 'folder', 'folder outline', 'folder open', 'folder open outline', 'keyboard', 'keyboard outline', 'newspaper', 'newspaper outline', 'paper plane', 'paper plane outline', 'paperclip', 'paragraph', 'pen square', 'pencil alternate', 'quote left', 'quote right', 'sticky note', 'sticky note outline', 'thumbtack'];\nexport var BRANDS = ['500px', 'accessible', 'accusoft', 'adn', 'adversal', 'affiliatetheme', 'algolia', 'amazon', 'amazon pay', 'amilia', 'android', 'angellist', 'angrycreative', 'angular', 'app store', 'app store ios', 'apper', 'apple', 'apple pay', 'asymmetrik', 'audible', 'autoprefixer', 'avianex', 'aviato', 'aws', 'bandcamp', 'behance', 'behance square', 'bimobject', 'bitbucket', 'bitcoin', 'bity', 'black tie', 'blackberry', 'blogger', 'blogger b', 'bluetooth', 'bluetooth b', 'btc', 'buromobelexperte', 'buysellads', 'cc amazon pay', 'cc amex', 'cc apple pay', 'cc diners club', 'cc discover', 'cc jcb', 'cc mastercard', 'cc paypal', 'cc stripe', 'cc visa', 'centercode', 'chrome', 'cloudscale', 'cloudsmith', 'cloudversify', 'codepen', 'codiepie', 'connectdevelop', 'contao', 'cpanel', 'creative commons', 'css3', 'css3 alternate', 'cuttlefish', 'd and d', 'dashcube', 'delicious', 'deploydog', 'deskpro', 'deviantart', 'digg', 'digital ocean', 'discord', 'discourse', 'dochub', 'docker', 'draft2digital', 'dribbble', 'dribbble square', 'dropbox', 'drupal', 'dyalog', 'earlybirds', 'edge', 'elementor', 'ember', 'empire', 'envira', 'erlang', 'ethereum', 'etsy', 'expeditedssl', 'facebook', 'facebook f', 'facebook messenger', 'facebook square', 'firefox', 'first order', 'firstdraft', 'flickr', 'flipboard', 'fly', 'font awesome', 'font awesome alternate', 'font awesome flag', 'fonticons', 'fonticons fi', 'fort awesome', 'fort awesome alternate', 'forumbee', 'foursquare', 'free code camp', 'freebsd', 'get pocket', 'gg', 'gg circle', 'git', 'git square', 'github', 'github alternate', 'github square', 'gitkraken', 'gitlab', 'gitter', 'glide', 'glide g', 'gofore', 'goodreads', 'goodreads g', 'google', 'google drive', 'google play', 'google plus', 'google plus g', 'google plus square', 'google wallet', 'gratipay', 'grav', 'gripfire', 'grunt', 'gulp', 'hacker news', 'hacker news square', 'hips', 'hire a helper', 'hooli', 'hotjar', 'houzz', 'html5', 'hubspot', 'imdb', 'instagram', 'internet explorer', 'ioxhost', 'itunes', 'itunes note', 'jenkins', 'joget', 'joomla', 'js', 'js square', 'jsfiddle', 'keycdn', 'kickstarter', 'kickstarter k', 'korvue', 'laravel', 'lastfm', 'lastfm square', 'leanpub', 'less', 'linechat', 'linkedin', 'linkedin alternate', 'linode', 'linux', 'lyft', 'magento', 'maxcdn', 'medapps', 'medium', 'medium m', 'medrt', 'meetup', 'microsoft', 'mix', 'mixcloud', 'mizuni', 'modx', 'monero', 'napster', 'nintendo switch', 'node', 'node js', 'npm', 'ns8', 'nutritionix', 'odnoklassniki', 'odnoklassniki square', 'opencart', 'openid', 'opera', 'optin monster', 'osi', 'page4', 'pagelines', 'palfed', 'patreon', 'paypal', 'periscope', 'phabricator', 'phoenix framework', 'php', 'pied piper', 'pied piper alternate', 'pied piper pp', 'pinterest', 'pinterest p', 'pinterest square', 'playstation', 'product hunt', 'pushed', 'python', 'qq', 'quinscape', 'quora', 'ravelry', 'react', 'rebel', 'redriver', 'reddit', 'reddit alien', 'reddit square', 'rendact', 'renren', 'replyd', 'resolving', 'rocketchat', 'rockrms', 'safari', 'sass', 'schlix', 'scribd', 'searchengin', 'sellcast', 'sellsy', 'servicestack', 'shirtsinbulk', 'simplybuilt', 'sistrix', 'skyatlas', 'skype', 'slack', 'slack hash', 'slideshare', 'snapchat', 'snapchat ghost', 'snapchat square', 'soundcloud', 'speakap', 'spotify', 'stack exchange', 'stack overflow', 'staylinked', 'steam', 'steam square', 'steam symbol', 'sticker mule', 'strava', 'stripe', 'stripe s', 'studiovinari', 'stumbleupon', 'stumbleupon circle', 'superpowers', 'supple', 'telegram', 'telegram plane', 'tencent weibo', 'themeisle', 'trello', 'tripadvisor', 'tumblr', 'tumblr square', 'twitch', 'twitter', 'twitter square', 'typo3', 'uber', 'uikit', 'uniregistry', 'untappd', 'usb', 'ussunnah', 'vaadin', 'viacoin', 'viadeo', 'viadeo square', 'viber', 'vimeo', 'vimeo square', 'vimeo v', 'vine', 'vk', 'vnv', 'vuejs', 'wechat', 'weibo', 'weixin', 'whatsapp', 'whatsapp square', 'whmcs', 'wikipedia w', 'windows', 'wordpress', 'wordpress simple', 'wpbeginner', 'wpexplorer', 'wpforms', 'xbox', 'xing', 'xing square', 'y combinator', 'yahoo', 'yandex', 'yandex international', 'yelp', 'yoast', 'youtube', 'youtube square'];\nexport var ICONS = _uniq([].concat(ACCESSIBILITY, ARROWS, AUDIO_VIDEO, BUSINESS, CHESS, CODE, COMMUNICATION, COMPUTERS, CURRENCY, DATE_TIME, DESIGN, EDITORS, FILES, GENDERS, HANDS_GESTURES, HEALTH, IMAGES, INTERFACES, LOGISTICS, MAPS, MEDICAL, OBJECTS, PAYMENTS_SHOPPING, SHAPES, SPINNERS, SPORTS, STATUS, USERS_PEOPLE, VEHICLES, WRITING, BRANDS));\nexport var ICON_ALIASES = ['chess rock', 'ordered list', 'unordered list', 'user doctor', 'shield', 'puzzle', 'add circle', 'add square', 'add to calendar', 'add to cart', 'add user', 'add', 'alarm mute', 'alarm', 'ald', 'als', 'announcement', 'area chart', 'area graph', 'arrow down cart', 'asexual', 'asl interpreting', 'asl', 'assistive listening devices', 'attach', 'attention', 'balance', 'bar', 'bathtub', 'battery four', 'battery high', 'battery low', 'battery one', 'battery three', 'battery two', 'battery zero', 'birthday', 'block layout', 'bluetooth alternative', 'broken chain', 'browser', 'call square', 'call', 'cancel', 'cart', 'cc', 'chain', 'chat', 'checked calendar', 'checkmark', 'circle notched', 'close', 'cny', 'cocktail', 'commenting', 'computer', 'configure', 'content', 'deafness', 'delete calendar', 'delete', 'detective', 'discussions', 'doctor', 'dollar', 'dont', 'drivers license', 'dropdown', 'emergency', 'envira gallery', 'erase', 'eur', 'euro', 'eyedropper', 'factory', 'favorite', 'feed', 'female homosexual', 'file text', 'file text outline', 'find', 'first aid', 'fork', 'game', 'gay', 'gbp', 'google plus circle', 'google plus official', 'grab', 'graduation', 'grid layout', 'group', 'h', 'hand victory', 'handicap', 'hard of hearing', 'header', 'help circle', 'help', 'heterosexual', 'hide', 'hotel', 'hourglass four', 'hourglass full', 'hourglass one', 'hourglass three', 'hourglass two', 'idea', 'ils', 'in cart', 'inr', 'intergender', 'intersex', 'jpy', 'krw', 'lab', 'law', 'legal', 'lesbian', 'lightning', 'like', 'line graph', 'linkedin square', 'linkify', 'lira', 'list layout', 'magnify', 'mail forward', 'mail outline', 'mail square', 'mail', 'male homosexual', 'man', 'marker', 'mars alternate', 'mars horizontal', 'mars vertical', 'microsoft edge', 'military', 'ms edge', 'mute', 'new pied piper', 'non binary transgender', 'numbered list', 'options', 'other gender horizontal', 'other gender vertical', 'other gender', 'payment', 'paypal card', 'pencil square', 'photo', 'picture', 'pie chart', 'pie graph', 'pied piper hat', 'pin', 'plus cart', 'point', 'pointing down', 'pointing left', 'pointing right', 'pointing up', 'pound', 'power cord', 'power', 'privacy', 'r circle', 'rain', 'record', 'refresh', 'remove circle', 'remove from calendar', 'remove user', 'remove', 'repeat', 'rmb', 'rouble', 'rub', 'ruble', 'rupee', 's15', 'selected radio', 'send', 'setting', 'settings', 'shekel', 'sheqel', 'shipping', 'shop', 'shuffle', 'shutdown', 'sidebar', 'signing', 'signup', 'sliders', 'soccer', 'sort alphabet ascending', 'sort alphabet descending', 'sort ascending', 'sort content ascending', 'sort content descending', 'sort descending', 'sort numeric ascending', 'sort numeric descending', 'sound', 'spy', 'stripe card', 'student', 'talk', 'target', 'teletype', 'television', 'text cursor', 'text telephone', 'theme', 'thermometer', 'thumb tack', 'time', 'tm', 'toggle down', 'toggle left', 'toggle right', 'toggle up', 'translate', 'travel', 'treatment', 'triangle down', 'triangle left', 'triangle right', 'triangle up', 'try', 'unhide', 'unlinkify', 'unmute', 'usd', 'user cancel', 'user close', 'user delete', 'user x', 'vcard', 'video camera', 'video play', 'volume control phone', 'wait', 'warning circle', 'warning sign', 'warning', 'wi-fi', 'winner', 'wizard', 'woman', 'won', 'wordpress beginner', 'wordpress forms', 'world', 'write square', 'x', 'yen', 'zip', 'zoom in', 'zoom out', 'zoom', 'bitbucket square', 'checkmark box', 'circle thin', 'cloud download', 'cloud upload', 'compose', 'conversation', 'credit card alternative', 'currency', 'dashboard', 'diamond', 'disk', 'exchange', 'external share', 'external square', 'external', 'facebook official', 'food', 'hourglass zero', 'level down', 'level up', 'log out', 'meanpath', 'money', 'move', 'pencil', 'protect', 'radio', 'remove bookmark', 'resize horizontal', 'resize vertical', 'sign in', 'sign out', 'spoon', 'star half empty', 'star half full', 'ticket', 'times rectangle', 'write', 'youtube play'];\nexport var ICONS_AND_ALIASES = _uniq([].concat(ICONS, ICON_ALIASES)); // Some icon names are not part of icons.css.\n// These are only valid as children of other components.\n// Their CSS rules are defined by a specific component's CSS.\n// We don't want to show name warnings for those usages so we add them as valid names here.\n\nexport var COMPONENT_CONTEXT_SPECIFIC_ICONS = ['left dropdown' // nested dropdown menu direction icon\n];\nexport var ALL_ICONS_IN_ALL_CONTEXTS = _uniq([].concat(ICONS_AND_ALIASES, COMPONENT_CONTEXT_SPECIFIC_ICONS));","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import React from 'react';\nimport isBrowser from '../isBrowser'; // useLayoutEffect() produces a warning with SSR rendering\n// https://medium.com/@alexandereardon/uselayouteffect-and-ssr-192986cdcf7a\n\nvar useIsomorphicLayoutEffect = isBrowser() && process.env.NODE_ENV !== 'test' ? React.useLayoutEffect : React.useEffect;\nexport default useIsomorphicLayoutEffect;","import { isRefObject } from '@fluentui/react-component-ref';\nimport React from 'react';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar CLASS_NAME_DELITIMITER = /\\s+/;\n/**\n * Accepts a set of ref objects that contain classnames as a string and returns an array of unique\n * classNames.\n *\n * @param {Set<React.RefObject>|undefined} classNameRefs\n * @returns String[]\n */\n\nexport function computeClassNames(classNameRefs) {\n var classNames = [];\n\n if (classNameRefs) {\n classNameRefs.forEach(function (classNameRef) {\n if (typeof classNameRef.current === 'string') {\n var classNamesForRef = classNameRef.current.split(CLASS_NAME_DELITIMITER);\n classNamesForRef.forEach(function (className) {\n classNames.push(className);\n });\n }\n });\n return classNames.filter(function (className, i, array) {\n return className.length > 0 && array.indexOf(className) === i;\n });\n }\n\n return [];\n}\n/**\n * Computes classnames that should be removed and added to a node based on input differences.\n *\n * @param {String[]} prevClassNames\n * @param {String[]} currentClassNames\n */\n\nexport function computeClassNamesDifference(prevClassNames, currentClassNames) {\n return [currentClassNames.filter(function (className) {\n return prevClassNames.indexOf(className) === -1;\n }), prevClassNames.filter(function (className) {\n return currentClassNames.indexOf(className) === -1;\n })];\n}\nvar prevClassNames = new Map();\n/**\n * @param {HTMLElement} node\n * @param {Set<React.RefObject>|undefined} classNameRefs\n */\n\nexport var handleClassNamesChange = function handleClassNamesChange(node, classNameRefs) {\n var currentClassNames = computeClassNames(classNameRefs);\n\n var _computeClassNamesDif = computeClassNamesDifference(prevClassNames.get(node) || [], currentClassNames),\n forAdd = _computeClassNamesDif[0],\n forRemoval = _computeClassNamesDif[1];\n\n if (node) {\n forAdd.forEach(function (className) {\n return node.classList.add(className);\n });\n forRemoval.forEach(function (className) {\n return node.classList.remove(className);\n });\n }\n\n prevClassNames.set(node, currentClassNames);\n};\nexport var NodeRegistry = function NodeRegistry() {\n var _this = this;\n\n this.add = function (node, classNameRef) {\n if (_this.nodes.has(node)) {\n var _set = _this.nodes.get(node);\n\n _set.add(classNameRef);\n\n return;\n } // IE11 does not support constructor params\n\n\n var set = new Set();\n set.add(classNameRef);\n\n _this.nodes.set(node, set);\n };\n\n this.del = function (node, classNameRef) {\n if (!_this.nodes.has(node)) {\n return;\n }\n\n var set = _this.nodes.get(node);\n\n if (set.size === 1) {\n _this.nodes.delete(node);\n\n return;\n }\n\n set.delete(classNameRef);\n };\n\n this.emit = function (node, callback) {\n callback(node, _this.nodes.get(node));\n };\n\n this.nodes = new Map();\n};\nvar nodeRegistry = new NodeRegistry();\n/**\n * A React hooks that allows to manage classNames on a DOM node in declarative manner. Accepts\n * a HTML element or React ref objects with it.\n *\n * @param {HTMLElement|React.RefObject} node\n * @param {String} className\n */\n\nexport default function useClassNamesOnNode(node, className) {\n var classNameRef = React.useRef();\n var isMounted = React.useRef(false);\n useIsomorphicLayoutEffect(function () {\n classNameRef.current = className;\n\n if (isMounted.current) {\n var element = isRefObject(node) ? node.current : node;\n nodeRegistry.emit(element, handleClassNamesChange);\n }\n\n isMounted.current = true;\n }, [className]);\n useIsomorphicLayoutEffect(function () {\n var element = isRefObject(node) ? node.current : node;\n nodeRegistry.add(element, classNameRef);\n nodeRegistry.emit(element, handleClassNamesChange);\n return function () {\n nodeRegistry.del(element, classNameRef);\n nodeRegistry.emit(element, handleClassNamesChange);\n };\n }, [node]);\n}","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = toNumber;\n","module.exports = __webpack_public_path__ + \"4b692785a8a6340a89e6067274a7583c.js\";","module.exports = __webpack_public_path__ + \"c530988d2b1966fd10a4d99fa3877e1b.js\";","module.exports = __webpack_public_path__ + \"16c2e1b50af4ba05edaa03c8c9e9d18c.js\";","import Popup from \"./Popup\";\nimport Tooltip from \"./Tooltip\";\nexport { Popup };\nexport default Tooltip;","import { _optionalChain } from '@sentry/utils';\nimport { getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE } from '@sentry/core';\nimport { browserPerformanceTimeOrigin, htmlTreeAsString, dropUndefinedKeys } from '@sentry/utils';\nimport { addInpInstrumentationHandler, addPerformanceInstrumentationHandler, isPerformanceEventTiming } from './instrument.js';\nimport { getBrowserPerformanceAPI, msToSec, startStandaloneWebVitalSpan } from './utils.js';\n\nconst LAST_INTERACTIONS = [];\nconst INTERACTIONS_SPAN_MAP = new Map();\n\n/**\n * Start tracking INP webvital events.\n */\nfunction startTrackingINP() {\n const performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n const inpCallback = _trackINP();\n\n return () => {\n inpCallback();\n };\n }\n\n return () => undefined;\n}\n\nconst INP_ENTRY_MAP = {\n click: 'click',\n pointerdown: 'click',\n pointerup: 'click',\n mousedown: 'click',\n mouseup: 'click',\n touchstart: 'click',\n touchend: 'click',\n mouseover: 'hover',\n mouseout: 'hover',\n mouseenter: 'hover',\n mouseleave: 'hover',\n pointerover: 'hover',\n pointerout: 'hover',\n pointerenter: 'hover',\n pointerleave: 'hover',\n dragstart: 'drag',\n dragend: 'drag',\n drag: 'drag',\n dragenter: 'drag',\n dragleave: 'drag',\n dragover: 'drag',\n drop: 'drag',\n keydown: 'press',\n keyup: 'press',\n keypress: 'press',\n input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. */\nfunction _trackINP() {\n return addInpInstrumentationHandler(({ metric }) => {\n if (metric.value == undefined) {\n return;\n }\n\n const entry = metric.entries.find(entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name]);\n\n if (!entry) {\n return;\n }\n\n const { interactionId } = entry;\n const interactionType = INP_ENTRY_MAP[entry.name];\n\n /** Build the INP span, create an envelope from the span, and then send the envelope */\n const startTime = msToSec((browserPerformanceTimeOrigin ) + entry.startTime);\n const duration = msToSec(metric.value);\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n\n // We first try to lookup the span from our INTERACTIONS_SPAN_MAP,\n // where we cache the route per interactionId\n const cachedSpan = interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : undefined;\n\n const spanToUse = cachedSpan || rootSpan;\n\n // Else, we try to use the active span.\n // Finally, we fall back to look at the transactionName on the scope\n const routeName = spanToUse ? spanToJSON(spanToUse).description : getCurrentScope().getScopeData().transactionName;\n\n const name = htmlTreeAsString(entry.target);\n const attributes = dropUndefinedKeys({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.inp',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `ui.interaction.${interactionType}`,\n [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration,\n });\n\n const span = startStandaloneWebVitalSpan({\n name,\n transaction: routeName,\n attributes,\n startTime,\n });\n\n _optionalChain([span, 'optionalAccess', _ => _.addEvent, 'call', _2 => _2('inp', {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: 'millisecond',\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: metric.value,\n })]);\n\n _optionalChain([span, 'optionalAccess', _3 => _3.end, 'call', _4 => _4(startTime + duration)]);\n });\n}\n\n/**\n * Register a listener to cache route information for INP interactions.\n * TODO(v9): `latestRoute` no longer needs to be passed in and will be removed in v9.\n */\nfunction registerInpInteractionListener(_latestRoute) {\n const handleEntries = ({ entries }) => {\n const activeSpan = getActiveSpan();\n const activeRootSpan = activeSpan && getRootSpan(activeSpan);\n\n entries.forEach(entry => {\n if (!isPerformanceEventTiming(entry) || !activeRootSpan) {\n return;\n }\n\n const interactionId = entry.interactionId;\n if (interactionId == null) {\n return;\n }\n\n // If the interaction was already recorded before, nothing more to do\n if (INTERACTIONS_SPAN_MAP.has(interactionId)) {\n return;\n }\n\n // We keep max. 10 interactions in the list, then remove the oldest one & clean up\n if (LAST_INTERACTIONS.length > 10) {\n const last = LAST_INTERACTIONS.shift() ;\n INTERACTIONS_SPAN_MAP.delete(last);\n }\n\n // We add the interaction to the list of recorded interactions\n // and store the span for this interaction\n LAST_INTERACTIONS.push(interactionId);\n INTERACTIONS_SPAN_MAP.set(interactionId, activeRootSpan);\n });\n };\n\n addPerformanceInstrumentationHandler('event', handleEntries);\n addPerformanceInstrumentationHandler('first-input', handleEntries);\n}\n\nexport { registerInpInteractionListener, startTrackingINP };\n//# sourceMappingURL=inp.js.map\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = __webpack_public_path__ + \"1ce14f2cad9f3c122cb5ccfcd485ffb4.js\";","module.exports = __webpack_public_path__ + \"28785bea435918d49b290d27bf660baa.js\";","'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';\n\nvar React = require('react');\nvar richTextTypes = require('@contentful/rich-text-types');\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nvar __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\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction appendKeyToValidElement(element, key) {\n if (React.isValidElement(element) && element.key === null) {\n return React.cloneElement(element, { key: key });\n }\n return element;\n}\n\nfunction nodeListToReactComponents(nodes, options) {\n return nodes.map(function (node, index) {\n return appendKeyToValidElement(nodeToReactComponent(node, options), index);\n });\n}\nfunction nodeToReactComponent(node, options) {\n var renderNode = options.renderNode, renderMark = options.renderMark, renderText = options.renderText, preserveWhitespace = options.preserveWhitespace;\n if (richTextTypes.helpers.isText(node)) {\n var nodeValue = renderText ? renderText(node.value) : node.value;\n // Preserving whitespace is only supported with the default transformations.\n if (preserveWhitespace && !renderText) {\n // Preserve multiple spaces.\n nodeValue = nodeValue.replace(/ {2,}/g, function (match) { return '\\u00A0'.repeat(match.length); });\n // Preserve line breaks.\n var lines_1 = nodeValue.split('\\n');\n var jsxLines_1 = [];\n lines_1.forEach(function (line, index) {\n jsxLines_1.push(line);\n if (index !== lines_1.length - 1) {\n jsxLines_1.push(React.createElement(\"br\", null));\n }\n });\n nodeValue = jsxLines_1;\n }\n return node.marks.reduce(function (value, mark) {\n if (!renderMark[mark.type]) {\n return value;\n }\n return renderMark[mark.type](value);\n }, nodeValue);\n }\n else {\n var children = nodeListToReactComponents(node.content, options);\n if (!node.nodeType || !renderNode[node.nodeType]) {\n return React.createElement(React.Fragment, null, children);\n }\n return renderNode[node.nodeType](node, children);\n }\n}\n\nvar _a, _b;\nvar defaultNodeRenderers = (_a = {},\n _a[richTextTypes.BLOCKS.DOCUMENT] = function (node, children) { return children; },\n _a[richTextTypes.BLOCKS.PARAGRAPH] = function (node, children) { return React.createElement(\"p\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_1] = function (node, children) { return React.createElement(\"h1\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_2] = function (node, children) { return React.createElement(\"h2\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_3] = function (node, children) { return React.createElement(\"h3\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_4] = function (node, children) { return React.createElement(\"h4\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_5] = function (node, children) { return React.createElement(\"h5\", null, children); },\n _a[richTextTypes.BLOCKS.HEADING_6] = function (node, children) { return React.createElement(\"h6\", null, children); },\n _a[richTextTypes.BLOCKS.EMBEDDED_ENTRY] = function (node, children) { return React.createElement(\"div\", null, children); },\n _a[richTextTypes.BLOCKS.EMBEDDED_RESOURCE] = function (node, children) { return React.createElement(\"div\", null, children); },\n _a[richTextTypes.BLOCKS.UL_LIST] = function (node, children) { return React.createElement(\"ul\", null, children); },\n _a[richTextTypes.BLOCKS.OL_LIST] = function (node, children) { return React.createElement(\"ol\", null, children); },\n _a[richTextTypes.BLOCKS.LIST_ITEM] = function (node, children) { return React.createElement(\"li\", null, children); },\n _a[richTextTypes.BLOCKS.QUOTE] = function (node, children) { return React.createElement(\"blockquote\", null, children); },\n _a[richTextTypes.BLOCKS.HR] = function () { return React.createElement(\"hr\", null); },\n _a[richTextTypes.BLOCKS.TABLE] = function (node, children) { return (React.createElement(\"table\", null,\n React.createElement(\"tbody\", null, children))); },\n _a[richTextTypes.BLOCKS.TABLE_ROW] = function (node, children) { return React.createElement(\"tr\", null, children); },\n _a[richTextTypes.BLOCKS.TABLE_HEADER_CELL] = function (node, children) { return React.createElement(\"th\", null, children); },\n _a[richTextTypes.BLOCKS.TABLE_CELL] = function (node, children) { return React.createElement(\"td\", null, children); },\n _a[richTextTypes.INLINES.ASSET_HYPERLINK] = function (node) { return defaultInline(richTextTypes.INLINES.ASSET_HYPERLINK, node); },\n _a[richTextTypes.INLINES.ENTRY_HYPERLINK] = function (node) { return defaultInline(richTextTypes.INLINES.ENTRY_HYPERLINK, node); },\n _a[richTextTypes.INLINES.RESOURCE_HYPERLINK] = function (node) {\n return defaultInlineResource(richTextTypes.INLINES.RESOURCE_HYPERLINK, node);\n },\n _a[richTextTypes.INLINES.EMBEDDED_ENTRY] = function (node) { return defaultInline(richTextTypes.INLINES.EMBEDDED_ENTRY, node); },\n _a[richTextTypes.INLINES.EMBEDDED_RESOURCE] = function (node, _children) {\n return defaultInlineResource(richTextTypes.INLINES.EMBEDDED_RESOURCE, node);\n },\n _a[richTextTypes.INLINES.HYPERLINK] = function (node, children) { return React.createElement(\"a\", { href: node.data.uri }, children); },\n _a);\nvar defaultMarkRenderers = (_b = {},\n _b[richTextTypes.MARKS.BOLD] = function (text) { return React.createElement(\"b\", null, text); },\n _b[richTextTypes.MARKS.ITALIC] = function (text) { return React.createElement(\"i\", null, text); },\n _b[richTextTypes.MARKS.UNDERLINE] = function (text) { return React.createElement(\"u\", null, text); },\n _b[richTextTypes.MARKS.CODE] = function (text) { return React.createElement(\"code\", null, text); },\n _b[richTextTypes.MARKS.SUPERSCRIPT] = function (text) { return React.createElement(\"sup\", null, text); },\n _b[richTextTypes.MARKS.SUBSCRIPT] = function (text) { return React.createElement(\"sub\", null, text); },\n _b[richTextTypes.MARKS.STRIKETHROUGH] = function (text) { return React.createElement(\"s\", null, text); },\n _b);\nfunction defaultInline(type, node) {\n return (React.createElement(\"span\", { key: node.data.target.sys.id },\n \"type: \",\n node.nodeType,\n \" id: \",\n node.data.target.sys.id));\n}\nfunction defaultInlineResource(type, node) {\n return (React.createElement(\"span\", { key: node.data.target.sys.urn },\n \"type: \",\n node.nodeType,\n \" urn: \",\n node.data.target.sys.urn));\n}\n/**\n * Serialize a Contentful Rich Text `document` to React tree\n */\nfunction documentToReactComponents(richTextDocument, options) {\n if (options === void 0) { options = {}; }\n if (!richTextDocument) {\n return null;\n }\n return nodeToReactComponent(richTextDocument, {\n renderNode: __assign(__assign({}, defaultNodeRenderers), options.renderNode),\n renderMark: __assign(__assign({}, defaultMarkRenderers), options.renderMark),\n renderText: options.renderText,\n preserveWhitespace: options.preserveWhitespace,\n });\n}\n\nexports.documentToReactComponents = documentToReactComponents;\n//# sourceMappingURL=rich-text-react-renderer.es5.js.map\n","import { defaultPrefixCls } from '../../config-provider';\nexport const TARGET_CLS = `${defaultPrefixCls}-wave-target`;","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\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 mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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/** 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/**\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\nmodule.exports = baseIsTypedArray;\n","import { Keyframes } from '@ant-design/cssinjs';\nconst genNotificationPlacementStyle = token => {\n const {\n componentCls,\n notificationMarginEdge,\n animationMaxHeight\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const rightFadeIn = new Keyframes('antNotificationFadeIn', {\n '0%': {\n transform: `translate3d(100%, 0, 0)`,\n opacity: 0\n },\n '100%': {\n transform: `translate3d(0, 0, 0)`,\n opacity: 1\n }\n });\n const topFadeIn = new Keyframes('antNotificationTopFadeIn', {\n '0%': {\n top: -animationMaxHeight,\n opacity: 0\n },\n '100%': {\n top: 0,\n opacity: 1\n }\n });\n const bottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {\n '0%': {\n bottom: token.calc(animationMaxHeight).mul(-1).equal(),\n opacity: 0\n },\n '100%': {\n bottom: 0,\n opacity: 1\n }\n });\n const leftFadeIn = new Keyframes('antNotificationLeftFadeIn', {\n '0%': {\n transform: `translate3d(-100%, 0, 0)`,\n opacity: 0\n },\n '100%': {\n transform: `translate3d(0, 0, 0)`,\n opacity: 1\n }\n });\n return {\n [componentCls]: {\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n marginInline: 0,\n [noticeCls]: {\n marginInline: 'auto auto'\n }\n },\n [`&${componentCls}-top`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: topFadeIn\n }\n },\n [`&${componentCls}-bottom`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: bottomFadeIn\n }\n },\n [`&${componentCls}-topRight, &${componentCls}-bottomRight`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: rightFadeIn\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n marginRight: {\n value: 0,\n _skip_check_: true\n },\n marginLeft: {\n value: notificationMarginEdge,\n _skip_check_: true\n },\n [noticeCls]: {\n marginInlineEnd: 'auto',\n marginInlineStart: 0\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: leftFadeIn\n }\n }\n }\n };\n};\nexport default genNotificationPlacementStyle;","export const NotificationPlacements = ['top', 'topLeft', 'topRight', 'bottom', 'bottomLeft', 'bottomRight'];","import { NotificationPlacements } from '../interface';\nconst placementAlignProperty = {\n topLeft: 'left',\n topRight: 'right',\n bottomLeft: 'left',\n bottomRight: 'right',\n top: 'left',\n bottom: 'left'\n};\nconst genPlacementStackStyle = (token, placement) => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-${placement}`]: {\n [`&${componentCls}-stack > ${componentCls}-notice-wrapper`]: {\n [placement.startsWith('top') ? 'top' : 'bottom']: 0,\n [placementAlignProperty[placement]]: {\n value: 0,\n _skip_check_: true\n }\n }\n }\n };\n};\nconst genStackChildrenStyle = token => {\n const childrenStyle = {};\n for (let i = 1; i < token.notificationStackLayer; i++) {\n childrenStyle[`&:nth-last-child(${i + 1})`] = {\n overflow: 'hidden',\n [`& > ${token.componentCls}-notice`]: {\n opacity: 0,\n transition: `opacity ${token.motionDurationMid}`\n }\n };\n }\n return Object.assign({\n [`&:not(:nth-last-child(-n+${token.notificationStackLayer}))`]: {\n opacity: 0,\n overflow: 'hidden',\n color: 'transparent',\n pointerEvents: 'none'\n }\n }, childrenStyle);\n};\nconst genStackedNoticeStyle = token => {\n const childrenStyle = {};\n for (let i = 1; i < token.notificationStackLayer; i++) {\n childrenStyle[`&:nth-last-child(${i + 1})`] = {\n background: token.colorBgBlur,\n backdropFilter: 'blur(10px)',\n '-webkit-backdrop-filter': 'blur(10px)'\n };\n }\n return Object.assign({}, childrenStyle);\n};\nconst genStackStyle = token => {\n const {\n componentCls\n } = token;\n return Object.assign({\n [`${componentCls}-stack`]: {\n [`& > ${componentCls}-notice-wrapper`]: Object.assign({\n transition: `all ${token.motionDurationSlow}, backdrop-filter 0s`,\n position: 'absolute'\n }, genStackChildrenStyle(token))\n },\n [`${componentCls}-stack:not(${componentCls}-stack-expanded)`]: {\n [`& > ${componentCls}-notice-wrapper`]: Object.assign({}, genStackedNoticeStyle(token))\n },\n [`${componentCls}-stack${componentCls}-stack-expanded`]: {\n [`& > ${componentCls}-notice-wrapper`]: {\n '&:not(:nth-last-child(-n + 1))': {\n opacity: 1,\n overflow: 'unset',\n color: 'inherit',\n pointerEvents: 'auto',\n [`& > ${token.componentCls}-notice`]: {\n opacity: 1\n }\n },\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n height: token.margin,\n width: '100%',\n insetInline: 0,\n bottom: token.calc(token.margin).mul(-1).equal(),\n background: 'transparent',\n pointerEvents: 'auto'\n }\n }\n }\n }, NotificationPlacements.map(placement => genPlacementStackStyle(token, placement)).reduce((acc, cur) => Object.assign(Object.assign({}, acc), cur), {}));\n};\nexport default genStackStyle;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genNotificationPlacementStyle from './placement';\nimport genStackStyle from './stack';\nexport const genNoticeStyle = token => {\n const {\n iconCls,\n componentCls,\n // .ant-notification\n boxShadow,\n fontSizeLG,\n notificationMarginBottom,\n borderRadiusLG,\n colorSuccess,\n colorInfo,\n colorWarning,\n colorError,\n colorTextHeading,\n notificationBg,\n notificationPadding,\n notificationMarginEdge,\n notificationProgressBg,\n notificationProgressHeight,\n fontSize,\n lineHeight,\n width,\n notificationIconSize,\n colorText\n } = token;\n const noticeCls = `${componentCls}-notice`;\n return {\n position: 'relative',\n marginBottom: notificationMarginBottom,\n marginInlineStart: 'auto',\n background: notificationBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n [noticeCls]: {\n padding: notificationPadding,\n width,\n maxWidth: `calc(100vw - ${unit(token.calc(notificationMarginEdge).mul(2).equal())})`,\n overflow: 'hidden',\n lineHeight,\n wordWrap: 'break-word'\n },\n [`${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG,\n lineHeight: token.lineHeightLG\n },\n [`${noticeCls}-description`]: {\n fontSize,\n color: colorText\n },\n [`${noticeCls}-closable ${noticeCls}-message`]: {\n paddingInlineEnd: token.paddingLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n marginInlineStart: token.calc(token.marginSM).add(notificationIconSize).equal(),\n fontSize: fontSizeLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-description`]: {\n marginInlineStart: token.calc(token.marginSM).add(notificationIconSize).equal(),\n fontSize\n },\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n [`${noticeCls}-icon`]: {\n position: 'absolute',\n fontSize: notificationIconSize,\n lineHeight: 1,\n // icon-font\n [`&-success${iconCls}`]: {\n color: colorSuccess\n },\n [`&-info${iconCls}`]: {\n color: colorInfo\n },\n [`&-warning${iconCls}`]: {\n color: colorWarning\n },\n [`&-error${iconCls}`]: {\n color: colorError\n }\n },\n [`${noticeCls}-close`]: Object.assign({\n position: 'absolute',\n top: token.notificationPaddingVertical,\n insetInlineEnd: token.notificationPaddingHorizontal,\n color: token.colorIcon,\n outline: 'none',\n width: token.notificationCloseButtonSize,\n height: token.notificationCloseButtonSize,\n borderRadius: token.borderRadiusSM,\n transition: `background-color ${token.motionDurationMid}, color ${token.motionDurationMid}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n color: token.colorIconHover,\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n }, genFocusStyle(token)),\n [`${noticeCls}-progress`]: {\n position: 'absolute',\n display: 'block',\n appearance: 'none',\n WebkitAppearance: 'none',\n inlineSize: `calc(100% - ${unit(borderRadiusLG)} * 2)`,\n left: {\n _skip_check_: true,\n value: borderRadiusLG\n },\n right: {\n _skip_check_: true,\n value: borderRadiusLG\n },\n bottom: 0,\n blockSize: notificationProgressHeight,\n border: 0,\n '&, &::-webkit-progress-bar': {\n borderRadius: borderRadiusLG,\n backgroundColor: `rgba(0, 0, 0, 0.04)`\n },\n '&::-moz-progress-bar': {\n background: notificationProgressBg\n },\n '&::-webkit-progress-value': {\n borderRadius: borderRadiusLG,\n background: notificationProgressBg\n }\n },\n [`${noticeCls}-btn`]: {\n float: 'right',\n marginTop: token.marginSM\n }\n };\n};\nconst genNotificationStyle = token => {\n const {\n componentCls,\n // .ant-notification\n notificationMarginBottom,\n notificationMarginEdge,\n motionDurationMid,\n motionEaseInOut\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const fadeOut = new Keyframes('antNotificationFadeOut', {\n '0%': {\n maxHeight: token.animationMaxHeight,\n marginBottom: notificationMarginBottom\n },\n '100%': {\n maxHeight: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n zIndex: token.zIndexPopup,\n marginRight: {\n value: notificationMarginEdge,\n _skip_check_: true\n },\n [`${componentCls}-hook-holder`]: {\n position: 'relative'\n },\n // animation\n [`${componentCls}-fade-appear-prepare`]: {\n opacity: '0 !important'\n },\n [`${componentCls}-fade-enter, ${componentCls}-fade-appear`]: {\n animationDuration: token.motionDurationMid,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n opacity: 0,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-leave`]: {\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n animationDuration: motionDurationMid,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-fade-leave${componentCls}-fade-leave-active`]: {\n animationName: fadeOut,\n animationPlayState: 'running'\n },\n // RTL\n '&-rtl': {\n direction: 'rtl',\n [`${noticeCls}-btn`]: {\n float: 'left'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [`${noticeCls}-wrapper`]: Object.assign({}, genNoticeStyle(token))\n }\n }];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n zIndexPopup: token.zIndexPopupBase + CONTAINER_MAX_OFFSET + 50,\n width: 384\n});\nexport const prepareNotificationToken = token => {\n const notificationPaddingVertical = token.paddingMD;\n const notificationPaddingHorizontal = token.paddingLG;\n const notificationToken = mergeToken(token, {\n notificationBg: token.colorBgElevated,\n notificationPaddingVertical,\n notificationPaddingHorizontal,\n notificationIconSize: token.calc(token.fontSizeLG).mul(token.lineHeightLG).equal(),\n notificationCloseButtonSize: token.calc(token.controlHeightLG).mul(0.55).equal(),\n notificationMarginBottom: token.margin,\n notificationPadding: `${unit(token.paddingMD)} ${unit(token.paddingContentHorizontalLG)}`,\n notificationMarginEdge: token.marginLG,\n animationMaxHeight: 150,\n notificationStackLayer: 3,\n notificationProgressHeight: 2,\n notificationProgressBg: `linear-gradient(90deg, ${token.colorPrimaryBorderHover}, ${token.colorPrimary})`\n });\n return notificationToken;\n};\nexport default genStyleHooks('Notification', token => {\n const notificationToken = prepareNotificationToken(token);\n return [genNotificationStyle(notificationToken), genNotificationPlacementStyle(notificationToken), genStackStyle(notificationToken)];\n}, prepareComponentToken);","import { SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT } from '../semanticAttributes.js';\nimport { getRootSpan, getActiveSpan } from '../utils/spanUtils.js';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nfunction setMeasurement(name, value, unit, activeSpan = getActiveSpan()) {\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n if (rootSpan) {\n rootSpan.addEvent(name, {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit ,\n });\n }\n}\n\n/**\n * Convert timed events to measurements.\n */\nfunction timedEventsToMeasurements(events) {\n if (!events || events.length === 0) {\n return undefined;\n }\n\n const measurements = {};\n events.forEach(event => {\n const attributes = event.attributes || {};\n const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] ;\n const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] ;\n\n if (typeof unit === 'string' && typeof value === 'number') {\n measurements[event.name] = { value, unit };\n }\n });\n\n return measurements;\n}\n\nexport { setMeasurement, timedEventsToMeasurements };\n//# sourceMappingURL=measurement.js.map\n","module.exports = __webpack_public_path__ + \"617ddc517c704963dc032140e80151d5.js\";","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\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/**\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\nmodule.exports = getTag;\n","import { isVueViewModel, isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n//# sourceMappingURL=string.js.map\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _PlusOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/PlusOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar PlusOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _PlusOutlined.default\n }));\n};\n/**![plus](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4MiAxNTJoNjBxOCAwIDggOHY3MDRxMCA4LTggOGgtNjBxLTggMC04LThWMTYwcTAtOCA4LTh6IiAvPjxwYXRoIGQ9Ik0xOTIgNDc0aDY3MnE4IDAgOCA4djYwcTAgOC04IDhIMTYwcS04IDAtOC04di02MHEwLTggOC04eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(PlusOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"PlusOutlined\";\n}\nvar _default = RefIcon;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\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","import { defineIntegration, getActiveSpan, getRootSpan } from '@sentry/core';\nimport { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { startProfileForSpan } from './startProfileForSpan.js';\nimport { isAutomatedPageLoadSpan, shouldProfileSpan, getActiveProfilesCount, findProfiledTransactionsFromEnvelope, takeProfileFromGlobalCache, createProfilingEvent, addProfilesToEnvelope } from './utils.js';\n\nconst INTEGRATION_NAME = 'BrowserProfiling';\n\nconst _browserProfilingIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n if (rootSpan && isAutomatedPageLoadSpan(rootSpan)) {\n if (shouldProfileSpan(rootSpan)) {\n startProfileForSpan(rootSpan);\n }\n }\n\n client.on('spanStart', (span) => {\n if (span === getRootSpan(span) && shouldProfileSpan(span)) {\n startProfileForSpan(span);\n }\n });\n\n client.on('beforeEnvelope', (envelope) => {\n // if not profiles are in queue, there is nothing to add to the envelope.\n if (!getActiveProfilesCount()) {\n return;\n }\n\n const profiledTransactionEvents = findProfiledTransactionsFromEnvelope(envelope);\n if (!profiledTransactionEvents.length) {\n return;\n }\n\n const profilesToAddToEnvelope = [];\n\n for (const profiledTransaction of profiledTransactionEvents) {\n const context = profiledTransaction && profiledTransaction.contexts;\n const profile_id = context && context['profile'] && context['profile']['profile_id'];\n const start_timestamp = context && context['profile'] && context['profile']['start_timestamp'];\n\n if (typeof profile_id !== 'string') {\n DEBUG_BUILD && logger.log('[Profiling] cannot find profile for a span without a profile context');\n continue;\n }\n\n if (!profile_id) {\n DEBUG_BUILD && logger.log('[Profiling] cannot find profile for a span without a profile context');\n continue;\n }\n\n // Remove the profile from the span context before sending, relay will take care of the rest.\n if (context && context['profile']) {\n delete context.profile;\n }\n\n const profile = takeProfileFromGlobalCache(profile_id);\n if (!profile) {\n DEBUG_BUILD && logger.log(`[Profiling] Could not retrieve profile for span: ${profile_id}`);\n continue;\n }\n\n const profileEvent = createProfilingEvent(\n profile_id,\n start_timestamp ,\n profile,\n profiledTransaction ,\n );\n if (profileEvent) {\n profilesToAddToEnvelope.push(profileEvent);\n }\n }\n\n addProfilesToEnvelope(envelope , profilesToAddToEnvelope);\n });\n },\n };\n}) ;\n\nconst browserProfilingIntegration = defineIntegration(_browserProfilingIntegration);\n\nexport { browserProfilingIntegration };\n//# sourceMappingURL=integration.js.map\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\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\nmodule.exports = throttle;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _SearchOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/SearchOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar SearchOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _SearchOutlined.default\n }));\n};\n/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(SearchOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"SearchOutlined\";\n}\nvar _default = RefIcon;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[25-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"3|4(?:2[09]|7[01])|6[1-9]\",\"3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[25-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-467]|5[0-3]|8[0-5]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|7[67]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468]))\\\\d{4}|(?:2742|305[3-9]|472[247-9]|505[2-57-9]|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\n // For that reason, it's not used in this detection algorithm.\n // Instead, it detects by `countries: {}` property existence.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"<possiblePengths/>\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata, { validateMetadata } from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport isObject from './helpers/isObject.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n // Validate `countryOrCountryCallingCode` argument.\n if (!countryOrCountryCallingCode) {\n throw new TypeError('First argument is required');\n }\n\n if (typeof countryOrCountryCallingCode !== 'string') {\n throw new TypeError('First argument must be a string');\n } // In case of public API use: `constructor(number, metadata)`.\n // Transform the arguments from `constructor(number, metadata)` to\n // `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\n\n\n if (typeof countryOrCountryCallingCode === 'string') {\n if (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\n throw new TypeError('`metadata` argument not passed');\n }\n\n if (isObject(nationalNumber) && isObject(nationalNumber.countries)) {\n metadata = nationalNumber;\n var e164Number = countryOrCountryCallingCode;\n\n if (!E164_NUMBER_REGEXP.test(e164Number)) {\n throw new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits');\n }\n\n var _extractCountryCallin = extractCountryCallingCode(e164Number, undefined, undefined, metadata),\n _countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n nationalNumber = number;\n countryOrCountryCallingCode = _countryCallingCode;\n\n if (!nationalNumber) {\n throw new Error('Invalid `number` argument passed: too short');\n }\n }\n } // Validate `nationalNumber` argument.\n\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` argument is required');\n }\n\n if (typeof nationalNumber !== 'string') {\n throw new TypeError('`nationalNumber` argument must be a string');\n } // Validate `metadata` argument.\n\n\n validateMetadata(metadata); // Initialize properties.\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n\nvar E164_NUMBER_REGEXP = /^\\+\\d+$/;\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata); // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","import parsePhoneNumberWithError_ from './parsePhoneNumberWithError_.js';\nimport normalizeArguments from './normalizeArguments.js';\nexport default function parsePhoneNumberWithError() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumberWithError_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber_ from './parsePhoneNumber_.js';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isValidPhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = parsePhoneNumber(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://medium.com/dsinjs/implementing-lru-cache-in-javascript-94ba6755cda9\nvar Node = /*#__PURE__*/_createClass(function Node(key, value) {\n var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var prev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, Node);\n\n this.key = key;\n this.value = value;\n this.next = next;\n this.prev = prev;\n});\n\nvar LRUCache = /*#__PURE__*/function () {\n //set default limit of 10 if limit is not passed.\n function LRUCache() {\n var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n\n _classCallCheck(this, LRUCache);\n\n this.size = 0;\n this.limit = limit;\n this.head = null;\n this.tail = null;\n this.cache = {};\n } // Write Node to head of LinkedList\n // update cache with Node key and Node reference\n\n\n _createClass(LRUCache, [{\n key: \"put\",\n value: function put(key, value) {\n this.ensureLimit();\n\n if (!this.head) {\n this.head = this.tail = new Node(key, value);\n } else {\n var node = new Node(key, value, this.head);\n this.head.prev = node;\n this.head = node;\n } //Update the cache map\n\n\n this.cache[key] = this.head;\n this.size++;\n } // Read from cache map and make that node as new Head of LinkedList\n\n }, {\n key: \"get\",\n value: function get(key) {\n if (this.cache[key]) {\n var value = this.cache[key].value; // node removed from it's position and cache\n\n this.remove(key); // write node again to the head of LinkedList to make it most recently used\n\n this.put(key, value);\n return value;\n }\n\n console.log(\"Item not available in cache for key \".concat(key));\n }\n }, {\n key: \"ensureLimit\",\n value: function ensureLimit() {\n if (this.size === this.limit) {\n this.remove(this.tail.key);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(key) {\n var node = this.cache[key];\n\n if (node.prev !== null) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n\n if (node.next !== null) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n\n delete this.cache[key];\n this.size--;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = null;\n this.tail = null;\n this.size = 0;\n this.cache = {};\n } // // Invokes the callback function with every node of the chain and the index of the node.\n // forEach(fn) {\n // let node = this.head;\n // let counter = 0;\n // while (node) {\n // fn(node, counter);\n // node = node.next;\n // counter++;\n // }\n // }\n // // To iterate over LRU with a 'for...of' loop\n // *[Symbol.iterator]() {\n // let node = this.head;\n // while (node) {\n // yield node;\n // node = node.next;\n // }\n // }\n\n }]);\n\n return LRUCache;\n}();\n\nexport { LRUCache as default };\n//# sourceMappingURL=LRUCache.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport LRUCache from './LRUCache.js'; // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n// countries being used for the same doc with ~10 patterns for each country. Some pages will have\n// a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n// that use-case won't have a lot of benefit.\n\nvar RegExpCache = /*#__PURE__*/function () {\n function RegExpCache(size) {\n _classCallCheck(this, RegExpCache);\n\n this.cache = new LRUCache(size);\n }\n\n _createClass(RegExpCache, [{\n key: \"getPatternForRegExp\",\n value: function getPatternForRegExp(pattern) {\n var regExp = this.cache.get(pattern);\n\n if (!regExp) {\n regExp = new RegExp('^' + pattern);\n this.cache.put(pattern, regExp);\n }\n\n return regExp;\n }\n }]);\n\n return RegExpCache;\n}();\n\nexport { RegExpCache as default };\n//# sourceMappingURL=RegExpCache.js.map","/** Returns a regular expression quantifier with an upper and lower limit. */\nexport function limit(lower, upper) {\n if (lower < 0 || upper <= 0 || upper < lower) {\n throw new TypeError();\n }\n\n return \"{\".concat(lower, \",\").concat(upper, \"}\");\n}\n/**\r\n * Trims away any characters after the first match of {@code pattern} in {@code candidate},\r\n * returning the trimmed version.\r\n */\n\nexport function trimAfterFirstMatch(regexp, string) {\n var index = string.search(regexp);\n\n if (index >= 0) {\n return string.slice(0, index);\n }\n\n return string;\n}\nexport function startsWith(string, substring) {\n return string.indexOf(substring) === 0;\n}\nexport function endsWith(string, substring) {\n return string.indexOf(substring, string.length - substring.length) === string.length - substring.length;\n}\n//# sourceMappingURL=util.js.map","// Javascript doesn't support UTF-8 regular expressions.\n// So mimicking them here.\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\n/**\r\n * \"\\p{Z}\" is any kind of whitespace or invisible separator (\"Separator\").\r\n * http://www.regular-expressions.info/unicode.html\r\n * \"\\P{Z}\" is the reverse of \"\\p{Z}\".\r\n * \"\\p{N}\" is any kind of numeric character in any script (\"Number\").\r\n * \"\\p{Nd}\" is a digit zero through nine in any script except \"ideographic scripts\" (\"Decimal_Digit_Number\").\r\n * \"\\p{Sc}\" is a currency symbol (\"Currency_Symbol\").\r\n * \"\\p{L}\" is any kind of letter from any language (\"Letter\").\r\n * \"\\p{Mn}\" is \"non-spacing mark\".\r\n *\r\n * Javascript doesn't support Unicode Regular Expressions\r\n * so substituting it with this explicit set of characters.\r\n *\r\n * https://stackoverflow.com/questions/13210194/javascript-regex-equivalent-of-a-za-z-using-pl\r\n * https://github.com/danielberndt/babel-plugin-utf-8-regex/blob/master/src/transformer.js\r\n */\nvar _pZ = \" \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\";\nexport var pZ = \"[\".concat(_pZ, \"]\");\nexport var PZ = \"[^\".concat(_pZ, \"]\");\nexport var _pN = \"0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\"; // const pN = `[${_pN}]`\n\nvar _pNd = \"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\";\nexport var pNd = \"[\".concat(_pNd, \"]\");\nexport var _pL = \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\nvar pL = \"[\".concat(_pL, \"]\");\nvar pL_regexp = new RegExp(pL);\nvar _pSc = \"$\\xA2-\\xA5\\u058F\\u060B\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20B9\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6\";\nvar pSc = \"[\".concat(_pSc, \"]\");\nvar pSc_regexp = new RegExp(pSc);\nvar _pMn = \"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26\";\nvar pMn = \"[\".concat(_pMn, \"]\");\nvar pMn_regexp = new RegExp(pMn);\nvar _InBasic_Latin = \"\\0-\\x7F\";\nvar _InLatin_1_Supplement = \"\\x80-\\xFF\";\nvar _InLatin_Extended_A = \"\\u0100-\\u017F\";\nvar _InLatin_Extended_Additional = \"\\u1E00-\\u1EFF\";\nvar _InLatin_Extended_B = \"\\u0180-\\u024F\";\nvar _InCombining_Diacritical_Marks = \"\\u0300-\\u036F\";\nvar latinLetterRegexp = new RegExp('[' + _InBasic_Latin + _InLatin_1_Supplement + _InLatin_Extended_A + _InLatin_Extended_Additional + _InLatin_Extended_B + _InCombining_Diacritical_Marks + ']');\n/**\r\n * Helper method to determine if a character is a Latin-script letter or not.\r\n * For our purposes, combining marks should also return true since we assume\r\n * they have been added to a preceding Latin character.\r\n */\n\nexport function isLatinLetter(letter) {\n // Combining marks are a subset of non-spacing-mark.\n if (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) {\n return false;\n }\n\n return latinLetterRegexp.test(letter);\n}\nexport function isInvalidPunctuationSymbol(character) {\n return character === '%' || pSc_regexp.test(character);\n}\n//# sourceMappingURL=utf-8.js.map","import parsePhoneNumber from '../parsePhoneNumber.js';\n/**\r\n * Matches a phone number object against a phone number string.\r\n * @param {string} phoneNumberString\r\n * @param {PhoneNumber} phoneNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {'INVALID_NUMBER'|'NO_MATCH'|'SHORT_NSN_MATCH'|'NSN_MATCH'|'EXACT_MATCH'}\r\n */\n\nexport default function matchPhoneNumberStringAgainstPhoneNumber(phoneNumberString, phoneNumber, metadata) {\n // Parse `phoneNumberString`.\n var phoneNumberStringContainsCallingCode = true;\n var parsedPhoneNumber = parsePhoneNumber(phoneNumberString, metadata);\n\n if (!parsedPhoneNumber) {\n // If `phoneNumberString` didn't contain a country calling code\n // then substitute it with the `phoneNumber`'s country calling code.\n phoneNumberStringContainsCallingCode = false;\n parsedPhoneNumber = parsePhoneNumber(phoneNumberString, {\n defaultCallingCode: phoneNumber.countryCallingCode\n }, metadata);\n }\n\n if (!parsedPhoneNumber) {\n return 'INVALID_NUMBER';\n } // Check that the extensions match.\n\n\n if (phoneNumber.ext) {\n if (parsedPhoneNumber.ext !== phoneNumber.ext) {\n return 'NO_MATCH';\n }\n } else {\n if (parsedPhoneNumber.ext) {\n return 'NO_MATCH';\n }\n } // Check that country calling codes match.\n\n\n if (phoneNumberStringContainsCallingCode) {\n if (phoneNumber.countryCallingCode !== parsedPhoneNumber.countryCallingCode) {\n return 'NO_MATCH';\n }\n } // Check if the whole numbers match.\n\n\n if (phoneNumber.number === parsedPhoneNumber.number) {\n if (phoneNumberStringContainsCallingCode) {\n return 'EXACT_MATCH';\n } else {\n return 'NSN_MATCH';\n }\n } // Check if one national number is a \"suffix\" of the other.\n\n\n if (phoneNumber.nationalNumber.indexOf(parsedPhoneNumber.nationalNumber) === 0 || parsedPhoneNumber.nationalNumber.indexOf(phoneNumber.nationalNumber) === 0) {\n // \"A SHORT_NSN_MATCH occurs if there is a difference because of the\n // presence or absence of an 'Italian leading zero', the presence or\n // absence of an extension, or one NSN being a shorter variant of the\n // other.\"\n return 'SHORT_NSN_MATCH';\n }\n\n return 'NO_MATCH';\n}\n//# sourceMappingURL=matchPhoneNumberStringAgainstPhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isValidNumber from '../isValid.js';\nimport parseDigits from '../helpers/parseDigits.js';\nimport matchPhoneNumberStringAgainstPhoneNumber from './matchPhoneNumberStringAgainstPhoneNumber.js';\nimport Metadata from '../metadata.js';\nimport getCountryByCallingCode from '../helpers/getCountryByCallingCode.js';\nimport { chooseFormatForNumber } from '../format.js';\nimport { startsWith, endsWith } from './util.js';\n/**\r\n * Leniency when finding potential phone numbers in text segments\r\n * The levels here are ordered in increasing strictness.\r\n */\n\nexport default {\n /**\r\n * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\r\n */\n POSSIBLE: function POSSIBLE(phoneNumber, _ref) {\n var candidate = _ref.candidate,\n metadata = _ref.metadata;\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"possible\" and \"valid\".\r\n * Numbers written in national format must have their national-prefix\r\n * present if it is usually written for a number of this type.\r\n */\n VALID: function VALID(phoneNumber, _ref2) {\n var candidate = _ref2.candidate,\n defaultCountry = _ref2.defaultCountry,\n metadata = _ref2.metadata;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata)) {\n return false;\n } // Skipped for simplicity.\n // return isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n\n\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"valid\" and\r\n * are grouped in a possible way for this locale. For example, a US number written as\r\n * \"65 02 53 00 00\" and \"650253 0000\" are not accepted at this leniency level, whereas\r\n * \"650 253 0000\", \"650 2530000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol in the national significant number\r\n * are also dropped at this level.\r\n *\r\n * Warning: This level might result in lower coverage especially for regions outside of\r\n * country code \"+1\". If you are not sure about which level to use,\r\n * email the discussion group libphonenumber-discuss@googlegroups.com.\r\n */\n STRICT_GROUPING: function STRICT_GROUPING(phoneNumber, _ref3) {\n var candidate = _ref3.candidate,\n defaultCountry = _ref3.defaultCountry,\n metadata = _ref3.metadata,\n regExpCache = _ref3.regExpCache;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n defaultCountry: defaultCountry,\n metadata: metadata\n })) {\n return false;\n }\n\n return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsRemainGrouped, regExpCache);\n },\n\n /**\r\n * Phone numbers accepted are \"valid\" and are grouped in the same way\r\n * that we would have formatted it, or as a single block.\r\n * For example, a US number written as \"650 2530000\" is not accepted\r\n * at this leniency level, whereas \"650 253 0000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol are also dropped at this level.\r\n *\r\n * Warning: This level might result in lower coverage especially for regions outside of\r\n * country code \"+1\". If you are not sure about which level to use, email the discussion group\r\n * libphonenumber-discuss@googlegroups.com.\r\n */\n EXACT_GROUPING: function EXACT_GROUPING(phoneNumber, _ref4) {\n var candidate = _ref4.candidate,\n defaultCountry = _ref4.defaultCountry,\n metadata = _ref4.metadata,\n regExpCache = _ref4.regExpCache;\n\n if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n defaultCountry: defaultCountry,\n metadata: metadata\n })) {\n return false;\n }\n\n return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsAreExactlyPresent, regExpCache);\n }\n};\n\nfunction containsOnlyValidXChars(phoneNumber, candidate, metadata) {\n // The characters 'x' and 'X' can be (1) a carrier code, in which case they always precede the\n // national significant number or (2) an extension sign, in which case they always precede the\n // extension number. We assume a carrier code is more than 1 digit, so the first case has to\n // have more than 1 consecutive 'x' or 'X', whereas the second case can only have exactly 1 'x'\n // or 'X'. We ignore the character if it appears as the last character of the string.\n for (var index = 0; index < candidate.length - 1; index++) {\n var charAtIndex = candidate.charAt(index);\n\n if (charAtIndex === 'x' || charAtIndex === 'X') {\n var charAtNextIndex = candidate.charAt(index + 1);\n\n if (charAtNextIndex === 'x' || charAtNextIndex === 'X') {\n // This is the carrier code case, in which the 'X's always precede the national\n // significant number.\n index++;\n\n if (matchPhoneNumberStringAgainstPhoneNumber(candidate.substring(index), phoneNumber, metadata) !== 'NSN_MATCH') {\n return false;\n } // This is the extension sign case, in which the 'x' or 'X' should always precede the\n // extension number.\n\n } else {\n var ext = parseDigits(candidate.substring(index));\n\n if (ext) {\n if (phoneNumber.ext !== ext) {\n return false;\n }\n } else {\n if (phoneNumber.ext) {\n return false;\n }\n }\n }\n }\n }\n\n return true;\n}\n\nfunction isNationalPrefixPresentIfRequired(phoneNumber, _ref5) {\n var defaultCountry = _ref5.defaultCountry,\n _metadata = _ref5.metadata;\n\n // First, check how we deduced the country code. If it was written in international format, then\n // the national prefix is not required.\n if (phoneNumber.__countryCallingCodeSource !== 'FROM_DEFAULT_COUNTRY') {\n return true;\n }\n\n var metadata = new Metadata(_metadata);\n metadata.selectNumberingPlan(phoneNumber.countryCallingCode);\n var phoneNumberRegion = phoneNumber.country || getCountryByCallingCode(phoneNumber.countryCallingCode, {\n nationalNumber: phoneNumber.nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n }); // Check if a national prefix should be present when formatting this number.\n\n var nationalNumber = phoneNumber.nationalNumber;\n var format = chooseFormatForNumber(metadata.numberingPlan.formats(), nationalNumber); // To do this, we check that a national prefix formatting rule was present\n // and that it wasn't just the first-group symbol ($1) with punctuation.\n\n if (format.nationalPrefixFormattingRule()) {\n if (metadata.numberingPlan.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n // The national-prefix is optional in these cases, so we don't need to check if it was present.\n return true;\n }\n\n if (!format.usesNationalPrefix()) {\n // National Prefix not needed for this number.\n return true;\n }\n\n return Boolean(phoneNumber.nationalPrefix);\n }\n\n return true;\n}\n\nexport function containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) {\n var firstSlashInBodyIndex = candidate.indexOf('/');\n\n if (firstSlashInBodyIndex < 0) {\n // No slashes, this is okay.\n return false;\n } // Now look for a second one.\n\n\n var secondSlashInBodyIndex = candidate.indexOf('/', firstSlashInBodyIndex + 1);\n\n if (secondSlashInBodyIndex < 0) {\n // Only one slash, this is okay.\n return false;\n } // If the first slash is after the country calling code, this is permitted.\n\n\n var candidateHasCountryCode = phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITH_PLUS_SIGN' || phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITHOUT_PLUS_SIGN';\n\n if (candidateHasCountryCode && parseDigits(candidate.substring(0, firstSlashInBodyIndex)) === phoneNumber.countryCallingCode) {\n // Any more slashes and this is illegal.\n return candidate.slice(secondSlashInBodyIndex + 1).indexOf('/') >= 0;\n }\n\n return true;\n}\n\nfunction checkNumberGroupingIsValid(number, candidate, metadata, checkGroups, regExpCache) {\n throw new Error('This part of code hasn\\'t been ported');\n var normalizedCandidate = normalizeDigits(candidate, true\n /* keep non-digits */\n );\n var formattedNumberGroups = getNationalNumberGroups(metadata, number, null);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n } // If this didn't pass, see if there are any alternate formats that match, and try them instead.\n\n\n var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode());\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n\n if (alternateFormats) {\n for (var _iterator = _createForOfIteratorHelperLoose(alternateFormats.numberFormats()), _step; !(_step = _iterator()).done;) {\n var alternateFormat = _step.value;\n\n if (alternateFormat.leadingDigitsPatterns().length > 0) {\n // There is only one leading digits pattern for alternate formats.\n var leadingDigitsRegExp = regExpCache.getPatternForRegExp('^' + alternateFormat.leadingDigitsPatterns()[0]);\n\n if (!leadingDigitsRegExp.test(nationalSignificantNumber)) {\n // Leading digits don't match; try another one.\n continue;\n }\n }\n\n formattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\r\n * Helper method to get the national-number part of a number, formatted without any national\r\n * prefix, and return it as a set of digit blocks that would be formatted together following\r\n * standard formatting rules.\r\n */\n\n\nfunction getNationalNumberGroups(metadata, number, formattingPattern) {\n throw new Error('This part of code hasn\\'t been ported');\n\n if (formattingPattern) {\n // We format the NSN only, and split that according to the separator.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return util.formatNsnUsingPattern(nationalSignificantNumber, formattingPattern, 'RFC3966', metadata).split('-');\n } // This will be in the format +CC-DG1-DG2-DGX;ext=EXT where DG1..DGX represents groups of digits.\n\n\n var rfc3966Format = formatNumber(number, 'RFC3966', metadata); // We remove the extension part from the formatted string before splitting it into different\n // groups.\n\n var endIndex = rfc3966Format.indexOf(';');\n\n if (endIndex < 0) {\n endIndex = rfc3966Format.length;\n } // The country-code will have a '-' following it.\n\n\n var startIndex = rfc3966Format.indexOf('-') + 1;\n return rfc3966Format.slice(startIndex, endIndex).split('-');\n}\n\nfunction allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) {\n throw new Error('This part of code hasn\\'t been ported');\n var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN); // Set this to the last group, skipping it if the number has an extension.\n\n var candidateNumberGroupIndex = number.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1; // First we check if the national significant number is formatted as a block.\n // We use contains and not equals, since the national significant number may be present with\n // a prefix such as a national number prefix, or the country code itself.\n\n if (candidateGroups.length == 1 || candidateGroups[candidateNumberGroupIndex].contains(util.getNationalSignificantNumber(number))) {\n return true;\n } // Starting from the end, go through in reverse, excluding the first group, and check the\n // candidate and number groups are the same.\n\n\n var formattedNumberGroupIndex = formattedNumberGroups.length - 1;\n\n while (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0) {\n if (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex]) {\n return false;\n }\n\n formattedNumberGroupIndex--;\n candidateNumberGroupIndex--;\n } // Now check the first group. There may be a national prefix at the start, so we only check\n // that the candidate group ends with the formatted number group.\n\n\n return candidateNumberGroupIndex >= 0 && endsWith(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]);\n}\n\nfunction allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) {\n throw new Error('This part of code hasn\\'t been ported');\n var fromIndex = 0;\n\n if (number.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY) {\n // First skip the country code if the normalized candidate contained it.\n var countryCode = String(number.getCountryCode());\n fromIndex = normalizedCandidate.indexOf(countryCode) + countryCode.length();\n } // Check each group of consecutive digits are not broken into separate groupings in the\n // {@code normalizedCandidate} string.\n\n\n for (var i = 0; i < formattedNumberGroups.length; i++) {\n // Fails if the substring of {@code normalizedCandidate} starting from {@code fromIndex}\n // doesn't contain the consecutive digits in formattedNumberGroups[i].\n fromIndex = normalizedCandidate.indexOf(formattedNumberGroups[i], fromIndex);\n\n if (fromIndex < 0) {\n return false;\n } // Moves {@code fromIndex} forward.\n\n\n fromIndex += formattedNumberGroups[i].length();\n\n if (i == 0 && fromIndex < normalizedCandidate.length()) {\n // We are at the position right after the NDC. We get the region used for formatting\n // information based on the country code in the phone number, rather than the number itself,\n // as we do not need to distinguish between different countries with the same country\n // calling code and this is faster.\n var region = util.getRegionCodeForCountryCode(number.getCountryCode());\n\n if (util.getNddPrefixForRegion(region, true) != null && Character.isDigit(normalizedCandidate.charAt(fromIndex))) {\n // This means there is no formatting symbol after the NDC. In this case, we only\n // accept the number if there is no formatting symbol at all in the number, except\n // for extensions. This is only important for countries with national prefixes.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return startsWith(normalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length), nationalSignificantNumber);\n }\n }\n } // The check here makes sure that we haven't mistakenly already used the extension to\n // match the last group of the subscriber number. Note the extension cannot have\n // formatting in-between digits.\n\n\n return normalizedCandidate.slice(fromIndex).contains(number.getExtension());\n}\n//# sourceMappingURL=Leniency.js.map","import { trimAfterFirstMatch } from './util.js'; // Regular expression of characters typically used to start a second phone number for the purposes\n// of parsing. This allows us to strip off parts of the number that are actually the start of\n// another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this\n// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second\n// extension so that the first number is parsed correctly.\n//\n// Matches a slash (\\ or /) followed by a space followed by an `x`.\n//\n\nvar SECOND_NUMBER_START_PATTERN = /[\\\\/] *x/;\nexport default function parsePreCandidate(candidate) {\n // Check for extra numbers at the end.\n // TODO: This is the place to start when trying to support extraction of multiple phone number\n // from split notations (+41 79 123 45 67 / 68).\n return trimAfterFirstMatch(SECOND_NUMBER_START_PATTERN, candidate);\n}\n//# sourceMappingURL=parsePreCandidate.js.map","// Matches strings that look like dates using \"/\" as a separator.\n// Examples: 3/10/2011, 31/10/96 or 08/31/95.\nvar SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\\d\\/[01]?\\d)|(?:[01]?\\d\\/[0-3]?\\d))\\/(?:[12]\\d)?\\d{2}/; // Matches timestamps.\n// Examples: \"2012-01-02 08:00\".\n// Note that the reg-ex does not include the\n// trailing \":\\d\\d\" -- that is covered by TIME_STAMPS_SUFFIX.\n\nvar TIME_STAMPS = /[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$/;\nvar TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\\d/;\nexport default function isValidPreCandidate(candidate, offset, text) {\n // Skip a match that is more likely to be a date.\n if (SLASH_SEPARATED_DATES.test(candidate)) {\n return false;\n } // Skip potential time-stamps.\n\n\n if (TIME_STAMPS.test(candidate)) {\n var followingText = text.slice(offset + candidate.length);\n\n if (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n return false;\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidPreCandidate.js.map","// Copy-pasted from `PhoneNumberMatcher.js`.\nimport { PLUS_CHARS } from '../constants.js';\nimport { limit } from './util.js';\nimport { isLatinLetter, isInvalidPunctuationSymbol } from './utf-8.js';\nvar OPENING_PARENS = \"(\\\\[\\uFF08\\uFF3B\";\nvar CLOSING_PARENS = \")\\\\]\\uFF09\\uFF3D\";\nvar NON_PARENS = \"[^\".concat(OPENING_PARENS).concat(CLOSING_PARENS, \"]\");\nexport var LEAD_CLASS = \"[\".concat(OPENING_PARENS).concat(PLUS_CHARS, \"]\"); // Punctuation that may be at the start of a phone number - brackets and plus signs.\n\nvar LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS); // Limit on the number of pairs of brackets in a phone number.\n\nvar BRACKET_PAIR_LIMIT = limit(0, 3);\n/**\r\n * Pattern to check that brackets match. Opening brackets should be closed within a phone number.\r\n * This also checks that there is something inside the brackets. Having no brackets at all is also\r\n * fine.\r\n *\r\n * An opening bracket at the beginning may not be closed, but subsequent ones should be. It's\r\n * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a\r\n * closing bracket first. We limit the sets of brackets in a phone number to four.\r\n */\n\nvar MATCHING_BRACKETS_ENTIRE = new RegExp('^' + \"(?:[\" + OPENING_PARENS + \"])?\" + \"(?:\" + NON_PARENS + \"+\" + \"[\" + CLOSING_PARENS + \"])?\" + NON_PARENS + \"+\" + \"(?:[\" + OPENING_PARENS + \"]\" + NON_PARENS + \"+[\" + CLOSING_PARENS + \"])\" + BRACKET_PAIR_LIMIT + NON_PARENS + \"*\" + '$');\n/**\r\n * Matches strings that look like publication pages. Example:\r\n * <pre>Computing Complete Answers to Queries in the Presence of Limited Access Patterns.\r\n * Chen Li. VLDB J. 12(3): 211-227 (2003).</pre>\r\n *\r\n * The string \"211-227 (2003)\" is not a telephone number.\r\n */\n\nvar PUB_PAGES = /\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}/;\nexport default function isValidCandidate(candidate, offset, text, leniency) {\n // Check the candidate doesn't contain any formatting\n // which would indicate that it really isn't a phone number.\n if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n return;\n } // If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n // by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n\n\n if (leniency !== 'POSSIBLE') {\n // If the candidate is not at the start of the text,\n // and does not start with phone-number punctuation,\n // check the previous character.\n if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {\n var previousChar = text[offset - 1]; // We return null if it is a latin letter or an invalid punctuation symbol.\n\n if (isInvalidPunctuationSymbol(previousChar) || isLatinLetter(previousChar)) {\n return false;\n }\n }\n\n var lastCharIndex = offset + candidate.length;\n\n if (lastCharIndex < text.length) {\n var nextChar = text[lastCharIndex];\n\n if (isInvalidPunctuationSymbol(nextChar) || isLatinLetter(nextChar)) {\n return false;\n }\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidCandidate.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\r\n * A port of Google's `PhoneNumberMatcher.java`.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java\r\n * Date: 08.03.2018.\r\n */\nimport PhoneNumber from './PhoneNumber.js';\nimport { MAX_LENGTH_FOR_NSN, MAX_LENGTH_COUNTRY_CODE, VALID_PUNCTUATION } from './constants.js';\nimport createExtensionPattern from './helpers/extension/createExtensionPattern.js';\nimport RegExpCache from './findNumbers/RegExpCache.js';\nimport { limit, trimAfterFirstMatch } from './findNumbers/util.js';\nimport { _pL, _pN, pZ, PZ, pNd } from './findNumbers/utf-8.js';\nimport Leniency from './findNumbers/Leniency.js';\nimport parsePreCandidate from './findNumbers/parsePreCandidate.js';\nimport isValidPreCandidate from './findNumbers/isValidPreCandidate.js';\nimport isValidCandidate, { LEAD_CLASS } from './findNumbers/isValidCandidate.js';\nimport { isSupportedCountry } from './metadata.js';\nimport parsePhoneNumber from './parsePhoneNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar EXTN_PATTERNS_FOR_MATCHING = createExtensionPattern('matching');\n/**\r\n * Patterns used to extract phone numbers from a larger phone-number-like pattern. These are\r\n * ordered according to specificity. For example, white-space is last since that is frequently\r\n * used in numbers, not just to separate two numbers. We have separate patterns since we don't\r\n * want to break up the phone-number-like text on more than one different kind of symbol at one\r\n * time, although symbols of the same type (e.g. space) can be safely grouped together.\r\n *\r\n * Note that if there is a match, we will always check any text found up to the first match as\r\n * well.\r\n */\n\nvar INNER_MATCHES = [// Breaks on the slash - e.g. \"651-234-2345/332-445-1234\"\n'\\\\/+(.*)/', // Note that the bracket here is inside the capturing group, since we consider it part of the\n// phone number. Will match a pattern like \"(650) 223 3345 (754) 223 3321\".\n'(\\\\([^(]*)', // Breaks on a hyphen - e.g. \"12345 - 332-445-1234 is my number.\"\n// We require a space on either side of the hyphen for it to be considered a separator.\n\"(?:\".concat(pZ, \"-|-\").concat(pZ, \")\").concat(pZ, \"*(.+)\"), // Various types of wide hyphens. Note we have decided not to enforce a space here, since it's\n// possible that it's supposed to be used to break two numbers without spaces, and we haven't\n// seen many instances of it used within a number.\n\"[\\u2012-\\u2015\\uFF0D]\".concat(pZ, \"*(.+)\"), // Breaks on a full stop - e.g. \"12345. 332-445-1234 is my number.\"\n\"\\\\.+\".concat(pZ, \"*([^.]+)\"), // Breaks on space - e.g. \"3324451234 8002341234\"\n\"\".concat(pZ, \"+(\").concat(PZ, \"+)\")]; // Limit on the number of leading (plus) characters.\n\nvar leadLimit = limit(0, 2); // Limit on the number of consecutive punctuation characters.\n\nvar punctuationLimit = limit(0, 4);\n/* The maximum number of digits allowed in a digit-separated block. As we allow all digits in a\r\n * single block, set high enough to accommodate the entire national number and the international\r\n * country code. */\n\nvar digitBlockLimit = MAX_LENGTH_FOR_NSN + MAX_LENGTH_COUNTRY_CODE; // Limit on the number of blocks separated by punctuation.\n// Uses digitBlockLimit since some formats use spaces to separate each digit.\n\nvar blockLimit = limit(0, digitBlockLimit);\n/* A punctuation sequence allowing white space. */\n\nvar punctuation = \"[\".concat(VALID_PUNCTUATION, \"]\") + punctuationLimit; // A digits block without punctuation.\n\nvar digitSequence = pNd + limit(1, digitBlockLimit);\n/**\r\n * Phone number pattern allowing optional punctuation.\r\n * The phone number pattern used by `find()`, similar to\r\n * VALID_PHONE_NUMBER, but with the following differences:\r\n * <ul>\r\n * <li>All captures are limited in order to place an upper bound to the text matched by the\r\n * pattern.\r\n * <ul>\r\n * <li>Leading punctuation / plus signs are limited.\r\n * <li>Consecutive occurrences of punctuation are limited.\r\n * <li>Number of digits is limited.\r\n * </ul>\r\n * <li>No whitespace is allowed at the start or end.\r\n * <li>No alpha digits (vanity numbers such as 1-800-SIX-FLAGS) are currently supported.\r\n * </ul>\r\n */\n\nvar PATTERN = '(?:' + LEAD_CLASS + punctuation + ')' + leadLimit + digitSequence + '(?:' + punctuation + digitSequence + ')' + blockLimit + '(?:' + EXTN_PATTERNS_FOR_MATCHING + ')?'; // Regular expression of trailing characters that we want to remove.\n// We remove all characters that are not alpha or numerical characters.\n// The hash character is retained here, as it may signify\n// the previous block was an extension.\n//\n// // Don't know what does '&&' mean here.\n// const UNWANTED_END_CHAR_PATTERN = new RegExp(`[[\\\\P{N}&&\\\\P{L}]&&[^#]]+$`)\n//\n\nvar UNWANTED_END_CHAR_PATTERN = new RegExp(\"[^\".concat(_pN).concat(_pL, \"#]+$\"));\nvar NON_DIGITS_PATTERN = /(\\D+)/;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n/**\r\n * A stateful class that finds and extracts telephone numbers from {@linkplain CharSequence text}.\r\n * Instances can be created using the {@linkplain PhoneNumberUtil#findNumbers factory methods} in\r\n * {@link PhoneNumberUtil}.\r\n *\r\n * <p>Vanity numbers (phone numbers using alphabetic digits such as <tt>1-800-SIX-FLAGS</tt> are\r\n * not found.\r\n *\r\n * <p>This class is not thread-safe.\r\n */\n\nvar PhoneNumberMatcher = /*#__PURE__*/function () {\n /**\r\n * @param {string} text — the character sequence that we will search, null for no text.\r\n * @param {'POSSIBLE'|'VALID'|'STRICT_GROUPING'|'EXACT_GROUPING'} [options.leniency] — The leniency to use when evaluating candidate phone numbers. See `source/findNumbers/Leniency.js` for more details.\r\n * @param {number} [options.maxTries] — The maximum number of invalid numbers to try before giving up on the text. This is to cover degenerate cases where the text has a lot of false positives in it. Must be >= 0.\r\n */\n function PhoneNumberMatcher() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var metadata = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, PhoneNumberMatcher);\n\n options = {\n v2: options.v2,\n defaultCallingCode: options.defaultCallingCode,\n defaultCountry: options.defaultCountry && isSupportedCountry(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n leniency: options.leniency || (options.extended ? 'POSSIBLE' : 'VALID'),\n maxTries: options.maxTries || MAX_SAFE_INTEGER\n }; // Validate `leniency`.\n\n if (!options.leniency) {\n throw new TypeError('`leniency` is required');\n }\n\n if (options.leniency !== 'POSSIBLE' && options.leniency !== 'VALID') {\n throw new TypeError(\"Invalid `leniency`: \\\"\".concat(options.leniency, \"\\\". Supported values: \\\"POSSIBLE\\\", \\\"VALID\\\".\"));\n } // Validate `maxTries`.\n\n\n if (options.maxTries < 0) {\n throw new TypeError('`maxTries` must be `>= 0`');\n }\n\n this.text = text;\n this.options = options;\n this.metadata = metadata; // The degree of phone number validation.\n\n this.leniency = Leniency[options.leniency];\n\n if (!this.leniency) {\n throw new TypeError(\"Unknown leniency: \\\"\".concat(options.leniency, \"\\\"\"));\n }\n /** The maximum number of retries after matching an invalid number. */\n\n\n this.maxTries = options.maxTries;\n this.PATTERN = new RegExp(PATTERN, 'ig');\n /** The iteration tristate. */\n\n this.state = 'NOT_READY';\n /** The next index to start searching at. Undefined in {@link State#DONE}. */\n\n this.searchIndex = 0; // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n // countries being used for the same doc with ~10 patterns for each country. Some pages will have\n // a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n // that use-case won't have a lot of benefit.\n\n this.regExpCache = new RegExpCache(32);\n }\n /**\r\n * Attempts to find the next subsequence in the searched sequence on or after {@code searchIndex}\r\n * that represents a phone number. Returns the next match, null if none was found.\r\n *\r\n * @param index the search index to start searching at\r\n * @return the phone number match found, null if none can be found\r\n */\n\n\n _createClass(PhoneNumberMatcher, [{\n key: \"find\",\n value: function find() {\n // // Reset the regular expression.\n // this.PATTERN.lastIndex = index\n var matches;\n\n while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) {\n var candidate = matches[0];\n var offset = matches.index;\n candidate = parsePreCandidate(candidate);\n\n if (isValidPreCandidate(candidate, offset, this.text)) {\n var match = // Try to come up with a valid match given the entire candidate.\n this.parseAndVerify(candidate, offset, this.text) // If that failed, try to find an \"inner match\" -\n // there might be a phone number within this candidate.\n || this.extractInnerMatch(candidate, offset, this.text);\n\n if (match) {\n if (this.options.v2) {\n return {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n number: match.phoneNumber\n };\n } else {\n var phoneNumber = match.phoneNumber;\n var result = {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n phone: phoneNumber.nationalNumber\n };\n\n if (phoneNumber.country) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE && country === '001') {\n result.countryCallingCode = phoneNumber.countryCallingCode;\n } else {\n result.country = phoneNumber.country;\n }\n } else {\n result.countryCallingCode = phoneNumber.countryCallingCode;\n }\n\n if (phoneNumber.ext) {\n result.ext = phoneNumber.ext;\n }\n\n return result;\n }\n }\n }\n\n this.maxTries--;\n }\n }\n /**\r\n * Attempts to extract a match from `substring`\r\n * if the substring itself does not qualify as a match.\r\n */\n\n }, {\n key: \"extractInnerMatch\",\n value: function extractInnerMatch(substring, offset, text) {\n for (var _iterator = _createForOfIteratorHelperLoose(INNER_MATCHES), _step; !(_step = _iterator()).done;) {\n var innerMatchPattern = _step.value;\n var isFirstMatch = true;\n var candidateMatch = void 0;\n var innerMatchRegExp = new RegExp(innerMatchPattern, 'g');\n\n while (this.maxTries > 0 && (candidateMatch = innerMatchRegExp.exec(substring)) !== null) {\n if (isFirstMatch) {\n // We should handle any group before this one too.\n var _candidate = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, substring.slice(0, candidateMatch.index));\n\n var _match = this.parseAndVerify(_candidate, offset, text);\n\n if (_match) {\n return _match;\n }\n\n this.maxTries--;\n isFirstMatch = false;\n }\n\n var candidate = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, candidateMatch[1]); // Java code does `groupMatcher.start(1)` here,\n // but there's no way in javascript to get a `candidate` start index,\n // therefore resort to using this kind of an approximation.\n // (`groupMatcher` is called `candidateInSubstringMatch` in this javascript port)\n // https://stackoverflow.com/questions/15934353/get-index-of-each-capture-in-a-javascript-regex\n\n var candidateIndexGuess = substring.indexOf(candidate, candidateMatch.index);\n var match = this.parseAndVerify(candidate, offset + candidateIndexGuess, text);\n\n if (match) {\n return match;\n }\n\n this.maxTries--;\n }\n }\n }\n /**\r\n * Parses a phone number from the `candidate` using `parse` and\r\n * verifies it matches the requested `leniency`. If parsing and verification succeed,\r\n * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.\r\n *\r\n * @param candidate the candidate match\r\n * @param offset the offset of {@code candidate} within {@link #text}\r\n * @return the parsed and validated phone number match, or null\r\n */\n\n }, {\n key: \"parseAndVerify\",\n value: function parseAndVerify(candidate, offset, text) {\n if (!isValidCandidate(candidate, offset, text, this.options.leniency)) {\n return;\n }\n\n var phoneNumber = parsePhoneNumber(candidate, {\n extended: true,\n defaultCountry: this.options.defaultCountry,\n defaultCallingCode: this.options.defaultCallingCode\n }, this.metadata);\n\n if (!phoneNumber) {\n return;\n }\n\n if (!phoneNumber.isPossible()) {\n return;\n }\n\n if (this.leniency(phoneNumber, {\n candidate: candidate,\n defaultCountry: this.options.defaultCountry,\n metadata: this.metadata,\n regExpCache: this.regExpCache\n })) {\n return {\n startsAt: offset,\n endsAt: offset + candidate.length,\n phoneNumber: phoneNumber\n };\n }\n }\n }, {\n key: \"hasNext\",\n value: function hasNext() {\n if (this.state === 'NOT_READY') {\n this.lastMatch = this.find(); // (this.searchIndex)\n\n if (this.lastMatch) {\n // this.searchIndex = this.lastMatch.endsAt\n this.state = 'READY';\n } else {\n this.state = 'DONE';\n }\n }\n\n return this.state === 'READY';\n }\n }, {\n key: \"next\",\n value: function next() {\n // Check the state and find the next match as a side-effect if necessary.\n if (!this.hasNext()) {\n throw new Error('No next element');\n } // Don't retain that memory any longer than necessary.\n\n\n var result = this.lastMatch;\n this.lastMatch = null;\n this.state = 'NOT_READY';\n return result;\n }\n }]);\n\n return PhoneNumberMatcher;\n}();\n\nexport { PhoneNumberMatcher as default };\n//# sourceMappingURL=PhoneNumberMatcher.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string`\n// * `callingCode?: string`\n// * `digits: string`\n// * `international: boolean`\n// * `missingPlus: boolean`\n// * `IDDPrefix?: string`\n// * `carrierCode?: string`\n// * `nationalPrefix?: string`\n// * `nationalSignificantNumber?: string`\n// * `nationalSignificantNumberMatchesInput: boolean`\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\n//\n// `state.country` and `state.callingCode` aren't required to be in sync.\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n// So `state.country` and `state.callingCode` are totally independent.\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n\n _classCallCheck(this, AsYouTypeState);\n\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n\n _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberMatchesInput = true;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.complexPrefixBeforeNationalSignificantNumber = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n\n return this.digits;\n }\n }]);\n\n return AsYouTypeState;\n}();\n\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE';\n}\n\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode; // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n\n if (formattedNumber) {\n return formattedNumber;\n }\n } // Format the number without using `national_prefix_formatting_rule`.\n\n\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\n\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.complexPrefixBeforeNationalSignificantNumber) {\n formattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber + ' ' + formattedNationalNumber;\n }\n }\n\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n} // Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\n\n\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n\n _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n /* istanbul ignore if */\n\n\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n\n if (instructions.length === 1) {\n return instructions[0];\n }\n\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n\n var match = pattern.match(OPERATOR);\n\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n\n if (before) {\n this.parsePattern(before);\n }\n\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n\n if (before) {\n this.parsePattern(before);\n } // The top-level is an implicit \"or\" group, if required.\n\n\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n\n this.startContext({\n oneOfSet: true\n });\n break;\n\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n\n return PatternParser;\n}();\n\nexport { PatternParser as default };\n\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n\n i++;\n }\n\n return values;\n}\n\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp( // any of:\n'(' + // or operator\n'\\\\|' + // or\n'|' + // or group start\n'\\\\(\\\\?\\\\:' + // or\n'|' + // or group end\n'\\\\)' + // or\n'|' + // one-of set start\n'\\\\[' + // or\n'|' + // one-of set end\n'\\\\]' + ')');\n\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\n\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n\n this.matchTree = new PatternParser().parse(pattern);\n }\n\n _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n\n if (!string) {\n throw new Error('String is required');\n }\n\n var result = _match(string.split(''), this.matchTree, true);\n\n if (result && result.match) {\n delete result.matchedChars;\n }\n\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n\n return result;\n }\n }]);\n\n return PatternMatcher;\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\n\n\nexport { PatternMatcher as default };\n\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n } // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n\n /* istanbul ignore next */\n\n\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n\n return;\n }\n\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n\n while (i < tree.length) {\n var subtree = tree[i];\n\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true // matchedChars: characters\n\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n\n i++;\n } // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n\n /* istanbul ignore if */\n\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n\n switch (tree.op) {\n case '|':\n var partialMatch;\n\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n\n var _result = _match(characters, branch, last);\n\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n\n if (partialMatch) {\n return {\n partialMatch: true // matchedChars: ...\n\n };\n } // Not even a partial match.\n\n\n return;\n\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n\n if (last) {\n return {\n overflow: true\n };\n }\n\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n } // No character matches.\n\n\n return;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\n\n\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' + // Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\n\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n\n _classCallCheck(this, AsYouTypeFormatter);\n\n this.metadata = metadata;\n this.resetFormat();\n }\n\n _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n } // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n } // Formats the next phone number digits.\n\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat(state);\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber; // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() && // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n } // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n\n\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error)\n /* istanbul ignore next */\n {\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n\n var _loop = function _loop() {\n var format = _step2.value;\n\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return \"break\";\n } // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n\n /* istanbul ignore if */\n\n\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return \"continue\";\n }\n\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return \"continue\";\n }\n\n _this3.chosenFormat = format;\n return \"break\";\n };\n\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n var _ret = _loop();\n\n if (_ret === \"break\") break;\n if (_ret === \"continue\") continue;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForFormat(format, state); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n } // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n } // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n\n\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n\n if (missingPlus) {\n return '';\n }\n\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n } // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n\n\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n complexPrefixBeforeNationalSignificantNumber = _ref4.complexPrefixBeforeNationalSignificantNumber;\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (nationalSignificantNumber.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate; // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()); // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n\n /* istanbul ignore else */\n\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true; // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER); // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n\n if (!nationalPrefixIncludedInTemplate) {\n if (complexPrefixBeforeNationalSignificantNumber) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1]; // Return the formatted phone number so far.\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n\n return AsYouTypeFormatter;\n}();\n\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$'); // Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\n\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\n\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n\n _classCallCheck(this, AsYouTypeParser);\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n\n _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n\n var digits = parseDigits(formattedDigits); // Checks for a special case: just a leading `+` has been entered.\n\n var justLeadingPlus;\n\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber();\n\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n\n if (digits) {\n this.inputDigits(digits, state);\n }\n\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3; // Append phone number digits.\n\n state.appendDigits(nextDigits); // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n } // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n\n\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n } // Extracts a country calling code from a number\n // being entered in internatonal format.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (nationalNumber === nationalDigits) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode; // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n\n /* istanbul ignore if */\n\n\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n var complexPrefixBeforeNationalSignificantNumber;\n var nationalSignificantNumberMatchesInput; // This check also works with empty `this.nationalSignificantNumber`.\n\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber); // If the extracted national (significant) number is the\n // last substring of the `digits`, then it means that it hasn't been altered:\n // no digits have been removed from the national (significant) number\n // while applying `national_prefix_transform_rule`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n\n if (nationalSignificantNumberIndex >= 0 && nationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberMatchesInput = true; // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then such prefix is stored in\n // `this.complexPrefixBeforeNationalSignificantNumber` property and will be\n // prepended \"as is\" to the national (significant) number to produce\n // a formatted result.\n\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex); // `prefixBeforeNationalNumber` is always non-empty,\n // because `onExtractedNationalNumber()` isn't called\n // when a national (significant) number hasn't been actually \"extracted\":\n // when a national (significant) number is equal to the national part of `digits`,\n // then `onExtractedNationalNumber()` doesn't get called.\n\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n complexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber;\n }\n }\n\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberMatchesInput: nationalSignificantNumberMatchesInput,\n complexPrefixBeforeNationalSignificantNumber: complexPrefixBeforeNationalSignificantNumber\n }); // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n } // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n\n\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n } // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n\n\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n\n if (international || IDDPrefix) {\n return;\n } // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n\n\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode); // If a national (significant) number has been extracted before, reset it.\n\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n\n return AsYouTypeParser;\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\n\nexport { AsYouTypeParser as default };\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n\n return [extractedNumber];\n}\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\n\n\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1]; // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n this.metadata = new Metadata(metadata);\n\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1]; // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n\n\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (isObject(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n\n return [defaultCountry, defaultCallingCode];\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded(); // Match the available formats by the currently available leading digits.\n\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n\n var formattedNationalNumber;\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded(); // If it could, then re-try formatting the new national (significant) number.\n\n var nationalDigits = this.state.getNationalDigits();\n\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included the `.country` property of an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n } // A legacy alias.\n\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits; // Return `undefined` if no digits have been input yet.\n\n if (digits) {\n return this._getCountry();\n }\n }\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n\n var callingCode = this.state.callingCode;\n\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n complexPrefixBeforeNationalSignificantNumber = _this$state.complexPrefixBeforeNationalSignificantNumber,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix;\n\n if (prefix) {\n number = prefix + number;\n }\n\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberMatchesInput = this.state.nationalSignificantNumberMatchesInput;\n return this.getFullNumber(nationalSignificantNumberMatchesInput ? this.getNonFormattedNationalNumberWithPrefix() : this.state.getNationalDigits());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata\n }));\n }\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber; // Will return `undefined` if no digits have been input.\n\n if (!digits) {\n return;\n }\n\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode; // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n\n var country = this._getCountry();\n\n if (!nationalSignificantNumber) {\n return;\n } // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n\n if (!country && !callingCode) {\n return;\n } // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n\n\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new Metadata(this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n\n var _callingCode = metadata.numberingPlan.callingCode();\n\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n\n if (ambiguousCountries.length > 1) {\n var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n countries: ambiguousCountries,\n defaultCountry: this.defaultCountry,\n metadata: this.metadata.metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isPossible();\n }\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n\n if (!phoneNumber) {\n return false;\n }\n\n return phoneNumber.isValid();\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { parsePhoneNumberWithError as _parsePhoneNumberWithError } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumberWithError() {\r\n\treturn withMetadataArgument(_parsePhoneNumberWithError, arguments)\r\n}\r\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index.js'\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn withMetadataArgument(_isValidPhoneNumber, arguments)\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { PhoneNumberMatcher as _PhoneNumberMatcher } from '../../core/index.js'\r\n\r\nexport function PhoneNumberMatcher(text, options) {\r\n\treturn _PhoneNumberMatcher.call(this, text, options, metadata)\r\n}\r\nPhoneNumberMatcher.prototype = Object.create(_PhoneNumberMatcher.prototype, {})\r\nPhoneNumberMatcher.prototype.constructor = PhoneNumberMatcher\r\n","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { AsYouType as _AsYouType } from '../../core/index.js'\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { Metadata as _Metadata } from '../../core/index.js'\r\n\r\nexport function Metadata() {\r\n\treturn _Metadata.call(this, metadata)\r\n}\r\n\r\nMetadata.prototype = Object.create(_Metadata.prototype, {})\r\nMetadata.prototype.constructor = Metadata","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { PhoneNumber as _PhoneNumber } from '../../core/index.js'\r\n\r\nexport function PhoneNumber(number) {\r\n\treturn _PhoneNumber.call(this, number, metadata)\r\n}\r\nPhoneNumber.prototype = Object.create(_PhoneNumber.prototype, {})\r\nPhoneNumber.prototype.constructor = PhoneNumber\r\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a legacy function.\n// Use `findNumbers()` instead.\nimport { PLUS_CHARS, VALID_PUNCTUATION, VALID_DIGITS, WHITESPACE } from '../constants.js';\nimport parse from '../parse.js';\nimport { VALID_PHONE_NUMBER_WITH_EXTENSION } from '../helpers/isViablePhoneNumber.js';\nimport createExtensionPattern from '../helpers/extension/createExtensionPattern.js';\nimport parsePreCandidate from '../findNumbers/parsePreCandidate.js';\nimport isValidPreCandidate from '../findNumbers/isValidPreCandidate.js';\nimport isValidCandidate from '../findNumbers/isValidCandidate.js';\n/**\r\n * Regexp of all possible ways to write extensions, for use when parsing. This\r\n * will be run as a case-insensitive regexp match. Wide character versions are\r\n * also provided after each ASCII version. There are three regular expressions\r\n * here. The first covers RFC 3966 format, where the extension is added using\r\n * ';ext='. The second more generic one starts with optional white space and\r\n * ends with an optional full stop (.), followed by zero or more spaces/tabs\r\n * /commas and then the numbers themselves. The other one covers the special\r\n * case of American numbers where the extension is written with a hash at the\r\n * end, such as '- 503#'. Note that the only capturing groups should be around\r\n * the digits that you want to capture as part of the extension, or else parsing\r\n * will fail! We allow two options for representing the accented o - the\r\n * character itself, and one in the unicode decomposed form with the combining\r\n * acute accent.\r\n */\n\nexport var EXTN_PATTERNS_FOR_PARSING = createExtensionPattern('parsing');\nvar WHITESPACE_IN_THE_BEGINNING_PATTERN = new RegExp('^[' + WHITESPACE + ']+');\nvar PUNCTUATION_IN_THE_END_PATTERN = new RegExp('[' + VALID_PUNCTUATION + ']+$'); // // Regular expression for getting opening brackets for a valid number\n// // found using `PHONE_NUMBER_START_PATTERN` for prepending those brackets to the number.\n// const BEFORE_NUMBER_DIGITS_PUNCTUATION = new RegExp('[' + OPENING_BRACKETS + ']+' + '[' + WHITESPACE + ']*' + '$')\n\nvar VALID_PRECEDING_CHARACTER_PATTERN = /[^a-zA-Z0-9]/;\nexport default function findPhoneNumbers(text, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n var search = new PhoneNumberSearch(text, options, metadata);\n var phones = [];\n\n while (search.hasNext()) {\n phones.push(search.next());\n }\n\n return phones;\n}\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\n\nexport function searchPhoneNumbers(text, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n var search = new PhoneNumberSearch(text, options, metadata);\n return _defineProperty({}, Symbol.iterator, function () {\n return {\n next: function next() {\n if (search.hasNext()) {\n return {\n done: false,\n value: search.next()\n };\n }\n\n return {\n done: true\n };\n }\n };\n });\n}\n/**\r\n * Extracts a parseable phone number including any opening brackets, etc.\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?startsAt, ?endsAt }`.\r\n */\n\nexport var PhoneNumberSearch = /*#__PURE__*/function () {\n function PhoneNumberSearch(text, options, metadata) {\n _classCallCheck(this, PhoneNumberSearch);\n\n this.text = text; // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n\n this.options = options || {};\n this.metadata = metadata; // Iteration tristate.\n\n this.state = 'NOT_READY';\n this.regexp = new RegExp(VALID_PHONE_NUMBER_WITH_EXTENSION, 'ig');\n }\n\n _createClass(PhoneNumberSearch, [{\n key: \"find\",\n value: function find() {\n var matches = this.regexp.exec(this.text);\n\n if (!matches) {\n return;\n }\n\n var number = matches[0];\n var startsAt = matches.index;\n number = number.replace(WHITESPACE_IN_THE_BEGINNING_PATTERN, '');\n startsAt += matches[0].length - number.length; // Fixes not parsing numbers with whitespace in the end.\n // Also fixes not parsing numbers with opening parentheses in the end.\n // https://github.com/catamphetamine/libphonenumber-js/issues/252\n\n number = number.replace(PUNCTUATION_IN_THE_END_PATTERN, '');\n number = parsePreCandidate(number);\n var result = this.parseCandidate(number, startsAt);\n\n if (result) {\n return result;\n } // Tail recursion.\n // Try the next one if this one is not a valid phone number.\n\n\n return this.find();\n }\n }, {\n key: \"parseCandidate\",\n value: function parseCandidate(number, startsAt) {\n if (!isValidPreCandidate(number, startsAt, this.text)) {\n return;\n } // Don't parse phone numbers which are non-phone numbers\n // due to being part of something else (e.g. a UUID).\n // https://github.com/catamphetamine/libphonenumber-js/issues/213\n // Copy-pasted from Google's `PhoneNumberMatcher.js` (`.parseAndValidate()`).\n\n\n if (!isValidCandidate(number, startsAt, this.text, this.options.extended ? 'POSSIBLE' : 'VALID')) {\n return;\n } // // Prepend any opening brackets left behind by the\n // // `PHONE_NUMBER_START_PATTERN` regexp.\n // const text_before_number = text.slice(this.searching_from, startsAt)\n // const full_number_starts_at = text_before_number.search(BEFORE_NUMBER_DIGITS_PUNCTUATION)\n // if (full_number_starts_at >= 0)\n // {\n // \tnumber = text_before_number.slice(full_number_starts_at) + number\n // \tstartsAt = full_number_starts_at\n // }\n //\n // this.searching_from = matches.lastIndex\n\n\n var result = parse(number, this.options, this.metadata);\n\n if (!result.phone) {\n return;\n }\n\n result.startsAt = startsAt;\n result.endsAt = startsAt + number.length;\n return result;\n }\n }, {\n key: \"hasNext\",\n value: function hasNext() {\n if (this.state === 'NOT_READY') {\n this.last_match = this.find();\n\n if (this.last_match) {\n this.state = 'READY';\n } else {\n this.state = 'DONE';\n }\n }\n\n return this.state === 'READY';\n }\n }, {\n key: \"next\",\n value: function next() {\n // Check the state and find the next match as a side-effect if necessary.\n if (!this.hasNext()) {\n throw new Error('No next element');\n } // Don't retain that memory any longer than necessary.\n\n\n var result = this.last_match;\n this.last_match = null;\n this.state = 'NOT_READY';\n return result;\n }\n }]);\n\n return PhoneNumberSearch;\n}();\n//# sourceMappingURL=findPhoneNumbersInitialImplementation.js.map","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../metadata.min.json.js'\r\n\r\nimport { PhoneNumberSearch as _PhoneNumberSearch } from '../es6/legacy/findPhoneNumbersInitialImplementation.js'\r\n\r\nexport function PhoneNumberSearch(text, options) {\r\n\t_PhoneNumberSearch.call(this, text, options, metadata)\r\n}\r\n\r\n// Deprecated.\r\nPhoneNumberSearch.prototype = Object.create(_PhoneNumberSearch.prototype, {})\r\nPhoneNumberSearch.prototype.constructor = PhoneNumberSearch\r\n","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n?.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\n\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break', 'white-space'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n // fix: A form field element should have an id or name attribute\n // A form field element has neither an id nor a name attribute. This might prevent the browser from correctly autofilling the form.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea\n hiddenTextarea.setAttribute('name', 'hiddenTextarea');\n document.body.appendChild(hiddenTextarea);\n }\n\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport calculateAutoSizeStyle from \"./calculateNodeHeight\";\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _ref = props,\n prefixCls = _ref.prefixCls,\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n autoSize = _ref.autoSize,\n onResize = _ref.onResize,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n onChange = _ref.onChange,\n onInternalAutoSize = _ref.onInternalAutoSize,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 || onChange(event);\n };\n\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 || onInternalAutoSize();\n }\n };\n\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 || onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"defaultValue\", \"value\", \"onFocus\", \"onBlur\", \"onChange\", \"allowClear\", \"maxLength\", \"onCompositionStart\", \"onCompositionEnd\", \"suffix\", \"prefixCls\", \"showCount\", \"count\", \"className\", \"style\", \"disabled\", \"hidden\", \"classNames\", \"styles\", \"onResize\", \"onClear\", \"onPressEnter\", \"readOnly\", \"autoSize\", \"onKeyDown\"];\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport useCount from \"rc-input/es/hooks/useCount\";\nimport { resolveOnChange } from \"rc-input/es/utils/commonUtils\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport ResizableTextArea from \"./ResizableTextArea\";\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _countConfig$max;\n var defaultValue = _ref.defaultValue,\n customValue = _ref.value,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onChange = _ref.onChange,\n allowClear = _ref.allowClear,\n maxLength = _ref.maxLength,\n onCompositionStart = _ref.onCompositionStart,\n onCompositionEnd = _ref.onCompositionEnd,\n suffix = _ref.suffix,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-textarea' : _ref$prefixCls,\n showCount = _ref.showCount,\n count = _ref.count,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n hidden = _ref.hidden,\n classNames = _ref.classNames,\n styles = _ref.styles,\n onResize = _ref.onResize,\n onClear = _ref.onClear,\n onPressEnter = _ref.onPressEnter,\n readOnly = _ref.readOnly,\n autoSize = _ref.autoSize,\n onKeyDown = _ref.onKeyDown,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(defaultValue, {\n value: customValue,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var formatValue = value === undefined || value === null ? '' : String(value);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var compositionRef = React.useRef(false);\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n textareaResized = _React$useState4[0],\n setTextareaResized = _React$useState4[1];\n\n // =============================== Ref ================================\n var holderRef = useRef(null);\n var resizableTextAreaRef = useRef(null);\n var getTextArea = function getTextArea() {\n var _resizableTextAreaRef;\n return (_resizableTextAreaRef = resizableTextAreaRef.current) === null || _resizableTextAreaRef === void 0 ? void 0 : _resizableTextAreaRef.textArea;\n };\n var focus = function focus() {\n getTextArea().focus();\n };\n useImperativeHandle(ref, function () {\n var _holderRef$current;\n return {\n resizableTextArea: resizableTextAreaRef.current,\n focus: focus,\n blur: function blur() {\n getTextArea().blur();\n },\n nativeElement: ((_holderRef$current = holderRef.current) === null || _holderRef$current === void 0 ? void 0 : _holderRef$current.nativeElement) || getTextArea()\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return !disabled && prev;\n });\n }, [disabled]);\n\n // =========================== Select Range ===========================\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n selection = _React$useState6[0],\n setSelection = _React$useState6[1];\n React.useEffect(function () {\n if (selection) {\n var _getTextArea;\n (_getTextArea = getTextArea()).setSelectionRange.apply(_getTextArea, _toConsumableArray(selection));\n }\n }, [selection]);\n\n // ============================== Count ===============================\n var countConfig = useCount(count, showCount);\n var mergedMax = (_countConfig$max = countConfig.max) !== null && _countConfig$max !== void 0 ? _countConfig$max : maxLength;\n\n // Max length value\n var hasMaxLength = Number(mergedMax) > 0;\n var valueLength = countConfig.strategy(formatValue);\n var isOutOfRange = !!mergedMax && valueLength > mergedMax;\n\n // ============================== Change ==============================\n var triggerChange = function triggerChange(e, currentValue) {\n var cutValue = currentValue;\n if (!compositionRef.current && countConfig.exceedFormatter && countConfig.max && countConfig.strategy(currentValue) > countConfig.max) {\n cutValue = countConfig.exceedFormatter(currentValue, {\n max: countConfig.max\n });\n if (currentValue !== cutValue) {\n setSelection([getTextArea().selectionStart || 0, getTextArea().selectionEnd || 0]);\n }\n }\n setValue(cutValue);\n resolveOnChange(e.currentTarget, e, onChange, cutValue);\n };\n\n // =========================== Value Update ===========================\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n compositionRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 || onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n compositionRef.current = false;\n triggerChange(e, e.currentTarget.value);\n onCompositionEnd === null || onCompositionEnd === void 0 || onCompositionEnd(e);\n };\n var onInternalChange = function onInternalChange(e) {\n triggerChange(e, e.target.value);\n };\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === 'Enter' && onPressEnter) {\n onPressEnter(e);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 || onBlur(e);\n };\n\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n resolveOnChange(getTextArea(), e, onChange);\n };\n var suffixNode = suffix;\n var dataCount;\n if (countConfig.show) {\n if (countConfig.showFormatter) {\n dataCount = countConfig.showFormatter({\n value: formatValue,\n count: valueLength,\n maxLength: mergedMax\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(mergedMax) : '');\n }\n suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, suffixNode, /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-data-count\"), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n style: styles === null || styles === void 0 ? void 0 : styles.count\n }, dataCount));\n }\n var handleResize = function handleResize(size) {\n var _getTextArea2;\n onResize === null || onResize === void 0 || onResize(size);\n if ((_getTextArea2 = getTextArea()) !== null && _getTextArea2 !== void 0 && _getTextArea2.style.height) {\n setTextareaResized(true);\n }\n };\n var isPureTextArea = !autoSize && !showCount && !allowClear;\n return /*#__PURE__*/React.createElement(BaseInput, {\n ref: holderRef,\n value: formatValue,\n allowClear: allowClear,\n handleReset: handleReset,\n suffix: suffixNode,\n prefixCls: prefixCls,\n classNames: _objectSpread(_objectSpread({}, classNames), {}, {\n affixWrapper: clsx(classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-show-count\"), showCount), \"\".concat(prefixCls, \"-textarea-allow-clear\"), allowClear))\n }),\n disabled: disabled,\n focused: focused,\n className: clsx(className, isOutOfRange && \"\".concat(prefixCls, \"-out-of-range\")),\n style: _objectSpread(_objectSpread({}, style), textareaResized && !isPureTextArea ? {\n height: 'auto'\n } : {}),\n dataAttrs: {\n affixWrapper: {\n 'data-count': typeof dataCount === 'string' ? dataCount : undefined\n }\n },\n hidden: hidden,\n readOnly: readOnly,\n onClear: onClear\n }, /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, rest, {\n autoSize: autoSize,\n maxLength: maxLength,\n onKeyDown: handleKeyDown,\n onChange: onInternalChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onCompositionStart: onInternalCompositionStart,\n onCompositionEnd: onInternalCompositionEnd,\n className: clsx(classNames === null || classNames === void 0 ? void 0 : classNames.textarea),\n style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.textarea), {}, {\n resize: style === null || style === void 0 ? void 0 : style.resize\n }),\n disabled: disabled,\n prefixCls: prefixCls,\n onResize: handleResize,\n ref: resizableTextAreaRef,\n readOnly: readOnly\n })));\n});\nexport default TextArea;","import TextArea from \"./TextArea\";\nexport { default as ResizableTextArea } from \"./ResizableTextArea\";\nexport default TextArea;","module.exports = __webpack_public_path__ + \"31c610efb1d25afc90853b52ba4cb089.js\";","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\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 infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2022 Google LLC\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 * https://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\nconst whenActivated = (callback) => {\n if (WINDOW.document && WINDOW.document.prerendering) {\n addEventListener('prerenderingchange', () => callback(), true);\n } else {\n callback();\n }\n};\n\nexport { whenActivated };\n//# sourceMappingURL=whenActivated.js.map\n","module.exports = __webpack_public_path__ + \"79241f85b016a7332f85bb66667459c2.js\";","module.exports = __webpack_public_path__ + \"5f5a93ab1249b7cbdb13d9466febd3a0.js\";","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","\"use client\";\n\n/* eslint import/no-unresolved: 0 */\n// @ts-ignore\nimport version from './version';\nexport default version;","/**\n * The function that correctly handles passing refs.\n *\n * @param ref - An ref object or function\n * @param node - A node that should be passed by ref\n */\nexport var handleRef = function handleRef(ref, node) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref === 'string') {\n throw new Error('We do not support refs as string, this is a legacy API and will be likely to be removed in one of the future releases of React.');\n }\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (ref !== null && typeof ref === 'object') {\n // The `current` property is defined as readonly, however it's a valid way because\n // `ref` is a mutable object\n ref.current = node;\n }\n};\n/** Checks that the passed object is a valid React ref object. */\n\nexport var isRefObject = function isRefObject(ref) {\n return (// https://github.com/facebook/react/blob/v16.8.2/packages/react-reconciler/src/ReactFiberCommitWork.js#L665\n ref !== null && typeof ref === 'object' && ref.hasOwnProperty('current')\n );\n};\n//# sourceMappingURL=utils.js.map\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { handleRef } from './utils'; // ========================================================\n// react/packages/react-reconciler/src/ReactFiber.js\n// ========================================================\n\n/**\n * Detects if a passed element is a Fiber object instead of an element. Is needed as `ReactDOM.findDOMNode()` returns\n * a Fiber in `react-test-renderer` that can cause issues with tests. Is used only in non-production env.\n *\n * @see https://github.com/facebook/react/issues/7371#issuecomment-317396864\n * @see https://github.com/Semantic-Org/Semantic-UI-React/issues/4061#issuecomment-694895617\n */\nfunction isFiberRef(node) {\n if (node === null) {\n return false;\n }\n\n if (node instanceof Element || node instanceof Text) {\n return false;\n }\n\n return !!(node.type && node.tag);\n}\n\nexport var RefFindNode = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(RefFindNode, _React$Component);\n\n function RefFindNode() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.prevNode = void 0;\n return _this;\n }\n\n var _proto = RefFindNode.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var currentNode = ReactDOM.findDOMNode(this);\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFiberRef(currentNode)) {\n currentNode = null;\n }\n }\n\n this.prevNode = currentNode;\n handleRef(this.props.innerRef, currentNode);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var currentNode = ReactDOM.findDOMNode(this);\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFiberRef(currentNode)) {\n currentNode = null;\n }\n }\n\n if (this.prevNode !== currentNode) {\n this.prevNode = currentNode;\n handleRef(this.props.innerRef, currentNode);\n }\n\n if (prevProps.innerRef !== this.props.innerRef) {\n handleRef(this.props.innerRef, currentNode);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n handleRef(this.props.innerRef, null);\n delete this.prevNode;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n return children;\n };\n\n return RefFindNode;\n}(React.Component);\n//# sourceMappingURL=RefFindNode.js.map\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as React from 'react';\nimport { handleRef } from './utils';\nexport var RefForward = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(RefForward, _React$Component);\n\n function RefForward() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.currentNode = void 0;\n\n _this.handleRefOverride = function (node) {\n var _this$props = _this.props,\n children = _this$props.children,\n innerRef = _this$props.innerRef;\n handleRef(children.ref, node);\n handleRef(innerRef, node);\n _this.currentNode = node;\n };\n\n return _this;\n }\n\n var _proto = RefForward.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.innerRef !== this.props.innerRef) {\n handleRef(this.props.innerRef, this.currentNode);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n delete this.currentNode;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n return /*#__PURE__*/React.cloneElement(children, {\n ref: this.handleRefOverride\n });\n };\n\n return RefForward;\n}(React.Component);\n//# sourceMappingURL=RefForward.js.map\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"innerRef\"];\nimport * as React from 'react';\nimport * as ReactIs from 'react-is';\nimport { RefFindNode } from './RefFindNode';\nimport { RefForward } from './RefForward';\nexport var Ref = function Ref(props) {\n var children = props.children,\n innerRef = props.innerRef,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n var child = React.Children.only(children);\n var ElementType = ReactIs.isForwardRef(child) ? RefForward : RefFindNode;\n var childWithProps = child && rest && Object.keys(rest).length > 0 ? /*#__PURE__*/React.cloneElement(child, rest) : child;\n return /*#__PURE__*/React.createElement(ElementType, {\n innerRef: innerRef\n }, childWithProps);\n};\n//# sourceMappingURL=Ref.js.map\n","export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { semver } from './utils.js';\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Validate [semver](https://semver.org/) version strings strictly. Will not accept wildcards and version ranges.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number `false` otherwise\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validateStrict = (version) => typeof version === 'string' &&\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/.test(version);\n//# sourceMappingURL=validate.js.map","import { compareVersions } from './compareVersions.js';\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=compare.js.map","/**\n * Create a standard hashing of the token. This can be used safely in logs.\n */\nexport async function getTokenHash(jwt?: `${string}.${string}.${string}`) {\n // quick-exit for invalid jwt\n if (!jwt) return null;\n\n const parts = jwt.split('.');\n // exclude the jwt signature from the hash input\n const prefix = `${parts[0]}.${parts[1]}`;\n\n const encoder = new TextEncoder();\n const data = encoder.encode(prefix);\n\n try {\n // encrypt the data\n const hash = await window.crypto.subtle.digest('SHA-256', data);\n // convert the data back into a string for encoding\n const hashStr = String.fromCharCode(...new Uint8Array(hash));\n // base64 encode the encrypted string\n return btoa(hashStr);\n } catch {\n // there shouldn't be an error here, but if there is, it should not break execution\n return null;\n }\n}\n\nexport function getTokenPayload(jwt?: `${string}.${string}.${string}`) {\n // quick-exit for invalid jwt\n if (!jwt) return null;\n\n const base64Url = jwt.split('.')[1];\n\n // additional processing is needed since JWTs are encoded via base64url, not base64\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonString = decodeURIComponent(\n window\n .atob(base64)\n .split('')\n .map((char) => {\n return '%' + ('00' + char.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''),\n );\n\n try {\n const payload = JSON.parse(jsonString);\n payload.ttl = payload.exp - Math.floor(Date.now() / 1000);\n return payload;\n } catch {\n // there shouldn't be a parse error, but if there is, it should not break execution\n return null;\n }\n}\n","import { call, put, select } from 'redux-saga/effects';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport isObject from 'lodash/isObject';\nimport set from 'lodash/set';\nimport transform from 'lodash/transform';\nimport get from 'lodash/get';\nimport { compareVersions, validate as validateVersion } from 'compare-versions';\n\nimport Helium from 'utils/helium';\nimport { injectScopeHeaders } from 'utils/request';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport * as Sentry from '@sentry/react';\nimport { appConfigurationRoute, videoProvidersRoute } from 'routes/constants';\nimport { parse } from 'query-string';\nimport { changeRoute } from 'routes/AuthenticatedContainer/actions';\nimport { requestUpsertIdentityProvider } from 'routes/IntegrationsPage/actions';\nimport * as yup from 'yup';\nimport { t } from 'i18next';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { HELIUM_LIMIT_MAX, UNIT_TO_SECONDS_LOOKUP_TABLE } from './constants';\nimport { getTokenHash, getTokenPayload } from './logging';\nimport { getAccessToken } from './accessToken';\n\nconst openpathConfig = require('openpathConfig');\n\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return (...args) => {\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(this, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(this, args);\n };\n}\n\n// Returns a URI encoded query string\nexport function createQueryString(urlOptions) {\n return Object.keys(urlOptions)\n .map(\n (option) =>\n `${encodeURIComponent(option)}=${encodeURIComponent(\n urlOptions[option],\n )}`,\n )\n .join('&');\n}\n\n// Calculates the column width based on longest text length in a cell\n// from that column\nexport const getColumnWidth = (\n rows,\n pathToAccessorString,\n headerText,\n { maxWidth, magicSpacing = 7.5, extraWidth = 0 } = {},\n) => {\n const TOTAL_PADDING = 14;\n const MIN_WIDTH = 80;\n\n const stringLength = Math.max(\n ...rows.map((row) => {\n if (\n row?.pathToAccessorString === 'string' &&\n (typeof pathToAccessorString === 'string' ||\n Array.isArray(pathToAccessorString))\n ) {\n return row?.pathToAccessorString?.length;\n }\n\n return 0;\n }),\n headerText.length,\n );\n\n const width = Math.max(\n stringLength * magicSpacing + TOTAL_PADDING + extraWidth,\n MIN_WIDTH,\n );\n return maxWidth ? Math.min(maxWidth, width) : width;\n};\n\n// Lookup table for port settings\nexport const makePortOptionHumanReadable = (portOption) => {\n const lookupTable = {\n // Global\n name: t('Name'),\n mode: t('Mode'),\n isExit: t('Used as exit'),\n\n // Relay\n openDurationSeconds: t('Entry open duration (seconds)'),\n invertOutput: t('Output inverted'),\n\n // Reader\n capTouchRssi: t('Wave to unlock range'),\n autoUnlockRssi: t('Auto proximity unlock range'),\n advTxPower: t('Mobile reader range'),\n autoUnlockEnabled: t('Auto proximity unlock enabled'),\n capTouchEnabled: t('Wave To unlock enabled'),\n nfcEnabled: t('Card reading enabled'),\n softwareVersionNumber: t('Software version number'),\n serialNumber: t('Serial number'),\n beaconTxPower: t('Mobile beacon range'),\n\n // REX\n isTriggerRelayEnabled: t('Trigger relay to unlock entry enabled'),\n bypassDurationSeconds: t('Bypass duration (seconds)'),\n\n // Contact\n isAjarEnabled: t('Ajar Feature enabled'),\n ajarDurationSeconds: t('Ajar duration (seconds)'),\n isForcedOpenEnabled: t('Forced-Open detection enabled'),\n\n // Wiegand\n defaultCardNumBits: t('Default card number Bits'),\n isPassThroughEnabled: t('Gateway credential pass-through enabled'),\n defaultCardNumber: t('Default gateway card number'),\n\n // General Input\n description: t('Description'),\n };\n\n return lookupTable[portOption];\n};\n\nconst heliumRequest = async (\n endpointName,\n requisites = [],\n options = {},\n isGetter = false,\n) => {\n const {\n setIsLoading,\n\n // GET specific\n setter,\n loopToGetAll, // !This will set the limit to 1000 and loop through calls until ALL results are returned\n\n // POST, PATCH, PUT, DELETE specific\n payload,\n\n headers: _headers = {},\n } = options;\n // Make sure we're returning something that matches the API format so later crashes\n // are less likely to happen\n const result = {\n statusCode: null,\n data: null,\n errorMessage: null,\n localizedErrorMessage: null,\n };\n\n try {\n // Start loader\n if (setIsLoading) {\n setIsLoading(true);\n }\n\n const api = Helium.client[endpointName];\n\n // Check if valid API name\n if (!api) {\n result.errorMessage = `Invalid API endpoint name (${endpointName})`;\n result.localizedErrorMessage = t(\n 'Invalid API endpoint name ({{endpointName}})',\n {\n endpointName,\n },\n );\n\n console.error(result.errorMessage);\n\n // Stop loader\n if (setIsLoading) {\n setIsLoading(false);\n }\n\n return result;\n }\n\n const headers = injectScopeHeaders(_headers, endpointName);\n\n // Add a limit when loopToGetAll is true so we don't error out on first call\n if (loopToGetAll) {\n set(options, 'queryStringParams.limit', HELIUM_LIMIT_MAX);\n }\n\n // We only pass a payload for non-getter API requests\n // Using options.queryStringParams here and not destructuring because if we destructure,\n // we do not assign to the prop being used in the recursive version\n const { statusCode, json } = isGetter\n ? await api(...requisites, options.queryStringParams, { headers })\n : await api(...requisites, payload, options.queryStringParams, {\n headers,\n });\n\n // Stop loader\n if (setIsLoading) {\n setIsLoading(false);\n }\n\n result.statusCode = statusCode;\n const errorMessage =\n statusCode === 500 ? 'Internal Error, Please Check Logs' : json?.message;\n const localizedErrorMessage = json?.localizedMessage || errorMessage;\n\n // check for special 418 error\n if (openpathConfig.INJECT_SCOPE_HEADERS && statusCode === 418) {\n result.errorMessage = `(heliumRequest) ${errorMessage}`;\n result.localizedErrorMessage = `(heliumRequest) ${errorMessage}`;\n return result;\n }\n\n // Return if error\n if (errorMessage || statusCode >= 400) {\n result.errorMessage = errorMessage || 'Error';\n result.localizedErrorMessage = localizedErrorMessage || t('Error');\n if (!errorMessage) {\n console.error(\n \"An error message wasn't returned from Helium, so a generic error message was displayed\",\n );\n }\n return result;\n }\n\n // We don't get json in the cases of some non GET API requests\n if (json) {\n const { data, filteredCount, totalCount, meta, cursors } = json;\n result.data = data;\n\n // Add GET specific params\n if (filteredCount !== undefined) result.filteredCount = filteredCount;\n if (totalCount !== undefined) result.totalCount = totalCount;\n if (meta !== undefined) result.meta = meta;\n if (cursors !== undefined) result.cursors = cursors;\n }\n\n // Get all the results if loopToGetAll has been passed\n if (loopToGetAll && result.filteredCount) {\n // Set offset to 0 if there is none so comparing to filteredCount works\n if (!options?.queryStringParams?.offset) {\n set(options, 'queryStringParams.offset', HELIUM_LIMIT_MAX);\n } else {\n // eslint-disable-next-line no-param-reassign\n options.queryStringParams.offset += HELIUM_LIMIT_MAX;\n }\n\n // TODO - add percentage to response if we ever need it\n // Recursively loop through calls to get all the data\n if (options.queryStringParams.offset <= result.filteredCount) {\n const res = await heliumRequest(\n endpointName,\n requisites,\n options,\n true,\n );\n\n // If we don't have data something went wrong and we return\n if (!res.data) {\n return result;\n }\n\n // Add the data retrieved to the collected data thus far (we format it here)\n result.data = [...result.data, ...res.data];\n }\n }\n\n if (setter) {\n if (Array.isArray(setter)) {\n for (let i = 0; i < setter.length; i += 1) {\n setter[i]?.(result);\n }\n } else {\n setter(result);\n }\n }\n\n return result;\n } catch (ex) {\n console.error(\n `Something went wrong in heliumRequest, ${endpointName}, ${ex}`,\n );\n\n const jwt = getAccessToken();\n const tokenHash = await getTokenHash(jwt);\n const userData = getTokenPayload(jwt);\n Sentry.withScope((scope) => {\n scope.setFingerprint(['heliumRequest', endpointName]);\n Sentry.captureException(ex, {\n extra: {\n apiInfo: { endpointName, requisites },\n userData,\n tokenHash,\n },\n });\n });\n result.errorMessage = `Internal Error, Please Check Logs - ${ex}`;\n result.localizedErrorMessage = `Internal Error, Please Check Logs - ${ex}`;\n return result;\n }\n};\n\nexport const heliumReceive = async (...args) => {\n if (args.length > 3) {\n console.error('requestAndSet() - Too many arguments passed');\n }\n const [endpointName, requisites = [], options = {}] = args;\n return heliumRequest(endpointName, requisites, options, true);\n};\n\nexport const heliumSend = async (endpointName, requisites, payload, options) =>\n heliumRequest(endpointName, requisites, { ...options, payload });\n\nfunction* heliumRequestSaga(\n endpointName,\n requisites = [],\n rawOptions = {},\n isGetter = false,\n) {\n // We modify options and we don't want to modify the function param directly\n const options = { ...rawOptions };\n\n // Create the schema to validate options and make sure we aren't passing something by mistake\n const optionsSchema = yup\n .object({\n loadingAction: yup.object(),\n suppressErrorMessage: yup.boolean(),\n successMessage: yup.string(),\n onSuccessSaga: yup.object(),\n\n // GET specific\n createSetterAction: yup.lazy((value) =>\n Array.isArray(value) ? yup.array() : yup.object(),\n ),\n loopToGetAll: yup.boolean(),\n queryStringParams: yup.object().shape({\n limit: yup.number(),\n offset: yup.number(),\n filter: yup.string(),\n q: yup.string(),\n sort: yup.string(),\n }),\n\n // POST, PATCH, PUT, DELETE specific\n payload: yup.lazy((value) =>\n Array.isArray(value) ? yup.array() : yup.object().nullable(),\n ),\n })\n .noUnknown(true)\n .strict();\n\n // Parse and assert validity on the schema\n try {\n yield optionsSchema.validate(options);\n } catch (err) {\n console.error(`${err.message} (${endpointName})`);\n }\n\n const {\n loadingAction,\n suppressErrorMessage,\n successMessage,\n onSuccessSaga,\n\n // GET specific\n createSetterAction,\n loopToGetAll, // !This will set the limit to 1000 and loop through calls until ALL results are returned\n\n // POST, PATCH, PUT, DELETE specific\n payload,\n } = options;\n\n // Make sure we're returning something that matches the API format so later crashes\n // are less likely to happen\n const result = {\n statusCode: null,\n data: null,\n errorMessage: null,\n localizedErrorMessage: null,\n };\n\n try {\n // Start loader\n if (loadingAction) yield put(loadingAction(true));\n\n const currentIdentityLanguage = yield select(\n selectCurrentIdentityLanguage(),\n );\n\n const api = Helium.client.withHeaders({\n 'Accept-Language': currentIdentityLanguage,\n })[endpointName];\n\n // Check if valid API name\n if (!api) {\n result.errorMessage = `Invalid API endpoint name (${endpointName})`;\n result.localizedErrorMessage = `Invalid API endpoint name (${endpointName})`;\n yield put(setAlert('error', result.localizedErrorMessage));\n\n // Stop loader\n if (loadingAction) yield put(loadingAction(false));\n\n return result;\n }\n\n const headers = injectScopeHeaders({}, endpointName);\n\n // Add a limit when loopToGetAll is true so we don't error out on first call\n if (loopToGetAll) {\n set(options, 'queryStringParams.limit', HELIUM_LIMIT_MAX);\n }\n\n // We only pass a payload for non-getter API requests\n const { statusCode, json } = isGetter\n ? yield call(api, ...requisites, options.queryStringParams, { headers })\n : yield call(api, ...requisites, payload, options.queryStringParams, {\n headers,\n });\n\n // Stop loader\n if (loadingAction) {\n yield put(loadingAction(false));\n }\n\n result.statusCode = statusCode;\n const errorMessage =\n statusCode === 500 ? 'Internal Error, Please Check Logs' : json?.message;\n const localizedErrorMessage = json?.localizedMessage || errorMessage;\n\n // check for special 418 error\n if (openpathConfig.INJECT_SCOPE_HEADERS && statusCode === 418) {\n yield put(setAlert('info', `(heliumRequestSaga) ${errorMessage}`));\n return result;\n }\n\n // Return if error\n if (errorMessage || statusCode >= 400) {\n result.errorMessage = errorMessage || 'Error';\n result.localizedErrorMessage = localizedErrorMessage || t('Error');\n if (!suppressErrorMessage) {\n if (!errorMessage) {\n console.error(\n \"An error message wasn't returned from Helium, so a generic error message was displayed\",\n );\n }\n yield put(setAlert('error', result.localizedErrorMessage));\n }\n return result;\n }\n\n // We don't get json in the cases of some non GET API requests\n if (json) {\n const { data, filteredCount, totalCount, meta, cursors } = json;\n result.data = data;\n\n // Add GET specific params\n if (filteredCount !== undefined) result.filteredCount = filteredCount;\n if (totalCount !== undefined) result.totalCount = totalCount;\n if (meta !== undefined) result.meta = meta;\n if (cursors !== undefined) result.cursors = cursors;\n }\n\n // Get all the results if loopToGetAll has been passed\n if (loopToGetAll && result.filteredCount) {\n // Set offset to 0 if there is none so comparing to filteredCount works\n if (!options?.queryStringParams?.offset) {\n set(options, 'queryStringParams.offset', HELIUM_LIMIT_MAX);\n } else {\n options.queryStringParams.offset += HELIUM_LIMIT_MAX;\n }\n\n // TODO - add percentage to response if we ever need it\n // Recursively loop through calls to get all the data\n if (options.queryStringParams.offset <= result.filteredCount) {\n const res = yield call(\n heliumRequestSaga,\n endpointName,\n requisites,\n options,\n true,\n );\n\n // If we don't have data something went wrong and we return\n if (!res.data) {\n return result;\n }\n\n // Add the data retrieved to the collected data thus far (we format it here)\n result.data = [...result.data, ...res.data];\n }\n }\n\n if (createSetterAction) {\n if (Array.isArray(createSetterAction)) {\n for (let i = 0; i < createSetterAction.length; i += 1) {\n const action = createSetterAction[i]?.(result);\n if (typeof action !== 'object') {\n throw Error(\n `\\`createSetterAction\\` is not returning an action (${action})`,\n );\n }\n yield put(action);\n }\n } else {\n const action = createSetterAction(result);\n if (typeof action !== 'object') {\n throw Error(\n `\\`createSetterAction\\` is not returning an action (${action})`,\n );\n }\n yield put(action);\n }\n }\n\n if (successMessage) {\n yield put(\n setAlert(\n 'success',\n typeof successMessage === 'string'\n ? successMessage\n : successMessage(result),\n ),\n );\n }\n\n if (onSuccessSaga) {\n yield call(onSuccessSaga, result);\n }\n\n return result;\n } catch (ex) {\n result.errorMessage = ex;\n result.localizedErrorMessage = ex;\n if (!suppressErrorMessage) {\n yield put(setAlert('error', `Internal Error, Please Check Logs - ${ex}`));\n }\n console.error(\n `Something went wrong in heliumRequestSaga, ${endpointName}, ${ex}`,\n );\n\n const jwt = getAccessToken();\n const tokenHash = yield call(getTokenHash, jwt);\n const userData = yield call(getTokenPayload, jwt);\n Sentry.withScope((scope) => {\n scope.setFingerprint(['heliumRequestSaga', endpointName]);\n Sentry.captureException(ex, {\n extra: {\n apiInfo: { endpointName, requisites },\n userData,\n tokenHash,\n },\n });\n });\n\n return result;\n }\n}\n\nexport function* requestAndSet(...args) {\n if (args.length > 3) {\n console.error('requestAndSet() - Too many arguments passed');\n }\n const [endpointName, requisites = [], options = {}] = args;\n return yield call(heliumRequestSaga, endpointName, requisites, options, true);\n}\n\nexport function* sendToHelium(endpointName, requisites, payload, options) {\n return yield call(heliumRequestSaga, endpointName, requisites, {\n ...options,\n payload,\n });\n}\n\n// TODO: look into why this didn't work correctly on normal sort\nexport const tableSort =\n (pathToStringArray = []) =>\n (a, b, accessor) => {\n const first =\n typeof a?.values?.[accessor] === 'string'\n ? a?.values?.[accessor]\n : get(a, ['values', accessor, ...pathToStringArray]);\n const second =\n typeof b?.values?.[accessor] === 'string'\n ? b?.values?.[accessor]\n : get(b, ['values', accessor, ...pathToStringArray]);\n if (first === second) return 0;\n return isNaN(first - second) ? (first > second ? 1 : -1) : first - second;\n };\n\nexport const tableFilter =\n (pathToStringArray) => (data, columnAccessor, filterValue) =>\n data.filter((row) => {\n let string = '';\n if (typeof get(row, ['values', columnAccessor]) === 'string') {\n string = get(row, ['values', columnAccessor]);\n } else {\n string = get(row, ['values', columnAccessor, ...pathToStringArray]);\n }\n const regex = new RegExp(filterValue, 'gi');\n return regex.test(string);\n });\n\nexport function isJsonString(str) {\n if (!str) return false; // prevents null from passing\n try {\n const json = JSON.parse(str);\n return typeof json === 'object';\n } catch {\n return false;\n }\n}\n\n// Used for DurationPicker\nexport const secondsToTimeAndUnit = (seconds, units) => {\n const secondsArray = units\n .map((unit) => UNIT_TO_SECONDS_LOOKUP_TABLE[unit])\n .reverse();\n let time;\n let unit;\n\n // Loop through unit values (seconds) from greatest to least in order\n // to get largest unit that goes evenly into stored seconds\n for (let i = 0; i < secondsArray.length; i += 1) {\n if (seconds % secondsArray[i] === 0) {\n time = seconds / secondsArray[i];\n unit = secondsArray[i];\n break;\n }\n }\n\n return { time, unit };\n};\n\nexport function includesAnyPortalScope(scopes) {\n return scopes.some((s) => !s.match(/^o[0-9]+-user[0-9]+:/));\n}\n\nexport const convertUrlToBase64 = async (url, urlIsCacheable = false) => {\n try {\n // Append the dynamic query string to prevent caching and thus prevent CORS issues\n const urlToFetch = urlIsCacheable ? url : `${url}?nocache=${Date.now()}`;\n\n const response = await fetch(urlToFetch);\n const blob = await response.blob();\n\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve({ base64: reader.result, status: response.status });\n };\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n } catch (e) {\n console.error(e);\n return new Promise((resolve) => {\n resolve({ base64: '', status: 401 });\n });\n }\n};\n\nexport const getFileTypeFromBase64 = (base64) => {\n let result = null;\n\n if (typeof base64 !== 'string') {\n return result;\n }\n\n const mime = base64.match(/data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/);\n\n if (mime?.length) {\n result = /(\\w+)\\/(\\w+)/g.exec(mime[1])[2];\n }\n\n return result;\n};\n\nexport const visualActivityEventMatchesActivityEvent = ({\n eventTime,\n vaEventTime,\n eventEntryId = 0, // By defaulting to 0 we prevent undefined === undefined\n vaEventEntryId,\n eventCameraIds = [],\n vaCameraId,\n variability = 5,\n}) =>\n Math.abs(eventTime - vaEventTime) <= variability && // Only show visual activity close to event time\n (eventEntryId === vaEventEntryId || eventCameraIds.includes(vaCameraId)); // Only show visual activity that matches this event's entryId or cameraIds\n\n// parse config 'T'/'F' -> true/false\nexport const parseObjBools = (obj) => {\n if (obj !== Object(obj)) return obj;\n\n const parsedConfig = cloneDeep(obj);\n Reflect.ownKeys(parsedConfig).forEach((key) => {\n const value = parsedConfig[key];\n if (value === 'T' || value === 'F') {\n parsedConfig[key] = value === 'T';\n } else {\n parsedConfig[key] = parseObjBools(value);\n }\n });\n return parsedConfig;\n};\n\n// reverse parses config 'T'/'F' <- true/false\nexport const revParseObjBools = (obj) => {\n if (obj !== Object(obj)) return obj;\n\n // eslint-disable-next-line\n console.log('revParseObjBools:::', obj);\n\n const parsedConfig = cloneDeep(obj);\n Reflect.ownKeys(parsedConfig).forEach((key) => {\n const value = parsedConfig[key];\n if (typeof value === 'boolean') {\n parsedConfig[key] = value === true ? 'T' : 'F';\n } else {\n // eslint-disable-next-line\n console.log('parsedConfig', parsedConfig);\n // eslint-disable-next-line\n console.log('key', key);\n parsedConfig[key] = revParseObjBools(value);\n }\n });\n return parsedConfig;\n};\n\n// FIXME: This function does not need currying due to it's implementation / how it is used\n/**\n * Find difference between two objects\n * @param {object} origObj - Source object to compare newObj against\n * @param {object} newObj - New object with potential changes\n * @return {object} differences\n */\nexport const deepDiff = (origObj, newObj) => {\n const changes = (newObj2, origObj2) => {\n let arrayIndexCounter = 0;\n return transform(newObj2, (result, value, key) => {\n if (!isEqual(value, origObj2[key])) {\n const resultKey = Array.isArray(origObj2) ? arrayIndexCounter++ : key;\n // eslint-disable-next-line no-param-reassign\n result[resultKey] =\n isObject(value) && isObject(origObj2[key])\n ? changes(value, origObj2[key])\n : value;\n }\n });\n };\n return changes(newObj, origObj);\n};\n\n/** This is used on the App Marketplace pages in order to determine\n * what to do when attempting to configure the installed app\n * */\nexport const createInstalledAppLogicForButtonClick = ({\n orgId,\n appId,\n configureUrl,\n dispatch,\n setModalVideoProviderTypeId,\n currentIdentityLanguage,\n}) => {\n if (!configureUrl) {\n dispatch(changeRoute(`${appConfigurationRoute.replace(/:appId/, appId)}`));\n return;\n }\n\n const parsedUrl = parse(configureUrl.split('?')[1]);\n\n const {\n ipt: idptCodeLegacy, // TODO = remove when helium deployed\n idptCode,\n integration,\n } = parsedUrl;\n\n let { idptId } = parsedUrl;\n\n if (integration === 'Meraki') {\n // In this case we are dealing with Meraki video provider\n // Get the org video providers in order to see if Meraki has been created\n (async () => {\n const { data, errorMessage } = await heliumReceive(\n 'listVideoProviders',\n [orgId],\n {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n\n if (errorMessage) {\n return;\n }\n\n const { id: merakiVideoProviderId } =\n data.find(({ videoProviderTypeId }) => videoProviderTypeId === 1) || {};\n\n if (merakiVideoProviderId) {\n // If Meraki has been created go to the video provider route\n dispatch(\n changeRoute(\n `${videoProvidersRoute.replace(\n /:videoProviderId/,\n merakiVideoProviderId,\n )}`,\n ),\n );\n } else {\n // If it hasn't then open that modal to create it\n setModalVideoProviderTypeId(1);\n }\n })();\n } else if (integration === 'Ava') {\n // Get the org video providers in order to see if Meraki has been created\n (async () => {\n const { data, errorMessage } = await heliumReceive(\n 'listVideoProviders',\n [orgId],\n {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n if (errorMessage) {\n return;\n }\n\n const { id: avaVideoProviderId } =\n data.find(({ videoProviderTypeId }) => videoProviderTypeId === 5) || {};\n\n if (avaVideoProviderId) {\n // If Avigilon Alta Aware has been created go to the video provider route\n dispatch(\n changeRoute(\n `${videoProvidersRoute.replace(\n /:videoProviderId/,\n avaVideoProviderId,\n )}`,\n ),\n );\n } else {\n // If it hasn't then open that modal to create it\n setModalVideoProviderTypeId(5);\n }\n })();\n } else if (idptCode || idptCodeLegacy) {\n // In this case we are dealing with an IDP\n // We must use this until Helium changes are in prod and we can grab the idptId directly from the configureUrl\n // TODO - remove this when Helium changes are out\n if (!idptId) {\n switch (idptCodeLegacy) {\n case 'gsuite':\n idptId = 1;\n break;\n case 'msazuread':\n idptId = 2;\n break;\n case 'okta':\n idptId = 3;\n break;\n case 'onelogin':\n idptId = 4;\n break;\n case 'workday':\n idptId = 5;\n break;\n }\n }\n\n dispatch(\n requestUpsertIdentityProvider({\n idpt: {\n code: idptCode || idptCodeLegacy,\n id: idptId,\n },\n }),\n );\n } else {\n // In the rest of the cases we simply go to the configureUrl\n dispatch(changeRoute(configureUrl));\n }\n};\n\n/** Checks if valid json */\nexport const determineIfIsValidJsonString = (jsonString) => {\n if (!(jsonString && typeof jsonString === 'string')) {\n return false;\n }\n\n try {\n JSON.parse(jsonString);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const dedupe = (\n // Array that you want to dedupe\n arr,\n\n // Array of strings that reprisent the keys of which you want to remove duplicates\n // If nothing is passed it will assume that it is a flat array (no objects)\n compArr,\n) =>\n arr.filter(\n (val, i, self) =>\n i ===\n self.findIndex((o) =>\n compArr ? compArr.every((e) => o[e] === val[e]) : o === val,\n ),\n );\n\nexport const dedupeImmutable = (\n // Immutable List that you want to dedupe\n arr,\n\n // Array of strings that reprisent the keys of which you want to remove duplicates\n // If nothing is passed it will assume that it is a flat List (no Maps)\n compArr,\n) =>\n arr.filter(\n (val, i, self) =>\n i ===\n self.findIndex((o) =>\n compArr ? compArr.every((e) => o.get(e) === val.get(e)) : o === val,\n ),\n );\n\nexport const meetsMinimumVersion = ({\n version,\n minimumVersion,\n skipVersionCheck = false,\n}) => {\n // you can use the skipVersionCheck param to skip over undefined/null values for example\n if (skipVersionCheck) {\n return true;\n }\n\n if (!validateVersion(version) || !validateVersion(minimumVersion)) {\n return false;\n }\n\n try {\n const result = compareVersions(version, minimumVersion);\n // 0 === equal versions\n // 1 === greater version\n return [0, 1].includes(result);\n } catch (e) {\n Sentry.captureException(e);\n return false;\n }\n};\n","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","import * as React from 'react';\nimport rcWarning, { resetWarned as rcResetWarned } from \"rc-util/es/warning\";\nexport function noop() {}\nlet deprecatedWarnList = null;\nexport function resetWarned() {\n deprecatedWarnList = null;\n rcResetWarned();\n}\n// eslint-disable-next-line import/no-mutable-exports\nlet warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n warning = (valid, component, message) => {\n rcWarning(valid, `[antd: ${component}] ${message}`);\n // StrictMode will inject console which will not throw warning in React 17.\n if (process.env.NODE_ENV === 'test') {\n resetWarned();\n }\n };\n}\nexport const WarningContext = /*#__PURE__*/React.createContext({});\n/**\n * This is a hook but we not named as `useWarning`\n * since this is only used in development.\n * We should always wrap this in `if (process.env.NODE_ENV !== 'production')` condition\n */\nexport const devUseWarning = process.env.NODE_ENV !== 'production' ? component => {\n const {\n strict\n } = React.useContext(WarningContext);\n const typeWarning = (valid, type, message) => {\n if (!valid) {\n if (strict === false && type === 'deprecated') {\n const existWarning = deprecatedWarnList;\n if (!deprecatedWarnList) {\n deprecatedWarnList = {};\n }\n deprecatedWarnList[component] = deprecatedWarnList[component] || [];\n if (!deprecatedWarnList[component].includes(message || '')) {\n deprecatedWarnList[component].push(message || '');\n }\n // Warning for the first time\n if (!existWarning) {\n console.warn('[antd] There exists deprecated usage in your code:', deprecatedWarnList);\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(valid, component, message) : void 0;\n }\n }\n };\n typeWarning.deprecated = (valid, oldProp, newProp, message) => {\n typeWarning(valid, 'deprecated', `\\`${oldProp}\\` is deprecated. Please use \\`${newProp}\\` instead.${message ? ` ${message}` : ''}`);\n };\n return typeWarning;\n} : () => {\n const noopWarning = () => {};\n noopWarning.deprecated = noop;\n return noopWarning;\n};\nexport default warning;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks } from '../../theme/internal';\nconst genAlertTypeStyle = (bgColor, borderColor, iconColor, token, alertCls) => ({\n background: bgColor,\n border: `${unit(token.lineWidth)} ${token.lineType} ${borderColor}`,\n [`${alertCls}-icon`]: {\n color: iconColor\n }\n});\nexport const genBaseStyle = token => {\n const {\n componentCls,\n motionDurationSlow: duration,\n marginXS,\n marginSM,\n fontSize,\n fontSizeLG,\n lineHeight,\n borderRadiusLG: borderRadius,\n motionEaseInOutCirc,\n withDescriptionIconSize,\n colorText,\n colorTextHeading,\n withDescriptionPadding,\n defaultPadding\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n padding: defaultPadding,\n wordWrap: 'break-word',\n borderRadius,\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-content`]: {\n flex: 1,\n minWidth: 0\n },\n [`${componentCls}-icon`]: {\n marginInlineEnd: marginXS,\n lineHeight: 0\n },\n '&-description': {\n display: 'none',\n fontSize,\n lineHeight\n },\n '&-message': {\n color: colorTextHeading\n },\n [`&${componentCls}-motion-leave`]: {\n overflow: 'hidden',\n opacity: 1,\n transition: `max-height ${duration} ${motionEaseInOutCirc}, opacity ${duration} ${motionEaseInOutCirc},\n padding-top ${duration} ${motionEaseInOutCirc}, padding-bottom ${duration} ${motionEaseInOutCirc},\n margin-bottom ${duration} ${motionEaseInOutCirc}`\n },\n [`&${componentCls}-motion-leave-active`]: {\n maxHeight: 0,\n marginBottom: '0 !important',\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n }),\n [`${componentCls}-with-description`]: {\n alignItems: 'flex-start',\n padding: withDescriptionPadding,\n [`${componentCls}-icon`]: {\n marginInlineEnd: marginSM,\n fontSize: withDescriptionIconSize,\n lineHeight: 0\n },\n [`${componentCls}-message`]: {\n display: 'block',\n marginBottom: marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG\n },\n [`${componentCls}-description`]: {\n display: 'block',\n color: colorText\n }\n },\n [`${componentCls}-banner`]: {\n marginBottom: 0,\n border: '0 !important',\n borderRadius: 0\n }\n };\n};\nexport const genTypeStyle = token => {\n const {\n componentCls,\n colorSuccess,\n colorSuccessBorder,\n colorSuccessBg,\n colorWarning,\n colorWarningBorder,\n colorWarningBg,\n colorError,\n colorErrorBorder,\n colorErrorBg,\n colorInfo,\n colorInfoBorder,\n colorInfoBg\n } = token;\n return {\n [componentCls]: {\n '&-success': genAlertTypeStyle(colorSuccessBg, colorSuccessBorder, colorSuccess, token, componentCls),\n '&-info': genAlertTypeStyle(colorInfoBg, colorInfoBorder, colorInfo, token, componentCls),\n '&-warning': genAlertTypeStyle(colorWarningBg, colorWarningBorder, colorWarning, token, componentCls),\n '&-error': Object.assign(Object.assign({}, genAlertTypeStyle(colorErrorBg, colorErrorBorder, colorError, token, componentCls)), {\n [`${componentCls}-description > pre`]: {\n margin: 0,\n padding: 0\n }\n })\n }\n };\n};\nexport const genActionStyle = token => {\n const {\n componentCls,\n iconCls,\n motionDurationMid,\n marginXS,\n fontSizeIcon,\n colorIcon,\n colorIconHover\n } = token;\n return {\n [componentCls]: {\n '&-action': {\n marginInlineStart: marginXS\n },\n [`${componentCls}-close-icon`]: {\n marginInlineStart: marginXS,\n padding: 0,\n overflow: 'hidden',\n fontSize: fontSizeIcon,\n lineHeight: unit(fontSizeIcon),\n backgroundColor: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n [`${iconCls}-close`]: {\n color: colorIcon,\n transition: `color ${motionDurationMid}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n },\n '&-close-text': {\n color: colorIcon,\n transition: `color ${motionDurationMid}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }\n };\n};\nexport const prepareComponentToken = token => {\n const paddingHorizontal = 12; // Fixed value here.\n return {\n withDescriptionIconSize: token.fontSizeHeading3,\n defaultPadding: `${token.paddingContentVerticalSM}px ${paddingHorizontal}px`,\n withDescriptionPadding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`\n };\n};\nexport default genStyleHooks('Alert', token => [genBaseStyle(token), genTypeStyle(token), genActionStyle(token)], prepareComponentToken);","module.exports = __webpack_public_path__ + \"a8d9dfda57852b40039194572604a8ea.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _RightOutlined = _interopRequireDefault(require('./lib/icons/RightOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _RightOutlined;\nexports.default = _default;\nmodule.exports = _default;","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","const COUNTER_METRIC_TYPE = 'c' ;\nconst GAUGE_METRIC_TYPE = 'g' ;\nconst SET_METRIC_TYPE = 's' ;\nconst DISTRIBUTION_METRIC_TYPE = 'd' ;\n\n/**\n * This does not match spec in https://develop.sentry.dev/sdk/metrics\n * but was chosen to optimize for the most common case in browser environments.\n */\nconst DEFAULT_BROWSER_FLUSH_INTERVAL = 5000;\n\n/**\n * SDKs are required to bucket into 10 second intervals (rollup in seconds)\n * which is the current lower bound of metric accuracy.\n */\nconst DEFAULT_FLUSH_INTERVAL = 10000;\n\n/**\n * The maximum number of metrics that should be stored in memory.\n */\nconst MAX_WEIGHT = 10000;\n\nexport { COUNTER_METRIC_TYPE, DEFAULT_BROWSER_FLUSH_INTERVAL, DEFAULT_FLUSH_INTERVAL, DISTRIBUTION_METRIC_TYPE, GAUGE_METRIC_TYPE, MAX_WEIGHT, SET_METRIC_TYPE };\n//# sourceMappingURL=constants.js.map\n","module.exports = __webpack_public_path__ + \"a4e021a4b5d5d65cc87fee17c1886c3f.js\";","/**\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\nmodule.exports = copyArray;\n","module.exports = __webpack_public_path__ + \"318dcae1cdcd4733986a93e7a5fab7b8.js\";","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheGet;\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _PlusOutlined = _interopRequireDefault(require('./lib/icons/PlusOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _PlusOutlined;\nexports.default = _default;\nmodule.exports = _default;","import { dsnToString, dropUndefinedKeys, createEnvelope } from '@sentry/utils';\n\n/**\n * Create envelope from check in item.\n */\nfunction createCheckInEnvelope(\n checkIn,\n dynamicSamplingContext,\n metadata,\n tunnel,\n dsn,\n) {\n const headers = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata && metadata.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n if (dynamicSamplingContext) {\n headers.trace = dropUndefinedKeys(dynamicSamplingContext) ;\n }\n\n const item = createCheckInEnvelopeItem(checkIn);\n return createEnvelope(headers, [item]);\n}\n\nfunction createCheckInEnvelopeItem(checkIn) {\n const checkInHeaders = {\n type: 'check_in',\n };\n return [checkInHeaders, checkIn];\n}\n\nexport { createCheckInEnvelope };\n//# sourceMappingURL=checkin.js.map\n","module.exports = __webpack_public_path__ + \"678f5201c1917429f334b88078ca4174.js\";","module.exports = __webpack_public_path__ + \"07567125b93045706d81f17f7d04e262.js\";","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\nexport { getNumberOfUrlSegments, getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\n\n/**![clock-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTY4Ni43IDYzOC42TDU0NC4xIDUzNS41VjI4OGMwLTQuNC0zLjYtOC04LThINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjRjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuNCAxMjAuNmMzLjYgMi42IDguNiAxLjggMTEuMi0xLjdsMjguNi0zOWMyLjYtMy43IDEuOC04LjctMS44LTExLjJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ClockCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ClockCircleOutlined';\n}\nexport default RefIcon;","module.exports = __webpack_public_path__ + \"6250c7594cd66ca91184b5beca293e06.js\";","import classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"showArrow\", \"headerClass\", \"isActive\", \"onItemClick\", \"forceRender\", \"className\", \"classNames\", \"styles\", \"prefixCls\", \"collapsible\", \"accordion\", \"panelKey\", \"extra\", \"header\", \"expandIcon\", \"openMotion\", \"destroyInactivePanel\", \"children\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport React from 'react';\nimport PanelContent from \"./PanelContent\";\nvar CollapsePanel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n headerClass = props.headerClass,\n isActive = props.isActive,\n onItemClick = props.onItemClick,\n forceRender = props.forceRender,\n className = props.className,\n _props$classNames = props.classNames,\n customizeClassNames = _props$classNames === void 0 ? {} : _props$classNames,\n _props$styles = props.styles,\n styles = _props$styles === void 0 ? {} : _props$styles,\n prefixCls = props.prefixCls,\n collapsible = props.collapsible,\n accordion = props.accordion,\n panelKey = props.panelKey,\n extra = props.extra,\n header = props.header,\n expandIcon = props.expandIcon,\n openMotion = props.openMotion,\n destroyInactivePanel = props.destroyInactivePanel,\n children = props.children,\n resetProps = _objectWithoutProperties(props, _excluded);\n var disabled = collapsible === 'disabled';\n var collapsibleHeader = collapsible === 'header';\n var collapsibleIcon = collapsible === 'icon';\n var ifExtraExist = extra !== null && extra !== undefined && typeof extra !== 'boolean';\n var handleItemClick = function handleItemClick() {\n onItemClick === null || onItemClick === void 0 || onItemClick(panelKey);\n };\n var handleKeyDown = function handleKeyDown(e) {\n if (e.key === 'Enter' || e.keyCode === KeyCode.ENTER || e.which === KeyCode.ENTER) {\n handleItemClick();\n }\n };\n\n // ======================== Icon ========================\n var iconNode = typeof expandIcon === 'function' ? expandIcon(props) : /*#__PURE__*/React.createElement(\"i\", {\n className: \"arrow\"\n });\n if (iconNode) {\n iconNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-expand-icon\"),\n onClick: ['header', 'icon'].includes(collapsible) ? handleItemClick : undefined\n }, iconNode);\n }\n var collapsePanelClassNames = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item\"), true), \"\".concat(prefixCls, \"-item-active\"), isActive), \"\".concat(prefixCls, \"-item-disabled\"), disabled), className);\n var headerClassName = classNames(headerClass, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-header\"), true), \"\".concat(prefixCls, \"-header-collapsible-only\"), collapsibleHeader), \"\".concat(prefixCls, \"-icon-collapsible-only\"), collapsibleIcon), customizeClassNames.header);\n\n // ======================== HeaderProps ========================\n var headerProps = {\n className: headerClassName,\n 'aria-expanded': isActive,\n 'aria-disabled': disabled,\n onKeyDown: handleKeyDown,\n style: styles.header\n };\n if (!collapsibleHeader && !collapsibleIcon) {\n headerProps.onClick = handleItemClick;\n headerProps.role = accordion ? 'tab' : 'button';\n headerProps.tabIndex = disabled ? -1 : 0;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, resetProps, {\n ref: ref,\n className: collapsePanelClassNames\n }), /*#__PURE__*/React.createElement(\"div\", headerProps, showArrow && iconNode, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-header-text\"),\n onClick: collapsible === 'header' ? handleItemClick : undefined\n }, header), ifExtraExist && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: isActive,\n leavedClassName: \"\".concat(prefixCls, \"-content-hidden\")\n }, openMotion, {\n forceRender: forceRender,\n removeOnLeave: destroyInactivePanel\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(PanelContent, {\n ref: motionRef,\n prefixCls: prefixCls,\n className: motionClassName,\n classNames: customizeClassNames,\n style: motionStyle,\n styles: styles,\n isActive: isActive,\n forceRender: forceRender,\n role: accordion ? 'tabpanel' : void 0\n }, children);\n }));\n});\nexport default CollapsePanel;","module.exports = __webpack_public_path__ + \"5e55b301888460bd06c8e26d1011e01a.js\";","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","module.exports = __webpack_public_path__ + \"15f3800d33b854ba476c9daf1b9e0326.js\";","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","// THESE SHOULD BE REFACTORED INTO A \"REDUCERS\" FOLDER (OR SOMETHING SIMILAR)\nexport const SET_ACU = 'app/OrgContainer/SET_ACU';\nexport const SET_ACU_CONFIG = 'app/OrgContainer/SET_ACU_CONFIG';\nexport const SET_ACU_LOCATION_MEASUREMENTS =\n 'app/OrgContainer/SET_ACU_LOCATION_MEASUREMENTS';\nexport const SET_ACU_LOCATION_RESTRICTION =\n 'app/OrgContainer/SET_ACU_LOCATION_RESTRICTION';\nexport const SET_ACU_MODELS = 'app/OrgContainer/SET_ACU_MODELS';\nexport const SET_ACU_EXPANSION_BOARDS =\n 'app/OrgContainer/SET_ACU_EXPANSION_BOARDS';\nexport const SET_ACU_PORTS = 'app/OrgContainer/SET_ACU_PORTS';\nexport const SET_ACUS = 'app/OrgContainer/SET_ACUS';\nexport const SET_ACTIVITY = 'app/OrgContainer/SET_ACTIVITY';\nexport const SET_ALARM_ACTIVITY = 'app/OrgContainer/SET_ALARM_ACTIVITY';\nexport const SET_ALARM_CONFIGURATIONS =\n 'app/OrgContainer/SET_ALARM_CONFIGURATIONS';\nexport const SET_ALL_ACU_ENTRIES_USERS =\n 'app/OrgContainer/SET_ALL_ACU_ENTRIES_USERS';\nexport const SET_ALL_ACU_PORTS = 'app/OrgContainer/SET_ALL_ACU_PORTS';\nexport const SET_ALLEGION_OPERATORS = 'app/OrgContainer/SET_ALLEGION_OPERATORS';\nexport const SET_ALLEGION_INVITE_STATE =\n 'app/OrgContainer/SET_ALLEGION_INVITE_STATE';\nexport const SET_APPS = 'app/OrgContainer/SET_APPS';\nexport const SET_AUDIT_LOGS = 'app/OrgContainer/SET_AUDIT_LOGS';\nexport const SET_AUDIT_LOGS_UI = 'app/OrgContainer/SET_AUDIT_LOGS_UI';\nexport const SET_BADGE_CONFIGS = 'app/OrgContainer/SET_BADGE_CONFIGS';\nexport const SET_CAMERA_ENTRIES = 'app/OrgContainer/SET_CAMERA_ENTRIES';\nexport const SET_CAMERA_STALE_SNAPSHOT =\n 'app/OrgContainer/SET_CAMERA_STALE_SNAPSHOT';\nexport const SET_CARD_FORMATS = 'app/OrgContainer/SET_CARD_FORMATS';\nexport const SET_CONTACT_SENSORS = 'app/OrgContainer/SET_CONTACT_SENSORS';\nexport const SET_CREDENTIAL_TYPES = 'app/OrgContainer/SET_CREDENTIAL_TYPES';\nexport const SET_CREDENTIALS = 'app/OrgContainer/SET_CREDENTIALS';\nexport const SET_CUSTOM_FIELD_DROPDOWN_ITEMS =\n 'app/OrgContainer/SET_CUSTOM_FIELD_DROPDOWN_ITEMS';\nexport const SET_CUSTOM_FIELD = 'app/OrgContainer/SET_CUSTOM_FIELD';\nexport const SET_CUSTOM_FIELD_TYPES = 'app/OrgContainer/SET_CUSTOM_FIELD_TYPES';\nexport const SET_CUSTOM_FIELDS = 'app/OrgContainer/SET_CUSTOM_FIELDS';\nexport const SET_DASHBOARDS = 'app/OrgContainer/SET_DASHBOARDS';\nexport const SET_EMAIL_ALERTS = 'app/OrgContainer/SET_EMAIL_ALERTS';\nexport const SET_ENTERPRISE_VPN_CONFIG =\n 'app/OrgContainer/SET_ENTERPRISE_VPN_CONFIG';\nexport const SET_ENTRIES = 'app/OrgContainer/SET_ENTRIES';\nexport const SET_ENTRY = 'app/OrgContainer/SET_ENTRY';\nexport const SET_ENTRY_CAMERAS = 'app/OrgContainer/SET_ENTRY_CAMERAS';\nexport const SET_ENTRY_CONTACT_SENSORS =\n 'app/OrgContainer/SET_ENTRY_CONTACT_SENSORS';\nexport const SET_ENTRY_STATES = 'app/OrgContainer/SET_ENTRY_STATES';\nexport const SET_ENTRY_READERS = 'app/OrgContainer/SET_ENTRY_READERS';\nexport const SET_ENTRY_RELAYS = 'app/OrgContainer/SET_ENTRY_RELAYS';\nexport const SET_ENTRY_REXS = 'app/OrgContainer/SET_ENTRY_REXS';\nexport const SET_ENTRY_USER_SCHEDULES =\n 'app/OrgContainer/SET_ENTRY_USER_SCHEDULES';\nexport const SET_ENTRY_WIEGANDS = 'app/OrgContainer/SET_ENTRY_WIEGANDS';\nexport const SET_FILTERED_USERS_COUNT =\n 'app/OrgContainer/SET_FILTERED_USERS_COUNT';\nexport const SET_GENERIC_INPUTS = 'app/OrgContainer/SET_GENERIC_INPUTS';\nexport const SET_GLOBAL_ACUS = 'app/OrgContainer/SET_GLOBAL_ACUS';\nexport const SET_GLOBAL_IDENTITIES = 'app/OrgContainer/SET_GLOBAL_IDENTITIES';\nexport const SET_GLOBAL_ORGS = 'app/OrgContainer/SET_GLOBAL_ORGS';\nexport const SET_GLOBAL_ENTRIES = 'app/OrgContainer/SET_GLOBAL_ENTRIES';\nexport const SET_GLOBAL_HOOK_EVENTS = 'app/OrgContainer/SET_GLOBAL_HOOK_EVENTS';\nexport const SET_GROUP = 'app/OrgContainer/SET_GROUP';\nexport const SET_GROUP_SCHEDULES = 'app/OrgContainer/SET_GROUP_SCHEDULES';\nexport const SET_GROUPS = 'app/OrgContainer/SET_GROUPS';\nexport const SET_HLS_STREAM_IS_LOADING =\n 'app/OrgContainer/SET_HLS_STREAM_IS_LOADING';\nexport const SET_HOOK_ACTIONS = 'app/OrgContainer/SET_HOOK_ACTIONS';\nexport const SET_HOOK_EVENTS = 'app/OrgContainer/SET_HOOK_EVENTS';\nexport const SET_IDENTITY_PROVIDERS = 'app/OrgContainer/SET_IDENTITY_PROVIDERS';\nexport const SET_IDENTITIES = 'SET_IDENTITIES';\nexport const SET_IDENTITY_PROVIDER_TYPES =\n 'app/OrgContainer/SET_IDENTITY_PROVIDER_TYPES';\nexport const SET_IDENTITY_PROVIDER_GROUP_RELATIONS =\n 'app/OrgContainer/SET_IDENTITY_PROVIDER_GROUP_RELATIONS';\nexport const SET_IDENTITY_PROVIDER_GROUPS =\n 'app/OrgContainer/SET_IDENTITY_PROVIDER_GROUPS';\nexport const SET_IDENTITY_ROLES = 'app/OrgContainer/SET_IDENTITY_ROLES';\nexport const SET_INVOICES = 'app/OrgContainer/SET_INVOICES';\nexport const SET_IOS = 'app/OrgContainer/SET_IOS';\nexport const SET_LOCKDOWN_PLANS = 'app/OrgContainer/SET_LOCKDOWN_PLANS';\nexport const SET_MOBILE_APP_CONFIG = 'app/OrgContainer/SET_MOBILE_APP_CONFIG';\nexport const SET_NAMESPACES = 'app/OrgContainer/SET_NAMESPACES';\nexport const SET_OPVIDEO_CAMERA_STREAMING_PROFILES =\n 'app/OrgContainer/SET_OPVIDEO_CAMERA_STREAMING_PROFILES';\nexport const SET_OPVIDEO_DEVICE = 'app/OrgContainer/SET_OPVIDEO_DEVICE';\nexport const SET_OPVIDEO_DEVICE_ACTIVITY =\n 'app/OrgContainer/SET_OPVIDEO_DEVICE_ACTIVITY';\nexport const SET_OPVIDEO_DEVICE_FRAGMENTS =\n 'app/OrgContainer/SET_OPVIDEO_DEVICE_FRAGMENTS';\nexport const SET_OPVIDEO_DEVICE_HLS_PLAYBACK_URL =\n 'app/OrgContainer/SET_OPVIDEO_DEVICE_HLS_PLAYBACK_URL';\nexport const SET_OPVIDEO_DEVICES = 'app/OrgContainer/SET_OPVIDEO_DEVICES';\nexport const SET_ORG = 'app/OrgContainer/SET_ORG';\nexport const SET_ORG_CAMERAS = 'app/OrgContainer/SET_ORG_CAMERAS';\nexport const SET_ORG_PACKAGE_PLANS_REDUCER =\n 'app/OrgContainer/SET_ORG_PACKAGE_PLANS_REDUCER';\nexport const SET_NETSUITE_PACKAGE_PLANS =\n 'app/OrgContainer/SET_NETSUITE_PACKAGE_PLANS';\nexport const SET_PROTON_STATUSES = 'app/OrgContainer/SET_PROTON_STATUSES';\nexport const SET_PRESENCE_BUCKETS = 'app/OrgContainer/SET_PRESENCE_BUCKETS';\nexport const SET_READERS = 'app/OrgContainer/SET_READERS';\nexport const SET_RELAYS = 'app/OrgContainer/SET_RELAYS';\nexport const SET_REXS = 'app/OrgContainer/SET_REXS';\nexport const SET_REQUEST_TYPES = 'app/OrgContainer/SET_REQUEST_TYPES';\nexport const SET_ROLE = 'app/OrgContainer/SET_ROLE';\nexport const SET_ROLES = 'app/OrgContainer/SET_ROLES';\nexport const SET_SCHEDULE_ACCESS = 'app/OrgContainer/SET_SCHEDULE_ACCESS';\nexport const SET_SCHEDULE_EVENTS = 'app/OrgContainer/SET_SCHEDULE_EVENTS';\nexport const SET_SCHEDULE_TYPES = 'app/OrgContainer/SET_SCHEDULE_TYPES';\nexport const SET_SCHEDULES = 'app/OrgContainer/SET_SCHEDULES';\nexport const SET_SCOPE_RESOURCES = 'app/OrgContainer/SET_SCOPE_RESOURCES';\nexport const SET_SHARED_USERS = 'app/OrgContainer/SET_SHARED_USERS';\nexport const SET_SITE = 'app/OrgContainer/SET_SITE';\nexport const SET_SITES = 'app/OrgContainer/SET_SITES';\nexport const SET_SUBSCRIPTION = 'app/OrgContainer/SET_SUBSCRIPTION';\nexport const SET_SUBSCRIPTIONS = 'app/OrgContainer/SET_SUBSCRIPTIONS';\nexport const SET_THIRD_PARTY_DEVICES =\n 'app/OrgContainer/SET_THIRD_PARTY_DEVICES';\nexport const SET_TOTAL_USERS_COUNT = 'app/OrgContainer/SET_TOTAL_USERS_COUNT';\nexport const SET_TRIGGER_METHODS = 'app/OrgContainer/SET_TRIGGER_METHODS';\nexport const SET_THIRD_PARTY_READERS =\n 'app/OrgContainer/SET_THIRD_PARTY_READERS';\nexport const SET_USER = 'app/OrgContainer/SET_USER';\nexport const SET_USER_ACTIVITY = 'app/OrgContainer/SET_USER_ACTIVITY';\nexport const SET_USER_BADGE = 'app/OrgContainer/SET_USER_BADGE';\nexport const SET_USER_CREDENTIALS = 'app/OrgContainer/SET_USER_CREDENTIALS';\nexport const SET_USER_CUSTOM_FIELDS = 'app/OrgContainer/SET_USER_CUSTOM_FIELDS';\nexport const SET_USER_ENTRIES = 'app/OrgContainer/SET_USER_ENTRIES';\nexport const SET_USER_GROUPS = 'app/OrgContainer/SET_USER_GROUPS';\nexport const SET_USERS = 'app/OrgContainer/SET_USERS';\nexport const SET_VIDEO_PROVIDER_TYPES =\n 'app/OrgContainer/SET_VIDEO_PROVIDER_TYPES';\nexport const SET_VIDEO_PROVIDERS = 'app/OrgContainer/SET_VIDEO_PROVIDERS';\nexport const SET_VIDEO_READER = 'app/OrgContainer/SET_VIDEO_READER';\nexport const SET_VIDEO_READERS = 'app/OrgContainer/SET_VIDEO_READERS';\nexport const SET_VIDEO_INTERCOM_READERS =\n 'app/OrgContainer/SET_VIDEO_INTERCOM_READERS';\nexport const SET_VISUAL_ACTIVITY = 'app/OrgContainer/SET_VISUAL_ACTIVITY';\nexport const SET_WIDGETS = 'app/OrgContainer/SET_WIDGETS';\nexport const SET_WIDGET_TYPES = 'app/OrgContainer/SET_WIDGET_TYPES';\nexport const SET_WIRELESS_LOCKS = 'app/OrgContainer/SET_WIRELESS_LOCKS';\nexport const SET_WIRELESS_LOCK_GATEWAYS =\n 'app/OrgContainer/SET_WIRELESS_LOCK_GATEWAYS';\nexport const SET_WIRELESS_LOCK_PROVIDERS =\n 'app/OrgContainer/SET_WIRELESS_LOCK_PROVIDERS';\nexport const SET_ZONE = 'app/OrgContainer/SET_ZONE';\nexport const SET_ZONE_GROUPS = 'app/OrgContainer/SET_ZONE_GROUPS';\nexport const SET_ZONE_ZONE_USERS = 'app/OrgContainer/SET_ZONE_ZONE_USERS';\nexport const SET_ZONE_ZONE_GROUPS = 'app/OrgContainer/SET_ZONE_ZONE_GROUPS';\nexport const SET_ZONES = 'app/OrgContainer/SET_ZONES';\n\n// Reducer names\nexport const ACTIVITY_REDUCER = 'activity';\nexport const ACU_EXPANSION_BOARDS_REDUCER = 'acuExpansionBoards';\nexport const ACU_CONFIG_REDUCER = 'acuConfig';\nexport const ACU_LOCATION_MEASUREMENTS_REDUCER = 'acuLocationMeasurements';\nexport const ACU_LOCATION_RESTRICTION_REDUCER = 'acuLocationRestriction';\nexport const ACU_MODELS_REDUCER = 'acuModels';\nexport const ACU_PORTS_REDUCER = 'acuPorts';\nexport const ACU_REDUCER = 'acu';\nexport const ACUS_REDUCER = 'acus';\nexport const ALARM_ACTIVITY_REDUCER = 'alarmActivity';\nexport const ALL_ACU_PORTS_REDUCER = 'allAcuPorts';\nexport const ALARM_CONFIGURATIONS_REDUCER = 'alarmConfigurations';\nexport const ALLEGION_INVITER_REDUCER = 'allegionInviter';\nexport const ALLEGION_OPERATORS_REDUCER = 'allegionOperators';\nexport const APPS_REDUCER = 'apps';\nexport const AUDIT_LOGS_UI_REDUCER = 'auditLogsUi';\nexport const BADGE_CONFIGS_REDUCER = 'badgeConfigs';\nexport const CAMERA_ENTRIES_REDUCER = 'cameraEntries';\nexport const CAMERA_STALE_SNAPSHOT_REDUCER = 'cameraStaleSnapshot';\nexport const CARD_FORMATS_REDUCER = 'cardFormats';\nexport const CONTACT_SENSORS_REDUCER = 'contactSensors';\nexport const CREDENTIAL_TYPES_REDUCER = 'credentialTypes';\nexport const CREDENTIALS_REDUCER = 'credentials';\nexport const CUSTOM_FIELD_REDUCER = 'customField';\nexport const CUSTOM_FIELD_DROPDOWN_ITEMS_REDUCER = 'customFieldDropdownItems';\nexport const CUSTOM_FIELD_TYPES_REDUCER = 'customFieldTypes';\nexport const CUSTOM_FIELDS_REDUCER = 'customFields';\nexport const DASHBOARDS_REDUCER = 'dashboards';\nexport const EMAIL_ALERTS_REDUCER = 'emailAlerts';\nexport const ENTERPRISE_VPN_CONFIG_REDUCER = 'enterpriseVpnConfig';\nexport const ENTRIES_REDUCER = 'entries';\nexport const ENTRY_CAMERAS_REDUCER = 'entryCameras';\nexport const ENTRY_CONTACT_SENSORS_REDUCER = 'entryContactSensors';\nexport const ENTRY_READERS_REDUCER = 'entryReaders';\nexport const ENTRY_REDUCER = 'entry';\nexport const ENTRY_RELAYS_REDUCER = 'entryRelays';\nexport const ENTRY_REXS_REDUCER = 'entryRexs';\nexport const ENTRY_STATES_REDUCER = 'entryStates';\nexport const ENTRY_WIEGANDS_REDUCER = 'entryWiegands';\nexport const ENTRY_USER_SCHEDULES_REDUCER = 'entryUserSchedules';\nexport const GENERIC_INPUTS_REDUCER = 'genericInputs';\nexport const GLOBAL_ACUS_REDUCER = 'globalAcus';\nexport const GLOBAL_IDENTITIES_REDUCER = 'globalIdentities';\nexport const GLOBAL_ORGS_REDUCER = 'globalOrgs';\nexport const GLOBAL_ENTRIES_REDUCER = 'globalEntries';\nexport const GLOBAL_HOOK_EVENTS_REDUCER = 'globalHookEvents';\nexport const GROUP_REDUCER = 'group';\nexport const GROUP_SCHEDULES_REDUCER = 'groupSchedules';\nexport const GROUPS_REDUCER = 'groups';\nexport const HLS_STREAM_IS_LOADING_REDUCER = 'hlsStreamIsLoading';\nexport const HOOK_ACTIONS_REDUCER = 'hookActions';\nexport const HOOK_EVENTS_REDUCER = 'hookEvents';\nexport const IDENTITY_PROVIDERS_REDUCER = 'identityProviders';\nexport const IDENTITY_PROVIDER_TYPES_REDUCER = 'identityProviderTypes';\nexport const IDENTITY_ROLES_REDUCER = 'identityRoles';\nexport const IDENTITIES_REDUCER = 'identities';\nexport const INVOICES_REDUCER = 'invoices';\nexport const IOS_REDUCER = 'ios';\nexport const LOCKDOWN_PLANS_REDUCER = 'lockdownPlans';\nexport const MOBILE_APP_CONFIG_REDUCER = 'mobileAppConfig';\nexport const OPVIDEO_CAMERA_STREAMING_PROFILES_REDUCER =\n 'opvideoCameraStreamingProfiles';\nexport const OPVIDEO_DEVICE_REDUCER = 'opvideoDevice';\nexport const OPVIDEO_DEVICE_ACTIVITY_REDUCER = 'opvideoDeviceActivity';\nexport const OPVIDEO_DEVICE_FRAGMENTS_REDUCER = 'opvideoDeviceFragments';\nexport const OPVIDEO_DEVICE_HLS_PLAYBACK_URL_REDUCER =\n 'opvideoDeviceHlsPlayback';\nexport const OPVIDEO_DEVICES_REDUCER = 'opvideoDevices';\nexport const ORG_CAMERAS_REDUCER = 'orgCameras';\nexport const ORG_PACKAGE_PLANS_REDUCER = 'orgPackagePlans';\nexport const PRESENCE_BUCKETS_REDUCER = 'presenceBuckets';\nexport const READERS_REDUCER = 'readers';\nexport const RELAYS_REDUCER = 'relays';\nexport const REXS_REDUCER = 'rexes';\nexport const ROLES_REDUCER = 'roles';\nexport const SCHEDULE_ACCESS_REDUCER = 'scheduleAccess';\nexport const SCHEDULE_EVENTS_REDUCER = 'scheduleEvents';\nexport const SCHEDULES_REDUCER = 'schedules';\nexport const SHARED_USERS_REDUCER = 'sharedUsers';\nexport const SITE_REDUCER = 'site';\nexport const SITES_REDUCER = 'sites';\nexport const TRIGGER_METHODS = 'triggerMethods';\nexport const SUBSCRIPTION_REDUCER = 'subscription';\nexport const SUBSCRIPTIONS_REDUCER = 'subscriptions';\nexport const THIRD_PARTY_DEVICES_REDUCER = 'thirdPartyDevices';\nexport const THIRD_PARTY_READERS_REDUCER = 'thirdPartyReaders';\nexport const USER_ACTIVITY_REDUCER = 'userActivity';\nexport const USER_BADGE_REDUCER = 'userBadge';\nexport const USER_CREDENTIALS_REDUCER = 'userCredentials';\nexport const USER_CUSTOM_FIELDS_REDUCER = 'userCustomFields';\nexport const USER_ENTRIES_REDUCER = 'userEntries';\nexport const USER_GROUPS_REDUCER = 'userGroups';\nexport const USER_REDUCER = 'user';\nexport const USERS_REDUCER = 'users';\nexport const VIDEO_PROVIDER_TYPES_REDUCER = 'videoProviders';\nexport const VIDEO_PROVIDERS_REDUCER = 'videoProviders';\nexport const VIDEO_READER_REDUCER = 'videoReader';\nexport const VIDEO_READERS_REDUCER = 'videoReaders';\nexport const VIDEO_INTERCOM_READERS_REDUCER = 'videoIntercomReaders';\nexport const VISUAL_ACTIVITY_REDUCER = 'visualActivity';\nexport const WIDGETS_REDUCER = 'widgets';\nexport const WIDGET_TYPES_REDUCER = 'widgetTypes';\nexport const WIRELESS_LOCKS_REDUCER = 'wirelessLocks';\nexport const WIRELESS_LOCK_GATEWAYS_REDUCER = 'wirelessLockGateways';\nexport const WIRELESS_LOCK_PROVIDERS_REDUCER = 'wirelessLockProviders';\nexport const ZONE_GROUPS_REDUCER = 'zoneGroups';\nexport const ZONE_REDUCER = 'zone';\nexport const ZONE_ZONE_USERS_REDUCER = 'zoneZoneUsers';\nexport const ZONE_ZONE_GROUPS_REDUCER = 'zoneZoneGroups';\nexport const ZONES_REDUCER = 'zones';\n\nexport const ORG_REDUCER = 'org';\n\n// temp, should be moved up\nexport const BUILDINGS_REDUCER = 'buildings';\nexport const BUILDING_REDUCER = 'building';\nexport const SET_BUILDINGS = 'app/OrgContainer/SET_BUILDINGS';\nexport const SET_BUILDING = 'app/OrgContainer/SET_BUILDING';\nexport const FLOORS_REDUCER = 'buildingFloors';\nexport const FLOOR_REDUCER = 'floor';\nexport const SET_FLOORS = 'app/OrgContainer/SET_FLOORS';\nexport const SET_FLOOR = 'app/OrgContainer/SET_FLOOR';\nexport const UNITS_REDUCER = 'buildingFloorUnits';\nexport const UNIT_REDUCER = 'unit';\nexport const SET_UNITS = 'app/OrgContainer/SET_UNITS';\nexport const SET_UNIT = 'app/OrgContainer/SET_UNIT';\n\nexport const SERVICE_REQUESTS_REDUCER = 'serviceRequests';\nexport const SET_SERVICE_REQUESTS = 'app/OrgContainer/SET_SERVICE_REQUESTS';\n\nexport const CAMERAS_REDUCER = 'cameras';\nexport const SET_CAMERAS = 'app/OrgContainer/SET_CAMERAS';\nexport const SCHEDULED_REPORTS_REDUCER = 'scheduledReports';\nexport const SET_SCHEDULED_REPORTS = 'app/OrgContainer/SET_SCHEDULED_REPORTS';\nexport const SCHEDULED_REPORT_REDUCER = 'scheduledReport';\nexport const SET_SCHEDULED_REPORT = 'app/OrgContainer/SET_SCHEDULED_REPORT';\nexport const TASK_REPORTS_REDUCER = 'taskReports';\nexport const SET_TASK_REPORTS = 'app/OrgContainer/SET_TASK_REPORTS';\nexport const ORG_SOFTWARE_LICENSES_REDUCER = 'orgSoftwareLicenses';\nexport const SET_ORG_SOFTWARE_LICENSES =\n 'app/OrgContainer/SET_ORG_SOFTWARE_LICENSES';\n\n// with slideouts, we often need to store table data while the slideout is open\nexport const SAVE_TABLE_STATE = 'app/OrgContainer/SAVE_TABLE_STATE';\nexport const TABLE_STATE_REDUCER = 'tableState';\n\n// BELOW THIS LINE ARE ONES THAT SHOULD LIVE HERE\nexport const REQUEST_GET_CURRENT_ORG_DATA =\n 'app/OrgContainer/REQUEST_GET_CURRENT_ORG_DATA';\nexport const REQUEST_PAGE_DATA_GENERIC =\n 'app/OrgContainer/REQUEST_PAGE_DATA_GENERIC';\nexport const REQUEST_HELIUM_DATA_GENERIC =\n 'app/OrgContainer/REQUEST_HELIUM_DATA_GENERIC';\nexport const RESET_HLS_URL = 'app/OrgContainer/RESET_HLS_URL';\nexport const RESET_POSTER_URL = 'app/OrgContainer/RESET_POSTER_URL';\nexport const REQUEST_AND_SET_GENERAL_WRAPPER =\n 'app/OrgContainer/REQUEST_AND_SET_GENERAL_WRAPPER';\nexport const SLIDE_OUT_SUCCESSFUL = 'app/OrgContainer/SLIDE_OUT_SUCCESSFUL';\nexport const UPDATE_OPTIONS = 'app/OrgContainer/UPDATE_OPTIONS';\n","import { ModalFunc } from 'antd/es/modal/confirm';\nimport { OpApp } from 'new-components/DLS/OpApp/OpApp';\n\nexport const useConfirmModal: () => ModalFunc = () => {\n /** Need to wrap in antd App so modal confirm works with dark mode theme\n * https://github.com/ant-design/ant-design/issues/40576 */\n const { modal } = OpApp.useApp();\n\n return (modalFuncProps) =>\n modal.confirm({\n centered: true,\n ...modalFuncProps,\n });\n};\n","module.exports = __webpack_public_path__ + \"7f79d4bde67c8013b187889b63e25bce.js\";","'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","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","module.exports = __webpack_public_path__ + \"70efbabef77fb217f904f41dbf7fe8bf.js\";","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _regeneratorRuntime() { \"use strict\"; _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator.return && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); 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; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _extendableBuiltin(cls) {\n function ExtendableBuiltin() {\n var instance = Reflect.construct(cls, Array.from(arguments));\n Object.setPrototypeOf(instance, Object.getPrototypeOf(this));\n return instance;\n }\n ExtendableBuiltin.prototype = Object.create(cls.prototype, {\n constructor: {\n value: cls,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ExtendableBuiltin, cls);\n } else {\n ExtendableBuiltin.__proto__ = cls;\n }\n return ExtendableBuiltin;\n}\nvar env = 'browser';\nif (typeof window === 'undefined') {\n global.fetch = require('node-fetch').default;\n env = 'node';\n}\nvar HeliumClientError = function (_extendableBuiltin2) {\n function HeliumClientError(what, response, expected) {\n var _this;\n _classCallCheck(this, HeliumClientError);\n var msg = what;\n if (response.statusCode !== expected) {\n msg += \" returned \".concat(response.statusCode, \" (expected \").concat(expected, \")\");\n }\n _this = _callSuper(this, HeliumClientError, [msg]);\n Error.captureStackTrace(_this, _this.constructor);\n _this.name = _this.constructor.name;\n _this.status = response.statusCode;\n _this.expected = expected;\n _this.json = response.json;\n return _this;\n }\n _inherits(HeliumClientError, _extendableBuiltin2);\n return _createClass(HeliumClientError);\n}(_extendableBuiltin(Error));\nvar LiveServer = function () {\n function LiveServer(endpoint) {\n _classCallCheck(this, LiveServer);\n this.endpoint = endpoint;\n }\n return _createClass(LiveServer, [{\n key: \"inject\",\n value: function () {\n var _inject = _asyncToGenerator(_regeneratorRuntime().mark(function _callee(origRequest) {\n var overrides,\n request,\n _origRequest$payload$,\n url,\n origResponse,\n statusCode,\n headers,\n response,\n _args = arguments;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n overrides = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n request = {\n method: origRequest.method,\n headers: origRequest.headers\n };\n if (origRequest.payload) {\n request.body = ((_origRequest$payload$ = origRequest.payload.constructor) === null || _origRequest$payload$ === void 0 ? void 0 : _origRequest$payload$.name) === 'FormData' ? origRequest.payload : JSON.stringify(origRequest.payload);\n }\n url = overrides.url || \"\".concat(this.endpoint).concat(origRequest.url);\n _context.next = 6;\n return fetch(url, request);\n case 6:\n origResponse = _context.sent;\n statusCode = origResponse.status;\n headers = origResponse.headers.raw || origResponse.headers.map ? Object.entries(origResponse.headers.raw ? origResponse.headers.raw() : origResponse.headers.map).reduce(function (a, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n a[k] = Array.isArray(v) && v.length === 1 ? v[0] : v;\n return a;\n }, {}) : origResponse.headers;\n headers['User-Agent'] = \"OpenPath-HeliumClient/1.0 \".concat(env, \" (+engineering@openpath.com)\");\n response = {\n statusCode: statusCode,\n headers: headers\n };\n _context.prev = 11;\n if (!(response.headers['content-type'] === 'application/xml')) {\n _context.next = 18;\n break;\n }\n _context.next = 15;\n return origResponse.text();\n case 15:\n response.payload = _context.sent;\n _context.next = 26;\n break;\n case 18:\n if (!(statusCode !== 204)) {\n _context.next = 24;\n break;\n }\n _context.next = 21;\n return origResponse.json();\n case 21:\n _context.t0 = _context.sent;\n _context.next = 25;\n break;\n case 24:\n _context.t0 = null;\n case 25:\n response.json = _context.t0;\n case 26:\n _context.next = 30;\n break;\n case 28:\n _context.prev = 28;\n _context.t1 = _context[\"catch\"](11);\n case 30:\n return _context.abrupt(\"return\", response);\n case 31:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[11, 28]]);\n }));\n function inject(_x) {\n return _inject.apply(this, arguments);\n }\n return inject;\n }()\n }]);\n}();\nfunction generateQueryString(queryParams) {\n var queryString = '?';\n if (queryParams) {\n Object.keys(queryParams).map(function (key) {\n var rawValue = queryParams[key];\n if (Array.isArray(rawValue)) {\n rawValue.forEach(function (elem) {\n var value = encodeURIComponent(elem);\n var pair = \"\".concat(key, \"=\").concat(value, \"&\");\n queryString += pair;\n });\n } else {\n var value = encodeURIComponent(rawValue);\n var pair = \"\".concat(key, \"=\").concat(value, \"&\");\n queryString += pair;\n }\n });\n }\n queryString = queryString.slice(0, -1);\n return queryString;\n}\nvar BaseClient = function () {\n function BaseClient(server) {\n var _this2 = this;\n var _token = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var postRequestCallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n _classCallCheck(this, BaseClient);\n _defineProperty(this, \"swaggerOp\", function () {\n var _ref3 = _asyncToGenerator(_regeneratorRuntime().mark(function _callee2(operationId) {\n var args,\n op,\n _op,\n method,\n pathTemplate,\n parameters,\n responseCode,\n withPayload,\n withQuery,\n path,\n _iterator,\n _step,\n p,\n payload,\n queryParams,\n flags,\n result,\n _args2 = arguments;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n args = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : [];\n if (!_this2.spec) _this2.spec = BaseClient.getDefaultSpec();\n op = _this2.spec[operationId];\n if (op) {\n _context2.next = 5;\n break;\n }\n throw new Error(\"Unknown operationId \".concat(operationId));\n case 5:\n _op = _slicedToArray(op, 6), method = _op[0], pathTemplate = _op[1], parameters = _op[2], responseCode = _op[3], withPayload = _op[4], withQuery = _op[5];\n path = pathTemplate;\n _iterator = _createForOfIteratorHelper(parameters);\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n p = _step.value;\n path = path.replace(\"{\".concat(p, \"}\"), args.shift());\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n payload = withPayload ? args.shift() : null;\n queryParams = withQuery ? args.shift() : null;\n flags = args.length ? args.shift() : undefined;\n _context2.next = 14;\n return _this2._request(responseCode, method, path, payload, queryParams, flags);\n case 14:\n result = _context2.sent;\n return _context2.abrupt(\"return\", result);\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n _defineProperty(this, \"withHeaders\", function () {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var ret = new BaseClient(_this2.server, _this2.token, _objectSpread(_objectSpread({}, _this2.headers), headers), _this2.postRequestCallback);\n ret.isRaw = _this2.isRaw;\n return ret;\n });\n _defineProperty(this, \"raw\", function () {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var ret = new BaseClient(_this2.server, _this2.token, _objectSpread(_objectSpread({}, _this2.headers), headers), _this2.postRequestCallback);\n ret.isRaw = true;\n return ret;\n });\n _defineProperty(this, \"setToken\", function (token) {\n _this2.token = token;\n });\n _defineProperty(this, \"requestExternal\", _asyncToGenerator(_regeneratorRuntime().mark(function _callee3() {\n var expectCode,\n method,\n url,\n payload,\n queryParams,\n flags,\n _args3 = arguments;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n expectCode = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : null;\n method = _args3.length > 1 ? _args3[1] : undefined;\n url = _args3.length > 2 ? _args3[2] : undefined;\n payload = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : null;\n queryParams = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : {};\n flags = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : {\n headers: {},\n firePostRequestCallback: true\n };\n return _context3.abrupt(\"return\", _this2._request(expectCode, method, url, payload, queryParams, flags));\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n })));\n _defineProperty(this, \"_request\", function () {\n var _ref5 = _asyncToGenerator(_regeneratorRuntime().mark(function _callee4(expectCode, method, urlpath, payload, queryParams) {\n var flags,\n queryString,\n _flags,\n overrides,\n headers,\n _flags$firePostReques,\n firePostRequestCallback,\n request,\n _payload$constructor,\n r,\n limit,\n offset,\n expectedLength,\n _args4 = arguments;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n flags = _args4.length > 5 && _args4[5] !== undefined ? _args4[5] : {\n firePostRequestCallback: true,\n overrides: {},\n headers: {}\n };\n queryString = generateQueryString(queryParams);\n if (!flags) {\n flags = {\n firePostRequestCallback: true,\n overrides: {},\n headers: {}\n };\n }\n _flags = flags, overrides = _flags.overrides, headers = _flags.headers, _flags$firePostReques = _flags.firePostRequestCallback, firePostRequestCallback = _flags$firePostReques === void 0 ? true : _flags$firePostReques;\n if (!(expectCode && isNaN(expectCode))) {\n _context4.next = 6;\n break;\n }\n throw new HeliumClientError('Must pass expectCode as first param');\n case 6:\n request = {\n method: method,\n url: urlpath + queryString,\n headers: Object.assign({\n Accept: 'application/json, application/xml'\n }, _objectSpread(_objectSpread({}, _this2.headers), headers))\n };\n if (_this2.token && !(overrides && overrides.url)) {\n request.headers.Authorization = _this2.token;\n }\n if (payload) {\n if (((_payload$constructor = payload.constructor) === null || _payload$constructor === void 0 ? void 0 : _payload$constructor.name) === 'FormData') {\n if (_this2.server instanceof LiveServer) {\n delete request.headers['Content-Type'];\n request.payload = payload;\n } else {\n request.headers = _objectSpread(_objectSpread({}, request.headers), payload.getHeaders());\n request.payload = payload.getBuffer();\n }\n } else {\n request.headers['Content-Type'] = 'application/json';\n request.payload = payload;\n }\n }\n _context4.next = 11;\n return _this2.server.inject(request, overrides);\n case 11:\n r = _context4.sent;\n if (!r.json && r.payload) {\n if (r.payload[0] === '[' || r.payload[0] === '{') r.json = JSON.parse(r.payload);else if (r.headers['content-type'] === 'application/xml') r.json = {\n data: r.payload\n };\n }\n if (!firePostRequestCallback) {\n _context4.next = 17;\n break;\n }\n if (!_this2.postRequestCallback) {\n _context4.next = 17;\n break;\n }\n _context4.next = 17;\n return _this2.postRequestCallback(expectCode, r);\n case 17:\n if (!_this2.isRaw) {\n _context4.next = 19;\n break;\n }\n return _context4.abrupt(\"return\", r);\n case 19:\n if (!(expectCode && r.statusCode !== expectCode)) {\n _context4.next = 21;\n break;\n }\n throw new HeliumClientError(\"\".concat(method, \" \").concat(urlpath), r, expectCode);\n case 21:\n if (!(r.statusCode === 204)) {\n _context4.next = 23;\n break;\n }\n return _context4.abrupt(\"return\", null);\n case 23:\n if (!(r.json && r.json.filteredCount)) {\n _context4.next = 29;\n break;\n }\n limit = queryParams && queryParams.limit || 10;\n offset = queryParams && queryParams.offset || 0;\n expectedLength = offset + limit < r.json.filteredCount ? limit : r.json.filteredCount - offset;\n if (!(r.json.data.length < expectedLength)) {\n _context4.next = 29;\n break;\n }\n throw new HeliumClientError(\"\".concat(method, \" \").concat(urlpath, \" returned too few records in limited response (expected \").concat(expectedLength, \" of \").concat(r.json.filteredCount, \" total filtered records, but got \").concat(r.json.data.length, \")\"), r, expectCode);\n case 29:\n return _context4.abrupt(\"return\", r.json.data);\n case 30:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function (_x3, _x4, _x5, _x6, _x7) {\n return _ref5.apply(this, arguments);\n };\n }());\n _defineProperty(this, \"_PUT\", function (expectCode, urlpath, payload, flags) {\n return _this2._request(expectCode, 'PUT', urlpath, payload, null, flags);\n });\n _defineProperty(this, \"_PATCH\", function (expectCode, urlpath, payload, flags) {\n return _this2._request(expectCode, 'PATCH', urlpath, payload, null, flags);\n });\n _defineProperty(this, \"_POST\", function (expectCode, urlpath, payload, queryParams, flags) {\n return _this2._request(expectCode, 'POST', urlpath, payload, queryParams, flags);\n });\n _defineProperty(this, \"_GET\", function (expectCode, urlpath, queryParams, flags) {\n return _this2._request(expectCode, 'GET', urlpath, null, queryParams, flags);\n });\n _defineProperty(this, \"_DELETE\", function (expectCode, urlpath, flags) {\n return _this2._request(expectCode, 'DELETE', urlpath, null, null, flags);\n });\n _defineProperty(this, \"login\", function () {\n var _ref6 = _asyncToGenerator(_regeneratorRuntime().mark(function _callee5(payload) {\n var data;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return _this2._POST(201, '/auth/login', payload);\n case 2:\n data = _context5.sent;\n _this2.token = data.token;\n return _context5.abrupt(\"return\", data);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function (_x8) {\n return _ref6.apply(this, arguments);\n };\n }());\n _defineProperty(this, \"logout\", _asyncToGenerator(_regeneratorRuntime().mark(function _callee6() {\n var data;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return _this2._POST(204, '/auth/logout', {});\n case 2:\n data = _context6.sent;\n _this2.token = null;\n return _context6.abrupt(\"return\", data);\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n })));\n _defineProperty(this, \"refreshLogin\", _asyncToGenerator(_regeneratorRuntime().mark(function _callee7() {\n var response;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return _this2._POST(201, \"/auth/accessTokens/refresh\", null, null, {\n firePostRequestCallback: false\n });\n case 2:\n response = _context7.sent;\n if (_this2.isRaw && response.json && response.json.data) {\n _this2.token = response.json.data.token;\n } else {\n _this2.token = response.token;\n }\n return _context7.abrupt(\"return\", response);\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n })));\n _defineProperty(this, \"checkMaintenanceEndpoint\", function (maintenanceUrl) {\n return _this2._GET(200, null, null, {\n overrides: {\n url: maintenanceUrl\n },\n firePostRequestCallback: false\n });\n });\n _defineProperty(this, \"describeSwagger\", function (queryParams) {\n return _this2._GET(200, '/swagger.json', queryParams);\n });\n _defineProperty(this, \"describeOpenApi\", function (queryParams) {\n return _this2._GET(200, '/openapi.json', queryParams);\n });\n _defineProperty(this, \"getEmailAlerts\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _this2.swaggerOp('listEmailAlerts', args);\n });\n this.server = server;\n this.token = _token;\n this.headers = _headers;\n this.isRaw = false;\n this.postRequestCallback = postRequestCallback;\n return new Proxy(this, {\n get: function get(target, property, receiver) {\n if (property in target) return target[property];\n if (!target.spec) {\n target.spec = BaseClient.getDefaultSpec();\n if (property === 'spec') {\n return target.spec;\n }\n }\n var operationId = property;\n if (target.spec[operationId]) {\n var f = function f() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return target.swaggerOp(operationId, args);\n };\n target[operationId] = f;\n return f;\n }\n return undefined;\n }\n });\n }\n return _createClass(BaseClient, null, [{\n key: \"forLiveServer\",\n value: function forLiveServer(endpoint) {\n var token = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var postRequestCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isRaw = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var server = new LiveServer(endpoint);\n var c = new BaseClient(server, token, {}, postRequestCallback);\n c.isRaw = isRaw;\n return c;\n }\n }, {\n key: \"getDefaultSpec\",\n value: function getDefaultSpec() {\n if (!BaseClient.defaultSpec) {\n BaseClient.defaultSpec = require('./spec.json');\n }\n return BaseClient.defaultSpec;\n }\n }, {\n key: \"swaggerToSpec\",\n value: function swaggerToSpec(swaggerObj) {\n var ops = {};\n Object.entries(swaggerObj.paths).forEach(function (_ref9) {\n var _ref10 = _slicedToArray(_ref9, 2),\n path = _ref10[0],\n v = _ref10[1];\n Object.entries(v).forEach(function (_ref11) {\n var _ref12 = _slicedToArray(_ref11, 2),\n method = _ref12[0],\n op = _ref12[1];\n var responseCodes = Object.keys(op.responses);\n if (responseCodes.length !== 1) throw new Error(\"Expected exactly one response code for operationId \".concat(op.operationId, \", but found \").concat(responseCodes));\n ops[op.operationId] = [method.toUpperCase(), path, (op.parameters || []).filter(function (p) {\n return p.in === 'path';\n }).map(function (p) {\n return p.name;\n }), Number(responseCodes[0]), (op.parameters || []).some(function (p) {\n return p.in === 'formData';\n }) ? 2 : (op.parameters || []).some(function (p) {\n return p.in === 'body';\n }) ? 1 : 0, (op.parameters || []).some(function (p) {\n return p.in === 'query';\n }) ? 1 : 0];\n });\n });\n return ops;\n }\n }]);\n}();\nmodule.exports = {\n HeliumClient: BaseClient,\n HeliumClientError: HeliumClientError\n};","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedDividerStyle = token => {\n const {\n componentCls,\n sizePaddingEdgeHorizontal,\n colorSplit,\n lineWidth,\n textPaddingInline,\n orientationMargin,\n verticalMarginInline\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n borderBlockStart: `${unit(lineWidth)} solid ${colorSplit}`,\n // vertical\n '&-vertical': {\n position: 'relative',\n top: '-0.06em',\n display: 'inline-block',\n height: '0.9em',\n marginInline: verticalMarginInline,\n marginBlock: 0,\n verticalAlign: 'middle',\n borderTop: 0,\n borderInlineStart: `${unit(lineWidth)} solid ${colorSplit}`\n },\n '&-horizontal': {\n display: 'flex',\n clear: 'both',\n width: '100%',\n minWidth: '100%',\n // Fix https://github.com/ant-design/ant-design/issues/10914\n margin: `${unit(token.dividerHorizontalGutterMargin)} 0`\n },\n [`&-horizontal${componentCls}-with-text`]: {\n display: 'flex',\n alignItems: 'center',\n margin: `${unit(token.dividerHorizontalWithTextGutterMargin)} 0`,\n color: token.colorTextHeading,\n fontWeight: 500,\n fontSize: token.fontSizeLG,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n borderBlockStart: `0 ${colorSplit}`,\n '&::before, &::after': {\n position: 'relative',\n width: '50%',\n borderBlockStart: `${unit(lineWidth)} solid transparent`,\n // Chrome not accept `inherit` in `border-top`\n borderBlockStartColor: 'inherit',\n borderBlockEnd: 0,\n transform: 'translateY(50%)',\n content: \"''\"\n }\n },\n [`&-horizontal${componentCls}-with-text-left`]: {\n '&::before': {\n width: `calc(${orientationMargin} * 100%)`\n },\n '&::after': {\n width: `calc(100% - ${orientationMargin} * 100%)`\n }\n },\n [`&-horizontal${componentCls}-with-text-right`]: {\n '&::before': {\n width: `calc(100% - ${orientationMargin} * 100%)`\n },\n '&::after': {\n width: `calc(${orientationMargin} * 100%)`\n }\n },\n [`${componentCls}-inner-text`]: {\n display: 'inline-block',\n paddingBlock: 0,\n paddingInline: textPaddingInline\n },\n '&-dashed': {\n background: 'none',\n borderColor: colorSplit,\n borderStyle: 'dashed',\n borderWidth: `${unit(lineWidth)} 0 0`\n },\n [`&-horizontal${componentCls}-with-text${componentCls}-dashed`]: {\n '&::before, &::after': {\n borderStyle: 'dashed none none'\n }\n },\n [`&-vertical${componentCls}-dashed`]: {\n borderInlineStartWidth: lineWidth,\n borderInlineEnd: 0,\n borderBlockStart: 0,\n borderBlockEnd: 0\n },\n '&-dotted': {\n background: 'none',\n borderColor: colorSplit,\n borderStyle: 'dotted',\n borderWidth: `${unit(lineWidth)} 0 0`\n },\n [`&-horizontal${componentCls}-with-text${componentCls}-dotted`]: {\n '&::before, &::after': {\n borderStyle: 'dotted none none'\n }\n },\n [`&-vertical${componentCls}-dotted`]: {\n borderInlineStartWidth: lineWidth,\n borderInlineEnd: 0,\n borderBlockStart: 0,\n borderBlockEnd: 0\n },\n [`&-plain${componentCls}-with-text`]: {\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize\n },\n [`&-horizontal${componentCls}-with-text-left${componentCls}-no-default-orientation-margin-left`]: {\n '&::before': {\n width: 0\n },\n '&::after': {\n width: '100%'\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineStart: sizePaddingEdgeHorizontal\n }\n },\n [`&-horizontal${componentCls}-with-text-right${componentCls}-no-default-orientation-margin-right`]: {\n '&::before': {\n width: '100%'\n },\n '&::after': {\n width: 0\n },\n [`${componentCls}-inner-text`]: {\n paddingInlineEnd: sizePaddingEdgeHorizontal\n }\n }\n })\n };\n};\nexport const prepareComponentToken = token => ({\n textPaddingInline: '1em',\n orientationMargin: 0.05,\n verticalMarginInline: token.marginXS\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Divider', token => {\n const dividerToken = mergeToken(token, {\n dividerHorizontalWithTextGutterMargin: token.margin,\n dividerHorizontalGutterMargin: token.marginLG,\n sizePaddingEdgeHorizontal: 0\n });\n return [genSharedDividerStyle(dividerToken)];\n}, prepareComponentToken, {\n unitless: {\n orientationMargin: true\n }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Divider = props => {\n const {\n getPrefixCls,\n direction,\n divider\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'horizontal',\n orientation = 'center',\n orientationMargin,\n className,\n rootClassName,\n children,\n dashed,\n variant = 'solid',\n plain,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"orientation\", \"orientationMargin\", \"className\", \"rootClassName\", \"children\", \"dashed\", \"variant\", \"plain\", \"style\"]);\n const prefixCls = getPrefixCls('divider', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const hasChildren = !!children;\n const hasCustomMarginLeft = orientation === 'left' && orientationMargin != null;\n const hasCustomMarginRight = orientation === 'right' && orientationMargin != null;\n const classString = classNames(prefixCls, divider === null || divider === void 0 ? void 0 : divider.className, hashId, cssVarCls, `${prefixCls}-${type}`, {\n [`${prefixCls}-with-text`]: hasChildren,\n [`${prefixCls}-with-text-${orientation}`]: hasChildren,\n [`${prefixCls}-dashed`]: !!dashed,\n [`${prefixCls}-${variant}`]: variant !== 'solid',\n [`${prefixCls}-plain`]: !!plain,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-no-default-orientation-margin-left`]: hasCustomMarginLeft,\n [`${prefixCls}-no-default-orientation-margin-right`]: hasCustomMarginRight\n }, className, rootClassName);\n const memoizedOrientationMargin = React.useMemo(() => {\n if (typeof orientationMargin === 'number') {\n return orientationMargin;\n }\n if (/^\\d+$/.test(orientationMargin)) {\n return Number(orientationMargin);\n }\n return orientationMargin;\n }, [orientationMargin]);\n const innerStyle = Object.assign(Object.assign({}, hasCustomMarginLeft && {\n marginLeft: memoizedOrientationMargin\n }), hasCustomMarginRight && {\n marginRight: memoizedOrientationMargin\n });\n // Warning children not work in vertical mode\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Divider');\n process.env.NODE_ENV !== \"production\" ? warning(!children || type !== 'vertical', 'usage', '`children` not working in `vertical` mode.') : void 0;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: Object.assign(Object.assign({}, divider === null || divider === void 0 ? void 0 : divider.style), style)\n }, restProps, {\n role: \"separator\"\n }), children && type !== 'vertical' && (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-inner-text`,\n style: innerStyle\n }, children))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Divider.displayName = 'Divider';\n}\nexport default Divider;","import { unit } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { mergeToken } from '../../theme/internal';\n/**\n * Get multiple selector needed style. The calculation:\n *\n * ContainerPadding = BasePadding - ItemMargin\n *\n * Border: ╔═══════════════════════════╗ ┬\n * ContainerPadding: ║ ║ │\n * ╟───────────────────────────╢ ┬ │\n * Item Margin: ║ ║ │ │\n * ║ ┌──────────┐ ║ │ │\n * Item(multipleItemHeight): ║ BasePadding │ Item │ ║ Overflow Container(ControlHeight)\n * ║ └──────────┘ ║ │ │\n * Item Margin: ║ ║ │ │\n * ╟───────────────────────────╢ ┴ │\n * ContainerPadding: ║ ║ │\n * Border: ╚═══════════════════════════╝ ┴\n */\nexport const getMultipleSelectorUnit = token => {\n const {\n multipleSelectItemHeight,\n paddingXXS,\n lineWidth,\n INTERNAL_FIXED_ITEM_MARGIN\n } = token;\n const basePadding = token.max(token.calc(paddingXXS).sub(lineWidth).equal(), 0);\n const containerPadding = token.max(token.calc(basePadding).sub(INTERNAL_FIXED_ITEM_MARGIN).equal(), 0);\n return {\n basePadding,\n containerPadding,\n itemHeight: unit(multipleSelectItemHeight),\n itemLineHeight: unit(token.calc(multipleSelectItemHeight).sub(token.calc(token.lineWidth).mul(2)).equal())\n };\n};\nconst getSelectItemStyle = token => {\n const {\n multipleSelectItemHeight,\n selectHeight,\n lineWidth\n } = token;\n const selectItemDist = token.calc(selectHeight).sub(multipleSelectItemHeight).div(2).sub(lineWidth).equal();\n return selectItemDist;\n};\n/**\n * Get the `rc-overflow` needed style.\n * It's a share style which means not affected by `size`.\n */\nexport const genOverflowStyle = token => {\n const {\n componentCls,\n iconCls,\n borderRadiusSM,\n motionDurationSlow,\n paddingXS,\n multipleItemColorDisabled,\n multipleItemBorderColorDisabled,\n colorIcon,\n colorIconHover,\n INTERNAL_FIXED_ITEM_MARGIN\n } = token;\n const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n return {\n /**\n * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n * may update to redesign with its align logic.\n */\n // =========================== Overflow ===========================\n [selectOverflowPrefixCls]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n flexWrap: 'wrap',\n maxWidth: '100%',\n '&-item': {\n flex: 'none',\n alignSelf: 'center',\n maxWidth: '100%',\n display: 'inline-flex'\n },\n // ======================== Selections ==========================\n [`${componentCls}-selection-item`]: {\n display: 'flex',\n alignSelf: 'center',\n flex: 'none',\n boxSizing: 'border-box',\n maxWidth: '100%',\n marginBlock: INTERNAL_FIXED_ITEM_MARGIN,\n borderRadius: borderRadiusSM,\n cursor: 'default',\n transition: `font-size ${motionDurationSlow}, line-height ${motionDurationSlow}, height ${motionDurationSlow}`,\n marginInlineEnd: token.calc(INTERNAL_FIXED_ITEM_MARGIN).mul(2).equal(),\n paddingInlineStart: paddingXS,\n paddingInlineEnd: token.calc(paddingXS).div(2).equal(),\n [`${componentCls}-disabled&`]: {\n color: multipleItemColorDisabled,\n borderColor: multipleItemBorderColorDisabled,\n cursor: 'not-allowed'\n },\n // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n '&-content': {\n display: 'inline-block',\n marginInlineEnd: token.calc(paddingXS).div(2).equal(),\n overflow: 'hidden',\n whiteSpace: 'pre',\n // fix whitespace wrapping. custom tags display all whitespace within.\n textOverflow: 'ellipsis'\n },\n '&-remove': Object.assign(Object.assign({}, resetIcon()), {\n display: 'inline-flex',\n alignItems: 'center',\n color: colorIcon,\n fontWeight: 'bold',\n fontSize: 10,\n lineHeight: 'inherit',\n cursor: 'pointer',\n [`> ${iconCls}`]: {\n verticalAlign: '-0.2em'\n },\n '&:hover': {\n color: colorIconHover\n }\n })\n }\n }\n };\n};\nconst genSelectionStyle = (token, suffix) => {\n const {\n componentCls,\n INTERNAL_FIXED_ITEM_MARGIN\n } = token;\n const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n const selectItemHeight = token.multipleSelectItemHeight;\n const selectItemDist = getSelectItemStyle(token);\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n const multipleSelectorUnit = getMultipleSelectorUnit(token);\n return {\n [`${componentCls}-multiple${suffixCls}`]: Object.assign(Object.assign({}, genOverflowStyle(token)), {\n // ========================= Selector =========================\n [`${componentCls}-selector`]: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n height: '100%',\n // Multiple is little different that horizontal is follow the vertical\n paddingInline: multipleSelectorUnit.basePadding,\n paddingBlock: multipleSelectorUnit.containerPadding,\n borderRadius: token.borderRadius,\n [`${componentCls}-disabled&`]: {\n background: token.multipleSelectorBgDisabled,\n cursor: 'not-allowed'\n },\n '&:after': {\n display: 'inline-block',\n width: 0,\n margin: `${unit(INTERNAL_FIXED_ITEM_MARGIN)} 0`,\n lineHeight: unit(selectItemHeight),\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n }\n },\n // ======================== Selections ========================\n [`${componentCls}-selection-item`]: {\n height: multipleSelectorUnit.itemHeight,\n lineHeight: unit(multipleSelectorUnit.itemLineHeight)\n },\n // ========================== Input ==========================\n [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item`]: {\n [`${componentCls}-selection-search`]: {\n marginInlineStart: 0\n }\n },\n // https://github.com/ant-design/ant-design/issues/44754\n [`${selectOverflowPrefixCls}-item-suffix`]: {\n height: '100%'\n },\n [`${componentCls}-selection-search`]: {\n display: 'inline-flex',\n position: 'relative',\n maxWidth: '100%',\n marginInlineStart: token.calc(token.inputPaddingHorizontalBase).sub(selectItemDist).equal(),\n [`\n &-input,\n &-mirror\n `]: {\n height: selectItemHeight,\n fontFamily: token.fontFamily,\n lineHeight: unit(selectItemHeight),\n transition: `all ${token.motionDurationSlow}`\n },\n '&-input': {\n width: '100%',\n minWidth: 4.1 // fix search cursor missing\n },\n '&-mirror': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n insetInlineEnd: 'auto',\n zIndex: 999,\n whiteSpace: 'pre',\n // fix whitespace wrapping caused width calculation bug\n visibility: 'hidden'\n }\n },\n // ======================= Placeholder =======================\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: token.inputPaddingHorizontalBase,\n insetInlineEnd: token.inputPaddingHorizontalBase,\n transform: 'translateY(-50%)',\n transition: `all ${token.motionDurationSlow}`\n }\n })\n };\n};\nfunction genSizeStyle(token, suffix) {\n const {\n componentCls\n } = token;\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n const rawStyle = {\n [`${componentCls}-multiple${suffixCls}`]: {\n fontSize: token.fontSize,\n // ========================= Selector =========================\n [`${componentCls}-selector`]: {\n [`${componentCls}-show-search&`]: {\n cursor: 'text'\n }\n },\n [`\n &${componentCls}-show-arrow ${componentCls}-selector,\n &${componentCls}-allow-clear ${componentCls}-selector\n `]: {\n paddingInlineEnd: token.calc(token.fontSizeIcon).add(token.controlPaddingHorizontal).equal()\n }\n }\n };\n return [genSelectionStyle(token, suffix), rawStyle];\n}\nconst genMultipleStyle = token => {\n const {\n componentCls\n } = token;\n const smallToken = mergeToken(token, {\n selectHeight: token.controlHeightSM,\n multipleSelectItemHeight: token.multipleItemHeightSM,\n borderRadius: token.borderRadiusSM,\n borderRadiusSM: token.borderRadiusXS\n });\n const largeToken = mergeToken(token, {\n fontSize: token.fontSizeLG,\n selectHeight: token.controlHeightLG,\n multipleSelectItemHeight: token.multipleItemHeightLG,\n borderRadius: token.borderRadiusLG,\n borderRadiusSM: token.borderRadius\n });\n return [genSizeStyle(token),\n // ======================== Small ========================\n genSizeStyle(smallToken, 'sm'),\n // Padding\n {\n [`${componentCls}-multiple${componentCls}-sm`]: {\n [`${componentCls}-selection-placeholder`]: {\n insetInline: token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal()\n },\n // https://github.com/ant-design/ant-design/issues/29559\n [`${componentCls}-selection-search`]: {\n marginInlineStart: 2 // Magic Number\n }\n }\n },\n // ======================== Large ========================\n genSizeStyle(largeToken, 'lg')];\n};\nexport default genMultipleStyle;","'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","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","\"use strict\";var _e=Object.create;var Y=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var We=Object.getPrototypeOf,Ue=Object.prototype.hasOwnProperty;var qe=(e,t)=>{for(var o in t)Y(e,o,{get:t[o],enumerable:!0})},le=(e,t,o,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let r of Ve(t))!Ue.call(e,r)&&r!==o&&Y(e,r,{get:()=>t[r],enumerable:!(n=Ie(t,r))||n.enumerable});return e};var Le=(e,t,o)=>(o=e!=null?_e(We(e)):{},le(t||!e||!e.__esModule?Y(o,\"default\",{value:e,enumerable:!0}):o,e)),je=e=>le(Y({},\"__esModule\",{value:!0}),e);var kt={};qe(kt,{Provider:()=>Ee,ReactReduxContext:()=>f,batch:()=>Et,connect:()=>Re,createDispatchHook:()=>pe,createSelectorHook:()=>ae,createStoreHook:()=>j,shallowEqual:()=>R,useDispatch:()=>ke,useSelector:()=>Ae,useStore:()=>G});module.exports=je(kt);var p=Le(require(\"react\"));var $e=p.version.startsWith(\"19\"),Ye=Symbol.for($e?\"react.transitional.element\":\"react.element\"),He=Symbol.for(\"react.portal\"),Be=Symbol.for(\"react.fragment\"),ze=Symbol.for(\"react.strict_mode\"),Ke=Symbol.for(\"react.profiler\"),Ge=Symbol.for(\"react.consumer\"),Je=Symbol.for(\"react.context\"),Te=Symbol.for(\"react.forward_ref\"),Xe=Symbol.for(\"react.suspense\"),Ze=Symbol.for(\"react.suspense_list\"),re=Symbol.for(\"react.memo\"),Qe=Symbol.for(\"react.lazy\");var fe=Te,Se=re;function et(e){if(typeof e==\"object\"&&e!==null){let{$$typeof:t}=e;switch(t){case Ye:switch(e=e.type,e){case Be:case Ke:case ze:case Xe:case Ze:return e;default:switch(e=e&&e.$$typeof,e){case Je:case Te:case Qe:case re:return e;case Ge:return e;default:return t}}case He:return t}}}function ye(e){return et(e)===re}function tt(e,t,o,n,{areStatesEqual:r,areOwnPropsEqual:s,areStatePropsEqual:i}){let u=!1,a,c,d,P,l;function x(S,m){return a=S,c=m,d=e(a,c),P=t(n,c),l=o(d,P,c),u=!0,l}function y(){return d=e(a,c),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function M(){return e.dependsOnOwnProps&&(d=e(a,c)),t.dependsOnOwnProps&&(P=t(n,c)),l=o(d,P,c),l}function T(){let S=e(a,c),m=!i(S,d);return d=S,m&&(l=o(d,P,c)),l}function w(S,m){let C=!s(m,c),v=!r(S,a,m,c);return a=S,c=m,C&&v?y():C?M():v?T():l}return function(m,C){return u?w(m,C):x(m,C)}}function ne(e,{initMapStateToProps:t,initMapDispatchToProps:o,initMergeProps:n,...r}){let s=t(e,r),i=o(e,r),u=n(e,r);return tt(s,i,u,e,r)}function se(e,t){let o={};for(let n in e){let r=e[n];typeof r==\"function\"&&(o[n]=(...s)=>t(r(...s)))}return o}function U(e){return function(o){let n=e(o);function r(){return n}return r.dependsOnOwnProps=!1,r}}function me(e){return e.dependsOnOwnProps?!!e.dependsOnOwnProps:e.length!==1}function H(e,t){return function(n,{displayName:r}){let s=function(u,a){return s.dependsOnOwnProps?s.mapToProps(u,a):s.mapToProps(u,void 0)};return s.dependsOnOwnProps=!0,s.mapToProps=function(u,a){s.mapToProps=e,s.dependsOnOwnProps=me(e);let c=s(u,a);return typeof c==\"function\"&&(s.mapToProps=c,s.dependsOnOwnProps=me(c),c=s(u,a)),c},s}}function F(e,t){return(o,n)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${n.wrappedComponentName}.`)}}function he(e){return e&&typeof e==\"object\"?U(t=>se(e,t)):e?typeof e==\"function\"?H(e,\"mapDispatchToProps\"):F(e,\"mapDispatchToProps\"):U(t=>({dispatch:t}))}function we(e){return e?typeof e==\"function\"?H(e,\"mapStateToProps\"):F(e,\"mapStateToProps\"):U(()=>({}))}function ot(e,t,o){return{...o,...e,...t}}function rt(e){return function(o,{displayName:n,areMergedPropsEqual:r}){let s=!1,i;return function(a,c,d){let P=e(a,c,d);return s?r(P,i)||(i=P):(s=!0,i=P),i}}}function xe(e){return e?typeof e==\"function\"?rt(e):F(e,\"mergeProps\"):()=>ot}function B(e){e()}function nt(){let e=null,t=null;return{clear(){e=null,t=null},notify(){B(()=>{let o=e;for(;o;)o.callback(),o=o.next})},get(){let o=[],n=e;for(;n;)o.push(n),n=n.next;return o},subscribe(o){let n=!0,r=t={callback:o,next:null,prev:t};return r.prev?r.prev.next=r:e=r,function(){!n||e===null||(n=!1,r.next?r.next.prev=r.prev:t=r.prev,r.prev?r.prev.next=r.next:e=r.next)}}}}var Ce={notify(){},get:()=>[]};function z(e,t){let o,n=Ce,r=0,s=!1;function i(M){d();let T=n.subscribe(M),w=!1;return()=>{w||(w=!0,T(),P())}}function u(){n.notify()}function a(){y.onStateChange&&y.onStateChange()}function c(){return s}function d(){r++,o||(o=t?t.addNestedSub(a):e.subscribe(a),n=nt())}function P(){r--,o&&r===0&&(o(),o=void 0,n.clear(),n=Ce)}function l(){s||(s=!0,d())}function x(){s&&(s=!1,P())}let y={addNestedSub:i,notifyNestedSubs:u,handleChangeWrapper:a,isSubscribed:c,trySubscribe:l,tryUnsubscribe:x,getListeners:()=>n};return y}var st=()=>typeof window<\"u\"&&typeof window.document<\"u\"&&typeof window.document.createElement<\"u\",pt=st(),at=()=>typeof navigator<\"u\"&&navigator.product===\"ReactNative\",ct=at(),it=()=>pt||ct?p.useLayoutEffect:p.useEffect,A=it();function Oe(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function R(e,t){if(Oe(e,t))return!0;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return!1;let o=Object.keys(e),n=Object.keys(t);if(o.length!==n.length)return!1;for(let r=0;r<o.length;r++)if(!Object.prototype.hasOwnProperty.call(t,o[r])||!Oe(e[o[r]],t[o[r]]))return!1;return!0}var ut={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Pt={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},dt={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Me={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},lt={[fe]:dt,[Se]:Me};function De(e){return ye(e)?Me:lt[e.$$typeof]||ut}var Tt=Object.defineProperty,ft=Object.getOwnPropertyNames,be=Object.getOwnPropertySymbols,St=Object.getOwnPropertyDescriptor,yt=Object.getPrototypeOf,ge=Object.prototype;function q(e,t){if(typeof t!=\"string\"){if(ge){let s=yt(t);s&&s!==ge&&q(e,s)}let o=ft(t);be&&(o=o.concat(be(t)));let n=De(e),r=De(t);for(let s=0;s<o.length;++s){let i=o[s];if(!Pt[i]&&!(r&&r[i])&&!(n&&n[i])){let u=St(t,i);try{Tt(e,i,u)}catch{}}}}return e}var mt=Symbol.for(\"react-redux-context\"),ht=typeof globalThis<\"u\"?globalThis:{};function wt(){if(!p.createContext)return{};let e=ht[mt]??=new Map,t=e.get(p.createContext);return t||(t=p.createContext(null),e.set(p.createContext,t)),t}var f=wt();var xt=[null,null];function Ct(e,t,o){A(()=>e(...t),o)}function Ot(e,t,o,n,r,s){e.current=n,o.current=!1,r.current&&(r.current=null,s())}function Dt(e,t,o,n,r,s,i,u,a,c,d){if(!e)return()=>{};let P=!1,l=null,x=()=>{if(P||!u.current)return;let M=t.getState(),T,w;try{T=n(M,r.current)}catch(S){w=S,l=S}w||(l=null),T===s.current?i.current||c():(s.current=T,a.current=T,i.current=!0,d())};return o.onStateChange=x,o.trySubscribe(),x(),()=>{if(P=!0,o.tryUnsubscribe(),o.onStateChange=null,l)throw l}}function bt(e,t){return e===t}function gt(e,t,o,{pure:n,areStatesEqual:r=bt,areOwnPropsEqual:s=R,areStatePropsEqual:i=R,areMergedPropsEqual:u=R,forwardRef:a=!1,context:c=f}={}){let d=c,P=we(e),l=he(t),x=xe(o),y=!!e;return T=>{let w=T.displayName||T.name||\"Component\",S=`Connect(${w})`,m={shouldHandleStateChanges:y,displayName:S,wrappedComponentName:w,WrappedComponent:T,initMapStateToProps:P,initMapDispatchToProps:l,initMergeProps:x,areStatesEqual:r,areStatePropsEqual:i,areOwnPropsEqual:s,areMergedPropsEqual:u};function C(O){let[E,J,b]=p.useMemo(()=>{let{reactReduxForwardedRef:h,...k}=O;return[O.context,h,k]},[O]),_=p.useMemo(()=>{let h=d;return E?.Consumer,h},[E,d]),D=p.useContext(_),I=!!O.store&&!!O.store.getState&&!!O.store.dispatch,ve=!!D&&!!D.store,g=I?O.store:D.store,ce=ve?D.getServerState:g.getState,X=p.useMemo(()=>ne(g.dispatch,m),[g]),[V,ie]=p.useMemo(()=>{if(!y)return xt;let h=z(g,I?void 0:D.subscription),k=h.notifyNestedSubs.bind(h);return[h,k]},[g,I,D]),ue=p.useMemo(()=>I?D:{...D,subscription:V},[I,D,V]),Z=p.useRef(void 0),Q=p.useRef(b),W=p.useRef(void 0),Pe=p.useRef(!1),ee=p.useRef(!1),te=p.useRef(void 0);A(()=>(ee.current=!0,()=>{ee.current=!1}),[]);let de=p.useMemo(()=>()=>W.current&&b===Q.current?W.current:X(g.getState(),b),[g,b]),Ne=p.useMemo(()=>k=>V?Dt(y,g,V,X,Q,Z,Pe,ee,W,ie,k):()=>{},[V]);Ct(Ot,[Q,Z,Pe,b,W,ie]);let $;try{$=p.useSyncExternalStore(Ne,de,ce?()=>X(ce(),b):de)}catch(h){throw te.current&&(h.message+=`\nThe error may be correlated with this previous error:\n${te.current.stack}\n\n`),h}A(()=>{te.current=void 0,W.current=void 0,Z.current=$});let oe=p.useMemo(()=>p.createElement(T,{...$,ref:J}),[J,T,$]);return p.useMemo(()=>y?p.createElement(_.Provider,{value:ue},oe):oe,[_,oe,ue])}let N=p.memo(C);if(N.WrappedComponent=T,N.displayName=C.displayName=S,a){let E=p.forwardRef(function(b,_){return p.createElement(N,{...b,reactReduxForwardedRef:_})});return E.displayName=S,E.WrappedComponent=T,q(E,T)}return q(N,T)}}var Re=gt;function Mt(e){let{children:t,context:o,serverState:n,store:r}=e,s=p.useMemo(()=>{let a=z(r);return{store:r,subscription:a,getServerState:n?()=>n:void 0}},[r,n]),i=p.useMemo(()=>r.getState(),[r]);return A(()=>{let{subscription:a}=s;return a.onStateChange=a.notifyNestedSubs,a.trySubscribe(),i!==r.getState()&&a.notifyNestedSubs(),()=>{a.tryUnsubscribe(),a.onStateChange=void 0}},[s,i]),p.createElement((o||f).Provider,{value:s},t)}var Ee=Mt;function L(e=f){return function(){return p.useContext(e)}}var K=L();function j(e=f){let t=e===f?K:L(e),o=()=>{let{store:n}=t();return n};return Object.assign(o,{withTypes:()=>o}),o}var G=j();function pe(e=f){let t=e===f?G:j(e),o=()=>t().dispatch;return Object.assign(o,{withTypes:()=>o}),o}var ke=pe();var Fe=require(\"use-sync-external-store/with-selector.js\");var Rt=(e,t)=>e===t;function ae(e=f){let t=e===f?K:L(e),o=(n,r={})=>{let{equalityFn:s=Rt}=typeof r==\"function\"?{equalityFn:r}:r,i=t(),{store:u,subscription:a,getServerState:c}=i,d=p.useRef(!0),P=p.useCallback({[n.name](x){let y=n(x);if(0){if((m===\"always\"||m===\"once\"&&d.current)&&!s(y,C))try{}catch(N){}if((S===\"always\"||S===\"once\"&&d.current)&&y===x)try{}catch(v){}}return y}}[n.name],[n]),l=(0,Fe.useSyncExternalStoreWithSelector)(a.addNestedSub,u.getState,c||u.getState,P,s);return p.useDebugValue(l),l};return Object.assign(o,{withTypes:()=>o}),o}var Ae=ae();var Et=B;0&&(module.exports={Provider,ReactReduxContext,batch,connect,createDispatchHook,createSelectorHook,createStoreHook,shallowEqual,useDispatch,useSelector,useStore});\n//# sourceMappingURL=react-redux.production.min.cjs.map","import * as Sentry from '@sentry/react';\n\nconst audioContext = window.AudioContext ? new window.AudioContext() : null;\n\nconst WEB_AUDIO_INTERACTION_EVENTS = ['click', 'touchstart', 'keydown'];\n\nasync function onInteractionHandler() {\n if (audioContext && audioContext.state === 'suspended') {\n try {\n await audioContext.resume();\n // Remove the event listeners to prevent this code from running multiple times\n WEB_AUDIO_INTERACTION_EVENTS.forEach((event) => {\n document.removeEventListener(event, onInteractionHandler);\n });\n } catch (error) {\n console.error('Error trying to resume the audioContext:', error);\n }\n }\n}\n\n// This is the enumeration of available audio files.\nconst audioFiles: OP.Audio.AudioFileDictionary = {};\n\n// This is the enumeration of possible audio layers.\n// Audio layers are groups of sounds. An audio layer has its own volume setting, and when playing a sound,\n// it can replace all other sounds currently playing on that layer or skip playing if the same\n// sound is already playing on that layer.\n// See: WebAudio.adjustLayerVolume, PlayOptions.replaceAll and PlayOptions.skipIfAlreadyPlaying\nconst audioLayers: OP.Audio.AudioLayerDictionary = {};\n\nconst getAudioFileBuffer = async (url: string) => {\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Error retrieving audio data: ${response.status} ${response.statusText}`,\n );\n }\n\n return response.arrayBuffer();\n } catch (err) {\n Sentry.captureException(err);\n throw err;\n }\n};\n\nconst play = (\n { fileName }: OP.Audio.SoundEffect,\n layer: string,\n options: OP.Audio.PlayOptions,\n buffer: AudioBuffer,\n pausedAt: number = 0,\n) => {\n // suspended audioContext cannot play sound\n if (!audioContext || audioContext.state === 'suspended') {\n return;\n }\n\n const bufferSource = audioContext.createBufferSource();\n bufferSource.buffer = buffer;\n if (options.loop) {\n bufferSource.loop = true;\n }\n\n const source = audioContext.createGain();\n if (typeof options.volume === 'number' && !isNaN(options.volume)) {\n source.gain.setValueAtTime(options.volume, audioContext.currentTime);\n }\n\n const onEnded = () => {\n bufferSource.disconnect(source);\n source.disconnect(audioLayers[layer].volumeNode);\n delete audioLayers[layer].sources[fileName];\n };\n bufferSource.addEventListener('ended', onEnded, false);\n\n bufferSource.connect(source);\n source.connect(audioLayers[layer].volumeNode);\n\n bufferSource.start(0, pausedAt);\n audioLayers[layer].sources[fileName] = {\n source,\n bufferSource,\n pausedAt: 0,\n startedAt: audioContext.currentTime - pausedAt,\n onEnded,\n };\n};\n\nconst createLayerIfNeeded = (layer: string) => {\n if (!audioContext || audioLayers[layer]) {\n return;\n }\n\n const volumeNode = audioContext.createGain();\n\n audioLayers[layer] = {\n volumeNode,\n sources: {},\n };\n\n volumeNode.connect(audioContext.destination);\n};\n\nconst adjustLayerVolume = (layer: string, volume: number) => {\n if (!audioContext) {\n return;\n }\n\n audioLayers[layer].volumeNode.gain.setValueAtTime(\n volume,\n audioContext.currentTime,\n );\n};\n\nconst adjustVolume = (\n { fileName }: OP.Audio.SoundEffect,\n layer: string,\n volume: number,\n) => {\n if (!audioContext) {\n return;\n }\n\n const sourceInfo = audioLayers[layer].sources[fileName];\n if (sourceInfo && sourceInfo.source) {\n sourceInfo.source.gain.setValueAtTime(volume, audioContext.currentTime);\n }\n};\n\nconst getEffectivePlayOptions = (\n options: OP.Audio.PlayOptions,\n): OP.Audio.PlayOptions => ({\n loop: false,\n volume: 1,\n ...(options ?? {}),\n});\n\n// Note: New mp3 files added should be added to /app/assets/audio\n// If a new file extension/format is used, webpack.loader.rules.js must be updated to include it!\nexport const SoundEffects: OP.Audio.SoundEffectLibrary = {\n ALARM_NOTIFICATION: {\n fileName: 'alarm-notification.mp3',\n },\n INTERCOM_NOTIFICATION: {\n fileName: 'intercom-notification.mp3',\n },\n};\n\nexport const Layers: OP.Audio.LayerLibrary = {\n ALARM_NOTIFICATIONS: 'ALARM_NOTIFICATIONS',\n INTERCOM_NOTIFICATIONS: 'INTERCOM_NOTIFICATIONS',\n};\n\nexport class WebAudio {\n static initialize() {\n if (!audioContext) {\n return;\n }\n\n // Add event listeners for the first user interaction\n WEB_AUDIO_INTERACTION_EVENTS.forEach((event) => {\n document.addEventListener(event, onInteractionHandler);\n });\n\n Object.values(SoundEffects).forEach(async ({ fileName }) => {\n try {\n const audioData = await getAudioFileBuffer(`/assets/audio/${fileName}`);\n\n // Note: This is intentionally assigning a promise, so no await here! That way we can try/catch await this value later.\n audioFiles[fileName] = audioContext.decodeAudioData(audioData);\n } catch (e) {\n // If getAudioFileBuffer fails, store the error as a rejected promise so we can still await and re-catch this error later.\n audioFiles[fileName] = Promise.reject(e);\n }\n });\n }\n\n static async play(\n soundEffect: OP.Audio.SoundEffect,\n layer: string,\n options: OP.Audio.PlayOptions,\n ) {\n const { fileName } = soundEffect;\n if (!audioFiles[fileName]) {\n console.error(`WebAudio: Cannot play unknown audio file: ${fileName}`);\n return;\n }\n\n let buffer = null;\n try {\n buffer = await audioFiles[fileName];\n } catch {\n // Ignore, this effect was unable to be fetched and/or decoded for this session\n return;\n }\n\n createLayerIfNeeded(layer);\n\n const effectiveOptions = getEffectivePlayOptions(options);\n\n if (effectiveOptions.replaceAll) {\n // Stop all sounds playing on this layer since we are replacing them all\n Object.keys(audioLayers[layer].sources)\n .filter((sourceName) => sourceName !== fileName)\n .forEach((sourceName) =>\n WebAudio.stop({ fileName: sourceName }, layer),\n );\n\n if (\n audioLayers[layer].sources[fileName] &&\n audioLayers[layer].sources[fileName].source === null\n ) {\n // This is actually paused, so let's resume it!\n await WebAudio.resume(soundEffect, layer, effectiveOptions, buffer);\n return;\n }\n } else if (effectiveOptions.skipIfAlreadyPlaying) {\n const sourceInfo = audioLayers[layer].sources[fileName];\n if (sourceInfo && sourceInfo.source && sourceInfo.bufferSource) {\n // Ignore, it is already playing!\n return;\n }\n }\n\n play(soundEffect, layer, effectiveOptions, buffer);\n }\n\n static pause({ fileName }: OP.Audio.SoundEffect, layer: string) {\n if (!audioContext) {\n return;\n }\n\n if (!audioFiles[fileName]) {\n console.error(`WebAudio: Cannot pause unknown audio file: ${fileName}`);\n return;\n }\n\n createLayerIfNeeded(layer);\n\n const sourceInfo = audioLayers[layer].sources[fileName];\n if (!sourceInfo || !sourceInfo.source || !sourceInfo.bufferSource) {\n // Ignore, nothing to pause!\n return;\n }\n\n sourceInfo.source.removeEventListener('ended', sourceInfo.onEnded);\n sourceInfo.pausedAt = audioContext.currentTime - sourceInfo.startedAt;\n sourceInfo.bufferSource.stop();\n sourceInfo.bufferSource.disconnect(sourceInfo.source);\n sourceInfo.bufferSource = null;\n sourceInfo.source.disconnect(audioLayers[layer].volumeNode);\n sourceInfo.source = null;\n sourceInfo.startedAt = 0;\n }\n\n static async resume(\n soundEffect: OP.Audio.SoundEffect,\n layer: string,\n options: OP.Audio.PlayOptions,\n buffer?: AudioBuffer,\n ) {\n if (!audioContext) {\n return;\n }\n\n const { fileName } = soundEffect;\n if (!audioFiles[fileName]) {\n console.error(`WebAudio: Cannot resume unknown audio file: ${fileName}`);\n return;\n }\n\n let effectiveBuffer;\n try {\n effectiveBuffer = buffer || (await audioFiles[fileName]);\n } catch {\n // Ignore, this effect was unable to be fetched and/or decoded for this session\n return;\n }\n\n createLayerIfNeeded(layer);\n\n const sourceInfo = audioLayers[layer].sources[fileName];\n if (!sourceInfo || sourceInfo.source) {\n // Ignore, nothing to resume or already playing!\n return;\n }\n\n const effectiveOptions = getEffectivePlayOptions(options);\n\n play(\n soundEffect,\n layer,\n effectiveOptions,\n effectiveBuffer,\n sourceInfo.pausedAt,\n );\n }\n\n static stop({ fileName }: OP.Audio.SoundEffect, layer: string) {\n if (!audioContext) {\n return;\n }\n\n if (!audioFiles[fileName]) {\n console.error(`WebAudio: Cannot stop unknown audio file: ${fileName}`);\n return;\n }\n\n createLayerIfNeeded(layer);\n\n const sourceInfo = audioLayers[layer].sources[fileName];\n if (sourceInfo && sourceInfo.bufferSource) {\n sourceInfo.bufferSource.stop();\n }\n }\n\n static adjustLayerVolume(layer: string, volume: number) {\n if (!audioContext) {\n return;\n }\n\n createLayerIfNeeded(layer);\n\n adjustLayerVolume(layer, volume);\n }\n\n static adjustVolume(\n soundEffect: OP.Audio.SoundEffect,\n layer: string,\n volume: number,\n ) {\n if (!audioContext) {\n return;\n }\n\n createLayerIfNeeded(layer);\n\n adjustVolume(soundEffect, layer, volume);\n }\n}\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","module.exports = __webpack_public_path__ + \"c8230f96396f0378d032dce2be3dce66.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"checked\", \"disabled\", \"defaultChecked\", \"type\", \"title\", \"onChange\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nexport var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,\n className = props.className,\n style = props.style,\n checked = props.checked,\n disabled = props.disabled,\n _props$defaultChecked = props.defaultChecked,\n defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,\n _props$type = props.type,\n type = _props$type === void 0 ? 'checkbox' : _props$type,\n title = props.title,\n onChange = props.onChange,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputRef = useRef(null);\n var holderRef = useRef(null);\n var _useMergedState = useMergedState(defaultChecked, {\n value: checked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return {\n focus: function focus(options) {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus(options);\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n },\n input: inputRef.current,\n nativeElement: holderRef.current\n };\n });\n var classString = classNames(prefixCls, className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-checked\"), rawValue), \"\".concat(prefixCls, \"-disabled\"), disabled));\n var handleChange = function handleChange(e) {\n if (disabled) {\n return;\n }\n if (!('checked' in props)) {\n setRawValue(e.target.checked);\n }\n onChange === null || onChange === void 0 || onChange({\n target: _objectSpread(_objectSpread({}, props), {}, {\n type: type,\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n title: title,\n style: style,\n ref: holderRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({}, inputProps, {\n className: \"\".concat(prefixCls, \"-input\"),\n ref: inputRef,\n onChange: handleChange,\n disabled: disabled,\n checked: !!rawValue,\n type: type\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n});\nexport default Checkbox;","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","module.exports = __webpack_public_path__ + \"dc83a73f0eb89665520bbb6672dfa3cb.js\";","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport React from 'react';\nvar Handler = function Handler(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 'default' : _ref$size,\n color = _ref.color,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-handler\"), _defineProperty({}, \"\".concat(prefixCls, \"-handler-sm\"), size === 'small')),\n style: {\n backgroundColor: color\n }\n });\n};\nexport default Handler;","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","module.exports = __webpack_public_path__ + \"029f5ee0420883bc3c38a7f143fd174a.js\";","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","module.exports = __webpack_public_path__ + \"58aab872dbdb5e1607076e1935130e03.js\";","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","export function supportBigInt() {\n return typeof BigInt === 'function';\n}","import { supportBigInt } from \"./supportUtil\";\nexport function isEmpty(value) {\n return !value && value !== 0 && !Number.isNaN(value) || !String(value).trim();\n}\n\n/**\n * Format string number to readable number\n */\nexport function trimNumber(numStr) {\n var str = numStr.trim();\n var negative = str.startsWith('-');\n if (negative) {\n str = str.slice(1);\n }\n str = str\n // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`\n .replace(/(\\.\\d*[^0])0*$/, '$1')\n // Remove useless decimal. `1.` => `1`\n .replace(/\\.0*$/, '')\n // Remove integer 0. `0001` => `1`, 000.1' => `.1`\n .replace(/^0+/, '');\n if (str.startsWith('.')) {\n str = \"0\".concat(str);\n }\n var trimStr = str || '0';\n var splitNumber = trimStr.split('.');\n var integerStr = splitNumber[0] || '0';\n var decimalStr = splitNumber[1] || '0';\n if (integerStr === '0' && decimalStr === '0') {\n negative = false;\n }\n var negativeStr = negative ? '-' : '';\n return {\n negative: negative,\n negativeStr: negativeStr,\n trimStr: trimStr,\n integerStr: integerStr,\n decimalStr: decimalStr,\n fullStr: \"\".concat(negativeStr).concat(trimStr)\n };\n}\nexport function isE(number) {\n var str = String(number);\n return !Number.isNaN(Number(str)) && str.includes('e');\n}\n\n/**\n * [Legacy] Convert 1e-9 to 0.000000001.\n * This may lose some precision if user really want 1e-9.\n */\nexport function getNumberPrecision(number) {\n var numStr = String(number);\n if (isE(number)) {\n var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));\n var decimalMatch = numStr.match(/\\.(\\d+)/);\n if (decimalMatch !== null && decimalMatch !== void 0 && decimalMatch[1]) {\n precision += decimalMatch[1].length;\n }\n return precision;\n }\n return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;\n}\n\n/**\n * Convert number (includes scientific notation) to -xxx.yyy format\n */\nexport function num2str(number) {\n var numStr = String(number);\n if (isE(number)) {\n if (number > Number.MAX_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);\n }\n numStr = number.toFixed(getNumberPrecision(numStr));\n }\n return trimNumber(numStr).fullStr;\n}\nexport function validateNumber(num) {\n if (typeof num === 'number') {\n return !Number.isNaN(num);\n }\n\n // Empty\n if (!num) {\n return false;\n }\n return (\n // Normal type: 11.28\n /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(num) ||\n // Pre-number: 1.\n /^\\s*-?\\d+\\.\\s*$/.test(num) ||\n // Post-number: .1\n /^\\s*-?\\.\\d+\\s*$/.test(num)\n );\n}","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 { isE, isEmpty, num2str, trimNumber, validateNumber } from \"./numberUtil\";\nvar BigIntDecimal = /*#__PURE__*/function () {\n /** BigInt will convert `0009` to `9`. We need record the len of decimal */\n\n function BigIntDecimal(value) {\n _classCallCheck(this, BigIntDecimal);\n _defineProperty(this, \"origin\", '');\n _defineProperty(this, \"negative\", void 0);\n _defineProperty(this, \"integer\", void 0);\n _defineProperty(this, \"decimal\", void 0);\n _defineProperty(this, \"decimalLen\", void 0);\n _defineProperty(this, \"empty\", void 0);\n _defineProperty(this, \"nan\", void 0);\n if (isEmpty(value)) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n\n // Act like Number convert\n if (value === '-' || Number.isNaN(value)) {\n this.nan = true;\n return;\n }\n var mergedValue = value;\n\n // We need convert back to Number since it require `toFixed` to handle this\n if (isE(mergedValue)) {\n mergedValue = Number(mergedValue);\n }\n mergedValue = typeof mergedValue === 'string' ? mergedValue : num2str(mergedValue);\n if (validateNumber(mergedValue)) {\n var trimRet = trimNumber(mergedValue);\n this.negative = trimRet.negative;\n var numbers = trimRet.trimStr.split('.');\n this.integer = BigInt(numbers[0]);\n var decimalStr = numbers[1] || '0';\n this.decimal = BigInt(decimalStr);\n this.decimalLen = decimalStr.length;\n } else {\n this.nan = true;\n }\n }\n _createClass(BigIntDecimal, [{\n key: \"getMark\",\n value: function getMark() {\n return this.negative ? '-' : '';\n }\n }, {\n key: \"getIntegerStr\",\n value: function getIntegerStr() {\n return this.integer.toString();\n }\n\n /**\n * @private get decimal string\n */\n }, {\n key: \"getDecimalStr\",\n value: function getDecimalStr() {\n return this.decimal.toString().padStart(this.decimalLen, '0');\n }\n\n /**\n * @private Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000\n * This is used for add function only.\n */\n }, {\n key: \"alignDecimal\",\n value: function alignDecimal(decimalLength) {\n var str = \"\".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));\n return BigInt(str);\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var clone = new BigIntDecimal(this.toString());\n clone.negative = !clone.negative;\n return clone;\n }\n }, {\n key: \"cal\",\n value: function cal(offset, calculator, calDecimalLen) {\n var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);\n var myAlignedDecimal = this.alignDecimal(maxDecimalLength);\n var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);\n var valueStr = calculator(myAlignedDecimal, offsetAlignedDecimal).toString();\n var nextDecimalLength = calDecimalLen(maxDecimalLength);\n\n // We need fill string length back to `maxDecimalLength` to avoid parser failed\n var _trimNumber = trimNumber(valueStr),\n negativeStr = _trimNumber.negativeStr,\n trimStr = _trimNumber.trimStr;\n var hydrateValueStr = \"\".concat(negativeStr).concat(trimStr.padStart(nextDecimalLength + 1, '0'));\n return new BigIntDecimal(\"\".concat(hydrateValueStr.slice(0, -nextDecimalLength), \".\").concat(hydrateValueStr.slice(-nextDecimalLength)));\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new BigIntDecimal(value);\n }\n var offset = new BigIntDecimal(value);\n if (offset.isInvalidate()) {\n return this;\n }\n return this.cal(offset, function (num1, num2) {\n return num1 + num2;\n }, function (len) {\n return len;\n });\n }\n }, {\n key: \"multi\",\n value: function multi(value) {\n var target = new BigIntDecimal(value);\n if (this.isInvalidate() || target.isInvalidate()) {\n return new BigIntDecimal(NaN);\n }\n return this.cal(target, function (num1, num2) {\n return num1 * num2;\n }, function (len) {\n return len * 2;\n });\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return this.nan;\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n if (this.isNaN()) {\n return NaN;\n }\n return Number(this.toString());\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return trimNumber(\"\".concat(this.getMark()).concat(this.getIntegerStr(), \".\").concat(this.getDecimalStr())).fullStr;\n }\n }]);\n return BigIntDecimal;\n}();\nexport { BigIntDecimal as default };","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 { getNumberPrecision, isEmpty, num2str } from \"./numberUtil\";\n\n/**\n * We can remove this when IE not support anymore\n */\nvar NumberDecimal = /*#__PURE__*/function () {\n function NumberDecimal(value) {\n _classCallCheck(this, NumberDecimal);\n _defineProperty(this, \"origin\", '');\n _defineProperty(this, \"number\", void 0);\n _defineProperty(this, \"empty\", void 0);\n if (isEmpty(value)) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n this.number = Number(value);\n }\n _createClass(NumberDecimal, [{\n key: \"negate\",\n value: function negate() {\n return new NumberDecimal(-this.toNumber());\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new NumberDecimal(value);\n }\n var target = Number(value);\n if (Number.isNaN(target)) {\n return this;\n }\n var number = this.number + target;\n\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"multi\",\n value: function multi(value) {\n var target = Number(value);\n if (this.isInvalidate() || Number.isNaN(target)) {\n return new NumberDecimal(NaN);\n }\n var number = this.number * target;\n\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.number);\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n return this.number;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return num2str(this.number);\n }\n }]);\n return NumberDecimal;\n}();\nexport { NumberDecimal as default };","/* eslint-disable max-classes-per-file */\n\nimport BigIntDecimal from \"./BigIntDecimal\";\nimport NumberDecimal from \"./NumberDecimal\";\nimport { trimNumber } from \"./numberUtil\";\nimport { supportBigInt } from \"./supportUtil\";\n\n// Still support origin export\nexport { NumberDecimal, BigIntDecimal };\nexport default function getMiniDecimal(value) {\n // We use BigInt here.\n // Will fallback to Number if not support.\n if (supportBigInt()) {\n return new BigIntDecimal(value);\n }\n return new NumberDecimal(value);\n}\n\n/**\n * Align the logic of toFixed to around like 1.5 => 2.\n * If set `cutOnly`, will just remove the over decimal part.\n */\nexport function toFixed(numStr, separatorStr, precision) {\n var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (numStr === '') {\n return '';\n }\n var _trimNumber = trimNumber(numStr),\n negativeStr = _trimNumber.negativeStr,\n integerStr = _trimNumber.integerStr,\n decimalStr = _trimNumber.decimalStr;\n var precisionDecimalStr = \"\".concat(separatorStr).concat(decimalStr);\n var numberWithoutDecimal = \"\".concat(negativeStr).concat(integerStr);\n if (precision >= 0) {\n // We will get last + 1 number to check if need advanced number\n var advancedNum = Number(decimalStr[precision]);\n if (advancedNum >= 5 && !cutOnly) {\n var advancedDecimal = getMiniDecimal(numStr).add(\"\".concat(negativeStr, \"0.\").concat('0'.repeat(precision)).concat(10 - advancedNum));\n return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);\n }\n if (precision === 0) {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));\n }\n if (precisionDecimalStr === '.0') {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(precisionDecimalStr);\n}","import getMiniDecimal from \"./MiniDecimal\";\nexport * from \"./MiniDecimal\";\nimport { trimNumber, getNumberPrecision, num2str, validateNumber } from \"./numberUtil\";\nexport { trimNumber, getNumberPrecision, num2str, validateNumber };\nexport default getMiniDecimal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint-disable react/no-unknown-property */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMobile from \"rc-util/es/hooks/useMobile\";\nimport raf from \"rc-util/es/raf\";\n\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\nvar STEP_INTERVAL = 200;\n\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\nvar STEP_DELAY = 600;\nexport default function StepHandler(_ref) {\n var prefixCls = _ref.prefixCls,\n upNode = _ref.upNode,\n downNode = _ref.downNode,\n upDisabled = _ref.upDisabled,\n downDisabled = _ref.downDisabled,\n onStep = _ref.onStep;\n // ======================== Step ========================\n var stepTimeoutRef = React.useRef();\n var frameIds = React.useRef([]);\n var onStepRef = React.useRef();\n onStepRef.current = onStep;\n var onStopStep = function onStopStep() {\n clearTimeout(stepTimeoutRef.current);\n };\n\n // We will interval update step when hold mouse down\n var onStepMouseDown = function onStepMouseDown(e, up) {\n e.preventDefault();\n onStopStep();\n onStepRef.current(up);\n\n // Loop step for interval\n function loopStep() {\n onStepRef.current(up);\n stepTimeoutRef.current = setTimeout(loopStep, STEP_INTERVAL);\n }\n\n // First time press will wait some time to trigger loop step update\n stepTimeoutRef.current = setTimeout(loopStep, STEP_DELAY);\n };\n React.useEffect(function () {\n return function () {\n onStopStep();\n frameIds.current.forEach(function (id) {\n return raf.cancel(id);\n });\n };\n }, []);\n\n // ======================= Render =======================\n var isMobile = useMobile();\n if (isMobile) {\n return null;\n }\n var handlerClassName = \"\".concat(prefixCls, \"-handler\");\n var upClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-up\"), _defineProperty({}, \"\".concat(handlerClassName, \"-up-disabled\"), upDisabled));\n var downClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-down\"), _defineProperty({}, \"\".concat(handlerClassName, \"-down-disabled\"), downDisabled));\n\n // fix: https://github.com/ant-design/ant-design/issues/43088\n // In Safari, When we fire onmousedown and onmouseup events in quick succession, \n // there may be a problem that the onmouseup events are executed first, \n // resulting in a disordered program execution.\n // So, we need to use requestAnimationFrame to ensure that the onmouseup event is executed after the onmousedown event.\n var safeOnStopStep = function safeOnStopStep() {\n return frameIds.current.push(raf(onStopStep));\n };\n var sharedHandlerProps = {\n unselectable: 'on',\n role: 'button',\n onMouseUp: safeOnStopStep,\n onMouseLeave: safeOnStopStep\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(handlerClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, true);\n },\n \"aria-label\": \"Increase Value\",\n \"aria-disabled\": upDisabled,\n className: upClassName\n }), upNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n })), /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, false);\n },\n \"aria-label\": \"Decrease Value\",\n \"aria-disabled\": downDisabled,\n className: downClassName\n }), downNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n })));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState } from 'react';\nimport isMobile from \"../isMobile\";\nimport useLayoutEffect from \"./useLayoutEffect\";\n\n/**\n * Hook to detect if the user is on a mobile device\n * Notice that this hook will only detect the device type in effect, so it will always be false in server side\n */\nvar useMobile = function useMobile() {\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n return mobile;\n};\nexport default useMobile;","import { trimNumber, num2str } from '@rc-component/mini-decimal';\nexport function getDecupleSteps(step) {\n var stepStr = typeof step === 'number' ? num2str(step) : trimNumber(step).fullStr;\n var hasPoint = stepStr.includes('.');\n if (!hasPoint) {\n return step + '0';\n }\n return trimNumber(stepStr.replace(/(\\d)\\.(\\d)/g, '$1$2.')).fullStr;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"min\", \"max\", \"step\", \"defaultValue\", \"value\", \"disabled\", \"readOnly\", \"upHandler\", \"downHandler\", \"keyboard\", \"changeOnWheel\", \"controls\", \"classNames\", \"stringMode\", \"parser\", \"formatter\", \"precision\", \"decimalSeparator\", \"onChange\", \"onInput\", \"onPressEnter\", \"onStep\", \"changeOnBlur\", \"domRef\"],\n _excluded2 = [\"disabled\", \"style\", \"prefixCls\", \"value\", \"prefix\", \"suffix\", \"addonBefore\", \"addonAfter\", \"className\", \"classNames\"];\nimport getMiniDecimal, { getNumberPrecision, num2str, toFixed, validateNumber } from '@rc-component/mini-decimal';\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport proxyObject from \"rc-util/es/proxyObject\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport useCursor from \"./hooks/useCursor\";\nimport StepHandler from \"./StepHandler\";\nimport { getDecupleSteps } from \"./utils/numberUtil\";\nimport { triggerFocus } from \"rc-input/es/utils/commonUtils\";\nimport useFrame from \"./hooks/useFrame\";\n/**\n * We support `stringMode` which need handle correct type when user call in onChange\n * format max or min value\n * 1. if isInvalid return null\n * 2. if precision is undefined, return decimal\n * 3. format with precision\n * I. if max > 0, round down with precision. Example: max= 3.5, precision=0 afterFormat: 3\n * II. if max < 0, round up with precision. Example: max= -3.5, precision=0 afterFormat: -4\n * III. if min > 0, round up with precision. Example: min= 3.5, precision=0 afterFormat: 4\n * IV. if min < 0, round down with precision. Example: max= -3.5, precision=0 afterFormat: -3\n */\nvar getDecimalValue = function getDecimalValue(stringMode, decimalValue) {\n if (stringMode || decimalValue.isEmpty()) {\n return decimalValue.toString();\n }\n return decimalValue.toNumber();\n};\nvar getDecimalIfValidate = function getDecimalIfValidate(value) {\n var decimal = getMiniDecimal(value);\n return decimal.isInvalidate() ? null : decimal;\n};\nvar InternalInputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n min = props.min,\n max = props.max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n defaultValue = props.defaultValue,\n value = props.value,\n disabled = props.disabled,\n readOnly = props.readOnly,\n upHandler = props.upHandler,\n downHandler = props.downHandler,\n keyboard = props.keyboard,\n _props$changeOnWheel = props.changeOnWheel,\n changeOnWheel = _props$changeOnWheel === void 0 ? false : _props$changeOnWheel,\n _props$controls = props.controls,\n controls = _props$controls === void 0 ? true : _props$controls,\n classNames = props.classNames,\n stringMode = props.stringMode,\n parser = props.parser,\n formatter = props.formatter,\n precision = props.precision,\n decimalSeparator = props.decimalSeparator,\n onChange = props.onChange,\n onInput = props.onInput,\n onPressEnter = props.onPressEnter,\n onStep = props.onStep,\n _props$changeOnBlur = props.changeOnBlur,\n changeOnBlur = _props$changeOnBlur === void 0 ? true : _props$changeOnBlur,\n domRef = props.domRef,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputClassName = \"\".concat(prefixCls, \"-input\");\n var inputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focus = _React$useState2[0],\n setFocus = _React$useState2[1];\n var userTypingRef = React.useRef(false);\n var compositionRef = React.useRef(false);\n var shiftKeyRef = React.useRef(false);\n\n // ============================ Value =============================\n // Real value control\n var _React$useState3 = React.useState(function () {\n return getMiniDecimal(value !== null && value !== void 0 ? value : defaultValue);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n decimalValue = _React$useState4[0],\n setDecimalValue = _React$useState4[1];\n function setUncontrolledDecimalValue(newDecimal) {\n if (value === undefined) {\n setDecimalValue(newDecimal);\n }\n }\n\n // ====================== Parser & Formatter ======================\n /**\n * `precision` is used for formatter & onChange.\n * It will auto generate by `value` & `step`.\n * But it will not block user typing.\n *\n * Note: Auto generate `precision` is used for legacy logic.\n * We should remove this since we already support high precision with BigInt.\n *\n * @param number Provide which number should calculate precision\n * @param userTyping Change by user typing\n */\n var getPrecision = React.useCallback(function (numStr, userTyping) {\n if (userTyping) {\n return undefined;\n }\n if (precision >= 0) {\n return precision;\n }\n return Math.max(getNumberPrecision(numStr), getNumberPrecision(step));\n }, [precision, step]);\n\n // >>> Parser\n var mergedParser = React.useCallback(function (num) {\n var numStr = String(num);\n if (parser) {\n return parser(numStr);\n }\n var parsedStr = numStr;\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(decimalSeparator, '.');\n }\n\n // [Legacy] We still support auto convert `$ 123,456` to `123456`\n return parsedStr.replace(/[^\\w.-]+/g, '');\n }, [parser, decimalSeparator]);\n\n // >>> Formatter\n var inputValueRef = React.useRef('');\n var mergedFormatter = React.useCallback(function (number, userTyping) {\n if (formatter) {\n return formatter(number, {\n userTyping: userTyping,\n input: String(inputValueRef.current)\n });\n }\n var str = typeof number === 'number' ? num2str(number) : number;\n\n // User typing will not auto format with precision directly\n if (!userTyping) {\n var mergedPrecision = getPrecision(str, userTyping);\n if (validateNumber(str) && (decimalSeparator || mergedPrecision >= 0)) {\n // Separator\n var separatorStr = decimalSeparator || '.';\n str = toFixed(str, separatorStr, mergedPrecision);\n }\n }\n return str;\n }, [formatter, getPrecision, decimalSeparator]);\n\n // ========================== InputValue ==========================\n /**\n * Input text value control\n *\n * User can not update input content directly. It updates with follow rules by priority:\n * 1. controlled `value` changed\n * * [SPECIAL] Typing like `1.` should not immediately convert to `1`\n * 2. User typing with format (not precision)\n * 3. Blur or Enter trigger revalidate\n */\n var _React$useState5 = React.useState(function () {\n var initValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;\n if (decimalValue.isInvalidate() && ['string', 'number'].includes(_typeof(initValue))) {\n return Number.isNaN(initValue) ? '' : initValue;\n }\n return mergedFormatter(decimalValue.toString(), false);\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inputValue = _React$useState6[0],\n setInternalInputValue = _React$useState6[1];\n inputValueRef.current = inputValue;\n\n // Should always be string\n function setInputValue(newValue, userTyping) {\n setInternalInputValue(mergedFormatter(\n // Invalidate number is sometime passed by external control, we should let it go\n // Otherwise is controlled by internal interactive logic which check by userTyping\n // You can ref 'show limited value when input is not focused' test for more info.\n newValue.isInvalidate() ? newValue.toString(false) : newValue.toString(!userTyping), userTyping));\n }\n\n // >>> Max & Min limit\n var maxDecimal = React.useMemo(function () {\n return getDecimalIfValidate(max);\n }, [max, precision]);\n var minDecimal = React.useMemo(function () {\n return getDecimalIfValidate(min);\n }, [min, precision]);\n var upDisabled = React.useMemo(function () {\n if (!maxDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return maxDecimal.lessEquals(decimalValue);\n }, [maxDecimal, decimalValue]);\n var downDisabled = React.useMemo(function () {\n if (!minDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return decimalValue.lessEquals(minDecimal);\n }, [minDecimal, decimalValue]);\n\n // Cursor controller\n var _useCursor = useCursor(inputRef.current, focus),\n _useCursor2 = _slicedToArray(_useCursor, 2),\n recordCursor = _useCursor2[0],\n restoreCursor = _useCursor2[1];\n\n // ============================= Data =============================\n /**\n * Find target value closet within range.\n * e.g. [11, 28]:\n * 3 => 11\n * 23 => 23\n * 99 => 28\n */\n var getRangeValue = function getRangeValue(target) {\n // target > max\n if (maxDecimal && !target.lessEquals(maxDecimal)) {\n return maxDecimal;\n }\n\n // target < min\n if (minDecimal && !minDecimal.lessEquals(target)) {\n return minDecimal;\n }\n return null;\n };\n\n /**\n * Check value is in [min, max] range\n */\n var isInRange = function isInRange(target) {\n return !getRangeValue(target);\n };\n\n /**\n * Trigger `onChange` if value validated and not equals of origin.\n * Return the value that re-align in range.\n */\n var triggerValueUpdate = function triggerValueUpdate(newValue, userTyping) {\n var updateValue = newValue;\n var isRangeValidate = isInRange(updateValue) || updateValue.isEmpty();\n\n // Skip align value when trigger value is empty.\n // We just trigger onChange(null)\n // This should not block user typing\n if (!updateValue.isEmpty() && !userTyping) {\n // Revert value in range if needed\n updateValue = getRangeValue(updateValue) || updateValue;\n isRangeValidate = true;\n }\n if (!readOnly && !disabled && isRangeValidate) {\n var numStr = updateValue.toString();\n var mergedPrecision = getPrecision(numStr, userTyping);\n if (mergedPrecision >= 0) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision));\n\n // When to fixed. The value may out of min & max range.\n // 4 in [0, 3.8] => 3.8 => 4 (toFixed)\n if (!isInRange(updateValue)) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision, true));\n }\n }\n\n // Trigger event\n if (!updateValue.equals(decimalValue)) {\n setUncontrolledDecimalValue(updateValue);\n onChange === null || onChange === void 0 || onChange(updateValue.isEmpty() ? null : getDecimalValue(stringMode, updateValue));\n\n // Reformat input if value is not controlled\n if (value === undefined) {\n setInputValue(updateValue, userTyping);\n }\n }\n return updateValue;\n }\n return decimalValue;\n };\n\n // ========================== User Input ==========================\n var onNextPromise = useFrame();\n\n // >>> Collect input value\n var collectInputValue = function collectInputValue(inputStr) {\n recordCursor();\n\n // Update inputValue in case input can not parse as number\n // Refresh ref value immediately since it may used by formatter\n inputValueRef.current = inputStr;\n setInternalInputValue(inputStr);\n\n // Parse number\n if (!compositionRef.current) {\n var finalValue = mergedParser(inputStr);\n var finalDecimal = getMiniDecimal(finalValue);\n if (!finalDecimal.isNaN()) {\n triggerValueUpdate(finalDecimal, true);\n }\n }\n\n // Trigger onInput later to let user customize value if they want to handle something after onChange\n onInput === null || onInput === void 0 || onInput(inputStr);\n\n // optimize for chinese input experience\n // https://github.com/ant-design/ant-design/issues/8196\n onNextPromise(function () {\n var nextInputStr = inputStr;\n if (!parser) {\n nextInputStr = inputStr.replace(/。/g, '.');\n }\n if (nextInputStr !== inputStr) {\n collectInputValue(nextInputStr);\n }\n });\n };\n\n // >>> Composition\n var onCompositionStart = function onCompositionStart() {\n compositionRef.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n compositionRef.current = false;\n collectInputValue(inputRef.current.value);\n };\n\n // >>> Input\n var onInternalInput = function onInternalInput(e) {\n collectInputValue(e.target.value);\n };\n\n // ============================= Step =============================\n var onInternalStep = function onInternalStep(up) {\n var _inputRef$current;\n // Ignore step since out of range\n if (up && upDisabled || !up && downDisabled) {\n return;\n }\n\n // Clear typing status since it may be caused by up & down key.\n // We should sync with input value.\n userTypingRef.current = false;\n var stepDecimal = getMiniDecimal(shiftKeyRef.current ? getDecupleSteps(step) : step);\n if (!up) {\n stepDecimal = stepDecimal.negate();\n }\n var target = (decimalValue || getMiniDecimal(0)).add(stepDecimal.toString());\n var updatedValue = triggerValueUpdate(target, false);\n onStep === null || onStep === void 0 || onStep(getDecimalValue(stringMode, updatedValue), {\n offset: shiftKeyRef.current ? getDecupleSteps(step) : step,\n type: up ? 'up' : 'down'\n });\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();\n };\n\n // ============================ Flush =============================\n /**\n * Flush current input content to trigger value change & re-formatter input if needed.\n * This will always flush input value for update.\n * If it's invalidate, will fallback to last validate value.\n */\n var flushInputValue = function flushInputValue(userTyping) {\n var parsedValue = getMiniDecimal(mergedParser(inputValue));\n var formatValue;\n if (!parsedValue.isNaN()) {\n // Only validate value or empty value can be re-fill to inputValue\n // Reassign the formatValue within ranged of trigger control\n formatValue = triggerValueUpdate(parsedValue, userTyping);\n } else {\n formatValue = triggerValueUpdate(decimalValue, userTyping);\n }\n if (value !== undefined) {\n // Reset back with controlled value first\n setInputValue(decimalValue, false);\n } else if (!formatValue.isNaN()) {\n // Reset input back since no validate value\n setInputValue(formatValue, false);\n }\n };\n\n // Solve the issue of the event triggering sequence when entering numbers in chinese input (Safari)\n var onBeforeInput = function onBeforeInput() {\n userTypingRef.current = true;\n };\n var onKeyDown = function onKeyDown(event) {\n var key = event.key,\n shiftKey = event.shiftKey;\n userTypingRef.current = true;\n shiftKeyRef.current = shiftKey;\n if (key === 'Enter') {\n if (!compositionRef.current) {\n userTypingRef.current = false;\n }\n flushInputValue(false);\n onPressEnter === null || onPressEnter === void 0 || onPressEnter(event);\n }\n if (keyboard === false) {\n return;\n }\n\n // Do step\n if (!compositionRef.current && ['Up', 'ArrowUp', 'Down', 'ArrowDown'].includes(key)) {\n onInternalStep(key === 'Up' || key === 'ArrowUp');\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp() {\n userTypingRef.current = false;\n shiftKeyRef.current = false;\n };\n React.useEffect(function () {\n if (changeOnWheel && focus) {\n var onWheel = function onWheel(event) {\n // moving mouse wheel rises wheel event with deltaY < 0\n // scroll value grows from top to bottom, as screen Y coordinate\n onInternalStep(event.deltaY < 0);\n event.preventDefault();\n };\n var input = inputRef.current;\n if (input) {\n // React onWheel is passive and we can't preventDefault() in it.\n // That's why we should subscribe with DOM listener\n // https://stackoverflow.com/questions/63663025/react-onwheel-handler-cant-preventdefault-because-its-a-passive-event-listenev\n input.addEventListener('wheel', onWheel, {\n passive: false\n });\n return function () {\n return input.removeEventListener('wheel', onWheel);\n };\n }\n }\n });\n\n // >>> Focus & Blur\n var onBlur = function onBlur() {\n if (changeOnBlur) {\n flushInputValue(false);\n }\n setFocus(false);\n userTypingRef.current = false;\n };\n\n // ========================== Controlled ==========================\n // Input by precision & formatter\n useLayoutUpdateEffect(function () {\n if (!decimalValue.isInvalidate()) {\n setInputValue(decimalValue, false);\n }\n }, [precision, formatter]);\n\n // Input by value\n useLayoutUpdateEffect(function () {\n var newValue = getMiniDecimal(value);\n setDecimalValue(newValue);\n var currentParsedValue = getMiniDecimal(mergedParser(inputValue));\n\n // When user typing from `1.2` to `1.`, we should not convert to `1` immediately.\n // But let it go if user set `formatter`\n if (!newValue.equals(currentParsedValue) || !userTypingRef.current || formatter) {\n // Update value as effect\n setInputValue(newValue, userTypingRef.current);\n }\n }, [value]);\n\n // ============================ Cursor ============================\n useLayoutUpdateEffect(function () {\n if (formatter) {\n restoreCursor();\n }\n }, [inputValue]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: clsx(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), focus), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-readonly\"), readOnly), \"\".concat(prefixCls, \"-not-a-number\"), decimalValue.isNaN()), \"\".concat(prefixCls, \"-out-of-range\"), !decimalValue.isInvalidate() && !isInRange(decimalValue))),\n style: style,\n onFocus: function onFocus() {\n setFocus(true);\n },\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBeforeInput: onBeforeInput\n }, controls && /*#__PURE__*/React.createElement(StepHandler, {\n prefixCls: prefixCls,\n upNode: upHandler,\n downNode: downHandler,\n upDisabled: upDisabled,\n downDisabled: downDisabled,\n onStep: onInternalStep\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(inputClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: \"off\",\n role: \"spinbutton\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": decimalValue.isInvalidate() ? null : decimalValue.toString(),\n step: step\n }, inputProps, {\n ref: composeRef(inputRef, ref),\n className: inputClassName,\n value: inputValue,\n onChange: onInternalInput,\n disabled: disabled,\n readOnly: readOnly\n }))));\n});\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var disabled = props.disabled,\n style = props.style,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls,\n value = props.value,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n classNames = props.classNames,\n rest = _objectWithoutProperties(props, _excluded2);\n var holderRef = React.useRef(null);\n var inputNumberDomRef = React.useRef(null);\n var inputFocusRef = React.useRef(null);\n var focus = function focus(option) {\n if (inputFocusRef.current) {\n triggerFocus(inputFocusRef.current, option);\n }\n };\n React.useImperativeHandle(ref, function () {\n return proxyObject(inputFocusRef.current, {\n nativeElement: holderRef.current.nativeElement || inputNumberDomRef.current\n });\n });\n return /*#__PURE__*/React.createElement(BaseInput, {\n className: className,\n triggerFocus: focus,\n prefixCls: prefixCls,\n value: value,\n disabled: disabled,\n style: style,\n prefix: prefix,\n suffix: suffix,\n addonAfter: addonAfter,\n addonBefore: addonBefore,\n classNames: classNames,\n components: {\n affixWrapper: 'div',\n groupWrapper: 'div',\n wrapper: 'div',\n groupAddon: 'div'\n },\n ref: holderRef\n }, /*#__PURE__*/React.createElement(InternalInputNumber, _extends({\n prefixCls: prefixCls,\n disabled: disabled,\n ref: inputFocusRef,\n domRef: inputNumberDomRef,\n className: classNames === null || classNames === void 0 ? void 0 : classNames.input\n }, rest)));\n});\nif (process.env.NODE_ENV !== 'production') {\n InputNumber.displayName = 'InputNumber';\n}\nexport default InputNumber;","import { useRef } from 'react';\nimport warning from \"rc-util/es/warning\";\n/**\n * Keep input cursor in the correct position if possible.\n * Is this necessary since we have `formatter` which may mass the content?\n */\nexport default function useCursor(input, focused) {\n var selectionRef = useRef(null);\n function recordCursor() {\n // Record position\n try {\n var start = input.selectionStart,\n end = input.selectionEnd,\n value = input.value;\n var beforeTxt = value.substring(0, start);\n var afterTxt = value.substring(end);\n selectionRef.current = {\n start: start,\n end: end,\n value: value,\n beforeTxt: beforeTxt,\n afterTxt: afterTxt\n };\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n }\n\n /**\n * Restore logic:\n * 1. back string same\n * 2. start string same\n */\n function restoreCursor() {\n if (input && selectionRef.current && focused) {\n try {\n var value = input.value;\n var _selectionRef$current = selectionRef.current,\n beforeTxt = _selectionRef$current.beforeTxt,\n afterTxt = _selectionRef$current.afterTxt,\n start = _selectionRef$current.start;\n var startPos = value.length;\n if (value.startsWith(beforeTxt)) {\n startPos = beforeTxt.length;\n } else if (value.endsWith(afterTxt)) {\n startPos = value.length - selectionRef.current.afterTxt.length;\n } else {\n var beforeLastChar = beforeTxt[start - 1];\n var newIndex = value.indexOf(beforeLastChar, start - 1);\n if (newIndex !== -1) {\n startPos = newIndex + 1;\n }\n }\n input.setSelectionRange(startPos, startPos);\n } catch (e) {\n warning(false, \"Something warning of cursor restore. Please fire issue about this: \".concat(e.message));\n }\n }\n }\n return [recordCursor, restoreCursor];\n}","import { useRef, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n\n/**\n * Always trigger latest once when call multiple time\n */\nexport default (function () {\n var idRef = useRef(0);\n var cleanUp = function cleanUp() {\n raf.cancel(idRef.current);\n };\n useEffect(function () {\n return cleanUp;\n }, []);\n return function (callback) {\n cleanUp();\n idRef.current = raf(function () {\n callback();\n });\n };\n});","/**\n * Proxy object if environment supported\n */\nexport default function proxyObject(obj, extendProps) {\n if (typeof Proxy !== 'undefined' && obj) {\n return new Proxy(obj, {\n get: function get(target, prop) {\n if (extendProps[prop]) {\n return extendProps[prop];\n }\n\n // Proxy origin property\n var originProp = target[prop];\n return typeof originProp === 'function' ? originProp.bind(target) : originProp;\n }\n });\n }\n return obj;\n}","import InputNumber from \"./InputNumber\";\nexport default InputNumber;","import { TinyColor } from '@ctrl/tinycolor';\nimport { initComponentToken } from '../../input/style/token';\nexport const prepareComponentToken = token => {\n var _a;\n const handleVisible = (_a = token.handleVisible) !== null && _a !== void 0 ? _a : 'auto';\n return Object.assign(Object.assign({}, initComponentToken(token)), {\n controlWidth: 90,\n handleWidth: token.controlHeightSM - token.lineWidth * 2,\n handleFontSize: token.fontSize / 2,\n handleVisible,\n handleActiveBg: token.colorFillAlter,\n handleBg: token.colorBgContainer,\n filledHandleBg: new TinyColor(token.colorFillSecondary).onBackground(token.colorBgContainer).toHexString(),\n handleHoverColor: token.colorPrimary,\n handleBorderColor: token.colorBorder,\n handleOpacity: handleVisible === true ? 1 : 0\n });\n};","import { unit } from '@ant-design/cssinjs';\nimport { genBasicInputStyle, genInputGroupStyle, genPlaceholderStyle, initInputToken } from '../../input/style';\nimport { genBorderlessStyle, genFilledGroupStyle, genFilledStyle, genOutlinedGroupStyle, genOutlinedStyle } from '../../input/style/variants';\nimport { resetComponent, resetIcon } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { prepareComponentToken } from './token';\nexport const genRadiusStyle = (_ref, size) => {\n let {\n componentCls,\n borderRadiusSM,\n borderRadiusLG\n } = _ref;\n const borderRadius = size === 'lg' ? borderRadiusLG : borderRadiusSM;\n return {\n [`&-${size}`]: {\n [`${componentCls}-handler-wrap`]: {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n [`${componentCls}-handler-up`]: {\n borderStartEndRadius: borderRadius\n },\n [`${componentCls}-handler-down`]: {\n borderEndEndRadius: borderRadius\n }\n }\n };\n};\nconst genInputNumberStyles = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n borderRadius,\n inputFontSizeSM,\n inputFontSizeLG,\n controlHeightLG,\n controlHeightSM,\n colorError,\n paddingInlineSM,\n paddingBlockSM,\n paddingBlockLG,\n paddingInlineLG,\n colorTextDescription,\n motionDurationMid,\n handleHoverColor,\n handleOpacity,\n paddingInline,\n paddingBlock,\n handleBg,\n handleActiveBg,\n colorTextDisabled,\n borderRadiusSM,\n borderRadiusLG,\n controlWidth,\n handleBorderColor,\n filledHandleBg,\n lineHeightLG,\n calc\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), {\n display: 'inline-block',\n width: controlWidth,\n margin: 0,\n padding: 0,\n borderRadius\n }), genOutlinedStyle(token, {\n [`${componentCls}-handler-wrap`]: {\n background: handleBg,\n [`${componentCls}-handler-down`]: {\n borderBlockStart: `${unit(lineWidth)} ${lineType} ${handleBorderColor}`\n }\n }\n })), genFilledStyle(token, {\n [`${componentCls}-handler-wrap`]: {\n background: filledHandleBg,\n [`${componentCls}-handler-down`]: {\n borderBlockStart: `${unit(lineWidth)} ${lineType} ${handleBorderColor}`\n }\n },\n '&:focus-within': {\n [`${componentCls}-handler-wrap`]: {\n background: handleBg\n }\n }\n })), genBorderlessStyle(token)), {\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-input`]: {\n direction: 'rtl'\n }\n },\n '&-lg': {\n padding: 0,\n fontSize: inputFontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG,\n [`input${componentCls}-input`]: {\n height: calc(controlHeightLG).sub(calc(lineWidth).mul(2)).equal(),\n padding: `${unit(paddingBlockLG)} ${unit(paddingInlineLG)}`\n }\n },\n '&-sm': {\n padding: 0,\n fontSize: inputFontSizeSM,\n borderRadius: borderRadiusSM,\n [`input${componentCls}-input`]: {\n height: calc(controlHeightSM).sub(calc(lineWidth).mul(2)).equal(),\n padding: `${unit(paddingBlockSM)} ${unit(paddingInlineSM)}`\n }\n },\n // ===================== Out Of Range =====================\n '&-out-of-range': {\n [`${componentCls}-input-wrap`]: {\n input: {\n color: colorError\n }\n }\n },\n // Style for input-group: input with label, with button or dropdown...\n '&-group': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-wrapper': Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n textAlign: 'start',\n verticalAlign: 'top',\n [`${componentCls}-affix-wrapper`]: {\n width: '100%'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG,\n fontSize: token.fontSizeLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n }\n }, genOutlinedGroupStyle(token)), genFilledGroupStyle(token)), {\n // Fix the issue of using icons in Space Compact mode\n // https://github.com/ant-design/ant-design/issues/45764\n [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n })\n }),\n [`&-disabled ${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [componentCls]: {\n '&-input': Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n width: '100%',\n padding: `${unit(paddingBlock)} ${unit(paddingInline)}`,\n textAlign: 'start',\n backgroundColor: 'transparent',\n border: 0,\n borderRadius,\n outline: 0,\n transition: `all ${motionDurationMid} linear`,\n appearance: 'textfield',\n fontSize: 'inherit'\n }), genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&[type=\"number\"]::-webkit-inner-spin-button, &[type=\"number\"]::-webkit-outer-spin-button': {\n margin: 0,\n webkitAppearance: 'none',\n appearance: 'none'\n }\n })\n },\n [`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: {\n width: token.handleWidth,\n opacity: 1\n }\n })\n },\n // Handler\n {\n [componentCls]: Object.assign(Object.assign(Object.assign({\n [`${componentCls}-handler-wrap`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineEnd: 0,\n width: 0,\n opacity: handleOpacity,\n height: '100%',\n borderStartStartRadius: 0,\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius,\n borderEndStartRadius: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n transition: `all ${motionDurationMid}`,\n overflow: 'hidden',\n // Fix input number inside Menu makes icon too large\n // We arise the selector priority by nest selector here\n // https://github.com/ant-design/ant-design/issues/14367\n [`${componentCls}-handler`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 'auto',\n height: '40%',\n [`\n ${componentCls}-handler-up-inner,\n ${componentCls}-handler-down-inner\n `]: {\n marginInlineEnd: 0,\n fontSize: token.handleFontSize\n }\n }\n },\n [`${componentCls}-handler`]: {\n height: '50%',\n overflow: 'hidden',\n color: colorTextDescription,\n fontWeight: 'bold',\n lineHeight: 0,\n textAlign: 'center',\n cursor: 'pointer',\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${handleBorderColor}`,\n transition: `all ${motionDurationMid} linear`,\n '&:active': {\n background: handleActiveBg\n },\n // Hover\n '&:hover': {\n height: `60%`,\n [`\n ${componentCls}-handler-up-inner,\n ${componentCls}-handler-down-inner\n `]: {\n color: handleHoverColor\n }\n },\n '&-up-inner, &-down-inner': Object.assign(Object.assign({}, resetIcon()), {\n color: colorTextDescription,\n transition: `all ${motionDurationMid} linear`,\n userSelect: 'none'\n })\n },\n [`${componentCls}-handler-up`]: {\n borderStartEndRadius: borderRadius\n },\n [`${componentCls}-handler-down`]: {\n borderEndEndRadius: borderRadius\n }\n }, genRadiusStyle(token, 'lg')), genRadiusStyle(token, 'sm')), {\n // Disabled\n '&-disabled, &-readonly': {\n [`${componentCls}-handler-wrap`]: {\n display: 'none'\n },\n [`${componentCls}-input`]: {\n color: 'inherit'\n }\n },\n [`\n ${componentCls}-handler-up-disabled,\n ${componentCls}-handler-down-disabled\n `]: {\n cursor: 'not-allowed'\n },\n [`\n ${componentCls}-handler-up-disabled:hover &-handler-up-inner,\n ${componentCls}-handler-down-disabled:hover &-handler-down-inner\n `]: {\n color: colorTextDisabled\n }\n })\n }];\n};\nconst genAffixWrapperStyles = token => {\n const {\n componentCls,\n paddingBlock,\n paddingInline,\n inputAffixPadding,\n controlWidth,\n borderRadiusLG,\n borderRadiusSM,\n paddingInlineLG,\n paddingInlineSM,\n paddingBlockLG,\n paddingBlockSM,\n motionDurationMid\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign({\n [`input${componentCls}-input`]: {\n padding: `${unit(paddingBlock)} 0`\n }\n }, genBasicInputStyle(token)), {\n // or number handler will cover form status\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: controlWidth,\n padding: 0,\n paddingInlineStart: paddingInline,\n '&-lg': {\n borderRadius: borderRadiusLG,\n paddingInlineStart: paddingInlineLG,\n [`input${componentCls}-input`]: {\n padding: `${unit(paddingBlockLG)} 0`\n }\n },\n '&-sm': {\n borderRadius: borderRadiusSM,\n paddingInlineStart: paddingInlineSM,\n [`input${componentCls}-input`]: {\n padding: `${unit(paddingBlockSM)} 0`\n }\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n zIndex: 1\n },\n '&-focused, &:focus': {\n zIndex: 1\n },\n [`&-disabled > ${componentCls}-disabled`]: {\n background: 'transparent'\n },\n [`> div${componentCls}`]: {\n width: '100%',\n border: 'none',\n outline: 'none',\n [`&${componentCls}-focused`]: {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}-handler-wrap`]: {\n zIndex: 2\n },\n [componentCls]: {\n position: 'static',\n color: 'inherit',\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n pointerEvents: 'none'\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n insetBlockStart: 0,\n insetInlineEnd: 0,\n height: '100%',\n marginInlineEnd: paddingInline,\n marginInlineStart: inputAffixPadding,\n transition: `margin ${motionDurationMid}`\n }\n },\n [`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: {\n width: token.handleWidth,\n opacity: 1\n },\n [`&:not(${componentCls}-affix-wrapper-without-controls):hover ${componentCls}-suffix`]: {\n marginInlineEnd: token.calc(token.handleWidth).add(paddingInline).equal()\n }\n })\n };\n};\nexport default genStyleHooks('InputNumber', token => {\n const inputNumberToken = mergeToken(token, initInputToken(token));\n return [genInputNumberStyles(inputNumberToken), genAffixWrapperStyles(inputNumberToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputNumberToken)];\n}, prepareComponentToken, {\n unitless: {\n handleOpacity: true\n }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport UpOutlined from \"@ant-design/icons/es/icons/UpOutlined\";\nimport classNames from 'classnames';\nimport RcInputNumber from 'rc-input-number';\nimport ContextIsolator from '../_util/ContextIsolator';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariant from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport useStyle from './style';\nconst InputNumber = /*#__PURE__*/React.forwardRef((props, ref) => {\n if (process.env.NODE_ENV !== 'production') {\n const typeWarning = devUseWarning('InputNumber');\n typeWarning.deprecated(!('bordered' in props), 'bordered', 'variant');\n typeWarning(!(props.type === 'number' && props.changeOnWheel), 'usage', 'When `type=number` is used together with `changeOnWheel`, changeOnWheel may not work properly. Please delete `type=number` if it is not necessary.');\n }\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const inputRef = React.useRef(null);\n React.useImperativeHandle(ref, () => inputRef.current);\n const {\n className,\n rootClassName,\n size: customizeSize,\n disabled: customDisabled,\n prefixCls: customizePrefixCls,\n addonBefore,\n addonAfter,\n prefix,\n suffix,\n bordered,\n readOnly,\n status: customStatus,\n controls,\n variant: customVariant\n } = props,\n others = __rest(props, [\"className\", \"rootClassName\", \"size\", \"disabled\", \"prefixCls\", \"addonBefore\", \"addonAfter\", \"prefix\", \"suffix\", \"bordered\", \"readOnly\", \"status\", \"controls\", \"variant\"]);\n const prefixCls = getPrefixCls('input-number', customizePrefixCls);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n let upIcon = /*#__PURE__*/React.createElement(UpOutlined, {\n className: `${prefixCls}-handler-up-inner`\n });\n let downIcon = /*#__PURE__*/React.createElement(DownOutlined, {\n className: `${prefixCls}-handler-down-inner`\n });\n const controlsTemp = typeof controls === 'boolean' ? controls : undefined;\n if (typeof controls === 'object') {\n upIcon = typeof controls.upIcon === 'undefined' ? upIcon : (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-handler-up-inner`\n }, controls.upIcon));\n downIcon = typeof controls.downIcon === 'undefined' ? downIcon : (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-handler-down-inner`\n }, controls.downIcon));\n }\n const {\n hasFeedback,\n status: contextStatus,\n isFormItemInput,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const [variant, enableVariantCls] = useVariant('inputNumber', customVariant, bordered);\n /* biome-ignore lint/complexity/noUselessFragments: avoid falsy value */\n const suffixNode = hasFeedback && /*#__PURE__*/React.createElement(React.Fragment, null, feedbackIcon);\n const inputNumberClass = classNames({\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-in-form-item`]: isFormItemInput\n }, hashId);\n const wrapperClassName = `${prefixCls}-group`;\n const element = /*#__PURE__*/React.createElement(RcInputNumber, Object.assign({\n ref: inputRef,\n disabled: mergedDisabled,\n className: classNames(cssVarCls, rootCls, className, rootClassName, compactItemClassnames),\n upHandler: upIcon,\n downHandler: downIcon,\n prefixCls: prefixCls,\n readOnly: readOnly,\n controls: controlsTemp,\n prefix: prefix,\n suffix: suffixNode || suffix,\n addonBefore: addonBefore && (/*#__PURE__*/React.createElement(ContextIsolator, {\n form: true,\n space: true\n }, addonBefore)),\n addonAfter: addonAfter && (/*#__PURE__*/React.createElement(ContextIsolator, {\n form: true,\n space: true\n }, addonAfter)),\n classNames: {\n input: inputNumberClass,\n variant: classNames({\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback)),\n affixWrapper: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-without-controls`]: controls === false\n }, hashId),\n wrapper: classNames({\n [`${wrapperClassName}-rtl`]: direction === 'rtl'\n }, hashId),\n groupWrapper: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-group-wrapper-${variant}`]: enableVariantCls\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n }\n }, others));\n return wrapCSSVar(element);\n});\nconst TypedInputNumber = InputNumber;\n/** @private Internal Component. Do not use in your production. */\nconst PureInputNumber = props => (/*#__PURE__*/React.createElement(ConfigProvider, {\n theme: {\n components: {\n InputNumber: {\n handleVisible: true\n }\n }\n }\n}, /*#__PURE__*/React.createElement(InputNumber, Object.assign({}, props))));\nif (process.env.NODE_ENV !== 'production') {\n TypedInputNumber.displayName = 'InputNumber';\n}\nTypedInputNumber._InternalPanelDoNotUseOrYouWillBeFired = PureInputNumber;\nexport default TypedInputNumber;","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\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 darkgrey: '#a9a9a9',\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 darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#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: '#9370db',\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: '#db7093',\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 slategrey: '#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 wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nmodule.exports = exports = globalObject.fetch;\n\n// Needed for TypeScript and Webpack.\nif (globalObject.fetch) {\n\texports.default = globalObject.fetch.bind(globalObject);\n}\n\nexports.Headers = globalObject.Headers;\nexports.Request = globalObject.Request;\nexports.Response = globalObject.Response;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","var toPropertyKey = require(\"./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}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` 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 baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","export const SET_FORM_VALUE = 'formWrapper/SET_FORM_VALUE';\nexport const SET_NESTED_FORM_VALUE = 'formWrapper/SET_NESTED_FORM_VALUE';\nexport const SET_FORM_VALUES = 'formWrapper/SET_FORM_VALUES';\nexport const SET_INITIAL_FORM_VALUES = 'formWrapper/SET_INITIAL_FORM_VALUES';\nexport const SET_IS_LOADING = 'formWrapper/SET_IS_LOADING';\nexport const SET_FORM_VALIDATION = 'formWrapper/SET_FORM_VALIDATION';\nexport const SET_FORM_ERROR_MESSAGE = 'formWrapper/SET_FORM_ERROR_MESSAGE';\nexport const DELETE_FORM_ERROR_MESSAGE =\n 'formWrapper/DELETE_FORM_ERROR_MESSAGE';\nexport const CREATE_EDIT_ITEM = 'formWrapper/CREATE_EDIT_ITEM';\nexport const RESET_FORM_VALUES = 'formWrapper/RESET_FORM_VALUES';\nexport const SET_IS_EDITING = 'formWrapper/SET_IS_EDITING';\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","import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionTypeValue, addExceptionMechanism } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nfunction parseStackFrames(stackParser, error) {\n return stackParser(error.stack || '', 1);\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nfunction exceptionFromError(stackParser, error) {\n const exception = {\n type: error.name || error.constructor.name,\n value: error.message,\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nfunction getMessageForObject(exception) {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n }\n\n const keys = extractExceptionKeysForMessage(exception);\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n\n const className = getObjectClassName(exception);\n\n return `${\n className && className !== 'Object' ? `'${className}'` : 'Object'\n } captured as exception with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\nfunction getException(\n client,\n mechanism,\n exception,\n hint,\n) {\n if (isError(exception)) {\n return [exception, undefined];\n }\n\n // Mutate this!\n mechanism.synthetic = true;\n\n if (isPlainObject(exception)) {\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n const extras = { ['__serialized__']: normalizeToSize(exception , normalizeDepth) };\n\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n\n const message = getMessageForObject(exception);\n const ex = (hint && hint.syntheticException) || new Error(message);\n ex.message = message;\n\n return [ex, extras];\n }\n\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n const ex = (hint && hint.syntheticException) || new Error(exception );\n ex.message = `${exception}`;\n\n return [ex, undefined];\n}\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nfunction eventFromUnknownInput(\n client,\n stackParser,\n exception,\n hint,\n) {\n const providedMechanism =\n hint && hint.data && (hint.data ).mechanism;\n const mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n const [ex, extras] = getException(client, mechanism, exception, hint);\n\n const event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n\n if (extras) {\n event.extra = extras;\n }\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint && hint.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const event = {\n event_id: hint && hint.event_id,\n level,\n };\n\n if (attachStacktrace && hint && hint.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nexport { eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","module.exports = __webpack_public_path__ + \"62a96977e725e8bc809dc80afe0fedf1.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\n\n/**![delete](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM2MCAxODRoLThjNC40IDAgOC0zLjYgOC04djhoMzA0di04YzAgNC40IDMuNiA4IDggOGgtOHY3Mmg3MnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MGg3MnYtNzJ6bTUwNCA3MkgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzEuMyA4NDBIMjkyLjdsLTI0LjItNTEyaDQ4N2wtMjQuMiA1MTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DeleteOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DeleteOutlined';\n}\nexport default RefIcon;","export default __webpack_public_path__ + \"assets/favicons/favicon-alert-16x16.png\";","export var commonLocale = {\n yearFormat: 'YYYY',\n dayFormat: 'D',\n cellMeridiemFormat: 'A',\n monthBeforeYear: true\n};","export const ADD_SLIDE_OUT = 'ADD_SLIDE_OUT';\nexport const DELETE_SLIDE_OUT = 'DELETE_SLIDE_OUT';\nexport const REPLACE_SLIDE_OUT = 'REPLACE_SLIDE_OUT';\n","module.exports = __webpack_public_path__ + \"0bd45b2d490c48c31619072a4fb0eaea.js\";","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInput.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInput.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import Input from 'antd/es/input';\nimport type { InputRef } from 'antd/es/input/Input';\nimport clsx from 'clsx';\nimport { ComponentProps, forwardRef } from 'react';\n\nimport './OpInput.scss';\n\ninterface OpSearchInputProps extends ComponentProps<typeof Input.Search> {\n testId?: string;\n}\n\nconst OpSearchInput = ({\n className = '',\n testId = 'op-search-input',\n ...inputProps\n}: OpSearchInputProps) => {\n return (\n <Input.Search\n className={clsx('op-search-input', className)}\n data-testid={testId}\n data-lpignore // Prevents LastPass autofill\n {...inputProps}\n />\n );\n};\n\ninterface OpPasswordInputProps extends ComponentProps<typeof Input.Password> {\n testId?: string;\n}\n\nconst OpPasswordInput = ({\n className = '',\n testId = 'op-password-input',\n ...inputProps\n}: OpPasswordInputProps) => {\n return (\n <Input.Password\n className={clsx('op-password-input', className)}\n data-testid={testId}\n {...inputProps}\n />\n );\n};\n\ninterface OpTextAreaInputProps extends ComponentProps<typeof Input.TextArea> {\n testId?: string;\n gtm?: string;\n}\n\nconst OpTextAreaInput = ({\n className,\n testId = 'op-text-area-input',\n gtm,\n ...inputProps\n}: OpTextAreaInputProps) => {\n return (\n <Input.TextArea\n className={clsx('op-text-area-input', className)}\n data-testid={testId}\n data-gtm={gtm}\n data-lpignore // Prevents LastPass autofill\n {...inputProps}\n />\n );\n};\n\ninterface OpRefInputProps extends ComponentProps<typeof Input> {\n testId?: string;\n gtm?: string;\n}\n\nconst OpRefInput = forwardRef<InputRef, OpRefInputProps>(\n (\n {\n className = '',\n testId = 'op-ref-input',\n gtm,\n ...inputProps\n }: OpRefInputProps,\n ref,\n ) => {\n return (\n <Input\n ref={ref}\n className={clsx('op-ref-input', className)}\n data-testid={testId}\n data-gtm={gtm}\n data-lpignore // Prevents LastPass autofill\n {...inputProps}\n />\n );\n },\n);\n\ninterface OpInputProps extends ComponentProps<typeof Input> {\n gtm?: string;\n testId?: string;\n allowLastPass?: boolean;\n}\n\nexport const OpInput = ({\n gtm,\n testId = 'op-input',\n className,\n allowLastPass = false,\n ...inputProps\n}: OpInputProps) => (\n <Input\n className={clsx('op-input', className)}\n data-gtm={gtm}\n data-testid={testId}\n data-lpignore={allowLastPass} // Prevents LastPass autofill\n {...inputProps}\n />\n);\n\n// Get all Components defined within Input\nOpInput.RefInput = OpRefInput;\nOpInput.Password = OpPasswordInput;\nOpInput.Search = OpSearchInput;\nOpInput.TextArea = OpTextAreaInput;\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","import { useEffect } from 'react';\nimport { isNavigator, noop } from './misc/util';\nvar isVibrationApiSupported = isNavigator && 'vibrate' in navigator;\nfunction useVibrate(enabled, pattern, loop) {\n if (enabled === void 0) { enabled = true; }\n if (pattern === void 0) { pattern = [1000, 1000]; }\n if (loop === void 0) { loop = true; }\n useEffect(function () {\n var interval;\n if (enabled) {\n navigator.vibrate(pattern);\n if (loop) {\n var duration = pattern instanceof Array ? pattern.reduce(function (a, b) { return a + b; }) : pattern;\n interval = setInterval(function () {\n navigator.vibrate(pattern);\n }, duration);\n }\n }\n return function () {\n if (enabled) {\n navigator.vibrate(0);\n if (loop) {\n clearInterval(interval);\n }\n }\n };\n }, [enabled]);\n}\nexport default isVibrationApiSupported ? useVibrate : noop;\n","import { applyAggregateErrorsToEvent, exceptionFromError } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) ;\n\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n","module.exports = __webpack_public_path__ + \"5273e3176fa63d03e7e1f866acc7b8db.js\";","module.exports = __webpack_public_path__ + \"b1170472ae4b50e3b0070eb991e502fe.js\";","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","module.exports = __webpack_public_path__ + \"a3f2f385174625bc7046e29bf9d8c904.js\";","import { createSelector } from 'reselect';\nimport { fromJS } from 'immutable';\n\nconst selectNav = () => (state) => state.get('navigation', fromJS({}));\n\nconst selectRootItems = () =>\n createSelector(selectNav(), (substate) => {\n if (substate.get('items')) {\n return substate\n .get('items')\n .filter((item) => item.get('parent') === null);\n }\n return null;\n });\n\nconst selectItems = () =>\n createSelector(selectNav(), (substate) => substate.get('items', fromJS([])));\n\nconst selectActiveItemIndex = () =>\n createSelector(selectNav(), (substate) => {\n if (!substate) return null;\n return substate.get('activeMenuItem', null);\n });\n\n// sometimes the highlighted item isnt the active one (like create user, since it's a hidden option)\nconst selectHighlightedItemIndex = () =>\n createSelector([selectItems(), selectActiveItem()], (substate, item) => {\n if (!substate || !item) return null;\n return item.get('hidden') ? item.get('parent') : item.get('index');\n });\n\nconst selectActiveItem = () =>\n createSelector(\n [selectItems(), selectActiveItemIndex()],\n (substate, index) => {\n if (!substate) return null;\n return substate.find((s) => s.get('index') === index);\n },\n );\n\nconst selectOpenItems = () =>\n createSelector(selectNav(), (substate) => substate.get('openMenuItems', []));\n\nexport {\n selectNav,\n selectRootItems,\n selectItems,\n selectActiveItem,\n selectActiveItemIndex,\n selectOpenItems,\n selectHighlightedItemIndex,\n};\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SettingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z\" } }] }, \"name\": \"setting\", \"theme\": \"outlined\" };\nexports.default = SettingOutlined;\n","module.exports = __webpack_public_path__ + \"a4bedde07e392f8ebf64341b61f75df2.js\";","module.exports = __webpack_public_path__ + \"2348c5ed0da81c27fa889f56e43f91a1.js\";","module.exports = __webpack_public_path__ + \"029ed9161a8d24a9c2ba97124020989d.js\";","export default __webpack_public_path__ + \"0c186f788dc76b0e7ed77882c7ba26a8.svg\";","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n const removePasswordTimeoutRef = useRef([]);\n const removePasswordTimeout = () => {\n removePasswordTimeoutRef.current.push(setTimeout(() => {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(() => {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return () => removePasswordTimeoutRef.current.forEach(timer => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n }, []);\n return removePasswordTimeout;\n}","module.exports = __webpack_public_path__ + \"135747176621bcc94e9edd0323a81d3c.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateRightOutlined = function RotateRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateRightOutlinedSvg\n }));\n};\n\n/**![rotate-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik00ODAuNSAyNTEuMmMxMy0xLjYgMjUuOS0yLjQgMzguOC0yLjV2NjMuOWMwIDYuNSA3LjUgMTAuMSAxMi42IDYuMUw2NjAgMjE3LjZjNC0zLjIgNC05LjIgMC0xMi4zbC0xMjgtMTAxYy01LjEtNC0xMi42LS40LTEyLjYgNi4xbC0uMiA2NGMtMTE4LjYuNS0yMzUuOCA1My40LTMxNC42IDE1NC4yQTM5OS43NSAzOTkuNzUgMCAwMDEyMy41IDYzMWg3NC45Yy0uOS01LjMtMS43LTEwLjctMi40LTE2LjEtNS4xLTQyLjEtMi4xLTg0LjEgOC45LTEyNC44IDExLjQtNDIuMiAzMS04MS4xIDU4LjEtMTE1LjggMjcuMi0zNC43IDYwLjMtNjMuMiA5OC40LTg0LjMgMzctMjAuNiA3Ni45LTMzLjYgMTE5LjEtMzguOHoiIC8+PHBhdGggZD0iTTg4MCA0MThIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0MTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ1MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQ0IDQwMkgzOTZWNDk0aDQ0MHYzMjZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RotateRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RotateRightOutlined';\n}\nexport default RefIcon;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport defaultLocale from '../../locale/en_US';\nimport useLocale from '../../locale/useLocale';\nimport ConfirmDialog from '../ConfirmDialog';\nconst HookModal = (_a, ref) => {\n var _b;\n var {\n afterClose: hookAfterClose,\n config\n } = _a,\n restProps = __rest(_a, [\"afterClose\", \"config\"]);\n const [open, setOpen] = React.useState(true);\n const [innerConfig, setInnerConfig] = React.useState(config);\n const {\n direction,\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('modal');\n const rootPrefixCls = getPrefixCls();\n const afterClose = () => {\n var _a;\n hookAfterClose();\n (_a = innerConfig.afterClose) === null || _a === void 0 ? void 0 : _a.call(innerConfig);\n };\n const close = function () {\n var _a;\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const triggerCancel = args.some(param => param === null || param === void 0 ? void 0 : param.triggerCancel);\n if (triggerCancel) {\n var _a2;\n (_a = innerConfig.onCancel) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [innerConfig, () => {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, () => ({\n destroy: close,\n update: newConfig => {\n setInnerConfig(originConfig => Object.assign(Object.assign({}, originConfig), newConfig));\n }\n }));\n const mergedOkCancel = (_b = innerConfig.okCancel) !== null && _b !== void 0 ? _b : innerConfig.type === 'confirm';\n const [contextLocale] = useLocale('Modal', defaultLocale.Modal);\n return /*#__PURE__*/React.createElement(ConfirmDialog, Object.assign({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (mergedOkCancel ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.justOkText),\n direction: innerConfig.direction || direction,\n cancelText: innerConfig.cancelText || (contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText)\n }, restProps));\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport destroyFns from '../destroyFns';\nimport HookModal from './HookModal';\nlet uuid = 0;\nconst ElementsHolder = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef((_props, ref) => {\n const [elements, patchElement] = usePatchElement();\n React.useImperativeHandle(ref, () => ({\n patchElement\n }), []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nfunction useModal() {\n const holderRef = React.useRef(null);\n // ========================== Effect ==========================\n const [actionQueue, setActionQueue] = React.useState([]);\n React.useEffect(() => {\n if (actionQueue.length) {\n const cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(action => {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n const getConfirmFunc = React.useCallback(withFunc => function hookConfirm(config) {\n var _a;\n uuid += 1;\n const modalRef = /*#__PURE__*/React.createRef();\n // Proxy to promise with `onClose`\n let resolvePromise;\n const promise = new Promise(resolve => {\n resolvePromise = resolve;\n });\n let silent = false;\n let closeFunc;\n const modal = /*#__PURE__*/React.createElement(HookModal, {\n key: `modal-${uuid}`,\n config: withFunc(config),\n ref: modalRef,\n afterClose: () => {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n },\n isSilent: () => silent,\n onConfirm: confirmed => {\n resolvePromise(confirmed);\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n if (closeFunc) {\n destroyFns.push(closeFunc);\n }\n const instance = {\n destroy: () => {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(prev => [].concat(_toConsumableArray(prev), [destroyAction]));\n }\n },\n update: newConfig => {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(prev => [].concat(_toConsumableArray(prev), [updateAction]));\n }\n },\n then: resolve => {\n silent = true;\n return promise.then(resolve);\n }\n };\n return instance;\n }, []);\n const fns = React.useMemo(() => ({\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n }), []);\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n key: \"modal-holder\",\n ref: holderRef\n })];\n}\nexport default useModal;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n const [elements, setElements] = React.useState([]);\n const patchElement = React.useCallback(element => {\n // append a new element to elements (and create a new ref)\n setElements(originElements => [].concat(_toConsumableArray(originElements), [element]));\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return () => {\n setElements(originElements => originElements.filter(ele => ele !== element));\n };\n }, []);\n return [elements, patchElement];\n}","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nconst genBaseStyle = token => {\n const {\n paddingXXS,\n lineWidth,\n tagPaddingHorizontal,\n componentCls,\n calc\n } = token;\n const paddingInline = calc(tagPaddingHorizontal).sub(lineWidth).equal();\n const iconMarginInline = calc(paddingXXS).sub(lineWidth).equal();\n return {\n // Result\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n height: 'auto',\n // https://github.com/ant-design/ant-design/pull/47504\n marginInlineEnd: token.marginXS,\n paddingInline,\n fontSize: token.tagFontSize,\n lineHeight: token.tagLineHeight,\n whiteSpace: 'nowrap',\n background: token.defaultBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`,\n textAlign: 'start',\n position: 'relative',\n // RTL\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n '&, a, a:hover': {\n color: token.defaultColor\n },\n [`${componentCls}-close-icon`]: {\n marginInlineStart: iconMarginInline,\n fontSize: token.tagIconSize,\n color: token.colorTextDescription,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n [`&${componentCls}-has-color`]: {\n borderColor: 'transparent',\n [`&, a, a:hover, ${token.iconCls}-close, ${token.iconCls}-close:hover`]: {\n color: token.colorTextLightSolid\n }\n },\n '&-checkable': {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n cursor: 'pointer',\n [`&:not(${componentCls}-checkable-checked):hover`]: {\n color: token.colorPrimary,\n backgroundColor: token.colorFillSecondary\n },\n '&:active, &-checked': {\n color: token.colorTextLightSolid\n },\n '&-checked': {\n backgroundColor: token.colorPrimary,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n }\n },\n '&:active': {\n backgroundColor: token.colorPrimaryActive\n }\n },\n '&-hidden': {\n display: 'none'\n },\n // To ensure that a space will be placed between character and `Icon`.\n [`> ${token.iconCls} + span, > span + ${token.iconCls}`]: {\n marginInlineStart: paddingInline\n }\n }),\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent',\n background: token.tagBorderlessBg\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const {\n lineWidth,\n fontSizeIcon,\n calc\n } = token;\n const tagFontSize = token.fontSizeSM;\n const tagToken = mergeToken(token, {\n tagFontSize,\n tagLineHeight: unit(calc(token.lineHeightSM).mul(tagFontSize).equal()),\n tagIconSize: calc(fontSizeIcon).sub(calc(lineWidth).mul(2)).equal(),\n // Tag icon is much smaller\n tagPaddingHorizontal: 8,\n // Fixed padding.\n tagBorderlessBg: token.defaultBg\n });\n return tagToken;\n};\nexport const prepareComponentToken = token => ({\n defaultBg: new TinyColor(token.colorFillQuaternary).onBackground(token.colorBgContainer).toHexString(),\n defaultColor: token.colorText\n});\nexport default genStyleHooks('Tag', token => {\n const tagToken = prepareToken(token);\n return genBaseStyle(tagToken);\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst CheckableTag = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n style,\n className,\n checked,\n onChange,\n onClick\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"style\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n const {\n getPrefixCls,\n tag\n } = React.useContext(ConfigContext);\n const handleClick = e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-checkable`, {\n [`${prefixCls}-checkable-checked`]: checked\n }, tag === null || tag === void 0 ? void 0 : tag.className, className, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n ref: ref,\n style: Object.assign(Object.assign({}, style), tag === null || tag === void 0 ? void 0 : tag.style),\n className: cls,\n onClick: handleClick\n })));\n});\nexport default CheckableTag;","// Style as status component\nimport { prepareComponentToken, prepareToken } from '.';\nimport { genPresetColor, genSubStyleComponent } from '../../theme/internal';\n// ============================== Preset ==============================\nconst genPresetStyle = token => genPresetColor(token, (colorKey, _ref) => {\n let {\n textColor,\n lightBorderColor,\n lightColor,\n darkColor\n } = _ref;\n return {\n [`${token.componentCls}${token.componentCls}-${colorKey}`]: {\n color: textColor,\n background: lightColor,\n borderColor: lightBorderColor,\n // Inverse color\n '&-inverse': {\n color: token.colorTextLightSolid,\n background: darkColor,\n borderColor: darkColor\n },\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n});\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Tag', 'preset'], token => {\n const tagToken = prepareToken(token);\n return genPresetStyle(tagToken);\n}, prepareComponentToken);","import { prepareComponentToken, prepareToken } from '.';\nimport capitalize from '../../_util/capitalize';\nimport { genSubStyleComponent } from '../../theme/internal';\nconst genTagStatusStyle = (token, status, cssVariableType) => {\n const capitalizedCssVariableType = capitalize(cssVariableType);\n return {\n [`${token.componentCls}${token.componentCls}-${status}`]: {\n color: token[`color${cssVariableType}`],\n background: token[`color${capitalizedCssVariableType}Bg`],\n borderColor: token[`color${capitalizedCssVariableType}Border`],\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Tag', 'status'], token => {\n const tagToken = prepareToken(token);\n return [genTagStatusStyle(tagToken, 'success', 'Success'), genTagStatusStyle(tagToken, 'processing', 'Info'), genTagStatusStyle(tagToken, 'error', 'Error'), genTagStatusStyle(tagToken, 'warning', 'Warning')];\n}, prepareComponentToken);","export default function capitalize(str) {\n if (typeof str !== 'string') {\n return str;\n }\n const ret = str.charAt(0).toUpperCase() + str.slice(1);\n return ret;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { isPresetColor, isPresetStatusColor } from '../_util/colors';\nimport useClosable, { pickClosable } from '../_util/hooks/useClosable';\nimport { replaceElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport CheckableTag from './CheckableTag';\nimport useStyle from './style';\nimport PresetCmp from './style/presetCmp';\nimport StatusCmp from './style/statusCmp';\nconst InternalTag = /*#__PURE__*/React.forwardRef((tagProps, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n children,\n icon,\n color,\n onClose,\n bordered = true,\n visible: deprecatedVisible\n } = tagProps,\n props = __rest(tagProps, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"bordered\", \"visible\"]);\n const {\n getPrefixCls,\n direction,\n tag: tagContext\n } = React.useContext(ConfigContext);\n const [visible, setVisible] = React.useState(true);\n const domProps = omit(props, ['closeIcon', 'closable']);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Tag');\n warning.deprecated(!('visible' in tagProps), 'visible', 'visible && <Tag />');\n }\n React.useEffect(() => {\n if (deprecatedVisible !== undefined) {\n setVisible(deprecatedVisible);\n }\n }, [deprecatedVisible]);\n const isPreset = isPresetColor(color);\n const isStatus = isPresetStatusColor(color);\n const isInternalColor = isPreset || isStatus;\n const tagStyle = Object.assign(Object.assign({\n backgroundColor: color && !isInternalColor ? color : undefined\n }, tagContext === null || tagContext === void 0 ? void 0 : tagContext.style), style);\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // Style\n const tagClassName = classNames(prefixCls, tagContext === null || tagContext === void 0 ? void 0 : tagContext.className, {\n [`${prefixCls}-${color}`]: isInternalColor,\n [`${prefixCls}-has-color`]: color && !isInternalColor,\n [`${prefixCls}-hidden`]: !visible,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, className, rootClassName, hashId, cssVarCls);\n const handleCloseClick = e => {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n setVisible(false);\n };\n const [, mergedCloseIcon] = useClosable(pickClosable(tagProps), pickClosable(tagContext), {\n closable: false,\n closeIconRender: iconNode => {\n const replacement = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n }, iconNode);\n return replaceElement(iconNode, replacement, originProps => ({\n onClick: e => {\n var _a;\n (_a = originProps === null || originProps === void 0 ? void 0 : originProps.onClick) === null || _a === void 0 ? void 0 : _a.call(originProps, e);\n handleCloseClick(e);\n },\n className: classNames(originProps === null || originProps === void 0 ? void 0 : originProps.className, `${prefixCls}-close-icon`)\n }));\n }\n });\n const isNeedWave = typeof props.onClick === 'function' || children && children.type === 'a';\n const iconNode = icon || null;\n const kids = iconNode ? (/*#__PURE__*/React.createElement(React.Fragment, null, iconNode, children && /*#__PURE__*/React.createElement(\"span\", null, children))) : children;\n const tagNode = /*#__PURE__*/React.createElement(\"span\", Object.assign({}, domProps, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, mergedCloseIcon, isPreset && /*#__PURE__*/React.createElement(PresetCmp, {\n key: \"preset\",\n prefixCls: prefixCls\n }), isStatus && /*#__PURE__*/React.createElement(StatusCmp, {\n key: \"status\",\n prefixCls: prefixCls\n }));\n return wrapCSSVar(isNeedWave ? /*#__PURE__*/React.createElement(Wave, {\n component: \"Tag\"\n }, tagNode) : tagNode);\n});\nconst Tag = InternalTag;\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","module.exports = __webpack_public_path__ + \"814b9f8056e54d372eefebdae282728e.js\";","import { useEffect, useLayoutEffect } from 'react';\nimport { isBrowser } from './misc/util';\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;\n","import clsx from 'clsx';\nimport Alert from 'antd/es/alert';\nimport { OpInfoProps } from '../OpInfo';\n\nimport '../OpInfo.scss';\n\nexport const OpInfoWithoutDismiss = ({\n className,\n ...alertProps\n}: OpInfoProps) => (\n <Alert className={clsx('op-info', className)} showIcon {...alertProps} />\n);\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","export const sharedRoutes = {\n redirectToHome: '/',\n pageNotFound: '/page-not-found',\n};\n\nexport const ROUTE_ORG_ID_TEMPLATE = ':orgId';\nexport const SCOPE_ORG_ID_TEMPLATES = [\n '{orgId}', // How it is represented in Platinum\n '{params.orgId}', // How it is represented in Helium\n];\n\nexport const SCOPE_IDENTITY_ID_TEMPLATES = [\n '{identityId}', // How it is represented in Platinum\n '{params.identityId}', // How it is represented in Helium\n];\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import classNames from 'classnames';\nconst _InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames({\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\n });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","module.exports = __webpack_public_path__ + \"65abcd8e99a385bcd8f1776f160040a9.js\";","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n // eslint-disable-next-line deprecation/deprecation\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n//# sourceMappingURL=hasTracingEnabled.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addClickKeypressInstrumentationHandler(handler) {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nfunction instrumentDOM() {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event) {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target )._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType, target) {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler,\n globalListener = false,\n) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event) {\n try {\n return event.target ;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml,<svg width=%2710%27 height=%2710%27 viewBox=%270 -1 10 10%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27><path d=%27M1.53231 3.4494L5.00065 6.51607L8.46565 3.44773C8.63148 3.29773 8.88565 3.29857 9.04481 3.45773C9.20731 3.62023 9.20731 3.8844 9.04481 4.0469C9.04148 4.05023 5.28481 7.39023 5.28481 7.39023C5.12315 7.5369 4.87731 7.5369 4.71731 7.38857L0.966478 4.0569C0.793145 3.8844 0.793145 3.62023 0.955645 3.45773C1.15979 3.29773 1.36898 3.29773 1.53231 3.4494Z%27 fill=%27rgba%2826, 26, 26, 1%29%27/></svg>\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml,<svg width=%2710%27 height=%2710%27 viewBox=%270 -1 10 10%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27><path d=%27M1.53231 3.4494L5.00065 6.51607L8.46565 3.44773C8.63148 3.29773 8.88565 3.29857 9.04481 3.45773C9.20731 3.62023 9.20731 3.8844 9.04481 4.0469C9.04148 4.05023 5.28481 7.39023 5.28481 7.39023C5.12315 7.5369 4.87731 7.5369 4.71731 7.38857L0.966478 4.0569C0.793145 3.8844 0.793145 3.62023 0.955645 3.45773C1.15979 3.29773 1.36898 3.29773 1.53231 3.4494Z%27 fill=%27white%27/></svg>\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-content-container,[data-rbd-droppable-context-id=\"0\"],.ui.modal>.actions,.ui.card .content,.ui.tabular.menu .active.item,.ui.menu,.ui.top.right.pointing.dropdown>.menu:after,.ui.basic.button.op,.ui.accordion,.ui.segment:not(.secondary):not(.inverted){transition:background-color .3s;background-color:var(--colorBgContainer);background:var(--colorBgContainer) !important}:not(.sidebar)>.ui.container{padding:0 15px 15px}.sidebar>.ui.container{padding:0 !important;margin:0 !important;height:100%;overflow:hidden;display:flex;flex-direction:column}.ui.progress .bar,.ui.active.progress .bar{min-width:0 !important}.ui.selection.dropdown>.dropdown.icon{top:7px !important}.ui.search.dropdown.isMobile>.text{width:152px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width: 47rem){.ui.container{padding-left:11px !important;padding-right:11px !important}}.ui.segment:not(.secondary):not(.inverted) .basic{padding:10px !important}.ui.segment.secondary{background-color:var(--colorBgLayout) !important}.ui.dropdown .menu{background:var(--colorBgElevated) !important}.ui.grey.mini.message{background-color:var(--colorFillTertiary)}.ui.accordion.fluid.styled{border:1px color var(--colorBorderSecondary) !important}.ui.dropdown,.ui .title,.ui .text,.ui .header,.ui .description,.ui.menu .item,.ui.tabular.menu .active.item{color:var(--colorText) !important}.ui .meta{color:var(--colorTextSecondary) !important}.ui.segment,.ui.segment.attached{border:1px solid var(--colorBorderSecondary)}.ui.segment table,.ui.segment.attached table{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.ui.loading.segment{background-color:var(--colorFillQuaternary) !important}.ui.loading.segment::before{display:none}.ui.basic.label{background:rgba(0,0,0,0);color:var(--colorText)}.ui.ribbon.label{background-color:var(--colorBgMask)}.ui.card .content{color:var(--colorText) !important}.ui.secondary.segment{color:var(--colorText) !important}.ui.selection.active.dropdown .menu,.ui.selection.dropdown .menu>.item{border-color:var(--colorBorderSecondary) !important}.ui.secondary.pointing.menu .active.item{border-color:var(--colorPrimary) !important}.ui.popup{background-color:var(--colorBgSpotlight) !important}.ui.popup:before{background-color:var(--colorBgSpotlight) !important}.ui.popup.entry-widget__popup{background-color:var(--colorBgElevated) !important;color:var(--colorText) !important}.ui.popup.entry-widget__popup:before{background-color:var(--colorBgElevated) !important;color:var(--colorText) !important}.ui.popup.op-lockdown-selector__popup{background-color:var(--colorBgElevated) !important;border:none !important}.ui.popup.op-content-container,.ui.popup.segment:not(.secondary):not(.inverted),.ui.popup[data-rbd-droppable-context-id=\"0\"],.ui.modal>.ui.popup.actions,.ui.card .ui.popup.content,.ui.tabular.menu .ui.popup.active.item,.ui.popup.menu,.ui.top.right.pointing.dropdown>.ui.popup.menu:after,.ui.popup.basic.button.op,.ui.popup.accordion{background-color:var(--colorBgContainer) !important;border-color:var(--colorBorderSecondary) !important}.ui.modal{background-color:var(--colorBgContainer) !important}.ui.modal>.content,.ui.modal>.header{background-color:var(--colorBgContainer) !important;background:var(--colorBgContainer) !important;color:var(--colorText);border-bottom:unset !important}.ui.modal.confirmation{width:100% !important}.ui.modal.confirmation .header,.ui.modal.confirmation .content,.ui.modal.confirmation .actions{display:flex !important;justify-content:center !important}.ui.modal.confirmation .header{padding-bottom:0 !important}.ui.modal.confirmation .actions{border-top:1px solid var(--colorBorderSecondary) !important}.ui.card,.ui.cards>.card{background:var(--colorFillSecondary) !important;box-shadow:0px 0px 8px 0px rgba(0,0,0,.2) !important;border:1px solid var(--colorBorderSecondary) !important;border-radius:var(--borderRadius);overflow:hidden}.ui.tabular.menu{border-bottom:1px solid var(--colorBorder) !important}.ui.tabular.menu .active.item{border-bottom:1px solid var(--colorPrimary) !important}.ui.inverted.dimmer{background-color:var(--colorBgElevated) !important;color:var(--colorText)}.ui.table td.positive,.ui.table tr.positive{background:var(--colorSuccessBg) !important;color:var(--colorSuccessText) !important}.ui.table td.negative,.ui.table tr.negative,.ui.table td.error,.ui.table tr.error{background:var(--colorErrorBg) !important;color:var(--colorErrorText) !important}.ui.table td.warning,.ui.table tr.warning{background:var(--colorWarningBg) !important;color:var(--colorWarningText) !important}.ui.table tr td.disabled,.ui.table tr.disabled td,.ui.table tr.disabled:hover,.ui.table tr:hover td.disabled{pointer-events:none;color:var(--colorTextDisabled)}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{color:var(--colorTextDisabled) !important}.ui.basic.buttons .button .op-button{box-shadow:none !important;background:inherit !important;border:none !important}.ui.basic.buttons .button:hover{background:inherit !important}.ui.icon.button>.icon{color:var(--colorText)}.ui.dropdown .menu>.message{color:var(--colorTextSecondary) !important}.ui.blue.label,.ui.blue.labels .label{background-color:var(--colorPrimary) !important;border-color:var(--colorPrimary) !important}.ui.radio label{color:var(--colorTextLabel) !important}.ui.accordion{border-radius:var(--borderRadius)}.ui input:hover{border-color:var(--colorTextLabel) !important}.ui input:active{border-color:var(--colorPrimaryHover) !important;box-shadow:none !important}.ui input:focus{border-color:var(--colorPrimaryHover) !important;box-shadow:none !important}.ui.dropdown>.text{padding-right:10.84px}.ui.selection>.dropdown.icon:not(.clear)::before,.ui.dropdown:not(.selection)>.dropdown.icon:not(.clear)::before{content:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}.ui.selection>.dropdown.clear.icon::before,.ui.dropdown:not(.selection)>.dropdown.clear.icon::before{content:\"✕\"}.ui.dropdown:not(.multiple),.ui.dropdown:empty,.ui.input>input,.ui.input>input:focus{height:36px;border-radius:var(--borderRadius)}.ui.multiple.search.selection.dropdown{min-height:36px;border-radius:var(--borderRadius)}.ui.modal>.close{color:var(--colorText) !important}.ui.dropdown .menu .item span{font-size:12px !important}.ui.dropdown .menu .active.item span{font-weight:500 !important}.ui.header,.ui.secondary.pointing.menu .active.item,.ui.styled.accordion .title,.ui.message .header,.ui.list .list>.item .header,.ui.list>.item .header,.ui.dropdown .menu .active.item{font-weight:500}.ui.placeholder,.ui.placeholder .image.header:after,.ui.placeholder .line,.ui.placeholder .line:after,.ui.placeholder>:before{background-color:var(--colorFillTertiary)}.ui.attached.menu:not(.tabular){border:none;border-bottom:1px solid var(--colorBorderSecondary)}.ui.form input:not([type]):not(:disabled):focus,.ui.form input[type=date]:not(:disabled):focus,.ui.form input[type=datetime-local]:not(:disabled):focus,.ui.form input[type=email]:not(:disabled):focus,.ui.form input[type=file]:not(:disabled):focus,.ui.form input[type=number]:not(:disabled):focus,.ui.form input[type=password]:not(:disabled):focus,.ui.form input[type=search]:not(:disabled):focus,.ui.form input[type=tel]:not(:disabled):focus,.ui.form input[type=text]:not(:disabled):focus,.ui.form input[type=time]:not(:disabled):focus,.ui.form input[type=url]:not(:disabled):focus{background:var(--colorBgContainer)}.ui.form input:not([type]):disabled:focus,.ui.form input[type=date]:disabled:focus,.ui.form input[type=datetime-local]:disabled:focus,.ui.form input[type=email]:disabled:focus,.ui.form input[type=file]:disabled:focus,.ui.form input[type=number]:disabled:focus,.ui.form input[type=password]:disabled:focus,.ui.form input[type=search]:disabled:focus,.ui.form input[type=tel]:disabled:focus,.ui.form input[type=text]:disabled:focus,.ui.form input[type=time]:disabled:focus,.ui.form input[type=url]:disabled:focus{background:var(--controlItemBgHover)}.dark .ui.selection>.dropdown.icon:not(.clear)::before,.dark .ui.dropdown:not(.selection)>.dropdown.icon:not(.clear)::before{content:url(${___CSS_LOADER_URL_REPLACEMENT_1___})}path.recharts-rectangle.recharts-tooltip-cursor{fill:var(--colorFill)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/assets/scss/base/_overrides.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAAA,+PAEA,+BACE,CAAA,wCACA,CAAA,6CACA,CAAA,6BAIF,mBACE,CAAA,uBAIF,oBACE,CAAA,mBACA,CAAA,WACA,CAAA,eACA,CAAA,YACA,CAAA,qBACA,CAAA,2CAGF,sBAEE,CAAA,sCAIF,kBACE,CAAA,mCAGF,WACE,CAAA,eACA,CAAA,sBACA,CAAA,kBACA,CAAA,yBCpBA,cDyBA,4BACE,CAAA,6BACA,CAAA,CAAA,kDAOF,uBACE,CAAA,sBAIJ,gDACE,CAAA,mBAeF,4CACE,CAAA,sBAGF,yCACE,CAAA,2BAGF,uDACE,CAAA,4GAIF,iCAOE,CAAA,UAGF,0CACE,CAAA,iCAGF,4CAEE,CAAA,6CAEA,8BACE,CAAA,+BACA,CAAA,oBAIJ,sDACE,CAAA,4BAEA,YACE,CAAA,gBAIJ,wBACE,CAAA,sBACA,CAAA,iBAGF,mCACE,CAAA,kBAGF,iCACE,CAAA,sBAGF,iCACE,CAAA,uEAGF,mDAEE,CAAA,yCAGF,2CACE,CAAA,UAGF,mDACE,CAAA,iBAEA,mDACE,CAAA,8BAIJ,kDACE,CAAA,iCACA,CAAA,qCAEA,kDACE,CAAA,iCACA,CAAA,sCAIJ,kDACE,CAAA,sBACA,CAAA,6UAGF,mDACE,CAAA,mDACA,CAAA,UAGF,mDACE,CAAA,qCAEF,mDAEE,CAAA,6CACA,CAAA,sBACA,CAAA,8BACA,CAAA,uBAIF,qBAGE,CAAA,+FAEA,uBAGE,CAAA,iCACA,CAAA,+BAGF,2BACE,CAAA,gCAGF,2DACE,CAAA,yBAIJ,+CAKE,CAAA,oDACA,CAAA,uDACA,CAAA,iCACA,CAAA,eACA,CAAA,iBAGF,qDACE,CAAA,8BAEA,sDACE,CAAA,oBAIJ,kDACE,CAAA,sBACA,CAAA,4CAIF,2CAEE,CAAA,wCACA,CAAA,kFAGF,yCAIE,CAAA,sCACA,CAAA,0CAGF,2CAEE,CAAA,wCACA,CAAA,6GAGF,mBAIE,CAAA,8BACA,CAAA,sDAGF,yCAEE,CAAA,qCAIA,0BACE,CAAA,6BACA,CAAA,sBACA,CAAA,gCAGF,6BACE,CAAA,sBAIJ,sBACE,CAAA,4BAGF,0CACE,CAAA,sCAGF,+CAEE,CAAA,2CACA,CAAA,gBAGF,sCACE,CAAA,cAGF,iCACE,CAAA,gBAIF,6CACE,CAAA,iBAGF,gDACE,CAAA,0BACA,CAAA,gBAGF,gDACE,CAAA,0BACA,CAAA,mBAIF,qBACE,CAAA,iHAIF,+CAEE,CAAA,qGAGF,WAEE,CAAA,qFAGF,WAIE,CAAA,iCACA,CAAA,uCAGF,eACE,CAAA,iCACA,CAAA,iBAIF,iCACE,CAAA,8BAIF,yBACE,CAAA,qCAEF,0BACE,CAAA,wLAGF,eAOE,CAAA,8HAIF,yCAKE,CAAA,gCAIF,WACE,CAAA,mDACA,CAAA,skBAGF,kCAYE,CAAA,8fAGF,oCAYE,CAAA,6HAKA,+CAEE,CAAA,gDAOJ,qBACE\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-content-container {\\n transition: background-color 0.3s;\\n background-color: var(--colorBgContainer);\\n background: var(--colorBgContainer) !important;\\n}\\n\\n/** START SUIR OVERRIDES */\\n:not(.sidebar) > .ui.container {\\n padding: 0 15px 15px;\\n}\\n\\n/* Override for our slide outs */\\n.sidebar > .ui.container {\\n padding: 0 !important;\\n margin: 0 !important;\\n height: 100%;\\n overflow: hidden;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.ui.progress .bar,\\n.ui.active.progress .bar {\\n min-width: 0 !important;\\n}\\n\\n/* to center dropdown icon */\\n.ui.selection.dropdown > .dropdown.icon {\\n top: 7px !important;\\n}\\n\\n.ui.search.dropdown.isMobile > .text {\\n width: 152px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n\\n/* For Mobile */\\n@include common.smaller-than(common.$tablet-portrait-width - 1) {\\n .ui.container {\\n padding-left: 11px !important;\\n padding-right: 11px !important;\\n }\\n}\\n\\n.ui.segment:not(.secondary):not(.inverted) {\\n @extend .op-content-container;\\n\\n .basic {\\n padding: 10px !important;\\n }\\n}\\n\\n.ui.segment.secondary {\\n background-color: var(--colorBgLayout) !important;\\n}\\n\\n// Background overrides\\n[data-rbd-droppable-context-id='0'],\\n.ui.modal > .actions,\\n.ui.card .content,\\n.ui.tabular.menu .active.item,\\n.ui.menu,\\n.ui.top.right.pointing.dropdown > .menu:after,\\n.ui.basic.button.op,\\n.ui.accordion {\\n @extend .op-content-container;\\n}\\n\\n.ui.dropdown .menu {\\n background: var(--colorBgElevated) !important;\\n}\\n\\n.ui.grey.mini.message {\\n background-color: var(--colorFillTertiary);\\n}\\n\\n.ui.accordion.fluid.styled {\\n border: 1px color var(--colorBorderSecondary) !important;\\n}\\n\\n// text color overrides\\n.ui.dropdown,\\n.ui .title,\\n.ui .text,\\n.ui .header,\\n.ui .description,\\n.ui.menu .item,\\n.ui.tabular.menu .active.item {\\n color: var(--colorText) !important;\\n}\\n\\n.ui .meta {\\n color: var(--colorTextSecondary) !important;\\n}\\n\\n.ui.segment,\\n.ui.segment.attached {\\n border: 1px solid var(--colorBorderSecondary);\\n\\n table {\\n border-bottom-left-radius: 12px;\\n border-bottom-right-radius: 12px;\\n }\\n}\\n\\n.ui.loading.segment {\\n background-color: var(--colorFillQuaternary) !important;\\n\\n &::before {\\n display: none;\\n }\\n}\\n\\n.ui.basic.label {\\n background: transparent;\\n color: var(--colorText);\\n}\\n\\n.ui.ribbon.label {\\n background-color: var(--colorBgMask);\\n}\\n\\n.ui.card .content {\\n color: var(--colorText) !important;\\n}\\n\\n.ui.secondary.segment {\\n color: var(--colorText) !important;\\n}\\n\\n.ui.selection.active.dropdown .menu,\\n.ui.selection.dropdown .menu > .item {\\n border-color: var(--colorBorderSecondary) !important;\\n}\\n\\n.ui.secondary.pointing.menu .active.item {\\n border-color: var(--colorPrimary) !important;\\n}\\n\\n.ui.popup {\\n background-color: var(--colorBgSpotlight) !important;\\n\\n &:before {\\n background-color: var(--colorBgSpotlight) !important;\\n }\\n}\\n\\n.ui.popup.entry-widget__popup {\\n background-color: var(--colorBgElevated) !important;\\n color: var(--colorText) !important;\\n\\n &:before {\\n background-color: var(--colorBgElevated) !important;\\n color: var(--colorText) !important;\\n }\\n}\\n\\n.ui.popup.op-lockdown-selector__popup {\\n background-color: var(--colorBgElevated) !important;\\n border: none !important;\\n}\\n\\n.ui.popup.op-content-container {\\n background-color: var(--colorBgContainer) !important;\\n border-color: var(--colorBorderSecondary) !important;\\n}\\n\\n.ui.modal {\\n background-color: var(--colorBgContainer) !important;\\n}\\n.ui.modal > .content,\\n.ui.modal > .header {\\n background-color: var(--colorBgContainer) !important;\\n background: var(--colorBgContainer) !important;\\n color: var(--colorText);\\n border-bottom: unset !important;\\n}\\n\\n// Confirm modal - SUI is overriding it\\n.ui.modal.confirmation {\\n /** Confirmation Banner */\\n\\n width: 100% !important;\\n\\n .header,\\n .content,\\n .actions {\\n display: flex !important;\\n justify-content: center !important;\\n }\\n\\n .header {\\n padding-bottom: 0 !important;\\n }\\n\\n .actions {\\n border-top: 1px solid var(--colorBorderSecondary) !important;\\n }\\n}\\n\\n.ui.card,\\n.ui.cards > .card {\\n // div:not(.content) {\\n // background-color: inherit !important;\\n // }\\n background: var(--colorFillSecondary) !important;\\n box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.2) !important;\\n border: 1px solid var(--colorBorderSecondary) !important;\\n border-radius: var(--borderRadius);\\n overflow: hidden;\\n}\\n\\n.ui.tabular.menu {\\n border-bottom: 1px solid var(--colorBorder) !important;\\n\\n .active.item {\\n border-bottom: 1px solid var(--colorPrimary) !important;\\n }\\n}\\n\\n.ui.inverted.dimmer {\\n background-color: var(--colorBgElevated) !important;\\n color: var(--colorText);\\n}\\n\\n// Need the nesting for more specificity\\n.ui.table td.positive,\\n.ui.table tr.positive {\\n background: var(--colorSuccessBg) !important;\\n color: var(--colorSuccessText) !important;\\n}\\n\\n.ui.table td.negative,\\n.ui.table tr.negative,\\n.ui.table td.error,\\n.ui.table tr.error {\\n background: var(--colorErrorBg) !important;\\n color: var(--colorErrorText) !important;\\n}\\n\\n.ui.table td.warning,\\n.ui.table tr.warning {\\n background: var(--colorWarningBg) !important;\\n color: var(--colorWarningText) !important;\\n}\\n\\n.ui.table tr td.disabled,\\n.ui.table tr.disabled td,\\n.ui.table tr.disabled:hover,\\n.ui.table tr:hover td.disabled {\\n pointer-events: none;\\n color: var(--colorTextDisabled);\\n}\\n\\n.ui.menu .item.disabled,\\n.ui.menu .item.disabled:hover {\\n color: var(--colorTextDisabled) !important;\\n}\\n\\n.ui.basic.buttons {\\n .button .op-button {\\n box-shadow: none !important;\\n background: inherit !important;\\n border: none !important;\\n }\\n\\n .button:hover {\\n background: inherit !important;\\n }\\n}\\n\\n.ui.icon.button > .icon {\\n color: var(--colorText);\\n}\\n\\n.ui.dropdown .menu > .message {\\n color: var(--colorTextSecondary) !important;\\n}\\n\\n.ui.blue.label,\\n.ui.blue.labels .label {\\n background-color: var(--colorPrimary) !important;\\n border-color: var(--colorPrimary) !important;\\n}\\n\\n.ui.radio label {\\n color: var(--colorTextLabel) !important;\\n}\\n\\n.ui.accordion {\\n border-radius: var(--borderRadius);\\n}\\n\\n/* Targeting semantic on purpose */\\n.ui input:hover {\\n border-color: var(--colorTextLabel) !important;\\n}\\n/* Targeting semantic on purpose */\\n.ui input:active {\\n border-color: var(--colorPrimaryHover) !important;\\n box-shadow: none !important;\\n}\\n/* Targeting semantic on purpose */\\n.ui input:focus {\\n border-color: var(--colorPrimaryHover) !important;\\n box-shadow: none !important;\\n}\\n\\n/* Create proper spacing based on figma */\\n.ui.dropdown > .text {\\n padding-right: 10.84px;\\n}\\n\\n/* Custom dropdown icon */\\n.ui.selection > .dropdown.icon:not(.clear)::before,\\n.ui.dropdown:not(.selection) > .dropdown.icon:not(.clear)::before {\\n content: url(\\\"data:image/svg+xml,<svg width='10' height='10' viewBox='0 -1 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M1.53231 3.4494L5.00065 6.51607L8.46565 3.44773C8.63148 3.29773 8.88565 3.29857 9.04481 3.45773C9.20731 3.62023 9.20731 3.8844 9.04481 4.0469C9.04148 4.05023 5.28481 7.39023 5.28481 7.39023C5.12315 7.5369 4.87731 7.5369 4.71731 7.38857L0.966478 4.0569C0.793145 3.8844 0.793145 3.62023 0.955645 3.45773C1.15979 3.29773 1.36898 3.29773 1.53231 3.4494Z' fill='rgba(26, 26, 26, 1)'/></svg>\\\");\\n}\\n\\n.ui.selection > .dropdown.clear.icon::before,\\n.ui.dropdown:not(.selection) > .dropdown.clear.icon::before {\\n content: '\\\\2715';\\n}\\n\\n.ui.dropdown:not(.multiple),\\n.ui.dropdown:empty,\\n.ui.input > input,\\n.ui.input > input:focus {\\n height: 36px;\\n border-radius: var(--borderRadius);\\n}\\n\\n.ui.multiple.search.selection.dropdown {\\n min-height: 36px;\\n border-radius: var(--borderRadius);\\n}\\n\\n/* Close button */\\n.ui.modal > .close {\\n color: var(--colorText) !important;\\n}\\n\\n/* Menu */\\n.ui.dropdown .menu .item span {\\n font-size: 12px !important;\\n}\\n.ui.dropdown .menu .active.item span {\\n font-weight: 500 !important;\\n}\\n\\n.ui.header,\\n.ui.secondary.pointing.menu .active.item,\\n.ui.styled.accordion .title,\\n.ui.message .header,\\n.ui.list .list > .item .header,\\n.ui.list > .item .header,\\n.ui.dropdown .menu .active.item {\\n font-weight: 500;\\n}\\n\\n/* Placeholders */\\n.ui.placeholder,\\n.ui.placeholder .image.header:after,\\n.ui.placeholder .line,\\n.ui.placeholder .line:after,\\n.ui.placeholder > :before {\\n background-color: var(--colorFillTertiary);\\n}\\n\\n/* For tabs in drawers */\\n.ui.attached.menu:not(.tabular) {\\n border: none;\\n border-bottom: 1px solid var(--colorBorderSecondary);\\n}\\n\\n.ui.form input:not([type]):not(:disabled):focus,\\n.ui.form input[type='date']:not(:disabled):focus,\\n.ui.form input[type='datetime-local']:not(:disabled):focus,\\n.ui.form input[type='email']:not(:disabled):focus,\\n.ui.form input[type='file']:not(:disabled):focus,\\n.ui.form input[type='number']:not(:disabled):focus,\\n.ui.form input[type='password']:not(:disabled):focus,\\n.ui.form input[type='search']:not(:disabled):focus,\\n.ui.form input[type='tel']:not(:disabled):focus,\\n.ui.form input[type='text']:not(:disabled):focus,\\n.ui.form input[type='time']:not(:disabled):focus,\\n.ui.form input[type='url']:not(:disabled):focus {\\n background: var(--colorBgContainer);\\n}\\n\\n.ui.form input:not([type]):disabled:focus,\\n.ui.form input[type='date']:disabled:focus,\\n.ui.form input[type='datetime-local']:disabled:focus,\\n.ui.form input[type='email']:disabled:focus,\\n.ui.form input[type='file']:disabled:focus,\\n.ui.form input[type='number']:disabled:focus,\\n.ui.form input[type='password']:disabled:focus,\\n.ui.form input[type='search']:disabled:focus,\\n.ui.form input[type='tel']:disabled:focus,\\n.ui.form input[type='text']:disabled:focus,\\n.ui.form input[type='time']:disabled:focus,\\n.ui.form input[type='url']:disabled:focus {\\n background: var(--controlItemBgHover);\\n}\\n\\n/* Dark mode specific */\\n.dark {\\n .ui.selection > .dropdown.icon:not(.clear)::before,\\n .ui.dropdown:not(.selection) > .dropdown.icon:not(.clear)::before {\\n content: url(\\\"data:image/svg+xml,<svg width='10' height='10' viewBox='0 -1 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M1.53231 3.4494L5.00065 6.51607L8.46565 3.44773C8.63148 3.29773 8.88565 3.29857 9.04481 3.45773C9.20731 3.62023 9.20731 3.8844 9.04481 4.0469C9.04148 4.05023 5.28481 7.39023 5.28481 7.39023C5.12315 7.5369 4.87731 7.5369 4.71731 7.38857L0.966478 4.0569C0.793145 3.8844 0.793145 3.62023 0.955645 3.45773C1.15979 3.29773 1.36898 3.29773 1.53231 3.4494Z' fill='white'/></svg>\\\");\\n }\\n}\\n\\n/** END SUIR OVERRIDES */\\n\\n/** BEGIN Recharts overrides */\\npath.recharts-rectangle.recharts-tooltip-cursor {\\n fill: var(--colorFill);\\n}\\n/** END Recharts overrides */\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import * as React from 'react';\nimport Slider from \"../components/Slider\";\nexport default function useComponent(components) {\n return React.useMemo(function () {\n var _ref = components || {},\n slider = _ref.slider;\n return [slider || Slider];\n }, [components]);\n}","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.use-alta-id-button{display:flex;justify-content:center;align-items:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/UseAltaIdButton/UseAltaIdButton.scss\",\"webpack://./app/assets/scss/common/_helpers.scss\"],\"names\":[],\"mappings\":\"AAEA,oBCGE,YAAA,CACA,sBAAA,CACA,kBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.use-alta-id-button {\\n @include common.center-flex();\\n}\\n\",\"@mixin debug() {\\n outline: 1px solid green;\\n}\\n\\n@mixin center-flex {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","import { isThenable } from '@sentry/utils';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _LockOutlined = _interopRequireDefault(require('./lib/icons/LockOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _LockOutlined;\nexports.default = _default;\nmodule.exports = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hookToRenderProp = exports.createEnhancer = exports.render = void 0;\nvar tslib_1 = require(\"tslib\");\nvar render_1 = tslib_1.__importDefault(require(\"./render\"));\nexports.render = render_1.default;\nvar createEnhancer_1 = tslib_1.__importDefault(require(\"./createEnhancer\"));\nexports.createEnhancer = createEnhancer_1.default;\nvar hookToRenderProp_1 = tslib_1.__importDefault(require(\"./hookToRenderProp\"));\nexports.hookToRenderProp = hookToRenderProp_1.default;\n//# sourceMappingURL=index.js.map","/**\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\nexport default arraySome;\n","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","/**\n * Checks whether given url points to Sentry server\n *\n * @param url url to verify\n */\nfunction isSentryRequestUrl(url, client) {\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url, tunnel) {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url, dsn) {\n return dsn ? url.includes(dsn.host) : false;\n}\n\nfunction removeTrailingSlash(str) {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n\nexport { isSentryRequestUrl };\n//# sourceMappingURL=isSentryRequestUrl.js.map\n","module.exports = __webpack_public_path__ + \"c3832579be376308fa819b04e7b0c66f.js\";","export default __webpack_public_path__ + \"1fb8032bf938a3dcbed8c8661909d3ba.svg\";","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\n\n/**![calendar](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWNDYwaDY1NnYzODB6TTE4NCAzOTJWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNkgxODR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CalendarOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CalendarOutlined';\n}\nexport default RefIcon;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import { arrayify, logger } from '@sentry/utils';\nimport { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex > -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1) ;\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1 && typeof integration.setupOnce === 'function') {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) ;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) ;\n\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n const client = getClient();\n\n if (!client) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"label\", \"key\", \"collapsible\", \"onItemClick\", \"destroyInactivePanel\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport React from 'react';\nimport CollapsePanel from \"../Panel\";\nvar convertItemsToNodes = function convertItemsToNodes(items, props) {\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n return items.map(function (item, index) {\n var children = item.children,\n label = item.label,\n rawKey = item.key,\n rawCollapsible = item.collapsible,\n rawOnItemClick = item.onItemClick,\n rawDestroyInactivePanel = item.destroyInactivePanel,\n restProps = _objectWithoutProperties(item, _excluded);\n\n // You may be puzzled why you want to convert them all into strings, me too.\n // Maybe: https://github.com/react-component/collapse/blob/aac303a8b6ff30e35060b4f8fecde6f4556fcbe2/src/Collapse.tsx#L15\n var key = String(rawKey !== null && rawKey !== void 0 ? rawKey : index);\n var mergeCollapsible = rawCollapsible !== null && rawCollapsible !== void 0 ? rawCollapsible : collapsible;\n var mergeDestroyInactivePanel = rawDestroyInactivePanel !== null && rawDestroyInactivePanel !== void 0 ? rawDestroyInactivePanel : destroyInactivePanel;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n rawOnItemClick === null || rawOnItemClick === void 0 || rawOnItemClick(value);\n };\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n return /*#__PURE__*/React.createElement(CollapsePanel, _extends({}, restProps, {\n prefixCls: prefixCls,\n key: key,\n panelKey: key,\n isActive: isActive,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n header: label,\n collapsible: mergeCollapsible,\n onItemClick: handleItemClick,\n destroyInactivePanel: mergeDestroyInactivePanel\n }), children);\n });\n};\n\n/**\n * @deprecated The next major version will be removed\n */\nvar getNewChild = function getNewChild(child, index, props) {\n if (!child) return null;\n var prefixCls = props.prefixCls,\n accordion = props.accordion,\n collapsible = props.collapsible,\n destroyInactivePanel = props.destroyInactivePanel,\n onItemClick = props.onItemClick,\n activeKey = props.activeKey,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon;\n var key = child.key || String(index);\n var _child$props = child.props,\n header = _child$props.header,\n headerClass = _child$props.headerClass,\n childDestroyInactivePanel = _child$props.destroyInactivePanel,\n childCollapsible = _child$props.collapsible,\n childOnItemClick = _child$props.onItemClick;\n var isActive = false;\n if (accordion) {\n isActive = activeKey[0] === key;\n } else {\n isActive = activeKey.indexOf(key) > -1;\n }\n var mergeCollapsible = childCollapsible !== null && childCollapsible !== void 0 ? childCollapsible : collapsible;\n var handleItemClick = function handleItemClick(value) {\n if (mergeCollapsible === 'disabled') return;\n onItemClick(value);\n childOnItemClick === null || childOnItemClick === void 0 || childOnItemClick(value);\n };\n var childProps = {\n key: key,\n panelKey: key,\n header: header,\n headerClass: headerClass,\n isActive: isActive,\n prefixCls: prefixCls,\n destroyInactivePanel: childDestroyInactivePanel !== null && childDestroyInactivePanel !== void 0 ? childDestroyInactivePanel : destroyInactivePanel,\n openMotion: openMotion,\n accordion: accordion,\n children: child.props.children,\n onItemClick: handleItemClick,\n expandIcon: expandIcon,\n collapsible: mergeCollapsible\n };\n\n // https://github.com/ant-design/ant-design/issues/20479\n if (typeof child.type === 'string') {\n return child;\n }\n Object.keys(childProps).forEach(function (propName) {\n if (typeof childProps[propName] === 'undefined') {\n delete childProps[propName];\n }\n });\n return /*#__PURE__*/React.cloneElement(child, childProps);\n};\nfunction useItems(items, rawChildren, props) {\n if (Array.isArray(items)) {\n return convertItemsToNodes(items, props);\n }\n return toArray(rawChildren).map(function (child, index) {\n return getNewChild(child, index, props);\n });\n}\nexport default useItems;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _utils = require(\"../utils\");\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nvar twoToneColorPalette = {\n primaryColor: \"#333\",\n secondaryColor: \"#E6E6E6\",\n calculated: false\n};\nfunction setTwoToneColors(param) {\n var primaryColor = param.primaryColor, secondaryColor = param.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || (0, _utils.getSecondaryColor)(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _object_spread({}, twoToneColorPalette);\n}\nvar IconBase = function(props) {\n var icon = props.icon, className = props.className, onClick = props.onClick, style = props.style, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, restProps = _object_without_properties(props, [\n \"icon\",\n \"className\",\n \"onClick\",\n \"style\",\n \"primaryColor\",\n \"secondaryColor\"\n ]);\n var svgRef = _react.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || (0, _utils.getSecondaryColor)(primaryColor)\n };\n }\n (0, _utils.useInsertStyles)(svgRef);\n (0, _utils.warning)((0, _utils.isIconDefinition)(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!(0, _utils.isIconDefinition)(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === \"function\") {\n target = _object_spread_props(_object_spread({}, target), {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return (0, _utils.generate)(target.icon, \"svg-\".concat(target.name), _object_spread_props(_object_spread({\n className: className,\n onClick: onClick,\n style: style,\n \"data-icon\": target.name,\n width: \"1em\",\n height: \"1em\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, restProps), {\n ref: svgRef\n }));\n};\nIconBase.displayName = \"IconReact\";\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nvar _default = IconBase;\n","module.exports = __webpack_public_path__ + \"7222998c10fabd9c824cf8cf540b3b74.js\";","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = baseGetTag;\n","module.exports = __webpack_public_path__ + \"a1bb5b3f6078f04941c00f87171dc0ae.js\";","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","module.exports = __webpack_public_path__ + \"b953ce2f19e7291598cd9c05128133c1.js\";","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\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\nmodule.exports = overArg;\n","module.exports = __webpack_public_path__ + \"2ad349208b3a727abb3c9f943865a27c.js\";","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","var arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (!object) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n if (!object) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nexport function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nexport function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nexport function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nvar regexp = new RegExp('{{(.+?)}}', 'g');\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nexport function interpolate(str, data, lng) {\n var match, value;\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n while (match = regexp.exec(str)) {\n value = match[1].trim();\n if (typeof value !== 'string') value = makeString(value);\n if (!value) value = '';\n value = regexSafe(value);\n str = str.replace(match[0], data[value] || value);\n regexp.lastIndex = 0;\n }\n return str;\n}\nexport function isMissingOption(obj, props) {\n return props.reduce(function (mem, p) {\n if (mem) return mem;\n if (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {\n var err = \"i18next-locize-backend :: got \\\"\".concat(obj[p], \"\\\" in options for \").concat(p, \" which is invalid.\");\n console.warn(err);\n return err;\n }\n return false;\n }, false);\n}\nexport function optionExist(obj, props) {\n return !isMissingOption(obj, props);\n}\nexport function defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar fetchApi = typeof fetch === 'function' ? fetch : undefined;\nif (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n} else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n}\nvar XmlHttpRequestApi;\nif (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object') {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nif (!fetchApi && !XmlHttpRequestApi && !ActiveXObjectApi) {\n try {\n import('cross-fetch').then(function (mod) {\n fetchApi = mod.default;\n }).catch(function () {});\n } catch (e) {}\n}\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n var headers = {};\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-locize-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (options.authorize && options.apiKey) {\n headers.Authorization = options.apiKey;\n }\n if (payload || options.setContentTypeJSON) {\n headers['Content-Type'] = 'application/json';\n }\n var resolver = function resolver(response) {\n var resourceNotExisting = response.headers && response.headers.get('x-cache') === 'Error from cloudfront';\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status,\n resourceNotExisting: resourceNotExisting\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data,\n resourceNotExisting: resourceNotExisting\n });\n }).catch(callback);\n };\n if (typeof fetch === 'function') {\n fetch(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n } else {\n fetchApi(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n try {\n var x = XmlHttpRequestApi ? new XmlHttpRequestApi() : new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (options.authorize && options.apiKey) {\n x.setRequestHeader('Authorization', options.apiKey);\n }\n if (payload || options.setContentTypeJSON) {\n x.setRequestHeader('Content-Type', 'application/json');\n }\n x.onreadystatechange = function () {\n var resourceNotExisting = x.getResponseHeader('x-cache') === 'Error from cloudfront';\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText,\n resourceNotExisting: resourceNotExisting\n });\n };\n x.send(JSON.stringify(payload));\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object' || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { defaults, debounce, isMissingOption, interpolate, getPath, setPath, pushPath, defer } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: 'https://api.locize.app/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n privatePath: 'https://api.locize.app/private/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n getLanguagesPath: 'https://api.locize.app/languages/{{projectId}}',\n addPath: 'https://api.locize.app/missing/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n updatePath: 'https://api.locize.app/update/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n referenceLng: 'en',\n crossDomain: true,\n setContentTypeJSON: false,\n version: 'latest',\n private: false,\n translatedPercentageThreshold: 0.9,\n failLoadingOnEmptyJSON: false,\n allowedAddOrUpdateHosts: ['localhost'],\n onSaved: false,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n checkForProjectTimeout: 3 * 1000,\n storageExpiration: 60 * 60 * 1000,\n writeDebounce: 5 * 1000\n };\n};\nvar hasLocalStorageSupport;\ntry {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n var testKey = 'notExistingLocizeProject';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n} catch (e) {\n hasLocalStorageSupport = false;\n}\nfunction getStorage(storageExpiration) {\n var setProjectNotExisting = function setProjectNotExisting() {};\n var isProjectNotExisting = function isProjectNotExisting() {};\n if (hasLocalStorageSupport) {\n setProjectNotExisting = function setProjectNotExisting(projectId) {\n window.localStorage.setItem(\"notExistingLocizeProject_\".concat(projectId), Date.now());\n };\n isProjectNotExisting = function isProjectNotExisting(projectId) {\n var ret = window.localStorage.getItem(\"notExistingLocizeProject_\".concat(projectId));\n if (!ret) return false;\n if (Date.now() - ret > storageExpiration) {\n window.localStorage.removeItem(\"notExistingLocizeProject_\".concat(projectId));\n return false;\n }\n return true;\n };\n } else if (typeof document !== 'undefined') {\n setProjectNotExisting = function setProjectNotExisting(projectId) {\n var date = new Date();\n date.setTime(date.getTime() + storageExpiration);\n var expires = \"; expires=\".concat(date.toGMTString());\n var name = \"notExistingLocizeProject_\".concat(projectId);\n try {\n document.cookie = \"\".concat(name, \"=\").concat(Date.now()).concat(expires, \";path=/\");\n } catch (err) {}\n };\n isProjectNotExisting = function isProjectNotExisting(projectId) {\n var name = \"notExistingLocizeProject_\".concat(projectId);\n var nameEQ = \"\".concat(name, \"=\");\n try {\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return true;\n }\n } catch (err) {}\n return false;\n };\n }\n return {\n setProjectNotExisting: setProjectNotExisting,\n isProjectNotExisting: isProjectNotExisting\n };\n}\nvar getCustomRequestInfo = function getCustomRequestInfo(url, options, payload) {\n var headers = {};\n if (options.authorize && options.apiKey) {\n headers.Authorization = options.apiKey;\n }\n if (payload || options.setContentTypeJSON) {\n headers['Content-Type'] = 'application/json';\n }\n return {\n method: payload ? 'POST' : 'GET',\n url: url,\n headers: headers,\n body: payload\n };\n};\nvar handleCustomRequest = function handleCustomRequest(opt, info, cb) {\n if (opt.request.length === 1) {\n try {\n var r = opt.request(info);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return cb(null, data);\n }).catch(cb);\n } else {\n cb(null, r);\n }\n } catch (err) {\n cb(err);\n }\n return;\n }\n opt.request(info, cb);\n};\nvar I18NextLocizeBackend = function () {\n function I18NextLocizeBackend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n _classCallCheck(this, I18NextLocizeBackend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n if (services && services.projectId) {\n this.init(null, services, allOptions, options);\n } else {\n this.init(services, options, allOptions, callback);\n }\n }\n return _createClass(I18NextLocizeBackend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!options.referenceLng && allOptions.fallbackLng && Array.isArray(allOptions.fallbackLng) && allOptions.fallbackLng[0] !== 'dev') {\n options.referenceLng = allOptions.fallbackLng[0];\n }\n this.services = services;\n var defOpt = getDefaults();\n var passedOpt = defaults(options, this.options || {});\n if (passedOpt.reloadInterval && passedOpt.reloadInterval < 5 * 60 * 1000) {\n console.warn('Your configured reloadInterval option is to low.');\n passedOpt.reloadInterval = defOpt.reloadInterval;\n }\n this.options = defaults(options, this.options || {}, defOpt);\n this.allOptions = allOptions;\n this.somethingLoaded = false;\n this.isProjectNotExisting = false;\n this.storage = getStorage(this.options.storageExpiration);\n if (this.options.pull) {\n console.warn('The pull API was removed use \"private: true\" option instead: https://www.locize.com/docs/api#fetch-private-namespace-resources');\n }\n var hostname = typeof window !== 'undefined' && window.location && window.location.hostname;\n if (hostname) {\n this.isAddOrUpdateAllowed = typeof this.options.allowedAddOrUpdateHosts === 'function' ? this.options.allowedAddOrUpdateHosts(hostname) : this.options.allowedAddOrUpdateHosts.indexOf(hostname) > -1;\n if (services && services.logger && (allOptions.saveMissing || allOptions.updateMissing)) {\n if (!this.isAddOrUpdateAllowed) {\n services.logger.warn(typeof this.options.allowedAddOrUpdateHosts === 'function' ? \"locize-backend: will not save or update missings because allowedAddOrUpdateHosts returned false for the host \\\"\".concat(hostname, \"\\\".\") : \"locize-backend: will not save or update missings because the host \\\"\".concat(hostname, \"\\\" was not in the list of allowedAddOrUpdateHosts: \").concat(this.options.allowedAddOrUpdateHosts.join(', '), \" (matches need to be exact).\"));\n } else if (hostname !== 'localhost') {\n services.logger.warn(\"locize-backend: you are using the save or update missings feature from this host \\\"\".concat(hostname, \"\\\".\\nMake sure you will not use it in production!\\nhttps://www.locize.com/docs/going-to-production\"));\n }\n }\n } else {\n this.isAddOrUpdateAllowed = true;\n }\n if (typeof callback === 'function') {\n this.getOptions(function (err, opts, languages) {\n if (err) return callback(err);\n _this.options.referenceLng = options.referenceLng || opts.referenceLng || _this.options.referenceLng;\n callback(null, opts, languages);\n });\n }\n this.queuedWrites = {\n pending: {}\n };\n this.debouncedProcess = debounce(this.process, this.options.writeDebounce);\n if (this.interval) clearInterval(this.interval);\n if (this.options.reloadInterval && this.options.projectId) {\n this.interval = setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n if (_typeof(this.interval) === 'object' && typeof this.interval.unref === 'function') this.interval.unref();\n }\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this2 = this;\n var _ref = this.services || {\n logger: console\n },\n backendConnector = _ref.backendConnector,\n languageUtils = _ref.languageUtils,\n logger = _ref.logger;\n if (!backendConnector) return;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this2.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }, {\n key: \"getLanguages\",\n value: function getLanguages(callback) {\n var _this3 = this;\n var deferred;\n if (!callback) {\n deferred = defer();\n callback = function callback(err, ret) {\n if (err) return deferred.reject(err);\n deferred.resolve(ret);\n };\n }\n var isMissing = isMissingOption(this.options, ['projectId']);\n if (isMissing) {\n callback(new Error(isMissing));\n return deferred;\n }\n var url = interpolate(this.options.getLanguagesPath, {\n projectId: this.options.projectId\n });\n if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n this.isProjectNotExisting = true;\n }\n if (this.isProjectNotExisting) {\n callback(new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\")));\n return deferred;\n }\n this.getLanguagesCalls = this.getLanguagesCalls || [];\n this.getLanguagesCalls.push(callback);\n if (this.getLanguagesCalls.length > 1) return deferred;\n this.loadUrl({}, url, function (err, ret, info) {\n if (!_this3.somethingLoaded && info && info.resourceNotExisting) {\n _this3.isProjectNotExisting = true;\n _this3.storage.setProjectNotExisting(_this3.options.projectId);\n var e = new Error(\"locize project \".concat(_this3.options.projectId, \" does not exist!\"));\n var _clbs = _this3.getLanguagesCalls;\n _this3.getLanguagesCalls = [];\n return _clbs.forEach(function (clb) {\n return clb(e);\n });\n }\n if (ret) {\n var referenceLng = Object.keys(ret).reduce(function (mem, k) {\n var item = ret[k];\n if (item.isReferenceLanguage) mem = k;\n return mem;\n }, '');\n if (referenceLng && _this3.options.referenceLng !== referenceLng) {\n _this3.options.referenceLng = referenceLng;\n }\n }\n _this3.somethingLoaded = true;\n var clbs = _this3.getLanguagesCalls;\n _this3.getLanguagesCalls = [];\n clbs.forEach(function (clb) {\n return clb(err, ret);\n });\n });\n return deferred;\n }\n }, {\n key: \"getOptions\",\n value: function getOptions(callback) {\n var _this4 = this;\n var deferred;\n if (!callback) {\n deferred = defer();\n callback = function callback(err, ret) {\n if (err) return deferred.reject(err);\n deferred.resolve(ret);\n };\n }\n this.getLanguages(function (err, data) {\n if (err) return callback(err);\n var keys = Object.keys(data);\n if (!keys.length) {\n return callback(new Error('was unable to load languages via API'));\n }\n var lngs = keys.reduce(function (mem, k) {\n var item = data[k];\n if (item.translated[_this4.options.version] && item.translated[_this4.options.version] >= _this4.options.translatedPercentageThreshold) {\n mem.push(k);\n }\n return mem;\n }, []);\n var hasRegion = keys.reduce(function (mem, k) {\n if (k.indexOf('-') > -1) return true;\n return mem;\n }, false);\n callback(null, {\n fallbackLng: _this4.options.referenceLng,\n referenceLng: _this4.options.referenceLng,\n supportedLngs: lngs.length === 0 && _this4.options.referenceLng ? [_this4.options.referenceLng] : lngs,\n load: hasRegion ? 'all' : 'languageOnly'\n }, data);\n });\n return deferred;\n }\n }, {\n key: \"checkIfProjectExists\",\n value: function checkIfProjectExists(callback) {\n var _this5 = this;\n var _ref2 = this.services || {\n logger: console\n },\n logger = _ref2.logger;\n if (this.somethingLoaded) {\n if (callback) callback(null);\n return;\n }\n if (this.alreadyRequestedCheckIfProjectExists) {\n setTimeout(function () {\n return _this5.checkIfProjectExists(callback);\n }, this.options.checkForProjectTimeout);\n return;\n }\n this.alreadyRequestedCheckIfProjectExists = true;\n this.getLanguages(function (err) {\n if (err && err.message && err.message.indexOf('does not exist') > 0) {\n if (logger) logger.error(err.message);\n }\n if (callback) callback(err);\n });\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this6 = this;\n var _ref3 = this.services || {\n logger: console\n },\n logger = _ref3.logger;\n var url;\n var options = {};\n if (this.options.private) {\n var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey']);\n if (isMissing) return callback(new Error(isMissing), false);\n url = interpolate(this.options.privatePath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n options = {\n authorize: true\n };\n } else {\n var _isMissing = isMissingOption(this.options, ['projectId', 'version']);\n if (_isMissing) return callback(new Error(_isMissing), false);\n url = interpolate(this.options.loadPath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n }\n if (!this.isProjectNotExisting && this.storage.isProjectNotExisting(this.options.projectId)) {\n this.isProjectNotExisting = true;\n }\n if (this.isProjectNotExisting) {\n var err = new Error(\"locize project \".concat(this.options.projectId, \" does not exist!\"));\n if (logger) logger.error(err.message);\n if (callback) callback(err);\n return;\n }\n this.loadUrl(options, url, function (err, ret, info) {\n if (!_this6.somethingLoaded) {\n if (info && info.resourceNotExisting) {\n setTimeout(function () {\n return _this6.checkIfProjectExists();\n }, _this6.options.checkForProjectTimeout);\n } else {\n _this6.somethingLoaded = true;\n }\n }\n callback(err, ret);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(options, url, payload, callback) {\n var _this7 = this;\n options = defaults(options, this.options);\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n var clb = function clb(err, res) {\n var resourceNotExisting = res && res.resourceNotExisting;\n if (res && (res.status === 408 || res.status === 400)) {\n return callback('failed loading ' + url, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) {\n return callback('failed loading ' + url, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (res && res.status >= 400 && res.status < 500) {\n return callback('failed loading ' + url, false, {\n resourceNotExisting: resourceNotExisting\n });\n }\n if (!res && err && err.message) {\n var errorMessage = err.message.toLowerCase();\n var isNetworkError = ['failed', 'fetch', 'network', 'load'].find(function (term) {\n return errorMessage.indexOf(term) > -1;\n });\n if (isNetworkError) {\n return callback('failed loading ' + url + ': ' + err.message, true, {\n resourceNotExisting: resourceNotExisting\n });\n }\n }\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = JSON.parse(res.data);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n if (_this7.options.failLoadingOnEmptyJSON && !Object.keys(ret).length) {\n return callback('loaded result empty for ' + url, false, {\n resourceNotExisting: resourceNotExisting\n });\n }\n callback(null, ret, {\n resourceNotExisting: resourceNotExisting\n });\n };\n if (!this.options.request || url.indexOf(\"/languages/\".concat(options.projectId)) > 0) return request(options, url, payload, clb);\n var info = getCustomRequestInfo(url, options, payload);\n handleCustomRequest(this.options, info, clb);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback, options) {\n var _this8 = this;\n if (typeof callback !== 'function') callback = function callback() {};\n this.checkIfProjectExists(function (err) {\n if (err) return callback(err);\n var isMissing = isMissingOption(_this8.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n if (!_this8.isAddOrUpdateAllowed) {\n return callback('host is not allowed to create key.');\n }\n if (typeof languages === 'string') languages = [languages];\n if (languages.filter(function (l) {\n return l === _this8.options.referenceLng;\n }).length < 1) {\n _this8.services && _this8.services.logger && _this8.services.logger.warn(\"locize-backend: will not save missings because the reference language \\\"\".concat(_this8.options.referenceLng, \"\\\" was not in the list of to save languages: \").concat(languages.join(', '), \" (open your site in the reference language to save missings).\"));\n }\n languages.forEach(function (lng) {\n if (lng === _this8.options.referenceLng) {\n _this8.queue.call(_this8, _this8.options.referenceLng, namespace, key, fallbackValue, callback, options);\n }\n });\n });\n }\n }, {\n key: \"update\",\n value: function update(languages, namespace, key, fallbackValue, callback, options) {\n var _this9 = this;\n if (typeof callback !== 'function') callback = function callback() {};\n this.checkIfProjectExists(function (err) {\n if (err) return callback(err);\n var isMissing = isMissingOption(_this9.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n if (!_this9.isAddOrUpdateAllowed) {\n return callback('host is not allowed to update key.');\n }\n if (!options) options = {};\n if (typeof languages === 'string') languages = [languages];\n options.isUpdate = true;\n languages.forEach(function (lng) {\n if (lng === _this9.options.referenceLng) {\n _this9.queue.call(_this9, _this9.options.referenceLng, namespace, key, fallbackValue, callback, options);\n }\n });\n });\n }\n }, {\n key: \"writePage\",\n value: function writePage(lng, namespace, missings, callback) {\n var missingUrl = interpolate(this.options.addPath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var updatesUrl = interpolate(this.options.updatePath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var hasMissing = false;\n var hasUpdates = false;\n var payloadMissing = {};\n var payloadUpdate = {};\n missings.forEach(function (item) {\n var value = item.options && item.options.tDescription ? {\n value: item.fallbackValue || '',\n context: {\n text: item.options.tDescription\n }\n } : item.fallbackValue || '';\n if (item.options && item.options.isUpdate) {\n if (!hasUpdates) hasUpdates = true;\n payloadUpdate[item.key] = value;\n } else {\n if (!hasMissing) hasMissing = true;\n payloadMissing[item.key] = value;\n }\n });\n var todo = 0;\n if (hasMissing) todo++;\n if (hasUpdates) todo++;\n var doneOne = function doneOne(err) {\n todo--;\n if (!todo) callback(err);\n };\n if (!todo) doneOne();\n if (hasMissing) {\n if (!this.options.request) {\n request(defaults({\n authorize: true\n }, this.options), missingUrl, payloadMissing, doneOne);\n } else {\n var info = getCustomRequestInfo(missingUrl, defaults({\n authorize: true\n }, this.options), payloadMissing);\n handleCustomRequest(this.options, info, doneOne);\n }\n }\n if (hasUpdates) {\n if (!this.options.request) {\n request(defaults({\n authorize: true\n }, this.options), updatesUrl, payloadUpdate, doneOne);\n } else {\n var _info = getCustomRequestInfo(updatesUrl, defaults({\n authorize: true\n }, this.options), payloadUpdate);\n handleCustomRequest(this.options, _info, doneOne);\n }\n }\n }\n }, {\n key: \"write\",\n value: function write(lng, namespace) {\n var _this10 = this;\n var lock = getPath(this.queuedWrites, ['locks', lng, namespace]);\n if (lock) return;\n var missings = getPath(this.queuedWrites, [lng, namespace]);\n setPath(this.queuedWrites, [lng, namespace], []);\n var pageSize = 1000;\n var clbs = missings.filter(function (m) {\n return m.callback;\n }).map(function (missing) {\n return missing.callback;\n });\n if (missings.length) {\n setPath(this.queuedWrites, ['locks', lng, namespace], true);\n var namespaceSaved = function namespaceSaved() {\n setPath(_this10.queuedWrites, ['locks', lng, namespace], false);\n clbs.forEach(function (clb) {\n return clb();\n });\n if (_this10.options.onSaved) _this10.options.onSaved(lng, namespace);\n _this10.debouncedProcess(lng, namespace);\n };\n var amountOfPages = missings.length / pageSize;\n var pagesDone = 0;\n var page = missings.splice(0, pageSize);\n this.writePage(lng, namespace, page, function () {\n pagesDone++;\n if (pagesDone >= amountOfPages) namespaceSaved();\n });\n while (page.length === pageSize) {\n page = missings.splice(0, pageSize);\n if (page.length) {\n this.writePage(lng, namespace, page, function () {\n pagesDone++;\n if (pagesDone >= amountOfPages) namespaceSaved();\n });\n }\n }\n }\n }\n }, {\n key: \"process\",\n value: function process() {\n var _this11 = this;\n Object.keys(this.queuedWrites).forEach(function (lng) {\n if (lng === 'locks') return;\n Object.keys(_this11.queuedWrites[lng]).forEach(function (ns) {\n var todo = _this11.queuedWrites[lng][ns];\n if (todo.length) {\n _this11.write(lng, ns);\n }\n });\n });\n }\n }, {\n key: \"queue\",\n value: function queue(lng, namespace, key, fallbackValue, callback, options) {\n pushPath(this.queuedWrites, [lng, namespace], {\n key: key,\n fallbackValue: fallbackValue || '',\n callback: callback,\n options: options\n });\n this.debouncedProcess();\n }\n }]);\n}();\nI18NextLocizeBackend.type = 'backend';\nexport default I18NextLocizeBackend;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar fetchApi = typeof fetch === 'function' ? fetch : undefined;\nif (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n} else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n}\nvar XmlHttpRequestApi;\nif (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object') {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nif (!fetchApi && !XmlHttpRequestApi && !ActiveXObjectApi) {\n try {\n import('cross-fetch').then(function (mod) {\n fetchApi = mod.default;\n }).catch(function () {});\n } catch (e) {}\n}\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n var resolver = function resolver(response) {\n var resourceNotExisting = response.headers && response.headers.get('x-cache') === 'Error from cloudfront';\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status,\n resourceNotExisting: resourceNotExisting\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data,\n resourceNotExisting: resourceNotExisting\n });\n }).catch(callback);\n };\n var headers = {\n Authorization: options.authorize && options.apiKey ? options.apiKey : undefined,\n 'Content-Type': 'application/json'\n };\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"locize-lastused (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (typeof fetch === 'function') {\n fetch(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n } else {\n fetchApi(url, {\n method: payload ? 'POST' : 'GET',\n body: payload ? JSON.stringify(payload) : undefined,\n headers: headers\n }).then(resolver).catch(callback);\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n try {\n var x = XmlHttpRequestApi ? new XmlHttpRequestApi() : new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (options.authorize && options.apiKey) {\n x.setRequestHeader('Authorization', options.apiKey);\n }\n if (payload || options.setContentTypeJSON) {\n x.setRequestHeader('Content-Type', 'application/json');\n }\n x.onreadystatechange = function () {\n var resourceNotExisting = x.getResponseHeader('x-cache') === 'Error from cloudfront';\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText,\n resourceNotExisting: resourceNotExisting\n });\n };\n x.send(JSON.stringify(payload));\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object' || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","var INVISIBLE_CHARACTERS = [\"\\u200B\", \"\\u200C\"];\nvar INVISIBLE_REGEX = RegExp(\"([\".concat(INVISIBLE_CHARACTERS.join(''), \"]{9})+\"), 'gu');\nvar TEMPLATE_MINIMUM_LENGTH = '{\"k\":\"a\"}'.length;\nvar invisibleStartMarker = 'subliminal:start';\nvar toBytes = function toBytes(text) {\n return Array.from(new TextEncoder().encode(text));\n};\nvar fromBytes = function fromBytes(bytes) {\n return new TextDecoder().decode(new Uint8Array(bytes));\n};\nvar padToWholeBytes = function padToWholeBytes(binary) {\n var needsToAdd = 8 - binary.length;\n return '0'.repeat(needsToAdd) + binary;\n};\nvar encodeMessage = function encodeMessage(text) {\n var bytes = toBytes(text).map(Number);\n var binary = bytes.map(function (byte) {\n return padToWholeBytes(byte.toString(2)) + '0';\n }).join('');\n var result = Array.from(binary).map(function (b) {\n return INVISIBLE_CHARACTERS[Number(b)];\n }).join('');\n return result;\n};\nvar encodedInvisibleStartMarker = encodeMessage(invisibleStartMarker) ;\nvar decodeMessage = function decodeMessage(message) {\n var binary = Array.from(message).map(function (character) {\n return INVISIBLE_CHARACTERS.indexOf(character);\n }).map(String).join('');\n var textBytes = binary.match(/(.{9})/g);\n var codes = Uint8Array.from((textBytes === null || textBytes === void 0 ? void 0 : textBytes.map(function (byte) {\n return parseInt(byte.slice(0, 8), 2);\n })) || []);\n return fromBytes(codes);\n};\nvar decodeFromText = function decodeFromText(text) {\n var _text$match;\n var invisibleMessages = (_text$match = text.match(INVISIBLE_REGEX)) === null || _text$match === void 0 ? void 0 : _text$match.filter(function (m) {\n return m.length > TEMPLATE_MINIMUM_LENGTH - 1;\n });\n if (!invisibleMessages || invisibleMessages.length === 0) return;\n return decodeMessage(invisibleMessages[invisibleMessages.length - 1]);\n};\nvar removeInvisibles = function removeInvisibles(text) {\n return text.replace(INVISIBLE_REGEX, '');\n};\nvar encodeValue = function encodeValue(data) {\n if (Object.keys(data).length === 0) return data;\n var value = {\n k: data.key,\n n: data.ns,\n l: data.lng,\n s: data.source\n };\n return JSON.stringify(value);\n};\nvar decodeValue = function decodeValue(value) {\n if (!value || typeof value !== 'string' || value.indexOf('{') !== 0) return;\n try {\n var parsed = JSON.parse(value || '{}');\n return {\n key: parsed.k,\n ns: parsed.n,\n lng: parsed.l,\n source: parsed.s\n };\n } catch (e) {\n return undefined;\n }\n};\nfunction wrap(text) {\n var invisibleMeta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var encodedValue = encodeValue(invisibleMeta);\n var invisibleMark = encodeMessage(encodedValue);\n return typeof text === 'string' && text ? encodedInvisibleStartMarker + text + invisibleMark : text;\n}\nfunction unwrap(text) {\n var encodedValue = decodeFromText(text);\n var decodedVal = decodeValue(encodedValue);\n var result = removeInvisibles(text);\n return {\n text: result,\n invisibleMeta: decodedVal\n };\n}\nfunction containsHiddenMeta(text) {\n if (!text || text.length < 27) return false;\n if (!INVISIBLE_REGEX.test(text)) return false;\n var lastByte = text.substring(text.length - 9);\n var lastChar = decodeMessage(lastByte);\n return lastChar === '}';\n}\nfunction containsHiddenStartMarker(text) {\n return text.startsWith(encodedInvisibleStartMarker);\n}\n\nexport { containsHiddenMeta, containsHiddenStartMarker, unwrap, wrap };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { wrap } from './encoder.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar postProcessorName = 'subliminal';\nvar SubliminalPostProcessor = {\n name: postProcessorName,\n type: 'postProcessor',\n options: {},\n setOptions: function setOptions(options) {\n this.options = _objectSpread(_objectSpread({}, options), this.options);\n },\n process: function process(value, keyIn, options, translator) {\n var opt = this.options = _objectSpread(_objectSpread({}, options), this.options);\n var key, ns, lng, source;\n if (options.i18nResolved) {\n key = options.i18nResolved.exactUsedKey;\n ns = options.i18nResolved.usedNS;\n lng = options.i18nResolved.usedLng;\n if (options.i18nResolved.res === undefined) {\n if (key !== value) {\n source = 'default';\n } else {\n source = 'key';\n }\n } else {\n source = 'translation';\n }\n } else {\n var _ref, _opt$keySeparator, _translator$options, _ref2, _namespaces$, _translator$options2;\n var keySeparator = (_ref = (_opt$keySeparator = opt.keySeparator) !== null && _opt$keySeparator !== void 0 ? _opt$keySeparator : translator === null || translator === void 0 || (_translator$options = translator.options) === null || _translator$options === void 0 ? void 0 : _translator$options.keySeparator) !== null && _ref !== void 0 ? _ref : '.';\n var _translator$extractFr = translator.extractFromKey(keyIn.join(keySeparator), options),\n extractedKey = _translator$extractFr.key,\n namespaces = _translator$extractFr.namespaces;\n key = extractedKey;\n ns = (_ref2 = (_namespaces$ = namespaces === null || namespaces === void 0 ? void 0 : namespaces[0]) !== null && _namespaces$ !== void 0 ? _namespaces$ : opt.ns) !== null && _ref2 !== void 0 ? _ref2 : translator === null || translator === void 0 || (_translator$options2 = translator.options) === null || _translator$options2 === void 0 ? void 0 : _translator$options2.defaultNS;\n lng = options.lng || this.language;\n if (key === value) {\n source = 'key';\n } else {\n source = 'translation';\n }\n }\n return wrap(value, {\n key: key,\n ns: ns,\n lng: lng,\n source: source\n });\n },\n overloadTranslationOptionHandler: function overloadTranslationOptionHandler() {\n return {\n postProcess: postProcessorName,\n postProcessPassResolved: true\n };\n }\n};\n\nexport { SubliminalPostProcessor as default };\n","var validAttributes = ['placeholder', 'title', 'alt'];\nvar colors = {\n highlight: '#26a69a',\n warning: '#e67a00'\n};\nvar getIframeUrl = function getIframeUrl() {\n var _prc$env;\n var p;\n if (typeof process !== 'undefined') p = process;\n if (!p && typeof window !== 'undefined') p = window.process;\n var prc = p || {};\n var env = ((_prc$env = prc.env) === null || _prc$env === void 0 ? void 0 : _prc$env.locizeIncontext) || 'production';\n return env === 'development' ? 'http://localhost:3003/' : env === 'staging' ? 'https://incontext-dev.locize.app' : 'https://incontext.locize.app';\n};\n\nexport { colors, getIframeUrl, validAttributes };\n","var sheet = function () {\n if (typeof document === 'undefined') return;\n var style = document.createElement('style');\n document.head.appendChild(style);\n return style.sheet;\n}();\n\nexport { sheet };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { getIframeUrl } from '../vars.js';\nimport { store } from '../store.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar legacyEventMapping = {\n committed: 'commitKeys'\n};\nfunction getMappedLegacyEvent(msg) {\n if (legacyEventMapping[msg]) return legacyEventMapping[msg];\n return msg;\n}\nfunction addLocizeSavedHandler(handler) {\n api.locizeSavedHandler = handler;\n}\nfunction turnOn() {\n api.scriptTurnedOff = false;\n api.turnOn();\n return api.scriptTurnedOff;\n}\nfunction turnOff() {\n api.turnOff();\n api.scriptTurnedOff = true;\n return api.scriptTurnedOff;\n}\nfunction setEditorLng(lng) {\n api.sendCurrentTargetLanguage(lng);\n}\nvar pendingMsgs = [];\nfunction sendMessage(action, payload) {\n if (!api.source) {\n var _document$getElementB;\n api.source = (_document$getElementB = document.getElementById('i18next-editor-iframe')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.contentWindow;\n }\n if (!api.origin) api.origin = getIframeUrl();\n if (!api.source || !api.source.postMessage) {\n pendingMsgs.push({\n action: action,\n payload: payload\n });\n return;\n }\n if (api.legacy) {\n api.source.postMessage(_objectSpread({\n message: action\n }, payload), api.origin);\n } else {\n api.source.postMessage({\n sender: 'i18next-editor',\n senderAPIVersion: 'v1',\n action: action,\n message: action,\n payload: payload\n }, api.origin);\n }\n var todo = pendingMsgs;\n pendingMsgs = [];\n todo.forEach(function (_ref) {\n var action = _ref.action,\n payload = _ref.payload;\n sendMessage(action, payload);\n });\n}\nvar handlers = {};\nvar repeat = 5;\nvar api = {\n init: function init(implementation, clickHandler) {\n api.i18n = implementation;\n api.clickHandler = clickHandler;\n },\n requestInitialize: function requestInitialize(payload) {\n sendMessage('requestInitialize', payload);\n if (api.initInterval) return;\n api.initInterval = setInterval(function () {\n repeat = repeat - 1;\n api.requestInitialize(payload);\n if (repeat < 0 && api.initInterval) {\n clearInterval(api.initInterval);\n delete api.initInterval;\n }\n }, 1000);\n },\n selectKey: function selectKey(meta) {\n sendMessage('selectKey', meta);\n },\n confirmResourceBundle: function confirmResourceBundle(payload) {\n sendMessage('confirmResourceBundle', payload);\n },\n sendCurrentParsedContent: function sendCurrentParsedContent() {\n sendMessage('sendCurrentParsedContent', {\n content: Object.values(store.data).map(function (item) {\n return {\n id: item.id,\n keys: item.keys\n };\n })\n });\n },\n sendCurrentTargetLanguage: function sendCurrentTargetLanguage(lng) {\n sendMessage('sendCurrentTargetLanguage', {\n targetLng: lng || api.i18n.getLng()\n });\n },\n addHandler: function addHandler(action, fc) {\n if (!handlers[action]) handlers[action] = [];\n handlers[action].push(fc);\n },\n sendLocizeIsEnabled: function sendLocizeIsEnabled() {\n sendMessage('locizeIsEnabled', {\n enabled: true\n });\n },\n turnOn: function turnOn() {\n if (api.scriptTurnedOff) return sendMessage('forcedOff');\n if (!api.clickInterceptionEnabled) {\n window.document.body.addEventListener('click', api.clickHandler, true);\n }\n api.clickInterceptionEnabled = true;\n sendMessage('turnedOn');\n },\n turnOff: function turnOff() {\n if (api.scriptTurnedOff) return sendMessage('forcedOff');\n if (api.clickInterceptionEnabled) {\n window.document.body.removeEventListener('click', api.clickHandler, true);\n }\n api.clickInterceptionEnabled = false;\n sendMessage('turnedOff');\n },\n onAddedKey: function onAddedKey(lng, ns, key, value) {\n var msg = {\n lng: lng,\n ns: ns,\n key: key,\n value: value\n };\n sendMessage('added', msg);\n }\n};\nif (typeof window !== 'undefined') {\n window.addEventListener('message', function (e) {\n var _e$data = e.data,\n sender = _e$data.sender,\n action = _e$data.action,\n message = _e$data.message,\n payload = _e$data.payload;\n if (message) {\n var usedEventName = getMappedLegacyEvent(message);\n if (handlers[usedEventName]) {\n handlers[usedEventName].forEach(function (fc) {\n fc(payload, e);\n });\n }\n } else if (sender === 'i18next-editor-frame' && handlers[action]) {\n handlers[action].forEach(function (fc) {\n fc(payload);\n });\n }\n });\n}\n\nexport { addLocizeSavedHandler, api, sendMessage, setEditorLng, turnOff, turnOn };\n","import { wrap } from 'i18next-subliminal';\nimport { api } from './postMessage.js';\nimport { store } from '../store.js';\n\nfunction setValueOnNode(meta, value) {\n var item = store.get(meta.eleUniqueID);\n if (!item || !item.keys[meta.textType]) return;\n var txtWithHiddenMeta = wrap(value, item.subliminal);\n if (meta.textType === 'text') {\n item.node.textContent = txtWithHiddenMeta;\n } else if (meta.textType.indexOf('attr:') === 0) {\n var attr = meta.textType.replace('attr:', '');\n item.node.setAttribute(attr, txtWithHiddenMeta);\n } else if (meta.textType === 'html') {\n var id = \"\".concat(meta.textType, \"-\").concat(meta.children);\n if (!item.originalChildNodes) {\n var clones = [];\n item.node.childNodes.forEach(function (c) {\n clones.push(c);\n });\n item.originalChildNodes = clones;\n }\n if (item.children[id].length === item.node.childNodes.length) {\n item.node.innerHTML = txtWithHiddenMeta;\n } else {\n var children = item.children[id];\n var first = children[0].child;\n var dummy = document.createElement('div');\n dummy.innerHTML = txtWithHiddenMeta;\n var nodes = [];\n dummy.childNodes.forEach(function (c) {\n nodes.push(c);\n });\n nodes.forEach(function (c) {\n try {\n item.node.insertBefore(c, first);\n } catch (error) {\n item.node.appendChild(c);\n }\n });\n children.forEach(function (replaceable) {\n if (item.node.contains(replaceable.child)) item.node.removeChild(replaceable.child);\n });\n }\n }\n}\nfunction handler(payload) {\n var meta = payload.meta,\n value = payload.value;\n if (meta && value !== undefined) {\n setValueOnNode(meta, value);\n }\n}\napi.addHandler('editKey', handler);\n\nexport { setValueOnNode };\n","import { api } from './postMessage.js';\nimport { setValueOnNode } from './handleEditKey.js';\n\nfunction handler(payload) {\n var meta = payload.meta,\n value = payload.value,\n lng = payload.lng;\n if (meta && value !== undefined) {\n setValueOnNode(meta, value);\n var usedLng = lng || api.i18n.getLng();\n api.i18n.setResource(usedLng, meta.ns, meta.key, value);\n api.i18n.triggerRerender();\n }\n}\napi.addHandler('commitKey', handler);\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { resetHighlight } from './ui/highlightNode.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar data = {};\nfunction clean() {\n Object.values(data).forEach(function (item) {\n if (!document.body.contains(item.node)) {\n resetHighlight(item.id, item.node);\n delete data[item.id];\n }\n });\n}\nfunction save(id, type, node) {\n if (!id || !type || !node) return;\n if (!data[id]) {\n data[id] = {\n id: id,\n node: node\n };\n }\n data[id].keys = _objectSpread(_objectSpread({}, data[id].keys), {}, _defineProperty({}, \"\".concat(type), 'uninstrumented'));\n}\nfunction get(id) {\n return data[id];\n}\nvar uninstrumentedStore = {\n save: save,\n clean: clean,\n get: get,\n data: data\n};\n\nexport { uninstrumentedStore };\n","import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport { api } from './postMessage.js';\nimport { store } from '../store.js';\nimport { setValueOnNode } from './handleEditKey.js';\n\nfunction handler(payload) {\n var updated = payload.updated;\n updated.forEach(function (item) {\n var lng = item.lng,\n ns = item.ns,\n key = item.key,\n data = item.data,\n metas = item.metas,\n meta = item.meta;\n if (meta && data.value) setValueOnNode(meta, data.value);\n if (metas) {\n Object.values(metas).forEach(function (metaItem) {\n setValueOnNode(metaItem, data.value);\n });\n }\n api.i18n.setResource(lng, ns, key, data.value);\n });\n Object.values(store.data).forEach(function (item) {\n if (item.originalChildNodes) {\n var _item$node;\n (_item$node = item.node).replaceChildren.apply(_item$node, _toConsumableArray(item.originalChildNodes));\n }\n });\n api.i18n.triggerRerender();\n if (api.locizeSavedHandler) api.locizeSavedHandler(payload);\n if (window.locizeSavedHandler) window.locizeSavedHandler(payload);\n}\napi.addHandler('commitKeys', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload) {\n api.initialized = true;\n clearInterval(api.initInterval);\n delete api.initInterval;\n api.sendCurrentParsedContent();\n api.sendCurrentTargetLanguage();\n}\napi.addHandler('confirmInitialized', handler);\n","function isInViewport(el) {\n var rect = el.getBoundingClientRect();\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var vertInView = rect.top <= windowHeight && rect.top + rect.height >= 0;\n var horInView = rect.left <= windowWidth && rect.left + rect.width >= 0;\n return vertInView && horInView;\n}\nfunction mouseDistanceFromElement(mouseEvent, element) {\n var $n = element,\n mX = mouseEvent.pageX,\n mY = mouseEvent.pageY,\n from = {\n x: mX,\n y: mY\n },\n off = $n.getBoundingClientRect(),\n ny1 = off.top + document.documentElement.scrollTop,\n ny2 = ny1 + $n.offsetHeight,\n nx1 = off.left + document.documentElement.scrollLeft,\n nx2 = nx1 + $n.offsetWidth,\n maxX1 = Math.max(mX, nx1),\n minX2 = Math.min(mX, nx2),\n maxY1 = Math.max(mY, ny1),\n minY2 = Math.min(mY, ny2),\n intersectX = minX2 >= maxX1,\n intersectY = minY2 >= maxY1,\n to = {\n x: intersectX ? mX : nx2 < mX ? nx2 : nx1,\n y: intersectY ? mY : ny2 < mY ? ny2 : ny1\n },\n distX = to.x - from.x,\n distY = to.y - from.y,\n hypot = Math.pow(Math.pow(distX, 2) + Math.pow(distY, 2), 1 / 2);\n return Math.floor(hypot);\n}\n\nexport { isInViewport, mouseDistanceFromElement };\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nfunction getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\nfunction offset(elem) {\n var box = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n var doc = elem && elem.ownerDocument;\n var docElem = doc && doc.documentElement;\n if (!docElem) return box;\n if (_typeof(elem.getBoundingClientRect) !== (\"undefined\" )) {\n box = elem.getBoundingClientRect();\n }\n var win = getWindow(doc);\n var top = box.top + win.pageYOffset - docElem.clientTop;\n var left = box.left + win.pageXOffset - docElem.clientLeft;\n return {\n top: top,\n left: left,\n right: left + (box.right - box.left),\n bottom: top + (box.bottom - box.top)\n };\n}\nfunction getClickedElement(e) {\n if (e.srcElement && e.srcElement.nodeType === 1 && (e.srcElement.nodeName === 'BUTTON' || e.srcElement.nodeName === 'INPUT')) {\n if (e.srcElement.getAttribute && e.srcElement.getAttribute('ignorelocizeeditor') === '') {\n return null;\n }\n return e.srcElement;\n }\n var el;\n if (e.originalEvent && e.originalEvent.explicitOriginalTarget) {\n el = e.originalEvent.explicitOriginalTarget;\n } else {\n var parent = e.srcElement;\n if (parent.getAttribute && parent.getAttribute('ignorelocizeeditor') === '') return null;\n var left = e.pageX;\n var top = e.pageY;\n var topStartsAt = 0;\n var topBreaksAt;\n for (var i = 0; i < parent.childNodes.length; i++) {\n var n = parent.childNodes[i];\n var nOffset = offset(n);\n if (n.nodeType === 1 && nOffset.bottom < top) topStartsAt = i + 1;\n if (!topBreaksAt && nOffset.top + (n.clientHeight || 0) > top) topBreaksAt = i;\n }\n if (topStartsAt + 1 > parent.childNodes.length) topStartsAt = parent.childNodes.length - 1;\n if (!topBreaksAt) topBreaksAt = parent.childNodes.length;\n for (var y = topStartsAt; y < topBreaksAt; y++) {\n var _n = parent.childNodes[y];\n var _nOffset = offset(_n);\n if (_nOffset.left > left) {\n break;\n }\n if (_n && _n.nodeType !== 8) el = _n;\n }\n }\n return el;\n}\nfunction getElementText(el) {\n var str = el.textContent || el.text && el.text.innerText || el.placeholder;\n if (typeof str !== 'string') return;\n return str.replace(/\\n +/g, '').trim();\n}\nfunction getAttribute(el, name) {\n return el && el.getAttribute && el.getAttribute(name);\n}\nfunction getElementI18nKey(el) {\n var key = getAttribute(el, 'data-i18n');\n if (key) return key;\n if (el.nodeType === window.Node.TEXT_NODE && el.parentElement) {\n return getElementI18nKey(el.parentElement);\n }\n return undefined;\n}\nfunction getElementNamespace(el) {\n var found;\n var find = function find(ele) {\n var opts = getAttribute(ele, 'i18next-options');\n if (!opts) opts = getAttribute(ele, 'data-i18next-options');\n if (!opts) opts = getAttribute(ele, 'i18n-options');\n if (!opts) opts = getAttribute(ele, 'data-i18n-options');\n if (opts) {\n var jsonData = {};\n try {\n jsonData = JSON.parse(opts);\n } catch (e) {}\n if (jsonData.ns) found = jsonData.ns;\n }\n if (!found) found = getAttribute(ele, 'i18next-ns');\n if (!found) found = getAttribute(ele, 'data-i18next-ns');\n if (!found) found = getAttribute(ele, 'i18n-ns');\n if (!found) found = getAttribute(ele, 'data-i18n-ns');\n if (!found && ele.parentElement) find(ele.parentElement);\n };\n find(el);\n return found;\n}\nfunction getQsParameterByName(name, url) {\n if (typeof window === 'undefined') return null;\n if (!url) url = window.location.href.toLowerCase();\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n var results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n}\n\nexport { debounce, getClickedElement, getElementI18nKey, getElementNamespace, getElementText, getQsParameterByName, getWindow, isWindow, offset };\n","import { store } from '../store.js';\nimport { uninstrumentedStore } from '../uninstrumentedStore.js';\nimport { isInViewport, mouseDistanceFromElement } from './utils.js';\nimport { debounce } from '../utils.js';\nimport { highlight, resetHighlight, highlightUninstrumented } from './highlightNode.js';\n\nvar debouncedUpdateDistance = debounce(function (e, observer) {\n Object.values(store.data).forEach(function (item) {\n if (!isInViewport(item.node)) return;\n var distance = mouseDistanceFromElement(e, item.node);\n if (distance < 5) {\n highlight(item, item.node, item.keys);\n } else if (distance > 5) {\n var boxDistance = item.ribbonBox ? mouseDistanceFromElement(e, item.ribbonBox) : 1000;\n if (boxDistance > 10) resetHighlight(item, item.node, item.keys);\n }\n });\n Object.values(uninstrumentedStore.data).forEach(function (item) {\n if (!isInViewport(item.node)) return;\n var distance = mouseDistanceFromElement(e, item.node);\n if (distance < 10) {\n highlightUninstrumented(item, item.node, item.keys);\n } else if (distance > 10) {\n resetHighlight(item, item.node, item.keys);\n }\n });\n}, 50);\nvar currentFC;\nfunction startMouseTracking(observer) {\n currentFC = function handle(e) {\n debouncedUpdateDistance(e, observer);\n };\n document.addEventListener('mousemove', currentFC);\n}\nfunction stopMouseTracking() {\n document.removeEventListener('mousemove', currentFC);\n}\n\nexport { startMouseTracking, stopMouseTracking };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { colors } from '../vars.js';\nimport { RibbonBox } from './elements/ribbonBox.js';\nimport { computePosition, flip, shift, offset, arrow } from '@floating-ui/dom';\n\nvar eleToOutline = ['DIV', 'P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'OL', 'UL', 'ADDRESS', 'BLOCKQUOTE', 'DL', 'PRE'];\nvar overriddenStyles = ['outline', 'border-radius', 'outline-offset', 'filter'];\nvar originalStyles = {};\nvar selected = {};\nfunction highlight(item, node, keys) {\n var id = item.id;\n if (selected[id]) return;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = 'brightness(110%)';\n } else {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = 'brightness(110%)';\n }\n if (!item.ribbonBox) {\n var _RibbonBox = RibbonBox(keys),\n actions = _RibbonBox.box,\n arrowEle = _RibbonBox.arrow;\n document.body.appendChild(actions);\n var refEle = node;\n if (node.childNodes.length === 1) {\n var childNode = node.childNodes[0];\n if (childNode && childNode.nodeName === '#text') {\n var range = document.createRange();\n range.selectNode(childNode);\n var rect = range.getBoundingClientRect();\n refEle = {\n getBoundingClientRect: function getBoundingClientRect() {\n return rect;\n }\n };\n }\n }\n computePosition(refEle, actions, {\n placement: 'right',\n middleware: [flip({\n fallbackPlacements: ['left', 'bottom']\n }), shift(), offset(function (_ref) {\n var placement = _ref.placement,\n rects = _ref.rects;\n if (placement === 'bottom') return rects.r;\n return 35;\n }), arrow({\n element: arrowEle\n })]\n }).then(function (_ref2) {\n var x = _ref2.x,\n y = _ref2.y,\n middlewareData = _ref2.middlewareData,\n placement = _ref2.placement;\n Object.assign(actions.style, {\n left: \"\".concat(x, \"px\"),\n top: \"\".concat(y, \"px\"),\n display: 'inline-flex'\n });\n var side = placement.split('-')[0];\n var staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n }[side];\n if (middlewareData.arrow) {\n var _middlewareData$arrow = middlewareData.arrow,\n _x = _middlewareData$arrow.x,\n _y = _middlewareData$arrow.y;\n Object.assign(arrowEle.style, _defineProperty(_defineProperty({\n left: _x != null ? \"\".concat(_x, \"px\") : '',\n top: _y != null ? \"\".concat(_y, \"px\") : '',\n right: '',\n bottom: ''\n }, staticSide, \"\".concat(side === 'bottom' ? -18 : -25, \"px\")), \"transform\", side === 'bottom' ? 'rotate(90deg)' : side === 'left' ? 'rotate(180deg)' : ''));\n }\n });\n item.ribbonBox = actions;\n }\n}\nfunction highlightUninstrumented(item, node, keys) {\n var id = item.id;\n if (selected[id]) return;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.warning, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = 'brightness(110%)';\n } else {\n node.style.outline = \"\".concat(colors.warning, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = 'brightness(110%)';\n }\n}\nfunction selectedHighlight(item, node, keys) {\n var id = item.id;\n if (!originalStyles[id]) {\n originalStyles[id] = overriddenStyles.reduce(function (mem, s) {\n mem[s] = node.style[s];\n return mem;\n }, {});\n }\n if (eleToOutline.includes(node.nodeName)) {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '2px');\n node.style.filter = \"brightness(110%) drop-shadow(0px 0px 2px \".concat(colors.highlight, \" )\");\n } else {\n node.style.outline = \"\".concat(colors.highlight, \" solid 1px\");\n node.style.setProperty('border-radius', '1px');\n node.style.setProperty('outline-offset', '1px');\n node.style.filter = \"brightness(110%) drop-shadow(0px 0px 2px \".concat(colors.highlight, \" )\");\n }\n if (item.ribbonBox) {\n document.body.removeChild(item.ribbonBox);\n delete item.ribbonBox;\n }\n selected[id] = true;\n}\nfunction resetHighlight(item, node, keys) {\n var ignoreSelected = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var id = item.id;\n if (ignoreSelected && selected[id]) return;\n if (originalStyles[id]) {\n overriddenStyles.forEach(function (s) {\n node.style.setProperty(s, originalStyles[id][s]);\n });\n delete originalStyles[id];\n }\n if (item.ribbonBox) {\n document.body.removeChild(item.ribbonBox);\n delete item.ribbonBox;\n }\n delete selected[id];\n}\n\nexport { highlight, highlightUninstrumented, resetHighlight, selectedHighlight };\n","import { colors } from '../../vars.js';\nimport { sheet } from '../stylesheet.js';\nimport '../../api/handleEditKey.js';\nimport '../../api/handleCommitKey.js';\nimport '../../api/handleCommitKeys.js';\nimport '../../api/handleConfirmInitialized.js';\nimport '../../api/handleRequestPopupChanges.js';\nimport '../../api/handleRequestResourceBundle.js';\nimport '../../api/handleSelectedKeys.js';\nimport '../../api/handleIsLocizeEnabled.js';\nimport '../../api/handleTurnOn.js';\nimport '../../api/handleTurnOff.js';\nimport { api } from '../../api/postMessage.js';\nimport { RibbonLogo, EditIcon } from './icons.js';\n\nif (sheet) {\n sheet.insertRule('.i18next-editor-button:hover { background-color: rgba(38, 166, 154, 1) !important; }');\n}\nfunction RibbonButton(text, attrTitle, onClick) {\n var btn = document.createElement('button');\n btn.style = 'font-family: Arial; position: relative; backdrop-filter: blur(3px); cursor: pointer; padding: 2px 10px 2px 20px; font-size: 15px; font-weight: 300; text-transform: uppercase; color: #fff; background-color: rgba(38, 166, 154, 0.8); border: none; border-radius: 12px';\n btn.classList.add('i18next-editor-button');\n btn.setAttribute('data-i18next-editor-element', 'true');\n btn.setAttribute('title', attrTitle);\n var icon = EditIcon();\n icon.style = 'position: absolute; left: 4px; top: 3px;';\n icon.style.width = '15px';\n btn.appendChild(icon);\n var span = document.createElement('span');\n span.textContent = text;\n btn.appendChild(span);\n btn.onclick = onClick;\n return btn;\n}\nfunction RibbonBox() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var box = document.createElement('div');\n box.style = 'position: absolute; top: 0; left: 0; display: flex; align-items: flex-start; justify-content: center; filter: drop-shadow(0px 0px 20px #aaa );';\n box.setAttribute('data-i18next-editor-element', 'true');\n var arrow = document.createElement('div');\n arrow.style = \"\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-top-width: 7px;\\n border-bottom-width: 7px;\\n border-left-width: 10px;\\n border-right-width: 10px;\\n border-style: solid;\\n border-color: transparent \".concat(colors.highlight, \" transparent\\n transparent;\\n \");\n box.appendChild(arrow);\n var logo = RibbonLogo();\n box.appendChild(logo);\n var btnbox = document.createElement('div');\n btnbox.style = 'display: flex; flex-direction: column; align-items: flex-start; margin-left: 2px; margin-top: 1px';\n Object.keys(keys).forEach(function (k) {\n var data = keys[k];\n var btn = RibbonButton(k.replace('attr:', ''), \"\".concat(data.ns, \":\").concat(data.key), function () {\n api.selectKey(data);\n });\n btn.style.marginBottom = '2px';\n btnbox.appendChild(btn);\n });\n box.appendChild(btnbox);\n return {\n box: box,\n arrow: arrow\n };\n}\n\nexport { RibbonBox, RibbonButton };\n","import { colors } from '../../vars.js';\n\nvar iconEdit = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#FFFFFF\"><g></g><g><g><g><path d=\"M3,21l3.75,0L17.81,9.94l-3.75-3.75L3,17.25L3,21z M5,18.08l9.06-9.06l0.92,0.92L5.92,19L5,19L5,18.08z\"/></g><g><path d=\"M18.37,3.29c-0.39-0.39-1.02-0.39-1.41,0l-1.83,1.83l3.75,3.75l1.83-1.83c0.39-0.39,0.39-1.02,0-1.41L18.37,3.29z\"/></g></g></g></svg>';\nvar i18nextIcon = \"\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 210 304\\\" stroke=\\\"#000\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"#fff\\\" fill-rule=\\\"evenodd\\\">\\n <g stroke=\\\"none\\\" class=\\\"B\\\">\\n <path d=\\\"M 142 31.5 v 57.2 l 64.3 165.1 s 19.6 40.3 -36.5 50.1 h -128 s -52.3 -5.5 -39.8 -46.9 L 69.5 88.7 V 31.5 z\\\" fill=\\\"#009688\\\"/>\\n <path d=\\\"M 143.3 24.8 H 66.2 c -6.2 0 -11.3 -5.6 -11.3 -12.4 S 60 0 66.2 0 h 77.1 c 6.3 0 11.3 5.6 11.3 12.4 s -5.1 12.4 -11.3 12.4 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n <path d=\\\"M 123 124.9 c 8.3 0 15 8.1 15 18.1 c 0 10 -6.8 18.1 -15 18.1 c -8.3 0 -15 -8.1 -15 -18.1 c 0 -10 6.7 -18.1 15 -18.1 z m -58.8 31.7 c 0 -8.5 5.6 -15.3 12.7 -15.3 s 12.7 6.8 12.7 15.3 s -5.6 15.3 -12.7 15.3 s -12.7 -6.8 -12.7 -15.3 z\\\" fill=\\\"white\\\"/>\\n <path d=\\\"M 147.7 84.9 V 57.7 s 34.5 -7.6 51.7 32.5 c 0 0 -26.9 19.6 -51.7 -5.3 z m -84.5 0 V 57.7 s -34.5 -7.6 -51.7 32.5 c 0 0 26.8 19.6 51.7 -5.3 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n <path d=\\\"M 168.4 197.5 c -56.1 -17.4 -103.3 -8.1 -126.3 -1 l -23.2 56 c -10.5 33.4 33.2 37.8 33.2 37.8 h 106.9 c 46.9 -7.9 30.5 -40.4 30.5 -40.4 z\\\" fill=\\\"white\\\"/>\\n <path d=\\\"M 87.6 218.3 c 0 6 -8.1 10.9 -18.1 10.9 s -18.1 -4.9 -18.1 -10.9 c 0 -6.1 8.1 -10.9 18.1 -10.9 s 18.1 4.9 18.1 10.9 z m 64.4 0 c 0 6 -8.1 10.9 -18.1 10.9 c -10 0 -18.1 -4.9 -18.1 -10.9 c 0 -6.1 8.1 -10.9 18.1 -10.9 c 10 0 18.1 4.9 18.1 10.9 z\\\" class=\\\"C\\\" fill=\\\"#004d40\\\"/>\\n </g>\\n</svg>\\n\";\nvar locizeIcon = \"\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 194.667 196\\\" height=\\\"196\\\" width=\\\"194.667\\\" xml:space=\\\"preserve\\\">\\n <defs>\\n <clipPath id=\\\"a\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M5.5 74.048C5.5 36.98 35.551 6.93 72.619 6.93c37.069 0 67.119 30.05 67.119 67.118 0 37.07-30.05 67.12-67.119 67.12-37.068 0-67.119-30.05-67.119-67.12\\\"/>\\n </clipPath>\\n <clipPath id=\\\"b\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M0 147h146V0H0Z\\\"/>\\n </clipPath>\\n <clipPath id=\\\"c\\\" clipPathUnits=\\\"userSpaceOnUse\\\">\\n <path d=\\\"M88.756 55.055h50.982l4.512 88.195-64 1.25z\\\"/>\\n </clipPath>\\n </defs>\\n <g clip-path=\\\"url(#a)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.766-5.554 1.148-8.427 0-11.107-1.149-2.681-2.49-7.469-1.341-10.724 1.149-3.255 2.872-10.34 4.404-10.533 1.532-.19-1.148 7.66.383 5.171 1.533-2.49 1.533-6.193 4.214-8.746 2.68-2.553 6.319-2.17 9.192-4.658 2.872-2.49 5.744-6.129 8.425-5.746 0 0-.192-1.914-1.532-5.17-1.34-3.255-1.532-7.084.192-9.383 1.723-2.298 3.446-5.746 4.979-7.469 1.532-1.723 2.681-10.915 2.297-15.51-.382-4.596 1.724-14.937 6.511-17.236 4.787-2.298 0 1.15-.957 4.022-.958 2.872.739 9.575 3.052 10.533 2.309.958 4.416 4.787 6.139 7.469 1.724 2.68 6.128 3.83 7.469 7.084 1.341 3.255.766 7.085 1.532 8.809.766 1.724 2.873 5.554-1.724 7.852-4.595 2.298-6.51 1.148-6.702 3.255-.192 2.107-1.341 4.404-4.595 5.361-3.256.959-6.129 2.816-9.768 3.227-3.638.412-4.404-2.461-6.319-.928-1.914 1.531-3.446 3.064-4.213 4.978-.765 1.915-3.064.766-2.871 1.915.19 1.15 3.254 4.404-.193 3.255-3.446-1.148-6.51-.765-6.319 2.298.193 3.064 4.405 4.214 6.129 4.597 1.722.383 3.063-1.723 5.17-3.065 2.106-1.34.191 1.915 1.34 4.214 1.149 2.298 5.554 2.106 6.128 5.361.575 3.255-.191 5.937 3.256 6.32 3.446.383 7.084-.191 7.468 1.533.382 1.722-4.022-.576-4.213 1.531-.192 2.106 3.829 4.978 4.978 2.872 1.149-2.106 4.022-2.298 4.405-1.531.383.765 0 2.105-1.341 5.361-1.34 3.256-2.681 2.298-3.829 5.936-1.149 3.639-3.064-.191-4.979 1.724s-4.213 5.937-4.597 2.489c-.382-3.446-.382-5.361-2.105-8.042-1.724-2.682-2.489-.575-4.022 1.149-1.532 1.723-4.979 3.447-3.83 4.978C23.362 4.979 24.511 9 26.234 7.85c1.724-1.149 4.405-1.149 4.022.767-.383 1.914 0 2.681.766 3.638.766.958 3.447 2.682 3.447-.766 0-3.447-.384-4.405 2.298-4.788 2.681-.383 5.744-.574 5.554 1.149-.193 1.724.766 1.341 0 4.214-.767 2.873-3.065 3.063-5.554 4.405-2.489 1.34-3.83 3.446-5.936 2.68s-2.299-1.531-2.49-3.638c-.192-2.107-1.341-2.873-2.107-1.915-.765.957.192 4.022-2.68 2.106-2.873-1.914-4.021-5.171-5.553-2.872-1.533 2.297 2.297 6.319-1.724 4.595-4.022-1.723-6.895-3.637-4.788-4.404 2.107-.766 4.214-2.107 2.107-2.873-2.107-.765-6.32.575-7.852-.957C4.212 7.66 0 0 0 0\\\" transform=\\\"translate(13.926 109.38)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.766-5.554 1.148-8.427 0-11.107-1.149-2.681-2.49-7.469-1.341-10.724 1.149-3.255 2.872-10.34 4.404-10.533 1.532-.19-1.148 7.66.383 5.171 1.533-2.49 1.533-6.193 4.214-8.746 2.68-2.553 6.319-2.17 9.192-4.658 2.872-2.49 5.744-6.129 8.425-5.746 0 0-.192-1.914-1.532-5.17-1.34-3.255-1.532-7.084.192-9.383 1.723-2.298 3.446-5.746 4.979-7.469 1.532-1.723 2.681-10.915 2.297-15.51-.382-4.596 1.724-14.937 6.511-17.236 4.787-2.298 0 1.15-.957 4.022-.958 2.872.739 9.575 3.052 10.533 2.309.958 4.416 4.787 6.139 7.469 1.724 2.68 6.128 3.83 7.469 7.084 1.341 3.255.766 7.085 1.532 8.809.766 1.724 2.873 5.554-1.724 7.852-4.595 2.298-6.51 1.148-6.702 3.255-.192 2.107-1.341 4.404-4.595 5.361-3.256.959-6.129 2.816-9.768 3.227-3.638.412-4.404-2.461-6.319-.928-1.914 1.531-3.446 3.064-4.213 4.978-.765 1.915-3.064.766-2.871 1.915.19 1.15 3.254 4.404-.193 3.255-3.446-1.148-6.51-.765-6.319 2.298.193 3.064 4.405 4.214 6.129 4.597 1.722.383 3.063-1.723 5.17-3.065 2.106-1.34.191 1.915 1.34 4.214 1.149 2.298 5.554 2.106 6.128 5.361.575 3.255-.191 5.937 3.256 6.32 3.446.383 7.084-.191 7.468 1.533.382 1.722-4.022-.576-4.213 1.531-.192 2.106 3.829 4.978 4.978 2.872 1.149-2.106 4.022-2.298 4.405-1.531.383.765 0 2.105-1.341 5.361-1.34 3.256-2.681 2.298-3.829 5.936-1.149 3.639-3.064-.191-4.979 1.724s-4.213 5.937-4.597 2.489c-.382-3.446-.382-5.361-2.105-8.042-1.724-2.682-2.489-.575-4.022 1.149-1.532 1.723-4.979 3.447-3.83 4.978C23.362 4.979 24.511 9 26.234 7.85c1.724-1.149 4.405-1.149 4.022.767-.383 1.914 0 2.681.766 3.638.766.958 3.447 2.682 3.447-.766 0-3.447-.384-4.405 2.298-4.788 2.681-.383 5.744-.574 5.554 1.149-.193 1.724.766 1.341 0 4.214-.767 2.873-3.065 3.063-5.554 4.405-2.489 1.34-3.83 3.446-5.936 2.68s-2.299-1.531-2.49-3.638c-.192-2.107-1.341-2.873-2.107-1.915-.765.957.192 4.022-2.68 2.106-2.873-1.914-4.021-5.171-5.553-2.872-1.533 2.297 2.297 6.319-1.724 4.595-4.022-1.723-6.895-3.637-4.788-4.404 2.107-.766 4.214-2.107 2.107-2.873-2.107-.765-6.32.575-7.852-.957C4.212 7.66 0 0 0 0Z\\\" transform=\\\"translate(13.926 109.38)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.01-2.141.575-3.829 2.49-1.915C4.405 0 5.553 2.298 6.895 1.341c1.34-.958 3.638-.703 4.594-.639.959.064 1.15 2.937 3.831 2.554s1.724.574 4.596 2.107c2.873 1.532 9.001 4.212 2.681 3.446-6.32-.766-6.703.958-11.108-1.914-4.403-2.873-5.36-2.873-6.509-3.639-1.149-.766-2.49 2.298-4.022 0C-.575.958.011 2.182 0 0\\\" transform=\\\"translate(36.522 130.061)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.01-2.141.575-3.829 2.49-1.915C4.405 0 5.553 2.298 6.895 1.341c1.34-.958 3.638-.703 4.594-.639.959.064 1.15 2.937 3.831 2.554s1.724.574 4.596 2.107c2.873 1.532 9.001 4.212 2.681 3.446-6.32-.766-6.703.958-11.108-1.914-4.403-2.873-5.36-2.873-6.509-3.639-1.149-.766-2.49 2.298-4.022 0C-.575.958.011 2.182 0 0Z\\\" transform=\\\"translate(36.522 130.061)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-2.263-1.956-5.744-4.788-3.064-4.788 2.681 0 3.983 1.404 5.439-.447 1.456-1.85.88-4.723.88-6.063 0-1.341-.766-4.406 1.15-8.235 1.915-3.829 2.106-6.319 4.022-3.829 1.914 2.488 6.51 7.276 8.808 7.658 2.298.384 4.597 1.342 5.746 3.257 1.148 1.915 0 3.773 1.914 5.141 1.914 1.369 1.531 3.093 2.107 5.199C27.575 0 32.747 0 30.448 1.148c-2.297 1.15-6.51 1.916-11.49 1.341C13.979 1.915 4.213 3.638 0 0\\\" transform=\\\"translate(59.502 135.998)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-2.263-1.956-5.744-4.788-3.064-4.788 2.681 0 3.983 1.404 5.439-.447 1.456-1.85.88-4.723.88-6.063 0-1.341-.766-4.406 1.15-8.235 1.915-3.829 2.106-6.319 4.022-3.829 1.914 2.488 6.51 7.276 8.808 7.658 2.298.384 4.597 1.342 5.746 3.257 1.148 1.915 0 3.773 1.914 5.141 1.914 1.369 1.531 3.093 2.107 5.199C27.575 0 32.747 0 30.448 1.148c-2.297 1.15-6.51 1.916-11.49 1.341C13.979 1.915 4.213 3.638 0 0Z\\\" transform=\\\"translate(59.502 135.998)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.218-1.986-.575-2.107.766-2.49 1.34-.383-.575-2.68.957-2.872 1.532-.193 4.979-1.15 5.936 0 .959 1.148-1.531.7-3.255 1.977C2.682-2.107.865 1.41 0 0\\\" transform=\\\"translate(38.438 76.826)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.218-1.986-.575-2.107.766-2.49 1.34-.383-.575-2.68.957-2.872 1.532-.193 4.979-1.15 5.936 0 .959 1.148-1.531.7-3.255 1.977C2.682-2.107.865 1.41 0 0Z\\\" transform=\\\"translate(38.438 76.826)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-2.063-1.033-1.148-2.682-3.064-3.831-1.915-1.148-1.149-1.531-1.723-4.213-.575-2.68.191-4.212 1.532-2.106S2.298 1.148 0 0\\\" transform=\\\"translate(131.121 45.612)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-2.063-1.033-1.148-2.682-3.064-3.831-1.915-1.148-1.149-1.531-1.723-4.213-.575-2.68.191-4.212 1.532-2.106S2.298 1.148 0 0Z\\\" transform=\\\"translate(131.121 45.612)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-.575-.575-1.532 2.681-2.106 4.213-.575 1.532-.561 4.195 1.056 5.675C.964 11.734 0 7.469 0 5.17 0 2.873.574.575 0 0m-6.704 5.936c-1.341.766-3.828 0-6.892-.957-3.065-.958-.613 2.131.766 4.213 1.233 1.861.574-.574 3.256-.766 2.68-.192 4.213-3.256 2.87-2.49m-4.402-6.511c-.192-1.531.574-4.021-3.639-3.064-4.213.958-4.213 3.256-5.936 1.533-1.723-1.724-3.83-3.255-6.32-.575C-29.49 0-29.107.766-30.447.958c-.955.135-4.138.846-6.792.074.206.123.426.285.663.5 1.915 1.723 1.532 2.298 3.638 4.213 2.108 1.916 3.639 3.638 5.171 1.916 1.532-1.725 4.788-2.108 3.639-4.023-1.149-1.914-.383-3.063.958-1.914 1.339 1.149 3.255 1.914 1.915 3.446-1.342 1.532-2.682 5.554-.766 2.873 1.915-2.681 2.489-4.022 3.637-5.553C-17.234.958-16.085 0-15.702.958c.383.957-.192 3.063.383 3.446.574.383 0-3.255 1.723-3.446 1.723-.192 2.681 0 2.49-1.533M9.192-8.81c-.574 3.257-4.787 32.747-4.787 32.747s-11.299 7.277-13.213 5.746c-1.916-1.533-5.171-1.302-4.788.21s2.872 1.128-1.341 4.002c-4.212 2.873-4.978 5.362-8.233 1.724-3.257-3.639-4.022-6.703-5.937-7.661-1.915-.957-3.447-4.021-1.34-4.787 2.106-.765 2.298 0 4.02-1.531 1.725-1.533 4.023-1.149 4.406-.193.383.959.766 4.022.957 5.171.192 1.149 2.138 4.979 1.93 1.915-.207-3.064 2.665-3.064.75-5.17-1.914-2.106-.765-3.831-4.595-4.214-3.831-.382-4.022 1.915-6.128.766-2.107-1.148-1.915-1.915-2.681-3.063-.766-1.149-4.788-3.447-4.788-3.447s-3.255 1.149-1.724-.958c1.533-2.106 2.873-4.595 1.533-4.786-1.341-.192-4.98 1.914-4.98-.384s-.573-4.787.959-5.362c1.081-.405 1.783-1.284 2.775-1.161-.769-.332-1.468-.813-2.009-1.52-1.491-1.947-.575-5.362-3.639-6.511-3.063-1.15-3.063-2.489-3.639-4.979-.573-2.489 0-8.808.766-9.383.765-.574 2.107-5.362 5.363-4.978 3.256.383 6.702.53 7.851-.023 1.149-.551 3.063 1.171 3.638-3.233.575-4.404 1.915-4.979 2.681-7.277.766-2.297-.383-7.086 0-9.958s3.064-7.852 3.064-10.341c0-2.489 2.873-3.638 4.405-2.681 1.532.958 4.787 2.873 6.127 5.937 1.342 3.063 1.342 4.595 3.447 8.617 2.106 4.021 1.533 6.894 2.489 9.958.958 3.064 3.262 5.171 6.419 8.617 3.156 3.446 2.588 5.362 0 5.171-2.588-.191-4.314 2.297-5.654 5.361-1.338 3.065-2.87 10.724-1.721 8.235 1.149-2.491 3.446-9.384 5.744-10.533 2.298-1.149 6.512 1.953 7.469 3.083.957 1.131.574 4.385-1.916 5.726C.383-8.617 1.915-7.469 4.405-9c2.489-1.532 5.362-3.064 4.787.19\\\" transform=\\\"translate(132.845 86.592)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-.575-.575-1.532 2.681-2.106 4.213-.575 1.532-.561 4.195 1.056 5.675C.964 11.734 0 7.469 0 5.17 0 2.873.574.575 0 0Zm-6.704 5.936c-1.341.766-3.828 0-6.892-.957-3.065-.958-.613 2.131.766 4.213 1.233 1.861.574-.574 3.256-.766 2.68-.192 4.213-3.256 2.87-2.49zm-4.402-6.511c-.192-1.531.574-4.021-3.639-3.064-4.213.958-4.213 3.256-5.936 1.533-1.723-1.724-3.83-3.255-6.32-.575C-29.49 0-29.107.766-30.447.958c-.955.135-4.138.846-6.792.074.206.123.426.285.663.5 1.915 1.723 1.532 2.298 3.638 4.213 2.108 1.916 3.639 3.638 5.171 1.916 1.532-1.725 4.788-2.108 3.639-4.023-1.149-1.914-.383-3.063.958-1.914 1.339 1.149 3.255 1.914 1.915 3.446-1.342 1.532-2.682 5.554-.766 2.873 1.915-2.681 2.489-4.022 3.637-5.553C-17.234.958-16.085 0-15.702.958c.383.957-.192 3.063.383 3.446.574.383 0-3.255 1.723-3.446 1.723-.192 2.681 0 2.49-1.533zM9.192-8.81c-.574 3.257-4.787 32.747-4.787 32.747s-11.299 7.277-13.213 5.746c-1.916-1.533-5.171-1.302-4.788.21s2.872 1.128-1.341 4.002c-4.212 2.873-4.978 5.362-8.233 1.724-3.257-3.639-4.022-6.703-5.937-7.661-1.915-.957-3.447-4.021-1.34-4.787 2.106-.765 2.298 0 4.02-1.531 1.725-1.533 4.023-1.149 4.406-.193.383.959.766 4.022.957 5.171.192 1.149 2.138 4.979 1.93 1.915-.207-3.064 2.665-3.064.75-5.17-1.914-2.106-.765-3.831-4.595-4.214-3.831-.382-4.022 1.915-6.128.766-2.107-1.148-1.915-1.915-2.681-3.063-.766-1.149-4.788-3.447-4.788-3.447s-3.255 1.149-1.724-.958c1.533-2.106 2.873-4.595 1.533-4.786-1.341-.192-4.98 1.914-4.98-.384s-.573-4.787.959-5.362c1.081-.405 1.783-1.284 2.775-1.161-.769-.332-1.468-.813-2.009-1.52-1.491-1.947-.575-5.362-3.639-6.511-3.063-1.15-3.063-2.489-3.639-4.979-.573-2.489 0-8.808.766-9.383.765-.574 2.107-5.362 5.363-4.978 3.256.383 6.702.53 7.851-.023 1.149-.551 3.063 1.171 3.638-3.233.575-4.404 1.915-4.979 2.681-7.277.766-2.297-.383-7.086 0-9.958s3.064-7.852 3.064-10.341c0-2.489 2.873-3.638 4.405-2.681 1.532.958 4.787 2.873 6.127 5.937 1.342 3.063 1.342 4.595 3.447 8.617 2.106 4.021 1.533 6.894 2.489 9.958.958 3.064 3.262 5.171 6.419 8.617 3.156 3.446 2.588 5.362 0 5.171-2.588-.191-4.314 2.297-5.654 5.361-1.338 3.065-2.87 10.724-1.721 8.235 1.149-2.491 3.446-9.384 5.744-10.533 2.298-1.149 6.512 1.953 7.469 3.083.957 1.131.574 4.385-1.916 5.726C.383-8.617 1.915-7.469 4.405-9c2.489-1.532 5.362-3.064 4.787.19z\\\" transform=\\\"translate(132.845 86.592)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.173-.353-2.106-2.681-1.532-3.831.576-1.148-.574.576-2.106-.382-1.533-.957-3.808-3.639-1.713-3.829 2.096-.193 1.713 1.531 3.628.765 1.915-.765 4.021-.575 4.021 1.34C2.298-4.021 1.915.574 0 0\\\" transform=\\\"translate(95.886 109.955)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.173-.353-2.106-2.681-1.532-3.831.576-1.148-.574.576-2.106-.382-1.533-.957-3.808-3.639-1.713-3.829 2.096-.193 1.713 1.531 3.628.765 1.915-.765 4.021-.575 4.021 1.34C2.298-4.021 1.915.574 0 0Z\\\" transform=\\\"translate(95.886 109.955)\\\"/>\\n <path style=\\\"fill:#2196f3;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.154-.165-1.533-3.064.957-3.447 2.49-.383 6.947.575 5.293 2.107C4.596.191 2.682.383 0 0\\\" transform=\\\"translate(83.44 118.763)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.154-.165-1.533-3.064.957-3.447 2.49-.383 6.947.575 5.293 2.107C4.596.191 2.682.383 0 0Z\\\" transform=\\\"translate(83.44 118.763)\\\"/>\\n </g>\\n <g clip-path=\\\"url(#b)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c0-37.068-30.05-67.119-67.119-67.119S-134.238-37.068-134.238 0c0 37.069 30.05 67.119 67.119 67.119S0 37.069 0 0Z\\\" transform=\\\"translate(139.738 74.049)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c0-36.731-29.777-66.509-66.509-66.509S-133.019-36.731-133.019 0c0 36.733 29.778 66.51 66.51 66.51C-29.777 66.51 0 36.733 0 0Z\\\" transform=\\\"translate(139.438 73.186)\\\"/>\\n </g>\\n <g clip-path=\\\"url(#c)\\\" transform=\\\"matrix(1.33333 0 0 -1.33333 0 196)\\\">\\n <path style=\\\"fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0m12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n <path style=\\\"fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0m12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n <path style=\\\"fill:none;stroke:#2196f3;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1\\\" d=\\\"M0 0c-1.542-1.541-3.386-2.311-5.533-2.311-2.148 0-3.991.77-5.532 2.311s-2.313 3.387-2.313 5.533c0 2.147.772 3.963 2.313 5.45 1.541 1.486 3.384 2.23 5.532 2.23 2.147 0 3.991-.744 5.533-2.23 1.54-1.487 2.312-3.303 2.312-5.45C2.312 3.387 1.54 1.541 0 0Zm12.551 23.039c-4.954 4.9-10.954 7.35-18.001 7.35-7.047 0-13.047-2.45-18.002-7.35-4.955-4.898-7.432-10.817-7.432-17.754 0-4.183 2.119-11.176 6.359-20.974 4.238-9.799 8.477-18.717 12.715-26.754 4.241-8.037 6.36-11.946 6.36-11.727.66 1.211 1.568 2.863 2.724 4.955 1.157 2.092 3.194 6.029 6.112 11.809 2.917 5.781 5.477 11.094 7.678 15.935a203.312 203.312 0 0 1 6.111 15.032c1.873 5.173 2.807 9.082 2.807 11.724 0 6.937-2.477 12.856-7.431 17.754z\\\" transform=\\\"translate(119.64 109.307)\\\"/>\\n </g>\\n</svg>\\n\";\nvar minimizeIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M6 19h12v2H6v-2z\"/></svg>';\nvar editIconUrl = URL.createObjectURL(new Blob([iconEdit], {\n type: 'image/svg+xml'\n}));\nvar i18nextIconUrl = URL.createObjectURL(new Blob([i18nextIcon], {\n type: 'image/svg+xml'\n}));\nvar minimizeIconUrl = URL.createObjectURL(new Blob([minimizeIcon], {\n type: 'image/svg+xml'\n}));\nvar locizeIconUrl = URL.createObjectURL(new Blob([locizeIcon], {\n type: 'image/svg+xml'\n}));\nfunction EditIcon() {\n var image = document.createElement('img');\n image.setAttribute('data-i18next-editor-element', 'true');\n image.src = editIconUrl;\n image.style.width = '15px';\n return image;\n}\nfunction RibbonLogo() {\n var circleSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '18px';\n var logoSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '15px';\n var ribbon = document.createElement('div');\n ribbon.setAttribute('data-i18next-editor-element', 'true');\n ribbon.style = \"display: inline-flex; align-items: center; justify-content: center; width: \".concat(circleSize, \"; height: \").concat(circleSize, \"; box-shadow: inset 0 0 5px \").concat(colors.highlight, \"; border: 2px solid \").concat(colors.highlight, \"; border-radius: 50%\");\n var image = document.createElement('img');\n image.src = i18nextIconUrl;\n image.style.width = logoSize;\n ribbon.appendChild(image);\n return ribbon;\n}\n\nexport { EditIcon, RibbonLogo, editIconUrl, i18nextIconUrl, locizeIconUrl, minimizeIconUrl };\n","import { sheet } from '../stylesheet.js';\nimport { stopMouseTracking, startMouseTracking } from '../mouseDistance.js';\nimport { minimizeIconUrl, locizeIconUrl } from './icons.js';\n\nif (sheet) {\n sheet.insertRule(\"@keyframes i18next-editor-animate-top { \\n from {\\n top: calc(100vh + 600px); \\n left: calc(100vw + 300px);\\n opacity: 0;\\n }\\n to {\\n top: var(--i18next-editor-popup-position-top);\\n left: var(--i18next-editor-popup-position-left);\\n opacity: 1;\\n }\\n }\");\n sheet.insertRule(\"@keyframes i18next-editor-animate-bottom { \\n from {\\n top: var(--i18next-editor-popup-position-top);\\n left: var(--i18next-editor-popup-position-left);\\n opacity: 1;\\n }\\n to {\\n top: calc(100vh + 600px); \\n left: calc(100vw + 300px);\\n opacity: 0;\\n }\\n }\");\n sheet.insertRule(\".i18next-editor-popup * { \\n -webkit-touch-callout: none; /* iOS Safari */\\n -webkit-user-select: none; /* Safari */\\n -khtml-user-select: none; /* Konqueror HTML */\\n -moz-user-select: none; /* Firefox */\\n -ms-user-select: none; /* Internet Explorer/Edge */\\n user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-right {\\n width: 15px;\\n height: 100%;\\n background: transparent;\\n position: absolute;\\n right: -15px;\\n bottom: 0;\\n cursor: e-resize;\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-both {\\n width: 15px;\\n height: 15px;\\n background: transparent;\\n z-index: 10;\\n position: absolute;\\n right: -15px;\\n bottom: -15px;\\n cursor: se-resize;\\n }\");\n sheet.insertRule(\".i18next-editor-popup .resizer-bottom {\\n width: 100%;\\n height: 15px;\\n background: transparent;\\n position: absolute;\\n right: 0;\\n bottom: -15px;\\n cursor: s-resize;\\n }\");\n}\nfunction Ribbon(popupEle, onMaximize) {\n var ribbon = document.createElement('div');\n ribbon.setAttribute('data-i18next-editor-element', 'true');\n ribbon.style = \"\\n cursor: pointer;\\n position: fixed;\\n bottom: 25px;\\n right: 25px;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 50px;\\n height: 50px;\\n background-color: rgba(249, 249, 249, 0.2);\\n backdrop-filter: blur(3px);\\n box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);\\n border-radius: 50%\\n \";\n ribbon.onclick = function () {\n onMaximize();\n };\n var image = document.createElement('img');\n image.src = locizeIconUrl;\n image.style.width = '45px';\n ribbon.appendChild(image);\n return ribbon;\n}\nfunction Minimize(popupEle, onMinimize) {\n var image = document.createElement('img');\n image.setAttribute('data-i18next-editor-element', 'true');\n image.src = minimizeIconUrl;\n image.style.width = '24px';\n image.style.cursor = 'pointer';\n image.onclick = function () {\n popupEle.style.setProperty('--i18next-editor-popup-position-top', popupEle.style.top);\n popupEle.style.setProperty('--i18next-editor-popup-position-left', popupEle.style.left);\n popupEle.style.animation = 'i18next-editor-animate-bottom 2s forwards';\n onMinimize();\n };\n return image;\n}\nvar popupId = 'i18next-editor-popup';\nfunction Popup(url, cb) {\n var popup = document.createElement('div');\n popup.setAttribute('id', popupId);\n popup.classList.add('i18next-editor-popup');\n popup.style = \"\\n z-index: 9;\\n background-color: transparent;\\n border: 1px solid rgba(200, 200, 200, 0.9);\\n box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);\\n border-radius: 3px;\\n --i18next-editor-popup-height: 200px;\\n height: var(--i18next-editor-popup-height);\\n min-height: 150px;\\n min-width: 300px;\\n --i18next-editor-popup-width: 400px;\\n width: var(--i18next-editor-popup-width);\\n max-height: 600px;\\n max-width: 800px;\\n\\n position: fixed;\\n --i18next-editor-popup-position-top: calc(100vh - var(--i18next-editor-popup-height) - 10px);\\n top: calc(100vh - var(--i18next-editor-popup-height) - 10px);\\n --i18next-editor-popup-position-left: calc(100vw - var(--i18next-editor-popup-width) - 10px);\\n left: calc(100vw - var(--i18next-editor-popup-width) - 10px);\\n\\n overflow: visible;\\n \";\n popup.setAttribute('data-i18next-editor-element', 'true');\n var header = document.createElement('div');\n header.classList.add('i18next-editor-popup-header');\n header.style = \"\\n padding: 2px 10px;\\n cursor: move;\\n z-index: 10;\\n backdrop-filter: blur(3px);\\n background-color: rgba(200, 200, 200, 0.5);\\n background: linear-gradient(0deg, rgba(200, 200, 200, 0.6), rgba(200, 200, 200, 0.5));\\n color: #fff;\\n text-align: right;\\n \";\n popup.appendChild(header);\n header.appendChild(Minimize(popup, function () {\n var ribbon = Ribbon(popup, function () {\n popup.style.animation = 'i18next-editor-animate-top 1s';\n startMouseTracking();\n setTimeout(function () {\n document.body.removeChild(ribbon);\n }, 1000);\n });\n document.body.appendChild(ribbon);\n stopMouseTracking();\n }));\n var iframe = document.createElement('iframe');\n iframe.setAttribute('id', 'i18next-editor-iframe');\n iframe.setAttribute('data-i18next-editor-element', 'true');\n iframe.style = \"\\n z-index: 100;\\n width: 100%;\\n height: calc(100% - 28px);\\n border: none;\\n background: #fff;\\n \";\n iframe.setAttribute('src', url);\n iframe.addEventListener('load', cb);\n popup.appendChild(iframe);\n var overlay = document.createElement('div');\n overlay.setAttribute('id', 'i18next-editor-popup-overlay');\n overlay.setAttribute('data-i18next-editor-element', 'true');\n overlay.style = \"\\n display: none;\\n position: absolute;\\n top: 32px;\\n z-index: 101;\\n width: 100%;\\n height: calc(100% - 32px);\\n background-color: rgba(200, 200, 200, 0.5);\\n background: linear-gradient(0deg, rgba(240, 240, 240, 0.6), rgba(255, 255, 255, 0.5));\\n backdrop-filter: blur(2px);\\n\";\n popup.appendChild(overlay);\n return popup;\n}\n\nexport { Popup, popupId };\n","import { api } from './postMessage.js';\nimport { popupId } from '../ui/elements/popup.js';\n\nfunction handler(payload) {\n var containerStyle = payload.containerStyle;\n if (containerStyle) {\n var popup = document.getElementById(popupId);\n if (containerStyle.height) {\n var diff = \"calc(\".concat(containerStyle.height, \" - \").concat(popup.style.height, \")\");\n popup.style.setProperty('top', \"calc(\".concat(popup.style.top, \" - \").concat(diff, \")\"));\n popup.style.setProperty('height', containerStyle.height);\n }\n if (containerStyle.width) {\n var _diff = \"calc(\".concat(containerStyle.width, \" - \").concat(popup.style.width, \")\");\n popup.style.setProperty('left', \"calc(\".concat(popup.style.left, \" - \").concat(_diff, \")\"));\n popup.style.setProperty('width', containerStyle.width);\n }\n }\n}\napi.addHandler('requestPopupChanges', handler);\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { api } from './postMessage.js';\n\nvar _excluded = [\"lng\", \"ns\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction handler(payload) {\n var lng = payload.lng,\n ns = payload.ns,\n rest = _objectWithoutProperties(payload, _excluded);\n api.i18n.getResourceBundle(lng, ns, function (resources) {\n api.confirmResourceBundle(_objectSpread({\n resources: resources,\n lng: lng,\n ns: ns\n }, rest));\n });\n}\napi.addHandler('requestResourceBundle', handler);\n","import { api } from './postMessage.js';\nimport { store } from '../store.js';\nimport { resetHighlight, selectedHighlight } from '../ui/highlightNode.js';\n\nvar previousMatches = [];\nfunction handler(payload) {\n var keys = payload.keys;\n var matchingItems = [];\n Object.values(store.data).forEach(function (item) {\n var matches = Object.values(item.keys).filter(function (k) {\n return keys.includes(k.qualifiedKey);\n });\n if (matches.length) {\n matchingItems.push(item);\n }\n });\n previousMatches.forEach(function (item) {\n resetHighlight(item, item.node, item.keys, false);\n });\n matchingItems.forEach(function (item) {\n selectedHighlight(item, item.node, item.keys);\n });\n previousMatches = matchingItems;\n}\napi.addHandler('selectedKeys', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.source = e.source;\n api.origin = e.origin;\n api.legacy = true;\n api.sendLocizeIsEnabled();\n}\napi.addHandler('isLocizeEnabled', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.turnOn();\n}\napi.addHandler('turnOn', handler);\n","import { api } from './postMessage.js';\n\nfunction handler(payload, e) {\n api.turnOff();\n}\napi.addHandler('turnOff', handler);\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { resetHighlight } from './ui/highlightNode.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar data = {};\nfunction clean() {\n Object.values(data).forEach(function (item) {\n if (!document.body.contains(item.node)) {\n resetHighlight(item.id, item.node);\n delete data[item.id];\n }\n });\n}\nfunction save(id, subliminal, type, meta, node, children) {\n if (!id || !type || !meta || !node) return;\n if (!data[id]) {\n data[id] = {\n id: id,\n node: node,\n subliminal: subliminal\n };\n }\n data[id].keys = _objectSpread(_objectSpread({}, data[id].keys), {}, _defineProperty({}, \"\".concat(type), meta));\n if (children) {\n data[id].children = _objectSpread(_objectSpread({}, data[id].children), {}, _defineProperty({}, \"\".concat(type, \"-\").concat(children.map(function (c) {\n return c.childIndex;\n }).join(',')), children));\n }\n}\nfunction get(id) {\n return data[id];\n}\nvar store = {\n save: save,\n clean: clean,\n get: get,\n data: data\n};\n\nexport { store };\n","(function () {\n\n if (typeof Document === 'undefined') return;\n var nextID = 1;\n if (Document.prototype.hasOwnProperty('uniqueID')) {\n return;\n }\n console.info('\"document.uniqueID\" not implemented; creating shim');\n Object.defineProperty(Document.prototype, 'uniqueID', {\n get: function get() {\n return nextID++;\n },\n enumerable: false,\n configurable: false\n });\n Object.defineProperty(Element.prototype, 'uniqueID', {\n get: function get() {\n Object.defineProperty(this, 'uniqueID', {\n value: document.uniqueID,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return this.uniqueID;\n },\n enumerable: false,\n configurable: true\n });\n})();\n","import { containsHiddenMeta, unwrap } from 'i18next-subliminal';\nimport { getClickedElement, getElementText, getElementI18nKey, getElementNamespace } from './utils.js';\n\nfunction createClickHandler(cb) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = function handler(e) {\n var el = getClickedElement(e);\n if (!el) return {};\n e.preventDefault();\n e.stopPropagation();\n function getFallbackNS() {\n if (options.isLocizify) return options.defaultNS;\n }\n var text = getElementText(el);\n var key = getElementI18nKey(el);\n var ns = getElementNamespace(el) || getFallbackNS();\n if (containsHiddenMeta(text)) {\n var meta = unwrap(text);\n if (meta && meta.invisibleMeta && meta.invisibleMeta.key) key = meta.invisibleMeta.key;\n if (meta && meta.invisibleMeta && meta.invisibleMeta.ns) ns = meta.invisibleMeta.ns;\n }\n var rectEl = el.getBoundingClientRect ? el : el.parentElement;\n var _rectEl$getBoundingCl = rectEl.getBoundingClientRect(),\n top = _rectEl$getBoundingCl.top,\n left = _rectEl$getBoundingCl.left,\n width = _rectEl$getBoundingCl.width,\n height = _rectEl$getBoundingCl.height;\n var style = window.getComputedStyle(rectEl, null);\n var pT = parseFloat(style.getPropertyValue('padding-top'));\n var pB = parseFloat(style.getPropertyValue('padding-bottom'));\n var pR = parseFloat(style.getPropertyValue('padding-right'));\n var pL = parseFloat(style.getPropertyValue('padding-left'));\n var sizing = style.getPropertyValue('box-sizing');\n cb({\n tagName: rectEl.tagName,\n text: text,\n key: key,\n ns: ns,\n box: {\n top: top,\n left: left,\n width: sizing === 'border-box' ? width : width - pR - pL,\n height: sizing === 'border-box' ? height : height - pT - pB\n },\n style: style.cssText\n });\n };\n return handler;\n}\n\nexport { createClickHandler };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport './api/handleEditKey.js';\nimport './api/handleCommitKey.js';\nimport './api/handleCommitKeys.js';\nimport './api/handleConfirmInitialized.js';\nimport './api/handleRequestPopupChanges.js';\nimport './api/handleRequestResourceBundle.js';\nimport './api/handleSelectedKeys.js';\nimport './api/handleIsLocizeEnabled.js';\nimport './api/handleTurnOn.js';\nimport './api/handleTurnOff.js';\nimport { api, sendMessage } from './api/postMessage.js';\nimport { createClickHandler } from './clickHandler.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction startLegacy() {\n var implementation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (typeof document === 'undefined') return;\n var scriptEle = document.getElementById('locize');\n var config = {};\n ['projectId', 'version'].forEach(function (attr) {\n if (!scriptEle) return;\n var value = scriptEle.getAttribute(attr.toLowerCase()) || scriptEle.getAttribute('data-' + attr.toLowerCase());\n if (value === 'true') value = true;\n if (value === 'false') value = false;\n if (value !== undefined && value !== null) config[attr] = value;\n });\n config = _objectSpread(_objectSpread({}, implementation.getLocizeDetails()), config);\n api.init(implementation, createClickHandler(function (payload) {\n sendMessage('clickedElement', {\n payload: payload\n });\n }, implementation.getLocizeDetails()));\n api.sendCurrentTargetLanguage = function (lng) {\n sendMessage('setLng', {\n lng: lng || implementation.getLng()\n });\n };\n if (typeof window !== 'undefined') {\n var oldHref = window.document.location.href;\n window.addEventListener('load', function () {\n sendMessage('hrefChanged', {\n href: window.document.location.href\n });\n var bodyList = window.document.querySelector('body');\n var observer = new window.MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n if (oldHref !== window.document.location.href) {\n oldHref = window.document.location.href;\n sendMessage('hrefChanged', {\n href: oldHref\n });\n }\n });\n });\n var config = {\n childList: true,\n subtree: true\n };\n observer.observe(bodyList, config);\n });\n }\n implementation === null || implementation === void 0 || implementation.bindLanguageChange(function (lng) {\n api.sendCurrentTargetLanguage(implementation.getLng());\n });\n implementation === null || implementation === void 0 || implementation.bindMissingKeyHandler(function (lng, ns, k, val) {\n api.onAddedKey(lng, ns, k, val);\n });\n}\n\nexport { startLegacy };\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { PostProcessor } from 'i18next-subliminal';\nexport { unwrap } from 'i18next-subliminal';\nimport { start } from './process.js';\nimport { startLegacy } from './processLegacy.js';\nimport { getQsParameterByName } from './utils.js';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar isInIframe = typeof window !== 'undefined';\ntry {\n isInIframe = self !== top;\n} catch (e) {}\nfunction configurePostProcessor(i18next, options) {\n i18next.use(PostProcessor);\n if (typeof options.postProcess === 'string') {\n options.postProcess = [options.postProcess, 'subliminal'];\n } else if (Array.isArray(options.postProcess)) {\n options.postProcess.push('subliminal');\n } else {\n options.postProcess = 'subliminal';\n }\n options.postProcessPassResolved = true;\n}\nfunction getImplementation(i18n) {\n var impl = {\n getResource: function getResource(lng, ns, key) {\n return i18n.getResource(lng, ns, key);\n },\n setResource: function setResource(lng, ns, key, value) {\n return i18n.addResource(lng, ns, key, value, {\n silent: true\n });\n },\n getResourceBundle: function getResourceBundle(lng, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n cb(i18n.getResourceBundle(lng, ns));\n });\n },\n getLng: function getLng() {\n return i18n.resolvedLanguage || i18n.languages[0];\n },\n getSourceLng: function getSourceLng() {\n var fallback = i18n.options.fallbackLng;\n if (typeof fallback === 'string') return fallback;\n if (Array.isArray(fallback)) return fallback[fallback.length - 1];\n if (fallback && fallback[\"default\"]) {\n if (typeof fallback[\"default\"] === 'string') return fallback;\n if (Array.isArray(fallback[\"default\"])) return fallback[\"default\"][fallback[\"default\"].length - 1];\n }\n if (typeof fallback === 'function') {\n var res = fallback(i18n.resolvedLanguage);\n if (typeof res === 'string') return res;\n if (Array.isArray(res)) return res[res.length - 1];\n }\n return 'dev';\n },\n getLocizeDetails: function getLocizeDetails() {\n var backendName;\n if (i18n.services.backendConnector.backend && i18n.services.backendConnector.backend.options && i18n.services.backendConnector.backend.options.loadPath && i18n.services.backendConnector.backend.options.loadPath.indexOf('.locize.') > 0) {\n backendName = 'I18NextLocizeBackend';\n } else {\n backendName = i18n.services.backendConnector.backend ? i18n.services.backendConnector.backend.constructor.name : 'options.resources';\n }\n var opts = {\n backendName: backendName,\n sourceLng: impl.getSourceLng(),\n i18nFormat: i18n.options.compatibilityJSON === 'v3' ? 'i18next_v3' : 'i18next_v4',\n i18nFramework: 'i18next',\n isLocizify: i18n.options.isLocizify,\n defaultNS: i18n.options.defaultNS\n };\n if (!i18n.options.backend && !i18n.options.editor) return opts;\n var pickFrom = i18n.options.backend || i18n.options.editor;\n return _objectSpread(_objectSpread({}, opts), {}, {\n projectId: pickFrom.projectId,\n version: pickFrom.version\n });\n },\n bindLanguageChange: function bindLanguageChange(cb) {\n i18n.on('languageChanged', cb);\n },\n bindMissingKeyHandler: function bindMissingKeyHandler(cb) {\n i18n.options.missingKeyHandler = function (lng, ns, k, val, isUpdate, opts) {\n if (!isUpdate) cb(lng, ns, k, val);\n };\n },\n triggerRerender: function triggerRerender() {\n i18n.emit('editorSaved');\n }\n };\n return impl;\n}\nvar i18next;\nvar locizeEditorPlugin = function locizeEditorPlugin() {\n var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n opt.qsProp = opt.qsProp || 'incontext';\n return {\n type: '3rdParty',\n init: function init(i18n) {\n var options = i18n.options;\n i18next = i18n;\n var showInContext = opt.show || getQsParameterByName(opt.qsProp) === 'true';\n if (!isInIframe && showInContext) configurePostProcessor(i18next, options);\n var impl = getImplementation(i18n);\n if (!isInIframe && showInContext) {\n start(impl);\n } else if (isInIframe) {\n startLegacy(impl);\n }\n }\n };\n};\nvar locizePlugin = locizeEditorPlugin();\n\nexport { locizeEditorPlugin, locizePlugin };\n","import { startLegacy } from './processLegacy.js';\n\nfunction startStandalone() {\n startLegacy({\n getLocizeDetails: function getLocizeDetails() {\n return {};\n },\n getLng: function getLng() {\n return undefined;\n },\n setResource: function setResource() {},\n triggerRerender: function triggerRerender() {},\n getResourceBundle: function getResourceBundle() {\n return {};\n },\n bindMissingKeyHandler: function bindMissingKeyHandler() {},\n bindLanguageChange: function bindLanguageChange() {}\n });\n}\nif (typeof window !== 'undefined') window.locizeStartStandalone = startStandalone;\n\nexport { startStandalone };\n","import { locizePlugin, locizeEditorPlugin } from './locizePlugin.js';\nexport { locizeEditorPlugin, locizePlugin } from './locizePlugin.js';\nimport { startStandalone } from './startStandalone.js';\nexport { startStandalone } from './startStandalone.js';\nimport './api/handleEditKey.js';\nimport './api/handleCommitKey.js';\nimport './api/handleCommitKeys.js';\nimport './api/handleConfirmInitialized.js';\nimport './api/handleRequestPopupChanges.js';\nimport './api/handleRequestResourceBundle.js';\nimport './api/handleSelectedKeys.js';\nimport './api/handleIsLocizeEnabled.js';\nimport './api/handleTurnOn.js';\nimport './api/handleTurnOff.js';\nimport { addLocizeSavedHandler, turnOn, turnOff, setEditorLng } from './api/postMessage.js';\nexport { addLocizeSavedHandler, setEditorLng, turnOff, turnOn } from './api/postMessage.js';\nimport { wrap, unwrap, containsHiddenMeta, PostProcessor } from 'i18next-subliminal';\nexport { PostProcessor, containsHiddenMeta, unwrap, wrap } from 'i18next-subliminal';\n\nvar index = {\n wrap: wrap,\n unwrap: unwrap,\n containsHiddenMeta: containsHiddenMeta,\n PostProcessor: PostProcessor,\n addLocizeSavedHandler: addLocizeSavedHandler,\n locizePlugin: locizePlugin,\n locizeEditorPlugin: locizeEditorPlugin,\n turnOn: turnOn,\n turnOff: turnOff,\n setEditorLng: setEditorLng,\n startStandalone: startStandalone\n};\n\nexport { index as default };\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n}\n\nfunction getDefaults() {\n return {\n handleEmptyResourcesAsFailed: true,\n cacheHitMode: 'none'\n // reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000\n // refreshExpirationTime: 60 * 60 * 1000\n };\n}\n\nfunction handleCorrectReadFunction(backend, language, namespace, resolver) {\n var fc = backend.read.bind(backend);\n if (fc.length === 2) {\n // no callback\n try {\n var r = fc(language, namespace);\n if (r && typeof r.then === 'function') {\n // promise\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n // sync\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n\n // normal with callback\n fc(language, namespace, resolver);\n}\nvar Backend = /*#__PURE__*/function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.backends = [];\n this.type = 'backend';\n this.allOptions = i18nextOptions;\n this.init(services, options);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = i18nextOptions;\n this.options.backends && this.options.backends.forEach(function (b, i) {\n _this.backends[i] = _this.backends[i] || createClassOnDemand(b);\n _this.backends[i].init(services, _this.options.backendOptions && _this.options.backendOptions[i] || {}, i18nextOptions);\n });\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this2 = this;\n var bLen = this.backends.length;\n var loadPosition = function loadPosition(pos) {\n if (pos >= bLen) return callback(new Error('non of the backend loaded data', true)); // failed pass retry flag\n var isLastBackend = pos === bLen - 1;\n var lengthCheckAmount = _this2.options.handleEmptyResourcesAsFailed && !isLastBackend ? 0 : -1;\n var backend = _this2.backends[pos];\n if (backend.read) {\n handleCorrectReadFunction(backend, language, namespace, function (err, data, savedAt) {\n if (!err && data && Object.keys(data).length > lengthCheckAmount) {\n callback(null, data, pos);\n savePosition(pos - 1, data); // save one in front\n if (backend.save && _this2.options.cacheHitMode && ['refresh', 'refreshAndUpdateStore'].indexOf(_this2.options.cacheHitMode) > -1) {\n if (savedAt && _this2.options.refreshExpirationTime && savedAt + _this2.options.refreshExpirationTime > Date.now()) return;\n var nextBackend = _this2.backends[pos + 1];\n if (nextBackend && nextBackend.read) {\n handleCorrectReadFunction(nextBackend, language, namespace, function (err, data) {\n if (err) return;\n if (!data) return;\n if (Object.keys(data).length <= lengthCheckAmount) return;\n savePosition(pos, data);\n if (_this2.options.cacheHitMode !== 'refreshAndUpdateStore') return;\n if (_this2.services && _this2.services.resourceStore) {\n _this2.services.resourceStore.addResourceBundle(language, namespace, data);\n }\n });\n }\n }\n } else {\n loadPosition(pos + 1); // try load from next\n }\n });\n } else {\n loadPosition(pos + 1); // try load from next\n }\n };\n\n var savePosition = function savePosition(pos, data) {\n if (pos < 0) return;\n var backend = _this2.backends[pos];\n if (backend.save) {\n backend.save(language, namespace, data);\n savePosition(pos - 1, data);\n } else {\n savePosition(pos - 1, data);\n }\n };\n loadPosition(0);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var clb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n this.backends.forEach(function (b) {\n if (!b.create) return;\n var fc = b.create.bind(b);\n if (fc.length < 6) {\n // no callback\n try {\n var r;\n if (fc.length === 5) {\n // future callback-less api for i18next-locize-backend\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n // promise\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n // sync\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n return;\n }\n\n // normal with callback\n fc(languages, namespace, key, fallbackValue, clb /* unused callback */, opts);\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this3 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return; // avoid loading resources for cimode\n\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this3.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\n\nexport { Backend as default };\n","const openpathConfig = require('openpathConfig');\n\nexport const locizeOptions = {\n projectId: openpathConfig.LOCIZE_PROJECTID,\n apiKey: openpathConfig.LOCIZE_APIKEY,\n version: openpathConfig.LOCIZE_VERSION,\n referenceLng: openpathConfig.LOCIZE_REFLNG,\n};\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport LocizeBackend from 'i18next-locize-backend';\nimport LastUsed from 'locize-lastused';\nimport { locizePlugin } from 'locize';\nimport ChainedBackend from 'i18next-chained-backend';\nimport resourcesToBackend from 'i18next-resources-to-backend';\nimport { locizeOptions } from './locize';\nimport en from './locales/en/translation.json';\nimport es from './locales/es/translation.json';\nimport fr from './locales/fr/translation.json';\nimport it from './locales/it/translation.json';\nimport de from './locales/de/translation.json';\n\n/**\n * We are keeping these files empty to minimize our bundle size until we know we need them.\n * They may need to live in a CDN.\n * Once Locize.com is setup, we can ignore these files and use Locize.com as the source of truth.\n * We are keeping the config setup so we know what it looks like when needed\n */\nconst bundledResources = {\n en: { translation: en },\n es: { translation: es },\n fr: { translation: fr },\n it: { translation: it },\n de: { translation: de },\n};\n\nconst isProduction = process.env.NODE_ENV === 'production';\n// both production and development environments use language detector and react-i18next\ni18n.use(initReactI18next);\n\nexport const i18nInitOptions = {\n fallbackLng: 'en',\n ns: ['translation'],\n defaultNS: 'translation',\n keySeparator: false,\n nsSeparator: false,\n interpolation: {\n escapeValue: false,\n },\n react: {\n transKeepBasicHtmlNodesFor: [\n 'br',\n 'strong',\n 'i',\n 'p',\n 'div',\n 'a',\n 'em',\n 'span',\n ],\n useSuspense: true,\n },\n nonExplicitSupportedLngs: true,\n load: 'languageOnly',\n};\n\n/**\n * This function allows for setting up additional custom formatters to be used in translated strings.\n *\n * It must only be called AFTER i18next.init().\n *\n * See: https://www.i18next.com/translation-function/formatting\n *\n * @param {import('i18next').i18n} i18next The initialized i18next instance\n */\nexport const i18nPostInit = ({ services }) => {\n services.formatter?.addCached('numericList', (lng, options) => {\n const listFormatter = new Intl.ListFormat(lng, {\n ...options.listOptions,\n });\n\n if (options.raw) {\n return (val) => listFormatter.format(val.map(String));\n }\n\n const numberFormatter = new Intl.NumberFormat(lng, {\n ...options.numberOptions,\n });\n\n const formattedNumber = (item) => numberFormatter.format(item);\n\n return (val) => listFormatter.format(val.map(formattedNumber));\n });\n};\n\ni18n.use(LanguageDetector);\n\nif (!isProduction) {\n // development has only locize as backend, not chained in order to have saveMissing and updateMissing\n i18n.use(LocizeBackend).use(LastUsed).use(locizePlugin);\n\n // i18nInitOptions.debug = true;\n i18nInitOptions.saveMissing = true;\n i18nInitOptions.updateMissing = true;\n i18nInitOptions.backend = locizeOptions;\n i18nInitOptions.locizeLastUsed = locizeOptions;\n}\n\nif (isProduction) {\n // production has two chained backends, locize and http, locize is primary and http is fallback\n i18n.use(ChainedBackend);\n\n i18nInitOptions.debug = false;\n i18nInitOptions.saveMissing = false;\n i18nInitOptions.updateMissing = false;\n i18nInitOptions.backend = {\n backends: [LocizeBackend, resourcesToBackend(bundledResources)],\n backendOptions: [locizeOptions],\n };\n}\n\nexport default i18n;\n","var resourcesToBackend = function resourcesToBackend(res) {\n return {\n type: 'backend',\n init: function init(services, backendOptions, i18nextOptions) {},\n read: function read(language, namespace, callback) {\n if (typeof res === 'function') {\n if (res.length < 3) {\n try {\n var r = res(language, namespace);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return callback(null, data && data.default || data);\n }).catch(callback);\n } else {\n callback(null, r);\n }\n } catch (err) {\n callback(err);\n }\n return;\n }\n res(language, namespace, callback);\n return;\n }\n callback(null, res && res[language] && res[language][namespace]);\n }\n };\n};\n\nexport { resourcesToBackend as default };\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSwitch.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSwitch.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps, ReactNode } from 'react';\nimport Switch from 'antd/es/switch';\nimport clsx from 'clsx';\nimport { OpInfoTooltip } from '../OpInfoTooltip/OpInfoTooltip';\n\nimport './OpSwitch.scss';\n\ninterface OpSwitchProps extends ComponentProps<typeof Switch> {\n testId?: string;\n label?: string;\n tooltip?: ReactNode;\n gtm?: string;\n}\n\nexport const OpSwitch = ({\n className,\n testId = 'op-switch',\n gtm,\n label,\n tooltip,\n ...switchProps\n}: OpSwitchProps) => {\n // When a label is passed we generate an id for the switch to be used in the aria-labelledby attribute\n const id = label ? label.replace(/\\s+/g, '-').toLowerCase() : undefined;\n\n return (\n <div className=\"op-switch-container\">\n <Switch\n className={clsx('op-switch', className)}\n data-testid={testId}\n data-gtm={gtm}\n {...(label && { 'aria-labelledby': id })} // For accessibility and tests\n {...switchProps}\n />\n {label && (\n <span id={id} className=\"op-switch-container__label\">\n {label}\n </span>\n )}\n {tooltip && (\n <OpInfoTooltip\n className=\"op-switch-container__tooltip\"\n title={tooltip}\n />\n )}\n </div>\n );\n};\n","module.exports = __webpack_public_path__ + \"44efcea2f84e80cc4092a89796afe886.js\";","module.exports = __webpack_public_path__ + \"e9382a0e67b22188c75e9418de1c9295.js\";","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nexport const genCheckboxStyle = token => {\n const {\n checkboxCls\n } = token;\n const wrapperCls = `${checkboxCls}-wrapper`;\n return [\n // ===================== Basic =====================\n {\n // Group\n [`${checkboxCls}-group`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n flexWrap: 'wrap',\n columnGap: token.marginXS,\n // Group > Grid\n [`> ${token.antCls}-row`]: {\n flex: 1\n }\n }),\n // Wrapper\n [wrapperCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n cursor: 'pointer',\n // Fix checkbox & radio in flex align #30260\n '&:after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: \"'\\\\a0'\"\n },\n // Checkbox near checkbox\n [`& + ${wrapperCls}`]: {\n marginInlineStart: 0\n },\n [`&${wrapperCls}-in-form-item`]: {\n 'input[type=\"checkbox\"]': {\n width: 14,\n // FIXME: magic\n height: 14 // FIXME: magic\n }\n }\n }),\n // Wrapper > Checkbox\n [checkboxCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n whiteSpace: 'nowrap',\n lineHeight: 1,\n cursor: 'pointer',\n borderRadius: token.borderRadiusSM,\n // To make alignment right when `controlHeight` is changed\n // Ref: https://github.com/ant-design/ant-design/issues/41564\n alignSelf: 'center',\n // Wrapper > Checkbox > input\n [`${checkboxCls}-input`]: {\n position: 'absolute',\n // Since baseline align will get additional space offset,\n // we need to move input to top to make it align with text.\n // Ref: https://github.com/ant-design/ant-design/issues/38926#issuecomment-1486137799\n inset: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0,\n margin: 0,\n [`&:focus-visible + ${checkboxCls}-inner`]: Object.assign({}, genFocusOutline(token))\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n boxSizing: 'border-box',\n display: 'block',\n width: token.checkboxSize,\n height: token.checkboxSize,\n direction: 'ltr',\n backgroundColor: token.colorBgContainer,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n borderCollapse: 'separate',\n transition: `all ${token.motionDurationSlow}`,\n '&:after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '25%',\n display: 'table',\n width: token.calc(token.checkboxSize).div(14).mul(5).equal(),\n height: token.calc(token.checkboxSize).div(14).mul(8).equal(),\n border: `${unit(token.lineWidthBold)} solid ${token.colorWhite}`,\n borderTop: 0,\n borderInlineStart: 0,\n transform: 'rotate(45deg) scale(0) translate(-50%,-50%)',\n opacity: 0,\n content: '\"\"',\n transition: `all ${token.motionDurationFast} ${token.motionEaseInBack}, opacity ${token.motionDurationFast}`\n }\n },\n // Wrapper > Checkbox + Text\n '& + span': {\n paddingInlineStart: token.paddingXS,\n paddingInlineEnd: token.paddingXS\n }\n })\n },\n // ===================== Hover =====================\n {\n // Wrapper & Wrapper > Checkbox\n [`\n ${wrapperCls}:not(${wrapperCls}-disabled),\n ${checkboxCls}:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n borderColor: token.colorPrimary\n }\n },\n [`${wrapperCls}:not(${wrapperCls}-disabled)`]: {\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled) ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n },\n [`&:hover ${checkboxCls}-checked:not(${checkboxCls}-disabled):after`]: {\n borderColor: token.colorPrimaryHover\n }\n }\n },\n // ==================== Checked ====================\n {\n // Wrapper > Checkbox\n [`${checkboxCls}-checked`]: {\n [`${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimary,\n borderColor: token.colorPrimary,\n '&:after': {\n opacity: 1,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `all ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n }\n }\n },\n [`\n ${wrapperCls}-checked:not(${wrapperCls}-disabled),\n ${checkboxCls}-checked:not(${checkboxCls}-disabled)\n `]: {\n [`&:hover ${checkboxCls}-inner`]: {\n backgroundColor: token.colorPrimaryHover,\n borderColor: 'transparent'\n }\n }\n },\n // ================= Indeterminate =================\n {\n [checkboxCls]: {\n '&-indeterminate': {\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n backgroundColor: `${token.colorBgContainer} !important`,\n borderColor: `${token.colorBorder} !important`,\n '&:after': {\n top: '50%',\n insetInlineStart: '50%',\n width: token.calc(token.fontSizeLG).div(2).equal(),\n height: token.calc(token.fontSizeLG).div(2).equal(),\n backgroundColor: token.colorPrimary,\n border: 0,\n transform: 'translate(-50%, -50%) scale(1)',\n opacity: 1,\n content: '\"\"'\n }\n },\n // https://github.com/ant-design/ant-design/issues/50074\n [`&:hover ${checkboxCls}-inner`]: {\n backgroundColor: `${token.colorBgContainer} !important`,\n borderColor: `${token.colorPrimary} !important`\n }\n }\n }\n },\n // ==================== Disable ====================\n {\n // Wrapper\n [`${wrapperCls}-disabled`]: {\n cursor: 'not-allowed'\n },\n // Wrapper > Checkbox\n [`${checkboxCls}-disabled`]: {\n // Wrapper > Checkbox > input\n [`&, ${checkboxCls}-input`]: {\n cursor: 'not-allowed',\n // Disabled for native input to enable Tooltip event handler\n // ref: https://github.com/ant-design/ant-design/issues/39822#issuecomment-1365075901\n pointerEvents: 'none'\n },\n // Wrapper > Checkbox > inner\n [`${checkboxCls}-inner`]: {\n background: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n '&:after': {\n borderColor: token.colorTextDisabled\n }\n },\n '&:after': {\n display: 'none'\n },\n '& + span': {\n color: token.colorTextDisabled\n },\n [`&${checkboxCls}-indeterminate ${checkboxCls}-inner::after`]: {\n background: token.colorTextDisabled\n }\n }\n }];\n};\n// ============================== Export ==============================\nexport function getStyle(prefixCls, token) {\n const checkboxToken = mergeToken(token, {\n checkboxCls: `.${prefixCls}`,\n checkboxSize: token.controlInteractiveSize\n });\n return [genCheckboxStyle(checkboxToken)];\n}\nexport default genStyleHooks('Checkbox', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [getStyle(prefixCls, token)];\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.38.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","\n'use strict';\n\nvar stack;\n\nif (process.env.NODE_ENV === 'production') {\n stack = require('./cjs/event-stack.production.js');\n} else {\n stack = require('./cjs/event-stack.development.js');\n}\n\nmodule.exports = stack.default;\nmodule.exports.instance = stack.instance;\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","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","import { addClickKeypressInstrumentationHandler, addXhrInstrumentationHandler, addHistoryInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { defineIntegration, getClient, addBreadcrumb } from '@sentry/core';\nimport { addConsoleInstrumentationHandler, addFetchInstrumentationHandler, getEventDescription, logger, htmlTreeAsString, getComponentName, severityLevelFromString, safeJoin, getBreadcrumbLogLevelFromHttpStatusCode, parseUrl } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) ;\n\nconst breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client) {\n return function addSentryBreadcrumb(event) {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client,\n dom,\n) {\n return function _innerDomBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event ;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client) {\n return function _consoleBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client) {\n return function _xhrBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data = {\n method,\n url,\n status_code,\n };\n\n const hint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n const level = getBreadcrumbLogLevelFromHttpStatusCode(status_code);\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client) {\n return function _fetchBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data = handlerData.fetchData;\n const hint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response ;\n const data = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n const level = getBreadcrumbLogLevelFromHttpStatusCode(data.status_code);\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client) {\n return function _historyBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event) {\n return !!event && !!(event ).target;\n}\n\nexport { breadcrumbsIntegration };\n//# sourceMappingURL=breadcrumbs.js.map\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","module.exports = __webpack_public_path__ + \"f6d7091e70dee6c74956acfef2464d08.js\";","module.exports = __webpack_public_path__ + \"a0e32ba94aa4384823d768802b9486e1.js\";","module.exports = __webpack_public_path__ + \"9696a4229fb787eeb25b26f1274b75ee.js\";","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","module.exports = __webpack_public_path__ + \"37172facd8a534a38f378ca2a9c7c11b.js\";","import { captureException } from '@sentry/browser';\nimport { isError } from '@sentry/utils';\nimport { version } from 'react';\n\n/**\n * See if React major version is 17+ by parsing version string.\n */\nfunction isAtLeastReact17(reactVersion) {\n const reactMajor = reactVersion.match(/^([^.]+)/);\n return reactMajor !== null && parseInt(reactMajor[0]) >= 17;\n}\n\n/**\n * Recurse through `error.cause` chain to set cause on an error.\n */\nfunction setCause(error, cause) {\n const seenErrors = new WeakSet();\n\n function recurse(error, cause) {\n // If we've already seen the error, there is a recursive loop somewhere in the error's\n // cause chain. Let's just bail out then to prevent a stack overflow.\n if (seenErrors.has(error)) {\n return;\n }\n if (error.cause) {\n seenErrors.add(error);\n return recurse(error.cause, cause);\n }\n error.cause = cause;\n }\n\n recurse(error, cause);\n}\n\n/**\n * Captures an error that was thrown by a React ErrorBoundary or React root.\n *\n * @param error The error to capture.\n * @param errorInfo The errorInfo provided by React.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureReactException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error,\n { componentStack },\n hint,\n) {\n // If on React version >= 17, create stack trace from componentStack param and links\n // to to the original error using `error.cause` otherwise relies on error param for stacktrace.\n // Linking errors requires the `LinkedErrors` integration be enabled.\n // See: https://reactjs.org/blog/2020/08/10/react-v17-rc.html#native-component-stacks\n //\n // Although `componentDidCatch` is typed to accept an `Error` object, it can also be invoked\n // with non-error objects. This is why we need to check if the error is an error-like object.\n // See: https://github.com/getsentry/sentry-javascript/issues/6167\n if (isAtLeastReact17(version) && isError(error) && componentStack) {\n const errorBoundaryError = new Error(error.message);\n errorBoundaryError.name = `React ErrorBoundary ${error.name}`;\n errorBoundaryError.stack = componentStack;\n\n // Using the `LinkedErrors` integration to link the errors together.\n setCause(error, errorBoundaryError);\n }\n\n return captureException(error, {\n ...hint,\n captureContext: {\n contexts: { react: { componentStack } },\n },\n });\n}\n\n/**\n * Creates an error handler that can be used with the `onCaughtError`, `onUncaughtError`,\n * and `onRecoverableError` options in `createRoot` and `hydrateRoot` React DOM methods.\n *\n * @param callback An optional callback that will be called after the error is captured.\n * Use this to add custom handling for errors.\n *\n * @example\n *\n * ```JavaScript\n * const root = createRoot(container, {\n * onCaughtError: Sentry.reactErrorHandler(),\n * onUncaughtError: Sentry.reactErrorHandler((error, errorInfo) => {\n * console.warn('Caught error', error, errorInfo.componentStack);\n * });\n * });\n * ```\n */\nfunction reactErrorHandler(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (error, errorInfo) => {\n const eventId = captureReactException(error, errorInfo);\n if (callback) {\n callback(error, errorInfo, eventId);\n }\n };\n}\n\nexport { captureReactException, isAtLeastReact17, reactErrorHandler, setCause };\n//# sourceMappingURL=error.js.map\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","module.exports = __webpack_public_path__ + \"269732f4c5f6e82ea3246548a9631b47.js\";","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n var cacheElementRef = useRef();\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import { createRawMenuItems } from 'config/createRawMenuItems.tsx';\n\nexport function getRawMenuItems(opConfig, orgConfig) {\n return createRawMenuItems(opConfig, orgConfig);\n}\n\nexport function getItemConfig(items, route) {\n let item = null;\n for (let i = 0; i < items.length; i++) {\n if (items[i].route === route) {\n item = items[i];\n }\n if (items[i].items) {\n const testItem = getItemConfig(items[i].items, route);\n if (testItem) {\n return testItem;\n }\n }\n }\n return item;\n}\n","export default __webpack_public_path__ + \"assets/favicons/favicon-16x16.png\";","import { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n}) {\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n const t = tFromProps || i18n?.t.bind(i18n);\n return TransWithoutContext({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions,\n values,\n defaults,\n components,\n ns: ns || t?.ns || defaultNSFromContext || i18n?.options?.defaultNS,\n i18n,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, memoResult, token2key, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n if (typeof document !== 'undefined') {\n var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n styles.forEach(function (style) {\n if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n }\n });\n }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n var tokenKeyList = Array.from(tokenKeys.keys());\n var cleanableKeyList = tokenKeyList.filter(function (key) {\n var count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n\n // Should keep tokens under threshold for not to insert style too often\n if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n cleanableKeyList.forEach(function (key) {\n removeStyleTags(key, instanceId);\n tokenKeys.delete(key);\n });\n }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n var derivativeToken = theme.getDerivativeToken(originToken);\n\n // Merge with override\n var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n // Format if needed\n if (format) {\n mergedDerivativeToken = format(mergedDerivativeToken);\n }\n return mergedDerivativeToken;\n};\nexport var TOKEN_PREFIX = 'token';\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _useContext = useContext(StyleContext),\n instanceId = _useContext.cache.instanceId,\n container = _useContext.container;\n var _option$salt = option.salt,\n salt = _option$salt === void 0 ? '' : _option$salt,\n _option$override = option.override,\n override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n formatToken = option.formatToken,\n compute = option.getComputedToken,\n cssVar = option.cssVar;\n\n // Basic - We do basic cache here\n var mergedToken = memoResult(function () {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n }, tokens);\n var tokenStr = flattenToken(mergedToken);\n var overrideTokenStr = flattenToken(override);\n var cssVarStr = cssVar ? flattenToken(cssVar) : '';\n var cachedToken = useGlobalCache(TOKEN_PREFIX, [salt, theme.id, tokenStr, overrideTokenStr, cssVarStr], function () {\n var _cssVar$key;\n var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n // Replace token value with css variables\n var actualToken = _objectSpread({}, mergedDerivativeToken);\n var cssVarsStr = '';\n if (!!cssVar) {\n var _transformToken = transformToken(mergedDerivativeToken, cssVar.key, {\n prefix: cssVar.prefix,\n ignore: cssVar.ignore,\n unitless: cssVar.unitless,\n preserve: cssVar.preserve\n });\n var _transformToken2 = _slicedToArray(_transformToken, 2);\n mergedDerivativeToken = _transformToken2[0];\n cssVarsStr = _transformToken2[1];\n }\n\n // Optimize for `useStyleRegister` performance\n var tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n actualToken._tokenKey = token2key(actualToken, salt);\n var themeKey = (_cssVar$key = cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) !== null && _cssVar$key !== void 0 ? _cssVar$key : tokenKey;\n mergedDerivativeToken._themeKey = themeKey;\n recordCleanToken(themeKey);\n var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n mergedDerivativeToken._hashId = hashId; // Not used\n\n return [mergedDerivativeToken, hashId, actualToken, cssVarsStr, (cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) || ''];\n }, function (cache) {\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._themeKey, instanceId);\n }, function (_ref) {\n var _ref2 = _slicedToArray(_ref, 4),\n token = _ref2[0],\n cssVarsStr = _ref2[3];\n if (cssVar && cssVarsStr) {\n var style = updateCSS(cssVarsStr, hash(\"css-variables-\".concat(token._themeKey)), {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container,\n priority: -999\n });\n style[CSS_IN_JS_INSTANCE] = instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(ATTR_TOKEN, token._themeKey);\n }\n });\n return cachedToken;\n}\nexport var extract = function extract(cache, effectStyles, options) {\n var _cache = _slicedToArray(cache, 5),\n realToken = _cache[2],\n styleStr = _cache[3],\n cssVarKey = _cache[4];\n var _ref3 = options || {},\n plain = _ref3.plain;\n if (!styleStr) {\n return null;\n }\n var styleId = realToken._tokenKey;\n var order = -999;\n\n // ====================== Style ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n return [order, styleId, styleText];\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-video-region-select{margin-bottom:0}.op-form-video-region-select__skeleton{width:100% !important;height:23rem !important}.op-form-video-region-select__skeleton-icon{font-size:2.8571428571rem;color:var(--colorTextLabel)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/OpFormVideoRegionSelect.scss\"],\"names\":[],\"mappings\":\"AAEA,6BACE,eAAA,CAEA,uCACE,qBAAA,CACA,uBAAA,CAGF,4CACE,yBAAA,CACA,2BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-video-region-select {\\n margin-bottom: 0;\\n\\n &__skeleton {\\n width: 100% !important;\\n height: common.toRem(322) !important;\\n }\\n\\n &__skeleton-icon {\\n font-size: common.toRem(40);\\n color: var(--colorTextLabel);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","// Style as inline component\nimport { unit } from '@ant-design/cssinjs';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\nimport { genSubStyleComponent } from '../../theme/internal';\nimport { prepareComponentToken, prepareToken } from './token';\nconst genButtonCompactStyle = token => {\n const {\n componentCls,\n calc\n } = token;\n return {\n [componentCls]: {\n // Special styles for Primary Button\n [`&-compact-item${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: calc(token.lineWidth).mul(-1).equal(),\n insetInlineStart: calc(token.lineWidth).mul(-1).equal(),\n display: 'inline-block',\n width: token.lineWidth,\n height: `calc(100% + ${unit(token.lineWidth)} * 2)`,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n },\n // Special styles for Primary Button\n '&-compact-vertical-item': {\n [`&${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: calc(token.lineWidth).mul(-1).equal(),\n insetInlineStart: calc(token.lineWidth).mul(-1).equal(),\n display: 'inline-block',\n width: `calc(100% + ${unit(token.lineWidth)} * 2)`,\n height: token.lineWidth,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Button', 'compact'], token => {\n const buttonToken = prepareToken(token);\n return [\n // Space Compact\n genCompactItemStyle(buttonToken), genCompactItemVerticalStyle(buttonToken), genButtonCompactStyle(buttonToken)];\n}, prepareComponentToken);","/**\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 = stubFalse;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _immutable = require(\"immutable\");\n\nvar _getIn = _interopRequireDefault(require(\"./getIn\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar structure = {\n fromJS: function fromJS(jsValue) {\n return (0, _immutable.fromJS)(jsValue, function (key, value) {\n return _immutable.Iterable.isIndexed(value) ? value.toList() : value.toMap();\n });\n },\n getIn: _getIn[\"default\"],\n merge: function merge(state, payload) {\n return state.merge(payload);\n },\n toJS: function toJS(value) {\n return _immutable.Iterable.isIterable(value) ? value.toJS() : value;\n }\n};\nvar _default = structure;\nexports[\"default\"] = _default;","module.exports = __webpack_public_path__ + \"cbdc4ca43a8c940a6c3f59a8b6f17df5.js\";","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols 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\nmodule.exports = copySymbols;\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","module.exports = __webpack_public_path__ + \"bfae1ca81a1ee3b319b4562b0e40c591.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _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\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n\n // Register on init\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resetCount: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n });\n // ================================== Utils ==================================\n _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n });\n _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n if (!_this.mounted) return;\n\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n });\n // Event should only trigger when meta changed\n _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, _meta)) {\n onMetaChange(_meta);\n }\n _this.metaCache = _meta;\n } else {\n _this.metaCache = null;\n }\n });\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && !isEqual(prevValue, curValue)) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 || onReset();\n _this.refresh();\n return;\n }\n break;\n\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n var data = info.data;\n if (namePathMatch) {\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n // Contains path with value should also check\n _this.reRender();\n return;\n }\n\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example <List name=\"list\"><Field name={['list', 0]}></List>\n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (_this.mounted) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 2:\n _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n if (!(validateDebounce && triggerName)) {\n _context.next = 10;\n break;\n }\n _context.next = 8;\n return new Promise(function (resolve) {\n setTimeout(resolve, validateDebounce);\n });\n case 8:\n if (!(_this.validatePromise !== rootPromise)) {\n _context.next = 10;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 10:\n promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n var warningOnly = _ref4.rule.warningOnly,\n _ref4$errors = _ref4.errors,\n errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return _context.abrupt(\"return\", promise);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })));\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n return !!_this.validatePromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n return _this.touched;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n });\n _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n return _this.errors;\n });\n _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n return _this.warnings;\n });\n _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n return _this.props.isListField;\n });\n _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n return _this.props.isList;\n });\n _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n return _this.props.preserve;\n });\n // ============================= Child Component =============================\n _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n });\n // Only return validate child node. If invalidate, will do nothing about field.\n _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n // Support render props\n if (typeof children === 'function') {\n var _meta2 = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n });\n // ============================== Field Control ==============================\n _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n });\n _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n name = _this$props6.name,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n var originTriggerFunc = childProps[trigger];\n var valueProps = name !== undefined ? mergedGetValueProps(value) : {};\n\n // warning when prop value is function\n if (process.env.NODE_ENV !== 'production' && valueProps) {\n Object.keys(valueProps).forEach(function (key) {\n warning(typeof valueProps[key] !== 'function', \"It's not recommended to generate dynamic function prop by `getValueProps`. Please pass it to child component directly (prop: \".concat(key, \")\"));\n });\n }\n var control = _objectSpread(_objectSpread({}, childProps), valueProps);\n\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n });\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n trigger: 'onChange',\n valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n var name = _ref6.name,\n restProps = _objectWithoutProperties(_ref6, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-item .ant-form-item-label{font-size:1rem;color:var(--colorTextLabel) !important}.op-form-item .ant-form-item-explain-error{font-size:0.8571428571rem}.op-form-item:has(.ant-form-item-control-input-content:empty){display:none}.op-form-item--hidden{display:none}.op-form-item:has(+.op-form-item--hidden){margin-bottom:0}.op-form.ant-form-vertical label.ant-form-item-required::before{display:none !important}.op-form.ant-form-vertical label.ant-form-item-required::after{position:relative;top:-0.1428571429rem;display:inline-block;margin-inline-end:0.2857142857rem;color:var(--colorErrorText);font-size:1rem;font-family:SimSun,sans-serif;line-height:1;content:\"*\";visibility:visible !important}.op-form .op-section{margin-bottom:1.7142857143rem}.op-form .op-section>.ant-form-item:last-of-type{margin-bottom:0}.op-form .op-card .ant-card-body{padding:1.1428571429rem 1.7142857143rem 0.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/OpForm.scss\"],\"names\":[],\"mappings\":\"AAII,mCACE,cAAA,CACA,sCAAA,CAGF,2CACE,yBAAA,CAIF,8DACE,YAAA,CAGF,sBACE,YAAA,CAGF,0CACE,eAAA,CAQA,gEACE,uBAAA,CAGF,+DACE,iBAAA,CACA,oBAAA,CACA,oBAAA,CACA,iCAAA,CACA,2BAAA,CACA,cAAA,CACA,6BAAA,CACA,aAAA,CACA,WAAA,CACA,6BAAA,CAMN,qBACE,6BAAA,CAEA,iDACE,eAAA,CAKF,iCACE,uDAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form {\\n &-item {\\n .ant-form-item-label {\\n font-size: 1rem;\\n color: var(--colorTextLabel) !important;\\n }\\n\\n .ant-form-item-explain-error {\\n font-size: common.toRem(12);\\n }\\n\\n // This happens when registering a FormItem with no content\\n &:has(.ant-form-item-control-input-content:empty) {\\n display: none;\\n }\\n\\n &--hidden {\\n display: none;\\n }\\n\\n &:has(+ .op-form-item--hidden) {\\n margin-bottom: 0;\\n }\\n }\\n\\n &.ant-form-vertical {\\n\\n // Move required asterisk to the right\\n label {\\n &.ant-form-item-required::before {\\n display: none !important;\\n }\\n\\n &.ant-form-item-required::after {\\n position: relative;\\n top: common.toRem(-2);\\n display: inline-block;\\n margin-inline-end: common.toRem(4);\\n color: var(--colorErrorText);\\n font-size: common.toRem(14);\\n font-family: SimSun, sans-serif;\\n line-height: 1;\\n content: '*';\\n visibility: visible !important;\\n }\\n }\\n }\\n\\n // Keep section spacing consistent when withing a form\\n .op-section {\\n margin-bottom: common.toRem(24);\\n\\n & > .ant-form-item:last-of-type {\\n margin-bottom: 0;\\n }\\n }\\n\\n .op-card {\\n .ant-card-body {\\n padding: common.toRem(16) common.toRem(24) common.toRem(4);\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"118fa9ea46f9ba830cd0e843f4d3385a.js\";","module.exports = __webpack_public_path__ + \"e4917fa7632b01d28e99304d32d989f7.js\";","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","import {\n LIST,\n OPTIONS,\n SET_OMNISELECT_LOADING,\n REQUEST_OMNISELECT_DATA,\n SET_OMNISELECT_LIST,\n SET_OMNISELECT_OPTIONS,\n ADD_OMNISELECT_ADD,\n ADD_OMNISELECT_REMOVE,\n REMOVE_OMNISELECT_REMOVE,\n REMOVE_OMNISELECT_ADD,\n RESET_OMNISELECT_STATE,\n SET_OMNISELECT_COUNT,\n} from './constants';\n\nexport function setOmniSelectCount({ page, omniId = null, count }) {\n return {\n type: SET_OMNISELECT_COUNT,\n page,\n omniId,\n count,\n };\n}\n\nexport function resetOmniSelectState({ page, omniId = null }) {\n return {\n type: RESET_OMNISELECT_STATE,\n page,\n omniId,\n };\n}\n\nexport function addOmniSelectAdd({ page, omniId = null, add }) {\n return {\n type: ADD_OMNISELECT_ADD,\n page,\n omniId,\n add,\n };\n}\n\nexport function removeOmniSelectAdd({ page, omniId = null, add }) {\n return {\n type: REMOVE_OMNISELECT_ADD,\n page,\n omniId,\n add,\n };\n}\n\nexport function removeOmniSelectRemove({ page, omniId = null, remove }) {\n return {\n type: REMOVE_OMNISELECT_REMOVE,\n page,\n omniId,\n remove,\n };\n}\n\nexport function addOmniSelectRemove({ page, omniId = null, remove }) {\n return {\n type: ADD_OMNISELECT_REMOVE,\n page,\n omniId,\n remove,\n };\n}\n\nexport function setOmniSelectLoading({ page, omniId = null, loading }) {\n return {\n type: SET_OMNISELECT_LOADING,\n page,\n omniId,\n loading,\n };\n}\n\nexport function requestOmniSelectData({\n page,\n omniId = null,\n filter = null,\n apiData,\n}) {\n return {\n type: REQUEST_OMNISELECT_DATA,\n page,\n omniId,\n filter,\n apiData,\n };\n}\n\nexport function setOmniSelectList({ page, omniId = null, data }) {\n return {\n type: SET_OMNISELECT_LIST,\n page,\n omniId,\n [LIST]: data,\n };\n}\n\nexport function setOmniSelectOptions({ page, omniId = null, data }) {\n return {\n type: SET_OMNISELECT_OPTIONS,\n page,\n omniId,\n [OPTIONS]: data,\n };\n}\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\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","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\n\n/**![close-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMTI3Ljk4IDI3NC44MmgtLjA0bC0uMDguMDZMNTEyIDQ2Ni43NSAzODQuMTQgMzM4Ljg4Yy0uMDQtLjA1LS4wNi0uMDYtLjA4LS4wNmEuMTIuMTIgMCAwMC0uMDcgMGMtLjAzIDAtLjA1LjAxLS4wOS4wNWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAwLS4wNS4wOS4xMi4xMiAwIDAwMCAuMDd2LjAyYS4yNy4yNyAwIDAwLjA2LjA2TDQ2Ni43NSA1MTIgMzM4Ljg4IDYzOS44NmMtLjA1LjA0LS4wNi4wNi0uMDYuMDhhLjEyLjEyIDAgMDAwIC4wN2MwIC4wMy4wMS4wNS4wNS4wOWw0NS4wMiA0NS4wMmEuMi4yIDAgMDAuMDkuMDUuMTIuMTIgMCAwMC4wNyAwYy4wMiAwIC4wNC0uMDEuMDgtLjA1TDUxMiA1NTcuMjVsMTI3Ljg2IDEyNy44N2MuMDQuMDQuMDYuMDUuMDguMDVhLjEyLjEyIDAgMDAuMDcgMGMuMDMgMCAuMDUtLjAxLjA5LS4wNWw0NS4wMi00NS4wMmEuMi4yIDAgMDAuMDUtLjA5LjEyLjEyIDAgMDAwLS4wN3YtLjAyYS4yNy4yNyAwIDAwLS4wNS0uMDZMNTU3LjI1IDUxMmwxMjcuODctMTI3Ljg2Yy4wNC0uMDQuMDUtLjA2LjA1LS4wOGEuMTIuMTIgMCAwMDAtLjA3YzAtLjAzLS4wMS0uMDUtLjA1LS4wOWwtNDUuMDItNDUuMDJhLjIuMiAwIDAwLS4wOS0uMDUuMTIuMTIgMCAwMC0uMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CloseCircleFilled';\n}\nexport default RefIcon;","module.exports = __webpack_public_path__ + \"ee5d36473f84db2af26d82efd69a38ec.js\";","\"use client\";\n\nimport * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","import { opTime } from 'utils/dates';\n\nexport const DATE_FORMAT = 'MMM DD, YYYY';\nexport const DATE_YYYY_MM_DD_FORMAT = 'YYYY-MM-DD';\nexport const TIME_FORMAT = 'h:mm a';\nexport const TIME_WITH_SECONDS_FORMAT = 'h:mm:ss a';\nexport const TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT = `${TIME_WITH_SECONDS_FORMAT} z`;\nexport const DATE_TIME_FORMAT = `${DATE_FORMAT} ${TIME_FORMAT}`;\nexport const DATE_TIME_WITH_SECONDS_FORMAT = `${DATE_FORMAT} ${TIME_WITH_SECONDS_FORMAT}`;\nexport const DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT = `${DATE_FORMAT} ${TIME_WITH_SECONDS_FORMAT} z`;\nexport const ZULU_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS[Z]';\n\nexport const DATE_SHORT_MONTH_FORMAT = 'MMM';\nexport const DATE_LONG_MONTH_FORMAT = 'MMMM';\n\nexport const DATE_LONG_YEAR_FORMAT = 'YYYY';\nexport const DATE_SHORT_MONTH_DAY_FORMAT = `${DATE_SHORT_MONTH_FORMAT} DD`;\nexport const DATE_FORMAT_LONG_MONTH_LONG_YEAR = `${DATE_LONG_MONTH_FORMAT} ${DATE_LONG_YEAR_FORMAT}`;\nexport const DATE_FORMAT_SHORT_MONTH_LONG_YEAR = `${DATE_SHORT_MONTH_FORMAT} ${DATE_LONG_YEAR_FORMAT}`;\n\n/* MINIMAL_DATE_FORMAT and MINIMAL_TIME_FORMAT are used inside the <Scheduler>'s formValues */\nexport const MINIMAL_DATE_FORMAT = 'YYYY-MM-DD';\nexport const MINIMAL_TIME_FORMAT = 'HH:mm:ss';\n\nexport const DateAndTimeTypes = {\n MINIMAL_DATE: 'minimaldate',\n MINIMAL_TIME: 'minimaltime',\n DATE: 'date',\n TIME: 'time',\n DATETIME: 'datetime',\n} as const;\n\n/**\n * Generates a Zulu string from a local Zulu string based on the guessed time zone.\n *\n * This is a helper function that takes the form value of a date picker which is a zulu string\n * that is automatically offset based on the computer/browser locale (e.g. a value of midnight\n * on 12/5/2023 in the PST time zone will have a form value of \"2023-12-05T08:00:00.000Z\" as\n * PST has a UTC offset of -8hrs), and converts it to the correct Zulu string that will be\n * stored in the db. In order to do this, we must first remove the automatic offset added to\n * the date shown in the date picker, add the offset of the desired time zone, and then return\n * the Zulu string (e.g. if the desired outcome should be to show midnight on 12/5/2023 in the\n * EST time zone, the value stored should be \"2023-12-05T05:00:00.000Z\" as the UTC offset for\n * EST is -5hrs).\n *\n * @param {string} zuluString - The local Zulu string to convert.\n * @param {string} timeZoneId - The ID of the time zone to convert to.\n * @return {string} The converted Zulu string.\n */\nexport const createZuluStringFromLocalZuluString = (\n zuluString: string,\n timeZoneId?: string,\n) =>\n opTime\n // Convert to UTC dayjs object\n .utc(zuluString)\n // Add UTC offset minutes based on guessed time zone to counter the guessed time zone\n // offset applied by dayjs creating the dayjs object\n .add(opTime().utcOffset(), 'minutes')\n // Subtract time zone UTC offset minutes of desired time zone so you are left with the\n // correct UTC date/time to be stored in the db\n .subtract(opTime().tz(timeZoneId).utcOffset(), 'minutes')\n // Return string in Zulu format\n .format(ZULU_FORMAT);\n\n/**\n * Generates a local Zulu string from a Zulu string in a specified time zone.\n *\n * The inverse of the function above. This takes a value stored in the db and converts it to\n * a local Zulu string based on the desired time zone.\n *\n * @param {string} zuluString - The Zulu string to convert.\n * @param {string} timeZoneId - The ID of the time zone to use for the conversion.\n * @return {string} The local Zulu string.\n */\nexport const createLocalZuluStringFromZuluString = (\n zuluString: string,\n timeZoneId: string,\n) =>\n opTime(zuluString)\n // Adjusts the dayjs object to the desired time zone\n .tz(timeZoneId)\n // Subtracts the UTC offset minutes of the guessed time zone so you are left with the\n // correct local date/time to be shown in the date picker\n .subtract(opTime().utcOffset(), 'minutes')\n // Return the string in Zulu format\n .format(ZULU_FORMAT);\n\n/*\nHelper function to get the 3 letter month abbreviation of the dateTime passed in\nMostly takes the abbreviation and adds a period at the end (Jan.)\nFor May and Jun(e) we want to display the full month\n*/\nexport function getMonthAbbreviation(dateTime?: string) {\n const month = opTime(dateTime).format('MMM');\n\n switch (month) {\n case 'May':\n return 'May'; // Keep as is\n\n case 'Jun':\n return 'June';\n\n default:\n return `${month}.`;\n }\n}\n\n/**\n * Ex)\n * @param {String} dateTime represented as a string\n * If dateTime is undefined opTime defaults to using the current date and time\n * @param {Bool} allowShortcuts\n * If allowShortcuts is True, returns:\n * 'Today'\n * 'Yesterday'\n * If allowShortcuts is False, returns:\n * 'June 6, 2018'\n * @param {Bool} addTime\n * @returns {String}\n * Ex) 'Today' or 'June 6, 2018'\n */\nexport function getFormattedDate(\n dateTime: string | undefined,\n allowShortcuts: boolean,\n addTime: boolean,\n): string {\n const today = opTime().toDate().toDateString();\n const yesterday = opTime().subtract(1, 'days').toDate().toDateString();\n\n const currentDateString = opTime(dateTime).toDate().toDateString();\n\n if (allowShortcuts) {\n if (today === currentDateString) {\n return addTime ? 'Today at' : 'Today';\n }\n if (yesterday === currentDateString) {\n return addTime ? 'Yesterday at' : 'Yesterday';\n }\n }\n\n return `${getMonthAbbreviation(dateTime)} ${opTime(dateTime).format(\n 'D, YYYY',\n )}`;\n}\n\nexport function getFormattedDateAndTime(\n dateTime: string | undefined,\n allowShortcuts: boolean,\n) {\n // if this returns Jan 1, 1970 - dateTime is likely in seconds. Multiply dateTime by 1000 to get ms.\n return `${getFormattedDate(dateTime, allowShortcuts, true)} ${opTime(\n dateTime,\n ).format(TIME_WITH_SECONDS_FORMAT)}`;\n}\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","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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\nmodule.exports = isFunction;\n","module.exports = __webpack_public_path__ + \"7f007f3f67d9c856e727cec1369f8cba.js\";","module.exports = __webpack_public_path__ + \"fcdcf2096a3f2854ee4323211e0dd89d.js\";","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheHas;\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","export const CLEAR_AUTHENTICATED_CONTAINER_STORE_DATA =\n 'app/Authenticated/CLEAR_AUTHENTICATED_CONTAINER_STORE_DATA';\nexport const CHANGE_ROUTE = 'app/Authenticated/CHANGE_ROUTE';\n\nexport const ROOT_CONTAINER_MOUNTED =\n 'app/Authenticated/ROOT_CONTAINER_MOUNTED';\nexport const CLEAR_ORG_SPECIFIC_STORE_DATA =\n 'app/Authenticated/CLEAR_ORG_SPECIFIC_STORE_DATA';\nexport const FIRE_AUTH_REDIRECT_CHECK =\n 'app/Authenticated/FIRE_AUTH_REDIRECT_CHECK';\nexport const FIRE_SCOPE_CHECK = 'app/Authenticated/FIRE_SCOPE_CHECK';\nexport const REQUEST_AND_SET_IDENTITY =\n 'app/Authenticated/REQUEST_AND_SET_IDENTITY';\nexport const REQUEST_PACKAGE_UPGRADE =\n 'app/Authenticated/REQUEST_PACKAGE_UPGRADE';\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","module.exports = __webpack_public_path__ + \"656927386f77b2620f35af391f59d5ab.js\";","/*\n *\n * App actions\n *\n */\n\nimport {\n INIT_STORE_FROM_COOKIE,\n LOGIN_SSO_CALLBACK,\n LOGIN_SUCCESS,\n LOGOUT_REQUEST,\n LOGOUT_SUCCESS,\n SET_CURRENT_ORG,\n SET_CURRENT_ORG_NAME,\n APP_ERROR,\n SET_ORG_DROPDOWN_VISIBILITY,\n SET_LOCKDOWN_DROPDOWN_VISIBILITY,\n CHECK_FOR_MAINTENANCE_MODE,\n CHECK_VERSION_NUMBER,\n SET_UPDATE_REQUIRED,\n SET_MAINTENANCE_MODE,\n SET_DISABLED_ROUTES,\n CHECK_DISABLED_ROUTES,\n CHECK_ACCESS_TOKEN,\n CHECK_INVITE_TOKEN,\n SET_ALERT,\n CLEAR_ALERT,\n SET_ERROR_MESSAGE,\n SET_ORG_USER_PROFILE_IMAGE_URL,\n SET_IDENTITY_INFO,\n SET_CONFIRMATION_PROPS,\n CHECK_INITIAL_LOGIN_FOR_EXISTING_COOKIE,\n SET_PUSH_NOTIFICATION_IS_ENABLED,\n SET_CURRENT_USER_PREFERENCES,\n REQUEST_SWITCH_ORG,\n SET_PREFETCHED_VIDEOCALL_AUTH,\n PREFETCH_DEVICE_VIDEOCALL_AUTH,\n RESET_PREFETCHED_VIDEOCALL_AUTH,\n} from './constants';\n\nexport function checkInitialLoginForExistingCookie(redirectUrl) {\n return {\n type: CHECK_INITIAL_LOGIN_FOR_EXISTING_COOKIE,\n redirectUrl,\n };\n}\n\nexport function setOrgUserProfileImage(imageUrl) {\n return {\n type: SET_ORG_USER_PROFILE_IMAGE_URL,\n imageUrl,\n };\n}\n\nexport function setIdentityInfo(info) {\n return {\n type: SET_IDENTITY_INFO,\n info,\n };\n}\n\nexport function setErrorMessage(message, cta) {\n return {\n type: SET_ERROR_MESSAGE,\n message,\n cta,\n };\n}\n\nexport function requestCheckForMaintenanceMode(forceCheck, callback) {\n return {\n type: CHECK_FOR_MAINTENANCE_MODE,\n forceCheck,\n callback,\n };\n}\n\nexport function requestCheckVersionNumber() {\n return {\n type: CHECK_VERSION_NUMBER,\n };\n}\n\nexport function setUpdateRequired(required) {\n return {\n type: SET_UPDATE_REQUIRED,\n required,\n };\n}\n\nexport function setMaintenanceMode(on) {\n return {\n type: SET_MAINTENANCE_MODE,\n on,\n };\n}\n\nexport function setDisabledRoutes(routes) {\n return {\n type: SET_DISABLED_ROUTES,\n routes,\n };\n}\n/** @type {import('./types').SetAlert} */\nexport function setAlert(\n alertType,\n alertMessage,\n alertHeader,\n { timeout = null, alertIcon = null, alertButtons = null, alertId } = {},\n) {\n return {\n type: SET_ALERT,\n alertType,\n alertIcon,\n alertButtons,\n alertMessage,\n alertHeader,\n timeout, // this will force the alert to trigger a timeout in ms\n alertTime: Date.now(),\n alertId,\n };\n}\n\nexport function clearAlert(id, alertType, clearAll = false /* OPTIONAL */) {\n return {\n type: CLEAR_ALERT,\n id,\n alertType,\n clearAll,\n };\n}\n\nexport function requestLoginSSOCallback(data) {\n return {\n type: LOGIN_SSO_CALLBACK,\n data,\n };\n}\n\n/**\n * Action that signifies a successful login, contains all the information that\n * is returned by the API on a successful login\n *\n * @param {string} identityId ID of the identity who logged in\n * @param {string} orgId Organization ID for the active organization\n * @param {object} orgs Key value table of orgs that this admin has\n * access to containing IDs and Names for each org\n * @param {object} scopes Key value table containing scopes for each org\n * this user has access to\n *\n * @return {object} An action object with a type of LOGIN_SUCCESS\n */\nexport function loginSuccess({\n identityId,\n orgId,\n orgName,\n parentOrgId,\n isLicenseBased,\n currentUserPreferences,\n errorMessage,\n}) {\n return {\n type: LOGIN_SUCCESS,\n identityId,\n orgId,\n orgName,\n parentOrgId,\n isLicenseBased,\n currentUserPreferences,\n errorMessage,\n };\n}\n\nexport function logoutRequest(redirect) {\n return {\n type: LOGOUT_REQUEST,\n redirect,\n };\n}\n\nexport function logoutSuccess() {\n return {\n type: LOGOUT_SUCCESS,\n };\n}\n\nexport function toggleOrgDropDownVisibility() {\n return {\n type: SET_ORG_DROPDOWN_VISIBILITY,\n };\n}\n\nexport function toggleLockdownDropDownVisibility() {\n return {\n type: SET_LOCKDOWN_DROPDOWN_VISIBILITY,\n };\n}\n\nexport function setCurrentOrg(orgId) {\n return {\n type: SET_CURRENT_ORG,\n orgId,\n };\n}\n\nexport const setIntercomNotificationsAreEnabled = (\n intercomNotificationsAreEnabled,\n) => ({\n type: SET_PUSH_NOTIFICATION_IS_ENABLED,\n intercomNotificationsAreEnabled,\n});\n\nexport const setPrefetchedVideocallAuthForDevices = (\n opVideoDeviceId,\n wsUrl,\n token,\n) => ({\n type: SET_PREFETCHED_VIDEOCALL_AUTH,\n opVideoDeviceId,\n wsUrl,\n token,\n});\n\nexport function updatePrefetchedVideoCallAuthForOpVideoDevice(opVideoDeviceId) {\n return {\n type: PREFETCH_DEVICE_VIDEOCALL_AUTH,\n opVideoDeviceId,\n };\n}\n\nexport function resetPrefetchedVideocallAuth(opVideoDeviceId) {\n return {\n type: RESET_PREFETCHED_VIDEOCALL_AUTH,\n opVideoDeviceId,\n };\n}\n\nexport function setCurrentOrgName(orgId, orgName) {\n return {\n type: SET_CURRENT_ORG_NAME,\n orgId,\n orgName,\n };\n}\n\n/**\n * Dispatched when there is an application error.\n *\n * @param {object} error The error\n *\n * @return {object} An action object with a type of APP_ERROR passing the error\n */\nexport function appError(error) {\n return {\n type: APP_ERROR,\n error,\n };\n}\n\nexport function checkAccessToken(callback) {\n return {\n type: CHECK_ACCESS_TOKEN,\n callback,\n };\n}\n\nexport function checkDisabledRoutes(nextPath, callback) {\n return {\n type: CHECK_DISABLED_ROUTES,\n nextPath,\n callback,\n };\n}\n\nexport function checkInviteToken(callback) {\n return {\n type: CHECK_INVITE_TOKEN,\n callback,\n };\n}\n\nexport function initStoreFromCookie(callback) {\n return {\n type: INIT_STORE_FROM_COOKIE,\n callback,\n };\n}\n\nexport function setConfirmationProps(confirmationProps) {\n return {\n type: SET_CONFIRMATION_PROPS,\n confirmationProps,\n };\n}\n\nexport function setCurrentUserPreferences(currentUserPreferences) {\n return {\n type: SET_CURRENT_USER_PREFERENCES,\n currentUserPreferences,\n };\n}\n\nexport function requestSwitchOrg(orgId) {\n return {\n type: REQUEST_SWITCH_ORG,\n orgId,\n };\n}\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-input-duration{width:100%}.op-input-duration__select{width:120px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpInputDuration/OpInputDuration.scss\"],\"names\":[],\"mappings\":\"AAAA,mBACE,UAAA,CAEA,2BACE,WAAA\",\"sourcesContent\":[\".op-input-duration {\\n width: 100%;\\n\\n &__select {\\n width: 120px; // Will not cut off longest translation of seconds (Sekundene)\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 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/** 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/**\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} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone 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, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\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 result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, 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 (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\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, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","module.exports = __webpack_public_path__ + \"80ddbf4f0fdde4ddba57130e61043017.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar AbstractCalculator = /*#__PURE__*/_createClass(function AbstractCalculator() {\n _classCallCheck(this, AbstractCalculator);\n});\nexport default AbstractCalculator;","module.exports = __webpack_public_path__ + \"019e34e85139cfc611bf23efa096c980.js\";","var getCompVarPrefix = function getCompVarPrefix(component, prefix) {\n return \"\".concat([prefix, component.replace(/([A-Z]+)([A-Z][a-z]+)/g, '$1-$2').replace(/([a-z])([A-Z])/g, '$1-$2')].filter(Boolean).join('-'));\n};\nexport default getCompVarPrefix;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","/**\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\nmodule.exports = arrayPush;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.App{display:flex;height:100vh;padding:0}.App__left{position:sticky;display:flex;flex:1;flex-direction:column;height:100vh;top:0}@media(max-width: 63rem){.App__left{display:none}}.App__right{display:flex;flex:1;flex-direction:column;align-items:center;justify-items:center;overflow-y:scroll}.App__container{display:flex;align-items:center;flex-direction:column;width:25.7142857143rem;padding:19vh 1.7142857143rem 1.1428571429rem 1.7142857143rem;background-color:var(--colorBgContainer);text-align:center}.App .op-form{text-align:initial}.App__logo{width:22.2857142857rem;display:flex;flex-direction:column;align-items:center;margin-bottom:3.4285714286rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/App.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,KACE,YAAA,CACA,YAAA,CACA,SAAA,CAEA,WACE,eAAA,CACA,YAAA,CACA,MAAA,CACA,qBAAA,CACA,YAAA,CACA,KAAA,CCGF,yBDTA,WASI,YAAA,CAAA,CAIJ,YACE,YAAA,CACA,MAAA,CACA,qBAAA,CACA,kBAAA,CACA,oBAAA,CACA,iBAAA,CAGF,gBACE,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,sBEhCgC,CFiChC,4DAAA,CACA,wCAAA,CACA,iBAAA,CAGF,cACE,kBAAA,CAGF,WACE,sBE1CsB,CF2CtB,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use './global.scss';\\n\\n.App {\\n display: flex;\\n height: 100vh;\\n padding: 0;\\n\\n &__left {\\n position: sticky;\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n height: 100vh;\\n top: 0;\\n\\n @include common.smaller-than(common.$tablet-landscape-width - 1) {\\n display: none;\\n }\\n }\\n\\n &__right {\\n display: flex;\\n flex: 1;\\n flex-direction: column;\\n align-items: center;\\n justify-items: center;\\n overflow-y: scroll;\\n }\\n\\n &__container {\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n width: global.$unification-login-container-width;\\n padding: 19vh common.toRem(24) common.toRem(16) common.toRem(24);\\n background-color: var(--colorBgContainer);\\n text-align: center;\\n }\\n\\n .op-form {\\n text-align: initial;\\n }\\n\\n &__logo {\\n width: global.$unification-login-width;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n margin-bottom: common.toRem(48);\\n }\\n}\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","ace.define(\"ace/split\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/editor\",\"ace/virtual_renderer\",\"ace/edit_session\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Editor = require(\"./editor\").Editor;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Split;\nSplit = function (container, theme, splits) {\n this.BELOW = 1;\n this.BESIDE = 0;\n this.$container = container;\n this.$theme = theme;\n this.$splits = 0;\n this.$editorCSS = \"\";\n this.$editors = [];\n this.$orientation = this.BESIDE;\n this.setSplits(splits || 1);\n this.$cEditor = this.$editors[0];\n this.on(\"focus\", function (editor) {\n this.$cEditor = editor;\n }.bind(this));\n};\n(function () {\n oop.implement(this, EventEmitter);\n this.$createEditor = function () {\n var el = document.createElement(\"div\");\n el.className = this.$editorCSS;\n el.style.cssText = \"position: absolute; top:0px; bottom:0px\";\n this.$container.appendChild(el);\n var editor = new Editor(new Renderer(el, this.$theme));\n editor.on(\"focus\", function () {\n this._emit(\"focus\", editor);\n }.bind(this));\n this.$editors.push(editor);\n editor.setFontSize(this.$fontSize);\n return editor;\n };\n this.setSplits = function (splits) {\n var editor;\n if (splits < 1) {\n throw \"The number of splits have to be > 0!\";\n }\n if (splits == this.$splits) {\n return;\n }\n else if (splits > this.$splits) {\n while (this.$splits < this.$editors.length && this.$splits < splits) {\n editor = this.$editors[this.$splits];\n this.$container.appendChild(editor.container);\n editor.setFontSize(this.$fontSize);\n this.$splits++;\n }\n while (this.$splits < splits) {\n this.$createEditor();\n this.$splits++;\n }\n }\n else {\n while (this.$splits > splits) {\n editor = this.$editors[this.$splits - 1];\n this.$container.removeChild(editor.container);\n this.$splits--;\n }\n }\n this.resize();\n };\n this.getSplits = function () {\n return this.$splits;\n };\n this.getEditor = function (idx) {\n return this.$editors[idx];\n };\n this.getCurrentEditor = function () {\n return this.$cEditor;\n };\n this.focus = function () {\n this.$cEditor.focus();\n };\n this.blur = function () {\n this.$cEditor.blur();\n };\n this.setTheme = function (theme) {\n this.$editors.forEach(function (editor) {\n editor.setTheme(theme);\n });\n };\n this.setKeyboardHandler = function (keybinding) {\n this.$editors.forEach(function (editor) {\n editor.setKeyboardHandler(keybinding);\n });\n };\n this.forEach = function (callback, scope) {\n this.$editors.forEach(callback, scope);\n };\n this.$fontSize = \"\";\n this.setFontSize = function (size) {\n this.$fontSize = size;\n this.forEach(function (editor) {\n editor.setFontSize(size);\n });\n };\n this.$cloneSession = function (session) {\n var s = new EditSession(session.getDocument(), session.getMode());\n var undoManager = session.getUndoManager();\n s.setUndoManager(undoManager);\n s.setTabSize(session.getTabSize());\n s.setUseSoftTabs(session.getUseSoftTabs());\n s.setOverwrite(session.getOverwrite());\n s.setBreakpoints(session.getBreakpoints());\n s.setUseWrapMode(session.getUseWrapMode());\n s.setUseWorker(session.getUseWorker());\n s.setWrapLimitRange(session.$wrapLimitRange.min, session.$wrapLimitRange.max);\n s.$foldData = session.$cloneFoldData();\n return s;\n };\n this.setSession = function (session, idx) {\n var editor;\n if (idx == null) {\n editor = this.$cEditor;\n }\n else {\n editor = this.$editors[idx];\n }\n var isUsed = this.$editors.some(function (editor) {\n return editor.session === session;\n });\n if (isUsed) {\n session = this.$cloneSession(session);\n }\n editor.setSession(session);\n return session;\n };\n this.getOrientation = function () {\n return this.$orientation;\n };\n this.setOrientation = function (orientation) {\n if (this.$orientation == orientation) {\n return;\n }\n this.$orientation = orientation;\n this.resize();\n };\n this.resize = function () {\n var width = this.$container.clientWidth;\n var height = this.$container.clientHeight;\n var editor;\n if (this.$orientation == this.BESIDE) {\n var editorWidth = width / this.$splits;\n for (var i = 0; i < this.$splits; i++) {\n editor = this.$editors[i];\n editor.container.style.width = editorWidth + \"px\";\n editor.container.style.top = \"0px\";\n editor.container.style.left = i * editorWidth + \"px\";\n editor.container.style.height = height + \"px\";\n editor.resize();\n }\n }\n else {\n var editorHeight = height / this.$splits;\n for (var i = 0; i < this.$splits; i++) {\n editor = this.$editors[i];\n editor.container.style.width = width + \"px\";\n editor.container.style.top = i * editorHeight + \"px\";\n editor.container.style.left = \"0px\";\n editor.container.style.height = editorHeight + \"px\";\n editor.resize();\n }\n }\n };\n}).call(Split.prototype);\nexports.Split = Split;\n\n});\n\nace.define(\"ace/ext/split\",[\"require\",\"exports\",\"module\",\"ace/split\"], function(require, exports, module){\"use strict\";\nmodule.exports = require(\"../split\");\n\n}); (function() {\n ace.require([\"ace/ext/split\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n // 48\n sizeXL: sizeUnit * (sizeStep + 4),\n // 32\n sizeLG: sizeUnit * (sizeStep + 2),\n // 24\n sizeMD: sizeUnit * (sizeStep + 1),\n // 20\n sizeMS: sizeUnit * sizeStep,\n // 16\n size: sizeUnit * sizeStep,\n // 16\n sizeSM: sizeUnit * (sizeStep - 1),\n // 12\n sizeXS: sizeUnit * (sizeStep - 2),\n // 8\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _CloudUploadOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/CloudUploadOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar CloudUploadOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _CloudUploadOutlined.default\n }));\n};\n/**![cloud-upload](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxOC4zIDQ1OWE4IDggMCAwMC0xMi42IDBsLTExMiAxNDEuN2E3Ljk4IDcuOTggMCAwMDYuMyAxMi45aDczLjlWODU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNjEzLjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDQ1OXoiIC8+PHBhdGggZD0iTTgxMS40IDM2Ni43Qzc2NS42IDI0NS45IDY0OC45IDE2MCA1MTIuMiAxNjBTMjU4LjggMjQ1LjggMjEzIDM2Ni42QzEyNy4zIDM4OS4xIDY0IDQ2Ny4yIDY0IDU2MGMwIDExMC41IDg5LjUgMjAwIDE5OS45IDIwMEgzMDRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThoLTQwLjFjLTMzLjcgMC02NS40LTEzLjQtODktMzcuNy0yMy41LTI0LjItMzYtNTYuOC0zNC45LTkwLjYuOS0yNi40IDkuOS01MS4yIDI2LjItNzIuMSAxNi43LTIxLjMgNDAuMS0zNi44IDY2LjEtNDMuN2wzNy45LTkuOSAxMy45LTM2LjZjOC42LTIyLjggMjAuNi00NC4xIDM1LjctNjMuNGEyNDUuNiAyNDUuNiAwIDAxNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMEM4NDYuMSA0NTQuNSA4ODQgNTAzLjggODg0IDU2MGMwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN2ExMjMuMDcgMTIzLjA3IDAgMDEtODcuNiAzNi4zSDcyMGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg0MC4xQzg3MC41IDc2MCA5NjAgNjcwLjUgOTYwIDU2MGMwLTkyLjctNjMuMS0xNzAuNy0xNDguNi0xOTMuM3oiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(CloudUploadOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"CloudUploadOutlined\";\n}\nvar _default = RefIcon;\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { onFCP } from './onFCP.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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/** Thresholds for CLS. See https://web.dev/articles/cls#what_is_a_good_cls_score */\nconst CLSThresholds = [0.1, 0.25];\n\n/**\n * Calculates the [CLS](https://web.dev/articles/cls) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/articles/cls#layout_shift_score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onCLS = (onReport, opts = {}) => {\n // Start monitoring FCP so we can only report CLS if FCP is also reported.\n // Note: this is done to match the current behavior of CrUX.\n onFCP(\n runOnce(() => {\n const metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n // Only count layout shifts without recent user input.\n if (!entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry\n // and less than 5 seconds after the first entry in the session,\n // include the entry in the current session. Otherwise, start a new\n // session.\n if (\n sessionValue &&\n firstSessionEntry &&\n lastSessionEntry &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n }\n });\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n report();\n }\n };\n\n const po = observe('layout-shift', handleEntries);\n if (po) {\n report = bindReporter(onReport, metric, CLSThresholds, opts.reportAllChanges);\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n report(true);\n });\n\n // Queue a task to report (if nothing else triggers a report first).\n // This allows CLS to be reported as soon as FCP fires when\n // `reportAllChanges` is true.\n setTimeout(report, 0);\n }\n }),\n );\n};\n\nexport { CLSThresholds, onCLS };\n//# sourceMappingURL=getCLS.js.map\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","module.exports = __webpack_public_path__ + \"c7b15736f0a5f688545ac278ce1f3366.js\";","import { useCallback, useRef, useState } from 'react';\nimport useUnmount from './useUnmount';\nvar useRafState = function (initialState) {\n var frame = useRef(0);\n var _a = useState(initialState), state = _a[0], setState = _a[1];\n var setRafState = useCallback(function (value) {\n cancelAnimationFrame(frame.current);\n frame.current = requestAnimationFrame(function () {\n setState(value);\n });\n }, []);\n useUnmount(function () {\n cancelAnimationFrame(frame.current);\n });\n return [state, setRafState];\n};\nexport default useRafState;\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","/**\n * @remix-run/router v1.23.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in <Link to=\\\"...\\\"> and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach(key => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach(key => deletedFetchers.delete(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts != null && opts.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ?\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise<DataStrategyResult> to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init3, _result$init4;\n if (result.data instanceof Error) {\n var _result$init, _result$init2;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: (_result$init2 = result.init) != null && _result$init2.headers ? new Headers(result.init.headers) : undefined\n };\n }\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(((_result$init3 = result.init) == null ? void 0 : _result$init3.status) || 500, undefined, result.data),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: (_result$init4 = result.init) != null && _result$init4.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: ((_result$init6 = result.init) == null ? void 0 : _result$init6.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init7, _result$init8;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init7 = result.init) == null ? void 0 : _result$init7.status,\n headers: (_result$init8 = result.init) != null && _result$init8.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.30.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator,\n static: isStatic\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = !isStatic && dataRouterState && dataRouterState.matches && dataRouterState.matches.length > 0 ? dataRouterState.matches : matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // `<Routes>`\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned$1 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned$1[key]) {\n alreadyWarned$1[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\nconst alreadyWarned = {};\nfunction warnOnce(key, message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\nconst logDeprecation = (flag, msg, link) => warnOnce(flag, \"\\u26A0\\uFE0F React Router Future Flag Warning: \" + msg + \". \" + (\"You can use the `\" + flag + \"` future flag to opt-in early. \") + (\"For more information, see \" + link + \".\"));\nfunction logV6DeprecationWarnings(renderFuture, routerFuture) {\n if ((renderFuture == null ? void 0 : renderFuture.v7_startTransition) === undefined) {\n logDeprecation(\"v7_startTransition\", \"React Router will begin wrapping state updates in `React.startTransition` in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\");\n }\n if ((renderFuture == null ? void 0 : renderFuture.v7_relativeSplatPath) === undefined && (!routerFuture || !routerFuture.v7_relativeSplatPath)) {\n logDeprecation(\"v7_relativeSplatPath\", \"Relative route resolution within Splat routes is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\");\n }\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\"v7_fetcherPersist\", \"The persistence behavior of fetchers is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\");\n }\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\"v7_normalizeFormMethod\", \"Casing of `formMethod` fields is being normalized to uppercase in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\");\n }\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\"v7_partialHydration\", \"`RouterProvider` hydration behavior is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\");\n }\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\"v7_skipActionErrorRevalidation\", \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\");\n }\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n React.useEffect(() => logV6DeprecationWarnings(future, router.future), [router, future]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n future,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/v6/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex,\n future\n } = _ref3;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/v6/components/navigate\n */\nfunction Navigate(_ref4) {\n let {\n to,\n replace,\n state,\n relative\n } = _ref4;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n future,\n static: isStatic\n } = React.useContext(NavigationContext);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!isStatic, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(to, UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath), locationPathname, relative === \"path\");\n let jsonPath = JSON.stringify(path);\n React.useEffect(() => navigate(JSON.parse(jsonPath), {\n replace,\n state,\n relative\n }), [navigate, jsonPath, relative, replace, state]);\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/v6/components/outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/v6/components/route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false) ;\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/v6/router-components/router\n */\nfunction Router(_ref5) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false,\n future\n } = _ref5;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(() => ({\n basename,\n navigator,\n static: staticProp,\n future: _extends({\n v7_relativeSplatPath: false\n }, future)\n }), [basename, future, navigator, staticProp]);\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n if (locationContext == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n children: children,\n value: locationContext\n }));\n}\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/v6/components/routes\n */\nfunction Routes(_ref6) {\n let {\n children,\n location\n } = _ref6;\n return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n let {\n children,\n errorElement,\n resolve\n } = _ref7;\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus = /*#__PURE__*/function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n return AwaitRenderStatus;\n}(AwaitRenderStatus || {});\nconst neverSettledPromise = new Promise(() => {});\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = \"_error\" in promise ? AwaitRenderStatus.error : \"_data\" in promise ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: errorElement\n });\n }\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait(_ref8) {\n let {\n children\n } = _ref8;\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/v6/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n let routes = [];\n React.Children.forEach(children, (element, index) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n return;\n }\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children, treePath);\n }\n routes.push(route);\n });\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.element) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n element: /*#__PURE__*/React.createElement(route.Component),\n Component: undefined\n });\n }\n if (route.HydrateFallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.hydrateFallbackElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" + \"`HydrateFallback` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: /*#__PURE__*/React.createElement(route.HydrateFallback),\n HydrateFallback: undefined\n });\n }\n if (route.ErrorBoundary) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.errorElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined\n });\n }\n return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createMemoryHistory({\n initialEntries: opts == null ? void 0 : opts.initialEntries,\n initialIndex: opts == null ? void 0 : opts.initialIndex\n }),\n hydrationData: opts == null ? void 0 : opts.hydrationData,\n routes,\n mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation\n }).initialize();\n}\n\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, logV6DeprecationWarnings as UNSAFE_logV6DeprecationWarnings, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router DOM v5 Compat v6.30.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_logV6DeprecationWarnings, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker, Routes, Route } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, replace, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nimport { parsePath, Action, createPath as createPath$1 } from 'history';\nimport { Route as Route$1, useHistory } from 'react-router-dom';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n flushSync: flushSync,\n viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n let routerFuture = React.useMemo(() => ({\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }), [router.future.v7_relativeSplatPath]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future, router.future), [future, router.future]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: routerFuture\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(MemoizedDataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\n// Memoize to avoid re-renders when updating `ViewTransitionContext`\nconst MemoizedDataRoutes = /*#__PURE__*/React.memo(DataRoutes);\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX$1 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX$1.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n viewTransition: viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n flushSync: options.flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n flushSync: options.flushSync,\n viewTransition: options.viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n let hasNakedIndexParam = indexValues.some(v => v === \"\");\n if (hasNakedIndexParam) {\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\n// v5 isn't in TypeScript, they'll also lose the @types/react-router with this\n// but not worried about that for now.\nfunction CompatRoute(props) {\n let {\n location,\n path\n } = props;\n if (!props.exact) path += \"/*\";\n return /*#__PURE__*/React.createElement(Routes, {\n location: location\n }, /*#__PURE__*/React.createElement(Route, {\n path: path,\n element: /*#__PURE__*/React.createElement(Route$1, _extends({}, props))\n }));\n}\n// Copied with 💜 from https://github.com/bvaughn/react-resizable-panels/blob/main/packages/react-resizable-panels/src/hooks/useIsomorphicEffect.ts\nconst canUseEffectHooks = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nconst useIsomorphicLayoutEffect = canUseEffectHooks ? React.useLayoutEffect : () => {};\nfunction CompatRouter(_ref) {\n let {\n children\n } = _ref;\n let history = useHistory();\n let [state, setState] = React.useState(() => ({\n location: history.location,\n action: history.action\n }));\n useIsomorphicLayoutEffect(() => {\n history.listen((location, action) => setState({\n location,\n action\n }));\n }, [history]);\n return /*#__PURE__*/React.createElement(Router, {\n navigationType: state.action,\n location: state.location,\n navigator: history\n }, /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {\n path: \"*\",\n element: children\n })));\n}\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * A `<Router>` that may not navigate to any other location. This is useful\n * on the server where there is no stateful UI.\n */\nfunction StaticRouter(_ref2) {\n let {\n basename,\n children,\n location: locationProp = \"/\"\n } = _ref2;\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let action = Action.Pop;\n let location = {\n pathname: locationProp.pathname || \"/\",\n search: locationProp.search || \"\",\n hash: locationProp.hash || \"\",\n state: locationProp.state != null ? locationProp.state : null,\n key: locationProp.key || \"default\"\n };\n let staticNavigator = {\n createHref(to) {\n return typeof to === \"string\" ? to : createPath$1(to);\n },\n encodeLocation(to) {\n let href = typeof to === \"string\" ? to : createPath$1(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n let encoded = ABSOLUTE_URL_REGEX.test(href) ? new URL(href) : new URL(href, \"http://localhost\");\n return {\n pathname: encoded.pathname,\n search: encoded.search,\n hash: encoded.hash\n };\n },\n push(to) {\n throw new Error(\"You cannot use navigator.push() on the server because it is a stateless \" + \"environment. This error was probably triggered when you did a \" + (\"`navigate(\" + JSON.stringify(to) + \")` somewhere in your app.\"));\n },\n replace(to) {\n throw new Error(\"You cannot use navigator.replace() on the server because it is a stateless \" + \"environment. This error was probably triggered when you did a \" + (\"`navigate(\" + JSON.stringify(to) + \", { replace: true })` somewhere \") + \"in your app.\");\n },\n go(delta) {\n throw new Error(\"You cannot use navigator.go() on the server because it is a stateless \" + \"environment. This error was probably triggered when you did a \" + (\"`navigate(\" + delta + \")` somewhere in your app.\"));\n },\n back() {\n throw new Error(\"You cannot use navigator.back() on the server because it is a stateless \" + \"environment.\");\n },\n forward() {\n throw new Error(\"You cannot use navigator.forward() on the server because it is a stateless \" + \"environment.\");\n }\n };\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: location,\n navigationType: action,\n navigator: staticNavigator,\n static: true\n });\n}\n\nexport { BrowserRouter, CompatRoute, CompatRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, StaticRouter, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit };\n//# sourceMappingURL=index.js.map\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PrinterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z\" } }] }, \"name\": \"printer\", \"theme\": \"outlined\" };\nexports.default = PrinterOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useSyncState = useSyncState(STATUS_NONE),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getStatus = _useSyncState2[0],\n setStatus = _useSyncState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n style = _useState4[0],\n setStyle = _useState4[1];\n var currentStatus = getStatus();\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE);\n setStyle(null, true);\n }\n var onInternalMotionEnd = useEvent(function (event) {\n var status = getStatus();\n // Do nothing since not in any transition status.\n // This may happen when `motionDeadline` trigger.\n if (status === STATUS_NONE) {\n return;\n }\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n });\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n case STATUS_ENTER:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n case STATUS_LEAVE:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(currentStatus);\n }, [currentStatus]);\n var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n var visibleRef = useRef(null);\n\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n // When use Suspense, the `visible` will repeat trigger,\n // But not real change of the `visible`, we need to skip it.\n // https://github.com/ant-design/ant-design/issues/44379\n if (mountedRef.current && visibleRef.current === visible) {\n return;\n }\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n visibleRef.current = visible;\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n currentStatus === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n currentStatus === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n currentStatus === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, currentStatus]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface UserFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const UserFilledSvg = ({ ...svgProps }: UserFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 16 16\" {...svgProps}>\n <path d=\"M13.3823 10.087C15.4443 10.498 17.0043 12.319 17.0043 14.5V16.5C17.0043 16.777 16.7793 17.002 16.5023 17.002H1.50231C1.22431 17.002 1.00031 16.777 1.00031 16.5V14.5C1.00031 12.319 2.55931 10.498 4.62131 10.087C5.71731 11.261 7.27331 12 9.00231 12C10.7303 12 12.2863 11.261 13.3823 10.087ZM9.002 1C11.763 1 14.002 3.239 14.002 6C14.002 8.761 11.763 11 9.002 11C6.241 11 4.00201 8.761 4.00201 6C4.00201 3.239 6.241 1 9.002 1Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface CameraOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const CameraOutlinedSvg = ({ ...svgProps }: CameraOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M17.5 2C17.776 2 18 2.224 18 2.5V3.5C18 4.314 17.603 5.032 16.998 5.489C16.998 5.493 17 5.496 17 5.5V8C17 12.411 13.411 16 9 16C4.589 16 1 12.411 1 8L1.001 5.4945C0.397 5.032 0 4.314 0 3.5V2.5C0 2.224 0.224 2 0.5 2H17.5ZM16 6H2V8C2 11.859 5.14 15 9 15C12.86 15 16 11.859 16 8V6ZM9 8C10.378 8 11.5 9.121 11.5 10.5C11.5 11.879 10.378 13 9 13C7.622 13 6.5 11.879 6.5 10.5C6.5 9.121 7.622 8 9 8ZM9 9C8.173 9 7.5 9.673 7.5 10.5C7.5 11.327 8.173 12 9 12C9.827 12 10.5 11.327 10.5 10.5C10.5 9.673 9.827 9 9 9ZM17 3H1V3.5C1 4.327 1.673 5 2.5 5H15.5C16.327 5 17 4.327 17 3.5V3Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface HomeFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const HomeFilledSvg = ({ ...svgProps }: HomeFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M15.195 6.16197L10.617 2.11813C9.7 1.30664 8.3 1.293 7.369 2.08403L2.847 5.89601C2.308 6.35291 2 7.00756 2 7.70312V14.7952C2 15.7362 2.784 16.5 3.75 16.5H5.9C6.45229 16.5 6.9 16.0523 6.9 15.5V11.3855C6.9 10.8195 7.369 10.3626 7.95 10.3626H10.05C10.631 10.3626 11.1 10.8195 11.1 11.3855V15.5C11.1 16.0523 11.5477 16.5 12.1 16.5H14.25C15.216 16.5 16 15.7362 16 14.7952V7.92816C16 7.25305 15.706 6.61204 15.195 6.16197Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface CameraFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const CameraFilledSvg = ({ ...svgProps }: CameraFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M17.5 2H0.5C0.224 2 0 2.224 0 2.5C0 3.879 1.122 5 2.5 5H15.5C16.878 5 18 3.879 18 2.5C18 2.224 17.776 2 17.5 2ZM16.5 6C16.776 6 17 6.224 17 6.5V8C17 12.411 13.411 16 9 16C4.589 16 1 12.411 1 8V6.5C1 6.224 1.224 6 1.5 6H16.5ZM9 8C7.619 8 6.5 9.119 6.5 10.5C6.5 11.881 7.619 13 9 13C10.381 13 11.5 11.881 11.5 10.5C11.5 9.119 10.381 8 9 8ZM9 9C9.827 9 10.5 9.673 10.5 10.5C10.5 11.327 9.827 12 9 12C8.173 12 7.5 11.327 7.5 10.5C7.5 9.673 8.173 9 9 9Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface UserOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const UserOutlinedSvg = ({ ...svgProps }: UserOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M16 15.998H2.004V14.5C2.004 12.571 3.573 11.002 5.502 11.002H12.502C14.431 11.002 16 12.571 16 14.5V15.998ZM5.002 6C5.002 3.794 6.796 2 9.002 2C11.208 2 13.002 3.794 13.002 6C13.002 8.199 11.218 9.987 9.021 9.998H8.982C6.786 9.987 5.002 8.199 5.002 6ZM12.502 9.998H11.977C13.199 9.086 14.002 7.642 14.002 6C14.002 3.239 11.763 1 9.002 1C6.241 1 4.002 3.239 4.002 6C4.002 7.642 4.805 9.086 6.027 9.998H5.502C3.02 9.998 1 12.018 1 14.5V16.5C1 16.777 1.225 17.002 1.502 17.002H16.502C16.779 17.002 17.004 16.777 17.004 16.5V14.5C17.004 12.018 14.984 9.998 12.502 9.998Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface LocationOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const LocationOutlinedSvg = ({\n ...svgProps\n}: LocationOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M9 0C12.584 0 15.5 2.916 15.5 6.5C15.5 12.663 9.572 17.674 9.32 17.884C9.228 17.961 9.114 18 9 18C8.886 18 8.772 17.961 8.68 17.884C8.428 17.674 2.5 12.663 2.5 6.5C2.5 2.916 5.416 0 9 0ZM9 1C5.967 1 3.5 3.467 3.5 6.5C3.5 11.413 7.78 15.707 9 16.831C10.219 15.706 14.5 11.405 14.5 6.5C14.5 3.467 12.033 1 9 1ZM9 3C10.93 3 12.5 4.57 12.5 6.5C12.5 8.43 10.93 10 9 10C7.07 10 5.5 8.43 5.5 6.5C5.5 4.57 7.07 3 9 3ZM9 4C7.622 4 6.5 5.122 6.5 6.5C6.5 7.878 7.622 9 9 9C10.378 9 11.5 7.878 11.5 6.5C11.5 5.122 10.378 4 9 4Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface LocationFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const LocationFilledSvg = ({ ...svgProps }: LocationFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9 0C12.584 0 15.5 2.916 15.5 6.5C15.5 12.663 9.572 17.674 9.32 17.884C9.228 17.961 9.114 18 9 18C8.886 18 8.772 17.961 8.68 17.884C8.428 17.674 2.5 12.663 2.5 6.5C2.5 2.916 5.416 0 9 0ZM9 3C10.93 3 12.5 4.57 12.5 6.5C12.5 8.43 10.93 10 9 10C7.07 10 5.5 8.43 5.5 6.5C5.5 4.57 7.07 3 9 3ZM9 4C7.622 4 6.5 5.122 6.5 6.5C6.5 7.878 7.622 9 9 9C10.378 9 11.5 7.878 11.5 6.5C11.5 5.122 10.378 4 9 4Z\"\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface DevicesOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const DevicesOutlinedSvg = ({\n ...svgProps\n}: DevicesOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M13.5 0H7.5C6.29 0 5.28 0.86 5.05 2H4.5C3.12 2 2 3.12 2 4.5V15.5C2 16.88 3.12 18 4.5 18H10.5C11.71 18 12.72 17.14 12.95 16H13.5C14.88 16 16 14.88 16 13.5V2.5C16 1.12 14.88 0 13.5 0ZM10.5 17H4.5C3.67 17 3 16.33 3 15.5V4.5C3 3.67 3.67 3 4.5 3H5V13.5C5 14.88 6.12 16 7.5 16H11.91C11.7 16.58 11.15 17 10.5 17ZM15 13.5C15 14.33 14.33 15 13.5 15H7.5C6.67 15 6 14.33 6 13.5V2.5C6 1.67 6.67 1 7.5 1H13.5C14.33 1 15 1.67 15 2.5V13.5Z\" />\n <path d=\"M10.5 3C9.12 3 8 4.12 8 5.5C8 6.88 9.12 8 10.5 8C11.88 8 13 6.88 13 5.5C13 4.12 11.88 3 10.5 3ZM10.5 7C9.67 7 9 6.33 9 5.5C9 4.67 9.67 4 10.5 4C11.33 4 12 4.67 12 5.5C12 6.33 11.33 7 10.5 7Z\" />\n <path d=\"M12.5 11H8.5C8.22 11 8 11.22 8 11.5C8 11.78 8.22 12 8.5 12H12.5C12.78 12 13 11.78 13 11.5C13 11.22 12.78 11 12.5 11Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface DeviceFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const DeviceFilledSvg = ({ ...svgProps }: DeviceFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M10.5 7C11.3284 7 12 6.32843 12 5.5C12 4.67157 11.3284 4 10.5 4C9.67157 4 9 4.67157 9 5.5C9 6.32843 9.67157 7 10.5 7Z\" />\n <path d=\"M13.5 0H7.5C6.12 0 5 1.12 5 2.5V13.5C5 14.88 6.12 16 7.5 16H13.5C14.88 16 16 14.88 16 13.5V2.5C16 1.12 14.88 0 13.5 0ZM8.5 12C8.22 12 8 11.78 8 11.5C8 11.22 8.22 11 8.5 11H12.5C12.78 11 13 11.22 13 11.5C13 11.78 12.78 12 12.5 12H8.5ZM10.5 8C9.12 8 8 6.88 8 5.5C8 4.12 9.12 3 10.5 3C11.88 3 13 4.12 13 5.5C13 6.88 11.88 8 10.5 8Z\" />\n <path d=\"M2 15.5C2 16.88 3.12 18 4.5 18H10.5V18.01C11.17 18.01 11.8 17.75 12.27 17.28C12.47 17.08 12.47 16.77 12.27 16.57C12.07 16.38 11.76 16.37 11.56 16.57C11.28 16.85 10.9 17.01 10.5 17.01H4.5C3.67 17.01 3 16.34 3 15.51V4.51002C3 3.91002 3.36 3.37002 3.92 3.13002C4.18 3.02002 4.3 2.72002 4.19 2.47002C4.08 2.21002 3.79 2.10002 3.53 2.20002C2.6 2.59002 2 3.49002 2 4.50002V15.5Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface PuzzleOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const PuzzleOutlinedSvg = ({ ...svgProps }: PuzzleOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M2 11.5084V13.7579C2 14.1448 2.10109 14.2904 2.16531 14.3535L2.17045 14.3585C2.23679 14.4246 2.39463 14.53 2.80547 14.53H11.3545C11.7681 14.53 11.9343 14.425 12.0066 14.3551C12.0755 14.2884 12.1735 14.1465 12.1735 13.7778V10.928C12.1735 10.5923 12.3199 10.1363 12.7847 9.89289C13.3311 9.59756 13.8266 9.85366 14.0344 10.0043C14.1398 10.079 14.2492 10.1506 14.3627 10.2191C14.4348 10.2605 14.5266 10.3018 14.6428 10.3389C14.7058 10.359 14.8047 10.3776 14.952 10.3776C15.1923 10.3776 15.3657 10.3259 15.5011 10.2481C15.6593 10.1555 15.7742 10.0381 15.8609 9.88548L15.8663 9.87597C15.9474 9.73668 16 9.5613 16 9.3212C16 9.0877 15.9484 8.91402 15.8663 8.77302L15.862 8.76567L15.8579 8.75825C15.7712 8.60328 15.6589 8.49074 15.5084 8.40508L15.5029 8.40197C15.3673 8.32364 15.1933 8.27144 14.952 8.27144C14.8047 8.27144 14.7058 8.29003 14.6428 8.3101L14.6322 8.31351L14.6214 8.31668C14.517 8.34741 14.4376 8.38405 14.3768 8.42139L14.3694 8.42592C14.2537 8.4955 14.1422 8.56832 14.0349 8.64439C13.8399 8.78614 13.3629 9.04698 12.8138 8.77748L12.7851 8.76343L12.7575 8.74759C12.3038 8.48788 12.1735 8.03709 12.1735 7.71445V4.75222C12.1735 4.38348 12.0755 4.24159 12.0066 4.17494C11.9343 4.10497 11.7681 4 11.3545 4H2.80547C2.39463 4 2.23678 4.10541 2.17043 4.17147L2.16533 4.17655C2.10111 4.23958 2 4.38521 2 4.77205V7.04142C2.01323 7.03143 2.02651 7.02148 2.03984 7.01155L2.04632 7.00673L2.05288 7.00201C2.27161 6.84457 2.51117 6.72407 2.76332 6.63464C3.07664 6.52044 3.40723 6.47642 3.73516 6.47642C4.2299 6.47642 4.70579 6.59131 5.1384 6.83824C5.56766 7.08069 5.91085 7.42337 6.15286 7.853C6.40635 8.2903 6.52042 8.77397 6.52042 9.27492C6.52042 9.77653 6.40411 10.259 6.15282 10.6969C5.91039 11.1228 5.56875 11.4624 5.14586 11.7073L5.1415 11.7098C4.70807 11.958 4.23108 12.0734 3.73516 12.0734C3.41118 12.0734 3.08558 12.0326 2.77701 11.9266L2.76279 11.9217L2.74872 11.9164C2.50175 11.8232 2.26725 11.7021 2.05288 11.5478L2.04632 11.5431L2.03984 11.5383C2.02651 11.5284 2.01323 11.5184 2 11.5084ZM5.28463 10.2006C5.44182 9.92732 5.52042 9.61875 5.52042 9.27492C5.52042 8.92668 5.44182 8.61811 5.28463 8.34922C5.13193 8.07592 4.9186 7.86212 4.64463 7.70784C4.37516 7.55356 4.072 7.47642 3.73516 7.47642C3.49263 7.47642 3.28154 7.50948 3.10189 7.5756C2.92674 7.63731 2.77179 7.71666 2.63705 7.81364C2.50681 7.91061 2.3833 8.0098 2.26653 8.11118C2.16772 8.19934 2.06891 8.26547 1.97011 8.30955C1.8713 8.34922 1.77249 8.36906 1.67368 8.36906C1.48505 8.36906 1.32561 8.30734 1.19537 8.18392C1.06512 8.06049 1 7.89739 1 7.69462V4.77205C1 4.20341 1.15495 3.76701 1.46484 3.46285C1.77474 3.15428 2.22161 3 2.80547 3H11.3545C11.9384 3 12.3875 3.15208 12.7019 3.45624C13.0163 3.7604 13.1735 4.19239 13.1735 4.75222V7.71445C13.1735 7.7938 13.2004 7.8489 13.2543 7.87976C13.3082 7.90621 13.3733 7.89078 13.4497 7.83347C13.5067 7.79295 13.5646 7.75328 13.6233 7.71445C13.6987 7.66457 13.7756 7.61608 13.8539 7.56899C13.9361 7.51856 14.0242 7.47391 14.1181 7.43502C14.1364 7.42748 14.1548 7.42015 14.1735 7.41304C14.2268 7.39272 14.282 7.37417 14.3389 7.3574C14.5186 7.30009 14.7229 7.27144 14.952 7.27144C15.3472 7.27144 15.6975 7.3596 16.0029 7.53593C16.3128 7.71225 16.5554 7.9569 16.7305 8.26987C16.9102 8.57844 17 8.92888 17 9.3212C17 9.71793 16.9102 10.0706 16.7305 10.3791C16.5554 10.6877 16.3128 10.9324 16.0029 11.1131C15.6975 11.2894 15.3472 11.3776 14.952 11.3776C14.7229 11.3776 14.5186 11.3489 14.3389 11.2916C14.282 11.2734 14.2268 11.2539 14.1735 11.2331C14.1551 11.2259 14.1368 11.2186 14.1189 11.2111C14.0246 11.1717 13.9363 11.1281 13.8539 11.08C13.7722 11.0309 13.692 10.9802 13.6133 10.928C13.558 10.8912 13.5035 10.8538 13.4497 10.8155C13.3733 10.7582 13.3082 10.745 13.2543 10.7759C13.2004 10.8023 13.1735 10.853 13.1735 10.928V13.7778C13.1735 14.3376 13.0163 14.7696 12.7019 15.0738C12.3875 15.3779 11.9384 15.53 11.3545 15.53H2.80547C2.22161 15.53 1.77474 15.3757 1.46484 15.0672C1.15495 14.763 1 14.3266 1 13.7579V10.8486C1 10.6502 1.06512 10.4893 1.19537 10.3659C1.32561 10.2425 1.48505 10.1808 1.67368 10.1808C1.77249 10.1808 1.8713 10.2028 1.97011 10.2469C2.06891 10.2866 2.16772 10.3483 2.26653 10.432C2.3833 10.5378 2.50681 10.6392 2.63705 10.7362C2.77179 10.8332 2.92674 10.9147 3.10189 10.9808C3.28154 11.0426 3.49263 11.0734 3.73516 11.0734C4.072 11.0734 4.37516 10.9963 4.64463 10.842C4.9186 10.6833 5.13193 10.4695 5.28463 10.2006Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface PuzzleFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const PuzzleFilledSvg = ({ ...svgProps }: PuzzleFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M1 13.4928V10.5835C1 10.3851 1.06512 10.2242 1.19537 10.1008C1.32561 9.97736 1.48505 9.91564 1.67368 9.91564C1.77249 9.91564 1.8713 9.93768 1.97011 9.98177C2.06891 10.0214 2.16772 10.0832 2.26653 10.1669C2.3833 10.2727 2.50681 10.3741 2.63705 10.4711C2.77179 10.568 2.92674 10.6496 3.10189 10.7157C3.28154 10.7774 3.49263 10.8083 3.73516 10.8083C4.072 10.8083 4.37516 10.7311 4.64463 10.5769C4.9186 10.4182 5.13193 10.2044 5.28463 9.93548C5.44182 9.66218 5.52042 9.35361 5.52042 9.00978C5.52042 8.66154 5.44182 8.35298 5.28463 8.08408C5.13193 7.81078 4.9186 7.59699 4.64463 7.4427C4.37516 7.28842 4.072 7.21128 3.73516 7.21128C3.49263 7.21128 3.28154 7.24434 3.10189 7.31046C2.92674 7.37218 2.77179 7.45152 2.63705 7.5485C2.50681 7.64548 2.3833 7.74466 2.26653 7.84605C2.16772 7.93421 2.06891 8.00033 1.97011 8.04441C1.8713 8.08408 1.77249 8.10392 1.67368 8.10392C1.48505 8.10392 1.32561 8.04221 1.19537 7.91878C1.06512 7.79535 1 7.63225 1 7.42948V4.50692C1 3.93827 1.15495 3.50187 1.46484 3.19771C1.77474 2.88915 2.22161 2.73486 2.80547 2.73486H11.3545C11.9384 2.73486 12.3875 2.88694 12.7019 3.1911C13.0163 3.49526 13.1735 3.92725 13.1735 4.48708V7.44932C13.1735 7.52866 13.2004 7.58376 13.2543 7.61462C13.3082 7.64107 13.3733 7.62564 13.4497 7.56834C13.5799 7.47577 13.7147 7.3876 13.8539 7.30385C13.9976 7.21569 14.1593 7.14516 14.3389 7.09226C14.5186 7.03496 14.7229 7.0063 14.952 7.0063C15.3472 7.0063 15.6975 7.09447 16.0029 7.27079C16.3128 7.44711 16.5554 7.69176 16.7305 8.00474C16.9102 8.3133 17 8.66375 17 9.05607C17 9.45279 16.9102 9.80544 16.7305 10.114C16.5554 10.4226 16.3128 10.6672 16.0029 10.848C15.6975 11.0243 15.3472 11.1124 14.952 11.1124C14.7229 11.1124 14.5186 11.0838 14.3389 11.0265C14.1593 10.9692 13.9976 10.8986 13.8539 10.8149C13.7147 10.7311 13.5799 10.643 13.4497 10.5504C13.3733 10.4931 13.3082 10.4799 13.2543 10.5107C13.2004 10.5372 13.1735 10.5879 13.1735 10.6628V13.5126C13.1735 14.0725 13.0163 14.5045 12.7019 14.8086C12.3875 15.1128 11.9384 15.2649 11.3545 15.2649H2.80547C2.22161 15.2649 1.77474 15.1106 1.46484 14.802C1.15495 14.4979 1 14.0615 1 13.4928Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface SettingOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const SettingOutlinedSvg = ({\n ...svgProps\n}: SettingOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M11.5 10C12.7097 10 13.7187 10.8592 13.9501 12.0006L16.5 12C16.7761 12 17 12.2239 17 12.5C17 12.7761 16.7761 13 16.5 13L13.9499 13.0004C13.7181 14.1413 12.7093 15 11.5 15C10.2907 15 9.2819 14.1413 9.0501 13.0004L1.5 13C1.22386 13 1 12.7761 1 12.5C1 12.2239 1.22386 12 1.5 12L9.04989 12.0006C9.28131 10.8592 10.2903 10 11.5 10ZM11.5 11C10.6716 11 10 11.6716 10 12.5C10 13.3284 10.6716 14 11.5 14C12.3284 14 13 13.3284 13 12.5C13 11.6716 12.3284 11 11.5 11ZM6.5 3C7.70968 3 8.71869 3.85917 8.95011 5.00057L16.5 5C16.7761 5 17 5.22386 17 5.5C17 5.77614 16.7761 6 16.5 6L8.9499 6.00043C8.7181 7.14134 7.70933 8 6.5 8C5.29067 8 4.2819 7.14134 4.0501 6.00043L1.5 6C1.22386 6 1 5.77614 1 5.5C1 5.22386 1.22386 5 1.5 5L4.04989 5.00057C4.28131 3.85917 5.29032 3 6.5 3ZM6.5 4C5.67157 4 5 4.67157 5 5.5C5 6.32843 5.67157 7 6.5 7C7.32843 7 8 6.32843 8 5.5C8 4.67157 7.32843 4 6.5 4Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface SettingFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const SettingFilledSvg = ({ ...svgProps }: SettingFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M11.5 10C12.7097 10 13.7187 10.8592 13.9501 12.0006L16.5 12C16.7761 12 17 12.2239 17 12.5C17 12.7761 16.7761 13 16.5 13L13.9499 13.0004C13.7181 14.1413 12.7093 15 11.5 15C10.2907 15 9.2819 14.1413 9.0501 13.0004L1.5 13C1.22386 13 1 12.7761 1 12.5C1 12.2239 1.22386 12 1.5 12L9.04989 12.0006C9.28131 10.8592 10.2903 10 11.5 10ZM6.5 3C7.70968 3 8.71869 3.85917 8.95011 5.00057L16.5 5C16.7761 5 17 5.22386 17 5.5C17 5.77614 16.7761 6 16.5 6L8.9499 6.00043C8.7181 7.14134 7.70933 8 6.5 8C5.29067 8 4.2819 7.14134 4.0501 6.00043L1.5 6C1.22386 6 1 5.77614 1 5.5C1 5.22386 1.22386 5 1.5 5L4.04989 5.00057C4.28131 3.85917 5.29032 3 6.5 3Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface AdminFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const AdminFilledSvg = ({ ...svgProps }: AdminFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 19 18\" {...svgProps}>\n <path d=\"M8.00194 0C10.7629 0 13.0019 2.239 13.0019 5C13.0019 7.761 10.7629 10 8.00194 10C5.24094 10 3.00194 7.761 3.00194 5C3.00194 2.239 5.24094 0 8.00194 0Z\" />\n <path d=\"M9 14C9 14.702 9.12057 15.3759 9.34212 16.002H0.502244C0.224244 16.002 0.000244141 15.777 0.000244141 15.5V13.5C0.000244141 11.319 1.55924 9.498 3.62124 9.087C4.71724 10.261 6.27324 11 8.00224 11C8.71153 11 9.39184 10.8755 10.0233 10.6475C9.3772 11.6047 9 12.7583 9 14Z\" />\n <path d=\"M18.3122 14.8839L17.7262 14.5449C17.7592 14.3679 17.7812 14.1869 17.7812 13.9999C17.7812 13.8129 17.7592 13.6319 17.7262 13.4549L18.3122 13.1159C18.5522 12.9779 18.6332 12.6719 18.4952 12.4329L17.9952 11.5669C17.8572 11.3279 17.5522 11.2459 17.3122 11.3839L16.7182 11.7269C16.4432 11.4919 16.1292 11.3069 15.7812 11.1839V10.4999C15.7812 10.2239 15.5572 9.99988 15.2812 9.99988H14.2812C14.0052 9.99988 13.7812 10.2239 13.7812 10.4999V11.1839C13.4332 11.3069 13.1192 11.4919 12.8442 11.7269L12.2502 11.3839C12.0102 11.2459 11.7052 11.3279 11.5672 11.5669L11.0672 12.4329C10.9292 12.6719 11.0102 12.9779 11.2502 13.1159L11.8362 13.4549C11.8032 13.6319 11.7812 13.8129 11.7812 13.9999C11.7812 14.1869 11.8032 14.3679 11.8362 14.5449L11.2502 14.8839C11.0102 15.0219 10.9292 15.3279 11.0672 15.5669L11.5672 16.4329C11.7052 16.6719 12.0102 16.7539 12.2502 16.6159L12.8442 16.2729C13.1192 16.5079 13.4332 16.6929 13.7812 16.8159V17.4999C13.7812 17.7759 14.0052 17.9999 14.2812 17.9999H15.2812C15.5572 17.9999 15.7812 17.7759 15.7812 17.4999V16.8159C16.1292 16.6929 16.4432 16.5079 16.7182 16.2729L17.3122 16.6159C17.5522 16.7539 17.8572 16.6719 17.9952 16.4329L18.4952 15.5669C18.6332 15.3279 18.5522 15.0219 18.3122 14.8839ZM14.7812 14.9999C14.2292 14.9999 13.7812 14.5519 13.7812 13.9999C13.7812 13.4479 14.2292 12.9999 14.7812 12.9999C15.3332 12.9999 15.7812 13.4479 15.7812 13.9999C15.7812 14.5519 15.3332 14.9999 14.7812 14.9999Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface QuestionMarkFilledSvgProps\n extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const QuestionMarkFilledSvg = ({\n ...svgProps\n}: QuestionMarkFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9 1C13.411 1 17 4.589 17 9C17 13.411 13.411 17 9 17C4.589 17 1 13.411 1 9C1 4.589 4.589 1 9 1ZM9 13C9.276 13 9.5 13.224 9.5 13.5C9.5 13.776 9.276 14 9 14C8.724 14 8.5 13.776 8.5 13.5C8.5 13.224 8.724 13 9 13ZM9.724 4.093C10.656 4.334 11.415 5.092 11.657 6.025C12.026 7.456 11.264 8.887 9.883 9.355C9.698 9.417 9.5 9.57 9.5 9.808V11.5C9.5 11.776 9.276 12 9 12C8.724 12 8.5 11.776 8.5 11.5V9.808C8.5 9.176 8.917 8.626 9.562 8.408C10.31 8.154 10.959 7.321 10.688 6.276C10.537 5.689 10.06 5.212 9.474 5.061C8.925 4.921 8.363 5.03 7.93 5.365C7.498 5.7 7.25 6.205 7.25 6.75C7.25 7.026 7.026 7.25 6.75 7.25C6.474 7.25 6.25 7.026 6.25 6.75C6.25 5.893 6.639 5.1 7.317 4.575C7.996 4.049 8.875 3.874 9.724 4.093Z\"\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface DocumentOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const DocumentOutlinedSvg = ({\n ...svgProps\n}: DocumentOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M4 2C3.44772 2 3 2.44772 3 3V15C3 15.5523 3.44772 16 4 16H14C14.5523 16 15 15.5523 15 15V3C15 2.44772 14.5523 2 14 2H4ZM4 1H14C15.1046 1 16 1.89543 16 3V15C16 16.1046 15.1046 17 14 17H4C2.89543 17 2 16.1046 2 15V3C2 1.89543 2.89543 1 4 1ZM5.5 5H12.5C12.7761 5 13 5.22386 13 5.5C13 5.77614 12.7761 6 12.5 6H5.5C5.22386 6 5 5.77614 5 5.5C5 5.22386 5.22386 5 5.5 5ZM5.5 8H12.5C12.7761 8 13 8.22386 13 8.5C13 8.77614 12.7761 9 12.5 9H5.5C5.22386 9 5 8.77614 5 8.5C5 8.22386 5.22386 8 5.5 8ZM5.5 11H9.5C9.77614 11 10 11.2239 10 11.5C10 11.7761 9.77614 12 9.5 12H5.5C5.22386 12 5 11.7761 5 11.5C5 11.2239 5.22386 11 5.5 11Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface DocumentFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const DocumentFilledSvg = ({ ...svgProps }: DocumentFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M14 1C15.1046 1 16 1.89543 16 3V15C16 16.1046 15.1046 17 14 17H4C2.89543 17 2 16.1046 2 15V3C2 1.89543 2.89543 1 4 1H14ZM9.5 11H5.5C5.22386 11 5 11.2239 5 11.5C5 11.7761 5.22386 12 5.5 12H9.5C9.77614 12 10 11.7761 10 11.5C10 11.2239 9.77614 11 9.5 11ZM12.5 8H5.5C5.22386 8 5 8.22386 5 8.5C5 8.77614 5.22386 9 5.5 9H12.5C12.7761 9 13 8.77614 13 8.5C13 8.22386 12.7761 8 12.5 8ZM12.5 5H5.5C5.22386 5 5 5.22386 5 5.5C5 5.77614 5.22386 6 5.5 6H12.5C12.7761 6 13 5.77614 13 5.5C13 5.22386 12.7761 5 12.5 5Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface FileOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const FileOutlinedSvg = ({ ...svgProps }: FileOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M12.5 16H5.5C4.673 16 4 15.327 4 14.5V3.5C4 2.673 4.673 2 5.5 2H9V4.5C9 5.878 10.121 7 11.5 7H14V14.5C14 15.327 13.327 16 12.5 16ZM13.293 6H11.5C10.673 6 10 5.327 10 4.5V2.707L13.293 6ZM14.561 5.854L10.146 1.439C9.863 1.156 9.486 1 9.086 1H5.5C4.122 1 3 2.122 3 3.5V14.5C3 15.879 4.122 17 5.5 17H12.5C13.879 17 15 15.879 15 14.5V6.914C15 6.514 14.844 6.137 14.561 5.854Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface FileFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const FileFilledSvg = ({ ...svgProps }: FileFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M13.293 6H11.5C10.673 6 10 5.327 10 4.5V2.707L13.293 6ZM14.561 5.854L10.146 1.439C9.863 1.156 9.486 1 9.086 1H5.5C4.122 1 3 2.122 3 3.5V14.5C3 15.879 4.122 17 5.5 17H12.5C13.879 17 15 15.879 15 14.5V6.914C15 6.514 14.844 6.137 14.561 5.854Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface AdminOutlinedSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const AdminOutlinedSvg = ({ ...svgProps }: AdminOutlinedSvgProps) => (\n <SvgWrapper viewBox=\"0 0 19 18\" {...svgProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.3396 8.998C10.9346 9.28281 10.5699 9.62087 10.2554 10.002H4.502C2.573 10.002 1.004 11.571 1.004 13.5V14.998H9.2065C9.30539 15.3481 9.43807 15.684 9.6008 16.002H0.502C0.225 16.002 0 15.777 0 15.5V13.5C0 11.018 2.02 8.998 4.502 8.998H5.027C3.805 8.086 3.002 6.642 3.002 5C3.002 2.239 5.241 0 8.002 0C10.763 0 13.002 2.239 13.002 5C13.002 6.642 12.199 8.086 10.977 8.998H11.3396ZM4.002 5C4.002 2.794 5.796 1 8.002 1C10.208 1 12.002 2.794 12.002 5C12.002 7.199 10.218 8.987 8.021 8.998H7.982C5.786 8.987 4.002 7.199 4.002 5Z\"\n />\n <path d=\"M17.7262 14.5449L18.3122 14.8839C18.5522 15.0219 18.6332 15.3279 18.4952 15.5669L17.9952 16.4329C17.8572 16.6719 17.5522 16.7539 17.3122 16.6159L16.7182 16.2729C16.4432 16.5079 16.1292 16.6929 15.7812 16.8159V17.4999C15.7812 17.7759 15.5572 17.9999 15.2812 17.9999H14.2812C14.0052 17.9999 13.7812 17.7759 13.7812 17.4999V16.8159C13.4332 16.6929 13.1192 16.5079 12.8442 16.2729L12.2502 16.6159C12.0102 16.7539 11.7052 16.6719 11.5672 16.4329L11.0672 15.5669C10.9292 15.3279 11.0102 15.0219 11.2502 14.8839L11.8362 14.5449C11.8032 14.3679 11.7812 14.1869 11.7812 13.9999C11.7812 13.8129 11.8032 13.6319 11.8362 13.4549L11.2502 13.1159C11.0102 12.9779 10.9292 12.6719 11.0672 12.4329L11.5672 11.5669C11.7052 11.3279 12.0102 11.2459 12.2502 11.3839L12.8442 11.7269C13.1192 11.4919 13.4332 11.3069 13.7812 11.1839V10.4999C13.7812 10.2239 14.0052 9.99988 14.2812 9.99988H15.2812C15.5572 9.99988 15.7812 10.2239 15.7812 10.4999V11.1839C16.1292 11.3069 16.4432 11.4919 16.7182 11.7269L17.3122 11.3839C17.5522 11.2459 17.8572 11.3279 17.9952 11.5669L18.4952 12.4329C18.6332 12.6719 18.5522 12.9779 18.3122 13.1159L17.7262 13.4549C17.7592 13.6319 17.7812 13.8129 17.7812 13.9999C17.7812 14.1869 17.7592 14.3679 17.7262 14.5449ZM13.7812 13.9999C13.7812 14.5519 14.2292 14.9999 14.7812 14.9999C15.3332 14.9999 15.7812 14.5519 15.7812 13.9999C15.7812 13.4479 15.3332 12.9999 14.7812 12.9999C14.2292 12.9999 13.7812 13.4479 13.7812 13.9999Z\" />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface UserGroupOutlineSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const UserGroupOutlineSvg = ({\n ...svgProps\n}: UserGroupOutlineSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 6C10 7.2582 9.41908 8.38073 8.51082 9.11398C10.5094 9.5727 12 11.3623 12 13.5V14.5C12 15.3284 11.3284 16 10.5 16H1.5C0.671573 16 0 15.3284 0 14.5V13.5C0 11.3623 1.49063 9.5727 3.48918 9.11398C2.58092 8.38073 2 7.2582 2 6C2 3.79086 3.79086 2 6 2C8.20914 2 10 3.79086 10 6ZM6 9C7.65685 9 9 7.65685 9 6C9 4.34315 7.65685 3 6 3C4.34315 3 3 4.34315 3 6C3 7.65685 4.34315 9 6 9ZM4.5 10H7.5C9.433 10 11 11.567 11 13.5V14.5C11 14.7761 10.7761 15 10.5 15H1.5C1.22386 15 1 14.7761 1 14.5V13.5C1 11.567 2.567 10 4.5 10Z\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M19.5001 16H12.5002C12.7186 15.7093 12.8751 15.3694 12.95 15H19.5001C19.7762 15 20.0001 14.7761 20.0001 14.5V13.5C20.0001 11.567 18.4331 10 16.5001 10H13.5001C12.9632 10 12.4546 10.1209 12 10.3368C11.8021 10.0558 11.5786 9.7942 11.3328 9.55534C11.6913 9.35795 12.0796 9.20801 12.4892 9.11399C11.5809 8.38073 11 7.25821 11 6C11 3.79086 12.7909 2 15 2C17.2091 2 19 3.79086 19 6C19 7.2582 18.4191 8.38071 17.5108 9.11397C19.5094 9.57267 21.0001 11.3623 21.0001 13.5V14.5C21.0001 15.3284 20.3285 16 19.5001 16ZM15 9C16.6569 9 18 7.65685 18 6C18 4.34315 16.6569 3 15 3C13.3431 3 12 4.34315 12 6C12 7.65685 13.3431 9 15 9Z\"\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface UserGroupFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const UserGroupFilledSvg = ({\n ...svgProps\n}: UserGroupFilledSvgProps) => (\n <SvgWrapper viewBox=\"0 0 18 18\" {...svgProps}>\n <path d=\"M6 10C8.20914 10 10 8.20914 10 6C10 3.79086 8.20914 2 6 2C3.79086 2 2 3.79086 2 6C2 8.20914 3.79086 10 6 10Z\" />\n <path d=\"M0 13.5C0 11.7604 0.987071 10.2514 2.43168 9.50244C3.33897 10.4267 4.60253 11 6 11C7.39746 11 8.66103 10.4267 9.56832 9.50245C11.0129 10.2514 12 11.7604 12 13.5V14.5C12 15.3284 11.3284 16 10.5 16H1.5C0.671573 16 0 15.3284 0 14.5V13.5Z\" />\n <path d=\"M19 6C19 8.20914 17.2091 10 15 10C12.7909 10 11 8.20914 11 6C11 3.79086 12.7909 2 15 2C17.2091 2 19 3.79086 19 6Z\" />\n <path d=\"M11.3325 9.55543C11.3653 9.53737 11.3984 9.5197 11.4317 9.50244C12.339 10.4267 13.6025 11 15 11C16.3975 11 17.661 10.4267 18.5683 9.50248C20.0129 10.2514 20.9999 11.7605 20.9999 13.5V14.5C20.9999 15.3284 20.3284 16 19.4999 16H12.5001C12.814 15.5822 12.9999 15.0628 12.9999 14.5V13.5C12.9999 11.9519 12.3602 10.5542 11.3325 9.55543Z\" />\n </SvgWrapper>\n);\n","import { ReactNode } from 'react';\n\n// Using the release notes to determine the alertCount on the Release Notes menu item\nimport releaseNotesJson from 'routes/ReleaseNotesPage/releaseNotes.json';\nimport masterReleaseNotesJson from 'routes/MasterReleaseNotesPage/masterReleaseNotes.js';\nimport Badge from 'antd/es/badge';\nimport { UserFilledSvg } from 'components/svgs/UserFilledSvg/UserFilledSvg';\nimport { CameraOutlinedSvg } from 'components/svgs/CameraOutlinedSvg/CameraOutlinedSvg';\nimport { HomeFilledSvg } from 'components/svgs/HomeFilledSvg/HomeFilledSvg';\nimport { HomeOutlinedSvg } from 'components/svgs/HomeOutlinedSvg/HomeOutlinedSvg';\nimport { CameraFilledSvg } from 'components/svgs/CameraFilledSvg/CameraFilledSvg';\nimport { UserOutlinedSvg } from 'components/svgs/UserOutlinedSvg/UserOutlinedSvg';\nimport { LocationOutlinedSvg } from 'components/svgs/LocationOutlinedSvg/LocationOutlinedSvg';\nimport { LocationFilledSvg } from 'components/svgs/LocationFilledSvg/LocationFilledSvg';\nimport { DevicesOutlinedSvg } from 'components/svgs/DevicesOutlinedSvg/DevicesOutlinedSvg';\nimport { DeviceFilledSvg } from 'components/svgs/DeviceFilledSvg/DeviceFilledSvg';\nimport { PuzzleOutlinedSvg } from 'components/svgs/PuzzleOutlinedSvg/PuzzleOutlinedSvg';\nimport { PuzzleFilledSvg } from 'components/svgs/PuzzleFilledSvg/PuzzleFilledSvg';\nimport { SettingOutlinedSvg } from 'components/svgs/SettingOutlinedSvg/SettingOutlinedSvg';\nimport { SettingFilledSvg } from 'components/svgs/SettingFilledSvg/SettingFilledSvg';\nimport { AdminFilledSvg } from 'components/svgs/AdminFilledSvg/AdminFilledSvg';\nimport { QuestionMarkOutlinedSvg } from 'components/svgs/QuestionMarkOutlinedSvg/QuestionMarkOutlinedSvg';\nimport { QuestionMarkFilledSvg } from 'components/svgs/QuestionMarkFilledSvg/QuestionMarkFilledSvg';\nimport { DocumentOutlinedSvg } from 'components/svgs/DocumentOutlinedSvg/DocumentOutlinedSvg';\nimport { DocumentFilledSvg } from 'components/svgs/DocumentFilledSvg/DocumentFilledSvg';\nimport { FileOutlinedSvg } from 'components/svgs/FileOutlinedSvg/FileOutlinedSvg';\nimport { FileFilledSvg } from 'components/svgs/FileFilledSvg/FileFilledSvg';\nimport { AdminOutlinedSvg } from 'components/svgs/AdminOutlinedSvg/AdminOutlinedSvg';\nimport { t } from 'i18next';\nimport { UserGroupOutlineSvg } from 'components/svgs/UserGroupOutlineSvg/UserGroupOutlineSvg';\nimport { UserGroupFilledSvg } from 'components/svgs/UserGroupFilledSvg/UserGroupFilledSvg';\nimport { SparkIcon } from 'new-components/svgs/SparkIcon';\nimport {\n appMarketplaceRoute,\n alarmDashboardRoute,\n errorMessageRoute,\n hardwareDashboardRoute,\n entryDashboardRoute,\n buildingsRoute,\n buildingsCreateRoute,\n buildingsEditRoute,\n licensesRoute,\n usersTableRoute,\n userSchedulesTableRoute,\n userSchedulesCreateRoute,\n userSchedulesEditRoute,\n userCustomFieldsTableRoute,\n userCustomFieldsCreateRoute,\n userCustomFieldsEditRoute,\n userCredentialsManagementRoute,\n presenceReportRoute,\n usersImportRoute,\n rolesRoute,\n sitesTableRoute,\n sitesCreateRoute,\n sitesEditRoute,\n zonesTableRoute,\n zonesCreateRoute,\n zonesEditDetailsRoute,\n zonesEditAntiPassbackRoute,\n entriesTableRoute,\n entryStatesTableRoute,\n entryStatesCreateRoute,\n entryStatesEditRoute,\n entrySchedulesTableRoute,\n entrySchedulesCreateRoute,\n entrySchedulesEditRoute,\n acusTableRoute,\n acusCreateRoute,\n acusPortsRoute,\n acusEditRoute,\n readersTableRoute,\n readersCreateRoute,\n readersEditRoute,\n allegionReadersTableRoute,\n thirdPartyReadersEditRoute,\n activityLogsRoute,\n activityInsightsRoute,\n userActivityRoute,\n entryActivityRoute,\n userActivitySummaryRoute,\n entryActivitySummaryRoute,\n entryAccessAuditRoute,\n userAccessAuditRoute,\n portalAuditReportRoute,\n integrationsRoute,\n integrationsIdentityProviderGsuite,\n integrationsIdentityProviderAzure,\n integrationsIdentityProviderOkta,\n integrationsIdentityProviderOnelogin,\n mobileAppSettingsRoute,\n mobileAppBadgeUiRoute,\n badgeTemplatesTablePageRoute,\n intercomUserDirectoryRoute,\n quickStartRoute,\n accountPageRoute,\n releaseNotesRoute,\n masterDashboardRoute,\n masterOrgTableRoute,\n masterOrgEditRoute,\n masterOrgEditPackageRoute,\n masterOrgEditFeatureFlagRoute,\n masterOrgCreateRoute,\n masterIdentitiesTableRoute,\n masterIdentitiesEditRoute,\n masterIdentitiesEditSecurityRoute,\n masterIdentitiesCreateRoute,\n masterRolesTableRoute,\n masterRolesEditRoute,\n masterRolesCreateRoute,\n masterAcusTableRoute,\n masterAcusEditRoute,\n masterEntriesTableRoute,\n masterThirdPartyDevicesRoute,\n masterAllegionFobsRoute,\n masterFeatureFlagsTableRoute,\n masterFeatureFlagsEditRoute,\n masterFeatureFlagsCreateRoute,\n masterPortalAuditReportRoute,\n masterAcuSoftwareReportRoute,\n myAppsTableRoute,\n masterReleaseNotesRoute,\n alertSettingsRoute,\n lockdownTableRoute,\n camerasRoute,\n cameraDetailsRoute,\n lockdownCreateRoute,\n lockdownEditRoute,\n lockdownEditConfigRoute,\n requiredTermsRoute,\n subscriptionsTableRoute,\n subscriptionsCreateRoute,\n subscriptionsEditRoute,\n visualActivityReportRoute,\n wirelessLockGatewaysTableRoute,\n wirelessLocksTableRoute,\n allegionWirelessLocksTableRoute,\n wirelessLocksEditRoute,\n deviceUpdateManagement,\n customDashboardsRoute,\n scheduledReportsRoute,\n scheduledReportsCreateRoute,\n scheduledReportsEditRoute,\n cameraDeeplinkRedirectRoute,\n alarmEditRoute,\n alarmReportRoute,\n musterReportsRoute,\n accessGroupsRoute,\n activityDashboardRoute,\n videoIntercomReadersRoute,\n videoReadersRoute,\n occupancyReportRoute,\n alarmConfigurationsRoute,\n partnerDashboardRoute,\n partnerStoreRoute,\n partnerOrgTableRoute,\n partnerOrgCreateRoute,\n partnerOrgEditRoute,\n partnerOrgEditPackageRoute,\n partnerSubscriptionRenewalsTableRoute,\n partnerRequestsTableRoute,\n partnerAcusTableRoute,\n partnerAcusEditRoute,\n partnerThirdPartyDevicesRoute,\n partnerEntriesTableRoute,\n partnerBillingRoute,\n dashboardContainerRoute,\n mapsDashboardRoute,\n chatRoute,\n} from '../routes/constants';\n\nexport interface OpRawMenuItemType {\n key: string;\n title: string;\n route?: string | null;\n scope?: string[];\n icon?: ReactNode;\n selectedIcon?: ReactNode;\n hidden?: boolean;\n items?: OpRawMenuItemType[];\n external?: boolean;\n admin?: boolean;\n requiredFeatureCode?: string | string[];\n action?: string;\n type?: 'group';\n}\n\nexport const createRawMenuItems = (\n mergedOpenpathConfig: Record<string, any> = {},\n { isLicenseBased, hasAppMarketplace, billingMode, isUnified } = {\n isLicenseBased: false,\n hasAppMarketplace: false,\n billingMode: '',\n isUnified: false,\n },\n) => {\n const seenReleaseNotesCount = localStorage.getItem('release-notes-count');\n const seenMasterReleaseNotesCount = localStorage.getItem(\n 'master-release-notes-count',\n );\n\n const newReleaseNotesCount =\n releaseNotesJson.length - Number(seenReleaseNotesCount);\n const newMasterReleaseNotesCount =\n masterReleaseNotesJson().length - Number(seenMasterReleaseNotesCount);\n\n return [\n {\n key: dashboardContainerRoute,\n title: t('Home'),\n route: dashboardContainerRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-dashActivity:r',\n 'o{orgId}-dashActivity:w',\n 'o{orgId}-dashAlarm:r',\n 'o{orgId}-dashAlarm:w',\n 'o{orgId}-dashEntry:r',\n 'o{orgId}-dashEntry:w',\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n icon: <HomeOutlinedSvg />,\n selectedIcon: <HomeFilledSvg />,\n items: [\n {\n key: activityDashboardRoute,\n title: t('Activity dashboard'),\n route: activityDashboardRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-dashActivity:r',\n 'o{orgId}-dashActivity:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: alarmDashboardRoute,\n title: t('Alarms dashboard'),\n route: alarmDashboardRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-dashAlarm:r',\n 'o{orgId}-dashAlarm:w',\n 'o:w',\n 'o:r',\n ],\n hidden: true,\n },\n {\n key: entryDashboardRoute,\n title: t('Entry dashboard'),\n route: entryDashboardRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-dashEntry:r',\n 'o{orgId}-dashEntry:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: hardwareDashboardRoute,\n title: t('Device dashboard'),\n route: hardwareDashboardRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: mapsDashboardRoute,\n title: t('Maps'),\n route: mapsDashboardRoute,\n scope: [\n 'o{orgId}-map:r',\n 'o{orgId}-map:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: customDashboardsRoute,\n title: t('Custom dashboard'),\n route: customDashboardsRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n // TODO - Remove this once we no longer have partner center in CC (playing it safe)\n {\n key: 'partner-center',\n title: t('Partners'),\n icon: <UserGroupOutlineSvg />,\n selectedIcon: <UserGroupFilledSvg />,\n scope: [\n 'o{orgId}-erpParentStore:w',\n 'o{orgId}-erpParentCenter:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n requiredFeatureCode: 'subOrgs',\n items: [\n {\n key: partnerDashboardRoute,\n title: t('Dashboard'),\n route: partnerDashboardRoute,\n scope: ['o:w', 'o:r', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerStoreRoute,\n title: t('Store'),\n route: partnerStoreRoute,\n scope: ['o{orgId}-erpParentStore:w', 'o:w', 'o:r'], // no s-o scopes here since users specifically need the erpParentStore permission here\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerOrgTableRoute,\n title: t('Customers'),\n route: partnerOrgTableRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n\n items: [\n {\n key: partnerOrgCreateRoute,\n title: t('Create organization'),\n route: partnerOrgCreateRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n hidden: true,\n },\n {\n key: partnerOrgEditRoute,\n title: t('Edit organization'),\n route: partnerOrgEditRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n hidden: true,\n },\n {\n key: partnerOrgEditPackageRoute,\n title: t('Edit organization package'),\n route: partnerOrgEditPackageRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n hidden: true,\n },\n ],\n },\n {\n key: partnerSubscriptionRenewalsTableRoute,\n title: t('Renewals'),\n route: partnerSubscriptionRenewalsTableRoute,\n scope: ['o{orgId}-erpParentStore:w', 'o:w', 'o:r'], // no s-o scopes here since users specifically need the erpParentStore permission here\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerRequestsTableRoute,\n title: t('License requests'),\n route: partnerRequestsTableRoute,\n scope: ['o:w', 'o:r', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerAcusTableRoute,\n title: t('ACUs'),\n route: partnerAcusTableRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n items: [\n {\n key: partnerAcusEditRoute,\n title: t('ACUs'),\n route: partnerAcusEditRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n hidden: true,\n },\n ],\n },\n {\n key: partnerThirdPartyDevicesRoute,\n title: t('3rd-party devices'),\n route: partnerThirdPartyDevicesRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerEntriesTableRoute,\n title: t('Entries'),\n route: partnerEntriesTableRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: partnerBillingRoute,\n title: t('Billing'),\n route: partnerBillingRoute,\n scope: ['o{orgId}-erpParentCenter:w', 'o:w', 'o:r'], // no s-o scopes here since users specifically need the erpParentStore permission here\n requiredFeatureCode: 'subOrgs',\n },\n {\n key: 'partner-marketing',\n title: t('Marketing'),\n route: 'https://loginvsa.motorolasolutions.com/',\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n external: true,\n },\n {\n key: 'https://vsatraining.myabsorb.com/',\n title: t('Training'),\n route: 'https://vsatraining.myabsorb.com/',\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n requiredFeatureCode: 'subOrgs',\n external: true,\n },\n ],\n hidden: isUnified,\n },\n {\n key: camerasRoute,\n title: t('Cameras'),\n route: camerasRoute,\n icon: <CameraOutlinedSvg />,\n selectedIcon: <CameraFilledSvg />,\n scope: [\n 'o:w',\n 's-o:w',\n 'o{orgId}-videoProviderLive:w', // they can see because they have \"play back videoProvider live\" scope\n 'o{orgId}-videoProviderPlayback:w', // they can see because they have \"play back videoProvider clips\" scope\n 'o{orgId}-opvideoDevice:w', // they can see it because they have \"fine tune video settings\" scope\n 'o-supportVideo:w', // they can see it because they have support scope\n ],\n items: [\n {\n key: cameraDetailsRoute,\n title: t('Camera details'),\n route: cameraDetailsRoute,\n scope: [\n 'o:w',\n 's-o:w',\n 'o{orgId}-videoProviderLive:w', // they can see because they have \"play back videoProvider live\" scope\n 'o{orgId}-videoProviderPlayback:w', // they can see because they have \"play back videoProvider clips\" scope\n 'o{orgId}-opvideoDevice:w', // they can see it because they have \"fine tune video settings\" scope\n 'o-supportVideo:w', // they can see it because they have support scope\n ],\n hidden: true,\n },\n {\n key: cameraDeeplinkRedirectRoute,\n title: t('Camera deeplink redirect'),\n route: cameraDeeplinkRedirectRoute,\n scope: [\n 'o:w',\n 's-o:w',\n 'o{orgId}-videoProviderLive:w', // they can see because they have \"play back videoProvider live\" scope\n 'o{orgId}-videoProviderPlayback:w', // they can see because they have \"play back videoProvider clips\" scope\n 'o{orgId}-opvideoDevice:w', // they can see it because they have \"fine tune video settings\" scope\n 'o-supportVideo:w', // they can see it because they have support scope\n ],\n hidden: true,\n },\n ],\n },\n\n {\n key: 'primary-users',\n title: t('Users'),\n icon: <UserOutlinedSvg />,\n selectedIcon: <UserFilledSvg />,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 's-o-video:r',\n 's-o-video:w',\n 'o-user:r',\n 'o-user:w',\n ],\n items: [\n {\n key: usersTableRoute,\n title: t('Users'),\n route: usersTableRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 's-o-video:r',\n 's-o-video:w',\n 'o-user:r',\n 'o-user:w',\n ],\n },\n {\n key: usersImportRoute,\n title: t('Import'),\n route: usersImportRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 's-o-video:r',\n 's-o-video:w',\n ],\n },\n {\n key: accessGroupsRoute,\n title: t('Access groups'),\n route: accessGroupsRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 's-o-video:r',\n 's-o-video:w',\n 'o-user:r',\n 'o-user:w',\n ],\n },\n {\n key: rolesRoute,\n title: t('Roles'),\n route: rolesRoute,\n scope: [\n 'o{orgId}-role:r',\n 'o{orgId}-role:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 's-o-video:r',\n 's-o-video:w',\n 'o-role:r',\n 'o-role:w',\n ],\n },\n {\n key: userSchedulesTableRoute,\n title: t('Schedules'),\n route: userSchedulesTableRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: userSchedulesCreateRoute,\n title: t('Create schedule'),\n route: userSchedulesCreateRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: userSchedulesEditRoute,\n title: t('Edit schedule'),\n route: userSchedulesEditRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: userCustomFieldsTableRoute,\n title: t('Custom fields'),\n route: userCustomFieldsTableRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: userCustomFieldsCreateRoute,\n title: t('Create schedule'),\n route: userCustomFieldsCreateRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: userCustomFieldsEditRoute,\n title: t('Edit schedule'),\n route: userCustomFieldsEditRoute,\n scope: [\n 'o{orgId}-user:r',\n 'o{orgId}-user:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n ],\n },\n\n {\n key: 'primary-sites',\n title: t('Sites'),\n icon: <LocationOutlinedSvg />,\n selectedIcon: <LocationFilledSvg />,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: sitesTableRoute,\n title: t('Sites'),\n route: sitesTableRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: sitesCreateRoute,\n title: t('Create site'),\n route: sitesCreateRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: sitesEditRoute,\n title: t('Edit site'),\n route: sitesEditRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: buildingsRoute,\n title: t('Buildings'),\n route: buildingsRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-building:r',\n 'o{orgId}-building:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: buildingsCreateRoute,\n title: t('Create building'),\n route: buildingsCreateRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-building:r',\n 'o{orgId}-building:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: buildingsEditRoute,\n title: t('Edit building'),\n route: buildingsEditRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-building:r',\n 'o{orgId}-building:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: zonesTableRoute,\n title: t('Zones'),\n route: zonesTableRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: zonesCreateRoute,\n title: t('Create zone'),\n route: zonesCreateRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: zonesEditDetailsRoute,\n title: t('Edit zone'),\n route: zonesEditDetailsRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: zonesEditAntiPassbackRoute,\n title: t('Edit zone'),\n route: zonesEditAntiPassbackRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: entriesTableRoute,\n title: t('Entries'),\n route: entriesTableRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: entryStatesTableRoute,\n title: t('Entry states'),\n route: entryStatesTableRoute,\n hidden: mergedOpenpathConfig.ENTRY_STATES_MENU_ITEM_HIDDEN,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-entryState:r',\n 'o{orgId}-entryState:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: entryStatesCreateRoute,\n title: t('Create entry state'),\n route: entryStatesCreateRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-entryState:r',\n 'o{orgId}-entryState:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: entryStatesEditRoute,\n title: t('Edit entry state'),\n route: entryStatesEditRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-entryState:r',\n 'o{orgId}-entryState:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: entrySchedulesTableRoute,\n title: t('Entry schedules'),\n route: entrySchedulesTableRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: entrySchedulesCreateRoute,\n title: t('Create schedule'),\n route: entrySchedulesCreateRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: entrySchedulesEditRoute,\n title: t('Edit schedule'),\n route: entrySchedulesEditRoute,\n scope: [\n 'o{orgId}-site:r',\n 'o{orgId}-site:w',\n 'o{orgId}-siteGeneral:r',\n 'o{orgId}-siteGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: lockdownTableRoute,\n title: t('Lockdown plans'),\n route: lockdownTableRoute,\n scope: [\n 'o{orgId}-ldp:r',\n 'o{orgId}-ldp:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: lockdownCreateRoute,\n title: t('Create lockdown plan'),\n route: lockdownCreateRoute,\n scope: [\n 'o{orgId}-ldp:r',\n 'o{orgId}-ldp:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: lockdownEditRoute,\n title: t('Edit lockdown plan'),\n route: lockdownEditRoute,\n scope: [\n 'o{orgId}-ldp:r',\n 'o{orgId}-ldp:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: lockdownEditConfigRoute,\n title: t('Edit lockdown user config'),\n route: lockdownEditConfigRoute,\n scope: [\n 'o{orgId}-ldp:r',\n 'o{orgId}-ldp:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n ],\n },\n\n {\n key: 'primary-devices',\n title: t('Devices'),\n icon: <DevicesOutlinedSvg />,\n selectedIcon: <DeviceFilledSvg />,\n scope: ['o{orgId}-hw:r', 'o{orgId}-hw:w', 'o:w', 'o:r', 's-o:r', 's-o:w'],\n items: [\n {\n key: acusTableRoute,\n title: t('ACUs'),\n route: acusTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: acusCreateRoute,\n title: t('Create ACU'),\n route: acusCreateRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: acusEditRoute,\n title: t('Edit ACU'),\n route: acusEditRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: acusPortsRoute,\n title: t('Edit ACU ports'),\n route: acusPortsRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: readersTableRoute,\n title: t('Readers'),\n route: readersTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: readersCreateRoute,\n title: t('Create reader'),\n route: readersCreateRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: readersEditRoute,\n title: t('Edit reader'),\n route: readersEditRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: allegionReadersTableRoute,\n title: t('Third-party readers'),\n route: allegionReadersTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: thirdPartyReadersEditRoute,\n title: t('Edit third-party reader'),\n route: thirdPartyReadersEditRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: videoReadersRoute,\n title: t('Video readers'),\n route: videoReadersRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: videoIntercomReadersRoute,\n title: t('Intercoms'),\n route: videoIntercomReadersRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: wirelessLocksTableRoute,\n title: t('Wireless locks'),\n route: wirelessLocksTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: wirelessLocksEditRoute,\n title: t('Edit wireless lock'),\n route: wirelessLocksEditRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: allegionWirelessLocksTableRoute,\n title: 'Allegion wireless locks',\n route: allegionWirelessLocksTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: wirelessLockGatewaysTableRoute,\n title: t('Wireless Gateways'),\n route: wirelessLockGatewaysTableRoute,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [],\n },\n {\n key: deviceUpdateManagement,\n title: t('Updates'),\n route: deviceUpdateManagement,\n scope: [\n 'o{orgId}-hw:r',\n 'o{orgId}-hw:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n ],\n },\n\n {\n key: 'primary-reports',\n title: t('Reports'),\n icon: <FileOutlinedSvg />,\n selectedIcon: <FileFilledSvg />,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o{orgId}-musterReport:r',\n 'o{orgId}-musterReport:w',\n 'o{orgId}-occupancyReport:r',\n 'o{orgId}-occupancyReport:w',\n 'o{orgId}-entryAccessAudit:r',\n 'o{orgId}-entryAccessAudit:w',\n 'o{orgId}-portalAudit:r',\n 'o{orgId}-portalAudit:w',\n 'o{orgId}-credential:r',\n 'o{orgId}-credential:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: 'reports-misc-group',\n type: 'group',\n title: '',\n items: [\n {\n key: alarmReportRoute,\n title: t('Alarms'),\n route: alarmReportRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptAlarm:r',\n 'o{orgId}-rptAlarm:w',\n 'o:w',\n 'o:r',\n ],\n },\n {\n key: userCredentialsManagementRoute,\n title: t('Credentials'),\n route: userCredentialsManagementRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-credential:r',\n 'o{orgId}-credential:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: musterReportsRoute,\n title: t('Muster'),\n route: musterReportsRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-musterReport:r',\n 'o{orgId}-musterReport:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: occupancyReportRoute,\n title: t('Occupancy'),\n route: occupancyReportRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-occupancyReport:r',\n 'o{orgId}-occupancyReport:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: scheduledReportsRoute,\n title: t('Scheduled'),\n route: scheduledReportsRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:w',\n 'o{orgId}-rptGeneral:r',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: mergedOpenpathConfig.SCHEDULED_REPORTS_DISABLED,\n items: [\n {\n key: scheduledReportsCreateRoute,\n title: t('Create scheduled report'),\n route: scheduledReportsCreateRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-credential:r',\n 'o{orgId}-credential:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: scheduledReportsEditRoute,\n title: t('Edit scheduled report'),\n route: scheduledReportsEditRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-credential:r',\n 'o{orgId}-credential:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: presenceReportRoute,\n title: t('Presence'),\n route: presenceReportRoute,\n scope: [\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 'o{orgId}-presence:r',\n 'o{orgId}-presence:w',\n ],\n hidden: mergedOpenpathConfig.PRESENCE_HIDDEN,\n },\n ],\n },\n\n {\n key: 'reports-activity-group',\n type: 'group',\n title: t('Activity'),\n items: [\n {\n key: activityLogsRoute,\n title: t('Logs'),\n route: activityLogsRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: activityInsightsRoute,\n title: t('Insights'),\n route: activityInsightsRoute,\n hidden: !mergedOpenpathConfig.SHOW_ACTIVITY_INSIGHTS_PAGE,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: entryActivityRoute,\n title: t('Entry'),\n route: entryActivityRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: entryActivitySummaryRoute,\n title: t('Entry summary'),\n route: entryActivitySummaryRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: userActivityRoute,\n title: t('User'),\n route: userActivityRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: userActivitySummaryRoute,\n title: t('User summary'),\n route: userActivitySummaryRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptGeneral:r',\n 'o{orgId}-rptGeneral:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: visualActivityReportRoute,\n title: t('Visual event'),\n route: visualActivityReportRoute,\n scope: [\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n 'o{orgId}-videoProviderPlayback:w',\n ],\n hidden: !mergedOpenpathConfig.SHOW_VISUAL_ACTIVITY_REPORT,\n },\n ],\n },\n\n {\n key: 'reports-audit-group',\n type: 'group',\n title: t('Audits'),\n items: [\n {\n key: entryAccessAuditRoute,\n title: t('Entry access'),\n route: entryAccessAuditRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-entryAccessAudit:r',\n 'o{orgId}-entryAccessAudit:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: userAccessAuditRoute,\n title: t('User access'),\n route: userAccessAuditRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: portalAuditReportRoute,\n title: t('Portal'),\n route: portalAuditReportRoute,\n scope: [\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-portalAudit:r',\n 'o{orgId}-portalAudit:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: mergedOpenpathConfig.API_AUDIT_REPORT_HIDDEN,\n },\n ],\n },\n ],\n },\n\n {\n key: 'primary-apps',\n title: t('Apps'),\n icon: <PuzzleOutlinedSvg />,\n selectedIcon: <PuzzleFilledSvg />,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden:\n mergedOpenpathConfig.APP_MARKETPLACE_DISABLED ||\n (!isLicenseBased && !hasAppMarketplace),\n items: [\n {\n key: appMarketplaceRoute,\n title: t('Get apps'),\n route: appMarketplaceRoute,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: myAppsTableRoute,\n title: t('My apps'),\n route: myAppsTableRoute,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n ],\n },\n\n {\n key: integrationsRoute,\n title: t('Apps'),\n route: integrationsRoute,\n icon: <PuzzleOutlinedSvg />,\n selectedIcon: <PuzzleFilledSvg />,\n hidden:\n mergedOpenpathConfig.INTEGRATIONS_MENU_ITEM_HIDDEN ||\n isLicenseBased ||\n hasAppMarketplace,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: integrationsIdentityProviderGsuite,\n title: t('GSuite'),\n route: integrationsIdentityProviderGsuite,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: integrationsIdentityProviderAzure,\n title: t('Azure'),\n route: integrationsIdentityProviderAzure,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: integrationsIdentityProviderOkta,\n title: t('Okta'),\n route: integrationsIdentityProviderOkta,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: integrationsIdentityProviderOnelogin,\n title: t('Onelogin'),\n route: integrationsIdentityProviderOnelogin,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n\n {\n key: 'primary-config',\n title: t('Config'),\n icon: <SettingOutlinedSvg />,\n selectedIcon: <SettingFilledSvg />,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-alarmConfigurations:r',\n 'o{orgId}-alarmConfigurations:w',\n 'o{orgId}-outboundWebhooks:r',\n 'o{orgId}-outboundWebhooks:w',\n 'o{orgId}-alertSettings:r',\n 'o{orgId}-alertSettings:w',\n 'o{orgId}-mobileAppSettings:r',\n 'o{orgId}-mobileAppSettings:w',\n 'o{orgId}-badgePrinting:r',\n 'o{orgId}-badgePrinting:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: alarmConfigurationsRoute,\n title: t('Alarms'),\n route: alarmConfigurationsRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-alarmConfigurations:r',\n 'o{orgId}-alarmConfigurations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: subscriptionsTableRoute,\n title: t('Rules'),\n route: subscriptionsTableRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-outboundWebhooks:r',\n 'o{orgId}-outboundWebhooks:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: subscriptionsCreateRoute,\n title: t('Create rule'),\n route: subscriptionsCreateRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-outboundWebhooks:r',\n 'o{orgId}-outboundWebhooks:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n {\n key: subscriptionsEditRoute,\n title: t('Edit rule'),\n route: subscriptionsEditRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-outboundWebhooks:r',\n 'o{orgId}-outboundWebhooks:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: alertSettingsRoute,\n title: t('Alerts'),\n route: alertSettingsRoute,\n hidden: mergedOpenpathConfig.ALERTS_SETTINGS_MENU_ITEM_HIDDEN,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-alertSettings:r',\n 'o{orgId}-alertSettings:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: mobileAppSettingsRoute,\n title: t('Mobile app'),\n route: mobileAppSettingsRoute,\n hidden: mergedOpenpathConfig.ADMINISTRATION_MENU_ITEM_HIDDEN,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-mobileAppSettings:r',\n 'o{orgId}-mobileAppSettings:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: mobileAppBadgeUiRoute,\n title: t('Badge UI'),\n route: mobileAppBadgeUiRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-mobileAppSettings:r',\n 'o{orgId}-mobileAppSettings:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n ],\n },\n {\n key: badgeTemplatesTablePageRoute,\n title: t('Badge templates'),\n route: badgeTemplatesTablePageRoute,\n requiredFeatureCode: 'badgePrinting',\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-badgePrinting:r',\n 'o{orgId}-badgePrinting:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: intercomUserDirectoryRoute,\n title: t('Intercom users'),\n route: intercomUserDirectoryRoute,\n scope: [\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n ],\n },\n\n {\n key: 'primary-admin',\n title: t('Admin'),\n icon: <AdminOutlinedSvg />,\n selectedIcon: <AdminFilledSvg />,\n scope: [\n 'o{orgId}-admin:r',\n 'o{orgId}-admin:w',\n 'o{orgId}-account:r',\n 'o{orgId}-account:w',\n 'o{orgId}-quickStart:r',\n 'o{orgId}-quickStart:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n items: [\n {\n key: accountPageRoute,\n title: t('Account'),\n route: accountPageRoute,\n scope: [\n 'o{orgId}-admin:r',\n 'o{orgId}-admin:w',\n 'o{orgId}-account:r',\n 'o{orgId}-account:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n {\n key: licensesRoute,\n title: t('Requests'),\n route: licensesRoute,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden:\n mergedOpenpathConfig.APP_MARKETPLACE_DISABLED ||\n isLicenseBased ||\n !hasAppMarketplace ||\n (hasAppMarketplace && billingMode !== 'channel'),\n },\n {\n key: licensesRoute,\n title: t('Licenses'),\n route: licensesRoute,\n scope: [\n 'o{orgId}-integrations:r',\n 'o{orgId}-integrations:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden:\n mergedOpenpathConfig.APP_MARKETPLACE_DISABLED || !isLicenseBased,\n },\n {\n key: quickStartRoute,\n title: t('Quick start'),\n route: quickStartRoute,\n scope: [\n 'o{orgId}-admin:r',\n 'o{orgId}-admin:w',\n 'o{orgId}-quickStart:r',\n 'o{orgId}-quickStart:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n },\n ],\n },\n\n {\n key: releaseNotesRoute,\n title: t('Releases'),\n route: releaseNotesRoute,\n icon:\n newReleaseNotesCount > 0 ? (\n <Badge dot>\n <DocumentOutlinedSvg />\n </Badge>\n ) : (\n <DocumentOutlinedSvg />\n ),\n selectedIcon:\n newReleaseNotesCount > 0 ? (\n <Badge dot>\n <DocumentFilledSvg />\n </Badge>\n ) : (\n <DocumentFilledSvg />\n ),\n scope: [\n 'o{orgId}-admin:r',\n 'o{orgId}-admin:w',\n 'o:w',\n 'o:r',\n 's-o:r',\n 's-o:w',\n ],\n hidden: true,\n },\n\n /**\n * Master mode top level menu items\n */\n {\n admin: true,\n key: masterDashboardRoute,\n title: t('Home'),\n route: masterDashboardRoute,\n icon: <HomeOutlinedSvg />,\n selectedIcon: <HomeFilledSvg />,\n scope: [\n 'o:r',\n 'o:w',\n 'o-basic:r',\n 'o-basic:w',\n 'i:r',\n 'i:w',\n 's-o:r',\n 's-o:w',\n ],\n },\n\n {\n admin: true,\n key: 'master-primary-manage',\n title: t('Manage'),\n icon: <AdminOutlinedSvg />,\n selectedIcon: <AdminFilledSvg />,\n scope: [\n 'o:r',\n 'o:w',\n 'o-basic:r',\n 'o-basic:w',\n 's-o:r',\n 's-o:w',\n 'o-support:r',\n 'o-support:w',\n 'i:r',\n 'i:w',\n ],\n items: [\n {\n admin: true,\n key: masterOrgTableRoute,\n title: t('Orgs'),\n route: masterOrgTableRoute,\n scope: [\n 'o:r',\n 'o:w',\n 'o-basic:r',\n 'o-basic:w',\n 's-o:r',\n 's-o:w',\n 'o-support:r',\n 'o-support:w',\n ],\n items: [\n {\n admin: true,\n key: masterOrgCreateRoute,\n title: t('Create organization'),\n route: masterOrgCreateRoute,\n scope: ['o:w', 'o-basic:w', 's-o:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterOrgEditRoute,\n title: t('Edit organization'),\n route: masterOrgEditRoute,\n scope: ['o:r', 'o:w', 'o-basic:r', 'o-basic:w', 's-o:r', 's-o:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterOrgEditPackageRoute,\n title: t('Edit organization package'),\n route: masterOrgEditPackageRoute,\n scope: ['o:r', 'o:w', 'o-basic:r', 'o-basic:w', 's-o:r', 's-o:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterOrgEditFeatureFlagRoute,\n title: t('Edit organization feature flag'),\n route: masterOrgEditFeatureFlagRoute,\n scope: [\n 'o:r',\n 'o:w',\n 's-o:r',\n 's-o:w', // Writes will fail for s-o but they can still view them here...\n 'o-support:r',\n 'o-support:w',\n ],\n hidden: true,\n },\n ],\n },\n\n {\n admin: true,\n key: masterIdentitiesTableRoute,\n title: t('Identities'),\n route: masterIdentitiesTableRoute,\n scope: ['i:r', 'i:w'],\n items: [\n {\n admin: true,\n key: masterIdentitiesEditRoute,\n title: t('Edit Identity'),\n route: masterIdentitiesEditRoute,\n scope: ['i:r', 'i:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterIdentitiesEditSecurityRoute,\n title: t('Edit identity security'),\n route: masterIdentitiesEditSecurityRoute,\n scope: ['i:r', 'i:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterIdentitiesCreateRoute,\n title: t('Create identity'),\n route: masterIdentitiesCreateRoute,\n scope: ['i:r', 'i:w'],\n hidden: true,\n },\n ],\n },\n\n {\n admin: true,\n key: masterRolesTableRoute,\n title: t('Identity roles'),\n route: masterRolesTableRoute,\n scope: ['i:r', 'i:w'],\n items: [\n {\n admin: true,\n key: masterRolesEditRoute,\n title: t('Edit role'),\n route: masterRolesEditRoute,\n scope: ['i:r', 'i:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterRolesCreateRoute,\n title: t('Create role'),\n route: masterRolesCreateRoute,\n scope: ['i:r', 'i:w'],\n hidden: true,\n },\n ],\n },\n\n {\n admin: true,\n key: masterAcusTableRoute,\n title: t('ACUs'),\n route: masterAcusTableRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n items: [\n {\n admin: true,\n key: masterAcusEditRoute,\n title: t('View ACU'),\n route: masterAcusEditRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n hidden: true,\n },\n ],\n },\n\n {\n admin: true,\n key: masterEntriesTableRoute,\n title: t('Entries'),\n route: masterEntriesTableRoute,\n scope: ['o:r', 'o:w'], // no s-o here, since this page is new and we are migrating partners into Partner Center\n },\n\n {\n admin: true,\n key: masterThirdPartyDevicesRoute,\n title: t('3rd-party devices'),\n route: masterThirdPartyDevicesRoute,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n },\n\n {\n admin: true,\n key: masterAllegionFobsRoute,\n title: t('Allegion fobs'),\n route: masterAllegionFobsRoute,\n scope: ['o:r', 'o:w'],\n },\n\n {\n admin: true,\n key: masterFeatureFlagsTableRoute,\n title: t('Feature flags'),\n route: masterFeatureFlagsTableRoute,\n scope: ['o:r', 'o:w', 'o-support:r', 'o-support:w'],\n items: [\n {\n admin: true,\n key: masterFeatureFlagsCreateRoute,\n title: t('Create feature flag'),\n route: masterFeatureFlagsCreateRoute,\n scope: ['o:w', 'o-support:w'],\n hidden: true,\n },\n {\n admin: true,\n key: masterFeatureFlagsEditRoute,\n title: t('Edit feature flag'),\n route: masterFeatureFlagsEditRoute,\n scope: ['o:r', 'o:w', 'o-support:r', 'o-support:w'],\n hidden: true,\n },\n ],\n },\n ],\n },\n\n {\n admin: true,\n key: 'master-primary-reports',\n title: t('Reports'),\n icon: <FileOutlinedSvg />,\n selectedIcon: <FileFilledSvg />,\n scope: ['o:r', 'o:w', 'o-support:r', 'o-support:w', 'o-acu:r', 'o-acu:w'],\n items: [\n {\n admin: true,\n key: masterPortalAuditReportRoute,\n title: t('System audit'),\n route: masterPortalAuditReportRoute,\n scope: ['o:r', 'o:w', 'o-support:r', 'o-support:w'],\n },\n\n {\n admin: true,\n key: masterAcuSoftwareReportRoute,\n title: t('ACU software'),\n route: masterAcuSoftwareReportRoute,\n scope: [\n 'o:r',\n 'o:w',\n 'o-acu:r',\n 'o-acu:w',\n 'o-support:r',\n 'o-support:w',\n ],\n },\n ],\n },\n\n {\n admin: true,\n key: masterReleaseNotesRoute,\n title: t('Releases'),\n route: masterReleaseNotesRoute,\n icon:\n newMasterReleaseNotesCount > 0 ? (\n <Badge dot>\n <DocumentOutlinedSvg />\n </Badge>\n ) : (\n <DocumentOutlinedSvg />\n ),\n selectedIcon:\n newMasterReleaseNotesCount > 0 ? (\n <Badge dot>\n <DocumentFilledSvg />\n </Badge>\n ) : (\n <DocumentFilledSvg />\n ),\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n },\n\n {\n admin: true,\n key: chatRoute,\n title: t('Insights'),\n route: chatRoute,\n icon: <SparkIcon />,\n selectedIcon: <SparkIcon />,\n hidden: !mergedOpenpathConfig.SHOW_ALTA_SUPPORT_INTELLIGENCE_CHAT,\n scope: ['o:r', 'o:w', 's-o:r', 's-o:w'],\n },\n\n {\n admin: true,\n key: 'master-primary-resources',\n title: t('Resources'),\n icon: <QuestionMarkOutlinedSvg />,\n selectedIcon: <QuestionMarkFilledSvg />,\n scope: ['s-o:r', 's-o:w'],\n items: [\n {\n admin: true,\n key: 'master-secondary-marketing',\n title: t('Marketing'),\n route: 'https://loginvsa.motorolasolutions.com/',\n scope: ['s-o:r', 's-o:w'],\n external: true,\n },\n\n {\n admin: true,\n key: 'https://www.openpath.com/openpath-university',\n title: t('Training'),\n route: 'https://www.openpath.com/openpath-university',\n scope: ['s-o:r', 's-o:w'],\n external: true,\n },\n ],\n },\n\n /**\n * Hidden top level menu items\n */\n {\n key: requiredTermsRoute,\n title: t('Required terms'),\n route: requiredTermsRoute,\n hidden: true,\n },\n\n {\n key: errorMessageRoute,\n title: t('No permission'),\n route: errorMessageRoute,\n hidden: true,\n },\n\n // Can open from anywhere, not a real page, just a slideout!\n {\n key: alarmEditRoute,\n title: t('Alarm edit'),\n route: alarmEditRoute,\n scope: [\n 'o{orgId}-dash:r',\n 'o{orgId}-dash:w',\n 'o{orgId}-dashAlarm:r',\n 'o{orgId}-dashAlarm:w',\n 'o{orgId}-rpt:r',\n 'o{orgId}-rpt:w',\n 'o{orgId}-rptAlarm:r',\n 'o{orgId}-rptAlarm:w',\n 'o{orgId}-configurations:r',\n 'o{orgId}-configurations:w',\n 'o{orgId}-alarmActions:r',\n 'o{orgId}-alarmActions:w',\n 'o:r',\n 'o:w',\n ],\n hidden: true,\n },\n\n {\n key: 'developer-menu',\n hidden: true,\n // hidden: !mergedOpenpathConfig.SHOW_DEVELOPER_MENU,\n title: t('Developer menu'),\n scope: [],\n items: [\n {\n key: 'https://react.semantic-ui.com/',\n title: t('Semantic UI react (docs)'),\n external: true,\n route: 'https://react.semantic-ui.com/',\n scope: [],\n },\n ],\n },\n ] satisfies OpRawMenuItemType[];\n};\n","module.exports = __webpack_public_path__ + \"60d2bacc2e51eabc2bb0afa982fffb56.js\";","module.exports = __webpack_public_path__ + \"5d3314103b00c8ea165c6f9f6757f794.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\n\n/**![copy](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM1MCA4NTYuMkwyNjMuOSA3NzBIMzUwdjg2LjJ6TTY2NCA4ODhINDE0Vjc0NmMwLTIyLjEtMTcuOS00MC00MC00MEgyMzJWMjY0aDQzMnY2MjR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CopyOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CopyOutlined';\n}\nexport default RefIcon;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","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 };","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","import { isThenable } from '@sentry/utils';\n\n/**\n * Wrap a callback function with error handling.\n * If an error is thrown, it will be passed to the `onError` callback and re-thrown.\n *\n * If the return value of the function is a promise, it will be handled with `maybeHandlePromiseRejection`.\n *\n * If an `onFinally` callback is provided, this will be called when the callback has finished\n * - so if it returns a promise, once the promise resolved/rejected,\n * else once the callback has finished executing.\n * The `onFinally` callback will _always_ be called, no matter if an error was thrown or not.\n */\nfunction handleCallbackErrors\n\n(\n fn,\n onError,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onFinally = () => {},\n) {\n let maybePromiseResult;\n try {\n maybePromiseResult = fn();\n } catch (e) {\n onError(e);\n onFinally();\n throw e;\n }\n\n return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally);\n}\n\n/**\n * Maybe handle a promise rejection.\n * This expects to be given a value that _may_ be a promise, or any other value.\n * If it is a promise, and it rejects, it will call the `onError` callback.\n * Other than this, it will generally return the given value as-is.\n */\nfunction maybeHandlePromiseRejection(\n value,\n onError,\n onFinally,\n) {\n if (isThenable(value)) {\n // @ts-expect-error - the isThenable check returns the \"wrong\" type here\n return value.then(\n res => {\n onFinally();\n return res;\n },\n e => {\n onError(e);\n onFinally();\n throw e;\n },\n );\n }\n\n onFinally();\n return value;\n}\n\nexport { handleCallbackErrors };\n//# sourceMappingURL=handleCallbackErrors.js.map\n","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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\nmodule.exports = isLength;\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormHiddenItemForDataSetting.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormHiddenItemForDataSetting.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport { OpForm } from '../../OpForm';\n\nimport './OpFormHiddenItemForDataSetting.scss';\n\n/**\n * The way antd creates a form values object is by taking all the\n * names/paths that are rendered and creates node from those points.\n * In order for keys to be included, they must have a name/path that\n * points to that point or before in the chain. In cases where we\n * don't want a UI field shown, but need a pointer that is at or\n * before data we need in the object, we need to add a hidden field\n * with the appropriate name/path.\n *\n * E.g. We have a version at subscription.hookAction.config.version,\n * but the first name/path of a field we ever show in the UI points\n * to subscription.hookAction.config.trigger.properties.data.allOf.\n * Therefore, in order for version to be included in the form values\n * object, we add a hidden field with the name\n * subscription.hookAction.config (could be subscription.hookAction\n * or just subscription as well) so that version and other values\n * nested inside config are included in the form values object.\n */\nexport const OpFormHiddenItemForDataSetting = ({\n name,\n}: Pick<ComponentProps<typeof OpForm.Item>, 'name'>) => (\n <OpForm.Item className=\"op-form-hidden-item-for-data-setting\" name={name}>\n <span />\n </OpForm.Item>\n);\n","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","module.exports = __webpack_public_path__ + \"1c24a68cb472146022d0806ea2505cfb.js\";","module.exports = __webpack_public_path__ + \"2302902e10c4afab56e1b864c96070cb.js\";","module.exports = __webpack_public_path__ + \"efc14cdf19554635e477781704353ec2.js\";","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar regexp = function regexp(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default regexp;","// This icon file is generated automatically.\nvar UpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\" } }] }, \"name\": \"up\", \"theme\": \"outlined\" };\nexport default UpOutlined;\n","ace.define(\"ace/theme/clouds-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-clouds .ace_gutter {\\n background: #ebebeb;\\n color: #333\\n}\\n\\n.ace-clouds .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8\\n}\\n\\n.ace-clouds {\\n background-color: #FFFFFF;\\n color: #000000\\n}\\n\\n.ace-clouds .ace_cursor {\\n color: #000000\\n}\\n\\n.ace-clouds .ace_marker-layer .ace_selection {\\n background: #BDD5FC\\n}\\n\\n.ace-clouds.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px #FFFFFF;\\n}\\n\\n.ace-clouds .ace_marker-layer .ace_step {\\n background: rgb(255, 255, 0)\\n}\\n\\n.ace-clouds .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid #BFBFBF\\n}\\n\\n.ace-clouds .ace_marker-layer .ace_active-line {\\n background: #FFFBD1\\n}\\n\\n.ace-clouds .ace_gutter-active-line {\\n background-color : #dcdcdc\\n}\\n\\n.ace-clouds .ace_marker-layer .ace_selected-word {\\n border: 1px solid #BDD5FC\\n}\\n\\n.ace-clouds .ace_invisible {\\n color: #BFBFBF\\n}\\n\\n.ace-clouds .ace_keyword,\\n.ace-clouds .ace_meta,\\n.ace-clouds .ace_support.ace_constant.ace_property-value {\\n color: #AF956F\\n}\\n\\n.ace-clouds .ace_keyword.ace_operator {\\n color: #484848\\n}\\n\\n.ace-clouds .ace_keyword.ace_other.ace_unit {\\n color: #96DC5F\\n}\\n\\n.ace-clouds .ace_constant.ace_language {\\n color: #39946A\\n}\\n\\n.ace-clouds .ace_constant.ace_numeric {\\n color: #46A609\\n}\\n\\n.ace-clouds .ace_constant.ace_character.ace_entity {\\n color: #BF78CC\\n}\\n\\n.ace-clouds .ace_invalid {\\n background-color: #FF002A\\n}\\n\\n.ace-clouds .ace_fold {\\n background-color: #AF956F;\\n border-color: #000000\\n}\\n\\n.ace-clouds .ace_storage,\\n.ace-clouds .ace_support.ace_class,\\n.ace-clouds .ace_support.ace_function,\\n.ace-clouds .ace_support.ace_other,\\n.ace-clouds .ace_support.ace_type {\\n color: #C52727\\n}\\n\\n.ace-clouds .ace_string {\\n color: #5D90CD\\n}\\n\\n.ace-clouds .ace_comment {\\n color: #BCC8BA\\n}\\n\\n.ace-clouds .ace_entity.ace_name.ace_tag,\\n.ace-clouds .ace_entity.ace_other.ace_attribute-name {\\n color: #606060\\n}\\n\\n.ace-clouds .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y\\n}\\n\\n.ace-clouds .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n} \\n\";\n\n});\n\nace.define(\"ace/theme/clouds\",[\"require\",\"exports\",\"module\",\"ace/theme/clouds-css\",\"ace/lib/dom\"], function(require, exports, module){exports.isDark = false;\nexports.cssClass = \"ace-clouds\";\nexports.cssText = require(\"./clouds-css\");\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n}); (function() {\n ace.require([\"ace/theme/clouds\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","import { useRef } from 'react';\nexport function useFirstMountState() {\n var isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n}\n","export default __webpack_public_path__ + \"5af0f87827ea0e312a7689c56227b8ef.svg\";","module.exports = __webpack_public_path__ + \"880ae94877022f7fb0458ced0825eb4c.js\";","import { spanToJSON, getClient, DEFAULT_ENVIRONMENT } from '@sentry/core';\nimport { forEachEnvelopeItem, logger, timestampInSeconds, uuid4, GLOBAL_OBJ, browserPerformanceTimeOrigin } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/* eslint-disable max-lines */\n\n\nconst MS_TO_NS = 1e6;\n// Use 0 as main thread id which is identical to threadId in node:worker_threads\n// where main logs 0 and workers seem to log in increments of 1\nconst THREAD_ID_STRING = String(0);\nconst THREAD_NAME = 'main';\n\n// Machine properties (eval only once)\nlet OS_PLATFORM = '';\nlet OS_PLATFORM_VERSION = '';\nlet OS_ARCH = '';\nlet OS_BROWSER = (WINDOW.navigator && WINDOW.navigator.userAgent) || '';\nlet OS_MODEL = '';\nconst OS_LOCALE =\n (WINDOW.navigator && WINDOW.navigator.language) ||\n (WINDOW.navigator && WINDOW.navigator.languages && WINDOW.navigator.languages[0]) ||\n '';\n\nfunction isUserAgentData(data) {\n return typeof data === 'object' && data !== null && 'getHighEntropyValues' in data;\n}\n\n// @ts-expect-error userAgentData is not part of the navigator interface yet\nconst userAgentData = WINDOW.navigator && WINDOW.navigator.userAgentData;\n\nif (isUserAgentData(userAgentData)) {\n userAgentData\n .getHighEntropyValues(['architecture', 'model', 'platform', 'platformVersion', 'fullVersionList'])\n .then((ua) => {\n OS_PLATFORM = ua.platform || '';\n OS_ARCH = ua.architecture || '';\n OS_MODEL = ua.model || '';\n OS_PLATFORM_VERSION = ua.platformVersion || '';\n\n if (ua.fullVersionList && ua.fullVersionList.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstUa = ua.fullVersionList[ua.fullVersionList.length - 1];\n OS_BROWSER = `${firstUa.brand} ${firstUa.version}`;\n }\n })\n .catch(e => void e);\n}\n\nfunction isProcessedJSSelfProfile(profile) {\n return !('thread_metadata' in profile);\n}\n\n// Enriches the profile with threadId of the current thread.\n// This is done in node as we seem to not be able to get the info from C native code.\n/**\n *\n */\nfunction enrichWithThreadInformation(profile) {\n if (!isProcessedJSSelfProfile(profile)) {\n return profile;\n }\n\n return convertJSSelfProfileToSampledFormat(profile);\n}\n\n// Profile is marked as optional because it is deleted from the metadata\n// by the integration before the event is processed by other integrations.\n\nfunction getTraceId(event) {\n const traceId = event && event.contexts && event.contexts['trace'] && event.contexts['trace']['trace_id'];\n // Log a warning if the profile has an invalid traceId (should be uuidv4).\n // All profiles and transactions are rejected if this is the case and we want to\n // warn users that this is happening if they enable debug flag\n if (typeof traceId === 'string' && traceId.length !== 32) {\n if (DEBUG_BUILD) {\n logger.log(`[Profiling] Invalid traceId: ${traceId} on profiled event`);\n }\n }\n if (typeof traceId !== 'string') {\n return '';\n }\n\n return traceId;\n}\n/**\n * Creates a profiling event envelope from a Sentry event. If profile does not pass\n * validation, returns null.\n * @param event\n * @param dsn\n * @param metadata\n * @param tunnel\n * @returns {EventEnvelope | null}\n */\n\n/**\n * Creates a profiling event envelope from a Sentry event.\n */\nfunction createProfilePayload(\n profile_id,\n start_timestamp,\n processed_profile,\n event,\n) {\n if (event.type !== 'transaction') {\n // createProfilingEventEnvelope should only be called for transactions,\n // we type guard this behavior with isProfiledTransactionEvent.\n throw new TypeError('Profiling events may only be attached to transactions, this should never occur.');\n }\n\n if (processed_profile === undefined || processed_profile === null) {\n throw new TypeError(\n `Cannot construct profiling event envelope without a valid profile. Got ${processed_profile} instead.`,\n );\n }\n\n const traceId = getTraceId(event);\n const enrichedThreadProfile = enrichWithThreadInformation(processed_profile);\n const transactionStartMs = start_timestamp\n ? start_timestamp\n : typeof event.start_timestamp === 'number'\n ? event.start_timestamp * 1000\n : timestampInSeconds() * 1000;\n const transactionEndMs = typeof event.timestamp === 'number' ? event.timestamp * 1000 : timestampInSeconds() * 1000;\n\n const profile = {\n event_id: profile_id,\n timestamp: new Date(transactionStartMs).toISOString(),\n platform: 'javascript',\n version: '1',\n release: event.release || '',\n environment: event.environment || DEFAULT_ENVIRONMENT,\n runtime: {\n name: 'javascript',\n version: WINDOW.navigator.userAgent,\n },\n os: {\n name: OS_PLATFORM,\n version: OS_PLATFORM_VERSION,\n build_number: OS_BROWSER,\n },\n device: {\n locale: OS_LOCALE,\n model: OS_MODEL,\n manufacturer: OS_BROWSER,\n architecture: OS_ARCH,\n is_emulator: false,\n },\n debug_meta: {\n images: applyDebugMetadata(processed_profile.resources),\n },\n profile: enrichedThreadProfile,\n transactions: [\n {\n name: event.transaction || '',\n id: event.event_id || uuid4(),\n trace_id: traceId,\n active_thread_id: THREAD_ID_STRING,\n relative_start_ns: '0',\n relative_end_ns: ((transactionEndMs - transactionStartMs) * 1e6).toFixed(0),\n },\n ],\n };\n\n return profile;\n}\n\n/*\n See packages/browser-utils/src/browser/router.ts\n*/\n/**\n *\n */\nfunction isAutomatedPageLoadSpan(span) {\n return spanToJSON(span).op === 'pageload';\n}\n\n/**\n * Converts a JSSelfProfile to a our sampled format.\n * Does not currently perform stack indexing.\n */\nfunction convertJSSelfProfileToSampledFormat(input) {\n let EMPTY_STACK_ID = undefined;\n let STACK_ID = 0;\n\n // Initialize the profile that we will fill with data\n const profile = {\n samples: [],\n stacks: [],\n frames: [],\n thread_metadata: {\n [THREAD_ID_STRING]: { name: THREAD_NAME },\n },\n };\n\n const firstSample = input.samples[0];\n if (!firstSample) {\n return profile;\n }\n\n // We assert samples.length > 0 above and timestamp should always be present\n const start = firstSample.timestamp;\n // The JS SDK might change it's time origin based on some heuristic (see See packages/utils/src/time.ts)\n // when that happens, we need to ensure we are correcting the profile timings so the two timelines stay in sync.\n // Since JS self profiling time origin is always initialized to performance.timeOrigin, we need to adjust for\n // the drift between the SDK selected value and our profile time origin.\n const origin =\n typeof performance.timeOrigin === 'number' ? performance.timeOrigin : browserPerformanceTimeOrigin || 0;\n const adjustForOriginChange = origin - (browserPerformanceTimeOrigin || origin);\n\n input.samples.forEach((jsSample, i) => {\n // If sample has no stack, add an empty sample\n if (jsSample.stackId === undefined) {\n if (EMPTY_STACK_ID === undefined) {\n EMPTY_STACK_ID = STACK_ID;\n profile.stacks[EMPTY_STACK_ID] = [];\n STACK_ID++;\n }\n\n profile['samples'][i] = {\n // convert ms timestamp to ns\n elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n stack_id: EMPTY_STACK_ID,\n thread_id: THREAD_ID_STRING,\n };\n return;\n }\n\n let stackTop = input.stacks[jsSample.stackId];\n\n // Functions in top->down order (root is last)\n // We follow the stackTop.parentId trail and collect each visited frameId\n const stack = [];\n\n while (stackTop) {\n stack.push(stackTop.frameId);\n\n const frame = input.frames[stackTop.frameId];\n\n // If our frame has not been indexed yet, index it\n if (frame && profile.frames[stackTop.frameId] === undefined) {\n profile.frames[stackTop.frameId] = {\n function: frame.name,\n abs_path: typeof frame.resourceId === 'number' ? input.resources[frame.resourceId] : undefined,\n lineno: frame.line,\n colno: frame.column,\n };\n }\n\n stackTop = stackTop.parentId === undefined ? undefined : input.stacks[stackTop.parentId];\n }\n\n const sample = {\n // convert ms timestamp to ns\n elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n stack_id: STACK_ID,\n thread_id: THREAD_ID_STRING,\n };\n\n profile['stacks'][STACK_ID] = stack;\n profile['samples'][i] = sample;\n STACK_ID++;\n });\n\n return profile;\n}\n\n/**\n * Adds items to envelope if they are not already present - mutates the envelope.\n * @param envelope\n */\nfunction addProfilesToEnvelope(envelope, profiles) {\n if (!profiles.length) {\n return envelope;\n }\n\n for (const profile of profiles) {\n envelope[1].push([{ type: 'profile' }, profile]);\n }\n return envelope;\n}\n\n/**\n * Finds transactions with profile_id context in the envelope\n * @param envelope\n * @returns\n */\nfunction findProfiledTransactionsFromEnvelope(envelope) {\n const events = [];\n\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type !== 'transaction') {\n return;\n }\n\n for (let j = 1; j < item.length; j++) {\n const event = item[j] ;\n\n if (event && event.contexts && event.contexts['profile'] && event.contexts['profile']['profile_id']) {\n events.push(item[j] );\n }\n }\n });\n\n return events;\n}\n\nconst debugIdStackParserCache = new WeakMap();\n/**\n * Applies debug meta data to an event from a list of paths to resources (sourcemaps)\n */\nfunction applyDebugMetadata(resource_paths) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n\n if (!debugIdMap) {\n return [];\n }\n\n const client = getClient();\n const options = client && client.getOptions();\n const stackParser = options && options.stackParser;\n\n if (!stackParser) {\n return [];\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = Object.keys(debugIdMap).reduce((acc, debugIdStackTrace) => {\n let parsedStack;\n\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const file = stackFrame && stackFrame.filename;\n\n if (stackFrame && file) {\n acc[file] = debugIdMap[debugIdStackTrace] ;\n break;\n }\n }\n return acc;\n }, {});\n\n const images = [];\n for (const path of resource_paths) {\n if (path && filenameDebugIdMap[path]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[path] ,\n });\n }\n }\n\n return images;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n if ((typeof rate !== 'number' && typeof rate !== 'boolean') || (typeof rate === 'number' && isNaN(rate))) {\n DEBUG_BUILD &&\n logger.warn(\n `[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // Boolean sample rates are always valid\n if (rate === true || rate === false) {\n return true;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n DEBUG_BUILD && logger.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\nfunction isValidProfile(profile) {\n if (profile.samples.length < 2) {\n if (DEBUG_BUILD) {\n // Log a warning if the profile has less than 2 samples so users can know why\n // they are not seeing any profiling data and we cant avoid the back and forth\n // of asking them to provide us with a dump of the profile data.\n logger.log('[Profiling] Discarding profile because it contains less than 2 samples');\n }\n return false;\n }\n\n if (!profile.frames.length) {\n if (DEBUG_BUILD) {\n logger.log('[Profiling] Discarding profile because it contains no frames');\n }\n return false;\n }\n\n return true;\n}\n\n// Keep a flag value to avoid re-initializing the profiler constructor. If it fails\n// once, it will always fail and this allows us to early return.\nlet PROFILING_CONSTRUCTOR_FAILED = false;\nconst MAX_PROFILE_DURATION_MS = 30000;\n\n/**\n * Check if profiler constructor is available.\n * @param maybeProfiler\n */\nfunction isJSProfilerSupported(maybeProfiler) {\n return typeof maybeProfiler === 'function';\n}\n\n/**\n * Starts the profiler and returns the profiler instance.\n */\nfunction startJSSelfProfile() {\n // Feature support check first\n const JSProfilerConstructor = WINDOW.Profiler;\n\n if (!isJSProfilerSupported(JSProfilerConstructor)) {\n if (DEBUG_BUILD) {\n logger.log(\n '[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.',\n );\n }\n return;\n }\n\n // From initial testing, it seems that the minimum value for sampleInterval is 10ms.\n const samplingIntervalMS = 10;\n // Start the profiler\n const maxSamples = Math.floor(MAX_PROFILE_DURATION_MS / samplingIntervalMS);\n\n // Attempt to initialize the profiler constructor, if it fails, we disable profiling for the current user session.\n // This is likely due to a missing 'Document-Policy': 'js-profiling' header. We do not want to throw an error if this happens\n // as we risk breaking the user's application, so just disable profiling and log an error.\n try {\n return new JSProfilerConstructor({ sampleInterval: samplingIntervalMS, maxBufferSize: maxSamples });\n } catch (e) {\n if (DEBUG_BUILD) {\n logger.log(\n \"[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header.\",\n );\n logger.log('[Profiling] Disabling profiling for current user session.');\n }\n PROFILING_CONSTRUCTOR_FAILED = true;\n }\n\n return;\n}\n\n/**\n * Determine if a profile should be profiled.\n */\nfunction shouldProfileSpan(span) {\n // If constructor failed once, it will always fail, so we can early return.\n if (PROFILING_CONSTRUCTOR_FAILED) {\n if (DEBUG_BUILD) {\n logger.log('[Profiling] Profiling has been disabled for the duration of the current user session.');\n }\n return false;\n }\n\n if (!span.isRecording()) {\n if (DEBUG_BUILD) {\n logger.log('[Profiling] Discarding profile because transaction was not sampled.');\n }\n return false;\n }\n\n const client = getClient();\n const options = client && client.getOptions();\n if (!options) {\n DEBUG_BUILD && logger.log('[Profiling] Profiling disabled, no options found.');\n return false;\n }\n\n // @ts-expect-error profilesSampleRate is not part of the browser options yet\n const profilesSampleRate = options.profilesSampleRate;\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(profilesSampleRate)) {\n DEBUG_BUILD && logger.warn('[Profiling] Discarding profile because of invalid sample rate.');\n return false;\n }\n\n // if the function returned 0 (or false), or if `profileSampleRate` is 0, it's a sign the profile should be dropped\n if (!profilesSampleRate) {\n DEBUG_BUILD &&\n logger.log(\n '[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0',\n );\n return false;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n const sampled = profilesSampleRate === true ? true : Math.random() < profilesSampleRate;\n // Check if we should sample this profile\n if (!sampled) {\n DEBUG_BUILD &&\n logger.log(\n `[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(\n profilesSampleRate,\n )})`,\n );\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a profiling envelope item, if the profile does not pass validation, returns null.\n * @param event\n * @returns {Profile | null}\n */\nfunction createProfilingEvent(\n profile_id,\n start_timestamp,\n profile,\n event,\n) {\n if (!isValidProfile(profile)) {\n return null;\n }\n\n return createProfilePayload(profile_id, start_timestamp, profile, event);\n}\n\n// TODO (v8): We need to obtain profile ids in @sentry-internal/tracing,\n// but we don't have access to this map because importing this map would\n// cause a circular dependancy. We need to resolve this in v8.\nconst PROFILE_MAP = new Map();\n/**\n *\n */\nfunction getActiveProfilesCount() {\n return PROFILE_MAP.size;\n}\n\n/**\n * Retrieves profile from global cache and removes it.\n */\nfunction takeProfileFromGlobalCache(profile_id) {\n const profile = PROFILE_MAP.get(profile_id);\n if (profile) {\n PROFILE_MAP.delete(profile_id);\n }\n return profile;\n}\n/**\n * Adds profile to global cache and evicts the oldest profile if the cache is full.\n */\nfunction addProfileToGlobalCache(profile_id, profile) {\n PROFILE_MAP.set(profile_id, profile);\n\n if (PROFILE_MAP.size > 30) {\n const last = PROFILE_MAP.keys().next().value;\n PROFILE_MAP.delete(last);\n }\n}\n\nexport { MAX_PROFILE_DURATION_MS, addProfileToGlobalCache, addProfilesToEnvelope, applyDebugMetadata, convertJSSelfProfileToSampledFormat, createProfilePayload, createProfilingEvent, enrichWithThreadInformation, findProfiledTransactionsFromEnvelope, getActiveProfilesCount, isAutomatedPageLoadSpan, isValidSampleRate, shouldProfileSpan, startJSSelfProfile, takeProfileFromGlobalCache };\n//# sourceMappingURL=utils.js.map\n","module.exports = __webpack_public_path__ + \"805cb6232d7a9fa46025d48a43622ecf.js\";","import { ReactNode } from 'react';\n\ninterface Country {\n short: string;\n phoneCode: number;\n emoji: ReactNode;\n name?: string;\n}\n\nexport const countries: Country[] = [\n {\n emoji: '🇨🇦',\n phoneCode: 1,\n short: 'CA',\n name: 'Canada',\n },\n {\n emoji: '🇺🇸',\n phoneCode: 1,\n short: 'US',\n name: 'United States of America',\n },\n {\n emoji: '🇬🇧',\n phoneCode: 44,\n short: 'GB',\n name: 'United Kingdom',\n },\n {\n emoji: '🇧🇸',\n phoneCode: 1242,\n short: 'BS',\n name: 'The Bahamas',\n },\n {\n emoji: '🇧🇧',\n phoneCode: 1246,\n short: 'BB',\n name: 'Barbados',\n },\n {\n emoji: '🇦🇮',\n phoneCode: 1264,\n short: 'AI',\n name: 'Anguilla',\n },\n {\n emoji: '🇦🇬',\n phoneCode: 1268,\n short: 'AG',\n name: 'Antigua and Barbuda',\n },\n {\n emoji: '🇻🇮',\n phoneCode: 1284,\n short: 'VI',\n name: 'Virgin Islands, U.S.',\n },\n {\n emoji: '🇻🇬',\n phoneCode: 1340,\n short: 'VG',\n name: 'Virgin Islands, British',\n },\n {\n emoji: '🇰🇾',\n phoneCode: 1345,\n short: 'KY',\n name: 'Cayman Islands',\n },\n {\n emoji: '🇧🇲',\n phoneCode: 1441,\n short: 'BM',\n name: 'Bermuda',\n },\n {\n emoji: '🇬🇩',\n phoneCode: 1473,\n short: 'GD',\n name: 'Grenada',\n },\n {\n emoji: '🇹🇨',\n phoneCode: 1649,\n short: 'TC',\n name: 'Turks and Caicos Islands',\n },\n {\n emoji: '🇲🇸',\n phoneCode: 1664,\n short: 'MS',\n name: 'Montserrat',\n },\n {\n emoji: '🇬🇺',\n phoneCode: 1671,\n short: 'GU',\n name: 'Guam',\n },\n {\n emoji: '🇦🇸',\n phoneCode: 1684,\n short: 'AS',\n name: 'American Samoa',\n },\n {\n emoji: '🇳🇱',\n phoneCode: 1721,\n short: 'SX',\n name: 'Sint Maarten (Dutch part)',\n },\n {\n emoji: '🇱🇨',\n phoneCode: 1758,\n short: 'LC',\n name: 'Saint Lucia',\n },\n {\n emoji: '🇩🇲',\n phoneCode: 1767,\n short: 'DM',\n name: 'Dominica',\n },\n {\n emoji: '🇻🇨',\n phoneCode: 1784,\n short: 'VC',\n name: 'Saint Vincent and the Grenadines',\n },\n {\n emoji: '🇵🇷',\n phoneCode: 1787,\n short: 'PR',\n name: 'Puerto Rico',\n },\n\n {\n emoji: '🇩🇴',\n phoneCode: 1809,\n short: 'DO',\n name: 'Dominican Republic',\n },\n {\n emoji: '🇹🇹',\n phoneCode: 1868,\n short: 'TT',\n name: 'Trinidad and Tobago',\n },\n {\n emoji: '🇰🇳',\n phoneCode: 1869,\n short: 'KN',\n name: 'Saint Kitts and Nevis',\n },\n {\n emoji: '🇯🇲',\n phoneCode: 1876,\n short: 'JM',\n name: 'Jamaica',\n },\n {\n emoji: '🇪🇬',\n phoneCode: 20,\n short: 'EG',\n name: 'Egypt',\n },\n {\n emoji: '🇲🇦',\n phoneCode: 212,\n short: 'MA',\n name: 'Morocco',\n },\n {\n emoji: '🇩🇿',\n phoneCode: 213,\n short: 'DZ',\n name: 'Algeria',\n },\n {\n emoji: '🇹🇳',\n phoneCode: 216,\n short: 'TN',\n name: 'Tunisia',\n },\n {\n emoji: '🇱🇾',\n phoneCode: 218,\n short: 'LY',\n name: 'Libya',\n },\n {\n emoji: '🇬🇲',\n phoneCode: 220,\n short: 'GM',\n name: 'Gambia',\n },\n {\n emoji: '🇸🇳',\n phoneCode: 221,\n short: 'SN',\n name: 'Senegal',\n },\n {\n emoji: '🇲🇷',\n phoneCode: 222,\n short: 'MR',\n name: 'Mauritania',\n },\n {\n emoji: '🇲🇱',\n phoneCode: 223,\n short: 'ML',\n name: 'Mali',\n },\n {\n emoji: '🇬🇳',\n phoneCode: 224,\n short: 'GN',\n name: 'Guinea',\n },\n {\n emoji: '🇨🇮',\n phoneCode: 225,\n short: 'CI',\n name: 'Ivory Coast',\n },\n {\n emoji: '🇧🇫',\n phoneCode: 226,\n short: 'BF',\n name: 'Burkina Faso',\n },\n {\n emoji: '🇳🇪',\n phoneCode: 227,\n short: 'NE',\n name: 'Niger',\n },\n {\n emoji: '🇹🇬',\n phoneCode: 228,\n short: 'TG',\n name: 'Togo',\n },\n {\n emoji: '🇧🇯',\n phoneCode: 229,\n short: 'BJ',\n name: 'Benin',\n },\n {\n emoji: '🇲🇺',\n phoneCode: 230,\n short: 'MU',\n name: 'Mauritius',\n },\n {\n emoji: '🇱🇷',\n phoneCode: 231,\n short: 'LR',\n name: 'Liberia',\n },\n {\n emoji: '🇸🇱',\n phoneCode: 232,\n short: 'SL',\n name: 'Sierra Leone',\n },\n {\n emoji: '🇬🇭',\n phoneCode: 233,\n short: 'GH',\n name: 'Ghana',\n },\n {\n emoji: '🇳🇬',\n phoneCode: 234,\n short: 'NG',\n name: 'Nigeria',\n },\n {\n emoji: '🇹🇩',\n phoneCode: 235,\n short: 'TD',\n name: 'Chad',\n },\n {\n emoji: '🇨🇫',\n phoneCode: 236,\n short: 'CF',\n name: 'Central African Republic',\n },\n {\n emoji: '🇨🇲',\n phoneCode: 237,\n short: 'CM',\n name: 'Cameroon',\n },\n {\n emoji: '🇨🇻',\n phoneCode: 238,\n short: 'CV',\n name: 'Cape Verde',\n },\n {\n emoji: '🇸🇹',\n phoneCode: 239,\n short: 'ST',\n name: 'Sao Tome and Principe',\n },\n {\n emoji: '🇬🇶',\n phoneCode: 240,\n short: 'GQ',\n name: 'Equatorial Guinea',\n },\n {\n emoji: '🇬🇦',\n phoneCode: 241,\n short: 'GA',\n name: 'Gabon',\n },\n {\n emoji: '🇨🇬',\n phoneCode: 242,\n short: 'CG',\n name: 'Congo',\n },\n {\n emoji: '🇨🇩',\n phoneCode: 243,\n short: 'CD',\n name: 'Democratic Republic of the Congo',\n },\n {\n emoji: '🇦🇴',\n phoneCode: 244,\n short: 'AO',\n name: 'Angola',\n },\n {\n emoji: '🇬🇼',\n phoneCode: 245,\n short: 'GW',\n name: 'Guinea-Bissau',\n },\n {\n emoji: '🇸🇨',\n phoneCode: 248,\n short: 'SC',\n name: 'Seychelles',\n },\n {\n emoji: '🇸🇩',\n phoneCode: 249,\n short: 'SD',\n name: 'Sudan',\n },\n {\n emoji: '🇷🇼',\n phoneCode: 250,\n short: 'RW',\n name: 'Rwanda',\n },\n {\n name: 'Ethiopia',\n emoji: '🇪🇹',\n phoneCode: 251,\n short: 'ET',\n },\n {\n name: 'Somalia',\n emoji: '🇸🇴',\n phoneCode: 252,\n short: 'SO',\n },\n {\n name: 'Djibouti',\n emoji: '🇩🇯',\n phoneCode: 253,\n short: 'DJ',\n },\n {\n name: 'Kenya',\n emoji: '🇰🇪',\n phoneCode: 254,\n short: 'KE',\n },\n {\n name: 'Tanzania',\n emoji: '🇹🇿',\n phoneCode: 255,\n short: 'TZ',\n },\n {\n name: 'Uganda',\n emoji: '🇺🇬',\n phoneCode: 256,\n short: 'UG',\n },\n {\n name: 'Burundi',\n emoji: '🇧🇮',\n phoneCode: 257,\n short: 'BI',\n },\n {\n name: 'Mozambique',\n emoji: '🇲🇿',\n phoneCode: 258,\n short: 'MZ',\n },\n {\n name: 'Zambia',\n emoji: '🇿🇲',\n phoneCode: 260,\n short: 'ZM',\n },\n {\n name: 'Madagascar',\n emoji: '🇲🇬',\n phoneCode: 261,\n short: 'MG',\n },\n {\n name: 'Reunion',\n emoji: '🇷🇪',\n phoneCode: 262,\n short: 'RE',\n },\n {\n name: 'Zimbabwe',\n emoji: '🇿🇼',\n phoneCode: 263,\n short: 'ZW',\n },\n {\n name: 'Namibia',\n emoji: '🇳🇦',\n phoneCode: 264,\n short: 'NA',\n },\n {\n name: 'Malawi',\n emoji: '🇲🇼',\n phoneCode: 265,\n short: 'MW',\n },\n {\n name: 'Lesotho',\n emoji: '🇱🇸',\n phoneCode: 266,\n short: 'LS',\n },\n {\n name: 'Botswana',\n emoji: '🇧🇼',\n phoneCode: 267,\n short: 'BW',\n },\n {\n name: 'Eswatini',\n emoji: '🇸🇿',\n phoneCode: 268,\n short: 'SZ',\n },\n {\n name: 'Comoros',\n emoji: '🇰🇲',\n phoneCode: 269,\n short: 'KM',\n },\n {\n emoji: '🇾🇹',\n phoneCode: 269,\n short: 'YT',\n name: 'Mayotte',\n },\n {\n emoji: '🇿🇦',\n phoneCode: 27,\n short: 'ZA',\n name: 'South Africa',\n },\n {\n emoji: '🇪🇷',\n phoneCode: 291,\n short: 'ER',\n name: 'Eritrea',\n },\n {\n emoji: '🇦🇼',\n phoneCode: 297,\n short: 'AW',\n name: 'Aruba',\n },\n {\n emoji: '🇫🇴',\n phoneCode: 298,\n short: 'FO',\n name: 'Faroe Islands',\n },\n {\n emoji: '🇬🇱',\n phoneCode: 299,\n short: 'GL',\n name: 'Greenland',\n },\n {\n emoji: '🇬🇷',\n phoneCode: 30,\n short: 'GR',\n name: 'Greece',\n },\n {\n emoji: '🇳🇱',\n phoneCode: 31,\n short: 'NL',\n name: 'Netherlands',\n },\n {\n emoji: '🇧🇪',\n phoneCode: 32,\n short: 'BE',\n name: 'Belgium',\n },\n {\n emoji: '🇫🇷',\n phoneCode: 33,\n short: 'FR',\n name: 'France',\n },\n {\n emoji: '🇪🇸',\n phoneCode: 34,\n short: 'ES',\n name: 'Spain',\n },\n {\n emoji: '🇬🇮',\n phoneCode: 350,\n short: 'GI',\n name: 'Gibraltar',\n },\n {\n emoji: '🇵🇹',\n phoneCode: 351,\n short: 'PT',\n name: 'Portugal',\n },\n {\n emoji: '🇱🇺',\n phoneCode: 352,\n short: 'LU',\n name: 'Luxembourg',\n },\n {\n emoji: '🇮🇪',\n phoneCode: 353,\n short: 'IE',\n name: 'Ireland',\n },\n {\n emoji: '🇮🇸',\n phoneCode: 354,\n short: 'IS',\n name: 'Iceland',\n },\n {\n emoji: '🇦🇱',\n phoneCode: 355,\n short: 'AL',\n name: 'Albania',\n },\n {\n emoji: '🇲🇹',\n phoneCode: 356,\n short: 'MT',\n name: 'Malta',\n },\n {\n emoji: '🇨🇾',\n phoneCode: 357,\n short: 'CY',\n name: 'Cyprus',\n },\n {\n short: 'FI',\n emoji: '🇫🇮',\n phoneCode: 358,\n name: 'Finland',\n },\n {\n short: 'BG',\n emoji: '🇧🇬',\n phoneCode: 359,\n name: 'Bulgaria',\n },\n {\n short: 'HU',\n emoji: '🇭🇺',\n phoneCode: 36,\n name: 'Hungary',\n },\n {\n short: 'LT',\n emoji: '🇱🇹',\n phoneCode: 370,\n name: 'Lithuania',\n },\n {\n short: 'LV',\n emoji: '🇱🇻',\n phoneCode: 371,\n name: 'Latvia',\n },\n {\n short: 'EE',\n emoji: '🇪🇪',\n phoneCode: 372,\n name: 'Estonia',\n },\n {\n short: 'MD',\n emoji: '🇲🇩',\n phoneCode: 373,\n name: 'Moldova',\n },\n {\n short: 'AM',\n emoji: '🇦🇲',\n phoneCode: 374,\n name: 'Armenia',\n },\n {\n short: 'BY',\n emoji: '🇧🇾',\n phoneCode: 375,\n name: 'Belarus',\n },\n {\n short: 'AD',\n emoji: '🇦🇩',\n phoneCode: 376,\n name: 'Andorra',\n },\n {\n short: 'MC',\n emoji: '🇲🇨',\n phoneCode: 377,\n name: 'Monaco',\n },\n {\n short: 'SM',\n emoji: '🇸🇲',\n phoneCode: 378,\n name: 'San Marino',\n },\n {\n short: 'UA',\n emoji: '🇺🇦',\n phoneCode: 380,\n name: 'Ukraine',\n },\n {\n short: 'RS',\n emoji: '🇷🇸',\n phoneCode: 381,\n name: 'Serbia',\n },\n {\n short: 'ME',\n emoji: '🇲🇪',\n phoneCode: 382,\n name: 'Montenegro',\n },\n {\n short: 'HR',\n emoji: '🇭🇷',\n phoneCode: 385,\n name: 'Croatia',\n },\n {\n short: 'SI',\n emoji: '🇸🇮',\n phoneCode: 386,\n name: 'Slovenia',\n },\n {\n short: 'BA',\n emoji: '🇧🇦',\n phoneCode: 387,\n name: 'Bosnia and Herzegovina',\n },\n {\n short: 'MK',\n emoji: '🇲🇰',\n phoneCode: 389,\n name: 'North Macedonia',\n },\n {\n short: 'IT',\n emoji: '🇮🇹',\n phoneCode: 39,\n name: 'Italy',\n },\n {\n short: 'RO',\n emoji: '🇷🇴',\n phoneCode: 40,\n name: 'Romania',\n },\n {\n short: 'CH',\n emoji: '🇨🇭',\n phoneCode: 41,\n name: 'Switzerland',\n },\n {\n emoji: '🇨🇿',\n phoneCode: 420,\n short: 'CZ',\n name: 'Czech Republic',\n },\n {\n emoji: '🇸🇰',\n phoneCode: 421,\n short: 'SK',\n name: 'Slovakia',\n },\n {\n emoji: '🇱🇮',\n phoneCode: 423,\n short: 'LI',\n name: 'Liechtenstein',\n },\n {\n emoji: '🇦🇹',\n phoneCode: 43,\n short: 'AT',\n name: 'Austria',\n },\n {\n emoji: '🇩🇰',\n phoneCode: 45,\n short: 'DK',\n name: 'Denmark',\n },\n {\n emoji: '🇸🇪',\n phoneCode: 46,\n short: 'SE',\n name: 'Sweden',\n },\n {\n emoji: '🇳🇴',\n phoneCode: 47,\n short: 'NO',\n name: 'Norway',\n },\n {\n emoji: '🇵🇱',\n phoneCode: 48,\n short: 'PL',\n name: 'Poland',\n },\n {\n emoji: '🇩🇪',\n phoneCode: 49,\n short: 'DE',\n name: 'Germany',\n },\n {\n emoji: '🇧🇿',\n phoneCode: 501,\n short: 'BZ',\n name: 'Belize',\n },\n {\n emoji: '🇬🇹',\n phoneCode: 502,\n short: 'GT',\n name: 'Guatemala',\n },\n {\n emoji: '🇸🇻',\n phoneCode: 503,\n short: 'SV',\n name: 'El Salvador',\n },\n {\n emoji: '🇭🇳',\n phoneCode: 504,\n short: 'HN',\n name: 'Honduras',\n },\n {\n emoji: '🇳🇮',\n phoneCode: 505,\n short: 'NI',\n name: 'Nicaragua',\n },\n {\n emoji: '🇨🇷',\n phoneCode: 506,\n short: 'CR',\n name: 'Costa Rica',\n },\n {\n emoji: '🇵🇦',\n phoneCode: 507,\n short: 'PA',\n name: 'Panama',\n },\n {\n emoji: '🇵🇲',\n phoneCode: 508,\n short: 'PM',\n name: 'Saint Pierre and Miquelon',\n },\n {\n emoji: '🇭🇹',\n phoneCode: 509,\n short: 'HT',\n name: 'Haiti',\n },\n {\n emoji: '🇵🇪',\n phoneCode: 51,\n short: 'PE',\n name: 'Peru',\n },\n {\n emoji: '🇲🇽',\n phoneCode: 52,\n short: 'MX',\n name: 'Mexico',\n },\n {\n emoji: '🇨🇺',\n phoneCode: 53,\n short: 'CU',\n name: 'Cuba',\n },\n {\n emoji: '🇦🇷',\n phoneCode: 54,\n short: 'AR',\n name: 'Argentina',\n },\n {\n emoji: '🇧🇷',\n phoneCode: 55,\n short: 'BR',\n name: 'Brazil',\n },\n {\n emoji: '🇨🇱',\n phoneCode: 56,\n short: 'CL',\n name: 'Chile',\n },\n {\n emoji: '🇨🇴',\n phoneCode: 57,\n short: 'CO',\n name: 'Colombia',\n },\n {\n emoji: '🇻🇪',\n phoneCode: 58,\n short: 'VE',\n name: 'Venezuela',\n },\n {\n emoji: '🇬🇵',\n phoneCode: 590,\n short: 'GP',\n name: 'Guadeloupe',\n },\n {\n emoji: '🇧🇴',\n phoneCode: 591,\n short: 'BO',\n name: 'Bolivia',\n },\n {\n emoji: '🇬🇾',\n phoneCode: 592,\n short: 'GY',\n name: 'Guyana',\n },\n {\n emoji: '🇪🇨',\n phoneCode: 593,\n short: 'EC',\n name: 'Ecuador',\n },\n {\n emoji: '🇬🇫',\n phoneCode: 594,\n short: 'GF',\n name: 'French Guiana',\n },\n {\n emoji: '🇵🇾',\n phoneCode: 595,\n short: 'PY',\n name: 'Paraguay',\n },\n {\n emoji: '🇲🇶',\n phoneCode: 596,\n short: 'MQ',\n name: 'Martinique',\n },\n {\n emoji: '🇸🇷',\n phoneCode: 597,\n short: 'SR',\n name: 'Suriname',\n },\n {\n emoji: '🇺🇾',\n phoneCode: 598,\n short: 'UY',\n name: 'Uruguay',\n },\n {\n emoji: '🇨🇼',\n phoneCode: 599,\n short: 'CW',\n name: 'Curaçao',\n },\n {\n emoji: '🇲🇾',\n phoneCode: 60,\n short: 'MY',\n name: 'Malaysia',\n },\n {\n emoji: '🇦🇺',\n phoneCode: 61,\n short: 'AU',\n name: 'Australia',\n },\n {\n emoji: '🇮🇩',\n phoneCode: 62,\n short: 'ID',\n name: 'Indonesia',\n },\n {\n emoji: '🇵🇭',\n phoneCode: 63,\n short: 'PH',\n name: 'Philippines',\n },\n {\n emoji: '🇳🇿',\n phoneCode: 64,\n short: 'NZ',\n name: 'New Zealand',\n },\n {\n emoji: '🇸🇬',\n phoneCode: 65,\n short: 'SG',\n name: 'Singapore',\n },\n {\n emoji: '🇹🇭',\n phoneCode: 66,\n short: 'TH',\n name: 'Thailand',\n },\n {\n emoji: '🇹🇱',\n phoneCode: 670,\n short: 'TL',\n name: 'Timor-Leste',\n },\n {\n emoji: '🇧🇳',\n phoneCode: 673,\n short: 'BN',\n name: 'Brunei Darussalam',\n },\n {\n emoji: '🇵🇬',\n phoneCode: 675,\n short: 'PG',\n name: 'Papua New Guinea',\n },\n {\n emoji: '🇹🇴',\n phoneCode: 676,\n short: 'TO',\n name: 'Tonga',\n },\n {\n emoji: '🇸🇧',\n phoneCode: 677,\n short: 'SB',\n name: 'Solomon Islands',\n },\n {\n emoji: '🇻🇺',\n phoneCode: 678,\n short: 'VU',\n name: 'Vanuatu',\n },\n {\n emoji: '🇫🇯',\n phoneCode: 679,\n short: 'FJ',\n name: 'Fiji',\n },\n {\n emoji: '🇵🇼',\n phoneCode: 680,\n short: 'PW',\n name: 'Palau',\n },\n {\n emoji: '🇨🇰',\n phoneCode: 682,\n short: 'CK',\n name: 'Cook Islands',\n },\n {\n emoji: '🇼🇸',\n phoneCode: 685,\n short: 'WS',\n name: 'Samoa',\n },\n {\n emoji: '🇰🇮',\n phoneCode: 686,\n short: 'KI',\n name: 'Kiribati',\n },\n {\n emoji: '🇳🇨',\n phoneCode: 687,\n short: 'NC',\n name: 'New Caledonia',\n },\n {\n emoji: '🇵🇫',\n phoneCode: 689,\n short: 'PF',\n name: 'French Polynesia',\n },\n {\n emoji: '🇰🇿',\n phoneCode: 7,\n short: 'KZ',\n name: 'Kazakhstan',\n },\n {\n emoji: '🇷🇺',\n phoneCode: 7,\n short: 'RU',\n name: 'Russia',\n },\n {\n emoji: '🇯🇵',\n phoneCode: 81,\n short: 'JP',\n name: 'Japan',\n },\n {\n emoji: '🇰🇷',\n phoneCode: 82,\n short: 'KR',\n name: 'South Korea',\n },\n {\n emoji: '🇻🇳',\n phoneCode: 84,\n short: 'VN',\n name: 'Vietnam',\n },\n {\n emoji: '🇭🇰',\n phoneCode: 852,\n short: 'HK',\n name: 'Hong Kong',\n },\n {\n emoji: '🇲🇴',\n phoneCode: 853,\n short: 'MO',\n name: 'Macau',\n },\n {\n emoji: '🇰🇭',\n phoneCode: 855,\n short: 'KH',\n name: 'Cambodia',\n },\n {\n emoji: '🇱🇦',\n phoneCode: 856,\n short: 'LA',\n name: 'Laos',\n },\n {\n emoji: '🇨🇳',\n phoneCode: 86,\n short: 'CN',\n name: 'China',\n },\n {\n emoji: '🇧🇩',\n phoneCode: 880,\n short: 'BD',\n name: 'Bangladesh',\n },\n {\n emoji: '🇹🇼',\n phoneCode: 886,\n short: 'TW',\n name: 'Taiwan',\n },\n {\n emoji: '🇹🇷',\n phoneCode: 90,\n short: 'TR',\n name: 'Turkey',\n },\n {\n emoji: '🇮🇳',\n phoneCode: 91,\n short: 'IN',\n name: 'India',\n },\n {\n emoji: '🇵🇰',\n phoneCode: 92,\n short: 'PK',\n name: 'Pakistan',\n },\n {\n emoji: '🇦🇫',\n phoneCode: 93,\n short: 'AF',\n name: 'Afghanistan',\n },\n {\n emoji: '🇱🇰',\n phoneCode: 94,\n short: 'LK',\n name: 'Sri Lanka',\n },\n {\n emoji: '🇲🇲',\n phoneCode: 95,\n short: 'MM',\n name: 'Myanmar',\n },\n {\n emoji: '🇲🇻',\n phoneCode: 960,\n short: 'MV',\n name: 'Maldives',\n },\n {\n emoji: '🇱🇧',\n phoneCode: 961,\n short: 'LB',\n name: 'Lebanon',\n },\n {\n emoji: '🇯🇴',\n phoneCode: 962,\n short: 'JO',\n name: 'Jordan',\n },\n {\n emoji: '🇸🇾',\n phoneCode: 963,\n short: 'SY',\n name: 'Syrian Arab Republic',\n },\n {\n emoji: '🇮🇶',\n phoneCode: 964,\n short: 'IQ',\n name: 'Iraq',\n },\n {\n emoji: '🇰🇼',\n phoneCode: 965,\n short: 'KW',\n name: 'Kuwait',\n },\n {\n emoji: '🇸🇦',\n phoneCode: 966,\n short: 'SA',\n name: 'Saudi Arabia',\n },\n {\n emoji: '🇾🇪',\n phoneCode: 967,\n short: 'YE',\n name: 'Yemen',\n },\n {\n emoji: '🇴🇲',\n phoneCode: 968,\n short: 'OM',\n name: 'Oman',\n },\n {\n emoji: '🇵🇸',\n phoneCode: 970,\n short: 'BL',\n name: 'Palestine',\n },\n {\n emoji: '🇦🇪',\n phoneCode: 971,\n short: 'AE',\n name: 'United Arab Emirates',\n },\n {\n emoji: '🇮🇱',\n phoneCode: 972,\n short: 'IL',\n name: 'Israel',\n },\n {\n emoji: '🇧🇭',\n phoneCode: 973,\n short: 'BH',\n name: 'Bahrain',\n },\n {\n emoji: '🇶🇦',\n phoneCode: 974,\n short: 'QA',\n name: 'Qatar',\n },\n {\n emoji: '🇧🇹',\n phoneCode: 975,\n short: 'BT',\n name: 'Bhutan',\n },\n {\n emoji: '🇲🇳',\n phoneCode: 976,\n short: 'MN',\n name: 'Mongolia',\n },\n {\n emoji: '🇳🇵',\n phoneCode: 977,\n short: 'NP',\n name: 'Nepal',\n },\n {\n emoji: '🇮🇷',\n phoneCode: 98,\n short: 'IR',\n name: 'Iran',\n },\n {\n emoji: '🇹🇯',\n phoneCode: 992,\n short: 'TJ',\n name: 'Tajikistan',\n },\n {\n emoji: '🇹🇲',\n phoneCode: 993,\n short: 'TM',\n name: 'Turkmenistan',\n },\n {\n emoji: '🇦🇿',\n phoneCode: 994,\n short: 'AZ',\n name: 'Azerbaijan',\n },\n {\n emoji: '🇬🇪',\n phoneCode: 995,\n short: 'GE',\n name: 'Georgia',\n },\n {\n emoji: '🇰🇬',\n phoneCode: 996,\n short: 'KG',\n name: 'Kyrgyzstan',\n },\n {\n emoji: '🇺🇿',\n phoneCode: 998,\n short: 'UZ',\n name: 'Uzbekistan',\n },\n];\n","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { TARGET_CLS } from './interface';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n const {\n className,\n target,\n component\n } = props;\n const divRef = React.useRef(null);\n const [color, setWaveColor] = React.useState(null);\n const [borderRadius, setBorderRadius] = React.useState([]);\n const [left, setLeft] = React.useState(0);\n const [top, setTop] = React.useState(0);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [enabled, setEnabled] = React.useState(false);\n const waveStyle = {\n left,\n top,\n width,\n height,\n borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n };\n if (color) {\n waveStyle['--wave-color'] = color;\n }\n function syncPos() {\n const nodeStyle = getComputedStyle(target);\n // Get wave color from target\n setWaveColor(getTargetWaveColor(target));\n const isStatic = nodeStyle.position === 'static';\n // Rect\n const {\n borderLeftWidth,\n borderTopWidth\n } = nodeStyle;\n setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n setWidth(target.offsetWidth);\n setHeight(target.offsetHeight);\n // Get border radius\n const {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n } = nodeStyle;\n setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n }\n React.useEffect(() => {\n if (target) {\n // We need delay to check position here\n // since UI may change after click\n const id = raf(() => {\n syncPos();\n setEnabled(true);\n });\n // Add resize observer to follow size\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(syncPos);\n resizeObserver.observe(target);\n }\n return () => {\n raf.cancel(id);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n }, []);\n if (!enabled) {\n return null;\n }\n const isSmallComponent = (component === 'Checkbox' || component === 'Radio') && (target === null || target === void 0 ? void 0 : target.classList.contains(TARGET_CLS));\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionAppear: true,\n motionName: \"wave-motion\",\n motionDeadline: 5000,\n onAppearEnd: (_, event) => {\n var _a;\n if (event.deadline || event.propertyName === 'opacity') {\n const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n unmount(holder).then(() => {\n holder === null || holder === void 0 ? void 0 : holder.remove();\n });\n }\n return false;\n }\n }, (_ref, ref) => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(divRef, ref),\n className: classNames(className, motionClassName, {\n 'wave-quick': isSmallComponent\n }),\n style: waveStyle\n });\n });\n};\nconst showWaveEffect = (target, info) => {\n var _a;\n const {\n component\n } = info;\n // Skip for unchecked checkbox\n if (component === 'Checkbox' && !((_a = target.querySelector('input')) === null || _a === void 0 ? void 0 : _a.checked)) {\n return;\n }\n // Create holder\n const holder = document.createElement('div');\n holder.style.position = 'absolute';\n holder.style.left = '0px';\n holder.style.top = '0px';\n target === null || target === void 0 ? void 0 : target.insertBefore(holder, target === null || target === void 0 ? void 0 : target.firstChild);\n render(/*#__PURE__*/React.createElement(WaveEffect, Object.assign({}, info, {\n target: target\n })), holder);\n};\nexport default showWaveEffect;","// This icon file is generated automatically.\nvar ZoomOutOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-out\", \"theme\": \"outlined\" };\nexport default ZoomOutOutlined;\n","'use strict'\n\nvar isObject = function isObject(val) {\n return val !== null && !Array.isArray(val) && typeof val === 'object'\n}\n\nvar codes = {\n // ----------------------------------------\n // By Code\n // ----------------------------------------\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut',\n}\n\n// Function Keys (F1-24)\nfor (var i = 0; i < 24; i += 1) {\n codes[112 + i] = 'F' + (i + 1)\n}\n\n// Alphabet (a-Z)\nfor (var j = 0; j < 26; j += 1) {\n var n = j + 65\n codes[n] = [String.fromCharCode(n + 32), String.fromCharCode(n)]\n}\n\nvar keyboardKey = {\n codes: codes,\n\n /**\n * Get the `keyCode` or `which` value from a keyboard event or `key` name.\n * @param {string|object} eventOrKey A keyboard event-like object or `key` name.\n * @param {string} [eventOrKey.key] If object, it must have one of these keys.\n * @param {number} [eventOrKey.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrKey.which] If object, it must have one of these keys.\n * @returns {number|undefined}\n */\n getCode: function getCode(eventOrKey) {\n if (isObject(eventOrKey)) {\n return eventOrKey.keyCode || eventOrKey.which || this[eventOrKey.key]\n }\n return this[eventOrKey]\n },\n\n /**\n * Get the key name from a keyboard event, `keyCode`, or `which` value.\n * @param {number|object} eventOrCode A keyboard event-like object or key code.\n * @param {string} [eventOrCode.key] If object with a `key` name, it will be returned.\n * @param {number} [eventOrCode.keyCode] If object, it must have one of these keys.\n * @param {number} [eventOrCode.which] If object, it must have one of these keys.\n * @param {boolean} [eventOrCode.shiftKey] If object, it must have one of these keys.\n * @returns {string|undefined}\n */\n getKey: function getKey(eventOrCode) {\n var isEvent = isObject(eventOrCode)\n\n // handle events with a `key` already defined\n if (isEvent && eventOrCode.key) {\n return eventOrCode.key\n }\n\n var name = codes[isEvent ? eventOrCode.keyCode || eventOrCode.which : eventOrCode]\n\n if (Array.isArray(name)) {\n if (isEvent) {\n name = name[eventOrCode.shiftKey ? 1 : 0]\n } else {\n name = name[0]\n }\n }\n\n return name\n },\n\n // ----------------------------------------\n // By Name\n // ----------------------------------------\n // declare these manually for static analysis\n Cancel: 3,\n Help: 6,\n Backspace: 8,\n Tab: 9,\n Clear: 12,\n Enter: 13,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Pause: 19,\n CapsLock: 20,\n Escape: 27,\n Convert: 28,\n NonConvert: 29,\n Accept: 30,\n ModeChange: 31,\n ' ': 32,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n Select: 41,\n Print: 42,\n Execute: 43,\n PrintScreen: 44,\n Insert: 45,\n Delete: 46,\n 0: 48,\n ')': 48,\n 1: 49,\n '!': 49,\n 2: 50,\n '@': 50,\n 3: 51,\n '#': 51,\n 4: 52,\n $: 52,\n 5: 53,\n '%': 53,\n 6: 54,\n '^': 54,\n 7: 55,\n '&': 55,\n 8: 56,\n '*': 56,\n 9: 57,\n '(': 57,\n a: 65,\n A: 65,\n b: 66,\n B: 66,\n c: 67,\n C: 67,\n d: 68,\n D: 68,\n e: 69,\n E: 69,\n f: 70,\n F: 70,\n g: 71,\n G: 71,\n h: 72,\n H: 72,\n i: 73,\n I: 73,\n j: 74,\n J: 74,\n k: 75,\n K: 75,\n l: 76,\n L: 76,\n m: 77,\n M: 77,\n n: 78,\n N: 78,\n o: 79,\n O: 79,\n p: 80,\n P: 80,\n q: 81,\n Q: 81,\n r: 82,\n R: 82,\n s: 83,\n S: 83,\n t: 84,\n T: 84,\n u: 85,\n U: 85,\n v: 86,\n V: 86,\n w: 87,\n W: 87,\n x: 88,\n X: 88,\n y: 89,\n Y: 89,\n z: 90,\n Z: 90,\n OS: 91,\n ContextMenu: 93,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n F13: 124,\n F14: 125,\n F15: 126,\n F16: 127,\n F17: 128,\n F18: 129,\n F19: 130,\n F20: 131,\n F21: 132,\n F22: 133,\n F23: 134,\n F24: 135,\n NumLock: 144,\n ScrollLock: 145,\n VolumeMute: 181,\n VolumeDown: 182,\n VolumeUp: 183,\n ';': 186,\n ':': 186,\n '=': 187,\n '+': 187,\n ',': 188,\n '<': 188,\n '-': 189,\n _: 189,\n '.': 190,\n '>': 190,\n '/': 191,\n '?': 191,\n '`': 192,\n '~': 192,\n '[': 219,\n '{': 219,\n '\\\\': 220,\n '|': 220,\n ']': 221,\n '}': 221,\n \"'\": 222,\n '\"': 222,\n Meta: 224,\n AltGraph: 225,\n Attn: 246,\n CrSel: 247,\n ExSel: 248,\n EraseEof: 249,\n Play: 250,\n ZoomOut: 251,\n}\n\n// ----------------------------------------\n// By Alias\n// ----------------------------------------\n// provide dot-notation accessible keys for all key names\nkeyboardKey.Spacebar = keyboardKey[' ']\nkeyboardKey.Digit0 = keyboardKey['0']\nkeyboardKey.Digit1 = keyboardKey['1']\nkeyboardKey.Digit2 = keyboardKey['2']\nkeyboardKey.Digit3 = keyboardKey['3']\nkeyboardKey.Digit4 = keyboardKey['4']\nkeyboardKey.Digit5 = keyboardKey['5']\nkeyboardKey.Digit6 = keyboardKey['6']\nkeyboardKey.Digit7 = keyboardKey['7']\nkeyboardKey.Digit8 = keyboardKey['8']\nkeyboardKey.Digit9 = keyboardKey['9']\nkeyboardKey.Tilde = keyboardKey['~']\nkeyboardKey.GraveAccent = keyboardKey['`']\nkeyboardKey.ExclamationPoint = keyboardKey['!']\nkeyboardKey.AtSign = keyboardKey['@']\nkeyboardKey.PoundSign = keyboardKey['#']\nkeyboardKey.PercentSign = keyboardKey['%']\nkeyboardKey.Caret = keyboardKey['^']\nkeyboardKey.Ampersand = keyboardKey['&']\nkeyboardKey.PlusSign = keyboardKey['+']\nkeyboardKey.MinusSign = keyboardKey['-']\nkeyboardKey.EqualsSign = keyboardKey['=']\nkeyboardKey.DivisionSign = keyboardKey['/']\nkeyboardKey.MultiplicationSign = keyboardKey['*']\nkeyboardKey.Comma = keyboardKey[',']\nkeyboardKey.Decimal = keyboardKey['.']\nkeyboardKey.Colon = keyboardKey[':']\nkeyboardKey.Semicolon = keyboardKey[';']\nkeyboardKey.Pipe = keyboardKey['|']\nkeyboardKey.BackSlash = keyboardKey['\\\\']\nkeyboardKey.QuestionMark = keyboardKey['?']\nkeyboardKey.SingleQuote = keyboardKey[\"'\"]\nkeyboardKey.DoubleQuote = keyboardKey['\"']\nkeyboardKey.LeftCurlyBrace = keyboardKey['{']\nkeyboardKey.RightCurlyBrace = keyboardKey['}']\nkeyboardKey.LeftParenthesis = keyboardKey['(']\nkeyboardKey.RightParenthesis = keyboardKey[')']\nkeyboardKey.LeftAngleBracket = keyboardKey['<']\nkeyboardKey.RightAngleBracket = keyboardKey['>']\nkeyboardKey.LeftSquareBracket = keyboardKey['[']\nkeyboardKey.RightSquareBracket = keyboardKey[']']\n\nmodule.exports = keyboardKey\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./configureStore.prod');\n} else {\n module.exports = require('./configureStore.dev');\n}\n","export type ColorThemes = 'light' | 'dark' | 'system';\n\nexport const appColorThemeManager = {\n localStorageKey: 'colorTheme',\n baseEl: document.documentElement,\n\n handleSystemThemeChange(event: MediaQueryListEvent) {\n const newColorScheme = event.matches ? 'dark' : 'light';\n\n this.handleThemeToggle(newColorScheme);\n },\n\n initSystemThemeChangeListener() {\n this.removeSystemThemeChangeListener();\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', this.handleSystemThemeChange.bind(this));\n },\n\n removeSystemThemeChangeListener() {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .removeEventListener('change', this.handleSystemThemeChange.bind(this));\n },\n\n addDarkClass() {\n this.baseEl.classList.add('dark');\n },\n\n removeDarkClass() {\n this.baseEl.classList.remove('dark');\n },\n\n addSystemClass() {\n this.baseEl.classList.add('system');\n },\n\n removeSystemClass() {\n this.baseEl.classList.remove('system');\n },\n\n getCurrentElColorTheme() {\n if (this.baseEl.classList.contains('system')) {\n return 'system';\n }\n\n if (this.baseEl.classList.contains('dark')) {\n return 'dark';\n }\n\n return 'light';\n },\n\n isSystemDarkMode() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n },\n\n handleThemeToggle(colorTheme: ColorThemes) {\n switch (colorTheme) {\n case 'light': {\n this.removeDarkClass();\n this.removeSystemClass();\n break;\n }\n\n case 'dark': {\n this.addDarkClass();\n this.removeSystemClass();\n break;\n }\n\n case 'system': {\n const isSystemDarkMode = window.matchMedia(\n '(prefers-color-scheme: dark)',\n ).matches;\n\n if (isSystemDarkMode) {\n this.addDarkClass();\n } else {\n this.removeDarkClass();\n }\n\n this.addSystemClass();\n\n break;\n }\n\n default: {\n console.error(`Passed unsupported colorTheme ${colorTheme}`);\n }\n }\n },\n\n getColorThemeForProvider(colorTheme: ColorThemes | null | undefined) {\n switch (colorTheme) {\n case 'light': {\n return 'light';\n }\n\n case 'dark': {\n return 'dark';\n }\n\n case 'system': {\n return this.isSystemDarkMode() ? 'dark' : 'light';\n }\n\n default: {\n return 'light';\n }\n }\n },\n};\n","import * as React from 'react';\nconst fullClone = Object.assign({}, React);\nconst {\n useId\n} = fullClone;\nconst useEmptyId = () => '';\nconst useThemeKey = typeof useId === 'undefined' ? useEmptyId : useId;\nexport default useThemeKey;","/** 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 * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\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\nmodule.exports = isObjectLike;\n","export default __webpack_public_path__ + \"fa074a9ae8c63ee6e3c2dde1fdc97ec8.svg\";","module.exports = __webpack_public_path__ + \"53e3600928916423671f3388e2d67844.js\";","import { useEffect } from 'react';\nimport useTimeoutFn from './useTimeoutFn';\nexport default function useDebounce(fn, ms, deps) {\n if (ms === void 0) { ms = 0; }\n if (deps === void 0) { deps = []; }\n var _a = useTimeoutFn(fn, ms), isReady = _a[0], cancel = _a[1], reset = _a[2];\n useEffect(reset, deps);\n return [isReady, cancel];\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nvar BEAT_LIMIT = 1000 * 60 * 10;\n\n/**\n * A helper class to map keys to values.\n * It supports both primitive keys and object keys.\n */\nvar ArrayKeyMap = /*#__PURE__*/function () {\n function ArrayKeyMap() {\n _classCallCheck(this, ArrayKeyMap);\n _defineProperty(this, \"map\", new Map());\n // Use WeakMap to avoid memory leak\n _defineProperty(this, \"objectIDMap\", new WeakMap());\n _defineProperty(this, \"nextID\", 0);\n _defineProperty(this, \"lastAccessBeat\", new Map());\n // We will clean up the cache when reach the limit\n _defineProperty(this, \"accessBeat\", 0);\n }\n _createClass(ArrayKeyMap, [{\n key: \"set\",\n value: function set(keys, value) {\n // New set will trigger clear\n this.clear();\n\n // Set logic\n var compositeKey = this.getCompositeKey(keys);\n this.map.set(compositeKey, value);\n this.lastAccessBeat.set(compositeKey, Date.now());\n }\n }, {\n key: \"get\",\n value: function get(keys) {\n var compositeKey = this.getCompositeKey(keys);\n var cache = this.map.get(compositeKey);\n this.lastAccessBeat.set(compositeKey, Date.now());\n this.accessBeat += 1;\n return cache;\n }\n }, {\n key: \"getCompositeKey\",\n value: function getCompositeKey(keys) {\n var _this = this;\n var ids = keys.map(function (key) {\n if (key && _typeof(key) === 'object') {\n return \"obj_\".concat(_this.getObjectID(key));\n }\n return \"\".concat(_typeof(key), \"_\").concat(key);\n });\n return ids.join('|');\n }\n }, {\n key: \"getObjectID\",\n value: function getObjectID(obj) {\n if (this.objectIDMap.has(obj)) {\n return this.objectIDMap.get(obj);\n }\n var id = this.nextID;\n this.objectIDMap.set(obj, id);\n this.nextID += 1;\n return id;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this2 = this;\n if (this.accessBeat > 10000) {\n var now = Date.now();\n this.lastAccessBeat.forEach(function (beat, key) {\n if (now - beat > BEAT_LIMIT) {\n _this2.map.delete(key);\n _this2.lastAccessBeat.delete(key);\n }\n });\n this.accessBeat = 0;\n }\n }\n }]);\n return ArrayKeyMap;\n}();\nvar uniqueMap = new ArrayKeyMap();\n\n/**\n * Like `useMemo`, but this hook result will be shared across all instances.\n */\nfunction useUniqueMemo(memoFn, deps) {\n return React.useMemo(function () {\n var cachedValue = uniqueMap.get(deps);\n if (cachedValue) {\n return cachedValue;\n }\n var newValue = memoFn();\n uniqueMap.set(deps, newValue);\n return newValue;\n }, deps);\n}\nexport default useUniqueMemo;","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","import { unit } from '@ant-design/cssinjs';\nimport { genStyleHooks } from '../../theme/internal';\nconst genLayoutStyle = token => {\n const {\n antCls,\n // .ant\n componentCls,\n // .ant-layout\n colorText,\n footerBg,\n headerHeight,\n headerPadding,\n headerColor,\n footerPadding,\n fontSize,\n bodyBg,\n headerBg\n } = token;\n return {\n [componentCls]: {\n display: 'flex',\n flex: 'auto',\n flexDirection: 'column',\n /* fix firefox can't set height smaller than content on flex item */\n minHeight: 0,\n background: bodyBg,\n '&, *': {\n boxSizing: 'border-box'\n },\n [`&${componentCls}-has-sider`]: {\n flexDirection: 'row',\n [`> ${componentCls}, > ${componentCls}-content`]: {\n // https://segmentfault.com/a/1190000019498300\n width: 0\n }\n },\n [`${componentCls}-header, &${componentCls}-footer`]: {\n flex: '0 0 auto'\n },\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n },\n // ==================== Header ====================\n [`${componentCls}-header`]: {\n height: headerHeight,\n padding: headerPadding,\n color: headerColor,\n lineHeight: unit(headerHeight),\n background: headerBg,\n // Other components/menu/style/index.less line:686\n // Integration with header element so menu items have the same height\n [`${antCls}-menu`]: {\n lineHeight: 'inherit'\n }\n },\n // ==================== Footer ====================\n [`${componentCls}-footer`]: {\n padding: footerPadding,\n color: colorText,\n fontSize,\n background: footerBg\n },\n // =================== Content ====================\n [`${componentCls}-content`]: {\n flex: 'auto',\n color: colorText,\n // fix firefox can't set height smaller than content on flex item\n minHeight: 0\n }\n };\n};\nexport const prepareComponentToken = token => {\n const {\n colorBgLayout,\n controlHeight,\n controlHeightLG,\n colorText,\n controlHeightSM,\n marginXXS,\n colorTextLightSolid,\n colorBgContainer\n } = token;\n const paddingInline = controlHeightLG * 1.25;\n return {\n // Deprecated\n colorBgHeader: '#001529',\n colorBgBody: colorBgLayout,\n colorBgTrigger: '#002140',\n bodyBg: colorBgLayout,\n headerBg: '#001529',\n headerHeight: controlHeight * 2,\n headerPadding: `0 ${paddingInline}px`,\n headerColor: colorText,\n footerPadding: `${controlHeightSM}px ${paddingInline}px`,\n footerBg: colorBgLayout,\n siderBg: '#001529',\n triggerHeight: controlHeightLG + marginXXS * 2,\n triggerBg: '#002140',\n triggerColor: colorTextLightSolid,\n zeroTriggerWidth: controlHeightLG,\n zeroTriggerHeight: controlHeightLG,\n lightSiderBg: colorBgContainer,\n lightTriggerBg: colorBgContainer,\n lightTriggerColor: colorText\n };\n};\n// ============================== Export ==============================\nexport const DEPRECATED_TOKENS = [['colorBgBody', 'bodyBg'], ['colorBgHeader', 'headerBg'], ['colorBgTrigger', 'triggerBg']];\nexport default genStyleHooks('Layout', token => [genLayoutStyle(token)], prepareComponentToken, {\n deprecatedTokens: DEPRECATED_TOKENS\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","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\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 for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\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 if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\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\nmodule.exports = baseIsNative;\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","import { ComponentProps } from 'react';\nimport Image from 'antd/es/image';\nimport clsx from 'clsx';\n\ninterface OpImageProps extends ComponentProps<typeof Image> {}\n\nexport const OpImage = ({\n className,\n preview = false,\n ...imageProps\n}: OpImageProps) => {\n return (\n <Image\n className={clsx('op-image', className)}\n preview={preview}\n {...imageProps}\n />\n );\n};\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\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 _wrapNativeSuper from \"@babel/runtime/helpers/esm/wrapNativeSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n warning = function warning(type, errors) {\n if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n if (errors.every(function (e) {\n return typeof e === 'string';\n })) {\n console.warn(type, errors);\n }\n }\n };\n}\nexport function convertFieldsError(errors) {\n if (!errors || !errors.length) return null;\n var fields = {};\n errors.forEach(function (error) {\n var field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\nexport function format(template) {\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 var i = 0;\n var len = args.length;\n if (typeof template === 'function') {\n // eslint-disable-next-line prefer-spread\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n var str = template.replace(formatRegExp, function (x) {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\nfunction isNativeStringType(type) {\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\nexport function isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction asyncParallelArray(arr, func, callback) {\n var results = [];\n var total = 0;\n var arrLength = arr.length;\n function count(errors) {\n results.push.apply(results, _toConsumableArray(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n arr.forEach(function (a) {\n func(a, count);\n });\n}\nfunction asyncSerialArray(arr, func, callback) {\n var index = 0;\n var arrLength = arr.length;\n function next(errors) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n var original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n next([]);\n}\nfunction flattenObjArr(objArr) {\n var ret = [];\n Object.keys(objArr).forEach(function (k) {\n ret.push.apply(ret, _toConsumableArray(objArr[k] || []));\n });\n return ret;\n}\nexport var AsyncValidationError = /*#__PURE__*/function (_Error) {\n _inherits(AsyncValidationError, _Error);\n var _super = _createSuper(AsyncValidationError);\n function AsyncValidationError(errors, fields) {\n var _this;\n _classCallCheck(this, AsyncValidationError);\n _this = _super.call(this, 'Async Validation Error');\n _defineProperty(_assertThisInitialized(_this), \"errors\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"fields\", void 0);\n _this.errors = errors;\n _this.fields = fields;\n return _this;\n }\n return _createClass(AsyncValidationError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport function asyncMap(objArr, option, func, callback, source) {\n if (option.first) {\n var _pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n callback(errors);\n return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n };\n var flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n _pending.catch(function (e) {\n return e;\n });\n return _pending;\n }\n var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n var objArrKeys = Object.keys(objArr);\n var objArrLength = objArrKeys.length;\n var total = 0;\n var results = [];\n var pending = new Promise(function (resolve, reject) {\n var next = function next(errors) {\n // eslint-disable-next-line prefer-spread\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(function (key) {\n var arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(function (e) {\n return e;\n });\n return pending;\n}\nfunction isErrorObj(obj) {\n return !!(obj && obj.message !== undefined);\n}\nfunction getValue(value, path) {\n var v = value;\n for (var i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\nexport function complementError(rule, source) {\n return function (oe) {\n var fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[oe.field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue: fieldValue,\n field: oe.field || rule.fullField\n };\n };\n}\nexport function deepMerge(target, source) {\n if (source) {\n for (var s in source) {\n if (source.hasOwnProperty(s)) {\n var value = source[s];\n if (_typeof(value) === 'object' && _typeof(target[s]) === 'object') {\n target[s] = _objectSpread(_objectSpread({}, target[s]), value);\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}","module.exports = __webpack_public_path__ + \"cf26dd07f19bcb5b7efbf057a6cfeb8f.js\";","import { useEffect, useState } from 'react';\nimport { isNavigator, off, on } from './misc/util';\nimport isDeepEqual from './misc/isDeepEqual';\nvar nav = isNavigator ? navigator : undefined;\nvar isBatteryApiSupported = nav && typeof nav.getBattery === 'function';\nfunction useBatteryMock() {\n return { isSupported: false };\n}\nfunction useBattery() {\n var _a = useState({ isSupported: true, fetched: false }), state = _a[0], setState = _a[1];\n useEffect(function () {\n var isMounted = true;\n var battery = null;\n var handleChange = function () {\n if (!isMounted || !battery) {\n return;\n }\n var newState = {\n isSupported: true,\n fetched: true,\n level: battery.level,\n charging: battery.charging,\n dischargingTime: battery.dischargingTime,\n chargingTime: battery.chargingTime,\n };\n !isDeepEqual(state, newState) && setState(newState);\n };\n nav.getBattery().then(function (bat) {\n if (!isMounted) {\n return;\n }\n battery = bat;\n on(battery, 'chargingchange', handleChange);\n on(battery, 'chargingtimechange', handleChange);\n on(battery, 'dischargingtimechange', handleChange);\n on(battery, 'levelchange', handleChange);\n handleChange();\n });\n return function () {\n isMounted = false;\n if (battery) {\n off(battery, 'chargingchange', handleChange);\n off(battery, 'chargingtimechange', handleChange);\n off(battery, 'dischargingtimechange', handleChange);\n off(battery, 'levelchange', handleChange);\n }\n };\n }, []);\n return state;\n}\nexport default isBatteryApiSupported ? useBattery : useBatteryMock;\n","module.exports = __webpack_public_path__ + \"34f99cce131bd7aa65e7a924e2456006.js\";","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar number = function number(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (value === '') {\n // eslint-disable-next-line no-param-reassign\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default number;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\n\n/**![check-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xOTMuNSAzMDEuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CheckCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CheckCircleFilled';\n}\nexport default RefIcon;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n var scrollXOffset = document.documentElement.scrollLeft || document.body.scrollLeft || window.pageXOffset;\n var scrollYOffset = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;\n return {\n pageX: obj.pageX - scrollXOffset,\n pageY: obj.pageY - scrollYOffset\n };\n}\nfunction useColorDrag(props) {\n var targetRef = props.targetRef,\n containerRef = props.containerRef,\n direction = props.direction,\n onDragChange = props.onDragChange,\n onDragChangeComplete = props.onDragChangeComplete,\n calculate = props.calculate,\n color = props.color,\n disabledDrag = props.disabledDrag;\n var _useState = useState({\n x: 0,\n y: 0\n }),\n _useState2 = _slicedToArray(_useState, 2),\n offsetValue = _useState2[0],\n setOffsetValue = _useState2[1];\n var mouseMoveRef = useRef(null);\n var mouseUpRef = useRef(null);\n\n // Always get position from `color`\n useEffect(function () {\n setOffsetValue(calculate());\n }, [color]);\n useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n };\n }, []);\n var updateOffset = function updateOffset(e) {\n var _getPosition = getPosition(e),\n pageX = _getPosition.pageX,\n pageY = _getPosition.pageY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n rectX = _containerRef$current.x,\n rectY = _containerRef$current.y,\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n targetWidth = _targetRef$current$ge.width,\n targetHeight = _targetRef$current$ge.height;\n var centerOffsetX = targetWidth / 2;\n var centerOffsetY = targetHeight / 2;\n var offsetX = Math.max(0, Math.min(pageX - rectX, width)) - centerOffsetX;\n var offsetY = Math.max(0, Math.min(pageY - rectY, height)) - centerOffsetY;\n var calcOffset = {\n x: offsetX,\n y: direction === 'x' ? offsetValue.y : offsetY\n };\n\n // Exclusion of boundary cases\n if (targetWidth === 0 && targetHeight === 0 || targetWidth !== targetHeight) {\n return false;\n }\n onDragChange === null || onDragChange === void 0 || onDragChange(calcOffset);\n };\n var onDragMove = function onDragMove(e) {\n e.preventDefault();\n updateOffset(e);\n };\n var onDragStop = function onDragStop(e) {\n e.preventDefault();\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n document.removeEventListener('touchmove', mouseMoveRef.current);\n document.removeEventListener('touchend', mouseUpRef.current);\n mouseMoveRef.current = null;\n mouseUpRef.current = null;\n onDragChangeComplete === null || onDragChangeComplete === void 0 || onDragChangeComplete();\n };\n var onDragStart = function onDragStart(e) {\n // https://github.com/ant-design/ant-design/issues/43529\n document.removeEventListener('mousemove', mouseMoveRef.current);\n document.removeEventListener('mouseup', mouseUpRef.current);\n if (disabledDrag) {\n return;\n }\n updateOffset(e);\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragStop);\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragStop);\n mouseMoveRef.current = onDragMove;\n mouseUpRef.current = onDragStop;\n };\n return [offsetValue, onDragStart];\n}\nexport default useColorDrag;","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","module.exports = __webpack_public_path__ + \"d43ad5f9bad9a042b49b2592c7639c28.js\";","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\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\nexport default baseUnary;\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _VideoCameraOutlined = _interopRequireDefault(require('./lib/icons/VideoCameraOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _VideoCameraOutlined;\nexports.default = _default;\nmodule.exports = _default;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n }\n});\nconst slideMotion = {\n 'slide-up': {\n inKeyframes: slideUpIn,\n outKeyframes: slideUpOut\n },\n 'slide-down': {\n inKeyframes: slideDownIn,\n outKeyframes: slideDownOut\n },\n 'slide-left': {\n inKeyframes: slideLeftIn,\n outKeyframes: slideLeftOut\n },\n 'slide-right': {\n inKeyframes: slideRightIn,\n outKeyframes: slideRightOut\n }\n};\nexport const initSlideMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = slideMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n transformOrigin: '0% 0%',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutQuint,\n '&-prepare': {\n transform: 'scale(1)'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInQuint\n }\n }];\n};","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport IconWrapper from './IconWrapper';\nconst InnerLoadingIcon = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls,\n className,\n style,\n iconClassName\n } = props;\n const mergedIconCls = classNames(`${prefixCls}-loading-icon`, className);\n return /*#__PURE__*/React.createElement(IconWrapper, {\n prefixCls: prefixCls,\n className: mergedIconCls,\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: iconClassName\n }));\n});\nconst getCollapsedWidth = () => ({\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n});\nconst LoadingIcon = props => {\n const {\n prefixCls,\n loading,\n existIcon,\n className,\n style\n } = props;\n const visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n prefixCls: prefixCls,\n className: className,\n style: style\n });\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: `${prefixCls}-loading-icon-motion`,\n motionLeave: visible,\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, (_ref, ref) => {\n let {\n className: motionCls,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n prefixCls: prefixCls,\n className: className,\n style: Object.assign(Object.assign({}, style), motionStyle),\n ref: ref,\n iconClassName: motionCls\n });\n });\n};\nexport default LoadingIcon;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","import { unit } from '@ant-design/cssinjs';\nimport { genOverflowStyle, getMultipleSelectorUnit } from '../../select/style/multiple';\nimport { mergeToken } from '../../theme/internal';\nconst genSize = (token, suffix) => {\n const {\n componentCls,\n controlHeight\n } = token;\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n const multipleSelectorUnit = getMultipleSelectorUnit(token);\n return [\n // genSelectionStyle(token, suffix),\n {\n [`${componentCls}-multiple${suffixCls}`]: {\n paddingBlock: multipleSelectorUnit.containerPadding,\n paddingInlineStart: multipleSelectorUnit.basePadding,\n minHeight: controlHeight,\n // ======================== Selections ========================\n [`${componentCls}-selection-item`]: {\n height: multipleSelectorUnit.itemHeight,\n lineHeight: unit(multipleSelectorUnit.itemLineHeight)\n }\n }\n }];\n};\nconst genPickerMultipleStyle = token => {\n const {\n componentCls,\n calc,\n lineWidth\n } = token;\n const smallToken = mergeToken(token, {\n fontHeight: token.fontSize,\n selectHeight: token.controlHeightSM,\n multipleSelectItemHeight: token.multipleItemHeightSM,\n borderRadius: token.borderRadiusSM,\n borderRadiusSM: token.borderRadiusXS,\n controlHeight: token.controlHeightSM\n });\n const largeToken = mergeToken(token, {\n fontHeight: calc(token.multipleItemHeightLG).sub(calc(lineWidth).mul(2).equal()).equal(),\n fontSize: token.fontSizeLG,\n selectHeight: token.controlHeightLG,\n multipleSelectItemHeight: token.multipleItemHeightLG,\n borderRadius: token.borderRadiusLG,\n borderRadiusSM: token.borderRadius,\n controlHeight: token.controlHeightLG\n });\n return [\n // ======================== Size ========================\n genSize(smallToken, 'small'), genSize(token), genSize(largeToken, 'large'),\n // ====================== Selection ======================\n {\n [`${componentCls}${componentCls}-multiple`]: Object.assign(Object.assign({\n width: '100%',\n cursor: 'text',\n // ==================== Selector =====================\n [`${componentCls}-selector`]: {\n flex: 'auto',\n padding: 0,\n position: 'relative',\n '&:after': {\n margin: 0\n },\n // ================== placeholder ==================\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: token.inputPaddingHorizontalBase,\n insetInlineEnd: 0,\n transform: 'translateY(-50%)',\n transition: `all ${token.motionDurationSlow}`,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n flex: 1,\n color: token.colorTextPlaceholder,\n pointerEvents: 'none'\n }\n }\n }, genOverflowStyle(token)), {\n // ====================== Input ======================\n // Input is `readonly`, which is used for a11y only\n [`${componentCls}-multiple-input`]: {\n width: 0,\n height: 0,\n border: 0,\n visibility: 'hidden',\n position: 'absolute',\n zIndex: -1\n }\n })\n }];\n};\nexport default genPickerMultipleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nconst genPickerCellInnerStyle = token => {\n const {\n pickerCellCls,\n pickerCellInnerCls,\n cellHeight,\n borderRadiusSM,\n motionDurationMid,\n cellHoverBg,\n lineWidth,\n lineType,\n colorPrimary,\n cellActiveWithRangeBg,\n colorTextLightSolid,\n colorTextDisabled,\n cellBgDisabled,\n colorFillSecondary\n } = token;\n return {\n '&::before': {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: cellHeight,\n transform: 'translateY(-50%)',\n content: '\"\"'\n },\n // >>> Default\n [pickerCellInnerCls]: {\n position: 'relative',\n zIndex: 2,\n display: 'inline-block',\n minWidth: cellHeight,\n height: cellHeight,\n lineHeight: unit(cellHeight),\n borderRadius: borderRadiusSM,\n transition: `background ${motionDurationMid}`\n },\n // >>> Hover\n [`&:hover:not(${pickerCellCls}-in-view):not(${pickerCellCls}-disabled),\n &:hover:not(${pickerCellCls}-selected):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end):not(${pickerCellCls}-disabled)`]: {\n [pickerCellInnerCls]: {\n background: cellHoverBg\n }\n },\n // >>> Today\n [`&-in-view${pickerCellCls}-today ${pickerCellInnerCls}`]: {\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 1,\n border: `${unit(lineWidth)} ${lineType} ${colorPrimary}`,\n borderRadius: borderRadiusSM,\n content: '\"\"'\n }\n },\n // >>> In Range\n [`&-in-view${pickerCellCls}-in-range,\n &-in-view${pickerCellCls}-range-start,\n &-in-view${pickerCellCls}-range-end`]: {\n position: 'relative',\n [`&:not(${pickerCellCls}-disabled):before`]: {\n background: cellActiveWithRangeBg\n }\n },\n // >>> Selected\n [`&-in-view${pickerCellCls}-selected,\n &-in-view${pickerCellCls}-range-start,\n &-in-view${pickerCellCls}-range-end`]: {\n [`&:not(${pickerCellCls}-disabled) ${pickerCellInnerCls}`]: {\n color: colorTextLightSolid,\n background: colorPrimary\n },\n [`&${pickerCellCls}-disabled ${pickerCellInnerCls}`]: {\n background: colorFillSecondary\n }\n },\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-disabled):before`]: {\n insetInlineStart: '50%'\n },\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-disabled):before`]: {\n insetInlineEnd: '50%'\n },\n // range start border-radius\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-end) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n },\n // range end border-radius\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-start) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n // >>> Disabled\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n [pickerCellInnerCls]: {\n background: 'transparent'\n },\n '&::before': {\n background: cellBgDisabled\n }\n },\n [`&-disabled${pickerCellCls}-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextDisabled\n }\n };\n};\nexport const genPanelStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerYearMonthCellWidth,\n pickerControlIconSize,\n cellWidth,\n paddingSM,\n paddingXS,\n paddingXXS,\n colorBgContainer,\n lineWidth,\n lineType,\n borderRadiusLG,\n colorPrimary,\n colorTextHeading,\n colorSplit,\n pickerControlIconBorderWidth,\n colorIcon,\n textHeight,\n motionDurationMid,\n colorIconHover,\n fontWeightStrong,\n cellHeight,\n pickerCellPaddingVertical,\n colorTextDisabled,\n colorText,\n fontSize,\n motionDurationSlow,\n withoutTimeCellHeight,\n pickerQuarterPanelContentHeight,\n borderRadiusSM,\n colorTextLightSolid,\n cellHoverBg,\n timeColumnHeight,\n timeColumnWidth,\n timeCellHeight,\n controlItemBgActive,\n marginXXS,\n pickerDatePanelPaddingHorizontal,\n pickerControlIconMargin\n } = token;\n const pickerPanelWidth = token.calc(cellWidth).mul(7).add(token.calc(pickerDatePanelPaddingHorizontal).mul(2)).equal();\n return {\n [componentCls]: {\n '&-panel': {\n display: 'inline-flex',\n flexDirection: 'column',\n textAlign: 'center',\n background: colorBgContainer,\n borderRadius: borderRadiusLG,\n outline: 'none',\n '&-focused': {\n borderColor: colorPrimary\n },\n '&-rtl': {\n [`${componentCls}-prev-icon,\n ${componentCls}-super-prev-icon`]: {\n transform: 'rotate(45deg)'\n },\n [`${componentCls}-next-icon,\n ${componentCls}-super-next-icon`]: {\n transform: 'rotate(-135deg)'\n },\n [`${componentCls}-time-panel`]: {\n [`${componentCls}-content`]: {\n direction: 'ltr',\n '> *': {\n direction: 'rtl'\n }\n }\n }\n }\n },\n // ========================================================\n // = Shared Panel =\n // ========================================================\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel`]: {\n display: 'flex',\n flexDirection: 'column',\n width: pickerPanelWidth\n },\n // ======================= Header =======================\n '&-header': {\n display: 'flex',\n padding: `0 ${unit(paddingXS)}`,\n color: colorTextHeading,\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n '> *': {\n flex: 'none'\n },\n button: {\n padding: 0,\n color: colorIcon,\n lineHeight: unit(textHeight),\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n transition: `color ${motionDurationMid}`,\n fontSize: 'inherit',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n '> button': {\n minWidth: '1.6em',\n fontSize,\n '&:hover': {\n color: colorIconHover\n },\n '&:disabled': {\n opacity: 0.25,\n pointerEvents: 'none'\n }\n },\n '&-view': {\n flex: 'auto',\n fontWeight: fontWeightStrong,\n lineHeight: unit(textHeight),\n '> button': {\n color: 'inherit',\n fontWeight: 'inherit',\n '&:not(:first-child)': {\n marginInlineStart: paddingXS\n },\n '&:hover': {\n color: colorPrimary\n }\n }\n }\n },\n // Arrow button\n [`&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon`]: {\n position: 'relative',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: `0 solid currentcolor`,\n borderBlockWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n borderInlineWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n content: '\"\"'\n }\n },\n [`&-super-prev-icon,\n &-super-next-icon`]: {\n '&::after': {\n position: 'absolute',\n top: pickerControlIconMargin,\n insetInlineStart: pickerControlIconMargin,\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: '0 solid currentcolor',\n borderBlockWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n borderInlineWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n content: '\"\"'\n }\n },\n '&-prev-icon, &-super-prev-icon': {\n transform: 'rotate(-45deg)'\n },\n '&-next-icon, &-super-next-icon': {\n transform: 'rotate(135deg)'\n },\n // ======================== Body ========================\n '&-content': {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n 'th, td': {\n position: 'relative',\n minWidth: cellHeight,\n fontWeight: 'normal'\n },\n th: {\n height: token.calc(cellHeight).add(token.calc(pickerCellPaddingVertical).mul(2)).equal(),\n color: colorText,\n verticalAlign: 'middle'\n }\n },\n '&-cell': Object.assign({\n padding: `${unit(pickerCellPaddingVertical)} 0`,\n color: colorTextDisabled,\n cursor: 'pointer',\n // In view\n '&-in-view': {\n color: colorText\n }\n }, genPickerCellInnerStyle(token)),\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-content`]: {\n height: token.calc(withoutTimeCellHeight).mul(4).equal()\n },\n [pickerCellInnerCls]: {\n padding: `0 ${unit(paddingXS)}`\n }\n },\n '&-quarter-panel': {\n [`${componentCls}-content`]: {\n height: pickerQuarterPanelContentHeight\n }\n },\n // ========================================================\n // = Special =\n // ========================================================\n // ===================== Decade Panel =====================\n '&-decade-panel': {\n [pickerCellInnerCls]: {\n padding: `0 ${unit(token.calc(paddingXS).div(2).equal())}`\n },\n [`${componentCls}-cell::before`]: {\n display: 'none'\n }\n },\n // ============= Year & Quarter & Month Panel =============\n [`&-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-body`]: {\n padding: `0 ${unit(paddingXS)}`\n },\n [pickerCellInnerCls]: {\n width: pickerYearMonthCellWidth\n }\n },\n // ====================== Date Panel ======================\n '&-date-panel': {\n [`${componentCls}-body`]: {\n padding: `${unit(paddingXS)} ${unit(pickerDatePanelPaddingHorizontal)}`\n },\n [`${componentCls}-content th`]: {\n boxSizing: 'border-box',\n padding: 0\n }\n },\n // ====================== Week Panel ======================\n '&-week-panel': {\n // Clear cell style\n [`${componentCls}-cell`]: {\n [`&:hover ${pickerCellInnerCls},\n &-selected ${pickerCellInnerCls},\n ${pickerCellInnerCls}`]: {\n background: 'transparent !important'\n }\n },\n '&-row': {\n td: {\n '&:before': {\n transition: `background ${motionDurationMid}`\n },\n '&:first-child:before': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child:before': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover td': {\n '&:before': {\n background: cellHoverBg\n }\n },\n '&-range-start td, &-range-end td, &-selected td, &-hover td': {\n // Rise priority to override hover style\n [`&${pickerCellCls}`]: {\n '&:before': {\n background: colorPrimary\n },\n [`&${componentCls}-cell-week`]: {\n color: new TinyColor(colorTextLightSolid).setAlpha(0.5).toHexString()\n },\n [pickerCellInnerCls]: {\n color: colorTextLightSolid\n }\n }\n },\n '&-range-hover td:before': {\n background: controlItemBgActive\n }\n }\n },\n // >>> ShowWeek\n '&-week-panel, &-date-panel-show-week': {\n [`${componentCls}-body`]: {\n padding: `${unit(paddingXS)} ${unit(paddingSM)}`\n },\n [`${componentCls}-content th`]: {\n width: 'auto'\n }\n },\n // ==================== Datetime Panel ====================\n '&-datetime-panel': {\n display: 'flex',\n [`${componentCls}-time-panel`]: {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n },\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n transition: `opacity ${motionDurationSlow}`\n },\n // Keyboard\n '&-active': {\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n opacity: 0.3,\n '&-active': {\n opacity: 1\n }\n }\n }\n },\n // ====================== Time Panel ======================\n '&-time-panel': {\n width: 'auto',\n minWidth: 'auto',\n [`${componentCls}-content`]: {\n display: 'flex',\n flex: 'auto',\n height: timeColumnHeight\n },\n '&-column': {\n flex: '1 0 auto',\n width: timeColumnWidth,\n margin: `${unit(paddingXXS)} 0`,\n padding: 0,\n overflowY: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n transition: `background ${motionDurationMid}`,\n overflowX: 'hidden',\n '&::-webkit-scrollbar': {\n width: 8,\n backgroundColor: 'transparent'\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: token.colorTextTertiary,\n borderRadius: token.borderRadiusSM\n },\n // For Firefox\n '&': {\n scrollbarWidth: 'thin',\n scrollbarColor: `${token.colorTextTertiary} transparent`\n },\n '&::after': {\n display: 'block',\n height: token.calc('100%').sub(timeCellHeight).equal(),\n content: '\"\"'\n },\n '&:not(:first-child)': {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n },\n '&-active': {\n background: new TinyColor(controlItemBgActive).setAlpha(0.2).toHexString()\n },\n '&:hover': {\n overflowY: 'auto'\n },\n '> li': {\n margin: 0,\n padding: 0,\n [`&${componentCls}-time-panel-cell`]: {\n marginInline: marginXXS,\n [`${componentCls}-time-panel-cell-inner`]: {\n display: 'block',\n width: token.calc(timeColumnWidth).sub(token.calc(marginXXS).mul(2)).equal(),\n height: timeCellHeight,\n margin: 0,\n paddingBlock: 0,\n paddingInlineEnd: 0,\n paddingInlineStart: token.calc(timeColumnWidth).sub(timeCellHeight).div(2).equal(),\n color: colorText,\n lineHeight: unit(timeCellHeight),\n borderRadius: borderRadiusSM,\n cursor: 'pointer',\n transition: `background ${motionDurationMid}`,\n '&:hover': {\n background: cellHoverBg\n }\n },\n '&-selected': {\n [`${componentCls}-time-panel-cell-inner`]: {\n background: controlItemBgActive\n }\n },\n '&-disabled': {\n [`${componentCls}-time-panel-cell-inner`]: {\n color: colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n }\n }\n }\n }\n }\n };\n};\nconst genPickerPanelStyle = token => {\n const {\n componentCls,\n textHeight,\n lineWidth,\n paddingSM,\n antCls,\n colorPrimary,\n cellActiveWithRangeBg,\n colorPrimaryBorder,\n lineType,\n colorSplit\n } = token;\n return {\n [`${componentCls}-dropdown`]: {\n // ======================== Footer ========================\n [`${componentCls}-footer`]: {\n borderTop: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n '&-extra': {\n padding: `0 ${unit(paddingSM)}`,\n lineHeight: unit(token.calc(textHeight).sub(token.calc(lineWidth).mul(2)).equal()),\n textAlign: 'start',\n '&:not(:last-child)': {\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n }\n }\n },\n // ==================== Footer > Ranges ===================\n [`${componentCls}-panels + ${componentCls}-footer ${componentCls}-ranges`]: {\n justifyContent: 'space-between'\n },\n [`${componentCls}-ranges`]: {\n marginBlock: 0,\n paddingInline: unit(paddingSM),\n overflow: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '> li': {\n lineHeight: unit(token.calc(textHeight).sub(token.calc(lineWidth).mul(2)).equal()),\n display: 'inline-block'\n },\n [`${componentCls}-now-btn-disabled`]: {\n pointerEvents: 'none',\n color: token.colorTextDisabled\n },\n // https://github.com/ant-design/ant-design/issues/23687\n [`${componentCls}-preset > ${antCls}-tag-blue`]: {\n color: colorPrimary,\n background: cellActiveWithRangeBg,\n borderColor: colorPrimaryBorder,\n cursor: 'pointer'\n },\n [`${componentCls}-ok`]: {\n paddingBlock: token.calc(lineWidth).mul(2).equal(),\n marginInlineStart: 'auto'\n }\n }\n }\n };\n};\nexport default genPickerPanelStyle;","import { TinyColor } from '@ctrl/tinycolor';\nimport { initComponentToken } from '../../input/style/token';\nimport { getArrowToken } from '../../style/roundedArrow';\nexport const initPickerPanelToken = token => {\n const {\n componentCls,\n controlHeightLG,\n paddingXXS,\n padding\n } = token;\n return {\n pickerCellCls: `${componentCls}-cell`,\n pickerCellInnerCls: `${componentCls}-cell-inner`,\n pickerYearMonthCellWidth: token.calc(controlHeightLG).mul(1.5).equal(),\n pickerQuarterPanelContentHeight: token.calc(controlHeightLG).mul(1.4).equal(),\n pickerCellPaddingVertical: token.calc(paddingXXS).add(token.calc(paddingXXS).div(2)).equal(),\n pickerCellBorderGap: 2,\n // Magic for gap between cells\n pickerControlIconSize: 7,\n pickerControlIconMargin: 4,\n pickerControlIconBorderWidth: 1.5,\n pickerDatePanelPaddingHorizontal: token.calc(padding).add(token.calc(paddingXXS).div(2)).equal() // 18 in normal\n };\n};\nexport const initPanelComponentToken = token => {\n const {\n colorBgContainerDisabled,\n controlHeight,\n controlHeightSM,\n controlHeightLG,\n paddingXXS,\n lineWidth\n } = token;\n // Item height default use `controlHeight - 2 * paddingXXS`,\n // but some case `paddingXXS=0`.\n // Let's fallback it.\n const dblPaddingXXS = paddingXXS * 2;\n const dblLineWidth = lineWidth * 2;\n const multipleItemHeight = Math.min(controlHeight - dblPaddingXXS, controlHeight - dblLineWidth);\n const multipleItemHeightSM = Math.min(controlHeightSM - dblPaddingXXS, controlHeightSM - dblLineWidth);\n const multipleItemHeightLG = Math.min(controlHeightLG - dblPaddingXXS, controlHeightLG - dblLineWidth);\n // FIXED_ITEM_MARGIN is a hardcode calculation since calc not support rounding\n const INTERNAL_FIXED_ITEM_MARGIN = Math.floor(paddingXXS / 2);\n const filledToken = {\n INTERNAL_FIXED_ITEM_MARGIN,\n cellHoverBg: token.controlItemBgHover,\n cellActiveWithRangeBg: token.controlItemBgActive,\n cellHoverWithRangeBg: new TinyColor(token.colorPrimary).lighten(35).toHexString(),\n cellRangeBorderColor: new TinyColor(token.colorPrimary).lighten(20).toHexString(),\n cellBgDisabled: colorBgContainerDisabled,\n timeColumnWidth: controlHeightLG * 1.4,\n timeColumnHeight: 28 * 8,\n timeCellHeight: 28,\n cellWidth: controlHeightSM * 1.5,\n cellHeight: controlHeightSM,\n textHeight: controlHeightLG,\n withoutTimeCellHeight: controlHeightLG * 1.65,\n multipleItemBg: token.colorFillSecondary,\n multipleItemBorderColor: 'transparent',\n multipleItemHeight,\n multipleItemHeightSM,\n multipleItemHeightLG,\n multipleSelectorBgDisabled: colorBgContainerDisabled,\n multipleItemColorDisabled: token.colorTextDisabled,\n multipleItemBorderColorDisabled: 'transparent'\n };\n return filledToken;\n};\nexport const prepareComponentToken = token => Object.assign(Object.assign(Object.assign(Object.assign({}, initComponentToken(token)), initPanelComponentToken(token)), getArrowToken(token)), {\n presetsWidth: 120,\n presetsMaxWidth: 200,\n zIndexPopup: token.zIndexPopupBase + 50\n});","import { unit } from '@ant-design/cssinjs';\nimport { genBorderlessStyle, genFilledStyle, genOutlinedStyle } from '../../input/style/variants';\nconst genVariantsStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: [Object.assign(Object.assign(Object.assign({}, genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token)),\n // ========================= Multiple =========================\n {\n '&-outlined': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n },\n '&-filled': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.colorBgContainer,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n }\n },\n '&-borderless': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n }\n }]\n };\n};\nexport default genVariantsStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genPlaceholderStyle, initInputToken } from '../../input/style';\nimport { resetComponent, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genRoundedArrow } from '../../style/roundedArrow';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genPickerMultipleStyle from './multiple';\nimport genPickerPanelStyle, { genPanelStyle } from './panel';\nimport { initPanelComponentToken, initPickerPanelToken, prepareComponentToken } from './token';\nimport genVariantsStyle from './variants';\nexport { initPickerPanelToken, initPanelComponentToken, genPanelStyle };\nconst genPickerPadding = (token, inputHeight, fontHeight, paddingHorizontal) => {\n const height = token.calc(fontHeight).add(2).equal();\n const paddingTop = token.max(token.calc(inputHeight).sub(height).div(2).equal(), 0);\n const paddingBottom = token.max(token.calc(inputHeight).sub(height).sub(paddingTop).equal(), 0);\n return {\n padding: `${unit(paddingTop)} ${unit(paddingHorizontal)} ${unit(paddingBottom)}`\n };\n};\nconst genPickerStatusStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled):not([disabled])`]: {\n [`&${componentCls}-status-error`]: {\n [`${componentCls}-active-bar`]: {\n background: colorError\n }\n },\n [`&${componentCls}-status-warning`]: {\n [`${componentCls}-active-bar`]: {\n background: colorWarning\n }\n }\n }\n };\n};\nconst genPickerStyle = token => {\n const {\n componentCls,\n antCls,\n controlHeight,\n paddingInline,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n motionDurationMid,\n colorTextDisabled,\n colorTextPlaceholder,\n controlHeightLG,\n fontSizeLG,\n controlHeightSM,\n paddingInlineSM,\n paddingXS,\n marginXS,\n colorTextDescription,\n lineWidthBold,\n colorPrimary,\n motionDurationSlow,\n zIndexPopup,\n paddingXXS,\n sizePopupArrow,\n colorBgElevated,\n borderRadiusLG,\n boxShadowSecondary,\n borderRadiusSM,\n colorSplit,\n cellHoverBg,\n presetsWidth,\n presetsMaxWidth,\n boxShadowPopoverArrow,\n fontHeight,\n fontHeightLG,\n lineHeightLG\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPickerPadding(token, controlHeight, fontHeight, paddingInline)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n lineHeight: 1,\n borderRadius,\n transition: `border ${motionDurationMid}, box-shadow ${motionDurationMid}, background ${motionDurationMid}`,\n // ======================== Input =========================\n [`${componentCls}-input`]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%',\n '> input': Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n color: 'inherit',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n transition: `all ${motionDurationMid}`\n }, genPlaceholderStyle(colorTextPlaceholder)), {\n flex: 'auto',\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n minWidth: 1,\n height: 'auto',\n padding: 0,\n background: 'transparent',\n border: 0,\n fontFamily: 'inherit',\n '&:focus': {\n boxShadow: 'none',\n outline: 0\n },\n '&[disabled]': {\n background: 'transparent',\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n }),\n '&-placeholder': {\n '> input': {\n color: colorTextPlaceholder\n }\n }\n },\n // Size\n '&-large': Object.assign(Object.assign({}, genPickerPadding(token, controlHeightLG, fontHeightLG, paddingInline)), {\n [`${componentCls}-input > input`]: {\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG\n }\n }),\n '&-small': Object.assign({}, genPickerPadding(token, controlHeightSM, fontHeight, paddingInlineSM)),\n [`${componentCls}-suffix`]: {\n display: 'flex',\n flex: 'none',\n alignSelf: 'center',\n marginInlineStart: token.calc(paddingXS).div(2).equal(),\n color: colorTextDisabled,\n lineHeight: 1,\n pointerEvents: 'none',\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top',\n '&:not(:last-child)': {\n marginInlineEnd: marginXS\n }\n }\n },\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n color: colorTextDisabled,\n lineHeight: 1,\n transform: 'translateY(-50%)',\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top'\n },\n '&:hover': {\n color: colorTextDescription\n }\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n },\n // Should use the following selector, but since `:has` has poor compatibility,\n // we use `:not(:last-child)` instead, which may cause some problems in some cases.\n // [`${componentCls}-suffix:has(+ ${componentCls}-clear)`]: {\n [`${componentCls}-suffix:not(:last-child)`]: {\n opacity: 0\n }\n },\n [`${componentCls}-separator`]: {\n position: 'relative',\n display: 'inline-block',\n width: '1em',\n height: fontSizeLG,\n color: colorTextDisabled,\n fontSize: fontSizeLG,\n verticalAlign: 'top',\n cursor: 'default',\n [`${componentCls}-focused &`]: {\n color: colorTextDescription\n },\n [`${componentCls}-range-separator &`]: {\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n }\n }\n },\n // ======================== Range =========================\n '&-range': {\n position: 'relative',\n display: 'inline-flex',\n // Active bar\n [`${componentCls}-active-bar`]: {\n bottom: token.calc(lineWidth).mul(-1).equal(),\n height: lineWidthBold,\n background: colorPrimary,\n opacity: 0,\n transition: `all ${motionDurationSlow} ease-out`,\n pointerEvents: 'none'\n },\n [`&${componentCls}-focused`]: {\n [`${componentCls}-active-bar`]: {\n opacity: 1\n }\n },\n [`${componentCls}-range-separator`]: {\n alignItems: 'center',\n padding: `0 ${unit(paddingXS)}`,\n lineHeight: 1\n }\n },\n // ======================== Clear =========================\n '&-range, &-multiple': {\n // Clear\n [`${componentCls}-clear`]: {\n insetInlineEnd: paddingInline\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: paddingInlineSM\n }\n }\n },\n // ======================= Dropdown =======================\n '&-dropdown': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPanelStyle(token)), {\n pointerEvents: 'none',\n position: 'absolute',\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n [`&${componentCls}-dropdown-hidden`]: {\n display: 'none'\n },\n '&-rtl': {\n direction: 'rtl'\n },\n [`&${componentCls}-dropdown-placement-bottomLeft,\n &${componentCls}-dropdown-placement-bottomRight`]: {\n [`${componentCls}-range-arrow`]: {\n top: 0,\n display: 'block',\n transform: 'translateY(-100%)'\n }\n },\n [`&${componentCls}-dropdown-placement-topLeft,\n &${componentCls}-dropdown-placement-topRight`]: {\n [`${componentCls}-range-arrow`]: {\n bottom: 0,\n display: 'block',\n transform: 'translateY(100%) rotate(180deg)'\n }\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n // https://github.com/ant-design/ant-design/issues/48727\n [`&${antCls}-slide-up-leave ${componentCls}-panel-container`]: {\n pointerEvents: 'none'\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n // Time picker with additional style\n [`${componentCls}-panel > ${componentCls}-time-panel`]: {\n paddingTop: paddingXXS\n },\n // ======================== Ranges ========================\n [`${componentCls}-range-wrapper`]: {\n display: 'flex',\n position: 'relative'\n },\n [`${componentCls}-range-arrow`]: Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'none',\n paddingInline: token.calc(paddingInline).mul(1.5).equal(),\n boxSizing: 'content-box',\n transition: `all ${motionDurationSlow} ease-out`\n }, genRoundedArrow(token, colorBgElevated, boxShadowPopoverArrow)), {\n '&:before': {\n insetInlineStart: token.calc(paddingInline).mul(1.5).equal()\n }\n }),\n [`${componentCls}-panel-container`]: {\n overflow: 'hidden',\n verticalAlign: 'top',\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n transition: `margin ${motionDurationSlow}`,\n display: 'inline-block',\n pointerEvents: 'auto',\n // ======================== Layout ========================\n [`${componentCls}-panel-layout`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'stretch'\n },\n // ======================== Preset ========================\n [`${componentCls}-presets`]: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: presetsWidth,\n maxWidth: presetsMaxWidth,\n ul: {\n height: 0,\n flex: 'auto',\n listStyle: 'none',\n overflow: 'auto',\n margin: 0,\n padding: paddingXS,\n borderInlineEnd: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n li: Object.assign(Object.assign({}, textEllipsis), {\n borderRadius: borderRadiusSM,\n paddingInline: paddingXS,\n paddingBlock: token.calc(controlHeightSM).sub(fontHeight).div(2).equal(),\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '+ li': {\n marginTop: marginXS\n },\n '&:hover': {\n background: cellHoverBg\n }\n })\n }\n },\n // ======================== Panels ========================\n [`${componentCls}-panels`]: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n // [`${componentCls}-panel`]: {\n // borderWidth: `0 0 ${unit(lineWidth)}`,\n // },\n '&:last-child': {\n [`${componentCls}-panel`]: {\n borderWidth: 0\n }\n }\n },\n [`${componentCls}-panel`]: {\n verticalAlign: 'top',\n background: 'transparent',\n borderRadius: 0,\n borderWidth: 0,\n [`${componentCls}-content, table`]: {\n textAlign: 'center'\n },\n '&-focused': {\n borderColor: colorBorder\n }\n }\n }\n }),\n '&-dropdown-range': {\n padding: `${unit(token.calc(sizePopupArrow).mul(2).div(3).equal())} 0`,\n '&-hidden': {\n display: 'none'\n }\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-separator`]: {\n transform: 'rotate(180deg)'\n },\n [`${componentCls}-footer`]: {\n '&-extra': {\n direction: 'rtl'\n }\n }\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\n// ============================== Export ==============================\nexport default genStyleHooks('DatePicker', token => {\n const pickerToken = mergeToken(initInputToken(token), initPickerPanelToken(token), {\n inputPaddingHorizontalBase: token.calc(token.paddingSM).sub(1).equal(),\n multipleSelectItemHeight: token.multipleItemHeight,\n selectHeight: token.controlHeight\n });\n return [genPickerPanelStyle(pickerToken), genPickerStyle(pickerToken), genVariantsStyle(pickerToken), genPickerStatusStyle(pickerToken), genPickerMultipleStyle(pickerToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n focusElCls: `${token.componentCls}-focused`\n })];\n}, prepareComponentToken);","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n var reactId = useOriginId();\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return innerId;\n};","module.exports = __webpack_public_path__ + \"d5f79987405c2169278f8de37bcc9d05.js\";","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","module.exports = __webpack_public_path__ + \"cf909ad6e321c2f98750f5c3581556f8.js\";","module.exports = __webpack_public_path__ + \"839e3594798c1942d3c92f9acfaa5f0b.js\";","export const WirelessLockGatewayInviteStates = {\n UNKNOWN: 'UNKNOWN',\n INVITE_NOT_SENT_YET: 'INVITE_NOT_SENT_YET',\n SENDING_INVITE_IN_PROGRESS: 'SENDING_INVITE_IN_PROGRESS',\n SENDING_INVITE_SUCCEEDED: 'SENDING_INVITE_SUCCEEDED',\n SENDING_INVITE_FAILED: 'SENDING_INVITE_FAILED',\n SENDING_INVITE_UNKNOWN_ERROR: 'SENDING_INVITE_UNKNOWN_ERROR',\n INVITE_ACCEPTED: 'INVITE_ACCEPTED',\n};\n","var keyList = Object.keys;\n\nexports.equal = function equal (a, b) {\n if (a === b) return true;\n if (!(a instanceof Object) || !(b instanceof Object)) return false;\n\n var keys = keyList(a);\n var length = keys.length;\n\n for (var i = 0; i < length; i++)\n if (!(keys[i] in b)) return false;\n\n for (var i = 0; i < length; i++)\n if (a[keys[i]] !== b[keys[i]]) return false;\n\n return length === keyList(b).length;\n};\n","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","module.exports = __webpack_public_path__ + \"3ac8c7749734990e2d9f81eeca219886.js\";","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-radio .ant-skeleton-avatar.ant-skeleton-avatar-sm{width:18px !important;height:18px !important;line-height:18px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormRadio/OpFormRadio.scss\"],\"names\":[],\"mappings\":\"AACE,2DACE,qBAAA,CACA,sBAAA,CACA,2BAAA\",\"sourcesContent\":[\".op-form-radio {\\n .ant-skeleton-avatar.ant-skeleton-avatar-sm {\\n width: 18px !important;\\n height: 18px !important;\\n line-height: 18px !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-hidden-item-for-data-setting{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormHiddenItemForDataSetting/OpFormHiddenItemForDataSetting.scss\"],\"names\":[],\"mappings\":\"AAEA,sCACE,YAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-hidden-item-for-data-setting {\\n display: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"b8b6bd460e7da0ba8f3b2218327966ee.js\";","module.exports = __webpack_public_path__ + \"d4f5981ee5a73d8a6e19112f2ffcb72c.js\";","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","module.exports = __webpack_public_path__ + \"58c35e5c73bbc1664bbd67c570342aa0.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.password-form{width:22.2857142857rem}.password-form__submit{margin-top:1.1428571429rem;margin-bottom:0.5714285714rem;width:22.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/LoginFlow/PasswordForm.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,eACE,sBCDwB,CDGxB,uBACE,0BAAA,CACA,6BAAA,CACA,sBCNsB\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.password-form {\\n width: global.$unification-login-width;\\n\\n &__submit {\\n margin-top: common.toRem(16);\\n margin-bottom: common.toRem(8);\\n width: global.$unification-login-width;\\n }\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-info{margin-bottom:1.7142857143rem}.op-info .ant-alert-description{font-size:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpInfo/OpInfo.scss\"],\"names\":[],\"mappings\":\"AAEA,SACE,6BAAA,CAEA,gCACE,cAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-info {\\n margin-bottom: common.toRem(24);\\n\\n .ant-alert-description {\\n font-size: 12px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\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","const SDK_VERSION = '8.33.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","export default __webpack_public_path__ + \"assets/favicons/site.webmanifest\";","\"use client\";\n\nimport { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","var arrayEach = require('./_arrayEach'),\n baseCreate = require('./_baseCreate'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee'),\n getPrototype = require('./_getPrototype'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isTypedArray = require('./isTypedArray');\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nmodule.exports = transform;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diff = exports.split = void 0;\nvar ace_1 = require(\"./ace\");\nvar diff_1 = require(\"./diff\");\nexports.diff = diff_1.default;\nvar split_1 = require(\"./split\");\nexports.split = split_1.default;\nexports.default = ace_1.default;\n//# sourceMappingURL=index.js.map","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 * 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\nmodule.exports = arrayLikeKeys;\n","module.exports = __webpack_public_path__ + \"ab237eed5fd16ab99c06f0d28d465edb.js\";","module.exports = __webpack_public_path__ + \"b1e349371cb9c226905c846706ad8b93.js\";","module.exports = __webpack_public_path__ + \"7e4099fc2d04c7c1cf96892b962ba4ec.js\";","export const SHOW_MODAL = 'SHOW_MODAL';\nexport const HIDE_MODAL = 'HIDE_MODAL';\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offsetY = _ref.offsetY,\n offsetX = _ref.offsetX,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize,\n innerProps = _ref.innerProps,\n rtl = _ref.rtl,\n extra = _ref.extra;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n if (offsetY !== undefined) {\n // Not set `width` since this will break `sticky: right`\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n transform: \"translateY(\".concat(offsetY, \"px)\")\n }, rtl ? 'marginRight' : 'marginLeft', -offsetX), \"position\", 'absolute'), \"left\", 0), \"right\", 0), \"top\", 0));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n }\n\n // Pass to ref since global add is in closure\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom,\n left: isScrollAtLeft,\n right: isScrollAtRight\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n scrollPingRef.current.left = isScrollAtLeft;\n scrollPingRef.current.right = isScrollAtRight;\n return function (isHorizontal, delta) {\n var smoothOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var originScroll = isHorizontal ?\n // Pass origin wheel when on the left\n delta < 0 && scrollPingRef.current.left ||\n // Pass origin wheel when on the right\n delta > 0 && scrollPingRef.current.right // Pass origin wheel when on the top\n : delta < 0 && scrollPingRef.current.top ||\n // Pass origin wheel when on the bottom\n delta > 0 && scrollPingRef.current.bottom;\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n return !lockRef.current && originScroll;\n };\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n _defineProperty(this, \"maps\", void 0);\n // Used for cache key\n // `useMemo` no need to update if `id` not change\n _defineProperty(this, \"id\", 0);\n this.maps = Object.create(null);\n }\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n this.id += 1;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n return CacheMap;\n}();\nexport default CacheMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport CacheMap from \"../utils/CacheMap\";\nfunction parseNumber(value) {\n var num = parseFloat(value);\n return isNaN(num) ? 0 : num;\n}\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var collectRafRef = useRef();\n function cancelRaf() {\n raf.cancel(collectRafRef.current);\n }\n function collectHeight() {\n var sync = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n cancelRaf();\n var doCollect = function doCollect() {\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n var _getComputedStyle = getComputedStyle(htmlElement),\n marginTop = _getComputedStyle.marginTop,\n marginBottom = _getComputedStyle.marginBottom;\n var marginTopNum = parseNumber(marginTop);\n var marginBottomNum = parseNumber(marginBottom);\n var totalHeight = offsetHeight + marginTopNum + marginBottomNum;\n if (heightsRef.current.get(key) !== totalHeight) {\n heightsRef.current.set(key, totalHeight);\n }\n }\n });\n\n // Always trigger update mark to tell parent that should re-calculate heights when resized\n setUpdatedMark(function (c) {\n return c + 1;\n });\n };\n if (sync) {\n doCollect();\n } else {\n collectRafRef.current = raf(doCollect);\n }\n }\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n }\n\n // Instance changed\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 || onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 || onItemRemove(item);\n }\n }\n }\n useEffect(function () {\n return cancelRaf;\n }, []);\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchXRef = useRef(0);\n var touchYRef = useRef(0);\n var elementRef = useRef(null);\n\n // Smooth scroll\n var intervalRef = useRef(null);\n\n /* eslint-disable prefer-const */\n var cleanUpEvents;\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentX = Math.ceil(e.touches[0].pageX);\n var currentY = Math.ceil(e.touches[0].pageY);\n var offsetX = touchXRef.current - currentX;\n var offsetY = touchYRef.current - currentY;\n var _isHorizontal = Math.abs(offsetX) > Math.abs(offsetY);\n if (_isHorizontal) {\n touchXRef.current = currentX;\n } else {\n touchYRef.current = currentY;\n }\n var scrollHandled = callback(_isHorizontal, _isHorizontal ? offsetX : offsetY, false, e);\n if (scrollHandled) {\n e.preventDefault();\n }\n\n // Smooth interval\n clearInterval(intervalRef.current);\n if (scrollHandled) {\n intervalRef.current = setInterval(function () {\n if (_isHorizontal) {\n offsetX *= SMOOTH_PTG;\n } else {\n offsetY *= SMOOTH_PTG;\n }\n var offset = Math.floor(_isHorizontal ? offsetX : offsetY);\n if (!callback(_isHorizontal, offset, true) || Math.abs(offset) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n }\n };\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchXRef.current = Math.ceil(e.touches[0].pageX);\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove, {\n passive: false\n });\n elementRef.current.addEventListener('touchend', onTouchEnd, {\n passive: true\n });\n }\n };\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart, {\n passive: true\n });\n }\n return function () {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nfunction getPageXY(e, horizontal) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return obj[horizontal ? 'pageX' : 'pageY'];\n}\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n rtl = props.rtl,\n scrollOffset = props.scrollOffset,\n scrollRange = props.scrollRange,\n onStartMove = props.onStartMove,\n onStopMove = props.onStopMove,\n onScroll = props.onScroll,\n horizontal = props.horizontal,\n spinSize = props.spinSize,\n containerSize = props.containerSize,\n style = props.style,\n propsThumbStyle = props.thumbStyle;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragging = _React$useState2[0],\n setDragging = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pageXY = _React$useState4[0],\n setPageXY = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n startTop = _React$useState6[0],\n setStartTop = _React$useState6[1];\n var isLTR = !rtl;\n\n // ========================= Refs =========================\n var scrollbarRef = React.useRef();\n var thumbRef = React.useRef();\n\n // ======================= Visible ========================\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n visible = _React$useState8[0],\n setVisible = _React$useState8[1];\n var visibleTimeoutRef = React.useRef();\n var delayHidden = function delayHidden() {\n clearTimeout(visibleTimeoutRef.current);\n setVisible(true);\n visibleTimeoutRef.current = setTimeout(function () {\n setVisible(false);\n }, 3000);\n };\n\n // ======================== Range =========================\n var enableScrollRange = scrollRange - containerSize || 0;\n var enableOffsetRange = containerSize - spinSize || 0;\n\n // ========================= Top ==========================\n var top = React.useMemo(function () {\n if (scrollOffset === 0 || enableScrollRange === 0) {\n return 0;\n }\n var ptg = scrollOffset / enableScrollRange;\n return ptg * enableOffsetRange;\n }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n\n // ====================== Container =======================\n var onContainerMouseDown = function onContainerMouseDown(e) {\n e.stopPropagation();\n e.preventDefault();\n };\n\n // ======================== Thumb =========================\n var stateRef = React.useRef({\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n });\n stateRef.current = {\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n };\n var onThumbMouseDown = function onThumbMouseDown(e) {\n setDragging(true);\n setPageXY(getPageXY(e, horizontal));\n setStartTop(stateRef.current.top);\n onStartMove();\n e.stopPropagation();\n e.preventDefault();\n };\n\n // ======================== Effect ========================\n\n // React make event as passive, but we need to preventDefault\n // Add event on dom directly instead.\n // ref: https://github.com/facebook/react/issues/9809\n React.useEffect(function () {\n var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n e.preventDefault();\n };\n var scrollbarEle = scrollbarRef.current;\n var thumbEle = thumbRef.current;\n scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart, {\n passive: false\n });\n thumbEle.addEventListener('touchstart', onThumbMouseDown, {\n passive: false\n });\n return function () {\n scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n };\n }, []);\n\n // Pass to effect\n var enableScrollRangeRef = React.useRef();\n enableScrollRangeRef.current = enableScrollRange;\n var enableOffsetRangeRef = React.useRef();\n enableOffsetRangeRef.current = enableOffsetRange;\n React.useEffect(function () {\n if (dragging) {\n var moveRafId;\n var onMouseMove = function onMouseMove(e) {\n var _stateRef$current = stateRef.current,\n stateDragging = _stateRef$current.dragging,\n statePageY = _stateRef$current.pageY,\n stateStartTop = _stateRef$current.startTop;\n raf.cancel(moveRafId);\n var rect = scrollbarRef.current.getBoundingClientRect();\n var scale = containerSize / (horizontal ? rect.width : rect.height);\n if (stateDragging) {\n var offset = (getPageXY(e, horizontal) - statePageY) * scale;\n var newTop = stateStartTop;\n if (!isLTR && horizontal) {\n newTop -= offset;\n } else {\n newTop += offset;\n }\n var tmpEnableScrollRange = enableScrollRangeRef.current;\n var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n newScrollTop = Math.max(newScrollTop, 0);\n newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n moveRafId = raf(function () {\n onScroll(newScrollTop, horizontal);\n });\n }\n };\n var onMouseUp = function onMouseUp() {\n setDragging(false);\n onStopMove();\n };\n window.addEventListener('mousemove', onMouseMove, {\n passive: true\n });\n window.addEventListener('touchmove', onMouseMove, {\n passive: true\n });\n window.addEventListener('mouseup', onMouseUp, {\n passive: true\n });\n window.addEventListener('touchend', onMouseUp, {\n passive: true\n });\n return function () {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('touchmove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n window.removeEventListener('touchend', onMouseUp);\n raf.cancel(moveRafId);\n };\n }\n }, [dragging]);\n React.useEffect(function () {\n delayHidden();\n return function () {\n clearTimeout(visibleTimeoutRef.current);\n };\n }, [scrollOffset]);\n\n // ====================== Imperative ======================\n React.useImperativeHandle(ref, function () {\n return {\n delayHidden: delayHidden\n };\n });\n\n // ======================== Render ========================\n var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n var containerStyle = {\n position: 'absolute',\n visibility: visible ? null : 'hidden'\n };\n var thumbStyle = {\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n };\n if (horizontal) {\n // Container\n containerStyle.height = 8;\n containerStyle.left = 0;\n containerStyle.right = 0;\n containerStyle.bottom = 0;\n\n // Thumb\n thumbStyle.height = '100%';\n thumbStyle.width = spinSize;\n if (isLTR) {\n thumbStyle.left = top;\n } else {\n thumbStyle.right = top;\n }\n } else {\n // Container\n containerStyle.width = 8;\n containerStyle.top = 0;\n containerStyle.bottom = 0;\n if (isLTR) {\n containerStyle.right = 0;\n } else {\n containerStyle.left = 0;\n }\n\n // Thumb\n thumbStyle.width = '100%';\n thumbStyle.height = spinSize;\n thumbStyle.top = top;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarRef,\n className: classNames(scrollbarPrefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), \"\".concat(scrollbarPrefixCls, \"-visible\"), visible)),\n style: _objectSpread(_objectSpread({}, containerStyle), style),\n onMouseDown: onContainerMouseDown,\n onMouseMove: delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: thumbRef,\n className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n style: _objectSpread(_objectSpread({}, thumbStyle), propsThumbStyle),\n onMouseDown: onThumbMouseDown\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","var MIN_SIZE = 20;\nexport function getSpinSize() {\n var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var baseSize = containerSize / scrollRange * containerSize;\n if (isNaN(baseSize)) {\n baseSize = 0;\n }\n baseSize = Math.max(baseSize, MIN_SIZE);\n return Math.floor(baseSize);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { useEvent } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport Filler from \"./Filler\";\nimport useChildren from \"./hooks/useChildren\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport { useGetSize } from \"./hooks/useGetSize\";\nimport useHeights from \"./hooks/useHeights\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport ScrollBar from \"./ScrollBar\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n direction = props.direction,\n scrollWidth = props.scrollWidth,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n onVirtualScroll = props.onVirtualScroll,\n onVisibleChange = props.onVisibleChange,\n innerProps = props.innerProps,\n extraRender = props.extraRender,\n styles = props.styles,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // =============================== Item Key ===============================\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n\n // ================================ Height ================================\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3];\n\n // ================================= MISC =================================\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var containerHeight = React.useMemo(function () {\n return Object.values(heights.maps).reduce(function (total, curr) {\n return total + curr;\n }, 0);\n }, [heights.id, heights.maps]);\n var inVirtual = useVirtual && data && (Math.max(itemHeight * data.length, containerHeight) > height || !!scrollWidth);\n var isRTL = direction === 'rtl';\n var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n var containerRef = useRef();\n\n // =============================== Item Key ===============================\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n offsetTop = _useState2[0],\n setOffsetTop = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n offsetLeft = _useState4[0],\n setOffsetLeft = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n scrollMoving = _useState6[0],\n setScrollMoving = _useState6[1];\n var onScrollbarStartMove = function onScrollbarStartMove() {\n setScrollMoving(true);\n };\n var onScrollbarStopMove = function onScrollbarStopMove() {\n setScrollMoving(false);\n };\n var sharedConfig = {\n getKey: getKey\n };\n\n // ================================ Scroll ================================\n function syncScrollTop(newTop) {\n setOffsetTop(function (origin) {\n var value;\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n }\n\n // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n diffItemRef.current = diffItem;\n\n // ========================== Visible Calculation =========================\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n // Always use virtual scroll bar in avoid shaking\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n for (var i = 0; i < dataLen; i += 1) {\n var _item = mergedData[i];\n var key = getKey(_item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n // Check item top in the range\n if (currentItemBottom >= offsetTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n }\n\n // Check item bottom in the range. We will render additional one item for motion usage\n if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n endIndex = i;\n }\n itemTop = currentItemBottom;\n }\n\n // When scrollTop at the end but data cut to small count will reach this\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n endIndex = Math.ceil(height / itemHeight);\n }\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n }\n\n // Give cache to improve scroll experience\n endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n fillerOffset = _React$useMemo.offset;\n rangeRef.current.start = start;\n rangeRef.current.end = end;\n\n // ================================= Size =================================\n var _React$useState = React.useState({\n width: 0,\n height: height\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n size = _React$useState2[0],\n setSize = _React$useState2[1];\n var onHolderResize = function onHolderResize(sizeInfo) {\n setSize({\n width: sizeInfo.offsetWidth,\n height: sizeInfo.offsetHeight\n });\n };\n\n // Hack on scrollbar to enable flash call\n var verticalScrollBarRef = useRef();\n var horizontalScrollBarRef = useRef();\n var horizontalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.width, scrollWidth);\n }, [size.width, scrollWidth]);\n var verticalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.height, scrollHeight);\n }, [size.height, scrollHeight]);\n\n // =============================== In Range ===============================\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n var isScrollAtTop = offsetTop <= 0;\n var isScrollAtBottom = offsetTop >= maxScrollHeight;\n var isScrollAtLeft = offsetLeft <= 0;\n var isScrollAtRight = offsetLeft >= scrollWidth;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n\n // ================================ Scroll ================================\n var getVirtualScrollInfo = function getVirtualScrollInfo() {\n return {\n x: isRTL ? -offsetLeft : offsetLeft,\n y: offsetTop\n };\n };\n var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n var triggerScroll = useEvent(function (params) {\n if (onVirtualScroll) {\n var nextInfo = _objectSpread(_objectSpread({}, getVirtualScrollInfo()), params);\n\n // Trigger when offset changed\n if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n onVirtualScroll(nextInfo);\n lastVirtualScrollInfoRef.current = nextInfo;\n }\n }\n });\n function onScrollBar(newScrollOffset, horizontal) {\n var newOffset = newScrollOffset;\n if (horizontal) {\n flushSync(function () {\n setOffsetLeft(newOffset);\n });\n triggerScroll();\n } else {\n syncScrollTop(newOffset);\n }\n }\n\n // When data size reduce. It may trigger native scroll event back to fit scroll position\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n if (newScrollTop !== offsetTop) {\n syncScrollTop(newScrollTop);\n }\n\n // Trigger origin onScroll\n onScroll === null || onScroll === void 0 || onScroll(e);\n triggerScroll();\n }\n var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n var tmpOffsetLeft = nextOffsetLeft;\n var max = !!scrollWidth ? scrollWidth - size.width : 0;\n tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n return tmpOffsetLeft;\n };\n var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n if (fromHorizontal) {\n flushSync(function () {\n setOffsetLeft(function (left) {\n var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n return keepInHorizontalRange(nextOffsetLeft);\n });\n });\n triggerScroll();\n } else {\n syncScrollTop(function (top) {\n var newTop = top + offsetXY;\n return newTop;\n });\n }\n });\n\n // Since this added in global,should use ref to keep update\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, !!scrollWidth, onWheelDelta),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1];\n\n // Mobile touch move\n useMobileTouchMove(useVirtual, componentRef, function (isHorizontal, delta, smoothOffset, e) {\n var event = e;\n if (originScroll(isHorizontal, delta, smoothOffset)) {\n return false;\n }\n\n // Fix nest List trigger TouchMove event\n if (!event || !event._virtualHandled) {\n if (event) {\n event._virtualHandled = true;\n }\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaX: isHorizontal ? delta : 0,\n deltaY: isHorizontal ? 0 : delta\n });\n return true;\n }\n return false;\n });\n useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n // scrolling at top/bottom limit\n var scrollingUpAtTop = isScrollAtTop && e.detail < 0;\n var scrollingDownAtBottom = isScrollAtBottom && e.detail > 0;\n if (useVirtual && !scrollingUpAtTop && !scrollingDownAtBottom) {\n e.preventDefault();\n }\n }\n var componentEle = componentRef.current;\n componentEle.addEventListener('wheel', onRawWheel, {\n passive: false\n });\n componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll, {\n passive: true\n });\n componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll, {\n passive: false\n });\n return function () {\n componentEle.removeEventListener('wheel', onRawWheel);\n componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual, isScrollAtTop, isScrollAtBottom]);\n\n // Sync scroll left\n useLayoutEffect(function () {\n if (scrollWidth) {\n var newOffsetLeft = keepInHorizontalRange(offsetLeft);\n setOffsetLeft(newOffsetLeft);\n triggerScroll({\n x: newOffsetLeft\n });\n }\n }, [size.width, scrollWidth]);\n\n // ================================= Ref ==================================\n var delayHideScrollBar = function delayHideScrollBar() {\n var _verticalScrollBarRef, _horizontalScrollBarR;\n (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n };\n var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n return collectHeight(true);\n }, syncScrollTop, delayHideScrollBar);\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: containerRef.current,\n getScrollInfo: getVirtualScrollInfo,\n scrollTo: function scrollTo(config) {\n function isPosScroll(arg) {\n return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n }\n if (isPosScroll(config)) {\n // Scroll X\n if (config.left !== undefined) {\n setOffsetLeft(keepInHorizontalRange(config.left));\n }\n\n // Scroll Y\n _scrollTo(config.top);\n } else {\n _scrollTo(config);\n }\n }\n };\n });\n\n // ================================ Effect ================================\n /** We need told outside that some list not rendered */\n useLayoutEffect(function () {\n if (onVisibleChange) {\n var renderList = mergedData.slice(start, end + 1);\n onVisibleChange(renderList, mergedData);\n }\n }, [start, end, mergedData]);\n\n // ================================ Extra =================================\n var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n start: start,\n end: end,\n virtual: inVirtual,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n rtl: isRTL,\n getSize: getSize\n });\n\n // ================================ Render ================================\n var listChildren = useChildren(mergedData, start, end, scrollWidth, offsetLeft, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n if (scrollWidth) {\n componentStyle.overflowX = 'hidden';\n }\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n var containerProps = {};\n if (isRTL) {\n containerProps.dir = 'rtl';\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onHolderResize\n }, /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll,\n onMouseEnter: delayHideScrollBar\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n scrollWidth: scrollWidth,\n onInnerResize: collectHeight,\n ref: fillerInnerRef,\n innerProps: innerProps,\n rtl: isRTL,\n extra: extraContent\n }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: verticalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetTop,\n scrollRange: scrollHeight,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: verticalScrollBarSpinSize,\n containerSize: size.height,\n style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: horizontalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetLeft,\n scrollRange: scrollWidth,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: horizontalScrollBarSpinSize,\n containerSize: size.width,\n horizontal: true,\n style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from \"../utils/algorithmUtil\";\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 || onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2;\n\n // Balance\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n if (index % 2) {\n return start + stepIndex + 1;\n }\n return start - stepIndex;\n }\n\n // One is out of range\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n return start + (index - beforeCount);\n}\n\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n return notExistKey;\n }\n\n // Loop to find diff one\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","import raf from \"rc-util/es/raf\";\nimport { useRef } from 'react';\nimport isFF from \"../utils/isFirefox\";\nimport useOriginScroll from \"./useOriginScroll\";\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null);\n\n // Firefox patch\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false);\n\n // Scroll status sync\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n function onWheelY(e, deltaY) {\n raf.cancel(nextFrameRef.current);\n\n // Do nothing when scroll at the edge, Skip check when is in scroll\n if (originScroll(false, deltaY)) return;\n\n // Skip if nest List has handled this event\n var event = e;\n if (!event._virtualHandled) {\n event._virtualHandled = true;\n } else {\n return;\n }\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY;\n\n // Proxy of scroll events\n if (!isFF) {\n event.preventDefault();\n }\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple, false);\n offsetRef.current = 0;\n });\n }\n function onWheelX(event, deltaX) {\n onWheelDelta(deltaX, true);\n if (!isFF) {\n event.preventDefault();\n }\n }\n\n // Check for which direction does wheel do. `sx` means `shift + wheel`\n var wheelDirectionRef = useRef(null);\n var wheelDirectionCleanRef = useRef(null);\n function onWheel(event) {\n if (!inVirtual) return;\n\n // Wait for 2 frame to clean direction\n raf.cancel(wheelDirectionCleanRef.current);\n wheelDirectionCleanRef.current = raf(function () {\n wheelDirectionRef.current = null;\n }, 2);\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n shiftKey = event.shiftKey;\n var mergedDeltaX = deltaX;\n var mergedDeltaY = deltaY;\n if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n mergedDeltaX = deltaY;\n mergedDeltaY = 0;\n wheelDirectionRef.current = 'sx';\n }\n var absX = Math.abs(mergedDeltaX);\n var absY = Math.abs(mergedDeltaY);\n if (wheelDirectionRef.current === null) {\n wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n }\n if (wheelDirectionRef.current === 'y') {\n onWheelY(event, mergedDeltaY);\n } else {\n onWheelX(event, mergedDeltaX);\n }\n }\n\n // A patch for firefox\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n return [onWheel, onFireFoxScroll];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { warning } from 'rc-util';\nvar MAX_TIMES = 10;\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n syncState = _React$useState2[0],\n setSyncState = _React$useState2[1];\n\n // ========================== Sync Scroll ==========================\n useLayoutEffect(function () {\n if (syncState && syncState.times < MAX_TIMES) {\n // Never reach\n if (!containerRef.current) {\n setSyncState(function (ori) {\n return _objectSpread({}, ori);\n });\n return;\n }\n collectHeight();\n var targetAlign = syncState.targetAlign,\n originAlign = syncState.originAlign,\n index = syncState.index,\n offset = syncState.offset;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign;\n var targetTop = null;\n\n // Go to next frame if height not exist\n if (height) {\n var mergedAlign = targetAlign || originAlign;\n\n // Get top & bottom\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length - 1, index);\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n }\n\n // Check if need sync height (visible range has item not record height)\n var leftHeight = mergedAlign === 'top' ? offset : height - offset;\n for (var _i = maxLen; _i >= 0; _i -= 1) {\n var _key = getKey(data[_i]);\n var _cacheHeight = heights.get(_key);\n if (_cacheHeight === undefined) {\n needCollectHeight = true;\n break;\n }\n leftHeight -= _cacheHeight;\n if (leftHeight <= 0) {\n break;\n }\n }\n\n // Scroll to\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n if (targetTop !== null) {\n syncScrollTop(targetTop);\n }\n\n // One more time for sync\n if (targetTop !== syncState.lastTop) {\n needCollectHeight = true;\n }\n }\n\n // Trigger next effect\n if (needCollectHeight) {\n setSyncState(_objectSpread(_objectSpread({}, syncState), {}, {\n times: syncState.times + 1,\n targetAlign: newTargetAlign,\n lastTop: targetTop\n }));\n }\n } else if (process.env.NODE_ENV !== 'production' && (syncState === null || syncState === void 0 ? void 0 : syncState.times) === MAX_TIMES) {\n warning(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');\n }\n }, [syncState, containerRef.current]);\n\n // =========================== Scroll To ===========================\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n }\n\n // Normal scroll logic\n raf.cancel(scrollRef.current);\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset;\n setSyncState({\n times: 0,\n index: index,\n offset: offset,\n originAlign: align\n });\n }\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n var _React$useMemo = React.useMemo(function () {\n return [new Map(), []];\n }, [mergedData, heights.id, itemHeight]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n key2Index = _React$useMemo2[0],\n bottomList = _React$useMemo2[1];\n var getSize = function getSize(startKey) {\n var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n // Get from cache first\n var startIndex = key2Index.get(startKey);\n var endIndex = key2Index.get(endKey);\n\n // Loop to fill the cache\n if (startIndex === undefined || endIndex === undefined) {\n var dataLen = mergedData.length;\n for (var i = bottomList.length; i < dataLen; i += 1) {\n var _heights$get;\n var item = mergedData[i];\n var key = getKey(item);\n key2Index.set(key, i);\n var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n if (key === startKey) {\n startIndex = i;\n }\n if (key === endKey) {\n endIndex = i;\n }\n if (startIndex !== undefined && endIndex !== undefined) {\n break;\n }\n }\n }\n return {\n top: bottomList[startIndex - 1] || 0,\n bottom: bottomList[endIndex]\n };\n };\n return getSize;\n}","import * as React from 'react';\nimport { Item } from \"../Item\";\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, offsetX, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {\n style: {\n width: scrollWidth\n },\n offsetX: offsetX\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from \"./List\";\nexport default List;","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\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 if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\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 _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"className\", \"style\", \"classNames\", \"styles\"];\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport clsx from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from \"./Notice\";\nimport { NotificationContext } from \"./NotificationProvider\";\nimport useStack from \"./hooks/useStack\";\nvar NoticeList = function NoticeList(props) {\n var configList = props.configList,\n placement = props.placement,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n motion = props.motion,\n onAllNoticeRemoved = props.onAllNoticeRemoved,\n onNoticeClose = props.onNoticeClose,\n stackConfig = props.stack;\n var _useContext = useContext(NotificationContext),\n ctxCls = _useContext.classNames;\n var dictRef = useRef({});\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n latestNotice = _useState2[0],\n setLatestNotice = _useState2[1];\n var _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n hoverKeys = _useState4[0],\n setHoverKeys = _useState4[1];\n var keys = configList.map(function (config) {\n return {\n config: config,\n key: String(config.key)\n };\n });\n var _useStack = useStack(stackConfig),\n _useStack2 = _slicedToArray(_useStack, 2),\n stack = _useStack2[0],\n _useStack2$ = _useStack2[1],\n offset = _useStack2$.offset,\n threshold = _useStack2$.threshold,\n gap = _useStack2$.gap;\n var expanded = stack && (hoverKeys.length > 0 || keys.length <= threshold);\n var placementMotion = typeof motion === 'function' ? motion(placement) : motion;\n\n // Clean hover key\n useEffect(function () {\n if (stack && hoverKeys.length > 1) {\n setHoverKeys(function (prev) {\n return prev.filter(function (key) {\n return keys.some(function (_ref) {\n var dataKey = _ref.key;\n return key === dataKey;\n });\n });\n });\n }\n }, [hoverKeys, keys, stack]);\n\n // Force update latest notice\n useEffect(function () {\n var _keys;\n if (stack && dictRef.current[(_keys = keys[keys.length - 1]) === null || _keys === void 0 ? void 0 : _keys.key]) {\n var _keys2;\n setLatestNotice(dictRef.current[(_keys2 = keys[keys.length - 1]) === null || _keys2 === void 0 ? void 0 : _keys2.key]);\n }\n }, [keys, stack]);\n return /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n key: placement,\n className: clsx(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), ctxCls === null || ctxCls === void 0 ? void 0 : ctxCls.list, className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-stack\"), !!stack), \"\".concat(prefixCls, \"-stack-expanded\"), expanded)),\n style: style,\n keys: keys,\n motionAppear: true\n }, placementMotion, {\n onAllRemoved: function onAllRemoved() {\n onAllNoticeRemoved(placement);\n }\n }), function (_ref2, nodeRef) {\n var config = _ref2.config,\n motionClassName = _ref2.className,\n motionStyle = _ref2.style,\n motionIndex = _ref2.index;\n var _ref3 = config,\n key = _ref3.key,\n times = _ref3.times;\n var strKey = String(key);\n var _ref4 = config,\n configClassName = _ref4.className,\n configStyle = _ref4.style,\n configClassNames = _ref4.classNames,\n configStyles = _ref4.styles,\n restConfig = _objectWithoutProperties(_ref4, _excluded);\n var dataIndex = keys.findIndex(function (item) {\n return item.key === strKey;\n });\n\n // If dataIndex is -1, that means this notice has been removed in data, but still in dom\n // Should minus (motionIndex - 1) to get the correct index because keys.length is not the same as dom length\n var stackStyle = {};\n if (stack) {\n var index = keys.length - 1 - (dataIndex > -1 ? dataIndex : motionIndex - 1);\n var transformX = placement === 'top' || placement === 'bottom' ? '-50%' : '0';\n if (index > 0) {\n var _dictRef$current$strK, _dictRef$current$strK2, _dictRef$current$strK3;\n stackStyle.height = expanded ? (_dictRef$current$strK = dictRef.current[strKey]) === null || _dictRef$current$strK === void 0 ? void 0 : _dictRef$current$strK.offsetHeight : latestNotice === null || latestNotice === void 0 ? void 0 : latestNotice.offsetHeight;\n\n // Transform\n var verticalOffset = 0;\n for (var i = 0; i < index; i++) {\n var _dictRef$current$keys;\n verticalOffset += ((_dictRef$current$keys = dictRef.current[keys[keys.length - 1 - i].key]) === null || _dictRef$current$keys === void 0 ? void 0 : _dictRef$current$keys.offsetHeight) + gap;\n }\n var transformY = (expanded ? verticalOffset : index * offset) * (placement.startsWith('top') ? 1 : -1);\n var scaleX = !expanded && latestNotice !== null && latestNotice !== void 0 && latestNotice.offsetWidth && (_dictRef$current$strK2 = dictRef.current[strKey]) !== null && _dictRef$current$strK2 !== void 0 && _dictRef$current$strK2.offsetWidth ? ((latestNotice === null || latestNotice === void 0 ? void 0 : latestNotice.offsetWidth) - offset * 2 * (index < 3 ? index : 3)) / ((_dictRef$current$strK3 = dictRef.current[strKey]) === null || _dictRef$current$strK3 === void 0 ? void 0 : _dictRef$current$strK3.offsetWidth) : 1;\n stackStyle.transform = \"translate3d(\".concat(transformX, \", \").concat(transformY, \"px, 0) scaleX(\").concat(scaleX, \")\");\n } else {\n stackStyle.transform = \"translate3d(\".concat(transformX, \", 0, 0)\");\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: nodeRef,\n className: clsx(\"\".concat(prefixCls, \"-notice-wrapper\"), motionClassName, configClassNames === null || configClassNames === void 0 ? void 0 : configClassNames.wrapper),\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), stackStyle), configStyles === null || configStyles === void 0 ? void 0 : configStyles.wrapper),\n onMouseEnter: function onMouseEnter() {\n return setHoverKeys(function (prev) {\n return prev.includes(strKey) ? prev : [].concat(_toConsumableArray(prev), [strKey]);\n });\n },\n onMouseLeave: function onMouseLeave() {\n return setHoverKeys(function (prev) {\n return prev.filter(function (k) {\n return k !== strKey;\n });\n });\n }\n }, /*#__PURE__*/React.createElement(Notice, _extends({}, restConfig, {\n ref: function ref(node) {\n if (dataIndex > -1) {\n dictRef.current[strKey] = node;\n } else {\n delete dictRef.current[strKey];\n }\n },\n prefixCls: prefixCls,\n classNames: configClassNames,\n styles: configStyles,\n className: clsx(configClassName, ctxCls === null || ctxCls === void 0 ? void 0 : ctxCls.notice),\n style: configStyle,\n times: times,\n key: key,\n eventKey: key,\n onNoticeClose: onNoticeClose,\n hovering: stack && hoverKeys.length > 0\n })));\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n NoticeList.displayName = 'NoticeList';\n}\nexport default NoticeList;","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * The id of the profile that this span occured in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.svg-wrapper{line-height:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/components/svgs/SvgWrapper/SvgWrapper.scss\"],\"names\":[],\"mappings\":\"AAAA,aACE,aAAA\",\"sourcesContent\":[\".svg-wrapper {\\n line-height: 0; // remove space below svg and allows for proper vertical alignment\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"0d5aa4cf4cd6ced22d689adc35468925.js\";","import { _nullishCoalesce, _optionalChain } from '@sentry/utils';\nimport { captureException, addBreadcrumb, getClient, isSentryRequestUrl, addEventProcessor, prepareEvent, getIsolationScope, getCurrentScope, setContext, getActiveSpan, getRootSpan, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, parseSampleRate } from '@sentry/core';\nimport { GLOBAL_OBJ, logger as logger$1, severityLevelFromString, normalize, fill, htmlTreeAsString, browserPerformanceTimeOrigin, uuid4, getLocationHref, dropUndefinedKeys, stringMatchesSomePattern, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, resolvedSyncPromise, updateRateLimits, isRateLimited, isBrowser, consoleSandbox } from '@sentry/utils';\nimport { setTimeout as setTimeout$3, addPerformanceInstrumentationHandler, addLcpInstrumentationHandler, addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, SENTRY_XHR_DATA_KEY, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and replay packages should `@sentry/browser` import\n// from `@sentry/replay` in the future\nconst WINDOW = GLOBAL_OBJ ;\n\nconst REPLAY_SESSION_KEY = 'sentryReplaySession';\nconst REPLAY_EVENT_NAME = 'replay_event';\nconst UNABLE_TO_SEND_REPLAY = 'Unable to send Replay';\n\n// The idle limit for a session after which recording is paused.\nconst SESSION_IDLE_PAUSE_DURATION = 300000; // 5 minutes in ms\n\n// The idle limit for a session after which the session expires.\nconst SESSION_IDLE_EXPIRE_DURATION = 900000; // 15 minutes in ms\n\n/** Default flush delays */\nconst DEFAULT_FLUSH_MIN_DELAY = 5000;\n// XXX: Temp fix for our debounce logic where `maxWait` would never occur if it\n// was the same as `wait`\nconst DEFAULT_FLUSH_MAX_DELAY = 5500;\n\n/* How long to wait for error checkouts */\nconst BUFFER_CHECKOUT_TIME = 60000;\n\nconst RETRY_BASE_INTERVAL = 5000;\nconst RETRY_MAX_COUNT = 3;\n\n/* The max (uncompressed) size in bytes of a network body. Any body larger than this will be truncated. */\nconst NETWORK_BODY_MAX_SIZE = 150000;\n\n/* The max size of a single console arg that is captured. Any arg larger than this will be truncated. */\nconst CONSOLE_ARG_MAX_SIZE = 5000;\n\n/* Min. time to wait before we consider something a slow click. */\nconst SLOW_CLICK_THRESHOLD = 3000;\n/* For scroll actions after a click, we only look for a very short time period to detect programmatic scrolling. */\nconst SLOW_CLICK_SCROLL_TIMEOUT = 300;\n\n/** When encountering a total segment size exceeding this size, stop the replay (as we cannot properly ingest it). */\nconst REPLAY_MAX_EVENT_BUFFER_SIZE = 20000000; // ~20MB\n\n/** Replays must be min. 5s long before we send them. */\nconst MIN_REPLAY_DURATION = 4999;\n/* The max. allowed value that the minReplayDuration can be set to. */\nconst MIN_REPLAY_DURATION_LIMIT = 15000;\n\n/** The max. length of a replay. */\nconst MAX_REPLAY_DURATION = 3600000; // 60 minutes in ms;\n\nfunction _nullishCoalesce$1(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var NodeType$1;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType$1 || (NodeType$1 = {}));\n\nfunction isElement$1(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const host = _optionalChain$5([n, 'optionalAccess', _ => _.host]);\n return Boolean(_optionalChain$5([host, 'optionalAccess', _2 => _2.shadowRoot]) === n);\n}\nfunction isNativeShadowDom(shadowRoot) {\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(' background-clip: text;') &&\n !cssText.includes(' -webkit-background-clip: text;')) {\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\n }\n return cssText;\n}\nfunction escapeImportStatement(rule) {\n const { cssText } = rule;\n if (cssText.split('\"').length < 3)\n return cssText;\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\n if (rule.layerName === '') {\n statement.push(`layer`);\n }\n else if (rule.layerName) {\n statement.push(`layer(${rule.layerName})`);\n }\n if (rule.supportsText) {\n statement.push(`supports(${rule.supportsText})`);\n }\n if (rule.media.length) {\n statement.push(rule.media.mediaText);\n }\n return statement.join(' ') + ';';\n}\nfunction stringifyStylesheet(s) {\n try {\n const rules = s.rules || s.cssRules;\n return rules\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\n : null;\n }\n catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule) {\n let importStringified;\n if (isCSSImportRule(rule)) {\n try {\n importStringified =\n stringifyStylesheet(rule.styleSheet) ||\n escapeImportStatement(rule);\n }\n catch (error) {\n }\n }\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\n return fixSafariColons(rule.cssText);\n }\n return importStringified || rule.cssText;\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, '$1\\\\$2');\n}\nfunction isCSSImportRule(rule) {\n return 'styleSheet' in rule;\n}\nfunction isCSSStyleRule(rule) {\n return 'selectorText' in rule;\n}\nclass Mirror {\n constructor() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n getId(n) {\n if (!n)\n return -1;\n const id = _optionalChain$5([this, 'access', _3 => _3.getMeta, 'call', _4 => _4(n), 'optionalAccess', _5 => _5.id]);\n return _nullishCoalesce$1(id, () => ( -1));\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta)\n this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = new Map();\n this.nodeMetaMap = new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction shouldMaskInput({ maskInputOptions, tagName, type, }) {\n if (tagName === 'OPTION') {\n tagName = 'SELECT';\n }\n return Boolean(maskInputOptions[tagName.toLowerCase()] ||\n (type && maskInputOptions[type]) ||\n type === 'password' ||\n (tagName === 'INPUT' && !type && maskInputOptions['text']));\n}\nfunction maskInputValue({ isMasked, element, value, maskInputFn, }) {\n let text = value || '';\n if (!isMasked) {\n return text;\n }\n if (maskInputFn) {\n text = maskInputFn(text, element);\n }\n return '*'.repeat(text.length);\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext('2d');\n if (!ctx)\n return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\n : getImageData;\n const pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some((pixel) => pixel !== 0))\n return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute('data-rr-is-password')\n ? 'password'\n : type\n ?\n toLowerCase(type)\n : null;\n}\nfunction getInputValue(el, tagName, type) {\n if (tagName === 'INPUT' && (type === 'radio' || type === 'checkbox')) {\n return el.getAttribute('value') || '';\n }\n return el.value;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, _nullishCoalesce$1(baseURL, () => ( window.location.href)));\n }\n catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return _nullishCoalesce$1(_optionalChain$5([match, 'optionalAccess', _6 => _6[1]]), () => ( null));\n}\nconst cachedImplementations$1 = {};\nfunction getImplementation$1(name) {\n const cached = cachedImplementations$1[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations$1[name] = impl.bind(window));\n}\nfunction setTimeout$2(...rest) {\n return getImplementation$1('setTimeout')(...rest);\n}\nfunction clearTimeout$2(...rest) {\n return getImplementation$1('clearTimeout')(...rest);\n}\n\nlet _id = 1;\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return 'form';\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return 'div';\n }\n return processedTagName;\n}\nfunction extractOrigin(url) {\n let origin = '';\n if (url.indexOf('//') > -1) {\n origin = url.split('/').slice(0, 3).join('/');\n }\n else {\n origin = url.split('/')[0];\n }\n origin = origin.split('?')[0];\n return origin;\n}\nlet canvasService;\nlet canvasCtx;\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absoluteToStylesheet(cssText, href) {\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || '';\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === '/') {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split('/');\n const parts = filePath.split('/');\n stack.pop();\n for (const part of parts) {\n if (part === '.') {\n continue;\n }\n else if (part === '..') {\n stack.pop();\n }\n else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\n });\n}\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === '') {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return '';\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === ',') {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n }\n else {\n let descriptorsStr = '';\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c = attributeValue.charAt(pos);\n if (c === '') {\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (!inParens) {\n if (c === ',') {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n }\n else if (c === '(') {\n inParens = true;\n }\n }\n else {\n if (c === ')') {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(', ');\n}\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === '') {\n return attributeValue;\n }\n const a = doc.createElement('a');\n a.href = attributeValue;\n return a.href;\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\n}\nfunction getHref() {\n const a = document.createElement('a');\n a.href = '';\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value, element, maskAttributeFn) {\n if (!value) {\n return value;\n }\n if (name === 'src' ||\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'xlink:href' && value[0] !== '#') {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'background' &&\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\n return absoluteToDoc(doc, value);\n }\n else if (name === 'srcset') {\n return getAbsoluteSrcsetString(doc, value);\n }\n else if (name === 'style') {\n return absoluteToStylesheet(value, getHref());\n }\n else if (tagName === 'object' && name === 'data') {\n return absoluteToDoc(doc, value);\n }\n if (typeof maskAttributeFn === 'function') {\n return maskAttributeFn(name, value, element);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\n}\nfunction _isBlockedElement(element, blockClass, blockSelector, unblockSelector) {\n try {\n if (unblockSelector && element.matches(unblockSelector)) {\n return false;\n }\n if (typeof blockClass === 'string') {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n }\n else {\n for (let eIndex = element.classList.length; eIndex--;) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n }\n catch (e) {\n }\n return false;\n}\nfunction elementClassMatchesRegex(el, regex) {\n for (let eIndex = el.classList.length; eIndex--;) {\n const className = el.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n return false;\n}\nfunction distanceToMatch(node, matchPredicate, limit = Infinity, distance = 0) {\n if (!node)\n return -1;\n if (node.nodeType !== node.ELEMENT_NODE)\n return -1;\n if (distance > limit)\n return -1;\n if (matchPredicate(node))\n return distance;\n return distanceToMatch(node.parentNode, matchPredicate, limit, distance + 1);\n}\nfunction createMatchPredicate(className, selector) {\n return (node) => {\n const el = node;\n if (el === null)\n return false;\n try {\n if (className) {\n if (typeof className === 'string') {\n if (el.matches(`.${className}`))\n return true;\n }\n else if (elementClassMatchesRegex(el, className)) {\n return true;\n }\n }\n if (selector && el.matches(selector))\n return true;\n return false;\n }\n catch (e2) {\n return false;\n }\n };\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText) {\n try {\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n if (el === null)\n return false;\n if (el.tagName === 'INPUT') {\n const autocomplete = el.getAttribute('autocomplete');\n const disallowedAutocompleteValues = [\n 'current-password',\n 'new-password',\n 'cc-number',\n 'cc-exp',\n 'cc-exp-month',\n 'cc-exp-year',\n 'cc-csc',\n ];\n if (disallowedAutocompleteValues.includes(autocomplete)) {\n return true;\n }\n }\n let maskDistance = -1;\n let unmaskDistance = -1;\n if (maskAllText) {\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector));\n if (unmaskDistance < 0) {\n return true;\n }\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector), unmaskDistance >= 0 ? unmaskDistance : Infinity);\n }\n else {\n maskDistance = distanceToMatch(el, createMatchPredicate(maskTextClass, maskTextSelector));\n if (maskDistance < 0) {\n return false;\n }\n unmaskDistance = distanceToMatch(el, createMatchPredicate(unmaskTextClass, unmaskTextSelector), maskDistance >= 0 ? maskDistance : Infinity);\n }\n return maskDistance >= 0\n ? unmaskDistance >= 0\n ? maskDistance <= unmaskDistance\n : true\n : unmaskDistance >= 0\n ? false\n : !!maskAllText;\n }\n catch (e) {\n }\n return !!maskAllText;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n }\n catch (error) {\n return;\n }\n if (readyState !== 'complete') {\n const timer = setTimeout$2(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener('load', () => {\n clearTimeout$2(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = 'about:blank';\n if (win.location.href !== blankUrl ||\n iframeEl.src === blankUrl ||\n iframeEl.src === '') {\n setTimeout$2(listener, 0);\n return iframeEl.addEventListener('load', listener);\n }\n iframeEl.addEventListener('load', listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n }\n catch (error) {\n return;\n }\n if (styleSheetLoaded)\n return;\n const timer = setTimeout$2(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener('load', () => {\n clearTimeout$2(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskAttributeFn, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== 'CSS1Compat') {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n compatMode: n.compatMode,\n };\n }\n else {\n return {\n type: NodeType$1.Document,\n childNodes: [],\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$1.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId,\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n unblockSelector,\n inlineStylesheet,\n maskAttributeFn,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskTextFn,\n maskInputOptions,\n maskInputFn,\n rootId,\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType$1.CDATA,\n textContent: '',\n rootId,\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType$1.Comment,\n textContent: n.textContent || '',\n rootId,\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc))\n return undefined;\n const docId = mirror.getId(doc);\n return docId === 1 ? undefined : docId;\n}\nfunction serializeTextNode(n, options) {\n const { maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, maskTextFn, maskInputOptions, maskInputFn, rootId, } = options;\n const parentTagName = n.parentNode && n.parentNode.tagName;\n let textContent = n.textContent;\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\n const isTextarea = parentTagName === 'TEXTAREA' ? true : undefined;\n if (isStyle && textContent) {\n try {\n if (n.nextSibling || n.previousSibling) {\n }\n else if (_optionalChain$5([n, 'access', _7 => _7.parentNode, 'access', _8 => _8.sheet, 'optionalAccess', _9 => _9.cssRules])) {\n textContent = stringifyStylesheet(n.parentNode.sheet);\n }\n }\n catch (err) {\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\n }\n textContent = absoluteToStylesheet(textContent, getHref());\n }\n if (isScript) {\n textContent = 'SCRIPT_PLACEHOLDER';\n }\n const forceMask = needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, maskAllText);\n if (!isStyle && !isScript && !isTextarea && textContent && forceMask) {\n textContent = maskTextFn\n ? maskTextFn(textContent, n.parentElement)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (isTextarea && textContent && (maskInputOptions.textarea || forceMask)) {\n textContent = maskInputFn\n ? maskInputFn(textContent, n.parentNode)\n : textContent.replace(/[\\S]/g, '*');\n }\n if (parentTagName === 'OPTION' && textContent) {\n const isInputMasked = shouldMaskInput({\n type: null,\n tagName: parentTagName,\n maskInputOptions,\n });\n textContent = maskInputValue({\n isMasked: needMaskingText(n, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked),\n element: n,\n value: textContent,\n maskInputFn,\n });\n }\n return {\n type: NodeType$1.Text,\n textContent: textContent || '',\n isStyle,\n rootId,\n };\n}\nfunction serializeElementNode(n, options) {\n const { doc, blockClass, blockSelector, unblockSelector, inlineStylesheet, maskInputOptions = {}, maskAttributeFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector, unblockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\n if (attr.name && !ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value, n, maskAttributeFn);\n }\n }\n if (tagName === 'link' && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\n return s.href === n.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\n }\n }\n if (tagName === 'style' &&\n n.sheet &&\n !(n.innerText || n.textContent || '').trim().length) {\n const cssText = stringifyStylesheet(n.sheet);\n if (cssText) {\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\n }\n }\n if (tagName === 'input' ||\n tagName === 'textarea' ||\n tagName === 'select' ||\n tagName === 'option') {\n const el = n;\n const type = getInputType(el);\n const value = getInputValue(el, toUpperCase(tagName), type);\n const checked = el.checked;\n if (type !== 'submit' && type !== 'button' && value) {\n const forceMask = needMaskingText(el, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, shouldMaskInput({\n type,\n tagName: toUpperCase(tagName),\n maskInputOptions,\n }));\n attributes.value = maskInputValue({\n isMasked: forceMask,\n element: el,\n value,\n maskInputFn,\n });\n }\n if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === 'option') {\n if (n.selected && !maskInputOptions['select']) {\n attributes.selected = true;\n }\n else {\n delete attributes.selected;\n }\n }\n if (tagName === 'canvas' && recordCanvas) {\n if (n.__context === '2d') {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n }\n else if (!('__context' in n)) {\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n const blankCanvas = document.createElement('canvas');\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === 'img' && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement('canvas');\n canvasCtx = canvasService.getContext('2d');\n }\n const image = n;\n const oldValue = image.crossOrigin;\n image.crossOrigin = 'anonymous';\n const recordInlineImage = () => {\n image.removeEventListener('load', recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n catch (err) {\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\n }\n oldValue\n ? (attributes.crossOrigin = oldValue)\n : image.removeAttribute('crossorigin');\n };\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else\n image.addEventListener('load', recordInlineImage);\n }\n if (tagName === 'audio' || tagName === 'video') {\n attributes.rr_mediaState = n.paused\n ? 'paused'\n : 'played';\n attributes.rr_mediaCurrentTime = n.currentTime;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n };\n }\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\n if (!needBlock && !n.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName))\n isCustomElement = true;\n }\n catch (e) {\n }\n return {\n type: NodeType$1.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || undefined,\n needBlock,\n rootId,\n isCustom: isCustomElement,\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === undefined || maybeAttr === null) {\n return '';\n }\n else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$1.Comment) {\n return true;\n }\n else if (sn.type === NodeType$1.Element) {\n if (slimDOMOptions.script &&\n (sn.tagName === 'script' ||\n (sn.tagName === 'link' &&\n (sn.attributes.rel === 'preload' ||\n sn.attributes.rel === 'modulepreload') &&\n sn.attributes.as === 'script') ||\n (sn.tagName === 'link' &&\n sn.attributes.rel === 'prefetch' &&\n typeof sn.attributes.href === 'string' &&\n extractFileExtension(sn.attributes.href) === 'js'))) {\n return true;\n }\n else if (slimDOMOptions.headFavicon &&\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\n (sn.tagName === 'meta' &&\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\n lowerIfExists(sn.attributes.name) === 'application-name' ||\n lowerIfExists(sn.attributes.rel) === 'icon' ||\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\n return true;\n }\n else if (sn.tagName === 'meta') {\n if (slimDOMOptions.headMetaDescKeywords &&\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n }\n else if (slimDOMOptions.headMetaSocial &&\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\n return true;\n }\n else if (slimDOMOptions.headMetaRobots &&\n (lowerIfExists(sn.attributes.name) === 'robots' ||\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\n return true;\n }\n else if (slimDOMOptions.headMetaHttpEquiv &&\n sn.attributes['http-equiv'] !== undefined) {\n return true;\n }\n else if (slimDOMOptions.headMetaAuthorship &&\n (lowerIfExists(sn.attributes.name) === 'author' ||\n lowerIfExists(sn.attributes.name) === 'generator' ||\n lowerIfExists(sn.attributes.name) === 'framework' ||\n lowerIfExists(sn.attributes.name) === 'publisher' ||\n lowerIfExists(sn.attributes.name) === 'progid' ||\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n }\n else if (slimDOMOptions.headMetaVerification &&\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\n lowerIfExists(sn.attributes.name) === 'verification' ||\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n, options) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, maskAllText, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskAttributeFn, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\n let { preserveWhiteSpace = true } = options;\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n });\n if (!_serializedNode) {\n console.warn(n, 'not serialized');\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n }\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\n (!preserveWhiteSpace &&\n _serializedNode.type === NodeType$1.Text &&\n !_serializedNode.isStyle &&\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\n id = IGNORED_NODE;\n }\n else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$1.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRoot = n.shadowRoot;\n if (shadowRoot && isNativeShadowDom(shadowRoot))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$1.Document ||\n serializedNode.type === NodeType$1.Element) &&\n recordChild) {\n if (slimDOMOptions.headWhitespace &&\n serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'head') {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskAllText,\n unblockSelector,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n };\n for (const childN of Array.from(n.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n if (isElement$1(n) && n.shadowRoot) {\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(n.shadowRoot) &&\n (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n if (n.parentNode &&\n isShadowRoot(n.parentNode) &&\n isNativeShadowDom(n.parentNode)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'iframe') {\n onceIframeLoaded(n, () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedIframeNode) {\n onIframeLoad(n, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n if (serializedNode.type === NodeType$1.Element &&\n serializedNode.tagName === 'link' &&\n typeof serializedNode.attributes.rel === 'string' &&\n (serializedNode.attributes.rel === 'stylesheet' ||\n (serializedNode.attributes.rel === 'preload' &&\n typeof serializedNode.attributes.href === 'string' &&\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\n onceStylesheetLoaded(n, () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n });\n if (serializedLinkNode) {\n onStylesheetLoad(n, serializedLinkNode);\n }\n }\n }, stylesheetLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, unblockSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskAttributeFn, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n }\n : maskAllInputs === false\n ? {}\n : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\n ?\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === 'all',\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true,\n }\n : slimDOM === false\n ? {}\n : slimDOM;\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n });\n}\n\nfunction _optionalChain$4(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n}\nfunction throttle$1(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function (...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout$1(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout$1(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked\n ? d\n : {\n set(value) {\n setTimeout$1(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n });\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === 'function') {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n }\n catch (e2) {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\n nowTimestamp = () => new Date().getTime();\n}\nfunction getWindowScroll(win) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : _optionalChain$4([doc, 'optionalAccess', _ => _.documentElement, 'access', _2 => _2.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _3 => _3.body, 'optionalAccess', _4 => _4.parentElement, 'optionalAccess', _5 => _5.scrollLeft]) ||\n _optionalChain$4([doc, 'optionalAccess', _6 => _6.body, 'optionalAccess', _7 => _7.scrollLeft]) ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : _optionalChain$4([doc, 'optionalAccess', _8 => _8.documentElement, 'access', _9 => _9.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _10 => _10.body, 'optionalAccess', _11 => _11.parentElement, 'optionalAccess', _12 => _12.scrollTop]) ||\n _optionalChain$4([doc, 'optionalAccess', _13 => _13.body, 'optionalAccess', _14 => _14.scrollTop]) ||\n 0,\n };\n}\nfunction getWindowHeight() {\n return (window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight));\n}\nfunction getWindowWidth() {\n return (window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth));\n}\nfunction closestElementOfNode(node) {\n if (!node) {\n return null;\n }\n const el = node.nodeType === node.ELEMENT_NODE\n ? node\n : node.parentElement;\n return el;\n}\nfunction isBlocked(node, blockClass, blockSelector, unblockSelector, checkAncestors) {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n if (!el) {\n return false;\n }\n const blockedPredicate = createMatchPredicate(blockClass, blockSelector);\n if (!checkAncestors) {\n const isUnblocked = unblockSelector && el.matches(unblockSelector);\n return blockedPredicate(el) && !isUnblocked;\n }\n const blockDistance = distanceToMatch(el, blockedPredicate);\n let unblockDistance = -1;\n if (blockDistance < 0) {\n return false;\n }\n if (unblockSelector) {\n unblockDistance = distanceToMatch(el, createMatchPredicate(null, unblockSelector));\n }\n if (blockDistance > -1 && unblockDistance < 0) {\n return true;\n }\n return blockDistance < unblockDistance;\n}\nfunction isSerialized(n, mirror) {\n return mirror.getId(n) !== -1;\n}\nfunction isIgnored(n, mirror) {\n return mirror.getId(n) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n if (target.parentNode &&\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!target.parentNode) {\n return true;\n }\n return isAncestorRemoved(target.parentNode, mirror);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype\n .forEach;\n }\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach;\n }\n if (!Node.prototype.contains) {\n Node.prototype.contains = (...args) => {\n let node = args[0];\n if (!(0 in args)) {\n throw new TypeError('1 argument is required');\n }\n do {\n if (this === node) {\n return true;\n }\n } while ((node = node && node.parentNode));\n return false;\n };\n }\n}\nfunction isSerializedIframe(n, mirror) {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\nfunction isSerializedStylesheet(n, mirror) {\n return Boolean(n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n n.getAttribute &&\n n.getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n));\n}\nfunction hasShadowRoot(n) {\n return Boolean(_optionalChain$4([n, 'optionalAccess', _18 => _18.shadowRoot]));\n}\nclass StyleSheetMirror {\n constructor() {\n this.id = 1;\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n }\n getId(stylesheet) {\n return _nullishCoalesce(this.styleIDMap.get(stylesheet), () => ( -1));\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n add(stylesheet, id) {\n if (this.has(stylesheet))\n return this.getId(stylesheet);\n let newId;\n if (id === undefined) {\n newId = this.id++;\n }\n else\n newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n) {\n let shadowHost = null;\n if (_optionalChain$4([n, 'access', _19 => _19.getRootNode, 'optionalCall', _20 => _20(), 'optionalAccess', _21 => _21.nodeType]) === Node.DOCUMENT_FRAGMENT_NODE &&\n n.getRootNode().host)\n shadowHost = n.getRootNode().host;\n return shadowHost;\n}\nfunction getRootShadowHost(n) {\n let rootShadowHost = n;\n let shadowHost;\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n const shadowHost = getRootShadowHost(n);\n return doc.contains(shadowHost);\n}\nfunction inDom(n) {\n const doc = n.ownerDocument;\n if (!doc)\n return false;\n return doc.contains(n) || shadowHostInDom(n);\n}\nconst cachedImplementations = {};\nfunction getImplementation(name) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n const document = window.document;\n let impl = window[name];\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl =\n contentWindow[name];\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n }\n }\n return (cachedImplementations[name] = impl.bind(window));\n}\nfunction onRequestAnimationFrame(...rest) {\n return getImplementation('requestAnimationFrame')(...rest);\n}\nfunction setTimeout$1(...rest) {\n return getImplementation('setTimeout')(...rest);\n}\nfunction clearTimeout$1(...rest) {\n return getImplementation('clearTimeout')(...rest);\n}\n\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\n\nfunction _optionalChain$3(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nfunction isNodeInLinkedList(n) {\n return '__ln' in n;\n}\nclass DoubleLinkedList {\n constructor() {\n this.length = 0;\n this.head = null;\n this.tail = null;\n }\n get(position) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = _optionalChain$3([current, 'optionalAccess', _ => _.next]) || null;\n }\n return current;\n }\n addNode(n) {\n const node = {\n value: n,\n previous: null,\n next: null,\n };\n n.__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n }\n else if (n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n }\n else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n removeNode(n) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n }\n else {\n this.tail = null;\n }\n }\n else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n }\n else {\n this.tail = current.previous;\n }\n }\n if (n.__ln) {\n delete n.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n this.frozen = false;\n this.locked = false;\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap();\n this.removes = [];\n this.mapRemoves = [];\n this.movedMap = {};\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.processMutations = (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n };\n this.emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n) => {\n let ns = n;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n) => {\n if (!n.parentNode || !inDom(n)) {\n return;\n }\n const parentId = isShadowRoot(n.parentNode)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(n.parentNode);\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskAllText: this.maskAllText,\n unblockSelector: this.unblockSelector,\n maskTextClass: this.maskTextClass,\n unmaskTextClass: this.unmaskTextClass,\n maskTextSelector: this.maskTextSelector,\n unmaskTextSelector: this.unmaskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskAttributeFn: this.maskAttributeFn,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror) &&\n !isBlocked(currentN, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(currentN);\n }\n if (hasShadowRoot(n)) {\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n if (isBlocked(iframe, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n return;\n }\n this.iframeManager.attachIframe(iframe, childSn);\n if (iframe.contentWindow) {\n this.canvasManager.addWindow(iframe.contentWindow);\n }\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn,\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n of this.movedSet) {\n if (isParentRemoved(this.removes, n, this.mirror) &&\n !this.movedSet.has(n.parentNode)) {\n continue;\n }\n pushAdd(n);\n }\n for (const n of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removes, n, this.mirror)) {\n pushAdd(n);\n }\n else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n }\n else {\n this.droppedSet.add(n);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node = null;\n if (candidate) {\n const parentId = this.mirror.getId(candidate.value.parentNode);\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(_node.value.parentNode);\n const nextId = getNextId(_node.value);\n if (nextId === -1)\n continue;\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n else {\n const unhandledNode = _node.value;\n if (unhandledNode.parentNode &&\n unhandledNode.parentNode.nodeType ===\n Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = unhandledNode.parentNode\n .host;\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n const payload = {\n texts: this.texts\n .map((text) => ({\n id: this.mirror.getId(text.node),\n value: text.value,\n }))\n .filter((text) => !addedIds.has(text.id))\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === 'string') {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n .filter((attribute) => !addedIds.has(attribute.id))\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n if (!payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap();\n this.removes = [];\n this.addedSet = new Set();\n this.movedSet = new Set();\n this.droppedSet = new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n };\n this.processMutation = (m) => {\n if (isIgnored(m.target, this.mirror)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n const value = m.target.textContent;\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) &&\n value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && value\n ? this.maskTextFn\n ? this.maskTextFn(value, closestElementOfNode(m.target))\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === 'value') {\n const type = getInputType(target);\n const tagName = target.tagName;\n value = getInputValue(target, tagName, type);\n const isInputMasked = shouldMaskInput({\n maskInputOptions: this.maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, isInputMasked);\n value = maskInputValue({\n isMasked: forceMask,\n element: target,\n value,\n maskInputFn: this.maskInputFn,\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = 'rr_src';\n }\n else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password') {\n target.setAttribute('data-rr-is-password', 'true');\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value, target, this.maskAttributeFn);\n if (attributeName === 'style') {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc =\n document.implementation.createHTMLDocument();\n }\n catch (e) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n }\n else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n }\n else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n item.styleDiff[pname] = false;\n }\n }\n }\n }\n break;\n }\n case 'childList': {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, true)) {\n return;\n }\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(m.target.host)\n : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, this.unblockSelector, false) ||\n isIgnored(n, this.mirror) ||\n !isSerialized(n, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n }\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n);\n }\n else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n }\n };\n this.genAdds = (n, target) => {\n if (this.processedNodeManager.inOtherBuffer(n, this))\n return;\n if (this.addedSet.has(n) || this.movedSet.has(n))\n return;\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror)) {\n return;\n }\n this.movedSet.add(n);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\n }\n }\n else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n if (!isBlocked(n, this.blockClass, this.blockSelector, this.unblockSelector, false)) {\n n.childNodes.forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n n.shadowRoot.childNodes.forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n }\n init(options) {\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'unblockSelector',\n 'maskAllText',\n 'maskTextClass',\n 'unmaskTextClass',\n 'maskTextSelector',\n 'unmaskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskAttributeFn',\n 'maskTextFn',\n 'maskInputFn',\n 'keepIframeSrcFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'dataURLOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'stylesheetManager',\n 'shadowDomManager',\n 'canvasManager',\n 'processedNodeManager',\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n) {\n addsSet.delete(n);\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction isParentRemoved(removes, n, mirror) {\n if (removes.length === 0)\n return false;\n return _isParentRemoved(removes, n, mirror);\n}\nfunction _isParentRemoved(removes, n, mirror) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n const parentId = mirror.getId(parentNode);\n if (removes.some((r) => r.id === parentId)) {\n return true;\n }\n return _isParentRemoved(removes, parentNode, mirror);\n}\nfunction isAncestorInSet(set, n) {\n if (set.size === 0)\n return false;\n return _isAncestorInSet(set, n);\n}\nfunction _isAncestorInSet(set, n) {\n const { parentNode } = n;\n if (!parentNode) {\n return false;\n }\n if (set.has(parentNode)) {\n return true;\n }\n return _isAncestorInSet(set, parentNode);\n}\n\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = undefined;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = ((...rest) => {\n try {\n return cb(...rest);\n }\n catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return () => {\n };\n }\n throw error;\n }\n });\n return rrwebWrapped;\n};\n\nfunction _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if ('composedPath' in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n }\n else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n }\n catch (e2) {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n let mutationObserverCtor = window.MutationObserver ||\n window.__rrMutationObserver;\n const angularZoneSymbol = _optionalChain$2([window, 'optionalAccess', _ => _.Zone, 'optionalAccess', _2 => _2.__symbol__, 'optionalCall', _3 => _3('MutationObserver')]);\n if (angularZoneSymbol &&\n window[angularZoneSymbol]) {\n mutationObserverCtor = window[angularZoneSymbol];\n }\n const observer = new mutationObserverCtor(callbackWrapper((mutations) => {\n if (options.onMutation && options.onMutation(mutations) === false) {\n return;\n }\n mutationBuffer.processMutations.bind(mutationBuffer)(mutations);\n }));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle$1(callbackWrapper((source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }), callbackThreshold);\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove);\n }), threshold, {\n trailing: false,\n }));\n const handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if ('pointerType' in event) {\n switch (event.pointerType) {\n case 'mouse':\n pointerType = PointerTypes.Mouse;\n break;\n case 'touch':\n pointerType = PointerTypes.Touch;\n break;\n case 'pen':\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = 'TouchStart';\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = 'TouchEnd';\n }\n }\n else if (pointerType === PointerTypes.Pen) ;\n }\n else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if ((thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)) {\n pointerType = null;\n }\n }\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...(pointerType !== null && { pointerType }),\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter((key) => Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false)\n .forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace('mouse', 'pointer');\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, unblockSelector, sampling, }) {\n const updatePosition = callbackWrapper(throttle$1(callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const id = mirror.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top,\n });\n }\n else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop,\n });\n }\n }), sampling.scroll || 100));\n return on('scroll', updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(throttle$1(callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }), 200));\n return on('resize', updateDimension, win);\n}\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap = new WeakMap();\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, unblockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, maskTextClass, unmaskTextClass, maskTextSelector, unmaskTextSelector, }) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && toUpperCase(target.tagName);\n if (tagName === 'OPTION')\n target = target.parentElement;\n if (!target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const el = target;\n if (el.classList.contains(ignoreClass) ||\n (ignoreSelector && el.matches(ignoreSelector))) {\n return;\n }\n const type = getInputType(target);\n let text = getInputValue(el, tagName, type);\n let isChecked = false;\n const isInputMasked = shouldMaskInput({\n maskInputOptions,\n tagName,\n type,\n });\n const forceMask = needMaskingText(target, maskTextClass, maskTextSelector, unmaskTextClass, unmaskTextSelector, isInputMasked);\n if (type === 'radio' || type === 'checkbox') {\n isChecked = target.checked;\n }\n text = maskInputValue({\n isMasked: forceMask,\n element: target,\n value: text,\n maskInputFn,\n });\n cbWithDedup(target, userTriggeredOnInput\n ? { text, isChecked, userTriggered }\n : { text, isChecked });\n const name = target.name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = maskInputValue({\n isMasked: forceMask,\n element: el,\n value: getInputValue(el, tagName, type),\n maskInputFn,\n });\n cbWithDedup(el, userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked });\n }\n });\n }\n }\n function cbWithDedup(target, v) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, 'value'],\n [currentWindow.HTMLInputElement.prototype, 'checked'],\n [currentWindow.HTMLSelectElement.prototype, 'value'],\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false,\n });\n },\n }, false, currentWindow)));\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule) {\n const positions = [];\n function recurse(childRule, pos) {\n if ((hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)) {\n const rules = Array.from(childRule.parentRule.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\n let id, styleId;\n if (!sheet)\n return {};\n if (sheet.ownerNode)\n id = mirror.getId(sheet.ownerNode);\n else\n styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n }\n else {\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n insertRule: type.prototype.insertRule,\n deleteRule: type.prototype.deleteRule,\n };\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [rule, index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0,\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [index] = argumentsList;\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\n let hostId = null;\n if (host.nodeName === '#document')\n hostId = mirror.getId(host);\n else\n hostId = mirror.getId(host.host);\n const patchTarget = host.nodeName === '#document'\n ? _optionalChain$2([host, 'access', _4 => _4.defaultView, 'optionalAccess', _5 => _5.Document])\n : _optionalChain$2([host, 'access', _6 => _6.ownerDocument, 'optionalAccess', _7 => _7.defaultView, 'optionalAccess', _8 => _8.ShadowRoot]);\n const originalPropertyDescriptor = _optionalChain$2([patchTarget, 'optionalAccess', _9 => _9.prototype])\n ? Object.getOwnPropertyDescriptor(_optionalChain$2([patchTarget, 'optionalAccess', _10 => _10.prototype]), 'adoptedStyleSheets')\n : undefined;\n if (hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n return _optionalChain$2([originalPropertyDescriptor, 'access', _11 => _11.get, 'optionalAccess', _12 => _12.call, 'call', _13 => _13(this)]);\n },\n set(sheets) {\n const result = _optionalChain$2([originalPropertyDescriptor, 'access', _14 => _14.set, 'optionalAccess', _15 => _15.call, 'call', _16 => _16(this, sheets)]);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n }\n catch (e) {\n }\n }\n return result;\n },\n });\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get: originalPropertyDescriptor.get,\n set: originalPropertyDescriptor.set,\n });\n });\n}\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _17 => _17.parentRule, 'optionalAccess', _18 => _18.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper((target, thisArg, argumentsList) => {\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(_optionalChain$2([thisArg, 'access', _19 => _19.parentRule, 'optionalAccess', _20 => _20.parentStyleSheet]), mirror, stylesheetManager.styleMirror);\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property,\n },\n index: getNestedCSSRulePositions(thisArg.parentRule),\n });\n }\n return target.apply(thisArg, argumentsList);\n }),\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, unblockSelector, mirror, sampling, doc, }) {\n const handler = callbackWrapper((type) => throttle$1(callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target ||\n isBlocked(target, blockClass, blockSelector, unblockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate } = target;\n mediaInteractionCb({\n type,\n id: mirror.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n });\n }), sampling.media || 500));\n const handlers = [\n on('play', handler(0), doc),\n on('pause', handler(1), doc),\n on('seeked', handler(2), doc),\n on('volumechange', handler(3), doc),\n on('ratechange', handler(4), doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource: typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n };\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\n return function (fontFace) {\n setTimeout$1(callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }), 0);\n return original.apply(this, [fontFace]);\n };\n });\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror, blockClass, blockSelector, unblockSelector, selectionCb, } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || (collapsed && _optionalChain$2([selection, 'optionalAccess', _21 => _21.isCollapsed])))\n return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, unblockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, unblockSelector, true);\n if (blocked)\n continue;\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on('selectionchange', updateSelection);\n}\nfunction initCustomElementObserver({ doc, customElementCb, }) {\n const win = doc.defaultView;\n if (!win || !win.customElements)\n return () => { };\n const restoreHandler = patch(win.customElements, 'define', function (original) {\n return function (name, constructor, options) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n }\n catch (e) {\n }\n return original.apply(this, [name, constructor, options]);\n };\n });\n return restoreHandler;\n}\nfunction initObservers(o, _hooks = {}) {\n const currentWindow = o.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n let mutationObserver;\n if (o.recordDOM) {\n mutationObserver = initMutationObserver(o, o.doc);\n }\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n let styleSheetObserver = () => { };\n let adoptedStyleSheetObserver = () => { };\n let styleDeclarationObserver = () => { };\n let fontObserver = () => { };\n if (o.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n if (o.collectFonts) {\n fontObserver = initFontObserver(o);\n }\n }\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n const pluginHandlers = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n _optionalChain$2([mutationObserver, 'optionalAccess', _22 => _22.disconnect, 'call', _23 => _23()]);\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== 'undefined';\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(typeof window[prop] !== 'undefined' &&\n window[prop].prototype &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype);\n}\n\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n this.generateIdFn = generateIdFn;\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== 'number')\n return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId)\n return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n\nfunction _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\nclass IframeManagerNoop {\n constructor() {\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n }\n addIframe() {\n }\n addLoadListener() {\n }\n attachIframe() {\n }\n}\nclass IframeManager {\n constructor(options) {\n this.iframes = new WeakMap();\n this.crossOriginIframeMap = new WeakMap();\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n this.crossOriginIframeRootIdMap = new WeakMap();\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener('message', this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n _optionalChain$1([this, 'access', _ => _.loadListener, 'optionalCall', _2 => _2(iframeEl)]);\n if (iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow)\n return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl)\n return;\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\n if (transformedEvent)\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\n }\n transformCrossOriginEvent(iframeEl, e) {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n return {\n timestamp: e.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e.data.node,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n },\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e;\n }\n case EventType.Custom: {\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n _optionalChain$1([e, 'access', _3 => _3.data, 'access', _4 => _4.styles, 'optionalAccess', _5 => _5.forEach, 'call', _6 => _6((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n })]);\n return e;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\n continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\n }\n else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node, iframeEl) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node, rootId) {\n if (node.type !== NodeType$1.Document && !node.rootId)\n node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\n\nclass ShadowDomManagerNoop {\n init() {\n }\n addShadowRoot() {\n }\n observeAttachShadow() {\n }\n reset() {\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n this.shadowDoms = new WeakSet();\n this.restoreHandlers = [];\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot, doc) {\n if (!isNativeShadowDom(shadowRoot))\n return;\n if (this.shadowDoms.has(shadowRoot))\n return;\n this.shadowDoms.add(shadowRoot);\n this.bypassOptions.canvasManager.addShadowRoot(shadowRoot);\n const observer = initMutationObserver({\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n }, shadowRoot);\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n doc: shadowRoot,\n mirror: this.mirror,\n }));\n setTimeout$1(() => {\n if (shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n }, shadowRoot));\n }, 0);\n }\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\n return;\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\n }\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\n return function (option) {\n const shadowRoot = original.call(this, option);\n if (this.shadowRoot && inDom(this))\n manager.addShadowRoot(this.shadowRoot, doc);\n return shadowRoot;\n };\n }));\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n }\n catch (e) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n this.bypassOptions.canvasManager.resetShadowRoots();\n }\n}\n\nclass CanvasManagerNoop {\n reset() {\n }\n freeze() {\n }\n unfreeze() {\n }\n lock() {\n }\n unlock() {\n }\n snapshot() {\n }\n addWindow() {\n }\n addShadowRoot() {\n }\n resetShadowRoots() {\n }\n}\n\nclass StylesheetManager {\n constructor(options) {\n this.trackedLinkElements = new WeakSet();\n this.styleMirror = new StyleSheetMirror();\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if ('_cssText' in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn\n .attributes,\n },\n ],\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl))\n return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0)\n return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: [],\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\n rule: stringifyRule(r),\n index,\n })),\n });\n }\n else\n styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0)\n adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n trackStylesheetInLinkElement(linkEl) {\n }\n}\n\nclass ProcessedNodeManager {\n constructor() {\n this.nodeMap = new WeakMap();\n this.loop = true;\n this.periodicallyClear();\n }\n periodicallyClear() {\n onRequestAnimationFrame(() => {\n this.clear();\n if (this.loop)\n this.periodicallyClear();\n });\n }\n inOtherBuffer(node, thisBuffer) {\n const buffers = this.nodeMap.get(node);\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\n }\n add(node, buffer) {\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n clear() {\n this.nodeMap = new WeakMap();\n }\n destroy() {\n this.loop = false;\n }\n}\n\nlet wrappedEmit;\nlet _takeFullSnapshot;\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement('iframe');\n document.body.appendChild(cleanFrame);\n Array.from = _optionalChain([cleanFrame, 'access', _ => _.contentWindow, 'optionalAccess', _2 => _2.Array, 'access', _3 => _3.from]) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n}\ncatch (err) {\n console.debug('Unable to override Array.from', err);\n}\nconst mirror = createMirror();\nfunction record(options = {}) {\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, unblockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskAllText = false, maskTextClass = 'rr-mask', unmaskTextClass = null, maskTextSelector = null, unmaskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskAttributeFn, maskInputFn, maskTextFn, maxCanvasSize = null, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\n ? options.recordAfter\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, onMutation, getCanvasManager, } = options;\n registerErrorHandler(errorHandler);\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n }\n catch (e) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n radio: true,\n checkbox: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : {};\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n polyfill();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e) => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (packFn &&\n !passEmitsToParent) {\n e = packFn(e);\n }\n return e;\n };\n wrappedEmit = (r, isCheckout) => {\n const e = r;\n e.timestamp = nowTimestamp();\n if (_optionalChain([mutationBuffers, 'access', _4 => _4[0], 'optionalAccess', _5 => _5.isFrozen, 'call', _6 => _6()]) &&\n e.type !== EventType.FullSnapshot &&\n !(e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n _optionalChain([emit, 'optionalCall', _7 => _7(eventProcessor(e), isCheckout)]);\n }\n else if (passEmitsToParent) {\n const message = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n }\n else if (e.type === EventType.IncrementalSnapshot) {\n if (e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms &&\n lastFullSnapshotEvent &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n });\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n const iframeManager = typeof __RRWEB_EXCLUDE_IFRAME__ === 'boolean' && __RRWEB_EXCLUDE_IFRAME__\n ? new IframeManagerNoop()\n : new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n const canvasManager = _getCanvasManager(getCanvasManager, {\n mirror,\n win: window,\n mutationCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n }),\n recordCanvas,\n blockClass,\n blockSelector,\n unblockSelector,\n maxCanvasSize,\n sampling: sampling['canvas'],\n dataURLOptions,\n errorHandler,\n });\n const shadowDomManager = typeof __RRWEB_EXCLUDE_SHADOW_DOM__ === 'boolean' &&\n __RRWEB_EXCLUDE_SHADOW_DOM__\n ? new ShadowDomManagerNoop()\n : new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n onMutation,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskAttributeFn,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n },\n mirror,\n });\n const takeFullSnapshot = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n }, isCheckout);\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n unblockSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n);\n }\n if (hasShadowRoot(n)) {\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n if (iframe.contentWindow) {\n canvasManager.addWindow(iframe.contentWindow);\n }\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn,\n });\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n wrappedEmit({\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n });\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\n };\n _takeFullSnapshot = takeFullSnapshot;\n try {\n const handlers = [];\n const observe = (doc) => {\n return callbackWrapper(initObservers)({\n onMutation,\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n }),\n inputCb: (v) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n }),\n styleSheetRuleCb: (r) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n }),\n styleDeclarationCb: (r) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p,\n },\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p,\n },\n });\n },\n customElementCb: (c) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\n },\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskAllText,\n maskTextClass,\n unmaskTextClass,\n maskTextSelector,\n unmaskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskAttributeFn,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n unblockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: _optionalChain([plugins\n, 'optionalAccess', _8 => _8.filter, 'call', _9 => _9((p) => p.observer)\n, 'optionalAccess', _10 => _10.map, 'call', _11 => _11((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n }),\n }))]) || [],\n }, {});\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n }\n catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n };\n if (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n init();\n }\n else {\n handlers.push(on('DOMContentLoaded', () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {},\n });\n if (recordAfter === 'DOMContentLoaded')\n init();\n }));\n handlers.push(on('load', () => {\n wrappedEmit({\n type: EventType.Load,\n data: {},\n });\n if (recordAfter === 'load')\n init();\n }, window));\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n _takeFullSnapshot = undefined;\n unregisterErrorHandler();\n };\n }\n catch (error) {\n console.warn(error);\n }\n}\nfunction takeFullSnapshot(isCheckout) {\n if (!_takeFullSnapshot) {\n throw new Error('please take full snapshot after start recording');\n }\n _takeFullSnapshot(isCheckout);\n}\nrecord.mirror = mirror;\nrecord.takeFullSnapshot = takeFullSnapshot;\nfunction _getCanvasManager(getCanvasManagerFn, options) {\n try {\n return getCanvasManagerFn\n ? getCanvasManagerFn(options)\n : new CanvasManagerNoop();\n }\n catch (e2) {\n console.warn('Unable to initialize CanvasManager');\n return new CanvasManagerNoop();\n }\n}\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nconst CONSOLE_LEVELS = ['info', 'warn', 'error', 'log'] ;\nconst PREFIX = '[Replay] ';\n\nfunction _addBreadcrumb(message, level = 'info') {\n addBreadcrumb(\n {\n category: 'console',\n data: {\n logger: 'replay',\n },\n level,\n message: `${PREFIX}${message}`,\n },\n { level },\n );\n}\n\nfunction makeReplayLogger() {\n let _capture = false;\n let _trace = false;\n\n const _logger = {\n exception: () => undefined,\n infoTick: () => undefined,\n setConfig: (opts) => {\n _capture = opts.captureExceptions;\n _trace = opts.traceInternals;\n },\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n _logger[name] = (...args) => {\n logger$1[name](PREFIX, ...args);\n if (_trace) {\n _addBreadcrumb(args.join(''), severityLevelFromString(name));\n }\n };\n });\n\n _logger.exception = (error, ...message) => {\n if (message.length && _logger.error) {\n _logger.error(...message);\n }\n\n logger$1.error(PREFIX, error);\n\n if (_capture) {\n captureException(error);\n } else if (_trace) {\n // No need for a breadcrumb if `_capture` is enabled since it should be\n // captured as an exception\n _addBreadcrumb(error, 'error');\n }\n };\n\n _logger.infoTick = (...args) => {\n logger$1.info(PREFIX, ...args);\n if (_trace) {\n // Wait a tick here to avoid race conditions for some initial logs\n // which may be added before replay is initialized\n setTimeout(() => _addBreadcrumb(args[0]), 0);\n }\n };\n } else {\n CONSOLE_LEVELS.forEach(name => {\n _logger[name] = () => undefined;\n });\n }\n\n return _logger ;\n}\n\nconst logger = makeReplayLogger();\n\nconst ReplayEventTypeIncrementalSnapshot = 3;\nconst ReplayEventTypeCustom = 5;\n\n/**\n * Converts a timestamp to ms, if it was in s, or keeps it as ms.\n */\nfunction timestampToMs(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp : timestamp * 1000;\n}\n\n/**\n * Converts a timestamp to s, if it was in ms, or keeps it as s.\n */\nfunction timestampToS(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Add a breadcrumb event to replay.\n */\nfunction addBreadcrumbEvent(replay, breadcrumb) {\n if (breadcrumb.category === 'sentry.transaction') {\n return;\n }\n\n if (['ui.click', 'ui.input'].includes(breadcrumb.category )) {\n replay.triggerUserActivity();\n } else {\n replay.checkAndHandleExpiredSession();\n }\n\n replay.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n // TODO: We were converting from ms to seconds for breadcrumbs, spans,\n // but maybe we should just keep them as milliseconds\n timestamp: (breadcrumb.timestamp || 0) * 1000,\n data: {\n tag: 'breadcrumb',\n // normalize to max. 10 depth and 1_000 properties per object\n payload: normalize(breadcrumb, 10, 1000),\n },\n });\n\n // Do not flush after console log messages\n return breadcrumb.category === 'console';\n });\n}\n\nconst INTERACTIVE_SELECTOR = 'button,a';\n\n/** Get the closest interactive parent element, or else return the given element. */\nfunction getClosestInteractive(element) {\n const closestInteractive = element.closest(INTERACTIVE_SELECTOR);\n return closestInteractive || element;\n}\n\n/**\n * For clicks, we check if the target is inside of a button or link\n * If so, we use this as the target instead\n * This is useful because if you click on the image in <button><img></button>,\n * The target will be the image, not the button, which we don't want here\n */\nfunction getClickTargetNode(event) {\n const target = getTargetNode(event);\n\n if (!target || !(target instanceof Element)) {\n return target;\n }\n\n return getClosestInteractive(target);\n}\n\n/** Get the event target node. */\nfunction getTargetNode(event) {\n if (isEventWithTarget(event)) {\n return event.target ;\n }\n\n return event;\n}\n\nfunction isEventWithTarget(event) {\n return typeof event === 'object' && !!event && 'target' in event;\n}\n\nlet handlers;\n\n/**\n * Register a handler to be called when `window.open()` is called.\n * Returns a cleanup function.\n */\nfunction onWindowOpen(cb) {\n // Ensure to only register this once\n if (!handlers) {\n handlers = [];\n monkeyPatchWindowOpen();\n }\n\n handlers.push(cb);\n\n return () => {\n const pos = handlers ? handlers.indexOf(cb) : -1;\n if (pos > -1) {\n (handlers ).splice(pos, 1);\n }\n };\n}\n\nfunction monkeyPatchWindowOpen() {\n fill(WINDOW, 'open', function (originalWindowOpen) {\n return function (...args) {\n if (handlers) {\n try {\n handlers.forEach(handler => handler());\n } catch (e) {\n // ignore errors in here\n }\n }\n\n return originalWindowOpen.apply(WINDOW, args);\n };\n });\n}\n\n/** Any IncrementalSource for rrweb that we interpret as a kind of mutation. */\nconst IncrementalMutationSources = new Set([\n IncrementalSource.Mutation,\n IncrementalSource.StyleSheetRule,\n IncrementalSource.StyleDeclaration,\n IncrementalSource.AdoptedStyleSheet,\n IncrementalSource.CanvasMutation,\n IncrementalSource.Selection,\n IncrementalSource.MediaInteraction,\n]);\n\n/** Handle a click. */\nfunction handleClick(clickDetector, clickBreadcrumb, node) {\n clickDetector.handleClick(clickBreadcrumb, node);\n}\n\n/** A click detector class that can be used to detect slow or rage clicks on elements. */\nclass ClickDetector {\n // protected for testing\n\n constructor(\n replay,\n slowClickConfig,\n // Just for easier testing\n _addBreadcrumbEvent = addBreadcrumbEvent,\n ) {\n this._lastMutation = 0;\n this._lastScroll = 0;\n this._clicks = [];\n\n // We want everything in s, but options are in ms\n this._timeout = slowClickConfig.timeout / 1000;\n this._threshold = slowClickConfig.threshold / 1000;\n this._scollTimeout = slowClickConfig.scrollTimeout / 1000;\n this._replay = replay;\n this._ignoreSelector = slowClickConfig.ignoreSelector;\n this._addBreadcrumbEvent = _addBreadcrumbEvent;\n }\n\n /** Register click detection handlers on mutation or scroll. */\n addListeners() {\n const cleanupWindowOpen = onWindowOpen(() => {\n // Treat window.open as mutation\n this._lastMutation = nowInSeconds();\n });\n\n this._teardown = () => {\n cleanupWindowOpen();\n\n this._clicks = [];\n this._lastMutation = 0;\n this._lastScroll = 0;\n };\n }\n\n /** Clean up listeners. */\n removeListeners() {\n if (this._teardown) {\n this._teardown();\n }\n\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n }\n\n /** @inheritDoc */\n handleClick(breadcrumb, node) {\n if (ignoreElement(node, this._ignoreSelector) || !isClickBreadcrumb(breadcrumb)) {\n return;\n }\n\n const newClick = {\n timestamp: timestampToS(breadcrumb.timestamp),\n clickBreadcrumb: breadcrumb,\n // Set this to 0 so we know it originates from the click breadcrumb\n clickCount: 0,\n node,\n };\n\n // If there was a click in the last 1s on the same element, ignore it - only keep a single reference per second\n if (\n this._clicks.some(click => click.node === newClick.node && Math.abs(click.timestamp - newClick.timestamp) < 1)\n ) {\n return;\n }\n\n this._clicks.push(newClick);\n\n // If this is the first new click, set a timeout to check for multi clicks\n if (this._clicks.length === 1) {\n this._scheduleCheckClicks();\n }\n }\n\n /** @inheritDoc */\n registerMutation(timestamp = Date.now()) {\n this._lastMutation = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerScroll(timestamp = Date.now()) {\n this._lastScroll = timestampToS(timestamp);\n }\n\n /** @inheritDoc */\n registerClick(element) {\n const node = getClosestInteractive(element);\n this._handleMultiClick(node );\n }\n\n /** Count multiple clicks on elements. */\n _handleMultiClick(node) {\n this._getClicks(node).forEach(click => {\n click.clickCount++;\n });\n }\n\n /** Get all pending clicks for a given node. */\n _getClicks(node) {\n return this._clicks.filter(click => click.node === node);\n }\n\n /** Check the clicks that happened. */\n _checkClicks() {\n const timedOutClicks = [];\n\n const now = nowInSeconds();\n\n this._clicks.forEach(click => {\n if (!click.mutationAfter && this._lastMutation) {\n click.mutationAfter = click.timestamp <= this._lastMutation ? this._lastMutation - click.timestamp : undefined;\n }\n if (!click.scrollAfter && this._lastScroll) {\n click.scrollAfter = click.timestamp <= this._lastScroll ? this._lastScroll - click.timestamp : undefined;\n }\n\n // All of these are in seconds!\n if (click.timestamp + this._timeout <= now) {\n timedOutClicks.push(click);\n }\n });\n\n // Remove \"old\" clicks\n for (const click of timedOutClicks) {\n const pos = this._clicks.indexOf(click);\n\n if (pos > -1) {\n this._generateBreadcrumbs(click);\n this._clicks.splice(pos, 1);\n }\n }\n\n // Trigger new check, unless no clicks left\n if (this._clicks.length) {\n this._scheduleCheckClicks();\n }\n }\n\n /** Generate matching breadcrumb(s) for the click. */\n _generateBreadcrumbs(click) {\n const replay = this._replay;\n const hadScroll = click.scrollAfter && click.scrollAfter <= this._scollTimeout;\n const hadMutation = click.mutationAfter && click.mutationAfter <= this._threshold;\n\n const isSlowClick = !hadScroll && !hadMutation;\n const { clickCount, clickBreadcrumb } = click;\n\n // Slow click\n if (isSlowClick) {\n // If `mutationAfter` is set, it means a mutation happened after the threshold, but before the timeout\n // If not, it means we just timed out without scroll & mutation\n const timeAfterClickMs = Math.min(click.mutationAfter || this._timeout, this._timeout) * 1000;\n const endReason = timeAfterClickMs < this._timeout * 1000 ? 'mutation' : 'timeout';\n\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.slowClickDetected',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n timeAfterClickMs,\n endReason,\n // If clickCount === 0, it means multiClick was not correctly captured here\n // - we still want to send 1 in this case\n clickCount: clickCount || 1,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n return;\n }\n\n // Multi click\n if (clickCount > 1) {\n const breadcrumb = {\n type: 'default',\n message: clickBreadcrumb.message,\n timestamp: clickBreadcrumb.timestamp,\n category: 'ui.multiClick',\n data: {\n ...clickBreadcrumb.data,\n url: WINDOW.location.href,\n route: replay.getCurrentRoute(),\n clickCount,\n metric: true,\n },\n };\n\n this._addBreadcrumbEvent(replay, breadcrumb);\n }\n }\n\n /** Schedule to check current clicks. */\n _scheduleCheckClicks() {\n if (this._checkClickTimeout) {\n clearTimeout(this._checkClickTimeout);\n }\n\n this._checkClickTimeout = setTimeout$3(() => this._checkClicks(), 1000);\n }\n}\n\nconst SLOW_CLICK_TAGS = ['A', 'BUTTON', 'INPUT'];\n\n/** exported for tests only */\nfunction ignoreElement(node, ignoreSelector) {\n if (!SLOW_CLICK_TAGS.includes(node.tagName)) {\n return true;\n }\n\n // If <input> tag, we only want to consider input[type='submit'] & input[type='button']\n if (node.tagName === 'INPUT' && !['submit', 'button'].includes(node.getAttribute('type') || '')) {\n return true;\n }\n\n // If <a> tag, detect special variants that may not lead to an action\n // If target !== _self, we may open the link somewhere else, which would lead to no action\n // Also, when downloading a file, we may not leave the page, but still not trigger an action\n if (\n node.tagName === 'A' &&\n (node.hasAttribute('download') || (node.hasAttribute('target') && node.getAttribute('target') !== '_self'))\n ) {\n return true;\n }\n\n if (ignoreSelector && node.matches(ignoreSelector)) {\n return true;\n }\n\n return false;\n}\n\nfunction isClickBreadcrumb(breadcrumb) {\n return !!(breadcrumb.data && typeof breadcrumb.data.nodeId === 'number' && breadcrumb.timestamp);\n}\n\n// This is good enough for us, and is easier to test/mock than `timestampInSeconds`\nfunction nowInSeconds() {\n return Date.now() / 1000;\n}\n\n/** Update the click detector based on a recording event of rrweb. */\nfunction updateClickDetectorForRecordingEvent(clickDetector, event) {\n try {\n // note: We only consider incremental snapshots here\n // This means that any full snapshot is ignored for mutation detection - the reason is that we simply cannot know if a mutation happened here.\n // E.g. think that we are buffering, an error happens and we take a full snapshot because we switched to session mode -\n // in this scenario, we would not know if a dead click happened because of the error, which is a key dead click scenario.\n // Instead, by ignoring full snapshots, we have the risk that we generate a false positive\n // (if a mutation _did_ happen but was \"swallowed\" by the full snapshot)\n // But this should be more unlikely as we'd generally capture the incremental snapshot right away\n\n if (!isIncrementalEvent(event)) {\n return;\n }\n\n const { source } = event.data;\n if (IncrementalMutationSources.has(source)) {\n clickDetector.registerMutation(event.timestamp);\n }\n\n if (source === IncrementalSource.Scroll) {\n clickDetector.registerScroll(event.timestamp);\n }\n\n if (isIncrementalMouseInteraction(event)) {\n const { type, id } = event.data;\n const node = record.mirror.getNode(id);\n\n if (node instanceof HTMLElement && type === MouseInteractions.Click) {\n clickDetector.registerClick(node);\n }\n }\n } catch (e) {\n // ignore errors here, e.g. if accessing something that does not exist\n }\n}\n\nfunction isIncrementalEvent(event) {\n return event.type === ReplayEventTypeIncrementalSnapshot;\n}\n\nfunction isIncrementalMouseInteraction(\n event,\n) {\n return event.data.source === IncrementalSource.MouseInteraction;\n}\n\n/**\n * Create a breadcrumb for a replay.\n */\nfunction createBreadcrumb(\n breadcrumb,\n) {\n return {\n timestamp: Date.now() / 1000,\n type: 'default',\n ...breadcrumb,\n };\n}\n\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\n})(NodeType || (NodeType = {}));\n\n// Note that these are the serialized attributes and not attributes directly on\n// the DOM Node. Attributes we are interested in:\nconst ATTRIBUTES_TO_RECORD = new Set([\n 'id',\n 'class',\n 'aria-label',\n 'role',\n 'name',\n 'alt',\n 'title',\n 'data-test-id',\n 'data-testid',\n 'disabled',\n 'aria-disabled',\n 'data-sentry-component',\n]);\n\n/**\n * Inclusion list of attributes that we want to record from the DOM element\n */\nfunction getAttributesToRecord(attributes) {\n const obj = {};\n if (!attributes['data-sentry-component'] && attributes['data-sentry-element']) {\n attributes['data-sentry-component'] = attributes['data-sentry-element'];\n }\n for (const key in attributes) {\n if (ATTRIBUTES_TO_RECORD.has(key)) {\n let normalizedKey = key;\n\n if (key === 'data-testid' || key === 'data-test-id') {\n normalizedKey = 'testId';\n }\n\n obj[normalizedKey] = attributes[key];\n }\n }\n\n return obj;\n}\n\nconst handleDomListener = (\n replay,\n) => {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleDom(handlerData);\n\n if (!result) {\n return;\n }\n\n const isClick = handlerData.name === 'click';\n const event = isClick ? (handlerData.event ) : undefined;\n // Ignore clicks if ctrl/alt/meta/shift keys are held down as they alter behavior of clicks (e.g. open in new tab)\n if (\n isClick &&\n replay.clickDetector &&\n event &&\n event.target &&\n !event.altKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey\n ) {\n handleClick(\n replay.clickDetector,\n result ,\n getClickTargetNode(handlerData.event ) ,\n );\n }\n\n addBreadcrumbEvent(replay, result);\n };\n};\n\n/** Get the base DOM breadcrumb. */\nfunction getBaseDomBreadcrumb(target, message) {\n const nodeId = record.mirror.getId(target);\n const node = nodeId && record.mirror.getNode(nodeId);\n const meta = node && record.mirror.getMeta(node);\n const element = meta && isElement(meta) ? meta : null;\n\n return {\n message,\n data: element\n ? {\n nodeId,\n node: {\n id: nodeId,\n tagName: element.tagName,\n textContent: Array.from(element.childNodes)\n .map((node) => node.type === NodeType.Text && node.textContent)\n .filter(Boolean) // filter out empty values\n .map(text => (text ).trim())\n .join(''),\n attributes: getAttributesToRecord(element.attributes),\n },\n }\n : {},\n };\n}\n\n/**\n * An event handler to react to DOM events.\n * Exported for tests.\n */\nfunction handleDom(handlerData) {\n const { target, message } = getDomTarget(handlerData);\n\n return createBreadcrumb({\n category: `ui.${handlerData.name}`,\n ...getBaseDomBreadcrumb(target, message),\n });\n}\n\nfunction getDomTarget(handlerData) {\n const isClick = handlerData.name === 'click';\n\n let message;\n let target = null;\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = isClick ? getClickTargetNode(handlerData.event ) : getTargetNode(handlerData.event );\n message = htmlTreeAsString(target, { maxStringLength: 200 }) || '<unknown>';\n } catch (e) {\n message = '<unknown>';\n }\n\n return { target, message };\n}\n\nfunction isElement(node) {\n return node.type === NodeType.Element;\n}\n\n/** Handle keyboard events & create breadcrumbs. */\nfunction handleKeyboardEvent(replay, event) {\n if (!replay.isEnabled()) {\n return;\n }\n\n // Update user activity, but do not restart recording as it can create\n // noisy/low-value replays (e.g. user comes back from idle, hits alt-tab, new\n // session with a single \"keydown\" breadcrumb is created)\n replay.updateUserActivity();\n\n const breadcrumb = getKeyboardBreadcrumb(event);\n\n if (!breadcrumb) {\n return;\n }\n\n addBreadcrumbEvent(replay, breadcrumb);\n}\n\n/** exported only for tests */\nfunction getKeyboardBreadcrumb(event) {\n const { metaKey, shiftKey, ctrlKey, altKey, key, target } = event;\n\n // never capture for input fields\n if (!target || isInputElement(target ) || !key) {\n return null;\n }\n\n // Note: We do not consider shift here, as that means \"uppercase\"\n const hasModifierKey = metaKey || ctrlKey || altKey;\n const isCharacterKey = key.length === 1; // other keys like Escape, Tab, etc have a longer length\n\n // Do not capture breadcrumb if only a word key is pressed\n // This could leak e.g. user input\n if (!hasModifierKey && isCharacterKey) {\n return null;\n }\n\n const message = htmlTreeAsString(target, { maxStringLength: 200 }) || '<unknown>';\n const baseBreadcrumb = getBaseDomBreadcrumb(target , message);\n\n return createBreadcrumb({\n category: 'ui.keyDown',\n message,\n data: {\n ...baseBreadcrumb.data,\n metaKey,\n shiftKey,\n ctrlKey,\n altKey,\n key,\n },\n });\n}\n\nfunction isInputElement(target) {\n return target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;\n}\n\n// Map entryType -> function to normalize data for event\nconst ENTRY_TYPES\n\n = {\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n resource: createResourceEntry,\n paint: createPaintEntry,\n // @ts-expect-error TODO: entry type does not fit the create* functions entry type\n navigation: createNavigationEntry,\n};\n\n/**\n * Handler creater for web vitals\n */\nfunction webVitalHandler(\n getter,\n replay,\n) {\n return ({ metric }) => void replay.replayPerformanceEntries.push(getter(metric));\n}\n\n/**\n * Create replay performance entries from the browser performance entries.\n */\nfunction createPerformanceEntries(\n entries,\n) {\n return entries.map(createPerformanceEntry).filter(Boolean) ;\n}\n\nfunction createPerformanceEntry(entry) {\n const entryType = ENTRY_TYPES[entry.entryType];\n if (!entryType) {\n return null;\n }\n\n return entryType(entry);\n}\n\nfunction getAbsoluteTime(time) {\n // browserPerformanceTimeOrigin can be undefined if `performance` or\n // `performance.now` doesn't exist, but this is already checked by this integration\n return ((browserPerformanceTimeOrigin || WINDOW.performance.timeOrigin) + time) / 1000;\n}\n\nfunction createPaintEntry(entry) {\n const { duration, entryType, name, startTime } = entry;\n\n const start = getAbsoluteTime(startTime);\n return {\n type: entryType,\n name,\n start,\n end: start + duration,\n data: undefined,\n };\n}\n\nfunction createNavigationEntry(entry) {\n const {\n entryType,\n name,\n decodedBodySize,\n duration,\n domComplete,\n encodedBodySize,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n domInteractive,\n loadEventStart,\n loadEventEnd,\n redirectCount,\n startTime,\n transferSize,\n type,\n } = entry;\n\n // Ignore entries with no duration, they do not seem to be useful and cause dupes\n if (duration === 0) {\n return null;\n }\n\n return {\n type: `${entryType}.${type}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(domComplete),\n name,\n data: {\n size: transferSize,\n decodedBodySize,\n encodedBodySize,\n duration,\n domInteractive,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n domComplete,\n redirectCount,\n },\n };\n}\n\nfunction createResourceEntry(\n entry,\n) {\n const {\n entryType,\n initiatorType,\n name,\n responseEnd,\n startTime,\n decodedBodySize,\n encodedBodySize,\n responseStatus,\n transferSize,\n } = entry;\n\n // Core SDK handles these\n if (['fetch', 'xmlhttprequest'].includes(initiatorType)) {\n return null;\n }\n\n return {\n type: `${entryType}.${initiatorType}`,\n start: getAbsoluteTime(startTime),\n end: getAbsoluteTime(responseEnd),\n name,\n data: {\n size: transferSize,\n statusCode: responseStatus,\n decodedBodySize,\n encodedBodySize,\n },\n };\n}\n\n/**\n * Add a LCP event to the replay based on a LCP metric.\n */\nfunction getLargestContentfulPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.element ? [lastEntry.element] : undefined;\n return getWebVital(metric, 'largest-contentful-paint', node);\n}\n\nfunction isLayoutShift(entry) {\n return (entry ).sources !== undefined;\n}\n\n/**\n * Add a CLS event to the replay based on a CLS metric.\n */\nfunction getCumulativeLayoutShift(metric) {\n const layoutShifts = [];\n const nodes = [];\n for (const entry of metric.entries) {\n if (isLayoutShift(entry)) {\n const nodeIds = [];\n for (const source of entry.sources) {\n if (source.node) {\n nodes.push(source.node);\n const nodeId = record.mirror.getId(source.node);\n if (nodeId) {\n nodeIds.push(nodeId);\n }\n }\n }\n layoutShifts.push({ value: entry.value, nodeIds: nodeIds.length ? nodeIds : undefined });\n }\n }\n\n return getWebVital(metric, 'cumulative-layout-shift', nodes, layoutShifts);\n}\n\n/**\n * Add a FID event to the replay based on a FID metric.\n */\nfunction getFirstInputDelay(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'first-input-delay', node);\n}\n\n/**\n * Add an INP event to the replay based on an INP metric.\n */\nfunction getInteractionToNextPaint(metric) {\n const lastEntry = metric.entries[metric.entries.length - 1] ;\n const node = lastEntry && lastEntry.target ? [lastEntry.target] : undefined;\n return getWebVital(metric, 'interaction-to-next-paint', node);\n}\n\n/**\n * Add an web vital event to the replay based on the web vital metric.\n */\nfunction getWebVital(\n metric,\n name,\n nodes,\n attributions,\n) {\n const value = metric.value;\n const rating = metric.rating;\n\n const end = getAbsoluteTime(value);\n\n return {\n type: 'web-vital',\n name,\n start: end,\n end,\n data: {\n value,\n size: value,\n rating,\n nodeIds: nodes ? nodes.map(node => record.mirror.getId(node)) : undefined,\n attributions,\n },\n };\n}\n\n/**\n * Sets up a PerformanceObserver to listen to all performance entry types.\n * Returns a callback to stop observing.\n */\nfunction setupPerformanceObserver(replay) {\n function addPerformanceEntry(entry) {\n // It is possible for entries to come up multiple times\n if (!replay.performanceEntries.includes(entry)) {\n replay.performanceEntries.push(entry);\n }\n }\n\n function onEntries({ entries }) {\n entries.forEach(addPerformanceEntry);\n }\n\n const clearCallbacks = [];\n\n (['navigation', 'paint', 'resource'] ).forEach(type => {\n clearCallbacks.push(addPerformanceInstrumentationHandler(type, onEntries));\n });\n\n clearCallbacks.push(\n addLcpInstrumentationHandler(webVitalHandler(getLargestContentfulPaint, replay)),\n addClsInstrumentationHandler(webVitalHandler(getCumulativeLayoutShift, replay)),\n addFidInstrumentationHandler(webVitalHandler(getFirstInputDelay, replay)),\n addInpInstrumentationHandler(webVitalHandler(getInteractionToNextPaint, replay)),\n );\n\n // A callback to cleanup all handlers\n return () => {\n clearCallbacks.forEach(clearCallback => clearCallback());\n };\n}\n\nconst r = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([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,0,0,0]),i=new t([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,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<<t[a-1];var s=new r(i[30]);for(a=1;a<30;++a)for(var o=i[a];o<i[a+1];++o)s[o]=o-i[a]<<5|a;return{b:i,r:s}},o=s(e,2),f=o.b,h=o.r;f[28]=258,h[258]=28;for(var l=s(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a<i;++a)t[a]&&++s[t[a]-1];var o,f=new n(r);for(a=1;a<r;++a)f[a]=f[a-1]+s[a-1]<<1;if(e){o=new n(1<<r);var h=15-r;for(a=0;a<i;++a)if(t[a])for(var l=a<<4|t[a],c=r-t[a],v=f[t[a]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>h]=l}else for(o=new n(i),a=0;a<i;++a)t[a]&&(o[a]=u[f[t[a]-1]++]>>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;a<r.length;++a)r[a]&&i.push({s:a,f:r[a]});var s=i.length,o=i.slice();if(!s)return{t:F,l:0};if(1==s){var f=new t(i[0].s+1);return f[i[0].s]=1,{t:f,l:1}}i.sort((function(t,n){return t.f-n.f})),i.push({s:-1,f:25001});var h=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:h.f+l.f,l:h,r:l};c!=s-1;)h=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:h.f+l.f,l:h,r:l};var d=o[0].s;for(a=1;a<s;++a)o[a].s>d&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<<y;for(o.sort((function(t,n){return g[n.s]-g[t.s]||t.f-n.f}));a<s;++a){var b=o[a].s;if(!(g[b]>e))break;p+=m-(1<<w-g[b]),g[b]=e}for(p>>=y;p>0;){var M=o[a].s;g[M]<e?p-=1<<e-g[M]++-1:++a}for(;a>=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a<e;++a)t[i+a+4]=r[a];return 8*(i+4+e)},C=function(t,r,s,o,f,h,l,u,c,v,m){z(r,m++,s),++f[256];for(var b=_(f,15),M=b.t,E=b.l,x=_(h,15),C=x.t,U=x.l,F=D(M),I=F.c,S=F.n,L=D(C),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=_(q,7),H=G.t,J=G.l,K=19;K>4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(C,U,0),R=C;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[a[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B<u;++B){var rt=o[B];if(rt>255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}},L=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s<o;++s)i+=e+=r[s];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},O=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<<o)-1,A=c.p||new n(32768),_=c.h||new n(z+1),x=Math.ceil(o/3),D=2*x,T=function(t){return(a[t]^a[t+1]<<x^a[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=_[H];if(A[J]=K,_[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$<Z&&a[j+$]==a[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-A[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=a[j],++I[a[j]];p=C(a,g,w,F,I,S,O,q,G,j-G,p),w||(c.r=7&p|g[p/8|0]<<3,p-=7,c.h=_,c.p=A,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+w;j+=65535){var st=j+65535;st>=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},j=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},q=function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&j(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}},B=function(t){return 10+(t.filename?t.filename.length+1:0)},G=function(){function n(n,r){if(\"function\"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(O(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();var H=function(){function t(t,n){this.c=L(),this.v=1,G.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),G.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=O(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=L();i.p(n.dictionary),j(t,2,i.d())}}(r,this.o),this.v=0),n&&j(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),J=\"undefined\"!=typeof TextEncoder&&new TextEncoder,K=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{K.decode(F,{stream:!0})}catch(t){}var N=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(P(t),this.d=n||!1)},t}();function P(n,r){if(r){for(var e=new t(n.length),i=0;i<n.length;++i)e[i]=n.charCodeAt(i);return e}if(J)return J.encode(n);var a=n.length,s=new t(n.length+(n.length>>1)),o=0,f=function(t){s[o++]=t};for(i=0;i<a;++i){if(o+5>s.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}function Q(t){return function(t,n){n||(n={});var r=S(),e=t.length;r.p(t);var i=O(t,n,B(n),8),a=i.length;return q(i,n),j(i,a-8,r.d()),j(i,a-4,e),i}(P(t))}const R=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error(\"Adding invalid event\");const n=this._hasEvents?\",\":\"\";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push(\"]\",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new H,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new N(((t,n)=>{this.deflate.push(t,n)})),this.stream.push(\"[\")}},V={clear:()=>{R.clear()},addEvent:t=>R.addEvent(t),finish:()=>R.finish(),compress:t=>Q(t)};addEventListener(\"message\",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in V&&\"function\"==typeof V[n])try{const t=V[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:\"init\",success:!0,response:void 0});`;\n\nfunction e(){const e=new Blob([r]);return URL.createObjectURL(e)}\n\n/** This error indicates that the event buffer size exceeded the limit.. */\nclass EventBufferSizeExceededError extends Error {\n constructor() {\n super(`Event buffer exceeded maximum size of ${REPLAY_MAX_EVENT_BUFFER_SIZE}.`);\n }\n}\n\n/**\n * A basic event buffer that does not do any compression.\n * Used as fallback if the compression worker cannot be loaded or is disabled.\n */\nclass EventBufferArray {\n /** All the events that are buffered to be sent. */\n\n /** @inheritdoc */\n\n constructor() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return this.events.length > 0;\n }\n\n /** @inheritdoc */\n get type() {\n return 'sync';\n }\n\n /** @inheritdoc */\n destroy() {\n this.events = [];\n }\n\n /** @inheritdoc */\n async addEvent(event) {\n const eventSize = JSON.stringify(event).length;\n this._totalSize += eventSize;\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n throw new EventBufferSizeExceededError();\n }\n\n this.events.push(event);\n }\n\n /** @inheritdoc */\n finish() {\n return new Promise(resolve => {\n // Make a copy of the events array reference and immediately clear the\n // events member so that we do not lose new events while uploading\n // attachment.\n const eventsRet = this.events;\n this.clear();\n resolve(JSON.stringify(eventsRet));\n });\n }\n\n /** @inheritdoc */\n clear() {\n this.events = [];\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n const timestamp = this.events.map(event => event.timestamp).sort()[0];\n\n if (!timestamp) {\n return null;\n }\n\n return timestampToMs(timestamp);\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass WorkerHandler {\n\n constructor(worker) {\n this._worker = worker;\n this._id = 0;\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n // Ensure we only check once\n if (this._ensureReadyPromise) {\n return this._ensureReadyPromise;\n }\n\n this._ensureReadyPromise = new Promise((resolve, reject) => {\n this._worker.addEventListener(\n 'message',\n ({ data }) => {\n if ((data ).success) {\n resolve();\n } else {\n reject();\n }\n },\n { once: true },\n );\n\n this._worker.addEventListener(\n 'error',\n error => {\n reject(error);\n },\n { once: true },\n );\n });\n\n return this._ensureReadyPromise;\n }\n\n /**\n * Destroy the worker.\n */\n destroy() {\n DEBUG_BUILD && logger.info('Destroying compression worker');\n this._worker.terminate();\n }\n\n /**\n * Post message to worker and wait for response before resolving promise.\n */\n postMessage(method, arg) {\n const id = this._getAndIncrementId();\n\n return new Promise((resolve, reject) => {\n const listener = ({ data }) => {\n const response = data ;\n if (response.method !== method) {\n return;\n }\n\n // There can be multiple listeners for a single method, the id ensures\n // that the response matches the caller.\n if (response.id !== id) {\n return;\n }\n\n // At this point, we'll always want to remove listener regardless of result status\n this._worker.removeEventListener('message', listener);\n\n if (!response.success) {\n // TODO: Do some error handling, not sure what\n DEBUG_BUILD && logger.error('Error in compression worker: ', response.response);\n\n reject(new Error('Error in compression worker'));\n return;\n }\n\n resolve(response.response );\n };\n\n // Note: we can't use `once` option because it's possible it needs to\n // listen to multiple messages\n this._worker.addEventListener('message', listener);\n this._worker.postMessage({ id, method, arg });\n });\n }\n\n /** Get the current ID and increment it for the next call. */\n _getAndIncrementId() {\n return this._id++;\n }\n}\n\n/**\n * Event buffer that uses a web worker to compress events.\n * Exported only for testing.\n */\nclass EventBufferCompressionWorker {\n /** @inheritdoc */\n\n constructor(worker) {\n this._worker = new WorkerHandler(worker);\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n }\n\n /** @inheritdoc */\n get hasEvents() {\n return !!this._earliestTimestamp;\n }\n\n /** @inheritdoc */\n get type() {\n return 'worker';\n }\n\n /**\n * Ensure the worker is ready (or not).\n * This will either resolve when the worker is ready, or reject if an error occured.\n */\n ensureReady() {\n return this._worker.ensureReady();\n }\n\n /**\n * Destroy the event buffer.\n */\n destroy() {\n this._worker.destroy();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfuly received and processed by worker.\n */\n addEvent(event) {\n const timestamp = timestampToMs(event.timestamp);\n if (!this._earliestTimestamp || timestamp < this._earliestTimestamp) {\n this._earliestTimestamp = timestamp;\n }\n\n const data = JSON.stringify(event);\n this._totalSize += data.length;\n\n if (this._totalSize > REPLAY_MAX_EVENT_BUFFER_SIZE) {\n return Promise.reject(new EventBufferSizeExceededError());\n }\n\n return this._sendEventToWorker(data);\n }\n\n /**\n * Finish the event buffer and return the compressed data.\n */\n finish() {\n return this._finishRequest();\n }\n\n /** @inheritdoc */\n clear() {\n this._earliestTimestamp = null;\n this._totalSize = 0;\n this.hasCheckout = false;\n\n // We do not wait on this, as we assume the order of messages is consistent for the worker\n this._worker.postMessage('clear').then(null, e => {\n DEBUG_BUILD && logger.exception(e, 'Sending \"clear\" message to worker failed', e);\n });\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._earliestTimestamp;\n }\n\n /**\n * Send the event to the worker.\n */\n _sendEventToWorker(data) {\n return this._worker.postMessage('addEvent', data);\n }\n\n /**\n * Finish the request and return the compressed data from the worker.\n */\n async _finishRequest() {\n const response = await this._worker.postMessage('finish');\n\n this._earliestTimestamp = null;\n this._totalSize = 0;\n\n return response;\n }\n}\n\n/**\n * This proxy will try to use the compression worker, and fall back to use the simple buffer if an error occurs there.\n * This can happen e.g. if the worker cannot be loaded.\n * Exported only for testing.\n */\nclass EventBufferProxy {\n\n constructor(worker) {\n this._fallback = new EventBufferArray();\n this._compression = new EventBufferCompressionWorker(worker);\n this._used = this._fallback;\n\n this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded();\n }\n\n /** @inheritdoc */\n get type() {\n return this._used.type;\n }\n\n /** @inheritDoc */\n get hasEvents() {\n return this._used.hasEvents;\n }\n\n /** @inheritdoc */\n get hasCheckout() {\n return this._used.hasCheckout;\n }\n /** @inheritdoc */\n set hasCheckout(value) {\n this._used.hasCheckout = value;\n }\n\n /** @inheritDoc */\n destroy() {\n this._fallback.destroy();\n this._compression.destroy();\n }\n\n /** @inheritdoc */\n clear() {\n return this._used.clear();\n }\n\n /** @inheritdoc */\n getEarliestTimestamp() {\n return this._used.getEarliestTimestamp();\n }\n\n /**\n * Add an event to the event buffer.\n *\n * Returns true if event was successfully added.\n */\n addEvent(event) {\n return this._used.addEvent(event);\n }\n\n /** @inheritDoc */\n async finish() {\n // Ensure the worker is loaded, so the sent event is compressed\n await this.ensureWorkerIsLoaded();\n\n return this._used.finish();\n }\n\n /** Ensure the worker has loaded. */\n ensureWorkerIsLoaded() {\n return this._ensureWorkerIsLoadedPromise;\n }\n\n /** Actually check if the worker has been loaded. */\n async _ensureWorkerIsLoaded() {\n try {\n await this._compression.ensureReady();\n } catch (error) {\n // If the worker fails to load, we fall back to the simple buffer.\n // Nothing more to do from our side here\n DEBUG_BUILD && logger.exception(error, 'Failed to load the compression worker, falling back to simple buffer');\n return;\n }\n\n // Now we need to switch over the array buffer to the compression worker\n await this._switchToCompressionWorker();\n }\n\n /** Switch the used buffer to the compression worker. */\n async _switchToCompressionWorker() {\n const { events, hasCheckout } = this._fallback;\n\n const addEventPromises = [];\n for (const event of events) {\n addEventPromises.push(this._compression.addEvent(event));\n }\n\n this._compression.hasCheckout = hasCheckout;\n\n // We switch over to the new buffer immediately - any further events will be added\n // after the previously buffered ones\n this._used = this._compression;\n\n // Wait for original events to be re-added before resolving\n try {\n await Promise.all(addEventPromises);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to add events when switching buffers.');\n }\n }\n}\n\n/**\n * Create an event buffer for replays.\n */\nfunction createEventBuffer({\n useCompression,\n workerUrl: customWorkerUrl,\n}) {\n if (\n useCompression &&\n // eslint-disable-next-line no-restricted-globals\n window.Worker\n ) {\n const worker = _loadWorker(customWorkerUrl);\n\n if (worker) {\n return worker;\n }\n }\n\n DEBUG_BUILD && logger.info('Using simple buffer');\n return new EventBufferArray();\n}\n\nfunction _loadWorker(customWorkerUrl) {\n try {\n const workerUrl = customWorkerUrl || _getWorkerUrl();\n\n if (!workerUrl) {\n return;\n }\n\n DEBUG_BUILD && logger.info(`Using compression worker${customWorkerUrl ? ` from ${customWorkerUrl}` : ''}`);\n const worker = new Worker(workerUrl);\n return new EventBufferProxy(worker);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to create compression worker');\n // Fall back to use simple event buffer array\n }\n}\n\nfunction _getWorkerUrl() {\n if (typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ === 'undefined' || !__SENTRY_EXCLUDE_REPLAY_WORKER__) {\n return e();\n }\n\n return '';\n}\n\n/** If sessionStorage is available. */\nfunction hasSessionStorage() {\n try {\n // This can throw, e.g. when being accessed in a sandboxed iframe\n return 'sessionStorage' in WINDOW && !!WINDOW.sessionStorage;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Removes the session from Session Storage and unsets session in replay instance\n */\nfunction clearSession(replay) {\n deleteSession();\n replay.session = undefined;\n}\n\n/**\n * Deletes a session from storage\n */\nfunction deleteSession() {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.removeItem(REPLAY_SESSION_KEY);\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Given a sample rate, returns true if replay should be sampled.\n *\n * 1.0 = 100% sampling\n * 0.0 = 0% sampling\n */\nfunction isSampled(sampleRate) {\n if (sampleRate === undefined) {\n return false;\n }\n\n // Math.random() returns a number in range of 0 to 1 (inclusive of 0, but not 1)\n return Math.random() < sampleRate;\n}\n\n/**\n * Get a session with defaults & applied sampling.\n */\nfunction makeSession(session) {\n const now = Date.now();\n const id = session.id || uuid4();\n // Note that this means we cannot set a started/lastActivity of `0`, but this should not be relevant outside of tests.\n const started = session.started || now;\n const lastActivity = session.lastActivity || now;\n const segmentId = session.segmentId || 0;\n const sampled = session.sampled;\n const previousSessionId = session.previousSessionId;\n\n return {\n id,\n started,\n lastActivity,\n segmentId,\n sampled,\n previousSessionId,\n };\n}\n\n/**\n * Save a session to session storage.\n */\nfunction saveSession(session) {\n if (!hasSessionStorage()) {\n return;\n }\n\n try {\n WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));\n } catch (e) {\n // Ignore potential SecurityError exceptions\n }\n}\n\n/**\n * Get the sampled status for a session based on sample rates & current sampled status.\n */\nfunction getSessionSampleType(sessionSampleRate, allowBuffering) {\n return isSampled(sessionSampleRate) ? 'session' : allowBuffering ? 'buffer' : false;\n}\n\n/**\n * Create a new session, which in its current implementation is a Sentry event\n * that all replays will be saved to as attachments. Currently, we only expect\n * one of these Sentry events per \"replay session\".\n */\nfunction createSession(\n { sessionSampleRate, allowBuffering, stickySession = false },\n { previousSessionId } = {},\n) {\n const sampled = getSessionSampleType(sessionSampleRate, allowBuffering);\n const session = makeSession({\n sampled,\n previousSessionId,\n });\n\n if (stickySession) {\n saveSession(session);\n }\n\n return session;\n}\n\n/**\n * Fetches a session from storage\n */\nfunction fetchSession() {\n if (!hasSessionStorage()) {\n return null;\n }\n\n try {\n // This can throw if cookies are disabled\n const sessionStringFromStorage = WINDOW.sessionStorage.getItem(REPLAY_SESSION_KEY);\n\n if (!sessionStringFromStorage) {\n return null;\n }\n\n const sessionObj = JSON.parse(sessionStringFromStorage) ;\n\n DEBUG_BUILD && logger.infoTick('Loading existing session');\n\n return makeSession(sessionObj);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Given an initial timestamp and an expiry duration, checks to see if current\n * time should be considered as expired.\n */\nfunction isExpired(\n initialTime,\n expiry,\n targetTime = +new Date(),\n) {\n // Always expired if < 0\n if (initialTime === null || expiry === undefined || expiry < 0) {\n return true;\n }\n\n // Never expires if == 0\n if (expiry === 0) {\n return false;\n }\n\n return initialTime + expiry <= targetTime;\n}\n\n/**\n * Checks to see if session is expired\n */\nfunction isSessionExpired(\n session,\n {\n maxReplayDuration,\n sessionIdleExpire,\n targetTime = Date.now(),\n },\n) {\n return (\n // First, check that maximum session length has not been exceeded\n isExpired(session.started, maxReplayDuration, targetTime) ||\n // check that the idle timeout has not been exceeded (i.e. user has\n // performed an action within the last `sessionIdleExpire` ms)\n isExpired(session.lastActivity, sessionIdleExpire, targetTime)\n );\n}\n\n/** If the session should be refreshed or not. */\nfunction shouldRefreshSession(\n session,\n { sessionIdleExpire, maxReplayDuration },\n) {\n // If not expired, all good, just keep the session\n if (!isSessionExpired(session, { sessionIdleExpire, maxReplayDuration })) {\n return false;\n }\n\n // If we are buffering & haven't ever flushed yet, always continue\n if (session.sampled === 'buffer' && session.segmentId === 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Get or create a session, when initializing the replay.\n * Returns a session that may be unsampled.\n */\nfunction loadOrCreateSession(\n {\n sessionIdleExpire,\n maxReplayDuration,\n previousSessionId,\n }\n\n,\n sessionOptions,\n) {\n const existingSession = sessionOptions.stickySession && fetchSession();\n\n // No session exists yet, just create a new one\n if (!existingSession) {\n DEBUG_BUILD && logger.infoTick('Creating new session');\n return createSession(sessionOptions, { previousSessionId });\n }\n\n if (!shouldRefreshSession(existingSession, { sessionIdleExpire, maxReplayDuration })) {\n return existingSession;\n }\n\n DEBUG_BUILD && logger.infoTick('Session in sessionStorage is expired, creating new one...');\n return createSession(sessionOptions, { previousSessionId: existingSession.id });\n}\n\nfunction isCustomEvent(event) {\n return event.type === EventType.Custom;\n}\n\n/**\n * Add an event to the event buffer.\n * In contrast to `addEvent`, this does not return a promise & does not wait for the adding of the event to succeed/fail.\n * Instead this returns `true` if we tried to add the event, else false.\n * It returns `false` e.g. if we are paused, disabled, or out of the max replay duration.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEventSync(replay, event, isCheckout) {\n if (!shouldAddEvent(replay, event)) {\n return false;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n _addEvent(replay, event, isCheckout);\n\n return true;\n}\n\n/**\n * Add an event to the event buffer.\n * Resolves to `null` if no event was added, else to `void`.\n *\n * `isCheckout` is true if this is either the very first event, or an event triggered by `checkoutEveryNms`.\n */\nfunction addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!shouldAddEvent(replay, event)) {\n return Promise.resolve(null);\n }\n\n return _addEvent(replay, event, isCheckout);\n}\n\nasync function _addEvent(\n replay,\n event,\n isCheckout,\n) {\n if (!replay.eventBuffer) {\n return null;\n }\n\n try {\n if (isCheckout && replay.recordingMode === 'buffer') {\n replay.eventBuffer.clear();\n }\n\n if (isCheckout) {\n replay.eventBuffer.hasCheckout = true;\n }\n\n const replayOptions = replay.getOptions();\n\n const eventAfterPossibleCallback = maybeApplyCallback(event, replayOptions.beforeAddRecordingEvent);\n\n if (!eventAfterPossibleCallback) {\n return;\n }\n\n return await replay.eventBuffer.addEvent(eventAfterPossibleCallback);\n } catch (error) {\n const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';\n replay.handleException(error);\n\n await replay.stop({ reason });\n\n const client = getClient();\n\n if (client) {\n client.recordDroppedEvent('internal_sdk_error', 'replay');\n }\n }\n}\n\n/** Exported only for tests. */\nfunction shouldAddEvent(replay, event) {\n if (!replay.eventBuffer || replay.isPaused() || !replay.isEnabled()) {\n return false;\n }\n\n const timestampInMs = timestampToMs(event.timestamp);\n\n // Throw out events that happen more than 5 minutes ago. This can happen if\n // page has been left open and idle for a long period of time and user\n // comes back to trigger a new session. The performance entries rely on\n // `performance.timeOrigin`, which is when the page first opened.\n if (timestampInMs + replay.timeouts.sessionIdlePause < Date.now()) {\n return false;\n }\n\n // Throw out events that are +60min from the initial timestamp\n if (timestampInMs > replay.getContext().initialTimestamp + replay.getOptions().maxReplayDuration) {\n DEBUG_BUILD &&\n logger.infoTick(`Skipping event with timestamp ${timestampInMs} because it is after maxReplayDuration`);\n return false;\n }\n\n return true;\n}\n\nfunction maybeApplyCallback(\n event,\n callback,\n) {\n try {\n if (typeof callback === 'function' && isCustomEvent(event)) {\n return callback(event);\n }\n } catch (error) {\n DEBUG_BUILD &&\n logger.exception(error, 'An error occured in the `beforeAddRecordingEvent` callback, skipping the event...');\n return null;\n }\n\n return event;\n}\n\n/** If the event is an error event */\nfunction isErrorEvent(event) {\n return !event.type;\n}\n\n/** If the event is a transaction event */\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\n/** If the event is an replay event */\nfunction isReplayEvent(event) {\n return event.type === 'replay_event';\n}\n\n/** If the event is a feedback event */\nfunction isFeedbackEvent(event) {\n return event.type === 'feedback';\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleAfterSendEvent(replay) {\n return (event, sendResponse) => {\n if (!replay.isEnabled() || (!isErrorEvent(event) && !isTransactionEvent(event))) {\n return;\n }\n\n const statusCode = sendResponse && sendResponse.statusCode;\n\n // We only want to do stuff on successful error sending, otherwise you get error replays without errors attached\n // If not using the base transport, we allow `undefined` response (as a custom transport may not implement this correctly yet)\n // If we do use the base transport, we skip if we encountered an non-OK status code\n if (!statusCode || statusCode < 200 || statusCode >= 300) {\n return;\n }\n\n if (isTransactionEvent(event)) {\n handleTransactionEvent(replay, event);\n return;\n }\n\n handleErrorEvent(replay, event);\n };\n}\n\nfunction handleTransactionEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Collect traceIds in _context regardless of `recordingMode`\n // In error mode, _context gets cleared on every checkout\n // We limit to max. 100 transactions linked\n if (event.contexts && event.contexts.trace && event.contexts.trace.trace_id && replayContext.traceIds.size < 100) {\n replayContext.traceIds.add(event.contexts.trace.trace_id );\n }\n}\n\nfunction handleErrorEvent(replay, event) {\n const replayContext = replay.getContext();\n\n // Add error to list of errorIds of replay. This is ok to do even if not\n // sampled because context will get reset at next checkout.\n // XXX: There is also a race condition where it's possible to capture an\n // error to Sentry before Replay SDK has loaded, but response returns after\n // it was loaded, and this gets called.\n // We limit to max. 100 errors linked\n if (event.event_id && replayContext.errorIds.size < 100) {\n replayContext.errorIds.add(event.event_id);\n }\n\n // If error event is tagged with replay id it means it was sampled (when in buffer mode)\n // Need to be very careful that this does not cause an infinite loop\n if (replay.recordingMode !== 'buffer' || !event.tags || !event.tags.replayId) {\n return;\n }\n\n const { beforeErrorSampling } = replay.getOptions();\n if (typeof beforeErrorSampling === 'function' && !beforeErrorSampling(event)) {\n return;\n }\n\n setTimeout$3(() => {\n // Capture current event buffer as new replay\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.sendBufferedReplayOrFlush();\n });\n}\n\n/**\n * Returns a listener to be added to `client.on('afterSendErrorEvent, listener)`.\n */\nfunction handleBeforeSendEvent(replay) {\n return (event) => {\n if (!replay.isEnabled() || !isErrorEvent(event)) {\n return;\n }\n\n handleHydrationError(replay, event);\n };\n}\n\nfunction handleHydrationError(replay, event) {\n const exceptionValue =\n event.exception && event.exception.values && event.exception.values[0] && event.exception.values[0].value;\n if (typeof exceptionValue !== 'string') {\n return;\n }\n\n if (\n // Only matches errors in production builds of react-dom\n // Example https://reactjs.org/docs/error-decoder.html?invariant=423\n // With newer React versions, the messages changed to a different website https://react.dev/errors/418\n exceptionValue.match(\n /(reactjs\\.org\\/docs\\/error-decoder\\.html\\?invariant=|react\\.dev\\/errors\\/)(418|419|422|423|425)/,\n ) ||\n // Development builds of react-dom\n // Error 1: Hydration failed because the initial UI does not match what was rendered on the server.\n // Error 2: Text content does not match server-rendered HTML. Warning: Text content did not match.\n exceptionValue.match(/(does not match server-rendered HTML|Hydration failed because)/i)\n ) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.hydrate-error',\n data: {\n url: getLocationHref(),\n },\n });\n addBreadcrumbEvent(replay, breadcrumb);\n }\n}\n\n/**\n * Handle breadcrumbs that Sentry captures, and make sure to capture relevant breadcrumbs to Replay as well.\n */\nfunction handleBreadcrumbs(replay) {\n const client = getClient();\n\n if (!client) {\n return;\n }\n\n client.on('beforeAddBreadcrumb', breadcrumb => beforeAddBreadcrumb(replay, breadcrumb));\n}\n\nfunction beforeAddBreadcrumb(replay, breadcrumb) {\n if (!replay.isEnabled() || !isBreadcrumbWithCategory(breadcrumb)) {\n return;\n }\n\n const result = normalizeBreadcrumb(breadcrumb);\n if (result) {\n addBreadcrumbEvent(replay, result);\n }\n}\n\n/** Exported only for tests. */\nfunction normalizeBreadcrumb(breadcrumb) {\n if (\n !isBreadcrumbWithCategory(breadcrumb) ||\n [\n // fetch & xhr are handled separately,in handleNetworkBreadcrumbs\n 'fetch',\n 'xhr',\n // These two are breadcrumbs for emitted sentry events, we don't care about them\n 'sentry.event',\n 'sentry.transaction',\n ].includes(breadcrumb.category) ||\n // We capture UI breadcrumbs separately\n breadcrumb.category.startsWith('ui.')\n ) {\n return null;\n }\n\n if (breadcrumb.category === 'console') {\n return normalizeConsoleBreadcrumb(breadcrumb);\n }\n\n return createBreadcrumb(breadcrumb);\n}\n\n/** exported for tests only */\nfunction normalizeConsoleBreadcrumb(\n breadcrumb,\n) {\n const args = breadcrumb.data && breadcrumb.data.arguments;\n\n if (!Array.isArray(args) || args.length === 0) {\n return createBreadcrumb(breadcrumb);\n }\n\n let isTruncated = false;\n\n // Avoid giant args captures\n const normalizedArgs = args.map(arg => {\n if (!arg) {\n return arg;\n }\n if (typeof arg === 'string') {\n if (arg.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n return `${arg.slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n\n return arg;\n }\n if (typeof arg === 'object') {\n try {\n const normalizedArg = normalize(arg, 7);\n const stringified = JSON.stringify(normalizedArg);\n if (stringified.length > CONSOLE_ARG_MAX_SIZE) {\n isTruncated = true;\n // We use the pretty printed JSON string here as a base\n return `${JSON.stringify(normalizedArg, null, 2).slice(0, CONSOLE_ARG_MAX_SIZE)}…`;\n }\n return normalizedArg;\n } catch (e) {\n // fall back to default\n }\n }\n\n return arg;\n });\n\n return createBreadcrumb({\n ...breadcrumb,\n data: {\n ...breadcrumb.data,\n arguments: normalizedArgs,\n ...(isTruncated ? { _meta: { warnings: ['CONSOLE_ARG_TRUNCATED'] } } : {}),\n },\n });\n}\n\nfunction isBreadcrumbWithCategory(breadcrumb) {\n return !!breadcrumb.category;\n}\n\n/**\n * Returns true if we think the given event is an error originating inside of rrweb.\n */\nfunction isRrwebError(event, hint) {\n if (event.type || !event.exception || !event.exception.values || !event.exception.values.length) {\n return false;\n }\n\n // @ts-expect-error this may be set by rrweb when it finds errors\n if (hint.originalException && hint.originalException.__rrweb__) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Add a feedback breadcrumb event to replay.\n */\nfunction addFeedbackBreadcrumb(replay, event) {\n replay.triggerUserActivity();\n replay.addUpdate(() => {\n if (!event.timestamp) {\n // Ignore events that don't have timestamps (this shouldn't happen, more of a typing issue)\n // Return true here so that we don't flush\n return true;\n }\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: event.timestamp * 1000,\n data: {\n tag: 'breadcrumb',\n payload: {\n timestamp: event.timestamp,\n type: 'default',\n category: 'sentry.feedback',\n data: {\n feedbackId: event.event_id,\n },\n },\n },\n } );\n\n return false;\n });\n}\n\n/**\n * Determine if event should be sampled (only applies in buffer mode).\n * When an event is captured by `hanldleGlobalEvent`, when in buffer mode\n * we determine if we want to sample the error or not.\n */\nfunction shouldSampleForBufferEvent(replay, event) {\n if (replay.recordingMode !== 'buffer') {\n return false;\n }\n\n // ignore this error because otherwise we could loop indefinitely with\n // trying to capture replay and failing\n if (event.message === UNABLE_TO_SEND_REPLAY) {\n return false;\n }\n\n // Require the event to be an error event & to have an exception\n if (!event.exception || event.type) {\n return false;\n }\n\n return isSampled(replay.getOptions().errorSampleRate);\n}\n\n/**\n * Returns a listener to be added to `addEventProcessor(listener)`.\n */\nfunction handleGlobalEventListener(replay) {\n return Object.assign(\n (event, hint) => {\n // Do nothing if replay has been disabled or paused\n if (!replay.isEnabled() || replay.isPaused()) {\n return event;\n }\n\n if (isReplayEvent(event)) {\n // Replays have separate set of breadcrumbs, do not include breadcrumbs\n // from core SDK\n delete event.breadcrumbs;\n return event;\n }\n\n // We only want to handle errors, transactions, and feedbacks, nothing else\n if (!isErrorEvent(event) && !isTransactionEvent(event) && !isFeedbackEvent(event)) {\n return event;\n }\n\n // Ensure we do not add replay_id if the session is expired\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (!isSessionActive) {\n return event;\n }\n\n if (isFeedbackEvent(event)) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n replay.flush();\n event.contexts.feedback.replay_id = replay.getSessionId();\n // Add a replay breadcrumb for this piece of feedback\n addFeedbackBreadcrumb(replay, event);\n return event;\n }\n\n // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb\n // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users\n if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {\n DEBUG_BUILD && logger.log('Ignoring error from rrweb internals', event);\n return null;\n }\n\n // When in buffer mode, we decide to sample here.\n // Later, in `handleAfterSendEvent`, if the replayId is set, we know that we sampled\n // And convert the buffer session to a full session\n const isErrorEventSampled = shouldSampleForBufferEvent(replay, event);\n\n // Tag errors if it has been sampled in buffer mode, or if it is session mode\n // Only tag transactions if in session mode\n const shouldTagReplayId = isErrorEventSampled || replay.recordingMode === 'session';\n\n if (shouldTagReplayId) {\n event.tags = { ...event.tags, replayId: replay.getSessionId() };\n }\n\n return event;\n },\n { id: 'Replay' },\n );\n}\n\n/**\n * Create a \"span\" for each performance entry.\n */\nfunction createPerformanceSpans(\n replay,\n entries,\n) {\n return entries.map(({ type, start, end, name, data }) => {\n const response = replay.throttledAddEvent({\n type: EventType.Custom,\n timestamp: start,\n data: {\n tag: 'performanceSpan',\n payload: {\n op: type,\n description: name,\n startTimestamp: start,\n endTimestamp: end,\n data,\n },\n },\n });\n\n // If response is a string, it means its either THROTTLED or SKIPPED\n return typeof response === 'string' ? Promise.resolve(null) : response;\n });\n}\n\nfunction handleHistory(handlerData) {\n const { from, to } = handlerData;\n\n const now = Date.now() / 1000;\n\n return {\n type: 'navigation.push',\n start: now,\n end: now,\n name: to,\n data: {\n previous: from,\n },\n };\n}\n\n/**\n * Returns a listener to be added to `addHistoryInstrumentationHandler(listener)`.\n */\nfunction handleHistorySpanListener(replay) {\n return (handlerData) => {\n if (!replay.isEnabled()) {\n return;\n }\n\n const result = handleHistory(handlerData);\n\n if (result === null) {\n return;\n }\n\n // Need to collect visited URLs\n replay.getContext().urls.push(result.name);\n replay.triggerUserActivity();\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning false to flush\n return false;\n });\n };\n}\n\n/**\n * Check whether a given request URL should be filtered out. This is so we\n * don't log Sentry ingest requests.\n */\nfunction shouldFilterRequest(replay, url) {\n // If we enabled the `traceInternals` experiment, we want to trace everything\n if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {\n return false;\n }\n\n return isSentryRequestUrl(url, getClient());\n}\n\n/** Add a performance entry breadcrumb */\nfunction addNetworkBreadcrumb(\n replay,\n result,\n) {\n if (!replay.isEnabled()) {\n return;\n }\n\n if (result === null) {\n return;\n }\n\n if (shouldFilterRequest(replay, result.name)) {\n return;\n }\n\n replay.addUpdate(() => {\n createPerformanceSpans(replay, [result]);\n // Returning true will cause `addUpdate` to not flush\n // We do not want network requests to cause a flush. This will prevent\n // recurring/polling requests from keeping the replay session alive.\n return true;\n });\n}\n\n/** Get the size of a body. */\nfunction getBodySize(body) {\n if (!body) {\n return undefined;\n }\n\n const textEncoder = new TextEncoder();\n\n try {\n if (typeof body === 'string') {\n return textEncoder.encode(body).length;\n }\n\n if (body instanceof URLSearchParams) {\n return textEncoder.encode(body.toString()).length;\n }\n\n if (body instanceof FormData) {\n const formDataStr = _serializeFormData(body);\n return textEncoder.encode(formDataStr).length;\n }\n\n if (body instanceof Blob) {\n return body.size;\n }\n\n if (body instanceof ArrayBuffer) {\n return body.byteLength;\n }\n\n // Currently unhandled types: ArrayBufferView, ReadableStream\n } catch (e) {\n // just return undefined\n }\n\n return undefined;\n}\n\n/** Convert a Content-Length header to number/undefined. */\nfunction parseContentLengthHeader(header) {\n if (!header) {\n return undefined;\n }\n\n const size = parseInt(header, 10);\n return isNaN(size) ? undefined : size;\n}\n\n/** Get the string representation of a body. */\nfunction getBodyString(body) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof URLSearchParams) {\n return [body.toString()];\n }\n\n if (body instanceof FormData) {\n return [_serializeFormData(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\n/** Merge a warning into an existing network request/response. */\nfunction mergeWarning(\n info,\n warning,\n) {\n if (!info) {\n return {\n headers: {},\n size: undefined,\n _meta: {\n warnings: [warning],\n },\n };\n }\n\n const newMeta = { ...info._meta };\n const existingWarnings = newMeta.warnings || [];\n newMeta.warnings = [...existingWarnings, warning];\n\n info._meta = newMeta;\n return info;\n}\n\n/** Convert ReplayNetworkRequestData to a PerformanceEntry. */\nfunction makeNetworkReplayBreadcrumb(\n type,\n data,\n) {\n if (!data) {\n return null;\n }\n\n const { startTimestamp, endTimestamp, url, method, statusCode, request, response } = data;\n\n const result = {\n type,\n start: startTimestamp / 1000,\n end: endTimestamp / 1000,\n name: url,\n data: dropUndefinedKeys({\n method,\n statusCode,\n request,\n response,\n }),\n };\n\n return result;\n}\n\n/** Build the request or response part of a replay network breadcrumb that was skipped. */\nfunction buildSkippedNetworkRequestOrResponse(bodySize) {\n return {\n headers: {},\n size: bodySize,\n _meta: {\n warnings: ['URL_SKIPPED'],\n },\n };\n}\n\n/** Build the request or response part of a replay network breadcrumb. */\nfunction buildNetworkRequestOrResponse(\n headers,\n bodySize,\n body,\n) {\n if (!bodySize && Object.keys(headers).length === 0) {\n return undefined;\n }\n\n if (!bodySize) {\n return {\n headers,\n };\n }\n\n if (!body) {\n return {\n headers,\n size: bodySize,\n };\n }\n\n const info = {\n headers,\n size: bodySize,\n };\n\n const { body: normalizedBody, warnings } = normalizeNetworkBody(body);\n info.body = normalizedBody;\n if (warnings && warnings.length > 0) {\n info._meta = {\n warnings,\n };\n }\n\n return info;\n}\n\n/** Filter a set of headers */\nfunction getAllowedHeaders(headers, allowedHeaders) {\n return Object.entries(headers).reduce((filteredHeaders, [key, value]) => {\n const normalizedKey = key.toLowerCase();\n // Avoid putting empty strings into the headers\n if (allowedHeaders.includes(normalizedKey) && headers[key]) {\n filteredHeaders[normalizedKey] = value;\n }\n return filteredHeaders;\n }, {});\n}\n\nfunction _serializeFormData(formData) {\n // This is a bit simplified, but gives us a decent estimate\n // This converts e.g. { name: 'Anne Smith', age: 13 } to 'name=Anne+Smith&age=13'\n // @ts-expect-error passing FormData to URLSearchParams actually works\n return new URLSearchParams(formData).toString();\n}\n\nfunction normalizeNetworkBody(body)\n\n {\n if (!body || typeof body !== 'string') {\n return {\n body,\n };\n }\n\n const exceedsSizeLimit = body.length > NETWORK_BODY_MAX_SIZE;\n const isProbablyJson = _strIsProbablyJson(body);\n\n if (exceedsSizeLimit) {\n const truncatedBody = body.slice(0, NETWORK_BODY_MAX_SIZE);\n\n if (isProbablyJson) {\n return {\n body: truncatedBody,\n warnings: ['MAYBE_JSON_TRUNCATED'],\n };\n }\n\n return {\n body: `${truncatedBody}…`,\n warnings: ['TEXT_TRUNCATED'],\n };\n }\n\n if (isProbablyJson) {\n try {\n const jsonBody = JSON.parse(body);\n return {\n body: jsonBody,\n };\n } catch (e2) {\n // fall back to just send the body as string\n }\n }\n\n return {\n body,\n };\n}\n\nfunction _strIsProbablyJson(str) {\n const first = str[0];\n const last = str[str.length - 1];\n\n // Simple check: If this does not start & end with {} or [], it's not JSON\n return (first === '[' && last === ']') || (first === '{' && last === '}');\n}\n\n/** Match an URL against a list of strings/Regex. */\nfunction urlMatches(url, urls) {\n const fullUrl = getFullUrl(url);\n\n return stringMatchesSomePattern(fullUrl, urls);\n}\n\n/** exported for tests */\nfunction getFullUrl(url, baseURI = WINDOW.document.baseURI) {\n // Short circuit for common cases:\n if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith(WINDOW.location.origin)) {\n return url;\n }\n const fixedUrl = new URL(url, baseURI);\n\n // If these do not match, we are not dealing with a relative URL, so just return it\n if (fixedUrl.origin !== new URL(baseURI).origin) {\n return url;\n }\n\n const fullUrl = fixedUrl.href;\n\n // Remove trailing slashes, if they don't match the original URL\n if (!url.endsWith('/') && fullUrl.endsWith('/')) {\n return fullUrl.slice(0, -1);\n }\n\n return fullUrl;\n}\n\n/**\n * Capture a fetch breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureFetchBreadcrumbToReplay(\n breadcrumb,\n hint,\n options\n\n,\n) {\n try {\n const data = await _prepareFetchData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.fetch', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture fetch breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichFetchBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { input, response } = hint;\n\n const body = input ? _getFetchRequestArgBody(input) : undefined;\n const reqSize = getBodySize(body);\n\n const resSize = response ? parseContentLengthHeader(response.headers.get('content-length')) : undefined;\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nasync function _prepareFetchData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n const captureDetails =\n urlMatches(url, options.networkDetailAllowUrls) && !urlMatches(url, options.networkDetailDenyUrls);\n\n const request = captureDetails\n ? _getRequestInfo(options, hint.input, requestBodySize)\n : buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = await _getResponseInfo(captureDetails, options, hint.response, responseBodySize);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n}\n\nfunction _getRequestInfo(\n { networkCaptureBodies, networkRequestHeaders },\n input,\n requestBodySize,\n) {\n const headers = input ? getRequestHeaders(input, networkRequestHeaders) : {};\n\n if (!networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, requestBodySize, undefined);\n }\n\n // We only want to transmit string or string-like bodies\n const requestBody = _getFetchRequestArgBody(input);\n const [bodyStr, warning] = getBodyString(requestBody);\n const data = buildNetworkRequestOrResponse(headers, requestBodySize, bodyStr);\n\n if (warning) {\n return mergeWarning(data, warning);\n }\n\n return data;\n}\n\n/** Exported only for tests. */\nasync function _getResponseInfo(\n captureDetails,\n {\n networkCaptureBodies,\n networkResponseHeaders,\n },\n response,\n responseBodySize,\n) {\n if (!captureDetails && responseBodySize !== undefined) {\n return buildSkippedNetworkRequestOrResponse(responseBodySize);\n }\n\n const headers = response ? getAllHeaders(response.headers, networkResponseHeaders) : {};\n\n if (!response || (!networkCaptureBodies && responseBodySize !== undefined)) {\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n\n const [bodyText, warning] = await _parseFetchResponseBody(response);\n const result = getResponseData(bodyText, {\n networkCaptureBodies,\n\n responseBodySize,\n captureDetails,\n headers,\n });\n\n if (warning) {\n return mergeWarning(result, warning);\n }\n\n return result;\n}\n\nfunction getResponseData(\n bodyText,\n {\n networkCaptureBodies,\n responseBodySize,\n captureDetails,\n headers,\n }\n\n,\n) {\n try {\n const size =\n bodyText && bodyText.length && responseBodySize === undefined ? getBodySize(bodyText) : responseBodySize;\n\n if (!captureDetails) {\n return buildSkippedNetworkRequestOrResponse(size);\n }\n\n if (networkCaptureBodies) {\n return buildNetworkRequestOrResponse(headers, size, bodyText);\n }\n\n return buildNetworkRequestOrResponse(headers, size, undefined);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize response body');\n // fallback\n return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);\n }\n}\n\nasync function _parseFetchResponseBody(response) {\n const res = _tryCloneResponse(response);\n\n if (!res) {\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n try {\n const text = await _tryGetResponseText(res);\n return [text];\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to get text body from response');\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n}\n\nfunction _getFetchRequestArgBody(fetchArgs = []) {\n // We only support getting the body from the fetch options\n if (fetchArgs.length !== 2 || typeof fetchArgs[1] !== 'object') {\n return undefined;\n }\n\n return (fetchArgs[1] ).body;\n}\n\nfunction getAllHeaders(headers, allowedHeaders) {\n const allHeaders = {};\n\n allowedHeaders.forEach(header => {\n if (headers.get(header)) {\n allHeaders[header] = headers.get(header) ;\n }\n });\n\n return allHeaders;\n}\n\nfunction getRequestHeaders(fetchArgs, allowedHeaders) {\n if (fetchArgs.length === 1 && typeof fetchArgs[0] !== 'string') {\n return getHeadersFromOptions(fetchArgs[0] , allowedHeaders);\n }\n\n if (fetchArgs.length === 2) {\n return getHeadersFromOptions(fetchArgs[1] , allowedHeaders);\n }\n\n return {};\n}\n\nfunction getHeadersFromOptions(\n input,\n allowedHeaders,\n) {\n if (!input) {\n return {};\n }\n\n const headers = input.headers;\n\n if (!headers) {\n return {};\n }\n\n if (headers instanceof Headers) {\n return getAllHeaders(headers, allowedHeaders);\n }\n\n // We do not support this, as it is not really documented (anymore?)\n if (Array.isArray(headers)) {\n return {};\n }\n\n return getAllowedHeaders(headers, allowedHeaders);\n}\n\nfunction _tryCloneResponse(response) {\n try {\n // We have to clone this, as the body can only be read once\n return response.clone();\n } catch (error) {\n // this can throw if the response was already consumed before\n DEBUG_BUILD && logger.exception(error, 'Failed to clone response body');\n }\n}\n\n/**\n * Get the response body of a fetch request, or timeout after 500ms.\n * Fetch can return a streaming body, that may not resolve (or not for a long time).\n * If that happens, we rather abort after a short time than keep waiting for this.\n */\nfunction _tryGetResponseText(response) {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout$3(() => reject(new Error('Timeout while trying to read response body')), 500);\n\n _getResponseText(response)\n .then(\n txt => resolve(txt),\n reason => reject(reason),\n )\n .finally(() => clearTimeout(timeout));\n });\n}\n\nasync function _getResponseText(response) {\n // Force this to be a promise, just to be safe\n // eslint-disable-next-line no-return-await\n return await response.text();\n}\n\n/**\n * Capture an XHR breadcrumb to a replay.\n * This adds additional data (where approriate).\n */\nasync function captureXhrBreadcrumbToReplay(\n breadcrumb,\n hint,\n options,\n) {\n try {\n const data = _prepareXhrData(breadcrumb, hint, options);\n\n // Create a replay performance entry from this breadcrumb\n const result = makeNetworkReplayBreadcrumb('resource.xhr', data);\n addNetworkBreadcrumb(options.replay, result);\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to capture xhr breadcrumb');\n }\n}\n\n/**\n * Enrich a breadcrumb with additional data.\n * This has to be sync & mutate the given breadcrumb,\n * as the breadcrumb is afterwards consumed by other handlers.\n */\nfunction enrichXhrBreadcrumb(\n breadcrumb,\n hint,\n) {\n const { xhr, input } = hint;\n\n if (!xhr) {\n return;\n }\n\n const reqSize = getBodySize(input);\n const resSize = xhr.getResponseHeader('content-length')\n ? parseContentLengthHeader(xhr.getResponseHeader('content-length'))\n : _getBodySize(xhr.response, xhr.responseType);\n\n if (reqSize !== undefined) {\n breadcrumb.data.request_body_size = reqSize;\n }\n if (resSize !== undefined) {\n breadcrumb.data.response_body_size = resSize;\n }\n}\n\nfunction _prepareXhrData(\n breadcrumb,\n hint,\n options,\n) {\n const now = Date.now();\n const { startTimestamp = now, endTimestamp = now, input, xhr } = hint;\n\n const {\n url,\n method,\n status_code: statusCode = 0,\n request_body_size: requestBodySize,\n response_body_size: responseBodySize,\n } = breadcrumb.data;\n\n if (!url) {\n return null;\n }\n\n if (!xhr || !urlMatches(url, options.networkDetailAllowUrls) || urlMatches(url, options.networkDetailDenyUrls)) {\n const request = buildSkippedNetworkRequestOrResponse(requestBodySize);\n const response = buildSkippedNetworkRequestOrResponse(responseBodySize);\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request,\n response,\n };\n }\n\n const xhrInfo = xhr[SENTRY_XHR_DATA_KEY];\n const networkRequestHeaders = xhrInfo\n ? getAllowedHeaders(xhrInfo.request_headers, options.networkRequestHeaders)\n : {};\n const networkResponseHeaders = getAllowedHeaders(getResponseHeaders(xhr), options.networkResponseHeaders);\n\n const [requestBody, requestWarning] = options.networkCaptureBodies ? getBodyString(input) : [undefined];\n const [responseBody, responseWarning] = options.networkCaptureBodies ? _getXhrResponseBody(xhr) : [undefined];\n\n const request = buildNetworkRequestOrResponse(networkRequestHeaders, requestBodySize, requestBody);\n const response = buildNetworkRequestOrResponse(networkResponseHeaders, responseBodySize, responseBody);\n\n return {\n startTimestamp,\n endTimestamp,\n url,\n method,\n statusCode,\n request: requestWarning ? mergeWarning(request, requestWarning) : request,\n response: responseWarning ? mergeWarning(response, responseWarning) : response,\n };\n}\n\nfunction getResponseHeaders(xhr) {\n const headers = xhr.getAllResponseHeaders();\n\n if (!headers) {\n return {};\n }\n\n return headers.split('\\r\\n').reduce((acc, line) => {\n const [key, value] = line.split(': ') ;\n if (value) {\n acc[key.toLowerCase()] = value;\n }\n return acc;\n }, {});\n}\n\nfunction _getXhrResponseBody(xhr) {\n // We collect errors that happen, but only log them if we can't get any response body\n const errors = [];\n\n try {\n return [xhr.responseText];\n } catch (e) {\n errors.push(e);\n }\n\n // Try to manually parse the response body, if responseText fails\n try {\n return _parseXhrResponse(xhr.response, xhr.responseType);\n } catch (e) {\n errors.push(e);\n }\n\n DEBUG_BUILD && logger.warn('Failed to get xhr response body', ...errors);\n\n return [undefined];\n}\n\n/**\n * Get the string representation of the XHR response.\n * Based on MDN, these are the possible types of the response:\n * string\n * ArrayBuffer\n * Blob\n * Document\n * POJO\n *\n * Exported only for tests.\n */\nfunction _parseXhrResponse(\n body,\n responseType,\n) {\n try {\n if (typeof body === 'string') {\n return [body];\n }\n\n if (body instanceof Document) {\n return [body.body.outerHTML];\n }\n\n if (responseType === 'json' && body && typeof body === 'object') {\n return [JSON.stringify(body)];\n }\n\n if (!body) {\n return [undefined];\n }\n } catch (error) {\n DEBUG_BUILD && logger.exception(error, 'Failed to serialize body', body);\n return [undefined, 'BODY_PARSE_ERROR'];\n }\n\n DEBUG_BUILD && logger.info('Skipping network body because of body type', body);\n\n return [undefined, 'UNPARSEABLE_BODY_TYPE'];\n}\n\nfunction _getBodySize(\n body,\n responseType,\n) {\n try {\n const bodyStr = responseType === 'json' && body && typeof body === 'object' ? JSON.stringify(body) : body;\n return getBodySize(bodyStr);\n } catch (e2) {\n return undefined;\n }\n}\n\n/**\n * This method does two things:\n * - It enriches the regular XHR/fetch breadcrumbs with request/response size data\n * - It captures the XHR/fetch breadcrumbs to the replay\n * (enriching it with further data that is _not_ added to the regular breadcrumbs)\n */\nfunction handleNetworkBreadcrumbs(replay) {\n const client = getClient();\n\n try {\n const {\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n } = replay.getOptions();\n\n const options = {\n replay,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders,\n networkResponseHeaders,\n };\n\n if (client) {\n client.on('beforeAddBreadcrumb', (breadcrumb, hint) => beforeAddNetworkBreadcrumb(options, breadcrumb, hint));\n }\n } catch (e2) {\n // Do nothing\n }\n}\n\n/** just exported for tests */\nfunction beforeAddNetworkBreadcrumb(\n options,\n breadcrumb,\n hint,\n) {\n if (!breadcrumb.data) {\n return;\n }\n\n try {\n if (_isXhrBreadcrumb(breadcrumb) && _isXhrHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichXhrBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureXhrBreadcrumbToReplay(breadcrumb, hint, options);\n }\n\n if (_isFetchBreadcrumb(breadcrumb) && _isFetchHint(hint)) {\n // This has to be sync, as we need to ensure the breadcrumb is enriched in the same tick\n // Because the hook runs synchronously, and the breadcrumb is afterwards passed on\n // So any async mutations to it will not be reflected in the final breadcrumb\n enrichFetchBreadcrumb(breadcrumb, hint);\n\n // This call should not reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n captureFetchBreadcrumbToReplay(breadcrumb, hint, options);\n }\n } catch (e) {\n DEBUG_BUILD && logger.exception(e, 'Error when enriching network breadcrumb');\n }\n}\n\nfunction _isXhrBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'xhr';\n}\n\nfunction _isFetchBreadcrumb(breadcrumb) {\n return breadcrumb.category === 'fetch';\n}\n\nfunction _isXhrHint(hint) {\n return hint && hint.xhr;\n}\n\nfunction _isFetchHint(hint) {\n return hint && hint.response;\n}\n\n/**\n * Add global listeners that cannot be removed.\n */\nfunction addGlobalListeners(replay) {\n // Listeners from core SDK //\n const client = getClient();\n\n addClickKeypressInstrumentationHandler(handleDomListener(replay));\n addHistoryInstrumentationHandler(handleHistorySpanListener(replay));\n handleBreadcrumbs(replay);\n handleNetworkBreadcrumbs(replay);\n\n // Tag all (non replay) events that get sent to Sentry with the current\n // replay ID so that we can reference them later in the UI\n const eventProcessor = handleGlobalEventListener(replay);\n addEventProcessor(eventProcessor);\n\n // If a custom client has no hooks yet, we continue to use the \"old\" implementation\n if (client) {\n client.on('beforeSendEvent', handleBeforeSendEvent(replay));\n client.on('afterSendEvent', handleAfterSendEvent(replay));\n client.on('createDsc', (dsc) => {\n const replayId = replay.getSessionId();\n // We do not want to set the DSC when in buffer mode, as that means the replay has not been sent (yet)\n if (replayId && replay.isEnabled() && replay.recordingMode === 'session') {\n // Ensure to check that the session is still active - it could have expired in the meanwhile\n const isSessionActive = replay.checkAndHandleExpiredSession();\n if (isSessionActive) {\n dsc.replay_id = replayId;\n }\n }\n });\n\n client.on('spanStart', span => {\n replay.lastActiveSpan = span;\n });\n\n // We may be missing the initial spanStart due to timing issues,\n // so we capture it on finish again.\n client.on('spanEnd', span => {\n replay.lastActiveSpan = span;\n });\n\n // We want to flush replay\n client.on('beforeSendFeedback', (feedbackEvent, options) => {\n const replayId = replay.getSessionId();\n if (options && options.includeReplay && replay.isEnabled() && replayId) {\n // This should never reject\n if (feedbackEvent.contexts && feedbackEvent.contexts.feedback) {\n feedbackEvent.contexts.feedback.replay_id = replayId;\n }\n }\n });\n }\n}\n\n/**\n * Create a \"span\" for the total amount of memory being used by JS objects\n * (including v8 internal objects).\n */\nasync function addMemoryEntry(replay) {\n // window.performance.memory is a non-standard API and doesn't work on all browsers, so we try-catch this\n try {\n return Promise.all(\n createPerformanceSpans(replay, [\n // @ts-expect-error memory doesn't exist on type Performance as the API is non-standard (we check that it exists above)\n createMemoryEntry(WINDOW.performance.memory),\n ]),\n );\n } catch (error) {\n // Do nothing\n return [];\n }\n}\n\nfunction createMemoryEntry(memoryEntry) {\n const { jsHeapSizeLimit, totalJSHeapSize, usedJSHeapSize } = memoryEntry;\n // we don't want to use `getAbsoluteTime` because it adds the event time to the\n // time origin, so we get the current timestamp instead\n const time = Date.now() / 1000;\n return {\n type: 'memory',\n name: 'memory',\n start: time,\n end: time,\n data: {\n memory: {\n jsHeapSizeLimit,\n totalJSHeapSize,\n usedJSHeapSize,\n },\n },\n };\n}\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nfunction debounce(func, wait, options) {\n let callbackReturnValue;\n\n let timerId;\n let maxTimerId;\n\n const maxWait = options && options.maxWait ? Math.max(options.maxWait, wait) : 0;\n\n function invokeFunc() {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers() {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush() {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced() {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout$3(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeout$3(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Handler for recording events.\n *\n * Adds to event buffer, and has varying flushing behaviors if the event was a checkout.\n */\nfunction getHandleRecordingEmit(replay) {\n let hadFirstEvent = false;\n\n return (event, _isCheckout) => {\n // If this is false, it means session is expired, create and a new session and wait for checkout\n if (!replay.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.warn('Received replay event after session expired.');\n\n return;\n }\n\n // `_isCheckout` is only set when the checkout is due to `checkoutEveryNms`\n // We also want to treat the first event as a checkout, so we handle this specifically here\n const isCheckout = _isCheckout || !hadFirstEvent;\n hadFirstEvent = true;\n\n if (replay.clickDetector) {\n updateClickDetectorForRecordingEvent(replay.clickDetector, event);\n }\n\n // The handler returns `true` if we do not want to trigger debounced flush, `false` if we want to debounce flush.\n replay.addUpdate(() => {\n // The session is always started immediately on pageload/init, but for\n // error-only replays, it should reflect the most recent checkout\n // when an error occurs. Clear any state that happens before this current\n // checkout. This needs to happen before `addEvent()` which updates state\n // dependent on this reset.\n if (replay.recordingMode === 'buffer' && isCheckout) {\n replay.setInitialState();\n }\n\n // If the event is not added (e.g. due to being paused, disabled, or out of the max replay duration),\n // Skip all further steps\n if (!addEventSync(replay, event, isCheckout)) {\n // Return true to skip scheduling a debounced flush\n return true;\n }\n\n // Different behavior for full snapshots (type=2), ignore other event types\n // See https://github.com/rrweb-io/rrweb/blob/d8f9290ca496712aa1e7d472549480c4e7876594/packages/rrweb/src/types.ts#L16\n if (!isCheckout) {\n return false;\n }\n\n const session = replay.session;\n\n // Additionally, create a meta event that will capture certain SDK settings.\n // In order to handle buffer mode, this needs to either be done when we\n // receive checkout events or at flush time. We have an experimental mode\n // to perform multiple checkouts a session (the idea is to improve\n // seeking during playback), so also only include if segmentId is 0\n // (handled in `addSettingsEvent`).\n //\n // `isCheckout` is always true, but want to be explicit that it should\n // only be added for checkouts\n addSettingsEvent(replay, isCheckout);\n\n // If there is a previousSessionId after a full snapshot occurs, then\n // the replay session was started due to session expiration. The new session\n // is started before triggering a new checkout and contains the id\n // of the previous session. Do not immediately flush in this case\n // to avoid capturing only the checkout and instead the replay will\n // be captured if they perform any follow-up actions.\n if (session && session.previousSessionId) {\n return true;\n }\n\n // When in buffer mode, make sure we adjust the session started date to the current earliest event of the buffer\n // this should usually be the timestamp of the checkout event, but to be safe...\n if (replay.recordingMode === 'buffer' && session && replay.eventBuffer) {\n const earliestEvent = replay.eventBuffer.getEarliestTimestamp();\n if (earliestEvent) {\n DEBUG_BUILD &&\n logger.info(`Updating session start time to earliest event in buffer to ${new Date(earliestEvent)}`);\n\n session.started = earliestEvent;\n\n if (replay.getOptions().stickySession) {\n saveSession(session);\n }\n }\n }\n\n if (replay.recordingMode === 'session') {\n // If the full snapshot is due to an initial load, we will not have\n // a previous session ID. In this case, we want to buffer events\n // for a set amount of time before flushing. This can help avoid\n // capturing replays of users that immediately close the window.\n\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void replay.flush();\n }\n\n return true;\n });\n };\n}\n\n/**\n * Exported for tests\n */\nfunction createOptionsEvent(replay) {\n const options = replay.getOptions();\n return {\n type: EventType.Custom,\n timestamp: Date.now(),\n data: {\n tag: 'options',\n payload: {\n shouldRecordCanvas: replay.isRecordingCanvas(),\n sessionSampleRate: options.sessionSampleRate,\n errorSampleRate: options.errorSampleRate,\n useCompressionOption: options.useCompression,\n blockAllMedia: options.blockAllMedia,\n maskAllText: options.maskAllText,\n maskAllInputs: options.maskAllInputs,\n useCompression: replay.eventBuffer ? replay.eventBuffer.type === 'worker' : false,\n networkDetailHasUrls: options.networkDetailAllowUrls.length > 0,\n networkCaptureBodies: options.networkCaptureBodies,\n networkRequestHasHeaders: options.networkRequestHeaders.length > 0,\n networkResponseHasHeaders: options.networkResponseHeaders.length > 0,\n },\n },\n };\n}\n\n/**\n * Add a \"meta\" event that contains a simplified view on current configuration\n * options. This should only be included on the first segment of a recording.\n */\nfunction addSettingsEvent(replay, isCheckout) {\n // Only need to add this event when sending the first segment\n if (!isCheckout || !replay.session || replay.session.segmentId !== 0) {\n return;\n }\n\n addEventSync(replay, createOptionsEvent(replay), false);\n}\n\n/**\n * Create a replay envelope ready to be sent.\n * This includes both the replay event, as well as the recording data.\n */\nfunction createReplayEnvelope(\n replayEvent,\n recordingData,\n dsn,\n tunnel,\n) {\n return createEnvelope(\n createEventEnvelopeHeaders(replayEvent, getSdkMetadataForEnvelopeHeader(replayEvent), tunnel, dsn),\n [\n [{ type: 'replay_event' }, replayEvent],\n [\n {\n type: 'replay_recording',\n // If string then we need to encode to UTF8, otherwise will have\n // wrong size. TextEncoder has similar browser support to\n // MutationObserver, although it does not accept IE11.\n length:\n typeof recordingData === 'string' ? new TextEncoder().encode(recordingData).length : recordingData.length,\n },\n recordingData,\n ],\n ],\n );\n}\n\n/**\n * Prepare the recording data ready to be sent.\n */\nfunction prepareRecordingData({\n recordingData,\n headers,\n}\n\n) {\n let payloadWithSequence;\n\n // XXX: newline is needed to separate sequence id from events\n const replayHeaders = `${JSON.stringify(headers)}\n`;\n\n if (typeof recordingData === 'string') {\n payloadWithSequence = `${replayHeaders}${recordingData}`;\n } else {\n const enc = new TextEncoder();\n // XXX: newline is needed to separate sequence id from events\n const sequence = enc.encode(replayHeaders);\n // Merge the two Uint8Arrays\n payloadWithSequence = new Uint8Array(sequence.length + recordingData.length);\n payloadWithSequence.set(sequence);\n payloadWithSequence.set(recordingData, sequence.length);\n }\n\n return payloadWithSequence;\n}\n\n/**\n * Prepare a replay event & enrich it with the SDK metadata.\n */\nasync function prepareReplayEvent({\n client,\n scope,\n replayId: event_id,\n event,\n}\n\n) {\n const integrations =\n typeof client._integrations === 'object' && client._integrations !== null && !Array.isArray(client._integrations)\n ? Object.keys(client._integrations)\n : undefined;\n\n const eventHint = { event_id, integrations };\n\n client.emit('preprocessEvent', event, eventHint);\n\n const preparedEvent = (await prepareEvent(\n client.getOptions(),\n event,\n eventHint,\n scope,\n client,\n getIsolationScope(),\n )) ;\n\n // If e.g. a global event processor returned null\n if (!preparedEvent) {\n return null;\n }\n\n // This normally happens in browser client \"_prepareEvent\"\n // but since we do not use this private method from the client, but rather the plain import\n // we need to do this manually.\n preparedEvent.platform = preparedEvent.platform || 'javascript';\n\n // extract the SDK name because `client._prepareEvent` doesn't add it to the event\n const metadata = client.getSdkMetadata();\n const { name, version } = (metadata && metadata.sdk) || {};\n\n preparedEvent.sdk = {\n ...preparedEvent.sdk,\n name: name || 'sentry.javascript.unknown',\n version: version || '0.0.0',\n };\n\n return preparedEvent;\n}\n\n/**\n * Send replay attachment using `fetch()`\n */\nasync function sendReplayRequest({\n recordingData,\n replayId,\n segmentId: segment_id,\n eventContext,\n timestamp,\n session,\n}) {\n const preparedRecordingData = prepareRecordingData({\n recordingData,\n headers: {\n segment_id,\n },\n });\n\n const { urls, errorIds, traceIds, initialTimestamp } = eventContext;\n\n const client = getClient();\n const scope = getCurrentScope();\n const transport = client && client.getTransport();\n const dsn = client && client.getDsn();\n\n if (!client || !transport || !dsn || !session.sampled) {\n return resolvedSyncPromise({});\n }\n\n const baseEvent = {\n type: REPLAY_EVENT_NAME,\n replay_start_timestamp: initialTimestamp / 1000,\n timestamp: timestamp / 1000,\n error_ids: errorIds,\n trace_ids: traceIds,\n urls,\n replay_id: replayId,\n segment_id,\n replay_type: session.sampled,\n };\n\n const replayEvent = await prepareReplayEvent({ scope, client, replayId, event: baseEvent });\n\n if (!replayEvent) {\n // Taken from baseclient's `_processEvent` method, where this is handled for errors/transactions\n client.recordDroppedEvent('event_processor', 'replay', baseEvent);\n DEBUG_BUILD && logger.info('An event processor returned `null`, will not send event.');\n return resolvedSyncPromise({});\n }\n\n /*\n For reference, the fully built event looks something like this:\n {\n \"type\": \"replay_event\",\n \"timestamp\": 1670837008.634,\n \"error_ids\": [\n \"errorId\"\n ],\n \"trace_ids\": [\n \"traceId\"\n ],\n \"urls\": [\n \"https://example.com\"\n ],\n \"replay_id\": \"eventId\",\n \"segment_id\": 3,\n \"replay_type\": \"error\",\n \"platform\": \"javascript\",\n \"event_id\": \"eventId\",\n \"environment\": \"production\",\n \"sdk\": {\n \"integrations\": [\n \"BrowserTracing\",\n \"Replay\"\n ],\n \"name\": \"sentry.javascript.browser\",\n \"version\": \"7.25.0\"\n },\n \"sdkProcessingMetadata\": {},\n \"contexts\": {\n },\n }\n */\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete replayEvent.sdkProcessingMetadata;\n\n const envelope = createReplayEnvelope(replayEvent, preparedRecordingData, dsn, client.getOptions().tunnel);\n\n let response;\n\n try {\n response = await transport.send(envelope);\n } catch (err) {\n const error = new Error(UNABLE_TO_SEND_REPLAY);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n throw error;\n }\n\n // If the status code is invalid, we want to immediately stop & not retry\n if (typeof response.statusCode === 'number' && (response.statusCode < 200 || response.statusCode >= 300)) {\n throw new TransportStatusCodeError(response.statusCode);\n }\n\n const rateLimits = updateRateLimits({}, response);\n if (isRateLimited(rateLimits, 'replay')) {\n throw new RateLimitError(rateLimits);\n }\n\n return response;\n}\n\n/**\n * This error indicates that the transport returned an invalid status code.\n */\nclass TransportStatusCodeError extends Error {\n constructor(statusCode) {\n super(`Transport returned status code ${statusCode}`);\n }\n}\n\n/**\n * This error indicates that we hit a rate limit API error.\n */\nclass RateLimitError extends Error {\n\n constructor(rateLimits) {\n super('Rate limit hit');\n this.rateLimits = rateLimits;\n }\n}\n\n/**\n * Finalize and send the current replay event to Sentry\n */\nasync function sendReplay(\n replayData,\n retryConfig = {\n count: 0,\n interval: RETRY_BASE_INTERVAL,\n },\n) {\n const { recordingData, onError } = replayData;\n\n // short circuit if there's no events to upload (this shouldn't happen as _runFlush makes this check)\n if (!recordingData.length) {\n return;\n }\n\n try {\n await sendReplayRequest(replayData);\n return true;\n } catch (err) {\n if (err instanceof TransportStatusCodeError || err instanceof RateLimitError) {\n throw err;\n }\n\n // Capture error for every failed replay\n setContext('Replays', {\n _retryCount: retryConfig.count,\n });\n\n if (onError) {\n onError(err);\n }\n\n // If an error happened here, it's likely that uploading the attachment\n // failed, we'll can retry with the same events payload\n if (retryConfig.count >= RETRY_MAX_COUNT) {\n const error = new Error(`${UNABLE_TO_SEND_REPLAY} - max retries exceeded`);\n\n try {\n // In case browsers don't allow this property to be writable\n // @ts-expect-error This needs lib es2022 and newer\n error.cause = err;\n } catch (e) {\n // nothing to do\n }\n\n throw error;\n }\n\n // will retry in intervals of 5, 10, 30\n retryConfig.interval *= ++retryConfig.count;\n\n return new Promise((resolve, reject) => {\n setTimeout$3(async () => {\n try {\n await sendReplay(replayData, retryConfig);\n resolve(true);\n } catch (err) {\n reject(err);\n }\n }, retryConfig.interval);\n });\n }\n}\n\nconst THROTTLED = '__THROTTLED';\nconst SKIPPED = '__SKIPPED';\n\n/**\n * Create a throttled function off a given function.\n * When calling the throttled function, it will call the original function only\n * if it hasn't been called more than `maxCount` times in the last `durationSeconds`.\n *\n * Returns `THROTTLED` if throttled for the first time, after that `SKIPPED`,\n * or else the return value of the original function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction throttle(\n fn,\n maxCount,\n durationSeconds,\n) {\n const counter = new Map();\n\n const _cleanup = (now) => {\n const threshold = now - durationSeconds;\n counter.forEach((_value, key) => {\n if (key < threshold) {\n counter.delete(key);\n }\n });\n };\n\n const _getTotalCount = () => {\n return [...counter.values()].reduce((a, b) => a + b, 0);\n };\n\n let isThrottled = false;\n\n return (...rest) => {\n // Date in second-precision, which we use as basis for the throttling\n const now = Math.floor(Date.now() / 1000);\n\n // First, make sure to delete any old entries\n _cleanup(now);\n\n // If already over limit, do nothing\n if (_getTotalCount() >= maxCount) {\n const wasThrottled = isThrottled;\n isThrottled = true;\n return wasThrottled ? SKIPPED : THROTTLED;\n }\n\n isThrottled = false;\n const count = counter.get(now) || 0;\n counter.set(now, count + 1);\n\n return fn(...rest);\n };\n}\n\n/* eslint-disable max-lines */ // TODO: We might want to split this file up\n\n/**\n * The main replay container class, which holds all the state and methods for recording and sending replays.\n */\nclass ReplayContainer {\n\n /**\n * Recording can happen in one of three modes:\n * - session: Record the whole session, sending it continuously\n * - buffer: Always keep the last 60s of recording, requires:\n * - having replaysOnErrorSampleRate > 0 to capture replay when an error occurs\n * - or calling `flush()` to send the replay\n */\n\n /**\n * The current or last active span.\n * This is only available when performance is enabled.\n */\n\n /**\n * These are here so we can overwrite them in tests etc.\n * @hidden\n */\n\n /** The replay has to be manually started, because no sample rate (neither session or error) was provided. */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Timestamp of the last user activity. This lives across sessions.\n */\n\n /**\n * Is the integration currently active?\n */\n\n /**\n * Paused is a state where:\n * - DOM Recording is not listening at all\n * - Nothing will be added to event buffer (e.g. core SDK events)\n */\n\n /**\n * Have we attached listeners to the core SDK?\n * Note we have to track this as there is no way to remove instrumentation handlers.\n */\n\n /**\n * Function to stop recording\n */\n\n /**\n * Internal use for canvas recording options\n */\n\n constructor({\n options,\n recordingOptions,\n }\n\n) {ReplayContainer.prototype.__init.call(this);ReplayContainer.prototype.__init2.call(this);ReplayContainer.prototype.__init3.call(this);ReplayContainer.prototype.__init4.call(this);ReplayContainer.prototype.__init5.call(this);ReplayContainer.prototype.__init6.call(this);\n this.eventBuffer = null;\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n this.recordingMode = 'session';\n this.timeouts = {\n sessionIdlePause: SESSION_IDLE_PAUSE_DURATION,\n sessionIdleExpire: SESSION_IDLE_EXPIRE_DURATION,\n } ;\n this._lastActivity = Date.now();\n this._isEnabled = false;\n this._isPaused = false;\n this._requiresManualStart = false;\n this._hasInitializedCoreListeners = false;\n this._context = {\n errorIds: new Set(),\n traceIds: new Set(),\n urls: [],\n initialTimestamp: Date.now(),\n initialUrl: '',\n };\n\n this._recordingOptions = recordingOptions;\n this._options = options;\n\n this._debouncedFlush = debounce(() => this._flush(), this._options.flushMinDelay, {\n maxWait: this._options.flushMaxDelay,\n });\n\n this._throttledAddEvent = throttle(\n (event, isCheckout) => addEvent(this, event, isCheckout),\n // Max 300 events...\n 300,\n // ... per 5s\n 5,\n );\n\n const { slowClickTimeout, slowClickIgnoreSelectors } = this.getOptions();\n\n const slowClickConfig = slowClickTimeout\n ? {\n threshold: Math.min(SLOW_CLICK_THRESHOLD, slowClickTimeout),\n timeout: slowClickTimeout,\n scrollTimeout: SLOW_CLICK_SCROLL_TIMEOUT,\n ignoreSelector: slowClickIgnoreSelectors ? slowClickIgnoreSelectors.join(',') : '',\n }\n : undefined;\n\n if (slowClickConfig) {\n this.clickDetector = new ClickDetector(this, slowClickConfig);\n }\n\n // Configure replay logger w/ experimental options\n if (DEBUG_BUILD) {\n const experiments = options._experiments;\n logger.setConfig({\n captureExceptions: !!experiments.captureExceptions,\n traceInternals: !!experiments.traceInternals,\n });\n }\n }\n\n /** Get the event context. */\n getContext() {\n return this._context;\n }\n\n /** If recording is currently enabled. */\n isEnabled() {\n return this._isEnabled;\n }\n\n /** If recording is currently paused. */\n isPaused() {\n return this._isPaused;\n }\n\n /**\n * Determine if canvas recording is enabled\n */\n isRecordingCanvas() {\n return Boolean(this._canvas);\n }\n\n /** Get the replay integration options. */\n getOptions() {\n return this._options;\n }\n\n /** A wrapper to conditionally capture exceptions. */\n handleException(error) {\n DEBUG_BUILD && logger.exception(error);\n if (this._options.onError) {\n this._options.onError(error);\n }\n }\n\n /**\n * Initializes the plugin based on sampling configuration. Should not be\n * called outside of constructor.\n */\n initializeSampling(previousSessionId) {\n const { errorSampleRate, sessionSampleRate } = this._options;\n\n // If neither sample rate is > 0, then do nothing - user will need to call one of\n // `start()` or `startBuffering` themselves.\n const requiresManualStart = errorSampleRate <= 0 && sessionSampleRate <= 0;\n\n this._requiresManualStart = requiresManualStart;\n\n if (requiresManualStart) {\n return;\n }\n\n // Otherwise if there is _any_ sample rate set, try to load an existing\n // session, or create a new one.\n this._initializeSessionForSampling(previousSessionId);\n\n if (!this.session) {\n // This should not happen, something wrong has occurred\n DEBUG_BUILD && logger.exception(new Error('Unable to initialize and create session'));\n return;\n }\n\n if (this.session.sampled === false) {\n // This should only occur if `errorSampleRate` is 0 and was unsampled for\n // session-based replay. In this case there is nothing to do.\n return;\n }\n\n // If segmentId > 0, it means we've previously already captured this session\n // In this case, we still want to continue in `session` recording mode\n this.recordingMode = this.session.sampled === 'buffer' && this.session.segmentId === 0 ? 'buffer' : 'session';\n\n DEBUG_BUILD && logger.infoTick(`Starting replay in ${this.recordingMode} mode`);\n\n this._initializeRecording();\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * _performanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (this._isEnabled && this.recordingMode === 'session') {\n DEBUG_BUILD && logger.info('Recording is already in progress');\n return;\n }\n\n if (this._isEnabled && this.recordingMode === 'buffer') {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in session mode');\n\n // Required as user activity is initially set in\n // constructor, so if `start()` is called after\n // session idle expiration, a replay will not be\n // created due to an idle timeout.\n this._updateUserActivity();\n\n const session = loadOrCreateSession(\n {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n },\n {\n stickySession: this._options.stickySession,\n // This is intentional: create a new session-based replay when calling `start()`\n sessionSampleRate: 1,\n allowBuffering: false,\n },\n );\n\n this.session = session;\n\n this._initializeRecording();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, an error occurs.\n */\n startBuffering() {\n if (this._isEnabled) {\n DEBUG_BUILD && logger.info('Buffering is in progress, call `flush()` to save the replay');\n return;\n }\n\n DEBUG_BUILD && logger.infoTick('Starting replay in buffer mode');\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: 0,\n allowBuffering: true,\n },\n );\n\n this.session = session;\n\n this.recordingMode = 'buffer';\n this._initializeRecording();\n }\n\n /**\n * Start recording.\n *\n * Note that this will cause a new DOM checkout\n */\n startRecording() {\n try {\n const canvasOptions = this._canvas;\n\n this._stopRecording = record({\n ...this._recordingOptions,\n // When running in error sampling mode, we need to overwrite `checkoutEveryNms`\n // Without this, it would record forever, until an error happens, which we don't want\n // instead, we'll always keep the last 60 seconds of replay before an error happened\n ...(this.recordingMode === 'buffer'\n ? { checkoutEveryNms: BUFFER_CHECKOUT_TIME }\n : // Otherwise, use experimental option w/ min checkout time of 6 minutes\n // This is to improve playback seeking as there could potentially be\n // less mutations to process in the worse cases.\n //\n // checkout by \"N\" events is probably ideal, but means we have less\n // control about the number of checkouts we make (which generally\n // increases replay size)\n this._options._experiments.continuousCheckout && {\n // Minimum checkout time is 6 minutes\n checkoutEveryNms: Math.max(360000, this._options._experiments.continuousCheckout),\n }),\n emit: getHandleRecordingEmit(this),\n onMutation: this._onMutationHandler,\n ...(canvasOptions\n ? {\n recordCanvas: canvasOptions.recordCanvas,\n getCanvasManager: canvasOptions.getCanvasManager,\n sampling: canvasOptions.sampling,\n dataURLOptions: canvasOptions.dataURLOptions,\n }\n : {}),\n });\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Stops the recording, if it was running.\n *\n * Returns true if it was previously stopped, or is now stopped,\n * otherwise false.\n */\n stopRecording() {\n try {\n if (this._stopRecording) {\n this._stopRecording();\n this._stopRecording = undefined;\n }\n\n return true;\n } catch (err) {\n this.handleException(err);\n return false;\n }\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n async stop({ forceFlush = false, reason } = {}) {\n if (!this._isEnabled) {\n return;\n }\n\n // We can't move `_isEnabled` after awaiting a flush, otherwise we can\n // enter into an infinite loop when `stop()` is called while flushing.\n this._isEnabled = false;\n\n try {\n DEBUG_BUILD && logger.info(`Stopping Replay${reason ? ` triggered by ${reason}` : ''}`);\n\n this._removeListeners();\n this.stopRecording();\n\n this._debouncedFlush.cancel();\n // See comment above re: `_isEnabled`, we \"force\" a flush, ignoring the\n // `_isEnabled` state of the plugin since it was disabled above.\n if (forceFlush) {\n await this._flush({ force: true });\n }\n\n // After flush, destroy event buffer\n this.eventBuffer && this.eventBuffer.destroy();\n this.eventBuffer = null;\n\n // Clear session from session storage, note this means if a new session\n // is started after, it will not have `previousSessionId`\n clearSession(this);\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Pause some replay functionality. See comments for `_isPaused`.\n * This differs from stop as this only stops DOM recording, it is\n * not as thorough of a shutdown as `stop()`.\n */\n pause() {\n if (this._isPaused) {\n return;\n }\n\n this._isPaused = true;\n this.stopRecording();\n\n DEBUG_BUILD && logger.info('Pausing replay');\n }\n\n /**\n * Resumes recording, see notes for `pause().\n *\n * Note that calling `startRecording()` here will cause a\n * new DOM checkout.`\n */\n resume() {\n if (!this._isPaused || !this._checkSession()) {\n return;\n }\n\n this._isPaused = false;\n this.startRecording();\n\n DEBUG_BUILD && logger.info('Resuming replay');\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n async sendBufferedReplayOrFlush({ continueRecording = true } = {}) {\n if (this.recordingMode === 'session') {\n return this.flushImmediate();\n }\n\n const activityTime = Date.now();\n\n DEBUG_BUILD && logger.info('Converting buffer to session');\n\n // Allow flush to complete before resuming as a session recording, otherwise\n // the checkout from `startRecording` may be included in the payload.\n // Prefer to keep the error replay as a separate (and smaller) segment\n // than the session replay.\n await this.flushImmediate();\n\n const hasStoppedRecording = this.stopRecording();\n\n if (!continueRecording || !hasStoppedRecording) {\n return;\n }\n\n // To avoid race conditions where this is called multiple times, we check here again that we are still buffering\n if ((this.recordingMode ) === 'session') {\n return;\n }\n\n // Re-start recording in session-mode\n this.recordingMode = 'session';\n\n // Once this session ends, we do not want to refresh it\n if (this.session) {\n this._updateUserActivity(activityTime);\n this._updateSessionActivity(activityTime);\n this._maybeSaveSession();\n }\n\n this.startRecording();\n }\n\n /**\n * We want to batch uploads of replay events. Save events only if\n * `<flushMinDelay>` milliseconds have elapsed since the last event\n * *OR* if `<flushMaxDelay>` milliseconds have elapsed.\n *\n * Accepts a callback to perform side-effects and returns true to stop batch\n * processing and hand back control to caller.\n */\n addUpdate(cb) {\n // We need to always run `cb` (e.g. in the case of `this.recordingMode == 'buffer'`)\n const cbResult = cb();\n\n // If this option is turned on then we will only want to call `flush`\n // explicitly\n if (this.recordingMode === 'buffer') {\n return;\n }\n\n // If callback is true, we do not want to continue with flushing -- the\n // caller will need to handle it.\n if (cbResult === true) {\n return;\n }\n\n // addUpdate is called quite frequently - use _debouncedFlush so that it\n // respects the flush delays and does not flush immediately\n this._debouncedFlush();\n }\n\n /**\n * Updates the user activity timestamp and resumes recording. This should be\n * called in an event handler for a user action that we consider as the user\n * being \"active\" (e.g. a mouse click).\n */\n triggerUserActivity() {\n this._updateUserActivity();\n\n // This case means that recording was once stopped due to inactivity.\n // Ensure that recording is resumed.\n if (!this._stopRecording) {\n // Create a new session, otherwise when the user action is flushed, it\n // will get rejected due to an expired session.\n if (!this._checkSession()) {\n return;\n }\n\n // Note: This will cause a new DOM checkout\n this.resume();\n return;\n }\n\n // Otherwise... recording was never suspended, continue as normalish\n this.checkAndHandleExpiredSession();\n\n this._updateSessionActivity();\n }\n\n /**\n * Updates the user activity timestamp *without* resuming\n * recording. Some user events (e.g. keydown) can be create\n * low-value replays that only contain the keypress as a\n * breadcrumb. Instead this would require other events to\n * create a new replay after a session has expired.\n */\n updateUserActivity() {\n this._updateUserActivity();\n this._updateSessionActivity();\n }\n\n /**\n * Only flush if `this.recordingMode === 'session'`\n */\n conditionalFlush() {\n if (this.recordingMode === 'buffer') {\n return Promise.resolve();\n }\n\n return this.flushImmediate();\n }\n\n /**\n * Flush using debounce flush\n */\n flush() {\n return this._debouncedFlush() ;\n }\n\n /**\n * Always flush via `_debouncedFlush` so that we do not have flushes triggered\n * from calling both `flush` and `_debouncedFlush`. Otherwise, there could be\n * cases of mulitple flushes happening closely together.\n */\n flushImmediate() {\n this._debouncedFlush();\n // `.flush` is provided by the debounced function, analogously to lodash.debounce\n return this._debouncedFlush.flush() ;\n }\n\n /**\n * Cancels queued up flushes.\n */\n cancelFlush() {\n this._debouncedFlush.cancel();\n }\n\n /** Get the current sesion (=replay) ID */\n getSessionId() {\n return this.session && this.session.id;\n }\n\n /**\n * Checks if recording should be stopped due to user inactivity. Otherwise\n * check if session is expired and create a new session if so. Triggers a new\n * full snapshot on new session.\n *\n * Returns true if session is not expired, false otherwise.\n * @hidden\n */\n checkAndHandleExpiredSession() {\n // Prevent starting a new session if the last user activity is older than\n // SESSION_IDLE_PAUSE_DURATION. Otherwise non-user activity can trigger a new\n // session+recording. This creates noisy replays that do not have much\n // content in them.\n if (\n this._lastActivity &&\n isExpired(this._lastActivity, this.timeouts.sessionIdlePause) &&\n this.session &&\n this.session.sampled === 'session'\n ) {\n // Pause recording only for session-based replays. Otherwise, resuming\n // will create a new replay and will conflict with users who only choose\n // to record error-based replays only. (e.g. the resumed replay will not\n // contain a reference to an error)\n this.pause();\n return;\n }\n\n // --- There is recent user activity --- //\n // This will create a new session if expired, based on expiry length\n if (!this._checkSession()) {\n // Check session handles the refreshing itself\n return false;\n }\n\n return true;\n }\n\n /**\n * Capture some initial state that can change throughout the lifespan of the\n * replay. This is required because otherwise they would be captured at the\n * first flush.\n */\n setInitialState() {\n const urlPath = `${WINDOW.location.pathname}${WINDOW.location.hash}${WINDOW.location.search}`;\n const url = `${WINDOW.location.origin}${urlPath}`;\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n // Reset _context as well\n this._clearContext();\n\n this._context.initialUrl = url;\n this._context.initialTimestamp = Date.now();\n this._context.urls.push(url);\n }\n\n /**\n * Add a breadcrumb event, that may be throttled.\n * If it was throttled, we add a custom breadcrumb to indicate that.\n */\n throttledAddEvent(\n event,\n isCheckout,\n ) {\n const res = this._throttledAddEvent(event, isCheckout);\n\n // If this is THROTTLED, it means we have throttled the event for the first time\n // In this case, we want to add a breadcrumb indicating that something was skipped\n if (res === THROTTLED) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.throttled',\n });\n\n this.addUpdate(() => {\n // Return `false` if the event _was_ added, as that means we schedule a flush\n return !addEventSync(this, {\n type: ReplayEventTypeCustom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n metric: true,\n },\n });\n });\n }\n\n return res;\n }\n\n /**\n * This will get the parametrized route name of the current page.\n * This is only available if performance is enabled, and if an instrumented router is used.\n */\n getCurrentRoute() {\n const lastActiveSpan = this.lastActiveSpan || getActiveSpan();\n const lastRootSpan = lastActiveSpan && getRootSpan(lastActiveSpan);\n\n const attributes = (lastRootSpan && spanToJSON(lastRootSpan).data) || {};\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n if (!lastRootSpan || !source || !['route', 'custom'].includes(source)) {\n return undefined;\n }\n\n return spanToJSON(lastRootSpan).description;\n }\n\n /**\n * Initialize and start all listeners to varying events (DOM,\n * Performance Observer, Recording, Sentry SDK, etc)\n */\n _initializeRecording() {\n this.setInitialState();\n\n // this method is generally called on page load or manually - in both cases\n // we should treat it as an activity\n this._updateSessionActivity();\n\n this.eventBuffer = createEventBuffer({\n useCompression: this._options.useCompression,\n workerUrl: this._options.workerUrl,\n });\n\n this._removeListeners();\n this._addListeners();\n\n // Need to set as enabled before we start recording, as `record()` can trigger a flush with a new checkout\n this._isEnabled = true;\n this._isPaused = false;\n\n this.startRecording();\n }\n\n /**\n * Loads (or refreshes) the current session.\n */\n _initializeSessionForSampling(previousSessionId) {\n // Whenever there is _any_ error sample rate, we always allow buffering\n // Because we decide on sampling when an error occurs, we need to buffer at all times if sampling for errors\n const allowBuffering = this._options.errorSampleRate > 0;\n\n const session = loadOrCreateSession(\n {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n previousSessionId,\n },\n {\n stickySession: this._options.stickySession,\n sessionSampleRate: this._options.sessionSampleRate,\n allowBuffering,\n },\n );\n\n this.session = session;\n }\n\n /**\n * Checks and potentially refreshes the current session.\n * Returns false if session is not recorded.\n */\n _checkSession() {\n // If there is no session yet, we do not want to refresh anything\n // This should generally not happen, but to be safe....\n if (!this.session) {\n return false;\n }\n\n const currentSession = this.session;\n\n if (\n shouldRefreshSession(currentSession, {\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n maxReplayDuration: this._options.maxReplayDuration,\n })\n ) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._refreshSession(currentSession);\n return false;\n }\n\n return true;\n }\n\n /**\n * Refresh a session with a new one.\n * This stops the current session (without forcing a flush, as that would never work since we are expired),\n * and then does a new sampling based on the refreshed session.\n */\n async _refreshSession(session) {\n if (!this._isEnabled) {\n return;\n }\n await this.stop({ reason: 'refresh session' });\n this.initializeSampling(session.id);\n }\n\n /**\n * Adds listeners to record events for the replay\n */\n _addListeners() {\n try {\n WINDOW.document.addEventListener('visibilitychange', this._handleVisibilityChange);\n WINDOW.addEventListener('blur', this._handleWindowBlur);\n WINDOW.addEventListener('focus', this._handleWindowFocus);\n WINDOW.addEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.addListeners();\n }\n\n // There is no way to remove these listeners, so ensure they are only added once\n if (!this._hasInitializedCoreListeners) {\n addGlobalListeners(this);\n\n this._hasInitializedCoreListeners = true;\n }\n } catch (err) {\n this.handleException(err);\n }\n\n this._performanceCleanupCallback = setupPerformanceObserver(this);\n }\n\n /**\n * Cleans up listeners that were created in `_addListeners`\n */\n _removeListeners() {\n try {\n WINDOW.document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n\n WINDOW.removeEventListener('blur', this._handleWindowBlur);\n WINDOW.removeEventListener('focus', this._handleWindowFocus);\n WINDOW.removeEventListener('keydown', this._handleKeyboardEvent);\n\n if (this.clickDetector) {\n this.clickDetector.removeListeners();\n }\n\n if (this._performanceCleanupCallback) {\n this._performanceCleanupCallback();\n }\n } catch (err) {\n this.handleException(err);\n }\n }\n\n /**\n * Handle when visibility of the page content changes. Opening a new tab will\n * cause the state to change to hidden because of content of current page will\n * be hidden. Likewise, moving a different window to cover the contents of the\n * page will also trigger a change to a hidden state.\n */\n __init() {this._handleVisibilityChange = () => {\n if (WINDOW.document.visibilityState === 'visible') {\n this._doChangeToForegroundTasks();\n } else {\n this._doChangeToBackgroundTasks();\n }\n };}\n\n /**\n * Handle when page is blurred\n */\n __init2() {this._handleWindowBlur = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.blur',\n });\n\n // Do not count blur as a user action -- it's part of the process of them\n // leaving the page\n this._doChangeToBackgroundTasks(breadcrumb);\n };}\n\n /**\n * Handle when page is focused\n */\n __init3() {this._handleWindowFocus = () => {\n const breadcrumb = createBreadcrumb({\n category: 'ui.focus',\n });\n\n // Do not count focus as a user action -- instead wait until they focus and\n // interactive with page\n this._doChangeToForegroundTasks(breadcrumb);\n };}\n\n /** Ensure page remains active when a key is pressed. */\n __init4() {this._handleKeyboardEvent = (event) => {\n handleKeyboardEvent(this, event);\n };}\n\n /**\n * Tasks to run when we consider a page to be hidden (via blurring and/or visibility)\n */\n _doChangeToBackgroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const expired = isSessionExpired(this.session, {\n maxReplayDuration: this._options.maxReplayDuration,\n sessionIdleExpire: this.timeouts.sessionIdleExpire,\n });\n\n if (expired) {\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Send replay when the page/tab becomes hidden. There is no reason to send\n // replay if it becomes visible, since no actions we care about were done\n // while it was hidden\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n void this.conditionalFlush();\n }\n\n /**\n * Tasks to run when we consider a page to be visible (via focus and/or visibility)\n */\n _doChangeToForegroundTasks(breadcrumb) {\n if (!this.session) {\n return;\n }\n\n const isSessionActive = this.checkAndHandleExpiredSession();\n\n if (!isSessionActive) {\n // If the user has come back to the page within SESSION_IDLE_PAUSE_DURATION\n // ms, we will re-use the existing session, otherwise create a new\n // session\n DEBUG_BUILD && logger.info('Document has become active, but session has expired');\n return;\n }\n\n if (breadcrumb) {\n this._createCustomBreadcrumb(breadcrumb);\n }\n }\n\n /**\n * Update user activity (across session lifespans)\n */\n _updateUserActivity(_lastActivity = Date.now()) {\n this._lastActivity = _lastActivity;\n }\n\n /**\n * Updates the session's last activity timestamp\n */\n _updateSessionActivity(_lastActivity = Date.now()) {\n if (this.session) {\n this.session.lastActivity = _lastActivity;\n this._maybeSaveSession();\n }\n }\n\n /**\n * Helper to create (and buffer) a replay breadcrumb from a core SDK breadcrumb\n */\n _createCustomBreadcrumb(breadcrumb) {\n this.addUpdate(() => {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.throttledAddEvent({\n type: EventType.Custom,\n timestamp: breadcrumb.timestamp || 0,\n data: {\n tag: 'breadcrumb',\n payload: breadcrumb,\n },\n });\n });\n }\n\n /**\n * Observed performance events are added to `this.performanceEntries`. These\n * are included in the replay event before it is finished and sent to Sentry.\n */\n _addPerformanceEntries() {\n const performanceEntries = createPerformanceEntries(this.performanceEntries).concat(this.replayPerformanceEntries);\n\n this.performanceEntries = [];\n this.replayPerformanceEntries = [];\n\n return Promise.all(createPerformanceSpans(this, performanceEntries));\n }\n\n /**\n * Clear _context\n */\n _clearContext() {\n // XXX: `initialTimestamp` and `initialUrl` do not get cleared\n this._context.errorIds.clear();\n this._context.traceIds.clear();\n this._context.urls = [];\n }\n\n /** Update the initial timestamp based on the buffer content. */\n _updateInitialTimestampFromEventBuffer() {\n const { session, eventBuffer } = this;\n // If replay was started manually (=no sample rate was given),\n // We do not want to back-port the initial timestamp\n if (!session || !eventBuffer || this._requiresManualStart) {\n return;\n }\n\n // we only ever update this on the initial segment\n if (session.segmentId) {\n return;\n }\n\n const earliestEvent = eventBuffer.getEarliestTimestamp();\n if (earliestEvent && earliestEvent < this._context.initialTimestamp) {\n this._context.initialTimestamp = earliestEvent;\n }\n }\n\n /**\n * Return and clear _context\n */\n _popEventContext() {\n const _context = {\n initialTimestamp: this._context.initialTimestamp,\n initialUrl: this._context.initialUrl,\n errorIds: Array.from(this._context.errorIds),\n traceIds: Array.from(this._context.traceIds),\n urls: this._context.urls,\n };\n\n this._clearContext();\n\n return _context;\n }\n\n /**\n * Flushes replay event buffer to Sentry.\n *\n * Performance events are only added right before flushing - this is\n * due to the buffered performance observer events.\n *\n * Should never be called directly, only by `flush`\n */\n async _runFlush() {\n const replayId = this.getSessionId();\n\n if (!this.session || !this.eventBuffer || !replayId) {\n DEBUG_BUILD && logger.error('No session or eventBuffer found to flush.');\n return;\n }\n\n await this._addPerformanceEntries();\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer || !this.eventBuffer.hasEvents) {\n return;\n }\n\n // Only attach memory event if eventBuffer is not empty\n await addMemoryEntry(this);\n\n // Check eventBuffer again, as it could have been stopped in the meanwhile\n if (!this.eventBuffer) {\n return;\n }\n\n // if this changed in the meanwhile, e.g. because the session was refreshed or similar, we abort here\n if (replayId !== this.getSessionId()) {\n return;\n }\n\n try {\n // This uses the data from the eventBuffer, so we need to call this before `finish()\n this._updateInitialTimestampFromEventBuffer();\n\n const timestamp = Date.now();\n\n // Check total duration again, to avoid sending outdated stuff\n // We leave 30s wiggle room to accomodate late flushing etc.\n // This _could_ happen when the browser is suspended during flushing, in which case we just want to stop\n if (timestamp - this._context.initialTimestamp > this._options.maxReplayDuration + 30000) {\n throw new Error('Session is too long, not sending replay');\n }\n\n const eventContext = this._popEventContext();\n // Always increment segmentId regardless of outcome of sending replay\n const segmentId = this.session.segmentId++;\n this._maybeSaveSession();\n\n // Note this empties the event buffer regardless of outcome of sending replay\n const recordingData = await this.eventBuffer.finish();\n\n await sendReplay({\n replayId,\n recordingData,\n segmentId,\n eventContext,\n session: this.session,\n timestamp,\n onError: err => this.handleException(err),\n });\n } catch (err) {\n this.handleException(err);\n\n // This means we retried 3 times and all of them failed,\n // or we ran into a problem we don't want to retry, like rate limiting.\n // In this case, we want to completely stop the replay - otherwise, we may get inconsistent segments\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'sendReplay' });\n\n const client = getClient();\n\n if (client) {\n const dropReason = err instanceof RateLimitError ? 'ratelimit_backoff' : 'send_error';\n client.recordDroppedEvent(dropReason, 'replay');\n }\n }\n }\n\n /**\n * Flush recording data to Sentry. Creates a lock so that only a single flush\n * can be active at a time. Do not call this directly.\n */\n __init5() {this._flush = async ({\n force = false,\n }\n\n = {}) => {\n if (!this._isEnabled && !force) {\n // This can happen if e.g. the replay was stopped because of exceeding the retry limit\n return;\n }\n\n if (!this.checkAndHandleExpiredSession()) {\n DEBUG_BUILD && logger.error('Attempting to finish replay event after session expired.');\n return;\n }\n\n if (!this.session) {\n // should never happen, as we would have bailed out before\n return;\n }\n\n const start = this.session.started;\n const now = Date.now();\n const duration = now - start;\n\n // A flush is about to happen, cancel any queued flushes\n this._debouncedFlush.cancel();\n\n // If session is too short, or too long (allow some wiggle room over maxReplayDuration), do not send it\n // This _should_ not happen, but it may happen if flush is triggered due to a page activity change or similar\n const tooShort = duration < this._options.minReplayDuration;\n const tooLong = duration > this._options.maxReplayDuration + 5000;\n if (tooShort || tooLong) {\n DEBUG_BUILD &&\n logger.info(\n `Session duration (${Math.floor(duration / 1000)}s) is too ${\n tooShort ? 'short' : 'long'\n }, not sending replay.`,\n );\n\n if (tooShort) {\n this._debouncedFlush();\n }\n return;\n }\n\n const eventBuffer = this.eventBuffer;\n if (eventBuffer && this.session.segmentId === 0 && !eventBuffer.hasCheckout) {\n DEBUG_BUILD && logger.info('Flushing initial segment without checkout.');\n // TODO FN: Evaluate if we want to stop here, or remove this again?\n }\n\n const _flushInProgress = !!this._flushLock;\n\n // this._flushLock acts as a lock so that future calls to `_flush()` will\n // be blocked until current flush is finished (i.e. this promise resolves)\n if (!this._flushLock) {\n this._flushLock = this._runFlush();\n }\n\n try {\n await this._flushLock;\n } catch (err) {\n this.handleException(err);\n } finally {\n this._flushLock = undefined;\n\n if (_flushInProgress) {\n // Wait for previous flush to finish, then call the debounced\n // `_flush()`. It's possible there are other flush requests queued and\n // waiting for it to resolve. We want to reduce all outstanding\n // requests (as well as any new flush requests that occur within a\n // second of the locked flush completing) into a single flush.\n this._debouncedFlush();\n }\n }\n };}\n\n /** Save the session, if it is sticky */\n _maybeSaveSession() {\n if (this.session && this._options.stickySession) {\n saveSession(this.session);\n }\n }\n\n /** Handler for rrweb.record.onMutation */\n __init6() {this._onMutationHandler = (mutations) => {\n const count = mutations.length;\n\n const mutationLimit = this._options.mutationLimit;\n const mutationBreadcrumbLimit = this._options.mutationBreadcrumbLimit;\n const overMutationLimit = mutationLimit && count > mutationLimit;\n\n // Create a breadcrumb if a lot of mutations happen at the same time\n // We can show this in the UI as an information with potential performance improvements\n if (count > mutationBreadcrumbLimit || overMutationLimit) {\n const breadcrumb = createBreadcrumb({\n category: 'replay.mutations',\n data: {\n count,\n limit: overMutationLimit,\n },\n });\n this._createCustomBreadcrumb(breadcrumb);\n }\n\n // Stop replay if over the mutation limit\n if (overMutationLimit) {\n // This should never reject\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stop({ reason: 'mutationLimit', forceFlush: this.recordingMode === 'session' });\n return false;\n }\n\n // `true` means we use the regular mutation handling by rrweb\n return true;\n };}\n}\n\nfunction getOption(selectors, defaultSelectors) {\n return [\n ...selectors,\n // sentry defaults\n ...defaultSelectors,\n ].join(',');\n}\n\n/**\n * Returns privacy related configuration for use in rrweb\n */\nfunction getPrivacyOptions({ mask, unmask, block, unblock, ignore }) {\n const defaultBlockedElements = ['base[href=\"/\"]'];\n\n const maskSelector = getOption(mask, ['.sentry-mask', '[data-sentry-mask]']);\n const unmaskSelector = getOption(unmask, []);\n\n const options = {\n // We are making the decision to make text and input selectors the same\n maskTextSelector: maskSelector,\n unmaskTextSelector: unmaskSelector,\n\n blockSelector: getOption(block, ['.sentry-block', '[data-sentry-block]', ...defaultBlockedElements]),\n unblockSelector: getOption(unblock, []),\n ignoreSelector: getOption(ignore, ['.sentry-ignore', '[data-sentry-ignore]', 'input[type=\"file\"]']),\n };\n\n return options;\n}\n\n/**\n * Masks an attribute if necessary, otherwise return attribute value as-is.\n */\nfunction maskAttribute({\n el,\n key,\n maskAttributes,\n maskAllText,\n privacyOptions,\n value,\n}) {\n // We only mask attributes if `maskAllText` is true\n if (!maskAllText) {\n return value;\n }\n\n // unmaskTextSelector takes precendence\n if (privacyOptions.unmaskTextSelector && el.matches(privacyOptions.unmaskTextSelector)) {\n return value;\n }\n\n if (\n maskAttributes.includes(key) ||\n // Need to mask `value` attribute for `<input>` if it's a button-like\n // type\n (key === 'value' && el.tagName === 'INPUT' && ['submit', 'button'].includes(el.getAttribute('type') || ''))\n ) {\n return value.replace(/[\\S]/g, '*');\n }\n\n return value;\n}\n\nconst MEDIA_SELECTORS =\n 'img,image,svg,video,object,picture,embed,map,audio,link[rel=\"icon\"],link[rel=\"apple-touch-icon\"]';\n\nconst DEFAULT_NETWORK_HEADERS = ['content-length', 'content-type', 'accept'];\n\nlet _initialized = false;\n\n/**\n * Sentry integration for [Session Replay](https://sentry.io/for/session-replay/).\n *\n * See the [Replay documentation](https://docs.sentry.io/platforms/javascript/guides/session-replay/) for more information.\n *\n * @example\n *\n * ```\n * Sentry.init({\n * dsn: '__DSN__',\n * integrations: [Sentry.replayIntegration()],\n * });\n * ```\n */\nconst replayIntegration = ((options) => {\n return new Replay(options);\n}) ;\n\n/**\n * Replay integration\n *\n * TODO: Rewrite this to be functional integration\n * Exported for tests.\n */\nclass Replay {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Replay';}\n\n /**\n * @inheritDoc\n */\n\n /**\n * Options to pass to `rrweb.record()`\n */\n\n /**\n * Initial options passed to the replay integration, merged with default values.\n * Note: `sessionSampleRate` and `errorSampleRate` are not required here, as they\n * can only be finally set when setupOnce() is called.\n *\n * @private\n */\n\n constructor({\n flushMinDelay = DEFAULT_FLUSH_MIN_DELAY,\n flushMaxDelay = DEFAULT_FLUSH_MAX_DELAY,\n minReplayDuration = MIN_REPLAY_DURATION,\n maxReplayDuration = MAX_REPLAY_DURATION,\n stickySession = true,\n useCompression = true,\n workerUrl,\n _experiments = {},\n maskAllText = true,\n maskAllInputs = true,\n blockAllMedia = true,\n\n mutationBreadcrumbLimit = 750,\n mutationLimit = 10000,\n\n slowClickTimeout = 7000,\n slowClickIgnoreSelectors = [],\n\n networkDetailAllowUrls = [],\n networkDetailDenyUrls = [],\n networkCaptureBodies = true,\n networkRequestHeaders = [],\n networkResponseHeaders = [],\n\n mask = [],\n maskAttributes = ['title', 'placeholder'],\n unmask = [],\n block = [],\n unblock = [],\n ignore = [],\n maskFn,\n\n beforeAddRecordingEvent,\n beforeErrorSampling,\n } = {}) {\n this.name = Replay.id;\n\n const privacyOptions = getPrivacyOptions({\n mask,\n unmask,\n block,\n unblock,\n ignore,\n });\n\n this._recordingOptions = {\n maskAllInputs,\n maskAllText,\n maskInputOptions: { password: true },\n maskTextFn: maskFn,\n maskInputFn: maskFn,\n maskAttributeFn: (key, value, el) =>\n maskAttribute({\n maskAttributes,\n maskAllText,\n privacyOptions,\n key,\n value,\n el,\n }),\n\n ...privacyOptions,\n\n // Our defaults\n slimDOMOptions: 'all',\n inlineStylesheet: true,\n // Disable inline images as it will increase segment/replay size\n inlineImages: false,\n // collect fonts, but be aware that `sentry.io` needs to be an allowed\n // origin for playback\n collectFonts: true,\n errorHandler: (err) => {\n try {\n err.__rrweb__ = true;\n } catch (error) {\n // ignore errors here\n // this can happen if the error is frozen or does not allow mutation for other reasons\n }\n },\n };\n\n this._initialOptions = {\n flushMinDelay,\n flushMaxDelay,\n minReplayDuration: Math.min(minReplayDuration, MIN_REPLAY_DURATION_LIMIT),\n maxReplayDuration: Math.min(maxReplayDuration, MAX_REPLAY_DURATION),\n stickySession,\n useCompression,\n workerUrl,\n blockAllMedia,\n maskAllInputs,\n maskAllText,\n mutationBreadcrumbLimit,\n mutationLimit,\n slowClickTimeout,\n slowClickIgnoreSelectors,\n networkDetailAllowUrls,\n networkDetailDenyUrls,\n networkCaptureBodies,\n networkRequestHeaders: _getMergedNetworkHeaders(networkRequestHeaders),\n networkResponseHeaders: _getMergedNetworkHeaders(networkResponseHeaders),\n beforeAddRecordingEvent,\n beforeErrorSampling,\n\n _experiments,\n };\n\n if (this._initialOptions.blockAllMedia) {\n // `blockAllMedia` is a more user friendly option to configure blocking\n // embedded media elements\n this._recordingOptions.blockSelector = !this._recordingOptions.blockSelector\n ? MEDIA_SELECTORS\n : `${this._recordingOptions.blockSelector},${MEDIA_SELECTORS}`;\n }\n\n if (this._isInitialized && isBrowser()) {\n throw new Error('Multiple Sentry Session Replay instances are not supported');\n }\n\n this._isInitialized = true;\n }\n\n /** If replay has already been initialized */\n get _isInitialized() {\n return _initialized;\n }\n\n /** Update _isInitialized */\n set _isInitialized(value) {\n _initialized = value;\n }\n\n /**\n * Setup and initialize replay container\n */\n afterAllSetup(client) {\n if (!isBrowser() || this._replay) {\n return;\n }\n\n this._setup(client);\n this._initialize(client);\n }\n\n /**\n * Start a replay regardless of sampling rate. Calling this will always\n * create a new session. Will log a message if replay is already in progress.\n *\n * Creates or loads a session, attaches listeners to varying events (DOM,\n * PerformanceObserver, Recording, Sentry SDK, etc)\n */\n start() {\n if (!this._replay) {\n return;\n }\n this._replay.start();\n }\n\n /**\n * Start replay buffering. Buffers until `flush()` is called or, if\n * `replaysOnErrorSampleRate` > 0, until an error occurs.\n */\n startBuffering() {\n if (!this._replay) {\n return;\n }\n\n this._replay.startBuffering();\n }\n\n /**\n * Currently, this needs to be manually called (e.g. for tests). Sentry SDK\n * does not support a teardown\n */\n stop() {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n return this._replay.stop({ forceFlush: this._replay.recordingMode === 'session' });\n }\n\n /**\n * If not in \"session\" recording mode, flush event buffer which will create a new replay.\n * If replay is not enabled, a new session replay is started.\n * Unless `continueRecording` is false, the replay will continue to record and\n * behave as a \"session\"-based replay.\n *\n * Otherwise, queue up a flush.\n */\n flush(options) {\n if (!this._replay) {\n return Promise.resolve();\n }\n\n // assuming a session should be recorded in this case\n if (!this._replay.isEnabled()) {\n this._replay.start();\n return Promise.resolve();\n }\n\n return this._replay.sendBufferedReplayOrFlush(options);\n }\n\n /**\n * Get the current session ID.\n */\n getReplayId() {\n if (!this._replay || !this._replay.isEnabled()) {\n return;\n }\n\n return this._replay.getSessionId();\n }\n\n /**\n * Initializes replay.\n */\n _initialize(client) {\n if (!this._replay) {\n return;\n }\n\n this._maybeLoadFromReplayCanvasIntegration(client);\n this._replay.initializeSampling();\n }\n\n /** Setup the integration. */\n _setup(client) {\n // Client is not available in constructor, so we need to wait until setupOnce\n const finalOptions = loadReplayOptionsFromClient(this._initialOptions, client);\n\n this._replay = new ReplayContainer({\n options: finalOptions,\n recordingOptions: this._recordingOptions,\n });\n }\n\n /** Get canvas options from ReplayCanvas integration, if it is also added. */\n _maybeLoadFromReplayCanvasIntegration(client) {\n // To save bundle size, we skip checking for stuff here\n // and instead just try-catch everything - as generally this should all be defined\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n try {\n const canvasIntegration = client.getIntegrationByName('ReplayCanvas')\n\n;\n if (!canvasIntegration) {\n return;\n }\n\n this._replay['_canvas'] = canvasIntegration.getOptions();\n } catch (e) {\n // ignore errors here\n }\n /* eslint-enable @typescript-eslint/no-non-null-assertion */\n }\n}Replay.__initStatic();\n\n/** Parse Replay-related options from SDK options */\nfunction loadReplayOptionsFromClient(initialOptions, client) {\n const opt = client.getOptions() ;\n\n const finalOptions = {\n sessionSampleRate: 0,\n errorSampleRate: 0,\n ...dropUndefinedKeys(initialOptions),\n };\n\n const replaysSessionSampleRate = parseSampleRate(opt.replaysSessionSampleRate);\n const replaysOnErrorSampleRate = parseSampleRate(opt.replaysOnErrorSampleRate);\n\n if (replaysSessionSampleRate == null && replaysOnErrorSampleRate == null) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',\n );\n });\n }\n\n if (replaysSessionSampleRate != null) {\n finalOptions.sessionSampleRate = replaysSessionSampleRate;\n }\n\n if (replaysOnErrorSampleRate != null) {\n finalOptions.errorSampleRate = replaysOnErrorSampleRate;\n }\n\n return finalOptions;\n}\n\nfunction _getMergedNetworkHeaders(headers) {\n return [...DEFAULT_NETWORK_HEADERS, ...headers.map(header => header.toLowerCase())];\n}\n\n/**\n * This is a small utility to get a type-safe instance of the Replay integration.\n */\nfunction getReplay() {\n const client = getClient();\n return client && client.getIntegrationByName('Replay');\n}\n\nexport { getReplay, replayIntegration };\n//# sourceMappingURL=index.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-transfer .ant-transfer-list-header-dropdown{display:none !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpTransfer/OpTransfer.scss\"],\"names\":[],\"mappings\":\"AAIE,gDACE,uBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-transfer {\\n // Remove the down caret icon that has the select all options\\n .ant-transfer-list-header-dropdown {\\n display: none !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","module.exports = __webpack_public_path__ + \"5a741aab715866cb4d9a55e89dfc8420.js\";","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _SettingOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/SettingOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar SettingOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _SettingOutlined.default\n }));\n};\n/**![setting](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNC44IDYyNS43bC02NS41LTU2YzMuMS0xOSA0LjctMzguNCA0LjctNTcuOHMtMS42LTM4LjgtNC43LTU3LjhsNjUuNS01NmEzMi4wMyAzMi4wMyAwIDAwOS4zLTM1LjJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMDAtNzkuNy0xMzcuOWwtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwMC0yNS44LTI1LjdsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAwLTI1LjggMjUuN2wtMTUuOCA4NS40YTM1MS44NiAzNTEuODYgMCAwMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMDAtNzkuNyAxMzcuOWwtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjMgNTYuNmMtMy4xIDE4LjgtNC42IDM4LTQuNiA1Ny4xIDAgMTkuMiAxLjUgMzguNCA0LjYgNTcuMUw5OSA2MjUuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOS0yOS4xYzI5LjggMjQuNSA2My4xIDQzLjkgOTkgNTcuNGwxNS44IDg1LjRhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDkuNCA0NDkuNCAwIDAwMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMDAyNS44LTI1LjdsMTUuNy04NWEzNTAgMzUwIDAgMDA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTdhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5Ljl6TTUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMDE1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwMTQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwMTYyNCA1MDJjMCAyOS45LTExLjcgNTgtMzIuOCA3OS4yeiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(SettingOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"SettingOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"6c0a75dc5671c3f237a79f6e45b9891c.js\";","import { useEffect } from 'react';\nimport useRafState from './useRafState';\nimport { off, on } from './misc/util';\nvar useMouse = function (ref) {\n if (process.env.NODE_ENV === 'development') {\n if (typeof ref !== 'object' || typeof ref.current === 'undefined') {\n console.error('useMouse expects a single ref argument.');\n }\n }\n var _a = useRafState({\n docX: 0,\n docY: 0,\n posX: 0,\n posY: 0,\n elX: 0,\n elY: 0,\n elH: 0,\n elW: 0,\n }), state = _a[0], setState = _a[1];\n useEffect(function () {\n var moveHandler = function (event) {\n if (ref && ref.current) {\n var _a = ref.current.getBoundingClientRect(), left = _a.left, top_1 = _a.top, elW = _a.width, elH = _a.height;\n var posX = left + window.pageXOffset;\n var posY = top_1 + window.pageYOffset;\n var elX = event.pageX - posX;\n var elY = event.pageY - posY;\n setState({\n docX: event.pageX,\n docY: event.pageY,\n posX: posX,\n posY: posY,\n elX: elX,\n elY: elY,\n elH: elH,\n elW: elW,\n });\n }\n };\n on(document, 'mousemove', moveHandler);\n return function () {\n off(document, 'mousemove', moveHandler);\n };\n }, [ref]);\n return state;\n};\nexport default useMouse;\n","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","import {\n SCOPE_IDENTITY_ID_TEMPLATES,\n SCOPE_ORG_ID_TEMPLATES,\n} from 'new-components/OpAppScaffold/constants';\n\nexport const SUB_ORG_SCOPES = ['s-o:r', 's-o:w', 's-o-video:r', 's-o-video:w'];\nexport const SUB_ORG_FEATURE_CODES = ['subOrgs', 'subOrgsVideo'];\n\n/**\n * @description Get the user's suborgs scopes when not referring to a specific org.\n * EX: the org switcher for partner users\n * @returns {array} returns all the user's scopes in the parent org.\n */\nexport const getAnySubOrgScopes = ({\n tokenScopeList,\n}: {\n tokenScopeList: Api.Response['describeAccessToken']['tokenScopeList'];\n}) => {\n const subOrgsScopes = new Set();\n\n tokenScopeList?.forEach((tokenScope) => {\n // Check if this org has the suborgs feature\n const hasSubOrg = tokenScope?.org?.packagePlans?.find((packagePlan) => {\n return packagePlan.package?.packageFeatures?.some((packageFeature) =>\n SUB_ORG_FEATURE_CODES.includes(packageFeature.feature?.code ?? ''),\n );\n });\n\n if (hasSubOrg) {\n (\n tokenScope?.scope?.filter((scope) => SUB_ORG_SCOPES.includes(scope)) ??\n []\n ).forEach((scope) => subOrgsScopes.add(scope));\n }\n });\n\n return [...subOrgsScopes] as string[];\n};\n\n/**\n * @description Get the user's applicable parent org scopes. Scopes are applicable\n * if the org has a parent, that parent has a subOrgs license, and the user has subOrg\n * related scopes in that org.\n * @returns {array} returns all the user's scopes in the parent org.\n */\nexport const getParentSubOrgScopes = ({\n tokenScopeList,\n parentOrgId,\n}: {\n tokenScopeList: Api.Response['describeAccessToken']['tokenScopeList'];\n parentOrgId?: number;\n}) => {\n if (!parentOrgId) return [];\n\n // Get the parent org's TokenScope\n const parentOrgTokenScope = tokenScopeList?.find(\n (tokenScope) => tokenScope.org?.id === parentOrgId,\n );\n\n // Check if the parent has the suborgs feature\n const hasSubOrg = parentOrgTokenScope?.org?.packagePlans?.find(\n (packagePlan) => {\n return packagePlan.package?.packageFeatures?.some((packageFeature) =>\n SUB_ORG_FEATURE_CODES.includes(packageFeature.feature?.code ?? ''),\n );\n },\n );\n\n return hasSubOrg\n ? // If hasSubOrg is true, these must be defined\n parentOrgTokenScope!.scope!.filter((scope) =>\n SUB_ORG_SCOPES.includes(scope),\n )\n : [];\n};\n\n/**\n * @description Get the user's current identity scopes.\n * @returns {array} the user's current identity scopes.\n */\nexport const getActiveIdentityScopes = ({\n tokenScopeList,\n}: {\n tokenScopeList: Api.Response['describeAccessToken']['tokenScopeList'];\n}) => {\n if (!tokenScopeList) return []; // user has no scopes\n\n return tokenScopeList.find((tokenScope) => !tokenScope.org?.id)?.scope ?? [];\n};\n\n/**\n * @description Get the user's current applicable scopes.\n * @param tokenScopeList - list of user's token scopes\n * @param orgId - org you want applicable scopes for - if no orgId\n * get only identity level and partner scopes\n * @param parentOrgId - parent of org you want applicable scopes for\n * @returns {array} a combination of the User's scopes in the current org,\n * the parent org, and their identity level scopes\n */\nexport const getActiveScopes = ({\n tokenScopeList,\n orgId,\n parentOrgId,\n}: {\n tokenScopeList: Api.Response['describeAccessToken']['tokenScopeList'];\n orgId?: number;\n parentOrgId?: number;\n}) => {\n if (!tokenScopeList) return []; // user has no scopes\n\n // Get the current org's tokenScope from the tokenScopeLIst\n const currentOrgTokenScope = tokenScopeList.find(\n (tokenScope) => tokenScope.org?.id === orgId,\n );\n\n // Check if there are parent org scopes where the user has sub orgs access\n // or if only looking for identity/partner scopes check for any sub-orgs scopes\n const parentOrgScopes = parentOrgId\n ? getParentSubOrgScopes({\n tokenScopeList,\n parentOrgId,\n })\n : getAnySubOrgScopes({ tokenScopeList }); // TODO - check if this is correct when dealing with non-auth page like /mfaManagement\n\n /*\n Filter sub org scopes out of the current org's scopes. They should be retrieved\n from the parent org if one exists. The parent org must have a sub-orgs license\n and the user must have s-o scopes in that parent org\n\n It's important to get the right list here since\n various places (e.g. BillingSubscriptionWidget) are doing\n client-side visibility gating based on the presence of s-o:r or\n s-o:w, but that produces unintended behavior if the org doesn't\n also have the subOrgs feature.\n */\n const orgScopes = (currentOrgTokenScope?.scope ?? []).filter(\n (scope) => !SUB_ORG_SCOPES.includes(scope),\n );\n\n // grab identity scopes\n const identityScopes =\n tokenScopeList.find((tokenScope) => !tokenScope.org?.id)?.scope ?? [];\n\n // Return unique scopes\n return Array.from(\n new Set([...orgScopes, ...identityScopes, ...parentOrgScopes]),\n );\n};\n\n/**\n * @description inject orgId into org scopes\n * @returns {object} a copy of scopes where {orgId} is replaced with the org id\n */\nexport const injectOrgIdIntoOrgScopes = ({\n scopes,\n orgId,\n}: {\n scopes: string[];\n orgId: number;\n}) =>\n scopes.map((scope) =>\n SCOPE_ORG_ID_TEMPLATES.reduce(\n (result, template) => result.replace(template, String(orgId)),\n scope,\n ),\n );\n\n/**\n * @description inject identityId into scopes\n * @returns {object} a copy of scopes where {identityId} is replaced with the identity id\n */\nexport const injectIdentityIdIntoScopes = ({\n scopes,\n identityId,\n}: {\n scopes: string[];\n identityId: number;\n}) =>\n scopes.map((scope) =>\n SCOPE_IDENTITY_ID_TEMPLATES.reduce(\n (result, template) => result.replace(template, String(identityId)),\n scope,\n ),\n );\n\n/**\n * @description validates the user has proper scopes\n * @returns {boolean} true if the user has at least 1 allowed scope\n * and false if not\n */\nexport const validateScopes = ({\n activeScopes,\n rawAllowedScopes,\n orgId,\n identityId,\n}: {\n activeScopes?: string[] | null;\n rawAllowedScopes: string[];\n orgId?: number;\n identityId?: number;\n}) => {\n if (!activeScopes) return false;\n\n let allowedScopes = rawAllowedScopes;\n\n if (orgId) {\n allowedScopes = injectOrgIdIntoOrgScopes({\n scopes: rawAllowedScopes,\n orgId,\n });\n }\n\n if (identityId) {\n allowedScopes = injectIdentityIdIntoScopes({\n scopes: allowedScopes,\n identityId,\n });\n }\n\n return allowedScopes.some((requiredScope) =>\n activeScopes.includes(requiredScope),\n );\n};\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\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// 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\nmodule.exports = ListCache;\n","import { addRequestDataToEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst DEFAULT_OPTIONS = {\n include: {\n cookies: true,\n data: true,\n headers: true,\n ip: false,\n query_string: true,\n url: true,\n user: {\n id: true,\n username: true,\n email: true,\n },\n },\n transactionNamingScheme: 'methodPath' ,\n};\n\nconst INTEGRATION_NAME = 'RequestData';\n\nconst _requestDataIntegration = ((options = {}) => {\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n include: {\n ...DEFAULT_OPTIONS.include,\n ...options.include,\n user:\n options.include && typeof options.include.user === 'boolean'\n ? options.include.user\n : {\n ...DEFAULT_OPTIONS.include.user,\n // Unclear why TS still thinks `options.include.user` could be a boolean at this point\n ...((options.include || {}).user ),\n },\n },\n };\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n // Note: In the long run, most of the logic here should probably move into the request data utility functions. For\n // the moment it lives here, though, until https://github.com/getsentry/sentry-javascript/issues/5718 is addressed.\n // (TL;DR: Those functions touch many parts of the repo in many different ways, and need to be cleaned up. Once\n // that's happened, it will be easier to add this logic in without worrying about unexpected side effects.)\n\n const { sdkProcessingMetadata = {} } = event;\n const req = sdkProcessingMetadata.request;\n\n if (!req) {\n return event;\n }\n\n const addRequestDataOptions = convertReqDataIntegrationOptsToAddReqDataOpts(_options);\n\n return addRequestDataToEvent(event, req, addRequestDataOptions);\n },\n };\n}) ;\n\n/**\n * Add data about a request to an event. Primarily for use in Node-based SDKs, but included in `@sentry/core`\n * so it can be used in cross-platform SDKs like `@sentry/nextjs`.\n */\nconst requestDataIntegration = defineIntegration(_requestDataIntegration);\n\n/** Convert this integration's options to match what `addRequestDataToEvent` expects */\n/** TODO: Can possibly be deleted once https://github.com/getsentry/sentry-javascript/issues/5718 is fixed */\nfunction convertReqDataIntegrationOptsToAddReqDataOpts(\n integrationOptions,\n) {\n const {\n transactionNamingScheme,\n include: { ip, user, ...requestOptions },\n } = integrationOptions;\n\n const requestIncludeKeys = ['method'];\n for (const [key, value] of Object.entries(requestOptions)) {\n if (value) {\n requestIncludeKeys.push(key);\n }\n }\n\n let addReqDataUserOpt;\n if (user === undefined) {\n addReqDataUserOpt = true;\n } else if (typeof user === 'boolean') {\n addReqDataUserOpt = user;\n } else {\n const userIncludeKeys = [];\n for (const [key, value] of Object.entries(user)) {\n if (value) {\n userIncludeKeys.push(key);\n }\n }\n addReqDataUserOpt = userIncludeKeys;\n }\n\n return {\n include: {\n ip,\n user: addReqDataUserOpt,\n request: requestIncludeKeys.length !== 0 ? requestIncludeKeys : undefined,\n transaction: transactionNamingScheme,\n },\n };\n}\n\nexport { requestDataIntegration };\n//# sourceMappingURL=requestdata.js.map\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\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 met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\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 * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING 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 *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || 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}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/deep_copy\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = require(\"./deep_copy\").deepCopy;\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/</g, \"<\");\n};\nexports.getMatchOffsets = function (string, regExp) {\n var matches = [];\n string.replace(regExp, function (str) {\n matches.push({\n offset: arguments[arguments.length - 2],\n length: str.length\n });\n });\n return matches;\n};\nexports.deferredCall = function (fcn) {\n var timer = null;\n var callback = function () {\n timer = null;\n fcn();\n };\n var deferred = function (timeout) {\n deferred.cancel();\n timer = setTimeout(callback, timeout || 0);\n return deferred;\n };\n deferred.schedule = deferred;\n deferred.call = function () {\n this.cancel();\n fcn();\n return deferred;\n };\n deferred.cancel = function () {\n clearTimeout(timer);\n timer = null;\n return deferred;\n };\n deferred.isPending = function () {\n return timer;\n };\n return deferred;\n};\nexports.delayedCall = function (fcn, defaultTimeout) {\n var timer = null;\n var callback = function () {\n timer = null;\n fcn();\n };\n var _self = function (timeout) {\n if (timer == null)\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.delay = function (timeout) {\n timer && clearTimeout(timer);\n timer = setTimeout(callback, timeout || defaultTimeout);\n };\n _self.schedule = _self;\n _self.call = function () {\n this.cancel();\n fcn();\n };\n _self.cancel = function () {\n timer && clearTimeout(timer);\n timer = null;\n };\n _self.isPending = function () {\n return timer;\n };\n return _self;\n};\nexports.supportsLookbehind = function () {\n try {\n new RegExp('(?<=.)');\n }\n catch (e) {\n return false;\n }\n return true;\n};\nexports.skipEmptyMatch = function (line, last, supportsUnicodeFlag) {\n return supportsUnicodeFlag && line.codePointAt(last) > 0xffff ? 2 : 1;\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function () {\n if (exports.isMac) {\n return exports.OS.MAC;\n }\n else if (exports.isLinux) {\n return exports.OS.LINUX;\n }\n else {\n return exports.OS.WINDOWS;\n }\n};\nvar _navigator = typeof navigator == \"object\" ? navigator : {};\nvar os = (/mac|win|linux/i.exec(_navigator.platform) || [\"other\"])[0].toLowerCase();\nvar ua = _navigator.userAgent || \"\";\nvar appName = _navigator.appName || \"\";\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE =\n (appName == \"Microsoft Internet Explorer\" || appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window[\"opera\"]) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isSafari = parseFloat(ua.split(\" Safari/\")[1]) && !exports.isChrome || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window[\"MSStream\"];\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/report_error\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.reportError = function reportError(msg, data) {\n var e = new Error(msg);\n e[\"data\"] = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n};\n\n});\n\nace.define(\"ace/lib/default_english_messages\",[\"require\",\"exports\",\"module\"], function(require, exports, module){var defaultEnglishMessages = {\n \"autocomplete.popup.aria-roledescription\": \"Autocomplete suggestions\",\n \"autocomplete.popup.aria-label\": \"Autocomplete suggestions\",\n \"autocomplete.popup.item.aria-roledescription\": \"item\",\n \"autocomplete.loading\": \"Loading...\",\n \"editor.scroller.aria-roledescription\": \"editor\",\n \"editor.scroller.aria-label\": \"Editor content, press Enter to start editing, press Escape to exit\",\n \"editor.gutter.aria-roledescription\": \"editor gutter\",\n \"editor.gutter.aria-label\": \"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\",\n \"error-marker.good-state\": \"Looks good!\",\n \"prompt.recently-used\": \"Recently used\",\n \"prompt.other-commands\": \"Other commands\",\n \"prompt.no-matching-commands\": \"No matching commands\",\n \"search-box.find.placeholder\": \"Search for\",\n \"search-box.find-all.text\": \"All\",\n \"search-box.replace.placeholder\": \"Replace with\",\n \"search-box.replace-next.text\": \"Replace\",\n \"search-box.replace-all.text\": \"All\",\n \"search-box.toggle-replace.title\": \"Toggle Replace mode\",\n \"search-box.toggle-regexp.title\": \"RegExp Search\",\n \"search-box.toggle-case.title\": \"CaseSensitive Search\",\n \"search-box.toggle-whole-word.title\": \"Whole Word Search\",\n \"search-box.toggle-in-selection.title\": \"Search In Selection\",\n \"search-box.search-counter\": \"$0 of $1\",\n \"text-input.aria-roledescription\": \"editor\",\n \"text-input.aria-label\": \"Cursor at row $0\",\n \"gutter.code-folding.range.aria-label\": \"Toggle code folding, rows $0 through $1\",\n \"gutter.code-folding.closed.aria-label\": \"Toggle code folding, rows $0 through $1\",\n \"gutter.code-folding.open.aria-label\": \"Toggle code folding, row $0\",\n \"gutter.code-folding.closed.title\": \"Unfold code\",\n \"gutter.code-folding.open.title\": \"Fold code\",\n \"gutter.annotation.aria-label.error\": \"Error, read annotations row $0\",\n \"gutter.annotation.aria-label.warning\": \"Warning, read annotations row $0\",\n \"gutter.annotation.aria-label.info\": \"Info, read annotations row $0\",\n \"inline-fold.closed.title\": \"Unfold code\",\n \"gutter-tooltip.aria-label.error.singular\": \"error\",\n \"gutter-tooltip.aria-label.error.plural\": \"errors\",\n \"gutter-tooltip.aria-label.warning.singular\": \"warning\",\n \"gutter-tooltip.aria-label.warning.plural\": \"warnings\",\n \"gutter-tooltip.aria-label.info.singular\": \"information message\",\n \"gutter-tooltip.aria-label.info.plural\": \"information messages\",\n \"gutter.annotation.aria-label.security\": \"Security finding, read annotations row $0\",\n \"gutter.annotation.aria-label.hint\": \"Suggestion, read annotations row $0\",\n \"gutter-tooltip.aria-label.security.singular\": \"security finding\",\n \"gutter-tooltip.aria-label.security.plural\": \"security findings\",\n \"gutter-tooltip.aria-label.hint.singular\": \"suggestion\",\n \"gutter-tooltip.aria-label.hint.plural\": \"suggestions\"\n};\nexports.defaultEnglishMessages = defaultEnglishMessages;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/report_error\",\"ace/lib/default_english_messages\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar reportError = require(\"./report_error\").reportError;\nvar defaultEnglishMessages = require(\"./default_english_messages\").defaultEnglishMessages;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nvar messages;\nvar nlsPlaceholders;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n messages = defaultEnglishMessages;\n nlsPlaceholders = \"dollarSigns\";\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value, options) {\n messages = value;\n if (options && options.placeholders) {\n nlsPlaceholders = options.placeholders;\n }\n };\n AppConfig.prototype.nls = function (key, defaultString, params) {\n if (!messages[key]) {\n warn(\"No message found for the key '\" + key + \"' in messages with id \" + messages.$id + \", trying to find a translation for the default string '\" + defaultString + \"'.\");\n if (!messages[defaultString]) {\n warn(\"No message found for the default string '\" + defaultString + \"' in the provided messages. Falling back to the default English message.\");\n }\n }\n var translated = messages[key] || messages[defaultString] || defaultString;\n if (params) {\n if (nlsPlaceholders === \"dollarSigns\") {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, dollarMatch) {\n if (dollarMatch == \"$\")\n return \"$\";\n return params[dollarMatch];\n });\n }\n if (nlsPlaceholders === \"curlyBrackets\") {\n translated = translated.replace(/\\{([^\\}]+)\\}/g, function (_, curlyBracketMatch) {\n return params[curlyBracketMatch];\n });\n }\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleId, onLoad) {\n var loadedModule;\n if (Array.isArray(moduleId)) {\n var moduleType = moduleId[0];\n var moduleName = moduleId[1];\n }\n else if (typeof moduleId == \"string\") {\n var moduleName = moduleId;\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module[\"require\"] == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.39.0\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i<scripts.length; i++) {\n var script = scripts[i];\n\n var src = script.src || script.getAttribute(\"src\");\n if (!src)\n continue;\n\n var attributes = script.attributes;\n for (var j=0, l=attributes.length; j < l; j++) {\n var attr = attributes[j];\n if (attr.name.indexOf(\"data-ace-\") === 0) {\n scriptOptions[deHyphenate(attr.name.replace(/^data-ace-/, \"\"))] = attr.value;\n }\n }\n\n var m = src.match(/^(.*)\\/ace([\\-.]\\w+)?\\.js(\\?|$)/);\n if (m)\n scriptUrl = m[1];\n }\n\n if (scriptUrl) {\n scriptOptions.base = scriptOptions.base || scriptUrl;\n scriptOptions.packaged = true;\n }\n\n scriptOptions.basePath = scriptOptions.base;\n scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;\n scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;\n scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;\n delete scriptOptions.base;\n\n for (var key in scriptOptions)\n if (typeof scriptOptions[key] !== \"undefined\")\n config.set(key, scriptOptions[key]);\n}\n\nfunction deHyphenate(str) {\n return str.replace(/-(.)/g, function(m, m1) { return m1.toUpperCase(); });\n}\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Range = /** @class */ (function () {\n function Range(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n this.end = {\n row: endRow,\n column: endColumn\n };\n }\n Range.prototype.isEqual = function (range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n Range.prototype.toString = function () {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n '-13': \"NumpadEnter\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 59: ';', 61: '=', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n};\nvar codeToKeyCode = {\n Command: 224,\n Backspace: 8,\n Tab: 9,\n Return: 13,\n Enter: 13,\n Pause: 19,\n Escape: 27,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n Insert: 45,\n Delete: 46,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n Backquote: 192,\n Minus: 189,\n Equal: 187,\n BracketLeft: 219,\n Backslash: 220,\n BracketRight: 221,\n Semicolon: 186,\n Quote: 222,\n Comma: 188,\n Period: 190,\n Slash: 191,\n Space: 32,\n NumpadAdd: 107,\n NumpadDecimal: 110,\n NumpadSubtract: 109,\n NumpadDivide: 111,\n NumpadMultiply: 106\n};\nfor (var i = 0; i < 10; i++) {\n codeToKeyCode[\"Digit\" + i] = 48 + i;\n codeToKeyCode[\"Numpad\" + i] = 96 + i;\n Keys.PRINTABLE_KEYS[48 + i] = \"\" + i;\n Keys.FUNCTION_KEYS[96 + i] = \"Numpad\" + i;\n}\nfor (var i = 65; i < 91; i++) {\n var chr = String.fromCharCode(i + 32);\n codeToKeyCode[\"Key\" + chr.toUpperCase()] = i;\n Keys.PRINTABLE_KEYS[i] = chr;\n}\nfor (var i = 1; i < 13; i++) {\n codeToKeyCode[\"F\" + i] = 111 + i;\n Keys.FUNCTION_KEYS[111 + i] = \"F\" + i;\n}\nvar modifiers = {\n Shift: 16,\n Control: 17,\n Alt: 18,\n Meta: 224\n};\nfor (var mod in modifiers) {\n codeToKeyCode[mod] = codeToKeyCode[mod + \"Left\"]\n = codeToKeyCode[mod + \"Right\"] = modifiers[mod];\n}\nexports.$codeToKeyCode = codeToKeyCode;\nKeys.PRINTABLE_KEYS[173] = '-';\nfor (var j in Keys.FUNCTION_KEYS) {\n var name = Keys.FUNCTION_KEYS[j].toLowerCase();\n Keys[name] = parseInt(j, 10);\n}\nfor (var j in Keys.PRINTABLE_KEYS) {\n var name = Keys.PRINTABLE_KEYS[j].toLowerCase();\n Keys[name] = parseInt(j, 10);\n}\noop.mixin(Keys, Keys.MODIFIER_KEYS);\noop.mixin(Keys, Keys.PRINTABLE_KEYS);\noop.mixin(Keys, Keys.FUNCTION_KEYS);\nKeys.enter = Keys[\"return\"];\nKeys.escape = Keys.esc;\nKeys.del = Keys[\"delete\"];\n(function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n Keys.KEY_MODS[i] = mods.filter(function (x) {\n return i & Keys.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n})();\nKeys.KEY_MODS[0] = \"\";\nKeys.KEY_MODS[-1] = \"input-\";\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\"; var keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n return true;\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nfunction getModifierHash(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n}\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!keyCode && e.code) {\n keyCode = keys.$codeToKeyCode[e.code] || keyCode;\n }\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = e.location;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n if (e.location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window[\"mozRequestAnimationFrame\"]\n || window[\"webkitRequestAnimationFrame\"]\n || window[\"msRequestAnimationFrame\"]\n || window[\"oRequestAnimationFrame\"]);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput;\nTextInput = function (/**@type{HTMLTextAreaElement} */ parentNode, /**@type{import(\"../editor\").Editor} */ host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", \"false\");\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild); var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (/**@type{number}*/ number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaLabel = function () {\n var ariaLabel = \"\";\n if (host.$textInputAriaLabel) {\n ariaLabel += \"\".concat(host.$textInputAriaLabel, \", \");\n }\n if (host.session) {\n var row = host.session.selection.cursor.row;\n ariaLabel += nls(\"text-input.aria-label\", \"Cursor at row $0\", [row + 1]);\n }\n text.setAttribute(\"aria-label\", ariaLabel);\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"text-input.aria-roledescription\", \"editor\"));\n this.setAriaLabel();\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", \"true\");\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode()[\"host\"];\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n host.on(\"changeSelection\", this.setAriaLabel);\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window[\"clipboardData\"];\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, function (e, hashId, keyCode) {\n if (inComposition)\n return;\n return host.onCommandKey(e, hashId, keyCode);\n }, host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(style.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler[\"selectByLines\"] = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler[\"selectByWords\"] = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/lib/scroll\",[\"require\",\"exports\",\"module\"], function(require, exports, module){exports.preventParentScroll = function preventParentScroll(event) {\n event.stopPropagation();\n var target = event.currentTarget;\n var contentOverflows = target.scrollHeight > target.clientHeight;\n if (!contentOverflows) {\n event.preventDefault();\n }\n};\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/range\",\"ace/lib/scroll\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar Range = require(\"./range\").Range;\nvar preventParentScroll = require(\"./lib/scroll\").preventParentScroll;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function (e) {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n el.addEventListener(\"wheel\", preventParentScroll);\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n var MARGIN = 10;\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var rect = renderer.scroller.getBoundingClientRect();\n if (position.pageX < rect.left)\n position.pageX = rect.left;\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.maxHeight = \"\";\n element.style.display = \"block\";\n var labelHeight = element.clientHeight;\n var labelWidth = element.clientWidth;\n var spaceBelow = window.innerHeight - position.pageY - renderer.lineHeight;\n var isAbove = true;\n if (position.pageY - labelHeight < 0 && position.pageY < spaceBelow) {\n isAbove = false;\n }\n element.style.maxHeight = (isAbove ? position.pageY : spaceBelow) - MARGIN + \"px\";\n element.style.top = isAbove ? \"\" : position.pageY + renderer.lineHeight + \"px\";\n element.style.bottom = isAbove ? window.innerHeight - position.pageY + \"px\" : \"\";\n element.style.left = Math.min(position.pageX, window.innerWidth - labelWidth - MARGIN) + \"px\";\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"wheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"wheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nvar GUTTER_TOOLTIP_LEFT_OFFSET = 5;\nvar GUTTER_TOOLTIP_TOP_OFFSET = 3;\nexports.GUTTER_TOOLTIP_LEFT_OFFSET = GUTTER_TOOLTIP_LEFT_OFFSET;\nexports.GUTTER_TOOLTIP_TOP_OFFSET = GUTTER_TOOLTIP_TOP_OFFSET;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor, true);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n editor.on(\"changeSession\", hideTooltip);\n window.addEventListener(\"keydown\", hideTooltip, true);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = (rect.right - GUTTER_TOOLTIP_LEFT_OFFSET) + \"px\";\n style.top = (rect.bottom - GUTTER_TOOLTIP_TOP_OFFSET) + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip(e) {\n if (e && e.type === \"keydown\" && (e.ctrlKey || e.metaKey))\n return;\n if (e && e.type === \"mouseout\" && (!e.relatedTarget || tooltip.getElement().contains(e.relatedTarget)))\n return;\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n editor.off(\"changeSession\", hideTooltip);\n window.removeEventListener(\"keydown\", hideTooltip, true);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip(e);\n }, 50);\n }, editor);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor, isHover) {\n if (isHover === void 0) { isHover = false; }\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n _this.visibleTooltipRow;\n var el = _this.getElement();\n el.setAttribute(\"role\", \"tooltip\");\n el.style.pointerEvents = \"auto\";\n if (isHover) {\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n }\n return _this;\n }\n GutterTooltip.prototype.onMouseOut = function (e) {\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || this.getElement().contains(e.relatedTarget))\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n this.hideTooltip();\n };\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: {\n singular: nls(\"gutter-tooltip.aria-label.error.singular\", \"error\"),\n plural: nls(\"gutter-tooltip.aria-label.error.plural\", \"errors\")\n },\n security: {\n singular: nls(\"gutter-tooltip.aria-label.security.singular\", \"security finding\"),\n plural: nls(\"gutter-tooltip.aria-label.security.plural\", \"security findings\")\n },\n warning: {\n singular: nls(\"gutter-tooltip.aria-label.warning.singular\", \"warning\"),\n plural: nls(\"gutter-tooltip.aria-label.warning.plural\", \"warnings\")\n },\n info: {\n singular: nls(\"gutter-tooltip.aria-label.info.singular\", \"information message\"),\n plural: nls(\"gutter-tooltip.aria-label.info.plural\", \"information messages\")\n },\n hint: {\n singular: nls(\"gutter-tooltip.aria-label.hint.singular\", \"suggestion\"),\n plural: nls(\"gutter-tooltip.aria-label.hint.plural\", \"suggestions\")\n }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var _a;\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = {\n displayText: Array.from(annotationsInRow.displayText),\n type: Array.from(annotationsInRow.type)\n };\n else\n annotation = { displayText: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], security: [], warning: [], info: [], hint: [] };\n var severityRank = { error: 1, security: 2, warning: 3, info: 4, hint: 5 };\n var mostSevereAnnotationTypeInFold;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (!mostSevereAnnotationTypeInFold ||\n severityRank[annotationType] < severityRank[mostSevereAnnotationTypeInFold]) {\n mostSevereAnnotationTypeInFold = annotationType;\n }\n }\n }\n if ([\"error\", \"security\", \"warning\"].includes(mostSevereAnnotationTypeInFold)) {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.displayText.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationTypeInFold + \"_fold\");\n }\n }\n if (annotation.displayText.length === 0)\n return this.hideTooltip();\n var annotationMessages = { error: [], security: [], warning: [], info: [], hint: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.displayText.length; i++) {\n var lineElement = dom.createElement(\"span\");\n var iconElement = dom.createElement(\"span\");\n (_a = iconElement.classList).add.apply(_a, [\"ace_\".concat(annotation.type[i]), iconClassName]);\n iconElement.setAttribute(\"aria-label\", \"\".concat(GutterTooltip.annotationLabels[annotation.type[i].replace(\"_fold\", \"\")].singular));\n iconElement.setAttribute(\"role\", \"img\");\n iconElement.appendChild(dom.createTextNode(\" \"));\n lineElement.appendChild(iconElement);\n lineElement.appendChild(dom.createTextNode(annotation.displayText[i]));\n lineElement.appendChild(dom.createElement(\"br\"));\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(lineElement);\n }\n var tooltipElement = this.getElement();\n dom.removeChildren(tooltipElement);\n annotationMessages.error.forEach(function (el) { return tooltipElement.appendChild(el); });\n annotationMessages.security.forEach(function (el) { return tooltipElement.appendChild(el); });\n annotationMessages.warning.forEach(function (el) { return tooltipElement.appendChild(el); });\n annotationMessages.info.forEach(function (el) { return tooltipElement.appendChild(el); });\n annotationMessages.hint.forEach(function (el) { return tooltipElement.appendChild(el); });\n tooltipElement.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.visibleTooltipRow = row;\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n if (!this.isOpen) {\n return;\n }\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.visibleTooltipRow = undefined;\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = [\"error\", \"security\", \"warning\", \"info\", \"hint\"];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) { this.speed; this.wheelX; this.wheelY;\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && canExecuteCommand(\"selectall\") && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && canExecuteCommand(\"copy\") && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && canExecuteCommand(\"cut\") && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && canExecuteCommand(\"paste\") && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && canExecuteCommand(\"undo\") && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n canExecuteCommand(\"find\") && [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n canExecuteCommand(\"openCommandPalette\") && [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPalette\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var canExecuteCommand = function (/** @type {string} */ cmd) {\n return editor.commands.canExecute(cmd, editor);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPalette\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!editor.getOption(\"enableMobileMenu\")) {\n if (contextMenu) {\n hideContextMenu();\n }\n return;\n }\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) { this.$dragDelay; this.$dragEnabled; this.$mouseMoved; this.mouseEvent; this.$focusTimeout;\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, //@ts-expect-error TODO: seems mistyping - should be boolean\n editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(\n this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute[\"passEvent\"] != true && toExecute.command[\"passEvent\"] != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, 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, ON, ON, ON, ON, ON,\n ON, 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, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = /** @class */ (function () {\n function Selection(session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n }\n Selection.prototype.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n Selection.prototype.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n Selection.prototype.getCursor = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n Selection.prototype.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n Selection.prototype.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n Selection.prototype.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n Selection.prototype.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n Selection.prototype.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n Selection.prototype.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n Selection.prototype.setRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n Selection.prototype.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n Selection.prototype.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n Selection.prototype.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n Selection.prototype.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n Selection.prototype.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n Selection.prototype.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n Selection.prototype.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n Selection.prototype.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n Selection.prototype.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n Selection.prototype.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n Selection.prototype.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n Selection.prototype.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n Selection.prototype.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n Selection.prototype.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n Selection.prototype.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n Selection.prototype.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n Selection.prototype.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n Selection.prototype.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n Selection.prototype.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n Selection.prototype.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n Selection.prototype.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n Selection.prototype.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n Selection.prototype.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n Selection.prototype.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n Selection.prototype.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n Selection.prototype.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n Selection.prototype.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n Selection.prototype.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n Selection.prototype.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n Selection.prototype.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n Selection.prototype.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n Selection.prototype.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n Selection.prototype.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n Selection.prototype.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n Selection.prototype.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n Selection.prototype.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n Selection.prototype.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n Selection.prototype.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n Selection.prototype.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n Selection.prototype.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n Selection.prototype.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n Selection.prototype.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n Selection.prototype.toJSON = function () {\n if (this.rangeCount) { var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else { var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n Selection.prototype.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n Selection.prototype.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n return Selection;\n}());\nSelection.prototype.setSelectionAnchor = Selection.prototype.setAnchor;\nSelection.prototype.getSelectionAnchor = Selection.prototype.getAnchor;\nSelection.prototype.setSelectionRange = Selection.prototype.setRange;\noop.implement(Selection.prototype, EventEmitter);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/report_error\"], function(require, exports, module){\"use strict\";\nvar reportError = require(\"./lib/report_error\").reportError;\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.splitRegex;\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = /**@type{string}*/ (startState) || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/deep_copy\"], function(require, exports, module){\"use strict\";\nvar deepCopy = require(\"../lib/deep_copy\").deepCopy;\nvar TextHighlightRules;\nTextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state[\"processed\"] = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour;\nBehaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour;\nCstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n var token = session.getTokenAt(cursor.row, cursor.column);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (token && /(?:string)\\.quasi|\\.xml/.test(token.type)) {\n var excludeTokens = [\n /tag\\-(?:open|name)/, /attribute\\-name/\n ];\n if (excludeTokens.some(function (el) { return el.test(token.type); }) || /(string)\\.quasi/.test(token.type)\n && token.value[cursor.column - token.start - 1] !== '$')\n return;\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n if (cursor.column === 0) {\n return;\n }\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var tokens = session.getTokens(cursor.row);\n var index = 0;\n for (var i = 0; i < tokens.length; i++) {\n index += tokens[i].value.length;\n var currentToken = tokens[i];\n if (index >= cursor.column) {\n if (index === cursor.column) {\n if (!/\\.doc/.test(currentToken.type)) {\n return;\n }\n if (/\\*\\//.test(currentToken.value)) {\n var nextToken = tokens[i + 1];\n if (!nextToken || !/\\.doc/.test(nextToken.type)) {\n return;\n }\n }\n }\n var cursorPosInToken = cursor.column - (index - currentToken.value.length);\n var closeDocPos = currentToken.value.indexOf(\"*/\");\n var openDocPos = currentToken.value.indexOf(\"/**\", closeDocPos > -1 ? closeDocPos + 2 : 0);\n if (openDocPos !== -1 && cursorPosInToken > openDocPos && cursorPosInToken < openDocPos + 3) {\n return;\n }\n if (closeDocPos !== -1 && openDocPos !== -1 && cursorPosInToken >= closeDocPos\n && cursorPosInToken <= openDocPos || !/\\.doc/.test(currentToken.type)) {\n return;\n }\n break;\n }\n }\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 2 + indent.length, 1, 2 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour[\"$matchTokenType\"] = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour[\"recordAutoInsert\"] = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this[\"isAutoInsertedClosing\"](cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour[\"recordMaybeInsert\"] = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this[\"isMaybeInsertedClosing\"](cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour[\"isAutoInsertedClosing\"] = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour[\"isMaybeInsertedClosing\"] = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour[\"popAutoInsertedClosing\"] = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour[\"clearMaybeInsertedClosing\"] = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode;\nMode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n var _loop_1 = function (i) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] =\n function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this_1));\n };\n var this_1 = this;\n for (var i = 0; i < delegations.length; i++) {\n _loop_1(i);\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer[\"rules\"];\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this[\"$useWrapMode\"] || !this[\"$wrapData\"][row]) {\n return 1 + h;\n }\n else {\n return this[\"$wrapData\"][row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = \"5\";\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = \"3\";\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof row != \"number\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, session) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n this.docLen = 0;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow;\n var end = config.lastRow;\n var renderedMarkerRanges = {};\n var _search = session.$editor.$search;\n var mtSearch = _search.$isMultilineSearch(session.$editor.getLastSearchOptions());\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null || session.getValue().length != this.docLen) {\n if (mtSearch) {\n ranges = [];\n var match = _search.$multiLineForward(session, this.regExp, i, end);\n if (match) {\n var end_row = match.endRow <= end ? match.endRow - 1 : end;\n if (end_row > i)\n i = end_row;\n ranges.push(new Range(match.startRow, match.startCol, match.endRow, match.endCol));\n }\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n }\n else {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n }\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n if (ranges.length === 0)\n continue;\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n this.docLen = session.getValue().length;\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$keepRedoStack;\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n return {\n $redoStack: this.$redoStack,\n $undoStack: this.$undoStack\n };\n };\n UndoManager.prototype.fromJSON = function (json) {\n this.reset();\n this.$undoStack = json.$undoStack;\n this.$redoStack = json.$redoStack;\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){// @ts-nocheck\n\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + token.value.length;\n iterator = new TokenIterator(this, row, column);\n var initState = this.getState(iterator.$row);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (initState.toString() !== state.toString())\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n if (prevToken.type.indexOf('tag-close') !== -1 && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '</') {\n depth--;\n if (depth < 0) { //found closing tag\n iterator.stepBackward();\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2); //Range for </\n token = iterator.stepForward();\n var closeTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n if (token.type.indexOf('tag-close') === -1) {\n token = iterator.stepForward();\n }\n if (token && token.value === '>') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for </\n iterator.stepForward();\n var closeTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n if (token.type.indexOf('tag-close') === -1) {\n token = iterator.stepForward();\n }\n if (!token || token.value !== \">\")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '</') {\n depth--;\n }\n }\n }\n else if (token.value === '/>') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/line_widgets\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/undomanager\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) { this.doc;\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$editor = null;\n this.prevOp = {};\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(/**@type{string}*/ (text));\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.selection.on(\"changeCursor\", this.$onSelectionChange);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n this.$initOperationListeners();\n }\n EditSession.prototype.$initOperationListeners = function () {\n var _this = this;\n this.curOp = null;\n this.on(\"change\", function () {\n if (!_this.curOp) {\n _this.startOperation();\n _this.curOp.selectionBefore = _this.$lastSel;\n }\n _this.curOp.docChanged = true;\n }, true);\n this.on(\"changeSelection\", function () {\n if (!_this.curOp) {\n _this.startOperation();\n _this.curOp.selectionBefore = _this.$lastSel;\n }\n _this.curOp.selectionChanged = true;\n }, true);\n this.$operationResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n };\n EditSession.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command) {\n return;\n }\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n commandEvent = {};\n }\n this.$operationResetTimer.schedule();\n this.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n this._signal(\"startOperation\", commandEvent);\n };\n EditSession.prototype.endOperation = function (e) {\n if (this.curOp) {\n if (e && e.returnValue === false) {\n this.curOp = null;\n this._signal(\"endOperation\", e);\n return;\n }\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\") {\n return;\n }\n var currentSelection = this.selection.toJSON();\n this.curOp.selectionAfter = currentSelection;\n this.$lastSel = this.selection.toJSON();\n this.getUndoManager().addSelection(currentSelection);\n this._signal(\"beforeEndOperation\");\n this.prevOp = this.curOp;\n this.curOp = null;\n this._signal(\"endOperation\", e);\n }\n };\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n Object.defineProperty(EditSession.prototype, \"widgetManager\", {\n get: function () {\n var widgetManager = new LineWidgets(this);\n this.widgetManager = widgetManager;\n if (this.$editor)\n widgetManager.attach(this.$editor);\n return widgetManager;\n },\n set: function (value) {\n Object.defineProperty(this, \"widgetManager\", {\n writable: true,\n enumerable: true,\n configurable: true,\n value: value,\n });\n },\n enumerable: false,\n configurable: true\n });\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.onSelectionChange = function () {\n this._signal(\"changeSelection\");\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.fromJSON = function (session) {\n if (typeof session == \"string\")\n session = JSON.parse(session);\n var undoManager = new UndoManager();\n undoManager.$undoStack = session.history.undo;\n undoManager.$redoStack = session.history.redo;\n undoManager.mark = session.history.mark;\n undoManager.$rev = session.history.rev;\n var editSession = new EditSession(session.value);\n session.folds.forEach(function (fold) {\n editSession.addFold(\"...\", Range.fromPoints(fold.start, fold.end));\n });\n editSession.setAnnotations(session.annotations);\n editSession.setBreakpoints(session.breakpoints);\n editSession.setMode(session.mode);\n editSession.setScrollLeft(session.scrollLeft);\n editSession.setScrollTop(session.scrollTop);\n editSession.setUndoManager(undoManager);\n editSession.selection.fromJSON(session.selection);\n return editSession;\n };\n EditSession.prototype.toJSON = function () {\n return {\n annotations: this.$annotations,\n breakpoints: this.$breakpoints,\n folds: this.getAllFolds().map(function (fold) {\n return fold.range;\n }),\n history: this.getUndoManager(),\n mode: this.$mode.$id,\n scrollLeft: this.$scrollLeft,\n scrollTop: this.$scrollTop,\n selection: this.selection.toJSON(),\n value: this.doc.getValue()\n };\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = /**@type{string}*/ (mode) || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.destroyed) {\n return;\n }\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(/**@type{Point}*/ (docRow).row, /**@type{Point}*/ (docRow).column);\n else\n pos = this.$clipPositionToDocument(/**@type{number}*/ (docRow), docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.getPrecedingCharacter = function () {\n var pos = this.selection.getCursor();\n if (pos.column === 0) {\n return pos.row === 0 ? \"\" : this.doc.getNewLineCharacter();\n }\n var currentLine = this.getLine(pos.row);\n return currentLine[pos.column - 1];\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.endOperation();\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n if (this.selection) {\n this.selection.off(\"changeCursor\", this.$onSelectionChange);\n this.selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && /**@type{Range}*/ (options.start).start\n && options.skipCurrent != false && firstRange.isEqual(/**@type{Range}*/ (options.start))) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var matches, i = 0; i < lines.length; i++) {\n if (this.$isMultilineSearch(options)) {\n var lng = lines.length - 1;\n matches = this.$multiLineForward(session, re, i, lng);\n if (matches) {\n var end_row = matches.endRow <= lng ? matches.endRow - 1 : lng;\n if (end_row > i)\n i = end_row;\n ranges.push(new Range(matches.startRow, matches.startCol, matches.endRow, matches.endCol));\n }\n }\n else {\n matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.parseReplaceString = function (replaceString) {\n var CharCode = {\n DollarSign: 36,\n Ampersand: 38,\n Digit0: 48,\n Digit1: 49,\n Digit9: 57,\n Backslash: 92,\n n: 110,\n t: 116\n };\n var replacement = '';\n for (var i = 0, len = replaceString.length; i < len; i++) {\n var chCode = replaceString.charCodeAt(i);\n if (chCode === CharCode.Backslash) {\n i++;\n if (i >= len) {\n replacement += \"\\\\\";\n break;\n }\n var nextChCode = replaceString.charCodeAt(i);\n switch (nextChCode) {\n case CharCode.Backslash:\n replacement += \"\\\\\";\n break;\n case CharCode.n:\n replacement += \"\\n\";\n break;\n case CharCode.t:\n replacement += \"\\t\";\n break;\n }\n continue;\n }\n if (chCode === CharCode.DollarSign) {\n i++;\n if (i >= len) {\n replacement += \"$\";\n break;\n }\n var nextChCode_1 = replaceString.charCodeAt(i);\n if (nextChCode_1 === CharCode.DollarSign) {\n replacement += \"$$\";\n continue;\n }\n if (nextChCode_1 === CharCode.Digit0 || nextChCode_1 === CharCode.Ampersand) {\n replacement += \"$&\";\n continue;\n }\n if (CharCode.Digit1 <= nextChCode_1 && nextChCode_1 <= CharCode.Digit9) {\n replacement += \"$\" + replaceString[i];\n continue;\n }\n }\n replacement += replaceString[i];\n }\n return replacement || replaceString;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var mtSearch = this.$isMultilineSearch(options);\n if (mtSearch)\n input = input.replace(/\\r\\n|\\r|\\n/g, \"\\n\");\n var match = re.exec(input);\n if (!match || (!mtSearch && match[0].length != input.length))\n return null;\n replacement = options.regExp\n ? this.parseReplaceString(replacement)\n : replacement.replace(/\\$/g, \"$$$$\");\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n try {\n new RegExp(needle, \"u\");\n options.$supportsUnicodeFlag = true;\n modifier += \"u\";\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$isMultilineSearch = function (options) {\n return options.re && /\\\\r\\\\n|\\\\r|\\\\n/.test(options.re.source) && options.regExp && !options.$isMultiLine;\n };\n Search.prototype.$multiLineForward = function (session, re, start, last) {\n var line, chunk = chunkEnd(session, start);\n for (var row = start; row <= last;) {\n for (var i = 0; i < chunk; i++) {\n if (row > last)\n break;\n var next = session.getLine(row++);\n line = line == null ? next : line + \"\\n\" + next;\n }\n var match = re.exec(line);\n re.lastIndex = 0;\n if (match) {\n var beforeMatch = line.slice(0, match.index).split(\"\\n\");\n var matchedText = match[0].split(\"\\n\");\n var startRow = start + beforeMatch.length - 1;\n var startCol = beforeMatch[beforeMatch.length - 1].length;\n var endRow = startRow + matchedText.length - 1;\n var endCol = matchedText.length == 1\n ? startCol + matchedText[0].length\n : matchedText[matchedText.length - 1].length;\n return {\n startRow: startRow,\n startCol: startCol,\n endRow: endRow,\n endCol: endCol\n };\n }\n }\n return null;\n };\n Search.prototype.$multiLineBackward = function (session, re, endIndex, start, first) {\n var line, chunk = chunkEnd(session, start), endMargin = session.getLine(start).length - endIndex;\n for (var row = start; row >= first;) {\n for (var i = 0; i < chunk && row >= first; i++) {\n var next = session.getLine(row--);\n line = line == null ? next : next + \"\\n\" + line;\n }\n var match = multiLineBackwardMatch(line, re, endMargin);\n if (match) {\n var beforeMatch = line.slice(0, match.index).split(\"\\n\");\n var matchedText = match[0].split(\"\\n\");\n var startRow = row + beforeMatch.length;\n var startCol = beforeMatch[beforeMatch.length - 1].length;\n var endRow = startRow + matchedText.length - 1;\n var endCol = matchedText.length == 1\n ? startCol + matchedText[0].length\n : matchedText[matchedText.length - 1].length;\n return {\n startRow: startRow,\n startCol: startCol,\n endRow: endRow,\n endCol: endCol\n };\n }\n }\n return null;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var mtSearch = this.$isMultilineSearch(options);\n var mtForward = this.$multiLineForward;\n var mtBackward = this.$multiLineBackward;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var supportsUnicodeFlag = re.unicode;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n if (mtSearch) {\n var pos = mtBackward(session, re, endIndex, row, firstRow);\n if (!pos)\n return false;\n if (callback(pos.startRow, pos.startCol, pos.endRow, pos.endCol))\n return true;\n }\n else {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n re.lastIndex = startIndex;\n if (mtSearch) {\n var pos = mtForward(session, re, row, lastRow);\n if (pos) {\n var end_row = pos.endRow <= lastRow ? pos.endRow - 1 : lastRow;\n if (end_row > row)\n row = end_row;\n }\n if (!pos)\n return false;\n if (callback(pos.startRow, pos.startCol, pos.endRow, pos.endCol))\n return true;\n }\n else {\n var line = session.getLine(row);\n var last;\n var m;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += lang.skipEmptyMatch(line, last, supportsUnicodeFlag);\n if (last >= line.length)\n return false;\n }\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nfunction multiLineBackwardMatch(line, re, endMargin) {\n var match = null;\n var from = 0;\n while (from <= line.length) {\n re.lastIndex = from;\n var newMatch = re.exec(line);\n if (!newMatch)\n break;\n var end = newMatch.index + newMatch[0].length;\n if (end > line.length - endMargin)\n break;\n if (!match || end > match.index + match[0].length)\n match = newMatch;\n from = newMatch.index + 1;\n }\n return match;\n}\nfunction chunkEnd(session, start) {\n var base = 5000, startPosition = { row: start, column: 0 }, startIndex = session.doc.positionToIndex(startPosition), targetIndex = startIndex + base, targetPosition = session.doc.indexToPosition(targetIndex), targetLine = targetPosition.row;\n return targetLine + 1;\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})(); var keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || /**@type{string}*/ (key) }); (key).split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!this.canExecute(command, editor)) {\n return false;\n }\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.canExecute = function (command, editor) {\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n return true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n exec: function (editor) {\n console.warn(\"This is an obsolete command. Please use `openCommandPalette` instead.\");\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"openCommandPalette\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(\n function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(\n function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) { this.session;\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n this.session.startOperation(commandEvent);\n };\n Editor.prototype.endOperation = function (e) {\n this.session.endOperation(e);\n };\n Editor.prototype.onStartOperation = function (commandEvent) {\n this.curOp = this.session.curOp;\n this.curOp.scrollTop = this.renderer.scrollTop;\n this.prevOp = this.session.prevOp;\n if (!commandEvent) {\n this.previousCommand = null;\n }\n };\n Editor.prototype.onEndOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false) {\n this.curOp = null;\n return;\n }\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n this.$lastSel = this.session.selection.toJSON();\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.session.off(\"startOperation\", this.$onStartOperation);\n this.session.off(\"endOperation\", this.$onEndOperation);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.$onStartOperation = this.onStartOperation.bind(this);\n this.session.on(\"startOperation\", this.$onStartOperation);\n this.$onEndOperation = this.onEndOperation.bind(this);\n this.session.on(\"endOperation\", this.$onEndOperation);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n if (oldSession)\n oldSession.$editor = null;\n session && session._signal(\"changeEditor\", { editor: this });\n if (session)\n session.$editor = this;\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges) {\n ranges = [\n tagNamesRanges.openTagName.isEmpty() ? tagNamesRanges.openTag : tagNamesRanges.openTagName,\n tagNamesRanges.closeTagName.isEmpty() ? tagNamesRanges.closeTag : tagNamesRanges.closeTagName\n ];\n }\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var ranges = this.selection.isEmpty()\n ? [new Range(0, 0, session.doc.getLength() - 1, 0)]\n : this.selection.getAllRanges();\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var tab = session.getTabString();\n for (var i = 0; i < ranges.length; i++) {\n var startRow = ranges[i].start.row;\n var endRow = ranges[i].end.row;\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n var line = session.getLine(row);\n var currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n var range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range));\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '</') {\n depth[token.value]--;\n }\n if (depth[token.value] === -1) {\n matchType = 'tag';\n found = true;\n }\n }\n if (!found) {\n prevToken = token;\n tokenCount++;\n token = iterator.stepForward();\n i = 0;\n }\n } while (token && !found);\n if (!matchType)\n return;\n var range, pos;\n if (matchType === 'bracket') {\n range = this.session.getBracketRange(cursor);\n if (!range) {\n range = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + i - 1, iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + i - 1);\n pos = range.start;\n if (expand || pos.row === cursor.row && Math.abs(pos.column - cursor.column)\n < 2)\n range = this.session.getBracketRange(pos);\n }\n }\n else if (matchType === 'tag') {\n if (!token || token.type.indexOf('tag-name') === -1)\n return;\n range = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() - 2, iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() - 2);\n if (range.compare(cursor.row, cursor.column) === 0) {\n var tagsRanges = this.session.getMatchingTags(cursor);\n if (tagsRanges) {\n if (tagsRanges.openTag.contains(cursor.row, cursor.column)) {\n range = tagsRanges.closeTag;\n pos = range.start;\n }\n else {\n range = tagsRanges.openTag;\n if (tagsRanges.closeTag.start.row === cursor.row && tagsRanges.closeTag.start.column\n === cursor.column)\n pos = range.end;\n else\n pos = range.start;\n }\n }\n }\n pos = pos || range.start;\n }\n pos = range && range.cursor || pos;\n if (pos) {\n if (select) {\n if (range && expand) {\n this.selection.setRange(range);\n }\n else if (range && range.isEqual(this.getSelectionRange())) {\n this.clearSelection();\n }\n else {\n this.selection.selectTo(pos.row, pos.column);\n }\n }\n else {\n this.selection.moveTo(pos.row, pos.column);\n }\n }\n };\n Editor.prototype.gotoLine = function (lineNumber, column, animate) {\n this.selection.clearSelection();\n this.session.unfold({ row: lineNumber - 1, column: column || 0 });\n this.exitMultiSelectMode && this.exitMultiSelectMode();\n this.moveCursorTo(lineNumber - 1, column || 0);\n if (!this.isRowFullyVisible(lineNumber - 1))\n this.scrollToLine(lineNumber - 1, true, animate);\n };\n Editor.prototype.navigateTo = function (row, column) {\n this.selection.moveTo(row, column);\n };\n Editor.prototype.navigateUp = function (times) {\n if (this.selection.isMultiLine() && !this.selection.isBackwards()) {\n var selectionStart = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionStart);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(-times || -1, 0);\n };\n Editor.prototype.navigateDown = function (times) {\n if (this.selection.isMultiLine() && this.selection.isBackwards()) {\n var selectionEnd = this.selection.anchor.getPosition();\n return this.moveCursorToPosition(selectionEnd);\n }\n this.selection.clearSelection();\n this.selection.moveCursorBy(times || 1, 0);\n };\n Editor.prototype.navigateLeft = function (times) {\n if (!this.selection.isEmpty()) {\n var selectionStart = this.getSelectionRange().start;\n this.moveCursorToPosition(selectionStart);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorLeft();\n }\n }\n this.clearSelection();\n };\n Editor.prototype.navigateRight = function (times) {\n if (!this.selection.isEmpty()) {\n var selectionEnd = this.getSelectionRange().end;\n this.moveCursorToPosition(selectionEnd);\n }\n else {\n times = times || 1;\n while (times--) {\n this.selection.moveCursorRight();\n }\n }\n this.clearSelection();\n };\n Editor.prototype.navigateLineStart = function () {\n this.selection.moveCursorLineStart();\n this.clearSelection();\n };\n Editor.prototype.navigateLineEnd = function () {\n this.selection.moveCursorLineEnd();\n this.clearSelection();\n };\n Editor.prototype.navigateFileEnd = function () {\n this.selection.moveCursorFileEnd();\n this.clearSelection();\n };\n Editor.prototype.navigateFileStart = function () {\n this.selection.moveCursorFileStart();\n this.clearSelection();\n };\n Editor.prototype.navigateWordRight = function () {\n this.selection.moveCursorWordRight();\n this.clearSelection();\n };\n Editor.prototype.navigateWordLeft = function () {\n this.selection.moveCursorWordLeft();\n this.clearSelection();\n };\n Editor.prototype.replace = function (replacement, options) {\n if (options)\n this.$search.set(options);\n var range = this.$search.find(this.session);\n var replaced = 0;\n if (!range)\n return replaced;\n if (this.$tryReplace(range, replacement)) {\n replaced = 1;\n }\n this.selection.setSelectionRange(range);\n this.renderer.scrollSelectionIntoView(range.start, range.end);\n return replaced;\n };\n Editor.prototype.replaceAll = function (replacement, options) {\n if (options) {\n this.$search.set(options);\n }\n var ranges = this.$search.findAll(this.session);\n var replaced = 0;\n if (!ranges.length)\n return replaced;\n var selection = this.getSelectionRange();\n this.selection.moveTo(0, 0);\n for (var i = ranges.length - 1; i >= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor.scroller.aria-roledescription\", \"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"editor.scroller.aria-label\", \"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor.gutter.aria-roledescription\", \"editor gutter\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"editor.gutter.aria-label\", \"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n this.textInput.setAriaOptions({\n setLabel: true\n });\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n textInputAriaLabel: {\n set: function (val) { this.$textInputAriaLabel = val; },\n initialValue: \"\"\n },\n enableMobileMenu: {\n set: function (val) { this.$enableMobileMenu = val; },\n initialValue: true\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (/**@type{EditSession}*/ session, /**@type{number}*/ row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, /**@type{number}*/ lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, /**@type{Editor}*/ editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (/**@type{Editor}*/ editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (/**@type{Editor}*/ editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [], displayText: [] };\n var annoText = annotation.text;\n var displayAnnoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n displayAnnoText = displayAnnoText ? displayAnnoText : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n rowInfo.displayText.push(displayAnnoText);\n }\n var className = annotation.className;\n if (className) {\n rowInfo.className = className;\n }\n else if (annoType === \"error\") {\n rowInfo.className = \" ace_error\";\n }\n else if (annoType === \"security\" && !/\\bace_error\\b/.test(rowInfo.className)) {\n rowInfo.className = \" ace_security\";\n }\n else if (annoType === \"warning\" && !/\\bace_(error|security)\\b/.test(rowInfo.className)) {\n rowInfo.className = \" ace_warning\";\n }\n else if (annoType === \"info\" && !rowInfo.className) {\n rowInfo.className = \" ace_info\";\n }\n else if (annoType === \"hint\" && !rowInfo.className) {\n rowInfo.className = \" ace_hint\";\n }\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth; (this.element.parentNode).style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = \"\";\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_security\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_security_fold\";\n }\n else if (this.$annotations[i].className === \" ace_warning\" &&\n foldAnnotationClass !== \" ace_security_fold\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"gutter.code-folding.range.aria-label\", \"Toggle code folding, rows $0 through $1\", [\n foldRange.start.row + 1,\n foldRange.end.row + 1\n ]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"gutter.code-folding.closed.aria-label\", \"Toggle code folding, rows $0 through $1\", [\n fold.start.row + 1,\n fold.end.row + 1\n ]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"gutter.code-folding.open.aria-label\", \"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"gutter.code-folding.closed.title\", \"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"gutter.code-folding.open.title\", \"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n var ariaLabel;\n switch (foldAnnotationClass) {\n case \" ace_error_fold\":\n ariaLabel = nls(\"gutter.annotation.aria-label.error\", \"Error, read annotations row $0\", [rowText]);\n break;\n case \" ace_security_fold\":\n ariaLabel = nls(\"gutter.annotation.aria-label.security\", \"Security finding, read annotations row $0\", [rowText]);\n break;\n case \" ace_warning_fold\":\n ariaLabel = nls(\"gutter.annotation.aria-label.warning\", \"Warning, read annotations row $0\", [rowText]);\n break;\n }\n annotationNode.setAttribute(\"aria-label\", ariaLabel);\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n var ariaLabel;\n switch (this.$annotations[row].className) {\n case \" ace_error\":\n ariaLabel = nls(\"gutter.annotation.aria-label.error\", \"Error, read annotations row $0\", [rowText]);\n break;\n case \" ace_security\":\n ariaLabel = nls(\"gutter.annotation.aria-label.security\", \"Security finding, read annotations row $0\", [rowText]);\n break;\n case \" ace_warning\":\n ariaLabel = nls(\"gutter.annotation.aria-label.warning\", \"Warning, read annotations row $0\", [rowText]);\n break;\n case \" ace_info\":\n ariaLabel = nls(\"gutter.annotation.aria-label.info\", \"Info, read annotations row $0\", [rowText]);\n break;\n case \" ace_hint\":\n ariaLabel = nls(\"gutter.annotation.aria-label.hint\", \"Suggestion, read annotations row $0\", [rowText]);\n break;\n }\n annotationNode.setAttribute(\"aria-label\", ariaLabel);\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(/**@type{Element}*/ (this.element.firstChild));\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:\" + padding + \"px;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:\" + padding + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text_util\",[\"require\",\"exports\",\"module\"], function(require, exports, module){// Tokens for which Ace just uses a simple TextNode and does not add any special className.\nvar textTokens = new Set([\"text\", \"rparen\", \"lparen\"]);\nexports.isTextToken = function (tokenType) {\n return textTokens.has(tokenType);\n};\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar isTextToken = require(\"./text_util\").isTextToken;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", \n function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize; var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break; var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069\\u2060\\u2061\\u2062\\u2063\\u2064\\u206A\\u206B\\u206B\\u206C\\u206D\\u206E\\u206F]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.dom.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!isTextToken(token.type)) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"inline-fold.closed.title\", \"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row + 1;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var activeIndentGuides = this.element.querySelectorAll(\".ace_indent-guide-active\");\n activeIndentGuides.forEach(function (el) {\n el.classList.remove(\"ace_indent-guide-active\");\n });\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var element = cell.element;\n if (cell.element.classList && cell.element.classList.contains(\"ace_line_group\")) {\n if (cell.element.childNodes.length > 0) {\n element = cell.element.childNodes[0];\n }\n else {\n return;\n }\n }\n var childNodes = element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row < this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"<hide>\" : \"<click to see more...>\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = /**@this{Cursor}*/ function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (Number(window.getComputedStyle(element)[\"zoom\"]) || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1<<j) ? \"border-\" + x + \"-radius: 3px;\" : \"\"\n }).filter(Boolean).join(\" \") + \"}\")\n}\nstyles.join(\"\\\\n\")\n*/\nmodule.exports = \"\\n.ace_br1 {border-top-left-radius : 3px;}\\n.ace_br2 {border-top-right-radius : 3px;}\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\n.ace_br4 {border-bottom-right-radius: 3px;}\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\n.ace_br8 {border-bottom-left-radius : 3px;}\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\n\\n\\n.ace_editor {\\n position: relative;\\n overflow: hidden;\\n padding: 0;\\n font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace;\\n direction: ltr;\\n text-align: left;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n forced-color-adjust: none;\\n}\\n\\n.ace_scroller {\\n position: absolute;\\n overflow: hidden;\\n top: 0;\\n bottom: 0;\\n background-color: inherit;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n cursor: text;\\n}\\n\\n.ace_content {\\n position: absolute;\\n box-sizing: border-box;\\n min-width: 100%;\\n contain: style size layout;\\n font-variant-ligatures: no-common-ligatures;\\n}\\n\\n.ace_keyboard-focus:focus {\\n box-shadow: inset 0 0 0 2px #5E9ED6;\\n outline: none;\\n}\\n\\n.ace_dragging .ace_scroller:before{\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n content: '';\\n background: rgba(250, 250, 250, 0.01);\\n z-index: 1000;\\n}\\n.ace_dragging.ace_dark .ace_scroller:before{\\n background: rgba(0, 0, 0, 0.01);\\n}\\n\\n.ace_gutter {\\n position: absolute;\\n overflow : hidden;\\n width: auto;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n cursor: default;\\n z-index: 4;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n contain: style size layout;\\n}\\n\\n.ace_gutter-active-line {\\n position: absolute;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_scroller.ace_scroll-left:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\n pointer-events: none;\\n}\\n\\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n padding-left: 19px;\\n padding-right: 6px;\\n background-repeat: no-repeat;\\n}\\n\\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\\n margin-left: -14px;\\n float: left;\\n}\\n\\n.ace_gutter-cell .ace_gutter_annotation {\\n margin-left: -19px;\\n float: left;\\n}\\n\\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: 2px center;\\n}\\n\\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: 2px center;\\n}\\n\\n.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat;\\n background-position: 2px center;\\n}\\n\\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_icon_svg.ace_error {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+\\\");\\n background-color: crimson;\\n}\\n.ace_icon_svg.ace_security {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+\\\");\\n background-color: crimson;\\n}\\n.ace_icon_svg.ace_warning {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==\\\");\\n background-color: darkorange;\\n}\\n.ace_icon_svg.ace_info {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==\\\");\\n background-color: royalblue;\\n}\\n.ace_icon_svg.ace_hint {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg==\\\");\\n background-color: silver;\\n}\\n\\n.ace_icon_svg.ace_error_fold {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=\\\");\\n background-color: crimson;\\n}\\n.ace_icon_svg.ace_security_fold {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=\\\");\\n background-color: crimson;\\n}\\n.ace_icon_svg.ace_warning_fold {\\n -webkit-mask-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=\\\");\\n background-color: darkorange;\\n}\\n\\n.ace_scrollbar {\\n contain: strict;\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n z-index: 6;\\n}\\n\\n.ace_scrollbar-inner {\\n position: absolute;\\n cursor: text;\\n left: 0;\\n top: 0;\\n}\\n\\n.ace_scrollbar-v{\\n overflow-x: hidden;\\n overflow-y: scroll;\\n top: 0;\\n}\\n\\n.ace_scrollbar-h {\\n overflow-x: scroll;\\n overflow-y: hidden;\\n left: 0;\\n}\\n\\n.ace_print-margin {\\n position: absolute;\\n height: 100%;\\n}\\n\\n.ace_text-input {\\n position: absolute;\\n z-index: 0;\\n width: 0.5em;\\n height: 1em;\\n opacity: 0;\\n background: transparent;\\n -moz-appearance: none;\\n appearance: none;\\n border: none;\\n resize: none;\\n outline: none;\\n overflow: hidden;\\n font: inherit;\\n padding: 0 1px;\\n margin: 0 -1px;\\n contain: strict;\\n -ms-user-select: text;\\n -moz-user-select: text;\\n -webkit-user-select: text;\\n user-select: text;\\n /*with `pre-line` chrome inserts   instead of space*/\\n white-space: pre!important;\\n}\\n.ace_text-input.ace_composition {\\n background: transparent;\\n color: inherit;\\n z-index: 1000;\\n opacity: 1;\\n}\\n.ace_composition_placeholder { color: transparent }\\n.ace_composition_marker { \\n border-bottom: 1px solid;\\n position: absolute;\\n border-radius: 0;\\n margin-top: 1px;\\n}\\n\\n[ace_nocontext=true] {\\n transform: none!important;\\n filter: none!important;\\n clip-path: none!important;\\n mask : none!important;\\n contain: none!important;\\n perspective: none!important;\\n mix-blend-mode: initial!important;\\n z-index: auto;\\n}\\n\\n.ace_layer {\\n z-index: 1;\\n position: absolute;\\n overflow: hidden;\\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\\n word-wrap: normal;\\n white-space: pre;\\n height: 100%;\\n width: 100%;\\n box-sizing: border-box;\\n /* setting pointer-events: auto; on node under the mouse, which changes\\n during scroll, will break mouse wheel scrolling in Safari */\\n pointer-events: none;\\n}\\n\\n.ace_gutter-layer {\\n position: relative;\\n width: auto;\\n text-align: right;\\n pointer-events: auto;\\n height: 1000000px;\\n contain: style size layout;\\n}\\n\\n.ace_text-layer {\\n font: inherit !important;\\n position: absolute;\\n height: 1000000px;\\n width: 1000000px;\\n contain: style size layout;\\n}\\n\\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre-wrap;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n overflow: auto;\\n max-width: min(60em, 66vw);\\n overscroll-behavior: contain;\\n}\\n.ace_tooltip pre {\\n white-space: pre-wrap;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n position: relative;\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n z-index: 1;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n}\\n\\n.ace_ghost_text_container > div {\\n white-space: pre;\\n}\\n\\n.ghost_text_line_wrapped::after {\\n content: \\\"\\u21A9\\\";\\n position: absolute;\\n}\\n\\n.ace_lineWidgetContainer.ace_ghost_text {\\n margin: 0px 4px\\n}\\n\\n.ace_screenreader-only {\\n position:absolute;\\n left:-10000px;\\n top:auto;\\n width:1px;\\n height:1px;\\n overflow:hidden;\\n}\\n\\n.ace_hidden_token {\\n display: none;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\",\"ace/layer/text_util\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\nvar isTextToken = require(\"./layer/text_util\").isTextToken;\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", \"true\");\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!height && this.$maxLines && this.lineHeight > 1) {\n if (!el.style.height || el.style.height == \"0px\") {\n el.style.height = \"1px\";\n height = el.clientHeight || el.scrollHeight;\n }\n }\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (printMarginColumn) {\n this.setOption(\"printMarginColumn\", printMarginColumn);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1) {\n this.$autosize();\n hideScrollbars = size.height <= 2 * this.lineHeight;\n }\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this._rows = rows;\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textChunks = this.$calculateWrappedTextChunks(text, insertPosition);\n this.addToken(textChunks[0].text, \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n var widgetDiv = dom.createElement(\"div\");\n if (textChunks.length > 1) {\n var hiddenTokens = this.hideTokensAfterPosition(insertPosition.row, insertPosition.column);\n var lastLineDiv;\n textChunks.slice(1).forEach(function (el) {\n var chunkDiv = dom.createElement(\"div\");\n var chunkSpan = dom.createElement(\"span\");\n chunkSpan.className = \"ace_ghost_text\";\n if (el.wrapped)\n chunkDiv.className = \"ghost_text_line_wrapped\";\n if (el.text.length === 0)\n el.text = \" \";\n chunkSpan.appendChild(dom.createTextNode(el.text));\n chunkDiv.appendChild(chunkSpan);\n widgetDiv.appendChild(chunkDiv);\n lastLineDiv = chunkDiv;\n });\n hiddenTokens.forEach(function (token) {\n var element = dom.createElement(\"span\");\n if (!isTextToken(token.type))\n element.className = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n element.appendChild(dom.createTextNode(token.value));\n lastLineDiv.appendChild(element);\n });\n this.$ghostTextWidget = {\n el: widgetDiv,\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text_container\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n var pixelPosition = this.$cursorLayer.getPixelPosition(insertPosition, true);\n var el = this.container;\n var height = el.getBoundingClientRect().height;\n var ghostTextHeight = textChunks.length * this.lineHeight;\n var fitsY = ghostTextHeight < (height - pixelPosition.top);\n if (fitsY)\n return;\n if (ghostTextHeight < height) {\n this.scrollBy(0, (textChunks.length - 1) * this.lineHeight);\n }\n else {\n this.scrollToRow(insertPosition.row);\n }\n }\n };\n VirtualRenderer.prototype.$calculateWrappedTextChunks = function (text, position) {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth) - 2;\n limit = limit <= 0 ? 60 : limit; // this is a hack to prevent the editor from crashing when the window is too small\n var textLines = text.split(/\\r?\\n/);\n var textChunks = [];\n for (var i = 0; i < textLines.length; i++) {\n var displayTokens = this.session.$getDisplayTokens(textLines[i], position.column);\n var wrapSplits = this.session.$computeWrapSplits(displayTokens, limit, this.session.$tabSize);\n if (wrapSplits.length > 0) {\n var start = 0;\n wrapSplits.push(textLines[i].length);\n for (var j = 0; j < wrapSplits.length; j++) {\n var textSlice = textLines[i].slice(start, wrapSplits[j]);\n textChunks.push({ text: textSlice, wrapped: true });\n start = wrapSplits[j];\n }\n }\n else {\n textChunks.push({ text: textLines[i], wrapped: false });\n }\n }\n return textChunks;\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.hideTokensAfterPosition = function (row, column) {\n var tokens = this.session.getTokens(row);\n var l = 0;\n var hasPassedCursor = false;\n var hiddenTokens = [];\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (token.type === \"ghost_text\")\n continue;\n if (hasPassedCursor) {\n hiddenTokens.push({ type: token.type, value: token.value });\n token.type = \"hidden_token\";\n continue;\n }\n if (l === column) {\n hasPassedCursor = true;\n }\n }\n this.updateLines(row, row);\n return hiddenTokens;\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n if (useragent.isSafari && _self.scroller) {\n _self.scroller.style.background = \"red\";\n _self.scroller.style.background = \"\";\n }\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager()[\"$undostack\"] || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager[\"$undostack\"]).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){/**\n * commands to enter multiselect mode\n * @type {import(\"../../ace-internal\").Ace.Command[]}\n */\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){/**\n * @typedef {import(\"./anchor\").Anchor} Anchor\n * @typedef {import(\"../ace-internal\").Ace.Point} Point\n * @typedef {import(\"../ace-internal\").Ace.ScreenCoordinates} ScreenCoordinates\n */\nvar RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp_1 = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp_1.start.row;\n range.start.column = tmp_1.start.column;\n range.end.row = tmp_1.end.row;\n range.end.column = tmp_1.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n displayText: [nls(\"error-marker.good-state\", \"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n gutterAnno.displayText.forEach(function (annoTextLine, i) {\n el.appendChild(dom.createTextNode(annoTextLine));\n if (i < gutterAnno.displayText.length - 1) {\n el.appendChild(dom.createElement(\"br\"));\n }\n });\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @namespace Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nvar version = exports.config.version;\nexports.version = version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar calcThumbStyle = function calcThumbStyle(targetElement, vertical) {\n if (!targetElement) return null;\n var style = {\n left: targetElement.offsetLeft,\n right: targetElement.parentElement.clientWidth - targetElement.clientWidth - targetElement.offsetLeft,\n width: targetElement.clientWidth,\n top: targetElement.offsetTop,\n bottom: targetElement.parentElement.clientHeight - targetElement.clientHeight - targetElement.offsetTop,\n height: targetElement.clientHeight\n };\n if (vertical) {\n // Adjusts positioning and size for vertical layout by setting horizontal properties to 0 and using vertical properties from the style object.\n return {\n left: 0,\n right: 0,\n width: 0,\n top: style.top,\n bottom: style.bottom,\n height: style.height\n };\n }\n return {\n left: style.left,\n right: style.right,\n width: style.width,\n top: 0,\n bottom: 0,\n height: 0\n };\n};\nvar toPX = function toPX(value) {\n return value !== undefined ? \"\".concat(value, \"px\") : undefined;\n};\nexport default function MotionThumb(props) {\n var prefixCls = props.prefixCls,\n containerRef = props.containerRef,\n value = props.value,\n getValueIndex = props.getValueIndex,\n motionName = props.motionName,\n onMotionStart = props.onMotionStart,\n onMotionEnd = props.onMotionEnd,\n direction = props.direction,\n _props$vertical = props.vertical,\n vertical = _props$vertical === void 0 ? false : _props$vertical;\n var thumbRef = React.useRef(null);\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevValue = _React$useState2[0],\n setPrevValue = _React$useState2[1];\n\n // =========================== Effect ===========================\n var findValueElement = function findValueElement(val) {\n var _containerRef$current;\n var index = getValueIndex(val);\n var ele = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelectorAll(\".\".concat(prefixCls, \"-item\"))[index];\n return (ele === null || ele === void 0 ? void 0 : ele.offsetParent) && ele;\n };\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevStyle = _React$useState4[0],\n setPrevStyle = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n nextStyle = _React$useState6[0],\n setNextStyle = _React$useState6[1];\n useLayoutEffect(function () {\n if (prevValue !== value) {\n var prev = findValueElement(prevValue);\n var next = findValueElement(value);\n var calcPrevStyle = calcThumbStyle(prev, vertical);\n var calcNextStyle = calcThumbStyle(next, vertical);\n setPrevValue(value);\n setPrevStyle(calcPrevStyle);\n setNextStyle(calcNextStyle);\n if (prev && next) {\n onMotionStart();\n } else {\n onMotionEnd();\n }\n }\n }, [value]);\n var thumbStart = React.useMemo(function () {\n if (vertical) {\n var _prevStyle$top;\n return toPX((_prevStyle$top = prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.top) !== null && _prevStyle$top !== void 0 ? _prevStyle$top : 0);\n }\n if (direction === 'rtl') {\n return toPX(-(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.right));\n }\n return toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.left);\n }, [vertical, direction, prevStyle]);\n var thumbActive = React.useMemo(function () {\n if (vertical) {\n var _nextStyle$top;\n return toPX((_nextStyle$top = nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.top) !== null && _nextStyle$top !== void 0 ? _nextStyle$top : 0);\n }\n if (direction === 'rtl') {\n return toPX(-(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.right));\n }\n return toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.left);\n }, [vertical, direction, nextStyle]);\n\n // =========================== Motion ===========================\n var onAppearStart = function onAppearStart() {\n if (vertical) {\n return {\n transform: 'translateY(var(--thumb-start-top))',\n height: 'var(--thumb-start-height)'\n };\n }\n return {\n transform: 'translateX(var(--thumb-start-left))',\n width: 'var(--thumb-start-width)'\n };\n };\n var onAppearActive = function onAppearActive() {\n if (vertical) {\n return {\n transform: 'translateY(var(--thumb-active-top))',\n height: 'var(--thumb-active-height)'\n };\n }\n return {\n transform: 'translateX(var(--thumb-active-left))',\n width: 'var(--thumb-active-width)'\n };\n };\n var onVisibleChanged = function onVisibleChanged() {\n setPrevStyle(null);\n setNextStyle(null);\n onMotionEnd();\n };\n\n // =========================== Render ===========================\n // No need motion when nothing exist in queue\n if (!prevStyle || !nextStyle) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionName: motionName,\n motionAppear: true,\n onAppearStart: onAppearStart,\n onAppearActive: onAppearActive,\n onVisibleChanged: onVisibleChanged\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedStyle = _objectSpread(_objectSpread({}, motionStyle), {}, {\n '--thumb-start-left': thumbStart,\n '--thumb-start-width': toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.width),\n '--thumb-active-left': thumbActive,\n '--thumb-active-width': toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.width),\n '--thumb-start-top': thumbStart,\n '--thumb-start-height': toPX(prevStyle === null || prevStyle === void 0 ? void 0 : prevStyle.height),\n '--thumb-active-top': thumbActive,\n '--thumb-active-height': toPX(nextStyle === null || nextStyle === void 0 ? void 0 : nextStyle.height)\n });\n\n // It's little ugly which should be refactor when @umi/test update to latest jsdom\n var motionProps = {\n ref: composeRef(thumbRef, ref),\n style: mergedStyle,\n className: classNames(\"\".concat(prefixCls, \"-thumb\"), motionClassName)\n };\n if (process.env.NODE_ENV === 'test') {\n motionProps['data-test-style'] = JSON.stringify(mergedStyle);\n }\n return /*#__PURE__*/React.createElement(\"div\", motionProps);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"prefixCls\", \"direction\", \"vertical\", \"options\", \"disabled\", \"defaultValue\", \"value\", \"onChange\", \"className\", \"motionName\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport MotionThumb from \"./MotionThumb\";\nfunction getValidTitle(option) {\n if (typeof option.title !== 'undefined') {\n return option.title;\n }\n\n // read `label` when title is `undefined`\n if (_typeof(option.label) !== 'object') {\n var _option$label;\n return (_option$label = option.label) === null || _option$label === void 0 ? void 0 : _option$label.toString();\n }\n}\nfunction normalizeOptions(options) {\n return options.map(function (option) {\n if (_typeof(option) === 'object' && option !== null) {\n var validTitle = getValidTitle(option);\n return _objectSpread(_objectSpread({}, option), {}, {\n title: validTitle\n });\n }\n return {\n label: option === null || option === void 0 ? void 0 : option.toString(),\n title: option === null || option === void 0 ? void 0 : option.toString(),\n value: option\n };\n });\n}\nvar InternalSegmentedOption = function InternalSegmentedOption(_ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n disabled = _ref.disabled,\n checked = _ref.checked,\n label = _ref.label,\n title = _ref.title,\n value = _ref.value,\n onChange = _ref.onChange;\n var handleChange = function handleChange(event) {\n if (disabled) {\n return;\n }\n onChange(event, value);\n };\n return /*#__PURE__*/React.createElement(\"label\", {\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-item-disabled\"), disabled))\n }, /*#__PURE__*/React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-item-input\"),\n type: \"radio\",\n disabled: disabled,\n checked: checked,\n onChange: handleChange\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-label\"),\n title: title,\n role: \"option\",\n \"aria-selected\": checked\n }, label));\n};\nvar Segmented = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _segmentedOptions$, _classNames2;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-segmented' : _props$prefixCls,\n direction = props.direction,\n vertical = props.vertical,\n _props$options = props.options,\n options = _props$options === void 0 ? [] : _props$options,\n disabled = props.disabled,\n defaultValue = props.defaultValue,\n value = props.value,\n onChange = props.onChange,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$motionName = props.motionName,\n motionName = _props$motionName === void 0 ? 'thumb-motion' : _props$motionName,\n restProps = _objectWithoutProperties(props, _excluded);\n var containerRef = React.useRef(null);\n var mergedRef = React.useMemo(function () {\n return composeRef(containerRef, ref);\n }, [containerRef, ref]);\n var segmentedOptions = React.useMemo(function () {\n return normalizeOptions(options);\n }, [options]);\n\n // Note: We should not auto switch value when value not exist in options\n // which may break single source of truth.\n var _useMergedState = useMergedState((_segmentedOptions$ = segmentedOptions[0]) === null || _segmentedOptions$ === void 0 ? void 0 : _segmentedOptions$.value, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n\n // ======================= Change ========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n thumbShow = _React$useState2[0],\n setThumbShow = _React$useState2[1];\n var handleChange = function handleChange(event, val) {\n if (disabled) {\n return;\n }\n setRawValue(val);\n onChange === null || onChange === void 0 || onChange(val);\n };\n var divProps = omit(restProps, ['children']);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"listbox\",\n \"aria-label\": \"segmented control\"\n }, divProps, {\n className: classNames(prefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-vertical\"), vertical), _classNames2), className),\n ref: mergedRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-group\")\n }, /*#__PURE__*/React.createElement(MotionThumb, {\n vertical: vertical,\n prefixCls: prefixCls,\n value: rawValue,\n containerRef: containerRef,\n motionName: \"\".concat(prefixCls, \"-\").concat(motionName),\n direction: direction,\n getValueIndex: function getValueIndex(val) {\n return segmentedOptions.findIndex(function (n) {\n return n.value === val;\n });\n },\n onMotionStart: function onMotionStart() {\n setThumbShow(true);\n },\n onMotionEnd: function onMotionEnd() {\n setThumbShow(false);\n }\n }), segmentedOptions.map(function (segmentedOption) {\n return /*#__PURE__*/React.createElement(InternalSegmentedOption, _extends({}, segmentedOption, {\n key: segmentedOption.value,\n prefixCls: prefixCls,\n className: classNames(segmentedOption.className, \"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-selected\"), segmentedOption.value === rawValue && !thumbShow)),\n checked: segmentedOption.value === rawValue,\n onChange: handleChange,\n disabled: !!disabled || !!segmentedOption.disabled\n }));\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Segmented.displayName = 'Segmented';\n}\nvar TypedSegmented = Segmented;\nexport default TypedSegmented;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent, textEllipsis } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Mixins ==============================\nfunction getItemDisabledStyle(cls, token) {\n return {\n [`${cls}, ${cls}:hover, ${cls}:focus`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n };\n}\nfunction getItemSelectedStyle(token) {\n return {\n backgroundColor: token.itemSelectedBg,\n boxShadow: token.boxShadowTertiary\n };\n}\nconst segmentedTextEllipsisCss = Object.assign({\n overflow: 'hidden'\n}, textEllipsis);\n// ============================== Styles ==============================\nconst genSegmentedStyle = token => {\n const {\n componentCls\n } = token;\n const labelHeight = token.calc(token.controlHeight).sub(token.calc(token.trackPadding).mul(2)).equal();\n const labelHeightLG = token.calc(token.controlHeightLG).sub(token.calc(token.trackPadding).mul(2)).equal();\n const labelHeightSM = token.calc(token.controlHeightSM).sub(token.calc(token.trackPadding).mul(2)).equal();\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n padding: token.trackPadding,\n color: token.itemColor,\n background: token.trackBg,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n [`${componentCls}-group`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'stretch',\n justifyItems: 'flex-start',\n flexDirection: 'row',\n width: '100%'\n },\n // RTL styles\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n [`&${componentCls}-vertical`]: {\n [`${componentCls}-group`]: {\n flexDirection: 'column'\n },\n [`${componentCls}-thumb`]: {\n width: '100%',\n height: 0,\n padding: `0 ${unit(token.paddingXXS)}`\n }\n },\n // block styles\n [`&${componentCls}-block`]: {\n display: 'flex'\n },\n [`&${componentCls}-block ${componentCls}-item`]: {\n flex: 1,\n minWidth: 0\n },\n // item styles\n [`${componentCls}-item`]: {\n position: 'relative',\n textAlign: 'center',\n cursor: 'pointer',\n transition: `color ${token.motionDurationMid} ${token.motionEaseInOut}`,\n borderRadius: token.borderRadiusSM,\n // Fix Safari render bug\n // https://github.com/ant-design/ant-design/issues/45250\n transform: 'translateZ(0)',\n '&-selected': Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n color: token.itemSelectedColor\n }),\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n zIndex: -1,\n width: '100%',\n height: '100%',\n top: 0,\n insetInlineStart: 0,\n borderRadius: 'inherit',\n transition: `background-color ${token.motionDurationMid}`,\n // This is mandatory to make it not clickable or hoverable\n // Ref: https://github.com/ant-design/ant-design/issues/40888\n pointerEvents: 'none'\n },\n [`&:hover:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemHoverBg\n }\n },\n [`&:active:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)`]: {\n color: token.itemHoverColor,\n '&::after': {\n backgroundColor: token.itemActiveBg\n }\n },\n '&-label': Object.assign({\n minHeight: labelHeight,\n lineHeight: unit(labelHeight),\n padding: `0 ${unit(token.segmentedPaddingHorizontal)}`\n }, segmentedTextEllipsisCss),\n // syntactic sugar to add `icon` for Segmented Item\n '&-icon + *': {\n marginInlineStart: token.calc(token.marginSM).div(2).equal()\n },\n '&-input': {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n }\n },\n // thumb styles\n [`${componentCls}-thumb`]: Object.assign(Object.assign({}, getItemSelectedStyle(token)), {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: 0,\n height: '100%',\n padding: `${unit(token.paddingXXS)} 0`,\n borderRadius: token.borderRadiusSM,\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOut}, height ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n [`& ~ ${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-item-disabled)::after`]: {\n backgroundColor: 'transparent'\n }\n }),\n // size styles\n [`&${componentCls}-lg`]: {\n borderRadius: token.borderRadiusLG,\n [`${componentCls}-item-label`]: {\n minHeight: labelHeightLG,\n lineHeight: unit(labelHeightLG),\n padding: `0 ${unit(token.segmentedPaddingHorizontal)}`,\n fontSize: token.fontSizeLG\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadius\n }\n },\n [`&${componentCls}-sm`]: {\n borderRadius: token.borderRadiusSM,\n [`${componentCls}-item-label`]: {\n minHeight: labelHeightSM,\n lineHeight: unit(labelHeightSM),\n padding: `0 ${unit(token.segmentedPaddingHorizontalSM)}`\n },\n [`${componentCls}-item, ${componentCls}-thumb`]: {\n borderRadius: token.borderRadiusXS\n }\n }\n }), getItemDisabledStyle(`&-disabled ${componentCls}-item`, token)), getItemDisabledStyle(`${componentCls}-item-disabled`, token)), {\n // transition effect when `appear-active`\n [`${componentCls}-thumb-motion-appear-active`]: {\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOut}, width ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n willChange: 'transform, width'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n colorTextLabel,\n colorText,\n colorFillSecondary,\n colorBgElevated,\n colorFill,\n lineWidthBold,\n colorBgLayout\n } = token;\n return {\n trackPadding: lineWidthBold,\n trackBg: colorBgLayout,\n itemColor: colorTextLabel,\n itemHoverColor: colorText,\n itemHoverBg: colorFillSecondary,\n itemSelectedBg: colorBgElevated,\n itemActiveBg: colorFill,\n itemSelectedColor: colorText\n };\n};\nexport default genStyleHooks('Segmented', token => {\n const {\n lineWidth,\n calc\n } = token;\n const segmentedToken = mergeToken(token, {\n segmentedPaddingHorizontal: calc(token.controlPaddingHorizontal).sub(lineWidth).equal(),\n segmentedPaddingHorizontalSM: calc(token.controlPaddingHorizontalSM).sub(lineWidth).equal()\n });\n return [genSegmentedStyle(segmentedToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcSegmented from 'rc-segmented';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nfunction isSegmentedLabeledOptionWithIcon(option) {\n return typeof option === 'object' && !!(option === null || option === void 0 ? void 0 : option.icon);\n}\nconst InternalSegmented = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n block,\n options = [],\n size: customSize = 'middle',\n style,\n vertical\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"block\", \"options\", \"size\", \"style\", \"vertical\"]);\n const {\n getPrefixCls,\n direction,\n segmented\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('segmented', customizePrefixCls);\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // ===================== Size =====================\n const mergedSize = useSize(customSize);\n // syntactic sugar to support `icon` for Segmented Item\n const extendedOptions = React.useMemo(() => options.map(option => {\n if (isSegmentedLabeledOptionWithIcon(option)) {\n const {\n icon,\n label\n } = option,\n restOption = __rest(option, [\"icon\", \"label\"]);\n return Object.assign(Object.assign({}, restOption), {\n label: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-icon`\n }, icon), label && /*#__PURE__*/React.createElement(\"span\", null, label)))\n });\n }\n return option;\n }), [options, prefixCls]);\n const cls = classNames(className, rootClassName, segmented === null || segmented === void 0 ? void 0 : segmented.className, {\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-vertical`]: vertical\n }, hashId, cssVarCls);\n const mergedStyle = Object.assign(Object.assign({}, segmented === null || segmented === void 0 ? void 0 : segmented.style), style);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcSegmented, Object.assign({}, restProps, {\n className: cls,\n style: mergedStyle,\n options: extendedOptions,\n ref: ref,\n prefixCls: prefixCls,\n direction: direction,\n vertical: vertical\n })));\n});\nconst Segmented = InternalSegmented;\nif (process.env.NODE_ENV !== 'production') {\n Segmented.displayName = 'Segmented';\n}\nexport default Segmented;","import { unit } from '@ant-design/cssinjs';\nimport { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { initComponentToken, initInputToken } from './token';\nimport { genBorderlessStyle, genFilledGroupStyle, genFilledStyle, genOutlinedGroupStyle, genOutlinedStyle } from './variants';\nexport { initComponentToken, initInputToken };\nexport const genPlaceholderStyle = color => ({\n // Firefox\n '&::-moz-placeholder': {\n opacity: 1\n },\n '&::placeholder': {\n color,\n userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n },\n '&:placeholder-shown': {\n textOverflow: 'ellipsis'\n }\n});\nexport const genActiveStyle = token => ({\n borderColor: token.activeBorderColor,\n boxShadow: token.activeShadow,\n outline: 0,\n backgroundColor: token.activeBg\n});\nconst genInputLargeStyle = token => {\n const {\n paddingBlockLG,\n lineHeightLG,\n borderRadiusLG,\n paddingInlineLG\n } = token;\n return {\n padding: `${unit(paddingBlockLG)} ${unit(paddingInlineLG)}`,\n fontSize: token.inputFontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG\n };\n};\nexport const genInputSmallStyle = token => ({\n padding: `${unit(token.paddingBlockSM)} ${unit(token.paddingInlineSM)}`,\n fontSize: token.inputFontSizeSM,\n borderRadius: token.borderRadiusSM\n});\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n minWidth: 0,\n padding: `${unit(token.paddingBlock)} ${unit(token.paddingInline)}`,\n color: token.colorText,\n fontSize: token.inputFontSize,\n lineHeight: token.lineHeight,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n // Reset height for `textarea`s\n 'textarea&': {\n maxWidth: '100%',\n // prevent textarea resize from coming out of its container\n height: 'auto',\n minHeight: token.controlHeight,\n lineHeight: token.lineHeight,\n verticalAlign: 'bottom',\n transition: `all ${token.motionDurationSlow}, height 0s`,\n resize: 'vertical'\n },\n // Size\n '&-lg': Object.assign({}, genInputLargeStyle(token)),\n '&-sm': Object.assign({}, genInputSmallStyle(token)),\n // RTL\n '&-rtl, &-textarea-rtl': {\n direction: 'rtl'\n }\n});\nexport const genInputGroupStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n position: 'relative',\n display: 'table',\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n // Undo padding and float of grid classes\n \"&[class*='col-']\": {\n paddingInlineEnd: token.paddingXS,\n '&:last-child': {\n paddingInlineEnd: 0\n }\n },\n // Sizing options\n [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n // Fix https://github.com/ant-design/ant-design/issues/5754\n [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightLG\n },\n [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightSM\n },\n [`> ${componentCls}`]: {\n display: 'table-cell',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n [`${componentCls}-group`]: {\n '&-addon, &-wrap': {\n display: 'table-cell',\n width: 1,\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n '&-wrap > *': {\n display: 'block !important'\n },\n '&-addon': {\n position: 'relative',\n padding: `0 ${unit(token.paddingInline)}`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.inputFontSize,\n textAlign: 'center',\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`,\n lineHeight: 1,\n // Reset Select's style in addon\n [`${antCls}-select`]: {\n margin: `${unit(token.calc(token.paddingBlock).add(1).mul(-1).equal())} ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n [`&${antCls}-select-single:not(${antCls}-select-customize-input):not(${antCls}-pagination-size-changer)`]: {\n [`${antCls}-select-selector`]: {\n backgroundColor: 'inherit',\n border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n boxShadow: 'none'\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/31333\n [`${antCls}-cascader-picker`]: {\n margin: `-9px ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n backgroundColor: 'transparent',\n [`${antCls}-cascader-input`]: {\n textAlign: 'start',\n border: 0,\n boxShadow: 'none'\n }\n }\n }\n },\n [componentCls]: {\n width: '100%',\n marginBottom: 0,\n textAlign: 'inherit',\n '&:focus': {\n zIndex: 1,\n // Fix https://gw.alipayobjects.com/zos/rmsportal/DHNpoqfMXSfrSnlZvhsJ.png\n borderInlineEndWidth: 1\n },\n '&:hover': {\n zIndex: 1,\n borderInlineEndWidth: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }\n },\n // Reset rounded corners\n [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}-affix-wrapper`]: {\n [`&:not(:first-child) ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n },\n [`&:not(:last-child) ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n '&:not(:last-child)': {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-search &`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n }\n },\n [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n display: 'block'\n }, clearFix()), {\n [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n '&:not(:first-child):not(:last-child)': {\n borderInlineEndWidth: token.lineWidth,\n '&:hover, &:focus': {\n zIndex: 1\n }\n }\n },\n '& > *': {\n display: 'inline-flex',\n float: 'none',\n verticalAlign: 'top',\n // https://github.com/ant-design/ant-design-pro/issues/139\n borderRadius: 0\n },\n [`\n & > ${componentCls}-affix-wrapper,\n & > ${componentCls}-number-affix-wrapper,\n & > ${antCls}-picker-range\n `]: {\n display: 'inline-flex'\n },\n '& > *:not(:last-child)': {\n marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n borderInlineEndWidth: token.lineWidth\n },\n // Undo float for .ant-input-group .ant-input\n [componentCls]: {\n float: 'none'\n },\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n [`& > ${antCls}-select > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete ${componentCls},\n & > ${antCls}-cascader-picker ${componentCls},\n & > ${componentCls}-group-wrapper ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderRadius: 0,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n [`& > ${antCls}-select-focused`]: {\n zIndex: 1\n },\n // update z-index for arrow icon\n [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n },\n [`& > *:first-child,\n & > ${antCls}-select:first-child > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete:first-child ${componentCls},\n & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n },\n [`& > *:last-child,\n & > ${antCls}-select:last-child > ${antCls}-select-selector,\n & > ${antCls}-cascader-picker:last-child ${componentCls},\n & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius\n },\n // https://github.com/ant-design/ant-design/issues/12493\n [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n verticalAlign: 'top'\n },\n [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n marginInlineStart: token.calc(token.lineWidth).mul(-1).equal(),\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`${componentCls}-group-wrapper:not(:last-child)`]: {\n [`&${componentCls}-search > ${componentCls}-group`]: {\n [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n borderRadius: 0\n },\n [`& > ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: token.borderRadius\n }\n }\n }\n })\n };\n};\nconst genInputStyle = token => {\n const {\n componentCls,\n controlHeightSM,\n lineWidth,\n calc\n } = token;\n const FIXED_CHROME_COLOR_HEIGHT = 16;\n const colorSmallPadding = calc(controlHeightSM).sub(calc(lineWidth).mul(2)).sub(FIXED_CHROME_COLOR_HEIGHT).div(2).equal();\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token)), {\n '&[type=\"color\"]': {\n height: token.controlHeight,\n [`&${componentCls}-lg`]: {\n height: token.controlHeightLG\n },\n [`&${componentCls}-sm`]: {\n height: controlHeightSM,\n paddingTop: colorSmallPadding,\n paddingBottom: colorSmallPadding\n }\n },\n '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n '-webkit-appearance': 'none'\n }\n })\n };\n};\nconst genAllowClearStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ========================= Input =========================\n [`${componentCls}-clear-icon`]: {\n margin: 0,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n verticalAlign: -1,\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextTertiary\n },\n '&:active': {\n color: token.colorText\n },\n '&-hidden': {\n visibility: 'hidden'\n },\n '&-has-suffix': {\n margin: `0 ${unit(token.inputAffixPadding)}`\n }\n }\n };\n};\nconst genAffixStyle = token => {\n const {\n componentCls,\n inputAffixPadding,\n colorTextDescription,\n motionDurationSlow,\n colorIcon,\n colorIconHover,\n iconCls\n } = token;\n const affixCls = `${componentCls}-affix-wrapper`;\n const affixClsDisabled = `${componentCls}-affix-wrapper-disabled`;\n return {\n [affixCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n display: 'inline-flex',\n [`&:not(${componentCls}-disabled):hover`]: {\n zIndex: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n },\n '&-focused, &:focus': {\n zIndex: 1\n },\n [`> input${componentCls}`]: {\n padding: 0\n },\n [`> input${componentCls}, > textarea${componentCls}`]: {\n fontSize: 'inherit',\n border: 'none',\n borderRadius: 0,\n outline: 'none',\n background: 'transparent',\n color: 'inherit',\n '&::-ms-reveal': {\n display: 'none'\n },\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [componentCls]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n '> *:not(:last-child)': {\n marginInlineEnd: token.paddingXS\n }\n },\n '&-show-count-suffix': {\n color: colorTextDescription\n },\n '&-show-count-has-suffix': {\n marginInlineEnd: token.paddingXXS\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n marginInlineStart: inputAffixPadding\n }\n }\n }), genAllowClearStyle(token)), {\n // password\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }),\n [affixClsDisabled]: {\n // password disabled\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorIcon\n }\n }\n }\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-rtl': {\n direction: 'rtl'\n },\n '&-wrapper': Object.assign(Object.assign(Object.assign({\n display: 'inline-block',\n width: '100%',\n textAlign: 'start',\n verticalAlign: 'top',\n '&-rtl': {\n direction: 'rtl'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG,\n fontSize: token.inputFontSizeLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n }\n }, genOutlinedGroupStyle(token)), genFilledGroupStyle(token)), {\n // '&-disabled': {\n // [`${componentCls}-group-addon`]: {\n // ...genDisabledStyle(token),\n // },\n // },\n // Fix the issue of using icons in Space Compact mode\n // https://github.com/ant-design/ant-design/issues/42122\n [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n // Fix the issue of input use show-count param in space compact mode\n // https://github.com/ant-design/ant-design/issues/46872\n [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n [`${componentCls}-affix-wrapper`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n }\n })\n })\n };\n};\nconst genSearchInputStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const searchPrefixCls = `${componentCls}-search`;\n return {\n [searchPrefixCls]: {\n [componentCls]: {\n '&:hover, &:focus': {\n [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n borderInlineStartColor: token.colorPrimaryHover\n }\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n height: token.controlHeight,\n borderRadius: 0\n },\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#auto-complete-demo-certain-category\n [`${componentCls}-lg`]: {\n lineHeight: token.calc(token.lineHeightLG).sub(0.0002).equal()\n },\n [`> ${componentCls}-group`]: {\n [`> ${componentCls}-group-addon:last-child`]: {\n insetInlineStart: -1,\n padding: 0,\n border: 0,\n [`${searchPrefixCls}-button`]: {\n // Fix https://github.com/ant-design/ant-design/issues/47150\n marginInlineEnd: -1,\n paddingTop: 0,\n paddingBottom: 0,\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n boxShadow: 'none'\n },\n [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n color: token.colorTextDescription,\n '&:hover': {\n color: token.colorPrimaryHover\n },\n '&:active': {\n color: token.colorPrimaryActive\n },\n [`&${antCls}-btn-loading::before`]: {\n insetInlineStart: 0,\n insetInlineEnd: 0,\n insetBlockStart: 0,\n insetBlockEnd: 0\n }\n }\n }\n },\n [`${searchPrefixCls}-button`]: {\n height: token.controlHeight,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n '&-large': {\n [`${componentCls}-affix-wrapper, ${searchPrefixCls}-button`]: {\n height: token.controlHeightLG\n }\n },\n '&-small': {\n [`${componentCls}-affix-wrapper, ${searchPrefixCls}-button`]: {\n height: token.controlHeightSM\n }\n },\n '&-rtl': {\n direction: 'rtl'\n },\n // ===================== Compact Item Customized Styles =====================\n [`&${componentCls}-compact-item`]: {\n [`&:not(${componentCls}-compact-last-item)`]: {\n [`${componentCls}-group-addon`]: {\n [`${componentCls}-search-button`]: {\n marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n borderRadius: 0\n }\n }\n },\n [`&:not(${componentCls}-compact-first-item)`]: {\n [`${componentCls},${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`> ${componentCls}-group-addon ${componentCls}-search-button,\n > ${componentCls},\n ${componentCls}-affix-wrapper`]: {\n '&:hover, &:focus, &:active': {\n zIndex: 2\n }\n },\n [`> ${componentCls}-affix-wrapper-focused`]: {\n zIndex: 2\n }\n }\n }\n };\n};\nconst genTextAreaStyle = token => {\n const {\n componentCls,\n paddingLG\n } = token;\n const textareaPrefixCls = `${componentCls}-textarea`;\n return {\n [textareaPrefixCls]: {\n position: 'relative',\n '&-show-count': {\n // https://github.com/ant-design/ant-design/issues/33049\n [`> ${componentCls}`]: {\n height: '100%'\n },\n [`${componentCls}-data-count`]: {\n position: 'absolute',\n bottom: token.calc(token.fontSize).mul(token.lineHeight).mul(-1).equal(),\n insetInlineEnd: 0,\n color: token.colorTextDescription,\n whiteSpace: 'nowrap',\n pointerEvents: 'none'\n }\n },\n [`\n &-allow-clear > ${componentCls},\n &-affix-wrapper${textareaPrefixCls}-has-feedback ${componentCls}\n `]: {\n paddingInlineEnd: paddingLG\n },\n [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n padding: 0,\n [`> textarea${componentCls}`]: {\n fontSize: 'inherit',\n border: 'none',\n outline: 'none',\n background: 'transparent',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n [`${componentCls}-suffix`]: {\n margin: 0,\n '> *:not(:last-child)': {\n marginInline: 0\n },\n // Clear Icon\n [`${componentCls}-clear-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingInline,\n insetBlockStart: token.paddingXS\n },\n // Feedback Icon\n [`${textareaPrefixCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.paddingInline,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto',\n pointerEvents: 'none'\n }\n }\n },\n [`&-affix-wrapper${componentCls}-affix-wrapper-sm`]: {\n [`${componentCls}-suffix`]: {\n [`${componentCls}-clear-icon`]: {\n insetInlineEnd: token.paddingInlineSM\n }\n }\n }\n }\n };\n};\n// ============================== Range ===============================\nconst genRangeStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-out-of-range`]: {\n [`&, & input, & textarea, ${componentCls}-show-count-suffix, ${componentCls}-data-count`]: {\n color: token.colorError\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Input', token => {\n const inputToken = mergeToken(token, initInputToken(token));\n return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken), genRangeStyle(inputToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputToken)];\n}, initComponentToken, {\n resetFont: false\n});","// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","module.exports = __webpack_public_path__ + \"db8ca5cfb6fe4aaef215f116f6991784.js\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _immutable = require('immutable');\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _getStateName = require('./getStateName');\n\nvar _getStateName2 = _interopRequireDefault(_getStateName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (state, reducers, action) {\n var reducerNames = Object.keys(reducers);\n\n if (!reducerNames.length) {\n return 'Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.';\n }\n\n var stateName = (0, _getStateName2.default)(action);\n\n if (_immutable2.default.isImmutable ? !_immutable2.default.isImmutable(state) : !_immutable2.default.Iterable.isIterable(state)) {\n return 'The ' + stateName + ' is of unexpected type. Expected argument to be an instance of Immutable.Collection or Immutable.Record with the following properties: \"' + reducerNames.join('\", \"') + '\".';\n }\n\n var unexpectedStatePropertyNames = state.toSeq().keySeq().toArray().filter(function (name) {\n return !reducers.hasOwnProperty(name);\n });\n\n if (unexpectedStatePropertyNames.length > 0) {\n return 'Unexpected ' + (unexpectedStatePropertyNames.length === 1 ? 'property' : 'properties') + ' \"' + unexpectedStatePropertyNames.join('\", \"') + '\" found in ' + stateName + '. Expected to find one of the known reducer property names instead: \"' + reducerNames.join('\", \"') + '\". Unexpected properties will be ignored.';\n }\n\n return null;\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=getUnexpectedInvocationParameterMessage.js.map","import isFragment from \"../React/isFragment\";\nimport React from 'react';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","module.exports = __webpack_public_path__ + \"fac0ce75e0690947a9e9e6f5b35c1ea8.js\";","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n var measureEle = document.createElement('div');\n measureEle.id = randomId;\n\n // Create Style\n var measureStyle = measureEle.style;\n measureStyle.position = 'absolute';\n measureStyle.left = '0';\n measureStyle.top = '0';\n measureStyle.width = '100px';\n measureStyle.height = '100px';\n measureStyle.overflow = 'scroll';\n\n // Clone Style if needed\n var fallbackWidth;\n var fallbackHeight;\n if (ele) {\n var targetStyle = getComputedStyle(ele);\n measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n // Set Webkit style\n var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n var width = parseInt(webkitScrollbarStyle.width, 10);\n var height = parseInt(webkitScrollbarStyle.height, 10);\n\n // Try wrap to handle CSP case\n try {\n var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n } catch (e) {\n // Can't wrap, just log error\n console.error(e);\n\n // Get from style directly\n fallbackWidth = width;\n fallbackHeight = height;\n }\n }\n document.body.appendChild(measureEle);\n\n // Measure. Get fallback style if provided\n var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n // Clean up\n document.body.removeChild(measureEle);\n removeCSS(randomId);\n return {\n width: scrollWidth,\n height: scrollHeight\n };\n}\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n cached = measureScrollbarSize();\n }\n return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n return measureScrollbarSize(target);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _ExtractStyleFns;\nimport { extract as tokenExtractStyle, TOKEN_PREFIX } from \"./hooks/useCacheToken\";\nimport { CSS_VAR_PREFIX, extract as cssVarExtractStyle } from \"./hooks/useCSSVarRegister\";\nimport { extract as styleExtractStyle, STYLE_PREFIX } from \"./hooks/useStyleRegister\";\nimport { toStyleStr } from \"./util\";\nimport { ATTR_CACHE_MAP, serialize as serializeCacheMap } from \"./util/cacheMapUtil\";\nvar ExtractStyleFns = (_ExtractStyleFns = {}, _defineProperty(_ExtractStyleFns, STYLE_PREFIX, styleExtractStyle), _defineProperty(_ExtractStyleFns, TOKEN_PREFIX, tokenExtractStyle), _defineProperty(_ExtractStyleFns, CSS_VAR_PREFIX, cssVarExtractStyle), _ExtractStyleFns);\nfunction isNotNull(value) {\n return value !== null;\n}\nexport default function extractStyle(cache, options) {\n var _ref = typeof options === 'boolean' ? {\n plain: options\n } : options || {},\n _ref$plain = _ref.plain,\n plain = _ref$plain === void 0 ? false : _ref$plain,\n _ref$types = _ref.types,\n types = _ref$types === void 0 ? ['style', 'token', 'cssVar'] : _ref$types;\n var matchPrefixRegexp = new RegExp(\"^(\".concat((typeof types === 'string' ? [types] : types).join('|'), \")%\"));\n\n // prefix with `style` is used for `useStyleRegister` to cache style context\n var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n return matchPrefixRegexp.test(key);\n });\n\n // Common effect styles like animation\n var effectStyles = {};\n\n // Mapping of cachePath to style hash\n var cachePathMap = {};\n var styleText = '';\n styleKeys.map(function (key) {\n var cachePath = key.replace(matchPrefixRegexp, '').replace(/%/g, '|');\n var _key$split = key.split('%'),\n _key$split2 = _slicedToArray(_key$split, 1),\n prefix = _key$split2[0];\n var extractFn = ExtractStyleFns[prefix];\n var extractedStyle = extractFn(cache.cache.get(key)[1], effectStyles, {\n plain: plain\n });\n if (!extractedStyle) {\n return null;\n }\n var _extractedStyle = _slicedToArray(extractedStyle, 3),\n order = _extractedStyle[0],\n styleId = _extractedStyle[1],\n styleStr = _extractedStyle[2];\n if (key.startsWith('style')) {\n cachePathMap[cachePath] = styleId;\n }\n return [order, styleStr];\n }).filter(isNotNull).sort(function (_ref2, _ref3) {\n var _ref4 = _slicedToArray(_ref2, 1),\n o1 = _ref4[0];\n var _ref5 = _slicedToArray(_ref3, 1),\n o2 = _ref5[0];\n return o1 - o2;\n }).forEach(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n style = _ref7[1];\n styleText += style;\n });\n\n // ==================== Fill Cache Path ====================\n styleText += toStyleStr(\".\".concat(ATTR_CACHE_MAP, \"{content:\\\"\").concat(serializeCacheMap(cachePathMap), \"\\\";}\"), undefined, undefined, _defineProperty({}, ATTR_CACHE_MAP, ATTR_CACHE_MAP), plain);\n return styleText;\n}","module.exports = __webpack_public_path__ + \"5cd4e1282f4409600b942819b7aa4f21.js\";","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","var coreJsData = require('./_coreJsData');\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 * 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\nmodule.exports = isMasked;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\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 assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport getAllowClear from '../_util/getAllowClear';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariant from '../form/hooks/useVariants';\nimport { triggerFocus } from './Input';\nimport useStyle from './style';\nconst TextArea = /*#__PURE__*/forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n size: customizeSize,\n disabled: customDisabled,\n status: customStatus,\n allowClear,\n classNames: classes,\n rootClassName,\n className,\n style,\n styles,\n variant: customVariant\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"size\", \"disabled\", \"status\", \"allowClear\", \"classNames\", \"rootClassName\", \"className\", \"style\", \"styles\", \"variant\"]);\n if (process.env.NODE_ENV !== 'production') {\n const {\n deprecated\n } = devUseWarning('TextArea');\n deprecated(!('bordered' in props), 'bordered', 'variant');\n }\n const {\n getPrefixCls,\n direction,\n textArea\n } = React.useContext(ConfigContext);\n // ===================== Size =====================\n const mergedSize = useSize(customizeSize);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Ref =====================\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: option => {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n // ===================== Style =====================\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const [variant, enableVariantCls] = useVariant('textArea', customVariant, bordered);\n const mergedAllowClear = getAllowClear(allowClear !== null && allowClear !== void 0 ? allowClear : textArea === null || textArea === void 0 ? void 0 : textArea.allowClear);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcTextArea, Object.assign({\n autoComplete: textArea === null || textArea === void 0 ? void 0 : textArea.autoComplete\n }, rest, {\n style: Object.assign(Object.assign({}, textArea === null || textArea === void 0 ? void 0 : textArea.style), style),\n styles: Object.assign(Object.assign({}, textArea === null || textArea === void 0 ? void 0 : textArea.styles), styles),\n disabled: mergedDisabled,\n allowClear: mergedAllowClear,\n className: classNames(cssVarCls, rootCls, className, rootClassName, textArea === null || textArea === void 0 ? void 0 : textArea.className),\n classNames: Object.assign(Object.assign(Object.assign({}, classes), textArea === null || textArea === void 0 ? void 0 : textArea.classNames), {\n textarea: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, hashId, classes === null || classes === void 0 ? void 0 : classes.textarea, (_a = textArea === null || textArea === void 0 ? void 0 : textArea.classNames) === null || _a === void 0 ? void 0 : _a.textarea),\n variant: classNames({\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, mergedStatus)),\n affixWrapper: classNames(`${prefixCls}-textarea-affix-wrapper`, {\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-textarea-show-count`]: props.showCount || ((_b = props.count) === null || _b === void 0 ? void 0 : _b.show)\n }, hashId)\n }),\n prefixCls: prefixCls,\n suffix: hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-textarea-suffix`\n }, feedbackIcon),\n ref: innerRef\n })));\n});\nexport default TextArea;","import { unit } from '@ant-design/cssinjs';\nimport { mergeToken } from '../../theme/internal';\nexport const genHoverStyle = token => ({\n borderColor: token.hoverBorderColor,\n backgroundColor: token.hoverBg\n});\nexport const genDisabledStyle = token => ({\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n boxShadow: 'none',\n cursor: 'not-allowed',\n opacity: 1,\n 'input[disabled], textarea[disabled]': {\n cursor: 'not-allowed'\n },\n '&:hover:not([disabled])': Object.assign({}, genHoverStyle(mergeToken(token, {\n hoverBorderColor: token.colorBorder,\n hoverBg: token.colorBgContainerDisabled\n })))\n});\n/* ============== Outlined ============== */\nexport const genBaseOutlinedStyle = (token, options) => ({\n background: token.colorBgContainer,\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: options.borderColor,\n '&:hover': {\n borderColor: options.hoverBorderColor,\n backgroundColor: token.hoverBg\n },\n '&:focus, &:focus-within': {\n borderColor: options.activeBorderColor,\n boxShadow: options.activeShadow,\n outline: 0,\n backgroundColor: token.activeBg\n }\n});\nconst genOutlinedStatusStyle = (token, options) => ({\n [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseOutlinedStyle(token, options)), {\n [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n color: options.affixColor\n }\n }),\n [`&${token.componentCls}-status-${options.status}${token.componentCls}-disabled`]: {\n borderColor: options.borderColor\n }\n});\nexport const genOutlinedStyle = (token, extraStyles) => ({\n '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n borderColor: token.colorBorder,\n hoverBorderColor: token.hoverBorderColor,\n activeBorderColor: token.activeBorderColor,\n activeShadow: token.activeShadow\n })), {\n [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n }), genOutlinedStatusStyle(token, {\n status: 'error',\n borderColor: token.colorError,\n hoverBorderColor: token.colorErrorBorderHover,\n activeBorderColor: token.colorError,\n activeShadow: token.errorActiveShadow,\n affixColor: token.colorError\n })), genOutlinedStatusStyle(token, {\n status: 'warning',\n borderColor: token.colorWarning,\n hoverBorderColor: token.colorWarningBorderHover,\n activeBorderColor: token.colorWarning,\n activeShadow: token.warningActiveShadow,\n affixColor: token.colorWarning\n })), extraStyles)\n});\nconst genOutlinedGroupStatusStyle = (token, options) => ({\n [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n [`${token.componentCls}-group-addon`]: {\n borderColor: options.addonBorderColor,\n color: options.addonColor\n }\n }\n});\nexport const genOutlinedGroupStyle = token => ({\n '&-outlined': Object.assign(Object.assign(Object.assign({\n [`${token.componentCls}-group`]: {\n '&-addon': {\n background: token.addonBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n },\n '&-addon:first-child': {\n borderInlineEnd: 0\n },\n '&-addon:last-child': {\n borderInlineStart: 0\n }\n }\n }, genOutlinedGroupStatusStyle(token, {\n status: 'error',\n addonBorderColor: token.colorError,\n addonColor: token.colorErrorText\n })), genOutlinedGroupStatusStyle(token, {\n status: 'warning',\n addonBorderColor: token.colorWarning,\n addonColor: token.colorWarningText\n })), {\n [`&${token.componentCls}-group-wrapper-disabled`]: {\n [`${token.componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n }\n })\n});\n/* ============ Borderless ============ */\nexport const genBorderlessStyle = (token, extraStyles) => {\n const {\n componentCls\n } = token;\n return {\n '&-borderless': Object.assign({\n background: 'transparent',\n border: 'none',\n '&:focus, &:focus-within': {\n outline: 'none'\n },\n // >>>>> Disabled\n [`&${componentCls}-disabled, &[disabled]`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n // >>>>> Status\n [`&${componentCls}-status-error`]: {\n '&, & input, & textarea': {\n color: token.colorError\n }\n },\n [`&${componentCls}-status-warning`]: {\n '&, & input, & textarea': {\n color: token.colorWarning\n }\n }\n }, extraStyles)\n };\n};\n/* ============== Filled ============== */\nconst genBaseFilledStyle = (token, options) => ({\n background: options.bg,\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: 'transparent',\n 'input&, & input, textarea&, & textarea': {\n color: options === null || options === void 0 ? void 0 : options.inputColor\n },\n '&:hover': {\n background: options.hoverBg\n },\n '&:focus, &:focus-within': {\n outline: 0,\n borderColor: options.activeBorderColor,\n backgroundColor: token.activeBg\n }\n});\nconst genFilledStatusStyle = (token, options) => ({\n [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseFilledStyle(token, options)), {\n [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n color: options.affixColor\n }\n })\n});\nexport const genFilledStyle = (token, extraStyles) => ({\n '&-filled': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n bg: token.colorFillTertiary,\n hoverBg: token.colorFillSecondary,\n activeBorderColor: token.activeBorderColor\n })), {\n [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n }), genFilledStatusStyle(token, {\n status: 'error',\n bg: token.colorErrorBg,\n hoverBg: token.colorErrorBgHover,\n activeBorderColor: token.colorError,\n inputColor: token.colorErrorText,\n affixColor: token.colorError\n })), genFilledStatusStyle(token, {\n status: 'warning',\n bg: token.colorWarningBg,\n hoverBg: token.colorWarningBgHover,\n activeBorderColor: token.colorWarning,\n inputColor: token.colorWarningText,\n affixColor: token.colorWarning\n })), extraStyles)\n});\nconst genFilledGroupStatusStyle = (token, options) => ({\n [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n [`${token.componentCls}-group-addon`]: {\n background: options.addonBg,\n color: options.addonColor\n }\n }\n});\nexport const genFilledGroupStyle = token => ({\n '&-filled': Object.assign(Object.assign(Object.assign({\n [`${token.componentCls}-group`]: {\n '&-addon': {\n background: token.colorFillTertiary\n },\n [`${token.componentCls}-filled:not(:focus):not(:focus-within)`]: {\n '&:not(:first-child)': {\n borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n },\n '&:not(:last-child)': {\n borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n }\n }\n }\n }, genFilledGroupStatusStyle(token, {\n status: 'error',\n addonBg: token.colorErrorBg,\n addonColor: token.colorErrorText\n })), genFilledGroupStatusStyle(token, {\n status: 'warning',\n addonBg: token.colorWarningBg,\n addonColor: token.colorWarningText\n })), {\n [`&${token.componentCls}-group-wrapper-disabled`]: {\n [`${token.componentCls}-group`]: {\n '&-addon': {\n background: token.colorFillTertiary,\n color: token.colorTextDisabled\n },\n '&-addon:first-child': {\n borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n },\n '&-addon:last-child': {\n borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n }\n }\n }\n })\n});","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\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 * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import _invert from \"lodash-es/invert\";\nimport _keys from \"lodash-es/keys\";\nexport var positionsMapping = {\n 'top center': 'top',\n 'top left': 'top-start',\n 'top right': 'top-end',\n 'bottom center': 'bottom',\n 'bottom left': 'bottom-start',\n 'bottom right': 'bottom-end',\n 'right center': 'right',\n 'left center': 'left'\n};\nexport var positions = _keys(positionsMapping);\nexport var placementMapping = _invert(positionsMapping);","import _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _memoize from \"lodash-es/memoize\";\nimport _invoke from \"lodash-es/invoke\";\nimport { isRefObject } from '@fluentui/react-component-ref';\n\nvar ReferenceProxy = /*#__PURE__*/function () {\n function ReferenceProxy(refObject) {\n this.ref = refObject;\n }\n\n var _proto = ReferenceProxy.prototype;\n\n _proto.getBoundingClientRect = function getBoundingClientRect() {\n return _invoke(this.ref.current, 'getBoundingClientRect') || {};\n };\n\n _createClass(ReferenceProxy, [{\n key: \"clientWidth\",\n get: function get() {\n return this.getBoundingClientRect().width;\n }\n }, {\n key: \"clientHeight\",\n get: function get() {\n return this.getBoundingClientRect().height;\n }\n }, {\n key: \"parentNode\",\n get: function get() {\n return this.ref.current ? this.ref.current.parentNode : undefined;\n }\n }, {\n key: \"contextElement\",\n get: function get() {\n return this.ref.current;\n }\n }]);\n\n return ReferenceProxy;\n}();\n/**\n * Popper.js does not support ref objects from `createRef()` as referenceElement. If we will pass\n * directly `ref`, `ref.current` will be `null` at the render process. We use memoize to keep the\n * same reference between renders.\n *\n * @see https://popper.js.org/popper-documentation.html#referenceObject\n */\n\n\nvar createReferenceProxy = _memoize(function (reference) {\n return new ReferenceProxy(isRefObject(reference) ? reference : {\n current: reference\n });\n});\n\nexport default createReferenceProxy;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, createShorthandFactory, customPropTypes, getElementType, getUnhandledProps } from '../../lib';\n/**\n * A PopupContent displays the content body of a Popover.\n */\n\nexport default function PopupContent(props) {\n var children = props.children,\n className = props.className,\n content = props.content;\n var classes = cx('content', className);\n var rest = getUnhandledProps(PopupContent, props);\n var ElementType = getElementType(PopupContent, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\nPopupContent.handledProps = [\"as\", \"children\", \"className\", \"content\"];\nPopupContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** The content of the Popup */\n children: PropTypes.node,\n\n /** Classes to add to the Popup content className. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand\n} : {};\nPopupContent.create = createShorthandFactory(PopupContent, function (children) {\n return {\n children: children\n };\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, createShorthandFactory, customPropTypes, getElementType, getUnhandledProps } from '../../lib';\n/**\n * A PopupHeader displays a header in a Popover.\n */\n\nexport default function PopupHeader(props) {\n var children = props.children,\n className = props.className,\n content = props.content;\n var classes = cx('header', className);\n var rest = getUnhandledProps(PopupHeader, props);\n var ElementType = getElementType(PopupHeader, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\nPopupHeader.handledProps = [\"as\", \"children\", \"className\", \"content\"];\nPopupHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand\n} : {};\nPopupHeader.create = createShorthandFactory(PopupHeader, function (children) {\n return {\n children: children\n };\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _without from \"lodash-es/without\";\nimport _isNil from \"lodash-es/isNil\";\nimport _isUndefined from \"lodash-es/isUndefined\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isElement from \"lodash-es/isElement\";\nimport _isArray from \"lodash-es/isArray\";\nimport _pick from \"lodash-es/pick\";\nimport _includes from \"lodash-es/includes\";\nimport _reduce from \"lodash-es/reduce\";\nimport EventStack from '@semantic-ui-react/event-stack';\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { Popper } from 'react-popper';\nimport shallowEqual from 'shallowequal';\nimport { eventStack, childrenUtils, createHTMLDivision, customPropTypes, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey } from '../../lib';\nimport Portal from '../../addons/Portal';\nimport { placementMapping, positions, positionsMapping } from './lib/positions';\nimport createReferenceProxy from './lib/createReferenceProxy';\nimport PopupContent from './PopupContent';\nimport PopupHeader from './PopupHeader';\n\n/**\n * A Popup displays additional information on top of a page.\n */\nvar Popup = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Popup, _Component);\n\n function Popup() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {};\n _this.open = false;\n _this.zIndexWasSynced = false;\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.elementRef = /*#__PURE__*/React.createRef();\n\n _this.getPortalProps = function () {\n var portalProps = {};\n var _this$props = _this.props,\n on = _this$props.on,\n hoverable = _this$props.hoverable;\n var normalizedOn = _isArray(on) ? on : [on];\n\n if (hoverable) {\n portalProps.closeOnPortalMouseLeave = true;\n portalProps.mouseLeaveDelay = 300;\n }\n\n if (_includes(normalizedOn, 'hover')) {\n portalProps.openOnTriggerClick = false;\n portalProps.closeOnTriggerClick = false;\n portalProps.openOnTriggerMouseEnter = true;\n portalProps.closeOnTriggerMouseLeave = true; // Taken from SUI: https://git.io/vPmCm\n\n portalProps.mouseLeaveDelay = 70;\n portalProps.mouseEnterDelay = 50;\n }\n\n if (_includes(normalizedOn, 'click')) {\n portalProps.openOnTriggerClick = true;\n portalProps.closeOnTriggerClick = true;\n portalProps.closeOnDocumentClick = true;\n }\n\n if (_includes(normalizedOn, 'focus')) {\n portalProps.openOnTriggerFocus = true;\n portalProps.closeOnTriggerBlur = true;\n }\n\n return portalProps;\n };\n\n _this.hideOnScroll = function (e) {\n // Do not hide the popup when scroll comes from inside the popup\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4305\n if (_isElement(e.target) && _this.elementRef.current.contains(e.target)) {\n return;\n }\n\n _this.setState({\n closed: true\n });\n\n eventStack.unsub('scroll', _this.hideOnScroll, {\n target: window\n });\n _this.timeoutId = setTimeout(function () {\n _this.setState({\n closed: false\n });\n }, 50);\n\n _this.handleClose(e);\n };\n\n _this.handleClose = function (e) {\n _invoke(_this.props, 'onClose', e, _extends({}, _this.props, {\n open: false\n }));\n };\n\n _this.handleOpen = function (e) {\n _invoke(_this.props, 'onOpen', e, _extends({}, _this.props, {\n open: true\n }));\n };\n\n _this.handlePortalMount = function (e) {\n _invoke(_this.props, 'onMount', e, _this.props);\n };\n\n _this.handlePortalUnmount = function (e) {\n _this.positionUpdate = null;\n\n _invoke(_this.props, 'onUnmount', e, _this.props);\n };\n\n _this.renderContent = function (_ref) {\n var popperPlacement = _ref.placement,\n popperRef = _ref.ref,\n update = _ref.update,\n popperStyle = _ref.style;\n var _this$props2 = _this.props,\n basic = _this$props2.basic,\n children = _this$props2.children,\n className = _this$props2.className,\n content = _this$props2.content,\n hideOnScroll = _this$props2.hideOnScroll,\n flowing = _this$props2.flowing,\n header = _this$props2.header,\n inverted = _this$props2.inverted,\n popper = _this$props2.popper,\n size = _this$props2.size,\n style = _this$props2.style,\n wide = _this$props2.wide;\n var contentRestProps = _this.state.contentRestProps;\n _this.positionUpdate = update;\n var classes = cx('ui', placementMapping[popperPlacement], size, useKeyOrValueAndKey(wide, 'wide'), useKeyOnly(basic, 'basic'), useKeyOnly(flowing, 'flowing'), useKeyOnly(inverted, 'inverted'), 'popup transition visible', className);\n var ElementType = getElementType(Popup, _this.props);\n\n var styles = _extends({\n // Heads up! We need default styles to get working correctly `flowing`\n left: 'auto',\n right: 'auto',\n // This is required to be properly positioned inside wrapping `div`\n position: 'initial'\n }, style);\n\n var innerElement = /*#__PURE__*/React.createElement(ElementType, _extends({}, contentRestProps, {\n className: classes,\n style: styles,\n ref: _this.elementRef\n }), childrenUtils.isNil(children) ? /*#__PURE__*/React.createElement(React.Fragment, null, PopupHeader.create(header, {\n autoGenerateKey: false\n }), PopupContent.create(content, {\n autoGenerateKey: false\n })) : children, hideOnScroll && /*#__PURE__*/React.createElement(EventStack, {\n on: _this.hideOnScroll,\n name: \"scroll\",\n target: \"window\"\n })); // https://github.com/popperjs/popper-core/blob/f1f9d1ab75b6b0e962f90a5b2a50f6cfd307d794/src/createPopper.js#L136-L137\n // Heads up!\n // A wrapping `div` there is a pure magic, it's required as Popper warns on margins that are\n // defined by SUI CSS. It also means that this `div` will be positioned instead of `content`.\n\n return createHTMLDivision(popper || {}, {\n overrideProps: {\n children: innerElement,\n ref: popperRef,\n style: _extends({\n // Fixes layout for floated elements\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4092\n display: 'flex'\n }, popperStyle)\n }\n });\n };\n\n return _this;\n }\n\n Popup.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (state.closed || state.disabled) return {};\n var unhandledProps = getUnhandledProps(Popup, props);\n\n var contentRestProps = _reduce(unhandledProps, function (acc, val, key) {\n if (!_includes(Portal.handledProps, key)) acc[key] = val;\n return acc;\n }, {});\n\n var portalRestProps = _pick(unhandledProps, Portal.handledProps);\n\n return {\n contentRestProps: contentRestProps,\n portalRestProps: portalRestProps\n };\n };\n\n var _proto = Popup.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var depsEqual = shallowEqual(this.props.popperDependencies, prevProps.popperDependencies);\n\n if (!depsEqual) {\n this.handleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n clearTimeout(this.timeoutId);\n };\n\n _proto.handleUpdate = function handleUpdate() {\n if (this.positionUpdate) this.positionUpdate();\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n context = _this$props3.context,\n disabled = _this$props3.disabled,\n eventsEnabled = _this$props3.eventsEnabled,\n offset = _this$props3.offset,\n pinned = _this$props3.pinned,\n popper = _this$props3.popper,\n popperModifiers = _this$props3.popperModifiers,\n position = _this$props3.position,\n positionFixed = _this$props3.positionFixed,\n trigger = _this$props3.trigger;\n var _this$state = this.state,\n closed = _this$state.closed,\n portalRestProps = _this$state.portalRestProps;\n\n if (closed || disabled) {\n return trigger;\n }\n\n var modifiers = [{\n name: 'arrow',\n enabled: false\n }, {\n name: 'eventListeners',\n options: {\n scroll: !!eventsEnabled,\n resize: !!eventsEnabled\n }\n }, {\n name: 'flip',\n enabled: !pinned\n }, {\n name: 'preventOverflow',\n enabled: !!offset\n }, {\n name: 'offset',\n enabled: !!offset,\n options: {\n offset: offset\n }\n }].concat(popperModifiers, [// We are syncing zIndex from `.ui.popup.content` to avoid layering issues as in SUIR we are using an additional\n // `div` for Popper.js\n // https://github.com/Semantic-Org/Semantic-UI-React/issues/4083\n {\n name: 'syncZIndex',\n enabled: true,\n phase: 'beforeRead',\n fn: function fn(_ref2) {\n var _popper$style;\n\n var state = _ref2.state;\n\n if (_this2.zIndexWasSynced) {\n return;\n } // if zIndex defined in <Popup popper={{ style: {} }} /> there is no sense to override it\n\n\n var definedZIndex = popper == null ? void 0 : (_popper$style = popper.style) == null ? void 0 : _popper$style.zIndex;\n\n if (_isUndefined(definedZIndex)) {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.zIndex = window.getComputedStyle(state.elements.popper.firstChild).zIndex;\n }\n\n _this2.zIndexWasSynced = true;\n },\n effect: function effect() {\n return function () {\n _this2.zIndexWasSynced = false;\n };\n }\n }]);\n var referenceElement = createReferenceProxy(_isNil(context) ? this.triggerRef : context);\n\n var mergedPortalProps = _extends({}, this.getPortalProps(), portalRestProps);\n\n return /*#__PURE__*/React.createElement(Portal, _extends({}, mergedPortalProps, {\n onClose: this.handleClose,\n onMount: this.handlePortalMount,\n onOpen: this.handleOpen,\n onUnmount: this.handlePortalUnmount,\n trigger: trigger,\n triggerRef: this.triggerRef\n }), /*#__PURE__*/React.createElement(Popper, {\n modifiers: modifiers,\n placement: positionsMapping[position],\n strategy: positionFixed ? 'fixed' : null,\n referenceElement: referenceElement\n }, this.renderContent));\n };\n\n return Popup;\n}(Component);\n\nPopup.handledProps = [\"as\", \"basic\", \"children\", \"className\", \"content\", \"context\", \"disabled\", \"eventsEnabled\", \"flowing\", \"header\", \"hideOnScroll\", \"hoverable\", \"inverted\", \"offset\", \"on\", \"onClose\", \"onMount\", \"onOpen\", \"onUnmount\", \"pinned\", \"popper\", \"popperDependencies\", \"popperModifiers\", \"position\", \"positionFixed\", \"size\", \"style\", \"trigger\", \"wide\"];\nexport { Popup as default };\nPopup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Display the popup without the pointing arrow. */\n basic: PropTypes.bool,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Simple text content for the popover. */\n content: customPropTypes.itemShorthand,\n\n /** Existing element the pop-up should be bound to. */\n context: PropTypes.oneOfType([PropTypes.object, customPropTypes.refObject]),\n\n /** A disabled popup only renders its trigger. */\n disabled: PropTypes.bool,\n\n /** Enables the Popper.js event listeners. */\n eventsEnabled: PropTypes.bool,\n\n /** A flowing Popup has no maximum width and continues to flow to fit its content. */\n flowing: PropTypes.bool,\n\n /** Takes up the entire width of its offset container. */\n // TODO: implement the Popup fluid layout\n // fluid: PropTypes.bool,\n\n /** Header displayed above the content in bold. */\n header: customPropTypes.itemShorthand,\n\n /** Hide the Popup when scrolling the window. */\n hideOnScroll: PropTypes.bool,\n\n /** Whether the popup should not close on hover. */\n hoverable: PropTypes.bool,\n\n /** Invert the colors of the Popup. */\n inverted: PropTypes.bool,\n\n /**\n * Offset values in px unit to apply to rendered popup. The basic offset accepts an\n * array with two numbers in the form [skidding, distance]:\n * - `skidding` displaces the Popup along the reference element\n * - `distance` displaces the Popup away from, or toward, the reference element in the direction of its placement. A positive number displaces it further away, while a negative number lets it overlap the reference.\n *\n * @see https://popper.js.org/docs/v2/modifiers/offset/\n */\n offset: PropTypes.oneOfType([PropTypes.func, PropTypes.arrayOf(PropTypes.number)]),\n\n /** Events triggering the popup. */\n on: PropTypes.oneOfType([PropTypes.oneOf(['hover', 'click', 'focus']), PropTypes.arrayOf(PropTypes.oneOf(['hover', 'click', 'focus']))]),\n\n /**\n * Called when a close event happens.\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onClose: PropTypes.func,\n\n /**\n * Called when the portal is mounted on the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when an open event happens.\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onOpen: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func,\n\n /** Disables automatic repositioning of the component, it will always be placed according to the position value. */\n pinned: PropTypes.bool,\n\n /** Position for the popover. */\n position: PropTypes.oneOf(positions),\n\n /** Tells `Popper.js` to use the `position: fixed` strategy to position the popover. */\n positionFixed: PropTypes.bool,\n\n /** A wrapping element for an actual content that will be used for positioning. */\n popper: customPropTypes.itemShorthand,\n\n /** An array containing custom settings for the Popper.js modifiers. */\n popperModifiers: PropTypes.array,\n\n /** A popup can have dependencies which update will schedule a position update. */\n popperDependencies: PropTypes.array,\n\n /** Popup size. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium', 'big', 'massive')),\n\n /** Custom Popup style. */\n style: PropTypes.object,\n\n /** Element to be rendered in-place where the popup is defined. */\n trigger: PropTypes.node,\n\n /** Popup width. */\n wide: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])])\n} : {};\nPopup.defaultProps = {\n disabled: false,\n eventsEnabled: true,\n on: ['click', 'hover'],\n pinned: false,\n popperModifiers: [],\n position: 'top left'\n};\nPopup.Content = PopupContent;\nPopup.Header = PopupHeader;","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\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 DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('<body>');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import { createSelector } from 'reselect';\nimport { fromJS } from 'immutable';\nimport { initialStateObject } from 'routes/AppContainer/reducer';\nimport { getWindowLocation } from 'utils/window';\n// THIS IS TEMP AS WE CONVERT THINGS OVER\n\n/**\n * Direct selector to the login state domain\n *\n * @returns {function} Function that returns the app state\n */\nconst selectGlobal = () => (state) => state.get('global');\nconst selectApp = () => (state) =>\n state.getIn(['app'], fromJS(initialStateObject));\nconst selectRoute = () => (state) => state.get('route');\nconst selectIsLoginComplete = () => (state) =>\n state.getIn(['app', 'loginComplete'], false);\nconst selectCurrentOrgName = () => (state) =>\n state.getIn(['app', 'currentOrgName']);\n\nconst selectCurrentOrgParentId = () => (state) =>\n state.getIn(['app', 'currentOrgParentId']);\n\n/**\n * Other specific selectors\n */\n\nconst selectOrgUserImageUrl = () =>\n createSelector(selectApp(), (substate) => {\n const image = substate.get('currentOrgUserImageUrl');\n if (image) {\n return image.getIn(['picture', 'url']).replace('original', '192');\n }\n return null;\n });\n\n// @TODO - this selector can be used in a bunch of the below ones,\n// but should be tested first.\nconst selectCurrentIdentityInfo = () =>\n createSelector(selectApp(), (substate) =>\n substate.get('currentIdentityInfo'),\n );\n\n// For authed routes, we first look at the identity language and set the language to that.\n// If that is not set, we then fallback to the local storage setting.\n// If that is not set, then we fallback to the browser locale.\nexport const selectCurrentIdentityLanguage = () =>\n createSelector(selectApp(), (substate) => {\n const info = substate.get('currentIdentityInfo');\n const identityLanguage = info ? info.get('language') : null;\n const localStorageLanguage = localStorage.getItem('i18nextLng');\n const browserLanguage = navigator.language || navigator.userLanguage;\n const defaultLanguage = 'en';\n\n return (\n identityLanguage ||\n localStorageLanguage ||\n browserLanguage ||\n defaultLanguage\n );\n });\n\nconst selectIdentityInitials = () =>\n createSelector(selectApp(), (substate) => {\n const info = substate.get('currentIdentityInfo');\n if (info && info.get('firstName') && info.get('lastName')) {\n return `${info.get('firstName')[0]}${info.get('lastName')[0]}`;\n }\n return 'OP';\n });\n\nconst selectIdentityName = () =>\n createSelector(selectApp(), (substate) => {\n const info = substate.get('currentIdentityInfo');\n if (info && info.get('firstName')) {\n return `${info.get('firstName')} ${info.get('lastName')}`;\n }\n return null;\n });\n\nconst selectIdentityEmail = () =>\n createSelector(selectApp(), (substate) => {\n const info = substate.get('currentIdentityInfo');\n if (info) {\n return info.get('email');\n }\n return null;\n });\n\nconst selectRefreshRequired = () =>\n createSelector(selectApp(), (substate) => substate.get('forceRefresh'));\n\nconst selectMaintenanceMode = () =>\n createSelector(selectApp(), (substate) => substate.get('maintenanceMode'));\n\nconst selectDisabledRoutes = () =>\n createSelector(selectApp(), (substate) => substate.get('disabledRoutes'));\n\nconst selectAlertStack = () =>\n createSelector(selectApp(), (substate) => substate.get('alertStack'));\n\nconst selectLoading = () =>\n createSelector(selectApp(), (substate) => substate.get('loading'));\n\nconst selectOrgDropDownVisibility = () =>\n createSelector(selectApp(), (substate) => substate.get('orgDropDownVisible'));\n\nconst selectLockdownDropDownVisibility = () =>\n createSelector(selectApp(), (substate) =>\n substate.get('lockdownDropDownVisible'),\n );\n\nconst selectTabLoading = () =>\n createSelector(selectApp(), (substate) => substate.get('tabLoading'));\n\nconst selectError = () =>\n createSelector(selectApp(), (substate) => substate.get('error'));\n\nconst selectCurrentIdentityId = () =>\n createSelector(selectApp(), (substate) => substate.get('currentIdentity'));\n\n// const selectNextPathname = () => createSelector(\n// selectRoute(),\n// substate => null\n//\n// // if (substate.get('locationBeforeTransitions'))\n// // if (substate.get('locationBeforeTransitions').get('state'))\n// // return substate.get('locationBeforeTransitions').get('state').get('nextPathname')\n// // return null}\n// )\n\nconst selectInviteToken = () => () => {\n const param = getWindowLocation()\n .search.replace('?', '')\n .split('&')\n .find((p) => p.split('=')[0] === 'inviteToken');\n return param ? param.split('=')[1] : null;\n};\n\n// selectLocationState expects a plain JS object for the routing state\nconst selectLocationState = () => {\n let prevRoutingState;\n let prevRoutingStateJS;\n\n return (state) => {\n const routingState = state.get('route'); // or state.route\n\n if (!routingState.equals(prevRoutingState)) {\n prevRoutingState = routingState;\n prevRoutingStateJS = routingState.toJS();\n }\n\n return prevRoutingStateJS;\n };\n};\n\nconst selectErrorPageMessage = () =>\n createSelector(selectApp(), (substate) => substate.get('errorMessage'));\n\nconst selectErrorPageCallToAction = () =>\n createSelector(selectApp(), (substate) => substate.get('errorCta'));\n\nconst selectOrgIsLicenseBased = () =>\n createSelector(selectApp(), (substate) => substate.get('isLicenseBased'));\n\nexport const selectConfirmationProps = () =>\n createSelector(selectApp(), (substate) => substate.get('confirmationProps'));\n\nexport const selectIntercomNotificationsAreEnabled = () =>\n createSelector(selectApp(), (app) =>\n app.get('intercomNotificationsAreEnabled'),\n );\n\nexport const selectCurrentUserPreferences = () =>\n createSelector(selectApp(), (app) => app.get('currentUserPreferences'));\n\nexport const selectVideoTimestampPreference = () =>\n createSelector(selectCurrentUserPreferences(), (currentUserPreferences) =>\n currentUserPreferences.get('videoTimestamp'),\n );\n\nexport const selectPreferredMeasurementUnitsPreference = () =>\n createSelector(selectCurrentUserPreferences(), (currentUserPreferences) =>\n currentUserPreferences.get('preferredMeasurementUnits'),\n );\n\nexport const selectPlayAlarmNotificationSoundPreference = () =>\n createSelector(selectCurrentUserPreferences(), (currentUserPreferences) =>\n currentUserPreferences.get('playAlarmNotificationSound'),\n );\n\nexport const selectAlarmNotificationSoundVolumePreference = () =>\n createSelector(selectCurrentUserPreferences(), (currentUserPreferences) =>\n currentUserPreferences.get('alarmNotificationSoundVolume'),\n );\n\nexport const selectPrefetchedVideocallAuthForDevices = () =>\n createSelector(selectApp(), (app) =>\n app.get('prefetchedVideocallAuthForDevices'),\n );\n\nexport {\n selectOrgIsLicenseBased,\n selectIsLoginComplete,\n selectCurrentOrgName,\n selectGlobal,\n selectApp,\n selectLoading,\n selectTabLoading,\n selectError,\n selectCurrentIdentityId,\n selectLocationState,\n selectInviteToken,\n selectOrgDropDownVisibility,\n selectLockdownDropDownVisibility,\n selectAlertStack,\n selectMaintenanceMode,\n selectDisabledRoutes,\n selectErrorPageMessage,\n selectRefreshRequired,\n selectRoute,\n selectCurrentOrgParentId,\n selectOrgUserImageUrl,\n selectIdentityInitials,\n selectIdentityName,\n selectIdentityEmail,\n selectCurrentIdentityInfo,\n selectErrorPageCallToAction,\n};\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","import React from 'react';\nconst GroupContext = /*#__PURE__*/React.createContext(null);\nexport default GroupContext;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemInputContext } from '../form/context';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nconst InternalCheckbox = (props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n indeterminate = false,\n style,\n onMouseEnter,\n onMouseLeave,\n skipGroup = false,\n disabled\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n const {\n getPrefixCls,\n direction,\n checkbox\n } = React.useContext(ConfigContext);\n const checkboxGroup = React.useContext(GroupContext);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n const contextDisabled = React.useContext(DisabledContext);\n const mergedDisabled = (_a = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _a !== void 0 ? _a : contextDisabled;\n const prevValue = React.useRef(restProps.value);\n const checkboxRef = React.useRef(null);\n const mergedRef = composeRef(ref, checkboxRef);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Checkbox');\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'usage', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }\n React.useEffect(() => {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n }, []);\n React.useEffect(() => {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return () => checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n }, [restProps.value]);\n React.useEffect(() => {\n var _a;\n if ((_a = checkboxRef.current) === null || _a === void 0 ? void 0 : _a.input) {\n checkboxRef.current.input.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const checkboxProps = Object.assign({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n const classString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-checked`]: checkboxProps.checked,\n [`${prefixCls}-wrapper-disabled`]: mergedDisabled,\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput\n }, checkbox === null || checkbox === void 0 ? void 0 : checkbox.className, className, rootClassName, cssVarCls, rootCls, hashId);\n const checkboxClass = classNames({\n [`${prefixCls}-indeterminate`]: indeterminate\n }, TARGET_CLS, hashId);\n return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n component: \"Checkbox\",\n disabled: mergedDisabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: classString,\n style: Object.assign(Object.assign({}, checkbox === null || checkbox === void 0 ? void 0 : checkbox.style), style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: mergedRef\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))));\n};\nconst Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Checkbox from './Checkbox';\nimport GroupContext from './GroupContext';\nimport useStyle from './style';\nconst CheckboxGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n defaultValue,\n children,\n options = [],\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n onChange\n } = props,\n restProps = __rest(props, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"rootClassName\", \"style\", \"onChange\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [value, setValue] = React.useState(restProps.value || defaultValue || []);\n const [registeredValues, setRegisteredValues] = React.useState([]);\n React.useEffect(() => {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n const memoOptions = React.useMemo(() => options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n }), [options]);\n const cancelValue = val => {\n setRegisteredValues(prevValues => prevValues.filter(v => v !== val));\n };\n const registerValue = val => {\n setRegisteredValues(prevValues => [].concat(_toConsumableArray(prevValues), [val]));\n };\n const toggleOption = option => {\n const optionIndex = value.indexOf(option.value);\n const newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(val => registeredValues.includes(val)).sort((a, b) => {\n const indexA = memoOptions.findIndex(opt => opt.value === a);\n const indexB = memoOptions.findIndex(opt => opt.value === b);\n return indexA - indexB;\n }));\n };\n const prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const domProps = omit(restProps, ['value', 'disabled']);\n const childrenNode = options.length ? memoOptions.map(option => (/*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: `${groupPrefixCls}-item`,\n style: option.style,\n title: option.title,\n id: option.id,\n required: option.required\n }, option.label))) : children;\n const context = {\n toggleOption,\n value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue,\n cancelValue\n };\n const classString = classNames(groupPrefixCls, {\n [`${groupPrefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, cssVarCls, rootCls, hashId);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, childrenNode)));\n});\nexport { GroupContext };\nexport default CheckboxGroup;","\"use client\";\n\nimport InternalCheckbox from './Checkbox';\nimport Group from './Group';\nconst Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","const REACT_RENDER_OP = 'ui.react.render';\n\nconst REACT_UPDATE_OP = 'ui.react.update';\n\nconst REACT_MOUNT_OP = 'ui.react.mount';\n\nexport { REACT_MOUNT_OP, REACT_RENDER_OP, REACT_UPDATE_OP };\n//# sourceMappingURL=constants.js.map\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","module.exports = __webpack_public_path__ + \"843c762c24f7fac628d8c62519a7b308.js\";","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-item.no-form-item-margin-bottom{margin-bottom:0 !important}.op-form-item .ant-form-item-control-input-content{line-height:inherit}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormItem/OpFormItem.scss\"],\"names\":[],\"mappings\":\"AACE,yCACE,0BAAA,CAGF,mDACE,mBAAA\",\"sourcesContent\":[\".op-form-item {\\n &.no-form-item-margin-bottom {\\n margin-bottom: 0 !important;\\n }\\n\\n .ant-form-item-control-input-content {\\n line-height: inherit;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","import { generatePropagationContext, isPlainObject, dateTimestampInSeconds, uuid4, logger } from '@sentry/utils';\nimport { updateSession } from './session.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n// NOTE: By exporting this here as const & type, instead of doing `export class`,\n// We can get the correct class when importing from `@sentry/core`, but the original type (from `@sentry/types`)\n// This is helpful for interop, e.g. when doing `import type { Scope } from '@sentry/node';` (which re-exports this)\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","import { unit } from '@ant-design/cssinjs';\nimport { genRoundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffsetToken(options) {\n const {\n contentRadius,\n limitVerticalRadius\n } = options;\n const arrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n const arrowOffsetVertical = limitVerticalRadius ? MAX_VERTICAL_CONTENT_RADIUS : arrowOffset;\n return {\n arrowOffsetHorizontal: arrowOffset,\n arrowOffsetVertical\n };\n}\nfunction isInject(valid, code) {\n if (!valid) {\n return {};\n }\n return code;\n}\nexport default function getArrowStyle(token, colorBg, options) {\n const {\n componentCls,\n boxShadowPopoverArrow,\n arrowOffsetVertical,\n arrowOffsetHorizontal\n } = token;\n const {\n arrowDistance = 0,\n arrowPlacement = {\n left: true,\n right: true,\n top: true,\n bottom: true\n }\n } = options || {};\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, genRoundedArrow(token, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })]\n }, isInject(!!arrowPlacement.top, {\n [[`&-placement-top > ${componentCls}-arrow`, `&-placement-topLeft > ${componentCls}-arrow`, `&-placement-topRight > ${componentCls}-arrow`].join(',')]: {\n bottom: arrowDistance,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n '&-placement-topLeft': {\n '--arrow-offset-horizontal': arrowOffsetHorizontal,\n [`> ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: arrowOffsetHorizontal\n }\n }\n },\n '&-placement-topRight': {\n '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n [`> ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: arrowOffsetHorizontal\n }\n }\n }\n })), isInject(!!arrowPlacement.bottom, {\n [[`&-placement-bottom > ${componentCls}-arrow`, `&-placement-bottomLeft > ${componentCls}-arrow`, `&-placement-bottomRight > ${componentCls}-arrow`].join(',')]: {\n top: arrowDistance,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom > ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n '&-placement-bottomLeft': {\n '--arrow-offset-horizontal': arrowOffsetHorizontal,\n [`> ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: arrowOffsetHorizontal\n }\n }\n },\n '&-placement-bottomRight': {\n '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n [`> ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: arrowOffsetHorizontal\n }\n }\n }\n })), isInject(!!arrowPlacement.left, {\n [[`&-placement-left > ${componentCls}-arrow`, `&-placement-leftTop > ${componentCls}-arrow`, `&-placement-leftBottom > ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left > ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop > ${componentCls}-arrow`]: {\n top: arrowOffsetVertical\n },\n [`&-placement-leftBottom > ${componentCls}-arrow`]: {\n bottom: arrowOffsetVertical\n }\n })), isInject(!!arrowPlacement.right, {\n [[`&-placement-right > ${componentCls}-arrow`, `&-placement-rightTop > ${componentCls}-arrow`, `&-placement-rightBottom > ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right > ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop > ${componentCls}-arrow`]: {\n top: arrowOffsetVertical\n },\n [`&-placement-rightBottom > ${componentCls}-arrow`]: {\n bottom: arrowOffsetVertical\n }\n }))\n };\n}","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _UndoOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/UndoOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar UndoOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _UndoOutlined.default\n }));\n};\n/**![undo](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMS40IDEyNEMyOTAuNSAxMjQuMyAxMTIgMzAzIDExMiA1MjMuOWMwIDEyOCA2MC4yIDI0MiAxNTMuOCAzMTUuMmwtMzcuNSA0OGMtNC4xIDUuMy0uMyAxMyA2LjMgMTIuOWwxNjctLjhjNS4yIDAgOS00LjkgNy43LTkuOUwzNjkuOCA3MjdhOCA4IDAgMDAtMTQuMS0zTDMxNSA3NzYuMWMtMTAuMi04LTIwLTE2LjctMjkuMy0yNmEzMTguNjQgMzE4LjY0IDAgMDEtNjguNi0xMDEuN0MyMDAuNCA2MDkgMTkyIDU2Ny4xIDE5MiA1MjMuOXM4LjQtODUuMSAyNS4xLTEyNC41YzE2LjEtMzguMSAzOS4yLTcyLjMgNjguNi0xMDEuNyAyOS40LTI5LjQgNjMuNi01Mi41IDEwMS43LTY4LjZDNDI2LjkgMjEyLjQgNDY4LjggMjA0IDUxMiAyMDRzODUuMSA4LjQgMTI0LjUgMjUuMWMzOC4xIDE2LjEgNzIuMyAzOS4yIDEwMS43IDY4LjYgMjkuNCAyOS40IDUyLjUgNjMuNiA2OC42IDEwMS43IDE2LjcgMzkuNCAyNS4xIDgxLjMgMjUuMSAxMjQuNXMtOC40IDg1LjEtMjUuMSAxMjQuNWEzMTguNjQgMzE4LjY0IDAgMDEtNjguNiAxMDEuN2MtNy41IDcuNS0xNS4zIDE0LjUtMjMuNCAyMS4yYTcuOTMgNy45MyAwIDAwLTEuMiAxMS4xbDM5LjQgNTAuNWMyLjggMy41IDcuOSA0LjEgMTEuNCAxLjNDODU0LjUgNzYwLjggOTEyIDY0OS4xIDkxMiA1MjMuOWMwLTIyMS4xLTE3OS40LTQwMC4yLTQwMC42LTM5OS45eiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(UndoOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"UndoOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"52fd09d1713345d9ee64dc7daea9fd6f.js\";","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","module.exports = __webpack_public_path__ + \"e00b330413304d60c26e164da7f9fe0c.js\";","export const REQUEST_ORG_FEATURES = 'orgFeatures/REQUEST_ORG_FEATURES';\nexport const SET_ORG_FEATURES = 'orgFeatures/SET_ORG_FEATURES';\n\nexport const GRANULAR_PERMISSIONS_FEATURE_ID = 27;\nexport const BADGE_PRINTING_FEATURE_ID = 60;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","import { getGlobalSingleton, timestampInSeconds, logger } from '@sentry/utils';\nimport { getClient } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport '../tracing/errors.js';\nimport { getActiveSpan, getRootSpan, spanToJSON } from '../utils/spanUtils.js';\nimport { startSpanManual } from '../tracing/trace.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { COUNTER_METRIC_TYPE, DISTRIBUTION_METRIC_TYPE, SET_METRIC_TYPE, GAUGE_METRIC_TYPE } from './constants.js';\n\n/**\n * Gets the metrics aggregator for a given client.\n * @param client The client for which to get the metrics aggregator.\n * @param Aggregator Optional metrics aggregator class to use to create an aggregator if one does not exist.\n */\nfunction getMetricsAggregatorForClient(\n client,\n Aggregator,\n) {\n const globalMetricsAggregators = getGlobalSingleton(\n 'globalMetricsAggregators',\n () => new WeakMap(),\n );\n\n const aggregator = globalMetricsAggregators.get(client);\n if (aggregator) {\n return aggregator;\n }\n\n const newAggregator = new Aggregator(client);\n client.on('flush', () => newAggregator.flush());\n client.on('close', () => newAggregator.close());\n globalMetricsAggregators.set(client, newAggregator);\n\n return newAggregator;\n}\n\nfunction addToMetricsAggregator(\n Aggregator,\n metricType,\n name,\n value,\n data = {},\n) {\n const client = data.client || getClient();\n\n if (!client) {\n return;\n }\n\n const span = getActiveSpan();\n const rootSpan = span ? getRootSpan(span) : undefined;\n const transactionName = rootSpan && spanToJSON(rootSpan).description;\n\n const { unit, tags, timestamp } = data;\n const { release, environment } = client.getOptions();\n const metricTags = {};\n if (release) {\n metricTags.release = release;\n }\n if (environment) {\n metricTags.environment = environment;\n }\n if (transactionName) {\n metricTags.transaction = transactionName;\n }\n\n DEBUG_BUILD && logger.log(`Adding value of ${value} to ${metricType} metric ${name}`);\n\n const aggregator = getMetricsAggregatorForClient(client, Aggregator);\n aggregator.add(metricType, name, value, unit, { ...metricTags, ...tags }, timestamp);\n}\n\n/**\n * Adds a value to a counter metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nfunction increment(aggregator, name, value = 1, data) {\n addToMetricsAggregator(aggregator, COUNTER_METRIC_TYPE, name, ensureNumber(value), data);\n}\n\n/**\n * Adds a value to a distribution metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nfunction distribution(aggregator, name, value, data) {\n addToMetricsAggregator(aggregator, DISTRIBUTION_METRIC_TYPE, name, ensureNumber(value), data);\n}\n\n/**\n * Adds a timing metric.\n * The metric is added as a distribution metric.\n *\n * You can either directly capture a numeric `value`, or wrap a callback function in `timing`.\n * In the latter case, the duration of the callback execution will be captured as a span & a metric.\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nfunction timing(\n aggregator,\n name,\n value,\n unit = 'second',\n data,\n) {\n // callback form\n if (typeof value === 'function') {\n const startTime = timestampInSeconds();\n\n return startSpanManual(\n {\n op: 'metrics.timing',\n name,\n startTime,\n onlyIfParent: true,\n },\n span => {\n return handleCallbackErrors(\n () => value(),\n () => {\n // no special error handling necessary\n },\n () => {\n const endTime = timestampInSeconds();\n const timeDiff = endTime - startTime;\n distribution(aggregator, name, timeDiff, { ...data, unit: 'second' });\n span.end(endTime);\n },\n );\n },\n );\n }\n\n // value form\n distribution(aggregator, name, value, { ...data, unit });\n}\n\n/**\n * Adds a value to a set metric. Value must be a string or integer.\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nfunction set(aggregator, name, value, data) {\n addToMetricsAggregator(aggregator, SET_METRIC_TYPE, name, value, data);\n}\n\n/**\n * Adds a value to a gauge metric\n *\n * @experimental This API is experimental and might have breaking changes in the future.\n */\nfunction gauge(aggregator, name, value, data) {\n addToMetricsAggregator(aggregator, GAUGE_METRIC_TYPE, name, ensureNumber(value), data);\n}\n\nconst metrics = {\n increment,\n distribution,\n set,\n gauge,\n timing,\n /**\n * @ignore This is for internal use only.\n */\n getMetricsAggregatorForClient,\n};\n\n// Although this is typed to be a number, we try to handle strings as well here\nfunction ensureNumber(number) {\n return typeof number === 'string' ? parseInt(number) : number;\n}\n\nexport { metrics };\n//# sourceMappingURL=exports.js.map\n","import { fromJS } from 'immutable';\n\nimport {\n LOADING,\n LIST,\n OPTIONS,\n ADD,\n REMOVE,\n COUNT,\n SET_OMNISELECT_COUNT,\n SET_OMNISELECT_LOADING,\n SET_OMNISELECT_LIST,\n SET_OMNISELECT_OPTIONS,\n ADD_OMNISELECT_ADD,\n ADD_OMNISELECT_REMOVE,\n REMOVE_OMNISELECT_REMOVE,\n REMOVE_OMNISELECT_ADD,\n RESET_OMNISELECT_STATE,\n} from './constants';\n\nconst initialState = fromJS({\n // Loaders\n [LOADING]: true,\n [LIST]: fromJS([]),\n [OPTIONS]: fromJS([]),\n [ADD]: fromJS([]),\n [REMOVE]: fromJS([]),\n [COUNT]: -1,\n});\n\nfunction omniSelectReducer(state = initialState, action) {\n switch (action.type) {\n case SET_OMNISELECT_COUNT:\n return state.set(COUNT, action[COUNT]);\n case SET_OMNISELECT_LOADING:\n return state.set(LOADING, action[LOADING]);\n case SET_OMNISELECT_LIST:\n return state.set(LIST, action[LIST] || fromJS([]));\n case SET_OMNISELECT_OPTIONS:\n return state.set(OPTIONS, action[OPTIONS] || fromJS([]));\n case ADD_OMNISELECT_ADD:\n return state.set(ADD, state.get(ADD).push(fromJS(action[ADD])));\n case ADD_OMNISELECT_REMOVE:\n return state.set(REMOVE, state.get(REMOVE).push(fromJS(action[REMOVE])));\n case REMOVE_OMNISELECT_REMOVE:\n return state.set(\n REMOVE,\n state\n .get(REMOVE)\n .filter((f) => String(f.get('id')) !== String(action[REMOVE].id)),\n );\n case REMOVE_OMNISELECT_ADD:\n return state.set(\n ADD,\n state\n .get(ADD)\n .filter((f) => String(f.get('id')) !== String(action[ADD].id)),\n );\n case RESET_OMNISELECT_STATE:\n return initialState;\n default:\n return state;\n }\n}\n\nexport default omniSelectReducer;\n","module.exports = __webpack_public_path__ + \"852f0ecd7b17e3bfd700a821ff438f7e.js\";","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\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","import KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from \"react\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus,\n overlayRef = _ref.overlayRef;\n var focusMenuRef = React.useRef(false);\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible) {\n var _triggerRef$current, _triggerRef$current$f;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || (_triggerRef$current$f = _triggerRef$current.focus) === null || _triggerRef$current$f === void 0 || _triggerRef$current$f.call(_triggerRef$current);\n onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(false);\n }\n };\n var focusMenu = function focusMenu() {\n var _overlayRef$current;\n if ((_overlayRef$current = overlayRef.current) !== null && _overlayRef$current !== void 0 && _overlayRef$current.focus) {\n overlayRef.current.focus();\n focusMenuRef.current = true;\n return true;\n }\n return false;\n };\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n case TAB:\n {\n var focusResult = false;\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n break;\n }\n }\n };\n React.useEffect(function () {\n if (visible) {\n window.addEventListener(\"keydown\", handleKeyDown);\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n return function () {\n window.removeEventListener(\"keydown\", handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import { composeRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useMemo } from 'react';\nvar Overlay = /*#__PURE__*/forwardRef(function (props, ref) {\n var overlay = props.overlay,\n arrow = props.arrow,\n prefixCls = props.prefixCls;\n var overlayNode = useMemo(function () {\n var overlayElement;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n }, [overlay]);\n var composedRef = composeRef(ref, getNodeRef(overlayNode));\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), /*#__PURE__*/React.cloneElement(overlayNode, {\n ref: supportRef(overlayNode) ? composedRef : undefined\n }));\n});\nexport default Overlay;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\", \"overlay\", \"children\", \"onVisibleChange\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport { composeRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport Overlay from \"./Overlay\";\nimport Placements from \"./placements\";\nfunction Dropdown(props, ref) {\n var _children$props;\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n otherProps = _objectWithoutProperties(props, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n var overlayRef = React.useRef(null);\n var childRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var handleVisibleChange = function handleVisibleChange(newVisible) {\n setTriggerVisible(newVisible);\n onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(newVisible);\n };\n useAccessibility({\n visible: mergedVisible,\n triggerRef: childRef,\n onVisibleChange: handleVisibleChange,\n autoFocus: autoFocus,\n overlayRef: overlayRef\n });\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n var getMenuElement = function getMenuElement() {\n return /*#__PURE__*/React.createElement(Overlay, {\n ref: overlayRef,\n overlay: overlay,\n prefixCls: prefixCls,\n arrow: arrow\n });\n };\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n return getMenuElement();\n };\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n return !alignPoint;\n };\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n if (openClassName !== undefined) {\n return openClassName;\n }\n return \"\".concat(prefixCls, \"-open\");\n };\n var childrenNode = /*#__PURE__*/React.cloneElement(children, {\n className: classNames((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.className, mergedVisible && getOpenClassName()),\n ref: supportRef(children) ? composeRef(childRef, getNodeRef(children)) : undefined\n });\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n builtinPlacements: placements\n }, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction,\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: handleVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), childrenNode);\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from \"./Dropdown\";\nexport default Dropdown;","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nfunction sampleSpan(\n options,\n samplingContext,\n) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n return [false];\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` nor `enableTracing` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n } else {\n // When `enableTracing === true`, we use a sample rate of 100%\n sampleRate = 1;\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n // (The only valid values are booleans or numbers between 0 and 1.)\n const parsedSampleRate = parseSampleRate(sampleRate);\n\n if (parsedSampleRate === undefined) {\n DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n return [false];\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!parsedSampleRate) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n return [false, parsedSampleRate];\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n const shouldSample = Math.random() < parsedSampleRate;\n\n // if we're not going to keep it, we're done\n if (!shouldSample) {\n DEBUG_BUILD &&\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return [false, parsedSampleRate];\n }\n\n return [true, parsedSampleRate];\n}\n\nexport { sampleSpan };\n//# sourceMappingURL=sampling.js.map\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n var retId;\n\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n return id || innerId;\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","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor, {\n theme: 'dark'\n });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4]\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#000';\n const colorTextBase = textBaseColor || '#fff';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n colorBgSolid: getAlphaColor(colorTextBase, 0.95),\n colorBgSolidHover: getAlphaColor(colorTextBase, 1),\n colorBgSolidActive: getAlphaColor(colorTextBase, 0.9),\n colorBgElevated: getSolidColor(colorBgBase, 12),\n colorBgContainer: getSolidColor(colorBgBase, 8),\n colorBgLayout: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getSolidColor(colorBgBase, 26),\n colorBgBlur: getAlphaColor(colorTextBase, 0.04),\n colorBorder: getSolidColor(colorBgBase, 26),\n colorBorderSecondary: getSolidColor(colorBgBase, 19)\n };\n};","\"use client\";\n\nimport getDesignToken from './getDesignToken';\nimport { defaultConfig, DesignTokenContext as InternalDesignTokenContext, useToken as useInternalToken } from './internal';\nimport compactAlgorithm from './themes/compact';\nimport darkAlgorithm from './themes/dark';\nimport defaultAlgorithm from './themes/default';\n// ZombieJ: We export as object to user but array in internal.\n// This is used to minimize the bundle size for antd package but safe to refactor as object also.\n// Please do not export internal `useToken` directly to avoid something export unexpected.\n/** Get current context Design Token. Will be different if you are using nest theme config. */\nfunction useToken() {\n const [theme, token, hashId] = useInternalToken();\n return {\n theme,\n token,\n hashId\n };\n}\nexport default {\n /** Default seedToken */\n defaultSeed: defaultConfig.token,\n useToken,\n defaultAlgorithm,\n darkAlgorithm,\n compactAlgorithm,\n getDesignToken,\n /**\n * @private Private variable\n * @warring 🔥 Do not use in production. 🔥\n */\n defaultConfig,\n /**\n * @private Private variable\n * @warring 🔥 Do not use in production. 🔥\n */\n _internalContext: InternalDesignTokenContext\n};","import { generate } from '@ant-design/colors';\nimport defaultAlgorithm from '../default';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nconst derivative = (token, mapToken) => {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey], {\n theme: 'dark'\n });\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n // biome-ignore lint/style/noParameterAssign: it is a reduce\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n return Object.assign(Object.assign(Object.assign({}, mergedMapToken), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n }));\n};\nexport default derivative;","import defaultAlgorithm from '../default';\nimport genControlHeight from '../shared/genControlHeight';\nimport genFontMapToken from '../shared/genFontMapToken';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nconst derivative = (token, mapToken) => {\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mergedMapToken), genCompactSizeMapToken(mapToken !== null && mapToken !== void 0 ? mapToken : token)), genFontMapToken(fontSize)), {\n // controlHeight\n controlHeight\n }), genControlHeight(Object.assign(Object.assign({}, mergedMapToken), {\n controlHeight\n })));\n};\nexport default derivative;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n const compactSizeStep = sizeStep - 2;\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1)\n };\n}","import { createTheme, getComputedToken } from '@ant-design/cssinjs';\nimport defaultDerivative from './themes/default';\nimport seedToken from './themes/seed';\nimport formatToken from './util/alias';\nconst getDesignToken = config => {\n const theme = (config === null || config === void 0 ? void 0 : config.algorithm) ? createTheme(config.algorithm) : createTheme(defaultDerivative);\n const mergedToken = Object.assign(Object.assign({}, seedToken), config === null || config === void 0 ? void 0 : config.token);\n return getComputedToken(mergedToken, {\n override: config === null || config === void 0 ? void 0 : config.token\n }, theme, formatToken);\n};\nexport default getDesignToken;","import {\n getActiveIdentityScopes,\n getActiveScopes,\n SUB_ORG_FEATURE_CODES,\n SUB_ORG_SCOPES,\n} from 'utils/scopes';\nimport { MergedOrgsEntry } from '../OrgSwitcher';\n\n/**\n * @description Checks if the list of scopes exists and includes portal scopes.\n * The only scope format that isnt a portal scope is o###-user###:\n * @param scopes - array of scopes\n * @returns true if any scope exists and isnt o###-user###: and false otherwise\n */\nexport const includesAnyPortalScope = (scopes: string[]) =>\n scopes.some((s) => !s.match(/^o[0-9]+-user[0-9]+:/));\n\n/**\n * @description Finds orgs the current user has portal access scopes for\n * from the token\n * @param token - user's accessToken\n * @returns The orgs from the accessToken's tokenScopeList\n */\nexport const getOrgsWithPortalScopesForCurrentUser = (\n token?: Api.Response['describeAccessToken'],\n) => {\n const orgsWithPortalScopes = token?.tokenScopeList?.filter(\n ({ scope, org }) => {\n return org?.id && includesAnyPortalScope(scope ?? []);\n },\n );\n\n return orgsWithPortalScopes?.map(({ org }) => org);\n};\n\n/**\n * @description Checks the identity scope for fsa (full support access required)\n * @param token - user's accessToken\n * @returns true if fsa is set and false if it is not\n */\nexport const getIsFullSupportAccessRequiredIdentityScope = (\n token?: Api.Response['describeAccessToken'],\n) => {\n const identityScope = token?.tokenScopeList?.find(\n (tokenScope) => tokenScope.org?.id === null,\n );\n\n if (identityScope) {\n return (\n identityScope.scopeWithContext &&\n identityScope.scopeWithContext.some(\n ({ context }) => context && context.some(({ fsa }) => fsa),\n )\n );\n }\n\n return false;\n};\n\n/**\n * Checks if the currrent user has mastermode access\n * @param currentOrgId - user's accessToken\n * @param token - user's accessToken\n * @returns true if they have a mastermode scope and false if not.\n */\nexport const checkMasterModeAccess = ({\n token,\n}: {\n token?: Api.Response['describeAccessToken'];\n}) => {\n const validScopePrefixes = [\n 'o:', // o:r, o:w\n 'o-', // e.g. o-basic:r, o-basic:w, o-acu:r, o-acu:w, and more later...\n 'i:', // i:r, i:w\n 'pc:', // pc:r, pc:w\n ];\n\n const activeScopes = getActiveIdentityScopes({\n tokenScopeList: token?.tokenScopeList ?? [],\n });\n\n return activeScopes.some((activeScope) =>\n validScopePrefixes.some((mmScopePrefix) =>\n activeScope.startsWith(mmScopePrefix),\n ),\n );\n};\n\n/**\n * Checks if an org has suborgs or suborgs video\n * @param org - the org being checked\n * @returns true if the org has sub orgs feature and false if not.\n */\nexport const orgHasSuborgFeature = (\n org: NonNullable<\n Api.Response['describeAccessToken']['tokenScopeList']\n >[0]['org'],\n) => {\n return org?.packagePlans?.find((packagePlan) => {\n return packagePlan.package?.packageFeatures?.some((packageFeature) =>\n // Old orgSwitcher code includes subOrgsVideo in this check - so keeping it here\n SUB_ORG_FEATURE_CODES.includes(packageFeature.feature?.code ?? ''),\n );\n });\n};\n\n/**\n * Checks if any org in the user's tokenScopeList has suborgs\n * @param currentOrgId - user's accessToken\n * @returns true if any org has sub orgs feature and the user has suborgs scopes\n * and false if not.\n */\nexport const checkIfAnyOrgHasSubOrgs = (\n token?: Api.Response['describeAccessToken'],\n) => {\n // Old org switcher includes suborgs-video so leaving here.\n return Boolean(\n token?.tokenScopeList?.find((tokenScope) => {\n return (\n orgHasSuborgFeature(tokenScope.org) && // Check for suborgs feature\n tokenScope.scope?.find((s) => SUB_ORG_SCOPES.includes(s)) // Check for partner scopes\n );\n }),\n );\n};\n\n/**\n * Checks if the user has org switcher access\n * @param token - user's accessToken\n * @returns true if user has org switch access\n * and false if not.\n */\nexport const checkHasGeneralOrgSwitcherAccess = ({\n token,\n}: {\n token?: Api.Response['describeAccessToken'];\n}) => {\n const hasOrgWithSubOrgs = checkIfAnyOrgHasSubOrgs(token);\n const orgsWithScopes =\n token?.tokenScopeList?.filter(({ org }) => org?.id) ?? [];\n\n if (hasOrgWithSubOrgs || orgsWithScopes.length > 1) {\n // return early if has suborgs access or scopes for more than one org\n return true;\n }\n\n // get identity level scopes\n const activeScopes = getActiveScopes({\n tokenScopeList: token?.tokenScopeList ?? [],\n });\n\n const validScopePrefixes = [\n 'o:', // o:r, o:w\n\n // NOTE: specifically NOT included here are the various o-\n // granular scopes like o-basic:r, etc., and the i: scopes and\n // the pc: scopes, because while those carry some permission for\n // Master Mode menu functions, they don't (by themselves) carry\n // enough permission to org-switch and have access to the\n // org-mode portal for an arbitrary org\n ];\n\n return activeScopes.some((scope) =>\n validScopePrefixes.some((prefix) => scope.startsWith(prefix)),\n );\n};\n\n/**\n * Checks if the org is a parent org\n * @param packagePlans - the packages of the current orgs\n * @returns true if org is parent\n * and false if not.\n */\nexport const checkIsParentOrg = ({\n packagePlans,\n}: {\n packagePlans:\n | MergedOrgsEntry['enabledPackagePlans']\n | MergedOrgsEntry['packagePlans'];\n}) => {\n return (\n packagePlans?.some((pp) =>\n pp?.package?.packageFeatures?.some(\n (pf) => pf?.feature?.code === 'subOrgs', // Do not include subOrgsVideo here\n ),\n ) || null\n );\n};\n","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import { resolvedSyncPromise, eventFromUnknownInput, eventFromMessage, logger, uuid4 } from '@sentry/utils';\nimport { BaseClient } from './baseclient.js';\nimport { createCheckInEnvelope } from './checkin.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { SessionFlusher } from './sessionflusher.js';\nimport { registerSpanErrorInstrumentation } from './tracing/errors.js';\nimport { _getSpanForScope } from './utils/spanOnScope.js';\nimport { getRootSpan, spanToTraceContext } from './utils/spanUtils.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\n\n/**\n * The Sentry Server Runtime Client SDK.\n */\nclass ServerRuntimeClient\n\n extends BaseClient {\n\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n // Server clients always support tracing\n registerSpanErrorInstrumentation();\n\n super(options);\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return resolvedSyncPromise(eventFromUnknownInput(this, this._options.stackParser, exception, hint));\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace),\n );\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n captureException(exception, hint, scope) {\n // Check if the flag `autoSessionTracking` is enabled, and if `_sessionFlusher` exists because it is initialised only\n // when the `requestHandler` middleware is used, and hence the expectation is to have SessionAggregates payload\n // sent to the Server only when the `requestHandler` middleware is used\n if (this._options.autoSessionTracking && this._sessionFlusher) {\n const requestSession = getIsolationScope().getRequestSession();\n\n // Necessary checks to ensure this is code block is executed only within a request\n // Should override the status only if `requestSession.status` is `Ok`, which is its initial stage\n if (requestSession && requestSession.status === 'ok') {\n requestSession.status = 'errored';\n }\n }\n\n return super.captureException(exception, hint, scope);\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // Check if the flag `autoSessionTracking` is enabled, and if `_sessionFlusher` exists because it is initialised only\n // when the `requestHandler` middleware is used, and hence the expectation is to have SessionAggregates payload\n // sent to the Server only when the `requestHandler` middleware is used\n if (this._options.autoSessionTracking && this._sessionFlusher) {\n const eventType = event.type || 'exception';\n const isException =\n eventType === 'exception' && event.exception && event.exception.values && event.exception.values.length > 0;\n\n // If the event is of type Exception, then a request session should be captured\n if (isException) {\n const requestSession = getIsolationScope().getRequestSession();\n\n // Ensure that this is happening within the bounds of a request, and make sure not to override\n // Session Status if Errored / Crashed\n if (requestSession && requestSession.status === 'ok') {\n requestSession.status = 'errored';\n }\n }\n }\n\n return super.captureEvent(event, hint, scope);\n }\n\n /**\n *\n * @inheritdoc\n */\n close(timeout) {\n if (this._sessionFlusher) {\n this._sessionFlusher.close();\n }\n return super.close(timeout);\n }\n\n /** Method that initialises an instance of SessionFlusher on Client */\n initSessionFlusher() {\n const { release, environment } = this._options;\n if (!release) {\n DEBUG_BUILD && logger.warn('Cannot initialise an instance of SessionFlusher if no release is provided!');\n } else {\n this._sessionFlusher = new SessionFlusher(this, {\n release,\n environment,\n });\n }\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n captureCheckIn(checkIn, monitorConfig, scope) {\n const id = 'checkInId' in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture checkin.');\n return id;\n }\n\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n\n const serializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment,\n };\n\n if ('duration' in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold,\n };\n }\n\n const [dynamicSamplingContext, traceContext] = this._getTraceInfoFromScope(scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext,\n };\n }\n\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn(),\n );\n\n DEBUG_BUILD && logger.info('Sending checkin:', checkIn.monitorSlug, checkIn.status);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n\n return id;\n }\n\n /**\n * Method responsible for capturing/ending a request session by calling `incrementSessionStatusCount` to increment\n * appropriate session aggregates bucket\n */\n _captureRequestSession() {\n if (!this._sessionFlusher) {\n DEBUG_BUILD && logger.warn('Discarded request mode session because autoSessionTracking option was disabled');\n } else {\n this._sessionFlusher.incrementSessionStatusCount();\n }\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(\n event,\n hint,\n scope,\n isolationScope,\n ) {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: (event.contexts || {}).runtime || this._options.runtime,\n };\n }\n\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n\n return super._prepareEvent(event, hint, scope, isolationScope);\n }\n\n /** Extract trace information from scope */\n _getTraceInfoFromScope(\n scope,\n ) {\n if (!scope) {\n return [undefined, undefined];\n }\n\n const span = _getSpanForScope(scope);\n if (span) {\n const rootSpan = getRootSpan(span);\n const samplingContext = getDynamicSamplingContextFromSpan(rootSpan);\n return [samplingContext, spanToTraceContext(rootSpan)];\n }\n\n const { traceId, spanId, parentSpanId, dsc } = scope.getPropagationContext();\n const traceContext = {\n trace_id: traceId,\n span_id: spanId,\n parent_span_id: parentSpanId,\n };\n if (dsc) {\n return [dsc, traceContext];\n }\n\n return [getDynamicSamplingContextFromClient(traceId, this), traceContext];\n }\n}\n\nexport { ServerRuntimeClient };\n//# sourceMappingURL=server-runtime-client.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-text-button{padding:0;border:0;height:initial}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpTextButton/OpTextButton.scss\"],\"names\":[],\"mappings\":\"AAEA,gBACE,SAAA,CACA,QAAA,CACA,cAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-text-button {\\n padding: 0;\\n border: 0;\\n height: initial;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use client\";\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport Tooltip from '../tooltip';\nconst SliderTooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n open,\n draggingDelete\n } = props;\n const innerRef = useRef(null);\n const mergedOpen = open && !draggingDelete;\n const rafRef = useRef(null);\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n rafRef.current = null;\n }\n function keepAlign() {\n rafRef.current = raf(() => {\n var _a;\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n rafRef.current = null;\n });\n }\n React.useEffect(() => {\n if (mergedOpen) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n return cancelKeepAlign;\n }, [mergedOpen, props.title]);\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n ref: composeRef(innerRef, ref)\n }, props, {\n open: mergedOpen\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n SliderTooltip.displayName = 'SliderTooltip';\n}\nexport default SliderTooltip;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n antCls,\n controlSize,\n dotSize,\n marginFull,\n marginPart,\n colorFillContentHover,\n handleColorDisabled,\n calc,\n handleSize,\n handleSizeHover,\n handleActiveColor,\n handleActiveOutlineColor,\n handleLineWidth,\n handleLineWidthHover,\n motionDurationMid\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n height: controlSize,\n margin: `${unit(marginPart)} ${unit(marginFull)}`,\n padding: 0,\n cursor: 'pointer',\n touchAction: 'none',\n '&-vertical': {\n margin: `${unit(marginFull)} ${unit(marginPart)}`\n },\n [`${componentCls}-rail`]: {\n position: 'absolute',\n backgroundColor: token.railBg,\n borderRadius: token.borderRadiusXS,\n transition: `background-color ${motionDurationMid}`\n },\n [`${componentCls}-track,${componentCls}-tracks`]: {\n position: 'absolute',\n transition: `background-color ${motionDurationMid}`\n },\n [`${componentCls}-track`]: {\n backgroundColor: token.trackBg,\n borderRadius: token.borderRadiusXS\n },\n [`${componentCls}-track-draggable`]: {\n boxSizing: 'content-box',\n backgroundClip: 'content-box',\n border: 'solid rgba(0,0,0,0)'\n },\n '&:hover': {\n [`${componentCls}-rail`]: {\n backgroundColor: token.railHoverBg\n },\n [`${componentCls}-track`]: {\n backgroundColor: token.trackHoverBg\n },\n [`${componentCls}-dot`]: {\n borderColor: colorFillContentHover\n },\n [`${componentCls}-handle::after`]: {\n boxShadow: `0 0 0 ${unit(handleLineWidth)} ${token.colorPrimaryBorderHover}`\n },\n [`${componentCls}-dot-active`]: {\n borderColor: token.dotActiveBorderColor\n }\n },\n [`${componentCls}-handle`]: {\n position: 'absolute',\n width: handleSize,\n height: handleSize,\n outline: 'none',\n userSelect: 'none',\n // Dragging status\n '&-dragging-delete': {\n opacity: 0\n },\n // 扩大选区\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n insetInlineStart: calc(handleLineWidth).mul(-1).equal(),\n insetBlockStart: calc(handleLineWidth).mul(-1).equal(),\n width: calc(handleSize).add(calc(handleLineWidth).mul(2)).equal(),\n height: calc(handleSize).add(calc(handleLineWidth).mul(2)).equal(),\n backgroundColor: 'transparent'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: handleSize,\n height: handleSize,\n backgroundColor: token.colorBgElevated,\n boxShadow: `0 0 0 ${unit(handleLineWidth)} ${token.handleColor}`,\n outline: `0px solid transparent`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `\n inset-inline-start ${motionDurationMid},\n inset-block-start ${motionDurationMid},\n width ${motionDurationMid},\n height ${motionDurationMid},\n box-shadow ${motionDurationMid},\n outline ${motionDurationMid}\n `\n },\n '&:hover, &:active, &:focus': {\n '&::before': {\n insetInlineStart: calc(handleSizeHover).sub(handleSize).div(2).add(handleLineWidthHover).mul(-1).equal(),\n insetBlockStart: calc(handleSizeHover).sub(handleSize).div(2).add(handleLineWidthHover).mul(-1).equal(),\n width: calc(handleSizeHover).add(calc(handleLineWidthHover).mul(2)).equal(),\n height: calc(handleSizeHover).add(calc(handleLineWidthHover).mul(2)).equal()\n },\n '&::after': {\n boxShadow: `0 0 0 ${unit(handleLineWidthHover)} ${handleActiveColor}`,\n outline: `6px solid ${handleActiveOutlineColor}`,\n width: handleSizeHover,\n height: handleSizeHover,\n insetInlineStart: token.calc(handleSize).sub(handleSizeHover).div(2).equal(),\n insetBlockStart: token.calc(handleSize).sub(handleSizeHover).div(2).equal()\n }\n }\n },\n [`&-lock ${componentCls}-handle`]: {\n '&::before, &::after': {\n transition: 'none'\n }\n },\n [`${componentCls}-mark`]: {\n position: 'absolute',\n fontSize: token.fontSize\n },\n [`${componentCls}-mark-text`]: {\n position: 'absolute',\n display: 'inline-block',\n color: token.colorTextDescription,\n textAlign: 'center',\n wordBreak: 'keep-all',\n cursor: 'pointer',\n userSelect: 'none',\n '&-active': {\n color: token.colorText\n }\n },\n [`${componentCls}-step`]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none'\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n width: dotSize,\n height: dotSize,\n backgroundColor: token.colorBgElevated,\n border: `${unit(handleLineWidth)} solid ${token.dotBorderColor}`,\n borderRadius: '50%',\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n pointerEvents: 'auto',\n '&-active': {\n borderColor: token.dotActiveBorderColor\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-rail`]: {\n backgroundColor: `${token.railBg} !important`\n },\n [`${componentCls}-track`]: {\n backgroundColor: `${token.trackBgDisabled} !important`\n },\n [`\n ${componentCls}-dot\n `]: {\n backgroundColor: token.colorBgElevated,\n borderColor: token.trackBgDisabled,\n boxShadow: 'none',\n cursor: 'not-allowed'\n },\n [`${componentCls}-handle::after`]: {\n backgroundColor: token.colorBgElevated,\n cursor: 'not-allowed',\n width: handleSize,\n height: handleSize,\n boxShadow: `0 0 0 ${unit(handleLineWidth)} ${handleColorDisabled}`,\n insetInlineStart: 0,\n insetBlockStart: 0\n },\n [`\n ${componentCls}-mark-text,\n ${componentCls}-dot\n `]: {\n cursor: `not-allowed !important`\n }\n },\n [`&-tooltip ${antCls}-tooltip-inner`]: {\n minWidth: 'unset'\n }\n })\n };\n};\n// ============================ Horizontal ============================\nconst genDirectionStyle = (token, horizontal) => {\n const {\n componentCls,\n railSize,\n handleSize,\n dotSize,\n marginFull,\n calc\n } = token;\n const railPadding = horizontal ? 'paddingBlock' : 'paddingInline';\n const full = horizontal ? 'width' : 'height';\n const part = horizontal ? 'height' : 'width';\n const handlePos = horizontal ? 'insetBlockStart' : 'insetInlineStart';\n const markInset = horizontal ? 'top' : 'insetInlineStart';\n const handlePosSize = calc(railSize).mul(3).sub(handleSize).div(2).equal();\n const draggableBorderSize = calc(handleSize).sub(railSize).div(2).equal();\n const draggableBorder = horizontal ? {\n borderWidth: `${unit(draggableBorderSize)} 0`,\n transform: `translateY(${unit(calc(draggableBorderSize).mul(-1).equal())})`\n } : {\n borderWidth: `0 ${unit(draggableBorderSize)}`,\n transform: `translateX(${unit(token.calc(draggableBorderSize).mul(-1).equal())})`\n };\n return {\n [railPadding]: railSize,\n [part]: calc(railSize).mul(3).equal(),\n [`${componentCls}-rail`]: {\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-track,${componentCls}-tracks`]: {\n [part]: railSize\n },\n [`${componentCls}-track-draggable`]: Object.assign({}, draggableBorder),\n [`${componentCls}-handle`]: {\n [handlePos]: handlePosSize\n },\n [`${componentCls}-mark`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n // https://github.com/ant-design/ant-design/issues/43731\n [markInset]: calc(railSize).mul(3).add(horizontal ? 0 : marginFull).equal(),\n [full]: '100%'\n },\n [`${componentCls}-step`]: {\n // Reset all\n insetInlineStart: 0,\n top: 0,\n [markInset]: railSize,\n [full]: '100%',\n [part]: railSize\n },\n [`${componentCls}-dot`]: {\n position: 'absolute',\n [handlePos]: calc(railSize).sub(dotSize).div(2).equal()\n }\n };\n};\n// ============================ Horizontal ============================\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n marginPartWithMark\n } = token;\n return {\n [`${componentCls}-horizontal`]: Object.assign(Object.assign({}, genDirectionStyle(token, true)), {\n [`&${componentCls}-with-marks`]: {\n marginBottom: marginPartWithMark\n }\n })\n };\n};\n// ============================= Vertical =============================\nconst genVerticalStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-vertical`]: Object.assign(Object.assign({}, genDirectionStyle(token, false)), {\n height: '100%'\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n // Handle line width is always width-er 1px\n const increaseHandleWidth = 1;\n const controlSize = token.controlHeightLG / 4;\n const controlSizeHover = token.controlHeightSM / 2;\n const handleLineWidth = token.lineWidth + increaseHandleWidth;\n const handleLineWidthHover = token.lineWidth + increaseHandleWidth * 1.5;\n const handleActiveColor = token.colorPrimary;\n const handleActiveOutlineColor = new TinyColor(handleActiveColor).setAlpha(0.2).toRgbString();\n return {\n controlSize,\n railSize: 4,\n handleSize: controlSize,\n handleSizeHover: controlSizeHover,\n dotSize: 8,\n handleLineWidth,\n handleLineWidthHover,\n railBg: token.colorFillTertiary,\n railHoverBg: token.colorFillSecondary,\n trackBg: token.colorPrimaryBorder,\n trackHoverBg: token.colorPrimaryBorderHover,\n handleColor: token.colorPrimaryBorder,\n handleActiveColor,\n handleActiveOutlineColor,\n handleColorDisabled: new TinyColor(token.colorTextDisabled).onBackground(token.colorBgContainer).toHexShortString(),\n dotBorderColor: token.colorBorderSecondary,\n dotActiveBorderColor: token.colorPrimaryBorder,\n trackBgDisabled: token.colorBgContainerDisabled\n };\n};\nexport default genStyleHooks('Slider', token => {\n const sliderToken = mergeToken(token, {\n marginPart: token.calc(token.controlHeight).sub(token.controlSize).div(2).equal(),\n marginFull: token.calc(token.controlSize).div(2).equal(),\n marginPartWithMark: token.calc(token.controlHeightLG).sub(token.controlSize).equal()\n });\n return [genBaseStyle(sliderToken), genHorizontalStyle(sliderToken), genVerticalStyle(sliderToken)];\n}, prepareComponentToken);","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRafLock() {\n const [state, setState] = React.useState(false);\n const rafRef = React.useRef();\n const cleanup = () => {\n raf.cancel(rafRef.current);\n };\n const setDelayState = nextState => {\n cleanup();\n if (nextState) {\n setState(nextState);\n } else {\n rafRef.current = raf(() => {\n setState(nextState);\n });\n }\n };\n React.useEffect(() => cleanup, []);\n return [state, setDelayState];\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport classNames from 'classnames';\nimport RcSlider from 'rc-slider';\nimport raf from \"rc-util/es/raf\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SliderTooltip from './SliderTooltip';\nimport useStyle from './style';\nimport SliderInternalContext from './Context';\nimport useRafLock from './useRafLock';\nfunction getTipFormatter(tipFormatter, legacyTipFormatter) {\n if (tipFormatter || tipFormatter === null) {\n return tipFormatter;\n }\n if (legacyTipFormatter || legacyTipFormatter === null) {\n return legacyTipFormatter;\n }\n return val => typeof val === 'number' ? val.toString() : '';\n}\nconst Slider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n range,\n className,\n rootClassName,\n style,\n disabled,\n // Deprecated Props\n tooltipPrefixCls: legacyTooltipPrefixCls,\n tipFormatter: legacyTipFormatter,\n tooltipVisible: legacyTooltipVisible,\n getTooltipPopupContainer: legacyGetTooltipPopupContainer,\n tooltipPlacement: legacyTooltipPlacement,\n tooltip = {},\n onChangeComplete\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"range\", \"className\", \"rootClassName\", \"style\", \"disabled\", \"tooltipPrefixCls\", \"tipFormatter\", \"tooltipVisible\", \"getTooltipPopupContainer\", \"tooltipPlacement\", \"tooltip\", \"onChangeComplete\"]);\n const {\n vertical\n } = props;\n const {\n direction: contextDirection,\n slider,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const contextDisabled = React.useContext(DisabledContext);\n const mergedDisabled = disabled !== null && disabled !== void 0 ? disabled : contextDisabled;\n // ============================= Context ==============================\n const {\n handleRender: contextHandleRender,\n direction: internalContextDirection\n } = React.useContext(SliderInternalContext);\n const mergedDirection = internalContextDirection || contextDirection;\n const isRTL = mergedDirection === 'rtl';\n // =============================== Open ===============================\n const [hoverOpen, setHoverOpen] = useRafLock();\n const [focusOpen, setFocusOpen] = useRafLock();\n const tooltipProps = Object.assign({}, tooltip);\n const {\n open: tooltipOpen,\n placement: tooltipPlacement,\n getPopupContainer: getTooltipPopupContainer,\n prefixCls: customizeTooltipPrefixCls,\n formatter: tipFormatter\n } = tooltipProps;\n const lockOpen = tooltipOpen !== null && tooltipOpen !== void 0 ? tooltipOpen : legacyTooltipVisible;\n const activeOpen = (hoverOpen || focusOpen) && lockOpen !== false;\n const mergedTipFormatter = getTipFormatter(tipFormatter, legacyTipFormatter);\n // ============================= Change ==============================\n const [dragging, setDragging] = useRafLock();\n const onInternalChangeComplete = nextValues => {\n onChangeComplete === null || onChangeComplete === void 0 ? void 0 : onChangeComplete(nextValues);\n setDragging(false);\n };\n // ============================ Placement ============================\n const getTooltipPlacement = (placement, vert) => {\n if (placement) {\n return placement;\n }\n if (!vert) {\n return 'top';\n }\n return isRTL ? 'left' : 'right';\n };\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('slider', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(className, slider === null || slider === void 0 ? void 0 : slider.className, rootClassName, {\n [`${prefixCls}-rtl`]: isRTL,\n [`${prefixCls}-lock`]: dragging\n }, hashId, cssVarCls);\n // make reverse default on rtl direction\n if (isRTL && !restProps.vertical) {\n restProps.reverse = !restProps.reverse;\n }\n // ============================= Warning ==============================\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Slider');\n [['tooltipPrefixCls', 'prefixCls'], ['getTooltipPopupContainer', 'getPopupContainer'], ['tipFormatter', 'formatter'], ['tooltipPlacement', 'placement'], ['tooltipVisible', 'open']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n warning.deprecated(!(deprecatedName in props), deprecatedName, `tooltip.${newName}`);\n });\n }\n // ============================== Handle ==============================\n React.useEffect(() => {\n const onMouseUp = () => {\n // Delay for 1 frame to make the click to enable hide tooltip\n // even when the handle is focused\n raf(() => {\n setFocusOpen(false);\n }, 1);\n };\n document.addEventListener('mouseup', onMouseUp);\n return () => {\n document.removeEventListener('mouseup', onMouseUp);\n };\n }, []);\n const useActiveTooltipHandle = range && !lockOpen;\n const handleRender = contextHandleRender || ((node, info) => {\n const {\n index\n } = info;\n const nodeProps = node.props;\n function proxyEvent(eventName, event, triggerRestPropsEvent) {\n var _a, _b, _c, _d;\n if (triggerRestPropsEvent) {\n (_b = (_a = restProps)[eventName]) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n }\n (_d = (_c = nodeProps)[eventName]) === null || _d === void 0 ? void 0 : _d.call(_c, event);\n }\n const passedProps = Object.assign(Object.assign({}, nodeProps), {\n onMouseEnter: e => {\n setHoverOpen(true);\n proxyEvent('onMouseEnter', e);\n },\n onMouseLeave: e => {\n setHoverOpen(false);\n proxyEvent('onMouseLeave', e);\n },\n onMouseDown: e => {\n setFocusOpen(true);\n setDragging(true);\n proxyEvent('onMouseDown', e);\n },\n onFocus: e => {\n var _a;\n setFocusOpen(true);\n (_a = restProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(restProps, e);\n proxyEvent('onFocus', e, true);\n },\n onBlur: e => {\n var _a;\n setFocusOpen(false);\n (_a = restProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(restProps, e);\n proxyEvent('onBlur', e, true);\n }\n });\n const cloneNode = /*#__PURE__*/React.cloneElement(node, passedProps);\n const open = (!!lockOpen || activeOpen) && mergedTipFormatter !== null;\n // Wrap on handle with Tooltip when is single mode or multiple with all show tooltip\n if (!useActiveTooltipHandle) {\n return /*#__PURE__*/React.createElement(SliderTooltip, Object.assign({}, tooltipProps, {\n prefixCls: getPrefixCls('tooltip', customizeTooltipPrefixCls !== null && customizeTooltipPrefixCls !== void 0 ? customizeTooltipPrefixCls : legacyTooltipPrefixCls),\n title: mergedTipFormatter ? mergedTipFormatter(info.value) : '',\n open: open,\n placement: getTooltipPlacement(tooltipPlacement !== null && tooltipPlacement !== void 0 ? tooltipPlacement : legacyTooltipPlacement, vertical),\n key: index,\n overlayClassName: `${prefixCls}-tooltip`,\n getPopupContainer: getTooltipPopupContainer || legacyGetTooltipPopupContainer || getPopupContainer\n }), cloneNode);\n }\n return cloneNode;\n });\n // ========================== Active Handle ===========================\n const activeHandleRender = useActiveTooltipHandle ? (handle, info) => {\n const cloneNode = /*#__PURE__*/React.cloneElement(handle, {\n style: Object.assign(Object.assign({}, handle.props.style), {\n visibility: 'hidden'\n })\n });\n return /*#__PURE__*/React.createElement(SliderTooltip, Object.assign({}, tooltipProps, {\n prefixCls: getPrefixCls('tooltip', customizeTooltipPrefixCls !== null && customizeTooltipPrefixCls !== void 0 ? customizeTooltipPrefixCls : legacyTooltipPrefixCls),\n title: mergedTipFormatter ? mergedTipFormatter(info.value) : '',\n open: mergedTipFormatter !== null && activeOpen,\n placement: getTooltipPlacement(tooltipPlacement !== null && tooltipPlacement !== void 0 ? tooltipPlacement : legacyTooltipPlacement, vertical),\n key: \"tooltip\",\n overlayClassName: `${prefixCls}-tooltip`,\n getPopupContainer: getTooltipPopupContainer || legacyGetTooltipPopupContainer || getPopupContainer,\n draggingDelete: info.draggingDelete\n }), cloneNode);\n } : undefined;\n // ============================== Render ==============================\n const mergedStyle = Object.assign(Object.assign({}, slider === null || slider === void 0 ? void 0 : slider.style), style);\n return wrapCSSVar(\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(RcSlider, Object.assign({}, restProps, {\n step: restProps.step,\n range: range,\n className: cls,\n style: mergedStyle,\n disabled: mergedDisabled,\n ref: ref,\n prefixCls: prefixCls,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: onInternalChangeComplete\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","module.exports = __webpack_public_path__ + \"0973bb38b2e3efd2a879fd8e81d50fce.js\";","module.exports = __webpack_public_path__ + \"a709bba98acec5da3ea6258e245514cb.js\";","'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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","module.exports = __webpack_public_path__ + \"70286c33cab463fd576766adecd2d5d9.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _classNames;\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n return mergedChecked;\n }\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e);\n // [Legacy] trigger onClick with value\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-checked\")\n }, checkedChildren), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner-unchecked\")\n }, unCheckedChildren)));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genSwitchSmallStyle = token => {\n const {\n componentCls,\n trackHeightSM,\n trackPadding,\n trackMinWidthSM,\n innerMinMarginSM,\n innerMaxMarginSM,\n handleSizeSM,\n calc\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n const trackPaddingCalc = unit(calc(handleSizeSM).add(calc(trackPadding).mul(2)).equal());\n const innerMaxMarginCalc = unit(calc(innerMaxMarginSM).mul(2).equal());\n return {\n [componentCls]: {\n [`&${componentCls}-small`]: {\n minWidth: trackMinWidthSM,\n height: trackHeightSM,\n lineHeight: unit(trackHeightSM),\n [`${componentCls}-inner`]: {\n paddingInlineStart: innerMaxMarginSM,\n paddingInlineEnd: innerMinMarginSM,\n [`${switchInnerCls}-checked, ${switchInnerCls}-unchecked`]: {\n minHeight: trackHeightSM\n },\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${trackPaddingCalc} - ${innerMaxMarginCalc})`,\n marginInlineEnd: `calc(100% - ${trackPaddingCalc} + ${innerMaxMarginCalc})`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: calc(trackHeightSM).mul(-1).equal(),\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`${componentCls}-handle`]: {\n width: handleSizeSM,\n height: handleSizeSM\n },\n [`${componentCls}-loading-icon`]: {\n top: calc(calc(handleSizeSM).sub(token.switchLoadingIconSize)).div(2).equal(),\n fontSize: token.switchLoadingIconSize\n },\n [`&${componentCls}-checked`]: {\n [`${componentCls}-inner`]: {\n paddingInlineStart: innerMinMarginSM,\n paddingInlineEnd: innerMaxMarginSM,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${trackPaddingCalc} + ${innerMaxMarginCalc})`,\n marginInlineEnd: `calc(-100% + ${trackPaddingCalc} - ${innerMaxMarginCalc})`\n }\n },\n [`${componentCls}-handle`]: {\n insetInlineStart: `calc(100% - ${unit(calc(handleSizeSM).add(trackPadding).equal())})`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: calc(token.marginXXS).div(2).equal(),\n marginInlineEnd: calc(token.marginXXS).mul(-1).div(2).equal()\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: calc(token.marginXXS).mul(-1).div(2).equal(),\n marginInlineEnd: calc(token.marginXXS).div(2).equal()\n }\n }\n }\n }\n }\n };\n};\nconst genSwitchLoadingStyle = token => {\n const {\n componentCls,\n handleSize,\n calc\n } = token;\n return {\n [componentCls]: {\n [`${componentCls}-loading-icon${token.iconCls}`]: {\n position: 'relative',\n top: calc(calc(handleSize).sub(token.fontSize)).div(2).equal(),\n color: token.switchLoadingIconColor,\n verticalAlign: 'top'\n },\n [`&${componentCls}-checked ${componentCls}-loading-icon`]: {\n color: token.switchColor\n }\n }\n };\n};\nconst genSwitchHandleStyle = token => {\n const {\n componentCls,\n trackPadding,\n handleBg,\n handleShadow,\n handleSize,\n calc\n } = token;\n const switchHandleCls = `${componentCls}-handle`;\n return {\n [componentCls]: {\n [switchHandleCls]: {\n position: 'absolute',\n top: trackPadding,\n insetInlineStart: trackPadding,\n width: handleSize,\n height: handleSize,\n transition: `all ${token.switchDuration} ease-in-out`,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n backgroundColor: handleBg,\n borderRadius: calc(handleSize).div(2).equal(),\n boxShadow: handleShadow,\n transition: `all ${token.switchDuration} ease-in-out`,\n content: '\"\"'\n }\n },\n [`&${componentCls}-checked ${switchHandleCls}`]: {\n insetInlineStart: `calc(100% - ${unit(calc(handleSize).add(trackPadding).equal())})`\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`${switchHandleCls}::before`]: {\n insetInlineEnd: token.switchHandleActiveInset,\n insetInlineStart: 0\n },\n [`&${componentCls}-checked ${switchHandleCls}::before`]: {\n insetInlineEnd: 0,\n insetInlineStart: token.switchHandleActiveInset\n }\n }\n }\n };\n};\nconst genSwitchInnerStyle = token => {\n const {\n componentCls,\n trackHeight,\n trackPadding,\n innerMinMargin,\n innerMaxMargin,\n handleSize,\n calc\n } = token;\n const switchInnerCls = `${componentCls}-inner`;\n const trackPaddingCalc = unit(calc(handleSize).add(calc(trackPadding).mul(2)).equal());\n const innerMaxMarginCalc = unit(calc(innerMaxMargin).mul(2).equal());\n return {\n [componentCls]: {\n [switchInnerCls]: {\n display: 'block',\n overflow: 'hidden',\n borderRadius: 100,\n height: '100%',\n paddingInlineStart: innerMaxMargin,\n paddingInlineEnd: innerMinMargin,\n transition: `padding-inline-start ${token.switchDuration} ease-in-out, padding-inline-end ${token.switchDuration} ease-in-out`,\n [`${switchInnerCls}-checked, ${switchInnerCls}-unchecked`]: {\n display: 'block',\n color: token.colorTextLightSolid,\n fontSize: token.fontSizeSM,\n transition: `margin-inline-start ${token.switchDuration} ease-in-out, margin-inline-end ${token.switchDuration} ease-in-out`,\n pointerEvents: 'none',\n minHeight: trackHeight\n },\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: `calc(-100% + ${trackPaddingCalc} - ${innerMaxMarginCalc})`,\n marginInlineEnd: `calc(100% - ${trackPaddingCalc} + ${innerMaxMarginCalc})`\n },\n [`${switchInnerCls}-unchecked`]: {\n marginTop: calc(trackHeight).mul(-1).equal(),\n marginInlineStart: 0,\n marginInlineEnd: 0\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n paddingInlineStart: innerMinMargin,\n paddingInlineEnd: innerMaxMargin,\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: 0,\n marginInlineEnd: 0\n },\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: `calc(100% - ${trackPaddingCalc} + ${innerMaxMarginCalc})`,\n marginInlineEnd: `calc(-100% + ${trackPaddingCalc} - ${innerMaxMarginCalc})`\n }\n },\n [`&:not(${componentCls}-disabled):active`]: {\n [`&:not(${componentCls}-checked) ${switchInnerCls}`]: {\n [`${switchInnerCls}-unchecked`]: {\n marginInlineStart: calc(trackPadding).mul(2).equal(),\n marginInlineEnd: calc(trackPadding).mul(-1).mul(2).equal()\n }\n },\n [`&${componentCls}-checked ${switchInnerCls}`]: {\n [`${switchInnerCls}-checked`]: {\n marginInlineStart: calc(trackPadding).mul(-1).mul(2).equal(),\n marginInlineEnd: calc(trackPadding).mul(2).equal()\n }\n }\n }\n }\n };\n};\nconst genSwitchStyle = token => {\n const {\n componentCls,\n trackHeight,\n trackMinWidth\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n boxSizing: 'border-box',\n minWidth: trackMinWidth,\n height: trackHeight,\n lineHeight: unit(trackHeight),\n verticalAlign: 'middle',\n background: token.colorTextQuaternary,\n border: '0',\n borderRadius: 100,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n userSelect: 'none',\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorTextTertiary\n }\n }), genFocusStyle(token)), {\n [`&${componentCls}-checked`]: {\n background: token.switchColor,\n [`&:hover:not(${componentCls}-disabled)`]: {\n background: token.colorPrimaryHover\n }\n },\n [`&${componentCls}-loading, &${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n opacity: token.switchDisabledOpacity,\n '*': {\n boxShadow: 'none',\n cursor: 'not-allowed'\n }\n },\n // rtl style\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n fontSize,\n lineHeight,\n controlHeight,\n colorWhite\n } = token;\n const height = fontSize * lineHeight;\n const heightSM = controlHeight / 2;\n const padding = 2; // Fixed value\n const handleSize = height - padding * 2;\n const handleSizeSM = heightSM - padding * 2;\n return {\n trackHeight: height,\n trackHeightSM: heightSM,\n trackMinWidth: handleSize * 2 + padding * 4,\n trackMinWidthSM: handleSizeSM * 2 + padding * 2,\n trackPadding: padding,\n // Fixed value\n handleBg: colorWhite,\n handleSize,\n handleSizeSM,\n handleShadow: `0 2px 4px 0 ${new TinyColor('#00230b').setAlpha(0.2).toRgbString()}`,\n innerMinMargin: handleSize / 2,\n innerMaxMargin: handleSize + padding + padding * 2,\n innerMinMarginSM: handleSizeSM / 2,\n innerMaxMarginSM: handleSizeSM + padding + padding * 2\n };\n};\nexport default genStyleHooks('Switch', token => {\n const switchToken = mergeToken(token, {\n switchDuration: token.motionDurationMid,\n switchColor: token.colorPrimary,\n switchDisabledOpacity: token.opacityLoading,\n switchLoadingIconSize: token.calc(token.fontSizeIcon).mul(0.75).equal(),\n switchLoadingIconColor: `rgba(0, 0, 0, ${token.opacityLoading})`,\n switchHandleActiveInset: '-30%'\n });\n return [genSwitchStyle(switchToken),\n // inner style\n genSwitchInnerStyle(switchToken),\n // handle style\n genSwitchHandleStyle(switchToken),\n // loading style\n genSwitchLoadingStyle(switchToken),\n // small style\n genSwitchSmallStyle(switchToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nconst InternalSwitch = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n size: customizeSize,\n disabled: customDisabled,\n loading,\n className,\n rootClassName,\n style,\n checked: checkedProp,\n value,\n defaultChecked: defaultCheckedProp,\n defaultValue,\n onChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\", \"rootClassName\", \"style\", \"checked\", \"value\", \"defaultChecked\", \"defaultValue\", \"onChange\"]);\n const [checked, setChecked] = useMergedState(false, {\n value: checkedProp !== null && checkedProp !== void 0 ? checkedProp : value,\n defaultValue: defaultCheckedProp !== null && defaultCheckedProp !== void 0 ? defaultCheckedProp : defaultValue\n });\n const {\n getPrefixCls,\n direction,\n switch: SWITCH\n } = React.useContext(ConfigContext);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n const prefixCls = getPrefixCls('switch', customizePrefixCls);\n const loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-handle`\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-loading-icon`\n }));\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const mergedSize = useSize(customizeSize);\n const classes = classNames(SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.className, {\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-loading`]: loading,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId, cssVarCls);\n const mergedStyle = Object.assign(Object.assign({}, SWITCH === null || SWITCH === void 0 ? void 0 : SWITCH.style), style);\n const changeHandler = function () {\n setChecked(arguments.length <= 0 ? undefined : arguments[0]);\n onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, arguments);\n };\n return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n component: \"Switch\"\n }, /*#__PURE__*/React.createElement(RcSwitch, Object.assign({}, restProps, {\n checked: checked,\n onChange: changeHandler,\n prefixCls: prefixCls,\n className: classes,\n style: mergedStyle,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n }))));\n});\nconst Switch = InternalSwitch;\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationErrorNoStack {\n constructor(errorOrErrors, value, field, type) {\n this.name = void 0;\n this.message = void 0;\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n }\n}\n_Symbol$hasInstance = Symbol.hasInstance;\n_Symbol$toStringTag2 = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n // Attempt to make the path more friendly for error message interpolation.\n const path = params.label || params.path || 'this';\n // Store the original path under `originalPath` so it isn't lost to custom\n // message functions; e.g., ones provided in `setLocale()` calls.\n params = Object.assign({}, params, {\n path,\n originalPath: params.path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n const errorNoStack = new ValidationErrorNoStack(errorOrErrors, value, field, type);\n if (disableStack) {\n return errorNoStack;\n }\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = [];\n this.inner = [];\n this[_Symbol$toStringTag2] = 'Error';\n this.name = errorNoStack.name;\n this.message = errorNoStack.message;\n this.type = errorNoStack.type;\n this.value = errorNoStack.value;\n this.path = errorNoStack.path;\n this.errors = errorNoStack.errors;\n this.inner = errorNoStack.inner;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n }\n static [_Symbol$hasInstance](inst) {\n return ValidationErrorNoStack[Symbol.hasInstance](inst) || super[Symbol.hasInstance](inst);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n datetime: '${path} must be a valid ISO date-time',\n datetime_precision: '${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits',\n datetime_offset: '${path} must be a valid ISO date-time with UTC \"Z\" timezone',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}',\n exact: '${path} object contains unknown properties: ${properties}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec,\n disableStackTrace: overrides.disableStackTrace || disableStackTrace\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, nextParams.disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${isIndex ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n const struct = parseDateStruct(date);\n if (!struct) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\nfunction parseDateStruct(date) {\n var _regexResult$7$length, _regexResult$;\n const regexResult = isoReg.exec(date);\n if (!regexResult) return null;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n return {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n precision: (_regexResult$7$length = (_regexResult$ = regexResult[7]) == null ? void 0 : _regexResult$.length) != null ? _regexResult$7$length : undefined,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n}\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet yearMonthDay = '^\\\\d{4}-\\\\d{2}-\\\\d{2}';\nlet hourMinuteSecond = '\\\\d{2}:\\\\d{2}:\\\\d{2}';\nlet zOrOffset = '(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)';\nlet rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\\\.\\\\d+)?${zOrOffset}$`);\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n datetime(options) {\n let message = '';\n let allowOffset;\n let precision;\n if (options) {\n if (typeof options === 'object') {\n ({\n message = '',\n allowOffset = false,\n precision = undefined\n } = options);\n } else {\n message = options;\n }\n }\n return this.matches(rIsoDateTime, {\n name: 'datetime',\n message: message || string.datetime,\n excludeEmptyString: true\n }).test({\n name: 'datetime_offset',\n message: message || string.datetime_offset,\n params: {\n allowOffset\n },\n skipAbsent: true,\n test: value => {\n if (!value || allowOffset) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return !!struct.z;\n }\n }).test({\n name: 'datetime_precision',\n message: message || string.datetime_precision,\n params: {\n precision\n },\n skipAbsent: true,\n test: value => {\n if (!value || precision == undefined) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return struct.precision === precision;\n }\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n\n /**\n * Similar to `noUnknown` but only validates that an object is the right shape without stripping the unknown keys\n */\n exact(message) {\n return this.test({\n name: 'exact',\n exclusive: true,\n message: message || object.exact,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return unknownKeys.length === 0 || this.createError({\n params: {\n properties: unknownKeys.join(', ')\n }\n });\n }\n });\n }\n stripUnknown() {\n return this.clone({\n noUnknown: true\n });\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array<typeof T>\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nfunction catchValidationError(fn) {\n try {\n return fn();\n } catch (err) {\n if (ValidationError.isError(err)) return Promise.reject(err);\n throw err;\n }\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return catchValidationError(() => this._resolve(value, options).validate(value, options));\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return catchValidationError(() => this._resolve(value, options).validateAt(path, value, options));\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n try {\n return this._resolve(value, options).isValid(value, options);\n } catch (err) {\n if (ValidationError.isError(err)) {\n return Promise.resolve(false);\n }\n throw err;\n }\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, Lazy as LazySchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","var nativeCreate = require('./_nativeCreate');\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 * 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\nmodule.exports = hashHas;\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n||!n.length||1===n.length&&!n[0]||1===n.length&&Array.isArray(n[0])&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=(n=n.filter((function(e){return e})))[0];for(var i=1;i<n.length;i+=1)n[i].isValid()&&!n[i][e](t)||(t=n[i]);return t};t.max=function(){var e=[].slice.call(arguments,0);return i(\"isAfter\",e)},t.min=function(){var e=[].slice.call(arguments,0);return i(\"isBefore\",e)}}}));","module.exports = __webpack_public_path__ + \"8f9ce72eeabbf31f2d51f4bcfc66d3b0.js\";","module.exports = __webpack_public_path__ + \"f9a0bb7f948ede9bf3f34989aef482db.js\";","module.exports = __webpack_public_path__ + \"15deb9e34e10dc53410fddda6ef1d48c.js\";","module.exports = __webpack_public_path__ + \"4d6d9020e7e5c8d8dee7a5e374355f05.js\";","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","import React from 'react';\nimport { createSelector } from 'reselect';\nimport { fromJS } from 'immutable';\nimport { parseIdentityProvider } from 'utils/identityProviders';\nimport { convertSecondsToReadableDate, opMoment } from 'utils/dates';\nimport { selectCurrentOrgId } from 'global/accessToken/selectors';\nimport { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { BILLING_SUBSCRIPTION_FORM } from 'routes/MasterOrgsEditPackagePage/constants';\nimport { selectIdentityEmail } from 'routes/AppContainer/selectors';\nimport { VIDEO_READER_ACU_MODEL_IDS } from 'utils/constants';\nimport {\n ENTRIES_REDUCER,\n ACUS_REDUCER,\n ACU_PORTS_REDUCER,\n CREDENTIAL_TYPES_REDUCER,\n USERS_REDUCER,\n LOCKDOWN_PLANS_REDUCER,\n SITES_REDUCER,\n ZONES_REDUCER,\n ACTIVITY_REDUCER,\n OPVIDEO_DEVICE_FRAGMENTS_REDUCER,\n VIDEO_PROVIDERS_REDUCER,\n WIRELESS_LOCK_PROVIDERS_REDUCER,\n ALLEGION_OPERATORS_REDUCER,\n ACU_CONFIG_REDUCER,\n ALARM_CONFIGURATIONS_REDUCER,\n READERS_REDUCER,\n ROLES_REDUCER,\n ALARM_ACTIVITY_REDUCER,\n OPVIDEO_DEVICES_REDUCER,\n} from './constants';\n\nconst selectPage = () => (state, props) =>\n state.get(props.route.name, fromJS({}));\n\nexport const selectPageData = () =>\n createSelector(selectPage(), (page) => page.get('pageData'));\n\n// The following two selectors are setup to be used multiple times per page\n// If you need to use instance functionality on a different reducer here,\n// you'll have to modify the action to take an 'instance' prop and then\n// modify the selectors to use it.\nexport const selectGroups = (instance) =>\n createSelector(selectPage(), (page) =>\n page.getIn([instance || 'groups'], fromJS([])),\n );\n\nexport const selectUserGroups = (instance) =>\n createSelector(selectPage(), (page) =>\n page.getIn([instance || 'userGroups'], fromJS([])),\n );\n\nexport const selectUsers = (instance) =>\n createSelector(selectPage(), (page) => page.get(instance || 'users'));\n\nexport const selectfilteredUsersCount = (instance) =>\n createSelector(selectPage(), (page) =>\n page.get(instance || 'filteredUsersCount'),\n );\n\nexport const selectTotalUsersCount = (instance) =>\n createSelector(selectPage(), (page) =>\n page.get(instance || 'totalUsersCount'),\n );\n\nexport const selectAllAcuEntriesUsers = () =>\n createSelector(selectPage(), (page) => page.get('allAcuEntriesUsers'));\n\nexport const selectOrg = () =>\n createSelector(selectPage(), (page) => page.get('org'));\n\nexport const selectBillableFeatures = () =>\n createSelector(selectOrg(), (org) => org.get('billableFeatures', fromJS([])));\n\nexport const selectIdentityProviders = () =>\n createSelector(selectPage(), (page) => page.get('identityProviders'));\n\nexport const selectPackagePlans = () =>\n createSelector(selectPage(), (page) => page.get('netsuitePackagePlans'));\n\nexport const selectFilteredPackagePlans = () =>\n createSelector(selectPage(), (page) => {\n // We only want to display base packages for which there are currently available package plans for the selected interval, term length, and currency\n const formValues = page.getIn([\n 'form',\n BILLING_SUBSCRIPTION_FORM,\n 'values',\n ]);\n if (formValues && formValues.get('interval')) {\n return page\n .get('netsuitePackagePlans')\n .filter(\n (pp) =>\n pp.getIn(['netsuitePlan', 'interval']) ===\n formValues.get('interval') &&\n pp.getIn(['netsuitePlan', 'interval_count']) ===\n formValues.get('interval_count') &&\n pp.getIn(['netsuitePlan', 'currency']) ===\n formValues.get('currency'),\n );\n }\n return page.get('netsuitePackagePlans');\n });\n\nexport const selectCurrentParentPackagePlan = () =>\n createSelector(\n selectPackagePlans(),\n (packagePlans) =>\n packagePlans.find(\n (plan) =>\n plan.get('isSelected') === true &&\n !plan.getIn(['package', 'parentPackages']).size,\n ) || fromJS({}),\n );\n\nexport const selectCurrentNetsuiteParentPackagePlan = () =>\n createSelector(\n selectFilteredPackagePlans(),\n (packagePlans) =>\n packagePlans.find(\n (plan) =>\n plan.get('isSelected') === true &&\n !plan.getIn(['package', 'parentPackages']).size,\n ) || fromJS({}),\n );\n\nexport const selectPackageEnabledById = () =>\n createSelector(selectPackagePlans(), (packagePlans) =>\n packagePlans\n .filter((plan) => plan.get('isSelected'))\n .reduce(\n (acc, plan) => acc.set(String(plan.getIn(['package', 'id'])), true),\n fromJS({}),\n ),\n );\n\nexport const selectPackages = () =>\n createSelector(selectPackagePlans(), (data) =>\n fromJS(\n data.reduce((acc, cur) => {\n if (!cur.get('netsuitePlan')) return acc;\n const foundPackageIndex = acc.findIndex(\n (pkg) => pkg.get('id') === cur.getIn(['package', 'id']),\n );\n if (foundPackageIndex === -1) {\n const pkg = cur\n .get('package')\n .set(\n 'netsuitePlans',\n fromJS([\n cur\n .get('netsuitePlan')\n .set('isSelected', cur.get('isSelected')),\n ]),\n );\n return acc.push(pkg);\n }\n return acc.updateIn([foundPackageIndex, 'netsuitePlans'], (arr) =>\n arr.push(\n cur.get('netsuitePlan').set('isSelected', cur.get('isSelected')),\n ),\n );\n }, fromJS([])),\n ),\n );\n\nexport const selectNetsuitePackages = () =>\n createSelector(selectFilteredPackagePlans(), (data) =>\n fromJS(\n data.reduce((acc, cur) => {\n if (!cur.get('netsuitePlan')) return acc;\n const foundPackageIndex = acc.findIndex(\n (pkg) => pkg.get('id') === cur.getIn(['package', 'id']),\n );\n if (foundPackageIndex === -1) {\n const pkg = cur\n .get('package')\n .set(\n 'netsuitePlans',\n fromJS([\n cur\n .get('netsuitePlan')\n .set('isSelected', cur.get('isSelected')),\n ]),\n );\n return acc.push(pkg);\n }\n return acc.updateIn([foundPackageIndex, 'netsuitePlans'], (arr) =>\n arr.push(\n cur.get('netsuitePlan').set('isSelected', cur.get('isSelected')),\n ),\n );\n }, fromJS([])),\n ),\n );\n\nexport const selectNetsuitePlanIntervals = () =>\n createSelector(selectPackages(), (packages) =>\n fromJS(\n packages.reduce((acc, currentPackage) => {\n currentPackage.get('netsuitePlans').forEach((netsuitePlan) => {\n if (!acc.includes(netsuitePlan.get('interval'))) {\n acc.push(netsuitePlan.get('interval'));\n }\n });\n return acc;\n }, []),\n ),\n );\n\nexport const selectNetsuitePlanLengths = () =>\n createSelector(selectPackages(), (packages) =>\n fromJS(\n packages.reduce((acc, currentPackage) => {\n currentPackage.get('netsuitePlans').forEach((netsuitePlan) => {\n if (\n acc.findIndex(\n (a) => a.value === netsuitePlan.get('interval_count'),\n ) === -1\n ) {\n const length = netsuitePlan.get('interval_count');\n acc.push({\n label: `${length} year${length > 1 ? 's' : ''}`,\n value: length,\n });\n }\n });\n return acc;\n }, []),\n ),\n );\n\nexport const selectOptionsForCurrenciesMultiSelect = () =>\n createSelector(selectPackages(), (packages) =>\n fromJS(\n packages.reduce((acc, currentPackage) => {\n currentPackage.get('netsuitePlans').forEach((netsuitePlan) => {\n const currency = netsuitePlan.get('currency');\n\n // Only add currency to array if it doesn't already exist\n if (\n !acc\n .map(({ value }) => value)\n .includes(netsuitePlan.get('currency'))\n ) {\n acc.push({ label: currency.toUpperCase(), value: currency });\n }\n });\n return acc;\n }, []),\n ),\n );\n\nexport const selectEntries = () =>\n createSelector(selectPage(), (page) => page.get('entries', fromJS([])));\n\nexport const selectOptionsForEntriesMultiSelect = () =>\n createSelector(selectEntries(), (entries) =>\n entries.map((entry) => ({\n label: entry.get('name'),\n value: entry.get('id'),\n })),\n );\n\nexport const selectGroup = () =>\n createSelector(selectPage(), (page) => page.get('group'));\n\nexport const selectGroupUserCount = () =>\n createSelector(selectGroup(), (group) => group.get('userCount') || 0);\n\nexport const selectGroupsForMultiSelect = () =>\n createSelector(selectGroups(), (orgGroups) =>\n orgGroups.map((group) => ({\n label: group.get('name'),\n value: group.get('id'),\n })),\n );\n\nexport const selectSites = () =>\n createSelector(selectPage(), (page) => page.get('sites') || fromJS([]));\n\nexport const selectSitesForMultiSelect = () =>\n createSelector(selectSites(), (orgSites) =>\n orgSites.map((site) => ({\n label: site.get('name'),\n value: site.get('id'),\n })),\n );\n\nexport const selectZones = () =>\n createSelector(selectPage(), (page) => page.get('zones'));\n\nexport const selectAlarmConfigurations = () =>\n createSelector(selectPage(), (page) => page.get('alarmConfigurations'));\n\nexport const selectZone = () =>\n createSelector(selectPage(), (page) => page.get('zone'));\n\nexport const selectZoneEntries = () =>\n createSelector(selectZone(), (zone) => zone.get('entries'));\n\nexport const selectOptionsForZoneEntriesMultiSelect = () =>\n createSelector(selectZone(), (zone) => {\n const zoneEntries = zone.get('entries');\n return zoneEntries\n ? zoneEntries.map((zoneEntry) => ({\n label: zoneEntry.get('name'),\n value: zoneEntry.get('id'),\n }))\n : [];\n });\n\nexport const selectZoneGroupCount = () =>\n createSelector(selectZone(), (zone) => zone.get('groupCount') || 0);\n\nexport const selectZoneUserCount = () =>\n createSelector(selectZone(), (zone) => zone.get('userCount') || 0);\n\nexport const selectSiteZoneMap = () =>\n createSelector(selectZones(), (orgZones) =>\n fromJS(\n orgZones.reduce((acc, currentZone) => {\n const zoneObj = {\n id: currentZone.get('id'),\n name: currentZone.get('name'),\n entryCount: currentZone.get('entryCount'),\n offlineEntryCount: currentZone.get('offlineEntryCount'),\n entries: currentZone.get('entries'),\n };\n if (!acc[currentZone.getIn(['site', 'id'])]) {\n // if site doesn't exist as key yet, create key using site's id\n // eslint-disable-next-line no-param-reassign\n acc[currentZone.getIn(['site', 'id'])] = {\n name: currentZone.getIn(['site', 'name']), // site name\n zones: [zoneObj],\n };\n } else {\n // site key already exists so push zone info into array\n acc[currentZone.getIn(['site', 'id'])].zones.push(zoneObj);\n }\n\n return acc;\n }, {}),\n ),\n );\n\nexport const selectZonesForMultiSelect = () =>\n createSelector(selectZones(), (orgZones) =>\n orgZones.map((zone) => ({\n label: zone.get('name'),\n value: zone.get('id'),\n })),\n );\n\nexport const selectOwnedZones = () =>\n createSelector([selectCurrentOrgId(), selectPage()], (orgId, page) =>\n page.get('zones').filter((zone) => zone.getIn(['org', 'id']) === orgId),\n );\n\nexport const selectOwnedZonesForMultiSelect = () =>\n createSelector(selectOwnedZones(), (orgZones) =>\n orgZones.map((zone) => ({\n label: zone.get('name'),\n value: zone.get('id'),\n })),\n );\n\nexport const selectOptionsForGroupsMultiSelect = () =>\n createSelector(selectGroups(), (Groups) =>\n Groups.map((user) => {\n const value = user.get('id');\n const label = user.getIn(['name']);\n\n return {\n label,\n value,\n };\n }),\n );\n\nexport const selectUserEntries = () =>\n createSelector(selectPage(), (page) => page.get('userEntries', fromJS([])));\n\nexport const selectUserCredentials = () =>\n createSelector(selectPage(), (page) =>\n page.get('userCredentials', fromJS([])),\n );\n\nexport const selectOptionsForUserEntriesMultiSelect = () =>\n createSelector(selectUserEntries(), (userEntries) =>\n userEntries.map((entry) => ({\n label: entry.get('name'),\n value: entry.get('id'),\n })),\n );\n\nexport const selectEntryStates = () =>\n createSelector(selectPage(), (page) => page.get('entryStates'));\n\nexport const selectEntryStatesForMultiSelect = () =>\n createSelector(selectEntryStates(), (orgEntryStates) =>\n orgEntryStates.map((entryState) => ({\n label: entryState.get('name'),\n value: entryState.get('id'),\n })),\n );\n\nexport const selectTriggerMethods = () =>\n createSelector(\n selectPage(),\n selectFeatureFlag('ENABLED_TRIGGER_METHOD_CODES'),\n (page, enabledCodes) => {\n let result = page.get('triggerMethods');\n if (enabledCodes) {\n result = result.filter((m) => enabledCodes.includes(m.get('code')));\n }\n return result;\n },\n );\n\nexport const selectIos = () =>\n createSelector(selectPage(), (page) => page.get('ios'));\n\nexport const selectAcus = () =>\n createSelector(selectPage(), (page) => page.get('acus'));\n\nexport const selectAcusForMultiSelect = () =>\n createSelector(selectAcus(), (orgAcus) =>\n orgAcus.map((acu) => ({\n label: acu.get('name'),\n value: acu.get('id'),\n acuModelId: acu.getIn(['acuModel', 'id']),\n })),\n );\n\nexport const selectWirelessLocks = () =>\n createSelector(selectPage(), (page) => page.get('wirelessLocks'));\n\nexport const selectWirelessLockProviderIdForAllegion = () =>\n createSelector(\n selectOrgContainerReducer(WIRELESS_LOCK_PROVIDERS_REDUCER)(),\n (wirelessLockProviders) => {\n if (!wirelessLockProviders.get('hasLoaded')) {\n return null;\n }\n\n return wirelessLockProviders\n ? wirelessLockProviders\n .get('data')\n .find(\n (providerObject) =>\n providerObject.getIn(['wirelessLockProviderType', 'id']) === 1, // Allegion\n )\n ?.get?.('id')\n : null;\n },\n );\n\nexport const selectIsUserAnAllegionOperator = () =>\n createSelector(\n selectOrgContainerReducer(ALLEGION_OPERATORS_REDUCER)(),\n selectIdentityEmail(),\n (allegionOperatorsReducer, identityEmail) => {\n if (!allegionOperatorsReducer.get('hasLoaded') || !identityEmail) {\n return undefined;\n }\n\n return !!allegionOperatorsReducer\n .get('data')\n ?.find?.((operator) => operator?.get?.('userName') === identityEmail);\n },\n );\n\nexport const selectWirelessLocksForMultiSelect = () =>\n createSelector(selectWirelessLocks(), (wirelessLocks) =>\n wirelessLocks.map((wirelessLock) => ({\n id: wirelessLock.get('id'),\n entryId: wirelessLock.getIn(['entry', 'id']),\n label: wirelessLock.get('name'),\n value: wirelessLock.get('id'),\n })),\n );\n\nexport const selectScopesFlat = () =>\n createSelector(\n selectPage(),\n (page) =>\n page\n .get('scopeResources')\n .reduce((acc, sr) => acc.concat(sr.get('scopes')), fromJS([])),\n // const reducer = (accumulator, currentValue) => accumulator + currentValue;\n );\n\nexport const selectScopeResources = () =>\n createSelector(selectPage(), (page) => {\n // the magic to set up the childScopes field\n const processedCodes = [];\n const scopeResources = page.get('scopeResources');\n return (\n scopeResources\n // .filter(sr => sr.get('name') === 'Users')\n .map((sr) => {\n // loop through scopes and make sure they have their grouping code\n const newScopes = sr\n .get('scopes')\n .map((s) => {\n // console.debug(`[s] - ${JSON.stringify(s, null, 2)}`)\n const code = s.get('code');\n const c = code.match(/((o){(\\d*\\w*)}-)?(.*?):(\\w)/);\n const [, , , , groupingCode] = c;\n return s.set('groupingCode', groupingCode);\n })\n\n .map((s, i, og) => {\n if (processedCodes.includes(s.get('groupingCode'))) {\n return undefined;\n }\n processedCodes.push(s.get('groupingCode'));\n return fromJS({\n groupingCode: s.get('groupingCode'),\n ordinal: s.get('ordinal'),\n scopes: og.filter(\n (x) => x.get('groupingCode') === s.get('groupingCode'),\n ),\n });\n })\n .filter((x) => x); // this is because we return undefined above, could refactor to reduce\n return sr.set('scopes', newScopes);\n })\n );\n });\n\nexport const selectRoles = () =>\n createSelector(selectPage(), (page) => page.get('roles'));\n\nexport const selectRole = () =>\n createSelector(selectPage(), (page) => page.get('role'));\n\nexport const selectRoleEditable = () =>\n createSelector(selectRole(), (role) => role.get('isEditable') || false);\n\nexport const selectRoleUserCount = () =>\n createSelector(selectRole(), (role) => role.get('userCount') || 0);\n\nexport const selectGroupSchedules = () =>\n createSelector(selectPage(), (page) => page.get('groupSchedules'));\n\nexport const selectOptionsForGroupSchedulesMultiSelect = () =>\n createSelector(selectGroupSchedules(), (groupSchedules) =>\n groupSchedules\n .filter((schedule) => schedule.getIn(['scheduleType', 'id']) === 3)\n .map((schedule) => ({\n label: schedule.get('name'),\n value: schedule.get('id'),\n })),\n );\n\nexport const selectActivity = () =>\n createSelector(selectPage(), (page) => page.get('activity'));\nexport const selectVisualActivity = () =>\n createSelector(selectPage(), (page) => page.get('visualActivity'));\n\nexport const selectTableFormattedActivityLogs = () =>\n createSelector(selectPage(), selectPageData(), (page, pageData) => {\n let activity = page.get('activity');\n let filterOptions = pageData.get('filterOptions');\n const sortOptions = pageData.get('sortOptions');\n let sortColumn = null;\n let sortOrderIsAscending = null;\n\n /* Assuming hard coded columns to increase performance (sort->map instead\n of map->sort->map due to converting time to readable date). The keys match\n the ids of the columns, and the values match the keys of the helium data. */\n const columnIdToHeliumKey = {\n time: 'time',\n userName: 'userName',\n userOrgName: 'userOrgName',\n credentialTypeName: 'credentialTypeName',\n credentialDetail: 'credentialDetail',\n acuName: 'acuName',\n entryName: 'entryName',\n targetType: 'targetType',\n targetName: 'targetName',\n requestType: 'requestType',\n location: 'location',\n result: 'result',\n deniedReason: 'deniedReason',\n };\n\n // Remove any filters with empty strings from the list\n filterOptions = filterOptions.filter((value) => value !== '');\n\n // Filter activity\n if (filterOptions.size) {\n activity = activity.filter((value) => {\n let shouldKeep = true;\n\n // Check if the column cell contains the corresponding columnFilter\n filterOptions.forEach((columnFilter, columnId) => {\n // Check if the cell contains the columnFilter\n const filter = new RegExp(columnFilter, 'gi');\n shouldKeep =\n shouldKeep && filter.test(value.get(columnIdToHeliumKey[columnId]));\n });\n\n return shouldKeep;\n });\n }\n\n // Sort activity\n if (sortOptions && sortOptions.size) {\n sortOptions.entrySeq().forEach(([key, value]) => {\n if (value.get('isSelected')) {\n sortColumn = key;\n sortOrderIsAscending = value.get('sortOrderIsAscending');\n }\n });\n }\n\n if (sortColumn) {\n activity = sortOrderIsAscending\n ? activity.sortBy((a) => a.get(columnIdToHeliumKey[sortColumn]))\n : activity\n .sortBy((a) => a.get(columnIdToHeliumKey[sortColumn]))\n .reverse();\n }\n\n const formattedActivity = activity.map((log) => ({\n time: convertSecondsToReadableDate(log.get('time')),\n userName: log.get('userName'),\n userOrgName: log.get('userOrgName'),\n credentialTypeName: log.get('credentialTypeName'),\n credentialDetail: log.get('credentialDetail'),\n acuName: log.get('acuName'),\n entryName: log.get('entryName'),\n targetType: log.get('targetType'),\n targetName: log.get('targetName'),\n requestType: log.get('requestType'),\n location: log.get('location'),\n result: log.get('result'),\n deniedReason: log.get('deniedReason') ? log.get('deniedReason') : '--',\n }));\n\n return fromJS(formattedActivity);\n });\n\nexport const selectUserActivity = () =>\n createSelector(selectPage(), (page) => page.get('userActivity'));\n\nexport const selectTableFormattedUserActivityLogs = () =>\n createSelector(selectPage(), selectPageData(), (page, pageData) => {\n let activity = page.get('userActivity');\n let filterOptions = pageData.get('filterOptions');\n const sortOptions = pageData.get('sortOptions');\n let sortColumn = null;\n let sortOrderIsAscending = null;\n\n /* Assuming hard coded columns to increase performance (sort->map instead\n of map->sort->map due to converting time to readable date). The keys match\n the ids of the columns, and the values match the keys of the helium data. */\n const columnIdToHeliumKey = {\n time: 'time',\n userName: 'userName',\n userOrgName: 'userOrgName',\n credentialTypeName: 'credentialTypeName',\n credentialDetail: 'credentialDetail',\n acuName: 'acuName',\n entryName: 'entryName',\n targetType: 'targetType',\n targetName: 'targetName',\n requestType: 'requestType',\n location: 'location',\n result: 'result',\n deniedReason: 'deniedReason',\n };\n\n // Remove any filters with empty strings from the list\n filterOptions = filterOptions.filter((value) => value !== '');\n\n // Filter activity\n if (filterOptions.size) {\n activity = activity.filter((value) => {\n let shouldKeep = true;\n\n // Check if the column cell contains the corresponding columnFilter\n filterOptions.forEach((columnFilter, columnId) => {\n // Check if the cell contains the columnFilter\n const filter = new RegExp(columnFilter, 'gi');\n shouldKeep =\n shouldKeep && filter.test(value.get(columnIdToHeliumKey[columnId]));\n });\n\n return shouldKeep;\n });\n }\n\n // Sort activity\n if (sortOptions && sortOptions.size) {\n sortOptions.entrySeq().forEach(([key, value]) => {\n if (value.get('isSelected')) {\n sortColumn = key;\n sortOrderIsAscending = value.get('sortOrderIsAscending');\n }\n });\n }\n\n if (sortColumn) {\n activity = sortOrderIsAscending\n ? activity.sortBy((a) => a.get(columnIdToHeliumKey[sortColumn]))\n : activity\n .sortBy((a) => a.get(columnIdToHeliumKey[sortColumn]))\n .reverse();\n }\n\n const formattedUserActivity = activity.map((log) => ({\n time: convertSecondsToReadableDate(log.get('time')),\n userName: log.get('userName'),\n userOrgName: log.get('userOrgName'),\n credentialTypeName: log.get('credentialTypeName'),\n credentialDetail: log.get('credentialDetail'),\n acuName: log.get('acuName'),\n entryName: log.get('entryName'),\n targetType: log.get('targetType'),\n targetName: log.get('targetName'),\n requestType: log.get('requestType'),\n location: log.get('location'),\n result: log.get('result'),\n deniedReason: log.get('deniedReason') ? log.get('deniedReason') : '--',\n }));\n\n return fromJS(formattedUserActivity);\n });\n\nexport const selectIdentityProviderGroups = () =>\n createSelector(selectPage(), (page) =>\n page.get('identityProviderGroups', fromJS([])),\n );\n\nexport const selectIdentityProviderGroupRelations = () =>\n createSelector(selectPage(), (page) =>\n page.get('identityProviderGroupRelations'),\n );\n\nexport const selectEntryUserSchedules = () =>\n createSelector(selectPage(), (page) => page.get('entryUserSchedules'));\n\nexport const selectCredentialTypes = () =>\n createSelector(selectPage(), (page) => page.get('credentialTypes'));\n\nexport const selectCredentials = () =>\n createSelector(selectPage(), (page) => page.get('credentials'));\n\nexport const selectOptionsForCredentialTypesMultiSelect = () =>\n createSelector(\n selectCredentialTypes(),\n selectFeatureFlag('ENABLED_USER_CREDENTIAL_TYPES'),\n (orgCredentialTypes, enabledCredentialTypes) =>\n orgCredentialTypes\n .filter((credentialType) =>\n enabledCredentialTypes.includes(credentialType.get('modelName')),\n )\n .map((credentialType) => ({\n label: credentialType.get('name'),\n value: credentialType.get('id'),\n })),\n );\n\nexport const selectCardFormats = () =>\n createSelector(selectPage(), (page) => page.get('cardFormats'));\n\nexport const selectScheduleTypes = () =>\n createSelector(selectPage(), (page) => page.get('scheduleTypes'));\n\nexport const selectOptionsForScheduleTypesMultiSelect = () =>\n createSelector(selectScheduleTypes(), (scheduleTypes) =>\n scheduleTypes.map((scheduleType) => ({\n label: scheduleType.get('name'),\n value: scheduleType.get('id'),\n })),\n );\n\nexport const selectSchedules = () =>\n createSelector(selectPage(), (page) => page.get('schedules'));\n\nexport const selectOptionsForSchedulesMultiSelect = () =>\n createSelector(selectSchedules(), (schedules) =>\n schedules.map((schedule) => ({\n label: schedule.get('name'),\n value: schedule.get('id'),\n })),\n );\n\nexport const selectScheduleEvents = () =>\n createSelector(selectPage(), (page) => page.get('scheduleEvents'));\n\nexport const selectAuditLogs = () =>\n createSelector(selectPage(), (page) => page.get('auditLogs'));\n\nexport const selectSharedUsers = () =>\n createSelector(selectPage(), (page) => page.get('sharedUsers', fromJS([])));\n\nexport const selectAcuPorts = () =>\n createSelector(selectPage(), (page) => page.get('acuPorts'));\n\nexport const selectRequestTypes = () =>\n createSelector(selectPage(), (page) => page.get('requestTypes'));\n\nexport const selectProtonStatuses = () =>\n createSelector(selectPage(), (page) => page.get('protonStatuses'));\n\nexport const selectNamespaces = () =>\n createSelector(selectPage(), (page) => page.get('namespaces'));\n\nexport const selectHookEvents = () =>\n createSelector(selectPage(), (page) => page.get('hookEvents'));\n\nexport const selectHookAction = () =>\n createSelector(selectPage(), (page) => page.get('hookAction'));\n\n/// ///////////////////\n\nexport const selectOrgContainerReducer = (reducerName, subFilter) => () =>\n createSelector(selectPage(), (page) => {\n return subFilter\n ? // Not using getIn as the combineReducer doesn't seem\n // to allow for making the key/value pair immutable (need\n // to look into more)\n page.get(subFilter)[reducerName]\n : page.get(reducerName);\n });\n\nexport const selectOrgContainerReducers = () => () =>\n createSelector(selectPage(), (page) => page);\n\nexport const selectData = (reducerName) => () =>\n createSelector(selectOrgContainerReducer(reducerName)(), (reducer) =>\n reducer.get('data'),\n );\n\nexport const selectFilteredCount = (reducerName) => () =>\n createSelector(selectOrgContainerReducer(reducerName)(), (reducer) =>\n reducer.get('filteredCount'),\n );\n\nexport const selectTotalCount = (reducerName) => () =>\n createSelector(selectOrgContainerReducer(reducerName)(), (reducer) =>\n reducer.get('totalCount'),\n );\n\n// Allows retrieval of any item in a reducer\nexport const selectOrgContainerReducerItem =\n (reducerName, itemPath, subFilter, returnJs = false) =>\n () =>\n createSelector(\n selectOrgContainerReducer(reducerName, subFilter)(),\n (reducer) => {\n const x = itemPath ? reducer?.getIn(itemPath.split('.')) : reducer;\n if (x && returnJs) {\n return x.toJS();\n }\n return x;\n },\n // not something I want to do a lot, but this reducer crashes in certain injection scenarios (video widget)\n // due to injection of reducer not finishing before selector fires? This solves it\n // but we can revisit after unit tests are added -justin\n );\n\n// Select options for a Sementic UI React <Select>\nconst defaultDataMapper = (data) =>\n data.map((row) => ({\n key: row.get('id'),\n value: row.get('id'),\n text: row.get('name'),\n }));\n\nexport const selectOptions = (reducerName, dataMapper = defaultDataMapper) =>\n createSelector(selectOrgContainerReducer(reducerName)(), dataMapper);\n\n// Select options for our wrapped versions of Semantic UI React\nconst defaultDataMapperOld = (data) =>\n data.map((row) => ({\n label: row.get('name'),\n value: row.get('id'),\n }));\nexport const selectOptionsOld = (\n reducerName,\n dataMapper = defaultDataMapperOld,\n) => createSelector(selectOrgContainerReducer(reducerName)(), dataMapper);\n\nconst usersDataMapperOld = (users) =>\n users.map((user) => {\n const userId = user.get('id');\n const fullName = user.getIn(['identity', 'fullName']);\n const email = user.getIn(['identity', 'email']);\n const idp = parseIdentityProvider(user.get('identity'));\n\n return {\n // If the user doesn't have first and last name, show email instead\n label: fullName || email || '[Unknown Name]',\n value: userId,\n tooltipContent: (\n <div>\n <div>\n <span className=\"op-font-weight-500\">Email:</span> {email}\n </div>\n <div>\n <span className=\"op-font-weight-500\">IDP:</span> {idp}\n </div>\n </div>\n ),\n };\n });\nexport const selectUserOptionsForDropdown = selectOptionsOld(\n USERS_REDUCER,\n usersDataMapperOld,\n);\n\nexport const selectRolesForMultiSelect = selectOptionsOld(ROLES_REDUCER);\nexport const selectReaderOptions = selectOptionsOld(READERS_REDUCER);\nexport const selectAlarmConfigurationOptions = selectOptionsOld(\n ALARM_CONFIGURATIONS_REDUCER,\n);\n\nexport const selectAlarmActivity = selectOrgContainerReducer(\n ALARM_ACTIVITY_REDUCER,\n);\n\n// TODO - create component and fetch user avatar in it\n// const usersDataMapperOld = (users) =>\n// users.map((user) => {\n// console.log({ user: user.toJS() });\n// const userId = user.get('id');\n// const fullName = user.getIn(['identity', 'fullName']);\n// const email = user.getIn(['identity', 'email']);\n// const idp = parseIdentityProvider(user.get('identity'));\n\n// return {\n// // If the user doesn't have first and last name, show email instead\n// label: fullName || email || '[Unknown Name]',\n// value: userId,\n// content: (\n// <Header\n// as=\"h4\"\n// className=\"op-align-items-center\"\n// image={{\n// avatar: true,\n// size: 'massive',\n// src: 'https://uifaces.co/our-content/donated/vIqzOHXj.jpg',\n// }}\n// content={fullName}\n// subheader={{\n// content: (\n// <div>\n// <div>{email}</div>\n// <div style={{ fontSize: 10 }}>{idp}</div>\n// </div>\n// ),\n// }}\n// />\n// ),\n// };\n// });\n\n// TODO - switch out all userOptions for this one\n// export const selectUserOptionsForDropdown = () => createSelector(\n// selectUsers(),\n// users => users\n// // .filter(user => user.get('status') !== 'I') // Filter out any inactive users\n// .map((user, index) => {\n// const value = user.get('id')\n// const email = user.getIn(['identity', 'email'])\n\n// const url = 'data:image/png;base64,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'\n// const url2 = 'https://uifaces.co/our-content/donated/vIqzOHXj.jpg'\n// return {\n// // If the user doesn't have first and last name, show email instead\n// label: generateUserLabel(user),\n// value,\n// content: (\n// <Header\n// as=\"h4\"\n// className=\"op-align-items-center\"\n// image={{\n// avatar: true,\n// size: 'massive',\n// src: index === 1 ? url2 : url,\n// }}\n// content={generateUserLabel(user)}\n// subheader={{\n// content: (\n// <div>\n// <div>{email}</div>\n// <div style={{ fontSize: 10 }}>{parseIdentityProvider(user.get('identity'))}</div>\n// </div>\n// ),\n// }}\n// />\n// ),\n// }\n// })\n// )\n\n// Breaks down entry unlock attempts into granted and denied per entryId\n// e.g. { 123: { granted: 12, denied: 1 }}\nexport const selectEntryUnlockCounts = () =>\n createSelector(selectOrgContainerReducer(ACTIVITY_REDUCER)(), (activity) =>\n activity.reduce((acc, row) => {\n const entryId = row.get('entryId');\n const result = row.get('result');\n if (acc.get(entryId)) {\n return result === 'Granted'\n ? acc.setIn([entryId, 'granted'], acc.getIn([entryId, 'granted']) + 1)\n : acc.setIn([entryId, 'denied'], acc.getIn([entryId, 'denied']) + 1);\n }\n return result === 'Granted'\n ? acc.set(entryId, fromJS({ granted: 1, denied: 0 }))\n : acc.set(entryId, fromJS({ granted: 0, denied: 1 }));\n }, fromJS({})),\n );\n\n// Groups opvideo device fragments into full-length clips\nconst SECONDS_BETWEEN_FRAGMENTS_THRESHOLD = 1;\nexport const selectOpvideoDeviceClips = createSelector(\n selectOrgContainerReducer(OPVIDEO_DEVICE_FRAGMENTS_REDUCER)(),\n (opvideoDeviceFragments) =>\n (opvideoDeviceFragments.get('fragments') || fromJS([]))\n // Sort ascending by 'producerTimestamp'\n .sort((a, b) => {\n const first = opMoment(a.get('producerTimestamp'));\n const second = opMoment(b.get('producerTimestamp'));\n if (first.isAfter(second)) {\n return 1;\n }\n if (first.isBefore(second)) {\n return -1;\n }\n return 0;\n })\n // Organize into full-length clips\n .reduce((acc, fragment) => {\n // Use valueOf so that we can maintain ms precision\n const fragmentUnixTimestamp =\n opMoment(fragment.get('producerTimestamp')).valueOf() / 1000;\n const fragmentLengthSec = fragment.get('lengthMs') / 1000;\n const lastClip = acc.get(-1);\n if (\n !lastClip ||\n lastClip.get('end') + SECONDS_BETWEEN_FRAGMENTS_THRESHOLD <\n fragmentUnixTimestamp\n ) {\n // First fragment in clip\n return acc.push(\n fromJS({\n start: fragmentUnixTimestamp,\n end: fragmentUnixTimestamp + fragmentLengthSec,\n }),\n );\n }\n return acc.setIn(\n [-1, 'end'],\n fragmentUnixTimestamp + fragmentLengthSec,\n );\n }, fromJS([])),\n // // Reverse so that newest clips are first\n // .reverse()\n);\n\n// Option creators (non-Semantic UI React)\nexport const selectEntryOptions = () =>\n createSelector(selectOrgContainerReducer(ENTRIES_REDUCER)(), (entries) =>\n entries.map((entry) => ({\n label: entry.get('name'),\n value: entry.get('id'),\n })),\n );\nexport const selectZoneOptions = () =>\n createSelector(selectOrgContainerReducer(ZONES_REDUCER)(), (zones) =>\n zones.map((zone) => ({ label: zone.get('name'), value: zone.get('id') })),\n );\nexport const selectSiteOptions = () =>\n createSelector(selectOrgContainerReducer(SITES_REDUCER)(), (sites) =>\n sites.map((site) => ({ label: site.get('name'), value: site.get('id') })),\n );\nexport const selectAllAcuOptions = () =>\n createSelector(selectOrgContainerReducer(ACUS_REDUCER)(), (acus) =>\n acus.map((acu) => ({ label: acu.get('name'), value: acu.get('id') })),\n );\nexport const selectAcuOptions = () =>\n createSelector(selectOrgContainerReducer(ACUS_REDUCER)(), (acus) =>\n acus\n .filter((acu) => {\n const acuModelId = acu.getIn(['acuModel', 'id']);\n return !VIDEO_READER_ACU_MODEL_IDS.includes(acuModelId);\n })\n .map((acu) => ({ label: acu.get('name'), value: acu.get('id') })),\n );\n\nexport const selectAcuGenericInputPortOptions = () =>\n createSelector(selectOrgContainerReducer(ACU_PORTS_REDUCER)(), (acuPorts) =>\n acuPorts\n .filter((acuPort) => acuPort.get('genericInput'))\n .map((acuPort) => ({\n label: `${acuPort.get('label')} (${acuPort.getIn([\n 'genericInput',\n 'description',\n ])})`,\n value: acuPort.get('portNumber'),\n })),\n );\n\nexport const selectVideoReaderOptions = createSelector(\n selectOrgContainerReducer(OPVIDEO_DEVICES_REDUCER)(),\n (opvideoDevices) =>\n opvideoDevices.reduce((acc, opvideoDevice) => {\n // Don't add any intercoms\n if (opvideoDevice.getIn(['opvideoIntercom', 'id'])) return acc;\n\n acc.push({\n label: opvideoDevice.get('name'),\n value: opvideoDevice.get('opal'),\n });\n\n return acc;\n }, []),\n);\n\nexport const selectVideoIntercomReaderOptionsForIntercomEvents = createSelector(\n selectOrgContainerReducer(OPVIDEO_DEVICES_REDUCER)(),\n (opvideoDevices) =>\n opvideoDevices.reduce((acc, opvideoDevice) => {\n const opvideoIntercomOpal = opvideoDevice.getIn([\n 'opvideoIntercom',\n 'opal',\n ]);\n const opvideoIntercomName = opvideoDevice.getIn([\n 'opvideoIntercom',\n 'name',\n ]);\n\n // Don't add any non-intercoms\n if (!opvideoIntercomOpal) return acc;\n\n acc.push({\n label: opvideoIntercomName,\n value: opvideoIntercomOpal,\n });\n\n return acc;\n }, []),\n);\n\nexport const selectVideoIntercomReaderOptionsForNonIntercomEvents =\n createSelector(\n selectOrgContainerReducer(OPVIDEO_DEVICES_REDUCER)(),\n (opvideoDevices) =>\n opvideoDevices.reduce((acc, opvideoDevice) => {\n // Don't add any non-intercoms\n if (!opvideoDevice.getIn(['opvideoIntercom', 'id'])) return acc;\n\n const opvideoIntercomName = opvideoDevice.getIn([\n 'opvideoIntercom',\n 'name',\n ]);\n const opvideoDeviceOpal = opvideoDevice.get('opal');\n\n acc.push({\n label: opvideoIntercomName,\n value: opvideoDeviceOpal,\n });\n\n return acc;\n }, []),\n );\n\nexport const selectAcuContactSensorPortOptions = () =>\n createSelector(selectOrgContainerReducer(ACU_PORTS_REDUCER)(), (acuPorts) =>\n acuPorts\n .filter((acuPort) => acuPort.get('contactSensor'))\n .map((acuPort) => ({\n label: acuPort.get('label'),\n value: acuPort.get('portNumber'),\n })),\n );\nexport const selectAcuRexPortOptions = () =>\n createSelector(selectOrgContainerReducer(ACU_PORTS_REDUCER)(), (acuPorts) =>\n acuPorts\n .filter((acuPort) => acuPort.get('rex'))\n .map((acuPort) => ({\n label: acuPort.get('label'),\n value: acuPort.get('portNumber'),\n })),\n );\nexport const selectAcuRelayPortOptions = () =>\n createSelector(selectOrgContainerReducer(ACU_PORTS_REDUCER)(), (acuPorts) =>\n acuPorts\n .filter((acuPort) => acuPort.get('relay'))\n .map((acuPort) => ({\n label: acuPort.get('label'),\n value: acuPort.get('portNumber'),\n })),\n );\nexport const selectLockdownPlanOptions = () =>\n createSelector(\n selectOrgContainerReducer(LOCKDOWN_PLANS_REDUCER)(),\n (lockdownPlans) =>\n lockdownPlans.map((l) => ({\n label: l.get('name'),\n value: l.get('id'),\n })),\n );\nexport const selectCredentialTypeOptions = () =>\n createSelector(\n selectOrgContainerReducer(CREDENTIAL_TYPES_REDUCER)(),\n selectFeatureFlag('ENABLED_USER_CREDENTIAL_TYPES'),\n (orgCredentialTypes, enabledCredentialTypes) =>\n orgCredentialTypes\n .filter((credentialType) =>\n enabledCredentialTypes.includes(credentialType.get('modelName')),\n )\n .map((credentialType) => ({\n label: credentialType.get('name'),\n value: credentialType.get('id'),\n })),\n );\n\nexport const selectVideoProviders = () =>\n createSelector(\n selectOrgContainerReducer(VIDEO_PROVIDERS_REDUCER)(),\n (substate) => substate,\n );\n\nexport const selectAcuEntries = (subFilter) =>\n createSelector(\n selectOrgContainerReducer(ACU_CONFIG_REDUCER, subFilter)(),\n (acuConfig) =>\n (acuConfig.get('entryId') || fromJS({})).reduce(\n (acc, value, key) => acc.push(value.set('id', +key)),\n fromJS([]),\n ),\n );\n\nexport const selectCameras = (instance) =>\n createSelector(selectPage(), (page) =>\n page.getIn([instance || 'cameras'], fromJS([])),\n );\n\nexport const selectCamerasForMultiSelect = () =>\n createSelector(selectCameras(), (orgCameras) =>\n orgCameras.map((camera) => ({\n label: camera.get('nameExt'),\n value: camera.get('id'),\n })),\n );\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n _defineProperty(this, \"kvs\", new Map());\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const cls = classNames(hashId, cssVarCls, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n};\nexport default PurePanel;","module.exports = __webpack_public_path__ + \"8a5127228870aafabfff6111d29313d6.js\";","module.exports = __webpack_public_path__ + \"9938f30907f64b5d1bc4b641411ff8b8.js\";","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nexport const toHexFormat = (value, alpha) => (value === null || value === void 0 ? void 0 : value.replace(/[^\\w/]/g, '').slice(0, alpha ? 8 : 6)) || '';\nexport const getHex = (value, alpha) => value ? toHexFormat(value, alpha) : '';\nexport let AggregationColor = /*#__PURE__*/function () {\n function AggregationColor(color) {\n _classCallCheck(this, AggregationColor);\n var _a;\n this.cleared = false;\n // Clone from another AggregationColor\n if (color instanceof AggregationColor) {\n this.metaColor = color.metaColor.clone();\n this.colors = (_a = color.colors) === null || _a === void 0 ? void 0 : _a.map(info => ({\n color: new AggregationColor(info.color),\n percent: info.percent\n }));\n this.cleared = color.cleared;\n return;\n }\n const isArray = Array.isArray(color);\n if (isArray && color.length) {\n this.colors = color.map(_ref => {\n let {\n color: c,\n percent\n } = _ref;\n return {\n color: new AggregationColor(c),\n percent\n };\n });\n this.metaColor = new RcColor(this.colors[0].color.metaColor);\n } else {\n this.metaColor = new RcColor(isArray ? '' : color);\n }\n if (!color || isArray && !this.colors) {\n this.metaColor = this.metaColor.setA(0);\n this.cleared = true;\n }\n }\n return _createClass(AggregationColor, [{\n key: \"toHsb\",\n value: function toHsb() {\n return this.metaColor.toHsb();\n }\n }, {\n key: \"toHsbString\",\n value: function toHsbString() {\n return this.metaColor.toHsbString();\n }\n }, {\n key: \"toHex\",\n value: function toHex() {\n return getHex(this.toHexString(), this.metaColor.a < 1);\n }\n }, {\n key: \"toHexString\",\n value: function toHexString() {\n return this.metaColor.toHexString();\n }\n }, {\n key: \"toRgb\",\n value: function toRgb() {\n return this.metaColor.toRgb();\n }\n }, {\n key: \"toRgbString\",\n value: function toRgbString() {\n return this.metaColor.toRgbString();\n }\n }, {\n key: \"isGradient\",\n value: function isGradient() {\n return !!this.colors && !this.cleared;\n }\n }, {\n key: \"getColors\",\n value: function getColors() {\n return this.colors || [{\n color: this,\n percent: 0\n }];\n }\n }, {\n key: \"toCssString\",\n value: function toCssString() {\n const {\n colors\n } = this;\n // CSS line-gradient\n if (colors) {\n const colorsStr = colors.map(c => `${c.color.toRgbString()} ${c.percent}%`).join(', ');\n return `linear-gradient(90deg, ${colorsStr})`;\n }\n return this.metaColor.toRgbString();\n }\n }, {\n key: \"equals\",\n value: function equals(color) {\n if (!color || this.isGradient() !== color.isGradient()) {\n return false;\n }\n if (!this.isGradient()) {\n return this.toHexString() === color.toHexString();\n }\n return this.colors.length === color.colors.length && this.colors.every((c, i) => {\n const target = color.colors[i];\n return c.percent === target.percent && c.color.equals(target.color);\n });\n }\n }]);\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 `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** 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/** 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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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 * 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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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\nmodule.exports = debounce;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-divider span{font-size:.85714286rem;line-height:1.5}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpDivider/OpDivider.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAGE,iBCwCE,sBAAA,CACA,eAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-divider {\\n span {\\n @include common.get-body-font-styles('small');\\n }\\n}\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"d5999827bd3af6b813a871de344b109a.js\";","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const moveDownIn = new Keyframes('antMoveDownIn', {\n '0%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveDownOut = new Keyframes('antMoveDownOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, 100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveLeftIn = new Keyframes('antMoveLeftIn', {\n '0%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveLeftOut = new Keyframes('antMoveLeftOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(-100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveRightIn = new Keyframes('antMoveRightIn', {\n '0%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveRightOut = new Keyframes('antMoveRightOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(100%, 0, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nexport const moveUpIn = new Keyframes('antMoveUpIn', {\n '0%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n },\n '100%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n }\n});\nexport const moveUpOut = new Keyframes('antMoveUpOut', {\n '0%': {\n transform: 'translate3d(0, 0, 0)',\n transformOrigin: '0 0',\n opacity: 1\n },\n '100%': {\n transform: 'translate3d(0, -100%, 0)',\n transformOrigin: '0 0',\n opacity: 0\n }\n});\nconst moveMotion = {\n 'move-up': {\n inKeyframes: moveUpIn,\n outKeyframes: moveUpOut\n },\n 'move-down': {\n inKeyframes: moveDownIn,\n outKeyframes: moveDownOut\n },\n 'move-left': {\n inKeyframes: moveLeftIn,\n outKeyframes: moveLeftOut\n },\n 'move-right': {\n inKeyframes: moveRightIn,\n outKeyframes: moveRightOut\n }\n};\nexport const initMoveMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = moveMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormItem.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpFormItem.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport Form from 'antd/es/form';\nimport clsx from 'clsx';\n\nimport './OpFormItem.scss';\n\ninterface OpFormItemProps extends ComponentProps<typeof Form.Item> {\n testId?: string;\n}\n\nexport const OpFormItem = ({\n children,\n className,\n testId = 'op-form-item',\n ...rest\n}: OpFormItemProps) => {\n /**\n * I intentionally want to spread all props for now\n * I don't know as of now exactly the props we want to\n * use and we don't have Typescript to make\n * this simple\n */\n return (\n <Form.Item\n className={clsx('op-form-item', className)}\n data-testid={testId}\n {...rest}\n >\n {children}\n </Form.Item>\n );\n};\n","const genStatusStyle = token => {\n const {\n componentCls,\n menuCls,\n colorError,\n colorTextLightSolid\n } = token;\n const itemCls = `${menuCls}-item`;\n return {\n [`${componentCls}, ${componentCls}-menu-submenu`]: {\n [`${menuCls} ${itemCls}`]: {\n [`&${itemCls}-danger:not(${itemCls}-disabled)`]: {\n color: colorError,\n '&:hover': {\n color: colorTextLightSolid,\n backgroundColor: colorError\n }\n }\n }\n }\n };\n};\nexport default genStatusStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { initMoveMotion, initSlideMotion, initZoomMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genStatusStyle from './status';\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n menuCls,\n zIndexPopup,\n dropdownArrowDistance,\n sizePopupArrow,\n antCls,\n iconCls,\n motionDurationMid,\n paddingBlock,\n fontSize,\n dropdownEdgeChildPadding,\n colorTextDisabled,\n fontSizeIcon,\n controlPaddingHorizontal,\n colorBgElevated\n } = token;\n return [{\n [componentCls]: {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n display: 'block',\n // A placeholder out of dropdown visible range to avoid close when user moving\n '&::before': {\n position: 'absolute',\n insetBlock: token.calc(sizePopupArrow).div(2).sub(dropdownArrowDistance).equal(),\n // insetInlineStart: -7, // FIXME: Seems not work for hidden element\n zIndex: -9999,\n opacity: 0.0001,\n content: '\"\"'\n },\n // Makes vertical dropdowns have a scrollbar once they become taller than the viewport.\n '&-menu-vertical': {\n maxHeight: '100vh',\n overflowY: 'auto'\n },\n [`&-trigger${antCls}-btn`]: {\n [`& > ${iconCls}-down, & > ${antCls}-btn-icon > ${iconCls}-down`]: {\n fontSize: fontSizeIcon\n }\n },\n [`${componentCls}-wrap`]: {\n position: 'relative',\n [`${antCls}-btn > ${iconCls}-down`]: {\n fontSize: fontSizeIcon\n },\n [`${iconCls}-down::before`]: {\n transition: `transform ${motionDurationMid}`\n }\n },\n [`${componentCls}-wrap-open`]: {\n [`${iconCls}-down::before`]: {\n transform: `rotate(180deg)`\n }\n },\n [`\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n `]: {\n display: 'none'\n },\n // =============================================================\n // == Motion ==\n // =============================================================\n // When position is not enough for dropdown, the placement will revert.\n // We will handle this with revert motion name.\n [`&${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomRight,\n &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-top,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-top,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomLeft,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottom,\n &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-top,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topRight`]: {\n animationName: slideDownOut\n }\n }\n },\n // =============================================================\n // == Arrow style ==\n // =============================================================\n getArrowStyle(token, colorBgElevated, {\n arrowPlacement: {\n top: true,\n bottom: true\n }\n }), {\n // =============================================================\n // == Menu ==\n // =============================================================\n [`${componentCls} ${menuCls}`]: {\n position: 'relative',\n margin: 0\n },\n [`${menuCls}-submenu-popup`]: {\n position: 'absolute',\n zIndex: zIndexPopup,\n background: 'transparent',\n boxShadow: 'none',\n transformOrigin: '0 0',\n 'ul, li': {\n listStyle: 'none',\n margin: 0\n }\n },\n [`${componentCls}, ${componentCls}-menu-submenu`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [menuCls]: Object.assign(Object.assign({\n padding: dropdownEdgeChildPadding,\n listStyleType: 'none',\n backgroundColor: colorBgElevated,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary\n }, genFocusStyle(token)), {\n '&:empty': {\n padding: 0,\n boxShadow: 'none'\n },\n [`${menuCls}-item-group-title`]: {\n padding: `${unit(paddingBlock)} ${unit(controlPaddingHorizontal)}`,\n color: token.colorTextDescription,\n transition: `all ${motionDurationMid}`\n },\n // ======================= Item Content =======================\n [`${menuCls}-item`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n [`${menuCls}-item-icon`]: {\n minWidth: fontSize,\n marginInlineEnd: token.marginXS,\n fontSize: token.fontSizeSM\n },\n [`${menuCls}-title-content`]: {\n display: 'flex',\n alignItems: 'center',\n flex: 'auto',\n '> a': {\n color: 'inherit',\n transition: `all ${motionDurationMid}`,\n '&:hover': {\n color: 'inherit'\n },\n '&::after': {\n position: 'absolute',\n inset: 0,\n content: '\"\"'\n }\n },\n [`${menuCls}-item-extra`]: {\n paddingInlineStart: token.padding,\n marginInlineStart: 'auto',\n fontSize: token.fontSizeSM,\n color: token.colorTextDescription\n }\n },\n // =========================== Item ===========================\n [`${menuCls}-item, ${menuCls}-submenu-title`]: Object.assign(Object.assign({\n display: 'flex',\n margin: 0,\n padding: `${unit(paddingBlock)} ${unit(controlPaddingHorizontal)}`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${motionDurationMid}`,\n borderRadius: token.borderRadiusSM,\n '&:hover, &-active': {\n backgroundColor: token.controlItemBgHover\n }\n }, genFocusStyle(token)), {\n '&-selected': {\n color: token.colorPrimary,\n backgroundColor: token.controlItemBgActive,\n '&:hover, &-active': {\n backgroundColor: token.controlItemBgActiveHover\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n },\n a: {\n pointerEvents: 'none'\n }\n },\n '&-divider': {\n height: 1,\n // By design\n margin: `${unit(token.marginXXS)} 0`,\n overflow: 'hidden',\n lineHeight: 0,\n backgroundColor: token.colorSplit\n },\n [`${componentCls}-menu-submenu-expand-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n [`${componentCls}-menu-submenu-arrow-icon`]: {\n marginInlineEnd: '0 !important',\n color: token.colorTextDescription,\n fontSize: fontSizeIcon,\n fontStyle: 'normal'\n }\n }\n }),\n [`${menuCls}-item-group-list`]: {\n margin: `0 ${unit(token.marginXS)}`,\n padding: 0,\n listStyle: 'none'\n },\n [`${menuCls}-submenu-title`]: {\n paddingInlineEnd: token.calc(controlPaddingHorizontal).add(token.fontSizeSM).equal()\n },\n [`${menuCls}-submenu-vertical`]: {\n position: 'relative'\n },\n [`${menuCls}-submenu${menuCls}-submenu-disabled ${componentCls}-menu-submenu-title`]: {\n [`&, ${componentCls}-menu-submenu-arrow-icon`]: {\n color: colorTextDisabled,\n backgroundColor: colorBgElevated,\n cursor: 'not-allowed'\n }\n },\n // https://github.com/ant-design/ant-design/issues/19264\n [`${menuCls}-submenu-selected ${componentCls}-menu-submenu-title`]: {\n color: token.colorPrimary\n }\n })\n })\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down'), initZoomMotion(token, 'zoom-big')]];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => Object.assign(Object.assign({\n zIndexPopup: token.zIndexPopupBase + 50,\n paddingBlock: (token.controlHeight - token.fontSize * token.lineHeight) / 2\n}, getArrowOffsetToken({\n contentRadius: token.borderRadiusLG,\n limitVerticalRadius: true\n})), getArrowToken(token));\nexport default genStyleHooks('Dropdown', token => {\n const {\n marginXXS,\n sizePopupArrow,\n paddingXXS,\n componentCls\n } = token;\n const dropdownToken = mergeToken(token, {\n menuCls: `${componentCls}-menu`,\n dropdownArrowDistance: token.calc(sizePopupArrow).div(2).add(marginXXS).equal(),\n dropdownEdgeChildPadding: paddingXXS\n });\n return [genBaseStyle(dropdownToken), genStatusStyle(dropdownToken)];\n}, prepareComponentToken, {\n resetStyle: false\n});","\"use client\";\n\nimport * as React from 'react';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport getPlacements from '../_util/placements';\nimport genPurePanel from '../_util/PurePanel';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport Menu from '../menu';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport { useToken } from '../theme/internal';\nimport useStyle from './style';\nconst _Placements = ['topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom'];\nconst Dropdown = props => {\n var _a;\n const {\n menu,\n arrow,\n prefixCls: customizePrefixCls,\n children,\n trigger,\n disabled,\n dropdownRender,\n getPopupContainer,\n overlayClassName,\n rootClassName,\n overlayStyle,\n open,\n onOpenChange,\n // Deprecated\n visible,\n onVisibleChange,\n mouseEnterDelay = 0.15,\n mouseLeaveDelay = 0.1,\n autoAdjustOverflow = true,\n placement = '',\n overlay,\n transitionName\n } = props;\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction,\n dropdown\n } = React.useContext(ConfigContext);\n // Warning for deprecated usage\n const warning = devUseWarning('Dropdown');\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n });\n warning.deprecated(!('overlay' in props), 'overlay', 'menu');\n }\n const memoTransitionName = React.useMemo(() => {\n const rootPrefixCls = getPrefixCls();\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return `${rootPrefixCls}-slide-down`;\n }\n return `${rootPrefixCls}-slide-up`;\n }, [getPrefixCls, placement, transitionName]);\n const memoPlacement = React.useMemo(() => {\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n return placement.slice(0, placement.indexOf('Center'));\n }\n return placement;\n }, [placement, direction]);\n if (process.env.NODE_ENV !== 'production') {\n if (placement.includes('Center')) {\n const newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'deprecated', `You are using '${placement}' placement in Dropdown, which is deprecated. Try to use '${newPlacement}' instead.`) : void 0;\n }\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(_ref2 => {\n let [deprecatedName, newName] = _ref2;\n warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n });\n }\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const [, token] = useToken();\n const child = React.Children.only(children);\n const dropdownTrigger = cloneElement(child, {\n className: classNames(`${prefixCls}-trigger`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, child.props.className),\n disabled: (_a = child.props.disabled) !== null && _a !== void 0 ? _a : disabled\n });\n const triggerActions = disabled ? [] : trigger;\n const alignPoint = !!(triggerActions === null || triggerActions === void 0 ? void 0 : triggerActions.includes('contextMenu'));\n // =========================== Open ============================\n const [mergedOpen, setOpen] = useMergedState(false, {\n value: open !== null && open !== void 0 ? open : visible\n });\n const onInnerOpenChange = useEvent(nextOpen => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen, {\n source: 'trigger'\n });\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n const overlayClassNameCustomized = classNames(overlayClassName, rootClassName, hashId, cssVarCls, rootCls, dropdown === null || dropdown === void 0 ? void 0 : dropdown.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n const builtinPlacements = getPlacements({\n arrowPointAtCenter: typeof arrow === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow,\n offset: token.marginXXS,\n arrowWidth: arrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius\n });\n const onMenuClick = React.useCallback(() => {\n if ((menu === null || menu === void 0 ? void 0 : menu.selectable) && (menu === null || menu === void 0 ? void 0 : menu.multiple)) {\n return;\n }\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(false, {\n source: 'menu'\n });\n setOpen(false);\n }, [menu === null || menu === void 0 ? void 0 : menu.selectable, menu === null || menu === void 0 ? void 0 : menu.multiple]);\n const renderOverlay = () => {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n let overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, Object.assign({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: `${prefixCls}-menu`,\n rootClassName: classNames(cssVarCls, rootCls),\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-menu-submenu-arrow`\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: `${prefixCls}-menu-submenu-arrow-icon`\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: _ref3 => {\n let {\n mode\n } = _ref3;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'usage', `mode=\"${mode}\" is not supported for Dropdown's Menu.`) : void 0;\n }\n }, overlayNode);\n };\n // =========================== zIndex ============================\n const [zIndex, contextZIndex] = useZIndex('Dropdown', overlayStyle === null || overlayStyle === void 0 ? void 0 : overlayStyle.zIndex);\n // ============================ Render ============================\n let renderNode = /*#__PURE__*/React.createElement(RcDropdown, Object.assign({\n alignPoint: alignPoint\n }, omit(props, ['rootClassName']), {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: memoTransitionName,\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: memoPlacement,\n onVisibleChange: onInnerOpenChange,\n overlayStyle: Object.assign(Object.assign(Object.assign({}, dropdown === null || dropdown === void 0 ? void 0 : dropdown.style), overlayStyle), {\n zIndex\n })\n }), dropdownTrigger);\n if (zIndex) {\n renderNode = /*#__PURE__*/React.createElement(zIndexContext.Provider, {\n value: contextZIndex\n }, renderNode);\n }\n return wrapCSSVar(renderNode);\n};\nfunction postPureProps(props) {\n return Object.assign(Object.assign({}, props), {\n align: {\n overflow: {\n adjustX: false,\n adjustY: false\n }\n }\n });\n}\n// We don't care debug panel\nconst PurePanel = genPurePanel(Dropdown, 'dropdown', prefixCls => prefixCls, postPureProps);\n/* istanbul ignore next */\nconst WrapPurePanel = props => (/*#__PURE__*/React.createElement(PurePanel, Object.assign({}, props), /*#__PURE__*/React.createElement(\"span\", null)));\nDropdown._InternalPanelDoNotUseOrYouWillBeFired = WrapPurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Dropdown.displayName = 'Dropdown';\n}\nexport default Dropdown;","module.exports = __webpack_public_path__ + \"0078b630bed2938ce03f618c2bcd1363.js\";","import { getWindowLocation } from './window';\n\nexport const validAltaAvigilonUrlRegEx = /^https:\\/\\/.*\\.alta\\.avigilon\\.com/;\n\nexport const validDevelopmentUrlRegEx = /(http|https):\\/\\/(localhost)/;\n\n/**\n * @description Checks if the origin url is using alta.avigilon.com finds the correct\n * domain for the current environment.\n * This method being used should only affect those using alta.avigilon.com. Openpath urls should be unaffected.\n * @returns the environment specific domain if using alta.avigilon.com in the url.\n */\nexport const getAltaDomain = () => {\n const { origin } = getWindowLocation();\n const domainRegex = /(dev.|sandbox.|eu.)?alta.avigilon.com/;\n const domain = origin?.match(domainRegex);\n\n return domain?.[0];\n};\n\n/**\n * @returns an environment specific regex\n */\nconst getEnvDomainRegex = (env: string) =>\n new RegExp(`${env}.alta.avigilon.com`);\n\n/**\n * @description Checks domain for the current environment\n * This method being used should only affect non prod envrionments using alta.avigilon.com.\n * Openpath urls should be unaffected.\n * @returns the environment of the domain if using alta.avigilon.com in the url.\n */\nexport const getEnvironment = () => {\n const { origin } = getWindowLocation();\n const envs = ['dev', 'sandbox', 'eu'];\n const currentEnv = envs.find((env) => origin?.match(getEnvDomainRegex(env)));\n\n return currentEnv;\n};\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { useColStyle } from './style';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\nconst sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst Col = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n gutter,\n wrap\n } = React.useContext(RowContext);\n const {\n prefixCls: customizePrefixCls,\n span,\n order,\n offset,\n push,\n pull,\n className,\n children,\n flex,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useColStyle(prefixCls);\n // ===================== Size ======================\n const sizeStyle = {};\n let sizeClassObj = {};\n sizes.forEach(size => {\n let sizeProps = {};\n const propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = Object.assign(Object.assign({}, sizeClassObj), {\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n // Responsive flex layout\n if (sizeProps.flex) {\n sizeClassObj[`${prefixCls}-${size}-flex`] = true;\n sizeStyle[`--${prefixCls}-${size}-flex`] = parseFlex(sizeProps.flex);\n }\n });\n // ==================== Normal =====================\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull\n }, className, sizeClassObj, hashId, cssVarCls);\n const mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n const horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n // ==================== Render =====================\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n style: Object.assign(Object.assign(Object.assign({}, mergedStyle), style), sizeStyle),\n className: classes,\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSlider.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSlider.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import Slider, { SliderSingleProps } from 'antd/es/slider';\nimport clsx from 'clsx';\n\nimport './OpSlider.scss';\n\ninterface OpSliderProps extends SliderSingleProps {\n testId?: string;\n}\n\nexport const OpSlider = ({\n className,\n testId = 'op-slider',\n ...rowProps\n}: OpSliderProps) => {\n return (\n <Slider\n className={clsx('op-slider', className)}\n data-testid={testId}\n {...rowProps}\n />\n );\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../fonts/open-sans-v15-latin-600.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../fonts/open-sans-v15-latin-600.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../fonts/open-sans-v15-latin-600.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"../fonts/open-sans-v15-latin-600.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"../fonts/open-sans-v15-latin-600.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"../fonts/assistant-v2-latin-300.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"../fonts/assistant-v2-latin-300.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"../fonts/assistant-v2-latin-300.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"../fonts/assistant-v2-latin-300.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"../fonts/assistant-v2-latin-300.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"../fonts/assistant-v2-latin-600.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"../fonts/assistant-v2-latin-600.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"../fonts/assistant-v2-latin-600.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"../fonts/assistant-v2-latin-600.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"../fonts/assistant-v2-latin-600.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"../fonts/assistant-v2-latin-400.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"../fonts/assistant-v2-latin-400.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"../fonts/assistant-v2-latin-400.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"../fonts/assistant-v2-latin-400.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"../fonts/assistant-v2-latin-400.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_20___ = new URL(\"../fonts/assistant-v2-latin-700.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_21___ = new URL(\"../fonts/assistant-v2-latin-700.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_22___ = new URL(\"../fonts/assistant-v2-latin-700.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_23___ = new URL(\"../fonts/assistant-v2-latin-700.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_24___ = new URL(\"../fonts/assistant-v2-latin-700.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_25___ = new URL(\"../fonts/assistant-v2-latin-800.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_26___ = new URL(\"../fonts/assistant-v2-latin-800.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_27___ = new URL(\"../fonts/assistant-v2-latin-800.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_28___ = new URL(\"../fonts/assistant-v2-latin-800.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_29___ = new URL(\"../fonts/assistant-v2-latin-800.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_30___ = new URL(\"../fonts/Graphik-Light.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_31___ = new URL(\"../fonts/Graphik-Light.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_32___ = new URL(\"../fonts/Graphik-Light.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_33___ = new URL(\"../fonts/Graphik-Light.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_34___ = new URL(\"../fonts/Graphik-Light.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_35___ = new URL(\"../fonts/Graphik-Regular.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_36___ = new URL(\"../fonts/Graphik-Regular.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_37___ = new URL(\"../fonts/Graphik-Regular.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_38___ = new URL(\"../fonts/Graphik-Regular.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_39___ = new URL(\"../fonts/Graphik-Regular.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_40___ = new URL(\"../fonts/Graphik-Medium.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_41___ = new URL(\"../fonts/Graphik-Medium.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_42___ = new URL(\"../fonts/Graphik-Medium.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_43___ = new URL(\"../fonts/Graphik-Medium.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_44___ = new URL(\"../fonts/Graphik-Medium.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_45___ = new URL(\"../fonts/Graphik-Semibold.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_46___ = new URL(\"../fonts/Graphik-Semibold.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_47___ = new URL(\"../fonts/Graphik-RegularItalic.eot\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_48___ = new URL(\"../fonts/Graphik-RegularItalic.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_49___ = new URL(\"../fonts/Graphik-RegularItalic.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_50___ = new URL(\"../fonts/Graphik-RegularItalic.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_51___ = new URL(\"../fonts/Graphik-RegularItalic.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_52___ = new URL(\"../fonts/Graphik-MediumItalic.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_53___ = new URL(\"../fonts/Graphik-MediumItalic.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \"#OpenSans\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___, { hash: \"#Assistant\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \"#Assistant\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___, { hash: \"#Assistant\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___);\nvar ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___);\nvar ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___);\nvar ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___);\nvar ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___, { hash: \"#Assistant\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___);\nvar ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___);\nvar ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___);\nvar ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___);\nvar ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { hash: \"#Assistant\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___);\nvar ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___);\nvar ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___);\nvar ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___);\nvar ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___, { hash: \"#Graphik\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___);\nvar ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___);\nvar ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___);\nvar ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___);\nvar ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___, { hash: \"#Graphik\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___);\nvar ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___);\nvar ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___);\nvar ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___);\nvar ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___, { hash: \"#Graphik\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___);\nvar ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_46___);\nvar ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_47___);\nvar ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_47___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_48___);\nvar ___CSS_LOADER_URL_REPLACEMENT_59___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_49___);\nvar ___CSS_LOADER_URL_REPLACEMENT_60___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_50___);\nvar ___CSS_LOADER_URL_REPLACEMENT_61___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_51___, { hash: \"#Graphik\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_62___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_52___);\nvar ___CSS_LOADER_URL_REPLACEMENT_63___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_53___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* stylelint-disable */\n\n/* .eot: IE9 Compat Modes */\n/* .eot?#iefix: IE6-IE8 */\n/* .woff2: Super Modern Browsers */\n/* .woff: Modern Browsers */\n/* .ttf: Safari, Android, iOS */\n/* .svg: Legacy iOS */\n\n/******* OPEN SANS ********/\n\n/* open-sans-600 - latin */\n@font-face {\n font-family: 'Open Sans';\n font-style: normal;\n font-weight: 600;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n src:\n local('Open Sans SemiBold'),\n local('OpenSans-SemiBold'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_3___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_4___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_5___}) format('svg');\n}\n\n/******* ASSISTANT ********/\n\n/* assistant-300 - latin */\n@font-face {\n font-family: 'Assistant';\n font-style: normal;\n font-weight: 300;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_6___});\n src:\n local('Assistant Light'),\n local('Assistant-Light'),\n url(${___CSS_LOADER_URL_REPLACEMENT_7___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_8___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_9___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_10___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_11___}) format('svg');\n}\n/* assistant-600 - latin */\n@font-face {\n font-family: 'Assistant';\n font-style: normal;\n font-weight: 600;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_12___});\n src:\n local('Assistant SemiBold'),\n local('Assistant-SemiBold'),\n url(${___CSS_LOADER_URL_REPLACEMENT_13___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_14___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_15___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_16___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_17___}) format('svg');\n}\n/* assistant-regular - latin */\n@font-face {\n font-family: 'Assistant';\n font-style: normal;\n font-weight: 400;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_18___});\n src:\n local('Assistant'),\n local('Assistant-Regular'),\n url(${___CSS_LOADER_URL_REPLACEMENT_19___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_20___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_21___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_22___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_23___}) format('svg');\n}\n/* assistant-700 - latin */\n@font-face {\n font-family: 'Assistant';\n font-style: normal;\n font-weight: 700;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_24___});\n src:\n local('Assistant Bold'),\n local('Assistant-Bold'),\n url(${___CSS_LOADER_URL_REPLACEMENT_25___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_26___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_27___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_28___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_29___}) format('svg');\n}\n/* assistant-800 - latin */\n@font-face {\n font-family: 'Assistant';\n font-style: normal;\n font-weight: 800;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_30___});\n src:\n local('Assistant ExtraBold'),\n local('Assistant-ExtraBold'),\n url(${___CSS_LOADER_URL_REPLACEMENT_31___})\n format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_32___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_33___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_34___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_35___}) format('svg');\n}\n\n/******* GRAPHIK ********/\n\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 300;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_36___});\n src:\n local('Graphik Light'),\n local('Graphik-Light'),\n url(${___CSS_LOADER_URL_REPLACEMENT_37___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_38___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_39___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_40___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_41___}) format('svg');\n}\n\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 400;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_42___});\n src:\n local('Graphik Regular'),\n local('Graphik-Regular'),\n url(${___CSS_LOADER_URL_REPLACEMENT_43___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_44___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_45___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_46___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_47___}) format('svg');\n}\n\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 500;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_48___});\n src:\n local('Graphik Medium'),\n local('Graphik-Medium'),\n url(${___CSS_LOADER_URL_REPLACEMENT_49___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_50___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_51___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_52___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_53___}) format('svg');\n}\n/* Using Graphik Medium for 600/700 weights so we don't have to overwrite antd font-weights */\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 600;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_48___});\n src:\n local('Graphik Medium'),\n local('Graphik-Medium'),\n url(${___CSS_LOADER_URL_REPLACEMENT_49___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_50___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_51___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_52___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_53___}) format('svg');\n}\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 700;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_48___});\n src:\n local('Graphik Medium'),\n local('Graphik-Medium'),\n url(${___CSS_LOADER_URL_REPLACEMENT_49___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_50___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_51___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_52___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_53___}) format('svg');\n}\n@font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 800;\n src:\n local('Graphik Semibold'),\n local('Graphik-Semibold'),\n url(${___CSS_LOADER_URL_REPLACEMENT_54___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_55___}) format('woff');\n}\n/* @font-face {\n font-family: 'Graphik';\n font-style: normal;\n font-weight: 700;\n src: local('Graphik Bold'), local('Graphik-Bold'),\n url('../fonts/Graphik-Bold.woff2') format('woff2'),\n url('../fonts/Graphik-Bold.woff') format('woff'),\n url('../fonts/Graphik-Bold.ttf') format('truetype'),\n url('../fonts/Graphik-Bold.svg#Graphik') format('svg');\n} */\n\n@font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 400;\n src: url(${___CSS_LOADER_URL_REPLACEMENT_56___});\n src:\n local('Graphik RegularItalic'),\n local('Graphik-RegularItalic'),\n url(${___CSS_LOADER_URL_REPLACEMENT_57___}) format('embedded-opentype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_58___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_59___}) format('woff'),\n url(${___CSS_LOADER_URL_REPLACEMENT_60___}) format('truetype'),\n url(${___CSS_LOADER_URL_REPLACEMENT_61___}) format('svg');\n}\n@font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 500;\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\n src:\n local('Graphik MediumItalic'),\n local('Graphik-MediumItalic'),\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\n url(${___CSS_LOADER_URL_REPLACEMENT_62___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_63___}) format('woff');\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\n}\n\n/* Using Graphik MediumItalic for 600/700 weights so we don't have to overwrite antd font-weights */\n@font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 600;\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\n src:\n local('Graphik MediumItalic'),\n local('Graphik-MediumItalic'),\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\n url(${___CSS_LOADER_URL_REPLACEMENT_62___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_63___}) format('woff');\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\n}\n/* @font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 600;\n src: url('../fonts/Graphik-SemiboldItalic.eot');\n src: local('Graphik SemiboldItalic'), local('Graphik-SemiboldItalic'),\n url('../fonts/Graphik-SemiboldItalic.eot?#iefix') format('embedded-opentype'),\n url('../fonts/Graphik-SemiboldItalic.woff2') format('woff2'),\n url('../fonts/Graphik-SemiboldItalic.woff') format('woff'),\n url('../fonts/Graphik-SemiboldItalic.ttf') format('truetype'),\n url('../fonts/Graphik-SemiboldItalic.svg#Graphik') format('svg');\n} */\n@font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 700;\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\n src:\n local('Graphik MediumItalic'),\n local('Graphik-MediumItalic'),\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\n url(${___CSS_LOADER_URL_REPLACEMENT_62___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_63___}) format('woff');\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\n}\n/* @font-face {\n font-family: 'Graphik';\n font-style: italic;\n font-weight: 700;\n src: url('../fonts/Graphik-BoldItalic.eot');\n src: local('Graphik BoldItalic'), local('Graphik-BoldItalic'),\n url('../fonts/Graphik-BoldItalic.eot?#iefix') format('embedded-opentype'),\n url('../fonts/Graphik-BoldItalic.woff2') format('woff2'),\n url('../fonts/Graphik-BoldItalic.woff') format('woff'),\n url('../fonts/Graphik-BoldItalic.ttf') format('truetype'),\n url('../fonts/Graphik-BoldItalic.svg#Graphik') format('svg');\n} */\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/assets/css/fonts.css\"],\"names\":[],\"mappings\":\"AAAA,sBAAsB;;AAEtB,2BAA2B;AAC3B,yBAAyB;AACzB,kCAAkC;AAClC,2BAA2B;AAC3B,+BAA+B;AAC/B,qBAAqB;;AAErB,2BAA2B;;AAE3B,0BAA0B;AAC1B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,4CAAgD;EAChD;;;;;;;;yDAQoE;AACtE;;AAEA,2BAA2B;;AAE3B,0BAA0B;AAC1B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,4CAA+C;EAC/C;;;;;;;;0DAQoE;AACtE;AACA,0BAA0B;AAC1B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,6CAA+C;EAC/C;;;;;;;;0DAQoE;AACtE;AACA,8BAA8B;AAC9B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,6CAA+C;EAC/C;;;;;;;;0DAQoE;AACtE;AACA,0BAA0B;AAC1B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,6CAA+C;EAC/C;;;;;;;;0DAQoE;AACtE;AACA,0BAA0B;AAC1B;EACE,wBAAwB;EACxB,kBAAkB;EAClB,gBAAgB;EAChB,6CAA+C;EAC/C;;;;;;;;0DAQoE;AACtE;;AAEA,yBAAyB;;AAEzB;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAAsC;EACtC;;;;;;;0DAOyD;AAC3D;;AAEA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAAwC;EACxC;;;;;;;0DAO2D;AAC7D;;AAEA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAAuC;EACvC;;;;;;;0DAO0D;AAC5D;AACA,6FAA6F;AAC7F;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAAuC;EACvC;;;;;;;0DAO0D;AAC5D;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAAuC;EACvC;;;;;;;0DAO0D;AAC5D;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB;;;;2DAIsD;AACxD;AACA;;;;;;;;;GASG;;AAEH;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,6CAA8C;EAC9C;;;;;;;0DAOiE;AACnE;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,mDAAmD;EACnD;;;;;2DAK0D;EAC1D;qEACmE;AACrE;;AAEA,mGAAmG;AACnG;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,mDAAmD;EACnD;;;;;2DAK0D;EAC1D;qEACmE;AACrE;AACA;;;;;;;;;;;GAWG;AACH;EACE,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;EAChB,mDAAmD;EACnD;;;;;2DAK0D;EAC1D;qEACmE;AACrE;AACA;;;;;;;;;;;GAWG\",\"sourcesContent\":[\"/* stylelint-disable */\\n\\n/* .eot: IE9 Compat Modes */\\n/* .eot?#iefix: IE6-IE8 */\\n/* .woff2: Super Modern Browsers */\\n/* .woff: Modern Browsers */\\n/* .ttf: Safari, Android, iOS */\\n/* .svg: Legacy iOS */\\n\\n/******* OPEN SANS ********/\\n\\n/* open-sans-600 - latin */\\n@font-face {\\n font-family: 'Open Sans';\\n font-style: normal;\\n font-weight: 600;\\n src: url('../fonts/open-sans-v15-latin-600.eot');\\n src:\\n local('Open Sans SemiBold'),\\n local('OpenSans-SemiBold'),\\n url('../fonts/open-sans-v15-latin-600.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/open-sans-v15-latin-600.woff2') format('woff2'),\\n url('../fonts/open-sans-v15-latin-600.woff') format('woff'),\\n url('../fonts/open-sans-v15-latin-600.ttf') format('truetype'),\\n url('../fonts/open-sans-v15-latin-600.svg#OpenSans') format('svg');\\n}\\n\\n/******* ASSISTANT ********/\\n\\n/* assistant-300 - latin */\\n@font-face {\\n font-family: 'Assistant';\\n font-style: normal;\\n font-weight: 300;\\n src: url('../fonts/assistant-v2-latin-300.eot');\\n src:\\n local('Assistant Light'),\\n local('Assistant-Light'),\\n url('../fonts/assistant-v2-latin-300.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/assistant-v2-latin-300.woff2') format('woff2'),\\n url('../fonts/assistant-v2-latin-300.woff') format('woff'),\\n url('../fonts/assistant-v2-latin-300.ttf') format('truetype'),\\n url('../fonts/assistant-v2-latin-300.svg#Assistant') format('svg');\\n}\\n/* assistant-600 - latin */\\n@font-face {\\n font-family: 'Assistant';\\n font-style: normal;\\n font-weight: 600;\\n src: url('../fonts/assistant-v2-latin-600.eot');\\n src:\\n local('Assistant SemiBold'),\\n local('Assistant-SemiBold'),\\n url('../fonts/assistant-v2-latin-600.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/assistant-v2-latin-600.woff2') format('woff2'),\\n url('../fonts/assistant-v2-latin-600.woff') format('woff'),\\n url('../fonts/assistant-v2-latin-600.ttf') format('truetype'),\\n url('../fonts/assistant-v2-latin-600.svg#Assistant') format('svg');\\n}\\n/* assistant-regular - latin */\\n@font-face {\\n font-family: 'Assistant';\\n font-style: normal;\\n font-weight: 400;\\n src: url('../fonts/assistant-v2-latin-400.eot');\\n src:\\n local('Assistant'),\\n local('Assistant-Regular'),\\n url('../fonts/assistant-v2-latin-400.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/assistant-v2-latin-400.woff2') format('woff2'),\\n url('../fonts/assistant-v2-latin-400.woff') format('woff'),\\n url('../fonts/assistant-v2-latin-400.ttf') format('truetype'),\\n url('../fonts/assistant-v2-latin-400.svg#Assistant') format('svg');\\n}\\n/* assistant-700 - latin */\\n@font-face {\\n font-family: 'Assistant';\\n font-style: normal;\\n font-weight: 700;\\n src: url('../fonts/assistant-v2-latin-700.eot');\\n src:\\n local('Assistant Bold'),\\n local('Assistant-Bold'),\\n url('../fonts/assistant-v2-latin-700.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/assistant-v2-latin-700.woff2') format('woff2'),\\n url('../fonts/assistant-v2-latin-700.woff') format('woff'),\\n url('../fonts/assistant-v2-latin-700.ttf') format('truetype'),\\n url('../fonts/assistant-v2-latin-700.svg#Assistant') format('svg');\\n}\\n/* assistant-800 - latin */\\n@font-face {\\n font-family: 'Assistant';\\n font-style: normal;\\n font-weight: 800;\\n src: url('../fonts/assistant-v2-latin-800.eot');\\n src:\\n local('Assistant ExtraBold'),\\n local('Assistant-ExtraBold'),\\n url('../fonts/assistant-v2-latin-800.eot?#iefix')\\n format('embedded-opentype'),\\n url('../fonts/assistant-v2-latin-800.woff2') format('woff2'),\\n url('../fonts/assistant-v2-latin-800.woff') format('woff'),\\n url('../fonts/assistant-v2-latin-800.ttf') format('truetype'),\\n url('../fonts/assistant-v2-latin-800.svg#Assistant') format('svg');\\n}\\n\\n/******* GRAPHIK ********/\\n\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 300;\\n src: url('../fonts/Graphik-Light.eot');\\n src:\\n local('Graphik Light'),\\n local('Graphik-Light'),\\n url('../fonts/Graphik-Light.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-Light.woff2') format('woff2'),\\n url('../fonts/Graphik-Light.woff') format('woff'),\\n url('../fonts/Graphik-Light.ttf') format('truetype'),\\n url('../fonts/Graphik-Light.svg#Graphik') format('svg');\\n}\\n\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 400;\\n src: url('../fonts/Graphik-Regular.eot');\\n src:\\n local('Graphik Regular'),\\n local('Graphik-Regular'),\\n url('../fonts/Graphik-Regular.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-Regular.woff2') format('woff2'),\\n url('../fonts/Graphik-Regular.woff') format('woff'),\\n url('../fonts/Graphik-Regular.ttf') format('truetype'),\\n url('../fonts/Graphik-Regular.svg#Graphik') format('svg');\\n}\\n\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 500;\\n src: url('../fonts/Graphik-Medium.eot');\\n src:\\n local('Graphik Medium'),\\n local('Graphik-Medium'),\\n url('../fonts/Graphik-Medium.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-Medium.woff2') format('woff2'),\\n url('../fonts/Graphik-Medium.woff') format('woff'),\\n url('../fonts/Graphik-Medium.ttf') format('truetype'),\\n url('../fonts/Graphik-Medium.svg#Graphik') format('svg');\\n}\\n/* Using Graphik Medium for 600/700 weights so we don't have to overwrite antd font-weights */\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 600;\\n src: url('../fonts/Graphik-Medium.eot');\\n src:\\n local('Graphik Medium'),\\n local('Graphik-Medium'),\\n url('../fonts/Graphik-Medium.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-Medium.woff2') format('woff2'),\\n url('../fonts/Graphik-Medium.woff') format('woff'),\\n url('../fonts/Graphik-Medium.ttf') format('truetype'),\\n url('../fonts/Graphik-Medium.svg#Graphik') format('svg');\\n}\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 700;\\n src: url('../fonts/Graphik-Medium.eot');\\n src:\\n local('Graphik Medium'),\\n local('Graphik-Medium'),\\n url('../fonts/Graphik-Medium.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-Medium.woff2') format('woff2'),\\n url('../fonts/Graphik-Medium.woff') format('woff'),\\n url('../fonts/Graphik-Medium.ttf') format('truetype'),\\n url('../fonts/Graphik-Medium.svg#Graphik') format('svg');\\n}\\n@font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 800;\\n src:\\n local('Graphik Semibold'),\\n local('Graphik-Semibold'),\\n url('../fonts/Graphik-Semibold.woff2') format('woff2'),\\n url('../fonts/Graphik-Semibold.woff') format('woff');\\n}\\n/* @font-face {\\n font-family: 'Graphik';\\n font-style: normal;\\n font-weight: 700;\\n src: local('Graphik Bold'), local('Graphik-Bold'),\\n url('../fonts/Graphik-Bold.woff2') format('woff2'),\\n url('../fonts/Graphik-Bold.woff') format('woff'),\\n url('../fonts/Graphik-Bold.ttf') format('truetype'),\\n url('../fonts/Graphik-Bold.svg#Graphik') format('svg');\\n} */\\n\\n@font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 400;\\n src: url('../fonts/Graphik-RegularItalic.eot');\\n src:\\n local('Graphik RegularItalic'),\\n local('Graphik-RegularItalic'),\\n url('../fonts/Graphik-RegularItalic.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-RegularItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-RegularItalic.woff') format('woff'),\\n url('../fonts/Graphik-RegularItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-RegularItalic.svg#Graphik') format('svg');\\n}\\n@font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 500;\\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\\n src:\\n local('Graphik MediumItalic'),\\n local('Graphik-MediumItalic'),\\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\\n url('../fonts/Graphik-MediumItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-MediumItalic.woff') format('woff');\\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\\n}\\n\\n/* Using Graphik MediumItalic for 600/700 weights so we don't have to overwrite antd font-weights */\\n@font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 600;\\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\\n src:\\n local('Graphik MediumItalic'),\\n local('Graphik-MediumItalic'),\\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\\n url('../fonts/Graphik-MediumItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-MediumItalic.woff') format('woff');\\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\\n}\\n/* @font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 600;\\n src: url('../fonts/Graphik-SemiboldItalic.eot');\\n src: local('Graphik SemiboldItalic'), local('Graphik-SemiboldItalic'),\\n url('../fonts/Graphik-SemiboldItalic.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-SemiboldItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-SemiboldItalic.woff') format('woff'),\\n url('../fonts/Graphik-SemiboldItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-SemiboldItalic.svg#Graphik') format('svg');\\n} */\\n@font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 700;\\n /* src: url('../fonts/Graphik-MediumItalic.eot'); */\\n src:\\n local('Graphik MediumItalic'),\\n local('Graphik-MediumItalic'),\\n /* url('../fonts/Graphik-MediumItalic.eot?#iefix') format('embedded-opentype'), */\\n url('../fonts/Graphik-MediumItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-MediumItalic.woff') format('woff');\\n /* url('../fonts/Graphik-MediumItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-MediumItalic.svg#Graphik') format('svg'); */\\n}\\n/* @font-face {\\n font-family: 'Graphik';\\n font-style: italic;\\n font-weight: 700;\\n src: url('../fonts/Graphik-BoldItalic.eot');\\n src: local('Graphik BoldItalic'), local('Graphik-BoldItalic'),\\n url('../fonts/Graphik-BoldItalic.eot?#iefix') format('embedded-opentype'),\\n url('../fonts/Graphik-BoldItalic.woff2') format('woff2'),\\n url('../fonts/Graphik-BoldItalic.woff') format('woff'),\\n url('../fonts/Graphik-BoldItalic.ttf') format('truetype'),\\n url('../fonts/Graphik-BoldItalic.svg#Graphik') format('svg');\\n} */\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.scopesByOperationId = void 0;\nexports.scopesByOperationId = { \"activateMfaCredential\": [\"i:w\", \"i{params.identityId}:w\"],\n \"activeSkusInfo\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"acuDisableEnterpriseVpn\": [\"o-acu:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"acuEnableEnterpriseVpn\": [\"o-acu:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"acuShadowStateReport\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"addAcusToDeployTag\": [\"o:w\"],\n \"addAlarmConfigurationCameraId\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"applyAcuModelConfig\": [\"o-support:w\", \"o:w\"],\n \"assignAcu\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"assignReader\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"attachOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"autoRevertLockdownPlans\": [\"o:w\"],\n \"blinkWirelessLockLed\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"buildAndSaveSwBundle\": [\"o:w\"],\n \"buildSwBundle\": [\"o:r\", \"o:w\"],\n \"bulkCreateThirdPartyDevices\": [\"o-support:w\", \"o:w\"],\n \"cameraBootstrapEmbeddedPlayback\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"cameraStaleSnapshot\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"checkAcuSwConfigDeploy\": [\"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-checkAcuSwConfigDeploy:r\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-checkAcuSwConfigDeploy:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"checkHeliumCoderActivityLevel\": [\"i:w\"],\n \"checkHeliumCoderFavoriteAnimal\": [\"i:w\"],\n \"checkSignedIdentityTermsAgreement\": [\"i{params.identityId}:identity-checkSignedIdentityTermsAgreement:w\", \"i{params.identityId}:w\"],\n \"checkSignedOrgTermsAgreement\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"cloudKeyEntryUnlock\": [\"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"cloudKeyRevertLockdownPlan\": [\"o{orgId}-user{params.userId}:w\"],\n \"cloudKeyTriggerLockdownPlan\": [\"o{orgId}-user{params.userId}:w\"],\n \"completeHookAction\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-completeHookAction:w\"],\n \"consolidateAndRenewSubscriptions\": [\"o-basic:w\", \"o:w\"],\n \"createAcu\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"createAcuDeployTag\": [\"o:w\"],\n \"createAcuExpansionBoard\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"createAcuSwConfig\": [\"o:w\"],\n \"createAlarmConfiguration\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"createAndActivateLicenseBundle\": [\"o-basic:w\", \"o-support:w\", \"o:w\"],\n \"createAuthCert\": [\"o:r\", \"o:w\", \"o{orgId}-cert:r\", \"o{orgId}-cert:w\", \"s-o:r\", \"s-o:w\"],\n \"createAwareCamera\": [\"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:r\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:w\"],\n \"createBadgeConfig\": [\"o:w\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"createBuilding\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"createBuildingFloor\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"createBuildingFloorUnit\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"createBundledSwConfig\": [\"o:w\"],\n \"createCardOpenpathDesfireEv1\": [\"pc:w\"],\n \"createCredential\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createCredentialAction\": [\"o-support:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createCredentialConfig\": [\"o-support:w\", \"o:w\"],\n \"createCustomerOrgAwareConfig\": [\"o:w\", \"s-o-video:w\", \"s-o:w\"],\n \"createCustomField\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createCustomFieldDropdownItem\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createDashboard\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"createDeployTag\": [\"o:w\"],\n \"createDmpDeployment\": [\"o:w\", \"s-o-video:w\"],\n \"createEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createEntryState\": [\"o:w\", \"o{orgId}-entryState:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"createEvent\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"createGroup\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createHeliumCoder\": [\"i:w\"],\n \"createHookAction\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"createIdentity\": [\"i:w\"],\n \"createIdentityProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createIdentityRole\": [\"i:w\"],\n \"createIntercomDirectory\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"createLockdownPlan\": [\"o:w\", \"o{orgId}-ldp:w\", \"s-o:w\"],\n \"createMailroom\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"createMap\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"createMapCamera\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"createMapExtra\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"createMfaCredential\": [\"i:w\", \"i{params.identityId}:w\"],\n \"createMfaCredentialTempForAware\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createNewArgonConversationMessage\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"createNewArgonMessage\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"createOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"createOrgFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"createOrgFeatureFlagByName\": [\"o-support:w\", \"o:w\"],\n \"createOrgFobAllegion\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createOrgMaintenanceWindow\": [\"o-basic:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"createOrgPicture\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"createParcel\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"createParcelPicture\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"createReader\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"createRecipientControl\": [\"o-support:w\", \"o:w\"],\n \"createRequest\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\"],\n \"createRole\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"createSchedule\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createScimAccessToken\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createSite\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createSubscription\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"createSubscriptionOverride\": [\"o:w\"],\n \"createSwBundle\": [\"o:w\"],\n \"createSwConfig\": [\"o:w\"],\n \"createTasksReport\": [\"o-support:w\", \"o:w\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:w\", \"s-o:w\"],\n \"createTasksReportsSchedule\": [\"o:w\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:w\", \"s-o:w\"],\n \"createTermsAgreement\": [\"o{orgId}-admin:w\"],\n \"createThirdPartyDevice\": [\"o-support:w\", \"o:w\"],\n \"createUser\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createUserPicture\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"createVideoProvider\": [\"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"createWidget\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"createWirelessLock\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createWirelessLockGateway\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createWirelessLockLogs\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createWirelessLockProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"createWirelessLockReader\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createZone\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"createZoneApbArea\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteAcu\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"deleteAcuDeployTag\": [\"o:w\"],\n \"deleteAcuExpansionBoard\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"deleteAcuLocationMeasurement\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"deleteAcuLocationRestriction\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"deleteAcuSwConfig\": [\"o:w\"],\n \"deleteAlarmConfiguration\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"deleteAlarmConfigurationCameraId\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"deleteAuthCert\": [\"o:w\", \"o{orgId}-cert:w\", \"o{orgId}-cert{params.authCertId}:w\", \"s-o:w\"],\n \"deleteBadgeConfig\": [\"o:w\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"deleteBuilding\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteBuildingFloor\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-building:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteBuildingFloorUnit\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-building:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteBuiltSwBundle\": [\"o:w\"],\n \"deleteBundledSwConfig\": [\"o:w\"],\n \"deleteCredential\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteCredentialAction\": [\"o-support:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteCredentialConfig\": [\"o-support:w\", \"o:w\"],\n \"deleteCustomField\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteCustomFieldDropdownItem\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteDashboard\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"deleteDeployTag\": [\"o:w\"],\n \"deleteEntry\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteEntryState\": [\"o:w\", \"o{orgId}-entryState:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteEvent\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"deleteGroup\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteHeliumCoder\": [\"i:w\"],\n \"deleteHookAction\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"deleteIdentity\": [\"i:w\", \"i{params.identityId}:w\"],\n \"deleteIdentityProvider\": [\"o:w\"],\n \"deleteIdentityProviderGroupRelation\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteIdentityRole\": [\"i:w\"],\n \"deleteIdentityUiState\": [\"i:w\", \"i{params.identityId}:w\"],\n \"deleteIntercomDirectory\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"deleteLockdownPlan\": [\"o:w\", \"o{orgId}-ldp:w\", \"s-o:w\"],\n \"deleteMailroom\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"deleteMap\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"deleteMapCamera\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"deleteMapExtra\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"deleteMfaCredential\": [\"i:w\", \"i{params.identityId}:w\"],\n \"deleteMobileAppConfig\": [\"o:w\", \"o{orgId}-admin:w\", \"s-o:w\"],\n \"deleteOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"deleteOrg\": [\"o:w\"],\n \"deleteOrgFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"deleteOrgFeatureFlagByName\": [\"o-support:w\", \"o:w\"],\n \"deleteOrgMaintenanceWindow\": [\"o-basic:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"deleteOrgPicture\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"deleteParcel\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"deleteParcelPicture\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"deleteParcels\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"deleteReader\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"deleteRecipientControl\": [\"o-support:w\", \"o:w\"],\n \"deleteRole\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"deleteSchedule\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteScimAccessToken\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteSite\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteSiteLocationMeasurement\": [\"o:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteSiteLocationRestriction\": [\"o:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"deleteSoftwareLicense\": [\"o-basic:w\", \"o:w\"],\n \"deleteSubscription\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"deleteSwBundle\": [\"o:w\"],\n \"deleteSwConfig\": [\"o:w\"],\n \"deleteTasksReport\": [\"o:w\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:w\", \"s-o:w\"],\n \"deleteTasksReportsSchedule\": [\"o:w\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:w\", \"s-o:w\"],\n \"deleteThirdPartyDevice\": [\"o-support:w\", \"o:w\"],\n \"deleteUser\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteUserMfaCredential\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteUserPicture\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"deleteVideoProvider\": [\"o-support:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"deleteWidget\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"deleteWirelessLock\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteWirelessLockGateway\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteWirelessLockProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"deleteWirelessLockReader\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"deleteZoneApbArea\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"describeAcu\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuDeployTag\": [\"o:r\", \"o:w\"],\n \"describeAcuExpansionBoard\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuLocationMeasurement\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuModel\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuPort\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuPortEol\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuPortType\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAcuSwConfig\": [\"o:r\", \"o:w\"],\n \"describeAcuTimezone\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAlarm\": [\"o:r\", \"o:w\", \"o{orgId}-alarmActions:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptAlarm:r\", \"o{orgId}-rptAlarm:w\"],\n \"describeAlarmAction\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"describeAlarmConfiguration\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\"],\n \"describeAlarmSeverity\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"describeAlarmStatus\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"describeAllMailroomStatistics\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"describeApp\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"describeAuthCert\": [\"o:r\", \"o:w\", \"o{orgId}-cert:r\", \"o{orgId}-cert:w\", \"o{orgId}-cert{params.authCertId}:r\", \"o{orgId}-cert{params.authCertId}:w\", \"s-o:r\", \"s-o:w\"],\n \"describeBadgeConfig\": [\"o:r\", \"o:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"s-o:r\", \"s-o:w\"],\n \"describeBuilding\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeBuildingFloor\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeBuildingFloorUnit\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeBundledSwConfig\": [\"o:r\", \"o:w\"],\n \"describeBundledSwConfigByComponents\": [\"o:r\", \"o:w\"],\n \"describeCardFormat\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeContactSensor\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCredential\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"describeCredentialAction\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCredentialActionType\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCredentialConfig\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"describeCredentialType\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCustomField\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCustomFieldDropdownItem\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeCustomFieldType\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeDashboard\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"s-o:r\", \"s-o:w\"],\n \"describeDeployTag\": [\"o:r\", \"o:w\"],\n \"describeEmailAlertType\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"describeEntry\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeEntryState\": [\"o:r\", \"o:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeEolSupervision\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeEvent\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeFeature\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"describeFeatureFlag\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"describeGenericInput\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeGroup\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeHeliumCoder\": [\"i:r\", \"i:w\"],\n \"describeHookAction\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"describeHookEvent\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"describeIdentity\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"describeIdentityPreferenceSet\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"describeIdentityProvider\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeIdentityProviderType\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeIdentityRole\": [\"i:r\", \"i:w\"],\n \"describeIdentityScopeResource\": [\"i:r\", \"i:w\"],\n \"describeIntercomDirectory\": [\"o:r\", \"o{orgId}-opvideoIntercom:r\", \"s-o:r\"],\n \"describeIntercomDirectoryQrCode\": [\"o:r\", \"o{orgId}-opvideoIntercom:r\", \"s-o:r\"],\n \"describeIo\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeLocationMeasurementSourceType\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeLockdownPlan\": [\"o:r\", \"o:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"s-o:r\", \"s-o:w\"],\n \"describeMailroom\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"describeMailroomStatistics\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"describeMap\": [\"o:r\", \"o:w\", \"o{orgId}-map:r\", \"o{orgId}-map:w\", \"s-o:r\", \"s-o:w\"],\n \"describeMfaCredential\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"describeMobileAppConfig\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOperation\": [\"o:r\"],\n \"describeOpvideoDevice\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOpvideoIntercom\": [\"o:r\", \"o{orgId}-opvideoIntercom:r\", \"s-o:r\"],\n \"describeOpvideoIntercomProfile\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrg\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-acu:org-findById:r\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgAwareConfig\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgFobAllegion\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgLevelDefault\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgMaintenanceWindow\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgOpvideoCameraStreamingProfile\": [\"o-liveVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"describeOrgPackagePlan\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeOrgPicture\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"describePackage\": [\"o:r\", \"o:w\"],\n \"describePackagePackageFeature\": [\"o:r\", \"o:w\"],\n \"describePackagePlan\": [\"o:r\", \"o:w\"],\n \"describePalette\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeParcel\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"describeParcelPicture\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"describeParentOrgConfig\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-erpParentStore:w\"],\n \"describePreferenceMeta\": [\"o:r\", \"o:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"describeReader\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeRecentAlarm\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"describeRecipientControl\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"describeRelay\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeRelayHardwareType\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"describeRex\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeRole\": [\"o-role:r\", \"o-role:w\", \"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSchedule\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeScheduleType\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeScopeResource\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSharedUser\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSite\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSiteLocationMeasurement\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSubscription\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"describeSwBundle\": [\"o:r\", \"o:w\"],\n \"describeSwConfig\": [\"o:r\", \"o:w\"],\n \"describeTasksReport\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptDownload:r\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeTasksReportLink\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptDownload:r\", \"s-o:r\", \"s-o:w\"],\n \"describeTasksReportsSchedule\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeThirdPartyDevice\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"describeThirdPartyReader\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeThirdPartyWiegand\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeTriggerMethod\": [\"o:r\", \"o:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"describeUnusedInput\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeUser\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"describeUserAcu\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-describeUserAcu:r\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"describeUserBadge\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUserBadge-describeUserBadge:r\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"describeUserCustomField\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"describeUserIntercomNotificationPreferenceSet\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"describeUserPicture\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"describeUserPreferenceSet\": [\"o:r\", \"o:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\"],\n \"describeVideoProvider\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"describeWidget\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"s-o:r\", \"s-o:w\"],\n \"describeWidgetType\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"s-o:r\", \"s-o:w\"],\n \"describeWiegand\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeWirelessLock\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"describeWirelessLockGateway\": [\"o:r\", \"o{orgId}-admin:r\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:r\", \"o{orgId}-site:r\", \"o{orgId}-siteGeneral:r\", \"s-o:r\"],\n \"describeWirelessLockProvider\": [\"o:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"s-o:r\"],\n \"describeWirelessLockReader\": [\"o:r\", \"o{orgId}-admin:r\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:r\", \"o{orgId}-site:r\", \"o{orgId}-siteGeneral:r\", \"s-o:r\"],\n \"describeZone\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"describeZoneApbArea\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"detachOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"determineScheduleAccess\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"enableOrgNativeApp\": [\"o:w\", \"s-o-video:w\", \"s-o:w\"],\n \"generateActivityLogsFilter\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"generateAcuSsmActivation\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-generateSsmActivation:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"generateCloudKeyLockdownPlanActionToken\": [\"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"generateCloudKeyUnlockToken\": [\"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"generateCloudKeyUnlockTokenByModelId\": [\"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-generateUnlockToken:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"generateSetupAcuToken\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"generateSetupMobileToken\": [\"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"getActivity\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getActivityEvents\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getAcuAwsCredentials\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-getAwsCredentials:w\"],\n \"getAcuConfig\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-getConfig:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"getAcuLocationRestriction\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"getAlarmEvents\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptAlarm:r\", \"o{orgId}-rptAlarm:w\"],\n \"getAuditLogs\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"s-o:r\", \"s-o:w\"],\n \"getAuditLogsUi\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"s-o:r\", \"s-o:w\"],\n \"getAuditLogsUiMasterMode\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"getAwareCamera\": [\"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:r\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:w\"],\n \"getAwsCredentials\": [\"i:r\", \"i:w\"],\n \"getChanneltivityLogin\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"getDbHealth\": [\"o:r\", \"o:w\"],\n \"getDeviceTimeZoneDependentRelativeTimeRanges\": [\"o:r\", \"o:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"s-o:r\", \"s-o:w\"],\n \"getEnterpriseVpnBootstrapConfig\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-getConfig:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"getEntryActivity\": [\"o:r\", \"o:w\", \"o{orgId}-entry:r\", \"o{orgId}-entry:w\", \"o{orgId}-entry{params.entryId}:r\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getEntryActivityEvents\": [\"o:r\", \"o:w\", \"o{orgId}-entry:r\", \"o{orgId}-entry:w\", \"o{orgId}-entry{params.entryId}:r\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getEntryPermissionInfo\": [\"o:r\", \"o:w\"],\n \"getErpLogin\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\"],\n \"getHeliumCoderCupsOfCoffeePerDay\": [\"i:w\"],\n \"getHeliumCoderFavoriteFood\": [\"i:r\"],\n \"getHeliumCoderFavoriteGOTY\": [\"i:r\"],\n \"getHeliumCoderFavoriteIndieGame\": [\"i:w\"],\n \"getHeliumCoderFavoriteMusicalInstrument\": [\"i:r\"],\n \"getHeliumCoderFavoritePlane\": [\"i:w\"],\n \"getHeliumCoderGifPronunciationPreference\": [\"i:w\"],\n \"getHeliumCoderHoursCiv6Played\": [\"i:w\"],\n \"getHeliumCoderLikesChocolate\": [\"i:w\"],\n \"getHeliumCoderLikesDisney\": [\"i:w\"],\n \"getHeliumCoderLikesSpicyFood\": [\"i:w\"],\n \"getHeliumCoderLovesDogs\": [\"i:r\"],\n \"getHeliumCoderNumberOfBoardGamesOwned\": [\"i:w\"],\n \"getHeliumCoderPetSpecies\": [\"i:w\"],\n \"getHeliumCoderSpiritAnimal\": [\"i:w\"],\n \"getHeliumCoderWhoRulesTheWorld\": [\"i:w\"],\n \"getIdentityProviderAuthUrl\": [\"o{orgId}-integrations:w\", \"o{orgId}-user:w\"],\n \"getIdentityProviderGroupRelations\": [\"o:r\", \"o:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"getMqttCredentials\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"getOpvideoIntercomWebRtcSessionInfo\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"getOrgCaChain\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"getParcelActivity\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:r\", \"s-o:w\"],\n \"getPresenceBucketsReport\": [\"o:r\", \"o:w\", \"o{orgId}-presence:r\", \"o{orgId}-presence:w\", \"s-o:r\", \"s-o:w\"],\n \"getPricingConfig\": [\"o:r\", \"o:w\"],\n \"getReaderAdvertisementPrefix\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getSamlAppMetadata\": [\"o:r\", \"o:w\"],\n \"getSiteActivityEvents\": [\"o:r\", \"o:w\", \"o{orgId}-entry:r\", \"o{orgId}-entry:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getSiteLocationRestriction\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"getSkuCompatibilityConfig\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"getSummaryStats\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"getSwConfigForAcu\": [\"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-getSwConfigForAcu:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"getUserActivity\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-getUserActivity:r\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"getUserActivityEvents\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-getUserActivity:r\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"getUserAwsCredentials\": [\"o{orgId}-user{params.userId}:orgUser-getAwsCredentials:r\", \"o{orgId}-user{params.userId}:r\"],\n \"getWirelessLockDatabase\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"getWirelessLockEntryPermissionInfo\": [\"o:r\", \"o:w\"],\n \"getWirelessLockProviderAppToken\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"globalDescribeBadgeDefaultConfig\": [\"o:r\", \"o:w\"],\n \"globalDescribePreferenceMeta\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"globalDescribeWirelessLockGatewayBySerialNumber\": [\"o:r\", \"o:w\"],\n \"globalDescribeWirelessLockProvider\": [\"o:r\", \"o:w\"],\n \"globalDescribeWirelessLockReaderBySerialNumber\": [\"o:r\", \"o:w\"],\n \"globalGetAuditLogs\": [\"o:r\", \"o:w\"],\n \"globalGetStreamEventsPermissions\": [\"i{params.identityId}-agron:r\", \"i{params.identityId}-agron:w\", \"o:r\", \"o:w\"],\n \"globalListAcus\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"globalListAcuSyncedShadowStates\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"globalListApps\": [\"o:r\", \"o:w\"],\n \"globalListBadgeDefaultConfigs\": [\"o:r\", \"o:w\"],\n \"globalListBillableFeatures\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"globalListEntries\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"globalListFobAllegions\": [\"o:r\", \"o:w\"],\n \"globalListHookEvents\": [\"o:r\"],\n \"globalListLockdownPlans\": [\"o:r\"],\n \"globalListOpvideoDevices\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"globalListPreferenceMetas\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"globalListPushNotifications\": [\"o:r\", \"o:w\"],\n \"globalListRequests\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"globalListSoftwareLicenses\": [\"o:r\", \"o:w\"],\n \"globalListSubscriptions\": [\"o:r\"],\n \"globalListThirdPartyDevices\": [\"o:r\", \"o:w\"],\n \"globalListThirdPartyDeviceTypes\": [\"o:r\", \"o:w\"],\n \"globalListUsers\": [\"i:r\", \"i:w\"],\n \"globalListVideoProviders\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"globalListWirelessLockGateways\": [\"o:r\"],\n \"globalListWirelessLockReaders\": [\"o:r\"],\n \"globalListWirelessLocks\": [\"o:r\"],\n \"globalNotifyMissingAcuLogs\": [\"o-support:w\", \"o:w\", \"s-o:w\"],\n \"globalReapClearedAlarms\": [\"o:w\"],\n \"globalReapDeletedAllegionOperators\": [\"o:w\"],\n \"globalReapExpiredTasksReports\": [\"o:w\"],\n \"globalReapOutdatedParcels\": [\"o:w\"],\n \"globalRestartAbandonedTasksReports\": [\"o:w\"],\n \"globalSyncAcuShadowStates\": [\"o-support:w\", \"o:w\", \"s-o:w\"],\n \"globalSyncAllegionSites\": [\"o:w\"],\n \"globalSyncTasksReportsSchedules\": [\"o:w\"],\n \"globalSyncWirelessLockProviderDevices\": [\"o:w\"],\n \"globalUpdateBadgeDefaultConfig\": [\"o:w\"],\n \"globalUpdateFobAllegion\": [\"o:w\"],\n \"globalUploadFobAllegionOrder\": [\"o-support:w\", \"o:w\"],\n \"identityProviderSyncUsers\": [\"o:w\"],\n \"identitySendFeedback\": [\"i{params.identityId}:w\"],\n \"inactivateIdentityProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"injectEventAcuStatusConnected\": [\"o-event:w\", \"o:w\"],\n \"injectEventAcuStatusDisconnected\": [\"o-event:w\", \"o:w\"],\n \"injectMsiAwareHookEvent\": [\"o:w\", \"o{orgId}-eventsMsiAware:w\"],\n \"installApp\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"installLegacyApp\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"inviteWirelessLockProviderOperator\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"labelSwConfig\": [\"o:w\"],\n \"listAcuDeployTags\": [\"o:r\", \"o:w\"],\n \"listAcuExpansionBoards\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcuLocationMeasurements\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcuModels\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcuPorts\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcuPortTypes\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcus\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listAcuSwConfigs\": [\"o:r\", \"o:w\"],\n \"listAcuUserOrgs\": [\"o:r\", \"o:w\"],\n \"listAlarmActions\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"listAlarmConfigurationCameras\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\"],\n \"listAlarmConfigurations\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\"],\n \"listAlarmSeverities\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"listAlarmStatuses\": [\"o:r\", \"o:w\", \"o{orgId}-alarmConfigurations:r\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"listAllAcuPorts\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listApps\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listAuthCerts\": [\"o:r\", \"o:w\", \"o{orgId}-cert:r\", \"o{orgId}-cert:w\", \"s-o:r\", \"s-o:w\"],\n \"listBadgeConfigs\": [\"o:r\", \"o:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listBadgeDefaultConfigs\": [\"o:r\", \"o:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildingFloors\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildingFloorUnitCameras\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildingFloorUnitGroups\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildingFloorUnits\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildingFloorUnitUsers\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listBuildings\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listBundledSwConfigs\": [\"o:r\", \"o:w\"],\n \"listCameraEntries\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listCardFormats\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listChildOrgRequests\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listChildOrgsSoftwareLicenseSubscriptions\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-erpParentStore:w\", \"s-o:r\", \"s-o:w\"],\n \"listContactSensors\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listCredentialActions\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listCredentialActionTypes\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listCredentialConfigs\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"listCredentials\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-listCredentials:r\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listCredentialTypes\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listCustomFieldDropdownItems\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listCustomFields\": [\"o:r\", \"o:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listCustomFieldTypes\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listDashboards\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listDeployTags\": [\"o:r\", \"o:w\"],\n \"listEmailAlerts\": [\"o:r\", \"o:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"s-o:r\", \"s-o:w\"],\n \"listEmailAlertTypes\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntries\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryCameras\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryContactSensors\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryControls\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryHookEventRecords\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryHookEventRecordsPost\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryReaders\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryRelays\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryRexs\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryStates\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryThirdPartyReaders\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryThirdPartyWiegands\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryUsers\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryUserSchedules\": [\"o:r\", \"o:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEntryWiegands\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listEolSupervisions\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listEvents\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listFeatureFlagOrgs\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"listFeatureFlags\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"listFeatureOrgs\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"listFeatures\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"listGenericInputs\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupBuildingFloorUnits\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupEntries\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroups\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupUserIds\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupUsers\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupZoneGroups\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listGroupZones\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listHeliumCoders\": [\"i:r\", \"i:w\"],\n \"listHookActions\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"listHookEvents\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"listIdentities\": [\"i:r\", \"i:w\"],\n \"listIdentityIdentityRoles\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"listIdentityNicknames\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"listIdentityProviderGroups\": [\"o:r\", \"o:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listIdentityProviders\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listIdentityProviderTypes\": [\"o:r\", \"o:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listIdentityRoleIdentities\": [\"i:r\", \"i:w\"],\n \"listIdentityRoles\": [\"i:r\", \"i:w\"],\n \"listIdentityRoleScopeIds\": [\"i:r\", \"i:w\"],\n \"listIdentityScopeResources\": [\"i:r\", \"i:w\"],\n \"listIdentityUiStates\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"listIdentityUsers\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"listIos\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listLocationMeasurementSourceTypes\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listLockdownPlans\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listMailrooms\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listMapCameras\": [\"o:r\", \"o:w\", \"o{orgId}-map:r\", \"o{orgId}-map:w\", \"s-o:r\", \"s-o:w\"],\n \"listMapExtras\": [\"o:r\", \"o:w\", \"o{orgId}-map:r\", \"o{orgId}-map:w\", \"s-o:r\", \"s-o:w\"],\n \"listMaps\": [\"o:r\", \"o:w\", \"o{orgId}-map:r\", \"o{orgId}-map:w\", \"s-o:r\", \"s-o:w\"],\n \"listMerakiNetworks\": [\"o:r\", \"o:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listMfaCredentials\": [\"i:r\", \"i:w\", \"i{params.identityId}:r\", \"i{params.identityId}:w\"],\n \"listMobileErrors\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-sendFeedback:r\", \"o{orgId}-user{params.userId}:orgUser-sendFeedback:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"listMobileSendFeedbackReasons\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:orgUser-sendFeedback:r\", \"o{orgId}-user{params.userId}:orgUser-sendFeedback:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"listNamespaces\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"listNativeApps\": [\"o:r\", \"o:w\", \"s-o-video:r\", \"s-o-video:w\", \"s-o:r\", \"s-o:w\"],\n \"listOperations\": [\"o:r\"],\n \"listOpvideoDevices\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listOpvideoIntercomProfileGroups\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"listOpvideoIntercomProfiles\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"listOpvideoIntercomProfileTypes\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"listOpvideoIntercomProfileUsers\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgAcuSwConfigs\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgAcuSyncedShadowStates\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgAllFeatures\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgBuildingFloorUnits\": [\"o:r\", \"o:w\", \"o{orgId}-building:r\", \"o{orgId}-building:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgCameras\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgCredentials\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgFeatureFlags\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgFeatures\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgFobAllegions\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgIdentities\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgNativeApps\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-acu:org-findById:r\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o-video:r\", \"s-o-video:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgNoTourCredentialCommands\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgNoTourCredentialSectorsPost\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgNoTourCredentialSectorsValidationData\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgOpvideoCameraStreamingProfiles\": [\"o-liveVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"listOrgOpvideoIntercomProfiles\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgPackagePlans\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgPackagePlansSelected\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgPictures\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgs\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgSoftwareLicenses\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgSoftwareLicensesForSubscription\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgSoftwareLicensesRenewalBundle\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listOrgWirelessLockDbEntries\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"listPackagePackageFeatures\": [\"o:r\", \"o:w\"],\n \"listPackagePlans\": [\"o:r\", \"o:w\"],\n \"listPackages\": [\"o:r\", \"o:w\"],\n \"listPalettes\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listParcelHistory\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listParcelMessageTypes\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listParcelPictures\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listParcelPictureTypes\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listParcels\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listParcelStatuses\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"listPreferenceMetas\": [\"o:r\", \"o:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"listReaders\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listRecentAlarms\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\"],\n \"listRecipientControls\": [\"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\"],\n \"listRelayHardwareTypes\": [\"o:r\", \"o:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listRelays\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listRequests\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\"],\n \"listRexs\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listRoles\": [\"o-role:r\", \"o-role:w\", \"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listRoleScopeIds\": [\"o-role:r\", \"o-role:w\", \"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"s-o:r\", \"s-o:w\"],\n \"listRoleUserIds\": [\"o-role:r\", \"o-role:w\", \"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"s-o:r\", \"s-o:w\"],\n \"listRoleUsers\": [\"o-role:r\", \"o-role:w\", \"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"s-o:r\", \"s-o:w\"],\n \"listSchedules\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listScheduleTypes\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listScopeResources\": [\"o:r\", \"o:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listSharedUsers\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listSiteLocationMeasurements\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listSites\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listSiteUsers\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listSnapshots\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listSoftwareLicenseSubscriptionRenewalBundle\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listSoftwareLicenseSubscriptions\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listSubscriptions\": [\"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"s-o:r\", \"s-o:w\"],\n \"listSwBundles\": [\"o:r\", \"o:w\"],\n \"listSwConfigs\": [\"o:r\", \"o:w\"],\n \"listTargetOfOrgNoTourCredentialCommands\": [\"o:r\", \"o:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"s-o:r\", \"s-o:w\"],\n \"listTasksReports\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listTasksReportsSchedules\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listTermsAgreements\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"s-o:r\", \"s-o:w\"],\n \"listThirdPartyReaders\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listThirdPartyWiegands\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listTriggerMethods\": [\"o:r\", \"o:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"s-o:r\", \"s-o:w\"],\n \"listUnusedInputs\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserAcus\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserBuildingFloorUnits\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserCustomFields\": [\"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserEntries\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserGroups\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserIntercomProfiles\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserMfaCredentials\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserPictures\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:r\", \"o{orgId}-credential:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-entryState:r\", \"o{orgId}-entryState:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:r\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-outboundWebhooks:r\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"o{orgId}-user{params.userId}:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserRoles\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUsers\": [\"o-role:r\", \"o-role:w\", \"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listUserSites\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserZones\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listUserZoneUsers\": [\"o-user:r\", \"o-user:w\", \"o:r\", \"o:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:r\", \"s-o:r\", \"s-o:w\"],\n \"listVideoProviderCameras\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listVideoProviders\": [\"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-alertSettings:r\", \"o{orgId}-alertSettings:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\", \"o{orgId}-portalAudit:r\", \"o{orgId}-portalAudit:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"listVideoProviderTypes\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:w\", \"s-o:r\", \"s-o:w\"],\n \"listWidgets\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"s-o:r\", \"s-o:w\"],\n \"listWidgetTypes\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"s-o:r\", \"s-o:w\"],\n \"listWiegands\": [\"o:r\", \"o:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listWirelessLockGateways\": [\"o:r\", \"o{orgId}-admin:r\", \"o{orgId}-dash:r\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashEntry:r\", \"o{orgId}-hw:r\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:r\", \"o{orgId}-site:r\", \"o{orgId}-siteGeneral:r\", \"s-o:r\"],\n \"listWirelessLockProviderFirmwares\": [\"o:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"s-o:r\"],\n \"listWirelessLockProviderOperators\": [\"o:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"s-o:r\"],\n \"listWirelessLockProviders\": [\"o:r\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"s-o:r\"],\n \"listWirelessLockProviderTypes\": [\"o:r\", \"o:w\"],\n \"listWirelessLockReaders\": [\"o:r\", \"o{orgId}-admin:r\", \"o{orgId}-dash:r\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashEntry:r\", \"o{orgId}-hw:r\", \"o{orgId}-integrations:r\", \"o{orgId}-integrations:r\", \"o{orgId}-site:r\", \"o{orgId}-siteGeneral:r\", \"s-o:r\"],\n \"listWirelessLocks\": [\"o:r\", \"o{orgId}-admin:r\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:r\", \"o{orgId}-site:r\", \"o{orgId}-siteGeneral:r\", \"s-o:r\"],\n \"listZoneApbAreas\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listZoneGroups\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listZones\": [\"o:r\", \"o:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-ldp:r\", \"o{orgId}-ldp:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-rpt:r\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"listZoneShares\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listZoneUsers\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listZoneZoneGroups\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"listZoneZoneUsers\": [\"o:r\", \"o:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:r\", \"o{orgId}-siteGeneral:w\", \"s-o:r\", \"s-o:w\"],\n \"logHeliumCoderCountriesVisitedCount\": [\"i:w\"],\n \"logHeliumCoderCupsOfCoffeePerDay\": [\"i:w\"],\n \"logHeliumCoderFavoriteBook\": [\"i:w\"],\n \"logHeliumCoderFavoriteFood\": [\"i:w\"],\n \"logHeliumCoderFavoriteIndieGame\": [\"i:w\"],\n \"logHeliumCoderFavoriteMusicalInstrument\": [\"i:w\"],\n \"logHeliumCoderFavoritePlane\": [\"i:w\"],\n \"logHeliumCoderHeight\": [\"i:w\"],\n \"logHeliumCoderLikesChocolate\": [\"i:w\"],\n \"logHeliumCoderLikesDisney\": [\"i:w\"],\n \"logHeliumCoderLikesSpicyFood\": [\"i:w\"],\n \"logHeliumCoderLovesDogs\": [\"i:w\"],\n \"logHeliumCoderRubiksSolve\": [\"i:w\"],\n \"logHeliumCoderSpiritAnimal\": [\"i:w\"],\n \"logHeliumCoderWhoRulesTheWorld\": [\"i:w\"],\n \"logHeliumCoderXyzzy\": [\"i:w\"],\n \"logLikesParasiteFilm\": [\"i:w\"],\n \"logSnackDistance\": [\"i:w\"],\n \"logSuperpower\": [\"i:w\"],\n \"maintainNativeApps\": [\"o:w\"],\n \"manageDeploymentStatus\": [\"o:w\"],\n \"markNeedsNoTourUpdate\": [\"o:w\"],\n \"masterCalcOrgsStatistics\": [\"o-support:w\", \"o:w\"],\n \"masterDescribeOrg\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"masterListOrgs\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\"],\n \"millicastBandwidthUsage\": [\"o-acu:r\", \"o-acu:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"netsuitePlans\": [\"o-basic:r\", \"o-basic:w\", \"o:r\", \"o:w\", \"o{orgId}-account:r\", \"o{orgId}-account:w\", \"o{orgId}-admin:r\", \"o{orgId}-admin:w\", \"o{orgId}-badgePrinting:r\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:r\", \"o{orgId}-configurations:w\", \"o{orgId}-dash:r\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:r\", \"o{orgId}-dashActivity:w\", \"o{orgId}-dashAlarm:r\", \"o{orgId}-dashAlarm:w\", \"o{orgId}-dashEntry:r\", \"o{orgId}-dashEntry:w\", \"o{orgId}-entryAccessAudit:r\", \"o{orgId}-entryAccessAudit:w\", \"o{orgId}-erpParentCenter:w\", \"o{orgId}-erpParentStore:w\", \"o{orgId}-hw:r\", \"o{orgId}-hw:w\", \"o{orgId}-musterReport:r\", \"o{orgId}-musterReport:w\", \"o{orgId}-occupancyReport:r\", \"o{orgId}-occupancyReport:w\", \"o{orgId}-quickStart:r\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:r\", \"o{orgId}-role:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-site:r\", \"o{orgId}-site:w\", \"o{orgId}-user:r\", \"o{orgId}-user:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDeviceCreateClipDownload\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-exportClips:w\", \"s-o:w\"],\n \"opvideoDeviceDisableOnvif\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"s-o:w\"],\n \"opvideoDeviceEnableOnvif\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"s-o:w\"],\n \"opvideoDeviceGenerateObserverLiveToken\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:w\", \"s-o:w\"],\n \"opvideoDeviceGenerateUserLiveToken\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoDeviceGetDeviceToken\": [\"o:r\", \"o{orgId}-acu{params.acuId}:orgAcu-getConfig:r\"],\n \"opvideoDeviceHlsPlaybackUrl\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDeviceListClips\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDeviceListFragments\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:r\", \"o:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDevicePingStreaming\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"opvideoDeviceSimulateButtonPress\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"s-o:w\"],\n \"opvideoDeviceSimulateMotion\": [\"o-supportVideo:w\", \"o:w\", \"s-o:w\"],\n \"opvideoDeviceStartLive\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoDeviceStartRecording\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"opvideoDeviceStartStreaming\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"opvideoDeviceStopStreaming\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"opvideoDeviceStreamingPublishToken\": [\"o-basic:r\", \"o-basic:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDeviceStreamingStatus\": [\"o-basic:r\", \"o-basic:w\", \"o-support:r\", \"o-support:w\", \"o:r\", \"o:w\", \"o{orgId}-opvideoDevice:r\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoDeviceStreamingSubscriberToken\": [\"o-supportVideo:r\", \"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"opvideoDeviceTriggerConfigChange\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"s-o:w\"],\n \"opvideoDeviceTriggerSnapshot\": [\"o-supportVideo:w\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"opvideoIntercomAnswerVideoCall\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoIntercomDietOpixConfig\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoIntercomIceConfig\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoIntercomOpixConfig\": [\"o:r\", \"o:w\", \"s-o:r\", \"s-o:w\"],\n \"opvideoIntercomSignAwsRequest\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoIntercomStartVideoCall\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoIntercomStopVideoCall\": [\"o:w\", \"o{orgId}-user{params.userId}:orgUser-opvideoIntercomJoinSession:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"opvideoIntercomUpdateOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"opvideoIntercomUpdateOpvideoIntercomProfiles\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"orgCompleteHookAction\": [\"o-completeHookAction:w\", \"o:w\"],\n \"patchMap\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"processQuantityLimits\": [\"o:w\"],\n \"processRenewals\": [\"o:w\"],\n \"processWalletAppleIncomingEvents\": [\"o:w\"],\n \"reapCredentialsFromInactiveUsers\": [\"o:w\"],\n \"reapDeletedAllegionMobiles\": [\"o:w\"],\n \"reapDeletedAndExpiredScimAccessTokens\": [\"o:w\"],\n \"reapDeletedMobiles\": [\"o:w\"],\n \"reapDeletedWalletApples\": [\"o:w\"],\n \"reapDeletedWallets\": [\"o:w\"],\n \"reapExpiredAccessTokens\": [\"i:w\"],\n \"reapProcessedWalletAppleIncomingEvents\": [\"o:w\"],\n \"recalculateBillableFeatures\": [\"o:w\"],\n \"recalculateCredentialCounts\": [\"o:w\"],\n \"recalculateStaleBillableFeatures\": [\"o-basic:w\", \"o:w\"],\n \"refreshMobileCredential\": [\"o{orgId}-user{params.userId}:orgUser-refreshMobile:r\", \"o{orgId}-user{params.userId}:r\"],\n \"reissueAcuCertificate\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-reissueCertificate:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"relinquishZoneShare\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"remoteAcuIdentify\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuReboot\": [\"o-acu:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuRefreshShadow\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuRestartApi\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuRestartCloud\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuRestartHardware\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteAcuRunCommand\": [\"o-acu:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteEntryIdentify\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"remoteReaderIdentify\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"remoteReaderRestart\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"removeAcusFromDeployTag\": [\"o:w\"],\n \"removeContactSensorFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeGroupFromZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeIdentityFromIdentityRole\": [\"i:w\"],\n \"removeReaderFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeRelayFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeRexFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeThirdPartyReaderFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeThirdPartyWiegandFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"removeUserFromGroup\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"removeUserFromRole\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"removeUserFromSite\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"removeUserFromZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"removeWiegandFromEntry\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"requestPackageUpgrade\": [\"o{orgId}-account:w\", \"o{orgId}-admin:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:w\", \"o{orgId}-credential:w\", \"o{orgId}-dash:w\", \"o{orgId}-dashActivity:w\", \"o{orgId}-entryState:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"o{orgId}-ldp:w\", \"o{orgId}-mobileAppSettings:w\", \"o{orgId}-outboundWebhooks:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-role:w\", \"o{orgId}-rpt:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\"],\n \"resetAcuSwConfig\": [\"o:w\"],\n \"resetApb\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"resetBilling\": [\"o-basic:w\", \"o:w\"],\n \"revertCertOpal\": [\"o:w\"],\n \"revertEntryTempState\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"rotateDmpCertificate\": [\"o:w\"],\n \"rotateIntercomDirectoryQrCode\": [\"o:r\", \"o:w\", \"o{orgId}-opvideoIntercom:r\", \"o{orgId}-opvideoIntercom:w\", \"s-o:r\", \"s-o:w\"],\n \"saveAcuSwConfigDeploy\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-checkAcuSwConfigDeploy:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"sendCustomParcelEmail\": [\"o:r\", \"o:w\", \"o{orgId}-parcelMgmtParcels:r\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"sendInternalOrgSummaryEmail\": [\"o:w\"],\n \"sendInternalRenewalEmail\": [\"o:w\"],\n \"sendParcelReminders\": [\"o:w\"],\n \"setAcuExpansionBoards\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"setAcuLocationMeasurement\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"setAcuLocationMeasurementSelf\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-locationMeasurementSelf:w\"],\n \"setAcuLocationRestriction\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"setAcuStatus\": [\"o:w\"],\n \"setAcusToDeployTag\": [\"o:w\"],\n \"setAcuSwConfigDeployAttempt\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-setAcuSwConfigDeployAttempt:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"setAcuSwConfigDeployResult\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcuSwConfig-setAcuSwConfigDeployResult:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"setAlarmConfigurationCameraIds\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"setBillingCoupon\": [\"o-basic:w\", \"o:w\", \"s-o:w\"],\n \"setBuildingFloorUnitCameraIds\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setBuildingFloorUnitGroupIds\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setBuildingFloorUnitUserIds\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setCameraEntries\": [\"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"setContactSensorToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setEntryStateTriggerMethodIds\": [\"o:w\", \"o{orgId}-entryState:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setEntryTempState\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setGroupBuildingFloorUnitIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setGroupToZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setGroupUserIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setGroupZoneGroups\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setGroupZoneIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setIdentityIdentityRoleIds\": [\"i:w\"],\n \"setIdentityProviderGroupRelation\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setIdentityProviderGroupRelations\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setIdentityRoleScopeIds\": [\"i:w\"],\n \"setIdentityToIdentityRole\": [\"i:w\"],\n \"setIdentityUiState\": [\"i:w\", \"i{params.identityId}:w\"],\n \"setLockdownPlanPermissions\": [\"o:w\", \"o{orgId}-ldp:w\", \"s-o:w\"],\n \"setLockdownPlanZoneStates\": [\"o:w\", \"o{orgId}-ldp:w\", \"s-o:w\"],\n \"setOrgPackagePlansSelectedPackagePlanIds\": [\"o-basic:w\", \"o:w\", \"o{orgId}-account:w\", \"o{orgId}-admin:w\", \"s-o:w\"],\n \"setOrgStatus\": [\"o-basic:w\", \"o:w\", \"s-o:w\"],\n \"setOrgWirelessLockDbEntries\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setReaderToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setRelayToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setRexToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setRoleScopeIds\": [\"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"setRoleSiteIds\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"setRoleUserIds\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"setSiteLocationMeasurement\": [\"o:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setSiteLocationRestriction\": [\"o:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"setSiteUserIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setThirdPartyReaderToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setThirdPartyWiegandToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setupMobileCredential\": [\"o-support:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setupWalletCredential\": [\"o-support:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserBuildingFloorUnitIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserGroupIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserRoleIds\": [\"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"setUserSiteIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserStatus\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserToGroup\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserToRole\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"setUserToSite\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserToZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserZoneIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setUserZoneUsers\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"setWiegandToEntry\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setZoneGroupIds\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setZoneShareOrgIds\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setZoneUserIds\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setZoneZoneGroups\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"setZoneZoneUsers\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"shareZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"signAwareCameraCsr\": [\"o:r\", \"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:r\", \"o{orgId}-acu{params.acuId}:orgAcu-awareConversion:w\"],\n \"signIdentityTermsAgreement\": [\"i{params.identityId}:identity-signIdentityTermsAgreement:w\", \"i{params.identityId}:w\"],\n \"signOrgTermsAgreement\": [\"o{orgId}-admin:w\", \"o{orgId}-integrations:w\"],\n \"signupOrg\": [\"o-basic:w\", \"o:w\", \"s-o-video:w\", \"s-o:w\"],\n \"submitCobaltUserFeedback\": [\"o:r\", \"o:w\", \"o{orgId}-rpt:r\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:r\", \"o{orgId}-rptGeneral:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:r\", \"s-o:w\"],\n \"syncAllegionMobiles\": [\"o:w\"],\n \"syncBilling\": [\"o:w\"],\n \"syncEmailAlertSubscriptions\": [\"o:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:w\", \"s-o:w\"],\n \"syncLastActivity\": [\"o:w\"],\n \"syncMetrics\": [\"o:w\"],\n \"syncMobile\": [\"o{orgId}-user{params.userId}:orgUser-syncMobile:w\", \"o{orgId}-user{params.userId}:w\"],\n \"syncOrgs\": [\"o:w\"],\n \"syncPricingConfig\": [\"o:w\"],\n \"syncThirdPartyDeviceShipmentInfo\": [\"o-support:w\", \"o:w\"],\n \"syncUsersIdentityProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"syncVersion\": [\"o{orgId}-user{params.userId}:orgUser-syncVersion:r\", \"o{orgId}-user{params.userId}:w\"],\n \"syncVideoProviderSubscriptions\": [\"o-basic:w\", \"o-supportVideo:w\", \"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"syncWalletAppleDevice\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"syncWirelessLockGatewayDevices\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"syncWirelessLockProviderDevices\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-integrations:w\", \"s-o:w\"],\n \"triggerAcuConfigChange\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"triggerAcusConfigChange\": [\"o-support:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"triggerAcuSoftwareUpdate\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"triggerAcusSoftwareUpdate\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"triggerPermissionsChange\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"unassignAcu\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"unassignReader\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"unlabelSwConfig\": [\"o:w\"],\n \"unprovisionMobile\": [\"o{orgId}-user{params.userId}:orgUser-unprovisionMobile:w\", \"o{orgId}-user{params.userId}:w\"],\n \"unshareZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"unsignIdentityTermsAgreement\": [\"i{params.identityId}:identity-unsignIdentityTermsAgreement:w\", \"i{params.identityId}:w\"],\n \"updateAccessSettings\": [\"o:w\", \"o{orgId}-admin:w\"],\n \"updateAcu\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"updateAcuExpansionBoard\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"s-o:w\"],\n \"updateAcuPort\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"updateAcuPortEol\": [\"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"updateAcuSwConfig\": [\"o:w\"],\n \"updateAlarm\": [\"o:w\", \"o{orgId}-alarmActions:w\", \"o{orgId}-configurations:w\"],\n \"updateAlarmConfiguration\": [\"o:w\", \"o{orgId}-alarmConfigurations:w\", \"o{orgId}-configurations:w\"],\n \"updateAlarms\": [\"o:w\", \"o{orgId}-alarmActions:w\", \"o{orgId}-configurations:w\"],\n \"updateAuthCert\": [\"o:w\", \"o{orgId}-cert:w\", \"o{orgId}-cert{params.authCertId}:w\", \"s-o:w\"],\n \"updateBadgeConfig\": [\"o:w\", \"o{orgId}-badgePrinting:w\", \"o{orgId}-configurations:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"updateBillableFeatures\": [\"o-basic:w\", \"o:w\"],\n \"updateBuilding\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"updateBuildingFloor\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"updateBuildingFloorUnit\": [\"o:w\", \"o{orgId}-building:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"updateBundledSwConfig\": [\"o:w\"],\n \"updateContactSensor\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateCredential\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateCredentialAction\": [\"o-support:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateCredentialConfig\": [\"o-support:w\", \"o:w\"],\n \"updateCustomField\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateCustomFieldDropdownItem\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateCustomFieldDropdownItems\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateCustomFields\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateDashboard\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"updateDeployTag\": [\"o:w\"],\n \"updateEmailAlerts\": [\"o:w\", \"o{orgId}-alertSettings:w\", \"o{orgId}-configurations:w\", \"s-o:w\"],\n \"updateEntry\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateEntryState\": [\"o:w\", \"o{orgId}-entryState:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"updateEvent\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateEvents\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"updateGenericInput\": [\"o:w\", \"o{orgId}-hw:w\", \"o{orgId}-site:w\", \"s-o:w\"],\n \"updateGroup\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateGroupUserIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateGroupZoneGroups\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateHeliumCoder\": [\"i:w\"],\n \"updateHookAction\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"updateIdentity\": [\"i:w\", \"i{params.identityId}:w\"],\n \"updateIdentityNicknames\": [\"i:w\", \"i{params.identityId}:w\"],\n \"updateIdentityPreferenceSet\": [\"i:w\", \"i{params.identityId}:w\"],\n \"updateIdentityProvider\": [\"o:w\", \"o{orgId}-integrations:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateIdentityRole\": [\"i:w\"],\n \"updateIntercomDirectory\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"updateLicenseBundleSubscription\": [\"o-basic:w\", \"o:w\", \"o{orgId}-admin:w\", \"s-o:w\"],\n \"updateLock\": [\"o:w\"],\n \"updateLockdownPlan\": [\"o:w\", \"o{orgId}-ldp:w\", \"s-o:w\"],\n \"updateMailroom\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"updateMap\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"updateMapCamera\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"updateMapExtra\": [\"o:w\", \"o{orgId}-map:w\", \"s-o:w\"],\n \"updateMfaCredential\": [\"i:w\", \"i{params.identityId}:w\"],\n \"updateMobileAppConfig\": [\"o:w\", \"o{orgId}-admin:w\", \"s-o:w\"],\n \"updateOpvideoDevice\": [\"o:w\", \"o{orgId}-opvideoDevice:w\", \"s-o:w\"],\n \"updateOpvideoIntercomProfile\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"updateOpvideoIntercomProfileGroups\": [\"o:w\", \"o{orgId}-opvideoIntercom:w\", \"s-o:w\"],\n \"updateOrg\": [\"o-basic:w\", \"o:w\", \"o{orgId}-account:w\", \"o{orgId}-admin:w\", \"s-o-video:w\", \"s-o:w\"],\n \"updateOrgFeatureFlag\": [\"o-support:w\", \"o:w\"],\n \"updateOrgFeatureFlagByName\": [\"o-support:w\", \"o:w\"],\n \"updateOrgFobAllegion\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateOrgLevelDefault\": [\"o:w\", \"o{orgId}-admin:w\", \"s-o:w\"],\n \"updateOrgMaintenanceWindow\": [\"o-basic:w\", \"o:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"updateOrgNativeAppStatus\": [\"o:w\", \"s-o-video:w\", \"s-o:w\"],\n \"updateOrgNoTourCredentialCommands\": [\"o:w\", \"s-o:w\"],\n \"updateOrgPicture\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-mobileAppSettings:w\", \"s-o:w\"],\n \"updateParcel\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"updateParcelPicture\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\"],\n \"updateParcels\": [\"o:w\", \"o{orgId}-parcelMgmtParcels:w\", \"s-o:w\"],\n \"updateParentOrgConfig\": [\"o-basic:w\", \"o:w\", \"o{orgId}-erpParentStore:w\"],\n \"updatePasswordHashTempForAware\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateReader\": [\"o-support:w\", \"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateRecipientControl\": [\"o-support:w\", \"o:w\"],\n \"updateRelay\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateRequest\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\"],\n \"updateRex\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateRole\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"updateRoleUserIds\": [\"o-role:w\", \"o:w\", \"o{orgId}-role:w\", \"s-o:w\"],\n \"updateSchedule\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateSite\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateSiteUserIds\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateSubscription\": [\"o:w\", \"o{orgId}-configurations:w\", \"o{orgId}-outboundWebhooks:w\", \"s-o:w\"],\n \"updateSwBundle\": [\"o:w\"],\n \"updateSwConfig\": [\"o:w\"],\n \"updateTasksReportsSchedule\": [\"o:w\", \"o{orgId}-rpt:w\", \"o{orgId}-rptGeneral:w\", \"s-o:w\"],\n \"updateThirdPartyDevice\": [\"o-support:w\", \"o:w\"],\n \"updateThirdPartyReader\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateThirdPartyWiegand\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateTitaniumVersion\": [\"o:w\"],\n \"updateUnusedInput\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateUser\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserCustomField\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserCustomFields\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserGroupIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserIntercomNotificationPreferenceSet\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"o{orgId}-user{params.userId}:w\", \"s-o:w\"],\n \"updateUserPicture\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserPreferenceSet\": [\"o:w\", \"o{orgId}-user{params.userId}:w\"],\n \"updateUserSiteIds\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateUserZoneUsers\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateVideoProvider\": [\"o:w\", \"o{orgId}-opvideoDevice:w\", \"o{orgId}-videoProviderLive:w\", \"o{orgId}-videoProviderPlayback:w\", \"s-o:w\"],\n \"updateWalletAppleDevice\": [\"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"updateWalletAppleDeviceBundles\": [\"o:w\"],\n \"updateWidget\": [\"o:w\", \"o{orgId}-dash:w\", \"s-o:w\"],\n \"updateWiegand\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-hw:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLock\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockFirmware\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockFirmwareBatch\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockGateway\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockGatewayFirmware\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockGatewayFirmwareBatch\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateWirelessLockReader\": [\"o:w\", \"o{orgId}-admin:w\", \"o{orgId}-integrations:w\", \"o{orgId}-quickStart:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateZone\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateZoneApbArea\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateZoneZoneGroups\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"updateZoneZoneUsers\": [\"o:w\", \"o{orgId}-site:w\", \"o{orgId}-siteGeneral:w\", \"s-o:w\"],\n \"userSendFeedback\": [\"o{orgId}-user{params.userId}:orgUser-sendFeedback:w\", \"o{orgId}-user{params.userId}:w\"],\n \"validateAcuSsmActivation\": [\"o:w\", \"o{orgId}-acu{params.acuId}:orgAcu-validateSsmActivation:w\", \"o{orgId}-hw:w\", \"s-o:w\"],\n \"verifyEmail\": [\"o-user:w\", \"o:w\", \"o{orgId}-user:w\", \"s-o:w\"],\n \"videoProviderDeeplink\": [\"o:r\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n \"videoProviderSnapshot\": [\"o:r\", \"o:w\", \"o{orgId}-videoProviderLive:w\", \"s-o:w\"],\n};\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\n\n/**![edit](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI1Ny43IDc1MmMyIDAgNC0uMiA2LS41TDQzMS45IDcyMmMyLS40IDMuOS0xLjMgNS4zLTIuOGw0MjMuOS00MjMuOWE5Ljk2IDkuOTYgMCAwMDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAwOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5ek04ODAgODM2SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTM2YzAtMTcuNy0xNC4zLTMyLTMyLTMyeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EditOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EditOutlined';\n}\nexport default RefIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nvar Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n className = props.className,\n _props$duration = props.duration,\n duration = _props$duration === void 0 ? 4.5 : _props$duration,\n showProgress = props.showProgress,\n _props$pauseOnHover = props.pauseOnHover,\n pauseOnHover = _props$pauseOnHover === void 0 ? true : _props$pauseOnHover,\n eventKey = props.eventKey,\n content = props.content,\n closable = props.closable,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,\n divProps = props.props,\n onClick = props.onClick,\n onNoticeClose = props.onNoticeClose,\n times = props.times,\n forcedHovering = props.hovering;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hovering = _React$useState2[0],\n setHovering = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n percent = _React$useState4[0],\n setPercent = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n spentTime = _React$useState6[0],\n setSpentTime = _React$useState6[1];\n var mergedHovering = forcedHovering || hovering;\n var mergedShowProgress = duration > 0 && showProgress;\n\n // ======================== Close =========================\n var onInternalClose = function onInternalClose() {\n onNoticeClose(eventKey);\n };\n var onCloseKeyDown = function onCloseKeyDown(e) {\n if (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === KeyCode.ENTER) {\n onInternalClose();\n }\n };\n\n // ======================== Effect ========================\n React.useEffect(function () {\n if (!mergedHovering && duration > 0) {\n var start = Date.now() - spentTime;\n var timeout = setTimeout(function () {\n onInternalClose();\n }, duration * 1000 - spentTime);\n return function () {\n if (pauseOnHover) {\n clearTimeout(timeout);\n }\n setSpentTime(Date.now() - start);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration, mergedHovering, times]);\n React.useEffect(function () {\n if (!mergedHovering && mergedShowProgress && (pauseOnHover || spentTime === 0)) {\n var start = performance.now();\n var animationFrame;\n var calculate = function calculate() {\n cancelAnimationFrame(animationFrame);\n animationFrame = requestAnimationFrame(function (timestamp) {\n var runtime = timestamp + spentTime - start;\n var progress = Math.min(runtime / (duration * 1000), 1);\n setPercent(progress * 100);\n if (progress < 1) {\n calculate();\n }\n });\n };\n calculate();\n return function () {\n if (pauseOnHover) {\n cancelAnimationFrame(animationFrame);\n }\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration, spentTime, mergedHovering, mergedShowProgress, times]);\n\n // ======================== Closable ========================\n var closableObj = React.useMemo(function () {\n if (_typeof(closable) === 'object' && closable !== null) {\n return closable;\n }\n if (closable) {\n return {\n closeIcon: closeIcon\n };\n }\n return {};\n }, [closable, closeIcon]);\n var ariaProps = pickAttrs(closableObj, true);\n\n // ======================== Progress ========================\n var validPercent = 100 - (!percent || percent < 0 ? 0 : percent > 100 ? 100 : percent);\n\n // ======================== Render ========================\n var noticePrefixCls = \"\".concat(prefixCls, \"-notice\");\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n ref: ref,\n className: classNames(noticePrefixCls, className, _defineProperty({}, \"\".concat(noticePrefixCls, \"-closable\"), closable)),\n style: style,\n onMouseEnter: function onMouseEnter(e) {\n var _divProps$onMouseEnte;\n setHovering(true);\n divProps === null || divProps === void 0 || (_divProps$onMouseEnte = divProps.onMouseEnter) === null || _divProps$onMouseEnte === void 0 || _divProps$onMouseEnte.call(divProps, e);\n },\n onMouseLeave: function onMouseLeave(e) {\n var _divProps$onMouseLeav;\n setHovering(false);\n divProps === null || divProps === void 0 || (_divProps$onMouseLeav = divProps.onMouseLeave) === null || _divProps$onMouseLeav === void 0 || _divProps$onMouseLeav.call(divProps, e);\n },\n onClick: onClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(noticePrefixCls, \"-content\")\n }, content), closable && /*#__PURE__*/React.createElement(\"a\", _extends({\n tabIndex: 0,\n className: \"\".concat(noticePrefixCls, \"-close\"),\n onKeyDown: onCloseKeyDown,\n \"aria-label\": \"Close\"\n }, ariaProps, {\n onClick: function onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n onInternalClose();\n }\n }), closableObj.closeIcon), mergedShowProgress && /*#__PURE__*/React.createElement(\"progress\", {\n className: \"\".concat(noticePrefixCls, \"-progress\"),\n max: \"100\",\n value: validPercent\n }, validPercent + '%'));\n});\nexport default Notify;","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","export default function parseTimeRanges(ranges) {\n var result = [];\n for (var i = 0; i < ranges.length; i++) {\n result.push({\n start: ranges.start(i),\n end: ranges.end(i),\n });\n }\n return result;\n}\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","import * as React from 'react';\nexport var PreviewGroupContext = /*#__PURE__*/React.createContext(null);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Portal from '@rc-component/portal';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nvar Operations = function Operations(props) {\n var visible = props.visible,\n maskTransitionName = props.maskTransitionName,\n getContainer = props.getContainer,\n prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n icons = props.icons,\n countRender = props.countRender,\n showSwitch = props.showSwitch,\n showProgress = props.showProgress,\n current = props.current,\n transform = props.transform,\n count = props.count,\n scale = props.scale,\n minScale = props.minScale,\n maxScale = props.maxScale,\n closeIcon = props.closeIcon,\n onActive = props.onActive,\n onClose = props.onClose,\n onZoomIn = props.onZoomIn,\n onZoomOut = props.onZoomOut,\n onRotateRight = props.onRotateRight,\n onRotateLeft = props.onRotateLeft,\n onFlipX = props.onFlipX,\n onFlipY = props.onFlipY,\n onReset = props.onReset,\n toolbarRender = props.toolbarRender,\n zIndex = props.zIndex,\n image = props.image;\n var groupContext = useContext(PreviewGroupContext);\n var rotateLeft = icons.rotateLeft,\n rotateRight = icons.rotateRight,\n zoomIn = icons.zoomIn,\n zoomOut = icons.zoomOut,\n close = icons.close,\n left = icons.left,\n right = icons.right,\n flipX = icons.flipX,\n flipY = icons.flipY;\n var toolClassName = \"\".concat(prefixCls, \"-operations-operation\");\n React.useEffect(function () {\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n onClose();\n }\n };\n if (visible) {\n window.addEventListener('keydown', onKeyDown);\n }\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [visible]);\n var handleActive = function handleActive(e, offset) {\n e.preventDefault();\n e.stopPropagation();\n onActive(offset);\n };\n var renderOperation = React.useCallback(function (_ref) {\n var type = _ref.type,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n icon = _ref.icon;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: type,\n className: classnames(toolClassName, \"\".concat(prefixCls, \"-operations-operation-\").concat(type), _defineProperty({}, \"\".concat(prefixCls, \"-operations-operation-disabled\"), !!disabled)),\n onClick: onClick\n }, icon);\n }, [toolClassName, prefixCls]);\n var switchPrevNode = showSwitch ? renderOperation({\n icon: left,\n onClick: function onClick(e) {\n return handleActive(e, -1);\n },\n type: 'prev',\n disabled: current === 0\n }) : undefined;\n var switchNextNode = showSwitch ? renderOperation({\n icon: right,\n onClick: function onClick(e) {\n return handleActive(e, 1);\n },\n type: 'next',\n disabled: current === count - 1\n }) : undefined;\n var flipYNode = renderOperation({\n icon: flipY,\n onClick: onFlipY,\n type: 'flipY'\n });\n var flipXNode = renderOperation({\n icon: flipX,\n onClick: onFlipX,\n type: 'flipX'\n });\n var rotateLeftNode = renderOperation({\n icon: rotateLeft,\n onClick: onRotateLeft,\n type: 'rotateLeft'\n });\n var rotateRightNode = renderOperation({\n icon: rotateRight,\n onClick: onRotateRight,\n type: 'rotateRight'\n });\n var zoomOutNode = renderOperation({\n icon: zoomOut,\n onClick: onZoomOut,\n type: 'zoomOut',\n disabled: scale <= minScale\n });\n var zoomInNode = renderOperation({\n icon: zoomIn,\n onClick: onZoomIn,\n type: 'zoomIn',\n disabled: scale === maxScale\n });\n var toolbarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-operations\")\n }, flipYNode, flipXNode, rotateLeftNode, rotateRightNode, zoomOutNode, zoomInNode);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: maskTransitionName\n }, function (_ref2) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(Portal, {\n open: true,\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-operations-wrapper\"), className, rootClassName),\n style: _objectSpread(_objectSpread({}, style), {}, {\n zIndex: zIndex\n })\n }, closeIcon === null ? null : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-close\"),\n onClick: onClose\n }, closeIcon || close), showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-left\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-left-disabled\"), current === 0)),\n onClick: function onClick(e) {\n return handleActive(e, -1);\n }\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-right\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-right-disabled\"), current === count - 1)),\n onClick: function onClick(e) {\n return handleActive(e, 1);\n }\n }, right)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, showProgress && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress\")\n }, countRender ? countRender(current + 1, count) : \"\".concat(current + 1, \" / \").concat(count)), toolbarRender ? toolbarRender(toolbarNode, _objectSpread(_objectSpread({\n icons: {\n prevIcon: switchPrevNode,\n nextIcon: switchNextNode,\n flipYIcon: flipYNode,\n flipXIcon: flipXNode,\n rotateLeftIcon: rotateLeftNode,\n rotateRightIcon: rotateRightNode,\n zoomOutIcon: zoomOutNode,\n zoomInIcon: zoomInNode\n },\n actions: {\n onActive: onActive,\n onFlipY: onFlipY,\n onFlipX: onFlipX,\n onRotateLeft: onRotateLeft,\n onRotateRight: onRotateRight,\n onZoomOut: onZoomOut,\n onZoomIn: onZoomIn,\n onReset: onReset,\n onClose: onClose\n },\n transform: transform\n }, groupContext ? {\n current: current,\n total: count\n } : {}), {}, {\n image: image\n })) : toolbarNode)));\n });\n};\nexport default Operations;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport raf from \"rc-util/es/raf\";\nimport { useRef, useState } from 'react';\nvar initialTransform = {\n x: 0,\n y: 0,\n rotate: 0,\n scale: 1,\n flipX: false,\n flipY: false\n};\nexport default function useImageTransform(imgRef, minScale, maxScale, onTransform) {\n var frame = useRef(null);\n var queue = useRef([]);\n var _useState = useState(initialTransform),\n _useState2 = _slicedToArray(_useState, 2),\n transform = _useState2[0],\n setTransform = _useState2[1];\n var resetTransform = function resetTransform(action) {\n setTransform(initialTransform);\n if (!isEqual(initialTransform, transform)) {\n onTransform === null || onTransform === void 0 || onTransform({\n transform: initialTransform,\n action: action\n });\n }\n };\n\n /** Direct update transform */\n var updateTransform = function updateTransform(newTransform, action) {\n if (frame.current === null) {\n queue.current = [];\n frame.current = raf(function () {\n setTransform(function (preState) {\n var memoState = preState;\n queue.current.forEach(function (queueState) {\n memoState = _objectSpread(_objectSpread({}, memoState), queueState);\n });\n frame.current = null;\n onTransform === null || onTransform === void 0 || onTransform({\n transform: memoState,\n action: action\n });\n return memoState;\n });\n });\n }\n queue.current.push(_objectSpread(_objectSpread({}, transform), newTransform));\n };\n\n /** Scale according to the position of centerX and centerY */\n var dispatchZoomChange = function dispatchZoomChange(ratio, action, centerX, centerY, isTouch) {\n var _imgRef$current = imgRef.current,\n width = _imgRef$current.width,\n height = _imgRef$current.height,\n offsetWidth = _imgRef$current.offsetWidth,\n offsetHeight = _imgRef$current.offsetHeight,\n offsetLeft = _imgRef$current.offsetLeft,\n offsetTop = _imgRef$current.offsetTop;\n var newRatio = ratio;\n var newScale = transform.scale * ratio;\n if (newScale > maxScale) {\n newScale = maxScale;\n newRatio = maxScale / transform.scale;\n } else if (newScale < minScale) {\n // For mobile interactions, allow scaling down to the minimum scale.\n newScale = isTouch ? newScale : minScale;\n newRatio = newScale / transform.scale;\n }\n\n /** Default center point scaling */\n var mergedCenterX = centerX !== null && centerX !== void 0 ? centerX : innerWidth / 2;\n var mergedCenterY = centerY !== null && centerY !== void 0 ? centerY : innerHeight / 2;\n var diffRatio = newRatio - 1;\n /** Deviation calculated from image size */\n var diffImgX = diffRatio * width * 0.5;\n var diffImgY = diffRatio * height * 0.5;\n /** The difference between the click position and the edge of the document */\n var diffOffsetLeft = diffRatio * (mergedCenterX - transform.x - offsetLeft);\n var diffOffsetTop = diffRatio * (mergedCenterY - transform.y - offsetTop);\n /** Final positioning */\n var newX = transform.x - (diffOffsetLeft - diffImgX);\n var newY = transform.y - (diffOffsetTop - diffImgY);\n\n /**\n * When zooming the image\n * When the image size is smaller than the width and height of the window, the position is initialized\n */\n if (ratio < 1 && newScale === 1) {\n var mergedWidth = offsetWidth * newScale;\n var mergedHeight = offsetHeight * newScale;\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n if (mergedWidth <= clientWidth && mergedHeight <= clientHeight) {\n newX = 0;\n newY = 0;\n }\n }\n updateTransform({\n x: newX,\n y: newY,\n scale: newScale\n }, action);\n };\n return {\n transform: transform,\n resetTransform: resetTransform,\n updateTransform: updateTransform,\n dispatchZoomChange: dispatchZoomChange\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nfunction fixPoint(key, start, width, clientWidth) {\n var startAddWidth = start + width;\n var offsetStart = (width - clientWidth) / 2;\n if (width > clientWidth) {\n if (start > 0) {\n return _defineProperty({}, key, offsetStart);\n }\n if (start < 0 && startAddWidth < clientWidth) {\n return _defineProperty({}, key, -offsetStart);\n }\n } else if (start < 0 || startAddWidth > clientWidth) {\n return _defineProperty({}, key, start < 0 ? offsetStart : -offsetStart);\n }\n return {};\n}\n\n/**\n * Fix positon x,y point when\n *\n * Ele width && height < client\n * - Back origin\n *\n * - Ele width | height > clientWidth | clientHeight\n * - left | top > 0 -> Back 0\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * Regardless of other\n */\nexport default function getFixScaleEleTransPosition(width, height, left, top) {\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n var fixPos = null;\n if (width <= clientWidth && height <= clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n } else if (width > clientWidth || height > clientHeight) {\n fixPos = _objectSpread(_objectSpread({}, fixPoint('x', left, width, clientWidth)), fixPoint('y', top, height, clientHeight));\n }\n return fixPos;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport { isImageValid } from \"../util\";\nexport default function useStatus(_ref) {\n var src = _ref.src,\n isCustomPlaceholder = _ref.isCustomPlaceholder,\n fallback = _ref.fallback;\n var _useState = useState(isCustomPlaceholder ? 'loading' : 'normal'),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n var isLoaded = useRef(false);\n var isError = status === 'error';\n\n // https://github.com/react-component/image/pull/187\n useEffect(function () {\n var isCurrentSrc = true;\n isImageValid(src).then(function (isValid) {\n // https://github.com/ant-design/ant-design/issues/44948\n // If src changes, the previous setStatus should not be triggered\n if (!isValid && isCurrentSrc) {\n setStatus('error');\n }\n });\n return function () {\n isCurrentSrc = false;\n };\n }, [src]);\n useEffect(function () {\n if (isCustomPlaceholder && !isLoaded.current) {\n setStatus('loading');\n } else if (isError) {\n setStatus('normal');\n }\n }, [src]);\n var onLoad = function onLoad() {\n setStatus('normal');\n };\n var getImgRef = function getImgRef(img) {\n isLoaded.current = false;\n if (status === 'loading' && img !== null && img !== void 0 && img.complete && (img.naturalWidth || img.naturalHeight)) {\n isLoaded.current = true;\n onLoad();\n }\n };\n var srcAndOnload = isError && fallback ? {\n src: fallback\n } : {\n onLoad: onLoad,\n src: src\n };\n return [getImgRef, srcAndOnload, status];\n}","export function isImageValid(src) {\n return new Promise(function (resolve) {\n var img = document.createElement('img');\n img.onerror = function () {\n return resolve(false);\n };\n img.onload = function () {\n return resolve(true);\n };\n img.src = src;\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { useEffect, useRef, useState } from 'react';\nimport getFixScaleEleTransPosition from \"../getFixScaleEleTransPosition\";\nfunction getDistance(a, b) {\n var x = a.x - b.x;\n var y = a.y - b.y;\n return Math.hypot(x, y);\n}\nfunction getCenter(oldPoint1, oldPoint2, newPoint1, newPoint2) {\n // Calculate the distance each point has moved\n var distance1 = getDistance(oldPoint1, newPoint1);\n var distance2 = getDistance(oldPoint2, newPoint2);\n\n // If both distances are 0, return the original points\n if (distance1 === 0 && distance2 === 0) {\n return [oldPoint1.x, oldPoint1.y];\n }\n\n // Calculate the ratio of the distances\n var ratio = distance1 / (distance1 + distance2);\n\n // Calculate the new center point based on the ratio\n var x = oldPoint1.x + ratio * (oldPoint2.x - oldPoint1.x);\n var y = oldPoint1.y + ratio * (oldPoint2.y - oldPoint1.y);\n return [x, y];\n}\nexport default function useTouchEvent(imgRef, movable, visible, minScale, transform, updateTransform, dispatchZoomChange) {\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isTouching = _useState2[0],\n setIsTouching = _useState2[1];\n var touchPointInfo = useRef({\n point1: {\n x: 0,\n y: 0\n },\n point2: {\n x: 0,\n y: 0\n },\n eventType: 'none'\n });\n var updateTouchPointInfo = function updateTouchPointInfo(values) {\n touchPointInfo.current = _objectSpread(_objectSpread({}, touchPointInfo.current), values);\n };\n var onTouchStart = function onTouchStart(event) {\n if (!movable) return;\n event.stopPropagation();\n setIsTouching(true);\n var _event$touches = event.touches,\n touches = _event$touches === void 0 ? [] : _event$touches;\n if (touches.length > 1) {\n // touch zoom\n updateTouchPointInfo({\n point1: {\n x: touches[0].clientX,\n y: touches[0].clientY\n },\n point2: {\n x: touches[1].clientX,\n y: touches[1].clientY\n },\n eventType: 'touchZoom'\n });\n } else {\n // touch move\n updateTouchPointInfo({\n point1: {\n x: touches[0].clientX - x,\n y: touches[0].clientY - y\n },\n eventType: 'move'\n });\n }\n };\n var onTouchMove = function onTouchMove(event) {\n var _event$touches2 = event.touches,\n touches = _event$touches2 === void 0 ? [] : _event$touches2;\n var _touchPointInfo$curre = touchPointInfo.current,\n point1 = _touchPointInfo$curre.point1,\n point2 = _touchPointInfo$curre.point2,\n eventType = _touchPointInfo$curre.eventType;\n if (touches.length > 1 && eventType === 'touchZoom') {\n // touch zoom\n var newPoint1 = {\n x: touches[0].clientX,\n y: touches[0].clientY\n };\n var newPoint2 = {\n x: touches[1].clientX,\n y: touches[1].clientY\n };\n var _getCenter = getCenter(point1, point2, newPoint1, newPoint2),\n _getCenter2 = _slicedToArray(_getCenter, 2),\n centerX = _getCenter2[0],\n centerY = _getCenter2[1];\n var ratio = getDistance(newPoint1, newPoint2) / getDistance(point1, point2);\n dispatchZoomChange(ratio, 'touchZoom', centerX, centerY, true);\n updateTouchPointInfo({\n point1: newPoint1,\n point2: newPoint2,\n eventType: 'touchZoom'\n });\n } else if (eventType === 'move') {\n // touch move\n updateTransform({\n x: touches[0].clientX - point1.x,\n y: touches[0].clientY - point1.y\n }, 'move');\n updateTouchPointInfo({\n eventType: 'move'\n });\n }\n };\n var onTouchEnd = function onTouchEnd() {\n if (!visible) return;\n if (isTouching) {\n setIsTouching(false);\n }\n updateTouchPointInfo({\n eventType: 'none'\n });\n if (minScale > scale) {\n /** When the scaling ratio is less than the minimum scaling ratio, reset the scaling ratio */\n return updateTransform({\n x: 0,\n y: 0,\n scale: minScale\n }, 'touchZoom');\n }\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n };\n useEffect(function () {\n var onTouchMoveListener;\n if (visible && movable) {\n onTouchMoveListener = addEventListener(window, 'touchmove', function (e) {\n return e.preventDefault();\n }, {\n passive: false\n });\n }\n return function () {\n var _onTouchMoveListener;\n (_onTouchMoveListener = onTouchMoveListener) === null || _onTouchMoveListener === void 0 || _onTouchMoveListener.remove();\n };\n }, [visible, movable]);\n return {\n isTouching: isTouching,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fallback\", \"src\", \"imgRef\"],\n _excluded2 = [\"prefixCls\", \"src\", \"alt\", \"imageInfo\", \"fallback\", \"movable\", \"onClose\", \"visible\", \"icons\", \"rootClassName\", \"closeIcon\", \"getContainer\", \"current\", \"count\", \"countRender\", \"scaleStep\", \"minScale\", \"maxScale\", \"transitionName\", \"maskTransitionName\", \"imageRender\", \"imgCommonProps\", \"toolbarRender\", \"onTransform\", \"onChange\"];\nimport classnames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport Operations from \"./Operations\";\nimport { PreviewGroupContext } from \"./context\";\nimport useImageTransform from \"./hooks/useImageTransform\";\nimport useMouseEvent from \"./hooks/useMouseEvent\";\nimport useStatus from \"./hooks/useStatus\";\nimport useTouchEvent from \"./hooks/useTouchEvent\";\nimport { BASE_SCALE_RATIO } from \"./previewConfig\";\nvar PreviewImage = function PreviewImage(_ref) {\n var fallback = _ref.fallback,\n src = _ref.src,\n imgRef = _ref.imgRef,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useStatus = useStatus({\n src: src,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 2),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1];\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: function ref(_ref2) {\n imgRef.current = _ref2;\n getImgRef(_ref2);\n }\n }, props, srcAndOnload));\n};\nvar Preview = function Preview(props) {\n var prefixCls = props.prefixCls,\n src = props.src,\n alt = props.alt,\n imageInfo = props.imageInfo,\n fallback = props.fallback,\n _props$movable = props.movable,\n movable = _props$movable === void 0 ? true : _props$movable,\n onClose = props.onClose,\n visible = props.visible,\n _props$icons = props.icons,\n icons = _props$icons === void 0 ? {} : _props$icons,\n rootClassName = props.rootClassName,\n closeIcon = props.closeIcon,\n getContainer = props.getContainer,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$count = props.count,\n count = _props$count === void 0 ? 1 : _props$count,\n countRender = props.countRender,\n _props$scaleStep = props.scaleStep,\n scaleStep = _props$scaleStep === void 0 ? 0.5 : _props$scaleStep,\n _props$minScale = props.minScale,\n minScale = _props$minScale === void 0 ? 1 : _props$minScale,\n _props$maxScale = props.maxScale,\n maxScale = _props$maxScale === void 0 ? 50 : _props$maxScale,\n _props$transitionName = props.transitionName,\n transitionName = _props$transitionName === void 0 ? 'zoom' : _props$transitionName,\n _props$maskTransition = props.maskTransitionName,\n maskTransitionName = _props$maskTransition === void 0 ? 'fade' : _props$maskTransition,\n imageRender = props.imageRender,\n imgCommonProps = props.imgCommonProps,\n toolbarRender = props.toolbarRender,\n onTransform = props.onTransform,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded2);\n var imgRef = useRef();\n var groupContext = useContext(PreviewGroupContext);\n var showLeftOrRightSwitches = groupContext && count > 1;\n var showOperationsProgress = groupContext && count >= 1;\n var _useState = useState(true),\n _useState2 = _slicedToArray(_useState, 2),\n enableTransition = _useState2[0],\n setEnableTransition = _useState2[1];\n var _useImageTransform = useImageTransform(imgRef, minScale, maxScale, onTransform),\n transform = _useImageTransform.transform,\n resetTransform = _useImageTransform.resetTransform,\n updateTransform = _useImageTransform.updateTransform,\n dispatchZoomChange = _useImageTransform.dispatchZoomChange;\n var _useMouseEvent = useMouseEvent(imgRef, movable, visible, scaleStep, transform, updateTransform, dispatchZoomChange),\n isMoving = _useMouseEvent.isMoving,\n onMouseDown = _useMouseEvent.onMouseDown,\n onWheel = _useMouseEvent.onWheel;\n var _useTouchEvent = useTouchEvent(imgRef, movable, visible, minScale, transform, updateTransform, dispatchZoomChange),\n isTouching = _useTouchEvent.isTouching,\n onTouchStart = _useTouchEvent.onTouchStart,\n onTouchMove = _useTouchEvent.onTouchMove,\n onTouchEnd = _useTouchEvent.onTouchEnd;\n var rotate = transform.rotate,\n scale = transform.scale;\n var wrapClassName = classnames(_defineProperty({}, \"\".concat(prefixCls, \"-moving\"), isMoving));\n useEffect(function () {\n if (!enableTransition) {\n setEnableTransition(true);\n }\n }, [enableTransition]);\n var onAfterClose = function onAfterClose() {\n resetTransform('close');\n };\n var onZoomIn = function onZoomIn() {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'zoomIn');\n };\n var onZoomOut = function onZoomOut() {\n dispatchZoomChange(BASE_SCALE_RATIO / (BASE_SCALE_RATIO + scaleStep), 'zoomOut');\n };\n var onRotateRight = function onRotateRight() {\n updateTransform({\n rotate: rotate + 90\n }, 'rotateRight');\n };\n var onRotateLeft = function onRotateLeft() {\n updateTransform({\n rotate: rotate - 90\n }, 'rotateLeft');\n };\n var onFlipX = function onFlipX() {\n updateTransform({\n flipX: !transform.flipX\n }, 'flipX');\n };\n var onFlipY = function onFlipY() {\n updateTransform({\n flipY: !transform.flipY\n }, 'flipY');\n };\n var onReset = function onReset() {\n resetTransform('reset');\n };\n var onActive = function onActive(offset) {\n var position = current + offset;\n if (!Number.isInteger(position) || position < 0 || position > count - 1) {\n return;\n }\n setEnableTransition(false);\n resetTransform(offset < 0 ? 'prev' : 'next');\n onChange === null || onChange === void 0 || onChange(position, current);\n };\n var onKeyDown = function onKeyDown(event) {\n if (!visible || !showLeftOrRightSwitches) return;\n if (event.keyCode === KeyCode.LEFT) {\n onActive(-1);\n } else if (event.keyCode === KeyCode.RIGHT) {\n onActive(1);\n }\n };\n var onDoubleClick = function onDoubleClick(event) {\n if (visible) {\n if (scale !== 1) {\n updateTransform({\n x: 0,\n y: 0,\n scale: 1\n }, 'doubleClick');\n } else {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'doubleClick', event.clientX, event.clientY);\n }\n }\n };\n useEffect(function () {\n var onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);\n return function () {\n onKeyDownListener.remove();\n };\n }, [visible, showLeftOrRightSwitches, current]);\n var imgNode = /*#__PURE__*/React.createElement(PreviewImage, _extends({}, imgCommonProps, {\n width: props.width,\n height: props.height,\n imgRef: imgRef,\n className: \"\".concat(prefixCls, \"-img\"),\n alt: alt,\n style: {\n transform: \"translate3d(\".concat(transform.x, \"px, \").concat(transform.y, \"px, 0) scale3d(\").concat(transform.flipX ? '-' : '').concat(scale, \", \").concat(transform.flipY ? '-' : '').concat(scale, \", 1) rotate(\").concat(rotate, \"deg)\"),\n transitionDuration: (!enableTransition || isTouching) && '0s'\n },\n fallback: fallback,\n src: src,\n onWheel: onWheel,\n onMouseDown: onMouseDown,\n onDoubleClick: onDoubleClick,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onTouchCancel: onTouchEnd\n }));\n var image = _objectSpread({\n url: src,\n alt: alt\n }, imageInfo);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, _extends({\n transitionName: transitionName,\n maskTransitionName: maskTransitionName,\n closable: false,\n keyboard: true,\n prefixCls: prefixCls,\n onClose: onClose,\n visible: visible,\n classNames: {\n wrapper: wrapClassName\n },\n rootClassName: rootClassName,\n getContainer: getContainer\n }, restProps, {\n afterClose: onAfterClose\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-img-wrapper\")\n }, imageRender ? imageRender(imgNode, _objectSpread({\n transform: transform,\n image: image\n }, groupContext ? {\n current: current\n } : {})) : imgNode)), /*#__PURE__*/React.createElement(Operations, {\n visible: visible,\n transform: transform,\n maskTransitionName: maskTransitionName,\n closeIcon: closeIcon,\n getContainer: getContainer,\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n icons: icons,\n countRender: countRender,\n showSwitch: showLeftOrRightSwitches,\n showProgress: showOperationsProgress,\n current: current,\n count: count,\n scale: scale,\n minScale: minScale,\n maxScale: maxScale,\n toolbarRender: toolbarRender,\n onActive: onActive,\n onZoomIn: onZoomIn,\n onZoomOut: onZoomOut,\n onRotateRight: onRotateRight,\n onRotateLeft: onRotateLeft,\n onFlipX: onFlipX,\n onFlipY: onFlipY,\n onClose: onClose,\n onReset: onReset,\n zIndex: restProps.zIndex !== undefined ? restProps.zIndex + 1 : undefined,\n image: image\n }));\n};\nexport default Preview;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { warning } from \"rc-util/es/warning\";\nimport { useEffect, useRef, useState } from 'react';\nimport getFixScaleEleTransPosition from \"../getFixScaleEleTransPosition\";\nimport { BASE_SCALE_RATIO, WHEEL_MAX_SCALE_RATIO } from \"../previewConfig\";\nexport default function useMouseEvent(imgRef, movable, visible, scaleStep, transform, updateTransform, dispatchZoomChange) {\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMoving = _useState2[0],\n setMoving = _useState2[1];\n var startPositionInfo = useRef({\n diffX: 0,\n diffY: 0,\n transformX: 0,\n transformY: 0\n });\n var onMouseDown = function onMouseDown(event) {\n // Only allow main button\n if (!movable || event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n startPositionInfo.current = {\n diffX: event.pageX - x,\n diffY: event.pageY - y,\n transformX: x,\n transformY: y\n };\n setMoving(true);\n };\n var onMouseMove = function onMouseMove(event) {\n if (visible && isMoving) {\n updateTransform({\n x: event.pageX - startPositionInfo.current.diffX,\n y: event.pageY - startPositionInfo.current.diffY\n }, 'move');\n }\n };\n var onMouseUp = function onMouseUp() {\n if (visible && isMoving) {\n setMoving(false);\n\n /** No need to restore the position when the picture is not moved, So as not to interfere with the click */\n var _startPositionInfo$cu = startPositionInfo.current,\n transformX = _startPositionInfo$cu.transformX,\n transformY = _startPositionInfo$cu.transformY;\n var hasChangedPosition = x !== transformX && y !== transformY;\n if (!hasChangedPosition) return;\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n }\n };\n var onWheel = function onWheel(event) {\n if (!visible || event.deltaY == 0) return;\n // Scale ratio depends on the deltaY size\n var scaleRatio = Math.abs(event.deltaY / 100);\n // Limit the maximum scale ratio\n var mergedScaleRatio = Math.min(scaleRatio, WHEEL_MAX_SCALE_RATIO);\n // Scale the ratio each time\n var ratio = BASE_SCALE_RATIO + mergedScaleRatio * scaleStep;\n if (event.deltaY > 0) {\n ratio = BASE_SCALE_RATIO / ratio;\n }\n dispatchZoomChange(ratio, 'wheel', event.clientX, event.clientY);\n };\n useEffect(function () {\n var onTopMouseUpListener;\n var onTopMouseMoveListener;\n var onMouseUpListener;\n var onMouseMoveListener;\n if (movable) {\n onMouseUpListener = addEventListener(window, 'mouseup', onMouseUp, false);\n onMouseMoveListener = addEventListener(window, 'mousemove', onMouseMove, false);\n try {\n // Resolve if in iframe lost event\n /* istanbul ignore next */\n if (window.top !== window.self) {\n onTopMouseUpListener = addEventListener(window.top, 'mouseup', onMouseUp, false);\n onTopMouseMoveListener = addEventListener(window.top, 'mousemove', onMouseMove, false);\n }\n } catch (error) {\n /* istanbul ignore next */\n warning(false, \"[rc-image] \".concat(error));\n }\n }\n return function () {\n var _onMouseUpListener, _onMouseMoveListener, _onTopMouseUpListener, _onTopMouseMoveListen;\n (_onMouseUpListener = onMouseUpListener) === null || _onMouseUpListener === void 0 || _onMouseUpListener.remove();\n (_onMouseMoveListener = onMouseMoveListener) === null || _onMouseMoveListener === void 0 || _onMouseMoveListener.remove();\n /* istanbul ignore next */\n (_onTopMouseUpListener = onTopMouseUpListener) === null || _onTopMouseUpListener === void 0 || _onTopMouseUpListener.remove();\n /* istanbul ignore next */\n (_onTopMouseMoveListen = onTopMouseMoveListener) === null || _onTopMouseMoveListen === void 0 || _onTopMouseMoveListen.remove();\n };\n }, [visible, isMoving, x, y, rotate, movable]);\n return {\n isMoving: isMoving,\n onMouseDown: onMouseDown,\n onMouseMove: onMouseMove,\n onMouseUp: onMouseUp,\n onWheel: onWheel\n };\n}","/** Scale the ratio base */\nexport var BASE_SCALE_RATIO = 1;\n/** The maximum zoom ratio when the mouse zooms in, adjustable */\nexport var WHEEL_MAX_SCALE_RATIO = 1;","export var COMMON_PROPS = ['crossOrigin', 'decoding', 'draggable', 'loading', 'referrerPolicy', 'sizes', 'srcSet', 'useMap', 'alt'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"onVisibleChange\", \"getContainer\", \"current\", \"movable\", \"minScale\", \"maxScale\", \"countRender\", \"closeIcon\", \"onChange\", \"onTransform\", \"toolbarRender\", \"imageRender\"],\n _excluded2 = [\"src\"];\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport Preview from \"./Preview\";\nimport { PreviewGroupContext } from \"./context\";\nimport usePreviewItems from \"./hooks/usePreviewItems\";\nvar Group = function Group(_ref) {\n var _mergedItems$current;\n var _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? 'rc-image-preview' : _ref$previewPrefixCls,\n children = _ref.children,\n _ref$icons = _ref.icons,\n icons = _ref$icons === void 0 ? {} : _ref$icons,\n items = _ref.items,\n preview = _ref.preview,\n fallback = _ref.fallback;\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n previewVisible = _ref2.visible,\n onVisibleChange = _ref2.onVisibleChange,\n getContainer = _ref2.getContainer,\n currentIndex = _ref2.current,\n movable = _ref2.movable,\n minScale = _ref2.minScale,\n maxScale = _ref2.maxScale,\n countRender = _ref2.countRender,\n closeIcon = _ref2.closeIcon,\n onChange = _ref2.onChange,\n onTransform = _ref2.onTransform,\n toolbarRender = _ref2.toolbarRender,\n imageRender = _ref2.imageRender,\n dialogProps = _objectWithoutProperties(_ref2, _excluded);\n\n // ========================== Items ===========================\n var _usePreviewItems = usePreviewItems(items),\n _usePreviewItems2 = _slicedToArray(_usePreviewItems, 3),\n mergedItems = _usePreviewItems2[0],\n register = _usePreviewItems2[1],\n fromItems = _usePreviewItems2[2];\n\n // ========================= Preview ==========================\n // >>> Index\n var _useMergedState = useMergedState(0, {\n value: currentIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n current = _useMergedState2[0],\n setCurrent = _useMergedState2[1];\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n keepOpenIndex = _useState2[0],\n setKeepOpenIndex = _useState2[1];\n\n // >>> Image\n var _ref3 = ((_mergedItems$current = mergedItems[current]) === null || _mergedItems$current === void 0 ? void 0 : _mergedItems$current.data) || {},\n src = _ref3.src,\n imgCommonProps = _objectWithoutProperties(_ref3, _excluded2);\n // >>> Visible\n var _useMergedState3 = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: function onChange(val, prevVal) {\n onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(val, prevVal, current);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n isShowPreview = _useMergedState4[0],\n setShowPreview = _useMergedState4[1];\n\n // >>> Position\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n mousePosition = _useState4[0],\n setMousePosition = _useState4[1];\n var onPreviewFromImage = React.useCallback(function (id, imageSrc, mouseX, mouseY) {\n var index = fromItems ? mergedItems.findIndex(function (item) {\n return item.data.src === imageSrc;\n }) : mergedItems.findIndex(function (item) {\n return item.id === id;\n });\n setCurrent(index < 0 ? 0 : index);\n setShowPreview(true);\n setMousePosition({\n x: mouseX,\n y: mouseY\n });\n setKeepOpenIndex(true);\n }, [mergedItems, fromItems]);\n\n // Reset current when reopen\n React.useEffect(function () {\n if (isShowPreview) {\n if (!keepOpenIndex) {\n setCurrent(0);\n }\n } else {\n setKeepOpenIndex(false);\n }\n }, [isShowPreview]);\n\n // ========================== Events ==========================\n var onInternalChange = function onInternalChange(next, prev) {\n setCurrent(next);\n onChange === null || onChange === void 0 || onChange(next, prev);\n };\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n\n // ========================= Context ==========================\n var previewGroupContext = React.useMemo(function () {\n return {\n register: register,\n onPreview: onPreviewFromImage\n };\n }, [register, onPreviewFromImage]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(PreviewGroupContext.Provider, {\n value: previewGroupContext\n }, children, /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n movable: movable,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n closeIcon: closeIcon,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n imgCommonProps: imgCommonProps,\n src: src,\n fallback: fallback,\n icons: icons,\n minScale: minScale,\n maxScale: maxScale,\n getContainer: getContainer,\n current: current,\n count: mergedItems.length,\n countRender: countRender,\n onTransform: onTransform,\n toolbarRender: toolbarRender,\n imageRender: imageRender,\n onChange: onInternalChange\n }, dialogProps)));\n};\nexport default Group;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { PreviewGroupContext } from \"../context\";\nvar uid = 0;\nexport default function useRegisterImage(canPreview, data) {\n var _React$useState = React.useState(function () {\n uid += 1;\n return String(uid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n var groupContext = React.useContext(PreviewGroupContext);\n var registerData = {\n data: data,\n canPreview: canPreview\n };\n\n // Keep order start\n // Resolve https://github.com/ant-design/ant-design/issues/28881\n // Only need unRegister when component unMount\n React.useEffect(function () {\n if (groupContext) {\n return groupContext.register(id, registerData);\n }\n }, []);\n React.useEffect(function () {\n if (groupContext) {\n groupContext.register(id, registerData);\n }\n }, [canPreview, data]);\n return id;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"src\", \"alt\", \"onPreviewClose\", \"prefixCls\", \"previewPrefixCls\", \"placeholder\", \"fallback\", \"width\", \"height\", \"style\", \"preview\", \"className\", \"onClick\", \"onError\", \"wrapperClassName\", \"wrapperStyle\", \"rootClassName\"],\n _excluded2 = [\"src\", \"visible\", \"onVisibleChange\", \"getContainer\", \"mask\", \"maskClassName\", \"movable\", \"icons\", \"scaleStep\", \"minScale\", \"maxScale\", \"imageRender\", \"toolbarRender\"];\nimport cn from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport Preview from \"./Preview\";\nimport PreviewGroup from \"./PreviewGroup\";\nimport { COMMON_PROPS } from \"./common\";\nimport { PreviewGroupContext } from \"./context\";\nimport useRegisterImage from \"./hooks/useRegisterImage\";\nimport useStatus from \"./hooks/useStatus\";\nvar ImageInternal = function ImageInternal(props) {\n var imgSrc = props.src,\n alt = props.alt,\n onInitialPreviewClose = props.onPreviewClose,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-image' : _props$prefixCls,\n _props$previewPrefixC = props.previewPrefixCls,\n previewPrefixCls = _props$previewPrefixC === void 0 ? \"\".concat(prefixCls, \"-preview\") : _props$previewPrefixC,\n placeholder = props.placeholder,\n fallback = props.fallback,\n width = props.width,\n height = props.height,\n style = props.style,\n _props$preview = props.preview,\n preview = _props$preview === void 0 ? true : _props$preview,\n className = props.className,\n onClick = props.onClick,\n onError = props.onError,\n wrapperClassName = props.wrapperClassName,\n wrapperStyle = props.wrapperStyle,\n rootClassName = props.rootClassName,\n otherProps = _objectWithoutProperties(props, _excluded);\n var isCustomPlaceholder = placeholder && placeholder !== true;\n var _ref = _typeof(preview) === 'object' ? preview : {},\n previewSrc = _ref.src,\n _ref$visible = _ref.visible,\n previewVisible = _ref$visible === void 0 ? undefined : _ref$visible,\n _ref$onVisibleChange = _ref.onVisibleChange,\n onPreviewVisibleChange = _ref$onVisibleChange === void 0 ? onInitialPreviewClose : _ref$onVisibleChange,\n _ref$getContainer = _ref.getContainer,\n getPreviewContainer = _ref$getContainer === void 0 ? undefined : _ref$getContainer,\n previewMask = _ref.mask,\n maskClassName = _ref.maskClassName,\n movable = _ref.movable,\n icons = _ref.icons,\n scaleStep = _ref.scaleStep,\n minScale = _ref.minScale,\n maxScale = _ref.maxScale,\n imageRender = _ref.imageRender,\n toolbarRender = _ref.toolbarRender,\n dialogProps = _objectWithoutProperties(_ref, _excluded2);\n var src = previewSrc !== null && previewSrc !== void 0 ? previewSrc : imgSrc;\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n var _useStatus = useStatus({\n src: imgSrc,\n isCustomPlaceholder: isCustomPlaceholder,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 3),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1],\n status = _useStatus2[2];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mousePosition = _useState2[0],\n setMousePosition = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var canPreview = !!preview;\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n var wrapperClass = cn(prefixCls, wrapperClassName, rootClassName, _defineProperty({}, \"\".concat(prefixCls, \"-error\"), status === 'error'));\n\n // ========================= ImageProps =========================\n var imgCommonProps = useMemo(function () {\n var obj = {};\n COMMON_PROPS.forEach(function (prop) {\n if (props[prop] !== undefined) {\n obj[prop] = props[prop];\n }\n });\n return obj;\n }, COMMON_PROPS.map(function (prop) {\n return props[prop];\n }));\n\n // ========================== Register ==========================\n var registerData = useMemo(function () {\n return _objectSpread(_objectSpread({}, imgCommonProps), {}, {\n src: src\n });\n }, [src, imgCommonProps]);\n var imageId = useRegisterImage(canPreview, registerData);\n\n // ========================== Preview ===========================\n var onPreview = function onPreview(e) {\n var _getOffset = getOffset(e.target),\n left = _getOffset.left,\n top = _getOffset.top;\n if (groupContext) {\n groupContext.onPreview(imageId, src, left, top);\n } else {\n setMousePosition({\n x: left,\n y: top\n });\n setShowPreview(true);\n }\n onClick === null || onClick === void 0 || onClick(e);\n };\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: wrapperClass,\n onClick: canPreview ? onPreview : onClick,\n style: _objectSpread({\n width: width,\n height: height\n }, wrapperStyle)\n }), /*#__PURE__*/React.createElement(\"img\", _extends({}, imgCommonProps, {\n className: cn(\"\".concat(prefixCls, \"-img\"), _defineProperty({}, \"\".concat(prefixCls, \"-img-placeholder\"), placeholder === true), className),\n style: _objectSpread({\n height: height\n }, style),\n ref: getImgRef\n }, srcAndOnload, {\n width: width,\n height: height,\n onError: onError\n })), status === 'loading' && /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-placeholder\")\n }, placeholder), previewMask && canPreview && /*#__PURE__*/React.createElement(\"div\", {\n className: cn(\"\".concat(prefixCls, \"-mask\"), maskClassName),\n style: {\n display: (style === null || style === void 0 ? void 0 : style.display) === 'none' ? 'none' : undefined\n }\n }, previewMask)), !groupContext && canPreview && /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: src,\n alt: alt,\n imageInfo: {\n width: width,\n height: height\n },\n fallback: fallback,\n getContainer: getPreviewContainer,\n icons: icons,\n movable: movable,\n scaleStep: scaleStep,\n minScale: minScale,\n maxScale: maxScale,\n rootClassName: rootClassName,\n imageRender: imageRender,\n imgCommonProps: imgCommonProps,\n toolbarRender: toolbarRender\n }, dialogProps)));\n};\nImageInternal.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n ImageInternal.displayName = 'Image';\n}\nexport default ImageInternal;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { COMMON_PROPS } from \"../common\";\n/**\n * Merge props provided `items` or context collected images\n */\nexport default function usePreviewItems(items) {\n // Context collection image data\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n images = _React$useState2[0],\n setImages = _React$useState2[1];\n var registerImage = React.useCallback(function (id, data) {\n setImages(function (imgs) {\n return _objectSpread(_objectSpread({}, imgs), {}, _defineProperty({}, id, data));\n });\n return function () {\n setImages(function (imgs) {\n var cloneImgs = _objectSpread({}, imgs);\n delete cloneImgs[id];\n return cloneImgs;\n });\n };\n }, []);\n\n // items\n var mergedItems = React.useMemo(function () {\n // use `items` first\n if (items) {\n return items.map(function (item) {\n if (typeof item === 'string') {\n return {\n data: {\n src: item\n }\n };\n }\n var data = {};\n Object.keys(item).forEach(function (key) {\n if (['src'].concat(_toConsumableArray(COMMON_PROPS)).includes(key)) {\n data[key] = item[key];\n }\n });\n return {\n data: data\n };\n });\n }\n\n // use registered images secondly\n return Object.keys(images).reduce(function (total, id) {\n var _images$id = images[id],\n canPreview = _images$id.canPreview,\n data = _images$id.data;\n if (canPreview) {\n total.push({\n data: data,\n id: id\n });\n }\n return total;\n }, []);\n }, [items, images]);\n return [mergedItems, registerImage, !!items];\n}","import Image from \"./Image\";\nexport * from \"./Image\";\nexport default Image;","import { unit } from '@ant-design/cssinjs';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { genModalMaskStyle } from '../../modal/style';\nimport { textEllipsis } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const genBoxStyle = position => ({\n position: position || 'absolute',\n inset: 0\n});\nexport const genImageMaskStyle = token => {\n const {\n iconCls,\n motionDurationSlow,\n paddingXXS,\n marginXXS,\n prefixCls,\n colorTextLightSolid\n } = token;\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: colorTextLightSolid,\n background: new TinyColor('#000').setAlpha(0.5).toRgbString(),\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`,\n [`.${prefixCls}-mask-info`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${unit(paddingXXS)}`,\n [iconCls]: {\n marginInlineEnd: marginXXS,\n svg: {\n verticalAlign: 'baseline'\n }\n }\n })\n };\n};\nexport const genPreviewOperationsStyle = token => {\n const {\n previewCls,\n modalMaskBg,\n paddingSM,\n marginXL,\n margin,\n paddingLG,\n previewOperationColorDisabled,\n previewOperationHoverColor,\n motionDurationSlow,\n iconCls,\n colorTextLightSolid\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-footer`]: {\n position: 'fixed',\n bottom: marginXL,\n left: {\n _skip_check_: true,\n value: '50%'\n },\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n color: token.previewOperationColor,\n transform: 'translateX(-50%)'\n },\n [`${previewCls}-progress`]: {\n marginBottom: margin\n },\n [`${previewCls}-close`]: {\n position: 'fixed',\n top: marginXL,\n right: {\n _skip_check_: true,\n value: marginXL\n },\n display: 'flex',\n color: colorTextLightSolid,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: '50%',\n padding: paddingSM,\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n backgroundColor: operationBgHover.toRgbString()\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-operations`]: {\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${unit(paddingLG)}`,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: 100,\n '&-operation': {\n marginInlineStart: paddingSM,\n padding: paddingSM,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:not(${previewCls}-operations-operation-disabled):hover > ${iconCls}`]: {\n color: previewOperationHoverColor\n },\n '&-disabled': {\n color: previewOperationColorDisabled,\n cursor: 'not-allowed'\n },\n '&:first-of-type': {\n marginInlineStart: 0\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n }\n }\n };\n};\nexport const genPreviewSwitchStyle = token => {\n const {\n modalMaskBg,\n iconCls,\n previewOperationColorDisabled,\n previewCls,\n zIndexPopup,\n motionDurationSlow\n } = token;\n const operationBg = new TinyColor(modalMaskBg).setAlpha(0.1);\n const operationBgHover = operationBg.clone().setAlpha(0.2);\n return {\n [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n position: 'fixed',\n insetBlockStart: '50%',\n zIndex: token.calc(zIndexPopup).add(1).equal(),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: token.imagePreviewSwitchSize,\n height: token.imagePreviewSwitchSize,\n marginTop: token.calc(token.imagePreviewSwitchSize).mul(-1).div(2).equal(),\n color: token.previewOperationColor,\n background: operationBg.toRgbString(),\n borderRadius: '50%',\n transform: `translateY(-50%)`,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n '&-disabled': {\n '&, &:hover': {\n color: previewOperationColorDisabled,\n background: 'transparent',\n cursor: 'not-allowed',\n [`> ${iconCls}`]: {\n cursor: 'not-allowed'\n }\n }\n },\n [`> ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-switch-left`]: {\n insetInlineStart: token.marginSM\n },\n [`${previewCls}-switch-right`]: {\n insetInlineEnd: token.marginSM\n }\n };\n};\nexport const genImagePreviewStyle = token => {\n const {\n motionEaseOut,\n previewCls,\n motionDurationSlow,\n componentCls\n } = token;\n return [{\n [`${componentCls}-preview-root`]: {\n [previewCls]: {\n height: '100%',\n textAlign: 'center',\n pointerEvents: 'none'\n },\n [`${previewCls}-body`]: Object.assign(Object.assign({}, genBoxStyle()), {\n overflow: 'hidden'\n }),\n [`${previewCls}-img`]: {\n maxWidth: '100%',\n maxHeight: '70%',\n verticalAlign: 'middle',\n transform: 'scale3d(1, 1, 1)',\n cursor: 'grab',\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n userSelect: 'none',\n '&-wrapper': Object.assign(Object.assign({}, genBoxStyle()), {\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n // https://github.com/ant-design/ant-design/issues/39913\n // TailwindCSS will reset img default style.\n // Let's set back.\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& > *': {\n pointerEvents: 'auto'\n },\n '&::before': {\n display: 'inline-block',\n width: 1,\n height: '50%',\n marginInlineEnd: -1,\n content: '\"\"'\n }\n })\n },\n [`${previewCls}-moving`]: {\n [`${previewCls}-preview-img`]: {\n cursor: 'grabbing',\n '&-wrapper': {\n transitionDuration: '0s'\n }\n }\n }\n }\n },\n // Override\n {\n [`${componentCls}-preview-root`]: {\n [`${previewCls}-wrap`]: {\n zIndex: token.zIndexPopup\n }\n }\n },\n // Preview operations & switch\n {\n [`${componentCls}-preview-operations-wrapper`]: {\n position: 'fixed',\n zIndex: token.calc(token.zIndexPopup).add(1).equal()\n },\n '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)]\n }];\n};\nconst genImageStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ============================== image ==============================\n [componentCls]: {\n position: 'relative',\n display: 'inline-block',\n [`${componentCls}-img`]: {\n width: '100%',\n height: 'auto',\n verticalAlign: 'middle'\n },\n [`${componentCls}-img-placeholder`]: {\n backgroundColor: token.colorBgContainerDisabled,\n backgroundImage: \"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n backgroundSize: '30%'\n },\n [`${componentCls}-mask`]: Object.assign({}, genImageMaskStyle(token)),\n [`${componentCls}-mask:hover`]: {\n opacity: 1\n },\n [`${componentCls}-placeholder`]: Object.assign({}, genBoxStyle())\n }\n };\n};\nconst genPreviewMotion = token => {\n const {\n previewCls\n } = token;\n return {\n [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n '&': initFadeMotion(token, true)\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n zIndexPopup: token.zIndexPopupBase + 80,\n previewOperationColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.65).toRgbString(),\n previewOperationHoverColor: new TinyColor(token.colorTextLightSolid).setAlpha(0.85).toRgbString(),\n previewOperationColorDisabled: new TinyColor(token.colorTextLightSolid).setAlpha(0.25).toRgbString(),\n previewOperationSize: token.fontSizeIcon * 1.5 // FIXME: fontSizeIconLG\n});\nexport default genStyleHooks('Image', token => {\n const previewCls = `${token.componentCls}-preview`;\n const imageToken = mergeToken(token, {\n previewCls,\n modalMaskBg: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n // FIXME: Shared Token\n imagePreviewSwitchSize: token.controlHeightLG\n });\n return [genImageStyle(imageToken), genImagePreviewStyle(imageToken), genModalMaskStyle(mergeToken(imageToken, {\n componentCls: previewCls\n })), genPreviewMotion(imageToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport RotateLeftOutlined from \"@ant-design/icons/es/icons/RotateLeftOutlined\";\nimport RotateRightOutlined from \"@ant-design/icons/es/icons/RotateRightOutlined\";\nimport SwapOutlined from \"@ant-design/icons/es/icons/SwapOutlined\";\nimport ZoomInOutlined from \"@ant-design/icons/es/icons/ZoomInOutlined\";\nimport ZoomOutOutlined from \"@ant-design/icons/es/icons/ZoomOutOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nexport const icons = {\n rotateLeft: /*#__PURE__*/React.createElement(RotateLeftOutlined, null),\n rotateRight: /*#__PURE__*/React.createElement(RotateRightOutlined, null),\n zoomIn: /*#__PURE__*/React.createElement(ZoomInOutlined, null),\n zoomOut: /*#__PURE__*/React.createElement(ZoomOutOutlined, null),\n close: /*#__PURE__*/React.createElement(CloseOutlined, null),\n left: /*#__PURE__*/React.createElement(LeftOutlined, null),\n right: /*#__PURE__*/React.createElement(RightOutlined, null),\n flipX: /*#__PURE__*/React.createElement(SwapOutlined, null),\n flipY: /*#__PURE__*/React.createElement(SwapOutlined, {\n rotate: 90\n })\n};\nconst InternalPreviewGroup = _a => {\n var {\n previewPrefixCls: customizePrefixCls,\n preview\n } = _a,\n otherProps = __rest(_a, [\"previewPrefixCls\", \"preview\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const previewPrefixCls = `${prefixCls}-preview`;\n const rootPrefixCls = getPrefixCls();\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const [zIndex] = useZIndex('ImagePreview', typeof preview === 'object' ? preview.zIndex : undefined);\n const mergedPreview = React.useMemo(() => {\n var _a;\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const mergedRootClassName = classNames(hashId, cssVarCls, rootCls, (_a = _preview.rootClassName) !== null && _a !== void 0 ? _a : '');\n return Object.assign(Object.assign({}, _preview), {\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n rootClassName: mergedRootClassName,\n zIndex\n });\n }, [preview]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcImage.PreviewGroup, Object.assign({\n preview: mergedPreview,\n previewPrefixCls: previewPrefixCls,\n icons: icons\n }, otherProps)));\n};\nexport default InternalPreviewGroup;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport defaultLocale from '../locale/en_US';\nimport PreviewGroup, { icons } from './PreviewGroup';\nimport useStyle from './style';\nconst Image = props => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n preview,\n className,\n rootClassName,\n style\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"preview\", \"className\", \"rootClassName\", \"style\"]);\n const {\n getPrefixCls,\n locale: contextLocale = defaultLocale,\n getPopupContainer: getContextPopupContainer,\n image\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const imageLocale = contextLocale.Image || defaultLocale.Image;\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const mergedRootClassName = classNames(rootClassName, hashId, cssVarCls, rootCls);\n const mergedClassName = classNames(className, hashId, image === null || image === void 0 ? void 0 : image.className);\n const [zIndex] = useZIndex('ImagePreview', typeof preview === 'object' ? preview.zIndex : undefined);\n const mergedPreview = React.useMemo(() => {\n var _a;\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const {\n getContainer,\n closeIcon\n } = _preview,\n restPreviewProps = __rest(_preview, [\"getContainer\", \"closeIcon\"]);\n return Object.assign(Object.assign({\n mask: (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask-info`\n }, /*#__PURE__*/React.createElement(EyeOutlined, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview)),\n icons\n }, restPreviewProps), {\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : getContextPopupContainer,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n zIndex,\n closeIcon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : (_a = image === null || image === void 0 ? void 0 : image.preview) === null || _a === void 0 ? void 0 : _a.closeIcon\n });\n }, [preview, imageLocale, (_a = image === null || image === void 0 ? void 0 : image.preview) === null || _a === void 0 ? void 0 : _a.closeIcon]);\n const mergedStyle = Object.assign(Object.assign({}, image === null || image === void 0 ? void 0 : image.style), style);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcImage, Object.assign({\n prefixCls: prefixCls,\n preview: mergedPreview,\n rootClassName: mergedRootClassName,\n className: mergedClassName,\n style: mergedStyle\n }, otherProps)));\n};\nImage.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n Image.displayName = 'Image';\n}\nexport default Image;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","import { makeDsn, logger, uuid4, checkOrSetAlreadyCaught, isParameterizedString, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, dropUndefinedKeys, rejectedSyncPromise, SentryError, createClientReportEnvelope, dsnToString, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n this.eventFromException(exception, hintWithEventId).then(event =>\n this._captureEvent(event, hintWithEventId, scope),\n ),\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n this.emit('flush');\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n });\n }\n\n /** Get all installed event processors. */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /** @inheritdoc */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * @inheritDoc\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n const promise = this.sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, eventOrCount) {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n on(hook, callback) {\n const hooks = (this._hooks[hook] = this._hooks[hook] || []);\n\n // @ts-expect-error We assue the types are correct\n hooks.push(callback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n // @ts-expect-error We assue the types are correct\n const cbIndex = hooks.indexOf(callback);\n if (cbIndex > -1) {\n hooks.splice(cbIndex, 1);\n }\n };\n }\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * @inheritdoc\n */\n sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending event:', reason);\n return reason;\n });\n }\n\n DEBUG_BUILD && logger.error('Transport disabled');\n\n return resolvedSyncPromise({});\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope = getIsolationScope(),\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(currentScope ? currentScope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: dropUndefinedKeys({\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n }),\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && Math.random() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, currentScope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = currentScope && currentScope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && logger.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event)) {\n if (event.spans && beforeSendSpan) {\n const processedSpans = [];\n for (const span of event.spans) {\n const processedSpan = beforeSendSpan(span);\n if (processedSpan) {\n processedSpans.push(processedSpan);\n } else {\n client.recordDroppedEvent('before_send', 'span');\n }\n }\n event.spans = processedSpans;\n }\n\n if (beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { useEffect, useState } from 'react';\nimport { off, on } from './misc/util';\n// kudos: https://usehooks.com/\nvar useHoverDirty = function (ref, enabled) {\n if (enabled === void 0) { enabled = true; }\n if (process.env.NODE_ENV === 'development') {\n if (typeof ref !== 'object' || typeof ref.current === 'undefined') {\n console.error('useHoverDirty expects a single ref argument.');\n }\n }\n var _a = useState(false), value = _a[0], setValue = _a[1];\n useEffect(function () {\n var onMouseOver = function () { return setValue(true); };\n var onMouseOut = function () { return setValue(false); };\n if (enabled && ref && ref.current) {\n on(ref.current, 'mouseover', onMouseOver);\n on(ref.current, 'mouseout', onMouseOut);\n }\n // fixes react-hooks/exhaustive-deps warning about stale ref elements\n var current = ref.current;\n return function () {\n if (enabled && current) {\n off(current, 'mouseover', onMouseOver);\n off(current, 'mouseout', onMouseOut);\n }\n };\n }, [enabled, ref]);\n return value;\n};\nexport default useHoverDirty;\n","function _mergeNamespaces(n, m) {\n m.forEach(function (e) {\n e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {\n if (k !== 'default' && !(k in n)) {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n });\n return Object.freeze(n);\n}\n\nvar k = Object.defineProperty;\nvar n = (s, o, c) => o in s ? k(s, o, {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: c\n}) : s[o] = c;\nvar l = (s, o, c) => n(s, typeof o != \"symbol\" ? o + \"\" : o, c);\nclass h {\n constructor() {\n l(this, \"_locking\");\n l(this, \"_locks\");\n this._locking = Promise.resolve(), this._locks = 0;\n }\n isLocked() {\n return this._locks > 0;\n }\n lock() {\n this._locks += 1;\n let o;\n const c = new Promise(i => o = () => {\n this._locks -= 1, i();\n }),\n t = this._locking.then(() => o);\n return this._locking = this._locking.then(() => c), t;\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Assert that condition is truthy or throw error (with message)\n */\nfunction assert(condition, msg) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n if (!condition) {\n throw new Error(msg);\n }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38,\n FLOAT32_MIN = -3.4028234663852886e38,\n UINT32_MAX = 0xffffffff,\n INT32_MAX = 0x7fffffff,\n INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nfunction assertInt32(arg) {\n if (typeof arg !== \"number\") throw new Error(\"invalid int 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN) throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nfunction assertUInt32(arg) {\n if (typeof arg !== \"number\") throw new Error(\"invalid uint 32: \" + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0) throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nfunction assertFloat32(arg) {\n if (typeof arg !== \"number\") throw new Error(\"invalid float 32: \" + typeof arg);\n if (!Number.isFinite(arg)) return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN) throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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.\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nfunction getEnumType(enumObject) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n const t = enumObject[enumTypeSymbol];\n assert(t, \"missing enum type on enum object\");\n return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nfunction setEnumType(enumObject, typeName, values, opt) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map(v => ({\n no: v.no,\n name: v.name,\n localName: enumObject[v.no]\n })));\n}\n/**\n * Create a new EnumType with the given values.\n */\nfunction makeEnumType(typeName, values,\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n const names = Object.create(null);\n const numbers = Object.create(null);\n const normalValues = [];\n for (const value of values) {\n // We do not surface options at this time\n // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n const n = normalizeEnumValue(value);\n normalValues.push(n);\n names[value.name] = n;\n numbers[value.no] = n;\n }\n return {\n typeName,\n values: normalValues,\n // We do not surface options at this time\n // options: opt?.options ?? Object.create(null),\n findName(name) {\n return names[name];\n },\n findNumber(no) {\n return numbers[no];\n }\n };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nfunction makeEnum(typeName, values, opt) {\n const enumObject = {};\n for (const value of values) {\n const n = normalizeEnumValue(value);\n enumObject[n.localName] = n.no;\n enumObject[n.no] = n.localName;\n }\n setEnumType(enumObject, typeName, values);\n return enumObject;\n}\nfunction normalizeEnumValue(value) {\n if (\"localName\" in value) {\n return value;\n }\n return Object.assign(Object.assign({}, value), {\n localName: value.name\n });\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nclass Message {\n /**\n * Compare with a message of the same type.\n * Note that this function disregards extensions and unknown fields.\n */\n equals(other) {\n return this.getType().runtime.util.equals(this.getType(), this, other);\n }\n /**\n * Create a deep copy.\n */\n clone() {\n return this.getType().runtime.util.clone(this);\n }\n /**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n fromBinary(bytes, options) {\n const type = this.getType(),\n format = type.runtime.bin,\n opt = format.makeReadOptions(options);\n format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n return this;\n }\n /**\n * Parse a message from a JSON value.\n */\n fromJson(jsonValue, options) {\n const type = this.getType(),\n format = type.runtime.json,\n opt = format.makeReadOptions(options);\n format.readMessage(type, jsonValue, opt, this);\n return this;\n }\n /**\n * Parse a message from a JSON string.\n */\n fromJsonString(jsonString, options) {\n let json;\n try {\n json = JSON.parse(jsonString);\n } catch (e) {\n throw new Error(\"cannot decode \".concat(this.getType().typeName, \" from JSON: \").concat(e instanceof Error ? e.message : String(e)));\n }\n return this.fromJson(json, options);\n }\n /**\n * Serialize the message to binary data.\n */\n toBinary(options) {\n const type = this.getType(),\n bin = type.runtime.bin,\n opt = bin.makeWriteOptions(options),\n writer = opt.writerFactory();\n bin.writeMessage(this, writer, opt);\n return writer.finish();\n }\n /**\n * Serialize the message to a JSON value, a JavaScript value that can be\n * passed to JSON.stringify().\n */\n toJson(options) {\n const type = this.getType(),\n json = type.runtime.json,\n opt = json.makeWriteOptions(options);\n return json.writeMessage(this, opt);\n }\n /**\n * Serialize the message to a JSON string.\n */\n toJsonString(options) {\n var _a;\n const value = this.toJson(options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Override for serialization behavior. This will be invoked when calling\n * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n *\n * Note that this will not serialize google.protobuf.Any with a packed\n * message because the protobuf JSON format specifies that it needs to be\n * unpacked, and this is only possible with a type registry to look up the\n * message type. As a result, attempting to serialize a message with this\n * type will throw an Error.\n *\n * This method is protected because you should not need to invoke it\n * directly -- instead use JSON.stringify or toJsonString for\n * stringified JSON. Alternatively, if actual JSON is desired, you should\n * use toJson.\n */\n toJSON() {\n return this.toJson({\n emitDefaultValues: true\n });\n }\n /**\n * Retrieve the MessageType of this message - a singleton that represents\n * the protobuf message declaration and provides metadata for reflection-\n * based operations.\n */\n getType() {\n // Any class that extends Message _must_ provide a complete static\n // implementation of MessageType.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n return Object.getPrototypeOf(this).constructor;\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Create a new message type using the given runtime.\n */\nfunction makeMessageType(runtime, typeName, fields, opt) {\n var _a;\n const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n const type = {\n [localName]: function (data) {\n runtime.util.initFields(this);\n runtime.util.initPartial(data, this);\n }\n }[localName];\n Object.setPrototypeOf(type.prototype, new Message());\n Object.assign(type, {\n runtime,\n typeName,\n fields: runtime.util.newFieldList(fields),\n fromBinary(bytes, options) {\n return new type().fromBinary(bytes, options);\n },\n fromJson(jsonValue, options) {\n return new type().fromJson(jsonValue, options);\n },\n fromJsonString(jsonString, options) {\n return new type().fromJsonString(jsonString, options);\n },\n equals(a, b) {\n return runtime.util.equals(type, a, b);\n }\n });\n return type;\n}\n\n// Copyright 2008 Google Inc. 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\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. 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\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = lo >>> 28 & 0x0f | (hi & 0x07) << 4;\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push(hi >>> 31 & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + (lowBits / TWO_PWR_32_DBL | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n ({\n lo,\n hi\n } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1FFFFF) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xFFFFFF;\n const mid = (lo >>> 24 | hi << 8) & 0xFFFFFF;\n const high = hi >> 16 & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) + decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n return {\n lo: lo >>> 0,\n hi: hi >>> 0\n };\n}\nfunction newBits(lo, hi) {\n return {\n lo: lo | 0,\n hi: hi | 0\n };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n } else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = digit1e7 => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push(value & 0x7f | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n } else {\n for (let i = 0; i < 9; i++) {\n bytes.push(value & 127 | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++) b = this.buf[this.pos++];\n if ((b & 0x80) != 0) throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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.\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" && typeof dv.getBigInt64 === \"function\" && typeof dv.getBigUint64 === \"function\" && typeof dv.setBigInt64 === \"function\" && typeof dv.setBigUint64 === \"function\" && (typeof process != \"object\" || typeof process.env != \"object\" || process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"),\n MAX = BigInt(\"9223372036854775807\"),\n UMIN = BigInt(\"0\"),\n UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(\"int64 invalid: \".concat(value));\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(\"uint64 invalid: \".concat(value));\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true)\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true)\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n }\n };\n }\n const assertInt64String = value => assert(/^-?[0-9]+$/.test(value), \"int64 invalid: \".concat(value));\n const assertUInt64String = value => assert(/^[0-9]+$/.test(value), \"uint64 invalid: \".concat(value));\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n }\n };\n}\nconst protoInt64 = makeInt64Support();\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nvar ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nvar LongType;\n(function (LongType) {\n /**\n * Use JavaScript BigInt.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript String.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Returns true if both scalar values are equal.\n */\nfunction scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nfunction scalarZeroValue(type, longType) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n return longType == 0 ? protoInt64.zero : \"0\";\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nfunction isScalarZeroValue(type, value) {\n switch (type) {\n case ScalarType.BOOL:\n return value === false;\n case ScalarType.STRING:\n return value === \"\";\n case ScalarType.BYTES:\n return value instanceof Uint8Array && !value.byteLength;\n default:\n return value == 0;\n // Loose comparison matches 0n, 0 and \"0\"\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nvar WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nclass BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++) len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({\n chunks: this.chunks,\n buf: this.buf\n });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev) throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32((fieldNo << 3 | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push(value & 0x7f | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = (value << 1 ^ value >> 31) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8),\n view = new DataView(chunk.buffer),\n tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8),\n view = new DataView(chunk.buffer),\n tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value),\n // zigzag encode\n sign = tc.hi >> 31,\n lo = tc.lo << 1 ^ sign,\n hi = (tc.hi << 1 | tc.lo >>> 31) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nclass BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(),\n fieldNo = tag >>> 3,\n wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5) throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line\n // @ts-ignore TS7029: Fallthrough case in switch\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len) throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return zze >>> 1 ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = (lo >>> 1 | (hi & 1) << 31) ^ s;\n hi = hi >>> 1 ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(),\n start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Create a new extension using the given runtime.\n */\nfunction makeExtension(runtime, typeName, extendee, field) {\n let fi;\n return {\n typeName,\n extendee,\n get field() {\n if (!fi) {\n const i = typeof field == \"function\" ? field() : field;\n i.name = typeName.split(\".\").pop();\n i.jsonName = \"[\".concat(typeName, \"]\");\n fi = runtime.util.newFieldList([i]).list()[0];\n }\n return fi;\n },\n runtime\n };\n}\n/**\n * Create a container that allows us to read extension fields into it with the\n * same logic as regular fields.\n */\nfunction createExtensionContainer(extension) {\n const localName = extension.field.localName;\n const container = Object.create(null);\n container[localName] = initExtensionField(extension);\n return [container, () => container[localName]];\n}\nfunction initExtensionField(ext) {\n const field = ext.field;\n if (field.repeated) {\n return [];\n }\n if (field.default !== undefined) {\n return field.default;\n }\n switch (field.kind) {\n case \"enum\":\n return field.T.values[0].no;\n case \"scalar\":\n return scalarZeroValue(field.T, field.L);\n case \"message\":\n // eslint-disable-next-line no-case-declarations\n const T = field.T,\n value = new T();\n return T.fieldWrapper ? T.fieldWrapper.unwrapField(value) : value;\n case \"map\":\n throw \"map fields are not allowed to be extensions\";\n }\n}\n/**\n * Helper to filter unknown fields, optimized based on field type.\n */\nfunction filterUnknownFields(unknownFields, field) {\n if (!field.repeated && (field.kind == \"enum\" || field.kind == \"scalar\")) {\n // singular scalar fields do not merge, we pick the last\n for (let i = unknownFields.length - 1; i >= 0; --i) {\n if (unknownFields[i].no == field.no) {\n return [unknownFields[i]];\n }\n }\n return [];\n }\n return unknownFields.filter(uf => uf.no === field.no);\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++) decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nconst protoBase64 = {\n /**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\n dec(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = base64Str.length * 3 / 4;\n if (base64Str[base64Str.length - 2] == \"=\") es -= 2;else if (base64Str[base64Str.length - 1] == \"=\") es -= 1;\n let bytes = new Uint8Array(es),\n bytePos = 0,\n // position in byte array\n groupPos = 0,\n // position in base64 group\n b,\n // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"=\":\n groupPos = 0;\n // reset state when padding found\n // @ts-ignore TS7029: Fallthrough case in switch\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue;\n // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string.\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = p << 2 | (b & 48) >> 4;\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = (p & 3) << 6 | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1) throw Error(\"invalid base64 string.\");\n return bytes.subarray(0, bytePos);\n },\n /**\n * Encode a byte array to a base64 string.\n */\n enc(bytes) {\n let base64 = \"\",\n groupPos = 0,\n // position in base64 group\n b,\n // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | b >> 4];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | b >> 6];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += encTable[p];\n base64 += \"=\";\n if (groupPos == 1) base64 += \"=\";\n }\n return base64;\n }\n};\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Retrieve an extension value from a message.\n *\n * The function never returns undefined. Use hasExtension() to check whether an\n * extension is set. If the extension is not set, this function returns the\n * default value (if one was specified in the protobuf source), or the zero value\n * (for example `0` for numeric types, `[]` for repeated extension fields, and\n * an empty message instance for message fields).\n *\n * Extensions are stored as unknown fields on a message. To mutate an extension\n * value, make sure to store the new value with setExtension() after mutating.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nfunction getExtension(message, extension, options) {\n assertExtendee(extension, message);\n const opt = extension.runtime.bin.makeReadOptions(options);\n const ufs = filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message), extension.field);\n const [container, get] = createExtensionContainer(extension);\n for (const uf of ufs) {\n extension.runtime.bin.readField(container, opt.readerFactory(uf.data), extension.field, uf.wireType, opt);\n }\n return get();\n}\n/**\n * Set an extension value on a message. If the message already has a value for\n * this extension, the value is replaced.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nfunction setExtension(message, extension, value, options) {\n assertExtendee(extension, message);\n const readOpt = extension.runtime.bin.makeReadOptions(options);\n const writeOpt = extension.runtime.bin.makeWriteOptions(options);\n if (hasExtension(message, extension)) {\n const ufs = message.getType().runtime.bin.listUnknownFields(message).filter(uf => uf.no != extension.field.no);\n message.getType().runtime.bin.discardUnknownFields(message);\n for (const uf of ufs) {\n message.getType().runtime.bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n }\n }\n const writer = writeOpt.writerFactory();\n let f = extension.field;\n // Implicit presence does not apply to extensions, see https://github.com/protocolbuffers/protobuf/issues/8234\n // We patch the field info to use explicit presence:\n if (!f.opt && !f.repeated && (f.kind == \"enum\" || f.kind == \"scalar\")) {\n f = Object.assign(Object.assign({}, extension.field), {\n opt: true\n });\n }\n extension.runtime.bin.writeField(f, value, writer, writeOpt);\n const reader = readOpt.readerFactory(writer.finish());\n while (reader.pos < reader.len) {\n const [no, wireType] = reader.tag();\n const data = reader.skip(wireType, no);\n message.getType().runtime.bin.onUnknownField(message, no, wireType, data);\n }\n}\n/**\n * Check whether an extension is set on a message.\n */\nfunction hasExtension(message, extension) {\n const messageType = message.getType();\n return extension.extendee.typeName === messageType.typeName && !!messageType.runtime.bin.listUnknownFields(message).find(uf => uf.no == extension.field.no);\n}\nfunction assertExtendee(extension, message) {\n assert(extension.extendee.typeName == message.getType().typeName, \"extension \".concat(extension.typeName, \" can only be applied to message \").concat(extension.extendee.typeName));\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Returns true if the field is set.\n */\nfunction isFieldSet(field, target) {\n const localName = field.localName;\n if (field.repeated) {\n return target[localName].length > 0;\n }\n if (field.oneof) {\n return target[field.oneof.localName].case === localName; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n }\n switch (field.kind) {\n case \"enum\":\n case \"scalar\":\n if (field.opt || field.req) {\n // explicit presence\n return target[localName] !== undefined;\n }\n // implicit presence\n if (field.kind == \"enum\") {\n return target[localName] !== field.T.values[0].no;\n }\n return !isScalarZeroValue(field.T, target[localName]);\n case \"message\":\n return target[localName] !== undefined;\n case \"map\":\n return Object.keys(target[localName]).length > 0;\n // eslint-disable-line @typescript-eslint/no-unsafe-argument\n }\n}\n/**\n * Resets the field, so that isFieldSet() will return false.\n */\nfunction clearField(field, target) {\n const localName = field.localName;\n const implicitPresence = !field.opt && !field.req;\n if (field.repeated) {\n target[localName] = [];\n } else if (field.oneof) {\n target[field.oneof.localName] = {\n case: undefined\n };\n } else {\n switch (field.kind) {\n case \"map\":\n target[localName] = {};\n break;\n case \"enum\":\n target[localName] = implicitPresence ? field.T.values[0].no : undefined;\n break;\n case \"scalar\":\n target[localName] = implicitPresence ? scalarZeroValue(field.T, field.L) : undefined;\n break;\n case \"message\":\n target[localName] = undefined;\n break;\n }\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Check whether the given object is any subtype of Message or is a specific\n * Message by passing the type.\n *\n * Just like `instanceof`, `isMessage` narrows the type. The advantage of\n * `isMessage` is that it compares identity by the message type name, not by\n * class identity. This makes it robust against the dual package hazard and\n * similar situations, where the same message is duplicated.\n *\n * This function is _mostly_ equivalent to the `instanceof` operator. For\n * example, `isMessage(foo, MyMessage)` is the same as `foo instanceof MyMessage`,\n * and `isMessage(foo)` is the same as `foo instanceof Message`. In most cases,\n * `isMessage` should be preferred over `instanceof`.\n *\n * However, due to the fact that `isMessage` does not use class identity, there\n * are subtle differences between this function and `instanceof`. Notably,\n * calling `isMessage` on an explicit type of Message will return false.\n */\nfunction isMessage(arg, type) {\n if (arg === null || typeof arg != \"object\") {\n return false;\n }\n if (!Object.getOwnPropertyNames(Message.prototype).every(m => m in arg && typeof arg[m] == \"function\")) {\n return false;\n }\n const actualType = arg.getType();\n if (actualType === null || typeof actualType != \"function\" || !(\"typeName\" in actualType) || typeof actualType.typeName != \"string\") {\n return false;\n }\n return type === undefined ? true : actualType.typeName == type.typeName;\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nfunction wrapField(type, value) {\n if (isMessage(value) || !type.fieldWrapper) {\n return value;\n }\n return type.fieldWrapper.wrapField(value);\n}\n({\n \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n \"google.protobuf.Int64Value\": ScalarType.INT64,\n \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n \"google.protobuf.Int32Value\": ScalarType.INT32,\n \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n \"google.protobuf.BoolValue\": ScalarType.BOOL,\n \"google.protobuf.StringValue\": ScalarType.STRING,\n \"google.protobuf.BytesValue\": ScalarType.BYTES\n});\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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/* eslint-disable no-case-declarations,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n ignoreUnknownFields: false\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0\n};\nfunction makeReadOptions$1(options) {\n return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions$1(options) {\n return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nconst tokenNull = Symbol();\nconst tokenIgnoredUnknownEnum = Symbol();\nfunction makeJsonFormat() {\n return {\n makeReadOptions: makeReadOptions$1,\n makeWriteOptions: makeWriteOptions$1,\n readMessage(type, json, options, message) {\n if (json == null || Array.isArray(json) || typeof json != \"object\") {\n throw new Error(\"cannot decode message \".concat(type.typeName, \" from JSON: \").concat(debugJsonValue(json)));\n }\n message = message !== null && message !== void 0 ? message : new type();\n const oneofSeen = new Map();\n const registry = options.typeRegistry;\n for (const [jsonKey, jsonValue] of Object.entries(json)) {\n const field = type.fields.findJsonName(jsonKey);\n if (field) {\n if (field.oneof) {\n if (jsonValue === null && field.kind == \"scalar\") {\n // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n continue;\n }\n const seen = oneofSeen.get(field.oneof);\n if (seen !== undefined) {\n throw new Error(\"cannot decode message \".concat(type.typeName, \" from JSON: multiple keys for oneof \\\"\").concat(field.oneof.name, \"\\\" present: \\\"\").concat(seen, \"\\\", \\\"\").concat(jsonKey, \"\\\"\"));\n }\n oneofSeen.set(field.oneof, jsonKey);\n }\n readField$1(message, jsonValue, field, options, type);\n } else {\n let found = false;\n if ((registry === null || registry === void 0 ? void 0 : registry.findExtension) && jsonKey.startsWith(\"[\") && jsonKey.endsWith(\"]\")) {\n const ext = registry.findExtension(jsonKey.substring(1, jsonKey.length - 1));\n if (ext && ext.extendee.typeName == type.typeName) {\n found = true;\n const [container, get] = createExtensionContainer(ext);\n readField$1(container, jsonValue, ext.field, options, ext);\n // We pass on the options as BinaryReadOptions/BinaryWriteOptions,\n // so that users can bring their own binary reader and writer factories\n // if necessary.\n setExtension(message, ext, get(), options);\n }\n }\n if (!found && !options.ignoreUnknownFields) {\n throw new Error(\"cannot decode message \".concat(type.typeName, \" from JSON: key \\\"\").concat(jsonKey, \"\\\" is unknown\"));\n }\n }\n }\n return message;\n },\n writeMessage(message, options) {\n const type = message.getType();\n const json = {};\n let field;\n try {\n for (field of type.fields.byNumber()) {\n if (!isFieldSet(field, message)) {\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.req) {\n throw \"required field not set\";\n }\n if (!options.emitDefaultValues) {\n continue;\n }\n if (!canEmitFieldDefaultValue(field)) {\n continue;\n }\n }\n const value = field.oneof ? message[field.oneof.localName].value : message[field.localName];\n const jsonValue = writeField$1(field, value, options);\n if (jsonValue !== undefined) {\n json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n }\n }\n const registry = options.typeRegistry;\n if (registry === null || registry === void 0 ? void 0 : registry.findExtensionFor) {\n for (const uf of type.runtime.bin.listUnknownFields(message)) {\n const ext = registry.findExtensionFor(type.typeName, uf.no);\n if (ext && hasExtension(message, ext)) {\n // We pass on the options as BinaryReadOptions, so that users can bring their own\n // binary reader factory if necessary.\n const value = getExtension(message, ext, options);\n const jsonValue = writeField$1(ext.field, value, options);\n if (jsonValue !== undefined) {\n json[ext.field.jsonName] = jsonValue;\n }\n }\n }\n }\n } catch (e) {\n const m = field ? \"cannot encode field \".concat(type.typeName, \".\").concat(field.name, \" to JSON\") : \"cannot encode message \".concat(type.typeName, \" to JSON\");\n const r = e instanceof Error ? e.message : String(e);\n throw new Error(m + (r.length > 0 ? \": \".concat(r) : \"\"));\n }\n return json;\n },\n readScalar(type, json, longType) {\n // The signature of our internal function has changed. For backwards-\n // compatibility, we support the old form that is part of the public API\n // through the interface JsonFormat.\n return readScalar$1(type, json, longType !== null && longType !== void 0 ? longType : LongType.BIGINT, true);\n },\n writeScalar(type, value, emitDefaultValues) {\n // The signature of our internal function has changed. For backwards-\n // compatibility, we support the old form that is part of the public API\n // through the interface JsonFormat.\n if (value === undefined) {\n return undefined;\n }\n if (emitDefaultValues || isScalarZeroValue(type, value)) {\n return writeScalar$1(type, value);\n }\n return undefined;\n },\n debug: debugJsonValue\n };\n}\nfunction debugJsonValue(json) {\n if (json === null) {\n return \"null\";\n }\n switch (typeof json) {\n case \"object\":\n return Array.isArray(json) ? \"array\" : \"object\";\n case \"string\":\n return json.length > 100 ? \"string\" : \"\\\"\".concat(json.split('\"').join('\\\\\"'), \"\\\"\");\n default:\n return String(json);\n }\n}\n// Read a JSON value for a field.\n// The \"parentType\" argument is only used to provide context in errors.\nfunction readField$1(target, jsonValue, field, options, parentType) {\n let localName = field.localName;\n if (field.repeated) {\n assert(field.kind != \"map\");\n if (jsonValue === null) {\n return;\n }\n if (!Array.isArray(jsonValue)) {\n throw new Error(\"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonValue)));\n }\n const targetArray = target[localName];\n for (const jsonItem of jsonValue) {\n if (jsonItem === null) {\n throw new Error(\"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonItem)));\n }\n switch (field.kind) {\n case \"message\":\n targetArray.push(field.T.fromJson(jsonItem, options));\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonItem, options.ignoreUnknownFields, true);\n if (enumValue !== tokenIgnoredUnknownEnum) {\n targetArray.push(enumValue);\n }\n break;\n case \"scalar\":\n try {\n targetArray.push(readScalar$1(field.T, jsonItem, field.L, true));\n } catch (e) {\n let m = \"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonItem));\n if (e instanceof Error && e.message.length > 0) {\n m += \": \".concat(e.message);\n }\n throw new Error(m);\n }\n break;\n }\n }\n } else if (field.kind == \"map\") {\n if (jsonValue === null) {\n return;\n }\n if (typeof jsonValue != \"object\" || Array.isArray(jsonValue)) {\n throw new Error(\"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonValue)));\n }\n const targetMap = target[localName];\n for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n if (jsonMapValue === null) {\n throw new Error(\"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: map value null\"));\n }\n let key;\n try {\n key = readMapKey(field.K, jsonMapKey);\n } catch (e) {\n let m = \"cannot decode map key for field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonValue));\n if (e instanceof Error && e.message.length > 0) {\n m += \": \".concat(e.message);\n }\n throw new Error(m);\n }\n switch (field.V.kind) {\n case \"message\":\n targetMap[key] = field.V.T.fromJson(jsonMapValue, options);\n break;\n case \"enum\":\n const enumValue = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields, true);\n if (enumValue !== tokenIgnoredUnknownEnum) {\n targetMap[key] = enumValue;\n }\n break;\n case \"scalar\":\n try {\n targetMap[key] = readScalar$1(field.V.T, jsonMapValue, LongType.BIGINT, true);\n } catch (e) {\n let m = \"cannot decode map value for field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonValue));\n if (e instanceof Error && e.message.length > 0) {\n m += \": \".concat(e.message);\n }\n throw new Error(m);\n }\n break;\n }\n }\n } else {\n if (field.oneof) {\n target = target[field.oneof.localName] = {\n case: localName\n };\n localName = \"value\";\n }\n switch (field.kind) {\n case \"message\":\n const messageType = field.T;\n if (jsonValue === null && messageType.typeName != \"google.protobuf.Value\") {\n return;\n }\n let currentValue = target[localName];\n if (isMessage(currentValue)) {\n currentValue.fromJson(jsonValue, options);\n } else {\n target[localName] = currentValue = messageType.fromJson(jsonValue, options);\n if (messageType.fieldWrapper && !field.oneof) {\n target[localName] = messageType.fieldWrapper.unwrapField(currentValue);\n }\n }\n break;\n case \"enum\":\n const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields, false);\n switch (enumValue) {\n case tokenNull:\n clearField(field, target);\n break;\n case tokenIgnoredUnknownEnum:\n break;\n default:\n target[localName] = enumValue;\n break;\n }\n break;\n case \"scalar\":\n try {\n const scalarValue = readScalar$1(field.T, jsonValue, field.L, false);\n switch (scalarValue) {\n case tokenNull:\n clearField(field, target);\n break;\n default:\n target[localName] = scalarValue;\n break;\n }\n } catch (e) {\n let m = \"cannot decode field \".concat(parentType.typeName, \".\").concat(field.name, \" from JSON: \").concat(debugJsonValue(jsonValue));\n if (e instanceof Error && e.message.length > 0) {\n m += \": \".concat(e.message);\n }\n throw new Error(m);\n }\n break;\n }\n }\n}\nfunction readMapKey(type, json) {\n if (type === ScalarType.BOOL) {\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (json) {\n case \"true\":\n json = true;\n break;\n case \"false\":\n json = false;\n break;\n }\n }\n return readScalar$1(type, json, LongType.BIGINT, true).toString();\n}\nfunction readScalar$1(type, json, longType, nullAsZeroValue) {\n if (json === null) {\n if (nullAsZeroValue) {\n return scalarZeroValue(type, longType);\n }\n return tokenNull;\n }\n // every valid case in the switch below returns, and every fall\n // through is regarded as a failure.\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === \"NaN\") return Number.NaN;\n if (json === \"Infinity\") return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\") return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n // empty string is not a number\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n // extra whitespace\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n const float = Number(json);\n if (Number.isNaN(float)) {\n // not a number\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n break;\n }\n if (type == ScalarType.FLOAT) assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n let int32;\n if (typeof json == \"number\") int32 = json;else if (typeof json == \"string\" && json.length > 0) {\n if (json.trim().length === json.length) int32 = Number(json);\n }\n if (int32 === undefined) break;\n if (type == ScalarType.UINT32 || type == ScalarType.FIXED32) assertUInt32(int32);else assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (typeof json != \"number\" && typeof json != \"string\") break;\n const long = protoInt64.parse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? long.toString() : long;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (typeof json != \"number\" && typeof json != \"string\") break;\n const uLong = protoInt64.uParse(json);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n return longType ? uLong.toString() : uLong;\n // bool:\n case ScalarType.BOOL:\n if (typeof json !== \"boolean\") break;\n return json;\n // string:\n case ScalarType.STRING:\n if (typeof json !== \"string\") {\n break;\n }\n // A string must always contain UTF-8 encoded or 7-bit ASCII.\n // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n try {\n encodeURIComponent(json);\n } catch (e) {\n throw new Error(\"invalid UTF8\");\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === \"\") return new Uint8Array(0);\n if (typeof json !== \"string\") break;\n return protoBase64.dec(json);\n }\n throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields, nullAsZeroValue) {\n if (json === null) {\n if (type.typeName == \"google.protobuf.NullValue\") {\n return 0; // google.protobuf.NullValue.NULL_VALUE = 0\n }\n return nullAsZeroValue ? type.values[0].no : tokenNull;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (typeof json) {\n case \"number\":\n if (Number.isInteger(json)) {\n return json;\n }\n break;\n case \"string\":\n const value = type.findName(json);\n if (value !== undefined) {\n return value.no;\n }\n if (ignoreUnknownFields) {\n return tokenIgnoredUnknownEnum;\n }\n break;\n }\n throw new Error(\"cannot decode enum \".concat(type.typeName, \" from JSON: \").concat(debugJsonValue(json)));\n}\n// Decide whether an unset field should be emitted with JSON write option `emitDefaultValues`\nfunction canEmitFieldDefaultValue(field) {\n if (field.repeated || field.kind == \"map\") {\n // maps are {}, repeated fields are []\n return true;\n }\n if (field.oneof) {\n // oneof fields are never emitted\n return false;\n }\n if (field.kind == \"message\") {\n // singular message field are allowed to emit JSON null, but we do not\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.opt || field.req) {\n // the field uses explicit presence, so we cannot emit a zero value\n return false;\n }\n return true;\n}\nfunction writeField$1(field, value, options) {\n if (field.kind == \"map\") {\n assert(typeof value == \"object\" && value != null);\n const jsonObj = {};\n const entries = Object.entries(value);\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of entries) {\n jsonObj[entryKey.toString()] = writeScalar$1(field.V.T, entryValue); // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n for (const [entryKey, entryValue] of entries) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = entryValue.toJson(options);\n }\n break;\n case \"enum\":\n const enumType = field.V.T;\n for (const [entryKey, entryValue] of entries) {\n // JSON standard allows only (double quoted) string as property key\n jsonObj[entryKey.toString()] = writeEnum(enumType, entryValue, options.enumAsInteger);\n }\n break;\n }\n return options.emitDefaultValues || entries.length > 0 ? jsonObj : undefined;\n }\n if (field.repeated) {\n assert(Array.isArray(value));\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeScalar$1(field.T, value[i]));\n }\n break;\n case \"enum\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(writeEnum(field.T, value[i], options.enumAsInteger));\n }\n break;\n case \"message\":\n for (let i = 0; i < value.length; i++) {\n jsonArr.push(value[i].toJson(options));\n }\n break;\n }\n return options.emitDefaultValues || jsonArr.length > 0 ? jsonArr : undefined;\n }\n switch (field.kind) {\n case \"scalar\":\n return writeScalar$1(field.T, value);\n case \"enum\":\n return writeEnum(field.T, value, options.enumAsInteger);\n case \"message\":\n return wrapField(field.T, value).toJson(options);\n }\n}\nfunction writeEnum(type, value, enumAsInteger) {\n var _a;\n assert(typeof value == \"number\");\n if (type.typeName == \"google.protobuf.NullValue\") {\n return null;\n }\n if (enumAsInteger) {\n return value;\n }\n const val = type.findNumber(value);\n return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar$1(type, value) {\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n assert(typeof value == \"number\");\n return value;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n // assertFloat32(value);\n case ScalarType.DOUBLE:\n // eslint-disable-line no-fallthrough\n assert(typeof value == \"number\");\n if (Number.isNaN(value)) return \"NaN\";\n if (value === Number.POSITIVE_INFINITY) return \"Infinity\";\n if (value === Number.NEGATIVE_INFINITY) return \"-Infinity\";\n return value;\n // string:\n case ScalarType.STRING:\n assert(typeof value == \"string\");\n return value;\n // bool:\n case ScalarType.BOOL:\n assert(typeof value == \"boolean\");\n return value;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == \"bigint\" || typeof value == \"string\" || typeof value == \"number\");\n return value.toString();\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n return protoBase64.enc(value);\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-return */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n readerFactory: bytes => new BinaryReader(bytes)\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter()\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nfunction makeBinaryFormat() {\n return {\n makeReadOptions,\n makeWriteOptions,\n listUnknownFields(message) {\n var _a;\n return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n },\n discardUnknownFields(message) {\n delete message[unknownFieldsSymbol];\n },\n writeUnknownFields(message, writer) {\n const m = message;\n const c = m[unknownFieldsSymbol];\n if (c) {\n for (const f of c) {\n writer.tag(f.no, f.wireType).raw(f.data);\n }\n }\n },\n onUnknownField(message, no, wireType, data) {\n const m = message;\n if (!Array.isArray(m[unknownFieldsSymbol])) {\n m[unknownFieldsSymbol] = [];\n }\n m[unknownFieldsSymbol].push({\n no,\n wireType,\n data\n });\n },\n readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n const type = message.getType();\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n const end = delimitedMessageEncoding ? reader.len : reader.pos + lengthOrEndTagFieldNo;\n let fieldNo, wireType;\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (delimitedMessageEncoding === true && wireType == WireType.EndGroup) {\n break;\n }\n const field = type.fields.find(fieldNo);\n if (!field) {\n const data = reader.skip(wireType, fieldNo);\n if (options.readUnknownFields) {\n this.onUnknownField(message, fieldNo, wireType, data);\n }\n continue;\n }\n readField(message, reader, field, wireType, options);\n }\n if (delimitedMessageEncoding && (\n // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n throw new Error(\"invalid end group tag\");\n }\n },\n readField,\n writeMessage(message, writer, options) {\n const type = message.getType();\n for (const field of type.fields.byNumber()) {\n if (!isFieldSet(field, message)) {\n if (field.req) {\n throw new Error(\"cannot encode field \".concat(type.typeName, \".\").concat(field.name, \" to binary: required field not set\"));\n }\n continue;\n }\n const value = field.oneof ? message[field.oneof.localName].value : message[field.localName];\n writeField(field, value, writer, options);\n }\n if (options.writeUnknownFields) {\n this.writeUnknownFields(message, writer);\n }\n return writer;\n },\n writeField(field, value, writer, options) {\n // The behavior of our internal function has changed, it does no longer\n // accept `undefined` values for singular scalar and map.\n // For backwards-compatibility, we support the old form that is part of\n // the public API through the interface BinaryFormat.\n if (value === undefined) {\n return undefined;\n }\n writeField(field, value, writer, options);\n }\n };\n}\nfunction readField(target,\n// eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nreader, field, wireType, options) {\n let {\n repeated,\n localName\n } = field;\n if (field.oneof) {\n target = target[field.oneof.localName];\n if (target.case != localName) {\n delete target.value;\n }\n target.case = localName;\n localName = \"value\";\n }\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let read = readScalar;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n if (field.kind == \"scalar\" && field.L > 0) {\n read = readScalarLTString;\n }\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n const isPacked = wireType == WireType.LengthDelimited && scalarType != ScalarType.STRING && scalarType != ScalarType.BYTES;\n if (isPacked) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n arr.push(read(reader, scalarType));\n }\n } else {\n arr.push(read(reader, scalarType));\n }\n } else {\n target[localName] = read(reader, scalarType);\n }\n break;\n case \"message\":\n const messageType = field.T;\n if (repeated) {\n // safe to assume presence of array, oneof cannot contain repeated values\n target[localName].push(readMessageField(reader, new messageType(), options, field));\n } else {\n if (isMessage(target[localName])) {\n readMessageField(reader, target[localName], options, field);\n } else {\n target[localName] = readMessageField(reader, new messageType(), options, field);\n if (messageType.fieldWrapper && !field.oneof && !field.repeated) {\n target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n }\n }\n }\n break;\n case \"map\":\n let [mapKey, mapVal] = readMapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n const format = message.getType().runtime.bin;\n const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n format.readMessage(message, reader, delimited ? field.no : reader.uint32(),\n // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n options, delimited);\n return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n const length = reader.uint32(),\n end = reader.pos + length;\n let key, val;\n while (reader.pos < end) {\n const [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.K);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = readScalar(reader, field.V.T);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, new field.V.T(), options, undefined);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n key = scalarZeroValue(field.K, LongType.BIGINT);\n }\n if (typeof key != \"string\" && typeof key != \"number\") {\n key = key.toString();\n }\n if (val === undefined) {\n switch (field.V.kind) {\n case \"scalar\":\n val = scalarZeroValue(field.V.T, LongType.BIGINT);\n break;\n case \"enum\":\n val = field.V.T.values[0].no;\n break;\n case \"message\":\n val = new field.V.T();\n break;\n }\n }\n return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nfunction readScalarLTString(reader, type) {\n const v = readScalar(reader, type);\n return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\nfunction writeField(field, value, writer, options) {\n assert(value !== undefined);\n const repeated = field.repeated;\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n assert(Array.isArray(value));\n if (field.packed) {\n writePacked(writer, scalarType, field.no, value);\n } else {\n for (const item of value) {\n writeScalar(writer, scalarType, field.no, item);\n }\n }\n } else {\n writeScalar(writer, scalarType, field.no, value);\n }\n break;\n case \"message\":\n if (repeated) {\n assert(Array.isArray(value));\n for (const item of value) {\n writeMessageField(writer, options, field, item);\n }\n } else {\n writeMessageField(writer, options, field, value);\n }\n break;\n case \"map\":\n assert(typeof value == \"object\" && value != null);\n for (const [key, val] of Object.entries(value)) {\n writeMapEntry(writer, options, field, key, val);\n }\n break;\n }\n}\nfunction writeMapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == \"true\" || key == \"false\");\n keyValue = key == \"true\";\n break;\n }\n // write key, expecting key field number = 1\n writeScalar(writer, field.K, 1, keyValue);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case \"scalar\":\n writeScalar(writer, field.V.T, 2, value);\n break;\n case \"enum\":\n writeScalar(writer, ScalarType.INT32, 2, value);\n break;\n case \"message\":\n assert(value !== undefined);\n writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n break;\n }\n writer.join();\n}\n// Value must not be undefined\nfunction writeMessageField(writer, options, field, value) {\n const message = wrapField(field.T, value);\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n if (field.delimited) writer.tag(field.no, WireType.StartGroup).raw(message.toBinary(options)).tag(field.no, WireType.EndGroup);else writer.tag(field.no, WireType.LengthDelimited).bytes(message.toBinary(options));\n}\nfunction writeScalar(writer, type, fieldNo, value) {\n assert(value !== undefined);\n let [wireType, method] = scalarTypeInfo(type);\n writer.tag(fieldNo, wireType)[method](value);\n}\nfunction writePacked(writer, type, fieldNo, value) {\n if (!value.length) {\n return;\n }\n writer.tag(fieldNo, WireType.LengthDelimited).fork();\n let [, method] = scalarTypeInfo(type);\n for (let i = 0; i < value.length; i++) {\n writer[method](value[i]);\n }\n writer.join();\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\n// TODO replace call-sites writeScalar() and writePacked(), then remove\nfunction scalarTypeInfo(type) {\n let wireType = WireType.Varint;\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n switch (type) {\n case ScalarType.BYTES:\n case ScalarType.STRING:\n wireType = WireType.LengthDelimited;\n break;\n case ScalarType.DOUBLE:\n case ScalarType.FIXED64:\n case ScalarType.SFIXED64:\n wireType = WireType.Bit64;\n break;\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.FLOAT:\n wireType = WireType.Bit32;\n break;\n }\n const method = ScalarType[type].toLowerCase();\n return [wireType, method];\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nfunction makeUtilCommon() {\n return {\n setEnumType,\n initPartial(source, target) {\n if (source === undefined) {\n return;\n }\n const type = target.getType();\n for (const member of type.fields.byMember()) {\n const localName = member.localName,\n t = target,\n s = source;\n if (s[localName] == null) {\n // TODO if source is a Message instance, we should use isFieldSet() here to support future field presence\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n const sk = s[localName].case;\n if (sk === undefined) {\n continue;\n }\n const sourceField = member.findField(sk);\n let val = s[localName].value;\n if (sourceField && sourceField.kind == \"message\" && !isMessage(val, sourceField.T)) {\n val = new sourceField.T(val);\n } else if (sourceField && sourceField.kind === \"scalar\" && sourceField.T === ScalarType.BYTES) {\n val = toU8Arr(val);\n }\n t[localName] = {\n case: sk,\n value: val\n };\n break;\n case \"scalar\":\n case \"enum\":\n let copy = s[localName];\n if (member.T === ScalarType.BYTES) {\n copy = member.repeated ? copy.map(toU8Arr) : toU8Arr(copy);\n }\n t[localName] = copy;\n break;\n case \"map\":\n switch (member.V.kind) {\n case \"scalar\":\n case \"enum\":\n if (member.V.T === ScalarType.BYTES) {\n for (const [k, v] of Object.entries(s[localName])) {\n t[localName][k] = toU8Arr(v);\n }\n } else {\n Object.assign(t[localName], s[localName]);\n }\n break;\n case \"message\":\n const messageType = member.V.T;\n for (const k of Object.keys(s[localName])) {\n let val = s[localName][k];\n if (!messageType.fieldWrapper) {\n // We only take partial input for messages that are not a wrapper type.\n // For those messages, we recursively normalize the partial input.\n val = new messageType(val);\n }\n t[localName][k] = val;\n }\n break;\n }\n break;\n case \"message\":\n const mt = member.T;\n if (member.repeated) {\n t[localName] = s[localName].map(val => isMessage(val, mt) ? val : new mt(val));\n } else {\n const val = s[localName];\n if (mt.fieldWrapper) {\n if (\n // We can't use BytesValue.typeName as that will create a circular import\n mt.typeName === \"google.protobuf.BytesValue\") {\n t[localName] = toU8Arr(val);\n } else {\n t[localName] = val;\n }\n } else {\n t[localName] = isMessage(val, mt) ? val : new mt(val);\n }\n }\n break;\n }\n }\n },\n // TODO use isFieldSet() here to support future field presence\n equals(type, a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return type.fields.byMember().every(m => {\n const va = a[m.localName];\n const vb = b[m.localName];\n if (m.repeated) {\n if (va.length !== vb.length) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n switch (m.kind) {\n case \"message\":\n return va.every((a, i) => m.T.equals(a, vb[i]));\n case \"scalar\":\n return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n case \"enum\":\n return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n }\n throw new Error(\"repeated cannot contain \".concat(m.kind));\n }\n switch (m.kind) {\n case \"message\":\n return m.T.equals(va, vb);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va, vb);\n case \"scalar\":\n return scalarEquals(m.T, va, vb);\n case \"oneof\":\n if (va.case !== vb.case) {\n return false;\n }\n const s = m.findField(va.case);\n if (s === undefined) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n switch (s.kind) {\n case \"message\":\n return s.T.equals(va.value, vb.value);\n case \"enum\":\n return scalarEquals(ScalarType.INT32, va.value, vb.value);\n case \"scalar\":\n return scalarEquals(s.T, va.value, vb.value);\n }\n throw new Error(\"oneof cannot contain \".concat(s.kind));\n case \"map\":\n const keys = Object.keys(va).concat(Object.keys(vb));\n switch (m.V.kind) {\n case \"message\":\n const messageType = m.V.T;\n return keys.every(k => messageType.equals(va[k], vb[k]));\n case \"enum\":\n return keys.every(k => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n case \"scalar\":\n const scalarType = m.V.T;\n return keys.every(k => scalarEquals(scalarType, va[k], vb[k]));\n }\n break;\n }\n });\n },\n // TODO use isFieldSet() here to support future field presence\n clone(message) {\n const type = message.getType(),\n target = new type(),\n any = target;\n for (const member of type.fields.byMember()) {\n const source = message[member.localName];\n let copy;\n if (member.repeated) {\n copy = source.map(cloneSingularField);\n } else if (member.kind == \"map\") {\n copy = any[member.localName];\n for (const [key, v] of Object.entries(source)) {\n copy[key] = cloneSingularField(v);\n }\n } else if (member.kind == \"oneof\") {\n const f = member.findField(source.case);\n copy = f ? {\n case: source.case,\n value: cloneSingularField(source.value)\n } : {\n case: undefined\n };\n } else {\n copy = cloneSingularField(source);\n }\n any[member.localName] = copy;\n }\n for (const uf of type.runtime.bin.listUnknownFields(message)) {\n type.runtime.bin.onUnknownField(any, uf.no, uf.wireType, uf.data);\n }\n return target;\n }\n };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n if (value === undefined) {\n return value;\n }\n if (isMessage(value)) {\n return value.clone();\n }\n if (value instanceof Uint8Array) {\n const c = new Uint8Array(value.byteLength);\n c.set(value);\n return c;\n }\n return value;\n}\n// converts any ArrayLike<number> to Uint8Array if necessary.\nfunction toU8Arr(input) {\n return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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.\nfunction makeProtoRuntime(syntax, newFieldList, initFields) {\n return {\n syntax,\n json: makeJsonFormat(),\n bin: makeBinaryFormat(),\n util: Object.assign(Object.assign({}, makeUtilCommon()), {\n newFieldList,\n initFields\n }),\n makeMessageType(typeName, fields, opt) {\n return makeMessageType(this, typeName, fields, opt);\n },\n makeEnum,\n makeEnumType,\n getEnumType,\n makeExtension(typeName, extendee, field) {\n return makeExtension(this, typeName, extendee, field);\n }\n };\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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.\nclass InternalFieldList {\n constructor(fields, normalizer) {\n this._fields = fields;\n this._normalizer = normalizer;\n }\n findJsonName(jsonName) {\n if (!this.jsonNames) {\n const t = {};\n for (const f of this.list()) {\n t[f.jsonName] = t[f.name] = f;\n }\n this.jsonNames = t;\n }\n return this.jsonNames[jsonName];\n }\n find(fieldNo) {\n if (!this.numbers) {\n const t = {};\n for (const f of this.list()) {\n t[f.no] = f;\n }\n this.numbers = t;\n }\n return this.numbers[fieldNo];\n }\n list() {\n if (!this.all) {\n this.all = this._normalizer(this._fields);\n }\n return this.all;\n }\n byNumber() {\n if (!this.numbersAsc) {\n this.numbersAsc = this.list().concat().sort((a, b) => a.no - b.no);\n }\n return this.numbersAsc;\n }\n byMember() {\n if (!this.members) {\n this.members = [];\n const a = this.members;\n let o;\n for (const f of this.list()) {\n if (f.oneof) {\n if (f.oneof !== o) {\n o = f.oneof;\n a.push(o);\n }\n } else {\n a.push(f);\n }\n }\n }\n return this.members;\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\n/**\n * Returns the name of a field in generated code.\n */\nfunction localFieldName(protoName, inOneof) {\n const name = protoCamelCase(protoName);\n if (inOneof) {\n // oneof member names are not properties, but values of the `case` property.\n return name;\n }\n return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nfunction localOneofName(protoName) {\n return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nconst fieldJsonName = protoCamelCase;\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n// names reserved by JavaScript\n\"constructor\", \"toString\", \"toJSON\", \"valueOf\"]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n// names reserved by the runtime\n\"getType\", \"clone\", \"equals\", \"fromBinary\", \"fromJson\", \"fromJsonString\", \"toBinary\", \"toJson\", \"toJsonString\",\n// names reserved by the runtime for the future\n\"toObject\"]);\nconst fallback = name => \"\".concat(name, \"$\");\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = name => {\n if (reservedMessageProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst safeObjectProperty = name => {\n if (reservedObjectProperties.has(name)) {\n return fallback(name);\n }\n return name;\n};\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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.\nclass InternalOneofInfo {\n constructor(name) {\n this.kind = \"oneof\";\n this.repeated = false;\n this.packed = false;\n this.opt = false;\n this.req = false;\n this.default = undefined;\n this.fields = [];\n this.name = name;\n this.localName = localOneofName(name);\n }\n addField(field) {\n assert(field.oneof === this, \"field \".concat(field.name, \" not one of \").concat(this.name));\n this.fields.push(field);\n }\n findField(localName) {\n if (!this._lookup) {\n this._lookup = Object.create(null);\n for (let i = 0; i < this.fields.length; i++) {\n this._lookup[this.fields[i].localName] = this.fields[i];\n }\n }\n return this._lookup[localName];\n }\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Convert a collection of field info to an array of normalized FieldInfo.\n *\n * The argument `packedByDefault` specifies whether fields that do not specify\n * `packed` should be packed (proto3) or unpacked (proto2).\n */\nfunction normalizeFieldInfos(fieldInfos, packedByDefault) {\n var _a, _b, _c, _d, _e, _f;\n const r = [];\n let o;\n for (const field of typeof fieldInfos == \"function\" ? fieldInfos() : fieldInfos) {\n const f = field;\n f.localName = localFieldName(field.name, field.oneof !== undefined);\n f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n if (field.kind == \"scalar\") {\n f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n }\n f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n f.req = (_e = field.req) !== null && _e !== void 0 ? _e : false;\n f.opt = (_f = field.opt) !== null && _f !== void 0 ? _f : false;\n if (field.packed === undefined) {\n {\n f.packed = field.kind == \"enum\" || field.kind == \"scalar\" && field.T != ScalarType.BYTES && field.T != ScalarType.STRING;\n }\n }\n // We do not surface options at this time\n // f.options = field.options ?? emptyReadonlyObject;\n if (field.oneof !== undefined) {\n const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n if (!o || o.name != ooname) {\n o = new InternalOneofInfo(ooname);\n }\n f.oneof = o;\n o.addField(f);\n }\n r.push(f);\n }\n return r;\n}\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * Provides functionality for messages defined with the proto3 syntax.\n */\nconst proto3 = makeProtoRuntime(\"proto3\", fields => {\n return new InternalFieldList(fields, source => normalizeFieldInfos(source));\n},\n// TODO merge with proto2 and initExtensionField, also see initPartial, equals, clone\ntarget => {\n for (const member of target.getType().fields.byMember()) {\n if (member.opt) {\n continue;\n }\n const name = member.localName,\n t = target;\n if (member.repeated) {\n t[name] = [];\n continue;\n }\n switch (member.kind) {\n case \"oneof\":\n t[name] = {\n case: undefined\n };\n break;\n case \"enum\":\n t[name] = 0;\n break;\n case \"map\":\n t[name] = {};\n break;\n case \"scalar\":\n t[name] = scalarZeroValue(member.T, member.L);\n break;\n }\n }\n});\n\n// Copyright 2021-2024 Buf Technologies, Inc.\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 * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from message google.protobuf.Timestamp\n */\nclass Timestamp extends Message {\n constructor(data) {\n super();\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from field: int64 seconds = 1;\n */\n this.seconds = protoInt64.zero;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from field: int32 nanos = 2;\n */\n this.nanos = 0;\n proto3.util.initPartial(data, this);\n }\n fromJson(json, options) {\n if (typeof json !== \"string\") {\n throw new Error(\"cannot decode google.protobuf.Timestamp from JSON: \".concat(proto3.json.debug(json)));\n }\n const matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches) {\n throw new Error(\"cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string\");\n }\n const ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms)) {\n throw new Error(\"cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string\");\n }\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\")) {\n throw new Error(\"cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive\");\n }\n this.seconds = protoInt64.parse(ms / 1000);\n this.nanos = 0;\n if (matches[7]) {\n this.nanos = parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000;\n }\n return this;\n }\n toJson(options) {\n const ms = Number(this.seconds) * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\")) {\n throw new Error(\"cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive\");\n }\n if (this.nanos < 0) {\n throw new Error(\"cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative\");\n }\n let z = \"Z\";\n if (this.nanos > 0) {\n const nanosStr = (this.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\") {\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n } else if (nanosStr.substring(6) === \"000\") {\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n } else {\n z = \".\" + nanosStr + \"Z\";\n }\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n toDate() {\n return new Date(Number(this.seconds) * 1000 + Math.ceil(this.nanos / 1000000));\n }\n static now() {\n return Timestamp.fromDate(new Date());\n }\n static fromDate(date) {\n const ms = date.getTime();\n return new Timestamp({\n seconds: protoInt64.parse(Math.floor(ms / 1000)),\n nanos: ms % 1000 * 1000000\n });\n }\n static fromBinary(bytes, options) {\n return new Timestamp().fromBinary(bytes, options);\n }\n static fromJson(jsonValue, options) {\n return new Timestamp().fromJson(jsonValue, options);\n }\n static fromJsonString(jsonString, options) {\n return new Timestamp().fromJsonString(jsonString, options);\n }\n static equals(a, b) {\n return proto3.util.equals(Timestamp, a, b);\n }\n}\nTimestamp.runtime = proto3;\nTimestamp.typeName = \"google.protobuf.Timestamp\";\nTimestamp.fields = proto3.util.newFieldList(() => [{\n no: 1,\n name: \"seconds\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"nanos\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}]);\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=js+dts\"\n// @generated from file livekit_metrics.proto (package livekit, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\n\n/**\n * @generated from message livekit.MetricsBatch\n */\nconst MetricsBatch = /*@__PURE__*/proto3.makeMessageType(\"livekit.MetricsBatch\", () => [{\n no: 1,\n name: \"timestamp_ms\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"normalized_timestamp\",\n kind: \"message\",\n T: Timestamp\n}, {\n no: 3,\n name: \"str_data\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 4,\n name: \"time_series\",\n kind: \"message\",\n T: TimeSeriesMetric,\n repeated: true\n}, {\n no: 5,\n name: \"events\",\n kind: \"message\",\n T: EventMetric,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.TimeSeriesMetric\n */\nconst TimeSeriesMetric = /*@__PURE__*/proto3.makeMessageType(\"livekit.TimeSeriesMetric\", () => [{\n no: 1,\n name: \"label\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 2,\n name: \"participant_identity\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 3,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 4,\n name: \"samples\",\n kind: \"message\",\n T: MetricSample,\n repeated: true\n}, {\n no: 5,\n name: \"rid\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * @generated from message livekit.MetricSample\n */\nconst MetricSample = /*@__PURE__*/proto3.makeMessageType(\"livekit.MetricSample\", () => [{\n no: 1,\n name: \"timestamp_ms\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"normalized_timestamp\",\n kind: \"message\",\n T: Timestamp\n}, {\n no: 3,\n name: \"value\",\n kind: \"scalar\",\n T: 2 /* ScalarType.FLOAT */\n}]);\n\n/**\n * @generated from message livekit.EventMetric\n */\nconst EventMetric = /*@__PURE__*/proto3.makeMessageType(\"livekit.EventMetric\", () => [{\n no: 1,\n name: \"label\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 2,\n name: \"participant_identity\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 3,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 4,\n name: \"start_timestamp_ms\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 5,\n name: \"end_timestamp_ms\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */,\n opt: true\n}, {\n no: 6,\n name: \"normalized_start_timestamp\",\n kind: \"message\",\n T: Timestamp\n}, {\n no: 7,\n name: \"normalized_end_timestamp\",\n kind: \"message\",\n T: Timestamp,\n opt: true\n}, {\n no: 8,\n name: \"metadata\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 9,\n name: \"rid\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n// Copyright 2023 LiveKit, Inc.\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 * @generated from enum livekit.TrackType\n */\nconst TrackType = /*@__PURE__*/proto3.makeEnum(\"livekit.TrackType\", [{\n no: 0,\n name: \"AUDIO\"\n}, {\n no: 1,\n name: \"VIDEO\"\n}, {\n no: 2,\n name: \"DATA\"\n}]);\n\n/**\n * @generated from enum livekit.TrackSource\n */\nconst TrackSource = /*@__PURE__*/proto3.makeEnum(\"livekit.TrackSource\", [{\n no: 0,\n name: \"UNKNOWN\"\n}, {\n no: 1,\n name: \"CAMERA\"\n}, {\n no: 2,\n name: \"MICROPHONE\"\n}, {\n no: 3,\n name: \"SCREEN_SHARE\"\n}, {\n no: 4,\n name: \"SCREEN_SHARE_AUDIO\"\n}]);\n\n/**\n * @generated from enum livekit.VideoQuality\n */\nconst VideoQuality$1 = /*@__PURE__*/proto3.makeEnum(\"livekit.VideoQuality\", [{\n no: 0,\n name: \"LOW\"\n}, {\n no: 1,\n name: \"MEDIUM\"\n}, {\n no: 2,\n name: \"HIGH\"\n}, {\n no: 3,\n name: \"OFF\"\n}]);\n\n/**\n * @generated from enum livekit.ConnectionQuality\n */\nconst ConnectionQuality$1 = /*@__PURE__*/proto3.makeEnum(\"livekit.ConnectionQuality\", [{\n no: 0,\n name: \"POOR\"\n}, {\n no: 1,\n name: \"GOOD\"\n}, {\n no: 2,\n name: \"EXCELLENT\"\n}, {\n no: 3,\n name: \"LOST\"\n}]);\n\n/**\n * @generated from enum livekit.ClientConfigSetting\n */\nconst ClientConfigSetting = /*@__PURE__*/proto3.makeEnum(\"livekit.ClientConfigSetting\", [{\n no: 0,\n name: \"UNSET\"\n}, {\n no: 1,\n name: \"DISABLED\"\n}, {\n no: 2,\n name: \"ENABLED\"\n}]);\n\n/**\n * @generated from enum livekit.DisconnectReason\n */\nconst DisconnectReason = /*@__PURE__*/proto3.makeEnum(\"livekit.DisconnectReason\", [{\n no: 0,\n name: \"UNKNOWN_REASON\"\n}, {\n no: 1,\n name: \"CLIENT_INITIATED\"\n}, {\n no: 2,\n name: \"DUPLICATE_IDENTITY\"\n}, {\n no: 3,\n name: \"SERVER_SHUTDOWN\"\n}, {\n no: 4,\n name: \"PARTICIPANT_REMOVED\"\n}, {\n no: 5,\n name: \"ROOM_DELETED\"\n}, {\n no: 6,\n name: \"STATE_MISMATCH\"\n}, {\n no: 7,\n name: \"JOIN_FAILURE\"\n}, {\n no: 8,\n name: \"MIGRATION\"\n}, {\n no: 9,\n name: \"SIGNAL_CLOSE\"\n}, {\n no: 10,\n name: \"ROOM_CLOSED\"\n}, {\n no: 11,\n name: \"USER_UNAVAILABLE\"\n}, {\n no: 12,\n name: \"USER_REJECTED\"\n}]);\n\n/**\n * @generated from enum livekit.ReconnectReason\n */\nconst ReconnectReason = /*@__PURE__*/proto3.makeEnum(\"livekit.ReconnectReason\", [{\n no: 0,\n name: \"RR_UNKNOWN\"\n}, {\n no: 1,\n name: \"RR_SIGNAL_DISCONNECTED\"\n}, {\n no: 2,\n name: \"RR_PUBLISHER_FAILED\"\n}, {\n no: 3,\n name: \"RR_SUBSCRIBER_FAILED\"\n}, {\n no: 4,\n name: \"RR_SWITCH_CANDIDATE\"\n}]);\n\n/**\n * @generated from enum livekit.SubscriptionError\n */\nconst SubscriptionError = /*@__PURE__*/proto3.makeEnum(\"livekit.SubscriptionError\", [{\n no: 0,\n name: \"SE_UNKNOWN\"\n}, {\n no: 1,\n name: \"SE_CODEC_UNSUPPORTED\"\n}, {\n no: 2,\n name: \"SE_TRACK_NOTFOUND\"\n}]);\n\n/**\n * @generated from enum livekit.AudioTrackFeature\n */\nconst AudioTrackFeature = /*@__PURE__*/proto3.makeEnum(\"livekit.AudioTrackFeature\", [{\n no: 0,\n name: \"TF_STEREO\"\n}, {\n no: 1,\n name: \"TF_NO_DTX\"\n}, {\n no: 2,\n name: \"TF_AUTO_GAIN_CONTROL\"\n}, {\n no: 3,\n name: \"TF_ECHO_CANCELLATION\"\n}, {\n no: 4,\n name: \"TF_NOISE_SUPPRESSION\"\n}, {\n no: 5,\n name: \"TF_ENHANCED_NOISE_CANCELLATION\"\n}]);\n\n/**\n * @generated from message livekit.Room\n */\nconst Room$1 = /*@__PURE__*/proto3.makeMessageType(\"livekit.Room\", () => [{\n no: 1,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"name\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"empty_timeout\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 14,\n name: \"departure_timeout\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 4,\n name: \"max_participants\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 5,\n name: \"creation_time\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 6,\n name: \"turn_password\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 7,\n name: \"enabled_codecs\",\n kind: \"message\",\n T: Codec,\n repeated: true\n}, {\n no: 8,\n name: \"metadata\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 9,\n name: \"num_participants\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 11,\n name: \"num_publishers\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 10,\n name: \"active_recording\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 13,\n name: \"version\",\n kind: \"message\",\n T: TimedVersion\n}]);\n\n/**\n * @generated from message livekit.Codec\n */\nconst Codec = /*@__PURE__*/proto3.makeMessageType(\"livekit.Codec\", () => [{\n no: 1,\n name: \"mime\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"fmtp_line\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.ParticipantPermission\n */\nconst ParticipantPermission = /*@__PURE__*/proto3.makeMessageType(\"livekit.ParticipantPermission\", () => [{\n no: 1,\n name: \"can_subscribe\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 2,\n name: \"can_publish\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 3,\n name: \"can_publish_data\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 9,\n name: \"can_publish_sources\",\n kind: \"enum\",\n T: proto3.getEnumType(TrackSource),\n repeated: true\n}, {\n no: 7,\n name: \"hidden\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 8,\n name: \"recorder\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 10,\n name: \"can_update_metadata\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 11,\n name: \"agent\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 12,\n name: \"can_subscribe_metrics\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.ParticipantInfo\n */\nconst ParticipantInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.ParticipantInfo\", () => [{\n no: 1,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"identity\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"state\",\n kind: \"enum\",\n T: proto3.getEnumType(ParticipantInfo_State)\n}, {\n no: 4,\n name: \"tracks\",\n kind: \"message\",\n T: TrackInfo,\n repeated: true\n}, {\n no: 5,\n name: \"metadata\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 6,\n name: \"joined_at\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 9,\n name: \"name\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 10,\n name: \"version\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 11,\n name: \"permission\",\n kind: \"message\",\n T: ParticipantPermission\n}, {\n no: 12,\n name: \"region\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 13,\n name: \"is_publisher\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 14,\n name: \"kind\",\n kind: \"enum\",\n T: proto3.getEnumType(ParticipantInfo_Kind)\n}, {\n no: 15,\n name: \"attributes\",\n kind: \"map\",\n K: 9 /* ScalarType.STRING */,\n V: {\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n }\n}, {\n no: 16,\n name: \"disconnect_reason\",\n kind: \"enum\",\n T: proto3.getEnumType(DisconnectReason)\n}]);\n\n/**\n * @generated from enum livekit.ParticipantInfo.State\n */\nconst ParticipantInfo_State = /*@__PURE__*/proto3.makeEnum(\"livekit.ParticipantInfo.State\", [{\n no: 0,\n name: \"JOINING\"\n}, {\n no: 1,\n name: \"JOINED\"\n}, {\n no: 2,\n name: \"ACTIVE\"\n}, {\n no: 3,\n name: \"DISCONNECTED\"\n}]);\n\n/**\n * @generated from enum livekit.ParticipantInfo.Kind\n */\nconst ParticipantInfo_Kind = /*@__PURE__*/proto3.makeEnum(\"livekit.ParticipantInfo.Kind\", [{\n no: 0,\n name: \"STANDARD\"\n}, {\n no: 1,\n name: \"INGRESS\"\n}, {\n no: 2,\n name: \"EGRESS\"\n}, {\n no: 3,\n name: \"SIP\"\n}, {\n no: 4,\n name: \"AGENT\"\n}]);\n\n/**\n * @generated from enum livekit.Encryption.Type\n */\nconst Encryption_Type = /*@__PURE__*/proto3.makeEnum(\"livekit.Encryption.Type\", [{\n no: 0,\n name: \"NONE\"\n}, {\n no: 1,\n name: \"GCM\"\n}, {\n no: 2,\n name: \"CUSTOM\"\n}]);\n\n/**\n * @generated from message livekit.SimulcastCodecInfo\n */\nconst SimulcastCodecInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.SimulcastCodecInfo\", () => [{\n no: 1,\n name: \"mime_type\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"mid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"cid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 4,\n name: \"layers\",\n kind: \"message\",\n T: VideoLayer,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.TrackInfo\n */\nconst TrackInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrackInfo\", () => [{\n no: 1,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"type\",\n kind: \"enum\",\n T: proto3.getEnumType(TrackType)\n}, {\n no: 3,\n name: \"name\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 4,\n name: \"muted\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 5,\n name: \"width\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 6,\n name: \"height\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 7,\n name: \"simulcast\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 8,\n name: \"disable_dtx\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 9,\n name: \"source\",\n kind: \"enum\",\n T: proto3.getEnumType(TrackSource)\n}, {\n no: 10,\n name: \"layers\",\n kind: \"message\",\n T: VideoLayer,\n repeated: true\n}, {\n no: 11,\n name: \"mime_type\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 12,\n name: \"mid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 13,\n name: \"codecs\",\n kind: \"message\",\n T: SimulcastCodecInfo,\n repeated: true\n}, {\n no: 14,\n name: \"stereo\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 15,\n name: \"disable_red\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 16,\n name: \"encryption\",\n kind: \"enum\",\n T: proto3.getEnumType(Encryption_Type)\n}, {\n no: 17,\n name: \"stream\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 18,\n name: \"version\",\n kind: \"message\",\n T: TimedVersion\n}, {\n no: 19,\n name: \"audio_features\",\n kind: \"enum\",\n T: proto3.getEnumType(AudioTrackFeature),\n repeated: true\n}]);\n\n/**\n * provide information about available spatial layers\n *\n * @generated from message livekit.VideoLayer\n */\nconst VideoLayer = /*@__PURE__*/proto3.makeMessageType(\"livekit.VideoLayer\", () => [{\n no: 1,\n name: \"quality\",\n kind: \"enum\",\n T: proto3.getEnumType(VideoQuality$1)\n}, {\n no: 2,\n name: \"width\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 3,\n name: \"height\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 4,\n name: \"bitrate\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 5,\n name: \"ssrc\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * new DataPacket API\n *\n * @generated from message livekit.DataPacket\n */\nconst DataPacket = /*@__PURE__*/proto3.makeMessageType(\"livekit.DataPacket\", () => [{\n no: 1,\n name: \"kind\",\n kind: \"enum\",\n T: proto3.getEnumType(DataPacket_Kind)\n}, {\n no: 4,\n name: \"participant_identity\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"destination_identities\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 2,\n name: \"user\",\n kind: \"message\",\n T: UserPacket,\n oneof: \"value\"\n}, {\n no: 3,\n name: \"speaker\",\n kind: \"message\",\n T: ActiveSpeakerUpdate,\n oneof: \"value\"\n}, {\n no: 6,\n name: \"sip_dtmf\",\n kind: \"message\",\n T: SipDTMF,\n oneof: \"value\"\n}, {\n no: 7,\n name: \"transcription\",\n kind: \"message\",\n T: Transcription,\n oneof: \"value\"\n}, {\n no: 8,\n name: \"metrics\",\n kind: \"message\",\n T: MetricsBatch,\n oneof: \"value\"\n}, {\n no: 9,\n name: \"chat_message\",\n kind: \"message\",\n T: ChatMessage,\n oneof: \"value\"\n}, {\n no: 10,\n name: \"rpc_request\",\n kind: \"message\",\n T: RpcRequest,\n oneof: \"value\"\n}, {\n no: 11,\n name: \"rpc_ack\",\n kind: \"message\",\n T: RpcAck,\n oneof: \"value\"\n}, {\n no: 12,\n name: \"rpc_response\",\n kind: \"message\",\n T: RpcResponse,\n oneof: \"value\"\n}]);\n\n/**\n * @generated from enum livekit.DataPacket.Kind\n */\nconst DataPacket_Kind = /*@__PURE__*/proto3.makeEnum(\"livekit.DataPacket.Kind\", [{\n no: 0,\n name: \"RELIABLE\"\n}, {\n no: 1,\n name: \"LOSSY\"\n}]);\n\n/**\n * @generated from message livekit.ActiveSpeakerUpdate\n */\nconst ActiveSpeakerUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.ActiveSpeakerUpdate\", () => [{\n no: 1,\n name: \"speakers\",\n kind: \"message\",\n T: SpeakerInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.SpeakerInfo\n */\nconst SpeakerInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.SpeakerInfo\", () => [{\n no: 1,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"level\",\n kind: \"scalar\",\n T: 2 /* ScalarType.FLOAT */\n}, {\n no: 3,\n name: \"active\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.UserPacket\n */\nconst UserPacket = /*@__PURE__*/proto3.makeMessageType(\"livekit.UserPacket\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"participant_identity\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"payload\",\n kind: \"scalar\",\n T: 12 /* ScalarType.BYTES */\n}, {\n no: 3,\n name: \"destination_sids\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 6,\n name: \"destination_identities\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 4,\n name: \"topic\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n opt: true\n}, {\n no: 8,\n name: \"id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n opt: true\n}, {\n no: 9,\n name: \"start_time\",\n kind: \"scalar\",\n T: 4 /* ScalarType.UINT64 */,\n opt: true\n}, {\n no: 10,\n name: \"end_time\",\n kind: \"scalar\",\n T: 4 /* ScalarType.UINT64 */,\n opt: true\n}]);\n\n/**\n * @generated from message livekit.SipDTMF\n */\nconst SipDTMF = /*@__PURE__*/proto3.makeMessageType(\"livekit.SipDTMF\", () => [{\n no: 3,\n name: \"code\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 4,\n name: \"digit\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.Transcription\n */\nconst Transcription = /*@__PURE__*/proto3.makeMessageType(\"livekit.Transcription\", () => [{\n no: 2,\n name: \"transcribed_participant_identity\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"track_id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 4,\n name: \"segments\",\n kind: \"message\",\n T: TranscriptionSegment,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.TranscriptionSegment\n */\nconst TranscriptionSegment = /*@__PURE__*/proto3.makeMessageType(\"livekit.TranscriptionSegment\", () => [{\n no: 1,\n name: \"id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"text\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"start_time\",\n kind: \"scalar\",\n T: 4 /* ScalarType.UINT64 */\n}, {\n no: 4,\n name: \"end_time\",\n kind: \"scalar\",\n T: 4 /* ScalarType.UINT64 */\n}, {\n no: 5,\n name: \"final\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 6,\n name: \"language\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.ChatMessage\n */\nconst ChatMessage = /*@__PURE__*/proto3.makeMessageType(\"livekit.ChatMessage\", () => [{\n no: 1,\n name: \"id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"timestamp\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 3,\n name: \"edit_timestamp\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */,\n opt: true\n}, {\n no: 4,\n name: \"message\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"deleted\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 6,\n name: \"generated\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.RpcRequest\n */\nconst RpcRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.RpcRequest\", () => [{\n no: 1,\n name: \"id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"method\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"payload\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 4,\n name: \"response_timeout_ms\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 5,\n name: \"version\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * @generated from message livekit.RpcAck\n */\nconst RpcAck = /*@__PURE__*/proto3.makeMessageType(\"livekit.RpcAck\", () => [{\n no: 1,\n name: \"request_id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.RpcResponse\n */\nconst RpcResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.RpcResponse\", () => [{\n no: 1,\n name: \"request_id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"payload\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n oneof: \"value\"\n}, {\n no: 3,\n name: \"error\",\n kind: \"message\",\n T: RpcError$1,\n oneof: \"value\"\n}]);\n\n/**\n * @generated from message livekit.RpcError\n */\nconst RpcError$1 = /*@__PURE__*/proto3.makeMessageType(\"livekit.RpcError\", () => [{\n no: 1,\n name: \"code\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 2,\n name: \"message\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"data\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.ParticipantTracks\n */\nconst ParticipantTracks = /*@__PURE__*/proto3.makeMessageType(\"livekit.ParticipantTracks\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"track_sids\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}]);\n\n/**\n * details about the server\n *\n * @generated from message livekit.ServerInfo\n */\nconst ServerInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.ServerInfo\", () => [{\n no: 1,\n name: \"edition\",\n kind: \"enum\",\n T: proto3.getEnumType(ServerInfo_Edition)\n}, {\n no: 2,\n name: \"version\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"protocol\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}, {\n no: 4,\n name: \"region\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"node_id\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 6,\n name: \"debug_info\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 7,\n name: \"agent_protocol\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}]);\n\n/**\n * @generated from enum livekit.ServerInfo.Edition\n */\nconst ServerInfo_Edition = /*@__PURE__*/proto3.makeEnum(\"livekit.ServerInfo.Edition\", [{\n no: 0,\n name: \"Standard\"\n}, {\n no: 1,\n name: \"Cloud\"\n}]);\n\n/**\n * details about the client\n *\n * @generated from message livekit.ClientInfo\n */\nconst ClientInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.ClientInfo\", () => [{\n no: 1,\n name: \"sdk\",\n kind: \"enum\",\n T: proto3.getEnumType(ClientInfo_SDK)\n}, {\n no: 2,\n name: \"version\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"protocol\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}, {\n no: 4,\n name: \"os\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"os_version\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 6,\n name: \"device_model\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 7,\n name: \"browser\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 8,\n name: \"browser_version\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 9,\n name: \"address\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 10,\n name: \"network\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 11,\n name: \"other_sdks\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from enum livekit.ClientInfo.SDK\n */\nconst ClientInfo_SDK = /*@__PURE__*/proto3.makeEnum(\"livekit.ClientInfo.SDK\", [{\n no: 0,\n name: \"UNKNOWN\"\n}, {\n no: 1,\n name: \"JS\"\n}, {\n no: 2,\n name: \"SWIFT\"\n}, {\n no: 3,\n name: \"ANDROID\"\n}, {\n no: 4,\n name: \"FLUTTER\"\n}, {\n no: 5,\n name: \"GO\"\n}, {\n no: 6,\n name: \"UNITY\"\n}, {\n no: 7,\n name: \"REACT_NATIVE\"\n}, {\n no: 8,\n name: \"RUST\"\n}, {\n no: 9,\n name: \"PYTHON\"\n}, {\n no: 10,\n name: \"CPP\"\n}, {\n no: 11,\n name: \"UNITY_WEB\"\n}, {\n no: 12,\n name: \"NODE\"\n}]);\n\n/**\n * server provided client configuration\n *\n * @generated from message livekit.ClientConfiguration\n */\nconst ClientConfiguration = /*@__PURE__*/proto3.makeMessageType(\"livekit.ClientConfiguration\", () => [{\n no: 1,\n name: \"video\",\n kind: \"message\",\n T: VideoConfiguration\n}, {\n no: 2,\n name: \"screen\",\n kind: \"message\",\n T: VideoConfiguration\n}, {\n no: 3,\n name: \"resume_connection\",\n kind: \"enum\",\n T: proto3.getEnumType(ClientConfigSetting)\n}, {\n no: 4,\n name: \"disabled_codecs\",\n kind: \"message\",\n T: DisabledCodecs\n}, {\n no: 5,\n name: \"force_relay\",\n kind: \"enum\",\n T: proto3.getEnumType(ClientConfigSetting)\n}]);\n\n/**\n * @generated from message livekit.VideoConfiguration\n */\nconst VideoConfiguration = /*@__PURE__*/proto3.makeMessageType(\"livekit.VideoConfiguration\", () => [{\n no: 1,\n name: \"hardware_encoder\",\n kind: \"enum\",\n T: proto3.getEnumType(ClientConfigSetting)\n}]);\n\n/**\n * @generated from message livekit.DisabledCodecs\n */\nconst DisabledCodecs = /*@__PURE__*/proto3.makeMessageType(\"livekit.DisabledCodecs\", () => [{\n no: 1,\n name: \"codecs\",\n kind: \"message\",\n T: Codec,\n repeated: true\n}, {\n no: 2,\n name: \"publish\",\n kind: \"message\",\n T: Codec,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.TimedVersion\n */\nconst TimedVersion = /*@__PURE__*/proto3.makeMessageType(\"livekit.TimedVersion\", () => [{\n no: 1,\n name: \"unix_micro\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"ticks\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}]);\n\n// Copyright 2023 LiveKit, Inc.\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 * @generated from enum livekit.SignalTarget\n */\nconst SignalTarget = /*@__PURE__*/proto3.makeEnum(\"livekit.SignalTarget\", [{\n no: 0,\n name: \"PUBLISHER\"\n}, {\n no: 1,\n name: \"SUBSCRIBER\"\n}]);\n\n/**\n * @generated from enum livekit.StreamState\n */\nconst StreamState = /*@__PURE__*/proto3.makeEnum(\"livekit.StreamState\", [{\n no: 0,\n name: \"ACTIVE\"\n}, {\n no: 1,\n name: \"PAUSED\"\n}]);\n\n/**\n * @generated from enum livekit.CandidateProtocol\n */\nconst CandidateProtocol = /*@__PURE__*/proto3.makeEnum(\"livekit.CandidateProtocol\", [{\n no: 0,\n name: \"UDP\"\n}, {\n no: 1,\n name: \"TCP\"\n}, {\n no: 2,\n name: \"TLS\"\n}]);\n\n/**\n * @generated from message livekit.SignalRequest\n */\nconst SignalRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.SignalRequest\", () => [{\n no: 1,\n name: \"offer\",\n kind: \"message\",\n T: SessionDescription,\n oneof: \"message\"\n}, {\n no: 2,\n name: \"answer\",\n kind: \"message\",\n T: SessionDescription,\n oneof: \"message\"\n}, {\n no: 3,\n name: \"trickle\",\n kind: \"message\",\n T: TrickleRequest,\n oneof: \"message\"\n}, {\n no: 4,\n name: \"add_track\",\n kind: \"message\",\n T: AddTrackRequest,\n oneof: \"message\"\n}, {\n no: 5,\n name: \"mute\",\n kind: \"message\",\n T: MuteTrackRequest,\n oneof: \"message\"\n}, {\n no: 6,\n name: \"subscription\",\n kind: \"message\",\n T: UpdateSubscription,\n oneof: \"message\"\n}, {\n no: 7,\n name: \"track_setting\",\n kind: \"message\",\n T: UpdateTrackSettings,\n oneof: \"message\"\n}, {\n no: 8,\n name: \"leave\",\n kind: \"message\",\n T: LeaveRequest,\n oneof: \"message\"\n}, {\n no: 10,\n name: \"update_layers\",\n kind: \"message\",\n T: UpdateVideoLayers,\n oneof: \"message\"\n}, {\n no: 11,\n name: \"subscription_permission\",\n kind: \"message\",\n T: SubscriptionPermission,\n oneof: \"message\"\n}, {\n no: 12,\n name: \"sync_state\",\n kind: \"message\",\n T: SyncState,\n oneof: \"message\"\n}, {\n no: 13,\n name: \"simulate\",\n kind: \"message\",\n T: SimulateScenario,\n oneof: \"message\"\n}, {\n no: 14,\n name: \"ping\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */,\n oneof: \"message\"\n}, {\n no: 15,\n name: \"update_metadata\",\n kind: \"message\",\n T: UpdateParticipantMetadata,\n oneof: \"message\"\n}, {\n no: 16,\n name: \"ping_req\",\n kind: \"message\",\n T: Ping,\n oneof: \"message\"\n}, {\n no: 17,\n name: \"update_audio_track\",\n kind: \"message\",\n T: UpdateLocalAudioTrack,\n oneof: \"message\"\n}, {\n no: 18,\n name: \"update_video_track\",\n kind: \"message\",\n T: UpdateLocalVideoTrack,\n oneof: \"message\"\n}]);\n\n/**\n * @generated from message livekit.SignalResponse\n */\nconst SignalResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.SignalResponse\", () => [{\n no: 1,\n name: \"join\",\n kind: \"message\",\n T: JoinResponse,\n oneof: \"message\"\n}, {\n no: 2,\n name: \"answer\",\n kind: \"message\",\n T: SessionDescription,\n oneof: \"message\"\n}, {\n no: 3,\n name: \"offer\",\n kind: \"message\",\n T: SessionDescription,\n oneof: \"message\"\n}, {\n no: 4,\n name: \"trickle\",\n kind: \"message\",\n T: TrickleRequest,\n oneof: \"message\"\n}, {\n no: 5,\n name: \"update\",\n kind: \"message\",\n T: ParticipantUpdate,\n oneof: \"message\"\n}, {\n no: 6,\n name: \"track_published\",\n kind: \"message\",\n T: TrackPublishedResponse,\n oneof: \"message\"\n}, {\n no: 8,\n name: \"leave\",\n kind: \"message\",\n T: LeaveRequest,\n oneof: \"message\"\n}, {\n no: 9,\n name: \"mute\",\n kind: \"message\",\n T: MuteTrackRequest,\n oneof: \"message\"\n}, {\n no: 10,\n name: \"speakers_changed\",\n kind: \"message\",\n T: SpeakersChanged,\n oneof: \"message\"\n}, {\n no: 11,\n name: \"room_update\",\n kind: \"message\",\n T: RoomUpdate,\n oneof: \"message\"\n}, {\n no: 12,\n name: \"connection_quality\",\n kind: \"message\",\n T: ConnectionQualityUpdate,\n oneof: \"message\"\n}, {\n no: 13,\n name: \"stream_state_update\",\n kind: \"message\",\n T: StreamStateUpdate,\n oneof: \"message\"\n}, {\n no: 14,\n name: \"subscribed_quality_update\",\n kind: \"message\",\n T: SubscribedQualityUpdate,\n oneof: \"message\"\n}, {\n no: 15,\n name: \"subscription_permission_update\",\n kind: \"message\",\n T: SubscriptionPermissionUpdate,\n oneof: \"message\"\n}, {\n no: 16,\n name: \"refresh_token\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n oneof: \"message\"\n}, {\n no: 17,\n name: \"track_unpublished\",\n kind: \"message\",\n T: TrackUnpublishedResponse,\n oneof: \"message\"\n}, {\n no: 18,\n name: \"pong\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */,\n oneof: \"message\"\n}, {\n no: 19,\n name: \"reconnect\",\n kind: \"message\",\n T: ReconnectResponse,\n oneof: \"message\"\n}, {\n no: 20,\n name: \"pong_resp\",\n kind: \"message\",\n T: Pong,\n oneof: \"message\"\n}, {\n no: 21,\n name: \"subscription_response\",\n kind: \"message\",\n T: SubscriptionResponse,\n oneof: \"message\"\n}, {\n no: 22,\n name: \"request_response\",\n kind: \"message\",\n T: RequestResponse,\n oneof: \"message\"\n}, {\n no: 23,\n name: \"track_subscribed\",\n kind: \"message\",\n T: TrackSubscribed,\n oneof: \"message\"\n}]);\n\n/**\n * @generated from message livekit.SimulcastCodec\n */\nconst SimulcastCodec = /*@__PURE__*/proto3.makeMessageType(\"livekit.SimulcastCodec\", () => [{\n no: 1,\n name: \"codec\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"cid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.AddTrackRequest\n */\nconst AddTrackRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.AddTrackRequest\", () => [{\n no: 1,\n name: \"cid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"name\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"type\",\n kind: \"enum\",\n T: proto3.getEnumType(TrackType)\n}, {\n no: 4,\n name: \"width\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 5,\n name: \"height\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 6,\n name: \"muted\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 7,\n name: \"disable_dtx\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 8,\n name: \"source\",\n kind: \"enum\",\n T: proto3.getEnumType(TrackSource)\n}, {\n no: 9,\n name: \"layers\",\n kind: \"message\",\n T: VideoLayer,\n repeated: true\n}, {\n no: 10,\n name: \"simulcast_codecs\",\n kind: \"message\",\n T: SimulcastCodec,\n repeated: true\n}, {\n no: 11,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 12,\n name: \"stereo\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 13,\n name: \"disable_red\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 14,\n name: \"encryption\",\n kind: \"enum\",\n T: proto3.getEnumType(Encryption_Type)\n}, {\n no: 15,\n name: \"stream\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.TrickleRequest\n */\nconst TrickleRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrickleRequest\", () => [{\n no: 1,\n name: \"candidateInit\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"target\",\n kind: \"enum\",\n T: proto3.getEnumType(SignalTarget)\n}, {\n no: 3,\n name: \"final\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.MuteTrackRequest\n */\nconst MuteTrackRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.MuteTrackRequest\", () => [{\n no: 1,\n name: \"sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"muted\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.JoinResponse\n */\nconst JoinResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.JoinResponse\", () => [{\n no: 1,\n name: \"room\",\n kind: \"message\",\n T: Room$1\n}, {\n no: 2,\n name: \"participant\",\n kind: \"message\",\n T: ParticipantInfo\n}, {\n no: 3,\n name: \"other_participants\",\n kind: \"message\",\n T: ParticipantInfo,\n repeated: true\n}, {\n no: 4,\n name: \"server_version\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 5,\n name: \"ice_servers\",\n kind: \"message\",\n T: ICEServer,\n repeated: true\n}, {\n no: 6,\n name: \"subscriber_primary\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 7,\n name: \"alternative_url\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 8,\n name: \"client_configuration\",\n kind: \"message\",\n T: ClientConfiguration\n}, {\n no: 9,\n name: \"server_region\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 10,\n name: \"ping_timeout\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}, {\n no: 11,\n name: \"ping_interval\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */\n}, {\n no: 12,\n name: \"server_info\",\n kind: \"message\",\n T: ServerInfo\n}, {\n no: 13,\n name: \"sif_trailer\",\n kind: \"scalar\",\n T: 12 /* ScalarType.BYTES */\n}, {\n no: 14,\n name: \"enabled_publish_codecs\",\n kind: \"message\",\n T: Codec,\n repeated: true\n}, {\n no: 15,\n name: \"fast_publish\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.ReconnectResponse\n */\nconst ReconnectResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.ReconnectResponse\", () => [{\n no: 1,\n name: \"ice_servers\",\n kind: \"message\",\n T: ICEServer,\n repeated: true\n}, {\n no: 2,\n name: \"client_configuration\",\n kind: \"message\",\n T: ClientConfiguration\n}]);\n\n/**\n * @generated from message livekit.TrackPublishedResponse\n */\nconst TrackPublishedResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrackPublishedResponse\", () => [{\n no: 1,\n name: \"cid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"track\",\n kind: \"message\",\n T: TrackInfo\n}]);\n\n/**\n * @generated from message livekit.TrackUnpublishedResponse\n */\nconst TrackUnpublishedResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrackUnpublishedResponse\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.SessionDescription\n */\nconst SessionDescription = /*@__PURE__*/proto3.makeMessageType(\"livekit.SessionDescription\", () => [{\n no: 1,\n name: \"type\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"sdp\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.ParticipantUpdate\n */\nconst ParticipantUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.ParticipantUpdate\", () => [{\n no: 1,\n name: \"participants\",\n kind: \"message\",\n T: ParticipantInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.UpdateSubscription\n */\nconst UpdateSubscription = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateSubscription\", () => [{\n no: 1,\n name: \"track_sids\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 2,\n name: \"subscribe\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 3,\n name: \"participant_tracks\",\n kind: \"message\",\n T: ParticipantTracks,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.UpdateTrackSettings\n */\nconst UpdateTrackSettings = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateTrackSettings\", () => [{\n no: 1,\n name: \"track_sids\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 3,\n name: \"disabled\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 4,\n name: \"quality\",\n kind: \"enum\",\n T: proto3.getEnumType(VideoQuality$1)\n}, {\n no: 5,\n name: \"width\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 6,\n name: \"height\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 7,\n name: \"fps\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 8,\n name: \"priority\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * @generated from message livekit.UpdateLocalAudioTrack\n */\nconst UpdateLocalAudioTrack = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateLocalAudioTrack\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"features\",\n kind: \"enum\",\n T: proto3.getEnumType(AudioTrackFeature),\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.UpdateLocalVideoTrack\n */\nconst UpdateLocalVideoTrack = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateLocalVideoTrack\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"width\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 3,\n name: \"height\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * @generated from message livekit.LeaveRequest\n */\nconst LeaveRequest = /*@__PURE__*/proto3.makeMessageType(\"livekit.LeaveRequest\", () => [{\n no: 1,\n name: \"can_reconnect\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 2,\n name: \"reason\",\n kind: \"enum\",\n T: proto3.getEnumType(DisconnectReason)\n}, {\n no: 3,\n name: \"action\",\n kind: \"enum\",\n T: proto3.getEnumType(LeaveRequest_Action)\n}, {\n no: 4,\n name: \"regions\",\n kind: \"message\",\n T: RegionSettings\n}]);\n\n/**\n * indicates action clients should take on receiving this message\n *\n * @generated from enum livekit.LeaveRequest.Action\n */\nconst LeaveRequest_Action = /*@__PURE__*/proto3.makeEnum(\"livekit.LeaveRequest.Action\", [{\n no: 0,\n name: \"DISCONNECT\"\n}, {\n no: 1,\n name: \"RESUME\"\n}, {\n no: 2,\n name: \"RECONNECT\"\n}]);\n\n/**\n * message to indicate published video track dimensions are changing\n *\n * @generated from message livekit.UpdateVideoLayers\n * @deprecated\n */\nconst UpdateVideoLayers = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateVideoLayers\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"layers\",\n kind: \"message\",\n T: VideoLayer,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.UpdateParticipantMetadata\n */\nconst UpdateParticipantMetadata = /*@__PURE__*/proto3.makeMessageType(\"livekit.UpdateParticipantMetadata\", () => [{\n no: 1,\n name: \"metadata\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"name\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"attributes\",\n kind: \"map\",\n K: 9 /* ScalarType.STRING */,\n V: {\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n }\n}, {\n no: 4,\n name: \"request_id\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}]);\n\n/**\n * @generated from message livekit.ICEServer\n */\nconst ICEServer = /*@__PURE__*/proto3.makeMessageType(\"livekit.ICEServer\", () => [{\n no: 1,\n name: \"urls\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 2,\n name: \"username\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"credential\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.SpeakersChanged\n */\nconst SpeakersChanged = /*@__PURE__*/proto3.makeMessageType(\"livekit.SpeakersChanged\", () => [{\n no: 1,\n name: \"speakers\",\n kind: \"message\",\n T: SpeakerInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.RoomUpdate\n */\nconst RoomUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.RoomUpdate\", () => [{\n no: 1,\n name: \"room\",\n kind: \"message\",\n T: Room$1\n}]);\n\n/**\n * @generated from message livekit.ConnectionQualityInfo\n */\nconst ConnectionQualityInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.ConnectionQualityInfo\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"quality\",\n kind: \"enum\",\n T: proto3.getEnumType(ConnectionQuality$1)\n}, {\n no: 3,\n name: \"score\",\n kind: \"scalar\",\n T: 2 /* ScalarType.FLOAT */\n}]);\n\n/**\n * @generated from message livekit.ConnectionQualityUpdate\n */\nconst ConnectionQualityUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.ConnectionQualityUpdate\", () => [{\n no: 1,\n name: \"updates\",\n kind: \"message\",\n T: ConnectionQualityInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.StreamStateInfo\n */\nconst StreamStateInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.StreamStateInfo\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"state\",\n kind: \"enum\",\n T: proto3.getEnumType(StreamState)\n}]);\n\n/**\n * @generated from message livekit.StreamStateUpdate\n */\nconst StreamStateUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.StreamStateUpdate\", () => [{\n no: 1,\n name: \"stream_states\",\n kind: \"message\",\n T: StreamStateInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.SubscribedQuality\n */\nconst SubscribedQuality = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscribedQuality\", () => [{\n no: 1,\n name: \"quality\",\n kind: \"enum\",\n T: proto3.getEnumType(VideoQuality$1)\n}, {\n no: 2,\n name: \"enabled\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.SubscribedCodec\n */\nconst SubscribedCodec = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscribedCodec\", () => [{\n no: 1,\n name: \"codec\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"qualities\",\n kind: \"message\",\n T: SubscribedQuality,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.SubscribedQualityUpdate\n */\nconst SubscribedQualityUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscribedQualityUpdate\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"subscribed_qualities\",\n kind: \"message\",\n T: SubscribedQuality,\n repeated: true\n}, {\n no: 3,\n name: \"subscribed_codecs\",\n kind: \"message\",\n T: SubscribedCodec,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.TrackPermission\n */\nconst TrackPermission = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrackPermission\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"all_tracks\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 3,\n name: \"track_sids\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}, {\n no: 4,\n name: \"participant_identity\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from message livekit.SubscriptionPermission\n */\nconst SubscriptionPermission = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscriptionPermission\", () => [{\n no: 1,\n name: \"all_participants\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}, {\n no: 2,\n name: \"track_permissions\",\n kind: \"message\",\n T: TrackPermission,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.SubscriptionPermissionUpdate\n */\nconst SubscriptionPermissionUpdate = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscriptionPermissionUpdate\", () => [{\n no: 1,\n name: \"participant_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"allowed\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */\n}]);\n\n/**\n * @generated from message livekit.SyncState\n */\nconst SyncState = /*@__PURE__*/proto3.makeMessageType(\"livekit.SyncState\", () => [{\n no: 1,\n name: \"answer\",\n kind: \"message\",\n T: SessionDescription\n}, {\n no: 2,\n name: \"subscription\",\n kind: \"message\",\n T: UpdateSubscription\n}, {\n no: 3,\n name: \"publish_tracks\",\n kind: \"message\",\n T: TrackPublishedResponse,\n repeated: true\n}, {\n no: 4,\n name: \"data_channels\",\n kind: \"message\",\n T: DataChannelInfo,\n repeated: true\n}, {\n no: 5,\n name: \"offer\",\n kind: \"message\",\n T: SessionDescription\n}, {\n no: 6,\n name: \"track_sids_disabled\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.DataChannelInfo\n */\nconst DataChannelInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.DataChannelInfo\", () => [{\n no: 1,\n name: \"label\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"id\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 3,\n name: \"target\",\n kind: \"enum\",\n T: proto3.getEnumType(SignalTarget)\n}]);\n\n/**\n * @generated from message livekit.SimulateScenario\n */\nconst SimulateScenario = /*@__PURE__*/proto3.makeMessageType(\"livekit.SimulateScenario\", () => [{\n no: 1,\n name: \"speaker_update\",\n kind: \"scalar\",\n T: 5 /* ScalarType.INT32 */,\n oneof: \"scenario\"\n}, {\n no: 2,\n name: \"node_failure\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}, {\n no: 3,\n name: \"migration\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}, {\n no: 4,\n name: \"server_leave\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}, {\n no: 5,\n name: \"switch_candidate_protocol\",\n kind: \"enum\",\n T: proto3.getEnumType(CandidateProtocol),\n oneof: \"scenario\"\n}, {\n no: 6,\n name: \"subscriber_bandwidth\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */,\n oneof: \"scenario\"\n}, {\n no: 7,\n name: \"disconnect_signal_on_resume\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}, {\n no: 8,\n name: \"disconnect_signal_on_resume_no_messages\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}, {\n no: 9,\n name: \"leave_request_full_reconnect\",\n kind: \"scalar\",\n T: 8 /* ScalarType.BOOL */,\n oneof: \"scenario\"\n}]);\n\n/**\n * @generated from message livekit.Ping\n */\nconst Ping = /*@__PURE__*/proto3.makeMessageType(\"livekit.Ping\", () => [{\n no: 1,\n name: \"timestamp\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"rtt\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}]);\n\n/**\n * @generated from message livekit.Pong\n */\nconst Pong = /*@__PURE__*/proto3.makeMessageType(\"livekit.Pong\", () => [{\n no: 1,\n name: \"last_ping_timestamp\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}, {\n no: 2,\n name: \"timestamp\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}]);\n\n/**\n * @generated from message livekit.RegionSettings\n */\nconst RegionSettings = /*@__PURE__*/proto3.makeMessageType(\"livekit.RegionSettings\", () => [{\n no: 1,\n name: \"regions\",\n kind: \"message\",\n T: RegionInfo,\n repeated: true\n}]);\n\n/**\n * @generated from message livekit.RegionInfo\n */\nconst RegionInfo = /*@__PURE__*/proto3.makeMessageType(\"livekit.RegionInfo\", () => [{\n no: 1,\n name: \"region\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"url\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 3,\n name: \"distance\",\n kind: \"scalar\",\n T: 3 /* ScalarType.INT64 */\n}]);\n\n/**\n * @generated from message livekit.SubscriptionResponse\n */\nconst SubscriptionResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.SubscriptionResponse\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}, {\n no: 2,\n name: \"err\",\n kind: \"enum\",\n T: proto3.getEnumType(SubscriptionError)\n}]);\n\n/**\n * @generated from message livekit.RequestResponse\n */\nconst RequestResponse = /*@__PURE__*/proto3.makeMessageType(\"livekit.RequestResponse\", () => [{\n no: 1,\n name: \"request_id\",\n kind: \"scalar\",\n T: 13 /* ScalarType.UINT32 */\n}, {\n no: 2,\n name: \"reason\",\n kind: \"enum\",\n T: proto3.getEnumType(RequestResponse_Reason)\n}, {\n no: 3,\n name: \"message\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\n/**\n * @generated from enum livekit.RequestResponse.Reason\n */\nconst RequestResponse_Reason = /*@__PURE__*/proto3.makeEnum(\"livekit.RequestResponse.Reason\", [{\n no: 0,\n name: \"OK\"\n}, {\n no: 1,\n name: \"NOT_FOUND\"\n}, {\n no: 2,\n name: \"NOT_ALLOWED\"\n}, {\n no: 3,\n name: \"LIMIT_EXCEEDED\"\n}]);\n\n/**\n * @generated from message livekit.TrackSubscribed\n */\nconst TrackSubscribed = /*@__PURE__*/proto3.makeMessageType(\"livekit.TrackSubscribed\", () => [{\n no: 1,\n name: \"track_sid\",\n kind: \"scalar\",\n T: 9 /* ScalarType.STRING */\n}]);\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar loglevel$1 = {exports: {}};\n\n/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\nvar loglevel = loglevel$1.exports;\nvar hasRequiredLoglevel;\nfunction requireLoglevel() {\n if (hasRequiredLoglevel) return loglevel$1.exports;\n hasRequiredLoglevel = 1;\n (function (module) {\n (function (root, definition) {\n\n if (module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n })(loglevel, function () {\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function () {};\n var undefinedType = \"undefined\";\n var isIE = typeof window !== undefinedType && typeof window.navigator !== undefinedType && /Trident\\/|MSIE /.test(window.navigator.userAgent);\n var logMethods = [\"trace\", \"debug\", \"info\", \"warn\", \"error\"];\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function () {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = i < level ? noop : this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n function getPersistedLevel() {\n var storedLevel;\n if (typeof window === undefinedType || !storageKey) return;\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location + cookieName.length + 1))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n return storedLevel;\n }\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n self.levels = {\n \"TRACE\": 0,\n \"DEBUG\": 1,\n \"INFO\": 2,\n \"WARN\": 3,\n \"ERROR\": 4,\n \"SILENT\": 5\n };\n self.methodFactory = factory || defaultMethodFactory;\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) {\n // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n self.enableAll = function (persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n self.disableAll = function (persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(defaultLogger ? defaultLogger.getLevel() : \"WARN\");\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"symbol\" && typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(name, defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = typeof window !== undefinedType ? window.log : undefined;\n defaultLogger.noConflict = function () {\n if (typeof window !== undefinedType && window.log === defaultLogger) {\n window.log = _log;\n }\n return defaultLogger;\n };\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n return defaultLogger;\n });\n })(loglevel$1);\n return loglevel$1.exports;\n}\n\nvar loglevelExports = requireLoglevel();\n\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"trace\"] = 0] = \"trace\";\n LogLevel[LogLevel[\"debug\"] = 1] = \"debug\";\n LogLevel[LogLevel[\"info\"] = 2] = \"info\";\n LogLevel[LogLevel[\"warn\"] = 3] = \"warn\";\n LogLevel[LogLevel[\"error\"] = 4] = \"error\";\n LogLevel[LogLevel[\"silent\"] = 5] = \"silent\";\n})(LogLevel || (LogLevel = {}));\nvar LoggerNames;\n(function (LoggerNames) {\n LoggerNames[\"Default\"] = \"livekit\";\n LoggerNames[\"Room\"] = \"livekit-room\";\n LoggerNames[\"Participant\"] = \"livekit-participant\";\n LoggerNames[\"Track\"] = \"livekit-track\";\n LoggerNames[\"Publication\"] = \"livekit-track-publication\";\n LoggerNames[\"Engine\"] = \"livekit-engine\";\n LoggerNames[\"Signal\"] = \"livekit-signal\";\n LoggerNames[\"PCManager\"] = \"livekit-pc-manager\";\n LoggerNames[\"PCTransport\"] = \"livekit-pc-transport\";\n LoggerNames[\"E2EE\"] = \"lk-e2ee\";\n})(LoggerNames || (LoggerNames = {}));\nlet livekitLogger = loglevelExports.getLogger('livekit');\nconst livekitLoggers = Object.values(LoggerNames).map(name => loglevelExports.getLogger(name));\nlivekitLogger.setDefaultLevel(LogLevel.info);\n/**\n * @internal\n */\nfunction getLogger(name) {\n const logger = loglevelExports.getLogger(name);\n logger.setDefaultLevel(livekitLogger.getLevel());\n return logger;\n}\nfunction setLogLevel(level, loggerName) {\n if (loggerName) {\n loglevelExports.getLogger(loggerName).setLevel(level);\n } else {\n for (const logger of livekitLoggers) {\n logger.setLevel(level);\n }\n }\n}\n/**\n * use this to hook into the logging function to allow sending internal livekit logs to third party services\n * if set, the browser logs will lose their stacktrace information (see https://github.com/pimterry/loglevel#writing-plugins)\n */\nfunction setLogExtension(extension, logger) {\n const loggers = logger ? [logger] : livekitLoggers;\n loggers.forEach(logR => {\n const originalFactory = logR.methodFactory;\n logR.methodFactory = (methodName, configLevel, loggerName) => {\n const rawMethod = originalFactory(methodName, configLevel, loggerName);\n const logLevel = LogLevel[methodName];\n const needLog = logLevel >= configLevel && logLevel < LogLevel.silent;\n return (msg, context) => {\n if (context) rawMethod(msg, context);else rawMethod(msg);\n if (needLog) {\n extension(logLevel, msg, context);\n }\n };\n };\n logR.setLevel(logR.getLevel());\n });\n}\nconst workerLogger = loglevelExports.getLogger('lk-e2ee');\n\nconst maxRetryDelay = 7000;\nconst DEFAULT_RETRY_DELAYS_IN_MS = [0, 300, 2 * 2 * 300, 3 * 3 * 300, 4 * 4 * 300, maxRetryDelay, maxRetryDelay, maxRetryDelay, maxRetryDelay, maxRetryDelay];\nclass DefaultReconnectPolicy {\n constructor(retryDelays) {\n this._retryDelays = retryDelays !== undefined ? [...retryDelays] : DEFAULT_RETRY_DELAYS_IN_MS;\n }\n nextRetryDelayInMs(context) {\n if (context.retryCount >= this._retryDelays.length) return null;\n const retryDelay = this._retryDelays[context.retryCount];\n if (context.retryCount <= 1) return retryDelay;\n return retryDelay + Math.random() * 1000;\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __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\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar events = {exports: {}};\n\nvar hasRequiredEvents;\nfunction requireEvents() {\n if (hasRequiredEvents) return events.exports;\n hasRequiredEvents = 1;\n var R = typeof Reflect === 'object' ? Reflect : null;\n var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n events.exports = EventEmitter;\n events.exports.once = once;\n\n // Backwards-compat with node 0.10.x\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = undefined;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = undefined;\n\n // By default EventEmitters will print a warning if more than 10 listeners are\n // added to it. This is a useful default which helps finding memory leaks.\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function () {\n return defaultMaxListeners;\n },\n set: function (arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || undefined;\n };\n\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n var handler = events[type];\n if (handler === undefined) return false;\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n // Emits a 'removeListener' event if and only if the listener was removed.\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== undefined) {\n var evlistener = events[type];\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i) copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++) list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n }\n return events.exports;\n}\n\nvar eventsExports = requireEvents();\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nfunction extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nfunction wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = e => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName, wrappedCallback]);\n };\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName, unwrappedCb]);\n };\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap, this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap, this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\nfunction disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool + '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return bool ? 'adapter.js logging disabled' : 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nfunction disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool + '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\nfunction log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nfunction deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod + ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nfunction detectBrowser(window) {\n // Returned result object.\n const result = {\n browser: null,\n version: null\n };\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator || !window.navigator.userAgent) {\n result.browser = 'Not a browser.';\n return result;\n }\n const {\n navigator\n } = window;\n\n // Prefer navigator.userAgentData.\n if (navigator.userAgentData && navigator.userAgentData.brands) {\n const chromium = navigator.userAgentData.brands.find(brand => {\n return brand.brand === 'Chromium';\n });\n if (chromium) {\n return {\n browser: 'chrome',\n version: parseInt(chromium.version, 10)\n };\n }\n }\n if (navigator.mozGetUserMedia) {\n // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent, /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent, /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection && navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) {\n // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent, /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver && 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else {\n // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nfunction compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n return Object.keys(data).reduce(function (accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {\n [key]: value\n });\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nfunction walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nfunction filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' && value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\nconst logging = log;\nfunction shimGetUserMedia$2(window, browserDetails) {\n const navigator = window && window.navigator;\n if (!navigator.mediaDevices) {\n return;\n }\n const constraintsToChrome_ = function (c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = typeof c[key] === 'object' ? c[key] : {\n ideal: c[key]\n };\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function (prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return name === 'deviceId' ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n const shimConstraints_ = function (constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && (typeof face === 'object' ? face : {\n ideal: face\n });\n const getSupportedFacingModeLies = browserDetails.version < 66;\n if (face && (face.exact === 'user' || face.exact === 'environment' || face.ideal === 'user' || face.ideal === 'environment') && !(navigator.mediaDevices.getSupportedConstraints && navigator.mediaDevices.getSupportedConstraints().facingMode && !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices().then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match => d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {\n exact: dev.deviceId\n } : {\n ideal: dev.deviceId\n };\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n const shimError_ = function (e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n const getUserMedia_ = function (constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function (cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length || c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\nfunction shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\nfunction shimOnTrack$1(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = e => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {\n track: te.track\n };\n }\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {\n receiver\n };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {\n track\n };\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {\n receiver\n };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver', {\n value: {\n receiver: e.receiver\n }\n });\n }\n return e;\n });\n }\n}\nfunction shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection && !('getSenders' in window.RTCPeerConnection.prototype) && 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function (pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) {\n // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection && 'getSenders' in window.RTCPeerConnection.prototype && 'createDTMFSender' in window.RTCPeerConnection.prototype && window.RTCRtpSender && !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\nfunction shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection && window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result => filterStats(result, receiver.track, false));\n };\n }\n if (!('getStats' in window.RTCRtpSender.prototype && 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 && arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || sender && receiver) {\n return Promise.reject(new DOMException('There are more than one sender or receiver for the track.', 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException('There is no sender or receiver for the track.', 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\nfunction shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams).map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.', 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders().filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\nfunction shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack && browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype.getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.', 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n origRemoveStream.apply(this, [this._streams[stream.id] || stream]);\n delete this._reverseStreams[this._streams[stream.id] ? this._streams[stream.id].id : stream.id];\n delete this._streams[stream.id];\n };\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException('The RTCPeerConnection\\'s signalingState is \\'closed\\'.', 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 || !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException('The adapter.js addTrack polyfill only supports a single ' + ' stream which is associated with the specified track.', 'NotSupportedError');\n }\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.', 'InvalidAccessError');\n }\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'), externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'), internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n const args = arguments;\n const isLegacyCall = arguments.length && typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [description => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n }, err => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]]);\n }\n return nativeMethod.apply(this, arguments).then(description => replaceInternalStreamId(this, description));\n }\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n const origSetLocalDescription = window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription = function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype, 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException('The RTCPeerConnection\\'s signalingState is \\'closed\\'.', 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' + 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.', 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks().find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\nfunction shimPeerConnection$1(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'].forEach(function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (method === 'addIceCandidate' ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nfunction fixNegotiationNeeded(window, browserDetails) {\n wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || pc.getConfiguration && pc.getConfiguration().sdpSemantics === 'plan-b') {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n\nvar chromeShim = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixNegotiationNeeded: fixNegotiationNeeded,\n shimAddTrackRemoveTrack: shimAddTrackRemoveTrack,\n shimAddTrackRemoveTrackWithNative: shimAddTrackRemoveTrackWithNative,\n shimGetSendersWithDtmf: shimGetSendersWithDtmf,\n shimGetUserMedia: shimGetUserMedia$2,\n shimMediaStream: shimMediaStream,\n shimOnTrack: shimOnTrack$1,\n shimPeerConnection: shimPeerConnection$1,\n shimSenderReceiverGetStats: shimSenderReceiverGetStats\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\nfunction shimGetUserMedia$1(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n navigator.getUserMedia = function (constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n deprecated('navigator.getUserMedia', 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n if (!(browserDetails.version > 55 && 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function (c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function () {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints = MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function (c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\nfunction shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices && 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' + 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {\n mediaSource: preferredMediaSource\n };\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\nfunction shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent && 'receiver' in window.RTCTrackEvent.prototype && !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {\n receiver: this.receiver\n };\n }\n });\n }\n}\nfunction shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' || !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'].forEach(function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (method === 'addIceCandidate' ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null]).then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n }).then(onSucc, onErr);\n };\n}\nfunction shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection && window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) : Promise.resolve(new Map());\n };\n}\nfunction shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection && window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\nfunction shimRemoveStream(window) {\n if (!window.RTCPeerConnection || 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\nfunction shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\nfunction shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver = function addTransceiver() {\n this.setParametersPromises = [];\n // WebIDL input coercion and validation\n let sendEncodings = arguments[1] && arguments[1].sendEncodings;\n if (sendEncodings === undefined) {\n sendEncodings = [];\n }\n sendEncodings = [...sendEncodings];\n const shouldPerformCheck = sendEncodings.length > 0;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n sendEncodings.forEach(encodingParam => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {\n sender\n } = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n params.encodings.length === 1 && Object.keys(params.encodings[0]).length === 0) {\n params.encodings = sendEncodings;\n sender.sendEncodings = sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params).then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n }));\n }\n }\n return transceiver;\n };\n }\n}\nfunction shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters = function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\nfunction shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises).then(() => {\n return origCreateOffer.apply(this, arguments);\n }).finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\nfunction shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises).then(() => {\n return origCreateAnswer.apply(this, arguments);\n }).finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n\nvar firefoxShim = /*#__PURE__*/Object.freeze({\n __proto__: null,\n shimAddTransceiver: shimAddTransceiver,\n shimCreateAnswer: shimCreateAnswer,\n shimCreateOffer: shimCreateOffer,\n shimGetDisplayMedia: shimGetDisplayMedia,\n shimGetParameters: shimGetParameters,\n shimGetUserMedia: shimGetUserMedia$1,\n shimOnTrack: shimOnTrack,\n shimPeerConnection: shimPeerConnection,\n shimRTCDataChannel: shimRTCDataChannel,\n shimReceiverGetStats: shimReceiverGetStats,\n shimRemoveStream: shimRemoveStream,\n shimSenderGetStats: shimSenderGetStats\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nfunction shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track, stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track, stream));\n };\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track) {\n for (var _len = arguments.length, streams = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n streams[_key - 1] = arguments[_key];\n }\n if (streams) {\n streams.forEach(stream => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\nfunction shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams = function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = e => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function (e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\nfunction shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n prototype.createOffer = function createOffer(successCallback, failureCallback) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.createAnswer = function createAnswer(successCallback, failureCallback) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n let withCallback = function (description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n withCallback = function (description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n withCallback = function (candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\nfunction shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = constraints => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n if (!navigator.getUserMedia && navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints).then(cb, errcb);\n }.bind(navigator);\n }\n}\nfunction shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({}, constraints, {\n video: compactObject(constraints.video)\n });\n }\n return constraints;\n}\nfunction shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection = function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (server.urls === undefined && server.url) {\n deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\nfunction shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent && 'receiver' in window.RTCTrackEvent.prototype && !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {\n receiver: this.receiver\n };\n }\n });\n }\n}\nfunction shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio = !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver => transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true && !audioTransceiver) {\n this.addTransceiver('audio', {\n direction: 'recvonly'\n });\n }\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo = !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver => transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true && !videoTransceiver) {\n this.addTransceiver('video', {\n direction: 'recvonly'\n });\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\nfunction shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\nvar safariShim = /*#__PURE__*/Object.freeze({\n __proto__: null,\n shimAudioContext: shimAudioContext,\n shimCallbacksAPI: shimCallbacksAPI,\n shimConstraints: shimConstraints,\n shimCreateOfferLegacy: shimCreateOfferLegacy,\n shimGetUserMedia: shimGetUserMedia,\n shimLocalStreamsAPI: shimLocalStreamsAPI,\n shimRTCIceServerUrls: shimRTCIceServerUrls,\n shimRemoteStreamsAPI: shimRemoteStreamsAPI,\n shimTrackEventTransceiver: shimTrackEventTransceiver\n});\n\nvar sdp$1 = {exports: {}};\n\n/* eslint-env node */\nvar hasRequiredSdp;\nfunction requireSdp() {\n if (hasRequiredSdp) return sdp$1.exports;\n hasRequiredSdp = 1;\n (function (module) {\n\n // SDP helpers.\n const SDPUtils = {};\n\n // Generate an alphanumeric identifier for cname or mids.\n // TODO: use UUIDs instead? https://gist.github.com/jed/982883\n SDPUtils.generateIdentifier = function () {\n return Math.random().toString(36).substring(2, 12);\n };\n\n // The RTCP CNAME used by all peerconnections from the same JS.\n SDPUtils.localCName = SDPUtils.generateIdentifier();\n\n // Splits SDP into lines, dealing with both CRLF and LF.\n SDPUtils.splitLines = function (blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n };\n // Splits SDP into sessionpart and mediasections. Ensures CRLF.\n SDPUtils.splitSections = function (blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ? 'm=' + part : part).trim() + '\\r\\n');\n };\n\n // Returns the session description.\n SDPUtils.getDescription = function (blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n };\n\n // Returns the individual media sections.\n SDPUtils.getMediaSections = function (blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n };\n\n // Returns lines that start with a certain prefix.\n SDPUtils.matchPrefix = function (blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n };\n\n // Parses an ICE candidate line. Sample input:\n // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n // rport 55996\"\n // Input can be prefixed with a=.\n SDPUtils.parseCandidate = function (line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n const candidate = {\n foundation: parts[0],\n component: {\n 1: 'rtp',\n 2: 'rtcp'\n }[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4],\n // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7]\n };\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default:\n // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n };\n\n // Translates a candidate object into SDP candidate attribute.\n // This does not include the a= prefix!\n SDPUtils.writeCandidate = function (candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress && candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n };\n\n // Parses an ice-options line, returns an array of option tags.\n // Sample input:\n // a=ice-options:foo bar\n SDPUtils.parseIceOptions = function (line) {\n return line.substring(14).split(' ');\n };\n\n // Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n // a=rtpmap:111 opus/48000/2\n SDPUtils.parseRtpMap = function (line) {\n let parts = line.substring(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10) // was: id\n };\n parts = parts[0].split('/');\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n };\n\n // Generates a rtpmap line from RTCRtpCodecCapability or\n // RTCRtpCodecParameters.\n SDPUtils.writeRtpMap = function (codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate + (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n };\n\n // Parses a extmap line (headerextension from RFC 5285). Sample input:\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n // a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\n SDPUtils.parseExtmap = function (line) {\n const parts = line.substring(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n attributes: parts.slice(2).join(' ')\n };\n };\n\n // Generates an extmap line from RTCRtpHeaderExtensionParameters or\n // RTCRtpHeaderExtension.\n SDPUtils.writeExtmap = function (headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) + (headerExtension.direction && headerExtension.direction !== 'sendrecv' ? '/' + headerExtension.direction : '') + ' ' + headerExtension.uri + (headerExtension.attributes ? ' ' + headerExtension.attributes : '') + '\\r\\n';\n };\n\n // Parses a fmtp line, returns dictionary. Sample input:\n // a=fmtp:96 vbr=on;cng=on\n // Also deals with vbr=on; cng=on\n SDPUtils.parseFmtp = function (line) {\n const parsed = {};\n let kv;\n const parts = line.substring(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n };\n\n // Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeFmtp = function (codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n };\n\n // Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n // a=rtcp-fb:98 nack rpsi\n SDPUtils.parseRtcpFb = function (line) {\n const parts = line.substring(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' ')\n };\n };\n\n // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeRtcpFb = function (codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type + (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') + '\\r\\n';\n });\n }\n return lines;\n };\n\n // Parses a RFC 5576 ssrc media attribute. Sample input:\n // a=ssrc:3735928559 cname:something\n SDPUtils.parseSsrcMedia = function (line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substring(7, sp), 10)\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substring(sp + 1, colon);\n parts.value = line.substring(colon + 1);\n } else {\n parts.attribute = line.substring(sp + 1);\n }\n return parts;\n };\n\n // Parse a ssrc-group line (see RFC 5576). Sample input:\n // a=ssrc-group:semantics 12 34\n SDPUtils.parseSsrcGroup = function (line) {\n const parts = line.substring(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10))\n };\n };\n\n // Extracts the MID (RFC 5888) from a media section.\n // Returns the MID or undefined if no mid line was found.\n SDPUtils.getMid = function (mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substring(6);\n }\n };\n\n // Parses a fingerprint line for DTLS-SRTP.\n SDPUtils.parseFingerprint = function (line) {\n const parts = line.substring(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(),\n // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase() // the definition is upper-case in RFC 4572.\n };\n };\n\n // Extracts DTLS parameters from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the fingerprint line as input. See also getIceParameters.\n SDPUtils.getDtlsParameters = function (mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart, 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint)\n };\n };\n\n // Serializes DTLS parameters to SDP.\n SDPUtils.writeDtlsParameters = function (params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n };\n\n // Parses a=crypto lines into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\n SDPUtils.parseCryptoLine = function (line) {\n const parts = line.substring(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3)\n };\n };\n SDPUtils.writeCryptoLine = function (parameters) {\n return 'a=crypto:' + parameters.tag + ' ' + parameters.cryptoSuite + ' ' + (typeof parameters.keyParams === 'object' ? SDPUtils.writeCryptoKeyParams(parameters.keyParams) : parameters.keyParams) + (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') + '\\r\\n';\n };\n\n // Parses the crypto key parameters into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\n SDPUtils.parseCryptoKeyParams = function (keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substring(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined\n };\n };\n SDPUtils.writeCryptoKeyParams = function (keyParams) {\n return keyParams.keyMethod + ':' + keyParams.keySalt + (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') + (keyParams.mkiValue && keyParams.mkiLength ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength : '');\n };\n\n // Extracts all SDES parameters.\n SDPUtils.getCryptoParameters = function (mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart, 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n };\n\n // Parses ICE information from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the ice-ufrag and ice-pwd lines as input.\n SDPUtils.getIceParameters = function (mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart, 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart, 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substring(12),\n password: pwd.substring(10)\n };\n };\n\n // Serializes ICE parameters to SDP.\n SDPUtils.writeIceParameters = function (params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' + 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n };\n\n // Parses the SDP media section and returns RTCRtpParameters.\n SDPUtils.parseRtpParameters = function (mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: []\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n description.profile = mline[2];\n for (let i = 3; i < mline.length; i++) {\n // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-fb:' + pt + ' ').map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n const wildcardRtcpFb = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-fb:* ').map(SDPUtils.parseRtcpFb);\n description.codecs.forEach(codec => {\n wildcardRtcpFb.forEach(fb => {\n const duplicate = codec.rtcpFeedback.find(existingFeedback => {\n return existingFeedback.type === fb.type && existingFeedback.parameter === fb.parameter;\n });\n if (!duplicate) {\n codec.rtcpFeedback.push(fb);\n }\n });\n });\n // FIXME: parse rtcp.\n return description;\n };\n\n // Generates parts of the SDP media section describing the capabilities /\n // parameters.\n SDPUtils.writeRtpDescription = function (kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' ' + (caps.profile || 'UDP/TLS/RTP/SAVPF') + ' ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n };\n\n // Parses the SDP media section and returns an array of\n // RTCRtpEncodingParameters.\n SDPUtils.parseRtpEncodingParameters = function (mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:').map(line => SDPUtils.parseSsrcMedia(line)).filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID').map(line => {\n const parts = line.substring(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10)\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {\n ssrc: secondarySsrc\n };\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red'\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substring(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substring(5), 10) * 1000 * 0.95 - 50 * 40 * 8;\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n };\n\n // parses http://draft.ortc.org/#rtcrtcpparameters*\n SDPUtils.parseRtcpParameters = function (mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:').map(line => SDPUtils.parseSsrcMedia(line)).filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n return rtcpParameters;\n };\n SDPUtils.writeRtcpParameters = function (rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc + ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n };\n\n // parses either a=msid: or a=ssrc:... msid lines and returns\n // the id of the MediaStream and MediaStreamTrack.\n SDPUtils.parseMsid = function (mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substring(7).split(' ');\n return {\n stream: parts[0],\n track: parts[1]\n };\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:').map(line => SDPUtils.parseSsrcMedia(line)).filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {\n stream: parts[0],\n track: parts[1]\n };\n }\n };\n\n // SCTP\n // parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n // to draft-ietf-mmusic-sctp-sdp-05\n SDPUtils.parseSctpDescription = function (mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substring(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substring(12), 10),\n protocol: mline.fmt,\n maxMessageSize\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0].substring(10).split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize\n };\n }\n };\n\n // SCTP\n // outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n // support by now receiving in this format, unless we originally parsed\n // as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n // protocol of DTLS/SCTP -- without UDP/ or TCP/)\n SDPUtils.writeSctpDescription = function (media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = ['m=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n', 'c=IN IP4 0.0.0.0\\r\\n', 'a=sctp-port:' + sctp.port + '\\r\\n'];\n } else {\n output = ['m=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n', 'c=IN IP4 0.0.0.0\\r\\n', 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n'];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n };\n\n // Generate a session ID for SDP.\n // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n // recommends using a cryptographically random +ve 64-bit value\n // but right now this should be acceptable and within the right range\n SDPUtils.generateSessionId = function () {\n return Math.random().toString().substr(2, 22);\n };\n\n // Write boiler plate for start of SDP\n // sessId argument is optional - if not supplied it will\n // be generated randomly\n // sessVersion is optional and defaults to 2\n // sessUser is optional and defaults to 'thisisadapterortc'\n SDPUtils.writeSessionBoilerplate = function (sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' + 'o=' + user + ' ' + sessionId + ' ' + version + ' IN IP4 127.0.0.1\\r\\n' + 's=-\\r\\n' + 't=0 0\\r\\n';\n };\n\n // Gets the direction from the mediaSection or the sessionpart.\n SDPUtils.getDirection = function (mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substring(2);\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n };\n SDPUtils.getKind = function (mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substring(2);\n };\n SDPUtils.isRejected = function (mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n };\n SDPUtils.parseMLine = function (mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substring(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' ')\n };\n };\n SDPUtils.parseOLine = function (mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substring(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5]\n };\n };\n\n // a very naive interpretation of a valid SDP.\n SDPUtils.isValidSDP = function (blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n };\n\n // Expose public methods.\n {\n module.exports = SDPUtils;\n }\n })(sdp$1);\n return sdp$1.exports;\n}\n\nvar sdpExports = requireSdp();\nvar SDPUtils = /*@__PURE__*/getDefaultExportFromCjs(sdpExports);\n\nvar sdp = /*#__PURE__*/_mergeNamespaces({\n __proto__: null,\n default: SDPUtils\n}, [sdpExports]);\n\n/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\nfunction shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || window.RTCIceCandidate && 'foundation' in window.RTCIceCandidate.prototype) {\n return;\n }\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate && args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substring(2);\n }\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n for (const key in parsedCandidate) {\n if (!(key in nativeCandidate)) {\n Object.defineProperty(nativeCandidate, key, {\n value: parsedCandidate[key]\n });\n }\n }\n\n // Override serializer to not serialize the extra attributes.\n nativeCandidate.toJSON = function toJSON() {\n return {\n candidate: nativeCandidate.candidate,\n sdpMid: nativeCandidate.sdpMid,\n sdpMLineIndex: nativeCandidate.sdpMLineIndex,\n usernameFragment: nativeCandidate.usernameFragment\n };\n };\n return nativeCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\nfunction shimRTCIceCandidateRelayProtocol(window) {\n if (!window.RTCIceCandidate || window.RTCIceCandidate && 'relayProtocol' in window.RTCIceCandidate.prototype) {\n return;\n }\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n const parsedCandidate = SDPUtils.parseCandidate(e.candidate.candidate);\n if (parsedCandidate.type === 'relay') {\n // This is a libwebrtc-specific mapping of local type preference\n // to relayProtocol.\n e.candidate.relayProtocol = {\n 0: 'tls',\n 1: 'tcp',\n 2: 'udp'\n }[parsedCandidate.priority >> 24];\n }\n }\n return e;\n });\n}\nfunction shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n const sctpInDescription = function (description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application' && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n const getRemoteFirefoxVersion = function (description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n const getCanSendMaxMessageSize = function (remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize = browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n const getMaxMessageSize = function (description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox' && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n const match = SDPUtils.matchPrefix(description.sdp, 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substring(19), 10);\n } else if (browserDetails.browser === 'firefox' && remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n const origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {\n sdpSemantics\n } = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\nfunction shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection && 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' && pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' + pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel = window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel = function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nfunction shimConnectionState(window) {\n if (!window.RTCPeerConnection || 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange', this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange', this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n ['setLocalDescription', 'setRemoteDescription'].forEach(method => {\n const origMethod = proto[method];\n proto[method] = function () {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange', this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\nfunction removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter(line => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription && desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\nfunction shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate = window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate = function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if ((browserDetails.browser === 'chrome' && browserDetails.version < 78 || browserDetails.browser === 'firefox' && browserDetails.version < 68 || browserDetails.browser === 'safari') && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nfunction shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription = window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription = function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || desc.type && desc.sdp) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {\n type: desc.type,\n sdp: desc.sdp\n };\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || desc.type !== 'offer' && desc.type !== 'answer') {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this).then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n\nvar commonShim = /*#__PURE__*/Object.freeze({\n __proto__: null,\n removeExtmapAllowMixed: removeExtmapAllowMixed,\n shimAddIceCandidateNullOrEmpty: shimAddIceCandidateNullOrEmpty,\n shimConnectionState: shimConnectionState,\n shimMaxMessageSize: shimMaxMessageSize,\n shimParameterlessSetLocalDescription: shimParameterlessSetLocalDescription,\n shimRTCIceCandidate: shimRTCIceCandidate,\n shimRTCIceCandidateRelayProtocol: shimRTCIceCandidateRelayProtocol,\n shimSendThrowTypeError: shimSendThrowTypeError\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\n// Shimming starts here.\nfunction adapterFactory() {\n let {\n window\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true\n };\n // Utils.\n const logging = log;\n const browserDetails = detectBrowser(window);\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: extractVersion,\n disableLog: disableLog,\n disableWarnings: disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !shimPeerConnection$1 || !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n shimParameterlessSetLocalDescription(window);\n shimGetUserMedia$2(window, browserDetails);\n shimMediaStream(window);\n shimPeerConnection$1(window, browserDetails);\n shimOnTrack$1(window);\n shimAddTrackRemoveTrack(window, browserDetails);\n shimGetSendersWithDtmf(window);\n shimSenderReceiverGetStats(window);\n fixNegotiationNeeded(window, browserDetails);\n shimRTCIceCandidate(window);\n shimRTCIceCandidateRelayProtocol(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !shimPeerConnection || !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n shimParameterlessSetLocalDescription(window);\n shimGetUserMedia$1(window, browserDetails);\n shimPeerConnection(window, browserDetails);\n shimOnTrack(window);\n shimRemoveStream(window);\n shimSenderGetStats(window);\n shimReceiverGetStats(window);\n shimRTCDataChannel(window);\n shimAddTransceiver(window);\n shimGetParameters(window);\n shimCreateOffer(window);\n shimCreateAnswer(window);\n shimRTCIceCandidate(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n shimParameterlessSetLocalDescription(window);\n shimRTCIceServerUrls(window);\n shimCreateOfferLegacy(window);\n shimCallbacksAPI(window);\n shimLocalStreamsAPI(window);\n shimRemoteStreamsAPI(window);\n shimTrackEventTransceiver(window);\n shimGetUserMedia(window);\n shimAudioContext(window);\n shimRTCIceCandidate(window);\n shimRTCIceCandidateRelayProtocol(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n return adapter;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\nadapterFactory({\n window: typeof window === 'undefined' ? undefined : window\n});\n\nconst ENCRYPTION_ALGORITHM = 'AES-GCM';\n// How many consecutive frames can fail decrypting before a particular key gets marked as invalid\nconst DECRYPTION_FAILURE_TOLERANCE = 10;\n// flag set to indicate that e2ee has been setup for sender/receiver;\nconst E2EE_FLAG = 'lk_e2ee';\nconst SALT = 'LKFrameEncryptionKey';\nconst KEY_PROVIDER_DEFAULTS = {\n sharedKey: false,\n ratchetSalt: SALT,\n ratchetWindowSize: 8,\n failureTolerance: DECRYPTION_FAILURE_TOLERANCE,\n keyringSize: 16\n};\n\nvar KeyProviderEvent;\n(function (KeyProviderEvent) {\n KeyProviderEvent[\"SetKey\"] = \"setKey\";\n KeyProviderEvent[\"RatchetRequest\"] = \"ratchetRequest\";\n KeyProviderEvent[\"KeyRatcheted\"] = \"keyRatcheted\";\n})(KeyProviderEvent || (KeyProviderEvent = {}));\nvar KeyHandlerEvent;\n(function (KeyHandlerEvent) {\n KeyHandlerEvent[\"KeyRatcheted\"] = \"keyRatcheted\";\n})(KeyHandlerEvent || (KeyHandlerEvent = {}));\nvar EncryptionEvent;\n(function (EncryptionEvent) {\n EncryptionEvent[\"ParticipantEncryptionStatusChanged\"] = \"participantEncryptionStatusChanged\";\n EncryptionEvent[\"EncryptionError\"] = \"encryptionError\";\n})(EncryptionEvent || (EncryptionEvent = {}));\nvar CryptorEvent;\n(function (CryptorEvent) {\n CryptorEvent[\"Error\"] = \"cryptorError\";\n})(CryptorEvent || (CryptorEvent = {}));\n\nfunction isE2EESupported() {\n return isInsertableStreamSupported() || isScriptTransformSupported();\n}\nfunction isScriptTransformSupported() {\n // @ts-ignore\n return typeof window.RTCRtpScriptTransform !== 'undefined';\n}\nfunction isInsertableStreamSupported() {\n return typeof window.RTCRtpSender !== 'undefined' &&\n // @ts-ignore\n typeof window.RTCRtpSender.prototype.createEncodedStreams !== 'undefined';\n}\nfunction isVideoFrame(frame) {\n return 'type' in frame;\n}\nfunction importKey(keyBytes_1) {\n return __awaiter(this, arguments, void 0, function (keyBytes) {\n let algorithm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n name: ENCRYPTION_ALGORITHM\n };\n let usage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'encrypt';\n return function* () {\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey\n return crypto.subtle.importKey('raw', keyBytes, algorithm, false, usage === 'derive' ? ['deriveBits', 'deriveKey'] : ['encrypt', 'decrypt']);\n }();\n });\n}\nfunction createKeyMaterialFromString(password) {\n return __awaiter(this, void 0, void 0, function* () {\n let enc = new TextEncoder();\n const keyMaterial = yield crypto.subtle.importKey('raw', enc.encode(password), {\n name: 'PBKDF2'\n }, false, ['deriveBits', 'deriveKey']);\n return keyMaterial;\n });\n}\nfunction createKeyMaterialFromBuffer(cryptoBuffer) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyMaterial = yield crypto.subtle.importKey('raw', cryptoBuffer, 'HKDF', false, ['deriveBits', 'deriveKey']);\n return keyMaterial;\n });\n}\nfunction getAlgoOptions(algorithmName, salt) {\n const textEncoder = new TextEncoder();\n const encodedSalt = textEncoder.encode(salt);\n switch (algorithmName) {\n case 'HKDF':\n return {\n name: 'HKDF',\n salt: encodedSalt,\n hash: 'SHA-256',\n info: new ArrayBuffer(128)\n };\n case 'PBKDF2':\n {\n return {\n name: 'PBKDF2',\n salt: encodedSalt,\n hash: 'SHA-256',\n iterations: 100000\n };\n }\n default:\n throw new Error(\"algorithm \".concat(algorithmName, \" is currently unsupported\"));\n }\n}\n/**\n * Derives a set of keys from the master key.\n * See https://tools.ietf.org/html/draft-omara-sframe-00#section-4.3.1\n */\nfunction deriveKeys(material, salt) {\n return __awaiter(this, void 0, void 0, function* () {\n const algorithmOptions = getAlgoOptions(material.algorithm.name, salt);\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey#HKDF\n // https://developer.mozilla.org/en-US/docs/Web/API/HkdfParams\n const encryptionKey = yield crypto.subtle.deriveKey(algorithmOptions, material, {\n name: ENCRYPTION_ALGORITHM,\n length: 128\n }, false, ['encrypt', 'decrypt']);\n return {\n material,\n encryptionKey\n };\n });\n}\nfunction createE2EEKey() {\n return window.crypto.getRandomValues(new Uint8Array(32));\n}\n/**\n * Ratchets a key. See\n * https://tools.ietf.org/html/draft-omara-sframe-00#section-4.3.5.1\n */\nfunction ratchet(material, salt) {\n return __awaiter(this, void 0, void 0, function* () {\n const algorithmOptions = getAlgoOptions(material.algorithm.name, salt);\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits\n return crypto.subtle.deriveBits(algorithmOptions, material, 256);\n });\n}\nfunction needsRbspUnescaping(frameData) {\n for (var i = 0; i < frameData.length - 3; i++) {\n if (frameData[i] == 0 && frameData[i + 1] == 0 && frameData[i + 2] == 3) return true;\n }\n return false;\n}\nfunction parseRbsp(stream) {\n const dataOut = [];\n var length = stream.length;\n for (var i = 0; i < stream.length;) {\n // Be careful about over/underflow here. byte_length_ - 3 can underflow, and\n // i + 3 can overflow, but byte_length_ - i can't, because i < byte_length_\n // above, and that expression will produce the number of bytes left in\n // the stream including the byte at i.\n if (length - i >= 3 && !stream[i] && !stream[i + 1] && stream[i + 2] == 3) {\n // Two rbsp bytes.\n dataOut.push(stream[i++]);\n dataOut.push(stream[i++]);\n // Skip the emulation byte.\n i++;\n } else {\n // Single rbsp byte.\n dataOut.push(stream[i++]);\n }\n }\n return new Uint8Array(dataOut);\n}\nconst kZerosInStartSequence = 2;\nconst kEmulationByte = 3;\nfunction writeRbsp(data_in) {\n const dataOut = [];\n var numConsecutiveZeros = 0;\n for (var i = 0; i < data_in.length; ++i) {\n var byte = data_in[i];\n if (byte <= kEmulationByte && numConsecutiveZeros >= kZerosInStartSequence) {\n // Need to escape.\n dataOut.push(kEmulationByte);\n numConsecutiveZeros = 0;\n }\n dataOut.push(byte);\n if (byte == 0) {\n ++numConsecutiveZeros;\n } else {\n numConsecutiveZeros = 0;\n }\n }\n return new Uint8Array(dataOut);\n}\n\n/**\n * @experimental\n */\nclass BaseKeyProvider extends eventsExports.EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n super();\n /**\n * callback being invoked after a ratchet request has been performed on a participant\n * that surfaces the new key material.\n * @param material\n * @param keyIndex\n */\n this.onKeyRatcheted = (material, keyIndex) => {\n livekitLogger.debug('key ratcheted event received', {\n material,\n keyIndex\n });\n };\n this.keyInfoMap = new Map();\n this.options = Object.assign(Object.assign({}, KEY_PROVIDER_DEFAULTS), options);\n this.on(KeyProviderEvent.KeyRatcheted, this.onKeyRatcheted);\n }\n /**\n * callback to invoke once a key has been set for a participant\n * @param key\n * @param participantIdentity\n * @param keyIndex\n */\n onSetEncryptionKey(key, participantIdentity, keyIndex) {\n const keyInfo = {\n key,\n participantIdentity,\n keyIndex\n };\n if (!this.options.sharedKey && !participantIdentity) {\n throw new Error('participant identity needs to be passed for encryption key if sharedKey option is false');\n }\n this.keyInfoMap.set(\"\".concat(participantIdentity !== null && participantIdentity !== void 0 ? participantIdentity : 'shared', \"-\").concat(keyIndex !== null && keyIndex !== void 0 ? keyIndex : 0), keyInfo);\n this.emit(KeyProviderEvent.SetKey, keyInfo);\n }\n getKeys() {\n return Array.from(this.keyInfoMap.values());\n }\n getOptions() {\n return this.options;\n }\n ratchetKey(participantIdentity, keyIndex) {\n this.emit(KeyProviderEvent.RatchetRequest, participantIdentity, keyIndex);\n }\n}\n/**\n * A basic KeyProvider implementation intended for a single shared\n * passphrase between all participants\n * @experimental\n */\nclass ExternalE2EEKeyProvider extends BaseKeyProvider {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const opts = Object.assign(Object.assign({}, options), {\n sharedKey: true,\n // for a shared key provider failing to decrypt for a specific participant\n // should not mark the key as invalid, so we accept wrong keys forever\n // and won't try to auto-ratchet\n ratchetWindowSize: 0,\n failureTolerance: -1\n });\n super(opts);\n }\n /**\n * Accepts a passphrase that's used to create the crypto keys.\n * When passing in a string, PBKDF2 is used.\n * When passing in an Array buffer of cryptographically random numbers, HKDF is being used. (recommended)\n * @param key\n */\n setKey(key) {\n return __awaiter(this, void 0, void 0, function* () {\n const derivedKey = typeof key === 'string' ? yield createKeyMaterialFromString(key) : yield createKeyMaterialFromBuffer(key);\n this.onSetEncryptionKey(derivedKey);\n });\n }\n}\n\nclass LivekitError extends Error {\n constructor(code, message) {\n super(message || 'an error has occured');\n this.code = code;\n }\n}\nvar ConnectionErrorReason;\n(function (ConnectionErrorReason) {\n ConnectionErrorReason[ConnectionErrorReason[\"NotAllowed\"] = 0] = \"NotAllowed\";\n ConnectionErrorReason[ConnectionErrorReason[\"ServerUnreachable\"] = 1] = \"ServerUnreachable\";\n ConnectionErrorReason[ConnectionErrorReason[\"InternalError\"] = 2] = \"InternalError\";\n ConnectionErrorReason[ConnectionErrorReason[\"Cancelled\"] = 3] = \"Cancelled\";\n ConnectionErrorReason[ConnectionErrorReason[\"LeaveRequest\"] = 4] = \"LeaveRequest\";\n})(ConnectionErrorReason || (ConnectionErrorReason = {}));\nclass ConnectionError extends LivekitError {\n constructor(message, reason, status, context) {\n super(1, message);\n this.status = status;\n this.reason = reason;\n this.context = context;\n }\n}\nclass DeviceUnsupportedError extends LivekitError {\n constructor(message) {\n super(21, message !== null && message !== void 0 ? message : 'device is unsupported');\n }\n}\nclass TrackInvalidError extends LivekitError {\n constructor(message) {\n super(20, message !== null && message !== void 0 ? message : 'track is invalid');\n }\n}\nclass UnsupportedServer extends LivekitError {\n constructor(message) {\n super(10, message !== null && message !== void 0 ? message : 'unsupported server');\n }\n}\nclass UnexpectedConnectionState extends LivekitError {\n constructor(message) {\n super(12, message !== null && message !== void 0 ? message : 'unexpected connection state');\n }\n}\nclass NegotiationError extends LivekitError {\n constructor(message) {\n super(13, message !== null && message !== void 0 ? message : 'unable to negotiate');\n }\n}\nclass PublishDataError extends LivekitError {\n constructor(message) {\n super(13, message !== null && message !== void 0 ? message : 'unable to publish data');\n }\n}\nclass SignalRequestError extends LivekitError {\n constructor(message, reason) {\n super(15, message);\n this.reason = reason;\n }\n}\nvar MediaDeviceFailure;\n(function (MediaDeviceFailure) {\n // user rejected permissions\n MediaDeviceFailure[\"PermissionDenied\"] = \"PermissionDenied\";\n // device is not available\n MediaDeviceFailure[\"NotFound\"] = \"NotFound\";\n // device is in use. On Windows, only a single tab may get access to a device at a time.\n MediaDeviceFailure[\"DeviceInUse\"] = \"DeviceInUse\";\n MediaDeviceFailure[\"Other\"] = \"Other\";\n})(MediaDeviceFailure || (MediaDeviceFailure = {}));\n(function (MediaDeviceFailure) {\n function getFailure(error) {\n if (error && 'name' in error) {\n if (error.name === 'NotFoundError' || error.name === 'DevicesNotFoundError') {\n return MediaDeviceFailure.NotFound;\n }\n if (error.name === 'NotAllowedError' || error.name === 'PermissionDeniedError') {\n return MediaDeviceFailure.PermissionDenied;\n }\n if (error.name === 'NotReadableError' || error.name === 'TrackStartError') {\n return MediaDeviceFailure.DeviceInUse;\n }\n return MediaDeviceFailure.Other;\n }\n }\n MediaDeviceFailure.getFailure = getFailure;\n})(MediaDeviceFailure || (MediaDeviceFailure = {}));\n\nvar CryptorErrorReason;\n(function (CryptorErrorReason) {\n CryptorErrorReason[CryptorErrorReason[\"InvalidKey\"] = 0] = \"InvalidKey\";\n CryptorErrorReason[CryptorErrorReason[\"MissingKey\"] = 1] = \"MissingKey\";\n CryptorErrorReason[CryptorErrorReason[\"InternalError\"] = 2] = \"InternalError\";\n})(CryptorErrorReason || (CryptorErrorReason = {}));\nclass CryptorError extends LivekitError {\n constructor(message) {\n let reason = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CryptorErrorReason.InternalError;\n let participantIdentity = arguments.length > 2 ? arguments[2] : undefined;\n super(40, message);\n this.reason = reason;\n this.participantIdentity = participantIdentity;\n }\n}\n\n/**\n * Events are the primary way LiveKit notifies your application of changes.\n *\n * The following are events emitted by [[Room]], listen to room events like\n *\n * ```typescript\n * room.on(RoomEvent.TrackPublished, (track, publication, participant) => {})\n * ```\n */\nvar RoomEvent;\n(function (RoomEvent) {\n /**\n * When the connection to the server has been established\n */\n RoomEvent[\"Connected\"] = \"connected\";\n /**\n * When the connection to the server has been interrupted and it's attempting\n * to reconnect.\n */\n RoomEvent[\"Reconnecting\"] = \"reconnecting\";\n /**\n * When the signal connection to the server has been interrupted. This isn't noticeable to users most of the time.\n * It will resolve with a `RoomEvent.Reconnected` once the signal connection has been re-established.\n * If media fails additionally it an additional `RoomEvent.Reconnecting` will be emitted.\n */\n RoomEvent[\"SignalReconnecting\"] = \"signalReconnecting\";\n /**\n * Fires when a reconnection has been successful.\n */\n RoomEvent[\"Reconnected\"] = \"reconnected\";\n /**\n * When disconnected from room. This fires when room.disconnect() is called or\n * when an unrecoverable connection issue had occured.\n *\n * DisconnectReason can be used to determine why the participant was disconnected. Notable reasons are\n * - DUPLICATE_IDENTITY: another client with the same identity has joined the room\n * - PARTICIPANT_REMOVED: participant was removed by RemoveParticipant API\n * - ROOM_DELETED: the room has ended via DeleteRoom API\n *\n * args: ([[DisconnectReason]])\n */\n RoomEvent[\"Disconnected\"] = \"disconnected\";\n /**\n * Whenever the connection state of the room changes\n *\n * args: ([[ConnectionState]])\n */\n RoomEvent[\"ConnectionStateChanged\"] = \"connectionStateChanged\";\n /**\n * When input or output devices on the machine have changed.\n */\n RoomEvent[\"MediaDevicesChanged\"] = \"mediaDevicesChanged\";\n /**\n * When a [[RemoteParticipant]] joins *after* the local\n * participant. It will not emit events for participants that are already\n * in the room\n *\n * args: ([[RemoteParticipant]])\n */\n RoomEvent[\"ParticipantConnected\"] = \"participantConnected\";\n /**\n * When a [[RemoteParticipant]] leaves *after* the local\n * participant has joined.\n *\n * args: ([[RemoteParticipant]])\n */\n RoomEvent[\"ParticipantDisconnected\"] = \"participantDisconnected\";\n /**\n * When a new track is published to room *after* the local\n * participant has joined. It will not fire for tracks that are already published.\n *\n * A track published doesn't mean the participant has subscribed to it. It's\n * simply reflecting the state of the room.\n *\n * args: ([[RemoteTrackPublication]], [[RemoteParticipant]])\n */\n RoomEvent[\"TrackPublished\"] = \"trackPublished\";\n /**\n * The [[LocalParticipant]] has subscribed to a new track. This event will **always**\n * fire as long as new tracks are ready for use.\n *\n * args: ([[RemoteTrack]], [[RemoteTrackPublication]], [[RemoteParticipant]])\n */\n RoomEvent[\"TrackSubscribed\"] = \"trackSubscribed\";\n /**\n * Could not subscribe to a track\n *\n * args: (track sid, [[RemoteParticipant]])\n */\n RoomEvent[\"TrackSubscriptionFailed\"] = \"trackSubscriptionFailed\";\n /**\n * A [[RemoteParticipant]] has unpublished a track\n *\n * args: ([[RemoteTrackPublication]], [[RemoteParticipant]])\n */\n RoomEvent[\"TrackUnpublished\"] = \"trackUnpublished\";\n /**\n * A subscribed track is no longer available. Clients should listen to this\n * event and ensure they detach tracks.\n *\n * args: ([[Track]], [[RemoteTrackPublication]], [[RemoteParticipant]])\n */\n RoomEvent[\"TrackUnsubscribed\"] = \"trackUnsubscribed\";\n /**\n * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]\n *\n * args: ([[TrackPublication]], [[Participant]])\n */\n RoomEvent[\"TrackMuted\"] = \"trackMuted\";\n /**\n * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]\n *\n * args: ([[TrackPublication]], [[Participant]])\n */\n RoomEvent[\"TrackUnmuted\"] = \"trackUnmuted\";\n /**\n * A local track was published successfully. This event is helpful to know\n * when to update your local UI with the newly published track.\n *\n * args: ([[LocalTrackPublication]], [[LocalParticipant]])\n */\n RoomEvent[\"LocalTrackPublished\"] = \"localTrackPublished\";\n /**\n * A local track was unpublished. This event is helpful to know when to remove\n * the local track from your UI.\n *\n * When a user stops sharing their screen by pressing \"End\" on the browser UI,\n * this event will also fire.\n *\n * args: ([[LocalTrackPublication]], [[LocalParticipant]])\n */\n RoomEvent[\"LocalTrackUnpublished\"] = \"localTrackUnpublished\";\n /**\n * When a local audio track is published the SDK checks whether there is complete silence\n * on that track and emits the LocalAudioSilenceDetected event in that case.\n * This allows for applications to show UI informing users that they might have to\n * reset their audio hardware or check for proper device connectivity.\n */\n RoomEvent[\"LocalAudioSilenceDetected\"] = \"localAudioSilenceDetected\";\n /**\n * Active speakers changed. List of speakers are ordered by their audio level.\n * loudest speakers first. This will include the LocalParticipant too.\n *\n * Speaker updates are sent only to the publishing participant and their subscribers.\n *\n * args: (Array<[[Participant]]>)\n */\n RoomEvent[\"ActiveSpeakersChanged\"] = \"activeSpeakersChanged\";\n /**\n * Participant metadata is a simple way for app-specific state to be pushed to\n * all users.\n * When RoomService.UpdateParticipantMetadata is called to change a participant's\n * state, *all* participants in the room will fire this event.\n *\n * args: (prevMetadata: string, [[Participant]])\n *\n */\n RoomEvent[\"ParticipantMetadataChanged\"] = \"participantMetadataChanged\";\n /**\n * Participant's display name changed\n *\n * args: (name: string, [[Participant]])\n *\n */\n RoomEvent[\"ParticipantNameChanged\"] = \"participantNameChanged\";\n /**\n * Participant attributes is an app-specific key value state to be pushed to\n * all users.\n * When a participant's attributes changed, this event will be emitted with the changed attributes and the participant\n * args: (changedAttributes: [[Record<string, string]], participant: [[Participant]])\n */\n RoomEvent[\"ParticipantAttributesChanged\"] = \"participantAttributesChanged\";\n /**\n * Room metadata is a simple way for app-specific state to be pushed to\n * all users.\n * When RoomService.UpdateRoomMetadata is called to change a room's state,\n * *all* participants in the room will fire this event.\n *\n * args: (string)\n */\n RoomEvent[\"RoomMetadataChanged\"] = \"roomMetadataChanged\";\n /**\n * Data received from another participant.\n * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads.\n * All participants in the room will receive the messages sent to the room.\n *\n * args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]], topic?: string)\n */\n RoomEvent[\"DataReceived\"] = \"dataReceived\";\n /**\n * SIP DTMF tones received from another participant.\n *\n * args: (participant: [[Participant]], dtmf: [[DataPacket_Kind]])\n */\n RoomEvent[\"SipDTMFReceived\"] = \"sipDTMFReceived\";\n /**\n * Transcription received from a participant's track.\n * @beta\n */\n RoomEvent[\"TranscriptionReceived\"] = \"transcriptionReceived\";\n /**\n * Connection quality was changed for a Participant. It'll receive updates\n * from the local participant, as well as any [[RemoteParticipant]]s that we are\n * subscribed to.\n *\n * args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]])\n */\n RoomEvent[\"ConnectionQualityChanged\"] = \"connectionQualityChanged\";\n /**\n * StreamState indicates if a subscribed (remote) track has been paused by the SFU\n * (typically this happens because of subscriber's bandwidth constraints)\n *\n * When bandwidth conditions allow, the track will be resumed automatically.\n * TrackStreamStateChanged will also be emitted when that happens.\n *\n * args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]],\n * participant: [[RemoteParticipant]])\n */\n RoomEvent[\"TrackStreamStateChanged\"] = \"trackStreamStateChanged\";\n /**\n * One of subscribed tracks have changed its permissions for the current\n * participant. If permission was revoked, then the track will no longer\n * be subscribed. If permission was granted, a TrackSubscribed event will\n * be emitted.\n *\n * args: (pub: [[RemoteTrackPublication]],\n * status: [[TrackPublication.PermissionStatus]],\n * participant: [[RemoteParticipant]])\n */\n RoomEvent[\"TrackSubscriptionPermissionChanged\"] = \"trackSubscriptionPermissionChanged\";\n /**\n * One of subscribed tracks have changed its status for the current\n * participant.\n *\n * args: (pub: [[RemoteTrackPublication]],\n * status: [[TrackPublication.SubscriptionStatus]],\n * participant: [[RemoteParticipant]])\n */\n RoomEvent[\"TrackSubscriptionStatusChanged\"] = \"trackSubscriptionStatusChanged\";\n /**\n * LiveKit will attempt to autoplay all audio tracks when you attach them to\n * audio elements. However, if that fails, we'll notify you via AudioPlaybackStatusChanged.\n * `Room.canPlaybackAudio` will indicate if audio playback is permitted.\n */\n RoomEvent[\"AudioPlaybackStatusChanged\"] = \"audioPlaybackChanged\";\n /**\n * LiveKit will attempt to autoplay all video tracks when you attach them to\n * a video element. However, if that fails, we'll notify you via VideoPlaybackStatusChanged.\n * Calling `room.startVideo()` in a user gesture event handler will resume the video playback.\n */\n RoomEvent[\"VideoPlaybackStatusChanged\"] = \"videoPlaybackChanged\";\n /**\n * When we have encountered an error while attempting to create a track.\n * The errors take place in getUserMedia().\n * Use MediaDeviceFailure.getFailure(error) to get the reason of failure.\n * [[LocalParticipant.lastCameraError]] and [[LocalParticipant.lastMicrophoneError]]\n * will indicate if it had an error while creating the audio or video track respectively.\n *\n * args: (error: Error)\n */\n RoomEvent[\"MediaDevicesError\"] = \"mediaDevicesError\";\n /**\n * A participant's permission has changed.\n * args: (prevPermissions: [[ParticipantPermission]], participant: [[Participant]])\n */\n RoomEvent[\"ParticipantPermissionsChanged\"] = \"participantPermissionsChanged\";\n /**\n * Signal connected, can publish tracks.\n */\n RoomEvent[\"SignalConnected\"] = \"signalConnected\";\n /**\n * Recording of a room has started/stopped. Room.isRecording will be updated too.\n * args: (isRecording: boolean)\n */\n RoomEvent[\"RecordingStatusChanged\"] = \"recordingStatusChanged\";\n RoomEvent[\"ParticipantEncryptionStatusChanged\"] = \"participantEncryptionStatusChanged\";\n RoomEvent[\"EncryptionError\"] = \"encryptionError\";\n /**\n * Emits whenever the current buffer status of a data channel changes\n * args: (isLow: boolean, kind: [[DataPacket_Kind]])\n */\n RoomEvent[\"DCBufferStatusChanged\"] = \"dcBufferStatusChanged\";\n /**\n * Triggered by a call to room.switchActiveDevice\n * args: (kind: MediaDeviceKind, deviceId: string)\n */\n RoomEvent[\"ActiveDeviceChanged\"] = \"activeDeviceChanged\";\n RoomEvent[\"ChatMessage\"] = \"chatMessage\";\n /**\n * fired when the first remote participant has subscribed to the localParticipant's track\n */\n RoomEvent[\"LocalTrackSubscribed\"] = \"localTrackSubscribed\";\n /**\n * fired when the client receives connection metrics from other participants\n */\n RoomEvent[\"MetricsReceived\"] = \"metricsReceived\";\n})(RoomEvent || (RoomEvent = {}));\nvar ParticipantEvent;\n(function (ParticipantEvent) {\n /**\n * When a new track is published to room *after* the local\n * participant has joined. It will not fire for tracks that are already published.\n *\n * A track published doesn't mean the participant has subscribed to it. It's\n * simply reflecting the state of the room.\n *\n * args: ([[RemoteTrackPublication]])\n */\n ParticipantEvent[\"TrackPublished\"] = \"trackPublished\";\n /**\n * Successfully subscribed to the [[RemoteParticipant]]'s track.\n * This event will **always** fire as long as new tracks are ready for use.\n *\n * args: ([[RemoteTrack]], [[RemoteTrackPublication]])\n */\n ParticipantEvent[\"TrackSubscribed\"] = \"trackSubscribed\";\n /**\n * Could not subscribe to a track\n *\n * args: (track sid)\n */\n ParticipantEvent[\"TrackSubscriptionFailed\"] = \"trackSubscriptionFailed\";\n /**\n * A [[RemoteParticipant]] has unpublished a track\n *\n * args: ([[RemoteTrackPublication]])\n */\n ParticipantEvent[\"TrackUnpublished\"] = \"trackUnpublished\";\n /**\n * A subscribed track is no longer available. Clients should listen to this\n * event and ensure they detach tracks.\n *\n * args: ([[RemoteTrack]], [[RemoteTrackPublication]])\n */\n ParticipantEvent[\"TrackUnsubscribed\"] = \"trackUnsubscribed\";\n /**\n * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]\n *\n * args: ([[TrackPublication]])\n */\n ParticipantEvent[\"TrackMuted\"] = \"trackMuted\";\n /**\n * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]]\n *\n * args: ([[TrackPublication]])\n */\n ParticipantEvent[\"TrackUnmuted\"] = \"trackUnmuted\";\n /**\n * A local track was published successfully. This event is helpful to know\n * when to update your local UI with the newly published track.\n *\n * args: ([[LocalTrackPublication]])\n */\n ParticipantEvent[\"LocalTrackPublished\"] = \"localTrackPublished\";\n /**\n * A local track was unpublished. This event is helpful to know when to remove\n * the local track from your UI.\n *\n * When a user stops sharing their screen by pressing \"End\" on the browser UI,\n * this event will also fire.\n *\n * args: ([[LocalTrackPublication]])\n */\n ParticipantEvent[\"LocalTrackUnpublished\"] = \"localTrackUnpublished\";\n /**\n * Participant metadata is a simple way for app-specific state to be pushed to\n * all users.\n * When RoomService.UpdateParticipantMetadata is called to change a participant's\n * state, *all* participants in the room will fire this event.\n * To access the current metadata, see [[Participant.metadata]].\n *\n * args: (prevMetadata: string)\n *\n */\n ParticipantEvent[\"ParticipantMetadataChanged\"] = \"participantMetadataChanged\";\n /**\n * Participant's display name changed\n *\n * args: (name: string, [[Participant]])\n *\n */\n ParticipantEvent[\"ParticipantNameChanged\"] = \"participantNameChanged\";\n /**\n * Data received from this participant as sender.\n * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads.\n * All participants in the room will receive the messages sent to the room.\n *\n * args: (payload: Uint8Array, kind: [[DataPacket_Kind]])\n */\n ParticipantEvent[\"DataReceived\"] = \"dataReceived\";\n /**\n * SIP DTMF tones received from this participant as sender.\n *\n * args: (dtmf: [[DataPacket_Kind]])\n */\n ParticipantEvent[\"SipDTMFReceived\"] = \"sipDTMFReceived\";\n /**\n * Transcription received from this participant as data source.\n * @beta\n */\n ParticipantEvent[\"TranscriptionReceived\"] = \"transcriptionReceived\";\n /**\n * Has speaking status changed for the current participant\n *\n * args: (speaking: boolean)\n */\n ParticipantEvent[\"IsSpeakingChanged\"] = \"isSpeakingChanged\";\n /**\n * Connection quality was changed for a Participant. It'll receive updates\n * from the local participant, as well as any [[RemoteParticipant]]s that we are\n * subscribed to.\n *\n * args: (connectionQuality: [[ConnectionQuality]])\n */\n ParticipantEvent[\"ConnectionQualityChanged\"] = \"connectionQualityChanged\";\n /**\n * StreamState indicates if a subscribed track has been paused by the SFU\n * (typically this happens because of subscriber's bandwidth constraints)\n *\n * When bandwidth conditions allow, the track will be resumed automatically.\n * TrackStreamStateChanged will also be emitted when that happens.\n *\n * args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]])\n */\n ParticipantEvent[\"TrackStreamStateChanged\"] = \"trackStreamStateChanged\";\n /**\n * One of subscribed tracks have changed its permissions for the current\n * participant. If permission was revoked, then the track will no longer\n * be subscribed. If permission was granted, a TrackSubscribed event will\n * be emitted.\n *\n * args: (pub: [[RemoteTrackPublication]],\n * status: [[TrackPublication.SubscriptionStatus]])\n */\n ParticipantEvent[\"TrackSubscriptionPermissionChanged\"] = \"trackSubscriptionPermissionChanged\";\n /**\n * One of the remote participants publications has changed its subscription status.\n *\n */\n ParticipantEvent[\"TrackSubscriptionStatusChanged\"] = \"trackSubscriptionStatusChanged\";\n // fired only on LocalParticipant\n /** @internal */\n ParticipantEvent[\"MediaDevicesError\"] = \"mediaDevicesError\";\n // fired only on LocalParticipant\n /** @internal */\n ParticipantEvent[\"AudioStreamAcquired\"] = \"audioStreamAcquired\";\n /**\n * A participant's permission has changed.\n * args: (prevPermissions: [[ParticipantPermission]])\n */\n ParticipantEvent[\"ParticipantPermissionsChanged\"] = \"participantPermissionsChanged\";\n /** @internal */\n ParticipantEvent[\"PCTrackAdded\"] = \"pcTrackAdded\";\n /**\n * Participant attributes is an app-specific key value state to be pushed to\n * all users.\n * When a participant's attributes changed, this event will be emitted with the changed attributes\n * args: (changedAttributes: [[Record<string, string]])\n */\n ParticipantEvent[\"AttributesChanged\"] = \"attributesChanged\";\n /**\n * fired on local participant only, when the first remote participant has subscribed to the track specified in the payload\n */\n ParticipantEvent[\"LocalTrackSubscribed\"] = \"localTrackSubscribed\";\n /** only emitted on local participant */\n ParticipantEvent[\"ChatMessage\"] = \"chatMessage\";\n})(ParticipantEvent || (ParticipantEvent = {}));\n/** @internal */\nvar EngineEvent;\n(function (EngineEvent) {\n EngineEvent[\"TransportsCreated\"] = \"transportsCreated\";\n EngineEvent[\"Connected\"] = \"connected\";\n EngineEvent[\"Disconnected\"] = \"disconnected\";\n EngineEvent[\"Resuming\"] = \"resuming\";\n EngineEvent[\"Resumed\"] = \"resumed\";\n EngineEvent[\"Restarting\"] = \"restarting\";\n EngineEvent[\"Restarted\"] = \"restarted\";\n EngineEvent[\"SignalResumed\"] = \"signalResumed\";\n EngineEvent[\"SignalRestarted\"] = \"signalRestarted\";\n EngineEvent[\"Closing\"] = \"closing\";\n EngineEvent[\"MediaTrackAdded\"] = \"mediaTrackAdded\";\n EngineEvent[\"ActiveSpeakersUpdate\"] = \"activeSpeakersUpdate\";\n EngineEvent[\"DataPacketReceived\"] = \"dataPacketReceived\";\n EngineEvent[\"RTPVideoMapUpdate\"] = \"rtpVideoMapUpdate\";\n EngineEvent[\"DCBufferStatusChanged\"] = \"dcBufferStatusChanged\";\n EngineEvent[\"ParticipantUpdate\"] = \"participantUpdate\";\n EngineEvent[\"RoomUpdate\"] = \"roomUpdate\";\n EngineEvent[\"SpeakersChanged\"] = \"speakersChanged\";\n EngineEvent[\"StreamStateChanged\"] = \"streamStateChanged\";\n EngineEvent[\"ConnectionQualityUpdate\"] = \"connectionQualityUpdate\";\n EngineEvent[\"SubscriptionError\"] = \"subscriptionError\";\n EngineEvent[\"SubscriptionPermissionUpdate\"] = \"subscriptionPermissionUpdate\";\n EngineEvent[\"RemoteMute\"] = \"remoteMute\";\n EngineEvent[\"SubscribedQualityUpdate\"] = \"subscribedQualityUpdate\";\n EngineEvent[\"LocalTrackUnpublished\"] = \"localTrackUnpublished\";\n EngineEvent[\"LocalTrackSubscribed\"] = \"localTrackSubscribed\";\n EngineEvent[\"Offline\"] = \"offline\";\n EngineEvent[\"SignalRequestResponse\"] = \"signalRequestResponse\";\n})(EngineEvent || (EngineEvent = {}));\nvar TrackEvent;\n(function (TrackEvent) {\n TrackEvent[\"Message\"] = \"message\";\n TrackEvent[\"Muted\"] = \"muted\";\n TrackEvent[\"Unmuted\"] = \"unmuted\";\n /**\n * Only fires on LocalTracks\n */\n TrackEvent[\"Restarted\"] = \"restarted\";\n TrackEvent[\"Ended\"] = \"ended\";\n TrackEvent[\"Subscribed\"] = \"subscribed\";\n TrackEvent[\"Unsubscribed\"] = \"unsubscribed\";\n /** @internal */\n TrackEvent[\"UpdateSettings\"] = \"updateSettings\";\n /** @internal */\n TrackEvent[\"UpdateSubscription\"] = \"updateSubscription\";\n /** @internal */\n TrackEvent[\"AudioPlaybackStarted\"] = \"audioPlaybackStarted\";\n /** @internal */\n TrackEvent[\"AudioPlaybackFailed\"] = \"audioPlaybackFailed\";\n /**\n * @internal\n * Only fires on LocalAudioTrack instances\n */\n TrackEvent[\"AudioSilenceDetected\"] = \"audioSilenceDetected\";\n /** @internal */\n TrackEvent[\"VisibilityChanged\"] = \"visibilityChanged\";\n /** @internal */\n TrackEvent[\"VideoDimensionsChanged\"] = \"videoDimensionsChanged\";\n /** @internal */\n TrackEvent[\"VideoPlaybackStarted\"] = \"videoPlaybackStarted\";\n /** @internal */\n TrackEvent[\"VideoPlaybackFailed\"] = \"videoPlaybackFailed\";\n /** @internal */\n TrackEvent[\"ElementAttached\"] = \"elementAttached\";\n /** @internal */\n TrackEvent[\"ElementDetached\"] = \"elementDetached\";\n /**\n * @internal\n * Only fires on LocalTracks\n */\n TrackEvent[\"UpstreamPaused\"] = \"upstreamPaused\";\n /**\n * @internal\n * Only fires on LocalTracks\n */\n TrackEvent[\"UpstreamResumed\"] = \"upstreamResumed\";\n /**\n * @internal\n * Fires on RemoteTrackPublication\n */\n TrackEvent[\"SubscriptionPermissionChanged\"] = \"subscriptionPermissionChanged\";\n /**\n * Fires on RemoteTrackPublication\n */\n TrackEvent[\"SubscriptionStatusChanged\"] = \"subscriptionStatusChanged\";\n /**\n * Fires on RemoteTrackPublication\n */\n TrackEvent[\"SubscriptionFailed\"] = \"subscriptionFailed\";\n /**\n * @internal\n */\n TrackEvent[\"TrackProcessorUpdate\"] = \"trackProcessorUpdate\";\n /**\n * @internal\n */\n TrackEvent[\"AudioTrackFeatureUpdate\"] = \"audioTrackFeatureUpdate\";\n /**\n * @beta\n */\n TrackEvent[\"TranscriptionReceived\"] = \"transcriptionReceived\";\n /**\n * @experimental\n */\n TrackEvent[\"TimeSyncUpdate\"] = \"timeSyncUpdate\";\n})(TrackEvent || (TrackEvent = {}));\n\nfunction r(r, e, n) {\n var i, t, o;\n void 0 === e && (e = 50), void 0 === n && (n = {});\n var a = null != (i = n.isImmediate) && i,\n u = null != (t = n.callback) && t,\n c = n.maxWait,\n v = Date.now(),\n l = [];\n function f() {\n if (void 0 !== c) {\n var r = Date.now() - v;\n if (r + e >= c) return c - r;\n }\n return e;\n }\n var d = function () {\n var e = [].slice.call(arguments),\n n = this;\n return new Promise(function (i, t) {\n var c = a && void 0 === o;\n if (void 0 !== o && clearTimeout(o), o = setTimeout(function () {\n if (o = void 0, v = Date.now(), !a) {\n var i = r.apply(n, e);\n u && u(i), l.forEach(function (r) {\n return (0, r.resolve)(i);\n }), l = [];\n }\n }, f()), c) {\n var d = r.apply(n, e);\n return u && u(d), i(d);\n }\n l.push({\n resolve: i,\n reject: t\n });\n });\n };\n return d.cancel = function (r) {\n void 0 !== o && clearTimeout(o), l.forEach(function (e) {\n return (0, e.reject)(r);\n }), l = [];\n }, d;\n}\n\n// tiny, simplified version of https://github.com/lancedikson/bowser/blob/master/src/parser-browsers.js\n// reduced to only differentiate Chrome(ium) based browsers / Firefox / Safari\nconst commonVersionIdentifier = /version\\/(\\d+(\\.?_?\\d+)+)/i;\nlet browserDetails;\n/**\n * @internal\n */\nfunction getBrowser(userAgent) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (typeof userAgent === 'undefined' && typeof navigator === 'undefined') {\n return;\n }\n const ua = (userAgent !== null && userAgent !== void 0 ? userAgent : navigator.userAgent).toLowerCase();\n if (browserDetails === undefined || force) {\n const browser = browsersList.find(_ref => {\n let {\n test\n } = _ref;\n return test.test(ua);\n });\n browserDetails = browser === null || browser === void 0 ? void 0 : browser.describe(ua);\n }\n return browserDetails;\n}\nconst browsersList = [{\n test: /firefox|iceweasel|fxios/i,\n describe(ua) {\n const browser = {\n name: 'Firefox',\n version: getMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua),\n os: ua.toLowerCase().includes('fxios') ? 'iOS' : undefined,\n osVersion: getOSVersion(ua)\n };\n return browser;\n }\n}, {\n test: /chrom|crios|crmo/i,\n describe(ua) {\n const browser = {\n name: 'Chrome',\n version: getMatch(/(?:chrome|chromium|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, ua),\n os: ua.toLowerCase().includes('crios') ? 'iOS' : undefined,\n osVersion: getOSVersion(ua)\n };\n return browser;\n }\n}, /* Safari */\n{\n test: /safari|applewebkit/i,\n describe(ua) {\n const browser = {\n name: 'Safari',\n version: getMatch(commonVersionIdentifier, ua),\n os: ua.includes('mobile/') ? 'iOS' : 'macOS',\n osVersion: getOSVersion(ua)\n };\n return browser;\n }\n}];\nfunction getMatch(exp, ua) {\n let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const match = ua.match(exp);\n return match && match.length >= id && match[id] || '';\n}\nfunction getOSVersion(ua) {\n return ua.includes('mac os') ? getMatch(/\\(.+?(\\d+_\\d+(:?_\\d+)?)/, ua, 1).replace(/_/g, '.') : undefined;\n}\n\nvar version$1 = \"2.6.3\";\n\nconst version = version$1;\nconst protocolVersion = 15;\n\n/**\n * Timers that can be overridden with platform specific implementations\n * that ensure that they are fired. These should be used when it is critical\n * that the timer fires on time.\n */\nclass CriticalTimers {}\nCriticalTimers.setTimeout = function () {\n return setTimeout(...arguments);\n};\nCriticalTimers.setInterval =\n// eslint-disable-next-line @typescript-eslint/no-implied-eval\nfunction () {\n return setInterval(...arguments);\n};\nCriticalTimers.clearTimeout = function () {\n return clearTimeout(...arguments);\n};\nCriticalTimers.clearInterval = function () {\n return clearInterval(...arguments);\n};\n\nclass VideoPreset {\n constructor(widthOrOptions, height, maxBitrate, maxFramerate, priority) {\n if (typeof widthOrOptions === 'object') {\n this.width = widthOrOptions.width;\n this.height = widthOrOptions.height;\n this.aspectRatio = widthOrOptions.aspectRatio;\n this.encoding = {\n maxBitrate: widthOrOptions.maxBitrate,\n maxFramerate: widthOrOptions.maxFramerate,\n priority: widthOrOptions.priority\n };\n } else if (height !== undefined && maxBitrate !== undefined) {\n this.width = widthOrOptions;\n this.height = height;\n this.aspectRatio = widthOrOptions / height;\n this.encoding = {\n maxBitrate,\n maxFramerate,\n priority\n };\n } else {\n throw new TypeError('Unsupported options: provide at least width, height and maxBitrate');\n }\n }\n get resolution() {\n return {\n width: this.width,\n height: this.height,\n frameRate: this.encoding.maxFramerate,\n aspectRatio: this.aspectRatio\n };\n }\n}\nconst backupCodecs = ['vp8', 'h264'];\nconst videoCodecs = ['vp8', 'h264', 'vp9', 'av1'];\nfunction isBackupCodec(codec) {\n return !!backupCodecs.find(backup => backup === codec);\n}\nvar AudioPresets;\n(function (AudioPresets) {\n AudioPresets.telephone = {\n maxBitrate: 12000\n };\n AudioPresets.speech = {\n maxBitrate: 24000\n };\n AudioPresets.music = {\n maxBitrate: 48000\n };\n AudioPresets.musicStereo = {\n maxBitrate: 64000\n };\n AudioPresets.musicHighQuality = {\n maxBitrate: 96000\n };\n AudioPresets.musicHighQualityStereo = {\n maxBitrate: 128000\n };\n})(AudioPresets || (AudioPresets = {}));\n/**\n * Sane presets for video resolution/encoding\n */\nconst VideoPresets = {\n h90: new VideoPreset(160, 90, 90000, 20),\n h180: new VideoPreset(320, 180, 160000, 20),\n h216: new VideoPreset(384, 216, 180000, 20),\n h360: new VideoPreset(640, 360, 450000, 20),\n h540: new VideoPreset(960, 540, 800000, 25),\n h720: new VideoPreset(1280, 720, 1700000, 30),\n h1080: new VideoPreset(1920, 1080, 3000000, 30),\n h1440: new VideoPreset(2560, 1440, 5000000, 30),\n h2160: new VideoPreset(3840, 2160, 8000000, 30)\n};\n/**\n * Four by three presets\n */\nconst VideoPresets43 = {\n h120: new VideoPreset(160, 120, 70000, 20),\n h180: new VideoPreset(240, 180, 125000, 20),\n h240: new VideoPreset(320, 240, 140000, 20),\n h360: new VideoPreset(480, 360, 330000, 20),\n h480: new VideoPreset(640, 480, 500000, 20),\n h540: new VideoPreset(720, 540, 600000, 25),\n h720: new VideoPreset(960, 720, 1300000, 30),\n h1080: new VideoPreset(1440, 1080, 2300000, 30),\n h1440: new VideoPreset(1920, 1440, 3800000, 30)\n};\nconst ScreenSharePresets = {\n h360fps3: new VideoPreset(640, 360, 200000, 3, 'medium'),\n h360fps15: new VideoPreset(640, 360, 400000, 15, 'medium'),\n h720fps5: new VideoPreset(1280, 720, 800000, 5, 'medium'),\n h720fps15: new VideoPreset(1280, 720, 1500000, 15, 'medium'),\n h720fps30: new VideoPreset(1280, 720, 2000000, 30, 'medium'),\n h1080fps15: new VideoPreset(1920, 1080, 2500000, 15, 'medium'),\n h1080fps30: new VideoPreset(1920, 1080, 5000000, 30, 'medium'),\n // original resolution, without resizing\n original: new VideoPreset(0, 0, 7000000, 30, 'medium')\n};\n\nfunction cloneDeep(value) {\n if (typeof value === 'undefined') {\n return;\n }\n if (typeof structuredClone === 'function') {\n return structuredClone(value);\n } else {\n return JSON.parse(JSON.stringify(value));\n }\n}\n\nconst BACKGROUND_REACTION_DELAY = 5000;\n// keep old audio elements when detached, we would re-use them since on iOS\n// Safari tracks which audio elements have been \"blessed\" by the user.\nconst recycledElements = [];\nvar VideoQuality;\n(function (VideoQuality) {\n VideoQuality[VideoQuality[\"LOW\"] = 0] = \"LOW\";\n VideoQuality[VideoQuality[\"MEDIUM\"] = 1] = \"MEDIUM\";\n VideoQuality[VideoQuality[\"HIGH\"] = 2] = \"HIGH\";\n})(VideoQuality || (VideoQuality = {}));\nclass Track extends eventsExports.EventEmitter {\n constructor(mediaTrack, kind) {\n let loggerOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _a;\n super();\n this.attachedElements = [];\n this.isMuted = false;\n /**\n * indicates current state of stream, it'll indicate `paused` if the track\n * has been paused by congestion controller\n */\n this.streamState = Track.StreamState.Active;\n this.isInBackground = false;\n this._currentBitrate = 0;\n this.log = livekitLogger;\n this.appVisibilityChangedListener = () => {\n if (this.backgroundTimeout) {\n clearTimeout(this.backgroundTimeout);\n }\n // delay app visibility update if it goes to hidden\n // update immediately if it comes back to focus\n if (document.visibilityState === 'hidden') {\n this.backgroundTimeout = setTimeout(() => this.handleAppVisibilityChanged(), BACKGROUND_REACTION_DELAY);\n } else {\n this.handleAppVisibilityChanged();\n }\n };\n this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Track);\n this.loggerContextCb = loggerOptions.loggerContextCb;\n this.setMaxListeners(100);\n this.kind = kind;\n this._mediaStreamTrack = mediaTrack;\n this._mediaStreamID = mediaTrack.id;\n this.source = Track.Source.Unknown;\n }\n get logContext() {\n var _a;\n return Object.assign(Object.assign({}, (_a = this.loggerContextCb) === null || _a === void 0 ? void 0 : _a.call(this)), getLogContextFromTrack(this));\n }\n /** current receive bits per second */\n get currentBitrate() {\n return this._currentBitrate;\n }\n get mediaStreamTrack() {\n return this._mediaStreamTrack;\n }\n /**\n * @internal\n * used for keep mediaStream's first id, since it's id might change\n * if we disable/enable a track\n */\n get mediaStreamID() {\n return this._mediaStreamID;\n }\n attach(element) {\n let elementType = 'audio';\n if (this.kind === Track.Kind.Video) {\n elementType = 'video';\n }\n if (this.attachedElements.length === 0 && this.kind === Track.Kind.Video) {\n this.addAppVisibilityListener();\n }\n if (!element) {\n if (elementType === 'audio') {\n recycledElements.forEach(e => {\n if (e.parentElement === null && !element) {\n element = e;\n }\n });\n if (element) {\n // remove it from pool\n recycledElements.splice(recycledElements.indexOf(element), 1);\n }\n }\n if (!element) {\n element = document.createElement(elementType);\n }\n }\n if (!this.attachedElements.includes(element)) {\n this.attachedElements.push(element);\n }\n // even if we believe it's already attached to the element, it's possible\n // the element's srcObject was set to something else out of band.\n // we'll want to re-attach it in that case\n attachToElement(this.mediaStreamTrack, element);\n // handle auto playback failures\n const allMediaStreamTracks = element.srcObject.getTracks();\n const hasAudio = allMediaStreamTracks.some(tr => tr.kind === 'audio');\n // manually play media to detect auto playback status\n element.play().then(() => {\n this.emit(hasAudio ? TrackEvent.AudioPlaybackStarted : TrackEvent.VideoPlaybackStarted);\n }).catch(e => {\n if (e.name === 'NotAllowedError') {\n this.emit(hasAudio ? TrackEvent.AudioPlaybackFailed : TrackEvent.VideoPlaybackFailed, e);\n } else if (e.name === 'AbortError') {\n // commonly triggered by another `play` request, only log for debugging purposes\n livekitLogger.debug(\"\".concat(hasAudio ? 'audio' : 'video', \" playback aborted, likely due to new play request\"));\n } else {\n livekitLogger.warn(\"could not playback \".concat(hasAudio ? 'audio' : 'video'), e);\n }\n // If audio playback isn't allowed make sure we still play back the video\n if (hasAudio && element && allMediaStreamTracks.some(tr => tr.kind === 'video') && e.name === 'NotAllowedError') {\n element.muted = true;\n element.play().catch(() => {\n // catch for Safari, exceeded options at this point to automatically play the media element\n });\n }\n });\n this.emit(TrackEvent.ElementAttached, element);\n return element;\n }\n detach(element) {\n try {\n // detach from a single element\n if (element) {\n detachTrack(this.mediaStreamTrack, element);\n const idx = this.attachedElements.indexOf(element);\n if (idx >= 0) {\n this.attachedElements.splice(idx, 1);\n this.recycleElement(element);\n this.emit(TrackEvent.ElementDetached, element);\n }\n return element;\n }\n const detached = [];\n this.attachedElements.forEach(elm => {\n detachTrack(this.mediaStreamTrack, elm);\n detached.push(elm);\n this.recycleElement(elm);\n this.emit(TrackEvent.ElementDetached, elm);\n });\n // remove all tracks\n this.attachedElements = [];\n return detached;\n } finally {\n if (this.attachedElements.length === 0) {\n this.removeAppVisibilityListener();\n }\n }\n }\n stop() {\n this.stopMonitor();\n this._mediaStreamTrack.stop();\n }\n enable() {\n this._mediaStreamTrack.enabled = true;\n }\n disable() {\n this._mediaStreamTrack.enabled = false;\n }\n /* @internal */\n stopMonitor() {\n if (this.monitorInterval) {\n clearInterval(this.monitorInterval);\n }\n if (this.timeSyncHandle) {\n cancelAnimationFrame(this.timeSyncHandle);\n }\n }\n /** @internal */\n updateLoggerOptions(loggerOptions) {\n if (loggerOptions.loggerName) {\n this.log = getLogger(loggerOptions.loggerName);\n }\n if (loggerOptions.loggerContextCb) {\n this.loggerContextCb = loggerOptions.loggerContextCb;\n }\n }\n recycleElement(element) {\n if (element instanceof HTMLAudioElement) {\n // we only need to re-use a single element\n let shouldCache = true;\n element.pause();\n recycledElements.forEach(e => {\n if (!e.parentElement) {\n shouldCache = false;\n }\n });\n if (shouldCache) {\n recycledElements.push(element);\n }\n }\n }\n handleAppVisibilityChanged() {\n return __awaiter(this, void 0, void 0, function* () {\n this.isInBackground = document.visibilityState === 'hidden';\n if (!this.isInBackground && this.kind === Track.Kind.Video) {\n setTimeout(() => this.attachedElements.forEach(el => el.play().catch(() => {\n /** catch clause necessary for Safari */\n })), 0);\n }\n });\n }\n addAppVisibilityListener() {\n if (isWeb()) {\n this.isInBackground = document.visibilityState === 'hidden';\n document.addEventListener('visibilitychange', this.appVisibilityChangedListener);\n } else {\n this.isInBackground = false;\n }\n }\n removeAppVisibilityListener() {\n if (isWeb()) {\n document.removeEventListener('visibilitychange', this.appVisibilityChangedListener);\n }\n }\n}\nfunction attachToElement(track, element) {\n let mediaStream;\n if (element.srcObject instanceof MediaStream) {\n mediaStream = element.srcObject;\n } else {\n mediaStream = new MediaStream();\n }\n // check if track matches existing track\n let existingTracks;\n if (track.kind === 'audio') {\n existingTracks = mediaStream.getAudioTracks();\n } else {\n existingTracks = mediaStream.getVideoTracks();\n }\n if (!existingTracks.includes(track)) {\n existingTracks.forEach(et => {\n mediaStream.removeTrack(et);\n });\n mediaStream.addTrack(track);\n }\n if (!isSafari() || !(element instanceof HTMLVideoElement)) {\n // when in low power mode (applies to both macOS and iOS), Safari will show a play/pause overlay\n // when a video starts that has the `autoplay` attribute is set.\n // we work around this by _not_ setting the autoplay attribute on safari and instead call `setTimeout(() => el.play(),0)` further down\n element.autoplay = true;\n }\n // In case there are no audio tracks present on the mediastream, we set the element as muted to ensure autoplay works\n element.muted = mediaStream.getAudioTracks().length === 0;\n if (element instanceof HTMLVideoElement) {\n element.playsInline = true;\n }\n // avoid flicker\n if (element.srcObject !== mediaStream) {\n element.srcObject = mediaStream;\n if ((isSafari() || isFireFox()) && element instanceof HTMLVideoElement) {\n // Firefox also has a timing issue where video doesn't actually get attached unless\n // performed out-of-band\n // Safari 15 has a bug where in certain layouts, video element renders\n // black until the page is resized or other changes take place.\n // Resetting the src triggers it to render.\n // https://developer.apple.com/forums/thread/690523\n setTimeout(() => {\n element.srcObject = mediaStream;\n // Safari 15 sometimes fails to start a video\n // when the window is backgrounded before the first frame is drawn\n // manually calling play here seems to fix that\n element.play().catch(() => {\n /** do nothing */\n });\n }, 0);\n }\n }\n}\n/** @internal */\nfunction detachTrack(track, element) {\n if (element.srcObject instanceof MediaStream) {\n const mediaStream = element.srcObject;\n mediaStream.removeTrack(track);\n if (mediaStream.getTracks().length > 0) {\n element.srcObject = mediaStream;\n } else {\n element.srcObject = null;\n }\n }\n}\n(function (Track) {\n let Kind;\n (function (Kind) {\n Kind[\"Audio\"] = \"audio\";\n Kind[\"Video\"] = \"video\";\n Kind[\"Unknown\"] = \"unknown\";\n })(Kind = Track.Kind || (Track.Kind = {}));\n let Source;\n (function (Source) {\n Source[\"Camera\"] = \"camera\";\n Source[\"Microphone\"] = \"microphone\";\n Source[\"ScreenShare\"] = \"screen_share\";\n Source[\"ScreenShareAudio\"] = \"screen_share_audio\";\n Source[\"Unknown\"] = \"unknown\";\n })(Source = Track.Source || (Track.Source = {}));\n let StreamState$1;\n (function (StreamState) {\n StreamState[\"Active\"] = \"active\";\n StreamState[\"Paused\"] = \"paused\";\n StreamState[\"Unknown\"] = \"unknown\";\n })(StreamState$1 = Track.StreamState || (Track.StreamState = {}));\n /** @internal */\n function kindToProto(k) {\n switch (k) {\n case Kind.Audio:\n return TrackType.AUDIO;\n case Kind.Video:\n return TrackType.VIDEO;\n default:\n // FIXME this was UNRECOGNIZED before\n return TrackType.DATA;\n }\n }\n Track.kindToProto = kindToProto;\n /** @internal */\n function kindFromProto(t) {\n switch (t) {\n case TrackType.AUDIO:\n return Kind.Audio;\n case TrackType.VIDEO:\n return Kind.Video;\n default:\n return Kind.Unknown;\n }\n }\n Track.kindFromProto = kindFromProto;\n /** @internal */\n function sourceToProto(s) {\n switch (s) {\n case Source.Camera:\n return TrackSource.CAMERA;\n case Source.Microphone:\n return TrackSource.MICROPHONE;\n case Source.ScreenShare:\n return TrackSource.SCREEN_SHARE;\n case Source.ScreenShareAudio:\n return TrackSource.SCREEN_SHARE_AUDIO;\n default:\n return TrackSource.UNKNOWN;\n }\n }\n Track.sourceToProto = sourceToProto;\n /** @internal */\n function sourceFromProto(s) {\n switch (s) {\n case TrackSource.CAMERA:\n return Source.Camera;\n case TrackSource.MICROPHONE:\n return Source.Microphone;\n case TrackSource.SCREEN_SHARE:\n return Source.ScreenShare;\n case TrackSource.SCREEN_SHARE_AUDIO:\n return Source.ScreenShareAudio;\n default:\n return Source.Unknown;\n }\n }\n Track.sourceFromProto = sourceFromProto;\n /** @internal */\n function streamStateFromProto(s) {\n switch (s) {\n case StreamState.ACTIVE:\n return StreamState$1.Active;\n case StreamState.PAUSED:\n return StreamState$1.Paused;\n default:\n return StreamState$1.Unknown;\n }\n }\n Track.streamStateFromProto = streamStateFromProto;\n})(Track || (Track = {}));\n\nfunction mergeDefaultOptions(options, audioDefaults, videoDefaults) {\n var _a;\n const opts = (_a = cloneDeep(options)) !== null && _a !== void 0 ? _a : {};\n if (opts.audio === true) opts.audio = {};\n if (opts.video === true) opts.video = {};\n // use defaults\n if (opts.audio) {\n mergeObjectWithoutOverwriting(opts.audio, audioDefaults);\n }\n if (opts.video) {\n mergeObjectWithoutOverwriting(opts.video, videoDefaults);\n }\n return opts;\n}\nfunction mergeObjectWithoutOverwriting(mainObject, objectToMerge) {\n Object.keys(objectToMerge).forEach(key => {\n if (mainObject[key] === undefined) mainObject[key] = objectToMerge[key];\n });\n return mainObject;\n}\nfunction constraintsForOptions(options) {\n const constraints = {};\n if (options.video) {\n // default video options\n if (typeof options.video === 'object') {\n const videoOptions = {};\n const target = videoOptions;\n const source = options.video;\n Object.keys(source).forEach(key => {\n switch (key) {\n case 'resolution':\n // flatten VideoResolution fields\n mergeObjectWithoutOverwriting(target, source.resolution);\n break;\n default:\n target[key] = source[key];\n }\n });\n constraints.video = videoOptions;\n } else {\n constraints.video = options.video;\n }\n } else {\n constraints.video = false;\n }\n if (options.audio) {\n if (typeof options.audio === 'object') {\n constraints.audio = options.audio;\n } else {\n constraints.audio = true;\n }\n } else {\n constraints.audio = false;\n }\n return constraints;\n}\n/**\n * This function detects silence on a given [[Track]] instance.\n * Returns true if the track seems to be entirely silent.\n */\nfunction detectSilence(track_1) {\n return __awaiter(this, arguments, void 0, function (track) {\n let timeOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n return function* () {\n const ctx = getNewAudioContext();\n if (ctx) {\n const analyser = ctx.createAnalyser();\n analyser.fftSize = 2048;\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n const source = ctx.createMediaStreamSource(new MediaStream([track.mediaStreamTrack]));\n source.connect(analyser);\n yield sleep(timeOffset);\n analyser.getByteTimeDomainData(dataArray);\n const someNoise = dataArray.some(sample => sample !== 128 && sample !== 0);\n ctx.close();\n return !someNoise;\n }\n return false;\n }();\n });\n}\n/**\n * @internal\n */\nfunction getNewAudioContext() {\n const AudioContext =\n // @ts-ignore\n typeof window !== 'undefined' && (window.AudioContext || window.webkitAudioContext);\n if (AudioContext) {\n return new AudioContext({\n latencyHint: 'interactive'\n });\n }\n}\n/**\n * @internal\n */\nfunction sourceToKind(source) {\n if (source === Track.Source.Microphone) {\n return 'audioinput';\n } else if (source === Track.Source.Camera) {\n return 'videoinput';\n } else {\n return undefined;\n }\n}\n/**\n * @internal\n */\nfunction screenCaptureToDisplayMediaStreamOptions(options) {\n var _a, _b;\n let videoConstraints = (_a = options.video) !== null && _a !== void 0 ? _a : true;\n // treat 0 as uncapped\n if (options.resolution && options.resolution.width > 0 && options.resolution.height > 0) {\n videoConstraints = typeof videoConstraints === 'boolean' ? {} : videoConstraints;\n if (isSafari()) {\n videoConstraints = Object.assign(Object.assign({}, videoConstraints), {\n width: {\n max: options.resolution.width\n },\n height: {\n max: options.resolution.height\n },\n frameRate: options.resolution.frameRate\n });\n } else {\n videoConstraints = Object.assign(Object.assign({}, videoConstraints), {\n width: {\n ideal: options.resolution.width\n },\n height: {\n ideal: options.resolution.height\n },\n frameRate: options.resolution.frameRate\n });\n }\n }\n return {\n audio: (_b = options.audio) !== null && _b !== void 0 ? _b : false,\n video: videoConstraints,\n // @ts-expect-error support for experimental display media features\n controller: options.controller,\n selfBrowserSurface: options.selfBrowserSurface,\n surfaceSwitching: options.surfaceSwitching,\n systemAudio: options.systemAudio,\n preferCurrentTab: options.preferCurrentTab\n };\n}\nfunction mimeTypeToVideoCodecString(mimeType) {\n return mimeType.split('/')[1].toLowerCase();\n}\nfunction getTrackPublicationInfo(tracks) {\n const infos = [];\n tracks.forEach(track => {\n if (track.track !== undefined) {\n infos.push(new TrackPublishedResponse({\n cid: track.track.mediaStreamID,\n track: track.trackInfo\n }));\n }\n });\n return infos;\n}\nfunction getLogContextFromTrack(track) {\n if (track instanceof Track) {\n return {\n trackID: track.sid,\n source: track.source,\n muted: track.isMuted,\n enabled: track.mediaStreamTrack.enabled,\n kind: track.kind,\n streamID: track.mediaStreamID,\n streamTrackID: track.mediaStreamTrack.id\n };\n } else {\n return {\n trackID: track.trackSid,\n enabled: track.isEnabled,\n muted: track.isMuted,\n trackInfo: Object.assign({\n mimeType: track.mimeType,\n name: track.trackName,\n encrypted: track.isEncrypted,\n kind: track.kind,\n source: track.source\n }, track.track ? getLogContextFromTrack(track.track) : {})\n };\n }\n}\nfunction supportsSynchronizationSources() {\n return typeof RTCRtpReceiver !== 'undefined' && 'getSynchronizationSources' in RTCRtpReceiver;\n}\nfunction diffAttributes(oldValues, newValues) {\n var _a;\n if (oldValues === undefined) {\n oldValues = {};\n }\n if (newValues === undefined) {\n newValues = {};\n }\n const allKeys = [...Object.keys(newValues), ...Object.keys(oldValues)];\n const diff = {};\n for (const key of allKeys) {\n if (oldValues[key] !== newValues[key]) {\n diff[key] = (_a = newValues[key]) !== null && _a !== void 0 ? _a : '';\n }\n }\n return diff;\n}\n\nconst separator = '|';\nconst ddExtensionURI = 'https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension';\nfunction unpackStreamId(packed) {\n const parts = packed.split(separator);\n if (parts.length > 1) {\n return [parts[0], packed.substr(parts[0].length + 1)];\n }\n return [packed, ''];\n}\nfunction sleep(duration) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(resolve => CriticalTimers.setTimeout(resolve, duration));\n });\n}\n/** @internal */\nfunction supportsTransceiver() {\n return 'addTransceiver' in RTCPeerConnection.prototype;\n}\n/** @internal */\nfunction supportsAddTrack() {\n return 'addTrack' in RTCPeerConnection.prototype;\n}\nfunction supportsAdaptiveStream() {\n return typeof ResizeObserver !== undefined && typeof IntersectionObserver !== undefined;\n}\nfunction supportsDynacast() {\n return supportsTransceiver();\n}\nfunction supportsAV1() {\n if (!('getCapabilities' in RTCRtpSender)) {\n return false;\n }\n if (isSafari()) {\n // Safari 17 on iPhone14 reports AV1 capability, but does not actually support it\n return false;\n }\n const capabilities = RTCRtpSender.getCapabilities('video');\n let hasAV1 = false;\n if (capabilities) {\n for (const codec of capabilities.codecs) {\n if (codec.mimeType === 'video/AV1') {\n hasAV1 = true;\n break;\n }\n }\n }\n return hasAV1;\n}\nfunction supportsVP9() {\n if (!('getCapabilities' in RTCRtpSender)) {\n return false;\n }\n if (isFireFox()) {\n // technically speaking FireFox supports VP9, but SVC publishing is broken\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1633876\n return false;\n }\n if (isSafari()) {\n const browser = getBrowser();\n if ((browser === null || browser === void 0 ? void 0 : browser.version) && compareVersions(browser.version, '16') < 0) {\n // Safari 16 and below does not support VP9\n return false;\n }\n }\n const capabilities = RTCRtpSender.getCapabilities('video');\n let hasVP9 = false;\n if (capabilities) {\n for (const codec of capabilities.codecs) {\n if (codec.mimeType === 'video/VP9') {\n hasVP9 = true;\n break;\n }\n }\n }\n return hasVP9;\n}\nfunction isSVCCodec(codec) {\n return codec === 'av1' || codec === 'vp9';\n}\nfunction supportsSetSinkId(elm) {\n if (!document) {\n return false;\n }\n if (!elm) {\n elm = document.createElement('audio');\n }\n return 'setSinkId' in elm;\n}\nfunction isBrowserSupported() {\n if (typeof RTCPeerConnection === 'undefined') {\n return false;\n }\n return supportsTransceiver() || supportsAddTrack();\n}\nfunction isFireFox() {\n var _a;\n return ((_a = getBrowser()) === null || _a === void 0 ? void 0 : _a.name) === 'Firefox';\n}\nfunction isSafari() {\n var _a;\n return ((_a = getBrowser()) === null || _a === void 0 ? void 0 : _a.name) === 'Safari';\n}\nfunction isSafari17() {\n const b = getBrowser();\n return (b === null || b === void 0 ? void 0 : b.name) === 'Safari' && b.version.startsWith('17.');\n}\nfunction isMobile() {\n var _a, _b;\n if (!isWeb()) return false;\n return (\n // @ts-expect-error `userAgentData` is not yet part of typescript\n (_b = (_a = navigator.userAgentData) === null || _a === void 0 ? void 0 : _a.mobile) !== null && _b !== void 0 ? _b : /Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent)\n );\n}\nfunction isE2EESimulcastSupported() {\n const browser = getBrowser();\n const supportedSafariVersion = '17.2'; // see https://bugs.webkit.org/show_bug.cgi?id=257803\n if (browser) {\n if (browser.name !== 'Safari' && browser.os !== 'iOS') {\n return true;\n } else if (browser.os === 'iOS' && browser.osVersion && compareVersions(supportedSafariVersion, browser.osVersion) >= 0) {\n return true;\n } else if (browser.name === 'Safari' && compareVersions(supportedSafariVersion, browser.version) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n}\nfunction isWeb() {\n return typeof document !== 'undefined';\n}\nfunction isReactNative() {\n // navigator.product is deprecated on browsers, but will be set appropriately for react-native.\n return navigator.product == 'ReactNative';\n}\nfunction isCloud(serverUrl) {\n return serverUrl.hostname.endsWith('.livekit.cloud') || serverUrl.hostname.endsWith('.livekit.run');\n}\nfunction getLKReactNativeInfo() {\n // global defined only for ReactNative.\n // @ts-ignore\n if (global && global.LiveKitReactNativeGlobal) {\n // @ts-ignore\n return global.LiveKitReactNativeGlobal;\n }\n return undefined;\n}\nfunction getReactNativeOs() {\n if (!isReactNative()) {\n return undefined;\n }\n let info = getLKReactNativeInfo();\n if (info) {\n return info.platform;\n }\n return undefined;\n}\nfunction getDevicePixelRatio() {\n if (isWeb()) {\n return window.devicePixelRatio;\n }\n if (isReactNative()) {\n let info = getLKReactNativeInfo();\n if (info) {\n return info.devicePixelRatio;\n }\n }\n return 1;\n}\nfunction compareVersions(v1, v2) {\n const parts1 = v1.split('.');\n const parts2 = v2.split('.');\n const k = Math.min(parts1.length, parts2.length);\n for (let i = 0; i < k; ++i) {\n const p1 = parseInt(parts1[i], 10);\n const p2 = parseInt(parts2[i], 10);\n if (p1 > p2) return 1;\n if (p1 < p2) return -1;\n if (i === k - 1 && p1 === p2) return 0;\n }\n if (v1 === '' && v2 !== '') {\n return -1;\n } else if (v2 === '') {\n return 1;\n }\n return parts1.length == parts2.length ? 0 : parts1.length < parts2.length ? -1 : 1;\n}\nfunction roDispatchCallback(entries) {\n for (const entry of entries) {\n entry.target.handleResize(entry);\n }\n}\nfunction ioDispatchCallback(entries) {\n for (const entry of entries) {\n entry.target.handleVisibilityChanged(entry);\n }\n}\nlet resizeObserver = null;\nconst getResizeObserver = () => {\n if (!resizeObserver) resizeObserver = new ResizeObserver(roDispatchCallback);\n return resizeObserver;\n};\nlet intersectionObserver = null;\nconst getIntersectionObserver = () => {\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver(ioDispatchCallback, {\n root: null,\n rootMargin: '0px'\n });\n }\n return intersectionObserver;\n};\nfunction getClientInfo() {\n var _a;\n const info = new ClientInfo({\n sdk: ClientInfo_SDK.JS,\n protocol: protocolVersion,\n version\n });\n if (isReactNative()) {\n info.os = (_a = getReactNativeOs()) !== null && _a !== void 0 ? _a : '';\n }\n return info;\n}\nlet emptyVideoStreamTrack;\nfunction getEmptyVideoStreamTrack() {\n if (!emptyVideoStreamTrack) {\n emptyVideoStreamTrack = createDummyVideoStreamTrack();\n }\n return emptyVideoStreamTrack.clone();\n}\nfunction createDummyVideoStreamTrack() {\n let width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;\n let height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n let enabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let paintContent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n const canvas = document.createElement('canvas');\n // the canvas size is set to 16 by default, because electron apps seem to fail with smaller values\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n ctx === null || ctx === void 0 ? void 0 : ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (paintContent && ctx) {\n ctx.beginPath();\n ctx.arc(width / 2, height / 2, 50, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fillStyle = 'grey';\n ctx.fill();\n }\n // @ts-ignore\n const dummyStream = canvas.captureStream();\n const [dummyTrack] = dummyStream.getTracks();\n if (!dummyTrack) {\n throw Error('Could not get empty media stream video track');\n }\n dummyTrack.enabled = enabled;\n return dummyTrack;\n}\nlet emptyAudioStreamTrack;\nfunction getEmptyAudioStreamTrack() {\n if (!emptyAudioStreamTrack) {\n // implementation adapted from https://blog.mozilla.org/webrtc/warm-up-with-replacetrack/\n const ctx = new AudioContext();\n const oscillator = ctx.createOscillator();\n const gain = ctx.createGain();\n gain.gain.setValueAtTime(0, 0);\n const dst = ctx.createMediaStreamDestination();\n oscillator.connect(gain);\n gain.connect(dst);\n oscillator.start();\n [emptyAudioStreamTrack] = dst.stream.getAudioTracks();\n if (!emptyAudioStreamTrack) {\n throw Error('Could not get empty media stream audio track');\n }\n emptyAudioStreamTrack.enabled = false;\n }\n return emptyAudioStreamTrack.clone();\n}\nclass Future {\n constructor(futureBase, onFinally) {\n this.onFinally = onFinally;\n this.promise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this.resolve = resolve;\n this.reject = reject;\n if (futureBase) {\n yield futureBase(resolve, reject);\n }\n })).finally(() => {\n var _a;\n return (_a = this.onFinally) === null || _a === void 0 ? void 0 : _a.call(this);\n });\n }\n}\n/**\n * Creates and returns an analyser web audio node that is attached to the provided track.\n * Additionally returns a convenience method `calculateVolume` to perform instant volume readings on that track.\n * Call the returned `cleanup` function to close the audioContext that has been created for the instance of this helper\n */\nfunction createAudioAnalyser(track, options) {\n const opts = Object.assign({\n cloneTrack: false,\n fftSize: 2048,\n smoothingTimeConstant: 0.8,\n minDecibels: -100,\n maxDecibels: -80\n }, options);\n const audioContext = getNewAudioContext();\n if (!audioContext) {\n throw new Error('Audio Context not supported on this browser');\n }\n const streamTrack = opts.cloneTrack ? track.mediaStreamTrack.clone() : track.mediaStreamTrack;\n const mediaStreamSource = audioContext.createMediaStreamSource(new MediaStream([streamTrack]));\n const analyser = audioContext.createAnalyser();\n analyser.minDecibels = opts.minDecibels;\n analyser.maxDecibels = opts.maxDecibels;\n analyser.fftSize = opts.fftSize;\n analyser.smoothingTimeConstant = opts.smoothingTimeConstant;\n mediaStreamSource.connect(analyser);\n const dataArray = new Uint8Array(analyser.frequencyBinCount);\n /**\n * Calculates the current volume of the track in the range from 0 to 1\n */\n const calculateVolume = () => {\n analyser.getByteFrequencyData(dataArray);\n let sum = 0;\n for (const amplitude of dataArray) {\n sum += Math.pow(amplitude / 255, 2);\n }\n const volume = Math.sqrt(sum / dataArray.length);\n return volume;\n };\n const cleanup = () => __awaiter(this, void 0, void 0, function* () {\n yield audioContext.close();\n if (opts.cloneTrack) {\n streamTrack.stop();\n }\n });\n return {\n calculateVolume,\n analyser,\n cleanup\n };\n}\nfunction isVideoCodec(maybeCodec) {\n return videoCodecs.includes(maybeCodec);\n}\nfunction unwrapConstraint(constraint) {\n if (typeof constraint === 'string' || typeof constraint === 'number') {\n return constraint;\n }\n if (Array.isArray(constraint)) {\n return constraint[0];\n }\n if (constraint.exact) {\n if (Array.isArray(constraint.exact)) {\n return constraint.exact[0];\n }\n return constraint.exact;\n }\n if (constraint.ideal) {\n if (Array.isArray(constraint.ideal)) {\n return constraint.ideal[0];\n }\n return constraint.ideal;\n }\n throw Error('could not unwrap constraint');\n}\nfunction toWebsocketUrl(url) {\n if (url.startsWith('http')) {\n return url.replace(/^(http)/, 'ws');\n }\n return url;\n}\nfunction toHttpUrl(url) {\n if (url.startsWith('ws')) {\n return url.replace(/^(ws)/, 'http');\n }\n return url;\n}\nfunction extractTranscriptionSegments(transcription, firstReceivedTimesMap) {\n return transcription.segments.map(_ref => {\n let {\n id,\n text,\n language,\n startTime,\n endTime,\n final\n } = _ref;\n var _a;\n const firstReceivedTime = (_a = firstReceivedTimesMap.get(id)) !== null && _a !== void 0 ? _a : Date.now();\n const lastReceivedTime = Date.now();\n if (final) {\n firstReceivedTimesMap.delete(id);\n } else {\n firstReceivedTimesMap.set(id, firstReceivedTime);\n }\n return {\n id,\n text,\n startTime: Number.parseInt(startTime.toString()),\n endTime: Number.parseInt(endTime.toString()),\n final,\n language,\n firstReceivedTime,\n lastReceivedTime\n };\n });\n}\nfunction extractChatMessage(msg) {\n const {\n id,\n timestamp,\n message,\n editTimestamp\n } = msg;\n return {\n id,\n timestamp: Number.parseInt(timestamp.toString()),\n editTimestamp: editTimestamp ? Number.parseInt(editTimestamp.toString()) : undefined,\n message\n };\n}\nfunction getDisconnectReasonFromConnectionError(e) {\n switch (e.reason) {\n case ConnectionErrorReason.LeaveRequest:\n return e.context;\n case ConnectionErrorReason.Cancelled:\n return DisconnectReason.CLIENT_INITIATED;\n case ConnectionErrorReason.NotAllowed:\n return DisconnectReason.USER_REJECTED;\n case ConnectionErrorReason.ServerUnreachable:\n return DisconnectReason.JOIN_FAILURE;\n default:\n return DisconnectReason.UNKNOWN_REASON;\n }\n}\n\nconst defaultId = 'default';\nclass DeviceManager {\n static getInstance() {\n if (this.instance === undefined) {\n this.instance = new DeviceManager();\n }\n return this.instance;\n }\n getDevices(kind_1) {\n return __awaiter(this, arguments, void 0, function (kind) {\n var _this = this;\n let requestPermissions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return function* () {\n var _a;\n if (((_a = DeviceManager.userMediaPromiseMap) === null || _a === void 0 ? void 0 : _a.size) > 0) {\n livekitLogger.debug('awaiting getUserMedia promise');\n try {\n if (kind) {\n yield DeviceManager.userMediaPromiseMap.get(kind);\n } else {\n yield Promise.all(DeviceManager.userMediaPromiseMap.values());\n }\n } catch (e) {\n livekitLogger.warn('error waiting for media permissons');\n }\n }\n let devices = yield navigator.mediaDevices.enumerateDevices();\n if (requestPermissions &&\n // for safari we need to skip this check, as otherwise it will re-acquire user media and fail on iOS https://bugs.webkit.org/show_bug.cgi?id=179363\n !(isSafari() && _this.hasDeviceInUse(kind))) {\n const isDummyDeviceOrEmpty = devices.filter(d => d.kind === kind).length === 0 || devices.some(device => {\n const noLabel = device.label === '';\n const isRelevant = kind ? device.kind === kind : true;\n return noLabel && isRelevant;\n });\n if (isDummyDeviceOrEmpty) {\n const permissionsToAcquire = {\n video: kind !== 'audioinput' && kind !== 'audiooutput',\n audio: kind !== 'videoinput'\n };\n const stream = yield navigator.mediaDevices.getUserMedia(permissionsToAcquire);\n devices = yield navigator.mediaDevices.enumerateDevices();\n stream.getTracks().forEach(track => {\n track.stop();\n });\n }\n }\n if (kind) {\n devices = devices.filter(device => device.kind === kind);\n }\n return devices;\n }();\n });\n }\n normalizeDeviceId(kind, deviceId, groupId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (deviceId !== defaultId) {\n return deviceId;\n }\n // resolve actual device id if it's 'default': Chrome returns it when no\n // device has been chosen\n const devices = yield this.getDevices(kind);\n const defaultDevice = devices.find(d => d.deviceId === defaultId);\n if (!defaultDevice) {\n livekitLogger.warn('could not reliably determine default device');\n return undefined;\n }\n const device = devices.find(d => d.deviceId !== defaultId && d.groupId === (groupId !== null && groupId !== void 0 ? groupId : defaultDevice.groupId));\n if (!device) {\n livekitLogger.warn('could not reliably determine default device');\n return undefined;\n }\n return device === null || device === void 0 ? void 0 : device.deviceId;\n });\n }\n hasDeviceInUse(kind) {\n return kind ? DeviceManager.userMediaPromiseMap.has(kind) : DeviceManager.userMediaPromiseMap.size > 0;\n }\n}\nDeviceManager.mediaDeviceKinds = ['audioinput', 'audiooutput', 'videoinput'];\nDeviceManager.userMediaPromiseMap = new Map();\n\nconst defaultDimensionsTimeout = 1000;\nclass LocalTrack extends Track {\n /** @internal */\n get sender() {\n return this._sender;\n }\n /** @internal */\n set sender(sender) {\n this._sender = sender;\n }\n get constraints() {\n return this._constraints;\n }\n /**\n *\n * @param mediaTrack\n * @param kind\n * @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks\n * @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK\n */\n constructor(mediaTrack, kind, constraints) {\n let userProvidedTrack = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let loggerOptions = arguments.length > 4 ? arguments[4] : undefined;\n super(mediaTrack, kind, loggerOptions);\n this.manuallyStopped = false;\n this._isUpstreamPaused = false;\n this.handleTrackMuteEvent = () => this.debouncedTrackMuteHandler().catch(() => this.log.debug('track mute bounce got cancelled by an unmute event', this.logContext));\n this.debouncedTrackMuteHandler = r(() => __awaiter(this, void 0, void 0, function* () {\n yield this.pauseUpstream();\n }), 5000);\n this.handleTrackUnmuteEvent = () => __awaiter(this, void 0, void 0, function* () {\n this.debouncedTrackMuteHandler.cancel('unmute');\n yield this.resumeUpstream();\n });\n this.handleEnded = () => {\n if (this.isInBackground) {\n this.reacquireTrack = true;\n }\n this._mediaStreamTrack.removeEventListener('mute', this.handleTrackMuteEvent);\n this._mediaStreamTrack.removeEventListener('unmute', this.handleTrackUnmuteEvent);\n this.emit(TrackEvent.Ended, this);\n };\n this.reacquireTrack = false;\n this.providedByUser = userProvidedTrack;\n this.muteLock = new h();\n this.pauseUpstreamLock = new h();\n this.processorLock = new h();\n this.restartLock = new h();\n this.setMediaStreamTrack(mediaTrack, true);\n // added to satisfy TS compiler, constraints are synced with MediaStreamTrack\n this._constraints = mediaTrack.getConstraints();\n if (constraints) {\n this._constraints = constraints;\n }\n }\n get id() {\n return this._mediaStreamTrack.id;\n }\n get dimensions() {\n if (this.kind !== Track.Kind.Video) {\n return undefined;\n }\n const {\n width,\n height\n } = this._mediaStreamTrack.getSettings();\n if (width && height) {\n return {\n width,\n height\n };\n }\n return undefined;\n }\n get isUpstreamPaused() {\n return this._isUpstreamPaused;\n }\n get isUserProvided() {\n return this.providedByUser;\n }\n get mediaStreamTrack() {\n var _a, _b;\n return (_b = (_a = this.processor) === null || _a === void 0 ? void 0 : _a.processedTrack) !== null && _b !== void 0 ? _b : this._mediaStreamTrack;\n }\n /**\n * @internal\n * returns mediaStreamTrack settings of the capturing mediastreamtrack source - ignoring processors\n */\n getSourceTrackSettings() {\n return this._mediaStreamTrack.getSettings();\n }\n setMediaStreamTrack(newTrack, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if (newTrack === this._mediaStreamTrack && !force) {\n return;\n }\n if (this._mediaStreamTrack) {\n // detach\n this.attachedElements.forEach(el => {\n detachTrack(this._mediaStreamTrack, el);\n });\n this.debouncedTrackMuteHandler.cancel('new-track');\n this._mediaStreamTrack.removeEventListener('ended', this.handleEnded);\n this._mediaStreamTrack.removeEventListener('mute', this.handleTrackMuteEvent);\n this._mediaStreamTrack.removeEventListener('unmute', this.handleTrackUnmuteEvent);\n }\n this.mediaStream = new MediaStream([newTrack]);\n if (newTrack) {\n newTrack.addEventListener('ended', this.handleEnded);\n // when underlying track emits mute, it indicates that the device is unable\n // to produce media. In this case we'll need to signal with remote that\n // the track is \"muted\"\n // note this is different from LocalTrack.mute because we do not want to\n // touch MediaStreamTrack.enabled\n newTrack.addEventListener('mute', this.handleTrackMuteEvent);\n newTrack.addEventListener('unmute', this.handleTrackUnmuteEvent);\n this._constraints = newTrack.getConstraints();\n }\n let processedTrack;\n if (this.processor && newTrack) {\n const unlock = yield this.processorLock.lock();\n try {\n this.log.debug('restarting processor', this.logContext);\n if (this.kind === 'unknown') {\n throw TypeError('cannot set processor on track of unknown kind');\n }\n if (this.processorElement) {\n attachToElement(newTrack, this.processorElement);\n // ensure the processorElement itself stays muted\n this.processorElement.muted = true;\n }\n yield this.processor.restart({\n track: newTrack,\n kind: this.kind,\n element: this.processorElement\n });\n processedTrack = this.processor.processedTrack;\n } finally {\n unlock();\n }\n }\n if (this.sender) {\n yield this.sender.replaceTrack(processedTrack !== null && processedTrack !== void 0 ? processedTrack : newTrack);\n }\n // if `newTrack` is different from the existing track, stop the\n // older track just before replacing it\n if (!this.providedByUser && this._mediaStreamTrack !== newTrack) {\n this._mediaStreamTrack.stop();\n }\n this._mediaStreamTrack = newTrack;\n if (newTrack) {\n // sync muted state with the enabled state of the newly provided track\n this._mediaStreamTrack.enabled = !this.isMuted;\n // when a valid track is replace, we'd want to start producing\n yield this.resumeUpstream();\n this.attachedElements.forEach(el => {\n attachToElement(processedTrack !== null && processedTrack !== void 0 ? processedTrack : newTrack, el);\n });\n }\n });\n }\n waitForDimensions() {\n return __awaiter(this, arguments, void 0, function () {\n var _this = this;\n let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDimensionsTimeout;\n return function* () {\n var _a;\n if (_this.kind === Track.Kind.Audio) {\n throw new Error('cannot get dimensions for audio tracks');\n }\n if (((_a = getBrowser()) === null || _a === void 0 ? void 0 : _a.os) === 'iOS') {\n // browsers report wrong initial resolution on iOS.\n // when slightly delaying the call to .getSettings(), the correct resolution is being reported\n yield sleep(10);\n }\n const started = Date.now();\n while (Date.now() - started < timeout) {\n const dims = _this.dimensions;\n if (dims) {\n return dims;\n }\n yield sleep(50);\n }\n throw new TrackInvalidError('unable to get track dimensions after timeout');\n }();\n });\n }\n /**\n * @returns DeviceID of the device that is currently being used for this track\n */\n getDeviceId() {\n return __awaiter(this, arguments, void 0, function () {\n var _this2 = this;\n let normalize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function* () {\n // screen share doesn't have a usable device id\n if (_this2.source === Track.Source.ScreenShare) {\n return;\n }\n const {\n deviceId,\n groupId\n } = _this2._mediaStreamTrack.getSettings();\n const kind = _this2.kind === Track.Kind.Audio ? 'audioinput' : 'videoinput';\n return normalize ? DeviceManager.getInstance().normalizeDeviceId(kind, deviceId, groupId) : deviceId;\n }();\n });\n }\n mute() {\n return __awaiter(this, void 0, void 0, function* () {\n this.setTrackMuted(true);\n return this;\n });\n }\n unmute() {\n return __awaiter(this, void 0, void 0, function* () {\n this.setTrackMuted(false);\n return this;\n });\n }\n replaceTrack(track, userProvidedOrOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.sender) {\n throw new TrackInvalidError('unable to replace an unpublished track');\n }\n let userProvidedTrack;\n let stopProcessor;\n if (typeof userProvidedOrOptions === 'boolean') {\n userProvidedTrack = userProvidedOrOptions;\n } else if (userProvidedOrOptions !== undefined) {\n userProvidedTrack = userProvidedOrOptions.userProvidedTrack;\n stopProcessor = userProvidedOrOptions.stopProcessor;\n }\n this.providedByUser = userProvidedTrack !== null && userProvidedTrack !== void 0 ? userProvidedTrack : true;\n this.log.debug('replace MediaStreamTrack', this.logContext);\n yield this.setMediaStreamTrack(track);\n // this must be synced *after* setting mediaStreamTrack above, since it relies\n // on the previous state in order to cleanup\n if (stopProcessor && this.processor) {\n yield this.stopProcessor();\n }\n return this;\n });\n }\n restart(constraints) {\n return __awaiter(this, void 0, void 0, function* () {\n this.manuallyStopped = false;\n const unlock = yield this.restartLock.lock();\n try {\n if (!constraints) {\n constraints = this._constraints;\n }\n this.log.debug('restarting track with constraints', Object.assign(Object.assign({}, this.logContext), {\n constraints\n }));\n const streamConstraints = {\n audio: false,\n video: false\n };\n if (this.kind === Track.Kind.Video) {\n streamConstraints.video = constraints;\n } else {\n streamConstraints.audio = constraints;\n }\n // these steps are duplicated from setMediaStreamTrack because we must stop\n // the previous tracks before new tracks can be acquired\n this.attachedElements.forEach(el => {\n detachTrack(this.mediaStreamTrack, el);\n });\n this._mediaStreamTrack.removeEventListener('ended', this.handleEnded);\n // on Safari, the old audio track must be stopped before attempting to acquire\n // the new track, otherwise the new track will stop with\n // 'A MediaStreamTrack ended due to a capture failure`\n this._mediaStreamTrack.stop();\n // create new track and attach\n const mediaStream = yield navigator.mediaDevices.getUserMedia(streamConstraints);\n const newTrack = mediaStream.getTracks()[0];\n newTrack.addEventListener('ended', this.handleEnded);\n this.log.debug('re-acquired MediaStreamTrack', this.logContext);\n yield this.setMediaStreamTrack(newTrack);\n this._constraints = constraints;\n this.emit(TrackEvent.Restarted, this);\n if (this.manuallyStopped) {\n this.log.warn('track was stopped during a restart, stopping restarted track', this.logContext);\n this.stop();\n }\n return this;\n } finally {\n unlock();\n }\n });\n }\n setTrackMuted(muted) {\n this.log.debug(\"setting \".concat(this.kind, \" track \").concat(muted ? 'muted' : 'unmuted'), this.logContext);\n if (this.isMuted === muted && this._mediaStreamTrack.enabled !== muted) {\n return;\n }\n this.isMuted = muted;\n this._mediaStreamTrack.enabled = !muted;\n this.emit(muted ? TrackEvent.Muted : TrackEvent.Unmuted, this);\n }\n get needsReAcquisition() {\n return this._mediaStreamTrack.readyState !== 'live' || this._mediaStreamTrack.muted || !this._mediaStreamTrack.enabled || this.reacquireTrack;\n }\n handleAppVisibilityChanged() {\n const _super = Object.create(null, {\n handleAppVisibilityChanged: {\n get: () => super.handleAppVisibilityChanged\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.handleAppVisibilityChanged.call(this);\n if (!isMobile()) return;\n this.log.debug(\"visibility changed, is in Background: \".concat(this.isInBackground), this.logContext);\n if (!this.isInBackground && this.needsReAcquisition && !this.isUserProvided && !this.isMuted) {\n this.log.debug(\"track needs to be reacquired, restarting \".concat(this.source), this.logContext);\n yield this.restart();\n this.reacquireTrack = false;\n }\n });\n }\n stop() {\n var _a;\n this.manuallyStopped = true;\n super.stop();\n this._mediaStreamTrack.removeEventListener('ended', this.handleEnded);\n this._mediaStreamTrack.removeEventListener('mute', this.handleTrackMuteEvent);\n this._mediaStreamTrack.removeEventListener('unmute', this.handleTrackUnmuteEvent);\n (_a = this.processor) === null || _a === void 0 ? void 0 : _a.destroy();\n this.processor = undefined;\n }\n /**\n * pauses publishing to the server without disabling the local MediaStreamTrack\n * this is used to display a user's own video locally while pausing publishing to\n * the server.\n * this API is unsupported on Safari < 12 due to a bug\n **/\n pauseUpstream() {\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.pauseUpstreamLock.lock();\n try {\n if (this._isUpstreamPaused === true) {\n return;\n }\n if (!this.sender) {\n this.log.warn('unable to pause upstream for an unpublished track', this.logContext);\n return;\n }\n this._isUpstreamPaused = true;\n this.emit(TrackEvent.UpstreamPaused, this);\n const browser = getBrowser();\n if ((browser === null || browser === void 0 ? void 0 : browser.name) === 'Safari' && compareVersions(browser.version, '12.0') < 0) {\n // https://bugs.webkit.org/show_bug.cgi?id=184911\n throw new DeviceUnsupportedError('pauseUpstream is not supported on Safari < 12.');\n }\n yield this.sender.replaceTrack(null);\n } finally {\n unlock();\n }\n });\n }\n resumeUpstream() {\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.pauseUpstreamLock.lock();\n try {\n if (this._isUpstreamPaused === false) {\n return;\n }\n if (!this.sender) {\n this.log.warn('unable to resume upstream for an unpublished track', this.logContext);\n return;\n }\n this._isUpstreamPaused = false;\n this.emit(TrackEvent.UpstreamResumed, this);\n // this operation is noop if mediastreamtrack is already being sent\n yield this.sender.replaceTrack(this.mediaStreamTrack);\n } finally {\n unlock();\n }\n });\n }\n /**\n * Gets the RTCStatsReport for the LocalTrack's underlying RTCRtpSender\n * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport\n *\n * @returns Promise<RTCStatsReport> | undefined\n */\n getRTCStatsReport() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!((_a = this.sender) === null || _a === void 0 ? void 0 : _a.getStats)) {\n return;\n }\n const statsReport = yield this.sender.getStats();\n return statsReport;\n });\n }\n /**\n * Sets a processor on this track.\n * See https://github.com/livekit/track-processors-js for example usage\n *\n * @experimental\n *\n * @param processor\n * @param showProcessedStreamLocally\n * @returns\n */\n setProcessor(processor_1) {\n return __awaiter(this, arguments, void 0, function (processor) {\n var _this3 = this;\n let showProcessedStreamLocally = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return function* () {\n var _a;\n const unlock = yield _this3.processorLock.lock();\n try {\n _this3.log.debug('setting up processor', _this3.logContext);\n const processorElement = document.createElement(_this3.kind);\n const processorOptions = {\n kind: _this3.kind,\n track: _this3._mediaStreamTrack,\n element: processorElement,\n audioContext: _this3.audioContext\n };\n yield processor.init(processorOptions);\n _this3.log.debug('processor initialized', _this3.logContext);\n if (_this3.processor) {\n yield _this3.stopProcessor();\n }\n if (_this3.kind === 'unknown') {\n throw TypeError('cannot set processor on track of unknown kind');\n }\n attachToElement(_this3._mediaStreamTrack, processorElement);\n processorElement.muted = true;\n processorElement.play().catch(error => _this3.log.error('failed to play processor element', Object.assign(Object.assign({}, _this3.logContext), {\n error\n })));\n _this3.processor = processor;\n _this3.processorElement = processorElement;\n if (_this3.processor.processedTrack) {\n for (const el of _this3.attachedElements) {\n if (el !== _this3.processorElement && showProcessedStreamLocally) {\n detachTrack(_this3._mediaStreamTrack, el);\n attachToElement(_this3.processor.processedTrack, el);\n }\n }\n yield (_a = _this3.sender) === null || _a === void 0 ? void 0 : _a.replaceTrack(_this3.processor.processedTrack);\n }\n _this3.emit(TrackEvent.TrackProcessorUpdate, _this3.processor);\n } finally {\n unlock();\n }\n }();\n });\n }\n getProcessor() {\n return this.processor;\n }\n /**\n * Stops the track processor\n * See https://github.com/livekit/track-processors-js for example usage\n *\n * @experimental\n * @returns\n */\n stopProcessor() {\n return __awaiter(this, arguments, void 0, function () {\n var _this4 = this;\n let keepElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function* () {\n var _a, _b;\n if (!_this4.processor) return;\n _this4.log.debug('stopping processor', _this4.logContext);\n (_a = _this4.processor.processedTrack) === null || _a === void 0 ? void 0 : _a.stop();\n yield _this4.processor.destroy();\n _this4.processor = undefined;\n if (!keepElement) {\n (_b = _this4.processorElement) === null || _b === void 0 ? void 0 : _b.remove();\n _this4.processorElement = undefined;\n }\n // apply original track constraints in case the processor changed them\n yield _this4._mediaStreamTrack.applyConstraints(_this4._constraints);\n // force re-setting of the mediaStreamTrack on the sender\n yield _this4.setMediaStreamTrack(_this4._mediaStreamTrack, true);\n _this4.emit(TrackEvent.TrackProcessorUpdate);\n }();\n });\n }\n}\n\n/**\n * @experimental\n */\nclass E2EEManager extends eventsExports.EventEmitter {\n constructor(options) {\n super();\n this.onWorkerMessage = ev => {\n var _a, _b;\n const {\n kind,\n data\n } = ev.data;\n switch (kind) {\n case 'error':\n livekitLogger.error(data.error.message);\n this.emit(EncryptionEvent.EncryptionError, data.error);\n break;\n case 'initAck':\n if (data.enabled) {\n this.keyProvider.getKeys().forEach(keyInfo => {\n this.postKey(keyInfo);\n });\n }\n break;\n case 'enable':\n if (data.enabled) {\n this.keyProvider.getKeys().forEach(keyInfo => {\n this.postKey(keyInfo);\n });\n }\n if (this.encryptionEnabled !== data.enabled && data.participantIdentity === ((_a = this.room) === null || _a === void 0 ? void 0 : _a.localParticipant.identity)) {\n this.emit(EncryptionEvent.ParticipantEncryptionStatusChanged, data.enabled, this.room.localParticipant);\n this.encryptionEnabled = data.enabled;\n } else if (data.participantIdentity) {\n const participant = (_b = this.room) === null || _b === void 0 ? void 0 : _b.getParticipantByIdentity(data.participantIdentity);\n if (!participant) {\n throw TypeError(\"couldn't set encryption status, participant not found\".concat(data.participantIdentity));\n }\n this.emit(EncryptionEvent.ParticipantEncryptionStatusChanged, data.enabled, participant);\n }\n break;\n case 'ratchetKey':\n this.keyProvider.emit(KeyProviderEvent.KeyRatcheted, data.material, data.keyIndex);\n break;\n }\n };\n this.onWorkerError = ev => {\n livekitLogger.error('e2ee worker encountered an error:', {\n error: ev.error\n });\n this.emit(EncryptionEvent.EncryptionError, ev.error);\n };\n this.keyProvider = options.keyProvider;\n this.worker = options.worker;\n this.encryptionEnabled = false;\n }\n /**\n * @internal\n */\n setup(room) {\n if (!isE2EESupported()) {\n throw new DeviceUnsupportedError('tried to setup end-to-end encryption on an unsupported browser');\n }\n livekitLogger.info('setting up e2ee');\n if (room !== this.room) {\n this.room = room;\n this.setupEventListeners(room, this.keyProvider);\n // this.worker = new Worker('');\n const msg = {\n kind: 'init',\n data: {\n keyProviderOptions: this.keyProvider.getOptions(),\n loglevel: workerLogger.getLevel()\n }\n };\n if (this.worker) {\n livekitLogger.info(\"initializing worker\", {\n worker: this.worker\n });\n this.worker.onmessage = this.onWorkerMessage;\n this.worker.onerror = this.onWorkerError;\n this.worker.postMessage(msg);\n }\n }\n }\n /**\n * @internal\n */\n setParticipantCryptorEnabled(enabled, participantIdentity) {\n livekitLogger.debug(\"set e2ee to \".concat(enabled, \" for participant \").concat(participantIdentity));\n this.postEnable(enabled, participantIdentity);\n }\n /**\n * @internal\n */\n setSifTrailer(trailer) {\n if (!trailer || trailer.length === 0) {\n livekitLogger.warn(\"ignoring server sent trailer as it's empty\");\n } else {\n this.postSifTrailer(trailer);\n }\n }\n setupEngine(engine) {\n engine.on(EngineEvent.RTPVideoMapUpdate, rtpMap => {\n this.postRTPMap(rtpMap);\n });\n }\n setupEventListeners(room, keyProvider) {\n room.on(RoomEvent.TrackPublished, (pub, participant) => this.setParticipantCryptorEnabled(pub.trackInfo.encryption !== Encryption_Type.NONE, participant.identity));\n room.on(RoomEvent.ConnectionStateChanged, state => {\n if (state === ConnectionState.Connected) {\n room.remoteParticipants.forEach(participant => {\n participant.trackPublications.forEach(pub => {\n this.setParticipantCryptorEnabled(pub.trackInfo.encryption !== Encryption_Type.NONE, participant.identity);\n });\n });\n }\n }).on(RoomEvent.TrackUnsubscribed, (track, _, participant) => {\n var _a;\n const msg = {\n kind: 'removeTransform',\n data: {\n participantIdentity: participant.identity,\n trackId: track.mediaStreamID\n }\n };\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage(msg);\n }).on(RoomEvent.TrackSubscribed, (track, pub, participant) => {\n this.setupE2EEReceiver(track, participant.identity, pub.trackInfo);\n }).on(RoomEvent.SignalConnected, () => {\n if (!this.room) {\n throw new TypeError(\"expected room to be present on signal connect\");\n }\n keyProvider.getKeys().forEach(keyInfo => {\n this.postKey(keyInfo);\n });\n this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled, this.room.localParticipant.identity);\n });\n room.localParticipant.on(ParticipantEvent.LocalTrackPublished, publication => __awaiter(this, void 0, void 0, function* () {\n this.setupE2EESender(publication.track, publication.track.sender);\n }));\n keyProvider.on(KeyProviderEvent.SetKey, keyInfo => this.postKey(keyInfo)).on(KeyProviderEvent.RatchetRequest, (participantId, keyIndex) => this.postRatchetRequest(participantId, keyIndex));\n }\n postRatchetRequest(participantIdentity, keyIndex) {\n if (!this.worker) {\n throw Error('could not ratchet key, worker is missing');\n }\n const msg = {\n kind: 'ratchetRequest',\n data: {\n participantIdentity: participantIdentity,\n keyIndex\n }\n };\n this.worker.postMessage(msg);\n }\n postKey(_ref) {\n let {\n key,\n participantIdentity,\n keyIndex\n } = _ref;\n var _a;\n if (!this.worker) {\n throw Error('could not set key, worker is missing');\n }\n const msg = {\n kind: 'setKey',\n data: {\n participantIdentity: participantIdentity,\n isPublisher: participantIdentity === ((_a = this.room) === null || _a === void 0 ? void 0 : _a.localParticipant.identity),\n key,\n keyIndex\n }\n };\n this.worker.postMessage(msg);\n }\n postEnable(enabled, participantIdentity) {\n if (this.worker) {\n const enableMsg = {\n kind: 'enable',\n data: {\n enabled,\n participantIdentity\n }\n };\n this.worker.postMessage(enableMsg);\n } else {\n throw new ReferenceError('failed to enable e2ee, worker is not ready');\n }\n }\n postRTPMap(map) {\n var _a;\n if (!this.worker) {\n throw TypeError('could not post rtp map, worker is missing');\n }\n if (!((_a = this.room) === null || _a === void 0 ? void 0 : _a.localParticipant.identity)) {\n throw TypeError('could not post rtp map, local participant identity is missing');\n }\n const msg = {\n kind: 'setRTPMap',\n data: {\n map,\n participantIdentity: this.room.localParticipant.identity\n }\n };\n this.worker.postMessage(msg);\n }\n postSifTrailer(trailer) {\n if (!this.worker) {\n throw Error('could not post SIF trailer, worker is missing');\n }\n const msg = {\n kind: 'setSifTrailer',\n data: {\n trailer\n }\n };\n this.worker.postMessage(msg);\n }\n setupE2EEReceiver(track, remoteId, trackInfo) {\n if (!track.receiver) {\n return;\n }\n if (!(trackInfo === null || trackInfo === void 0 ? void 0 : trackInfo.mimeType) || trackInfo.mimeType === '') {\n throw new TypeError('MimeType missing from trackInfo, cannot set up E2EE cryptor');\n }\n this.handleReceiver(track.receiver, track.mediaStreamID, remoteId, track.kind === 'video' ? mimeTypeToVideoCodecString(trackInfo.mimeType) : undefined);\n }\n setupE2EESender(track, sender) {\n if (!(track instanceof LocalTrack) || !sender) {\n if (!sender) livekitLogger.warn('early return because sender is not ready');\n return;\n }\n this.handleSender(sender, track.mediaStreamID, undefined);\n }\n /**\n * Handles the given {@code RTCRtpReceiver} by creating a {@code TransformStream} which will inject\n * a frame decoder.\n *\n */\n handleReceiver(receiver, trackId, participantIdentity, codec) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.worker) {\n return;\n }\n if (isScriptTransformSupported()) {\n const options = {\n kind: 'decode',\n participantIdentity,\n trackId,\n codec\n };\n // @ts-ignore\n receiver.transform = new RTCRtpScriptTransform(this.worker, options);\n } else {\n if (E2EE_FLAG in receiver && codec) {\n // only update codec\n const msg = {\n kind: 'updateCodec',\n data: {\n trackId,\n codec,\n participantIdentity: participantIdentity\n }\n };\n this.worker.postMessage(msg);\n return;\n }\n // @ts-ignore\n let writable = receiver.writableStream;\n // @ts-ignore\n let readable = receiver.readableStream;\n if (!writable || !readable) {\n // @ts-ignore\n const receiverStreams = receiver.createEncodedStreams();\n // @ts-ignore\n receiver.writableStream = receiverStreams.writable;\n writable = receiverStreams.writable;\n // @ts-ignore\n receiver.readableStream = receiverStreams.readable;\n readable = receiverStreams.readable;\n }\n const msg = {\n kind: 'decode',\n data: {\n readableStream: readable,\n writableStream: writable,\n trackId: trackId,\n codec,\n participantIdentity: participantIdentity\n }\n };\n this.worker.postMessage(msg, [readable, writable]);\n }\n // @ts-ignore\n receiver[E2EE_FLAG] = true;\n });\n }\n /**\n * Handles the given {@code RTCRtpSender} by creating a {@code TransformStream} which will inject\n * a frame encoder.\n *\n */\n handleSender(sender, trackId, codec) {\n var _a;\n if (E2EE_FLAG in sender || !this.worker) {\n return;\n }\n if (!((_a = this.room) === null || _a === void 0 ? void 0 : _a.localParticipant.identity) || this.room.localParticipant.identity === '') {\n throw TypeError('local identity needs to be known in order to set up encrypted sender');\n }\n if (isScriptTransformSupported()) {\n livekitLogger.info('initialize script transform');\n const options = {\n kind: 'encode',\n participantIdentity: this.room.localParticipant.identity,\n trackId,\n codec\n };\n // @ts-ignore\n sender.transform = new RTCRtpScriptTransform(this.worker, options);\n } else {\n livekitLogger.info('initialize encoded streams');\n // @ts-ignore\n const senderStreams = sender.createEncodedStreams();\n const msg = {\n kind: 'encode',\n data: {\n readableStream: senderStreams.readable,\n writableStream: senderStreams.writable,\n codec,\n trackId,\n participantIdentity: this.room.localParticipant.identity\n }\n };\n this.worker.postMessage(msg, [senderStreams.readable, senderStreams.writable]);\n }\n // @ts-ignore\n sender[E2EE_FLAG] = true;\n }\n}\n\nvar QueueTaskStatus;\n(function (QueueTaskStatus) {\n QueueTaskStatus[QueueTaskStatus[\"WAITING\"] = 0] = \"WAITING\";\n QueueTaskStatus[QueueTaskStatus[\"RUNNING\"] = 1] = \"RUNNING\";\n QueueTaskStatus[QueueTaskStatus[\"COMPLETED\"] = 2] = \"COMPLETED\";\n})(QueueTaskStatus || (QueueTaskStatus = {}));\nclass AsyncQueue {\n constructor() {\n this.pendingTasks = new Map();\n this.taskMutex = new h();\n this.nextTaskIndex = 0;\n }\n run(task) {\n return __awaiter(this, void 0, void 0, function* () {\n const taskInfo = {\n id: this.nextTaskIndex++,\n enqueuedAt: Date.now(),\n status: QueueTaskStatus.WAITING\n };\n this.pendingTasks.set(taskInfo.id, taskInfo);\n const unlock = yield this.taskMutex.lock();\n try {\n taskInfo.executedAt = Date.now();\n taskInfo.status = QueueTaskStatus.RUNNING;\n return yield task();\n } finally {\n taskInfo.status = QueueTaskStatus.COMPLETED;\n this.pendingTasks.delete(taskInfo.id);\n unlock();\n }\n });\n }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.run(() => __awaiter(this, void 0, void 0, function* () {}));\n });\n }\n snapshot() {\n return Array.from(this.pendingTasks.values());\n }\n}\n\nconst passThroughQueueSignals = ['syncState', 'trickle', 'offer', 'answer', 'simulate', 'leave'];\nfunction canPassThroughQueue(req) {\n const canPass = passThroughQueueSignals.indexOf(req.case) >= 0;\n livekitLogger.trace('request allowed to bypass queue:', {\n canPass,\n req\n });\n return canPass;\n}\nvar SignalConnectionState;\n(function (SignalConnectionState) {\n SignalConnectionState[SignalConnectionState[\"CONNECTING\"] = 0] = \"CONNECTING\";\n SignalConnectionState[SignalConnectionState[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SignalConnectionState[SignalConnectionState[\"RECONNECTING\"] = 2] = \"RECONNECTING\";\n SignalConnectionState[SignalConnectionState[\"DISCONNECTING\"] = 3] = \"DISCONNECTING\";\n SignalConnectionState[SignalConnectionState[\"DISCONNECTED\"] = 4] = \"DISCONNECTED\";\n})(SignalConnectionState || (SignalConnectionState = {}));\n/** @internal */\nclass SignalClient {\n get currentState() {\n return this.state;\n }\n get isDisconnected() {\n return this.state === SignalConnectionState.DISCONNECTING || this.state === SignalConnectionState.DISCONNECTED;\n }\n get isEstablishingConnection() {\n return this.state === SignalConnectionState.CONNECTING || this.state === SignalConnectionState.RECONNECTING;\n }\n getNextRequestId() {\n this._requestId += 1;\n return this._requestId;\n }\n constructor() {\n let useJSON = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let loggerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _a;\n /** signal rtt in milliseconds */\n this.rtt = 0;\n this.state = SignalConnectionState.DISCONNECTED;\n this.log = livekitLogger;\n this._requestId = 0;\n /** @internal */\n this.resetCallbacks = () => {\n this.onAnswer = undefined;\n this.onLeave = undefined;\n this.onLocalTrackPublished = undefined;\n this.onLocalTrackUnpublished = undefined;\n this.onNegotiateRequested = undefined;\n this.onOffer = undefined;\n this.onRemoteMuteChanged = undefined;\n this.onSubscribedQualityUpdate = undefined;\n this.onTokenRefresh = undefined;\n this.onTrickle = undefined;\n this.onClose = undefined;\n };\n this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Signal);\n this.loggerContextCb = loggerOptions.loggerContextCb;\n this.useJSON = useJSON;\n this.requestQueue = new AsyncQueue();\n this.queuedRequests = [];\n this.closingLock = new h();\n this.connectionLock = new h();\n this.state = SignalConnectionState.DISCONNECTED;\n }\n get logContext() {\n var _a, _b;\n return (_b = (_a = this.loggerContextCb) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : {};\n }\n join(url, token, opts, abortSignal) {\n return __awaiter(this, void 0, void 0, function* () {\n // during a full reconnect, we'd want to start the sequence even if currently\n // connected\n this.state = SignalConnectionState.CONNECTING;\n this.options = opts;\n const res = yield this.connect(url, token, opts, abortSignal);\n return res;\n });\n }\n reconnect(url, token, sid, reason) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.options) {\n this.log.warn('attempted to reconnect without signal options being set, ignoring', this.logContext);\n return;\n }\n this.state = SignalConnectionState.RECONNECTING;\n // clear ping interval and restart it once reconnected\n this.clearPingInterval();\n const res = yield this.connect(url, token, Object.assign(Object.assign({}, this.options), {\n reconnect: true,\n sid,\n reconnectReason: reason\n }));\n return res;\n });\n }\n connect(url, token, opts, abortSignal) {\n this.connectOptions = opts;\n url = toWebsocketUrl(url);\n // strip trailing slash\n url = url.replace(/\\/$/, '');\n url += '/rtc';\n const clientInfo = getClientInfo();\n const params = createConnectionParams(token, clientInfo, opts);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.connectionLock.lock();\n try {\n const abortHandler = () => __awaiter(this, void 0, void 0, function* () {\n this.close();\n clearTimeout(wsTimeout);\n reject(new ConnectionError('room connection has been cancelled (signal)', ConnectionErrorReason.Cancelled));\n });\n const wsTimeout = setTimeout(() => {\n this.close();\n reject(new ConnectionError('room connection has timed out (signal)', ConnectionErrorReason.ServerUnreachable));\n }, opts.websocketTimeout);\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n abortHandler();\n }\n abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.addEventListener('abort', abortHandler);\n this.log.debug(\"connecting to \".concat(url + params), this.logContext);\n if (this.ws) {\n yield this.close(false);\n }\n this.ws = new WebSocket(url + params);\n this.ws.binaryType = 'arraybuffer';\n this.ws.onopen = () => {\n clearTimeout(wsTimeout);\n };\n this.ws.onerror = ev => __awaiter(this, void 0, void 0, function* () {\n if (this.state !== SignalConnectionState.CONNECTED) {\n this.state = SignalConnectionState.DISCONNECTED;\n clearTimeout(wsTimeout);\n try {\n const resp = yield fetch(\"http\".concat(url.substring(2), \"/validate\").concat(params));\n if (resp.status.toFixed(0).startsWith('4')) {\n const msg = yield resp.text();\n reject(new ConnectionError(msg, ConnectionErrorReason.NotAllowed, resp.status));\n } else {\n reject(new ConnectionError('Internal error', ConnectionErrorReason.InternalError, resp.status));\n }\n } catch (e) {\n reject(new ConnectionError('server was not reachable', ConnectionErrorReason.ServerUnreachable));\n }\n return;\n }\n // other errors, handle\n this.handleWSError(ev);\n });\n this.ws.onmessage = ev => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n // not considered connected until JoinResponse is received\n let resp;\n if (typeof ev.data === 'string') {\n const json = JSON.parse(ev.data);\n resp = SignalResponse.fromJson(json, {\n ignoreUnknownFields: true\n });\n } else if (ev.data instanceof ArrayBuffer) {\n resp = SignalResponse.fromBinary(new Uint8Array(ev.data));\n } else {\n this.log.error(\"could not decode websocket message: \".concat(typeof ev.data), this.logContext);\n return;\n }\n if (this.state !== SignalConnectionState.CONNECTED) {\n let shouldProcessMessage = false;\n // handle join message only\n if (((_a = resp.message) === null || _a === void 0 ? void 0 : _a.case) === 'join') {\n this.state = SignalConnectionState.CONNECTED;\n abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener('abort', abortHandler);\n this.pingTimeoutDuration = resp.message.value.pingTimeout;\n this.pingIntervalDuration = resp.message.value.pingInterval;\n if (this.pingTimeoutDuration && this.pingTimeoutDuration > 0) {\n this.log.debug('ping config', Object.assign(Object.assign({}, this.logContext), {\n timeout: this.pingTimeoutDuration,\n interval: this.pingIntervalDuration\n }));\n this.startPingInterval();\n }\n resolve(resp.message.value);\n } else if (this.state === SignalConnectionState.RECONNECTING && resp.message.case !== 'leave') {\n // in reconnecting, any message received means signal reconnected\n this.state = SignalConnectionState.CONNECTED;\n abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.removeEventListener('abort', abortHandler);\n this.startPingInterval();\n if (((_b = resp.message) === null || _b === void 0 ? void 0 : _b.case) === 'reconnect') {\n resolve(resp.message.value);\n } else {\n this.log.debug('declaring signal reconnected without reconnect response received', this.logContext);\n resolve(undefined);\n shouldProcessMessage = true;\n }\n } else if (this.isEstablishingConnection && resp.message.case === 'leave') {\n reject(new ConnectionError('Received leave request while trying to (re)connect', ConnectionErrorReason.LeaveRequest, undefined, resp.message.value.reason));\n } else if (!opts.reconnect) {\n // non-reconnect case, should receive join response first\n reject(new ConnectionError(\"did not receive join response, got \".concat((_c = resp.message) === null || _c === void 0 ? void 0 : _c.case, \" instead\"), ConnectionErrorReason.InternalError));\n }\n if (!shouldProcessMessage) {\n return;\n }\n }\n if (this.signalLatency) {\n yield sleep(this.signalLatency);\n }\n this.handleSignalResponse(resp);\n });\n this.ws.onclose = ev => {\n if (this.isEstablishingConnection) {\n reject(new ConnectionError('Websocket got closed during a (re)connection attempt', ConnectionErrorReason.InternalError));\n }\n this.log.warn(\"websocket closed\", Object.assign(Object.assign({}, this.logContext), {\n reason: ev.reason,\n code: ev.code,\n wasClean: ev.wasClean,\n state: this.state\n }));\n this.handleOnClose(ev.reason);\n };\n } finally {\n unlock();\n }\n }));\n }\n close() {\n return __awaiter(this, arguments, void 0, function () {\n var _this = this;\n let updateState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function* () {\n const unlock = yield _this.closingLock.lock();\n try {\n _this.clearPingInterval();\n if (updateState) {\n _this.state = SignalConnectionState.DISCONNECTING;\n }\n if (_this.ws) {\n _this.ws.onmessage = null;\n _this.ws.onopen = null;\n _this.ws.onclose = null;\n // calling `ws.close()` only starts the closing handshake (CLOSING state), prefer to wait until state is actually CLOSED\n const closePromise = new Promise(resolve => {\n if (_this.ws) {\n _this.ws.onclose = () => {\n resolve();\n };\n } else {\n resolve();\n }\n });\n if (_this.ws.readyState < _this.ws.CLOSING) {\n _this.ws.close();\n // 250ms grace period for ws to close gracefully\n yield Promise.race([closePromise, sleep(250)]);\n }\n _this.ws = undefined;\n }\n } finally {\n if (updateState) {\n _this.state = SignalConnectionState.DISCONNECTED;\n }\n unlock();\n }\n }();\n });\n }\n // initial offer after joining\n sendOffer(offer) {\n this.log.debug('sending offer', Object.assign(Object.assign({}, this.logContext), {\n offerSdp: offer.sdp\n }));\n this.sendRequest({\n case: 'offer',\n value: toProtoSessionDescription(offer)\n });\n }\n // answer a server-initiated offer\n sendAnswer(answer) {\n this.log.debug('sending answer', Object.assign(Object.assign({}, this.logContext), {\n answerSdp: answer.sdp\n }));\n return this.sendRequest({\n case: 'answer',\n value: toProtoSessionDescription(answer)\n });\n }\n sendIceCandidate(candidate, target) {\n this.log.trace('sending ice candidate', Object.assign(Object.assign({}, this.logContext), {\n candidate\n }));\n return this.sendRequest({\n case: 'trickle',\n value: new TrickleRequest({\n candidateInit: JSON.stringify(candidate),\n target\n })\n });\n }\n sendMuteTrack(trackSid, muted) {\n return this.sendRequest({\n case: 'mute',\n value: new MuteTrackRequest({\n sid: trackSid,\n muted\n })\n });\n }\n sendAddTrack(req) {\n return this.sendRequest({\n case: 'addTrack',\n value: req\n });\n }\n sendUpdateLocalMetadata(metadata_1, name_1) {\n return __awaiter(this, arguments, void 0, function (metadata, name) {\n var _this2 = this;\n let attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n const requestId = _this2.getNextRequestId();\n yield _this2.sendRequest({\n case: 'updateMetadata',\n value: new UpdateParticipantMetadata({\n requestId,\n metadata,\n name,\n attributes\n })\n });\n return requestId;\n }();\n });\n }\n sendUpdateTrackSettings(settings) {\n this.sendRequest({\n case: 'trackSetting',\n value: settings\n });\n }\n sendUpdateSubscription(sub) {\n return this.sendRequest({\n case: 'subscription',\n value: sub\n });\n }\n sendSyncState(sync) {\n return this.sendRequest({\n case: 'syncState',\n value: sync\n });\n }\n sendUpdateVideoLayers(trackSid, layers) {\n return this.sendRequest({\n case: 'updateLayers',\n value: new UpdateVideoLayers({\n trackSid,\n layers\n })\n });\n }\n sendUpdateSubscriptionPermissions(allParticipants, trackPermissions) {\n return this.sendRequest({\n case: 'subscriptionPermission',\n value: new SubscriptionPermission({\n allParticipants,\n trackPermissions\n })\n });\n }\n sendSimulateScenario(scenario) {\n return this.sendRequest({\n case: 'simulate',\n value: scenario\n });\n }\n sendPing() {\n /** send both of ping and pingReq for compatibility to old and new server */\n return Promise.all([this.sendRequest({\n case: 'ping',\n value: protoInt64.parse(Date.now())\n }), this.sendRequest({\n case: 'pingReq',\n value: new Ping({\n timestamp: protoInt64.parse(Date.now()),\n rtt: protoInt64.parse(this.rtt)\n })\n })]);\n }\n sendUpdateLocalAudioTrack(trackSid, features) {\n return this.sendRequest({\n case: 'updateAudioTrack',\n value: new UpdateLocalAudioTrack({\n trackSid,\n features\n })\n });\n }\n sendLeave() {\n return this.sendRequest({\n case: 'leave',\n value: new LeaveRequest({\n reason: DisconnectReason.CLIENT_INITIATED,\n // server doesn't process this field, keeping it here to indicate the intent of a full disconnect\n action: LeaveRequest_Action.DISCONNECT\n })\n });\n }\n sendRequest(message_1) {\n return __awaiter(this, arguments, void 0, function (message) {\n var _this3 = this;\n let fromQueue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return function* () {\n // capture all requests while reconnecting and put them in a queue\n // unless the request originates from the queue, then don't enqueue again\n const canQueue = !fromQueue && !canPassThroughQueue(message);\n if (canQueue && _this3.state === SignalConnectionState.RECONNECTING) {\n _this3.queuedRequests.push(() => __awaiter(_this3, void 0, void 0, function* () {\n yield this.sendRequest(message, true);\n }));\n return;\n }\n // make sure previously queued requests are being sent first\n if (!fromQueue) {\n yield _this3.requestQueue.flush();\n }\n if (_this3.signalLatency) {\n yield sleep(_this3.signalLatency);\n }\n if (!_this3.ws || _this3.ws.readyState !== _this3.ws.OPEN) {\n _this3.log.error(\"cannot send signal request before connected, type: \".concat(message === null || message === void 0 ? void 0 : message.case), _this3.logContext);\n return;\n }\n const req = new SignalRequest({\n message\n });\n try {\n if (_this3.useJSON) {\n _this3.ws.send(req.toJsonString());\n } else {\n _this3.ws.send(req.toBinary());\n }\n } catch (e) {\n _this3.log.error('error sending signal message', Object.assign(Object.assign({}, _this3.logContext), {\n error: e\n }));\n }\n }();\n });\n }\n handleSignalResponse(res) {\n var _a, _b;\n const msg = res.message;\n if (msg == undefined) {\n this.log.debug('received unsupported message', this.logContext);\n return;\n }\n let pingHandled = false;\n if (msg.case === 'answer') {\n const sd = fromProtoSessionDescription(msg.value);\n if (this.onAnswer) {\n this.onAnswer(sd);\n }\n } else if (msg.case === 'offer') {\n const sd = fromProtoSessionDescription(msg.value);\n if (this.onOffer) {\n this.onOffer(sd);\n }\n } else if (msg.case === 'trickle') {\n const candidate = JSON.parse(msg.value.candidateInit);\n if (this.onTrickle) {\n this.onTrickle(candidate, msg.value.target);\n }\n } else if (msg.case === 'update') {\n if (this.onParticipantUpdate) {\n this.onParticipantUpdate((_a = msg.value.participants) !== null && _a !== void 0 ? _a : []);\n }\n } else if (msg.case === 'trackPublished') {\n if (this.onLocalTrackPublished) {\n this.onLocalTrackPublished(msg.value);\n }\n } else if (msg.case === 'speakersChanged') {\n if (this.onSpeakersChanged) {\n this.onSpeakersChanged((_b = msg.value.speakers) !== null && _b !== void 0 ? _b : []);\n }\n } else if (msg.case === 'leave') {\n if (this.onLeave) {\n this.onLeave(msg.value);\n }\n } else if (msg.case === 'mute') {\n if (this.onRemoteMuteChanged) {\n this.onRemoteMuteChanged(msg.value.sid, msg.value.muted);\n }\n } else if (msg.case === 'roomUpdate') {\n if (this.onRoomUpdate && msg.value.room) {\n this.onRoomUpdate(msg.value.room);\n }\n } else if (msg.case === 'connectionQuality') {\n if (this.onConnectionQuality) {\n this.onConnectionQuality(msg.value);\n }\n } else if (msg.case === 'streamStateUpdate') {\n if (this.onStreamStateUpdate) {\n this.onStreamStateUpdate(msg.value);\n }\n } else if (msg.case === 'subscribedQualityUpdate') {\n if (this.onSubscribedQualityUpdate) {\n this.onSubscribedQualityUpdate(msg.value);\n }\n } else if (msg.case === 'subscriptionPermissionUpdate') {\n if (this.onSubscriptionPermissionUpdate) {\n this.onSubscriptionPermissionUpdate(msg.value);\n }\n } else if (msg.case === 'refreshToken') {\n if (this.onTokenRefresh) {\n this.onTokenRefresh(msg.value);\n }\n } else if (msg.case === 'trackUnpublished') {\n if (this.onLocalTrackUnpublished) {\n this.onLocalTrackUnpublished(msg.value);\n }\n } else if (msg.case === 'subscriptionResponse') {\n if (this.onSubscriptionError) {\n this.onSubscriptionError(msg.value);\n }\n } else if (msg.case === 'pong') ; else if (msg.case === 'pongResp') {\n this.rtt = Date.now() - Number.parseInt(msg.value.lastPingTimestamp.toString());\n this.resetPingTimeout();\n pingHandled = true;\n } else if (msg.case === 'requestResponse') {\n if (this.onRequestResponse) {\n this.onRequestResponse(msg.value);\n }\n } else if (msg.case === 'trackSubscribed') {\n if (this.onLocalTrackSubscribed) {\n this.onLocalTrackSubscribed(msg.value.trackSid);\n }\n } else {\n this.log.debug('unsupported message', Object.assign(Object.assign({}, this.logContext), {\n msgCase: msg.case\n }));\n }\n if (!pingHandled) {\n this.resetPingTimeout();\n }\n }\n setReconnected() {\n while (this.queuedRequests.length > 0) {\n const req = this.queuedRequests.shift();\n if (req) {\n this.requestQueue.run(req);\n }\n }\n }\n handleOnClose(reason) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.state === SignalConnectionState.DISCONNECTED) return;\n const onCloseCallback = this.onClose;\n yield this.close();\n this.log.debug(\"websocket connection closed: \".concat(reason), Object.assign(Object.assign({}, this.logContext), {\n reason\n }));\n if (onCloseCallback) {\n onCloseCallback(reason);\n }\n });\n }\n handleWSError(ev) {\n this.log.error('websocket error', Object.assign(Object.assign({}, this.logContext), {\n error: ev\n }));\n }\n /**\n * Resets the ping timeout and starts a new timeout.\n * Call this after receiving a pong message\n */\n resetPingTimeout() {\n this.clearPingTimeout();\n if (!this.pingTimeoutDuration) {\n this.log.warn('ping timeout duration not set', this.logContext);\n return;\n }\n this.pingTimeout = CriticalTimers.setTimeout(() => {\n this.log.warn(\"ping timeout triggered. last pong received at: \".concat(new Date(Date.now() - this.pingTimeoutDuration * 1000).toUTCString()), this.logContext);\n this.handleOnClose('ping timeout');\n }, this.pingTimeoutDuration * 1000);\n }\n /**\n * Clears ping timeout (does not start a new timeout)\n */\n clearPingTimeout() {\n if (this.pingTimeout) {\n CriticalTimers.clearTimeout(this.pingTimeout);\n }\n }\n startPingInterval() {\n this.clearPingInterval();\n this.resetPingTimeout();\n if (!this.pingIntervalDuration) {\n this.log.warn('ping interval duration not set', this.logContext);\n return;\n }\n this.log.debug('start ping interval', this.logContext);\n this.pingInterval = CriticalTimers.setInterval(() => {\n this.sendPing();\n }, this.pingIntervalDuration * 1000);\n }\n clearPingInterval() {\n this.log.debug('clearing ping interval', this.logContext);\n this.clearPingTimeout();\n if (this.pingInterval) {\n CriticalTimers.clearInterval(this.pingInterval);\n }\n }\n}\nfunction fromProtoSessionDescription(sd) {\n const rsd = {\n type: 'offer',\n sdp: sd.sdp\n };\n switch (sd.type) {\n case 'answer':\n case 'offer':\n case 'pranswer':\n case 'rollback':\n rsd.type = sd.type;\n break;\n }\n return rsd;\n}\nfunction toProtoSessionDescription(rsd) {\n const sd = new SessionDescription({\n sdp: rsd.sdp,\n type: rsd.type\n });\n return sd;\n}\nfunction createConnectionParams(token, info, opts) {\n var _a;\n const params = new URLSearchParams();\n params.set('access_token', token);\n // opts\n if (opts.reconnect) {\n params.set('reconnect', '1');\n if (opts.sid) {\n params.set('sid', opts.sid);\n }\n }\n params.set('auto_subscribe', opts.autoSubscribe ? '1' : '0');\n // ClientInfo\n params.set('sdk', isReactNative() ? 'reactnative' : 'js');\n params.set('version', info.version);\n params.set('protocol', info.protocol.toString());\n if (info.deviceModel) {\n params.set('device_model', info.deviceModel);\n }\n if (info.os) {\n params.set('os', info.os);\n }\n if (info.osVersion) {\n params.set('os_version', info.osVersion);\n }\n if (info.browser) {\n params.set('browser', info.browser);\n }\n if (info.browserVersion) {\n params.set('browser_version', info.browserVersion);\n }\n if (opts.adaptiveStream) {\n params.set('adaptive_stream', '1');\n }\n if (opts.reconnectReason) {\n params.set('reconnect_reason', opts.reconnectReason.toString());\n }\n // @ts-ignore\n if ((_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.type) {\n // @ts-ignore\n params.set('network', navigator.connection.type);\n }\n return \"?\".concat(params.toString());\n}\n\nvar lib = {};\n\nvar parser = {};\n\nvar grammar = {exports: {}};\n\nvar hasRequiredGrammar;\nfunction requireGrammar() {\n if (hasRequiredGrammar) return grammar.exports;\n hasRequiredGrammar = 1;\n var grammar$1 = grammar.exports = {\n v: [{\n name: 'version',\n reg: /^(\\d*)$/\n }],\n o: [{\n // o=- 20518 0 IN IP4 203.0.113.1\n // NB: sessionId will be a String in most cases because it is huge\n name: 'origin',\n reg: /^(\\S*) (\\d*) (\\d*) (\\S*) IP(\\d) (\\S*)/,\n names: ['username', 'sessionId', 'sessionVersion', 'netType', 'ipVer', 'address'],\n format: '%s %s %d %s IP%d %s'\n }],\n // default parsing of these only (though some of these feel outdated)\n s: [{\n name: 'name'\n }],\n i: [{\n name: 'description'\n }],\n u: [{\n name: 'uri'\n }],\n e: [{\n name: 'email'\n }],\n p: [{\n name: 'phone'\n }],\n z: [{\n name: 'timezones'\n }],\n // TODO: this one can actually be parsed properly...\n r: [{\n name: 'repeats'\n }],\n // TODO: this one can also be parsed properly\n // k: [{}], // outdated thing ignored\n t: [{\n // t=0 0\n name: 'timing',\n reg: /^(\\d*) (\\d*)/,\n names: ['start', 'stop'],\n format: '%d %d'\n }],\n c: [{\n // c=IN IP4 10.47.197.26\n name: 'connection',\n reg: /^IN IP(\\d) (\\S*)/,\n names: ['version', 'ip'],\n format: 'IN IP%d %s'\n }],\n b: [{\n // b=AS:4000\n push: 'bandwidth',\n reg: /^(TIAS|AS|CT|RR|RS):(\\d*)/,\n names: ['type', 'limit'],\n format: '%s:%s'\n }],\n m: [{\n // m=video 51744 RTP/AVP 126 97 98 34 31\n // NB: special - pushes to session\n // TODO: rtp/fmtp should be filtered by the payloads found here?\n reg: /^(\\w*) (\\d*) ([\\w/]*)(?: (.*))?/,\n names: ['type', 'port', 'protocol', 'payloads'],\n format: '%s %d %s %s'\n }],\n a: [{\n // a=rtpmap:110 opus/48000/2\n push: 'rtp',\n reg: /^rtpmap:(\\d*) ([\\w\\-.]*)(?:\\s*\\/(\\d*)(?:\\s*\\/(\\S*))?)?/,\n names: ['payload', 'codec', 'rate', 'encoding'],\n format: function (o) {\n return o.encoding ? 'rtpmap:%d %s/%s/%s' : o.rate ? 'rtpmap:%d %s/%s' : 'rtpmap:%d %s';\n }\n }, {\n // a=fmtp:108 profile-level-id=24;object=23;bitrate=64000\n // a=fmtp:111 minptime=10; useinbandfec=1\n push: 'fmtp',\n reg: /^fmtp:(\\d*) ([\\S| ]*)/,\n names: ['payload', 'config'],\n format: 'fmtp:%d %s'\n }, {\n // a=control:streamid=0\n name: 'control',\n reg: /^control:(.*)/,\n format: 'control:%s'\n }, {\n // a=rtcp:65179 IN IP4 193.84.77.194\n name: 'rtcp',\n reg: /^rtcp:(\\d*)(?: (\\S*) IP(\\d) (\\S*))?/,\n names: ['port', 'netType', 'ipVer', 'address'],\n format: function (o) {\n return o.address != null ? 'rtcp:%d %s IP%d %s' : 'rtcp:%d';\n }\n }, {\n // a=rtcp-fb:98 trr-int 100\n push: 'rtcpFbTrrInt',\n reg: /^rtcp-fb:(\\*|\\d*) trr-int (\\d*)/,\n names: ['payload', 'value'],\n format: 'rtcp-fb:%s trr-int %d'\n }, {\n // a=rtcp-fb:98 nack rpsi\n push: 'rtcpFb',\n reg: /^rtcp-fb:(\\*|\\d*) ([\\w-_]*)(?: ([\\w-_]*))?/,\n names: ['payload', 'type', 'subtype'],\n format: function (o) {\n return o.subtype != null ? 'rtcp-fb:%s %s %s' : 'rtcp-fb:%s %s';\n }\n }, {\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n // a=extmap:1/recvonly URI-gps-string\n // a=extmap:3 urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:smpte-tc 25@600/24\n push: 'ext',\n reg: /^extmap:(\\d+)(?:\\/(\\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\\S*)(?: (\\S*))?/,\n names: ['value', 'direction', 'encrypt-uri', 'uri', 'config'],\n format: function (o) {\n return 'extmap:%d' + (o.direction ? '/%s' : '%v') + (o['encrypt-uri'] ? ' %s' : '%v') + ' %s' + (o.config ? ' %s' : '');\n }\n }, {\n // a=extmap-allow-mixed\n name: 'extmapAllowMixed',\n reg: /^(extmap-allow-mixed)/\n }, {\n // a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:32\n push: 'crypto',\n reg: /^crypto:(\\d*) ([\\w_]*) (\\S*)(?: (\\S*))?/,\n names: ['id', 'suite', 'config', 'sessionConfig'],\n format: function (o) {\n return o.sessionConfig != null ? 'crypto:%d %s %s %s' : 'crypto:%d %s %s';\n }\n }, {\n // a=setup:actpass\n name: 'setup',\n reg: /^setup:(\\w*)/,\n format: 'setup:%s'\n }, {\n // a=connection:new\n name: 'connectionType',\n reg: /^connection:(new|existing)/,\n format: 'connection:%s'\n }, {\n // a=mid:1\n name: 'mid',\n reg: /^mid:([^\\s]*)/,\n format: 'mid:%s'\n }, {\n // a=msid:0c8b064d-d807-43b4-b434-f92a889d8587 98178685-d409-46e0-8e16-7ef0db0db64a\n name: 'msid',\n reg: /^msid:(.*)/,\n format: 'msid:%s'\n }, {\n // a=ptime:20\n name: 'ptime',\n reg: /^ptime:(\\d*(?:\\.\\d*)*)/,\n format: 'ptime:%d'\n }, {\n // a=maxptime:60\n name: 'maxptime',\n reg: /^maxptime:(\\d*(?:\\.\\d*)*)/,\n format: 'maxptime:%d'\n }, {\n // a=sendrecv\n name: 'direction',\n reg: /^(sendrecv|recvonly|sendonly|inactive)/\n }, {\n // a=ice-lite\n name: 'icelite',\n reg: /^(ice-lite)/\n }, {\n // a=ice-ufrag:F7gI\n name: 'iceUfrag',\n reg: /^ice-ufrag:(\\S*)/,\n format: 'ice-ufrag:%s'\n }, {\n // a=ice-pwd:x9cml/YzichV2+XlhiMu8g\n name: 'icePwd',\n reg: /^ice-pwd:(\\S*)/,\n format: 'ice-pwd:%s'\n }, {\n // a=fingerprint:SHA-1 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33\n name: 'fingerprint',\n reg: /^fingerprint:(\\S*) (\\S*)/,\n names: ['type', 'hash'],\n format: 'fingerprint:%s %s'\n }, {\n // a=candidate:0 1 UDP 2113667327 203.0.113.1 54400 typ host\n // a=candidate:1162875081 1 udp 2113937151 192.168.34.75 60017 typ host generation 0 network-id 3 network-cost 10\n // a=candidate:3289912957 2 udp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 generation 0 network-id 3 network-cost 10\n // a=candidate:229815620 1 tcp 1518280447 192.168.150.19 60017 typ host tcptype active generation 0 network-id 3 network-cost 10\n // a=candidate:3289912957 2 tcp 1845501695 193.84.77.194 60017 typ srflx raddr 192.168.34.75 rport 60017 tcptype passive generation 0 network-id 3 network-cost 10\n push: 'candidates',\n reg: /^candidate:(\\S*) (\\d*) (\\S*) (\\d*) (\\S*) (\\d*) typ (\\S*)(?: raddr (\\S*) rport (\\d*))?(?: tcptype (\\S*))?(?: generation (\\d*))?(?: network-id (\\d*))?(?: network-cost (\\d*))?/,\n names: ['foundation', 'component', 'transport', 'priority', 'ip', 'port', 'type', 'raddr', 'rport', 'tcptype', 'generation', 'network-id', 'network-cost'],\n format: function (o) {\n var str = 'candidate:%s %d %s %d %s %d typ %s';\n str += o.raddr != null ? ' raddr %s rport %d' : '%v%v';\n\n // NB: candidate has three optional chunks, so %void middles one if it's missing\n str += o.tcptype != null ? ' tcptype %s' : '%v';\n if (o.generation != null) {\n str += ' generation %d';\n }\n str += o['network-id'] != null ? ' network-id %d' : '%v';\n str += o['network-cost'] != null ? ' network-cost %d' : '%v';\n return str;\n }\n }, {\n // a=end-of-candidates (keep after the candidates line for readability)\n name: 'endOfCandidates',\n reg: /^(end-of-candidates)/\n }, {\n // a=remote-candidates:1 203.0.113.1 54400 2 203.0.113.1 54401 ...\n name: 'remoteCandidates',\n reg: /^remote-candidates:(.*)/,\n format: 'remote-candidates:%s'\n }, {\n // a=ice-options:google-ice\n name: 'iceOptions',\n reg: /^ice-options:(\\S*)/,\n format: 'ice-options:%s'\n }, {\n // a=ssrc:2566107569 cname:t9YU8M1UxTF8Y1A1\n push: 'ssrcs',\n reg: /^ssrc:(\\d*) ([\\w_-]*)(?::(.*))?/,\n names: ['id', 'attribute', 'value'],\n format: function (o) {\n var str = 'ssrc:%d';\n if (o.attribute != null) {\n str += ' %s';\n if (o.value != null) {\n str += ':%s';\n }\n }\n return str;\n }\n }, {\n // a=ssrc-group:FEC 1 2\n // a=ssrc-group:FEC-FR 3004364195 1080772241\n push: 'ssrcGroups',\n // token-char = %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 / %x41-5A / %x5E-7E\n reg: /^ssrc-group:([\\x21\\x23\\x24\\x25\\x26\\x27\\x2A\\x2B\\x2D\\x2E\\w]*) (.*)/,\n names: ['semantics', 'ssrcs'],\n format: 'ssrc-group:%s %s'\n }, {\n // a=msid-semantic: WMS Jvlam5X3SX1OP6pn20zWogvaKJz5Hjf9OnlV\n name: 'msidSemantic',\n reg: /^msid-semantic:\\s?(\\w*) (\\S*)/,\n names: ['semantic', 'token'],\n format: 'msid-semantic: %s %s' // space after ':' is not accidental\n }, {\n // a=group:BUNDLE audio video\n push: 'groups',\n reg: /^group:(\\w*) (.*)/,\n names: ['type', 'mids'],\n format: 'group:%s %s'\n }, {\n // a=rtcp-mux\n name: 'rtcpMux',\n reg: /^(rtcp-mux)/\n }, {\n // a=rtcp-rsize\n name: 'rtcpRsize',\n reg: /^(rtcp-rsize)/\n }, {\n // a=sctpmap:5000 webrtc-datachannel 1024\n name: 'sctpmap',\n reg: /^sctpmap:([\\w_/]*) (\\S*)(?: (\\S*))?/,\n names: ['sctpmapNumber', 'app', 'maxMessageSize'],\n format: function (o) {\n return o.maxMessageSize != null ? 'sctpmap:%s %s %s' : 'sctpmap:%s %s';\n }\n }, {\n // a=x-google-flag:conference\n name: 'xGoogleFlag',\n reg: /^x-google-flag:([^\\s]*)/,\n format: 'x-google-flag:%s'\n }, {\n // a=rid:1 send max-width=1280;max-height=720;max-fps=30;depend=0\n push: 'rids',\n reg: /^rid:([\\d\\w]+) (\\w+)(?: ([\\S| ]*))?/,\n names: ['id', 'direction', 'params'],\n format: function (o) {\n return o.params ? 'rid:%s %s %s' : 'rid:%s %s';\n }\n }, {\n // a=imageattr:97 send [x=800,y=640,sar=1.1,q=0.6] [x=480,y=320] recv [x=330,y=250]\n // a=imageattr:* send [x=800,y=640] recv *\n // a=imageattr:100 recv [x=320,y=240]\n push: 'imageattrs',\n reg: new RegExp(\n // a=imageattr:97\n '^imageattr:(\\\\d+|\\\\*)' +\n // send [x=800,y=640,sar=1.1,q=0.6] [x=480,y=320]\n '[\\\\s\\\\t]+(send|recv)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*)' +\n // recv [x=330,y=250]\n '(?:[\\\\s\\\\t]+(recv|send)[\\\\s\\\\t]+(\\\\*|\\\\[\\\\S+\\\\](?:[\\\\s\\\\t]+\\\\[\\\\S+\\\\])*))?'),\n names: ['pt', 'dir1', 'attrs1', 'dir2', 'attrs2'],\n format: function (o) {\n return 'imageattr:%s %s %s' + (o.dir2 ? ' %s %s' : '');\n }\n }, {\n // a=simulcast:send 1,2,3;~4,~5 recv 6;~7,~8\n // a=simulcast:recv 1;4,5 send 6;7\n name: 'simulcast',\n reg: new RegExp(\n // a=simulcast:\n '^simulcast:' +\n // send 1,2,3;~4,~5\n '(send|recv) ([a-zA-Z0-9\\\\-_~;,]+)' +\n // space + recv 6;~7,~8\n '(?:\\\\s?(send|recv) ([a-zA-Z0-9\\\\-_~;,]+))?' +\n // end\n '$'),\n names: ['dir1', 'list1', 'dir2', 'list2'],\n format: function (o) {\n return 'simulcast:%s %s' + (o.dir2 ? ' %s %s' : '');\n }\n }, {\n // old simulcast draft 03 (implemented by Firefox)\n // https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-03\n // a=simulcast: recv pt=97;98 send pt=97\n // a=simulcast: send rid=5;6;7 paused=6,7\n name: 'simulcast_03',\n reg: /^simulcast:[\\s\\t]+([\\S+\\s\\t]+)$/,\n names: ['value'],\n format: 'simulcast: %s'\n }, {\n // a=framerate:25\n // a=framerate:29.97\n name: 'framerate',\n reg: /^framerate:(\\d+(?:$|\\.\\d+))/,\n format: 'framerate:%s'\n }, {\n // RFC4570\n // a=source-filter: incl IN IP4 239.5.2.31 10.1.15.5\n name: 'sourceFilter',\n reg: /^source-filter: *(excl|incl) (\\S*) (IP4|IP6|\\*) (\\S*) (.*)/,\n names: ['filterMode', 'netType', 'addressTypes', 'destAddress', 'srcList'],\n format: 'source-filter: %s %s %s %s %s'\n }, {\n // a=bundle-only\n name: 'bundleOnly',\n reg: /^(bundle-only)/\n }, {\n // a=label:1\n name: 'label',\n reg: /^label:(.+)/,\n format: 'label:%s'\n }, {\n // RFC version 26 for SCTP over DTLS\n // https://tools.ietf.org/html/draft-ietf-mmusic-sctp-sdp-26#section-5\n name: 'sctpPort',\n reg: /^sctp-port:(\\d+)$/,\n format: 'sctp-port:%s'\n }, {\n // RFC version 26 for SCTP over DTLS\n // https://tools.ietf.org/html/draft-ietf-mmusic-sctp-sdp-26#section-6\n name: 'maxMessageSize',\n reg: /^max-message-size:(\\d+)$/,\n format: 'max-message-size:%s'\n }, {\n // RFC7273\n // a=ts-refclk:ptp=IEEE1588-2008:39-A7-94-FF-FE-07-CB-D0:37\n push: 'tsRefClocks',\n reg: /^ts-refclk:([^\\s=]*)(?:=(\\S*))?/,\n names: ['clksrc', 'clksrcExt'],\n format: function (o) {\n return 'ts-refclk:%s' + (o.clksrcExt != null ? '=%s' : '');\n }\n }, {\n // RFC7273\n // a=mediaclk:direct=963214424\n name: 'mediaClk',\n reg: /^mediaclk:(?:id=(\\S*))? *([^\\s=]*)(?:=(\\S*))?(?: *rate=(\\d+)\\/(\\d+))?/,\n names: ['id', 'mediaClockName', 'mediaClockValue', 'rateNumerator', 'rateDenominator'],\n format: function (o) {\n var str = 'mediaclk:';\n str += o.id != null ? 'id=%s %s' : '%v%s';\n str += o.mediaClockValue != null ? '=%s' : '';\n str += o.rateNumerator != null ? ' rate=%s' : '';\n str += o.rateDenominator != null ? '/%s' : '';\n return str;\n }\n }, {\n // a=keywds:keywords\n name: 'keywords',\n reg: /^keywds:(.+)$/,\n format: 'keywds:%s'\n }, {\n // a=content:main\n name: 'content',\n reg: /^content:(.+)/,\n format: 'content:%s'\n },\n // BFCP https://tools.ietf.org/html/rfc4583\n {\n // a=floorctrl:c-s\n name: 'bfcpFloorCtrl',\n reg: /^floorctrl:(c-only|s-only|c-s)/,\n format: 'floorctrl:%s'\n }, {\n // a=confid:1\n name: 'bfcpConfId',\n reg: /^confid:(\\d+)/,\n format: 'confid:%s'\n }, {\n // a=userid:1\n name: 'bfcpUserId',\n reg: /^userid:(\\d+)/,\n format: 'userid:%s'\n }, {\n // a=floorid:1\n name: 'bfcpFloorId',\n reg: /^floorid:(.+) (?:m-stream|mstrm):(.+)/,\n names: ['id', 'mStream'],\n format: 'floorid:%s mstrm:%s'\n }, {\n // any a= that we don't understand is kept verbatim on media.invalid\n push: 'invalid',\n names: ['value']\n }]\n };\n\n // set sensible defaults to avoid polluting the grammar with boring details\n Object.keys(grammar$1).forEach(function (key) {\n var objs = grammar$1[key];\n objs.forEach(function (obj) {\n if (!obj.reg) {\n obj.reg = /(.*)/;\n }\n if (!obj.format) {\n obj.format = '%s';\n }\n });\n });\n return grammar.exports;\n}\n\nvar hasRequiredParser;\nfunction requireParser() {\n if (hasRequiredParser) return parser;\n hasRequiredParser = 1;\n (function (exports) {\n var toIntIfInt = function (v) {\n return String(Number(v)) === v ? Number(v) : v;\n };\n var attachProperties = function (match, location, names, rawName) {\n if (rawName && !names) {\n location[rawName] = toIntIfInt(match[1]);\n } else {\n for (var i = 0; i < names.length; i += 1) {\n if (match[i + 1] != null) {\n location[names[i]] = toIntIfInt(match[i + 1]);\n }\n }\n }\n };\n var parseReg = function (obj, location, content) {\n var needsBlank = obj.name && obj.names;\n if (obj.push && !location[obj.push]) {\n location[obj.push] = [];\n } else if (needsBlank && !location[obj.name]) {\n location[obj.name] = {};\n }\n var keyLocation = obj.push ? {} :\n // blank object that will be pushed\n needsBlank ? location[obj.name] : location; // otherwise, named location or root\n\n attachProperties(content.match(obj.reg), keyLocation, obj.names, obj.name);\n if (obj.push) {\n location[obj.push].push(keyLocation);\n }\n };\n var grammar = requireGrammar();\n var validLine = RegExp.prototype.test.bind(/^([a-z])=(.*)/);\n exports.parse = function (sdp) {\n var session = {},\n media = [],\n location = session; // points at where properties go under (one of the above)\n\n // parse lines we understand\n sdp.split(/(\\r\\n|\\r|\\n)/).filter(validLine).forEach(function (l) {\n var type = l[0];\n var content = l.slice(2);\n if (type === 'm') {\n media.push({\n rtp: [],\n fmtp: []\n });\n location = media[media.length - 1]; // point at latest media line\n }\n for (var j = 0; j < (grammar[type] || []).length; j += 1) {\n var obj = grammar[type][j];\n if (obj.reg.test(content)) {\n return parseReg(obj, location, content);\n }\n }\n });\n session.media = media; // link it up\n return session;\n };\n var paramReducer = function (acc, expr) {\n var s = expr.split(/=(.+)/, 2);\n if (s.length === 2) {\n acc[s[0]] = toIntIfInt(s[1]);\n } else if (s.length === 1 && expr.length > 1) {\n acc[s[0]] = undefined;\n }\n return acc;\n };\n exports.parseParams = function (str) {\n return str.split(/;\\s?/).reduce(paramReducer, {});\n };\n\n // For backward compatibility - alias will be removed in 3.0.0\n exports.parseFmtpConfig = exports.parseParams;\n exports.parsePayloads = function (str) {\n return str.toString().split(' ').map(Number);\n };\n exports.parseRemoteCandidates = function (str) {\n var candidates = [];\n var parts = str.split(' ').map(toIntIfInt);\n for (var i = 0; i < parts.length; i += 3) {\n candidates.push({\n component: parts[i],\n ip: parts[i + 1],\n port: parts[i + 2]\n });\n }\n return candidates;\n };\n exports.parseImageAttributes = function (str) {\n return str.split(' ').map(function (item) {\n return item.substring(1, item.length - 1).split(',').reduce(paramReducer, {});\n });\n };\n exports.parseSimulcastStreamList = function (str) {\n return str.split(';').map(function (stream) {\n return stream.split(',').map(function (format) {\n var scid,\n paused = false;\n if (format[0] !== '~') {\n scid = toIntIfInt(format);\n } else {\n scid = toIntIfInt(format.substring(1, format.length));\n paused = true;\n }\n return {\n scid: scid,\n paused: paused\n };\n });\n });\n };\n })(parser);\n return parser;\n}\n\nvar writer;\nvar hasRequiredWriter;\nfunction requireWriter() {\n if (hasRequiredWriter) return writer;\n hasRequiredWriter = 1;\n var grammar = requireGrammar();\n\n // customized util.format - discards excess arguments and can void middle ones\n var formatRegExp = /%[sdv%]/g;\n var format = function (formatStr) {\n var i = 1;\n var args = arguments;\n var len = args.length;\n return formatStr.replace(formatRegExp, function (x) {\n if (i >= len) {\n return x; // missing argument\n }\n var arg = args[i];\n i += 1;\n switch (x) {\n case '%%':\n return '%';\n case '%s':\n return String(arg);\n case '%d':\n return Number(arg);\n case '%v':\n return '';\n }\n });\n // NB: we discard excess arguments - they are typically undefined from makeLine\n };\n var makeLine = function (type, obj, location) {\n var str = obj.format instanceof Function ? obj.format(obj.push ? location : location[obj.name]) : obj.format;\n var args = [type + '=' + str];\n if (obj.names) {\n for (var i = 0; i < obj.names.length; i += 1) {\n var n = obj.names[i];\n if (obj.name) {\n args.push(location[obj.name][n]);\n } else {\n // for mLine and push attributes\n args.push(location[obj.names[i]]);\n }\n }\n } else {\n args.push(location[obj.name]);\n }\n return format.apply(null, args);\n };\n\n // RFC specified order\n // TODO: extend this with all the rest\n var defaultOuterOrder = ['v', 'o', 's', 'i', 'u', 'e', 'p', 'c', 'b', 't', 'r', 'z', 'a'];\n var defaultInnerOrder = ['i', 'c', 'b', 'a'];\n writer = function (session, opts) {\n opts = opts || {};\n // ensure certain properties exist\n if (session.version == null) {\n session.version = 0; // 'v=0' must be there (only defined version atm)\n }\n if (session.name == null) {\n session.name = ' '; // 's= ' must be there if no meaningful name set\n }\n session.media.forEach(function (mLine) {\n if (mLine.payloads == null) {\n mLine.payloads = '';\n }\n });\n var outerOrder = opts.outerOrder || defaultOuterOrder;\n var innerOrder = opts.innerOrder || defaultInnerOrder;\n var sdp = [];\n\n // loop through outerOrder for matching properties on session\n outerOrder.forEach(function (type) {\n grammar[type].forEach(function (obj) {\n if (obj.name in session && session[obj.name] != null) {\n sdp.push(makeLine(type, obj, session));\n } else if (obj.push in session && session[obj.push] != null) {\n session[obj.push].forEach(function (el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n\n // then for each media line, follow the innerOrder\n session.media.forEach(function (mLine) {\n sdp.push(makeLine('m', grammar.m[0], mLine));\n innerOrder.forEach(function (type) {\n grammar[type].forEach(function (obj) {\n if (obj.name in mLine && mLine[obj.name] != null) {\n sdp.push(makeLine(type, obj, mLine));\n } else if (obj.push in mLine && mLine[obj.push] != null) {\n mLine[obj.push].forEach(function (el) {\n sdp.push(makeLine(type, obj, el));\n });\n }\n });\n });\n });\n return sdp.join('\\r\\n') + '\\r\\n';\n };\n return writer;\n}\n\nvar hasRequiredLib;\nfunction requireLib() {\n if (hasRequiredLib) return lib;\n hasRequiredLib = 1;\n var parser = requireParser();\n var writer = requireWriter();\n lib.write = writer;\n lib.parse = parser.parse;\n lib.parseParams = parser.parseParams;\n lib.parseFmtpConfig = parser.parseFmtpConfig; // Alias of parseParams().\n lib.parsePayloads = parser.parsePayloads;\n lib.parseRemoteCandidates = parser.parseRemoteCandidates;\n lib.parseImageAttributes = parser.parseImageAttributes;\n lib.parseSimulcastStreamList = parser.parseSimulcastStreamList;\n return lib;\n}\n\nvar libExports = requireLib();\n\n/* The svc codec (av1/vp9) would use a very low bitrate at the begining and\nincrease slowly by the bandwidth estimator until it reach the target bitrate. The\nprocess commonly cost more than 10 seconds cause subscriber will get blur video at\nthe first few seconds. So we use a 70% of target bitrate here as the start bitrate to\neliminate this issue.\n*/\nconst startBitrateForSVC = 0.7;\nconst debounceInterval = 20;\nconst PCEvents = {\n NegotiationStarted: 'negotiationStarted',\n NegotiationComplete: 'negotiationComplete',\n RTPVideoPayloadTypes: 'rtpVideoPayloadTypes'\n};\n/** @internal */\nclass PCTransport extends eventsExports.EventEmitter {\n get pc() {\n if (!this._pc) {\n this._pc = this.createPC();\n }\n return this._pc;\n }\n constructor(config) {\n let loggerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _a;\n super();\n this.log = livekitLogger;\n this.ddExtID = 0;\n this.pendingCandidates = [];\n this.restartingIce = false;\n this.renegotiate = false;\n this.trackBitrates = [];\n this.remoteStereoMids = [];\n this.remoteNackMids = [];\n // debounced negotiate interface\n this.negotiate = r(onError => __awaiter(this, void 0, void 0, function* () {\n this.emit(PCEvents.NegotiationStarted);\n try {\n yield this.createAndSendOffer();\n } catch (e) {\n if (onError) {\n onError(e);\n } else {\n throw e;\n }\n }\n }), debounceInterval);\n this.close = () => {\n if (!this._pc) {\n return;\n }\n this._pc.close();\n this._pc.onconnectionstatechange = null;\n this._pc.oniceconnectionstatechange = null;\n this._pc.onicegatheringstatechange = null;\n this._pc.ondatachannel = null;\n this._pc.onnegotiationneeded = null;\n this._pc.onsignalingstatechange = null;\n this._pc.onicecandidate = null;\n this._pc.ondatachannel = null;\n this._pc.ontrack = null;\n this._pc.onconnectionstatechange = null;\n this._pc.oniceconnectionstatechange = null;\n this._pc = null;\n };\n this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.PCTransport);\n this.loggerOptions = loggerOptions;\n this.config = config;\n this._pc = this.createPC();\n }\n createPC() {\n const pc = new RTCPeerConnection(this.config);\n pc.onicecandidate = ev => {\n var _a;\n if (!ev.candidate) return;\n (_a = this.onIceCandidate) === null || _a === void 0 ? void 0 : _a.call(this, ev.candidate);\n };\n pc.onicecandidateerror = ev => {\n var _a;\n (_a = this.onIceCandidateError) === null || _a === void 0 ? void 0 : _a.call(this, ev);\n };\n pc.oniceconnectionstatechange = () => {\n var _a;\n (_a = this.onIceConnectionStateChange) === null || _a === void 0 ? void 0 : _a.call(this, pc.iceConnectionState);\n };\n pc.onsignalingstatechange = () => {\n var _a;\n (_a = this.onSignalingStatechange) === null || _a === void 0 ? void 0 : _a.call(this, pc.signalingState);\n };\n pc.onconnectionstatechange = () => {\n var _a;\n (_a = this.onConnectionStateChange) === null || _a === void 0 ? void 0 : _a.call(this, pc.connectionState);\n };\n pc.ondatachannel = ev => {\n var _a;\n (_a = this.onDataChannel) === null || _a === void 0 ? void 0 : _a.call(this, ev);\n };\n pc.ontrack = ev => {\n var _a;\n (_a = this.onTrack) === null || _a === void 0 ? void 0 : _a.call(this, ev);\n };\n return pc;\n }\n get logContext() {\n var _a, _b;\n return Object.assign({}, (_b = (_a = this.loggerOptions).loggerContextCb) === null || _b === void 0 ? void 0 : _b.call(_a));\n }\n get isICEConnected() {\n return this._pc !== null && (this.pc.iceConnectionState === 'connected' || this.pc.iceConnectionState === 'completed');\n }\n addIceCandidate(candidate) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.pc.remoteDescription && !this.restartingIce) {\n return this.pc.addIceCandidate(candidate);\n }\n this.pendingCandidates.push(candidate);\n });\n }\n setRemoteDescription(sd) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n let mungedSDP = undefined;\n if (sd.type === 'offer') {\n let {\n stereoMids,\n nackMids\n } = extractStereoAndNackAudioFromOffer(sd);\n this.remoteStereoMids = stereoMids;\n this.remoteNackMids = nackMids;\n } else if (sd.type === 'answer') {\n const sdpParsed = libExports.parse((_a = sd.sdp) !== null && _a !== void 0 ? _a : '');\n sdpParsed.media.forEach(media => {\n if (media.type === 'audio') {\n // mung sdp for opus bitrate settings\n this.trackBitrates.some(trackbr => {\n if (!trackbr.transceiver || media.mid != trackbr.transceiver.mid) {\n return false;\n }\n let codecPayload = 0;\n media.rtp.some(rtp => {\n if (rtp.codec.toUpperCase() === trackbr.codec.toUpperCase()) {\n codecPayload = rtp.payload;\n return true;\n }\n return false;\n });\n if (codecPayload === 0) {\n return true;\n }\n let fmtpFound = false;\n for (const fmtp of media.fmtp) {\n if (fmtp.payload === codecPayload) {\n fmtp.config = fmtp.config.split(';').filter(attr => !attr.includes('maxaveragebitrate')).join(';');\n if (trackbr.maxbr > 0) {\n fmtp.config += \";maxaveragebitrate=\".concat(trackbr.maxbr * 1000);\n }\n fmtpFound = true;\n break;\n }\n }\n if (!fmtpFound) {\n if (trackbr.maxbr > 0) {\n media.fmtp.push({\n payload: codecPayload,\n config: \"maxaveragebitrate=\".concat(trackbr.maxbr * 1000)\n });\n }\n }\n return true;\n });\n }\n });\n mungedSDP = libExports.write(sdpParsed);\n }\n yield this.setMungedSDP(sd, mungedSDP, true);\n this.pendingCandidates.forEach(candidate => {\n this.pc.addIceCandidate(candidate);\n });\n this.pendingCandidates = [];\n this.restartingIce = false;\n if (this.renegotiate) {\n this.renegotiate = false;\n yield this.createAndSendOffer();\n } else if (sd.type === 'answer') {\n this.emit(PCEvents.NegotiationComplete);\n if (sd.sdp) {\n const sdpParsed = libExports.parse(sd.sdp);\n sdpParsed.media.forEach(media => {\n if (media.type === 'video') {\n this.emit(PCEvents.RTPVideoPayloadTypes, media.rtp);\n }\n });\n }\n }\n });\n }\n createAndSendOffer(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (this.onOffer === undefined) {\n return;\n }\n if (options === null || options === void 0 ? void 0 : options.iceRestart) {\n this.log.debug('restarting ICE', this.logContext);\n this.restartingIce = true;\n }\n if (this._pc && this._pc.signalingState === 'have-local-offer') {\n // we're waiting for the peer to accept our offer, so we'll just wait\n // the only exception to this is when ICE restart is needed\n const currentSD = this._pc.remoteDescription;\n if ((options === null || options === void 0 ? void 0 : options.iceRestart) && currentSD) {\n // TODO: handle when ICE restart is needed but we don't have a remote description\n // the best thing to do is to recreate the peerconnection\n yield this._pc.setRemoteDescription(currentSD);\n } else {\n this.renegotiate = true;\n return;\n }\n } else if (!this._pc || this._pc.signalingState === 'closed') {\n this.log.warn('could not createOffer with closed peer connection', this.logContext);\n return;\n }\n // actually negotiate\n this.log.debug('starting to negotiate', this.logContext);\n const offer = yield this.pc.createOffer(options);\n this.log.debug('original offer', Object.assign({\n sdp: offer.sdp\n }, this.logContext));\n const sdpParsed = libExports.parse((_a = offer.sdp) !== null && _a !== void 0 ? _a : '');\n sdpParsed.media.forEach(media => {\n if (media.type === 'audio') {\n ensureAudioNackAndStereo(media, [], []);\n } else if (media.type === 'video') {\n this.trackBitrates.some(trackbr => {\n if (!media.msid || !trackbr.cid || !media.msid.includes(trackbr.cid)) {\n return false;\n }\n let codecPayload = 0;\n media.rtp.some(rtp => {\n if (rtp.codec.toUpperCase() === trackbr.codec.toUpperCase()) {\n codecPayload = rtp.payload;\n return true;\n }\n return false;\n });\n if (codecPayload === 0) {\n return true;\n }\n if (isSVCCodec(trackbr.codec)) {\n this.ensureVideoDDExtensionForSVC(media, sdpParsed);\n }\n // TODO: av1 slow starting issue already fixed in chrome 124, clean this after some versions\n // mung sdp for av1 bitrate setting that can't apply by sendEncoding\n if (trackbr.codec !== 'av1') {\n return true;\n }\n const startBitrate = Math.round(trackbr.maxbr * startBitrateForSVC);\n for (const fmtp of media.fmtp) {\n if (fmtp.payload === codecPayload) {\n // if another track's fmtp already is set, we cannot override the bitrate\n // this has the unfortunate consequence of being forced to use the\n // initial track's bitrate for all tracks\n if (!fmtp.config.includes('x-google-start-bitrate')) {\n fmtp.config += \";x-google-start-bitrate=\".concat(startBitrate);\n }\n break;\n }\n }\n return true;\n });\n }\n });\n yield this.setMungedSDP(offer, libExports.write(sdpParsed));\n this.onOffer(offer);\n });\n }\n createAndSetAnswer() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const answer = yield this.pc.createAnswer();\n const sdpParsed = libExports.parse((_a = answer.sdp) !== null && _a !== void 0 ? _a : '');\n sdpParsed.media.forEach(media => {\n if (media.type === 'audio') {\n ensureAudioNackAndStereo(media, this.remoteStereoMids, this.remoteNackMids);\n }\n });\n yield this.setMungedSDP(answer, libExports.write(sdpParsed));\n return answer;\n });\n }\n createDataChannel(label, dataChannelDict) {\n return this.pc.createDataChannel(label, dataChannelDict);\n }\n addTransceiver(mediaStreamTrack, transceiverInit) {\n return this.pc.addTransceiver(mediaStreamTrack, transceiverInit);\n }\n addTrack(track) {\n if (!this._pc) {\n throw new UnexpectedConnectionState('PC closed, cannot add track');\n }\n return this._pc.addTrack(track);\n }\n setTrackCodecBitrate(info) {\n this.trackBitrates.push(info);\n }\n setConfiguration(rtcConfig) {\n var _a;\n if (!this._pc) {\n throw new UnexpectedConnectionState('PC closed, cannot configure');\n }\n return (_a = this._pc) === null || _a === void 0 ? void 0 : _a.setConfiguration(rtcConfig);\n }\n canRemoveTrack() {\n var _a;\n return !!((_a = this._pc) === null || _a === void 0 ? void 0 : _a.removeTrack);\n }\n removeTrack(sender) {\n var _a;\n return (_a = this._pc) === null || _a === void 0 ? void 0 : _a.removeTrack(sender);\n }\n getConnectionState() {\n var _a, _b;\n return (_b = (_a = this._pc) === null || _a === void 0 ? void 0 : _a.connectionState) !== null && _b !== void 0 ? _b : 'closed';\n }\n getICEConnectionState() {\n var _a, _b;\n return (_b = (_a = this._pc) === null || _a === void 0 ? void 0 : _a.iceConnectionState) !== null && _b !== void 0 ? _b : 'closed';\n }\n getSignallingState() {\n var _a, _b;\n return (_b = (_a = this._pc) === null || _a === void 0 ? void 0 : _a.signalingState) !== null && _b !== void 0 ? _b : 'closed';\n }\n getTransceivers() {\n var _a, _b;\n return (_b = (_a = this._pc) === null || _a === void 0 ? void 0 : _a.getTransceivers()) !== null && _b !== void 0 ? _b : [];\n }\n getSenders() {\n var _a, _b;\n return (_b = (_a = this._pc) === null || _a === void 0 ? void 0 : _a.getSenders()) !== null && _b !== void 0 ? _b : [];\n }\n getLocalDescription() {\n var _a;\n return (_a = this._pc) === null || _a === void 0 ? void 0 : _a.localDescription;\n }\n getRemoteDescription() {\n var _a;\n return (_a = this.pc) === null || _a === void 0 ? void 0 : _a.remoteDescription;\n }\n getStats() {\n return this.pc.getStats();\n }\n getConnectedAddress() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!this._pc) {\n return;\n }\n let selectedCandidatePairId = '';\n const candidatePairs = new Map();\n // id -> candidate ip\n const candidates = new Map();\n const stats = yield this._pc.getStats();\n stats.forEach(v => {\n switch (v.type) {\n case 'transport':\n selectedCandidatePairId = v.selectedCandidatePairId;\n break;\n case 'candidate-pair':\n if (selectedCandidatePairId === '' && v.selected) {\n selectedCandidatePairId = v.id;\n }\n candidatePairs.set(v.id, v);\n break;\n case 'remote-candidate':\n candidates.set(v.id, \"\".concat(v.address, \":\").concat(v.port));\n break;\n }\n });\n if (selectedCandidatePairId === '') {\n return undefined;\n }\n const selectedID = (_a = candidatePairs.get(selectedCandidatePairId)) === null || _a === void 0 ? void 0 : _a.remoteCandidateId;\n if (selectedID === undefined) {\n return undefined;\n }\n return candidates.get(selectedID);\n });\n }\n setMungedSDP(sd, munged, remote) {\n return __awaiter(this, void 0, void 0, function* () {\n if (munged) {\n const originalSdp = sd.sdp;\n sd.sdp = munged;\n try {\n this.log.debug(\"setting munged \".concat(remote ? 'remote' : 'local', \" description\"), this.logContext);\n if (remote) {\n yield this.pc.setRemoteDescription(sd);\n } else {\n yield this.pc.setLocalDescription(sd);\n }\n return;\n } catch (e) {\n this.log.warn(\"not able to set \".concat(sd.type, \", falling back to unmodified sdp\"), Object.assign(Object.assign({}, this.logContext), {\n error: e,\n sdp: munged\n }));\n sd.sdp = originalSdp;\n }\n }\n try {\n if (remote) {\n yield this.pc.setRemoteDescription(sd);\n } else {\n yield this.pc.setLocalDescription(sd);\n }\n } catch (e) {\n let msg = 'unknown error';\n if (e instanceof Error) {\n msg = e.message;\n } else if (typeof e === 'string') {\n msg = e;\n }\n const fields = {\n error: msg,\n sdp: sd.sdp\n };\n if (!remote && this.pc.remoteDescription) {\n fields.remoteSdp = this.pc.remoteDescription;\n }\n this.log.error(\"unable to set \".concat(sd.type), Object.assign(Object.assign({}, this.logContext), {\n fields\n }));\n throw new NegotiationError(msg);\n }\n });\n }\n ensureVideoDDExtensionForSVC(media, sdp) {\n var _a, _b;\n const ddFound = (_a = media.ext) === null || _a === void 0 ? void 0 : _a.some(ext => {\n if (ext.uri === ddExtensionURI) {\n return true;\n }\n return false;\n });\n if (!ddFound) {\n if (this.ddExtID === 0) {\n let maxID = 0;\n sdp.media.forEach(m => {\n var _a;\n if (m.type !== 'video') {\n return;\n }\n (_a = m.ext) === null || _a === void 0 ? void 0 : _a.forEach(ext => {\n if (ext.value > maxID) {\n maxID = ext.value;\n }\n });\n });\n this.ddExtID = maxID + 1;\n }\n (_b = media.ext) === null || _b === void 0 ? void 0 : _b.push({\n value: this.ddExtID,\n uri: ddExtensionURI\n });\n }\n }\n}\nfunction ensureAudioNackAndStereo(media, stereoMids, nackMids) {\n // found opus codec to add nack fb\n let opusPayload = 0;\n media.rtp.some(rtp => {\n if (rtp.codec === 'opus') {\n opusPayload = rtp.payload;\n return true;\n }\n return false;\n });\n // add nack rtcpfb if not exist\n if (opusPayload > 0) {\n if (!media.rtcpFb) {\n media.rtcpFb = [];\n }\n if (nackMids.includes(media.mid) && !media.rtcpFb.some(fb => fb.payload === opusPayload && fb.type === 'nack')) {\n media.rtcpFb.push({\n payload: opusPayload,\n type: 'nack'\n });\n }\n if (stereoMids.includes(media.mid)) {\n media.fmtp.some(fmtp => {\n if (fmtp.payload === opusPayload) {\n if (!fmtp.config.includes('stereo=1')) {\n fmtp.config += ';stereo=1';\n }\n return true;\n }\n return false;\n });\n }\n }\n}\nfunction extractStereoAndNackAudioFromOffer(offer) {\n var _a;\n const stereoMids = [];\n const nackMids = [];\n const sdpParsed = libExports.parse((_a = offer.sdp) !== null && _a !== void 0 ? _a : '');\n let opusPayload = 0;\n sdpParsed.media.forEach(media => {\n var _a;\n if (media.type === 'audio') {\n media.rtp.some(rtp => {\n if (rtp.codec === 'opus') {\n opusPayload = rtp.payload;\n return true;\n }\n return false;\n });\n if ((_a = media.rtcpFb) === null || _a === void 0 ? void 0 : _a.some(fb => fb.payload === opusPayload && fb.type === 'nack')) {\n nackMids.push(media.mid);\n }\n media.fmtp.some(fmtp => {\n if (fmtp.payload === opusPayload) {\n if (fmtp.config.includes('sprop-stereo=1')) {\n stereoMids.push(media.mid);\n }\n return true;\n }\n return false;\n });\n }\n });\n return {\n stereoMids,\n nackMids\n };\n}\n\nconst defaultVideoCodec = 'vp8';\nconst publishDefaults = {\n audioPreset: AudioPresets.music,\n dtx: true,\n red: true,\n forceStereo: false,\n simulcast: true,\n screenShareEncoding: ScreenSharePresets.h1080fps15.encoding,\n stopMicTrackOnMute: false,\n videoCodec: defaultVideoCodec,\n backupCodec: true\n};\nconst audioDefaults = {\n autoGainControl: true,\n echoCancellation: true,\n noiseSuppression: true,\n voiceIsolation: true\n};\nconst videoDefaults = {\n resolution: VideoPresets.h720.resolution\n};\nconst roomOptionDefaults = {\n adaptiveStream: false,\n dynacast: false,\n stopLocalTrackOnUnpublish: true,\n reconnectPolicy: new DefaultReconnectPolicy(),\n disconnectOnPageLeave: true,\n webAudioMix: false\n};\nconst roomConnectOptionDefaults = {\n autoSubscribe: true,\n maxRetries: 1,\n peerConnectionTimeout: 15000,\n websocketTimeout: 15000\n};\n\nvar PCTransportState;\n(function (PCTransportState) {\n PCTransportState[PCTransportState[\"NEW\"] = 0] = \"NEW\";\n PCTransportState[PCTransportState[\"CONNECTING\"] = 1] = \"CONNECTING\";\n PCTransportState[PCTransportState[\"CONNECTED\"] = 2] = \"CONNECTED\";\n PCTransportState[PCTransportState[\"FAILED\"] = 3] = \"FAILED\";\n PCTransportState[PCTransportState[\"CLOSING\"] = 4] = \"CLOSING\";\n PCTransportState[PCTransportState[\"CLOSED\"] = 5] = \"CLOSED\";\n})(PCTransportState || (PCTransportState = {}));\nclass PCTransportManager {\n get needsPublisher() {\n return this.isPublisherConnectionRequired;\n }\n get needsSubscriber() {\n return this.isSubscriberConnectionRequired;\n }\n get currentState() {\n return this.state;\n }\n constructor(rtcConfig, subscriberPrimary, loggerOptions) {\n var _a;\n this.peerConnectionTimeout = roomConnectOptionDefaults.peerConnectionTimeout;\n this.log = livekitLogger;\n this.updateState = () => {\n var _a;\n const previousState = this.state;\n const connectionStates = this.requiredTransports.map(tr => tr.getConnectionState());\n if (connectionStates.every(st => st === 'connected')) {\n this.state = PCTransportState.CONNECTED;\n } else if (connectionStates.some(st => st === 'failed')) {\n this.state = PCTransportState.FAILED;\n } else if (connectionStates.some(st => st === 'connecting')) {\n this.state = PCTransportState.CONNECTING;\n } else if (connectionStates.every(st => st === 'closed')) {\n this.state = PCTransportState.CLOSED;\n } else if (connectionStates.some(st => st === 'closed')) {\n this.state = PCTransportState.CLOSING;\n } else if (connectionStates.every(st => st === 'new')) {\n this.state = PCTransportState.NEW;\n }\n if (previousState !== this.state) {\n this.log.debug(\"pc state change: from \".concat(PCTransportState[previousState], \" to \").concat(PCTransportState[this.state]), this.logContext);\n (_a = this.onStateChange) === null || _a === void 0 ? void 0 : _a.call(this, this.state, this.publisher.getConnectionState(), this.subscriber.getConnectionState());\n }\n };\n this.log = getLogger((_a = loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.PCManager);\n this.loggerOptions = loggerOptions;\n this.isPublisherConnectionRequired = !subscriberPrimary;\n this.isSubscriberConnectionRequired = subscriberPrimary;\n this.publisher = new PCTransport(rtcConfig, loggerOptions);\n this.subscriber = new PCTransport(rtcConfig, loggerOptions);\n this.publisher.onConnectionStateChange = this.updateState;\n this.subscriber.onConnectionStateChange = this.updateState;\n this.publisher.onIceConnectionStateChange = this.updateState;\n this.subscriber.onIceConnectionStateChange = this.updateState;\n this.publisher.onSignalingStatechange = this.updateState;\n this.subscriber.onSignalingStatechange = this.updateState;\n this.publisher.onIceCandidate = candidate => {\n var _a;\n (_a = this.onIceCandidate) === null || _a === void 0 ? void 0 : _a.call(this, candidate, SignalTarget.PUBLISHER);\n };\n this.subscriber.onIceCandidate = candidate => {\n var _a;\n (_a = this.onIceCandidate) === null || _a === void 0 ? void 0 : _a.call(this, candidate, SignalTarget.SUBSCRIBER);\n };\n // in subscriber primary mode, server side opens sub data channels.\n this.subscriber.onDataChannel = ev => {\n var _a;\n (_a = this.onDataChannel) === null || _a === void 0 ? void 0 : _a.call(this, ev);\n };\n this.subscriber.onTrack = ev => {\n var _a;\n (_a = this.onTrack) === null || _a === void 0 ? void 0 : _a.call(this, ev);\n };\n this.publisher.onOffer = offer => {\n var _a;\n (_a = this.onPublisherOffer) === null || _a === void 0 ? void 0 : _a.call(this, offer);\n };\n this.state = PCTransportState.NEW;\n this.connectionLock = new h();\n this.remoteOfferLock = new h();\n }\n get logContext() {\n var _a, _b;\n return Object.assign({}, (_b = (_a = this.loggerOptions).loggerContextCb) === null || _b === void 0 ? void 0 : _b.call(_a));\n }\n requirePublisher() {\n let require = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.isPublisherConnectionRequired = require;\n this.updateState();\n }\n requireSubscriber() {\n let require = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.isSubscriberConnectionRequired = require;\n this.updateState();\n }\n createAndSendPublisherOffer(options) {\n return this.publisher.createAndSendOffer(options);\n }\n setPublisherAnswer(sd) {\n return this.publisher.setRemoteDescription(sd);\n }\n removeTrack(sender) {\n return this.publisher.removeTrack(sender);\n }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.publisher && this.publisher.getSignallingState() !== 'closed') {\n const publisher = this.publisher;\n for (const sender of publisher.getSenders()) {\n try {\n // TODO: react-native-webrtc doesn't have removeTrack yet.\n if (publisher.canRemoveTrack()) {\n publisher.removeTrack(sender);\n }\n } catch (e) {\n this.log.warn('could not removeTrack', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n }\n }\n yield Promise.all([this.publisher.close(), this.subscriber.close()]);\n this.updateState();\n });\n }\n triggerIceRestart() {\n return __awaiter(this, void 0, void 0, function* () {\n this.subscriber.restartingIce = true;\n // only restart publisher if it's needed\n if (this.needsPublisher) {\n yield this.createAndSendPublisherOffer({\n iceRestart: true\n });\n }\n });\n }\n addIceCandidate(candidate, target) {\n return __awaiter(this, void 0, void 0, function* () {\n if (target === SignalTarget.PUBLISHER) {\n yield this.publisher.addIceCandidate(candidate);\n } else {\n yield this.subscriber.addIceCandidate(candidate);\n }\n });\n }\n createSubscriberAnswerFromOffer(sd) {\n return __awaiter(this, void 0, void 0, function* () {\n this.log.debug('received server offer', Object.assign(Object.assign({}, this.logContext), {\n RTCSdpType: sd.type,\n sdp: sd.sdp,\n signalingState: this.subscriber.getSignallingState().toString()\n }));\n const unlock = yield this.remoteOfferLock.lock();\n try {\n yield this.subscriber.setRemoteDescription(sd);\n // answer the offer\n const answer = yield this.subscriber.createAndSetAnswer();\n return answer;\n } finally {\n unlock();\n }\n });\n }\n updateConfiguration(config, iceRestart) {\n this.publisher.setConfiguration(config);\n this.subscriber.setConfiguration(config);\n if (iceRestart) {\n this.triggerIceRestart();\n }\n }\n ensurePCTransportConnection(abortController, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const unlock = yield this.connectionLock.lock();\n try {\n if (this.isPublisherConnectionRequired && this.publisher.getConnectionState() !== 'connected' && this.publisher.getConnectionState() !== 'connecting') {\n this.log.debug('negotiation required, start negotiating', this.logContext);\n this.publisher.negotiate();\n }\n yield Promise.all((_a = this.requiredTransports) === null || _a === void 0 ? void 0 : _a.map(transport => this.ensureTransportConnected(transport, abortController, timeout)));\n } finally {\n unlock();\n }\n });\n }\n negotiate(abortController) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const negotiationTimeout = setTimeout(() => {\n reject('negotiation timed out');\n }, this.peerConnectionTimeout);\n const abortHandler = () => {\n clearTimeout(negotiationTimeout);\n reject('negotiation aborted');\n };\n abortController.signal.addEventListener('abort', abortHandler);\n this.publisher.once(PCEvents.NegotiationStarted, () => {\n if (abortController.signal.aborted) {\n return;\n }\n this.publisher.once(PCEvents.NegotiationComplete, () => {\n clearTimeout(negotiationTimeout);\n resolve();\n });\n });\n yield this.publisher.negotiate(e => {\n clearTimeout(negotiationTimeout);\n reject(e);\n });\n }));\n });\n }\n addPublisherTransceiver(track, transceiverInit) {\n return this.publisher.addTransceiver(track, transceiverInit);\n }\n addPublisherTrack(track) {\n return this.publisher.addTrack(track);\n }\n createPublisherDataChannel(label, dataChannelDict) {\n return this.publisher.createDataChannel(label, dataChannelDict);\n }\n /**\n * Returns the first required transport's address if no explicit target is specified\n */\n getConnectedAddress(target) {\n if (target === SignalTarget.PUBLISHER) {\n return this.publisher.getConnectedAddress();\n } else if (target === SignalTarget.SUBSCRIBER) {\n return this.publisher.getConnectedAddress();\n }\n return this.requiredTransports[0].getConnectedAddress();\n }\n get requiredTransports() {\n const transports = [];\n if (this.isPublisherConnectionRequired) {\n transports.push(this.publisher);\n }\n if (this.isSubscriberConnectionRequired) {\n transports.push(this.subscriber);\n }\n return transports;\n }\n ensureTransportConnected(pcTransport_1, abortController_1) {\n return __awaiter(this, arguments, void 0, function (pcTransport, abortController) {\n var _this = this;\n let timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.peerConnectionTimeout;\n return function* () {\n const connectionState = pcTransport.getConnectionState();\n if (connectionState === 'connected') {\n return;\n }\n return new Promise((resolve, reject) => __awaiter(_this, void 0, void 0, function* () {\n const abortHandler = () => {\n this.log.warn('abort transport connection', this.logContext);\n CriticalTimers.clearTimeout(connectTimeout);\n reject(new ConnectionError('room connection has been cancelled', ConnectionErrorReason.Cancelled));\n };\n if (abortController === null || abortController === void 0 ? void 0 : abortController.signal.aborted) {\n abortHandler();\n }\n abortController === null || abortController === void 0 ? void 0 : abortController.signal.addEventListener('abort', abortHandler);\n const connectTimeout = CriticalTimers.setTimeout(() => {\n abortController === null || abortController === void 0 ? void 0 : abortController.signal.removeEventListener('abort', abortHandler);\n reject(new ConnectionError('could not establish pc connection', ConnectionErrorReason.InternalError));\n }, timeout);\n while (this.state !== PCTransportState.CONNECTED) {\n yield sleep(50); // FIXME we shouldn't rely on `sleep` in the connection paths, as it invokes `setTimeout` which can be drastically throttled by browser implementations\n if (abortController === null || abortController === void 0 ? void 0 : abortController.signal.aborted) {\n reject(new ConnectionError('room connection has been cancelled', ConnectionErrorReason.Cancelled));\n return;\n }\n }\n CriticalTimers.clearTimeout(connectTimeout);\n abortController === null || abortController === void 0 ? void 0 : abortController.signal.removeEventListener('abort', abortHandler);\n resolve();\n }));\n }();\n });\n }\n}\n\nconst monitorFrequency = 2000;\nfunction computeBitrate(currentStats, prevStats) {\n if (!prevStats) {\n return 0;\n }\n let bytesNow;\n let bytesPrev;\n if ('bytesReceived' in currentStats) {\n bytesNow = currentStats.bytesReceived;\n bytesPrev = prevStats.bytesReceived;\n } else if ('bytesSent' in currentStats) {\n bytesNow = currentStats.bytesSent;\n bytesPrev = prevStats.bytesSent;\n }\n if (bytesNow === undefined || bytesPrev === undefined || currentStats.timestamp === undefined || prevStats.timestamp === undefined) {\n return 0;\n }\n return (bytesNow - bytesPrev) * 8 * 1000 / (currentStats.timestamp - prevStats.timestamp);\n}\n\nclass LocalAudioTrack extends LocalTrack {\n /**\n * boolean indicating whether enhanced noise cancellation is currently being used on this track\n */\n get enhancedNoiseCancellation() {\n return this.isKrispNoiseFilterEnabled;\n }\n /**\n *\n * @param mediaTrack\n * @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks\n * @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK\n */\n constructor(mediaTrack, constraints) {\n let userProvidedTrack = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let audioContext = arguments.length > 3 ? arguments[3] : undefined;\n let loggerOptions = arguments.length > 4 ? arguments[4] : undefined;\n super(mediaTrack, Track.Kind.Audio, constraints, userProvidedTrack, loggerOptions);\n /** @internal */\n this.stopOnMute = false;\n this.isKrispNoiseFilterEnabled = false;\n this.monitorSender = () => __awaiter(this, void 0, void 0, function* () {\n if (!this.sender) {\n this._currentBitrate = 0;\n return;\n }\n let stats;\n try {\n stats = yield this.getSenderStats();\n } catch (e) {\n this.log.error('could not get audio sender stats', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n return;\n }\n if (stats && this.prevStats) {\n this._currentBitrate = computeBitrate(stats, this.prevStats);\n }\n this.prevStats = stats;\n });\n this.handleKrispNoiseFilterEnable = () => {\n this.isKrispNoiseFilterEnabled = true;\n this.log.debug(\"Krisp noise filter enabled\", this.logContext);\n this.emit(TrackEvent.AudioTrackFeatureUpdate, this, AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION, true);\n };\n this.handleKrispNoiseFilterDisable = () => {\n this.isKrispNoiseFilterEnabled = false;\n this.log.debug(\"Krisp noise filter disabled\", this.logContext);\n this.emit(TrackEvent.AudioTrackFeatureUpdate, this, AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION, false);\n };\n this.audioContext = audioContext;\n this.checkForSilence();\n }\n setDeviceId(deviceId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._constraints.deviceId === deviceId && this._mediaStreamTrack.getSettings().deviceId === unwrapConstraint(deviceId)) {\n return true;\n }\n this._constraints.deviceId = deviceId;\n if (!this.isMuted) {\n yield this.restartTrack();\n }\n return this.isMuted || unwrapConstraint(deviceId) === this._mediaStreamTrack.getSettings().deviceId;\n });\n }\n mute() {\n const _super = Object.create(null, {\n mute: {\n get: () => super.mute\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.muteLock.lock();\n try {\n if (this.isMuted) {\n this.log.debug('Track already muted', this.logContext);\n return this;\n }\n // disabled special handling as it will cause BT headsets to switch communication modes\n if (this.source === Track.Source.Microphone && this.stopOnMute && !this.isUserProvided) {\n this.log.debug('stopping mic track', this.logContext);\n // also stop the track, so that microphone indicator is turned off\n this._mediaStreamTrack.stop();\n }\n yield _super.mute.call(this);\n return this;\n } finally {\n unlock();\n }\n });\n }\n unmute() {\n const _super = Object.create(null, {\n unmute: {\n get: () => super.unmute\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.muteLock.lock();\n try {\n if (!this.isMuted) {\n this.log.debug('Track already unmuted', this.logContext);\n return this;\n }\n const deviceHasChanged = this._constraints.deviceId && this._mediaStreamTrack.getSettings().deviceId !== unwrapConstraint(this._constraints.deviceId);\n if (this.source === Track.Source.Microphone && (this.stopOnMute || this._mediaStreamTrack.readyState === 'ended' || deviceHasChanged) && !this.isUserProvided) {\n this.log.debug('reacquiring mic track', this.logContext);\n yield this.restartTrack();\n }\n yield _super.unmute.call(this);\n return this;\n } finally {\n unlock();\n }\n });\n }\n restartTrack(options) {\n return __awaiter(this, void 0, void 0, function* () {\n let constraints;\n if (options) {\n const streamConstraints = constraintsForOptions({\n audio: options\n });\n if (typeof streamConstraints.audio !== 'boolean') {\n constraints = streamConstraints.audio;\n }\n }\n yield this.restart(constraints);\n });\n }\n restart(constraints) {\n const _super = Object.create(null, {\n restart: {\n get: () => super.restart\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const track = yield _super.restart.call(this, constraints);\n this.checkForSilence();\n return track;\n });\n }\n /* @internal */\n startMonitor() {\n if (!isWeb()) {\n return;\n }\n if (this.monitorInterval) {\n return;\n }\n this.monitorInterval = setInterval(() => {\n this.monitorSender();\n }, monitorFrequency);\n }\n setProcessor(processor) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const unlock = yield this.processorLock.lock();\n try {\n if (!this.audioContext) {\n throw Error('Audio context needs to be set on LocalAudioTrack in order to enable processors');\n }\n if (this.processor) {\n yield this.stopProcessor();\n }\n const processorOptions = {\n kind: this.kind,\n track: this._mediaStreamTrack,\n audioContext: this.audioContext\n };\n this.log.debug(\"setting up audio processor \".concat(processor.name), this.logContext);\n yield processor.init(processorOptions);\n this.processor = processor;\n if (this.processor.processedTrack) {\n yield (_a = this.sender) === null || _a === void 0 ? void 0 : _a.replaceTrack(this.processor.processedTrack);\n this.processor.processedTrack.addEventListener('enable-lk-krisp-noise-filter', this.handleKrispNoiseFilterEnable);\n this.processor.processedTrack.addEventListener('disable-lk-krisp-noise-filter', this.handleKrispNoiseFilterDisable);\n }\n this.emit(TrackEvent.TrackProcessorUpdate, this.processor);\n } finally {\n unlock();\n }\n });\n }\n /**\n * @internal\n * @experimental\n */\n setAudioContext(audioContext) {\n this.audioContext = audioContext;\n }\n getSenderStats() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!((_a = this.sender) === null || _a === void 0 ? void 0 : _a.getStats)) {\n return undefined;\n }\n const stats = yield this.sender.getStats();\n let audioStats;\n stats.forEach(v => {\n if (v.type === 'outbound-rtp') {\n audioStats = {\n type: 'audio',\n streamId: v.id,\n packetsSent: v.packetsSent,\n packetsLost: v.packetsLost,\n bytesSent: v.bytesSent,\n timestamp: v.timestamp,\n roundTripTime: v.roundTripTime,\n jitter: v.jitter\n };\n }\n });\n return audioStats;\n });\n }\n checkForSilence() {\n return __awaiter(this, void 0, void 0, function* () {\n const trackIsSilent = yield detectSilence(this);\n if (trackIsSilent) {\n if (!this.isMuted) {\n this.log.warn('silence detected on local audio track', this.logContext);\n }\n this.emit(TrackEvent.AudioSilenceDetected);\n }\n return trackIsSilent;\n });\n }\n}\n\n/** @internal */\nfunction mediaTrackToLocalTrack(mediaStreamTrack, constraints, loggerOptions) {\n switch (mediaStreamTrack.kind) {\n case 'audio':\n return new LocalAudioTrack(mediaStreamTrack, constraints, false, undefined, loggerOptions);\n case 'video':\n return new LocalVideoTrack(mediaStreamTrack, constraints, false, loggerOptions);\n default:\n throw new TrackInvalidError(\"unsupported track type: \".concat(mediaStreamTrack.kind));\n }\n}\n/* @internal */\nconst presets169 = Object.values(VideoPresets);\n/* @internal */\nconst presets43 = Object.values(VideoPresets43);\n/* @internal */\nconst presetsScreenShare = Object.values(ScreenSharePresets);\n/* @internal */\nconst defaultSimulcastPresets169 = [VideoPresets.h180, VideoPresets.h360];\n/* @internal */\nconst defaultSimulcastPresets43 = [VideoPresets43.h180, VideoPresets43.h360];\n/* @internal */\nconst computeDefaultScreenShareSimulcastPresets = fromPreset => {\n const layers = [{\n scaleResolutionDownBy: 2,\n fps: fromPreset.encoding.maxFramerate\n }];\n return layers.map(t => {\n var _a, _b;\n return new VideoPreset(Math.floor(fromPreset.width / t.scaleResolutionDownBy), Math.floor(fromPreset.height / t.scaleResolutionDownBy), Math.max(150000, Math.floor(fromPreset.encoding.maxBitrate / (Math.pow(t.scaleResolutionDownBy, 2) * (((_a = fromPreset.encoding.maxFramerate) !== null && _a !== void 0 ? _a : 30) / ((_b = t.fps) !== null && _b !== void 0 ? _b : 30))))), t.fps, fromPreset.encoding.priority);\n });\n};\n// /**\n// *\n// * @internal\n// * @experimental\n// */\n// const computeDefaultMultiCodecSimulcastEncodings = (width: number, height: number) => {\n// // use vp8 as a default\n// const vp8 = determineAppropriateEncoding(false, width, height);\n// const vp9 = { ...vp8, maxBitrate: vp8.maxBitrate * 0.9 };\n// const h264 = { ...vp8, maxBitrate: vp8.maxBitrate * 1.1 };\n// const av1 = { ...vp8, maxBitrate: vp8.maxBitrate * 0.7 };\n// return {\n// vp8,\n// vp9,\n// h264,\n// av1,\n// };\n// };\nconst videoRids = ['q', 'h', 'f'];\n/* @internal */\nfunction computeVideoEncodings(isScreenShare, width, height, options) {\n var _a, _b;\n let videoEncoding = options === null || options === void 0 ? void 0 : options.videoEncoding;\n if (isScreenShare) {\n videoEncoding = options === null || options === void 0 ? void 0 : options.screenShareEncoding;\n }\n const useSimulcast = options === null || options === void 0 ? void 0 : options.simulcast;\n const scalabilityMode = options === null || options === void 0 ? void 0 : options.scalabilityMode;\n const videoCodec = options === null || options === void 0 ? void 0 : options.videoCodec;\n if (!videoEncoding && !useSimulcast && !scalabilityMode || !width || !height) {\n // when we aren't simulcasting or svc, will need to return a single encoding without\n // capping bandwidth. we always require a encoding for dynacast\n return [{}];\n }\n if (!videoEncoding) {\n // find the right encoding based on width/height\n videoEncoding = determineAppropriateEncoding(isScreenShare, width, height, videoCodec);\n livekitLogger.debug('using video encoding', videoEncoding);\n }\n const original = new VideoPreset(width, height, videoEncoding.maxBitrate, videoEncoding.maxFramerate, videoEncoding.priority);\n if (scalabilityMode && isSVCCodec(videoCodec)) {\n const sm = new ScalabilityMode(scalabilityMode);\n const encodings = [];\n if (sm.spatial > 3) {\n throw new Error(\"unsupported scalabilityMode: \".concat(scalabilityMode));\n }\n // Before M113 in Chrome, defining multiple encodings with an SVC codec indicated\n // that SVC mode should be used. Safari still works this way.\n // This is a bit confusing but is due to how libwebrtc interpreted the encodings field\n // before M113.\n // Announced here: https://groups.google.com/g/discuss-webrtc/c/-QQ3pxrl-fw?pli=1\n const browser = getBrowser();\n if (isSafari() ||\n // Even tho RN runs M114, it does not produce SVC layers when a single encoding\n // is provided. So we'll use the legacy SVC specification for now.\n // TODO: when we upstream libwebrtc, this will need additional verification\n isReactNative() || (browser === null || browser === void 0 ? void 0 : browser.name) === 'Chrome' && compareVersions(browser === null || browser === void 0 ? void 0 : browser.version, '113') < 0) {\n const bitratesRatio = sm.suffix == 'h' ? 2 : 3;\n for (let i = 0; i < sm.spatial; i += 1) {\n // in legacy SVC, scaleResolutionDownBy cannot be set\n encodings.push({\n rid: videoRids[2 - i],\n maxBitrate: videoEncoding.maxBitrate / Math.pow(bitratesRatio, i),\n maxFramerate: original.encoding.maxFramerate\n });\n }\n // legacy SVC, scalabilityMode is set only on the first encoding\n /* @ts-ignore */\n encodings[0].scalabilityMode = scalabilityMode;\n } else {\n encodings.push({\n maxBitrate: videoEncoding.maxBitrate,\n maxFramerate: original.encoding.maxFramerate,\n /* @ts-ignore */\n scalabilityMode: scalabilityMode\n });\n }\n if (original.encoding.priority) {\n encodings[0].priority = original.encoding.priority;\n encodings[0].networkPriority = original.encoding.priority;\n }\n livekitLogger.debug(\"using svc encoding\", {\n encodings\n });\n return encodings;\n }\n if (!useSimulcast) {\n return [videoEncoding];\n }\n let presets = [];\n if (isScreenShare) {\n presets = (_a = sortPresets(options === null || options === void 0 ? void 0 : options.screenShareSimulcastLayers)) !== null && _a !== void 0 ? _a : defaultSimulcastLayers(isScreenShare, original);\n } else {\n presets = (_b = sortPresets(options === null || options === void 0 ? void 0 : options.videoSimulcastLayers)) !== null && _b !== void 0 ? _b : defaultSimulcastLayers(isScreenShare, original);\n }\n let midPreset;\n if (presets.length > 0) {\n const lowPreset = presets[0];\n if (presets.length > 1) {\n [, midPreset] = presets;\n }\n // NOTE:\n // 1. Ordering of these encodings is important. Chrome seems\n // to use the index into encodings to decide which layer\n // to disable when CPU constrained.\n // So encodings should be ordered in increasing spatial\n // resolution order.\n // 2. livekit-server translates rids into layers. So, all encodings\n // should have the base layer `q` and then more added\n // based on other conditions.\n const size = Math.max(width, height);\n if (size >= 960 && midPreset) {\n return encodingsFromPresets(width, height, [lowPreset, midPreset, original]);\n }\n if (size >= 480) {\n return encodingsFromPresets(width, height, [lowPreset, original]);\n }\n }\n return encodingsFromPresets(width, height, [original]);\n}\nfunction computeTrackBackupEncodings(track, videoCodec, opts) {\n var _a, _b, _c, _d;\n // backupCodec should not be true anymore, default codec is set in LocalParticipant.publish\n if (!opts.backupCodec || opts.backupCodec === true || opts.backupCodec.codec === opts.videoCodec) {\n // backup codec publishing is disabled\n return;\n }\n if (videoCodec !== opts.backupCodec.codec) {\n livekitLogger.warn('requested a different codec than specified as backup', {\n serverRequested: videoCodec,\n backup: opts.backupCodec.codec\n });\n }\n opts.videoCodec = videoCodec;\n // use backup encoding setting as videoEncoding for backup codec publishing\n opts.videoEncoding = opts.backupCodec.encoding;\n const settings = track.mediaStreamTrack.getSettings();\n const width = (_a = settings.width) !== null && _a !== void 0 ? _a : (_b = track.dimensions) === null || _b === void 0 ? void 0 : _b.width;\n const height = (_c = settings.height) !== null && _c !== void 0 ? _c : (_d = track.dimensions) === null || _d === void 0 ? void 0 : _d.height;\n const encodings = computeVideoEncodings(track.source === Track.Source.ScreenShare, width, height, opts);\n return encodings;\n}\n/* @internal */\nfunction determineAppropriateEncoding(isScreenShare, width, height, codec) {\n const presets = presetsForResolution(isScreenShare, width, height);\n let {\n encoding\n } = presets[0];\n // handle portrait by swapping dimensions\n const size = Math.max(width, height);\n for (let i = 0; i < presets.length; i += 1) {\n const preset = presets[i];\n encoding = preset.encoding;\n if (preset.width >= size) {\n break;\n }\n }\n // presets are based on the assumption of vp8 as a codec\n // for other codecs we adjust the maxBitrate if no specific videoEncoding has been provided\n // users should override these with ones that are optimized for their use case\n // NOTE: SVC codec bitrates are inclusive of all scalability layers. while\n // bitrate for non-SVC codecs does not include other simulcast layers.\n if (codec) {\n switch (codec) {\n case 'av1':\n encoding = Object.assign({}, encoding);\n encoding.maxBitrate = encoding.maxBitrate * 0.7;\n break;\n case 'vp9':\n encoding = Object.assign({}, encoding);\n encoding.maxBitrate = encoding.maxBitrate * 0.85;\n break;\n }\n }\n return encoding;\n}\n/* @internal */\nfunction presetsForResolution(isScreenShare, width, height) {\n if (isScreenShare) {\n return presetsScreenShare;\n }\n const aspect = width > height ? width / height : height / width;\n if (Math.abs(aspect - 16.0 / 9) < Math.abs(aspect - 4.0 / 3)) {\n return presets169;\n }\n return presets43;\n}\n/* @internal */\nfunction defaultSimulcastLayers(isScreenShare, original) {\n if (isScreenShare) {\n return computeDefaultScreenShareSimulcastPresets(original);\n }\n const {\n width,\n height\n } = original;\n const aspect = width > height ? width / height : height / width;\n if (Math.abs(aspect - 16.0 / 9) < Math.abs(aspect - 4.0 / 3)) {\n return defaultSimulcastPresets169;\n }\n return defaultSimulcastPresets43;\n}\n// presets should be ordered by low, medium, high\nfunction encodingsFromPresets(width, height, presets) {\n const encodings = [];\n presets.forEach((preset, idx) => {\n if (idx >= videoRids.length) {\n return;\n }\n const size = Math.min(width, height);\n const rid = videoRids[idx];\n const encoding = {\n rid,\n scaleResolutionDownBy: Math.max(1, size / Math.min(preset.width, preset.height)),\n maxBitrate: preset.encoding.maxBitrate\n };\n if (preset.encoding.maxFramerate) {\n encoding.maxFramerate = preset.encoding.maxFramerate;\n }\n const canSetPriority = isFireFox() || idx === 0;\n if (preset.encoding.priority && canSetPriority) {\n encoding.priority = preset.encoding.priority;\n encoding.networkPriority = preset.encoding.priority;\n }\n encodings.push(encoding);\n });\n // RN ios simulcast requires all same framerates.\n if (isReactNative() && getReactNativeOs() === 'ios') {\n let topFramerate = undefined;\n encodings.forEach(encoding => {\n if (!topFramerate) {\n topFramerate = encoding.maxFramerate;\n } else if (encoding.maxFramerate && encoding.maxFramerate > topFramerate) {\n topFramerate = encoding.maxFramerate;\n }\n });\n let notifyOnce = true;\n encodings.forEach(encoding => {\n var _a;\n if (encoding.maxFramerate != topFramerate) {\n if (notifyOnce) {\n notifyOnce = false;\n livekitLogger.info(\"Simulcast on iOS React-Native requires all encodings to share the same framerate.\");\n }\n livekitLogger.info(\"Setting framerate of encoding \\\"\".concat((_a = encoding.rid) !== null && _a !== void 0 ? _a : '', \"\\\" to \").concat(topFramerate));\n encoding.maxFramerate = topFramerate;\n }\n });\n }\n return encodings;\n}\n/** @internal */\nfunction sortPresets(presets) {\n if (!presets) return;\n return presets.sort((a, b) => {\n const {\n encoding: aEnc\n } = a;\n const {\n encoding: bEnc\n } = b;\n if (aEnc.maxBitrate > bEnc.maxBitrate) {\n return 1;\n }\n if (aEnc.maxBitrate < bEnc.maxBitrate) return -1;\n if (aEnc.maxBitrate === bEnc.maxBitrate && aEnc.maxFramerate && bEnc.maxFramerate) {\n return aEnc.maxFramerate > bEnc.maxFramerate ? 1 : -1;\n }\n return 0;\n });\n}\n/** @internal */\nclass ScalabilityMode {\n constructor(scalabilityMode) {\n const results = scalabilityMode.match(/^L(\\d)T(\\d)(h|_KEY|_KEY_SHIFT){0,1}$/);\n if (!results) {\n throw new Error('invalid scalability mode');\n }\n this.spatial = parseInt(results[1]);\n this.temporal = parseInt(results[2]);\n if (results.length > 3) {\n switch (results[3]) {\n case 'h':\n case '_KEY':\n case '_KEY_SHIFT':\n this.suffix = results[3];\n }\n }\n }\n toString() {\n var _a;\n return \"L\".concat(this.spatial, \"T\").concat(this.temporal).concat((_a = this.suffix) !== null && _a !== void 0 ? _a : '');\n }\n}\nfunction getDefaultDegradationPreference(track) {\n // a few of reasons we have different default paths:\n // 1. without this, Chrome seems to aggressively resize the SVC video stating `quality-limitation: bandwidth` even when BW isn't an issue\n // 2. since we are overriding contentHint to motion (to workaround L1T3 publishing), it overrides the default degradationPreference to `balanced`\n if (track.source === Track.Source.ScreenShare || track.constraints.height && unwrapConstraint(track.constraints.height) >= 1080) {\n return 'maintain-resolution';\n } else {\n return 'balanced';\n }\n}\n\nconst refreshSubscribedCodecAfterNewCodec = 5000;\nclass LocalVideoTrack extends LocalTrack {\n get sender() {\n return this._sender;\n }\n set sender(sender) {\n this._sender = sender;\n if (this.degradationPreference) {\n this.setDegradationPreference(this.degradationPreference);\n }\n }\n /**\n *\n * @param mediaTrack\n * @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks\n * @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK\n */\n constructor(mediaTrack, constraints) {\n let userProvidedTrack = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let loggerOptions = arguments.length > 3 ? arguments[3] : undefined;\n super(mediaTrack, Track.Kind.Video, constraints, userProvidedTrack, loggerOptions);\n /* @internal */\n this.simulcastCodecs = new Map();\n this.degradationPreference = 'balanced';\n this.monitorSender = () => __awaiter(this, void 0, void 0, function* () {\n if (!this.sender) {\n this._currentBitrate = 0;\n return;\n }\n let stats;\n try {\n stats = yield this.getSenderStats();\n } catch (e) {\n this.log.error('could not get audio sender stats', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n return;\n }\n const statsMap = new Map(stats.map(s => [s.rid, s]));\n if (this.prevStats) {\n let totalBitrate = 0;\n statsMap.forEach((s, key) => {\n var _a;\n const prev = (_a = this.prevStats) === null || _a === void 0 ? void 0 : _a.get(key);\n totalBitrate += computeBitrate(s, prev);\n });\n this._currentBitrate = totalBitrate;\n }\n this.prevStats = statsMap;\n });\n this.senderLock = new h();\n }\n get isSimulcast() {\n if (this.sender && this.sender.getParameters().encodings.length > 1) {\n return true;\n }\n return false;\n }\n /* @internal */\n startMonitor(signalClient) {\n var _a;\n this.signalClient = signalClient;\n if (!isWeb()) {\n return;\n }\n // save original encodings\n // TODO : merge simulcast tracks stats\n const params = (_a = this.sender) === null || _a === void 0 ? void 0 : _a.getParameters();\n if (params) {\n this.encodings = params.encodings;\n }\n if (this.monitorInterval) {\n return;\n }\n this.monitorInterval = setInterval(() => {\n this.monitorSender();\n }, monitorFrequency);\n }\n stop() {\n this._mediaStreamTrack.getConstraints();\n this.simulcastCodecs.forEach(trackInfo => {\n trackInfo.mediaStreamTrack.stop();\n });\n super.stop();\n }\n pauseUpstream() {\n const _super = Object.create(null, {\n pauseUpstream: {\n get: () => super.pauseUpstream\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n var _a, e_1, _b, _c;\n var _d;\n yield _super.pauseUpstream.call(this);\n try {\n for (var _e = true, _f = __asyncValues(this.simulcastCodecs.values()), _g; _g = yield _f.next(), _a = _g.done, !_a; _e = true) {\n _c = _g.value;\n _e = false;\n const sc = _c;\n yield (_d = sc.sender) === null || _d === void 0 ? void 0 : _d.replaceTrack(null);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n });\n }\n resumeUpstream() {\n const _super = Object.create(null, {\n resumeUpstream: {\n get: () => super.resumeUpstream\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n var _a, e_2, _b, _c;\n var _d;\n yield _super.resumeUpstream.call(this);\n try {\n for (var _e = true, _f = __asyncValues(this.simulcastCodecs.values()), _g; _g = yield _f.next(), _a = _g.done, !_a; _e = true) {\n _c = _g.value;\n _e = false;\n const sc = _c;\n yield (_d = sc.sender) === null || _d === void 0 ? void 0 : _d.replaceTrack(sc.mediaStreamTrack);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (!_e && !_a && (_b = _f.return)) yield _b.call(_f);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n });\n }\n mute() {\n const _super = Object.create(null, {\n mute: {\n get: () => super.mute\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.muteLock.lock();\n try {\n if (this.isMuted) {\n this.log.debug('Track already muted', this.logContext);\n return this;\n }\n if (this.source === Track.Source.Camera && !this.isUserProvided) {\n this.log.debug('stopping camera track', this.logContext);\n // also stop the track, so that camera indicator is turned off\n this._mediaStreamTrack.stop();\n }\n yield _super.mute.call(this);\n return this;\n } finally {\n unlock();\n }\n });\n }\n unmute() {\n const _super = Object.create(null, {\n unmute: {\n get: () => super.unmute\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.muteLock.lock();\n try {\n if (!this.isMuted) {\n this.log.debug('Track already unmuted', this.logContext);\n return this;\n }\n if (this.source === Track.Source.Camera && !this.isUserProvided) {\n this.log.debug('reacquiring camera track', this.logContext);\n yield this.restartTrack();\n }\n yield _super.unmute.call(this);\n return this;\n } finally {\n unlock();\n }\n });\n }\n setTrackMuted(muted) {\n super.setTrackMuted(muted);\n for (const sc of this.simulcastCodecs.values()) {\n sc.mediaStreamTrack.enabled = !muted;\n }\n }\n getSenderStats() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!((_a = this.sender) === null || _a === void 0 ? void 0 : _a.getStats)) {\n return [];\n }\n const items = [];\n const stats = yield this.sender.getStats();\n stats.forEach(v => {\n var _a;\n if (v.type === 'outbound-rtp') {\n const vs = {\n type: 'video',\n streamId: v.id,\n frameHeight: v.frameHeight,\n frameWidth: v.frameWidth,\n framesPerSecond: v.framesPerSecond,\n framesSent: v.framesSent,\n firCount: v.firCount,\n pliCount: v.pliCount,\n nackCount: v.nackCount,\n packetsSent: v.packetsSent,\n bytesSent: v.bytesSent,\n qualityLimitationReason: v.qualityLimitationReason,\n qualityLimitationDurations: v.qualityLimitationDurations,\n qualityLimitationResolutionChanges: v.qualityLimitationResolutionChanges,\n rid: (_a = v.rid) !== null && _a !== void 0 ? _a : v.id,\n retransmittedPacketsSent: v.retransmittedPacketsSent,\n targetBitrate: v.targetBitrate,\n timestamp: v.timestamp\n };\n // locate the appropriate remote-inbound-rtp item\n const r = stats.get(v.remoteId);\n if (r) {\n vs.jitter = r.jitter;\n vs.packetsLost = r.packetsLost;\n vs.roundTripTime = r.roundTripTime;\n }\n items.push(vs);\n }\n });\n // make sure highest res layer is always first\n items.sort((a, b) => {\n var _a, _b;\n return ((_a = b.frameWidth) !== null && _a !== void 0 ? _a : 0) - ((_b = a.frameWidth) !== null && _b !== void 0 ? _b : 0);\n });\n return items;\n });\n }\n setPublishingQuality(maxQuality) {\n const qualities = [];\n for (let q = VideoQuality.LOW; q <= VideoQuality.HIGH; q += 1) {\n qualities.push(new SubscribedQuality({\n quality: q,\n enabled: q <= maxQuality\n }));\n }\n this.log.debug(\"setting publishing quality. max quality \".concat(maxQuality), this.logContext);\n this.setPublishingLayers(qualities);\n }\n setDeviceId(deviceId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._constraints.deviceId === deviceId && this._mediaStreamTrack.getSettings().deviceId === unwrapConstraint(deviceId)) {\n return true;\n }\n this._constraints.deviceId = deviceId;\n // when video is muted, underlying media stream track is stopped and\n // will be restarted later\n if (!this.isMuted) {\n yield this.restartTrack();\n }\n return this.isMuted || unwrapConstraint(deviceId) === this._mediaStreamTrack.getSettings().deviceId;\n });\n }\n restartTrack(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, e_3, _b, _c;\n let constraints;\n if (options) {\n const streamConstraints = constraintsForOptions({\n video: options\n });\n if (typeof streamConstraints.video !== 'boolean') {\n constraints = streamConstraints.video;\n }\n }\n yield this.restart(constraints);\n try {\n for (var _d = true, _e = __asyncValues(this.simulcastCodecs.values()), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {\n _c = _f.value;\n _d = false;\n const sc = _c;\n if (sc.sender) {\n sc.mediaStreamTrack = this.mediaStreamTrack.clone();\n yield sc.sender.replaceTrack(sc.mediaStreamTrack);\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (!_d && !_a && (_b = _e.return)) yield _b.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n });\n }\n setProcessor(processor_1) {\n const _super = Object.create(null, {\n setProcessor: {\n get: () => super.setProcessor\n }\n });\n return __awaiter(this, arguments, void 0, function (processor) {\n var _this = this;\n let showProcessedStreamLocally = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return function* () {\n var _a, e_4, _b, _c;\n var _d, _e;\n yield _super.setProcessor.call(_this, processor, showProcessedStreamLocally);\n if ((_d = _this.processor) === null || _d === void 0 ? void 0 : _d.processedTrack) {\n try {\n for (var _f = true, _g = __asyncValues(_this.simulcastCodecs.values()), _h; _h = yield _g.next(), _a = _h.done, !_a; _f = true) {\n _c = _h.value;\n _f = false;\n const sc = _c;\n yield (_e = sc.sender) === null || _e === void 0 ? void 0 : _e.replaceTrack(_this.processor.processedTrack);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (!_f && !_a && (_b = _g.return)) yield _b.call(_g);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n }\n }();\n });\n }\n setDegradationPreference(preference) {\n return __awaiter(this, void 0, void 0, function* () {\n this.degradationPreference = preference;\n if (this.sender) {\n try {\n this.log.debug(\"setting degradationPreference to \".concat(preference), this.logContext);\n const params = this.sender.getParameters();\n params.degradationPreference = preference;\n this.sender.setParameters(params);\n } catch (e) {\n this.log.warn(\"failed to set degradationPreference\", Object.assign({\n error: e\n }, this.logContext));\n }\n }\n });\n }\n addSimulcastTrack(codec, encodings) {\n if (this.simulcastCodecs.has(codec)) {\n this.log.error(\"\".concat(codec, \" already added, skipping adding simulcast codec\"), this.logContext);\n return;\n }\n const simulcastCodecInfo = {\n codec,\n mediaStreamTrack: this.mediaStreamTrack.clone(),\n sender: undefined,\n encodings\n };\n this.simulcastCodecs.set(codec, simulcastCodecInfo);\n return simulcastCodecInfo;\n }\n setSimulcastTrackSender(codec, sender) {\n const simulcastCodecInfo = this.simulcastCodecs.get(codec);\n if (!simulcastCodecInfo) {\n return;\n }\n simulcastCodecInfo.sender = sender;\n // browser will reenable disabled codec/layers after new codec has been published,\n // so refresh subscribedCodecs after publish a new codec\n setTimeout(() => {\n if (this.subscribedCodecs) {\n this.setPublishingCodecs(this.subscribedCodecs);\n }\n }, refreshSubscribedCodecAfterNewCodec);\n }\n /**\n * @internal\n * Sets codecs that should be publishing, returns new codecs that have not yet\n * been published\n */\n setPublishingCodecs(codecs) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, codecs_1, codecs_1_1;\n var _b, e_5, _c, _d;\n this.log.debug('setting publishing codecs', Object.assign(Object.assign({}, this.logContext), {\n codecs,\n currentCodec: this.codec\n }));\n // only enable simulcast codec for preference codec setted\n if (!this.codec && codecs.length > 0) {\n yield this.setPublishingLayers(codecs[0].qualities);\n return [];\n }\n this.subscribedCodecs = codecs;\n const newCodecs = [];\n try {\n for (_a = true, codecs_1 = __asyncValues(codecs); codecs_1_1 = yield codecs_1.next(), _b = codecs_1_1.done, !_b; _a = true) {\n _d = codecs_1_1.value;\n _a = false;\n const codec = _d;\n if (!this.codec || this.codec === codec.codec) {\n yield this.setPublishingLayers(codec.qualities);\n } else {\n const simulcastCodecInfo = this.simulcastCodecs.get(codec.codec);\n this.log.debug(\"try setPublishingCodec for \".concat(codec.codec), Object.assign(Object.assign({}, this.logContext), {\n simulcastCodecInfo\n }));\n if (!simulcastCodecInfo || !simulcastCodecInfo.sender) {\n for (const q of codec.qualities) {\n if (q.enabled) {\n newCodecs.push(codec.codec);\n break;\n }\n }\n } else if (simulcastCodecInfo.encodings) {\n this.log.debug(\"try setPublishingLayersForSender \".concat(codec.codec), this.logContext);\n yield setPublishingLayersForSender(simulcastCodecInfo.sender, simulcastCodecInfo.encodings, codec.qualities, this.senderLock, this.log, this.logContext);\n }\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (!_a && !_b && (_c = codecs_1.return)) yield _c.call(codecs_1);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n return newCodecs;\n });\n }\n /**\n * @internal\n * Sets layers that should be publishing\n */\n setPublishingLayers(qualities) {\n return __awaiter(this, void 0, void 0, function* () {\n this.log.debug('setting publishing layers', Object.assign(Object.assign({}, this.logContext), {\n qualities\n }));\n if (!this.sender || !this.encodings) {\n return;\n }\n yield setPublishingLayersForSender(this.sender, this.encodings, qualities, this.senderLock, this.log, this.logContext);\n });\n }\n handleAppVisibilityChanged() {\n const _super = Object.create(null, {\n handleAppVisibilityChanged: {\n get: () => super.handleAppVisibilityChanged\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.handleAppVisibilityChanged.call(this);\n if (!isMobile()) return;\n if (this.isInBackground && this.source === Track.Source.Camera) {\n this._mediaStreamTrack.enabled = false;\n }\n });\n }\n}\nfunction setPublishingLayersForSender(sender, senderEncodings, qualities, senderLock, log, logContext) {\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield senderLock.lock();\n log.debug('setPublishingLayersForSender', Object.assign(Object.assign({}, logContext), {\n sender,\n qualities,\n senderEncodings\n }));\n try {\n const params = sender.getParameters();\n const {\n encodings\n } = params;\n if (!encodings) {\n return;\n }\n if (encodings.length !== senderEncodings.length) {\n log.warn('cannot set publishing layers, encodings mismatch', Object.assign(Object.assign({}, logContext), {\n encodings,\n senderEncodings\n }));\n return;\n }\n let hasChanged = false;\n /* disable closable spatial layer as it has video blur / frozen issue with current server / client\n 1. chrome 113: when switching to up layer with scalability Mode change, it will generate a\n low resolution frame and recover very quickly, but noticable\n 2. livekit sfu: additional pli request cause video frozen for a few frames, also noticable */\n const closableSpatial = false;\n /* @ts-ignore */\n if (closableSpatial && encodings[0].scalabilityMode) ; else {\n // simulcast dynacast encodings\n encodings.forEach((encoding, idx) => {\n var _a;\n let rid = (_a = encoding.rid) !== null && _a !== void 0 ? _a : '';\n if (rid === '') {\n rid = 'q';\n }\n const quality = videoQualityForRid(rid);\n const subscribedQuality = qualities.find(q => q.quality === quality);\n if (!subscribedQuality) {\n return;\n }\n if (encoding.active !== subscribedQuality.enabled) {\n hasChanged = true;\n encoding.active = subscribedQuality.enabled;\n log.debug(\"setting layer \".concat(subscribedQuality.quality, \" to \").concat(encoding.active ? 'enabled' : 'disabled'), logContext);\n // FireFox does not support setting encoding.active to false, so we\n // have a workaround of lowering its bitrate and resolution to the min.\n if (isFireFox()) {\n if (subscribedQuality.enabled) {\n encoding.scaleResolutionDownBy = senderEncodings[idx].scaleResolutionDownBy;\n encoding.maxBitrate = senderEncodings[idx].maxBitrate;\n /* @ts-ignore */\n encoding.maxFrameRate = senderEncodings[idx].maxFrameRate;\n } else {\n encoding.scaleResolutionDownBy = 4;\n encoding.maxBitrate = 10;\n /* @ts-ignore */\n encoding.maxFrameRate = 2;\n }\n }\n }\n });\n }\n if (hasChanged) {\n params.encodings = encodings;\n log.debug(\"setting encodings\", Object.assign(Object.assign({}, logContext), {\n encodings: params.encodings\n }));\n yield sender.setParameters(params);\n }\n } finally {\n unlock();\n }\n });\n}\nfunction videoQualityForRid(rid) {\n switch (rid) {\n case 'f':\n return VideoQuality.HIGH;\n case 'h':\n return VideoQuality.MEDIUM;\n case 'q':\n return VideoQuality.LOW;\n default:\n return VideoQuality.HIGH;\n }\n}\nfunction videoLayersFromEncodings(width, height, encodings, svc) {\n // default to a single layer, HQ\n if (!encodings) {\n return [new VideoLayer({\n quality: VideoQuality.HIGH,\n width,\n height,\n bitrate: 0,\n ssrc: 0\n })];\n }\n if (svc) {\n // svc layers\n /* @ts-ignore */\n const encodingSM = encodings[0].scalabilityMode;\n const sm = new ScalabilityMode(encodingSM);\n const layers = [];\n const resRatio = sm.suffix == 'h' ? 1.5 : 2;\n const bitratesRatio = sm.suffix == 'h' ? 2 : 3;\n for (let i = 0; i < sm.spatial; i += 1) {\n layers.push(new VideoLayer({\n quality: Math.min(VideoQuality.HIGH, sm.spatial - 1) - i,\n width: Math.ceil(width / Math.pow(resRatio, i)),\n height: Math.ceil(height / Math.pow(resRatio, i)),\n bitrate: encodings[0].maxBitrate ? Math.ceil(encodings[0].maxBitrate / Math.pow(bitratesRatio, i)) : 0,\n ssrc: 0\n }));\n }\n return layers;\n }\n return encodings.map(encoding => {\n var _a, _b, _c;\n const scale = (_a = encoding.scaleResolutionDownBy) !== null && _a !== void 0 ? _a : 1;\n let quality = videoQualityForRid((_b = encoding.rid) !== null && _b !== void 0 ? _b : '');\n return new VideoLayer({\n quality,\n width: Math.ceil(width / scale),\n height: Math.ceil(height / scale),\n bitrate: (_c = encoding.maxBitrate) !== null && _c !== void 0 ? _c : 0,\n ssrc: 0\n });\n });\n}\n\nconst lossyDataChannel = '_lossy';\nconst reliableDataChannel = '_reliable';\nconst minReconnectWait = 2 * 1000;\nconst leaveReconnect = 'leave-reconnect';\nvar PCState;\n(function (PCState) {\n PCState[PCState[\"New\"] = 0] = \"New\";\n PCState[PCState[\"Connected\"] = 1] = \"Connected\";\n PCState[PCState[\"Disconnected\"] = 2] = \"Disconnected\";\n PCState[PCState[\"Reconnecting\"] = 3] = \"Reconnecting\";\n PCState[PCState[\"Closed\"] = 4] = \"Closed\";\n})(PCState || (PCState = {}));\n/** @internal */\nclass RTCEngine extends eventsExports.EventEmitter {\n get isClosed() {\n return this._isClosed;\n }\n get pendingReconnect() {\n return !!this.reconnectTimeout;\n }\n constructor(options) {\n var _a;\n super();\n this.options = options;\n this.rtcConfig = {};\n this.peerConnectionTimeout = roomConnectOptionDefaults.peerConnectionTimeout;\n this.fullReconnectOnNext = false;\n this.subscriberPrimary = false;\n this.pcState = PCState.New;\n this._isClosed = true;\n this.pendingTrackResolvers = {};\n this.reconnectAttempts = 0;\n this.reconnectStart = 0;\n this.attemptingReconnect = false;\n /** keeps track of how often an initial join connection has been tried */\n this.joinAttempts = 0;\n /** specifies how often an initial join connection is allowed to retry */\n this.maxJoinAttempts = 1;\n this.shouldFailNext = false;\n this.log = livekitLogger;\n this.handleDataChannel = _a => __awaiter(this, [_a], void 0, function (_ref) {\n var _this = this;\n let {\n channel\n } = _ref;\n return function* () {\n if (!channel) {\n return;\n }\n if (channel.label === reliableDataChannel) {\n _this.reliableDCSub = channel;\n } else if (channel.label === lossyDataChannel) {\n _this.lossyDCSub = channel;\n } else {\n return;\n }\n _this.log.debug(\"on data channel \".concat(channel.id, \", \").concat(channel.label), _this.logContext);\n channel.onmessage = _this.handleDataMessage;\n }();\n });\n this.handleDataMessage = message => __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n // make sure to respect incoming data message order by processing message events one after the other\n const unlock = yield this.dataProcessLock.lock();\n try {\n // decode\n let buffer;\n if (message.data instanceof ArrayBuffer) {\n buffer = message.data;\n } else if (message.data instanceof Blob) {\n buffer = yield message.data.arrayBuffer();\n } else {\n this.log.error('unsupported data type', Object.assign(Object.assign({}, this.logContext), {\n data: message.data\n }));\n return;\n }\n const dp = DataPacket.fromBinary(new Uint8Array(buffer));\n if (((_a = dp.value) === null || _a === void 0 ? void 0 : _a.case) === 'speaker') {\n // dispatch speaker updates\n this.emit(EngineEvent.ActiveSpeakersUpdate, dp.value.value.speakers);\n } else {\n if (((_b = dp.value) === null || _b === void 0 ? void 0 : _b.case) === 'user') {\n // compatibility\n applyUserDataCompat(dp, dp.value.value);\n }\n this.emit(EngineEvent.DataPacketReceived, dp);\n }\n } finally {\n unlock();\n }\n });\n this.handleDataError = event => {\n const channel = event.currentTarget;\n const channelKind = channel.maxRetransmits === 0 ? 'lossy' : 'reliable';\n if (event instanceof ErrorEvent && event.error) {\n const {\n error\n } = event.error;\n this.log.error(\"DataChannel error on \".concat(channelKind, \": \").concat(event.message), Object.assign(Object.assign({}, this.logContext), {\n error\n }));\n } else {\n this.log.error(\"Unknown DataChannel error on \".concat(channelKind), Object.assign(Object.assign({}, this.logContext), {\n event\n }));\n }\n };\n this.handleBufferedAmountLow = event => {\n const channel = event.currentTarget;\n const channelKind = channel.maxRetransmits === 0 ? DataPacket_Kind.LOSSY : DataPacket_Kind.RELIABLE;\n this.updateAndEmitDCBufferStatus(channelKind);\n };\n // websocket reconnect behavior. if websocket is interrupted, and the PeerConnection\n // continues to work, we can reconnect to websocket to continue the session\n // after a number of retries, we'll close and give up permanently\n this.handleDisconnect = (connection, disconnectReason) => {\n if (this._isClosed) {\n return;\n }\n this.log.warn(\"\".concat(connection, \" disconnected\"), this.logContext);\n if (this.reconnectAttempts === 0) {\n // only reset start time on the first try\n this.reconnectStart = Date.now();\n }\n const disconnect = duration => {\n this.log.warn(\"could not recover connection after \".concat(this.reconnectAttempts, \" attempts, \").concat(duration, \"ms. giving up\"), this.logContext);\n this.emit(EngineEvent.Disconnected);\n this.close();\n };\n const duration = Date.now() - this.reconnectStart;\n let delay = this.getNextRetryDelay({\n elapsedMs: duration,\n retryCount: this.reconnectAttempts\n });\n if (delay === null) {\n disconnect(duration);\n return;\n }\n if (connection === leaveReconnect) {\n delay = 0;\n }\n this.log.debug(\"reconnecting in \".concat(delay, \"ms\"), this.logContext);\n this.clearReconnectTimeout();\n if (this.token && this.regionUrlProvider) {\n // token may have been refreshed, we do not want to recreate the regionUrlProvider\n // since the current engine may have inherited a regional url\n this.regionUrlProvider.updateToken(this.token);\n }\n this.reconnectTimeout = CriticalTimers.setTimeout(() => this.attemptReconnect(disconnectReason).finally(() => this.reconnectTimeout = undefined), delay);\n };\n this.waitForRestarted = () => {\n return new Promise((resolve, reject) => {\n if (this.pcState === PCState.Connected) {\n resolve();\n }\n const onRestarted = () => {\n this.off(EngineEvent.Disconnected, onDisconnected);\n resolve();\n };\n const onDisconnected = () => {\n this.off(EngineEvent.Restarted, onRestarted);\n reject();\n };\n this.once(EngineEvent.Restarted, onRestarted);\n this.once(EngineEvent.Disconnected, onDisconnected);\n });\n };\n this.updateAndEmitDCBufferStatus = kind => {\n const status = this.isBufferStatusLow(kind);\n if (typeof status !== 'undefined' && status !== this.dcBufferStatus.get(kind)) {\n this.dcBufferStatus.set(kind, status);\n this.emit(EngineEvent.DCBufferStatusChanged, status, kind);\n }\n };\n this.isBufferStatusLow = kind => {\n const dc = this.dataChannelForKind(kind);\n if (dc) {\n return dc.bufferedAmount <= dc.bufferedAmountLowThreshold;\n }\n };\n this.handleBrowserOnLine = () => {\n // in case the engine is currently reconnecting, attempt a reconnect immediately after the browser state has changed to 'onLine'\n if (this.client.currentState === SignalConnectionState.RECONNECTING) {\n this.clearReconnectTimeout();\n this.attemptReconnect(ReconnectReason.RR_SIGNAL_DISCONNECTED);\n }\n };\n this.log = getLogger((_a = options.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Engine);\n this.loggerOptions = {\n loggerName: options.loggerName,\n loggerContextCb: () => this.logContext\n };\n this.client = new SignalClient(undefined, this.loggerOptions);\n this.client.signalLatency = this.options.expSignalLatency;\n this.reconnectPolicy = this.options.reconnectPolicy;\n this.registerOnLineListener();\n this.closingLock = new h();\n this.dataProcessLock = new h();\n this.dcBufferStatus = new Map([[DataPacket_Kind.LOSSY, true], [DataPacket_Kind.RELIABLE, true]]);\n this.client.onParticipantUpdate = updates => this.emit(EngineEvent.ParticipantUpdate, updates);\n this.client.onConnectionQuality = update => this.emit(EngineEvent.ConnectionQualityUpdate, update);\n this.client.onRoomUpdate = update => this.emit(EngineEvent.RoomUpdate, update);\n this.client.onSubscriptionError = resp => this.emit(EngineEvent.SubscriptionError, resp);\n this.client.onSubscriptionPermissionUpdate = update => this.emit(EngineEvent.SubscriptionPermissionUpdate, update);\n this.client.onSpeakersChanged = update => this.emit(EngineEvent.SpeakersChanged, update);\n this.client.onStreamStateUpdate = update => this.emit(EngineEvent.StreamStateChanged, update);\n this.client.onRequestResponse = response => this.emit(EngineEvent.SignalRequestResponse, response);\n }\n /** @internal */\n get logContext() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return {\n room: (_b = (_a = this.latestJoinResponse) === null || _a === void 0 ? void 0 : _a.room) === null || _b === void 0 ? void 0 : _b.name,\n roomID: (_d = (_c = this.latestJoinResponse) === null || _c === void 0 ? void 0 : _c.room) === null || _d === void 0 ? void 0 : _d.sid,\n participant: (_f = (_e = this.latestJoinResponse) === null || _e === void 0 ? void 0 : _e.participant) === null || _f === void 0 ? void 0 : _f.identity,\n pID: (_h = (_g = this.latestJoinResponse) === null || _g === void 0 ? void 0 : _g.participant) === null || _h === void 0 ? void 0 : _h.sid\n };\n }\n join(url, token, opts, abortSignal) {\n return __awaiter(this, void 0, void 0, function* () {\n this.url = url;\n this.token = token;\n this.signalOpts = opts;\n this.maxJoinAttempts = opts.maxRetries;\n try {\n this.joinAttempts += 1;\n this.setupSignalClientCallbacks();\n const joinResponse = yield this.client.join(url, token, opts, abortSignal);\n this._isClosed = false;\n this.latestJoinResponse = joinResponse;\n this.subscriberPrimary = joinResponse.subscriberPrimary;\n if (!this.pcManager) {\n yield this.configure(joinResponse);\n }\n // create offer\n if (!this.subscriberPrimary || joinResponse.fastPublish) {\n this.negotiate();\n }\n this.clientConfiguration = joinResponse.clientConfiguration;\n return joinResponse;\n } catch (e) {\n if (e instanceof ConnectionError) {\n if (e.reason === ConnectionErrorReason.ServerUnreachable) {\n this.log.warn(\"Couldn't connect to server, attempt \".concat(this.joinAttempts, \" of \").concat(this.maxJoinAttempts), this.logContext);\n if (this.joinAttempts < this.maxJoinAttempts) {\n return this.join(url, token, opts, abortSignal);\n }\n }\n }\n throw e;\n }\n });\n }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n const unlock = yield this.closingLock.lock();\n if (this.isClosed) {\n unlock();\n return;\n }\n try {\n this._isClosed = true;\n this.joinAttempts = 0;\n this.emit(EngineEvent.Closing);\n this.removeAllListeners();\n this.deregisterOnLineListener();\n this.clearPendingReconnect();\n yield this.cleanupPeerConnections();\n yield this.cleanupClient();\n } finally {\n unlock();\n }\n });\n }\n cleanupPeerConnections() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (_a = this.pcManager) === null || _a === void 0 ? void 0 : _a.close();\n this.pcManager = undefined;\n const dcCleanup = dc => {\n if (!dc) return;\n dc.close();\n dc.onbufferedamountlow = null;\n dc.onclose = null;\n dc.onclosing = null;\n dc.onerror = null;\n dc.onmessage = null;\n dc.onopen = null;\n };\n dcCleanup(this.lossyDC);\n dcCleanup(this.lossyDCSub);\n dcCleanup(this.reliableDC);\n dcCleanup(this.reliableDCSub);\n this.lossyDC = undefined;\n this.lossyDCSub = undefined;\n this.reliableDC = undefined;\n this.reliableDCSub = undefined;\n });\n }\n cleanupClient() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.client.close();\n this.client.resetCallbacks();\n });\n }\n addTrack(req) {\n if (this.pendingTrackResolvers[req.cid]) {\n throw new TrackInvalidError('a track with the same ID has already been published');\n }\n return new Promise((resolve, reject) => {\n const publicationTimeout = setTimeout(() => {\n delete this.pendingTrackResolvers[req.cid];\n reject(new ConnectionError('publication of local track timed out, no response from server', ConnectionErrorReason.InternalError));\n }, 10000);\n this.pendingTrackResolvers[req.cid] = {\n resolve: info => {\n clearTimeout(publicationTimeout);\n resolve(info);\n },\n reject: () => {\n clearTimeout(publicationTimeout);\n reject(new Error('Cancelled publication by calling unpublish'));\n }\n };\n this.client.sendAddTrack(req);\n });\n }\n /**\n * Removes sender from PeerConnection, returning true if it was removed successfully\n * and a negotiation is necessary\n * @param sender\n * @returns\n */\n removeTrack(sender) {\n if (sender.track && this.pendingTrackResolvers[sender.track.id]) {\n const {\n reject\n } = this.pendingTrackResolvers[sender.track.id];\n if (reject) {\n reject();\n }\n delete this.pendingTrackResolvers[sender.track.id];\n }\n try {\n this.pcManager.removeTrack(sender);\n return true;\n } catch (e) {\n this.log.warn('failed to remove track', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n return false;\n }\n updateMuteStatus(trackSid, muted) {\n this.client.sendMuteTrack(trackSid, muted);\n }\n get dataSubscriberReadyState() {\n var _a;\n return (_a = this.reliableDCSub) === null || _a === void 0 ? void 0 : _a.readyState;\n }\n getConnectedServerAddress() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n return (_a = this.pcManager) === null || _a === void 0 ? void 0 : _a.getConnectedAddress();\n });\n }\n /* @internal */\n setRegionUrlProvider(provider) {\n this.regionUrlProvider = provider;\n }\n configure(joinResponse) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n // already configured\n if (this.pcManager && this.pcManager.currentState !== PCTransportState.NEW) {\n return;\n }\n this.participantSid = (_a = joinResponse.participant) === null || _a === void 0 ? void 0 : _a.sid;\n const rtcConfig = this.makeRTCConfiguration(joinResponse);\n this.pcManager = new PCTransportManager(rtcConfig, joinResponse.subscriberPrimary, this.loggerOptions);\n this.emit(EngineEvent.TransportsCreated, this.pcManager.publisher, this.pcManager.subscriber);\n this.pcManager.onIceCandidate = (candidate, target) => {\n this.client.sendIceCandidate(candidate, target);\n };\n this.pcManager.onPublisherOffer = offer => {\n this.client.sendOffer(offer);\n };\n this.pcManager.onDataChannel = this.handleDataChannel;\n this.pcManager.onStateChange = (connectionState, publisherState, subscriberState) => __awaiter(this, void 0, void 0, function* () {\n this.log.debug(\"primary PC state changed \".concat(connectionState), this.logContext);\n if (['closed', 'disconnected', 'failed'].includes(publisherState)) {\n // reset publisher connection promise\n this.publisherConnectionPromise = undefined;\n }\n if (connectionState === PCTransportState.CONNECTED) {\n const shouldEmit = this.pcState === PCState.New;\n this.pcState = PCState.Connected;\n if (shouldEmit) {\n this.emit(EngineEvent.Connected, joinResponse);\n }\n } else if (connectionState === PCTransportState.FAILED) {\n // on Safari, PeerConnection will switch to 'disconnected' during renegotiation\n if (this.pcState === PCState.Connected) {\n this.pcState = PCState.Disconnected;\n this.handleDisconnect('peerconnection failed', subscriberState === 'failed' ? ReconnectReason.RR_SUBSCRIBER_FAILED : ReconnectReason.RR_PUBLISHER_FAILED);\n }\n }\n // detect cases where both signal client and peer connection are severed and assume that user has lost network connection\n const isSignalSevered = this.client.isDisconnected || this.client.currentState === SignalConnectionState.RECONNECTING;\n const isPCSevered = [PCTransportState.FAILED, PCTransportState.CLOSING, PCTransportState.CLOSED].includes(connectionState);\n if (isSignalSevered && isPCSevered && !this._isClosed) {\n this.emit(EngineEvent.Offline);\n }\n });\n this.pcManager.onTrack = ev => {\n this.emit(EngineEvent.MediaTrackAdded, ev.track, ev.streams[0], ev.receiver);\n };\n if (!supportOptionalDatachannel((_b = joinResponse.serverInfo) === null || _b === void 0 ? void 0 : _b.protocol)) {\n this.createDataChannels();\n }\n });\n }\n setupSignalClientCallbacks() {\n // configure signaling client\n this.client.onAnswer = sd => __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n return;\n }\n this.log.debug('received server answer', Object.assign(Object.assign({}, this.logContext), {\n RTCSdpType: sd.type\n }));\n yield this.pcManager.setPublisherAnswer(sd);\n });\n // add candidate on trickle\n this.client.onTrickle = (candidate, target) => {\n if (!this.pcManager) {\n return;\n }\n this.log.trace('got ICE candidate from peer', Object.assign(Object.assign({}, this.logContext), {\n candidate,\n target\n }));\n this.pcManager.addIceCandidate(candidate, target);\n };\n // when server creates an offer for the client\n this.client.onOffer = sd => __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n return;\n }\n const answer = yield this.pcManager.createSubscriberAnswerFromOffer(sd);\n this.client.sendAnswer(answer);\n });\n this.client.onLocalTrackPublished = res => {\n var _a;\n this.log.debug('received trackPublishedResponse', Object.assign(Object.assign({}, this.logContext), {\n cid: res.cid,\n track: (_a = res.track) === null || _a === void 0 ? void 0 : _a.sid\n }));\n if (!this.pendingTrackResolvers[res.cid]) {\n this.log.error(\"missing track resolver for \".concat(res.cid), Object.assign(Object.assign({}, this.logContext), {\n cid: res.cid\n }));\n return;\n }\n const {\n resolve\n } = this.pendingTrackResolvers[res.cid];\n delete this.pendingTrackResolvers[res.cid];\n resolve(res.track);\n };\n this.client.onLocalTrackUnpublished = response => {\n this.emit(EngineEvent.LocalTrackUnpublished, response);\n };\n this.client.onLocalTrackSubscribed = trackSid => {\n this.emit(EngineEvent.LocalTrackSubscribed, trackSid);\n };\n this.client.onTokenRefresh = token => {\n this.token = token;\n };\n this.client.onRemoteMuteChanged = (trackSid, muted) => {\n this.emit(EngineEvent.RemoteMute, trackSid, muted);\n };\n this.client.onSubscribedQualityUpdate = update => {\n this.emit(EngineEvent.SubscribedQualityUpdate, update);\n };\n this.client.onClose = () => {\n this.handleDisconnect('signal', ReconnectReason.RR_SIGNAL_DISCONNECTED);\n };\n this.client.onLeave = leave => {\n this.log.debug('client leave request', Object.assign(Object.assign({}, this.logContext), {\n reason: leave === null || leave === void 0 ? void 0 : leave.reason\n }));\n if (leave.regions && this.regionUrlProvider) {\n this.log.debug('updating regions', this.logContext);\n this.regionUrlProvider.setServerReportedRegions(leave.regions);\n }\n switch (leave.action) {\n case LeaveRequest_Action.DISCONNECT:\n this.emit(EngineEvent.Disconnected, leave === null || leave === void 0 ? void 0 : leave.reason);\n this.close();\n break;\n case LeaveRequest_Action.RECONNECT:\n this.fullReconnectOnNext = true;\n // reconnect immediately instead of waiting for next attempt\n this.handleDisconnect(leaveReconnect);\n break;\n case LeaveRequest_Action.RESUME:\n // reconnect immediately instead of waiting for next attempt\n this.handleDisconnect(leaveReconnect);\n }\n };\n }\n makeRTCConfiguration(serverResponse) {\n var _a;\n const rtcConfig = Object.assign({}, this.rtcConfig);\n if ((_a = this.signalOpts) === null || _a === void 0 ? void 0 : _a.e2eeEnabled) {\n this.log.debug('E2EE - setting up transports with insertable streams', this.logContext);\n // this makes sure that no data is sent before the transforms are ready\n // @ts-ignore\n rtcConfig.encodedInsertableStreams = true;\n }\n // update ICE servers before creating PeerConnection\n if (serverResponse.iceServers && !rtcConfig.iceServers) {\n const rtcIceServers = [];\n serverResponse.iceServers.forEach(iceServer => {\n const rtcIceServer = {\n urls: iceServer.urls\n };\n if (iceServer.username) rtcIceServer.username = iceServer.username;\n if (iceServer.credential) {\n rtcIceServer.credential = iceServer.credential;\n }\n rtcIceServers.push(rtcIceServer);\n });\n rtcConfig.iceServers = rtcIceServers;\n }\n if (serverResponse.clientConfiguration && serverResponse.clientConfiguration.forceRelay === ClientConfigSetting.ENABLED) {\n rtcConfig.iceTransportPolicy = 'relay';\n }\n // @ts-ignore\n rtcConfig.sdpSemantics = 'unified-plan';\n // @ts-ignore\n rtcConfig.continualGatheringPolicy = 'gather_continually';\n return rtcConfig;\n }\n createDataChannels() {\n if (!this.pcManager) {\n return;\n }\n // clear old data channel callbacks if recreate\n if (this.lossyDC) {\n this.lossyDC.onmessage = null;\n this.lossyDC.onerror = null;\n }\n if (this.reliableDC) {\n this.reliableDC.onmessage = null;\n this.reliableDC.onerror = null;\n }\n // create data channels\n this.lossyDC = this.pcManager.createPublisherDataChannel(lossyDataChannel, {\n // will drop older packets that arrive\n ordered: true,\n maxRetransmits: 0\n });\n this.reliableDC = this.pcManager.createPublisherDataChannel(reliableDataChannel, {\n ordered: true\n });\n // also handle messages over the pub channel, for backwards compatibility\n this.lossyDC.onmessage = this.handleDataMessage;\n this.reliableDC.onmessage = this.handleDataMessage;\n // handle datachannel errors\n this.lossyDC.onerror = this.handleDataError;\n this.reliableDC.onerror = this.handleDataError;\n // set up dc buffer threshold, set to 64kB (otherwise 0 by default)\n this.lossyDC.bufferedAmountLowThreshold = 65535;\n this.reliableDC.bufferedAmountLowThreshold = 65535;\n // handle buffer amount low events\n this.lossyDC.onbufferedamountlow = this.handleBufferedAmountLow;\n this.reliableDC.onbufferedamountlow = this.handleBufferedAmountLow;\n }\n createSender(track, opts, encodings) {\n return __awaiter(this, void 0, void 0, function* () {\n if (supportsTransceiver()) {\n const sender = yield this.createTransceiverRTCRtpSender(track, opts, encodings);\n return sender;\n }\n if (supportsAddTrack()) {\n this.log.warn('using add-track fallback', this.logContext);\n const sender = yield this.createRTCRtpSender(track.mediaStreamTrack);\n return sender;\n }\n throw new UnexpectedConnectionState('Required webRTC APIs not supported on this device');\n });\n }\n createSimulcastSender(track, simulcastTrack, opts, encodings) {\n return __awaiter(this, void 0, void 0, function* () {\n // store RTCRtpSender\n if (supportsTransceiver()) {\n return this.createSimulcastTransceiverSender(track, simulcastTrack, opts, encodings);\n }\n if (supportsAddTrack()) {\n this.log.debug('using add-track fallback', this.logContext);\n return this.createRTCRtpSender(track.mediaStreamTrack);\n }\n throw new UnexpectedConnectionState('Cannot stream on this device');\n });\n }\n createTransceiverRTCRtpSender(track, opts, encodings) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('publisher is closed');\n }\n const streams = [];\n if (track.mediaStream) {\n streams.push(track.mediaStream);\n }\n if (track instanceof LocalVideoTrack) {\n track.codec = opts.videoCodec;\n }\n const transceiverInit = {\n direction: 'sendonly',\n streams\n };\n if (encodings) {\n transceiverInit.sendEncodings = encodings;\n }\n // addTransceiver for react-native is async. web is synchronous, but await won't effect it.\n const transceiver = yield this.pcManager.addPublisherTransceiver(track.mediaStreamTrack, transceiverInit);\n return transceiver.sender;\n });\n }\n createSimulcastTransceiverSender(track, simulcastTrack, opts, encodings) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('publisher is closed');\n }\n const transceiverInit = {\n direction: 'sendonly'\n };\n if (encodings) {\n transceiverInit.sendEncodings = encodings;\n }\n // addTransceiver for react-native is async. web is synchronous, but await won't effect it.\n const transceiver = yield this.pcManager.addPublisherTransceiver(simulcastTrack.mediaStreamTrack, transceiverInit);\n if (!opts.videoCodec) {\n return;\n }\n track.setSimulcastTrackSender(opts.videoCodec, transceiver.sender);\n return transceiver.sender;\n });\n }\n createRTCRtpSender(track) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('publisher is closed');\n }\n return this.pcManager.addPublisherTrack(track);\n });\n }\n attemptReconnect(reason) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (this._isClosed) {\n return;\n }\n // guard for attempting reconnection multiple times while one attempt is still not finished\n if (this.attemptingReconnect) {\n livekitLogger.warn('already attempting reconnect, returning early', this.logContext);\n return;\n }\n if (((_a = this.clientConfiguration) === null || _a === void 0 ? void 0 : _a.resumeConnection) === ClientConfigSetting.DISABLED ||\n // signaling state could change to closed due to hardware sleep\n // those connections cannot be resumed\n ((_c = (_b = this.pcManager) === null || _b === void 0 ? void 0 : _b.currentState) !== null && _c !== void 0 ? _c : PCTransportState.NEW) === PCTransportState.NEW) {\n this.fullReconnectOnNext = true;\n }\n try {\n this.attemptingReconnect = true;\n if (this.fullReconnectOnNext) {\n yield this.restartConnection();\n } else {\n yield this.resumeConnection(reason);\n }\n this.clearPendingReconnect();\n this.fullReconnectOnNext = false;\n } catch (e) {\n this.reconnectAttempts += 1;\n let recoverable = true;\n if (e instanceof UnexpectedConnectionState) {\n this.log.debug('received unrecoverable error', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n // unrecoverable\n recoverable = false;\n } else if (!(e instanceof SignalReconnectError)) {\n // cannot resume\n this.fullReconnectOnNext = true;\n }\n if (recoverable) {\n this.handleDisconnect('reconnect', ReconnectReason.RR_UNKNOWN);\n } else {\n this.log.info(\"could not recover connection after \".concat(this.reconnectAttempts, \" attempts, \").concat(Date.now() - this.reconnectStart, \"ms. giving up\"), this.logContext);\n this.emit(EngineEvent.Disconnected);\n yield this.close();\n }\n } finally {\n this.attemptingReconnect = false;\n }\n });\n }\n getNextRetryDelay(context) {\n try {\n return this.reconnectPolicy.nextRetryDelayInMs(context);\n } catch (e) {\n this.log.warn('encountered error in reconnect policy', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n // error in user code with provided reconnect policy, stop reconnecting\n return null;\n }\n restartConnection(regionUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n try {\n if (!this.url || !this.token) {\n // permanent failure, don't attempt reconnection\n throw new UnexpectedConnectionState('could not reconnect, url or token not saved');\n }\n this.log.info(\"reconnecting, attempt: \".concat(this.reconnectAttempts), this.logContext);\n this.emit(EngineEvent.Restarting);\n if (!this.client.isDisconnected) {\n yield this.client.sendLeave();\n }\n yield this.cleanupPeerConnections();\n yield this.cleanupClient();\n let joinResponse;\n try {\n if (!this.signalOpts) {\n this.log.warn('attempted connection restart, without signal options present', this.logContext);\n throw new SignalReconnectError();\n }\n // in case a regionUrl is passed, the region URL takes precedence\n joinResponse = yield this.join(regionUrl !== null && regionUrl !== void 0 ? regionUrl : this.url, this.token, this.signalOpts);\n } catch (e) {\n if (e instanceof ConnectionError && e.reason === ConnectionErrorReason.NotAllowed) {\n throw new UnexpectedConnectionState('could not reconnect, token might be expired');\n }\n throw new SignalReconnectError();\n }\n if (this.shouldFailNext) {\n this.shouldFailNext = false;\n throw new Error('simulated failure');\n }\n this.client.setReconnected();\n this.emit(EngineEvent.SignalRestarted, joinResponse);\n yield this.waitForPCReconnected();\n // re-check signal connection state before setting engine as resumed\n if (this.client.currentState !== SignalConnectionState.CONNECTED) {\n throw new SignalReconnectError('Signal connection got severed during reconnect');\n }\n (_a = this.regionUrlProvider) === null || _a === void 0 ? void 0 : _a.resetAttempts();\n // reconnect success\n this.emit(EngineEvent.Restarted);\n } catch (error) {\n const nextRegionUrl = yield (_b = this.regionUrlProvider) === null || _b === void 0 ? void 0 : _b.getNextBestRegionUrl();\n if (nextRegionUrl) {\n yield this.restartConnection(nextRegionUrl);\n return;\n } else {\n // no more regions to try (or we're not on cloud)\n (_c = this.regionUrlProvider) === null || _c === void 0 ? void 0 : _c.resetAttempts();\n throw error;\n }\n }\n });\n }\n resumeConnection(reason) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!this.url || !this.token) {\n // permanent failure, don't attempt reconnection\n throw new UnexpectedConnectionState('could not reconnect, url or token not saved');\n }\n // trigger publisher reconnect\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('publisher and subscriber connections unset');\n }\n this.log.info(\"resuming signal connection, attempt \".concat(this.reconnectAttempts), this.logContext);\n this.emit(EngineEvent.Resuming);\n let res;\n try {\n this.setupSignalClientCallbacks();\n res = yield this.client.reconnect(this.url, this.token, this.participantSid, reason);\n } catch (error) {\n let message = '';\n if (error instanceof Error) {\n message = error.message;\n this.log.error(error.message, Object.assign(Object.assign({}, this.logContext), {\n error\n }));\n }\n if (error instanceof ConnectionError && error.reason === ConnectionErrorReason.NotAllowed) {\n throw new UnexpectedConnectionState('could not reconnect, token might be expired');\n }\n if (error instanceof ConnectionError && error.reason === ConnectionErrorReason.LeaveRequest) {\n throw error;\n }\n throw new SignalReconnectError(message);\n }\n this.emit(EngineEvent.SignalResumed);\n if (res) {\n const rtcConfig = this.makeRTCConfiguration(res);\n this.pcManager.updateConfiguration(rtcConfig);\n } else {\n this.log.warn('Did not receive reconnect response', this.logContext);\n }\n if (this.shouldFailNext) {\n this.shouldFailNext = false;\n throw new Error('simulated failure');\n }\n yield this.pcManager.triggerIceRestart();\n yield this.waitForPCReconnected();\n // re-check signal connection state before setting engine as resumed\n if (this.client.currentState !== SignalConnectionState.CONNECTED) {\n throw new SignalReconnectError('Signal connection got severed during reconnect');\n }\n this.client.setReconnected();\n // recreate publish datachannel if it's id is null\n // (for safari https://bugs.webkit.org/show_bug.cgi?id=184688)\n if (((_a = this.reliableDC) === null || _a === void 0 ? void 0 : _a.readyState) === 'open' && this.reliableDC.id === null) {\n this.createDataChannels();\n }\n // resume success\n this.emit(EngineEvent.Resumed);\n });\n }\n waitForPCInitialConnection(timeout, abortController) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('PC manager is closed');\n }\n yield this.pcManager.ensurePCTransportConnection(abortController, timeout);\n });\n }\n waitForPCReconnected() {\n return __awaiter(this, void 0, void 0, function* () {\n this.pcState = PCState.Reconnecting;\n this.log.debug('waiting for peer connection to reconnect', this.logContext);\n try {\n yield sleep(minReconnectWait); // FIXME setTimeout again not ideal for a connection critical path\n if (!this.pcManager) {\n throw new UnexpectedConnectionState('PC manager is closed');\n }\n yield this.pcManager.ensurePCTransportConnection(undefined, this.peerConnectionTimeout);\n this.pcState = PCState.Connected;\n } catch (e) {\n // TODO do we need a `failed` state here for the PC?\n this.pcState = PCState.Disconnected;\n throw new ConnectionError(\"could not establish PC connection, \".concat(e.message), ConnectionErrorReason.InternalError);\n }\n });\n }\n /* @internal */\n sendDataPacket(packet, kind) {\n return __awaiter(this, void 0, void 0, function* () {\n const msg = packet.toBinary();\n // make sure we do have a data connection\n yield this.ensurePublisherConnected(kind);\n const dc = this.dataChannelForKind(kind);\n if (dc) {\n dc.send(msg);\n }\n this.updateAndEmitDCBufferStatus(kind);\n });\n }\n /**\n * @internal\n */\n ensureDataTransportConnected(kind_1) {\n return __awaiter(this, arguments, void 0, function (kind) {\n var _this2 = this;\n let subscriber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.subscriberPrimary;\n return function* () {\n var _a;\n if (!_this2.pcManager) {\n throw new UnexpectedConnectionState('PC manager is closed');\n }\n const transport = subscriber ? _this2.pcManager.subscriber : _this2.pcManager.publisher;\n const transportName = subscriber ? 'Subscriber' : 'Publisher';\n if (!transport) {\n throw new ConnectionError(\"\".concat(transportName, \" connection not set\"), ConnectionErrorReason.InternalError);\n }\n let needNegotiation = false;\n if (!subscriber && !_this2.dataChannelForKind(kind, subscriber)) {\n _this2.createDataChannels();\n needNegotiation = true;\n }\n if (!needNegotiation && !subscriber && !_this2.pcManager.publisher.isICEConnected && _this2.pcManager.publisher.getICEConnectionState() !== 'checking') {\n needNegotiation = true;\n }\n if (needNegotiation) {\n // start negotiation\n _this2.negotiate();\n }\n const targetChannel = _this2.dataChannelForKind(kind, subscriber);\n if ((targetChannel === null || targetChannel === void 0 ? void 0 : targetChannel.readyState) === 'open') {\n return;\n }\n // wait until ICE connected\n const endTime = new Date().getTime() + _this2.peerConnectionTimeout;\n while (new Date().getTime() < endTime) {\n if (transport.isICEConnected && ((_a = _this2.dataChannelForKind(kind, subscriber)) === null || _a === void 0 ? void 0 : _a.readyState) === 'open') {\n return;\n }\n yield sleep(50);\n }\n throw new ConnectionError(\"could not establish \".concat(transportName, \" connection, state: \").concat(transport.getICEConnectionState()), ConnectionErrorReason.InternalError);\n }();\n });\n }\n ensurePublisherConnected(kind) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.publisherConnectionPromise) {\n this.publisherConnectionPromise = this.ensureDataTransportConnected(kind, false);\n }\n yield this.publisherConnectionPromise;\n });\n }\n /* @internal */\n verifyTransport() {\n if (!this.pcManager) {\n return false;\n }\n // primary connection\n if (this.pcManager.currentState !== PCTransportState.CONNECTED) {\n return false;\n }\n // ensure signal is connected\n if (!this.client.ws || this.client.ws.readyState === WebSocket.CLOSED) {\n return false;\n }\n return true;\n }\n /** @internal */\n negotiate() {\n return __awaiter(this, void 0, void 0, function* () {\n // observe signal state\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n if (!this.pcManager) {\n reject(new NegotiationError('PC manager is closed'));\n return;\n }\n this.pcManager.requirePublisher();\n // don't negotiate without any transceivers or data channel, it will generate sdp without ice frag then negotiate failed\n if (this.pcManager.publisher.getTransceivers().length == 0 && !this.lossyDC && !this.reliableDC) {\n this.createDataChannels();\n }\n const abortController = new AbortController();\n const handleClosed = () => {\n abortController.abort();\n this.log.debug('engine disconnected while negotiation was ongoing', this.logContext);\n resolve();\n return;\n };\n if (this.isClosed) {\n reject('cannot negotiate on closed engine');\n }\n this.on(EngineEvent.Closing, handleClosed);\n this.pcManager.publisher.once(PCEvents.RTPVideoPayloadTypes, rtpTypes => {\n const rtpMap = new Map();\n rtpTypes.forEach(rtp => {\n const codec = rtp.codec.toLowerCase();\n if (isVideoCodec(codec)) {\n rtpMap.set(rtp.payload, codec);\n }\n });\n this.emit(EngineEvent.RTPVideoMapUpdate, rtpMap);\n });\n try {\n yield this.pcManager.negotiate(abortController);\n resolve();\n } catch (e) {\n if (e instanceof NegotiationError) {\n this.fullReconnectOnNext = true;\n }\n this.handleDisconnect('negotiation', ReconnectReason.RR_UNKNOWN);\n reject(e);\n } finally {\n this.off(EngineEvent.Closing, handleClosed);\n }\n }));\n });\n }\n dataChannelForKind(kind, sub) {\n if (!sub) {\n if (kind === DataPacket_Kind.LOSSY) {\n return this.lossyDC;\n }\n if (kind === DataPacket_Kind.RELIABLE) {\n return this.reliableDC;\n }\n } else {\n if (kind === DataPacket_Kind.LOSSY) {\n return this.lossyDCSub;\n }\n if (kind === DataPacket_Kind.RELIABLE) {\n return this.reliableDCSub;\n }\n }\n }\n /** @internal */\n sendSyncState(remoteTracks, localTracks) {\n var _a, _b;\n if (!this.pcManager) {\n this.log.warn('sync state cannot be sent without peer connection setup', this.logContext);\n return;\n }\n const previousAnswer = this.pcManager.subscriber.getLocalDescription();\n const previousOffer = this.pcManager.subscriber.getRemoteDescription();\n /* 1. autosubscribe on, so subscribed tracks = all tracks - unsub tracks,\n in this case, we send unsub tracks, so server add all tracks to this\n subscribe pc and unsub special tracks from it.\n 2. autosubscribe off, we send subscribed tracks.\n */\n const autoSubscribe = (_b = (_a = this.signalOpts) === null || _a === void 0 ? void 0 : _a.autoSubscribe) !== null && _b !== void 0 ? _b : true;\n const trackSids = new Array();\n const trackSidsDisabled = new Array();\n remoteTracks.forEach(track => {\n if (track.isDesired !== autoSubscribe) {\n trackSids.push(track.trackSid);\n }\n if (!track.isEnabled) {\n trackSidsDisabled.push(track.trackSid);\n }\n });\n this.client.sendSyncState(new SyncState({\n answer: previousAnswer ? toProtoSessionDescription({\n sdp: previousAnswer.sdp,\n type: previousAnswer.type\n }) : undefined,\n offer: previousOffer ? toProtoSessionDescription({\n sdp: previousOffer.sdp,\n type: previousOffer.type\n }) : undefined,\n subscription: new UpdateSubscription({\n trackSids,\n subscribe: !autoSubscribe,\n participantTracks: []\n }),\n publishTracks: getTrackPublicationInfo(localTracks),\n dataChannels: this.dataChannelsInfo(),\n trackSidsDisabled\n }));\n }\n /* @internal */\n failNext() {\n // debugging method to fail the next reconnect/resume attempt\n this.shouldFailNext = true;\n }\n dataChannelsInfo() {\n const infos = [];\n const getInfo = (dc, target) => {\n if ((dc === null || dc === void 0 ? void 0 : dc.id) !== undefined && dc.id !== null) {\n infos.push(new DataChannelInfo({\n label: dc.label,\n id: dc.id,\n target\n }));\n }\n };\n getInfo(this.dataChannelForKind(DataPacket_Kind.LOSSY), SignalTarget.PUBLISHER);\n getInfo(this.dataChannelForKind(DataPacket_Kind.RELIABLE), SignalTarget.PUBLISHER);\n getInfo(this.dataChannelForKind(DataPacket_Kind.LOSSY, true), SignalTarget.SUBSCRIBER);\n getInfo(this.dataChannelForKind(DataPacket_Kind.RELIABLE, true), SignalTarget.SUBSCRIBER);\n return infos;\n }\n clearReconnectTimeout() {\n if (this.reconnectTimeout) {\n CriticalTimers.clearTimeout(this.reconnectTimeout);\n }\n }\n clearPendingReconnect() {\n this.clearReconnectTimeout();\n this.reconnectAttempts = 0;\n }\n registerOnLineListener() {\n if (isWeb()) {\n window.addEventListener('online', this.handleBrowserOnLine);\n }\n }\n deregisterOnLineListener() {\n if (isWeb()) {\n window.removeEventListener('online', this.handleBrowserOnLine);\n }\n }\n}\nclass SignalReconnectError extends Error {}\nfunction supportOptionalDatachannel(protocol) {\n return protocol !== undefined && protocol > 13;\n}\nfunction applyUserDataCompat(newObj, oldObj) {\n const participantIdentity = newObj.participantIdentity ? newObj.participantIdentity : oldObj.participantIdentity;\n newObj.participantIdentity = participantIdentity;\n oldObj.participantIdentity = participantIdentity;\n const destinationIdentities = newObj.destinationIdentities.length !== 0 ? newObj.destinationIdentities : oldObj.destinationIdentities;\n newObj.destinationIdentities = destinationIdentities;\n oldObj.destinationIdentities = destinationIdentities;\n}\n\nclass RegionUrlProvider {\n constructor(url, token) {\n this.lastUpdateAt = 0;\n this.settingsCacheTime = 3000;\n this.attemptedRegions = [];\n this.serverUrl = new URL(url);\n this.token = token;\n }\n updateToken(token) {\n this.token = token;\n }\n isCloud() {\n return isCloud(this.serverUrl);\n }\n getServerUrl() {\n return this.serverUrl;\n }\n getNextBestRegionUrl(abortSignal) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.isCloud()) {\n throw Error('region availability is only supported for LiveKit Cloud domains');\n }\n if (!this.regionSettings || Date.now() - this.lastUpdateAt > this.settingsCacheTime) {\n this.regionSettings = yield this.fetchRegionSettings(abortSignal);\n }\n const regionsLeft = this.regionSettings.regions.filter(region => !this.attemptedRegions.find(attempted => attempted.url === region.url));\n if (regionsLeft.length > 0) {\n const nextRegion = regionsLeft[0];\n this.attemptedRegions.push(nextRegion);\n livekitLogger.debug(\"next region: \".concat(nextRegion.region));\n return nextRegion.url;\n } else {\n return null;\n }\n });\n }\n resetAttempts() {\n this.attemptedRegions = [];\n }\n /* @internal */\n fetchRegionSettings(signal) {\n return __awaiter(this, void 0, void 0, function* () {\n const regionSettingsResponse = yield fetch(\"\".concat(getCloudConfigUrl(this.serverUrl), \"/regions\"), {\n headers: {\n authorization: \"Bearer \".concat(this.token)\n },\n signal\n });\n if (regionSettingsResponse.ok) {\n const regionSettings = yield regionSettingsResponse.json();\n this.lastUpdateAt = Date.now();\n return regionSettings;\n } else {\n throw new ConnectionError(\"Could not fetch region settings: \".concat(regionSettingsResponse.statusText), regionSettingsResponse.status === 401 ? ConnectionErrorReason.NotAllowed : ConnectionErrorReason.InternalError, regionSettingsResponse.status);\n }\n });\n }\n setServerReportedRegions(regions) {\n this.regionSettings = regions;\n this.lastUpdateAt = Date.now();\n }\n}\nfunction getCloudConfigUrl(serverUrl) {\n return \"\".concat(serverUrl.protocol.replace('ws', 'http'), \"//\").concat(serverUrl.host, \"/settings\");\n}\n\n// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Specialized error handling for RPC methods.\n *\n * Instances of this type, when thrown in a method handler, will have their `message`\n * serialized and sent across the wire. The sender will receive an equivalent error on the other side.\n *\n * Built-in types are included but developers may use any string, with a max length of 256 bytes.\n */\nclass RpcError extends Error {\n /**\n * Creates an error object with the given code and message, plus an optional data payload.\n *\n * If thrown in an RPC method handler, the error will be sent back to the caller.\n *\n * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).\n */\n constructor(code, message, data) {\n super(message);\n this.code = code;\n this.message = truncateBytes(message, RpcError.MAX_MESSAGE_BYTES);\n this.data = data ? truncateBytes(data, RpcError.MAX_DATA_BYTES) : undefined;\n }\n /**\n * @internal\n */\n static fromProto(proto) {\n return new RpcError(proto.code, proto.message, proto.data);\n }\n /**\n * @internal\n */\n toProto() {\n return new RpcError$1({\n code: this.code,\n message: this.message,\n data: this.data\n });\n }\n /**\n * Creates an error object from the code, with an auto-populated message.\n *\n * @internal\n */\n static builtIn(key, data) {\n return new RpcError(RpcError.ErrorCode[key], RpcError.ErrorMessage[key], data);\n }\n}\nRpcError.MAX_MESSAGE_BYTES = 256;\nRpcError.MAX_DATA_BYTES = 15360; // 15 KB\nRpcError.ErrorCode = {\n APPLICATION_ERROR: 1500,\n CONNECTION_TIMEOUT: 1501,\n RESPONSE_TIMEOUT: 1502,\n RECIPIENT_DISCONNECTED: 1503,\n RESPONSE_PAYLOAD_TOO_LARGE: 1504,\n SEND_FAILED: 1505,\n UNSUPPORTED_METHOD: 1400,\n RECIPIENT_NOT_FOUND: 1401,\n REQUEST_PAYLOAD_TOO_LARGE: 1402,\n UNSUPPORTED_SERVER: 1403,\n UNSUPPORTED_VERSION: 1404\n};\n/**\n * @internal\n */\nRpcError.ErrorMessage = {\n APPLICATION_ERROR: 'Application error in method handler',\n CONNECTION_TIMEOUT: 'Connection timeout',\n RESPONSE_TIMEOUT: 'Response timeout',\n RECIPIENT_DISCONNECTED: 'Recipient disconnected',\n RESPONSE_PAYLOAD_TOO_LARGE: 'Response payload too large',\n SEND_FAILED: 'Failed to send',\n UNSUPPORTED_METHOD: 'Method not supported at destination',\n RECIPIENT_NOT_FOUND: 'Recipient not found',\n REQUEST_PAYLOAD_TOO_LARGE: 'Request payload too large',\n UNSUPPORTED_SERVER: 'RPC not supported by server',\n UNSUPPORTED_VERSION: 'Unsupported RPC version'\n};\n/*\n * Maximum payload size for RPC requests and responses. If a payload exceeds this size,\n * the RPC call will fail with a REQUEST_PAYLOAD_TOO_LARGE(1402) or RESPONSE_PAYLOAD_TOO_LARGE(1504) error.\n */\nconst MAX_PAYLOAD_BYTES = 15360; // 15 KB\n/**\n * @internal\n */\nfunction byteLength(str) {\n const encoder = new TextEncoder();\n return encoder.encode(str).length;\n}\n/**\n * @internal\n */\nfunction truncateBytes(str, maxBytes) {\n if (byteLength(str) <= maxBytes) {\n return str;\n }\n let low = 0;\n let high = str.length;\n const encoder = new TextEncoder();\n while (low < high) {\n const mid = Math.floor((low + high + 1) / 2);\n if (encoder.encode(str.slice(0, mid)).length <= maxBytes) {\n low = mid;\n } else {\n high = mid - 1;\n }\n }\n return str.slice(0, low);\n}\n\nclass RemoteTrack extends Track {\n constructor(mediaTrack, sid, kind, receiver, loggerOptions) {\n super(mediaTrack, kind, loggerOptions);\n this.sid = sid;\n this.receiver = receiver;\n }\n /** @internal */\n setMuted(muted) {\n if (this.isMuted !== muted) {\n this.isMuted = muted;\n this._mediaStreamTrack.enabled = !muted;\n this.emit(muted ? TrackEvent.Muted : TrackEvent.Unmuted, this);\n }\n }\n /** @internal */\n setMediaStream(stream) {\n // this is needed to determine when the track is finished\n this.mediaStream = stream;\n const onRemoveTrack = event => {\n if (event.track === this._mediaStreamTrack) {\n stream.removeEventListener('removetrack', onRemoveTrack);\n if (this.receiver && 'playoutDelayHint' in this.receiver) {\n this.receiver.playoutDelayHint = undefined;\n }\n this.receiver = undefined;\n this._currentBitrate = 0;\n this.emit(TrackEvent.Ended, this);\n }\n };\n stream.addEventListener('removetrack', onRemoveTrack);\n }\n start() {\n this.startMonitor();\n // use `enabled` of track to enable re-use of transceiver\n super.enable();\n }\n stop() {\n this.stopMonitor();\n // use `enabled` of track to enable re-use of transceiver\n super.disable();\n }\n /**\n * Gets the RTCStatsReport for the RemoteTrack's underlying RTCRtpReceiver\n * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport\n *\n * @returns Promise<RTCStatsReport> | undefined\n */\n getRTCStatsReport() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!((_a = this.receiver) === null || _a === void 0 ? void 0 : _a.getStats)) {\n return;\n }\n const statsReport = yield this.receiver.getStats();\n return statsReport;\n });\n }\n /**\n * Allows to set a playout delay (in seconds) for this track.\n * A higher value allows for more buffering of the track in the browser\n * and will result in a delay of media being played back of `delayInSeconds`\n */\n setPlayoutDelay(delayInSeconds) {\n if (this.receiver) {\n if ('playoutDelayHint' in this.receiver) {\n this.receiver.playoutDelayHint = delayInSeconds;\n } else {\n this.log.warn('Playout delay not supported in this browser');\n }\n } else {\n this.log.warn('Cannot set playout delay, track already ended');\n }\n }\n /**\n * Returns the current playout delay (in seconds) of this track.\n */\n getPlayoutDelay() {\n if (this.receiver) {\n if ('playoutDelayHint' in this.receiver) {\n return this.receiver.playoutDelayHint;\n } else {\n this.log.warn('Playout delay not supported in this browser');\n }\n } else {\n this.log.warn('Cannot get playout delay, track already ended');\n }\n return 0;\n }\n /* @internal */\n startMonitor() {\n if (!this.monitorInterval) {\n this.monitorInterval = setInterval(() => this.monitorReceiver(), monitorFrequency);\n }\n if (supportsSynchronizationSources()) {\n this.registerTimeSyncUpdate();\n }\n }\n registerTimeSyncUpdate() {\n const loop = () => {\n var _a;\n this.timeSyncHandle = requestAnimationFrame(() => loop());\n const sources = (_a = this.receiver) === null || _a === void 0 ? void 0 : _a.getSynchronizationSources()[0];\n if (sources) {\n const {\n timestamp,\n rtpTimestamp\n } = sources;\n if (rtpTimestamp && this.rtpTimestamp !== rtpTimestamp) {\n this.emit(TrackEvent.TimeSyncUpdate, {\n timestamp,\n rtpTimestamp\n });\n this.rtpTimestamp = rtpTimestamp;\n }\n }\n };\n loop();\n }\n}\n\nclass RemoteAudioTrack extends RemoteTrack {\n constructor(mediaTrack, sid, receiver, audioContext, audioOutput, loggerOptions) {\n super(mediaTrack, sid, Track.Kind.Audio, receiver, loggerOptions);\n this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {\n if (!this.receiver) {\n this._currentBitrate = 0;\n return;\n }\n const stats = yield this.getReceiverStats();\n if (stats && this.prevStats && this.receiver) {\n this._currentBitrate = computeBitrate(stats, this.prevStats);\n }\n this.prevStats = stats;\n });\n this.audioContext = audioContext;\n this.webAudioPluginNodes = [];\n if (audioOutput) {\n this.sinkId = audioOutput.deviceId;\n }\n }\n /**\n * sets the volume for all attached audio elements\n */\n setVolume(volume) {\n var _a;\n for (const el of this.attachedElements) {\n if (this.audioContext) {\n (_a = this.gainNode) === null || _a === void 0 ? void 0 : _a.gain.setTargetAtTime(volume, 0, 0.1);\n } else {\n el.volume = volume;\n }\n }\n if (isReactNative()) {\n // @ts-ignore\n this._mediaStreamTrack._setVolume(volume);\n }\n this.elementVolume = volume;\n }\n /**\n * gets the volume of attached audio elements (loudest)\n */\n getVolume() {\n if (this.elementVolume) {\n return this.elementVolume;\n }\n if (isReactNative()) {\n // RN volume value defaults to 1.0 if hasn't been changed.\n return 1.0;\n }\n let highestVolume = 0;\n this.attachedElements.forEach(element => {\n if (element.volume > highestVolume) {\n highestVolume = element.volume;\n }\n });\n return highestVolume;\n }\n /**\n * calls setSinkId on all attached elements, if supported\n * @param deviceId audio output device\n */\n setSinkId(deviceId) {\n return __awaiter(this, void 0, void 0, function* () {\n this.sinkId = deviceId;\n yield Promise.all(this.attachedElements.map(elm => {\n if (!supportsSetSinkId(elm)) {\n return;\n }\n /* @ts-ignore */\n return elm.setSinkId(deviceId);\n }));\n });\n }\n attach(element) {\n const needsNewWebAudioConnection = this.attachedElements.length === 0;\n if (!element) {\n element = super.attach();\n } else {\n super.attach(element);\n }\n if (this.sinkId && supportsSetSinkId(element)) {\n /* @ts-ignore */\n element.setSinkId(this.sinkId);\n }\n if (this.audioContext && needsNewWebAudioConnection) {\n this.log.debug('using audio context mapping', this.logContext);\n this.connectWebAudio(this.audioContext, element);\n element.volume = 0;\n element.muted = true;\n }\n if (this.elementVolume) {\n // make sure volume setting is being applied to the newly attached element\n this.setVolume(this.elementVolume);\n }\n return element;\n }\n detach(element) {\n let detached;\n if (!element) {\n detached = super.detach();\n this.disconnectWebAudio();\n } else {\n detached = super.detach(element);\n // if there are still any attached elements after detaching, connect webaudio to the first element that's left\n // disconnect webaudio otherwise\n if (this.audioContext) {\n if (this.attachedElements.length > 0) {\n this.connectWebAudio(this.audioContext, this.attachedElements[0]);\n } else {\n this.disconnectWebAudio();\n }\n }\n }\n return detached;\n }\n /**\n * @internal\n * @experimental\n */\n setAudioContext(audioContext) {\n this.audioContext = audioContext;\n if (audioContext && this.attachedElements.length > 0) {\n this.connectWebAudio(audioContext, this.attachedElements[0]);\n } else if (!audioContext) {\n this.disconnectWebAudio();\n }\n }\n /**\n * @internal\n * @experimental\n * @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.\n */\n setWebAudioPlugins(nodes) {\n this.webAudioPluginNodes = nodes;\n if (this.attachedElements.length > 0 && this.audioContext) {\n this.connectWebAudio(this.audioContext, this.attachedElements[0]);\n }\n }\n connectWebAudio(context, element) {\n this.disconnectWebAudio();\n // @ts-ignore attached elements always have a srcObject set\n this.sourceNode = context.createMediaStreamSource(element.srcObject);\n let lastNode = this.sourceNode;\n this.webAudioPluginNodes.forEach(node => {\n lastNode.connect(node);\n lastNode = node;\n });\n this.gainNode = context.createGain();\n lastNode.connect(this.gainNode);\n this.gainNode.connect(context.destination);\n if (this.elementVolume) {\n this.gainNode.gain.setTargetAtTime(this.elementVolume, 0, 0.1);\n }\n // try to resume the context if it isn't running already\n if (context.state !== 'running') {\n context.resume().then(() => {\n if (context.state !== 'running') {\n this.emit(TrackEvent.AudioPlaybackFailed, new Error(\"Audio Context couldn't be started automatically\"));\n }\n }).catch(e => {\n this.emit(TrackEvent.AudioPlaybackFailed, e);\n });\n }\n }\n disconnectWebAudio() {\n var _a, _b;\n (_a = this.gainNode) === null || _a === void 0 ? void 0 : _a.disconnect();\n (_b = this.sourceNode) === null || _b === void 0 ? void 0 : _b.disconnect();\n this.gainNode = undefined;\n this.sourceNode = undefined;\n }\n getReceiverStats() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.receiver || !this.receiver.getStats) {\n return;\n }\n const stats = yield this.receiver.getStats();\n let receiverStats;\n stats.forEach(v => {\n if (v.type === 'inbound-rtp') {\n receiverStats = {\n type: 'audio',\n timestamp: v.timestamp,\n jitter: v.jitter,\n bytesReceived: v.bytesReceived,\n concealedSamples: v.concealedSamples,\n concealmentEvents: v.concealmentEvents,\n silentConcealedSamples: v.silentConcealedSamples,\n silentConcealmentEvents: v.silentConcealmentEvents,\n totalAudioEnergy: v.totalAudioEnergy,\n totalSamplesDuration: v.totalSamplesDuration\n };\n }\n });\n return receiverStats;\n });\n }\n}\n\nconst REACTION_DELAY = 100;\nclass RemoteVideoTrack extends RemoteTrack {\n constructor(mediaTrack, sid, receiver, adaptiveStreamSettings, loggerOptions) {\n super(mediaTrack, sid, Track.Kind.Video, receiver, loggerOptions);\n this.elementInfos = [];\n this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {\n if (!this.receiver) {\n this._currentBitrate = 0;\n return;\n }\n const stats = yield this.getReceiverStats();\n if (stats && this.prevStats && this.receiver) {\n this._currentBitrate = computeBitrate(stats, this.prevStats);\n }\n this.prevStats = stats;\n });\n this.debouncedHandleResize = r(() => {\n this.updateDimensions();\n }, REACTION_DELAY);\n this.adaptiveStreamSettings = adaptiveStreamSettings;\n }\n get isAdaptiveStream() {\n return this.adaptiveStreamSettings !== undefined;\n }\n /**\n * Note: When using adaptiveStream, you need to use remoteVideoTrack.attach() to add the track to a HTMLVideoElement, otherwise your video tracks might never start\n */\n get mediaStreamTrack() {\n return this._mediaStreamTrack;\n }\n /** @internal */\n setMuted(muted) {\n super.setMuted(muted);\n this.attachedElements.forEach(element => {\n // detach or attach\n if (muted) {\n detachTrack(this._mediaStreamTrack, element);\n } else {\n attachToElement(this._mediaStreamTrack, element);\n }\n });\n }\n attach(element) {\n if (!element) {\n element = super.attach();\n } else {\n super.attach(element);\n }\n // It's possible attach is called multiple times on an element. When that's\n // the case, we'd want to avoid adding duplicate elementInfos\n if (this.adaptiveStreamSettings && this.elementInfos.find(info => info.element === element) === undefined) {\n const elementInfo = new HTMLElementInfo(element);\n this.observeElementInfo(elementInfo);\n }\n return element;\n }\n /**\n * Observe an ElementInfo for changes when adaptive streaming.\n * @param elementInfo\n * @internal\n */\n observeElementInfo(elementInfo) {\n if (this.adaptiveStreamSettings && this.elementInfos.find(info => info === elementInfo) === undefined) {\n elementInfo.handleResize = () => {\n this.debouncedHandleResize();\n };\n elementInfo.handleVisibilityChanged = () => {\n this.updateVisibility();\n };\n this.elementInfos.push(elementInfo);\n elementInfo.observe();\n // trigger the first resize update cycle\n // if the tab is backgrounded, the initial resize event does not fire until\n // the tab comes into focus for the first time.\n this.debouncedHandleResize();\n this.updateVisibility();\n } else {\n this.log.warn('visibility resize observer not triggered', this.logContext);\n }\n }\n /**\n * Stop observing an ElementInfo for changes.\n * @param elementInfo\n * @internal\n */\n stopObservingElementInfo(elementInfo) {\n if (!this.isAdaptiveStream) {\n this.log.warn('stopObservingElementInfo ignored', this.logContext);\n return;\n }\n const stopElementInfos = this.elementInfos.filter(info => info === elementInfo);\n for (const info of stopElementInfos) {\n info.stopObserving();\n }\n this.elementInfos = this.elementInfos.filter(info => info !== elementInfo);\n this.updateVisibility();\n this.debouncedHandleResize();\n }\n detach(element) {\n let detachedElements = [];\n if (element) {\n this.stopObservingElement(element);\n return super.detach(element);\n }\n detachedElements = super.detach();\n for (const e of detachedElements) {\n this.stopObservingElement(e);\n }\n return detachedElements;\n }\n /** @internal */\n getDecoderImplementation() {\n var _a;\n return (_a = this.prevStats) === null || _a === void 0 ? void 0 : _a.decoderImplementation;\n }\n getReceiverStats() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.receiver || !this.receiver.getStats) {\n return;\n }\n const stats = yield this.receiver.getStats();\n let receiverStats;\n let codecID = '';\n let codecs = new Map();\n stats.forEach(v => {\n if (v.type === 'inbound-rtp') {\n codecID = v.codecId;\n receiverStats = {\n type: 'video',\n framesDecoded: v.framesDecoded,\n framesDropped: v.framesDropped,\n framesReceived: v.framesReceived,\n packetsReceived: v.packetsReceived,\n packetsLost: v.packetsLost,\n frameWidth: v.frameWidth,\n frameHeight: v.frameHeight,\n pliCount: v.pliCount,\n firCount: v.firCount,\n nackCount: v.nackCount,\n jitter: v.jitter,\n timestamp: v.timestamp,\n bytesReceived: v.bytesReceived,\n decoderImplementation: v.decoderImplementation\n };\n } else if (v.type === 'codec') {\n codecs.set(v.id, v);\n }\n });\n if (receiverStats && codecID !== '' && codecs.get(codecID)) {\n receiverStats.mimeType = codecs.get(codecID).mimeType;\n }\n return receiverStats;\n });\n }\n stopObservingElement(element) {\n const stopElementInfos = this.elementInfos.filter(info => info.element === element);\n for (const info of stopElementInfos) {\n this.stopObservingElementInfo(info);\n }\n }\n handleAppVisibilityChanged() {\n const _super = Object.create(null, {\n handleAppVisibilityChanged: {\n get: () => super.handleAppVisibilityChanged\n }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.handleAppVisibilityChanged.call(this);\n if (!this.isAdaptiveStream) return;\n this.updateVisibility();\n });\n }\n updateVisibility() {\n var _a, _b;\n const lastVisibilityChange = this.elementInfos.reduce((prev, info) => Math.max(prev, info.visibilityChangedAt || 0), 0);\n const backgroundPause = ((_b = (_a = this.adaptiveStreamSettings) === null || _a === void 0 ? void 0 : _a.pauseVideoInBackground) !== null && _b !== void 0 ? _b : true // default to true\n ) ? this.isInBackground : false;\n const isPiPMode = this.elementInfos.some(info => info.pictureInPicture);\n const isVisible = this.elementInfos.some(info => info.visible) && !backgroundPause || isPiPMode;\n if (this.lastVisible === isVisible) {\n return;\n }\n if (!isVisible && Date.now() - lastVisibilityChange < REACTION_DELAY) {\n // delay hidden events\n CriticalTimers.setTimeout(() => {\n this.updateVisibility();\n }, REACTION_DELAY);\n return;\n }\n this.lastVisible = isVisible;\n this.emit(TrackEvent.VisibilityChanged, isVisible, this);\n }\n updateDimensions() {\n var _a, _b;\n let maxWidth = 0;\n let maxHeight = 0;\n const pixelDensity = this.getPixelDensity();\n for (const info of this.elementInfos) {\n const currentElementWidth = info.width() * pixelDensity;\n const currentElementHeight = info.height() * pixelDensity;\n if (currentElementWidth + currentElementHeight > maxWidth + maxHeight) {\n maxWidth = currentElementWidth;\n maxHeight = currentElementHeight;\n }\n }\n if (((_a = this.lastDimensions) === null || _a === void 0 ? void 0 : _a.width) === maxWidth && ((_b = this.lastDimensions) === null || _b === void 0 ? void 0 : _b.height) === maxHeight) {\n return;\n }\n this.lastDimensions = {\n width: maxWidth,\n height: maxHeight\n };\n this.emit(TrackEvent.VideoDimensionsChanged, this.lastDimensions, this);\n }\n getPixelDensity() {\n var _a;\n const pixelDensity = (_a = this.adaptiveStreamSettings) === null || _a === void 0 ? void 0 : _a.pixelDensity;\n if (pixelDensity === 'screen') {\n return getDevicePixelRatio();\n } else if (!pixelDensity) {\n // when unset, we'll pick a sane default here.\n // for higher pixel density devices (mobile phones, etc), we'll use 2\n // otherwise it defaults to 1\n const devicePixelRatio = getDevicePixelRatio();\n if (devicePixelRatio > 2) {\n return 2;\n } else {\n return 1;\n }\n }\n return pixelDensity;\n }\n}\nclass HTMLElementInfo {\n get visible() {\n return this.isPiP || this.isIntersecting;\n }\n get pictureInPicture() {\n return this.isPiP;\n }\n constructor(element, visible) {\n this.onVisibilityChanged = entry => {\n var _a;\n const {\n target,\n isIntersecting\n } = entry;\n if (target === this.element) {\n this.isIntersecting = isIntersecting;\n this.visibilityChangedAt = Date.now();\n (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n };\n this.onEnterPiP = () => {\n var _a;\n this.isPiP = true;\n (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);\n };\n this.onLeavePiP = () => {\n var _a;\n this.isPiP = false;\n (_a = this.handleVisibilityChanged) === null || _a === void 0 ? void 0 : _a.call(this);\n };\n this.element = element;\n this.isIntersecting = visible !== null && visible !== void 0 ? visible : isElementInViewport(element);\n this.isPiP = isWeb() && document.pictureInPictureElement === element;\n this.visibilityChangedAt = 0;\n }\n width() {\n return this.element.clientWidth;\n }\n height() {\n return this.element.clientHeight;\n }\n observe() {\n // make sure we update the current visible state once we start to observe\n this.isIntersecting = isElementInViewport(this.element);\n this.isPiP = document.pictureInPictureElement === this.element;\n this.element.handleResize = () => {\n var _a;\n (_a = this.handleResize) === null || _a === void 0 ? void 0 : _a.call(this);\n };\n this.element.handleVisibilityChanged = this.onVisibilityChanged;\n getIntersectionObserver().observe(this.element);\n getResizeObserver().observe(this.element);\n this.element.addEventListener('enterpictureinpicture', this.onEnterPiP);\n this.element.addEventListener('leavepictureinpicture', this.onLeavePiP);\n }\n stopObserving() {\n var _a, _b;\n (_a = getIntersectionObserver()) === null || _a === void 0 ? void 0 : _a.unobserve(this.element);\n (_b = getResizeObserver()) === null || _b === void 0 ? void 0 : _b.unobserve(this.element);\n this.element.removeEventListener('enterpictureinpicture', this.onEnterPiP);\n this.element.removeEventListener('leavepictureinpicture', this.onLeavePiP);\n }\n}\n// does not account for occlusion by other elements\nfunction isElementInViewport(el) {\n let top = el.offsetTop;\n let left = el.offsetLeft;\n const width = el.offsetWidth;\n const height = el.offsetHeight;\n const {\n hidden\n } = el;\n const {\n opacity,\n display\n } = getComputedStyle(el);\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n return top < window.pageYOffset + window.innerHeight && left < window.pageXOffset + window.innerWidth && top + height > window.pageYOffset && left + width > window.pageXOffset && !hidden && (opacity !== '' ? parseFloat(opacity) > 0 : true) && display !== 'none';\n}\n\nclass TrackPublication extends eventsExports.EventEmitter {\n constructor(kind, id, name, loggerOptions) {\n var _a;\n super();\n this.metadataMuted = false;\n this.encryption = Encryption_Type.NONE;\n this.log = livekitLogger;\n this.handleMuted = () => {\n this.emit(TrackEvent.Muted);\n };\n this.handleUnmuted = () => {\n this.emit(TrackEvent.Unmuted);\n };\n this.log = getLogger((_a = loggerOptions === null || loggerOptions === void 0 ? void 0 : loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Publication);\n this.loggerContextCb = this.loggerContextCb;\n this.setMaxListeners(100);\n this.kind = kind;\n this.trackSid = id;\n this.trackName = name;\n this.source = Track.Source.Unknown;\n }\n /** @internal */\n setTrack(track) {\n if (this.track) {\n this.track.off(TrackEvent.Muted, this.handleMuted);\n this.track.off(TrackEvent.Unmuted, this.handleUnmuted);\n }\n this.track = track;\n if (track) {\n // forward events\n track.on(TrackEvent.Muted, this.handleMuted);\n track.on(TrackEvent.Unmuted, this.handleUnmuted);\n }\n }\n get logContext() {\n var _a;\n return Object.assign(Object.assign({}, (_a = this.loggerContextCb) === null || _a === void 0 ? void 0 : _a.call(this)), getLogContextFromTrack(this));\n }\n get isMuted() {\n return this.metadataMuted;\n }\n get isEnabled() {\n return true;\n }\n get isSubscribed() {\n return this.track !== undefined;\n }\n get isEncrypted() {\n return this.encryption !== Encryption_Type.NONE;\n }\n /**\n * an [AudioTrack] if this publication holds an audio track\n */\n get audioTrack() {\n if (this.track instanceof LocalAudioTrack || this.track instanceof RemoteAudioTrack) {\n return this.track;\n }\n }\n /**\n * an [VideoTrack] if this publication holds a video track\n */\n get videoTrack() {\n if (this.track instanceof LocalVideoTrack || this.track instanceof RemoteVideoTrack) {\n return this.track;\n }\n }\n /** @internal */\n updateInfo(info) {\n this.trackSid = info.sid;\n this.trackName = info.name;\n this.source = Track.sourceFromProto(info.source);\n this.mimeType = info.mimeType;\n if (this.kind === Track.Kind.Video && info.width > 0) {\n this.dimensions = {\n width: info.width,\n height: info.height\n };\n this.simulcasted = info.simulcast;\n }\n this.encryption = info.encryption;\n this.trackInfo = info;\n this.log.debug('update publication info', Object.assign(Object.assign({}, this.logContext), {\n info\n }));\n }\n}\n(function (TrackPublication) {\n (function (SubscriptionStatus) {\n SubscriptionStatus[\"Desired\"] = \"desired\";\n SubscriptionStatus[\"Subscribed\"] = \"subscribed\";\n SubscriptionStatus[\"Unsubscribed\"] = \"unsubscribed\";\n })(TrackPublication.SubscriptionStatus || (TrackPublication.SubscriptionStatus = {}));\n (function (PermissionStatus) {\n PermissionStatus[\"Allowed\"] = \"allowed\";\n PermissionStatus[\"NotAllowed\"] = \"not_allowed\";\n })(TrackPublication.PermissionStatus || (TrackPublication.PermissionStatus = {}));\n})(TrackPublication || (TrackPublication = {}));\n\nclass LocalTrackPublication extends TrackPublication {\n get isUpstreamPaused() {\n var _a;\n return (_a = this.track) === null || _a === void 0 ? void 0 : _a.isUpstreamPaused;\n }\n constructor(kind, ti, track, loggerOptions) {\n super(kind, ti.sid, ti.name, loggerOptions);\n this.track = undefined;\n this.handleTrackEnded = () => {\n this.emit(TrackEvent.Ended);\n };\n this.updateInfo(ti);\n this.setTrack(track);\n }\n setTrack(track) {\n if (this.track) {\n this.track.off(TrackEvent.Ended, this.handleTrackEnded);\n }\n super.setTrack(track);\n if (track) {\n track.on(TrackEvent.Ended, this.handleTrackEnded);\n }\n }\n get isMuted() {\n if (this.track) {\n return this.track.isMuted;\n }\n return super.isMuted;\n }\n get audioTrack() {\n return super.audioTrack;\n }\n get videoTrack() {\n return super.videoTrack;\n }\n /**\n * Mute the track associated with this publication\n */\n mute() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n return (_a = this.track) === null || _a === void 0 ? void 0 : _a.mute();\n });\n }\n /**\n * Unmute track associated with this publication\n */\n unmute() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n return (_a = this.track) === null || _a === void 0 ? void 0 : _a.unmute();\n });\n }\n /**\n * Pauses the media stream track associated with this publication from being sent to the server\n * and signals \"muted\" event to other participants\n * Useful if you want to pause the stream without pausing the local media stream track\n */\n pauseUpstream() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (_a = this.track) === null || _a === void 0 ? void 0 : _a.pauseUpstream();\n });\n }\n /**\n * Resumes sending the media stream track associated with this publication to the server after a call to [[pauseUpstream()]]\n * and signals \"unmuted\" event to other participants (unless the track is explicitly muted)\n */\n resumeUpstream() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (_a = this.track) === null || _a === void 0 ? void 0 : _a.resumeUpstream();\n });\n }\n getTrackFeatures() {\n var _a;\n if (this.track instanceof LocalAudioTrack) {\n const settings = this.track.getSourceTrackSettings();\n const features = new Set();\n if (settings.autoGainControl) {\n features.add(AudioTrackFeature.TF_AUTO_GAIN_CONTROL);\n }\n if (settings.echoCancellation) {\n features.add(AudioTrackFeature.TF_ECHO_CANCELLATION);\n }\n if (settings.noiseSuppression) {\n features.add(AudioTrackFeature.TF_NOISE_SUPPRESSION);\n }\n if (settings.channelCount && settings.channelCount > 1) {\n features.add(AudioTrackFeature.TF_STEREO);\n }\n if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.dtx)) {\n features.add(AudioTrackFeature.TF_NO_DTX);\n }\n if (this.track.enhancedNoiseCancellation) {\n features.add(AudioTrackFeature.TF_ENHANCED_NOISE_CANCELLATION);\n }\n return Array.from(features.values());\n } else return [];\n }\n}\n\n/** @internal */\nfunction extractProcessorsFromOptions(options) {\n let audioProcessor;\n let videoProcessor;\n if (typeof options.audio === 'object' && options.audio.processor) {\n audioProcessor = options.audio.processor;\n }\n if (typeof options.video === 'object' && options.video.processor) {\n videoProcessor = options.video.processor;\n }\n return {\n audioProcessor,\n videoProcessor\n };\n}\n/**\n * Creates a local video and audio track at the same time. When acquiring both\n * audio and video tracks together, it'll display a single permission prompt to\n * the user instead of two separate ones.\n * @param options\n */\nfunction createLocalTracks(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n // set default options to true\n options !== null && options !== void 0 ? options : options = {};\n (_a = options.audio) !== null && _a !== void 0 ? _a : options.audio = true;\n (_b = options.video) !== null && _b !== void 0 ? _b : options.video = true;\n const {\n audioProcessor,\n videoProcessor\n } = extractProcessorsFromOptions(options);\n const opts = mergeDefaultOptions(options, audioDefaults, videoDefaults);\n const constraints = constraintsForOptions(opts);\n // Keep a reference to the promise on DeviceManager and await it in getLocalDevices()\n // works around iOS Safari Bug https://bugs.webkit.org/show_bug.cgi?id=179363\n const mediaPromise = navigator.mediaDevices.getUserMedia(constraints);\n if (options.audio) {\n DeviceManager.userMediaPromiseMap.set('audioinput', mediaPromise);\n mediaPromise.catch(() => DeviceManager.userMediaPromiseMap.delete('audioinput'));\n }\n if (options.video) {\n DeviceManager.userMediaPromiseMap.set('videoinput', mediaPromise);\n mediaPromise.catch(() => DeviceManager.userMediaPromiseMap.delete('videoinput'));\n }\n const stream = yield mediaPromise;\n return Promise.all(stream.getTracks().map(mediaStreamTrack => __awaiter(this, void 0, void 0, function* () {\n const isAudio = mediaStreamTrack.kind === 'audio';\n isAudio ? opts.audio : opts.video;\n let trackConstraints;\n const conOrBool = isAudio ? constraints.audio : constraints.video;\n if (typeof conOrBool !== 'boolean') {\n trackConstraints = conOrBool;\n }\n // update the constraints with the device id the user gave permissions to in the permission prompt\n // otherwise each track restart (e.g. mute - unmute) will try to initialize the device again -> causing additional permission prompts\n if (trackConstraints) {\n trackConstraints.deviceId = mediaStreamTrack.getSettings().deviceId;\n } else {\n trackConstraints = {\n deviceId: mediaStreamTrack.getSettings().deviceId\n };\n }\n const track = mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);\n if (track.kind === Track.Kind.Video) {\n track.source = Track.Source.Camera;\n } else if (track.kind === Track.Kind.Audio) {\n track.source = Track.Source.Microphone;\n }\n track.mediaStream = stream;\n if (track instanceof LocalAudioTrack && audioProcessor) {\n yield track.setProcessor(audioProcessor);\n } else if (track instanceof LocalVideoTrack && videoProcessor) {\n yield track.setProcessor(videoProcessor);\n }\n return track;\n })));\n });\n}\n/**\n * Creates a [[LocalVideoTrack]] with getUserMedia()\n * @param options\n */\nfunction createLocalVideoTrack(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const tracks = yield createLocalTracks({\n audio: false,\n video: options\n });\n return tracks[0];\n });\n}\nfunction createLocalAudioTrack(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const tracks = yield createLocalTracks({\n audio: options,\n video: false\n });\n return tracks[0];\n });\n}\n/**\n * Creates a screen capture tracks with getDisplayMedia().\n * A LocalVideoTrack is always created and returned.\n * If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.\n */\nfunction createLocalScreenTracks(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options === undefined) {\n options = {};\n }\n if (options.resolution === undefined && !isSafari17()) {\n options.resolution = ScreenSharePresets.h1080fps30.resolution;\n }\n if (navigator.mediaDevices.getDisplayMedia === undefined) {\n throw new DeviceUnsupportedError('getDisplayMedia not supported');\n }\n const constraints = screenCaptureToDisplayMediaStreamOptions(options);\n const stream = yield navigator.mediaDevices.getDisplayMedia(constraints);\n const tracks = stream.getVideoTracks();\n if (tracks.length === 0) {\n throw new TrackInvalidError('no video track found');\n }\n const screenVideo = new LocalVideoTrack(tracks[0], undefined, false);\n screenVideo.source = Track.Source.ScreenShare;\n const localTracks = [screenVideo];\n if (stream.getAudioTracks().length > 0) {\n const screenAudio = new LocalAudioTrack(stream.getAudioTracks()[0], undefined, false);\n screenAudio.source = Track.Source.ScreenShareAudio;\n localTracks.push(screenAudio);\n }\n return localTracks;\n });\n}\n\nvar ConnectionQuality;\n(function (ConnectionQuality) {\n ConnectionQuality[\"Excellent\"] = \"excellent\";\n ConnectionQuality[\"Good\"] = \"good\";\n ConnectionQuality[\"Poor\"] = \"poor\";\n /**\n * Indicates that a participant has temporarily (or permanently) lost connection to LiveKit.\n * For permanent disconnection a `ParticipantDisconnected` event will be emitted after a timeout\n */\n ConnectionQuality[\"Lost\"] = \"lost\";\n ConnectionQuality[\"Unknown\"] = \"unknown\";\n})(ConnectionQuality || (ConnectionQuality = {}));\nfunction qualityFromProto(q) {\n switch (q) {\n case ConnectionQuality$1.EXCELLENT:\n return ConnectionQuality.Excellent;\n case ConnectionQuality$1.GOOD:\n return ConnectionQuality.Good;\n case ConnectionQuality$1.POOR:\n return ConnectionQuality.Poor;\n case ConnectionQuality$1.LOST:\n return ConnectionQuality.Lost;\n default:\n return ConnectionQuality.Unknown;\n }\n}\nclass Participant extends eventsExports.EventEmitter {\n get logContext() {\n var _a, _b;\n return Object.assign({}, (_b = (_a = this.loggerOptions) === null || _a === void 0 ? void 0 : _a.loggerContextCb) === null || _b === void 0 ? void 0 : _b.call(_a));\n }\n get isEncrypted() {\n return this.trackPublications.size > 0 && Array.from(this.trackPublications.values()).every(tr => tr.isEncrypted);\n }\n get isAgent() {\n var _a;\n return ((_a = this.permissions) === null || _a === void 0 ? void 0 : _a.agent) || this.kind === ParticipantInfo_Kind.AGENT;\n }\n get kind() {\n return this._kind;\n }\n /** participant attributes, similar to metadata, but as a key/value map */\n get attributes() {\n return Object.freeze(Object.assign({}, this._attributes));\n }\n /** @internal */\n constructor(sid, identity, name, metadata, loggerOptions) {\n let kind = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : ParticipantInfo_Kind.STANDARD;\n var _a;\n super();\n /** audio level between 0-1.0, 1 being loudest, 0 being softest */\n this.audioLevel = 0;\n /** if participant is currently speaking */\n this.isSpeaking = false;\n this._connectionQuality = ConnectionQuality.Unknown;\n this.log = livekitLogger;\n this.log = getLogger((_a = loggerOptions === null || loggerOptions === void 0 ? void 0 : loggerOptions.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Participant);\n this.loggerOptions = loggerOptions;\n this.setMaxListeners(100);\n this.sid = sid;\n this.identity = identity;\n this.name = name;\n this.metadata = metadata;\n this.audioTrackPublications = new Map();\n this.videoTrackPublications = new Map();\n this.trackPublications = new Map();\n this._kind = kind;\n this._attributes = {};\n }\n getTrackPublications() {\n return Array.from(this.trackPublications.values());\n }\n /**\n * Finds the first track that matches the source filter, for example, getting\n * the user's camera track with getTrackBySource(Track.Source.Camera).\n */\n getTrackPublication(source) {\n for (const [, pub] of this.trackPublications) {\n if (pub.source === source) {\n return pub;\n }\n }\n }\n /**\n * Finds the first track that matches the track's name.\n */\n getTrackPublicationByName(name) {\n for (const [, pub] of this.trackPublications) {\n if (pub.trackName === name) {\n return pub;\n }\n }\n }\n get connectionQuality() {\n return this._connectionQuality;\n }\n get isCameraEnabled() {\n var _a;\n const track = this.getTrackPublication(Track.Source.Camera);\n return !((_a = track === null || track === void 0 ? void 0 : track.isMuted) !== null && _a !== void 0 ? _a : true);\n }\n get isMicrophoneEnabled() {\n var _a;\n const track = this.getTrackPublication(Track.Source.Microphone);\n return !((_a = track === null || track === void 0 ? void 0 : track.isMuted) !== null && _a !== void 0 ? _a : true);\n }\n get isScreenShareEnabled() {\n const track = this.getTrackPublication(Track.Source.ScreenShare);\n return !!track;\n }\n get isLocal() {\n return false;\n }\n /** when participant joined the room */\n get joinedAt() {\n if (this.participantInfo) {\n return new Date(Number.parseInt(this.participantInfo.joinedAt.toString()) * 1000);\n }\n return new Date();\n }\n /** @internal */\n updateInfo(info) {\n // it's possible the update could be applied out of order due to await\n // during reconnect sequences. when that happens, it's possible for server\n // to have sent more recent version of participant info while JS is waiting\n // to process the existing payload.\n // when the participant sid remains the same, and we already have a later version\n // of the payload, they can be safely skipped\n if (this.participantInfo && this.participantInfo.sid === info.sid && this.participantInfo.version > info.version) {\n return false;\n }\n this.identity = info.identity;\n this.sid = info.sid;\n this._setName(info.name);\n this._setMetadata(info.metadata);\n this._setAttributes(info.attributes);\n if (info.permission) {\n this.setPermissions(info.permission);\n }\n // set this last so setMetadata can detect changes\n this.participantInfo = info;\n this.log.trace('update participant info', Object.assign(Object.assign({}, this.logContext), {\n info\n }));\n return true;\n }\n /**\n * Updates metadata from server\n **/\n _setMetadata(md) {\n const changed = this.metadata !== md;\n const prevMetadata = this.metadata;\n this.metadata = md;\n if (changed) {\n this.emit(ParticipantEvent.ParticipantMetadataChanged, prevMetadata);\n }\n }\n _setName(name) {\n const changed = this.name !== name;\n this.name = name;\n if (changed) {\n this.emit(ParticipantEvent.ParticipantNameChanged, name);\n }\n }\n /**\n * Updates metadata from server\n **/\n _setAttributes(attributes) {\n const diff = diffAttributes(this.attributes, attributes);\n this._attributes = attributes;\n if (Object.keys(diff).length > 0) {\n this.emit(ParticipantEvent.AttributesChanged, diff);\n }\n }\n /** @internal */\n setPermissions(permissions) {\n var _a, _b, _c, _d, _e, _f;\n const prevPermissions = this.permissions;\n const changed = permissions.canPublish !== ((_a = this.permissions) === null || _a === void 0 ? void 0 : _a.canPublish) || permissions.canSubscribe !== ((_b = this.permissions) === null || _b === void 0 ? void 0 : _b.canSubscribe) || permissions.canPublishData !== ((_c = this.permissions) === null || _c === void 0 ? void 0 : _c.canPublishData) || permissions.hidden !== ((_d = this.permissions) === null || _d === void 0 ? void 0 : _d.hidden) || permissions.recorder !== ((_e = this.permissions) === null || _e === void 0 ? void 0 : _e.recorder) || permissions.canPublishSources.length !== this.permissions.canPublishSources.length || permissions.canPublishSources.some((value, index) => {\n var _a;\n return value !== ((_a = this.permissions) === null || _a === void 0 ? void 0 : _a.canPublishSources[index]);\n }) || permissions.canSubscribeMetrics !== ((_f = this.permissions) === null || _f === void 0 ? void 0 : _f.canSubscribeMetrics);\n this.permissions = permissions;\n if (changed) {\n this.emit(ParticipantEvent.ParticipantPermissionsChanged, prevPermissions);\n }\n return changed;\n }\n /** @internal */\n setIsSpeaking(speaking) {\n if (speaking === this.isSpeaking) {\n return;\n }\n this.isSpeaking = speaking;\n if (speaking) {\n this.lastSpokeAt = new Date();\n }\n this.emit(ParticipantEvent.IsSpeakingChanged, speaking);\n }\n /** @internal */\n setConnectionQuality(q) {\n const prevQuality = this._connectionQuality;\n this._connectionQuality = qualityFromProto(q);\n if (prevQuality !== this._connectionQuality) {\n this.emit(ParticipantEvent.ConnectionQualityChanged, this._connectionQuality);\n }\n }\n /**\n * @internal\n */\n setAudioContext(ctx) {\n this.audioContext = ctx;\n this.audioTrackPublications.forEach(track => (track.track instanceof RemoteAudioTrack || track.track instanceof LocalAudioTrack) && track.track.setAudioContext(ctx));\n }\n addTrackPublication(publication) {\n // forward publication driven events\n publication.on(TrackEvent.Muted, () => {\n this.emit(ParticipantEvent.TrackMuted, publication);\n });\n publication.on(TrackEvent.Unmuted, () => {\n this.emit(ParticipantEvent.TrackUnmuted, publication);\n });\n const pub = publication;\n if (pub.track) {\n pub.track.sid = publication.trackSid;\n }\n this.trackPublications.set(publication.trackSid, publication);\n switch (publication.kind) {\n case Track.Kind.Audio:\n this.audioTrackPublications.set(publication.trackSid, publication);\n break;\n case Track.Kind.Video:\n this.videoTrackPublications.set(publication.trackSid, publication);\n break;\n }\n }\n}\n\nfunction trackPermissionToProto(perms) {\n var _a, _b, _c;\n if (!perms.participantSid && !perms.participantIdentity) {\n throw new Error('Invalid track permission, must provide at least one of participantIdentity and participantSid');\n }\n return new TrackPermission({\n participantIdentity: (_a = perms.participantIdentity) !== null && _a !== void 0 ? _a : '',\n participantSid: (_b = perms.participantSid) !== null && _b !== void 0 ? _b : '',\n allTracks: (_c = perms.allowAll) !== null && _c !== void 0 ? _c : false,\n trackSids: perms.allowedTrackSids || []\n });\n}\n\nclass LocalParticipant extends Participant {\n /** @internal */\n constructor(sid, identity, engine, options) {\n super(sid, identity, undefined, undefined, {\n loggerName: options.loggerName,\n loggerContextCb: () => this.engine.logContext\n });\n this.pendingPublishing = new Set();\n this.pendingPublishPromises = new Map();\n this.participantTrackPermissions = [];\n this.allParticipantsAllowedToSubscribe = true;\n this.encryptionType = Encryption_Type.NONE;\n this.enabledPublishVideoCodecs = [];\n this.rpcHandlers = new Map();\n this.pendingAcks = new Map();\n this.pendingResponses = new Map();\n this.handleReconnecting = () => {\n if (!this.reconnectFuture) {\n this.reconnectFuture = new Future();\n }\n };\n this.handleReconnected = () => {\n var _a, _b;\n (_b = (_a = this.reconnectFuture) === null || _a === void 0 ? void 0 : _a.resolve) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.reconnectFuture = undefined;\n this.updateTrackSubscriptionPermissions();\n };\n this.handleDisconnected = () => {\n var _a, _b;\n if (this.reconnectFuture) {\n this.reconnectFuture.promise.catch(e => this.log.warn(e.message, this.logContext));\n (_b = (_a = this.reconnectFuture) === null || _a === void 0 ? void 0 : _a.reject) === null || _b === void 0 ? void 0 : _b.call(_a, 'Got disconnected during reconnection attempt');\n this.reconnectFuture = undefined;\n }\n };\n this.handleSignalRequestResponse = response => {\n const {\n requestId,\n reason,\n message\n } = response;\n const targetRequest = this.pendingSignalRequests.get(requestId);\n if (targetRequest) {\n if (reason !== RequestResponse_Reason.OK) {\n targetRequest.reject(new SignalRequestError(message, reason));\n }\n this.pendingSignalRequests.delete(requestId);\n }\n };\n this.handleDataPacket = packet => {\n switch (packet.value.case) {\n case 'rpcRequest':\n let rpcRequest = packet.value.value;\n this.handleIncomingRpcRequest(packet.participantIdentity, rpcRequest.id, rpcRequest.method, rpcRequest.payload, rpcRequest.responseTimeoutMs, rpcRequest.version);\n break;\n case 'rpcResponse':\n let rpcResponse = packet.value.value;\n let payload = null;\n let error = null;\n if (rpcResponse.value.case === 'payload') {\n payload = rpcResponse.value.value;\n } else if (rpcResponse.value.case === 'error') {\n error = RpcError.fromProto(rpcResponse.value.value);\n }\n this.handleIncomingRpcResponse(rpcResponse.requestId, payload, error);\n break;\n case 'rpcAck':\n let rpcAck = packet.value.value;\n this.handleIncomingRpcAck(rpcAck.requestId);\n break;\n }\n };\n this.updateTrackSubscriptionPermissions = () => {\n this.log.debug('updating track subscription permissions', Object.assign(Object.assign({}, this.logContext), {\n allParticipantsAllowed: this.allParticipantsAllowedToSubscribe,\n participantTrackPermissions: this.participantTrackPermissions\n }));\n this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe, this.participantTrackPermissions.map(p => trackPermissionToProto(p)));\n };\n /** @internal */\n this.onTrackUnmuted = track => {\n this.onTrackMuted(track, track.isUpstreamPaused);\n };\n // when the local track changes in mute status, we'll notify server as such\n /** @internal */\n this.onTrackMuted = (track, muted) => {\n if (muted === undefined) {\n muted = true;\n }\n if (!track.sid) {\n this.log.error('could not update mute status for unpublished track', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n return;\n }\n this.engine.updateMuteStatus(track.sid, muted);\n };\n this.onTrackUpstreamPaused = track => {\n this.log.debug('upstream paused', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n this.onTrackMuted(track, true);\n };\n this.onTrackUpstreamResumed = track => {\n this.log.debug('upstream resumed', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n this.onTrackMuted(track, track.isMuted);\n };\n this.onTrackFeatureUpdate = track => {\n const pub = this.audioTrackPublications.get(track.sid);\n if (!pub) {\n this.log.warn(\"Could not update local audio track settings, missing publication for track \".concat(track.sid), this.logContext);\n return;\n }\n this.engine.client.sendUpdateLocalAudioTrack(pub.trackSid, pub.getTrackFeatures());\n };\n this.handleSubscribedQualityUpdate = update => __awaiter(this, void 0, void 0, function* () {\n var _a, e_1, _b, _c;\n var _d, _e;\n if (!((_d = this.roomOptions) === null || _d === void 0 ? void 0 : _d.dynacast)) {\n return;\n }\n const pub = this.videoTrackPublications.get(update.trackSid);\n if (!pub) {\n this.log.warn('received subscribed quality update for unknown track', Object.assign(Object.assign({}, this.logContext), {\n trackSid: update.trackSid\n }));\n return;\n }\n if (update.subscribedCodecs.length > 0) {\n if (!pub.videoTrack) {\n return;\n }\n const newCodecs = yield pub.videoTrack.setPublishingCodecs(update.subscribedCodecs);\n try {\n for (var _f = true, newCodecs_1 = __asyncValues(newCodecs), newCodecs_1_1; newCodecs_1_1 = yield newCodecs_1.next(), _a = newCodecs_1_1.done, !_a; _f = true) {\n _c = newCodecs_1_1.value;\n _f = false;\n const codec = _c;\n if (isBackupCodec(codec)) {\n this.log.debug(\"publish \".concat(codec, \" for \").concat(pub.videoTrack.sid), Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(pub)));\n yield this.publishAdditionalCodecForTrack(pub.videoTrack, codec, pub.options);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (!_f && !_a && (_b = newCodecs_1.return)) yield _b.call(newCodecs_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n } else if (update.subscribedQualities.length > 0) {\n yield (_e = pub.videoTrack) === null || _e === void 0 ? void 0 : _e.setPublishingLayers(update.subscribedQualities);\n }\n });\n this.handleLocalTrackUnpublished = unpublished => {\n const track = this.trackPublications.get(unpublished.trackSid);\n if (!track) {\n this.log.warn('received unpublished event for unknown track', Object.assign(Object.assign({}, this.logContext), {\n trackSid: unpublished.trackSid\n }));\n return;\n }\n this.unpublishTrack(track.track);\n };\n this.handleTrackEnded = track => __awaiter(this, void 0, void 0, function* () {\n if (track.source === Track.Source.ScreenShare || track.source === Track.Source.ScreenShareAudio) {\n this.log.debug('unpublishing local track due to TrackEnded', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n this.unpublishTrack(track);\n } else if (track.isUserProvided) {\n yield track.mute();\n } else if (track instanceof LocalAudioTrack || track instanceof LocalVideoTrack) {\n try {\n if (isWeb()) {\n try {\n const currentPermissions = yield navigator === null || navigator === void 0 ? void 0 : navigator.permissions.query({\n // the permission query for camera and microphone currently not supported in Safari and Firefox\n // @ts-ignore\n name: track.source === Track.Source.Camera ? 'camera' : 'microphone'\n });\n if (currentPermissions && currentPermissions.state === 'denied') {\n this.log.warn(\"user has revoked access to \".concat(track.source), Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n // detect granted change after permissions were denied to try and resume then\n currentPermissions.onchange = () => {\n if (currentPermissions.state !== 'denied') {\n if (!track.isMuted) {\n track.restartTrack();\n }\n currentPermissions.onchange = null;\n }\n };\n throw new Error('GetUserMedia Permission denied');\n }\n } catch (e) {\n // permissions query fails for firefox, we continue and try to restart the track\n }\n }\n if (!track.isMuted) {\n this.log.debug('track ended, attempting to use a different device', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n if (track instanceof LocalAudioTrack) {\n // fall back to default device if available\n yield track.restartTrack({\n deviceId: 'default'\n });\n } else {\n yield track.restartTrack();\n }\n }\n } catch (e) {\n this.log.warn(\"could not restart track, muting instead\", Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n yield track.mute();\n }\n }\n });\n this.audioTrackPublications = new Map();\n this.videoTrackPublications = new Map();\n this.trackPublications = new Map();\n this.engine = engine;\n this.roomOptions = options;\n this.setupEngine(engine);\n this.activeDeviceMap = new Map();\n this.pendingSignalRequests = new Map();\n }\n get lastCameraError() {\n return this.cameraError;\n }\n get lastMicrophoneError() {\n return this.microphoneError;\n }\n get isE2EEEnabled() {\n return this.encryptionType !== Encryption_Type.NONE;\n }\n getTrackPublication(source) {\n const track = super.getTrackPublication(source);\n if (track) {\n return track;\n }\n }\n getTrackPublicationByName(name) {\n const track = super.getTrackPublicationByName(name);\n if (track) {\n return track;\n }\n }\n /**\n * @internal\n */\n setupEngine(engine) {\n this.engine = engine;\n this.engine.on(EngineEvent.RemoteMute, (trackSid, muted) => {\n const pub = this.trackPublications.get(trackSid);\n if (!pub || !pub.track) {\n return;\n }\n if (muted) {\n pub.mute();\n } else {\n pub.unmute();\n }\n });\n this.engine.on(EngineEvent.Connected, this.handleReconnected).on(EngineEvent.SignalRestarted, this.handleReconnected).on(EngineEvent.SignalResumed, this.handleReconnected).on(EngineEvent.Restarting, this.handleReconnecting).on(EngineEvent.Resuming, this.handleReconnecting).on(EngineEvent.LocalTrackUnpublished, this.handleLocalTrackUnpublished).on(EngineEvent.SubscribedQualityUpdate, this.handleSubscribedQualityUpdate).on(EngineEvent.Disconnected, this.handleDisconnected).on(EngineEvent.SignalRequestResponse, this.handleSignalRequestResponse).on(EngineEvent.DataPacketReceived, this.handleDataPacket);\n }\n /**\n * Sets and updates the metadata of the local participant.\n * Note: this requires `canUpdateOwnMetadata` permission.\n * method will throw if the user doesn't have the required permissions\n * @param metadata\n */\n setMetadata(metadata) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.requestMetadataUpdate({\n metadata\n });\n });\n }\n /**\n * Sets and updates the name of the local participant.\n * Note: this requires `canUpdateOwnMetadata` permission.\n * method will throw if the user doesn't have the required permissions\n * @param metadata\n */\n setName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.requestMetadataUpdate({\n name\n });\n });\n }\n /**\n * Set or update participant attributes. It will make updates only to keys that\n * are present in `attributes`, and will not override others.\n * Note: this requires `canUpdateOwnMetadata` permission.\n * @param attributes attributes to update\n */\n setAttributes(attributes) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.requestMetadataUpdate({\n attributes\n });\n });\n }\n requestMetadataUpdate(_a) {\n return __awaiter(this, arguments, void 0, function (_ref) {\n var _this = this;\n let {\n metadata,\n name,\n attributes\n } = _ref;\n return function* () {\n return new Promise((resolve, reject) => __awaiter(_this, void 0, void 0, function* () {\n var _a, _b;\n try {\n let isRejected = false;\n const requestId = yield this.engine.client.sendUpdateLocalMetadata((_a = metadata !== null && metadata !== void 0 ? metadata : this.metadata) !== null && _a !== void 0 ? _a : '', (_b = name !== null && name !== void 0 ? name : this.name) !== null && _b !== void 0 ? _b : '', attributes);\n const startTime = performance.now();\n this.pendingSignalRequests.set(requestId, {\n resolve,\n reject: error => {\n reject(error);\n isRejected = true;\n },\n values: {\n name,\n metadata,\n attributes\n }\n });\n while (performance.now() - startTime < 5000 && !isRejected) {\n if ((!name || this.name === name) && (!metadata || this.metadata === metadata) && (!attributes || Object.entries(attributes).every(_ref2 => {\n let [key, value] = _ref2;\n return this.attributes[key] === value || value === '' && !this.attributes[key];\n }))) {\n this.pendingSignalRequests.delete(requestId);\n resolve();\n return;\n }\n yield sleep(50);\n }\n reject(new SignalRequestError('Request to update local metadata timed out', 'TimeoutError'));\n } catch (e) {\n if (e instanceof Error) reject(e);\n }\n }));\n }();\n });\n }\n /**\n * Enable or disable a participant's camera track.\n *\n * If a track has already published, it'll mute or unmute the track.\n * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise\n */\n setCameraEnabled(enabled, options, publishOptions) {\n return this.setTrackEnabled(Track.Source.Camera, enabled, options, publishOptions);\n }\n /**\n * Enable or disable a participant's microphone track.\n *\n * If a track has already published, it'll mute or unmute the track.\n * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise\n */\n setMicrophoneEnabled(enabled, options, publishOptions) {\n return this.setTrackEnabled(Track.Source.Microphone, enabled, options, publishOptions);\n }\n /**\n * Start or stop sharing a participant's screen\n * Resolves with a `LocalTrackPublication` instance if successful and `undefined` otherwise\n */\n setScreenShareEnabled(enabled, options, publishOptions) {\n return this.setTrackEnabled(Track.Source.ScreenShare, enabled, options, publishOptions);\n }\n /** @internal */\n setPermissions(permissions) {\n const prevPermissions = this.permissions;\n const changed = super.setPermissions(permissions);\n if (changed && prevPermissions) {\n this.emit(ParticipantEvent.ParticipantPermissionsChanged, prevPermissions);\n }\n return changed;\n }\n /** @internal */\n setE2EEEnabled(enabled) {\n return __awaiter(this, void 0, void 0, function* () {\n this.encryptionType = enabled ? Encryption_Type.GCM : Encryption_Type.NONE;\n yield this.republishAllTracks(undefined, false);\n });\n }\n setTrackEnabled(source, enabled, options, publishOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n this.log.debug('setTrackEnabled', Object.assign(Object.assign({}, this.logContext), {\n source,\n enabled\n }));\n if (this.republishPromise) {\n yield this.republishPromise;\n }\n let track = this.getTrackPublication(source);\n if (enabled) {\n if (track) {\n yield track.unmute();\n } else {\n let localTracks;\n if (this.pendingPublishing.has(source)) {\n const pendingTrack = yield this.waitForPendingPublicationOfSource(source);\n if (!pendingTrack) {\n this.log.info('skipping duplicate published source', Object.assign(Object.assign({}, this.logContext), {\n source\n }));\n }\n yield pendingTrack === null || pendingTrack === void 0 ? void 0 : pendingTrack.unmute();\n return pendingTrack;\n }\n this.pendingPublishing.add(source);\n try {\n switch (source) {\n case Track.Source.Camera:\n localTracks = yield this.createTracks({\n video: (_a = options) !== null && _a !== void 0 ? _a : true\n });\n break;\n case Track.Source.Microphone:\n localTracks = yield this.createTracks({\n audio: (_b = options) !== null && _b !== void 0 ? _b : true\n });\n break;\n case Track.Source.ScreenShare:\n localTracks = yield this.createScreenTracks(Object.assign({}, options));\n break;\n default:\n throw new TrackInvalidError(source);\n }\n const publishPromises = [];\n for (const localTrack of localTracks) {\n this.log.info('publishing track', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(localTrack)));\n publishPromises.push(this.publishTrack(localTrack, publishOptions));\n }\n const publishedTracks = yield Promise.all(publishPromises);\n // for screen share publications including audio, this will only return the screen share publication, not the screen share audio one\n // revisit if we want to return an array of tracks instead for v2\n [track] = publishedTracks;\n } catch (e) {\n localTracks === null || localTracks === void 0 ? void 0 : localTracks.forEach(tr => {\n tr.stop();\n });\n if (e instanceof Error && !(e instanceof TrackInvalidError)) {\n this.emit(ParticipantEvent.MediaDevicesError, e);\n }\n throw e;\n } finally {\n this.pendingPublishing.delete(source);\n }\n }\n } else {\n if (!(track === null || track === void 0 ? void 0 : track.track)) {\n // if there's no track available yet first wait for pending publishing promises of that source to see if it becomes available\n track = yield this.waitForPendingPublicationOfSource(source);\n }\n if (track && track.track) {\n // screenshare cannot be muted, unpublish instead\n if (source === Track.Source.ScreenShare) {\n track = yield this.unpublishTrack(track.track);\n const screenAudioTrack = this.getTrackPublication(Track.Source.ScreenShareAudio);\n if (screenAudioTrack && screenAudioTrack.track) {\n this.unpublishTrack(screenAudioTrack.track);\n }\n } else {\n yield track.mute();\n }\n }\n }\n return track;\n });\n }\n /**\n * Publish both camera and microphone at the same time. This is useful for\n * displaying a single Permission Dialog box to the end user.\n */\n enableCameraAndMicrophone() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.pendingPublishing.has(Track.Source.Camera) || this.pendingPublishing.has(Track.Source.Microphone)) {\n // no-op it's already been requested\n return;\n }\n this.pendingPublishing.add(Track.Source.Camera);\n this.pendingPublishing.add(Track.Source.Microphone);\n try {\n const tracks = yield this.createTracks({\n audio: true,\n video: true\n });\n yield Promise.all(tracks.map(track => this.publishTrack(track)));\n } finally {\n this.pendingPublishing.delete(Track.Source.Camera);\n this.pendingPublishing.delete(Track.Source.Microphone);\n }\n });\n }\n /**\n * Create local camera and/or microphone tracks\n * @param options\n * @returns\n */\n createTracks(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n options !== null && options !== void 0 ? options : options = {};\n const {\n audioProcessor,\n videoProcessor\n } = extractProcessorsFromOptions(options);\n const mergedOptions = mergeDefaultOptions(options, (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.audioCaptureDefaults, (_b = this.roomOptions) === null || _b === void 0 ? void 0 : _b.videoCaptureDefaults);\n const constraints = constraintsForOptions(mergedOptions);\n let stream;\n try {\n stream = yield navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err instanceof Error) {\n if (constraints.audio) {\n this.microphoneError = err;\n }\n if (constraints.video) {\n this.cameraError = err;\n }\n }\n throw err;\n }\n if (constraints.audio) {\n this.microphoneError = undefined;\n this.emit(ParticipantEvent.AudioStreamAcquired);\n }\n if (constraints.video) {\n this.cameraError = undefined;\n }\n return Promise.all(stream.getTracks().map(mediaStreamTrack => __awaiter(this, void 0, void 0, function* () {\n const isAudio = mediaStreamTrack.kind === 'audio';\n isAudio ? mergedOptions.audio : mergedOptions.video;\n let trackConstraints;\n const conOrBool = isAudio ? constraints.audio : constraints.video;\n if (typeof conOrBool !== 'boolean') {\n trackConstraints = conOrBool;\n }\n const track = mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints, {\n loggerName: this.roomOptions.loggerName,\n loggerContextCb: () => this.logContext\n });\n if (track.kind === Track.Kind.Video) {\n track.source = Track.Source.Camera;\n } else if (track.kind === Track.Kind.Audio) {\n track.source = Track.Source.Microphone;\n track.setAudioContext(this.audioContext);\n }\n track.mediaStream = stream;\n if (track instanceof LocalAudioTrack && audioProcessor) {\n yield track.setProcessor(audioProcessor);\n } else if (track instanceof LocalVideoTrack && videoProcessor) {\n yield track.setProcessor(videoProcessor);\n }\n return track;\n })));\n });\n }\n /**\n * Creates a screen capture tracks with getDisplayMedia().\n * A LocalVideoTrack is always created and returned.\n * If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.\n */\n createScreenTracks(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options === undefined) {\n options = {};\n }\n if (navigator.mediaDevices.getDisplayMedia === undefined) {\n throw new DeviceUnsupportedError('getDisplayMedia not supported');\n }\n if (options.resolution === undefined && !isSafari17()) {\n // we need to constrain the dimensions, otherwise it could lead to low bitrate\n // due to encoding a huge video. Encoding such large surfaces is really expensive\n // unfortunately Safari 17 has a but and cannot be constrained by default\n options.resolution = ScreenSharePresets.h1080fps30.resolution;\n }\n const constraints = screenCaptureToDisplayMediaStreamOptions(options);\n const stream = yield navigator.mediaDevices.getDisplayMedia(constraints);\n const tracks = stream.getVideoTracks();\n if (tracks.length === 0) {\n throw new TrackInvalidError('no video track found');\n }\n const screenVideo = new LocalVideoTrack(tracks[0], undefined, false, {\n loggerName: this.roomOptions.loggerName,\n loggerContextCb: () => this.logContext\n });\n screenVideo.source = Track.Source.ScreenShare;\n if (options.contentHint) {\n screenVideo.mediaStreamTrack.contentHint = options.contentHint;\n }\n const localTracks = [screenVideo];\n if (stream.getAudioTracks().length > 0) {\n this.emit(ParticipantEvent.AudioStreamAcquired);\n const screenAudio = new LocalAudioTrack(stream.getAudioTracks()[0], undefined, false, this.audioContext, {\n loggerName: this.roomOptions.loggerName,\n loggerContextCb: () => this.logContext\n });\n screenAudio.source = Track.Source.ScreenShareAudio;\n localTracks.push(screenAudio);\n }\n return localTracks;\n });\n }\n /**\n * Publish a new track to the room\n * @param track\n * @param options\n */\n publishTrack(track, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.publishOrRepublishTrack(track, options);\n });\n }\n publishOrRepublishTrack(track_1, options_1) {\n return __awaiter(this, arguments, void 0, function (track, options) {\n var _this2 = this;\n let isRepublish = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function* () {\n var _a, _b, _c, _d;\n if (track instanceof LocalAudioTrack) {\n track.setAudioContext(_this2.audioContext);\n }\n yield (_a = _this2.reconnectFuture) === null || _a === void 0 ? void 0 : _a.promise;\n if (_this2.republishPromise && !isRepublish) {\n yield _this2.republishPromise;\n }\n if (track instanceof LocalTrack && _this2.pendingPublishPromises.has(track)) {\n yield _this2.pendingPublishPromises.get(track);\n }\n let defaultConstraints;\n if (track instanceof MediaStreamTrack) {\n defaultConstraints = track.getConstraints();\n } else {\n // we want to access constraints directly as `track.mediaStreamTrack`\n // might be pointing to a non-device track (e.g. processed track) already\n defaultConstraints = track.constraints;\n let deviceKind = undefined;\n switch (track.source) {\n case Track.Source.Microphone:\n deviceKind = 'audioinput';\n break;\n case Track.Source.Camera:\n deviceKind = 'videoinput';\n }\n if (deviceKind && _this2.activeDeviceMap.has(deviceKind)) {\n defaultConstraints = Object.assign(Object.assign({}, defaultConstraints), {\n deviceId: _this2.activeDeviceMap.get(deviceKind)\n });\n }\n }\n // convert raw media track into audio or video track\n if (track instanceof MediaStreamTrack) {\n switch (track.kind) {\n case 'audio':\n track = new LocalAudioTrack(track, defaultConstraints, true, _this2.audioContext, {\n loggerName: _this2.roomOptions.loggerName,\n loggerContextCb: () => _this2.logContext\n });\n break;\n case 'video':\n track = new LocalVideoTrack(track, defaultConstraints, true, {\n loggerName: _this2.roomOptions.loggerName,\n loggerContextCb: () => _this2.logContext\n });\n break;\n default:\n throw new TrackInvalidError(\"unsupported MediaStreamTrack kind \".concat(track.kind));\n }\n } else {\n track.updateLoggerOptions({\n loggerName: _this2.roomOptions.loggerName,\n loggerContextCb: () => _this2.logContext\n });\n }\n // is it already published? if so skip\n let existingPublication;\n _this2.trackPublications.forEach(publication => {\n if (!publication.track) {\n return;\n }\n if (publication.track === track) {\n existingPublication = publication;\n }\n });\n if (existingPublication) {\n _this2.log.warn('track has already been published, skipping', Object.assign(Object.assign({}, _this2.logContext), getLogContextFromTrack(existingPublication)));\n return existingPublication;\n }\n const isStereoInput = 'channelCount' in track.mediaStreamTrack.getSettings() &&\n // @ts-ignore `channelCount` on getSettings() is currently only available for Safari, but is generally the best way to determine a stereo track https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/channelCount\n track.mediaStreamTrack.getSettings().channelCount === 2 || track.mediaStreamTrack.getConstraints().channelCount === 2;\n const isStereo = (_b = options === null || options === void 0 ? void 0 : options.forceStereo) !== null && _b !== void 0 ? _b : isStereoInput;\n // disable dtx for stereo track if not enabled explicitly\n if (isStereo) {\n if (!options) {\n options = {};\n }\n if (options.dtx === undefined) {\n _this2.log.info(\"Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.\", Object.assign(Object.assign({}, _this2.logContext), getLogContextFromTrack(track)));\n }\n if (options.red === undefined) {\n _this2.log.info(\"Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work.\");\n }\n (_c = options.dtx) !== null && _c !== void 0 ? _c : options.dtx = false;\n (_d = options.red) !== null && _d !== void 0 ? _d : options.red = false;\n }\n const opts = Object.assign(Object.assign({}, _this2.roomOptions.publishDefaults), options);\n if (!isE2EESimulcastSupported() && _this2.roomOptions.e2ee) {\n _this2.log.info(\"End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2\", Object.assign({}, _this2.logContext));\n opts.simulcast = false;\n }\n if (opts.source) {\n track.source = opts.source;\n }\n const publishPromise = _this2.publish(track, opts, isStereo);\n _this2.pendingPublishPromises.set(track, publishPromise);\n try {\n const publication = yield publishPromise;\n return publication;\n } catch (e) {\n throw e;\n } finally {\n _this2.pendingPublishPromises.delete(track);\n }\n }();\n });\n }\n publish(track, opts, isStereo) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const existingTrackOfSource = Array.from(this.trackPublications.values()).find(publishedTrack => track instanceof LocalTrack && publishedTrack.source === track.source);\n if (existingTrackOfSource && track.source !== Track.Source.Unknown) {\n this.log.info(\"publishing a second track with the same source: \".concat(track.source), Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n }\n if (opts.stopMicTrackOnMute && track instanceof LocalAudioTrack) {\n track.stopOnMute = true;\n }\n if (track.source === Track.Source.ScreenShare && isFireFox()) {\n // Firefox does not work well with simulcasted screen share\n // we frequently get no data on layer 0 when enabled\n opts.simulcast = false;\n }\n // require full AV1/VP9 SVC support prior to using it\n if (opts.videoCodec === 'av1' && !supportsAV1()) {\n opts.videoCodec = undefined;\n }\n if (opts.videoCodec === 'vp9' && !supportsVP9()) {\n opts.videoCodec = undefined;\n }\n if (opts.videoCodec === undefined) {\n opts.videoCodec = defaultVideoCodec;\n }\n if (this.enabledPublishVideoCodecs.length > 0) {\n // fallback to a supported codec if it is not supported\n if (!this.enabledPublishVideoCodecs.some(c => opts.videoCodec === mimeTypeToVideoCodecString(c.mime))) {\n opts.videoCodec = mimeTypeToVideoCodecString(this.enabledPublishVideoCodecs[0].mime);\n }\n }\n const videoCodec = opts.videoCodec;\n // handle track actions\n track.on(TrackEvent.Muted, this.onTrackMuted);\n track.on(TrackEvent.Unmuted, this.onTrackUnmuted);\n track.on(TrackEvent.Ended, this.handleTrackEnded);\n track.on(TrackEvent.UpstreamPaused, this.onTrackUpstreamPaused);\n track.on(TrackEvent.UpstreamResumed, this.onTrackUpstreamResumed);\n track.on(TrackEvent.AudioTrackFeatureUpdate, this.onTrackFeatureUpdate);\n // create track publication from track\n const req = new AddTrackRequest({\n // get local track id for use during publishing\n cid: track.mediaStreamTrack.id,\n name: opts.name,\n type: Track.kindToProto(track.kind),\n muted: track.isMuted,\n source: Track.sourceToProto(track.source),\n disableDtx: !((_a = opts.dtx) !== null && _a !== void 0 ? _a : true),\n encryption: this.encryptionType,\n stereo: isStereo,\n disableRed: this.isE2EEEnabled || !((_b = opts.red) !== null && _b !== void 0 ? _b : true),\n stream: opts === null || opts === void 0 ? void 0 : opts.stream\n });\n // compute encodings and layers for video\n let encodings;\n if (track.kind === Track.Kind.Video) {\n let dims = {\n width: 0,\n height: 0\n };\n try {\n dims = yield track.waitForDimensions();\n } catch (e) {\n // use defaults, it's quite painful for congestion control without simulcast\n // so using default dims according to publish settings\n const defaultRes = (_d = (_c = this.roomOptions.videoCaptureDefaults) === null || _c === void 0 ? void 0 : _c.resolution) !== null && _d !== void 0 ? _d : VideoPresets.h720.resolution;\n dims = {\n width: defaultRes.width,\n height: defaultRes.height\n };\n // log failure\n this.log.error('could not determine track dimensions, using defaults', Object.assign(Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)), {\n dims\n }));\n }\n // width and height should be defined for video\n req.width = dims.width;\n req.height = dims.height;\n // for svc codecs, disable simulcast and use vp8 for backup codec\n if (track instanceof LocalVideoTrack) {\n if (isSVCCodec(videoCodec)) {\n if (track.source === Track.Source.ScreenShare) {\n // vp9 svc with screenshare cannot encode multiple spatial layers\n // doing so reduces publish resolution to minimal resolution\n opts.scalabilityMode = 'L1T3';\n // Chrome does not allow more than 5 fps with L1T3, and it has encoding bugs with L3T3\n // It has a different path for screenshare handling and it seems to be untested/buggy\n // As a workaround, we are setting contentHint to force it to go through the same\n // path as regular camera video. While this is not optimal, it delivers the performance\n // that we need\n if ('contentHint' in track.mediaStreamTrack) {\n track.mediaStreamTrack.contentHint = 'motion';\n this.log.info('forcing contentHint to motion for screenshare with SVC codecs', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n }\n }\n // set scalabilityMode to 'L3T3_KEY' by default\n opts.scalabilityMode = (_e = opts.scalabilityMode) !== null && _e !== void 0 ? _e : 'L3T3_KEY';\n }\n req.simulcastCodecs = [new SimulcastCodec({\n codec: videoCodec,\n cid: track.mediaStreamTrack.id\n })];\n // set up backup\n if (opts.backupCodec === true) {\n opts.backupCodec = {\n codec: defaultVideoCodec\n };\n }\n if (opts.backupCodec && videoCodec !== opts.backupCodec.codec &&\n // TODO remove this once e2ee is supported for backup codecs\n req.encryption === Encryption_Type.NONE) {\n // multi-codec simulcast requires dynacast\n if (!this.roomOptions.dynacast) {\n this.roomOptions.dynacast = true;\n }\n req.simulcastCodecs.push(new SimulcastCodec({\n codec: opts.backupCodec.codec,\n cid: ''\n }));\n }\n }\n encodings = computeVideoEncodings(track.source === Track.Source.ScreenShare, req.width, req.height, opts);\n req.layers = videoLayersFromEncodings(req.width, req.height, encodings, isSVCCodec(opts.videoCodec));\n } else if (track.kind === Track.Kind.Audio) {\n encodings = [{\n maxBitrate: (_f = opts.audioPreset) === null || _f === void 0 ? void 0 : _f.maxBitrate,\n priority: (_h = (_g = opts.audioPreset) === null || _g === void 0 ? void 0 : _g.priority) !== null && _h !== void 0 ? _h : 'high',\n networkPriority: (_k = (_j = opts.audioPreset) === null || _j === void 0 ? void 0 : _j.priority) !== null && _k !== void 0 ? _k : 'high'\n }];\n }\n if (!this.engine || this.engine.isClosed) {\n throw new UnexpectedConnectionState('cannot publish track when not connected');\n }\n const negotiate = () => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (!this.engine.pcManager) {\n throw new UnexpectedConnectionState('pcManager is not ready');\n }\n track.sender = yield this.engine.createSender(track, opts, encodings);\n if (track instanceof LocalVideoTrack) {\n (_a = opts.degradationPreference) !== null && _a !== void 0 ? _a : opts.degradationPreference = getDefaultDegradationPreference(track);\n track.setDegradationPreference(opts.degradationPreference);\n }\n if (encodings) {\n if (isFireFox() && track.kind === Track.Kind.Audio) {\n /* Refer to RFC https://datatracker.ietf.org/doc/html/rfc7587#section-6.1,\n livekit-server uses maxaveragebitrate=510000 in the answer sdp to permit client to\n publish high quality audio track. But firefox always uses this value as the actual\n bitrates, causing the audio bitrates to rise to 510Kbps in any stereo case unexpectedly.\n So the client need to modify maxaverragebitrates in answer sdp to user provided value to\n fix the issue.\n */\n let trackTransceiver = undefined;\n for (const transceiver of this.engine.pcManager.publisher.getTransceivers()) {\n if (transceiver.sender === track.sender) {\n trackTransceiver = transceiver;\n break;\n }\n }\n if (trackTransceiver) {\n this.engine.pcManager.publisher.setTrackCodecBitrate({\n transceiver: trackTransceiver,\n codec: 'opus',\n maxbr: ((_b = encodings[0]) === null || _b === void 0 ? void 0 : _b.maxBitrate) ? encodings[0].maxBitrate / 1000 : 0\n });\n }\n } else if (track.codec && isSVCCodec(track.codec) && ((_c = encodings[0]) === null || _c === void 0 ? void 0 : _c.maxBitrate)) {\n this.engine.pcManager.publisher.setTrackCodecBitrate({\n cid: req.cid,\n codec: track.codec,\n maxbr: encodings[0].maxBitrate / 1000\n });\n }\n }\n yield this.engine.negotiate();\n });\n let ti;\n if (this.enabledPublishVideoCodecs.length > 0) {\n const rets = yield Promise.all([this.engine.addTrack(req), negotiate()]);\n ti = rets[0];\n } else {\n ti = yield this.engine.addTrack(req);\n // server might not support the codec the client has requested, in that case, fallback\n // to a supported codec\n let primaryCodecMime;\n ti.codecs.forEach(codec => {\n if (primaryCodecMime === undefined) {\n primaryCodecMime = codec.mimeType;\n }\n });\n if (primaryCodecMime && track.kind === Track.Kind.Video) {\n const updatedCodec = mimeTypeToVideoCodecString(primaryCodecMime);\n if (updatedCodec !== videoCodec) {\n this.log.debug('falling back to server selected codec', Object.assign(Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)), {\n codec: updatedCodec\n }));\n opts.videoCodec = updatedCodec;\n // recompute encodings since bitrates/etc could have changed\n encodings = computeVideoEncodings(track.source === Track.Source.ScreenShare, req.width, req.height, opts);\n }\n }\n yield negotiate();\n }\n const publication = new LocalTrackPublication(track.kind, ti, track, {\n loggerName: this.roomOptions.loggerName,\n loggerContextCb: () => this.logContext\n });\n // save options for when it needs to be republished again\n publication.options = opts;\n track.sid = ti.sid;\n this.log.debug(\"publishing \".concat(track.kind, \" with encodings\"), Object.assign(Object.assign({}, this.logContext), {\n encodings,\n trackInfo: ti\n }));\n if (track instanceof LocalVideoTrack) {\n track.startMonitor(this.engine.client);\n } else if (track instanceof LocalAudioTrack) {\n track.startMonitor();\n }\n this.addTrackPublication(publication);\n // send event for publication\n this.emit(ParticipantEvent.LocalTrackPublished, publication);\n return publication;\n });\n }\n get isLocal() {\n return true;\n }\n /** @internal\n * publish additional codec to existing track\n */\n publishAdditionalCodecForTrack(track, videoCodec, options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n // TODO remove once e2ee is supported for backup tracks\n if (this.encryptionType !== Encryption_Type.NONE) {\n return;\n }\n // is it not published? if so skip\n let existingPublication;\n this.trackPublications.forEach(publication => {\n if (!publication.track) {\n return;\n }\n if (publication.track === track) {\n existingPublication = publication;\n }\n });\n if (!existingPublication) {\n throw new TrackInvalidError('track is not published');\n }\n if (!(track instanceof LocalVideoTrack)) {\n throw new TrackInvalidError('track is not a video track');\n }\n const opts = Object.assign(Object.assign({}, (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.publishDefaults), options);\n const encodings = computeTrackBackupEncodings(track, videoCodec, opts);\n if (!encodings) {\n this.log.info(\"backup codec has been disabled, ignoring request to add additional codec for track\", Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n return;\n }\n const simulcastTrack = track.addSimulcastTrack(videoCodec, encodings);\n if (!simulcastTrack) {\n return;\n }\n const req = new AddTrackRequest({\n cid: simulcastTrack.mediaStreamTrack.id,\n type: Track.kindToProto(track.kind),\n muted: track.isMuted,\n source: Track.sourceToProto(track.source),\n sid: track.sid,\n simulcastCodecs: [{\n codec: opts.videoCodec,\n cid: simulcastTrack.mediaStreamTrack.id\n }]\n });\n req.layers = videoLayersFromEncodings(req.width, req.height, encodings);\n if (!this.engine || this.engine.isClosed) {\n throw new UnexpectedConnectionState('cannot publish track when not connected');\n }\n const negotiate = () => __awaiter(this, void 0, void 0, function* () {\n yield this.engine.createSimulcastSender(track, simulcastTrack, opts, encodings);\n yield this.engine.negotiate();\n });\n const rets = yield Promise.all([this.engine.addTrack(req), negotiate()]);\n const ti = rets[0];\n this.log.debug(\"published \".concat(videoCodec, \" for track \").concat(track.sid), Object.assign(Object.assign({}, this.logContext), {\n encodings,\n trackInfo: ti\n }));\n });\n }\n unpublishTrack(track, stopOnUnpublish) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (track instanceof LocalTrack) {\n const publishPromise = this.pendingPublishPromises.get(track);\n if (publishPromise) {\n this.log.info('awaiting publish promise before attempting to unpublish', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(track)));\n yield publishPromise;\n }\n }\n // look through all published tracks to find the right ones\n const publication = this.getPublicationForTrack(track);\n const pubLogContext = publication ? getLogContextFromTrack(publication) : undefined;\n this.log.debug('unpublishing track', Object.assign(Object.assign({}, this.logContext), pubLogContext));\n if (!publication || !publication.track) {\n this.log.warn('track was not unpublished because no publication was found', Object.assign(Object.assign({}, this.logContext), pubLogContext));\n return undefined;\n }\n track = publication.track;\n track.off(TrackEvent.Muted, this.onTrackMuted);\n track.off(TrackEvent.Unmuted, this.onTrackUnmuted);\n track.off(TrackEvent.Ended, this.handleTrackEnded);\n track.off(TrackEvent.UpstreamPaused, this.onTrackUpstreamPaused);\n track.off(TrackEvent.UpstreamResumed, this.onTrackUpstreamResumed);\n track.off(TrackEvent.AudioTrackFeatureUpdate, this.onTrackFeatureUpdate);\n if (stopOnUnpublish === undefined) {\n stopOnUnpublish = (_b = (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.stopLocalTrackOnUnpublish) !== null && _b !== void 0 ? _b : true;\n }\n if (stopOnUnpublish) {\n track.stop();\n }\n let negotiationNeeded = false;\n const trackSender = track.sender;\n track.sender = undefined;\n if (this.engine.pcManager && this.engine.pcManager.currentState < PCTransportState.FAILED && trackSender) {\n try {\n for (const transceiver of this.engine.pcManager.publisher.getTransceivers()) {\n // if sender is not currently sending (after replaceTrack(null))\n // removeTrack would have no effect.\n // to ensure we end up successfully removing the track, manually set\n // the transceiver to inactive\n if (transceiver.sender === trackSender) {\n transceiver.direction = 'inactive';\n negotiationNeeded = true;\n }\n }\n if (this.engine.removeTrack(trackSender)) {\n negotiationNeeded = true;\n }\n if (track instanceof LocalVideoTrack) {\n for (const [, trackInfo] of track.simulcastCodecs) {\n if (trackInfo.sender) {\n if (this.engine.removeTrack(trackInfo.sender)) {\n negotiationNeeded = true;\n }\n trackInfo.sender = undefined;\n }\n }\n track.simulcastCodecs.clear();\n }\n } catch (e) {\n this.log.warn('failed to unpublish track', Object.assign(Object.assign(Object.assign({}, this.logContext), pubLogContext), {\n error: e\n }));\n }\n }\n // remove from our maps\n this.trackPublications.delete(publication.trackSid);\n switch (publication.kind) {\n case Track.Kind.Audio:\n this.audioTrackPublications.delete(publication.trackSid);\n break;\n case Track.Kind.Video:\n this.videoTrackPublications.delete(publication.trackSid);\n break;\n }\n this.emit(ParticipantEvent.LocalTrackUnpublished, publication);\n publication.setTrack(undefined);\n if (negotiationNeeded) {\n yield this.engine.negotiate();\n }\n return publication;\n });\n }\n unpublishTracks(tracks) {\n return __awaiter(this, void 0, void 0, function* () {\n const results = yield Promise.all(tracks.map(track => this.unpublishTrack(track)));\n return results.filter(track => track instanceof LocalTrackPublication);\n });\n }\n republishAllTracks(options_1) {\n return __awaiter(this, arguments, void 0, function (options) {\n var _this3 = this;\n let restartTracks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return function* () {\n if (_this3.republishPromise) {\n yield _this3.republishPromise;\n }\n _this3.republishPromise = new Promise((resolve, reject) => __awaiter(_this3, void 0, void 0, function* () {\n try {\n const localPubs = [];\n this.trackPublications.forEach(pub => {\n if (pub.track) {\n if (options) {\n pub.options = Object.assign(Object.assign({}, pub.options), options);\n }\n localPubs.push(pub);\n }\n });\n yield Promise.all(localPubs.map(pub => __awaiter(this, void 0, void 0, function* () {\n const track = pub.track;\n yield this.unpublishTrack(track, false);\n if (restartTracks && !track.isMuted && track.source !== Track.Source.ScreenShare && track.source !== Track.Source.ScreenShareAudio && (track instanceof LocalAudioTrack || track instanceof LocalVideoTrack) && !track.isUserProvided) {\n // generally we need to restart the track before publishing, often a full reconnect\n // is necessary because computer had gone to sleep.\n this.log.debug('restarting existing track', Object.assign(Object.assign({}, this.logContext), {\n track: pub.trackSid\n }));\n yield track.restartTrack();\n }\n yield this.publishOrRepublishTrack(track, pub.options, true);\n })));\n resolve();\n } catch (error) {\n reject(error);\n } finally {\n this.republishPromise = undefined;\n }\n }));\n yield _this3.republishPromise;\n }();\n });\n }\n /**\n * Publish a new data payload to the room. Data will be forwarded to each\n * participant in the room if the destination field in publishOptions is empty\n *\n * @param data Uint8Array of the payload. To send string data, use TextEncoder.encode\n * @param options optionally specify a `reliable`, `topic` and `destination`\n */\n publishData(data_1) {\n return __awaiter(this, arguments, void 0, function (data) {\n var _this4 = this;\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n const kind = options.reliable ? DataPacket_Kind.RELIABLE : DataPacket_Kind.LOSSY;\n const destinationIdentities = options.destinationIdentities;\n const topic = options.topic;\n const packet = new DataPacket({\n kind: kind,\n value: {\n case: 'user',\n value: new UserPacket({\n participantIdentity: _this4.identity,\n payload: data,\n destinationIdentities,\n topic\n })\n }\n });\n yield _this4.engine.sendDataPacket(packet, kind);\n }();\n });\n }\n /**\n * Publish SIP DTMF message to the room.\n *\n * @param code DTMF code\n * @param digit DTMF digit\n */\n publishDtmf(code, digit) {\n return __awaiter(this, void 0, void 0, function* () {\n const packet = new DataPacket({\n kind: DataPacket_Kind.RELIABLE,\n value: {\n case: 'sipDtmf',\n value: new SipDTMF({\n code: code,\n digit: digit\n })\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n });\n }\n sendChatMessage(text) {\n return __awaiter(this, void 0, void 0, function* () {\n const msg = {\n id: crypto.randomUUID(),\n message: text,\n timestamp: Date.now()\n };\n const packet = new DataPacket({\n value: {\n case: 'chatMessage',\n value: new ChatMessage(Object.assign(Object.assign({}, msg), {\n timestamp: protoInt64.parse(msg.timestamp)\n }))\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n this.emit(ParticipantEvent.ChatMessage, msg);\n return msg;\n });\n }\n editChatMessage(editText, originalMessage) {\n return __awaiter(this, void 0, void 0, function* () {\n const msg = Object.assign(Object.assign({}, originalMessage), {\n message: editText,\n editTimestamp: Date.now()\n });\n const packet = new DataPacket({\n value: {\n case: 'chatMessage',\n value: new ChatMessage(Object.assign(Object.assign({}, msg), {\n timestamp: protoInt64.parse(msg.timestamp),\n editTimestamp: protoInt64.parse(msg.editTimestamp)\n }))\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n this.emit(ParticipantEvent.ChatMessage, msg);\n return msg;\n });\n }\n /**\n * Initiate an RPC call to a remote participant\n * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}\n * @returns A promise that resolves with the response payload or rejects with an error.\n * @throws Error on failure. Details in `message`.\n */\n performRpc(_a) {\n return __awaiter(this, arguments, void 0, function (_ref3) {\n var _this5 = this;\n let {\n destinationIdentity,\n method,\n payload,\n responseTimeout = 10000\n } = _ref3;\n return function* () {\n const maxRoundTripLatency = 2000;\n return new Promise((resolve, reject) => __awaiter(_this5, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n if (byteLength(payload) > MAX_PAYLOAD_BYTES) {\n reject(RpcError.builtIn('REQUEST_PAYLOAD_TOO_LARGE'));\n return;\n }\n if (((_b = (_a = this.engine.latestJoinResponse) === null || _a === void 0 ? void 0 : _a.serverInfo) === null || _b === void 0 ? void 0 : _b.version) && compareVersions((_d = (_c = this.engine.latestJoinResponse) === null || _c === void 0 ? void 0 : _c.serverInfo) === null || _d === void 0 ? void 0 : _d.version, '1.8.0') < 0) {\n reject(RpcError.builtIn('UNSUPPORTED_SERVER'));\n return;\n }\n const id = crypto.randomUUID();\n yield this.publishRpcRequest(destinationIdentity, id, method, payload, responseTimeout - maxRoundTripLatency);\n const ackTimeoutId = setTimeout(() => {\n this.pendingAcks.delete(id);\n reject(RpcError.builtIn('CONNECTION_TIMEOUT'));\n this.pendingResponses.delete(id);\n clearTimeout(responseTimeoutId);\n }, maxRoundTripLatency);\n this.pendingAcks.set(id, {\n resolve: () => {\n clearTimeout(ackTimeoutId);\n },\n participantIdentity: destinationIdentity\n });\n const responseTimeoutId = setTimeout(() => {\n this.pendingResponses.delete(id);\n reject(RpcError.builtIn('RESPONSE_TIMEOUT'));\n }, responseTimeout);\n this.pendingResponses.set(id, {\n resolve: (responsePayload, responseError) => {\n clearTimeout(responseTimeoutId);\n if (this.pendingAcks.has(id)) {\n console.warn('RPC response received before ack', id);\n this.pendingAcks.delete(id);\n clearTimeout(ackTimeoutId);\n }\n if (responseError) {\n reject(responseError);\n } else {\n resolve(responsePayload !== null && responsePayload !== void 0 ? responsePayload : '');\n }\n },\n participantIdentity: destinationIdentity\n });\n }));\n }();\n });\n }\n /**\n * Establishes the participant as a receiver for calls of the specified RPC method.\n * Will overwrite any existing callback for the same method.\n *\n * @param method - The name of the indicated RPC method\n * @param handler - Will be invoked when an RPC request for this method is received\n * @returns A promise that resolves when the method is successfully registered\n *\n * @example\n * ```typescript\n * room.localParticipant?.registerRpcMethod(\n * 'greet',\n * async (data: RpcInvocationData) => {\n * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);\n * return `Hello, ${data.callerIdentity}!`;\n * }\n * );\n * ```\n *\n * The handler should return a Promise that resolves to a string.\n * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.\n *\n * You may throw errors of type `RpcError` with a string `message` in the handler,\n * and they will be received on the caller's side with the message intact.\n * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` (\"Application Error\").\n */\n registerRpcMethod(method, handler) {\n this.rpcHandlers.set(method, handler);\n }\n /**\n * Unregisters a previously registered RPC method.\n *\n * @param method - The name of the RPC method to unregister\n */\n unregisterRpcMethod(method) {\n this.rpcHandlers.delete(method);\n }\n /**\n * Control who can subscribe to LocalParticipant's published tracks.\n *\n * By default, all participants can subscribe. This allows fine-grained control over\n * who is able to subscribe at a participant and track level.\n *\n * Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and\n * [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks\n * will not grant permissions to any participants and will require a subsequent\n * permissions update to allow subscription.\n *\n * @param allParticipantsAllowed Allows all participants to subscribe all tracks.\n * Takes precedence over [[participantTrackPermissions]] if set to true.\n * By default this is set to true.\n * @param participantTrackPermissions Full list of individual permissions per\n * participant/track. Any omitted participants will not receive any permissions.\n */\n setTrackSubscriptionPermissions(allParticipantsAllowed) {\n let participantTrackPermissions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n this.participantTrackPermissions = participantTrackPermissions;\n this.allParticipantsAllowedToSubscribe = allParticipantsAllowed;\n if (!this.engine.client.isDisconnected) {\n this.updateTrackSubscriptionPermissions();\n }\n }\n handleIncomingRpcAck(requestId) {\n const handler = this.pendingAcks.get(requestId);\n if (handler) {\n handler.resolve();\n this.pendingAcks.delete(requestId);\n } else {\n console.error('Ack received for unexpected RPC request', requestId);\n }\n }\n handleIncomingRpcResponse(requestId, payload, error) {\n const handler = this.pendingResponses.get(requestId);\n if (handler) {\n handler.resolve(payload, error);\n this.pendingResponses.delete(requestId);\n } else {\n console.error('Response received for unexpected RPC request', requestId);\n }\n }\n handleIncomingRpcRequest(callerIdentity, requestId, method, payload, responseTimeout, version) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.publishRpcAck(callerIdentity, requestId);\n if (version !== 1) {\n yield this.publishRpcResponse(callerIdentity, requestId, null, RpcError.builtIn('UNSUPPORTED_VERSION'));\n return;\n }\n const handler = this.rpcHandlers.get(method);\n if (!handler) {\n yield this.publishRpcResponse(callerIdentity, requestId, null, RpcError.builtIn('UNSUPPORTED_METHOD'));\n return;\n }\n let responseError = null;\n let responsePayload = null;\n try {\n const response = yield handler({\n requestId,\n callerIdentity,\n payload,\n responseTimeout\n });\n if (byteLength(response) > MAX_PAYLOAD_BYTES) {\n responseError = RpcError.builtIn('RESPONSE_PAYLOAD_TOO_LARGE');\n console.warn(\"RPC Response payload too large for \".concat(method));\n } else {\n responsePayload = response;\n }\n } catch (error) {\n if (error instanceof RpcError) {\n responseError = error;\n } else {\n console.warn(\"Uncaught error returned by RPC handler for \".concat(method, \". Returning APPLICATION_ERROR instead.\"), error);\n responseError = RpcError.builtIn('APPLICATION_ERROR');\n }\n }\n yield this.publishRpcResponse(callerIdentity, requestId, responsePayload, responseError);\n });\n }\n /** @internal */\n publishRpcRequest(destinationIdentity, requestId, method, payload, responseTimeout) {\n return __awaiter(this, void 0, void 0, function* () {\n const packet = new DataPacket({\n destinationIdentities: [destinationIdentity],\n kind: DataPacket_Kind.RELIABLE,\n value: {\n case: 'rpcRequest',\n value: new RpcRequest({\n id: requestId,\n method,\n payload,\n responseTimeoutMs: responseTimeout,\n version: 1\n })\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n });\n }\n /** @internal */\n publishRpcResponse(destinationIdentity, requestId, payload, error) {\n return __awaiter(this, void 0, void 0, function* () {\n const packet = new DataPacket({\n destinationIdentities: [destinationIdentity],\n kind: DataPacket_Kind.RELIABLE,\n value: {\n case: 'rpcResponse',\n value: new RpcResponse({\n requestId,\n value: error ? {\n case: 'error',\n value: error.toProto()\n } : {\n case: 'payload',\n value: payload !== null && payload !== void 0 ? payload : ''\n }\n })\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n });\n }\n /** @internal */\n publishRpcAck(destinationIdentity, requestId) {\n return __awaiter(this, void 0, void 0, function* () {\n const packet = new DataPacket({\n destinationIdentities: [destinationIdentity],\n kind: DataPacket_Kind.RELIABLE,\n value: {\n case: 'rpcAck',\n value: new RpcAck({\n requestId\n })\n }\n });\n yield this.engine.sendDataPacket(packet, DataPacket_Kind.RELIABLE);\n });\n }\n /** @internal */\n handleParticipantDisconnected(participantIdentity) {\n for (const [id, {\n participantIdentity: pendingIdentity\n }] of this.pendingAcks) {\n if (pendingIdentity === participantIdentity) {\n this.pendingAcks.delete(id);\n }\n }\n for (const [id, {\n participantIdentity: pendingIdentity,\n resolve\n }] of this.pendingResponses) {\n if (pendingIdentity === participantIdentity) {\n resolve(null, RpcError.builtIn('RECIPIENT_DISCONNECTED'));\n this.pendingResponses.delete(id);\n }\n }\n }\n /** @internal */\n setEnabledPublishCodecs(codecs) {\n this.enabledPublishVideoCodecs = codecs.filter(c => c.mime.split('/')[0].toLowerCase() === 'video');\n }\n /** @internal */\n updateInfo(info) {\n if (info.sid !== this.sid) {\n // drop updates that specify a wrong sid.\n // the sid for local participant is only explicitly set on join and full reconnect\n return false;\n }\n if (!super.updateInfo(info)) {\n return false;\n }\n // reconcile track mute status.\n // if server's track mute status doesn't match actual, we'll have to update\n // the server's copy\n info.tracks.forEach(ti => {\n var _a, _b;\n const pub = this.trackPublications.get(ti.sid);\n if (pub) {\n const mutedOnServer = pub.isMuted || ((_b = (_a = pub.track) === null || _a === void 0 ? void 0 : _a.isUpstreamPaused) !== null && _b !== void 0 ? _b : false);\n if (mutedOnServer !== ti.muted) {\n this.log.debug('updating server mute state after reconcile', Object.assign(Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(pub)), {\n mutedOnServer\n }));\n this.engine.client.sendMuteTrack(ti.sid, mutedOnServer);\n }\n }\n });\n return true;\n }\n getPublicationForTrack(track) {\n let publication;\n this.trackPublications.forEach(pub => {\n const localTrack = pub.track;\n if (!localTrack) {\n return;\n }\n // this looks overly complicated due to this object tree\n if (track instanceof MediaStreamTrack) {\n if (localTrack instanceof LocalAudioTrack || localTrack instanceof LocalVideoTrack) {\n if (localTrack.mediaStreamTrack === track) {\n publication = pub;\n }\n }\n } else if (track === localTrack) {\n publication = pub;\n }\n });\n return publication;\n }\n waitForPendingPublicationOfSource(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const publishPromiseEntry = Array.from(this.pendingPublishPromises.entries()).find(_ref4 => {\n let [pendingTrack] = _ref4;\n return pendingTrack.source === source;\n });\n if (publishPromiseEntry) {\n return publishPromiseEntry[1];\n }\n });\n }\n}\n\nclass RemoteTrackPublication extends TrackPublication {\n constructor(kind, ti, autoSubscribe, loggerOptions) {\n super(kind, ti.sid, ti.name, loggerOptions);\n this.track = undefined;\n /** @internal */\n this.allowed = true;\n this.disabled = false;\n this.currentVideoQuality = VideoQuality.HIGH;\n this.handleEnded = track => {\n this.setTrack(undefined);\n this.emit(TrackEvent.Ended, track);\n };\n this.handleVisibilityChange = visible => {\n this.log.debug(\"adaptivestream video visibility \".concat(this.trackSid, \", visible=\").concat(visible), this.logContext);\n this.disabled = !visible;\n this.emitTrackUpdate();\n };\n this.handleVideoDimensionsChange = dimensions => {\n this.log.debug(\"adaptivestream video dimensions \".concat(dimensions.width, \"x\").concat(dimensions.height), this.logContext);\n this.videoDimensions = dimensions;\n this.emitTrackUpdate();\n };\n this.subscribed = autoSubscribe;\n this.updateInfo(ti);\n }\n /**\n * Subscribe or unsubscribe to this remote track\n * @param subscribed true to subscribe to a track, false to unsubscribe\n */\n setSubscribed(subscribed) {\n const prevStatus = this.subscriptionStatus;\n const prevPermission = this.permissionStatus;\n this.subscribed = subscribed;\n // reset allowed status when desired subscription state changes\n // server will notify client via signal message if it's not allowed\n if (subscribed) {\n this.allowed = true;\n }\n const sub = new UpdateSubscription({\n trackSids: [this.trackSid],\n subscribe: this.subscribed,\n participantTracks: [new ParticipantTracks({\n // sending an empty participant id since TrackPublication doesn't keep it\n // this is filled in by the participant that receives this message\n participantSid: '',\n trackSids: [this.trackSid]\n })]\n });\n this.emit(TrackEvent.UpdateSubscription, sub);\n this.emitSubscriptionUpdateIfChanged(prevStatus);\n this.emitPermissionUpdateIfChanged(prevPermission);\n }\n get subscriptionStatus() {\n if (this.subscribed === false) {\n return TrackPublication.SubscriptionStatus.Unsubscribed;\n }\n if (!super.isSubscribed) {\n return TrackPublication.SubscriptionStatus.Desired;\n }\n return TrackPublication.SubscriptionStatus.Subscribed;\n }\n get permissionStatus() {\n return this.allowed ? TrackPublication.PermissionStatus.Allowed : TrackPublication.PermissionStatus.NotAllowed;\n }\n /**\n * Returns true if track is subscribed, and ready for playback\n */\n get isSubscribed() {\n if (this.subscribed === false) {\n return false;\n }\n return super.isSubscribed;\n }\n // returns client's desire to subscribe to a track, also true if autoSubscribe is enabled\n get isDesired() {\n return this.subscribed !== false;\n }\n get isEnabled() {\n return !this.disabled;\n }\n /**\n * disable server from sending down data for this track. this is useful when\n * the participant is off screen, you may disable streaming down their video\n * to reduce bandwidth requirements\n * @param enabled\n */\n setEnabled(enabled) {\n if (!this.isManualOperationAllowed() || this.disabled === !enabled) {\n return;\n }\n this.disabled = !enabled;\n this.emitTrackUpdate();\n }\n /**\n * for tracks that support simulcasting, adjust subscribed quality\n *\n * This indicates the highest quality the client can accept. if network\n * bandwidth does not allow, server will automatically reduce quality to\n * optimize for uninterrupted video\n */\n setVideoQuality(quality) {\n if (!this.isManualOperationAllowed() || this.currentVideoQuality === quality) {\n return;\n }\n this.currentVideoQuality = quality;\n this.videoDimensions = undefined;\n this.emitTrackUpdate();\n }\n setVideoDimensions(dimensions) {\n var _a, _b;\n if (!this.isManualOperationAllowed()) {\n return;\n }\n if (((_a = this.videoDimensions) === null || _a === void 0 ? void 0 : _a.width) === dimensions.width && ((_b = this.videoDimensions) === null || _b === void 0 ? void 0 : _b.height) === dimensions.height) {\n return;\n }\n if (this.track instanceof RemoteVideoTrack) {\n this.videoDimensions = dimensions;\n }\n this.currentVideoQuality = undefined;\n this.emitTrackUpdate();\n }\n setVideoFPS(fps) {\n if (!this.isManualOperationAllowed()) {\n return;\n }\n if (!(this.track instanceof RemoteVideoTrack)) {\n return;\n }\n if (this.fps === fps) {\n return;\n }\n this.fps = fps;\n this.emitTrackUpdate();\n }\n get videoQuality() {\n return this.currentVideoQuality;\n }\n /** @internal */\n setTrack(track) {\n const prevStatus = this.subscriptionStatus;\n const prevPermission = this.permissionStatus;\n const prevTrack = this.track;\n if (prevTrack === track) {\n return;\n }\n if (prevTrack) {\n // unregister listener\n prevTrack.off(TrackEvent.VideoDimensionsChanged, this.handleVideoDimensionsChange);\n prevTrack.off(TrackEvent.VisibilityChanged, this.handleVisibilityChange);\n prevTrack.off(TrackEvent.Ended, this.handleEnded);\n prevTrack.detach();\n prevTrack.stopMonitor();\n this.emit(TrackEvent.Unsubscribed, prevTrack);\n }\n super.setTrack(track);\n if (track) {\n track.sid = this.trackSid;\n track.on(TrackEvent.VideoDimensionsChanged, this.handleVideoDimensionsChange);\n track.on(TrackEvent.VisibilityChanged, this.handleVisibilityChange);\n track.on(TrackEvent.Ended, this.handleEnded);\n this.emit(TrackEvent.Subscribed, track);\n }\n this.emitPermissionUpdateIfChanged(prevPermission);\n this.emitSubscriptionUpdateIfChanged(prevStatus);\n }\n /** @internal */\n setAllowed(allowed) {\n const prevStatus = this.subscriptionStatus;\n const prevPermission = this.permissionStatus;\n this.allowed = allowed;\n this.emitPermissionUpdateIfChanged(prevPermission);\n this.emitSubscriptionUpdateIfChanged(prevStatus);\n }\n /** @internal */\n setSubscriptionError(error) {\n this.emit(TrackEvent.SubscriptionFailed, error);\n }\n /** @internal */\n updateInfo(info) {\n super.updateInfo(info);\n const prevMetadataMuted = this.metadataMuted;\n this.metadataMuted = info.muted;\n if (this.track) {\n this.track.setMuted(info.muted);\n } else if (prevMetadataMuted !== info.muted) {\n this.emit(info.muted ? TrackEvent.Muted : TrackEvent.Unmuted);\n }\n }\n emitSubscriptionUpdateIfChanged(previousStatus) {\n const currentStatus = this.subscriptionStatus;\n if (previousStatus === currentStatus) {\n return;\n }\n this.emit(TrackEvent.SubscriptionStatusChanged, currentStatus, previousStatus);\n }\n emitPermissionUpdateIfChanged(previousPermissionStatus) {\n const currentPermissionStatus = this.permissionStatus;\n if (currentPermissionStatus !== previousPermissionStatus) {\n this.emit(TrackEvent.SubscriptionPermissionChanged, this.permissionStatus, previousPermissionStatus);\n }\n }\n isManualOperationAllowed() {\n if (this.kind === Track.Kind.Video && this.isAdaptiveStream) {\n this.log.warn('adaptive stream is enabled, cannot change video track settings', this.logContext);\n return false;\n }\n if (!this.isDesired) {\n this.log.warn('cannot update track settings when not subscribed', this.logContext);\n return false;\n }\n return true;\n }\n get isAdaptiveStream() {\n return this.track instanceof RemoteVideoTrack && this.track.isAdaptiveStream;\n }\n /* @internal */\n emitTrackUpdate() {\n const settings = new UpdateTrackSettings({\n trackSids: [this.trackSid],\n disabled: this.disabled,\n fps: this.fps\n });\n if (this.videoDimensions) {\n settings.width = Math.ceil(this.videoDimensions.width);\n settings.height = Math.ceil(this.videoDimensions.height);\n } else if (this.currentVideoQuality !== undefined) {\n settings.quality = this.currentVideoQuality;\n } else {\n // defaults to high quality\n settings.quality = VideoQuality.HIGH;\n }\n this.emit(TrackEvent.UpdateSettings, settings);\n }\n}\n\nclass RemoteParticipant extends Participant {\n /** @internal */\n static fromParticipantInfo(signalClient, pi, loggerOptions) {\n return new RemoteParticipant(signalClient, pi.sid, pi.identity, pi.name, pi.metadata, loggerOptions, pi.kind);\n }\n get logContext() {\n return Object.assign(Object.assign({}, super.logContext), {\n rpID: this.sid,\n remoteParticipant: this.identity\n });\n }\n /** @internal */\n constructor(signalClient, sid, identity, name, metadata, loggerOptions) {\n let kind = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : ParticipantInfo_Kind.STANDARD;\n super(sid, identity || '', name, metadata, loggerOptions, kind);\n this.signalClient = signalClient;\n this.trackPublications = new Map();\n this.audioTrackPublications = new Map();\n this.videoTrackPublications = new Map();\n this.volumeMap = new Map();\n }\n addTrackPublication(publication) {\n super.addTrackPublication(publication);\n // register action events\n publication.on(TrackEvent.UpdateSettings, settings => {\n this.log.debug('send update settings', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(publication)));\n this.signalClient.sendUpdateTrackSettings(settings);\n });\n publication.on(TrackEvent.UpdateSubscription, sub => {\n sub.participantTracks.forEach(pt => {\n pt.participantSid = this.sid;\n });\n this.signalClient.sendUpdateSubscription(sub);\n });\n publication.on(TrackEvent.SubscriptionPermissionChanged, status => {\n this.emit(ParticipantEvent.TrackSubscriptionPermissionChanged, publication, status);\n });\n publication.on(TrackEvent.SubscriptionStatusChanged, status => {\n this.emit(ParticipantEvent.TrackSubscriptionStatusChanged, publication, status);\n });\n publication.on(TrackEvent.Subscribed, track => {\n this.emit(ParticipantEvent.TrackSubscribed, track, publication);\n });\n publication.on(TrackEvent.Unsubscribed, previousTrack => {\n this.emit(ParticipantEvent.TrackUnsubscribed, previousTrack, publication);\n });\n publication.on(TrackEvent.SubscriptionFailed, error => {\n this.emit(ParticipantEvent.TrackSubscriptionFailed, publication.trackSid, error);\n });\n }\n getTrackPublication(source) {\n const track = super.getTrackPublication(source);\n if (track) {\n return track;\n }\n }\n getTrackPublicationByName(name) {\n const track = super.getTrackPublicationByName(name);\n if (track) {\n return track;\n }\n }\n /**\n * sets the volume on the participant's audio track\n * by default, this affects the microphone publication\n * a different source can be passed in as a second argument\n * if no track exists the volume will be applied when the microphone track is added\n */\n setVolume(volume) {\n let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Track.Source.Microphone;\n this.volumeMap.set(source, volume);\n const audioPublication = this.getTrackPublication(source);\n if (audioPublication && audioPublication.track) {\n audioPublication.track.setVolume(volume);\n }\n }\n /**\n * gets the volume on the participant's microphone track\n */\n getVolume() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Track.Source.Microphone;\n const audioPublication = this.getTrackPublication(source);\n if (audioPublication && audioPublication.track) {\n return audioPublication.track.getVolume();\n }\n return this.volumeMap.get(source);\n }\n /** @internal */\n addSubscribedMediaTrack(mediaTrack, sid, mediaStream, receiver, adaptiveStreamSettings, triesLeft) {\n // find the track publication\n // it's possible for the media track to arrive before participant info\n let publication = this.getTrackPublicationBySid(sid);\n // it's also possible that the browser didn't honor our original track id\n // FireFox would use its own local uuid instead of server track id\n if (!publication) {\n if (!sid.startsWith('TR')) {\n // find the first track that matches type\n this.trackPublications.forEach(p => {\n if (!publication && mediaTrack.kind === p.kind.toString()) {\n publication = p;\n }\n });\n }\n }\n // when we couldn't locate the track, it's possible that the metadata hasn't\n // yet arrived. Wait a bit longer for it to arrive, or fire an error\n if (!publication) {\n if (triesLeft === 0) {\n this.log.error('could not find published track', Object.assign(Object.assign({}, this.logContext), {\n trackSid: sid\n }));\n this.emit(ParticipantEvent.TrackSubscriptionFailed, sid);\n return;\n }\n if (triesLeft === undefined) triesLeft = 20;\n setTimeout(() => {\n this.addSubscribedMediaTrack(mediaTrack, sid, mediaStream, receiver, adaptiveStreamSettings, triesLeft - 1);\n }, 150);\n return;\n }\n if (mediaTrack.readyState === 'ended') {\n this.log.error('unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(publication)));\n this.emit(ParticipantEvent.TrackSubscriptionFailed, sid);\n return;\n }\n const isVideo = mediaTrack.kind === 'video';\n let track;\n if (isVideo) {\n track = new RemoteVideoTrack(mediaTrack, sid, receiver, adaptiveStreamSettings);\n } else {\n track = new RemoteAudioTrack(mediaTrack, sid, receiver, this.audioContext, this.audioOutput);\n }\n // set track info\n track.source = publication.source;\n // keep publication's muted status\n track.isMuted = publication.isMuted;\n track.setMediaStream(mediaStream);\n track.start();\n publication.setTrack(track);\n // set participant volumes on new audio tracks\n if (this.volumeMap.has(publication.source) && track instanceof RemoteAudioTrack) {\n track.setVolume(this.volumeMap.get(publication.source));\n }\n return publication;\n }\n /** @internal */\n get hasMetadata() {\n return !!this.participantInfo;\n }\n /**\n * @internal\n */\n getTrackPublicationBySid(sid) {\n return this.trackPublications.get(sid);\n }\n /** @internal */\n updateInfo(info) {\n if (!super.updateInfo(info)) {\n return false;\n }\n // we are getting a list of all available tracks, reconcile in here\n // and send out events for changes\n // reconcile track publications, publish events only if metadata is already there\n // i.e. changes since the local participant has joined\n const validTracks = new Map();\n const newTracks = new Map();\n info.tracks.forEach(ti => {\n var _a, _b;\n let publication = this.getTrackPublicationBySid(ti.sid);\n if (!publication) {\n // new publication\n const kind = Track.kindFromProto(ti.type);\n if (!kind) {\n return;\n }\n publication = new RemoteTrackPublication(kind, ti, (_a = this.signalClient.connectOptions) === null || _a === void 0 ? void 0 : _a.autoSubscribe, {\n loggerContextCb: () => this.logContext,\n loggerName: (_b = this.loggerOptions) === null || _b === void 0 ? void 0 : _b.loggerName\n });\n publication.updateInfo(ti);\n newTracks.set(ti.sid, publication);\n const existingTrackOfSource = Array.from(this.trackPublications.values()).find(publishedTrack => publishedTrack.source === (publication === null || publication === void 0 ? void 0 : publication.source));\n if (existingTrackOfSource && publication.source !== Track.Source.Unknown) {\n this.log.debug(\"received a second track publication for \".concat(this.identity, \" with the same source: \").concat(publication.source), Object.assign(Object.assign({}, this.logContext), {\n oldTrack: getLogContextFromTrack(existingTrackOfSource),\n newTrack: getLogContextFromTrack(publication)\n }));\n }\n this.addTrackPublication(publication);\n } else {\n publication.updateInfo(ti);\n }\n validTracks.set(ti.sid, publication);\n });\n // detect removed tracks\n this.trackPublications.forEach(publication => {\n if (!validTracks.has(publication.trackSid)) {\n this.log.trace('detected removed track on remote participant, unpublishing', Object.assign(Object.assign({}, this.logContext), getLogContextFromTrack(publication)));\n this.unpublishTrack(publication.trackSid, true);\n }\n });\n // always emit events for new publications, Room will not forward them unless it's ready\n newTracks.forEach(publication => {\n this.emit(ParticipantEvent.TrackPublished, publication);\n });\n return true;\n }\n /** @internal */\n unpublishTrack(sid, sendUnpublish) {\n const publication = this.trackPublications.get(sid);\n if (!publication) {\n return;\n }\n // also send unsubscribe, if track is actively subscribed\n const {\n track\n } = publication;\n if (track) {\n track.stop();\n publication.setTrack(undefined);\n }\n // remove track from maps only after unsubscribed has been fired\n this.trackPublications.delete(sid);\n // remove from the right type map\n switch (publication.kind) {\n case Track.Kind.Audio:\n this.audioTrackPublications.delete(sid);\n break;\n case Track.Kind.Video:\n this.videoTrackPublications.delete(sid);\n break;\n }\n if (sendUnpublish) {\n this.emit(ParticipantEvent.TrackUnpublished, publication);\n }\n }\n /**\n * @internal\n */\n setAudioOutput(output) {\n return __awaiter(this, void 0, void 0, function* () {\n this.audioOutput = output;\n const promises = [];\n this.audioTrackPublications.forEach(pub => {\n var _a;\n if (pub.track instanceof RemoteAudioTrack) {\n promises.push(pub.track.setSinkId((_a = output.deviceId) !== null && _a !== void 0 ? _a : 'default'));\n }\n });\n yield Promise.all(promises);\n });\n }\n /** @internal */\n emit(event) {\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 this.log.trace('participant event', Object.assign(Object.assign({}, this.logContext), {\n event,\n args\n }));\n return super.emit(event, ...args);\n }\n}\n\nvar ConnectionState;\n(function (ConnectionState) {\n ConnectionState[\"Disconnected\"] = \"disconnected\";\n ConnectionState[\"Connecting\"] = \"connecting\";\n ConnectionState[\"Connected\"] = \"connected\";\n ConnectionState[\"Reconnecting\"] = \"reconnecting\";\n ConnectionState[\"SignalReconnecting\"] = \"signalReconnecting\";\n})(ConnectionState || (ConnectionState = {}));\nconst connectionReconcileFrequency = 4 * 1000;\n/**\n * In LiveKit, a room is the logical grouping for a list of participants.\n * Participants in a room can publish tracks, and subscribe to others' tracks.\n *\n * a Room fires [[RoomEvent | RoomEvents]].\n *\n * @noInheritDoc\n */\nclass Room extends eventsExports.EventEmitter {\n /**\n * Creates a new Room, the primary construct for a LiveKit session.\n * @param options\n */\n constructor(options) {\n var _this;\n var _a, _b;\n super();\n _this = this;\n this.state = ConnectionState.Disconnected;\n /**\n * list of participants that are actively speaking. when this changes\n * a [[RoomEvent.ActiveSpeakersChanged]] event is fired\n */\n this.activeSpeakers = [];\n /** reflects the sender encryption status of the local participant */\n this.isE2EEEnabled = false;\n this.audioEnabled = true;\n this.isVideoPlaybackBlocked = false;\n this.log = livekitLogger;\n this.bufferedEvents = [];\n this.isResuming = false;\n this.connect = (url, token, opts) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!isBrowserSupported()) {\n if (isReactNative()) {\n throw Error(\"WebRTC isn't detected, have you called registerGlobals?\");\n } else {\n throw Error(\"LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.\");\n }\n }\n // In case a disconnect called happened right before the connect call, make sure the disconnect is completed first by awaiting its lock\n const unlockDisconnect = yield this.disconnectLock.lock();\n if (this.state === ConnectionState.Connected) {\n // when the state is reconnecting or connected, this function returns immediately\n this.log.info(\"already connected to room \".concat(this.name), this.logContext);\n unlockDisconnect();\n return Promise.resolve();\n }\n if (this.connectFuture) {\n unlockDisconnect();\n return this.connectFuture.promise;\n }\n this.setAndEmitConnectionState(ConnectionState.Connecting);\n if (((_a = this.regionUrlProvider) === null || _a === void 0 ? void 0 : _a.getServerUrl().toString()) !== url) {\n this.regionUrl = undefined;\n this.regionUrlProvider = undefined;\n }\n if (isCloud(new URL(url))) {\n if (this.regionUrlProvider === undefined) {\n this.regionUrlProvider = new RegionUrlProvider(url, token);\n } else {\n this.regionUrlProvider.updateToken(token);\n }\n // trigger the first fetch without waiting for a response\n // if initial connection fails, this will speed up picking regional url\n // on subsequent runs\n this.regionUrlProvider.fetchRegionSettings().then(settings => {\n var _a;\n (_a = this.regionUrlProvider) === null || _a === void 0 ? void 0 : _a.setServerReportedRegions(settings);\n }).catch(e => {\n this.log.warn('could not fetch region settings', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n });\n }\n const connectFn = (resolve, reject, regionUrl) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (this.abortController) {\n this.abortController.abort();\n }\n // explicit creation as local var needed to satisfy TS compiler when passing it to `attemptConnection` further down\n const abortController = new AbortController();\n this.abortController = abortController;\n // at this point the intention to connect has been signalled so we can allow cancelling of the connection via disconnect() again\n unlockDisconnect === null || unlockDisconnect === void 0 ? void 0 : unlockDisconnect();\n try {\n yield this.attemptConnection(regionUrl !== null && regionUrl !== void 0 ? regionUrl : url, token, opts, abortController);\n this.abortController = undefined;\n resolve();\n } catch (e) {\n if (this.regionUrlProvider && e instanceof ConnectionError && e.reason !== ConnectionErrorReason.Cancelled && e.reason !== ConnectionErrorReason.NotAllowed) {\n let nextUrl = null;\n try {\n nextUrl = yield this.regionUrlProvider.getNextBestRegionUrl((_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal);\n } catch (error) {\n if (error instanceof ConnectionError && (error.status === 401 || error.reason === ConnectionErrorReason.Cancelled)) {\n this.handleDisconnect(this.options.stopLocalTrackOnUnpublish);\n reject(error);\n return;\n }\n }\n if (nextUrl && !((_b = this.abortController) === null || _b === void 0 ? void 0 : _b.signal.aborted)) {\n this.log.info(\"Initial connection failed with ConnectionError: \".concat(e.message, \". Retrying with another region: \").concat(nextUrl), this.logContext);\n this.recreateEngine();\n yield connectFn(resolve, reject, nextUrl);\n } else {\n this.handleDisconnect(this.options.stopLocalTrackOnUnpublish, getDisconnectReasonFromConnectionError(e));\n reject(e);\n }\n } else {\n let disconnectReason = DisconnectReason.UNKNOWN_REASON;\n if (e instanceof ConnectionError) {\n disconnectReason = getDisconnectReasonFromConnectionError(e);\n }\n this.handleDisconnect(this.options.stopLocalTrackOnUnpublish, disconnectReason);\n reject(e);\n }\n }\n });\n const regionUrl = this.regionUrl;\n this.regionUrl = undefined;\n this.connectFuture = new Future((resolve, reject) => {\n connectFn(resolve, reject, regionUrl);\n }, () => {\n this.clearConnectionFutures();\n });\n return this.connectFuture.promise;\n });\n this.connectSignal = (url, token, engine, connectOptions, roomOptions, abortController) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const joinResponse = yield engine.join(url, token, {\n autoSubscribe: connectOptions.autoSubscribe,\n adaptiveStream: typeof roomOptions.adaptiveStream === 'object' ? true : roomOptions.adaptiveStream,\n maxRetries: connectOptions.maxRetries,\n e2eeEnabled: !!this.e2eeManager,\n websocketTimeout: connectOptions.websocketTimeout\n }, abortController.signal);\n let serverInfo = joinResponse.serverInfo;\n if (!serverInfo) {\n serverInfo = {\n version: joinResponse.serverVersion,\n region: joinResponse.serverRegion\n };\n }\n this.serverInfo = serverInfo;\n this.log.debug(\"connected to Livekit Server \".concat(Object.entries(serverInfo).map(_ref => {\n let [key, value] = _ref;\n return \"\".concat(key, \": \").concat(value);\n }).join(', ')), {\n room: (_a = joinResponse.room) === null || _a === void 0 ? void 0 : _a.name,\n roomSid: (_b = joinResponse.room) === null || _b === void 0 ? void 0 : _b.sid,\n identity: (_c = joinResponse.participant) === null || _c === void 0 ? void 0 : _c.identity\n });\n if (!serverInfo.version) {\n throw new UnsupportedServer('unknown server version');\n }\n if (serverInfo.version === '0.15.1' && this.options.dynacast) {\n this.log.debug('disabling dynacast due to server version', this.logContext);\n // dynacast has a bug in 0.15.1, so we cannot use it then\n roomOptions.dynacast = false;\n }\n return joinResponse;\n });\n this.applyJoinResponse = joinResponse => {\n const pi = joinResponse.participant;\n this.localParticipant.sid = pi.sid;\n this.localParticipant.identity = pi.identity;\n this.localParticipant.setEnabledPublishCodecs(joinResponse.enabledPublishCodecs);\n if (this.options.e2ee && this.e2eeManager) {\n try {\n this.e2eeManager.setSifTrailer(joinResponse.sifTrailer);\n } catch (e) {\n this.log.error(e instanceof Error ? e.message : 'Could not set SifTrailer', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n }\n // populate remote participants, these should not trigger new events\n this.handleParticipantUpdates([pi, ...joinResponse.otherParticipants]);\n if (joinResponse.room) {\n this.handleRoomUpdate(joinResponse.room);\n }\n };\n this.attemptConnection = (url, token, opts, abortController) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (this.state === ConnectionState.Reconnecting || this.isResuming || ((_a = this.engine) === null || _a === void 0 ? void 0 : _a.pendingReconnect)) {\n this.log.info('Reconnection attempt replaced by new connection attempt', this.logContext);\n // make sure we close and recreate the existing engine in order to get rid of any potentially ongoing reconnection attempts\n this.recreateEngine();\n } else {\n // create engine if previously disconnected\n this.maybeCreateEngine();\n }\n if ((_b = this.regionUrlProvider) === null || _b === void 0 ? void 0 : _b.isCloud()) {\n this.engine.setRegionUrlProvider(this.regionUrlProvider);\n }\n this.acquireAudioContext();\n this.connOptions = Object.assign(Object.assign({}, roomConnectOptionDefaults), opts);\n if (this.connOptions.rtcConfig) {\n this.engine.rtcConfig = this.connOptions.rtcConfig;\n }\n if (this.connOptions.peerConnectionTimeout) {\n this.engine.peerConnectionTimeout = this.connOptions.peerConnectionTimeout;\n }\n try {\n const joinResponse = yield this.connectSignal(url, token, this.engine, this.connOptions, this.options, abortController);\n this.applyJoinResponse(joinResponse);\n // forward metadata changed for the local participant\n this.setupLocalParticipantEvents();\n this.emit(RoomEvent.SignalConnected);\n } catch (err) {\n yield this.engine.close();\n this.recreateEngine();\n const resultingError = new ConnectionError(\"could not establish signal connection\", ConnectionErrorReason.ServerUnreachable);\n if (err instanceof Error) {\n resultingError.message = \"\".concat(resultingError.message, \": \").concat(err.message);\n }\n if (err instanceof ConnectionError) {\n resultingError.reason = err.reason;\n resultingError.status = err.status;\n }\n this.log.debug(\"error trying to establish signal connection\", Object.assign(Object.assign({}, this.logContext), {\n error: err\n }));\n throw resultingError;\n }\n if (abortController.signal.aborted) {\n yield this.engine.close();\n this.recreateEngine();\n throw new ConnectionError(\"Connection attempt aborted\", ConnectionErrorReason.Cancelled);\n }\n try {\n yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout, abortController);\n } catch (e) {\n yield this.engine.close();\n this.recreateEngine();\n throw e;\n }\n // also hook unload event\n if (isWeb() && this.options.disconnectOnPageLeave) {\n // capturing both 'pagehide' and 'beforeunload' to capture broadest set of browser behaviors\n window.addEventListener('pagehide', this.onPageLeave);\n window.addEventListener('beforeunload', this.onPageLeave);\n }\n if (isWeb()) {\n document.addEventListener('freeze', this.onPageLeave);\n (_c = navigator.mediaDevices) === null || _c === void 0 ? void 0 : _c.addEventListener('devicechange', this.handleDeviceChange);\n }\n this.setAndEmitConnectionState(ConnectionState.Connected);\n this.emit(RoomEvent.Connected);\n this.registerConnectionReconcile();\n });\n /**\n * disconnects the room, emits [[RoomEvent.Disconnected]]\n */\n this.disconnect = function () {\n for (var _len = arguments.length, args_1 = new Array(_len), _key = 0; _key < _len; _key++) {\n args_1[_key] = arguments[_key];\n }\n return __awaiter(_this, [...args_1], void 0, function () {\n var _this2 = this;\n let stopTracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return function* () {\n var _a, _b, _c, _d;\n const unlock = yield _this2.disconnectLock.lock();\n try {\n if (_this2.state === ConnectionState.Disconnected) {\n _this2.log.debug('already disconnected', _this2.logContext);\n return;\n }\n _this2.log.info('disconnect from room', Object.assign({}, _this2.logContext));\n if (_this2.state === ConnectionState.Connecting || _this2.state === ConnectionState.Reconnecting || _this2.isResuming) {\n // try aborting pending connection attempt\n _this2.log.warn('abort connection attempt', _this2.logContext);\n (_a = _this2.abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // in case the abort controller didn't manage to cancel the connection attempt, reject the connect promise explicitly\n (_c = (_b = _this2.connectFuture) === null || _b === void 0 ? void 0 : _b.reject) === null || _c === void 0 ? void 0 : _c.call(_b, new ConnectionError('Client initiated disconnect', ConnectionErrorReason.Cancelled));\n _this2.connectFuture = undefined;\n }\n // send leave\n if (!((_d = _this2.engine) === null || _d === void 0 ? void 0 : _d.client.isDisconnected)) {\n yield _this2.engine.client.sendLeave();\n }\n // close engine (also closes client)\n if (_this2.engine) {\n yield _this2.engine.close();\n }\n _this2.handleDisconnect(stopTracks, DisconnectReason.CLIENT_INITIATED);\n /* @ts-ignore */\n _this2.engine = undefined;\n } finally {\n unlock();\n }\n }();\n });\n };\n this.onPageLeave = () => __awaiter(this, void 0, void 0, function* () {\n this.log.info('Page leave detected, disconnecting', this.logContext);\n yield this.disconnect();\n });\n /**\n * Browsers have different policies regarding audio playback. Most requiring\n * some form of user interaction (click/tap/etc).\n * In those cases, audio will be silent until a click/tap triggering one of the following\n * - `startAudio`\n * - `getUserMedia`\n */\n this.startAudio = () => __awaiter(this, void 0, void 0, function* () {\n const elements = [];\n const browser = getBrowser();\n if (browser && browser.os === 'iOS') {\n /**\n * iOS blocks audio element playback if\n * - user is not publishing audio themselves and\n * - no other audio source is playing\n *\n * as a workaround, we create an audio element with an empty track, so that\n * silent audio is always playing\n */\n const audioId = 'livekit-dummy-audio-el';\n let dummyAudioEl = document.getElementById(audioId);\n if (!dummyAudioEl) {\n dummyAudioEl = document.createElement('audio');\n dummyAudioEl.id = audioId;\n dummyAudioEl.autoplay = true;\n dummyAudioEl.hidden = true;\n const track = getEmptyAudioStreamTrack();\n track.enabled = true;\n const stream = new MediaStream([track]);\n dummyAudioEl.srcObject = stream;\n document.addEventListener('visibilitychange', () => {\n if (!dummyAudioEl) {\n return;\n }\n // set the srcObject to null on page hide in order to prevent lock screen controls to show up for it\n dummyAudioEl.srcObject = document.hidden ? null : stream;\n if (!document.hidden) {\n this.log.debug('page visible again, triggering startAudio to resume playback and update playback status', this.logContext);\n this.startAudio();\n }\n });\n document.body.append(dummyAudioEl);\n this.once(RoomEvent.Disconnected, () => {\n dummyAudioEl === null || dummyAudioEl === void 0 ? void 0 : dummyAudioEl.remove();\n dummyAudioEl = null;\n });\n }\n elements.push(dummyAudioEl);\n }\n this.remoteParticipants.forEach(p => {\n p.audioTrackPublications.forEach(t => {\n if (t.track) {\n t.track.attachedElements.forEach(e => {\n elements.push(e);\n });\n }\n });\n });\n try {\n yield Promise.all([this.acquireAudioContext(), ...elements.map(e => {\n e.muted = false;\n return e.play();\n })]);\n this.handleAudioPlaybackStarted();\n } catch (err) {\n this.handleAudioPlaybackFailed(err);\n throw err;\n }\n });\n this.startVideo = () => __awaiter(this, void 0, void 0, function* () {\n const elements = [];\n for (const p of this.remoteParticipants.values()) {\n p.videoTrackPublications.forEach(tr => {\n var _a;\n (_a = tr.track) === null || _a === void 0 ? void 0 : _a.attachedElements.forEach(el => {\n if (!elements.includes(el)) {\n elements.push(el);\n }\n });\n });\n }\n yield Promise.all(elements.map(el => el.play())).then(() => {\n this.handleVideoPlaybackStarted();\n }).catch(e => {\n if (e.name === 'NotAllowedError') {\n this.handleVideoPlaybackFailed();\n } else {\n this.log.warn('Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler', this.logContext);\n }\n });\n });\n this.handleRestarting = () => {\n this.clearConnectionReconcile();\n // in case we went from resuming to full-reconnect, make sure to reflect it on the isResuming flag\n this.isResuming = false;\n // also unwind existing participants & existing subscriptions\n for (const p of this.remoteParticipants.values()) {\n this.handleParticipantDisconnected(p.identity, p);\n }\n if (this.setAndEmitConnectionState(ConnectionState.Reconnecting)) {\n this.emit(RoomEvent.Reconnecting);\n }\n };\n this.handleSignalRestarted = joinResponse => __awaiter(this, void 0, void 0, function* () {\n this.log.debug(\"signal reconnected to server, region \".concat(joinResponse.serverRegion), Object.assign(Object.assign({}, this.logContext), {\n region: joinResponse.serverRegion\n }));\n this.bufferedEvents = [];\n this.applyJoinResponse(joinResponse);\n try {\n // unpublish & republish tracks\n yield this.localParticipant.republishAllTracks(undefined, true);\n } catch (error) {\n this.log.error('error trying to re-publish tracks after reconnection', Object.assign(Object.assign({}, this.logContext), {\n error\n }));\n }\n try {\n yield this.engine.waitForRestarted();\n this.log.debug(\"fully reconnected to server\", Object.assign(Object.assign({}, this.logContext), {\n region: joinResponse.serverRegion\n }));\n } catch (_a) {\n // reconnection failed, handleDisconnect is being invoked already, just return here\n return;\n }\n this.setAndEmitConnectionState(ConnectionState.Connected);\n this.emit(RoomEvent.Reconnected);\n this.registerConnectionReconcile();\n this.emitBufferedEvents();\n });\n this.handleParticipantUpdates = participantInfos => {\n // handle changes to participant state, and send events\n participantInfos.forEach(info => {\n var _a;\n if (info.identity === this.localParticipant.identity) {\n this.localParticipant.updateInfo(info);\n return;\n }\n // LiveKit server doesn't send identity info prior to version 1.5.2 in disconnect updates\n // so we try to map an empty identity to an already known sID manually\n if (info.identity === '') {\n info.identity = (_a = this.sidToIdentity.get(info.sid)) !== null && _a !== void 0 ? _a : '';\n }\n let remoteParticipant = this.remoteParticipants.get(info.identity);\n // when it's disconnected, send updates\n if (info.state === ParticipantInfo_State.DISCONNECTED) {\n this.handleParticipantDisconnected(info.identity, remoteParticipant);\n } else {\n // create participant if doesn't exist\n remoteParticipant = this.getOrCreateParticipant(info.identity, info);\n }\n });\n };\n // updates are sent only when there's a change to speaker ordering\n this.handleActiveSpeakersUpdate = speakers => {\n const activeSpeakers = [];\n const seenSids = {};\n speakers.forEach(speaker => {\n seenSids[speaker.sid] = true;\n if (speaker.sid === this.localParticipant.sid) {\n this.localParticipant.audioLevel = speaker.level;\n this.localParticipant.setIsSpeaking(true);\n activeSpeakers.push(this.localParticipant);\n } else {\n const p = this.getRemoteParticipantBySid(speaker.sid);\n if (p) {\n p.audioLevel = speaker.level;\n p.setIsSpeaking(true);\n activeSpeakers.push(p);\n }\n }\n });\n if (!seenSids[this.localParticipant.sid]) {\n this.localParticipant.audioLevel = 0;\n this.localParticipant.setIsSpeaking(false);\n }\n this.remoteParticipants.forEach(p => {\n if (!seenSids[p.sid]) {\n p.audioLevel = 0;\n p.setIsSpeaking(false);\n }\n });\n this.activeSpeakers = activeSpeakers;\n this.emitWhenConnected(RoomEvent.ActiveSpeakersChanged, activeSpeakers);\n };\n // process list of changed speakers\n this.handleSpeakersChanged = speakerUpdates => {\n const lastSpeakers = new Map();\n this.activeSpeakers.forEach(p => {\n const remoteParticipant = this.remoteParticipants.get(p.identity);\n if (remoteParticipant && remoteParticipant.sid !== p.sid) {\n return;\n }\n lastSpeakers.set(p.sid, p);\n });\n speakerUpdates.forEach(speaker => {\n let p = this.getRemoteParticipantBySid(speaker.sid);\n if (speaker.sid === this.localParticipant.sid) {\n p = this.localParticipant;\n }\n if (!p) {\n return;\n }\n p.audioLevel = speaker.level;\n p.setIsSpeaking(speaker.active);\n if (speaker.active) {\n lastSpeakers.set(speaker.sid, p);\n } else {\n lastSpeakers.delete(speaker.sid);\n }\n });\n const activeSpeakers = Array.from(lastSpeakers.values());\n activeSpeakers.sort((a, b) => b.audioLevel - a.audioLevel);\n this.activeSpeakers = activeSpeakers;\n this.emitWhenConnected(RoomEvent.ActiveSpeakersChanged, activeSpeakers);\n };\n this.handleStreamStateUpdate = streamStateUpdate => {\n streamStateUpdate.streamStates.forEach(streamState => {\n const participant = this.getRemoteParticipantBySid(streamState.participantSid);\n if (!participant) {\n return;\n }\n const pub = participant.getTrackPublicationBySid(streamState.trackSid);\n if (!pub || !pub.track) {\n return;\n }\n const newStreamState = Track.streamStateFromProto(streamState.state);\n if (newStreamState !== pub.track.streamState) {\n pub.track.streamState = newStreamState;\n participant.emit(ParticipantEvent.TrackStreamStateChanged, pub, pub.track.streamState);\n this.emitWhenConnected(RoomEvent.TrackStreamStateChanged, pub, pub.track.streamState, participant);\n }\n });\n };\n this.handleSubscriptionPermissionUpdate = update => {\n const participant = this.getRemoteParticipantBySid(update.participantSid);\n if (!participant) {\n return;\n }\n const pub = participant.getTrackPublicationBySid(update.trackSid);\n if (!pub) {\n return;\n }\n pub.setAllowed(update.allowed);\n };\n this.handleSubscriptionError = update => {\n const participant = Array.from(this.remoteParticipants.values()).find(p => p.trackPublications.has(update.trackSid));\n if (!participant) {\n return;\n }\n const pub = participant.getTrackPublicationBySid(update.trackSid);\n if (!pub) {\n return;\n }\n pub.setSubscriptionError(update.err);\n };\n this.handleDataPacket = packet => {\n // find the participant\n const participant = this.remoteParticipants.get(packet.participantIdentity);\n if (packet.value.case === 'user') {\n this.handleUserPacket(participant, packet.value.value, packet.kind);\n } else if (packet.value.case === 'transcription') {\n this.handleTranscription(participant, packet.value.value);\n } else if (packet.value.case === 'sipDtmf') {\n this.handleSipDtmf(participant, packet.value.value);\n } else if (packet.value.case === 'chatMessage') {\n this.handleChatMessage(participant, packet.value.value);\n } else if (packet.value.case === 'metrics') {\n this.handleMetrics(packet.value.value, participant);\n }\n };\n this.handleUserPacket = (participant, userPacket, kind) => {\n this.emit(RoomEvent.DataReceived, userPacket.payload, participant, kind, userPacket.topic);\n // also emit on the participant\n participant === null || participant === void 0 ? void 0 : participant.emit(ParticipantEvent.DataReceived, userPacket.payload, kind);\n };\n this.handleSipDtmf = (participant, dtmf) => {\n this.emit(RoomEvent.SipDTMFReceived, dtmf, participant);\n // also emit on the participant\n participant === null || participant === void 0 ? void 0 : participant.emit(ParticipantEvent.SipDTMFReceived, dtmf);\n };\n this.bufferedSegments = new Map();\n this.handleTranscription = (_remoteParticipant, transcription) => {\n // find the participant\n const participant = transcription.transcribedParticipantIdentity === this.localParticipant.identity ? this.localParticipant : this.getParticipantByIdentity(transcription.transcribedParticipantIdentity);\n const publication = participant === null || participant === void 0 ? void 0 : participant.trackPublications.get(transcription.trackId);\n const segments = extractTranscriptionSegments(transcription, this.transcriptionReceivedTimes);\n publication === null || publication === void 0 ? void 0 : publication.emit(TrackEvent.TranscriptionReceived, segments);\n participant === null || participant === void 0 ? void 0 : participant.emit(ParticipantEvent.TranscriptionReceived, segments, publication);\n this.emit(RoomEvent.TranscriptionReceived, segments, participant, publication);\n };\n this.handleChatMessage = (participant, chatMessage) => {\n const msg = extractChatMessage(chatMessage);\n this.emit(RoomEvent.ChatMessage, msg, participant);\n };\n this.handleMetrics = (metrics, participant) => {\n this.emit(RoomEvent.MetricsReceived, metrics, participant);\n };\n this.handleAudioPlaybackStarted = () => {\n if (this.canPlaybackAudio) {\n return;\n }\n this.audioEnabled = true;\n this.emit(RoomEvent.AudioPlaybackStatusChanged, true);\n };\n this.handleAudioPlaybackFailed = e => {\n this.log.warn('could not playback audio', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n if (!this.canPlaybackAudio) {\n return;\n }\n this.audioEnabled = false;\n this.emit(RoomEvent.AudioPlaybackStatusChanged, false);\n };\n this.handleVideoPlaybackStarted = () => {\n if (this.isVideoPlaybackBlocked) {\n this.isVideoPlaybackBlocked = false;\n this.emit(RoomEvent.VideoPlaybackStatusChanged, true);\n }\n };\n this.handleVideoPlaybackFailed = () => {\n if (!this.isVideoPlaybackBlocked) {\n this.isVideoPlaybackBlocked = true;\n this.emit(RoomEvent.VideoPlaybackStatusChanged, false);\n }\n };\n this.handleDeviceChange = () => __awaiter(this, void 0, void 0, function* () {\n // check for available devices, but don't request permissions in order to avoid prompts for kinds that haven't been used before\n const availableDevices = yield DeviceManager.getInstance().getDevices(undefined, false);\n // inputs are automatically handled via TrackEvent.Ended causing a TrackEvent.Restarted. Here we only need to worry about audiooutputs changing\n const kinds = ['audiooutput'];\n for (let kind of kinds) {\n // switch to first available device if previously active device is not available any more\n const devicesOfKind = availableDevices.filter(d => d.kind === kind);\n if (devicesOfKind.length > 0 && !devicesOfKind.find(deviceInfo => deviceInfo.deviceId === this.getActiveDevice(kind))) {\n yield this.switchActiveDevice(kind, devicesOfKind[0].deviceId);\n }\n }\n this.emit(RoomEvent.MediaDevicesChanged);\n });\n this.handleRoomUpdate = room => {\n const oldRoom = this.roomInfo;\n this.roomInfo = room;\n if (oldRoom && oldRoom.metadata !== room.metadata) {\n this.emitWhenConnected(RoomEvent.RoomMetadataChanged, room.metadata);\n }\n if ((oldRoom === null || oldRoom === void 0 ? void 0 : oldRoom.activeRecording) !== room.activeRecording) {\n this.emitWhenConnected(RoomEvent.RecordingStatusChanged, room.activeRecording);\n }\n };\n this.handleConnectionQualityUpdate = update => {\n update.updates.forEach(info => {\n if (info.participantSid === this.localParticipant.sid) {\n this.localParticipant.setConnectionQuality(info.quality);\n return;\n }\n const participant = this.getRemoteParticipantBySid(info.participantSid);\n if (participant) {\n participant.setConnectionQuality(info.quality);\n }\n });\n };\n this.onLocalParticipantMetadataChanged = metadata => {\n this.emit(RoomEvent.ParticipantMetadataChanged, metadata, this.localParticipant);\n };\n this.onLocalParticipantNameChanged = name => {\n this.emit(RoomEvent.ParticipantNameChanged, name, this.localParticipant);\n };\n this.onLocalAttributesChanged = changedAttributes => {\n this.emit(RoomEvent.ParticipantAttributesChanged, changedAttributes, this.localParticipant);\n };\n this.onLocalTrackMuted = pub => {\n this.emit(RoomEvent.TrackMuted, pub, this.localParticipant);\n };\n this.onLocalTrackUnmuted = pub => {\n this.emit(RoomEvent.TrackUnmuted, pub, this.localParticipant);\n };\n this.onTrackProcessorUpdate = processor => {\n var _a;\n (_a = processor === null || processor === void 0 ? void 0 : processor.onPublish) === null || _a === void 0 ? void 0 : _a.call(processor, this);\n };\n this.onLocalTrackPublished = pub => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f;\n (_a = pub.track) === null || _a === void 0 ? void 0 : _a.on(TrackEvent.TrackProcessorUpdate, this.onTrackProcessorUpdate);\n (_b = pub.track) === null || _b === void 0 ? void 0 : _b.on(TrackEvent.Restarted, this.onLocalTrackRestarted);\n (_e = (_d = (_c = pub.track) === null || _c === void 0 ? void 0 : _c.getProcessor()) === null || _d === void 0 ? void 0 : _d.onPublish) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n this.emit(RoomEvent.LocalTrackPublished, pub, this.localParticipant);\n if (pub.track instanceof LocalAudioTrack) {\n const trackIsSilent = yield pub.track.checkForSilence();\n if (trackIsSilent) {\n this.emit(RoomEvent.LocalAudioSilenceDetected, pub);\n }\n }\n const deviceId = yield (_f = pub.track) === null || _f === void 0 ? void 0 : _f.getDeviceId();\n const deviceKind = sourceToKind(pub.source);\n if (deviceKind && deviceId && deviceId !== this.localParticipant.activeDeviceMap.get(deviceKind)) {\n this.localParticipant.activeDeviceMap.set(deviceKind, deviceId);\n this.emit(RoomEvent.ActiveDeviceChanged, deviceKind, deviceId);\n }\n });\n this.onLocalTrackUnpublished = pub => {\n var _a, _b;\n (_a = pub.track) === null || _a === void 0 ? void 0 : _a.off(TrackEvent.TrackProcessorUpdate, this.onTrackProcessorUpdate);\n (_b = pub.track) === null || _b === void 0 ? void 0 : _b.off(TrackEvent.Restarted, this.onLocalTrackRestarted);\n this.emit(RoomEvent.LocalTrackUnpublished, pub, this.localParticipant);\n };\n this.onLocalTrackRestarted = track => __awaiter(this, void 0, void 0, function* () {\n const deviceId = yield track.getDeviceId(false);\n const deviceKind = sourceToKind(track.source);\n if (deviceKind && deviceId && deviceId !== this.localParticipant.activeDeviceMap.get(deviceKind)) {\n this.log.debug(\"local track restarted, setting \".concat(deviceKind, \" \").concat(deviceId, \" active\"), this.logContext);\n this.localParticipant.activeDeviceMap.set(deviceKind, deviceId);\n this.emit(RoomEvent.ActiveDeviceChanged, deviceKind, deviceId);\n }\n });\n this.onLocalConnectionQualityChanged = quality => {\n this.emit(RoomEvent.ConnectionQualityChanged, quality, this.localParticipant);\n };\n this.onMediaDevicesError = e => {\n this.emit(RoomEvent.MediaDevicesError, e);\n };\n this.onLocalParticipantPermissionsChanged = prevPermissions => {\n this.emit(RoomEvent.ParticipantPermissionsChanged, prevPermissions, this.localParticipant);\n };\n this.onLocalChatMessageSent = msg => {\n this.emit(RoomEvent.ChatMessage, msg, this.localParticipant);\n };\n this.setMaxListeners(100);\n this.remoteParticipants = new Map();\n this.sidToIdentity = new Map();\n this.options = Object.assign(Object.assign({}, roomOptionDefaults), options);\n this.log = getLogger((_a = this.options.loggerName) !== null && _a !== void 0 ? _a : LoggerNames.Room);\n this.transcriptionReceivedTimes = new Map();\n this.options.audioCaptureDefaults = Object.assign(Object.assign({}, audioDefaults), options === null || options === void 0 ? void 0 : options.audioCaptureDefaults);\n this.options.videoCaptureDefaults = Object.assign(Object.assign({}, videoDefaults), options === null || options === void 0 ? void 0 : options.videoCaptureDefaults);\n this.options.publishDefaults = Object.assign(Object.assign({}, publishDefaults), options === null || options === void 0 ? void 0 : options.publishDefaults);\n this.maybeCreateEngine();\n this.disconnectLock = new h();\n this.localParticipant = new LocalParticipant('', '', this.engine, this.options);\n if (this.options.videoCaptureDefaults.deviceId) {\n this.localParticipant.activeDeviceMap.set('videoinput', unwrapConstraint(this.options.videoCaptureDefaults.deviceId));\n }\n if (this.options.audioCaptureDefaults.deviceId) {\n this.localParticipant.activeDeviceMap.set('audioinput', unwrapConstraint(this.options.audioCaptureDefaults.deviceId));\n }\n if ((_b = this.options.audioOutput) === null || _b === void 0 ? void 0 : _b.deviceId) {\n this.switchActiveDevice('audiooutput', unwrapConstraint(this.options.audioOutput.deviceId)).catch(e => this.log.warn(\"Could not set audio output: \".concat(e.message), this.logContext));\n }\n if (this.options.e2ee) {\n this.setupE2EE();\n }\n }\n /**\n * @experimental\n */\n setE2EEEnabled(enabled) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.e2eeManager) {\n yield Promise.all([this.localParticipant.setE2EEEnabled(enabled)]);\n if (this.localParticipant.identity !== '') {\n this.e2eeManager.setParticipantCryptorEnabled(enabled, this.localParticipant.identity);\n }\n } else {\n throw Error('e2ee not configured, please set e2ee settings within the room options');\n }\n });\n }\n setupE2EE() {\n var _a;\n if (this.options.e2ee) {\n this.e2eeManager = new E2EEManager(this.options.e2ee);\n this.e2eeManager.on(EncryptionEvent.ParticipantEncryptionStatusChanged, (enabled, participant) => {\n if (participant instanceof LocalParticipant) {\n this.isE2EEEnabled = enabled;\n }\n this.emit(RoomEvent.ParticipantEncryptionStatusChanged, enabled, participant);\n });\n this.e2eeManager.on(EncryptionEvent.EncryptionError, error => this.emit(RoomEvent.EncryptionError, error));\n (_a = this.e2eeManager) === null || _a === void 0 ? void 0 : _a.setup(this);\n }\n }\n get logContext() {\n var _a;\n return {\n room: this.name,\n roomID: (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.sid,\n participant: this.localParticipant.identity,\n pID: this.localParticipant.sid\n };\n }\n /**\n * if the current room has a participant with `recorder: true` in its JWT grant\n **/\n get isRecording() {\n var _a, _b;\n return (_b = (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.activeRecording) !== null && _b !== void 0 ? _b : false;\n }\n /**\n * server assigned unique room id.\n * returns once a sid has been issued by the server.\n */\n getSid() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.state === ConnectionState.Disconnected) {\n return '';\n }\n if (this.roomInfo && this.roomInfo.sid !== '') {\n return this.roomInfo.sid;\n }\n return new Promise((resolve, reject) => {\n const handleRoomUpdate = roomInfo => {\n if (roomInfo.sid !== '') {\n this.engine.off(EngineEvent.RoomUpdate, handleRoomUpdate);\n resolve(roomInfo.sid);\n }\n };\n this.engine.on(EngineEvent.RoomUpdate, handleRoomUpdate);\n this.once(RoomEvent.Disconnected, () => {\n this.engine.off(EngineEvent.RoomUpdate, handleRoomUpdate);\n reject('Room disconnected before room server id was available');\n });\n });\n });\n }\n /** user assigned name, derived from JWT token */\n get name() {\n var _a, _b;\n return (_b = (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';\n }\n /** room metadata */\n get metadata() {\n var _a;\n return (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.metadata;\n }\n get numParticipants() {\n var _a, _b;\n return (_b = (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.numParticipants) !== null && _b !== void 0 ? _b : 0;\n }\n get numPublishers() {\n var _a, _b;\n return (_b = (_a = this.roomInfo) === null || _a === void 0 ? void 0 : _a.numPublishers) !== null && _b !== void 0 ? _b : 0;\n }\n maybeCreateEngine() {\n if (this.engine && !this.engine.isClosed) {\n return;\n }\n this.engine = new RTCEngine(this.options);\n this.engine.on(EngineEvent.ParticipantUpdate, this.handleParticipantUpdates).on(EngineEvent.RoomUpdate, this.handleRoomUpdate).on(EngineEvent.SpeakersChanged, this.handleSpeakersChanged).on(EngineEvent.StreamStateChanged, this.handleStreamStateUpdate).on(EngineEvent.ConnectionQualityUpdate, this.handleConnectionQualityUpdate).on(EngineEvent.SubscriptionError, this.handleSubscriptionError).on(EngineEvent.SubscriptionPermissionUpdate, this.handleSubscriptionPermissionUpdate).on(EngineEvent.MediaTrackAdded, (mediaTrack, stream, receiver) => {\n this.onTrackAdded(mediaTrack, stream, receiver);\n }).on(EngineEvent.Disconnected, reason => {\n this.handleDisconnect(this.options.stopLocalTrackOnUnpublish, reason);\n }).on(EngineEvent.ActiveSpeakersUpdate, this.handleActiveSpeakersUpdate).on(EngineEvent.DataPacketReceived, this.handleDataPacket).on(EngineEvent.Resuming, () => {\n this.clearConnectionReconcile();\n this.isResuming = true;\n this.log.info('Resuming signal connection', this.logContext);\n if (this.setAndEmitConnectionState(ConnectionState.SignalReconnecting)) {\n this.emit(RoomEvent.SignalReconnecting);\n }\n }).on(EngineEvent.Resumed, () => {\n this.registerConnectionReconcile();\n this.isResuming = false;\n this.log.info('Resumed signal connection', this.logContext);\n this.updateSubscriptions();\n this.emitBufferedEvents();\n if (this.setAndEmitConnectionState(ConnectionState.Connected)) {\n this.emit(RoomEvent.Reconnected);\n }\n }).on(EngineEvent.SignalResumed, () => {\n this.bufferedEvents = [];\n if (this.state === ConnectionState.Reconnecting || this.isResuming) {\n this.sendSyncState();\n }\n }).on(EngineEvent.Restarting, this.handleRestarting).on(EngineEvent.SignalRestarted, this.handleSignalRestarted).on(EngineEvent.Offline, () => {\n if (this.setAndEmitConnectionState(ConnectionState.Reconnecting)) {\n this.emit(RoomEvent.Reconnecting);\n }\n }).on(EngineEvent.DCBufferStatusChanged, (status, kind) => {\n this.emit(RoomEvent.DCBufferStatusChanged, status, kind);\n }).on(EngineEvent.LocalTrackSubscribed, subscribedSid => {\n const trackPublication = this.localParticipant.getTrackPublications().find(_ref2 => {\n let {\n trackSid\n } = _ref2;\n return trackSid === subscribedSid;\n });\n if (!trackPublication) {\n this.log.warn('could not find local track subscription for subscribed event', this.logContext);\n return;\n }\n this.localParticipant.emit(ParticipantEvent.LocalTrackSubscribed, trackPublication);\n this.emitWhenConnected(RoomEvent.LocalTrackSubscribed, trackPublication, this.localParticipant);\n });\n if (this.localParticipant) {\n this.localParticipant.setupEngine(this.engine);\n }\n if (this.e2eeManager) {\n this.e2eeManager.setupEngine(this.engine);\n }\n }\n /**\n * getLocalDevices abstracts navigator.mediaDevices.enumerateDevices.\n * In particular, it requests device permissions by default if needed\n * and makes sure the returned device does not consist of dummy devices\n * @param kind\n * @returns a list of available local devices\n */\n static getLocalDevices(kind) {\n let requestPermissions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return DeviceManager.getInstance().getDevices(kind, requestPermissions);\n }\n /**\n * prepareConnection should be called as soon as the page is loaded, in order\n * to speed up the connection attempt. This function will\n * - perform DNS resolution and pre-warm the DNS cache\n * - establish TLS connection and cache TLS keys\n *\n * With LiveKit Cloud, it will also determine the best edge data center for\n * the current client to connect to if a token is provided.\n */\n prepareConnection(url, token) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.state !== ConnectionState.Disconnected) {\n return;\n }\n this.log.debug(\"prepareConnection to \".concat(url), this.logContext);\n try {\n if (isCloud(new URL(url)) && token) {\n this.regionUrlProvider = new RegionUrlProvider(url, token);\n const regionUrl = yield this.regionUrlProvider.getNextBestRegionUrl();\n // we will not replace the regionUrl if an attempt had already started\n // to avoid overriding regionUrl after a new connection attempt had started\n if (regionUrl && this.state === ConnectionState.Disconnected) {\n this.regionUrl = regionUrl;\n yield fetch(toHttpUrl(regionUrl), {\n method: 'HEAD'\n });\n this.log.debug(\"prepared connection to \".concat(regionUrl), this.logContext);\n }\n } else {\n yield fetch(toHttpUrl(url), {\n method: 'HEAD'\n });\n }\n } catch (e) {\n this.log.warn('could not prepare connection', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n });\n }\n /**\n * retrieves a participant by identity\n * @param identity\n * @returns\n */\n getParticipantByIdentity(identity) {\n if (this.localParticipant.identity === identity) {\n return this.localParticipant;\n }\n return this.remoteParticipants.get(identity);\n }\n clearConnectionFutures() {\n this.connectFuture = undefined;\n }\n /**\n * @internal for testing\n */\n simulateScenario(scenario, arg) {\n return __awaiter(this, void 0, void 0, function* () {\n let postAction = () => {};\n let req;\n switch (scenario) {\n case 'signal-reconnect':\n // @ts-expect-error function is private\n yield this.engine.client.handleOnClose('simulate disconnect');\n break;\n case 'speaker':\n req = new SimulateScenario({\n scenario: {\n case: 'speakerUpdate',\n value: 3\n }\n });\n break;\n case 'node-failure':\n req = new SimulateScenario({\n scenario: {\n case: 'nodeFailure',\n value: true\n }\n });\n break;\n case 'server-leave':\n req = new SimulateScenario({\n scenario: {\n case: 'serverLeave',\n value: true\n }\n });\n break;\n case 'migration':\n req = new SimulateScenario({\n scenario: {\n case: 'migration',\n value: true\n }\n });\n break;\n case 'resume-reconnect':\n this.engine.failNext();\n // @ts-expect-error function is private\n yield this.engine.client.handleOnClose('simulate resume-disconnect');\n break;\n case 'disconnect-signal-on-resume':\n postAction = () => __awaiter(this, void 0, void 0, function* () {\n // @ts-expect-error function is private\n yield this.engine.client.handleOnClose('simulate resume-disconnect');\n });\n req = new SimulateScenario({\n scenario: {\n case: 'disconnectSignalOnResume',\n value: true\n }\n });\n break;\n case 'disconnect-signal-on-resume-no-messages':\n postAction = () => __awaiter(this, void 0, void 0, function* () {\n // @ts-expect-error function is private\n yield this.engine.client.handleOnClose('simulate resume-disconnect');\n });\n req = new SimulateScenario({\n scenario: {\n case: 'disconnectSignalOnResumeNoMessages',\n value: true\n }\n });\n break;\n case 'full-reconnect':\n this.engine.fullReconnectOnNext = true;\n // @ts-expect-error function is private\n yield this.engine.client.handleOnClose('simulate full-reconnect');\n break;\n case 'force-tcp':\n case 'force-tls':\n req = new SimulateScenario({\n scenario: {\n case: 'switchCandidateProtocol',\n value: scenario === 'force-tls' ? 2 : 1\n }\n });\n postAction = () => __awaiter(this, void 0, void 0, function* () {\n const onLeave = this.engine.client.onLeave;\n if (onLeave) {\n onLeave(new LeaveRequest({\n reason: DisconnectReason.CLIENT_INITIATED,\n action: LeaveRequest_Action.RECONNECT\n }));\n }\n });\n break;\n case 'subscriber-bandwidth':\n if (arg === undefined || typeof arg !== 'number') {\n throw new Error('subscriber-bandwidth requires a number as argument');\n }\n req = new SimulateScenario({\n scenario: {\n case: 'subscriberBandwidth',\n value: BigInt(arg)\n }\n });\n break;\n case 'leave-full-reconnect':\n req = new SimulateScenario({\n scenario: {\n case: 'leaveRequestFullReconnect',\n value: true\n }\n });\n }\n if (req) {\n yield this.engine.client.sendSimulateScenario(req);\n yield postAction();\n }\n });\n }\n /**\n * Returns true if audio playback is enabled\n */\n get canPlaybackAudio() {\n return this.audioEnabled;\n }\n /**\n * Returns true if video playback is enabled\n */\n get canPlaybackVideo() {\n return !this.isVideoPlaybackBlocked;\n }\n getActiveDevice(kind) {\n return this.localParticipant.activeDeviceMap.get(kind);\n }\n /**\n * Switches all active devices used in this room to the given device.\n *\n * Note: setting AudioOutput is not supported on some browsers. See [setSinkId](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId#browser_compatibility)\n *\n * @param kind use `videoinput` for camera track,\n * `audioinput` for microphone track,\n * `audiooutput` to set speaker for all incoming audio tracks\n * @param deviceId\n */\n switchActiveDevice(kind_1, deviceId_1) {\n return __awaiter(this, arguments, void 0, function (kind, deviceId) {\n var _this3 = this;\n let exact = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function* () {\n var _a, _b, _c, _d, _e, _f;\n var _g;\n let deviceHasChanged = false;\n let success = true;\n const deviceConstraint = exact ? {\n exact: deviceId\n } : deviceId;\n if (kind === 'audioinput') {\n const prevDeviceId = (_a = _this3.getActiveDevice(kind)) !== null && _a !== void 0 ? _a : _this3.options.audioCaptureDefaults.deviceId;\n _this3.options.audioCaptureDefaults.deviceId = deviceConstraint;\n deviceHasChanged = prevDeviceId !== deviceConstraint;\n const tracks = Array.from(_this3.localParticipant.audioTrackPublications.values()).filter(track => track.source === Track.Source.Microphone);\n try {\n success = (yield Promise.all(tracks.map(t => {\n var _a;\n return (_a = t.audioTrack) === null || _a === void 0 ? void 0 : _a.setDeviceId(deviceConstraint);\n }))).every(val => val === true);\n } catch (e) {\n _this3.options.audioCaptureDefaults.deviceId = prevDeviceId;\n throw e;\n }\n } else if (kind === 'videoinput') {\n const prevDeviceId = (_b = _this3.getActiveDevice(kind)) !== null && _b !== void 0 ? _b : _this3.options.videoCaptureDefaults.deviceId;\n _this3.options.videoCaptureDefaults.deviceId = deviceConstraint;\n deviceHasChanged = prevDeviceId !== deviceConstraint;\n const tracks = Array.from(_this3.localParticipant.videoTrackPublications.values()).filter(track => track.source === Track.Source.Camera);\n try {\n success = (yield Promise.all(tracks.map(t => {\n var _a;\n return (_a = t.videoTrack) === null || _a === void 0 ? void 0 : _a.setDeviceId(deviceConstraint);\n }))).every(val => val === true);\n } catch (e) {\n _this3.options.videoCaptureDefaults.deviceId = prevDeviceId;\n throw e;\n }\n } else if (kind === 'audiooutput') {\n if (!supportsSetSinkId() && !_this3.options.webAudioMix || _this3.options.webAudioMix && _this3.audioContext && !('setSinkId' in _this3.audioContext)) {\n throw new Error('cannot switch audio output, setSinkId not supported');\n }\n if (_this3.options.webAudioMix) {\n // setting `default` for web audio output doesn't work, so we need to normalize the id before\n deviceId = (_c = yield DeviceManager.getInstance().normalizeDeviceId('audiooutput', deviceId)) !== null && _c !== void 0 ? _c : '';\n }\n (_d = (_g = _this3.options).audioOutput) !== null && _d !== void 0 ? _d : _g.audioOutput = {};\n const prevDeviceId = (_e = _this3.getActiveDevice(kind)) !== null && _e !== void 0 ? _e : _this3.options.audioOutput.deviceId;\n _this3.options.audioOutput.deviceId = deviceId;\n deviceHasChanged = prevDeviceId !== deviceConstraint;\n try {\n if (_this3.options.webAudioMix) {\n // @ts-expect-error setSinkId is not yet in the typescript type of AudioContext\n (_f = _this3.audioContext) === null || _f === void 0 ? void 0 : _f.setSinkId(deviceId);\n }\n // also set audio output on all audio elements, even if webAudioMix is enabled in order to workaround echo cancellation not working on chrome with non-default output devices\n // see https://issues.chromium.org/issues/40252911#comment7\n yield Promise.all(Array.from(_this3.remoteParticipants.values()).map(p => p.setAudioOutput({\n deviceId\n })));\n } catch (e) {\n _this3.options.audioOutput.deviceId = prevDeviceId;\n throw e;\n }\n }\n if (deviceHasChanged && success) {\n _this3.localParticipant.activeDeviceMap.set(kind, deviceId);\n _this3.emit(RoomEvent.ActiveDeviceChanged, kind, deviceId);\n }\n return success;\n }();\n });\n }\n setupLocalParticipantEvents() {\n this.localParticipant.on(ParticipantEvent.ParticipantMetadataChanged, this.onLocalParticipantMetadataChanged).on(ParticipantEvent.ParticipantNameChanged, this.onLocalParticipantNameChanged).on(ParticipantEvent.AttributesChanged, this.onLocalAttributesChanged).on(ParticipantEvent.TrackMuted, this.onLocalTrackMuted).on(ParticipantEvent.TrackUnmuted, this.onLocalTrackUnmuted).on(ParticipantEvent.LocalTrackPublished, this.onLocalTrackPublished).on(ParticipantEvent.LocalTrackUnpublished, this.onLocalTrackUnpublished).on(ParticipantEvent.ConnectionQualityChanged, this.onLocalConnectionQualityChanged).on(ParticipantEvent.MediaDevicesError, this.onMediaDevicesError).on(ParticipantEvent.AudioStreamAcquired, this.startAudio).on(ParticipantEvent.ChatMessage, this.onLocalChatMessageSent).on(ParticipantEvent.ParticipantPermissionsChanged, this.onLocalParticipantPermissionsChanged);\n }\n recreateEngine() {\n var _a;\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n /* @ts-ignore */\n this.engine = undefined;\n this.isResuming = false;\n // clear out existing remote participants, since they may have attached\n // the old engine\n this.remoteParticipants.clear();\n this.sidToIdentity.clear();\n this.bufferedEvents = [];\n this.maybeCreateEngine();\n }\n onTrackAdded(mediaTrack, stream, receiver) {\n // don't fire onSubscribed when connecting\n // WebRTC fires onTrack as soon as setRemoteDescription is called on the offer\n // at that time, ICE connectivity has not been established so the track is not\n // technically subscribed.\n // We'll defer these events until when the room is connected or eventually disconnected.\n if (this.state === ConnectionState.Connecting || this.state === ConnectionState.Reconnecting) {\n const reconnectedHandler = () => {\n this.onTrackAdded(mediaTrack, stream, receiver);\n cleanup();\n };\n const cleanup = () => {\n this.off(RoomEvent.Reconnected, reconnectedHandler);\n this.off(RoomEvent.Connected, reconnectedHandler);\n this.off(RoomEvent.Disconnected, cleanup);\n };\n this.once(RoomEvent.Reconnected, reconnectedHandler);\n this.once(RoomEvent.Connected, reconnectedHandler);\n this.once(RoomEvent.Disconnected, cleanup);\n return;\n }\n if (this.state === ConnectionState.Disconnected) {\n this.log.warn('skipping incoming track after Room disconnected', this.logContext);\n return;\n }\n const parts = unpackStreamId(stream.id);\n const participantSid = parts[0];\n let streamId = parts[1];\n let trackId = mediaTrack.id;\n // firefox will get streamId (pID|trackId) instead of (pID|streamId) as it doesn't support sync tracks by stream\n // and generates its own track id instead of infer from sdp track id.\n if (streamId && streamId.startsWith('TR')) trackId = streamId;\n if (participantSid === this.localParticipant.sid) {\n this.log.warn('tried to create RemoteParticipant for local participant', this.logContext);\n return;\n }\n const participant = Array.from(this.remoteParticipants.values()).find(p => p.sid === participantSid);\n if (!participant) {\n this.log.error(\"Tried to add a track for a participant, that's not present. Sid: \".concat(participantSid), this.logContext);\n return;\n }\n let adaptiveStreamSettings;\n if (this.options.adaptiveStream) {\n if (typeof this.options.adaptiveStream === 'object') {\n adaptiveStreamSettings = this.options.adaptiveStream;\n } else {\n adaptiveStreamSettings = {};\n }\n }\n participant.addSubscribedMediaTrack(mediaTrack, trackId, stream, receiver, adaptiveStreamSettings);\n }\n handleDisconnect() {\n let shouldStopTracks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let reason = arguments.length > 1 ? arguments[1] : undefined;\n var _a;\n this.clearConnectionReconcile();\n this.isResuming = false;\n this.bufferedEvents = [];\n this.transcriptionReceivedTimes.clear();\n if (this.state === ConnectionState.Disconnected) {\n return;\n }\n this.regionUrl = undefined;\n try {\n this.remoteParticipants.forEach(p => {\n p.trackPublications.forEach(pub => {\n p.unpublishTrack(pub.trackSid);\n });\n });\n this.localParticipant.trackPublications.forEach(pub => {\n var _a, _b;\n if (pub.track) {\n this.localParticipant.unpublishTrack(pub.track, shouldStopTracks);\n }\n if (shouldStopTracks) {\n (_a = pub.track) === null || _a === void 0 ? void 0 : _a.detach();\n (_b = pub.track) === null || _b === void 0 ? void 0 : _b.stop();\n }\n });\n this.localParticipant.off(ParticipantEvent.ParticipantMetadataChanged, this.onLocalParticipantMetadataChanged).off(ParticipantEvent.ParticipantNameChanged, this.onLocalParticipantNameChanged).off(ParticipantEvent.AttributesChanged, this.onLocalAttributesChanged).off(ParticipantEvent.TrackMuted, this.onLocalTrackMuted).off(ParticipantEvent.TrackUnmuted, this.onLocalTrackUnmuted).off(ParticipantEvent.LocalTrackPublished, this.onLocalTrackPublished).off(ParticipantEvent.LocalTrackUnpublished, this.onLocalTrackUnpublished).off(ParticipantEvent.ConnectionQualityChanged, this.onLocalConnectionQualityChanged).off(ParticipantEvent.MediaDevicesError, this.onMediaDevicesError).off(ParticipantEvent.AudioStreamAcquired, this.startAudio).off(ParticipantEvent.ChatMessage, this.onLocalChatMessageSent).off(ParticipantEvent.ParticipantPermissionsChanged, this.onLocalParticipantPermissionsChanged);\n this.localParticipant.trackPublications.clear();\n this.localParticipant.videoTrackPublications.clear();\n this.localParticipant.audioTrackPublications.clear();\n this.remoteParticipants.clear();\n this.sidToIdentity.clear();\n this.activeSpeakers = [];\n if (this.audioContext && typeof this.options.webAudioMix === 'boolean') {\n this.audioContext.close();\n this.audioContext = undefined;\n }\n if (isWeb()) {\n window.removeEventListener('beforeunload', this.onPageLeave);\n window.removeEventListener('pagehide', this.onPageLeave);\n window.removeEventListener('freeze', this.onPageLeave);\n (_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.removeEventListener('devicechange', this.handleDeviceChange);\n }\n } finally {\n this.setAndEmitConnectionState(ConnectionState.Disconnected);\n this.emit(RoomEvent.Disconnected, reason);\n }\n }\n handleParticipantDisconnected(identity, participant) {\n var _a;\n // remove and send event\n this.remoteParticipants.delete(identity);\n if (!participant) {\n return;\n }\n participant.trackPublications.forEach(publication => {\n participant.unpublishTrack(publication.trackSid, true);\n });\n this.emit(RoomEvent.ParticipantDisconnected, participant);\n (_a = this.localParticipant) === null || _a === void 0 ? void 0 : _a.handleParticipantDisconnected(participant.identity);\n }\n acquireAudioContext() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (typeof this.options.webAudioMix !== 'boolean' && this.options.webAudioMix.audioContext) {\n // override audio context with custom audio context if supplied by user\n this.audioContext = this.options.webAudioMix.audioContext;\n } else if (!this.audioContext || this.audioContext.state === 'closed') {\n // by using an AudioContext, it reduces lag on audio elements\n // https://stackoverflow.com/questions/9811429/html5-audio-tag-on-safari-has-a-delay/54119854#54119854\n this.audioContext = (_a = getNewAudioContext()) !== null && _a !== void 0 ? _a : undefined;\n }\n if (this.audioContext && this.audioContext.state === 'suspended') {\n // for iOS a newly created AudioContext is always in `suspended` state.\n // we try our best to resume the context here, if that doesn't work, we just continue with regular processing\n try {\n yield this.audioContext.resume();\n } catch (e) {\n this.log.warn('Could not resume audio context', Object.assign(Object.assign({}, this.logContext), {\n error: e\n }));\n }\n }\n if (this.options.webAudioMix) {\n this.remoteParticipants.forEach(participant => participant.setAudioContext(this.audioContext));\n }\n this.localParticipant.setAudioContext(this.audioContext);\n const newContextIsRunning = ((_b = this.audioContext) === null || _b === void 0 ? void 0 : _b.state) === 'running';\n if (newContextIsRunning !== this.canPlaybackAudio) {\n this.audioEnabled = newContextIsRunning;\n this.emit(RoomEvent.AudioPlaybackStatusChanged, newContextIsRunning);\n }\n });\n }\n createParticipant(identity, info) {\n var _a;\n let participant;\n if (info) {\n participant = RemoteParticipant.fromParticipantInfo(this.engine.client, info, {\n loggerContextCb: () => this.logContext,\n loggerName: this.options.loggerName\n });\n } else {\n participant = new RemoteParticipant(this.engine.client, '', identity, undefined, undefined, {\n loggerContextCb: () => this.logContext,\n loggerName: this.options.loggerName\n });\n }\n if (this.options.webAudioMix) {\n participant.setAudioContext(this.audioContext);\n }\n if ((_a = this.options.audioOutput) === null || _a === void 0 ? void 0 : _a.deviceId) {\n participant.setAudioOutput(this.options.audioOutput).catch(e => this.log.warn(\"Could not set audio output: \".concat(e.message), this.logContext));\n }\n return participant;\n }\n getOrCreateParticipant(identity, info) {\n if (this.remoteParticipants.has(identity)) {\n const existingParticipant = this.remoteParticipants.get(identity);\n if (info) {\n const wasUpdated = existingParticipant.updateInfo(info);\n if (wasUpdated) {\n this.sidToIdentity.set(info.sid, info.identity);\n }\n }\n return existingParticipant;\n }\n const participant = this.createParticipant(identity, info);\n this.remoteParticipants.set(identity, participant);\n this.sidToIdentity.set(info.sid, info.identity);\n // if we have valid info and the participant wasn't in the map before, we can assume the participant is new\n // firing here to make sure that `ParticipantConnected` fires before the initial track events\n this.emitWhenConnected(RoomEvent.ParticipantConnected, participant);\n // also forward events\n // trackPublished is only fired for tracks added after both local participant\n // and remote participant joined the room\n participant.on(ParticipantEvent.TrackPublished, trackPublication => {\n this.emitWhenConnected(RoomEvent.TrackPublished, trackPublication, participant);\n }).on(ParticipantEvent.TrackSubscribed, (track, publication) => {\n // monitor playback status\n if (track.kind === Track.Kind.Audio) {\n track.on(TrackEvent.AudioPlaybackStarted, this.handleAudioPlaybackStarted);\n track.on(TrackEvent.AudioPlaybackFailed, this.handleAudioPlaybackFailed);\n } else if (track.kind === Track.Kind.Video) {\n track.on(TrackEvent.VideoPlaybackFailed, this.handleVideoPlaybackFailed);\n track.on(TrackEvent.VideoPlaybackStarted, this.handleVideoPlaybackStarted);\n }\n this.emit(RoomEvent.TrackSubscribed, track, publication, participant);\n }).on(ParticipantEvent.TrackUnpublished, publication => {\n this.emit(RoomEvent.TrackUnpublished, publication, participant);\n }).on(ParticipantEvent.TrackUnsubscribed, (track, publication) => {\n this.emit(RoomEvent.TrackUnsubscribed, track, publication, participant);\n }).on(ParticipantEvent.TrackSubscriptionFailed, sid => {\n this.emit(RoomEvent.TrackSubscriptionFailed, sid, participant);\n }).on(ParticipantEvent.TrackMuted, pub => {\n this.emitWhenConnected(RoomEvent.TrackMuted, pub, participant);\n }).on(ParticipantEvent.TrackUnmuted, pub => {\n this.emitWhenConnected(RoomEvent.TrackUnmuted, pub, participant);\n }).on(ParticipantEvent.ParticipantMetadataChanged, metadata => {\n this.emitWhenConnected(RoomEvent.ParticipantMetadataChanged, metadata, participant);\n }).on(ParticipantEvent.ParticipantNameChanged, name => {\n this.emitWhenConnected(RoomEvent.ParticipantNameChanged, name, participant);\n }).on(ParticipantEvent.AttributesChanged, changedAttributes => {\n this.emitWhenConnected(RoomEvent.ParticipantAttributesChanged, changedAttributes, participant);\n }).on(ParticipantEvent.ConnectionQualityChanged, quality => {\n this.emitWhenConnected(RoomEvent.ConnectionQualityChanged, quality, participant);\n }).on(ParticipantEvent.ParticipantPermissionsChanged, prevPermissions => {\n this.emitWhenConnected(RoomEvent.ParticipantPermissionsChanged, prevPermissions, participant);\n }).on(ParticipantEvent.TrackSubscriptionStatusChanged, (pub, status) => {\n this.emitWhenConnected(RoomEvent.TrackSubscriptionStatusChanged, pub, status, participant);\n }).on(ParticipantEvent.TrackSubscriptionFailed, (trackSid, error) => {\n this.emit(RoomEvent.TrackSubscriptionFailed, trackSid, participant, error);\n }).on(ParticipantEvent.TrackSubscriptionPermissionChanged, (pub, status) => {\n this.emitWhenConnected(RoomEvent.TrackSubscriptionPermissionChanged, pub, status, participant);\n });\n // update info at the end after callbacks have been set up\n if (info) {\n participant.updateInfo(info);\n }\n return participant;\n }\n sendSyncState() {\n const remoteTracks = Array.from(this.remoteParticipants.values()).reduce((acc, participant) => {\n acc.push(...participant.getTrackPublications()); // FIXME would be nice to have this return RemoteTrackPublications directly instead of the type cast\n return acc;\n }, []);\n const localTracks = this.localParticipant.getTrackPublications(); // FIXME would be nice to have this return LocalTrackPublications directly instead of the type cast\n this.engine.sendSyncState(remoteTracks, localTracks);\n }\n /**\n * After resuming, we'll need to notify the server of the current\n * subscription settings.\n */\n updateSubscriptions() {\n for (const p of this.remoteParticipants.values()) {\n for (const pub of p.videoTrackPublications.values()) {\n if (pub.isSubscribed && pub instanceof RemoteTrackPublication) {\n pub.emitTrackUpdate();\n }\n }\n }\n }\n getRemoteParticipantBySid(sid) {\n const identity = this.sidToIdentity.get(sid);\n if (identity) {\n return this.remoteParticipants.get(identity);\n }\n }\n registerConnectionReconcile() {\n this.clearConnectionReconcile();\n let consecutiveFailures = 0;\n this.connectionReconcileInterval = CriticalTimers.setInterval(() => {\n if (\n // ensure we didn't tear it down\n !this.engine ||\n // engine detected close, but Room missed it\n this.engine.isClosed ||\n // transports failed without notifying engine\n !this.engine.verifyTransport()) {\n consecutiveFailures++;\n this.log.warn('detected connection state mismatch', Object.assign(Object.assign({}, this.logContext), {\n numFailures: consecutiveFailures,\n engine: {\n closed: this.engine.isClosed,\n transportsConnected: this.engine.verifyTransport()\n }\n }));\n if (consecutiveFailures >= 3) {\n this.recreateEngine();\n this.handleDisconnect(this.options.stopLocalTrackOnUnpublish, DisconnectReason.STATE_MISMATCH);\n }\n } else {\n consecutiveFailures = 0;\n }\n }, connectionReconcileFrequency);\n }\n clearConnectionReconcile() {\n if (this.connectionReconcileInterval) {\n CriticalTimers.clearInterval(this.connectionReconcileInterval);\n }\n }\n setAndEmitConnectionState(state) {\n if (state === this.state) {\n // unchanged\n return false;\n }\n this.state = state;\n this.emit(RoomEvent.ConnectionStateChanged, this.state);\n return true;\n }\n emitBufferedEvents() {\n this.bufferedEvents.forEach(_ref3 => {\n let [ev, args] = _ref3;\n this.emit(ev, ...args);\n });\n this.bufferedEvents = [];\n }\n emitWhenConnected(event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (this.state === ConnectionState.Reconnecting || this.isResuming || !this.engine || this.engine.pendingReconnect) {\n // in case the room is reconnecting, buffer the events by firing them later after emitting RoomEvent.Reconnected\n this.bufferedEvents.push([event, args]);\n } else if (this.state === ConnectionState.Connected) {\n return this.emit(event, ...args);\n }\n return false;\n }\n /**\n * Allows to populate a room with simulated participants.\n * No actual connection to a server will be established, all state is\n * @experimental\n */\n simulateParticipants(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const publishOptions = Object.assign({\n audio: true,\n video: true,\n useRealTracks: false\n }, options.publish);\n const participantOptions = Object.assign({\n count: 9,\n audio: false,\n video: true,\n aspectRatios: [1.66, 1.7, 1.3]\n }, options.participants);\n this.handleDisconnect();\n this.roomInfo = new Room$1({\n sid: 'RM_SIMULATED',\n name: 'simulated-room',\n emptyTimeout: 0,\n maxParticipants: 0,\n creationTime: protoInt64.parse(new Date().getTime()),\n metadata: '',\n numParticipants: 1,\n numPublishers: 1,\n turnPassword: '',\n enabledCodecs: [],\n activeRecording: false\n });\n this.localParticipant.updateInfo(new ParticipantInfo({\n identity: 'simulated-local',\n name: 'local-name'\n }));\n this.setupLocalParticipantEvents();\n this.emit(RoomEvent.SignalConnected);\n this.emit(RoomEvent.Connected);\n this.setAndEmitConnectionState(ConnectionState.Connected);\n if (publishOptions.video) {\n const camPub = new LocalTrackPublication(Track.Kind.Video, new TrackInfo({\n source: TrackSource.CAMERA,\n sid: Math.floor(Math.random() * 10000).toString(),\n type: TrackType.AUDIO,\n name: 'video-dummy'\n }), new LocalVideoTrack(publishOptions.useRealTracks ? (yield window.navigator.mediaDevices.getUserMedia({\n video: true\n })).getVideoTracks()[0] : createDummyVideoStreamTrack(160 * ((_a = participantOptions.aspectRatios[0]) !== null && _a !== void 0 ? _a : 1), 160, true, true), undefined, false, {\n loggerName: this.options.loggerName,\n loggerContextCb: () => this.logContext\n }), {\n loggerName: this.options.loggerName,\n loggerContextCb: () => this.logContext\n });\n // @ts-ignore\n this.localParticipant.addTrackPublication(camPub);\n this.localParticipant.emit(ParticipantEvent.LocalTrackPublished, camPub);\n }\n if (publishOptions.audio) {\n const audioPub = new LocalTrackPublication(Track.Kind.Audio, new TrackInfo({\n source: TrackSource.MICROPHONE,\n sid: Math.floor(Math.random() * 10000).toString(),\n type: TrackType.AUDIO\n }), new LocalAudioTrack(publishOptions.useRealTracks ? (yield navigator.mediaDevices.getUserMedia({\n audio: true\n })).getAudioTracks()[0] : getEmptyAudioStreamTrack(), undefined, false, this.audioContext, {\n loggerName: this.options.loggerName,\n loggerContextCb: () => this.logContext\n }), {\n loggerName: this.options.loggerName,\n loggerContextCb: () => this.logContext\n });\n // @ts-ignore\n this.localParticipant.addTrackPublication(audioPub);\n this.localParticipant.emit(ParticipantEvent.LocalTrackPublished, audioPub);\n }\n for (let i = 0; i < participantOptions.count - 1; i += 1) {\n let info = new ParticipantInfo({\n sid: Math.floor(Math.random() * 10000).toString(),\n identity: \"simulated-\".concat(i),\n state: ParticipantInfo_State.ACTIVE,\n tracks: [],\n joinedAt: protoInt64.parse(Date.now())\n });\n const p = this.getOrCreateParticipant(info.identity, info);\n if (participantOptions.video) {\n const dummyVideo = createDummyVideoStreamTrack(160 * ((_b = participantOptions.aspectRatios[i % participantOptions.aspectRatios.length]) !== null && _b !== void 0 ? _b : 1), 160, false, true);\n const videoTrack = new TrackInfo({\n source: TrackSource.CAMERA,\n sid: Math.floor(Math.random() * 10000).toString(),\n type: TrackType.AUDIO\n });\n p.addSubscribedMediaTrack(dummyVideo, videoTrack.sid, new MediaStream([dummyVideo]), new RTCRtpReceiver());\n info.tracks = [...info.tracks, videoTrack];\n }\n if (participantOptions.audio) {\n const dummyTrack = getEmptyAudioStreamTrack();\n const audioTrack = new TrackInfo({\n source: TrackSource.MICROPHONE,\n sid: Math.floor(Math.random() * 10000).toString(),\n type: TrackType.AUDIO\n });\n p.addSubscribedMediaTrack(dummyTrack, audioTrack.sid, new MediaStream([dummyTrack]), new RTCRtpReceiver());\n info.tracks = [...info.tracks, audioTrack];\n }\n p.updateInfo(info);\n }\n });\n }\n // /** @internal */\n emit(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n // active speaker updates are too spammy\n if (event !== RoomEvent.ActiveSpeakersChanged) {\n // only extract logContext from arguments in order to avoid logging the whole object tree\n const minimizedArgs = mapArgs(args).filter(arg => arg !== undefined);\n this.log.debug(\"room event \".concat(event), Object.assign(Object.assign({}, this.logContext), {\n event,\n args: minimizedArgs\n }));\n }\n return super.emit(event, ...args);\n }\n}\nfunction mapArgs(args) {\n return args.map(arg => {\n if (!arg) {\n return;\n }\n if (Array.isArray(arg)) {\n return mapArgs(arg);\n }\n if (typeof arg === 'object') {\n return 'logContext' in arg && arg.logContext;\n }\n return arg;\n });\n}\n\nvar CheckStatus;\n(function (CheckStatus) {\n CheckStatus[CheckStatus[\"IDLE\"] = 0] = \"IDLE\";\n CheckStatus[CheckStatus[\"RUNNING\"] = 1] = \"RUNNING\";\n CheckStatus[CheckStatus[\"SKIPPED\"] = 2] = \"SKIPPED\";\n CheckStatus[CheckStatus[\"SUCCESS\"] = 3] = \"SUCCESS\";\n CheckStatus[CheckStatus[\"FAILED\"] = 4] = \"FAILED\";\n})(CheckStatus || (CheckStatus = {}));\nclass Checker extends eventsExports.EventEmitter {\n constructor(url, token) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n super();\n this.status = CheckStatus.IDLE;\n this.logs = [];\n this.errorsAsWarnings = false;\n this.url = url;\n this.token = token;\n this.name = this.constructor.name;\n this.room = new Room(options.roomOptions);\n this.connectOptions = options.connectOptions;\n if (options.errorsAsWarnings) {\n this.errorsAsWarnings = options.errorsAsWarnings;\n }\n }\n run(onComplete) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.status !== CheckStatus.IDLE) {\n throw Error('check is running already');\n }\n this.setStatus(CheckStatus.RUNNING);\n try {\n yield this.perform();\n } catch (err) {\n if (err instanceof Error) {\n if (this.errorsAsWarnings) {\n this.appendWarning(err.message);\n } else {\n this.appendError(err.message);\n }\n }\n }\n yield this.disconnect();\n // sleep for a bit to ensure disconnect\n yield new Promise(resolve => setTimeout(resolve, 500));\n // @ts-ignore\n if (this.status !== CheckStatus.SKIPPED) {\n this.setStatus(this.isSuccess() ? CheckStatus.SUCCESS : CheckStatus.FAILED);\n }\n if (onComplete) {\n onComplete();\n }\n return this.getInfo();\n });\n }\n isSuccess() {\n return !this.logs.some(l => l.level === 'error');\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.room.state === ConnectionState.Connected) {\n return this.room;\n }\n yield this.room.connect(this.url, this.token, this.connectOptions);\n return this.room;\n });\n }\n disconnect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.room && this.room.state !== ConnectionState.Disconnected) {\n yield this.room.disconnect();\n // wait for it to go through\n yield new Promise(resolve => setTimeout(resolve, 500));\n }\n });\n }\n skip() {\n this.setStatus(CheckStatus.SKIPPED);\n }\n appendMessage(message) {\n this.logs.push({\n level: 'info',\n message\n });\n this.emit('update', this.getInfo());\n }\n appendWarning(message) {\n this.logs.push({\n level: 'warning',\n message\n });\n this.emit('update', this.getInfo());\n }\n appendError(message) {\n this.logs.push({\n level: 'error',\n message\n });\n this.emit('update', this.getInfo());\n }\n setStatus(status) {\n this.status = status;\n this.emit('update', this.getInfo());\n }\n get engine() {\n var _a;\n return (_a = this.room) === null || _a === void 0 ? void 0 : _a.engine;\n }\n getInfo() {\n return {\n logs: this.logs,\n name: this.name,\n status: this.status,\n description: this.description\n };\n }\n}\n\nclass PublishAudioCheck extends Checker {\n get description() {\n return 'Can publish audio';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const room = yield this.connect();\n const track = yield createLocalAudioTrack();\n room.localParticipant.publishTrack(track);\n // wait for a few seconds to publish\n yield new Promise(resolve => setTimeout(resolve, 3000));\n // verify RTC stats that it's publishing\n const stats = yield (_a = track.sender) === null || _a === void 0 ? void 0 : _a.getStats();\n if (!stats) {\n throw new Error('Could not get RTCStats');\n }\n let numPackets = 0;\n stats.forEach(stat => {\n if (stat.type === 'outbound-rtp' && (stat.kind === 'audio' || !stat.kind && stat.mediaType === 'audio')) {\n numPackets = stat.packetsSent;\n }\n });\n if (numPackets === 0) {\n throw new Error('Could not determine packets are sent');\n }\n this.appendMessage(\"published \".concat(numPackets, \" audio packets\"));\n });\n }\n}\n\nclass PublishVideoCheck extends Checker {\n get description() {\n return 'Can publish video';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const room = yield this.connect();\n const track = yield createLocalVideoTrack();\n room.localParticipant.publishTrack(track);\n // wait for a few seconds to publish\n yield new Promise(resolve => setTimeout(resolve, 5000));\n // verify RTC stats that it's publishing\n const stats = yield (_a = track.sender) === null || _a === void 0 ? void 0 : _a.getStats();\n if (!stats) {\n throw new Error('Could not get RTCStats');\n }\n let numPackets = 0;\n stats.forEach(stat => {\n if (stat.type === 'outbound-rtp' && (stat.kind === 'video' || !stat.kind && stat.mediaType === 'video')) {\n numPackets += stat.packetsSent;\n }\n });\n if (numPackets === 0) {\n throw new Error('Could not determine packets are sent');\n }\n this.appendMessage(\"published \".concat(numPackets, \" video packets\"));\n });\n }\n}\n\nclass ReconnectCheck extends Checker {\n get description() {\n return 'Resuming connection after interruption';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const room = yield this.connect();\n let reconnectingTriggered = false;\n let reconnected = false;\n let reconnectResolver;\n const reconnectTimeout = new Promise(resolve => {\n setTimeout(resolve, 5000);\n reconnectResolver = resolve;\n });\n const handleReconnecting = () => {\n reconnectingTriggered = true;\n };\n room.on(RoomEvent.SignalReconnecting, handleReconnecting).on(RoomEvent.Reconnecting, handleReconnecting).on(RoomEvent.Reconnected, () => {\n reconnected = true;\n reconnectResolver(true);\n });\n (_a = room.engine.client.ws) === null || _a === void 0 ? void 0 : _a.close();\n const onClose = room.engine.client.onClose;\n if (onClose) {\n onClose('');\n }\n yield reconnectTimeout;\n if (!reconnectingTriggered) {\n throw new Error('Did not attempt to reconnect');\n } else if (!reconnected || room.state !== ConnectionState.Connected) {\n this.appendWarning('reconnection is only possible in Redis-based configurations');\n throw new Error('Not able to reconnect');\n }\n });\n }\n}\n\nclass TURNCheck extends Checker {\n get description() {\n return 'Can connect via TURN';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const signalClient = new SignalClient();\n const joinRes = yield signalClient.join(this.url, this.token, {\n autoSubscribe: true,\n maxRetries: 0,\n e2eeEnabled: false,\n websocketTimeout: 15000\n });\n let hasTLS = false;\n let hasTURN = false;\n let hasSTUN = false;\n for (let iceServer of joinRes.iceServers) {\n for (let url of iceServer.urls) {\n if (url.startsWith('turn:')) {\n hasTURN = true;\n hasSTUN = true;\n } else if (url.startsWith('turns:')) {\n hasTURN = true;\n hasSTUN = true;\n hasTLS = true;\n }\n if (url.startsWith('stun:')) {\n hasSTUN = true;\n }\n }\n }\n if (!hasSTUN) {\n this.appendWarning('No STUN servers configured on server side.');\n } else if (hasTURN && !hasTLS) {\n this.appendWarning('TURN is configured server side, but TURN/TLS is unavailable.');\n }\n yield signalClient.close();\n if (((_b = (_a = this.connectOptions) === null || _a === void 0 ? void 0 : _a.rtcConfig) === null || _b === void 0 ? void 0 : _b.iceServers) || hasTURN) {\n yield this.room.connect(this.url, this.token, {\n rtcConfig: {\n iceTransportPolicy: 'relay'\n }\n });\n } else {\n this.appendWarning('No TURN servers configured.');\n this.skip();\n yield new Promise(resolve => setTimeout(resolve, 0));\n }\n });\n }\n}\n\nclass WebRTCCheck extends Checker {\n get description() {\n return 'Establishing WebRTC connection';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n let hasTcp = false;\n let hasIpv4Udp = false;\n this.room.on(RoomEvent.SignalConnected, () => {\n const prevTrickle = this.room.engine.client.onTrickle;\n this.room.engine.client.onTrickle = (sd, target) => {\n if (sd.candidate) {\n const candidate = new RTCIceCandidate(sd);\n let str = \"\".concat(candidate.protocol, \" \").concat(candidate.address, \":\").concat(candidate.port, \" \").concat(candidate.type);\n if (candidate.address) {\n if (isIPPrivate(candidate.address)) {\n str += ' (private)';\n } else {\n if (candidate.protocol === 'tcp' && candidate.tcpType === 'passive') {\n hasTcp = true;\n str += ' (passive)';\n } else if (candidate.protocol === 'udp') {\n hasIpv4Udp = true;\n }\n }\n }\n this.appendMessage(str);\n }\n if (prevTrickle) {\n prevTrickle(sd, target);\n }\n };\n if (this.room.engine.pcManager) {\n this.room.engine.pcManager.subscriber.onIceCandidateError = ev => {\n if (ev instanceof RTCPeerConnectionIceErrorEvent) {\n this.appendWarning(\"error with ICE candidate: \".concat(ev.errorCode, \" \").concat(ev.errorText, \" \").concat(ev.url));\n }\n };\n }\n });\n try {\n yield this.connect();\n livekitLogger.info('now the room is connected');\n } catch (err) {\n this.appendWarning('ports need to be open on firewall in order to connect.');\n throw err;\n }\n if (!hasTcp) {\n this.appendWarning('Server is not configured for ICE/TCP');\n }\n if (!hasIpv4Udp) {\n this.appendWarning('No public IPv4 UDP candidates were found. Your server is likely not configured correctly');\n }\n });\n }\n}\nfunction isIPPrivate(address) {\n const parts = address.split('.');\n if (parts.length === 4) {\n if (parts[0] === '10') {\n return true;\n } else if (parts[0] === '192' && parts[1] === '168') {\n return true;\n } else if (parts[0] === '172') {\n const second = parseInt(parts[1], 10);\n if (second >= 16 && second <= 31) {\n return true;\n }\n }\n }\n return false;\n}\n\nclass WebSocketCheck extends Checker {\n get description() {\n return 'Connecting to signal connection via WebSocket';\n }\n perform() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n if (this.url.startsWith('ws:') || this.url.startsWith('http:')) {\n this.appendWarning('Server is insecure, clients may block connections to it');\n }\n let signalClient = new SignalClient();\n const joinRes = yield signalClient.join(this.url, this.token, {\n autoSubscribe: true,\n maxRetries: 0,\n e2eeEnabled: false,\n websocketTimeout: 15000\n });\n this.appendMessage(\"Connected to server, version \".concat(joinRes.serverVersion, \".\"));\n if (((_a = joinRes.serverInfo) === null || _a === void 0 ? void 0 : _a.edition) === ServerInfo_Edition.Cloud && ((_b = joinRes.serverInfo) === null || _b === void 0 ? void 0 : _b.region)) {\n this.appendMessage(\"LiveKit Cloud: \".concat((_c = joinRes.serverInfo) === null || _c === void 0 ? void 0 : _c.region));\n }\n yield signalClient.close();\n });\n }\n}\n\nclass ConnectionCheck extends eventsExports.EventEmitter {\n constructor(url, token) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n super();\n this.options = {};\n this.checkResults = new Map();\n this.url = url;\n this.token = token;\n this.options = options;\n }\n getNextCheckId() {\n const nextId = this.checkResults.size;\n this.checkResults.set(nextId, {\n logs: [],\n status: CheckStatus.IDLE,\n name: '',\n description: ''\n });\n return nextId;\n }\n updateCheck(checkId, info) {\n this.checkResults.set(checkId, info);\n this.emit('checkUpdate', checkId, info);\n }\n isSuccess() {\n return Array.from(this.checkResults.values()).every(r => r.status !== CheckStatus.FAILED);\n }\n getResults() {\n return Array.from(this.checkResults.values());\n }\n createAndRunCheck(check) {\n return __awaiter(this, void 0, void 0, function* () {\n const checkId = this.getNextCheckId();\n const test = new check(this.url, this.token, this.options);\n const handleUpdate = info => {\n this.updateCheck(checkId, info);\n };\n test.on('update', handleUpdate);\n const result = yield test.run();\n test.off('update', handleUpdate);\n return result;\n });\n }\n checkWebsocket() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(WebSocketCheck);\n });\n }\n checkWebRTC() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(WebRTCCheck);\n });\n }\n checkTURN() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(TURNCheck);\n });\n }\n checkReconnect() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(ReconnectCheck);\n });\n }\n checkPublishAudio() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(PublishAudioCheck);\n });\n }\n checkPublishVideo() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.createAndRunCheck(PublishVideoCheck);\n });\n }\n}\n\n/**\n * Try to analyze the local track to determine the facing mode of a track.\n *\n * @remarks\n * There is no property supported by all browsers to detect whether a video track originated from a user- or environment-facing camera device.\n * For this reason, we use the `facingMode` property when available, but will fall back on a string-based analysis of the device label to determine the facing mode.\n * If both methods fail, the default facing mode will be used.\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode | MDN docs on facingMode}\n * @experimental\n */\nfunction facingModeFromLocalTrack(localTrack) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _a;\n const track = localTrack instanceof LocalTrack ? localTrack.mediaStreamTrack : localTrack;\n const trackSettings = track.getSettings();\n let result = {\n facingMode: (_a = options.defaultFacingMode) !== null && _a !== void 0 ? _a : 'user',\n confidence: 'low'\n };\n // 1. Try to get facingMode from track settings.\n if ('facingMode' in trackSettings) {\n const rawFacingMode = trackSettings.facingMode;\n livekitLogger.trace('rawFacingMode', {\n rawFacingMode\n });\n if (rawFacingMode && typeof rawFacingMode === 'string' && isFacingModeValue(rawFacingMode)) {\n result = {\n facingMode: rawFacingMode,\n confidence: 'high'\n };\n }\n }\n // 2. If we don't have a high confidence we try to get the facing mode from the device label.\n if (['low', 'medium'].includes(result.confidence)) {\n livekitLogger.trace(\"Try to get facing mode from device label: (\".concat(track.label, \")\"));\n const labelAnalysisResult = facingModeFromDeviceLabel(track.label);\n if (labelAnalysisResult !== undefined) {\n result = labelAnalysisResult;\n }\n }\n return result;\n}\nconst knownDeviceLabels = new Map([['obs virtual camera', {\n facingMode: 'environment',\n confidence: 'medium'\n}]]);\nconst knownDeviceLabelSections = new Map([['iphone', {\n facingMode: 'environment',\n confidence: 'medium'\n}], ['ipad', {\n facingMode: 'environment',\n confidence: 'medium'\n}]]);\n/**\n * Attempt to analyze the device label to determine the facing mode.\n *\n * @experimental\n */\nfunction facingModeFromDeviceLabel(deviceLabel) {\n var _a;\n const label = deviceLabel.trim().toLowerCase();\n // Empty string is a valid device label but we can't infer anything from it.\n if (label === '') {\n return undefined;\n }\n // Can we match against widely known device labels.\n if (knownDeviceLabels.has(label)) {\n return knownDeviceLabels.get(label);\n }\n // Can we match against sections of the device label.\n return (_a = Array.from(knownDeviceLabelSections.entries()).find(_ref => {\n let [section] = _ref;\n return label.includes(section);\n })) === null || _a === void 0 ? void 0 : _a[1];\n}\nfunction isFacingModeValue(item) {\n const allowedValues = ['user', 'environment', 'left', 'right'];\n return item === undefined || allowedValues.includes(item);\n}\n\nexport { AudioPresets, BaseKeyProvider, CheckStatus, Checker, ConnectionCheck, ConnectionError, ConnectionErrorReason, ConnectionQuality, ConnectionState, CriticalTimers, CryptorError, CryptorErrorReason, CryptorEvent, DataPacket_Kind, DefaultReconnectPolicy, DeviceUnsupportedError, DisconnectReason, EncryptionEvent, EngineEvent, ExternalE2EEKeyProvider, KeyHandlerEvent, KeyProviderEvent, LivekitError, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, LoggerNames, MediaDeviceFailure, h as Mutex, NegotiationError, Participant, ParticipantEvent, ParticipantInfo_Kind as ParticipantKind, PublishDataError, RemoteAudioTrack, RemoteParticipant, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, RoomEvent, RpcError, ScreenSharePresets, SignalRequestError, SubscriptionError, Track, TrackEvent, TrackInvalidError, TrackPublication, UnexpectedConnectionState, UnsupportedServer, VideoPreset, VideoPresets, VideoPresets43, VideoQuality, attachToElement, compareVersions, createAudioAnalyser, createE2EEKey, createKeyMaterialFromBuffer, createKeyMaterialFromString, createLocalAudioTrack, createLocalScreenTracks, createLocalTracks, createLocalVideoTrack, deriveKeys, detachTrack, extractProcessorsFromOptions, facingModeFromDeviceLabel, facingModeFromLocalTrack, getBrowser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, getLogger, importKey, isBackupCodec, isBrowserSupported, isE2EESupported, isInsertableStreamSupported, isScriptTransformSupported, isVideoFrame, needsRbspUnescaping, parseRbsp, protocolVersion, ratchet, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsDynacast, supportsVP9, version, videoCodecs, writeRbsp };\n//# sourceMappingURL=livekit-client.esm.mjs.map\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _DownOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/DownOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar DownOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _DownOutlined.default\n }));\n};\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"DownOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"ffd3b83e8b5878f4785591ff54b1dfff.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.video-region{pointer-events:none;position:absolute;background-color:rgba(0,255,255,.2)}.video-region__privacy-mask{background-color:#000}.video-region__detection-window{background-color:rgba(0,255,0,.2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormVideoRegionSelect/VideoRegion.scss\"],\"names\":[],\"mappings\":\"AAAA,cACE,mBAAA,CACA,iBAAA,CACA,mCAAA,CAEA,4BACE,qBAAA,CAGF,gCACE,iCAAA\",\"sourcesContent\":[\".video-region {\\n pointer-events: none;\\n position: absolute;\\n background-color: rgba(0, 255, 255, 0.2);\\n\\n &__privacy-mask {\\n background-color: black;\\n }\\n\\n &__detection-window {\\n background-color: rgba(0, 255, 0, 0.2);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { dropUndefinedKeys } from '@sentry/utils';\nimport { getClient, getCurrentScope } from './currentScopes.js';\n\n/**\n * Send user feedback to Sentry.\n */\nfunction captureFeedback(\n params,\n hint = {},\n scope = getCurrentScope(),\n) {\n const { message, name, email, url, source, associatedEventId, tags } = params;\n\n const feedbackEvent = {\n contexts: {\n feedback: dropUndefinedKeys({\n contact_email: email,\n name,\n message,\n url,\n source,\n associated_event_id: associatedEventId,\n }),\n },\n type: 'feedback',\n level: 'info',\n tags,\n };\n\n const client = (scope && scope.getClient()) || getClient();\n\n if (client) {\n client.emit('beforeSendFeedback', feedbackEvent, hint);\n }\n\n const eventId = scope.captureEvent(feedbackEvent, hint);\n\n return eventId;\n}\n\nexport { captureFeedback };\n//# sourceMappingURL=feedback.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\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\nmodule.exports = arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\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 infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _without from \"lodash-es/without\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { childrenUtils, customPropTypes, getElementType, getUnhandledProps, SUI } from '../../lib';\n/**\n * Several icons can be used together as a group.\n */\n\nfunction IconGroup(props) {\n var children = props.children,\n className = props.className,\n content = props.content,\n size = props.size;\n var classes = cx(size, 'icons', className);\n var rest = getUnhandledProps(IconGroup, props);\n var ElementType = getElementType(IconGroup, props);\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, {\n className: classes\n }), childrenUtils.isNil(children) ? content : children);\n}\n\nIconGroup.handledProps = [\"as\", \"children\", \"className\", \"content\", \"size\"];\nIconGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Primary content. */\n children: PropTypes.node,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Shorthand for primary content. */\n content: customPropTypes.contentShorthand,\n\n /** Size of the icon group. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium'))\n} : {};\nIconGroup.defaultProps = {\n as: 'i'\n};\nexport default IconGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _without from \"lodash-es/without\";\nimport _invoke from \"lodash-es/invoke\";\nimport _isNil from \"lodash-es/isNil\";\nimport cx from 'clsx';\nimport PropTypes from 'prop-types';\nimport React, { PureComponent } from 'react';\nimport { createShorthandFactory, customPropTypes, getElementType, getUnhandledProps, SUI, useKeyOnly, useKeyOrValueAndKey, useValueAndKey } from '../../lib';\nimport IconGroup from './IconGroup';\n/**\n * An icon is a glyph used to represent something else.\n * @see Image\n */\n\nvar Icon = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Icon, _PureComponent);\n\n function Icon() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;\n\n _this.handleClick = function (e) {\n var disabled = _this.props.disabled;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n _invoke(_this.props, 'onClick', e, _this.props);\n };\n\n return _this;\n }\n\n var _proto = Icon.prototype;\n\n _proto.getIconAriaOptions = function getIconAriaOptions() {\n var ariaOptions = {};\n var _this$props = this.props,\n ariaLabel = _this$props['aria-label'],\n ariaHidden = _this$props['aria-hidden'];\n\n if (_isNil(ariaLabel)) {\n ariaOptions['aria-hidden'] = 'true';\n } else {\n ariaOptions['aria-label'] = ariaLabel;\n }\n\n if (!_isNil(ariaHidden)) {\n ariaOptions['aria-hidden'] = ariaHidden;\n }\n\n return ariaOptions;\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n bordered = _this$props2.bordered,\n circular = _this$props2.circular,\n className = _this$props2.className,\n color = _this$props2.color,\n corner = _this$props2.corner,\n disabled = _this$props2.disabled,\n fitted = _this$props2.fitted,\n flipped = _this$props2.flipped,\n inverted = _this$props2.inverted,\n link = _this$props2.link,\n loading = _this$props2.loading,\n name = _this$props2.name,\n rotated = _this$props2.rotated,\n size = _this$props2.size;\n var classes = cx(color, name, size, useKeyOnly(bordered, 'bordered'), useKeyOnly(circular, 'circular'), useKeyOnly(disabled, 'disabled'), useKeyOnly(fitted, 'fitted'), useKeyOnly(inverted, 'inverted'), useKeyOnly(link, 'link'), useKeyOnly(loading, 'loading'), useKeyOrValueAndKey(corner, 'corner'), useValueAndKey(flipped, 'flipped'), useValueAndKey(rotated, 'rotated'), 'icon', className);\n var rest = getUnhandledProps(Icon, this.props);\n var ElementType = getElementType(Icon, this.props);\n var ariaOptions = this.getIconAriaOptions();\n return /*#__PURE__*/React.createElement(ElementType, _extends({}, rest, ariaOptions, {\n className: classes,\n onClick: this.handleClick\n }));\n };\n\n return Icon;\n}(PureComponent);\n\nIcon.handledProps = [\"aria-hidden\", \"aria-label\", \"as\", \"bordered\", \"circular\", \"className\", \"color\", \"corner\", \"disabled\", \"fitted\", \"flipped\", \"inverted\", \"link\", \"loading\", \"name\", \"rotated\", \"size\"];\nIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** An element type to render as (string or function). */\n as: PropTypes.elementType,\n\n /** Formatted to appear bordered. */\n bordered: PropTypes.bool,\n\n /** Icon can formatted to appear circular. */\n circular: PropTypes.bool,\n\n /** Additional classes. */\n className: PropTypes.string,\n\n /** Color of the icon. */\n color: PropTypes.oneOf(SUI.COLORS),\n\n /** Icons can display a smaller corner icon. */\n corner: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top left', 'top right', 'bottom left', 'bottom right'])]),\n\n /** Show that the icon is inactive. */\n disabled: PropTypes.bool,\n\n /** Fitted, without space to left or right of Icon. */\n fitted: PropTypes.bool,\n\n /** Icon can be flipped. */\n flipped: PropTypes.oneOf(['horizontally', 'vertically']),\n\n /** Formatted to have its colors inverted for contrast. */\n inverted: PropTypes.bool,\n\n /** Icon can be formatted as a link. */\n link: PropTypes.bool,\n\n /** Icon can be used as a simple loader. */\n loading: PropTypes.bool,\n\n /** Name of the icon. */\n name: customPropTypes.suggest(SUI.ALL_ICONS_IN_ALL_CONTEXTS),\n\n /** Icon can rotated. */\n rotated: PropTypes.oneOf(['clockwise', 'counterclockwise']),\n\n /** Size of the icon. */\n size: PropTypes.oneOf(_without(SUI.SIZES, 'medium')),\n\n /** Icon can have an aria label. */\n 'aria-hidden': PropTypes.string,\n\n /** Icon can have an aria label. */\n 'aria-label': PropTypes.string\n} : {};\nIcon.defaultProps = {\n as: 'i'\n};\nIcon.Group = IconGroup;\nIcon.create = createShorthandFactory(Icon, function (value) {\n return {\n name: value\n };\n});\nexport default Icon;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./FormButtons.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./FormButtons.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { t as translate } from 'i18next';\nimport clsx from 'clsx';\nimport { useConfirmModal } from 'utils/customHooks/useConfirmModal';\nimport { Store } from 'antd/es/form/interface';\nimport { OpButton } from '../OpButton/OpButton';\nimport { useOpFormContext } from './OpFormContext';\nimport { OpTooltip } from '../OpTooltip/OpTooltip';\nimport { OpForm } from './OpForm';\nimport { OpFlex } from '../OpFlex/OpFlex';\nimport { useOpFormDrawerContext } from '../OpFormDrawer/OpFormDrawerContext';\n\nimport './FormButtons.scss';\n\ninterface FormButtonsProps<T extends Store> {\n className?: string;\n form: ComponentProps<typeof OpForm<T>>['form'];\n isFormLoading?: boolean;\n isSubmitButtonLoading?: boolean;\n submitButtonLabel?: string;\n resetButtonLabel?: string;\n isReadOnly?: boolean;\n tooltip?: string;\n gtm?: string;\n onResetClick?: () => void;\n}\n\nexport const FormButtons = <T extends Store = Store>({\n className,\n form,\n isFormLoading = false,\n isSubmitButtonLoading = false,\n submitButtonLabel = translate('Save'),\n resetButtonLabel = translate('Reset'),\n isReadOnly = false,\n tooltip,\n gtm,\n onResetClick,\n}: FormButtonsProps<T>) => {\n const confirmModal = useConfirmModal();\n const { t } = useTranslation();\n const { isSubmitting: isDrawerFormSubmitting } = useOpFormDrawerContext();\n const { isSubmitting: isCoreFormSubmitting } = useOpFormContext();\n\n const isSubmitting = isDrawerFormSubmitting || isCoreFormSubmitting;\n\n const handleResetClick = () => {\n if (form?.isFieldsTouched()) {\n confirmModal({\n title: t('Confirm discard?'),\n content: t(\n 'You have unsaved changes. Are you sure you wish to discard them?',\n ),\n cancelText: t('No'),\n closable: true,\n okText: t('Yes'),\n onOk: () => {\n form.resetFields();\n onResetClick?.();\n },\n });\n return;\n }\n\n onResetClick?.();\n };\n\n const onSubmitClick = () => {\n form?.submit();\n };\n\n return (\n <OpTooltip title={tooltip} placement=\"topRight\">\n <OpFlex\n className={clsx('form-buttons', className)}\n justify=\"end\"\n align=\"center\"\n gap=\"middle\"\n >\n <OpButton\n gtm={gtm && `${gtm}-reset-form-button`}\n testId=\"reset-form-button\"\n onClick={handleResetClick}\n disabled={isReadOnly || isFormLoading || isSubmitting}\n >\n {resetButtonLabel}\n </OpButton>\n <OpButton\n gtm={gtm && `${gtm}-submit-form-button`}\n testId=\"submit-form-button\"\n type=\"primary\"\n onClick={onSubmitClick}\n disabled={isReadOnly || isFormLoading}\n loading={isSubmitting || isSubmitButtonLoading}\n >\n {submitButtonLabel}\n </OpButton>\n </OpFlex>\n </OpTooltip>\n );\n};\n","module.exports = __webpack_public_path__ + \"0b06cbc7edf78b6f2810187262e7630b.js\";","module.exports = __webpack_public_path__ + \"755114145e5b97e5571a160a39e716db.js\";","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { CANCEL } from '@redux-saga/symbols';\n\nvar MAX_SIGNED_INT = 2147483647;\nfunction delayP(ms, val) {\n if (val === void 0) {\n val = true;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\n if (process.env.NODE_ENV !== 'production' && ms > MAX_SIGNED_INT) {\n throw new Error('delay only supports a maximum value of ' + MAX_SIGNED_INT + 'ms');\n }\n\n var timeoutId;\n var promise = new Promise(function (resolve) {\n timeoutId = setTimeout(resolve, Math.min(MAX_SIGNED_INT, ms), val);\n });\n\n promise[CANCEL] = function () {\n clearTimeout(timeoutId);\n };\n\n return promise;\n}\n\nexport default delayP;\n","module.exports = __webpack_public_path__ + \"962969a46fefcace3305abd4d6e14a2e.js\";","import { WINDOW } from '../../../types.js';\nimport { generateUniqueID } from './generateUniqueID.js';\nimport { getActivationStart } from './getActivationStart.js';\nimport { getNavigationEntry } from './getNavigationEntry.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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\nconst initMetric = (name, value) => {\n const navEntry = getNavigationEntry();\n let navigationType = 'navigate';\n\n if (navEntry) {\n if ((WINDOW.document && WINDOW.document.prerendering) || getActivationStart() > 0) {\n navigationType = 'prerender';\n } else if (WINDOW.document && WINDOW.document.wasDiscarded) {\n navigationType = 'restore';\n } else if (navEntry.type) {\n navigationType = navEntry.type.replace(/_/g, '-') ;\n }\n }\n\n // Use `entries` type specific for the metric.\n const entries = [];\n\n return {\n name,\n value: typeof value === 'undefined' ? -1 : value,\n rating: 'good' , // If needed, will be updated when reported. `const` to keep the type from widening to `string`.\n delta: 0,\n entries,\n id: generateUniqueID(),\n navigationType,\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","export default __webpack_public_path__ + \"assets/favicons/android-chrome-192x192.png\";","module.exports = __webpack_public_path__ + \"e6ad50b520736b595970c9e07029c3f1.js\";","'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","import { ComponentProps } from 'react';\nimport Tag from 'antd/es/tag';\nimport clsx from 'clsx';\n\ninterface OpTagProps extends ComponentProps<typeof Tag> {\n testId?: string;\n}\n\nexport const OpTag = ({\n className,\n testId = 'op-tag',\n ...tagProps\n}: OpTagProps) => {\n return (\n <Tag\n className={clsx('op-tag', className)}\n data-testid={testId}\n {...tagProps}\n />\n );\n};\n","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\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 '@redux-saga/symbols';\nimport '@babel/runtime/helpers/esm/extends';\nimport { channel, stringableFunc, func, notUndef } from '@redux-saga/is';\nimport { q as makeIterator, L as take, M as fork, N as cancel, O as call, Q as delay, U as actionChannel, V as sliding, W as race, c as check } from './io-22ea0cf9.js';\nexport { U as actionChannel, $ as all, a0 as apply, O as call, N as cancel, a5 as cancelled, a1 as cps, Q as delay, X as effectTypes, a6 as flush, M as fork, a7 as getContext, a3 as join, Z as put, _ as putResolve, W as race, a4 as select, a8 as setContext, a2 as spawn, L as take, Y as takeMaybe } from './io-22ea0cf9.js';\nimport '@redux-saga/delay-p';\n\nvar done = function done(value) {\n return {\n done: true,\n value: value\n };\n};\n\nvar qEnd = {};\nfunction safeName(patternOrChannel) {\n if (channel(patternOrChannel)) {\n return 'channel';\n }\n\n if (stringableFunc(patternOrChannel)) {\n return String(patternOrChannel);\n }\n\n if (func(patternOrChannel)) {\n return patternOrChannel.name;\n }\n\n return String(patternOrChannel);\n}\nfunction fsmIterator(fsm, startState, name) {\n var stateUpdater,\n errorState,\n effect,\n nextState = startState;\n\n function next(arg, error) {\n if (nextState === qEnd) {\n return done(arg);\n }\n\n if (error && !errorState) {\n nextState = qEnd;\n throw error;\n } else {\n stateUpdater && stateUpdater(arg);\n var currentState = error ? fsm[errorState](error) : fsm[nextState]();\n nextState = currentState.nextState;\n effect = currentState.effect;\n stateUpdater = currentState.stateUpdater;\n errorState = currentState.errorState;\n return nextState === qEnd ? done(arg) : effect;\n }\n }\n\n return makeIterator(next, function (error) {\n return next(null, error);\n }, name);\n}\n\nfunction takeEvery(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel$1;\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel$1)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel$1 = ch;\n };\n\n var needsChannel = !channel(patternOrChannel);\n\n if (!needsChannel) {\n setChannel(patternOrChannel);\n }\n\n return fsmIterator({\n q1: function q1() {\n var yActionChannel = {\n done: false,\n value: actionChannel(patternOrChannel, sliding(1))\n };\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, needsChannel ? 'q1' : 'q2', \"throttle(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(patternOrChannel, notUndef, \"throttle requires a pattern or channel\");\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n","module.exports = __webpack_public_path__ + \"5aff3ea7c7d1e0dc497a4c9b39bec043.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport useItems from \"./hooks/useItems\";\nimport CollapsePanel from \"./Panel\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nfunction getActiveKeysArray(activeKey) {\n var currentActiveKey = activeKey;\n if (!Array.isArray(currentActiveKey)) {\n var activeKeyType = _typeof(currentActiveKey);\n currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];\n }\n return currentActiveKey.map(function (key) {\n return String(key);\n });\n}\nvar Collapse = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,\n _props$destroyInactiv = props.destroyInactivePanel,\n destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,\n style = props.style,\n accordion = props.accordion,\n className = props.className,\n children = props.children,\n collapsible = props.collapsible,\n openMotion = props.openMotion,\n expandIcon = props.expandIcon,\n rawActiveKey = props.activeKey,\n defaultActiveKey = props.defaultActiveKey,\n _onChange = props.onChange,\n items = props.items;\n var collapseClassName = classNames(prefixCls, className);\n var _useMergedState = useMergedState([], {\n value: rawActiveKey,\n onChange: function onChange(v) {\n return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);\n },\n defaultValue: defaultActiveKey,\n postState: getActiveKeysArray\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n activeKey = _useMergedState2[0],\n setActiveKey = _useMergedState2[1];\n var onItemClick = function onItemClick(key) {\n return setActiveKey(function () {\n if (accordion) {\n return activeKey[0] === key ? [] : [key];\n }\n var index = activeKey.indexOf(key);\n var isActive = index > -1;\n if (isActive) {\n return activeKey.filter(function (item) {\n return item !== key;\n });\n }\n return [].concat(_toConsumableArray(activeKey), [key]);\n });\n };\n\n // ======================== Children ========================\n warning(!children, '[rc-collapse] `children` will be removed in next major version. Please use `items` instead.');\n var mergedChildren = useItems(items, children, {\n prefixCls: prefixCls,\n accordion: accordion,\n openMotion: openMotion,\n expandIcon: expandIcon,\n collapsible: collapsible,\n destroyInactivePanel: destroyInactivePanel,\n onItemClick: onItemClick,\n activeKey: activeKey\n });\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: collapseClassName,\n style: style,\n role: accordion ? 'tablist' : undefined\n }, pickAttrs(props, {\n aria: true,\n data: true\n })), mergedChildren);\n});\nexport default Object.assign(Collapse, {\n /**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\n Panel: CollapsePanel\n});","module.exports = __webpack_public_path__ + \"119f6c45ea400e3c27e1ce172e4c881d.js\";","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","module.exports = __webpack_public_path__ + \"d83cda12aee0c87c8b381a1234bf7798.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateLeftOutlined = function RotateLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateLeftOutlinedSvg\n }));\n};\n\n/**![rotate-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik02NzIgNDE4SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMTg4VjQ5NGg0NDB2MzI2eiIgLz48cGF0aCBkPSJNODE5LjMgMzI4LjVjLTc4LjgtMTAwLjctMTk2LTE1My42LTMxNC42LTE1NC4ybC0uMi02NGMwLTYuNS03LjYtMTAuMS0xMi42LTYuMWwtMTI4IDEwMWMtNCAzLjEtMy45IDkuMSAwIDEyLjNMNDkyIDMxOC42YzUuMSA0IDEyLjcuNCAxMi42LTYuMXYtNjMuOWMxMi45LjEgMjUuOS45IDM4LjggMi41IDQyLjEgNS4yIDgyLjEgMTguMiAxMTkgMzguNyAzOC4xIDIxLjIgNzEuMiA0OS43IDk4LjQgODQuMyAyNy4xIDM0LjcgNDYuNyA3My43IDU4LjEgMTE1LjhhMzI1Ljk1IDMyNS45NSAwIDAxNi41IDE0MC45aDc0LjljMTQuOC0xMDMuNi0xMS4zLTIxMy04MS0zMDIuM3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RotateLeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RotateLeftOutlined';\n}\nexport default RefIcon;","module.exports = __webpack_public_path__ + \"5cebfc2c3495b6294dcb2a99e5174872.js\";","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","\"use client\";\n\nimport Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _CloudUploadOutlined = _interopRequireDefault(require('./lib/icons/CloudUploadOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _CloudUploadOutlined;\nexports.default = _default;\nmodule.exports = _default;","'use strict';\n\nvar KEBAB_REGEX = /[A-Z]/g;\n\nvar hash = function (str) {\n var h = 5381, i = str.length;\n\n while (i) h = (h * 33) ^ str.charCodeAt(--i);\n\n return '_' + (h >>> 0).toString(36);\n};\n\nexports.create = function (config) {\n config = config || {};\n var assign = config.assign || Object.assign;\n var client = typeof window === 'object';\n\n // Check if we are really in browser environment.\n if (process.env.NODE_ENV !== 'production') {\n if (client) {\n if ((typeof document !== 'object') || !document.getElementsByTagName('HTML')) {\n console.error(\n 'nano-css detected browser environment because of \"window\" global, but ' +\n '\"document\" global seems to be defective.'\n );\n }\n }\n }\n\n var renderer = assign({\n raw: '',\n pfx: '_',\n client: client,\n assign: assign,\n stringify: JSON.stringify,\n kebab: function (prop) {\n return prop.replace(KEBAB_REGEX, '-$&').toLowerCase();\n },\n decl: function (key, value) {\n key = renderer.kebab(key);\n return key + ':' + value + ';';\n },\n hash: function (obj) {\n return hash(renderer.stringify(obj));\n },\n selector: function (parent, selector) {\n return parent + (selector[0] === ':' ? '' : ' ') + selector;\n },\n putRaw: function (rawCssRule) {\n renderer.raw += rawCssRule;\n }\n }, config);\n\n if (renderer.client) {\n if (!renderer.sh)\n document.head.appendChild(renderer.sh = document.createElement('style'));\n\n if (process.env.NODE_ENV !== 'production') {\n renderer.sh.setAttribute('data-nano-css-dev', '');\n\n // Test style sheet used in DEV mode to test if .insetRule() would throw.\n renderer.shTest = document.createElement('style');\n renderer.shTest.setAttribute('data-nano-css-dev-tests', '');\n document.head.appendChild(renderer.shTest);\n }\n\n renderer.putRaw = function (rawCssRule) {\n // .insertRule() is faster than .appendChild(), that's why we use it in PROD.\n // But CSS injected using .insertRule() is not displayed in Chrome Devtools,\n // that's why we use .appendChild in DEV.\n if (process.env.NODE_ENV === 'production') {\n var sheet = renderer.sh.sheet;\n\n // Unknown pseudo-selectors will throw, this try/catch swallows all errors.\n try {\n sheet.insertRule(rawCssRule, sheet.cssRules.length);\n // eslint-disable-next-line no-empty\n } catch (error) {}\n } else {\n // Test if .insertRule() works in dev mode. Unknown pseudo-selectors will throw when\n // .insertRule() is used, but .appendChild() will not throw.\n try {\n renderer.shTest.sheet.insertRule(rawCssRule, renderer.shTest.sheet.cssRules.length);\n } catch (error) {\n if (config.verbose) {\n console.error(error);\n }\n }\n\n // Insert pretty-printed CSS for dev mode.\n renderer.sh.appendChild(document.createTextNode(rawCssRule));\n }\n };\n }\n\n renderer.put = function (selector, decls, atrule) {\n var str = '';\n var prop, value;\n var postponed = [];\n\n for (prop in decls) {\n value = decls[prop];\n\n if ((value instanceof Object) && !(value instanceof Array)) {\n postponed.push(prop);\n } else {\n if ((process.env.NODE_ENV !== 'production') && !renderer.sourcemaps) {\n str += ' ' + renderer.decl(prop, value, selector, atrule) + '\\n';\n } else {\n str += renderer.decl(prop, value, selector, atrule);\n }\n }\n }\n\n if (str) {\n if ((process.env.NODE_ENV !== 'production') && !renderer.sourcemaps) {\n str = '\\n' + selector + ' {\\n' + str + '}\\n';\n } else {\n str = selector + '{' + str + '}';\n }\n renderer.putRaw(atrule ? atrule + '{' + str + '}' : str);\n }\n\n for (var i = 0; i < postponed.length; i++) {\n prop = postponed[i];\n\n if (prop[0] === '@' && prop !== '@font-face') {\n renderer.putAt(selector, decls[prop], prop);\n } else {\n renderer.put(renderer.selector(selector, prop), decls[prop], atrule);\n }\n }\n };\n\n renderer.putAt = renderer.put;\n\n return renderer;\n};\n","import { countries } from 'constants/countries';\nimport parsePhoneNumber, { CountryCode } from 'libphonenumber-js';\n\nexport const phoneUtils = {\n isValidNumber(phone: string) {\n return parsePhoneNumber(phone)?.isValid();\n },\n\n getCountryCode(\n phone: string,\n defaultCountryCode: CountryCode = 'US',\n ): CountryCode {\n return parsePhoneNumber(phone)?.country || defaultCountryCode;\n },\n\n getFormattedE164CountryCode(shortCode: CountryCode): string {\n const countryObj = countries.find((country) => country.short === shortCode);\n return `+${countryObj?.phoneCode}` || '+1';\n },\n};\n","module.exports = __webpack_public_path__ + \"a83211eadd86ef80416334e72774ab11.js\";","module.exports = __webpack_public_path__ + \"58598705e7012f4ca1eb1dd21d3c59a5.js\";","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport NoticeList from \"./NoticeList\";\n// ant-notification ant-notification-topRight\nvar Notifications = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-notification' : _props$prefixCls,\n container = props.container,\n motion = props.motion,\n maxCount = props.maxCount,\n className = props.className,\n style = props.style,\n onAllRemoved = props.onAllRemoved,\n stack = props.stack,\n renderNotifications = props.renderNotifications;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n configList = _React$useState2[0],\n setConfigList = _React$useState2[1];\n\n // ======================== Close =========================\n var onNoticeClose = function onNoticeClose(key) {\n var _config$onClose;\n // Trigger close event\n var config = configList.find(function (item) {\n return item.key === key;\n });\n config === null || config === void 0 || (_config$onClose = config.onClose) === null || _config$onClose === void 0 || _config$onClose.call(config);\n setConfigList(function (list) {\n return list.filter(function (item) {\n return item.key !== key;\n });\n });\n };\n\n // ========================= Refs =========================\n React.useImperativeHandle(ref, function () {\n return {\n open: function open(config) {\n setConfigList(function (list) {\n var clone = _toConsumableArray(list);\n\n // Replace if exist\n var index = clone.findIndex(function (item) {\n return item.key === config.key;\n });\n var innerConfig = _objectSpread({}, config);\n if (index >= 0) {\n var _list$index;\n innerConfig.times = (((_list$index = list[index]) === null || _list$index === void 0 ? void 0 : _list$index.times) || 0) + 1;\n clone[index] = innerConfig;\n } else {\n innerConfig.times = 0;\n clone.push(innerConfig);\n }\n if (maxCount > 0 && clone.length > maxCount) {\n clone = clone.slice(-maxCount);\n }\n return clone;\n });\n },\n close: function close(key) {\n onNoticeClose(key);\n },\n destroy: function destroy() {\n setConfigList([]);\n }\n };\n });\n\n // ====================== Placements ======================\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n placements = _React$useState4[0],\n setPlacements = _React$useState4[1];\n React.useEffect(function () {\n var nextPlacements = {};\n configList.forEach(function (config) {\n var _config$placement = config.placement,\n placement = _config$placement === void 0 ? 'topRight' : _config$placement;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n\n // Fill exist placements to avoid empty list causing remove without motion\n Object.keys(placements).forEach(function (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n });\n setPlacements(nextPlacements);\n }, [configList]);\n\n // Clean up container if all notices fade out\n var onAllNoticeRemoved = function onAllNoticeRemoved(placement) {\n setPlacements(function (originPlacements) {\n var clone = _objectSpread({}, originPlacements);\n var list = clone[placement] || [];\n if (!list.length) {\n delete clone[placement];\n }\n return clone;\n });\n };\n\n // Effect tell that placements is empty now\n var emptyRef = React.useRef(false);\n React.useEffect(function () {\n if (Object.keys(placements).length > 0) {\n emptyRef.current = true;\n } else if (emptyRef.current) {\n // Trigger only when from exist to empty\n onAllRemoved === null || onAllRemoved === void 0 || onAllRemoved();\n emptyRef.current = false;\n }\n }, [placements]);\n // ======================== Render ========================\n if (!container) {\n return null;\n }\n var placementList = Object.keys(placements);\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, placementList.map(function (placement) {\n var placementConfigList = placements[placement];\n var list = /*#__PURE__*/React.createElement(NoticeList, {\n key: placement,\n configList: placementConfigList,\n placement: placement,\n prefixCls: prefixCls,\n className: className === null || className === void 0 ? void 0 : className(placement),\n style: style === null || style === void 0 ? void 0 : style(placement),\n motion: motion,\n onNoticeClose: onNoticeClose,\n onAllNoticeRemoved: onAllNoticeRemoved,\n stack: stack\n });\n return renderNotifications ? renderNotifications(list, {\n prefixCls: prefixCls,\n key: placement\n }) : list;\n })), container);\n});\nif (process.env.NODE_ENV !== 'production') {\n Notifications.displayName = 'Notifications';\n}\nexport default Notifications;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.alert-wrapper-notification--alarmHigh{background-color:var(--colorAlarmHighBg);border-radius:var(--borderRadius);color:var(--colorAlarmHighText)}.alert-wrapper-notification--alarmHigh .ant-notification-notice-message,.alert-wrapper-notification--alarmHigh .ant-notification-notice-description,.alert-wrapper-notification--alarmHigh .ant-notification-notice-close-icon{color:var(--colorAlarmHighText) !important}.alert-wrapper-notification--alarmMedium{background-color:var(--colorAlarmMediumBg);border-radius:var(--borderRadius);color:var(--colorAlarmMediumText)}.alert-wrapper-notification--alarmMedium .ant-notification-notice-message,.alert-wrapper-notification--alarmMedium .ant-notification-notice-description,.alert-wrapper-notification--alarmMedium .ant-notification-notice-close-icon{color:var(--colorAlarmMediumText) !important}.alert-wrapper-notification--alarmLow{background-color:var(--colorAlarmLowBg);border-radius:var(--borderRadius);color:var(--colorAlarmLowText)}.alert-wrapper-notification--alarmLow .ant-notification-notice-message,.alert-wrapper-notification--alarmLow .ant-notification-notice-description,.alert-wrapper-notification--alarmLow .ant-notification-notice-close-icon{color:var(--colorAlarmLowText) !important}.alert-wrapper-notification--intercom{background-color:var(--colorPrimary);border-radius:var(--borderRadius);color:var(--colorTextLightSolid)}.alert-wrapper-notification--intercom .ant-notification-notice-message,.alert-wrapper-notification--intercom .ant-notification-notice-description,.alert-wrapper-notification--intercom .ant-notification-notice-close-icon{color:var(--colorTextLightSolid) !important}.ant-notification-notice-wrapper{border:.5px solid var(--colorFillTertiary);box-shadow:var(--colorBoxShadowElevated) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/containers/AlertWrapper/AlertWrapper.scss\"],\"names\":[],\"mappings\":\"AACE,uCACE,wCAAA,CACA,iCAAA,CACA,+BAAA,CAEA,+NAGE,0CAAA,CAGJ,yCACE,0CAAA,CACA,iCAAA,CACA,iCAAA,CAEA,qOAGE,4CAAA,CAGJ,sCACE,uCAAA,CACA,iCAAA,CACA,8BAAA,CAEA,4NAGE,yCAAA,CAGJ,sCACE,oCAAA,CACA,iCAAA,CACA,gCAAA,CAEA,4NAGE,2CAAA,CAKN,iCACE,0CAAA,CACA,mDAAA\",\"sourcesContent\":[\".alert-wrapper-notification {\\n &--alarmHigh {\\n background-color: var(--colorAlarmHighBg);\\n border-radius: var(--borderRadius);\\n color: var(--colorAlarmHighText);\\n\\n .ant-notification-notice-message,\\n .ant-notification-notice-description,\\n .ant-notification-notice-close-icon {\\n color: var(--colorAlarmHighText) !important;\\n }\\n }\\n &--alarmMedium {\\n background-color: var(--colorAlarmMediumBg);\\n border-radius: var(--borderRadius);\\n color: var(--colorAlarmMediumText);\\n\\n .ant-notification-notice-message,\\n .ant-notification-notice-description,\\n .ant-notification-notice-close-icon {\\n color: var(--colorAlarmMediumText) !important;\\n }\\n }\\n &--alarmLow {\\n background-color: var(--colorAlarmLowBg);\\n border-radius: var(--borderRadius);\\n color: var(--colorAlarmLowText);\\n\\n .ant-notification-notice-message,\\n .ant-notification-notice-description,\\n .ant-notification-notice-close-icon {\\n color: var(--colorAlarmLowText) !important;\\n }\\n }\\n &--intercom {\\n background-color: var(--colorPrimary);\\n border-radius: var(--borderRadius);\\n color: var(--colorTextLightSolid);\\n\\n .ant-notification-notice-message,\\n .ant-notification-notice-description,\\n .ant-notification-notice-close-icon {\\n color: var(--colorTextLightSolid) !important;\\n }\\n }\\n}\\n\\n.ant-notification-notice-wrapper {\\n border: 0.5px solid var(--colorFillTertiary);\\n box-shadow: var(--colorBoxShadowElevated) !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// This icon file is generated automatically.\nvar BarsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"bars\", \"theme\": \"outlined\" };\nexport default BarsOutlined;\n","import { Fragment, isValidElement, cloneElement, createElement, Children } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { isObject, isString, warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\nconst hasChildren = (node, checkLength) => {\n if (!node) return false;\n const base = node.props?.children ?? node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n};\nconst getChildren = node => {\n if (!node) return [];\n const children = node.props?.children ?? node.children;\n return node.props?.i18nIsDynamicList ? getAsArray(children) : children;\n};\nconst hasValidReactChildren = children => Array.isArray(children) && children.every(isValidElement);\nconst getAsArray = data => Array.isArray(data) ? data : [data];\nconst mergeProps = (source, target) => {\n const newTarget = {\n ...target\n };\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n};\nexport const nodesToString = (children, i18nOptions, i18n, i18nKey) => {\n if (!children) return '';\n let stringNode = '';\n const childrenArray = getAsArray(children);\n const keepArray = i18nOptions?.transSupportBasicHtmlNodes ? i18nOptions.transKeepBasicHtmlNodesFor ?? [] : [];\n childrenArray.forEach((child, childIndex) => {\n if (isString(child)) {\n stringNode += `${child}`;\n return;\n }\n if (isValidElement(child)) {\n const {\n props,\n type\n } = child;\n const childPropsCount = Object.keys(props).length;\n const shouldKeepChild = keepArray.indexOf(type) > -1;\n const childChildren = props.children;\n if (!childChildren && shouldKeepChild && !childPropsCount) {\n stringNode += `<${type}/>`;\n return;\n }\n if (!childChildren && (!shouldKeepChild || childPropsCount) || props.i18nIsDynamicList) {\n stringNode += `<${childIndex}></${childIndex}>`;\n return;\n }\n if (shouldKeepChild && childPropsCount === 1 && isString(childChildren)) {\n stringNode += `<${type}>${childChildren}</${type}>`;\n return;\n }\n const content = nodesToString(childChildren, i18nOptions, i18n, i18nKey);\n stringNode += `<${childIndex}>${content}</${childIndex}>`;\n return;\n }\n if (child === null) {\n warn(i18n, 'TRANS_NULL_VALUE', `Passed in a null value as child`, {\n i18nKey\n });\n return;\n }\n if (isObject(child)) {\n const {\n format,\n ...clone\n } = child;\n const keys = Object.keys(clone);\n if (keys.length === 1) {\n const value = format ? `${keys[0]}, ${format}` : keys[0];\n stringNode += `{{${value}}}`;\n return;\n }\n warn(i18n, 'TRANS_INVALID_OBJ', `Invalid child - Object should only have keys {{ value, format }} (format is optional).`, {\n i18nKey,\n child\n });\n return;\n }\n warn(i18n, 'TRANS_INVALID_VAR', `Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.`, {\n i18nKey,\n child\n });\n });\n return stringNode;\n};\nconst renderNodes = (children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) => {\n if (targetString === '') return [];\n const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];\n const data = {};\n const getData = childs => {\n const childrenArray = getAsArray(childs);\n childrenArray.forEach(child => {\n if (isString(child)) return;\n if (hasChildren(child)) getData(getChildren(child));else if (isObject(child) && !isValidElement(child)) Object.assign(data, child);\n });\n };\n getData(children);\n const ast = HTML.parse(`<0>${targetString}</0>`);\n const opts = {\n ...data,\n ...combinedTOpts\n };\n const renderInner = (child, node, rootReactNode) => {\n const childs = getChildren(child);\n const mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 || child.props?.i18nIsDynamicList ? childs : mappedChildren;\n };\n const pushTranslatedJSX = (child, inner, mem, i, isVoid) => {\n if (child.dummy) {\n child.children = inner;\n mem.push(cloneElement(child, {\n key: i\n }, isVoid ? undefined : inner));\n } else {\n mem.push(...Children.map([child], c => {\n const props = {\n ...c.props\n };\n delete props.i18nIsDynamicList;\n return createElement(c.type, {\n ...props,\n key: i,\n ref: c.ref\n }, isVoid ? null : inner);\n }));\n }\n };\n const mapAST = (reactNode, astNode, rootReactNode) => {\n const reactNodes = getAsArray(reactNode);\n const astNodes = getAsArray(astNode);\n return astNodes.reduce((mem, node, i) => {\n const translationContent = node.children?.[0]?.content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n if (node.type === 'tag') {\n let tmp = reactNodes[parseInt(node.name, 10)];\n if (rootReactNode.length === 1 && !tmp) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n const child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n const isElement = isValidElement(child);\n const isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n const isEmptyTransWithHTML = emptyChildrenButNeedsHandling && isObject(child) && child.dummy && !isElement;\n const isKnownComponent = isObject(children) && Object.hasOwnProperty.call(children, node.name);\n if (isString(child)) {\n const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }));\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }, inner));\n }\n } else if (node.voidElement) {\n mem.push(`<${node.name} />`);\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(`<${node.name}>${inner}</${node.name}>`);\n }\n } else if (isObject(child) && !isElement) {\n const content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else {\n pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);\n }\n } else if (node.type === 'text') {\n const wrapTextNodes = i18nOptions.transWrapTextNodes;\n const content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: `${node.name}-${i}`\n }, content));\n } else {\n mem.push(content);\n }\n }\n return mem;\n }, []);\n };\n const result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n};\nconst fixComponentProps = (component, index, translation) => {\n const componentKey = component.key || index;\n const comp = cloneElement(component, {\n key: componentKey\n });\n if (!comp.props || !comp.props.children || translation.indexOf(`${index}/>`) < 0 && translation.indexOf(`${index} />`) < 0) {\n return comp;\n }\n function Componentized() {\n return createElement(Fragment, null, comp);\n }\n return createElement(Componentized, {\n key: componentKey\n });\n};\nconst generateArrayComponents = (components, translation) => components.map((c, index) => fixComponentProps(c, index, translation));\nconst generateObjectComponents = (components, translation) => {\n const componentMap = {};\n Object.keys(components).forEach(c => {\n Object.assign(componentMap, {\n [c]: fixComponentProps(components[c], c, translation)\n });\n });\n return componentMap;\n};\nconst generateComponents = (components, translation, i18n, i18nKey) => {\n if (!components) return null;\n if (Array.isArray(components)) {\n return generateArrayComponents(components, translation);\n }\n if (isObject(components)) {\n return generateObjectComponents(components, translation);\n }\n warnOnce(i18n, 'TRANS_INVALID_COMPONENTS', `<Trans /> \"components\" prop expects an object or array`, {\n i18nKey\n });\n return null;\n};\nexport function Trans({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n}) {\n const i18n = i18nFromProps || getI18n();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', `Trans: You need to pass in an i18next instance using i18nextReactModule`, {\n i18nKey\n });\n return children;\n }\n const t = tFromProps || i18n.t.bind(i18n) || (k => k);\n const reactI18nextOptions = {\n ...getDefaults(),\n ...i18n.options?.react\n };\n let namespaces = ns || t.ns || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n const nodeAsString = nodesToString(children, reactI18nextOptions, i18n, i18nKey);\n const defaultValue = defaults || nodeAsString || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n const {\n hashTransKey\n } = reactI18nextOptions;\n const key = i18nKey || (hashTransKey ? hashTransKey(nodeAsString || defaultValue) : nodeAsString || defaultValue);\n if (i18n.options?.interpolation?.defaultVariables) {\n values = values && Object.keys(values).length > 0 ? {\n ...values,\n ...i18n.options.interpolation.defaultVariables\n } : {\n ...i18n.options.interpolation.defaultVariables\n };\n }\n const interpolationOverride = values || count !== undefined && !i18n.options?.interpolation?.alwaysFormat || !children ? tOptions.interpolation : {\n interpolation: {\n ...tOptions.interpolation,\n prefix: '#$?',\n suffix: '?$#'\n }\n };\n const combinedTOpts = {\n ...tOptions,\n context: context || tOptions.context,\n count,\n ...values,\n ...interpolationOverride,\n defaultValue,\n ns: namespaces\n };\n const translation = key ? t(key, combinedTOpts) : defaultValue;\n const generatedComponents = generateComponents(components, translation, i18n, i18nKey);\n const content = renderNodes(generatedComponents || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n const useAsParent = parent ?? reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;\n/** @private NOT PROMISE AVAILABLE. DO NOT USE IN PRODUCTION. */\nexport var UnstableContext = /*#__PURE__*/React.createContext({});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"onDelete\", \"style\", \"render\", \"dragging\", \"draggingDelete\", \"onOffsetChange\", \"onChangeComplete\", \"onFocus\", \"onMouseEnter\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n onDelete = props.onDelete,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n draggingDelete = props.draggingDelete,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n onFocus = props.onFocus,\n onMouseEnter = props.onMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaRequired = _React$useContext.ariaRequired,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n var onInternalFocus = function onInternalFocus(e) {\n onFocus === null || onFocus === void 0 || onFocus(e, valueIndex);\n };\n var onInternalMouseEnter = function onInternalMouseEnter(e) {\n onMouseEnter(e, valueIndex);\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n onDelete(valueIndex);\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var divProps = {};\n if (valueIndex !== null) {\n var _getIndex;\n divProps = {\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': disabled,\n 'aria-label': getIndex(ariaLabelForHandle, valueIndex),\n 'aria-labelledby': getIndex(ariaLabelledByForHandle, valueIndex),\n 'aria-required': getIndex(ariaRequired, valueIndex),\n 'aria-valuetext': (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n 'aria-orientation': direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical',\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onFocus: onInternalFocus,\n onMouseEnter: onInternalMouseEnter,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp\n };\n }\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), valueIndex !== null && range), \"\".concat(handlePrefixCls, \"-dragging\"), dragging), \"\".concat(handlePrefixCls, \"-dragging-delete\"), draggingDelete), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle)\n }, divProps, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging,\n draggingDelete: draggingDelete\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"activeHandleRender\", \"draggingIndex\", \"draggingDelete\", \"onFocus\"];\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport { getIndex } from \"../util\";\nimport Handle from \"./Handle\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n draggingIndex = props.draggingIndex,\n draggingDelete = props.draggingDelete,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n\n // =========================== Active ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeVisible = _React$useState2[0],\n setActiveVisible = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n activeIndex = _React$useState4[0],\n setActiveIndex = _React$useState4[1];\n var onActive = function onActive(index) {\n setActiveIndex(index);\n setActiveVisible(true);\n };\n var onHandleFocus = function onHandleFocus(e, index) {\n onActive(index);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var onHandleMouseEnter = function onHandleMouseEnter(e, index) {\n onActive(index);\n };\n\n // =========================== Render ===========================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n },\n hideHelp: function hideHelp() {\n flushSync(function () {\n setActiveVisible(false);\n });\n }\n };\n });\n\n // =========================== Render ===========================\n // Handle Props\n var handleProps = _objectSpread({\n prefixCls: prefixCls,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender,\n onFocus: onHandleFocus,\n onMouseEnter: onHandleMouseEnter\n }, restProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n var dragging = draggingIndex === index;\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: dragging,\n draggingDelete: dragging && draggingDelete,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index\n }, handleProps));\n }), activeHandleRender && activeVisible && /*#__PURE__*/React.createElement(Handle, _extends({\n key: \"a11y\"\n }, handleProps, {\n value: values[activeIndex],\n valueIndex: null,\n dragging: draggingIndex !== -1,\n draggingDelete: draggingDelete,\n render: activeHandleRender,\n style: {\n pointerEvents: 'none'\n },\n tabIndex: null,\n \"aria-hidden\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Mark = function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n};\nexport default Mark;","import * as React from 'react';\nimport Mark from \"./Mark\";\nvar Marks = function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n};\nexport default Marks;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Dot = function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n};\nexport default Dot;","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nvar Steps = function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n};\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nvar Track = function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n};\nexport default Track;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nvar Tracks = function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n if (!included) {\n return null;\n }\n\n // ========================== Render ==========================\n var tracksNode = trackList !== null && trackList !== void 0 && trackList.length && (classNames.tracks || styles.tracks) ? /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }));\n};\nexport default Tracks;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { UnstableContext } from \"../context\";\n/** Drag to delete offset. It's a user experience number for dragging out */\nvar REMOVE_DIST = 130;\nfunction getPosition(e) {\n var obj = 'targetTouches' in e ? e.targetTouches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nfunction useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues, editable, minCount) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n draggingDelete = _React$useState6[0],\n setDraggingDelete = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n cacheValues = _React$useState8[0],\n setCacheValues = _React$useState8[1];\n var _React$useState9 = React.useState(rawValues),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n originValues = _React$useState10[0],\n setOriginValues = _React$useState10[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n var touchEventTargetRef = React.useRef(null);\n var _React$useContext = React.useContext(UnstableContext),\n onDragStart = _React$useContext.onDragStart,\n onDragChange = _React$useContext.onDragChange;\n useLayoutEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n if (touchEventTargetRef.current) {\n touchEventTargetRef.current.removeEventListener('touchmove', mouseMoveEventRef.current);\n touchEventTargetRef.current.removeEventListener('touchend', mouseUpEventRef.current);\n }\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue, deleteMark) {\n // Perf: Only update state when value changed\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n var changeValues = nextValues;\n if (deleteMark) {\n changeValues = nextValues.filter(function (_, i) {\n return i !== draggingIndex;\n });\n }\n triggerChange(changeValues);\n if (onDragChange) {\n onDragChange({\n rawValues: nextValues,\n deleteIndex: deleteMark ? draggingIndex : -1,\n draggingIndex: draggingIndex,\n draggingValue: nextValue\n });\n }\n };\n var updateCacheValue = useEvent(function (valueIndex, offsetPercent, deleteMark) {\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value, deleteMark);\n }\n });\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n setCacheValues(initialValues);\n setDraggingDelete(false);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // We declare it here since closure can't get outer latest value\n var deleteMark = false;\n\n // Internal trigger event\n if (onDragStart) {\n onDragStart({\n rawValues: initialValues,\n draggingIndex: valueIndex,\n draggingValue: originValue\n });\n }\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n var removeDist;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n removeDist = offsetX;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n removeDist = offsetX;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n removeDist = offsetY;\n break;\n default:\n offSetPercent = offsetX / width;\n removeDist = offsetY;\n }\n\n // Check if need mark remove\n deleteMark = editable ? Math.abs(removeDist) > REMOVE_DIST && minCount < cacheValues.length : false;\n setDraggingDelete(deleteMark);\n updateCacheValue(valueIndex, offSetPercent, deleteMark);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n if (touchEventTargetRef.current) {\n touchEventTargetRef.current.removeEventListener('touchmove', mouseMoveEventRef.current);\n touchEventTargetRef.current.removeEventListener('touchend', mouseUpEventRef.current);\n }\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n touchEventTargetRef.current = null;\n finishChange(deleteMark);\n setDraggingIndex(-1);\n setDraggingDelete(false);\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n e.currentTarget.addEventListener('touchend', onMouseUp);\n e.currentTarget.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n touchEventTargetRef.current = e.currentTarget;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n var counts = {};\n targetValues.forEach(function (val) {\n counts[val] = (counts[val] || 0) + 1;\n });\n sourceValues.forEach(function (val) {\n counts[val] = (counts[val] || 0) - 1;\n });\n var maxDiffCount = editable ? 1 : 0;\n var diffCount = Object.values(counts).reduce(function (prev, next) {\n return prev + Math.abs(next);\n }, 0);\n return diffCount <= maxDiffCount ? cacheValues : rawValues;\n }, [rawValues, cacheValues, editable]);\n return [draggingIndex, draggingValue, draggingDelete, returnValues, onStartMove];\n}\nexport default useDrag;","import Slider from \"./Slider\";\nexport { UnstableContext } from \"./context\";\nexport default Slider;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport cls from 'classnames';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Handles from \"./Handles\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\nimport SliderContext from \"./context\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\nimport useRange from \"./hooks/useRange\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n id = props.id,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n track = props.track,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaRequired = props.ariaRequired,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef(null);\n var containerRef = React.useRef(null);\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var _useRange = useRange(range),\n _useRange2 = _slicedToArray(_useRange, 5),\n rangeEnabled = _useRange2[0],\n rangeEditable = _useRange2[1],\n rangeDraggableTrack = _useRange2[2],\n minCount = _useRange2[3],\n maxCount = _useRange2[4];\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n return Object.keys(marks || {}).map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (rangeEnabled) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, rangeEnabled, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return rangeEnabled ? triggerValues : triggerValues[0];\n };\n var triggerChange = useEvent(function (nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValues, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n });\n var finishChange = useEvent(function (draggingDelete) {\n // Trigger from `useDrag` will tell if it's a delete action\n if (draggingDelete) {\n handlesRef.current.hideHelp();\n }\n var finishValue = getTriggerValue(rawValues);\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(finishValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(finishValue);\n });\n var onDelete = function onDelete(index) {\n if (disabled || !rangeEditable || rawValues.length <= minCount) {\n return;\n }\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues.splice(index, 1);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n var nextFocusIndex = Math.max(0, index - 1);\n handlesRef.current.hideHelp();\n handlesRef.current.focus(nextFocusIndex);\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues, rangeEditable, minCount),\n _useDrag2 = _slicedToArray(_useDrag, 5),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n draggingDelete = _useDrag2[2],\n cacheValues = _useDrag2[3],\n onStartDrag = _useDrag2[4];\n\n /**\n * When `rangeEditable` will insert a new value in the values array.\n * Else it will replace the value in the values array.\n */\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n var valueIndex = 0;\n var valueBeforeIndex = 0; // Record the index which value < newValue\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n if (val < newValue) {\n valueBeforeIndex = index;\n }\n });\n var focusIndex = valueIndex;\n if (rangeEditable && valueDist !== 0 && (!maxCount || rawValues.length < maxCount)) {\n cloneNextValues.splice(valueBeforeIndex + 1, 0, newValue);\n focusIndex = valueBeforeIndex + 1;\n } else {\n cloneNextValues[valueIndex] = newValue;\n }\n\n // Fill value to match default 2 (only when `rawValues` is empty)\n if (rangeEnabled && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n var nextValue = getTriggerValue(cloneNextValues);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(nextValue);\n triggerChange(cloneNextValues);\n if (e) {\n var _document$activeEleme, _document$activeEleme2;\n (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);\n handlesRef.current.focus(focusIndex);\n onStartDrag(e, focusIndex, cloneNextValues);\n } else {\n // https://github.com/ant-design/ant-design/issues/49997\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(nextValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(nextValue);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (rangeDraggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return rangeDraggableTrack;\n }, [rangeDraggableTrack, mergedStep]);\n var onStartMove = useEvent(function (e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n });\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!rangeEnabled) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, rangeEnabled, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _containerRef$current2;\n var _document = document,\n activeElement = _document.activeElement;\n if ((_containerRef$current2 = containerRef.current) !== null && _containerRef$current2 !== void 0 && _containerRef$current2.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: rangeEnabled,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaRequired: ariaRequired,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, rangeEnabled, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaRequired, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-vertical\"), vertical), \"\".concat(prefixCls, \"-horizontal\"), !vertical), \"\".concat(prefixCls, \"-with-marks\"), markList.length)),\n style: style,\n onMouseDown: onSliderMouseDown,\n id: id\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), track !== false && /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: rawValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : undefined\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n draggingDelete: draggingDelete,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: finishChange,\n onDelete: rangeEditable ? onDelete : undefined\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import { warning } from \"rc-util/es/warning\";\nimport { useMemo } from 'react';\nexport default function useRange(range) {\n return useMemo(function () {\n if (range === true || !range) {\n return [!!range, false, false, 0];\n }\n var editable = range.editable,\n draggableTrack = range.draggableTrack,\n minCount = range.minCount,\n maxCount = range.maxCount;\n if (process.env.NODE_ENV !== 'production') {\n warning(!editable || !draggableTrack, '`editable` can not work with `draggableTrack`.');\n }\n return [true, editable, !editable && draggableTrack, minCount || 0, maxCount];\n }, [range]);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n return Math.max(min, Math.min(max, val));\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","module.exports = __webpack_public_path__ + \"af1635b600efd13f6059eb6ac9deae12.js\";","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.validateNextState = exports.getUnexpectedInvocationParameterMessage = exports.getStateName = undefined;\n\nvar _getStateName2 = require('./getStateName');\n\nvar _getStateName3 = _interopRequireDefault(_getStateName2);\n\nvar _getUnexpectedInvocationParameterMessage2 = require('./getUnexpectedInvocationParameterMessage');\n\nvar _getUnexpectedInvocationParameterMessage3 = _interopRequireDefault(_getUnexpectedInvocationParameterMessage2);\n\nvar _validateNextState2 = require('./validateNextState');\n\nvar _validateNextState3 = _interopRequireDefault(_validateNextState2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.getStateName = _getStateName3.default;\nexports.getUnexpectedInvocationParameterMessage = _getUnexpectedInvocationParameterMessage3.default;\nexports.validateNextState = _validateNextState3.default;\n//# sourceMappingURL=index.js.map","function removeRule (rule) {\n var maxIndex = rule.index;\n var sh = rule.parentStyleSheet;\n var rules = sh.cssRules || sh.rules;\n maxIndex = Math.max(maxIndex, rules.length - 1);\n while (maxIndex >= 0) {\n if (rules[maxIndex] === rule) {\n sh.deleteRule(maxIndex);\n break;\n }\n maxIndex--;\n }\n}\n\nexports.removeRule = removeRule;\n","module.exports = __webpack_public_path__ + \"1736cea368ae85240f34289307fdf67f.js\";","'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","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","import {\n ADD_SLIDE_OUT,\n DELETE_SLIDE_OUT,\n REPLACE_SLIDE_OUT,\n} from './constants';\n\nexport function addSlideOut(slideOutData) {\n return {\n type: ADD_SLIDE_OUT,\n slideOutData,\n };\n}\n\nexport function deleteSlideOut(slideOutData = null) {\n return {\n type: DELETE_SLIDE_OUT,\n slideOutData,\n };\n}\n\nexport function replaceSlideOut(slideOutData) {\n return {\n type: REPLACE_SLIDE_OUT,\n slideOutData,\n };\n}\n","module.exports = __webpack_public_path__ + \"1495a3d68b15b8622c53f6688b64809f.js\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\", \"clearOnDestroy\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n clearOnDestroy = _ref.clearOnDestroy,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var nativeElementRef = React.useRef(null);\n var formContext = React.useContext(FormContext);\n\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _getInternalHooks.useSubscribe,\n setInitialValues = _getInternalHooks.setInitialValues,\n setCallbacks = _getInternalHooks.setCallbacks,\n setValidateMessages = _getInternalHooks.setValidateMessages,\n setPreserve = _getInternalHooks.setPreserve,\n destroyForm = _getInternalHooks.destroyForm;\n\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n nativeElement: nativeElementRef.current\n });\n });\n\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return function () {\n return destroyForm(clearOnDestroy);\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var _values = formInstance.getFieldsValue(true);\n childrenNode = children(_values, formInstance);\n } else {\n childrenNode = children;\n }\n\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n ref: nativeElementRef,\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 || _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","module.exports = __webpack_public_path__ + \"724a16861717b5b4f786d24b56b62614.js\";","module.exports = __webpack_public_path__ + \"cb0d121a88477f943960f5ad60602c22.js\";","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","module.exports = __webpack_public_path__ + \"e61779df91186b23e7adf2d1968b2708.js\";","/**\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\nmodule.exports = stubArray;\n","module.exports = __webpack_public_path__ + \"6490772da5aecc6cb9e4c625abc74a96.js\";","import opConfig from 'openpathConfig';\nimport { getAccessToken } from './accessToken';\n\n/** Used for local development against a remote deployment url. Running the `proxy-server` will allow api calls to make it through successfully */\nconst { AWARE_PROXY_URL } = opConfig;\n\ninterface SetUnifiedCookie {\n baseUrl: string;\n options?: {\n org_id?: number;\n region?: string;\n };\n}\n\n/**\n * @name getAwareOrigin\n *\n * The primary concern here is getting the full origin for the deployment.\n * In the instance that the deployment is Protect and the deployment URL is\n * \"deployment-url.com/intrusion?maybe=not-realistic\" the system needs to be\n * able to reliably pluck the origin out.\n *\n * - Removes any url params if exists\n * - Removes ending \"/\" if exists\n */\nconst getAwareOrigin = (baseUrl: string): string => {\n const parsed = new URL(baseUrl);\n\n // Remove trailing slash & any query params\n return parsed.origin;\n};\n\nconst invalidUrlRegex = /^https?:\\/\\/(partner|mailroom\\.)\\/?.*$/;\n\n/**\n * @description This utility helps in authenticating between Openpath and Ava. Since we do not share\n * a common domain each side had to create a custom endpoint to send a cookie to so that we can\n * be authenticated. An example being when we log into Openpath and \"app switch\" to Ava, we don't want to have\n * to go through the login flow on their site as well.\n */\nexport const setUnifiedCookie = ({ baseUrl, options }: SetUnifiedCookie) => {\n const normalizedBaseUrl = getAwareOrigin(AWARE_PROXY_URL || baseUrl);\n const jwt = getAccessToken();\n\n if (invalidUrlRegex.test(normalizedBaseUrl)) {\n return null;\n }\n\n return fetch(`${normalizedBaseUrl}/api/v1/setOpenpathCookie`, {\n method: 'POST',\n credentials: 'include',\n body: JSON.stringify({\n jwt,\n ...options,\n }),\n });\n};\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { commonLocale } from \"./common\";\nvar locale = _objectSpread(_objectSpread({}, commonLocale), {}, {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n dateFormat: 'M/D/YYYY',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n});\nexport default locale;","import { useEffect, useRef } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nexport function getClosestBody(el) {\n if (!el) {\n return null;\n }\n else if (el.tagName === 'BODY') {\n return el;\n }\n else if (el.tagName === 'IFRAME') {\n var document_1 = el.contentDocument;\n return document_1 ? document_1.body : null;\n }\n else if (!el.offsetParent) {\n return null;\n }\n return getClosestBody(el.offsetParent);\n}\nfunction preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nvar isIosDevice = isBrowser &&\n window.navigator &&\n window.navigator.platform &&\n /iP(ad|hone|od)/.test(window.navigator.platform);\nvar bodies = new Map();\nvar doc = typeof document === 'object' ? document : undefined;\nvar documentListenerAdded = false;\nexport default !doc\n ? function useLockBodyMock(_locked, _elementRef) {\n if (_locked === void 0) { _locked = true; }\n }\n : function useLockBody(locked, elementRef) {\n if (locked === void 0) { locked = true; }\n var bodyRef = useRef(doc.body);\n elementRef = elementRef || bodyRef;\n var lock = function (body) {\n var bodyInfo = bodies.get(body);\n if (!bodyInfo) {\n bodies.set(body, { counter: 1, initialOverflow: body.style.overflow });\n if (isIosDevice) {\n if (!documentListenerAdded) {\n on(document, 'touchmove', preventDefault, { passive: false });\n documentListenerAdded = true;\n }\n }\n else {\n body.style.overflow = 'hidden';\n }\n }\n else {\n bodies.set(body, {\n counter: bodyInfo.counter + 1,\n initialOverflow: bodyInfo.initialOverflow,\n });\n }\n };\n var unlock = function (body) {\n var bodyInfo = bodies.get(body);\n if (bodyInfo) {\n if (bodyInfo.counter === 1) {\n bodies.delete(body);\n if (isIosDevice) {\n body.ontouchmove = null;\n if (documentListenerAdded) {\n off(document, 'touchmove', preventDefault);\n documentListenerAdded = false;\n }\n }\n else {\n body.style.overflow = bodyInfo.initialOverflow;\n }\n }\n else {\n bodies.set(body, {\n counter: bodyInfo.counter - 1,\n initialOverflow: bodyInfo.initialOverflow,\n });\n }\n }\n };\n useEffect(function () {\n var body = getClosestBody(elementRef.current);\n if (!body) {\n return;\n }\n if (locked) {\n lock(body);\n }\n else {\n unlock(body);\n }\n }, [locked, elementRef.current]);\n // clean up, on un-mount\n useEffect(function () {\n var body = getClosestBody(elementRef.current);\n if (!body) {\n return;\n }\n return function () {\n unlock(body);\n };\n }, []);\n };\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ArrowUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z\" } }] }, \"name\": \"arrow-up\", \"theme\": \"outlined\" };\nexports.default = ArrowUpOutlined;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","module.exports = __webpack_public_path__ + \"11e3a2a8fb5bcb9d19298a80cafd3f5a.js\";","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n return node.nativeElement;\n }\n if (isDOM(node)) {\n return node;\n }\n return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n var domNode = getDOM(node);\n if (domNode) {\n return domNode;\n }\n if (node instanceof React.Component) {\n var _ReactDOM$findDOMNode;\n return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n }\n return null;\n}","module.exports = __webpack_public_path__ + \"a1c8660c5bcc6b6a43a7fb3c351174d9.js\";","import Helium from 'utils/helium';\n// @TODO fix this dependency above ^\nconst openpathConfig = require('openpathConfig');\n\nexport function injectScopeHeaders(headers) {\n if (\n process.env.NODE_ENV === 'production' ||\n !openpathConfig.INJECT_SCOPE_HEADERS\n ) {\n return headers;\n }\n const newHeaders = { ...headers };\n try {\n const scopeTest = window.sessionStorage.getItem('op-scopes');\n if (scopeTest) {\n newHeaders['op-scope-test'] = scopeTest;\n }\n } catch {\n // do nothing\n }\n return newHeaders;\n}\n\nexport async function parseDebugTeapot(fetchResponse) {\n if (\n process.env.NODE_ENV === 'production' ||\n !global.store ||\n !openpathConfig.INJECT_SCOPE_HEADERS\n ) {\n return fetchResponse;\n }\n\n if (fetchResponse.status === 418 || fetchResponse.statusCode === 418) {\n const jsonTest =\n typeof fetchResponse.json === 'function'\n ? await fetchResponse.json()\n : fetchResponse.json;\n global.store.dispatch({\n type: 'app/Authenticated/SET_ALERT',\n alertType: 'info',\n alertMessage: `🔒::${jsonTest.message}`,\n });\n }\n return fetchResponse;\n}\n\nexport async function request(resource, options) {\n // @TODO - Look into factoring this out, I think its being forced\n // from non-requestAndSet where it should be using heliumclient\n const headers = injectScopeHeaders(options.headers || {}, resource);\n try {\n let data = null;\n let firePostRequestCallback = true;\n if (resource.includes('auth')) {\n firePostRequestCallback = false;\n }\n const response = await Helium.client.requestExternal(\n null,\n String(options.method).toUpperCase(),\n resource,\n options.body ? JSON.parse(options.body) : null,\n {},\n { headers, firePostRequestCallback },\n );\n if (response.statusCode >= 400) {\n const err = new Error(\n (response.json && response.json.message) ||\n `Unexpected response code ${response.statusCode}`,\n );\n err.statusCode = response.statusCode;\n err.localizedMessage =\n response?.json?.localizedMessage ||\n response?.json?.message ||\n `Unexpected response code ${response.statusCode}`;\n throw err;\n }\n\n const { json } = response;\n data = json;\n return { data };\n } catch (err) {\n return { err };\n }\n}\n\nexport async function checkForVersionNumberMismatch() {\n try {\n const { json: versionNeedsUpdate } =\n await Helium.client.checkMaintenanceEndpoint(openpathConfig.versionUrl);\n return versionNeedsUpdate;\n } catch (ex) {\n console.error(`Something went wrong with version check! ${ex}`);\n }\n return null;\n}\n","import { fromJS, Map } from 'immutable';\nimport { scopesByOperationId } from '@msi-alta/helium-client/scopes';\n\nexport function checkScope(currentOrgId, currentScope, allowedScopesRaw) {\n // console.error('checkScope in utils/redirect is DEPRECATED')\n // console.debug(`>> checkScope() ${currentOrgId} - currentScope (${currentScope && currentScope.toJS ? currentScope.toJS() : currentScope}) SCOPES: ${allowedScopesRaw}`)\n if (currentScope && allowedScopesRaw) {\n // replace {orgId} with the actual orgId\n const allowedScopes = allowedScopesRaw.map((x) =>\n x.replace('{orgId}', `${currentOrgId}`),\n );\n const some = currentScope.some((scope) =>\n allowedScopes.find((x) => scope === x),\n );\n return some;\n }\n return false;\n}\n\nexport function substituteOrgIdInScope(currentOrgId, scopes) {\n return scopes.map((x) => x.replace('{orgId}', `${currentOrgId}`));\n}\n\nexport function verifyScope(activeScopes, rawAllowedScopes, orgId) {\n // If no rawAllowedScopes are provided, return true\n if (!rawAllowedScopes?.length) {\n return true;\n }\n\n let allowedScopes = [...rawAllowedScopes];\n\n // Replace orgId placeholder with actual orgId if passed\n if (orgId) {\n allowedScopes = substituteOrgIdInScope(orgId, rawAllowedScopes);\n }\n\n // Check if any of the activeScopes are in the allowedScopes\n return activeScopes.some((scope) => allowedScopes.includes(scope));\n}\n\nexport function verifyApiScope(activeScopes, operationId, orgId) {\n const allowedScopes = scopesByOperationId[operationId];\n\n // If no allowedScopes are provided return false\n if (!allowedScopes || !allowedScopes.length) {\n return false;\n }\n\n return verifyScope(activeScopes, allowedScopes, orgId);\n}\n\n// Returns a flat list of scopes from all applicable sources:\n// identity-level scopes tied to no org, plus any org-level scopes\n// tied to the current org, if any. NOTE: in future there may be other\n// sources (e.g. partner-level scopes), so we want to keep all logic\n// for calculating/extracting scopes flowing in this one function, so\n// that the rest of the code can remain agnostic about where the\n// individual scopes come from. NOTE ABOUT THE NOTE: currently the\n// login() saga in AppContainer/sagas.js is in conflict with the above\n// NOTE... i.e. the login() saga is also doing a chunk of\n// scope-related processing that might be better to move here (or\n// consolidate in some way).\nexport function getActiveScopes(currentOrg, scopes, parentOrgScope) {\n if (!scopes) return fromJS([]);\n if (parentOrgScope && !Map.isMap(parentOrgScope)) {\n throw new Error(\n 'getActiveScopes should be passed parentOrgScope of type Immutable.Map!',\n );\n }\n // if you have no currentOrg, you're probably in master mode. Which means we need to check your s-o* permissions\n const partnerScopes =\n parentOrgScope && parentOrgScope.get('hasSubOrgFeature')\n ? parentOrgScope.get('partnerScopes')\n : [];\n const orgItem = currentOrg\n ? scopes.find((s) => s.getIn(['org', 'id']) === Number(currentOrg))\n : null;\n const orgScopes = orgItem ? orgItem.get('scope') : fromJS([]);\n\n const identityItem = scopes.find((s) => s.getIn(['org', 'id']) === null);\n const identityScopes = identityItem ? identityItem.get('scope') : null;\n\n let ret = fromJS([]);\n\n // Filter s-o scopes out of orgScopes (so that s-o scopes can only\n // enter the result via partnerScopes), because s-o scopes only\n // have meaning if the associated org has the subOrgs\n // feature. It's important to get the right list here since\n // various places (e.g. BillingSubscriptionWidget) are doing\n // client-side visibility gating based on the presence of s-o:r or\n // s-o:w, but that produces unintended behavior if the org doesn't\n // also have the subOrgs feature. So by forcing s-o scopes to only\n // enter via partnerScopes, we are doing the right thing because\n // partnerScopes will only be populated if currentOrg has parent\n // org AND the logged-in identity has s-o in that parent org. See\n // login() in AppContainer/sagas.js for how hasSubOrgFeature is\n // calculated and how processed scopes are produced and sent to\n // setProcessedScopes().\n if (orgScopes) {\n ret = ret.concat(orgScopes.filter((s) => !['s-o:r', 's-o:w'].includes(s)));\n }\n\n if (identityScopes) {\n ret = ret.concat(identityScopes);\n }\n\n if (partnerScopes) {\n ret = ret.concat(partnerScopes);\n }\n\n return ret;\n}\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\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\nmodule.exports = listCacheDelete;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"assets/img/avigilon-alta-honeycomb-bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.marketing-content{background-color:#000;display:flex;align-items:center;justify-content:center;height:100%}.marketing-content__loader{font-size:3.4285714286rem}.marketing-content__empty{flex:1;height:100%;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-position:center center;background-size:cover}.marketing-content__filled{height:100%;width:100%;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;color:var(--colorWhite);padding:18vh 1.2857142857rem 0 2.5714285714rem;position:relative;background-position:center;background-repeat:no-repeat;background-size:cover;overflow-x:hidden}.marketing-content__text{max-width:41rem;padding:0;z-index:3}.marketing-content__headline{color:var(--colorWhite) !important;font-size:2.5rem !important;font-weight:500;margin-bottom:40px !important}.marketing-content__body{margin-bottom:2.1428571429rem}.marketing-content__body>*{margin-bottom:0.8571428571rem}.marketing-content__body p{font-size:1.14285714rem;line-height:1.5;letter-spacing:.2px;color:var(--colorWhite);text-align:left;max-width:70%;position:relative;z-index:3}.marketing-content__body ul,.marketing-content__body ol{padding-left:1rem}.marketing-content__overlay{background:rgba(0,0,0,.3);position:absolute;top:0;right:0;left:0;bottom:0;z-index:2}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/Marketing/Marketing.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAEA,mBACE,qBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CAEA,2BACE,yBAAA,CAGF,0BACE,MAAA,CACA,WAAA,CACA,wDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,2BACE,WAAA,CACA,UAAA,CACA,YAAA,CACA,qBAAA,CACA,0BAAA,CACA,kBAAA,CACA,uBAAA,CACA,8CAAA,CAEA,iBAAA,CAEA,0BAAA,CAEA,2BAAA,CAEA,qBAAA,CAEA,iBAAA,CAGF,yBACE,eAAA,CACA,SAAA,CACA,SAAA,CAGF,6BACE,kCAAA,CACA,2BAAA,CACA,eAAA,CACA,6BAAA,CAGF,yBACE,6BAAA,CAEA,2BACE,6BAAA,CAGF,2BCnBA,uBAAA,CACA,eAAA,CDoBE,mBAAA,CACA,uBAAA,CACA,eAAA,CACA,aAAA,CACA,iBAAA,CACA,SAAA,CAGF,wDAEE,iBAAA,CAIJ,4BACE,yBAAA,CACA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CACA,QAAA,CACA,SAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.marketing-content {\\n background-color: black; // only shown while loading\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n height: 100%;\\n\\n &__loader {\\n font-size: common.toRem(48);\\n }\\n\\n &__empty {\\n flex: 1;\\n height: 100%;\\n background-image: url('assets/img/avigilon-alta-honeycomb-bg.png');\\n background-position: center center;\\n background-size: cover;\\n }\\n\\n &__filled {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-start;\\n align-items: center;\\n color: var(--colorWhite);\\n padding: 18vh common.toRem(18) 0 common.toRem(36);\\n\\n position: relative;\\n /* Used if the image is unavailable */\\n background-position: center;\\n /* Center the image */\\n background-repeat: no-repeat;\\n /* Do not repeat the image */\\n background-size: cover;\\n /* Resize the background image to cover the entire container */\\n overflow-x: hidden;\\n }\\n\\n &__text {\\n max-width: 41rem;\\n padding: 0;\\n z-index: 3;\\n }\\n\\n &__headline {\\n color: var(--colorWhite) !important;\\n font-size: 2.5rem !important;\\n font-weight: 500;\\n margin-bottom: 40px !important;\\n }\\n\\n &__body {\\n margin-bottom: common.toRem(30);\\n\\n > * {\\n margin-bottom: common.toRem(12);\\n }\\n\\n p {\\n @include common.get-body-font-styles('large');\\n letter-spacing: 0.2px;\\n color: var(--colorWhite);\\n text-align: left;\\n max-width: 70%;\\n position: relative;\\n z-index: 3;\\n }\\n\\n ul,\\n ol {\\n padding-left: common.toRem(14);\\n }\\n }\\n\\n &__overlay {\\n background: rgba(0, 0, 0, 0.3);\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n z-index: 2;\\n }\\n}\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { isError } from '../is.js';\nimport { fill, addNonEnumerableProperty } from '../object.js';\nimport { supportsNativeFetch } from '../supports.js';\nimport { timestampInSeconds } from '../time.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addFetchInstrumentationHandler(\n handler,\n skipNativeFetchCheck,\n) {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nfunction addFetchEndInstrumentationHandler(handler) {\n const type = 'fetch-body-resolved';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved, skipNativeFetchCheck = false) {\n if (skipNativeFetchCheck && !supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch) {\n return function (...args) {\n const { method, url } = parseFetchArgs(args);\n const handlerData = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: timestampInSeconds() * 1000,\n };\n\n // if there is no callback, fetch is instrumented directly\n if (!onFetchResolved) {\n triggerHandlers('fetch', {\n ...handlerData,\n });\n }\n\n // We capture the stack right here and not in the Promise error callback because Safari (and probably other\n // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n const virtualStackTrace = new Error().stack;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n async (response) => {\n if (onFetchResolved) {\n onFetchResolved(response);\n } else {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n }\n\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n error,\n });\n\n if (isError(error) && error.stack === undefined) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n error.stack = virtualStackTrace;\n addNonEnumerableProperty(error, 'framesToPop', 1);\n }\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nasync function resolveResponse(res, onFinishedResolving) {\n if (res && res.body) {\n const body = res.body;\n const responseReader = body.getReader();\n\n // Define a maximum duration after which we just cancel\n const maxFetchDurationTimeout = setTimeout(\n () => {\n body.cancel().then(null, () => {\n // noop\n });\n },\n 90 * 1000, // 90s\n );\n\n let readingActive = true;\n while (readingActive) {\n let chunkTimeout;\n try {\n // abort reading if read op takes more than 5s\n chunkTimeout = setTimeout(() => {\n body.cancel().then(null, () => {\n // noop on error\n });\n }, 5000);\n\n // This .read() call will reject/throw when we abort due to timeouts through `body.cancel()`\n const { done } = await responseReader.read();\n\n clearTimeout(chunkTimeout);\n\n if (done) {\n onFinishedResolving();\n readingActive = false;\n }\n } catch (error) {\n readingActive = false;\n } finally {\n clearTimeout(chunkTimeout);\n }\n }\n\n clearTimeout(maxFetchDurationTimeout);\n\n responseReader.releaseLock();\n body.cancel().then(null, () => {\n // noop on error\n });\n }\n}\n\nfunction streamHandler(response) {\n // clone response for awaiting stream\n let clonedResponseForResolving;\n try {\n clonedResponseForResolving = response.clone();\n } catch (e) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resolveResponse(clonedResponseForResolving, () => {\n triggerHandlers('fetch-body-resolved', {\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n });\n}\n\nfunction hasProp(obj, prop) {\n return !!obj && typeof obj === 'object' && !!(obj )[prop];\n}\n\nfunction getUrlFromResource(resource) {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nfunction parseFetchArgs(fetchArgs) {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs ;\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg ),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=fetch.js.map\n","// src/utils/react.ts\nimport * as React from \"react\";\n\n// src/utils/react-is.ts\nvar IS_REACT_19 = /* @__PURE__ */ React.version.startsWith(\"19\");\nvar REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for(\n IS_REACT_19 ? \"react.transitional.element\" : \"react.element\"\n);\nvar REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for(\"react.portal\");\nvar REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for(\"react.fragment\");\nvar REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for(\"react.strict_mode\");\nvar REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for(\"react.profiler\");\nvar REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for(\"react.consumer\");\nvar REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for(\"react.context\");\nvar REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for(\"react.forward_ref\");\nvar REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for(\"react.suspense\");\nvar REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for(\n \"react.suspense_list\"\n);\nvar REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for(\"react.memo\");\nvar REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for(\"react.lazy\");\nvar REACT_OFFSCREEN_TYPE = /* @__PURE__ */ Symbol.for(\"react.offscreen\");\nvar REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for(\n \"react.client.reference\"\n);\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nfunction isValidElementType(type) {\n return typeof type === \"string\" || typeof type === \"function\" || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_OFFSCREEN_TYPE || typeof type === \"object\" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_CONSUMER_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_CLIENT_REFERENCE || type.getModuleId !== void 0) ? true : false;\n}\nfunction typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n const { $$typeof } = object;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (object = object.type, object) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (object = object && object.$$typeof, object) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nfunction isContextConsumer(object) {\n return IS_REACT_19 ? typeOf(object) === REACT_CONSUMER_TYPE : typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/connect/verifySubselectors.ts\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === \"mapStateToProps\" || methodName === \"mapDispatchToProps\") {\n if (!Object.prototype.hasOwnProperty.call(selector, \"dependsOnOwnProps\")) {\n warning(\n `The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`\n );\n }\n }\n}\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, \"mapStateToProps\");\n verify(mapDispatchToProps, \"mapDispatchToProps\");\n verify(mergeProps, \"mergeProps\");\n}\n\n// src/connect/selectorFactory.ts\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps)\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps)\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged)\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(\n nextState,\n state,\n nextOwnProps,\n ownProps\n );\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\nfunction finalPropsSelectorFactory(dispatch, {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n ...options\n}) {\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n if (process.env.NODE_ENV !== \"production\") {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n// src/utils/bindActionCreators.ts\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n return boundActionCreators;\n}\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null) return false;\n const proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n let baseProto = proto;\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n return proto === baseProto;\n}\n\n// src/utils/verifyPlainObject.ts\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(\n `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`\n );\n }\n}\n\n// src/connect/wrapMapToProps.ts\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, { displayName }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, void 0);\n };\n proxy.dependsOnOwnProps = true;\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n if (typeof props === \"function\") {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(props, displayName, methodName);\n return props;\n };\n return proxy;\n };\n}\n\n// src/connect/invalidArgFactory.ts\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(\n `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`\n );\n };\n}\n\n// src/connect/mapDispatchToProps.ts\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === \"object\" ? wrapMapToPropsConstant(\n (dispatch) => (\n // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)\n )\n ) : !mapDispatchToProps ? wrapMapToPropsConstant((dispatch) => ({\n dispatch\n })) : typeof mapDispatchToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, \"mapDispatchToProps\")\n ) : createInvalidArgFactory(mapDispatchToProps, \"mapDispatchToProps\");\n}\n\n// src/connect/mapStateToProps.ts\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === \"function\" ? (\n // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, \"mapStateToProps\")\n ) : createInvalidArgFactory(mapStateToProps, \"mapStateToProps\");\n}\n\n// src/connect/mergeProps.ts\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return { ...ownProps, ...stateProps, ...dispatchProps };\n}\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, { displayName, areMergedPropsEqual }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps))\n mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== \"production\")\n verifyPlainObject(mergedProps, displayName, \"mergeProps\");\n }\n return mergedProps;\n };\n };\n}\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === \"function\" ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, \"mergeProps\");\n}\n\n// src/utils/batch.ts\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\n// src/utils/Subscription.ts\nfunction createListenerCollection() {\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n notify() {\n defaultNoopBatch(() => {\n let listener = first;\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get() {\n const listeners = [];\n let listener = first;\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n return listeners;\n },\n subscribe(callback) {\n let isSubscribed = true;\n const listener = last = {\n callback,\n next: null,\n prev: last\n };\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\nvar nullListeners = {\n notify() {\n },\n get: () => []\n};\nfunction createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n let subscriptionsAmount = 0;\n let selfSubscribed = false;\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener);\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n function notifyNestedSubs() {\n listeners.notify();\n }\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n function isSubscribed() {\n return selfSubscribed;\n }\n function trySubscribe() {\n subscriptionsAmount++;\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n function tryUnsubscribe() {\n subscriptionsAmount--;\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = void 0;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}\n\n// src/utils/useIsomorphicLayoutEffect.ts\nvar canUseDOM = () => !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nvar isDOM = /* @__PURE__ */ canUseDOM();\nvar isRunningInReactNative = () => typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\";\nvar isReactNative = /* @__PURE__ */ isRunningInReactNative();\nvar getUseIsomorphicLayoutEffect = () => isDOM || isReactNative ? React.useLayoutEffect : React.useEffect;\nvar useIsomorphicLayoutEffect = /* @__PURE__ */ getUseIsomorphicLayoutEffect();\n\n// src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\n// src/utils/hoistStatics.ts\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS\n};\nfunction getStatics(component) {\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component[\"$$typeof\"]] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent) {\n if (typeof sourceComponent !== \"string\") {\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent);\n }\n }\n let keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (!KNOWN_STATICS[key] && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {\n }\n }\n }\n }\n return targetComponent;\n}\n\n// src/components/Context.ts\nvar ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`);\nvar gT = typeof globalThis !== \"undefined\" ? globalThis : (\n /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n {}\n);\nfunction getContext() {\n if (!React.createContext) return {};\n const contextMap = gT[ContextKey] ??= /* @__PURE__ */ new Map();\n let realContext = contextMap.get(React.createContext);\n if (!realContext) {\n realContext = React.createContext(\n null\n );\n if (process.env.NODE_ENV !== \"production\") {\n realContext.displayName = \"ReactRedux\";\n }\n contextMap.set(React.createContext, realContext);\n }\n return realContext;\n}\nvar ReactReduxContext = /* @__PURE__ */ getContext();\n\n// src/components/connect.tsx\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\nvar stringifyComponent = (Comp) => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n}\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false;\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, additionalSubscribeListener) {\n if (!shouldHandleStateChanges) return () => {\n };\n let didUnsubscribe = false;\n let lastThrownError = null;\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n return;\n }\n const latestStoreState = store.getState();\n let newChildProps, error;\n try {\n newChildProps = childPropsSelector(\n latestStoreState,\n lastWrapperProps.current\n );\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n if (!error) {\n lastThrownError = null;\n }\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true;\n additionalSubscribeListener();\n }\n };\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n if (lastThrownError) {\n throw lastThrownError;\n }\n };\n return unsubscribeWrapper;\n}\nfunction strictEqual(a, b) {\n return a === b;\n}\nvar hasWarnedAboutDeprecatedPureOption = false;\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (pure !== void 0 && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning(\n 'The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component'\n );\n }\n }\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n const wrapWithConnect = (WrappedComponent) => {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isValidElementType(WrappedComponent);\n if (!isValid)\n throw new Error(\n `You must pass a component to the function returned by connect. Instead received ${stringifyComponent(\n WrappedComponent\n )}`\n );\n }\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n const { reactReduxForwardedRef: reactReduxForwardedRef2, ...wrapperProps2 } = props;\n return [props.context, reactReduxForwardedRef2, wrapperProps2];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n let ResultContext = Context;\n if (propsContext?.Consumer) {\n if (process.env.NODE_ENV !== \"production\") {\n const isValid = /* @__PURE__ */ isContextConsumer(\n // @ts-ignore\n /* @__PURE__ */ React.createElement(propsContext.Consumer, null)\n );\n if (!isValid) {\n throw new Error(\n \"You must pass a valid React context consumer as `props.context`\"\n );\n }\n ResultContext = propsContext;\n }\n }\n return ResultContext;\n }, [propsContext, Context]);\n const contextValue = React.useContext(ContextToUse);\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n if (process.env.NODE_ENV !== \"production\" && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\n `Could not find \"store\" in the context of \"${displayName}\". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to ${displayName} in connect options.`\n );\n }\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n return finalPropsSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY;\n const subscription2 = createSubscription(\n store,\n didStoreComeFromProps ? void 0 : contextValue.subscription\n );\n const notifyNestedSubs2 = subscription2.notifyNestedSubs.bind(subscription2);\n return [subscription2, notifyNestedSubs2];\n }, [store, didStoreComeFromProps, contextValue]);\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n return contextValue;\n }\n return {\n ...contextValue,\n subscription\n };\n }, [didStoreComeFromProps, contextValue, subscription]);\n const lastChildProps = React.useRef(void 0);\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef(void 0);\n const renderIsScheduled = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef(\n void 0\n );\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n }\n return childPropsSelector(store.getState(), wrapperProps);\n };\n return selector;\n }, [store, wrapperProps]);\n const subscribeForReact = React.useMemo(() => {\n const subscribe = (reactListener) => {\n if (!subscription) {\n return () => {\n };\n }\n return subscribeUpdates(\n shouldHandleStateChanges,\n store,\n subscription,\n // @ts-ignore\n childPropsSelector,\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n isMounted,\n childPropsFromStoreUpdate,\n notifyNestedSubs,\n reactListener\n );\n };\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [\n lastWrapperProps,\n lastChildProps,\n renderIsScheduled,\n wrapperProps,\n childPropsFromStoreUpdate,\n notifyNestedSubs\n ]);\n let actualChildProps;\n try {\n actualChildProps = React.useSyncExternalStore(\n // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact,\n // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector,\n getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector\n );\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n`;\n }\n throw err;\n }\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = void 0;\n childPropsFromStoreUpdate.current = void 0;\n lastChildProps.current = actualChildProps;\n });\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n // @ts-ignore\n /* @__PURE__ */ React.createElement(\n WrappedComponent,\n {\n ...actualChildProps,\n ref: reactReduxForwardedRef\n }\n )\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]);\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n return /* @__PURE__ */ React.createElement(ContextToUse.Provider, { value: overriddenContextValue }, renderedWrappedComponent);\n }\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n const _Connect = React.memo(ConnectFunction);\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n if (forwardRef) {\n const _forwarded = React.forwardRef(\n function forwardConnectRef(props, ref) {\n return /* @__PURE__ */ React.createElement(Connect, { ...props, reactReduxForwardedRef: ref });\n }\n );\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return /* @__PURE__ */ hoistNonReactStatics(forwarded, WrappedComponent);\n }\n return /* @__PURE__ */ hoistNonReactStatics(Connect, WrappedComponent);\n };\n return wrapWithConnect;\n}\nvar connect_default = connect;\n\n// src/components/Provider.tsx\nfunction Provider(providerProps) {\n const { children, context, serverState, store } = providerProps;\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n const baseContextValue = {\n store,\n subscription,\n getServerState: serverState ? () => serverState : void 0\n };\n if (process.env.NODE_ENV === \"production\") {\n return baseContextValue;\n } else {\n const { identityFunctionCheck = \"once\", stabilityCheck = \"once\" } = providerProps;\n return /* @__PURE__ */ Object.assign(baseContextValue, {\n stabilityCheck,\n identityFunctionCheck\n });\n }\n }, [store, serverState]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = void 0;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext;\n return /* @__PURE__ */ React.createElement(Context.Provider, { value: contextValue }, children);\n}\nvar Provider_default = Provider;\n\n// src/hooks/useReduxContext.ts\nfunction createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext2() {\n const contextValue = React.useContext(context);\n if (process.env.NODE_ENV !== \"production\" && !contextValue) {\n throw new Error(\n \"could not find react-redux context value; please ensure the component is wrapped in a <Provider>\"\n );\n }\n return contextValue;\n };\n}\nvar useReduxContext = /* @__PURE__ */ createReduxContextHook();\n\n// src/hooks/useStore.ts\nfunction createStoreHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : (\n // @ts-ignore\n createReduxContextHook(context)\n );\n const useStore2 = () => {\n const { store } = useReduxContext2();\n return store;\n };\n Object.assign(useStore2, {\n withTypes: () => useStore2\n });\n return useStore2;\n}\nvar useStore = /* @__PURE__ */ createStoreHook();\n\n// src/hooks/useDispatch.ts\nfunction createDispatchHook(context = ReactReduxContext) {\n const useStore2 = context === ReactReduxContext ? useStore : createStoreHook(context);\n const useDispatch2 = () => {\n const store = useStore2();\n return store.dispatch;\n };\n Object.assign(useDispatch2, {\n withTypes: () => useDispatch2\n });\n return useDispatch2;\n}\nvar useDispatch = /* @__PURE__ */ createDispatchHook();\n\n// src/hooks/useSelector.ts\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/with-selector.js\";\nvar refEquality = (a, b) => a === b;\nfunction createSelectorHook(context = ReactReduxContext) {\n const useReduxContext2 = context === ReactReduxContext ? useReduxContext : createReduxContextHook(context);\n const useSelector2 = (selector, equalityFnOrOptions = {}) => {\n const { equalityFn = refEquality } = typeof equalityFnOrOptions === \"function\" ? { equalityFn: equalityFnOrOptions } : equalityFnOrOptions;\n if (process.env.NODE_ENV !== \"production\") {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n if (typeof selector !== \"function\") {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n if (typeof equalityFn !== \"function\") {\n throw new Error(\n `You must pass a function as an equality function to useSelector`\n );\n }\n }\n const reduxContext = useReduxContext2();\n const { store, subscription, getServerState } = reduxContext;\n const firstRun = React.useRef(true);\n const wrappedSelector = React.useCallback(\n {\n [selector.name](state) {\n const selected = selector(state);\n if (process.env.NODE_ENV !== \"production\") {\n const { devModeChecks = {} } = typeof equalityFnOrOptions === \"function\" ? {} : equalityFnOrOptions;\n const { identityFunctionCheck, stabilityCheck } = reduxContext;\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks\n };\n if (finalStabilityCheck === \"always\" || finalStabilityCheck === \"once\" && firstRun.current) {\n const toCompare = selector(state);\n if (!equalityFn(selected, toCompare)) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned a different result when called with the same parameters. This can lead to unnecessary rerenders.\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization\",\n {\n state,\n selected,\n selected2: toCompare,\n stack\n }\n );\n }\n }\n if (finalIdentityFunctionCheck === \"always\" || finalIdentityFunctionCheck === \"once\" && firstRun.current) {\n if (selected === state) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"Selector \" + (selector.name || \"unknown\") + \" returned the root state when called. This can lead to unnecessary rerenders.\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.\",\n { stack }\n );\n }\n }\n if (firstRun.current) firstRun.current = false;\n }\n return selected;\n }\n }[selector.name],\n [selector]\n );\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn\n );\n React.useDebugValue(selectedState);\n return selectedState;\n };\n Object.assign(useSelector2, {\n withTypes: () => useSelector2\n });\n return useSelector2;\n}\nvar useSelector = /* @__PURE__ */ createSelectorHook();\n\n// src/exports.ts\nvar batch = defaultNoopBatch;\nexport {\n Provider_default as Provider,\n ReactReduxContext,\n batch,\n connect_default as connect,\n createDispatchHook,\n createSelectorHook,\n createStoreHook,\n shallowEqual,\n useDispatch,\n useSelector,\n useStore\n};\n//# sourceMappingURL=react-redux.mjs.map","module.exports = __webpack_public_path__ + \"1ff1389501159e4846a5133e3b8992d8.js\";","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","module.exports = __webpack_public_path__ + \"ba6b8b3e06cd9d0aee9c69278ee84647.js\";","module.exports = __webpack_public_path__ + \"d1db2c4677dd2ee7a0c690c58798a013.js\";","import React from 'react';\nconst zIndexContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n zIndexContext.displayName = 'zIndexContext';\n}\nexport default zIndexContext;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-clickable{margin:0;padding:0;line-height:1;appearance:none;border:none;background:none;font-family:inherit;outline:0;cursor:pointer;color:var(--colorText)}.op-clickable--inline{display:inline-block;width:fit-content}.op-clickable[disabled]{opacity:.5;cursor:default}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/components/Clickable/Clickable.scss\"],\"names\":[],\"mappings\":\"AAAA,cACE,QAAA,CACA,SAAA,CACA,aAAA,CACA,eAAA,CACA,WAAA,CACA,eAAA,CACA,mBAAA,CACA,SAAA,CACA,cAAA,CACA,sBAAA,CAEA,sBACE,oBAAA,CACA,iBAAA,CAGF,wBACE,UAAA,CACA,cAAA\",\"sourcesContent\":[\".op-clickable {\\n margin: 0;\\n padding: 0;\\n line-height: 1;\\n appearance: none;\\n border: none;\\n background: none;\\n font-family: inherit;\\n outline: 0;\\n cursor: pointer;\\n color: var(--colorText);\\n\\n &--inline {\\n display: inline-block;\\n width: fit-content;\\n }\\n\\n &[disabled] {\\n opacity: 0.5;\\n cursor: default;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","export default __webpack_public_path__ + \"assets/favicons/upc-favicon.ico\";","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.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 * 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\nexport default arrayLikeKeys;\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\nexport default baseTimes;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keys;\n","import { defineIntegration } from '@sentry/core';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) ;\n\n/**\n * Aggregrate linked errors in an event.\n */\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n//# sourceMappingURL=linkederrors.js.map\n","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\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 * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, 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 {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, 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 new Ctor;\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 new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = baseToString;\n","export default '5.21.6';","module.exports = __webpack_public_path__ + \"ec7b3f184238605a5239da7559e6cff9.js\";","\"use client\";\n\nimport { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const screensRef = useRef({});\n const forceUpdate = useForceUpdate();\n const responsiveObserver = useResponsiveObserver();\n useLayoutEffect(() => {\n const token = responsiveObserver.subscribe(supportScreens => {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import { useCallback, useState, useRef, useLayoutEffect } from 'react';\nimport { isBrowser, noop } from './misc/util';\nvar useLocalStorage = function (key, initialValue, options) {\n if (!isBrowser) {\n return [initialValue, noop, noop];\n }\n if (!key) {\n throw new Error('useLocalStorage key may not be falsy');\n }\n var deserializer = options\n ? options.raw\n ? function (value) { return value; }\n : options.deserializer\n : JSON.parse;\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var initializer = useRef(function (key) {\n try {\n var serializer = options ? (options.raw ? String : options.serializer) : JSON.stringify;\n var localStorageValue = localStorage.getItem(key);\n if (localStorageValue !== null) {\n return deserializer(localStorageValue);\n }\n else {\n initialValue && localStorage.setItem(key, serializer(initialValue));\n return initialValue;\n }\n }\n catch (_a) {\n // If user is in private mode or has storage restriction\n // localStorage can throw. JSON.parse and JSON.stringify\n // can throw, too.\n return initialValue;\n }\n });\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var _a = useState(function () { return initializer.current(key); }), state = _a[0], setState = _a[1];\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(function () { return setState(initializer.current(key)); }, [key]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var set = useCallback(function (valOrFunc) {\n try {\n var newState = typeof valOrFunc === 'function' ? valOrFunc(state) : valOrFunc;\n if (typeof newState === 'undefined')\n return;\n var value = void 0;\n if (options)\n if (options.raw)\n if (typeof newState === 'string')\n value = newState;\n else\n value = JSON.stringify(newState);\n else if (options.serializer)\n value = options.serializer(newState);\n else\n value = JSON.stringify(newState);\n else\n value = JSON.stringify(newState);\n localStorage.setItem(key, value);\n setState(deserializer(value));\n }\n catch (_a) {\n // If user is in private mode or has storage restriction\n // localStorage can throw. Also JSON.stringify can throw.\n }\n }, [key, setState]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var remove = useCallback(function () {\n try {\n localStorage.removeItem(key);\n setState(undefined);\n }\n catch (_a) {\n // If user is in private mode or has storage restriction\n // localStorage can throw.\n }\n }, [key, setState]);\n return [state, set, remove];\n};\nexport default useLocalStorage;\n","module.exports = __webpack_public_path__ + \"f9bfa6a6410f75b5729fee89b56e3a86.js\";","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\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\nmodule.exports = arrayFilter;\n","const getRating = (value, thresholds) => {\n if (value > thresholds[1]) {\n return 'poor';\n }\n if (value > thresholds[0]) {\n return 'needs-improvement';\n }\n return 'good';\n};\n\nconst bindReporter = (\n callback,\n metric,\n thresholds,\n reportAllChanges,\n) => {\n let prevValue;\n let delta;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (delta || prevValue === undefined) {\n prevValue = metric.value;\n metric.delta = delta;\n metric.rating = getRating(metric.value, thresholds);\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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\nmodule.exports = stackSet;\n","module.exports = __webpack_public_path__ + \"6faa9e5f2a0122d2333fa450337a09b0.js\";","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isArrayLikeObject;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\n\n/**![swap-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg3My4xIDU5Ni4ybC0xNjQtMjA4QTMyIDMyIDAgMDA2ODQgMzc2aC02NC44Yy02LjcgMC0xMC40IDcuNy02LjMgMTNsMTQ0LjMgMTgzSDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2OTUuOWMyNi44IDAgNDEuNy0zMC44IDI1LjItNTEuOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SwapRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SwapRightOutlined';\n}\nexport default RefIcon;","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./Clickable.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./Clickable.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport './Clickable.scss';\n\n/**\n * @name Clickable\n * @description The Clickable component's purpose is to provide an a11y\n * compliant means of creating a clickable element (button vs divs, spans etc...)\n */\nexport const Clickable = ({\n children,\n onClick,\n inline,\n className = '',\n ...htmlButtonProps\n}) => {\n const classnames = clsx(\n 'op-clickable',\n { 'op-clickable--inline': inline },\n { [className]: Boolean(className) },\n );\n return (\n <button\n type=\"button\"\n className={classnames}\n onClick={onClick}\n {...htmlButtonProps}\n >\n {children}\n </button>\n );\n};\n\nClickable.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]).isRequired,\n onClick: PropTypes.func.isRequired,\n inline: PropTypes.bool,\n};\n","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","module.exports = __webpack_public_path__ + \"de73b4d2a9ed4bcb851f9141e303636d.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited 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 getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar Keyframe = /*#__PURE__*/function () {\n function Keyframe(name, style) {\n _classCallCheck(this, Keyframe);\n _defineProperty(this, \"name\", void 0);\n _defineProperty(this, \"style\", void 0);\n _defineProperty(this, \"_keyframe\", true);\n this.name = name;\n this.style = style;\n }\n _createClass(Keyframe, [{\n key: \"getName\",\n value: function getName() {\n var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n }\n }]);\n return Keyframe;\n}();\nexport default Keyframe;","module.exports = __webpack_public_path__ + \"894edcaf39c3c95818e3949d737ed459.js\";","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\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, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.combineReducers = undefined;\n\nvar _combineReducers2 = require('./combineReducers');\n\nvar _combineReducers3 = _interopRequireDefault(_combineReducers2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.combineReducers = _combineReducers3.default;\n//# sourceMappingURL=index.js.map","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheGet;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","module.exports = __webpack_public_path__ + \"817edb0c6f9d66f9c0027762edb1d797.js\";","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","module.exports = __webpack_public_path__ + \"38b1d18836e38ee7b4deaeba0c35f7b8.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _QuestionCircleOutlined = _interopRequireDefault(require('./lib/icons/QuestionCircleOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _QuestionCircleOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"3a6ca6958d003ae67bb7fefc8713ee93.js\";","module.exports = __webpack_public_path__ + \"cf188b3f83735389d47bb12fc9f7069a.js\";","module.exports = __webpack_public_path__ + \"33b4e371d4983ab56f4db08627119f0b.js\";","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { heliumReceive } from 'utils/helpers';\n\nconst defaultSupportedLanguages = [\n { code: 'en', name: 'English', nativeName: 'English' },\n];\n\nexport function useSupportedLanguages() {\n const { t } = useTranslation();\n const [supportedLanguages, setSupportedLanguages] = useState(\n defaultSupportedLanguages,\n );\n\n useEffect(() => {\n const fetchSupportedLanguages = async () => {\n try {\n const { data } = await heliumReceive(\n 'globalListSupportedLanguages',\n [],\n );\n if (data.supportedLanguages) {\n setSupportedLanguages(\n data.supportedLanguages.map((language) => ({\n code: language.code,\n name: t(language.name),\n nativeName: language.nativeName,\n })),\n );\n }\n } catch {\n setSupportedLanguages(defaultSupportedLanguages);\n }\n };\n\n fetchSupportedLanguages();\n }, [t]);\n\n return supportedLanguages;\n}\n","var locale = {\n // Options\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport KEYCODE from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport React from 'react';\nvar defaultPageSizeOptions = ['10', '20', '50', '100'];\nvar Options = function Options(props) {\n var _props$pageSizeOption = props.pageSizeOptions,\n pageSizeOptions = _props$pageSizeOption === void 0 ? defaultPageSizeOptions : _props$pageSizeOption,\n locale = props.locale,\n changeSize = props.changeSize,\n pageSize = props.pageSize,\n goButton = props.goButton,\n quickGo = props.quickGo,\n rootPrefixCls = props.rootPrefixCls,\n Select = props.selectComponentClass,\n selectPrefixCls = props.selectPrefixCls,\n disabled = props.disabled,\n buildOptionText = props.buildOptionText,\n showSizeChanger = props.showSizeChanger;\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n goInputText = _React$useState2[0],\n setGoInputText = _React$useState2[1];\n var getValidValue = function getValidValue() {\n return !goInputText || Number.isNaN(goInputText) ? undefined : Number(goInputText);\n };\n var mergeBuildOptionText = typeof buildOptionText === 'function' ? buildOptionText : function (value) {\n return \"\".concat(value, \" \").concat(locale.items_per_page);\n };\n var changeSizeHandle = function changeSizeHandle(value, option) {\n changeSize === null || changeSize === void 0 || changeSize(Number(value));\n if (_typeof(showSizeChanger) === 'object') {\n var _showSizeChanger$onCh;\n (_showSizeChanger$onCh = showSizeChanger.onChange) === null || _showSizeChanger$onCh === void 0 || _showSizeChanger$onCh.call(showSizeChanger, value, option);\n }\n };\n var handleChange = function handleChange(e) {\n setGoInputText(e.target.value);\n };\n var handleBlur = function handleBlur(e) {\n if (goButton || goInputText === '') {\n return;\n }\n setGoInputText('');\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n };\n var go = function go(e) {\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n setGoInputText('');\n quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n }\n };\n var getPageSizeOptions = function getPageSizeOptions() {\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n var numberA = Number.isNaN(Number(a)) ? 0 : Number(a);\n var numberB = Number.isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n };\n // ============== cls ==============\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n\n // ============== render ==============\n\n if (!showSizeChanger && !quickGo) {\n return null;\n }\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n if (showSizeChanger && Select) {\n var _ref = _typeof(showSizeChanger) === 'object' ? showSizeChanger : {},\n showSizeChangerOptions = _ref.options,\n showSizeChangerClassName = _ref.className;\n // use showSizeChanger.options if existed, otherwise use pageSizeOptions\n var options = showSizeChangerOptions ? undefined : getPageSizeOptions().map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, mergeBuildOptionText(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, _extends({\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n optionLabelProp: showSizeChangerOptions ? 'label' : 'children',\n popupMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n },\n \"aria-label\": locale.page_size,\n defaultOpen: false\n }, _typeof(showSizeChanger) === 'object' ? showSizeChanger : null, {\n className: classNames(\"\".concat(prefixCls, \"-size-changer\"), showSizeChangerClassName),\n options: showSizeChangerOptions,\n onChange: changeSizeHandle\n }), options);\n }\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: go,\n onKeyUp: go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: go,\n onKeyUp: go\n }, goButton);\n }\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: handleChange,\n onKeyUp: go,\n onBlur: handleBlur,\n \"aria-label\": locale.page\n }), locale.page, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: prefixCls\n }, changeSelect, goInput);\n};\nif (process.env.NODE_ENV !== 'production') {\n Options.displayName = 'Options';\n}\nexport default Options;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nvar Pager = function Pager(props) {\n var rootPrefixCls = props.rootPrefixCls,\n page = props.page,\n active = props.active,\n className = props.className,\n showTitle = props.showTitle,\n onClick = props.onClick,\n onKeyPress = props.onKeyPress,\n itemRender = props.itemRender;\n var prefixCls = \"\".concat(rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(page), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), \"\".concat(prefixCls, \"-disabled\"), !page), className);\n var handleClick = function handleClick() {\n onClick(page);\n };\n var handleKeyPress = function handleKeyPress(e) {\n onKeyPress(e, onClick, page);\n };\n var pager = itemRender(page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, page));\n return pager ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? String(page) : null,\n className: cls,\n onClick: handleClick,\n onKeyDown: handleKeyPress,\n tabIndex: 0\n }, pager) : null;\n};\nif (process.env.NODE_ENV !== 'production') {\n Pager.displayName = 'Pager';\n}\nexport default Pager;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport React, { useEffect } from 'react';\nimport zhCN from \"./locale/zh_CN\";\nimport Options from \"./Options\";\nimport Pager from \"./Pager\";\nvar defaultItemRender = function defaultItemRender(page, type, element) {\n return element;\n};\nfunction noop() {}\nfunction isInteger(v) {\n var value = Number(v);\n return typeof value === 'number' && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value;\n}\nfunction calculatePage(p, pageSize, total) {\n var _pageSize = typeof p === 'undefined' ? pageSize : p;\n return Math.floor((total - 1) / _pageSize) + 1;\n}\nvar Pagination = function Pagination(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-pagination' : _props$prefixCls,\n _props$selectPrefixCl = props.selectPrefixCls,\n selectPrefixCls = _props$selectPrefixCl === void 0 ? 'rc-select' : _props$selectPrefixCl,\n className = props.className,\n selectComponentClass = props.selectComponentClass,\n currentProp = props.current,\n _props$defaultCurrent = props.defaultCurrent,\n defaultCurrent = _props$defaultCurrent === void 0 ? 1 : _props$defaultCurrent,\n _props$total = props.total,\n total = _props$total === void 0 ? 0 : _props$total,\n pageSizeProp = props.pageSize,\n _props$defaultPageSiz = props.defaultPageSize,\n defaultPageSize = _props$defaultPageSiz === void 0 ? 10 : _props$defaultPageSiz,\n _props$onChange = props.onChange,\n onChange = _props$onChange === void 0 ? noop : _props$onChange,\n hideOnSinglePage = props.hideOnSinglePage,\n align = props.align,\n _props$showPrevNextJu = props.showPrevNextJumpers,\n showPrevNextJumpers = _props$showPrevNextJu === void 0 ? true : _props$showPrevNextJu,\n showQuickJumper = props.showQuickJumper,\n showLessItems = props.showLessItems,\n _props$showTitle = props.showTitle,\n showTitle = _props$showTitle === void 0 ? true : _props$showTitle,\n _props$onShowSizeChan = props.onShowSizeChange,\n onShowSizeChange = _props$onShowSizeChan === void 0 ? noop : _props$onShowSizeChan,\n _props$locale = props.locale,\n locale = _props$locale === void 0 ? zhCN : _props$locale,\n style = props.style,\n _props$totalBoundaryS = props.totalBoundaryShowSizeChanger,\n totalBoundaryShowSizeChanger = _props$totalBoundaryS === void 0 ? 50 : _props$totalBoundaryS,\n disabled = props.disabled,\n simple = props.simple,\n showTotal = props.showTotal,\n _props$showSizeChange = props.showSizeChanger,\n showSizeChanger = _props$showSizeChange === void 0 ? total > totalBoundaryShowSizeChanger : _props$showSizeChange,\n pageSizeOptions = props.pageSizeOptions,\n _props$itemRender = props.itemRender,\n itemRender = _props$itemRender === void 0 ? defaultItemRender : _props$itemRender,\n jumpPrevIcon = props.jumpPrevIcon,\n jumpNextIcon = props.jumpNextIcon,\n prevIcon = props.prevIcon,\n nextIcon = props.nextIcon;\n var paginationRef = React.useRef(null);\n var _useMergedState = useMergedState(10, {\n value: pageSizeProp,\n defaultValue: defaultPageSize\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n pageSize = _useMergedState2[0],\n setPageSize = _useMergedState2[1];\n var _useMergedState3 = useMergedState(1, {\n value: currentProp,\n defaultValue: defaultCurrent,\n postState: function postState(c) {\n return Math.max(1, Math.min(c, calculatePage(undefined, pageSize, total)));\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n current = _useMergedState4[0],\n setCurrent = _useMergedState4[1];\n var _React$useState = React.useState(current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalInputVal = _React$useState2[0],\n setInternalInputVal = _React$useState2[1];\n useEffect(function () {\n setInternalInputVal(current);\n }, [current]);\n var hasOnChange = onChange !== noop;\n var hasCurrent = ('current' in props);\n if (process.env.NODE_ENV !== 'production') {\n warning(hasCurrent ? hasOnChange : true, 'You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n var jumpPrevPage = Math.max(1, current - (showLessItems ? 3 : 5));\n var jumpNextPage = Math.min(calculatePage(undefined, pageSize, total), current + (showLessItems ? 3 : 5));\n function getItemIcon(icon, label) {\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n }\n return iconNode;\n }\n function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, pageSize, total);\n var value;\n if (inputValue === '') {\n value = inputValue;\n } else if (Number.isNaN(Number(inputValue))) {\n value = internalInputVal;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n }\n function isValid(page) {\n return isInteger(page) && page !== current && isInteger(total) && total > 0;\n }\n var shouldDisplayQuickJumper = total > pageSize ? showQuickJumper : false;\n\n /**\n * prevent \"up arrow\" key reseting cursor position within textbox\n * @see https://stackoverflow.com/a/1081114\n */\n function handleKeyDown(event) {\n if (event.keyCode === KeyCode.UP || event.keyCode === KeyCode.DOWN) {\n event.preventDefault();\n }\n }\n function handleKeyUp(event) {\n var value = getValidValue(event);\n if (value !== internalInputVal) {\n setInternalInputVal(value);\n }\n switch (event.keyCode) {\n case KeyCode.ENTER:\n handleChange(value);\n break;\n case KeyCode.UP:\n handleChange(value - 1);\n break;\n case KeyCode.DOWN:\n handleChange(value + 1);\n break;\n default:\n break;\n }\n }\n function handleBlur(event) {\n handleChange(getValidValue(event));\n }\n function changePageSize(size) {\n var newCurrent = calculatePage(size, pageSize, total);\n var nextCurrent = current > newCurrent && newCurrent !== 0 ? newCurrent : current;\n setPageSize(size);\n setInternalInputVal(nextCurrent);\n onShowSizeChange === null || onShowSizeChange === void 0 || onShowSizeChange(current, size);\n setCurrent(nextCurrent);\n onChange === null || onChange === void 0 || onChange(nextCurrent, size);\n }\n function handleChange(page) {\n if (isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, pageSize, total);\n var newPage = page;\n if (page > currentPage) {\n newPage = currentPage;\n } else if (page < 1) {\n newPage = 1;\n }\n if (newPage !== internalInputVal) {\n setInternalInputVal(newPage);\n }\n setCurrent(newPage);\n onChange === null || onChange === void 0 || onChange(newPage, pageSize);\n return newPage;\n }\n return current;\n }\n var hasPrev = current > 1;\n var hasNext = current < calculatePage(undefined, pageSize, total);\n function prevHandle() {\n if (hasPrev) handleChange(current - 1);\n }\n function nextHandle() {\n if (hasNext) handleChange(current + 1);\n }\n function jumpPrevHandle() {\n handleChange(jumpPrevPage);\n }\n function jumpNextHandle() {\n handleChange(jumpNextPage);\n }\n function runIfEnter(event, callback) {\n if (event.key === 'Enter' || event.charCode === KeyCode.ENTER || event.keyCode === KeyCode.ENTER) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n callback.apply(void 0, restParams);\n }\n }\n function runIfEnterPrev(event) {\n runIfEnter(event, prevHandle);\n }\n function runIfEnterNext(event) {\n runIfEnter(event, nextHandle);\n }\n function runIfEnterJumpPrev(event) {\n runIfEnter(event, jumpPrevHandle);\n }\n function runIfEnterJumpNext(event) {\n runIfEnter(event, jumpNextHandle);\n }\n function renderPrev(prevPage) {\n var prevButton = itemRender(prevPage, 'prev', getItemIcon(prevIcon, 'prev page'));\n return /*#__PURE__*/React.isValidElement(prevButton) ? /*#__PURE__*/React.cloneElement(prevButton, {\n disabled: !hasPrev\n }) : prevButton;\n }\n function renderNext(nextPage) {\n var nextButton = itemRender(nextPage, 'next', getItemIcon(nextIcon, 'next page'));\n return /*#__PURE__*/React.isValidElement(nextButton) ? /*#__PURE__*/React.cloneElement(nextButton, {\n disabled: !hasNext\n }) : nextButton;\n }\n function handleGoTO(event) {\n if (event.type === 'click' || event.keyCode === KeyCode.ENTER) {\n handleChange(internalInputVal);\n }\n }\n var jumpPrev = null;\n var dataOrAriaAttributeProps = pickAttrs(props, {\n aria: true,\n data: true\n });\n var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n var jumpNext = null;\n var allPages = calculatePage(undefined, pageSize, total);\n\n // ================== Render ==================\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n if (hideOnSinglePage && total <= pageSize) {\n return null;\n }\n var pagerList = [];\n var pagerProps = {\n rootPrefixCls: prefixCls,\n onClick: handleChange,\n onKeyPress: runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender,\n page: -1\n };\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n\n // ================== Simple ==================\n // FIXME: ts type\n var isReadOnly = _typeof(simple) === 'object' ? simple.readOnly : !simple;\n var gotoButton = goButton;\n var simplePager = null;\n if (simple) {\n // ====== Simple quick jump ======\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: handleGoTO,\n onKeyUp: handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleGoTO,\n onKeyUp: handleGoTO\n }, goButton);\n }\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n simplePager = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, isReadOnly ? internalInputVal : /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: internalInputVal,\n disabled: disabled,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n onChange: handleKeyUp,\n onBlur: handleBlur,\n size: 3\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages);\n }\n\n // ====================== Normal ======================\n var pageBufferSize = showLessItems ? 1 : 2;\n if (allPages <= 3 + pageBufferSize * 2) {\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n for (var i = 1; i <= allPages; i += 1) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: current === i\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n var jumpPrevContent = itemRender(jumpPrevPage, 'jump-prev', getItemIcon(jumpPrevIcon, 'prev page'));\n var jumpNextContent = itemRender(jumpNextPage, 'jump-next', getItemIcon(jumpNextIcon, 'next page'));\n if (showPrevNextJumpers) {\n jumpPrev = jumpPrevContent ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: jumpPrevHandle,\n tabIndex: 0,\n onKeyDown: runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, jumpPrevContent) : null;\n jumpNext = jumpNextContent ? /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n onClick: jumpNextHandle,\n tabIndex: 0,\n onKeyDown: runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, jumpNextContent) : null;\n }\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n for (var _i = left; _i <= right; _i += 1) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: _i,\n page: _i,\n active: current === _i\n })));\n }\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/React.cloneElement(pagerList[0], {\n className: classNames(\"\".concat(prefixCls, \"-item-after-jump-prev\"), pagerList[0].props.className)\n });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n var lastOne = pagerList[pagerList.length - 1];\n pagerList[pagerList.length - 1] = /*#__PURE__*/React.cloneElement(lastOne, {\n className: classNames(\"\".concat(prefixCls, \"-item-before-jump-next\"), lastOne.props.className)\n });\n pagerList.push(jumpNext);\n }\n if (left !== 1) {\n pagerList.unshift( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: 1,\n page: 1\n })));\n }\n if (right !== allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: allPages,\n page: allPages\n })));\n }\n }\n var prev = renderPrev(prevPage);\n if (prev) {\n var prevDisabled = !hasPrev || !allPages;\n prev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: prevHandle,\n tabIndex: prevDisabled ? null : 0,\n onKeyDown: runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, prev);\n }\n var next = renderNext(nextPage);\n if (next) {\n var nextDisabled, nextTabIndex;\n if (simple) {\n nextDisabled = !hasNext;\n nextTabIndex = hasPrev ? 0 : null;\n } else {\n nextDisabled = !hasNext || !allPages;\n nextTabIndex = nextDisabled ? null : 0;\n }\n next = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: nextHandle,\n tabIndex: nextTabIndex,\n onKeyDown: runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, next);\n }\n var cls = classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-start\"), align === 'start'), \"\".concat(prefixCls, \"-center\"), align === 'center'), \"\".concat(prefixCls, \"-end\"), align === 'end'), \"\".concat(prefixCls, \"-simple\"), simple), \"\".concat(prefixCls, \"-disabled\"), disabled));\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: cls,\n style: style,\n ref: paginationRef\n }, dataOrAriaAttributeProps), totalText, prev, simple ? simplePager : pagerList, next, /*#__PURE__*/React.createElement(Options, {\n locale: locale,\n rootPrefixCls: prefixCls,\n disabled: disabled,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: changePageSize,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: shouldDisplayQuickJumper ? handleChange : null,\n goButton: gotoButton,\n showSizeChanger: showSizeChanger\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","\"use client\";\n\nimport * as React from 'react';\nimport Select from '../select';\nconst MiniSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n showSearch: true,\n size: \"small\"\n}));\nconst MiddleSelect = props => /*#__PURE__*/React.createElement(Select, Object.assign({}, props, {\n showSearch: true,\n size: \"middle\"\n}));\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import { unit } from '@ant-design/cssinjs';\nimport { genBasicInputStyle, genInputSmallStyle, initComponentToken, initInputToken } from '../../input/style';\nimport { genBaseOutlinedStyle, genDisabledStyle } from '../../input/style/variants';\nimport { genFocusOutline, genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genPaginationDisabledStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-disabled`]: {\n '&, &:hover': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n },\n '&:focus-visible': {\n cursor: 'not-allowed',\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n },\n [`&${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [`${componentCls}-item`]: {\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n a: {\n color: token.colorTextDisabled,\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'not-allowed'\n },\n '&-active': {\n borderColor: token.colorBorder,\n backgroundColor: token.itemActiveBgDisabled,\n '&:hover, &:active': {\n backgroundColor: token.itemActiveBgDisabled\n },\n a: {\n color: token.itemActiveColorDisabled\n }\n }\n },\n [`${componentCls}-item-link`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n },\n [`${componentCls}-simple&`]: {\n backgroundColor: 'transparent',\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n }\n }\n },\n [`${componentCls}-simple-pager`]: {\n color: token.colorTextDisabled\n },\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n [`${componentCls}-item-link-icon`]: {\n opacity: 0\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 1\n }\n }\n },\n [`&${componentCls}-simple`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&${componentCls}-disabled ${componentCls}-item-link`]: {\n '&:hover, &:active': {\n backgroundColor: 'transparent'\n }\n }\n }\n }\n };\n};\nconst genPaginationMiniStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`&${componentCls}-mini ${componentCls}-total-text, &${componentCls}-mini ${componentCls}-simple-pager`]: {\n height: token.itemSizeSM,\n lineHeight: unit(token.itemSizeSM)\n },\n [`&${componentCls}-mini ${componentCls}-item`]: {\n minWidth: token.itemSizeSM,\n height: token.itemSizeSM,\n margin: 0,\n lineHeight: unit(token.calc(token.itemSizeSM).sub(2).equal())\n },\n [`&${componentCls}-mini:not(${componentCls}-disabled) ${componentCls}-item:not(${componentCls}-item-active)`]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n },\n [`&${componentCls}-mini ${componentCls}-prev, &${componentCls}-mini ${componentCls}-next`]: {\n minWidth: token.itemSizeSM,\n height: token.itemSizeSM,\n margin: 0,\n lineHeight: unit(token.itemSizeSM)\n },\n [`&${componentCls}-mini:not(${componentCls}-disabled)`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&:hover ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&:active ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextActive\n },\n [`&${componentCls}-disabled:hover ${componentCls}-item-link`]: {\n backgroundColor: 'transparent'\n }\n }\n },\n [`\n &${componentCls}-mini ${componentCls}-prev ${componentCls}-item-link,\n &${componentCls}-mini ${componentCls}-next ${componentCls}-item-link\n `]: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n '&::after': {\n height: token.itemSizeSM,\n lineHeight: unit(token.itemSizeSM)\n }\n },\n [`&${componentCls}-mini ${componentCls}-jump-prev, &${componentCls}-mini ${componentCls}-jump-next`]: {\n height: token.itemSizeSM,\n marginInlineEnd: 0,\n lineHeight: unit(token.itemSizeSM)\n },\n [`&${componentCls}-mini ${componentCls}-options`]: {\n marginInlineStart: token.paginationMiniOptionsMarginInlineStart,\n '&-size-changer': {\n top: token.miniOptionsSizeChangerTop\n },\n '&-quick-jumper': {\n height: token.itemSizeSM,\n lineHeight: unit(token.itemSizeSM),\n input: Object.assign(Object.assign({}, genInputSmallStyle(token)), {\n width: token.paginationMiniQuickJumperInputWidth,\n height: token.controlHeightSM\n })\n }\n }\n };\n};\nconst genPaginationSimpleStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`\n &${componentCls}-simple ${componentCls}-prev,\n &${componentCls}-simple ${componentCls}-next\n `]: {\n height: token.itemSizeSM,\n lineHeight: unit(token.itemSizeSM),\n verticalAlign: 'top',\n [`${componentCls}-item-link`]: {\n height: token.itemSizeSM,\n backgroundColor: 'transparent',\n border: 0,\n '&:hover': {\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n },\n '&::after': {\n height: token.itemSizeSM,\n lineHeight: unit(token.itemSizeSM)\n }\n }\n },\n [`&${componentCls}-simple ${componentCls}-simple-pager`]: {\n display: 'inline-block',\n height: token.itemSizeSM,\n marginInlineEnd: token.marginXS,\n input: {\n boxSizing: 'border-box',\n height: '100%',\n padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n textAlign: 'center',\n backgroundColor: token.itemInputBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `border-color ${token.motionDurationMid}`,\n color: 'inherit',\n '&:hover': {\n borderColor: token.colorPrimary\n },\n '&:focus': {\n borderColor: token.colorPrimaryHover,\n boxShadow: `${unit(token.inputOutlineOffset)} 0 ${unit(token.controlOutlineWidth)} ${token.controlOutline}`\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n cursor: 'not-allowed'\n }\n }\n }\n };\n};\nconst genPaginationJumpStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n outline: 0,\n [`${componentCls}-item-container`]: {\n position: 'relative',\n [`${componentCls}-item-link-icon`]: {\n color: token.colorPrimary,\n fontSize: token.fontSizeSM,\n opacity: 0,\n transition: `all ${token.motionDurationMid}`,\n '&-svg': {\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n margin: 'auto'\n }\n },\n [`${componentCls}-item-ellipsis`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n display: 'block',\n margin: 'auto',\n color: token.colorTextDisabled,\n letterSpacing: token.paginationEllipsisLetterSpacing,\n textAlign: 'center',\n textIndent: token.paginationEllipsisTextIndent,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`\n }\n },\n '&:hover': {\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n }\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n marginInlineEnd: token.marginXS\n },\n [`\n ${componentCls}-prev,\n ${componentCls}-next,\n ${componentCls}-jump-prev,\n ${componentCls}-jump-next\n `]: {\n display: 'inline-block',\n minWidth: token.itemSize,\n height: token.itemSize,\n color: token.colorText,\n fontFamily: token.fontFamily,\n lineHeight: unit(token.itemSize),\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n outline: 0,\n button: {\n color: token.colorText,\n cursor: 'pointer',\n userSelect: 'none'\n },\n [`${componentCls}-item-link`]: {\n display: 'block',\n width: '100%',\n height: '100%',\n padding: 0,\n fontSize: token.fontSizeSM,\n textAlign: 'center',\n backgroundColor: 'transparent',\n border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 'none',\n transition: `all ${token.motionDurationMid}`\n },\n [`&:hover ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&:active ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgTextActive\n },\n [`&${componentCls}-disabled:hover`]: {\n [`${componentCls}-item-link`]: {\n backgroundColor: 'transparent'\n }\n }\n },\n [`${componentCls}-slash`]: {\n marginInlineEnd: token.paginationSlashMarginInlineEnd,\n marginInlineStart: token.paginationSlashMarginInlineStart\n },\n [`${componentCls}-options`]: {\n display: 'inline-block',\n marginInlineStart: token.margin,\n verticalAlign: 'middle',\n '&-size-changer': {\n display: 'inline-block',\n width: 'auto'\n },\n '&-quick-jumper': {\n display: 'inline-block',\n height: token.controlHeight,\n marginInlineStart: token.marginXS,\n lineHeight: unit(token.controlHeight),\n verticalAlign: 'top',\n input: Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), genBaseOutlinedStyle(token, {\n borderColor: token.colorBorder,\n hoverBorderColor: token.colorPrimaryHover,\n activeBorderColor: token.colorPrimary,\n activeShadow: token.activeShadow\n })), {\n '&[disabled]': Object.assign({}, genDisabledStyle(token)),\n width: token.calc(token.controlHeightLG).mul(1.25).equal(),\n height: token.controlHeight,\n boxSizing: 'border-box',\n margin: 0,\n marginInlineStart: token.marginXS,\n marginInlineEnd: token.marginXS\n })\n }\n }\n };\n};\nconst genPaginationItemStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-item`]: {\n display: 'inline-block',\n minWidth: token.itemSize,\n height: token.itemSize,\n marginInlineEnd: token.marginXS,\n fontFamily: token.fontFamily,\n lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n textAlign: 'center',\n verticalAlign: 'middle',\n listStyle: 'none',\n backgroundColor: token.itemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n borderRadius: token.borderRadius,\n outline: 0,\n cursor: 'pointer',\n userSelect: 'none',\n a: {\n display: 'block',\n padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n color: token.colorText,\n '&:hover': {\n textDecoration: 'none'\n }\n },\n [`&:not(${componentCls}-item-active)`]: {\n '&:hover': {\n transition: `all ${token.motionDurationMid}`,\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n },\n '&-active': {\n fontWeight: token.fontWeightStrong,\n backgroundColor: token.itemActiveBg,\n borderColor: token.colorPrimary,\n a: {\n color: token.colorPrimary\n },\n '&:hover': {\n borderColor: token.colorPrimaryHover\n },\n '&:hover a': {\n color: token.colorPrimaryHover\n }\n }\n }\n };\n};\nconst genPaginationStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n '&-start': {\n justifyContent: 'start'\n },\n '&-center': {\n justifyContent: 'center'\n },\n '&-end': {\n justifyContent: 'end'\n },\n 'ul, ol': {\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n '&::after': {\n display: 'block',\n clear: 'both',\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden',\n content: '\"\"'\n },\n [`${componentCls}-total-text`]: {\n display: 'inline-block',\n height: token.itemSize,\n marginInlineEnd: token.marginXS,\n lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n verticalAlign: 'middle'\n }\n }), genPaginationItemStyle(token)), genPaginationJumpStyle(token)), genPaginationSimpleStyle(token)), genPaginationMiniStyle(token)), genPaginationDisabledStyle(token)), {\n // media query style\n [`@media only screen and (max-width: ${token.screenLG}px)`]: {\n [`${componentCls}-item`]: {\n '&-after-jump-prev, &-before-jump-next': {\n display: 'none'\n }\n }\n },\n [`@media only screen and (max-width: ${token.screenSM}px)`]: {\n [`${componentCls}-options`]: {\n display: 'none'\n }\n }\n }),\n // rtl style\n [`&${token.componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nconst genPaginationFocusStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled)`]: {\n [`${componentCls}-item`]: Object.assign({}, genFocusStyle(token)),\n [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n '&:focus-visible': Object.assign({\n [`${componentCls}-item-link-icon`]: {\n opacity: 1\n },\n [`${componentCls}-item-ellipsis`]: {\n opacity: 0\n }\n }, genFocusOutline(token))\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n [`&:focus-visible ${componentCls}-item-link`]: Object.assign({}, genFocusOutline(token))\n }\n }\n };\n};\nexport const prepareComponentToken = token => Object.assign({\n itemBg: token.colorBgContainer,\n itemSize: token.controlHeight,\n itemSizeSM: token.controlHeightSM,\n itemActiveBg: token.colorBgContainer,\n itemLinkBg: token.colorBgContainer,\n itemActiveColorDisabled: token.colorTextDisabled,\n itemActiveBgDisabled: token.controlItemBgActiveDisabled,\n itemInputBg: token.colorBgContainer,\n miniOptionsSizeChangerTop: 0\n}, initComponentToken(token));\nexport const prepareToken = token => mergeToken(token, {\n inputOutlineOffset: 0,\n paginationMiniOptionsMarginInlineStart: token.calc(token.marginXXS).div(2).equal(),\n paginationMiniQuickJumperInputWidth: token.calc(token.controlHeightLG).mul(1.1).equal(),\n paginationItemPaddingInline: token.calc(token.marginXXS).mul(1.5).equal(),\n paginationEllipsisLetterSpacing: token.calc(token.marginXXS).div(2).equal(),\n paginationSlashMarginInlineStart: token.marginSM,\n paginationSlashMarginInlineEnd: token.marginSM,\n paginationEllipsisTextIndent: '0.13em' // magic for ui experience\n}, initInputToken(token));\n// ============================== Export ==============================\nexport default genStyleHooks('Pagination', token => {\n const paginationToken = prepareToken(token);\n return [genPaginationStyle(paginationToken), genPaginationFocusStyle(paginationToken)];\n}, prepareComponentToken);","import { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\nconst genBorderedStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}${componentCls}-bordered${componentCls}-disabled:not(${componentCls}-mini)`]: {\n '&, &:hover': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n '&:focus-visible': {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder\n }\n },\n [`${componentCls}-item, ${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n [`&:hover:not(${componentCls}-item-active)`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n a: {\n color: token.colorTextDisabled\n }\n },\n [`&${componentCls}-item-active`]: {\n backgroundColor: token.itemActiveBgDisabled\n }\n },\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder\n }\n }\n },\n [`${componentCls}${componentCls}-bordered:not(${componentCls}-mini)`]: {\n [`${componentCls}-prev, ${componentCls}-next`]: {\n '&:hover button': {\n borderColor: token.colorPrimaryHover,\n backgroundColor: token.itemBg\n },\n [`${componentCls}-item-link`]: {\n backgroundColor: token.itemLinkBg,\n borderColor: token.colorBorder\n },\n [`&:hover ${componentCls}-item-link`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.itemBg,\n color: token.colorPrimary\n },\n [`&${componentCls}-disabled`]: {\n [`${componentCls}-item-link`]: {\n borderColor: token.colorBorder,\n color: token.colorTextDisabled\n }\n }\n },\n [`${componentCls}-item`]: {\n backgroundColor: token.itemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n [`&:hover:not(${componentCls}-item-active)`]: {\n borderColor: token.colorPrimary,\n backgroundColor: token.itemBg,\n a: {\n color: token.colorPrimary\n }\n },\n '&-active': {\n borderColor: token.colorPrimary\n }\n }\n }\n };\n};\nexport default genSubStyleComponent(['Pagination', 'bordered'], token => {\n const paginationToken = prepareToken(token);\n return [genBorderedStyle(paginationToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { useLocale } from '../locale';\nimport { useToken } from '../theme/internal';\nimport { MiddleSelect, MiniSelect } from './Select';\nimport useStyle from './style';\nimport BorderedStyle from './style/bordered';\nconst Pagination = props => {\n const {\n align,\n prefixCls: customizePrefixCls,\n selectPrefixCls: customizeSelectPrefixCls,\n className,\n rootClassName,\n style,\n size: customizeSize,\n locale: customLocale,\n selectComponentClass,\n responsive,\n showSizeChanger\n } = props,\n restProps = __rest(props, [\"align\", \"prefixCls\", \"selectPrefixCls\", \"className\", \"rootClassName\", \"style\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n const {\n xs\n } = useBreakpoint(responsive);\n const [, token] = useToken();\n const {\n getPrefixCls,\n direction,\n pagination = {}\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('pagination', customizePrefixCls);\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n const iconsProps = React.useMemo(() => {\n const ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-ellipsis`\n }, \"\\u2022\\u2022\\u2022\");\n const prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null));\n const nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: `${prefixCls}-item-link`,\n type: \"button\",\n tabIndex: -1\n }, direction === 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null));\n const jumpPrevIcon =\n /*#__PURE__*/\n // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: `${prefixCls}-item-link-icon`\n })) : (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: `${prefixCls}-item-link-icon`\n })), ellipsis));\n const jumpNextIcon =\n /*#__PURE__*/\n // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n React.createElement(\"a\", {\n className: `${prefixCls}-item-link`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-item-container`\n }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: `${prefixCls}-item-link-icon`\n })) : (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: `${prefixCls}-item-link-icon`\n })), ellipsis));\n return {\n prevIcon,\n nextIcon,\n jumpPrevIcon,\n jumpNextIcon\n };\n }, [direction, prefixCls]);\n const [contextLocale] = useLocale('Pagination', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), customLocale);\n const mergedSize = useSize(customizeSize);\n const isSmall = mergedSize === 'small' || !!(xs && !mergedSize && responsive);\n const selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n const extendedClassName = classNames({\n [`${prefixCls}-${align}`]: !!align,\n [`${prefixCls}-mini`]: isSmall,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-bordered`]: token.wireframe\n }, pagination === null || pagination === void 0 ? void 0 : pagination.className, className, rootClassName, hashId, cssVarCls);\n const mergedStyle = Object.assign(Object.assign({}, pagination === null || pagination === void 0 ? void 0 : pagination.style), style);\n return wrapCSSVar(/*#__PURE__*/React.createElement(React.Fragment, null, token.wireframe && /*#__PURE__*/React.createElement(BorderedStyle, {\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(RcPagination, Object.assign({}, iconsProps, restProps, {\n style: mergedStyle,\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n locale: locale,\n showSizeChanger: mergedShowSizeChanger\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","\"use client\";\n\nimport Pagination from './Pagination';\nexport default Pagination;","'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","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\n\n/**![loading](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LoadingOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LoadingOutlined';\n}\nexport default RefIcon;","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(globalThis[CONSTRUCTOR].prototype[METHOD]);\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _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\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\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), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n _this.setState(function (prevState) {\n var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n return {\n keyEntities: nextKeyEntities\n };\n }, function () {\n var keyEntities = _this.state.keyEntities;\n var restKeysCount = keyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n if (restKeysCount === 0 && _this.props.onAllRemoved) {\n _this.props.onAllRemoved();\n }\n });\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","module.exports = __webpack_public_path__ + \"57e14488b13e50ebdb5fdfc7880da683.js\";","module.exports = __webpack_public_path__ + \"b243eabb7cb281a20eae3523742d562f.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\n\n// ------- selector type -------\n\n// ------- selector type end -------\n\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var dependencies = args[0],\n _args$ = args[1],\n _form = _args$ === void 0 ? {} : _args$;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var getWatchValue = function getWatchValue(values, allValues) {\n var watchValue = options.preserve ? allValues : values;\n return typeof dependencies === 'function' ? dependencies(watchValue) : getValue(watchValue, namePathRef.current);\n };\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getWatchValue(values, allValues);\n var nextValueStr = stringify(newValue);\n\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n\n // TODO: We can improve this perf in future\n var initialValue = getWatchValue(getFieldsValue(), getFieldsValue(true));\n\n // React 18 has the bug that will queue update twice even the value is not changed\n // ref: https://github.com/facebook/react/issues/27213\n if (value !== initialValue) {\n setValue(initialValue);\n }\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _CaretRightOutlined = _interopRequireDefault(require('./lib/icons/CaretRightOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _CaretRightOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"aa0eee504d52a12d3a30bbd523afcc34.js\";","/**\n * Diff Match and Patch\n * Copyright 2018 The diff-match-patch Authors.\n * https://github.com/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 * @fileoverview Computes the difference between two texts to create a patch.\n * Applies the patch onto another text, allowing for errors.\n * @author fraser@google.com (Neil Fraser)\n */\n\n/**\n * Class containing the diff, match and patch methods.\n * @constructor\n */\nvar diff_match_patch = function() {\n\n // Defaults.\n // Redefine these in your program to override the defaults.\n\n // Number of seconds to map a diff before giving up (0 for infinity).\n this.Diff_Timeout = 1.0;\n // Cost of an empty edit operation in terms of edit characters.\n this.Diff_EditCost = 4;\n // At what point is no match declared (0.0 = perfection, 1.0 = very loose).\n this.Match_Threshold = 0.5;\n // How far to search for a match (0 = exact location, 1000+ = broad match).\n // A match this many characters away from the expected location will add\n // 1.0 to the score (0.0 is a perfect match).\n this.Match_Distance = 1000;\n // When deleting a large block of text (over ~64 characters), how close do\n // the contents have to be to match the expected contents. (0.0 = perfection,\n // 1.0 = very loose). Note that Match_Threshold controls how closely the\n // end points of a delete need to match.\n this.Patch_DeleteThreshold = 0.5;\n // Chunk size for context length.\n this.Patch_Margin = 4;\n\n // The number of bits in an int.\n this.Match_MaxBits = 32;\n};\n\n\n// DIFF FUNCTIONS\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 * Class representing one diff tuple.\n * ~Attempts to look like a two-element array (which is what this used to be).~\n * Constructor returns an actual two-element array, to allow destructing @JackuB\n * See https://github.com/JackuB/diff-match-patch/issues/14 for details\n * @param {number} op Operation, one of: DIFF_DELETE, DIFF_INSERT, DIFF_EQUAL.\n * @param {string} text Text to be deleted, inserted, or retained.\n * @constructor\n */\ndiff_match_patch.Diff = function(op, text) {\n return [op, text];\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 {boolean=} opt_checklines Optional speedup flag. If present and false,\n * then don't run a line-level diff first to identify the changed areas.\n * Defaults to true, which does a faster, slightly less optimal diff.\n * @param {number=} opt_deadline Optional time when the diff should be complete\n * by. Used internally for recursive calls. Users should set DiffTimeout\n * instead.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines,\n opt_deadline) {\n // Set a deadline by which time the diff must be complete.\n if (typeof opt_deadline == 'undefined') {\n if (this.Diff_Timeout <= 0) {\n opt_deadline = Number.MAX_VALUE;\n } else {\n opt_deadline = (new Date).getTime() + this.Diff_Timeout * 1000;\n }\n }\n var deadline = opt_deadline;\n\n // Check for null inputs.\n if (text1 == null || text2 == null) {\n throw new Error('Null input. (diff_main)');\n }\n\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [new diff_match_patch.Diff(DIFF_EQUAL, text1)];\n }\n return [];\n }\n\n if (typeof opt_checklines == 'undefined') {\n opt_checklines = true;\n }\n var checklines = opt_checklines;\n\n // Trim off common prefix (speedup).\n var commonlength = this.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 = this.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 = this.diff_compute_(text1, text2, checklines, deadline);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, commonprefix));\n }\n if (commonsuffix) {\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, commonsuffix));\n }\n this.diff_cleanupMerge(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 * @param {boolean} checklines Speedup flag. If false, then don't run a\n * line-level diff first to identify the changed areas.\n * If true, then run a faster, slightly less optimal diff.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines,\n deadline) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [new diff_match_patch.Diff(DIFF_INSERT, text2)];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [new diff_match_patch.Diff(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 = [new diff_match_patch.Diff(DIFF_INSERT, longtext.substring(0, i)),\n new diff_match_patch.Diff(DIFF_EQUAL, shorttext),\n new diff_match_patch.Diff(DIFF_INSERT,\n 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 [new diff_match_patch.Diff(DIFF_DELETE, text1),\n new diff_match_patch.Diff(DIFF_INSERT, text2)];\n }\n\n // Check to see if the problem can be split in two.\n var hm = this.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 = this.diff_main(text1_a, text2_a, checklines, deadline);\n var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline);\n // Merge the results.\n return diffs_a.concat([new diff_match_patch.Diff(DIFF_EQUAL, mid_common)],\n diffs_b);\n }\n\n if (checklines && text1.length > 100 && text2.length > 100) {\n return this.diff_lineMode_(text1, text2, deadline);\n }\n\n return this.diff_bisect_(text1, text2, deadline);\n};\n\n\n/**\n * Do a quick line-level diff on both strings, then rediff the parts for\n * greater accuracy.\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} deadline Time when the diff should be complete by.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) {\n // Scan the text on a line-by-line basis first.\n var a = this.diff_linesToChars_(text1, text2);\n text1 = a.chars1;\n text2 = a.chars2;\n var linearray = a.lineArray;\n\n var diffs = this.diff_main(text1, text2, false, deadline);\n\n // Convert the diff back to original text.\n this.diff_charsToLines_(diffs, linearray);\n // Eliminate freak matches (e.g. blank lines)\n this.diff_cleanupSemantic(diffs);\n\n // Rediff any replacement blocks, this time character-by-character.\n // Add a dummy entry at the end.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, ''));\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete >= 1 && count_insert >= 1) {\n // Delete the offending records and add the merged ones.\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert);\n pointer = pointer - count_delete - count_insert;\n var subDiff =\n this.diff_main(text_delete, text_insert, false, deadline);\n for (var j = subDiff.length - 1; j >= 0; j--) {\n diffs.splice(pointer, 0, subDiff[j]);\n }\n pointer = pointer + subDiff.length;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n pointer++;\n }\n diffs.pop(); // Remove the dummy entry at the end.\n\n return diffs;\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 * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) {\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 // Bail out if deadline is reached.\n if ((new Date()).getTime() > deadline) {\n break;\n }\n\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 this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\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 this.diff_bisectSplit_(text1, text2, x1, y1, deadline);\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 [new diff_match_patch.Diff(DIFF_DELETE, text1),\n new diff_match_patch.Diff(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 * @param {number} deadline Time at which to bail if not yet complete.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n * @private\n */\ndiff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y,\n deadline) {\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 = this.diff_main(text1a, text2a, false, deadline);\n var diffsb = this.diff_main(text1b, text2b, false, deadline);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Split two texts into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}}\n * An object containing the encoded text1, the encoded text2 and\n * the array of unique strings.\n * The zeroth element of the array of unique strings is intentionally blank.\n * @private\n */\ndiff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) {\n var lineArray = []; // e.g. lineArray[4] == 'Hello\\n'\n var lineHash = {}; // e.g. lineHash['Hello\\n'] == 4\n\n // '\\x00' is a valid character, but various debuggers don't like it.\n // So we'll insert a junk entry to avoid generating a null character.\n lineArray[0] = '';\n\n /**\n * Split a text into an array of strings. Reduce the texts to a string of\n * hashes where each Unicode character represents one line.\n * Modifies linearray and linehash through being a closure.\n * @param {string} text String to encode.\n * @return {string} Encoded string.\n * @private\n */\n function diff_linesToCharsMunge_(text) {\n var chars = '';\n // Walk the text, pulling out a substring for each line.\n // text.split('\\n') would would temporarily double our memory footprint.\n // Modifying text would create many large strings to garbage collect.\n var lineStart = 0;\n var lineEnd = -1;\n // Keeping our own length variable is faster than looking it up.\n var lineArrayLength = lineArray.length;\n while (lineEnd < text.length - 1) {\n lineEnd = text.indexOf('\\n', lineStart);\n if (lineEnd == -1) {\n lineEnd = text.length - 1;\n }\n var line = text.substring(lineStart, lineEnd + 1);\n\n if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) :\n (lineHash[line] !== undefined)) {\n chars += String.fromCharCode(lineHash[line]);\n } else {\n if (lineArrayLength == maxLines) {\n // Bail out at 65535 because\n // String.fromCharCode(65536) == String.fromCharCode(0)\n line = text.substring(lineStart);\n lineEnd = text.length;\n }\n chars += String.fromCharCode(lineArrayLength);\n lineHash[line] = lineArrayLength;\n lineArray[lineArrayLength++] = line;\n }\n lineStart = lineEnd + 1;\n }\n return chars;\n }\n // Allocate 2/3rds of the space for text1, the rest for text2.\n var maxLines = 40000;\n var chars1 = diff_linesToCharsMunge_(text1);\n maxLines = 65535;\n var chars2 = diff_linesToCharsMunge_(text2);\n return {chars1: chars1, chars2: chars2, lineArray: lineArray};\n};\n\n\n/**\n * Rehydrate the text in a diff from a string of line hashes to real lines of\n * text.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @param {!Array.<string>} lineArray Array of unique strings.\n * @private\n */\ndiff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) {\n for (var i = 0; i < diffs.length; i++) {\n var chars = diffs[i][1];\n var text = [];\n for (var j = 0; j < chars.length; j++) {\n text[j] = lineArray[chars.charCodeAt(j)];\n }\n diffs[i][1] = text.join('');\n }\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 */\ndiff_match_patch.prototype.diff_commonPrefix = function(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: https://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 */\ndiff_match_patch.prototype.diff_commonSuffix = function(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: https://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 * Determine if the suffix of one string is the prefix of another.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of the first\n * string and the start of the second string.\n * @private\n */\ndiff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n // Eliminate the null case.\n if (text1_length == 0 || text2_length == 0) {\n return 0;\n }\n // Truncate the longer string.\n if (text1_length > text2_length) {\n text1 = text1.substring(text1_length - text2_length);\n } else if (text1_length < text2_length) {\n text2 = text2.substring(0, text1_length);\n }\n var text_length = Math.min(text1_length, text2_length);\n // Quick check for the worst case.\n if (text1 == text2) {\n return text_length;\n }\n\n // Start by looking for a single character match\n // and increase length until no match is found.\n // Performance analysis: https://neil.fraser.name/news/2010/11/04/\n var best = 0;\n var length = 1;\n while (true) {\n var pattern = text1.substring(text_length - length);\n var found = text2.indexOf(pattern);\n if (found == -1) {\n return best;\n }\n length += found;\n if (found == 0 || text1.substring(text_length - length) ==\n text2.substring(0, length)) {\n best = length;\n length++;\n }\n }\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 * @private\n */\ndiff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) {\n if (this.Diff_Timeout <= 0) {\n // Don't risk returning a non-optimal diff if we have unlimited time.\n return null;\n }\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 var dmp = this; // 'this' becomes 'window' in a closure.\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 = dmp.diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = dmp.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 * Reduce the number of edits by eliminating semantically trivial equalities.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemantic = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastEquality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Number of characters that changed prior to the equality.\n var length_insertions1 = 0;\n var length_deletions1 = 0;\n // Number of characters that changed after the equality.\n var length_insertions2 = 0;\n var length_deletions2 = 0;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n equalities[equalitiesLength++] = pointer;\n length_insertions1 = length_insertions2;\n length_deletions1 = length_deletions2;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastEquality = diffs[pointer][1];\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_INSERT) {\n length_insertions2 += diffs[pointer][1].length;\n } else {\n length_deletions2 += diffs[pointer][1].length;\n }\n // Eliminate an equality that is smaller or equal to the edits on both\n // sides of it.\n if (lastEquality && (lastEquality.length <=\n Math.max(length_insertions1, length_deletions1)) &&\n (lastEquality.length <= Math.max(length_insertions2,\n length_deletions2))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n new diff_match_patch.Diff(DIFF_DELETE, lastEquality));\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n // Throw away the equality we just deleted.\n equalitiesLength--;\n // Throw away the previous equality (it needs to be reevaluated).\n equalitiesLength--;\n pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;\n length_insertions1 = 0; // Reset the counters.\n length_deletions1 = 0;\n length_insertions2 = 0;\n length_deletions2 = 0;\n lastEquality = null;\n changes = true;\n }\n }\n pointer++;\n }\n\n // Normalize the diff.\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\n this.diff_cleanupSemanticLossless(diffs);\n\n // Find any overlaps between deletions and insertions.\n // e.g: <del>abcxxx</del><ins>xxxdef</ins>\n // -> <del>abc</del>xxx<ins>def</ins>\n // e.g: <del>xxxabc</del><ins>defxxx</ins>\n // -> <ins>def</ins>xxx<del>abc</del>\n // Only extract an overlap if it is as big as the edit ahead or behind it.\n pointer = 1;\n while (pointer < diffs.length) {\n if (diffs[pointer - 1][0] == DIFF_DELETE &&\n diffs[pointer][0] == DIFF_INSERT) {\n var deletion = diffs[pointer - 1][1];\n var insertion = diffs[pointer][1];\n var overlap_length1 = this.diff_commonOverlap_(deletion, insertion);\n var overlap_length2 = this.diff_commonOverlap_(insertion, deletion);\n if (overlap_length1 >= overlap_length2) {\n if (overlap_length1 >= deletion.length / 2 ||\n overlap_length1 >= insertion.length / 2) {\n // Overlap found. Insert an equality and trim the surrounding edits.\n diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL,\n insertion.substring(0, overlap_length1)));\n diffs[pointer - 1][1] =\n deletion.substring(0, deletion.length - overlap_length1);\n diffs[pointer + 1][1] = insertion.substring(overlap_length1);\n pointer++;\n }\n } else {\n if (overlap_length2 >= deletion.length / 2 ||\n overlap_length2 >= insertion.length / 2) {\n // Reverse overlap found.\n // Insert an equality and swap and trim the surrounding edits.\n diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL,\n deletion.substring(0, overlap_length2)));\n diffs[pointer - 1][0] = DIFF_INSERT;\n diffs[pointer - 1][1] =\n insertion.substring(0, insertion.length - overlap_length2);\n diffs[pointer + 1][0] = DIFF_DELETE;\n diffs[pointer + 1][1] =\n deletion.substring(overlap_length2);\n pointer++;\n }\n }\n pointer++;\n }\n pointer++;\n }\n};\n\n\n/**\n * Look for single edits surrounded on both sides by equalities\n * which can be shifted sideways to align the edit to a word boundary.\n * e.g: The c<ins>at c</ins>ame. -> The <ins>cat </ins>came.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) {\n /**\n * Given two strings, compute a score representing whether the internal\n * boundary falls on logical boundaries.\n * Scores range from 6 (best) to 0 (worst).\n * Closure, but does not reference any external variables.\n * @param {string} one First string.\n * @param {string} two Second string.\n * @return {number} The score.\n * @private\n */\n function diff_cleanupSemanticScore_(one, two) {\n if (!one || !two) {\n // Edges are the best.\n return 6;\n }\n\n // Each port of this function behaves slightly differently due to\n // subtle differences in each language's definition of things like\n // 'whitespace'. Since this function's purpose is largely cosmetic,\n // the choice has been made to use each language's native features\n // rather than force total conformity.\n var char1 = one.charAt(one.length - 1);\n var char2 = two.charAt(0);\n var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_);\n var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_);\n var whitespace1 = nonAlphaNumeric1 &&\n char1.match(diff_match_patch.whitespaceRegex_);\n var whitespace2 = nonAlphaNumeric2 &&\n char2.match(diff_match_patch.whitespaceRegex_);\n var lineBreak1 = whitespace1 &&\n char1.match(diff_match_patch.linebreakRegex_);\n var lineBreak2 = whitespace2 &&\n char2.match(diff_match_patch.linebreakRegex_);\n var blankLine1 = lineBreak1 &&\n one.match(diff_match_patch.blanklineEndRegex_);\n var blankLine2 = lineBreak2 &&\n two.match(diff_match_patch.blanklineStartRegex_);\n\n if (blankLine1 || blankLine2) {\n // Five points for blank lines.\n return 5;\n } else if (lineBreak1 || lineBreak2) {\n // Four points for line breaks.\n return 4;\n } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {\n // Three points for end of sentences.\n return 3;\n } else if (whitespace1 || whitespace2) {\n // Two points for whitespace.\n return 2;\n } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {\n // One point for non-alphanumeric.\n return 1;\n }\n return 0;\n }\n\n var 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 var equality1 = diffs[pointer - 1][1];\n var edit = diffs[pointer][1];\n var equality2 = diffs[pointer + 1][1];\n\n // First, shift the edit as far left as possible.\n var commonOffset = this.diff_commonSuffix(equality1, edit);\n if (commonOffset) {\n var commonString = edit.substring(edit.length - commonOffset);\n equality1 = equality1.substring(0, equality1.length - commonOffset);\n edit = commonString + edit.substring(0, edit.length - commonOffset);\n equality2 = commonString + equality2;\n }\n\n // Second, step character by character right, looking for the best fit.\n var bestEquality1 = equality1;\n var bestEdit = edit;\n var bestEquality2 = equality2;\n var bestScore = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n while (edit.charAt(0) === equality2.charAt(0)) {\n equality1 += edit.charAt(0);\n edit = edit.substring(1) + equality2.charAt(0);\n equality2 = equality2.substring(1);\n var score = diff_cleanupSemanticScore_(equality1, edit) +\n diff_cleanupSemanticScore_(edit, equality2);\n // The >= encourages trailing rather than leading whitespace on edits.\n if (score >= bestScore) {\n bestScore = score;\n bestEquality1 = equality1;\n bestEdit = edit;\n bestEquality2 = equality2;\n }\n }\n\n if (diffs[pointer - 1][1] != bestEquality1) {\n // We have an improvement, save it back to the diff.\n if (bestEquality1) {\n diffs[pointer - 1][1] = bestEquality1;\n } else {\n diffs.splice(pointer - 1, 1);\n pointer--;\n }\n diffs[pointer][1] = bestEdit;\n if (bestEquality2) {\n diffs[pointer + 1][1] = bestEquality2;\n } else {\n diffs.splice(pointer + 1, 1);\n pointer--;\n }\n }\n }\n pointer++;\n }\n};\n\n// Define some regex patterns for matching boundaries.\ndiff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;\ndiff_match_patch.whitespaceRegex_ = /\\s/;\ndiff_match_patch.linebreakRegex_ = /[\\r\\n]/;\ndiff_match_patch.blanklineEndRegex_ = /\\n\\r?\\n$/;\ndiff_match_patch.blanklineStartRegex_ = /^\\r?\\n\\r?\\n/;\n\n/**\n * Reduce the number of edits by eliminating operationally trivial equalities.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) {\n var changes = false;\n var equalities = []; // Stack of indices where equalities are found.\n var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n /** @type {?string} */\n var lastEquality = null;\n // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n var pointer = 0; // Index of current position.\n // Is there an insertion operation before the last equality.\n var pre_ins = false;\n // Is there a deletion operation before the last equality.\n var pre_del = false;\n // Is there an insertion operation after the last equality.\n var post_ins = false;\n // Is there a deletion operation after the last equality.\n var post_del = false;\n while (pointer < diffs.length) {\n if (diffs[pointer][0] == DIFF_EQUAL) { // Equality found.\n if (diffs[pointer][1].length < this.Diff_EditCost &&\n (post_ins || post_del)) {\n // Candidate found.\n equalities[equalitiesLength++] = pointer;\n pre_ins = post_ins;\n pre_del = post_del;\n lastEquality = diffs[pointer][1];\n } else {\n // Not a candidate, and can never become one.\n equalitiesLength = 0;\n lastEquality = null;\n }\n post_ins = post_del = false;\n } else { // An insertion or deletion.\n if (diffs[pointer][0] == DIFF_DELETE) {\n post_del = true;\n } else {\n post_ins = true;\n }\n /*\n * Five types to be split:\n * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>\n * <ins>A</ins>X<ins>C</ins><del>D</del>\n * <ins>A</ins><del>B</del>X<ins>C</ins>\n * <ins>A</del>X<ins>C</ins><del>D</del>\n * <ins>A</ins><del>B</del>X<del>C</del>\n */\n if (lastEquality && ((pre_ins && pre_del && post_ins && post_del) ||\n ((lastEquality.length < this.Diff_EditCost / 2) &&\n (pre_ins + pre_del + post_ins + post_del) == 3))) {\n // Duplicate record.\n diffs.splice(equalities[equalitiesLength - 1], 0,\n new diff_match_patch.Diff(DIFF_DELETE, lastEquality));\n // Change second copy to insert.\n diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n equalitiesLength--; // Throw away the equality we just deleted;\n lastEquality = null;\n if (pre_ins && pre_del) {\n // No changes made which could affect previous entry, keep going.\n post_ins = post_del = true;\n equalitiesLength = 0;\n } else {\n equalitiesLength--; // Throw away the previous equality.\n pointer = equalitiesLength > 0 ?\n equalities[equalitiesLength - 1] : -1;\n post_ins = post_del = false;\n }\n changes = true;\n }\n }\n pointer++;\n }\n\n if (changes) {\n this.diff_cleanupMerge(diffs);\n }\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.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\ndiff_match_patch.prototype.diff_cleanupMerge = function(diffs) {\n // Add a dummy entry at the end.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, ''));\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 = this.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, new diff_match_patch.Diff(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 = this.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 pointer -= count_delete + count_insert;\n diffs.splice(pointer, count_delete + count_insert);\n if (text_delete.length) {\n diffs.splice(pointer, 0,\n new diff_match_patch.Diff(DIFF_DELETE, text_delete));\n pointer++;\n }\n if (text_insert.length) {\n diffs.splice(pointer, 0,\n new diff_match_patch.Diff(DIFF_INSERT, text_insert));\n pointer++;\n }\n pointer++;\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 this.diff_cleanupMerge(diffs);\n }\n};\n\n\n/**\n * loc is a location in text1, compute and return the equivalent location in\n * text2.\n * e.g. 'The cat' vs 'The big cat', 1->1, 5->8\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @param {number} loc Location within text1.\n * @return {number} Location within text2.\n */\ndiff_match_patch.prototype.diff_xIndex = function(diffs, loc) {\n var chars1 = 0;\n var chars2 = 0;\n var last_chars1 = 0;\n var last_chars2 = 0;\n var x;\n for (x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) { // Equality or deletion.\n chars1 += diffs[x][1].length;\n }\n if (diffs[x][0] !== DIFF_DELETE) { // Equality or insertion.\n chars2 += diffs[x][1].length;\n }\n if (chars1 > loc) { // Overshot the location.\n break;\n }\n last_chars1 = chars1;\n last_chars2 = chars2;\n }\n // Was the location was deleted?\n if (diffs.length != x && diffs[x][0] === DIFF_DELETE) {\n return last_chars2;\n }\n // Add the remaining character length.\n return last_chars2 + (loc - last_chars1);\n};\n\n\n/**\n * Convert a diff array into a pretty HTML report.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @return {string} HTML representation.\n */\ndiff_match_patch.prototype.diff_prettyHtml = function(diffs) {\n var html = [];\n var pattern_amp = /&/g;\n var pattern_lt = /</g;\n var pattern_gt = />/g;\n var pattern_para = /\\n/g;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0]; // Operation (insert, delete, equal)\n var data = diffs[x][1]; // Text of change.\n var text = data.replace(pattern_amp, '&').replace(pattern_lt, '<')\n .replace(pattern_gt, '>').replace(pattern_para, '¶<br>');\n switch (op) {\n case DIFF_INSERT:\n html[x] = '<ins style=\"background:#e6ffe6;\">' + text + '</ins>';\n break;\n case DIFF_DELETE:\n html[x] = '<del style=\"background:#ffe6e6;\">' + text + '</del>';\n break;\n case DIFF_EQUAL:\n html[x] = '<span>' + text + '</span>';\n break;\n }\n }\n return html.join('');\n};\n\n\n/**\n * Compute and return the source text (all equalities and deletions).\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @return {string} Source text.\n */\ndiff_match_patch.prototype.diff_text1 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_INSERT) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute and return the destination text (all equalities and insertions).\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @return {string} Destination text.\n */\ndiff_match_patch.prototype.diff_text2 = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n if (diffs[x][0] !== DIFF_DELETE) {\n text[x] = diffs[x][1];\n }\n }\n return text.join('');\n};\n\n\n/**\n * Compute the Levenshtein distance; the number of inserted, deleted or\n * substituted characters.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @return {number} Number of changes.\n */\ndiff_match_patch.prototype.diff_levenshtein = function(diffs) {\n var levenshtein = 0;\n var insertions = 0;\n var deletions = 0;\n for (var x = 0; x < diffs.length; x++) {\n var op = diffs[x][0];\n var data = diffs[x][1];\n switch (op) {\n case DIFF_INSERT:\n insertions += data.length;\n break;\n case DIFF_DELETE:\n deletions += data.length;\n break;\n case DIFF_EQUAL:\n // A deletion and an insertion is one substitution.\n levenshtein += Math.max(insertions, deletions);\n insertions = 0;\n deletions = 0;\n break;\n }\n }\n levenshtein += Math.max(insertions, deletions);\n return levenshtein;\n};\n\n\n/**\n * Crush the diff into an encoded string which describes the operations\n * required to transform text1 into text2.\n * E.g. =3\\t-2\\t+ing -> Keep 3 chars, delete 2 chars, insert 'ing'.\n * Operations are tab-separated. Inserted text is escaped using %xx notation.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n * @return {string} Delta text.\n */\ndiff_match_patch.prototype.diff_toDelta = function(diffs) {\n var text = [];\n for (var x = 0; x < diffs.length; x++) {\n switch (diffs[x][0]) {\n case DIFF_INSERT:\n text[x] = '+' + encodeURI(diffs[x][1]);\n break;\n case DIFF_DELETE:\n text[x] = '-' + diffs[x][1].length;\n break;\n case DIFF_EQUAL:\n text[x] = '=' + diffs[x][1].length;\n break;\n }\n }\n return text.join('\\t').replace(/%20/g, ' ');\n};\n\n\n/**\n * Given the original text1, and an encoded string which describes the\n * operations required to transform text1 into text2, compute the full diff.\n * @param {string} text1 Source string for the diff.\n * @param {string} delta Delta text.\n * @return {!Array.<!diff_match_patch.Diff>} Array of diff tuples.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.diff_fromDelta = function(text1, delta) {\n var diffs = [];\n var diffsLength = 0; // Keeping our own length var is faster in JS.\n var pointer = 0; // Cursor in text1\n var tokens = delta.split(/\\t/g);\n for (var x = 0; x < tokens.length; x++) {\n // Each token begins with a one character parameter which specifies the\n // operation of this token (delete, insert, equality).\n var param = tokens[x].substring(1);\n switch (tokens[x].charAt(0)) {\n case '+':\n try {\n diffs[diffsLength++] =\n new diff_match_patch.Diff(DIFF_INSERT, decodeURI(param));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in diff_fromDelta: ' + param);\n }\n break;\n case '-':\n // Fall through.\n case '=':\n var n = parseInt(param, 10);\n if (isNaN(n) || n < 0) {\n throw new Error('Invalid number in diff_fromDelta: ' + param);\n }\n var text = text1.substring(pointer, pointer += n);\n if (tokens[x].charAt(0) == '=') {\n diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_EQUAL, text);\n } else {\n diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_DELETE, text);\n }\n break;\n default:\n // Blank tokens are ok (from a trailing \\t).\n // Anything else is an error.\n if (tokens[x]) {\n throw new Error('Invalid diff operation in diff_fromDelta: ' +\n tokens[x]);\n }\n }\n }\n if (pointer != text1.length) {\n throw new Error('Delta length (' + pointer +\n ') does not equal source text length (' + text1.length + ').');\n }\n return diffs;\n};\n\n\n// MATCH FUNCTIONS\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc'.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n */\ndiff_match_patch.prototype.match_main = function(text, pattern, loc) {\n // Check for null inputs.\n if (text == null || pattern == null || loc == null) {\n throw new Error('Null input. (match_main)');\n }\n\n loc = Math.max(0, Math.min(loc, text.length));\n if (text == pattern) {\n // Shortcut (potentially not guaranteed by the algorithm)\n return 0;\n } else if (!text.length) {\n // Nothing to match.\n return -1;\n } else if (text.substring(loc, loc + pattern.length) == pattern) {\n // Perfect match at the perfect spot! (Includes case of null pattern)\n return loc;\n } else {\n // Do a fuzzy compare.\n return this.match_bitap_(text, pattern, loc);\n }\n};\n\n\n/**\n * Locate the best instance of 'pattern' in 'text' near 'loc' using the\n * Bitap algorithm.\n * @param {string} text The text to search.\n * @param {string} pattern The pattern to search for.\n * @param {number} loc The location to search around.\n * @return {number} Best match index or -1.\n * @private\n */\ndiff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) {\n if (pattern.length > this.Match_MaxBits) {\n throw new Error('Pattern too long for this browser.');\n }\n\n // Initialise the alphabet.\n var s = this.match_alphabet_(pattern);\n\n var dmp = this; // 'this' becomes 'window' in a closure.\n\n /**\n * Compute and return the score for a match with e errors and x location.\n * Accesses loc and pattern through being a closure.\n * @param {number} e Number of errors in match.\n * @param {number} x Location of match.\n * @return {number} Overall score for match (0.0 = good, 1.0 = bad).\n * @private\n */\n function match_bitapScore_(e, x) {\n var accuracy = e / pattern.length;\n var proximity = Math.abs(loc - x);\n if (!dmp.Match_Distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy;\n }\n return accuracy + (proximity / dmp.Match_Distance);\n }\n\n // Highest score beyond which we give up.\n var score_threshold = this.Match_Threshold;\n // Is there a nearby exact match? (speedup)\n var best_loc = text.indexOf(pattern, loc);\n if (best_loc != -1) {\n score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold);\n // What about in the other direction? (speedup)\n best_loc = text.lastIndexOf(pattern, loc + pattern.length);\n if (best_loc != -1) {\n score_threshold =\n Math.min(match_bitapScore_(0, best_loc), score_threshold);\n }\n }\n\n // Initialise the bit arrays.\n var matchmask = 1 << (pattern.length - 1);\n best_loc = -1;\n\n var bin_min, bin_mid;\n var bin_max = pattern.length + text.length;\n var last_rd;\n for (var d = 0; d < pattern.length; d++) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from 'loc' we can stray at this\n // error level.\n bin_min = 0;\n bin_mid = bin_max;\n while (bin_min < bin_mid) {\n if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) {\n bin_min = bin_mid;\n } else {\n bin_max = bin_mid;\n }\n bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min);\n }\n // Use the result from this iteration as the maximum for the next.\n bin_max = bin_mid;\n var start = Math.max(1, loc - bin_mid + 1);\n var finish = Math.min(loc + bin_mid, text.length) + pattern.length;\n\n var rd = Array(finish + 2);\n rd[finish + 1] = (1 << d) - 1;\n for (var j = finish; j >= start; j--) {\n // The alphabet (s) is a sparse hash, so the following line generates\n // warnings.\n var charMatch = s[text.charAt(j - 1)];\n if (d === 0) { // First pass: exact match.\n rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\n } else { // Subsequent passes: fuzzy match.\n rd[j] = (((rd[j + 1] << 1) | 1) & charMatch) |\n (((last_rd[j + 1] | last_rd[j]) << 1) | 1) |\n last_rd[j + 1];\n }\n if (rd[j] & matchmask) {\n var score = match_bitapScore_(d, j - 1);\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (score <= score_threshold) {\n // Told you so.\n score_threshold = score;\n best_loc = j - 1;\n if (best_loc > loc) {\n // When passing loc, don't exceed our current distance from loc.\n start = Math.max(1, 2 * loc - best_loc);\n } else {\n // Already passed loc, downhill from here on in.\n break;\n }\n }\n }\n }\n // No hope for a (better) match at greater error levels.\n if (match_bitapScore_(d + 1, loc) > score_threshold) {\n break;\n }\n last_rd = rd;\n }\n return best_loc;\n};\n\n\n/**\n * Initialise the alphabet for the Bitap algorithm.\n * @param {string} pattern The text to encode.\n * @return {!Object} Hash of character locations.\n * @private\n */\ndiff_match_patch.prototype.match_alphabet_ = function(pattern) {\n var s = {};\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] = 0;\n }\n for (var i = 0; i < pattern.length; i++) {\n s[pattern.charAt(i)] |= 1 << (pattern.length - i - 1);\n }\n return s;\n};\n\n\n// PATCH FUNCTIONS\n\n\n/**\n * Increase the context until it is unique,\n * but don't let the pattern expand beyond Match_MaxBits.\n * @param {!diff_match_patch.patch_obj} patch The patch to grow.\n * @param {string} text Source text.\n * @private\n */\ndiff_match_patch.prototype.patch_addContext_ = function(patch, text) {\n if (text.length == 0) {\n return;\n }\n if (patch.start2 === null) {\n throw Error('patch not initialized');\n }\n var pattern = text.substring(patch.start2, patch.start2 + patch.length1);\n var padding = 0;\n\n // Look for the first and last matches of pattern in text. If two different\n // matches are found, increase the pattern length.\n while (text.indexOf(pattern) != text.lastIndexOf(pattern) &&\n pattern.length < this.Match_MaxBits - this.Patch_Margin -\n this.Patch_Margin) {\n padding += this.Patch_Margin;\n pattern = text.substring(patch.start2 - padding,\n patch.start2 + patch.length1 + padding);\n }\n // Add one chunk for good luck.\n padding += this.Patch_Margin;\n\n // Add the prefix.\n var prefix = text.substring(patch.start2 - padding, patch.start2);\n if (prefix) {\n patch.diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, prefix));\n }\n // Add the suffix.\n var suffix = text.substring(patch.start2 + patch.length1,\n patch.start2 + patch.length1 + padding);\n if (suffix) {\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, suffix));\n }\n\n // Roll back the start points.\n patch.start1 -= prefix.length;\n patch.start2 -= prefix.length;\n // Extend the lengths.\n patch.length1 += prefix.length + suffix.length;\n patch.length2 += prefix.length + suffix.length;\n};\n\n\n/**\n * Compute a list of patches to turn text1 into text2.\n * Use diffs if provided, otherwise compute it ourselves.\n * There are four ways to call this function, depending on what data is\n * available to the caller:\n * Method 1:\n * a = text1, b = text2\n * Method 2:\n * a = diffs\n * Method 3 (optimal):\n * a = text1, b = diffs\n * Method 4 (deprecated, use method 3):\n * a = text1, b = text2, c = diffs\n *\n * @param {string|!Array.<!diff_match_patch.Diff>} a text1 (methods 1,3,4) or\n * Array of diff tuples for text1 to text2 (method 2).\n * @param {string|!Array.<!diff_match_patch.Diff>=} opt_b text2 (methods 1,4) or\n * Array of diff tuples for text1 to text2 (method 3) or undefined (method 2).\n * @param {string|!Array.<!diff_match_patch.Diff>=} opt_c Array of diff tuples\n * for text1 to text2 (method 4) or undefined (methods 1,2,3).\n * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) {\n var text1, diffs;\n if (typeof a == 'string' && typeof opt_b == 'string' &&\n typeof opt_c == 'undefined') {\n // Method 1: text1, text2\n // Compute diffs from text1 and text2.\n text1 = /** @type {string} */(a);\n diffs = this.diff_main(text1, /** @type {string} */(opt_b), true);\n if (diffs.length > 2) {\n this.diff_cleanupSemantic(diffs);\n this.diff_cleanupEfficiency(diffs);\n }\n } else if (a && typeof a == 'object' && typeof opt_b == 'undefined' &&\n typeof opt_c == 'undefined') {\n // Method 2: diffs\n // Compute text1 from diffs.\n diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(a);\n text1 = this.diff_text1(diffs);\n } else if (typeof a == 'string' && opt_b && typeof opt_b == 'object' &&\n typeof opt_c == 'undefined') {\n // Method 3: text1, diffs\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(opt_b);\n } else if (typeof a == 'string' && typeof opt_b == 'string' &&\n opt_c && typeof opt_c == 'object') {\n // Method 4: text1, text2, diffs\n // text2 is not used.\n text1 = /** @type {string} */(a);\n diffs = /** @type {!Array.<!diff_match_patch.Diff>} */(opt_c);\n } else {\n throw new Error('Unknown call format to patch_make.');\n }\n\n if (diffs.length === 0) {\n return []; // Get rid of the null case.\n }\n var patches = [];\n var patch = new diff_match_patch.patch_obj();\n var patchDiffLength = 0; // Keeping our own length var is faster in JS.\n var char_count1 = 0; // Number of characters into the text1 string.\n var char_count2 = 0; // Number of characters into the text2 string.\n // Start with text1 (prepatch_text) and apply the diffs until we arrive at\n // text2 (postpatch_text). We recreate the patches one by one to determine\n // context info.\n var prepatch_text = text1;\n var postpatch_text = text1;\n for (var x = 0; x < diffs.length; x++) {\n var diff_type = diffs[x][0];\n var diff_text = diffs[x][1];\n\n if (!patchDiffLength && diff_type !== DIFF_EQUAL) {\n // A new patch starts here.\n patch.start1 = char_count1;\n patch.start2 = char_count2;\n }\n\n switch (diff_type) {\n case DIFF_INSERT:\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length2 += diff_text.length;\n postpatch_text = postpatch_text.substring(0, char_count2) + diff_text +\n postpatch_text.substring(char_count2);\n break;\n case DIFF_DELETE:\n patch.length1 += diff_text.length;\n patch.diffs[patchDiffLength++] = diffs[x];\n postpatch_text = postpatch_text.substring(0, char_count2) +\n postpatch_text.substring(char_count2 +\n diff_text.length);\n break;\n case DIFF_EQUAL:\n if (diff_text.length <= 2 * this.Patch_Margin &&\n patchDiffLength && diffs.length != x + 1) {\n // Small equality inside a patch.\n patch.diffs[patchDiffLength++] = diffs[x];\n patch.length1 += diff_text.length;\n patch.length2 += diff_text.length;\n } else if (diff_text.length >= 2 * this.Patch_Margin) {\n // Time for a new patch.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n patch = new diff_match_patch.patch_obj();\n patchDiffLength = 0;\n // Unlike Unidiff, our patch lists have a rolling context.\n // https://github.com/google/diff-match-patch/wiki/Unidiff\n // Update prepatch text & pos to reflect the application of the\n // just completed patch.\n prepatch_text = postpatch_text;\n char_count1 = char_count2;\n }\n }\n break;\n }\n\n // Update the current character count.\n if (diff_type !== DIFF_INSERT) {\n char_count1 += diff_text.length;\n }\n if (diff_type !== DIFF_DELETE) {\n char_count2 += diff_text.length;\n }\n }\n // Pick up the leftover patch if not empty.\n if (patchDiffLength) {\n this.patch_addContext_(patch, prepatch_text);\n patches.push(patch);\n }\n\n return patches;\n};\n\n\n/**\n * Given an array of patches, return another array that is identical.\n * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.\n * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_deepCopy = function(patches) {\n // Making deep copies is hard in JavaScript.\n var patchesCopy = [];\n for (var x = 0; x < patches.length; x++) {\n var patch = patches[x];\n var patchCopy = new diff_match_patch.patch_obj();\n patchCopy.diffs = [];\n for (var y = 0; y < patch.diffs.length; y++) {\n patchCopy.diffs[y] =\n new diff_match_patch.Diff(patch.diffs[y][0], patch.diffs[y][1]);\n }\n patchCopy.start1 = patch.start1;\n patchCopy.start2 = patch.start2;\n patchCopy.length1 = patch.length1;\n patchCopy.length2 = patch.length2;\n patchesCopy[x] = patchCopy;\n }\n return patchesCopy;\n};\n\n\n/**\n * Merge a set of patches onto the text. Return a patched text, as well\n * as a list of true/false values indicating which patches were applied.\n * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.\n * @param {string} text Old text.\n * @return {!Array.<string|!Array.<boolean>>} Two element Array, containing the\n * new text and an array of boolean values.\n */\ndiff_match_patch.prototype.patch_apply = function(patches, text) {\n if (patches.length == 0) {\n return [text, []];\n }\n\n // Deep copy the patches so that no changes are made to originals.\n patches = this.patch_deepCopy(patches);\n\n var nullPadding = this.patch_addPadding(patches);\n text = nullPadding + text + nullPadding;\n\n this.patch_splitMax(patches);\n // delta keeps track of the offset between the expected and actual location\n // of the previous patch. If there are patches expected at positions 10 and\n // 20, but the first patch was found at 12, delta is 2 and the second patch\n // has an effective expected position of 22.\n var delta = 0;\n var results = [];\n for (var x = 0; x < patches.length; x++) {\n var expected_loc = patches[x].start2 + delta;\n var text1 = this.diff_text1(patches[x].diffs);\n var start_loc;\n var end_loc = -1;\n if (text1.length > this.Match_MaxBits) {\n // patch_splitMax will only provide an oversized pattern in the case of\n // a monster delete.\n start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits),\n expected_loc);\n if (start_loc != -1) {\n end_loc = this.match_main(text,\n text1.substring(text1.length - this.Match_MaxBits),\n expected_loc + text1.length - this.Match_MaxBits);\n if (end_loc == -1 || start_loc >= end_loc) {\n // Can't find valid trailing context. Drop this patch.\n start_loc = -1;\n }\n }\n } else {\n start_loc = this.match_main(text, text1, expected_loc);\n }\n if (start_loc == -1) {\n // No match found. :(\n results[x] = false;\n // Subtract the delta for this failed patch from subsequent patches.\n delta -= patches[x].length2 - patches[x].length1;\n } else {\n // Found a match. :)\n results[x] = true;\n delta = start_loc - expected_loc;\n var text2;\n if (end_loc == -1) {\n text2 = text.substring(start_loc, start_loc + text1.length);\n } else {\n text2 = text.substring(start_loc, end_loc + this.Match_MaxBits);\n }\n if (text1 == text2) {\n // Perfect match, just shove the replacement text in.\n text = text.substring(0, start_loc) +\n this.diff_text2(patches[x].diffs) +\n text.substring(start_loc + text1.length);\n } else {\n // Imperfect match. Run a diff to get a framework of equivalent\n // indices.\n var diffs = this.diff_main(text1, text2, false);\n if (text1.length > this.Match_MaxBits &&\n this.diff_levenshtein(diffs) / text1.length >\n this.Patch_DeleteThreshold) {\n // The end points match, but the content is unacceptably bad.\n results[x] = false;\n } else {\n this.diff_cleanupSemanticLossless(diffs);\n var index1 = 0;\n var index2;\n for (var y = 0; y < patches[x].diffs.length; y++) {\n var mod = patches[x].diffs[y];\n if (mod[0] !== DIFF_EQUAL) {\n index2 = this.diff_xIndex(diffs, index1);\n }\n if (mod[0] === DIFF_INSERT) { // Insertion\n text = text.substring(0, start_loc + index2) + mod[1] +\n text.substring(start_loc + index2);\n } else if (mod[0] === DIFF_DELETE) { // Deletion\n text = text.substring(0, start_loc + index2) +\n text.substring(start_loc + this.diff_xIndex(diffs,\n index1 + mod[1].length));\n }\n if (mod[0] !== DIFF_DELETE) {\n index1 += mod[1].length;\n }\n }\n }\n }\n }\n }\n // Strip the padding off.\n text = text.substring(nullPadding.length, text.length - nullPadding.length);\n return [text, results];\n};\n\n\n/**\n * Add some padding on text start and end so that edges can match something.\n * Intended to be called only from within patch_apply.\n * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.\n * @return {string} The padding string added to each side.\n */\ndiff_match_patch.prototype.patch_addPadding = function(patches) {\n var paddingLength = this.Patch_Margin;\n var nullPadding = '';\n for (var x = 1; x <= paddingLength; x++) {\n nullPadding += String.fromCharCode(x);\n }\n\n // Bump all the patches forward.\n for (var x = 0; x < patches.length; x++) {\n patches[x].start1 += paddingLength;\n patches[x].start2 += paddingLength;\n }\n\n // Add some padding on start of first diff.\n var patch = patches[0];\n var diffs = patch.diffs;\n if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding));\n patch.start1 -= paddingLength; // Should be 0.\n patch.start2 -= paddingLength; // Should be 0.\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[0][1].length) {\n // Grow first equality.\n var extraLength = paddingLength - diffs[0][1].length;\n diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1];\n patch.start1 -= extraLength;\n patch.start2 -= extraLength;\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n // Add some padding on end of last diff.\n patch = patches[patches.length - 1];\n diffs = patch.diffs;\n if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) {\n // Add nullPadding equality.\n diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding));\n patch.length1 += paddingLength;\n patch.length2 += paddingLength;\n } else if (paddingLength > diffs[diffs.length - 1][1].length) {\n // Grow last equality.\n var extraLength = paddingLength - diffs[diffs.length - 1][1].length;\n diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength);\n patch.length1 += extraLength;\n patch.length2 += extraLength;\n }\n\n return nullPadding;\n};\n\n\n/**\n * Look through the patches and break up any which are longer than the maximum\n * limit of the match algorithm.\n * Intended to be called only from within patch_apply.\n * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.\n */\ndiff_match_patch.prototype.patch_splitMax = function(patches) {\n var patch_size = this.Match_MaxBits;\n for (var x = 0; x < patches.length; x++) {\n if (patches[x].length1 <= patch_size) {\n continue;\n }\n var bigpatch = patches[x];\n // Remove the big old patch.\n patches.splice(x--, 1);\n var start1 = bigpatch.start1;\n var start2 = bigpatch.start2;\n var precontext = '';\n while (bigpatch.diffs.length !== 0) {\n // Create one of several smaller patches.\n var patch = new diff_match_patch.patch_obj();\n var empty = true;\n patch.start1 = start1 - precontext.length;\n patch.start2 = start2 - precontext.length;\n if (precontext !== '') {\n patch.length1 = patch.length2 = precontext.length;\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, precontext));\n }\n while (bigpatch.diffs.length !== 0 &&\n patch.length1 < patch_size - this.Patch_Margin) {\n var diff_type = bigpatch.diffs[0][0];\n var diff_text = bigpatch.diffs[0][1];\n if (diff_type === DIFF_INSERT) {\n // Insertions are harmless.\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n patch.diffs.push(bigpatch.diffs.shift());\n empty = false;\n } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 &&\n patch.diffs[0][0] == DIFF_EQUAL &&\n diff_text.length > 2 * patch_size) {\n // This is a large deletion. Let it pass in one chunk.\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n empty = false;\n patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text));\n bigpatch.diffs.shift();\n } else {\n // Deletion or equality. Only take as much as we can stomach.\n diff_text = diff_text.substring(0,\n patch_size - patch.length1 - this.Patch_Margin);\n patch.length1 += diff_text.length;\n start1 += diff_text.length;\n if (diff_type === DIFF_EQUAL) {\n patch.length2 += diff_text.length;\n start2 += diff_text.length;\n } else {\n empty = false;\n }\n patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text));\n if (diff_text == bigpatch.diffs[0][1]) {\n bigpatch.diffs.shift();\n } else {\n bigpatch.diffs[0][1] =\n bigpatch.diffs[0][1].substring(diff_text.length);\n }\n }\n }\n // Compute the head context for the next patch.\n precontext = this.diff_text2(patch.diffs);\n precontext =\n precontext.substring(precontext.length - this.Patch_Margin);\n // Append the end context for this patch.\n var postcontext = this.diff_text1(bigpatch.diffs)\n .substring(0, this.Patch_Margin);\n if (postcontext !== '') {\n patch.length1 += postcontext.length;\n patch.length2 += postcontext.length;\n if (patch.diffs.length !== 0 &&\n patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) {\n patch.diffs[patch.diffs.length - 1][1] += postcontext;\n } else {\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, postcontext));\n }\n }\n if (!empty) {\n patches.splice(++x, 0, patch);\n }\n }\n }\n};\n\n\n/**\n * Take a list of patches and return a textual representation.\n * @param {!Array.<!diff_match_patch.patch_obj>} patches Array of Patch objects.\n * @return {string} Text representation of patches.\n */\ndiff_match_patch.prototype.patch_toText = function(patches) {\n var text = [];\n for (var x = 0; x < patches.length; x++) {\n text[x] = patches[x];\n }\n return text.join('');\n};\n\n\n/**\n * Parse a textual representation of patches and return a list of Patch objects.\n * @param {string} textline Text representation of patches.\n * @return {!Array.<!diff_match_patch.patch_obj>} Array of Patch objects.\n * @throws {!Error} If invalid input.\n */\ndiff_match_patch.prototype.patch_fromText = function(textline) {\n var patches = [];\n if (!textline) {\n return patches;\n }\n var text = textline.split('\\n');\n var textPointer = 0;\n var patchHeader = /^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;\n while (textPointer < text.length) {\n var m = text[textPointer].match(patchHeader);\n if (!m) {\n throw new Error('Invalid patch string: ' + text[textPointer]);\n }\n var patch = new diff_match_patch.patch_obj();\n patches.push(patch);\n patch.start1 = parseInt(m[1], 10);\n if (m[2] === '') {\n patch.start1--;\n patch.length1 = 1;\n } else if (m[2] == '0') {\n patch.length1 = 0;\n } else {\n patch.start1--;\n patch.length1 = parseInt(m[2], 10);\n }\n\n patch.start2 = parseInt(m[3], 10);\n if (m[4] === '') {\n patch.start2--;\n patch.length2 = 1;\n } else if (m[4] == '0') {\n patch.length2 = 0;\n } else {\n patch.start2--;\n patch.length2 = parseInt(m[4], 10);\n }\n textPointer++;\n\n while (textPointer < text.length) {\n var sign = text[textPointer].charAt(0);\n try {\n var line = decodeURI(text[textPointer].substring(1));\n } catch (ex) {\n // Malformed URI sequence.\n throw new Error('Illegal escape in patch_fromText: ' + line);\n }\n if (sign == '-') {\n // Deletion.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_DELETE, line));\n } else if (sign == '+') {\n // Insertion.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_INSERT, line));\n } else if (sign == ' ') {\n // Minor equality.\n patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, line));\n } else if (sign == '@') {\n // Start of next patch.\n break;\n } else if (sign === '') {\n // Blank line? Whatever.\n } else {\n // WTF?\n throw new Error('Invalid patch mode \"' + sign + '\" in: ' + line);\n }\n textPointer++;\n }\n }\n return patches;\n};\n\n\n/**\n * Class representing one patch operation.\n * @constructor\n */\ndiff_match_patch.patch_obj = function() {\n /** @type {!Array.<!diff_match_patch.Diff>} */\n this.diffs = [];\n /** @type {?number} */\n this.start1 = null;\n /** @type {?number} */\n this.start2 = null;\n /** @type {number} */\n this.length1 = 0;\n /** @type {number} */\n this.length2 = 0;\n};\n\n\n/**\n * Emulate GNU diff's format.\n * Header: @@ -382,8 +481,9 @@\n * Indices are printed as 1-based, not 0-based.\n * @return {string} The GNU diff string.\n */\ndiff_match_patch.patch_obj.prototype.toString = function() {\n var coords1, coords2;\n if (this.length1 === 0) {\n coords1 = this.start1 + ',0';\n } else if (this.length1 == 1) {\n coords1 = this.start1 + 1;\n } else {\n coords1 = (this.start1 + 1) + ',' + this.length1;\n }\n if (this.length2 === 0) {\n coords2 = this.start2 + ',0';\n } else if (this.length2 == 1) {\n coords2 = this.start2 + 1;\n } else {\n coords2 = (this.start2 + 1) + ',' + this.length2;\n }\n var text = ['@@ -' + coords1 + ' +' + coords2 + ' @@\\n'];\n var op;\n // Escape the body of the patch with %xx notation.\n for (var x = 0; x < this.diffs.length; x++) {\n switch (this.diffs[x][0]) {\n case DIFF_INSERT:\n op = '+';\n break;\n case DIFF_DELETE:\n op = '-';\n break;\n case DIFF_EQUAL:\n op = ' ';\n break;\n }\n text[x + 1] = op + encodeURI(this.diffs[x][1]) + '\\n';\n }\n return text.join('').replace(/%20/g, ' ');\n};\n\n\n// The following export code was added by @ForbesLindesay\nmodule.exports = diff_match_patch;\nmodule.exports['diff_match_patch'] = diff_match_patch;\nmodule.exports['DIFF_DELETE'] = DIFF_DELETE;\nmodule.exports['DIFF_INSERT'] = DIFF_INSERT;\nmodule.exports['DIFF_EQUAL'] = DIFF_EQUAL;","module.exports = __webpack_public_path__ + \"0ef4f23698e5fa8b52b1992366d85c0c.js\";","import { inboundFiltersIntegration, functionToStringIntegration, dedupeIntegration, getIntegrationsToSetup, initAndBind, getCurrentScope, lastEventId, getReportDialogEndpoint, startSession, captureSession, getClient } from '@sentry/core';\nimport { consoleSandbox, supportsFetch, logger, stackParserFromStackParserOptions } from '@sentry/utils';\nimport { addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\nimport { BrowserClient } from './client.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './helpers.js';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs.js';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors.js';\nimport { globalHandlersIntegration } from './integrations/globalhandlers.js';\nimport { httpContextIntegration } from './integrations/httpcontext.js';\nimport { linkedErrorsIntegration } from './integrations/linkederrors.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\n\n/** Get the default integrations for the browser SDK. */\nfunction getDefaultIntegrations(_options) {\n /**\n * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n * `getDefaultIntegrations` but with an adjusted set of integrations.\n */\n return [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n ];\n}\n\nfunction applyDefaultOptions(optionsArg = {}) {\n const defaultOptions = {\n defaultIntegrations: getDefaultIntegrations(),\n release:\n typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n ? __SENTRY_RELEASE__\n : WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id // This supports the variable that sentry-webpack-plugin injects\n ? WINDOW.SENTRY_RELEASE.id\n : undefined,\n autoSessionTracking: true,\n sendClientReports: true,\n };\n\n // TODO: Instead of dropping just `defaultIntegrations`, we should simply\n // call `dropUndefinedKeys` on the entire `optionsArg`.\n // However, for this to work we need to adjust the `hasTracingEnabled()` logic\n // first as it differentiates between `undefined` and the key not being in the object.\n if (optionsArg.defaultIntegrations == null) {\n delete optionsArg.defaultIntegrations;\n }\n\n return { ...defaultOptions, ...optionsArg };\n}\n\nfunction shouldShowBrowserExtensionError() {\n const windowWithMaybeExtension =\n typeof WINDOW.window !== 'undefined' && (WINDOW );\n if (!windowWithMaybeExtension) {\n // No need to show the error if we're not in a browser window environment (e.g. service workers)\n return false;\n }\n\n const extensionKey = windowWithMaybeExtension.chrome ? 'chrome' : 'browser';\n const extensionObject = windowWithMaybeExtension[extensionKey];\n\n const runtimeId = extensionObject && extensionObject.runtime && extensionObject.runtime.id;\n const href = (WINDOW.location && WINDOW.location.href) || '';\n\n const extensionProtocols = ['chrome-extension:', 'moz-extension:', 'ms-browser-extension:', 'safari-web-extension:'];\n\n // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n const isDedicatedExtensionPage =\n !!runtimeId && WINDOW === WINDOW.top && extensionProtocols.some(protocol => href.startsWith(`${protocol}//`));\n\n // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n // see: https://github.com/getsentry/sentry-javascript/issues/12668\n const isNWjs = typeof windowWithMaybeExtension.nw !== 'undefined';\n\n return !!runtimeId && !isDedicatedExtensionPage && !isNWjs;\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(browserOptions = {}) {\n const options = applyDefaultOptions(browserOptions);\n\n if (shouldShowBrowserExtensionError()) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(\n '[Sentry] You cannot run Sentry this way in a browser extension, check: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n );\n });\n return;\n }\n\n if (DEBUG_BUILD) {\n if (!supportsFetch()) {\n logger.warn(\n 'No Fetch API detected. The Sentry SDK requires a Fetch API compatible environment to send events. Please add a Fetch API polyfill.',\n );\n }\n }\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || makeFetchTransport,\n };\n\n const client = initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n\n return client;\n}\n\n/**\n * All properties the report dialog supports\n */\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const scope = getCurrentScope();\n const client = scope.getClient();\n const dsn = client && client.getDsn();\n\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n const eventId = lastEventId();\n if (eventId) {\n options.eventId = eventId;\n }\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event) => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\nfunction captureUserFeedback(feedback) {\n const client = getClient();\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n client.captureUserFeedback(feedback);\n }\n}\n\nexport { captureUserFeedback, forceLoad, getDefaultIntegrations, init, onLoad, showReportDialog };\n//# sourceMappingURL=sdk.js.map\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _SettingOutlined = _interopRequireDefault(require('./lib/icons/SettingOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _SettingOutlined;\nexports.default = _default;\nmodule.exports = _default;","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 PropTypes = require(\"prop-types\");\nvar React = require(\"react\");\nvar split_1 = require(\"./split\");\nvar DiffMatchPatch = require(\"diff-match-patch\");\nvar DiffComponent = /** @class */ (function (_super) {\n __extends(DiffComponent, _super);\n function DiffComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n value: _this.props.value\n };\n _this.onChange = _this.onChange.bind(_this);\n _this.diff = _this.diff.bind(_this);\n return _this;\n }\n DiffComponent.prototype.componentDidUpdate = function () {\n var value = this.props.value;\n if (value !== this.state.value) {\n this.setState({ value: value });\n }\n };\n DiffComponent.prototype.onChange = function (value) {\n this.setState({\n value: value\n });\n if (this.props.onChange) {\n this.props.onChange(value);\n }\n };\n DiffComponent.prototype.diff = function () {\n var dmp = new DiffMatchPatch();\n var lhString = this.state.value[0];\n var rhString = this.state.value[1];\n if (lhString.length === 0 && rhString.length === 0) {\n return [];\n }\n var diff = dmp.diff_main(lhString, rhString);\n dmp.diff_cleanupSemantic(diff);\n var diffedLines = this.generateDiffedLines(diff);\n var codeEditorSettings = this.setCodeMarkers(diffedLines);\n return codeEditorSettings;\n };\n DiffComponent.prototype.generateDiffedLines = function (diff) {\n var C = {\n DIFF_EQUAL: 0,\n DIFF_DELETE: -1,\n DIFF_INSERT: 1\n };\n var diffedLines = {\n left: [],\n right: []\n };\n var cursor = {\n left: 1,\n right: 1\n };\n diff.forEach(function (chunk) {\n var chunkType = chunk[0];\n var text = chunk[1];\n var lines = text.split(\"\\n\").length - 1;\n // diff-match-patch sometimes returns empty strings at random\n if (text.length === 0) {\n return;\n }\n var firstChar = text[0];\n var lastChar = text[text.length - 1];\n var linesToHighlight = 0;\n switch (chunkType) {\n case C.DIFF_EQUAL:\n cursor.left += lines;\n cursor.right += lines;\n break;\n case C.DIFF_DELETE:\n // If the deletion starts with a newline, push the cursor down to that line\n if (firstChar === \"\\n\") {\n cursor.left++;\n lines--;\n }\n linesToHighlight = lines;\n // If the deletion does not include a newline, highlight the same line on the right\n if (linesToHighlight === 0) {\n diffedLines.right.push({\n startLine: cursor.right,\n endLine: cursor.right\n });\n }\n // If the last character is a newline, we don't want to highlight that line\n if (lastChar === \"\\n\") {\n linesToHighlight -= 1;\n }\n diffedLines.left.push({\n startLine: cursor.left,\n endLine: cursor.left + linesToHighlight\n });\n cursor.left += lines;\n break;\n case C.DIFF_INSERT:\n // If the insertion starts with a newline, push the cursor down to that line\n if (firstChar === \"\\n\") {\n cursor.right++;\n lines--;\n }\n linesToHighlight = lines;\n // If the insertion does not include a newline, highlight the same line on the left\n if (linesToHighlight === 0) {\n diffedLines.left.push({\n startLine: cursor.left,\n endLine: cursor.left\n });\n }\n // If the last character is a newline, we don't want to highlight that line\n if (lastChar === \"\\n\") {\n linesToHighlight -= 1;\n }\n diffedLines.right.push({\n startLine: cursor.right,\n endLine: cursor.right + linesToHighlight\n });\n cursor.right += lines;\n break;\n default:\n throw new Error(\"Diff type was not defined.\");\n }\n });\n return diffedLines;\n };\n // Receives a collection of line numbers and iterates through them to highlight appropriately\n // Returns an object that tells the render() method how to display the code editors\n DiffComponent.prototype.setCodeMarkers = function (diffedLines) {\n if (diffedLines === void 0) { diffedLines = { left: [], right: [] }; }\n var codeEditorSettings = [];\n var newMarkerSet = {\n left: [],\n right: []\n };\n for (var i = 0; i < diffedLines.left.length; i++) {\n var markerObj = {\n startRow: diffedLines.left[i].startLine - 1,\n endRow: diffedLines.left[i].endLine,\n type: \"text\",\n className: \"codeMarker\"\n };\n newMarkerSet.left.push(markerObj);\n }\n for (var i = 0; i < diffedLines.right.length; i++) {\n var markerObj = {\n startRow: diffedLines.right[i].startLine - 1,\n endRow: diffedLines.right[i].endLine,\n type: \"text\",\n className: \"codeMarker\"\n };\n newMarkerSet.right.push(markerObj);\n }\n codeEditorSettings[0] = newMarkerSet.left;\n codeEditorSettings[1] = newMarkerSet.right;\n return codeEditorSettings;\n };\n DiffComponent.prototype.render = function () {\n var markers = this.diff();\n return (React.createElement(split_1.default, { name: this.props.name, className: this.props.className, focus: this.props.focus, orientation: this.props.orientation, splits: this.props.splits, mode: this.props.mode, theme: this.props.theme, height: this.props.height, width: this.props.width, fontSize: this.props.fontSize, showGutter: this.props.showGutter, onChange: this.onChange, onPaste: this.props.onPaste, onLoad: this.props.onLoad, onScroll: this.props.onScroll, minLines: this.props.minLines, maxLines: this.props.maxLines, readOnly: this.props.readOnly, highlightActiveLine: this.props.highlightActiveLine, showPrintMargin: this.props.showPrintMargin, tabSize: this.props.tabSize, cursorStart: this.props.cursorStart, editorProps: this.props.editorProps, style: this.props.style, scrollMargin: this.props.scrollMargin, setOptions: this.props.setOptions, wrapEnabled: this.props.wrapEnabled, enableBasicAutocompletion: this.props.enableBasicAutocompletion, enableLiveAutocompletion: this.props.enableLiveAutocompletion, value: this.state.value, markers: markers }));\n };\n DiffComponent.propTypes = {\n cursorStart: PropTypes.number,\n editorProps: PropTypes.object,\n enableBasicAutocompletion: PropTypes.bool,\n enableLiveAutocompletion: PropTypes.bool,\n focus: PropTypes.bool,\n fontSize: PropTypes.number,\n height: PropTypes.string,\n highlightActiveLine: PropTypes.bool,\n maxLines: PropTypes.number,\n minLines: PropTypes.number,\n mode: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n onLoad: PropTypes.func,\n onPaste: PropTypes.func,\n onScroll: PropTypes.func,\n onChange: PropTypes.func,\n orientation: PropTypes.string,\n readOnly: PropTypes.bool,\n scrollMargin: PropTypes.array,\n setOptions: PropTypes.object,\n showGutter: PropTypes.bool,\n showPrintMargin: PropTypes.bool,\n splits: PropTypes.number,\n style: PropTypes.object,\n tabSize: PropTypes.number,\n theme: PropTypes.string,\n value: PropTypes.array,\n width: PropTypes.string,\n wrapEnabled: PropTypes.bool\n };\n DiffComponent.defaultProps = {\n cursorStart: 1,\n editorProps: {},\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: false,\n focus: false,\n fontSize: 12,\n height: \"500px\",\n highlightActiveLine: true,\n maxLines: null,\n minLines: null,\n mode: \"\",\n name: \"ace-editor\",\n onLoad: null,\n onScroll: null,\n onPaste: null,\n onChange: null,\n orientation: \"beside\",\n readOnly: false,\n scrollMargin: [0, 0, 0, 0],\n setOptions: {},\n showGutter: true,\n showPrintMargin: true,\n splits: 2,\n style: {},\n tabSize: 4,\n theme: \"github\",\n value: [\"\", \"\"],\n width: \"500px\",\n wrapEnabled: true\n };\n return DiffComponent;\n}(React.Component));\nexports.default = DiffComponent;\n//# sourceMappingURL=diff.js.map","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","import React from 'react';\nimport { TrashSvg } from 'components/svgs/TrashSvg';\nimport CloseOutlined from '@ant-design/icons/CloseOutlined';\nimport { PlusSvg } from 'components/svgs/PlusSvg';\nimport { PhoneExternalSvg } from 'components/svgs/PhoneExternalSvg';\nimport { PencilSvg } from 'components/svgs/PencilSvg';\nimport LeftOutlined from '@ant-design/icons/LeftOutlined';\nimport RightOutlined from '@ant-design/icons/RightOutlined';\nimport CloudUploadOutlined from '@ant-design/icons/CloudUploadOutlined';\nimport ArrowUpOutlined from '@ant-design/icons/ArrowUpOutlined';\nimport WarningOutlined from '@ant-design/icons/WarningOutlined';\nimport PrinterOutlined from '@ant-design/icons/PrinterOutlined';\nimport ExportOutlined from '@ant-design/icons/ExportOutlined';\nimport SettingOutlined from '@ant-design/icons/SettingOutlined';\nimport CheckOutlined from '@ant-design/icons/CheckOutlined';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport SaveOutlined from '@ant-design/icons/SaveOutlined';\nimport CaretRightOutlined from '@ant-design/icons/CaretRightOutlined';\nimport PauseOutlined from '@ant-design/icons/PauseOutlined';\nimport PlusOutlined from '@ant-design/icons/PlusOutlined';\nimport BellOutlined from '@ant-design/icons/BellOutlined';\nimport UndoOutlined from '@ant-design/icons/UndoOutlined';\nimport SearchOutlined from '@ant-design/icons/SearchOutlined';\n\nconst sizeMap = {\n mini: 'small',\n tiny: 'small',\n small: 'small',\n medium: 'middle',\n large: 'large',\n big: 'large',\n huge: 'large',\n massive: 'large',\n};\n\nexport function convertSemanticToAntdSize(semanticSize: keyof typeof sizeMap) {\n return sizeMap[semanticSize] || 'middle'; // Default to \"middle\" if size is not found\n}\n\nexport const iconMap = {\n 'trash alternate': <TrashSvg />,\n close: <CloseOutlined />,\n add: <PlusSvg />,\n 'arrow left': <LeftOutlined />,\n 'arrow right': <RightOutlined />,\n 'cloud upload': <CloudUploadOutlined />,\n 'arrow circle up': <ArrowUpOutlined />,\n 'exclamation triangle': <WarningOutlined />,\n phone: <PhoneExternalSvg />,\n print: <PrinterOutlined />,\n 'external alternate': <ExportOutlined />,\n cog: <SettingOutlined />,\n check: <CheckOutlined />,\n 'caret down': <DownOutlined />,\n disk: <SaveOutlined />,\n 'left arrow': <LeftOutlined />,\n play: <CaretRightOutlined />,\n pause: <PauseOutlined />,\n 'right arrow': <RightOutlined />,\n plus: <PlusOutlined />,\n bell: <BellOutlined />,\n undo: <UndoOutlined />,\n edit: <PencilSvg />,\n search: <SearchOutlined />,\n};\n\nexport const colorMap = {\n red: 'danger',\n blue: 'primary',\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ButtonWithoutSuir.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ButtonWithoutSuir.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import Button from 'antd/es/button';\nimport { colorMap, convertSemanticToAntdSize, iconMap } from './helpers';\n\nimport './ButtonWithoutSuir.scss';\n\nexport const ButtonWithoutSuir = ({\n size,\n content,\n basic,\n primary,\n negative,\n labelPosition,\n children,\n fluid,\n icon,\n color,\n\n // Passed through props\n // loading,\n // onClick,\n // disabled,\n // data-testid\n // data-gtm\n // style,\n // className,\n // id,\n ...passedThroughProps\n}) => {\n const antdSize = convertSemanticToAntdSize(size);\n const colorProps = { color: colorMap[color] || 'default' };\n if (primary) {\n if (basic) {\n colorProps.color = 'primary';\n colorProps.variant = 'outlined';\n } else {\n colorProps.type = 'primary';\n }\n } else if (negative) {\n colorProps.color = 'danger';\n colorProps.variant = 'solid';\n } else if (!basic) {\n colorProps.color = colorMap[color] || 'default';\n colorProps.variant = colorMap[color] ? 'solid' : 'filled';\n }\n const finalIcon =\n typeof icon === 'string'\n ? iconMap[icon]\n : icon?.name\n ? iconMap[icon.name]\n : icon;\n\n return (\n <Button\n {...passedThroughProps}\n {...colorProps}\n block={fluid}\n size={antdSize}\n icon={finalIcon}\n >\n {content || children}\n </Button>\n );\n};\n","import { ComponentProps } from 'react';\nimport { ButtonWithoutSuir } from './ButtonWithoutSuir';\n\nexport interface ButtonProps extends ComponentProps<typeof ButtonWithoutSuir> {\n isMobile: boolean;\n isHoveredIcon: boolean;\n}\nexport const Button = (props: any) => <ButtonWithoutSuir {...props} />;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","import { defineIntegration, getClient, captureEvent } from '@sentry/core';\nimport { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, isPrimitive, isString, getLocationHref, UNKNOWN_FUNCTION, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) ;\n\nconst globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client) {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event = _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client) {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e );\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error) {\n if (isPrimitive(error)) {\n return error;\n }\n\n // dig the object of the rejection out of known event types\n try {\n\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in (error )) {\n return (error ).reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n if ('detail' in (error ) && 'reason' in (error ).detail) {\n return (error ).detail.reason;\n }\n } catch (e2) {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: UNKNOWN_FUNCTION,\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions() {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n\nexport { globalHandlersIntegration };\n//# sourceMappingURL=globalhandlers.js.map\n","module.exports = __webpack_public_path__ + \"e9c8f7e13e00284ce126890bf7ac46fd.js\";","import Collapse from \"./Collapse\";\nexport default Collapse;\n\n/**\n * @deprecated use `items` instead, will be removed in `v4.0.0`\n */\nvar Panel = Collapse.Panel;\nexport { Panel };","\"use client\";\n\nimport * as React from 'react';\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport CollapsePanel from './CollapsePanel';\nimport useStyle from './style';\nconst Collapse = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction,\n collapse\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n bordered = true,\n ghost,\n size: customizeSize,\n expandIconPosition = 'start',\n children,\n expandIcon\n } = props;\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : ctx) !== null && _a !== void 0 ? _a : 'middle';\n });\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Collapse');\n // Warning if use legacy type `expandIconPosition`\n process.env.NODE_ENV !== \"production\" ? warning(expandIconPosition !== 'left' && expandIconPosition !== 'right', 'deprecated', '`expandIconPosition` with `left` or `right` is deprecated. Please use `start` or `end` instead.') : void 0;\n }\n // Align with logic position\n const mergedExpandIconPosition = React.useMemo(() => {\n if (expandIconPosition === 'left') {\n return 'start';\n }\n return expandIconPosition === 'right' ? 'end' : expandIconPosition;\n }, [expandIconPosition]);\n const mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : collapse === null || collapse === void 0 ? void 0 : collapse.expandIcon;\n const renderExpandIcon = React.useCallback(function () {\n let panelProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const icon = typeof mergedExpandIcon === 'function' ? mergedExpandIcon(panelProps) : (/*#__PURE__*/React.createElement(RightOutlined, {\n rotate: panelProps.isActive ? 90 : undefined,\n \"aria-label\": panelProps.isActive ? 'expanded' : 'collapsed'\n }));\n return cloneElement(icon, () => {\n var _a;\n return {\n className: classNames((_a = icon === null || icon === void 0 ? void 0 : icon.props) === null || _a === void 0 ? void 0 : _a.className, `${prefixCls}-arrow`)\n };\n });\n }, [mergedExpandIcon, prefixCls]);\n const collapseClassName = classNames(`${prefixCls}-icon-position-${mergedExpandIconPosition}`, {\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-ghost`]: !!ghost,\n [`${prefixCls}-${mergedSize}`]: mergedSize !== 'middle'\n }, collapse === null || collapse === void 0 ? void 0 : collapse.className, className, rootClassName, hashId, cssVarCls);\n const openMotion = Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false,\n leavedClassName: `${prefixCls}-content-hidden`\n });\n const items = React.useMemo(() => children ? toArray(children).map((child, index) => {\n var _a, _b;\n if ((_a = child.props) === null || _a === void 0 ? void 0 : _a.disabled) {\n const key = (_b = child.key) !== null && _b !== void 0 ? _b : String(index);\n const {\n disabled,\n collapsible\n } = child.props;\n const childProps = Object.assign(Object.assign({}, omit(child.props, ['disabled'])), {\n key,\n collapsible: collapsible !== null && collapsible !== void 0 ? collapsible : disabled ? 'disabled' : undefined\n });\n return cloneElement(child, childProps);\n }\n return child;\n }) : null, [children]);\n return wrapCSSVar(\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(RcCollapse, Object.assign({\n ref: ref,\n openMotion: openMotion\n }, omit(props, ['rootClassName']), {\n expandIcon: renderExpandIcon,\n prefixCls: prefixCls,\n className: collapseClassName,\n style: Object.assign(Object.assign({}, collapse === null || collapse === void 0 ? void 0 : collapse.style), style)\n }), items));\n});\nif (process.env.NODE_ENV !== 'production') {\n Collapse.displayName = 'Collapse';\n}\nexport default Object.assign(Collapse, {\n Panel: CollapsePanel\n});","module.exports = __webpack_public_path__ + \"069a0d6b093e73e820f6a60a91fa614b.js\";","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UndoOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 00-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 00-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z\" } }] }, \"name\": \"undo\", \"theme\": \"outlined\" };\nexports.default = UndoOutlined;\n","module.exports = __webpack_public_path__ + \"894052ca1f8f35cc1cf7cfb29ef75027.js\";","module.exports = __webpack_public_path__ + \"73cfa70f37190781e3fb6f3542574b91.js\";","module.exports = __webpack_public_path__ + \"d542dda7308361c34af2afb9b70d755a.js\";","module.exports = __webpack_public_path__ + \"cb4bb785934eeca9b408e892ae6b73b7.js\";","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexports.default = CloseOutlined;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import { logger, getFunctionName } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { onCLS } from './web-vitals/getCLS.js';\nimport { onFID } from './web-vitals/getFID.js';\nimport { onINP } from './web-vitals/getINP.js';\nimport { onLCP } from './web-vitals/getLCP.js';\nimport { observe } from './web-vitals/lib/observe.js';\nimport { onTTFB } from './web-vitals/onTTFB.js';\n\nconst handlers = {};\nconst instrumented = {};\n\nlet _previousCls;\nlet _previousFid;\nlet _previousLcp;\nlet _previousTtfb;\nlet _previousInp;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nfunction addClsInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nfunction addLcpInstrumentationHandler(\n callback,\n stopOnCallback = false,\n) {\n return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addFidInstrumentationHandler(callback) {\n return addMetricObserver('fid', callback, instrumentFid, _previousFid);\n}\n\n/**\n * Add a callback that will be triggered when a FID metric is available.\n */\nfunction addTtfbInstrumentationHandler(callback) {\n return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addInpInstrumentationHandler(\n callback,\n) {\n return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nfunction addPerformanceInstrumentationHandler(\n type,\n callback,\n) {\n addHandler(type, callback);\n\n if (!instrumented[type]) {\n instrumentPerformanceObserver(type);\n instrumented[type] = true;\n }\n\n return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = handlers[type];\n\n if (!typeHandlers || !typeHandlers.length) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nfunction instrumentCls() {\n return onCLS(\n metric => {\n triggerHandlers('cls', {\n metric,\n });\n _previousCls = metric;\n },\n // We want the callback to be called whenever the CLS value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentFid() {\n return onFID(metric => {\n triggerHandlers('fid', {\n metric,\n });\n _previousFid = metric;\n });\n}\n\nfunction instrumentLcp() {\n return onLCP(\n metric => {\n triggerHandlers('lcp', {\n metric,\n });\n _previousLcp = metric;\n },\n // We want the callback to be called whenever the LCP value updates.\n // By default, the callback is only called when the tab goes to the background.\n { reportAllChanges: true },\n );\n}\n\nfunction instrumentTtfb() {\n return onTTFB(metric => {\n triggerHandlers('ttfb', {\n metric,\n });\n _previousTtfb = metric;\n });\n}\n\nfunction instrumentInp() {\n return onINP(metric => {\n triggerHandlers('inp', {\n metric,\n });\n _previousInp = metric;\n });\n}\n\nfunction addMetricObserver(\n type,\n callback,\n instrumentFn,\n previousValue,\n stopOnCallback = false,\n) {\n addHandler(type, callback);\n\n let stopListening;\n\n if (!instrumented[type]) {\n stopListening = instrumentFn();\n instrumented[type] = true;\n }\n\n if (previousValue) {\n callback({ metric: previousValue });\n }\n\n return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type) {\n const options = {};\n\n // Special per-type options we want to use\n if (type === 'event') {\n options.durationThreshold = 0;\n }\n\n observe(\n type,\n entries => {\n triggerHandlers(type, { entries });\n },\n options,\n );\n}\n\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n type,\n callback,\n stopListening,\n) {\n return () => {\n if (stopListening) {\n stopListening();\n }\n\n const typeHandlers = handlers[type];\n\n if (!typeHandlers) {\n return;\n }\n\n const index = typeHandlers.indexOf(callback);\n if (index !== -1) {\n typeHandlers.splice(index, 1);\n }\n };\n}\n\n/**\n * Check if a PerformanceEntry is a PerformanceEventTiming by checking for the `duration` property.\n */\nfunction isPerformanceEventTiming(entry) {\n return 'duration' in entry;\n}\n\nexport { addClsInstrumentationHandler, addFidInstrumentationHandler, addInpInstrumentationHandler, addLcpInstrumentationHandler, addPerformanceInstrumentationHandler, addTtfbInstrumentationHandler, isPerformanceEventTiming };\n//# sourceMappingURL=instrument.js.map\n","module.exports = __webpack_public_path__ + \"1c57b3481f295105588972ffa1305521.js\";","export default __webpack_public_path__ + \"099f4053beec784ab9d0dc7043a872c2.svg\";","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ZoomInOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomInOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ZoomInOutlined = function ZoomInOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ZoomInOutlinedSvg\n }));\n};\n\n/**![zoom-in](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNINTE5VjMwOWMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTM0SDMyNWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxMTh2MTM0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTE5aDExOGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ZoomInOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ZoomInOutlined';\n}\nexport default RefIcon;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\nfunction contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { SpaceContext } from './context';\nconst Item = _ref => {\n let {\n className,\n index,\n children,\n split,\n style\n } = _ref;\n const {\n latestIndex\n } = React.useContext(SpaceContext);\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && /*#__PURE__*/React.createElement(\"span\", {\n className: `${className}-split`\n }, split));\n};\nexport default Item;","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","module.exports = __webpack_public_path__ + \"7b839a5c1f6d89538928c8a29003bbda.js\";","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\n\n// TODO: It's better to use `Proxy` replace the `element.value`. But we still need support IE11.\nfunction cloneEvent(event, target, value) {\n // A bug report filed on WebKit's Bugzilla tracker, dating back to 2009, specifically addresses the issue of cloneNode() not copying files of <input type=\"file\"> elements.\n // As of the last update, this bug was still marked as \"NEW,\" indicating that it might not have been resolved yet​​.\n // https://bugs.webkit.org/show_bug.cgi?id=28123\n var currentTarget = target.cloneNode(true);\n\n // click clear icon\n var newEvent = Object.create(event, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n\n // Fill data\n currentTarget.value = value;\n\n // Fill selection. Some type like `email` not support selection\n // https://github.com/ant-design/ant-design/issues/47833\n if (typeof target.selectionStart === 'number' && typeof target.selectionEnd === 'number') {\n currentTarget.selectionStart = target.selectionStart;\n currentTarget.selectionEnd = target.selectionEnd;\n }\n currentTarget.setSelectionRange = function () {\n target.setSelectionRange.apply(target, arguments);\n };\n return newEvent;\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // <Input\n // allowClear\n // value={query}\n // onChange={(e)=> {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n\n event = cloneEvent(e, target, '');\n onChange(event);\n return;\n }\n\n // Trigger by composition event, this means we need force change the input value\n // https://github.com/ant-design/ant-design/issues/45737\n // https://github.com/ant-design/ant-design/issues/46598\n if (target.type !== 'file' && targetValue !== undefined) {\n event = cloneEvent(e, target, targetValue);\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option);\n\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n }\n }\n}","module.exports = __webpack_public_path__ + \"3e93259f04cf0b4b52cc237cfc21cb05.js\";","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UpOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UpOutlined = function UpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UpOutlinedSvg\n }));\n};\n\n/**![up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5MC41IDc1NS4zTDUzNy45IDI2OS4yYy0xMi44LTE3LjYtMzktMTcuNi01MS43IDBMMTMzLjUgNzU1LjNBOCA4IDAgMDAxNDAgNzY4aDc1YzUuMSAwIDkuOS0yLjUgMTIuOS02LjZMNTEyIDM2OS44bDI4NC4xIDM5MS42YzMgNC4xIDcuOCA2LjYgMTIuOSA2LjZoNzVjNi41IDAgMTAuMy03LjQgNi41LTEyLjd6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(UpOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UpOutlined';\n}\nexport default RefIcon;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./SvgWrapper.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./SvgWrapper.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import clsx from 'clsx';\nimport { CSSProperties, ReactNode } from 'react';\n\nimport './SvgWrapper.scss';\n\nexport interface SvgWrapperProps {\n children: ReactNode;\n rootClassName?: string;\n className?: string;\n width?: string | number;\n height?: string | number;\n viewBox?: string;\n opacity?: string;\n fill?: string;\n stroke?: string;\n strokeWidth?: string | number;\n style?: CSSProperties;\n}\n\nexport const SvgWrapper = ({\n children,\n rootClassName = '',\n className = '',\n width = '1em',\n height = '1em',\n viewBox = '0 0 18 18',\n opacity = '1',\n fill = 'currentColor',\n stroke = 'currentColor',\n strokeWidth = '0',\n\n // Prevents svg from being cropped\n style = { overflow: 'visible' },\n ...svgProps\n}: SvgWrapperProps) => (\n <div className={clsx('svg-wrapper', rootClassName)}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n {...{\n className,\n width,\n height,\n viewBox,\n fill,\n opacity,\n stroke,\n strokeWidth,\n style,\n }}\n {...svgProps}\n >\n {children}\n </svg>\n </div>\n);\n","import { Store } from 'antd/es/form/interface';\nimport { createContext, Dispatch, SetStateAction, useContext } from 'react';\n\ninterface OpFormContextProps {\n isDataLoading: boolean;\n isReadOnly: boolean;\n isSubmitting: boolean;\n setIsSubmitting: Dispatch<SetStateAction<boolean>> | undefined;\n currentFormValues?: Store;\n setCurrentFormValues?: Dispatch<SetStateAction<Store>> | undefined;\n}\n\n/**\n * Context for the OpForm component.\n *\n * This context provides the properties and methods required for the OpForm component\n * to function correctly. It is initialized with an undefined value.\n *\n * @type {OpFormContextProps | undefined}\n */\nexport const OpFormContext = createContext<OpFormContextProps>({\n isDataLoading: false,\n isReadOnly: false,\n isSubmitting: false,\n setIsSubmitting: undefined,\n});\n\n/**\n * Custom hook to access the OpFormContext.\n *\n * @returns {OpFormContextProps} The context value of OpFormContext.\n */\nexport const useOpFormContext = (): OpFormContextProps => {\n const context = useContext(OpFormContext);\n\n return context;\n};\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","module.exports = __webpack_public_path__ + \"4ef80ee74467e0297eec3cc03092da01.js\";","import { ComponentProps } from 'react';\nimport Modal from 'antd/es/modal';\nimport clsx from 'clsx';\n\ninterface OpModalProps extends ComponentProps<typeof Modal> {}\n\nexport const OpModal = ({\n children,\n className,\n centered = true,\n destroyOnClose = true,\n ...modalProps\n}: OpModalProps) => (\n <Modal\n className={clsx('op-modal', className)}\n centered={centered}\n destroyOnClose={destroyOnClose}\n {...modalProps}\n >\n {children}\n </Modal>\n);\n","/**\n * Provide a default hook since not everyone needs to config this.\n */\nvar useDefaultCSP = function useDefaultCSP() {\n return {};\n};\nexport default useDefaultCSP;","module.exports = __webpack_public_path__ + \"f3239783e5e1171abdb8f8fcda679e6a.js\";","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _ExportOutlined = _interopRequireDefault(require('./lib/icons/ExportOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _ExportOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"46ed21c8fbddeefacaf10d78887aa22a.js\";","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"show\"];\nimport * as React from 'react';\n/**\n * Cut `value` by the `count.max` prop.\n */\nexport function inCountRange(value, countConfig) {\n if (!countConfig.max) {\n return true;\n }\n var count = countConfig.strategy(value);\n return count <= countConfig.max;\n}\nexport default function useCount(count, showCount) {\n return React.useMemo(function () {\n var mergedConfig = {};\n if (showCount) {\n mergedConfig.show = _typeof(showCount) === 'object' && showCount.formatter ? showCount.formatter : !!showCount;\n }\n mergedConfig = _objectSpread(_objectSpread({}, mergedConfig), count);\n var _ref = mergedConfig,\n show = _ref.show,\n rest = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, rest), {}, {\n show: !!show,\n showFormatter: typeof show === 'function' ? show : undefined,\n strategy: rest.strategy || function (value) {\n return value.length;\n }\n });\n }, [count, showCount]);\n}","module.exports = __webpack_public_path__ + \"21f7b39463990a82836f2a191cd5cae0.js\";","module.exports = __webpack_public_path__ + \"fb5080213f065f82f0391c551c864434.js\";","import { unit } from '@ant-design/cssinjs';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Row-Shared ==============================\nconst genGridRowStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n display: 'flex',\n flexFlow: 'row wrap',\n minWidth: 0,\n '&::before, &::after': {\n display: 'flex'\n },\n '&-no-wrap': {\n flexWrap: 'nowrap'\n },\n // The origin of the X-axis\n '&-start': {\n justifyContent: 'flex-start'\n },\n // The center of the X-axis\n '&-center': {\n justifyContent: 'center'\n },\n // The opposite of the X-axis\n '&-end': {\n justifyContent: 'flex-end'\n },\n '&-space-between': {\n justifyContent: 'space-between'\n },\n '&-space-around': {\n justifyContent: 'space-around'\n },\n '&-space-evenly': {\n justifyContent: 'space-evenly'\n },\n // Align at the top\n '&-top': {\n alignItems: 'flex-start'\n },\n // Align at the center\n '&-middle': {\n alignItems: 'center'\n },\n '&-bottom': {\n alignItems: 'flex-end'\n }\n }\n };\n};\n// ============================== Col-Shared ==============================\nconst genGridColStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n position: 'relative',\n maxWidth: '100%',\n // Prevent columns from collapsing when empty\n minHeight: 1\n }\n };\n};\nconst genLoopGridColumnsStyle = (token, sizeCls) => {\n const {\n prefixCls,\n componentCls,\n gridColumns\n } = token;\n const gridColumnsStyle = {};\n for (let i = gridColumns; i >= 0; i--) {\n if (i === 0) {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'none'\n };\n gridColumnsStyle[`${componentCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: 0\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: 0\n };\n } else {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = [\n // https://github.com/ant-design/ant-design/issues/44456\n // Form set `display: flex` on Col which will override `display: block`.\n // Let's get it from css variable to support override.\n {\n ['--ant-display']: 'block',\n // Fallback to display if variable not support\n display: 'block'\n }, {\n display: 'var(--ant-display)',\n flex: `0 0 ${i / gridColumns * 100}%`,\n maxWidth: `${i / gridColumns * 100}%`\n }];\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: i\n };\n }\n }\n // Flex CSS Var\n gridColumnsStyle[`${componentCls}${sizeCls}-flex`] = {\n flex: `var(--${prefixCls}${sizeCls}-flex)`\n };\n return gridColumnsStyle;\n};\nconst genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);\nconst genGridMediaStyle = (token, screenSize, sizeCls) => ({\n [`@media (min-width: ${unit(screenSize)})`]: Object.assign({}, genGridStyle(token, sizeCls))\n});\nexport const prepareRowComponentToken = () => ({});\nexport const prepareColComponentToken = () => ({});\n// ============================== Export ==============================\nexport const useRowStyle = genStyleHooks('Grid', genGridRowStyle, prepareRowComponentToken);\nexport const useColStyle = genStyleHooks('Grid', token => {\n const gridToken = mergeToken(token, {\n gridColumns: 24 // Row is divided into 24 parts in Grid\n });\n const gridMediaSizesMap = {\n '-sm': gridToken.screenSMMin,\n '-md': gridToken.screenMDMin,\n '-lg': gridToken.screenLGMin,\n '-xl': gridToken.screenXLMin,\n '-xxl': gridToken.screenXXLMin\n };\n return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], key)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];\n}, prepareColComponentToken);","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","module.exports = __webpack_public_path__ + \"f15cbf0d23cba4a313f3f2acfef5370c.js\";","\"use client\";\n\nimport * as React from 'react';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport { devUseWarning } from '../_util/warning';\nexport default function useIcons(_ref) {\n let {\n suffixIcon,\n clearIcon,\n menuItemSelectedIcon,\n removeIcon,\n loading,\n multiple,\n hasFeedback,\n prefixCls,\n showSuffixIcon,\n feedbackIcon,\n showArrow,\n componentName\n } = _ref;\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning(componentName);\n warning.deprecated(!clearIcon, 'clearIcon', 'allowClear={{ clearIcon: React.ReactNode }}');\n }\n // Clear Icon\n const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n const getSuffixIconNode = arrowIcon => {\n if (suffixIcon === null && !hasFeedback && !showArrow) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n let mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode(/*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n const iconCls = `${prefixCls}-suffix`;\n mergedSuffixIcon = _ref2 => {\n let {\n open,\n showSearch\n } = _ref2;\n if (open && showSearch) {\n return getSuffixIconNode(/*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode(/*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n let mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n let mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","// ** NOTE ** //\n// ** This file should be automatically generated before it is used\n// ** outside of the dashboards\n// ** ** //\nimport {\n SET_READERS,\n READERS_REDUCER,\n USER_ENTRIES_REDUCER,\n SET_USER_ENTRIES,\n ENTRIES_REDUCER,\n SET_ENTRIES,\n USERS_REDUCER,\n SET_USERS,\n DASHBOARDS_REDUCER,\n SET_DASHBOARDS,\n ACTIVITY_REDUCER,\n SET_ACTIVITY,\n WIDGET_TYPES_REDUCER,\n SET_WIDGET_TYPES,\n SET_SHARED_USERS,\n SHARED_USERS_REDUCER,\n SET_HOOK_EVENTS,\n HOOK_EVENTS_REDUCER,\n SITES_REDUCER,\n SET_SITES,\n ZONES_REDUCER,\n SET_ZONES,\n} from 'routes/OrgContainer/constants';\n\nexport default {\n entries: {\n text: 'Entries',\n api: 'listEntries',\n reducer: ENTRIES_REDUCER,\n action: SET_ENTRIES,\n },\n users: {\n text: 'Users',\n api: 'listUsers',\n reducer: USERS_REDUCER,\n action: SET_USERS,\n },\n dashboard: {\n text: 'Dashboard',\n api: 'describeDashboard',\n reducer: 'dashboard',\n action: 'GENERIC_DATA',\n },\n sharedUser: {\n text: 'Shared User',\n api: 'describeSharedUser',\n reducer: 'sharedUser',\n action: 'GENERIC_DATA',\n },\n sharedUsers: {\n text: 'Shared Users',\n api: 'listSharedUsers',\n reducer: SHARED_USERS_REDUCER,\n action: SET_SHARED_USERS,\n },\n dashboards: {\n text: 'Dashboards',\n api: 'listDashboards',\n reducer: DASHBOARDS_REDUCER,\n action: SET_DASHBOARDS,\n },\n activity: {\n text: 'Activity',\n api: 'getActivity',\n reducer: ACTIVITY_REDUCER,\n action: SET_ACTIVITY,\n },\n widgetTypes: {\n text: 'Widget Types',\n api: 'listWidgetTypes',\n reducer: WIDGET_TYPES_REDUCER,\n action: SET_WIDGET_TYPES,\n },\n userEntries: {\n text: 'User Entries',\n api: 'listUserEntries',\n reducer: USER_ENTRIES_REDUCER,\n action: SET_USER_ENTRIES,\n },\n hookEvents: {\n text: 'Hook Events',\n api: 'listHookEvents',\n reducer: HOOK_EVENTS_REDUCER,\n action: SET_HOOK_EVENTS,\n },\n sites: {\n text: 'Sites',\n api: 'listSites',\n reducer: SITES_REDUCER,\n action: SET_SITES,\n },\n zones: {\n text: 'Zones',\n api: 'listZones',\n reducer: ZONES_REDUCER,\n action: SET_ZONES,\n },\n readers: {\n text: 'Readers',\n api: 'listReaders',\n reducer: READERS_REDUCER,\n action: SET_READERS,\n },\n opVideoDevices: {\n text: 'OP Video Devices',\n api: 'listOpvideoDevices',\n reducer: 'opVideoDevices',\n action: 'GENERIC_DATA',\n },\n acuConfig: {\n text: 'ACU Config',\n api: 'getAcuConfig',\n reducer: 'acuConfig',\n action: 'GENERIC_DATA3',\n },\n opvideoDeviceListClips: {\n text: 'Clips',\n api: 'opvideoDeviceListClips',\n reducer: 'opvideoDeviceListClips',\n action: 'GENERIC_DATA4',\n },\n};\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n size,\n className\n } = props,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n const [,, hashId] = useToken();\n let sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n // Do nothing\n }\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Button.Group');\n process.env.NODE_ENV !== \"production\" ? warning(!size || ['large', 'small', 'middle'].includes(size), 'usage', 'Invalid prop `size`.') : void 0;\n }\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import { observe } from '../observe.js';\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries) => {\n (entries ).forEach(e => {\n if (e.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n }\n });\n};\n\nlet po;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nconst getInteractionCount = () => {\n return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nconst initInteractionCountPolyfill = () => {\n if ('interactionCount' in performance || po) return;\n\n po = observe('event', updateEstimate, {\n type: 'event',\n buffered: true,\n durationThreshold: 0,\n } );\n};\n\nexport { getInteractionCount, initInteractionCountPolyfill };\n//# sourceMappingURL=interactionCountPolyfill.js.map\n","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n const componentDisabled = useContext(DisabledContext);\n const componentSize = useContext(SizeContext);\n return {\n componentDisabled,\n componentSize\n };\n}\nexport default useConfig;","import { isInstanceOf } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n maxValueLimit = 250,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions, maxValueLength) {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\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 * 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\nexport default isMasked;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\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 for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\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 if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\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\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\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\nexport default getNative;\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\nexport default getValue;\n","import * as React from 'react';\nexport default function useDebounce(value) {\n const [cacheValue, setCacheValue] = React.useState(value);\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","const genFormValidateMotionStyle = token => {\n const {\n componentCls\n } = token;\n const helpCls = `${componentCls}-show-help`;\n const helpItemCls = `${componentCls}-show-help-item`;\n return {\n [helpCls]: {\n // Explain holder\n transition: `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&-appear, &-enter': {\n opacity: 0,\n '&-active': {\n opacity: 1\n }\n },\n '&-leave': {\n opacity: 1,\n '&-active': {\n opacity: 0\n }\n },\n // Explain\n [helpItemCls]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationSlow} ${token.motionEaseInOut},\n opacity ${token.motionDurationSlow} ${token.motionEaseInOut},\n transform ${token.motionDurationSlow} ${token.motionEaseInOut} !important`,\n [`&${helpItemCls}-appear, &${helpItemCls}-enter`]: {\n transform: `translateY(-5px)`,\n opacity: 0,\n '&-active': {\n transform: 'translateY(0)',\n opacity: 1\n }\n },\n [`&${helpItemCls}-leave-active`]: {\n transform: `translateY(-5px)`\n }\n }\n }\n };\n};\nexport default genFormValidateMotionStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genCollapseMotion, zoomIn } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genFormValidateMotionStyle from './explain';\nconst resetForm = token => ({\n legend: {\n display: 'block',\n width: '100%',\n marginBottom: token.marginLG,\n padding: 0,\n color: token.colorTextDescription,\n fontSize: token.fontSizeLG,\n lineHeight: 'inherit',\n border: 0,\n borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n },\n 'input[type=\"search\"]': {\n boxSizing: 'border-box'\n },\n // Position radios and checkboxes better\n 'input[type=\"radio\"], input[type=\"checkbox\"]': {\n lineHeight: 'normal'\n },\n 'input[type=\"file\"]': {\n display: 'block'\n },\n // Make range inputs behave like textual form controls\n 'input[type=\"range\"]': {\n display: 'block',\n width: '100%'\n },\n // Make multiple select elements height not fixed\n 'select[multiple], select[size]': {\n height: 'auto'\n },\n // Focus for file, radio, and checkbox\n [`input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus`]: {\n outline: 0,\n boxShadow: `0 0 0 ${unit(token.controlOutlineWidth)} ${token.controlOutline}`\n },\n // Adjust output element\n output: {\n display: 'block',\n paddingTop: 15,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n }\n});\nconst genFormSize = (token, height) => {\n const {\n formItemCls\n } = token;\n return {\n [formItemCls]: {\n [`${formItemCls}-label > label`]: {\n height\n },\n [`${formItemCls}-control-input`]: {\n minHeight: height\n }\n }\n };\n};\nconst genFormStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), resetForm(token)), {\n [`${componentCls}-text`]: {\n display: 'inline-block',\n paddingInlineEnd: token.paddingSM\n },\n // ================================================================\n // = Size =\n // ================================================================\n '&-small': Object.assign({}, genFormSize(token, token.controlHeightSM)),\n '&-large': Object.assign({}, genFormSize(token, token.controlHeightLG))\n })\n };\n};\nconst genFormItemStyle = token => {\n const {\n formItemCls,\n iconCls,\n componentCls,\n rootPrefixCls,\n antCls,\n labelRequiredMarkColor,\n labelColor,\n labelFontSize,\n labelHeight,\n labelColonMarginInlineStart,\n labelColonMarginInlineEnd,\n itemMarginBottom\n } = token;\n return {\n [formItemCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n marginBottom: itemMarginBottom,\n verticalAlign: 'top',\n '&-with-help': {\n transition: 'none'\n },\n [`&-hidden,\n &-hidden${antCls}-row`]: {\n // https://github.com/ant-design/ant-design/issues/26141\n display: 'none'\n },\n '&-has-warning': {\n [`${formItemCls}-split`]: {\n color: token.colorError\n }\n },\n '&-has-error': {\n [`${formItemCls}-split`]: {\n color: token.colorWarning\n }\n },\n // ==============================================================\n // = Label =\n // ==============================================================\n [`${formItemCls}-label`]: {\n flexGrow: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'end',\n verticalAlign: 'middle',\n '&-left': {\n textAlign: 'start'\n },\n '&-wrap': {\n overflow: 'unset',\n lineHeight: token.lineHeight,\n whiteSpace: 'unset'\n },\n '> label': {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n height: labelHeight,\n color: labelColor,\n fontSize: labelFontSize,\n [`> ${iconCls}`]: {\n fontSize: token.fontSize,\n verticalAlign: 'top'\n },\n // Required mark\n [`&${formItemCls}-required:not(${formItemCls}-required-mark-optional)::before`]: {\n display: 'inline-block',\n marginInlineEnd: token.marginXXS,\n color: labelRequiredMarkColor,\n fontSize: token.fontSize,\n fontFamily: 'SimSun, sans-serif',\n lineHeight: 1,\n content: '\"*\"',\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-optional`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXXS,\n color: token.colorTextDescription,\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-tooltip`]: {\n color: token.colorTextDescription,\n cursor: 'help',\n writingMode: 'horizontal-tb',\n marginInlineStart: token.marginXXS\n },\n '&::after': {\n content: '\":\"',\n position: 'relative',\n marginBlock: 0,\n marginInlineStart: labelColonMarginInlineStart,\n marginInlineEnd: labelColonMarginInlineEnd\n },\n [`&${formItemCls}-no-colon::after`]: {\n content: '\"\\\\a0\"'\n }\n }\n },\n // ==============================================================\n // = Input =\n // ==============================================================\n [`${formItemCls}-control`]: {\n ['--ant-display']: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n [`&:first-child:not([class^=\"'${rootPrefixCls}-col-'\"]):not([class*=\"' ${rootPrefixCls}-col-'\"])`]: {\n width: '100%'\n },\n '&-input': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n minHeight: token.controlHeight,\n '&-content': {\n flex: 'auto',\n maxWidth: '100%'\n }\n }\n },\n // ==============================================================\n // = Explain =\n // ==============================================================\n [formItemCls]: {\n '&-explain, &-extra': {\n clear: 'both',\n color: token.colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n },\n '&-explain-connected': {\n width: '100%'\n },\n '&-extra': {\n minHeight: token.controlHeightSM,\n transition: `color ${token.motionDurationMid} ${token.motionEaseOut}` // sync input color transition\n },\n '&-explain': {\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n }\n }\n },\n [`&-with-help ${formItemCls}-explain`]: {\n height: 'auto',\n opacity: 1\n },\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n [`${formItemCls}-feedback-icon`]: {\n fontSize: token.fontSize,\n textAlign: 'center',\n visibility: 'visible',\n animationName: zoomIn,\n animationDuration: token.motionDurationMid,\n animationTimingFunction: token.motionEaseOutBack,\n pointerEvents: 'none',\n '&-success': {\n color: token.colorSuccess\n },\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n },\n '&-validating': {\n color: token.colorPrimary\n }\n }\n })\n };\n};\nconst genHorizontalStyle = (token, className) => {\n const {\n formItemCls\n } = token;\n return {\n [`${className}-horizontal`]: {\n [`${formItemCls}-label`]: {\n flexGrow: 0\n },\n [`${formItemCls}-control`]: {\n flex: '1 1 0',\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n minWidth: 0\n },\n // Do not change this to `ant-col-24`! `-24` match all the responsive rules\n // https://github.com/ant-design/ant-design/issues/32980\n // https://github.com/ant-design/ant-design/issues/34903\n // https://github.com/ant-design/ant-design/issues/44538\n [`${formItemCls}-label[class$='-24'], ${formItemCls}-label[class*='-24 ']`]: {\n [`& + ${formItemCls}-control`]: {\n minWidth: 'unset'\n }\n }\n }\n };\n};\nconst genInlineStyle = token => {\n const {\n componentCls,\n formItemCls,\n inlineItemMarginBottom\n } = token;\n return {\n [`${componentCls}-inline`]: {\n display: 'flex',\n flexWrap: 'wrap',\n [formItemCls]: {\n flex: 'none',\n marginInlineEnd: token.margin,\n marginBottom: inlineItemMarginBottom,\n '&-row': {\n flexWrap: 'nowrap'\n },\n [`> ${formItemCls}-label,\n > ${formItemCls}-control`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`> ${formItemCls}-label`]: {\n flex: 'none'\n },\n [`${componentCls}-text`]: {\n display: 'inline-block'\n },\n [`${formItemCls}-has-feedback`]: {\n display: 'inline-block'\n }\n }\n }\n };\n};\nconst makeVerticalLayoutLabel = token => ({\n padding: token.verticalLabelPadding,\n margin: token.verticalLabelMargin,\n whiteSpace: 'initial',\n textAlign: 'start',\n '> label': {\n margin: 0,\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/43538\n visibility: 'hidden'\n }\n }\n});\nconst makeVerticalLayout = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${formItemCls} ${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n // ref: https://github.com/ant-design/ant-design/issues/45122\n [`${componentCls}:not(${componentCls}-inline)`]: {\n [formItemCls]: {\n flexWrap: 'wrap',\n [`${formItemCls}-label, ${formItemCls}-control`]: {\n // When developer pass `xs: { span }`,\n // It should follow the `xs` screen config\n // ref: https://github.com/ant-design/ant-design/issues/44386\n [`&:not([class*=\" ${rootPrefixCls}-col-xs\"])`]: {\n flex: '0 0 100%',\n maxWidth: '100%'\n }\n }\n }\n }\n };\n};\nconst genVerticalStyle = token => {\n const {\n componentCls,\n formItemCls,\n antCls\n } = token;\n return {\n [`${componentCls}-vertical`]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${formItemCls}-row`]: {\n flexDirection: 'column'\n },\n [`${formItemCls}-label > label`]: {\n height: 'auto'\n },\n [`${formItemCls}-control`]: {\n width: '100%'\n },\n [`${formItemCls}-label,\n ${antCls}-col-24${formItemCls}-label,\n ${antCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenXSMax)})`]: [makeVerticalLayout(token), {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n }],\n [`@media (max-width: ${unit(token.screenSMMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n },\n [`@media (max-width: ${unit(token.screenMDMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n },\n [`@media (max-width: ${unit(token.screenLGMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n }\n };\n};\nconst genItemVerticalStyle = token => {\n const {\n formItemCls,\n antCls\n } = token;\n return {\n [`${formItemCls}-vertical`]: {\n [`${formItemCls}-row`]: {\n flexDirection: 'column'\n },\n [`${formItemCls}-label > label`]: {\n height: 'auto'\n },\n [`${formItemCls}-control`]: {\n width: '100%'\n }\n },\n [`${formItemCls}-vertical ${formItemCls}-label,\n ${antCls}-col-24${formItemCls}-label,\n ${antCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [`@media (max-width: ${unit(token.screenXSMax)})`]: [makeVerticalLayout(token), {\n [formItemCls]: {\n [`${antCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }],\n [`@media (max-width: ${unit(token.screenSMMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenMDMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenLGMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n labelRequiredMarkColor: token.colorError,\n labelColor: token.colorTextHeading,\n labelFontSize: token.fontSize,\n labelHeight: token.controlHeight,\n labelColonMarginInlineStart: token.marginXXS / 2,\n labelColonMarginInlineEnd: token.marginXS,\n itemMarginBottom: token.marginLG,\n verticalLabelPadding: `0 0 ${token.paddingXS}px`,\n verticalLabelMargin: 0,\n inlineItemMarginBottom: 0\n});\nexport const prepareToken = (token, rootPrefixCls) => {\n const formToken = mergeToken(token, {\n formItemCls: `${token.componentCls}-item`,\n rootPrefixCls\n });\n return formToken;\n};\nexport default genStyleHooks('Form', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = prepareToken(token, rootPrefixCls);\n return [genFormStyle(formToken), genFormItemStyle(formToken), genFormValidateMotionStyle(formToken), genHorizontalStyle(formToken, formToken.componentCls), genHorizontalStyle(formToken, formToken.formItemCls), genInlineStyle(formToken), genVerticalStyle(formToken), genItemVerticalStyle(formToken), genCollapseMotion(formToken), zoomIn];\n}, prepareComponentToken, {\n // Let From style before the Grid\n // ref https://github.com/ant-design/ant-design/issues/44386\n order: -1000\n});","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport initCollapseMotion from '../_util/motion';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction toErrorEntity(error, prefix, errorStatus) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : `${prefix}-${index}`,\n error,\n errorStatus\n };\n}\nconst ErrorList = _ref => {\n let {\n help,\n helpStatus,\n errors = EMPTY_LIST,\n warnings = EMPTY_LIST,\n className: rootClassName,\n fieldId,\n onVisibleChanged\n } = _ref;\n const {\n prefixCls\n } = React.useContext(FormItemPrefixContext);\n const baseClassName = `${prefixCls}-item-explain`;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const collapseMotion = useMemo(() => initCollapseMotion(prefixCls), [prefixCls]);\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const fullKeyList = React.useMemo(() => {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, 'help', helpStatus)];\n }\n return [].concat(_toConsumableArray(debounceErrors.map((error, index) => toErrorEntity(error, 'error', 'error', index))), _toConsumableArray(debounceWarnings.map((warning, index) => toErrorEntity(warning, 'warning', 'warning', index))));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n const helpProps = {};\n if (fieldId) {\n helpProps.id = `${fieldId}_help`;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: `${prefixCls}-show-help`,\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, holderProps => {\n const {\n className: holderClassName,\n style: holderStyle\n } = holderProps;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, helpProps, {\n className: classNames(baseClassName, holderClassName, cssVarCls, rootCls, rootClassName, hashId),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({\n keys: fullKeyList\n }, initCollapseMotion(prefixCls), {\n motionName: `${prefixCls}-show-help-item`,\n component: false\n }), itemProps => {\n const {\n key,\n error,\n errorStatus,\n className: itemClassName,\n style: itemStyle\n } = itemProps;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, {\n [`${baseClassName}-${errorStatus}`]: errorStatus\n }),\n style: itemStyle\n }, error);\n }));\n }));\n};\nexport default ErrorList;","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nconst formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nconst defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) {\n return undefined;\n }\n const mergedId = namePath.join('_');\n if (formName) {\n return `${formName}_${mergedId}`;\n }\n const isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;\n}\n/**\n * Get merged status by meta or passed `validateStatus`.\n */\nexport function getStatus(errors, warnings, meta, defaultValidateStatus, hasFeedback, validateStatus) {\n let status = defaultValidateStatus;\n if (validateStatus !== undefined) {\n status = validateStatus;\n } else if (meta.validating) {\n status = 'validating';\n } else if (errors.length) {\n status = 'error';\n } else if (warnings.length) {\n status = 'warning';\n } else if (meta.touched || hasFeedback && meta.validated) {\n // success feedback should display when pass hasFeedback prop and current value is valid value\n status = 'success';\n }\n return status;\n}","import * as React from 'react';\nimport { useForm as useRcForm } from 'rc-field-form';\nimport { getDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n const namePath = toArray(name);\n return namePath.join('_');\n}\nfunction getFieldDOMNode(name, wrapForm) {\n const field = wrapForm.getFieldInstance(name);\n const fieldDom = getDOM(field);\n if (fieldDom) {\n return fieldDom;\n }\n const fieldId = getFieldId(toArray(name), wrapForm.__INTERNAL__.name);\n if (fieldId) {\n return document.getElementById(fieldId);\n }\n}\nexport default function useForm(form) {\n const [rcForm] = useRcForm();\n const itemsRef = React.useRef({});\n const wrapForm = React.useMemo(() => form !== null && form !== void 0 ? form : Object.assign(Object.assign({}, rcForm), {\n __INTERNAL__: {\n itemRef: name => node => {\n const namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n }\n },\n scrollToField: function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const node = getFieldDOMNode(name, wrapForm);\n if (node) {\n scrollIntoView(node, Object.assign({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: name => {\n const namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n }), [form, rcForm]);\n return [wrapForm];\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormContext, FormProvider, VariantContext } from './context';\nimport useForm from './hooks/useForm';\nimport useFormWarning from './hooks/useFormWarning';\nimport useStyle from './style';\nimport ValidateMessagesContext from './validateMessagesContext';\nconst InternalForm = (props, ref) => {\n const contextDisabled = React.useContext(DisabledContext);\n const {\n getPrefixCls,\n direction,\n form: contextForm\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n size,\n disabled = contextDisabled,\n form,\n colon,\n labelAlign,\n labelWrap,\n labelCol,\n wrapperCol,\n hideRequiredMark,\n layout = 'horizontal',\n scrollToFirstError,\n requiredMark,\n onFinishFailed,\n name,\n style,\n feedbackIcons,\n variant\n } = props,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\", \"style\", \"feedbackIcons\", \"variant\"]);\n const mergedSize = useSize(size);\n const contextValidateMessages = React.useContext(ValidateMessagesContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFormWarning(props);\n }\n const mergedRequiredMark = useMemo(() => {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n const mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const formClassName = classNames(prefixCls, `${prefixCls}-${layout}`, {\n [`${prefixCls}-hide-required-mark`]: mergedRequiredMark === false,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${mergedSize}`]: mergedSize\n }, cssVarCls, rootCls, hashId, contextForm === null || contextForm === void 0 ? void 0 : contextForm.className, className, rootClassName);\n const [wrapForm] = useForm(form);\n const {\n __INTERNAL__\n } = wrapForm;\n __INTERNAL__.name = name;\n const formContextValue = useMemo(() => ({\n name,\n labelAlign,\n labelCol,\n labelWrap,\n wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm,\n feedbackIcons\n }), [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm, feedbackIcons]);\n const nativeElementRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return Object.assign(Object.assign({}, wrapForm), {\n nativeElement: (_a = nativeElementRef.current) === null || _a === void 0 ? void 0 : _a.nativeElement\n });\n });\n const scrollToField = (options, fieldName) => {\n if (options) {\n let defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (typeof options === 'object') {\n defaultScrollToFirstError = options;\n }\n wrapForm.scrollToField(fieldName, defaultScrollToFirstError);\n }\n };\n const onInternalFinishFailed = errorInfo => {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n if (errorInfo.errorFields.length) {\n const fieldName = errorInfo.errorFields[0].name;\n if (scrollToFirstError !== undefined) {\n scrollToField(scrollToFirstError, fieldName);\n return;\n }\n if (contextForm && contextForm.scrollToFirstError !== undefined) {\n scrollToField(contextForm.scrollToFirstError, fieldName);\n }\n }\n };\n return wrapCSSVar(/*#__PURE__*/React.createElement(VariantContext.Provider, {\n value: variant\n }, /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: mergedSize\n }, /*#__PURE__*/React.createElement(FormProvider, {\n // This is not list in API, we pass with spread\n validateMessages: contextValidateMessages\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, Object.assign({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n ref: nativeElementRef,\n style: Object.assign(Object.assign({}, contextForm === null || contextForm === void 0 ? void 0 : contextForm.style), style),\n className: formClassName\n }))))))));\n};\nconst Form = /*#__PURE__*/React.forwardRef(InternalForm);\nif (process.env.NODE_ENV !== 'production') {\n Form.displayName = 'Form';\n}\nexport { List, useForm, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { devUseWarning } from '../../_util/warning';\nimport { FormItemInputContext } from '../context';\nconst useFormItemStatus = () => {\n const {\n status,\n errors = [],\n warnings = []\n } = useContext(FormItemInputContext);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Form.Item');\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'usage', 'Form.Item.useStatus should be used under Form.Item component. For more information: https://u.ant.design/form-item-usestatus') : void 0;\n }\n return {\n status,\n errors,\n warnings\n };\n};\n// Only used for compatible package. Not promise this will work on future version.\nuseFormItemStatus.Context = FormItemInputContext;\nexport default useFormItemStatus;","/**\n * Fallback of IE.\n * Safe to remove.\n */\n// Style as inline component\nimport { prepareToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\n// ============================= Fallback =============================\nconst genFallbackStyle = token => {\n const {\n formItemCls\n } = token;\n return {\n '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)': {\n // Fallback for IE, safe to remove we not support it anymore\n [`${formItemCls}-control`]: {\n display: 'flex'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Form', 'item-item'], (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = prepareToken(token, rootPrefixCls);\n return [genFallbackStyle(formToken)];\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nimport FallbackCmp from './style/fallbackCmp';\nconst FormItemInput = props => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged\n } = props;\n const baseClassName = `${prefixCls}-item`;\n const formContext = React.useContext(FormContext);\n const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => Object.assign({}, formContext), [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n const inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input-content`\n }, children));\n const formItemContext = React.useMemo(() => ({\n prefixCls,\n status\n }), [prefixCls, status]);\n const errorListDom = marginBottom !== null || errors.length || warnings.length ? (/*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: `${baseClassName}-explain-connected`,\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n }))) : null;\n const extraProps = {};\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`;\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? (/*#__PURE__*/React.createElement(\"div\", Object.assign({}, extraProps, {\n className: `${baseClassName}-extra`\n }), extra)) : null;\n const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : (/*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedWrapperCol, {\n className: className\n }), dom), /*#__PURE__*/React.createElement(FallbackCmp, {\n prefixCls: prefixCls\n }));\n};\nexport default FormItemInput;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport Col from '../grid/col';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (typeof tooltip === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nconst FormItemLabel = _ref => {\n let {\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip,\n vertical\n } = _ref;\n var _a;\n const [formLocale] = useLocale('Form');\n const {\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon\n } = React.useContext(FormContext);\n if (!label) {\n return null;\n }\n const mergedLabelCol = labelCol || contextLabelCol || {};\n const mergedLabelAlign = labelAlign || contextLabelAlign;\n const labelClsBasic = `${prefixCls}-item-label`;\n const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {\n [`${labelClsBasic}-wrap`]: !!labelWrap\n });\n let labelChildren = label;\n // Keep label is original where there should have no colon\n const computedColon = colon === true || contextColon !== false && colon !== false;\n const haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim()) {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n const {\n icon = /*#__PURE__*/React.createElement(QuestionCircleOutlined, null)\n } = tooltipProps,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n const tooltipNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: `${prefixCls}-item-tooltip`,\n title: '',\n onClick: e => {\n // Prevent label behavior in tooltip icon\n // https://github.com/ant-design/ant-design/issues/46154\n e.preventDefault();\n },\n tabIndex: null\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n // Required Mark\n const isOptionalMark = requiredMark === 'optional';\n const isRenderMark = typeof requiredMark === 'function';\n if (isRenderMark) {\n labelChildren = requiredMark(labelChildren, {\n required: !!required\n });\n } else if (isOptionalMark && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-optional`,\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: isOptionalMark || isRenderMark,\n [`${prefixCls}-item-no-colon`]: !computedColon\n });\n return /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n};\nexport default FormItemLabel;","\"use client\";\n\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { FormContext, FormItemInputContext } from '../context';\nimport { getStatus } from '../util';\nconst iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function StatusProvider(_ref) {\n let {\n children,\n errors,\n warnings,\n hasFeedback,\n validateStatus,\n prefixCls,\n meta,\n noStyle\n } = _ref;\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n feedbackIcons\n } = React.useContext(FormContext);\n const mergedValidateStatus = getStatus(errors, warnings, meta, null, !!hasFeedback, validateStatus);\n const {\n isFormItemInput: parentIsFormItemInput,\n status: parentStatus,\n hasFeedback: parentHasFeedback,\n feedbackIcon: parentFeedbackIcon\n } = React.useContext(FormItemInputContext);\n // ====================== Context =======================\n const formItemStatusContext = React.useMemo(() => {\n var _a;\n let feedbackIcon;\n if (hasFeedback) {\n const customIcons = hasFeedback !== true && hasFeedback.icons || feedbackIcons;\n const customIconNode = mergedValidateStatus && ((_a = customIcons === null || customIcons === void 0 ? void 0 : customIcons({\n status: mergedValidateStatus,\n errors,\n warnings\n })) === null || _a === void 0 ? void 0 : _a[mergedValidateStatus]);\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = customIconNode !== false && IconNode ? (/*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`)\n }, customIconNode || /*#__PURE__*/React.createElement(IconNode, null))) : null;\n }\n const context = {\n status: mergedValidateStatus || '',\n errors,\n warnings,\n hasFeedback: !!hasFeedback,\n feedbackIcon,\n isFormItemInput: true\n };\n // No style will follow parent context\n if (noStyle) {\n context.status = (mergedValidateStatus !== null && mergedValidateStatus !== void 0 ? mergedValidateStatus : parentStatus) || '';\n context.isFormItemInput = parentIsFormItemInput;\n context.hasFeedback = !!(hasFeedback !== null && hasFeedback !== void 0 ? hasFeedback : parentHasFeedback);\n context.feedbackIcon = hasFeedback !== undefined ? context.feedbackIcon : parentFeedbackIcon;\n }\n return context;\n }, [mergedValidateStatus, hasFeedback, noStyle, parentIsFormItemInput, parentStatus]);\n // ======================= Render =======================\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport { Row } from '../../grid';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport FormItemInput from '../FormItemInput';\nimport FormItemLabel from '../FormItemLabel';\nimport useDebounce from '../hooks/useDebounce';\nimport { getStatus } from '../util';\nimport StatusProvider from './StatusProvider';\nexport default function ItemHolder(props) {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n required,\n isRequired,\n onSubItemMetaChange,\n layout\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"required\", \"isRequired\", \"onSubItemMetaChange\", \"layout\"]);\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n requiredMark,\n vertical: formVertical\n } = React.useContext(FormContext);\n const vertical = formVertical || layout === 'vertical';\n // ======================== Margin ========================\n const itemRef = React.useRef(null);\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const hasHelp = help !== undefined && help !== null;\n const hasError = !!(hasHelp || errors.length || warnings.length);\n const isOnScreen = !!itemRef.current && isVisible(itemRef.current);\n const [marginBottom, setMarginBottom] = React.useState(null);\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n // The element must be part of the DOMTree to use getComputedStyle\n // https://stackoverflow.com/questions/35360711/getcomputedstyle-returns-a-cssstyledeclaration-but-all-properties-are-empty-on-a\n const itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError, isOnScreen]);\n const onErrorVisibleChanged = nextVisible => {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n const getValidateState = function () {\n let isDebounce = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const _errors = isDebounce ? debounceErrors : meta.errors;\n const _warnings = isDebounce ? debounceWarnings : meta.warnings;\n return getStatus(_errors, _warnings, meta, '', !!hasFeedback, validateStatus);\n };\n const mergedValidateStatus = getValidateState();\n // ======================== Render ========================\n const itemClassName = classNames(itemPrefixCls, className, rootClassName, {\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n // Status\n [`${itemPrefixCls}-has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden`]: hidden,\n // Layout\n [`${itemPrefixCls}-${layout}`]: layout\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName,\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, Object.assign({\n className: `${itemPrefixCls}-row`\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id',\n // It is deprecated because `htmlFor` is its replacement.\n 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol', 'validateDebounce'])), /*#__PURE__*/React.createElement(FormItemLabel, Object.assign({\n htmlFor: fieldId\n }, props, {\n requiredMark: requiredMark,\n required: required !== null && required !== void 0 ? required : isRequired,\n prefixCls: prefixCls,\n vertical: vertical\n })), /*#__PURE__*/React.createElement(FormItemInput, Object.assign({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(StatusProvider, {\n prefixCls: prefixCls,\n meta: meta,\n errors: meta.errors,\n warnings: meta.warnings,\n hasFeedback: hasFeedback,\n // Already calculated\n validateStatus: mergedValidateStatus\n }, children)))), !!marginBottom && (/*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-margin-offset`,\n style: {\n marginBottom: -marginBottom\n }\n })));\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport { cloneElement } from '../../_util/reactNode';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useChildren from '../hooks/useChildren';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport useStyle from '../style';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nimport StatusProvider from './StatusProvider';\nconst NAME_SPLIT = '__SPLIT__';\nconst _ValidateStatuses = ['success', 'warning', 'error', 'validating', ''];\n// https://github.com/ant-design/ant-design/issues/46417\n// `getValueProps` may modify the value props name,\n// we should check if the control is similar.\nfunction isSimilarControl(a, b) {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(key => {\n const propValueA = a[key];\n const propValueB = b[key];\n return propValueA === propValueB || typeof propValueA === 'function' || typeof propValueB === 'function';\n });\n}\nconst MemoInput = /*#__PURE__*/React.memo(_ref => {\n let {\n children\n } = _ref;\n return children;\n}, (prev, next) => isSimilarControl(prev.control, next.control) && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n name: [],\n validated: false\n };\n}\nfunction InternalFormItem(props) {\n const {\n name,\n noStyle,\n className,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n help,\n layout\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n name: formName\n } = React.useContext(FormContext);\n const mergedChildren = useChildren(children);\n const isRenderProps = typeof mergedChildren === 'function';\n const notifyParentMetaChange = React.useContext(NoStyleItemContext);\n const {\n validateTrigger: contextValidateTrigger\n } = React.useContext(FieldContext);\n const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n const hasName = !(name === undefined || name === null);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // ========================= Warn =========================\n const warning = devUseWarning('Form.Item');\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(name !== null, 'usage', '`null` is passed as `name` property') : void 0;\n }\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext);\n const fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState({});\n // >>>>> Current field errors\n const [meta, setMeta] = useState(() => genEmptyMeta());\n const onMetaChange = nextMeta => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && help !== false && notifyParentMetaChange) {\n let namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo;\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta, uniqueKeys) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(prevSubFieldErrors => {\n const clone = Object.assign({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList = _toConsumableArray(meta.errors);\n const warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(subFieldError => {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]);\n // ===================== Children Ref =====================\n const getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return /*#__PURE__*/React.createElement(StatusProvider, {\n prefixCls: prefixCls,\n hasFeedback: props.hasFeedback,\n validateStatus: props.validateStatus,\n meta: meta,\n errors: mergedErrors,\n warnings: mergedWarnings,\n noStyle: true\n }, baseChildren);\n }\n return /*#__PURE__*/React.createElement(ItemHolder, Object.assign({\n key: \"row\"\n }, props, {\n className: classNames(className, cssVarCls, rootCls, hashId),\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange,\n layout: layout\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return wrapCSSVar(renderLayout(mergedChildren));\n }\n let variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = Object.assign(Object.assign({}, variables), messageVariables);\n }\n // >>>>> With Field\n return wrapCSSVar(/*#__PURE__*/React.createElement(Field, Object.assign({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), (control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n const fieldId = getFieldId(mergedName, formName);\n const isRequired = required !== undefined ? required : !!(rules === null || rules === void 0 ? void 0 : rules.some(rule => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context);\n return (ruleEntity === null || ruleEntity === void 0 ? void 0 : ruleEntity.required) && !(ruleEntity === null || ruleEntity === void 0 ? void 0 : ruleEntity.warningOnly);\n }\n return false;\n }));\n // ======================= Children =======================\n const mergedControl = Object.assign({}, control);\n let childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'usage', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(mergedChildren) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = mergedChildren;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'usage', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'usage', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (/*#__PURE__*/React.isValidElement(mergedChildren)) {\n process.env.NODE_ENV !== \"production\" ? warning(mergedChildren.props.defaultValue === undefined, 'usage', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n const childProps = Object.assign(Object.assign({}, mergedChildren.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = [];\n if (help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`);\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`);\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(mergedChildren)) {\n childProps.ref = getItemRef(mergedName, mergedChildren);\n }\n // We should keep user origin event handler\n const triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(eventName => {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = mergedChildren.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n control: mergedControl,\n update: mergedChildren,\n childProps: watchingChildProps\n }, cloneElement(mergedChildren, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = mergedChildren(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length || !!noStyle, 'usage', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = mergedChildren;\n }\n return renderLayout(childNode, fieldId, isRequired);\n }));\n}\nconst FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import toArray from \"rc-util/es/Children/toArray\";\nexport default function useChildren(children) {\n if (typeof children === 'function') {\n return children;\n }\n const childList = toArray(children);\n return childList.length <= 1 ? childList[0] : childList;\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useFrameState(defaultValue) {\n const [value, setValue] = React.useState(defaultValue);\n const frameRef = useRef(null);\n const batchRef = useRef([]);\n const destroyRef = useRef(false);\n React.useEffect(() => {\n destroyRef.current = false;\n return () => {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(() => {\n frameRef.current = null;\n setValue(prevValue => {\n let current = prevValue;\n batchRef.current.forEach(func => {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import * as React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n const {\n itemRef\n } = React.useContext(FormContext);\n const cacheRef = React.useRef({});\n function getRef(name, children) {\n const childrenRef = children && typeof children === 'object' && children.ref;\n const nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { List } from 'rc-field-form';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemPrefixContext } from './context';\nconst FormList = _a => {\n var {\n prefixCls: customizePrefixCls,\n children\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Form.List');\n process.env.NODE_ENV !== \"production\" ? warning(typeof props.name === 'number' || (Array.isArray(props.name) ? !!props.name.length : !!props.name), 'usage', 'Miss `name` prop.') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n const contextValue = React.useMemo(() => ({\n prefixCls,\n status: 'error'\n }), [prefixCls]);\n return /*#__PURE__*/React.createElement(List, Object.assign({}, props), (fields, operation, meta) => (/*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(field => Object.assign(Object.assign({}, field), {\n fieldKey: field.key\n })), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n }))));\n};\nexport default FormList;","\"use client\";\n\nimport warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nconst Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n const {\n form\n } = useContext(FormContext);\n return form;\n}","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default floatFn;","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\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\nexport default setToArray;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import { timestampInSeconds } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst INTEGRATION_NAME = 'SessionTiming';\n\nconst _sessionTimingIntegration = (() => {\n const startTime = timestampInSeconds() * 1000;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n const now = timestampInSeconds() * 1000;\n\n return {\n ...event,\n extra: {\n ...event.extra,\n ['session:start']: startTime,\n ['session:duration']: now - startTime,\n ['session:end']: now,\n },\n };\n },\n };\n}) ;\n\n/**\n * This function adds duration since the sessionTimingIntegration was initialized\n * till the time event was sent.\n */\nconst sessionTimingIntegration = defineIntegration(_sessionTimingIntegration);\n\nexport { sessionTimingIntegration };\n//# sourceMappingURL=sessiontiming.js.map\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","module.exports = __webpack_public_path__ + \"10132993df2cf9c9423b53a8a44379ab.js\";","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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\nconst onHidden = (cb) => {\n const onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || (WINDOW.document && WINDOW.document.visibilityState === 'hidden')) {\n cb(event);\n }\n };\n\n if (WINDOW.document) {\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n }\n};\n\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch (e) {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n","import React, { forwardRef } from 'react';\nvar Transform = /*#__PURE__*/forwardRef(function (props, ref) {\n var children = props.children,\n x = props.x,\n y = props.y;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: {\n position: 'absolute',\n left: \"\".concat(x, \"%\"),\n top: \"\".concat(y, \"%\"),\n zIndex: 1,\n transform: 'translate(-50%, -50%)'\n }\n }, children);\n});\nexport default Transform;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.big-play-button{position:absolute;top:0;right:0;left:0;bottom:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.big-play-button__pause-button{position:absolute;transition:opacity .1s}.big-play-button__pause-button--activated{opacity:1;transform:scale(0)}.big-play-button__pause-button--deactivated{opacity:0;transform:scale(2);transition:opacity 1s,transform 1s}.big-play-button__play-button{position:absolute;transition:opacity .1s}.big-play-button__play-button--deactivated{opacity:0;transform:scale(2);transition:opacity 1s,transform 1s}.big-play-button__play-button--activated{opacity:1;transform:scale(0)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/containers/OpVideoPlayer/components/BigPlayButton.scss\"],\"names\":[],\"mappings\":\"AAAA,iBACE,iBAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CACA,QAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,mBAAA,CAEA,+BACE,iBAAA,CACA,sBAAA,CAEA,0CACE,SAAA,CACA,kBAAA,CAGF,4CACE,SAAA,CACA,kBAAA,CACA,kCACE,CAKN,8BACE,iBAAA,CACA,sBAAA,CAEA,2CACE,SAAA,CACA,kBAAA,CACA,kCACE,CAIJ,yCACE,SAAA,CACA,kBAAA\",\"sourcesContent\":[\".big-play-button {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n bottom: 0;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n pointer-events: none;\\n\\n &__pause-button {\\n position: absolute;\\n transition: opacity 0.1s; // Need so button animations don't overlap\\n\\n &--activated {\\n opacity: 1;\\n transform: scale(0);\\n }\\n\\n &--deactivated {\\n opacity: 0;\\n transform: scale(2);\\n transition:\\n opacity 1s,\\n transform 1s;\\n }\\n }\\n\\n &__play-button {\\n position: absolute;\\n transition: opacity 0.1s; // Need so button animations don't overlap\\n\\n &--deactivated {\\n opacity: 0;\\n transform: scale(2);\\n transition:\\n opacity 1s,\\n transform 1s;\\n }\\n\\n &--activated {\\n opacity: 1;\\n transform: scale(0);\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"c57f41cfe19507d8b44502752396695a.js\";","'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 __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar editorOptions_1 = require(\"./editorOptions\");\nvar ace = (0, editorOptions_1.getAceInstance)();\nvar ace_builds_1 = require(\"ace-builds\");\nvar ext_split_1 = require(\"ace-builds/src-noconflict/ext-split\");\nvar PropTypes = require(\"prop-types\");\nvar React = require(\"react\");\nvar isEqual = require(\"lodash.isequal\");\nvar get = require(\"lodash.get\");\nvar SplitComponent = /** @class */ (function (_super) {\n __extends(SplitComponent, _super);\n function SplitComponent(props) {\n var _this = _super.call(this, props) || this;\n editorOptions_1.editorEvents.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n _this.debounce = editorOptions_1.debounce;\n return _this;\n }\n SplitComponent.prototype.isInShadow = function (node) {\n var parent = node && node.parentNode;\n while (parent) {\n if (parent.toString() === \"[object ShadowRoot]\") {\n return true;\n }\n parent = parent.parentNode;\n }\n return false;\n };\n SplitComponent.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, className = _a.className, onBeforeLoad = _a.onBeforeLoad, mode = _a.mode, focus = _a.focus, theme = _a.theme, fontSize = _a.fontSize, value = _a.value, defaultValue = _a.defaultValue, cursorStart = _a.cursorStart, showGutter = _a.showGutter, wrapEnabled = _a.wrapEnabled, showPrintMargin = _a.showPrintMargin, _b = _a.scrollMargin, scrollMargin = _b === void 0 ? [0, 0, 0, 0] : _b, keyboardHandler = _a.keyboardHandler, onLoad = _a.onLoad, commands = _a.commands, annotations = _a.annotations, markers = _a.markers, splits = _a.splits;\n this.editor = ace.edit(this.refEditor);\n if (this.isInShadow(this.refEditor)) {\n this.editor.renderer.attachToShadowRoot();\n }\n this.editor.setTheme(\"ace/theme/\".concat(theme));\n if (onBeforeLoad) {\n onBeforeLoad(ace);\n }\n var editorProps = Object.keys(this.props.editorProps);\n var split = new ext_split_1.Split(this.editor.container, \"ace/theme/\".concat(theme), splits);\n this.editor.env.split = split;\n this.splitEditor = split.getEditor(0);\n this.split = split;\n // in a split scenario we don't want a print margin for the entire application\n this.editor.setShowPrintMargin(false);\n this.editor.renderer.setShowGutter(false);\n // get a list of possible options to avoid 'misspelled option errors'\n var availableOptions = this.splitEditor.$options;\n if (this.props.debounceChangePeriod) {\n this.onChange = this.debounce(this.onChange, this.props.debounceChangePeriod);\n }\n split.forEach(function (editor, index) {\n for (var i = 0; i < editorProps.length; i++) {\n editor[editorProps[i]] = _this.props.editorProps[editorProps[i]];\n }\n var defaultValueForEditor = get(defaultValue, index);\n var valueForEditor = get(value, index, \"\");\n editor.session.setUndoManager(new ace.UndoManager());\n editor.setTheme(\"ace/theme/\".concat(theme));\n editor.renderer.setScrollMargin(scrollMargin[0], scrollMargin[1], scrollMargin[2], scrollMargin[3]);\n editor.getSession().setMode(\"ace/mode/\".concat(mode));\n editor.setFontSize(fontSize);\n editor.renderer.setShowGutter(showGutter);\n editor.getSession().setUseWrapMode(wrapEnabled);\n editor.setShowPrintMargin(showPrintMargin);\n editor.on(\"focus\", _this.onFocus);\n editor.on(\"blur\", _this.onBlur);\n editor.on(\"input\", _this.onInput);\n editor.on(\"copy\", _this.onCopy);\n editor.on(\"paste\", _this.onPaste);\n editor.on(\"change\", _this.onChange);\n editor\n .getSession()\n .selection.on(\"changeSelection\", _this.onSelectionChange);\n editor.getSession().selection.on(\"changeCursor\", _this.onCursorChange);\n editor.session.on(\"changeScrollTop\", _this.onScroll);\n editor.setValue(defaultValueForEditor === undefined\n ? valueForEditor\n : defaultValueForEditor, cursorStart);\n var newAnnotations = get(annotations, index, []);\n var newMarkers = get(markers, index, []);\n editor.getSession().setAnnotations(newAnnotations);\n if (newMarkers && newMarkers.length > 0) {\n _this.handleMarkers(newMarkers, editor);\n }\n for (var i = 0; i < editorOptions_1.editorOptions.length; i++) {\n var option = editorOptions_1.editorOptions[i];\n if (availableOptions.hasOwnProperty(option)) {\n editor.setOption(option, _this.props[option]);\n }\n else if (_this.props[option]) {\n console.warn(\"ReaceAce: editor option \".concat(option, \" was activated but not found. Did you need to import a related tool or did you possibly mispell the option?\"));\n }\n }\n _this.handleOptions(_this.props, editor);\n if (Array.isArray(commands)) {\n commands.forEach(function (command) {\n if (typeof command.exec === \"string\") {\n editor.commands.bindKey(command.bindKey, command.exec);\n }\n else {\n editor.commands.addCommand(command);\n }\n });\n }\n if (keyboardHandler) {\n editor.setKeyboardHandler(\"ace/keyboard/\" + keyboardHandler);\n }\n });\n if (className) {\n this.refEditor.className += \" \" + className;\n }\n if (focus) {\n this.splitEditor.focus();\n }\n var sp = this.editor.env.split;\n sp.setOrientation(this.props.orientation === \"below\" ? sp.BELOW : sp.BESIDE);\n sp.resize(true);\n if (onLoad) {\n onLoad(sp);\n }\n };\n SplitComponent.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var oldProps = prevProps;\n var nextProps = this.props;\n var split = this.editor.env.split;\n if (nextProps.splits !== oldProps.splits) {\n split.setSplits(nextProps.splits);\n }\n if (nextProps.orientation !== oldProps.orientation) {\n split.setOrientation(nextProps.orientation === \"below\" ? split.BELOW : split.BESIDE);\n }\n split.forEach(function (editor, index) {\n if (nextProps.mode !== oldProps.mode) {\n editor.getSession().setMode(\"ace/mode/\" + nextProps.mode);\n }\n if (nextProps.keyboardHandler !== oldProps.keyboardHandler) {\n if (nextProps.keyboardHandler) {\n editor.setKeyboardHandler(\"ace/keyboard/\" + nextProps.keyboardHandler);\n }\n else {\n editor.setKeyboardHandler(null);\n }\n }\n if (nextProps.fontSize !== oldProps.fontSize) {\n editor.setFontSize(nextProps.fontSize);\n }\n if (nextProps.wrapEnabled !== oldProps.wrapEnabled) {\n editor.getSession().setUseWrapMode(nextProps.wrapEnabled);\n }\n if (nextProps.showPrintMargin !== oldProps.showPrintMargin) {\n editor.setShowPrintMargin(nextProps.showPrintMargin);\n }\n if (nextProps.showGutter !== oldProps.showGutter) {\n editor.renderer.setShowGutter(nextProps.showGutter);\n }\n for (var i = 0; i < editorOptions_1.editorOptions.length; i++) {\n var option = editorOptions_1.editorOptions[i];\n if (nextProps[option] !== oldProps[option]) {\n editor.setOption(option, nextProps[option]);\n }\n }\n if (!isEqual(nextProps.setOptions, oldProps.setOptions)) {\n _this.handleOptions(nextProps, editor);\n }\n var nextValue = get(nextProps.value, index, \"\");\n if (editor.getValue() !== nextValue) {\n // editor.setValue is a synchronous function call, change event is emitted before setValue return.\n _this.silent = true;\n var pos = editor.session.selection.toJSON();\n editor.setValue(nextValue, nextProps.cursorStart);\n editor.session.selection.fromJSON(pos);\n _this.silent = false;\n }\n var newAnnotations = get(nextProps.annotations, index, []);\n var oldAnnotations = get(oldProps.annotations, index, []);\n if (!isEqual(newAnnotations, oldAnnotations)) {\n editor.getSession().setAnnotations(newAnnotations);\n }\n var newMarkers = get(nextProps.markers, index, []);\n var oldMarkers = get(oldProps.markers, index, []);\n if (!isEqual(newMarkers, oldMarkers) && Array.isArray(newMarkers)) {\n _this.handleMarkers(newMarkers, editor);\n }\n });\n if (nextProps.className !== oldProps.className) {\n var appliedClasses = this.refEditor.className;\n var appliedClassesArray_1 = appliedClasses.trim().split(\" \");\n var oldClassesArray = oldProps.className.trim().split(\" \");\n oldClassesArray.forEach(function (oldClass) {\n var index = appliedClassesArray_1.indexOf(oldClass);\n appliedClassesArray_1.splice(index, 1);\n });\n this.refEditor.className =\n \" \" + nextProps.className + \" \" + appliedClassesArray_1.join(\" \");\n }\n if (nextProps.theme !== oldProps.theme) {\n split.setTheme(\"ace/theme/\" + nextProps.theme);\n }\n if (nextProps.focus && !oldProps.focus) {\n this.splitEditor.focus();\n }\n if (nextProps.height !== this.props.height ||\n nextProps.width !== this.props.width) {\n this.editor.resize();\n }\n };\n SplitComponent.prototype.componentWillUnmount = function () {\n this.editor.destroy();\n this.editor = null;\n };\n SplitComponent.prototype.onChange = function (event) {\n if (this.props.onChange && !this.silent) {\n var value_1 = [];\n this.editor.env.split.forEach(function (editor) {\n value_1.push(editor.getValue());\n });\n this.props.onChange(value_1, event);\n }\n };\n SplitComponent.prototype.onSelectionChange = function (event) {\n if (this.props.onSelectionChange) {\n var value_2 = [];\n this.editor.env.split.forEach(function (editor) {\n value_2.push(editor.getSelection());\n });\n this.props.onSelectionChange(value_2, event);\n }\n };\n SplitComponent.prototype.onCursorChange = function (event) {\n if (this.props.onCursorChange) {\n var value_3 = [];\n this.editor.env.split.forEach(function (editor) {\n value_3.push(editor.getSelection());\n });\n this.props.onCursorChange(value_3, event);\n }\n };\n SplitComponent.prototype.onFocus = function (event) {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n SplitComponent.prototype.onInput = function (event) {\n if (this.props.onInput) {\n this.props.onInput(event);\n }\n };\n SplitComponent.prototype.onBlur = function (event) {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n SplitComponent.prototype.onCopy = function (text) {\n if (this.props.onCopy) {\n this.props.onCopy(text);\n }\n };\n SplitComponent.prototype.onPaste = function (text) {\n if (this.props.onPaste) {\n this.props.onPaste(text);\n }\n };\n SplitComponent.prototype.onScroll = function () {\n if (this.props.onScroll) {\n this.props.onScroll(this.editor);\n }\n };\n SplitComponent.prototype.handleOptions = function (props, editor) {\n var setOptions = Object.keys(props.setOptions);\n for (var y = 0; y < setOptions.length; y++) {\n editor.setOption(setOptions[y], props.setOptions[setOptions[y]]);\n }\n };\n SplitComponent.prototype.handleMarkers = function (markers, editor) {\n // remove foreground markers\n var currentMarkers = editor.getSession().getMarkers(true);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i)) {\n editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // remove background markers\n currentMarkers = editor.getSession().getMarkers(false);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i)) {\n editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // add new markers\n markers.forEach(function (_a) {\n var startRow = _a.startRow, startCol = _a.startCol, endRow = _a.endRow, endCol = _a.endCol, className = _a.className, type = _a.type, _b = _a.inFront, inFront = _b === void 0 ? false : _b;\n var range = new ace_builds_1.Range(startRow, startCol, endRow, endCol);\n editor\n .getSession()\n .addMarker(range, className, type, inFront);\n });\n };\n SplitComponent.prototype.updateRef = function (item) {\n this.refEditor = item;\n };\n SplitComponent.prototype.render = function () {\n var _a = this.props, name = _a.name, width = _a.width, height = _a.height, style = _a.style;\n var divStyle = __assign({ width: width, height: height }, style);\n return React.createElement(\"div\", { ref: this.updateRef, id: name, style: divStyle });\n };\n SplitComponent.propTypes = {\n className: PropTypes.string,\n debounceChangePeriod: PropTypes.number,\n defaultValue: PropTypes.arrayOf(PropTypes.string),\n focus: PropTypes.bool,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onCopy: PropTypes.func,\n onFocus: PropTypes.func,\n onInput: PropTypes.func,\n onLoad: PropTypes.func,\n onPaste: PropTypes.func,\n onScroll: PropTypes.func,\n orientation: PropTypes.string,\n showGutter: PropTypes.bool,\n splits: PropTypes.number,\n theme: PropTypes.string,\n value: PropTypes.arrayOf(PropTypes.string),\n width: PropTypes.string,\n onSelectionChange: PropTypes.func,\n onCursorChange: PropTypes.func,\n onBeforeLoad: PropTypes.func,\n minLines: PropTypes.number,\n maxLines: PropTypes.number,\n readOnly: PropTypes.bool,\n highlightActiveLine: PropTypes.bool,\n tabSize: PropTypes.number,\n showPrintMargin: PropTypes.bool,\n cursorStart: PropTypes.number,\n editorProps: PropTypes.object,\n setOptions: PropTypes.object,\n style: PropTypes.object,\n scrollMargin: PropTypes.array,\n annotations: PropTypes.array,\n markers: PropTypes.array,\n keyboardHandler: PropTypes.string,\n wrapEnabled: PropTypes.bool,\n enableBasicAutocompletion: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n enableLiveAutocompletion: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n commands: PropTypes.array\n };\n SplitComponent.defaultProps = {\n name: \"ace-editor\",\n focus: false,\n orientation: \"beside\",\n splits: 2,\n mode: \"\",\n theme: \"\",\n height: \"500px\",\n width: \"500px\",\n value: [],\n fontSize: 12,\n showGutter: true,\n onChange: null,\n onPaste: null,\n onLoad: null,\n onScroll: null,\n minLines: null,\n maxLines: null,\n readOnly: false,\n highlightActiveLine: true,\n showPrintMargin: true,\n tabSize: 4,\n cursorStart: 1,\n editorProps: {},\n style: {},\n scrollMargin: [0, 0, 0, 0],\n setOptions: {},\n wrapEnabled: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: false\n };\n return SplitComponent;\n}(React.Component));\nexports.default = SplitComponent;\n//# sourceMappingURL=split.js.map","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const Overlay = _ref => {\n let {\n title,\n content,\n prefixCls\n } = _ref;\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), content && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner-content`\n }, content));\n};\nexport const RawPurePanel = props => {\n const {\n hashId,\n prefixCls,\n className,\n style,\n placement = 'top',\n title,\n content,\n children\n } = props;\n const titleNode = getRenderPropValue(title);\n const contentNode = getRenderPropValue(content);\n const cls = classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls\n }), children || /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: titleNode,\n content: contentNode\n })));\n};\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RawPurePanel, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n hashId: hashId,\n className: classNames(className, cssVarCls)\n })));\n};\nexport default PurePanel;","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\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\nmodule.exports = initCloneObject;\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nimport { AggregationColor } from './color';\nexport const generateColor = color => {\n if (color instanceof AggregationColor) {\n return color;\n }\n return new AggregationColor(color);\n};\nexport const getRoundNumber = value => Math.round(Number(value || 0));\nexport const getColorAlpha = color => getRoundNumber(color.toHsb().a * 100);\n/** Return the color whose `alpha` is 1 */\nexport const genAlphaColor = (color, alpha) => {\n const rgba = color.toRgb();\n // Color from hsb input may get `rgb` is (0/0/0) when `hsb.b` is 0\n // So if rgb is empty, we should get from hsb\n if (!rgba.r && !rgba.g && !rgba.b) {\n const hsba = color.toHsb();\n hsba.a = alpha || 1;\n return generateColor(hsba);\n }\n rgba.a = alpha || 1;\n return generateColor(rgba);\n};\n/**\n * Get percent position color. e.g. [10%-#fff, 20%-#000], 15% => #888\n */\nexport const getGradientPercentColor = (colors, percent) => {\n const filledColors = [{\n percent: 0,\n color: colors[0].color\n }].concat(_toConsumableArray(colors), [{\n percent: 100,\n color: colors[colors.length - 1].color\n }]);\n for (let i = 0; i < filledColors.length - 1; i += 1) {\n const startPtg = filledColors[i].percent;\n const endPtg = filledColors[i + 1].percent;\n const startColor = filledColors[i].color;\n const endColor = filledColors[i + 1].color;\n if (startPtg <= percent && percent <= endPtg) {\n const dist = endPtg - startPtg;\n if (dist === 0) {\n return startColor;\n }\n const ratio = (percent - startPtg) / dist * 100;\n const startRcColor = new RcColor(startColor);\n const endRcColor = new RcColor(endColor);\n return startRcColor.mix(endRcColor, ratio).toRgbString();\n }\n }\n // This will never reach\n /* istanbul ignore next */\n return '';\n};","module.exports = __webpack_public_path__ + \"953c932d71a79a72673405ec103b5739.js\";","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","export default __webpack_public_path__ + \"3706af12de4a9d8231414f2c9db499c5.svg\";","module.exports = __webpack_public_path__ + \"bfbf008c2d6aebaec1764670826893bb.js\";","module.exports = __webpack_public_path__ + \"078dd0bd08c93b1512e3d1b777591b21.js\";","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\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\nmodule.exports = debounce;\n","\"use client\";\n\nimport React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nconst rxTwoCNChar = /^[\\u4E00-\\u9FA5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type\n };\n}\nexport function isString(str) {\n return typeof str === 'string';\n}\nexport function isUnBorderedButtonVariant(type) {\n return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n if (child === null || child === undefined) {\n return;\n }\n const SPACE = needInserted ? ' ' : '';\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (isString(child)) {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nexport function spaceChildren(children, needInserted) {\n let isPrevChildPure = false;\n const childList = [];\n React.Children.forEach(children, child => {\n const type = typeof child;\n const isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n const lastIndex = childList.length - 1;\n const lastChild = childList[lastIndex];\n childList[lastIndex] = `${lastChild}${child}`;\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst _ButtonTypes = ['default', 'primary', 'dashed', 'link', 'text'];\nconst _ButtonShapes = ['default', 'circle', 'round'];\nconst _ButtonHTMLTypes = ['submit', 'button', 'reset'];\nexport const _ButtonVariantTypes = ['outlined', 'dashed', 'solid', 'filled', 'text', 'link'];\nexport const _ButtonColorTypes = ['default', 'primary', 'danger'];","module.exports = __webpack_public_path__ + \"91beb08737a1bbf071f351fb0acdbf3c.js\";","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _callSuper(t, o, e) {\n return o = getPrototypeOf(o), possibleConstructorReturn(t, isNativeReflectConstruct() ? Reflect.construct(o, e || [], getPrototypeOf(t).constructor) : o.apply(t, e));\n}\nexport { _callSuper as default };","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.video-player__loader{color:#fff !important}.video-player .player-controls-button{width:40px;height:30px}.video-player .seek-bar{width:100%;padding:44px 11px 11px}.video-player .live-button{font-weight:700;height:24px;color:var(--colorWhite);display:flex;pointer-events:none;align-items:center}.video-player .live-button-icon{height:auto !important;line-height:19px !important}.video-player .time-display{color:var(--colorWhite);line-height:19px;margin-left:11px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/containers/OpVideoPlayer/components/VideoPlayer.scss\"],\"names\":[],\"mappings\":\"AACE,sBACE,qBAAA,CAGF,sCACE,UAAA,CACA,WAAA,CAGF,wBACE,UAAA,CACA,sBAAA,CAGF,2BACE,eAAA,CACA,WAAA,CACA,uBAAA,CACA,YAAA,CACA,mBAAA,CACA,kBAAA,CAGF,gCACE,sBAAA,CACA,2BAAA,CAGF,4BACE,uBAAA,CACA,gBAAA,CACA,gBAAA\",\"sourcesContent\":[\".video-player {\\n &__loader {\\n color: white !important;\\n }\\n\\n .player-controls-button {\\n width: 40px;\\n height: 30px;\\n }\\n\\n .seek-bar {\\n width: 100%;\\n padding: 44px 11px 11px;\\n }\\n\\n .live-button {\\n font-weight: 700;\\n height: 24px;\\n color: var(--colorWhite);\\n display: flex;\\n pointer-events: none;\\n align-items: center;\\n }\\n\\n .live-button-icon {\\n height: auto !important;\\n line-height: 19px !important;\\n }\\n\\n .time-display {\\n color: var(--colorWhite);\\n line-height: 19px;\\n margin-left: 11px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","import { FastColor } from '@ant-design/fast-color';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = new FastColor(color);\n var hsv = pColor.toHsv();\n for (var i = lightColorCount; i > 0; i -= 1) {\n var c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _c = new FastColor({\n h: getHue(hsv, _i),\n s: getSaturation(hsv, _i),\n v: getValue(hsv, _i)\n });\n patterns.push(_c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref) {\n var index = _ref.index,\n amount = _ref.amount;\n return new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString();\n });\n }\n return patterns.map(function (c) {\n return c.toHexString();\n });\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n red: red,\n volcano: volcano,\n orange: orange,\n gold: gold,\n yellow: yellow,\n lime: lime,\n green: green,\n cyan: cyan,\n blue: blue,\n geekblue: geekblue,\n purple: purple,\n magenta: magenta,\n grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","module.exports = __webpack_public_path__ + \"81318a3530fb35d5178eb7a4a13a606f.js\";","module.exports = __webpack_public_path__ + \"cd9a17f94a922c7c88000b1b3cdd67df.js\";","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef, getNodeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? getNodeRef(mergedChildren) : null;\n var mergedRef = useComposeRef(originRef, elementRef);\n var getDom = function getDom() {\n var _elementRef$current;\n return findDOMNode(elementRef.current) || (\n // Support `nativeElement` format\n elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\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","module.exports = __webpack_public_path__ + \"fec23c6964d6cf25681d1f3e24b076a4.js\";","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","import { fromJS } from 'immutable';\nimport {\n SET_IS_EDITING,\n SET_FORM_VALUE,\n SET_NESTED_FORM_VALUE,\n SET_FORM_VALUES,\n SET_INITIAL_FORM_VALUES,\n SET_IS_LOADING,\n SET_FORM_VALIDATION,\n SET_FORM_ERROR_MESSAGE,\n DELETE_FORM_ERROR_MESSAGE,\n RESET_FORM_VALUES,\n} from './constants';\n\n// Initial forms state\nconst formsInitialState = fromJS({\n isEditing: false,\n});\n\nfunction formReducer(state = formsInitialState, action) {\n switch (action.type) {\n case SET_INITIAL_FORM_VALUES:\n return state\n .setIn(['initialValues'], fromJS(action.data))\n .setIn(['values'], fromJS(action.data));\n case SET_FORM_VALUE:\n return state.setIn(['values', action.key], fromJS(action.value));\n case SET_NESTED_FORM_VALUE:\n return state.setIn(['values', ...action.keys], fromJS(action.value));\n case SET_FORM_VALUES:\n return state.setIn(['values'], fromJS(action.data));\n case SET_IS_LOADING:\n return state.setIn(['isLoading'], action.value);\n case SET_FORM_VALIDATION:\n return state.setIn(['validation'], fromJS(action.data));\n case SET_FORM_ERROR_MESSAGE:\n return state.setIn(\n ['errorMessages', action.key],\n fromJS(action.errorMessage),\n );\n case DELETE_FORM_ERROR_MESSAGE:\n return state.deleteIn(['errorMessages', action.key]);\n case RESET_FORM_VALUES:\n return state.setIn(\n ['values'],\n fromJS(action.resetValues || state.getIn(['initialValues'])),\n );\n case SET_IS_EDITING:\n return state.setIn(['isEditing'], action.isEditing);\n default:\n return state;\n }\n}\n\nexport default formReducer;\n","module.exports = __webpack_public_path__ + \"c4c991b8f5eb242f1e220e5f568fdfbc.js\";","'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';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _LoadingOutlined = _interopRequireDefault(require('./lib/icons/LoadingOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _LoadingOutlined;\nexports.default = _default;\nmodule.exports = _default;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSpin.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpSpin.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport Spin from 'antd/es/spin';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\nimport clsx from 'clsx';\n\nimport './OpSpin.scss';\n\ninterface OpSpinProps extends ComponentProps<typeof Spin> {\n centered?: boolean;\n}\n\nexport const OpSpin = ({ className, centered, ...spinProps }: OpSpinProps) => {\n return (\n <Spin\n className={clsx('op-spin', className, { 'op-spin--centered': centered })}\n indicator={<LoadingOutlined />}\n size=\"large\"\n {...spinProps}\n />\n );\n};\n","module.exports = __webpack_public_path__ + \"b992b348ffb6453e4a02a60e71c5304e.js\";","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport clsx from 'classnames';\nimport React, { cloneElement, useRef } from 'react';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\nvar BaseInput = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _element$props, _element$props2;\n var inputEl = props.inputElement,\n children = props.children,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden,\n classes = props.classes,\n classNames = props.classNames,\n dataAttrs = props.dataAttrs,\n styles = props.styles,\n components = props.components,\n onClear = props.onClear;\n var inputElement = children !== null && children !== void 0 ? children : inputEl;\n var AffixWrapperComponent = (components === null || components === void 0 ? void 0 : components.affixWrapper) || 'span';\n var GroupWrapperComponent = (components === null || components === void 0 ? void 0 : components.groupWrapper) || 'span';\n var WrapperComponent = (components === null || components === void 0 ? void 0 : components.wrapper) || 'span';\n var GroupAddonComponent = (components === null || components === void 0 ? void 0 : components.groupAddon) || 'span';\n var containerRef = useRef(null);\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 || triggerFocus();\n }\n };\n var hasAffix = hasPrefixSuffix(props);\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n className: clsx(inputElement.props.className, !hasAffix && (classNames === null || classNames === void 0 ? void 0 : classNames.variant)) || null\n });\n\n // ======================== Ref ======================== //\n var groupRef = useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: groupRef.current || containerRef.current\n };\n });\n\n // ================== Prefix & Suffix ================== //\n if (hasAffix) {\n // ================== Clear Icon ================== //\n var clearIcon = null;\n if (allowClear) {\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n clearIcon = /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(event) {\n handleReset === null || handleReset === void 0 || handleReset(event);\n onClear === null || onClear === void 0 || onClear();\n }\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: clsx(clearIconCls, _defineProperty(_defineProperty({}, \"\".concat(clearIconCls, \"-hidden\"), !needClear), \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n }\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = clsx(affixWrapperPrefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), classes === null || classes === void 0 ? void 0 : classes.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.variant);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-suffix\"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),\n style: styles === null || styles === void 0 ? void 0 : styles.suffix\n }, clearIcon, suffix);\n element = /*#__PURE__*/React.createElement(AffixWrapperComponent, _extends({\n className: affixWrapperCls,\n style: styles === null || styles === void 0 ? void 0 : styles.affixWrapper,\n onClick: onInputClick\n }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {\n ref: containerRef\n }), prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-prefix\"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),\n style: styles === null || styles === void 0 ? void 0 : styles.prefix\n }, prefix), element, suffixNode);\n }\n\n // ================== Addon ================== //\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var groupWrapperCls = \"\".concat(wrapperCls, \"-wrapper\");\n var mergedWrapperClassName = clsx(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, classes === null || classes === void 0 ? void 0 : classes.wrapper, classNames === null || classNames === void 0 ? void 0 : classNames.wrapper);\n var mergedGroupClassName = clsx(groupWrapperCls, _defineProperty({}, \"\".concat(groupWrapperCls, \"-disabled\"), disabled), classes === null || classes === void 0 ? void 0 : classes.group, classNames === null || classNames === void 0 ? void 0 : classNames.groupWrapper);\n\n // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n element = /*#__PURE__*/React.createElement(GroupWrapperComponent, {\n className: mergedGroupClassName,\n ref: groupRef\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n className: addonCls\n }, addonBefore), element, addonAfter && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n className: addonCls\n }, addonAfter)));\n }\n\n // `className` and `style` are always on the root element\n return /*#__PURE__*/React.cloneElement(element, {\n className: clsx((_element$props = element.props) === null || _element$props === void 0 ? void 0 : _element$props.className, className) || null,\n style: _objectSpread(_objectSpread({}, (_element$props2 = element.props) === null || _element$props2 === void 0 ? void 0 : _element$props2.style), style),\n hidden: hidden\n });\n});\nexport default BaseInput;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"onKeyUp\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"count\", \"type\", \"classes\", \"classNames\", \"styles\", \"onCompositionStart\", \"onCompositionEnd\"];\nimport clsx from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport useCount from \"./hooks/useCount\";\nimport { resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var autoComplete = props.autoComplete,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPressEnter = props.onPressEnter,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n disabled = props.disabled,\n htmlSize = props.htmlSize,\n className = props.className,\n maxLength = props.maxLength,\n suffix = props.suffix,\n showCount = props.showCount,\n count = props.count,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n classes = props.classes,\n classNames = props.classNames,\n styles = props.styles,\n _onCompositionStart = props.onCompositionStart,\n onCompositionEnd = props.onCompositionEnd,\n rest = _objectWithoutProperties(props, _excluded);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n focused = _useState2[0],\n setFocused = _useState2[1];\n var compositionRef = useRef(false);\n var keyLockRef = useRef(false);\n var inputRef = useRef(null);\n var holderRef = useRef(null);\n var focus = function focus(option) {\n if (inputRef.current) {\n triggerFocus(inputRef.current, option);\n }\n };\n\n // ====================== Value =======================\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var formatValue = value === undefined || value === null ? '' : String(value);\n\n // =================== Select Range ===================\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selection = _useState4[0],\n setSelection = _useState4[1];\n\n // ====================== Count =======================\n var countConfig = useCount(count, showCount);\n var mergedMax = countConfig.max || maxLength;\n var valueLength = countConfig.strategy(formatValue);\n var isOutOfRange = !!mergedMax && valueLength > mergedMax;\n\n // ======================= Ref ========================\n useImperativeHandle(ref, function () {\n var _holderRef$current;\n return {\n focus: focus,\n blur: function blur() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.blur();\n },\n setSelectionRange: function setSelectionRange(start, end, direction) {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.setSelectionRange(start, end, direction);\n },\n select: function select() {\n var _inputRef$current3;\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 || _inputRef$current3.select();\n },\n input: inputRef.current,\n nativeElement: ((_holderRef$current = holderRef.current) === null || _holderRef$current === void 0 ? void 0 : _holderRef$current.nativeElement) || inputRef.current\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return prev && disabled ? false : prev;\n });\n }, [disabled]);\n var triggerChange = function triggerChange(e, currentValue, info) {\n var cutValue = currentValue;\n if (!compositionRef.current && countConfig.exceedFormatter && countConfig.max && countConfig.strategy(currentValue) > countConfig.max) {\n cutValue = countConfig.exceedFormatter(currentValue, {\n max: countConfig.max\n });\n if (currentValue !== cutValue) {\n var _inputRef$current4, _inputRef$current5;\n setSelection([((_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.selectionStart) || 0, ((_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.selectionEnd) || 0]);\n }\n } else if (info.source === 'compositionEnd') {\n // Avoid triggering twice\n // https://github.com/ant-design/ant-design/issues/46587\n return;\n }\n setValue(cutValue);\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange, cutValue);\n }\n };\n useEffect(function () {\n if (selection) {\n var _inputRef$current6;\n (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 || _inputRef$current6.setSelectionRange.apply(_inputRef$current6, _toConsumableArray(selection));\n }\n }, [selection]);\n var onInternalChange = function onInternalChange(e) {\n triggerChange(e, e.target.value, {\n source: 'change'\n });\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n compositionRef.current = false;\n triggerChange(e, e.currentTarget.value, {\n source: 'compositionEnd'\n });\n onCompositionEnd === null || onCompositionEnd === void 0 || onCompositionEnd(e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n if (onPressEnter && e.key === 'Enter' && !keyLockRef.current) {\n keyLockRef.current = true;\n onPressEnter(e);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n };\n var handleKeyUp = function handleKeyUp(e) {\n if (e.key === 'Enter') {\n keyLockRef.current = false;\n }\n onKeyUp === null || onKeyUp === void 0 || onKeyUp(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 || onBlur(e);\n };\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n // ====================== Input =======================\n var outOfRangeCls = isOutOfRange && \"\".concat(prefixCls, \"-out-of-range\");\n var getInputElement = function getInputElement() {\n // Fix https://fb.me/react-unknown-prop\n var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear',\n // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'showCount', 'count', 'classes', 'htmlSize', 'styles', 'classNames', 'onClear']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: autoComplete\n }, otherProps, {\n onChange: onInternalChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp,\n className: clsx(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), classNames === null || classNames === void 0 ? void 0 : classNames.input),\n style: styles === null || styles === void 0 ? void 0 : styles.input,\n ref: inputRef,\n size: htmlSize,\n type: type,\n onCompositionStart: function onCompositionStart(e) {\n compositionRef.current = true;\n _onCompositionStart === null || _onCompositionStart === void 0 || _onCompositionStart(e);\n },\n onCompositionEnd: onInternalCompositionEnd\n }));\n };\n var getSuffix = function getSuffix() {\n // Max length value\n var hasMaxLength = Number(mergedMax) > 0;\n if (suffix || countConfig.show) {\n var dataCount = countConfig.showFormatter ? countConfig.showFormatter({\n value: formatValue,\n count: valueLength,\n maxLength: mergedMax\n }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(mergedMax) : '');\n return /*#__PURE__*/React.createElement(React.Fragment, null, countConfig.show && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n style: _objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.count)\n }, dataCount), suffix);\n }\n return null;\n };\n\n // ====================== Render ======================\n return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n prefixCls: prefixCls,\n className: clsx(className, outOfRangeCls),\n handleReset: handleReset,\n value: formatValue,\n focused: focused,\n triggerFocus: focus,\n suffix: getSuffix(),\n disabled: disabled,\n classes: classes,\n classNames: classNames,\n styles: styles\n }), getInputElement());\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","module.exports = __webpack_public_path__ + \"be75b76e74c78535966ec8aaa7d46bec.js\";","module.exports = __webpack_public_path__ + \"7c488184a1ff274206e8af2c3aeeb2f6.js\";","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols 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 copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\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","module.exports = __webpack_public_path__ + \"65e7cf62ca9df32c18b630f31025a401.js\";","module.exports = __webpack_public_path__ + \"879d6bc1ca1dde95a9a98dc7a2ab0d06.js\";","module.exports = __webpack_public_path__ + \"6d38cef4a006e6cfe54a6117aba7b600.js\";","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genPresetColor, genStyleHooks, mergeToken } from '../../theme/internal';\nconst antStatusProcessing = new Keyframes('antStatusProcessing', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0.5\n },\n '100%': {\n transform: 'scale(2.4)',\n opacity: 0\n }\n});\nconst antZoomBadgeIn = new Keyframes('antZoomBadgeIn', {\n '0%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1) translate(50%, -50%)'\n }\n});\nconst antZoomBadgeOut = new Keyframes('antZoomBadgeOut', {\n '0%': {\n transform: 'scale(1) translate(50%, -50%)'\n },\n '100%': {\n transform: 'scale(0) translate(50%, -50%)',\n opacity: 0\n }\n});\nconst antNoWrapperZoomBadgeIn = new Keyframes('antNoWrapperZoomBadgeIn', {\n '0%': {\n transform: 'scale(0)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)'\n }\n});\nconst antNoWrapperZoomBadgeOut = new Keyframes('antNoWrapperZoomBadgeOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0)',\n opacity: 0\n }\n});\nconst antBadgeLoadingCircle = new Keyframes('antBadgeLoadingCircle', {\n '0%': {\n transformOrigin: '50%'\n },\n '100%': {\n transform: 'translate(50%, -50%) rotate(360deg)',\n transformOrigin: '50%'\n }\n});\nconst genSharedBadgeStyle = token => {\n const {\n componentCls,\n iconCls,\n antCls,\n badgeShadowSize,\n textFontSize,\n textFontSizeSM,\n statusSize,\n dotSize,\n textFontWeight,\n indicatorHeight,\n indicatorHeightSM,\n marginXS,\n calc\n } = token;\n const numberPrefixCls = `${antCls}-scroll-number`;\n const colorPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls} ${componentCls}-color-${colorKey}`]: {\n background: darkColor,\n [`&:not(${componentCls}-count)`]: {\n color: darkColor\n },\n 'a:hover &': {\n background: darkColor\n }\n }\n };\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n width: 'fit-content',\n lineHeight: 1,\n [`${componentCls}-count`]: {\n display: 'inline-flex',\n justifyContent: 'center',\n zIndex: token.indicatorZIndex,\n minWidth: indicatorHeight,\n height: indicatorHeight,\n color: token.badgeTextColor,\n fontWeight: textFontWeight,\n fontSize: textFontSize,\n lineHeight: unit(indicatorHeight),\n whiteSpace: 'nowrap',\n textAlign: 'center',\n background: token.badgeColor,\n borderRadius: calc(indicatorHeight).div(2).equal(),\n boxShadow: `0 0 0 ${unit(badgeShadowSize)} ${token.badgeShadowColor}`,\n transition: `background ${token.motionDurationMid}`,\n a: {\n color: token.badgeTextColor\n },\n 'a:hover': {\n color: token.badgeTextColor\n },\n 'a:hover &': {\n background: token.badgeColorHover\n }\n },\n [`${componentCls}-count-sm`]: {\n minWidth: indicatorHeightSM,\n height: indicatorHeightSM,\n fontSize: textFontSizeSM,\n lineHeight: unit(indicatorHeightSM),\n borderRadius: calc(indicatorHeightSM).div(2).equal()\n },\n [`${componentCls}-multiple-words`]: {\n padding: `0 ${unit(token.paddingXS)}`,\n bdi: {\n unicodeBidi: 'plaintext'\n }\n },\n [`${componentCls}-dot`]: {\n zIndex: token.indicatorZIndex,\n width: dotSize,\n minWidth: dotSize,\n height: dotSize,\n background: token.badgeColor,\n borderRadius: '100%',\n boxShadow: `0 0 0 ${unit(badgeShadowSize)} ${token.badgeShadowColor}`\n },\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n transform: 'translate(50%, -50%)',\n transformOrigin: '100% 0%',\n [`&${iconCls}-spin`]: {\n animationName: antBadgeLoadingCircle,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n }\n },\n [`&${componentCls}-status`]: {\n lineHeight: 'inherit',\n verticalAlign: 'baseline',\n [`${componentCls}-status-dot`]: {\n position: 'relative',\n top: -1,\n // Magic number, but seems better experience\n display: 'inline-block',\n width: statusSize,\n height: statusSize,\n verticalAlign: 'middle',\n borderRadius: '50%'\n },\n [`${componentCls}-status-success`]: {\n backgroundColor: token.colorSuccess\n },\n [`${componentCls}-status-processing`]: {\n overflow: 'visible',\n color: token.colorInfo,\n backgroundColor: token.colorInfo,\n borderColor: 'currentcolor',\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n borderWidth: badgeShadowSize,\n borderStyle: 'solid',\n borderColor: 'inherit',\n borderRadius: '50%',\n animationName: antStatusProcessing,\n animationDuration: token.badgeProcessingDuration,\n animationIterationCount: 'infinite',\n animationTimingFunction: 'ease-in-out',\n content: '\"\"'\n }\n },\n [`${componentCls}-status-default`]: {\n backgroundColor: token.colorTextPlaceholder\n },\n [`${componentCls}-status-error`]: {\n backgroundColor: token.colorError\n },\n [`${componentCls}-status-warning`]: {\n backgroundColor: token.colorWarning\n },\n [`${componentCls}-status-text`]: {\n marginInlineStart: marginXS,\n color: token.colorText,\n fontSize: token.fontSize\n }\n }\n }), colorPreset), {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack,\n animationFillMode: 'both'\n },\n [`&${componentCls}-not-a-wrapper`]: {\n [`${componentCls}-zoom-appear, ${componentCls}-zoom-enter`]: {\n animationName: antNoWrapperZoomBadgeIn,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`${componentCls}-zoom-leave`]: {\n animationName: antNoWrapperZoomBadgeOut,\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseOutBack\n },\n [`&:not(${componentCls}-status)`]: {\n verticalAlign: 'middle'\n },\n [`${numberPrefixCls}-custom-component, ${componentCls}-count`]: {\n transform: 'none'\n },\n [`${numberPrefixCls}-custom-component, ${numberPrefixCls}`]: {\n position: 'relative',\n top: 'auto',\n display: 'block',\n transformOrigin: '50% 50%'\n }\n },\n [numberPrefixCls]: {\n overflow: 'hidden',\n transition: `all ${token.motionDurationMid} ${token.motionEaseOutBack}`,\n [`${numberPrefixCls}-only`]: {\n position: 'relative',\n display: 'inline-block',\n height: indicatorHeight,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseOutBack}`,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden',\n [`> p${numberPrefixCls}-only-unit`]: {\n height: indicatorHeight,\n margin: 0,\n WebkitTransformStyle: 'preserve-3d',\n WebkitBackfaceVisibility: 'hidden'\n }\n },\n [`${numberPrefixCls}-symbol`]: {\n verticalAlign: 'top'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-count, ${componentCls}-dot, ${numberPrefixCls}-custom-component`]: {\n transform: 'translate(-50%, -50%)'\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const {\n fontHeight,\n lineWidth,\n marginXS,\n colorBorderBg\n } = token;\n const badgeFontHeight = fontHeight;\n const badgeShadowSize = lineWidth;\n const badgeTextColor = token.colorTextLightSolid;\n const badgeColor = token.colorError;\n const badgeColorHover = token.colorErrorHover;\n const badgeToken = mergeToken(token, {\n badgeFontHeight,\n badgeShadowSize,\n badgeTextColor,\n badgeColor,\n badgeColorHover,\n badgeShadowColor: colorBorderBg,\n badgeProcessingDuration: '1.2s',\n badgeRibbonOffset: marginXS,\n // Follow token just by Design. Not related with token\n badgeRibbonCornerTransform: 'scaleY(0.75)',\n badgeRibbonCornerFilter: `brightness(75%)`\n });\n return badgeToken;\n};\nexport const prepareComponentToken = token => {\n const {\n fontSize,\n lineHeight,\n fontSizeSM,\n lineWidth\n } = token;\n return {\n indicatorZIndex: 'auto',\n indicatorHeight: Math.round(fontSize * lineHeight) - 2 * lineWidth,\n indicatorHeightSM: fontSize,\n dotSize: fontSizeSM / 2,\n textFontSize: fontSizeSM,\n textFontSizeSM: fontSizeSM,\n textFontWeight: 'normal',\n statusSize: fontSizeSM / 2\n };\n};\nexport default genStyleHooks('Badge', token => {\n const badgeToken = prepareToken(token);\n return genSharedBadgeStyle(badgeToken);\n}, prepareComponentToken);","import { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { resetComponent } from '../../style';\nimport { genPresetColor, genStyleHooks } from '../../theme/internal';\n// ============================== Ribbon ==============================\nconst genRibbonStyle = token => {\n const {\n antCls,\n badgeFontHeight,\n marginXS,\n badgeRibbonOffset,\n calc\n } = token;\n const ribbonPrefixCls = `${antCls}-ribbon`;\n const ribbonWrapperPrefixCls = `${antCls}-ribbon-wrapper`;\n const statusRibbonPreset = genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${ribbonPrefixCls}-color-${colorKey}`]: {\n background: darkColor,\n color: darkColor\n }\n };\n });\n return {\n [ribbonWrapperPrefixCls]: {\n position: 'relative'\n },\n [ribbonPrefixCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: marginXS,\n padding: `0 ${unit(token.paddingXS)}`,\n color: token.colorPrimary,\n lineHeight: unit(badgeFontHeight),\n whiteSpace: 'nowrap',\n backgroundColor: token.colorPrimary,\n borderRadius: token.borderRadiusSM,\n [`${ribbonPrefixCls}-text`]: {\n color: token.badgeTextColor\n },\n [`${ribbonPrefixCls}-corner`]: {\n position: 'absolute',\n top: '100%',\n width: badgeRibbonOffset,\n height: badgeRibbonOffset,\n color: 'currentcolor',\n border: `${unit(calc(badgeRibbonOffset).div(2).equal())} solid`,\n transform: token.badgeRibbonCornerTransform,\n transformOrigin: 'top',\n filter: token.badgeRibbonCornerFilter\n }\n }), statusRibbonPreset), {\n [`&${ribbonPrefixCls}-placement-end`]: {\n insetInlineEnd: calc(badgeRibbonOffset).mul(-1).equal(),\n borderEndEndRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineEnd: 0,\n borderInlineEndColor: 'transparent',\n borderBlockEndColor: 'transparent'\n }\n },\n [`&${ribbonPrefixCls}-placement-start`]: {\n insetInlineStart: calc(badgeRibbonOffset).mul(-1).equal(),\n borderEndStartRadius: 0,\n [`${ribbonPrefixCls}-corner`]: {\n insetInlineStart: 0,\n borderBlockEndColor: 'transparent',\n borderInlineStartColor: 'transparent'\n }\n },\n // ====================== RTL =======================\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks(['Badge', 'Ribbon'], token => {\n const badgeToken = prepareToken(token);\n return genRibbonStyle(badgeToken);\n}, prepareComponentToken);","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nconst UnitNumber = props => {\n const {\n prefixCls,\n value,\n current,\n offset = 0\n } = props;\n let style;\n if (offset) {\n style = {\n position: 'absolute',\n top: `${offset}00%`,\n left: 0\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n style: style,\n className: classNames(`${prefixCls}-only-unit`, {\n current\n })\n }, value);\n};\nfunction getOffset(start, end, unit) {\n let index = start;\n let offset = 0;\n while ((index + 10) % 10 !== end) {\n index += unit;\n offset += unit;\n }\n return offset;\n}\nconst SingleNumber = props => {\n const {\n prefixCls,\n count: originCount,\n value: originValue\n } = props;\n const value = Number(originValue);\n const count = Math.abs(originCount);\n const [prevValue, setPrevValue] = React.useState(value);\n const [prevCount, setPrevCount] = React.useState(count);\n // ============================= Events =============================\n const onTransitionEnd = () => {\n setPrevValue(value);\n setPrevCount(count);\n };\n // Fallback if transition events are not supported\n React.useEffect(() => {\n const timer = setTimeout(onTransitionEnd, 1000);\n return () => clearTimeout(timer);\n }, [value]);\n // ============================= Render =============================\n // Render unit list\n let unitNodes;\n let offsetStyle;\n if (prevValue === value || Number.isNaN(value) || Number.isNaN(prevValue)) {\n // Nothing to change\n unitNodes = [/*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: value,\n current: true\n }))];\n offsetStyle = {\n transition: 'none'\n };\n } else {\n unitNodes = [];\n // Fill basic number units\n const end = value + 10;\n const unitNumberList = [];\n for (let index = value; index <= end; index += 1) {\n unitNumberList.push(index);\n }\n // Fill with number unit nodes\n const prevIndex = unitNumberList.findIndex(n => n % 10 === prevValue);\n unitNodes = unitNumberList.map((n, index) => {\n const singleUnit = n % 10;\n return /*#__PURE__*/React.createElement(UnitNumber, Object.assign({}, props, {\n key: n,\n value: singleUnit,\n offset: index - prevIndex,\n current: index === prevIndex\n }));\n });\n // Calculate container offset value\n const unit = prevCount < count ? 1 : -1;\n offsetStyle = {\n transform: `translateY(${-getOffset(prevValue, value, unit)}00%)`\n };\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-only`,\n style: offsetStyle,\n onTransitionEnd: onTransitionEnd\n }, unitNodes);\n};\nexport default SingleNumber;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport SingleNumber from './SingleNumber';\nconst ScrollNumber = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n count,\n className,\n motionClassName,\n style,\n title,\n show,\n component: Component = 'sup',\n children\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"count\", \"className\", \"motionClassName\", \"style\", \"title\", \"show\", \"component\", \"children\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('scroll-number', customizePrefixCls);\n // ============================ Render ============================\n const newProps = Object.assign(Object.assign({}, restProps), {\n 'data-show': show,\n style,\n className: classNames(prefixCls, className, motionClassName),\n title: title\n });\n // Only integer need motion\n let numberNodes = count;\n if (count && Number(count) % 1 === 0) {\n const numberList = String(count).split('');\n numberNodes = /*#__PURE__*/React.createElement(\"bdi\", null, numberList.map((num, i) => (/*#__PURE__*/React.createElement(SingleNumber, {\n prefixCls: prefixCls,\n count: Number(count),\n value: num,\n // eslint-disable-next-line react/no-array-index-key\n key: numberList.length - i\n }))));\n }\n // allow specify the border\n // mock border-color by box-shadow for compatible with old usage:\n // <Badge count={4} style={{ backgroundColor: '#fff', color: '#999', borderColor: '#d9d9d9' }} />\n if (style === null || style === void 0 ? void 0 : style.borderColor) {\n newProps.style = Object.assign(Object.assign({}, style), {\n boxShadow: `0 0 0 1px ${style.borderColor} inset`\n });\n }\n if (children) {\n return cloneElement(children, oriProps => ({\n className: classNames(`${prefixCls}-custom-component`, oriProps === null || oriProps === void 0 ? void 0 : oriProps.className, motionClassName)\n }));\n }\n return /*#__PURE__*/React.createElement(Component, Object.assign({}, newProps, {\n ref: ref\n }), numberNodes);\n});\nexport default ScrollNumber;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { isPresetColor } from '../_util/colors';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Ribbon from './Ribbon';\nimport ScrollNumber from './ScrollNumber';\nimport useStyle from './style';\nconst InternalBadge = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c, _d, _e;\n const {\n prefixCls: customizePrefixCls,\n scrollNumberPrefixCls: customizeScrollNumberPrefixCls,\n children,\n status,\n text,\n color,\n count = null,\n overflowCount = 99,\n dot = false,\n size = 'default',\n title,\n offset,\n style,\n className,\n rootClassName,\n classNames,\n styles,\n showZero = false\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"scrollNumberPrefixCls\", \"children\", \"status\", \"text\", \"color\", \"count\", \"overflowCount\", \"dot\", \"size\", \"title\", \"offset\", \"style\", \"className\", \"rootClassName\", \"classNames\", \"styles\", \"showZero\"]);\n const {\n getPrefixCls,\n direction,\n badge\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('badge', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // ================================ Misc ================================\n const numberedDisplayCount = count > overflowCount ? `${overflowCount}+` : count;\n const isZero = numberedDisplayCount === '0' || numberedDisplayCount === 0;\n const ignoreCount = count === null || isZero && !showZero;\n const hasStatus = (status !== null && status !== undefined || color !== null && color !== undefined) && ignoreCount;\n const showAsDot = dot && !isZero;\n const mergedCount = showAsDot ? '' : numberedDisplayCount;\n const isHidden = useMemo(() => {\n const isEmpty = mergedCount === null || mergedCount === undefined || mergedCount === '';\n return (isEmpty || isZero && !showZero) && !showAsDot;\n }, [mergedCount, isZero, showZero, showAsDot]);\n // Count should be cache in case hidden change it\n const countRef = useRef(count);\n if (!isHidden) {\n countRef.current = count;\n }\n const livingCount = countRef.current;\n // We need cache count since remove motion should not change count display\n const displayCountRef = useRef(mergedCount);\n if (!isHidden) {\n displayCountRef.current = mergedCount;\n }\n const displayCount = displayCountRef.current;\n // We will cache the dot status to avoid shaking on leaved motion\n const isDotRef = useRef(showAsDot);\n if (!isHidden) {\n isDotRef.current = showAsDot;\n }\n // =============================== Styles ===============================\n const mergedStyle = useMemo(() => {\n if (!offset) {\n return Object.assign(Object.assign({}, badge === null || badge === void 0 ? void 0 : badge.style), style);\n }\n const offsetStyle = {\n marginTop: offset[1]\n };\n if (direction === 'rtl') {\n offsetStyle.left = parseInt(offset[0], 10);\n } else {\n offsetStyle.right = -parseInt(offset[0], 10);\n }\n return Object.assign(Object.assign(Object.assign({}, offsetStyle), badge === null || badge === void 0 ? void 0 : badge.style), style);\n }, [direction, offset, style, badge === null || badge === void 0 ? void 0 : badge.style]);\n // =============================== Render ===============================\n // >>> Title\n const titleNode = title !== null && title !== void 0 ? title : typeof livingCount === 'string' || typeof livingCount === 'number' ? livingCount : undefined;\n // >>> Status Text\n const statusTextNode = isHidden || !text ? null : /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-status-text`\n }, text);\n // >>> Display Component\n const displayNode = !livingCount || typeof livingCount !== 'object' ? undefined : cloneElement(livingCount, oriProps => ({\n style: Object.assign(Object.assign({}, mergedStyle), oriProps.style)\n }));\n // InternalColor\n const isInternalColor = isPresetColor(color, false);\n // Shared styles\n const statusCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-status-dot`]: hasStatus,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n const statusStyle = {};\n if (color && !isInternalColor) {\n statusStyle.color = color;\n statusStyle.background = color;\n }\n const badgeClassName = classnames(prefixCls, {\n [`${prefixCls}-status`]: hasStatus,\n [`${prefixCls}-not-a-wrapper`]: !children,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, badge === null || badge === void 0 ? void 0 : badge.className, (_b = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _b === void 0 ? void 0 : _b.root, classNames === null || classNames === void 0 ? void 0 : classNames.root, hashId, cssVarCls);\n // <Badge status=\"success\" />\n if (!children && hasStatus) {\n const statusTextColor = mergedStyle.color;\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.root), (_c = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _c === void 0 ? void 0 : _c.root), mergedStyle)\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: statusCls,\n style: Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_d = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _d === void 0 ? void 0 : _d.indicator), statusStyle)\n }), text && (/*#__PURE__*/React.createElement(\"span\", {\n style: {\n color: statusTextColor\n },\n className: `${prefixCls}-status-text`\n }, text))));\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", Object.assign({\n ref: ref\n }, restProps, {\n className: badgeClassName,\n style: Object.assign(Object.assign({}, (_e = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _e === void 0 ? void 0 : _e.root), styles === null || styles === void 0 ? void 0 : styles.root)\n }), children, /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !isHidden,\n motionName: `${prefixCls}-zoom`,\n motionAppear: false,\n motionDeadline: 1000\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n var _a, _b;\n const scrollNumberPrefixCls = getPrefixCls('scroll-number', customizeScrollNumberPrefixCls);\n const isDot = isDotRef.current;\n const scrollNumberCls = classnames(classNames === null || classNames === void 0 ? void 0 : classNames.indicator, (_a = badge === null || badge === void 0 ? void 0 : badge.classNames) === null || _a === void 0 ? void 0 : _a.indicator, {\n [`${prefixCls}-dot`]: isDot,\n [`${prefixCls}-count`]: !isDot,\n [`${prefixCls}-count-sm`]: size === 'small',\n [`${prefixCls}-multiple-words`]: !isDot && displayCount && displayCount.toString().length > 1,\n [`${prefixCls}-status-${status}`]: !!status,\n [`${prefixCls}-color-${color}`]: isInternalColor\n });\n let scrollNumberStyle = Object.assign(Object.assign(Object.assign({}, styles === null || styles === void 0 ? void 0 : styles.indicator), (_b = badge === null || badge === void 0 ? void 0 : badge.styles) === null || _b === void 0 ? void 0 : _b.indicator), mergedStyle);\n if (color && !isInternalColor) {\n scrollNumberStyle = scrollNumberStyle || {};\n scrollNumberStyle.background = color;\n }\n return /*#__PURE__*/React.createElement(ScrollNumber, {\n prefixCls: scrollNumberPrefixCls,\n show: !isHidden,\n motionClassName: motionClassName,\n className: scrollNumberCls,\n count: displayCount,\n title: titleNode,\n style: scrollNumberStyle,\n key: \"scrollNumber\"\n }, displayNode);\n }), statusTextNode));\n});\nconst Badge = InternalBadge;\nBadge.Ribbon = Ribbon;\nif (process.env.NODE_ENV !== 'production') {\n Badge.displayName = 'Badge';\n}\nexport default Badge;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style/ribbon';\nconst Ribbon = props => {\n const {\n className,\n prefixCls: customizePrefixCls,\n style,\n color,\n children,\n text,\n placement = 'end',\n rootClassName\n } = props;\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('ribbon', customizePrefixCls);\n const wrapperCls = `${prefixCls}-wrapper`;\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, wrapperCls);\n const colorInPreset = isPresetColor(color, false);\n const ribbonCls = classNames(prefixCls, `${prefixCls}-placement-${placement}`, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-color-${color}`]: colorInPreset\n }, className);\n const colorStyle = {};\n const cornerColorStyle = {};\n if (color && !colorInPreset) {\n colorStyle.background = color;\n cornerColorStyle.color = color;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapperCls, rootClassName, hashId, cssVarCls)\n }, children, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(ribbonCls, hashId),\n style: Object.assign(Object.assign({}, colorStyle), style)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-text`\n }, text), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-corner`,\n style: cornerColorStyle\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ribbon.displayName = 'Ribbon';\n}\nexport default Ribbon;","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 _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ZoomOutOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomOutOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ZoomOutOutlined = function ZoomOutOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ZoomOutOutlinedSvg\n }));\n};\n\n/**![zoom-out](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ZoomOutOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ZoomOutOutlined';\n}\nexport default RefIcon;","import dayjs from 'dayjs';\nimport { noteOnce } from \"rc-util/es/warning\";\nimport weekday from 'dayjs/plugin/weekday';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n /* istanbul ignore next */\n noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\nvar generateConfig = {\n // get\n getNow: function getNow() {\n var now = dayjs();\n // https://github.com/ant-design/ant-design/discussions/50934\n if (typeof now.tz === 'function') {\n return now.tz(); // use default timezone\n }\n return now;\n },\n getFixedDate: function getFixedDate(string) {\n return dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n getMillisecond: function getMillisecond(date) {\n return date.millisecond();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n setMillisecond: function setMillisecond(date, milliseconds) {\n return date.millisecond(milliseconds);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n var date = dayjs(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n }\n }\n};\nexport default generateConfig;","/**\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","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","module.exports = __webpack_public_path__ + \"8eede17ae9e4d25c3c17b8a8a7fc3c3d.js\";","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCollapse from 'rc-collapse';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nconst CollapsePanel = /*#__PURE__*/React.forwardRef((props, ref) => {\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Collapse.Panel');\n warning.deprecated(!('disabled' in props), 'disabled', 'collapsible=\"disabled\"');\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showArrow = true\n } = props;\n const prefixCls = getPrefixCls('collapse', customizePrefixCls);\n const collapsePanelClassName = classNames({\n [`${prefixCls}-no-arrow`]: !showArrow\n }, className);\n return /*#__PURE__*/React.createElement(RcCollapse.Panel, Object.assign({\n ref: ref\n }, props, {\n prefixCls: prefixCls,\n className: collapsePanelClassName\n }));\n});\nexport default CollapsePanel;","module.exports = __webpack_public_path__ + \"fe9499c0a5444f7f42843fa00fb355cb.js\";","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","module.exports = __webpack_public_path__ + \"237d897892d45083fa60f6b81d5254ee.js\";","module.exports = __webpack_public_path__ + \"9827973b533de05b338533a0211d97d9.js\";","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","module.exports = __webpack_public_path__ + \"aacdaa55e7b7626a9b15f52be049079d.js\";","module.exports = __webpack_public_path__ + \"bb1365c0983ce5ad50060b24788b9630.js\";","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\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","module.exports = __webpack_public_path__ + \"e7f37e0f2b6113039c45a326264c4d36.js\";","module.exports = __webpack_public_path__ + \"3bf96f8eb1859e2724a4b769af3b5f1e.js\";","import { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\n\nlet errorsInstrumented = false;\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nfunction registerSpanErrorInstrumentation() {\n if (errorsInstrumented) {\n return;\n }\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active root span as failed\n */\nfunction errorCallback() {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const message = 'internal_error';\n DEBUG_BUILD && logger.log(`[Tracing] Root span: ${message} -> Global error occured`);\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n }\n}\n\n// The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n// node.js default exit behaviour\nerrorCallback.tag = 'sentry_tracingErrorCallback';\n\nexport { registerSpanErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","module.exports = __webpack_public_path__ + \"17632e1e19e438f431784dfd77e01773.js\";","/**\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\nexport default cacheHas;\n","import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\nvar useUnmount = function (fn) {\n var fnRef = useRef(fn);\n // update the ref each render so if it change the newest callback will be invoked\n fnRef.current = fn;\n useEffectOnce(function () { return function () { return fnRef.current(); }; });\n};\nexport default useUnmount;\n","function compactItemVerticalBorder(token, parentCls) {\n return {\n // border collapse\n [`&-item:not(${parentCls}-last-item)`]: {\n marginBottom: token.calc(token.lineWidth).mul(-1).equal()\n },\n '&-item': {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n }\n };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n borderRadius: 0\n },\n [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderEndEndRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0\n }\n }\n };\n}\nexport function genCompactItemVerticalStyle(token) {\n const compactCls = `${token.componentCls}-compact-vertical`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n };\n}","import { select } from 'redux-saga/effects';\nimport { selectOrgHasFeatureCode } from 'global/orgFeatures/selectors';\n\nexport function* isShowingSitePartitioningItemsSaga(): Generator<\n any,\n boolean,\n any\n> {\n const orgHasUserSitePartitioningFeature = yield select(\n selectOrgHasFeatureCode('userSitePartitioning'),\n );\n\n return Boolean(orgHasUserSitePartitioningFeature);\n}\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\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getTwoToneColor: function() {\n return getTwoToneColor;\n },\n setTwoToneColor: function() {\n return setTwoToneColor;\n }\n});\nvar _IconBase = /*#__PURE__*/ _interop_require_default(require(\"./IconBase\"));\nvar _utils = require(\"../utils\");\nfunction _array_like_to_array(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 _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nfunction setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColors = _sliced_to_array((0, _utils.normalizeTwoToneColors)(twoToneColor), 2), primaryColor = _normalizeTwoToneColors[0], secondaryColor = _normalizeTwoToneColors[1];\n return _IconBase.default.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nfunction getTwoToneColor() {\n var colors = _IconBase.default.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [\n colors.primaryColor,\n colors.secondaryColor\n ];\n}\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * 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\nmodule.exports = hashGet;\n","import { getClient, getCurrentScope, captureFeedback, getIsolationScope, getGlobalScope } from '@sentry/core';\nimport { GLOBAL_OBJ, getLocationHref, isBrowser, logger } from '@sentry/utils';\n\n// exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`\n// prevents the browser package from being bundled in the CDN bundle, and avoids a\n// circular dependency between the browser and feedback packages\nconst WINDOW = GLOBAL_OBJ ;\nconst DOCUMENT = WINDOW.document;\nconst NAVIGATOR = WINDOW.navigator;\n\nconst TRIGGER_LABEL = 'Report a Bug';\nconst CANCEL_BUTTON_LABEL = 'Cancel';\nconst SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nconst CONFIRM_BUTTON_LABEL = 'Confirm';\nconst FORM_TITLE = 'Report a Bug';\nconst EMAIL_PLACEHOLDER = 'your.email@example.org';\nconst EMAIL_LABEL = 'Email';\nconst MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nconst MESSAGE_LABEL = 'Description';\nconst NAME_PLACEHOLDER = 'Your Name';\nconst NAME_LABEL = 'Name';\nconst SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nconst IS_REQUIRED_LABEL = '(required)';\nconst ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nconst REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\n\nconst FEEDBACK_WIDGET_SOURCE = 'widget';\nconst FEEDBACK_API_SOURCE = 'api';\n\nconst SUCCESS_MESSAGE_TIMEOUT = 5000;\n\n/**\n * Public API to send a Feedback item to Sentry\n */\nconst sendFeedback = (\n params,\n hint = { includeReplay: true },\n) => {\n if (!params.message) {\n throw new Error('Unable to submit feedback with empty message');\n }\n\n // We want to wait for the feedback to be sent (or not)\n const client = getClient();\n\n if (!client) {\n throw new Error('No client setup, cannot send feedback.');\n }\n\n if (params.tags && Object.keys(params.tags).length) {\n getCurrentScope().setTags(params.tags);\n }\n const eventId = captureFeedback(\n {\n source: FEEDBACK_API_SOURCE,\n url: getLocationHref(),\n ...params,\n },\n hint,\n );\n\n // We want to wait for the feedback to be sent (or not)\n return new Promise((resolve, reject) => {\n // After 5s, we want to clear anyhow\n const timeout = setTimeout(() => reject('Unable to determine if Feedback was correctly sent.'), 5000);\n\n const cleanup = client.on('afterSendEvent', (event, response) => {\n if (event.event_id !== eventId) {\n return;\n }\n\n clearTimeout(timeout);\n cleanup();\n\n // Require valid status codes, otherwise can assume feedback was not sent successfully\n if (\n response &&\n typeof response.statusCode === 'number' &&\n response.statusCode >= 200 &&\n response.statusCode < 300\n ) {\n resolve(eventId);\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 0) {\n return reject(\n 'Unable to send Feedback. This is because of network issues, or because you are using an ad-blocker.',\n );\n }\n\n if (response && typeof response.statusCode === 'number' && response.statusCode === 403) {\n return reject(\n 'Unable to send Feedback. This could be because this domain is not in your list of allowed domains.',\n );\n }\n\n return reject(\n 'Unable to send Feedback. This could be because of network issues, or because you are using an ad-blocker',\n );\n });\n });\n};\n\n/*\n * For reference, the fully built event looks something like this:\n * {\n * \"type\": \"feedback\",\n * \"event_id\": \"d2132d31b39445f1938d7e21b6bf0ec4\",\n * \"timestamp\": 1597977777.6189718,\n * \"dist\": \"1.12\",\n * \"platform\": \"javascript\",\n * \"environment\": \"production\",\n * \"release\": 42,\n * \"tags\": {\"transaction\": \"/organizations/:orgId/performance/:eventSlug/\"},\n * \"sdk\": {\"name\": \"name\", \"version\": \"version\"},\n * \"user\": {\n * \"id\": \"123\",\n * \"username\": \"user\",\n * \"email\": \"user@site.com\",\n * \"ip_address\": \"192.168.11.12\",\n * },\n * \"request\": {\n * \"url\": None,\n * \"headers\": {\n * \"user-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15\"\n * },\n * },\n * \"contexts\": {\n * \"feedback\": {\n * \"message\": \"test message\",\n * \"contact_email\": \"test@example.com\",\n * \"type\": \"feedback\",\n * },\n * \"trace\": {\n * \"trace_id\": \"4C79F60C11214EB38604F4AE0781BFB2\",\n * \"span_id\": \"FA90FDEAD5F74052\",\n * \"type\": \"trace\",\n * },\n * \"replay\": {\n * \"replay_id\": \"e2d42047b1c5431c8cba85ee2a8ab25d\",\n * },\n * },\n * }\n */\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\n/**\n * Mobile browsers do not support `mediaDevices.getDisplayMedia` even though they have the api implemented\n * Instead they return things like `NotAllowedError` when called.\n *\n * It's simpler for us to browser sniff first, and avoid loading the integration if we can.\n *\n * https://stackoverflow.com/a/58879212\n * https://stackoverflow.com/a/3540295\n *\n * `mediaDevices.getDisplayMedia` is also only supported in secure contexts, and return a `mediaDevices is not supported` error, so we should also avoid loading the integration if we can.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia\n */\nfunction isScreenshotSupported() {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(NAVIGATOR.userAgent)) {\n return false;\n }\n /**\n * User agent on iPads show as Macintosh, so we need extra checks\n *\n * https://forums.developer.apple.com/forums/thread/119186\n * https://stackoverflow.com/questions/60482650/how-to-detect-ipad-useragent-on-safari-browser\n */\n if (/Macintosh/i.test(NAVIGATOR.userAgent) && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 1) {\n return false;\n }\n if (!isSecureContext) {\n return false;\n }\n return true;\n}\n\n/**\n * Quick and dirty deep merge for the Feedback integration options\n */\nfunction mergeOptions(\n defaultOptions,\n optionOverrides,\n) {\n return {\n ...defaultOptions,\n ...optionOverrides,\n tags: {\n ...defaultOptions.tags,\n ...optionOverrides.tags,\n },\n onFormOpen: () => {\n optionOverrides.onFormOpen && optionOverrides.onFormOpen();\n defaultOptions.onFormOpen && defaultOptions.onFormOpen();\n },\n onFormClose: () => {\n optionOverrides.onFormClose && optionOverrides.onFormClose();\n defaultOptions.onFormClose && defaultOptions.onFormClose();\n },\n onSubmitSuccess: (data) => {\n optionOverrides.onSubmitSuccess && optionOverrides.onSubmitSuccess(data);\n defaultOptions.onSubmitSuccess && defaultOptions.onSubmitSuccess(data);\n },\n onSubmitError: (error) => {\n optionOverrides.onSubmitError && optionOverrides.onSubmitError(error);\n defaultOptions.onSubmitError && defaultOptions.onSubmitError(error);\n },\n onFormSubmitted: () => {\n optionOverrides.onFormSubmitted && optionOverrides.onFormSubmitted();\n defaultOptions.onFormSubmitted && defaultOptions.onFormSubmitted();\n },\n themeDark: {\n ...defaultOptions.themeDark,\n ...optionOverrides.themeDark,\n },\n themeLight: {\n ...defaultOptions.themeLight,\n ...optionOverrides.themeLight,\n },\n };\n}\n\n/**\n * Creates <style> element for widget actor (button that opens the dialog)\n */\nfunction createActorStyles(styleNonce) {\n const style = DOCUMENT.createElement('style');\n style.textContent = `\n.widget__actor {\n position: fixed;\n z-index: var(--z-index);\n margin: var(--page-margin);\n inset: var(--actor-inset);\n\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n line-height: 1.14em;\n text-decoration: none;\n\n background: var(--actor-background, var(--background));\n border-radius: var(--actor-border-radius, 1.7em/50%);\n border: var(--actor-border, var(--border));\n box-shadow: var(--actor-box-shadow, var(--box-shadow));\n color: var(--actor-color, var(--foreground));\n fill: var(--actor-color, var(--foreground));\n cursor: pointer;\n opacity: 1;\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n.widget__actor[aria-hidden=\"true\"] {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n transform: translate(0, 16px) scale(0.98);\n}\n\n.widget__actor:hover {\n background: var(--actor-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n\n.widget__actor svg {\n width: 1.14em;\n height: 1.14em;\n}\n\n@media (max-width: 600px) {\n .widget__actor span {\n display: none;\n }\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n\n/**\n * Helper function to set a dict of attributes on element (w/ specified namespace)\n */\nfunction setAttributesNS(el, attributes) {\n Object.entries(attributes).forEach(([key, val]) => {\n el.setAttributeNS(null, key, val);\n });\n return el;\n}\n\nconst SIZE = 20;\nconst XMLNS$2 = 'http://www.w3.org/2000/svg';\n\n/**\n * Feedback Icon\n */\nfunction FeedbackIcon() {\n const createElementNS = (tagName) =>\n WINDOW.document.createElementNS(XMLNS$2, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: `${SIZE}`,\n height: `${SIZE}`,\n viewBox: `0 0 ${SIZE} ${SIZE}`,\n fill: 'var(--actor-color, var(--foreground))',\n });\n\n const g = setAttributesNS(createElementNS('g'), {\n clipPath: 'url(#clip0_57_80)',\n });\n\n const path = setAttributesNS(createElementNS('path'), {\n ['fill-rule']: 'evenodd',\n ['clip-rule']: 'evenodd',\n d: 'M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z',\n });\n svg.appendChild(g).appendChild(path);\n\n const speakerDefs = createElementNS('defs');\n const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n id: 'clip0_57_80',\n });\n\n const speakerRect = setAttributesNS(createElementNS('rect'), {\n width: `${SIZE}`,\n height: `${SIZE}`,\n fill: 'white',\n });\n\n speakerClipPathDef.appendChild(speakerRect);\n speakerDefs.appendChild(speakerClipPathDef);\n\n svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n return svg;\n}\n\n/**\n * The sentry-provided button to open the feedback modal\n */\nfunction Actor({ triggerLabel, triggerAriaLabel, shadow, styleNonce }) {\n const el = DOCUMENT.createElement('button');\n el.type = 'button';\n el.className = 'widget__actor';\n el.ariaHidden = 'false';\n el.ariaLabel = triggerAriaLabel || triggerLabel || TRIGGER_LABEL;\n el.appendChild(FeedbackIcon());\n if (triggerLabel) {\n const label = DOCUMENT.createElement('span');\n label.appendChild(DOCUMENT.createTextNode(triggerLabel));\n el.appendChild(label);\n }\n\n const style = createActorStyles(styleNonce);\n\n return {\n el,\n appendToDom() {\n shadow.appendChild(style);\n shadow.appendChild(el);\n },\n removeFromDom() {\n shadow.removeChild(el);\n shadow.removeChild(style);\n },\n show() {\n el.ariaHidden = 'false';\n },\n hide() {\n el.ariaHidden = 'true';\n },\n };\n}\n\nconst PURPLE = 'rgba(88, 74, 192, 1)';\n\nconst DEFAULT_LIGHT = {\n foreground: '#2b2233',\n background: '#ffffff',\n accentForeground: 'white',\n accentBackground: PURPLE,\n successColor: '#268d75',\n errorColor: '#df3338',\n border: '1.5px solid rgba(41, 35, 47, 0.13)',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n outline: '1px auto var(--accent-background)',\n interactiveFilter: 'brightness(95%)',\n};\nconst DEFAULT_DARK = {\n foreground: '#ebe6ef',\n background: '#29232f',\n accentForeground: 'white',\n accentBackground: PURPLE,\n successColor: '#2da98c',\n errorColor: '#f55459',\n border: '1.5px solid rgba(235, 230, 239, 0.15)',\n boxShadow: '0px 4px 24px 0px rgba(43, 34, 51, 0.12)',\n outline: '1px auto var(--accent-background)',\n interactiveFilter: 'brightness(150%)',\n};\n\nfunction getThemedCssVariables(theme) {\n return `\n --foreground: ${theme.foreground};\n --background: ${theme.background};\n --accent-foreground: ${theme.accentForeground};\n --accent-background: ${theme.accentBackground};\n --success-color: ${theme.successColor};\n --error-color: ${theme.errorColor};\n --border: ${theme.border};\n --box-shadow: ${theme.boxShadow};\n --outline: ${theme.outline};\n --interactive-filter: ${theme.interactiveFilter};\n `;\n}\n\n/**\n * Creates <style> element for widget actor (button that opens the dialog)\n */\nfunction createMainStyles({\n colorScheme,\n themeDark,\n themeLight,\n styleNonce,\n}) {\n const style = DOCUMENT.createElement('style');\n style.textContent = `\n:host {\n --font-family: system-ui, 'Helvetica Neue', Arial, sans-serif;\n --font-size: 14px;\n --z-index: 100000;\n\n --page-margin: 16px;\n --inset: auto 0 0 auto;\n --actor-inset: var(--inset);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${colorScheme !== 'system' ? 'color-scheme: only light;' : ''}\n\n ${getThemedCssVariables(\n colorScheme === 'dark' ? { ...DEFAULT_DARK, ...themeDark } : { ...DEFAULT_LIGHT, ...themeLight },\n )}\n}\n\n${\n colorScheme === 'system'\n ? `\n@media (prefers-color-scheme: dark) {\n :host {\n ${getThemedCssVariables({ ...DEFAULT_DARK, ...themeDark })}\n }\n}`\n : ''\n}\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n\nconst buildFeedbackIntegration = ({\n lazyLoadIntegration,\n getModalIntegration,\n getScreenshotIntegration,\n}\n\n) => {\n const feedbackIntegration = (({\n // FeedbackGeneralConfiguration\n id = 'sentry-feedback',\n autoInject = true,\n showBranding = true,\n isEmailRequired = false,\n isNameRequired = false,\n showEmail = true,\n showName = true,\n enableScreenshot = true,\n useSentryUser = {\n email: 'email',\n name: 'username',\n },\n tags,\n styleNonce,\n scriptNonce,\n\n // FeedbackThemeConfiguration\n colorScheme = 'system',\n themeLight = {},\n themeDark = {},\n\n // FeedbackTextConfiguration\n addScreenshotButtonLabel = ADD_SCREENSHOT_LABEL,\n cancelButtonLabel = CANCEL_BUTTON_LABEL,\n confirmButtonLabel = CONFIRM_BUTTON_LABEL,\n emailLabel = EMAIL_LABEL,\n emailPlaceholder = EMAIL_PLACEHOLDER,\n formTitle = FORM_TITLE,\n isRequiredLabel = IS_REQUIRED_LABEL,\n messageLabel = MESSAGE_LABEL,\n messagePlaceholder = MESSAGE_PLACEHOLDER,\n nameLabel = NAME_LABEL,\n namePlaceholder = NAME_PLACEHOLDER,\n removeScreenshotButtonLabel = REMOVE_SCREENSHOT_LABEL,\n submitButtonLabel = SUBMIT_BUTTON_LABEL,\n successMessageText = SUCCESS_MESSAGE_TEXT,\n triggerLabel = TRIGGER_LABEL,\n triggerAriaLabel = '',\n\n // FeedbackCallbacks\n onFormOpen,\n onFormClose,\n onSubmitSuccess,\n onSubmitError,\n onFormSubmitted,\n } = {}) => {\n const _options = {\n id,\n autoInject,\n showBranding,\n isEmailRequired,\n isNameRequired,\n showEmail,\n showName,\n enableScreenshot,\n useSentryUser,\n tags,\n styleNonce,\n scriptNonce,\n\n colorScheme,\n themeDark,\n themeLight,\n\n triggerLabel,\n triggerAriaLabel,\n cancelButtonLabel,\n submitButtonLabel,\n confirmButtonLabel,\n formTitle,\n emailLabel,\n emailPlaceholder,\n messageLabel,\n messagePlaceholder,\n nameLabel,\n namePlaceholder,\n successMessageText,\n isRequiredLabel,\n addScreenshotButtonLabel,\n removeScreenshotButtonLabel,\n\n onFormClose,\n onFormOpen,\n onSubmitError,\n onSubmitSuccess,\n onFormSubmitted,\n };\n\n let _shadow = null;\n let _subscriptions = [];\n\n /**\n * Get the shadow root where we will append css\n */\n const _createShadow = (options) => {\n if (!_shadow) {\n const host = DOCUMENT.createElement('div');\n host.id = String(options.id);\n DOCUMENT.body.appendChild(host);\n\n _shadow = host.attachShadow({ mode: 'open' });\n _shadow.appendChild(createMainStyles(options));\n }\n return _shadow ;\n };\n\n const _findIntegration = async (\n integrationName,\n getter,\n functionMethodName,\n ) => {\n const client = getClient();\n const existing = client && client.getIntegrationByName(integrationName);\n if (existing) {\n return existing ;\n }\n const integrationFn = (getter && getter()) || (await lazyLoadIntegration(functionMethodName, scriptNonce));\n const integration = integrationFn();\n client && client.addIntegration(integration);\n return integration ;\n };\n\n const _loadAndRenderDialog = async (\n options,\n ) => {\n const screenshotRequired = options.enableScreenshot && isScreenshotSupported();\n const [modalIntegration, screenshotIntegration] = await Promise.all([\n _findIntegration('FeedbackModal', getModalIntegration, 'feedbackModalIntegration'),\n screenshotRequired\n ? _findIntegration(\n 'FeedbackScreenshot',\n getScreenshotIntegration,\n 'feedbackScreenshotIntegration',\n )\n : undefined,\n ]);\n if (!modalIntegration) {\n // TODO: Let the end-user retry async loading\n DEBUG_BUILD &&\n logger.error(\n '[Feedback] Missing feedback modal integration. Try using `feedbackSyncIntegration` in your `Sentry.init`.',\n );\n throw new Error('[Feedback] Missing feedback modal integration!');\n }\n if (screenshotRequired && !screenshotIntegration) {\n DEBUG_BUILD &&\n logger.error('[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.');\n }\n\n const dialog = modalIntegration.createDialog({\n options: {\n ...options,\n onFormClose: () => {\n dialog && dialog.close();\n options.onFormClose && options.onFormClose();\n },\n onFormSubmitted: () => {\n dialog && dialog.close();\n options.onFormSubmitted && options.onFormSubmitted();\n },\n },\n screenshotIntegration: screenshotRequired ? screenshotIntegration : undefined,\n sendFeedback,\n shadow: _createShadow(options),\n });\n\n return dialog;\n };\n\n const _attachTo = (el, optionOverrides = {}) => {\n const mergedOptions = mergeOptions(_options, optionOverrides);\n\n const targetEl =\n typeof el === 'string' ? DOCUMENT.querySelector(el) : typeof el.addEventListener === 'function' ? el : null;\n\n if (!targetEl) {\n DEBUG_BUILD && logger.error('[Feedback] Unable to attach to target element');\n throw new Error('Unable to attach to target element');\n }\n\n let dialog = null;\n const handleClick = async () => {\n if (!dialog) {\n dialog = await _loadAndRenderDialog({\n ...mergedOptions,\n onFormSubmitted: () => {\n dialog && dialog.removeFromDom();\n mergedOptions.onFormSubmitted && mergedOptions.onFormSubmitted();\n },\n });\n }\n dialog.appendToDom();\n dialog.open();\n };\n targetEl.addEventListener('click', handleClick);\n const unsubscribe = () => {\n _subscriptions = _subscriptions.filter(sub => sub !== unsubscribe);\n dialog && dialog.removeFromDom();\n dialog = null;\n targetEl.removeEventListener('click', handleClick);\n };\n _subscriptions.push(unsubscribe);\n return unsubscribe;\n };\n\n const _createActor = (optionOverrides = {}) => {\n const mergedOptions = mergeOptions(_options, optionOverrides);\n const shadow = _createShadow(mergedOptions);\n const actor = Actor({\n triggerLabel: mergedOptions.triggerLabel,\n triggerAriaLabel: mergedOptions.triggerAriaLabel,\n shadow,\n styleNonce,\n });\n _attachTo(actor.el, {\n ...mergedOptions,\n onFormOpen() {\n actor.hide();\n },\n onFormClose() {\n actor.show();\n },\n onFormSubmitted() {\n actor.show();\n },\n });\n return actor;\n };\n\n return {\n name: 'Feedback',\n setupOnce() {\n if (!isBrowser() || !_options.autoInject) {\n return;\n }\n\n if (DOCUMENT.readyState === 'loading') {\n DOCUMENT.addEventListener('DOMContentLoaded', () => _createActor().appendToDom());\n } else {\n _createActor().appendToDom();\n }\n },\n\n /**\n * Adds click listener to the element to open a feedback dialog\n *\n * The returned function can be used to remove the click listener\n */\n attachTo: _attachTo,\n\n /**\n * Creates a new widget which is composed of a Button which triggers a Dialog.\n * Accepts partial options to override any options passed to constructor.\n */\n createWidget(optionOverrides = {}) {\n const actor = _createActor(mergeOptions(_options, optionOverrides));\n actor.appendToDom();\n return actor;\n },\n\n /**\n * Creates a new Form which you can\n * Accepts partial options to override any options passed to constructor.\n */\n async createForm(\n optionOverrides = {},\n ) {\n return _loadAndRenderDialog(mergeOptions(_options, optionOverrides));\n },\n\n /**\n * Removes the Feedback integration (including host, shadow DOM, and all widgets)\n */\n remove() {\n if (_shadow) {\n _shadow.parentElement && _shadow.parentElement.remove();\n _shadow = null;\n }\n // Remove any lingering subscriptions\n _subscriptions.forEach(sub => sub());\n _subscriptions = [];\n },\n };\n }) ;\n\n return feedbackIntegration;\n};\n\n/**\n * This is a small utility to get a type-safe instance of the Feedback integration.\n */\nfunction getFeedback() {\n const client = getClient();\n return client && client.getIntegrationByName('Feedback');\n}\n\nvar n,l$1,u$1,i$1,o$1,r$1,f$1,c$1={},s$1=[],a$1=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,h$1=Array.isArray;function v$1(n,l){for(var u in l)n[u]=l[u];return n}function p$1(n){var l=n.parentNode;l&&l.removeChild(n);}function y$1(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return d$1(l,f,i,o,null)}function d$1(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u$1:r,__i:-1,__u:0};return null==r&&null!=l$1.vnode&&l$1.vnode(f),f}function g$1(n){return n.children}function b$1(n,l){this.props=n,this.context=l;}function m$1(n,l){if(null==l)return n.__?m$1(n.__,n.__i+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?m$1(n):null}function w$1(n,u,t){var i,o=n.__v,r=o.__e,f=n.__P;if(f)return (i=v$1({},o)).__v=o.__v+1,l$1.vnode&&l$1.vnode(i),M(f,i,o,n.__n,void 0!==f.ownerSVGElement,32&o.__u?[r]:null,u,null==r?m$1(o):r,!!(32&o.__u),t),i.__.__k[i.__i]=i,i.__d=void 0,i.__e!=r&&k$1(i),i}function k$1(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 k$1(n)}}function x$1(n){(!n.__d&&(n.__d=!0)&&i$1.push(n)&&!C$1.__r++||o$1!==l$1.debounceRendering)&&((o$1=l$1.debounceRendering)||r$1)(C$1);}function C$1(){var n,u,t,o=[],r=[];for(i$1.sort(f$1);n=i$1.shift();)n.__d&&(t=i$1.length,u=w$1(n,o,r)||u,0===t||i$1.length>t?(j$1(o,u,r),r.length=o.length=0,u=void 0,i$1.sort(f$1)):u&&l$1.__c&&l$1.__c(u,s$1));u&&j$1(o,u,r),C$1.__r=0;}function P$1(n,l,u,t,i,o,r,f,e,a,h){var v,p,y,d,_,g=t&&t.__k||s$1,b=l.length;for(u.__d=e,S(u,l,g),e=u.__d,v=0;v<b;v++)null!=(y=u.__k[v])&&\"boolean\"!=typeof y&&\"function\"!=typeof y&&(p=-1===y.__i?c$1:g[y.__i]||c$1,y.__i=v,M(n,y,p,i,o,r,f,e,a,h),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),h.push(y.ref,y.__c||d,y)),null==_&&null!=d&&(_=d),65536&y.__u||p.__k===y.__k?e=$(y,e,n):\"function\"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=_;}function S(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=n.__k[t]=null==(i=l[t])||\"boolean\"==typeof i||\"function\"==typeof i?null:\"string\"==typeof i||\"number\"==typeof i||\"bigint\"==typeof i||i.constructor==String?d$1(null,i,null,null,i):h$1(i)?d$1(g$1,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?d$1(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=I(i,u,r=t+a,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:a=f<r&&f==r-1?f-r:0,f!==t+a&&(i.__u|=65536))):(o=u[t])&&null==o.key&&o.__e&&(o.__e==n.__d&&(n.__d=m$1(o)),O(o,o,!1),u[t]=null,s--);if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=m$1(o)),O(o,o));}function $(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=$(t[i],l,u));return l}n.__e!=l&&(u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling;}while(null!=l&&8===l.nodeType);return l}function I(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type)return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--;}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++;}}return -1}function T$1(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a$1.test(l)?u:u+\"px\";}function A$1(n,l,u,t,i){var o;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else {if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T$1(n.style,l,\"\");if(u)for(l in u)t&&u[l]===t[l]||T$1(n.style,l,u[l]);}else if(\"o\"===l[0]&&\"n\"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,\"$1\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=Date.now(),n.addEventListener(l,o?L:D$1,o)):n.removeEventListener(l,o?L:D$1,o);else {if(i)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&&\"rowSpan\"!==l&&\"colSpan\"!==l&&\"role\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!==l[4]?n.removeAttribute(l):n.setAttribute(l,u));}}function D$1(n){if(this.l){var u=this.l[n.type+!1];if(n.t){if(n.t<=u.u)return}else n.t=Date.now();return u(l$1.event?l$1.event(n):n)}}function L(n){if(this.l)return this.l[n.type+!0](l$1.event?l$1.event(n):n)}function M(n,u,t,i,o,r,f,e,c,s){var a,p,y,d,_,m,w,k,x,C,S,$,H,I,T,A=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l$1.__b)&&a(u);n:if(\"function\"==typeof A)try{if(k=u.props,x=(a=A.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?w=(p=u.__c=t.__c).__=p.__E:(\"prototype\"in A&&A.prototype.render?u.__c=p=new A(k,C):(u.__c=p=new b$1(k,C),p.constructor=A,p.render=q$1),x&&x.sub(p),p.props=k,p.state||(p.state={}),p.context=C,p.__n=i,y=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=A.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=v$1({},p.__s)),v$1(p.__s,A.getDerivedStateFromProps(k,p.__s))),d=p.props,_=p.state,p.__v=u,y)null==A.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else {if(null==A.getDerivedStateFromProps&&k!==d&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,C),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,C)||u.__v===t.__v)){for(u.__v!==t.__v&&(p.props=k,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.forEach(function(n){n&&(n.__=u);}),S=0;S<p._sb.length;S++)p.__h.push(p._sb[S]);p._sb=[],p.__h.length&&f.push(p);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,C),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(d,_,m);});}if(p.context=C,p.props=k,p.__P=n,p.__e=!1,$=l$1.__r,H=0,\"prototype\"in A&&A.prototype.render){for(p.state=p.__s,p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),I=0;I<p._sb.length;I++)p.__h.push(p._sb[I]);p._sb=[];}else do{p.__d=!1,$&&$(u),a=p.render(p.props,p.state,p.context),p.state=p.__s;}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=v$1(v$1({},i),p.getChildContext())),y||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(d,_)),P$1(n,h$1(T=null!=a&&a.type===g$1&&null==a.key?a.props.children:a)?T:[T],u,t,i,o,r,f,e,c,s),p.base=u.__e,u.__u&=-161,p.__h.length&&f.push(p),w&&(p.__E=p.__=null);}catch(n){u.__v=null,c||null!=r?(u.__e=e,u.__u|=c?160:32,r[r.indexOf(e)]=null):(u.__e=t.__e,u.__k=t.__k),l$1.__e(n,u,t);}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z$1(t.__e,u,t,i,o,r,f,c,s);(a=l$1.diffed)&&a(u);}function j$1(n,u,t){for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l$1.__c&&l$1.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u);});}catch(n){l$1.__e(n,u.__v);}});}function z$1(l,u,t,i,o,r,f,e,s){var a,v,y,d,_,g,b,w=t.props,k=u.props,x=u.type;if(\"svg\"===x&&(o=!0),null!=r)for(a=0;a<r.length;a++)if((_=r[a])&&\"setAttribute\"in _==!!x&&(x?_.localName===x:3===_.nodeType)){l=_,r[a]=null;break}if(null==l){if(null===x)return document.createTextNode(k);l=o?document.createElementNS(\"http://www.w3.org/2000/svg\",x):document.createElement(x,k.is&&k),r=null,e=!1;}if(null===x)w===k||e&&l.data===k||(l.data=k);else {if(r=r&&n.call(l.childNodes),w=t.props||c$1,!e&&null!=r)for(w={},a=0;a<l.attributes.length;a++)w[(_=l.attributes[a]).name]=_.value;for(a in w)_=w[a],\"children\"==a||(\"dangerouslySetInnerHTML\"==a?y=_:\"key\"===a||a in k||A$1(l,a,null,_,o));for(a in k)_=k[a],\"children\"==a?d=_:\"dangerouslySetInnerHTML\"==a?v=_:\"value\"==a?g=_:\"checked\"==a?b=_:\"key\"===a||e&&\"function\"!=typeof _||w[a]===_||A$1(l,a,_,w[a],o);if(v)e||y&&(v.__html===y.__html||v.__html===l.innerHTML)||(l.innerHTML=v.__html),u.__k=[];else if(y&&(l.innerHTML=\"\"),P$1(l,h$1(d)?d:[d],u,t,i,o&&\"foreignObject\"!==x,r,f,r?r[0]:t.__k&&m$1(t,0),e,s),null!=r)for(a=r.length;a--;)null!=r[a]&&p$1(r[a]);e||(a=\"value\",void 0!==g&&(g!==l[a]||\"progress\"===x&&!g||\"option\"===x&&g!==w[a])&&A$1(l,a,g,w[a],!1),a=\"checked\",void 0!==b&&b!==l[a]&&A$1(l,a,b,w[a],!1));}return l}function N(n,u,t){try{\"function\"==typeof n?n(u):n.current=u;}catch(n){l$1.__e(n,t);}}function O(n,u,t){var i,o;if(l$1.unmount&&l$1.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount();}catch(n){l$1.__e(n,u);}i.base=i.__P=null,n.__c=void 0;}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&O(i[o],u,t||\"function\"!=typeof n.type);t||null==n.__e||p$1(n.__e),n.__=n.__e=n.__d=void 0;}function q$1(n,l,u){return this.constructor(n,u)}function B$1(u,t,i){var o,r,f,e;l$1.__&&l$1.__(u,t),r=(o=\"function\"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],M(t,u=(!o&&i||t).__k=y$1(g$1,null,[u]),r||c$1,c$1,void 0!==t.ownerSVGElement,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),u.__d=void 0,j$1(f,u,e);}n=s$1.slice,l$1={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l;}throw n}},u$1=0,b$1.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v$1({},this.state),\"function\"==typeof n&&(n=n(v$1({},u),this.props)),n&&v$1(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),x$1(this));},b$1.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),x$1(this));},b$1.prototype.render=g$1,i$1=[],r$1=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f$1=function(n,l){return n.__v.__b-l.__v.__b},C$1.__r=0;\n\nvar t,r,u,i,o=0,f=[],c=[],e=l$1,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(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)){var f=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 !c||c.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)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u;}e&&e.call(this,n,t,r);},r.shouldComponentUpdate=f;}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i));}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i));}function F(n){return o=5,q(function(){return {current:n}},[])}function T(n,t,r){o=6,A(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 q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.useDebugValue(t?t(n):n);}function b(n){var u=h(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 g(){var n=h(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 j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[];}catch(t){n.__H.__h=[],e.__e(t,n.__v);}}e.__b=function(n){r=null,a&&a(n);},e.__=function(n,t){t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t);},e.__r=function(n){v&&v(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(z),i.__h.forEach(B),i.__h=[],t=0)),u=r;},e.diffed=function(n){l&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__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;},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return !n.__||B(n)});}catch(r){t.some(function(n){n.__h&&(n.__h=[]);}),t=[],e.__e(r,n.__v);}}),m&&m(n,t);},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n);}catch(n){t=n;}}),r.__H=void 0,t&&e.__e(t,r.__v));};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n);},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r));}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t;}function B(n){var t=r;n.__c=n.__(),r=t;}function C(n,t){return !n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return \"function\"==typeof t?t(n):t}\n\nconst hooks = {\n __proto__: null,\n useCallback: x,\n useContext: P,\n useDebugValue: V,\n useEffect: _,\n useErrorBoundary: b,\n useId: g,\n useImperativeHandle: T,\n useLayoutEffect: A,\n useMemo: q,\n useReducer: y,\n useRef: F,\n useState: p\n};\n\nconst XMLNS$1 = 'http://www.w3.org/2000/svg';\n\n/**\n * Sentry Logo\n */\nfunction SentryLogo() {\n const createElementNS = (tagName) =>\n DOCUMENT.createElementNS(XMLNS$1, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: '32',\n height: '30',\n viewBox: '0 0 72 66',\n fill: 'inherit',\n });\n\n const path = setAttributesNS(createElementNS('path'), {\n transform: 'translate(11, 11)',\n d: 'M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z',\n });\n svg.appendChild(path);\n\n return svg;\n}\n\nconst _jsxFileName$5 = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/modal/components/DialogHeader.tsx\";\n\nfunction DialogHeader({ options }) {\n const logoHtml = q(() => ({ __html: SentryLogo().outerHTML }), []);\n\n return (\n y$1('h2', { class: \"dialog__header\", __self: this, __source: {fileName: _jsxFileName$5, lineNumber: 16}}\n , options.formTitle\n , options.showBranding ? (\n y$1('a', {\n class: \"brand-link\",\n target: \"_blank\",\n href: \"https://sentry.io/welcome/\",\n title: \"Powered by Sentry\" ,\n rel: \"noopener noreferrer\" ,\n dangerouslySetInnerHTML: logoHtml, __self: this, __source: {fileName: _jsxFileName$5, lineNumber: 19}}\n )\n ) : null\n )\n );\n}\n\n/**\n * Validate that a given feedback submission has the required fields\n */\nfunction getMissingFields(feedback, props) {\n const emptyFields = [];\n if (props.isNameRequired && !feedback.name) {\n emptyFields.push(props.nameLabel);\n }\n if (props.isEmailRequired && !feedback.email) {\n emptyFields.push(props.emailLabel);\n }\n if (!feedback.message) {\n emptyFields.push(props.messageLabel);\n }\n\n return emptyFields;\n}\n\nconst _jsxFileName$4 = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/modal/components/Form.tsx\";\n\nfunction retrieveStringValue(formData, key) {\n const value = formData.get(key);\n if (typeof value === 'string') {\n return value.trim();\n }\n return '';\n}\n\nfunction Form({\n options,\n defaultEmail,\n defaultName,\n\n onFormClose,\n onSubmit,\n onSubmitSuccess,\n onSubmitError,\n showEmail,\n showName,\n screenshotInput,\n}) {\n const {\n tags,\n addScreenshotButtonLabel,\n removeScreenshotButtonLabel,\n cancelButtonLabel,\n emailLabel,\n emailPlaceholder,\n isEmailRequired,\n isNameRequired,\n messageLabel,\n messagePlaceholder,\n nameLabel,\n namePlaceholder,\n submitButtonLabel,\n isRequiredLabel,\n } = options;\n // TODO: set a ref on the form, and whenever an input changes call proceessForm() and setError()\n const [error, setError] = p(null);\n\n const [showScreenshotInput, setShowScreenshotInput] = p(false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ScreenshotInputComponent = screenshotInput && screenshotInput.input;\n\n const [screenshotError, setScreenshotError] = p(null);\n const onScreenshotError = x((error) => {\n setScreenshotError(error);\n setShowScreenshotInput(false);\n }, []);\n\n const hasAllRequiredFields = x(\n (data) => {\n const missingFields = getMissingFields(data, {\n emailLabel,\n isEmailRequired,\n isNameRequired,\n messageLabel,\n nameLabel,\n });\n\n if (missingFields.length > 0) {\n setError(`Please enter in the following required fields: ${missingFields.join(', ')}`);\n } else {\n setError(null);\n }\n\n return missingFields.length === 0;\n },\n [emailLabel, isEmailRequired, isNameRequired, messageLabel, nameLabel],\n );\n\n const handleSubmit = x(\n async (e) => {\n try {\n e.preventDefault();\n if (!(e.target instanceof HTMLFormElement)) {\n return;\n }\n const formData = new FormData(e.target);\n const attachment = await (screenshotInput && showScreenshotInput ? screenshotInput.value() : undefined);\n\n const data = {\n name: retrieveStringValue(formData, 'name'),\n email: retrieveStringValue(formData, 'email'),\n message: retrieveStringValue(formData, 'message'),\n attachments: attachment ? [attachment] : undefined,\n };\n\n if (!hasAllRequiredFields(data)) {\n return;\n }\n\n try {\n await onSubmit(\n {\n name: data.name,\n email: data.email,\n message: data.message,\n source: FEEDBACK_WIDGET_SOURCE,\n tags,\n },\n { attachments: data.attachments },\n );\n onSubmitSuccess(data);\n } catch (error) {\n DEBUG_BUILD && logger.error(error);\n setError(error );\n onSubmitError(error );\n }\n } catch (e2) {\n // pass\n }\n },\n [screenshotInput && showScreenshotInput, onSubmitSuccess, onSubmitError],\n );\n\n return (\n y$1('form', { class: \"form\", onSubmit: handleSubmit, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 144}}\n , ScreenshotInputComponent && showScreenshotInput ? (\n y$1(ScreenshotInputComponent, { onError: onScreenshotError, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 146}} )\n ) : null\n\n , y$1('div', { class: \"form__right\", 'data-sentry-feedback': true, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 149}}\n , y$1('div', { class: \"form__top\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 150}}\n , error ? y$1('div', { class: \"form__error-container\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 151}}, error) : null\n\n , showName ? (\n y$1('label', { for: \"name\", class: \"form__label\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 154}}\n , y$1(LabelText, { label: nameLabel, isRequiredLabel: isRequiredLabel, isRequired: isNameRequired, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 155}} )\n , y$1('input', {\n class: \"form__input\",\n defaultValue: defaultName,\n id: \"name\",\n name: \"name\",\n placeholder: namePlaceholder,\n required: isNameRequired,\n type: \"text\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 156}}\n )\n )\n ) : (\n y$1('input', { 'aria-hidden': true, value: defaultName, name: \"name\", type: \"hidden\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 167}} )\n )\n\n , showEmail ? (\n y$1('label', { for: \"email\", class: \"form__label\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 171}}\n , y$1(LabelText, { label: emailLabel, isRequiredLabel: isRequiredLabel, isRequired: isEmailRequired, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 172}} )\n , y$1('input', {\n class: \"form__input\",\n defaultValue: defaultEmail,\n id: \"email\",\n name: \"email\",\n placeholder: emailPlaceholder,\n required: isEmailRequired,\n type: \"email\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 173}}\n)\n )\n ) : (\n y$1('input', { 'aria-hidden': true, value: defaultEmail, name: \"email\", type: \"hidden\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 184}} )\n )\n\n , y$1('label', { for: \"message\", class: \"form__label\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 187}}\n , y$1(LabelText, { label: messageLabel, isRequiredLabel: isRequiredLabel, isRequired: true, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 188}} )\n , y$1('textarea', {\n autoFocus: true,\n class: \"form__input form__input--textarea\" ,\n id: \"message\",\n name: \"message\",\n placeholder: messagePlaceholder,\n required: true,\n rows: 5, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 189}}\n )\n )\n\n , ScreenshotInputComponent ? (\n y$1('label', { for: \"screenshot\", class: \"form__label\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 201}}\n , y$1('button', {\n class: \"btn btn--default\" ,\n type: \"button\",\n onClick: () => {\n setScreenshotError(null);\n setShowScreenshotInput(prev => !prev);\n }, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 202}}\n\n , showScreenshotInput ? removeScreenshotButtonLabel : addScreenshotButtonLabel\n )\n , screenshotError ? y$1('div', { class: \"form__error-container\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 212}}, screenshotError.message) : null\n )\n ) : null\n )\n , y$1('div', { class: \"btn-group\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 216}}\n , y$1('button', { class: \"btn btn--primary\" , type: \"submit\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 217}}\n , submitButtonLabel\n )\n , y$1('button', { class: \"btn btn--default\" , type: \"button\", onClick: onFormClose, __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 220}}\n , cancelButtonLabel\n )\n )\n )\n )\n );\n}\n\nfunction LabelText({\n label,\n isRequired,\n isRequiredLabel,\n}\n\n) {\n return (\n y$1('span', { class: \"form__label__text\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 239}}\n , label\n , isRequired && y$1('span', { class: \"form__label__text--required\", __self: this, __source: {fileName: _jsxFileName$4, lineNumber: 241}}, isRequiredLabel)\n )\n );\n}\n\nconst WIDTH = 16;\nconst HEIGHT = 17;\nconst XMLNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Success Icon (checkmark)\n */\nfunction SuccessIcon() {\n const createElementNS = (tagName) =>\n WINDOW.document.createElementNS(XMLNS, tagName);\n const svg = setAttributesNS(createElementNS('svg'), {\n width: `${WIDTH}`,\n height: `${HEIGHT}`,\n viewBox: `0 0 ${WIDTH} ${HEIGHT}`,\n fill: 'inherit',\n });\n\n const g = setAttributesNS(createElementNS('g'), {\n clipPath: 'url(#clip0_57_156)',\n });\n\n const path2 = setAttributesNS(createElementNS('path'), {\n ['fill-rule']: 'evenodd',\n ['clip-rule']: 'evenodd',\n d: 'M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z',\n });\n const path = setAttributesNS(createElementNS('path'), {\n d: 'M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z',\n });\n\n svg.appendChild(g).append(path, path2);\n\n const speakerDefs = createElementNS('defs');\n const speakerClipPathDef = setAttributesNS(createElementNS('clipPath'), {\n id: 'clip0_57_156',\n });\n\n const speakerRect = setAttributesNS(createElementNS('rect'), {\n width: `${WIDTH}`,\n height: `${WIDTH}`,\n fill: 'white',\n transform: 'translate(0 0.5)',\n });\n\n speakerClipPathDef.appendChild(speakerRect);\n speakerDefs.appendChild(speakerClipPathDef);\n\n svg.appendChild(speakerDefs).appendChild(speakerClipPathDef).appendChild(speakerRect);\n\n return svg;\n}\n\nconst _jsxFileName$3 = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/modal/components/Dialog.tsx\";\n\nfunction Dialog({ open, onFormSubmitted, ...props }) {\n const options = props.options;\n const successIconHtml = q(() => ({ __html: SuccessIcon().outerHTML }), []);\n\n const [timeoutId, setTimeoutId] = p(null);\n\n const handleOnSuccessClick = x(() => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n setTimeoutId(null);\n }\n onFormSubmitted();\n }, [timeoutId]);\n\n const onSubmitSuccess = x(\n (data) => {\n props.onSubmitSuccess(data);\n setTimeoutId(\n setTimeout(() => {\n onFormSubmitted();\n setTimeoutId(null);\n }, SUCCESS_MESSAGE_TIMEOUT),\n );\n },\n [onFormSubmitted],\n );\n\n return (\n y$1(g$1, {__self: this, __source: {fileName: _jsxFileName$3, lineNumber: 48}}\n , timeoutId ? (\n y$1('div', { class: \"success__position\", onClick: handleOnSuccessClick, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 50}}\n , y$1('div', { class: \"success__content\", __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 51}}\n , options.successMessageText\n , y$1('span', { class: \"success__icon\", dangerouslySetInnerHTML: successIconHtml, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 53}} )\n )\n )\n ) : (\n y$1('dialog', { class: \"dialog\", onClick: options.onFormClose, open: open, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 57}}\n , y$1('div', { class: \"dialog__position\", __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 58}}\n , y$1('div', {\n class: \"dialog__content\",\n onClick: e => {\n // Stop event propagation so clicks on content modal do not propagate to dialog (which will close dialog)\n e.stopPropagation();\n }, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 59}}\n\n , y$1(DialogHeader, { options: options, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 66}} )\n , y$1(Form, { ...props, onSubmitSuccess: onSubmitSuccess, __self: this, __source: {fileName: _jsxFileName$3, lineNumber: 67}} )\n )\n )\n )\n )\n )\n );\n}\n\nconst DIALOG = `\n.dialog {\n position: fixed;\n z-index: var(--z-index);\n margin: 0;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n height: 100vh;\n width: 100vw;\n\n color: var(--dialog-color, var(--foreground));\n fill: var(--dialog-color, var(--foreground));\n line-height: 1.75em;\n\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n inset: 0;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog__position {\n position: fixed;\n z-index: var(--z-index);\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n display: flex;\n max-height: calc(100vh - (2 * var(--page-margin)));\n}\n@media (max-width: 600px) {\n .dialog__position {\n inset: var(--page-margin);\n padding: 0;\n }\n}\n\n.dialog__position:has(.editor) {\n inset: var(--page-margin);\n padding: 0;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: var(--dialog-padding, 24px);\n max-width: 100%;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n\n background: var(--dialog-background, var(--background));\n border-radius: var(--dialog-border-radius, 20px);\n border: var(--dialog-border, var(--border));\n box-shadow: var(--dialog-box-shadow, var(--box-shadow));\n transform: translate(0, 0) scale(1);\n transition: transform 0.2s ease-in-out;\n}\n`;\n\nconst DIALOG_HEADER = `\n.dialog__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-weight: var(--dialog-header-weight, 600);\n margin: 0;\n}\n\n.brand-link {\n display: inline-flex;\n}\n.brand-link:focus-visible {\n outline: var(--outline);\n}\n`;\n\nconst FORM = `\n.form {\n display: flex;\n overflow: auto;\n flex-direction: row;\n gap: 16px;\n flex: 1 0;\n}\n\n.form__right {\n flex: 0 0 auto;\n width: var(--form-width, 272px);\n display: flex;\n overflow: auto;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n}\n\n@media (max-width: 600px) {\n .form__right {\n width: var(--form-width, 100%);\n }\n}\n\n.form__top {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form__error-container {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n font-family: inherit;\n line-height: inherit;\n background: transparent;\n box-sizing: border-box;\n border: var(--input-border, var(--border));\n border-radius: var(--input-border-radius, 6px);\n color: var(--input-color, inherit);\n fill: var(--input-color, inherit);\n font-size: var(--input-font-size, inherit);\n font-weight: var(--input-font-weight, 500);\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n opacity: 0.65;\n color: var(--input-placeholder-color, inherit);\n filter: var(--interactive-filter);\n}\n\n.form__input:focus-visible {\n outline: var(--input-focus-outline, var(--outline));\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.error {\n color: var(--error-color);\n fill: var(--error-color);\n}\n`;\n\nconst BUTTON = `\n.btn-group {\n display: grid;\n gap: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--button-font-size, inherit);\n font-weight: var(--button-font-weight, 600);\n padding: var(--button-padding, 6px 16px);\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n color: var(--button-primary-color, var(--accent-foreground));\n fill: var(--button-primary-color, var(--accent-foreground));\n background: var(--button-primary-background, var(--accent-background));\n border: var(--button-primary-border, var(--border));\n border-radius: var(--button-primary-border-radius, 6px);\n font-weight: var(--button-primary-font-weight, 500);\n}\n.btn--primary:hover {\n color: var(--button-primary-hover-color, var(--accent-foreground));\n fill: var(--button-primary-hover-color, var(--accent-foreground));\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n}\n.btn--primary:focus-visible {\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n outline: var(--button-primary-focus-outline, var(--outline));\n}\n\n.btn--default {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-background, var(--background));\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n font-weight: var(--button-font-weight, 500);\n}\n.btn--default:hover {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n.btn--default:focus-visible {\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n outline: var(--button-focus-outline, var(--outline));\n}\n`;\n\nconst SUCCESS = `\n.success__position {\n position: fixed;\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n z-index: var(--z-index);\n}\n.success__content {\n background: var(--success-background, var(--background));\n border: var(--success-border, var(--border));\n border-radius: var(--success-border-radius, 1.7em/50%);\n box-shadow: var(--success-box-shadow, var(--box-shadow));\n font-weight: var(--success-font-weight, 600);\n color: var(--success-color);\n fill: var(--success-color);\n padding: 12px 24px;\n line-height: 1.75em;\n\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success__icon {\n display: flex;\n}\n`;\n\n/**\n * Creates <style> element for widget dialog\n */\nfunction createDialogStyles(styleNonce) {\n const style = DOCUMENT.createElement('style');\n\n style.textContent = `\n:host {\n --dialog-inset: var(--inset);\n}\n\n${DIALOG}\n${DIALOG_HEADER}\n${FORM}\n${BUTTON}\n${SUCCESS}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n\nconst _jsxFileName$2 = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/modal/integration.tsx\";\nfunction getUser() {\n const currentUser = getCurrentScope().getUser();\n const isolationUser = getIsolationScope().getUser();\n const globalUser = getGlobalScope().getUser();\n if (currentUser && Object.keys(currentUser).length) {\n return currentUser;\n }\n if (isolationUser && Object.keys(isolationUser).length) {\n return isolationUser;\n }\n return globalUser;\n}\n\nconst feedbackModalIntegration = (() => {\n return {\n name: 'FeedbackModal',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setupOnce() {},\n createDialog: ({ options, screenshotIntegration, sendFeedback, shadow }) => {\n const shadowRoot = shadow ;\n const userKey = options.useSentryUser;\n const user = getUser();\n\n const el = DOCUMENT.createElement('div');\n const style = createDialogStyles(options.styleNonce);\n\n let originalOverflow = '';\n const dialog = {\n get el() {\n return el;\n },\n appendToDom() {\n if (!shadowRoot.contains(style) && !shadowRoot.contains(el)) {\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(el);\n }\n },\n removeFromDom() {\n shadowRoot.removeChild(el);\n shadowRoot.removeChild(style);\n DOCUMENT.body.style.overflow = originalOverflow;\n },\n open() {\n renderContent(true);\n options.onFormOpen && options.onFormOpen();\n originalOverflow = DOCUMENT.body.style.overflow;\n DOCUMENT.body.style.overflow = 'hidden';\n },\n close() {\n renderContent(false);\n DOCUMENT.body.style.overflow = originalOverflow;\n },\n };\n\n const screenshotInput = screenshotIntegration && screenshotIntegration.createInput({ h: y$1, hooks, dialog, options });\n\n const renderContent = (open) => {\n B$1(\n y$1(Dialog, {\n options: options,\n screenshotInput: screenshotInput,\n showName: options.showName || options.isNameRequired,\n showEmail: options.showEmail || options.isEmailRequired,\n defaultName: (userKey && user && user[userKey.name]) || '',\n defaultEmail: (userKey && user && user[userKey.email]) || '',\n onFormClose: () => {\n renderContent(false);\n options.onFormClose && options.onFormClose();\n },\n onSubmit: sendFeedback,\n onSubmitSuccess: (data) => {\n renderContent(false);\n options.onSubmitSuccess && options.onSubmitSuccess(data);\n },\n onSubmitError: (error) => {\n options.onSubmitError && options.onSubmitError(error);\n },\n onFormSubmitted: () => {\n options.onFormSubmitted && options.onFormSubmitted();\n },\n open: open, __self: undefined, __source: {fileName: _jsxFileName$2, lineNumber: 67}}\n ),\n el,\n );\n };\n\n return dialog;\n },\n };\n}) ;\n\nconst _jsxFileName$1 = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/screenshot/components/CropCorner.tsx\";\n\nfunction CropCornerFactory({\n h, // eslint-disable-line @typescript-eslint/no-unused-vars\n}) {\n return function CropCorner({\n top,\n left,\n corner,\n onGrabButton,\n }\n\n) {\n return (\n h('button', {\n class: `editor__crop-corner editor__crop-corner--${corner} `,\n style: {\n top: top,\n left: left,\n },\n onMouseDown: e => {\n e.preventDefault();\n onGrabButton(e, corner);\n },\n onClick: e => {\n e.preventDefault();\n }, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 22}}\n)\n );\n };\n}\n\n/**\n * Creates <style> element for widget dialog\n */\nfunction createScreenshotInputStyles(styleNonce) {\n const style = DOCUMENT.createElement('style');\n\n const surface200 = '#1A141F';\n const gray100 = '#302735';\n\n style.textContent = `\n.editor {\n padding: 10px;\n padding-top: 65px;\n padding-bottom: 65px;\n flex-grow: 1;\n\n background-color: ${surface200};\n background-image: repeating-linear-gradient(\n -145deg,\n transparent,\n transparent 8px,\n ${surface200} 8px,\n ${surface200} 11px\n ),\n repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 15px,\n ${gray100} 15px,\n ${gray100} 16px\n );\n}\n\n.editor__canvas-container {\n width: 100%;\n height: 100%;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.editor__canvas-container canvas {\n object-fit: contain;\n position: relative;\n}\n\n.editor__crop-btn-group {\n padding: 8px;\n gap: 8px;\n border-radius: var(--menu-border-radius, 6px);\n background: var(--button-primary-background, var(--background));\n width: 175px;\n position: absolute;\n}\n\n.editor__crop-corner {\n width: 30px;\n height: 30px;\n position: absolute;\n background: none;\n border: 3px solid #ffffff;\n}\n\n.editor__crop-corner--top-left {\n cursor: nwse-resize;\n border-right: none;\n border-bottom: none;\n}\n.editor__crop-corner--top-right {\n cursor: nesw-resize;\n border-left: none;\n border-bottom: none;\n}\n.editor__crop-corner--bottom-left {\n cursor: nesw-resize;\n border-right: none;\n border-top: none;\n}\n.editor__crop-corner--bottom-right {\n cursor: nwse-resize;\n border-left: none;\n border-top: none;\n}\n`;\n\n if (styleNonce) {\n style.setAttribute('nonce', styleNonce);\n }\n\n return style;\n}\n\nfunction useTakeScreenshotFactory({ hooks }) {\n return function useTakeScreenshot({ onBeforeScreenshot, onScreenshot, onAfterScreenshot, onError }) {\n hooks.useEffect(() => {\n const takeScreenshot = async () => {\n onBeforeScreenshot();\n const stream = await NAVIGATOR.mediaDevices.getDisplayMedia({\n video: {\n width: WINDOW.innerWidth * WINDOW.devicePixelRatio,\n height: WINDOW.innerHeight * WINDOW.devicePixelRatio,\n },\n audio: false,\n // @ts-expect-error experimental flags: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab\n monitorTypeSurfaces: 'exclude',\n preferCurrentTab: true,\n selfBrowserSurface: 'include',\n surfaceSwitching: 'exclude',\n });\n\n const video = DOCUMENT.createElement('video');\n await new Promise((resolve, reject) => {\n video.srcObject = stream;\n video.onloadedmetadata = () => {\n onScreenshot(video);\n stream.getTracks().forEach(track => track.stop());\n resolve();\n };\n video.play().catch(reject);\n });\n onAfterScreenshot();\n };\n\n takeScreenshot().catch(onError);\n }, []);\n };\n}\n\nconst _jsxFileName = \"/home/runner/work/sentry-javascript/sentry-javascript/packages/feedback/src/screenshot/components/ScreenshotEditor.tsx\";\n\nconst CROP_BUTTON_SIZE = 30;\nconst CROP_BUTTON_BORDER = 3;\nconst CROP_BUTTON_OFFSET = CROP_BUTTON_SIZE + CROP_BUTTON_BORDER;\nconst DPI = WINDOW.devicePixelRatio;\n\nconst constructRect = (box) => {\n return {\n x: Math.min(box.startX, box.endX),\n y: Math.min(box.startY, box.endY),\n width: Math.abs(box.startX - box.endX),\n height: Math.abs(box.startY - box.endY),\n };\n};\n\nconst getContainedSize = (img) => {\n const imgClientHeight = img.clientHeight;\n const imgClientWidth = img.clientWidth;\n const ratio = img.width / img.height;\n let width = imgClientHeight * ratio;\n let height = imgClientHeight;\n if (width > imgClientWidth) {\n width = imgClientWidth;\n height = imgClientWidth / ratio;\n }\n const x = (imgClientWidth - width) / 2;\n const y = (imgClientHeight - height) / 2;\n return { startX: x, startY: y, endX: width + x, endY: height + y };\n};\n\nfunction ScreenshotEditorFactory({\n h,\n hooks,\n imageBuffer,\n dialog,\n options,\n}) {\n const useTakeScreenshot = useTakeScreenshotFactory({ hooks });\n\n return function ScreenshotEditor({ onError }) {\n const styles = hooks.useMemo(() => ({ __html: createScreenshotInputStyles(options.styleNonce).innerText }), []);\n const CropCorner = CropCornerFactory({ h });\n\n const canvasContainerRef = hooks.useRef(null);\n const cropContainerRef = hooks.useRef(null);\n const croppingRef = hooks.useRef(null);\n const [croppingRect, setCroppingRect] = hooks.useState({ startX: 0, startY: 0, endX: 0, endY: 0 });\n const [confirmCrop, setConfirmCrop] = hooks.useState(false);\n const [isResizing, setIsResizing] = hooks.useState(false);\n\n hooks.useEffect(() => {\n WINDOW.addEventListener('resize', resizeCropper, false);\n }, []);\n\n function resizeCropper() {\n const cropper = croppingRef.current;\n const imageDimensions = constructRect(getContainedSize(imageBuffer));\n if (cropper) {\n cropper.width = imageDimensions.width * DPI;\n cropper.height = imageDimensions.height * DPI;\n cropper.style.width = `${imageDimensions.width}px`;\n cropper.style.height = `${imageDimensions.height}px`;\n const ctx = cropper.getContext('2d');\n if (ctx) {\n ctx.scale(DPI, DPI);\n }\n }\n\n const cropButton = cropContainerRef.current;\n if (cropButton) {\n cropButton.style.width = `${imageDimensions.width}px`;\n cropButton.style.height = `${imageDimensions.height}px`;\n }\n\n setCroppingRect({ startX: 0, startY: 0, endX: imageDimensions.width, endY: imageDimensions.height });\n }\n\n hooks.useEffect(() => {\n const cropper = croppingRef.current;\n if (!cropper) {\n return;\n }\n\n const ctx = cropper.getContext('2d');\n if (!ctx) {\n return;\n }\n\n const imageDimensions = constructRect(getContainedSize(imageBuffer));\n const croppingBox = constructRect(croppingRect);\n ctx.clearRect(0, 0, imageDimensions.width, imageDimensions.height);\n\n // draw gray overlay around the selection\n ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n ctx.fillRect(0, 0, imageDimensions.width, imageDimensions.height);\n ctx.clearRect(croppingBox.x, croppingBox.y, croppingBox.width, croppingBox.height);\n\n // draw selection border\n ctx.strokeStyle = '#ffffff';\n ctx.lineWidth = 3;\n ctx.strokeRect(croppingBox.x + 1, croppingBox.y + 1, croppingBox.width - 2, croppingBox.height - 2);\n ctx.strokeStyle = '#000000';\n ctx.lineWidth = 1;\n ctx.strokeRect(croppingBox.x + 3, croppingBox.y + 3, croppingBox.width - 6, croppingBox.height - 6);\n }, [croppingRect]);\n\n function onGrabButton(e, corner) {\n setConfirmCrop(false);\n setIsResizing(true);\n const handleMouseMove = makeHandleMouseMove(corner);\n const handleMouseUp = () => {\n DOCUMENT.removeEventListener('mousemove', handleMouseMove);\n DOCUMENT.removeEventListener('mouseup', handleMouseUp);\n setConfirmCrop(true);\n setIsResizing(false);\n };\n\n DOCUMENT.addEventListener('mouseup', handleMouseUp);\n DOCUMENT.addEventListener('mousemove', handleMouseMove);\n }\n\n const makeHandleMouseMove = hooks.useCallback((corner) => {\n return function (e) {\n if (!croppingRef.current) {\n return;\n }\n const cropCanvas = croppingRef.current;\n const cropBoundingRect = cropCanvas.getBoundingClientRect();\n const mouseX = e.clientX - cropBoundingRect.x;\n const mouseY = e.clientY - cropBoundingRect.y;\n switch (corner) {\n case 'top-left':\n setCroppingRect(prev => ({\n ...prev,\n startX: Math.min(Math.max(0, mouseX), prev.endX - CROP_BUTTON_OFFSET),\n startY: Math.min(Math.max(0, mouseY), prev.endY - CROP_BUTTON_OFFSET),\n }));\n break;\n case 'top-right':\n setCroppingRect(prev => ({\n ...prev,\n endX: Math.max(Math.min(mouseX, cropCanvas.width / DPI), prev.startX + CROP_BUTTON_OFFSET),\n startY: Math.min(Math.max(0, mouseY), prev.endY - CROP_BUTTON_OFFSET),\n }));\n break;\n case 'bottom-left':\n setCroppingRect(prev => ({\n ...prev,\n startX: Math.min(Math.max(0, mouseX), prev.endX - CROP_BUTTON_OFFSET),\n endY: Math.max(Math.min(mouseY, cropCanvas.height / DPI), prev.startY + CROP_BUTTON_OFFSET),\n }));\n break;\n case 'bottom-right':\n setCroppingRect(prev => ({\n ...prev,\n endX: Math.max(Math.min(mouseX, cropCanvas.width / DPI), prev.startX + CROP_BUTTON_OFFSET),\n endY: Math.max(Math.min(mouseY, cropCanvas.height / DPI), prev.startY + CROP_BUTTON_OFFSET),\n }));\n break;\n }\n };\n }, []);\n\n // DRAGGING FUNCTIONALITY.\n const initialPositionRef = hooks.useRef({ initialX: 0, initialY: 0 });\n\n function onDragStart(e) {\n if (isResizing) return;\n\n initialPositionRef.current = { initialX: e.clientX, initialY: e.clientY };\n\n const handleMouseMove = (moveEvent) => {\n const cropCanvas = croppingRef.current;\n if (!cropCanvas) return;\n\n const deltaX = moveEvent.clientX - initialPositionRef.current.initialX;\n const deltaY = moveEvent.clientY - initialPositionRef.current.initialY;\n\n setCroppingRect(prev => {\n // Math.max stops it from going outside of the borders\n const newStartX = Math.max(\n 0,\n Math.min(prev.startX + deltaX, cropCanvas.width / DPI - (prev.endX - prev.startX)),\n );\n const newStartY = Math.max(\n 0,\n Math.min(prev.startY + deltaY, cropCanvas.height / DPI - (prev.endY - prev.startY)),\n );\n // Don't want to change size, just position\n const newEndX = newStartX + (prev.endX - prev.startX);\n const newEndY = newStartY + (prev.endY - prev.startY);\n\n initialPositionRef.current.initialX = moveEvent.clientX;\n initialPositionRef.current.initialY = moveEvent.clientY;\n\n return {\n startX: newStartX,\n startY: newStartY,\n endX: newEndX,\n endY: newEndY,\n };\n });\n };\n\n const handleMouseUp = () => {\n DOCUMENT.removeEventListener('mousemove', handleMouseMove);\n DOCUMENT.removeEventListener('mouseup', handleMouseUp);\n };\n\n DOCUMENT.addEventListener('mousemove', handleMouseMove);\n DOCUMENT.addEventListener('mouseup', handleMouseUp);\n }\n\n function submit() {\n const cutoutCanvas = DOCUMENT.createElement('canvas');\n const imageBox = constructRect(getContainedSize(imageBuffer));\n const croppingBox = constructRect(croppingRect);\n cutoutCanvas.width = croppingBox.width * DPI;\n cutoutCanvas.height = croppingBox.height * DPI;\n\n const cutoutCtx = cutoutCanvas.getContext('2d');\n if (cutoutCtx && imageBuffer) {\n cutoutCtx.drawImage(\n imageBuffer,\n (croppingBox.x / imageBox.width) * imageBuffer.width,\n (croppingBox.y / imageBox.height) * imageBuffer.height,\n (croppingBox.width / imageBox.width) * imageBuffer.width,\n (croppingBox.height / imageBox.height) * imageBuffer.height,\n 0,\n 0,\n cutoutCanvas.width,\n cutoutCanvas.height,\n );\n }\n\n const ctx = imageBuffer.getContext('2d');\n if (ctx) {\n ctx.clearRect(0, 0, imageBuffer.width, imageBuffer.height);\n imageBuffer.width = cutoutCanvas.width;\n imageBuffer.height = cutoutCanvas.height;\n imageBuffer.style.width = `${croppingBox.width}px`;\n imageBuffer.style.height = `${croppingBox.height}px`;\n ctx.drawImage(cutoutCanvas, 0, 0);\n resizeCropper();\n }\n }\n\n useTakeScreenshot({\n onBeforeScreenshot: hooks.useCallback(() => {\n (dialog.el ).style.display = 'none';\n }, []),\n onScreenshot: hooks.useCallback(\n (imageSource) => {\n const context = imageBuffer.getContext('2d');\n if (!context) {\n throw new Error('Could not get canvas context');\n }\n imageBuffer.width = imageSource.videoWidth;\n imageBuffer.height = imageSource.videoHeight;\n imageBuffer.style.width = '100%';\n imageBuffer.style.height = '100%';\n context.drawImage(imageSource, 0, 0);\n },\n [imageBuffer],\n ),\n onAfterScreenshot: hooks.useCallback(() => {\n (dialog.el ).style.display = 'block';\n const container = canvasContainerRef.current;\n container && container.appendChild(imageBuffer);\n resizeCropper();\n }, []),\n onError: hooks.useCallback(error => {\n (dialog.el ).style.display = 'block';\n onError(error);\n }, []),\n });\n\n return (\n h('div', { class: \"editor\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 315}}\n , h('style', { nonce: options.styleNonce, dangerouslySetInnerHTML: styles, __self: this, __source: {fileName: _jsxFileName, lineNumber: 316}} )\n , h('div', { class: \"editor__canvas-container\", ref: canvasContainerRef, __self: this, __source: {fileName: _jsxFileName, lineNumber: 317}}\n , h('div', { class: \"editor__crop-container\", style: { position: 'absolute', zIndex: 1 }, ref: cropContainerRef, __self: this, __source: {fileName: _jsxFileName, lineNumber: 318}}\n , h('canvas', {\n onMouseDown: onDragStart,\n style: { position: 'absolute', cursor: confirmCrop ? 'move' : 'auto' },\n ref: croppingRef, __self: this, __source: {fileName: _jsxFileName, lineNumber: 319}}\n)\n , h(CropCorner, {\n left: croppingRect.startX - CROP_BUTTON_BORDER,\n top: croppingRect.startY - CROP_BUTTON_BORDER,\n onGrabButton: onGrabButton,\n corner: \"top-left\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 324}}\n)\n , h(CropCorner, {\n left: croppingRect.endX - CROP_BUTTON_SIZE + CROP_BUTTON_BORDER,\n top: croppingRect.startY - CROP_BUTTON_BORDER,\n onGrabButton: onGrabButton,\n corner: \"top-right\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 330}}\n)\n , h(CropCorner, {\n left: croppingRect.startX - CROP_BUTTON_BORDER,\n top: croppingRect.endY - CROP_BUTTON_SIZE + CROP_BUTTON_BORDER,\n onGrabButton: onGrabButton,\n corner: \"bottom-left\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 336}}\n)\n , h(CropCorner, {\n left: croppingRect.endX - CROP_BUTTON_SIZE + CROP_BUTTON_BORDER,\n top: croppingRect.endY - CROP_BUTTON_SIZE + CROP_BUTTON_BORDER,\n onGrabButton: onGrabButton,\n corner: \"bottom-right\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 342}}\n)\n , h('div', {\n style: {\n left: Math.max(0, croppingRect.endX - 191),\n top: Math.max(0, croppingRect.endY + 8),\n display: confirmCrop ? 'flex' : 'none',\n },\n class: \"editor__crop-btn-group\", __self: this, __source: {fileName: _jsxFileName, lineNumber: 348}}\n\n , h('button', {\n onClick: e => {\n e.preventDefault();\n if (croppingRef.current) {\n setCroppingRect({\n startX: 0,\n startY: 0,\n endX: croppingRef.current.width / DPI,\n endY: croppingRef.current.height / DPI,\n });\n }\n setConfirmCrop(false);\n },\n class: \"btn btn--default\" , __self: this, __source: {fileName: _jsxFileName, lineNumber: 356}}\n\n , options.cancelButtonLabel\n )\n , h('button', {\n onClick: e => {\n e.preventDefault();\n submit();\n setConfirmCrop(false);\n },\n class: \"btn btn--primary\" , __self: this, __source: {fileName: _jsxFileName, lineNumber: 373}}\n\n , options.confirmButtonLabel\n )\n )\n )\n )\n )\n );\n };\n}\n\nconst feedbackScreenshotIntegration = (() => {\n return {\n name: 'FeedbackScreenshot',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setupOnce() {},\n createInput: ({ h, hooks, dialog, options }) => {\n const imageBuffer = DOCUMENT.createElement('canvas');\n\n return {\n input: ScreenshotEditorFactory({\n h: h ,\n hooks: hooks ,\n imageBuffer,\n dialog,\n options,\n }) , // eslint-disable-line @typescript-eslint/no-explicit-any\n\n value: async () => {\n const blob = await new Promise(resolve => {\n imageBuffer.toBlob(resolve, 'image/png');\n });\n if (blob) {\n const data = new Uint8Array(await blob.arrayBuffer());\n const attachment = {\n data,\n filename: 'screenshot.png',\n contentType: 'application/png',\n // attachmentType?: string;\n };\n return attachment;\n }\n return undefined;\n },\n };\n },\n };\n}) ;\n\nexport { buildFeedbackIntegration, feedbackModalIntegration, feedbackScreenshotIntegration, getFeedback, sendFeedback };\n//# sourceMappingURL=index.js.map\n","module.exports = __webpack_public_path__ + \"1b399d419893e83d7aea276705c2cd46.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-button{font-weight:500;display:inline-flex;align-items:center;justify-content:center}.op-button .ant-btn-icon{fill:var(--colorText)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpButton/OpButton.scss\"],\"names\":[],\"mappings\":\"AAAA,WACE,eAAA,CAGA,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,yBACE,qBAAA\",\"sourcesContent\":[\".op-button {\\n font-weight: 500;\\n\\n // These shouldn't be needed but content in not aligning correctly without it\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n .ant-btn-icon {\\n fill: var(--colorText);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"39fea85ed7dd99d7c6c9e59b7040523f.js\";","import { addNonEnumerableProperty } from '@sentry/utils';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\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","module.exports = __webpack_public_path__ + \"25be9f866b93e4ffa34f07a4fde632d4.js\";","/** 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","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","module.exports = __webpack_public_path__ + \"947d538f92dd1e146e4a3c41e4eacb92.js\";","module.exports = __webpack_public_path__ + \"9ebb9ac2c9c875649c72722bc585d445.js\";","import { logger, getFramesFromEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) ;\n\n/**\n * Deduplication filter.\n */\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = getFramesFromEvent(currentEvent);\n let previousFrames = getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameA = previousFrames[i];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n//# sourceMappingURL=dedupe.js.map\n","module.exports = __webpack_public_path__ + \"363d3bac8dcd9a83332c3758185ce080.js\";","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken, MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genPresetColor, genStyleHooks, mergeToken } from '../../theme/internal';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n width: 'max-content',\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n // When use `autoArrow`, origin will follow the arrow position\n '--valid-offset-x': 'var(--arrow-offset-horizontal, var(--arrow-x))',\n transformOrigin: [`var(--valid-offset-x, 50%)`, `var(--arrow-y, 50%)`].join(' '),\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: '1em',\n minHeight: controlHeight,\n padding: `${unit(token.calc(paddingSM).div(2).equal())} ${unit(paddingXS)}`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary,\n boxSizing: 'border-box'\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: token.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(token, 'var(--antd-arrow-background-color)'),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow\n }\n }];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => Object.assign(Object.assign({\n zIndexPopup: token.zIndexPopupBase + 70\n}, getArrowOffsetToken({\n contentRadius: token.borderRadius,\n limitVerticalRadius: true\n})), getArrowToken(mergeToken(token, {\n borderRadiusOuter: Math.min(token.borderRadiusOuter, 4)\n})));\nexport default (function (prefixCls) {\n let injectStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const useStyle = genStyleHooks('Tooltip', token => {\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgSpotlight\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgSpotlight\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, prepareComponentToken, {\n resetStyle: false,\n // Popover use Tooltip as internal component. We do not need to handle this.\n injectStyle\n });\n return useStyle(prefixCls);\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const compactItemClassnames = React.useMemo(() => {\n if (!compactItemContext) {\n return '';\n }\n const {\n compactDirection,\n isFirstItem,\n isLastItem\n } = compactItemContext;\n const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames(`${prefixCls}-compact${separator}item`, {\n [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n });\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames\n };\n};\nexport const NoCompactStyle = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nconst CompactItem = _a => {\n var {\n children\n } = _a,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nconst Compact = props => {\n const {\n getPrefixCls,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size,\n direction,\n block,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children\n } = props,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n const mergedSize = useSize(ctx => size !== null && size !== void 0 ? size : ctx);\n const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n const [wrapCSSVar, hashId] = useStyle(prefixCls);\n const clx = classNames(prefixCls, hashId, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-vertical`]: direction === 'vertical'\n }, className, rootClassName);\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const childNodes = toArray(children);\n const nodes = React.useMemo(() => childNodes.map((child, i) => {\n const key = (child === null || child === void 0 ? void 0 : child.key) || `${prefixCls}-item-${i}`;\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: mergedSize,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n }), [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: clx\n }, restProps), nodes));\n};\nexport default Compact;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { format } from \"../util\";\nimport required from \"./required\";\nimport getUrlRegex from \"./url\";\n/* eslint max-len:0 */\n\nvar pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float: function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n regexp: function regexp(value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date: function date(value) {\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object: function object(value) {\n return _typeof(value) === 'object' && !types.array(value);\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n email: function email(value) {\n return typeof value === 'string' && value.length <= 320 && !!value.match(pattern.email);\n },\n url: function url(value) {\n return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n },\n hex: function hex(value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n }\n};\nvar type = function type(rule, value, source, errors, options) {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n var ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n // straight typeof check\n } else if (ruleType && _typeof(value) !== rule.type) {\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n }\n};\nexport default type;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","module.exports = __webpack_public_path__ + \"950a205e91da7e78226dd785fd6d34db.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-info-tooltip__icon{color:var(--colorTextLabel);cursor:help;margin-inline-start:4px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpInfoTooltip/OpInfoTooltip.scss\"],\"names\":[],\"mappings\":\"AACE,uBACE,2BAAA,CACA,WAAA,CAEA,uBAAA\",\"sourcesContent\":[\".op-info-tooltip {\\n &__icon {\\n color: var(--colorTextLabel);\\n cursor: help;\\n // TODO: Is there a way to know if this margin should be on the left or right without a class?\\n margin-inline-start: 4px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","import { createSelector } from 'reselect';\nimport moment from 'moment';\n\nexport const selectCloudKeys = () => (state) =>\n state.getIn(['global', 'cloudKeys']);\n\nexport const selectFirstValidCloudKeyId = () =>\n createSelector(selectCloudKeys(), (cloudKeys) => {\n const foundValid = cloudKeys.find((ck) => {\n const validStart = ck.get('startDate')\n ? moment(ck.get('startDate')).isBefore(moment())\n : true;\n const validEnd = ck.get('endDate')\n ? moment(ck.get('endDate')).isAfter(moment())\n : true;\n return validStart && validEnd;\n });\n if (foundValid) return foundValid.get('id');\n return null;\n });\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","module.exports = __webpack_public_path__ + \"2e841e8b77c2a2c00fd71940632bc1e1.js\";","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nvar _default = getIn;\nexports[\"default\"] = _default;","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDivider.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpDivider.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { ComponentProps } from 'react';\nimport Divider from 'antd/es/divider';\n\nimport './OpDivider.scss';\n\nexport const OpDivider = ({\n children,\n className = '',\n ...dividerProps\n}: ComponentProps<typeof Divider>) => (\n <Divider className={`op-divider ${className}`.trim()} {...dividerProps}>\n {children}\n </Divider>\n);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInfo.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInfo.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\n\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownOutlined';\n}\nexport default RefIcon;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _invoke from \"lodash-es/invoke\";\nimport { handleRef, Ref } from '@fluentui/react-component-ref';\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport { customPropTypes, isBrowser } from '../../lib';\n\n/**\n * An inner component that allows you to render children outside their parent.\n */\nvar PortalInner = /*#__PURE__*/function (_Component) {\n _inheritsLoose(PortalInner, _Component);\n\n function PortalInner() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n\n _this.handleRef = function (c) {\n handleRef(_this.props.innerRef, c);\n };\n\n return _this;\n }\n\n var _proto = PortalInner.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n _invoke(this.props, 'onMount', null, this.props);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n _invoke(this.props, 'onUnmount', null, this.props);\n };\n\n _proto.render = function render() {\n if (!isBrowser()) return null;\n var _this$props = this.props,\n children = _this$props.children,\n _this$props$mountNode = _this$props.mountNode,\n mountNode = _this$props$mountNode === void 0 ? document.body : _this$props$mountNode;\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(Ref, {\n innerRef: this.handleRef\n }, children), mountNode);\n };\n\n return PortalInner;\n}(Component);\n\nPortalInner.handledProps = [\"children\", \"innerRef\", \"mountNode\", \"onMount\", \"onUnmount\"];\nPortalInner.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Primary content. */\n children: PropTypes.node.isRequired,\n\n /** Called with a ref to the inner node. */\n innerRef: customPropTypes.ref,\n\n /** The node where the portal should mount. */\n mountNode: PropTypes.any,\n\n /**\n * Called when the portal is mounted on the DOM\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func\n} : {};\nexport default PortalInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _invoke from \"lodash-es/invoke\";\nimport EventStack from '@semantic-ui-react/event-stack';\nimport { handleRef, Ref } from '@fluentui/react-component-ref';\nimport keyboardKey from 'keyboard-key';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { ModernAutoControlledComponent as Component, customPropTypes, doesNodeContainClick } from '../../lib';\nimport validateTrigger from './utils/validateTrigger';\nimport PortalInner from './PortalInner';\n\n/**\n * A component that allows you to render children outside their parent.\n * @see Modal\n * @see Popup\n * @see Dimmer\n * @see Confirm\n */\nvar Portal = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Portal, _Component);\n\n function Portal() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.contentRef = /*#__PURE__*/React.createRef();\n _this.triggerRef = /*#__PURE__*/React.createRef();\n _this.latestDocumentMouseDownEvent = null;\n\n _this.handleDocumentMouseDown = function (e) {\n _this.latestDocumentMouseDownEvent = e;\n };\n\n _this.handleDocumentClick = function (e) {\n var closeOnDocumentClick = _this.props.closeOnDocumentClick;\n var currentMouseDownEvent = _this.latestDocumentMouseDownEvent;\n _this.latestDocumentMouseDownEvent = null;\n\n if (!_this.contentRef.current || // no portal\n doesNodeContainClick(_this.triggerRef.current, e) || // event happened in trigger (delegate to trigger handlers)\n currentMouseDownEvent && doesNodeContainClick(_this.contentRef.current, currentMouseDownEvent) || // event originated in the portal but was ended outside\n doesNodeContainClick(_this.contentRef.current, e) // event happened in the portal\n ) {\n return;\n } // ignore the click\n\n\n if (closeOnDocumentClick) {\n _this.close(e);\n }\n };\n\n _this.handleEscape = function (e) {\n if (!_this.props.closeOnEscape) return;\n if (keyboardKey.getCode(e) !== keyboardKey.Escape) return;\n\n _this.close(e);\n };\n\n _this.handlePortalMouseLeave = function (e) {\n var _this$props = _this.props,\n closeOnPortalMouseLeave = _this$props.closeOnPortalMouseLeave,\n mouseLeaveDelay = _this$props.mouseLeaveDelay;\n if (!closeOnPortalMouseLeave) return; // Do not close the portal when 'mouseleave' is triggered by children\n\n if (e.target !== _this.contentRef.current) return;\n _this.mouseLeaveTimer = _this.closeWithTimeout(e, mouseLeaveDelay);\n };\n\n _this.handlePortalMouseEnter = function () {\n // In order to enable mousing from the trigger to the portal, we need to\n // clear the mouseleave timer that was set when leaving the trigger.\n var closeOnPortalMouseLeave = _this.props.closeOnPortalMouseLeave;\n if (!closeOnPortalMouseLeave) return;\n clearTimeout(_this.mouseLeaveTimer);\n };\n\n _this.handleTriggerBlur = function (e) {\n var _this$props2 = _this.props,\n trigger = _this$props2.trigger,\n closeOnTriggerBlur = _this$props2.closeOnTriggerBlur; // Call original event handler\n\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onBlur', e].concat(rest)); // IE 11 doesn't work with relatedTarget in blur events\n\n\n var target = e.relatedTarget || document.activeElement; // do not close if focus is given to the portal\n\n var didFocusPortal = _invoke(_this.contentRef.current, 'contains', target);\n\n if (!closeOnTriggerBlur || didFocusPortal) return;\n\n _this.close(e);\n };\n\n _this.handleTriggerClick = function (e) {\n var _this$props3 = _this.props,\n trigger = _this$props3.trigger,\n closeOnTriggerClick = _this$props3.closeOnTriggerClick,\n openOnTriggerClick = _this$props3.openOnTriggerClick;\n var open = _this.state.open; // Call original event handler\n\n for (var _len3 = arguments.length, rest = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n rest[_key3 - 1] = arguments[_key3];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onClick', e].concat(rest));\n\n if (open && closeOnTriggerClick) {\n _this.close(e);\n } else if (!open && openOnTriggerClick) {\n _this.open(e);\n }\n };\n\n _this.handleTriggerFocus = function (e) {\n var _this$props4 = _this.props,\n trigger = _this$props4.trigger,\n openOnTriggerFocus = _this$props4.openOnTriggerFocus; // Call original event handler\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onFocus', e].concat(rest));\n\n if (!openOnTriggerFocus) return;\n\n _this.open(e);\n };\n\n _this.handleTriggerMouseLeave = function (e) {\n clearTimeout(_this.mouseEnterTimer);\n var _this$props5 = _this.props,\n trigger = _this$props5.trigger,\n closeOnTriggerMouseLeave = _this$props5.closeOnTriggerMouseLeave,\n mouseLeaveDelay = _this$props5.mouseLeaveDelay; // Call original event handler\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onMouseLeave', e].concat(rest));\n\n if (!closeOnTriggerMouseLeave) return;\n _this.mouseLeaveTimer = _this.closeWithTimeout(e, mouseLeaveDelay);\n };\n\n _this.handleTriggerMouseEnter = function (e) {\n clearTimeout(_this.mouseLeaveTimer);\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n mouseEnterDelay = _this$props6.mouseEnterDelay,\n openOnTriggerMouseEnter = _this$props6.openOnTriggerMouseEnter; // Call original event handler\n\n for (var _len6 = arguments.length, rest = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n rest[_key6 - 1] = arguments[_key6];\n }\n\n _invoke.apply(void 0, [trigger, 'props.onMouseEnter', e].concat(rest));\n\n if (!openOnTriggerMouseEnter) return;\n _this.mouseEnterTimer = _this.openWithTimeout(e, mouseEnterDelay);\n };\n\n _this.open = function (e) {\n _invoke(_this.props, 'onOpen', e, _extends({}, _this.props, {\n open: true\n }));\n\n _this.setState({\n open: true\n });\n };\n\n _this.openWithTimeout = function (e, delay) {\n // React wipes the entire event object and suggests using e.persist() if\n // you need the event for async access. However, even with e.persist\n // certain required props (e.g. currentTarget) are null so we're forced to clone.\n var eventClone = _extends({}, e);\n\n return setTimeout(function () {\n return _this.open(eventClone);\n }, delay || 0);\n };\n\n _this.close = function (e) {\n _this.setState({\n open: false\n });\n\n _invoke(_this.props, 'onClose', e, _extends({}, _this.props, {\n open: false\n }));\n };\n\n _this.closeWithTimeout = function (e, delay) {\n // React wipes the entire event object and suggests using e.persist() if\n // you need the event for async access. However, even with e.persist\n // certain required props (e.g. currentTarget) are null so we're forced to clone.\n var eventClone = _extends({}, e);\n\n return setTimeout(function () {\n return _this.close(eventClone);\n }, delay || 0);\n };\n\n _this.handleMount = function () {\n _invoke(_this.props, 'onMount', null, _this.props);\n };\n\n _this.handleUnmount = function () {\n _invoke(_this.props, 'onUnmount', null, _this.props);\n };\n\n _this.handleTriggerRef = function (c) {\n _this.triggerRef.current = c;\n handleRef(_this.props.triggerRef, c);\n };\n\n return _this;\n }\n\n var _proto = Portal.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Clean up timers\n clearTimeout(this.mouseEnterTimer);\n clearTimeout(this.mouseLeaveTimer);\n } // ----------------------------------------\n // Document Event Handlers\n // ----------------------------------------\n ;\n\n _proto.render = function render() {\n var _this$props7 = this.props,\n children = _this$props7.children,\n eventPool = _this$props7.eventPool,\n mountNode = _this$props7.mountNode,\n trigger = _this$props7.trigger;\n var open = this.state.open;\n /* istanbul ignore else */\n\n if (process.env.NODE_ENV !== 'production') {\n validateTrigger(trigger);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, open && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PortalInner, {\n innerRef: this.contentRef,\n mountNode: mountNode,\n onMount: this.handleMount,\n onUnmount: this.handleUnmount\n }, children), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mouseleave\",\n on: this.handlePortalMouseLeave,\n pool: eventPool,\n target: this.contentRef\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mouseenter\",\n on: this.handlePortalMouseEnter,\n pool: eventPool,\n target: this.contentRef\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"mousedown\",\n on: this.handleDocumentMouseDown,\n pool: eventPool\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"click\",\n on: this.handleDocumentClick,\n pool: eventPool\n }), /*#__PURE__*/React.createElement(EventStack, {\n name: \"keydown\",\n on: this.handleEscape,\n pool: eventPool\n })), trigger && /*#__PURE__*/React.createElement(Ref, {\n innerRef: this.handleTriggerRef\n }, /*#__PURE__*/React.cloneElement(trigger, {\n onBlur: this.handleTriggerBlur,\n onClick: this.handleTriggerClick,\n onFocus: this.handleTriggerFocus,\n onMouseLeave: this.handleTriggerMouseLeave,\n onMouseEnter: this.handleTriggerMouseEnter\n })));\n };\n\n return Portal;\n}(Component);\n\nPortal.handledProps = [\"children\", \"closeOnDocumentClick\", \"closeOnEscape\", \"closeOnPortalMouseLeave\", \"closeOnTriggerBlur\", \"closeOnTriggerClick\", \"closeOnTriggerMouseLeave\", \"defaultOpen\", \"eventPool\", \"mountNode\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"onClose\", \"onMount\", \"onOpen\", \"onUnmount\", \"open\", \"openOnTriggerClick\", \"openOnTriggerFocus\", \"openOnTriggerMouseEnter\", \"trigger\", \"triggerRef\"];\nPortal.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Primary content. */\n children: PropTypes.node.isRequired,\n\n /** Controls whether or not the portal should close when the document is clicked. */\n closeOnDocumentClick: PropTypes.bool,\n\n /** Controls whether or not the portal should close when escape is pressed is displayed. */\n closeOnEscape: PropTypes.bool,\n\n /**\n * Controls whether or not the portal should close when mousing out of the portal.\n * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the\n * gap from the trigger to the portal.\n */\n closeOnPortalMouseLeave: PropTypes.bool,\n\n /** Controls whether or not the portal should close on blur of the trigger. */\n closeOnTriggerBlur: PropTypes.bool,\n\n /** Controls whether or not the portal should close on click of the trigger. */\n closeOnTriggerClick: PropTypes.bool,\n\n /** Controls whether or not the portal should close when mousing out of the trigger. */\n closeOnTriggerMouseLeave: PropTypes.bool,\n\n /** Initial value of open. */\n defaultOpen: PropTypes.bool,\n\n /** Event pool namespace that is used to handle component events */\n eventPool: PropTypes.string,\n\n /** The node where the portal should mount. */\n mountNode: PropTypes.any,\n\n /** Milliseconds to wait before opening on mouse over */\n mouseEnterDelay: PropTypes.number,\n\n /** Milliseconds to wait before closing on mouse leave */\n mouseLeaveDelay: PropTypes.number,\n\n /**\n * Called when a close event happens\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onClose: PropTypes.func,\n\n /**\n * Called when the portal is mounted on the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onMount: PropTypes.func,\n\n /**\n * Called when an open event happens\n *\n * @param {SyntheticEvent} event - React's original SyntheticEvent.\n * @param {object} data - All props.\n */\n onOpen: PropTypes.func,\n\n /**\n * Called when the portal is unmounted from the DOM.\n *\n * @param {null}\n * @param {object} data - All props.\n */\n onUnmount: PropTypes.func,\n\n /** Controls whether or not the portal is displayed. */\n open: PropTypes.bool,\n\n /** Controls whether or not the portal should open when the trigger is clicked. */\n openOnTriggerClick: PropTypes.bool,\n\n /** Controls whether or not the portal should open on focus of the trigger. */\n openOnTriggerFocus: PropTypes.bool,\n\n /** Controls whether or not the portal should open when mousing over the trigger. */\n openOnTriggerMouseEnter: PropTypes.bool,\n\n /** Element to be rendered in-place where the portal is defined. */\n trigger: PropTypes.node,\n\n /** Called with a ref to the trigger node. */\n triggerRef: customPropTypes.ref\n} : {};\nPortal.defaultProps = {\n closeOnDocumentClick: true,\n closeOnEscape: true,\n eventPool: 'default',\n openOnTriggerClick: true\n};\nPortal.autoControlledProps = ['open'];\nPortal.Inner = PortalInner;\nexport default Portal;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\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","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { getActivationStart } from './lib/getActivationStart.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { runOnce } from './lib/runOnce.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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/** Thresholds for LCP. See https://web.dev/articles/lcp#what_is_a_good_lcp_score */\nconst LCPThresholds = [2500, 4000];\n\nconst reportedMetricIDs = {};\n\n/**\n * Calculates the [LCP](https://web.dev/articles/lcp) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called any time a new `largest-contentful-paint`\n * performance entry is dispatched, or once the final value of the metric has\n * been determined.\n */\nconst onLCP = (onReport, opts = {}) => {\n whenActivated(() => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report;\n\n const handleEntries = (entries) => {\n const lastEntry = entries[entries.length - 1] ;\n if (lastEntry) {\n // Only report if the page wasn't hidden prior to LCP.\n if (lastEntry.startTime < visibilityWatcher.firstHiddenTime) {\n // The startTime attribute returns the value of the renderTime if it is\n // not 0, and the value of the loadTime otherwise. The activationStart\n // reference is used because LCP should be relative to page activation\n // rather than navigation start if the page was prerendered. But in cases\n // where `activationStart` occurs after the LCP, this time should be\n // clamped at 0.\n metric.value = Math.max(lastEntry.startTime - getActivationStart(), 0);\n metric.entries = [lastEntry];\n report();\n }\n }\n };\n\n const po = observe('largest-contentful-paint', handleEntries);\n\n if (po) {\n report = bindReporter(onReport, metric, LCPThresholds, opts.reportAllChanges);\n\n const stopListening = runOnce(() => {\n if (!reportedMetricIDs[metric.id]) {\n handleEntries(po.takeRecords() );\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n });\n\n // Stop listening after input. Note: while scrolling is an input that\n // stops LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n if (WINDOW.document) {\n // Wrap in a setTimeout so the callback is run in a separate task\n // to avoid extending the keyboard/click handler to reduce INP impact\n // https://github.com/GoogleChrome/web-vitals/issues/383\n addEventListener(type, () => setTimeout(stopListening, 0), true);\n }\n });\n\n onHidden(stopListening);\n }\n });\n};\n\nexport { LCPThresholds, onLCP };\n//# sourceMappingURL=getLCP.js.map\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = nodeUtil;\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport Space from '../space';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nconst DropdownButton = props => {\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n disabled,\n loading,\n onClick,\n htmlType,\n children,\n className,\n menu,\n arrow,\n autoFocus,\n overlay,\n trigger,\n align,\n open,\n onOpenChange,\n placement,\n getPopupContainer,\n href,\n icon = /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n title,\n buttonsRender = buttons => buttons,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"open\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\", \"dropdownRender\"]);\n const prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n const buttonPrefixCls = `${prefixCls}-button`;\n const dropdownProps = {\n menu,\n arrow,\n autoFocus,\n align,\n disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay,\n mouseLeaveDelay,\n overlayClassName,\n overlayStyle,\n destroyPopupOnHide,\n dropdownRender\n };\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const classes = classNames(buttonPrefixCls, compactItemClassnames, className);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n const leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n const rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);\n return /*#__PURE__*/React.createElement(Space.Compact, Object.assign({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, Object.assign({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","\"use client\";\n\nimport InternalDropdown from './dropdown';\nimport DropdownButton from './dropdown-button';\nconst Dropdown = InternalDropdown;\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import { addNonEnumerableProperty } from '@sentry/utils';\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nfunction getCapturedScopesOnSpan(span) {\n return {\n scope: (span )[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: (span )[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n };\n}\n\nexport { getCapturedScopesOnSpan, setCapturedScopesOnSpan };\n//# sourceMappingURL=utils.js.map\n","import isVisible from \"rc-util/es/Dom/isVisible\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nvar scrollIds = new Map();\n\n/** Trigger when element is visible in view */\nexport function waitElementReady(element, callback) {\n var id;\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n }\n\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\n/* eslint-enable */\n\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n switch (which) {\n case KeyCode.LEFT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(-1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.RIGHT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n break;\n }\n return false;\n}\n\n// ===================== Format =====================\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n if (!mergedFormat) {\n switch (picker) {\n case 'time':\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n break;\n case 'week':\n mergedFormat = 'gggg-wo';\n break;\n case 'month':\n mergedFormat = 'YYYY-MM';\n break;\n case 'quarter':\n mergedFormat = 'YYYY-[Q]Q';\n break;\n case 'year':\n mergedFormat = 'YYYY';\n break;\n default:\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n }\n }\n return mergedFormat;\n}\n\n// ====================== Mode ======================\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}\nexport function getRealPlacement(placement, rtl) {\n if (placement !== undefined) {\n return placement;\n }\n return rtl ? 'bottomRight' : 'bottomLeft';\n}\nexport function getoffsetUnit(placement, rtl) {\n var realPlacement = getRealPlacement(placement, rtl);\n var placementRight = realPlacement === null || realPlacement === void 0 ? void 0 : realPlacement.toLowerCase().endsWith('right');\n var offsetUnit = placementRight ? 'insetInlineEnd' : 'insetInlineStart';\n if (rtl) {\n offsetUnit = ['insetInlineStart', 'insetInlineEnd'].find(function (unit) {\n return unit !== offsetUnit;\n });\n }\n return offsetUnit;\n}","import * as React from 'react';\nvar PickerContext = /*#__PURE__*/React.createContext(null);\nexport default PickerContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { getRealPlacement } from \"../utils/uiUtil\";\nimport PickerContext from \"../PickerInput/context\";\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n popupClassName = _ref.popupClassName,\n popupAlign = _ref.popupAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n placement = _ref.placement,\n _ref$builtinPlacement = _ref.builtinPlacements,\n builtinPlacements = _ref$builtinPlacement === void 0 ? BUILT_IN_PLACEMENTS : _ref$builtinPlacement,\n direction = _ref.direction,\n visible = _ref.visible,\n onClose = _ref.onClose;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var realPlacement = getRealPlacement(placement, direction === 'rtl');\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: ['click'],\n popupPlacement: realPlacement,\n builtinPlacements: builtinPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: popupAlign,\n popupVisible: visible,\n popupClassName: classNames(popupClassName, _defineProperty(_defineProperty({}, \"\".concat(dropdownPrefixCls, \"-range\"), range), \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl')),\n popupStyle: popupStyle,\n stretch: \"minWidth\",\n getPopupContainer: getPopupContainer,\n onPopupVisibleChange: function onPopupVisibleChange(nextVisible) {\n if (!nextVisible) {\n onClose();\n }\n }\n }, children);\n}\nexport default PickerTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(current);\n }\n return current;\n}\n\n/**\n * Convert `value` to array. Will provide `[]` if is null or undefined.\n */\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport function fillIndex(ori, index, value) {\n var clone = _toConsumableArray(ori);\n clone[index] = value;\n return clone;\n}\n\n/** Pick props from the key list. Will filter empty value */\nexport function pickProps(props, keys) {\n var clone = {};\n var mergedKeys = keys || Object.keys(props);\n mergedKeys.forEach(function (key) {\n if (props[key] !== undefined) {\n clone[key] = props[key];\n }\n });\n return clone;\n}\nexport function getRowFormat(picker, locale, format) {\n if (format) {\n return format;\n }\n switch (picker) {\n // All from the `locale.fieldXXXFormat` first\n case 'time':\n return locale.fieldTimeFormat;\n case 'datetime':\n return locale.fieldDateTimeFormat;\n case 'month':\n return locale.fieldMonthFormat;\n case 'year':\n return locale.fieldYearFormat;\n case 'quarter':\n return locale.fieldQuarterFormat;\n case 'week':\n return locale.fieldWeekFormat;\n default:\n return locale.fieldDateFormat;\n }\n}\nexport function getFromDate(calendarValues, activeIndexList, activeIndex) {\n var mergedActiveIndex = activeIndex !== undefined ? activeIndex : activeIndexList[activeIndexList.length - 1];\n var firstValuedIndex = activeIndexList.find(function (index) {\n return calendarValues[index];\n });\n return mergedActiveIndex !== firstValuedIndex ? calendarValues[firstValuedIndex] : undefined;\n}","import { pickProps } from \"../utils/miscUtil\";\nexport function pickTriggerProps(props) {\n return pickProps(props, ['placement', 'builtinPlacements', 'popupAlign', 'getPopupContainer', 'transitionName', 'direction']);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nexport default function useCellRender(cellRender, dateRender, monthCellRender, range) {\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n }\n\n // ======================== Render ========================\n // Merged render\n var mergedCellRender = React.useMemo(function () {\n if (cellRender) {\n return cellRender;\n }\n return function (current, info) {\n var date = current;\n if (dateRender && info.type === 'date') {\n return dateRender(date, info.today);\n }\n if (monthCellRender && info.type === 'month') {\n return monthCellRender(date, info.locale);\n }\n return info.originNode;\n };\n }, [cellRender, monthCellRender, dateRender]);\n\n // Cell render\n var onInternalCellRender = React.useCallback(function (date, info) {\n return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n range: range\n }));\n }, [mergedCellRender, range]);\n return onInternalCellRender;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { fillIndex } from \"../../utils/miscUtil\";\nimport * as React from 'react';\n/**\n * Used to control each fields invalidate status\n */\nexport default function useFieldsInvalidate(calendarValue, isInvalidateDate) {\n var allowEmpty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var _React$useState = React.useState([false, false]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n fieldsInvalidates = _React$useState2[0],\n setFieldsInvalidates = _React$useState2[1];\n var onSelectorInvalid = function onSelectorInvalid(invalid, index) {\n setFieldsInvalidates(function (ori) {\n return fillIndex(ori, index, invalid);\n });\n };\n\n /**\n * For the Selector Input to mark as `aria-disabled`\n */\n var submitInvalidates = React.useMemo(function () {\n return fieldsInvalidates.map(function (invalid, index) {\n // If typing invalidate\n if (invalid) {\n return true;\n }\n var current = calendarValue[index];\n\n // Not check if all empty\n if (!current) {\n return false;\n }\n\n // Not allow empty\n if (!allowEmpty[index] && !current) {\n return true;\n }\n\n // Invalidate\n if (current && isInvalidateDate(current, {\n activeIndex: index\n })) {\n return true;\n }\n return false;\n });\n }, [calendarValue, fieldsInvalidates, isInvalidateDate, allowEmpty]);\n return [submitInvalidates, onSelectorInvalid];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nexport function fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, showMeridiem) {\n var timeFormat = '';\n\n // Base HH:mm:ss\n var cells = [];\n if (showHour) {\n cells.push(showMeridiem ? 'hh' : 'HH');\n }\n if (showMinute) {\n cells.push('mm');\n }\n if (showSecond) {\n cells.push('ss');\n }\n timeFormat = cells.join(':');\n\n // Millisecond\n if (showMillisecond) {\n timeFormat += '.SSS';\n }\n\n // Meridiem\n if (showMeridiem) {\n timeFormat += ' A';\n }\n return timeFormat;\n}\n\n/**\n * Used for `useFilledProps` since it already in the React.useMemo\n */\nfunction fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours) {\n // Not fill `monthFormat` since `locale.shortMonths` handle this\n // Not fill `cellMeridiemFormat` since AM & PM by default\n var fieldDateTimeFormat = locale.fieldDateTimeFormat,\n fieldDateFormat = locale.fieldDateFormat,\n fieldTimeFormat = locale.fieldTimeFormat,\n fieldMonthFormat = locale.fieldMonthFormat,\n fieldYearFormat = locale.fieldYearFormat,\n fieldWeekFormat = locale.fieldWeekFormat,\n fieldQuarterFormat = locale.fieldQuarterFormat,\n yearFormat = locale.yearFormat,\n cellYearFormat = locale.cellYearFormat,\n cellQuarterFormat = locale.cellQuarterFormat,\n dayFormat = locale.dayFormat,\n cellDateFormat = locale.cellDateFormat;\n var timeFormat = fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, use12Hours);\n return _objectSpread(_objectSpread({}, locale), {}, {\n fieldDateTimeFormat: fieldDateTimeFormat || \"YYYY-MM-DD \".concat(timeFormat),\n fieldDateFormat: fieldDateFormat || 'YYYY-MM-DD',\n fieldTimeFormat: fieldTimeFormat || timeFormat,\n fieldMonthFormat: fieldMonthFormat || 'YYYY-MM',\n fieldYearFormat: fieldYearFormat || 'YYYY',\n fieldWeekFormat: fieldWeekFormat || 'gggg-wo',\n fieldQuarterFormat: fieldQuarterFormat || 'YYYY-[Q]Q',\n yearFormat: yearFormat || 'YYYY',\n cellYearFormat: cellYearFormat || 'YYYY',\n cellQuarterFormat: cellQuarterFormat || '[Q]Q',\n cellDateFormat: cellDateFormat || dayFormat || 'D'\n });\n}\n\n/**\n * Fill locale format as start up\n */\nexport default function useLocale(locale, showProps) {\n var showHour = showProps.showHour,\n showMinute = showProps.showMinute,\n showSecond = showProps.showSecond,\n showMillisecond = showProps.showMillisecond,\n use12Hours = showProps.use12Hours;\n return React.useMemo(function () {\n return fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours);\n }, [locale, showHour, showMinute, showSecond, showMillisecond, use12Hours]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { getRowFormat, pickProps, toArray } from \"../utils/miscUtil\";\nimport { fillTimeFormat } from \"./useLocale\";\nfunction checkShow(format, keywords, show) {\n return show !== null && show !== void 0 ? show : keywords.some(function (keyword) {\n return format.includes(keyword);\n });\n}\nvar showTimeKeys = [\n// 'format',\n'showNow', 'showHour', 'showMinute', 'showSecond', 'showMillisecond', 'use12Hours', 'hourStep', 'minuteStep', 'secondStep', 'millisecondStep', 'hideDisabledOptions', 'defaultValue', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'disabledMilliseconds', 'disabledTime', 'changeOnScroll', 'defaultOpenValue'];\n\n/**\n * Get SharedTimeProps from props.\n */\nfunction pickTimeProps(props) {\n var timeProps = pickProps(props, showTimeKeys);\n var format = props.format,\n picker = props.picker;\n var propFormat = null;\n if (format) {\n propFormat = format;\n if (Array.isArray(propFormat)) {\n propFormat = propFormat[0];\n }\n propFormat = _typeof(propFormat) === 'object' ? propFormat.format : propFormat;\n }\n if (picker === 'time') {\n timeProps.format = propFormat;\n }\n return [timeProps, propFormat];\n}\nfunction isStringFormat(format) {\n return format && typeof format === 'string';\n}\n/** Check if all the showXXX is `undefined` */\nfunction existShowConfig(showHour, showMinute, showSecond, showMillisecond) {\n return [showHour, showMinute, showSecond, showMillisecond].some(function (show) {\n return show !== undefined;\n });\n}\n\n/** Fill the showXXX if needed */\nfunction fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond) {\n var parsedShowHour = showHour;\n var parsedShowMinute = showMinute;\n var parsedShowSecond = showSecond;\n if (!hasShowConfig && !parsedShowHour && !parsedShowMinute && !parsedShowSecond && !showMillisecond) {\n parsedShowHour = true;\n parsedShowMinute = true;\n parsedShowSecond = true;\n } else if (hasShowConfig) {\n var _parsedShowHour, _parsedShowMinute, _parsedShowSecond;\n var existFalse = [parsedShowHour, parsedShowMinute, parsedShowSecond].some(function (show) {\n return show === false;\n });\n var existTrue = [parsedShowHour, parsedShowMinute, parsedShowSecond].some(function (show) {\n return show === true;\n });\n var defaultShow = existFalse ? true : !existTrue;\n parsedShowHour = (_parsedShowHour = parsedShowHour) !== null && _parsedShowHour !== void 0 ? _parsedShowHour : defaultShow;\n parsedShowMinute = (_parsedShowMinute = parsedShowMinute) !== null && _parsedShowMinute !== void 0 ? _parsedShowMinute : defaultShow;\n parsedShowSecond = (_parsedShowSecond = parsedShowSecond) !== null && _parsedShowSecond !== void 0 ? _parsedShowSecond : defaultShow;\n }\n return [parsedShowHour, parsedShowMinute, parsedShowSecond, showMillisecond];\n}\n\n/**\n * Get `showHour`, `showMinute`, `showSecond` or other from the props.\n * This is pure function, will not get `showXXX` from the `format` prop.\n */\nexport function getTimeProps(componentProps) {\n var showTime = componentProps.showTime;\n var _pickTimeProps = pickTimeProps(componentProps),\n _pickTimeProps2 = _slicedToArray(_pickTimeProps, 2),\n pickedProps = _pickTimeProps2[0],\n propFormat = _pickTimeProps2[1];\n var showTimeConfig = showTime && _typeof(showTime) === 'object' ? showTime : {};\n var timeConfig = _objectSpread(_objectSpread({\n defaultOpenValue: showTimeConfig.defaultOpenValue || showTimeConfig.defaultValue\n }, pickedProps), showTimeConfig);\n var showMillisecond = timeConfig.showMillisecond;\n var showHour = timeConfig.showHour,\n showMinute = timeConfig.showMinute,\n showSecond = timeConfig.showSecond;\n var hasShowConfig = existShowConfig(showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig = fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig2 = _slicedToArray(_fillShowConfig, 3);\n showHour = _fillShowConfig2[0];\n showMinute = _fillShowConfig2[1];\n showSecond = _fillShowConfig2[2];\n return [timeConfig, _objectSpread(_objectSpread({}, timeConfig), {}, {\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n showMillisecond: showMillisecond\n }), timeConfig.format, propFormat];\n}\nexport function fillShowTimeConfig(picker, showTimeFormat, propFormat, timeConfig, locale) {\n var isTimePicker = picker === 'time';\n if (picker === 'datetime' || isTimePicker) {\n var pickedProps = timeConfig;\n\n // ====================== BaseFormat ======================\n var defaultLocaleFormat = getRowFormat(picker, locale, null);\n var baselineFormat = defaultLocaleFormat;\n var formatList = [showTimeFormat, propFormat];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = toArray(formatList[i])[0];\n if (isStringFormat(format)) {\n baselineFormat = format;\n break;\n }\n }\n\n // ========================= Show =========================\n var showHour = pickedProps.showHour,\n showMinute = pickedProps.showMinute,\n showSecond = pickedProps.showSecond,\n showMillisecond = pickedProps.showMillisecond;\n var use12Hours = pickedProps.use12Hours;\n var showMeridiem = checkShow(baselineFormat, ['a', 'A', 'LT', 'LLL', 'LTS'], use12Hours);\n var hasShowConfig = existShowConfig(showHour, showMinute, showSecond, showMillisecond);\n\n // Fill with format, if needed\n if (!hasShowConfig) {\n showHour = checkShow(baselineFormat, ['H', 'h', 'k', 'LT', 'LLL']);\n showMinute = checkShow(baselineFormat, ['m', 'LT', 'LLL']);\n showSecond = checkShow(baselineFormat, ['s', 'LTS']);\n showMillisecond = checkShow(baselineFormat, ['SSS']);\n }\n\n // Fallback if all can not see\n // ======================== Format ========================\n var _fillShowConfig3 = fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig4 = _slicedToArray(_fillShowConfig3, 3);\n showHour = _fillShowConfig4[0];\n showMinute = _fillShowConfig4[1];\n showSecond = _fillShowConfig4[2];\n var timeFormat = showTimeFormat || fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, showMeridiem);\n\n // ======================== Props =========================\n return _objectSpread(_objectSpread({}, pickedProps), {}, {\n // Format\n format: timeFormat,\n // Show Config\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n showMillisecond: showMillisecond,\n use12Hours: showMeridiem\n });\n }\n return null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\n\n/**\n * Used for `useFilledProps` since it already in the React.useMemo\n */\nexport function fillClearIcon(prefixCls, allowClear, clearIcon) {\n if (process.env.NODE_ENV !== 'production' && clearIcon) {\n warning(false, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n if (allowClear === false) {\n return null;\n }\n var config = allowClear && _typeof(allowClear) === 'object' ? allowClear : {};\n return config.clearIcon || clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n });\n}","export var WEEK_DAY_COUNT = 7;\n\n/**\n * Wrap the compare logic.\n * This will compare the each of value is empty first.\n * 1. All is empty, return true.\n * 2. One is empty, return false.\n * 3. return customize compare logic.\n */\nfunction nullableCompare(value1, value2, oriCompareFn) {\n if (!value1 && !value2 || value1 === value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return oriCompareFn();\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n return nullableCompare(decade1, decade2, function () {\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n });\n}\nexport function isSameYear(generateConfig, year1, year2) {\n return nullableCompare(year1, year2, function () {\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n });\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n return nullableCompare(quarter1, quarter2, function () {\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n });\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n return nullableCompare(month1, month2, function () {\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n });\n}\nexport function isSameDate(generateConfig, date1, date2) {\n return nullableCompare(date1, date2, function () {\n return isSameYear(generateConfig, date1, date2) && isSameMonth(generateConfig, date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n });\n}\nexport function isSameTime(generateConfig, time1, time2) {\n return nullableCompare(time1, time2, function () {\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n });\n}\n\n/**\n * Check if the Date is all the same of timestamp\n */\nexport function isSameTimestamp(generateConfig, time1, time2) {\n return nullableCompare(time1, time2, function () {\n return isSameDate(generateConfig, time1, time2) && isSameTime(generateConfig, time1, time2) && generateConfig.getMillisecond(time1) === generateConfig.getMillisecond(time2);\n });\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n return nullableCompare(date1, date2, function () {\n var weekStartDate1 = generateConfig.locale.getWeekFirstDate(locale, date1);\n var weekStartDate2 = generateConfig.locale.getWeekFirstDate(locale, date2);\n return isSameYear(generateConfig, weekStartDate1, weekStartDate2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n });\n}\nexport function isSame(generateConfig, locale, source, target, type) {\n switch (type) {\n case 'date':\n return isSameDate(generateConfig, source, target);\n case 'week':\n return isSameWeek(generateConfig, locale.locale, source, target);\n case 'month':\n return isSameMonth(generateConfig, source, target);\n case 'quarter':\n return isSameQuarter(generateConfig, source, target);\n case 'year':\n return isSameYear(generateConfig, source, target);\n case 'decade':\n return isSameDecade(generateConfig, source, target);\n case 'time':\n return isSameTime(generateConfig, source, target);\n default:\n return isSameTimestamp(generateConfig, source, target);\n }\n}\n\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function isSameOrAfter(generateConfig, locale, date1, date2, type) {\n if (isSame(generateConfig, locale, date1, date2, type)) {\n return true;\n }\n return generateConfig.isAfter(date1, date2);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n if (!value) {\n return '';\n }\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\n\n/**\n * Fill the time info into Date if provided.\n */\nexport function fillTime(generateConfig, date, time) {\n var tmpDate = date;\n var getFn = ['getHour', 'getMinute', 'getSecond', 'getMillisecond'];\n var setFn = ['setHour', 'setMinute', 'setSecond', 'setMillisecond'];\n setFn.forEach(function (fn, index) {\n if (time) {\n tmpDate = generateConfig[fn](tmpDate, generateConfig[getFn[index]](time));\n } else {\n tmpDate = generateConfig[fn](tmpDate, 0);\n }\n });\n return tmpDate;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nimport useLocale from \"../../hooks/useLocale\";\nimport { fillShowTimeConfig, getTimeProps } from \"../../hooks/useTimeConfig\";\nimport { toArray } from \"../../utils/miscUtil\";\nimport { fillClearIcon } from \"../Selector/hooks/useClearIcon\";\nimport useDisabledBoundary from \"./useDisabledBoundary\";\nimport { useFieldFormat } from \"./useFieldFormat\";\nimport useInputReadOnly from \"./useInputReadOnly\";\nimport useInvalidate from \"./useInvalidate\";\nfunction useList(value) {\n var fillMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var values = React.useMemo(function () {\n var list = value ? toArray(value) : value;\n if (fillMode && list) {\n list[1] = list[1] || list[0];\n }\n return list;\n }, [value, fillMode]);\n return values;\n}\n\n/**\n * Align the outer props with unique typed and fill undefined props.\n * This is shared with both RangePicker and Picker. This will do:\n * - Convert `value` & `defaultValue` to array\n * - handle the legacy props fill like `clearIcon` + `allowClear` = `clearIcon`\n */\nexport default function useFilledProps(props, updater) {\n var generateConfig = props.generateConfig,\n locale = props.locale,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n _props$styles = props.styles,\n styles = _props$styles === void 0 ? {} : _props$styles,\n _props$classNames = props.classNames,\n classNames = _props$classNames === void 0 ? {} : _props$classNames,\n _props$order = props.order,\n order = _props$order === void 0 ? true : _props$order,\n _props$components = props.components,\n components = _props$components === void 0 ? {} : _props$components,\n inputRender = props.inputRender,\n allowClear = props.allowClear,\n clearIcon = props.clearIcon,\n needConfirm = props.needConfirm,\n multiple = props.multiple,\n format = props.format,\n inputReadOnly = props.inputReadOnly,\n disabledDate = props.disabledDate,\n minDate = props.minDate,\n maxDate = props.maxDate,\n showTime = props.showTime,\n value = props.value,\n defaultValue = props.defaultValue,\n pickerValue = props.pickerValue,\n defaultPickerValue = props.defaultPickerValue;\n var values = useList(value);\n var defaultValues = useList(defaultValue);\n var pickerValues = useList(pickerValue);\n var defaultPickerValues = useList(defaultPickerValue);\n\n // ======================== Picker ========================\n /** Almost same as `picker`, but add `datetime` for `date` with `showTime` */\n var internalPicker = picker === 'date' && showTime ? 'datetime' : picker;\n\n /** The picker is `datetime` or `time` */\n var multipleInteractivePicker = internalPicker === 'time' || internalPicker === 'datetime';\n var complexPicker = multipleInteractivePicker || multiple;\n var mergedNeedConfirm = needConfirm !== null && needConfirm !== void 0 ? needConfirm : multipleInteractivePicker;\n\n // ========================== Time ==========================\n // Auto `format` need to check `showTime.showXXX` first.\n // And then merge the `locale` into `mergedShowTime`.\n var _getTimeProps = getTimeProps(props),\n _getTimeProps2 = _slicedToArray(_getTimeProps, 4),\n timeProps = _getTimeProps2[0],\n localeTimeProps = _getTimeProps2[1],\n showTimeFormat = _getTimeProps2[2],\n propFormat = _getTimeProps2[3];\n\n // ======================= Locales ========================\n var mergedLocale = useLocale(locale, localeTimeProps);\n var mergedShowTime = React.useMemo(function () {\n return fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, mergedLocale);\n }, [internalPicker, showTimeFormat, propFormat, timeProps, mergedLocale]);\n\n // ======================= Warning ========================\n if (process.env.NODE_ENV !== 'production' && picker === 'time') {\n if (['disabledHours', 'disabledMinutes', 'disabledSeconds'].some(function (key) {\n return props[key];\n })) {\n warning(false, \"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.\");\n }\n }\n\n // ======================== Props =========================\n var filledProps = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n prefixCls: prefixCls,\n locale: mergedLocale,\n picker: picker,\n styles: styles,\n classNames: classNames,\n order: order,\n components: _objectSpread({\n input: inputRender\n }, components),\n clearIcon: fillClearIcon(prefixCls, allowClear, clearIcon),\n showTime: mergedShowTime,\n value: values,\n defaultValue: defaultValues,\n pickerValue: pickerValues,\n defaultPickerValue: defaultPickerValues\n }, updater === null || updater === void 0 ? void 0 : updater());\n }, [props]);\n\n // ======================== Format ========================\n var _useFieldFormat = useFieldFormat(internalPicker, mergedLocale, format),\n _useFieldFormat2 = _slicedToArray(_useFieldFormat, 2),\n formatList = _useFieldFormat2[0],\n maskFormat = _useFieldFormat2[1];\n\n // ======================= ReadOnly =======================\n var mergedInputReadOnly = useInputReadOnly(formatList, inputReadOnly, multiple);\n\n // ======================= Boundary =======================\n var disabledBoundaryDate = useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate);\n\n // ====================== Invalidate ======================\n var isInvalidateDate = useInvalidate(generateConfig, picker, disabledBoundaryDate, mergedShowTime);\n\n // ======================== Merged ========================\n var mergedProps = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, filledProps), {}, {\n needConfirm: mergedNeedConfirm,\n inputReadOnly: mergedInputReadOnly,\n disabledDate: disabledBoundaryDate\n });\n }, [filledProps, mergedNeedConfirm, mergedInputReadOnly, disabledBoundaryDate]);\n return [mergedProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { getRowFormat, toArray } from \"../../utils/miscUtil\";\nexport function useFieldFormat(picker, locale, format) {\n return React.useMemo(function () {\n var rawFormat = getRowFormat(picker, locale, format);\n var formatList = toArray(rawFormat);\n var firstFormat = formatList[0];\n var maskFormat = _typeof(firstFormat) === 'object' && firstFormat.type === 'mask' ? firstFormat.format : null;\n return [\n // Format list\n formatList.map(function (config) {\n return typeof config === 'string' || typeof config === 'function' ? config : config.format;\n }),\n // Mask Format\n maskFormat];\n }, [picker, locale, format]);\n}","export default function useInputReadOnly(formatList, inputReadOnly, multiple) {\n if (typeof formatList[0] === 'function' || multiple) {\n return true;\n }\n return inputReadOnly;\n}","import { useEvent } from 'rc-util';\nimport { isSame } from \"../../utils/dateUtil\";\n/**\n * Merge `disabledDate` with `minDate` & `maxDate`.\n */\nexport default function useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate) {\n var mergedDisabledDate = useEvent(function (date, info) {\n if (disabledDate && disabledDate(date, info)) {\n return true;\n }\n if (minDate && generateConfig.isAfter(minDate, date) && !isSame(generateConfig, locale, minDate, date, info.type)) {\n return true;\n }\n if (maxDate && generateConfig.isAfter(date, maxDate) && !isSame(generateConfig, locale, maxDate, date, info.type)) {\n return true;\n }\n return false;\n });\n return mergedDisabledDate;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useEvent } from 'rc-util';\n/**\n * Check if provided date is valid for the `disabledDate` & `showTime.disabledTime`.\n */\nexport default function useInvalidate(generateConfig, picker, disabledDate, showTime) {\n // Check disabled date\n var isInvalidate = useEvent(function (date, info) {\n var outsideInfo = _objectSpread({\n type: picker\n }, info);\n delete outsideInfo.activeIndex;\n if (\n // Date object is invalid\n !generateConfig.isValidate(date) ||\n // Date is disabled by `disabledDate`\n disabledDate && disabledDate(date, outsideInfo)) {\n return true;\n }\n if ((picker === 'date' || picker === 'time') && showTime) {\n var _showTime$disabledTim;\n var range = info && info.activeIndex === 1 ? 'end' : 'start';\n var _ref = ((_showTime$disabledTim = showTime.disabledTime) === null || _showTime$disabledTim === void 0 ? void 0 : _showTime$disabledTim.call(showTime, date, range, {\n from: outsideInfo.from\n })) || {},\n disabledHours = _ref.disabledHours,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n disabledMilliseconds = _ref.disabledMilliseconds;\n var legacyDisabledHours = showTime.disabledHours,\n legacyDisabledMinutes = showTime.disabledMinutes,\n legacyDisabledSeconds = showTime.disabledSeconds;\n var mergedDisabledHours = disabledHours || legacyDisabledHours;\n var mergedDisabledMinutes = disabledMinutes || legacyDisabledMinutes;\n var mergedDisabledSeconds = disabledSeconds || legacyDisabledSeconds;\n var hour = generateConfig.getHour(date);\n var minute = generateConfig.getMinute(date);\n var second = generateConfig.getSecond(date);\n var millisecond = generateConfig.getMillisecond(date);\n if (mergedDisabledHours && mergedDisabledHours().includes(hour)) {\n return true;\n }\n if (mergedDisabledMinutes && mergedDisabledMinutes(hour).includes(minute)) {\n return true;\n }\n if (mergedDisabledSeconds && mergedDisabledSeconds(hour, minute).includes(second)) {\n return true;\n }\n if (disabledMilliseconds && disabledMilliseconds(hour, minute, second).includes(millisecond)) {\n return true;\n }\n }\n return false;\n });\n return isInvalidate;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useDelayState from \"./useDelayState\";\n\n/**\n * Control the open state.\n * Will not close if activeElement is on the popup.\n */\nexport default function useOpen(open, defaultOpen) {\n var disabledList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var onOpenChange = arguments.length > 3 ? arguments[3] : undefined;\n var mergedOpen = disabledList.every(function (disabled) {\n return disabled;\n }) ? false : open;\n\n // Delay for handle the open state, in case fast shift from `open` -> `close` -> `open`\n // const [rafOpen, setRafOpen] = useLockState(open, defaultOpen || false, onOpenChange);\n var _useDelayState = useDelayState(mergedOpen, defaultOpen || false, onOpenChange),\n _useDelayState2 = _slicedToArray(_useDelayState, 2),\n rafOpen = _useDelayState2[0],\n setRafOpen = _useDelayState2[1];\n function setOpen(next) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!config.inherit || rafOpen) {\n setRafOpen(next, config.force);\n }\n }\n return [rafOpen, setOpen];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport raf from \"rc-util/es/raf\";\nimport React from 'react';\n\n/**\n * Will be `true` immediately for next effect.\n * But will be `false` for a delay of effect.\n */\nexport default function useDelayState(value, defaultValue, onChange) {\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n state = _useMergedState2[0],\n setState = _useMergedState2[1];\n var nextValueRef = React.useRef(value);\n\n // ============================= Update =============================\n var rafRef = React.useRef();\n var cancelRaf = function cancelRaf() {\n raf.cancel(rafRef.current);\n };\n var doUpdate = useEvent(function () {\n setState(nextValueRef.current);\n if (onChange && state !== nextValueRef.current) {\n onChange(nextValueRef.current);\n }\n });\n var updateValue = useEvent(function (next, immediately) {\n cancelRaf();\n nextValueRef.current = next;\n if (next || immediately) {\n doUpdate();\n } else {\n rafRef.current = raf(doUpdate);\n }\n });\n React.useEffect(function () {\n return cancelRaf;\n }, []);\n return [state, updateValue];\n}","import * as React from 'react';\nexport default function usePickerRef(ref) {\n var selectorRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current;\n return {\n nativeElement: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.nativeElement,\n focus: function focus(options) {\n var _selectorRef$current2;\n (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 || _selectorRef$current2.focus(options);\n },\n blur: function blur() {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 || _selectorRef$current3.blur();\n }\n };\n });\n return selectorRef;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport default function usePresets(presets, legacyRanges) {\n return React.useMemo(function () {\n if (presets) {\n return presets;\n }\n if (legacyRanges) {\n warning(false, '`ranges` is deprecated. Please use `presets` instead.');\n return Object.entries(legacyRanges).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n label = _ref2[0],\n value = _ref2[1];\n return {\n label: label,\n value: value\n };\n });\n }\n return [];\n }, [presets, legacyRanges]);\n}","import { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\n\n/**\n * Trigger `callback` immediately when `condition` is `true`.\n * But trigger `callback` in next frame when `condition` is `false`.\n */\nexport default function useLockEffect(condition, callback) {\n var delayFrames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n useLayoutUpdateEffect(function () {\n if (condition) {\n callbackRef.current(condition);\n } else {\n var id = raf(function () {\n callbackRef.current(condition);\n }, delayFrames);\n return function () {\n raf.cancel(id);\n };\n }\n }, [condition]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLockEffect from \"./useLockEffect\";\n/**\n * When user first focus one input, any submit will trigger focus another one.\n * When second time focus one input, submit will not trigger focus again.\n * When click outside to close the panel, trigger event if it can trigger onChange.\n */\nexport default function useRangeActive(disabled) {\n var empty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var mergedOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var activeListRef = React.useRef([]);\n var lastOperationRef = React.useRef(null);\n var triggerFocus = function triggerFocus(nextFocus) {\n setFocused(nextFocus);\n };\n\n // ============================= Record =============================\n var lastOperation = function lastOperation(type) {\n if (type) {\n lastOperationRef.current = type;\n }\n return lastOperationRef.current;\n };\n\n // ============================ Strategy ============================\n // Trigger when input enter or input blur or panel close\n var nextActiveIndex = function nextActiveIndex(nextValue) {\n var list = activeListRef.current;\n var filledActiveSet = new Set(list.filter(function (index) {\n return nextValue[index] || empty[index];\n }));\n var nextIndex = list[list.length - 1] === 0 ? 1 : 0;\n if (filledActiveSet.size >= 2 || disabled[nextIndex]) {\n return null;\n }\n return nextIndex;\n };\n\n // ============================= Effect =============================\n // Wait in case it's from the click outside to blur\n useLockEffect(focused || mergedOpen, function () {\n if (!focused) {\n activeListRef.current = [];\n }\n });\n React.useEffect(function () {\n if (focused) {\n activeListRef.current.push(activeIndex);\n }\n }, [focused, activeIndex]);\n return [focused, triggerFocus, lastOperation, activeIndex, setActiveIndex, nextActiveIndex, activeListRef.current];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { fillTime, isSame } from \"../../utils/dateUtil\";\nexport function offsetPanelDate(generateConfig, picker, date, offset) {\n switch (picker) {\n case 'date':\n case 'week':\n return generateConfig.addMonth(date, offset);\n case 'month':\n case 'quarter':\n return generateConfig.addYear(date, offset);\n case 'year':\n return generateConfig.addYear(date, offset * 10);\n case 'decade':\n return generateConfig.addYear(date, offset * 100);\n default:\n return date;\n }\n}\nvar EMPTY_LIST = [];\nexport default function useRangePickerValue(generateConfig, locale, calendarValue, modes, open, activeIndex, pickerMode, multiplePanel) {\n var defaultPickerValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : EMPTY_LIST;\n var pickerValue = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : EMPTY_LIST;\n var timeDefaultValue = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : EMPTY_LIST;\n var onPickerValueChange = arguments.length > 11 ? arguments[11] : undefined;\n var minDate = arguments.length > 12 ? arguments[12] : undefined;\n var maxDate = arguments.length > 13 ? arguments[13] : undefined;\n var isTimePicker = pickerMode === 'time';\n\n // ======================== Active ========================\n // `activeIndex` must be valid to avoid getting empty `pickerValue`\n var mergedActiveIndex = activeIndex || 0;\n\n // ===================== Picker Value =====================\n var getDefaultPickerValue = function getDefaultPickerValue(index) {\n var now = generateConfig.getNow();\n if (isTimePicker) {\n now = fillTime(generateConfig, now);\n }\n return defaultPickerValue[index] || calendarValue[index] || now;\n };\n\n // Align `pickerValue` with `showTime.defaultValue`\n var _pickerValue = _slicedToArray(pickerValue, 2),\n startPickerValue = _pickerValue[0],\n endPickerValue = _pickerValue[1];\n\n // PickerValue state\n var _useMergedState = useMergedState(function () {\n return getDefaultPickerValue(0);\n }, {\n value: startPickerValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedStartPickerValue = _useMergedState2[0],\n setStartPickerValue = _useMergedState2[1];\n var _useMergedState3 = useMergedState(function () {\n return getDefaultPickerValue(1);\n }, {\n value: endPickerValue\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedEndPickerValue = _useMergedState4[0],\n setEndPickerValue = _useMergedState4[1];\n\n // Current PickerValue\n var currentPickerValue = React.useMemo(function () {\n var current = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex];\n\n // Merge the `showTime.defaultValue` into `pickerValue`\n return isTimePicker ? current : fillTime(generateConfig, current, timeDefaultValue[mergedActiveIndex]);\n }, [isTimePicker, mergedStartPickerValue, mergedEndPickerValue, mergedActiveIndex, generateConfig, timeDefaultValue]);\n var setCurrentPickerValue = function setCurrentPickerValue(nextPickerValue) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'panel';\n var updater = [setStartPickerValue, setEndPickerValue][mergedActiveIndex];\n updater(nextPickerValue);\n var clone = [mergedStartPickerValue, mergedEndPickerValue];\n clone[mergedActiveIndex] = nextPickerValue;\n if (onPickerValueChange && (!isSame(generateConfig, locale, mergedStartPickerValue, clone[0], pickerMode) || !isSame(generateConfig, locale, mergedEndPickerValue, clone[1], pickerMode))) {\n onPickerValueChange(clone, {\n source: source,\n range: mergedActiveIndex === 1 ? 'end' : 'start',\n mode: modes\n });\n }\n };\n\n // ======================== Effect ========================\n /**\n * EndDate pickerValue is little different. It should be:\n * - If date picker (without time), endDate is not same year & month as startDate\n * - pickerValue minus one month\n * - Else pass directly\n */\n var getEndDatePickerValue = function getEndDatePickerValue(startDate, endDate) {\n if (multiplePanel) {\n // Basic offset\n var SAME_CHECKER = {\n date: 'month',\n week: 'month',\n month: 'year',\n quarter: 'year'\n };\n var mode = SAME_CHECKER[pickerMode];\n if (mode && !isSame(generateConfig, locale, startDate, endDate, mode)) {\n return offsetPanelDate(generateConfig, pickerMode, endDate, -1);\n }\n\n // Year offset\n if (pickerMode === 'year' && startDate) {\n var srcYear = Math.floor(generateConfig.getYear(startDate) / 10);\n var tgtYear = Math.floor(generateConfig.getYear(endDate) / 10);\n if (srcYear !== tgtYear) {\n return offsetPanelDate(generateConfig, pickerMode, endDate, -1);\n }\n }\n }\n return endDate;\n };\n\n // >>> When switch field, reset the picker value as prev field picker value\n var prevActiveIndexRef = React.useRef(null);\n useLayoutEffect(function () {\n if (open) {\n if (!defaultPickerValue[mergedActiveIndex]) {\n var nextPickerValue = isTimePicker ? null : generateConfig.getNow();\n\n /**\n * 1. If has prevActiveIndex, use it to avoid panel jump\n * 2. If current field has value\n * - If `activeIndex` is 1 and `calendarValue[0]` is not same panel as `calendarValue[1]`,\n * offset `calendarValue[1]` and set it\n * - Else use `calendarValue[activeIndex]`\n * 3. If current field has no value but another field has value, use another field value\n * 4. Else use now (not any `calendarValue` can ref)\n */\n\n if (prevActiveIndexRef.current !== null && prevActiveIndexRef.current !== mergedActiveIndex) {\n // If from another field, not jump picker value\n nextPickerValue = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex ^ 1];\n } else if (calendarValue[mergedActiveIndex]) {\n // Current field has value\n nextPickerValue = mergedActiveIndex === 0 ? calendarValue[0] : getEndDatePickerValue(calendarValue[0], calendarValue[1]);\n } else if (calendarValue[mergedActiveIndex ^ 1]) {\n // Current field has no value but another field has value\n nextPickerValue = calendarValue[mergedActiveIndex ^ 1];\n }\n\n // Only sync when has value, this will sync in the `min-max` logic\n if (nextPickerValue) {\n // nextPickerValue < minDate\n if (minDate && generateConfig.isAfter(minDate, nextPickerValue)) {\n nextPickerValue = minDate;\n }\n\n // maxDate < nextPickerValue\n var offsetPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, nextPickerValue, 1) : nextPickerValue;\n if (maxDate && generateConfig.isAfter(offsetPickerValue, maxDate)) {\n nextPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, maxDate, -1) : maxDate;\n }\n setCurrentPickerValue(nextPickerValue, 'reset');\n }\n }\n }\n }, [open, mergedActiveIndex, calendarValue[mergedActiveIndex]]);\n\n // >>> Reset prevActiveIndex when panel closed\n React.useEffect(function () {\n if (open) {\n prevActiveIndexRef.current = mergedActiveIndex;\n } else {\n prevActiveIndexRef.current = null;\n }\n }, [open, mergedActiveIndex]);\n\n // >>> defaultPickerValue: Resync to `defaultPickerValue` for each panel focused\n useLayoutEffect(function () {\n if (open && defaultPickerValue) {\n if (defaultPickerValue[mergedActiveIndex]) {\n setCurrentPickerValue(defaultPickerValue[mergedActiveIndex], 'reset');\n }\n }\n }, [open, mergedActiveIndex]);\n return [currentPickerValue, setCurrentPickerValue];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Sync value with state.\n * This should only used for internal which not affect outside calculation.\n * Since it's not safe for suspense.\n */\nexport default function useSyncState(defaultValue, controlledValue) {\n var valueRef = React.useRef(defaultValue);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n var getter = function getter(useControlledValueFirst) {\n return useControlledValueFirst && controlledValue !== undefined ? controlledValue : valueRef.current;\n };\n var setter = function setter(nextValue) {\n valueRef.current = nextValue;\n forceUpdate({});\n };\n return [getter, setter, getter(true)];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport * as React from 'react';\nimport useSyncState from \"../../hooks/useSyncState\";\nimport { formatValue, isSame, isSameTimestamp } from \"../../utils/dateUtil\";\nimport { fillIndex } from \"../../utils/miscUtil\";\nimport useLockEffect from \"./useLockEffect\";\nvar EMPTY_VALUE = [];\n\n// Submit Logic:\n// * ✅ Value:\n// * merged value using controlled value, if not, use stateValue\n// * When merged value change, [1] resync calendar value and submit value\n// * ✅ Calender Value:\n// * 💻 When user typing is validate, change the calendar value\n// * 🌅 When user click on the panel, change the calendar value\n// * Submit Value:\n// * 💻 When user blur the input, flush calendar value to submit value\n// * 🌅 When user click on the panel is no needConfirm, flush calendar value to submit value\n// * 🌅 When user click on the panel is needConfirm and click OK, flush calendar value to submit value\n// * Blur logic & close logic:\n// * ✅ For value, always try flush submit\n// * ✅ If `needConfirm`, reset as [1]\n// * Else (`!needConfirm`)\n// * If has another index field, active another index\n// * ✅ Flush submit:\n// * If all the start & end field is confirmed or all blur or panel closed\n// * Update `needSubmit` mark to true\n// * trigger onChange by `needSubmit` and update stateValue\n\nfunction useUtil(generateConfig, locale, formatList) {\n var getDateTexts = function getDateTexts(dates) {\n return dates.map(function (date) {\n return formatValue(date, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n });\n });\n };\n var isSameDates = function isSameDates(source, target) {\n var maxLen = Math.max(source.length, target.length);\n var diffIndex = -1;\n for (var i = 0; i < maxLen; i += 1) {\n var prev = source[i] || null;\n var next = target[i] || null;\n if (prev !== next && !isSameTimestamp(generateConfig, prev, next)) {\n diffIndex = i;\n break;\n }\n }\n return [diffIndex < 0, diffIndex !== 0];\n };\n return [getDateTexts, isSameDates];\n}\nfunction orderDates(dates, generateConfig) {\n return _toConsumableArray(dates).sort(function (a, b) {\n return generateConfig.isAfter(a, b) ? 1 : -1;\n });\n}\n\n/**\n * Used for internal value management.\n * It should always use `mergedValue` in render logic\n */\nexport function useCalendarValue(mergedValue) {\n var _useSyncState = useSyncState(mergedValue),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n calendarValue = _useSyncState2[0],\n setCalendarValue = _useSyncState2[1];\n\n /** Sync calendarValue & submitValue back with value */\n var syncWithValue = useEvent(function () {\n setCalendarValue(mergedValue);\n });\n React.useEffect(function () {\n syncWithValue();\n }, [mergedValue]);\n return [calendarValue, setCalendarValue];\n}\n\n/**\n * Control the internal `value` align with prop `value` and provide a temp `calendarValue` for ui.\n * `calendarValue` will be reset when blur & focus & open.\n */\nexport function useInnerValue(generateConfig, locale, formatList, /** Used for RangePicker. `true` means [DateType, DateType] or will be DateType[] */\nrangeValue,\n/**\n * Trigger order when trigger calendar value change.\n * This should only used in SinglePicker with `multiple` mode.\n * So when `rangeValue` is `true`, order will be ignored.\n */\norder, defaultValue, value, onCalendarChange, onOk) {\n // This is the root value which will sync with controlled or uncontrolled value\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n var mergedValue = innerValue || EMPTY_VALUE;\n\n // ========================= Inner Values =========================\n var _useCalendarValue = useCalendarValue(mergedValue),\n _useCalendarValue2 = _slicedToArray(_useCalendarValue, 2),\n calendarValue = _useCalendarValue2[0],\n setCalendarValue = _useCalendarValue2[1];\n\n // ============================ Change ============================\n var _useUtil = useUtil(generateConfig, locale, formatList),\n _useUtil2 = _slicedToArray(_useUtil, 2),\n getDateTexts = _useUtil2[0],\n isSameDates = _useUtil2[1];\n var triggerCalendarChange = useEvent(function (nextCalendarValues) {\n var clone = _toConsumableArray(nextCalendarValues);\n if (rangeValue) {\n for (var i = 0; i < 2; i += 1) {\n clone[i] = clone[i] || null;\n }\n } else if (order) {\n clone = orderDates(clone.filter(function (date) {\n return date;\n }), generateConfig);\n }\n\n // Update merged value\n var _isSameDates = isSameDates(calendarValue(), clone),\n _isSameDates2 = _slicedToArray(_isSameDates, 2),\n isSameMergedDates = _isSameDates2[0],\n isSameStart = _isSameDates2[1];\n if (!isSameMergedDates) {\n setCalendarValue(clone);\n\n // Trigger calendar change event\n if (onCalendarChange) {\n var cellTexts = getDateTexts(clone);\n onCalendarChange(clone, cellTexts, {\n range: isSameStart ? 'end' : 'start'\n });\n }\n }\n });\n var triggerOk = function triggerOk() {\n if (onOk) {\n onOk(calendarValue());\n }\n };\n return [mergedValue, setInnerValue, calendarValue, triggerCalendarChange, triggerOk];\n}\nexport default function useRangeValue(info, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, open, isInvalidateDate) {\n var generateConfig = info.generateConfig,\n locale = info.locale,\n picker = info.picker,\n onChange = info.onChange,\n allowEmpty = info.allowEmpty,\n order = info.order;\n var orderOnChange = disabled.some(function (d) {\n return d;\n }) ? false : order;\n\n // ============================= Util =============================\n var _useUtil3 = useUtil(generateConfig, locale, formatList),\n _useUtil4 = _slicedToArray(_useUtil3, 2),\n getDateTexts = _useUtil4[0],\n isSameDates = _useUtil4[1];\n\n // ============================ Values ============================\n // Used for trigger `onChange` event.\n // Record current value which is wait for submit.\n var _useSyncState3 = useSyncState(mergedValue),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n submitValue = _useSyncState4[0],\n setSubmitValue = _useSyncState4[1];\n\n /** Sync calendarValue & submitValue back with value */\n var syncWithValue = useEvent(function () {\n setSubmitValue(mergedValue);\n });\n React.useEffect(function () {\n syncWithValue();\n }, [mergedValue]);\n\n // ============================ Submit ============================\n var triggerSubmit = useEvent(function (nextValue) {\n var isNullValue = nextValue === null;\n var clone = _toConsumableArray(nextValue || submitValue());\n\n // Fill null value\n if (isNullValue) {\n var maxLen = Math.max(disabled.length, clone.length);\n for (var i = 0; i < maxLen; i += 1) {\n if (!disabled[i]) {\n clone[i] = null;\n }\n }\n }\n\n // Only when exist value to sort\n if (orderOnChange && clone[0] && clone[1]) {\n clone = orderDates(clone, generateConfig);\n }\n\n // Sync `calendarValue`\n triggerCalendarChange(clone);\n\n // ========= Validate check =========\n var _clone = clone,\n _clone2 = _slicedToArray(_clone, 2),\n start = _clone2[0],\n end = _clone2[1];\n\n // >>> Empty\n var startEmpty = !start;\n var endEmpty = !end;\n var validateEmptyDateRange = allowEmpty ?\n // Validate empty start\n (!startEmpty || allowEmpty[0]) && (\n // Validate empty end\n !endEmpty || allowEmpty[1]) : true;\n\n // >>> Order\n var validateOrder = !order || startEmpty || endEmpty || isSame(generateConfig, locale, start, end, picker) || generateConfig.isAfter(end, start);\n\n // >>> Invalid\n var validateDates =\n // Validate start\n (!start || !isInvalidateDate(start, {\n activeIndex: 0\n })) && (\n // Validate end\n !end || !isInvalidateDate(end, {\n from: start,\n activeIndex: 1\n }));\n\n // >>> Result\n var allPassed =\n // Null value is from clear button\n isNullValue ||\n // Normal check\n validateEmptyDateRange && validateOrder && validateDates;\n if (allPassed) {\n // Sync value with submit value\n setInnerValue(clone);\n var _isSameDates3 = isSameDates(clone, mergedValue),\n _isSameDates4 = _slicedToArray(_isSameDates3, 1),\n isSameMergedDates = _isSameDates4[0];\n\n // Trigger `onChange` if needed\n if (onChange && !isSameMergedDates) {\n onChange(\n // Return null directly if all date are empty\n isNullValue && clone.every(function (val) {\n return !val;\n }) ? null : clone, getDateTexts(clone));\n }\n }\n return allPassed;\n });\n\n // ========================= Flush Submit =========================\n var flushSubmit = useEvent(function (index, needTriggerChange) {\n var nextSubmitValue = fillIndex(submitValue(), index, getCalendarValue()[index]);\n setSubmitValue(nextSubmitValue);\n if (needTriggerChange) {\n triggerSubmit();\n }\n });\n\n // ============================ Effect ============================\n // All finished action trigger after 2 frames\n var interactiveFinished = !focused && !open;\n useLockEffect(!interactiveFinished, function () {\n if (interactiveFinished) {\n // Always try to trigger submit first\n triggerSubmit();\n\n // Trigger calendar change since this is a effect reset\n // https://github.com/ant-design/ant-design/issues/22351\n triggerCalendarChange(mergedValue);\n\n // Sync with value anyway\n syncWithValue();\n }\n }, 2);\n\n // ============================ Return ============================\n return [flushSubmit, triggerSubmit];\n}","export default function useShowNow(picker, mode, showNow, showToday, rangePicker) {\n if (mode !== 'date' && mode !== 'time') {\n return false;\n }\n if (showNow !== undefined) {\n return showNow;\n }\n\n // Compatible with old version `showToday`\n if (showToday !== undefined) {\n return showToday;\n }\n return !rangePicker && (picker === 'date' || picker === 'time');\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nimport { findValidateTime } from \"../PickerPanel/TimePanel/TimePanelBody/util\";\nimport { leftPad } from \"../utils/miscUtil\";\nfunction emptyDisabled() {\n return [];\n}\nfunction generateUnits(start, end) {\n var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var hideDisabledOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var disabledUnits = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var pad = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2;\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n var disabled = disabledUnits.includes(i);\n if (!disabled || !hideDisabledOptions) {\n units.push({\n label: leftPad(i, pad),\n value: i,\n disabled: disabled\n });\n }\n }\n return units;\n}\n\n/**\n * Parse time props to get util info\n */\nexport default function useTimeInfo(generateConfig) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var date = arguments.length > 2 ? arguments[2] : undefined;\n var _ref = props || {},\n use12Hours = _ref.use12Hours,\n _ref$hourStep = _ref.hourStep,\n hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,\n _ref$minuteStep = _ref.minuteStep,\n minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,\n _ref$secondStep = _ref.secondStep,\n secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,\n _ref$millisecondStep = _ref.millisecondStep,\n millisecondStep = _ref$millisecondStep === void 0 ? 100 : _ref$millisecondStep,\n hideDisabledOptions = _ref.hideDisabledOptions,\n disabledTime = _ref.disabledTime,\n disabledHours = _ref.disabledHours,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds;\n var mergedDate = React.useMemo(function () {\n return date || generateConfig.getNow();\n }, [date, generateConfig]);\n\n // ======================== Warnings ========================\n if (process.env.NODE_ENV !== 'production') {\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n }\n\n // ======================== Disabled ========================\n var getDisabledTimes = React.useCallback(function (targetDate) {\n var disabledConfig = (disabledTime === null || disabledTime === void 0 ? void 0 : disabledTime(targetDate)) || {};\n return [disabledConfig.disabledHours || disabledHours || emptyDisabled, disabledConfig.disabledMinutes || disabledMinutes || emptyDisabled, disabledConfig.disabledSeconds || disabledSeconds || emptyDisabled, disabledConfig.disabledMilliseconds || emptyDisabled];\n }, [disabledTime, disabledHours, disabledMinutes, disabledSeconds]);\n var _React$useMemo = React.useMemo(function () {\n return getDisabledTimes(mergedDate);\n }, [mergedDate, getDisabledTimes]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2],\n mergedDisabledMilliseconds = _React$useMemo2[3];\n\n // ========================= Column =========================\n var getAllUnits = React.useCallback(function (getDisabledHours, getDisabledMinutes, getDisabledSeconds, getDisabledMilliseconds) {\n var hours = generateUnits(0, 23, hourStep, hideDisabledOptions, getDisabledHours());\n\n // Hours\n var rowHourUnits = use12Hours ? hours.map(function (unit) {\n return _objectSpread(_objectSpread({}, unit), {}, {\n label: leftPad(unit.value % 12 || 12, 2)\n });\n }) : hours;\n\n // Minutes\n var getMinuteUnits = function getMinuteUnits(nextHour) {\n return generateUnits(0, 59, minuteStep, hideDisabledOptions, getDisabledMinutes(nextHour));\n };\n\n // Seconds\n var getSecondUnits = function getSecondUnits(nextHour, nextMinute) {\n return generateUnits(0, 59, secondStep, hideDisabledOptions, getDisabledSeconds(nextHour, nextMinute));\n };\n\n // Milliseconds\n var getMillisecondUnits = function getMillisecondUnits(nextHour, nextMinute, nextSecond) {\n return generateUnits(0, 999, millisecondStep, hideDisabledOptions, getDisabledMilliseconds(nextHour, nextMinute, nextSecond), 3);\n };\n return [rowHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits];\n }, [hideDisabledOptions, hourStep, use12Hours, millisecondStep, minuteStep, secondStep]);\n var _React$useMemo3 = React.useMemo(function () {\n return getAllUnits(mergedDisabledHours, mergedDisabledMinutes, mergedDisabledSeconds, mergedDisabledMilliseconds);\n }, [getAllUnits, mergedDisabledHours, mergedDisabledMinutes, mergedDisabledSeconds, mergedDisabledMilliseconds]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 4),\n rowHourUnits = _React$useMemo4[0],\n getMinuteUnits = _React$useMemo4[1],\n getSecondUnits = _React$useMemo4[2],\n getMillisecondUnits = _React$useMemo4[3];\n\n // ======================== Validate ========================\n /**\n * Get validate time with `disabledTime`, `certainDate` to specific the date need to check\n */\n var getValidTime = function getValidTime(nextTime, certainDate) {\n var getCheckHourUnits = function getCheckHourUnits() {\n return rowHourUnits;\n };\n var getCheckMinuteUnits = getMinuteUnits;\n var getCheckSecondUnits = getSecondUnits;\n var getCheckMillisecondUnits = getMillisecondUnits;\n if (certainDate) {\n var _getDisabledTimes = getDisabledTimes(certainDate),\n _getDisabledTimes2 = _slicedToArray(_getDisabledTimes, 4),\n targetDisabledHours = _getDisabledTimes2[0],\n targetDisabledMinutes = _getDisabledTimes2[1],\n targetDisabledSeconds = _getDisabledTimes2[2],\n targetDisabledMilliseconds = _getDisabledTimes2[3];\n var _getAllUnits = getAllUnits(targetDisabledHours, targetDisabledMinutes, targetDisabledSeconds, targetDisabledMilliseconds),\n _getAllUnits2 = _slicedToArray(_getAllUnits, 4),\n targetRowHourUnits = _getAllUnits2[0],\n targetGetMinuteUnits = _getAllUnits2[1],\n targetGetSecondUnits = _getAllUnits2[2],\n targetGetMillisecondUnits = _getAllUnits2[3];\n getCheckHourUnits = function getCheckHourUnits() {\n return targetRowHourUnits;\n };\n getCheckMinuteUnits = targetGetMinuteUnits;\n getCheckSecondUnits = targetGetSecondUnits;\n getCheckMillisecondUnits = targetGetMillisecondUnits;\n }\n var validateDate = findValidateTime(nextTime, getCheckHourUnits, getCheckMinuteUnits, getCheckSecondUnits, getCheckMillisecondUnits, generateConfig);\n return validateDate;\n };\n return [\n // getValidTime\n getValidTime,\n // Units\n rowHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function findValidateTime(date, getHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits, generateConfig) {\n var nextDate = date;\n function alignValidate(getUnitValue, setUnitValue, units) {\n var nextValue = generateConfig[getUnitValue](nextDate);\n var nextUnit = units.find(function (unit) {\n return unit.value === nextValue;\n });\n if (!nextUnit || nextUnit.disabled) {\n // Find most closest unit\n var validateUnits = units.filter(function (unit) {\n return !unit.disabled;\n });\n var reverseEnabledUnits = _toConsumableArray(validateUnits).reverse();\n var validateUnit = reverseEnabledUnits.find(function (unit) {\n return unit.value <= nextValue;\n }) || validateUnits[0];\n if (validateUnit) {\n nextValue = validateUnit.value;\n nextDate = generateConfig[setUnitValue](nextDate, nextValue);\n }\n }\n return nextValue;\n }\n\n // Find validate hour\n var nextHour = alignValidate('getHour', 'setHour', getHourUnits());\n\n // Find validate minute\n var nextMinute = alignValidate('getMinute', 'setMinute', getMinuteUnits(nextHour));\n\n // Find validate second\n var nextSecond = alignValidate('getSecond', 'setSecond', getSecondUnits(nextHour, nextMinute));\n\n // Find validate millisecond\n alignValidate('getMillisecond', 'setMillisecond', getMillisecondUnits(nextHour, nextMinute, nextSecond));\n return nextDate;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useTimeInfo from \"../../hooks/useTimeInfo\";\nimport PickerContext from \"../context\";\nexport default function Footer(props) {\n var mode = props.mode,\n internalMode = props.internalMode,\n renderExtraFooter = props.renderExtraFooter,\n showNow = props.showNow,\n showTime = props.showTime,\n onSubmit = props.onSubmit,\n onNow = props.onNow,\n invalid = props.invalid,\n needConfirm = props.needConfirm,\n generateConfig = props.generateConfig,\n disabledDate = props.disabledDate;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n locale = _React$useContext.locale,\n _React$useContext$but = _React$useContext.button,\n Button = _React$useContext$but === void 0 ? 'button' : _React$useContext$but;\n\n // >>> Now\n var now = generateConfig.getNow();\n var _useTimeInfo = useTimeInfo(generateConfig, showTime, now),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 1),\n getValidTime = _useTimeInfo2[0];\n\n // ======================== Extra =========================\n var extraNode = renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter(mode);\n\n // ======================== Ranges ========================\n var nowDisabled = disabledDate(now, {\n type: mode\n });\n var onInternalNow = function onInternalNow() {\n if (!nowDisabled) {\n var validateNow = getValidTime(now);\n onNow(validateNow);\n }\n };\n var nowPrefixCls = \"\".concat(prefixCls, \"-now\");\n var nowBtnPrefixCls = \"\".concat(nowPrefixCls, \"-btn\");\n var presetNode = showNow && /*#__PURE__*/React.createElement(\"li\", {\n className: nowPrefixCls\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(nowBtnPrefixCls, nowDisabled && \"\".concat(nowBtnPrefixCls, \"-disabled\")),\n \"aria-disabled\": nowDisabled,\n onClick: onInternalNow\n }, internalMode === 'date' ? locale.today : locale.now));\n\n // >>> OK\n var okNode = needConfirm && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: invalid,\n onClick: onSubmit\n }, locale.ok));\n var rangeNode = (presetNode || okNode) && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n\n // ======================== Render ========================\n if (!extraNode && !rangeNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, extraNode), rangeNode);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { isSame } from \"../utils/dateUtil\";\n/**\n * Toggles the presence of a value in an array.\n * If the value exists in the array, removed it.\n * Else add it.\n */\nexport default function useToggleDates(generateConfig, locale, panelMode) {\n function toggleDates(list, target) {\n var index = list.findIndex(function (date) {\n return isSame(generateConfig, locale, date, target, panelMode);\n });\n if (index === -1) {\n return [].concat(_toConsumableArray(list), [target]);\n }\n var sliceList = _toConsumableArray(list);\n sliceList.splice(index, 1);\n return sliceList;\n }\n return toggleDates;\n}","import * as React from 'react';\n/** Used for each single Panel. e.g. DatePanel */\nexport var PanelContext = /*#__PURE__*/React.createContext(null);\nexport function usePanelContext() {\n return React.useContext(PanelContext);\n}\n\n/**\n * Get shared props for the SharedPanelProps interface.\n */\nexport function useInfo(props, panelType) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n disabledDate = props.disabledDate,\n minDate = props.minDate,\n maxDate = props.maxDate,\n cellRender = props.cellRender,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue,\n onHover = props.onHover,\n values = props.values,\n pickerValue = props.pickerValue,\n onSelect = props.onSelect,\n prevIcon = props.prevIcon,\n nextIcon = props.nextIcon,\n superPrevIcon = props.superPrevIcon,\n superNextIcon = props.superNextIcon;\n\n // ========================= MISC =========================\n var now = generateConfig.getNow();\n\n // ========================= Info =========================\n var info = {\n now: now,\n values: values,\n pickerValue: pickerValue,\n prefixCls: prefixCls,\n disabledDate: disabledDate,\n minDate: minDate,\n maxDate: maxDate,\n cellRender: cellRender,\n hoverValue: hoverValue,\n hoverRangeValue: hoverRangeValue,\n onHover: onHover,\n locale: locale,\n generateConfig: generateConfig,\n onSelect: onSelect,\n panelType: panelType,\n // Icons\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n superPrevIcon: superPrevIcon,\n superNextIcon: superNextIcon\n };\n return [info, now];\n}\n\n// ============================== Internal ==============================\n\n/**\n * Internal usage for RangePicker to not to show the operation arrow\n */\nexport var PickerHackContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n PickerHackContext.displayName = 'PickerHackContext';\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue, isInRange, isSame } from \"../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"./context\";\nexport default function PanelBody(props) {\n var rowNum = props.rowNum,\n colNum = props.colNum,\n baseDate = props.baseDate,\n getCellDate = props.getCellDate,\n prefixColumn = props.prefixColumn,\n rowClassName = props.rowClassName,\n titleFormat = props.titleFormat,\n getCellText = props.getCellText,\n getCellClassName = props.getCellClassName,\n headerCells = props.headerCells,\n _props$cellSelection = props.cellSelection,\n cellSelection = _props$cellSelection === void 0 ? true : _props$cellSelection,\n disabledDate = props.disabledDate;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n type = _usePanelContext.panelType,\n now = _usePanelContext.now,\n contextDisabledDate = _usePanelContext.disabledDate,\n cellRender = _usePanelContext.cellRender,\n onHover = _usePanelContext.onHover,\n hoverValue = _usePanelContext.hoverValue,\n hoverRangeValue = _usePanelContext.hoverRangeValue,\n generateConfig = _usePanelContext.generateConfig,\n values = _usePanelContext.values,\n locale = _usePanelContext.locale,\n onSelect = _usePanelContext.onSelect;\n var mergedDisabledDate = disabledDate || contextDisabledDate;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // ============================= Context ==============================\n var _React$useContext = React.useContext(PickerHackContext),\n onCellDblClick = _React$useContext.onCellDblClick;\n\n // ============================== Value ===============================\n var matchValues = function matchValues(date) {\n return values.some(function (singleValue) {\n return singleValue && isSame(generateConfig, locale, date, singleValue, type);\n });\n };\n\n // =============================== Body ===============================\n var rows = [];\n for (var row = 0; row < rowNum; row += 1) {\n var rowNode = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var offset = row * colNum + col;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = mergedDisabledDate === null || mergedDisabledDate === void 0 ? void 0 : mergedDisabledDate(currentDate, {\n type: type\n });\n\n // Row Start Cell\n if (col === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n rowNode.push(prefixColumn(rowStartDate));\n }\n }\n\n // Range\n var inRange = false;\n var rangeStart = false;\n var rangeEnd = false;\n if (cellSelection && hoverRangeValue) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),\n hoverStart = _hoverRangeValue[0],\n hoverEnd = _hoverRangeValue[1];\n inRange = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n rangeStart = isSame(generateConfig, locale, currentDate, hoverStart, type);\n rangeEnd = isSame(generateConfig, locale, currentDate, hoverEnd, type);\n }\n\n // Title\n var title = titleFormat ? formatValue(currentDate, {\n locale: locale,\n format: titleFormat,\n generateConfig: generateConfig\n }) : undefined;\n\n // Render\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate));\n rowNode.push( /*#__PURE__*/React.createElement(\"td\", {\n key: col,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), \"\".concat(cellPrefixCls, \"-hover\"), (hoverValue || []).some(function (date) {\n return isSame(generateConfig, locale, currentDate, date, type);\n })), \"\".concat(cellPrefixCls, \"-in-range\"), inRange && !rangeStart && !rangeEnd), \"\".concat(cellPrefixCls, \"-range-start\"), rangeStart), \"\".concat(cellPrefixCls, \"-range-end\"), rangeEnd), \"\".concat(prefixCls, \"-cell-selected\"), !hoverRangeValue &&\n // WeekPicker use row instead\n type !== 'week' && matchValues(currentDate)), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (!disabled && onCellDblClick) {\n onCellDblClick();\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(null);\n }\n }\n }, cellRender ? cellRender(currentDate, {\n prefixCls: prefixCls,\n originNode: inner,\n today: now,\n type: type,\n locale: locale\n }) : inner));\n };\n for (var col = 0; col < colNum; col += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: row,\n className: rowClassName === null || rowClassName === void 0 ? void 0 : rowClassName(rowStartDate)\n }, rowNode));\n }\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { isSameOrAfter } from \"../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"./context\";\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction PanelHeader(props) {\n var offset = props.offset,\n superOffset = props.superOffset,\n onChange = props.onChange,\n getStart = props.getStart,\n getEnd = props.getEnd,\n children = props.children;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n _usePanelContext$prev = _usePanelContext.prevIcon,\n prevIcon = _usePanelContext$prev === void 0 ? \"\\u2039\" : _usePanelContext$prev,\n _usePanelContext$next = _usePanelContext.nextIcon,\n nextIcon = _usePanelContext$next === void 0 ? \"\\u203A\" : _usePanelContext$next,\n _usePanelContext$supe = _usePanelContext.superPrevIcon,\n superPrevIcon = _usePanelContext$supe === void 0 ? \"\\xAB\" : _usePanelContext$supe,\n _usePanelContext$supe2 = _usePanelContext.superNextIcon,\n superNextIcon = _usePanelContext$supe2 === void 0 ? \"\\xBB\" : _usePanelContext$supe2,\n minDate = _usePanelContext.minDate,\n maxDate = _usePanelContext.maxDate,\n generateConfig = _usePanelContext.generateConfig,\n locale = _usePanelContext.locale,\n pickerValue = _usePanelContext.pickerValue,\n type = _usePanelContext.panelType;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var _React$useContext = React.useContext(PickerHackContext),\n hidePrev = _React$useContext.hidePrev,\n hideNext = _React$useContext.hideNext,\n hideHeader = _React$useContext.hideHeader;\n\n // ======================= Limitation =======================\n var disabledOffsetPrev = React.useMemo(function () {\n if (!minDate || !offset || !getEnd) {\n return false;\n }\n var prevPanelLimitDate = getEnd(offset(-1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, prevPanelLimitDate, minDate, type);\n }, [minDate, offset, pickerValue, getEnd, generateConfig, locale, type]);\n var disabledSuperOffsetPrev = React.useMemo(function () {\n if (!minDate || !superOffset || !getEnd) {\n return false;\n }\n var prevPanelLimitDate = getEnd(superOffset(-1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, prevPanelLimitDate, minDate, type);\n }, [minDate, superOffset, pickerValue, getEnd, generateConfig, locale, type]);\n var disabledOffsetNext = React.useMemo(function () {\n if (!maxDate || !offset || !getStart) {\n return false;\n }\n var nextPanelLimitDate = getStart(offset(1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, maxDate, nextPanelLimitDate, type);\n }, [maxDate, offset, pickerValue, getStart, generateConfig, locale, type]);\n var disabledSuperOffsetNext = React.useMemo(function () {\n if (!maxDate || !superOffset || !getStart) {\n return false;\n }\n var nextPanelLimitDate = getStart(superOffset(1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, maxDate, nextPanelLimitDate, type);\n }, [maxDate, superOffset, pickerValue, getStart, generateConfig, locale, type]);\n\n // ========================= Offset =========================\n var onOffset = function onOffset(distance) {\n if (offset) {\n onChange(offset(distance, pickerValue));\n }\n };\n var onSuperOffset = function onSuperOffset(distance) {\n if (superOffset) {\n onChange(superOffset(distance, pickerValue));\n }\n };\n\n // ========================= Render =========================\n if (hideHeader) {\n return null;\n }\n var prevBtnCls = \"\".concat(headerPrefixCls, \"-prev-btn\");\n var nextBtnCls = \"\".concat(headerPrefixCls, \"-next-btn\");\n var superPrevBtnCls = \"\".concat(headerPrefixCls, \"-super-prev-btn\");\n var superNextBtnCls = \"\".concat(headerPrefixCls, \"-super-next-btn\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: headerPrefixCls\n }, superOffset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"super-prev-year\",\n onClick: function onClick() {\n return onSuperOffset(-1);\n },\n tabIndex: -1,\n className: classNames(superPrevBtnCls, disabledSuperOffsetPrev && \"\".concat(superPrevBtnCls, \"-disabled\")),\n disabled: disabledSuperOffsetPrev,\n style: hidePrev ? HIDDEN_STYLE : {}\n }, superPrevIcon), offset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"prev-year\",\n onClick: function onClick() {\n return onOffset(-1);\n },\n tabIndex: -1,\n className: classNames(prevBtnCls, disabledOffsetPrev && \"\".concat(prevBtnCls, \"-disabled\")),\n disabled: disabledOffsetPrev,\n style: hidePrev ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(headerPrefixCls, \"-view\")\n }, children), offset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"next-year\",\n onClick: function onClick() {\n return onOffset(1);\n },\n tabIndex: -1,\n className: classNames(nextBtnCls, disabledOffsetNext && \"\".concat(nextBtnCls, \"-disabled\")),\n disabled: disabledOffsetNext,\n style: hideNext ? HIDDEN_STYLE : {}\n }, nextIcon), superOffset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"super-next-year\",\n onClick: function onClick() {\n return onSuperOffset(1);\n },\n tabIndex: -1,\n className: classNames(superNextBtnCls, disabledSuperOffsetNext && \"\".concat(superNextBtnCls, \"-disabled\")),\n disabled: disabledSuperOffsetNext,\n style: hideNext ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default PanelHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue, getWeekStartDate, isSameDate, isSameMonth, WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange,\n _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'date' : _props$mode,\n disabledDate = props.disabledDate,\n onSelect = props.onSelect,\n onHover = props.onHover,\n showWeek = props.showWeek;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var isWeek = mode === 'week';\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, mode),\n _useInfo2 = _slicedToArray(_useInfo, 2),\n info = _useInfo2[0],\n now = _useInfo2[1];\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var monthStartDate = generateConfig.setDate(pickerValue, 1);\n var baseDate = getWeekStartDate(locale.locale, generateConfig, monthStartDate);\n var month = generateConfig.getMonth(pickerValue);\n\n // =========================== PrefixColumn ===========================\n var showPrefixColumn = showWeek === undefined ? isWeek : showWeek;\n var prefixColumn = showPrefixColumn ? function (date) {\n // >>> Additional check for disabled\n var disabled = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, {\n type: 'week'\n });\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"), _defineProperty({}, \"\".concat(cellPrefixCls, \"-disabled\"), disabled))\n // Operation: Same as code in PanelBody\n ,\n onClick: function onClick() {\n if (!disabled) {\n onSelect(date);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(date);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(null);\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, generateConfig.locale.getWeek(locale.locale, date)));\n } : null;\n\n // ========================= Cells ==========================\n // >>> Header Cells\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n\n // >>> Body Cells\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addDate(date, offset);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellDateFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName(date) {\n var classObj = _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameMonth(generateConfig, date, pickerValue)), \"\".concat(prefixCls, \"-cell-today\"), isSameDate(generateConfig, date, now));\n return classObj;\n };\n\n // ========================= Header =========================\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"year panel\",\n key: \"year\",\n onClick: function onClick() {\n onModeChange('year', pickerValue);\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": \"month panel\",\n key: \"month\",\n onClick: function onClick() {\n onModeChange('month', pickerValue);\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(pickerValue, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, showWeek && \"\".concat(panelPrefixCls, \"-show-week\"))\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n offset: function offset(distance) {\n return generateConfig.addMonth(pickerValue, distance);\n },\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setDate(date, 1);\n },\n getEnd: function getEnd(date) {\n var clone = generateConfig.setDate(date, 1);\n clone = generateConfig.addMonth(clone, 1);\n return generateConfig.addDate(clone, -1);\n }\n }, monthYearNodes), /*#__PURE__*/React.createElement(PanelBody, _extends({\n titleFormat: locale.fieldDateFormat\n }, props, {\n colNum: WEEK_DAY_COUNT,\n rowNum: 6,\n baseDate: baseDate\n // Header\n ,\n headerCells: headerCells\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName,\n prefixColumn: prefixColumn,\n cellSelection: !isWeek\n }))));\n}","import { useEvent } from 'rc-util';\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport * as React from 'react';\nvar SPEED_PTG = 1 / 3;\nexport default function useScrollTo(ulRef, value) {\n // ========================= Scroll =========================\n var scrollingRef = React.useRef(false);\n var scrollRafRef = React.useRef(null);\n var scrollDistRef = React.useRef(null);\n var isScrolling = function isScrolling() {\n return scrollingRef.current;\n };\n var stopScroll = function stopScroll() {\n raf.cancel(scrollRafRef.current);\n scrollingRef.current = false;\n };\n var scrollRafTimesRef = React.useRef();\n var startScroll = function startScroll() {\n var ul = ulRef.current;\n scrollDistRef.current = null;\n scrollRafTimesRef.current = 0;\n if (ul) {\n var targetLi = ul.querySelector(\"[data-value=\\\"\".concat(value, \"\\\"]\"));\n var firstLi = ul.querySelector(\"li\");\n var doScroll = function doScroll() {\n stopScroll();\n scrollingRef.current = true;\n scrollRafTimesRef.current += 1;\n var currentTop = ul.scrollTop;\n var firstLiTop = firstLi.offsetTop;\n var targetLiTop = targetLi.offsetTop;\n var targetTop = targetLiTop - firstLiTop;\n\n // Wait for element exist. 5 frames is enough\n if (targetLiTop === 0 && targetLi !== firstLi || !isVisible(ul)) {\n if (scrollRafTimesRef.current <= 5) {\n scrollRafRef.current = raf(doScroll);\n }\n return;\n }\n var nextTop = currentTop + (targetTop - currentTop) * SPEED_PTG;\n var dist = Math.abs(targetTop - nextTop);\n\n // Break if dist get larger, which means user is scrolling\n if (scrollDistRef.current !== null && scrollDistRef.current < dist) {\n stopScroll();\n return;\n }\n scrollDistRef.current = dist;\n\n // Stop when dist is less than 1\n if (dist <= 1) {\n ul.scrollTop = targetTop;\n stopScroll();\n return;\n }\n\n // IE not support `scrollTo`\n ul.scrollTop = nextTop;\n scrollRafRef.current = raf(doScroll);\n };\n if (targetLi && firstLi) {\n doScroll();\n }\n }\n };\n\n // ======================== Trigger =========================\n var syncScroll = useEvent(startScroll);\n return [syncScroll, stopScroll, isScrolling];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { usePanelContext } from \"../../context\";\nimport useScrollTo from \"./useScrollTo\";\nvar SCROLL_DELAY = 300;\nexport default function TimeColumn(props) {\n var units = props.units,\n value = props.value,\n optionalValue = props.optionalValue,\n type = props.type,\n onChange = props.onChange,\n onHover = props.onHover,\n onDblClick = props.onDblClick,\n changeOnScroll = props.changeOnScroll;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n cellRender = _usePanelContext.cellRender,\n now = _usePanelContext.now,\n locale = _usePanelContext.locale;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var cellPrefixCls = \"\".concat(prefixCls, \"-time-panel-cell\");\n\n // ========================== Refs ==========================\n var ulRef = React.useRef(null);\n\n // ========================= Scroll =========================\n var checkDelayRef = React.useRef();\n var clearDelayCheck = function clearDelayCheck() {\n clearTimeout(checkDelayRef.current);\n };\n\n // ========================== Sync ==========================\n var _useScrollTo = useScrollTo(ulRef, value !== null && value !== void 0 ? value : optionalValue),\n _useScrollTo2 = _slicedToArray(_useScrollTo, 3),\n syncScroll = _useScrollTo2[0],\n stopScroll = _useScrollTo2[1],\n isScrolling = _useScrollTo2[2];\n\n // Effect sync value scroll\n useLayoutEffect(function () {\n syncScroll();\n clearDelayCheck();\n return function () {\n stopScroll();\n clearDelayCheck();\n };\n }, [value, optionalValue, units]);\n\n // ========================= Change =========================\n // Scroll event if sync onScroll\n var onInternalScroll = function onInternalScroll(event) {\n clearDelayCheck();\n var target = event.target;\n if (!isScrolling() && changeOnScroll) {\n checkDelayRef.current = setTimeout(function () {\n var ul = ulRef.current;\n var firstLiTop = ul.querySelector(\"li\").offsetTop;\n var liList = Array.from(ul.querySelectorAll(\"li\"));\n var liTopList = liList.map(function (li) {\n return li.offsetTop - firstLiTop;\n });\n var liDistList = liTopList.map(function (top, index) {\n if (units[index].disabled) {\n return Number.MAX_SAFE_INTEGER;\n }\n return Math.abs(top - target.scrollTop);\n });\n\n // Find min distance index\n var minDist = Math.min.apply(Math, _toConsumableArray(liDistList));\n var minDistIndex = liDistList.findIndex(function (dist) {\n return dist === minDist;\n });\n var targetUnit = units[minDistIndex];\n if (targetUnit && !targetUnit.disabled) {\n onChange(targetUnit.value);\n }\n }, SCROLL_DELAY);\n }\n };\n\n // ========================= Render =========================\n var columnPrefixCls = \"\".concat(panelPrefixCls, \"-column\");\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: columnPrefixCls,\n ref: ulRef,\n \"data-type\": type,\n onScroll: onInternalScroll\n }, units.map(function (_ref) {\n var label = _ref.label,\n unitValue = _ref.value,\n disabled = _ref.disabled;\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, label);\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unitValue,\n className: classNames(cellPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(cellPrefixCls, \"-selected\"), value === unitValue), \"\".concat(cellPrefixCls, \"-disabled\"), disabled)),\n onClick: function onClick() {\n if (!disabled) {\n onChange(unitValue);\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (!disabled && onDblClick) {\n onDblClick();\n }\n },\n onMouseEnter: function onMouseEnter() {\n onHover(unitValue);\n },\n onMouseLeave: function onMouseLeave() {\n onHover(null);\n },\n \"data-value\": unitValue\n }, cellRender ? cellRender(unitValue, {\n prefixCls: prefixCls,\n originNode: inner,\n today: now,\n type: 'time',\n subType: type,\n locale: locale\n }) : inner);\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useTimeInfo from \"../../../hooks/useTimeInfo\";\nimport { formatValue } from \"../../../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"../../context\";\nimport TimeColumn from \"./TimeColumn\";\nfunction isAM(hour) {\n return hour < 12;\n}\nexport default function TimePanelBody(props) {\n var showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n showMillisecond = props.showMillisecond,\n showMeridiem = props.use12Hours,\n changeOnScroll = props.changeOnScroll;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n values = _usePanelContext.values,\n generateConfig = _usePanelContext.generateConfig,\n locale = _usePanelContext.locale,\n onSelect = _usePanelContext.onSelect,\n _usePanelContext$onHo = _usePanelContext.onHover,\n onHover = _usePanelContext$onHo === void 0 ? function () {} : _usePanelContext$onHo,\n pickerValue = _usePanelContext.pickerValue;\n var value = (values === null || values === void 0 ? void 0 : values[0]) || null;\n var _React$useContext = React.useContext(PickerHackContext),\n onCellDblClick = _React$useContext.onCellDblClick;\n\n // ========================== Info ==========================\n var _useTimeInfo = useTimeInfo(generateConfig, props, value),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 5),\n getValidTime = _useTimeInfo2[0],\n rowHourUnits = _useTimeInfo2[1],\n getMinuteUnits = _useTimeInfo2[2],\n getSecondUnits = _useTimeInfo2[3],\n getMillisecondUnits = _useTimeInfo2[4];\n\n // ========================= Value ==========================\n // PickerValue will tell which one to align on the top\n var getUnitValue = function getUnitValue(func) {\n var valueUnitVal = value && generateConfig[func](value);\n var pickerUnitValue = pickerValue && generateConfig[func](pickerValue);\n return [valueUnitVal, pickerUnitValue];\n };\n var _getUnitValue = getUnitValue('getHour'),\n _getUnitValue2 = _slicedToArray(_getUnitValue, 2),\n hour = _getUnitValue2[0],\n pickerHour = _getUnitValue2[1];\n var _getUnitValue3 = getUnitValue('getMinute'),\n _getUnitValue4 = _slicedToArray(_getUnitValue3, 2),\n minute = _getUnitValue4[0],\n pickerMinute = _getUnitValue4[1];\n var _getUnitValue5 = getUnitValue('getSecond'),\n _getUnitValue6 = _slicedToArray(_getUnitValue5, 2),\n second = _getUnitValue6[0],\n pickerSecond = _getUnitValue6[1];\n var _getUnitValue7 = getUnitValue('getMillisecond'),\n _getUnitValue8 = _slicedToArray(_getUnitValue7, 2),\n millisecond = _getUnitValue8[0],\n pickerMillisecond = _getUnitValue8[1];\n var meridiem = hour === null ? null : isAM(hour) ? 'am' : 'pm';\n\n // ========================= Column =========================\n // Hours\n var hourUnits = React.useMemo(function () {\n if (!showMeridiem) {\n return rowHourUnits;\n }\n return isAM(hour) ? rowHourUnits.filter(function (h) {\n return isAM(h.value);\n }) : rowHourUnits.filter(function (h) {\n return !isAM(h.value);\n });\n }, [hour, rowHourUnits, showMeridiem]);\n\n // >>> Pick Fallback\n var getEnabled = function getEnabled(units, val) {\n var _enabledUnits$;\n var enabledUnits = units.filter(function (unit) {\n return !unit.disabled;\n });\n return val !== null && val !== void 0 ? val : // Fallback to enabled value\n enabledUnits === null || enabledUnits === void 0 || (_enabledUnits$ = enabledUnits[0]) === null || _enabledUnits$ === void 0 ? void 0 : _enabledUnits$.value;\n };\n\n // >>> Minutes\n var validHour = getEnabled(rowHourUnits, hour);\n var minuteUnits = React.useMemo(function () {\n return getMinuteUnits(validHour);\n }, [getMinuteUnits, validHour]);\n\n // >>> Seconds\n var validMinute = getEnabled(minuteUnits, minute);\n var secondUnits = React.useMemo(function () {\n return getSecondUnits(validHour, validMinute);\n }, [getSecondUnits, validHour, validMinute]);\n\n // >>> Milliseconds\n var validSecond = getEnabled(secondUnits, second);\n var millisecondUnits = React.useMemo(function () {\n return getMillisecondUnits(validHour, validMinute, validSecond);\n }, [getMillisecondUnits, validHour, validMinute, validSecond]);\n var validMillisecond = getEnabled(millisecondUnits, millisecond);\n\n // Meridiem\n var meridiemUnits = React.useMemo(function () {\n if (!showMeridiem) {\n return [];\n }\n var base = generateConfig.getNow();\n var amDate = generateConfig.setHour(base, 6);\n var pmDate = generateConfig.setHour(base, 18);\n var formatMeridiem = function formatMeridiem(date, defaultLabel) {\n var cellMeridiemFormat = locale.cellMeridiemFormat;\n return cellMeridiemFormat ? formatValue(date, {\n generateConfig: generateConfig,\n locale: locale,\n format: cellMeridiemFormat\n }) : defaultLabel;\n };\n return [{\n label: formatMeridiem(amDate, 'AM'),\n value: 'am',\n disabled: rowHourUnits.every(function (h) {\n return h.disabled || !isAM(h.value);\n })\n }, {\n label: formatMeridiem(pmDate, 'PM'),\n value: 'pm',\n disabled: rowHourUnits.every(function (h) {\n return h.disabled || isAM(h.value);\n })\n }];\n }, [rowHourUnits, showMeridiem, generateConfig, locale]);\n\n // ========================= Change =========================\n /**\n * Check if time is validate or will match to validate one\n */\n var triggerChange = function triggerChange(nextDate) {\n var validateDate = getValidTime(nextDate);\n onSelect(validateDate);\n };\n\n // ========================= Column =========================\n // Create a template date for the trigger change event\n var triggerDateTmpl = React.useMemo(function () {\n var tmpl = value || pickerValue || generateConfig.getNow();\n var isNotNull = function isNotNull(num) {\n return num !== null && num !== undefined;\n };\n if (isNotNull(hour)) {\n tmpl = generateConfig.setHour(tmpl, hour);\n tmpl = generateConfig.setMinute(tmpl, minute);\n tmpl = generateConfig.setSecond(tmpl, second);\n tmpl = generateConfig.setMillisecond(tmpl, millisecond);\n } else if (isNotNull(pickerHour)) {\n tmpl = generateConfig.setHour(tmpl, pickerHour);\n tmpl = generateConfig.setMinute(tmpl, pickerMinute);\n tmpl = generateConfig.setSecond(tmpl, pickerSecond);\n tmpl = generateConfig.setMillisecond(tmpl, pickerMillisecond);\n } else if (isNotNull(validHour)) {\n tmpl = generateConfig.setHour(tmpl, validHour);\n tmpl = generateConfig.setMinute(tmpl, validMinute);\n tmpl = generateConfig.setSecond(tmpl, validSecond);\n tmpl = generateConfig.setMillisecond(tmpl, validMillisecond);\n }\n return tmpl;\n }, [value, pickerValue, hour, minute, second, millisecond, validHour, validMinute, validSecond, validMillisecond, pickerHour, pickerMinute, pickerSecond, pickerMillisecond, generateConfig]);\n\n // ===================== Columns Change =====================\n var fillColumnValue = function fillColumnValue(val, func) {\n if (val === null) {\n return null;\n }\n return generateConfig[func](triggerDateTmpl, val);\n };\n var getNextHourTime = function getNextHourTime(val) {\n return fillColumnValue(val, 'setHour');\n };\n var getNextMinuteTime = function getNextMinuteTime(val) {\n return fillColumnValue(val, 'setMinute');\n };\n var getNextSecondTime = function getNextSecondTime(val) {\n return fillColumnValue(val, 'setSecond');\n };\n var getNextMillisecondTime = function getNextMillisecondTime(val) {\n return fillColumnValue(val, 'setMillisecond');\n };\n var getMeridiemTime = function getMeridiemTime(val) {\n if (val === null) {\n return null;\n }\n if (val === 'am' && !isAM(hour)) {\n return generateConfig.setHour(triggerDateTmpl, hour - 12);\n } else if (val === 'pm' && isAM(hour)) {\n return generateConfig.setHour(triggerDateTmpl, hour + 12);\n }\n return triggerDateTmpl;\n };\n var onHourChange = function onHourChange(val) {\n triggerChange(getNextHourTime(val));\n };\n var onMinuteChange = function onMinuteChange(val) {\n triggerChange(getNextMinuteTime(val));\n };\n var onSecondChange = function onSecondChange(val) {\n triggerChange(getNextSecondTime(val));\n };\n var onMillisecondChange = function onMillisecondChange(val) {\n triggerChange(getNextMillisecondTime(val));\n };\n var onMeridiemChange = function onMeridiemChange(val) {\n triggerChange(getMeridiemTime(val));\n };\n\n // ====================== Column Hover ======================\n var onHourHover = function onHourHover(val) {\n onHover(getNextHourTime(val));\n };\n var onMinuteHover = function onMinuteHover(val) {\n onHover(getNextMinuteTime(val));\n };\n var onSecondHover = function onSecondHover(val) {\n onHover(getNextSecondTime(val));\n };\n var onMillisecondHover = function onMillisecondHover(val) {\n onHover(getNextMillisecondTime(val));\n };\n var onMeridiemHover = function onMeridiemHover(val) {\n onHover(getMeridiemTime(val));\n };\n\n // ========================= Render =========================\n var sharedColumnProps = {\n onDblClick: onCellDblClick,\n changeOnScroll: changeOnScroll\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, showHour && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: hourUnits,\n value: hour,\n optionalValue: pickerHour,\n type: \"hour\",\n onChange: onHourChange,\n onHover: onHourHover\n }, sharedColumnProps)), showMinute && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: minuteUnits,\n value: minute,\n optionalValue: pickerMinute,\n type: \"minute\",\n onChange: onMinuteChange,\n onHover: onMinuteHover\n }, sharedColumnProps)), showSecond && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: secondUnits,\n value: second,\n optionalValue: pickerSecond,\n type: \"second\",\n onChange: onSecondChange,\n onHover: onSecondHover\n }, sharedColumnProps)), showMillisecond && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: millisecondUnits,\n value: millisecond,\n optionalValue: pickerMillisecond,\n type: \"millisecond\",\n onChange: onMillisecondChange,\n onHover: onMillisecondHover\n }, sharedColumnProps)), showMeridiem && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: meridiemUnits,\n value: meridiem,\n type: \"meridiem\",\n onChange: onMeridiemChange,\n onHover: onMeridiemHover\n }, sharedColumnProps)));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelHeader from \"../PanelHeader\";\nimport TimePanelBody from \"./TimePanelBody\";\nexport default function TimePanel(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n locale = props.locale,\n generateConfig = props.generateConfig,\n showTime = props.showTime;\n var _ref = showTime || {},\n format = _ref.format;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'time'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls)\n }, /*#__PURE__*/React.createElement(PanelHeader, null, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\"), /*#__PURE__*/React.createElement(TimePanelBody, showTime)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport { useEvent, useMergedState, warning } from 'rc-util';\nimport * as React from 'react';\nimport useLocale from \"../hooks/useLocale\";\nimport { fillShowTimeConfig, getTimeProps } from \"../hooks/useTimeConfig\";\nimport useToggleDates from \"../hooks/useToggleDates\";\nimport PickerContext from \"../PickerInput/context\";\nimport useCellRender from \"../PickerInput/hooks/useCellRender\";\nimport { isSame } from \"../utils/dateUtil\";\nimport { pickProps, toArray } from \"../utils/miscUtil\";\nimport { PickerHackContext } from \"./context\";\nimport DatePanel from \"./DatePanel\";\nimport DateTimePanel from \"./DateTimePanel\";\nimport DecadePanel from \"./DecadePanel\";\nimport MonthPanel from \"./MonthPanel\";\nimport QuarterPanel from \"./QuarterPanel\";\nimport TimePanel from \"./TimePanel\";\nimport WeekPanel from \"./WeekPanel\";\nimport YearPanel from \"./YearPanel\";\nvar DefaultComponents = {\n date: DatePanel,\n datetime: DateTimePanel,\n week: WeekPanel,\n month: MonthPanel,\n quarter: QuarterPanel,\n year: YearPanel,\n decade: DecadePanel,\n time: TimePanel\n};\nfunction PickerPanel(props, ref) {\n var _React$useContext;\n var locale = props.locale,\n generateConfig = props.generateConfig,\n direction = props.direction,\n prefixCls = props.prefixCls,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n multiple = props.multiple,\n defaultValue = props.defaultValue,\n value = props.value,\n onChange = props.onChange,\n onSelect = props.onSelect,\n defaultPickerValue = props.defaultPickerValue,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n mode = props.mode,\n onPanelChange = props.onPanelChange,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n showTime = props.showTime,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue,\n cellRender = props.cellRender,\n dateRender = props.dateRender,\n monthCellRender = props.monthCellRender,\n _props$components = props.components,\n components = _props$components === void 0 ? {} : _props$components,\n hideHeader = props.hideHeader;\n var mergedPrefixCls = ((_React$useContext = React.useContext(PickerContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.prefixCls) || prefixCls || 'rc-picker';\n\n // ========================== Refs ==========================\n var rootRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current\n };\n });\n\n // ========================== Time ==========================\n // Auto `format` need to check `showTime.showXXX` first.\n // And then merge the `locale` into `mergedShowTime`.\n var _getTimeProps = getTimeProps(props),\n _getTimeProps2 = _slicedToArray(_getTimeProps, 4),\n timeProps = _getTimeProps2[0],\n localeTimeProps = _getTimeProps2[1],\n showTimeFormat = _getTimeProps2[2],\n propFormat = _getTimeProps2[3];\n\n // ========================= Locale =========================\n var filledLocale = useLocale(locale, localeTimeProps);\n\n // ========================= Picker =========================\n var internalPicker = picker === 'date' && showTime ? 'datetime' : picker;\n\n // ======================== ShowTime ========================\n var mergedShowTime = React.useMemo(function () {\n return fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, filledLocale);\n }, [internalPicker, showTimeFormat, propFormat, timeProps, filledLocale]);\n\n // ========================== Now ===========================\n var now = generateConfig.getNow();\n\n // ========================== Mode ==========================\n var _useMergedState = useMergedState(picker, {\n value: mode,\n postState: function postState(val) {\n return val || 'date';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedMode = _useMergedState2[0],\n setMergedMode = _useMergedState2[1];\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ========================= Toggle =========================\n var toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ========================= Value ==========================\n // >>> Real value\n // Interactive with `onChange` event which only trigger when the `mode` is `picker`\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n innerValue = _useMergedState4[0],\n setMergedValue = _useMergedState4[1];\n var mergedValue = React.useMemo(function () {\n // Clean up `[null]`\n var values = toArray(innerValue).filter(function (val) {\n return val;\n });\n return multiple ? values : values.slice(0, 1);\n }, [innerValue, multiple]);\n\n // Sync value and only trigger onChange event when changed\n var triggerChange = useEvent(function (nextValue) {\n setMergedValue(nextValue);\n if (onChange && (nextValue === null || mergedValue.length !== nextValue.length || mergedValue.some(function (ori, index) {\n return !isSame(generateConfig, locale, ori, nextValue[index], internalPicker);\n }))) {\n onChange === null || onChange === void 0 || onChange(multiple ? nextValue : nextValue[0]);\n }\n });\n\n // >>> CalendarValue\n // CalendarValue is a temp value for user operation\n // which will only trigger `onCalendarChange` but not `onChange`\n var onInternalSelect = useEvent(function (newDate) {\n onSelect === null || onSelect === void 0 || onSelect(newDate);\n if (mergedMode === picker) {\n var nextValues = multiple ? toggleDates(mergedValue, newDate) : [newDate];\n triggerChange(nextValues);\n }\n });\n\n // >>> PickerValue\n // PickerValue is used to control the current displaying panel\n var _useMergedState5 = useMergedState(defaultPickerValue || mergedValue[0] || now, {\n value: pickerValue\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedPickerValue = _useMergedState6[0],\n setInternalPickerValue = _useMergedState6[1];\n React.useEffect(function () {\n if (mergedValue[0] && !pickerValue) {\n setInternalPickerValue(mergedValue[0]);\n }\n }, [mergedValue[0]]);\n\n // Both trigger when manually pickerValue or mode change\n var triggerPanelChange = function triggerPanelChange(viewDate, nextMode) {\n onPanelChange === null || onPanelChange === void 0 || onPanelChange(viewDate || pickerValue, nextMode || mergedMode);\n };\n var setPickerValue = function setPickerValue(nextPickerValue) {\n var triggerPanelEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setInternalPickerValue(nextPickerValue);\n onPickerValueChange === null || onPickerValueChange === void 0 || onPickerValueChange(nextPickerValue);\n if (triggerPanelEvent) {\n triggerPanelChange(nextPickerValue);\n }\n };\n var triggerModeChange = function triggerModeChange(nextMode, viewDate) {\n setMergedMode(nextMode);\n if (viewDate) {\n setPickerValue(viewDate);\n }\n triggerPanelChange(viewDate, nextMode);\n };\n var onPanelValueSelect = function onPanelValueSelect(nextValue) {\n onInternalSelect(nextValue);\n setPickerValue(nextValue);\n\n // Update mode if needed\n if (mergedMode !== picker) {\n var decadeYearQueue = ['decade', 'year'];\n var decadeYearMonthQueue = [].concat(decadeYearQueue, ['month']);\n var pickerQueue = {\n quarter: [].concat(decadeYearQueue, ['quarter']),\n week: [].concat(_toConsumableArray(decadeYearMonthQueue), ['week']),\n date: [].concat(_toConsumableArray(decadeYearMonthQueue), ['date'])\n };\n var queue = pickerQueue[picker] || decadeYearMonthQueue;\n var index = queue.indexOf(mergedMode);\n var nextMode = queue[index + 1];\n if (nextMode) {\n triggerModeChange(nextMode, nextValue);\n }\n }\n };\n\n // ======================= Hover Date =======================\n var hoverRangeDate = React.useMemo(function () {\n var start;\n var end;\n if (Array.isArray(hoverRangeValue)) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2);\n start = _hoverRangeValue[0];\n end = _hoverRangeValue[1];\n } else {\n start = hoverRangeValue;\n }\n\n // Return for not exist\n if (!start && !end) {\n return null;\n }\n\n // Fill if has empty\n start = start || end;\n end = end || start;\n return generateConfig.isAfter(start, end) ? [end, start] : [start, end];\n }, [hoverRangeValue, generateConfig]);\n\n // ======================= Components =======================\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // ======================= Components =======================\n var PanelComponent = components[internalMode] || DefaultComponents[internalMode] || DatePanel;\n\n // ======================== Context =========================\n var parentHackContext = React.useContext(PickerHackContext);\n var pickerPanelContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, parentHackContext), {}, {\n hideHeader: hideHeader\n });\n }, [parentHackContext, hideHeader]);\n\n // ======================== Warnings ========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!mergedValue || mergedValue.every(function (val) {\n return generateConfig.isValidate(val);\n }), 'Invalidate date pass to `value` or `defaultValue`.');\n }\n\n // ========================= Render =========================\n var panelCls = \"\".concat(mergedPrefixCls, \"-panel\");\n var panelProps = pickProps(props, [\n // Week\n 'showWeek',\n // Icons\n 'prevIcon', 'nextIcon', 'superPrevIcon', 'superNextIcon',\n // Disabled\n 'disabledDate', 'minDate', 'maxDate',\n // Hover\n 'onHover']);\n return /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: pickerPanelContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: rootRef,\n tabIndex: tabIndex,\n className: classNames(panelCls, _defineProperty({}, \"\".concat(panelCls, \"-rtl\"), direction === 'rtl'))\n }, /*#__PURE__*/React.createElement(PanelComponent, _extends({}, panelProps, {\n // Time\n showTime: mergedShowTime\n // MISC\n ,\n prefixCls: mergedPrefixCls,\n locale: filledLocale,\n generateConfig: generateConfig\n // Mode\n ,\n onModeChange: triggerModeChange\n // Value\n ,\n pickerValue: mergedPickerValue,\n onPickerValueChange: function onPickerValueChange(nextPickerValue) {\n setPickerValue(nextPickerValue, true);\n },\n value: mergedValue[0],\n onSelect: onPanelValueSelect,\n values: mergedValue\n // Render\n ,\n cellRender: onInternalCellRender\n // Hover\n ,\n hoverRangeValue: hoverRangeDate,\n hoverValue: hoverValue\n }))));\n}\nvar RefPanelPicker = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(PickerPanel));\nif (process.env.NODE_ENV !== 'production') {\n RefPanelPicker.displayName = 'PanelPicker';\n}\n\n// Make support generic\nexport default RefPanelPicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useTimeInfo from \"../../hooks/useTimeInfo\";\nimport { fillTime } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nimport TimePanel from \"../TimePanel\";\nexport default function DateTimePanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n showTime = props.showTime,\n onSelect = props.onSelect,\n value = props.value,\n pickerValue = props.pickerValue,\n onHover = props.onHover;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n\n // =============================== Time ===============================\n var _useTimeInfo = useTimeInfo(generateConfig, showTime),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 1),\n getValidTime = _useTimeInfo2[0];\n\n // Merge the time info from `value` or `pickerValue`\n var mergeTime = function mergeTime(date) {\n if (value) {\n return fillTime(generateConfig, date, value);\n }\n return fillTime(generateConfig, date, pickerValue);\n };\n\n // ============================== Hover ===============================\n var onDateHover = function onDateHover(date) {\n onHover === null || onHover === void 0 || onHover(date ? mergeTime(date) : date);\n };\n\n // ============================== Select ==============================\n var onDateSelect = function onDateSelect(date) {\n // Merge with current time\n var cloneDate = mergeTime(date);\n onSelect(getValidTime(cloneDate, cloneDate));\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n onSelect: onDateSelect,\n onHover: onDateHover\n })), /*#__PURE__*/React.createElement(TimePanel, props));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { isInRange, isSameWeek } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nexport default function WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue;\n\n // =============================== Row ================================\n var localeName = locale.locale;\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(currentDate) {\n var rangeCls = {};\n if (hoverRangeValue) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),\n rangeStart = _hoverRangeValue[0],\n rangeEnd = _hoverRangeValue[1];\n var isRangeStart = isSameWeek(generateConfig, localeName, rangeStart, currentDate);\n var isRangeEnd = isSameWeek(generateConfig, localeName, rangeEnd, currentDate);\n rangeCls[\"\".concat(rowPrefixCls, \"-range-start\")] = isRangeStart;\n rangeCls[\"\".concat(rowPrefixCls, \"-range-end\")] = isRangeEnd;\n rangeCls[\"\".concat(rowPrefixCls, \"-range-hover\")] = !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, currentDate);\n }\n if (hoverValue) {\n rangeCls[\"\".concat(rowPrefixCls, \"-hover\")] = hoverValue.some(function (date) {\n return isSameWeek(generateConfig, localeName, currentDate, date);\n });\n }\n return classNames(rowPrefixCls, _defineProperty({}, \"\".concat(rowPrefixCls, \"-selected\"), !hoverRangeValue && isSameWeek(generateConfig, localeName, value, currentDate)),\n // Patch for hover range\n rangeCls);\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n mode: \"week\",\n panelName: \"week\",\n rowClassName: rowClassName\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function MonthPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'month'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var baseDate = generateConfig.setMonth(pickerValue, 0);\n\n // ========================= Month ==========================\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset);\n };\n var getCellText = function getCellText(date) {\n var month = generateConfig.getMonth(date);\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month];\n };\n var getCellClassName = function getCellClassName() {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), true);\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n var startDate = generateConfig.setDate(currentDate, 1);\n var nextMonthStartDate = generateConfig.setMonth(startDate, generateConfig.getMonth(startDate) + 1);\n var endDate = generateConfig.addDate(nextMonthStartDate, -1);\n return disabledDate(startDate, disabledInfo) && disabledDate(endDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n \"aria-label\": \"year panel\",\n onClick: function onClick() {\n onModeChange('year');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setMonth(date, 0);\n },\n getEnd: function getEnd(date) {\n return generateConfig.setMonth(date, 11);\n }\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n titleFormat: locale.fieldMonthFormat,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'quarter'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var baseDate = generateConfig.setMonth(pickerValue, 0);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellQuarterFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName() {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), true);\n };\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n \"aria-label\": \"year panel\",\n onClick: function onClick() {\n onModeChange('year');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setMonth(date, 0);\n },\n getEnd: function getEnd(date) {\n return generateConfig.setMonth(date, 11);\n }\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n titleFormat: locale.fieldQuarterFormat,\n colNum: 4,\n rowNum: 1,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue, isInRange, isSameYear } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function YearPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'year'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var getStartYear = function getStartYear(date) {\n var startYear = Math.floor(generateConfig.getYear(pickerValue) / 10) * 10;\n return generateConfig.setYear(date, startYear);\n };\n var getEndYear = function getEndYear(date) {\n var startYear = getStartYear(date);\n return generateConfig.addYear(startYear, 9);\n };\n var startYearDate = getStartYear(pickerValue);\n var endYearDate = getEndYear(pickerValue);\n var baseDate = generateConfig.addYear(startYearDate, -1);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellYearFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName(date) {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameYear(generateConfig, date, startYearDate) || isSameYear(generateConfig, date, endYearDate) || isInRange(generateConfig, startYearDate, endYearDate, date));\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n // Start\n var startMonth = generateConfig.setMonth(currentDate, 0);\n var startDate = generateConfig.setDate(startMonth, 1);\n\n // End\n var endMonth = generateConfig.addYear(startDate, 1);\n var endDate = generateConfig.addDate(endMonth, -1);\n return disabledDate(startDate, disabledInfo) && disabledDate(endDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"decade\",\n \"aria-label\": \"decade panel\",\n onClick: function onClick() {\n onModeChange('decade');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, formatValue(startYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }), \"-\", formatValue(endYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance * 10);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: getStartYear,\n getEnd: getEndYear\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n titleFormat: locale.fieldYearFormat,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue, isInRange, isSameDecade } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function DecadePanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'decade'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var getStartYear = function getStartYear(date) {\n var startYear = Math.floor(generateConfig.getYear(pickerValue) / 100) * 100;\n return generateConfig.setYear(date, startYear);\n };\n var getEndYear = function getEndYear(date) {\n var startYear = getStartYear(date);\n return generateConfig.addYear(startYear, 99);\n };\n var startYearDate = getStartYear(pickerValue);\n var endYearDate = getEndYear(pickerValue);\n var baseDate = generateConfig.addYear(startYearDate, -10);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * 10);\n };\n var getCellText = function getCellText(date) {\n var cellYearFormat = locale.cellYearFormat;\n var startYearStr = formatValue(date, {\n locale: locale,\n format: cellYearFormat,\n generateConfig: generateConfig\n });\n var endYearStr = formatValue(generateConfig.addYear(date, 9), {\n locale: locale,\n format: cellYearFormat,\n generateConfig: generateConfig\n });\n return \"\".concat(startYearStr, \"-\").concat(endYearStr);\n };\n var getCellClassName = function getCellClassName(date) {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameDecade(generateConfig, date, startYearDate) || isSameDecade(generateConfig, date, endYearDate) || isInRange(generateConfig, startYearDate, endYearDate, date));\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n // Start\n var baseStartDate = generateConfig.setDate(currentDate, 1);\n var baseStartMonth = generateConfig.setMonth(baseStartDate, 0);\n var baseStartYear = generateConfig.setYear(baseStartMonth, Math.floor(generateConfig.getYear(baseStartMonth) / 10) * 10);\n\n // End\n var baseEndYear = generateConfig.addYear(baseStartYear, 10);\n var baseEndDate = generateConfig.addDate(baseEndYear, -1);\n return disabledDate(baseStartYear, disabledInfo) && disabledDate(baseEndDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = \"\".concat(formatValue(startYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }), \"-\").concat(formatValue(endYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance * 100);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: getStartYear,\n getEnd: getEndYear\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport PickerPanel from \"../../PickerPanel\";\nimport { PickerHackContext } from \"../../PickerPanel/context\";\nimport PickerContext from \"../context\";\nimport { offsetPanelDate } from \"../hooks/useRangePickerValue\";\nexport default function PopupPanel(props) {\n var picker = props.picker,\n multiplePanel = props.multiplePanel,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n needConfirm = props.needConfirm,\n onSubmit = props.onSubmit,\n range = props.range,\n hoverValue = props.hoverValue;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n generateConfig = _React$useContext.generateConfig;\n\n // ======================== Offset ========================\n var internalOffsetDate = React.useCallback(function (date, offset) {\n return offsetPanelDate(generateConfig, picker, date, offset);\n }, [generateConfig, picker]);\n var nextPickerValue = React.useMemo(function () {\n return internalOffsetDate(pickerValue, 1);\n }, [pickerValue, internalOffsetDate]);\n\n // Outside\n var onSecondPickerValueChange = function onSecondPickerValueChange(nextDate) {\n onPickerValueChange(internalOffsetDate(nextDate, -1));\n };\n\n // ======================= Context ========================\n var sharedContext = {\n onCellDblClick: function onCellDblClick() {\n if (needConfirm) {\n onSubmit();\n }\n }\n };\n var hideHeader = picker === 'time';\n\n // ======================== Props =========================\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n hoverValue: null,\n hoverRangeValue: null,\n hideHeader: hideHeader\n });\n if (range) {\n pickerProps.hoverRangeValue = hoverValue;\n } else {\n pickerProps.hoverValue = hoverValue;\n }\n\n // ======================== Render ========================\n // Multiple\n if (multiplePanel) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread(_objectSpread({}, sharedContext), {}, {\n hideNext: true\n })\n }, /*#__PURE__*/React.createElement(PickerPanel, pickerProps)), /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread(_objectSpread({}, sharedContext), {}, {\n hidePrev: true\n })\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, pickerProps, {\n pickerValue: nextPickerValue,\n onPickerValueChange: onSecondPickerValueChange\n }))));\n }\n\n // Single\n return /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread({}, sharedContext)\n }, /*#__PURE__*/React.createElement(PickerPanel, pickerProps));\n}","import * as React from 'react';\nfunction executeValue(value) {\n return typeof value === 'function' ? value() : value;\n}\nexport default function PresetPanel(props) {\n var prefixCls = props.prefixCls,\n presets = props.presets,\n _onClick = props.onClick,\n onHover = props.onHover;\n if (!presets.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-presets\")\n }, /*#__PURE__*/React.createElement(\"ul\", null, presets.map(function (_ref, index) {\n var label = _ref.label,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n onClick: function onClick() {\n _onClick(executeValue(value));\n },\n onMouseEnter: function onMouseEnter() {\n onHover(executeValue(value));\n },\n onMouseLeave: function onMouseLeave() {\n onHover(null);\n }\n }, label);\n })));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport * as React from 'react';\nimport { toArray } from \"../../utils/miscUtil\";\nimport { getRealPlacement, getoffsetUnit } from \"../../utils/uiUtil\";\nimport PickerContext from \"../context\";\nimport Footer from \"./Footer\";\nimport PopupPanel from \"./PopupPanel\";\nimport PresetPanel from \"./PresetPanel\";\nexport default function Popup(props) {\n var panelRender = props.panelRender,\n internalMode = props.internalMode,\n picker = props.picker,\n showNow = props.showNow,\n range = props.range,\n multiple = props.multiple,\n _props$activeOffset = props.activeOffset,\n activeOffset = _props$activeOffset === void 0 ? 0 : _props$activeOffset,\n placement = props.placement,\n presets = props.presets,\n onPresetHover = props.onPresetHover,\n onPresetSubmit = props.onPresetSubmit,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPanelMouseDown = props.onPanelMouseDown,\n direction = props.direction,\n value = props.value,\n onSelect = props.onSelect,\n isInvalid = props.isInvalid,\n defaultOpenValue = props.defaultOpenValue,\n onOk = props.onOk,\n onSubmit = props.onSubmit;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n var panelPrefixCls = \"\".concat(prefixCls, \"-panel\");\n var rtl = direction === 'rtl';\n\n // ========================= Refs =========================\n var arrowRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n\n // ======================== Offset ========================\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n containerWidth = _React$useState2[0],\n setContainerWidth = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerOffset = _React$useState4[0],\n setContainerOffset = _React$useState4[1];\n var onResize = function onResize(info) {\n if (info.offsetWidth) {\n setContainerWidth(info.offsetWidth);\n }\n };\n React.useEffect(function () {\n // `activeOffset` is always align with the active input element\n // So we need only check container contains the `activeOffset`\n if (range) {\n var _arrowRef$current;\n // Offset in case container has border radius\n var arrowWidth = ((_arrowRef$current = arrowRef.current) === null || _arrowRef$current === void 0 ? void 0 : _arrowRef$current.offsetWidth) || 0;\n var maxOffset = containerWidth - arrowWidth;\n if (activeOffset <= maxOffset) {\n setContainerOffset(0);\n } else {\n setContainerOffset(activeOffset + arrowWidth - containerWidth);\n }\n }\n }, [containerWidth, activeOffset, range]);\n\n // ======================== Custom ========================\n function filterEmpty(list) {\n return list.filter(function (item) {\n return item;\n });\n }\n var valueList = React.useMemo(function () {\n return filterEmpty(toArray(value));\n }, [value]);\n var isTimePickerEmptyValue = picker === 'time' && !valueList.length;\n var footerSubmitValue = React.useMemo(function () {\n if (isTimePickerEmptyValue) {\n return filterEmpty([defaultOpenValue]);\n }\n return valueList;\n }, [isTimePickerEmptyValue, valueList, defaultOpenValue]);\n var popupPanelValue = isTimePickerEmptyValue ? defaultOpenValue : valueList;\n var disableSubmit = React.useMemo(function () {\n // Empty is invalid\n if (!footerSubmitValue.length) {\n return true;\n }\n return footerSubmitValue.some(function (val) {\n return isInvalid(val);\n });\n }, [footerSubmitValue, isInvalid]);\n var onFooterSubmit = function onFooterSubmit() {\n // For TimePicker, we will additional trigger the value update\n if (isTimePickerEmptyValue) {\n onSelect(defaultOpenValue);\n }\n onOk();\n onSubmit();\n };\n var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presets,\n onClick: onPresetSubmit,\n onHover: onPresetHover\n }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(PopupPanel, _extends({}, props, {\n value: popupPanelValue\n })), /*#__PURE__*/React.createElement(Footer, _extends({}, props, {\n showNow: multiple ? false : showNow,\n invalid: disableSubmit,\n onSubmit: onFooterSubmit\n }))));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n\n // ======================== Render ========================\n var containerPrefixCls = \"\".concat(panelPrefixCls, \"-container\");\n var marginLeft = 'marginLeft';\n var marginRight = 'marginRight';\n\n // Container\n var renderNode = /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onPanelMouseDown,\n tabIndex: -1,\n className: classNames(containerPrefixCls, // Used for Today Button style, safe to remove if no need\n \"\".concat(prefixCls, \"-\").concat(internalMode, \"-panel-container\")),\n style: _defineProperty(_defineProperty({}, rtl ? marginRight : marginLeft, containerOffset), rtl ? marginLeft : marginRight, 'auto')\n // Still wish not to lose focus on mouse down\n // onMouseDown={(e) => {\n // // e.preventDefault();\n // }}\n ,\n onFocus: onFocus,\n onBlur: onBlur\n }, mergedNodes);\n if (range) {\n var realPlacement = getRealPlacement(placement, rtl);\n var offsetUnit = getoffsetUnit(realPlacement, rtl);\n renderNode = /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onPanelMouseDown,\n ref: wrapperRef,\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: _defineProperty({}, offsetUnit, activeOffset)\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize\n }, renderNode));\n }\n return renderNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { formatValue } from \"../../../utils/dateUtil\";\nexport default function useInputProps(props, /** Used for SinglePicker */\npostProps) {\n var format = props.format,\n maskFormat = props.maskFormat,\n generateConfig = props.generateConfig,\n locale = props.locale,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n inputReadOnly = props.inputReadOnly,\n required = props.required,\n ariaRequired = props['aria-required'],\n onSubmit = props.onSubmit,\n _onFocus = props.onFocus,\n _onBlur = props.onBlur,\n onInputChange = props.onInputChange,\n onInvalid = props.onInvalid,\n open = props.open,\n onOpenChange = props.onOpenChange,\n _onKeyDown = props.onKeyDown,\n _onChange = props.onChange,\n activeHelp = props.activeHelp,\n name = props.name,\n autoComplete = props.autoComplete,\n id = props.id,\n value = props.value,\n invalid = props.invalid,\n placeholder = props.placeholder,\n disabled = props.disabled,\n activeIndex = props.activeIndex,\n allHelp = props.allHelp,\n picker = props.picker;\n\n // ======================== Parser ========================\n var parseDate = function parseDate(str, formatStr) {\n var parsed = generateConfig.locale.parse(locale.locale, str, [formatStr]);\n return parsed && generateConfig.isValidate(parsed) ? parsed : null;\n };\n\n // ========================= Text =========================\n var firstFormat = format[0];\n var getText = React.useCallback(function (date) {\n return formatValue(date, {\n locale: locale,\n format: firstFormat,\n generateConfig: generateConfig\n });\n }, [locale, generateConfig, firstFormat]);\n var valueTexts = React.useMemo(function () {\n return value.map(getText);\n }, [value, getText]);\n\n // ========================= Size =========================\n var size = React.useMemo(function () {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof firstFormat === 'function' ? firstFormat(generateConfig.getNow()).length : firstFormat.length;\n return Math.max(defaultSize, length) + 2;\n }, [firstFormat, picker, generateConfig]);\n\n // ======================= Validate =======================\n var _validateFormat = function validateFormat(text) {\n for (var i = 0; i < format.length; i += 1) {\n var singleFormat = format[i];\n\n // Only support string type\n if (typeof singleFormat === 'string') {\n var parsed = parseDate(text, singleFormat);\n if (parsed) {\n return parsed;\n }\n }\n }\n return false;\n };\n\n // ======================== Input =========================\n var getInputProps = function getInputProps(index) {\n function getProp(propValue) {\n return index !== undefined ? propValue[index] : propValue;\n }\n var pickedAttrs = pickAttrs(props, {\n aria: true,\n data: true\n });\n var inputProps = _objectSpread(_objectSpread({}, pickedAttrs), {}, {\n // ============== Shared ==============\n format: maskFormat,\n validateFormat: function validateFormat(text) {\n return !!_validateFormat(text);\n },\n preserveInvalidOnBlur: preserveInvalidOnBlur,\n readOnly: inputReadOnly,\n required: required,\n 'aria-required': ariaRequired,\n name: name,\n autoComplete: autoComplete,\n size: size,\n // ============= By Index =============\n id: getProp(id),\n value: getProp(valueTexts) || '',\n invalid: getProp(invalid),\n placeholder: getProp(placeholder),\n active: activeIndex === index,\n helped: allHelp || activeHelp && activeIndex === index,\n disabled: getProp(disabled),\n onFocus: function onFocus(event) {\n _onFocus(event, index);\n },\n onBlur: function onBlur(event) {\n // Blur do not trigger close\n // Since it may focus to the popup panel\n _onBlur(event, index);\n },\n onSubmit: onSubmit,\n // Get validate text value\n onChange: function onChange(text) {\n onInputChange();\n var parsed = _validateFormat(text);\n if (parsed) {\n onInvalid(false, index);\n _onChange(parsed, index);\n return;\n }\n\n // Tell outer that the value typed is invalid.\n // If text is empty, it means valid.\n onInvalid(!!text, index);\n },\n onHelp: function onHelp() {\n onOpenChange(true, {\n index: index\n });\n },\n onKeyDown: function onKeyDown(event) {\n var prevented = false;\n _onKeyDown === null || _onKeyDown === void 0 || _onKeyDown(event, function () {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`preventDefault` callback is deprecated. Please call `event.preventDefault` directly.');\n }\n prevented = true;\n });\n if (!event.defaultPrevented && !prevented) {\n switch (event.key) {\n case 'Escape':\n onOpenChange(false, {\n index: index\n });\n break;\n case 'Enter':\n if (!open) {\n onOpenChange(true);\n }\n break;\n }\n }\n }\n }, postProps === null || postProps === void 0 ? void 0 : postProps({\n valueTexts: valueTexts\n }));\n\n // ============== Clean Up ==============\n Object.keys(inputProps).forEach(function (key) {\n if (inputProps[key] === undefined) {\n delete inputProps[key];\n }\n });\n return inputProps;\n };\n return [getInputProps, getText];\n}","import * as React from 'react';\nimport { pickProps } from \"../../../utils/miscUtil\";\nvar propNames = ['onMouseEnter', 'onMouseLeave'];\nexport default function useRootProps(props) {\n return React.useMemo(function () {\n return pickProps(props, propNames);\n }, [props]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"icon\", \"type\"],\n _excluded2 = [\"onClear\"];\nimport * as React from 'react';\nimport PickerContext from \"../context\";\nexport default function Icon(props) {\n var icon = props.icon,\n type = props.type,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n return icon ? /*#__PURE__*/React.createElement(\"span\", _extends({\n className: \"\".concat(prefixCls, \"-\").concat(type)\n }, restProps), icon) : null;\n}\nexport function ClearIcon(_ref) {\n var onClear = _ref.onClear,\n restProps = _objectWithoutProperties(_ref, _excluded2);\n return /*#__PURE__*/React.createElement(Icon, _extends({}, restProps, {\n type: \"clear\",\n role: \"button\",\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: function onClick(e) {\n e.stopPropagation();\n onClear();\n }\n }));\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar FORMAT_KEYS = ['YYYY', 'MM', 'DD', 'HH', 'mm', 'ss', 'SSS'];\n// Use Chinese character to avoid conflict with the mask format\nvar REPLACE_KEY = '顧';\nvar MaskFormat = /*#__PURE__*/function () {\n function MaskFormat(format) {\n _classCallCheck(this, MaskFormat);\n _defineProperty(this, \"format\", void 0);\n _defineProperty(this, \"maskFormat\", void 0);\n _defineProperty(this, \"cells\", void 0);\n _defineProperty(this, \"maskCells\", void 0);\n this.format = format;\n\n // Generate mask format\n var replaceKeys = FORMAT_KEYS.map(function (key) {\n return \"(\".concat(key, \")\");\n }).join('|');\n var replaceReg = new RegExp(replaceKeys, 'g');\n this.maskFormat = format.replace(replaceReg,\n // Use Chinese character to avoid user use it in format\n function (key) {\n return REPLACE_KEY.repeat(key.length);\n });\n\n // Generate cells\n var cellReg = new RegExp(\"(\".concat(FORMAT_KEYS.join('|'), \")\"));\n var strCells = (format.split(cellReg) || []).filter(function (str) {\n return str;\n });\n var offset = 0;\n this.cells = strCells.map(function (text) {\n var mask = FORMAT_KEYS.includes(text);\n var start = offset;\n var end = offset + text.length;\n offset = end;\n return {\n text: text,\n mask: mask,\n start: start,\n end: end\n };\n });\n\n // Mask cells\n this.maskCells = this.cells.filter(function (cell) {\n return cell.mask;\n });\n }\n _createClass(MaskFormat, [{\n key: \"getSelection\",\n value: function getSelection(maskCellIndex) {\n var _ref = this.maskCells[maskCellIndex] || {},\n start = _ref.start,\n end = _ref.end;\n return [start || 0, end || 0];\n }\n\n /** Check given text match format */\n }, {\n key: \"match\",\n value: function match(text) {\n for (var i = 0; i < this.maskFormat.length; i += 1) {\n var maskChar = this.maskFormat[i];\n var textChar = text[i];\n if (!textChar || maskChar !== REPLACE_KEY && maskChar !== textChar) {\n return false;\n }\n }\n return true;\n }\n\n /** Get mask cell count */\n }, {\n key: \"size\",\n value: function size() {\n return this.maskCells.length;\n }\n }, {\n key: \"getMaskCellIndex\",\n value: function getMaskCellIndex(anchorIndex) {\n var closetDist = Number.MAX_SAFE_INTEGER;\n var closetIndex = 0;\n for (var i = 0; i < this.maskCells.length; i += 1) {\n var _this$maskCells$i = this.maskCells[i],\n start = _this$maskCells$i.start,\n end = _this$maskCells$i.end;\n if (anchorIndex >= start && anchorIndex <= end) {\n return i;\n }\n var dist = Math.min(Math.abs(anchorIndex - start), Math.abs(anchorIndex - end));\n if (dist < closetDist) {\n closetDist = dist;\n closetIndex = i;\n }\n }\n return closetIndex;\n }\n }]);\n return MaskFormat;\n}();\nexport { MaskFormat as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"active\", \"showActiveCls\", \"suffixIcon\", \"format\", \"validateFormat\", \"onChange\", \"onInput\", \"helped\", \"onHelp\", \"onSubmit\", \"onKeyDown\", \"preserveInvalidOnBlur\", \"invalid\", \"clearIcon\"];\nimport classNames from 'classnames';\nimport { useEvent } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { leftPad } from \"../../utils/miscUtil\";\nimport PickerContext from \"../context\";\nimport useLockEffect from \"../hooks/useLockEffect\";\nimport Icon from \"./Icon\";\nimport MaskFormat from \"./MaskFormat\";\nimport { getMaskRange } from \"./util\";\n\n// Format logic\n//\n// First time on focus:\n// 1. check if the text is valid, if not fill with format\n// 2. set highlight cell to the first cell\n// Cells\n// 1. Selection the index cell, set inner `cacheValue` to ''\n// 2. Key input filter non-number char, patch after the `cacheValue`\n// 1. Replace the `cacheValue` with input align the cell length\n// 2. Re-selection the mask cell\n// 3. If `cacheValue` match the limit length or cell format (like 1 ~ 12 month), go to next cell\n\nvar Input = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var active = props.active,\n _props$showActiveCls = props.showActiveCls,\n showActiveCls = _props$showActiveCls === void 0 ? true : _props$showActiveCls,\n suffixIcon = props.suffixIcon,\n format = props.format,\n validateFormat = props.validateFormat,\n onChange = props.onChange,\n onInput = props.onInput,\n helped = props.helped,\n onHelp = props.onHelp,\n onSubmit = props.onSubmit,\n onKeyDown = props.onKeyDown,\n _props$preserveInvali = props.preserveInvalidOnBlur,\n preserveInvalidOnBlur = _props$preserveInvali === void 0 ? false : _props$preserveInvali,\n invalid = props.invalid,\n clearIcon = props.clearIcon,\n restProps = _objectWithoutProperties(props, _excluded);\n var value = props.value,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseUp = props.onMouseUp;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n _React$useContext$inp = _React$useContext.input,\n Component = _React$useContext$inp === void 0 ? 'input' : _React$useContext$inp;\n var inputPrefixCls = \"\".concat(prefixCls, \"-input\");\n\n // ======================== Value =========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var _React$useState3 = React.useState(value),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalInputValue = _React$useState4[0],\n setInputValue = _React$useState4[1];\n var _React$useState5 = React.useState(''),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n focusCellText = _React$useState6[0],\n setFocusCellText = _React$useState6[1];\n var _React$useState7 = React.useState(null),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n focusCellIndex = _React$useState8[0],\n setFocusCellIndex = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n forceSelectionSyncMark = _React$useState10[0],\n forceSelectionSync = _React$useState10[1];\n var inputValue = internalInputValue || '';\n\n // Sync value if needed\n React.useEffect(function () {\n setInputValue(value);\n }, [value]);\n\n // ========================= Refs =========================\n var holderRef = React.useRef();\n var inputRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: holderRef.current,\n inputElement: inputRef.current,\n focus: function focus(options) {\n inputRef.current.focus(options);\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ======================== Format ========================\n var maskFormat = React.useMemo(function () {\n return new MaskFormat(format || '');\n }, [format]);\n var _React$useMemo = React.useMemo(function () {\n if (helped) {\n return [0, 0];\n }\n return maskFormat.getSelection(focusCellIndex);\n }, [maskFormat, focusCellIndex, helped]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n selectionStart = _React$useMemo2[0],\n selectionEnd = _React$useMemo2[1];\n\n // ======================== Modify ========================\n // When input modify content, trigger `onHelp` if is not the format\n var onModify = function onModify(text) {\n if (text && text !== format && text !== value) {\n onHelp();\n }\n };\n\n // ======================== Change ========================\n /**\n * Triggered by paste, keyDown and focus to show format\n */\n var triggerInputChange = useEvent(function (text) {\n if (validateFormat(text)) {\n onChange(text);\n }\n setInputValue(text);\n onModify(text);\n });\n\n // Directly trigger `onChange` if `format` is empty\n var onInternalChange = function onInternalChange(event) {\n // Hack `onChange` with format to do nothing\n if (!format) {\n var text = event.target.value;\n onModify(text);\n setInputValue(text);\n onChange(text);\n }\n };\n var onFormatPaste = function onFormatPaste(event) {\n // Get paste text\n var pasteText = event.clipboardData.getData('text');\n if (validateFormat(pasteText)) {\n triggerInputChange(pasteText);\n }\n };\n\n // ======================== Mouse =========================\n // When `mouseDown` get focus, it's better to not to change the selection\n // Since the up position maybe not is the first cell\n var mouseDownRef = React.useRef(false);\n var onFormatMouseDown = function onFormatMouseDown() {\n mouseDownRef.current = true;\n };\n var onFormatMouseUp = function onFormatMouseUp(event) {\n var _ref = event.target,\n start = _ref.selectionStart;\n var closeMaskIndex = maskFormat.getMaskCellIndex(start);\n setFocusCellIndex(closeMaskIndex);\n\n // Force update the selection\n forceSelectionSync({});\n onMouseUp === null || onMouseUp === void 0 || onMouseUp(event);\n mouseDownRef.current = false;\n };\n\n // ====================== Focus Blur ======================\n var onFormatFocus = function onFormatFocus(event) {\n setFocused(true);\n setFocusCellIndex(0);\n setFocusCellText('');\n onFocus(event);\n };\n var onSharedBlur = function onSharedBlur(event) {\n onBlur(event);\n };\n var onFormatBlur = function onFormatBlur(event) {\n setFocused(false);\n onSharedBlur(event);\n };\n\n // ======================== Active ========================\n // Check if blur need reset input value\n useLockEffect(active, function () {\n if (!active && !preserveInvalidOnBlur) {\n setInputValue(value);\n }\n });\n\n // ======================= Keyboard =======================\n var onSharedKeyDown = function onSharedKeyDown(event) {\n if (event.key === 'Enter' && validateFormat(inputValue)) {\n onSubmit();\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);\n };\n var onFormatKeyDown = function onFormatKeyDown(event) {\n onSharedKeyDown(event);\n var key = event.key;\n\n // Save the cache with cell text\n var nextCellText = null;\n\n // Fill in the input\n var nextFillText = null;\n var maskCellLen = selectionEnd - selectionStart;\n var cellFormat = format.slice(selectionStart, selectionEnd);\n\n // Cell Index\n var offsetCellIndex = function offsetCellIndex(offset) {\n setFocusCellIndex(function (idx) {\n var nextIndex = idx + offset;\n nextIndex = Math.max(nextIndex, 0);\n nextIndex = Math.min(nextIndex, maskFormat.size() - 1);\n return nextIndex;\n });\n };\n\n // Range\n var offsetCellValue = function offsetCellValue(offset) {\n var _getMaskRange = getMaskRange(cellFormat),\n _getMaskRange2 = _slicedToArray(_getMaskRange, 3),\n rangeStart = _getMaskRange2[0],\n rangeEnd = _getMaskRange2[1],\n rangeDefault = _getMaskRange2[2];\n var currentText = inputValue.slice(selectionStart, selectionEnd);\n var currentTextNum = Number(currentText);\n if (isNaN(currentTextNum)) {\n return String(rangeDefault ? rangeDefault : offset > 0 ? rangeStart : rangeEnd);\n }\n var num = currentTextNum + offset;\n var range = rangeEnd - rangeStart + 1;\n return String(rangeStart + (range + num - rangeStart) % range);\n };\n switch (key) {\n // =============== Remove ===============\n case 'Backspace':\n case 'Delete':\n nextCellText = '';\n nextFillText = cellFormat;\n break;\n\n // =============== Arrows ===============\n // Left key\n case 'ArrowLeft':\n nextCellText = '';\n offsetCellIndex(-1);\n break;\n\n // Right key\n case 'ArrowRight':\n nextCellText = '';\n offsetCellIndex(1);\n break;\n\n // Up key\n case 'ArrowUp':\n nextCellText = '';\n nextFillText = offsetCellValue(1);\n break;\n\n // Down key\n case 'ArrowDown':\n nextCellText = '';\n nextFillText = offsetCellValue(-1);\n break;\n\n // =============== Number ===============\n default:\n if (!isNaN(Number(key))) {\n nextCellText = focusCellText + key;\n nextFillText = nextCellText;\n }\n break;\n }\n\n // Update cell text\n if (nextCellText !== null) {\n setFocusCellText(nextCellText);\n if (nextCellText.length >= maskCellLen) {\n // Go to next cell\n offsetCellIndex(1);\n setFocusCellText('');\n }\n }\n\n // Update the input text\n if (nextFillText !== null) {\n // Replace selection range with `nextCellText`\n var nextFocusValue =\n // before\n inputValue.slice(0, selectionStart) +\n // replace\n leftPad(nextFillText, maskCellLen) +\n // after\n inputValue.slice(selectionEnd);\n triggerInputChange(nextFocusValue.slice(0, format.length));\n }\n\n // Always trigger selection sync after key down\n forceSelectionSync({});\n };\n\n // ======================== Format ========================\n var rafRef = React.useRef();\n useLayoutEffect(function () {\n if (!focused || !format || mouseDownRef.current) {\n return;\n }\n\n // Reset with format if not match\n if (!maskFormat.match(inputValue)) {\n triggerInputChange(format);\n return;\n }\n\n // Match the selection range\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n\n // Chrome has the bug anchor position looks not correct but actually correct\n rafRef.current = raf(function () {\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n });\n return function () {\n raf.cancel(rafRef.current);\n };\n }, [maskFormat, format, focused, inputValue, focusCellIndex, selectionStart, selectionEnd, forceSelectionSyncMark, triggerInputChange]);\n\n // ======================== Render ========================\n // Input props for format\n var inputProps = format ? {\n onFocus: onFormatFocus,\n onBlur: onFormatBlur,\n onKeyDown: onFormatKeyDown,\n onMouseDown: onFormatMouseDown,\n onMouseUp: onFormatMouseUp,\n onPaste: onFormatPaste\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: holderRef,\n className: classNames(inputPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(inputPrefixCls, \"-active\"), active && showActiveCls), \"\".concat(inputPrefixCls, \"-placeholder\"), helped))\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: inputRef,\n \"aria-invalid\": invalid,\n autoComplete: \"off\"\n }, restProps, {\n onKeyDown: onSharedKeyDown,\n onBlur: onSharedBlur\n // Replace with format\n }, inputProps, {\n // Value\n value: inputValue,\n onChange: onInternalChange\n })), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), clearIcon);\n});\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nexport default Input;","export function getMaskRange(key) {\n var PresetRange = {\n YYYY: [0, 9999, new Date().getFullYear()],\n MM: [1, 12],\n DD: [1, 31],\n HH: [0, 23],\n mm: [0, 59],\n ss: [0, 59],\n SSS: [0, 999]\n };\n return PresetRange[key];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"clearIcon\", \"suffixIcon\", \"separator\", \"activeIndex\", \"activeHelp\", \"allHelp\", \"focused\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"locale\", \"generateConfig\", \"placeholder\", \"className\", \"style\", \"onClick\", \"onClear\", \"value\", \"onChange\", \"onSubmit\", \"onInputChange\", \"format\", \"maskFormat\", \"preserveInvalidOnBlur\", \"onInvalid\", \"disabled\", \"invalid\", \"inputReadOnly\", \"direction\", \"onOpenChange\", \"onActiveOffset\", \"placement\", \"onMouseDown\", \"required\", \"aria-required\", \"autoFocus\"],\n _excluded2 = [\"index\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nimport PickerContext from \"../context\";\nimport useInputProps from \"./hooks/useInputProps\";\nimport useRootProps from \"./hooks/useRootProps\";\nimport Icon, { ClearIcon } from \"./Icon\";\nimport Input from \"./Input\";\nimport { getoffsetUnit, getRealPlacement } from \"../../utils/uiUtil\";\nfunction RangeSelector(props, ref) {\n var id = props.id,\n clearIcon = props.clearIcon,\n suffixIcon = props.suffixIcon,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '~' : _props$separator,\n activeIndex = props.activeIndex,\n activeHelp = props.activeHelp,\n allHelp = props.allHelp,\n focused = props.focused,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n locale = props.locale,\n generateConfig = props.generateConfig,\n placeholder = props.placeholder,\n className = props.className,\n style = props.style,\n onClick = props.onClick,\n onClear = props.onClear,\n value = props.value,\n onChange = props.onChange,\n onSubmit = props.onSubmit,\n onInputChange = props.onInputChange,\n format = props.format,\n maskFormat = props.maskFormat,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n onInvalid = props.onInvalid,\n disabled = props.disabled,\n invalid = props.invalid,\n inputReadOnly = props.inputReadOnly,\n direction = props.direction,\n onOpenChange = props.onOpenChange,\n onActiveOffset = props.onActiveOffset,\n placement = props.placement,\n _onMouseDown = props.onMouseDown,\n required = props.required,\n ariaRequired = props['aria-required'],\n autoFocus = props.autoFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var rtl = direction === 'rtl';\n\n // ======================== Prefix ========================\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n\n // ========================== Id ==========================\n var ids = React.useMemo(function () {\n if (typeof id === 'string') {\n return [id];\n }\n var mergedId = id || {};\n return [mergedId.start, mergedId.end];\n }, [id]);\n\n // ========================= Refs =========================\n var rootRef = React.useRef();\n var inputStartRef = React.useRef();\n var inputEndRef = React.useRef();\n var getInput = function getInput(index) {\n var _index;\n return (_index = [inputStartRef, inputEndRef][index]) === null || _index === void 0 ? void 0 : _index.current;\n };\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current,\n focus: function focus(options) {\n if (_typeof(options) === 'object') {\n var _getInput;\n var _ref = options || {},\n _ref$index = _ref.index,\n _index2 = _ref$index === void 0 ? 0 : _ref$index,\n rest = _objectWithoutProperties(_ref, _excluded2);\n (_getInput = getInput(_index2)) === null || _getInput === void 0 || _getInput.focus(rest);\n } else {\n var _getInput2;\n (_getInput2 = getInput(options !== null && options !== void 0 ? options : 0)) === null || _getInput2 === void 0 || _getInput2.focus();\n }\n },\n blur: function blur() {\n var _getInput3, _getInput4;\n (_getInput3 = getInput(0)) === null || _getInput3 === void 0 || _getInput3.blur();\n (_getInput4 = getInput(1)) === null || _getInput4 === void 0 || _getInput4.blur();\n }\n };\n });\n\n // ======================== Props =========================\n var rootProps = useRootProps(restProps);\n\n // ===================== Placeholder ======================\n var mergedPlaceholder = React.useMemo(function () {\n return Array.isArray(placeholder) ? placeholder : [placeholder, placeholder];\n }, [placeholder]);\n\n // ======================== Inputs ========================\n var _useInputProps = useInputProps(_objectSpread(_objectSpread({}, props), {}, {\n id: ids,\n placeholder: mergedPlaceholder\n })),\n _useInputProps2 = _slicedToArray(_useInputProps, 1),\n getInputProps = _useInputProps2[0];\n\n // ====================== ActiveBar =======================\n var realPlacement = getRealPlacement(placement, rtl);\n var offsetUnit = getoffsetUnit(realPlacement, rtl);\n var placementRight = realPlacement === null || realPlacement === void 0 ? void 0 : realPlacement.toLowerCase().endsWith('right');\n var _React$useState = React.useState({\n position: 'absolute',\n width: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeBarStyle = _React$useState2[0],\n setActiveBarStyle = _React$useState2[1];\n var syncActiveOffset = useEvent(function () {\n var input = getInput(activeIndex);\n if (input) {\n var _input$nativeElement = input.nativeElement,\n offsetWidth = _input$nativeElement.offsetWidth,\n offsetLeft = _input$nativeElement.offsetLeft,\n offsetParent = _input$nativeElement.offsetParent;\n var parentWidth = (offsetParent === null || offsetParent === void 0 ? void 0 : offsetParent.offsetWidth) || 0;\n var activeOffset = placementRight ? parentWidth - offsetWidth - offsetLeft : offsetLeft;\n setActiveBarStyle(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, _defineProperty({\n width: offsetWidth\n }, offsetUnit, activeOffset));\n });\n onActiveOffset(activeOffset);\n }\n });\n React.useEffect(function () {\n syncActiveOffset();\n }, [activeIndex]);\n\n // ======================== Clear =========================\n var showClear = clearIcon && (value[0] && !disabled[0] || value[1] && !disabled[1]);\n\n // ======================= Disabled =======================\n var startAutoFocus = autoFocus && !disabled[0];\n var endAutoFocus = autoFocus && !startAutoFocus && !disabled[1];\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: syncActiveOffset\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, rootProps, {\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-disabled\"), disabled.every(function (i) {\n return i;\n })), \"\".concat(prefixCls, \"-invalid\"), invalid.some(function (i) {\n return i;\n })), \"\".concat(prefixCls, \"-rtl\"), rtl), className),\n style: style,\n ref: rootRef,\n onClick: onClick\n // Not lose current input focus\n ,\n onMouseDown: function onMouseDown(e) {\n var target = e.target;\n if (target !== inputStartRef.current.inputElement && target !== inputEndRef.current.inputElement) {\n e.preventDefault();\n }\n _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(e);\n }\n }), /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputStartRef\n }, getInputProps(0), {\n autoFocus: startAutoFocus,\n \"date-range\": \"start\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\")\n }, separator), /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputEndRef\n }, getInputProps(1), {\n autoFocus: endAutoFocus,\n \"date-range\": \"end\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: activeBarStyle\n }), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n })));\n}\nvar RefRangeSelector = /*#__PURE__*/React.forwardRef(RangeSelector);\nif (process.env.NODE_ENV !== 'production') {\n RefRangeSelector.displayName = 'RangeSelector';\n}\nexport default RefRangeSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { fillIndex, getFromDate, toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangeDisabledDate from \"./hooks/useRangeDisabledDate\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport RangeSelector from \"./Selector/RangeSelector\";\nfunction separateConfig(config, defaultConfig) {\n var singleConfig = config !== null && config !== void 0 ? config : defaultConfig;\n if (Array.isArray(singleConfig)) {\n return singleConfig;\n }\n return [singleConfig, singleConfig];\n}\n\n/** Used for change event, it should always be not undefined */\n\nfunction getActiveRange(activeIndex) {\n return activeIndex === 1 ? 'end' : 'start';\n}\nfunction RangePicker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props, function () {\n var disabled = props.disabled,\n allowEmpty = props.allowEmpty;\n var mergedDisabled = separateConfig(disabled, false);\n var mergedAllowEmpty = separateConfig(allowEmpty, false);\n return {\n disabled: mergedDisabled,\n allowEmpty: mergedAllowEmpty\n };\n }),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var prefixCls = filledProps.prefixCls,\n styles = filledProps.styles,\n classNames = filledProps.classNames,\n placement = filledProps.placement,\n defaultValue = filledProps.defaultValue,\n value = filledProps.value,\n needConfirm = filledProps.needConfirm,\n onKeyDown = filledProps.onKeyDown,\n disabled = filledProps.disabled,\n allowEmpty = filledProps.allowEmpty,\n disabledDate = filledProps.disabledDate,\n minDate = filledProps.minDate,\n maxDate = filledProps.maxDate,\n defaultOpen = filledProps.defaultOpen,\n open = filledProps.open,\n onOpenChange = filledProps.onOpenChange,\n locale = filledProps.locale,\n generateConfig = filledProps.generateConfig,\n picker = filledProps.picker,\n showNow = filledProps.showNow,\n showToday = filledProps.showToday,\n showTime = filledProps.showTime,\n mode = filledProps.mode,\n onPanelChange = filledProps.onPanelChange,\n onCalendarChange = filledProps.onCalendarChange,\n onOk = filledProps.onOk,\n defaultPickerValue = filledProps.defaultPickerValue,\n pickerValue = filledProps.pickerValue,\n onPickerValueChange = filledProps.onPickerValueChange,\n inputReadOnly = filledProps.inputReadOnly,\n suffixIcon = filledProps.suffixIcon,\n onFocus = filledProps.onFocus,\n onBlur = filledProps.onBlur,\n presets = filledProps.presets,\n ranges = filledProps.ranges,\n components = filledProps.components,\n cellRender = filledProps.cellRender,\n dateRender = filledProps.dateRender,\n monthCellRender = filledProps.monthCellRender,\n onClick = filledProps.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, disabled, onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n setMergeOpen = _useOpen2[1];\n var triggerOpen = function triggerOpen(nextOpen, config) {\n // No need to open if all disabled\n if (disabled.some(function (fieldDisabled) {\n return !fieldDisabled;\n }) || !nextOpen) {\n setMergeOpen(nextOpen, config);\n }\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, true, false, defaultValue, value, onCalendarChange, onOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n var _useRangeActive = useRangeActive(disabled, allowEmpty, mergedOpen),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 7),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3],\n setActiveIndex = _useRangeActive2[4],\n nextActiveIndex = _useRangeActive2[5],\n activeIndexList = _useRangeActive2[6];\n var onSharedFocus = function onSharedFocus(event, index) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n var onSharedBlur = function onSharedBlur(event, index) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n\n // ======================= ShowTime =======================\n /** Used for Popup panel */\n var mergedShowTime = React.useMemo(function () {\n if (!showTime) {\n return null;\n }\n var disabledTime = showTime.disabledTime;\n var proxyDisabledTime = disabledTime ? function (date) {\n var range = getActiveRange(activeIndex);\n var fromDate = getFromDate(calendarValue, activeIndexList, activeIndex);\n return disabledTime(date, range, {\n from: fromDate\n });\n } : undefined;\n return _objectSpread(_objectSpread({}, showTime), {}, {\n disabledTime: proxyDisabledTime\n });\n }, [showTime, activeIndex, calendarValue, activeIndexList]);\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n modes = _useMergedState2[0],\n setModes = _useMergedState2[1];\n var mergedMode = modes[activeIndex] || picker;\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ====================== PanelCount ======================\n var multiplePanel = internalMode === picker && internalMode !== 'time';\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);\n\n // ======================== Value =========================\n var _useRangeValue = useRangeValue(filledProps, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` by check `disabledDate` */\n flushSubmit = _useRangeValue2[0],\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ===================== DisabledDate =====================\n var mergedDisabledDate = useRangeDisabledDate(calendarValue, disabled, activeIndexList, generateConfig, locale, disabledDate);\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n\n // ===================== Picker Value =====================\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, modes, mergedOpen, activeIndex, internalPicker, multiplePanel, defaultPickerValue, pickerValue, mergedShowTime === null || mergedShowTime === void 0 ? void 0 : mergedShowTime.defaultOpenValue, onPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n var clone = fillIndex(modes, activeIndex, nextMode);\n if (clone[0] !== modes[0] || clone[1] !== modes[1]) {\n setModes(clone);\n }\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var clonePickerValue = _toConsumableArray(calendarValue);\n if (nextPickerValue) {\n clonePickerValue[activeIndex] = nextPickerValue;\n }\n onPanelChange(clonePickerValue, clone);\n }\n });\n\n // ======================== Change ========================\n var fillCalendarValue = function fillCalendarValue(date, index) {\n return (\n // Trigger change only when date changed\n fillIndex(calendarValue, index, date)\n );\n };\n\n // ======================== Submit ========================\n /**\n * Trigger by confirm operation.\n * This function has already handle the `needConfirm` check logic.\n * - Selector: enter key\n * - Panel: OK button\n */\n var triggerPartConfirm = function triggerPartConfirm(date, skipFocus) {\n var nextValue = calendarValue;\n if (date) {\n nextValue = fillCalendarValue(date, activeIndex);\n }\n\n // Get next focus index\n var nextIndex = nextActiveIndex(nextValue);\n\n // Change calendar value and tell flush it\n triggerCalendarChange(nextValue);\n flushSubmit(activeIndex, nextIndex === null);\n if (nextIndex === null) {\n triggerOpen(false, {\n force: true\n });\n } else if (!skipFocus) {\n selectorRef.current.focus({\n index: nextIndex\n });\n }\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n var _activeElement;\n var rootNode = event.target.getRootNode();\n if (!selectorRef.current.nativeElement.contains((_activeElement = rootNode.activeElement) !== null && _activeElement !== void 0 ? _activeElement : document.activeElement)) {\n // Click to focus the enabled input\n var enabledIndex = disabled.findIndex(function (d) {\n return !d;\n });\n if (enabledIndex >= 0) {\n selectorRef.current.focus({\n index: enabledIndex\n });\n }\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValues = _React$useState4[0],\n setInternalHoverValues = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n return internalHoverValues || calendarValue;\n }, [calendarValue, internalHoverValues]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValues(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // Save the offset with active bar position\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeOffset = _React$useState6[0],\n setActiveOffset = _React$useState6[1];\n\n // ======================= Presets ========================\n var presetList = usePresets(presets, ranges);\n var onPresetHover = function onPresetHover(nextValues) {\n setInternalHoverValues(nextValues);\n setHoverSource('preset');\n };\n var onPresetSubmit = function onPresetSubmit(nextValues) {\n var passed = triggerSubmitChange(nextValues);\n if (passed) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n triggerPartConfirm(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValues(date ? fillCalendarValue(date, activeIndex) : null);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> MouseDown\n var onPanelMouseDown = function onPanelMouseDown() {\n lastOperation('panel');\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n var clone = fillIndex(calendarValue, activeIndex, date);\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(clone);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerPartConfirm(date);\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender, getActiveRange(activeIndex));\n\n // >>> Value\n var panelValue = calendarValue[activeIndex] || null;\n\n // >>> invalid\n var isPopupInvalidateDate = useEvent(function (date) {\n return isInvalidateDate(date, {\n activeIndex: activeIndex\n });\n });\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange', 'disabledTime']));\n return restProps;\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: mergedShowTime\n // Range\n ,\n range: true,\n multiplePanel: multiplePanel,\n activeOffset: activeOffset,\n placement: placement\n // Disabled\n ,\n disabledDate: mergedDisabledDate\n // Focus\n ,\n onFocus: onPanelFocus,\n onBlur: onSharedBlur,\n onPanelMouseDown: onPanelMouseDown\n // Mode\n ,\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n format: maskFormat,\n value: panelValue,\n isInvalid: isPopupInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n pickerValue: currentPickerValue,\n defaultOpenValue: toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue)[activeIndex],\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n needConfirm: needConfirm,\n onSubmit: triggerPartConfirm,\n onOk: triggerOk\n // Preset\n ,\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit\n // Now\n ,\n onNow: onNow\n // Render\n ,\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date, index) {\n var clone = fillCalendarValue(date, index);\n triggerCalendarChange(clone);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event, index) {\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // When click input to switch the field, it will not trigger close.\n // Which means it will lose the part confirm and we need fill back.\n // ref: https://github.com/ant-design/ant-design/issues/49512\n if (activeIndex !== index && mergedOpen && !needConfirm && complexPicker) {\n triggerPartConfirm(null, true);\n }\n setActiveIndex(index);\n onSharedFocus(event, index);\n };\n var onSelectorBlur = function onSelectorBlur(event, index) {\n triggerOpen(false);\n if (!needConfirm && lastOperation() === 'input') {\n var nextIndex = nextActiveIndex(calendarValue);\n flushSubmit(activeIndex, nextIndex === null);\n }\n onSharedBlur(event, index);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerPartConfirm(null, true);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerPartConfirm(null, true);\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerPartConfirm();\n }\n }, [mergedOpen]);\n\n // ====================== DevWarning ======================\n if (process.env.NODE_ENV !== 'production') {\n var isIndexEmpty = function isIndexEmpty(index) {\n return (\n // Value is empty\n !(value !== null && value !== void 0 && value[index]) &&\n // DefaultValue is empty\n !(defaultValue !== null && defaultValue !== void 0 && defaultValue[index])\n );\n };\n if (disabled.some(function (fieldDisabled, index) {\n return fieldDisabled && isIndexEmpty(index) && !allowEmpty[index];\n })) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n visible: mergedOpen,\n onClose: onPopupClose\n // Range\n ,\n range: true\n }), /*#__PURE__*/React.createElement(RangeSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n suffixIcon: suffixIcon\n // Active\n ,\n activeIndex: focused || mergedOpen ? activeIndex : null,\n activeHelp: !!internalHoverValues,\n allHelp: !!internalHoverValues && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerPartConfirm\n // Change\n ,\n value: hoverValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange\n // Format\n ,\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n disabled: disabled\n // Open\n ,\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n invalid: submitInvalidates,\n onInvalid: onSelectorInvalid\n // Offset\n ,\n onActiveOffset: setActiveOffset\n }))));\n}\nvar RefRangePicker = /*#__PURE__*/React.forwardRef(RangePicker);\nif (process.env.NODE_ENV !== 'production') {\n RefRangePicker.displayName = 'RefRangePicker';\n}\nexport default RefRangePicker;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isSame } from \"../../utils/dateUtil\";\nimport { getFromDate } from \"../../utils/miscUtil\";\n\n/**\n * RangePicker need additional logic to handle the `disabled` case. e.g.\n * [disabled, enabled] should end date not before start date\n */\nexport default function useRangeDisabledDate(values, disabled, activeIndexList, generateConfig, locale, disabledDate) {\n var activeIndex = activeIndexList[activeIndexList.length - 1];\n var rangeDisabledDate = function rangeDisabledDate(date, info) {\n var _values = _slicedToArray(values, 2),\n start = _values[0],\n end = _values[1];\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n from: getFromDate(values, activeIndexList)\n });\n\n // ============================ Disabled ============================\n // Should not select days before the start date\n if (activeIndex === 1 && disabled[0] && start &&\n // Same date isOK\n !isSame(generateConfig, locale, start, date, mergedInfo.type) &&\n // Before start date\n generateConfig.isAfter(start, date)) {\n return true;\n }\n\n // Should not select days after the end date\n if (activeIndex === 0 && disabled[1] && end &&\n // Same date isOK\n !isSame(generateConfig, locale, end, date, mergedInfo.type) &&\n // After end date\n generateConfig.isAfter(date, end)) {\n return true;\n }\n\n // ============================= Origin =============================\n return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, mergedInfo);\n };\n return rangeDisabledDate;\n}","import classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport * as React from 'react';\nexport default function MultipleDates(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n onRemove = props.onRemove,\n _props$removeIcon = props.removeIcon,\n removeIcon = _props$removeIcon === void 0 ? '×' : _props$removeIcon,\n formatDate = props.formatDate,\n disabled = props.disabled,\n maxTagCount = props.maxTagCount,\n placeholder = props.placeholder;\n var selectorCls = \"\".concat(prefixCls, \"-selector\");\n var selectionCls = \"\".concat(prefixCls, \"-selection\");\n var overflowCls = \"\".concat(selectionCls, \"-overflow\");\n\n // ========================= Item =========================\n function renderSelector(content, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionCls, \"-item\")),\n title: typeof content === 'string' ? content : null\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionCls, \"-item-content\")\n }, content), !disabled && onClose && /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: onClose,\n className: \"\".concat(selectionCls, \"-item-remove\")\n }, removeIcon));\n }\n function renderItem(date) {\n var displayLabel = formatDate(date);\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(date);\n };\n return renderSelector(displayLabel, onClose);\n }\n\n // ========================= Rest =========================\n function renderRest(omittedValues) {\n var content = \"+ \".concat(omittedValues.length, \" ...\");\n return renderSelector(content);\n }\n\n // ======================== Render ========================\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: selectorCls\n }, /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: overflowCls,\n data: value,\n renderItem: renderItem,\n renderRest: renderRest\n // suffix={inputNode}\n ,\n itemKey: function itemKey(date) {\n return formatDate(date);\n },\n maxCount: maxTagCount\n }), !value.length && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\")\n }, placeholder));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"open\", \"clearIcon\", \"suffixIcon\", \"activeHelp\", \"allHelp\", \"focused\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"locale\", \"generateConfig\", \"placeholder\", \"className\", \"style\", \"onClick\", \"onClear\", \"internalPicker\", \"value\", \"onChange\", \"onSubmit\", \"onInputChange\", \"multiple\", \"maxTagCount\", \"format\", \"maskFormat\", \"preserveInvalidOnBlur\", \"onInvalid\", \"disabled\", \"invalid\", \"inputReadOnly\", \"direction\", \"onOpenChange\", \"onMouseDown\", \"required\", \"aria-required\", \"autoFocus\", \"removeIcon\"];\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { isSame } from \"../../../utils/dateUtil\";\nimport PickerContext from \"../../context\";\nimport useInputProps from \"../hooks/useInputProps\";\nimport useRootProps from \"../hooks/useRootProps\";\nimport Icon, { ClearIcon } from \"../Icon\";\nimport Input from \"../Input\";\nimport MultipleDates from \"./MultipleDates\";\nfunction SingleSelector(props, ref) {\n var id = props.id,\n open = props.open,\n clearIcon = props.clearIcon,\n suffixIcon = props.suffixIcon,\n activeHelp = props.activeHelp,\n allHelp = props.allHelp,\n focused = props.focused,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n locale = props.locale,\n generateConfig = props.generateConfig,\n placeholder = props.placeholder,\n className = props.className,\n style = props.style,\n onClick = props.onClick,\n onClear = props.onClear,\n internalPicker = props.internalPicker,\n value = props.value,\n onChange = props.onChange,\n onSubmit = props.onSubmit,\n onInputChange = props.onInputChange,\n multiple = props.multiple,\n maxTagCount = props.maxTagCount,\n format = props.format,\n maskFormat = props.maskFormat,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n onInvalid = props.onInvalid,\n disabled = props.disabled,\n invalid = props.invalid,\n inputReadOnly = props.inputReadOnly,\n direction = props.direction,\n onOpenChange = props.onOpenChange,\n _onMouseDown = props.onMouseDown,\n required = props.required,\n ariaRequired = props['aria-required'],\n autoFocus = props.autoFocus,\n removeIcon = props.removeIcon,\n restProps = _objectWithoutProperties(props, _excluded);\n var rtl = direction === 'rtl';\n\n // ======================== Prefix ========================\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n\n // ========================= Refs =========================\n var rootRef = React.useRef();\n var inputRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current,\n focus: function focus(options) {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus(options);\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n }\n };\n });\n\n // ======================== Props =========================\n var rootProps = useRootProps(restProps);\n\n // ======================== Change ========================\n var onSingleChange = function onSingleChange(date) {\n onChange([date]);\n };\n var onMultipleRemove = function onMultipleRemove(date) {\n var nextValues = value.filter(function (oriDate) {\n return oriDate && !isSame(generateConfig, locale, oriDate, date, internalPicker);\n });\n onChange(nextValues);\n\n // When `open`, it means user is operating the\n if (!open) {\n onSubmit();\n }\n };\n\n // ======================== Inputs ========================\n var _useInputProps = useInputProps(_objectSpread(_objectSpread({}, props), {}, {\n onChange: onSingleChange\n }), function (_ref) {\n var valueTexts = _ref.valueTexts;\n return {\n value: valueTexts[0] || '',\n active: focused\n };\n }),\n _useInputProps2 = _slicedToArray(_useInputProps, 2),\n getInputProps = _useInputProps2[0],\n getText = _useInputProps2[1];\n\n // ======================== Clear =========================\n var showClear = !!(clearIcon && value.length && !disabled);\n\n // ======================= Multiple =======================\n var selectorNode = multiple ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MultipleDates, {\n prefixCls: prefixCls,\n value: value,\n onRemove: onMultipleRemove,\n formatDate: getText,\n maxTagCount: maxTagCount,\n disabled: disabled,\n removeIcon: removeIcon,\n placeholder: placeholder\n }), /*#__PURE__*/React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-multiple-input\"),\n value: value.map(getText).join(','),\n ref: inputRef,\n readOnly: true,\n autoFocus: autoFocus\n }), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n })) : /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputRef\n }, getInputProps(), {\n autoFocus: autoFocus,\n suffixIcon: suffixIcon,\n clearIcon: showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n }),\n showActiveCls: false\n }));\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rootProps, {\n className: classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-multiple\"), multiple), \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-invalid\"), invalid), \"\".concat(prefixCls, \"-rtl\"), rtl), className),\n style: style,\n ref: rootRef,\n onClick: onClick\n // Not lose current input focus\n ,\n onMouseDown: function onMouseDown(e) {\n var _inputRef$current3;\n var target = e.target;\n if (target !== ((_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.inputElement)) {\n e.preventDefault();\n }\n _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(e);\n }\n }), selectorNode);\n}\nvar RefSingleSelector = /*#__PURE__*/React.forwardRef(SingleSelector);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleSelector.displayName = 'SingleSelector';\n}\nexport default RefSingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport useToggleDates from \"../hooks/useToggleDates\";\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport SingleSelector from \"./Selector/SingleSelector\";\n\n// TODO: isInvalidateDate with showTime.disabledTime should not provide `range` prop\n\n/** Internal usage. For cross function get same aligned props */\n\nfunction Picker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var _ref = filledProps,\n prefixCls = _ref.prefixCls,\n styles = _ref.styles,\n classNames = _ref.classNames,\n order = _ref.order,\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n needConfirm = _ref.needConfirm,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n disabledDate = _ref.disabledDate,\n minDate = _ref.minDate,\n maxDate = _ref.maxDate,\n defaultOpen = _ref.defaultOpen,\n open = _ref.open,\n onOpenChange = _ref.onOpenChange,\n locale = _ref.locale,\n generateConfig = _ref.generateConfig,\n picker = _ref.picker,\n showNow = _ref.showNow,\n showToday = _ref.showToday,\n showTime = _ref.showTime,\n mode = _ref.mode,\n onPanelChange = _ref.onPanelChange,\n onCalendarChange = _ref.onCalendarChange,\n onOk = _ref.onOk,\n multiple = _ref.multiple,\n defaultPickerValue = _ref.defaultPickerValue,\n pickerValue = _ref.pickerValue,\n onPickerValueChange = _ref.onPickerValueChange,\n inputReadOnly = _ref.inputReadOnly,\n suffixIcon = _ref.suffixIcon,\n removeIcon = _ref.removeIcon,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n presets = _ref.presets,\n components = _ref.components,\n cellRender = _ref.cellRender,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n onClick = _ref.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Util =========================\n function pickerParam(values) {\n if (values === null) {\n return null;\n }\n return multiple ? values : values[0];\n }\n var toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, [disabled], onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n triggerOpen = _useOpen2[1];\n\n // ======================= Calendar =======================\n var onInternalCalendarChange = function onInternalCalendarChange(dates, dateStrings, info) {\n if (onCalendarChange) {\n var filteredInfo = _objectSpread({}, info);\n delete filteredInfo.range;\n onCalendarChange(pickerParam(dates), pickerParam(dateStrings), filteredInfo);\n }\n };\n var onInternalOk = function onInternalOk(dates) {\n onOk === null || onOk === void 0 || onOk(pickerParam(dates));\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, false, order, defaultValue, value, onInternalCalendarChange, onInternalOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n // In SinglePicker, we will always get `activeIndex` is 0.\n var _useRangeActive = useRangeActive([disabled]),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 4),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3];\n var onSharedFocus = function onSharedFocus(event) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {});\n };\n var onSharedBlur = function onSharedBlur(event) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {});\n };\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState(picker, {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedMode = _useMergedState2[0],\n setMode = _useMergedState2[1];\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday);\n\n // ======================== Value =========================\n var onInternalChange = onChange && function (dates, dateStrings) {\n onChange(pickerParam(dates), pickerParam(dateStrings));\n };\n var _useRangeValue = useRangeValue(_objectSpread(_objectSpread({}, filledProps), {}, {\n onChange: onInternalChange\n }), mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, [],\n //disabled,\n formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n var submitInvalidate = React.useMemo(function () {\n return submitInvalidates.some(function (invalidated) {\n return invalidated;\n });\n }, [submitInvalidates]);\n\n // ===================== Picker Value =====================\n // Proxy to single pickerValue\n var onInternalPickerValueChange = function onInternalPickerValueChange(dates, info) {\n if (onPickerValueChange) {\n var cleanInfo = _objectSpread(_objectSpread({}, info), {}, {\n mode: info.mode[0]\n });\n delete cleanInfo.range;\n onPickerValueChange(dates[0], cleanInfo);\n }\n };\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, [mergedMode], mergedOpen, activeIndex, internalPicker, false,\n // multiplePanel,\n defaultPickerValue, pickerValue, toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue), onInternalPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n setMode(nextMode);\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var lastPickerValue = nextPickerValue || calendarValue[calendarValue.length - 1];\n onPanelChange(lastPickerValue, nextMode);\n }\n });\n\n // ======================== Submit ========================\n /**\n * Different with RangePicker, confirm should check `multiple` logic.\n * This will never provide `date` instead.\n */\n var triggerConfirm = function triggerConfirm() {\n triggerSubmitChange(getCalendarValue());\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n if (!disabled && !selectorRef.current.nativeElement.contains(document.activeElement)) {\n // Click to focus the enabled input\n selectorRef.current.focus();\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValue = _React$useState4[0],\n setInternalHoverValue = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n var values = [internalHoverValue].concat(_toConsumableArray(calendarValue)).filter(function (date) {\n return date;\n });\n return multiple ? values : values.slice(0, 1);\n }, [calendarValue, internalHoverValue, multiple]);\n\n // Selector values is different with RangePicker\n // which can not use `hoverValue` directly\n var selectorValues = React.useMemo(function () {\n if (!multiple && internalHoverValue) {\n return [internalHoverValue];\n }\n return calendarValue.filter(function (date) {\n return date;\n });\n }, [calendarValue, internalHoverValue, multiple]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValue(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // ======================= Presets ========================\n var presetList = usePresets(presets);\n var onPresetHover = function onPresetHover(nextValue) {\n setInternalHoverValue(nextValue);\n setHoverSource('preset');\n };\n\n // TODO: handle this\n var onPresetSubmit = function onPresetSubmit(nextValue) {\n var nextCalendarValues = multiple ? toggleDates(getCalendarValue(), nextValue) : [nextValue];\n var passed = triggerSubmitChange(nextCalendarValues);\n if (passed && !multiple) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n onPresetSubmit(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValue(date);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n lastOperation('panel');\n var nextValues = multiple ? toggleDates(getCalendarValue(), date) : [date];\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(nextValues);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerConfirm();\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // >>> invalid\n\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange']));\n return _objectSpread(_objectSpread({}, restProps), {}, {\n multiple: filledProps.multiple\n });\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: showTime\n // Disabled\n ,\n disabledDate: disabledDate\n // Focus\n ,\n onFocus: onPanelFocus,\n onBlur: onSharedBlur\n // Mode\n ,\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n format: maskFormat,\n value: calendarValue,\n isInvalid: isInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n pickerValue: currentPickerValue,\n defaultOpenValue: showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue,\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n needConfirm: needConfirm,\n onSubmit: triggerConfirm,\n onOk: triggerOk\n // Preset\n ,\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit,\n onNow: onNow\n // Render\n ,\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date) {\n triggerCalendarChange(date);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event) {\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // setActiveIndex(index);\n\n onSharedFocus(event);\n };\n var onSelectorBlur = function onSelectorBlur(event) {\n triggerOpen(false);\n onSharedBlur(event);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerConfirm();\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerConfirm();\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerConfirm();\n }\n }, [mergedOpen]);\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n visible: mergedOpen,\n onClose: onPopupClose\n }), /*#__PURE__*/React.createElement(SingleSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n suffixIcon: suffixIcon,\n removeIcon: removeIcon\n // Active\n ,\n activeHelp: !!internalHoverValue,\n allHelp: !!internalHoverValue && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerConfirm\n // Change\n ,\n value: selectorValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange,\n internalPicker: internalPicker\n // Format\n ,\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n disabled: disabled\n // Open\n ,\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n invalid: submitInvalidate,\n onInvalid: function onInvalid(invalid) {\n // Only `single` mode support type date.\n // `multiple` mode can not typing.\n onSelectorInvalid(invalid, 0);\n }\n }))));\n}\nvar RefPicker = /*#__PURE__*/React.forwardRef(Picker);\nif (process.env.NODE_ENV !== 'production') {\n RefPicker.displayName = 'RefPicker';\n}\nexport default RefPicker;","/**\n * What's new?\n * - Common\n * - [Break] Support special year format, all the year will follow the locale config.\n * - Blur all of field will trigger `onChange` if validate\n * - Support `preserveInvalidOnBlur` to not to clean input if invalid and remove `changeOnBlur`\n * - `pickerValue` is now full controlled\n * - `defaultPickerValue` will take effect on every field active with popup opening.\n * - [Break] clear button return the event with `onClick`\n *\n * - Locale\n * - Remove `dateFormat` since it's never used\n * - Remove `dateTimeFormat` since it's never used\n *\n * - Picker\n * - TimePicker support `changeOnScroll`\n * - TimePicker support `millisecond`\n * - Support cellMeridiemFormat for AM/PM\n * - Get correct `disabledHours` when set `use12Hours`\n * - Support `showWeek`\n *\n * - RangePicker\n * - [Break] RangePicker is now not limit the range of clicked field.\n * - Trigger `onCalendarChange` when type correct\n * - [Break] Not order `value` if given `value` is wrong order.\n * - Hover `presets` will show date in input field.\n * - [Break] RangePicker go to end field, `pickerValue` will follow the start field if not controlled.\n */\n\nimport RangePicker from \"./PickerInput/RangePicker\";\nimport Picker from \"./PickerInput/SinglePicker\";\nimport PickerPanel from \"./PickerPanel\";\nexport { Picker, RangePicker, PickerPanel };\nexport default Picker;","import React, { useContext, useRef } from 'react';\nimport classNames from 'classnames';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n const {\n children,\n disabled,\n component\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const containerRef = useRef(null);\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('wave');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Wave ===============================\n const showWave = useWave(containerRef, classNames(prefixCls, hashId), component);\n // ============================== Effect ==============================\n React.useEffect(() => {\n const node = containerRef.current;\n if (!node || node.nodeType !== 1 || disabled) {\n return;\n }\n // Click handler\n const onClick = e => {\n // Fix radio button click twice\n if (!isVisible(e.target) ||\n // No need wave\n !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n return;\n }\n showWave(e);\n };\n // Bind events\n node.addEventListener('click', onClick, true);\n return () => {\n node.removeEventListener('click', onClick, true);\n };\n }, [disabled]);\n // ============================== Render ==============================\n if (! /*#__PURE__*/React.isValidElement(children)) {\n return children !== null && children !== void 0 ? children : null;\n }\n const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n return cloneElement(children, {\n ref\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Wave.displayName = 'Wave';\n}\nexport default Wave;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { isPresetSize, isValidGapNumber } from '../_util/gapSize';\nimport { ConfigContext } from '../config-provider';\nimport Compact from './Compact';\nimport { SpaceContextProvider } from './context';\nimport Item from './Item';\nimport useStyle from './style';\nexport { SpaceContext } from './context';\nconst InternalSpace = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c;\n const {\n getPrefixCls,\n space,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size = (_a = space === null || space === void 0 ? void 0 : space.size) !== null && _a !== void 0 ? _a : 'small',\n align,\n className,\n rootClassName,\n children,\n direction = 'horizontal',\n prefixCls: customizePrefixCls,\n split,\n style,\n wrap = false,\n classNames: customClassNames,\n styles\n } = props,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"rootClassName\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\", \"classNames\", \"styles\"]);\n const [horizontalSize, verticalSize] = Array.isArray(size) ? size : [size, size];\n const isPresetVerticalSize = isPresetSize(verticalSize);\n const isPresetHorizontalSize = isPresetSize(horizontalSize);\n const isValidVerticalSize = isValidGapNumber(verticalSize);\n const isValidHorizontalSize = isValidGapNumber(horizontalSize);\n const childNodes = toArray(children, {\n keepEmpty: true\n });\n const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n const prefixCls = getPrefixCls('space', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(prefixCls, space === null || space === void 0 ? void 0 : space.className, hashId, `${prefixCls}-${direction}`, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-align-${mergedAlign}`]: mergedAlign,\n [`${prefixCls}-gap-row-${verticalSize}`]: isPresetVerticalSize,\n [`${prefixCls}-gap-col-${horizontalSize}`]: isPresetHorizontalSize\n }, className, rootClassName, cssVarCls);\n const itemClassName = classNames(`${prefixCls}-item`, (_b = customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.item) !== null && _b !== void 0 ? _b : (_c = space === null || space === void 0 ? void 0 : space.classNames) === null || _c === void 0 ? void 0 : _c.item);\n // Calculate latest one\n let latestIndex = 0;\n const nodes = childNodes.map((child, i) => {\n var _a, _b;\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n const key = (child === null || child === void 0 ? void 0 : child.key) || `${itemClassName}-${i}`;\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n index: i,\n split: split,\n style: (_a = styles === null || styles === void 0 ? void 0 : styles.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.styles) === null || _b === void 0 ? void 0 : _b.item\n }, child);\n });\n const spaceContext = React.useMemo(() => ({\n latestIndex\n }), [latestIndex]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n const gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n }\n if (!isPresetHorizontalSize && isValidHorizontalSize) {\n gapStyle.columnGap = horizontalSize;\n }\n if (!isPresetVerticalSize && isValidVerticalSize) {\n gapStyle.rowGap = verticalSize;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n className: cls,\n style: Object.assign(Object.assign(Object.assign({}, gapStyle), space === null || space === void 0 ? void 0 : space.style), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContextProvider, {\n value: spaceContext\n }, nodes)));\n});\nconst Space = InternalSpace;\nSpace.Compact = Compact;\nif (process.env.NODE_ENV !== 'production') {\n Space.displayName = 'Space';\n}\nexport default Space;","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\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\nmodule.exports = stackDelete;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n fresh = props.fresh,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n onPointerDownCapture = props.onPointerDownCapture,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var _experimental;\n var points = align.points;\n var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick,\n onPointerDownCapture: onPointerDownCapture\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/React.createElement(PopupContent, {\n cache: !open && !fresh\n }, childNode));\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\n\n/**![close](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CloseOutlined';\n}\nexport default RefIcon;","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","module.exports = __webpack_public_path__ + \"5e8a4f4320a07ae4bb1d8a5cd621d955.js\";","module.exports = __webpack_public_path__ + \"130340e2c62b9e858f186dab5f491e55.js\";","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\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.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import { GLOBAL_OBJ, SDK_VERSION } from '@sentry/utils';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\nexport { getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","\"use client\";\n\nimport React from 'react';\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nconst getAllowClear = allowClear => {\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return mergedAllowClear;\n};\nexport default getAllowClear;","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexports.default = RightOutlined;\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { dsnToString, createEnvelope } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nfunction createUserFeedbackEnvelope(\n feedback,\n {\n metadata,\n tunnel,\n dsn,\n }\n\n,\n) {\n const headers = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback) {\n const feedbackHeaders = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n\nexport { createUserFeedbackEnvelope };\n//# sourceMappingURL=userfeedback.js.map\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY,\n overflow = _getWin$getComputedSt.overflow;\n if ([overflowX, overflowY, overflow].some(function (o) {\n return scrollStyle.includes(o);\n })) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n * **************************************\n * * Border *\n * * ************************** *\n * * * * * *\n * * B * * S * B *\n * * o * * c * o *\n * * r * Content * r * r *\n * * d * * o * d *\n * * e * * l * e *\n * * r ******************** l * r *\n * * * Scroll * *\n * * ************************** *\n * * Border *\n * **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n overflow = _getWin$getComputedSt2.overflow,\n overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var borderTopNum = getPxValue(borderTopWidth);\n var borderBottomNum = getPxValue(borderBottomWidth);\n var borderLeftNum = getPxValue(borderLeftWidth);\n var borderRightNum = getPxValue(borderRightWidth);\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n // Original visible area\n var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n // Cut border size\n var scaledBorderTopWidth = borderTopNum * scaleY;\n var scaledBorderBottomWidth = borderBottomNum * scaleY;\n var scaledBorderLeftWidth = borderLeftNum * scaleX;\n var scaledBorderRightWidth = borderRightNum * scaleX;\n\n // Clip margin\n var clipMarginWidth = 0;\n var clipMarginHeight = 0;\n if (overflow === 'clip') {\n var clipNum = getPxValue(overflowClipMargin);\n clipMarginWidth = clipNum * scaleX;\n clipMarginHeight = clipNum * scaleY;\n }\n\n // Region\n var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleLeft);\n visibleArea.top = Math.max(visibleArea.top, eleTop);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","module.exports = __webpack_public_path__ + \"5fedbf948ed123687f77167fac1faf8b.js\";","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection 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 or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","module.exports = {\"__GIT_VERSION__\":\"7193b3741\",\"__GIT_COMMITHASH__\":\"7193b3741920b4ae5dbf64d6ed460284d09a038d\",\"__BUILD_DATE__\":\"2025-03-28T16:49:51.260Z\",\"NOTE\":\"Preferably use disabled version of flag so that the flag doesn't need to be added to the other configs. In this manner selectFeatureFlag('IS_XXX_DISABLED') will only be truthy if it is explicitly added to a config and falsy if it is not.\",\"USE_PROTON_LOGS\":true,\"SCHEDULED_REPORTS_DISABLED\":false,\"BATCH_MQTT_PROCESSING\":true,\"ENABLE_CUSTOM_DASHBOARDS\":true,\"PRESENCE_HIDDEN\":true,\"CUSTOM_DASHBOARD_DEVELOPER_MODE\":false,\"ENABLE_OCCUPANCY_DASHBOARD\":true,\"ENABLE_MOBILE_SSO_SWITCH\":true,\"ENABLE_DUPLICATE_PIN_CODES_TOGGLE\":false,\"ENTERPRISE_VPN_FOR_VIDEO_READERS_IS_DISABLED\":true,\"OCCUPANCY_MANAGEMENT_HIDDEN\":false,\"SHOW_VISUAL_ACTIVITY_REPORT\":true,\"COOKIE_SETTINGS\":{\"path\":\"/\",\"secure\":true,\"sameSite\":\"lax\"},\"INIT_ADD_TO_APPLE_WALLET_SETTINGS\":{\"partnerId\":\"ORG-6ab1e4a1-7899-430e-bde9-88f0ef8e9be1\",\"domain\":\"https://apple-pay.apple.com\"},\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\":false,\"SHOW_GRAPHICAL_INTERFACE\":false,\"DONT_FORCE_TERMS_SIGNATURE\":false,\"CONTENTFUL_API_URL\":\"https://mw.openpath.com\",\"ENV_SUFFIX\":\"\",\"ENABLED_IDENTITY_PROVIDER_TYPES\":[\"gsuite\",\"msazuread\",\"okta\",\"onelogin\",\"workday\"],\"ENABLED_EMAIL_ALERT_TYPES\":[\"acuStatus\",\"billing\",\"contactSensor.stateChanged\",\"entry.ajar\",\"entry.apb.breach\",\"entry.authenticated.failed\",\"entry.authorized.failed\",\"entry.forcedOpen\",\"entry.unlocked.failed\",\"genericInput.eolStateChanged,rex.eolStateChanged,contactSensor.eolStateChanged\",\"genericInput.stateChanged\",\"idp\",\"lockdownPlan.triggered,lockdownPlan.reverted\",\"reader.faultStateChanged\",\"relay.faultStateChanged\",\"rex.stateChanged\",\"tamperDetector.stateChanged\",\"entry.apb.occupancyLimitExceeded\",\"gateway.disconnected,deviceBle.CommLoss\",\"deviceBattery.low,deviceBattery.critical\",\"deviceAuditBuffer.overrun,deviceDatabase.corrupted\",\"deviceCover.tampered,deviceBle.tampered,deviceMagnetic.tampered,deviceReader.tampered\",\"opvideoIntercom.ringButton.pressed\",\"opvideoMotionDetection.motion.detected\",\"opvideoAudioDetection.audio.thresholdExceeded\",\"opvideoDevice.gSensor.thresholdExceeded\",\"subscription.rateLimit.triggered\",\"alarm.openLimit.approaching\",\"alarm.openLimit.reached\"],\"UNUSED_EMAIL_ALERT_TYPES_PLACEHOLDER\":[\"reader.faultStateChanged\",\"relay.faultStateChanged\"],\"ENABLED_USER_ROLE_SCOPES\":[\"o{orgId}-account:r\",\"o{orgId}-account:w\",\"o{orgId}-admin:r\",\"o{orgId}-admin:w\",\"o{orgId}-alarmActions:w\",\"o{orgId}-alarmConfigurations:r\",\"o{orgId}-alarmConfigurations:w\",\"o{orgId}-alertSettings:r\",\"o{orgId}-alertSettings:w\",\"o{orgId}-badgePrinting:r\",\"o{orgId}-badgePrinting:w\",\"o{orgId}-building:r\",\"o{orgId}-building:w\",\"o{orgId}-configurations:r\",\"o{orgId}-configurations:w\",\"o{orgId}-credential:r\",\"o{orgId}-credential:w\",\"o{orgId}-dash:r\",\"o{orgId}-dash:w\",\"o{orgId}-dashActivity:r\",\"o{orgId}-dashActivity:w\",\"o{orgId}-dashAlarm:r\",\"o{orgId}-dashAlarm:w\",\"o{orgId}-dashEntry:r\",\"o{orgId}-dashEntry:w\",\"o{orgId}-entryAccessAudit:r\",\"o{orgId}-entryAccessAudit:w\",\"o{orgId}-entryState:r\",\"o{orgId}-entryState:w\",\"o{orgId}-erpParentCenter:w\",\"o{orgId}-erpParentStore:w\",\"o{orgId}-hw:r\",\"o{orgId}-hw:w\",\"o{orgId}-integrations:r\",\"o{orgId}-integrations:w\",\"o{orgId}-ldp:r\",\"o{orgId}-ldp:w\",\"o{orgId}-mobileAppSettings:r\",\"o{orgId}-mobileAppSettings:w\",\"o{orgId}-musterReport:r\",\"o{orgId}-musterReport:w\",\"o{orgId}-occupancyReport:r\",\"o{orgId}-occupancyReport:w\",\"o{orgId}-opvideoDevice:r\",\"o{orgId}-opvideoDevice:w\",\"o{orgId}-opvideoIntercomStartSession:w\",\"o{orgId}-opvideoIntercom:r\",\"o{orgId}-opvideoIntercom:w\",\"o{orgId}-outboundWebhooks:r\",\"o{orgId}-outboundWebhooks:w\",\"o{orgId}-parcelMgmtParcels:r\",\"o{orgId}-parcelMgmtParcels:w\",\"o{orgId}-portalAudit:r\",\"o{orgId}-portalAudit:w\",\"o{orgId}-presence:r\",\"o{orgId}-presence:w\",\"o{orgId}-quickStart:r\",\"o{orgId}-quickStart:w\",\"o{orgId}-role:r\",\"o{orgId}-role:w\",\"o{orgId}-rpt:r\",\"o{orgId}-rpt:w\",\"o{orgId}-rptAlarm:r\",\"o{orgId}-rptAlarm:w\",\"o{orgId}-rptDownload:r\",\"o{orgId}-rptGeneral:r\",\"o{orgId}-rptGeneral:w\",\"o{orgId}-site:r\",\"o{orgId}-site:w\",\"o{orgId}-siteGeneral:r\",\"o{orgId}-siteGeneral:w\",\"o{orgId}-user:r\",\"o{orgId}-user:w\",\"o{orgId}-videoProviderLive:w\",\"o{orgId}-videoProviderPlayback:w\",\"o{orgId}-exportClips:w\",\"s-o:r\",\"s-o:w\"],\"ENABLED_IDENTITY_ROLE_SCOPES\":[\"i:r\",\"i:w\",\"o:r\",\"o:w\",\"o-basic:r\",\"o-basic:w\",\"o-acu:r\",\"o-acu:w\",\"o-support:r\",\"o-support:w\",\"o-completeHookAction:w\",\"pc:r\",\"pc:w\"],\"ENABLED_USER_CREDENTIAL_TYPES\":[\"mobile\",\"cloudKey\",\"cardMifareCsn\",\"cardOpenpathDesfireEv1\",\"card\",\"pincode\",\"fobAllegion\"],\"ENABLED_TRIGGER_METHOD_CODES\":[\"card:card:one-factor\",\"card:card:override\",\"cardMifareCsn:card:one-factor\",\"cardMifareCsn:card:override\",\"cardOpenpathDesfireEv1:card:one-factor\",\"cardOpenpathDesfireEv1:card:override\",\"cloudKey:cloud:one-factor\",\"cloudKey:cloud:override\",\"mobile:ble:auto-one-factor\",\"mobile:ble:auto-two-factor\",\"mobile:ble:one-factor\",\"mobile:ble:override\",\"mobile:ble:touch-one-factor\",\"mobile:ble:touch-two-factor\",\"mobile:ble:two-factor\",\"mobile:bleprox-cloud:auto-one-factor\",\"mobile:bleprox-cloud:auto-two-factor\",\"mobile:bleprox-cloud:one-factor\",\"mobile:bleprox-cloud:override\",\"mobile:bleprox-cloud:touch-one-factor\",\"mobile:bleprox-cloud:touch-two-factor\",\"mobile:bleprox-cloud:two-factor\",\"mobile:bleprox-wifi:auto-one-factor\",\"mobile:bleprox-wifi:auto-two-factor\",\"mobile:bleprox-wifi:one-factor\",\"mobile:bleprox-wifi:override\",\"mobile:bleprox-wifi:touch-one-factor\",\"mobile:bleprox-wifi:touch-two-factor\",\"mobile:bleprox-wifi:two-factor\",\"mobile:cloud:one-factor\",\"mobile:cloud:override\",\"mobile:cloud:two-factor\",\"mobile:geoprox-cloud:one-factor\",\"mobile:geoprox-cloud:override\",\"mobile:geoprox-cloud:touch-one-factor\",\"mobile:geoprox-cloud:touch-two-factor\",\"mobile:geoprox-cloud:two-factor\",\"mobile:geoprox-wifi:one-factor\",\"mobile:geoprox-wifi:override\",\"mobile:geoprox-wifi:touch-one-factor\",\"mobile:geoprox-wifi:touch-two-factor\",\"mobile:geoprox-wifi:two-factor\",\"mobile:nfc-secure:one-factor\",\"mobile:wifi:one-factor\",\"mobile:wifi:override\",\"mobile:wifi:two-factor\",\"pincode:card:one-factor\",\"pincode:card:override\"],\"ENABLED_ACU_MODEL_IDS\":[1,4,5,6,7,9,11,12,13,14,15,16,17,18,19,20,21,22],\"ENABLED_DASHBOARD_WIDGET_IDS\":[2,3,4,5,6,7,8,9,10,11,12],\"ENABLED_VIDEO_PROVIDER_TYPE_IDS\":[0,1,5],\"ENABLED_CLOUD_GATEWAY_DEVICE_TYPES\":[\"Openpath\",\"Schlage\"],\"ENABLED_FEATURE_CODES\":[\"administrators\",\"advancedRulesEngine\",\"allegionNdebLeb\",\"allegionNdebLebNonOp\",\"apiIntegration\",\"apiIntegrationCS\",\"azureIdentityProvider\",\"badgePrinting\",\"basicRulesEngine\",\"basicTechSupport\",\"customAgreements\",\"customDashboards\",\"customFields\",\"directorySync\",\"elevatorIoBoards\",\"enterpriseTechSupport\",\"granularPermissions\",\"groupImportFilter\",\"gsuiteIdentityProvider\",\"guestPass\",\"lifetimeWarranty\",\"lockdown\",\"merakiVms\",\"occupancyManagement\",\"oktaIdentityProvider\",\"oneloginIdentityProvider\",\"premiumTechSupport\",\"remoteUnlock\",\"scheduledReports\",\"singleSignOn\",\"standardServiceLevelAgreement\",\"subOrgs\",\"syncAudit\",\"syncNotification\",\"userManagementUsers\",\"users\",\"vms\",\"workdayIdentityProvider\",\"musterReport\",\"occupancyReport\",\"samlJit\",\"samlSso\"],\"SENTRY\":{\"enabled\":true,\"dsn\":\"https://2e0be81be9e84fa2bc7d22fed64b9622@o130424.ingest.sentry.io/5342581\"},\"LOCIZE_PROJECTID\":\"b7740ce6-46d1-42b0-af48-701bd49dc830\",\"LOCIZE_APIKEY\":\"873297ab-6ea4-4e52-9557-28f702fec44b\",\"LOCIZE_REFLNG\":\"en\",\"LOCIZE_VERSION\":\"production\",\"PORTAL_API_URL\":\"https://helium.prod.openpath.com\",\"PORTAL_VANITY_URL\":\"https://api.openpath.com\",\"OXYGEN_API_URL\":\"wss://websocket.oxygen.prod.alta.avigilon.com/v1\",\"ENV\":\"prod\",\"OPAL_ENV\":\"prod\",\"orgSpecificConfig\":{\"302\":{\"ORG_NAME\":\"OPHQ\",\"CUSTOM_DASHBOARD_DEVELOPER_MODE\":true,\"PRESENCE_HIDDEN\":false,\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\":true},\"462\":{\"ORG_NAME\":\"Openpath Indy\",\"CUSTOM_DASHBOARD_DEVELOPER_MODE\":true},\"1480\":{\"ORG_NAME\":\"PWC\",\"USE_PROTON_LOGS\":false},\"3685\":{\"ORG_NAME\":\"Openpath system test\",\"ENTERPRISE_VPN_FOR_VIDEO_READERS_IS_DISABLED\":false},\"5577\":{\"ORG_NAME\":\"Match Group Inc\",\"USE_PROTON_LOGS\":false},\"5940\":{\"PRESENCE_HIDDEN\":false},\"7071\":{\"PRESENCE_HIDDEN\":false},\"7867\":{\"USE_PROTON_LOGS\":false},\"8858\":{\"USE_PROTON_LOGS\":false},\"9695\":{\"USE_PROTON_LOGS\":false},\"10897\":{\"USE_PROTON_LOGS\":false},\"21997\":{\"ORG_NAME\":\"Lake Zurich SD95\"},\"26962\":{\"ORG_NAME\":\"Spooky Corp (Premium)\"},\"30301\":{\"ORG_NAME\":\"Francisco Dev Test Org\"},\"44071\":{\"ORG_NAME\":\"Westwood Regional School District\",\"SHOULD_ACK_INTERCOM_OXYGEN_MESSAGES\":true}},\"ORG_IDS_THAT_SEE_REX_CHANGE_MESSAGE\":[10064,10094,10102,10122,10174,10188,1019,10198,10222,10241,10256,10265,10269,10295,10314,10325,10326,1037,10397,10418,10438,10442,10443,10481,10483,10491,10509,10523,10527,10561,10584,10595,10596,10662,10663,10708,10720,10721,10771,10774,10803,10818,10822,10834,10844,10890,1090,10921,10937,10939,10951,10958,10974,10994,11011,11066,11104,11113,11134,1114,11151,11159,11218,11229,11234,11238,11305,11314,11346,11353,11665,11674,11698,11791,11845,11866,11947,11980,1206,12133,12145,12184,12199,12334,12343,1249,1256,1258,12607,12712,12721,12754,12820,12943,12946,12952,12988,12991,1323,13360,13408,13480,13495,13516,13522,13621,13627,13726,13813,13831,13897,1409,1411,14110,14131,14185,14260,14287,14317,14362,14425,1447,14497,14593,14611,14653,14920,15037,15067,15130,15133,15439,1544,15514,15724,15733,15871,15949,15955,16156,16177,16219,16267,16282,16327,16333,16375,16441,16471,1656,16609,16669,16711,16825,16912,16915,16924,1709,17269,17377,1739,17458,17545,17587,17653,17836,17854,1790,1797,18130,1819,18319,18358,18458,18544,18610,18634,18658,18724,18829,1884,18910,18943,18949,19024,19054,19087,19234,19369,19408,19465,19528,19660,1993,19972,19981,2018,20233,20236,20257,2027,20311,20395,20413,20431,20518,20524,20773,20815,20866,20884,20899,20905,20965,20980,2099,21016,21025,21055,21058,21088,21097,21211,2124,21250,21427,21445,21469,21499,21529,21616,2167,21673,2168,2173,21757,21874,21889,21997,22078,22372,22393,22429,22465,22483,22570,22726,22747,22870,22891,22927,2295,23002,23008,23014,23059,23116,23203,23242,23266,23320,23344,23353,23371,23389,23392,23449,2347,23491,23536,23548,23554,23596,23632,23710,23746,23761,23770,23800,23818,23845,23887,23998,24025,2405,24052,24103,24193,24226,24262,2428,24289,24307,2442,24439,24493,24496,24520,24532,24550,2456,24595,24637,24655,24682,24718,24790,24862,24958,24982,25000,25072,25159,25264,25306,2536,25447,25504,25525,25570,25588,25630,25723,25738,25750,25765,25792,25864,25885,25948,26020,26023,26083,26125,26137,26152,26170,26245,26263,2628,26302,26347,26368,26491,26599,26761,26833,26854,26896,26914,27160,27211,27256,27259,27331,27466,27478,27490,27559,27571,27577,27607,27922,2847,2943,2968,2973,302,3042,3095,3105,311,3139,3211,3252,3253,3256,3333,3342,3343,3430,3452,3454,3534,3689,3690,3757,3767,3785,3832,3894,3927,4145,4328,4336,4571,4582,462,4741,4802,4815,4866,4969,4985,5007,5008,5082,524,5247,5291,5396,544,5484,5586,5661,5666,5782,5824,5832,594,5950,6028,6117,6126,6214,6452,6610,6656,6688,6703,6705,6711,6712,6768,6830,6947,6982,6995,701,7027,7058,7090,7164,7187,720,7200,7213,7218,7265,7341,7344,7351,7401,7490,7544,7557,7601,7622,7771,7818,7827,7846,7848,7868,7869,7870,7872,7873,7874,7885,7980,7995,8022,803,8041,8124,8130,8140,8151,8154,822,8237,8249,8256,8257,8273,8279,8303,8306,8310,8361,8371,8378,8395,8431,8478,8489,8491,8515,8535,856,8587,8593,8612,8621,8651,866,8675,8687,8738,8756,8768,8773,8793,881,8828,8873,8910,896,8960,9032,9034,9040,9131,929,9324,9356,9368,9404,9415,9443,9449,956,9567,9575,9577,9584,9601,9616,9628,9675,9689,9768,9841,9849,9855,9885,9930,9939,9975,9980,9986],\"ORG_IDS_THAT_SEE_APP_SWITCHER_BANNER\":[],\"OPVIDEO_DEVICE_ID_WITH_LIVEKIT_PROTOCOL_ENABLED\":[\"All devices have been opted in to LiveKit, this list will be removed\"],\"DMP_URL\":\"https://dmp.alta.avigilon.com\",\"FORBIDDEN_SUPPORT_EMAILS\":[\"NOTE: This list is maintained in Platinum and Helium. Ensure both are updated when making changes.\",\"accessfeedback@motorolasolutions.com\",\"altaaccesssupport@motorolasolutions.com\",\"general@openpath.com\",\"help@openpath.com\",\"sales@openpath.com\",\"security@openpath.com\",\"setup@openpath.com\",\"support@openpath.com\"],\"IS_VIDEO_STATE_MACHINE_ENABLED\":false,\"LPR_URL_PREFIX\":\"https://helium.prod.openpath.com/external/lpr\",\"ORG_IDS_WITH_INTERCOM_LANGUAGE_SELECTOR_ENABLED\":[35737,8659,1952,38125,33184,302,16942,8858],\"INTERCOM_AVAILABLE_LANGUAGES\":{\"en-us\":\"English (North America)\",\"es-mx\":\"Spanish (Mexico)\",\"es\":\"Spanish (Spain)\",\"it\":\"Italian (Italy)\",\"fr\":\"French (France)\",\"pl\":\"Polish (Poland)\",\"de\":\"German (Germany)\"},\"PARTNER_CENTER_APP_URL\":\"https://partner.alta.avigilon.com\",\"MAPS_APP_URL\":\"https://prod.apps.alta.avigilon.com\",\"MAPS_DEFAULT_VERSION\":\"v1.0.0\",\"MAPS_SHOULD_CHECK_AWARE_FOR_VERSION\":true,\"configUrl\":\"/dynamicConfig.json\",\"versionUrl\":\"/version.json\"};","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar react_1 = require(\"react\");\nvar isReact16Plus = parseInt(react_1.version.substr(0, react_1.version.indexOf('.'))) > 15;\nvar isFn = function (fn) { return typeof fn === 'function'; };\nvar render = function (props, data) {\n var more = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n more[_i - 2] = arguments[_i];\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof props !== 'object') {\n throw new TypeError('renderChildren(props, data) first argument must be a props object.');\n }\n var children_1 = props.children, render_1 = props.render;\n if (isFn(children_1) && isFn(render_1)) {\n console.warn('Both \"render\" and \"children\" are specified for in a universal interface component. ' +\n 'Children will be used.');\n console.trace();\n }\n if (typeof data !== 'object') {\n console.warn('Universal component interface normally expects data to be an object, ' +\n (\"\\\"\" + typeof data + \"\\\" received.\"));\n console.trace();\n }\n }\n var render = props.render, _a = props.children, children = _a === void 0 ? render : _a, component = props.component, _b = props.comp, comp = _b === void 0 ? component : _b;\n if (isFn(children))\n return children.apply(void 0, tslib_1.__spreadArrays([data], more));\n if (comp) {\n return react_1.createElement(comp, data);\n }\n if (children instanceof Array)\n return isReact16Plus ? children : react_1.createElement.apply(void 0, tslib_1.__spreadArrays(['div', null], children));\n if (children && (children instanceof Object)) {\n if (process.env.NODE_ENV !== 'production') {\n if (!children.type || ((typeof children.type !== 'string') && (typeof children.type !== 'function') && (typeof children.type !== 'symbol'))) {\n console.warn('Universal component interface received object as children, ' +\n 'expected React element, but received unexpected React \"type\".');\n console.trace();\n }\n if (typeof children.type === 'string')\n return children;\n return react_1.cloneElement(children, Object.assign({}, children.props, data));\n }\n else {\n if (typeof children.type === 'string')\n return children;\n return react_1.cloneElement(children, Object.assign({}, children.props, data));\n }\n }\n return children || null;\n};\nexports.default = render;\n//# sourceMappingURL=render.js.map","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(props) {\n var className = props.className,\n customizeIcon = props.customizeIcon,\n customizeIconProps = props.customizeIconProps,\n children = props.children,\n _onMouseDown = props.onMouseDown,\n onClick = props.onClick;\n var icon = typeof customizeIcon === 'function' ? customizeIcon(customizeIconProps) : customizeIcon;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(event);\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\nexport default TransBtn;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport TransBtn from \"../TransBtn\";\nimport React from 'react';\nexport var useAllowClear = function useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon) {\n var disabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var mergedSearchValue = arguments.length > 6 ? arguments[6] : undefined;\n var mode = arguments.length > 7 ? arguments[7] : undefined;\n var mergedClearIcon = React.useMemo(function () {\n if (_typeof(allowClear) === 'object') {\n return allowClear.clearIcon;\n }\n if (clearIcon) {\n return clearIcon;\n }\n }, [allowClear, clearIcon]);\n var mergedAllowClear = React.useMemo(function () {\n if (!disabled && !!allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n return true;\n }\n return false;\n }, [allowClear, disabled, displayValues.length, mergedSearchValue, mode]);\n return {\n allowClear: mergedAllowClear,\n clearIcon: /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: mergedClearIcon\n }, \"\\xD7\")\n };\n};","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null);\n\n // Clean up\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(props, ref) {\n var _inputNode2;\n var prefixCls = props.prefixCls,\n id = props.id,\n inputElement = props.inputElement,\n disabled = props.disabled,\n tabIndex = props.tabIndex,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n editable = props.editable,\n activeDescendantId = props.activeDescendantId,\n value = props.value,\n maxLength = props.maxLength,\n _onKeyDown = props.onKeyDown,\n _onMouseDown = props.onMouseDown,\n _onChange = props.onChange,\n onPaste = props.onPaste,\n _onCompositionStart = props.onCompositionStart,\n _onCompositionEnd = props.onCompositionEnd,\n open = props.open,\n attrs = props.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n originProps = _inputNode.props;\n var onOriginKeyDown = originProps.onKeyDown,\n onOriginChange = originProps.onChange,\n onOriginMouseDown = originProps.onMouseDown,\n onOriginCompositionStart = originProps.onCompositionStart,\n onOriginCompositionEnd = originProps.onCompositionEnd,\n style = originProps.style;\n warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n type: 'search'\n }, originProps), {}, {\n // Override over origin props\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 || (_inputNode2 = _inputNode2.props) === null || _inputNode2 === void 0 ? void 0 : _inputNode2.className),\n role: 'combobox',\n 'aria-expanded': open || false,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': open ? activeDescendantId : undefined\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nif (process.env.NODE_ENV !== 'production') {\n RefInput.displayName = 'Input';\n}\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n return value !== undefined && value !== null;\n}\n\n/** combo mode no value judgment function */\nexport function isComboNoValue(value) {\n return !value && value !== 0;\n}\nfunction isTitleType(title) {\n return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n var title = undefined;\n if (item) {\n if (isTitleType(item.title)) {\n title = item.title.toString();\n } else if (isTitleType(item.label)) {\n title = item.label.toString();\n }\n }\n return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n var _value$key;\n return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onRemove = props.onRemove,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n // ===================== Search ======================\n var inputValue = open || mode === 'multiple' && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || mode === 'multiple' && autoClearSearchValue === false || showSearch && (open || focused);\n\n // We measure width and set to the input immediately\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]);\n\n // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n var defaultRenderSelector = function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n title: getTitle(item),\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n };\n var customizeRenderSelector = function customizeRenderSelector(value, content, itemDisabled, closable, onClose, isMaxTag) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose,\n isMaxTag: !!isMaxTag\n }));\n };\n var renderItem = function renderItem(valueItem) {\n var itemDisabled = valueItem.disabled,\n label = valueItem.label,\n value = valueItem.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n var onClose = function onClose(event) {\n if (event) {\n event.stopPropagation();\n }\n onRemove(valueItem);\n };\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n };\n var renderRest = function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return typeof tagRender === 'function' ? customizeRenderSelector(undefined, content, false, false, undefined, true) : defaultRenderSelector({\n title: content\n }, content, false);\n };\n\n // >>> Input Node\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\"));\n\n // >>> Selections\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: itemKey,\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd,\n title = props.title;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]);\n\n // Not show text when closed expect combobox mode\n var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n // Get title of selection item\n var selectionTitle = title === undefined ? getTitle(item) : title;\n var placeholderNode = React.useMemo(function () {\n if (item) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n style: hasTextInput ? {\n visibility: 'hidden'\n } : undefined\n }, placeholder);\n }, [item, hasTextInput, placeholder, prefixCls]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: selectionTitle\n // 当 Select 已经选中选项时,还需 selection 隐藏但留在原地占位\n // https://github.com/ant-design/ant-design/issues/27688\n // https://github.com/ant-design/ant-design/issues/41530\n ,\n style: hasTextInput ? {\n visibility: 'hidden'\n } : undefined\n }, item.label) : null, placeholderNode);\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n disabled = props.disabled,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef;\n\n // ======================= Ref =======================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(options) {\n inputRef.current.focus(options);\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ====================== Input ======================\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit === null || onSearchSubmit === void 0 || onSearchSubmit(event.target.value);\n }\n if (isValidateOpenKey(which)) {\n onToggleOpen(true);\n }\n };\n\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n };\n\n // When paste come, ignore next onChange\n var pastedTextRef = useRef(null);\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false;\n\n // Trigger search again to support `tokenSeparators` with typewriting\n if (mode !== 'combobox') {\n triggerOnSearch(e.target.value);\n }\n };\n var onInputChange = function onInputChange(event) {\n var value = event.target.value;\n\n // Pasted text should replace back to origin content\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text');\n pastedTextRef.current = value || '';\n };\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n // when mode is combobox and it is disabled, don't prevent default behavior\n // https://github.com/ant-design/ant-design/issues/37320\n // https://github.com/ant-design/ant-design/issues/48281\n if (event.target !== inputRef.current && !inputMouseDown && !(mode === 'combobox' && disabled)) {\n event.preventDefault();\n }\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open && autoClearSearchValue !== false) {\n onSearch('', true, false);\n }\n onToggleOpen();\n }\n };\n\n // ================= Inner Selector ==================\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nif (process.env.NODE_ENV !== 'production') {\n ForwardSelector.displayName = 'Selector';\n}\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n return ![\n // System function button\n KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n // F1-F12\n KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n },\n htmlRegion: 'scroll'\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n },\n htmlRegion: 'scroll'\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n },\n htmlRegion: 'scroll'\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n },\n htmlRegion: 'scroll'\n }\n };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n placement = props.placement,\n builtinPlacements = props.builtinPlacements,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n onPopupVisibleChange = props.onPopupVisibleChange,\n onPopupMouseEnter = props.onPopupMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n var mergedBuiltinPlacements = React.useMemo(function () {\n return builtinPlacements || getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [builtinPlacements, dropdownMatchSelectWidth]);\n\n // ===================== Motion ======================\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n // =================== Popup Width ===================\n var isNumberPopupWidth = typeof dropdownMatchSelectWidth === 'number';\n var stretch = React.useMemo(function () {\n if (isNumberPopupWidth) {\n return null;\n }\n return dropdownMatchSelectWidth === false ? 'minWidth' : 'width';\n }, [dropdownMatchSelectWidth, isNumberPopupWidth]);\n var popupStyle = dropdownStyle;\n if (isNumberPopupWidth) {\n popupStyle = _objectSpread(_objectSpread({}, popupStyle), {}, {\n width: dropdownMatchSelectWidth\n });\n }\n\n // ======================= Ref =======================\n var triggerPopupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n var _triggerPopupRef$curr;\n return (_triggerPopupRef$curr = triggerPopupRef.current) === null || _triggerPopupRef$curr === void 0 ? void 0 : _triggerPopupRef$curr.popupElement;\n }\n };\n });\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: onPopupVisibleChange ? ['click'] : [],\n hideAction: onPopupVisibleChange ? ['click'] : [],\n popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n builtinPlacements: mergedBuiltinPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n onMouseEnter: onPopupMouseEnter\n }, popupNode),\n ref: triggerPopupRef,\n stretch: stretch,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode,\n onPopupVisibleChange: onPopupVisibleChange\n }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nif (process.env.NODE_ENV !== 'production') {\n RefSelectTrigger.displayName = 'SelectTrigger';\n}\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n if ('value' in data) {\n value = data.value;\n }\n if (key !== null && key !== undefined) {\n return key;\n }\n if (value !== undefined) {\n return value;\n }\n return \"rc-index-key-\".concat(index);\n}\nexport function isValidCount(value) {\n return typeof value !== 'undefined' && !Number.isNaN(value);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n options = _ref.options,\n groupLabel = _ref.groupLabel;\n var mergedLabel = label || (childrenAsData ? 'children' : 'label');\n return {\n label: mergedLabel,\n value: value || 'value',\n options: options || 'options',\n groupLabel: groupLabel || mergedLabel\n };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n fieldNames = _ref2.fieldNames,\n childrenAsData = _ref2.childrenAsData;\n var flattenList = [];\n var _fillFieldNames = fillFieldNames(fieldNames, false),\n fieldLabel = _fillFieldNames.label,\n fieldValue = _fillFieldNames.value,\n fieldOptions = _fillFieldNames.options,\n groupLabel = _fillFieldNames.groupLabel;\n function dig(list, isGroupOption) {\n if (!Array.isArray(list)) {\n return;\n }\n list.forEach(function (data) {\n if (isGroupOption || !(fieldOptions in data)) {\n var value = data[fieldValue];\n\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data,\n label: data[fieldLabel],\n value: value\n });\n } else {\n var grpLabel = data[groupLabel];\n if (grpLabel === undefined && childrenAsData) {\n grpLabel = data.label;\n }\n\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data,\n label: grpLabel\n });\n dig(data[fieldOptions], true);\n }\n });\n }\n dig(options, false);\n return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n return newOption;\n}\nexport var getSeparatedContent = function getSeparatedContent(text, tokens, end) {\n if (!tokens || !tokens.length) {\n return null;\n }\n var match = false;\n var separate = function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.slice(1);\n if (!token) {\n return [str];\n }\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(Boolean);\n };\n var list = separate(text, tokens);\n if (match) {\n return typeof end !== 'undefined' ? list.slice(0, end) : list;\n } else {\n return null;\n }\n};","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function Polite(props) {\n var visible = props.visible,\n values = props.values;\n if (!visible) {\n return null;\n }\n\n // Only cut part of values since it's a screen reader\n var MAX_COUNT = 50;\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-live\": \"polite\",\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n }\n }, \"\".concat(values.slice(0, MAX_COUNT).map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return ['number', 'string'].includes(_typeof(label)) ? label : value;\n }).join(', ')), values.length > MAX_COUNT ? ', ...' : null);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"suffixIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"builtinPlacements\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useAllowClear } from \"../hooks/useAllowClear\";\nimport { BaseSelectContext } from \"../hooks/useBaseProps\";\nimport useDelayReset from \"../hooks/useDelayReset\";\nimport useLock from \"../hooks/useLock\";\nimport useSelectTriggerControl from \"../hooks/useSelectTriggerControl\";\nimport Selector from \"../Selector\";\nimport SelectTrigger from \"../SelectTrigger\";\nimport TransBtn from \"../TransBtn\";\nimport { getSeparatedContent, isValidCount } from \"../utils/valueUtil\";\nimport SelectContext from \"../SelectContext\";\nimport Polite from \"./Polite\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport var isMultiple = function isMultiple(mode) {\n return mode === 'tags' || mode === 'multiple';\n};\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _customizeRawInputEle;\n var id = props.id,\n prefixCls = props.prefixCls,\n className = props.className,\n showSearch = props.showSearch,\n tagRender = props.tagRender,\n direction = props.direction,\n omitDomProps = props.omitDomProps,\n displayValues = props.displayValues,\n onDisplayValuesChange = props.onDisplayValuesChange,\n emptyOptions = props.emptyOptions,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n onClear = props.onClear,\n mode = props.mode,\n disabled = props.disabled,\n loading = props.loading,\n getInputElement = props.getInputElement,\n getRawInputElement = props.getRawInputElement,\n open = props.open,\n defaultOpen = props.defaultOpen,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n activeValue = props.activeValue,\n onActiveValueChange = props.onActiveValueChange,\n activeDescendantId = props.activeDescendantId,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSplit = props.onSearchSplit,\n tokenSeparators = props.tokenSeparators,\n allowClear = props.allowClear,\n suffixIcon = props.suffixIcon,\n clearIcon = props.clearIcon,\n OptionList = props.OptionList,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n placement = props.placement,\n builtinPlacements = props.builtinPlacements,\n getPopupContainer = props.getPopupContainer,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ============================== MISC ==============================\n var multiple = isMultiple(mode);\n var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n var domProps = _objectSpread({}, restProps);\n DEFAULT_OMIT_PROPS.forEach(function (propName) {\n delete domProps[propName];\n });\n omitDomProps === null || omitDomProps === void 0 || omitDomProps.forEach(function (propName) {\n delete domProps[propName];\n });\n\n // ============================= Mobile =============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n React.useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ============================== Refs ==============================\n var containerRef = React.useRef(null);\n var selectorDomRef = React.useRef(null);\n var triggerRef = React.useRef(null);\n var selectorRef = React.useRef(null);\n var listRef = React.useRef(null);\n var blurRef = React.useRef(false);\n\n /** Used for component focused management */\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2];\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2;\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: function scrollTo(arg) {\n var _listRef$current;\n return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n },\n nativeElement: containerRef.current || selectorDomRef.current\n };\n });\n\n // ========================== Search Value ==========================\n var mergedSearchValue = React.useMemo(function () {\n var _displayValues$;\n if (mode !== 'combobox') {\n return searchValue;\n }\n var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]);\n\n // ========================== Custom Input ==========================\n // Only works in `combobox`\n var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n // Used for customize replacement for `rc-cascader`\n var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 || (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n // ============================== Open ==============================\n // SSR not support Portal which means we need delay `open` for the first time render\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n rendered = _React$useState4[0],\n setRendered = _React$useState4[1];\n useLayoutEffect(function () {\n setRendered(true);\n }, []);\n var _useMergedState = useMergedState(false, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerOpen = _useMergedState2[0],\n setInnerOpen = _useMergedState2[1];\n var mergedOpen = rendered ? innerOpen : false;\n\n // Not trigger `open` in `combobox` when `notFoundContent` is empty\n var emptyListContent = !notFoundContent && emptyOptions;\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n var triggerOpen = emptyListContent ? false : mergedOpen;\n var onToggleOpen = React.useCallback(function (newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (!disabled) {\n setInnerOpen(nextOpen);\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 || onDropdownVisibleChange(nextOpen);\n }\n }\n }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n // ============================= Search =============================\n var tokenWithEnter = React.useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n var _ref = React.useContext(SelectContext) || {},\n maxCount = _ref.maxCount,\n rawValues = _ref.rawValues;\n var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n if (multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount) {\n return;\n }\n var ret = true;\n var newSearchText = searchText;\n onActiveValueChange === null || onActiveValueChange === void 0 || onActiveValueChange(null);\n var separatedList = getSeparatedContent(searchText, tokenSeparators, isValidCount(maxCount) ? maxCount - rawValues.size : undefined);\n\n // Check if match the `tokenSeparators`\n var patchLabels = isCompositing ? null : separatedList;\n\n // Ignore combobox since it's not split-able\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n onSearchSplit === null || onSearchSplit === void 0 || onSearchSplit(patchLabels);\n\n // Should close when paste finish\n onToggleOpen(false);\n\n // Tell Selector that break next actions\n ret = false;\n }\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect'\n });\n }\n return ret;\n };\n\n // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n onSearch(searchText, {\n source: 'submit'\n });\n };\n\n // Close will clean up single mode search text\n React.useEffect(function () {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]);\n\n // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n React.useEffect(function () {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n\n // After onBlur is triggered, the focused does not need to be reset\n if (disabled && !blurRef.current) {\n setMockFocused(false);\n }\n }, [disabled]);\n\n // ============================ Keyboard ============================\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1];\n var keyLockRef = React.useRef(false);\n\n // KeyDown\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var key = event.key;\n var isEnterKey = key === 'Enter';\n if (isEnterKey) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n }\n\n // We only manage open state here, close logic should handle by list component\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n setClearLock(!!mergedSearchValue);\n\n // Remove value by `backspace`\n if (key === 'Backspace' && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n var cloneDisplayValues = _toConsumableArray(displayValues);\n var removedDisplayValue = null;\n for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n var current = cloneDisplayValues[i];\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue]\n });\n }\n }\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n if (mergedOpen && (!isEnterKey || !keyLockRef.current)) {\n var _listRef$current2;\n (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n if (isEnterKey) {\n keyLockRef.current = true;\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown.apply(void 0, [event].concat(rest));\n };\n\n // KeyUp\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n if (mergedOpen) {\n var _listRef$current3;\n (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 || _listRef$current3.onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n if (event.key === 'Enter') {\n keyLockRef.current = false;\n }\n onKeyUp === null || onKeyUp === void 0 || onKeyUp.apply(void 0, [event].concat(rest));\n };\n\n // ============================ Selector ============================\n var onSelectorRemove = function onSelectorRemove(val) {\n var newValues = displayValues.filter(function (i) {\n return i !== val;\n });\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val]\n });\n };\n\n // ========================== Focus / Blur ==========================\n /** Record real focus status */\n var focusRef = React.useRef(false);\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n }\n\n // `showAction` should handle `focus` if set\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n focusRef.current = true;\n };\n var onContainerBlur = function onContainerBlur() {\n blurRef.current = true;\n setMockFocused(false, function () {\n focusRef.current = false;\n blurRef.current = false;\n onToggleOpen(false);\n });\n if (disabled) {\n return;\n }\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, {\n source: 'submit'\n });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur'\n });\n }\n }\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n // Give focus back of Select\n var activeTimeoutIds = [];\n React.useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var _triggerRef$current;\n var target = event.target;\n var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n // We should give focus back to selector if clicked item is not focusable\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n cancelSetMockFocused();\n if (!mobile && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 || _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n onMouseDown === null || onMouseDown === void 0 || onMouseDown.apply(void 0, [event].concat(restArgs));\n };\n\n // ============================ Dropdown ============================\n var _React$useState5 = React.useState({}),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n forceUpdate = _React$useState6[1];\n // We need force update here since popup dom is render async\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n\n // Used for raw custom input trigger\n var onTriggerVisibleChange;\n if (customizeRawInputElement) {\n onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n onToggleOpen(newOpen);\n };\n }\n\n // Close when click on non-select element\n useSelectTriggerControl(function () {\n var _triggerRef$current2;\n return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n // ============================ Context =============================\n var baseSelectContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n notFoundContent: notFoundContent,\n open: mergedOpen,\n triggerOpen: triggerOpen,\n id: id,\n showSearch: mergedShowSearch,\n multiple: multiple,\n toggleOpen: onToggleOpen\n });\n }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n // ==================================================================\n // == Render ==\n // ==================================================================\n\n // ============================= Arrow ==============================\n var showSuffixIcon = !!suffixIcon || loading;\n var arrowNode;\n if (showSuffixIcon) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: suffixIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n }\n\n // ============================= Clear ==============================\n var onClearMouseDown = function onClearMouseDown() {\n var _selectorRef$current4;\n onClear === null || onClear === void 0 || onClear();\n (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 || _selectorRef$current4.focus();\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues\n });\n onInternalSearch('', false, false);\n };\n var _useAllowClear = useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon, disabled, mergedSearchValue, mode),\n mergedAllowClear = _useAllowClear.allowClear,\n clearNode = _useAllowClear.clearIcon;\n\n // =========================== OptionList ===========================\n var optionList = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef\n });\n\n // ============================= Select =============================\n var mergedClassName = classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), mockFocused), \"\".concat(prefixCls, \"-multiple\"), multiple), \"\".concat(prefixCls, \"-single\"), !multiple), \"\".concat(prefixCls, \"-allow-clear\"), allowClear), \"\".concat(prefixCls, \"-show-arrow\"), showSuffixIcon), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-loading\"), loading), \"\".concat(prefixCls, \"-open\"), mergedOpen), \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch));\n\n // >>> Selector\n var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: optionList,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n placement: placement,\n builtinPlacements: builtinPlacements,\n getPopupContainer: getPopupContainer,\n empty: emptyOptions,\n getTriggerDOMNode: function getTriggerDOMNode(node) {\n return (\n // TODO: This is workaround and should be removed in `rc-select`\n // And use new standard `nativeElement` for ref.\n // But we should update `rc-resize-observer` first.\n selectorDomRef.current || node\n );\n },\n onPopupVisibleChange: onTriggerVisibleChange,\n onPopupMouseEnter: onPopupMouseEnter\n }, customizeRawInputElement ? ( /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef\n })) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: id,\n showSearch: mergedShowSearch,\n autoClearSearchValue: autoClearSearchValue,\n mode: mode,\n activeDescendantId: activeDescendantId,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n activeValue: activeValue,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n onSearchSubmit: onInternalSearchSubmit,\n onRemove: onSelectorRemove,\n tokenWithEnter: tokenWithEnter\n })));\n\n // >>> Render\n var renderNode;\n\n // Render raw\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), /*#__PURE__*/React.createElement(Polite, {\n visible: mockFocused && !mergedOpen,\n values: displayValues\n }), selectorNode, arrowNode, mergedAllowClear && clearNode);\n }\n return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n value: baseSelectContext\n }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n var delayRef = React.useRef(null);\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n if (callback) {\n callback();\n }\n }, timeout);\n };\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n open: open,\n triggerOpen: triggerOpen,\n customizedTrigger: customizedTrigger\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var _propsRef$current;\n // If trigger is customized, Trigger will take control of popupVisible\n if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n return;\n }\n var target = event.target;\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n if (propsRef.current.open && elements().filter(function (element) {\n return element;\n }).every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport List from 'rc-virtual-list';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport SelectContext from \"./SelectContext\";\nimport TransBtn from \"./TransBtn\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport { isValidCount } from \"./utils/valueUtil\";\n\n// export interface OptionListProps<OptionsType extends object[]> {\n\nfunction isTitleType(content) {\n return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n id = _useBaseProps.id,\n open = _useBaseProps.open,\n multiple = _useBaseProps.multiple,\n mode = _useBaseProps.mode,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n onPopupScroll = _useBaseProps.onPopupScroll;\n var _React$useContext = React.useContext(SelectContext),\n maxCount = _React$useContext.maxCount,\n flattenOptions = _React$useContext.flattenOptions,\n onActiveValue = _React$useContext.onActiveValue,\n defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n onSelect = _React$useContext.onSelect,\n menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n rawValues = _React$useContext.rawValues,\n fieldNames = _React$useContext.fieldNames,\n virtual = _React$useContext.virtual,\n direction = _React$useContext.direction,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight,\n optionRender = _React$useContext.optionRender;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // =========================== List ===========================\n var listRef = React.useRef(null);\n var overMaxCount = React.useMemo(function () {\n return multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount;\n }, [multiple, maxCount, rawValues === null || rawValues === void 0 ? void 0 : rawValues.size]);\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var scrollIntoView = function scrollIntoView(args) {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(typeof args === 'number' ? {\n index: args\n } : args);\n };\n\n // ========================== Active ==========================\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _ref = memoFlattenOptions[current] || {},\n group = _ref.group,\n data = _ref.data;\n if (!group && !(data !== null && data !== void 0 && data.disabled) && !overMaxCount) {\n return current;\n }\n }\n return -1;\n };\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n };\n\n // Trigger active event\n var flattenItem = memoFlattenOptions[index];\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n onActiveValue(flattenItem.value, index, info);\n };\n\n // Auto active first item when list length or searchValue changed\n useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]);\n\n // https://github.com/ant-design/ant-design/issues/34975\n var isSelected = React.useCallback(function (value) {\n return rawValues.has(value) && mode !== 'combobox';\n }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n // Auto scroll to item position in single mode\n useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && rawValues.size === 1) {\n var value = Array.from(rawValues)[0];\n var index = memoFlattenOptions.findIndex(function (_ref2) {\n var data = _ref2.data;\n return data.value === value;\n });\n if (index !== -1) {\n setActive(index);\n scrollIntoView(index);\n }\n }\n });\n\n // Force trigger scrollbar visible when open\n if (open) {\n var _listRef$current2;\n (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.scrollTo(undefined);\n }\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open, searchValue]);\n\n // ========================== Values ==========================\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !rawValues.has(value)\n });\n }\n\n // Single mode should always close by select\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which,\n ctrlKey = event.ctrlKey;\n switch (which) {\n // >>> Arrow keys & ctrl + n/p on Mac\n case KeyCode.N:\n case KeyCode.P:\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n } else if (isPlatformMac() && ctrlKey) {\n if (which === KeyCode.N) {\n offset = 1;\n } else if (which === KeyCode.P) {\n offset = -1;\n }\n }\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n var _item$data;\n // value\n var item = memoFlattenOptions[activeIndex];\n if (item && !(item !== null && item !== void 0 && (_item$data = item.data) !== null && _item$data !== void 0 && _item$data.disabled) && !overMaxCount) {\n onSelectValue(item.value);\n } else {\n onSelectValue(undefined);\n }\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n });\n\n // ========================== Render ==========================\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n return fieldNames[key];\n });\n var getLabel = function getLabel(item) {\n return item.label;\n };\n function getItemAriaProps(item, index) {\n var group = item.group;\n return {\n role: group ? 'presentation' : 'option',\n id: \"\".concat(id, \"_list_\").concat(index)\n };\n }\n var renderItem = function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) {\n return null;\n }\n var itemData = item.data || {};\n var value = itemData.value;\n var group = item.group;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = getLabel(item);\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n }, attrs, {\n key: index\n }, getItemAriaProps(item, index), {\n \"aria-selected\": isSelected(value)\n }), value) : null;\n };\n var a11yProps = {\n role: 'listbox',\n id: \"\".concat(id, \"_list\")\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, virtual && /*#__PURE__*/React.createElement(\"div\", _extends({}, a11yProps, {\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }), renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: listHeight,\n itemHeight: listItemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onPopupScroll,\n virtual: virtual,\n direction: direction,\n innerProps: virtual ? null : a11yProps\n }, function (item, itemIndex) {\n var group = item.group,\n groupOption = item.groupOption,\n data = item.data,\n label = item.label,\n value = item.value;\n var key = data.key;\n\n // Group\n if (group) {\n var _data$title;\n var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"), data.className),\n title: groupTitle\n }, label !== undefined ? label : key);\n }\n var disabled = data.disabled,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, _excluded);\n var passedProps = omit(otherProps, omitFieldNameList);\n\n // Option\n var selected = isSelected(value);\n var mergedDisabled = disabled || !selected && overMaxCount;\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !mergedDisabled), \"\".concat(optionPrefixCls, \"-disabled\"), mergedDisabled), \"\".concat(optionPrefixCls, \"-selected\"), selected));\n var mergedLabel = getLabel(item);\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n // https://github.com/ant-design/ant-design/issues/34145\n var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n // https://github.com/ant-design/ant-design/issues/26717\n var optionTitle = isTitleType(content) ? content.toString() : undefined;\n if (title !== undefined) {\n optionTitle = title;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || mergedDisabled) {\n return;\n }\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!mergedDisabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, typeof optionRender === 'function' ? optionRender(item, {\n index: itemIndex\n }) : content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n value: value,\n disabled: mergedDisabled,\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nif (process.env.NODE_ENV !== 'production') {\n RefOptionList.displayName = 'OptionList';\n}\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n return React.useMemo(function () {\n if (!searchValue || filterOption === false) {\n return options;\n }\n var fieldOptions = fieldNames.options,\n fieldLabel = fieldNames.label,\n fieldValue = fieldNames.value;\n var filteredOptions = [];\n var customizeFilter = typeof filterOption === 'function';\n var upperSearch = searchValue.toUpperCase();\n var filterFunc = customizeFilter ? filterOption : function (_, option) {\n // Use provided `optionFilterProp`\n if (optionFilterProp) {\n return includes(option[optionFilterProp], upperSearch);\n }\n\n // Auto select `label` or `value` by option type\n if (option[fieldOptions]) {\n // hack `fieldLabel` since `OptionGroup` children is not `label`\n return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n }\n return includes(option[fieldValue], upperSearch);\n };\n var wrapOption = customizeFilter ? function (opt) {\n return injectPropsWithOption(opt);\n } : function (opt) {\n return opt;\n };\n options.forEach(function (item) {\n // Group should check child options\n if (item[fieldOptions]) {\n // Check group first\n var matchGroup = filterFunc(searchValue, wrapOption(item));\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item[fieldOptions].filter(function (subItem) {\n return filterFunc(searchValue, wrapOption(subItem));\n });\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n }\n }\n return;\n }\n if (filterFunc(searchValue, wrapOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref2 = node,\n isSelectOptGroup = _ref2.type.isSelectOptGroup,\n key = _ref2.key,\n _ref2$props = _ref2.props,\n children = _ref2$props.children,\n restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nvar useOptions = function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n return React.useMemo(function () {\n var mergedOptions = options;\n var childrenAsData = !options;\n if (childrenAsData) {\n mergedOptions = convertChildrenToData(children);\n }\n var valueOptions = new Map();\n var labelOptions = new Map();\n var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n if (key && typeof key === 'string') {\n labelOptionsMap.set(option[key], option);\n }\n };\n var dig = function dig(optionList) {\n var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // for loop to speed up collection speed\n for (var i = 0; i < optionList.length; i += 1) {\n var option = optionList[i];\n if (!option[fieldNames.options] || isChildren) {\n valueOptions.set(option[fieldNames.value], option);\n setLabelOptions(labelOptions, option, fieldNames.label);\n // https://github.com/ant-design/ant-design/issues/35304\n setLabelOptions(labelOptions, option, optionFilterProp);\n setLabelOptions(labelOptions, option, optionLabelProp);\n } else {\n dig(option[fieldNames.options], true);\n }\n }\n };\n dig(mergedOptions);\n return {\n options: mergedOptions,\n valueOptions: valueOptions,\n labelOptions: labelOptions\n };\n }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n};\nexport default useOptions;","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"optionRender\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"direction\", \"listHeight\", \"listItemHeight\", \"labelRender\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\", \"maxCount\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport { hasValue, isComboNoValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n mode = props.mode,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n backfill = props.backfill,\n fieldNames = props.fieldNames,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n optionFilterProp = props.optionFilterProp,\n optionLabelProp = props.optionLabelProp,\n options = props.options,\n optionRender = props.optionRender,\n children = props.children,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n virtual = props.virtual,\n direction = props.direction,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n labelRender = props.labelRender,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n onChange = props.onChange,\n maxCount = props.maxCount,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = isMultiple(mode);\n var childrenAsData = !!(!options && children);\n var mergedFilterOption = React.useMemo(function () {\n if (filterOption === undefined && mode === 'combobox') {\n return false;\n }\n return filterOption;\n }, [filterOption, mode]);\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames, childrenAsData);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [\n // We stringify fieldNames to avoid unnecessary re-renders.\n JSON.stringify(fieldNames), childrenAsData]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSearchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n\n // =========================== Option ===========================\n var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n var valueOptions = parsedOptions.valueOptions,\n labelOptions = parsedOptions.labelOptions,\n mergedOptions = parsedOptions.options;\n\n // ========================= Wrap Value =========================\n var convert2LabelValues = React.useCallback(function (draftValues) {\n // Convert to array\n var valueList = toArray(draftValues);\n\n // Convert to labelInValue type\n return valueList.map(function (val) {\n var rawValue;\n var rawLabel;\n var rawKey;\n var rawDisabled;\n var rawTitle;\n\n // Fill label & value\n if (isRawValue(val)) {\n rawValue = val;\n } else {\n var _val$value;\n rawKey = val.key;\n rawLabel = val.label;\n rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n }\n var option = valueOptions.get(rawValue);\n if (option) {\n var _option$key;\n // Fill missing props\n if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n // Warning if label not same as provided\n if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n }\n }\n return {\n label: rawLabel,\n value: rawValue,\n key: rawKey,\n disabled: rawDisabled,\n title: rawTitle\n };\n });\n }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n // =========================== Values ===========================\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n internalValue = _useMergedState4[0],\n setInternalValue = _useMergedState4[1];\n\n // Merged value with LabelValueType\n var rawLabeledValues = React.useMemo(function () {\n var _values$;\n var newInternalValue = multiple && internalValue === null ? [] : internalValue;\n var values = convert2LabelValues(newInternalValue);\n\n // combobox no need save value when it's no value (exclude value equal 0)\n if (mode === 'combobox' && isComboNoValue((_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.value)) {\n return [];\n }\n return values;\n }, [internalValue, convert2LabelValues, mode, multiple]);\n\n // Fill label with cache to avoid option remove\n var _useCache = useCache(rawLabeledValues, valueOptions),\n _useCache2 = _slicedToArray(_useCache, 2),\n mergedValues = _useCache2[0],\n getMixedOption = _useCache2[1];\n var displayValues = React.useMemo(function () {\n // `null` need show as placeholder instead\n // https://github.com/ant-design/ant-design/issues/25057\n if (!mode && mergedValues.length === 1) {\n var firstValue = mergedValues[0];\n if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n return [];\n }\n }\n return mergedValues.map(function (item) {\n var _ref;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_ref = typeof labelRender === 'function' ? labelRender(item) : item.label) !== null && _ref !== void 0 ? _ref : item.value\n });\n });\n }, [mode, mergedValues, labelRender]);\n\n /** Convert `displayValues` to raw value type set */\n var rawValues = React.useMemo(function () {\n return new Set(mergedValues.map(function (val) {\n return val.value;\n }));\n }, [mergedValues]);\n React.useEffect(function () {\n if (mode === 'combobox') {\n var _mergedValues$;\n var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n setSearchValue(hasValue(strValue) ? String(strValue) : '');\n }\n }, [mergedValues]);\n\n // ======================= Display Option =======================\n // Create a placeholder item if not exist in `options`\n var createTagOption = useRefFunc(function (val, label) {\n var mergedLabel = label !== null && label !== void 0 ? label : val;\n return _defineProperty(_defineProperty({}, mergedFieldNames.value, val), mergedFieldNames.label, mergedLabel);\n });\n\n // Fill tag as option if mode is `tags`\n var filledTagOptions = React.useMemo(function () {\n if (mode !== 'tags') {\n return mergedOptions;\n }\n\n // >>> Tag mode\n var cloneOptions = _toConsumableArray(mergedOptions);\n\n // Check if value exist in options (include new patch item)\n var existOptions = function existOptions(val) {\n return valueOptions.has(val);\n };\n\n // Fill current value as option\n _toConsumableArray(mergedValues).sort(function (a, b) {\n return a.value < b.value ? -1 : 1;\n }).forEach(function (item) {\n var val = item.value;\n if (!existOptions(val)) {\n cloneOptions.push(createTagOption(val, item.label));\n }\n });\n return cloneOptions;\n }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n // Fill options with search value if needed\n var filledSearchOptions = React.useMemo(function () {\n if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n return item[optionFilterProp || 'value'] === mergedSearchValue;\n })) {\n return filteredOptions;\n }\n // ignore when search value equal select input value\n if (filteredOptions.some(function (item) {\n return item[mergedFieldNames.value] === mergedSearchValue;\n })) {\n return filteredOptions;\n }\n // Fill search value as option\n return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue, mergedFieldNames]);\n var sorter = function sorter(inputOptions) {\n var sortedOptions = _toConsumableArray(inputOptions).sort(function (a, b) {\n return filterSort(a, b, {\n searchValue: mergedSearchValue\n });\n });\n return sortedOptions.map(function (item) {\n if (Array.isArray(item.options)) {\n return _objectSpread(_objectSpread({}, item), {}, {\n options: item.options.length > 0 ? sorter(item.options) : item.options\n });\n }\n return item;\n });\n };\n var orderedFilteredOptions = React.useMemo(function () {\n if (!filterSort) {\n return filledSearchOptions;\n }\n return sorter(filledSearchOptions);\n }, [filledSearchOptions, filterSort, mergedSearchValue]);\n var displayOptions = React.useMemo(function () {\n return flattenOptions(orderedFilteredOptions, {\n fieldNames: mergedFieldNames,\n childrenAsData: childrenAsData\n });\n }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n // =========================== Change ===========================\n var triggerChange = function triggerChange(values) {\n var labeledValues = convert2LabelValues(values);\n setInternalValue(labeledValues);\n if (onChange && (\n // Trigger event only when value changed\n labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n var _mergedValues$index;\n return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n }))) {\n var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n return v.value;\n });\n var returnOptions = labeledValues.map(function (v) {\n return injectPropsWithOption(getMixedOption(v.value));\n });\n onChange(\n // Value\n multiple ? returnValues : returnValues[0],\n // Option\n multiple ? returnOptions : returnOptions[0]);\n }\n };\n\n // ======================= Accessibility ========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValue = _React$useState2[0],\n setActiveValue = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n accessibilityIndex = _React$useState4[0],\n setAccessibilityIndex = _React$useState4[1];\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n var onActiveValue = React.useCallback(function (active, index) {\n var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref3$source = _ref3.source,\n source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n setAccessibilityIndex(index);\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }, [backfill, mode]);\n\n // ========================= OptionList =========================\n var triggerSelect = function triggerSelect(val, selected, type) {\n var getSelectEnt = function getSelectEnt() {\n var _option$key2;\n var option = getMixedOption(val);\n return [labelInValue ? {\n label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n value: val,\n key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n } : val, injectPropsWithOption(option)];\n };\n if (selected && onSelect) {\n var _getSelectEnt = getSelectEnt(),\n _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n wrappedValue = _getSelectEnt2[0],\n _option = _getSelectEnt2[1];\n onSelect(wrappedValue, _option);\n } else if (!selected && onDeselect && type !== 'clear') {\n var _getSelectEnt3 = getSelectEnt(),\n _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n _wrappedValue = _getSelectEnt4[0],\n _option2 = _getSelectEnt4[1];\n onDeselect(_wrappedValue, _option2);\n }\n };\n\n // Used for OptionList selection\n var onInternalSelect = useRefFunc(function (val, info) {\n var cloneValues;\n\n // Single mode always trigger select only with option list\n var mergedSelect = multiple ? info.selected : true;\n if (mergedSelect) {\n cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n } else {\n cloneValues = mergedValues.filter(function (v) {\n return v.value !== val;\n });\n }\n triggerChange(cloneValues);\n triggerSelect(val, mergedSelect);\n\n // Clean search value if single or configured\n if (mode === 'combobox') {\n // setSearchValue(String(val));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setSearchValue('');\n setActiveValue('');\n }\n });\n\n // ======================= Display Change =======================\n // BaseSelect display values change\n var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n triggerChange(nextValues);\n var type = info.type,\n values = info.values;\n if (type === 'remove' || type === 'clear') {\n values.forEach(function (item) {\n triggerSelect(item.value, false, type);\n });\n }\n };\n\n // =========================== Search ===========================\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n setActiveValue(null);\n\n // [Submit] Tag mode should flush input\n if (info.source === 'submit') {\n var formatted = (searchText || '').trim();\n // prevent empty tags from appearing when you click the Enter button\n if (formatted) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n triggerChange(newRawValues);\n triggerSelect(formatted, true);\n setSearchValue('');\n }\n return;\n }\n if (info.source !== 'blur') {\n if (mode === 'combobox') {\n triggerChange(searchText);\n }\n onSearch === null || onSearch === void 0 || onSearch(searchText);\n }\n };\n var onInternalSearchSplit = function onInternalSearchSplit(words) {\n var patchValues = words;\n if (mode !== 'tags') {\n patchValues = words.map(function (word) {\n var opt = labelOptions.get(word);\n return opt === null || opt === void 0 ? void 0 : opt.value;\n }).filter(function (val) {\n return val !== undefined;\n });\n }\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true);\n });\n };\n\n // ========================== Context ===========================\n var selectContext = React.useMemo(function () {\n var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n flattenOptions: displayOptions,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n onSelect: onInternalSelect,\n menuItemSelectedIcon: menuItemSelectedIcon,\n rawValues: rawValues,\n fieldNames: mergedFieldNames,\n virtual: realVirtual,\n direction: direction,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n childrenAsData: childrenAsData,\n maxCount: maxCount,\n optionRender: optionRender\n });\n }, [maxCount, parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, direction, listHeight, listItemHeight, childrenAsData, optionRender]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n value: selectContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n ref: ref,\n omitDomProps: OMIT_DOM_PROPS,\n mode: mode\n // >>> Values\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Trigger\n ,\n direction: direction\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n autoClearSearchValue: autoClearSearchValue,\n onSearchSplit: onInternalSearchSplit,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n // >>> OptionList\n ,\n OptionList: OptionList,\n emptyOptions: !displayOptions.length\n // >>> Accessibility\n ,\n activeValue: activeValue,\n activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n var cacheRef = React.useRef({\n values: new Map(),\n options: new Map()\n });\n var filledLabeledValues = React.useMemo(function () {\n var _cacheRef$current = cacheRef.current,\n prevValueCache = _cacheRef$current.values,\n prevOptionCache = _cacheRef$current.options;\n\n // Fill label by cache\n var patchedValues = labeledValues.map(function (item) {\n if (item.label === undefined) {\n var _prevValueCache$get;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n });\n }\n return item;\n });\n\n // Refresh cache\n var valueCache = new Map();\n var optionCache = new Map();\n patchedValues.forEach(function (item) {\n valueCache.set(item.value, item);\n optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n });\n cacheRef.current.values = valueCache;\n cacheRef.current.options = optionCache;\n return patchedValues;\n }, [labeledValues, valueOptions]);\n var getOption = React.useCallback(function (val) {\n return valueOptions.get(val) || cacheRef.current.options.get(val);\n }, [valueOptions]);\n return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","module.exports = __webpack_public_path__ + \"875ae58e8015a6d08dbc9d0c04e24638.js\";","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\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\nmodule.exports = getSymbols;\n","module.exports = __webpack_public_path__ + \"a6eb87af5cd7ae7e4fcba8ec606ec4ba.js\";","module.exports = __webpack_public_path__ + \"fa0c561bb37040fc8145e5c70ea64912.js\";","import { uuid4, timestampInSeconds, dropUndefinedKeys, logger } from '@sentry/utils';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { createSpanEnvelope } from '../envelope.js';\nimport { getMetricSummaryJsonForSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { TRACE_FLAG_SAMPLED, TRACE_FLAG_NONE, spanTimeInputToSeconds, getStatusMessage, getRootSpan, spanToJSON, getSpanDescendants, spanToTransactionTraceContext } from '../utils/spanUtils.js';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext.js';\nimport { logSpanEnd } from './logSpans.js';\nimport { timedEventsToMeasurements } from './measurement.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nclass SentrySpan {\n\n /** Epoch timestamp in seconds when the span started. */\n\n /** Epoch timestamp in seconds when the span ended. */\n\n /** Internal keeper of the status */\n\n /** The timed events added to this span. */\n\n /** if true, treat span as a standalone span (not part of a transaction) */\n\n /**\n * You should never call the constructor manually, always use `Sentry.startSpan()`\n * or other span methods.\n * @internal\n * @hideconstructor\n * @hidden\n */\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n this._name = spanContext.name;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n\n this._events = [];\n\n this._isStandaloneSpan = spanContext.isStandalone;\n\n // If the span is already ended, ensure we finalize the span immediately\n if (this._endTime) {\n this._onSpanEnded();\n }\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLink(_link) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLinks(_links) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n // noop\n }\n\n /** @inheritdoc */\n spanContext() {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n setAttribute(key, value) {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n\n return this;\n }\n\n /** @inheritdoc */\n setAttributes(attributes) {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for browser tracing where we want to adjust the start time afterwards.\n * USE THIS WITH CAUTION!\n *\n * @hidden\n * @internal\n */\n updateStartTime(timeInput) {\n this._startTime = spanTimeInputToSeconds(timeInput);\n }\n\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n updateName(name) {\n this._name = name;\n return this;\n }\n\n /** @inheritdoc */\n end(endTimestamp) {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n logSpanEnd(this);\n\n this._onSpanEnded();\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n getSpanJSON() {\n return dropUndefinedKeys({\n data: this._attributes,\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: getStatusMessage(this._status),\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] ,\n exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] ,\n measurements: timedEventsToMeasurements(this._events),\n is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n });\n }\n\n /** @inheritdoc */\n isRecording() {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * @inheritdoc\n */\n addEvent(\n name,\n attributesOrStartTime,\n startTime,\n ) {\n DEBUG_BUILD && logger.log('[Tracing] Adding an event to span:', name);\n\n const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n const event = {\n name,\n time: spanTimeInputToSeconds(time),\n attributes,\n };\n\n this._events.push(event);\n\n return this;\n }\n\n /**\n * This method should generally not be used,\n * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n * USE THIS WITH CAUTION!\n * @internal\n * @hidden\n * @experimental\n */\n isStandaloneSpan() {\n return !!this._isStandaloneSpan;\n }\n\n /** Emit `spanEnd` when the span is ended. */\n _onSpanEnded() {\n const client = getClient();\n if (client) {\n client.emit('spanEnd', this);\n }\n\n // A segment span is basically the root span of a local span tree.\n // So for now, this is either what we previously refer to as the root span,\n // or a standalone span.\n const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n if (!isSegmentSpan) {\n return;\n }\n\n // if this is a standalone span, we send it immediately\n if (this._isStandaloneSpan) {\n if (this._sampled) {\n sendSpanEnvelope(createSpanEnvelope([this], client));\n } else {\n DEBUG_BUILD &&\n logger.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n if (client) {\n client.recordDroppedEvent('sample_rate', 'span');\n }\n }\n return;\n }\n\n const transactionEvent = this._convertSpanToTransaction();\n if (transactionEvent) {\n const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n scope.captureEvent(transactionEvent);\n }\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n _convertSpanToTransaction() {\n // We can only convert finished spans\n if (!isFullFinishedSpan(spanToJSON(this))) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && logger.warn('Transaction has no name, falling back to `<unlabeled transaction>`.');\n this._name = '<unlabeled transaction>';\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n const scope = capturedSpanScope || getCurrentScope();\n const client = scope.getClient() || getClient();\n\n if (this._sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n // The transaction span itself as well as any potential standalone spans should be filtered out\n const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] ;\n\n const transaction = {\n contexts: {\n trace: spanToTransactionTraceContext(this),\n },\n spans:\n // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n // we do not use spans anymore after this point\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans,\n start_timestamp: this._startTime,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope,\n capturedSpanIsolationScope,\n ...dropUndefinedKeys({\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n }),\n },\n _metrics_summary: getMetricSummaryJsonForSpan(this),\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const measurements = timedEventsToMeasurements(this._events);\n const hasMeasurements = measurements && Object.keys(measurements).length;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n logger.log(\n '[Measurements] Adding measurements to transaction event',\n JSON.stringify(measurements, undefined, 2),\n );\n transaction.measurements = measurements;\n }\n\n return transaction;\n }\n}\n\nfunction isSpanTimeInput(value) {\n return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input) {\n return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span) {\n return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope) {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const spanItems = envelope[1];\n if (!spanItems || spanItems.length === 0) {\n client.recordDroppedEvent('before_send', 'span');\n return;\n }\n\n const transport = client.getTransport();\n if (transport) {\n transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending span:', reason);\n });\n }\n}\n\nexport { SentrySpan };\n//# sourceMappingURL=sentrySpan.js.map\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { __extends } from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nvar ConnectableObservable = (function (_super) {\n __extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._subject = null;\n _this._refCount = 0;\n _this._connection = null;\n if (hasLift(source)) {\n _this.lift = source.lift;\n }\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype._teardown = function () {\n this._refCount = 0;\n var _connection = this._connection;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n };\n ConnectableObservable.prototype.connect = function () {\n var _this = this;\n var connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n var subject_1 = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () {\n _this._teardown();\n subject_1.complete();\n }, function (err) {\n _this._teardown();\n subject_1.error(err);\n }, function () { return _this._teardown(); })));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\n//# sourceMappingURL=ConnectableObservable.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate(function (source, subscriber) {\n var connection = null;\n source._refCount++;\n var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n var sharedConnection = source._connection;\n var conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n//# sourceMappingURL=refCount.js.map","import { Observable } from '../../Observable';\nimport { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider';\nimport { animationFrameProvider } from '../../scheduler/animationFrameProvider';\nexport function animationFrames(timestampProvider) {\n return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;\n}\nfunction animationFramesFactory(timestampProvider) {\n return new Observable(function (subscriber) {\n var provider = timestampProvider || performanceTimestampProvider;\n var start = provider.now();\n var id = 0;\n var run = function () {\n if (!subscriber.closed) {\n id = animationFrameProvider.requestAnimationFrame(function (timestamp) {\n id = 0;\n var now = provider.now();\n subscriber.next({\n timestamp: timestampProvider ? now : timestamp,\n elapsed: now - start,\n });\n run();\n });\n }\n };\n run();\n return function () {\n if (id) {\n animationFrameProvider.cancelAnimationFrame(id);\n }\n };\n });\n}\nvar DEFAULT_ANIMATION_FRAMES = animationFramesFactory();\n//# sourceMappingURL=animationFrames.js.map","export var performanceTimestampProvider = {\n now: function () {\n return (performanceTimestampProvider.delegate || performance).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=performanceTimestampProvider.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Subscription } from '../Subscription';\nexport var animationFrameProvider = {\n schedule: function (callback) {\n var request = requestAnimationFrame;\n var cancel = cancelAnimationFrame;\n var delegate = animationFrameProvider.delegate;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n var handle = request(function (timestamp) {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });\n },\n requestAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n cancelAnimationFrame: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = animationFrameProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));\n },\n delegate: undefined,\n};\n//# sourceMappingURL=animationFrameProvider.js.map","var nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar AsyncSubject = (function (_super) {\n __extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._value = null;\n _this._hasValue = false;\n _this._isComplete = false;\n return _this;\n }\n AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value);\n subscriber.complete();\n }\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n };\n AsyncSubject.prototype.complete = function () {\n var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && _super.prototype.next.call(this, _value);\n _super.prototype.complete.call(this);\n }\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nvar setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate;\nexport var immediateProvider = {\n setImmediate: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));\n },\n clearImmediate: function (handle) {\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=immediateProvider.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n __extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.flush(this);\n return 0;\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nvar AnimationFrameAction = (function (_super) {\n __extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n __extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return 1;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n __extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { EMPTY } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nimport { isFunction } from './util/isFunction';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n return observeNotification(this, observer);\n };\n Notification.prototype.do = function (nextHandler, errorHandler, completeHandler) {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n return kind === 'N' ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === 'E' ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n var _a;\n return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next)\n ? this.observe(nextOrObserver)\n : this.do(nextOrObserver, error, complete);\n };\n Notification.prototype.toObservable = function () {\n var _a = this, kind = _a.kind, value = _a.value, error = _a.error;\n var result = kind === 'N'\n ?\n of(value)\n :\n kind === 'E'\n ?\n throwError(function () { return error; })\n :\n kind === 'C'\n ?\n EMPTY\n :\n 0;\n if (!result) {\n throw new TypeError(\"Unexpected notification kind \" + kind);\n }\n return result;\n };\n Notification.createNext = function (value) {\n return new Notification('N', value);\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n return Notification;\n}());\nexport { Notification };\nexport function observeNotification(notification, observer) {\n var _a, _b, _c;\n var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;\n if (typeof kind !== 'string') {\n throw new TypeError('Invalid notification, missing \"kind\"');\n }\n kind === 'N' ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === 'E' ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);\n}\n//# sourceMappingURL=Notification.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function () { return errorOrErrorFactory; };\n var init = function (subscriber) { return subscriber.error(errorFactory()); };\n return new Observable(scheduler ? function (subscriber) { return scheduler.schedule(init, 0, subscriber); } : init);\n}\n//# sourceMappingURL=throwError.js.map","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n//# sourceMappingURL=of.js.map","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n}; });\n//# sourceMappingURL=EmptyError.js.map","import { createErrorClass } from './createErrorClass';\nexport var ArgumentOutOfRangeError = createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { createErrorClass } from './createErrorClass';\nexport var NotFoundError = createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n//# sourceMappingURL=NotFoundError.js.map","import { createErrorClass } from './createErrorClass';\nexport var SequenceError = createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n//# sourceMappingURL=SequenceError.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport var TimeoutError = createErrorClass(function (_super) {\n return function TimeoutErrorImpl(info) {\n if (info === void 0) { info = null; }\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n };\n});\nexport function timeout(config, schedulerArg) {\n var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate(function (source, subscriber) {\n var originalSourceSubscription;\n var timerSubscription;\n var lastValue = null;\n var seen = 0;\n var startTimer = function (delay) {\n timerSubscription = executeSchedule(subscriber, scheduler, function () {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta: meta,\n lastValue: lastValue,\n seen: seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, function () {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n//# sourceMappingURL=timeout.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","var isArray = Array.isArray;\nvar getPrototypeOf = Object.getPrototypeOf, objectProto = Object.prototype, getKeys = Object.keys;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n var first_1 = args[0];\n if (isArray(first_1)) {\n return { args: first_1, keys: null };\n }\n if (isPOJO(first_1)) {\n var keys = getKeys(first_1);\n return {\n args: keys.map(function (key) { return first_1[key]; }),\n keys: keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","var isArray = Array.isArray;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n//# sourceMappingURL=argsOrArgArray.js.map","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/constants.ts\nvar cssPrefix = \"lk\";\n\n// src/utils.ts\nimport { LocalParticipant, RemoteParticipant } from \"livekit-client\";\n\n// src/track-reference/track-reference.types.ts\nfunction isTrackReference(trackReference) {\n if (typeof trackReference === \"undefined\") {\n return false;\n }\n return isTrackReferenceSubscribed(trackReference) || isTrackReferencePublished(trackReference);\n}\nfunction isTrackReferenceSubscribed(trackReference) {\n var _a;\n if (!trackReference) {\n return false;\n }\n return trackReference.hasOwnProperty(\"participant\") && trackReference.hasOwnProperty(\"source\") && trackReference.hasOwnProperty(\"track\") && typeof ((_a = trackReference.publication) == null ? void 0 : _a.track) !== \"undefined\";\n}\nfunction isTrackReferencePublished(trackReference) {\n if (!trackReference) {\n return false;\n }\n return trackReference.hasOwnProperty(\"participant\") && trackReference.hasOwnProperty(\"source\") && trackReference.hasOwnProperty(\"publication\") && typeof trackReference.publication !== \"undefined\";\n}\nfunction isTrackReferencePlaceholder(trackReference) {\n if (!trackReference) {\n return false;\n }\n return trackReference.hasOwnProperty(\"participant\") && trackReference.hasOwnProperty(\"source\") && typeof trackReference.publication === \"undefined\";\n}\n\n// src/track-reference/track-reference.utils.ts\nfunction getTrackReferenceId(trackReference) {\n if (typeof trackReference === \"string\" || typeof trackReference === \"number\") {\n return `${trackReference}`;\n } else if (isTrackReferencePlaceholder(trackReference)) {\n return `${trackReference.participant.identity}_${trackReference.source}_placeholder`;\n } else if (isTrackReference(trackReference)) {\n return `${trackReference.participant.identity}_${trackReference.publication.source}_${trackReference.publication.trackSid}`;\n } else {\n throw new Error(`Can't generate a id for the given track reference: ${trackReference}`);\n }\n}\nfunction getTrackReferenceSource(trackReference) {\n if (isTrackReference(trackReference)) {\n return trackReference.publication.source;\n } else {\n return trackReference.source;\n }\n}\nfunction isEqualTrackRef(a, b) {\n if (a === void 0 || b === void 0) {\n return false;\n }\n if (isTrackReference(a) && isTrackReference(b)) {\n return a.publication.trackSid === b.publication.trackSid;\n } else {\n return getTrackReferenceId(a) === getTrackReferenceId(b);\n }\n}\nfunction isTrackReferencePinned(trackReference, pinState) {\n if (typeof pinState === \"undefined\") {\n return false;\n }\n if (isTrackReference(trackReference)) {\n return pinState.some(\n (pinnedTrackReference) => pinnedTrackReference.participant.identity === trackReference.participant.identity && isTrackReference(pinnedTrackReference) && pinnedTrackReference.publication.trackSid === trackReference.publication.trackSid\n );\n } else if (isTrackReferencePlaceholder(trackReference)) {\n return pinState.some(\n (pinnedTrackReference) => pinnedTrackReference.participant.identity === trackReference.participant.identity && isTrackReferencePlaceholder(pinnedTrackReference) && pinnedTrackReference.source === trackReference.source\n );\n } else {\n return false;\n }\n}\nfunction isPlaceholderReplacement(currentTrackRef, nextTrackRef) {\n return isTrackReferencePlaceholder(currentTrackRef) && isTrackReference(nextTrackRef) && nextTrackRef.participant.identity === currentTrackRef.participant.identity && nextTrackRef.source === currentTrackRef.source;\n}\n\n// src/utils.ts\nfunction isLocal(p) {\n return p instanceof LocalParticipant;\n}\nfunction isRemote(p) {\n return p instanceof RemoteParticipant;\n}\nvar attachIfSubscribed = (publication, element) => {\n if (!publication) return;\n const { isSubscribed, track } = publication;\n if (element && track) {\n if (isSubscribed) {\n track.attach(element);\n } else {\n track.detach(element);\n }\n }\n};\nfunction isParticipantTrackReferencePinned(trackRef, pinState) {\n if (pinState === void 0) {\n return false;\n }\n return pinState.some((pinnedTrackRef) => isEqualTrackRef(pinnedTrackRef, trackRef));\n}\nfunction getScrollBarWidth() {\n const inner = document.createElement(\"p\");\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n const outer = document.createElement(\"div\");\n outer.style.position = \"absolute\";\n outer.style.top = \"0px\";\n outer.style.left = \"0px\";\n outer.style.visibility = \"hidden\";\n outer.style.width = \"200px\";\n outer.style.height = \"150px\";\n outer.style.overflow = \"hidden\";\n outer.appendChild(inner);\n document.body.appendChild(outer);\n const w1 = inner.offsetWidth;\n outer.style.overflow = \"scroll\";\n let w2 = inner.offsetWidth;\n if (w1 === w2) {\n w2 = outer.clientWidth;\n }\n document.body.removeChild(outer);\n const scrollBarWidth = w1 - w2;\n return scrollBarWidth;\n}\n\n// src/helper/detectMobileBrowser.ts\nfunction isWeb() {\n return typeof document !== \"undefined\";\n}\nfunction isMobileBrowser() {\n return isWeb() ? /Mobi/i.test(window.navigator.userAgent) : false;\n}\n\n// src/helper/url-regex.ts\nfunction createUrlRegExp(options) {\n options = __spreadValues({}, options);\n const protocol = `(?:(?:[a-z]+:)?//)?`;\n const auth = \"(?:\\\\S+(?::\\\\S*)?@)?\";\n const ip = new RegExp(\n \"(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}\",\n \"g\"\n ).source;\n const host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n const domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\\\\.?`;\n const port = \"(?::\\\\d{2,5})?\";\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex2 = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ip}|${host}${domain}${tld})${port}${path}`;\n return options.exact ? new RegExp(`(?:^${regex2}$)`, \"i\") : new RegExp(regex2, \"ig\");\n}\n\n// src/helper/emailRegex.ts\nvar regex = \"[^\\\\.\\\\s@:](?:[^\\\\s@:]*[^\\\\s@:\\\\.])?@[^\\\\.\\\\s@]+(?:\\\\.[^\\\\.\\\\s@]+)*\";\nfunction createEmailRegExp({ exact } = {}) {\n return exact ? new RegExp(`^${regex}$`) : new RegExp(regex, \"g\");\n}\n\n// src/helper/floating-menu.ts\nimport { computePosition, flip, offset, shift } from \"@floating-ui/dom\";\nfunction computeMenuPosition(button, menu) {\n return __async(this, null, function* () {\n const { x, y } = yield computePosition(button, menu, {\n placement: \"top\",\n middleware: [offset(6), flip(), shift({ padding: 5 })]\n });\n return { x, y };\n });\n}\nfunction wasClickOutside(insideElement, event) {\n const isOutside = !insideElement.contains(event.target);\n return isOutside;\n}\n\n// src/helper/tokenizer.ts\nvar createDefaultGrammar = () => {\n return {\n email: createEmailRegExp(),\n url: createUrlRegExp({})\n };\n};\nfunction tokenize(input, grammar) {\n const matches = Object.entries(grammar).map(\n ([type, rx], weight) => Array.from(input.matchAll(rx)).map(({ index, 0: content }) => ({\n type,\n weight,\n content,\n index: index != null ? index : 0\n }))\n ).flat().sort((a, b) => {\n const d = a.index - b.index;\n return d !== 0 ? d : a.weight - b.weight;\n }).filter(({ index }, i, arr) => {\n if (i === 0) return true;\n const prev = arr[i - 1];\n return prev.index + prev.content.length <= index;\n });\n const tokens = [];\n let pos = 0;\n for (const { type, content, index } of matches) {\n if (index > pos) tokens.push(input.substring(pos, index));\n tokens.push({ type, content });\n pos = index + content.length;\n }\n if (input.length > pos) tokens.push(input.substring(pos));\n return tokens;\n}\n\n// src/helper/eventGroups.ts\nimport { ParticipantEvent, RoomEvent } from \"livekit-client\";\nvar allRemoteParticipantRoomEvents = [\n RoomEvent.ConnectionStateChanged,\n RoomEvent.RoomMetadataChanged,\n RoomEvent.ActiveSpeakersChanged,\n RoomEvent.ConnectionQualityChanged,\n RoomEvent.ParticipantConnected,\n RoomEvent.ParticipantDisconnected,\n RoomEvent.ParticipantPermissionsChanged,\n RoomEvent.ParticipantMetadataChanged,\n RoomEvent.TrackMuted,\n RoomEvent.TrackUnmuted,\n RoomEvent.TrackPublished,\n RoomEvent.TrackUnpublished,\n RoomEvent.TrackStreamStateChanged,\n RoomEvent.TrackSubscriptionFailed,\n RoomEvent.TrackSubscriptionPermissionChanged,\n RoomEvent.TrackSubscriptionStatusChanged\n];\nvar allParticipantRoomEvents = [\n ...allRemoteParticipantRoomEvents,\n RoomEvent.LocalTrackPublished,\n RoomEvent.LocalTrackUnpublished\n];\nvar participantTrackEvents = [\n ParticipantEvent.TrackPublished,\n ParticipantEvent.TrackUnpublished,\n ParticipantEvent.TrackMuted,\n ParticipantEvent.TrackUnmuted,\n ParticipantEvent.TrackStreamStateChanged,\n ParticipantEvent.TrackSubscribed,\n ParticipantEvent.TrackUnsubscribed,\n ParticipantEvent.TrackSubscriptionPermissionChanged,\n ParticipantEvent.TrackSubscriptionFailed,\n ParticipantEvent.LocalTrackPublished,\n ParticipantEvent.LocalTrackUnpublished\n];\nvar allRemoteParticipantEvents = [\n ParticipantEvent.ConnectionQualityChanged,\n ParticipantEvent.IsSpeakingChanged,\n ParticipantEvent.ParticipantMetadataChanged,\n ParticipantEvent.ParticipantPermissionsChanged,\n ParticipantEvent.TrackMuted,\n ParticipantEvent.TrackUnmuted,\n ParticipantEvent.TrackPublished,\n ParticipantEvent.TrackUnpublished,\n ParticipantEvent.TrackStreamStateChanged,\n ParticipantEvent.TrackSubscriptionFailed,\n ParticipantEvent.TrackSubscriptionPermissionChanged,\n ParticipantEvent.TrackSubscriptionStatusChanged\n];\nvar allParticipantEvents = [\n ...allRemoteParticipantEvents,\n ParticipantEvent.LocalTrackPublished,\n ParticipantEvent.LocalTrackUnpublished\n];\n\n// src/logger.ts\nimport {\n setLogLevel as setClientSdkLogLevel,\n setLogExtension as setClientSdkLogExtension,\n LogLevel as LogLevelEnum\n} from \"livekit-client\";\nimport loglevel from \"loglevel\";\nvar log = loglevel.getLogger(\"lk-components-js\");\nlog.setDefaultLevel(\"WARN\");\nfunction setLogLevel(level, options = {}) {\n var _a;\n log.setLevel(level);\n setClientSdkLogLevel((_a = options.liveKitClientLogLevel) != null ? _a : level);\n}\nfunction setLogExtension(extension, options = {}) {\n var _a;\n const originalFactory = log.methodFactory;\n log.methodFactory = (methodName, configLevel, loggerName) => {\n const rawMethod = originalFactory(methodName, configLevel, loggerName);\n const logLevel = LogLevelEnum[methodName];\n const needLog = logLevel >= configLevel && logLevel < LogLevelEnum.silent;\n return (msg, context) => {\n if (context) rawMethod(msg, context);\n else rawMethod(msg);\n if (needLog) {\n extension(logLevel, msg, context);\n }\n };\n };\n log.setLevel(log.getLevel());\n setClientSdkLogExtension((_a = options.liveKitClientLogExtension) != null ? _a : extension);\n}\n\n// src/helper/grid-layouts.ts\nvar GRID_LAYOUTS = [\n {\n columns: 1,\n rows: 1,\n name: \"1x1\",\n minTiles: 1,\n maxTiles: 1,\n minWidth: 0,\n minHeight: 0\n },\n {\n columns: 1,\n rows: 2,\n name: \"1x2\",\n minTiles: 2,\n maxTiles: 2,\n minWidth: 0,\n minHeight: 0\n },\n {\n columns: 2,\n rows: 1,\n name: \"2x1\",\n minTiles: 2,\n maxTiles: 2,\n minWidth: 900,\n minHeight: 0\n },\n {\n columns: 2,\n rows: 2,\n name: \"2x2\",\n minTiles: 3,\n maxTiles: 4,\n minWidth: 560,\n minHeight: 0\n },\n {\n columns: 3,\n rows: 3,\n name: \"3x3\",\n minTiles: 5,\n maxTiles: 9,\n minWidth: 700,\n minHeight: 0\n },\n {\n columns: 4,\n rows: 4,\n name: \"4x4\",\n minTiles: 10,\n maxTiles: 16,\n minWidth: 960,\n minHeight: 0\n },\n {\n columns: 5,\n rows: 5,\n name: \"5x5\",\n minTiles: 17,\n maxTiles: 25,\n minWidth: 1100,\n minHeight: 0\n }\n];\nfunction selectGridLayout(layouts, participantCount, width, height) {\n let currentLayoutIndex = 0;\n let layout = layouts.find((layout_, index, allLayouts) => {\n currentLayoutIndex = index;\n const isBiggerLayoutAvailable = allLayouts.findIndex((l, i) => {\n const layoutIsBiggerThanCurrent = i > index;\n const layoutFitsSameAmountOfParticipants = l.maxTiles === layout_.maxTiles;\n return layoutIsBiggerThanCurrent && layoutFitsSameAmountOfParticipants;\n }) !== -1;\n return layout_.maxTiles >= participantCount && !isBiggerLayoutAvailable;\n });\n if (layout === void 0) {\n layout = layouts[layouts.length - 1];\n if (layout) {\n log.warn(\n `No layout found for: participantCount: ${participantCount}, width/height: ${width}/${height} fallback to biggest available layout (${layout.name}).`\n );\n } else {\n throw new Error(`No layout or fallback layout found.`);\n }\n }\n if (width < layout.minWidth || height < layout.minHeight) {\n if (currentLayoutIndex > 0) {\n const smallerLayout = layouts[currentLayoutIndex - 1];\n layout = selectGridLayout(\n layouts.slice(0, currentLayoutIndex),\n smallerLayout.maxTiles,\n width,\n height\n );\n }\n }\n return layout;\n}\n\n// src/helper/set-helper.ts\nfunction setDifference(setA, setB) {\n const _difference = new Set(setA);\n for (const elem of setB) {\n _difference.delete(elem);\n }\n return _difference;\n}\n\n// src/helper/featureDetection.ts\nfunction supportsScreenSharing() {\n return typeof navigator !== \"undefined\" && navigator.mediaDevices && !!navigator.mediaDevices.getDisplayMedia;\n}\n\n// src/helper/transcriptions.ts\nfunction getActiveTranscriptionSegments(segments, syncTimes, maxAge = 0) {\n return segments.filter((segment) => {\n var _a;\n const hasTrackSync = !!syncTimes.rtpTimestamp;\n const currentTrackTime = (_a = syncTimes.rtpTimestamp) != null ? _a : performance.timeOrigin + performance.now();\n const displayStartTime = hasTrackSync ? Math.max(segment.receivedAtMediaTimestamp, segment.startTime) : segment.receivedAt;\n const segmentDuration = maxAge + segment.endTime - segment.startTime;\n return currentTrackTime >= displayStartTime && currentTrackTime <= displayStartTime + segmentDuration;\n });\n}\nfunction addMediaTimestampToTranscription(segment, timestamps) {\n var _a;\n return __spreadProps(__spreadValues({}, segment), {\n receivedAtMediaTimestamp: (_a = timestamps.rtpTimestamp) != null ? _a : 0,\n receivedAt: timestamps.timestamp\n });\n}\nfunction dedupeSegments(prevSegments, newSegments, windowSize) {\n return [...prevSegments, ...newSegments].reduceRight((acc, segment) => {\n if (!acc.find((val) => val.id === segment.id)) {\n acc.unshift(segment);\n }\n return acc;\n }, []).slice(0 - windowSize);\n}\nfunction didActiveSegmentsChange(prevActive, newActive) {\n if (newActive.length !== prevActive.length) {\n return true;\n }\n return !newActive.every((newSegment) => {\n return prevActive.find(\n (prevSegment) => prevSegment.id === newSegment.id && prevSegment.text === newSegment.text && prevSegment.final === newSegment.final && prevSegment.language === newSegment.language && prevSegment.startTime === newSegment.startTime && prevSegment.endTime === newSegment.endTime\n );\n });\n}\n\n// src/types.ts\nvar PIN_DEFAULT_STATE = [];\nvar WIDGET_DEFAULT_STATE = {\n showChat: false,\n unreadMessages: 0,\n showSettings: false\n};\nfunction isSourceWitOptions(source) {\n return typeof source === \"object\";\n}\nfunction isSourcesWithOptions(sources) {\n return Array.isArray(sources) && sources.filter(isSourceWitOptions).length > 0;\n}\n\n// src/sorting/sort-track-bundles.ts\nimport { Track as Track2 } from \"livekit-client\";\n\n// src/sorting/base-sort-functions.ts\nimport { Track } from \"livekit-client\";\nfunction sortParticipantsByAudioLevel(a, b) {\n return b.audioLevel - a.audioLevel;\n}\nfunction sortParticipantsByIsSpeaking(a, b) {\n if (a.isSpeaking === b.isSpeaking) {\n return 0;\n } else {\n return a.isSpeaking ? -1 : 1;\n }\n}\nfunction sortParticipantsByLastSpokenAT(a, b) {\n var _a, _b, _c, _d;\n if (a.lastSpokeAt !== void 0 || b.lastSpokeAt !== void 0) {\n return ((_b = (_a = b.lastSpokeAt) == null ? void 0 : _a.getTime()) != null ? _b : 0) - ((_d = (_c = a.lastSpokeAt) == null ? void 0 : _c.getTime()) != null ? _d : 0);\n } else {\n return 0;\n }\n}\nfunction sortParticipantsByJoinedAt(a, b) {\n var _a, _b, _c, _d;\n return ((_b = (_a = a.joinedAt) == null ? void 0 : _a.getTime()) != null ? _b : 0) - ((_d = (_c = b.joinedAt) == null ? void 0 : _c.getTime()) != null ? _d : 0);\n}\nfunction sortTrackReferencesByType(a, b) {\n if (isTrackReference(a)) {\n if (isTrackReference(b)) {\n return 0;\n } else {\n return -1;\n }\n } else if (isTrackReference(b)) {\n return 1;\n } else {\n return 0;\n }\n}\nfunction sortTrackRefsByIsCameraEnabled(a, b) {\n const aVideo = a.participant.isCameraEnabled;\n const bVideo = b.participant.isCameraEnabled;\n if (aVideo !== bVideo) {\n if (aVideo) {\n return -1;\n } else {\n return 1;\n }\n } else {\n return 0;\n }\n}\n\n// src/sorting/sort-track-bundles.ts\nfunction sortTrackReferences(tracks) {\n const localTracks = [];\n const screenShareTracks = [];\n const cameraTracks = [];\n const undefinedTracks = [];\n tracks.forEach((trackRef) => {\n if (trackRef.participant.isLocal && trackRef.source === Track2.Source.Camera) {\n localTracks.push(trackRef);\n } else if (trackRef.source === Track2.Source.ScreenShare) {\n screenShareTracks.push(trackRef);\n } else if (trackRef.source === Track2.Source.Camera) {\n cameraTracks.push(trackRef);\n } else {\n undefinedTracks.push(trackRef);\n }\n });\n const sortedScreenShareTracks = sortScreenShareTracks(screenShareTracks);\n const sortedCameraTracks = sortCameraTracks(cameraTracks);\n return [...localTracks, ...sortedScreenShareTracks, ...sortedCameraTracks, ...undefinedTracks];\n}\nfunction sortScreenShareTracks(screenShareTracks) {\n const localScreenShares = [];\n const remoteScreenShares = [];\n screenShareTracks.forEach((trackRef) => {\n if (trackRef.participant.isLocal) {\n localScreenShares.push(trackRef);\n } else {\n remoteScreenShares.push(trackRef);\n }\n });\n localScreenShares.sort((a, b) => sortParticipantsByJoinedAt(a.participant, b.participant));\n remoteScreenShares.sort((a, b) => sortParticipantsByJoinedAt(a.participant, b.participant));\n const sortedScreenShareTrackRefs = [...remoteScreenShares, ...localScreenShares];\n return sortedScreenShareTrackRefs;\n}\nfunction sortCameraTracks(cameraTrackReferences) {\n const localCameraTracks = [];\n const remoteCameraTracks = [];\n cameraTrackReferences.forEach((trackRef) => {\n if (trackRef.participant.isLocal) {\n localCameraTracks.push(trackRef);\n } else {\n remoteCameraTracks.push(trackRef);\n }\n });\n remoteCameraTracks.sort((a, b) => {\n if (a.participant.isSpeaking && b.participant.isSpeaking) {\n return sortParticipantsByAudioLevel(a.participant, b.participant);\n }\n if (a.participant.isSpeaking !== b.participant.isSpeaking) {\n return sortParticipantsByIsSpeaking(a.participant, b.participant);\n }\n if (a.participant.lastSpokeAt !== b.participant.lastSpokeAt) {\n return sortParticipantsByLastSpokenAT(a.participant, b.participant);\n }\n if (isTrackReference(a) !== isTrackReference(b)) {\n return sortTrackReferencesByType(a, b);\n }\n if (a.participant.isCameraEnabled !== b.participant.isCameraEnabled) {\n return sortTrackRefsByIsCameraEnabled(a, b);\n }\n return sortParticipantsByJoinedAt(a.participant, b.participant);\n });\n return [...localCameraTracks, ...remoteCameraTracks];\n}\n\n// src/sorting/sort-participants.ts\nimport { LocalParticipant as LocalParticipant2 } from \"livekit-client\";\nfunction sortParticipants(participants) {\n const sortedParticipants = [...participants];\n sortedParticipants.sort((a, b) => {\n if (a.isSpeaking && b.isSpeaking) {\n return sortParticipantsByAudioLevel(a, b);\n }\n if (a.isSpeaking !== b.isSpeaking) {\n return sortParticipantsByIsSpeaking(a, b);\n }\n if (a.lastSpokeAt !== b.lastSpokeAt) {\n return sortParticipantsByLastSpokenAT(a, b);\n }\n const aVideo = a.videoTrackPublications.size > 0;\n const bVideo = b.videoTrackPublications.size > 0;\n if (aVideo !== bVideo) {\n if (aVideo) {\n return -1;\n } else {\n return 1;\n }\n }\n return sortParticipantsByJoinedAt(a, b);\n });\n const localParticipant = sortedParticipants.find((p) => p instanceof LocalParticipant2);\n if (localParticipant) {\n const localIdx = sortedParticipants.indexOf(localParticipant);\n if (localIdx >= 0) {\n sortedParticipants.splice(localIdx, 1);\n if (sortedParticipants.length > 0) {\n sortedParticipants.splice(0, 0, localParticipant);\n } else {\n sortedParticipants.push(localParticipant);\n }\n }\n }\n return sortedParticipants;\n}\n\n// src/helper/array-helper.ts\nfunction chunk(input, size) {\n return input.reduce(\n (arr, item, idx) => {\n return idx % size === 0 ? [...arr, [item]] : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]];\n },\n []\n );\n}\nfunction zip(a1, a2) {\n const resultLength = Math.max(a1.length, a2.length);\n return new Array(resultLength).fill([]).map((_val, idx) => [a1[idx], a2[idx]]);\n}\nfunction differenceBy(a1, a2, by) {\n return a1.filter((c) => !a2.map((v) => by(v)).includes(by(c)));\n}\n\n// src/track-reference/test-utils.ts\nimport { Participant, Track as Track3, TrackPublication } from \"livekit-client\";\nfunction flatTrackReferenceArray(list) {\n return list.map((item) => {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return `${item}`;\n } else {\n return getTrackReferenceId(item);\n }\n });\n}\n\n// src/sorting/tile-array-update.ts\nfunction visualPageChange(state, next) {\n return {\n dropped: differenceBy(state, next, getTrackReferenceId),\n added: differenceBy(next, state, getTrackReferenceId)\n };\n}\nfunction listNeedsUpdating(changes) {\n return changes.added.length !== 0 || changes.dropped.length !== 0;\n}\nfunction findIndex(trackReference, trackReferences) {\n const indexToReplace = trackReferences.findIndex(\n (trackReference_) => getTrackReferenceId(trackReference_) === getTrackReferenceId(trackReference)\n );\n if (indexToReplace === -1) {\n throw new Error(\n `Element not part of the array: ${getTrackReferenceId(\n trackReference\n )} not in ${flatTrackReferenceArray(trackReferences)}`\n );\n }\n return indexToReplace;\n}\nfunction swapItems(moveForward, moveBack, trackReferences) {\n const indexToReplace = findIndex(moveForward, trackReferences);\n const indexReplaceWith = findIndex(moveBack, trackReferences);\n trackReferences.splice(indexToReplace, 1, moveBack);\n trackReferences.splice(indexReplaceWith, 1, moveForward);\n return trackReferences;\n}\nfunction dropItem(itemToDrop, list) {\n const indexOfElementToDrop = findIndex(itemToDrop, list);\n list.splice(indexOfElementToDrop, 1);\n return list;\n}\nfunction addItem(itemToAdd, list) {\n return [...list, itemToAdd];\n}\nfunction divideIntoPages(list, maxElementsOnPage) {\n const pages = chunk(list, maxElementsOnPage);\n return pages;\n}\nfunction updatePages(currentList, nextList, maxItemsOnPage) {\n let updatedList = refreshList(currentList, nextList);\n if (updatedList.length < nextList.length) {\n const addedItems = differenceBy(nextList, updatedList, getTrackReferenceId);\n updatedList = [...updatedList, ...addedItems];\n }\n const currentPages = divideIntoPages(updatedList, maxItemsOnPage);\n const nextPages = divideIntoPages(nextList, maxItemsOnPage);\n zip(currentPages, nextPages).forEach(([currentPage, nextPage], pageIndex) => {\n if (currentPage && nextPage) {\n const updatedPage = divideIntoPages(updatedList, maxItemsOnPage)[pageIndex];\n const changes = visualPageChange(updatedPage, nextPage);\n if (listNeedsUpdating(changes)) {\n log.debug(\n `Detected visual changes on page: ${pageIndex}, current: ${flatTrackReferenceArray(\n currentPage\n )}, next: ${flatTrackReferenceArray(nextPage)}`,\n { changes }\n );\n if (changes.added.length === changes.dropped.length) {\n zip(changes.added, changes.dropped).forEach(([added, dropped]) => {\n if (added && dropped) {\n updatedList = swapItems(added, dropped, updatedList);\n } else {\n throw new Error(\n `For a swap action we need a addition and a removal one is missing: ${added}, ${dropped}`\n );\n }\n });\n }\n if (changes.added.length === 0 && changes.dropped.length > 0) {\n changes.dropped.forEach((item) => {\n updatedList = dropItem(item, updatedList);\n });\n }\n if (changes.added.length > 0 && changes.dropped.length === 0) {\n changes.added.forEach((item) => {\n updatedList = addItem(item, updatedList);\n });\n }\n }\n }\n });\n if (updatedList.length > nextList.length) {\n const missingItems = differenceBy(updatedList, nextList, getTrackReferenceId);\n updatedList = updatedList.filter(\n (item) => !missingItems.map(getTrackReferenceId).includes(getTrackReferenceId(item))\n );\n }\n return updatedList;\n}\nfunction refreshList(currentList, nextList) {\n return currentList.map((currentItem) => {\n const updateForCurrentItem = nextList.find(\n (newItem_) => (\n // If the IDs match or ..\n getTrackReferenceId(currentItem) === getTrackReferenceId(newItem_) || // ... if the current item is a placeholder and the new item is the track reference can replace it.\n typeof currentItem !== \"number\" && isTrackReferencePlaceholder(currentItem) && isTrackReference(newItem_) && isPlaceholderReplacement(currentItem, newItem_)\n )\n );\n return updateForCurrentItem != null ? updateForCurrentItem : currentItem;\n });\n}\n\n// src/components/mediaToggle.ts\nimport { Track as Track7 } from \"livekit-client\";\nimport { Subject as Subject2, map as map4, startWith as startWith4 } from \"rxjs\";\n\n// src/observables/participant.ts\nimport { ParticipantEvent as ParticipantEvent2, RoomEvent as RoomEvent3, Track as Track6 } from \"livekit-client\";\nimport { Observable as Observable2, map as map3, startWith as startWith3, switchMap } from \"rxjs\";\n\n// src/components/mediaTrack.ts\nimport { Track as Track4 } from \"livekit-client\";\nimport { map, startWith } from \"rxjs\";\n\n// src/styles-interface/class-prefixer.ts\nfunction prefixClass(unprefixedClassName) {\n return `${cssPrefix}-${unprefixedClassName}`;\n}\n\n// src/components/mediaTrack.ts\nfunction setupMediaTrack(trackIdentifier) {\n const initialPub = getTrackByIdentifier(trackIdentifier);\n const trackObserver = observeParticipantMedia(trackIdentifier.participant).pipe(\n map(() => {\n return getTrackByIdentifier(trackIdentifier);\n }),\n startWith(initialPub)\n );\n const className = prefixClass(\n trackIdentifier.source === Track4.Source.Camera || trackIdentifier.source === Track4.Source.ScreenShare ? \"participant-media-video\" : \"participant-media-audio\"\n );\n return { className, trackObserver };\n}\nfunction getTrackByIdentifier(options) {\n if (isTrackReference(options)) {\n return options.publication;\n } else {\n const { source, name, participant } = options;\n if (source && name) {\n return participant.getTrackPublications().find((pub) => pub.source === source && pub.trackName === name);\n } else if (name) {\n return participant.getTrackPublicationByName(name);\n } else if (source) {\n return participant.getTrackPublication(source);\n } else {\n throw new Error(\"At least one of source and name needs to be defined\");\n }\n }\n}\n\n// src/observables/room.ts\nimport { Subject, map as map2, Observable, startWith as startWith2, finalize, filter, concat } from \"rxjs\";\nimport { LocalParticipant as LocalParticipant3, Room, RoomEvent as RoomEvent2, Track as Track5 } from \"livekit-client\";\nfunction observeRoomEvents(room, ...events) {\n const observable = new Observable((subscribe) => {\n const onRoomUpdate = () => {\n subscribe.next(room);\n };\n events.forEach((evt) => {\n room.on(evt, onRoomUpdate);\n });\n const unsubscribe = () => {\n events.forEach((evt) => {\n room.off(evt, onRoomUpdate);\n });\n };\n return unsubscribe;\n }).pipe(startWith2(room));\n return observable;\n}\nfunction roomEventSelector(room, event) {\n const observable = new Observable((subscribe) => {\n const update = (...params) => {\n subscribe.next(params);\n };\n room.on(event, update);\n const unsubscribe = () => {\n room.off(event, update);\n };\n return unsubscribe;\n });\n return observable;\n}\nfunction roomObserver(room) {\n const observable = observeRoomEvents(\n room,\n RoomEvent2.ParticipantConnected,\n RoomEvent2.ParticipantDisconnected,\n RoomEvent2.ActiveSpeakersChanged,\n RoomEvent2.TrackSubscribed,\n RoomEvent2.TrackUnsubscribed,\n RoomEvent2.LocalTrackPublished,\n RoomEvent2.LocalTrackUnpublished,\n RoomEvent2.AudioPlaybackStatusChanged,\n RoomEvent2.ConnectionStateChanged\n ).pipe(startWith2(room));\n return observable;\n}\nfunction connectionStateObserver(room) {\n return roomEventSelector(room, RoomEvent2.ConnectionStateChanged).pipe(\n map2(([connectionState]) => connectionState),\n startWith2(room.state)\n );\n}\nfunction screenShareObserver(room) {\n let screenShareSubscriber;\n const observers = [];\n const observable = new Observable((subscriber) => {\n screenShareSubscriber = subscriber;\n return () => {\n observers.forEach((observer) => {\n observer.unsubscribe();\n });\n };\n });\n const screenShareTracks = [];\n const handleSub = (publication, participant) => {\n if (publication.source !== Track5.Source.ScreenShare && publication.source !== Track5.Source.ScreenShareAudio) {\n return;\n }\n let trackMap = screenShareTracks.find((tr) => tr.participant.identity === participant.identity);\n const getScreenShareTracks = (participant2) => {\n return participant2.getTrackPublications().filter(\n (track) => (track.source === Track5.Source.ScreenShare || track.source === Track5.Source.ScreenShareAudio) && track.track\n );\n };\n if (!trackMap) {\n trackMap = {\n participant,\n tracks: getScreenShareTracks(participant)\n };\n } else {\n const index = screenShareTracks.indexOf(trackMap);\n screenShareTracks.splice(index, 1);\n trackMap.tracks = getScreenShareTracks(participant);\n }\n if (trackMap.tracks.length > 0) {\n screenShareTracks.push(trackMap);\n }\n screenShareSubscriber.next(screenShareTracks);\n };\n observers.push(\n roomEventSelector(room, RoomEvent2.TrackSubscribed).subscribe(\n ([, ...args]) => handleSub(...args)\n )\n );\n observers.push(\n roomEventSelector(room, RoomEvent2.TrackUnsubscribed).subscribe(\n ([, ...args]) => handleSub(...args)\n )\n );\n observers.push(\n roomEventSelector(room, RoomEvent2.LocalTrackPublished).subscribe((args) => handleSub(...args))\n );\n observers.push(\n roomEventSelector(room, RoomEvent2.LocalTrackUnpublished).subscribe((args) => {\n handleSub(...args);\n })\n );\n observers.push(\n roomEventSelector(room, RoomEvent2.TrackMuted).subscribe((args) => {\n handleSub(...args);\n })\n );\n observers.push(\n roomEventSelector(room, RoomEvent2.TrackUnmuted).subscribe((args) => {\n handleSub(...args);\n })\n );\n setTimeout(() => {\n for (const p of room.remoteParticipants.values()) {\n p.getTrackPublications().forEach((track) => {\n handleSub(track, p);\n });\n }\n }, 1);\n return observable;\n}\nfunction roomInfoObserver(room) {\n const observer = observeRoomEvents(\n room,\n RoomEvent2.RoomMetadataChanged,\n RoomEvent2.ConnectionStateChanged\n ).pipe(\n map2((r) => {\n return { name: r.name, metadata: r.metadata };\n })\n );\n return observer;\n}\nfunction activeSpeakerObserver(room) {\n return roomEventSelector(room, RoomEvent2.ActiveSpeakersChanged).pipe(\n map2(([speakers]) => speakers)\n );\n}\nfunction createMediaDeviceObserver(kind, onError, requestPermissions = true) {\n var _a;\n const onDeviceChange = () => __async(this, null, function* () {\n try {\n const newDevices = yield Room.getLocalDevices(kind, requestPermissions);\n deviceSubject.next(newDevices);\n } catch (e) {\n onError == null ? void 0 : onError(e);\n }\n });\n const deviceSubject = new Subject();\n const observable = deviceSubject.pipe(\n finalize(() => {\n var _a2;\n (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.removeEventListener(\"devicechange\", onDeviceChange);\n })\n );\n if (typeof window !== \"undefined\") {\n if (!window.isSecureContext) {\n throw new Error(\n `Accessing media devices is available only in secure contexts (HTTPS and localhost), in some or all supporting browsers. See: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/mediaDevices`\n );\n }\n (_a = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a.addEventListener(\"devicechange\", onDeviceChange);\n }\n return concat(\n Room.getLocalDevices(kind, requestPermissions).catch((e) => {\n onError == null ? void 0 : onError(e);\n return [];\n }),\n observable\n );\n}\nfunction createDataObserver(room) {\n return roomEventSelector(room, RoomEvent2.DataReceived);\n}\nfunction roomAudioPlaybackAllowedObservable(room) {\n const observable = observeRoomEvents(room, RoomEvent2.AudioPlaybackStatusChanged).pipe(\n map2((room2) => {\n return { canPlayAudio: room2.canPlaybackAudio };\n })\n );\n return observable;\n}\nfunction roomVideoPlaybackAllowedObservable(room) {\n const observable = observeRoomEvents(room, RoomEvent2.VideoPlaybackStatusChanged).pipe(\n map2((room2) => {\n return { canPlayVideo: room2.canPlaybackVideo };\n })\n );\n return observable;\n}\nfunction createActiveDeviceObservable(room, kind) {\n return roomEventSelector(room, RoomEvent2.ActiveDeviceChanged).pipe(\n filter(([kindOfDevice]) => kindOfDevice === kind),\n map2(([kind2, deviceId]) => {\n log.debug(\"activeDeviceObservable | RoomEvent.ActiveDeviceChanged\", { kind: kind2, deviceId });\n return deviceId;\n }),\n startWith2(room.getActiveDevice(kind))\n );\n}\nfunction encryptionStatusObservable(room, participant) {\n return roomEventSelector(room, RoomEvent2.ParticipantEncryptionStatusChanged).pipe(\n filter(\n ([, p]) => participant.identity === (p == null ? void 0 : p.identity) || !p && participant.identity === room.localParticipant.identity\n ),\n map2(([encrypted]) => encrypted),\n startWith2(\n participant instanceof LocalParticipant3 ? participant.isE2EEEnabled : participant.isEncrypted\n )\n );\n}\n\n// src/observables/participant.ts\nfunction observeParticipantEvents(participant, ...events) {\n const observable = new Observable2((subscribe) => {\n const onParticipantUpdate = () => {\n subscribe.next(participant);\n };\n events.forEach((evt) => {\n participant.on(evt, onParticipantUpdate);\n });\n const unsubscribe = () => {\n events.forEach((evt) => {\n participant.off(evt, onParticipantUpdate);\n });\n };\n return unsubscribe;\n }).pipe(startWith3(participant));\n return observable;\n}\nfunction observeParticipantMedia(participant) {\n const participantObserver = observeParticipantEvents(\n participant,\n ParticipantEvent2.TrackMuted,\n ParticipantEvent2.TrackUnmuted,\n ParticipantEvent2.ParticipantPermissionsChanged,\n // ParticipantEvent.IsSpeakingChanged,\n ParticipantEvent2.TrackPublished,\n ParticipantEvent2.TrackUnpublished,\n ParticipantEvent2.LocalTrackPublished,\n ParticipantEvent2.LocalTrackUnpublished,\n ParticipantEvent2.MediaDevicesError,\n ParticipantEvent2.TrackSubscriptionStatusChanged\n // ParticipantEvent.ConnectionQualityChanged,\n ).pipe(\n map3((p) => {\n const { isMicrophoneEnabled, isCameraEnabled, isScreenShareEnabled } = p;\n const microphoneTrack = p.getTrackPublication(Track6.Source.Microphone);\n const cameraTrack = p.getTrackPublication(Track6.Source.Camera);\n const participantMedia = {\n isCameraEnabled,\n isMicrophoneEnabled,\n isScreenShareEnabled,\n cameraTrack,\n microphoneTrack,\n participant: p\n };\n return participantMedia;\n })\n );\n return participantObserver;\n}\nfunction createTrackObserver(participant, options) {\n return observeParticipantMedia(participant).pipe(\n map3(() => {\n return { publication: getTrackByIdentifier(options) };\n })\n );\n}\nfunction participantInfoObserver(participant) {\n const observer = observeParticipantEvents(\n participant,\n ParticipantEvent2.ParticipantMetadataChanged,\n ParticipantEvent2.ParticipantNameChanged\n ).pipe(\n map3(({ name, identity, metadata }) => {\n return {\n name,\n identity,\n metadata\n };\n }),\n startWith3({\n name: participant.name,\n identity: participant.identity,\n metadata: participant.metadata\n })\n );\n return observer;\n}\nfunction createConnectionQualityObserver(participant) {\n const observer = participantEventSelector(\n participant,\n ParticipantEvent2.ConnectionQualityChanged\n ).pipe(\n map3(([quality]) => quality),\n startWith3(participant.connectionQuality)\n );\n return observer;\n}\nfunction participantEventSelector(participant, event) {\n const observable = new Observable2((subscribe) => {\n const update = (...params) => {\n subscribe.next(params);\n };\n participant.on(event, update);\n const unsubscribe = () => {\n participant.off(event, update);\n };\n return unsubscribe;\n });\n return observable;\n}\nfunction mutedObserver(trackRef) {\n var _a, _b, _c, _d;\n return observeParticipantEvents(\n trackRef.participant,\n ParticipantEvent2.TrackMuted,\n ParticipantEvent2.TrackUnmuted,\n ParticipantEvent2.TrackSubscribed,\n ParticipantEvent2.TrackUnsubscribed,\n ParticipantEvent2.LocalTrackPublished,\n ParticipantEvent2.LocalTrackUnpublished\n ).pipe(\n map3((participant) => {\n var _a2, _b2;\n const pub = (_a2 = trackRef.publication) != null ? _a2 : participant.getTrackPublication(trackRef.source);\n return (_b2 = pub == null ? void 0 : pub.isMuted) != null ? _b2 : true;\n }),\n startWith3(\n (_d = (_c = (_a = trackRef.publication) == null ? void 0 : _a.isMuted) != null ? _c : (_b = trackRef.participant.getTrackPublication(trackRef.source)) == null ? void 0 : _b.isMuted) != null ? _d : true\n )\n );\n}\nfunction createIsSpeakingObserver(participant) {\n return participantEventSelector(participant, ParticipantEvent2.IsSpeakingChanged).pipe(\n map3(([isSpeaking]) => isSpeaking)\n );\n}\nfunction connectedParticipantsObserver(room, options = {}) {\n var _a;\n let subscriber;\n const observable = new Observable2((sub) => {\n subscriber = sub;\n return () => listener.unsubscribe();\n }).pipe(startWith3(Array.from(room.remoteParticipants.values())));\n const additionalRoomEvents = (_a = options.additionalRoomEvents) != null ? _a : allParticipantRoomEvents;\n const roomEvents = Array.from(\n /* @__PURE__ */ new Set([\n RoomEvent3.ParticipantConnected,\n RoomEvent3.ParticipantDisconnected,\n RoomEvent3.ConnectionStateChanged,\n ...additionalRoomEvents\n ])\n );\n const listener = observeRoomEvents(room, ...roomEvents).subscribe(\n (r) => subscriber == null ? void 0 : subscriber.next(Array.from(r.remoteParticipants.values()))\n );\n if (room.remoteParticipants.size > 0) {\n subscriber == null ? void 0 : subscriber.next(Array.from(room.remoteParticipants.values()));\n }\n return observable;\n}\nfunction connectedParticipantObserver(room, identity, options = {}) {\n var _a;\n const additionalEvents = (_a = options.additionalEvents) != null ? _a : allParticipantEvents;\n const observable = observeRoomEvents(\n room,\n RoomEvent3.ParticipantConnected,\n RoomEvent3.ParticipantDisconnected,\n RoomEvent3.ConnectionStateChanged\n ).pipe(\n switchMap((r) => {\n const participant = r.getParticipantByIdentity(identity);\n if (participant) {\n return observeParticipantEvents(participant, ...additionalEvents);\n } else {\n return new Observable2((subscribe) => subscribe.next(void 0));\n }\n }),\n startWith3(room.getParticipantByIdentity(identity))\n );\n return observable;\n}\nfunction participantPermissionObserver(participant) {\n const observer = participantEventSelector(\n participant,\n ParticipantEvent2.ParticipantPermissionsChanged\n ).pipe(\n map3(() => participant.permissions),\n startWith3(participant.permissions)\n );\n return observer;\n}\nfunction participantByIdentifierObserver(room, { kind, identity }, options = {}) {\n var _a;\n const additionalEvents = (_a = options.additionalEvents) != null ? _a : allParticipantEvents;\n const matchesIdentifier = (participant) => {\n let isMatch = true;\n if (kind) {\n isMatch = isMatch && participant.kind === kind;\n }\n if (identity) {\n isMatch = isMatch && participant.identity === identity;\n }\n return isMatch;\n };\n const observable = observeRoomEvents(\n room,\n RoomEvent3.ParticipantConnected,\n RoomEvent3.ParticipantDisconnected,\n RoomEvent3.ConnectionStateChanged\n ).pipe(\n switchMap((r) => {\n const participant = Array.from(r.remoteParticipants.values()).find(\n (p) => matchesIdentifier(p)\n );\n if (participant) {\n return observeParticipantEvents(participant, ...additionalEvents);\n } else {\n return new Observable2((subscribe) => subscribe.next(void 0));\n }\n }),\n startWith3(Array.from(room.remoteParticipants.values()).find((p) => matchesIdentifier(p)))\n );\n return observable;\n}\nfunction participantAttributesObserver(participant) {\n return participantEventSelector(participant, ParticipantEvent2.AttributesChanged).pipe(\n map3(([changedAttributes]) => {\n return {\n changed: changedAttributes,\n attributes: participant.attributes\n };\n }),\n startWith3({ changed: participant.attributes, attributes: participant.attributes })\n );\n}\n\n// src/components/mediaToggle.ts\nfunction setupMediaToggle(source, room, options, publishOptions, onError) {\n const { localParticipant } = room;\n const getSourceEnabled = (source2, localParticipant2) => {\n let isEnabled = false;\n switch (source2) {\n case Track7.Source.Camera:\n isEnabled = localParticipant2.isCameraEnabled;\n break;\n case Track7.Source.Microphone:\n isEnabled = localParticipant2.isMicrophoneEnabled;\n break;\n case Track7.Source.ScreenShare:\n isEnabled = localParticipant2.isScreenShareEnabled;\n break;\n default:\n break;\n }\n return isEnabled;\n };\n const enabledObserver = observeParticipantMedia(localParticipant).pipe(\n map4((media) => {\n return getSourceEnabled(source, media.participant);\n }),\n startWith4(getSourceEnabled(source, localParticipant))\n );\n const pendingSubject = new Subject2();\n const toggle = (forceState, captureOptions) => __async(this, null, function* () {\n try {\n captureOptions != null ? captureOptions : captureOptions = options;\n pendingSubject.next(true);\n switch (source) {\n case Track7.Source.Camera:\n yield localParticipant.setCameraEnabled(\n forceState != null ? forceState : !localParticipant.isCameraEnabled,\n captureOptions,\n publishOptions\n );\n break;\n case Track7.Source.Microphone:\n yield localParticipant.setMicrophoneEnabled(\n forceState != null ? forceState : !localParticipant.isMicrophoneEnabled,\n captureOptions,\n publishOptions\n );\n break;\n case Track7.Source.ScreenShare:\n yield localParticipant.setScreenShareEnabled(\n forceState != null ? forceState : !localParticipant.isScreenShareEnabled,\n captureOptions,\n publishOptions\n );\n break;\n default:\n break;\n }\n } catch (e) {\n if (onError && e instanceof Error) {\n onError == null ? void 0 : onError(e);\n } else {\n throw e;\n }\n } finally {\n pendingSubject.next(false);\n }\n });\n const className = prefixClass(\"button\");\n return {\n className,\n toggle,\n enabledObserver,\n pendingObserver: pendingSubject.asObservable()\n };\n}\nfunction setupManualToggle() {\n let state = false;\n const enabledSubject = new Subject2();\n const pendingSubject = new Subject2();\n const toggle = (forceState) => __async(this, null, function* () {\n pendingSubject.next(true);\n state = forceState != null ? forceState : !state;\n enabledSubject.next(state);\n pendingSubject.next(false);\n });\n const className = prefixClass(\"button\");\n return {\n className,\n toggle,\n enabledObserver: enabledSubject.asObservable(),\n pendingObserver: pendingSubject.asObservable()\n };\n}\n\n// src/components/mediaDeviceSelect.ts\nimport {\n Track as Track8\n} from \"livekit-client\";\nimport { BehaviorSubject } from \"rxjs\";\nfunction setupDeviceSelector(kind, room, localTrack) {\n const activeDeviceSubject = new BehaviorSubject(void 0);\n const activeDeviceObservable = room ? createActiveDeviceObservable(room, kind) : activeDeviceSubject.asObservable();\n const setActiveMediaDevice = (_0, ..._1) => __async(this, [_0, ..._1], function* (id, options = {}) {\n var _a, _b, _c;\n if (room) {\n log.debug(`Switching active device of kind \"${kind}\" with id ${id}.`);\n yield room.switchActiveDevice(kind, id, options.exact);\n const actualDeviceId = (_a = room.getActiveDevice(kind)) != null ? _a : id;\n if (actualDeviceId !== id && id !== \"default\") {\n log.info(\n `We tried to select the device with id (${id}), but the browser decided to select the device with id (${actualDeviceId}) instead.`\n );\n }\n let targetTrack = void 0;\n if (kind === \"audioinput\")\n targetTrack = (_b = room.localParticipant.getTrackPublication(Track8.Source.Microphone)) == null ? void 0 : _b.track;\n else if (kind === \"videoinput\") {\n targetTrack = (_c = room.localParticipant.getTrackPublication(Track8.Source.Camera)) == null ? void 0 : _c.track;\n }\n const useDefault = id === \"default\" && !targetTrack || id === \"default\" && (targetTrack == null ? void 0 : targetTrack.mediaStreamTrack.label.startsWith(\"Default\"));\n activeDeviceSubject.next(useDefault ? id : actualDeviceId);\n } else if (localTrack) {\n yield localTrack.setDeviceId(options.exact ? { exact: id } : id);\n const actualId = yield localTrack.getDeviceId();\n activeDeviceSubject.next(\n id === \"default\" && localTrack.mediaStreamTrack.label.startsWith(\"Default\") ? id : actualId\n );\n } else if (activeDeviceSubject.value !== id) {\n log.warn(\n \"device switch skipped, please provide either a room or a local track to switch on. \"\n );\n activeDeviceSubject.next(id);\n }\n });\n const className = prefixClass(\"media-device-select\");\n return {\n className,\n activeDeviceObservable,\n setActiveMediaDevice\n };\n}\n\n// src/components/disconnectButton.ts\nfunction setupDisconnectButton(room) {\n const disconnect = (stopTracks) => {\n room.disconnect(stopTracks);\n };\n const className = prefixClass(\"disconnect-button\");\n return { className, disconnect };\n}\n\n// src/components/connectionQualityIndicator.ts\nfunction setupConnectionQualityIndicator(participant) {\n const className = prefixClass(\"connection-quality\");\n const connectionQualityObserver = createConnectionQualityObserver(participant);\n return { className, connectionQualityObserver };\n}\n\n// src/components/trackMutedIndicator.ts\nimport { Track as Track9 } from \"livekit-client\";\nfunction setupTrackMutedIndicator(trackRef) {\n let classForSource = \"track-muted-indicator-camera\";\n switch (trackRef.source) {\n case Track9.Source.Camera:\n classForSource = \"track-muted-indicator-camera\";\n break;\n case Track9.Source.Microphone:\n classForSource = \"track-muted-indicator-microphone\";\n break;\n default:\n break;\n }\n const className = prefixClass(classForSource);\n const mediaMutedObserver = mutedObserver(trackRef);\n return { className, mediaMutedObserver };\n}\n\n// src/components/participantName.ts\nfunction setupParticipantName(participant) {\n const infoObserver = participantInfoObserver(participant);\n return { className: \"lk-participant-name\", infoObserver };\n}\n\n// src/components/participantTile.ts\nfunction setupParticipantTile() {\n const className = prefixClass(\"participant-tile\");\n return {\n className\n };\n}\n\n// src/components/chat.ts\nimport { RoomEvent as RoomEvent4 } from \"livekit-client\";\nimport { BehaviorSubject as BehaviorSubject2, Subject as Subject3, scan, map as map6, takeUntil } from \"rxjs\";\n\n// src/observables/dataChannel.ts\nimport { Observable as Observable3, filter as filter2, map as map5 } from \"rxjs\";\nvar DataTopic = {\n CHAT: \"lk-chat-topic\",\n CHAT_UPDATE: \"lk-chat-update-topic\"\n};\nfunction sendMessage(_0, _1) {\n return __async(this, arguments, function* (localParticipant, payload, options = {}) {\n const { reliable, destinationIdentities, topic } = options;\n yield localParticipant.publishData(payload, {\n destinationIdentities,\n topic,\n reliable\n });\n });\n}\nfunction setupDataMessageHandler(room, topic, onMessage) {\n const topics = Array.isArray(topic) ? topic : [topic];\n const messageObservable = createDataObserver(room).pipe(\n filter2(\n ([, , , messageTopic]) => topic === void 0 || messageTopic !== void 0 && topics.includes(messageTopic)\n ),\n map5(([payload, participant, , messageTopic]) => {\n const msg = {\n payload,\n topic: messageTopic,\n from: participant\n };\n onMessage == null ? void 0 : onMessage(msg);\n return msg;\n })\n );\n let isSendingSubscriber;\n const isSendingObservable = new Observable3((subscriber) => {\n isSendingSubscriber = subscriber;\n });\n const send = (_0, ..._1) => __async(this, [_0, ..._1], function* (payload, options = {}) {\n isSendingSubscriber.next(true);\n try {\n yield sendMessage(room.localParticipant, payload, __spreadValues({ topic: topics[0] }, options));\n } finally {\n isSendingSubscriber.next(false);\n }\n });\n return { messageObservable, isSendingObservable, send };\n}\n\n// src/components/chat.ts\nvar encoder = new TextEncoder();\nvar decoder = new TextDecoder();\nvar topicSubjectMap = /* @__PURE__ */ new Map();\nvar encode = (message) => encoder.encode(JSON.stringify(message));\nvar decode = (message) => JSON.parse(decoder.decode(message));\nfunction setupChat(room, options) {\n var _a, _b;\n const onDestroyObservable = new Subject3();\n const { messageDecoder, messageEncoder, channelTopic, updateChannelTopic } = options != null ? options : {};\n const topic = channelTopic != null ? channelTopic : DataTopic.CHAT;\n const updateTopic = updateChannelTopic != null ? updateChannelTopic : DataTopic.CHAT_UPDATE;\n let needsSetup = false;\n if (!topicSubjectMap.has(room)) {\n needsSetup = true;\n }\n const topicMap = (_a = topicSubjectMap.get(room)) != null ? _a : /* @__PURE__ */ new Map();\n const messageSubject = (_b = topicMap.get(topic)) != null ? _b : new Subject3();\n topicMap.set(topic, messageSubject);\n topicSubjectMap.set(room, topicMap);\n if (needsSetup) {\n const { messageObservable } = setupDataMessageHandler(room, [topic, updateTopic]);\n messageObservable.pipe(takeUntil(onDestroyObservable)).subscribe(messageSubject);\n }\n const finalMessageDecoder = messageDecoder != null ? messageDecoder : decode;\n const messagesObservable = messageSubject.pipe(\n map6((msg) => {\n const parsedMessage = finalMessageDecoder(msg.payload);\n const newMessage = __spreadProps(__spreadValues({}, parsedMessage), { from: msg.from });\n return newMessage;\n }),\n scan((acc, value) => {\n if (\"id\" in value && acc.find((msg) => {\n var _a2, _b2;\n return ((_a2 = msg.from) == null ? void 0 : _a2.identity) === ((_b2 = value.from) == null ? void 0 : _b2.identity) && msg.id === value.id;\n })) {\n const replaceIndex = acc.findIndex((msg) => msg.id === value.id);\n if (replaceIndex > -1) {\n const originalMsg = acc[replaceIndex];\n acc[replaceIndex] = __spreadProps(__spreadValues({}, value), {\n timestamp: originalMsg.timestamp,\n editTimestamp: value.timestamp\n });\n }\n return [...acc];\n }\n return [...acc, value];\n }, []),\n takeUntil(onDestroyObservable)\n );\n const isSending$ = new BehaviorSubject2(false);\n const finalMessageEncoder = messageEncoder != null ? messageEncoder : encode;\n const send = (message) => __async(this, null, function* () {\n const timestamp = Date.now();\n const id = crypto.randomUUID();\n const chatMessage = { id, message, timestamp };\n const encodedMsg = finalMessageEncoder(chatMessage);\n isSending$.next(true);\n try {\n yield sendMessage(room.localParticipant, encodedMsg, {\n reliable: true,\n topic\n });\n messageSubject.next({\n payload: encodedMsg,\n topic,\n from: room.localParticipant\n });\n return chatMessage;\n } finally {\n isSending$.next(false);\n }\n });\n const update = (message, messageId) => __async(this, null, function* () {\n const timestamp = Date.now();\n const chatMessage = { id: messageId, message, timestamp };\n const encodedMsg = finalMessageEncoder(chatMessage);\n isSending$.next(true);\n try {\n yield sendMessage(room.localParticipant, encodedMsg, {\n topic: updateTopic,\n reliable: true\n });\n messageSubject.next({\n payload: encodedMsg,\n topic,\n from: room.localParticipant\n });\n return chatMessage;\n } finally {\n isSending$.next(false);\n }\n });\n function destroy() {\n onDestroyObservable.next();\n onDestroyObservable.complete();\n topicSubjectMap.delete(room);\n }\n room.once(RoomEvent4.Disconnected, destroy);\n return { messageObservable: messagesObservable, isSendingObservable: isSending$, send, update };\n}\n\n// src/components/startAudio.ts\nfunction setupStartAudio() {\n const handleStartAudioPlayback = (room) => __async(this, null, function* () {\n log.info(\"Start Audio for room: \", room);\n yield room.startAudio();\n });\n const className = prefixClass(\"start-audio-button\");\n return { className, roomAudioPlaybackAllowedObservable, handleStartAudioPlayback };\n}\n\n// src/components/startVideo.ts\nfunction setupStartVideo() {\n const handleStartVideoPlayback = (room) => __async(this, null, function* () {\n log.info(\"Start Video for room: \", room);\n yield room.startVideo();\n });\n const className = prefixClass(\"start-audio-button\");\n return { className, roomVideoPlaybackAllowedObservable, handleStartVideoPlayback };\n}\n\n// src/components/chatToggle.ts\nfunction setupChatToggle() {\n const className = [prefixClass(\"button\"), prefixClass(\"chat-toggle\")].join(\" \");\n return { className };\n}\n\n// src/components/focusToggle.ts\nfunction setupFocusToggle() {\n const className = [prefixClass(\"button\"), prefixClass(\"focus-toggle-button\")].join(\" \");\n return { className };\n}\n\n// src/components/clearPinButton.ts\nfunction setupClearPinButton() {\n const className = \"lk-clear-pin-button lk-button\";\n return { className };\n}\n\n// src/components/room.ts\nfunction setupLiveKitRoom() {\n const className = \"lk-room-container\";\n return { className };\n}\n\n// src/observables/track.ts\nimport { RoomEvent as RoomEvent5, TrackEvent } from \"livekit-client\";\nimport { map as map7, Observable as Observable4, startWith as startWith5 } from \"rxjs\";\nfunction trackObservable(track) {\n const trackObserver = observeTrackEvents(\n track,\n TrackEvent.Muted,\n TrackEvent.Unmuted,\n TrackEvent.Subscribed,\n TrackEvent.Unsubscribed\n );\n return trackObserver;\n}\nfunction observeTrackEvents(track, ...events) {\n const observable = new Observable4((subscribe) => {\n const onTrackUpdate = () => {\n subscribe.next(track);\n };\n events.forEach((evt) => {\n track.on(evt, onTrackUpdate);\n });\n const unsubscribe = () => {\n events.forEach((evt) => {\n track.off(evt, onTrackUpdate);\n });\n };\n return unsubscribe;\n }).pipe(startWith5(track));\n return observable;\n}\nfunction getTrackReferences(room, sources, onlySubscribedTracks = true) {\n const localParticipant = room.localParticipant;\n const allParticipants = [localParticipant, ...Array.from(room.remoteParticipants.values())];\n const trackReferences = [];\n allParticipants.forEach((participant) => {\n sources.forEach((source) => {\n const sourceReferences = Array.from(\n participant.trackPublications.values()\n ).filter(\n (track) => track.source === source && // either return all or only the ones that are subscribed\n (!onlySubscribedTracks || track.track)\n ).map((track) => {\n return {\n participant,\n publication: track,\n source: track.source\n };\n });\n trackReferences.push(...sourceReferences);\n });\n });\n return { trackReferences, participants: allParticipants };\n}\nfunction getParticipantTrackRefs(participant, identifier, onlySubscribedTracks = false) {\n const { sources, kind, name } = identifier;\n const sourceReferences = Array.from(participant.trackPublications.values()).filter(\n (pub) => (!sources || sources.includes(pub.source)) && (!kind || pub.kind === kind) && (!name || pub.trackName === name) && // either return all or only the ones that are subscribed\n (!onlySubscribedTracks || pub.track)\n ).map((track) => {\n return {\n participant,\n publication: track,\n source: track.source\n };\n });\n return sourceReferences;\n}\nfunction trackReferencesObservable(room, sources, options) {\n var _a, _b;\n const additionalRoomEvents = (_a = options.additionalRoomEvents) != null ? _a : allParticipantRoomEvents;\n const onlySubscribedTracks = (_b = options.onlySubscribed) != null ? _b : true;\n const roomEvents = Array.from(\n (/* @__PURE__ */ new Set([\n RoomEvent5.ParticipantConnected,\n RoomEvent5.ParticipantDisconnected,\n RoomEvent5.ConnectionStateChanged,\n RoomEvent5.LocalTrackPublished,\n RoomEvent5.LocalTrackUnpublished,\n RoomEvent5.TrackPublished,\n RoomEvent5.TrackUnpublished,\n RoomEvent5.TrackSubscriptionStatusChanged,\n ...additionalRoomEvents\n ])).values()\n );\n const observable = observeRoomEvents(room, ...roomEvents).pipe(\n map7((room2) => {\n const data = getTrackReferences(room2, sources, onlySubscribedTracks);\n log.debug(`TrackReference[] was updated. (length ${data.trackReferences.length})`, data);\n return data;\n }),\n startWith5(getTrackReferences(room, sources, onlySubscribedTracks))\n );\n return observable;\n}\nfunction participantTracksObservable(participant, trackIdentifier) {\n const observable = observeParticipantEvents(participant, ...participantTrackEvents).pipe(\n map7((participant2) => {\n const data = getParticipantTrackRefs(participant2, trackIdentifier);\n log.debug(`TrackReference[] was updated. (length ${data.length})`, data);\n return data;\n }),\n startWith5(getParticipantTrackRefs(participant, trackIdentifier))\n );\n return observable;\n}\nfunction trackEventSelector(publication, event) {\n const observable = new Observable4((subscribe) => {\n const update = (...params) => {\n subscribe.next(params);\n };\n publication.on(event, update);\n const unsubscribe = () => {\n publication.off(event, update);\n };\n return unsubscribe;\n });\n return observable;\n}\nfunction trackTranscriptionObserver(publication) {\n return trackEventSelector(publication, TrackEvent.TranscriptionReceived);\n}\nfunction trackSyncTimeObserver(track) {\n return trackEventSelector(track, TrackEvent.TimeSyncUpdate).pipe(\n map7(([timeUpdate]) => timeUpdate)\n );\n}\n\n// src/observables/dom-event.ts\nimport { concat as concat2, distinctUntilChanged, fromEvent, map as map8, of, skipUntil, timeout } from \"rxjs\";\nfunction createInteractingObservable(htmlElement, inactiveAfter = 1e3) {\n if (htmlElement === null) return of(false);\n const move$ = fromEvent(htmlElement, \"mousemove\", { passive: true }).pipe(map8(() => true));\n const moveAndStop$ = move$.pipe(\n timeout({\n each: inactiveAfter,\n with: () => concat2(of(false), moveAndStop$.pipe(skipUntil(move$)))\n }),\n distinctUntilChanged()\n );\n return moveAndStop$;\n}\n\n// src/persistent-storage/local-storage-helpers.ts\nfunction saveToLocalStorage(key, value) {\n if (typeof localStorage === \"undefined\") {\n log.error(\"Local storage is not available.\");\n return;\n }\n try {\n localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n log.error(`Error setting item to local storage: ${error}`);\n }\n}\nfunction loadFromLocalStorage(key) {\n if (typeof localStorage === \"undefined\") {\n log.error(\"Local storage is not available.\");\n return void 0;\n }\n try {\n const item = localStorage.getItem(key);\n if (!item) {\n log.warn(`Item with key ${key} does not exist in local storage.`);\n return void 0;\n }\n return JSON.parse(item);\n } catch (error) {\n log.error(`Error getting item from local storage: ${error}`);\n return void 0;\n }\n}\nfunction createLocalStorageInterface(key) {\n return {\n load: () => loadFromLocalStorage(key),\n save: (value) => saveToLocalStorage(key, value)\n };\n}\n\n// src/persistent-storage/user-choices.ts\nvar USER_CHOICES_KEY = `${cssPrefix}-user-choices`;\nvar defaultUserChoices = {\n videoEnabled: true,\n audioEnabled: true,\n videoDeviceId: \"\",\n audioDeviceId: \"\",\n username: \"\"\n};\nvar { load, save } = createLocalStorageInterface(USER_CHOICES_KEY);\nfunction saveUserChoices(userChoices, preventSave = false) {\n if (preventSave === true) {\n return;\n }\n save(userChoices);\n}\nfunction loadUserChoices(defaults, preventLoad = false) {\n var _a, _b, _c, _d, _e;\n const fallback = {\n videoEnabled: (_a = defaults == null ? void 0 : defaults.videoEnabled) != null ? _a : defaultUserChoices.videoEnabled,\n audioEnabled: (_b = defaults == null ? void 0 : defaults.audioEnabled) != null ? _b : defaultUserChoices.audioEnabled,\n videoDeviceId: (_c = defaults == null ? void 0 : defaults.videoDeviceId) != null ? _c : defaultUserChoices.videoDeviceId,\n audioDeviceId: (_d = defaults == null ? void 0 : defaults.audioDeviceId) != null ? _d : defaultUserChoices.audioDeviceId,\n username: (_e = defaults == null ? void 0 : defaults.username) != null ? _e : defaultUserChoices.username\n };\n if (preventLoad) {\n return fallback;\n } else {\n const maybeLoadedObject = load();\n const result = __spreadValues(__spreadValues({}, fallback), maybeLoadedObject != null ? maybeLoadedObject : {});\n return result;\n }\n}\nexport {\n DataTopic,\n GRID_LAYOUTS,\n PIN_DEFAULT_STATE,\n WIDGET_DEFAULT_STATE,\n activeSpeakerObserver,\n addMediaTimestampToTranscription,\n allParticipantEvents,\n allParticipantRoomEvents,\n allRemoteParticipantEvents,\n allRemoteParticipantRoomEvents,\n attachIfSubscribed,\n computeMenuPosition,\n connectedParticipantObserver,\n connectedParticipantsObserver,\n connectionStateObserver,\n createActiveDeviceObservable,\n createConnectionQualityObserver,\n createDataObserver,\n createDefaultGrammar,\n createEmailRegExp,\n createInteractingObservable,\n createIsSpeakingObserver,\n createMediaDeviceObserver,\n createTrackObserver,\n createUrlRegExp,\n cssPrefix,\n dedupeSegments,\n defaultUserChoices,\n didActiveSegmentsChange,\n encryptionStatusObservable,\n getActiveTranscriptionSegments,\n getScrollBarWidth,\n getTrackByIdentifier,\n getTrackReferenceId,\n getTrackReferenceSource,\n isEqualTrackRef,\n isLocal,\n isMobileBrowser,\n isParticipantTrackReferencePinned,\n isPlaceholderReplacement,\n isRemote,\n isSourceWitOptions,\n isSourcesWithOptions,\n isTrackReference,\n isTrackReferencePinned,\n isTrackReferencePlaceholder,\n isWeb,\n loadUserChoices,\n log,\n mutedObserver,\n observeParticipantEvents,\n observeParticipantMedia,\n observeRoomEvents,\n observeTrackEvents,\n participantAttributesObserver,\n participantByIdentifierObserver,\n participantEventSelector,\n participantInfoObserver,\n participantPermissionObserver,\n participantTrackEvents,\n participantTracksObservable,\n roomAudioPlaybackAllowedObservable,\n roomEventSelector,\n roomInfoObserver,\n roomObserver,\n roomVideoPlaybackAllowedObservable,\n saveUserChoices,\n screenShareObserver,\n selectGridLayout,\n sendMessage,\n setDifference,\n setLogExtension,\n setLogLevel,\n setupChat,\n setupChatToggle,\n setupClearPinButton,\n setupConnectionQualityIndicator,\n setupDataMessageHandler,\n setupDeviceSelector,\n setupDisconnectButton,\n setupFocusToggle,\n setupLiveKitRoom,\n setupManualToggle,\n setupMediaToggle,\n setupMediaTrack,\n setupParticipantName,\n setupParticipantTile,\n setupStartAudio,\n setupStartVideo,\n setupTrackMutedIndicator,\n sortParticipants,\n sortTrackReferences,\n supportsScreenSharing,\n tokenize,\n trackEventSelector,\n trackObservable,\n trackReferencesObservable,\n trackSyncTimeObserver,\n trackTranscriptionObserver,\n updatePages,\n wasClickOutside\n};\n//# sourceMappingURL=index.mjs.map","import { useState, useCallback, useLayoutEffect, useEffect, useRef, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\n\n// src/useBoolean/useBoolean.ts\nfunction useBoolean(defaultValue = false) {\n if (typeof defaultValue !== \"boolean\") {\n throw new Error(\"defaultValue must be `true` or `false`\");\n }\n const [value, setValue] = useState(defaultValue);\n const setTrue = useCallback(() => {\n setValue(true);\n }, []);\n const setFalse = useCallback(() => {\n setValue(false);\n }, []);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return { value, setValue, setTrue, setFalse, toggle };\n}\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/useEventListener/useEventListener.ts\nfunction useEventListener(eventName, handler, element, options) {\n const savedHandler = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n useEffect(() => {\n const targetElement = (element == null ? void 0 : element.current) ?? window;\n if (!(targetElement && targetElement.addEventListener))\n return;\n const listener = (event) => {\n savedHandler.current(event);\n };\n targetElement.addEventListener(eventName, listener, options);\n return () => {\n targetElement.removeEventListener(eventName, listener, options);\n };\n }, [eventName, element, options]);\n}\n\n// src/useClickAnyWhere/useClickAnyWhere.ts\nfunction useClickAnyWhere(handler) {\n useEventListener(\"click\", (event) => {\n handler(event);\n });\n}\nfunction useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = useCallback(async (text) => {\n if (!(navigator == null ? void 0 : navigator.clipboard)) {\n console.warn(\"Clipboard not supported\");\n return false;\n }\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n } catch (error) {\n console.warn(\"Copy failed\", error);\n setCopiedText(null);\n return false;\n }\n }, []);\n return [copiedText, copy];\n}\nfunction useCounter(initialValue) {\n const [count, setCount] = useState(initialValue ?? 0);\n const increment = useCallback(() => {\n setCount((x) => x + 1);\n }, []);\n const decrement = useCallback(() => {\n setCount((x) => x - 1);\n }, []);\n const reset = useCallback(() => {\n setCount(initialValue ?? 0);\n }, [initialValue]);\n return {\n count,\n increment,\n decrement,\n reset,\n setCount\n };\n}\nfunction useInterval(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (delay === null) {\n return;\n }\n const id = setInterval(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearInterval(id);\n };\n }, [delay]);\n}\n\n// src/useCountdown/useCountdown.ts\nfunction useCountdown({\n countStart,\n countStop = 0,\n intervalMs = 1e3,\n isIncrement = false\n}) {\n const {\n count,\n increment,\n decrement,\n reset: resetCounter\n } = useCounter(countStart);\n const {\n value: isCountdownRunning,\n setTrue: startCountdown,\n setFalse: stopCountdown\n } = useBoolean(false);\n const resetCountdown = useCallback(() => {\n stopCountdown();\n resetCounter();\n }, [stopCountdown, resetCounter]);\n const countdownCallback = useCallback(() => {\n if (count === countStop) {\n stopCountdown();\n return;\n }\n if (isIncrement) {\n increment();\n } else {\n decrement();\n }\n }, [count, countStop, decrement, increment, isIncrement, stopCountdown]);\n useInterval(countdownCallback, isCountdownRunning ? intervalMs : null);\n return [count, { startCountdown, stopCountdown, resetCountdown }];\n}\nfunction useEventCallback(fn) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args) => {\n var _a;\n return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);\n }, [ref]);\n}\n\n// src/useLocalStorage/useLocalStorage.ts\nvar IS_SERVER = typeof window === \"undefined\";\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER) {\n return initialValueToUse;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER) {\n console.warn(\n `Tried setting localStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.localStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"local-storage\", { key }));\n } catch (error) {\n console.warn(`Error setting localStorage key \\u201C${key}\\u201D:`, error);\n }\n });\n const removeValue = useEventCallback(() => {\n if (IS_SERVER) {\n console.warn(\n `Tried removing localStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n window.localStorage.removeItem(key);\n setStoredValue(defaultValue);\n window.dispatchEvent(new StorageEvent(\"local-storage\", { key }));\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return [storedValue, setValue, removeValue];\n}\nvar IS_SERVER2 = typeof window === \"undefined\";\nfunction useMediaQuery(query, {\n defaultValue = false,\n initializeWithValue = true\n} = {}) {\n const getMatches = (query2) => {\n if (IS_SERVER2) {\n return defaultValue;\n }\n return window.matchMedia(query2).matches;\n };\n const [matches, setMatches] = useState(() => {\n if (initializeWithValue) {\n return getMatches(query);\n }\n return defaultValue;\n });\n function handleChange() {\n setMatches(getMatches(query));\n }\n useIsomorphicLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n handleChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener(\"change\", handleChange);\n }\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener(\"change\", handleChange);\n }\n };\n }, [query]);\n return matches;\n}\n\n// src/useDarkMode/useDarkMode.ts\nvar COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY = \"usehooks-ts-dark-mode\";\nfunction useDarkMode(options = {}) {\n const {\n defaultValue,\n localStorageKey = LOCAL_STORAGE_KEY,\n initializeWithValue = true\n } = options;\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY, {\n initializeWithValue,\n defaultValue\n });\n const [isDarkMode, setDarkMode] = useLocalStorage(\n localStorageKey,\n defaultValue ?? isDarkOS ?? false,\n { initializeWithValue }\n );\n useIsomorphicLayoutEffect(() => {\n if (isDarkOS !== isDarkMode) {\n setDarkMode(isDarkOS);\n }\n }, [isDarkOS]);\n return {\n isDarkMode,\n toggle: () => {\n setDarkMode((prev) => !prev);\n },\n enable: () => {\n setDarkMode(true);\n },\n disable: () => {\n setDarkMode(false);\n },\n set: (value) => {\n setDarkMode(value);\n }\n };\n}\nfunction useUnmount(func) {\n const funcRef = useRef(func);\n funcRef.current = func;\n useEffect(\n () => () => {\n funcRef.current();\n },\n []\n );\n}\n\n// src/useDebounceCallback/useDebounceCallback.ts\nfunction useDebounceCallback(func, delay = 500, options) {\n const debouncedFunc = useRef();\n useUnmount(() => {\n if (debouncedFunc.current) {\n debouncedFunc.current.cancel();\n }\n });\n const debounced = useMemo(() => {\n const debouncedFuncInstance = debounce(func, delay, options);\n const wrappedFunc = (...args) => {\n return debouncedFuncInstance(...args);\n };\n wrappedFunc.cancel = () => {\n debouncedFuncInstance.cancel();\n };\n wrappedFunc.isPending = () => {\n return !!debouncedFunc.current;\n };\n wrappedFunc.flush = () => {\n return debouncedFuncInstance.flush();\n };\n return wrappedFunc;\n }, [func, delay, options]);\n useEffect(() => {\n debouncedFunc.current = debounce(func, delay, options);\n }, [func, delay, options]);\n return debounced;\n}\nfunction useDebounceValue(initialValue, delay, options) {\n const eq = (options == null ? void 0 : options.equalityFn) ?? ((left, right) => left === right);\n const unwrappedInitialValue = initialValue instanceof Function ? initialValue() : initialValue;\n const [debouncedValue, setDebouncedValue] = useState(unwrappedInitialValue);\n const previousValueRef = useRef(unwrappedInitialValue);\n const updateDebouncedValue = useDebounceCallback(\n setDebouncedValue,\n delay,\n options\n );\n if (!eq(previousValueRef.current, unwrappedInitialValue)) {\n updateDebouncedValue(unwrappedInitialValue);\n previousValueRef.current = unwrappedInitialValue;\n }\n return [debouncedValue, updateDebouncedValue];\n}\nfunction useDocumentTitle(title, options = {}) {\n const { preserveTitleOnUnmount = true } = options;\n const defaultTitle = useRef(null);\n useIsomorphicLayoutEffect(() => {\n defaultTitle.current = window.document.title;\n }, []);\n useIsomorphicLayoutEffect(() => {\n window.document.title = title;\n }, [title]);\n useUnmount(() => {\n if (!preserveTitleOnUnmount && defaultTitle.current) {\n window.document.title = defaultTitle.current;\n }\n });\n}\nfunction useHover(elementRef) {\n const [value, setValue] = useState(false);\n const handleMouseEnter = () => {\n setValue(true);\n };\n const handleMouseLeave = () => {\n setValue(false);\n };\n useEventListener(\"mouseenter\", handleMouseEnter, elementRef);\n useEventListener(\"mouseleave\", handleMouseLeave, elementRef);\n return value;\n}\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = ((_a = state.entry) == null ? void 0 : _a.isIntersecting) && freezeOnceVisible;\n useEffect(() => {\n if (!ref)\n return;\n if (!(\"IntersectionObserver\" in window))\n return;\n if (frozen)\n return;\n let unobserve;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some((threshold2) => entry.intersectionRatio >= threshold2);\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n if (isIntersecting && freezeOnceVisible && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n var _a2;\n if (!ref && ((_a2 = state.entry) == null ? void 0 : _a2.target) && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\nfunction useIsClient() {\n const [isClient, setClient] = useState(false);\n useEffect(() => {\n setClient(true);\n }, []);\n return isClient;\n}\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction useMap(initialState = /* @__PURE__ */ new Map()) {\n const [map, setMap] = useState(new Map(initialState));\n const actions = {\n set: useCallback((key, value) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.set(key, value);\n return copy;\n });\n }, []),\n setAll: useCallback((entries) => {\n setMap(() => new Map(entries));\n }, []),\n remove: useCallback((key) => {\n setMap((prev) => {\n const copy = new Map(prev);\n copy.delete(key);\n return copy;\n });\n }, []),\n reset: useCallback(() => {\n setMap(() => /* @__PURE__ */ new Map());\n }, [])\n };\n return [map, actions];\n}\n\n// src/useOnClickOutside/useOnClickOutside.ts\nfunction useOnClickOutside(ref, handler, eventType = \"mousedown\", eventListenerOptions = {}) {\n useEventListener(\n eventType,\n (event) => {\n const target = event.target;\n if (!target || !target.isConnected) {\n return;\n }\n const isOutside = Array.isArray(ref) ? ref.filter((r) => Boolean(r.current)).every((r) => r.current && !r.current.contains(target)) : ref.current && !ref.current.contains(target);\n if (isOutside) {\n handler(event);\n }\n },\n void 0,\n eventListenerOptions\n );\n}\nvar IS_SERVER3 = typeof window === \"undefined\";\nfunction useReadLocalStorage(key, options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER3) {\n initializeWithValue = false;\n }\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return null;\n }\n return parsed;\n },\n [options]\n );\n const readValue = useCallback(() => {\n if (IS_SERVER3) {\n return null;\n }\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : null;\n } catch (error) {\n console.warn(`Error reading localStorage key \\u201C${key}\\u201D:`, error);\n return null;\n }\n }, [key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return void 0;\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"local-storage\", handleStorageChange);\n return storedValue;\n}\nvar initialSize = {\n width: void 0,\n height: void 0\n};\nfunction useResizeObserver(options) {\n const { ref, box = \"content-box\" } = options;\n const [{ width, height }, setSize] = useState(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef({ ...initialSize });\n const onResize = useRef(void 0);\n onResize.current = options.onResize;\n useEffect(() => {\n if (!ref.current)\n return;\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window))\n return;\n const observer = new ResizeObserver(([entry]) => {\n const boxProp = box === \"border-box\" ? \"borderBoxSize\" : box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\";\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n const hasChanged = previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n if (hasChanged) {\n const newSize = { width: newWidth, height: newHeight };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n observer.observe(ref.current, { box });\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted]);\n return { width, height };\n}\nfunction extractSize(entry, box, sizeType) {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return void 0;\n }\n return Array.isArray(entry[box]) ? entry[box][0][sizeType] : (\n // @ts-ignore Support Firefox's non-standard behavior\n entry[box][sizeType]\n );\n}\nvar IS_SERVER4 = typeof window === \"undefined\";\nfunction useScreen(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER4) {\n initializeWithValue = false;\n }\n const readScreen = () => {\n if (IS_SERVER4) {\n return void 0;\n }\n return window.screen;\n };\n const [screen, setScreen] = useState(() => {\n if (initializeWithValue) {\n return readScreen();\n }\n return void 0;\n });\n const debouncedSetScreen = useDebounceCallback(\n setScreen,\n options.debounceDelay\n );\n function handleSize() {\n const newScreen = readScreen();\n const setSize = options.debounceDelay ? debouncedSetScreen : setScreen;\n if (newScreen) {\n const {\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n } = newScreen;\n setSize({\n width,\n height,\n availHeight,\n availWidth,\n colorDepth,\n orientation,\n pixelDepth\n });\n }\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return screen;\n}\nvar cachedScriptStatuses = /* @__PURE__ */ new Map();\nfunction getScriptNode(src) {\n const node = document.querySelector(\n `script[src=\"${src}\"]`\n );\n const status = node == null ? void 0 : node.getAttribute(\"data-status\");\n return {\n node,\n status\n };\n}\nfunction useScript(src, options) {\n const [status, setStatus] = useState(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return \"idle\";\n }\n if (typeof window === \"undefined\") {\n return \"loading\";\n }\n return cachedScriptStatuses.get(src) ?? \"loading\";\n });\n useEffect(() => {\n if (!src || (options == null ? void 0 : options.shouldPreventLoad)) {\n return;\n }\n const cachedScriptStatus = cachedScriptStatuses.get(src);\n if (cachedScriptStatus === \"ready\" || cachedScriptStatus === \"error\") {\n setStatus(cachedScriptStatus);\n return;\n }\n const script = getScriptNode(src);\n let scriptNode = script.node;\n if (!scriptNode) {\n scriptNode = document.createElement(\"script\");\n scriptNode.src = src;\n scriptNode.async = true;\n if (options == null ? void 0 : options.id) {\n scriptNode.id = options.id;\n }\n scriptNode.setAttribute(\"data-status\", \"loading\");\n document.body.appendChild(scriptNode);\n const setAttributeFromEvent = (event) => {\n const scriptStatus = event.type === \"load\" ? \"ready\" : \"error\";\n scriptNode == null ? void 0 : scriptNode.setAttribute(\"data-status\", scriptStatus);\n };\n scriptNode.addEventListener(\"load\", setAttributeFromEvent);\n scriptNode.addEventListener(\"error\", setAttributeFromEvent);\n } else {\n setStatus(script.status ?? cachedScriptStatus ?? \"loading\");\n }\n const setStateFromEvent = (event) => {\n const newStatus = event.type === \"load\" ? \"ready\" : \"error\";\n setStatus(newStatus);\n cachedScriptStatuses.set(src, newStatus);\n };\n scriptNode.addEventListener(\"load\", setStateFromEvent);\n scriptNode.addEventListener(\"error\", setStateFromEvent);\n return () => {\n if (scriptNode) {\n scriptNode.removeEventListener(\"load\", setStateFromEvent);\n scriptNode.removeEventListener(\"error\", setStateFromEvent);\n }\n if (scriptNode && (options == null ? void 0 : options.removeOnUnmount)) {\n scriptNode.remove();\n cachedScriptStatuses.delete(src);\n }\n };\n }, [src, options == null ? void 0 : options.shouldPreventLoad, options == null ? void 0 : options.removeOnUnmount, options == null ? void 0 : options.id]);\n return status;\n}\nvar IS_SERVER5 = typeof window === \"undefined\";\nfunction useScrollLock(options = {}) {\n const { autoLock = true, lockTarget, widthReflow = true } = options;\n const [isLocked, setIsLocked] = useState(false);\n const target = useRef(null);\n const originalStyle = useRef(null);\n const lock = () => {\n if (target.current) {\n const { overflow, paddingRight } = target.current.style;\n originalStyle.current = { overflow, paddingRight };\n if (widthReflow) {\n const offsetWidth = target.current === document.body ? window.innerWidth : target.current.offsetWidth;\n const currentPaddingRight = parseInt(window.getComputedStyle(target.current).paddingRight, 10) || 0;\n const scrollbarWidth = offsetWidth - target.current.scrollWidth;\n target.current.style.paddingRight = `${scrollbarWidth + currentPaddingRight}px`;\n }\n target.current.style.overflow = \"hidden\";\n setIsLocked(true);\n }\n };\n const unlock = () => {\n if (target.current && originalStyle.current) {\n target.current.style.overflow = originalStyle.current.overflow;\n if (widthReflow) {\n target.current.style.paddingRight = originalStyle.current.paddingRight;\n }\n }\n setIsLocked(false);\n };\n useIsomorphicLayoutEffect(() => {\n if (IS_SERVER5)\n return;\n if (lockTarget) {\n target.current = typeof lockTarget === \"string\" ? document.querySelector(lockTarget) : lockTarget;\n }\n if (!target.current) {\n target.current = document.body;\n }\n if (autoLock) {\n lock();\n }\n return () => {\n unlock();\n };\n }, [autoLock, lockTarget, widthReflow]);\n return { isLocked, lock, unlock };\n}\nvar IS_SERVER6 = typeof window === \"undefined\";\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { initializeWithValue = true } = options;\n const serializer = useCallback(\n (value) => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options]\n );\n const deserializer = useCallback(\n (value) => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === \"undefined\") {\n return void 0;\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n let parsed;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n console.error(\"Error parsing JSON:\", error);\n return defaultValue;\n }\n return parsed;\n },\n [options, initialValue]\n );\n const readValue = useCallback(() => {\n const initialValueToUse = initialValue instanceof Function ? initialValue() : initialValue;\n if (IS_SERVER6) {\n return initialValueToUse;\n }\n try {\n const raw = window.sessionStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n console.warn(`Error reading sessionStorage key \\u201C${key}\\u201D:`, error);\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n const setValue = useEventCallback((value) => {\n if (IS_SERVER6) {\n console.warn(\n `Tried setting sessionStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.sessionStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent(\"session-storage\", { key }));\n } catch (error) {\n console.warn(`Error setting sessionStorage key \\u201C${key}\\u201D:`, error);\n }\n });\n const removeValue = useEventCallback(() => {\n if (IS_SERVER6) {\n console.warn(\n `Tried removing sessionStorage key \\u201C${key}\\u201D even though environment is not a client`\n );\n }\n const defaultValue = initialValue instanceof Function ? initialValue() : initialValue;\n window.sessionStorage.removeItem(key);\n setStoredValue(defaultValue);\n window.dispatchEvent(new StorageEvent(\"session-storage\", { key }));\n });\n useEffect(() => {\n setStoredValue(readValue());\n }, [key]);\n const handleStorageChange = useCallback(\n (event) => {\n if (event.key && event.key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue]\n );\n useEventListener(\"storage\", handleStorageChange);\n useEventListener(\"session-storage\", handleStorageChange);\n return [storedValue, setValue, removeValue];\n}\nfunction useStep(maxStep) {\n const [currentStep, setCurrentStep] = useState(1);\n const canGoToNextStep = currentStep + 1 <= maxStep;\n const canGoToPrevStep = currentStep - 1 > 0;\n const setStep = useCallback(\n (step) => {\n const newStep = step instanceof Function ? step(currentStep) : step;\n if (newStep >= 1 && newStep <= maxStep) {\n setCurrentStep(newStep);\n return;\n }\n throw new Error(\"Step not valid\");\n },\n [maxStep, currentStep]\n );\n const goToNextStep = useCallback(() => {\n if (canGoToNextStep) {\n setCurrentStep((step) => step + 1);\n }\n }, [canGoToNextStep]);\n const goToPrevStep = useCallback(() => {\n if (canGoToPrevStep) {\n setCurrentStep((step) => step - 1);\n }\n }, [canGoToPrevStep]);\n const reset = useCallback(() => {\n setCurrentStep(1);\n }, []);\n return [\n currentStep,\n {\n goToNextStep,\n goToPrevStep,\n canGoToNextStep,\n canGoToPrevStep,\n setStep,\n reset\n }\n ];\n}\n\n// src/useTernaryDarkMode/useTernaryDarkMode.ts\nvar COLOR_SCHEME_QUERY2 = \"(prefers-color-scheme: dark)\";\nvar LOCAL_STORAGE_KEY2 = \"usehooks-ts-ternary-dark-mode\";\nfunction useTernaryDarkMode({\n defaultValue = \"system\",\n localStorageKey = LOCAL_STORAGE_KEY2,\n initializeWithValue = true\n} = {}) {\n const isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY2, { initializeWithValue });\n const [mode, setMode] = useLocalStorage(localStorageKey, defaultValue, {\n initializeWithValue\n });\n const isDarkMode = mode === \"dark\" || mode === \"system\" && isDarkOS;\n const toggleTernaryDarkMode = () => {\n const modes = [\"light\", \"system\", \"dark\"];\n setMode((prevMode) => {\n const nextIndex = (modes.indexOf(prevMode) + 1) % modes.length;\n return modes[nextIndex];\n });\n };\n return {\n isDarkMode,\n ternaryDarkMode: mode,\n setTernaryDarkMode: setMode,\n toggleTernaryDarkMode\n };\n}\nfunction useTimeout(callback, delay) {\n const savedCallback = useRef(callback);\n useIsomorphicLayoutEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n const id = setTimeout(() => {\n savedCallback.current();\n }, delay);\n return () => {\n clearTimeout(id);\n };\n }, [delay]);\n}\nfunction useToggle(defaultValue) {\n const [value, setValue] = useState(!!defaultValue);\n const toggle = useCallback(() => {\n setValue((x) => !x);\n }, []);\n return [value, toggle, setValue];\n}\nvar IS_SERVER7 = typeof window === \"undefined\";\nfunction useWindowSize(options = {}) {\n let { initializeWithValue = true } = options;\n if (IS_SERVER7) {\n initializeWithValue = false;\n }\n const [windowSize, setWindowSize] = useState(() => {\n if (initializeWithValue) {\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n return {\n width: void 0,\n height: void 0\n };\n });\n const debouncedSetWindowSize = useDebounceCallback(\n setWindowSize,\n options.debounceDelay\n );\n function handleSize() {\n const setSize = options.debounceDelay ? debouncedSetWindowSize : setWindowSize;\n setSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n useEventListener(\"resize\", handleSize);\n useIsomorphicLayoutEffect(() => {\n handleSize();\n }, []);\n return windowSize;\n}\n\nexport { useBoolean, useClickAnyWhere, useCopyToClipboard, useCountdown, useCounter, useDarkMode, useDebounceCallback, useDebounceValue, useDocumentTitle, useEventCallback, useEventListener, useHover, useIntersectionObserver, useInterval, useIsClient, useIsMounted, useIsomorphicLayoutEffect, useLocalStorage, useMap, useMediaQuery, useOnClickOutside, useReadLocalStorage, useResizeObserver, useScreen, useScript, useScrollLock, useSessionStorage, useStep, useTernaryDarkMode, useTimeout, useToggle, useUnmount, useWindowSize };\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/components/controls/ClearPinButton.tsx\nimport * as React53 from \"react\";\n\n// src/hooks/useAudioPlayback.ts\nimport * as React9 from \"react\";\n\n// src/hooks/internal/useResizeObserver.ts\nimport * as React from \"react\";\nvar useLatest = (current) => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\nfunction useResizeObserver(target, callback) {\n const resizeObserver = getResizeObserver();\n const storedCallback = useLatest(callback);\n React.useLayoutEffect(() => {\n let didUnsubscribe = false;\n const targetEl = target.current;\n if (!targetEl) return;\n function cb(entry, observer) {\n if (didUnsubscribe) return;\n storedCallback.current(entry, observer);\n }\n resizeObserver == null ? void 0 : resizeObserver.subscribe(targetEl, cb);\n return () => {\n didUnsubscribe = true;\n resizeObserver == null ? void 0 : resizeObserver.unsubscribe(targetEl, cb);\n };\n }, [target.current, resizeObserver, storedCallback]);\n return resizeObserver == null ? void 0 : resizeObserver.observer;\n}\nfunction createResizeObserver() {\n let ticking = false;\n let allEntries = [];\n const callbacks = /* @__PURE__ */ new Map();\n if (typeof window === \"undefined\") {\n return;\n }\n const observer = new ResizeObserver((entries, obs) => {\n allEntries = allEntries.concat(entries);\n if (!ticking) {\n window.requestAnimationFrame(() => {\n const triggered = /* @__PURE__ */ new Set();\n for (let i = 0; i < allEntries.length; i++) {\n if (triggered.has(allEntries[i].target)) continue;\n triggered.add(allEntries[i].target);\n const cbs = callbacks.get(allEntries[i].target);\n cbs == null ? void 0 : cbs.forEach((cb) => cb(allEntries[i], obs));\n }\n allEntries = [];\n ticking = false;\n });\n }\n ticking = true;\n });\n return {\n observer,\n subscribe(target, callback) {\n var _a;\n observer.observe(target);\n const cbs = (_a = callbacks.get(target)) != null ? _a : [];\n cbs.push(callback);\n callbacks.set(target, cbs);\n },\n unsubscribe(target, callback) {\n var _a;\n const cbs = (_a = callbacks.get(target)) != null ? _a : [];\n if (cbs.length === 1) {\n observer.unobserve(target);\n callbacks.delete(target);\n return;\n }\n const cbIndex = cbs.indexOf(callback);\n if (cbIndex !== -1) cbs.splice(cbIndex, 1);\n callbacks.set(target, cbs);\n }\n };\n}\nvar _resizeObserver;\nvar getResizeObserver = () => !_resizeObserver ? _resizeObserver = createResizeObserver() : _resizeObserver;\nvar useSize = (target) => {\n const [size, setSize] = React.useState({ width: 0, height: 0 });\n React.useLayoutEffect(() => {\n if (target.current) {\n const { width, height } = target.current.getBoundingClientRect();\n setSize({ width, height });\n }\n }, [target.current]);\n const resizeCallback = React.useCallback(\n (entry) => setSize(entry.contentRect),\n []\n );\n useResizeObserver(target, resizeCallback);\n return size;\n};\n\n// src/hooks/internal/useObservableState.ts\nimport * as React2 from \"react\";\nfunction useObservableState(observable, startWith, resetWhenObservableChanges = true) {\n const [state, setState] = React2.useState(startWith);\n React2.useEffect(() => {\n if (resetWhenObservableChanges) {\n setState(startWith);\n }\n if (typeof window === \"undefined\" || !observable) return;\n const subscription = observable.subscribe(setState);\n return () => subscription.unsubscribe();\n }, [observable, resetWhenObservableChanges]);\n return state;\n}\n\n// src/hooks/internal/useMediaQuery.ts\nimport * as React3 from \"react\";\nfunction useMediaQuery(query) {\n const getMatches = (query2) => {\n if (typeof window !== \"undefined\") {\n return window.matchMedia(query2).matches;\n }\n return false;\n };\n const [matches, setMatches] = React3.useState(getMatches(query));\n function handleChange() {\n setMatches(getMatches(query));\n }\n React3.useEffect(() => {\n const matchMedia = window.matchMedia(query);\n handleChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(handleChange);\n } else {\n matchMedia.addEventListener(\"change\", handleChange);\n }\n return () => {\n if (matchMedia.removeListener) {\n matchMedia.removeListener(handleChange);\n } else {\n matchMedia.removeEventListener(\"change\", handleChange);\n }\n };\n }, [query]);\n return matches;\n}\n\n// src/hooks/useAudioPlayback.ts\nimport { roomAudioPlaybackAllowedObservable } from \"@livekit/components-core\";\n\n// src/context/layout-context.ts\nimport { PIN_DEFAULT_STATE, WIDGET_DEFAULT_STATE } from \"@livekit/components-core\";\nimport * as React4 from \"react\";\n\n// src/context/chat-context.ts\nfunction chatReducer(state, action) {\n if (action.msg === \"show_chat\") {\n return __spreadProps(__spreadValues({}, state), { showChat: true, unreadMessages: 0 });\n } else if (action.msg === \"hide_chat\") {\n return __spreadProps(__spreadValues({}, state), { showChat: false });\n } else if (action.msg === \"toggle_chat\") {\n const newState = __spreadProps(__spreadValues({}, state), { showChat: !state.showChat });\n if (newState.showChat === true) {\n newState.unreadMessages = 0;\n }\n return newState;\n } else if (action.msg === \"unread_msg\") {\n return __spreadProps(__spreadValues({}, state), { unreadMessages: action.count });\n } else if (action.msg === \"toggle_settings\") {\n return __spreadProps(__spreadValues({}, state), { showSettings: !state.showSettings });\n } else {\n return __spreadValues({}, state);\n }\n}\n\n// src/context/pin-context.ts\nfunction pinReducer(state, action) {\n if (action.msg === \"set_pin\") {\n return [action.trackReference];\n } else if (action.msg === \"clear_pin\") {\n return [];\n } else {\n return __spreadValues({}, state);\n }\n}\n\n// src/context/layout-context.ts\nvar LayoutContext = React4.createContext(void 0);\nfunction useLayoutContext() {\n const layoutContext = React4.useContext(LayoutContext);\n if (!layoutContext) {\n throw Error(\"Tried to access LayoutContext context outside a LayoutContextProvider provider.\");\n }\n return layoutContext;\n}\nfunction useEnsureLayoutContext(layoutContext) {\n const layout = useMaybeLayoutContext();\n layoutContext != null ? layoutContext : layoutContext = layout;\n if (!layoutContext) {\n throw Error(\"Tried to access LayoutContext context outside a LayoutContextProvider provider.\");\n }\n return layoutContext;\n}\nfunction useCreateLayoutContext() {\n const [pinState, pinDispatch] = React4.useReducer(pinReducer, PIN_DEFAULT_STATE);\n const [widgetState, widgetDispatch] = React4.useReducer(chatReducer, WIDGET_DEFAULT_STATE);\n return {\n pin: { dispatch: pinDispatch, state: pinState },\n widget: { dispatch: widgetDispatch, state: widgetState }\n };\n}\nfunction useEnsureCreateLayoutContext(layoutContext) {\n const [pinState, pinDispatch] = React4.useReducer(pinReducer, PIN_DEFAULT_STATE);\n const [widgetState, widgetDispatch] = React4.useReducer(chatReducer, WIDGET_DEFAULT_STATE);\n return layoutContext != null ? layoutContext : {\n pin: { dispatch: pinDispatch, state: pinState },\n widget: { dispatch: widgetDispatch, state: widgetState }\n };\n}\nfunction useMaybeLayoutContext() {\n return React4.useContext(LayoutContext);\n}\n\n// src/context/participant-context.ts\nimport * as React6 from \"react\";\n\n// src/context/track-reference-context.ts\nimport * as React5 from \"react\";\nvar TrackRefContext = React5.createContext(\n void 0\n);\nfunction useTrackRefContext() {\n const trackReference = React5.useContext(TrackRefContext);\n if (!trackReference) {\n throw Error(\"tried to access track context outside of track context provider\");\n }\n return trackReference;\n}\nfunction useMaybeTrackRefContext() {\n return React5.useContext(TrackRefContext);\n}\nfunction useEnsureTrackRef(trackRef) {\n const context = useMaybeTrackRefContext();\n const ref = trackRef != null ? trackRef : context;\n if (!ref) {\n throw new Error(\n \"No TrackRef, make sure you are inside a TrackRefContext or pass the TrackRef explicitly\"\n );\n }\n return ref;\n}\n\n// src/context/participant-context.ts\nvar ParticipantContext = React6.createContext(void 0);\nfunction useParticipantContext() {\n const participant = React6.useContext(ParticipantContext);\n if (!participant) {\n throw Error(\"tried to access participant context outside of participant context provider\");\n }\n return participant;\n}\nfunction useMaybeParticipantContext() {\n return React6.useContext(ParticipantContext);\n}\nfunction useEnsureParticipant(participant) {\n var _a;\n const context = useMaybeParticipantContext();\n const trackContext = useMaybeTrackRefContext();\n const p = (_a = participant != null ? participant : context) != null ? _a : trackContext == null ? void 0 : trackContext.participant;\n if (!p) {\n throw new Error(\n \"No participant provided, make sure you are inside a participant context or pass the participant explicitly\"\n );\n }\n return p;\n}\n\n// src/context/room-context.ts\nimport * as React7 from \"react\";\nvar RoomContext = React7.createContext(void 0);\nfunction useRoomContext() {\n const ctx = React7.useContext(RoomContext);\n if (!ctx) {\n throw Error(\"tried to access room context outside of livekit room component\");\n }\n return ctx;\n}\nfunction useMaybeRoomContext() {\n return React7.useContext(RoomContext);\n}\nfunction useEnsureRoom(room) {\n const context = useMaybeRoomContext();\n const r = room != null ? room : context;\n if (!r) {\n throw new Error(\n \"No room provided, make sure you are inside a Room context or pass the room explicitly\"\n );\n }\n return r;\n}\n\n// src/context/feature-context.ts\nimport * as React8 from \"react\";\nvar LKFeatureContext = React8.createContext(void 0);\nfunction useFeatureContext(require2) {\n const ctx = React8.useContext(LKFeatureContext);\n if (require2 === true) {\n if (ctx) {\n return ctx;\n } else {\n throw Error(\"tried to access feature context, but none is present\");\n }\n }\n return ctx;\n}\n\n// src/hooks/useAudioPlayback.ts\nfunction useAudioPlayback(room) {\n const roomEnsured = useEnsureRoom(room);\n const startAudio = React9.useCallback(() => __async(this, null, function* () {\n yield roomEnsured.startAudio();\n }), [roomEnsured]);\n const observable = React9.useMemo(\n () => roomAudioPlaybackAllowedObservable(roomEnsured),\n [roomEnsured]\n );\n const { canPlayAudio } = useObservableState(observable, {\n canPlayAudio: roomEnsured.canPlaybackAudio\n });\n return { canPlayAudio, startAudio };\n}\n\n// src/hooks/useClearPinButton.ts\nimport { setupClearPinButton } from \"@livekit/components-core\";\nimport * as React10 from \"react\";\n\n// src/mergeProps.ts\nimport clsx from \"clsx\";\nfunction chain(...callbacks) {\n return (...args) => {\n for (const callback of callbacks) {\n if (typeof callback === \"function\") {\n try {\n callback(...args);\n } catch (e) {\n console.error(e);\n }\n }\n }\n };\n}\nfunction mergeProps(...args) {\n const result = __spreadValues({}, args[0]);\n for (let i = 1; i < args.length; i++) {\n const props = args[i];\n for (const key in props) {\n const a = result[key];\n const b = props[key];\n if (typeof a === \"function\" && typeof b === \"function\" && // This is a lot faster than a regex.\n key[0] === \"o\" && key[1] === \"n\" && key.charCodeAt(2) >= /* 'A' */\n 65 && key.charCodeAt(2) <= /* 'Z' */\n 90) {\n result[key] = chain(a, b);\n } else if ((key === \"className\" || key === \"UNSAFE_className\") && typeof a === \"string\" && typeof b === \"string\") {\n result[key] = clsx(a, b);\n } else {\n result[key] = b !== void 0 ? b : a;\n }\n }\n }\n return result;\n}\n\n// src/hooks/useClearPinButton.ts\nfunction useClearPinButton(props) {\n const { state, dispatch } = useLayoutContext().pin;\n const buttonProps = React10.useMemo(() => {\n const { className } = setupClearPinButton();\n const mergedProps = mergeProps(props, {\n className,\n disabled: !(state == null ? void 0 : state.length),\n onClick: () => {\n if (dispatch) dispatch({ msg: \"clear_pin\" });\n }\n });\n return mergedProps;\n }, [props, dispatch, state]);\n return { buttonProps };\n}\n\n// src/hooks/useConnectionQualityIndicator.ts\nimport { setupConnectionQualityIndicator } from \"@livekit/components-core\";\nimport { ConnectionQuality } from \"livekit-client\";\nimport * as React11 from \"react\";\nfunction useConnectionQualityIndicator(options = {}) {\n const p = useEnsureParticipant(options.participant);\n const { className, connectionQualityObserver } = React11.useMemo(\n () => setupConnectionQualityIndicator(p),\n [p]\n );\n const quality = useObservableState(connectionQualityObserver, ConnectionQuality.Unknown);\n return { className, quality };\n}\n\n// src/hooks/useConnectionStatus.ts\nimport { connectionStateObserver } from \"@livekit/components-core\";\nimport * as React12 from \"react\";\nfunction useConnectionState(room) {\n const r = useEnsureRoom(room);\n const observable = React12.useMemo(() => connectionStateObserver(r), [r]);\n const connectionState = useObservableState(observable, r.state);\n return connectionState;\n}\n\n// src/hooks/useDataChannel.ts\nimport { setupDataMessageHandler } from \"@livekit/components-core\";\nimport * as React13 from \"react\";\nfunction useDataChannel(topicOrCallback, callback) {\n const onMessage = typeof topicOrCallback === \"function\" ? topicOrCallback : callback;\n const topic = typeof topicOrCallback === \"string\" ? topicOrCallback : void 0;\n const room = useRoomContext();\n const { send, messageObservable, isSendingObservable } = React13.useMemo(\n () => setupDataMessageHandler(room, topic, onMessage),\n [room, topic, onMessage]\n );\n const message = useObservableState(messageObservable, void 0);\n const isSending = useObservableState(isSendingObservable, false);\n return {\n message,\n send,\n isSending\n };\n}\n\n// src/hooks/useDisconnectButton.ts\nimport { setupDisconnectButton } from \"@livekit/components-core\";\nimport { ConnectionState } from \"livekit-client\";\nimport * as React14 from \"react\";\nfunction useDisconnectButton(props) {\n const room = useRoomContext();\n const connectionState = useConnectionState(room);\n const buttonProps = React14.useMemo(() => {\n const { className, disconnect } = setupDisconnectButton(room);\n const mergedProps = mergeProps(props, {\n className,\n onClick: () => {\n var _a;\n return disconnect((_a = props.stopTracks) != null ? _a : true);\n },\n disabled: connectionState === ConnectionState.Disconnected\n });\n return mergedProps;\n }, [room, props, connectionState]);\n return { buttonProps };\n}\n\n// src/hooks/useFacingMode.ts\nimport { LocalTrackPublication, facingModeFromLocalTrack } from \"livekit-client\";\nfunction useFacingMode(trackReference) {\n if (trackReference.publication instanceof LocalTrackPublication) {\n const localTrack = trackReference.publication.track;\n if (localTrack) {\n const { facingMode } = facingModeFromLocalTrack(localTrack);\n return facingMode;\n }\n }\n return \"undefined\";\n}\n\n// src/hooks/useFocusToggle.ts\nimport { setupFocusToggle, isTrackReferencePinned } from \"@livekit/components-core\";\nimport * as React15 from \"react\";\nfunction useFocusToggle({ trackRef, props }) {\n const trackReference = useEnsureTrackRef(trackRef);\n const layoutContext = useMaybeLayoutContext();\n const { className } = React15.useMemo(() => setupFocusToggle(), []);\n const inFocus = React15.useMemo(() => {\n return isTrackReferencePinned(trackReference, layoutContext == null ? void 0 : layoutContext.pin.state);\n }, [trackReference, layoutContext == null ? void 0 : layoutContext.pin.state]);\n const mergedProps = React15.useMemo(\n () => mergeProps(props, {\n className,\n onClick: (event) => {\n var _a, _b, _c, _d, _e;\n (_a = props.onClick) == null ? void 0 : _a.call(props, event);\n if (inFocus) {\n (_c = layoutContext == null ? void 0 : (_b = layoutContext.pin).dispatch) == null ? void 0 : _c.call(_b, {\n msg: \"clear_pin\"\n });\n } else {\n (_e = layoutContext == null ? void 0 : (_d = layoutContext.pin).dispatch) == null ? void 0 : _e.call(_d, {\n msg: \"set_pin\",\n trackReference\n });\n }\n }\n }),\n [props, className, trackReference, inFocus, layoutContext == null ? void 0 : layoutContext.pin]\n );\n return { mergedProps, inFocus };\n}\n\n// src/hooks/useGridLayout.ts\nimport { GRID_LAYOUTS, selectGridLayout } from \"@livekit/components-core\";\nimport * as React16 from \"react\";\nfunction useGridLayout(gridElement, trackCount) {\n const { width, height } = useSize(gridElement);\n const layout = width > 0 && height > 0 ? selectGridLayout(GRID_LAYOUTS, trackCount, width, height) : GRID_LAYOUTS[0];\n React16.useEffect(() => {\n if (gridElement.current && layout) {\n gridElement.current.style.setProperty(\"--lk-col-count\", layout == null ? void 0 : layout.columns.toString());\n gridElement.current.style.setProperty(\"--lk-row-count\", layout == null ? void 0 : layout.rows.toString());\n }\n }, [gridElement, layout]);\n return {\n layout\n };\n}\n\n// src/hooks/useIsMuted.ts\nimport {\n getTrackReferenceId,\n mutedObserver\n} from \"@livekit/components-core\";\nimport * as React17 from \"react\";\nfunction useIsMuted(sourceOrTrackRef, options = {}) {\n var _a, _b;\n const passedParticipant = typeof sourceOrTrackRef === \"string\" ? options.participant : sourceOrTrackRef.participant;\n const p = useEnsureParticipant(passedParticipant);\n const ref = typeof sourceOrTrackRef === \"string\" ? { participant: p, source: sourceOrTrackRef } : sourceOrTrackRef;\n const [isMuted, setIsMuted] = React17.useState(\n !!(((_a = ref.publication) == null ? void 0 : _a.isMuted) || ((_b = p.getTrackPublication(ref.source)) == null ? void 0 : _b.isMuted))\n );\n React17.useEffect(() => {\n const listener = mutedObserver(ref).subscribe(setIsMuted);\n return () => listener.unsubscribe();\n }, [getTrackReferenceId(ref)]);\n return isMuted;\n}\n\n// src/hooks/useIsSpeaking.ts\nimport { createIsSpeakingObserver } from \"@livekit/components-core\";\nimport * as React18 from \"react\";\nfunction useIsSpeaking(participant) {\n const p = useEnsureParticipant(participant);\n const observable = React18.useMemo(() => createIsSpeakingObserver(p), [p]);\n const isSpeaking = useObservableState(observable, p.isSpeaking);\n return isSpeaking;\n}\n\n// src/hooks/useLiveKitRoom.ts\nimport { log, setupLiveKitRoom } from \"@livekit/components-core\";\nimport { Room, MediaDeviceFailure, RoomEvent, ConnectionState as ConnectionState2 } from \"livekit-client\";\nimport * as React19 from \"react\";\nvar defaultRoomProps = {\n connect: true,\n audio: false,\n video: false\n};\nfunction useLiveKitRoom(props) {\n const _a = __spreadValues(__spreadValues({}, defaultRoomProps), props), {\n token,\n serverUrl,\n options,\n room: passedRoom,\n connectOptions,\n connect,\n audio,\n video,\n screen,\n onConnected,\n onDisconnected,\n onError,\n onMediaDeviceFailure,\n onEncryptionError,\n simulateParticipants\n } = _a, rest = __objRest(_a, [\n \"token\",\n \"serverUrl\",\n \"options\",\n \"room\",\n \"connectOptions\",\n \"connect\",\n \"audio\",\n \"video\",\n \"screen\",\n \"onConnected\",\n \"onDisconnected\",\n \"onError\",\n \"onMediaDeviceFailure\",\n \"onEncryptionError\",\n \"simulateParticipants\"\n ]);\n if (options && passedRoom) {\n log.warn(\n \"when using a manually created room, the options object will be ignored. set the desired options directly when creating the room instead.\"\n );\n }\n const [room, setRoom] = React19.useState();\n React19.useEffect(() => {\n setRoom(passedRoom != null ? passedRoom : new Room(options));\n }, [passedRoom]);\n const htmlProps = React19.useMemo(() => {\n const { className } = setupLiveKitRoom();\n return mergeProps(rest, { className });\n }, [rest]);\n React19.useEffect(() => {\n if (!room) return;\n const onSignalConnected = () => {\n const localP = room.localParticipant;\n log.debug(\"trying to publish local tracks\");\n Promise.all([\n localP.setMicrophoneEnabled(!!audio, typeof audio !== \"boolean\" ? audio : void 0),\n localP.setCameraEnabled(!!video, typeof video !== \"boolean\" ? video : void 0),\n localP.setScreenShareEnabled(!!screen, typeof screen !== \"boolean\" ? screen : void 0)\n ]).catch((e) => {\n log.warn(e);\n onError == null ? void 0 : onError(e);\n });\n };\n const handleMediaDeviceError = (e) => {\n const mediaDeviceFailure = MediaDeviceFailure.getFailure(e);\n onMediaDeviceFailure == null ? void 0 : onMediaDeviceFailure(mediaDeviceFailure);\n };\n const handleEncryptionError = (e) => {\n onEncryptionError == null ? void 0 : onEncryptionError(e);\n };\n room.on(RoomEvent.SignalConnected, onSignalConnected).on(RoomEvent.MediaDevicesError, handleMediaDeviceError).on(RoomEvent.EncryptionError, handleEncryptionError);\n return () => {\n room.off(RoomEvent.SignalConnected, onSignalConnected).off(RoomEvent.MediaDevicesError, handleMediaDeviceError).off(RoomEvent.EncryptionError, handleEncryptionError);\n };\n }, [room, audio, video, screen, onError, onEncryptionError, onMediaDeviceFailure]);\n React19.useEffect(() => {\n if (!room) return;\n if (simulateParticipants) {\n room.simulateParticipants({\n participants: {\n count: simulateParticipants\n },\n publish: {\n audio: true,\n useRealTracks: true\n }\n });\n return;\n }\n if (!token) {\n log.debug(\"no token yet\");\n return;\n }\n if (!serverUrl) {\n log.warn(\"no livekit url provided\");\n onError == null ? void 0 : onError(Error(\"no livekit url provided\"));\n return;\n }\n if (connect) {\n log.debug(\"connecting\");\n room.connect(serverUrl, token, connectOptions).catch((e) => {\n log.warn(e);\n onError == null ? void 0 : onError(e);\n });\n } else {\n log.debug(\"disconnecting because connect is false\");\n room.disconnect();\n }\n }, [\n connect,\n token,\n JSON.stringify(connectOptions),\n room,\n onError,\n serverUrl,\n simulateParticipants\n ]);\n React19.useEffect(() => {\n if (!room) return;\n const connectionStateChangeListener = (state) => {\n switch (state) {\n case ConnectionState2.Disconnected:\n if (onDisconnected) onDisconnected();\n break;\n case ConnectionState2.Connected:\n if (onConnected) onConnected();\n break;\n default:\n break;\n }\n };\n room.on(RoomEvent.ConnectionStateChanged, connectionStateChangeListener);\n return () => {\n room.off(RoomEvent.ConnectionStateChanged, connectionStateChangeListener);\n };\n }, [token, onConnected, onDisconnected, room]);\n React19.useEffect(() => {\n if (!room) return;\n return () => {\n log.info(\"disconnecting on onmount\");\n room.disconnect();\n };\n }, [room]);\n return { room, htmlProps };\n}\n\n// src/hooks/useLocalParticipant.ts\nimport { observeParticipantMedia } from \"@livekit/components-core\";\nimport * as React20 from \"react\";\nfunction useLocalParticipant(options = {}) {\n const room = useEnsureRoom(options.room);\n const [localParticipant, setLocalParticipant] = React20.useState(room.localParticipant);\n const [isMicrophoneEnabled, setIsMicrophoneEnabled] = React20.useState(\n localParticipant.isMicrophoneEnabled\n );\n const [isCameraEnabled, setIsCameraEnabled] = React20.useState(\n localParticipant.isMicrophoneEnabled\n );\n const [lastMicrophoneError, setLastMicrophoneError] = React20.useState(\n localParticipant.lastMicrophoneError\n );\n const [lastCameraError, setLastCameraError] = React20.useState(localParticipant.lastCameraError);\n const [isScreenShareEnabled, setIsScreenShareEnabled] = React20.useState(\n localParticipant.isMicrophoneEnabled\n );\n const [microphoneTrack, setMicrophoneTrack] = React20.useState(\n void 0\n );\n const [cameraTrack, setCameraTrack] = React20.useState(void 0);\n const handleUpdate = (media) => {\n setIsCameraEnabled(media.isCameraEnabled);\n setIsMicrophoneEnabled(media.isMicrophoneEnabled);\n setIsScreenShareEnabled(media.isScreenShareEnabled);\n setCameraTrack(media.cameraTrack);\n setMicrophoneTrack(media.microphoneTrack);\n setLastMicrophoneError(media.participant.lastMicrophoneError);\n setLastCameraError(media.participant.lastCameraError);\n setLocalParticipant(media.participant);\n };\n React20.useEffect(() => {\n const listener = observeParticipantMedia(room.localParticipant).subscribe(handleUpdate);\n return () => listener.unsubscribe();\n }, [room]);\n return {\n isMicrophoneEnabled,\n isScreenShareEnabled,\n isCameraEnabled,\n microphoneTrack,\n cameraTrack,\n lastMicrophoneError,\n lastCameraError,\n localParticipant\n };\n}\n\n// src/hooks/useLocalParticipantPermissions.ts\nimport { participantPermissionObserver } from \"@livekit/components-core\";\nimport * as React21 from \"react\";\nfunction useLocalParticipantPermissions() {\n const room = useRoomContext();\n const permissionObserver = React21.useMemo(\n () => participantPermissionObserver(room.localParticipant),\n [room]\n );\n const permissions = useObservableState(permissionObserver, room.localParticipant.permissions);\n return permissions;\n}\n\n// src/hooks/useMediaDeviceSelect.ts\nimport { createMediaDeviceObserver, setupDeviceSelector, log as log2 } from \"@livekit/components-core\";\nimport * as React22 from \"react\";\nfunction useMediaDeviceSelect({\n kind,\n room,\n track,\n requestPermissions,\n onError\n}) {\n const roomContext = useMaybeRoomContext();\n const deviceObserver = React22.useMemo(\n () => createMediaDeviceObserver(kind, onError, requestPermissions),\n [kind, requestPermissions, onError]\n );\n const devices = useObservableState(deviceObserver, []);\n const [currentDeviceId, setCurrentDeviceId] = React22.useState(\"\");\n const { className, activeDeviceObservable, setActiveMediaDevice } = React22.useMemo(\n () => setupDeviceSelector(kind, room != null ? room : roomContext, track),\n [kind, room, roomContext, track]\n );\n React22.useEffect(() => {\n const listener = activeDeviceObservable.subscribe((deviceId) => {\n log2.info(\"setCurrentDeviceId\", deviceId);\n if (deviceId) setCurrentDeviceId(deviceId);\n });\n return () => {\n listener == null ? void 0 : listener.unsubscribe();\n };\n }, [activeDeviceObservable]);\n return { devices, className, activeDeviceId: currentDeviceId, setActiveMediaDevice };\n}\n\n// src/hooks/useMediaDevices.ts\nimport * as React23 from \"react\";\nimport { createMediaDeviceObserver as createMediaDeviceObserver2 } from \"@livekit/components-core\";\nfunction useMediaDevices({\n kind,\n onError\n}) {\n const deviceObserver = React23.useMemo(\n () => createMediaDeviceObserver2(kind, onError),\n [kind, onError]\n );\n const devices = useObservableState(deviceObserver, []);\n return devices;\n}\n\n// src/hooks/usePagination.ts\nimport * as React25 from \"react\";\n\n// src/hooks/useVisualStableUpdate.ts\nimport { log as log3, sortTrackReferences, updatePages } from \"@livekit/components-core\";\nimport * as React24 from \"react\";\nfunction useVisualStableUpdate(trackReferences, maxItemsOnPage, options = {}) {\n const lastTrackRefs = React24.useRef([]);\n const lastMaxItemsOnPage = React24.useRef(-1);\n const layoutChanged = maxItemsOnPage !== lastMaxItemsOnPage.current;\n const sortedTrackRefs = typeof options.customSortFunction === \"function\" ? options.customSortFunction(trackReferences) : sortTrackReferences(trackReferences);\n let updatedTrackRefs = [...sortedTrackRefs];\n if (layoutChanged === false) {\n try {\n updatedTrackRefs = updatePages(lastTrackRefs.current, sortedTrackRefs, maxItemsOnPage);\n } catch (error) {\n log3.error(\"Error while running updatePages(): \", error);\n }\n }\n if (layoutChanged) {\n lastTrackRefs.current = sortedTrackRefs;\n } else {\n lastTrackRefs.current = updatedTrackRefs;\n }\n lastMaxItemsOnPage.current = maxItemsOnPage;\n return updatedTrackRefs;\n}\n\n// src/hooks/usePagination.ts\nfunction usePagination(itemPerPage, trackReferences) {\n const [currentPage, setCurrentPage] = React25.useState(1);\n const totalPageCount = Math.max(Math.ceil(trackReferences.length / itemPerPage), 1);\n if (currentPage > totalPageCount) {\n setCurrentPage(totalPageCount);\n }\n const lastItemIndex = currentPage * itemPerPage;\n const firstItemIndex = lastItemIndex - itemPerPage;\n const changePage = (direction) => {\n setCurrentPage((state) => {\n if (direction === \"next\") {\n if (state === totalPageCount) {\n return state;\n }\n return state + 1;\n } else {\n if (state === 1) {\n return state;\n }\n return state - 1;\n }\n });\n };\n const goToPage = (num) => {\n if (num > totalPageCount) {\n setCurrentPage(totalPageCount);\n } else if (num < 1) {\n setCurrentPage(1);\n } else {\n setCurrentPage(num);\n }\n };\n const updatedTrackReferences = useVisualStableUpdate(trackReferences, itemPerPage);\n const tracksOnPage = updatedTrackReferences.slice(firstItemIndex, lastItemIndex);\n return {\n totalPageCount,\n nextPage: () => changePage(\"next\"),\n prevPage: () => changePage(\"previous\"),\n setPage: goToPage,\n firstItemIndex,\n lastItemIndex,\n tracks: tracksOnPage,\n currentPage\n };\n}\n\n// src/hooks/useParticipantInfo.ts\nimport { participantInfoObserver } from \"@livekit/components-core\";\nimport * as React26 from \"react\";\nfunction useParticipantInfo(props = {}) {\n const p = useEnsureParticipant(props.participant);\n const infoObserver = React26.useMemo(() => participantInfoObserver(p), [p]);\n const { identity, name, metadata } = useObservableState(infoObserver, {\n name: p.name,\n identity: p.identity,\n metadata: p.metadata\n });\n return { identity, name, metadata };\n}\n\n// src/hooks/useParticipantPermissions.ts\nimport { participantPermissionObserver as participantPermissionObserver2 } from \"@livekit/components-core\";\nimport * as React27 from \"react\";\nfunction useParticipantPermissions(options = {}) {\n const p = useEnsureParticipant(options.participant);\n const permissionObserver = React27.useMemo(() => participantPermissionObserver2(p), [p]);\n const permissions = useObservableState(permissionObserver, p.permissions);\n return permissions;\n}\n\n// src/hooks/useParticipantTile.ts\nimport { setupParticipantTile } from \"@livekit/components-core\";\nimport * as React28 from \"react\";\nimport { Track } from \"livekit-client\";\nfunction useParticipantTile({\n trackRef,\n onParticipantClick,\n disableSpeakingIndicator,\n htmlProps\n}) {\n const trackReference = useEnsureTrackRef(trackRef);\n const mergedProps = React28.useMemo(() => {\n const { className } = setupParticipantTile();\n return mergeProps(htmlProps, {\n className,\n onClick: (event) => {\n var _a, _b;\n (_a = htmlProps.onClick) == null ? void 0 : _a.call(htmlProps, event);\n if (typeof onParticipantClick === \"function\") {\n const track = (_b = trackReference.publication) != null ? _b : trackReference.participant.getTrackPublication(trackReference.source);\n onParticipantClick({ participant: trackReference.participant, track });\n }\n }\n });\n }, [\n htmlProps,\n onParticipantClick,\n trackReference.publication,\n trackReference.source,\n trackReference.participant\n ]);\n const micTrack = trackReference.participant.getTrackPublication(Track.Source.Microphone);\n const micRef = React28.useMemo(() => {\n return {\n participant: trackReference.participant,\n source: Track.Source.Microphone,\n publication: micTrack\n };\n }, [micTrack, trackReference.participant]);\n const isVideoMuted = useIsMuted(trackReference);\n const isAudioMuted = useIsMuted(micRef);\n const isSpeaking = useIsSpeaking(trackReference.participant);\n const facingMode = useFacingMode(trackReference);\n return {\n elementProps: __spreadValues({\n \"data-lk-audio-muted\": isAudioMuted,\n \"data-lk-video-muted\": isVideoMuted,\n \"data-lk-speaking\": disableSpeakingIndicator === true ? false : isSpeaking,\n \"data-lk-local-participant\": trackReference.participant.isLocal,\n \"data-lk-source\": trackReference.source,\n \"data-lk-facing-mode\": facingMode\n }, mergedProps)\n };\n}\n\n// src/hooks/useRemoteParticipants.ts\nimport { connectedParticipantsObserver } from \"@livekit/components-core\";\nimport * as React29 from \"react\";\nfunction useRemoteParticipants(options = {}) {\n const room = useEnsureRoom(options.room);\n const [participants, setParticipants] = React29.useState([]);\n React29.useEffect(() => {\n const listener = connectedParticipantsObserver(room, {\n additionalRoomEvents: options.updateOnlyOn\n }).subscribe(setParticipants);\n return () => listener.unsubscribe();\n }, [room, JSON.stringify(options.updateOnlyOn)]);\n return participants;\n}\n\n// src/hooks/useParticipants.ts\nimport * as React30 from \"react\";\nfunction useParticipants(options = {}) {\n const remoteParticipants = useRemoteParticipants(options);\n const { localParticipant } = useLocalParticipant(options);\n return React30.useMemo(\n () => [localParticipant, ...remoteParticipants],\n [localParticipant, remoteParticipants]\n );\n}\n\n// src/hooks/usePinnedTracks.ts\nimport * as React31 from \"react\";\nfunction usePinnedTracks(layoutContext) {\n layoutContext = useEnsureLayoutContext(layoutContext);\n return React31.useMemo(() => {\n if ((layoutContext == null ? void 0 : layoutContext.pin.state) !== void 0 && layoutContext.pin.state.length >= 1) {\n return layoutContext.pin.state;\n }\n return [];\n }, [layoutContext.pin.state]);\n}\n\n// src/hooks/useRemoteParticipant.ts\nimport {\n connectedParticipantObserver,\n participantByIdentifierObserver\n} from \"@livekit/components-core\";\nimport * as React32 from \"react\";\nfunction useRemoteParticipant(identityOrIdentifier, options = {}) {\n const room = useRoomContext();\n const [updateOnlyOn] = React32.useState(options.updateOnlyOn);\n const observable = React32.useMemo(() => {\n if (typeof identityOrIdentifier === \"string\") {\n return connectedParticipantObserver(room, identityOrIdentifier, {\n additionalEvents: updateOnlyOn\n });\n } else {\n return participantByIdentifierObserver(room, identityOrIdentifier, {\n additionalEvents: updateOnlyOn\n });\n }\n }, [room, JSON.stringify(identityOrIdentifier), updateOnlyOn]);\n const [participantWrapper, setParticipantWrapper] = React32.useState({\n p: void 0\n });\n React32.useEffect(() => {\n const listener = observable.subscribe((p) => setParticipantWrapper({ p }));\n return () => listener.unsubscribe();\n }, [observable]);\n return participantWrapper.p;\n}\n\n// src/hooks/useRoomInfo.ts\nimport { roomInfoObserver } from \"@livekit/components-core\";\nimport * as React33 from \"react\";\nfunction useRoomInfo(options = {}) {\n const room = useEnsureRoom(options.room);\n const infoObserver = React33.useMemo(() => roomInfoObserver(room), [room]);\n const { name, metadata } = useObservableState(infoObserver, {\n name: room.name,\n metadata: room.metadata\n });\n return { name, metadata };\n}\n\n// src/hooks/useSortedParticipants.ts\nimport { sortParticipants } from \"@livekit/components-core\";\nimport * as React35 from \"react\";\n\n// src/hooks/useSpeakingParticipants.ts\nimport { activeSpeakerObserver } from \"@livekit/components-core\";\nimport * as React34 from \"react\";\nfunction useSpeakingParticipants() {\n const room = useRoomContext();\n const speakerObserver = React34.useMemo(() => activeSpeakerObserver(room), [room]);\n const activeSpeakers = useObservableState(speakerObserver, room.activeSpeakers);\n return activeSpeakers;\n}\n\n// src/hooks/useSortedParticipants.ts\nfunction useSortedParticipants(participants) {\n const [sortedParticipants, setSortedParticipants] = React35.useState(\n sortParticipants(participants)\n );\n const activeSpeakers = useSpeakingParticipants();\n React35.useEffect(() => {\n setSortedParticipants(sortParticipants(participants));\n }, [activeSpeakers, participants]);\n return sortedParticipants;\n}\n\n// src/hooks/useStartAudio.ts\nimport { setupStartAudio } from \"@livekit/components-core\";\nimport * as React36 from \"react\";\nfunction useStartAudio({ room, props }) {\n const roomEnsured = useEnsureRoom(room);\n const { className, roomAudioPlaybackAllowedObservable: roomAudioPlaybackAllowedObservable2, handleStartAudioPlayback } = React36.useMemo(\n () => setupStartAudio(),\n []\n );\n const observable = React36.useMemo(\n () => roomAudioPlaybackAllowedObservable2(roomEnsured),\n [roomEnsured, roomAudioPlaybackAllowedObservable2]\n );\n const { canPlayAudio } = useObservableState(observable, {\n canPlayAudio: roomEnsured.canPlaybackAudio\n });\n const mergedProps = React36.useMemo(\n () => mergeProps(props, {\n className,\n onClick: () => {\n handleStartAudioPlayback(roomEnsured);\n },\n style: { display: canPlayAudio ? \"none\" : \"block\" }\n }),\n [props, className, canPlayAudio, handleStartAudioPlayback, roomEnsured]\n );\n return { mergedProps, canPlayAudio };\n}\n\n// src/hooks/useStartVideo.ts\nimport { setupStartVideo } from \"@livekit/components-core\";\nimport * as React37 from \"react\";\nfunction useStartVideo({ room, props }) {\n const roomEnsured = useEnsureRoom(room);\n const { className, roomVideoPlaybackAllowedObservable, handleStartVideoPlayback } = React37.useMemo(\n () => setupStartVideo(),\n []\n );\n const observable = React37.useMemo(\n () => roomVideoPlaybackAllowedObservable(roomEnsured),\n [roomEnsured, roomVideoPlaybackAllowedObservable]\n );\n const { canPlayVideo } = useObservableState(observable, {\n canPlayVideo: roomEnsured.canPlaybackVideo\n });\n const mergedProps = React37.useMemo(\n () => mergeProps(props, {\n className,\n onClick: () => {\n handleStartVideoPlayback(roomEnsured);\n },\n style: { display: canPlayVideo ? \"none\" : \"block\" }\n }),\n [props, className, canPlayVideo, handleStartVideoPlayback, roomEnsured]\n );\n return { mergedProps, canPlayVideo };\n}\n\n// src/hooks/useSwipe.ts\nimport * as React38 from \"react\";\nfunction useSwipe(element, options = {}) {\n var _a;\n const touchStart = React38.useRef(null);\n const touchEnd = React38.useRef(null);\n const minSwipeDistance = (_a = options.minSwipeDistance) != null ? _a : 50;\n const onTouchStart = (event) => {\n touchEnd.current = null;\n touchStart.current = event.targetTouches[0].clientX;\n };\n const onTouchMove = (event) => {\n touchEnd.current = event.targetTouches[0].clientX;\n };\n const onTouchEnd = React38.useCallback(() => {\n if (!touchStart.current || !touchEnd.current) {\n return;\n }\n const distance = touchStart.current - touchEnd.current;\n const isLeftSwipe = distance > minSwipeDistance;\n const isRightSwipe = distance < -minSwipeDistance;\n if (isLeftSwipe && options.onLeftSwipe) options.onLeftSwipe();\n if (isRightSwipe && options.onRightSwipe) options.onRightSwipe();\n }, [minSwipeDistance, options]);\n React38.useEffect(() => {\n const elementCopy = element.current;\n if (elementCopy) {\n elementCopy.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n elementCopy.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n elementCopy.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n }\n return () => {\n if (elementCopy) {\n elementCopy.removeEventListener(\"touchstart\", onTouchStart);\n elementCopy.removeEventListener(\"touchmove\", onTouchMove);\n elementCopy.removeEventListener(\"touchend\", onTouchEnd);\n }\n };\n }, [element, onTouchEnd]);\n}\n\n// src/hooks/useChatToggle.ts\nimport { setupChatToggle } from \"@livekit/components-core\";\nimport * as React39 from \"react\";\nfunction useChatToggle({ props }) {\n const { dispatch, state } = useLayoutContext().widget;\n const { className } = React39.useMemo(() => setupChatToggle(), []);\n const mergedProps = React39.useMemo(() => {\n return mergeProps(props, {\n className,\n onClick: () => {\n if (dispatch) dispatch({ msg: \"toggle_chat\" });\n },\n \"aria-pressed\": (state == null ? void 0 : state.showChat) ? \"true\" : \"false\",\n \"data-lk-unread-msgs\": state ? state.unreadMessages < 10 ? state.unreadMessages.toFixed(0) : \"9+\" : \"0\"\n });\n }, [props, className, dispatch, state]);\n return { mergedProps };\n}\n\n// src/hooks/useToken.ts\nimport { log as log4 } from \"@livekit/components-core\";\nimport * as React40 from \"react\";\nfunction useToken(tokenEndpoint, roomName, options = {}) {\n const [token, setToken] = React40.useState(void 0);\n React40.useEffect(() => {\n var _a;\n if (tokenEndpoint === void 0) {\n throw Error(\"token endpoint needs to be defined\");\n }\n if (((_a = options.userInfo) == null ? void 0 : _a.identity) === void 0) {\n return;\n }\n const tokenFetcher = () => __async(this, null, function* () {\n log4.debug(\"fetching token\");\n const params = new URLSearchParams(__spreadProps(__spreadValues({}, options.userInfo), { roomName }));\n const res = yield fetch(`${tokenEndpoint}?${params.toString()}`);\n if (!res.ok) {\n log4.error(\n `Could not fetch token. Server responded with status ${res.status}: ${res.statusText}`\n );\n return;\n }\n const { accessToken } = yield res.json();\n setToken(accessToken);\n });\n tokenFetcher();\n }, [tokenEndpoint, roomName, JSON.stringify(options)]);\n return token;\n}\n\n// src/hooks/useTrackMutedIndicator.ts\nimport {\n setupTrackMutedIndicator,\n getTrackReferenceId as getTrackReferenceId2\n} from \"@livekit/components-core\";\nimport * as React41 from \"react\";\nfunction useTrackMutedIndicator(trackRef) {\n var _a, _b;\n const trackReference = useEnsureTrackRef(trackRef);\n const { className, mediaMutedObserver } = React41.useMemo(\n () => setupTrackMutedIndicator(trackReference),\n [getTrackReferenceId2(trackReference)]\n );\n const isMuted = useObservableState(\n mediaMutedObserver,\n !!(((_a = trackReference.publication) == null ? void 0 : _a.isMuted) || ((_b = trackReference.participant.getTrackPublication(trackReference.source)) == null ? void 0 : _b.isMuted))\n );\n return { isMuted, className };\n}\n\n// src/hooks/useTrackToggle.ts\nimport { setupMediaToggle, setupManualToggle, log as log5 } from \"@livekit/components-core\";\nimport * as React42 from \"react\";\nfunction useTrackToggle(_a) {\n var _b = _a, {\n source,\n onChange,\n initialState,\n captureOptions,\n publishOptions,\n onDeviceError\n } = _b, rest = __objRest(_b, [\n \"source\",\n \"onChange\",\n \"initialState\",\n \"captureOptions\",\n \"publishOptions\",\n \"onDeviceError\"\n ]);\n var _a2;\n const room = useMaybeRoomContext();\n const track = (_a2 = room == null ? void 0 : room.localParticipant) == null ? void 0 : _a2.getTrackPublication(source);\n const userInteractionRef = React42.useRef(false);\n const { toggle, className, pendingObserver, enabledObserver } = React42.useMemo(\n () => room ? setupMediaToggle(source, room, captureOptions, publishOptions, onDeviceError) : setupManualToggle(),\n [room, source, JSON.stringify(captureOptions), publishOptions]\n );\n const pending = useObservableState(pendingObserver, false);\n const enabled = useObservableState(enabledObserver, initialState != null ? initialState : !!(track == null ? void 0 : track.isEnabled));\n React42.useEffect(() => {\n onChange == null ? void 0 : onChange(enabled, userInteractionRef.current);\n userInteractionRef.current = false;\n }, [enabled, onChange]);\n React42.useEffect(() => {\n if (initialState !== void 0) {\n log5.debug(\"forcing initial toggle state\", source, initialState);\n toggle(initialState);\n }\n }, []);\n const newProps = React42.useMemo(() => mergeProps(rest, { className }), [rest, className]);\n const clickHandler = React42.useCallback(\n (evt) => {\n var _a3;\n userInteractionRef.current = true;\n toggle().finally(() => userInteractionRef.current = false);\n (_a3 = rest.onClick) == null ? void 0 : _a3.call(rest, evt);\n },\n [rest, toggle]\n );\n return {\n toggle,\n enabled,\n pending,\n track,\n buttonProps: __spreadProps(__spreadValues({}, newProps), {\n \"aria-pressed\": enabled,\n \"data-lk-source\": source,\n \"data-lk-enabled\": enabled,\n disabled: pending,\n onClick: clickHandler\n })\n };\n}\n\n// src/hooks/useTracks.ts\nimport {\n isSourcesWithOptions,\n isSourceWitOptions,\n log as log6,\n trackReferencesObservable\n} from \"@livekit/components-core\";\nimport { Track as Track2 } from \"livekit-client\";\nimport * as React43 from \"react\";\nfunction useTracks(sources = [\n Track2.Source.Camera,\n Track2.Source.Microphone,\n Track2.Source.ScreenShare,\n Track2.Source.ScreenShareAudio,\n Track2.Source.Unknown\n], options = {}) {\n const room = useEnsureRoom(options.room);\n const [trackReferences, setTrackReferences] = React43.useState([]);\n const [participants, setParticipants] = React43.useState([]);\n const sources_ = React43.useMemo(() => {\n return sources.map((s) => isSourceWitOptions(s) ? s.source : s);\n }, [JSON.stringify(sources)]);\n React43.useEffect(() => {\n const subscription = trackReferencesObservable(room, sources_, {\n additionalRoomEvents: options.updateOnlyOn,\n onlySubscribed: options.onlySubscribed\n }).subscribe(({ trackReferences: trackReferences2, participants: participants2 }) => {\n log6.debug(\"setting track bundles\", trackReferences2, participants2);\n setTrackReferences(trackReferences2);\n setParticipants(participants2);\n });\n return () => subscription.unsubscribe();\n }, [\n room,\n JSON.stringify(options.onlySubscribed),\n JSON.stringify(options.updateOnlyOn),\n JSON.stringify(sources)\n ]);\n const maybeTrackReferences = React43.useMemo(() => {\n if (isSourcesWithOptions(sources)) {\n const requirePlaceholder = requiredPlaceholders(sources, participants);\n const trackReferencesWithPlaceholders = Array.from(trackReferences);\n participants.forEach((participant) => {\n var _a;\n if (requirePlaceholder.has(participant.identity)) {\n const sourcesToAddPlaceholder = (_a = requirePlaceholder.get(participant.identity)) != null ? _a : [];\n sourcesToAddPlaceholder.forEach((placeholderSource) => {\n if (trackReferences.find(\n ({ participant: p, publication }) => participant.identity === p.identity && publication.source === placeholderSource\n )) {\n return;\n }\n log6.debug(\n `Add ${placeholderSource} placeholder for participant ${participant.identity}.`\n );\n const placeholder = {\n participant,\n source: placeholderSource\n };\n trackReferencesWithPlaceholders.push(placeholder);\n });\n }\n });\n return trackReferencesWithPlaceholders;\n } else {\n return trackReferences;\n }\n }, [trackReferences, participants, sources]);\n return maybeTrackReferences;\n}\nfunction difference(setA, setB) {\n const _difference = new Set(setA);\n for (const elem of setB) {\n _difference.delete(elem);\n }\n return _difference;\n}\nfunction requiredPlaceholders(sources, participants) {\n const placeholderMap = /* @__PURE__ */ new Map();\n if (isSourcesWithOptions(sources)) {\n const sourcesThatNeedPlaceholder = sources.filter((sourceWithOption) => sourceWithOption.withPlaceholder).map((sourceWithOption) => sourceWithOption.source);\n participants.forEach((participant) => {\n const sourcesOfSubscribedTracks = participant.getTrackPublications().map((pub) => {\n var _a;\n return (_a = pub.track) == null ? void 0 : _a.source;\n }).filter((trackSource) => trackSource !== void 0);\n const placeholderNeededForThisParticipant = Array.from(\n difference(new Set(sourcesThatNeedPlaceholder), new Set(sourcesOfSubscribedTracks))\n );\n if (placeholderNeededForThisParticipant.length > 0) {\n placeholderMap.set(participant.identity, placeholderNeededForThisParticipant);\n }\n });\n }\n return placeholderMap;\n}\n\n// src/hooks/useTrackRefBySourceOrName.ts\nimport { setupMediaTrack, getTrackByIdentifier } from \"@livekit/components-core\";\nimport * as React44 from \"react\";\nimport { Track as Track3 } from \"livekit-client\";\nfunction useTrackRefBySourceOrName(source) {\n var _a, _b;\n const [publication, setPublication] = React44.useState(getTrackByIdentifier(source));\n const { trackObserver } = React44.useMemo(() => {\n return setupMediaTrack(source);\n }, [(_a = source.participant.sid) != null ? _a : source.participant.identity, source.source]);\n React44.useEffect(() => {\n const subscription = trackObserver.subscribe((publication2) => {\n setPublication(publication2);\n });\n return () => subscription == null ? void 0 : subscription.unsubscribe();\n }, [trackObserver]);\n return {\n participant: source.participant,\n source: (_b = source.source) != null ? _b : Track3.Source.Unknown,\n publication\n };\n}\n\n// src/hooks/useTrackByName.ts\nfunction useTrackByName(name, participant) {\n const p = useEnsureParticipant(participant);\n return useTrackRefBySourceOrName({ name, participant: p });\n}\n\n// src/hooks/useChat.ts\nimport * as React45 from \"react\";\nimport { setupChat } from \"@livekit/components-core\";\nimport { ConnectionState as ConnectionState3 } from \"livekit-client\";\nfunction useChat(options) {\n const room = useRoomContext();\n const connectionState = useConnectionState(room);\n const isDisconnected = React45.useMemo(\n () => connectionState === ConnectionState3.Disconnected,\n [connectionState]\n );\n const setup = React45.useMemo(\n () => setupChat(room, options),\n [room, options, isDisconnected]\n );\n const isSending = useObservableState(setup.isSendingObservable, false);\n const chatMessages = useObservableState(setup.messageObservable, []);\n return { send: setup.send, update: setup.update, chatMessages, isSending };\n}\n\n// src/hooks/usePersistentUserChoices.ts\nimport { loadUserChoices, saveUserChoices } from \"@livekit/components-core\";\nimport * as React46 from \"react\";\nfunction usePersistentUserChoices(options = {}) {\n var _a;\n const [userChoices, setSettings] = React46.useState(\n loadUserChoices(options.defaults, (_a = options.preventLoad) != null ? _a : false)\n );\n const saveAudioInputEnabled = React46.useCallback((isEnabled) => {\n setSettings((prev) => __spreadProps(__spreadValues({}, prev), { audioEnabled: isEnabled }));\n }, []);\n const saveVideoInputEnabled = React46.useCallback((isEnabled) => {\n setSettings((prev) => __spreadProps(__spreadValues({}, prev), { videoEnabled: isEnabled }));\n }, []);\n const saveAudioInputDeviceId = React46.useCallback((deviceId) => {\n setSettings((prev) => __spreadProps(__spreadValues({}, prev), { audioDeviceId: deviceId }));\n }, []);\n const saveVideoInputDeviceId = React46.useCallback((deviceId) => {\n setSettings((prev) => __spreadProps(__spreadValues({}, prev), { videoDeviceId: deviceId }));\n }, []);\n const saveUsername = React46.useCallback((username) => {\n setSettings((prev) => __spreadProps(__spreadValues({}, prev), { username }));\n }, []);\n React46.useEffect(() => {\n var _a2;\n saveUserChoices(userChoices, (_a2 = options.preventSave) != null ? _a2 : false);\n }, [userChoices, options.preventSave]);\n return {\n userChoices,\n saveAudioInputEnabled,\n saveVideoInputEnabled,\n saveAudioInputDeviceId,\n saveVideoInputDeviceId,\n saveUsername\n };\n}\n\n// src/hooks/useIsEncrypted.ts\nimport * as React47 from \"react\";\nimport { LocalParticipant } from \"livekit-client\";\nimport { encryptionStatusObservable } from \"@livekit/components-core\";\nfunction useIsEncrypted(participant, options = {}) {\n const p = useEnsureParticipant(participant);\n const room = useEnsureRoom(options.room);\n const observer = React47.useMemo(() => encryptionStatusObservable(room, p), [room, p]);\n const isEncrypted = useObservableState(\n observer,\n p instanceof LocalParticipant ? p.isE2EEEnabled : p.isEncrypted\n );\n return isEncrypted;\n}\n\n// src/hooks/useTrackVolume.ts\nimport * as React48 from \"react\";\nimport { Track as Track4, createAudioAnalyser } from \"livekit-client\";\nimport {\n isTrackReference\n} from \"@livekit/components-core\";\nfunction useTrackVolume(trackOrTrackReference, options = { fftSize: 32, smoothingTimeConstant: 0 }) {\n const track = isTrackReference(trackOrTrackReference) ? trackOrTrackReference.publication.track : trackOrTrackReference;\n const [volume, setVolume] = React48.useState(0);\n React48.useEffect(() => {\n if (!track || !track.mediaStream) {\n return;\n }\n const { cleanup, analyser } = createAudioAnalyser(track, options);\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Uint8Array(bufferLength);\n const updateVolume = () => {\n analyser.getByteFrequencyData(dataArray);\n let sum = 0;\n for (let i = 0; i < dataArray.length; i++) {\n const a = dataArray[i];\n sum += a * a;\n }\n setVolume(Math.sqrt(sum / dataArray.length) / 255);\n };\n const interval = setInterval(updateVolume, 1e3 / 30);\n return () => {\n cleanup();\n clearInterval(interval);\n };\n }, [track, track == null ? void 0 : track.mediaStream, JSON.stringify(options)]);\n return volume;\n}\nvar normalizeFrequencies = (frequencies) => {\n const normalizeDb = (value) => {\n const minDb = -100;\n const maxDb = -10;\n let db = 1 - Math.max(minDb, Math.min(maxDb, value)) * -1 / 100;\n db = Math.sqrt(db);\n return db;\n };\n return frequencies.map((value) => {\n if (value === -Infinity) {\n return 0;\n }\n return normalizeDb(value);\n });\n};\nvar multibandDefaults = {\n bands: 5,\n loPass: 100,\n hiPass: 600,\n updateInterval: 10,\n analyserOptions: { fftSize: 2048 }\n};\nfunction useMultibandTrackVolume(trackOrTrackReference, options = {}) {\n var _a;\n const track = trackOrTrackReference instanceof Track4 ? trackOrTrackReference : (_a = trackOrTrackReference == null ? void 0 : trackOrTrackReference.publication) == null ? void 0 : _a.track;\n const [frequencyBands, setFrequencyBands] = React48.useState([]);\n const opts = __spreadValues(__spreadValues({}, multibandDefaults), options);\n React48.useEffect(() => {\n if (!track || !(track == null ? void 0 : track.mediaStream)) {\n return;\n }\n const { analyser, cleanup } = createAudioAnalyser(track, opts.analyserOptions);\n const bufferLength = analyser.frequencyBinCount;\n const dataArray = new Float32Array(bufferLength);\n const updateVolume = () => {\n analyser.getFloatFrequencyData(dataArray);\n let frequencies = new Float32Array(dataArray.length);\n for (let i = 0; i < dataArray.length; i++) {\n frequencies[i] = dataArray[i];\n }\n frequencies = frequencies.slice(options.loPass, options.hiPass);\n const normalizedFrequencies = normalizeFrequencies(frequencies);\n const chunkSize = Math.ceil(normalizedFrequencies.length / opts.bands);\n const chunks = [];\n for (let i = 0; i < opts.bands; i++) {\n const summedVolumes = normalizedFrequencies.slice(i * chunkSize, (i + 1) * chunkSize).reduce((acc, val) => acc += val, 0);\n chunks.push(summedVolumes / chunkSize);\n }\n setFrequencyBands(chunks);\n };\n const interval = setInterval(updateVolume, opts.updateInterval);\n return () => {\n cleanup();\n clearInterval(interval);\n };\n }, [track, track == null ? void 0 : track.mediaStream, JSON.stringify(options)]);\n return frequencyBands;\n}\n\n// src/hooks/useParticipantTracks.ts\nimport * as React49 from \"react\";\nimport { participantTracksObservable } from \"@livekit/components-core\";\nfunction useParticipantTracks(sources, participantIdentity) {\n const room = useRoomContext();\n const participantContext = useMaybeParticipantContext();\n const p = participantIdentity ? room.getParticipantByIdentity(participantIdentity) : participantContext;\n const observable = React49.useMemo(\n () => p ? participantTracksObservable(p, { sources }) : void 0,\n [p == null ? void 0 : p.sid, p == null ? void 0 : p.identity, JSON.stringify(sources)]\n );\n const trackRefs = useObservableState(observable, []);\n return trackRefs;\n}\n\n// src/hooks/useTrackTranscription.ts\nimport {\n addMediaTimestampToTranscription as addTimestampsToTranscription,\n dedupeSegments,\n getTrackReferenceId as getTrackReferenceId3,\n trackTranscriptionObserver\n} from \"@livekit/components-core\";\nimport * as React51 from \"react\";\n\n// src/hooks/useTrackSyncTime.ts\nimport * as React50 from \"react\";\nimport { trackSyncTimeObserver } from \"@livekit/components-core\";\nfunction useTrackSyncTime({ publication }) {\n var _a;\n const observable = React50.useMemo(\n () => (publication == null ? void 0 : publication.track) ? trackSyncTimeObserver(publication.track) : void 0,\n [publication == null ? void 0 : publication.track]\n );\n return useObservableState(observable, {\n timestamp: Date.now(),\n rtpTimestamp: (_a = publication == null ? void 0 : publication.track) == null ? void 0 : _a.rtpTimestamp\n });\n}\n\n// src/hooks/useTrackTranscription.ts\nvar TRACK_TRANSCRIPTION_DEFAULTS = {\n bufferSize: 100\n // maxAge: 2_000,\n};\nfunction useTrackTranscription(trackRef, options) {\n const opts = __spreadValues(__spreadValues({}, TRACK_TRANSCRIPTION_DEFAULTS), options);\n const [segments, setSegments] = React51.useState([]);\n const syncTimestamps = useTrackSyncTime(trackRef);\n const handleSegmentMessage = (newSegments) => {\n setSegments(\n (prevSegments) => dedupeSegments(\n prevSegments,\n // when first receiving a segment, add the current media timestamp to it\n newSegments.map((s) => addTimestampsToTranscription(s, syncTimestamps)),\n opts.bufferSize\n )\n );\n };\n React51.useEffect(() => {\n if (!trackRef.publication) {\n return;\n }\n const subscription = trackTranscriptionObserver(trackRef.publication).subscribe((evt) => {\n handleSegmentMessage(...evt);\n });\n return () => {\n subscription.unsubscribe();\n };\n }, [getTrackReferenceId3(trackRef), handleSegmentMessage]);\n return { segments };\n}\n\n// src/hooks/useParticipantAttributes.ts\nimport { participantAttributesObserver } from \"@livekit/components-core\";\nimport * as React52 from \"react\";\nfunction useParticipantAttributes(props = {}) {\n const p = useEnsureParticipant(props.participant);\n const attributeObserver = React52.useMemo(() => participantAttributesObserver(p), [p]);\n const { attributes } = useObservableState(attributeObserver, {\n attributes: p.attributes\n });\n return { attributes };\n}\nfunction useParticipantAttribute(attributeKey, options = {}) {\n const p = useEnsureParticipant(options.participant);\n const [attribute, setAttribute] = React52.useState(p.attributes[attributeKey]);\n React52.useEffect(() => {\n const subscription = participantAttributesObserver(p).subscribe((val) => {\n if (val.changed[attributeKey] !== void 0) {\n setAttribute(val.changed[attributeKey]);\n }\n });\n return () => {\n subscription.unsubscribe();\n };\n }, [p, attributeKey]);\n return attribute;\n}\n\n// src/components/controls/ClearPinButton.tsx\nvar ClearPinButton = /* @__PURE__ */ React53.forwardRef(\n function ClearPinButton2(props, ref) {\n const { buttonProps } = useClearPinButton(props);\n return /* @__PURE__ */ React53.createElement(\"button\", __spreadValues({ ref }, buttonProps), props.children);\n }\n);\n\n// src/components/ConnectionState.tsx\nimport * as React54 from \"react\";\nvar ConnectionState4 = /* @__PURE__ */ React54.forwardRef(\n function ConnectionState5(_a, ref) {\n var _b = _a, { room } = _b, props = __objRest(_b, [\"room\"]);\n const connectionState = useConnectionState(room);\n return /* @__PURE__ */ React54.createElement(\"div\", __spreadValues({ ref }, props), connectionState);\n }\n);\n\n// src/components/controls/ChatToggle.tsx\nimport * as React55 from \"react\";\nvar ChatToggle = /* @__PURE__ */ React55.forwardRef(\n function ChatToggle2(props, ref) {\n const { mergedProps } = useChatToggle({ props });\n return /* @__PURE__ */ React55.createElement(\"button\", __spreadValues({ ref }, mergedProps), props.children);\n }\n);\n\n// src/components/controls/DisconnectButton.tsx\nimport * as React56 from \"react\";\nvar DisconnectButton = /* @__PURE__ */ React56.forwardRef(\n function DisconnectButton2(props, ref) {\n const { buttonProps } = useDisconnectButton(props);\n return /* @__PURE__ */ React56.createElement(\"button\", __spreadValues({ ref }, buttonProps), props.children);\n }\n);\n\n// src/components/controls/FocusToggle.tsx\nimport * as React76 from \"react\";\n\n// src/assets/icons/CameraDisabledIcon.tsx\nimport * as React57 from \"react\";\nvar SvgCameraDisabledIcon = (props) => /* @__PURE__ */ React57.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentColor\" }, props), /* @__PURE__ */ React57.createElement(\"path\", { d: \"M1.354.646a.5.5 0 1 0-.708.708l14 14a.5.5 0 0 0 .708-.708L11 10.293V4.5A1.5 1.5 0 0 0 9.5 3H3.707zM0 4.5a1.5 1.5 0 0 1 .943-1.393l9.532 9.533c-.262.224-.603.36-.975.36h-8A1.5 1.5 0 0 1 0 11.5z\" }), /* @__PURE__ */ React57.createElement(\"path\", { d: \"m15.2 3.6-2.8 2.1a1 1 0 0 0-.4.8v3a1 1 0 0 0 .4.8l2.8 2.1a.5.5 0 0 0 .8-.4V4a.5.5 0 0 0-.8-.4z\" }));\nvar CameraDisabledIcon_default = SvgCameraDisabledIcon;\n\n// src/assets/icons/CameraIcon.tsx\nimport * as React58 from \"react\";\nvar SvgCameraIcon = (props) => /* @__PURE__ */ React58.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentColor\" }, props), /* @__PURE__ */ React58.createElement(\"path\", { d: \"M0 4.5A1.5 1.5 0 0 1 1.5 3h8A1.5 1.5 0 0 1 11 4.5v7A1.5 1.5 0 0 1 9.5 13h-8A1.5 1.5 0 0 1 0 11.5zM15.2 3.6l-2.8 2.1a1 1 0 0 0-.4.8v3a1 1 0 0 0 .4.8l2.8 2.1a.5.5 0 0 0 .8-.4V4a.5.5 0 0 0-.8-.4z\" }));\nvar CameraIcon_default = SvgCameraIcon;\n\n// src/assets/icons/ChatCloseIcon.tsx\nimport * as React59 from \"react\";\nvar SvgChatCloseIcon = (props) => /* @__PURE__ */ React59.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, viewBox: \"0 0 24 24\" }, props), /* @__PURE__ */ React59.createElement(\n \"path\",\n {\n fill: \"#FFF\",\n d: \"M4.99 3.99a1 1 0 0 0-.697 1.717L10.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414L12 13.414l6.293 6.293a1 1 0 1 0 1.414-1.414L13.414 12l6.293-6.293a1 1 0 0 0-.727-1.717 1 1 0 0 0-.687.303L12 10.586 5.707 4.293a1 1 0 0 0-.717-.303z\"\n }\n));\nvar ChatCloseIcon_default = SvgChatCloseIcon;\n\n// src/assets/icons/ChatIcon.tsx\nimport * as React60 from \"react\";\nvar SvgChatIcon = (props) => /* @__PURE__ */ React60.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 18, fill: \"none\" }, props), /* @__PURE__ */ React60.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v13.594a.75.75 0 0 1-1.234.572l-3.691-3.12a1.25 1.25 0 0 0-.807-.296H2.75A2.75 2.75 0 0 1 0 10.75v-8ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v8c0 .69.56 1.25 1.25 1.25h7.518c.65 0 1.279.23 1.775.65l2.457 2.077V2.75c0-.69-.56-1.25-1.25-1.25H2.75Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React60.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M3 4.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5Zm0 2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Z\",\n clipRule: \"evenodd\"\n }\n));\nvar ChatIcon_default = SvgChatIcon;\n\n// src/assets/icons/Chevron.tsx\nimport * as React61 from \"react\";\nvar SvgChevron = (props) => /* @__PURE__ */ React61.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React61.createElement(\n \"path\",\n {\n fill: \"currentcolor\",\n fillRule: \"evenodd\",\n d: \"M5.293 2.293a1 1 0 0 1 1.414 0l4.823 4.823a1.25 1.25 0 0 1 0 1.768l-4.823 4.823a1 1 0 0 1-1.414-1.414L9.586 8 5.293 3.707a1 1 0 0 1 0-1.414z\",\n clipRule: \"evenodd\"\n }\n));\nvar Chevron_default = SvgChevron;\n\n// src/assets/icons/FocusToggleIcon.tsx\nimport * as React62 from \"react\";\nvar SvgFocusToggleIcon = (props) => /* @__PURE__ */ React62.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React62.createElement(\"g\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1.5 }, /* @__PURE__ */ React62.createElement(\"path\", { d: \"M10 1.75h4.25m0 0V6m0-4.25L9 7M6 14.25H1.75m0 0V10m0 4.25L7 9\" })));\nvar FocusToggleIcon_default = SvgFocusToggleIcon;\n\n// src/assets/icons/GearIcon.tsx\nimport * as React63 from \"react\";\nvar SvgGearIcon = (props) => /* @__PURE__ */ React63.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React63.createElement(\n \"path\",\n {\n fill: \"currentcolor\",\n fillRule: \"evenodd\",\n d: \"M8.961.894C8.875-.298 7.125-.298 7.04.894c-.066.912-1.246 1.228-1.76.472-.67-.99-2.186-.115-1.664.96.399.824-.465 1.688-1.288 1.289-1.076-.522-1.95.994-.961 1.665.756.513.44 1.693-.472 1.759-1.192.086-1.192 1.836 0 1.922.912.066 1.228 1.246.472 1.76-.99.67-.115 2.186.96 1.664.824-.399 1.688.465 1.289 1.288-.522 1.076.994 1.95 1.665.961.513-.756 1.693-.44 1.759.472.086 1.192 1.836 1.192 1.922 0 .066-.912 1.246-1.228 1.76-.472.67.99 2.186.115 1.664-.96-.399-.824.465-1.688 1.288-1.289 1.076.522 1.95-.994.961-1.665-.756-.513-.44-1.693.472-1.759 1.192-.086 1.192-1.836 0-1.922-.912-.066-1.228-1.246-.472-1.76.99-.67.115-2.186-.96-1.664-.824.399-1.688-.465-1.289-1.288.522-1.076-.994-1.95-1.665-.961-.513.756-1.693.44-1.759-.472ZM8 13A5 5 0 1 0 8 3a5 5 0 0 0 0 10Z\",\n clipRule: \"evenodd\"\n }\n));\nvar GearIcon_default = SvgGearIcon;\n\n// src/assets/icons/LeaveIcon.tsx\nimport * as React64 from \"react\";\nvar SvgLeaveIcon = (props) => /* @__PURE__ */ React64.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React64.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M2 2.75A2.75 2.75 0 0 1 4.75 0h6.5A2.75 2.75 0 0 1 14 2.75v10.5A2.75 2.75 0 0 1 11.25 16h-6.5A2.75 2.75 0 0 1 2 13.25v-.5a.75.75 0 0 1 1.5 0v.5c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25h-6.5c-.69 0-1.25.56-1.25 1.25v.5a.75.75 0 0 1-1.5 0v-.5Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React64.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M8.78 7.47a.75.75 0 0 1 0 1.06l-2.25 2.25a.75.75 0 1 1-1.06-1.06l.97-.97H1.75a.75.75 0 0 1 0-1.5h4.69l-.97-.97a.75.75 0 0 1 1.06-1.06l2.25 2.25Z\",\n clipRule: \"evenodd\"\n }\n));\nvar LeaveIcon_default = SvgLeaveIcon;\n\n// src/assets/icons/LockLockedIcon.tsx\nimport * as React65 from \"react\";\nvar SvgLockLockedIcon = (props) => /* @__PURE__ */ React65.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React65.createElement(\n \"path\",\n {\n fill: \"currentcolor\",\n fillRule: \"evenodd\",\n d: \"M4 6.104V4a4 4 0 1 1 8 0v2.104c1.154.326 2 1.387 2 2.646v4.5A2.75 2.75 0 0 1 11.25 16h-6.5A2.75 2.75 0 0 1 2 13.25v-4.5c0-1.259.846-2.32 2-2.646ZM5.5 4a2.5 2.5 0 0 1 5 0v2h-5V4Z\",\n clipRule: \"evenodd\"\n }\n));\nvar LockLockedIcon_default = SvgLockLockedIcon;\n\n// src/assets/icons/MicDisabledIcon.tsx\nimport * as React66 from \"react\";\nvar SvgMicDisabledIcon = (props) => /* @__PURE__ */ React66.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentColor\" }, props), /* @__PURE__ */ React66.createElement(\"path\", { d: \"M12.227 11.52a5.477 5.477 0 0 0 1.246-2.97.5.5 0 0 0-.995-.1 4.478 4.478 0 0 1-.962 2.359l-1.07-1.07C10.794 9.247 11 8.647 11 8V3a3 3 0 0 0-6 0v1.293L1.354.646a.5.5 0 1 0-.708.708l14 14a.5.5 0 0 0 .708-.708zM8 12.5c.683 0 1.33-.152 1.911-.425l.743.743c-.649.359-1.378.59-2.154.66V15h2a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1h2v-1.522a5.502 5.502 0 0 1-4.973-4.929.5.5 0 0 1 .995-.098A4.5 4.5 0 0 0 8 12.5z\" }), /* @__PURE__ */ React66.createElement(\"path\", { d: \"M8.743 10.907 5 7.164V8a3 3 0 0 0 3.743 2.907z\" }));\nvar MicDisabledIcon_default = SvgMicDisabledIcon;\n\n// src/assets/icons/MicIcon.tsx\nimport * as React67 from \"react\";\nvar SvgMicIcon = (props) => /* @__PURE__ */ React67.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentColor\" }, props), /* @__PURE__ */ React67.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n d: \"M2.975 8.002a.5.5 0 0 1 .547.449 4.5 4.5 0 0 0 8.956 0 .5.5 0 1 1 .995.098A5.502 5.502 0 0 1 8.5 13.478V15h2a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1h2v-1.522a5.502 5.502 0 0 1-4.973-4.929.5.5 0 0 1 .448-.547z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React67.createElement(\"path\", { d: \"M5 3a3 3 0 1 1 6 0v5a3 3 0 0 1-6 0z\" }));\nvar MicIcon_default = SvgMicIcon;\n\n// src/assets/icons/QualityExcellentIcon.tsx\nimport * as React68 from \"react\";\nvar SvgQualityExcellentIcon = (props) => /* @__PURE__ */ React68.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentcolor\" }, props), /* @__PURE__ */ React68.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React68.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }));\nvar QualityExcellentIcon_default = SvgQualityExcellentIcon;\n\n// src/assets/icons/QualityGoodIcon.tsx\nimport * as React69 from \"react\";\nvar SvgQualityGoodIcon = (props) => /* @__PURE__ */ React69.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentcolor\" }, props), /* @__PURE__ */ React69.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React69.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React69.createElement(\"g\", { opacity: 0.25 }, /* @__PURE__ */ React69.createElement(\"path\", { d: \"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React69.createElement(\"path\", { d: \"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" })));\nvar QualityGoodIcon_default = SvgQualityGoodIcon;\n\n// src/assets/icons/QualityPoorIcon.tsx\nimport * as React70 from \"react\";\nvar SvgQualityPoorIcon = (props) => /* @__PURE__ */ React70.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentcolor\" }, props), /* @__PURE__ */ React70.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React70.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React70.createElement(\"g\", { opacity: 0.25 }, /* @__PURE__ */ React70.createElement(\"path\", { d: \"M6 6.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React70.createElement(\"path\", { d: \"M6 6.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" }), /* @__PURE__ */ React70.createElement(\"path\", { d: \"M12 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5z\" })));\nvar QualityPoorIcon_default = SvgQualityPoorIcon;\n\n// src/assets/icons/QualityUnknownIcon.tsx\nimport * as React71 from \"react\";\nvar SvgQualityUnknownIcon = (props) => /* @__PURE__ */ React71.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"currentColor\" }, props), /* @__PURE__ */ React71.createElement(\"g\", { opacity: 0.25 }, /* @__PURE__ */ React71.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-4Zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-9Zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V.5Z\" }), /* @__PURE__ */ React71.createElement(\"path\", { d: \"M0 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-4Zm6-5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-9Zm6-6a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V.5Z\" })));\nvar QualityUnknownIcon_default = SvgQualityUnknownIcon;\n\n// src/assets/icons/ScreenShareIcon.tsx\nimport * as React72 from \"react\";\nvar SvgScreenShareIcon = (props) => /* @__PURE__ */ React72.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 20, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React72.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M0 2.75A2.75 2.75 0 0 1 2.75 0h14.5A2.75 2.75 0 0 1 20 2.75v10.5A2.75 2.75 0 0 1 17.25 16H2.75A2.75 2.75 0 0 1 0 13.25V2.75ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h14.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25H2.75Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React72.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M9.47 4.22a.75.75 0 0 1 1.06 0l2.25 2.25a.75.75 0 0 1-1.06 1.06l-.97-.97v4.69a.75.75 0 0 1-1.5 0V6.56l-.97.97a.75.75 0 0 1-1.06-1.06l2.25-2.25Z\",\n clipRule: \"evenodd\"\n }\n));\nvar ScreenShareIcon_default = SvgScreenShareIcon;\n\n// src/assets/icons/ScreenShareStopIcon.tsx\nimport * as React73 from \"react\";\nvar SvgScreenShareStopIcon = (props) => /* @__PURE__ */ React73.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 20, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React73.createElement(\"g\", { fill: \"currentColor\" }, /* @__PURE__ */ React73.createElement(\"path\", { d: \"M7.28 4.22a.75.75 0 0 0-1.06 1.06L8.94 8l-2.72 2.72a.75.75 0 1 0 1.06 1.06L10 9.06l2.72 2.72a.75.75 0 1 0 1.06-1.06L11.06 8l2.72-2.72a.75.75 0 0 0-1.06-1.06L10 6.94z\" }), /* @__PURE__ */ React73.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n d: \"M2.75 0A2.75 2.75 0 0 0 0 2.75v10.5A2.75 2.75 0 0 0 2.75 16h14.5A2.75 2.75 0 0 0 20 13.25V2.75A2.75 2.75 0 0 0 17.25 0zM1.5 2.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H2.75c-.69 0-1.25-.56-1.25-1.25z\",\n clipRule: \"evenodd\"\n }\n)));\nvar ScreenShareStopIcon_default = SvgScreenShareStopIcon;\n\n// src/assets/icons/SpinnerIcon.tsx\nimport * as React74 from \"react\";\nvar SvgSpinnerIcon = (props) => /* @__PURE__ */ React74.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M8 0a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0V.75A.75.75 0 0 1 8 0Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M8 12a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 8 12Z\",\n clipRule: \"evenodd\",\n opacity: 0.7\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M12 1.072a.75.75 0 0 1 .274 1.024l-1.25 2.165a.75.75 0 0 1-1.299-.75l1.25-2.165A.75.75 0 0 1 12 1.072Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M6 11.464a.75.75 0 0 1 .274 1.025l-1.25 2.165a.75.75 0 0 1-1.299-.75l1.25-2.165A.75.75 0 0 1 6 11.464Z\",\n clipRule: \"evenodd\",\n opacity: 0.6\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M14.928 4a.75.75 0 0 1-.274 1.025l-2.165 1.25a.75.75 0 1 1-.75-1.3l2.165-1.25A.75.75 0 0 1 14.928 4Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M4.536 10a.75.75 0 0 1-.275 1.024l-2.165 1.25a.75.75 0 0 1-.75-1.298l2.165-1.25A.75.75 0 0 1 4.536 10Z\",\n clipRule: \"evenodd\",\n opacity: 0.5\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M16 8a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h2.5A.75.75 0 0 1 16 8Z\",\n clipRule: \"evenodd\"\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M4 8a.75.75 0 0 1-.75.75H.75a.75.75 0 0 1 0-1.5h2.5A.75.75 0 0 1 4 8Z\",\n clipRule: \"evenodd\",\n opacity: 0.4\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M14.928 12a.75.75 0 0 1-1.024.274l-2.165-1.25a.75.75 0 0 1 .75-1.299l2.165 1.25A.75.75 0 0 1 14.928 12Z\",\n clipRule: \"evenodd\",\n opacity: 0.9\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M4.536 6a.75.75 0 0 1-1.025.275l-2.165-1.25a.75.75 0 1 1 .75-1.3l2.165 1.25A.75.75 0 0 1 4.536 6Z\",\n clipRule: \"evenodd\",\n opacity: 0.3\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M12 14.928a.75.75 0 0 1-1.024-.274l-1.25-2.165a.75.75 0 0 1 1.298-.75l1.25 2.165A.75.75 0 0 1 12 14.928Z\",\n clipRule: \"evenodd\",\n opacity: 0.8\n }\n), /* @__PURE__ */ React74.createElement(\n \"path\",\n {\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n d: \"M6 4.536a.75.75 0 0 1-1.024-.275l-1.25-2.165a.75.75 0 1 1 1.299-.75l1.25 2.165A.75.75 0 0 1 6 4.536Z\",\n clipRule: \"evenodd\",\n opacity: 0.2\n }\n));\nvar SpinnerIcon_default = SvgSpinnerIcon;\n\n// src/assets/icons/UnfocusToggleIcon.tsx\nimport * as React75 from \"react\";\nvar SvgUnfocusToggleIcon = (props) => /* @__PURE__ */ React75.createElement(\"svg\", __spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\" }, props), /* @__PURE__ */ React75.createElement(\"g\", { stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1.5 }, /* @__PURE__ */ React75.createElement(\"path\", { d: \"M13.25 7H9m0 0V2.75M9 7l5.25-5.25M2.75 9H7m0 0v4.25M7 9l-5.25 5.25\" })));\nvar UnfocusToggleIcon_default = SvgUnfocusToggleIcon;\n\n// src/components/controls/FocusToggle.tsx\nvar FocusToggle = /* @__PURE__ */ React76.forwardRef(\n function FocusToggle2(_a, ref) {\n var _b = _a, { trackRef } = _b, props = __objRest(_b, [\"trackRef\"]);\n const trackRefFromContext = useMaybeTrackRefContext();\n const { mergedProps, inFocus } = useFocusToggle({\n trackRef: trackRef != null ? trackRef : trackRefFromContext,\n props\n });\n return /* @__PURE__ */ React76.createElement(LayoutContext.Consumer, null, (layoutContext) => layoutContext !== void 0 && /* @__PURE__ */ React76.createElement(\"button\", __spreadValues({ ref }, mergedProps), props.children ? props.children : inFocus ? /* @__PURE__ */ React76.createElement(UnfocusToggleIcon_default, null) : /* @__PURE__ */ React76.createElement(FocusToggleIcon_default, null)));\n }\n);\n\n// src/components/controls/MediaDeviceSelect.tsx\nimport * as React78 from \"react\";\n\n// src/utils.ts\nimport * as React77 from \"react\";\nimport { log as log7 } from \"@livekit/components-core\";\nfunction isProp(prop) {\n return prop !== void 0;\n}\nfunction mergeProps2(...props) {\n return mergeProps(...props.filter(isProp));\n}\nfunction cloneSingleChild(children, props, key) {\n return React77.Children.map(children, (child) => {\n if (React77.isValidElement(child) && React77.Children.only(children)) {\n return React77.cloneElement(child, __spreadProps(__spreadValues({}, props), { key }));\n }\n return child;\n });\n}\nfunction warnAboutMissingStyles(el) {\n var _a, _b;\n if (typeof window !== \"undefined\" && typeof process !== \"undefined\" && // eslint-disable-next-line turbo/no-undeclared-env-vars\n (((_a = process == null ? void 0 : process.env) == null ? void 0 : _a.NODE_ENV) === \"dev\" || // eslint-disable-next-line turbo/no-undeclared-env-vars\n ((_b = process == null ? void 0 : process.env) == null ? void 0 : _b.NODE_ENV) === \"development\")) {\n const target = el != null ? el : document.querySelector(\".lk-room-container\");\n if (target && !getComputedStyle(target).getPropertyValue(\"--lk-has-imported-styles\")) {\n log7.warn(\n \"It looks like you're not using the `@livekit/components-styles package`. To render the UI with the default styling, please import it in your layout or page.\"\n );\n }\n }\n}\n\n// src/components/controls/MediaDeviceSelect.tsx\nimport { RoomEvent as RoomEvent2 } from \"livekit-client\";\nvar MediaDeviceSelect = /* @__PURE__ */ React78.forwardRef(\n function MediaDeviceSelect2(_a, ref) {\n var _b = _a, {\n kind,\n initialSelection,\n onActiveDeviceChange,\n onDeviceListChange,\n onDeviceSelectError,\n exactMatch,\n track,\n requestPermissions,\n onError\n } = _b, props = __objRest(_b, [\n \"kind\",\n \"initialSelection\",\n \"onActiveDeviceChange\",\n \"onDeviceListChange\",\n \"onDeviceSelectError\",\n \"exactMatch\",\n \"track\",\n \"requestPermissions\",\n \"onError\"\n ]);\n const room = useMaybeRoomContext();\n const handleError = React78.useCallback(\n (e) => {\n if (room) {\n room.emit(RoomEvent2.MediaDevicesError, e);\n }\n onError == null ? void 0 : onError(e);\n },\n [room, onError]\n );\n const { devices, activeDeviceId, setActiveMediaDevice, className } = useMediaDeviceSelect({\n kind,\n room,\n track,\n requestPermissions,\n onError: handleError\n });\n React78.useEffect(() => {\n if (initialSelection !== void 0) {\n setActiveMediaDevice(initialSelection);\n }\n }, [setActiveMediaDevice]);\n React78.useEffect(() => {\n if (typeof onDeviceListChange === \"function\") {\n onDeviceListChange(devices);\n }\n }, [onDeviceListChange, devices]);\n React78.useEffect(() => {\n if (activeDeviceId && activeDeviceId !== \"\") {\n onActiveDeviceChange == null ? void 0 : onActiveDeviceChange(activeDeviceId);\n }\n }, [activeDeviceId]);\n const handleActiveDeviceChange = (deviceId) => __async(this, null, function* () {\n try {\n yield setActiveMediaDevice(deviceId, { exact: exactMatch });\n } catch (e) {\n if (e instanceof Error) {\n onDeviceSelectError == null ? void 0 : onDeviceSelectError(e);\n } else {\n throw e;\n }\n }\n });\n const mergedProps = React78.useMemo(\n () => mergeProps2(props, { className }, { className: \"lk-list\" }),\n [className, props]\n );\n function isActive(deviceId, activeDeviceId2, index) {\n return deviceId === activeDeviceId2 || index === 0 && activeDeviceId2 === \"default\";\n }\n return /* @__PURE__ */ React78.createElement(\"ul\", __spreadValues({ ref }, mergedProps), devices.map((device, index) => /* @__PURE__ */ React78.createElement(\n \"li\",\n {\n key: device.deviceId,\n id: device.deviceId,\n \"data-lk-active\": isActive(device.deviceId, activeDeviceId, index),\n \"aria-selected\": isActive(device.deviceId, activeDeviceId, index),\n role: \"option\"\n },\n /* @__PURE__ */ React78.createElement(\"button\", { className: \"lk-button\", onClick: () => handleActiveDeviceChange(device.deviceId) }, device.label)\n )));\n }\n);\n\n// src/components/controls/StartAudio.tsx\nimport * as React79 from \"react\";\nvar StartAudio = /* @__PURE__ */ React79.forwardRef(\n function StartAudio2(_a, ref) {\n var _b = _a, { label = \"Allow Audio\" } = _b, props = __objRest(_b, [\"label\"]);\n const room = useRoomContext();\n const { mergedProps } = useStartAudio({ room, props });\n return /* @__PURE__ */ React79.createElement(\"button\", __spreadValues({ ref }, mergedProps), label);\n }\n);\n\n// src/components/controls/TrackToggle.tsx\nimport * as React81 from \"react\";\n\n// src/assets/icons/util.tsx\nimport * as React80 from \"react\";\nimport { ConnectionQuality as ConnectionQuality2, Track as Track5 } from \"livekit-client\";\nfunction getSourceIcon(source, enabled) {\n switch (source) {\n case Track5.Source.Microphone:\n return enabled ? /* @__PURE__ */ React80.createElement(MicIcon_default, null) : /* @__PURE__ */ React80.createElement(MicDisabledIcon_default, null);\n case Track5.Source.Camera:\n return enabled ? /* @__PURE__ */ React80.createElement(CameraIcon_default, null) : /* @__PURE__ */ React80.createElement(CameraDisabledIcon_default, null);\n case Track5.Source.ScreenShare:\n return enabled ? /* @__PURE__ */ React80.createElement(ScreenShareStopIcon_default, null) : /* @__PURE__ */ React80.createElement(ScreenShareIcon_default, null);\n default:\n return void 0;\n }\n}\nfunction getConnectionQualityIcon(quality) {\n switch (quality) {\n case ConnectionQuality2.Excellent:\n return /* @__PURE__ */ React80.createElement(QualityExcellentIcon_default, null);\n case ConnectionQuality2.Good:\n return /* @__PURE__ */ React80.createElement(QualityGoodIcon_default, null);\n case ConnectionQuality2.Poor:\n return /* @__PURE__ */ React80.createElement(QualityPoorIcon_default, null);\n default:\n return /* @__PURE__ */ React80.createElement(QualityUnknownIcon_default, null);\n }\n}\n\n// src/components/controls/TrackToggle.tsx\nvar TrackToggle = /* @__PURE__ */ React81.forwardRef(function TrackToggle2(_a, ref) {\n var _b = _a, { showIcon } = _b, props = __objRest(_b, [\"showIcon\"]);\n const { buttonProps, enabled } = useTrackToggle(props);\n return /* @__PURE__ */ React81.createElement(\"button\", __spreadValues({ ref }, buttonProps), (showIcon != null ? showIcon : true) && getSourceIcon(props.source, enabled), props.children);\n});\n\n// src/components/layout/FocusLayout.tsx\nimport * as React90 from \"react\";\n\n// src/components/participant/ParticipantTile.tsx\nimport * as React89 from \"react\";\nimport { Track as Track6 } from \"livekit-client\";\nimport { isTrackReference as isTrackReference3, isTrackReferencePinned as isTrackReferencePinned2 } from \"@livekit/components-core\";\n\n// src/components/participant/ConnectionQualityIndicator.tsx\nimport * as React82 from \"react\";\nvar ConnectionQualityIndicator = /* @__PURE__ */ React82.forwardRef(function ConnectionQualityIndicator2(props, ref) {\n var _a;\n const { className, quality } = useConnectionQualityIndicator(props);\n const elementProps = React82.useMemo(() => {\n return __spreadProps(__spreadValues({}, mergeProps2(props, { className })), { \"data-lk-quality\": quality });\n }, [quality, props, className]);\n return /* @__PURE__ */ React82.createElement(\"div\", __spreadValues({ ref }, elementProps), (_a = props.children) != null ? _a : getConnectionQualityIcon(quality));\n});\n\n// src/components/participant/ParticipantName.tsx\nimport { setupParticipantName } from \"@livekit/components-core\";\nimport * as React83 from \"react\";\nvar ParticipantName = /* @__PURE__ */ React83.forwardRef(\n function ParticipantName2(_a, ref) {\n var _b = _a, { participant } = _b, props = __objRest(_b, [\"participant\"]);\n const p = useEnsureParticipant(participant);\n const { className, infoObserver } = React83.useMemo(() => {\n return setupParticipantName(p);\n }, [p]);\n const { identity, name } = useObservableState(infoObserver, {\n name: p.name,\n identity: p.identity,\n metadata: p.metadata\n });\n const mergedProps = React83.useMemo(() => {\n return mergeProps2(props, { className, \"data-lk-participant-name\": name });\n }, [props, className, name]);\n return /* @__PURE__ */ React83.createElement(\"span\", __spreadValues({ ref }, mergedProps), name !== \"\" ? name : identity, props.children);\n }\n);\n\n// src/components/participant/TrackMutedIndicator.tsx\nimport * as React84 from \"react\";\nvar TrackMutedIndicator = /* @__PURE__ */ React84.forwardRef(\n function TrackMutedIndicator2(_a, ref) {\n var _b = _a, { trackRef, show = \"always\" } = _b, props = __objRest(_b, [\"trackRef\", \"show\"]);\n var _a2;\n const { className, isMuted } = useTrackMutedIndicator(trackRef);\n const showIndicator = show === \"always\" || show === \"muted\" && isMuted || show === \"unmuted\" && !isMuted;\n const htmlProps = React84.useMemo(\n () => mergeProps2(props, {\n className\n }),\n [className, props]\n );\n if (!showIndicator) {\n return null;\n }\n return /* @__PURE__ */ React84.createElement(\"div\", __spreadProps(__spreadValues({ ref }, htmlProps), { \"data-lk-muted\": isMuted }), (_a2 = props.children) != null ? _a2 : getSourceIcon(trackRef.source, !isMuted));\n }\n);\n\n// src/assets/images/ParticipantPlaceholder.tsx\nimport * as React85 from \"react\";\nvar SvgParticipantPlaceholder = (props) => /* @__PURE__ */ React85.createElement(\n \"svg\",\n __spreadValues({\n width: 320,\n height: 320,\n viewBox: \"0 0 320 320\",\n preserveAspectRatio: \"xMidYMid meet\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props),\n /* @__PURE__ */ React85.createElement(\n \"path\",\n {\n d: \"M160 180C204.182 180 240 144.183 240 100C240 55.8172 204.182 20 160 20C115.817 20 79.9997 55.8172 79.9997 100C79.9997 144.183 115.817 180 160 180Z\",\n fill: \"white\",\n fillOpacity: 0.25\n }\n ),\n /* @__PURE__ */ React85.createElement(\n \"path\",\n {\n d: \"M97.6542 194.614C103.267 191.818 109.841 192.481 115.519 195.141C129.025 201.466 144.1 205 159.999 205C175.899 205 190.973 201.466 204.48 195.141C210.158 192.481 216.732 191.818 222.345 194.614C262.703 214.719 291.985 253.736 298.591 300.062C300.15 310.997 291.045 320 280 320H39.9997C28.954 320 19.8495 310.997 21.4087 300.062C28.014 253.736 57.2966 214.72 97.6542 194.614Z\",\n fill: \"white\",\n fillOpacity: 0.25\n }\n )\n);\nvar ParticipantPlaceholder_default = SvgParticipantPlaceholder;\n\n// src/components/participant/VideoTrack.tsx\nimport { RemoteTrackPublication } from \"livekit-client\";\nimport * as React87 from \"react\";\n\n// src/hooks/useMediaTrackBySourceOrName.ts\nimport { isTrackReference as isTrackReference2 } from \"@livekit/components-core\";\nimport { setupMediaTrack as setupMediaTrack2, log as log8, isLocal, getTrackByIdentifier as getTrackByIdentifier2 } from \"@livekit/components-core\";\nimport * as React86 from \"react\";\nfunction useMediaTrackBySourceOrName(observerOptions, options = {}) {\n var _a;\n const [publication, setPublication] = React86.useState(getTrackByIdentifier2(observerOptions));\n const [isMuted, setMuted] = React86.useState(publication == null ? void 0 : publication.isMuted);\n const [isSubscribed, setSubscribed] = React86.useState(publication == null ? void 0 : publication.isSubscribed);\n const [track, setTrack] = React86.useState(publication == null ? void 0 : publication.track);\n const [orientation, setOrientation] = React86.useState(\"landscape\");\n const previousElement = React86.useRef();\n const { className, trackObserver } = React86.useMemo(() => {\n return setupMediaTrack2(observerOptions);\n }, [\n (_a = observerOptions.participant.sid) != null ? _a : observerOptions.participant.identity,\n observerOptions.source,\n isTrackReference2(observerOptions) && observerOptions.publication.trackSid\n ]);\n React86.useEffect(() => {\n const subscription = trackObserver.subscribe((publication2) => {\n log8.debug(\"update track\", publication2);\n setPublication(publication2);\n setMuted(publication2 == null ? void 0 : publication2.isMuted);\n setSubscribed(publication2 == null ? void 0 : publication2.isSubscribed);\n setTrack(publication2 == null ? void 0 : publication2.track);\n });\n return () => subscription == null ? void 0 : subscription.unsubscribe();\n }, [trackObserver]);\n React86.useEffect(() => {\n var _a2, _b;\n if (track) {\n if (previousElement.current) {\n track.detach(previousElement.current);\n }\n if (((_a2 = options.element) == null ? void 0 : _a2.current) && !(isLocal(observerOptions.participant) && (track == null ? void 0 : track.kind) === \"audio\")) {\n track.attach(options.element.current);\n }\n }\n previousElement.current = (_b = options.element) == null ? void 0 : _b.current;\n return () => {\n if (previousElement.current) {\n track == null ? void 0 : track.detach(previousElement.current);\n }\n };\n }, [track, options.element]);\n React86.useEffect(() => {\n var _a2, _b;\n if (typeof ((_a2 = publication == null ? void 0 : publication.dimensions) == null ? void 0 : _a2.width) === \"number\" && typeof ((_b = publication == null ? void 0 : publication.dimensions) == null ? void 0 : _b.height) === \"number\") {\n const orientation_ = publication.dimensions.width > publication.dimensions.height ? \"landscape\" : \"portrait\";\n setOrientation(orientation_);\n }\n }, [publication]);\n return {\n publication,\n isMuted,\n isSubscribed,\n track,\n elementProps: mergeProps2(options.props, __spreadValues({\n className,\n \"data-lk-local-participant\": observerOptions.participant.isLocal,\n \"data-lk-source\": publication == null ? void 0 : publication.source\n }, (publication == null ? void 0 : publication.kind) === \"video\" && { \"data-lk-orientation\": orientation }))\n };\n}\n\n// src/components/participant/VideoTrack.tsx\nimport * as useHooks from \"usehooks-ts\";\nvar VideoTrack = /* @__PURE__ */ React87.forwardRef(\n function VideoTrack2(_a, ref) {\n var _b = _a, {\n onTrackClick,\n onClick,\n onSubscriptionStatusChanged,\n trackRef,\n manageSubscription\n } = _b, props = __objRest(_b, [\n \"onTrackClick\",\n \"onClick\",\n \"onSubscriptionStatusChanged\",\n \"trackRef\",\n \"manageSubscription\"\n ]);\n const trackReference = useEnsureTrackRef(trackRef);\n const mediaEl = React87.useRef(null);\n React87.useImperativeHandle(ref, () => mediaEl.current);\n const intersectionEntry = useHooks.useIntersectionObserver({ root: mediaEl.current });\n const [debouncedIntersectionEntry] = useHooks.useDebounceValue(intersectionEntry, 3e3);\n React87.useEffect(() => {\n if (manageSubscription && trackReference.publication instanceof RemoteTrackPublication && (debouncedIntersectionEntry == null ? void 0 : debouncedIntersectionEntry.isIntersecting) === false && (intersectionEntry == null ? void 0 : intersectionEntry.isIntersecting) === false) {\n trackReference.publication.setSubscribed(false);\n }\n }, [debouncedIntersectionEntry, trackReference, manageSubscription]);\n React87.useEffect(() => {\n if (manageSubscription && trackReference.publication instanceof RemoteTrackPublication && (intersectionEntry == null ? void 0 : intersectionEntry.isIntersecting) === true) {\n trackReference.publication.setSubscribed(true);\n }\n }, [intersectionEntry, trackReference, manageSubscription]);\n const {\n elementProps,\n publication: pub,\n isSubscribed\n } = useMediaTrackBySourceOrName(trackReference, {\n element: mediaEl,\n props\n });\n React87.useEffect(() => {\n onSubscriptionStatusChanged == null ? void 0 : onSubscriptionStatusChanged(!!isSubscribed);\n }, [isSubscribed, onSubscriptionStatusChanged]);\n const clickHandler = (evt) => {\n onClick == null ? void 0 : onClick(evt);\n onTrackClick == null ? void 0 : onTrackClick({ participant: trackReference == null ? void 0 : trackReference.participant, track: pub });\n };\n return /* @__PURE__ */ React87.createElement(\"video\", __spreadProps(__spreadValues({ ref: mediaEl }, elementProps), { muted: true, onClick: clickHandler }));\n }\n);\n\n// src/components/participant/AudioTrack.tsx\nimport * as React88 from \"react\";\nimport { log as log9 } from \"@livekit/components-core\";\nimport { RemoteAudioTrack, RemoteTrackPublication as RemoteTrackPublication2 } from \"livekit-client\";\nvar AudioTrack = /* @__PURE__ */ React88.forwardRef(\n function AudioTrack2(_a, ref) {\n var _b = _a, { trackRef, onSubscriptionStatusChanged, volume, muted } = _b, props = __objRest(_b, [\"trackRef\", \"onSubscriptionStatusChanged\", \"volume\", \"muted\"]);\n const trackReference = useEnsureTrackRef(trackRef);\n const mediaEl = React88.useRef(null);\n React88.useImperativeHandle(ref, () => mediaEl.current);\n const {\n elementProps,\n isSubscribed,\n track,\n publication: pub\n } = useMediaTrackBySourceOrName(trackReference, {\n element: mediaEl,\n props\n });\n React88.useEffect(() => {\n onSubscriptionStatusChanged == null ? void 0 : onSubscriptionStatusChanged(!!isSubscribed);\n }, [isSubscribed, onSubscriptionStatusChanged]);\n React88.useEffect(() => {\n if (track === void 0 || volume === void 0) {\n return;\n }\n if (track instanceof RemoteAudioTrack) {\n track.setVolume(volume);\n } else {\n log9.warn(\"Volume can only be set on remote audio tracks.\");\n }\n }, [volume, track]);\n React88.useEffect(() => {\n if (pub === void 0 || muted === void 0) {\n return;\n }\n if (pub instanceof RemoteTrackPublication2) {\n pub.setEnabled(!muted);\n } else {\n log9.warn(\"Can only call setEnabled on remote track publications.\");\n }\n }, [muted, pub, track]);\n return /* @__PURE__ */ React88.createElement(\"audio\", __spreadValues({ ref: mediaEl }, elementProps));\n }\n);\n\n// src/components/participant/ParticipantTile.tsx\nfunction ParticipantContextIfNeeded(props) {\n const hasContext = !!useMaybeParticipantContext();\n return props.participant && !hasContext ? /* @__PURE__ */ React89.createElement(ParticipantContext.Provider, { value: props.participant }, props.children) : /* @__PURE__ */ React89.createElement(React89.Fragment, null, props.children);\n}\nfunction TrackRefContextIfNeeded(props) {\n const hasContext = !!useMaybeTrackRefContext();\n return props.trackRef && !hasContext ? /* @__PURE__ */ React89.createElement(TrackRefContext.Provider, { value: props.trackRef }, props.children) : /* @__PURE__ */ React89.createElement(React89.Fragment, null, props.children);\n}\nvar ParticipantTile = /* @__PURE__ */ React89.forwardRef(\n function ParticipantTile2(_a, ref) {\n var _b = _a, {\n trackRef,\n children,\n onParticipantClick,\n disableSpeakingIndicator\n } = _b, htmlProps = __objRest(_b, [\n \"trackRef\",\n \"children\",\n \"onParticipantClick\",\n \"disableSpeakingIndicator\"\n ]);\n var _a2, _b2;\n const trackReference = useEnsureTrackRef(trackRef);\n const { elementProps } = useParticipantTile({\n htmlProps,\n disableSpeakingIndicator,\n onParticipantClick,\n trackRef: trackReference\n });\n const isEncrypted = useIsEncrypted(trackReference.participant);\n const layoutContext = useMaybeLayoutContext();\n const autoManageSubscription = (_a2 = useFeatureContext()) == null ? void 0 : _a2.autoSubscription;\n const handleSubscribe = React89.useCallback(\n (subscribed) => {\n if (trackReference.source && !subscribed && layoutContext && layoutContext.pin.dispatch && isTrackReferencePinned2(trackReference, layoutContext.pin.state)) {\n layoutContext.pin.dispatch({ msg: \"clear_pin\" });\n }\n },\n [trackReference, layoutContext]\n );\n return /* @__PURE__ */ React89.createElement(\"div\", __spreadValues({ ref, style: { position: \"relative\" } }, elementProps), /* @__PURE__ */ React89.createElement(TrackRefContextIfNeeded, { trackRef: trackReference }, /* @__PURE__ */ React89.createElement(ParticipantContextIfNeeded, { participant: trackReference.participant }, children != null ? children : /* @__PURE__ */ React89.createElement(React89.Fragment, null, isTrackReference3(trackReference) && (((_b2 = trackReference.publication) == null ? void 0 : _b2.kind) === \"video\" || trackReference.source === Track6.Source.Camera || trackReference.source === Track6.Source.ScreenShare) ? /* @__PURE__ */ React89.createElement(\n VideoTrack,\n {\n trackRef: trackReference,\n onSubscriptionStatusChanged: handleSubscribe,\n manageSubscription: autoManageSubscription\n }\n ) : isTrackReference3(trackReference) && /* @__PURE__ */ React89.createElement(\n AudioTrack,\n {\n trackRef: trackReference,\n onSubscriptionStatusChanged: handleSubscribe\n }\n ), /* @__PURE__ */ React89.createElement(\"div\", { className: \"lk-participant-placeholder\" }, /* @__PURE__ */ React89.createElement(ParticipantPlaceholder_default, null)), /* @__PURE__ */ React89.createElement(\"div\", { className: \"lk-participant-metadata\" }, /* @__PURE__ */ React89.createElement(\"div\", { className: \"lk-participant-metadata-item\" }, trackReference.source === Track6.Source.Camera ? /* @__PURE__ */ React89.createElement(React89.Fragment, null, isEncrypted && /* @__PURE__ */ React89.createElement(LockLockedIcon_default, { style: { marginRight: \"0.25rem\" } }), /* @__PURE__ */ React89.createElement(\n TrackMutedIndicator,\n {\n trackRef: {\n participant: trackReference.participant,\n source: Track6.Source.Microphone\n },\n show: \"muted\"\n }\n ), /* @__PURE__ */ React89.createElement(ParticipantName, null)) : /* @__PURE__ */ React89.createElement(React89.Fragment, null, /* @__PURE__ */ React89.createElement(ScreenShareIcon_default, { style: { marginRight: \"0.25rem\" } }), /* @__PURE__ */ React89.createElement(ParticipantName, null, \"'s screen\"))), /* @__PURE__ */ React89.createElement(ConnectionQualityIndicator, { className: \"lk-participant-metadata-item\" }))), /* @__PURE__ */ React89.createElement(FocusToggle, { trackRef: trackReference }))));\n }\n);\n\n// src/components/layout/FocusLayout.tsx\nfunction FocusLayoutContainer(props) {\n const elementProps = mergeProps2(props, { className: \"lk-focus-layout\" });\n return /* @__PURE__ */ React90.createElement(\"div\", __spreadValues({}, elementProps), props.children);\n}\nfunction FocusLayout(_a) {\n var _b = _a, { trackRef } = _b, htmlProps = __objRest(_b, [\"trackRef\"]);\n return /* @__PURE__ */ React90.createElement(ParticipantTile, __spreadValues({ trackRef }, htmlProps));\n}\n\n// src/components/layout/GridLayout.tsx\nimport * as React94 from \"react\";\n\n// src/components/TrackLoop.tsx\nimport * as React91 from \"react\";\nimport { getTrackReferenceId as getTrackReferenceId4 } from \"@livekit/components-core\";\nfunction TrackLoop(_a) {\n var _b = _a, { tracks } = _b, props = __objRest(_b, [\"tracks\"]);\n return /* @__PURE__ */ React91.createElement(React91.Fragment, null, tracks.map((trackReference) => {\n return /* @__PURE__ */ React91.createElement(\n TrackRefContext.Provider,\n {\n value: trackReference,\n key: getTrackReferenceId4(trackReference)\n },\n cloneSingleChild(props.children)\n );\n }));\n}\n\n// src/components/controls/PaginationControl.tsx\nimport * as React92 from \"react\";\nimport { createInteractingObservable } from \"@livekit/components-core\";\nfunction PaginationControl({\n totalPageCount,\n nextPage,\n prevPage,\n currentPage,\n pagesContainer: connectedElement\n}) {\n const [interactive, setInteractive] = React92.useState(false);\n React92.useEffect(() => {\n let subscription;\n if (connectedElement) {\n subscription = createInteractingObservable(connectedElement.current, 2e3).subscribe(\n setInteractive\n );\n }\n return () => {\n if (subscription) {\n subscription.unsubscribe();\n }\n };\n }, [connectedElement]);\n return /* @__PURE__ */ React92.createElement(\"div\", { className: \"lk-pagination-control\", \"data-lk-user-interaction\": interactive }, /* @__PURE__ */ React92.createElement(\"button\", { className: \"lk-button\", onClick: prevPage }, /* @__PURE__ */ React92.createElement(Chevron_default, null)), /* @__PURE__ */ React92.createElement(\"span\", { className: \"lk-pagination-count\" }, `${currentPage} of ${totalPageCount}`), /* @__PURE__ */ React92.createElement(\"button\", { className: \"lk-button\", onClick: nextPage }, /* @__PURE__ */ React92.createElement(Chevron_default, null)));\n}\n\n// src/components/controls/PaginationIndicator.tsx\nimport * as React93 from \"react\";\nvar PaginationIndicator = /* @__PURE__ */ React93.forwardRef(\n function PaginationIndicator2({ totalPageCount, currentPage }, ref) {\n const bubbles = new Array(totalPageCount).fill(\"\").map((_, index) => {\n if (index + 1 === currentPage) {\n return /* @__PURE__ */ React93.createElement(\"span\", { \"data-lk-active\": true, key: index });\n } else {\n return /* @__PURE__ */ React93.createElement(\"span\", { key: index });\n }\n });\n return /* @__PURE__ */ React93.createElement(\"div\", { ref, className: \"lk-pagination-indicator\" }, bubbles);\n }\n);\n\n// src/components/layout/GridLayout.tsx\nfunction GridLayout(_a) {\n var _b = _a, { tracks } = _b, props = __objRest(_b, [\"tracks\"]);\n const gridEl = React94.createRef();\n const elementProps = React94.useMemo(\n () => mergeProps2(props, { className: \"lk-grid-layout\" }),\n [props]\n );\n const { layout } = useGridLayout(gridEl, tracks.length);\n const pagination = usePagination(layout.maxTiles, tracks);\n useSwipe(gridEl, {\n onLeftSwipe: pagination.nextPage,\n onRightSwipe: pagination.prevPage\n });\n return /* @__PURE__ */ React94.createElement(\"div\", __spreadValues({ ref: gridEl, \"data-lk-pagination\": pagination.totalPageCount > 1 }, elementProps), /* @__PURE__ */ React94.createElement(TrackLoop, { tracks: pagination.tracks }, props.children), tracks.length > layout.maxTiles && /* @__PURE__ */ React94.createElement(React94.Fragment, null, /* @__PURE__ */ React94.createElement(\n PaginationIndicator,\n {\n totalPageCount: pagination.totalPageCount,\n currentPage: pagination.currentPage\n }\n ), /* @__PURE__ */ React94.createElement(PaginationControl, __spreadValues({ pagesContainer: gridEl }, pagination))));\n}\n\n// src/components/layout/CarouselLayout.tsx\nimport { getScrollBarWidth } from \"@livekit/components-core\";\nimport * as React95 from \"react\";\nvar MIN_HEIGHT = 130;\nvar MIN_WIDTH = 140;\nvar MIN_VISIBLE_TILES = 1;\nvar ASPECT_RATIO = 16 / 10;\nvar ASPECT_RATIO_INVERT = (1 - ASPECT_RATIO) * -1;\nfunction CarouselLayout(_a) {\n var _b = _a, { tracks, orientation } = _b, props = __objRest(_b, [\"tracks\", \"orientation\"]);\n const asideEl = React95.useRef(null);\n const [prevTiles, setPrevTiles] = React95.useState(0);\n const { width, height } = useSize(asideEl);\n const carouselOrientation = orientation ? orientation : height >= width ? \"vertical\" : \"horizontal\";\n const tileSpan = carouselOrientation === \"vertical\" ? Math.max(width * ASPECT_RATIO_INVERT, MIN_HEIGHT) : Math.max(height * ASPECT_RATIO, MIN_WIDTH);\n const scrollBarWidth = getScrollBarWidth();\n const tilesThatFit = carouselOrientation === \"vertical\" ? Math.max((height - scrollBarWidth) / tileSpan, MIN_VISIBLE_TILES) : Math.max((width - scrollBarWidth) / tileSpan, MIN_VISIBLE_TILES);\n let maxVisibleTiles = Math.round(tilesThatFit);\n if (Math.abs(tilesThatFit - prevTiles) < 0.5) {\n maxVisibleTiles = Math.round(prevTiles);\n } else if (prevTiles !== tilesThatFit) {\n setPrevTiles(tilesThatFit);\n }\n const sortedTiles = useVisualStableUpdate(tracks, maxVisibleTiles);\n React95.useLayoutEffect(() => {\n if (asideEl.current) {\n asideEl.current.dataset.lkOrientation = carouselOrientation;\n asideEl.current.style.setProperty(\"--lk-max-visible-tiles\", maxVisibleTiles.toString());\n }\n }, [maxVisibleTiles, carouselOrientation]);\n return /* @__PURE__ */ React95.createElement(\"aside\", __spreadValues({ key: carouselOrientation, className: \"lk-carousel\", ref: asideEl }, props), /* @__PURE__ */ React95.createElement(TrackLoop, { tracks: sortedTiles }, props.children));\n}\n\n// src/components/layout/LayoutContextProvider.tsx\nimport { log as log10 } from \"@livekit/components-core\";\nimport * as React96 from \"react\";\nfunction LayoutContextProvider({\n value,\n onPinChange,\n onWidgetChange,\n children\n}) {\n const layoutContextValue = useEnsureCreateLayoutContext(value);\n React96.useEffect(() => {\n log10.debug(\"PinState Updated\", { state: layoutContextValue.pin.state });\n if (onPinChange && layoutContextValue.pin.state) onPinChange(layoutContextValue.pin.state);\n }, [layoutContextValue.pin.state, onPinChange]);\n React96.useEffect(() => {\n log10.debug(\"Widget Updated\", { widgetState: layoutContextValue.widget.state });\n if (onWidgetChange && layoutContextValue.widget.state) {\n onWidgetChange(layoutContextValue.widget.state);\n }\n }, [onWidgetChange, layoutContextValue.widget.state]);\n return /* @__PURE__ */ React96.createElement(LayoutContext.Provider, { value: layoutContextValue }, children);\n}\n\n// src/components/LiveKitRoom.tsx\nimport * as React97 from \"react\";\nvar LiveKitRoom = /* @__PURE__ */ React97.forwardRef(function LiveKitRoom2(props, ref) {\n const { room, htmlProps } = useLiveKitRoom(props);\n return /* @__PURE__ */ React97.createElement(\"div\", __spreadValues({ ref }, htmlProps), room && /* @__PURE__ */ React97.createElement(RoomContext.Provider, { value: room }, /* @__PURE__ */ React97.createElement(LKFeatureContext.Provider, { value: props.featureFlags }, props.children)));\n});\n\n// src/components/participant/AudioVisualizer.tsx\nimport * as React98 from \"react\";\nvar AudioVisualizer = /* @__PURE__ */ React98.forwardRef(\n function AudioVisualizer2(_a, ref) {\n var _b = _a, { trackRef } = _b, props = __objRest(_b, [\"trackRef\"]);\n const svgWidth = 200;\n const svgHeight = 90;\n const barWidth = 6;\n const barSpacing = 4;\n const volMultiplier = 50;\n const barCount = 7;\n const trackReference = useEnsureTrackRef(trackRef);\n const volumes = useMultibandTrackVolume(trackReference, { bands: 7, loPass: 300 });\n return /* @__PURE__ */ React98.createElement(\n \"svg\",\n __spreadProps(__spreadValues({\n ref,\n width: \"100%\",\n height: \"100%\",\n viewBox: `0 0 ${svgWidth} ${svgHeight}`\n }, props), {\n className: \"lk-audio-visualizer\"\n }),\n /* @__PURE__ */ React98.createElement(\"rect\", { x: \"0\", y: \"0\", width: \"100%\", height: \"100%\" }),\n /* @__PURE__ */ React98.createElement(\n \"g\",\n {\n style: {\n transform: `translate(${(svgWidth - barCount * (barWidth + barSpacing)) / 2}px, 0)`\n }\n },\n volumes.map((vol, idx) => /* @__PURE__ */ React98.createElement(\n \"rect\",\n {\n key: idx,\n x: idx * (barWidth + barSpacing),\n y: svgHeight / 2 - vol * volMultiplier / 2,\n width: barWidth,\n height: vol * volMultiplier\n }\n ))\n )\n );\n }\n);\n\n// src/components/ParticipantLoop.tsx\nimport * as React99 from \"react\";\nfunction ParticipantLoop(_a) {\n var _b = _a, { participants } = _b, props = __objRest(_b, [\"participants\"]);\n return /* @__PURE__ */ React99.createElement(React99.Fragment, null, participants.map((participant) => /* @__PURE__ */ React99.createElement(ParticipantContext.Provider, { value: participant, key: participant.identity }, cloneSingleChild(props.children))));\n}\n\n// src/components/RoomAudioRenderer.tsx\nimport { getTrackReferenceId as getTrackReferenceId5, isLocal as isLocal2 } from \"@livekit/components-core\";\nimport { Track as Track7 } from \"livekit-client\";\nimport * as React100 from \"react\";\nfunction RoomAudioRenderer({ volume, muted }) {\n const tracks = useTracks(\n [Track7.Source.Microphone, Track7.Source.ScreenShareAudio, Track7.Source.Unknown],\n {\n updateOnlyOn: [],\n onlySubscribed: true\n }\n ).filter((ref) => !isLocal2(ref.participant) && ref.publication.kind === Track7.Kind.Audio);\n return /* @__PURE__ */ React100.createElement(\"div\", { style: { display: \"none\" } }, tracks.map((trackRef) => /* @__PURE__ */ React100.createElement(\n AudioTrack,\n {\n key: getTrackReferenceId5(trackRef),\n trackRef,\n volume,\n muted\n }\n )));\n}\n\n// src/components/RoomName.tsx\nimport * as React101 from \"react\";\nvar RoomName = /* @__PURE__ */ React101.forwardRef(\n function RoomName2(_a, ref) {\n var _b = _a, { childrenPosition = \"before\", children } = _b, htmlAttributes = __objRest(_b, [\"childrenPosition\", \"children\"]);\n const { name } = useRoomInfo();\n return /* @__PURE__ */ React101.createElement(\"span\", __spreadValues({ ref }, htmlAttributes), childrenPosition === \"before\" && children, name, childrenPosition === \"after\" && children);\n }\n);\n\n// src/components/Toast.tsx\nimport * as React102 from \"react\";\nfunction Toast(props) {\n const htmlProps = React102.useMemo(() => mergeProps2(props, { className: \"lk-toast\" }), [props]);\n return /* @__PURE__ */ React102.createElement(\"div\", __spreadValues({}, htmlProps), props.children);\n}\n\n// src/components/participant/ParticipantAudioTile.tsx\nimport * as React103 from \"react\";\nimport { isTrackReference as isTrackReference4 } from \"@livekit/components-core\";\nvar ParticipantAudioTile = /* @__PURE__ */ React103.forwardRef(\n function ParticipantAudioTile2(_a, ref) {\n var _b = _a, {\n children,\n disableSpeakingIndicator,\n onParticipantClick,\n trackRef\n } = _b, htmlProps = __objRest(_b, [\n \"children\",\n \"disableSpeakingIndicator\",\n \"onParticipantClick\",\n \"trackRef\"\n ]);\n const trackReference = useEnsureTrackRef(trackRef);\n const { elementProps } = useParticipantTile({\n trackRef: trackReference,\n htmlProps,\n disableSpeakingIndicator,\n onParticipantClick\n });\n return /* @__PURE__ */ React103.createElement(\"div\", __spreadValues({ ref, style: { position: \"relative\" } }, elementProps), /* @__PURE__ */ React103.createElement(TrackRefContext.Provider, { value: trackReference }, children != null ? children : /* @__PURE__ */ React103.createElement(React103.Fragment, null, isTrackReference4(trackReference) && /* @__PURE__ */ React103.createElement(AudioTrack, { trackRef: trackReference }), /* @__PURE__ */ React103.createElement(AudioVisualizer, null), /* @__PURE__ */ React103.createElement(\"div\", { className: \"lk-participant-metadata\" }, /* @__PURE__ */ React103.createElement(\"div\", { className: \"lk-participant-metadata-item\" }, /* @__PURE__ */ React103.createElement(TrackMutedIndicator, { trackRef: trackReference }), /* @__PURE__ */ React103.createElement(ParticipantName, null)), /* @__PURE__ */ React103.createElement(ConnectionQualityIndicator, { className: \"lk-participant-metadata-item\" })))));\n }\n);\n\n// src/components/ConnectionStateToast.tsx\nimport { ConnectionState as ConnectionState6 } from \"livekit-client\";\nimport * as React104 from \"react\";\nfunction ConnectionStateToast(props) {\n const [notification, setNotification] = React104.useState(void 0);\n const state = useConnectionState(props.room);\n React104.useEffect(() => {\n switch (state) {\n case ConnectionState6.Reconnecting:\n setNotification(\n /* @__PURE__ */ React104.createElement(React104.Fragment, null, /* @__PURE__ */ React104.createElement(SpinnerIcon_default, { className: \"lk-spinner\" }), \" Reconnecting\")\n );\n break;\n case ConnectionState6.Connecting:\n setNotification(\n /* @__PURE__ */ React104.createElement(React104.Fragment, null, /* @__PURE__ */ React104.createElement(SpinnerIcon_default, { className: \"lk-spinner\" }), \" Connecting\")\n );\n break;\n case ConnectionState6.Disconnected:\n setNotification(/* @__PURE__ */ React104.createElement(React104.Fragment, null, \"Disconnected\"));\n break;\n default:\n setNotification(void 0);\n break;\n }\n }, [state]);\n return notification ? /* @__PURE__ */ React104.createElement(Toast, { className: \"lk-toast-connection-state\" }, notification) : /* @__PURE__ */ React104.createElement(React104.Fragment, null);\n}\n\n// src/components/ChatEntry.tsx\nimport { tokenize, createDefaultGrammar } from \"@livekit/components-core\";\nimport * as React105 from \"react\";\nvar ChatEntry = /* @__PURE__ */ React105.forwardRef(\n function ChatEntry2(_a, ref) {\n var _b = _a, { entry, hideName = false, hideTimestamp = false, messageFormatter } = _b, props = __objRest(_b, [\"entry\", \"hideName\", \"hideTimestamp\", \"messageFormatter\"]);\n var _a2, _b2, _c, _d;\n const formattedMessage = React105.useMemo(() => {\n return messageFormatter ? messageFormatter(entry.message) : entry.message;\n }, [entry.message, messageFormatter]);\n const hasBeenEdited = !!entry.editTimestamp;\n const time = new Date(entry.timestamp);\n const locale = navigator ? navigator.language : \"en-US\";\n return /* @__PURE__ */ React105.createElement(\n \"li\",\n __spreadValues({\n ref,\n className: \"lk-chat-entry\",\n title: time.toLocaleTimeString(locale, { timeStyle: \"full\" }),\n \"data-lk-message-origin\": ((_a2 = entry.from) == null ? void 0 : _a2.isLocal) ? \"local\" : \"remote\"\n }, props),\n (!hideTimestamp || !hideName || hasBeenEdited) && /* @__PURE__ */ React105.createElement(\"span\", { className: \"lk-meta-data\" }, !hideName && /* @__PURE__ */ React105.createElement(\"strong\", { className: \"lk-participant-name\" }, (_d = (_b2 = entry.from) == null ? void 0 : _b2.name) != null ? _d : (_c = entry.from) == null ? void 0 : _c.identity), (!hideTimestamp || hasBeenEdited) && /* @__PURE__ */ React105.createElement(\"span\", { className: \"lk-timestamp\" }, hasBeenEdited && \"edited \", time.toLocaleTimeString(locale, { timeStyle: \"short\" }))),\n /* @__PURE__ */ React105.createElement(\"span\", { className: \"lk-message-body\" }, formattedMessage)\n );\n }\n);\nfunction formatChatMessageLinks(message) {\n return tokenize(message, createDefaultGrammar()).map((tok, i) => {\n if (typeof tok === `string`) {\n return tok;\n } else {\n const content = tok.content.toString();\n const href = tok.type === `url` ? /^http(s?):\\/\\//.test(content) ? content : `https://${content}` : `mailto:${content}`;\n return /* @__PURE__ */ React105.createElement(\"a\", { className: \"lk-chat-link\", key: i, href, target: \"_blank\", rel: \"noreferrer\" }, content);\n }\n });\n}\n\n// src/prefabs/Chat.tsx\nimport * as React106 from \"react\";\nfunction Chat(_a) {\n var _b = _a, {\n messageFormatter,\n messageDecoder,\n messageEncoder,\n channelTopic\n } = _b, props = __objRest(_b, [\n \"messageFormatter\",\n \"messageDecoder\",\n \"messageEncoder\",\n \"channelTopic\"\n ]);\n const inputRef = React106.useRef(null);\n const ulRef = React106.useRef(null);\n const chatOptions = React106.useMemo(() => {\n return { messageDecoder, messageEncoder, channelTopic };\n }, [messageDecoder, messageEncoder, channelTopic]);\n const { send, chatMessages, isSending } = useChat(chatOptions);\n const layoutContext = useMaybeLayoutContext();\n const lastReadMsgAt = React106.useRef(0);\n function handleSubmit(event) {\n return __async(this, null, function* () {\n event.preventDefault();\n if (inputRef.current && inputRef.current.value.trim() !== \"\") {\n if (send) {\n yield send(inputRef.current.value);\n inputRef.current.value = \"\";\n inputRef.current.focus();\n }\n }\n });\n }\n React106.useEffect(() => {\n var _a2;\n if (ulRef) {\n (_a2 = ulRef.current) == null ? void 0 : _a2.scrollTo({ top: ulRef.current.scrollHeight });\n }\n }, [ulRef, chatMessages]);\n React106.useEffect(() => {\n var _a2, _b2, _c, _d, _e;\n if (!layoutContext || chatMessages.length === 0) {\n return;\n }\n if (((_a2 = layoutContext.widget.state) == null ? void 0 : _a2.showChat) && chatMessages.length > 0 && lastReadMsgAt.current !== ((_b2 = chatMessages[chatMessages.length - 1]) == null ? void 0 : _b2.timestamp)) {\n lastReadMsgAt.current = (_c = chatMessages[chatMessages.length - 1]) == null ? void 0 : _c.timestamp;\n return;\n }\n const unreadMessageCount = chatMessages.filter(\n (msg) => !lastReadMsgAt.current || msg.timestamp > lastReadMsgAt.current\n ).length;\n const { widget } = layoutContext;\n if (unreadMessageCount > 0 && ((_d = widget.state) == null ? void 0 : _d.unreadMessages) !== unreadMessageCount) {\n (_e = widget.dispatch) == null ? void 0 : _e.call(widget, { msg: \"unread_msg\", count: unreadMessageCount });\n }\n }, [chatMessages, layoutContext == null ? void 0 : layoutContext.widget]);\n return /* @__PURE__ */ React106.createElement(\"div\", __spreadProps(__spreadValues({}, props), { className: \"lk-chat\" }), /* @__PURE__ */ React106.createElement(\"div\", { className: \"lk-chat-header\" }, \"Messages\", /* @__PURE__ */ React106.createElement(ChatToggle, { className: \"lk-close-button\" }, /* @__PURE__ */ React106.createElement(ChatCloseIcon_default, null))), /* @__PURE__ */ React106.createElement(\"ul\", { className: \"lk-list lk-chat-messages\", ref: ulRef }, props.children ? chatMessages.map(\n (msg, idx) => {\n var _a2;\n return cloneSingleChild(props.children, {\n entry: msg,\n key: (_a2 = msg.id) != null ? _a2 : idx,\n messageFormatter\n });\n }\n ) : chatMessages.map((msg, idx, allMsg) => {\n var _a2;\n const hideName = idx >= 1 && allMsg[idx - 1].from === msg.from;\n const hideTimestamp = idx >= 1 && msg.timestamp - allMsg[idx - 1].timestamp < 6e4;\n return /* @__PURE__ */ React106.createElement(\n ChatEntry,\n {\n key: (_a2 = msg.id) != null ? _a2 : idx,\n hideName,\n hideTimestamp: hideName === false ? false : hideTimestamp,\n entry: msg,\n messageFormatter\n }\n );\n })), /* @__PURE__ */ React106.createElement(\"form\", { className: \"lk-chat-form\", onSubmit: handleSubmit }, /* @__PURE__ */ React106.createElement(\n \"input\",\n {\n className: \"lk-form-control lk-chat-form-input\",\n disabled: isSending,\n ref: inputRef,\n type: \"text\",\n placeholder: \"Enter a message...\",\n onInput: (ev) => ev.stopPropagation(),\n onKeyDown: (ev) => ev.stopPropagation(),\n onKeyUp: (ev) => ev.stopPropagation()\n }\n ), /* @__PURE__ */ React106.createElement(\"button\", { type: \"submit\", className: \"lk-button lk-chat-form-button\", disabled: isSending }, \"Send\")));\n}\n\n// src/prefabs/PreJoin.tsx\nimport {\n createLocalAudioTrack,\n createLocalTracks,\n createLocalVideoTrack,\n facingModeFromLocalTrack as facingModeFromLocalTrack2,\n Track as Track8,\n VideoPresets,\n Mutex\n} from \"livekit-client\";\nimport * as React109 from \"react\";\n\n// src/prefabs/MediaDeviceMenu.tsx\nimport { computeMenuPosition, wasClickOutside } from \"@livekit/components-core\";\nimport * as React107 from \"react\";\nimport { log as log11 } from \"@livekit/components-core\";\nfunction MediaDeviceMenu(_a) {\n var _b = _a, {\n kind,\n initialSelection,\n onActiveDeviceChange,\n tracks,\n requestPermissions = false\n } = _b, props = __objRest(_b, [\n \"kind\",\n \"initialSelection\",\n \"onActiveDeviceChange\",\n \"tracks\",\n \"requestPermissions\"\n ]);\n const [isOpen, setIsOpen] = React107.useState(false);\n const [devices, setDevices] = React107.useState([]);\n const [updateRequired, setUpdateRequired] = React107.useState(true);\n const [needPermissions, setNeedPermissions] = React107.useState(requestPermissions);\n const handleActiveDeviceChange = (kind2, deviceId) => {\n log11.debug(\"handle device change\");\n setIsOpen(false);\n onActiveDeviceChange == null ? void 0 : onActiveDeviceChange(kind2, deviceId);\n };\n const button = React107.useRef(null);\n const tooltip = React107.useRef(null);\n React107.useLayoutEffect(() => {\n if (isOpen) {\n setNeedPermissions(true);\n }\n }, [isOpen]);\n React107.useLayoutEffect(() => {\n if (button.current && tooltip.current && (devices || updateRequired)) {\n computeMenuPosition(button.current, tooltip.current).then(({ x, y }) => {\n if (tooltip.current) {\n Object.assign(tooltip.current.style, { left: `${x}px`, top: `${y}px` });\n }\n });\n }\n setUpdateRequired(false);\n }, [button, tooltip, devices, updateRequired]);\n const handleClickOutside = React107.useCallback(\n (event) => {\n if (!tooltip.current) {\n return;\n }\n if (event.target === button.current) {\n return;\n }\n if (isOpen && wasClickOutside(tooltip.current, event)) {\n setIsOpen(false);\n }\n },\n [isOpen, tooltip, button]\n );\n React107.useEffect(() => {\n document.addEventListener(\"click\", handleClickOutside);\n window.addEventListener(\"resize\", () => setUpdateRequired(true));\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n window.removeEventListener(\"resize\", () => setUpdateRequired(true));\n };\n }, [handleClickOutside, setUpdateRequired]);\n return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(\n \"button\",\n __spreadProps(__spreadValues({\n className: \"lk-button lk-button-menu\",\n \"aria-pressed\": isOpen\n }, props), {\n onClick: () => setIsOpen(!isOpen),\n ref: button\n }),\n props.children\n ), !props.disabled && /* @__PURE__ */ React107.createElement(\n \"div\",\n {\n className: \"lk-device-menu\",\n ref: tooltip,\n style: { visibility: isOpen ? \"visible\" : \"hidden\" }\n },\n kind ? /* @__PURE__ */ React107.createElement(\n MediaDeviceSelect,\n {\n initialSelection,\n onActiveDeviceChange: (deviceId) => handleActiveDeviceChange(kind, deviceId),\n onDeviceListChange: setDevices,\n kind,\n track: tracks == null ? void 0 : tracks[kind],\n requestPermissions: needPermissions\n }\n ) : /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(\"div\", { className: \"lk-device-menu-heading\" }, \"Audio inputs\"), /* @__PURE__ */ React107.createElement(\n MediaDeviceSelect,\n {\n kind: \"audioinput\",\n onActiveDeviceChange: (deviceId) => handleActiveDeviceChange(\"audioinput\", deviceId),\n onDeviceListChange: setDevices,\n track: tracks == null ? void 0 : tracks.audioinput,\n requestPermissions: needPermissions\n }\n ), /* @__PURE__ */ React107.createElement(\"div\", { className: \"lk-device-menu-heading\" }, \"Video inputs\"), /* @__PURE__ */ React107.createElement(\n MediaDeviceSelect,\n {\n kind: \"videoinput\",\n onActiveDeviceChange: (deviceId) => handleActiveDeviceChange(\"videoinput\", deviceId),\n onDeviceListChange: setDevices,\n track: tracks == null ? void 0 : tracks.videoinput,\n requestPermissions: needPermissions\n }\n ))\n ));\n}\n\n// src/prefabs/PreJoin.tsx\nimport { log as log12 } from \"@livekit/components-core\";\n\n// src/hooks/useWarnAboutMissingStyles.ts\nimport * as React108 from \"react\";\nfunction useWarnAboutMissingStyles() {\n React108.useEffect(() => {\n warnAboutMissingStyles();\n }, []);\n}\n\n// src/prefabs/PreJoin.tsx\nimport { defaultUserChoices } from \"@livekit/components-core\";\nfunction usePreviewTracks(options, onError) {\n const [tracks, setTracks] = React109.useState();\n const trackLock = React109.useMemo(() => new Mutex(), []);\n React109.useEffect(() => {\n let needsCleanup = false;\n let localTracks = [];\n trackLock.lock().then((unlock) => __async(this, null, function* () {\n try {\n if (options.audio || options.video) {\n localTracks = yield createLocalTracks(options);\n if (needsCleanup) {\n localTracks.forEach((tr) => tr.stop());\n } else {\n setTracks(localTracks);\n }\n }\n } catch (e) {\n if (onError && e instanceof Error) {\n onError(e);\n } else {\n log12.error(e);\n }\n } finally {\n unlock();\n }\n }));\n return () => {\n needsCleanup = true;\n localTracks.forEach((track) => {\n track.stop();\n });\n };\n }, [JSON.stringify(options), onError, trackLock]);\n return tracks;\n}\nfunction usePreviewDevice(enabled, deviceId, kind) {\n const [deviceError, setDeviceError] = React109.useState(null);\n const [isCreatingTrack, setIsCreatingTrack] = React109.useState(false);\n const devices = useMediaDevices({ kind });\n const [selectedDevice, setSelectedDevice] = React109.useState(\n void 0\n );\n const [localTrack, setLocalTrack] = React109.useState();\n const [localDeviceId, setLocalDeviceId] = React109.useState(deviceId);\n React109.useEffect(() => {\n setLocalDeviceId(deviceId);\n }, [deviceId]);\n const createTrack = (deviceId2, kind2) => __async(this, null, function* () {\n try {\n const track = kind2 === \"videoinput\" ? yield createLocalVideoTrack({\n deviceId: deviceId2,\n resolution: VideoPresets.h720.resolution\n }) : yield createLocalAudioTrack({ deviceId: deviceId2 });\n const newDeviceId = yield track.getDeviceId();\n if (newDeviceId && deviceId2 !== newDeviceId) {\n prevDeviceId.current = newDeviceId;\n setLocalDeviceId(newDeviceId);\n }\n setLocalTrack(track);\n } catch (e) {\n if (e instanceof Error) {\n setDeviceError(e);\n }\n }\n });\n const switchDevice = (track, id) => __async(this, null, function* () {\n yield track.setDeviceId(id);\n prevDeviceId.current = id;\n });\n const prevDeviceId = React109.useRef(localDeviceId);\n React109.useEffect(() => {\n if (enabled && !localTrack && !deviceError && !isCreatingTrack) {\n log12.debug(\"creating track\", kind);\n setIsCreatingTrack(true);\n createTrack(localDeviceId, kind).finally(() => {\n setIsCreatingTrack(false);\n });\n }\n }, [enabled, localTrack, deviceError, isCreatingTrack]);\n React109.useEffect(() => {\n if (!localTrack) {\n return;\n }\n if (!enabled) {\n log12.debug(`muting ${kind} track`);\n localTrack.mute().then(() => log12.debug(localTrack.mediaStreamTrack));\n } else if ((selectedDevice == null ? void 0 : selectedDevice.deviceId) && prevDeviceId.current !== (selectedDevice == null ? void 0 : selectedDevice.deviceId)) {\n log12.debug(`switching ${kind} device from`, prevDeviceId.current, selectedDevice.deviceId);\n switchDevice(localTrack, selectedDevice.deviceId);\n } else {\n log12.debug(`unmuting local ${kind} track`);\n localTrack.unmute();\n }\n }, [localTrack, selectedDevice, enabled, kind]);\n React109.useEffect(() => {\n return () => {\n if (localTrack) {\n log12.debug(`stopping local ${kind} track`);\n localTrack.stop();\n localTrack.mute();\n }\n };\n }, []);\n React109.useEffect(() => {\n setSelectedDevice(devices == null ? void 0 : devices.find((dev) => dev.deviceId === localDeviceId));\n }, [localDeviceId, devices]);\n return {\n selectedDevice,\n localTrack,\n deviceError\n };\n}\nfunction PreJoin(_a) {\n var _b = _a, {\n defaults = {},\n onValidate,\n onSubmit,\n onError,\n debug,\n joinLabel = \"Join Room\",\n micLabel = \"Microphone\",\n camLabel = \"Camera\",\n userLabel = \"Username\",\n persistUserChoices = true\n } = _b, htmlProps = __objRest(_b, [\n \"defaults\",\n \"onValidate\",\n \"onSubmit\",\n \"onError\",\n \"debug\",\n \"joinLabel\",\n \"micLabel\",\n \"camLabel\",\n \"userLabel\",\n \"persistUserChoices\"\n ]);\n const [userChoices, setUserChoices] = React109.useState(defaultUserChoices);\n const partialDefaults = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, defaults.audioDeviceId !== void 0 && { audioDeviceId: defaults.audioDeviceId }), defaults.videoDeviceId !== void 0 && { videoDeviceId: defaults.videoDeviceId }), defaults.audioEnabled !== void 0 && { audioEnabled: defaults.audioEnabled }), defaults.videoEnabled !== void 0 && { videoEnabled: defaults.videoEnabled }), defaults.username !== void 0 && { username: defaults.username });\n const {\n userChoices: initialUserChoices,\n saveAudioInputDeviceId,\n saveAudioInputEnabled,\n saveVideoInputDeviceId,\n saveVideoInputEnabled,\n saveUsername\n } = usePersistentUserChoices({\n defaults: partialDefaults,\n preventSave: !persistUserChoices,\n preventLoad: !persistUserChoices\n });\n const [audioEnabled, setAudioEnabled] = React109.useState(initialUserChoices.audioEnabled);\n const [videoEnabled, setVideoEnabled] = React109.useState(initialUserChoices.videoEnabled);\n const [audioDeviceId, setAudioDeviceId] = React109.useState(\n initialUserChoices.audioDeviceId\n );\n const [videoDeviceId, setVideoDeviceId] = React109.useState(\n initialUserChoices.videoDeviceId\n );\n const [username, setUsername] = React109.useState(initialUserChoices.username);\n React109.useEffect(() => {\n saveAudioInputEnabled(audioEnabled);\n }, [audioEnabled, saveAudioInputEnabled]);\n React109.useEffect(() => {\n saveVideoInputEnabled(videoEnabled);\n }, [videoEnabled, saveVideoInputEnabled]);\n React109.useEffect(() => {\n saveAudioInputDeviceId(audioDeviceId);\n }, [audioDeviceId, saveAudioInputDeviceId]);\n React109.useEffect(() => {\n saveVideoInputDeviceId(videoDeviceId);\n }, [videoDeviceId, saveVideoInputDeviceId]);\n React109.useEffect(() => {\n saveUsername(username);\n }, [username, saveUsername]);\n const tracks = usePreviewTracks(\n {\n audio: audioEnabled ? { deviceId: initialUserChoices.audioDeviceId } : false,\n video: videoEnabled ? { deviceId: initialUserChoices.videoDeviceId } : false\n },\n onError\n );\n const videoEl = React109.useRef(null);\n const videoTrack = React109.useMemo(\n () => tracks == null ? void 0 : tracks.filter((track) => track.kind === Track8.Kind.Video)[0],\n [tracks]\n );\n const facingMode = React109.useMemo(() => {\n if (videoTrack) {\n const { facingMode: facingMode2 } = facingModeFromLocalTrack2(videoTrack);\n return facingMode2;\n } else {\n return \"undefined\";\n }\n }, [videoTrack]);\n const audioTrack = React109.useMemo(\n () => tracks == null ? void 0 : tracks.filter((track) => track.kind === Track8.Kind.Audio)[0],\n [tracks]\n );\n React109.useEffect(() => {\n if (videoEl.current && videoTrack) {\n videoTrack.unmute();\n videoTrack.attach(videoEl.current);\n }\n return () => {\n videoTrack == null ? void 0 : videoTrack.detach();\n };\n }, [videoTrack]);\n const [isValid, setIsValid] = React109.useState();\n const handleValidation = React109.useCallback(\n (values) => {\n if (typeof onValidate === \"function\") {\n return onValidate(values);\n } else {\n return values.username !== \"\";\n }\n },\n [onValidate]\n );\n React109.useEffect(() => {\n const newUserChoices = {\n username,\n videoEnabled,\n videoDeviceId,\n audioEnabled,\n audioDeviceId\n };\n setUserChoices(newUserChoices);\n setIsValid(handleValidation(newUserChoices));\n }, [username, videoEnabled, handleValidation, audioEnabled, audioDeviceId, videoDeviceId]);\n function handleSubmit(event) {\n event.preventDefault();\n if (handleValidation(userChoices)) {\n if (typeof onSubmit === \"function\") {\n onSubmit(userChoices);\n }\n } else {\n log12.warn(\"Validation failed with: \", userChoices);\n }\n }\n useWarnAboutMissingStyles();\n return /* @__PURE__ */ React109.createElement(\"div\", __spreadValues({ className: \"lk-prejoin\" }, htmlProps), /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-video-container\" }, videoTrack && /* @__PURE__ */ React109.createElement(\"video\", { ref: videoEl, width: \"1280\", height: \"720\", \"data-lk-facing-mode\": facingMode }), (!videoTrack || !videoEnabled) && /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-camera-off-note\" }, /* @__PURE__ */ React109.createElement(ParticipantPlaceholder_default, null))), /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-button-group-container\" }, /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-button-group audio\" }, /* @__PURE__ */ React109.createElement(\n TrackToggle,\n {\n initialState: audioEnabled,\n source: Track8.Source.Microphone,\n onChange: (enabled) => setAudioEnabled(enabled)\n },\n micLabel\n ), /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-button-group-menu\" }, /* @__PURE__ */ React109.createElement(\n MediaDeviceMenu,\n {\n initialSelection: audioDeviceId,\n kind: \"audioinput\",\n disabled: !audioTrack,\n tracks: { audioinput: audioTrack },\n onActiveDeviceChange: (_, id) => setAudioDeviceId(id)\n }\n ))), /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-button-group video\" }, /* @__PURE__ */ React109.createElement(\n TrackToggle,\n {\n initialState: videoEnabled,\n source: Track8.Source.Camera,\n onChange: (enabled) => setVideoEnabled(enabled)\n },\n camLabel\n ), /* @__PURE__ */ React109.createElement(\"div\", { className: \"lk-button-group-menu\" }, /* @__PURE__ */ React109.createElement(\n MediaDeviceMenu,\n {\n initialSelection: videoDeviceId,\n kind: \"videoinput\",\n disabled: !videoTrack,\n tracks: { videoinput: videoTrack },\n onActiveDeviceChange: (_, id) => setVideoDeviceId(id)\n }\n )))), /* @__PURE__ */ React109.createElement(\"form\", { className: \"lk-username-container\" }, /* @__PURE__ */ React109.createElement(\n \"input\",\n {\n className: \"lk-form-control\",\n id: \"username\",\n name: \"username\",\n type: \"text\",\n defaultValue: username,\n placeholder: userLabel,\n onChange: (inputEl) => setUsername(inputEl.target.value),\n autoComplete: \"off\"\n }\n ), /* @__PURE__ */ React109.createElement(\n \"button\",\n {\n className: \"lk-button lk-join-button\",\n type: \"submit\",\n onClick: handleSubmit,\n disabled: !isValid\n },\n joinLabel\n )), debug && /* @__PURE__ */ React109.createElement(React109.Fragment, null, /* @__PURE__ */ React109.createElement(\"strong\", null, \"User Choices:\"), /* @__PURE__ */ React109.createElement(\"ul\", { className: \"lk-list\", style: { overflow: \"hidden\", maxWidth: \"15rem\" } }, /* @__PURE__ */ React109.createElement(\"li\", null, \"Username: \", `${userChoices.username}`), /* @__PURE__ */ React109.createElement(\"li\", null, \"Video Enabled: \", `${userChoices.videoEnabled}`), /* @__PURE__ */ React109.createElement(\"li\", null, \"Audio Enabled: \", `${userChoices.audioEnabled}`), /* @__PURE__ */ React109.createElement(\"li\", null, \"Video Device: \", `${userChoices.videoDeviceId}`), /* @__PURE__ */ React109.createElement(\"li\", null, \"Audio Device: \", `${userChoices.audioDeviceId}`))));\n}\n\n// src/prefabs/VideoConference.tsx\nimport { isEqualTrackRef, isTrackReference as isTrackReference5, isWeb, log as log13 } from \"@livekit/components-core\";\nimport { RoomEvent as RoomEvent3, Track as Track10 } from \"livekit-client\";\nimport * as React114 from \"react\";\n\n// src/prefabs/ControlBar.tsx\nimport { Track as Track9 } from \"livekit-client\";\nimport * as React113 from \"react\";\nimport { supportsScreenSharing } from \"@livekit/components-core\";\n\n// src/components/controls/StartMediaButton.tsx\nimport * as React110 from \"react\";\nvar StartMediaButton = /* @__PURE__ */ React110.forwardRef(\n function StartMediaButton2(_a, ref) {\n var _b = _a, { label } = _b, props = __objRest(_b, [\"label\"]);\n const room = useRoomContext();\n const { mergedProps: audioProps, canPlayAudio } = useStartAudio({ room, props });\n const { mergedProps, canPlayVideo } = useStartVideo({ room, props: audioProps });\n const _a2 = mergedProps, { style } = _a2, restProps = __objRest(_a2, [\"style\"]);\n style.display = canPlayAudio && canPlayVideo ? \"none\" : \"block\";\n return /* @__PURE__ */ React110.createElement(\"button\", __spreadValues({ ref, style }, restProps), label != null ? label : `Start ${!canPlayAudio ? \"Audio\" : \"Video\"}`);\n }\n);\n\n// src/components/controls/SettingsMenuToggle.tsx\nimport * as React112 from \"react\";\n\n// src/hooks/useSettingsToggle.ts\nimport * as React111 from \"react\";\nfunction useSettingsToggle({ props }) {\n const { dispatch, state } = useLayoutContext().widget;\n const className = \"lk-button lk-settings-toggle\";\n const mergedProps = React111.useMemo(() => {\n return mergeProps(props, {\n className,\n onClick: () => {\n if (dispatch) dispatch({ msg: \"toggle_settings\" });\n },\n \"aria-pressed\": (state == null ? void 0 : state.showSettings) ? \"true\" : \"false\"\n });\n }, [props, className, dispatch, state]);\n return { mergedProps };\n}\n\n// src/components/controls/SettingsMenuToggle.tsx\nvar SettingsMenuToggle = /* @__PURE__ */ React112.forwardRef(\n function SettingsMenuToggle2(props, ref) {\n const { mergedProps } = useSettingsToggle({ props });\n return /* @__PURE__ */ React112.createElement(\"button\", __spreadValues({ ref }, mergedProps), props.children);\n }\n);\n\n// src/prefabs/ControlBar.tsx\nfunction ControlBar(_a) {\n var _b = _a, {\n variation,\n controls,\n saveUserChoices: saveUserChoices2 = true,\n onDeviceError\n } = _b, props = __objRest(_b, [\n \"variation\",\n \"controls\",\n \"saveUserChoices\",\n \"onDeviceError\"\n ]);\n var _a2, _b2, _c, _d, _e;\n const [isChatOpen, setIsChatOpen] = React113.useState(false);\n const layoutContext = useMaybeLayoutContext();\n React113.useEffect(() => {\n var _a3, _b3;\n if (((_a3 = layoutContext == null ? void 0 : layoutContext.widget.state) == null ? void 0 : _a3.showChat) !== void 0) {\n setIsChatOpen((_b3 = layoutContext == null ? void 0 : layoutContext.widget.state) == null ? void 0 : _b3.showChat);\n }\n }, [(_a2 = layoutContext == null ? void 0 : layoutContext.widget.state) == null ? void 0 : _a2.showChat]);\n const isTooLittleSpace = useMediaQuery(`(max-width: ${isChatOpen ? 1e3 : 760}px)`);\n const defaultVariation = isTooLittleSpace ? \"minimal\" : \"verbose\";\n variation != null ? variation : variation = defaultVariation;\n const visibleControls = __spreadValues({ leave: true }, controls);\n const localPermissions = useLocalParticipantPermissions();\n if (!localPermissions) {\n visibleControls.camera = false;\n visibleControls.chat = false;\n visibleControls.microphone = false;\n visibleControls.screenShare = false;\n } else {\n (_b2 = visibleControls.camera) != null ? _b2 : visibleControls.camera = localPermissions.canPublish;\n (_c = visibleControls.microphone) != null ? _c : visibleControls.microphone = localPermissions.canPublish;\n (_d = visibleControls.screenShare) != null ? _d : visibleControls.screenShare = localPermissions.canPublish;\n (_e = visibleControls.chat) != null ? _e : visibleControls.chat = localPermissions.canPublishData && (controls == null ? void 0 : controls.chat);\n }\n const showIcon = React113.useMemo(\n () => variation === \"minimal\" || variation === \"verbose\",\n [variation]\n );\n const showText = React113.useMemo(\n () => variation === \"textOnly\" || variation === \"verbose\",\n [variation]\n );\n const browserSupportsScreenSharing = supportsScreenSharing();\n const [isScreenShareEnabled, setIsScreenShareEnabled] = React113.useState(false);\n const onScreenShareChange = React113.useCallback(\n (enabled) => {\n setIsScreenShareEnabled(enabled);\n },\n [setIsScreenShareEnabled]\n );\n const htmlProps = mergeProps2({ className: \"lk-control-bar\" }, props);\n const {\n saveAudioInputEnabled,\n saveVideoInputEnabled,\n saveAudioInputDeviceId,\n saveVideoInputDeviceId\n } = usePersistentUserChoices({ preventSave: !saveUserChoices2 });\n const microphoneOnChange = React113.useCallback(\n (enabled, isUserInitiated) => isUserInitiated ? saveAudioInputEnabled(enabled) : null,\n [saveAudioInputEnabled]\n );\n const cameraOnChange = React113.useCallback(\n (enabled, isUserInitiated) => isUserInitiated ? saveVideoInputEnabled(enabled) : null,\n [saveVideoInputEnabled]\n );\n return /* @__PURE__ */ React113.createElement(\"div\", __spreadValues({}, htmlProps), visibleControls.microphone && /* @__PURE__ */ React113.createElement(\"div\", { className: \"lk-button-group\" }, /* @__PURE__ */ React113.createElement(\n TrackToggle,\n {\n source: Track9.Source.Microphone,\n showIcon,\n onChange: microphoneOnChange,\n onDeviceError: (error) => onDeviceError == null ? void 0 : onDeviceError({ source: Track9.Source.Microphone, error })\n },\n showText && \"Microphone\"\n ), /* @__PURE__ */ React113.createElement(\"div\", { className: \"lk-button-group-menu\" }, /* @__PURE__ */ React113.createElement(\n MediaDeviceMenu,\n {\n kind: \"audioinput\",\n onActiveDeviceChange: (_kind, deviceId) => saveAudioInputDeviceId(deviceId != null ? deviceId : \"\")\n }\n ))), visibleControls.camera && /* @__PURE__ */ React113.createElement(\"div\", { className: \"lk-button-group\" }, /* @__PURE__ */ React113.createElement(\n TrackToggle,\n {\n source: Track9.Source.Camera,\n showIcon,\n onChange: cameraOnChange,\n onDeviceError: (error) => onDeviceError == null ? void 0 : onDeviceError({ source: Track9.Source.Camera, error })\n },\n showText && \"Camera\"\n ), /* @__PURE__ */ React113.createElement(\"div\", { className: \"lk-button-group-menu\" }, /* @__PURE__ */ React113.createElement(\n MediaDeviceMenu,\n {\n kind: \"videoinput\",\n onActiveDeviceChange: (_kind, deviceId) => saveVideoInputDeviceId(deviceId != null ? deviceId : \"\")\n }\n ))), visibleControls.screenShare && browserSupportsScreenSharing && /* @__PURE__ */ React113.createElement(\n TrackToggle,\n {\n source: Track9.Source.ScreenShare,\n captureOptions: { audio: true, selfBrowserSurface: \"include\" },\n showIcon,\n onChange: onScreenShareChange,\n onDeviceError: (error) => onDeviceError == null ? void 0 : onDeviceError({ source: Track9.Source.ScreenShare, error })\n },\n showText && (isScreenShareEnabled ? \"Stop screen share\" : \"Share screen\")\n ), visibleControls.chat && /* @__PURE__ */ React113.createElement(ChatToggle, null, showIcon && /* @__PURE__ */ React113.createElement(ChatIcon_default, null), showText && \"Chat\"), visibleControls.settings && /* @__PURE__ */ React113.createElement(SettingsMenuToggle, null, showIcon && /* @__PURE__ */ React113.createElement(GearIcon_default, null), showText && \"Settings\"), visibleControls.leave && /* @__PURE__ */ React113.createElement(DisconnectButton, null, showIcon && /* @__PURE__ */ React113.createElement(LeaveIcon_default, null), showText && \"Leave\"), /* @__PURE__ */ React113.createElement(StartMediaButton, null));\n}\n\n// src/prefabs/VideoConference.tsx\nfunction VideoConference(_a) {\n var _b = _a, {\n chatMessageFormatter,\n chatMessageDecoder,\n chatMessageEncoder,\n SettingsComponent\n } = _b, props = __objRest(_b, [\n \"chatMessageFormatter\",\n \"chatMessageDecoder\",\n \"chatMessageEncoder\",\n \"SettingsComponent\"\n ]);\n var _a2, _b2;\n const [widgetState, setWidgetState] = React114.useState({\n showChat: false,\n unreadMessages: 0,\n showSettings: false\n });\n const lastAutoFocusedScreenShareTrack = React114.useRef(null);\n const tracks = useTracks(\n [\n { source: Track10.Source.Camera, withPlaceholder: true },\n { source: Track10.Source.ScreenShare, withPlaceholder: false }\n ],\n { updateOnlyOn: [RoomEvent3.ActiveSpeakersChanged], onlySubscribed: false }\n );\n const widgetUpdate = (state) => {\n log13.debug(\"updating widget state\", state);\n setWidgetState(state);\n };\n const layoutContext = useCreateLayoutContext();\n const screenShareTracks = tracks.filter(isTrackReference5).filter((track) => track.publication.source === Track10.Source.ScreenShare);\n const focusTrack = (_a2 = usePinnedTracks(layoutContext)) == null ? void 0 : _a2[0];\n const carouselTracks = tracks.filter((track) => !isEqualTrackRef(track, focusTrack));\n React114.useEffect(() => {\n var _a3, _b3, _c, _d, _e, _f;\n if (screenShareTracks.some((track) => track.publication.isSubscribed) && lastAutoFocusedScreenShareTrack.current === null) {\n log13.debug(\"Auto set screen share focus:\", { newScreenShareTrack: screenShareTracks[0] });\n (_b3 = (_a3 = layoutContext.pin).dispatch) == null ? void 0 : _b3.call(_a3, { msg: \"set_pin\", trackReference: screenShareTracks[0] });\n lastAutoFocusedScreenShareTrack.current = screenShareTracks[0];\n } else if (lastAutoFocusedScreenShareTrack.current && !screenShareTracks.some(\n (track) => {\n var _a4, _b4;\n return track.publication.trackSid === ((_b4 = (_a4 = lastAutoFocusedScreenShareTrack.current) == null ? void 0 : _a4.publication) == null ? void 0 : _b4.trackSid);\n }\n )) {\n log13.debug(\"Auto clearing screen share focus.\");\n (_d = (_c = layoutContext.pin).dispatch) == null ? void 0 : _d.call(_c, { msg: \"clear_pin\" });\n lastAutoFocusedScreenShareTrack.current = null;\n }\n if (focusTrack && !isTrackReference5(focusTrack)) {\n const updatedFocusTrack = tracks.find(\n (tr) => tr.participant.identity === focusTrack.participant.identity && tr.source === focusTrack.source\n );\n if (updatedFocusTrack !== focusTrack && isTrackReference5(updatedFocusTrack)) {\n (_f = (_e = layoutContext.pin).dispatch) == null ? void 0 : _f.call(_e, { msg: \"set_pin\", trackReference: updatedFocusTrack });\n }\n }\n }, [\n screenShareTracks.map((ref) => `${ref.publication.trackSid}_${ref.publication.isSubscribed}`).join(),\n (_b2 = focusTrack == null ? void 0 : focusTrack.publication) == null ? void 0 : _b2.trackSid,\n tracks\n ]);\n useWarnAboutMissingStyles();\n return /* @__PURE__ */ React114.createElement(\"div\", __spreadValues({ className: \"lk-video-conference\" }, props), isWeb() && /* @__PURE__ */ React114.createElement(\n LayoutContextProvider,\n {\n value: layoutContext,\n onWidgetChange: widgetUpdate\n },\n /* @__PURE__ */ React114.createElement(\"div\", { className: \"lk-video-conference-inner\" }, !focusTrack ? /* @__PURE__ */ React114.createElement(\"div\", { className: \"lk-grid-layout-wrapper\" }, /* @__PURE__ */ React114.createElement(GridLayout, { tracks }, /* @__PURE__ */ React114.createElement(ParticipantTile, null))) : /* @__PURE__ */ React114.createElement(\"div\", { className: \"lk-focus-layout-wrapper\" }, /* @__PURE__ */ React114.createElement(FocusLayoutContainer, null, /* @__PURE__ */ React114.createElement(CarouselLayout, { tracks: carouselTracks }, /* @__PURE__ */ React114.createElement(ParticipantTile, null)), focusTrack && /* @__PURE__ */ React114.createElement(FocusLayout, { trackRef: focusTrack }))), /* @__PURE__ */ React114.createElement(ControlBar, { controls: { chat: true, settings: !!SettingsComponent } })),\n /* @__PURE__ */ React114.createElement(\n Chat,\n {\n style: { display: widgetState.showChat ? \"grid\" : \"none\" },\n messageFormatter: chatMessageFormatter,\n messageEncoder: chatMessageEncoder,\n messageDecoder: chatMessageDecoder\n }\n ),\n SettingsComponent && /* @__PURE__ */ React114.createElement(\n \"div\",\n {\n className: \"lk-settings-menu-modal\",\n style: { display: widgetState.showSettings ? \"block\" : \"none\" }\n },\n /* @__PURE__ */ React114.createElement(SettingsComponent, null)\n )\n ), /* @__PURE__ */ React114.createElement(RoomAudioRenderer, null), /* @__PURE__ */ React114.createElement(ConnectionStateToast, null));\n}\n\n// src/prefabs/AudioConference.tsx\nimport * as React115 from \"react\";\nimport { Track as Track11 } from \"livekit-client\";\nfunction AudioConference(_a) {\n var props = __objRest(_a, []);\n const [widgetState, setWidgetState] = React115.useState({\n showChat: false,\n unreadMessages: 0\n });\n const audioTracks = useTracks([Track11.Source.Microphone]);\n useWarnAboutMissingStyles();\n return /* @__PURE__ */ React115.createElement(LayoutContextProvider, { onWidgetChange: setWidgetState }, /* @__PURE__ */ React115.createElement(\"div\", __spreadValues({ className: \"lk-audio-conference\" }, props), /* @__PURE__ */ React115.createElement(\"div\", { className: \"lk-audio-conference-stage\" }, /* @__PURE__ */ React115.createElement(TrackLoop, { tracks: audioTracks }, /* @__PURE__ */ React115.createElement(ParticipantAudioTile, null))), /* @__PURE__ */ React115.createElement(\n ControlBar,\n {\n controls: { microphone: true, screenShare: false, camera: false, chat: true }\n }\n ), widgetState.showChat && /* @__PURE__ */ React115.createElement(Chat, null)));\n}\n\n// src/index.ts\nimport { setLogLevel, setLogExtension, isTrackReference as isTrackReference6 } from \"@livekit/components-core\";\nexport {\n AudioConference,\n AudioTrack,\n AudioVisualizer,\n CameraDisabledIcon_default as CameraDisabledIcon,\n CameraIcon_default as CameraIcon,\n CarouselLayout,\n Chat,\n ChatCloseIcon_default as ChatCloseIcon,\n ChatEntry,\n ChatIcon_default as ChatIcon,\n ChatToggle,\n Chevron_default as Chevron,\n ClearPinButton,\n ConnectionQualityIndicator,\n ConnectionState4 as ConnectionState,\n ConnectionStateToast,\n ControlBar,\n DisconnectButton,\n FocusLayout,\n FocusLayoutContainer,\n FocusToggle,\n FocusToggleIcon_default as FocusToggleIcon,\n GearIcon_default as GearIcon,\n GridLayout,\n LKFeatureContext,\n LayoutContext,\n LayoutContextProvider,\n LeaveIcon_default as LeaveIcon,\n LiveKitRoom,\n LockLockedIcon_default as LockLockedIcon,\n MediaDeviceMenu,\n MediaDeviceSelect,\n MicDisabledIcon_default as MicDisabledIcon,\n MicIcon_default as MicIcon,\n ParticipantAudioTile,\n ParticipantContext,\n ParticipantContextIfNeeded,\n ParticipantLoop,\n ParticipantName,\n ParticipantPlaceholder_default as ParticipantPlaceholder,\n ParticipantTile,\n PreJoin,\n QualityExcellentIcon_default as QualityExcellentIcon,\n QualityGoodIcon_default as QualityGoodIcon,\n QualityPoorIcon_default as QualityPoorIcon,\n QualityUnknownIcon_default as QualityUnknownIcon,\n RoomAudioRenderer,\n RoomContext,\n RoomName,\n ScreenShareIcon_default as ScreenShareIcon,\n ScreenShareStopIcon_default as ScreenShareStopIcon,\n SpinnerIcon_default as SpinnerIcon,\n StartAudio,\n Toast,\n TrackLoop,\n TrackMutedIndicator,\n TrackRefContext,\n TrackToggle,\n UnfocusToggleIcon_default as UnfocusToggleIcon,\n VideoConference,\n VideoTrack,\n formatChatMessageLinks,\n isTrackReference6 as isTrackReference,\n setLogExtension,\n setLogLevel,\n useAudioPlayback,\n useChat,\n useChatToggle,\n useClearPinButton,\n useConnectionQualityIndicator,\n useConnectionState,\n useCreateLayoutContext,\n useDataChannel,\n useDisconnectButton,\n useEnsureCreateLayoutContext,\n useEnsureLayoutContext,\n useEnsureParticipant,\n useEnsureRoom,\n useEnsureTrackRef,\n useFacingMode,\n useFeatureContext,\n useFocusToggle,\n useGridLayout,\n useIsEncrypted,\n useIsMuted,\n useIsSpeaking,\n useLayoutContext,\n useLiveKitRoom,\n useLocalParticipant,\n useLocalParticipantPermissions,\n useMaybeLayoutContext,\n useMaybeParticipantContext,\n useMaybeRoomContext,\n useMaybeTrackRefContext,\n useMediaDeviceSelect,\n useMediaDevices,\n useMultibandTrackVolume,\n usePagination,\n useParticipantAttribute,\n useParticipantAttributes,\n useParticipantContext,\n useParticipantInfo,\n useParticipantPermissions,\n useParticipantTile,\n useParticipantTracks,\n useParticipants,\n usePersistentUserChoices,\n usePinnedTracks,\n usePreviewDevice,\n usePreviewTracks,\n useRemoteParticipant,\n useRemoteParticipants,\n useRoomContext,\n useRoomInfo,\n useSortedParticipants,\n useSpeakingParticipants,\n useStartAudio,\n useStartVideo,\n useSwipe,\n useToken,\n useTrackByName,\n useTrackMutedIndicator,\n useTrackRefContext,\n useTrackToggle,\n useTrackTranscription,\n useTrackVolume,\n useTracks,\n useVisualStableUpdate\n};\n//# sourceMappingURL=index.mjs.map","module.exports = __webpack_public_path__ + \"77d2c612b57621e7c723a71cce67cbfc.js\";","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","import { t } from 'i18next';\n\nexport default () => [\n {\n date: '2024-05-13',\n notes: [\n {\n category: 'feature',\n note: t(\n 'System audit log - Now you can audit actions taken on organizations in master mode.',\n ),\n },\n ],\n },\n {\n date: '2022-02-15',\n notes: [\n {\n category: 'feature',\n note: t(\n `Feature Flags - Now you can add/edit/delete feature flags, set global feature flag values, and assign per org feature flag values. Note: Per org feature flag values will override global feature flag values, if present.`,\n ),\n },\n ],\n },\n {\n date: '2021-02-01',\n notes: [\n {\n category: 'feature',\n note: t(\n `Master Dashboard - New stats boxes how show how many unique Users and Orgs have been active (have had at least one unlock attempt) in the last month, and in the last day.`,\n ),\n },\n ],\n },\n {\n date: '2020-12-22',\n notes: [\n {\n category: 'feature',\n note: t(\n `Add \"Reference Number\" field on create/edit form for Orgs. Value will be sent to Stripe to appear on invoices.`,\n ),\n },\n ],\n },\n {\n date: '2020-10-14',\n notes: [\n {\n note: t(\n `Organizations - Resellers can now be restricted to creating child orgs of a certain billing type.`,\n ),\n },\n ],\n },\n {\n date: '2020-10-05',\n notes: [\n {\n note: t(\n `Organizations - Table now includes an optional \"Sites\" column that shows the number of sites belonging to each org, and can be sorted to find orgs with the most/fewest sites.`,\n ),\n },\n ],\n },\n {\n date: '2020-10-02',\n notes: [\n {\n note: t(\n `Organizations - Table now includes an optional \"Last Activity At\" column (not real-time, but updated periodically and at least daily) that shows the timestamp of the most recent entry activity, and can be sorted to find orgs with/without recent activity. The Edit Organization page also shows this value.`,\n ),\n },\n ],\n },\n {\n date: '2020-09-08',\n notes: [\n {\n note: t(\n `Organizations - Table now includes an optional \"Inactivated At\" column that tracks the timestamp of when an org became inactive. The Edit Organization page also includes this value, and the Category Tags box can also be used for tags indicating why an org became inactive.`,\n ),\n },\n ],\n },\n {\n date: '2020-04-29',\n notes: [\n {\n note: t(\n `Bug Fix - Org switcher only shows the orgs for which you have some level of portal admin access, excluding orgs for which you have only entry-user access.`,\n ),\n },\n ],\n },\n {\n date: '2020-02-06',\n notes: [\n {\n note: t(`Bug Fix - Fixed Parent Org text issue.`),\n },\n ],\n },\n {\n date: '2020-01-28',\n notes: [\n {\n note: t(\n `Identity Roles are now editable even if the user came from an Identity Provider`,\n ),\n },\n ],\n },\n {\n date: '2019-12-30',\n notes: [\n {\n note: t(\n `Accounts Payable Email visible to revshare customers on Account Settings.`,\n ),\n },\n {\n note: t(`Add accounts payable email to MasterOrgs Create/Edit.`),\n },\n ],\n },\n {\n date: '2019-12-12',\n notes: [\n {\n note: t(`Bug fix - Fixed breadcrumb issue.`),\n },\n ],\n },\n {\n date: '2019-11-07',\n notes: [\n {\n note: t(\n `Changed Permissions for viewing sensitive information from certain child organizations`,\n ),\n },\n ],\n },\n {\n date: '2019-10-25',\n notes: [\n {\n note: t(\n `UI - Updated UI to make create/edit organization pages more clear`,\n ),\n },\n {\n note: t(`Bug Fix - Fixed strange URL routing issues`),\n },\n ],\n },\n {\n date: '2019-10-22',\n notes: [\n {\n note: t(\n `Added option to sync namespace nicknames to include the organization name`,\n ),\n },\n {\n note: t(`Master Orgs Page UI redesign`),\n },\n ],\n },\n {\n date: '2019-07-15',\n notes: [\n {\n note: t(\n `Identity Page now shows a list of users attached to said Identity for lookup.`,\n ),\n },\n ],\n },\n {\n date: '2019-06-20',\n notes: [\n {\n note: t(\n `Release notes are now available in Master Mode. Updates for Master Mode will bee seen here moving forward.`,\n ),\n },\n ],\n },\n];\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _BellOutlined = _interopRequireDefault(require('./lib/icons/BellOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _BellOutlined;\nexports.default = _default;\nmodule.exports = _default;","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","module.exports = __webpack_public_path__ + \"a53ca23c172b4fa25b041ddd880555d8.js\";","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 _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nvar recording = true;\n\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n var ret = {};\n objs.forEach(function (obj) {\n if (_typeof(obj) !== 'object') {\n return;\n }\n var keys = Object.keys(obj);\n keys.forEach(function (key) {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: function get() {\n return obj[key];\n }\n });\n });\n });\n recording = true;\n return ret;\n}\n\n/** @internal Internal Usage. Not use in your production. */\nexport var statistic = {};\n\n/** @internal Internal Usage. Not use in your production. */\nexport var _statistic_build_ = {};\n\n/* istanbul ignore next */\nfunction noop() {}\n\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nvar statisticToken = function statisticToken(token) {\n var tokenKeys;\n var proxy = token;\n var flush = noop;\n if (enableStatistic && typeof Proxy !== 'undefined') {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get: function get(obj, prop) {\n if (recording) {\n var _tokenKeys;\n (_tokenKeys = tokenKeys) === null || _tokenKeys === void 0 || _tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = function flush(componentName, componentToken) {\n var _statistic$componentN;\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: _objectSpread(_objectSpread({}, (_statistic$componentN = statistic[componentName]) === null || _statistic$componentN === void 0 ? void 0 : _statistic$componentN.component), componentToken)\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush: flush\n };\n};\nexport default statisticToken;","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CloudUploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M518.3 459a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z\" } }] }, \"name\": \"cloud-upload\", \"theme\": \"outlined\" };\nexports.default = CloudUploadOutlined;\n","import { forEachEnvelopeItem } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { stripMetadataFromStackFrames, addMetadataToStackFrames } from '../metadata.js';\n\n/**\n * Adds module metadata to stack frames.\n *\n * Metadata can be injected by the Sentry bundler plugins using the `moduleMetadata` config option.\n *\n * When this integration is added, the metadata passed to the bundler plugin is added to the stack frames of all events\n * under the `module_metadata` property. This can be used to help in tagging or routing of events from different teams\n * our sources\n */\nconst moduleMetadataIntegration = defineIntegration(() => {\n return {\n name: 'ModuleMetadata',\n setup(client) {\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item )[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n\n client.on('applyFrameMetadata', event => {\n // Only apply stack frame metadata to error events\n if (event.type) {\n return;\n }\n\n const stackParser = client.getOptions().stackParser;\n addMetadataToStackFrames(stackParser, event);\n });\n },\n };\n});\n\nexport { moduleMetadataIntegration };\n//# sourceMappingURL=metadata.js.map\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init2() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init3() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init4() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","module.exports = __webpack_public_path__ + \"3567d1ea443427e944a6f189a0898819.js\";","import React from 'react';\nexport var NotificationContext = /*#__PURE__*/React.createContext({});\nvar NotificationProvider = function NotificationProvider(_ref) {\n var children = _ref.children,\n classNames = _ref.classNames;\n return /*#__PURE__*/React.createElement(NotificationContext.Provider, {\n value: {\n classNames: classNames\n }\n }, children);\n};\nexport default NotificationProvider;","module.exports = __webpack_public_path__ + \"84abf03cc94d264bb38020b4ac5f76e1.js\";","var isKeyable = require('./_isKeyable');\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\nmodule.exports = getMapData;\n","module.exports = __webpack_public_path__ + \"2a8394955e047270a2a965ec67843989.js\";","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return!1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:n,width:l,top:r,right:i,bottom:s,left:d}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&x>=r&&I<=s&&R>=d&&C<=i)return L;const h=getComputedStyle(e),a=parseInt(h.borderLeftWidth,10),g=parseInt(h.borderTopWidth,10),p=parseInt(h.borderRightWidth,10),W=parseInt(h.borderBottomWidth,10);let T=0,B=0;const F=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-a-p:0,V=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-g-W:0,S=\"offsetWidth\"in e?0===e.offsetWidth?0:l/e.offsetWidth:0,X=\"offsetHeight\"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(m===e)T=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,g,W,M+k,M+k+v,v):k-H/2,B=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,a,p,y+D,y+D+E,E),T=Math.max(0,T+M),B=Math.max(0,B+y);else{T=\"start\"===f?k-r-g:\"end\"===f?k-s+W+V:\"nearest\"===f?o(r,s,n,g,W+V,k,k+v,v):k-(r+n/2)+V/2,B=\"start\"===u?D-d-a:\"center\"===u?D-(d+l/2)+F/2:\"end\"===u?D-i+p+F:o(d,i,l,a,p+F,D,D+E,E);const{scrollLeft:t,scrollTop:h}=e;T=0===X?0:Math.max(0,Math.min(h+T/X,e.scrollHeight-n/X+V)),B=0===S?0:Math.max(0,Math.min(t+B/S,e.scrollWidth-l/S+F)),k+=h-T,D+=t-B}L.push({el:e,top:T,left:B})}return L};export{r as compute};//# sourceMappingURL=index.js.map\n","import{compute as t}from\"compute-scroll-into-view\";const o=t=>!1===t?{block:\"end\",inline:\"nearest\"}:(t=>t===Object(t)&&0!==Object.keys(t).length)(t)?t:{block:\"start\",inline:\"nearest\"};function e(e,r){if(!e.isConnected||!(t=>{let o=t;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(e))return;const n=(t=>{const o=window.getComputedStyle(t);return{top:parseFloat(o.scrollMarginTop)||0,right:parseFloat(o.scrollMarginRight)||0,bottom:parseFloat(o.scrollMarginBottom)||0,left:parseFloat(o.scrollMarginLeft)||0}})(e);if((t=>\"object\"==typeof t&&\"function\"==typeof t.behavior)(r))return r.behavior(t(e,r));const l=\"boolean\"==typeof r||null==r?void 0:r.behavior;for(const{el:a,top:i,left:s}of t(e,o(r))){const t=i-n.top+n.bottom,o=s-n.left+n.right;a.scroll({top:t,left:o,behavior:l})}}export{e as default};//# sourceMappingURL=index.js.map\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { ATTR_MARK } from \"../StyleContext\";\nexport var ATTR_CACHE_MAP = 'data-ant-cssinjs-cache-path';\n\n/**\n * This marks style from the css file.\n * Which means not exist in `<style />` tag.\n */\nexport var CSS_FILE_STYLE = '_FILE_STYLE__';\nexport function serialize(cachePathMap) {\n return Object.keys(cachePathMap).map(function (path) {\n var hash = cachePathMap[path];\n return \"\".concat(path, \":\").concat(hash);\n }).join(';');\n}\nvar cachePathMap;\nvar fromCSSFile = true;\n\n/**\n * @private Test usage only. Can save remove if no need.\n */\nexport function reset(mockCache) {\n var fromFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n cachePathMap = mockCache;\n fromCSSFile = fromFile;\n}\nexport function prepare() {\n if (!cachePathMap) {\n cachePathMap = {};\n if (canUseDom()) {\n var div = document.createElement('div');\n div.className = ATTR_CACHE_MAP;\n div.style.position = 'fixed';\n div.style.visibility = 'hidden';\n div.style.top = '-9999px';\n document.body.appendChild(div);\n var content = getComputedStyle(div).content || '';\n content = content.replace(/^\"/, '').replace(/\"$/, '');\n\n // Fill data\n content.split(';').forEach(function (item) {\n var _item$split = item.split(':'),\n _item$split2 = _slicedToArray(_item$split, 2),\n path = _item$split2[0],\n hash = _item$split2[1];\n cachePathMap[path] = hash;\n });\n\n // Remove inline record style\n var inlineMapStyle = document.querySelector(\"style[\".concat(ATTR_CACHE_MAP, \"]\"));\n if (inlineMapStyle) {\n var _inlineMapStyle$paren;\n fromCSSFile = false;\n (_inlineMapStyle$paren = inlineMapStyle.parentNode) === null || _inlineMapStyle$paren === void 0 || _inlineMapStyle$paren.removeChild(inlineMapStyle);\n }\n document.body.removeChild(div);\n }\n }\n}\nexport function existPath(path) {\n prepare();\n return !!cachePathMap[path];\n}\nexport function getStyleAndHash(path) {\n var hash = cachePathMap[path];\n var styleStr = null;\n if (hash && canUseDom()) {\n if (fromCSSFile) {\n styleStr = CSS_FILE_STYLE;\n } else {\n var _style = document.querySelector(\"style[\".concat(ATTR_MARK, \"=\\\"\").concat(cachePathMap[path], \"\\\"]\"));\n if (_style) {\n styleStr = _style.innerHTML;\n } else {\n // Clean up since not exist anymore\n delete cachePathMap[path];\n }\n }\n }\n return [styleStr, hash];\n}","module.exports = __webpack_public_path__ + \"714763ddd9bd466c95df7b042900bb87.js\";","'use strict';\nvar $ = require('../internals/export');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findlastindex\n$({ target: 'Array', proto: true }, {\n findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) {\n return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\naddToUnscopables('findLastIndex');\n","module.exports = __webpack_public_path__ + \"4db8b05f109448d519f60cbb920dc38e.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-data-fetch-transfer .ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item input[type=checkbox]{width:20px;height:20px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormDataFetchTransfer/OpFormDataFetchTransfer.scss\"],\"names\":[],\"mappings\":\"AAKE,0GAEE,UAAA,CACA,WAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-form-data-fetch-transfer {\\n /** Making this a little bigger that checkbox which is 18px to prevent \\n issue where clicking on bottom of checkbox doesn't check/uncheck */\\n .ant-checkbox-wrapper.ant-checkbox-wrapper-in-form-item\\n input[type='checkbox'] {\\n width: 20px;\\n height: 20px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","module.exports = __webpack_public_path__ + \"57f4109bd1f06be4dc2bcb8ff7eaf1e5.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.language-selector-not-authenticated{padding-top:4rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/LanguageSelectorNotAuthenticated/LanguageSelectorNotAuthenticated.scss\"],\"names\":[],\"mappings\":\"AAEA,qCACE,gBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.language-selector-not-authenticated {\\n padding-top: common.toRem(56);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use client\";\n\nimport * as React from 'react';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { useLocale } from '../locale';\nimport { useToken } from '../theme/internal';\nconst Empty = () => {\n const [, token] = useToken();\n const [locale] = useLocale('Empty');\n const bgColor = new TinyColor(token.colorBgBase);\n // Dark Theme need more dark of this\n const themeStyle = bgColor.toHsl().l < 0.5 ? {\n opacity: 0.65\n } : {};\n return /*#__PURE__*/React.createElement(\"svg\", {\n style: themeStyle,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"title\", null, (locale === null || locale === void 0 ? void 0 : locale.description) || 'Empty'), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n fillOpacity: \".8\",\n fill: \"#F5F5F7\",\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\",\n fill: \"#AEB8C2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n fill: \"url(#linearGradient-1)\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\",\n fill: \"#F5F5F7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\",\n fill: \"#DCE0E6\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\",\n fill: \"#DCE0E6\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(149.65 15.383)\",\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'EmptyImage';\n}\nexport default Empty;","\"use client\";\n\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { useToken } from '../theme/internal';\nimport { useLocale } from '../locale';\nconst Simple = () => {\n const [, token] = useToken();\n const [locale] = useLocale('Empty');\n const {\n colorFill,\n colorFillTertiary,\n colorFillQuaternary,\n colorBgContainer\n } = token;\n const {\n borderColor,\n shadowColor,\n contentColor\n } = useMemo(() => ({\n borderColor: new TinyColor(colorFill).onBackground(colorBgContainer).toHexShortString(),\n shadowColor: new TinyColor(colorFillTertiary).onBackground(colorBgContainer).toHexShortString(),\n contentColor: new TinyColor(colorFillQuaternary).onBackground(colorBgContainer).toHexShortString()\n }), [colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer]);\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"title\", null, (locale === null || locale === void 0 ? void 0 : locale.description) || 'Empty'), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n fill: shadowColor,\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"nonzero\",\n stroke: borderColor\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n fill: contentColor\n }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Simple.displayName = 'SimpleImage';\n}\nexport default Simple;","import { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedEmptyStyle = token => {\n const {\n componentCls,\n margin,\n marginXS,\n marginXL,\n fontSize,\n lineHeight\n } = token;\n return {\n [componentCls]: {\n marginInline: marginXS,\n fontSize,\n lineHeight,\n textAlign: 'center',\n // 原来 &-image 没有父子结构,现在为了外层承担我们的 hashId,改成父子结构\n [`${componentCls}-image`]: {\n height: token.emptyImgHeight,\n marginBottom: marginXS,\n opacity: token.opacityImage,\n img: {\n height: '100%'\n },\n svg: {\n maxWidth: '100%',\n height: '100%',\n margin: 'auto'\n }\n },\n [`${componentCls}-description`]: {\n color: token.colorTextDescription\n },\n // 原来 &-footer 没有父子结构,现在为了外层承担我们的 hashId,改成父子结构\n [`${componentCls}-footer`]: {\n marginTop: margin\n },\n '&-normal': {\n marginBlock: marginXL,\n color: token.colorTextDescription,\n [`${componentCls}-description`]: {\n color: token.colorTextDescription\n },\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightMD\n }\n },\n '&-small': {\n marginBlock: marginXS,\n color: token.colorTextDescription,\n [`${componentCls}-image`]: {\n height: token.emptyImgHeightSM\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Empty', token => {\n const {\n componentCls,\n controlHeightLG,\n calc\n } = token;\n const emptyToken = mergeToken(token, {\n emptyImgCls: `${componentCls}-img`,\n emptyImgHeight: calc(controlHeightLG).mul(2.5).equal(),\n emptyImgHeightMD: controlHeightLG,\n emptyImgHeightSM: calc(controlHeightLG).mul(0.875).equal()\n });\n return [genSharedEmptyStyle(emptyToken)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport useStyle from './style';\nconst defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nconst simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nconst Empty = _a => {\n var {\n className,\n rootClassName,\n prefixCls: customizePrefixCls,\n image = defaultEmptyImg,\n description,\n children,\n imageStyle,\n style\n } = _a,\n restProps = __rest(_a, [\"className\", \"rootClassName\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\", \"style\"]);\n const {\n getPrefixCls,\n direction,\n empty\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('empty', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const [locale] = useLocale('Empty');\n const des = typeof description !== 'undefined' ? description : locale === null || locale === void 0 ? void 0 : locale.description;\n const alt = typeof des === 'string' ? des : 'empty';\n let imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classNames(hashId, cssVarCls, prefixCls, empty === null || empty === void 0 ? void 0 : empty.className, {\n [`${prefixCls}-normal`]: image === simpleEmptyImg,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName),\n style: Object.assign(Object.assign({}, empty === null || empty === void 0 ? void 0 : empty.style), style)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-image`,\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-footer`\n }, children)));\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nif (process.env.NODE_ENV !== 'production') {\n Empty.displayName = 'Empty';\n}\nexport default Empty;","module.exports = \"data:image/svg+xml,%3csvg width='202' height='88' viewBox='0 0 202 88' fill='none' xmlns='http://www.w3.org/2000/svg'%3e %3cg id='avigilon-alta-logo-lightmode' clip-path='url(%23clip0_126_748)'%3e %3cpath id='Vector' d='M93.5019 44.5206C93.0649 44.5206 92.6714 44.8027 92.4916 45.2458L89.7273 51.1464C89.4763 51.6453 89.8482 52.4139 90.5176 52.4139H111.424C112.136 52.4139 112.524 51.7197 112.273 51.1495L109.508 45.2458C109.329 44.8027 108.932 44.5206 108.498 44.5206H93.505H93.5019ZM98.9748 0C98.3085 0 97.7011 0.384279 97.4191 0.98859L73.7766 51.1278C73.4946 51.7259 73.9315 52.4139 74.5916 52.4139H82.6894C83.1233 52.4139 83.5168 52.1597 83.6935 51.7662L100.224 16.304C100.49 15.7059 101.352 15.6997 101.631 16.304L118.313 51.7662C118.492 52.1597 118.886 52.4139 119.317 52.4139H127.411C128.072 52.4139 128.509 51.7259 128.227 51.1278L104.587 0.98859C104.302 0.384279 103.695 0 103.028 0H98.9748Z' fill='url(%23paint0_linear_126_748)'/%3e %3cg id='Clip path group'%3e %3cmask id='mask0_126_748' style='mask-type:luminance' maskUnits='userSpaceOnUse' x='73' y='0' width='56' height='53'%3e %3cg id='c'%3e %3cpath id='Vector_2' d='M93.5019 44.5206C93.0649 44.5206 92.6714 44.8027 92.4916 45.2458L89.7273 51.1464C89.4763 51.6453 89.8482 52.4139 90.5176 52.4139H111.424C112.136 52.4139 112.524 51.7197 112.273 51.1495L109.508 45.2458C109.329 44.8027 108.932 44.5206 108.498 44.5206H93.505H93.5019ZM98.9748 0C98.3085 0 97.7011 0.384279 97.4191 0.98859L73.7766 51.1278C73.4946 51.7259 73.9315 52.4139 74.5916 52.4139H82.6894C83.1233 52.4139 83.5168 52.1597 83.6935 51.7662L100.224 16.304C100.49 15.7059 101.352 15.6997 101.631 16.304L118.313 51.7662C118.492 52.1597 118.886 52.4139 119.317 52.4139H127.411C128.072 52.4139 128.509 51.7259 128.227 51.1278L104.587 0.98859C104.302 0.384279 103.695 0 103.028 0H98.9748Z' fill='white'/%3e %3c/g%3e %3c/mask%3e %3cg mask='url(%23mask0_126_748)'%3e %3cg id='Group'%3e %3cpath id='Vector_3' d='M128.512 0H73.4915V52.4139H128.512V0Z' fill='url(%23paint1_linear_126_748)'/%3e %3c/g%3e %3c/g%3e %3c/g%3e %3cpath id='Vector_4' d='M170.621 85.5392H162.183V70.6794C162.183 70.4252 161.978 70.2207 161.724 70.2207H160.484C160.233 70.2207 160.026 70.4252 160.026 70.6794V77.6305V87.2375C160.026 87.4916 160.23 87.6961 160.484 87.6961H161.724C161.724 87.6961 161.733 87.6961 161.739 87.6961H170.621C170.875 87.6961 171.08 87.4916 171.08 87.2406V86.001C171.08 85.7468 170.875 85.5423 170.621 85.5423' fill='white'/%3e %3cpath id='Vector_5' d='M184.04 70.2241H171.043C170.789 70.2241 170.584 70.4287 170.584 70.6828V71.9224C170.584 72.1765 170.789 72.3532 171.043 72.3532H176.463V87.2409C176.463 87.495 176.667 87.6995 176.921 87.6995H178.161C178.415 87.6995 178.62 87.495 178.62 87.2409V72.3532H184.04C184.294 72.3532 184.499 72.1486 184.499 71.8945V70.6828C184.499 70.4287 184.294 70.2241 184.04 70.2241Z' fill='white'/%3e %3cpath id='Vector_6' d='M143.846 81.7708L147.14 74.643C147.193 74.5315 147.285 74.3269 147.316 74.2804C147.335 74.2401 147.409 74.11 147.546 74.1069C147.682 74.1069 147.757 74.2401 147.775 74.2804C147.806 74.33 147.899 74.5346 147.952 74.643L151.246 81.7708H143.849H143.846ZM156.13 87.2065L148.696 71.1163C148.683 71.0853 148.317 70.2207 147.546 70.2207C146.774 70.2207 146.408 71.0853 146.396 71.1163L138.961 87.2065C138.856 87.4327 139.023 87.693 139.275 87.693H140.892C141.025 87.693 141.146 87.6155 141.205 87.4947L142.854 83.9246H152.244L153.893 87.4947C153.948 87.6155 154.069 87.693 154.203 87.693H155.82C156.071 87.693 156.239 87.4327 156.133 87.2065' fill='white'/%3e %3cpath id='Vector_7' d='M189.246 81.7708L192.541 74.643C192.59 74.5315 192.686 74.3269 192.717 74.2804C192.736 74.2401 192.81 74.11 192.947 74.1069C193.083 74.1069 193.157 74.2401 193.176 74.2804C193.207 74.33 193.3 74.5346 193.353 74.643L196.647 81.7708H189.25H189.246ZM201.531 87.2065L194.096 71.1163C194.084 71.0853 193.718 70.2207 192.947 70.2207C192.175 70.2207 191.809 71.0853 191.797 71.1163L184.362 87.2065C184.257 87.4327 184.424 87.693 184.675 87.693H186.293C186.426 87.693 186.547 87.6155 186.606 87.4947L188.255 83.9246H197.645L199.293 87.4947C199.349 87.6155 199.47 87.693 199.603 87.693H201.221C201.472 87.693 201.639 87.4327 201.534 87.2065' fill='white'/%3e %3cpath id='Vector_8' d='M42.9227 70.1963H40.5303C40.3443 70.1963 40.1956 70.345 40.1956 70.531V87.2688C40.1956 87.4548 40.3474 87.6035 40.5303 87.6035H42.9227C43.1086 87.6035 43.2574 87.4548 43.2574 87.2688V70.531C43.2574 70.345 43.1086 70.1963 42.9227 70.1963Z' fill='white'/%3e %3cpath id='Vector_9' d='M73.2188 70.1963H70.8232C70.6373 70.1963 70.4885 70.345 70.4885 70.531V87.2688C70.4885 87.4548 70.6373 87.6035 70.8232 87.6035H73.2188C73.4047 87.6035 73.5535 87.4548 73.5535 87.2688V70.531C73.5535 70.345 73.4047 70.1963 73.2188 70.1963Z' fill='white'/%3e %3cpath id='Vector_10' d='M130.479 70.2241H128.056C127.876 70.2241 127.727 70.3729 127.727 70.5526V81.4581C127.727 81.6688 127.442 81.7618 127.291 81.5883L119.85 70.5123C119.729 70.3326 119.527 70.2241 119.314 70.2241H116.301C116.143 70.2241 115.982 70.376 115.982 70.534V87.306C115.982 87.4826 116.134 87.6314 116.326 87.6314H118.7C118.923 87.6314 119.05 87.4733 119.05 87.2812V75.6164C119.05 75.3778 119.36 75.2817 119.493 75.4801L127.492 87.3741C127.6 87.5353 127.78 87.6314 127.975 87.6314H130.43C130.631 87.6314 130.799 87.5291 130.799 87.2657V70.5402C130.799 70.3822 130.641 70.2241 130.486 70.2241' fill='white'/%3e %3cpath id='Vector_11' d='M91.2211 84.5352H82.6368C82.4539 84.5352 82.3052 84.3864 82.3052 84.2036V70.5245C82.3052 70.3416 82.1564 70.1929 81.9736 70.1929H79.5718C79.389 70.1929 79.2402 70.3416 79.2402 70.5245V87.2654C79.2402 87.4483 79.389 87.597 79.5718 87.597H91.218C91.4008 87.597 91.5496 87.4483 91.5496 87.2654V84.8637C91.5496 84.6808 91.4008 84.5321 91.218 84.5321' fill='white'/%3e %3cpath id='Vector_12' d='M10.699 70.5248C10.603 70.3234 10.4046 70.1963 10.1815 70.1963H8.83653C8.6165 70.1963 8.41506 70.3234 8.31899 70.5248L0.466051 87.1728C0.373081 87.3711 0.518735 87.6004 0.735667 87.6004H3.42562C3.56818 87.6004 3.70144 87.5168 3.76032 87.3866L9.2487 75.6103C9.33547 75.412 9.62368 75.4089 9.71665 75.6103L15.2577 87.3866C15.3166 87.5168 15.4468 87.6004 15.5924 87.6004H18.2824C18.5024 87.6004 18.648 87.3711 18.552 87.1728L10.7021 70.5248H10.699ZM12.9675 87.6004H6.02571C5.80258 87.6004 5.67862 87.3463 5.76229 87.179L6.6796 85.2204C6.73848 85.0747 6.87174 84.9787 7.0143 84.9787H11.9944C12.1401 84.9787 12.2702 85.0716 12.3291 85.2204L13.2464 87.1821C13.3301 87.3711 13.2 87.6004 12.9644 87.6004' fill='white'/%3e %3cpath id='Vector_13' d='M28.1588 87.2716C28.0627 87.473 27.8644 87.6001 27.6413 87.6001H26.2963C26.0732 87.6001 25.8748 87.473 25.7788 87.2716L17.9289 70.6205C17.8359 70.4222 17.9816 70.1929 18.2016 70.1929H20.8885C21.031 70.1929 21.1643 70.2765 21.2232 70.4067L26.7116 82.183C26.7983 82.3813 27.0865 82.3844 27.1795 82.183L32.7206 70.4067C32.7795 70.2765 32.9096 70.1929 33.0553 70.1929H35.7452C35.9653 70.1929 36.1109 70.4222 36.0148 70.6205L28.165 87.2685L28.1588 87.2716Z' fill='white'/%3e %3cpath id='Vector_14' d='M102.597 84.9351C99.2629 84.9351 96.5605 82.2328 96.5605 78.8982C96.5605 75.5637 99.2629 72.8613 102.597 72.8613C105.932 72.8613 108.634 75.5637 108.634 78.8982C108.634 82.2328 105.932 84.9351 102.597 84.9351ZM102.597 69.7964C97.5708 69.7964 93.4956 73.8716 93.4956 78.8982C93.4956 83.9249 97.5708 88.0001 102.597 88.0001C107.624 88.0001 111.699 83.9249 111.699 78.8982C111.699 73.8716 107.624 69.7964 102.597 69.7964Z' fill='white'/%3e %3cpath id='Vector_15' d='M65.8804 78.1886C65.8649 78.0026 65.7068 77.8601 65.5209 77.8601H58.6038C58.4179 77.8601 58.2661 78.0119 58.2661 78.1979V80.1782C58.2661 80.3641 58.4179 80.516 58.6038 80.516H62.081C62.4776 80.516 62.5613 80.7515 62.4404 81.0583C61.5231 83.4414 59.1462 85.0994 56.4004 84.9166C53.5214 84.7275 51.1321 82.4528 50.8129 79.5831C50.4069 75.9387 53.2487 72.8552 56.8126 72.8552C58.4055 72.8552 59.8528 73.475 60.9312 74.4853C61.0676 74.6154 61.2473 74.6929 61.4364 74.6929H64.4331C64.6408 74.6929 64.7647 74.4667 64.6593 74.2869C62.9363 71.3583 59.6265 69.4803 55.9108 69.8367C51.6744 70.2427 48.2345 73.6237 47.7665 77.8539C47.156 83.3454 51.442 87.997 56.8095 87.997C61.6967 87.997 65.682 84.148 65.9021 79.3166C65.9083 79.1772 65.9114 79.0377 65.9114 78.8983C65.9114 78.6596 65.9021 78.421 65.8835 78.1886' fill='white'/%3e %3cpath id='Vector_16' d='M134.05 72.3222V70.4565H133.386V70.2241H134.979V70.4565H134.31V72.3222H134.05Z' fill='white'/%3e %3cpath id='Vector_17' d='M137.114 72.3222V70.596L136.402 72.3222H136.293L135.584 70.596V72.3222H135.323V70.2241H135.698L136.349 71.8046L137.003 70.2241H137.375V72.3222H137.114Z' fill='white'/%3e %3c/g%3e %3cdefs%3e %3clinearGradient id='paint0_linear_126_748' x1='73.6867' y1='26.2085' x2='128.316' y2='26.2085' gradientUnits='userSpaceOnUse'%3e %3cstop offset='0.2' stop-color='%23005EB8'/%3e %3cstop offset='0.95' stop-color='%23B7BF10'/%3e %3c/linearGradient%3e %3clinearGradient id='paint1_linear_126_748' x1='73.1503' y1='24.9999' x2='127.851' y2='24.9999' gradientUnits='userSpaceOnUse'%3e %3cstop offset='0.2' stop-color='%23005EB8'/%3e %3cstop offset='0.95' stop-color='%23B7BF10'/%3e %3c/linearGradient%3e %3cclipPath id='clip0_126_748'%3e %3crect width='201.124' height='88' fill='white' transform='translate(0.43811)'/%3e %3c/clipPath%3e %3c/defs%3e %3c/svg%3e\"","module.exports = __webpack_public_path__ + \"47e5776dff3b80ed69ab5947dba33c76.js\";","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheDelete;\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","module.exports = __webpack_public_path__ + \"2b89e20071dd734f42b8694d7a84c264.js\";","import { logger, dsnToString, createEnvelope } from '@sentry/utils';\nimport { serializeMetricBuckets } from './utils.js';\n\n/**\n * Captures aggregated metrics to the supplied client.\n */\nfunction captureAggregateMetrics(client, metricBucketItems) {\n logger.log(`Flushing aggregated metrics, number of metrics: ${metricBucketItems.length}`);\n const dsn = client.getDsn();\n const metadata = client.getSdkMetadata();\n const tunnel = client.getOptions().tunnel;\n\n const metricsEnvelope = createMetricEnvelope(metricBucketItems, dsn, metadata, tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n client.sendEnvelope(metricsEnvelope);\n}\n\n/**\n * Create envelope from a metric aggregate.\n */\nfunction createMetricEnvelope(\n metricBucketItems,\n dsn,\n metadata,\n tunnel,\n) {\n const headers = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata && metadata.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n const item = createMetricEnvelopeItem(metricBucketItems);\n return createEnvelope(headers, [item]);\n}\n\nfunction createMetricEnvelopeItem(metricBucketItems) {\n const payload = serializeMetricBuckets(metricBucketItems);\n const metricHeaders = {\n type: 'statsd',\n length: payload.length,\n };\n return [metricHeaders, payload];\n}\n\nexport { captureAggregateMetrics, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n const fullLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, fullLocale]);\n const getLocaleCode = React.useMemo(() => {\n const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [fullLocale]);\n return [getLocale, getLocaleCode];\n};\nexport default useLocale;","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgSolid: getAlphaColor(colorTextBase, 1),\n colorBgSolidHover: getAlphaColor(colorTextBase, 0.75),\n colorBgSolidActive: getAlphaColor(colorTextBase, 0.95),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBgBlur: 'transparent',\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\n\n/**![exclamation-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0tMzIgMjMyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjcyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYyOTZ6bTMyIDQ0MGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ExclamationCircleFilled';\n}\nexport default RefIcon;","import {\n useMutation,\n useQueryClient,\n UseMutationOptions,\n MutationFunction,\n} from '@tanstack/react-query';\nimport { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport Helium from 'utils/helium';\nimport { queryRequest } from 'utils/queryRequest';\nimport * as Sentry from '@sentry/react';\n\nexport type MutationArgs<\n T extends keyof Api.ClientSpec = keyof Api.ClientSpec,\n> = Api.ClientSpec[T]['pathParams'] extends []\n ? {\n apiEndpointRequirements?: never;\n payload?: ApiClientPayload<T>;\n query?: ApiClientQuery<T>;\n [key: string]: any;\n }\n : {\n apiEndpointRequirements: Api.ClientSpec[T]['pathParams'];\n payload?: ApiClientPayload<T>;\n query?: ApiClientQuery<T>;\n [key: string]: any;\n };\n\nexport type ApiClientResponse<T extends keyof Api.ClientSpec> = Awaited<\n ReturnType<Api.Client[T]>\n>['json']['data'];\n\ntype ApiClientPayload<T extends keyof Api.ClientSpec = keyof Api.ClientSpec> =\n Api.ClientSpec[T]['payloadOffset'] extends -1\n ? never\n : Parameters<Api.Client[T]>[Api.ClientSpec[T]['payloadOffset']];\n\ntype ApiClientQuery<T extends keyof Api.ClientSpec = keyof Api.ClientSpec> =\n Api.ClientSpec[T]['queryOffset'] extends -1\n ? never\n : Parameters<Api.Client[T]>[Api.ClientSpec[T]['queryOffset']];\n\ninterface BaseOpMutationOptions<TData, TVariables> {\n onSuccessMessage?:\n | string\n | ((mutationResponse: TData, mutationArgs: TVariables) => string)\n | null;\n onSuccessCallback?: (\n mutationResponse: TData,\n mutationArgs: TVariables,\n ) => void;\n onErrorMessage?: string | ((error: OP.ApiError) => string) | null;\n shouldSuppressErrorMessage?:\n | boolean\n | ((error: OP.ApiError) => boolean | void);\n onErrorCallback?: (error: OP.ApiError, variables?: TVariables) => void;\n queryKeysToInvalidate?: (string | number)[][];\n headers?: Record<string, string>;\n overrideApiClient?: typeof Helium.client;\n catchMutateAsyncError?: boolean;\n}\ninterface UseOpMutationOptionsWithoutApiEndpointName<\n TData extends any = any,\n TVariables extends any = any,\n> extends UseMutationOptions<TData, OP.ApiError, TVariables>,\n BaseOpMutationOptions<TData, TVariables> {\n apiEndpointName?: undefined;\n}\n\ninterface UseOpMutationOptionsWithApiEndpointName<\n T extends keyof Api.ClientSpec,\n TData extends any = any,\n TVariables extends any = any,\n> extends UseMutationOptions<TData, OP.ApiError, TVariables>,\n BaseOpMutationOptions<TData, TVariables> {\n apiEndpointName: T;\n}\n\ntype UseOpMutationOptions<\n T extends keyof Api.ClientSpec,\n TData extends unknown = ApiClientResponse<T>,\n TVariables extends unknown = MutationArgs<T>,\n> =\n | UseOpMutationOptionsWithApiEndpointName<T, TData, TVariables>\n | UseOpMutationOptionsWithoutApiEndpointName<TData, TVariables>;\n\nexport const useOpMutation = <\n T extends keyof Api.ClientSpec,\n TData extends unknown = ApiClientResponse<T>,\n TVariables extends unknown = MutationArgs<T>,\n>({\n apiEndpointName,\n onSuccessMessage,\n onErrorMessage,\n onSuccessCallback,\n onErrorCallback, // Will only affect mutateAsync (need to prevent mutate using types in separate PR)\n queryKeysToInvalidate,\n shouldSuppressErrorMessage = false,\n mutationKey,\n mutationFn,\n onError: _onError,\n onSuccess: _onSuccess,\n // TODO fix so we can add these back\n onMutate,\n onSettled,\n headers,\n overrideApiClient,\n catchMutateAsyncError = true,\n ...useOpMutationOptions\n}: UseOpMutationOptions<T, TData, TVariables>) => {\n const dispatch = useDispatch();\n const queryClient = useQueryClient();\n\n // TODO - get the language based on authed page logic if not in identity\n /** we first look at the identity language and set the language to that.\n * If that is not set, we then fallback to the local storage setting.\n * If that is not set, then we fallback to the browser locale.\n * And if that is not supported then we use English (en). */\n const currentIdentityLanguage = useSelector(selectCurrentIdentityLanguage());\n\n const finalMutationFn =\n mutationFn ??\n ((async ({\n apiEndpointRequirements = [],\n payload: rawPayload,\n query: rawQuery,\n }: MutationArgs<T>): Promise<ApiClientResponse<T>> => {\n const parametersArray: Parameters<Api.Client[T]>[number][] = [\n ...apiEndpointRequirements,\n ];\n\n if (rawPayload) {\n parametersArray.push(rawPayload);\n }\n if (rawQuery) {\n parametersArray.push(rawQuery);\n }\n\n const result = await queryRequest({\n apiEndpointName: apiEndpointName!,\n parameters: parametersArray as Parameters<Api.Client[T]>,\n currentIdentityLanguage,\n headers,\n overrideApiClient,\n });\n\n if (result.statusCode >= 400) {\n throw result.json;\n }\n\n return result.json?.data;\n\n // TODO: Figure out how to do this method without needing the typecast\n }) as MutationFunction<TData, TVariables>);\n\n const customOnError = (error: OP.ApiError) => {\n const errorMessage =\n typeof onErrorMessage === 'string'\n ? onErrorMessage\n : onErrorMessage\n ? onErrorMessage(error)\n : undefined;\n\n if (\n (typeof shouldSuppressErrorMessage === 'boolean' &&\n !shouldSuppressErrorMessage) ||\n (typeof shouldSuppressErrorMessage === 'function' &&\n !shouldSuppressErrorMessage(error))\n ) {\n dispatch(setAlert('error', errorMessage || error.message));\n }\n };\n\n const customOnSuccess = (\n mutationResponse: TData,\n mutationArgs: TVariables,\n ) => {\n const successMessage =\n typeof onSuccessMessage === 'string'\n ? onSuccessMessage\n : onSuccessMessage\n ? onSuccessMessage(mutationResponse, mutationArgs)\n : undefined;\n\n if (successMessage) {\n dispatch(setAlert('success', successMessage));\n }\n\n if (onSuccessCallback) {\n onSuccessCallback(mutationResponse, mutationArgs);\n }\n\n if (queryKeysToInvalidate) {\n queryKeysToInvalidate.forEach((queryKey) => {\n queryClient.invalidateQueries({ queryKey });\n });\n }\n };\n\n const {\n mutateAsync: rawMutateAsync,\n // mutate: _mutate, // TODO - uncomment in PR to prevent mutate from being used\n ...rest\n } = useMutation<TData, OP.ApiError, TVariables>({\n mutationKey: mutationKey || apiEndpointName ? [apiEndpointName] : undefined,\n mutationFn: finalMutationFn,\n onError: (_onError || customOnError) as (error: OP.ApiError) => void,\n onSuccess: (_onSuccess || customOnSuccess) as (\n data: TData,\n variables: TVariables,\n context: unknown,\n ) => unknown,\n onMutate,\n onSettled: onSettled as (\n data: TData | undefined,\n error: OP.ApiError | null,\n variables: TVariables,\n context: unknown,\n ) => unknown,\n ...useOpMutationOptions,\n });\n\n const mutateAsync = useCallback<typeof rawMutateAsync>(\n async (variables, options) => {\n try {\n return await rawMutateAsync(variables, options);\n } catch (error) {\n const OpError = error as OP.ApiError;\n\n if (OpError.statusCode >= 500) {\n Sentry.captureException(OpError);\n }\n\n if (onErrorCallback) {\n onErrorCallback(OpError, variables);\n }\n\n return undefined as TData;\n }\n },\n [onErrorCallback, rawMutateAsync],\n );\n\n return {\n /**\n * When using useOpMutation directly, we want to catch the error in the custom\n * mutateAsync function so that we don't need to wrap each call to mutateAsync\n * in a try/catch block.\n *\n * However, when using useOpMutation as a hook in another useOpMutation hook\n * within the mutationFn, we want to allow the error to bubble up so that the\n * parent hook can handle the error and block in subsequent code from running.\n */\n mutateAsync: catchMutateAsyncError ? mutateAsync : rawMutateAsync,\n ...rest,\n };\n};\n","module.exports = __webpack_public_path__ + \"f6b33aded7ae7504bfcc4550925cccb0.js\";","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-text{font-size:1rem !important;line-height:1.2857142857 !important;display:block !important}.op-text--large{font-size:1.14285714rem !important;line-height:1.5 !important}.op-text--regular{font-size:1rem !important;line-height:1.2857142857 !important}.op-text--small{font-size:.85714286rem !important;line-height:1.5 !important}.op-text--tiny{font-size:.71428571rem !important;line-height:1.5 !important}.op-text--ellipses{display:block !important}.op-text--inline{display:inline-block !important}.op-text--300{font-weight:300}.op-text--400{font-weight:400}.op-text--500{font-weight:500}.op-text--600{font-weight:600}.op-text--700{font-weight:700}.op-text--800{font-weight:800}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpText/OpText.scss\",\"webpack://./app/assets/scss/common/_mixins.scss\"],\"names\":[],\"mappings\":\"AAEA,SCsCI,yBAAA,CACA,mCAAA,CDrCF,wBAAA,CAEA,gBCkCE,kCAAA,CACA,0BAAA,CD/BF,kBC8BE,yBAAA,CACA,mCAAA,CD3BF,gBC0BE,iCAAA,CACA,0BAAA,CDvBF,eCsBE,iCAAA,CACA,0BAAA,CDnBF,mBACE,wBAAA,CAGF,iBACE,+BAAA,CAMA,cACE,eAHM,CAER,cACE,eAHM,CAER,cACE,eAHM,CAER,cACE,eAHM,CAER,cACE,eAHM,CAER,cACE,eAHM\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.op-text {\\n @include common.get-body-font-styles('regular', true);\\n display: block !important;\\n\\n &--large {\\n @include common.get-body-font-styles('large', true);\\n }\\n\\n &--regular {\\n @include common.get-body-font-styles('regular', true);\\n }\\n\\n &--small {\\n @include common.get-body-font-styles('small', true);\\n }\\n\\n &--tiny {\\n @include common.get-body-font-styles('tiny', true);\\n }\\n\\n &--ellipses {\\n display: block !important;\\n }\\n\\n &--inline {\\n display: inline-block !important;\\n }\\n\\n // Create .op-text--300, .op-text--400 etc...\\n $weights: (300, 400, 500, 600, 700, 800);\\n @each $weight in $weights {\\n &--#{$weight} {\\n font-weight: $weight;\\n }\\n }\\n}\\n\",\"@use 'sass:map';\\n@use './variables';\\n\\n@mixin larger-than($width) {\\n @media (min-width: $width) {\\n @content;\\n }\\n}\\n\\n// Optional Utility Mixins\\n\\n/** \\n * Only use if must, prefer using larger-than to prevent issues \\n * at breakpoints. If you must use this, and you are * using a \\n * breakpoint variable, make sure to subtract 1 from the *breakpoint variable.\\n */\\n@mixin smaller-than($width) {\\n @media (max-width: $width) {\\n @content;\\n }\\n}\\n\\n@mixin between($minwidth, $maxwidth) {\\n @media (min-width: $minwidth) and (max-width: $maxwidth) {\\n @content;\\n }\\n}\\n\\n@mixin get-header-font-styles($size: 'h4', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$heading-font-sizes, $size) !important;\\n line-height: map.get(variables.$heading-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$heading-font-sizes, $size);\\n line-height: map.get(variables.$heading-line-heights, $size);\\n }\\n}\\n\\n@mixin get-body-font-styles($size: 'regular', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$body-font-sizes, $size) !important;\\n line-height: map.get(variables.$body-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$body-font-sizes, $size);\\n line-height: map.get(variables.$body-line-heights, $size);\\n }\\n}\\n\\n@mixin get-form-font-styles($size: 'input', $important: false) {\\n @if ($important) {\\n font-size: map.get(variables.$form-font-sizes, $size) !important;\\n line-height: map.get(variables.$form-line-heights, $size) !important;\\n } @else {\\n font-size: map.get(variables.$form-font-sizes, $size);\\n line-height: map.get(variables.$form-line-heights, $size);\\n }\\n}\\n\\n@mixin create-custom-scroll-shadow($bgColor: var(--colorHeaderBg)) {\\n overflow-x: hidden;\\n overflow-y: auto;\\n\\n background:\\n /* Shadow Cover TOP */\\n linear-gradient($bgColor 30%, transparent) center top,\\n /* Shadow Cover BOTTOM */ linear-gradient(transparent, $bgColor 70%) center\\n bottom,\\n /* Shadow TOP */\\n radial-gradient(farthest-side at 50% 0, var(--scrollShadow), $bgColor)\\n center top,\\n /* Shadow BOTTOM */\\n radial-gradient(farthest-side at 50% 100%, var(--scrollShadow), $bgColor)\\n center bottom;\\n\\n background-repeat: no-repeat;\\n background-size:\\n 100% 40px,\\n 100% 40px,\\n 100% 14px,\\n 100% 14px;\\n background-attachment: local, local, scroll, scroll;\\n\\n /* Hide Scrollbar */\\n scrollbar-width: none; /* Firefox */\\n\\n &::-webkit-scrollbar {\\n display: none; /* Chrome, Safari, Opera */\\n }\\n}\\n\\n@mixin utn-dropdown-overlay {\\n background-color: var(--colorBgContainer);\\n border: var(--utnMenuBorder);\\n box-shadow: var(--utnMenuBoxShadow);\\n border-radius: var(--borderRadius);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const TrashSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 12 12\" {...svgProps}>\n <path d=\"M3.5 3V2C3.5 1.44772 3.94772 1 4.5 1H7.5C8.05228 1 8.5 1.44772 8.5 2V3H10.5C10.7761 3 11 3.22386 11 3.5C11 3.77614 10.7761 4 10.5 4H10V10C10 10.5523 9.55229 11 9 11H3C2.44772 11 2 10.5523 2 10V4H1.5C1.22386 4 1 3.77614 1 3.5C1 3.22386 1.22386 3 1.5 3H3.5ZM4.5 3H7.5V2H4.5V3ZM9 4H3V10H9V4ZM5 5C5.27614 5 5.5 5.22386 5.5 5.5V8.5C5.5 8.77614 5.27614 9 5 9C4.72386 9 4.5 8.77614 4.5 8.5V5.5C4.5 5.22386 4.72386 5 5 5ZM7 5C7.27614 5 7.5 5.22386 7.5 5.5V8.5C7.5 8.77614 7.27614 9 7 9C6.72386 9 6.5 8.77614 6.5 8.5V5.5C6.5 5.22386 6.72386 5 7 5Z\" />\n </SvgWrapper>\n);\n","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default enumerable;","/**\n * Since Select, TreeSelect, Cascader is same Select like component.\n * We just use same hook to handle this logic.\n *\n * If `suffixIcon` is not equal to `null`, always show it.\n */\nexport default function useShowArrow(suffixIcon, showArrow) {\n return showArrow !== undefined ? showArrow : suffixIcon !== null;\n}","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\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","module.exports = __webpack_public_path__ + \"6bed1b724e74e6bc80688f42bc824d70.js\";","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport { token2CSSVar, useCSSVarRegister, useStyleRegister } from '@ant-design/cssinjs';\nimport genCalc from \"./calc\";\nimport getCompVarPrefix from \"./getCompVarPrefix\";\nimport getComponentToken from \"./getComponentToken\";\nimport getDefaultComponentToken from \"./getDefaultComponentToken\";\nimport genMaxMin from \"./maxmin\";\nimport statisticToken, { merge as mergeToken } from \"./statistic\";\nimport useUniqueMemo from \"../_util/hooks/useUniqueMemo\";\nimport useDefaultCSP from \"../hooks/useCSP\";\nfunction genStyleUtils(config) {\n // Dependency inversion for preparing basic config.\n var _config$useCSP = config.useCSP,\n useCSP = _config$useCSP === void 0 ? useDefaultCSP : _config$useCSP,\n useToken = config.useToken,\n usePrefix = config.usePrefix,\n getResetStyles = config.getResetStyles,\n getCommonStyle = config.getCommonStyle,\n getCompUnitless = config.getCompUnitless;\n function genStyleHooks(component, styleFn, getDefaultToken, options) {\n var componentName = Array.isArray(component) ? component[0] : component;\n function prefixToken(key) {\n return \"\".concat(String(componentName)).concat(key.slice(0, 1).toUpperCase()).concat(key.slice(1));\n }\n\n // Fill unitless\n var originUnitless = (options === null || options === void 0 ? void 0 : options.unitless) || {};\n var originCompUnitless = typeof getCompUnitless === 'function' ? getCompUnitless(component) : {};\n var compUnitless = _objectSpread(_objectSpread({}, originCompUnitless), {}, _defineProperty({}, prefixToken('zIndexPopup'), true));\n Object.keys(originUnitless).forEach(function (key) {\n compUnitless[prefixToken(key)] = originUnitless[key];\n });\n\n // Options\n var mergedOptions = _objectSpread(_objectSpread({}, options), {}, {\n unitless: compUnitless,\n prefixToken: prefixToken\n });\n\n // Hooks\n var useStyle = genComponentStyleHook(component, styleFn, getDefaultToken, mergedOptions);\n var useCSSVar = genCSSVarRegister(componentName, getDefaultToken, mergedOptions);\n return function (prefixCls) {\n var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n var _useStyle = useStyle(prefixCls, rootCls),\n _useStyle2 = _slicedToArray(_useStyle, 2),\n hashId = _useStyle2[1];\n var _useCSSVar = useCSSVar(rootCls),\n _useCSSVar2 = _slicedToArray(_useCSSVar, 2),\n wrapCSSVar = _useCSSVar2[0],\n cssVarCls = _useCSSVar2[1];\n return [wrapCSSVar, hashId, cssVarCls];\n };\n }\n function genCSSVarRegister(component, getDefaultToken, options) {\n var compUnitless = options.unitless,\n _options$injectStyle = options.injectStyle,\n injectStyle = _options$injectStyle === void 0 ? true : _options$injectStyle,\n prefixToken = options.prefixToken,\n ignore = options.ignore;\n var CSSVarRegister = function CSSVarRegister(_ref) {\n var rootCls = _ref.rootCls,\n _ref$cssVar = _ref.cssVar,\n cssVar = _ref$cssVar === void 0 ? {} : _ref$cssVar;\n var _useToken = useToken(),\n realToken = _useToken.realToken;\n useCSSVarRegister({\n path: [component],\n prefix: cssVar.prefix,\n key: cssVar.key,\n unitless: compUnitless,\n ignore: ignore,\n token: realToken,\n scope: rootCls\n }, function () {\n var defaultToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n var componentToken = getComponentToken(component, realToken, defaultToken, {\n deprecatedTokens: options === null || options === void 0 ? void 0 : options.deprecatedTokens\n });\n Object.keys(defaultToken).forEach(function (key) {\n componentToken[prefixToken(key)] = componentToken[key];\n delete componentToken[key];\n });\n return componentToken;\n });\n return null;\n };\n var useCSSVar = function useCSSVar(rootCls) {\n var _useToken2 = useToken(),\n cssVar = _useToken2.cssVar;\n return [function (node) {\n return injectStyle && cssVar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSVarRegister, {\n rootCls: rootCls,\n cssVar: cssVar,\n component: component\n }), node) : node;\n }, cssVar === null || cssVar === void 0 ? void 0 : cssVar.key];\n };\n return useCSSVar;\n }\n function genComponentStyleHook(componentName, styleFn, getDefaultToken) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var cells = Array.isArray(componentName) ? componentName : [componentName, componentName];\n var _cells = _slicedToArray(cells, 1),\n component = _cells[0];\n var concatComponent = cells.join('-');\n var mergedLayer = config.layer || {\n name: 'antd'\n };\n\n // Return new style hook\n return function (prefixCls) {\n var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n var _useToken3 = useToken(),\n theme = _useToken3.theme,\n realToken = _useToken3.realToken,\n hashId = _useToken3.hashId,\n token = _useToken3.token,\n cssVar = _useToken3.cssVar;\n var _usePrefix = usePrefix(),\n rootPrefixCls = _usePrefix.rootPrefixCls,\n iconPrefixCls = _usePrefix.iconPrefixCls;\n var csp = useCSP();\n var type = cssVar ? 'css' : 'js';\n\n // Use unique memo to share the result across all instances\n var calc = useUniqueMemo(function () {\n var unitlessCssVar = new Set();\n if (cssVar) {\n Object.keys(options.unitless || {}).forEach(function (key) {\n // Some component proxy the AliasToken (e.g. Image) and some not (e.g. Modal)\n // We should both pass in `unitlessCssVar` to make sure the CSSVar can be unitless.\n unitlessCssVar.add(token2CSSVar(key, cssVar.prefix));\n unitlessCssVar.add(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)));\n });\n }\n return genCalc(type, unitlessCssVar);\n }, [type, component, cssVar === null || cssVar === void 0 ? void 0 : cssVar.prefix]);\n var _genMaxMin = genMaxMin(type),\n max = _genMaxMin.max,\n min = _genMaxMin.min;\n\n // Shared config\n var sharedConfig = {\n theme: theme,\n token: token,\n hashId: hashId,\n nonce: function nonce() {\n return csp.nonce;\n },\n clientOnly: options.clientOnly,\n layer: mergedLayer,\n // antd is always at top of styles\n order: options.order || -999\n };\n\n // This if statement is safe, as it will only be used if the generator has the function. It's not dynamic.\n if (typeof getResetStyles === 'function') {\n // Generate style for all need reset tags.\n useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n clientOnly: false,\n path: ['Shared', rootPrefixCls]\n }), function () {\n return getResetStyles(token, {\n prefix: {\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls\n },\n csp: csp\n });\n });\n }\n var wrapSSR = useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n path: [concatComponent, prefixCls, iconPrefixCls]\n }), function () {\n if (options.injectStyle === false) {\n return [];\n }\n var _statisticToken = statisticToken(token),\n proxyToken = _statisticToken.token,\n flush = _statisticToken.flush;\n var defaultComponentToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n var componentCls = \".\".concat(prefixCls);\n var componentToken = getComponentToken(component, realToken, defaultComponentToken, {\n deprecatedTokens: options.deprecatedTokens\n });\n if (cssVar && defaultComponentToken && _typeof(defaultComponentToken) === 'object') {\n Object.keys(defaultComponentToken).forEach(function (key) {\n defaultComponentToken[key] = \"var(\".concat(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)), \")\");\n });\n }\n var mergedToken = mergeToken(proxyToken, {\n componentCls: componentCls,\n prefixCls: prefixCls,\n iconCls: \".\".concat(iconPrefixCls),\n antCls: \".\".concat(rootPrefixCls),\n calc: calc,\n // @ts-ignore\n max: max,\n // @ts-ignore\n min: min\n }, cssVar ? defaultComponentToken : componentToken);\n var styleInterpolation = styleFn(mergedToken, {\n hashId: hashId,\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls\n });\n flush(component, componentToken);\n var commonStyle = typeof getCommonStyle === 'function' ? getCommonStyle(mergedToken, prefixCls, rootCls, options.resetFont) : null;\n return [options.resetStyle === false ? null : commonStyle, styleInterpolation];\n });\n return [wrapSSR, hashId];\n };\n }\n function genSubStyleComponent(componentName, styleFn, getDefaultToken) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var useStyle = genComponentStyleHook(componentName, styleFn, getDefaultToken, _objectSpread({\n resetStyle: false,\n // Sub Style should default after root one\n order: -998\n }, options));\n var StyledComponent = function StyledComponent(_ref2) {\n var prefixCls = _ref2.prefixCls,\n _ref2$rootCls = _ref2.rootCls,\n rootCls = _ref2$rootCls === void 0 ? prefixCls : _ref2$rootCls;\n useStyle(prefixCls, rootCls);\n return null;\n };\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.displayName = \"SubStyle_\".concat(String(Array.isArray(componentName) ? componentName.join('.') : componentName));\n }\n return StyledComponent;\n }\n return {\n genStyleHooks: genStyleHooks,\n genSubStyleComponent: genSubStyleComponent,\n genComponentStyleHook: genComponentStyleHook\n };\n}\nexport default genStyleUtils;","// src/devModeChecks/identityFunctionCheck.ts\nvar runIdentityFunctionCheck = (resultFunc, inputSelectorsResults, outputSelectorResult) => {\n if (inputSelectorsResults.length === 1 && inputSelectorsResults[0] === outputSelectorResult) {\n let isInputSameAsOutput = false;\n try {\n const emptyObject = {};\n if (resultFunc(emptyObject) === emptyObject)\n isInputSameAsOutput = true;\n } catch {\n }\n if (isInputSameAsOutput) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"The result function returned its own inputs without modification. e.g\\n`createSelector([state => state.todos], todos => todos)`\\nThis could lead to inefficient memoization and unnecessary re-renders.\\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.\",\n { stack }\n );\n }\n }\n};\n\n// src/devModeChecks/inputStabilityCheck.ts\nvar runInputStabilityCheck = (inputSelectorResultsObject, options, inputSelectorArgs) => {\n const { memoize, memoizeOptions } = options;\n const { inputSelectorResults, inputSelectorResultsCopy } = inputSelectorResultsObject;\n const createAnEmptyObject = memoize(() => ({}), ...memoizeOptions);\n const areInputSelectorResultsEqual = createAnEmptyObject.apply(null, inputSelectorResults) === createAnEmptyObject.apply(null, inputSelectorResultsCopy);\n if (!areInputSelectorResultsEqual) {\n let stack = void 0;\n try {\n throw new Error();\n } catch (e) {\n ;\n ({ stack } = e);\n }\n console.warn(\n \"An input selector returned a different result when passed same arguments.\\nThis means your output selector will likely run more frequently than intended.\\nAvoid returning a new reference inside your input selector, e.g.\\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`\",\n {\n arguments: inputSelectorArgs,\n firstInputs: inputSelectorResults,\n secondInputs: inputSelectorResultsCopy,\n stack\n }\n );\n }\n};\n\n// src/devModeChecks/setGlobalDevModeChecks.ts\nvar globalDevModeChecks = {\n inputStabilityCheck: \"once\",\n identityFunctionCheck: \"once\"\n};\nvar setGlobalDevModeChecks = (devModeChecks) => {\n Object.assign(globalDevModeChecks, devModeChecks);\n};\n\n// src/utils.ts\nvar NOT_FOUND = /* @__PURE__ */ Symbol(\"NOT_FOUND\");\nfunction assertIsFunction(func, errorMessage = `expected a function, instead received ${typeof func}`) {\n if (typeof func !== \"function\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsObject(object, errorMessage = `expected an object, instead received ${typeof object}`) {\n if (typeof object !== \"object\") {\n throw new TypeError(errorMessage);\n }\n}\nfunction assertIsArrayOfFunctions(array, errorMessage = `expected all items to be functions, instead received the following types: `) {\n if (!array.every((item) => typeof item === \"function\")) {\n const itemTypes = array.map(\n (item) => typeof item === \"function\" ? `function ${item.name || \"unnamed\"}()` : typeof item\n ).join(\", \");\n throw new TypeError(`${errorMessage}[${itemTypes}]`);\n }\n}\nvar ensureIsArray = (item) => {\n return Array.isArray(item) ? item : [item];\n};\nfunction getDependencies(createSelectorArgs) {\n const dependencies = Array.isArray(createSelectorArgs[0]) ? createSelectorArgs[0] : createSelectorArgs;\n assertIsArrayOfFunctions(\n dependencies,\n `createSelector expects all input-selectors to be functions, but received the following types: `\n );\n return dependencies;\n}\nfunction collectInputSelectorResults(dependencies, inputSelectorArgs) {\n const inputSelectorResults = [];\n const { length } = dependencies;\n for (let i = 0; i < length; i++) {\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs));\n }\n return inputSelectorResults;\n}\nvar getDevModeChecksExecutionInfo = (firstRun, devModeChecks) => {\n const { identityFunctionCheck, inputStabilityCheck } = {\n ...globalDevModeChecks,\n ...devModeChecks\n };\n return {\n identityFunctionCheck: {\n shouldRun: identityFunctionCheck === \"always\" || identityFunctionCheck === \"once\" && firstRun,\n run: runIdentityFunctionCheck\n },\n inputStabilityCheck: {\n shouldRun: inputStabilityCheck === \"always\" || inputStabilityCheck === \"once\" && firstRun,\n run: runInputStabilityCheck\n }\n };\n};\n\n// src/autotrackMemoize/autotracking.ts\nvar $REVISION = 0;\nvar CURRENT_TRACKER = null;\nvar Cell = class {\n revision = $REVISION;\n _value;\n _lastValue;\n _isEqual = tripleEq;\n constructor(initialValue, isEqual = tripleEq) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n // Whenever a storage value is read, it'll add itself to the current tracker if\n // one exists, entangling its state with that cache.\n get value() {\n CURRENT_TRACKER?.add(this);\n return this._value;\n }\n // Whenever a storage value is updated, we bump the global revision clock,\n // assign the revision for this storage to the new value, _and_ we schedule a\n // rerender. This is important, and it's what makes autotracking _pull_\n // based. We don't actively tell the caches which depend on the storage that\n // anything has happened. Instead, we recompute the caches when needed.\n set value(newValue) {\n if (this.value === newValue)\n return;\n this._value = newValue;\n this.revision = ++$REVISION;\n }\n};\nfunction tripleEq(a, b) {\n return a === b;\n}\nvar TrackingCache = class {\n _cachedValue;\n _cachedRevision = -1;\n _deps = [];\n hits = 0;\n fn;\n constructor(fn) {\n this.fn = fn;\n }\n clear() {\n this._cachedValue = void 0;\n this._cachedRevision = -1;\n this._deps = [];\n this.hits = 0;\n }\n get value() {\n if (this.revision > this._cachedRevision) {\n const { fn } = this;\n const currentTracker = /* @__PURE__ */ new Set();\n const prevTracker = CURRENT_TRACKER;\n CURRENT_TRACKER = currentTracker;\n this._cachedValue = fn();\n CURRENT_TRACKER = prevTracker;\n this.hits++;\n this._deps = Array.from(currentTracker);\n this._cachedRevision = this.revision;\n }\n CURRENT_TRACKER?.add(this);\n return this._cachedValue;\n }\n get revision() {\n return Math.max(...this._deps.map((d) => d.revision), 0);\n }\n};\nfunction getValue(cell) {\n if (!(cell instanceof Cell)) {\n console.warn(\"Not a valid cell! \", cell);\n }\n return cell.value;\n}\nfunction setValue(storage, value) {\n if (!(storage instanceof Cell)) {\n throw new TypeError(\n \"setValue must be passed a tracked store created with `createStorage`.\"\n );\n }\n storage.value = storage._lastValue = value;\n}\nfunction createCell(initialValue, isEqual = tripleEq) {\n return new Cell(initialValue, isEqual);\n}\nfunction createCache(fn) {\n assertIsFunction(\n fn,\n \"the first parameter to `createCache` must be a function\"\n );\n return new TrackingCache(fn);\n}\n\n// src/autotrackMemoize/tracking.ts\nvar neverEq = (a, b) => false;\nfunction createTag() {\n return createCell(null, neverEq);\n}\nfunction dirtyTag(tag, value) {\n setValue(tag, value);\n}\nvar consumeCollection = (node) => {\n let tag = node.collectionTag;\n if (tag === null) {\n tag = node.collectionTag = createTag();\n }\n getValue(tag);\n};\nvar dirtyCollection = (node) => {\n const tag = node.collectionTag;\n if (tag !== null) {\n dirtyTag(tag, null);\n }\n};\n\n// src/autotrackMemoize/proxy.ts\nvar REDUX_PROXY_LABEL = Symbol();\nvar nextId = 0;\nvar proto = Object.getPrototypeOf({});\nvar ObjectTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy(this, objectProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar objectProxyHandler = {\n get(node, key) {\n function calculateResult() {\n const { value } = node;\n const childValue = Reflect.get(value, key);\n if (typeof key === \"symbol\") {\n return childValue;\n }\n if (key in proto) {\n return childValue;\n }\n if (typeof childValue === \"object\" && childValue !== null) {\n let childNode = node.children[key];\n if (childNode === void 0) {\n childNode = node.children[key] = createNode(childValue);\n }\n if (childNode.tag) {\n getValue(childNode.tag);\n }\n return childNode.proxy;\n } else {\n let tag = node.tags[key];\n if (tag === void 0) {\n tag = node.tags[key] = createTag();\n tag.value = childValue;\n }\n getValue(tag);\n return childValue;\n }\n }\n const res = calculateResult();\n return res;\n },\n ownKeys(node) {\n consumeCollection(node);\n return Reflect.ownKeys(node.value);\n },\n getOwnPropertyDescriptor(node, prop) {\n return Reflect.getOwnPropertyDescriptor(node.value, prop);\n },\n has(node, prop) {\n return Reflect.has(node.value, prop);\n }\n};\nvar ArrayTreeNode = class {\n constructor(value) {\n this.value = value;\n this.value = value;\n this.tag.value = value;\n }\n proxy = new Proxy([this], arrayProxyHandler);\n tag = createTag();\n tags = {};\n children = {};\n collectionTag = null;\n id = nextId++;\n};\nvar arrayProxyHandler = {\n get([node], key) {\n if (key === \"length\") {\n consumeCollection(node);\n }\n return objectProxyHandler.get(node, key);\n },\n ownKeys([node]) {\n return objectProxyHandler.ownKeys(node);\n },\n getOwnPropertyDescriptor([node], prop) {\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop);\n },\n has([node], prop) {\n return objectProxyHandler.has(node, prop);\n }\n};\nfunction createNode(value) {\n if (Array.isArray(value)) {\n return new ArrayTreeNode(value);\n }\n return new ObjectTreeNode(value);\n}\nfunction updateNode(node, newValue) {\n const { value, tags, children } = node;\n node.value = newValue;\n if (Array.isArray(value) && Array.isArray(newValue) && value.length !== newValue.length) {\n dirtyCollection(node);\n } else {\n if (value !== newValue) {\n let oldKeysSize = 0;\n let newKeysSize = 0;\n let anyKeysAdded = false;\n for (const _key in value) {\n oldKeysSize++;\n }\n for (const key in newValue) {\n newKeysSize++;\n if (!(key in value)) {\n anyKeysAdded = true;\n break;\n }\n }\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize;\n if (isDifferent) {\n dirtyCollection(node);\n }\n }\n }\n for (const key in tags) {\n const childValue = value[key];\n const newChildValue = newValue[key];\n if (childValue !== newChildValue) {\n dirtyCollection(node);\n dirtyTag(tags[key], newChildValue);\n }\n if (typeof newChildValue === \"object\" && newChildValue !== null) {\n delete tags[key];\n }\n }\n for (const key in children) {\n const childNode = children[key];\n const newChildValue = newValue[key];\n const childValue = childNode.value;\n if (childValue === newChildValue) {\n continue;\n } else if (typeof newChildValue === \"object\" && newChildValue !== null) {\n updateNode(childNode, newChildValue);\n } else {\n deleteNode(childNode);\n delete children[key];\n }\n }\n}\nfunction deleteNode(node) {\n if (node.tag) {\n dirtyTag(node.tag, null);\n }\n dirtyCollection(node);\n for (const key in node.tags) {\n dirtyTag(node.tags[key], null);\n }\n for (const key in node.children) {\n deleteNode(node.children[key]);\n }\n}\n\n// src/lruMemoize.ts\nfunction createSingletonCache(equals) {\n let entry;\n return {\n get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n return NOT_FOUND;\n },\n put(key, value) {\n entry = { key, value };\n },\n getEntries() {\n return entry ? [entry] : [];\n },\n clear() {\n entry = void 0;\n }\n };\n}\nfunction createLruCache(maxSize, equals) {\n let entries = [];\n function get(key) {\n const cacheIndex = entries.findIndex((entry) => equals(key, entry.key));\n if (cacheIndex > -1) {\n const entry = entries[cacheIndex];\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n return entry.value;\n }\n return NOT_FOUND;\n }\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n entries.unshift({ key, value });\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n function getEntries() {\n return entries;\n }\n function clear() {\n entries = [];\n }\n return { get, put, getEntries, clear };\n}\nvar referenceEqualityCheck = (a, b) => a === b;\nfunction createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n const { length } = prev;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n return true;\n };\n}\nfunction lruMemoize(func, equalityCheckOrOptions) {\n const providedOptions = typeof equalityCheckOrOptions === \"object\" ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions };\n const {\n equalityCheck = referenceEqualityCheck,\n maxSize = 1,\n resultEqualityCheck\n } = providedOptions;\n const comparator = createCacheKeyComparator(equalityCheck);\n let resultsCount = 0;\n const cache = maxSize <= 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);\n function memoized() {\n let value = cache.get(arguments);\n if (value === NOT_FOUND) {\n value = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const entries = cache.getEntries();\n const matchingEntry = entries.find(\n (entry) => resultEqualityCheck(entry.value, value)\n );\n if (matchingEntry) {\n value = matchingEntry.value;\n resultsCount !== 0 && resultsCount--;\n }\n }\n cache.put(arguments, value);\n }\n return value;\n }\n memoized.clearCache = () => {\n cache.clear();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/autotrackMemoize/autotrackMemoize.ts\nfunction autotrackMemoize(func) {\n const node = createNode(\n []\n );\n let lastArgs = null;\n const shallowEqual = createCacheKeyComparator(referenceEqualityCheck);\n const cache = createCache(() => {\n const res = func.apply(null, node.proxy);\n return res;\n });\n function memoized() {\n if (!shallowEqual(lastArgs, arguments)) {\n updateNode(node, arguments);\n lastArgs = arguments;\n }\n return cache.value;\n }\n memoized.clearCache = () => {\n return cache.clear();\n };\n return memoized;\n}\n\n// src/weakMapMemoize.ts\nvar StrongRef = class {\n constructor(value) {\n this.value = value;\n }\n deref() {\n return this.value;\n }\n};\nvar Ref = typeof WeakRef !== \"undefined\" ? WeakRef : StrongRef;\nvar UNTERMINATED = 0;\nvar TERMINATED = 1;\nfunction createCacheNode() {\n return {\n s: UNTERMINATED,\n v: void 0,\n o: null,\n p: null\n };\n}\nfunction weakMapMemoize(func, options = {}) {\n let fnNode = createCacheNode();\n const { resultEqualityCheck } = options;\n let lastResult;\n let resultsCount = 0;\n function memoized() {\n let cacheNode = fnNode;\n const { length } = arguments;\n for (let i = 0, l = length; i < l; i++) {\n const arg = arguments[i];\n if (typeof arg === \"function\" || typeof arg === \"object\" && arg !== null) {\n let objectCache = cacheNode.o;\n if (objectCache === null) {\n cacheNode.o = objectCache = /* @__PURE__ */ new WeakMap();\n }\n const objectNode = objectCache.get(arg);\n if (objectNode === void 0) {\n cacheNode = createCacheNode();\n objectCache.set(arg, cacheNode);\n } else {\n cacheNode = objectNode;\n }\n } else {\n let primitiveCache = cacheNode.p;\n if (primitiveCache === null) {\n cacheNode.p = primitiveCache = /* @__PURE__ */ new Map();\n }\n const primitiveNode = primitiveCache.get(arg);\n if (primitiveNode === void 0) {\n cacheNode = createCacheNode();\n primitiveCache.set(arg, cacheNode);\n } else {\n cacheNode = primitiveNode;\n }\n }\n }\n const terminatedNode = cacheNode;\n let result;\n if (cacheNode.s === TERMINATED) {\n result = cacheNode.v;\n } else {\n result = func.apply(null, arguments);\n resultsCount++;\n if (resultEqualityCheck) {\n const lastResultValue = lastResult?.deref?.() ?? lastResult;\n if (lastResultValue != null && resultEqualityCheck(lastResultValue, result)) {\n result = lastResultValue;\n resultsCount !== 0 && resultsCount--;\n }\n const needsWeakRef = typeof result === \"object\" && result !== null || typeof result === \"function\";\n lastResult = needsWeakRef ? new Ref(result) : result;\n }\n }\n terminatedNode.s = TERMINATED;\n terminatedNode.v = result;\n return result;\n }\n memoized.clearCache = () => {\n fnNode = createCacheNode();\n memoized.resetResultsCount();\n };\n memoized.resultsCount = () => resultsCount;\n memoized.resetResultsCount = () => {\n resultsCount = 0;\n };\n return memoized;\n}\n\n// src/createSelectorCreator.ts\nfunction createSelectorCreator(memoizeOrOptions, ...memoizeOptionsFromArgs) {\n const createSelectorCreatorOptions = typeof memoizeOrOptions === \"function\" ? {\n memoize: memoizeOrOptions,\n memoizeOptions: memoizeOptionsFromArgs\n } : memoizeOrOptions;\n const createSelector2 = (...createSelectorArgs) => {\n let recomputations = 0;\n let dependencyRecomputations = 0;\n let lastResult;\n let directlyPassedOptions = {};\n let resultFunc = createSelectorArgs.pop();\n if (typeof resultFunc === \"object\") {\n directlyPassedOptions = resultFunc;\n resultFunc = createSelectorArgs.pop();\n }\n assertIsFunction(\n resultFunc,\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\n );\n const combinedOptions = {\n ...createSelectorCreatorOptions,\n ...directlyPassedOptions\n };\n const {\n memoize,\n memoizeOptions = [],\n argsMemoize = weakMapMemoize,\n argsMemoizeOptions = [],\n devModeChecks = {}\n } = combinedOptions;\n const finalMemoizeOptions = ensureIsArray(memoizeOptions);\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions);\n const dependencies = getDependencies(createSelectorArgs);\n const memoizedResultFunc = memoize(function recomputationWrapper() {\n recomputations++;\n return resultFunc.apply(\n null,\n arguments\n );\n }, ...finalMemoizeOptions);\n let firstRun = true;\n const selector = argsMemoize(function dependenciesChecker() {\n dependencyRecomputations++;\n const inputSelectorResults = collectInputSelectorResults(\n dependencies,\n arguments\n );\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults);\n if (process.env.NODE_ENV !== \"production\") {\n const { identityFunctionCheck, inputStabilityCheck } = getDevModeChecksExecutionInfo(firstRun, devModeChecks);\n if (identityFunctionCheck.shouldRun) {\n identityFunctionCheck.run(\n resultFunc,\n inputSelectorResults,\n lastResult\n );\n }\n if (inputStabilityCheck.shouldRun) {\n const inputSelectorResultsCopy = collectInputSelectorResults(\n dependencies,\n arguments\n );\n inputStabilityCheck.run(\n { inputSelectorResults, inputSelectorResultsCopy },\n { memoize, memoizeOptions: finalMemoizeOptions },\n arguments\n );\n }\n if (firstRun)\n firstRun = false;\n }\n return lastResult;\n }, ...finalArgsMemoizeOptions);\n return Object.assign(selector, {\n resultFunc,\n memoizedResultFunc,\n dependencies,\n dependencyRecomputations: () => dependencyRecomputations,\n resetDependencyRecomputations: () => {\n dependencyRecomputations = 0;\n },\n lastResult: () => lastResult,\n recomputations: () => recomputations,\n resetRecomputations: () => {\n recomputations = 0;\n },\n memoize,\n argsMemoize\n });\n };\n Object.assign(createSelector2, {\n withTypes: () => createSelector2\n });\n return createSelector2;\n}\nvar createSelector = /* @__PURE__ */ createSelectorCreator(weakMapMemoize);\n\n// src/createStructuredSelector.ts\nvar createStructuredSelector = Object.assign(\n (inputSelectorsObject, selectorCreator = createSelector) => {\n assertIsObject(\n inputSelectorsObject,\n `createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof inputSelectorsObject}`\n );\n const inputSelectorKeys = Object.keys(inputSelectorsObject);\n const dependencies = inputSelectorKeys.map(\n (key) => inputSelectorsObject[key]\n );\n const structuredSelector = selectorCreator(\n dependencies,\n (...inputSelectorResults) => {\n return inputSelectorResults.reduce((composition, value, index) => {\n composition[inputSelectorKeys[index]] = value;\n return composition;\n }, {});\n }\n );\n return structuredSelector;\n },\n { withTypes: () => createStructuredSelector }\n);\nexport {\n createSelector,\n createSelectorCreator,\n createStructuredSelector,\n lruMemoize,\n referenceEqualityCheck,\n setGlobalDevModeChecks,\n autotrackMemoize as unstable_autotrackMemoize,\n weakMapMemoize\n};\n//# sourceMappingURL=reselect.mjs.map","import { Dispatch, SetStateAction, useState } from 'react';\nimport { useDebounce } from 'react-use';\n\n/** The state will be set immediately, but the debounced state\n * will not be set until after the delay (ms).\n *\n * This is useful for things like inputs that are used for fetching\n * data, as you typically want to see the input state change immediately,\n * but you don't want to fetch data for each character typed */\n\nexport const useDebouncedState = <TableState>(\n defaultState: TableState,\n delay = 300,\n): [TableState, Dispatch<SetStateAction<TableState>>, TableState] => {\n const [state, setState] = useState<TableState>(defaultState);\n const [debouncedState, setDebouncedState] =\n useState<TableState>(defaultState);\n\n useDebounce(\n () => {\n setDebouncedState(state);\n },\n delay,\n [JSON.stringify(state)],\n );\n\n return [debouncedState, setState, state];\n};\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\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\nmodule.exports = baseUnary;\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n const colorErrorBgFilledHover = new TinyColor(errorColors[1]).mix(new TinyColor(errorColors[3]), 50).toHexString();\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBgFilledHover,\n colorErrorBgActive: errorColors[3],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\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\nmodule.exports = baseIsArguments;\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nimport PurePanel, { Overlay } from './PurePanel';\n// CSSINJS\nimport useStyle from './style';\nconst InternalPopover = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n title,\n content,\n overlayClassName,\n placement = 'top',\n trigger = 'hover',\n children,\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n onOpenChange,\n overlayStyle = {}\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"overlayClassName\", \"placement\", \"trigger\", \"children\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"onOpenChange\", \"overlayStyle\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('popover', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const rootPrefixCls = getPrefixCls();\n const overlayCls = classNames(overlayClassName, hashId, cssVarCls);\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const settingOpen = (value, e) => {\n setOpen(value, true);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(value, e);\n };\n const onKeyDown = e => {\n if (e.keyCode === KeyCode.ESC) {\n settingOpen(false, e);\n }\n };\n const onInternalOpenChange = value => {\n settingOpen(value);\n };\n const titleNode = getRenderPropValue(title);\n const contentNode = getRenderPropValue(content);\n return wrapCSSVar(/*#__PURE__*/React.createElement(Tooltip, Object.assign({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n overlayClassName: overlayCls,\n ref: ref,\n open: open,\n onOpenChange: onInternalOpenChange,\n overlay: titleNode || contentNode ? (/*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: titleNode,\n content: contentNode\n })) : null,\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName),\n \"data-popover-inject\": true\n }), cloneElement(children, {\n onKeyDown: e => {\n var _a, _b;\n if (/*#__PURE__*/React.isValidElement(children)) {\n (_b = children === null || children === void 0 ? void 0 : (_a = children.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n onKeyDown(e);\n }\n })));\n});\nconst Popover = InternalPopover;\nPopover._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nexport default Popover;","var autoAdjustOverflowTopBottom = {\n shiftX: 64,\n adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n adjustX: 1,\n shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","const upcUrl: Record<string, string> = {\n prod: 'https://partner.alta.avigilon.com',\n prodeu1: 'https://partner.eu.alta.avigilon.com',\n dev: 'https://partner.dev.alta.avigilon.com',\n sandbox: 'https://platinum.sandbox.alta.avigilon.com',\n mine: 'http://localhost:3000/partner',\n test: 'https://partner.test.alta.avigilon.com',\n};\n\nexport const getUpcUrl = (region: string): string => {\n return `${upcUrl[region]}`;\n};\n","module.exports = __webpack_public_path__ + \"add6c4cce3d9d8f1de24094ebb4bfa5b.js\";","import * as React from 'react';\nimport { noop } from './misc/util';\nvar useState = React.useState;\nvar useHover = function (element) {\n var _a = useState(false), state = _a[0], setState = _a[1];\n var onMouseEnter = function (originalOnMouseEnter) { return function (event) {\n (originalOnMouseEnter || noop)(event);\n setState(true);\n }; };\n var onMouseLeave = function (originalOnMouseLeave) { return function (event) {\n (originalOnMouseLeave || noop)(event);\n setState(false);\n }; };\n if (typeof element === 'function') {\n element = element(state);\n }\n var el = React.cloneElement(element, {\n onMouseEnter: onMouseEnter(element.props.onMouseEnter),\n onMouseLeave: onMouseLeave(element.props.onMouseLeave),\n });\n return [el, state];\n};\nexport default useHover;\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\nmodule.exports = stackHas;\n","module.exports = __webpack_public_path__ + \"43139bfbcbce9de597b4985dc1e6a03b.js\";","import { dropUndefinedKeys, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, addNonEnumerableProperty } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client);\n\n const rootSpan = getRootSpan(span);\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return frozenDsc;\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceState = rootSpan.spanContext().traceState;\n const traceStateDsc = traceState && traceState.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return dscOnTraceState;\n }\n\n // Else, we generate it from the span\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data || {};\n const maybeSampleRate = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = jsonSpan.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasTracingEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasTracingEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n }\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const DownloadSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 12 12\" {...svgProps}>\n <path d=\"M6 1C6.27614 1 6.5 1.22386 6.5 1.5V6.79289L8.14645 5.14645C8.34171 4.95118 8.65829 4.95118 8.85355 5.14645C9.04882 5.34171 9.04882 5.65829 8.85355 5.85355L6.35355 8.35355C6.25669 8.45042 6.12996 8.49923 6.003 8.49999L6 8.5L5.997 8.49999C5.9303 8.4996 5.86669 8.48615 5.80861 8.46206C5.74964 8.43766 5.69439 8.40149 5.64645 8.35355L3.14645 5.85355C2.95118 5.65829 2.95118 5.34171 3.14645 5.14645C3.34171 4.95118 3.65829 4.95118 3.85355 5.14645L5.5 6.79289V1.5C5.5 1.22386 5.72386 1 6 1Z\" />\n <path d=\"M1.5 10C1.22386 10 1 10.2239 1 10.5C1 10.7761 1.22386 11 1.5 11H10.5C10.7761 11 11 10.7761 11 10.5C11 10.2239 10.7761 10 10.5 10H1.5Z\" />\n </SvgWrapper>\n);\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","import { createSelector } from 'reselect';\n\nexport const selectOrgFeatures = () => (state) =>\n state.getIn(['global', 'orgFeatures']);\n\nexport const selectOrgHasFeatureCode = (code) =>\n createSelector(selectOrgFeatures(), (orgFeatures) =>\n orgFeatures?.some((f) => f.get('code') === code),\n );\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst InternalTooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange,\n destroyTooltipOnHide,\n arrow = true,\n title,\n overlay,\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n const mergedShowArrow = !!arrow;\n const [, token] = useToken();\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ============================== Ref ===============================\n const warning = devUseWarning('Tooltip');\n const tooltipRef = React.useRef(null);\n const forceAlign = () => {\n var _a;\n (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n };\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n forceAlign,\n forcePopupAlign: () => {\n warning.deprecated(false, 'forcePopupAlign', 'forceAlign');\n forceAlign();\n },\n nativeElement: (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.nativeElement\n };\n });\n // ============================== Warn ==============================\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow={{ pointAtCenter: true }}']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n });\n process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'usage', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'deprecated', '`arrowPointAtCenter` in `arrow` is deprecated. Please use `pointAtCenter` instead.') : void 0;\n }\n // ============================== Open ==============================\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(noTitle ? false : vis);\n if (!noTitle) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n const tooltipPlacements = React.useMemo(() => {\n var _a, _b;\n let mergedArrowPointAtCenter = arrowPointAtCenter;\n if (typeof arrow === 'object') {\n mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n }\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: mergedArrowPointAtCenter,\n autoAdjustOverflow,\n arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius,\n offset: token.marginXXS,\n visibleFirst: true\n });\n }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n const memoOverlay = React.useMemo(() => {\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n }, [overlay, title]);\n const memoOverlayWrapper = /*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay);\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle,\n rootClassName\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && noTitle) {\n tempOpen = false;\n }\n // ============================= Render =============================\n const child = /*#__PURE__*/React.isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, rootClassName, hashId, cssVarCls);\n // ============================ zIndex ============================\n const [zIndex, contextZIndex] = useZIndex('Tooltip', otherProps.zIndex);\n const content = /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n zIndex: zIndex,\n showArrow: mergedShowArrow,\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: tooltipRef,\n builtinPlacements: tooltipPlacements,\n overlay: memoOverlayWrapper,\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n },\n destroyTooltipOnHide: !!destroyTooltipOnHide\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child);\n return wrapCSSVar(/*#__PURE__*/React.createElement(zIndexContext.Provider, {\n value: contextZIndex\n }, content));\n});\nconst Tooltip = InternalTooltip;\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","import { __assign } from \"tslib\";\nimport { useCallback, useEffect, useRef, useState } from 'react';\nvar Status;\n(function (Status) {\n Status[Status[\"init\"] = 0] = \"init\";\n Status[Status[\"play\"] = 1] = \"play\";\n Status[Status[\"pause\"] = 2] = \"pause\";\n Status[Status[\"end\"] = 3] = \"end\";\n})(Status || (Status = {}));\nvar useSpeech = function (text, options) {\n var mounted = useRef(false);\n var _a = useState(function () {\n var _a = options.voice || {}, _b = _a.lang, lang = _b === void 0 ? 'default' : _b, _c = _a.name, name = _c === void 0 ? '' : _c;\n return {\n isPlaying: false,\n status: Status[Status.init],\n lang: options.lang || 'default',\n voiceInfo: { lang: lang, name: name },\n rate: options.rate || 1,\n pitch: options.pitch || 1,\n volume: options.volume || 1,\n };\n }), state = _a[0], setState = _a[1];\n var handlePlay = useCallback(function () {\n if (!mounted.current) {\n return;\n }\n setState(function (preState) {\n return __assign(__assign({}, preState), { isPlaying: true, status: Status[Status.play] });\n });\n }, []);\n var handlePause = useCallback(function () {\n if (!mounted.current) {\n return;\n }\n setState(function (preState) {\n return __assign(__assign({}, preState), { isPlaying: false, status: Status[Status.pause] });\n });\n }, []);\n var handleEnd = useCallback(function () {\n if (!mounted.current) {\n return;\n }\n setState(function (preState) {\n return __assign(__assign({}, preState), { isPlaying: false, status: Status[Status.end] });\n });\n }, []);\n useEffect(function () {\n mounted.current = true;\n var utterance = new SpeechSynthesisUtterance(text);\n options.lang && (utterance.lang = options.lang);\n options.voice && (utterance.voice = options.voice);\n utterance.rate = options.rate || 1;\n utterance.pitch = options.pitch || 1;\n utterance.volume = options.volume || 1;\n utterance.onstart = handlePlay;\n utterance.onpause = handlePause;\n utterance.onresume = handlePlay;\n utterance.onend = handleEnd;\n window.speechSynthesis.speak(utterance);\n return function () {\n mounted.current = false;\n };\n }, []);\n return state;\n};\nexport default useSpeech;\n","// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename) {\n // Truncate files names greater than 1024 characters to avoid regex dos\n // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n const truncated = filename.length > 1024 ? `<truncated>${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nfunction resolve(...args) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr) {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nfunction relative(from, to) {\n /* eslint-disable no-param-reassign */\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nfunction normalizePath(path) {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nfunction isAbsolute(path) {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nfunction join(...args) {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nfunction dirname(path) {\n const result = splitPath(path);\n const root = result[0] || '';\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.slice(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nfunction basename(path, ext) {\n let f = splitPath(path)[2] || '';\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n\nexport { basename, dirname, isAbsolute, join, normalizePath, relative, resolve };\n//# sourceMappingURL=path.js.map\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SwapOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapOutlined = function SwapOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapOutlinedSvg\n }));\n};\n\n/**![swap](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0Ny45IDU5MkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjA1LjJMNjEyLjkgODUxYy00LjEgNS4yLS40IDEzIDYuMyAxM2g3Mi41YzQuOSAwIDkuNS0yLjIgMTIuNi02LjFsMTY4LjgtMjE0LjFjMTYuNS0yMSAxLjYtNTEuOC0yNS4yLTUxLjh6TTg3MiAzNTZIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNoLTcyLjVjLTQuOSAwLTkuNSAyLjItMTIuNiA2LjFMMTUwLjkgMzgwLjJjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SwapOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SwapOutlined';\n}\nexport default RefIcon;","// @TODO - I don't understand this function, so I'm not refactoring it yet. -justin\nconst faviconsContext = require.context(\n '!!file-loader?name=assets/favicons/[name].[ext]!.',\n true,\n new RegExp(\n `assets/favicons-${OP_ENV}/(.*).(svg|png|ico|xml|json|webmanifest)$`, // eslint-disable-line no-undef\n ),\n);\n\nconst favKeys = faviconsContext.keys();\nfavKeys.forEach(faviconsContext);\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","// Add to this as needed\nexport const featureCodes = {\n users: 1,\n administrators: 2,\n remoteUnlock: 3,\n guestPass: 4,\n schedules: 5,\n lockdown: 7,\n apiIntegration: 8,\n wiegandRelay: 10,\n directorySync: 11,\n webHooks: 12,\n customEntryStates: 14,\n singleSignOn: 16,\n lifetimeWarranty: 18,\n subOrgs: 19,\n entries: 20,\n elevatorIoBoards: 21,\n vms: 22,\n advancedAlerts: 23,\n advancedReports: 24,\n customFields: 25,\n customAgreements: 26,\n granularPermissions: 27,\n dynamicPermissions: 28,\n basicRulesEngine: 30,\n advancedRulesEngine: 31,\n azureIdentityProvider: 32,\n oktaIdentityProvider: 33,\n oneloginIdentityProvider: 34,\n gsuiteIdentityProvider: 35,\n fifteenMinSync: 37,\n groupImportFilter: 38,\n manualPrivacyManagement: 39,\n automatedPrivacyManagement: 40,\n userEmailSupport: 41,\n userPhoneSupport: 42,\n syncAudit: 43,\n syncNotification: 44,\n customRetention: 45,\n forensicReporting: 46,\n userManagementUsers: 47,\n occupancyManagement: 48,\n presence: 50,\n merakiCameras: 51,\n merakiVms: 52,\n basicTechSupport: 53,\n premiumTechSupport: 54,\n enterpriseTechSupport: 55,\n standardServiceLevelAgreement: 56,\n apiIntegrationCS: 57,\n customDashboards: 58,\n allegionNdebLeb: 59,\n badgePrinting: 60,\n allegionNdebLebNonOp: 61,\n cloudVideoStorage30: 62,\n cloudVideoStorage60: 63,\n cloudVideoStorage90: 64,\n cloudVideoStorage180: 65,\n scheduledReports: 66,\n gSuiteUsers: 67,\n activeDirectoryUsers: 68,\n oktaUsers: 69,\n oneLoginUsers: 70,\n appMarketplace: 71,\n voiceAssistant: 72,\n workdayIdentityProvider: 73,\n workdayUsers: 74,\n alarmConfigurations: 75,\n openAlarms: 76,\n alarmRateLimit: 77,\n musterReport: 78,\n staticCloud: 79,\n alarmManagement: 80,\n subOrgsVideo: 81,\n occupancyReport: 82,\n samlSso: 83,\n samlJitIdentityProvider: 84,\n raveAlert: 85,\n arizeBuildings: 86,\n courtReserve: 87,\n userSitePartitioning: 88,\n events2hvac: 89,\n idelerTime: 90,\n elevatedLiving: 91,\n yourGolfBooking: 92,\n mobileCredentials: 93,\n equiem: 94,\n smartSpaces: 95,\n hapana: 96,\n yardiBluepoint: 97,\n yellowbox: 98,\n immixProtect: 99,\n flashParking: 100,\n everbridge: 101,\n robinPowered: 102,\n communico: 103,\n invisit: 104,\n mobileWallet: 105,\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _immutable = require(\"immutable\");\n\nvar _getIn = _interopRequireDefault(require(\"../plain/getIn\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n return _immutable.Iterable.isIterable(state) ? state.getIn(path) : (0, _getIn[\"default\"])(state, path);\n};\n\nvar _default = getIn;\nexports[\"default\"] = _default;","import { uuid4 } from '@sentry/utils';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nclass SentryNonRecordingSpan {\n\n constructor(spanContext = {}) {\n this._traceId = spanContext.traceId || uuid4();\n this._spanId = spanContext.spanId || uuid4().substring(16);\n }\n\n /** @inheritdoc */\n spanContext() {\n return {\n spanId: this._spanId,\n traceId: this._traceId,\n traceFlags: TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n end(_timestamp) {}\n\n /** @inheritdoc */\n setAttribute(_key, _value) {\n return this;\n }\n\n /** @inheritdoc */\n setAttributes(_values) {\n return this;\n }\n\n /** @inheritdoc */\n setStatus(_status) {\n return this;\n }\n\n /** @inheritdoc */\n updateName(_name) {\n return this;\n }\n\n /** @inheritdoc */\n isRecording() {\n return false;\n }\n\n /** @inheritdoc */\n addEvent(\n _name,\n _attributesOrStartTime,\n _startTime,\n ) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLink(_link) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n addLinks(_links) {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being comliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n recordException(_exception, _time) {\n // noop\n }\n}\n\nexport { SentryNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n","import { SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _LeftOutlined = _interopRequireDefault(require('./lib/icons/LeftOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _LeftOutlined;\nexports.default = _default;\nmodule.exports = _default;","import React from 'react';\nexport const PanelPickerContext = /*#__PURE__*/React.createContext({});\nexport const PanelPresetsContext = /*#__PURE__*/React.createContext({});","\"use client\";\n\nimport React from 'react';\nimport { generateColor } from '../util';\nconst ColorClear = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const handleClick = () => {\n if (onChange && value && !value.cleared) {\n const hsba = value.toHsb();\n hsba.a = 0;\n const genColor = generateColor(hsba);\n genColor.cleared = true;\n onChange(genColor);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-clear`,\n onClick: handleClick\n });\n};\nexport default ColorClear;","export var ColorFormat;\n(function (ColorFormat) {\n ColorFormat[\"hex\"] = \"hex\";\n ColorFormat[\"rgb\"] = \"rgb\";\n ColorFormat[\"hsb\"] = \"hsb\";\n})(ColorFormat || (ColorFormat = {}));","\"use client\";\n\nimport React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport InputNumber from '../../input-number';\nconst ColorSteppers = _ref => {\n let {\n prefixCls,\n min = 0,\n max = 100,\n value,\n onChange,\n className,\n formatter\n } = _ref;\n const colorSteppersPrefixCls = `${prefixCls}-steppers`;\n const [stepValue, setStepValue] = useState(value);\n // Update step value\n useEffect(() => {\n if (!Number.isNaN(value)) {\n setStepValue(value);\n }\n }, [value]);\n return /*#__PURE__*/React.createElement(InputNumber, {\n className: classNames(colorSteppersPrefixCls, className),\n min: min,\n max: max,\n value: stepValue,\n formatter: formatter,\n size: \"small\",\n onChange: step => {\n if (!value) {\n setStepValue(step || 0);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(step);\n }\n });\n};\nexport default ColorSteppers;","\"use client\";\n\nimport React, { useEffect, useState } from 'react';\nimport { generateColor, getColorAlpha } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorAlphaInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorAlphaInputPrefixCls = `${prefixCls}-alpha-input`;\n const [alphaValue, setAlphaValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setAlphaValue(value);\n }\n }, [value]);\n const handleAlphaChange = step => {\n const hsba = alphaValue.toHsb();\n hsba.a = (step || 0) / 100;\n const genColor = generateColor(hsba);\n if (!value) {\n setAlphaValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(ColorSteppers, {\n value: getColorAlpha(alphaValue),\n prefixCls: prefixCls,\n formatter: step => `${step}%`,\n className: colorAlphaInputPrefixCls,\n onChange: handleAlphaChange\n });\n};\nexport default ColorAlphaInput;","\"use client\";\n\nimport React, { useEffect, useState } from 'react';\nimport Input from '../../input';\nimport { toHexFormat } from '../color';\nimport { generateColor } from '../util';\nconst hexReg = /(^#[\\da-f]{6}$)|(^#[\\da-f]{8}$)/i;\nconst isHexString = hex => hexReg.test(`#${hex}`);\nconst ColorHexInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHexInputPrefixCls = `${prefixCls}-hex-input`;\n const [hexValue, setHexValue] = useState(() => value ? toHexFormat(value.toHexString()) : undefined);\n // Update step value\n useEffect(() => {\n if (value) {\n setHexValue(toHexFormat(value.toHexString()));\n }\n }, [value]);\n const handleHexChange = e => {\n const originValue = e.target.value;\n setHexValue(toHexFormat(originValue));\n if (isHexString(toHexFormat(originValue, true))) {\n onChange === null || onChange === void 0 ? void 0 : onChange(generateColor(originValue));\n }\n };\n return /*#__PURE__*/React.createElement(Input, {\n className: colorHexInputPrefixCls,\n value: hexValue,\n prefix: \"#\",\n onChange: handleHexChange,\n size: \"small\"\n });\n};\nexport default ColorHexInput;","\"use client\";\n\nimport React, { useEffect, useState } from 'react';\nimport { generateColor, getRoundNumber } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorHsbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorHsbInputPrefixCls = `${prefixCls}-hsb-input`;\n const [hsbValue, setHsbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setHsbValue(value);\n }\n }, [value]);\n const handleHsbChange = (step, type) => {\n const hsb = hsbValue.toHsb();\n hsb[type] = type === 'h' ? step : (step || 0) / 100;\n const genColor = generateColor(hsb);\n if (!value) {\n setHsbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorHsbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 360,\n min: 0,\n value: Number(hsbValue.toHsb().h),\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => getRoundNumber(step || 0).toString(),\n onChange: step => handleHsbChange(Number(step), 'h')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().s) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 's')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 100,\n min: 0,\n value: Number(hsbValue.toHsb().b) * 100,\n prefixCls: prefixCls,\n className: colorHsbInputPrefixCls,\n formatter: step => `${getRoundNumber(step || 0)}%`,\n onChange: step => handleHsbChange(Number(step), 'b')\n }));\n};\nexport default ColorHsbInput;","\"use client\";\n\nimport React, { useEffect, useState } from 'react';\nimport { generateColor } from '../util';\nimport ColorSteppers from './ColorSteppers';\nconst ColorRgbInput = _ref => {\n let {\n prefixCls,\n value,\n onChange\n } = _ref;\n const colorRgbInputPrefixCls = `${prefixCls}-rgb-input`;\n const [rgbValue, setRgbValue] = useState(generateColor(value || '#000'));\n // Update step value\n useEffect(() => {\n if (value) {\n setRgbValue(value);\n }\n }, [value]);\n const handleRgbChange = (step, type) => {\n const rgb = rgbValue.toRgb();\n rgb[type] = step || 0;\n const genColor = generateColor(rgb);\n if (!value) {\n setRgbValue(genColor);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(genColor);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorRgbInputPrefixCls\n }, /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().r),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'r')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().g),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'g')\n }), /*#__PURE__*/React.createElement(ColorSteppers, {\n max: 255,\n min: 0,\n value: Number(rgbValue.toRgb().b),\n prefixCls: prefixCls,\n className: colorRgbInputPrefixCls,\n onChange: step => handleRgbChange(Number(step), 'b')\n }));\n};\nexport default ColorRgbInput;","\"use client\";\n\nimport React, { useMemo } from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Select from '../../select';\nimport { ColorFormat } from '../interface';\nimport ColorAlphaInput from './ColorAlphaInput';\nimport ColorHexInput from './ColorHexInput';\nimport ColorHsbInput from './ColorHsbInput';\nimport ColorRgbInput from './ColorRgbInput';\nconst selectOptions = [ColorFormat.hex, ColorFormat.hsb, ColorFormat.rgb].map(format => ({\n value: format,\n label: format.toLocaleUpperCase()\n}));\nconst ColorInput = props => {\n const {\n prefixCls,\n format,\n value,\n disabledAlpha,\n onFormatChange,\n onChange\n } = props;\n const [colorFormat, setColorFormat] = useMergedState(ColorFormat.hex, {\n value: format,\n onChange: onFormatChange\n });\n const colorInputPrefixCls = `${prefixCls}-input`;\n const handleFormatChange = newFormat => {\n setColorFormat(newFormat);\n };\n const steppersNode = useMemo(() => {\n const inputProps = {\n value,\n prefixCls,\n onChange\n };\n switch (colorFormat) {\n case ColorFormat.hsb:\n return /*#__PURE__*/React.createElement(ColorHsbInput, Object.assign({}, inputProps));\n case ColorFormat.rgb:\n return /*#__PURE__*/React.createElement(ColorRgbInput, Object.assign({}, inputProps));\n // case ColorFormat.hex:\n default:\n return /*#__PURE__*/React.createElement(ColorHexInput, Object.assign({}, inputProps));\n }\n }, [colorFormat, prefixCls, value, onChange]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorInputPrefixCls}-container`\n }, /*#__PURE__*/React.createElement(Select, {\n value: colorFormat,\n variant: \"borderless\",\n getPopupContainer: current => current,\n popupMatchSelectWidth: 68,\n placement: \"bottomRight\",\n onChange: handleFormatChange,\n className: `${prefixCls}-format-select`,\n size: \"small\",\n options: selectOptions\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: colorInputPrefixCls\n }, steppersNode), !disabledAlpha && (/*#__PURE__*/React.createElement(ColorAlphaInput, {\n prefixCls: prefixCls,\n value: value,\n onChange: onChange\n })));\n};\nexport default ColorInput;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { UnstableContext } from 'rc-slider';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport Slider from '../../slider';\nimport SliderInternalContext from '../../slider/Context';\nimport { getGradientPercentColor } from '../util';\nexport const GradientColorSlider = props => {\n const {\n prefixCls,\n colors,\n type,\n color,\n range = false,\n className,\n activeIndex,\n onActive,\n onDragStart,\n onDragChange,\n onKeyDelete\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"colors\", \"type\", \"color\", \"range\", \"className\", \"activeIndex\", \"onActive\", \"onDragStart\", \"onDragChange\", \"onKeyDelete\"]);\n const sliderProps = Object.assign(Object.assign({}, restProps), {\n track: false\n });\n // ========================== Background ==========================\n const linearCss = React.useMemo(() => {\n const colorsStr = colors.map(c => `${c.color} ${c.percent}%`).join(', ');\n return `linear-gradient(90deg, ${colorsStr})`;\n }, [colors]);\n const pointColor = React.useMemo(() => {\n if (!color || !type) {\n return null;\n }\n if (type === 'alpha') {\n return color.toRgbString();\n }\n return `hsl(${color.toHsb().h}, 100%, 50%)`;\n }, [color, type]);\n // ======================= Context: Slider ========================\n const onInternalDragStart = useEvent(onDragStart);\n const onInternalDragChange = useEvent(onDragChange);\n const unstableContext = React.useMemo(() => ({\n onDragStart: onInternalDragStart,\n onDragChange: onInternalDragChange\n }), []);\n // ======================= Context: Render ========================\n const handleRender = useEvent((ori, info) => {\n const {\n onFocus,\n style,\n className: handleCls,\n onKeyDown\n } = ori.props;\n // Point Color\n const mergedStyle = Object.assign({}, style);\n if (type === 'gradient') {\n mergedStyle.background = getGradientPercentColor(colors, info.value);\n }\n return /*#__PURE__*/React.cloneElement(ori, {\n onFocus: e => {\n onActive === null || onActive === void 0 ? void 0 : onActive(info.index);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n },\n style: mergedStyle,\n className: classNames(handleCls, {\n [`${prefixCls}-slider-handle-active`]: activeIndex === info.index\n }),\n onKeyDown: e => {\n if ((e.key === 'Delete' || e.key === 'Backspace') && onKeyDelete) {\n onKeyDelete(info.index);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n });\n });\n const sliderContext = React.useMemo(() => ({\n direction: 'ltr',\n handleRender\n }), []);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderInternalContext.Provider, {\n value: sliderContext\n }, /*#__PURE__*/React.createElement(UnstableContext.Provider, {\n value: unstableContext\n }, /*#__PURE__*/React.createElement(Slider, Object.assign({}, sliderProps, {\n className: classNames(className, `${prefixCls}-slider`),\n tooltip: {\n open: false\n },\n range: {\n editable: range,\n minCount: 2\n },\n styles: {\n rail: {\n background: linearCss\n },\n handle: pointColor ? {\n background: pointColor\n } : {}\n },\n classNames: {\n rail: `${prefixCls}-slider-rail`,\n handle: `${prefixCls}-slider-handle`\n }\n }))));\n};\nconst SingleColorSlider = props => {\n const {\n value,\n onChange,\n onChangeComplete\n } = props;\n const singleOnChange = v => onChange(v[0]);\n const singleOnChangeComplete = v => onChangeComplete(v[0]);\n return /*#__PURE__*/React.createElement(GradientColorSlider, Object.assign({}, props, {\n value: [value],\n onChange: singleOnChange,\n onChangeComplete: singleOnChangeComplete\n }));\n};\nexport default SingleColorSlider;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { AggregationColor } from '../../color';\nimport { getGradientPercentColor } from '../../util';\nimport { GradientColorSlider } from '../ColorSlider';\nfunction sortColors(colors) {\n return _toConsumableArray(colors).sort((a, b) => a.percent - b.percent);\n}\n/**\n * GradientColorBar will auto show when the mode is `gradient`.\n */\nconst GradientColorBar = props => {\n const {\n prefixCls,\n mode,\n onChange,\n onChangeComplete,\n onActive,\n activeIndex,\n onGradientDragging,\n colors\n } = props;\n const isGradient = mode === 'gradient';\n // ============================= Colors =============================\n const colorList = React.useMemo(() => colors.map(info => ({\n percent: info.percent,\n color: info.color.toRgbString()\n })), [colors]);\n const values = React.useMemo(() => colorList.map(info => info.percent), [colorList]);\n // ============================== Drag ==============================\n const colorsRef = React.useRef(colorList);\n // Record current colors\n const onDragStart = _ref => {\n let {\n rawValues,\n draggingIndex,\n draggingValue\n } = _ref;\n if (rawValues.length > colorList.length) {\n // Add new node\n const newPointColor = getGradientPercentColor(colorList, draggingValue);\n const nextColors = _toConsumableArray(colorList);\n nextColors.splice(draggingIndex, 0, {\n percent: draggingValue,\n color: newPointColor\n });\n colorsRef.current = nextColors;\n } else {\n colorsRef.current = colorList;\n }\n onGradientDragging(true);\n onChange(new AggregationColor(sortColors(colorsRef.current)), true);\n };\n // Adjust color when dragging\n const onDragChange = _ref2 => {\n let {\n deleteIndex,\n draggingIndex,\n draggingValue\n } = _ref2;\n let nextColors = _toConsumableArray(colorsRef.current);\n if (deleteIndex !== -1) {\n nextColors.splice(deleteIndex, 1);\n } else {\n nextColors[draggingIndex] = Object.assign(Object.assign({}, nextColors[draggingIndex]), {\n percent: draggingValue\n });\n nextColors = sortColors(nextColors);\n }\n onChange(new AggregationColor(nextColors), true);\n };\n // ============================== Key ===============================\n const onKeyDelete = index => {\n const nextColors = _toConsumableArray(colorList);\n nextColors.splice(index, 1);\n const nextColor = new AggregationColor(nextColors);\n onChange(nextColor);\n onChangeComplete(nextColor);\n };\n // ============================= Change =============================\n const onInternalChangeComplete = nextValues => {\n onChangeComplete(new AggregationColor(colorList));\n // Reset `activeIndex` if out of range\n if (activeIndex >= nextValues.length) {\n onActive(nextValues.length - 1);\n }\n onGradientDragging(false);\n };\n // ============================= Render =============================\n if (!isGradient) {\n return null;\n }\n return /*#__PURE__*/React.createElement(GradientColorSlider, {\n min: 0,\n max: 100,\n prefixCls: prefixCls,\n className: `${prefixCls}-gradient-slider`,\n colors: colorList,\n color: null,\n value: values,\n range: true,\n onChangeComplete: onInternalChangeComplete,\n disabled: false,\n type: \"gradient\",\n // Active\n activeIndex: activeIndex,\n onActive: onActive,\n // Drag\n onDragStart: onDragStart,\n onDragChange: onDragChange,\n onKeyDelete: onKeyDelete\n });\n};\nexport default /*#__PURE__*/React.memo(GradientColorBar);","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useContext } from 'react';\nimport RcColorPicker from '@rc-component/color-picker';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Segmented from '../../../segmented';\nimport { AggregationColor } from '../../color';\nimport { PanelPickerContext } from '../../context';\nimport { genAlphaColor, generateColor } from '../../util';\nimport ColorClear from '../ColorClear';\nimport ColorInput from '../ColorInput';\nimport ColorSlider from '../ColorSlider';\nimport GradientColorBar from './GradientColorBar';\nconst components = {\n slider: ColorSlider\n};\nconst PanelPicker = () => {\n const panelPickerContext = useContext(PanelPickerContext);\n const {\n mode,\n onModeChange,\n modeOptions,\n prefixCls,\n allowClear,\n value,\n disabledAlpha,\n onChange,\n onClear,\n onChangeComplete,\n activeIndex,\n gradientDragging\n } = panelPickerContext,\n injectProps = __rest(panelPickerContext, [\"mode\", \"onModeChange\", \"modeOptions\", \"prefixCls\", \"allowClear\", \"value\", \"disabledAlpha\", \"onChange\", \"onClear\", \"onChangeComplete\", \"activeIndex\", \"gradientDragging\"]);\n // ============================ Colors ============================\n const colors = React.useMemo(() => {\n if (!value.cleared) {\n return value.getColors();\n }\n return [{\n percent: 0,\n color: new AggregationColor('')\n }, {\n percent: 100,\n color: new AggregationColor('')\n }];\n }, [value]);\n // ========================= Single Color =========================\n const isSingle = !value.isGradient();\n // We cache the point color in case user drag the gradient point across another one\n const [lockedColor, setLockedColor] = React.useState(value);\n // Use layout effect here since `useEffect` will cause a blink when mouseDown\n useLayoutEffect(() => {\n var _a;\n if (!isSingle) {\n setLockedColor((_a = colors[activeIndex]) === null || _a === void 0 ? void 0 : _a.color);\n }\n }, [gradientDragging, activeIndex]);\n const activeColor = React.useMemo(() => {\n var _a;\n if (isSingle) {\n return value;\n }\n // Use cache when dragging. User can not operation panel when dragging.\n if (gradientDragging) {\n return lockedColor;\n }\n return (_a = colors[activeIndex]) === null || _a === void 0 ? void 0 : _a.color;\n }, [value, activeIndex, isSingle, lockedColor, gradientDragging]);\n // ========================= Picker Color =========================\n const [pickerColor, setPickerColor] = React.useState(activeColor);\n const [forceSync, setForceSync] = React.useState(0);\n const mergedPickerColor = (pickerColor === null || pickerColor === void 0 ? void 0 : pickerColor.equals(activeColor)) ? activeColor : pickerColor;\n useLayoutEffect(() => {\n setPickerColor(activeColor);\n }, [forceSync, activeColor === null || activeColor === void 0 ? void 0 : activeColor.toHexString()]);\n // ============================ Change ============================\n const fillColor = (nextColor, info) => {\n let submitColor = generateColor(nextColor);\n // Fill alpha color to 100% if origin is cleared color\n if (value.cleared) {\n const rgb = submitColor.toRgb();\n // Auto fill color if origin is `0/0/0` to enhance user experience\n if (!rgb.r && !rgb.g && !rgb.b && info) {\n const {\n type: infoType,\n value: infoValue = 0\n } = info;\n submitColor = new AggregationColor({\n h: infoType === 'hue' ? infoValue : 0,\n s: 1,\n b: 1,\n a: infoType === 'alpha' ? infoValue / 100 : 1\n });\n } else {\n submitColor = genAlphaColor(submitColor);\n }\n }\n if (mode === 'single') {\n return submitColor;\n }\n const nextColors = _toConsumableArray(colors);\n nextColors[activeIndex] = Object.assign(Object.assign({}, nextColors[activeIndex]), {\n color: submitColor\n });\n return new AggregationColor(nextColors);\n };\n const onPickerChange = (colorValue, fromPicker, info) => {\n const nextColor = fillColor(colorValue, info);\n setPickerColor(nextColor.isGradient() ? nextColor.getColors()[activeIndex].color : nextColor);\n onChange(nextColor, fromPicker);\n };\n const onInternalChangeComplete = (nextColor, info) => {\n // Trigger complete event\n onChangeComplete(fillColor(nextColor, info));\n // Back of origin color in case in controlled\n // This will set after `onChangeComplete` to avoid `setState` trigger rerender\n // which will make `fillColor` get wrong `color.cleared` state\n setForceSync(ori => ori + 1);\n };\n const onInputChange = colorValue => {\n onChange(fillColor(colorValue));\n };\n // ============================ Render ============================\n // Operation bar\n let operationNode = null;\n const showMode = modeOptions.length > 1;\n if (allowClear || showMode) {\n operationNode = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-operation`\n }, showMode && (/*#__PURE__*/React.createElement(Segmented, {\n size: \"small\",\n options: modeOptions,\n value: mode,\n onChange: onModeChange\n })), /*#__PURE__*/React.createElement(ColorClear, Object.assign({\n prefixCls: prefixCls,\n value: value,\n onChange: clearColor => {\n onChange(clearColor);\n onClear === null || onClear === void 0 ? void 0 : onClear();\n }\n }, injectProps)));\n }\n // Return\n return /*#__PURE__*/React.createElement(React.Fragment, null, operationNode, /*#__PURE__*/React.createElement(GradientColorBar, Object.assign({}, panelPickerContext, {\n colors: colors\n })), /*#__PURE__*/React.createElement(RcColorPicker, {\n prefixCls: prefixCls,\n value: mergedPickerColor === null || mergedPickerColor === void 0 ? void 0 : mergedPickerColor.toHsb(),\n disabledAlpha: disabledAlpha,\n onChange: (colorValue, info) => {\n onPickerChange(colorValue, true, info);\n },\n onChangeComplete: (colorValue, info) => {\n onInternalChangeComplete(colorValue, info);\n },\n components: components\n }), /*#__PURE__*/React.createElement(ColorInput, Object.assign({\n value: activeColor,\n onChange: onInputChange,\n prefixCls: prefixCls,\n disabledAlpha: disabledAlpha\n }, injectProps)));\n};\nexport default PanelPicker;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { PanelPresetsContext } from '../context';\nimport ColorPresets from './ColorPresets';\nconst PanelPresets = () => {\n const {\n prefixCls,\n value,\n presets,\n onChange\n } = useContext(PanelPresetsContext);\n return Array.isArray(presets) ? (/*#__PURE__*/React.createElement(ColorPresets, {\n value: value,\n presets: presets,\n prefixCls: prefixCls,\n onChange: onChange\n })) : null;\n};\nexport default PanelPresets;","\"use client\";\n\nimport React from 'react';\nimport Divider from '../divider';\nimport PanelPicker from './components/PanelPicker';\nimport PanelPresets from './components/PanelPresets';\nimport { PanelPickerContext, PanelPresetsContext } from './context';\nconst ColorPickerPanel = props => {\n const {\n prefixCls,\n presets,\n panelRender,\n value,\n onChange,\n onClear,\n allowClear,\n disabledAlpha,\n mode,\n onModeChange,\n modeOptions,\n onChangeComplete,\n activeIndex,\n onActive,\n format,\n onFormatChange,\n gradientDragging,\n onGradientDragging\n } = props;\n const colorPickerPanelPrefixCls = `${prefixCls}-inner`;\n // ===================== Context ======================\n const panelContext = React.useMemo(() => ({\n prefixCls,\n value,\n onChange,\n onClear,\n allowClear,\n disabledAlpha,\n mode,\n onModeChange,\n modeOptions,\n onChangeComplete,\n activeIndex,\n onActive,\n format,\n onFormatChange,\n gradientDragging,\n onGradientDragging\n }), [prefixCls, value, onChange, onClear, allowClear, disabledAlpha, mode, onModeChange, modeOptions, onChangeComplete, activeIndex, onActive, format, onFormatChange, gradientDragging, onGradientDragging]);\n const presetContext = React.useMemo(() => ({\n prefixCls,\n value,\n presets,\n onChange\n }), [prefixCls, value, presets, onChange]);\n // ====================== Render ======================\n const innerPanel = /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPickerPanelPrefixCls}-content`\n }, /*#__PURE__*/React.createElement(PanelPicker, null), Array.isArray(presets) && /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(PanelPresets, null));\n return /*#__PURE__*/React.createElement(PanelPickerContext.Provider, {\n value: panelContext\n }, /*#__PURE__*/React.createElement(PanelPresetsContext.Provider, {\n value: presetContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: colorPickerPanelPrefixCls\n }, typeof panelRender === 'function' ? panelRender(innerPanel, {\n components: {\n Picker: PanelPicker,\n Presets: PanelPresets\n }\n }) : innerPanel)));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPickerPanel.displayName = 'ColorPickerPanel';\n}\nexport default ColorPickerPanel;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { forwardRef, useMemo } from 'react';\nimport { ColorBlock } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { useLocale } from '../../locale';\nimport { getColorAlpha } from '../util';\nimport ColorClear from './ColorClear';\nconst ColorTrigger = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n color,\n prefixCls,\n open,\n disabled,\n format,\n className,\n showText,\n activeIndex\n } = props,\n rest = __rest(props, [\"color\", \"prefixCls\", \"open\", \"disabled\", \"format\", \"className\", \"showText\", \"activeIndex\"]);\n const colorTriggerPrefixCls = `${prefixCls}-trigger`;\n const colorTextPrefixCls = `${colorTriggerPrefixCls}-text`;\n const colorTextCellPrefixCls = `${colorTextPrefixCls}-cell`;\n const [locale] = useLocale('ColorPicker');\n // ============================== Text ==============================\n const desc = React.useMemo(() => {\n if (!showText) {\n return '';\n }\n if (typeof showText === 'function') {\n return showText(color);\n }\n if (color.cleared) {\n return locale.transparent;\n }\n if (color.isGradient()) {\n return color.getColors().map((c, index) => {\n const inactive = activeIndex !== -1 && activeIndex !== index;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: index,\n className: classNames(colorTextCellPrefixCls, inactive && `${colorTextCellPrefixCls}-inactive`)\n }, c.color.toRgbString(), \" \", c.percent, \"%\");\n });\n }\n const hexString = color.toHexString().toUpperCase();\n const alpha = getColorAlpha(color);\n switch (format) {\n case 'rgb':\n return color.toRgbString();\n case 'hsb':\n return color.toHsbString();\n // case 'hex':\n default:\n return alpha < 100 ? `${hexString.slice(0, 7)},${alpha}%` : hexString;\n }\n }, [color, format, showText, activeIndex]);\n // ============================= Render =============================\n const containerNode = useMemo(() => color.cleared ? (/*#__PURE__*/React.createElement(ColorClear, {\n prefixCls: prefixCls\n })) : (/*#__PURE__*/React.createElement(ColorBlock, {\n prefixCls: prefixCls,\n color: color.toCssString()\n })), [color, prefixCls]);\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n className: classNames(colorTriggerPrefixCls, className, {\n [`${colorTriggerPrefixCls}-active`]: open,\n [`${colorTriggerPrefixCls}-disabled`]: disabled\n })\n }, pickAttrs(rest)), containerNode, showText && /*#__PURE__*/React.createElement(\"div\", {\n className: colorTextPrefixCls\n }, desc));\n});\nexport default ColorTrigger;","import { unit } from '@ant-design/cssinjs';\n/**\n * @private Internal usage only\n */\nexport const getTransBg = (size, colorFill) => ({\n backgroundImage: `conic-gradient(${colorFill} 0 25%, transparent 0 50%, ${colorFill} 0 75%, transparent 0)`,\n backgroundSize: `${size} ${size}`\n});\nconst genColorBlockStyle = (token, size) => {\n const {\n componentCls,\n borderRadiusSM,\n colorPickerInsetShadow,\n lineWidth,\n colorFillSecondary\n } = token;\n return {\n [`${componentCls}-color-block`]: Object.assign(Object.assign({\n position: 'relative',\n borderRadius: borderRadiusSM,\n width: size,\n height: size,\n boxShadow: colorPickerInsetShadow,\n flex: 'none'\n }, getTransBg('50%', token.colorFillSecondary)), {\n [`${componentCls}-color-block-inner`]: {\n width: '100%',\n height: '100%',\n boxShadow: `inset 0 0 0 ${unit(lineWidth)} ${colorFillSecondary}`,\n borderRadius: 'inherit'\n }\n })\n };\n};\nexport default genColorBlockStyle;","import { unit } from '@ant-design/cssinjs';\nconst genInputStyle = token => {\n const {\n componentCls,\n antCls,\n fontSizeSM,\n lineHeightSM,\n colorPickerAlphaInputWidth,\n marginXXS,\n paddingXXS,\n controlHeightSM,\n marginXS,\n fontSizeIcon,\n paddingXS,\n colorTextPlaceholder,\n colorPickerInputNumberHandleWidth,\n lineWidth\n } = token;\n return {\n [`${componentCls}-input-container`]: {\n display: 'flex',\n [`${componentCls}-steppers${antCls}-input-number`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM,\n [`${antCls}-input-number-input`]: {\n paddingInlineStart: paddingXXS,\n paddingInlineEnd: 0\n },\n [`${antCls}-input-number-handler-wrap`]: {\n width: colorPickerInputNumberHandleWidth\n }\n },\n [`${componentCls}-steppers${componentCls}-alpha-input`]: {\n flex: `0 0 ${unit(colorPickerAlphaInputWidth)}`,\n marginInlineStart: marginXXS\n },\n [`${componentCls}-format-select${antCls}-select`]: {\n marginInlineEnd: marginXS,\n width: 'auto',\n '&-single': {\n [`${antCls}-select-selector`]: {\n padding: 0,\n border: 0\n },\n [`${antCls}-select-arrow`]: {\n insetInlineEnd: 0\n },\n [`${antCls}-select-selection-item`]: {\n paddingInlineEnd: token.calc(fontSizeIcon).add(marginXXS).equal(),\n fontSize: fontSizeSM,\n lineHeight: unit(controlHeightSM)\n },\n [`${antCls}-select-item-option-content`]: {\n fontSize: fontSizeSM,\n lineHeight: lineHeightSM\n },\n [`${antCls}-select-dropdown`]: {\n [`${antCls}-select-item`]: {\n minHeight: 'auto'\n }\n }\n }\n },\n [`${componentCls}-input`]: {\n gap: marginXXS,\n alignItems: 'center',\n flex: 1,\n width: 0,\n [`${componentCls}-hsb-input,${componentCls}-rgb-input`]: {\n display: 'flex',\n gap: marginXXS,\n alignItems: 'center'\n },\n [`${componentCls}-steppers`]: {\n flex: 1\n },\n [`${componentCls}-hex-input${antCls}-input-affix-wrapper`]: {\n flex: 1,\n padding: `0 ${unit(paddingXS)}`,\n [`${antCls}-input`]: {\n fontSize: fontSizeSM,\n textTransform: 'uppercase',\n lineHeight: unit(token.calc(controlHeightSM).sub(token.calc(lineWidth).mul(2)).equal())\n },\n [`${antCls}-input-prefix`]: {\n color: colorTextPlaceholder\n }\n }\n }\n }\n };\n};\nexport default genInputStyle;","import { unit } from '@ant-design/cssinjs';\nconst genPickerStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n borderRadiusSM,\n colorPickerInsetShadow,\n marginSM,\n colorBgElevated,\n colorFillSecondary,\n lineWidthBold,\n colorPickerHandlerSize\n } = token;\n return {\n userSelect: 'none',\n [`${componentCls}-select`]: {\n [`${componentCls}-palette`]: {\n minHeight: token.calc(controlHeightLG).mul(4).equal(),\n overflow: 'hidden',\n borderRadius: borderRadiusSM\n },\n [`${componentCls}-saturation`]: {\n position: 'absolute',\n borderRadius: 'inherit',\n boxShadow: colorPickerInsetShadow,\n inset: 0\n },\n marginBottom: marginSM\n },\n // ======================== Panel =========================\n [`${componentCls}-handler`]: {\n width: colorPickerHandlerSize,\n height: colorPickerHandlerSize,\n border: `${unit(lineWidthBold)} solid ${colorBgElevated}`,\n position: 'relative',\n borderRadius: '50%',\n cursor: 'pointer',\n boxShadow: `${colorPickerInsetShadow}, 0 0 0 1px ${colorFillSecondary}`\n }\n };\n};\nexport default genPickerStyle;","import { unit } from '@ant-design/cssinjs';\nconst genPresetsStyle = token => {\n const {\n componentCls,\n antCls,\n colorTextQuaternary,\n paddingXXS,\n colorPickerPresetColorSize,\n fontSizeSM,\n colorText,\n lineHeightSM,\n lineWidth,\n borderRadius,\n colorFill,\n colorWhite,\n marginXXS,\n paddingXS,\n fontHeightSM\n } = token;\n return {\n [`${componentCls}-presets`]: {\n [`${antCls}-collapse-item > ${antCls}-collapse-header`]: {\n padding: 0,\n [`${antCls}-collapse-expand-icon`]: {\n height: fontHeightSM,\n color: colorTextQuaternary,\n paddingInlineEnd: paddingXXS\n }\n },\n [`${antCls}-collapse`]: {\n display: 'flex',\n flexDirection: 'column',\n gap: marginXXS\n },\n [`${antCls}-collapse-item > ${antCls}-collapse-content > ${antCls}-collapse-content-box`]: {\n padding: `${unit(paddingXS)} 0`\n },\n '&-label': {\n fontSize: fontSizeSM,\n color: colorText,\n lineHeight: lineHeightSM\n },\n '&-items': {\n display: 'flex',\n flexWrap: 'wrap',\n gap: token.calc(marginXXS).mul(1.5).equal(),\n [`${componentCls}-presets-color`]: {\n position: 'relative',\n cursor: 'pointer',\n width: colorPickerPresetColorSize,\n height: colorPickerPresetColorSize,\n '&::before': {\n content: '\"\"',\n pointerEvents: 'none',\n width: token.calc(colorPickerPresetColorSize).add(token.calc(lineWidth).mul(4)).equal(),\n height: token.calc(colorPickerPresetColorSize).add(token.calc(lineWidth).mul(4)).equal(),\n position: 'absolute',\n top: token.calc(lineWidth).mul(-2).equal(),\n insetInlineStart: token.calc(lineWidth).mul(-2).equal(),\n borderRadius,\n border: `${unit(lineWidth)} solid transparent`,\n transition: `border-color ${token.motionDurationMid} ${token.motionEaseInBack}`\n },\n '&:hover::before': {\n borderColor: colorFill\n },\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n top: '50%',\n insetInlineStart: '21.5%',\n display: 'table',\n width: token.calc(colorPickerPresetColorSize).div(13).mul(5).equal(),\n height: token.calc(colorPickerPresetColorSize).div(13).mul(8).equal(),\n border: `${unit(token.lineWidthBold)} solid ${token.colorWhite}`,\n borderTop: 0,\n borderInlineStart: 0,\n transform: 'rotate(45deg) scale(0) translate(-50%,-50%)',\n opacity: 0,\n content: '\"\"',\n transition: `all ${token.motionDurationFast} ${token.motionEaseInBack}, opacity ${token.motionDurationFast}`\n },\n [`&${componentCls}-presets-color-checked`]: {\n '&::after': {\n opacity: 1,\n borderColor: colorWhite,\n transform: 'rotate(45deg) scale(1) translate(-50%,-50%)',\n transition: `transform ${token.motionDurationMid} ${token.motionEaseOutBack} ${token.motionDurationFast}`\n },\n [`&${componentCls}-presets-color-bright`]: {\n '&::after': {\n borderColor: 'rgba(0, 0, 0, 0.45)'\n }\n }\n }\n }\n },\n '&-empty': {\n fontSize: fontSizeSM,\n color: colorTextQuaternary\n }\n }\n };\n};\nexport default genPresetsStyle;","import { unit } from '@ant-design/cssinjs';\nimport { getTransBg } from './color-block';\nconst genSliderStyle = token => {\n const {\n componentCls,\n colorPickerInsetShadow,\n colorBgElevated,\n colorFillSecondary,\n lineWidthBold,\n colorPickerHandlerSizeSM,\n colorPickerSliderHeight,\n marginSM,\n marginXS\n } = token;\n const handleInnerSize = token.calc(colorPickerHandlerSizeSM).sub(token.calc(lineWidthBold).mul(2).equal()).equal();\n const handleHoverSize = token.calc(colorPickerHandlerSizeSM).add(token.calc(lineWidthBold).mul(2).equal()).equal();\n const activeHandleStyle = {\n '&:after': {\n transform: 'scale(1)',\n boxShadow: `${colorPickerInsetShadow}, 0 0 0 1px ${token.colorPrimaryActive}`\n }\n };\n return {\n // ======================== Slider ========================\n [`${componentCls}-slider`]: [getTransBg(unit(colorPickerSliderHeight), token.colorFillSecondary), {\n margin: 0,\n padding: 0,\n height: colorPickerSliderHeight,\n borderRadius: token.calc(colorPickerSliderHeight).div(2).equal(),\n '&-rail': {\n height: colorPickerSliderHeight,\n borderRadius: token.calc(colorPickerSliderHeight).div(2).equal(),\n boxShadow: colorPickerInsetShadow\n },\n [`& ${componentCls}-slider-handle`]: {\n width: handleInnerSize,\n height: handleInnerSize,\n top: 0,\n borderRadius: '100%',\n '&:before': {\n display: 'block',\n position: 'absolute',\n background: 'transparent',\n left: {\n _skip_check_: true,\n value: '50%'\n },\n top: '50%',\n transform: 'translate(-50%, -50%)',\n width: handleHoverSize,\n height: handleHoverSize,\n borderRadius: '100%'\n },\n '&:after': {\n width: colorPickerHandlerSizeSM,\n height: colorPickerHandlerSizeSM,\n border: `${unit(lineWidthBold)} solid ${colorBgElevated}`,\n boxShadow: `${colorPickerInsetShadow}, 0 0 0 1px ${colorFillSecondary}`,\n outline: 'none',\n insetInlineStart: token.calc(lineWidthBold).mul(-1).equal(),\n top: token.calc(lineWidthBold).mul(-1).equal(),\n background: 'transparent',\n transition: 'none'\n },\n '&:focus': activeHandleStyle\n }\n }],\n // ======================== Layout ========================\n [`${componentCls}-slider-container`]: {\n display: 'flex',\n gap: marginSM,\n marginBottom: marginSM,\n // Group\n [`${componentCls}-slider-group`]: {\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n display: 'flex',\n '&-disabled-alpha': {\n justifyContent: 'center'\n }\n }\n },\n [`${componentCls}-gradient-slider`]: {\n marginBottom: marginXS,\n [`& ${componentCls}-slider-handle`]: {\n '&:after': {\n transform: 'scale(0.8)'\n },\n '&-active, &:focus': activeHandleStyle\n }\n }\n };\n};\nexport default genSliderStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genColorBlockStyle from './color-block';\nimport genInputStyle from './input';\nimport genPickerStyle from './picker';\nimport genPresetsStyle from './presets';\nimport genSliderStyle from './slider';\nexport const genActiveStyle = (token, borderColor, outlineColor) => ({\n borderInlineEndWidth: token.lineWidth,\n borderColor,\n boxShadow: `0 0 0 ${unit(token.controlOutlineWidth)} ${outlineColor}`,\n outline: 0\n});\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n '&-rtl': {\n [`${componentCls}-presets-color`]: {\n '&::after': {\n direction: 'ltr'\n }\n },\n [`${componentCls}-clear`]: {\n '&::after': {\n direction: 'ltr'\n }\n }\n }\n };\n};\nconst genClearStyle = (token, size, extraStyle) => {\n const {\n componentCls,\n borderRadiusSM,\n lineWidth,\n colorSplit,\n colorBorder,\n red6\n } = token;\n return {\n [`${componentCls}-clear`]: Object.assign(Object.assign({\n width: size,\n height: size,\n borderRadius: borderRadiusSM,\n border: `${unit(lineWidth)} solid ${colorSplit}`,\n position: 'relative',\n overflow: 'hidden',\n cursor: 'inherit',\n transition: `all ${token.motionDurationFast}`\n }, extraStyle), {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n insetInlineEnd: token.calc(lineWidth).mul(-1).equal(),\n top: token.calc(lineWidth).mul(-1).equal(),\n display: 'block',\n width: 40,\n // maximum\n height: 2,\n // fixed\n transformOrigin: `calc(100% - 1px) 1px`,\n transform: 'rotate(-45deg)',\n backgroundColor: red6\n },\n '&:hover': {\n borderColor: colorBorder\n }\n })\n };\n};\nconst genStatusStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorHover,\n colorWarningHover,\n colorErrorOutline,\n colorWarningOutline\n } = token;\n return {\n [`&${componentCls}-status-error`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(token, colorError, colorErrorOutline))\n },\n [`&${componentCls}-status-warning`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(token, colorWarning, colorWarningOutline))\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n controlHeightLG,\n controlHeightSM,\n controlHeight,\n controlHeightXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusXS,\n borderRadiusLG,\n fontSizeLG\n } = token;\n return {\n [`&${componentCls}-lg`]: {\n minWidth: controlHeightLG,\n minHeight: controlHeightLG,\n borderRadius: borderRadiusLG,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeight,\n height: controlHeight,\n borderRadius\n },\n [`${componentCls}-trigger-text`]: {\n fontSize: fontSizeLG\n }\n },\n [`&${componentCls}-sm`]: {\n minWidth: controlHeightSM,\n minHeight: controlHeightSM,\n borderRadius: borderRadiusSM,\n [`${componentCls}-color-block, ${componentCls}-clear`]: {\n width: controlHeightXS,\n height: controlHeightXS,\n borderRadius: borderRadiusXS\n },\n [`${componentCls}-trigger-text`]: {\n lineHeight: unit(controlHeightXS)\n }\n }\n };\n};\nconst genColorPickerStyle = token => {\n const {\n antCls,\n componentCls,\n colorPickerWidth,\n colorPrimary,\n motionDurationMid,\n colorBgElevated,\n colorTextDisabled,\n colorText,\n colorBgContainerDisabled,\n borderRadius,\n marginXS,\n marginSM,\n controlHeight,\n controlHeightSM,\n colorBgTextActive,\n colorPickerPresetColorSize,\n colorPickerPreviewSize,\n lineWidth,\n colorBorder,\n paddingXXS,\n fontSize,\n colorPrimaryHover,\n controlOutline\n } = token;\n return [{\n [componentCls]: Object.assign({\n [`${componentCls}-inner`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n '&-content': {\n display: 'flex',\n flexDirection: 'column',\n width: colorPickerWidth,\n [`& > ${antCls}-divider`]: {\n margin: `${unit(marginSM)} 0 ${unit(marginXS)}`\n }\n },\n [`${componentCls}-panel`]: Object.assign({}, genPickerStyle(token))\n }, genSliderStyle(token)), genColorBlockStyle(token, colorPickerPreviewSize)), genInputStyle(token)), genPresetsStyle(token)), genClearStyle(token, colorPickerPresetColorSize, {\n marginInlineStart: 'auto'\n })), {\n // Operation bar\n [`${componentCls}-operation`]: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: marginXS\n }\n }),\n '&-trigger': Object.assign(Object.assign(Object.assign(Object.assign({\n minWidth: controlHeight,\n minHeight: controlHeight,\n borderRadius,\n border: `${unit(lineWidth)} solid ${colorBorder}`,\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'flex-start',\n justifyContent: 'center',\n transition: `all ${motionDurationMid}`,\n background: colorBgElevated,\n padding: token.calc(paddingXXS).sub(lineWidth).equal(),\n [`${componentCls}-trigger-text`]: {\n marginInlineStart: marginXS,\n marginInlineEnd: token.calc(marginXS).sub(token.calc(paddingXXS).sub(lineWidth)).equal(),\n fontSize,\n color: colorText,\n alignSelf: 'center',\n '&-cell': {\n '&:not(:last-child):after': {\n content: '\", \"'\n },\n '&-inactive': {\n color: colorTextDisabled\n }\n }\n },\n '&:hover': {\n borderColor: colorPrimaryHover\n },\n [`&${componentCls}-trigger-active`]: Object.assign({}, genActiveStyle(token, colorPrimary, controlOutline)),\n '&-disabled': {\n color: colorTextDisabled,\n background: colorBgContainerDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n borderColor: colorBgTextActive\n },\n [`${componentCls}-trigger-text`]: {\n color: colorTextDisabled\n }\n }\n }, genClearStyle(token, controlHeightSM)), genColorBlockStyle(token, controlHeightSM)), genStatusStyle(token)), genSizeStyle(token))\n }, genRtlStyle(token))\n }, genCompactItemStyle(token, {\n focusElCls: `${componentCls}-trigger-active`\n })];\n};\nexport default genStyleHooks('ColorPicker', token => {\n const {\n colorTextQuaternary,\n marginSM\n } = token;\n const colorPickerSliderHeight = 8;\n const colorPickerToken = mergeToken(token, {\n colorPickerWidth: 234,\n colorPickerHandlerSize: 16,\n colorPickerHandlerSizeSM: 12,\n colorPickerAlphaInputWidth: 44,\n colorPickerInputNumberHandleWidth: 16,\n colorPickerPresetColorSize: 24,\n colorPickerInsetShadow: `inset 0 0 1px 0 ${colorTextQuaternary}`,\n colorPickerSliderHeight,\n colorPickerPreviewSize: token.calc(colorPickerSliderHeight).mul(2).add(marginSM).equal()\n });\n return [genColorPickerStyle(colorPickerToken)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useContext, useMemo } from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport genPurePanel from '../_util/PurePanel';\nimport { getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport Popover from '../popover';\nimport { useCompactItemContext } from '../space/Compact';\nimport { AggregationColor } from './color';\nimport ColorPickerPanel from './ColorPickerPanel';\nimport ColorTrigger from './components/ColorTrigger';\nimport useModeColor from './hooks/useModeColor';\nimport useStyle from './style';\nimport { genAlphaColor, generateColor, getColorAlpha } from './util';\nconst ColorPicker = props => {\n const {\n mode,\n value,\n defaultValue,\n format,\n defaultFormat,\n allowClear = false,\n presets,\n children,\n trigger = 'click',\n open,\n disabled,\n placement = 'bottomLeft',\n arrow = true,\n panelRender,\n showText,\n style,\n className,\n size: customizeSize,\n rootClassName,\n prefixCls: customizePrefixCls,\n styles,\n disabledAlpha = false,\n onFormatChange,\n onChange,\n onClear,\n onOpenChange,\n onChangeComplete,\n getPopupContainer,\n autoAdjustOverflow = true,\n destroyTooltipOnHide\n } = props,\n rest = __rest(props, [\"mode\", \"value\", \"defaultValue\", \"format\", \"defaultFormat\", \"allowClear\", \"presets\", \"children\", \"trigger\", \"open\", \"disabled\", \"placement\", \"arrow\", \"panelRender\", \"showText\", \"style\", \"className\", \"size\", \"rootClassName\", \"prefixCls\", \"styles\", \"disabledAlpha\", \"onFormatChange\", \"onChange\", \"onClear\", \"onOpenChange\", \"onChangeComplete\", \"getPopupContainer\", \"autoAdjustOverflow\", \"destroyTooltipOnHide\"]);\n const {\n getPrefixCls,\n direction,\n colorPicker\n } = useContext(ConfigContext);\n const contextDisabled = useContext(DisabledContext);\n const mergedDisabled = disabled !== null && disabled !== void 0 ? disabled : contextDisabled;\n const [popupOpen, setPopupOpen] = useMergedState(false, {\n value: open,\n postState: openData => !mergedDisabled && openData,\n onChange: onOpenChange\n });\n const [formatValue, setFormatValue] = useMergedState(format, {\n value: format,\n defaultValue: defaultFormat,\n onChange: onFormatChange\n });\n const prefixCls = getPrefixCls('color-picker', customizePrefixCls);\n // ================== Value & Mode =================\n const [mergedColor, setColor, modeState, setModeState, modeOptions] = useModeColor(defaultValue, value, mode);\n const isAlphaColor = useMemo(() => getColorAlpha(mergedColor) < 100, [mergedColor]);\n // ==================== Change =====================\n // To enhance user experience, we cache the gradient color when switch from gradient to single\n // If user not modify single color, we will use the cached gradient color.\n const [cachedGradientColor, setCachedGradientColor] = React.useState(null);\n const onInternalChangeComplete = color => {\n if (onChangeComplete) {\n let changeColor = generateColor(color);\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n changeColor = genAlphaColor(color);\n }\n onChangeComplete(changeColor);\n }\n };\n const onInternalChange = (data, changeFromPickerDrag) => {\n let color = generateColor(data);\n // ignore alpha color\n if (disabledAlpha && isAlphaColor) {\n color = genAlphaColor(color);\n }\n setColor(color);\n setCachedGradientColor(null);\n // Trigger change event\n if (onChange) {\n onChange(color, color.toCssString());\n }\n // Only for drag-and-drop color picking\n if (!changeFromPickerDrag) {\n onInternalChangeComplete(color);\n }\n };\n // =================== Gradient ====================\n const [activeIndex, setActiveIndex] = React.useState(0);\n const [gradientDragging, setGradientDragging] = React.useState(false);\n // Mode change should also trigger color change\n const onInternalModeChange = newMode => {\n setModeState(newMode);\n if (newMode === 'single' && mergedColor.isGradient()) {\n setActiveIndex(0);\n onInternalChange(new AggregationColor(mergedColor.getColors()[0].color));\n // Should after `onInternalChange` since it will clear the cached color\n setCachedGradientColor(mergedColor);\n } else if (newMode === 'gradient' && !mergedColor.isGradient()) {\n const baseColor = isAlphaColor ? genAlphaColor(mergedColor) : mergedColor;\n onInternalChange(new AggregationColor(cachedGradientColor || [{\n percent: 0,\n color: baseColor\n }, {\n percent: 100,\n color: baseColor\n }]));\n }\n };\n // ================== Form Status ==================\n const {\n status: contextStatus\n } = React.useContext(FormItemInputContext);\n // ==================== Compact ====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Style =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const rtlCls = {\n [`${prefixCls}-rtl`]: direction\n };\n const mergedRootCls = classNames(rootClassName, cssVarCls, rootCls, rtlCls);\n const mergedCls = classNames(getStatusClassNames(prefixCls, contextStatus), {\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, compactItemClassnames, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.className, mergedRootCls, className, hashId);\n const mergedPopupCls = classNames(prefixCls, mergedRootCls);\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('ColorPicker');\n process.env.NODE_ENV !== \"production\" ? warning(!(disabledAlpha && isAlphaColor), 'usage', '`disabledAlpha` will make the alpha to be 100% when use alpha color.') : void 0;\n }\n const popoverProps = {\n open: popupOpen,\n trigger,\n placement,\n arrow,\n rootClassName,\n getPopupContainer,\n autoAdjustOverflow,\n destroyTooltipOnHide\n };\n const mergedStyle = Object.assign(Object.assign({}, colorPicker === null || colorPicker === void 0 ? void 0 : colorPicker.style), style);\n // ============================ zIndex ============================\n return wrapCSSVar(/*#__PURE__*/React.createElement(Popover, Object.assign({\n style: styles === null || styles === void 0 ? void 0 : styles.popup,\n overlayInnerStyle: styles === null || styles === void 0 ? void 0 : styles.popupOverlayInner,\n onOpenChange: visible => {\n if (!visible || !mergedDisabled) {\n setPopupOpen(visible);\n }\n },\n content: /*#__PURE__*/React.createElement(ContextIsolator, {\n form: true\n }, /*#__PURE__*/React.createElement(ColorPickerPanel, {\n mode: modeState,\n onModeChange: onInternalModeChange,\n modeOptions: modeOptions,\n prefixCls: prefixCls,\n value: mergedColor,\n allowClear: allowClear,\n disabled: mergedDisabled,\n disabledAlpha: disabledAlpha,\n presets: presets,\n panelRender: panelRender,\n format: formatValue,\n onFormatChange: setFormatValue,\n onChange: onInternalChange,\n onChangeComplete: onInternalChangeComplete,\n onClear: onClear,\n activeIndex: activeIndex,\n onActive: setActiveIndex,\n gradientDragging: gradientDragging,\n onGradientDragging: setGradientDragging\n })),\n overlayClassName: mergedPopupCls\n }, popoverProps), children || (/*#__PURE__*/React.createElement(ColorTrigger, Object.assign({\n activeIndex: popupOpen ? activeIndex : -1,\n open: popupOpen,\n className: mergedCls,\n style: mergedStyle,\n prefixCls: prefixCls,\n disabled: mergedDisabled,\n showText: showText,\n format: formatValue\n }, rest, {\n color: mergedColor\n })))));\n};\nif (process.env.NODE_ENV !== 'production') {\n ColorPicker.displayName = 'ColorPicker';\n}\nconst PurePanel = genPurePanel(ColorPicker, 'color-picker', /* istanbul ignore next */\nprefixCls => prefixCls, props => Object.assign(Object.assign({}, props), {\n placement: 'bottom',\n autoAdjustOverflow: false\n}));\nColorPicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default ColorPicker;","import * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { useLocale } from '../../locale';\nimport { generateColor } from '../util';\n/**\n * Combine the `color` and `mode` to make sure sync of state.\n */\nexport default function useModeColor(defaultValue, value, mode) {\n const [locale] = useLocale('ColorPicker');\n // ======================== Base ========================\n // Color\n const [mergedColor, setMergedColor] = useMergedState(defaultValue, {\n value\n });\n // Mode\n const [modeState, setModeState] = React.useState('single');\n const [modeOptionList, modeSet] = React.useMemo(() => {\n const list = (Array.isArray(mode) ? mode : [mode]).filter(m => m);\n if (!list.length) {\n list.push('single');\n }\n const modes = new Set(list);\n const optionList = [];\n const pushOption = (modeType, localeTxt) => {\n if (modes.has(modeType)) {\n optionList.push({\n label: localeTxt,\n value: modeType\n });\n }\n };\n pushOption('single', locale.singleColor);\n pushOption('gradient', locale.gradientColor);\n return [optionList, modes];\n }, [mode]);\n // ======================== Post ========================\n // We need align `mode` with `color` state\n // >>>>> Color\n const [cacheColor, setCacheColor] = React.useState(null);\n const setColor = useEvent(nextColor => {\n setCacheColor(nextColor);\n setMergedColor(nextColor);\n });\n const postColor = React.useMemo(() => {\n const colorObj = generateColor(mergedColor || '');\n // Use `cacheColor` in case the color is `cleared`\n return colorObj.equals(cacheColor) ? cacheColor : colorObj;\n }, [mergedColor, cacheColor]);\n // >>>>> Mode\n const postMode = React.useMemo(() => {\n var _a;\n if (modeSet.has(modeState)) {\n return modeState;\n }\n return (_a = modeOptionList[0]) === null || _a === void 0 ? void 0 : _a.value;\n }, [modeSet, modeState, modeOptionList]);\n // ======================= Effect =======================\n // Dynamic update mode when color change\n React.useEffect(() => {\n setModeState(postColor.isGradient() ? 'gradient' : 'single');\n }, [postColor]);\n // ======================= Return =======================\n return [postColor, setColor, postMode, setModeState, modeOptionList];\n}","\"use client\";\n\nimport ColorPicker from './ColorPicker';\nexport default ColorPicker;","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ace_builds_1 = require(\"ace-builds\");\nvar PropTypes = require(\"prop-types\");\nvar React = require(\"react\");\nvar isEqual = require(\"lodash.isequal\");\nvar editorOptions_1 = require(\"./editorOptions\");\nvar ace = (0, editorOptions_1.getAceInstance)();\nvar ReactAce = /** @class */ (function (_super) {\n __extends(ReactAce, _super);\n function ReactAce(props) {\n var _this = _super.call(this, props) || this;\n editorOptions_1.editorEvents.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n _this.debounce = editorOptions_1.debounce;\n return _this;\n }\n ReactAce.prototype.isInShadow = function (node) {\n var parent = node && node.parentNode;\n while (parent) {\n if (parent.toString() === \"[object ShadowRoot]\") {\n return true;\n }\n parent = parent.parentNode;\n }\n return false;\n };\n ReactAce.prototype.componentDidMount = function () {\n var _this = this;\n var _a = this.props, className = _a.className, onBeforeLoad = _a.onBeforeLoad, onValidate = _a.onValidate, mode = _a.mode, focus = _a.focus, theme = _a.theme, fontSize = _a.fontSize, lineHeight = _a.lineHeight, value = _a.value, defaultValue = _a.defaultValue, showGutter = _a.showGutter, wrapEnabled = _a.wrapEnabled, showPrintMargin = _a.showPrintMargin, _b = _a.scrollMargin, scrollMargin = _b === void 0 ? [0, 0, 0, 0] : _b, keyboardHandler = _a.keyboardHandler, onLoad = _a.onLoad, commands = _a.commands, annotations = _a.annotations, markers = _a.markers, placeholder = _a.placeholder;\n this.editor = ace.edit(this.refEditor);\n if (onBeforeLoad) {\n onBeforeLoad(ace);\n }\n var editorProps = Object.keys(this.props.editorProps);\n for (var i = 0; i < editorProps.length; i++) {\n this.editor[editorProps[i]] = this.props.editorProps[editorProps[i]];\n }\n if (this.props.debounceChangePeriod) {\n this.onChange = this.debounce(this.onChange, this.props.debounceChangePeriod);\n }\n this.editor.renderer.setScrollMargin(scrollMargin[0], scrollMargin[1], scrollMargin[2], scrollMargin[3]);\n if (this.isInShadow(this.refEditor)) {\n this.editor.renderer.attachToShadowRoot();\n }\n this.editor\n .getSession()\n .setMode(typeof mode === \"string\" ? \"ace/mode/\".concat(mode) : mode);\n if (theme && theme !== \"\")\n this.editor.setTheme(\"ace/theme/\".concat(theme));\n this.editor.setFontSize(typeof fontSize === \"number\" ? \"\".concat(fontSize, \"px\") : fontSize);\n if (lineHeight) {\n this.editor.container.style.lineHeight =\n typeof lineHeight === \"number\" ? \"\".concat(lineHeight, \"px\") : \"\".concat(lineHeight);\n this.editor.renderer.updateFontSize();\n }\n this.editor\n .getSession()\n .setValue(!defaultValue ? value || \"\" : defaultValue);\n if (this.props.navigateToFileEnd) {\n this.editor.navigateFileEnd();\n }\n this.editor.renderer.setShowGutter(showGutter);\n this.editor.getSession().setUseWrapMode(wrapEnabled);\n this.editor.setShowPrintMargin(showPrintMargin);\n this.editor.on(\"focus\", this.onFocus);\n this.editor.on(\"blur\", this.onBlur);\n this.editor.on(\"copy\", this.onCopy);\n this.editor.on(\"paste\", this.onPaste);\n this.editor.on(\"change\", this.onChange);\n this.editor.on(\"input\", this.onInput);\n if (placeholder) {\n this.updatePlaceholder();\n }\n this.editor\n .getSession()\n .selection.on(\"changeSelection\", this.onSelectionChange);\n this.editor.getSession().selection.on(\"changeCursor\", this.onCursorChange);\n if (onValidate) {\n // @ts-ignore types don't include\n this.editor.getSession().on(\"changeAnnotation\", function () {\n // tslint:disable-next-line:no-shadowed-variable\n var annotations = _this.editor.getSession().getAnnotations();\n _this.props.onValidate(annotations);\n });\n }\n this.editor.session.on(\"changeScrollTop\", this.onScroll);\n this.editor.getSession().setAnnotations(annotations || []);\n if (markers && markers.length > 0) {\n this.handleMarkers(markers);\n }\n // get a list of possible options to avoid 'misspelled option errors'\n var availableOptions = this.editor.$options;\n editorOptions_1.editorOptions.forEach(function (option) {\n if (availableOptions.hasOwnProperty(option)) {\n // @ts-ignore\n _this.editor.setOption(option, _this.props[option]);\n }\n else if (_this.props[option]) {\n console.warn(\"ReactAce: editor option \".concat(option, \" was activated but not found. Did you need to import a related tool or did you possibly mispell the option?\"));\n }\n });\n this.handleOptions(this.props);\n if (Array.isArray(commands)) {\n commands.forEach(function (command) {\n if (typeof command.exec === \"string\") {\n _this.editor.commands.bindKey(command.bindKey, command.exec);\n }\n else {\n _this.editor.commands.addCommand(command);\n }\n });\n }\n if (keyboardHandler) {\n this.editor.setKeyboardHandler(\"ace/keyboard/\" + keyboardHandler);\n }\n if (className) {\n this.refEditor.className += \" \" + className;\n }\n if (onLoad) {\n onLoad(this.editor);\n }\n this.editor.resize();\n if (focus) {\n this.editor.focus();\n }\n };\n ReactAce.prototype.componentDidUpdate = function (prevProps) {\n var oldProps = prevProps;\n var nextProps = this.props;\n for (var i = 0; i < editorOptions_1.editorOptions.length; i++) {\n var option = editorOptions_1.editorOptions[i];\n if (nextProps[option] !== oldProps[option]) {\n // @ts-ignore\n this.editor.setOption(option, nextProps[option]);\n }\n }\n if (nextProps.className !== oldProps.className) {\n var appliedClasses = this.refEditor.className;\n var appliedClassesArray_1 = appliedClasses.trim().split(\" \");\n var oldClassesArray = oldProps.className.trim().split(\" \");\n oldClassesArray.forEach(function (oldClass) {\n var index = appliedClassesArray_1.indexOf(oldClass);\n appliedClassesArray_1.splice(index, 1);\n });\n this.refEditor.className =\n \" \" + nextProps.className + \" \" + appliedClassesArray_1.join(\" \");\n }\n // First process editor value, as it may create a new session (see issue #300)\n var valueChanged = this.editor &&\n nextProps.value != null &&\n this.editor.getValue() !== nextProps.value;\n if (valueChanged) {\n // editor.setValue is a synchronous function call, change event is emitted before setValue return.\n this.silent = true;\n var pos = this.editor.session.selection.toJSON();\n this.editor.setValue(nextProps.value, nextProps.cursorStart);\n this.editor.session.selection.fromJSON(pos);\n this.silent = false;\n }\n if (nextProps.placeholder !== oldProps.placeholder) {\n this.updatePlaceholder();\n }\n if (nextProps.mode !== oldProps.mode) {\n this.editor\n .getSession()\n .setMode(typeof nextProps.mode === \"string\"\n ? \"ace/mode/\".concat(nextProps.mode)\n : nextProps.mode);\n }\n if (nextProps.theme !== oldProps.theme) {\n this.editor.setTheme(\"ace/theme/\" + nextProps.theme);\n }\n if (nextProps.keyboardHandler !== oldProps.keyboardHandler) {\n if (nextProps.keyboardHandler) {\n this.editor.setKeyboardHandler(\"ace/keyboard/\" + nextProps.keyboardHandler);\n }\n else {\n this.editor.setKeyboardHandler(null);\n }\n }\n if (nextProps.fontSize !== oldProps.fontSize) {\n this.editor.setFontSize(typeof nextProps.fontSize === \"number\"\n ? \"\".concat(nextProps.fontSize, \"px\")\n : nextProps.fontSize);\n }\n if (nextProps.lineHeight !== oldProps.lineHeight) {\n this.editor.container.style.lineHeight =\n typeof nextProps.lineHeight === \"number\"\n ? \"\".concat(nextProps.lineHeight, \"px\")\n : nextProps.lineHeight;\n this.editor.renderer.updateFontSize();\n }\n if (nextProps.wrapEnabled !== oldProps.wrapEnabled) {\n this.editor.getSession().setUseWrapMode(nextProps.wrapEnabled);\n }\n if (nextProps.showPrintMargin !== oldProps.showPrintMargin) {\n this.editor.setShowPrintMargin(nextProps.showPrintMargin);\n }\n if (nextProps.showGutter !== oldProps.showGutter) {\n this.editor.renderer.setShowGutter(nextProps.showGutter);\n }\n if (!isEqual(nextProps.setOptions, oldProps.setOptions)) {\n this.handleOptions(nextProps);\n }\n // if the value or annotations changed, set the annotations\n // changing the value may create create a new session which will require annotations to be re-set\n if (valueChanged || !isEqual(nextProps.annotations, oldProps.annotations)) {\n this.editor.getSession().setAnnotations(nextProps.annotations || []);\n }\n if (!isEqual(nextProps.markers, oldProps.markers) &&\n Array.isArray(nextProps.markers)) {\n this.handleMarkers(nextProps.markers);\n }\n // this doesn't look like it works at all....\n if (!isEqual(nextProps.scrollMargin, oldProps.scrollMargin)) {\n this.handleScrollMargins(nextProps.scrollMargin);\n }\n if (prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width) {\n this.editor.resize();\n }\n if (this.props.focus && !prevProps.focus) {\n this.editor.focus();\n }\n };\n ReactAce.prototype.handleScrollMargins = function (margins) {\n if (margins === void 0) { margins = [0, 0, 0, 0]; }\n this.editor.renderer.setScrollMargin(margins[0], margins[1], margins[2], margins[3]);\n };\n ReactAce.prototype.componentWillUnmount = function () {\n if (this.editor) {\n this.editor.destroy();\n this.editor = null;\n }\n };\n ReactAce.prototype.onChange = function (event) {\n if (this.editor && this.props.onChange && !this.silent) {\n var value = this.editor.getValue();\n this.props.onChange(value, event);\n }\n };\n ReactAce.prototype.onSelectionChange = function (event) {\n if (this.props.onSelectionChange) {\n var value = this.editor.getSelection();\n this.props.onSelectionChange(value, event);\n }\n };\n ReactAce.prototype.onCursorChange = function (event) {\n if (this.props.onCursorChange) {\n var value = this.editor.getSelection();\n this.props.onCursorChange(value, event);\n }\n };\n ReactAce.prototype.onInput = function (event) {\n if (this.props.onInput) {\n this.props.onInput(event);\n }\n if (this.props.placeholder) {\n this.updatePlaceholder();\n }\n };\n ReactAce.prototype.onFocus = function (event) {\n if (this.props.onFocus) {\n this.props.onFocus(event, this.editor);\n }\n };\n ReactAce.prototype.onBlur = function (event) {\n if (this.props.onBlur) {\n this.props.onBlur(event, this.editor);\n }\n };\n ReactAce.prototype.onCopy = function (_a) {\n var text = _a.text;\n if (this.props.onCopy) {\n this.props.onCopy(text);\n }\n };\n ReactAce.prototype.onPaste = function (_a) {\n var text = _a.text;\n if (this.props.onPaste) {\n this.props.onPaste(text);\n }\n };\n ReactAce.prototype.onScroll = function () {\n if (this.props.onScroll) {\n this.props.onScroll(this.editor);\n }\n };\n ReactAce.prototype.handleOptions = function (props) {\n var setOptions = Object.keys(props.setOptions);\n for (var y = 0; y < setOptions.length; y++) {\n // @ts-ignore\n this.editor.setOption(setOptions[y], props.setOptions[setOptions[y]]);\n }\n };\n ReactAce.prototype.handleMarkers = function (markers) {\n var _this = this;\n // remove foreground markers\n var currentMarkers = this.editor.getSession().getMarkers(true);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i)) {\n this.editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // remove background markers except active line marker and selected word marker\n currentMarkers = this.editor.getSession().getMarkers(false);\n for (var i in currentMarkers) {\n if (currentMarkers.hasOwnProperty(i) &&\n currentMarkers[i].clazz !== \"ace_active-line\" &&\n currentMarkers[i].clazz !== \"ace_selected-word\") {\n this.editor.getSession().removeMarker(currentMarkers[i].id);\n }\n }\n // add new markers\n markers.forEach(function (_a) {\n var startRow = _a.startRow, startCol = _a.startCol, endRow = _a.endRow, endCol = _a.endCol, className = _a.className, type = _a.type, _b = _a.inFront, inFront = _b === void 0 ? false : _b;\n var range = new ace_builds_1.Range(startRow, startCol, endRow, endCol);\n _this.editor.getSession().addMarker(range, className, type, inFront);\n });\n };\n ReactAce.prototype.updatePlaceholder = function () {\n // Adapted from https://stackoverflow.com/questions/26695708/how-can-i-add-placeholder-text-when-the-editor-is-empty\n var editor = this.editor;\n var placeholder = this.props.placeholder;\n var showPlaceholder = !editor.session.getValue().length;\n var node = editor.renderer.placeholderNode;\n if (!showPlaceholder && node) {\n editor.renderer.scroller.removeChild(editor.renderer.placeholderNode);\n editor.renderer.placeholderNode = null;\n }\n else if (showPlaceholder && !node) {\n node = editor.renderer.placeholderNode = document.createElement(\"div\");\n node.textContent = placeholder || \"\";\n node.className = \"ace_comment ace_placeholder\";\n node.style.padding = \"0 9px\";\n node.style.position = \"absolute\";\n node.style.zIndex = \"3\";\n editor.renderer.scroller.appendChild(node);\n }\n else if (showPlaceholder && node) {\n node.textContent = placeholder;\n }\n };\n ReactAce.prototype.updateRef = function (item) {\n this.refEditor = item;\n };\n ReactAce.prototype.render = function () {\n var _a = this.props, name = _a.name, width = _a.width, height = _a.height, style = _a.style;\n var divStyle = __assign({ width: width, height: height }, style);\n return React.createElement(\"div\", { ref: this.updateRef, id: name, style: divStyle });\n };\n ReactAce.propTypes = {\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n focus: PropTypes.bool,\n theme: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n height: PropTypes.string,\n width: PropTypes.string,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n showGutter: PropTypes.bool,\n onChange: PropTypes.func,\n onCopy: PropTypes.func,\n onPaste: PropTypes.func,\n onFocus: PropTypes.func,\n onInput: PropTypes.func,\n onBlur: PropTypes.func,\n onScroll: PropTypes.func,\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onLoad: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onCursorChange: PropTypes.func,\n onBeforeLoad: PropTypes.func,\n onValidate: PropTypes.func,\n minLines: PropTypes.number,\n maxLines: PropTypes.number,\n readOnly: PropTypes.bool,\n highlightActiveLine: PropTypes.bool,\n tabSize: PropTypes.number,\n showPrintMargin: PropTypes.bool,\n cursorStart: PropTypes.number,\n debounceChangePeriod: PropTypes.number,\n editorProps: PropTypes.object,\n setOptions: PropTypes.object,\n style: PropTypes.object,\n scrollMargin: PropTypes.array,\n annotations: PropTypes.array,\n markers: PropTypes.array,\n keyboardHandler: PropTypes.string,\n wrapEnabled: PropTypes.bool,\n enableSnippets: PropTypes.bool,\n enableBasicAutocompletion: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n enableLiveAutocompletion: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.array\n ]),\n navigateToFileEnd: PropTypes.bool,\n commands: PropTypes.array,\n placeholder: PropTypes.string\n };\n ReactAce.defaultProps = {\n name: \"ace-editor\",\n focus: false,\n mode: \"\",\n theme: \"\",\n height: \"500px\",\n width: \"500px\",\n fontSize: 12,\n enableSnippets: false,\n showGutter: true,\n onChange: null,\n onPaste: null,\n onLoad: null,\n onScroll: null,\n minLines: null,\n maxLines: null,\n readOnly: false,\n highlightActiveLine: true,\n showPrintMargin: true,\n tabSize: 4,\n cursorStart: 1,\n editorProps: {},\n style: {},\n scrollMargin: [0, 0, 0, 0],\n setOptions: {},\n wrapEnabled: false,\n enableBasicAutocompletion: false,\n enableLiveAutocompletion: false,\n placeholder: null,\n navigateToFileEnd: true\n };\n return ReactAce;\n}(React.Component));\nexports.default = ReactAce;\n//# sourceMappingURL=ace.js.map","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addXhrInstrumentationHandler(handler) {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nfunction instrumentXHR() {\n if (!(WINDOW ).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.open = new Proxy(xhrproto.open, {\n apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n const startTimestamp = timestampInSeconds() * 1000;\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n const url = parseUrl(xhrOpenArgArray[1]);\n\n if (!method || !url) {\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n }\n\n xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n xhrOpenThisArg.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (xhrOpenThisArg.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhrOpenThisArg.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData = {\n endTimestamp: timestampInSeconds() * 1000,\n startTimestamp,\n xhr: xhrOpenThisArg,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n onreadystatechangeHandler();\n return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n },\n });\n } else {\n xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n apply(\n originalSetRequestHeader,\n setRequestHeaderThisArg,\n setRequestHeaderArgArray,\n ) {\n const [header, value] = setRequestHeaderArgArray;\n\n const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n },\n });\n\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.send = new Proxy(xhrproto.send, {\n apply(originalSend, sendThisArg, sendArgArray) {\n const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(sendThisArg, sendArgArray);\n }\n\n if (sendArgArray[0] !== undefined) {\n sentryXhrData.body = sendArgArray[0];\n }\n\n const handlerData = {\n startTimestamp: timestampInSeconds() * 1000,\n xhr: sendThisArg,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(sendThisArg, sendArgArray);\n },\n });\n}\n\nfunction parseUrl(url) {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url ).toString();\n } catch (e2) {} // eslint-disable-line no-empty\n\n return undefined;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","module.exports = __webpack_public_path__ + \"e2fe8f0d4fd950b20b30fabaea96b3f8.js\";","module.exports = __webpack_public_path__ + \"d85853bab3b213652aee023adecfb690.js\";","module.exports = __webpack_public_path__ + \"20545e6680e996248f667158904a6a9b.js\";","function abort (message) {\n var text = 'Parsing error'\n if (message) text += ': ' + message\n throw new Error(text)\n}\n\nvar unescapes = {\n '\\\\': '\\\\',\n '\"': '\"',\n '/': '/',\n 'b': '\\b',\n 't': '\\t',\n 'n': '\\n',\n 'f': '\\f',\n 'r': '\\r'\n}\n\nfunction lex (source) {\n var result = []\n var index = 0\n var token = lexStep()\n while (token) {\n result.push(token)\n token = lexStep()\n }\n return result\n\n function lexStep () {\n var length = source.length\n var value\n var begin\n var position\n var isSigned\n var charCode\n var character\n while (index < length) {\n character = source[index]\n switch (character) {\n case '\\t':\n case '\\n':\n case '\\r':\n case ' ':\n // returns white spaces characters\n value = source[index]\n while ('\\t\\n\\r '.indexOf(source[++index]) !== -1) {\n value += source[index]\n }\n return {type: 'whitespace', value: value, raw: value}\n case '{':\n case '}':\n case '[':\n case ']':\n case ':':\n case ',':\n // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at\n // the current position.\n var punctuator = source[index++]\n return {type: 'punctuator', value: punctuator, raw: punctuator}\n case '\"':\n // `\"` delimits a JSON string; advance to the next character and\n // begin parsing the string. String tokens are prefixed with the\n // sentinel `@` character to distinguish them from punctuators and\n // end-of-string tokens.\n var stringStartIndex = index\n for (value = '', index++; index < length;) {\n character = source[index]\n if (source.charCodeAt(index) < 32) {\n return abort('Unescaped ASCII control characters are not permitted.')\n } else if (character === '\\\\') {\n // A reverse solidus (`\\`) marks the beginning of an escaped\n // control character (including `\"`, `\\`, and `/`) or Unicode\n // escape sequence.\n character = source[++index]\n switch (character) {\n case '\\\\':\n case '\"':\n case '/':\n case 'b':\n case 't':\n case 'n':\n case 'f':\n case 'r':\n // Revive escaped control characters.\n value += unescapes[character]\n index++\n break\n case 'u':\n // `\\u` marks the beginning of a Unicode escape sequence.\n // Advance to the first character and validate the\n // four-digit code point.\n begin = ++index\n for (position = index + 4; index < position; index++) {\n charCode = source.charCodeAt(index)\n // A valid sequence comprises four hexdigits (case-\n // insensitive) that form a single hexadecimal value.\n if (!((charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 102) || (charCode >= 65 && charCode <= 70))) {\n return abort('Invalid Unicode escape sequence.')\n }\n }\n // Revive the escaped character.\n value += String.fromCharCode('0x' + source.slice(begin, index))\n break\n default:\n return abort('Invalid escape sequence.')\n }\n } else {\n if (character === '\"') {\n // An unescaped double-quote character marks the end of the\n // string.\n break\n }\n character = source[index]\n begin = index\n // Optimize for the common case where a string is valid.\n charCode = source.charCodeAt(index)\n while (charCode >= 32 && charCode !== 92 && charCode !== 34) {\n charCode = source.charCodeAt(++index)\n }\n // Append the string as-is.\n value += source.slice(begin, index)\n }\n }\n if (source[index] === '\"') {\n // Advance to the next character and return the revived string.\n index++\n var rawString = source.slice(stringStartIndex, index)\n return { type: 'string', value: value, raw: rawString }\n }\n return abort('Unterminated string.')\n default:\n // Parse numbers and literals.\n begin = index\n // Advance past the negative sign, if one is specified.\n if (character === '-') {\n isSigned = true\n charCode = source.charCodeAt(++index)\n character = source[index]\n }\n // Parse an integer or floating-point value.\n charCode = source.charCodeAt(index)\n if (charCode >= 48 && charCode <= 57) {\n // Leading zeroes are interpreted as octal literals.\n if (charCode === 48 && ((charCode = source.charCodeAt(index + 1)), charCode >= 48 && charCode <= 57)) {\n return abort('Illegal octal literal.')\n }\n isSigned = false\n // Parse the integer component.\n for (; index < length && ((charCode = source.charCodeAt(index)), charCode >= 48 && charCode <= 57); index++);\n // Floats cannot contain a leading decimal point; however, this\n // case is already accounted for by the parser.\n if (source.charCodeAt(index) === 46) {\n position = ++index\n // Parse the decimal component.\n for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);\n if (position === index) {\n return abort('Illegal trailing decimal.')\n }\n index = position\n }\n // Parse exponents. The `e` denoting the exponent is\n // case-insensitive.\n charCode = source.charCodeAt(index)\n if (charCode === 101 || charCode === 69) {\n charCode = source.charCodeAt(++index)\n // Skip past the sign following the exponent, if one is\n // specified.\n if (charCode === 43 || charCode === 45) {\n index++\n }\n // Parse the exponential component.\n for (position = index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++) ;\n if (position === index) {\n return abort('Illegal empty exponent.')\n }\n index = position\n }\n // Coerce the parsed value to a JavaScript number.\n var numberString = source.slice(begin, index)\n return {type: 'number', value: +numberString, raw: numberString}\n }\n if (isSigned) {\n return abort('A negative sign may only precede numbers.')\n }\n // `true`, `false`, and `null` literals.\n var temp = source.slice(index, index + 4)\n if (temp === 'true') {\n index += 4\n return {type: 'literal', value: true, raw: 'true'}\n } else if (temp === 'fals' && source[index + 4] === 'e') {\n index += 5\n return {type: 'literal', value: false, raw: 'false'}\n } else if (temp === 'null') {\n index += 4\n return {type: 'literal', value: null, raw: 'null'}\n }\n return abort('Unrecognized token.')\n }\n }\n return false\n }\n}\n\nmodule.exports = lex\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 to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_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 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 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('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 ? array.length : 0;\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 * 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 Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\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 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 *\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 ? values.length : 0;\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 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 * 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 `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 `_.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 {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\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, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, 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) || isHostObject(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[objectToString.call(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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_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 & UNORDERED_COMPARE_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 (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_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 |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, 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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(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, customizer, bitmask, 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 * 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 * 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 * 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 * 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 * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, customizer) : !!result;\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 // 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 * 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\nmodule.exports = isEqualWith;\n","module.exports = __webpack_public_path__ + \"9b5a6ec07bb0a2daade10189696fc399.js\";","import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Returns true if we are in the browser.\n */\nfunction isBrowser() {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer() {\n return (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (GLOBAL_OBJ ).process !== undefined && ((GLOBAL_OBJ ).process ).type === 'renderer'\n );\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from '@rc-component/async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\\\?\\$\\{\\w+\\}/g, function (str) {\n if (str.startsWith('\\\\')) {\n return str.slice(1);\n }\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const PencilSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 12 12\" {...svgProps}>\n <path d=\"M8.44108 2.26575L3.52108 7.18575C3.13908 7.56775 2.84708 8.04075 2.67608 8.55375L2.29008 9.70975L3.44608 9.32375C3.95908 9.15275 4.43208 8.86075 4.81408 8.47875L9.73408 3.55875C10.0891 3.20375 10.0891 2.62575 9.73408 2.27075C9.55408 2.09075 9.31708 1.99975 9.08308 1.99975C8.85008 1.99975 8.61808 2.08875 8.44108 2.26575ZM1.14608 10.8538C1.01308 10.7198 0.966079 10.5208 1.02508 10.3418L1.72708 8.23675C1.94608 7.57775 2.32208 6.97075 2.81408 6.47875L7.73408 1.55875C8.47908 0.81375 9.69108 0.81375 10.4361 1.55875C11.1871 2.30975 11.1871 3.52075 10.4411 4.26575L5.52108 9.18575C5.02908 9.67775 4.42208 10.0537 3.76308 10.2727L1.65808 10.9747C1.60608 10.9907 1.55308 10.9998 1.50008 10.9998C1.36908 10.9998 1.24208 10.9488 1.14608 10.8538Z\" />\n </SvgWrapper>\n);\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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.login-sso-email-form{width:100%}.login-sso-email-form__continue-button{margin-bottom:0;margin-top:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/LoginSSOAltaIdForm/LoginSSOAltaIdForm.scss\"],\"names\":[],\"mappings\":\"AAEA,sBACE,UAAA,CAEA,uCACE,eAAA,CACA,0BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.login-sso-email-form {\\n width: 100%;\\n\\n &__continue-button {\\n margin-bottom: 0;\\n margin-top: common.toRem(16);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexports.default = SearchOutlined;\n","module.exports = __webpack_public_path__ + \"8b8336037f074d9dcbd20eab535b803f.js\";","function useProdHMR() {\n return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n // Use `globalThis` first, and `window` for older browsers\n // const win = globalThis as any;\n var win = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : null;\n if (win && typeof win.webpackHotUpdate === 'function') {\n var originWebpackHotUpdate = win.webpackHotUpdate;\n win.webpackHotUpdate = function () {\n webpackHMR = true;\n setTimeout(function () {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate.apply(void 0, arguments);\n };\n }\n}","module.exports = __webpack_public_path__ + \"38105097fc2497d628f398be7db5f6e8.js\";","import root from './_root.js';\nimport stubFalse from './stubFalse.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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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\nexport default isBuffer;\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\nexport default stubFalse;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _actions = require(\"./actions\");\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Adds query to location.\n * Utilises the search prop of location to construct query.\n */\nvar injectQuery = function injectQuery(location) {\n if (location && location.query) {\n // Don't inject query if it already exists in history\n return location;\n }\n\n var searchQuery = location && location.search;\n\n if (typeof searchQuery !== 'string' || searchQuery.length === 0) {\n return _objectSpread({}, location, {\n query: {}\n });\n } // Ignore the `?` part of the search string e.g. ?username=codejockie\n\n\n var search = searchQuery.substring(1); // Split the query string on `&` e.g. ?username=codejockie&name=Kennedy\n\n var queries = search.split('&'); // Contruct query\n\n var query = queries.reduce(function (acc, currentQuery) {\n // Split on `=`, to get key and value\n var _currentQuery$split = currentQuery.split('='),\n _currentQuery$split2 = _slicedToArray(_currentQuery$split, 2),\n queryKey = _currentQuery$split2[0],\n queryValue = _currentQuery$split2[1];\n\n return _objectSpread({}, acc, _defineProperty({}, queryKey, queryValue));\n }, {});\n return _objectSpread({}, location, {\n query: query\n });\n};\n\nvar createConnectRouter = function createConnectRouter(structure) {\n var fromJS = structure.fromJS,\n merge = structure.merge;\n\n var createRouterReducer = function createRouterReducer(history) {\n var initialRouterState = fromJS({\n location: injectQuery(history.location),\n action: history.action\n });\n /*\n * This reducer will update the state with the most recent location history\n * has transitioned to.\n */\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialRouterState;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n type = _ref.type,\n payload = _ref.payload;\n\n if (type === _actions.LOCATION_CHANGE) {\n var location = payload.location,\n action = payload.action,\n isFirstRendering = payload.isFirstRendering; // Don't update the state ref for the first rendering\n // to prevent the double-rendering issue on initilization\n\n return isFirstRendering ? state : merge(state, {\n location: fromJS(injectQuery(location)),\n action: action\n });\n }\n\n return state;\n };\n };\n\n return createRouterReducer;\n};\n\nvar _default = createConnectRouter;\nexports[\"default\"] = _default;","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","module.exports = __webpack_public_path__ + \"b3f1431b9e6d9e6632a93c2cd89f945b.js\";","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _reactRouter = require(\"react-router\");\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\nvar createSelectors = function createSelectors(structure) {\n var getIn = structure.getIn,\n toJS = structure.toJS;\n\n var isRouter = function isRouter(value) {\n return value != null && _typeof(value) === 'object' && getIn(value, ['location']) && getIn(value, ['action']);\n };\n\n var getRouter = function getRouter(state) {\n var router = toJS(getIn(state, ['router']));\n\n if (!isRouter(router)) {\n throw 'Could not find router reducer in state tree, it must be mounted under \"router\"';\n }\n\n return router;\n };\n\n var getLocation = function getLocation(state) {\n return toJS(getIn(getRouter(state), ['location']));\n };\n\n var getAction = function getAction(state) {\n return toJS(getIn(getRouter(state), ['action']));\n };\n\n var getSearch = function getSearch(state) {\n return toJS(getIn(getRouter(state), ['location', 'search']));\n };\n\n var getHash = function getHash(state) {\n return toJS(getIn(getRouter(state), ['location', 'hash']));\n }; // It only makes sense to recalculate the `matchPath` whenever the pathname\n // of the location changes. That's why `createMatchSelector` memoizes\n // the latest result based on the location's pathname.\n\n\n var createMatchSelector = function createMatchSelector(path) {\n var lastPathname = null;\n var lastMatch = null;\n return function (state) {\n var _ref = getLocation(state) || {},\n pathname = _ref.pathname;\n\n if (pathname === lastPathname) {\n return lastMatch;\n }\n\n lastPathname = pathname;\n var match = (0, _reactRouter.matchPath)(pathname, path);\n\n if (!match || !lastMatch || match.url !== lastMatch.url // When URL matched for nested routes, URL is the same but isExact is not.\n || match.isExact !== lastMatch.isExact) {\n lastMatch = match;\n }\n\n return lastMatch;\n };\n };\n\n return {\n getLocation: getLocation,\n getAction: getAction,\n getRouter: getRouter,\n getSearch: getSearch,\n getHash: getHash,\n createMatchSelector: createMatchSelector\n };\n};\n\nvar _default = createSelectors;\nexports[\"default\"] = _default;","import { mergeToken } from '../../theme/internal';\nexport function initInputToken(token) {\n return mergeToken(token, {\n inputAffixPadding: token.paddingXXS\n });\n}\nexport const initComponentToken = token => {\n const {\n controlHeight,\n fontSize,\n lineHeight,\n lineWidth,\n controlHeightSM,\n controlHeightLG,\n fontSizeLG,\n lineHeightLG,\n paddingSM,\n controlPaddingHorizontalSM,\n controlPaddingHorizontal,\n colorFillAlter,\n colorPrimaryHover,\n colorPrimary,\n controlOutlineWidth,\n controlOutline,\n colorErrorOutline,\n colorWarningOutline,\n colorBgContainer\n } = token;\n return {\n paddingBlock: Math.max(Math.round((controlHeight - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n paddingBlockSM: Math.max(Math.round((controlHeightSM - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n paddingBlockLG: Math.ceil((controlHeightLG - fontSizeLG * lineHeightLG) / 2 * 10) / 10 - lineWidth,\n paddingInline: paddingSM - lineWidth,\n paddingInlineSM: controlPaddingHorizontalSM - lineWidth,\n paddingInlineLG: controlPaddingHorizontal - lineWidth,\n addonBg: colorFillAlter,\n activeBorderColor: colorPrimary,\n hoverBorderColor: colorPrimaryHover,\n activeShadow: `0 0 0 ${controlOutlineWidth}px ${controlOutline}`,\n errorActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorErrorOutline}`,\n warningActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorWarningOutline}`,\n hoverBg: colorBgContainer,\n activeBg: colorBgContainer,\n inputFontSize: fontSize,\n inputFontSizeLG: fontSizeLG,\n inputFontSizeSM: fontSize\n };\n};","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n \"undefined is not an object (evaluating 'a.L')\", // Random error that happens but not actionable or noticeable to end-users.\n 'can\\'t redefine non-configurable property \"solana\"', // Probably a browser extension or custom browser (Brave) throwing this error\n \"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\", // Error thrown by GTM, seemingly not affecting end-users\n \"Can't find variable: _AutofillCallbackHandler\", // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n];\n\n/** Options for the InboundFilters integration */\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) ;\n\nconst inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n if (event.type) {\n // event is not an error\n return false;\n }\n\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception || !event.exception.values || event.exception.values.length === 0) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { inboundFiltersIntegration };\n//# sourceMappingURL=inboundfilters.js.map\n","module.exports = __webpack_public_path__ + \"64d6924350bd7706850cdc0dcc76ccf6.js\";","\"use client\";\n\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _callSuper from \"@babel/runtime/helpers/esm/callSuper\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport * as React from 'react';\nimport Alert from './Alert';\nlet ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n function ErrorBoundary() {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n _this = _callSuper(this, ErrorBoundary, arguments);\n _this.state = {\n error: undefined,\n info: {\n componentStack: ''\n }\n };\n return _this;\n }\n _inherits(ErrorBoundary, _React$Component);\n return _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(error, info) {\n this.setState({\n error,\n info\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n const {\n message,\n description,\n id,\n children\n } = this.props;\n const {\n error,\n info\n } = this.state;\n const componentStack = (info === null || info === void 0 ? void 0 : info.componentStack) || null;\n const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;\n const errorDescription = typeof description === 'undefined' ? componentStack : description;\n if (error) {\n return /*#__PURE__*/React.createElement(Alert, {\n id: id,\n type: \"error\",\n message: errorMessage,\n description: /*#__PURE__*/React.createElement(\"pre\", {\n style: {\n fontSize: '0.9em',\n overflowX: 'auto'\n }\n }, errorDescription)\n });\n }\n return children;\n }\n }]);\n}(React.Component);\nexport default ErrorBoundary;","import { useLocation, useNavigate } from 'react-router-dom-v5-compat';\n\n// Note: this does not check against permissions when adding params\n// If we ever have a scoped param route we'll need to ensure we check scope somewhere\nexport const useAddQueryParams = () => {\n const location = useLocation();\n const navigate = useNavigate();\n const addQueryParams = (params: Record<string, string>) => {\n const queryParams = new URLSearchParams(location.search);\n Object.entries(params).forEach(([key, value]) => {\n queryParams.set(key, value);\n });\n navigate({ search: queryParams.toString() });\n };\n\n return addQueryParams;\n};\n","module.exports = __webpack_public_path__ + \"2cfc7330425be8d26b1ca0fa500c90b7.js\";","\"use client\";\n\nimport * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","module.exports = __webpack_public_path__ + \"fd5bc50b18c9f46380cbe5ec1ac2127b.js\";","import { GLOBAL_OBJ } from '../worldwide.js';\n\n// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW ).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { supportsHistory };\n//# sourceMappingURL=supportsHistory.js.map\n","import createHTMLMediaHook from './factory/createHTMLMediaHook';\nvar useVideo = createHTMLMediaHook('video');\nexport default useVideo;\n","module.exports = __webpack_public_path__ + \"5ce650c06c385f9d15621e54c60457c0.js\";","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./BigPlayButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./BigPlayButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { memo } from 'react';\nimport PauseOutlined from '@ant-design/icons/PauseOutlined';\nimport CaretRightOutlined from '@ant-design/icons/CaretRightOutlined';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport clsx from 'clsx';\n\nimport './BigPlayButton.scss';\n\nconst BigPlayButton = memo(({ isPaused }: { isPaused: boolean }) => {\n return (\n <div className=\"big-play-button\">\n <OpButton\n className={clsx('big-play-button__pause-button', {\n 'big-play-button__pause-button--deactivated': !isPaused,\n 'big-play-button__pause-button--activated': isPaused,\n })}\n icon={<PauseOutlined />}\n shape=\"circle\"\n />\n <OpButton\n className={clsx('big-play-button__play-button', {\n 'big-play-button__play-button--activated': !isPaused,\n 'big-play-button__play-button--deactivated': isPaused,\n })}\n icon={<CaretRightOutlined />}\n shape=\"circle\"\n />\n </div>\n );\n});\n\nexport default BigPlayButton;\n","import React, { memo, useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { opMoment } from 'utils/dates';\nimport { DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT } from 'constants/Dates';\n\nconst CurrentTime = memo(\n ({\n timezone = opMoment.tz.guess(),\n format = DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT,\n }) => {\n const [currentTime, setCurrentTime] = useState(\n opMoment().tz(timezone).format(format),\n );\n const interval = useRef();\n\n useEffect(() => {\n interval.current = setInterval(() => {\n setCurrentTime(opMoment().tz(timezone).format(format));\n }, 1000);\n\n return () => {\n clearInterval(interval.current);\n interval.current = null;\n };\n }, [timezone, format]);\n\n return <span>{currentTime}</span>;\n },\n);\n\nCurrentTime.propTypes = {\n timezone: PropTypes.string,\n format: PropTypes.string,\n};\n\nCurrentTime.displayName = 'CurrentTime';\n\nexport default CurrentTime;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst FullscreenButton = memo(\n ({ handleFullscreenToggleClick, isNotFullscreen }) => (\n <Clickable\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handleFullscreenToggleClick}\n >\n <Icon\n size=\"large\"\n style={{ height: 'auto' }}\n fitted\n inverted\n name={isNotFullscreen ? 'expand' : 'compress'}\n />\n </Clickable>\n ),\n);\n\nFullscreenButton.displayName = 'FullscreenButton';\n\nFullscreenButton.propTypes = {\n handleFullscreenToggleClick: PropTypes.func.isRequired,\n isNotFullscreen: PropTypes.bool.isRequired,\n};\n\nexport default FullscreenButton;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport {\n humanReadableState,\n useVideoState,\n} from '@msi-alta/opvideo-state-machine';\nimport { useFeatureFlag } from 'utils/customHooks/useFeatureFlag';\nimport { getOpParams } from 'utils/getOpParams';\n\nconst styles = {\n liveText: {\n textShadow: '0px 0px 1px #000000',\n },\n};\n\nconst LiveButton = memo(({ duration, currentTime }) => {\n const { orgId } = getOpParams();\n const { value: isVideoStateMachineEnabled } = useFeatureFlag(\n 'IS_VIDEO_STATE_MACHINE_ENABLED',\n orgId,\n );\n\n const { videoState } = useVideoState() ?? {};\n const { value: currentVideoState } = videoState ?? {};\n\n const isDurationInfiniteOrLessThanTwo =\n duration === Number.POSITIVE_INFINITY || duration - currentTime < 2;\n\n return (\n <div className=\"live-button\">\n <Icon\n className=\"live-button-icon\"\n size=\"tiny\"\n color={isDurationInfiniteOrLessThanTwo ? 'red' : 'grey'}\n name=\"circle\"\n />\n <div style={styles.liveText}>\n {isVideoStateMachineEnabled\n ? humanReadableState(currentVideoState)\n : 'Live'}\n </div>\n </div>\n );\n});\n\nLiveButton.displayName = 'LiveButton';\n\nLiveButton.propTypes = {\n currentTime: PropTypes.number.isRequired,\n duration: PropTypes.number.isRequired,\n};\n\nexport default LiveButton;\n","// Microphone changes for LiveKit replacement\nimport React, { useCallback, useState, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { Popup } from 'components/Popup';\nimport { useTranslation } from 'react-i18next';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst styles = {\n wrapper: { paddingTop: 9 },\n icon: { height: 'auto' },\n};\n\nconst MicrophoneToggleButton = memo(({ toggleHandler, initState }) => {\n const { t } = useTranslation();\n const [isMicOn, setIsMicOn] = useState(initState);\n\n const handleButtonClick = useCallback(() => {\n toggleHandler(!isMicOn);\n setIsMicOn(!isMicOn);\n }, [toggleHandler, isMicOn]);\n\n return (\n <Popup\n trigger={\n <Clickable\n style={styles.wrapper}\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handleButtonClick}\n tabIndex={0}\n role=\"button\"\n data-testid=\"muteButton\"\n >\n <Icon\n size=\"large\"\n style={styles.icon}\n fitted\n inverted\n name={isMicOn ? 'microphone' : 'microphone slash'}\n data-testid={isMicOn ? 'mic-on-icon' : 'mic-off-icon'}\n />\n </Clickable>\n }\n content={isMicOn ? t(`Mute mic`) : t(`Unmute mic`)}\n position=\"bottom center\"\n />\n );\n});\n\nMicrophoneToggleButton.displayName = 'MicrophoneToggleButton';\n\nMicrophoneToggleButton.propTypes = {\n initState: PropTypes.bool.isRequired,\n};\n\nexport default MicrophoneToggleButton;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst PlayButton = memo(({ handlePlayToggleClick, iconName }) => (\n <Clickable\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handlePlayToggleClick}\n role=\"button\"\n tabIndex={0}\n >\n <Icon\n fitted\n inverted\n name={iconName}\n className=\"op-height-auto\"\n size=\"large\"\n />\n </Clickable>\n));\n\nPlayButton.displayName = 'PlayButton';\n\nPlayButton.propTypes = {\n handlePlayToggleClick: PropTypes.func.isRequired,\n iconName: PropTypes.string.isRequired,\n};\n\nexport default PlayButton;\n","import { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { opMoment } from 'utils/dates';\nimport { DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT } from 'constants/Dates';\n\nconst RelativeTime = memo(\n ({\n millisecondsSinceEpoch,\n timezone,\n format = DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT,\n }) =>\n millisecondsSinceEpoch && timezone\n ? opMoment\n .unix(millisecondsSinceEpoch / 1000)\n .tz(timezone)\n .format(format)\n : null,\n);\n\nRelativeTime.propTypes = {\n millisecondsSinceEpoch: PropTypes.number.isRequired,\n timezone: PropTypes.string,\n format: PropTypes.string,\n};\n\nRelativeTime.displayName = 'RelativeTime';\n\nexport default RelativeTime;\n","import React, { memo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { formatSecondsToClock } from 'utils/dates';\nimport { useHoverDirty, useMouseHovered } from 'react-use';\nimport { OpSlider } from 'new-components/DLS/OpSlider/OpSlider';\n\nconst SeekBar = memo(({ currentTime, duration, handleSeek }) => {\n const sliderContainerRef = useRef(null);\n const { elX, elW } = useMouseHovered(sliderContainerRef, {\n bound: true,\n whenHovered: true,\n });\n const isHovering = useHoverDirty(sliderContainerRef);\n\n const hoverTimeStyles = {\n position: 'absolute',\n left: elX - 10,\n color: 'var(--colorWhite)',\n bottom: 20,\n pointerEvents: 'none',\n };\n\n const handleStyle = {\n display: isHovering ? 'block' : 'none',\n };\n\n return (\n <div className=\"seek-bar\">\n <div ref={sliderContainerRef} className=\"op-position-relative\">\n {isHovering && !!duration && elX !== undefined && !!elW && (\n <div style={hoverTimeStyles}>\n {formatSecondsToClock((duration * elX) / elW)}\n </div>\n )}\n <OpSlider\n value={(currentTime / duration) * 100}\n onChange={handleSeek}\n tooltip={{ open: false }}\n handleStyle={handleStyle}\n />\n </div>\n </div>\n );\n});\n\nSeekBar.displayName = 'SeekBar';\n\nSeekBar.propTypes = {\n currentTime: PropTypes.number.isRequired,\n duration: PropTypes.number.isRequired,\n handleSeek: PropTypes.func.isRequired,\n};\n\nexport default SeekBar;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { formatSecondsToClock } from 'utils/dates';\n\nconst TimeDisplay = memo(({ duration, currentTime }) => (\n <div className=\"time-display\">\n {formatSecondsToClock(currentTime)}\n {isFinite(duration) ? ` / ${formatSecondsToClock(duration)}` : null}\n </div>\n));\n\nTimeDisplay.displayName = 'TimeDisplay';\n\nTimeDisplay.propTypes = {\n currentTime: PropTypes.number.isRequired,\n duration: PropTypes.number.isRequired,\n};\n\nexport default TimeDisplay;\n","import React, { memo, useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst UpperControls = memo(({ content = {}, isHovering }) => {\n const { left, center, right } = content;\n\n const styles = useMemo(\n () => ({\n upperControls: {\n display: 'flex',\n width: '100%',\n position: 'absolute',\n top: 0,\n paddingBottom: 52.5,\n color: 'var(--colorWhite)',\n zIndex: 1, // Allows for webRtcButton and entryUnlockButton to be visible/usable\n background: 'linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0))',\n opacity: 0,\n transition: 'opacity 0.3s',\n padding: '0 11px',\n\n // Only show background on hover or if something is persisted\n // We use opacity so we can fade in/out\n ...((isHovering ||\n left?.isPersisted ||\n center?.isPersisted ||\n right?.isPersisted) && {\n opacity: 1,\n }),\n },\n }),\n [center?.isPersisted, isHovering, left?.isPersisted, right?.isPersisted],\n );\n\n // Return null if no content to display\n if (!left?.content && !center?.content && !right?.content) {\n return null;\n }\n\n const fadeInStyles = {\n opacity: isHovering ? 1 : 0,\n transition: 'opacity 0.3s',\n };\n\n return (\n <div style={styles.upperControls}>\n <div\n className=\"op-flex-1 op-justify-content-flex-start\"\n style={{ ...left?.style, ...(!left?.isPersisted && fadeInStyles) }}\n >\n {left?.content}\n </div>\n {center && (\n <div\n className=\"op-flex-1 op-justify-content-center\"\n style={{\n ...center?.style,\n ...(!center?.isPersisted && fadeInStyles),\n }}\n >\n {center?.content}\n </div>\n )}\n <div\n className=\"op-flex-1 op-justify-content-flex-end\"\n style={{ ...right?.style, ...(!right?.isPersisted && fadeInStyles) }}\n >\n {right?.content}\n </div>\n </div>\n );\n});\n\nUpperControls.displayName = 'UpperControls';\n\nUpperControls.propTypes = {\n content: PropTypes.shape({\n left: PropTypes.shape({\n isPersisted: PropTypes.bool,\n content: PropTypes.any,\n style: PropTypes.object,\n }),\n center: PropTypes.shape({\n isPersisted: PropTypes.bool,\n content: PropTypes.any,\n style: PropTypes.object,\n }),\n right: PropTypes.shape({\n isPersisted: PropTypes.bool,\n content: PropTypes.any,\n style: PropTypes.object,\n }),\n }),\n isHovering: PropTypes.bool,\n};\n\nexport default UpperControls;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoPlayer.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./VideoPlayer.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n memo,\n createRef,\n useCallback,\n useState,\n useRef,\n useEffect,\n useMemo,\n forwardRef,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useHoverDirty, useMeasure } from 'react-use';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { Button } from 'components/Button';\nimport * as Sentry from '@sentry/react';\nimport { useTranslation } from 'react-i18next';\nimport { OpSpin } from 'new-components/DLS/OpSpin/OpSpin';\nimport {\n PlayButton,\n SeekBar,\n LiveButton,\n TimeDisplay,\n VolumeButton,\n FullscreenButton,\n BigPlayButton,\n UpperControls,\n} from '.';\n\nimport './VideoPlayer.scss';\n\nconst VideoPlayer = memo(\n forwardRef(\n (\n {\n width = '100%',\n height = 'auto',\n url = '',\n preventedHotkeys = [],\n hiddenElements = [],\n preventVideoClick,\n isLoading,\n aspectRatio = 4 / 3,\n controls,\n\n // Populates the upper content area\n upperControlsContent,\n\n // For error state\n errorProps,\n\n // Used so we can force rerenders on external volume changes\n initialVolume = 0,\n\n // Passed through to <video>\n ...videoProps\n },\n ref,\n ) => {\n const { t } = useTranslation();\n /** State */\n const [isPaused, setIsPaused] = useState(true);\n const [volume, setVolume] = useState(initialVolume);\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0.1);\n\n /** Refs */\n const cachedVolume = useRef(1);\n const fullscreenContainerRef = useRef(null);\n const controlsRef = useRef(null);\n const [playerContainerRef, { width: playerContainerWidth }] =\n useMeasure();\n\n // In the case of using the video player stand alone we must give it a ref\n if (!ref) {\n // FIXME: DEF DONT DO THIS THIS IS A PROP BEING PASSED\n // eslint-disable-next-line no-param-reassign\n ref = createRef(null);\n }\n\n /** Utils */\n const isHoveringVideo = useHoverDirty(ref);\n const isHoveringControls = useHoverDirty(controlsRef);\n const isNotFullscreen =\n !document.isFullScreen &&\n !document.fullscreenElement &&\n !document.webkitFullscreenElement &&\n !document.mozFullScreenElement &&\n !document.msFullscreenElement;\n\n /** Styles */\n const styles = useMemo(() => {\n const playerHeight =\n playerContainerWidth && aspectRatio\n ? playerContainerWidth / aspectRatio\n : height;\n\n return {\n streamTimeout: {\n lineHeight: '22px',\n color: 'var(--colorWhite)',\n padding: 33,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n flexDirection: 'column',\n },\n playerContainer: {\n width,\n height: isNotFullscreen ? playerHeight : '100%',\n },\n fullscreenContainer: {\n position: 'relative',\n height: playerHeight,\n },\n controls: {\n opacity: isHoveringVideo || isHoveringControls ? 1 : 0,\n transition: 'opacity 0.3s',\n display: 'flex',\n flexDirection: 'column',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.4))',\n width: '100%',\n position: 'absolute',\n bottom: 0,\n height: 100,\n justifyContent: 'flex-end',\n },\n bigPauseButton: {\n position: 'absolute',\n opacity: isPaused ? 0 : 1,\n fontSize: isPaused ? 24 : 0,\n ...(isPaused && { transition: 'opacity 1s, font-size 1s' }),\n },\n bigPlayButton: {\n position: 'absolute',\n opacity: !isPaused ? 0 : 1,\n fontSize: !isPaused ? 24 : 0,\n ...(!isPaused && { transition: 'opacity 1s, font-size 1s' }),\n },\n fixedLiveButton: {\n position: 'absolute',\n bottom: 0,\n height: 30,\n },\n };\n }, [\n isHoveringControls,\n isHoveringVideo,\n isPaused,\n width,\n aspectRatio,\n height,\n playerContainerWidth,\n isNotFullscreen,\n ]);\n\n // Focus video and unmute on mount\n useEffect(() => {\n if (ref.current) {\n ref.current.focus();\n // eslint-disable-next-line no-param-reassign\n ref.current.muted = false;\n }\n }, [ref]);\n\n // Watch for changes in initialVolume\n useEffect(() => {\n setVolume(initialVolume);\n }, [initialVolume]);\n\n // Set the ref (actual player volume) every time volume state changes\n useEffect(() => {\n if (ref.current) {\n // eslint-disable-next-line no-param-reassign\n ref.current.volume = volume;\n }\n }, [ref, volume]);\n\n /** Volume button props */\n const handleMuteToggleClick = useCallback(() => {\n if (ref.current.volume > 0) {\n cachedVolume.current = ref.current.volume;\n setVolume(0);\n } else {\n setVolume(cachedVolume.current);\n }\n }, [ref]);\n const handleVolumeSliderChange = useCallback((value) => {\n const volumeToSet = value / 100;\n setVolume(volumeToSet);\n }, []);\n\n /** Fullscreen button props */\n const requestFullscreen = useCallback(() => {\n fullscreenContainerRef.current?.requestFullscreen?.();\n fullscreenContainerRef.current?.webkitRequestFullscreen?.();\n fullscreenContainerRef.current?.mozRequestFullScreen?.();\n fullscreenContainerRef.current?.msRequestFullscreen?.();\n }, []);\n const exitFullscreen = useCallback(() => {\n document.exitFullscreen?.();\n document.webkitExitFullscreen?.();\n document.mozCancelFullScreen?.();\n document.msExitFullscreen?.();\n }, []);\n const handleFullscreenToggleClick = useCallback(\n () => (isNotFullscreen ? requestFullscreen() : exitFullscreen()),\n [isNotFullscreen, requestFullscreen, exitFullscreen],\n );\n\n /** Play button props */\n const handlePlayToggleClick = useCallback(() => {\n if (isPaused) {\n ref.current.play();\n } else {\n ref.current.pause();\n }\n }, [ref, isPaused]);\n const iconName = isPaused\n ? currentTime / duration === 1\n ? 'redo'\n : 'play'\n : 'pause';\n\n /** Seek bar props */\n const handleSeek = useCallback(\n (value) => {\n const newCurrentTime = (duration * value) / 100;\n setCurrentTime(newCurrentTime);\n // eslint-disable-next-line no-param-reassign\n ref.current.currentTime = newCurrentTime;\n },\n [duration, ref],\n );\n\n /** Video props */\n const handleVideoClick = useCallback(() => {\n if (isPaused) {\n ref.current.play();\n } else {\n ref.current.pause();\n }\n }, [ref, isPaused]);\n const handleTimeUpdate = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-shadow\n ({ target: { currentTime, duration, paused } }) => {\n setCurrentTime(currentTime);\n setDuration(duration);\n setIsPaused(paused);\n },\n [],\n );\n const handleKeyDown = useCallback(\n (e) => {\n if (preventedHotkeys.includes(e.key)) return;\n\n switch (e.key) {\n // Spacebar (play/pause)\n case ' ': {\n // Prevents jumping down page\n e?.preventDefault?.();\n\n if (isPaused) {\n ref.current.play();\n } else {\n ref.current.pause();\n }\n\n break;\n }\n // Left arrow (jump 5 sec back)\n case 'ArrowLeft': {\n // eslint-disable-next-line no-param-reassign\n ref.current.currentTime -= 5;\n break;\n }\n // Right arrow (jump 5 sec forward)\n case 'ArrowRight': {\n // eslint-disable-next-line no-param-reassign\n ref.current.currentTime += 5;\n break;\n }\n // down arrow (volume down 5%)\n case 'ArrowDown': {\n // Prevents jumping down page\n e?.preventDefault?.();\n // If adjusting the volume would put it below 0 we set to 0\n setVolume((prevVolume) => Math.max(0, prevVolume - 0.05));\n break;\n }\n // up arrow (volume up 5%)\n case 'ArrowUp': {\n // Prevents jumping down page\n e?.preventDefault?.();\n // If adjusting the volume would put it above 1 we set to 1\n setVolume((prevVolume) => Math.min(1, prevVolume + 0.05));\n break;\n }\n // Toggle mute\n case 'm': {\n handleMuteToggleClick();\n break;\n }\n // Toggle fullscreen\n case 'f': {\n handleFullscreenToggleClick();\n break;\n }\n }\n },\n [\n handleFullscreenToggleClick,\n handleMuteToggleClick,\n isPaused,\n preventedHotkeys,\n ref,\n ],\n );\n\n // Used to gain player focus so hotkeys can be used\n const handlePlayerClick = useCallback(() => {\n ref.current?.focus();\n }, [ref]);\n\n const onError = (error) => {\n // Send error to Sentry\n Sentry.captureException(error);\n Sentry.captureMessage(`HTML5 <video /> error: ${error.message}`);\n };\n\n return (\n <div\n className=\"video-player\"\n ref={playerContainerRef}\n style={styles.playerContainer}\n >\n <OpSpin\n className=\"video-player__loader\"\n tip={t('Loading')}\n spinning={isLoading && !url}\n >\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div\n ref={fullscreenContainerRef}\n style={styles.fullscreenContainer}\n onClick={handlePlayerClick}\n role=\"button\"\n tabIndex={0}\n >\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\n <video\n onError={onError}\n tabIndex={0}\n className=\"op-display-flex op-outline-none\" // Prevents extra padding at bottom of video and prevents blue outline on focus\n ref={ref}\n style={styles.playerContainer}\n onKeyDown={handleKeyDown}\n data-testid=\"html5-video-element\"\n {...(!preventVideoClick && { onClick: handleVideoClick })}\n // Don't run time update when there is no SeekBar\n {...(!hiddenElements.includes('SeekBar') && {\n onTimeUpdate: handleTimeUpdate,\n })}\n {...videoProps}\n />\n\n {!hiddenElements.includes('BigPlayButton') && (\n <BigPlayButton isPaused={isPaused} />\n )}\n\n {/** Controls */}\n {controls && (\n <div ref={controlsRef}>\n <UpperControls\n isHovering={isHoveringVideo || isHoveringControls}\n content={upperControlsContent}\n />\n\n {!isLoading && (\n <>\n <div style={styles.controls}>\n {!hiddenElements.includes('SeekBar') && (\n <SeekBar {...{ currentTime, duration, handleSeek }} />\n )}\n <div className=\"op-justify-content-space-between op-horizontal-padding-11\">\n <div className=\"op-display-flex\">\n {!hiddenElements.includes('PlayButton') && (\n <PlayButton\n {...{ handlePlayToggleClick, iconName }}\n />\n )}\n {!hiddenElements.includes('LiveButton') && (\n <LiveButton\n {...{\n currentTime,\n duration,\n }}\n />\n )}\n {!hiddenElements.includes('TimeDisplay') && (\n <TimeDisplay {...{ currentTime, duration }} />\n )}\n </div>\n <div className=\"op-display-flex\">\n {!hiddenElements.includes('VolumeButton') && (\n <VolumeButton\n {...{\n handleMuteToggleClick,\n handleVolumeSliderChange,\n volume,\n }}\n />\n )}\n {!hiddenElements.includes('FullscreenButton') && (\n <FullscreenButton\n {...{\n handleFullscreenToggleClick,\n isNotFullscreen,\n }}\n />\n )}\n </div>\n </div>\n </div>\n\n {/** Fixed Live Indicator */}\n {!hiddenElements.includes('LiveButton') && (\n <div\n className=\"op-justify-content-space-between op-horizontal-padding-11\"\n style={styles.fixedLiveButton}\n >\n <div className=\"op-display-flex\">\n <LiveButton {...{ currentTime, duration }} />\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )}\n\n {/** URL error retry state */}\n {errorProps && (\n <div\n className=\"op-cover op-fully-centered-content\"\n style={styles.streamTimeout}\n >\n <Icon\n className=\"op-font-size-48\"\n name={errorProps.iconName || 'exclamation triangle'}\n />\n <div className=\"op-margin-bottom-22\">\n {errorProps.errorMessage}\n </div>\n {errorProps.handleRetryClick && (\n <Button\n basic\n content={errorProps.buttonContent || t('Retry')}\n onClick={errorProps.handleRetryClick}\n />\n )}\n </div>\n )}\n </div>\n </OpSpin>\n </div>\n );\n },\n ),\n);\n\nVideoPlayer.propTypes = {\n isLoading: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n url: PropTypes.string,\n aspectRatio: PropTypes.number,\n // This gets ...spread I think so not sure why this is erroring\n // eslint-disable-next-line react/no-unused-prop-types\n muted: PropTypes.bool,\n preventedHotkeys: PropTypes.arrayOf(PropTypes.string),\n preventVideoClick: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n isLive: PropTypes.bool,\n controls: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n upperControls: PropTypes.element,\n errorProps: PropTypes.shape({\n buttonContent: PropTypes.string,\n errorMessage: PropTypes.any,\n handleRetryClick: PropTypes.func,\n iconName: PropTypes.string,\n }),\n hiddenElements: PropTypes.arrayOf(PropTypes.string),\n upperControlsContent: PropTypes.shape({\n left: PropTypes.shape({\n fadeIn: PropTypes.bool,\n content: PropTypes.any,\n }),\n center: PropTypes.shape({\n fadeIn: PropTypes.bool,\n content: PropTypes.any,\n }),\n right: PropTypes.shape({\n fadeIn: PropTypes.bool,\n content: PropTypes.any,\n }),\n }),\n videoDownloadButtonProps: PropTypes.shape({\n opvideoDeviceId: PropTypes.number.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }),\n initialVolume: PropTypes.number,\n};\n\nVideoPlayer.displayName = 'VideoPlayer';\n\nexport default VideoPlayer;\n","import React, { memo, useRef, useMemo, useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { useHoverDirty } from 'react-use';\nimport { OpSlider } from 'new-components/DLS/OpSlider/OpSlider';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst VolumeButton = memo(\n ({ handleMuteToggleClick, handleVolumeSliderChange, volume }) => {\n const volumeContainerRef = useRef(null);\n const isHovering = useHoverDirty(volumeContainerRef);\n const iconName = volume\n ? volume > 0.5\n ? 'volume up'\n : 'volume down'\n : 'volume off';\n const styles = useMemo(\n () => ({\n container: { paddingRight: isHovering ? 15 : 8 },\n icon: {\n height: 'auto',\n },\n sliderContainer: {\n width: isHovering ? 60 : 0,\n transition: 'width 0.3s',\n alignItems: 'center',\n cursor: 'pointer',\n },\n slider: {\n cursor: 'pointer',\n padding: 0,\n width: '100%',\n margin: 0,\n },\n handle: {\n top: -4,\n display: isHovering ? 'block' : 'none',\n },\n rail: {\n backgroundColor: 'rgba(255, 255, 255, 0.2)',\n },\n }),\n [isHovering],\n );\n\n // Hacky solution to override the transform css property of rc-slider\n // This is used as the prop is !important in their class and React\n // doesn't provide a way to override !important in classes inline\n useLayoutEffect(() => {\n volumeContainerRef.current?.children?.[1]?.children[0].children[3]?.style.setProperty(\n 'transform',\n `translateX(-${volume * 100}%)`,\n 'important',\n );\n }, [volume]);\n\n return (\n <div\n ref={volumeContainerRef}\n className=\"volume-button op-justify-content-center\"\n style={styles.container}\n >\n {/** Mute Button */}\n <Clickable\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handleMuteToggleClick}\n >\n <Icon\n name={iconName}\n fitted\n inverted\n size=\"large\"\n style={styles.icon}\n />\n </Clickable>\n\n {/** Volume Slider */}\n <div\n className=\"op-justify-content-center\"\n style={styles.sliderContainer}\n data-testid=\"volume-slider\"\n >\n <OpSlider\n className=\"video-player-volume-slider\"\n tooltip={{ formatter: null }} // Don't show tooltip\n onChange={handleVolumeSliderChange}\n value={volume * 100}\n style={styles.slider}\n handleStyle={styles.handle}\n railStyle={styles.rail}\n />\n </div>\n </div>\n );\n },\n);\n\nVolumeButton.displayName = 'VolumeButton';\n\nVolumeButton.propTypes = {\n handleMuteToggleClick: PropTypes.func.isRequired,\n handleVolumeSliderChange: PropTypes.func.isRequired,\n volume: PropTypes.number.isRequired,\n};\n\nexport default VolumeButton;\n","import React, { memo, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport WarningOutlined from '@ant-design/icons/WarningOutlined';\nimport { useVideoState } from '@msi-alta/opvideo-state-machine';\nimport { Layers, SoundEffects, WebAudio } from 'utils/audio';\nimport { getOpParams } from 'utils/getOpParams';\nimport { useFeatureFlag } from 'utils/customHooks/useFeatureFlag';\nimport { Popup } from 'components/Popup';\nimport { PhoneFilledSvg } from 'components/svgs/PhoneFilledSvg/PhoneFilledSvg';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { callStates, connectionStates } from '../constants';\n\nconst styles = {\n wrapper: { paddingTop: 9 },\n button: { transform: 'rotate(135deg)' },\n};\n\nconst CALL_ICONS = {\n ERROR: <WarningOutlined />,\n START_CALL: <PhoneFilledSvg />,\n END_CALL: <PhoneFilledSvg style={{ transform: 'rotate(135deg)' }} />,\n NO_ICON: null,\n};\n// TODO: Update opvideo-state-machine so that states can be imported when isolatedModules is enabled\nconst VideoStates = {\n CONNECTING: 'CONNECTING',\n CONNECTED: 'CONNECTED',\n PREVIEW: 'PREVIEW',\n SURVEILLANCE: 'SURVEILLANCE',\n CALL: 'CALL',\n FAILED: 'FAILED',\n RECONNECTING: 'RECONNECTING',\n DISCONNECTING: 'DISCONNECTING',\n DISCONNECTED: 'DISCONNECTED',\n};\n\nconst getIconKey = (icon: any) => {\n return (\n Object.keys(CALL_ICONS).find(\n (key) => CALL_ICONS[key as keyof typeof CALL_ICONS] === icon,\n ) || null\n );\n};\n\n/*\n ConnectionState models the actual webRTC connection state of an ongoing call\n CallState determines if the call is in \"Preview mode\" (no mic) or \"Call mode\" (mic enabled)\n*/\n\ninterface WebRtcButtonProps {\n onClick(): void;\n connectionState: keyof typeof connectionStates;\n callState: keyof typeof callStates | null;\n micPermission: string | null;\n}\n\nconst WebRtcButton = memo(\n ({\n onClick,\n connectionState,\n callState = null,\n micPermission,\n }: WebRtcButtonProps) => {\n const { t } = useTranslation();\n\n const { orgId } = getOpParams();\n const { value: isVideoStateMachineEnabled } = useFeatureFlag(\n 'IS_VIDEO_STATE_MACHINE_ENABLED',\n orgId,\n );\n\n const { videoState } = useVideoState();\n const { value: currentVideoState } = videoState;\n\n const isDangerStatus = useMemo(() => {\n return isVideoStateMachineEnabled\n ? currentVideoState === VideoStates.FAILED ||\n currentVideoState === VideoStates.CALL\n : connectionState === connectionStates.CONNECTION_ERROR ||\n (connectionState === connectionStates.CONNECTED &&\n callState === callStates.CALL);\n }, [\n isVideoStateMachineEnabled,\n currentVideoState,\n connectionState,\n callState,\n ]);\n\n const icon = useMemo(() => {\n if (isVideoStateMachineEnabled) {\n switch (currentVideoState) {\n case VideoStates.PREVIEW:\n case VideoStates.SURVEILLANCE:\n if (micPermission === 'denied') {\n return CALL_ICONS.ERROR;\n }\n return CALL_ICONS.START_CALL;\n case VideoStates.CALL:\n return CALL_ICONS.END_CALL;\n case VideoStates.CONNECTING:\n case VideoStates.DISCONNECTED:\n case VideoStates.RECONNECTING:\n return CALL_ICONS.NO_ICON;\n case VideoStates.FAILED:\n return CALL_ICONS.ERROR;\n default:\n return CALL_ICONS.ERROR;\n }\n }\n\n switch (connectionState) {\n case connectionStates.CONNECTED:\n if (callState === callStates.PREVIEW) {\n if (micPermission === 'denied') {\n return CALL_ICONS.ERROR;\n }\n return CALL_ICONS.START_CALL;\n }\n if (callState === callStates.CALL) {\n return CALL_ICONS.END_CALL;\n }\n break;\n case connectionStates.CONNECTING:\n case connectionStates.DISCONNECTED:\n case connectionStates.SHOULD_RECONNECT:\n return CALL_ICONS.NO_ICON;\n case connectionStates.CONNECTION_ERROR:\n return CALL_ICONS.ERROR;\n default:\n return CALL_ICONS.ERROR;\n }\n }, [\n connectionState,\n isVideoStateMachineEnabled,\n callState,\n micPermission,\n currentVideoState,\n ]);\n\n const popupContent = useMemo(() => {\n if (isVideoStateMachineEnabled) {\n switch (currentVideoState) {\n case VideoStates.PREVIEW:\n case VideoStates.SURVEILLANCE:\n if (micPermission === 'denied') {\n return t('Browser microphone permission denied');\n }\n\n return t('Start call');\n case VideoStates.CALL:\n return t('End call');\n case VideoStates.CONNECTING:\n case VideoStates.DISCONNECTED:\n case VideoStates.RECONNECTING:\n return t('Loading...');\n case VideoStates.FAILED:\n return t('Connection Error');\n default:\n return t('Unknown state');\n }\n }\n\n switch (connectionState) {\n case connectionStates.CONNECTED:\n if (callState === callStates.PREVIEW) {\n if (micPermission === 'denied') {\n return t('Browser microphone permission denied');\n }\n\n return t('Start call');\n }\n if (callState === callStates.CALL) {\n return t('End call');\n }\n break;\n case connectionStates.CONNECTING:\n case connectionStates.DISCONNECTED:\n case connectionStates.SHOULD_RECONNECT:\n return t('Loading...');\n case connectionStates.CONNECTION_ERROR:\n return t('Connection Error');\n default:\n return t('Unknown state');\n }\n }, [\n isVideoStateMachineEnabled,\n connectionState,\n currentVideoState,\n micPermission,\n t,\n callState,\n ]);\n\n return (\n <Popup\n className=\"web-rtc-button\"\n trigger={\n <div\n style={styles.wrapper}\n className=\"control-button op-cursor-pointer op-flex-direction-column op-align-items-center\"\n >\n <OpButton\n loading={\n isVideoStateMachineEnabled\n ? [VideoStates.CONNECTING, VideoStates.DISCONNECTED].includes(\n currentVideoState,\n )\n : connectionState === connectionStates.CONNECTING ||\n connectionState === connectionStates.DISCONNECTED\n }\n data-testid={`web-rtc-button-${getIconKey(icon)}`}\n shape=\"circle\"\n size=\"large\"\n type=\"primary\"\n danger={isDangerStatus}\n icon={icon}\n onClick={() => {\n if (micPermission === 'denied') {\n // todo\n } else {\n onClick();\n WebAudio.stop(\n SoundEffects.INTERCOM_NOTIFICATION,\n Layers.INTERCOM_NOTIFICATIONS,\n );\n }\n }}\n {...((isVideoStateMachineEnabled\n ? currentVideoState === VideoStates.CALL\n : connectionState === connectionStates.CONNECTED &&\n callState === callStates.CALL) && {\n style: styles.button,\n })}\n />\n </div>\n }\n content={popupContent}\n position=\"bottom center\"\n />\n );\n },\n);\n\nexport default WebRtcButton;\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","/**\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\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 deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * 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 all\n * 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 FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n return { value: false };\n}\n\nfunction SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n return (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\n}\n\nfunction resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nfunction isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nvar Collection = function Collection(value) {\n // eslint-disable-next-line no-constructor-return\n return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n // eslint-disable-next-line no-constructor-return\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nfunction isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n done: false,\n });\n return iteratorResult;\n}\n\nfunction iteratorDone() {\n return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n if (Array.isArray(maybeIterable)) {\n // IE11 trick as it does not support `Symbol.iterator`\n return true;\n }\n\n return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n var iteratorFn =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n}\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n function Seq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection ) Seq.__proto__ = Collection;\n Seq.prototype = Object.create( Collection && Collection.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n // eslint-disable-next-line no-constructor-return\n return (\n isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n function ObjectSeq(object) {\n var keys = Object.keys(object).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n );\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n}\n\nfunction indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n}\n\nfunction seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return isEntriesIterable(value)\n ? seq.fromEntrySeq()\n : isKeysIterable(value)\n ? seq.toSetSeq()\n : seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n}\n\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nfunction isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nfunction isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\n}\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n}\n\nvar imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n b |= 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n if (o == null) {\n return hashNullish(o);\n }\n\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n\n var v = valueOf(o);\n\n if (v == null) {\n return hashNullish(v);\n }\n\n switch (typeof v) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return v ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(v);\n case 'string':\n return v.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(v)\n : hashString(v);\n case 'object':\n case 'function':\n return hashJSObj(v);\n case 'symbol':\n return hashSymbol(v);\n default:\n if (typeof v.toString === 'function') {\n return hashString(v.toString());\n }\n throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n }\n}\n\nfunction hashNullish(nullish) {\n return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n}\n\nfunction cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hashed;\n }\n return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n var hashed = symbolMap[sym];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = nextHash();\n\n symbolMap[sym] = hashed;\n\n return hashed;\n}\n\nfunction hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = nextHash();\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function () {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n}\n\nfunction valueOf(obj) {\n return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n ? obj.valueOf(obj)\n : obj;\n}\n\nfunction nextHash() {\n var nextHash = ++_objHashUID;\n if (_objHashUID & 0x40000000) {\n _objHashUID = 0;\n }\n return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (entry) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\nfunction flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function () {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__iterator(type, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, collection),\n step\n );\n });\n };\n return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n var this$1$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = [[], []];\n collection.__iterate(function (v, k) {\n groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n isKeyedIter ? [k, v] : v\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\n }\n\n // begin or end can not be resolved if they were provided as negative numbers and\n // this collection's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (typeof originalSize === 'undefined' && (begin < 0 || end < 0)) {\n return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(collection);\n\n // If collection.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n iterations !== sliceSize\n );\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function (type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$1$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isCollection(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n };\n return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n fn(v, iterations++, this$1$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2\n ? iteratorValue(type, iterations++, separator)\n : iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries\n .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n .forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function (fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function (type, reverse) {\n var iterators = iters.map(\n function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function () {\n var steps;\n if (!isDone) {\n steps = iterators.map(function (i) { return i.next(); });\n isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(\n null,\n steps.map(function (s) { return s.value; })\n )\n );\n });\n };\n return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n}\n\nfunction collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n}\n\nfunction makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? IndexedSeq\n : SetSeq\n ).prototype\n );\n}\n\nfunction cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n }\n return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nfunction arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n}\n\nfunction invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n}\n\nfunction assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n}\n\nfunction coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n // The base prototype's toString deals with Argument objects and native namespaces like Math\n if (\n !value ||\n typeof value !== 'object' ||\n toString.call(value) !== '[object Object]'\n ) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n\n // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n var parentProto = proto;\n var nextProto = Object.getPrototypeOf(proto);\n while (nextProto !== null) {\n parentProto = nextProto;\n nextProto = Object.getPrototypeOf(parentProto);\n }\n return parentProto === proto;\n}\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n );\n}\n\nfunction quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n}\n\nfunction has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nfunction get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n}\n\nfunction shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n}\n\nfunction remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n}\n\nfunction set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n}\n\nfunction updateIn$1(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n}\n\nfunction setIn$1(collection, keyPath, value) {\n return updateIn$1(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nfunction setIn(keyPath, v) {\n return setIn$1(this, keyPath, v);\n}\n\nfunction removeIn(collection, keyPath) {\n return updateIn$1(collection, keyPath, function () { return NOT_SET; });\n}\n\nfunction deleteIn(keyPath) {\n return removeIn(this, keyPath);\n}\n\nfunction update$1(collection, key, notSetValue, updater) {\n return updateIn$1(collection, [key], notSetValue, updater);\n}\n\nfunction update(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update$1(this, key, notSetValue, updater);\n}\n\nfunction updateIn(keyPath, notSetValue, updater) {\n return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nfunction merge$1() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith$1(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update$1(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n );\n }\n : function (value, key) {\n collection.set(key, value);\n };\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoCollection);\n }\n });\n}\n\nfunction merge(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep$1(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith$1(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection(sources[i]).forEach(mergeItem);\n }\n return merged;\n}\n\nfunction deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) &&\n isDataStructure(newValue) &&\n areMergeable(oldValue, newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n var oldSeq = Seq(oldDataStructure);\n var newSeq = Seq(newDataStructure);\n // This logic assumes that a sequence can only fall into one of the three\n // categories mentioned above (since there's no `isSetLike()` method).\n return (\n isIndexed(oldSeq) === isIndexed(newSeq) &&\n isKeyed(oldSeq) === isKeyed(newSeq)\n );\n}\n\nfunction mergeDeep() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n}\n\nfunction mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nfunction mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n}\n\nfunction withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nfunction asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nfunction asImmutable() {\n return this.__ensureOwner();\n}\n\nfunction wasAltered() {\n return this.__altered;\n}\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n function Map(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (k, notSetValue) {\n return this._root\n ? this._root.get(0, undefined, k, notSetValue)\n : notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, this$1$1));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge$1;\nMapPrototype.mergeWith = mergeWith$1;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n var newNodes = exists\n ? newNode\n ? setAt(nodes, idx, newNode, isEditable)\n : spliceOut(nodes, idx, isEditable)\n : spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n if ( Iterator ) MapIterator.__proto__ = Iterator;\n MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex = (void 0);\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev,\n };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n}\n\nfunction isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n function List(value) {\n var empty = emptyList();\n if (value === undefined || value === null) {\n // eslint-disable-next-line no-constructor-return\n return empty;\n }\n if (isList(value)) {\n // eslint-disable-next-line no-constructor-return\n return value;\n }\n var iter = IndexedCollection(value);\n var size = iter.size;\n if (size === 0) {\n // eslint-disable-next-line no-constructor-return\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n // eslint-disable-next-line no-constructor-return\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n // eslint-disable-next-line no-constructor-return\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) { return list.set(i, v); });\n });\n }\n\n if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function push (/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...values*/) {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function __iterator (type, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n return new Iterator(function () {\n var value = values();\n return value === DONE\n ? iteratorDone()\n : iteratorValue(type, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild =\n oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild =\n oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0\n ? iterateLeaf(node, offset)\n : iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n while (true) {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx],\n level - SHIFT,\n offset + (idx << level)\n );\n }\n };\n }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function (list) {\n index < 0\n ? setListBounds(list, index).set(0, value)\n : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n if (didAlter) {\n SetRef(didAlter);\n }\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n}\n\nfunction setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin |= 0;\n }\n if (end !== undefined) {\n end |= 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n function OrderedMap(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map ) OrderedMap.__proto__ = Map;\n OrderedMap.prototype = Object.create( Map && Map.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n this.__altered = true;\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return emptyOrderedMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n omap.__altered = false;\n return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n return (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n newMap = newList\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n omap.__altered = true;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n}\n\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n function Stack(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments$1[ii],\n next: head,\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function pushAll (iter) {\n iter = IndexedCollection(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1$1); },\n reverse\n );\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function () {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nfunction isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n a.__hash !== b.__hash) ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return (\n b.every(function (v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done\n );\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function (v, k) {\n if (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n}\n\nfunction mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n}\n\nfunction toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n}\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n function Set(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection ) Set.__proto__ = SetCollection;\n Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n // keep track if the set is altered by the map function\n var didChanges = false;\n\n var newMap = updateSet(\n this,\n this._map.mapEntries(function (ref) {\n var v = ref[1];\n\n var mapped = mapper.call(context, v, v, this$1$1);\n\n if (mapped !== v) {\n didChanges = true;\n }\n\n return [mapped, mapped];\n }, context)\n );\n\n return didChanges ? newMap : this;\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n iters = iters.filter(function (x) { return x.size !== 0; });\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n if (typeof iters[ii] === 'string') {\n set.add(iters[ii]);\n } else {\n SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map\n ? set\n : newMap.size === 0\n ? set.__empty()\n : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n // eslint-disable-next-line no-constructor-return\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n // eslint-disable-next-line no-constructor-return\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index;\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (other) {\n return other instanceof Range\n ? this._start === other._start &&\n this._end === other._end &&\n this._step === other._step\n : deepEqual(this, other);\n };\n\n return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nfunction getIn$1(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n}\n\nfunction getIn(searchKeyPath, notSetValue) {\n return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nfunction hasIn$1(collection, keyPath) {\n return getIn$1(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nfunction hasIn(searchKeyPath) {\n return hasIn$1(this, searchKeyPath);\n}\n\nfunction toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n}\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq().map(this.__toStringMapper).join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n partition: function partition(predicate, context) {\n return partitionFactory(this, predicate, context);\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function (v) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = false;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n returnValue = true;\n return false;\n }\n });\n return returnValue;\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq().reverse().first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n .flip()\n );\n },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum || 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1\n ? spliced\n : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n this.size === Infinity ||\n (this.size !== undefined && index > this.size)\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__iterate(function (v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n }, reverse);\n return reduction;\n}\n\nfunction keyMapper(v, k) {\n return k;\n}\n\nfunction entryMapper(v, k) {\n return [k, v];\n}\n\nfunction not(predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n}\n\nfunction neg(predicate) {\n return function () {\n return -predicate.apply(this, arguments);\n };\n}\n\nfunction defaultZipper() {\n return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\n );\n return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n h = imul(h, 0xcc9e2d51);\n h = imul((h << 15) | (h >>> -15), 0x1b873593);\n h = imul((h << 13) | (h >>> -13), 5);\n h = ((h + 0xe6546b64) | 0) ^ size;\n h = imul(h ^ (h >>> 16), 0x85ebca6b);\n h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n h = smi(h ^ (h >>> 16));\n return h;\n}\n\nfunction hashMerge(a, b) {\n return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n function OrderedSet(value) {\n // eslint-disable-next-line no-constructor-return\n return value === undefined || value === null\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set ) OrderedSet.__proto__ = Set;\n OrderedSet.prototype = Object.create( Set && Set.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n return (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n}\n\nvar PairSorting = {\n LeftThenRight: -1,\n RightThenLeft: +1,\n};\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n if (isRecord(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n );\n }\n\n if (isImmutable(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n );\n }\n\n if (defaultValues === null || typeof defaultValues !== 'object') {\n throw new Error(\n 'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n );\n }\n}\n\nvar Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n throwOnInvalidDefaultValues(defaultValues);\n\n var RecordType = function Record(values) {\n var this$1$1 = this;\n\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n });\n });\n return this;\n };\n\n var RecordTypePrototype = (RecordType.prototype =\n Object.create(RecordPrototype));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n // eslint-disable-next-line no-constructor-return\n return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n return (\n this === other ||\n (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n\n return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge$1;\nRecordPrototype.mergeWith = mergeWith$1;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n}\n\nfunction recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n try {\n Object.defineProperty(prototype, name, {\n get: function () {\n return this.get(name);\n },\n set: function (value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n },\n });\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n}\n\n/**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\nvar Repeat = /*@__PURE__*/(function (IndexedSeq) {\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n // eslint-disable-next-line no-constructor-return\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n // eslint-disable-next-line no-constructor-return\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n if ( IndexedSeq ) Repeat.__proto__ = IndexedSeq;\n Repeat.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Repeat.prototype.constructor = Repeat;\n\n Repeat.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function includes (searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function slice (begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size)\n ? this\n : new Repeat(\n this._value,\n resolveEnd(end, size) - resolveBegin(begin, size)\n );\n };\n\n Repeat.prototype.reverse = function reverse () {\n return this;\n };\n\n Repeat.prototype.indexOf = function indexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var i = 0;\n while (i !== size) {\n if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n }\n return i;\n };\n\n Repeat.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var size = this.size;\n var i = 0;\n return new Iterator(function () { return i === size\n ? iteratorDone()\n : iteratorValue(type, reverse ? size - ++i : i++, this$1$1._value); }\n );\n };\n\n Repeat.prototype.equals = function equals (other) {\n return other instanceof Repeat\n ? is(this._value, other._value)\n : deepEqual(this, other);\n };\n\n return Repeat;\n}(IndexedSeq));\n\nvar EMPTY_REPEAT;\n\nfunction fromJS(value, converter) {\n return fromJSWith(\n [],\n converter || defaultConverter,\n value,\n '',\n converter && converter.length > 2 ? [] : undefined,\n { '': value }\n );\n}\n\nfunction fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n if (\n typeof value !== 'string' &&\n !isImmutable(value) &&\n (isArrayLike(value) || hasIterator(value) || isPlainObject(value))\n ) {\n if (~stack.indexOf(value)) {\n throw new TypeError('Cannot convert circular structure to Immutable');\n }\n stack.push(value);\n keyPath && key !== '' && keyPath.push(key);\n var converted = converter.call(\n parentValue,\n key,\n Seq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n ),\n keyPath && keyPath.slice()\n );\n stack.pop();\n keyPath && keyPath.pop();\n return converted;\n }\n return value;\n}\n\nfunction defaultConverter(k, v) {\n // Effectively the opposite of \"Collection.toSeq()\"\n return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();\n}\n\nvar version = \"4.3.7\";\n\nvar Immutable = {\n version: version,\n\n Collection: Collection,\n // Note: Iterable is deprecated\n Iterable: Collection,\n\n Seq: Seq,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n PairSorting: PairSorting,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS,\n hash: hash,\n\n isImmutable: isImmutable,\n isCollection: isCollection,\n isKeyed: isKeyed,\n isIndexed: isIndexed,\n isAssociative: isAssociative,\n isOrdered: isOrdered,\n isValueObject: isValueObject,\n isPlainObject: isPlainObject,\n isSeq: isSeq,\n isList: isList,\n isMap: isMap,\n isOrderedMap: isOrderedMap,\n isStack: isStack,\n isSet: isSet,\n isOrderedSet: isOrderedSet,\n isRecord: isRecord,\n\n get: get,\n getIn: getIn$1,\n has: has,\n hasIn: hasIn$1,\n merge: merge,\n mergeDeep: mergeDeep$1,\n mergeWith: mergeWith,\n mergeDeepWith: mergeDeepWith$1,\n remove: remove,\n removeIn: removeIn,\n set: set,\n setIn: setIn$1,\n update: update$1,\n updateIn: updateIn$1,\n};\n\n// Note: Iterable is deprecated\nvar Iterable = Collection;\n\nexport default Immutable;\nexport { Collection, Iterable, List, Map, OrderedMap, OrderedSet, PairSorting, Range, Record, Repeat, Seq, Set, Stack, fromJS, get, getIn$1 as getIn, has, hasIn$1 as hasIn, hash, is, isAssociative, isCollection, isImmutable, isIndexed, isKeyed, isList, isMap, isOrdered, isOrderedMap, isOrderedSet, isPlainObject, isRecord, isSeq, isSet, isStack, isValueObject, merge, mergeDeep$1 as mergeDeep, mergeDeepWith$1 as mergeDeepWith, mergeWith, remove, removeIn, set, setIn$1 as setIn, update$1 as update, updateIn$1 as updateIn, version };\n","import { useEffect, useRef } from 'react';\nvar isPrimitive = function (val) { return val !== Object(val); };\nvar useCustomCompareEffect = function (effect, deps, depsEqual) {\n if (process.env.NODE_ENV !== 'production') {\n if (!(deps instanceof Array) || !deps.length) {\n console.warn('`useCustomCompareEffect` should not be used with no dependencies. Use React.useEffect instead.');\n }\n if (deps.every(isPrimitive)) {\n console.warn('`useCustomCompareEffect` should not be used with dependencies that are all primitive values. Use React.useEffect instead.');\n }\n if (typeof depsEqual !== 'function') {\n console.warn('`useCustomCompareEffect` should be used with depsEqual callback for comparing deps list');\n }\n }\n var ref = useRef(undefined);\n if (!ref.current || !depsEqual(deps, ref.current)) {\n ref.current = deps;\n }\n useEffect(effect, ref.current);\n};\nexport default useCustomCompareEffect;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\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\nmodule.exports = getAllKeys;\n","module.exports = __webpack_public_path__ + \"f13b8474637a47ca4401e1674e391466.js\";","module.exports = __webpack_public_path__ + \"4bf3bc1fbdd26ac698fef1bdf26e3ff4.js\";","module.exports = __webpack_public_path__ + \"4db989de49617370db449991af03f578.js\";","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n onScroll();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","import { uuid4 } from './misc.js';\n\n/**\n * Returns a new minimal propagation context\n */\nfunction generatePropagationContext() {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n\nexport { generatePropagationContext };\n//# sourceMappingURL=propagationContext.js.map\n","module.exports = __webpack_public_path__ + \"c3f345c994392d97785925e790513a9f.js\";","\"use client\";\n\nimport React, { useMemo } from 'react';\nimport { ColorBlock, Color as RcColor } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Collapse from '../../collapse';\nimport { useLocale } from '../../locale';\nimport { useToken } from '../../theme/internal';\nimport { generateColor } from '../util';\nconst genPresetColor = list => list.map(value => {\n value.colors = value.colors.map(generateColor);\n return value;\n});\nexport const isBright = (value, bgColorToken) => {\n const {\n r,\n g,\n b,\n a\n } = value.toRgb();\n const hsv = new RcColor(value.toRgbString()).onBackground(bgColorToken).toHsv();\n if (a <= 0.5) {\n // Adapted to dark mode\n return hsv.v > 0.5;\n }\n return r * 0.299 + g * 0.587 + b * 0.114 > 192;\n};\nconst genCollapsePanelKey = _ref => {\n let {\n label\n } = _ref;\n return `panel-${label}`;\n};\nconst ColorPresets = _ref2 => {\n let {\n prefixCls,\n presets,\n value: color,\n onChange\n } = _ref2;\n const [locale] = useLocale('ColorPicker');\n const [, token] = useToken();\n const [presetsValue] = useMergedState(genPresetColor(presets), {\n value: genPresetColor(presets),\n postState: genPresetColor\n });\n const colorPresetsPrefixCls = `${prefixCls}-presets`;\n const activeKeys = useMemo(() => presetsValue.reduce((acc, preset) => {\n const {\n defaultOpen = true\n } = preset;\n if (defaultOpen) acc.push(genCollapsePanelKey(preset));\n return acc;\n }, []), [presetsValue]);\n const handleClick = colorValue => {\n onChange === null || onChange === void 0 ? void 0 : onChange(colorValue);\n };\n const items = presetsValue.map(preset => {\n var _a;\n return {\n key: genCollapsePanelKey(preset),\n label: /*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-label`\n }, preset === null || preset === void 0 ? void 0 : preset.label),\n children: (/*#__PURE__*/React.createElement(\"div\", {\n className: `${colorPresetsPrefixCls}-items`\n }, Array.isArray(preset === null || preset === void 0 ? void 0 : preset.colors) && ((_a = preset.colors) === null || _a === void 0 ? void 0 : _a.length) > 0 ? preset.colors.map((presetColor, index) => (/*#__PURE__*/React.createElement(ColorBlock\n // eslint-disable-next-line react/no-array-index-key\n , {\n // eslint-disable-next-line react/no-array-index-key\n key: `preset-${index}-${presetColor.toHexString()}`,\n color: generateColor(presetColor).toRgbString(),\n prefixCls: prefixCls,\n className: classNames(`${colorPresetsPrefixCls}-color`, {\n [`${colorPresetsPrefixCls}-color-checked`]: presetColor.toHexString() === (color === null || color === void 0 ? void 0 : color.toHexString()),\n [`${colorPresetsPrefixCls}-color-bright`]: isBright(presetColor, token.colorBgElevated)\n }),\n onClick: () => handleClick(presetColor)\n }))) : (/*#__PURE__*/React.createElement(\"span\", {\n className: `${colorPresetsPrefixCls}-empty`\n }, locale.presetEmpty))))\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: colorPresetsPrefixCls\n }, /*#__PURE__*/React.createElement(Collapse, {\n defaultActiveKey: activeKeys,\n ghost: true,\n items: items\n }));\n};\nexport default ColorPresets;","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","import { call, select, take, all, takeEvery, put } from 'redux-saga/effects';\nimport { LOCATION_CHANGE } from 'connected-react-router';\nimport { selectCurrentOrgId } from 'global/accessToken/selectors';\nimport { requestAndSet, sendToHelium } from 'utils/helpers';\nimport { setOrgContainerReducer } from 'routes/OrgContainer/actions';\nimport {\n setFormValidation,\n setInitialFormValues,\n} from 'global/formWrapper/actions';\nimport { selectFeatureFlag } from 'global/openpathconfig/selectors';\nimport { deleteSlideOut } from 'global/slideOuts/actions';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport { SET_USERS } from 'routes/OrgContainer/constants';\nimport moment from 'moment/moment';\nimport { DATE_TIME_FORMAT } from 'constants/Dates';\nimport { t } from 'i18next';\nimport { isShowingSitePartitioningItemsSaga } from 'utils/isShowingSitePartitioningItemsSaga';\nimport {\n FILTER_ORG_USERS,\n FORM,\n PAGE,\n REQUEST_ALARM_ACTION,\n SET_PAGE_DATA,\n} from './constants';\n\nfunction* requestAndSetPageData({ orgId, alarmIdExt }) {\n const { data: alarmData } = yield call(requestAndSet, 'describeAlarm', [\n orgId,\n alarmIdExt,\n ]);\n\n if (!alarmData) {\n yield put(\n setAlert(\n 'error',\n t(\n `Failed to retrieve the chosen alarm. The alarm may no longer exist.`,\n ),\n ),\n );\n yield put(deleteSlideOut());\n return;\n }\n\n const { timestamp: sourceEventTimestamp } = alarmData.sourceEvent;\n\n const visualActivity = [];\n\n // Load camera snapshots\n // TODO: Limit scope to JUST those who can see visual activity report here (the code below currently only checks against the webpack config)\n const orgHasFeature = yield select(\n selectFeatureFlag('SHOW_VISUAL_ACTIVITY_REPORT'),\n );\n if (orgHasFeature && alarmData.cameras) {\n const { data: cameras } = yield call(\n requestAndSet,\n 'listOrgCameras',\n [orgId],\n {\n queryStringParams: {\n sort: 'nameExt',\n order: 'asc',\n filter: `id:(${alarmData.cameras.map(({ id }) => id).join(',')})`,\n },\n },\n );\n\n const startDate = sourceEventTimestamp - 2;\n for (let i = 0; i < cameras.length; i++) {\n const { data: visualActivityData } = yield call(\n requestAndSet,\n 'listSnapshots',\n [orgId],\n {\n queryStringParams: {\n startDate,\n endDate: sourceEventTimestamp + 2,\n idExt: cameras[i].idExt,\n includeDeeplinks: true,\n },\n },\n );\n\n if (visualActivityData.length) {\n visualActivity.push(...visualActivityData);\n }\n }\n }\n\n yield put(\n setInitialFormValues(PAGE, FORM, {\n name:\n alarmData.alarmConfiguration?.name || alarmData.alarmConfigurationName,\n severity: alarmData.alarmSeverity.name,\n triggeredTime: moment(alarmData.triggeredAt).format(DATE_TIME_FORMAT),\n status: alarmData.alarmStatus.name,\n event: alarmData.eventName || '--',\n entry: alarmData.sourceEvent.data?.entries?.[0]?.name,\n site: alarmData.siteName,\n assignedUser: alarmData.assignedUser?.identity.fullName,\n hardware: '--',\n description: alarmData.alarmConfiguration?.description || '--',\n instructions: alarmData.alarmConfiguration?.instructions || '--',\n alarmActionId: null,\n note: '',\n assignedUserId: null,\n activity: alarmData.activity,\n isNoteRequiredToAcknowledge: alarmData.alarmConfiguration?.isNoteRequired,\n isEditable: !!alarmData.idExt, // This only exists when the alarm exists in the Helium cache table!\n sourceEventTimestamp,\n visualActivity,\n }),\n );\n\n yield put(\n setFormValidation(PAGE, FORM, { alarmActionId: { required: true } }),\n );\n}\n\nfunction* requestAndSetOrgUsers({ filterQuery } = {}) {\n const orgId = yield select(selectCurrentOrgId());\n\n const isShowingSitePartitioningItems = yield call(\n isShowingSitePartitioningItemsSaga,\n );\n\n return yield call(requestAndSet, 'listUsers', [orgId], {\n queryStringParams: {\n filter: 'status:(!=I)',\n limit: 50,\n ...(filterQuery && { q: filterQuery }),\n ...(isShowingSitePartitioningItems && {\n options: 'withUserSites',\n }),\n },\n createSetterAction: ({ data }) =>\n setOrgContainerReducer(SET_USERS, PAGE, data),\n });\n}\n\nfunction* requestAlarmAction({ orgId, alarmIdExt, formValues }) {\n const { alarmActionId, assignedUserId, note } = formValues;\n const payload = { alarmActionId };\n if (assignedUserId) payload.assignedUserId = assignedUserId;\n if (note) payload.note = note;\n\n yield call(sendToHelium, 'updateAlarm', [orgId, alarmIdExt], payload, {\n successMessage: t('Successfully took action on this alarm'),\n });\n\n yield call(requestAndSetPageData, { orgId, alarmIdExt });\n}\n\nfunction* rootSaga() {\n yield all([\n takeEvery(SET_PAGE_DATA, requestAndSetPageData),\n takeEvery(FILTER_ORG_USERS, requestAndSetOrgUsers),\n takeEvery(REQUEST_ALARM_ACTION, requestAlarmAction),\n ]);\n yield take(LOCATION_CHANGE);\n}\n\nexport default rootSaga;\n","module.exports = __webpack_public_path__ + \"7e7131507a20f96834597eb2de3e880a.js\";","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n const {\n focusElCls,\n focus,\n borderElCls\n } = options;\n const childCombinator = borderElCls ? '> *' : '';\n const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n return {\n [`&-item:not(${parentCls}-last-item)`]: {\n marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal()\n },\n '&-item': Object.assign(Object.assign({\n [hoverEffects]: {\n zIndex: 2\n }\n }, focusElCls ? {\n [`&${focusElCls}`]: {\n zIndex: 2\n }\n } : {}), {\n [`&[disabled] ${childCombinator}`]: {\n zIndex: 0\n }\n })\n };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n const {\n borderElCls\n } = options;\n const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n borderRadius: 0\n },\n [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n };\n}\nexport function genCompactItemStyle(token) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n focus: true\n };\n const {\n componentCls\n } = token;\n const compactCls = `${componentCls}-compact`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar DEFAULT_OFFSET = 8;\nvar DEFAULT_THRESHOLD = 3;\nvar DEFAULT_GAP = 16;\nvar useStack = function useStack(config) {\n var result = {\n offset: DEFAULT_OFFSET,\n threshold: DEFAULT_THRESHOLD,\n gap: DEFAULT_GAP\n };\n if (config && _typeof(config) === 'object') {\n var _config$offset, _config$threshold, _config$gap;\n result.offset = (_config$offset = config.offset) !== null && _config$offset !== void 0 ? _config$offset : DEFAULT_OFFSET;\n result.threshold = (_config$threshold = config.threshold) !== null && _config$threshold !== void 0 ? _config$threshold : DEFAULT_THRESHOLD;\n result.gap = (_config$gap = config.gap) !== null && _config$gap !== void 0 ? _config$gap : DEFAULT_GAP;\n }\n return [!!config, result];\n};\nexport default useStack;","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","import baseDifference from './_baseDifference.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nexport default without;\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import { featureCodes } from 'constants/featureCodes';\n\nexport const checkAuthIsUPCPartnerOrg = (\n tokenScopeItem?: Utils.ArrayElement<\n Api.Response['describeAccessToken']['tokenScopeList']\n >,\n) => {\n if (!tokenScopeItem) return false;\n\n const { scope, org } = tokenScopeItem;\n\n // Check if any package features associated with the org are for a partner\n const hasSubOrgsFeature = org?.packagePlans?.some((packagePlan) => {\n return packagePlan?.package?.packageFeatures?.some((packageFeature) =>\n [featureCodes.subOrgs, featureCodes.subOrgsVideo].includes(\n packageFeature.feature?.id || -1,\n ),\n );\n });\n\n // Check partner scopes\n const hasPartnerScope = scope?.some((scopeItem) =>\n ['s-o:w', 's-o:r', 's-o-video:w', 's-o-video:r'].includes(scopeItem),\n );\n\n return Boolean(hasPartnerScope && hasSubOrgsFeature && org?.isUnified);\n};\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.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 * 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 baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\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 baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","module.exports = __webpack_public_path__ + \"6e40b726d91e9138d9eaef6fd012c740.js\";","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsEqual;\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","import { getWindowLocation } from 'utils/window';\n\nexport const setWindowLocation = (newLocation: string) => {\n getWindowLocation().href = newLocation;\n};\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n fresh = props.fresh,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n\n // Used for forwardRef popup. Not use internal\n var externalPopupRef = React.useRef(null);\n var setPopupRef = useEvent(function (node) {\n externalPopupRef.current = node;\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n\n // Used for forwardRef target. Not use internal\n var externalForwardRef = React.useRef(null);\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n externalForwardRef.current = node;\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var lastTriggerRef = React.useRef([]);\n lastTriggerRef.current = [];\n var internalTriggerOpen = useEvent(function (nextOpen) {\n var _lastTriggerRef$curre;\n setMergedOpen(nextOpen);\n\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n // Use `lastTriggerRef` to record last open type\n if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n lastTriggerRef.current.push(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n useLayoutEffect(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState(null),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n // ============================ Refs ============================\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: externalForwardRef.current,\n popupElement: externalPopupRef.current,\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 || preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\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 (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n var onPopupPointerDown = useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter(event) {\n // Only trigger re-open when popup is visible\n if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion,\n fresh: fresh\n // Click\n ,\n onClick: onPopupClick,\n onPointerDownCapture: onPopupPointerDown\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","import * as React from 'react';\nexport const defaultPrefixCls = 'ant';\nexport const defaultIconPrefixCls = 'anticon';\nexport const Variants = ['outlined', 'borderless', 'filled'];\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `${defaultPrefixCls}-${suffixCls}` : defaultPrefixCls;\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","import omniSelectReducer from 'containers/OmniSelect/reducer';\nimport tableReducer from 'containers/Table/reducer';\nimport formReducer from 'global/formWrapper/reducer';\nimport { combineReducers } from 'redux-immutable';\nimport {\n SAVE_TABLE_STATE,\n SET_USERS,\n TABLE_STATE_REDUCER,\n USERS_REDUCER,\n} from 'routes/OrgContainer/constants';\nimport { createOrgContainerReducer } from 'routes/OrgContainer/reducer';\nimport { createNamedWrapperReducer } from 'utils/reducers';\nimport { PAGE, FORM, USERS_OMNI, TABLE } from './constants';\n\nconst reducers = {\n [FORM]: createNamedWrapperReducer(formReducer, PAGE, FORM),\n [USERS_OMNI]: createNamedWrapperReducer(omniSelectReducer, PAGE, USERS_OMNI),\n [USERS_REDUCER]: createNamedWrapperReducer(\n createOrgContainerReducer([], SET_USERS),\n PAGE,\n ),\n [TABLE]: createNamedWrapperReducer(tableReducer, PAGE),\n [TABLE_STATE_REDUCER]: createNamedWrapperReducer(\n createOrgContainerReducer({}, SAVE_TABLE_STATE),\n PAGE,\n ),\n};\n\nexport default combineReducers(reducers);\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// import canUseDom from 'rc-util/lib/Dom/canUseDom';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\n\n// We need fully clone React function here\n// to avoid webpack warning React 17 do not export `useId`\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n/**\n * Polyfill `useInsertionEffect` for React < 18\n * @param renderEffect will be executed in `useMemo`, and do not have callback\n * @param effect will be executed in `useLayoutEffect`\n * @param deps\n */\nvar useInsertionEffectPolyfill = function useInsertionEffectPolyfill(renderEffect, effect, deps) {\n React.useMemo(renderEffect, deps);\n useLayoutEffect(function () {\n return effect(true);\n }, deps);\n};\n\n/**\n * Compatible `useInsertionEffect`\n * will use `useInsertionEffect` if React version >= 18,\n * otherwise use `useInsertionEffectPolyfill`.\n */\nvar useCompatibleInsertionEffect = useInsertionEffect ? function (renderEffect, effect, deps) {\n return useInsertionEffect(function () {\n renderEffect();\n return effect();\n }, deps);\n} : useInsertionEffectPolyfill;\nexport default useCompatibleInsertionEffect;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getShadowRoot = getShadowRoot;\nexports.inShadow = inShadow;\nfunction getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nfunction inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nfunction getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\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\nmodule.exports = hashDelete;\n","module.exports = __webpack_public_path__ + \"834d28f1d0979e2614f1e8643f0b7211.js\";","module.exports = __webpack_public_path__ + \"77aaca51c1c32acaf32656d45f4dc017.js\";","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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\nmodule.exports = isArrayLike;\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '<unknown>';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement<Element>('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precendence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getDomElement, getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","import { buildFeedbackIntegration, feedbackModalIntegration, feedbackScreenshotIntegration } from '@sentry-internal/feedback';\nimport { lazyLoadIntegration } from './utils/lazyLoadIntegration.js';\n\n/** Add a widget to capture user feedback to your application. */\nconst feedbackSyncIntegration = buildFeedbackIntegration({\n lazyLoadIntegration,\n getModalIntegration: () => feedbackModalIntegration,\n getScreenshotIntegration: () => feedbackScreenshotIntegration,\n});\n\nexport { feedbackSyncIntegration };\n//# sourceMappingURL=feedbackSync.js.map\n","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar string = function string(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\nexport default string;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.reset-password-email{align-items:center;display:flex;flex-direction:column;padding-top:2.2857142857rem;margin-bottom:0.5714285714rem}.reset-password-email__email-sent{margin-top:50vh}.reset-password-email__email-sent div{border-radius:2.2857142857rem !important;padding:0.5714285714rem 0.8571428571rem !important}.reset-password-email__info{padding-top:1.1428571429rem}.reset-password-email p{color:var(--colorText);margin-bottom:0.1428571429rem;text-align:center;font-size:0.8571428571rem !important}.reset-password-email__email{font-weight:bold}.reset-password-email__resend-button{margin-top:1.1428571429rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/ForgotPasswordFlow/ResetPasswordRequest.scss\"],\"names\":[],\"mappings\":\"AAEA,sBACE,kBAAA,CACA,YAAA,CACA,qBAAA,CACA,2BAAA,CACA,6BAAA,CAEA,kCACE,eAAA,CAEA,sCACE,wCAAA,CACA,kDAAA,CAIJ,4BACE,2BAAA,CAGF,wBACE,sBAAA,CACA,6BAAA,CACA,iBAAA,CAEA,oCAAA,CAGF,6BACE,gBAAA,CAGF,qCACE,0BAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.reset-password-email {\\n align-items: center;\\n display: flex;\\n flex-direction: column;\\n padding-top: common.toRem(32);\\n margin-bottom: common.toRem(8);\\n\\n &__email-sent {\\n margin-top: 50vh;\\n\\n div {\\n border-radius: common.toRem(32) !important;\\n padding: common.toRem(8) common.toRem(12) !important;\\n }\\n }\\n\\n &__info {\\n padding-top: common.toRem(16);\\n }\\n\\n p {\\n color: var(--colorText);\\n margin-bottom: common.toRem(2);\\n text-align: center;\\n\\n font-size: common.toRem(12) !important;\\n }\\n\\n &__email {\\n font-weight: bold;\\n }\\n\\n &__resend-button {\\n margin-top: common.toRem(16);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * returns true if the given object is a promise\n */\nexport function isPromise(obj) {\n return obj && typeof obj.then === 'function';\n}\nexport var PROMISE_RESOLVED_FALSE = Promise.resolve(false);\nexport var PROMISE_RESOLVED_TRUE = Promise.resolve(true);\nexport var PROMISE_RESOLVED_VOID = Promise.resolve();\nexport function sleep(time, resolveWith) {\n if (!time) time = 0;\n return new Promise(function (res) {\n return setTimeout(function () {\n return res(resolveWith);\n }, time);\n });\n}\nexport function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\n/**\n * https://stackoverflow.com/a/8084248\n */\nexport function randomToken() {\n return Math.random().toString(36).substring(2);\n}\nvar lastMs = 0;\n\n/**\n * Returns the current unix time in micro-seconds,\n * WARNING: This is a pseudo-function\n * Performance.now is not reliable in webworkers, so we just make sure to never return the same time.\n * This is enough in browsers, and this function will not be used in nodejs.\n * The main reason for this hack is to ensure that BroadcastChannel behaves equal to production when it is used in fast-running unit tests.\n */\nexport function microSeconds() {\n var ret = Date.now() * 1000; // milliseconds to microseconds\n if (ret <= lastMs) {\n ret = lastMs + 1;\n }\n lastMs = ret;\n return ret;\n}\n\n/**\n * Check if WebLock API is supported.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API\n */\nexport function supportsWebLockAPI() {\n if (typeof navigator !== 'undefined' && typeof navigator.locks !== 'undefined' && typeof navigator.locks.request === 'function') {\n return true;\n } else {\n return false;\n }\n}","import { microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'native';\nexport function create(channelName) {\n var state = {\n time: micro(),\n messagesCallback: null,\n bc: new BroadcastChannel(channelName),\n subFns: [] // subscriberFunctions\n };\n\n state.bc.onmessage = function (msgEvent) {\n if (state.messagesCallback) {\n state.messagesCallback(msgEvent.data);\n }\n };\n return state;\n}\nexport function close(channelState) {\n channelState.bc.close();\n channelState.subFns = [];\n}\nexport function postMessage(channelState, messageJson) {\n try {\n channelState.bc.postMessage(messageJson, false);\n return PROMISE_RESOLVED_VOID;\n } catch (err) {\n return Promise.reject(err);\n }\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n // Deno runtime\n // eslint-disable-next-line\n if (typeof globalThis !== 'undefined' && globalThis.Deno && globalThis.Deno.args) {\n return true;\n }\n\n // Browser runtime\n if ((typeof window !== 'undefined' || typeof self !== 'undefined') && typeof BroadcastChannel === 'function') {\n if (BroadcastChannel._pubkey) {\n throw new Error('BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill');\n }\n return true;\n } else {\n return false;\n }\n}\nexport function averageResponseTime() {\n return 150;\n}\nexport var NativeMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * this is a set which automatically forgets\n * a given entry when a new entry is set and the ttl\n * of the old one is over\n */\nexport class ObliviousSet {\n ttl;\n map = new Map();\n /**\n * Creating calls to setTimeout() is expensive,\n * so we only do that if there is not timeout already open.\n */\n _to = false;\n constructor(ttl) {\n this.ttl = ttl;\n }\n has(value) {\n return this.map.has(value);\n }\n add(value) {\n this.map.set(value, now());\n /**\n * When a new value is added,\n * start the cleanup at the next tick\n * to not block the cpu for more important stuff\n * that might happen.\n */\n if (!this._to) {\n this._to = true;\n setTimeout(() => {\n this._to = false;\n removeTooOldValues(this);\n }, 0);\n }\n }\n clear() {\n this.map.clear();\n }\n}\n/**\n * Removes all entries from the set\n * where the TTL has expired\n */\nexport function removeTooOldValues(obliviousSet) {\n const olderThen = now() - obliviousSet.ttl;\n const iterator = obliviousSet.map[Symbol.iterator]();\n /**\n * Because we can assume the new values are added at the bottom,\n * we start from the top and stop as soon as we reach a non-too-old value.\n */\n while (true) {\n const next = iterator.next().value;\n if (!next) {\n return; // no more elements\n }\n const value = next[0];\n const time = next[1];\n if (time < olderThen) {\n obliviousSet.map.delete(value);\n }\n else {\n // We reached a value that is not old enough\n return;\n }\n }\n}\nexport function now() {\n return Date.now();\n}\n//# sourceMappingURL=index.js.map","export function fillOptionsWithDefaults() {\n var originalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = JSON.parse(JSON.stringify(originalOptions));\n\n // main\n if (typeof options.webWorkerSupport === 'undefined') options.webWorkerSupport = true;\n\n // indexed-db\n if (!options.idb) options.idb = {};\n // after this time the messages get deleted\n if (!options.idb.ttl) options.idb.ttl = 1000 * 45;\n if (!options.idb.fallbackInterval) options.idb.fallbackInterval = 150;\n // handles abrupt db onclose events.\n if (originalOptions.idb && typeof originalOptions.idb.onclose === 'function') options.idb.onclose = originalOptions.idb.onclose;\n\n // localstorage\n if (!options.localstorage) options.localstorage = {};\n if (!options.localstorage.removeTimeout) options.localstorage.removeTimeout = 1000 * 60;\n\n // custom methods\n if (originalOptions.methods) options.methods = originalOptions.methods;\n\n // node\n if (!options.node) options.node = {};\n if (!options.node.ttl) options.node.ttl = 1000 * 60 * 2; // 2 minutes;\n /**\n * On linux use 'ulimit -Hn' to get the limit of open files.\n * On ubuntu this was 4096 for me, so we use half of that as maxParallelWrites default.\n */\n if (!options.node.maxParallelWrites) options.node.maxParallelWrites = 2048;\n if (typeof options.node.useFastPath === 'undefined') options.node.useFastPath = true;\n return options;\n}","/**\n * this method uses indexeddb to store the messages\n * There is currently no observerAPI for idb\n * @link https://github.com/w3c/IndexedDB/issues/51\n * \n * When working on this, ensure to use these performance optimizations:\n * @link https://rxdb.info/slow-indexeddb.html\n */\n\nimport { sleep, randomInt, randomToken, microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nvar DB_PREFIX = 'pubkey.broadcast-channel-0-';\nvar OBJECT_STORE_ID = 'messages';\n\n/**\n * Use relaxed durability for faster performance on all transactions.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\nexport var TRANSACTION_SETTINGS = {\n durability: 'relaxed'\n};\nexport var type = 'idb';\nexport function getIdb() {\n if (typeof indexedDB !== 'undefined') return indexedDB;\n if (typeof window !== 'undefined') {\n if (typeof window.mozIndexedDB !== 'undefined') return window.mozIndexedDB;\n if (typeof window.webkitIndexedDB !== 'undefined') return window.webkitIndexedDB;\n if (typeof window.msIndexedDB !== 'undefined') return window.msIndexedDB;\n }\n return false;\n}\n\n/**\n * If possible, we should explicitly commit IndexedDB transactions\n * for better performance.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\nexport function commitIndexedDBTransaction(tx) {\n if (tx.commit) {\n tx.commit();\n }\n}\nexport function createDatabase(channelName) {\n var IndexedDB = getIdb();\n\n // create table\n var dbName = DB_PREFIX + channelName;\n\n /**\n * All IndexedDB databases are opened without version\n * because it is a bit faster, especially on firefox\n * @link http://nparashuram.com/IndexedDB/perf/#Open%20Database%20with%20version\n */\n var openRequest = IndexedDB.open(dbName);\n openRequest.onupgradeneeded = function (ev) {\n var db = ev.target.result;\n db.createObjectStore(OBJECT_STORE_ID, {\n keyPath: 'id',\n autoIncrement: true\n });\n };\n return new Promise(function (res, rej) {\n openRequest.onerror = function (ev) {\n return rej(ev);\n };\n openRequest.onsuccess = function () {\n res(openRequest.result);\n };\n });\n}\n\n/**\n * writes the new message to the database\n * so other readers can find it\n */\nexport function writeMessage(db, readerUuid, messageJson) {\n var time = Date.now();\n var writeObject = {\n uuid: readerUuid,\n time: time,\n data: messageJson\n };\n var tx = db.transaction([OBJECT_STORE_ID], 'readwrite', TRANSACTION_SETTINGS);\n return new Promise(function (res, rej) {\n tx.oncomplete = function () {\n return res();\n };\n tx.onerror = function (ev) {\n return rej(ev);\n };\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n objectStore.add(writeObject);\n commitIndexedDBTransaction(tx);\n });\n}\nexport function getAllMessages(db) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n ret.push(cursor.value);\n //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n cursor[\"continue\"]();\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function getMessagesHigherThan(db, lastCursorId) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n\n /**\n * Optimization shortcut,\n * if getAll() can be used, do not use a cursor.\n * @link https://rxdb.info/slow-indexeddb.html\n */\n if (objectStore.getAll) {\n var getAllRequest = objectStore.getAll(keyRangeValue);\n return new Promise(function (res, rej) {\n getAllRequest.onerror = function (err) {\n return rej(err);\n };\n getAllRequest.onsuccess = function (e) {\n res(e.target.result);\n };\n });\n }\n function openCursor() {\n // Occasionally Safari will fail on IDBKeyRange.bound, this\n // catches that error, having it open the cursor to the first\n // item. When it gets data it will advance to the desired key.\n try {\n keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n return objectStore.openCursor(keyRangeValue);\n } catch (e) {\n return objectStore.openCursor();\n }\n }\n return new Promise(function (res, rej) {\n var openCursorRequest = openCursor();\n openCursorRequest.onerror = function (err) {\n return rej(err);\n };\n openCursorRequest.onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n if (cursor.value.id < lastCursorId + 1) {\n cursor[\"continue\"](lastCursorId + 1);\n } else {\n ret.push(cursor.value);\n cursor[\"continue\"]();\n }\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function removeMessagesById(channelState, ids) {\n if (channelState.closed) {\n return Promise.resolve([]);\n }\n var tx = channelState.db.transaction(OBJECT_STORE_ID, 'readwrite', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n return Promise.all(ids.map(function (id) {\n var deleteRequest = objectStore[\"delete\"](id);\n return new Promise(function (res) {\n deleteRequest.onsuccess = function () {\n return res();\n };\n });\n }));\n}\nexport function getOldMessages(db, ttl) {\n var olderThen = Date.now() - ttl;\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n var msgObk = cursor.value;\n if (msgObk.time < olderThen) {\n ret.push(msgObk);\n //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n cursor[\"continue\"]();\n } else {\n // no more old messages,\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n } else {\n res(ret);\n }\n };\n });\n}\nexport function cleanOldMessages(channelState) {\n return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function (tooOld) {\n return removeMessagesById(channelState, tooOld.map(function (msg) {\n return msg.id;\n }));\n });\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n return createDatabase(channelName).then(function (db) {\n var state = {\n closed: false,\n lastCursorId: 0,\n channelName: channelName,\n options: options,\n uuid: randomToken(),\n /**\n * emittedMessagesIds\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n eMIs: new ObliviousSet(options.idb.ttl * 2),\n // ensures we do not read messages in parallel\n writeBlockPromise: PROMISE_RESOLVED_VOID,\n messagesCallback: null,\n readQueuePromises: [],\n db: db\n };\n\n /**\n * Handle abrupt closes that do not originate from db.close().\n * This could happen, for example, if the underlying storage is\n * removed or if the user clears the database in the browser's\n * history preferences.\n */\n db.onclose = function () {\n state.closed = true;\n if (options.idb.onclose) options.idb.onclose();\n };\n\n /**\n * if service-workers are used,\n * we have no 'storage'-event if they post a message,\n * therefore we also have to set an interval\n */\n _readLoop(state);\n return state;\n });\n}\nfunction _readLoop(state) {\n if (state.closed) return;\n readNewMessages(state).then(function () {\n return sleep(state.options.idb.fallbackInterval);\n }).then(function () {\n return _readLoop(state);\n });\n}\nfunction _filterMessage(msgObj, state) {\n if (msgObj.uuid === state.uuid) return false; // send by own\n if (state.eMIs.has(msgObj.id)) return false; // already emitted\n if (msgObj.data.time < state.messagesCallbackTime) return false; // older then onMessageCallback\n return true;\n}\n\n/**\n * reads all new messages from the database and emits them\n */\nfunction readNewMessages(state) {\n // channel already closed\n if (state.closed) return PROMISE_RESOLVED_VOID;\n\n // if no one is listening, we do not need to scan for new messages\n if (!state.messagesCallback) return PROMISE_RESOLVED_VOID;\n return getMessagesHigherThan(state.db, state.lastCursorId).then(function (newerMessages) {\n var useMessages = newerMessages\n /**\n * there is a bug in iOS where the msgObj can be undefined sometimes\n * so we filter them out\n * @link https://github.com/pubkey/broadcast-channel/issues/19\n */.filter(function (msgObj) {\n return !!msgObj;\n }).map(function (msgObj) {\n if (msgObj.id > state.lastCursorId) {\n state.lastCursorId = msgObj.id;\n }\n return msgObj;\n }).filter(function (msgObj) {\n return _filterMessage(msgObj, state);\n }).sort(function (msgObjA, msgObjB) {\n return msgObjA.time - msgObjB.time;\n }); // sort by time\n useMessages.forEach(function (msgObj) {\n if (state.messagesCallback) {\n state.eMIs.add(msgObj.id);\n state.messagesCallback(msgObj.data);\n }\n });\n return PROMISE_RESOLVED_VOID;\n });\n}\nexport function close(channelState) {\n channelState.closed = true;\n channelState.db.close();\n}\nexport function postMessage(channelState, messageJson) {\n channelState.writeBlockPromise = channelState.writeBlockPromise.then(function () {\n return writeMessage(channelState.db, channelState.uuid, messageJson);\n }).then(function () {\n if (randomInt(0, 10) === 0) {\n /* await (do not await) */\n cleanOldMessages(channelState);\n }\n });\n return channelState.writeBlockPromise;\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n readNewMessages(channelState);\n}\nexport function canBeUsed() {\n return !!getIdb();\n}\nexport function averageResponseTime(options) {\n return options.idb.fallbackInterval * 2;\n}\nexport var IndexedDBMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * A localStorage-only method which uses localstorage and its 'storage'-event\n * This does not work inside webworkers because they have no access to localstorage\n * This is basically implemented to support IE9 or your grandmother's toaster.\n * @link https://caniuse.com/#feat=namevalue-storage\n * @link https://caniuse.com/#feat=indexeddb\n */\n\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nimport { sleep, randomToken, microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nvar KEY_PREFIX = 'pubkey.broadcastChannel-';\nexport var type = 'localstorage';\n\n/**\n * copied from crosstab\n * @link https://github.com/tejacques/crosstab/blob/master/src/crosstab.js#L32\n */\nexport function getLocalStorage() {\n var localStorage;\n if (typeof window === 'undefined') return null;\n try {\n localStorage = window.localStorage;\n localStorage = window['ie8-eventlistener/storage'] || window.localStorage;\n } catch (e) {\n // New versions of Firefox throw a Security exception\n // if cookies are disabled. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1028153\n }\n return localStorage;\n}\nexport function storageKey(channelName) {\n return KEY_PREFIX + channelName;\n}\n\n/**\n* writes the new message to the storage\n* and fires the storage-event so other readers can find it\n*/\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n sleep().then(function () {\n var key = storageKey(channelState.channelName);\n var writeObj = {\n token: randomToken(),\n time: Date.now(),\n data: messageJson,\n uuid: channelState.uuid\n };\n var value = JSON.stringify(writeObj);\n getLocalStorage().setItem(key, value);\n\n /**\n * StorageEvent does not fire the 'storage' event\n * in the window that changes the state of the local storage.\n * So we fire it manually\n */\n var ev = document.createEvent('Event');\n ev.initEvent('storage', true, true);\n ev.key = key;\n ev.newValue = value;\n window.dispatchEvent(ev);\n res();\n });\n });\n}\nexport function addStorageEventListener(channelName, fn) {\n var key = storageKey(channelName);\n var listener = function listener(ev) {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue));\n }\n };\n window.addEventListener('storage', listener);\n return listener;\n}\nexport function removeStorageEventListener(listener) {\n window.removeEventListener('storage', listener);\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n if (!canBeUsed()) {\n throw new Error('BroadcastChannel: localstorage cannot be used');\n }\n var uuid = randomToken();\n\n /**\n * eMIs\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n var eMIs = new ObliviousSet(options.localstorage.removeTimeout);\n var state = {\n channelName: channelName,\n uuid: uuid,\n eMIs: eMIs // emittedMessagesIds\n };\n\n state.listener = addStorageEventListener(channelName, function (msgObj) {\n if (!state.messagesCallback) return; // no listener\n if (msgObj.uuid === uuid) return; // own message\n if (!msgObj.token || eMIs.has(msgObj.token)) return; // already emitted\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return; // too old\n\n eMIs.add(msgObj.token);\n state.messagesCallback(msgObj.data);\n });\n return state;\n}\nexport function close(channelState) {\n removeStorageEventListener(channelState.listener);\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n var ls = getLocalStorage();\n if (!ls) return false;\n try {\n var key = '__broadcastchannel_check';\n ls.setItem(key, 'works');\n ls.removeItem(key);\n } catch (e) {\n // Safari 10 in private mode will not allow write access to local\n // storage and fail with a QuotaExceededError. See\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Private_Browsing_Incognito_modes\n return false;\n }\n return true;\n}\nexport function averageResponseTime() {\n var defaultTime = 120;\n var userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.includes('safari') && !userAgent.includes('chrome')) {\n // safari is much slower so this time is higher\n return defaultTime * 2;\n }\n return defaultTime;\n}\nexport var LocalstorageMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'simulate';\nvar SIMULATE_CHANNELS = new Set();\nexport function create(channelName) {\n var state = {\n time: microSeconds(),\n name: channelName,\n messagesCallback: null\n };\n SIMULATE_CHANNELS.add(state);\n return state;\n}\nexport function close(channelState) {\n SIMULATE_CHANNELS[\"delete\"](channelState);\n}\nexport var SIMULATE_DELAY_TIME = 5;\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n return setTimeout(function () {\n var channelArray = Array.from(SIMULATE_CHANNELS);\n channelArray.forEach(function (channel) {\n if (channel.name === channelState.name &&\n // has same name\n channel !== channelState &&\n // not own channel\n !!channel.messagesCallback &&\n // has subscribers\n channel.time < messageJson.time // channel not created after postMessage() call\n ) {\n channel.messagesCallback(messageJson);\n }\n });\n res();\n }, SIMULATE_DELAY_TIME);\n });\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n return true;\n}\nexport function averageResponseTime() {\n return SIMULATE_DELAY_TIME;\n}\nexport var SimulateMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { NativeMethod } from './methods/native.js';\nimport { IndexedDBMethod } from './methods/indexed-db.js';\nimport { LocalstorageMethod } from './methods/localstorage.js';\nimport { SimulateMethod } from './methods/simulate.js';\n// the line below will be removed from es5/browser builds\n\n// order is important\nvar METHODS = [NativeMethod,\n// fastest\nIndexedDBMethod, LocalstorageMethod];\nexport function chooseMethod(options) {\n var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean);\n\n // the line below will be removed from es5/browser builds\n\n // directly chosen\n if (options.type) {\n if (options.type === 'simulate') {\n // only use simulate-method if directly chosen\n return SimulateMethod;\n }\n var ret = chooseMethods.find(function (m) {\n return m.type === options.type;\n });\n if (!ret) throw new Error('method-type ' + options.type + ' not found');else return ret;\n }\n\n /**\n * if no webworker support is needed,\n * remove idb from the list so that localstorage will be chosen\n */\n if (!options.webWorkerSupport) {\n chooseMethods = chooseMethods.filter(function (m) {\n return m.type !== 'idb';\n });\n }\n var useMethod = chooseMethods.find(function (method) {\n return method.canBeUsed();\n });\n if (!useMethod) {\n throw new Error(\"No usable method found in \" + JSON.stringify(METHODS.map(function (m) {\n return m.type;\n })));\n } else {\n return useMethod;\n }\n}","import { isPromise, PROMISE_RESOLVED_FALSE, PROMISE_RESOLVED_VOID } from './util.js';\nimport { chooseMethod } from './method-chooser.js';\nimport { fillOptionsWithDefaults } from './options.js';\n\n/**\n * Contains all open channels,\n * used in tests to ensure everything is closed.\n */\nexport var OPEN_BROADCAST_CHANNELS = new Set();\nvar lastId = 0;\nexport var BroadcastChannel = function BroadcastChannel(name, options) {\n // identifier of the channel to debug stuff\n this.id = lastId++;\n OPEN_BROADCAST_CHANNELS.add(this);\n this.name = name;\n if (ENFORCED_OPTIONS) {\n options = ENFORCED_OPTIONS;\n }\n this.options = fillOptionsWithDefaults(options);\n this.method = chooseMethod(this.options);\n\n // isListening\n this._iL = false;\n\n /**\n * _onMessageListener\n * setting onmessage twice,\n * will overwrite the first listener\n */\n this._onML = null;\n\n /**\n * _addEventListeners\n */\n this._addEL = {\n message: [],\n internal: []\n };\n\n /**\n * Unsent message promises\n * where the sending is still in progress\n * @type {Set<Promise>}\n */\n this._uMP = new Set();\n\n /**\n * _beforeClose\n * array of promises that will be awaited\n * before the channel is closed\n */\n this._befC = [];\n\n /**\n * _preparePromise\n */\n this._prepP = null;\n _prepareChannel(this);\n};\n\n// STATICS\n\n/**\n * used to identify if someone overwrites\n * window.BroadcastChannel with this\n * See methods/native.js\n */\nBroadcastChannel._pubkey = true;\n\n/**\n * clears the tmp-folder if is node\n * @return {Promise<boolean>} true if has run, false if not node\n */\nexport function clearNodeFolder(options) {\n options = fillOptionsWithDefaults(options);\n var method = chooseMethod(options);\n if (method.type === 'node') {\n return method.clearNodeFolder().then(function () {\n return true;\n });\n } else {\n return PROMISE_RESOLVED_FALSE;\n }\n}\n\n/**\n * if set, this method is enforced,\n * no mather what the options are\n */\nvar ENFORCED_OPTIONS;\nexport function enforceOptions(options) {\n ENFORCED_OPTIONS = options;\n}\n\n// PROTOTYPE\nBroadcastChannel.prototype = {\n postMessage: function postMessage(msg) {\n if (this.closed) {\n throw new Error('BroadcastChannel.postMessage(): ' + 'Cannot post message after channel has closed ' +\n /**\n * In the past when this error appeared, it was really hard to debug.\n * So now we log the msg together with the error so it at least\n * gives some clue about where in your application this happens.\n */\n JSON.stringify(msg));\n }\n return _post(this, 'message', msg);\n },\n postInternal: function postInternal(msg) {\n return _post(this, 'internal', msg);\n },\n set onmessage(fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n _removeListenerObject(this, 'message', this._onML);\n if (fn && typeof fn === 'function') {\n this._onML = listenObj;\n _addListenerObject(this, 'message', listenObj);\n } else {\n this._onML = null;\n }\n },\n addEventListener: function addEventListener(type, fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n _addListenerObject(this, type, listenObj);\n },\n removeEventListener: function removeEventListener(type, fn) {\n var obj = this._addEL[type].find(function (obj) {\n return obj.fn === fn;\n });\n _removeListenerObject(this, type, obj);\n },\n close: function close() {\n var _this = this;\n if (this.closed) {\n return;\n }\n OPEN_BROADCAST_CHANNELS[\"delete\"](this);\n this.closed = true;\n var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID;\n this._onML = null;\n this._addEL.message = [];\n return awaitPrepare\n // wait until all current sending are processed\n .then(function () {\n return Promise.all(Array.from(_this._uMP));\n })\n // run before-close hooks\n .then(function () {\n return Promise.all(_this._befC.map(function (fn) {\n return fn();\n }));\n })\n // close the channel\n .then(function () {\n return _this.method.close(_this._state);\n });\n },\n get type() {\n return this.method.type;\n },\n get isClosed() {\n return this.closed;\n }\n};\n\n/**\n * Post a message over the channel\n * @returns {Promise} that resolved when the message sending is done\n */\nfunction _post(broadcastChannel, type, msg) {\n var time = broadcastChannel.method.microSeconds();\n var msgObj = {\n time: time,\n type: type,\n data: msg\n };\n var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID;\n return awaitPrepare.then(function () {\n var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj);\n\n // add/remove to unsent messages list\n broadcastChannel._uMP.add(sendPromise);\n sendPromise[\"catch\"]().then(function () {\n return broadcastChannel._uMP[\"delete\"](sendPromise);\n });\n return sendPromise;\n });\n}\nfunction _prepareChannel(channel) {\n var maybePromise = channel.method.create(channel.name, channel.options);\n if (isPromise(maybePromise)) {\n channel._prepP = maybePromise;\n maybePromise.then(function (s) {\n // used in tests to simulate slow runtime\n /*if (channel.options.prepareDelay) {\n await new Promise(res => setTimeout(res, this.options.prepareDelay));\n }*/\n channel._state = s;\n });\n } else {\n channel._state = maybePromise;\n }\n}\nfunction _hasMessageListeners(channel) {\n if (channel._addEL.message.length > 0) return true;\n if (channel._addEL.internal.length > 0) return true;\n return false;\n}\nfunction _addListenerObject(channel, type, obj) {\n channel._addEL[type].push(obj);\n _startListening(channel);\n}\nfunction _removeListenerObject(channel, type, obj) {\n channel._addEL[type] = channel._addEL[type].filter(function (o) {\n return o !== obj;\n });\n _stopListening(channel);\n}\nfunction _startListening(channel) {\n if (!channel._iL && _hasMessageListeners(channel)) {\n // someone is listening, start subscribing\n\n var listenerFn = function listenerFn(msgObj) {\n channel._addEL[msgObj.type].forEach(function (listenerObject) {\n if (msgObj.time >= listenerObject.time) {\n listenerObject.fn(msgObj.data);\n }\n });\n };\n var time = channel.method.microSeconds();\n if (channel._prepP) {\n channel._prepP.then(function () {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n });\n } else {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n }\n }\n}\nfunction _stopListening(channel) {\n if (channel._iL && !_hasMessageListeners(channel)) {\n // no one is listening, stop subscribing\n channel._iL = false;\n var time = channel.method.microSeconds();\n channel.method.onMessage(channel._state, null, time);\n }\n}","import { addBrowser } from './browser.js';\nimport { addNode } from './node.js';\n\n/**\n * Use the code directly to prevent import problems\n * with the detect-node package.\n * @link https://github.com/iliakan/detect-node/blob/master/index.js\n */\nvar isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\nvar USE_METHOD = isNode ? addNode : addBrowser;\nvar LISTENERS = new Set();\nvar startedListening = false;\nfunction startListening() {\n if (startedListening) {\n return;\n }\n startedListening = true;\n USE_METHOD(runAll);\n}\nexport function add(fn) {\n startListening();\n if (typeof fn !== 'function') {\n throw new Error('Listener is no function');\n }\n LISTENERS.add(fn);\n var addReturn = {\n remove: function remove() {\n return LISTENERS[\"delete\"](fn);\n },\n run: function run() {\n LISTENERS[\"delete\"](fn);\n return fn();\n }\n };\n return addReturn;\n}\nexport function runAll() {\n var promises = [];\n LISTENERS.forEach(function (fn) {\n promises.push(fn());\n LISTENERS[\"delete\"](fn);\n });\n return Promise.all(promises);\n}\nexport function removeAll() {\n LISTENERS.clear();\n}\nexport function getSize() {\n return LISTENERS.size;\n}","module.exports = __webpack_public_path__ + \"624769dc77b43d9abfa0a06bd4504787.js\";","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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\nmodule.exports = isArguments;\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","import { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.forgot-password-information{align-items:center;display:flex;flex-direction:column;margin-bottom:2.8571428571rem}.forgot-password-information p{color:var(--colorText);text-align:center;font-size:0.8571428571rem !important}.email-form{width:22.2857142857rem}.email-form__submit{margin-top:1.1428571429rem;width:22.2857142857rem}`, \"\",{\"version\":3,\"sources\":[\"webpack://./altaLoginApp/components/ForgotPasswordFlow/ForgotPasswordForm.scss\",\"webpack://./altaLoginApp/components/global.scss\"],\"names\":[],\"mappings\":\"AAGA,6BACE,kBAAA,CACA,YAAA,CACA,qBAAA,CACA,6BAAA,CAEA,+BACE,sBAAA,CACA,iBAAA,CAEA,oCAAA,CAIJ,YACE,sBCfwB,CDiBxB,oBACE,0BAAA,CACA,sBCnBsB\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n@use '../global.scss';\\n\\n.forgot-password-information {\\n align-items: center;\\n display: flex;\\n flex-direction: column;\\n margin-bottom: common.toRem(40);\\n\\n p {\\n color: var(--colorText);\\n text-align: center;\\n\\n font-size: common.toRem(12) !important;\\n }\\n}\\n\\n.email-form {\\n width: global.$unification-login-width;\\n\\n &__submit {\\n margin-top: common.toRem(16);\\n width: global.$unification-login-width;\\n }\\n}\\n\",\"@use 'assets/scss/common';\\n\\n$unification-login-container-width: common.toRem(360);\\n$unification-login-width: common.toRem(312);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-slider .ant-slider-mark-text{font-size:12px}.op-slider .ant-slider-track{background-color:var(--colorPrimary)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpSlider/OpSlider.scss\"],\"names\":[],\"mappings\":\"AACE,iCACE,cAAA,CAGF,6BACE,oCAAA\",\"sourcesContent\":[\".op-slider {\\n .ant-slider-mark-text {\\n font-size: 12px;\\n }\\n\\n .ant-slider-track {\\n background-color: var(--colorPrimary);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\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","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","var map = {\n\t\"./assets/favicons-prod/android-chrome-192x192.png\": 640135,\n\t\"./assets/favicons-prod/android-chrome-512x512.png\": 945087,\n\t\"./assets/favicons-prod/apple-touch-icon.png\": 317936,\n\t\"./assets/favicons-prod/browserconfig.xml\": 46126,\n\t\"./assets/favicons-prod/favicon-16x16.png\": 486383,\n\t\"./assets/favicons-prod/favicon-32x32.png\": 286695,\n\t\"./assets/favicons-prod/favicon-alert-16x16.png\": 445314,\n\t\"./assets/favicons-prod/favicon-alert-32x32.png\": 38262,\n\t\"./assets/favicons-prod/favicon-alert.ico\": 316293,\n\t\"./assets/favicons-prod/favicon.ico\": 165560,\n\t\"./assets/favicons-prod/mstile-150x150.png\": 39819,\n\t\"./assets/favicons-prod/site.webmanifest\": 568101,\n\t\"./assets/favicons-prod/upc-favicon.ico\": 675221\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 878514;","import { defineIntegration } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nconst httpContextIntegration = defineIntegration(() => {\n return {\n name: 'HttpContext',\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n});\n\nexport { httpContextIntegration };\n//# sourceMappingURL=httpcontext.js.map\n","module.exports = __webpack_public_path__ + \"5352ecd8e5f1a2637b48e18cc406edb1.js\";","module.exports = __webpack_public_path__ + \"3ea020c57c2bbf457a8497df313b2e5c.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction splitValues(value) {\n if (typeof value === 'number') {\n return [[value], false];\n }\n var rawStyle = String(value).trim();\n var importantCells = rawStyle.match(/(.*)(!important)/);\n var splitStyle = (importantCells ? importantCells[1] : rawStyle).trim().split(/\\s+/);\n\n // Combine styles split in brackets, like `calc(1px + 2px)`\n var temp = [];\n var brackets = 0;\n return [splitStyle.reduce(function (list, item) {\n if (item.includes('(') || item.includes(')')) {\n var left = item.split('(').length - 1;\n var right = item.split(')').length - 1;\n brackets += left - right;\n }\n if (brackets >= 0) temp.push(item);\n if (brackets === 0) {\n list.push(temp.join(' '));\n temp = [];\n }\n return list;\n }, []), !!importantCells];\n}\nfunction noSplit(list) {\n list.notSplit = true;\n return list;\n}\nvar keyMap = {\n // Inset\n inset: ['top', 'right', 'bottom', 'left'],\n insetBlock: ['top', 'bottom'],\n insetBlockStart: ['top'],\n insetBlockEnd: ['bottom'],\n insetInline: ['left', 'right'],\n insetInlineStart: ['left'],\n insetInlineEnd: ['right'],\n // Margin\n marginBlock: ['marginTop', 'marginBottom'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n marginInline: ['marginLeft', 'marginRight'],\n marginInlineStart: ['marginLeft'],\n marginInlineEnd: ['marginRight'],\n // Padding\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom'],\n paddingInline: ['paddingLeft', 'paddingRight'],\n paddingInlineStart: ['paddingLeft'],\n paddingInlineEnd: ['paddingRight'],\n // Border\n borderBlock: noSplit(['borderTop', 'borderBottom']),\n borderBlockStart: noSplit(['borderTop']),\n borderBlockEnd: noSplit(['borderBottom']),\n borderInline: noSplit(['borderLeft', 'borderRight']),\n borderInlineStart: noSplit(['borderLeft']),\n borderInlineEnd: noSplit(['borderRight']),\n // Border width\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndWidth: ['borderBottomWidth'],\n borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n borderInlineStartWidth: ['borderLeftWidth'],\n borderInlineEndWidth: ['borderRightWidth'],\n // Border style\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n borderInlineStartStyle: ['borderLeftStyle'],\n borderInlineEndStyle: ['borderRightStyle'],\n // Border color\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockEndColor: ['borderBottomColor'],\n borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n borderInlineStartColor: ['borderLeftColor'],\n borderInlineEndColor: ['borderRightColor'],\n // Border radius\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius']\n};\nfunction wrapImportantAndSkipCheck(value, important) {\n var parsedValue = value;\n if (important) {\n parsedValue = \"\".concat(parsedValue, \" !important\");\n }\n return {\n _skip_check_: true,\n value: parsedValue\n };\n}\n\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\nvar transform = {\n visit: function visit(cssObj) {\n var clone = {};\n Object.keys(cssObj).forEach(function (key) {\n var value = cssObj[key];\n var matchValue = keyMap[key];\n if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n var _splitValues = splitValues(value),\n _splitValues2 = _slicedToArray(_splitValues, 2),\n _values = _splitValues2[0],\n _important = _splitValues2[1];\n if (matchValue.length && matchValue.notSplit) {\n // not split means always give same value like border\n matchValue.forEach(function (matchKey) {\n clone[matchKey] = wrapImportantAndSkipCheck(value, _important);\n });\n } else if (matchValue.length === 1) {\n // Handle like `marginBlockStart` => `marginTop`\n clone[matchValue[0]] = wrapImportantAndSkipCheck(_values[0], _important);\n } else if (matchValue.length === 2) {\n // Handle like `marginBlock` => `marginTop` & `marginBottom`\n matchValue.forEach(function (matchKey, index) {\n var _values$index;\n clone[matchKey] = wrapImportantAndSkipCheck((_values$index = _values[index]) !== null && _values$index !== void 0 ? _values$index : _values[0], _important);\n });\n } else if (matchValue.length === 4) {\n // Handle like `inset` => `top` & `right` & `bottom` & `left`\n matchValue.forEach(function (matchKey, index) {\n var _ref, _values$index2;\n clone[matchKey] = wrapImportantAndSkipCheck((_ref = (_values$index2 = _values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : _values[index - 2]) !== null && _ref !== void 0 ? _ref : _values[0], _important);\n });\n } else {\n clone[key] = value;\n }\n } else {\n clone[key] = value;\n }\n });\n return clone;\n }\n};\nexport default transform;","export const SparkIcon = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.70312 15.4609C7.55729 15.4609 7.43229 15.4115 7.32812 15.3125C7.22396 15.2188 7.15885 15.0938 7.13281 14.9375C7.01302 14.0729 6.88542 13.3255 6.75 12.6953C6.61458 12.0651 6.45052 11.5312 6.25781 11.0938C6.0651 10.651 5.82031 10.2839 5.52344 9.99219C5.23177 9.69531 4.86719 9.45312 4.42969 9.26562C3.99219 9.07812 3.46354 8.92188 2.84375 8.79688C2.22396 8.66667 1.48958 8.54427 0.640625 8.42969C0.479167 8.41406 0.346354 8.35417 0.242188 8.25C0.143229 8.14062 0.09375 8.01042 0.09375 7.85938C0.09375 7.70833 0.143229 7.58073 0.242188 7.47656C0.346354 7.36719 0.479167 7.30208 0.640625 7.28125C1.65625 7.17188 2.51042 7.04167 3.20312 6.89062C3.90104 6.73438 4.47396 6.52083 4.92188 6.25C5.375 5.97917 5.73958 5.61719 6.01562 5.16406C6.29167 4.70573 6.51302 4.11979 6.67969 3.40625C6.84635 2.69271 6.9974 1.8151 7.13281 0.773438C7.15885 0.617188 7.22396 0.492188 7.32812 0.398438C7.43229 0.304688 7.55729 0.257812 7.70312 0.257812C7.84896 0.257812 7.97396 0.304688 8.07812 0.398438C8.18229 0.492188 8.2474 0.617188 8.27344 0.773438C8.40885 1.8151 8.5599 2.69271 8.72656 3.40625C8.89323 4.11979 9.11198 4.70573 9.38281 5.16406C9.65885 5.61719 10.0208 5.97917 10.4688 6.25C10.9219 6.52083 11.4974 6.73438 12.1953 6.89062C12.8932 7.04167 13.75 7.17188 14.7656 7.28125C14.9219 7.30208 15.0521 7.36719 15.1562 7.47656C15.2604 7.58073 15.3125 7.70833 15.3125 7.85938C15.3125 8.01042 15.2604 8.14062 15.1562 8.25C15.0521 8.35417 14.9219 8.41406 14.7656 8.42969C13.75 8.54427 12.8932 8.67969 12.1953 8.83594C11.4974 8.98698 10.9219 9.19792 10.4688 9.46875C10.0208 9.73958 9.65885 10.1042 9.38281 10.5625C9.11198 11.0156 8.89323 11.599 8.72656 12.3125C8.5599 13.0208 8.40885 13.8958 8.27344 14.9375C8.2474 15.0938 8.18229 15.2188 8.07812 15.3125C7.97396 15.4115 7.84896 15.4609 7.70312 15.4609Z\"\n fill=\"white\"\n />\n </svg>\n);\n","module.exports = __webpack_public_path__ + \"fd39a83fd8083f7924f23beb597cb741.js\";","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar integer = function integer(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default integer;","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _VideoCameraOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/VideoCameraOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar VideoCameraOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _VideoCameraOutlined.default\n }));\n};\n/**![video-camera](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djU3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGg1OTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjQ4bDEyOCA3My43YzIxLjMgMTIuMyA0OC0zLjEgNDgtMjcuNlYzMzBjMC0yNC42LTI2LjctNDAtNDgtMjcuN3pNNzEyIDc5MkgxMzZWMjMyaDU3NnY1NjB6bTE3Ni0xNjdsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2ek0yMDggMzYwaDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyMDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6IiAvPjwvc3ZnPg==) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(VideoCameraOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"VideoCameraOutlined\";\n}\nvar _default = RefIcon;\n","module.exports = __webpack_public_path__ + \"170487867de05784a96608617bdd544d.js\";","'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","export const SET_ACCESS_TOKEN = 'accessToken/SET_ACCESS_TOKEN';\nexport const SET_PROCESSED_SCOPES = 'accessToken/SET_PROCESSED_SCOPES';\n\nexport const SET_REMOTE_FEATURE_FLAGS = 'accessToken/SET_REMOTE_FEATURE_FLAGS';\n\nexport const SET_MFA_CREDENTIALS = 'accessToken/SET_MFA_CREDENTIALS';\n","module.exports = __webpack_public_path__ + \"48e9351c5623d4da657ce7d5d0267ea6.js\";","/**\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\nmodule.exports = setToArray;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","module.exports = __webpack_public_path__ + \"003671ee2a876e7614cd94390e2255b3.js\";","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","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 };","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _SearchOutlined = _interopRequireDefault(require('./lib/icons/SearchOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _SearchOutlined;\nexports.default = _default;\nmodule.exports = _default;","module.exports = __webpack_public_path__ + \"622e27eec5f26148f51ccc30315a3deb.js\";","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","module.exports = __webpack_public_path__ + \"4c1bdecbedd36a5765de184ac056822a.js\";","import {\n CLEAR_AUTHENTICATED_CONTAINER_STORE_DATA,\n CHANGE_ROUTE,\n ROOT_CONTAINER_MOUNTED,\n CLEAR_ORG_SPECIFIC_STORE_DATA,\n FIRE_AUTH_REDIRECT_CHECK,\n FIRE_SCOPE_CHECK,\n REQUEST_AND_SET_IDENTITY,\n REQUEST_PACKAGE_UPGRADE,\n} from './constants';\n\nexport function fireScopeCheck(scope) {\n return {\n type: FIRE_SCOPE_CHECK,\n scope,\n };\n}\n\nexport function fireAuthRedirect(redirectUrl) {\n return {\n type: FIRE_AUTH_REDIRECT_CHECK,\n redirectUrl,\n };\n}\n// There may be a cleaner way to do this but I haven't come up with it yet -justin\nexport function clearOrgSpecificStoreData() {\n return {\n type: CLEAR_ORG_SPECIFIC_STORE_DATA,\n };\n}\nexport function clearAuthenticatedContainerStoreData(callback) {\n return {\n type: CLEAR_AUTHENTICATED_CONTAINER_STORE_DATA,\n callback,\n };\n}\n\n// rootLevel, masterMode\n// options: root\nexport function changeRoute(route, options) {\n return {\n type: CHANGE_ROUTE,\n route,\n options,\n };\n}\n\nexport function rootContainerMounted(route) {\n return {\n type: ROOT_CONTAINER_MOUNTED,\n route,\n };\n}\n\nexport function requestAndSetIdentity() {\n return {\n type: REQUEST_AND_SET_IDENTITY,\n };\n}\n\nexport function requestPackageUpgradeWithCode(featureCode, isChannel) {\n return {\n type: REQUEST_PACKAGE_UPGRADE,\n featureCode,\n isChannel,\n };\n}\n","import { createContext } from 'react';\n/** @private Internal context. Do not use in your production. */\nconst SliderInternalContext = /*#__PURE__*/createContext({});\nexport default SliderInternalContext;","import { useEffect, useState } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nvar patchHistoryMethod = function (method) {\n var history = window.history;\n var original = history[method];\n history[method] = function (state) {\n var result = original.apply(this, arguments);\n var event = new Event(method.toLowerCase());\n event.state = state;\n window.dispatchEvent(event);\n return result;\n };\n};\nif (isBrowser) {\n patchHistoryMethod('pushState');\n patchHistoryMethod('replaceState');\n}\nvar useLocationServer = function () { return ({\n trigger: 'load',\n length: 1,\n}); };\nvar buildState = function (trigger) {\n var _a = window.history, state = _a.state, length = _a.length;\n var _b = window.location, hash = _b.hash, host = _b.host, hostname = _b.hostname, href = _b.href, origin = _b.origin, pathname = _b.pathname, port = _b.port, protocol = _b.protocol, search = _b.search;\n return {\n trigger: trigger,\n state: state,\n length: length,\n hash: hash,\n host: host,\n hostname: hostname,\n href: href,\n origin: origin,\n pathname: pathname,\n port: port,\n protocol: protocol,\n search: search,\n };\n};\nvar useLocationBrowser = function () {\n var _a = useState(buildState('load')), state = _a[0], setState = _a[1];\n useEffect(function () {\n var onPopstate = function () { return setState(buildState('popstate')); };\n var onPushstate = function () { return setState(buildState('pushstate')); };\n var onReplacestate = function () { return setState(buildState('replacestate')); };\n on(window, 'popstate', onPopstate);\n on(window, 'pushstate', onPushstate);\n on(window, 'replacestate', onReplacestate);\n return function () {\n off(window, 'popstate', onPopstate);\n off(window, 'pushstate', onPushstate);\n off(window, 'replacestate', onReplacestate);\n };\n }, []);\n return state;\n};\nvar hasEventConstructor = typeof Event === 'function';\nexport default isBrowser && hasEventConstructor ? useLocationBrowser : useLocationServer;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _SaveOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/SaveOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar SaveOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _SaveOutlined.default\n }));\n};\n/**![save](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5My4zIDI5My4zTDczMC43IDEzMC43Yy03LjUtNy41LTE2LjctMTMtMjYuNy0xNlYxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzOC41YzAtMTctNi43LTMzLjItMTguNy00NS4yek0zODQgMTg0aDI1NnYxMDRIMzg0VjE4NHptNDU2IDY1NkgxODRWMTg0aDEzNnYxMzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIwNS44bDEzNiAxMzZWODQwek01MTIgNDQyYy03OS41IDAtMTQ0IDY0LjUtMTQ0IDE0NHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDQtNjQuNS0xNDQtMTQ0LTE0NHptMCAyMjRjLTQ0LjIgMC04MC0zNS44LTgwLTgwczM1LjgtODAgODAtODAgODAgMzUuOCA4MCA4MC0zNS44IDgwLTgwIDgweiIgLz48L3N2Zz4=) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(SaveOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"SaveOutlined\";\n}\nvar _default = RefIcon;\n","import React from 'react';\nimport {\n SvgWrapper,\n SvgWrapperProps,\n} from 'components/svgs/SvgWrapper/SvgWrapper';\n\ninterface PhoneFilledSvgProps extends Omit<SvgWrapperProps, 'children'> {}\n\nexport const PhoneFilledSvg = ({ ...svgProps }: PhoneFilledSvgProps) => (\n <SvgWrapper height=\"18\" width=\"18\" viewBox=\"0 0 24 24\" {...svgProps}>\n <path d=\"M23 18.375C23 18.6563 22.9479 19.0234 22.8438 19.4766C22.7396 19.9297 22.6302 20.2865 22.5156 20.5469C22.2969 21.0677 21.6615 21.6198 20.6094 22.2031C19.6302 22.7344 18.6615 23 17.7031 23C17.4219 23 17.1458 22.9818 16.875 22.9453C16.6042 22.9089 16.3047 22.8438 15.9766 22.75C15.6484 22.6563 15.4036 22.5807 15.2422 22.5234C15.0807 22.4661 14.7917 22.3594 14.375 22.2031C13.9583 22.0469 13.7031 21.9531 13.6094 21.9219C12.5885 21.5573 11.6771 21.125 10.875 20.625C9.55208 19.8021 8.17708 18.6771 6.75 17.25C5.32292 15.8229 4.19792 14.4479 3.375 13.125C2.875 12.3229 2.44271 11.4115 2.07813 10.3906C2.04688 10.2969 1.95313 10.0417 1.79688 9.625C1.64063 9.20833 1.53385 8.91927 1.47656 8.75781C1.41927 8.59635 1.34375 8.35156 1.25 8.02344C1.15625 7.69531 1.09115 7.39583 1.05469 7.125C1.01823 6.85417 1 6.57813 1 6.29688C1 5.33854 1.26562 4.36979 1.79688 3.39063C2.38021 2.33854 2.93229 1.70313 3.45313 1.48438C3.71354 1.36979 4.07031 1.26042 4.52344 1.15625C4.97656 1.05208 5.34375 1 5.625 1C5.77083 1 5.88021 1.01563 5.95313 1.04688C6.14063 1.10938 6.41667 1.50521 6.78125 2.23438C6.89583 2.43229 7.05208 2.71354 7.25 3.07813C7.44792 3.44271 7.63021 3.77344 7.79688 4.07031C7.96354 4.36719 8.125 4.64583 8.28125 4.90625C8.3125 4.94792 8.40365 5.07813 8.55469 5.29688C8.70573 5.51563 8.81771 5.70052 8.89063 5.85156C8.96354 6.0026 9 6.15104 9 6.29688C9 6.50521 8.85156 6.76563 8.55469 7.07813C8.25781 7.39063 7.9349 7.67708 7.58594 7.9375C7.23698 8.19792 6.91406 8.47396 6.61719 8.76563C6.32031 9.05729 6.17188 9.29688 6.17188 9.48438C6.17188 9.57813 6.19792 9.69531 6.25 9.83594C6.30208 9.97656 6.34635 10.0833 6.38281 10.1563C6.41927 10.2292 6.49219 10.3542 6.60156 10.5313C6.71094 10.7083 6.77083 10.8073 6.78125 10.8281C7.57292 12.2552 8.47917 13.4792 9.5 14.5C10.5208 15.5208 11.7448 16.4271 13.1719 17.2188C13.1927 17.2292 13.2917 17.2891 13.4688 17.3984C13.6458 17.5078 13.7708 17.5807 13.8438 17.6172C13.9167 17.6536 14.0234 17.6979 14.1641 17.75C14.3047 17.8021 14.4219 17.8281 14.5156 17.8281C14.7031 17.8281 14.9427 17.6797 15.2344 17.3828C15.526 17.0859 15.8021 16.763 16.0625 16.4141C16.3229 16.0651 16.6094 15.7422 16.9219 15.4453C17.2344 15.1484 17.4948 15 17.7031 15C17.849 15 17.9974 15.0365 18.1484 15.1094C18.2995 15.1823 18.4844 15.2943 18.7031 15.4453C18.9219 15.5964 19.0521 15.6875 19.0938 15.7188C19.3542 15.875 19.6328 16.0365 19.9297 16.2031C20.2266 16.3698 20.5573 16.5521 20.9219 16.75C21.2865 16.9479 21.5677 17.1042 21.7656 17.2188C22.4948 17.5833 22.8906 17.8594 22.9531 18.0469C22.9844 18.1198 23 18.2292 23 18.375Z\" />\n </SvgWrapper>\n);\n","module.exports = require('./lib/immutable')\n","module.exports = __webpack_public_path__ + \"68323711e75444195e7eb950af2af177.js\";","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n if (typeof wrapper === 'function') {\n return wrapper;\n } else {\n // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n // that something messed with it. In that case we want to return the originally passed function.\n return fn;\n }\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","module.exports = __webpack_public_path__ + \"42e0ea6351d45d342caab13cb12f9ea4.js\";","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","import opConfig from 'openpathConfig';\nimport { getAccessToken } from './accessToken';\nimport { setUnifiedCookie } from './setUnifiedCookie';\n\n/** Used for local development against a remote deployment url. Running the `proxy-server` will allow api calls to make it through successfully */\nconst { AWARE_PROXY_URL, IS_NEW_UNIFICATION_AUTH_ENABLED } = opConfig;\n\ntype AwareClient = {\n [K in keyof OP.Aware.Client]: (\n params: Parameters<OP.Aware.Client[K]>[0],\n ) => ReturnType<OP.Aware.Client[K]> | null;\n};\n\ninterface AwareRequest<T extends Record<string, any> = Record<string, any>> {\n url: string;\n method?: 'PUT' | 'GET' | 'PATCH' | 'POST';\n body?: T;\n}\n\ninterface RequestParams {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH';\n credentials: 'include';\n headers: Record<string, string>;\n body?: string;\n}\n\nconst awareRequest = async <\n T extends Record<string, any> = Record<string, any>,\n>({\n url,\n method = 'GET',\n body,\n}: AwareRequest<T>) => {\n const accessToken = getAccessToken();\n const params: RequestParams = {\n method,\n credentials: 'include', // Needed to send the Aware cookie with the request for authentication\n headers: {},\n };\n\n if (IS_NEW_UNIFICATION_AUTH_ENABLED) {\n params.headers = {\n ...params.headers,\n Authorization: `Bearer ${accessToken}`,\n };\n }\n\n if (body) {\n params.body = JSON.stringify(body);\n params.headers = {\n 'Content-Type': 'application/json',\n };\n }\n\n // Legacy set cookie first. moved out of useAwareClient into here\n if (!IS_NEW_UNIFICATION_AUTH_ENABLED) {\n await setUnifiedCookie({ baseUrl: url });\n }\n\n let response = await fetch(url, params);\n\n // Lets suppress this for now (in QueryClient in App.js)\n // If we want to show a message just add it to the object below and remove suppressErrorMessage\n const errorObject = {\n suppressErrorMessage: true,\n };\n\n if (!response.ok) {\n if (!IS_NEW_UNIFICATION_AUTH_ENABLED) {\n throw errorObject;\n }\n\n // Try set a cookie and try once more (attempting legacy auth)\n // need to remove the Bearer token before we retry\n delete params.headers.Authorization;\n await setUnifiedCookie({ baseUrl: url });\n\n response = await fetch(url, params);\n\n if (!response.ok) {\n throw errorObject;\n }\n }\n\n // Check if the response body is empty\n if (response.headers.get('content-length') === '0') {\n return null;\n }\n\n // Try to parse the response body as JSON\n let data;\n try {\n data = await response.json();\n } catch (err) {\n console.error('Failed to parse JSON:', err);\n throw err;\n }\n\n return data;\n};\n\n/**\n * @description Main client utility for making api calls to Aware. This is being build on a as\n * needed basis thus should be extended as use cases increase. An example of this being used can\n * be found within useAwareQuery which is used within the PermissionedAwareDeepLink component. The utility\n * is typed so that when you need specific parameters for example in describeDevicePermission you will\n * get proper Typescript help to know when you need them and what they are\n */\nexport const awareClient: AwareClient = {\n describeUser: async ({ deploymentUrl }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({ url: `${finalUrl}/api/v1/me` });\n },\n\n describeDevicePermission: async ({ deploymentUrl, parameters }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({\n url: `${finalUrl}/api/v1/permissions/${parameters?.deviceId}`,\n });\n },\n\n lookupUser: async ({ deploymentUrl }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({\n url: `${finalUrl}/api/v1/public/lookupUser`,\n });\n },\n\n listRules: async ({ deploymentUrl }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({\n url: `${finalUrl}/api/v1/rules3`,\n });\n },\n\n listRulesPermissions: async ({ deploymentUrl }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({\n url: `${finalUrl}/api/v1/rules3Permissions`,\n });\n },\n\n updateRule: async ({ deploymentUrl, parameters }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n const [awareRuleId, body] = parameters;\n\n return awareRequest<(typeof parameters)[1]>({\n url: `${finalUrl}/api/v1/rules3/${awareRuleId}`, // The uuid of the rule\n method: 'PUT',\n body,\n });\n },\n\n describeConfig: async ({ deploymentUrl }) => {\n const normalizedUrl = deploymentUrl.replace(/\\/$/, '');\n const finalUrl = AWARE_PROXY_URL || normalizedUrl;\n\n return awareRequest({ url: `${finalUrl}/api/v1/public/config` });\n },\n};\n","module.exports = __webpack_public_path__ + \"17dc98279d24649d3ca77cbce8c44e83.js\";","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","module.exports = __webpack_public_path__ + \"ddbc961769cd2ff4d4a7a136168ebf4c.js\";","module.exports = __webpack_public_path__ + \"d188c3ef36e0a991304717ef4bf0b118.js\";","module.exports = __webpack_public_path__ + \"de0fd4fd7c2d7a4887cbc99eed91f797.js\";","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { supportNodeRef, useComposeRef } from \"rc-util/es/ref\";\nimport ContextIsolator from '../_util/ContextIsolator';\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n children\n } = props,\n restProps = __rest(props, [\"children\"]);\n const override = React.useContext(OverrideContext);\n const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable, restProps.rootClassName\n // restProps.validator, Not mark as deps since this is a function\n ]);\n const canRef = supportNodeRef(children);\n const mergedRef = useComposeRef(ref, canRef ? children.ref : null);\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, canRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children));\n});\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport default OverrideContext;","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _CloseOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/CloseOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar CloseOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _CloseOutlined.default\n }));\n};\n/**![close](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(CloseOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"CloseOutlined\";\n}\nvar _default = RefIcon;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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\nexport default isPrototype;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.divWrapper = void 0;\nvar tslib_1 = require(\"tslib\");\nvar React = tslib_1.__importStar(require(\"react\"));\nvar addClassDecoratorSupport_1 = tslib_1.__importDefault(require(\"./addClassDecoratorSupport\"));\nvar h = React.createElement;\nvar noWrap = function (Comp, propName, props, state) {\n var _a;\n return h(Comp, propName ? tslib_1.__assign((_a = {}, _a[propName] = state, _a), props) : tslib_1.__assign(tslib_1.__assign({}, state), props));\n};\nexports.divWrapper = function (Comp, propName, props, state) {\n return h('div', null, noWrap(Comp, propName, props, state));\n};\nvar createEnhancer = function (Facc, prop, wrapper) {\n if (wrapper === void 0) { wrapper = noWrap; }\n var enhancer = function (Comp, propName, faccProps) {\n if (propName === void 0) { propName = prop; }\n if (faccProps === void 0) { faccProps = null; }\n var isClassDecoratorMethodCall = typeof Comp === 'string';\n if (isClassDecoratorMethodCall) {\n return function (Klass) { return enhancer(Klass, Comp || prop, propName); };\n }\n var Enhanced = function (props) {\n return h(Facc, faccProps, function (state) { return wrapper(Comp, propName, props, state); });\n };\n if (process.env.NODE_ENV !== 'production') {\n Enhanced.displayName = (Facc.displayName || Facc.name) + \"(\" + (Comp.displayName || Comp.name) + \")\";\n }\n return isClassDecoratorMethodCall ? addClassDecoratorSupport_1.default(Enhanced) : Enhanced;\n };\n return enhancer;\n};\nexports.default = createEnhancer;\n//# sourceMappingURL=createEnhancer.js.map","'use strict';\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst _WarningOutlined = _interopRequireDefault(require('./lib/icons/WarningOutlined'));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nconst _default = _WarningOutlined;\nexports.default = _default;\nmodule.exports = _default;","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","module.exports = __webpack_public_path__ + \"228ca80abf1ae030cbfe7faaec61913f.js\";","module.exports = __webpack_public_path__ + \"0416c21cfe088739209926632a360e3b.js\";","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInfoTooltip.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpInfoTooltip.scss\";\n export default content && content.locals ? content.locals : undefined;\n","// This icon file is generated automatically.\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexport default EnterOutlined;\n","import React from 'react';\nimport SizeContext from '../SizeContext';\nconst useSize = customSize => {\n const size = React.useContext(SizeContext);\n const mergedSize = React.useMemo(() => {\n if (!customSize) {\n return size;\n }\n if (typeof customSize === 'string') {\n return customSize !== null && customSize !== void 0 ? customSize : size;\n }\n if (customSize instanceof Function) {\n return customSize(size);\n }\n return size;\n }, [customSize, size]);\n return mergedSize;\n};\nexport default useSize;","import { startInactiveSpan } from '@sentry/browser';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, withActiveSpan, spanToJSON } from '@sentry/core';\nimport { timestampInSeconds } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { REACT_MOUNT_OP, REACT_UPDATE_OP, REACT_RENDER_OP } from './constants.js';\n\nconst UNKNOWN_COMPONENT = 'unknown';\n\n/**\n * The Profiler component leverages Sentry's Tracing integration to generate\n * spans based on component lifecycles.\n */\nclass Profiler extends React.Component {\n /**\n * The span of the mount activity\n * Made protected for the React Native SDK to access\n */\n\n /**\n * The span that represents the duration of time between shouldComponentUpdate and componentDidUpdate\n */\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static __initStatic() {this.defaultProps = {\n disabled: false,\n includeRender: true,\n includeUpdates: true,\n };}\n\n constructor(props) {\n super(props);\n const { name, disabled = false } = this.props;\n\n if (disabled) {\n return;\n }\n\n this._mountSpan = startInactiveSpan({\n name: `<${name}>`,\n onlyIfParent: true,\n op: REACT_MOUNT_OP,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.react.profiler',\n 'ui.component_name': name,\n },\n });\n }\n\n // If a component mounted, we can finish the mount activity.\n componentDidMount() {\n if (this._mountSpan) {\n this._mountSpan.end();\n }\n }\n\n shouldComponentUpdate({ updateProps, includeUpdates = true }) {\n // Only generate an update span if includeUpdates is true, if there is a valid mountSpan,\n // and if the updateProps have changed. It is ok to not do a deep equality check here as it is expensive.\n // We are just trying to give baseline clues for further investigation.\n if (includeUpdates && this._mountSpan && updateProps !== this.props.updateProps) {\n // See what props haved changed between the previous props, and the current props. This is\n // set as data on the span. We just store the prop keys as the values could be potenially very large.\n const changedProps = Object.keys(updateProps).filter(k => updateProps[k] !== this.props.updateProps[k]);\n if (changedProps.length > 0) {\n const now = timestampInSeconds();\n this._updateSpan = withActiveSpan(this._mountSpan, () => {\n return startInactiveSpan({\n name: `<${this.props.name}>`,\n onlyIfParent: true,\n op: REACT_UPDATE_OP,\n startTime: now,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.react.profiler',\n 'ui.component_name': this.props.name,\n 'ui.react.changed_props': changedProps,\n },\n });\n });\n }\n }\n\n return true;\n }\n\n componentDidUpdate() {\n if (this._updateSpan) {\n this._updateSpan.end();\n this._updateSpan = undefined;\n }\n }\n\n // If a component is unmounted, we can say it is no longer on the screen.\n // This means we can finish the span representing the component render.\n componentWillUnmount() {\n const endTimestamp = timestampInSeconds();\n const { name, includeRender = true } = this.props;\n\n if (this._mountSpan && includeRender) {\n const startTime = spanToJSON(this._mountSpan).timestamp;\n withActiveSpan(this._mountSpan, () => {\n const renderSpan = startInactiveSpan({\n onlyIfParent: true,\n name: `<${name}>`,\n op: REACT_RENDER_OP,\n startTime,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.react.profiler',\n 'ui.component_name': name,\n },\n });\n if (renderSpan) {\n // Have to cast to Span because the type of _mountSpan is Span | undefined\n // and not getting narrowed properly\n renderSpan.end(endTimestamp);\n }\n });\n }\n }\n\n render() {\n return this.props.children;\n }\n} Profiler.__initStatic();\n\n/**\n * withProfiler is a higher order component that wraps a\n * component in a {@link Profiler} component. It is recommended that\n * the higher order component be used over the regular {@link Profiler} component.\n *\n * @param WrappedComponent component that is wrapped by Profiler\n * @param options the {@link ProfilerProps} you can pass into the Profiler\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withProfiler(\n WrappedComponent,\n // We do not want to have `updateProps` given in options, it is instead filled through the HOC.\n options,\n) {\n const componentDisplayName =\n (options && options.name) || WrappedComponent.displayName || WrappedComponent.name || UNKNOWN_COMPONENT;\n\n const Wrapped = (props) => (\n React.createElement(Profiler, { ...options, name: componentDisplayName, updateProps: props,}\n , React.createElement(WrappedComponent, { ...props,} )\n )\n );\n\n Wrapped.displayName = `profiler(${componentDisplayName})`;\n\n // Copy over static methods from Wrapped component to Profiler HOC\n // See: https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n hoistNonReactStatics(Wrapped, WrappedComponent);\n return Wrapped;\n}\n\n/**\n *\n * `useProfiler` is a React hook that profiles a React component.\n *\n * Requires React 16.8 or above.\n * @param name displayName of component being profiled\n */\nfunction useProfiler(\n name,\n options = {\n disabled: false,\n hasRenderSpan: true,\n },\n) {\n const [mountSpan] = React.useState(() => {\n if (options && options.disabled) {\n return undefined;\n }\n\n return startInactiveSpan({\n name: `<${name}>`,\n onlyIfParent: true,\n op: REACT_MOUNT_OP,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.react.profiler',\n 'ui.component_name': name,\n },\n });\n });\n\n React.useEffect(() => {\n if (mountSpan) {\n mountSpan.end();\n }\n\n return () => {\n if (mountSpan && options.hasRenderSpan) {\n const startTime = spanToJSON(mountSpan).timestamp;\n const endTimestamp = timestampInSeconds();\n\n const renderSpan = startInactiveSpan({\n name: `<${name}>`,\n onlyIfParent: true,\n op: REACT_RENDER_OP,\n startTime,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.react.profiler',\n 'ui.component_name': name,\n },\n });\n if (renderSpan) {\n // Have to cast to Span because the type of _mountSpan is Span | undefined\n // and not getting narrowed properly\n renderSpan.end(endTimestamp);\n }\n }\n };\n // We only want this to run once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n}\n\nexport { Profiler, UNKNOWN_COMPONENT, useProfiler, withProfiler };\n//# sourceMappingURL=profiler.js.map\n","import isDeepEqualReact from 'fast-deep-equal/react';\nexport default isDeepEqualReact;\n","module.exports = __webpack_public_path__ + \"eff4371180dfac54de25ed3a0105d82f.js\";","import useEffectOnce from './useEffectOnce';\nvar useMount = function (fn) {\n useEffectOnce(function () {\n fn();\n });\n};\nexport default useMount;\n","import React, { memo, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'semantic-ui-react/dist/es/elements/Icon/Icon';\nimport { opMoment } from 'utils/dates';\nimport intersectionBy from 'lodash/intersectionBy';\nimport { useDispatch } from 'react-redux';\nimport { requestUnlockWithCloudKey } from 'global/cloudKey/actions';\nimport { Popup } from 'components/Popup';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { selectCloudKeys } from 'global/cloudKey/selectors';\nimport {\n selectCurrentOrgId,\n selectCurrentUserId,\n} from 'global/accessToken/selectors';\nimport { heliumReceive } from 'utils/helpers';\nimport { useTranslation } from 'react-i18next';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { OpSpace } from 'new-components/DLS/OpSpace/OpSpace';\nimport { OpSelect } from 'new-components/DLS/OpSelect/OpSelect';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport LockOutlined from '@ant-design/icons/LockOutlined';\nimport { sortOptionsAlphabetically } from 'utils/sortOptionsAlphabetically';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst styles = {\n wrapper: { paddingTop: 9, marginLeft: 8 },\n icon: { height: 'auto' },\n};\n\nexport const EntryUnlockButton = memo(({ cameraId, style }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n const [userEntries, setUserEntries] = useState([]);\n const [acuEntries, setAcuEntries] = useState([]);\n const [selectedEntryId, setSelectedEntryId] = useState(null);\n\n const cloudKeys = useSelectorJs(selectCloudKeys());\n const currentOrgId = useSelectorJs(selectCurrentOrgId());\n const currentUserId = useSelectorJs(selectCurrentUserId());\n const currentIdentityLanguage = useSelectorJs(\n selectCurrentIdentityLanguage(),\n );\n\n // Get and set required data\n useEffect(() => {\n if (!currentOrgId || !currentUserId) {\n return;\n }\n\n (async () => {\n const [{ data: listUserEntriesData }, { data: listCameraEntriesData }] =\n await Promise.all([\n heliumReceive('listUserEntries', [currentOrgId, currentUserId], {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n }),\n heliumReceive('listCameraEntries', [currentOrgId, cameraId], {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n }),\n ]);\n\n if (listUserEntriesData) {\n setUserEntries(listUserEntriesData);\n }\n if (listCameraEntriesData) {\n setAcuEntries(listCameraEntriesData);\n }\n })();\n }, [cameraId, currentIdentityLanguage, currentOrgId, currentUserId]);\n\n const userHasValidCloudKey = !!cloudKeys.find(\n ({ startDate, endDate }) =>\n (startDate === null || opMoment(startDate).isBefore(opMoment())) &&\n (endDate === null || opMoment(endDate).isAfter(opMoment())),\n );\n\n // Don't show if user has no valid cloudKeys (return immediately here so don't do the following calcs)\n if (!userHasValidCloudKey) return null;\n\n const mapper = ({ id: entryId, name: entryName }) => ({\n key: entryId,\n value: entryId,\n text: entryName,\n });\n\n const unlockableEntryDropdownOptions = intersectionBy(\n acuEntries.map(mapper),\n userEntries.map(mapper),\n 'value',\n );\n\n // Don't show if no acu entries or if the user doesn't have access to any entries\n if (!unlockableEntryDropdownOptions.length) return null;\n\n if (unlockableEntryDropdownOptions.length === 1) {\n const handleButtonClick = () => {\n const entryId = unlockableEntryDropdownOptions[0].value;\n dispatch(requestUnlockWithCloudKey(entryId));\n };\n\n return (\n <Popup\n trigger={\n <Clickable\n style={{ ...styles.wrapper, ...style }}\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handleButtonClick}\n >\n <Icon\n size=\"large\"\n style={styles.icon}\n fitted\n inverted\n name=\"unlock\"\n />\n </Clickable>\n }\n content={t('Unlock entry')}\n position=\"bottom center\"\n />\n );\n }\n\n const handleEntryChange = (entryId) => {\n setSelectedEntryId(entryId);\n };\n\n const handleUnlockClick = () => {\n dispatch(\n requestUnlockWithCloudKey(\n selectedEntryId || unlockableEntryDropdownOptions[0].value,\n ),\n );\n };\n\n const options = unlockableEntryDropdownOptions.map(({ value, text }) => ({\n value,\n label: text,\n }));\n\n return (\n <OpSpace.Compact style={styles.wrapper}>\n <OpSelect\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n options={options}\n value={selectedEntryId || options[0].value}\n onChange={handleEntryChange}\n filterSort={sortOptionsAlphabetically}\n />\n <OpButton onClick={handleUnlockClick}>\n <LockOutlined />\n </OpButton>\n </OpSpace.Compact>\n );\n});\n\nEntryUnlockButton.displayName = 'EntryUnlockButton';\n\nEntryUnlockButton.propTypes = {\n cameraId: PropTypes.number.isRequired,\n style: PropTypes.object,\n};\n","export const timeoutStates = {\n CALL: 'CALL',\n PREVIEW: 'PREVIEW',\n DISCONNECT_WINDOW: 'DISCONNECT_WINDOW',\n DISCONNECT_WINDOW_EXCEEDED: 'DISCONNECT_WINDOW_EXCEEDED',\n NO_TIMEOUT: 'NO_TIMEOUT',\n};\n\nexport const timeoutMs = {\n PREVIEW: 3300000, // 55 minutes\n CALL: 300000, // 5 minutes\n DISCONNECT: 60000, // 1 minute\n TRACK_DETECTED: 10000, // 10 seconds\n};\n\nexport const disconnectReasonStatus = {\n CLIENT_INITIATED: 1,\n PARTICIPANT_REMOVED: 4,\n SIGNAL_CLOSE: 9,\n};\n\nexport const FETCH_ATTEMPTS = 3;\n","/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport { useEffect, useCallback } from 'react';\nimport {\n connectionStates,\n callStates,\n} from 'containers/OpVideoPlayer/constants';\nimport { useTranslation } from 'react-i18next';\nimport { TimeoutState } from '../components/LiveKitCallManager';\nimport { timeoutStates, timeoutMs } from '../constants';\n\n// TODO: Update opvideo-state-machine so that states can be imported when isolatedModules is enabled\nconst VideoStates = {\n CONNECTING: 'CONNECTING',\n CONNECTED: 'CONNECTED',\n PREVIEW: 'PREVIEW',\n SURVEILLANCE: 'SURVEILLANCE',\n CALL: 'CALL',\n FAILED: 'FAILED',\n RECONNECTING: 'RECONNECTING',\n DISCONNECTING: 'DISCONNECTING',\n DISCONNECTED: 'DISCONNECTED',\n};\n\nexport const useDisconnectCallTimeout = (\n timeoutState: React.MutableRefObject<TimeoutState>,\n callState: string,\n shouldResetTimeout: boolean,\n connectionState: string,\n isVideoStateMachineEnabled: unknown,\n currentVideoState: string,\n startTeardown: () => Promise<void>,\n setErrorProps: (props: any) => void,\n setIsLoading: (isLoading: boolean) => void,\n setConnectionState: (state: string) => void,\n setShouldResetTimeout: (state: boolean) => void,\n reconnectToPreview: () => Promise<void>,\n) => {\n const { t } = useTranslation();\n\n const clearTimeoutType = useCallback(\n (timeout: NodeJS.Timeout | null) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n timeoutState.current.type = timeoutStates.NO_TIMEOUT;\n }\n },\n [timeoutState],\n );\n\n const clearTimeouts = useCallback(() => {\n clearTimeoutType(timeoutState.current.previewTimeout);\n clearTimeoutType(timeoutState.current.callTimeout);\n clearTimeoutType(timeoutState.current.disconnectIfNoInteractionTimeout);\n }, [clearTimeoutType, timeoutState]);\n\n const reconnectAndClearTimeouts = useCallback(async () => {\n await reconnectToPreview();\n clearTimeouts();\n }, [reconnectToPreview, clearTimeouts]);\n\n const disconnectIfNoInteractionTimeout = useCallback(async () => {\n setConnectionState(connectionStates.DISCONNECTED);\n timeoutState.current.type = timeoutStates.DISCONNECT_WINDOW_EXCEEDED;\n await startTeardown();\n setErrorProps({\n errorMessage: t('Call ended due to inactivity.'),\n buttonContent: t('Reload'),\n handleRetryClick: async () => {\n await reconnectAndClearTimeouts();\n },\n });\n }, [\n setConnectionState,\n timeoutState,\n startTeardown,\n setErrorProps,\n t,\n reconnectAndClearTimeouts,\n ]);\n\n const startDisconnectIfNoInteractionTimeout = useCallback(() => {\n if (\n timeoutState.current.type === timeoutStates.PREVIEW ||\n timeoutState.current.type === timeoutStates.CALL\n ) {\n timeoutState.current.type = timeoutStates.DISCONNECT_WINDOW;\n timeoutState.current.disconnectIfNoInteractionTimeout = setTimeout(\n disconnectIfNoInteractionTimeout,\n timeoutMs.DISCONNECT,\n );\n }\n }, [timeoutState, disconnectIfNoInteractionTimeout]);\n\n const handleTimeoutExpiration = useCallback(() => {\n startDisconnectIfNoInteractionTimeout();\n setErrorProps({\n errorMessage: t('Are you still watching?'),\n iconName: 'question circle outline',\n buttonContent: t('Continue'),\n handleRetryClick: () => {\n setErrorProps(null);\n setIsLoading(false);\n clearTimeouts();\n setShouldResetTimeout(true);\n },\n });\n }, [\n startDisconnectIfNoInteractionTimeout,\n setErrorProps,\n t,\n setIsLoading,\n clearTimeouts,\n setShouldResetTimeout,\n ]);\n\n const isPreviewOrSurveillance = useCallback(() => {\n return isVideoStateMachineEnabled\n ? currentVideoState === VideoStates.PREVIEW ||\n currentVideoState === VideoStates.SURVEILLANCE\n : callState === callStates.PREVIEW;\n }, [isVideoStateMachineEnabled, currentVideoState, callState]);\n\n const startTimeout = useCallback(() => {\n timeoutState.current.type = isPreviewOrSurveillance()\n ? timeoutStates.PREVIEW\n : timeoutStates.CALL;\n const callOrPreviewTimeout: number = isPreviewOrSurveillance()\n ? timeoutMs.PREVIEW\n : timeoutMs.CALL;\n\n return setTimeout(handleTimeoutExpiration, callOrPreviewTimeout);\n }, [timeoutState, isPreviewOrSurveillance, handleTimeoutExpiration]);\n\n const setPreviewOrCallTimeout = useCallback(() => {\n if (\n timeoutState.current.type !== timeoutStates.DISCONNECT_WINDOW &&\n isPreviewOrSurveillance() &&\n !timeoutState.current.previewTimeout\n ) {\n clearTimeouts();\n timeoutState.current.previewTimeout = startTimeout();\n setShouldResetTimeout(false);\n } else if (\n timeoutState.current.type !== timeoutStates.DISCONNECT_WINDOW &&\n !isPreviewOrSurveillance() &&\n !timeoutState.current.callTimeout\n ) {\n clearTimeouts();\n timeoutState.current.callTimeout = startTimeout();\n setShouldResetTimeout(false);\n }\n }, [\n timeoutState,\n isPreviewOrSurveillance,\n clearTimeouts,\n startTimeout,\n setShouldResetTimeout,\n ]);\n\n useEffect(() => {\n if (\n shouldResetTimeout ||\n (isVideoStateMachineEnabled\n ? [\n VideoStates.PREVIEW,\n VideoStates.SURVEILLANCE,\n VideoStates.CALL,\n ].includes(currentVideoState)\n : connectionState === connectionStates.CONNECTED)\n ) {\n setPreviewOrCallTimeout();\n }\n }, [\n shouldResetTimeout,\n setPreviewOrCallTimeout,\n connectionState,\n isVideoStateMachineEnabled,\n currentVideoState,\n ]);\n\n // On unmount disconnect from room (if connected)\n useEffect(() => {\n return () => {\n clearTimeouts();\n };\n }, [clearTimeouts]);\n};\n","import { useEffect, forwardRef, useState, useRef, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport {\n DisconnectReason,\n Participant,\n RemoteParticipant,\n RemoteTrackPublication,\n RoomEvent,\n Track,\n} from 'livekit-client';\nimport { useRoomContext, useTracks } from '@livekit/components-react';\nimport { useVideoState, VideoEvents } from '@msi-alta/opvideo-state-machine';\nimport { useFeatureFlag } from 'utils/customHooks/useFeatureFlag';\nimport { getOpParams } from 'utils/getOpParams';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport {\n connectionStates,\n callStates,\n} from 'containers/OpVideoPlayer/constants';\nimport { timeoutStates, disconnectReasonStatus } from '../constants';\nimport { useDisconnectCallTimeout } from '../hooks/useDisconnectCallTimeout';\n\n// TODO: Update opvideo-state-machine so that states can be imported when isolatedModules is enabled\nconst VideoStates = {\n CONNECTING: 'CONNECTING',\n CONNECTED: 'CONNECTED',\n PREVIEW: 'PREVIEW',\n SURVEILLANCE: 'SURVEILLANCE',\n CALL: 'CALL',\n FAILED: 'FAILED',\n RECONNECTING: 'RECONNECTING',\n DISCONNECTING: 'DISCONNECTING',\n DISCONNECTED: 'DISCONNECTED',\n};\n\n// todo: reference this from other file instead of copy-pasting\ninterface LiveKitVideoPlayerProps {\n callState?: string;\n connectionState?: string;\n isMicrophoneEnabled: boolean;\n setIsLoading: (isLoading: boolean) => void;\n setCallState?: (state: string) => void;\n setConnectionState?: (state: string) => void;\n setErrorProps: (props: object | null) => void;\n}\n\ninterface LiveKitVideoPlayerStageProps extends LiveKitVideoPlayerProps {\n setShouldStartLive: (state: boolean) => void;\n}\n\nexport interface TimeoutState {\n previewTimeout: ReturnType<typeof setTimeout> | null;\n callTimeout: ReturnType<typeof setTimeout> | null;\n disconnectIfNoInteractionTimeout: ReturnType<typeof setTimeout> | null;\n type: string;\n}\n\ninterface Metadata {\n isOpvideoDevice?: boolean;\n isIntercom?: boolean;\n isUser?: boolean;\n}\n\nexport const LiveKitCallManager = forwardRef<\n HTMLVideoElement,\n LiveKitVideoPlayerStageProps\n>(\n (\n {\n connectionState = '',\n callState = '',\n isMicrophoneEnabled,\n setCallState = () => {},\n setConnectionState = () => {},\n setIsLoading,\n setShouldStartLive,\n setErrorProps,\n },\n ref,\n ) => {\n const currentTracks = useRef<string[]>([]);\n const roomContext = useRoomContext();\n const tracksTracker = useTracks(\n [Track.Source.Camera, Track.Source.Microphone],\n {\n updateOnlyOn: [\n RoomEvent.TrackPublished,\n RoomEvent.TrackSubscribed,\n RoomEvent.TrackSubscriptionPermissionChanged,\n RoomEvent.TrackSubscriptionStatusChanged,\n ],\n },\n );\n\n const participantsUnmuted = useRef<string[]>([]);\n const [monitoringParticipantMicTracks, setMonitoringParticipantMicTracks] =\n useState(false);\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const timeoutState = useRef<TimeoutState>({\n callTimeout: null,\n previewTimeout: null,\n disconnectIfNoInteractionTimeout: null,\n type: timeoutStates.NO_TIMEOUT,\n });\n const [shouldResetTimeout, setShouldResetTimeout] =\n useState<boolean>(false);\n\n const { orgId } = getOpParams();\n const { value: isVideoStateMachineEnabled } = useFeatureFlag(\n 'IS_VIDEO_STATE_MACHINE_ENABLED',\n orgId,\n );\n\n const { videoState, sendEvent } = useVideoState();\n const { value: currentVideoState } = videoState;\n\n /* \n no-await-in-loop rule was disabled since we need to await the result of each attempt \n before proceeding to the next iteration of the loop.\n */\n const enableMicrophone = useCallback(\n async (newState: boolean) => {\n let retries = 0;\n let err = null;\n const maxRetries = 3;\n while (retries < maxRetries) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await roomContext?.localParticipant?.setMicrophoneEnabled(newState);\n\n if (isVideoStateMachineEnabled) {\n sendEvent({\n type: newState\n ? VideoEvents.MicEnabled\n : VideoEvents.MicDisabled,\n });\n }\n return;\n } catch (error) {\n err = error;\n retries++;\n if (retries < maxRetries) {\n console.error(\n `Failed setting microphone state on attempt ${retries}. Error details:` +\n error,\n );\n // eslint-disable-next-line no-await-in-loop\n await new Promise((resolve) => {\n setTimeout(resolve, 200);\n });\n }\n }\n }\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.MicDisabled });\n }\n\n dispatch(setAlert('error', t(`Failed to enable microphone: ${err}`)));\n console.error(\n `Maximum retries on setMicrophoneEnabled exceeded. Unable to set microphone state: ${err}`,\n );\n },\n [\n isVideoStateMachineEnabled,\n dispatch,\n t,\n roomContext?.localParticipant,\n sendEvent,\n ],\n );\n\n const manageAnswerOrMic = useCallback(() => {\n /*\n Enable/disable mic whenever the mic toggle state changes and the session is in call state\n On Preview Mode, the mic should always be turned off\n */\n if (isVideoStateMachineEnabled) {\n enableMicrophone(\n currentVideoState === VideoStates.CALL && isMicrophoneEnabled,\n );\n } else if (connectionState === connectionStates.CONNECTED) {\n enableMicrophone(callState === callStates.CALL && isMicrophoneEnabled);\n }\n }, [\n connectionState,\n isVideoStateMachineEnabled,\n currentVideoState,\n enableMicrophone,\n callState,\n isMicrophoneEnabled,\n ]);\n\n useEffect(() => {\n manageAnswerOrMic();\n }, [manageAnswerOrMic, callState, isMicrophoneEnabled]);\n\n const cleanUpTracks = useCallback(() => {\n if (\n tracksTracker?.length === 0 &&\n ref !== null &&\n typeof ref !== 'function'\n ) {\n // Clean up if there were no tracks before\n const currentStream = ref?.current?.srcObject;\n if (currentStream instanceof MediaStream) {\n const previousTracks = currentStream.getTracks();\n previousTracks?.forEach((track) => {\n currentStream.removeTrack(track);\n });\n }\n }\n }, [ref, tracksTracker?.length]);\n\n const updateTracks = useCallback(() => {\n if (\n tracksTracker?.length > 0 &&\n ref !== null &&\n typeof ref !== 'function'\n ) {\n let shouldUpdate = false;\n let stream = ref?.current?.srcObject;\n if (!stream) {\n stream = new MediaStream();\n }\n tracksTracker?.forEach((track) => {\n if (\n !track.participant.isLocal &&\n track.publication.track?.mediaStreamTrack &&\n stream !== null &&\n stream !== undefined\n ) {\n if (\n !currentTracks.current.includes(track.publication.trackSid) &&\n stream instanceof MediaStream\n ) {\n stream.addTrack(track.publication.track?.mediaStreamTrack);\n currentTracks.current.push(track.publication.trackSid);\n shouldUpdate = true;\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ConnectionSuccessful });\n sendEvent({ type: VideoEvents.WebRTCReconnected });\n } else if (connectionState !== connectionStates.CONNECTED) {\n // Connection state should be connected only once we add tracks to the video element\n setConnectionState(connectionStates.CONNECTED);\n }\n }\n }\n });\n if (\n shouldUpdate &&\n ref != null &&\n typeof ref !== 'function' &&\n stream instanceof MediaStream &&\n ref.current !== null\n ) {\n // eslint-disable-next-line no-param-reassign\n ref.current.srcObject = stream;\n }\n }\n }, [\n connectionState,\n isVideoStateMachineEnabled,\n ref,\n sendEvent,\n setConnectionState,\n tracksTracker,\n ]);\n\n useEffect(() => {\n cleanUpTracks();\n updateTracks();\n }, [cleanUpTracks, updateTracks]);\n\n const startTeardown = useCallback(async () => {\n if (roomContext) {\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.EndCall });\n await roomContext?.disconnect();\n sendEvent({ type: VideoEvents.TeardownCompleted });\n } else {\n setConnectionState(connectionStates.DISCONNECTED);\n await roomContext?.disconnect();\n }\n }\n }, [\n isVideoStateMachineEnabled,\n sendEvent,\n roomContext,\n setConnectionState,\n ]);\n\n const getUnmutedParticipants = useCallback(() => {\n if (roomContext && !monitoringParticipantMicTracks) {\n setMonitoringParticipantMicTracks(true);\n\n participantsUnmuted.current.push(\n roomContext.localParticipant.name + '',\n );\n\n roomContext.on('trackUnmuted', (_, participant: Participant) => {\n participantsUnmuted.current.push('' + participant.name);\n });\n\n roomContext.on('trackMuted', (_, participant: Participant) => {\n participantsUnmuted.current = participantsUnmuted.current.filter(\n (p) => p !== participant.name,\n );\n });\n\n roomContext.on(\n 'trackPublished',\n (track: RemoteTrackPublication, participant: RemoteParticipant) => {\n let metadata: Metadata = {};\n try {\n metadata = JSON.parse(participant.metadata || '{}');\n } catch {\n // do nothing\n }\n\n if (metadata?.isOpvideoDevice) {\n participantsUnmuted.current.push('' + participant.name);\n }\n },\n );\n }\n }, [monitoringParticipantMicTracks, roomContext]);\n\n useEffect(() => {\n getUnmutedParticipants();\n }, [getUnmutedParticipants]);\n\n useEffect(() => {\n roomContext?.on('reconnecting', () => {\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ShouldReconnect });\n }\n });\n roomContext?.on('reconnected', () => {\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.WebRTCReconnected });\n }\n });\n roomContext?.on(\n 'disconnected',\n (reason: DisconnectReason | undefined) => {\n if (isVideoStateMachineEnabled) {\n if (\n reason !== disconnectReasonStatus.CLIENT_INITIATED &&\n reason !== disconnectReasonStatus.PARTICIPANT_REMOVED &&\n reason !== disconnectReasonStatus.SIGNAL_CLOSE\n ) {\n sendEvent({ type: VideoEvents.ConnectionFailed });\n }\n sendEvent({ type: VideoEvents.StartTeardown });\n sendEvent({ type: VideoEvents.TeardownCompleted });\n }\n },\n );\n }, [isVideoStateMachineEnabled, roomContext, sendEvent]);\n\n const reconnectToPreview = useCallback(async () => {\n await startTeardown();\n setErrorProps(null);\n setIsLoading(true);\n setShouldStartLive(true);\n setShouldResetTimeout(true);\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ConnectionStart });\n } else {\n setConnectionState(connectionStates.DISCONNECTED);\n setCallState(callStates.PREVIEW);\n }\n }, [\n startTeardown,\n setErrorProps,\n setIsLoading,\n setConnectionState,\n setCallState,\n setShouldStartLive,\n isVideoStateMachineEnabled,\n sendEvent,\n ]);\n\n useDisconnectCallTimeout(\n timeoutState,\n callState,\n shouldResetTimeout,\n connectionState,\n isVideoStateMachineEnabled,\n currentVideoState,\n startTeardown,\n setErrorProps,\n setIsLoading,\n setConnectionState,\n setShouldResetTimeout,\n reconnectToPreview,\n );\n\n // On unmount disconnect from room (if connected)\n useEffect(() => {\n return () => {\n startTeardown();\n setErrorProps(null);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setErrorProps]);\n\n return null;\n },\n);\n","import React, {\n useEffect,\n forwardRef,\n useState,\n memo,\n useRef,\n useCallback,\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LiveKitRoom, useLiveKitRoom } from '@livekit/components-react';\nimport { useVideoState, VideoEvents } from '@msi-alta/opvideo-state-machine';\nimport { useOpQuery } from 'utils/customHooks/useOpQuery';\nimport { useOpMutation } from 'utils/customHooks/useOpMutation';\nimport { useFeatureFlag } from 'utils/customHooks/useFeatureFlag';\nimport { connectionStates } from 'containers/OpVideoPlayer/constants';\nimport { LiveKitCallManager } from './components/LiveKitCallManager';\nimport { FETCH_ATTEMPTS, timeoutMs } from './constants';\n\ninterface LiveKitVideoPlayerProps {\n room: any;\n token: string | undefined;\n wsUrl: string | undefined;\n connectionState?: string;\n callState?: string;\n orgId: number;\n opvideoDeviceId: number;\n currentUserId?: number;\n isMicrophoneEnabled: boolean;\n setIsLoading: (isLoading: boolean) => void;\n setConnectionState?: (state: string) => void;\n setCallState?: (state: string) => void;\n setErrorProps: (props: object | null) => void;\n}\n\ninterface ConfigInterface {\n wsUrl: string | null | undefined;\n token: string | null | undefined;\n}\n\nconst GENERIC_ERROR_MSG =\n 'Something went wrong when starting the video session';\nconst MM_ERROR_MSG =\n 'This user does not have permission to view video on this camera';\nconst CONNECTION_TIMEOUT_MSG = 'Unable to load video';\n\nconst LiveKitVideoPlayer = forwardRef<\n HTMLVideoElement,\n LiveKitVideoPlayerProps\n>(\n (\n {\n room: roomProp,\n token: tokenProp,\n wsUrl: wsUrlProp,\n connectionState = '',\n callState = '',\n orgId,\n opvideoDeviceId,\n currentUserId,\n isMicrophoneEnabled,\n setIsLoading,\n setConnectionState = () => {},\n setErrorProps,\n setCallState = () => {},\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const [config, setConfig] = useState<ConfigInterface | null>(null);\n const [shouldStartLive, setShouldStartLive] = useState(true); // legacy, do not repeat\n const noVideoDetectedTimeout = useRef<any>(null);\n\n const isMasterMode = !currentUserId;\n const hasAllParameters = [\n orgId,\n opvideoDeviceId,\n currentUserId!,\n { protocol: 'lk-v1' },\n ].every(Boolean);\n\n /*\n startLive triggers the start_live MQTT message on the intercom side\n */\n const { mutate: startLive, isError: startLiveDidError } = useOpMutation({\n apiEndpointName: 'opvideoDeviceStartLive',\n retry: FETCH_ATTEMPTS,\n });\n\n const generateUserLiveToken = useOpQuery({\n apiEndpointName: 'opvideoDeviceGenerateUserLiveToken',\n parameters: [\n orgId,\n opvideoDeviceId,\n currentUserId!,\n { protocol: 'lk-v1' },\n ],\n enabled: !isMasterMode && hasAllParameters,\n retry: FETCH_ATTEMPTS,\n });\n\n const { refetch: fetchUserToken } = generateUserLiveToken;\n\n const generateObserverLiveToken = useOpQuery({\n apiEndpointName: 'opvideoDeviceGenerateObserverLiveToken',\n parameters: [\n orgId,\n opvideoDeviceId,\n { protocol: 'lk-v1', startLive: true },\n ],\n enabled: isMasterMode,\n retry: 0,\n });\n\n const { room } = useLiveKitRoom({\n room: roomProp, // 99% of the time this will be null, if it's passed it will bypass everything else and just return the passed value\n serverUrl: undefined, // set below when we call .connect()\n token: undefined, // set below when we call .connect()\n connect: false,\n });\n\n const { sendEvent, videoState } = useVideoState();\n const { value: currentVideoState } = videoState;\n\n const { value: isVideoStateMachineEnabled } = useFeatureFlag(\n 'IS_VIDEO_STATE_MACHINE_ENABLED',\n orgId,\n );\n\n // on initial render, loader spinner should start spinning\n // spinner is stopped when player fires off a canplay event\n // here: https://github.com/msi-alta/Platinum/blob/4c9b5f77bd8bddcdb7e63cfd6f625c833913567c/app/containers/OpVideoPlayer/index.js#L414\n useEffect(() => {\n setIsLoading(true);\n }, [\n setIsLoading, // there is apparently no way to make this immutable short of 2 useCallbacks\n ]);\n\n // connect() ONLY on initial render\n useEffect(() => {\n if (!room) return;\n if (!config?.wsUrl || !config?.token) return;\n if (room.state !== 'disconnected') return;\n\n // eslint-disable-next-line no-console\n console.log('[LK] connect()');\n room.connect(config.wsUrl, config.token);\n }, [room, config]);\n\n const reconnect = useCallback(async () => {\n if (config?.wsUrl && config?.token && room?.state === 'disconnected') {\n // eslint-disable-next-line no-console\n console.log('[LK] reconnect()');\n room?.connect(config.wsUrl, config.token);\n }\n }, [room, config]);\n\n // Trigger call on the intercom\n useEffect(() => {\n if (orgId && opvideoDeviceId && currentUserId && shouldStartLive) {\n // on initial render, loader spinner should start spinning\n // spinner is stopped when player fires off a canplay event\n // here: https://github.com/msi-alta/Platinum/blob/4c9b5f77bd8bddcdb7e63cfd6f625c833913567c/app/containers/OpVideoPlayer/index.js#L414\n setIsLoading(true);\n reconnect();\n startLive({\n apiEndpointRequirements: [orgId, opvideoDeviceId, currentUserId],\n payload: { protocol: 'lk-v1' },\n });\n setShouldStartLive(false);\n }\n }, [\n orgId,\n opvideoDeviceId,\n currentUserId,\n startLive,\n shouldStartLive,\n setShouldStartLive,\n setIsLoading,\n reconnect,\n ]);\n\n // all token logic\n useEffect(() => {\n // we already have a token, we don't need to fetch a new one\n // in practice the actual token value that is being used can change without the\n // token state being updated (because it's happening entirely within the LK SDK)\n // but ultimately it doesn't really matter because what we really care about is presence\n // of token\n if (config?.token) return;\n\n // there was an error hitting the startLive Helium endpoint-\n // in practice this will almost never happen because that endpoint is just firing off an MQTT message\n if (startLiveDidError) {\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ConnectionFailed });\n } else {\n setConnectionState(connectionStates.CONNECTION_ERROR);\n }\n }\n }, [\n config?.token,\n currentVideoState,\n isVideoStateMachineEnabled,\n sendEvent,\n setConnectionState,\n startLiveDidError,\n ]);\n\n // handle errors encountered while fetching token\n const didEncounterErrorWhileFetchingToken =\n generateUserLiveToken?.error || generateObserverLiveToken?.error;\n\n const showErrorMessageAndStopSpinner = useCallback(\n (message: string, retryHandler: Function | undefined) => {\n setErrorProps({\n errorMessage: t(message),\n handleRetryClick: retryHandler,\n });\n setIsLoading(false);\n },\n [setErrorProps, setIsLoading, t],\n );\n\n useEffect(() => {\n if (didEncounterErrorWhileFetchingToken) {\n // stop the loading spinner and display a helpful error message to the user\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ConnectionFailed });\n } else {\n setConnectionState(connectionStates.CONNECTION_ERROR);\n }\n showErrorMessageAndStopSpinner(GENERIC_ERROR_MSG, fetchUserToken);\n }\n }, [\n didEncounterErrorWhileFetchingToken,\n setConnectionState,\n fetchUserToken,\n showErrorMessageAndStopSpinner,\n isVideoStateMachineEnabled,\n currentVideoState,\n sendEvent,\n ]);\n\n // sync from props -> state\n // this is used when \"preloading\" a token/wsUrl from a notification payload\n useEffect(() => {\n if (config) return; // we already set config\n\n // a token/wsUrl prop was passed and it hasn't been stored to our config state yet\n // this (should) only fire first render\n if (tokenProp || wsUrlProp) {\n setConfig({\n token: tokenProp,\n wsUrl: wsUrlProp,\n });\n if (isVideoStateMachineEnabled) {\n sendEvent({\n type: VideoEvents.UpdateCallData,\n roomData: { wsUrl: wsUrlProp, token: tokenProp },\n });\n }\n }\n }, [config, isVideoStateMachineEnabled, sendEvent, tokenProp, wsUrlProp]);\n\n // sync from generateUserLiveToken response -> state\n useEffect(() => {\n if (config) return; // we already set config\n\n // the call to generateUserLiveToken worked,\n // we should store that token to state\n if (generateUserLiveToken?.status === 'success') {\n const { token, wsUrl } = generateUserLiveToken.data?.json?.data || {};\n setConfig({ token, wsUrl });\n if (isVideoStateMachineEnabled) {\n sendEvent({\n type: VideoEvents.UpdateCallData,\n roomData: { wsUrl, token },\n });\n }\n }\n }, [\n config,\n generateUserLiveToken.status,\n generateUserLiveToken.data?.json?.data,\n isVideoStateMachineEnabled,\n sendEvent,\n ]);\n\n // sync from generateObserverLiveToken response -> state\n useEffect(() => {\n if (config) return; // we already set config\n if (!isMasterMode) return;\n\n // the call to generateObserverLiveToken worked,\n // we should store that token to state\n if (generateObserverLiveToken?.status === 'success') {\n const { token, wsUrl } =\n generateObserverLiveToken.data?.json?.data || {};\n setConfig({ token, wsUrl });\n if (isVideoStateMachineEnabled) {\n sendEvent({\n type: VideoEvents.UpdateCallData,\n roomData: { wsUrl, token },\n });\n }\n } else {\n // Display error message when token fetching fails for master mode user\n showErrorMessageAndStopSpinner(MM_ERROR_MSG, undefined);\n }\n }, [\n config,\n isMasterMode,\n generateObserverLiveToken.status,\n generateObserverLiveToken.data?.json?.data,\n showErrorMessageAndStopSpinner,\n isVideoStateMachineEnabled,\n sendEvent,\n ]);\n\n const clearConnectionTimeout = useCallback(() => {\n clearTimeout(noVideoDetectedTimeout.current);\n if (!isVideoStateMachineEnabled) {\n setErrorProps(null);\n }\n if (ref !== null && typeof ref !== 'function') {\n const videoElement = ref?.current;\n videoElement?.removeEventListener('canplay', clearConnectionTimeout);\n videoElement?.removeEventListener('timeupdate', clearConnectionTimeout);\n }\n }, [isVideoStateMachineEnabled, ref, setErrorProps]);\n\n const startNoVideoDetectedTimeout = useCallback(() => {\n if (!noVideoDetectedTimeout.current) {\n noVideoDetectedTimeout.current = setTimeout(() => {\n if (ref !== null && typeof ref !== 'function') {\n const videoElement = ref?.current;\n const videoQuality = videoElement?.getVideoPlaybackQuality();\n if (videoQuality && videoQuality?.totalVideoFrames !== 0) {\n clearConnectionTimeout();\n return;\n }\n }\n if (isVideoStateMachineEnabled) {\n sendEvent({ type: VideoEvents.ConnectionFailed });\n } else {\n setConnectionState(connectionStates.CONNECTION_ERROR);\n }\n showErrorMessageAndStopSpinner(CONNECTION_TIMEOUT_MSG, undefined);\n }, timeoutMs.TRACK_DETECTED);\n }\n }, [\n clearConnectionTimeout,\n isVideoStateMachineEnabled,\n ref,\n sendEvent,\n setConnectionState,\n showErrorMessageAndStopSpinner,\n ]);\n\n // Start timeout if no tracks detected\n useEffect(() => {\n if (ref !== null && typeof ref !== 'function') {\n startNoVideoDetectedTimeout();\n const videoElement = ref?.current;\n videoElement?.addEventListener('canplay', clearConnectionTimeout);\n videoElement?.addEventListener('timeupdate', clearConnectionTimeout);\n\n return () => {\n videoElement?.removeEventListener('canplay', clearConnectionTimeout);\n videoElement?.removeEventListener(\n 'timeupdate',\n clearConnectionTimeout,\n );\n };\n }\n }, [clearConnectionTimeout, ref, startNoVideoDetectedTimeout]);\n\n return (\n config && (\n <LiveKitRoom\n room={room}\n serverUrl={undefined}\n token={undefined}\n connect={false}\n onError={() => {\n console.error(\n 'Error connecting to remote video server, please check for downtime at https://status.openpath.com or reach out to support to check your firewall',\n );\n }}\n >\n <LiveKitCallManager\n connectionState={connectionState}\n callState={callState}\n setIsLoading={setIsLoading}\n setShouldStartLive={setShouldStartLive}\n setErrorProps={setErrorProps}\n setCallState={setCallState}\n setConnectionState={setConnectionState}\n isMicrophoneEnabled={isMicrophoneEnabled}\n ref={ref}\n />\n </LiveKitRoom>\n )\n );\n },\n);\n\nexport default memo(LiveKitVideoPlayer);\n","import { useEffect, useState } from 'react';\nimport { heliumReceive } from 'utils/helpers';\n\nconst CLIP_NOT_FOUND_MSG = 'No clip found';\nconst HELP_MSG =\n 'Most likely this means the event was deleted due to the retention period elapsing';\n\nconst clipPlaybackError = (t) => (\n <div className=\"op-flex-direction-column op-fully-centered-content\">\n <div key=\"1\" className=\"op-margin-bottom-22\">\n {t(CLIP_NOT_FOUND_MSG)}\n </div>\n <div key=\"2\">{t(HELP_MSG)}</div>\n </div>\n);\n\nexport const useOpVideoPlayerData = ({\n orgId,\n opvideoDeviceId,\n currentIdentityLanguage,\n isLive,\n startAt,\n endAt,\n unixTimestamp,\n sendEvent,\n VideoEvents,\n isIncomingCall,\n setErrorProps,\n t,\n}) => {\n const [playerValues, setPlayerValues] = useState({});\n const [isLoading, setIsLoading] = useState(false);\n\n // Load data needed for player once on mount\n useEffect(() => {\n sendEvent({ type: VideoEvents.ConnectionStart });\n\n // We don't run setup if we have bad data\n if (!isLive && !((startAt && endAt) || unixTimestamp)) {\n /*\n If a unixTimestamp doesn't exist this means we most likely got an\n invalid startTime from the URL param. This most likely means the event\n no longer exists due to the event being outside the retention period.\n */\n setErrorProps({\n errorMessage: clipPlaybackError(t),\n handleRetryClick: undefined,\n });\n console.error(\n 'Neither startDate, endDate, or unixTimestamp were provided. Most likely this means that an invalid URL param `startTime` was provided (normally due the event being deleted as it is not within the retention period).',\n );\n\n sendEvent({ type: VideoEvents.ConnectionFailed });\n return;\n }\n\n // Do nothing if we don't have the orgId\n if (!orgId) {\n return;\n }\n\n // Player setup\n (async () => {\n const {\n data: opvideoDevice,\n localizedErrorMessage: describeOpvideoDeviceErrorMessage,\n } = await heliumReceive(\n 'describeOpvideoDevice',\n [orgId, opvideoDeviceId],\n {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n\n if (describeOpvideoDeviceErrorMessage) {\n setErrorProps({ errorMessage: describeOpvideoDeviceErrorMessage });\n sendEvent({ type: VideoEvents.ConnectionFailed });\n return;\n }\n\n const { acuPort, cameraId } = opvideoDevice;\n const acuId = acuPort?.acu?.id;\n\n /*\n If we don't have an acuId something went wrong and we fail fast\n We don't need to show a player error here as this doesn't block playback/stream\n */\n if (!acuId || !cameraId) {\n console.error(\n 'Something wrong with the opvideoDevice response object. No acuId or cameraId',\n );\n sendEvent({ type: VideoEvents.ConnectionFailed });\n return;\n }\n\n const [{ data: cameraStaleSnapshot }] = await Promise.all([\n heliumReceive('cameraStaleSnapshot', [orgId, cameraId], {\n headers: { 'Accept-Language': currentIdentityLanguage },\n }),\n ]);\n\n setPlayerValues((prevPlayerValues) => ({\n ...prevPlayerValues,\n opvideoDevice,\n cameraStaleSnapshot,\n }));\n\n sendEvent({ type: VideoEvents.ConnectionSuccessful });\n if (isIncomingCall) {\n sendEvent({ type: VideoEvents.IncomingCall });\n }\n })();\n }, [\n orgId,\n opvideoDeviceId,\n currentIdentityLanguage,\n isLive,\n startAt,\n endAt,\n unixTimestamp,\n sendEvent,\n VideoEvents,\n isIncomingCall,\n setErrorProps,\n t,\n ]);\n\n return {\n playerValues,\n isLoading,\n setIsLoading,\n };\n};\n","import { useEffect, useRef, useState, useCallback } from 'react';\nimport Hls from 'hls.js';\n// import * as Sentry from '@sentry/react'\nimport { heliumReceive } from 'utils/helpers';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { useTranslation } from 'react-i18next';\n\nexport const useHls = ({\n playerRef,\n autoPlay,\n startDate,\n endDate,\n errorProps,\n setErrorProps,\n setIsLoading,\n orgId,\n opvideoDeviceId,\n shouldRun,\n}) => {\n const hls = useRef(null);\n const noFragTimeout = useRef(null);\n const addSecondsIntervalRef = useRef(null);\n const { t } = useTranslation();\n\n const [programDateTime, setProgramDateTime] = useState(null);\n const currentIdentityLanguage = useSelectorJs(\n selectCurrentIdentityLanguage(),\n );\n\n const setupHls = useCallback(async () => {\n // Get hlsPlaybackUrl\n const {\n data: opvideoDeviceHlsPlaybackUrlData,\n localizedErrorMessage: opvideoDeviceHlsPlaybackUrlErrorMessage,\n } = await heliumReceive(\n 'opvideoDeviceHlsPlaybackUrl',\n [orgId, opvideoDeviceId],\n {\n queryStringParams: { startDate, endDate }, // TODO - test with bad dates\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n\n if (\n opvideoDeviceHlsPlaybackUrlErrorMessage ||\n !opvideoDeviceHlsPlaybackUrlData?.clipFound\n ) {\n const errorMessage =\n opvideoDeviceHlsPlaybackUrlErrorMessage ||\n // These are the cases where the HLS url is returned from Helium as `null`\n opvideoDeviceHlsPlaybackUrlData?.cloudRetentionHours\n ? t('No fragments found in the stream for the streaming request.')\n : t('The stream data retention is set to 0 hours.');\n\n setErrorProps({ errorMessage });\n return;\n }\n\n const { url } = opvideoDeviceHlsPlaybackUrlData;\n\n setIsLoading(false);\n\n hls.current = new Hls({\n // hls.js config - https://github.com/video-dev/hls.js/blob/master/docs/API.md#fine-tuning\n enableWorker: false,\n });\n\n hls.current.attachMedia(playerRef.current);\n\n hls.current.on(Hls.Events.MEDIA_ATTACHED, (event, { media }) => {\n hls.current.loadSource(url);\n\n hls.current.on(Hls.Events.MANIFEST_PARSED, () => {\n if (autoPlay) {\n const playPromise = media.play();\n if (playPromise !== undefined) {\n playPromise\n .then(() => {\n media.focus();\n })\n .catch(() => null);\n }\n }\n });\n\n // Watch change in frags so we can get the programDateTime (capture time of hls stream)\n hls.current.on(Hls.Events.FRAG_CHANGED, (evt, { frag }) => {\n // Clear noFragTimeout if there is one\n if (noFragTimeout.current) {\n clearTimeout(noFragTimeout.current);\n noFragTimeout.current = null;\n }\n\n // Clear addSecondsIntervalRef if there is one\n if (addSecondsIntervalRef.current) {\n clearTimeout(addSecondsIntervalRef.current);\n addSecondsIntervalRef.current = null;\n }\n\n setProgramDateTime(frag.programDateTime);\n\n // We can change the interval to a lower value to have a more accurate timestamp, but this comes with the cost of performance\n const INTERVAL = 1000;\n addSecondsIntervalRef.current = setInterval(() => {\n // If the player is paused at timeout time then don't do anything\n if (playerRef.current.paused) {\n return;\n }\n\n setProgramDateTime((prev) => prev + INTERVAL);\n }, INTERVAL);\n\n // If we don't get a changed frag within a threshold then we reset the player\n noFragTimeout.current = setTimeout(() => {\n // If the player is paused at timeout time then don't do anything\n if (playerRef.current.paused) {\n return;\n }\n\n // If a fragment has an issue and prevents the HLS stream from continuing, this\n // should skip to the next fragment (assuming fragment length of 2 seconds).\n console.error('Fragment issue, continuing to next fragment');\n // eslint-disable-next-line no-param-reassign\n playerRef.current.currentTime += 2;\n }, 3000);\n });\n\n // // Log all events and their corresponding data\n // allEvents.forEach(item => hls.current.on(item, (event, data) => console.log(event, data)))\n });\n\n // Handle errors\n hls.current.on(Hls.Events.ERROR, (event, error) => {\n // eslint-disable-next-line no-console\n console.log({ 'HLS ERROR': error });\n\n // // Send error to Sentry\n // Sentry.captureException(error)\n // Sentry.captureMessage(`HLS ERROR: ${JSON.stringify(error)}`)\n\n if (error.fatal) {\n switch (error.type) {\n case Hls.ErrorTypes.NETWORK_ERROR:\n // eslint-disable-next-line no-console\n console.log('fatal network error encountered, try to recover');\n hls.current.startLoad();\n break;\n case Hls.ErrorTypes.MEDIA_ERROR:\n // eslint-disable-next-line no-console\n console.log('fatal media error encountered, try to recover');\n hls.current.recoverMediaError();\n break;\n default:\n // eslint-disable-next-line no-console\n console.log('fatal network error encountered, restarting');\n setupHls();\n break;\n }\n }\n });\n }, [\n t,\n autoPlay,\n currentIdentityLanguage,\n endDate,\n opvideoDeviceId,\n orgId,\n playerRef,\n setErrorProps,\n setIsLoading,\n startDate,\n ]);\n\n useEffect(() => {\n if (shouldRun && !hls.current) {\n setupHls();\n }\n }, [setupHls, shouldRun]);\n // }, [endDate, setupHls, shouldRun, startDate]);\n\n useEffect(\n () => () => {\n // If hls\n if (hls.current) {\n hls.current.destroy();\n hls.current = null;\n }\n\n // Make sure we clear the timeout so we don't reset the player when remounting\n if (noFragTimeout.current) {\n clearTimeout(noFragTimeout.current);\n noFragTimeout.current = null;\n }\n\n if (addSecondsIntervalRef.current) {\n clearTimeout(addSecondsIntervalRef.current);\n addSecondsIntervalRef.current = null;\n }\n },\n [errorProps],\n );\n\n return { programDateTime };\n};\n","import React, { memo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { heliumSend } from 'utils/helpers';\nimport { DownloadSvg } from 'components/svgs/DownloadSvg';\nimport { Popup } from 'components/Popup';\nimport { useTranslation } from 'react-i18next';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { Clickable } from 'components/Clickable/Clickable';\n\nconst styles = {\n wrapper: { paddingTop: 9, marginLeft: 8 },\n};\n\nconst VideoDownloadButton = memo(\n ({ orgId, opvideoDeviceId, startDate, endDate }) => {\n const { t } = useTranslation();\n const currentIdentityLanguage = useSelectorJs(\n selectCurrentIdentityLanguage(),\n );\n\n const handleClick = useCallback(async () => {\n const { data } = await heliumSend(\n 'opvideoDeviceCreateClipDownload',\n [orgId, opvideoDeviceId],\n { startDate, endDate },\n {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n\n const downloadUrl = data?.downloadUrl;\n\n if (downloadUrl) {\n window.open(downloadUrl, '_blank');\n }\n }, [orgId, opvideoDeviceId, startDate, endDate, currentIdentityLanguage]);\n\n if (!orgId || !opvideoDeviceId || !startDate || !endDate) {\n return null;\n }\n\n return (\n <Popup\n trigger={\n <Clickable\n style={styles.wrapper}\n className=\"player-controls-button op-justify-content-center op-cursor-pointer\"\n onClick={handleClick}\n >\n <DownloadSvg\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 12 12\"\n fill=\"white\"\n stroke=\"white\"\n strokeWidth=\"0.4\"\n />\n </Clickable>\n }\n content={t('Download video')}\n position=\"bottom center\"\n />\n );\n },\n);\n\nVideoDownloadButton.displayName = 'VideoDownloadButton';\n\nVideoDownloadButton.propTypes = {\n orgId: PropTypes.number.isRequired,\n opvideoDeviceId: PropTypes.number.isRequired,\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n};\n\nexport default VideoDownloadButton;\n","import React, {\n memo,\n useMemo,\n useRef,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useVideoState, VideoEvents } from '@msi-alta/opvideo-state-machine';\nimport { selectCurrentUserId } from 'global/accessToken/selectors';\nimport { useMicrophonePermission, useSelectorJs } from 'utils/customHooks';\nimport { opMoment } from 'utils/dates';\nimport { getOpParams } from 'utils/getOpParams';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport LiveKitVideoPlayer from 'new-components/LiveKitVideoPlayer/LiveKitVideoPlayer';\nimport { VideoPlayer as VideoPlayerComponent } from 'containers/OpVideoPlayer/components';\nimport { useOpVideoPlayerData } from 'containers/OpVideoPlayer/helpers/useOpVideoPlayerData';\nimport { useHls } from 'containers/OpVideoPlayer/helpers/useHls';\nimport { useIntercomCallButtonClick } from 'containers/OpVideoPlayer/helpers/useIntercomCallButtonClick';\nimport { useUpperControlsContent } from 'containers/OpVideoPlayer/helpers/useUpperControlsContent';\nimport { useVideoLoadingEvents } from 'containers/OpVideoPlayer/helpers/useVideoLoadingEvents';\n\ninterface VideoPlayerProps {\n ref?: React.Ref<any>;\n isLoading?: boolean;\n width?: string | number;\n height?: string | number;\n url?: string;\n aspectRatio?: number;\n muted?: boolean;\n preventedHotkeys?: string[];\n preventVideoClick?: boolean;\n isLive?: boolean;\n controls?: boolean;\n upperControls?: React.ReactElement;\n errorProps?: {\n buttonContent?: string;\n errorMessage?: any;\n handleRetryClick?: () => void;\n iconName?: string;\n };\n hiddenElements?: string[];\n upperControlsContent?: {\n left?: {\n fadeIn?: boolean;\n content?: any;\n };\n center?: {\n fadeIn?: boolean;\n content?: any;\n };\n right?: {\n fadeIn?: boolean;\n content?: any;\n };\n };\n videoDownloadButtonProps?: {\n opvideoDeviceId: number;\n startDate: string;\n endDate: string;\n };\n initialVolume?: number;\n [key: string]: any;\n}\n\nconst VideoPlayer = VideoPlayerComponent as React.FC<VideoPlayerProps>;\n\n// TODO: Update opvideo-state-machine so that states can be imported when isolatedModules is enabled\nconst VideoStates = {\n CONNECTING: 'CONNECTING',\n CONNECTED: 'CONNECTED',\n PREVIEW: 'PREVIEW',\n SURVEILLANCE: 'SURVEILLANCE',\n CALL: 'CALL',\n FAILED: 'FAILED',\n RECONNECTING: 'RECONNECTING',\n DISCONNECTING: 'DISCONNECTING',\n DISCONNECTED: 'DISCONNECTED',\n};\n\ninterface OpVideoPlayerProps {\n opvideoDeviceId: number;\n autoPlay?: boolean;\n controls?: boolean;\n isLive?: boolean;\n isIncomingCall?: boolean;\n startAt?: string;\n endAt?: string;\n unixTimestamp?: number;\n isClip?: boolean;\n livekitAuth?: any;\n livekitRoom?: any;\n [key: string]: any;\n}\n\nconst NewOpVideoPlayer: React.FC<OpVideoPlayerProps> = ({\n opvideoDeviceId,\n autoPlay = true,\n controls = true,\n isLive = false,\n isIncomingCall = false,\n startAt = '', // Date string (e.g. 2022-03-30T18:26:23.000Z)\n endAt = '', // Date string (e.g. 2022-03-30T18:26:34.968Z)\n unixTimestamp = 0, // Timestamp in seconds\n isClip = false,\n livekitAuth = null,\n livekitRoom = null,\n // Passed through to <video>\n ...videoPlayerProps\n}) => {\n const { t } = useTranslation();\n\n /*\n LiveKit:\n Both preview and call run under the same LiveKit call.\n When you hit the \"call\" button, the mic is enabled\n */\n const [errorProps, setErrorProps] = useState<any>(null);\n const [initialVolume, setInitialVolume] = useState<number>(isLive ? 0 : 1);\n const [shouldStopVideoCall, setShouldStopVideoCall] =\n useState<boolean>(false);\n const [hasShownMicAlert, sethasShownMicAlert] = useState<boolean>(false);\n\n const playerRef = useRef<any>(null);\n const dispatch = useDispatch();\n const micPermission = useMicrophonePermission();\n const currentUserId = useSelectorJs(selectCurrentUserId());\n const currentIdentityLanguage = useSelectorJs(\n selectCurrentIdentityLanguage(),\n );\n\n const { videoState, sendEvent } = useVideoState();\n const { value: currentVideoState, context: videoStateContext } = videoState;\n const { orgId } = getOpParams();\n\n const handleMicState = useCallback(() => {\n sendEvent({\n type: videoStateContext.micEnabled\n ? VideoEvents.MicDisabled\n : VideoEvents.MicEnabled,\n });\n }, [sendEvent, videoStateContext.micEnabled]);\n\n const isMicEnabled = useCallback(() => {\n return videoStateContext.micEnabled;\n }, [videoStateContext.micEnabled]);\n\n const micPermissionStatus = useMicrophonePermission();\n\n // @ws TODO: drop opvideoDeviceStreamingSubscriberToken scope checks littered throughout codebase and make them camera-specific not opvideoDevice-specific 🙃\n\n const { playerValues, isLoading, setIsLoading } = useOpVideoPlayerData({\n orgId,\n opvideoDeviceId,\n currentIdentityLanguage,\n isLive,\n startAt,\n endAt,\n unixTimestamp,\n sendEvent,\n VideoEvents,\n isIncomingCall,\n setErrorProps,\n t,\n });\n\n const { opvideoDevice, cameraStaleSnapshot } = (playerValues as any) || {};\n /*\n Destructuring here to prevent issues when items are null\n (as default prop only works when value is undefined)\n */\n const {\n cameraId,\n opvideoIntercom,\n recordPreEventSeconds,\n recordPostEventSeconds,\n } = opvideoDevice || {};\n\n const { id: opvideoIntercomId } = opvideoIntercom || {};\n const { blurredThumbnailUrl } = cameraStaleSnapshot || {};\n\n /*\n Create startAt and endAt values\n As this is only used for entry unlock events we are not taking clip length\n into consideration and simply using the pre/post recording buffer to create\n a consistent length clip\n */\n const startDate =\n startAt ||\n opMoment.unix(unixTimestamp - recordPreEventSeconds).toISOString();\n const endDate =\n endAt ||\n opMoment.unix(unixTimestamp + recordPostEventSeconds).toISOString();\n\n useHls({\n playerRef,\n autoPlay,\n startDate,\n endDate,\n errorProps,\n setErrorProps,\n setIsLoading,\n orgId,\n opvideoDeviceId,\n shouldRun:\n !isLive &&\n playerRef.current &&\n !errorProps &&\n recordPreEventSeconds &&\n recordPostEventSeconds,\n });\n\n // Destroy the player on unmount\n useEffect(\n () => () => {\n // Destroy playerRef\n if (playerRef.current) {\n playerRef.current = null;\n }\n },\n [],\n );\n\n useEffect(() => {\n sendEvent({\n type:\n micPermissionStatus === 'granted'\n ? VideoEvents.MicPermissionEnabled\n : VideoEvents.MicPermissionDisabled,\n });\n }, [micPermissionStatus, sendEvent]);\n\n const intercomCallButtonClick = useIntercomCallButtonClick({\n currentVideoState,\n sendEvent,\n handleMicState,\n });\n\n // Manage video volume\n useEffect(() => {\n if (\n currentVideoState === VideoStates.PREVIEW ||\n currentVideoState === VideoStates.SURVEILLANCE\n ) {\n setInitialVolume(0);\n } else if (currentVideoState === VideoStates.CALL) {\n setInitialVolume(1);\n }\n }, [currentVideoState]);\n\n useEffect(() => {\n if (\n !isClip &&\n (currentVideoState === VideoStates.PREVIEW ||\n currentVideoState === VideoStates.SURVEILLANCE) &&\n micPermission === 'denied' &&\n !hasShownMicAlert\n ) {\n dispatch(setAlert('warning', t(`Browser microphone permission denied.`)));\n sethasShownMicAlert(true);\n }\n }, [dispatch, hasShownMicAlert, isClip, micPermission, t, currentVideoState]);\n\n const upperControlsContent = useUpperControlsContent({\n controls,\n opvideoIntercomId,\n currentVideoState,\n isClip,\n intercomCallButtonClick,\n micPermission,\n isLive,\n cameraId,\n handleMicState,\n isMicEnabled,\n startDate,\n endDate,\n orgId,\n opvideoDeviceId,\n });\n\n const preventedHotkeys = useMemo(\n () => (isLive ? [' ', 'ArrowLeft', 'ArrowRight'] : []),\n [isLive],\n );\n\n const hiddenElements = useMemo(() => {\n const elementsToHide = [];\n\n // Hide items when live streaming\n if (isLive) {\n elementsToHide.push(\n 'BigPlayButton',\n 'PlayButton',\n 'SeekBar',\n 'TimeDisplay',\n );\n } else {\n elementsToHide.push('LiveButton');\n }\n\n // Hide volume button if not an intercom or if the mic is not enabled\n if (\n !opvideoIntercomId ||\n !opvideoDevice?.opvideoIntercom?.isMicrophoneEnabled\n ) {\n elementsToHide.push('VolumeButton');\n }\n\n return elementsToHide;\n }, [\n isLive,\n opvideoIntercomId,\n opvideoDevice?.opvideoIntercom?.isMicrophoneEnabled,\n ]);\n\n const videoPlayerErrorProps = useMemo(\n () => ({\n handleRetryClick: () => {\n setErrorProps(null);\n setIsLoading(true);\n },\n ...(errorProps && typeof errorProps === 'object' ? errorProps : {}),\n }),\n [errorProps, setIsLoading],\n );\n\n // Stop loader if there is an error\n useEffect(() => {\n if (errorProps) {\n setIsLoading(false);\n }\n }, [errorProps, setIsLoading]);\n\n // Updates on callState changes\n useEffect(() => {\n if (\n shouldStopVideoCall &&\n currentVideoState === VideoStates.DISCONNECTED &&\n opvideoIntercomId\n ) {\n setShouldStopVideoCall(false);\n setInitialVolume(0);\n }\n // Clear any errors so we can view intercom call unobstructed\n if (currentVideoState === VideoStates.CONNECTED) {\n setErrorProps(null);\n sendEvent({ type: VideoEvents.VideoDetails });\n }\n }, [\n currentIdentityLanguage,\n currentUserId,\n currentVideoState,\n opvideoIntercomId,\n orgId,\n sendEvent,\n shouldStopVideoCall,\n ]);\n\n useVideoLoadingEvents({\n playerRef,\n setIsLoading,\n });\n\n return (\n <div className=\"op-line-height-normal\" data-testid=\"newopvideoplayer\">\n {' '}\n {/** Prevents alignment issues caused by .ui.dimmer */}\n <VideoPlayer\n ref={playerRef}\n isLoading={isLoading}\n muted // Must mute when possible so that autoplay is most consistent\n playsInline\n preventVideoClick\n poster={blurredThumbnailUrl}\n {...{\n autoPlay,\n controls,\n upperControlsContent,\n preventedHotkeys,\n hiddenElements,\n initialVolume,\n ...(errorProps && typeof errorProps === 'object'\n ? { errorProps: videoPlayerErrorProps }\n : {}),\n // Everything else gets passed through\n ...videoPlayerProps,\n }}\n />\n {!isClip && (\n <LiveKitVideoPlayer\n ref={playerRef}\n {...{\n room: livekitRoom,\n token: livekitAuth?.token,\n wsUrl: livekitAuth?.wsUrl,\n isMicrophoneEnabled: isMicEnabled(),\n setErrorProps,\n setIsLoading,\n orgId,\n opvideoDeviceId,\n currentUserId,\n currentIdentityLanguage,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default memo(NewOpVideoPlayer);\n","import { useCallback } from 'react';\nimport { VideoEvents, VideoStates } from '@msi-alta/opvideo-state-machine';\n\n// Intercom button click handler\nexport const useIntercomCallButtonClick = ({\n currentVideoState,\n sendEvent,\n handleMicState,\n}) => {\n return useCallback(() => {\n switch (currentVideoState) {\n case VideoStates.SURVEILLANCE:\n sendEvent({ type: VideoEvents.StartCall });\n break;\n case VideoStates.PREVIEW:\n handleMicState();\n sendEvent({ type: VideoEvents.JoinCall });\n break;\n case VideoStates.CALL:\n sendEvent({ type: VideoEvents.VideoDetails });\n break;\n default:\n }\n }, [currentVideoState, sendEvent, handleMicState]);\n};\n","import { useMemo } from 'react';\nimport { VideoStates } from '@msi-alta/opvideo-state-machine';\nimport { EntryUnlockButton } from 'containers/EntryUnlockButton';\nimport { WebRtcButton, MicrophoneToggleButton } from '../components';\nimport VideoDownloadButton from '../components/VideoDownloadButton';\n\nexport const useUpperControlsContent = ({\n controls,\n opvideoIntercomId,\n currentVideoState,\n isClip,\n intercomCallButtonClick,\n micPermission,\n isLive,\n cameraId,\n handleMicState,\n isMicEnabled,\n startDate,\n endDate,\n orgId,\n opvideoDeviceId,\n}) => {\n return useMemo(() => {\n /*\n We are linking upper and lower controls together so we don't want\n to show the upper controls if controls is set to false\n */\n if (!controls) return null;\n\n return {\n ...(!!opvideoIntercomId &&\n (currentVideoState === VideoStates.PREVIEW ||\n currentVideoState === VideoStates.SURVEILLANCE ||\n currentVideoState === VideoStates.CALL) &&\n !isClip && {\n center: {\n isPersisted: true,\n content: (\n <WebRtcButton\n onClick={intercomCallButtonClick}\n micPermission={micPermission}\n />\n ),\n style: { flex: 0, padding: '0 11px' },\n },\n }),\n\n ...((currentVideoState === VideoStates.PREVIEW ||\n currentVideoState === VideoStates.SURVEILLANCE ||\n currentVideoState === VideoStates.CALL ||\n (isLive && !!cameraId) ||\n !isLive) && {\n right: {\n isPersisted: isLive,\n content: (\n <>\n {currentVideoState === VideoStates.CALL && (\n <MicrophoneToggleButton\n toggleHandler={handleMicState}\n initState={isMicEnabled()}\n />\n )}\n {isLive && Boolean(cameraId) && (\n <EntryUnlockButton cameraId={cameraId} />\n )}\n {!isLive && startDate && endDate && (\n <VideoDownloadButton\n orgId={orgId}\n opvideoDeviceId={opvideoDeviceId}\n startDate={startDate}\n endDate={endDate}\n />\n )}\n </>\n ),\n },\n }),\n };\n }, [\n controls,\n opvideoIntercomId,\n currentVideoState,\n isClip,\n intercomCallButtonClick,\n micPermission,\n isLive,\n cameraId,\n handleMicState,\n isMicEnabled,\n startDate,\n endDate,\n orgId,\n opvideoDeviceId,\n ]);\n};\n","import { useEffect } from 'react';\n\nexport const useVideoLoadingEvents = ({ playerRef, setIsLoading }) => {\n useEffect(() => {\n if (!playerRef?.current) return;\n const videoElement = playerRef.current;\n\n const endLoading = () => {\n setIsLoading(false);\n };\n\n videoElement.addEventListener('canplay', endLoading);\n videoElement.addEventListener('timeupdate', endLoading);\n\n // cleanup\n return () => {\n videoElement.removeEventListener('canplay', endLoading);\n videoElement.removeEventListener('timeupdate', endLoading);\n };\n }, [setIsLoading, playerRef]);\n};\n","import React, {\n memo,\n useMemo,\n useRef,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport { useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { useMicrophonePermission, useSelectorJs } from 'utils/customHooks';\nimport { useFeatureFlag } from 'utils/customHooks/useFeatureFlag';\nimport { heliumReceive } from 'utils/helpers';\nimport { getOpParams } from 'utils/getOpParams';\nimport { selectCurrentUserId } from 'global/accessToken/selectors';\nimport { EntryUnlockButton } from 'containers/EntryUnlockButton';\nimport { useTranslation } from 'react-i18next';\nimport { selectCurrentIdentityLanguage } from 'routes/AppContainer/selectors';\nimport { opMoment } from 'utils/dates';\nimport LiveKitVideoPlayer from 'new-components/LiveKitVideoPlayer/LiveKitVideoPlayer';\nimport NewOpVideoPlayer from 'new-components/NewOpVideoPlayer/NewOpVideoPlayer';\nimport { VideoStateProvider } from '@msi-alta/opvideo-state-machine';\nimport { setAlert } from 'routes/AppContainer/actions';\nimport {\n VideoPlayer,\n WebRtcButton,\n MicrophoneToggleButton,\n} from './components';\nimport { useHls } from './helpers/useHls';\nimport { callStates, connectionStates } from './constants';\nimport VideoDownloadButton from './components/VideoDownloadButton';\n\nconst CLIP_NOT_FOUND_MSG = 'No clip found';\nconst HELP_MSG =\n 'Most likely this means the event was deleted due to the retention period elapsing';\n\nconst clipPlaybackError = (t) => (\n <div className=\"op-flex-direction-column op-fully-centered-content\">\n <div key=\"1\" className=\"op-margin-bottom-22\">\n {t(CLIP_NOT_FOUND_MSG)}\n </div>\n <div key=\"2\">{t(HELP_MSG)}</div>\n </div>\n);\n\nconst WrappedOpVideoPlayer = (props) => {\n const { orgId } = getOpParams();\n const { value: isVideoStateMachineEnabled } = useFeatureFlag(\n 'IS_VIDEO_STATE_MACHINE_ENABLED',\n orgId,\n );\n\n return (\n <VideoStateProvider>\n {isVideoStateMachineEnabled ? (\n <NewOpVideoPlayer {...props} />\n ) : (\n <OpVideoPlayer {...props} />\n )}\n </VideoStateProvider>\n );\n};\n\n// Legacy code\nconst OpVideoPlayer = ({\n opvideoDeviceId,\n autoPlay = true,\n controls = true,\n isLive = false,\n isIncomingCall = false,\n startAt = '', // Date string (e.g. 2022-03-30T18:26:23.000Z)\n endAt = '', // Date string (e.g. 2022-03-30T18:26:34.968Z)\n unixTimestamp = 0, // Timestamp in seconds\n isClip = false,\n livekitAuth = null,\n livekitRoom = null,\n // Passed through to <video>\n ...videoPlayerProps\n}) => {\n const { t } = useTranslation();\n /*\n LiveKit:\n Both preview and call run under the same LiveKit call.\n When you hit the \"call\" button, the mic is enabled\n */\n const [connectionState, setConnectionState] = useState(\n connectionStates.DISCONNECTED,\n );\n const [callState, setCallState] = useState(callStates.PREVIEW);\n\n const [errorProps, setErrorProps] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [playerValues, setPlayerValues] = useState({});\n const [initialVolume, setInitialVolume] = useState(isLive ? 0 : 1);\n const [isMicrophoneEnabled, setIsMicrophoneEnabled] = useState(false);\n const [shouldStopVideoCall, setShouldStopVideoCall] = useState(false);\n const [hasShownMicAlert, sethasShownMicAlert] = useState(false);\n\n const playerRef = useRef(null);\n const dispatch = useDispatch();\n const micPermission = useMicrophonePermission();\n const currentUserId = useSelectorJs(selectCurrentUserId());\n const currentIdentityLanguage = useSelectorJs(\n selectCurrentIdentityLanguage(),\n );\n const { orgId } = getOpParams();\n const { opvideoDevice, cameraStaleSnapshot } = playerValues || {};\n\n const handleMicState = useCallback(() => {\n setIsMicrophoneEnabled((prevState) => !prevState);\n }, []);\n\n // @ws TODO: drop opvideoDeviceStreamingSubscriberToken scope checks littered throughout codebase and make them camera-specific not opvideoDevice-specific 🙃\n\n /*\n Destructuring here to prevent issues when items are null\n (as default prop only works when value is undefined)\n */\n const {\n cameraId,\n opvideoIntercom,\n recordPreEventSeconds,\n recordPostEventSeconds,\n } = opvideoDevice || {};\n const { id: opvideoIntercomId } = opvideoIntercom || {};\n const { blurredThumbnailUrl } = cameraStaleSnapshot || {};\n\n /*\n Create startAt and endAt values\n As this is only used for entry unlock events we are not taking clip length\n into consideration and simply using the pre/post recording buffer to create\n a consistent length clip\n */\n const startDate =\n startAt ||\n opMoment.unix(unixTimestamp - recordPreEventSeconds).toISOString();\n const endDate =\n endAt ||\n opMoment.unix(unixTimestamp + recordPostEventSeconds).toISOString();\n\n useHls({\n playerRef,\n autoPlay,\n startDate,\n endDate,\n errorProps,\n setErrorProps,\n setIsLoading,\n orgId,\n opvideoDeviceId,\n shouldRun:\n !isLive &&\n playerRef.current &&\n !errorProps &&\n recordPreEventSeconds &&\n recordPostEventSeconds,\n });\n\n // Load data needed for player once on mount\n useEffect(() => {\n // We don't run setup if we have bad data\n if (!isLive && !((startAt && endAt) || unixTimestamp)) {\n /*\n If a unixTimestamp doesn't exist this means we most likely got an\n invalid startTime from the URL param. This most likely means the event\n no longer exists due to the event being outside the retention period.\n */\n setErrorProps({\n errorMessage: clipPlaybackError(t),\n handleRetryClick: undefined,\n });\n\n console.error(\n 'Neither startDate, endDate, or unixTimestamp were provided. Most likely this means that an invalid URL param `startTime` was provided (normally due the event being deleted as it is not within the retention period).',\n );\n\n return;\n }\n\n // Do nothing if we don't have the orgId\n if (!orgId) {\n return;\n }\n\n // Player setup\n (async () => {\n const {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n data: opvideoDevice,\n localizedErrorMessage: describeOpvideoDeviceErrorMessage,\n } = await heliumReceive(\n 'describeOpvideoDevice',\n [orgId, opvideoDeviceId],\n {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n },\n );\n\n if (describeOpvideoDeviceErrorMessage) {\n setErrorProps({ errorMessage: describeOpvideoDeviceErrorMessage });\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { acuPort, cameraId } = opvideoDevice;\n const acuId = acuPort?.acu?.id;\n\n /*\n If we don't have an acuId something went wrong and we fail fast\n We don't need to show a player error here as this doesn't block playback/stream\n */\n if (!acuId || !cameraId) {\n console.error(\n 'Something wrong with the opvideoDevice response object. No acuId or cameraId',\n );\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const [{ data: cameraStaleSnapshot }] = await Promise.all([\n heliumReceive('cameraStaleSnapshot', [orgId, cameraId], {\n headers: {\n 'Accept-Language': currentIdentityLanguage,\n },\n }),\n ]);\n\n setPlayerValues((prevPlayerValues) => ({\n ...prevPlayerValues,\n opvideoDevice,\n cameraStaleSnapshot,\n }));\n })();\n }, [\n currentIdentityLanguage,\n endAt,\n isLive,\n opvideoDeviceId,\n orgId,\n startAt,\n t,\n unixTimestamp,\n isIncomingCall,\n ]);\n\n // Destroy the player on unmount\n useEffect(\n () => () => {\n // Destroy playerRef\n if (playerRef.current) {\n playerRef.current = null;\n }\n },\n [],\n );\n\n // Intercom button click handler\n const handleCallButtonClick = useCallback(() => {\n switch (connectionState) {\n case connectionStates.CONNECTED:\n if (callState === callStates.PREVIEW) {\n if (micPermission === 'granted') {\n setCallState(callStates.CALL);\n setIsMicrophoneEnabled(true);\n }\n }\n if (callState === callStates.CALL) {\n setCallState(callStates.PREVIEW);\n }\n break;\n case connectionStates.DISCONNECTED:\n setCallState(callStates.DISCONNECTED);\n setIsMicrophoneEnabled(false);\n break;\n case connectionStates.CONNECTING || connectionStates.CONNECTION_ERROR:\n setConnectionState(connectionStates.DISCONNECTED);\n break;\n default:\n }\n }, [callState, connectionState, micPermission]);\n\n // Manage video volume\n useEffect(() => {\n if (connectionState === connectionStates.CONNECTED) {\n if (callState === callStates.PREVIEW) {\n setInitialVolume(0);\n }\n if (callState === callStates.CALL) {\n setInitialVolume(1);\n }\n }\n }, [callState, connectionState]);\n\n useEffect(() => {\n if (\n !isClip &&\n connectionStates.CONNECTED &&\n callState === callStates.PREVIEW &&\n micPermission === 'denied' &&\n !hasShownMicAlert\n ) {\n dispatch(setAlert('warning', t(`Browser microphone permission denied.`)));\n sethasShownMicAlert(true);\n }\n }, [callState, dispatch, hasShownMicAlert, isClip, micPermission, t]);\n\n const upperControlsContent = useMemo(() => {\n /*\n We are linking upper and lower controls together so we don't want\n to show the upper controls if controls is set to false\n */\n if (!controls) return null;\n\n return {\n ...(!!opvideoIntercomId &&\n (connectionState === connectionStates.CONNECTED ||\n callState === callStates.PREVIEW) &&\n !isClip && {\n center: {\n isPersisted: true,\n content: (\n <WebRtcButton\n onClick={handleCallButtonClick}\n connectionState={connectionState}\n callState={callState}\n micPermission={micPermission}\n />\n ),\n style: { flex: 0, padding: '0 11px' },\n },\n }),\n\n ...((connectionState === connectionStates.CONNECTED ||\n (isLive && !!cameraId) ||\n !isLive) && {\n right: {\n isPersisted: isLive,\n content: (\n <>\n {connectionState === connectionStates.CONNECTED &&\n callState === callStates.CALL && (\n <MicrophoneToggleButton\n toggleHandler={handleMicState}\n initState={isMicrophoneEnabled}\n />\n )}\n {isLive && Boolean(cameraId) && (\n <EntryUnlockButton cameraId={cameraId} />\n )}\n {!isLive && startDate && endDate && (\n <VideoDownloadButton\n orgId={orgId}\n opvideoDeviceId={opvideoDeviceId}\n startDate={startDate}\n endDate={endDate}\n />\n )}\n </>\n ),\n },\n }),\n };\n }, [\n controls,\n isClip,\n callState,\n micPermission,\n opvideoIntercomId,\n connectionState,\n handleCallButtonClick,\n isLive,\n cameraId,\n handleMicState,\n isMicrophoneEnabled,\n startDate,\n endDate,\n orgId,\n opvideoDeviceId,\n ]);\n\n const preventedHotkeys = useMemo(\n () => (isLive ? [' ', 'ArrowLeft', 'ArrowRight'] : []),\n [isLive],\n );\n\n const hiddenElements = useMemo(() => {\n const elementsToHide = [];\n\n // Hide items when live streaming\n if (isLive) {\n elementsToHide.push(\n 'BigPlayButton',\n 'PlayButton',\n 'SeekBar',\n 'TimeDisplay',\n );\n } else {\n elementsToHide.push('LiveButton');\n }\n\n // Hide volume button if not an intercom or if the mic is not enabled\n if (\n !opvideoIntercomId ||\n !opvideoDevice?.opvideoIntercom?.isMicrophoneEnabled\n ) {\n elementsToHide.push('VolumeButton');\n }\n\n return elementsToHide;\n }, [\n isLive,\n opvideoIntercomId,\n opvideoDevice?.opvideoIntercom?.isMicrophoneEnabled,\n ]);\n\n const videoPlayerErrorProps = useMemo(\n () => ({\n handleRetryClick: () => {\n setErrorProps(null);\n setIsLoading(true);\n },\n ...errorProps,\n }),\n [errorProps],\n );\n\n // Stop loader if there is an error\n useEffect(() => {\n if (errorProps) {\n setIsLoading(false);\n }\n }, [errorProps]);\n\n // Updates on callState changes\n useEffect(() => {\n if (\n shouldStopVideoCall &&\n connectionState === connectionStates.DISCONNECTED &&\n opvideoIntercomId\n ) {\n setShouldStopVideoCall(false);\n setInitialVolume(0);\n }\n // Clear any errors so we can view intercom call unobstructed\n if (connectionState === connectionStates.CONNECTED) {\n setErrorProps(null);\n }\n }, [\n connectionState,\n currentIdentityLanguage,\n currentUserId,\n opvideoIntercomId,\n orgId,\n shouldStopVideoCall,\n ]);\n\n // (I am so sorry for tacking on another useEffect instead of fundamentally solving this, I tried and just about lost my mind)\n useEffect(() => {\n if (!playerRef?.current) return;\n const videoElement = playerRef.current;\n\n const endLoading = () => {\n setIsLoading(false);\n };\n\n videoElement.addEventListener('canplay', endLoading);\n videoElement.addEventListener('timeupdate', endLoading);\n\n // cleanup\n return () => {\n videoElement.removeEventListener('canplay', endLoading);\n videoElement.removeEventListener('timeupdate', endLoading);\n };\n }, []);\n\n return (\n <div className=\"op-line-height-normal\" data-testid=\"opvideoplayer\">\n {' '}\n {/** Prevents alignment issues caused by .ui.dimmer */}\n <VideoPlayer\n ref={playerRef}\n isLoading={isLoading}\n muted // Must mute when possible so that autoplay is most consistent\n playsInline\n preventVideoClick\n poster={blurredThumbnailUrl}\n {...{\n autoPlay,\n controls,\n upperControlsContent,\n preventedHotkeys,\n hiddenElements,\n initialVolume,\n ...(errorProps && {\n errorProps: videoPlayerErrorProps,\n }),\n // Everything else gets passed through\n ...videoPlayerProps,\n }}\n />\n {!isClip && (\n <LiveKitVideoPlayer\n ref={playerRef}\n {...{\n room: livekitRoom,\n token: livekitAuth?.token,\n wsUrl: livekitAuth?.wsUrl,\n callState,\n connectionState,\n isMicrophoneEnabled,\n setCallState,\n setConnectionState,\n setErrorProps,\n setIsLoading,\n orgId,\n opvideoDeviceId,\n currentUserId,\n currentIdentityLanguage,\n }}\n />\n )}\n </div>\n );\n};\n\nOpVideoPlayer.propTypes = {\n opvideoDeviceId: PropTypes.number.isRequired,\n // this is getting spread....\n // eslint-disable-next-line react/no-unused-prop-types\n poster: PropTypes.string,\n autoPlay: PropTypes.bool,\n controls: PropTypes.bool,\n // this is getting spread....\n // eslint-disable-next-line react/no-unused-prop-types\n aspectRatio: PropTypes.number,\n isLive: PropTypes.bool,\n isClip: PropTypes.bool,\n isIncomingCall: PropTypes.bool,\n startAt: PropTypes.string, // Date/time string\n endAt: PropTypes.string, // Date/time string\n unixTimestamp: PropTypes.number, // Seconds since epoch\n livekitAuth: PropTypes.any,\n livekitRoom: PropTypes.any,\n};\n\nexport default memo(WrappedOpVideoPlayer);\n","import { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds, addNonEnumerableProperty } from '@sentry/utils';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { parent_span_id } = spanToJSON(span);\n\n return dropUndefinedKeys({ parent_span_id, span_id, trace_id });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n try {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(span),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n return {\n span_id,\n trace_id,\n };\n } catch (e) {\n return {};\n }\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nfunction updateMetricSummaryOnActiveSpan(\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const span = getActiveSpan();\n if (span) {\n updateMetricSummaryOnSpan(span, metricType, sanitizedName, value, unit, tags, bucketKey);\n }\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateMetricSummaryOnActiveSpan };\n//# sourceMappingURL=spanUtils.js.map\n","import { dateTimestampInSeconds, consoleSandbox } from '@sentry/utils';\nimport { getClient, getIsolationScope } from './currentScopes.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","module.exports = __webpack_public_path__ + \"472ba8f81bf8cac86027cb1be4e3b9cd.js\";","/**\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","import { SDK_VERSION } from '@sentry/utils';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n","module.exports = __webpack_public_path__ + \"13eda3507db9cbfb400f46b9b3ff6553.js\";","module.exports = __webpack_public_path__ + \"9b9578869f378f8e2afbf85a76c0ac72.js\";","module.exports = __webpack_public_path__ + \"e3c684455c1aa75573a177ab1e95a537.js\";","/**\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\nmodule.exports = getValue;\n","// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n}\nfunction getDevTools() {\n const w = getGlobal();\n if (w.__xstate__) {\n return w.__xstate__;\n }\n return undefined;\n}\nfunction registerService(service) {\n if (typeof window === 'undefined') {\n return;\n }\n const devTools = getDevTools();\n if (devTools) {\n devTools.register(service);\n }\n}\nconst devToolsAdapter = service => {\n if (typeof window === 'undefined') {\n return;\n }\n const devTools = getDevTools();\n if (devTools) {\n devTools.register(service);\n }\n};\n\nexport { devToolsAdapter, getGlobal, registerService };\n","import { devToolsAdapter } from '../dev/dist/xstate-dev.esm.js';\n\nclass Mailbox {\n constructor(_process) {\n this._process = _process;\n this._active = false;\n this._current = null;\n this._last = null;\n }\n start() {\n this._active = true;\n this.flush();\n }\n clear() {\n // we can't set _current to null because we might be currently processing\n // and enqueue following clear shouldnt start processing the enqueued item immediately\n if (this._current) {\n this._current.next = null;\n this._last = this._current;\n }\n }\n enqueue(event) {\n const enqueued = {\n value: event,\n next: null\n };\n if (this._current) {\n this._last.next = enqueued;\n this._last = enqueued;\n return;\n }\n this._current = enqueued;\n this._last = enqueued;\n if (this._active) {\n this.flush();\n }\n }\n flush() {\n while (this._current) {\n // atm the given _process is responsible for implementing proper try/catch handling\n // we assume here that this won't throw in a way that can affect this mailbox\n const consumed = this._current;\n this._process(consumed.value);\n this._current = consumed.next;\n }\n this._last = null;\n }\n}\n\nconst STATE_DELIMITER = '.';\nconst TARGETLESS_KEY = '';\nconst NULL_EVENT = '';\nconst STATE_IDENTIFIER = '#';\nconst WILDCARD = '*';\nconst XSTATE_INIT = 'xstate.init';\nconst XSTATE_ERROR = 'xstate.error';\nconst XSTATE_STOP = 'xstate.stop';\n\n/**\n * Returns an event that represents an implicit event that is sent after the\n * specified `delay`.\n *\n * @param delayRef The delay in milliseconds\n * @param id The state node ID where this event is handled\n */\nfunction createAfterEvent(delayRef, id) {\n return {\n type: `xstate.after.${delayRef}.${id}`\n };\n}\n\n/**\n * Returns an event that represents that a final state node has been reached in\n * the parent state node.\n *\n * @param id The final state node's parent state node `id`\n * @param output The data to pass into the event\n */\nfunction createDoneStateEvent(id, output) {\n return {\n type: `xstate.done.state.${id}`,\n output\n };\n}\n\n/**\n * Returns an event that represents that an invoked service has terminated.\n *\n * An invoked service is terminated when it has reached a top-level final state\n * node, but not when it is canceled.\n *\n * @param invokeId The invoked service ID\n * @param output The data to pass into the event\n */\nfunction createDoneActorEvent(invokeId, output) {\n return {\n type: `xstate.done.actor.${invokeId}`,\n output,\n actorId: invokeId\n };\n}\nfunction createErrorActorEvent(id, error) {\n return {\n type: `xstate.error.actor.${id}`,\n error,\n actorId: id\n };\n}\nfunction createInitEvent(input) {\n return {\n type: XSTATE_INIT,\n input\n };\n}\n\n/**\n * This function makes sure that unhandled errors are thrown in a separate\n * macrotask. It allows those errors to be detected by global error handlers and\n * reported to bug tracking services without interrupting our own stack of\n * execution.\n *\n * @param err Error to be thrown\n */\nfunction reportUnhandledError(err) {\n setTimeout(() => {\n throw err;\n });\n}\n\nconst symbolObservable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n\nfunction matchesState(parentStateId, childStateId) {\n const parentStateValue = toStateValue(parentStateId);\n const childStateValue = toStateValue(childStateId);\n if (typeof childStateValue === 'string') {\n if (typeof parentStateValue === 'string') {\n return childStateValue === parentStateValue;\n }\n\n // Parent more specific than child\n return false;\n }\n if (typeof parentStateValue === 'string') {\n return parentStateValue in childStateValue;\n }\n return Object.keys(parentStateValue).every(key => {\n if (!(key in childStateValue)) {\n return false;\n }\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\nfunction toStatePath(stateId) {\n if (isArray(stateId)) {\n return stateId;\n }\n const result = [];\n let segment = '';\n for (let i = 0; i < stateId.length; i++) {\n const char = stateId.charCodeAt(i);\n switch (char) {\n // \\\n case 92:\n // consume the next character\n segment += stateId[i + 1];\n // and skip over it\n i++;\n continue;\n // .\n case 46:\n result.push(segment);\n segment = '';\n continue;\n }\n segment += stateId[i];\n }\n result.push(segment);\n return result;\n}\nfunction toStateValue(stateValue) {\n if (isMachineSnapshot(stateValue)) {\n return stateValue.value;\n }\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n const statePath = toStatePath(stateValue);\n return pathToStateValue(statePath);\n}\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n const value = {};\n let marker = value;\n for (let i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n const previous = marker;\n marker = {};\n previous[statePath[i]] = marker;\n }\n }\n return value;\n}\nfunction mapValues(collection, iteratee) {\n const result = {};\n const collectionKeys = Object.keys(collection);\n for (let i = 0; i < collectionKeys.length; i++) {\n const key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n return result;\n}\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n return [value];\n}\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n return toArrayStrict(value);\n}\nfunction resolveOutput(mapper, context, event, self) {\n if (typeof mapper === 'function') {\n return mapper({\n context,\n event,\n self\n });\n }\n return mapper;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isErrorActorEvent(event) {\n return event.type.startsWith('xstate.error.actor');\n}\nfunction toTransitionConfigArray(configLike) {\n return toArrayStrict(configLike).map(transitionLike => {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string') {\n return {\n target: transitionLike\n };\n }\n return transitionLike;\n });\n}\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n return toArray(target);\n}\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n const isObserver = typeof nextHandler === 'object';\n const self = isObserver ? nextHandler : undefined;\n return {\n next: (isObserver ? nextHandler.next : nextHandler)?.bind(self),\n error: (isObserver ? nextHandler.error : errorHandler)?.bind(self),\n complete: (isObserver ? nextHandler.complete : completionHandler)?.bind(self)\n };\n}\nfunction createInvokeId(stateNodeId, index) {\n return `${index}.${stateNodeId}`;\n}\nfunction resolveReferencedActor(machine, src) {\n const match = src.match(/^xstate\\.invoke\\.(\\d+)\\.(.*)/);\n if (!match) {\n return machine.implementations.actors[src];\n }\n const [, indexStr, nodeId] = match;\n const node = machine.getStateNodeById(nodeId);\n const invokeConfig = node.config.invoke;\n return (Array.isArray(invokeConfig) ? invokeConfig[indexStr] : invokeConfig).src;\n}\nfunction getAllOwnEventDescriptors(snapshot) {\n return [...new Set([...snapshot._nodes.flatMap(sn => sn.ownEvents)])];\n}\n\nfunction createScheduledEventId(actorRef, id) {\n return `${actorRef.sessionId}.${id}`;\n}\nlet idCounter = 0;\nfunction createSystem(rootActor, options) {\n const children = new Map();\n const keyedActors = new Map();\n const reverseKeyedActors = new WeakMap();\n const inspectionObservers = new Set();\n const timerMap = {};\n const {\n clock,\n logger\n } = options;\n const scheduler = {\n schedule: (source, target, event, delay, id = Math.random().toString(36).slice(2)) => {\n const scheduledEvent = {\n source,\n target,\n event,\n delay,\n id,\n startedAt: Date.now()\n };\n const scheduledEventId = createScheduledEventId(source, id);\n system._snapshot._scheduledEvents[scheduledEventId] = scheduledEvent;\n const timeout = clock.setTimeout(() => {\n delete timerMap[scheduledEventId];\n delete system._snapshot._scheduledEvents[scheduledEventId];\n system._relay(source, target, event);\n }, delay);\n timerMap[scheduledEventId] = timeout;\n },\n cancel: (source, id) => {\n const scheduledEventId = createScheduledEventId(source, id);\n const timeout = timerMap[scheduledEventId];\n delete timerMap[scheduledEventId];\n delete system._snapshot._scheduledEvents[scheduledEventId];\n if (timeout !== undefined) {\n clock.clearTimeout(timeout);\n }\n },\n cancelAll: actorRef => {\n for (const scheduledEventId in system._snapshot._scheduledEvents) {\n const scheduledEvent = system._snapshot._scheduledEvents[scheduledEventId];\n if (scheduledEvent.source === actorRef) {\n scheduler.cancel(actorRef, scheduledEvent.id);\n }\n }\n }\n };\n const sendInspectionEvent = event => {\n if (!inspectionObservers.size) {\n return;\n }\n const resolvedInspectionEvent = {\n ...event,\n rootId: rootActor.sessionId\n };\n inspectionObservers.forEach(observer => observer.next?.(resolvedInspectionEvent));\n };\n const system = {\n _snapshot: {\n _scheduledEvents: (options?.snapshot && options.snapshot.scheduler) ?? {}\n },\n _bookId: () => `x:${idCounter++}`,\n _register: (sessionId, actorRef) => {\n children.set(sessionId, actorRef);\n return sessionId;\n },\n _unregister: actorRef => {\n children.delete(actorRef.sessionId);\n const systemId = reverseKeyedActors.get(actorRef);\n if (systemId !== undefined) {\n keyedActors.delete(systemId);\n reverseKeyedActors.delete(actorRef);\n }\n },\n get: systemId => {\n return keyedActors.get(systemId);\n },\n _set: (systemId, actorRef) => {\n const existing = keyedActors.get(systemId);\n if (existing && existing !== actorRef) {\n throw new Error(`Actor with system ID '${systemId}' already exists.`);\n }\n keyedActors.set(systemId, actorRef);\n reverseKeyedActors.set(actorRef, systemId);\n },\n inspect: observerOrFn => {\n const observer = toObserver(observerOrFn);\n inspectionObservers.add(observer);\n return {\n unsubscribe() {\n inspectionObservers.delete(observer);\n }\n };\n },\n _sendInspectionEvent: sendInspectionEvent,\n _relay: (source, target, event) => {\n system._sendInspectionEvent({\n type: '@xstate.event',\n sourceRef: source,\n actorRef: target,\n event\n });\n target._send(event);\n },\n scheduler,\n getSnapshot: () => {\n return {\n _scheduledEvents: {\n ...system._snapshot._scheduledEvents\n }\n };\n },\n start: () => {\n const scheduledEvents = system._snapshot._scheduledEvents;\n system._snapshot._scheduledEvents = {};\n for (const scheduledId in scheduledEvents) {\n const {\n source,\n target,\n event,\n delay,\n id\n } = scheduledEvents[scheduledId];\n scheduler.schedule(source, target, event, delay, id);\n }\n },\n _clock: clock,\n _logger: logger\n };\n return system;\n}\n\nlet executingCustomAction = false;\nconst $$ACTOR_TYPE = 1;\n\n// those values are currently used by @xstate/react directly so it's important to keep the assigned values in sync\nlet ProcessingStatus = /*#__PURE__*/function (ProcessingStatus) {\n ProcessingStatus[ProcessingStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n ProcessingStatus[ProcessingStatus[\"Running\"] = 1] = \"Running\";\n ProcessingStatus[ProcessingStatus[\"Stopped\"] = 2] = \"Stopped\";\n return ProcessingStatus;\n}({});\nconst defaultOptions = {\n clock: {\n setTimeout: (fn, ms) => {\n return setTimeout(fn, ms);\n },\n clearTimeout: id => {\n return clearTimeout(id);\n }\n },\n logger: console.log.bind(console),\n devTools: false\n};\n\n/**\n * An Actor is a running process that can receive events, send events and change\n * its behavior based on the events it receives, which can cause effects outside\n * of the actor. When you run a state machine, it becomes an actor.\n */\nclass Actor {\n /**\n * Creates a new actor instance for the given logic with the provided options,\n * if any.\n *\n * @param logic The logic to create an actor from\n * @param options Actor options\n */\n constructor(logic, options) {\n this.logic = logic;\n /** The current internal state of the actor. */\n this._snapshot = void 0;\n /**\n * The clock that is responsible for setting and clearing timeouts, such as\n * delayed events and transitions.\n */\n this.clock = void 0;\n this.options = void 0;\n /** The unique identifier for this actor relative to its parent. */\n this.id = void 0;\n this.mailbox = new Mailbox(this._process.bind(this));\n this.observers = new Set();\n this.eventListeners = new Map();\n this.logger = void 0;\n /** @internal */\n this._processingStatus = ProcessingStatus.NotStarted;\n // Actor Ref\n this._parent = void 0;\n /** @internal */\n this._syncSnapshot = void 0;\n this.ref = void 0;\n // TODO: add typings for system\n this._actorScope = void 0;\n this._systemId = void 0;\n /** The globally unique process ID for this invocation. */\n this.sessionId = void 0;\n /** The system to which this actor belongs. */\n this.system = void 0;\n this._doneEvent = void 0;\n this.src = void 0;\n // array of functions to defer\n this._deferred = [];\n const resolvedOptions = {\n ...defaultOptions,\n ...options\n };\n const {\n clock,\n logger,\n parent,\n syncSnapshot,\n id,\n systemId,\n inspect\n } = resolvedOptions;\n this.system = parent ? parent.system : createSystem(this, {\n clock,\n logger\n });\n if (inspect && !parent) {\n // Always inspect at the system-level\n this.system.inspect(toObserver(inspect));\n }\n this.sessionId = this.system._bookId();\n this.id = id ?? this.sessionId;\n this.logger = options?.logger ?? this.system._logger;\n this.clock = options?.clock ?? this.system._clock;\n this._parent = parent;\n this._syncSnapshot = syncSnapshot;\n this.options = resolvedOptions;\n this.src = resolvedOptions.src ?? logic;\n this.ref = this;\n this._actorScope = {\n self: this,\n id: this.id,\n sessionId: this.sessionId,\n logger: this.logger,\n defer: fn => {\n this._deferred.push(fn);\n },\n system: this.system,\n stopChild: child => {\n if (child._parent !== this) {\n throw new Error(`Cannot stop child actor ${child.id} of ${this.id} because it is not a child`);\n }\n child._stop();\n },\n emit: emittedEvent => {\n const listeners = this.eventListeners.get(emittedEvent.type);\n const wildcardListener = this.eventListeners.get('*');\n if (!listeners && !wildcardListener) {\n return;\n }\n const allListeners = [...(listeners ? listeners.values() : []), ...(wildcardListener ? wildcardListener.values() : [])];\n for (const handler of allListeners) {\n handler(emittedEvent);\n }\n },\n actionExecutor: action => {\n const exec = () => {\n this._actorScope.system._sendInspectionEvent({\n type: '@xstate.action',\n actorRef: this,\n action: {\n type: action.type,\n params: action.params\n }\n });\n if (!action.exec) {\n return;\n }\n const saveExecutingCustomAction = executingCustomAction;\n try {\n executingCustomAction = true;\n action.exec(action.info, action.params);\n } finally {\n executingCustomAction = saveExecutingCustomAction;\n }\n };\n if (this._processingStatus === ProcessingStatus.Running) {\n exec();\n } else {\n this._deferred.push(exec);\n }\n }\n };\n\n // Ensure that the send method is bound to this Actor instance\n // if destructured\n this.send = this.send.bind(this);\n this.system._sendInspectionEvent({\n type: '@xstate.actor',\n actorRef: this\n });\n if (systemId) {\n this._systemId = systemId;\n this.system._set(systemId, this);\n }\n this._initState(options?.snapshot ?? options?.state);\n if (systemId && this._snapshot.status !== 'active') {\n this.system._unregister(this);\n }\n }\n _initState(persistedState) {\n try {\n this._snapshot = persistedState ? this.logic.restoreSnapshot ? this.logic.restoreSnapshot(persistedState, this._actorScope) : persistedState : this.logic.getInitialSnapshot(this._actorScope, this.options?.input);\n } catch (err) {\n // if we get here then it means that we assign a value to this._snapshot that is not of the correct type\n // we can't get the true `TSnapshot & { status: 'error'; }`, it's impossible\n // so right now this is a lie of sorts\n this._snapshot = {\n status: 'error',\n output: undefined,\n error: err\n };\n }\n }\n update(snapshot, event) {\n // Update state\n this._snapshot = snapshot;\n\n // Execute deferred effects\n let deferredFn;\n while (deferredFn = this._deferred.shift()) {\n try {\n deferredFn();\n } catch (err) {\n // this error can only be caught when executing *initial* actions\n // it's the only time when we call actions provided by the user through those deferreds\n // when the actor is already running we always execute them synchronously while transitioning\n // no \"builtin deferred\" should actually throw an error since they are either safe\n // or the control flow is passed through the mailbox and errors should be caught by the `_process` used by the mailbox\n this._deferred.length = 0;\n this._snapshot = {\n ...snapshot,\n status: 'error',\n error: err\n };\n }\n }\n switch (this._snapshot.status) {\n case 'active':\n for (const observer of this.observers) {\n try {\n observer.next?.(snapshot);\n } catch (err) {\n reportUnhandledError(err);\n }\n }\n break;\n case 'done':\n // next observers are meant to be notified about done snapshots\n // this can be seen as something that is different from how observable work\n // but with observables `complete` callback is called without any arguments\n // it's more ergonomic for XState to treat a done snapshot as a \"next\" value\n // and the completion event as something that is separate,\n // something that merely follows emitting that done snapshot\n for (const observer of this.observers) {\n try {\n observer.next?.(snapshot);\n } catch (err) {\n reportUnhandledError(err);\n }\n }\n this._stopProcedure();\n this._complete();\n this._doneEvent = createDoneActorEvent(this.id, this._snapshot.output);\n if (this._parent) {\n this.system._relay(this, this._parent, this._doneEvent);\n }\n break;\n case 'error':\n this._error(this._snapshot.error);\n break;\n }\n this.system._sendInspectionEvent({\n type: '@xstate.snapshot',\n actorRef: this,\n event,\n snapshot\n });\n }\n\n /**\n * Subscribe an observer to an actor’s snapshot values.\n *\n * @remarks\n * The observer will receive the actor’s snapshot value when it is emitted.\n * The observer can be:\n *\n * - A plain function that receives the latest snapshot, or\n * - An observer object whose `.next(snapshot)` method receives the latest\n * snapshot\n *\n * @example\n *\n * ```ts\n * // Observer as a plain function\n * const subscription = actor.subscribe((snapshot) => {\n * console.log(snapshot);\n * });\n * ```\n *\n * @example\n *\n * ```ts\n * // Observer as an object\n * const subscription = actor.subscribe({\n * next(snapshot) {\n * console.log(snapshot);\n * },\n * error(err) {\n * // ...\n * },\n * complete() {\n * // ...\n * }\n * });\n * ```\n *\n * The return value of `actor.subscribe(observer)` is a subscription object\n * that has an `.unsubscribe()` method. You can call\n * `subscription.unsubscribe()` to unsubscribe the observer:\n *\n * @example\n *\n * ```ts\n * const subscription = actor.subscribe((snapshot) => {\n * // ...\n * });\n *\n * // Unsubscribe the observer\n * subscription.unsubscribe();\n * ```\n *\n * When the actor is stopped, all of its observers will automatically be\n * unsubscribed.\n *\n * @param observer - Either a plain function that receives the latest\n * snapshot, or an observer object whose `.next(snapshot)` method receives\n * the latest snapshot\n */\n\n subscribe(nextListenerOrObserver, errorListener, completeListener) {\n const observer = toObserver(nextListenerOrObserver, errorListener, completeListener);\n if (this._processingStatus !== ProcessingStatus.Stopped) {\n this.observers.add(observer);\n } else {\n switch (this._snapshot.status) {\n case 'done':\n try {\n observer.complete?.();\n } catch (err) {\n reportUnhandledError(err);\n }\n break;\n case 'error':\n {\n const err = this._snapshot.error;\n if (!observer.error) {\n reportUnhandledError(err);\n } else {\n try {\n observer.error(err);\n } catch (err) {\n reportUnhandledError(err);\n }\n }\n break;\n }\n }\n }\n return {\n unsubscribe: () => {\n this.observers.delete(observer);\n }\n };\n }\n on(type, handler) {\n let listeners = this.eventListeners.get(type);\n if (!listeners) {\n listeners = new Set();\n this.eventListeners.set(type, listeners);\n }\n const wrappedHandler = handler.bind(undefined);\n listeners.add(wrappedHandler);\n return {\n unsubscribe: () => {\n listeners.delete(wrappedHandler);\n }\n };\n }\n\n /** Starts the Actor from the initial state */\n start() {\n if (this._processingStatus === ProcessingStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n }\n if (this._syncSnapshot) {\n this.subscribe({\n next: snapshot => {\n if (snapshot.status === 'active') {\n this.system._relay(this, this._parent, {\n type: `xstate.snapshot.${this.id}`,\n snapshot\n });\n }\n },\n error: () => {}\n });\n }\n this.system._register(this.sessionId, this);\n if (this._systemId) {\n this.system._set(this._systemId, this);\n }\n this._processingStatus = ProcessingStatus.Running;\n\n // TODO: this isn't correct when rehydrating\n const initEvent = createInitEvent(this.options.input);\n this.system._sendInspectionEvent({\n type: '@xstate.event',\n sourceRef: this._parent,\n actorRef: this,\n event: initEvent\n });\n const status = this._snapshot.status;\n switch (status) {\n case 'done':\n // a state machine can be \"done\" upon initialization (it could reach a final state using initial microsteps)\n // we still need to complete observers, flush deferreds etc\n this.update(this._snapshot, initEvent);\n // TODO: rethink cleanup of observers, mailbox, etc\n return this;\n case 'error':\n this._error(this._snapshot.error);\n return this;\n }\n if (!this._parent) {\n this.system.start();\n }\n if (this.logic.start) {\n try {\n this.logic.start(this._snapshot, this._actorScope);\n } catch (err) {\n this._snapshot = {\n ...this._snapshot,\n status: 'error',\n error: err\n };\n this._error(err);\n return this;\n }\n }\n\n // TODO: this notifies all subscribers but usually this is redundant\n // there is no real change happening here\n // we need to rethink if this needs to be refactored\n this.update(this._snapshot, initEvent);\n if (this.options.devTools) {\n this.attachDevTools();\n }\n this.mailbox.start();\n return this;\n }\n _process(event) {\n let nextState;\n let caughtError;\n try {\n nextState = this.logic.transition(this._snapshot, event, this._actorScope);\n } catch (err) {\n // we wrap it in a box so we can rethrow it later even if falsy value gets caught here\n caughtError = {\n err\n };\n }\n if (caughtError) {\n const {\n err\n } = caughtError;\n this._snapshot = {\n ...this._snapshot,\n status: 'error',\n error: err\n };\n this._error(err);\n return;\n }\n this.update(nextState, event);\n if (event.type === XSTATE_STOP) {\n this._stopProcedure();\n this._complete();\n }\n }\n _stop() {\n if (this._processingStatus === ProcessingStatus.Stopped) {\n return this;\n }\n this.mailbox.clear();\n if (this._processingStatus === ProcessingStatus.NotStarted) {\n this._processingStatus = ProcessingStatus.Stopped;\n return this;\n }\n this.mailbox.enqueue({\n type: XSTATE_STOP\n });\n return this;\n }\n\n /** Stops the Actor and unsubscribe all listeners. */\n stop() {\n if (this._parent) {\n throw new Error('A non-root actor cannot be stopped directly.');\n }\n return this._stop();\n }\n _complete() {\n for (const observer of this.observers) {\n try {\n observer.complete?.();\n } catch (err) {\n reportUnhandledError(err);\n }\n }\n this.observers.clear();\n }\n _reportError(err) {\n if (!this.observers.size) {\n if (!this._parent) {\n reportUnhandledError(err);\n }\n return;\n }\n let reportError = false;\n for (const observer of this.observers) {\n const errorListener = observer.error;\n reportError ||= !errorListener;\n try {\n errorListener?.(err);\n } catch (err2) {\n reportUnhandledError(err2);\n }\n }\n this.observers.clear();\n if (reportError) {\n reportUnhandledError(err);\n }\n }\n _error(err) {\n this._stopProcedure();\n this._reportError(err);\n if (this._parent) {\n this.system._relay(this, this._parent, createErrorActorEvent(this.id, err));\n }\n }\n // TODO: atm children don't belong entirely to the actor so\n // in a way - it's not even super aware of them\n // so we can't stop them from here but we really should!\n // right now, they are being stopped within the machine's transition\n // but that could throw and leave us with \"orphaned\" active actors\n _stopProcedure() {\n if (this._processingStatus !== ProcessingStatus.Running) {\n // Actor already stopped; do nothing\n return this;\n }\n\n // Cancel all delayed events\n this.system.scheduler.cancelAll(this);\n\n // TODO: mailbox.reset\n this.mailbox.clear();\n // TODO: after `stop` we must prepare ourselves for receiving events again\n // events sent *after* stop signal must be queued\n // it seems like this should be the common behavior for all of our consumers\n // so perhaps this should be unified somehow for all of them\n this.mailbox = new Mailbox(this._process.bind(this));\n this._processingStatus = ProcessingStatus.Stopped;\n this.system._unregister(this);\n return this;\n }\n\n /** @internal */\n _send(event) {\n if (this._processingStatus === ProcessingStatus.Stopped) {\n return;\n }\n this.mailbox.enqueue(event);\n }\n\n /**\n * Sends an event to the running Actor to trigger a transition.\n *\n * @param event The event to send\n */\n send(event) {\n this.system._relay(undefined, this, event);\n }\n attachDevTools() {\n const {\n devTools\n } = this.options;\n if (devTools) {\n const resolvedDevToolsAdapter = typeof devTools === 'function' ? devTools : devToolsAdapter;\n resolvedDevToolsAdapter(this);\n }\n }\n toJSON() {\n return {\n xstate$$type: $$ACTOR_TYPE,\n id: this.id\n };\n }\n\n /**\n * Obtain the internal state of the actor, which can be persisted.\n *\n * @remarks\n * The internal state can be persisted from any actor, not only machines.\n *\n * Note that the persisted state is not the same as the snapshot from\n * {@link Actor.getSnapshot}. Persisted state represents the internal state of\n * the actor, while snapshots represent the actor's last emitted value.\n *\n * Can be restored with {@link ActorOptions.state}\n * @see https://stately.ai/docs/persistence\n */\n\n getPersistedSnapshot(options) {\n return this.logic.getPersistedSnapshot(this._snapshot, options);\n }\n [symbolObservable]() {\n return this;\n }\n\n /**\n * Read an actor’s snapshot synchronously.\n *\n * @remarks\n * The snapshot represent an actor's last emitted value.\n *\n * When an actor receives an event, its internal state may change. An actor\n * may emit a snapshot when a state transition occurs.\n *\n * Note that some actors, such as callback actors generated with\n * `fromCallback`, will not emit snapshots.\n * @see {@link Actor.subscribe} to subscribe to an actor’s snapshot values.\n * @see {@link Actor.getPersistedSnapshot} to persist the internal state of an actor (which is more than just a snapshot).\n */\n getSnapshot() {\n return this._snapshot;\n }\n}\n/**\n * Creates a new actor instance for the given actor logic with the provided\n * options, if any.\n *\n * @remarks\n * When you create an actor from actor logic via `createActor(logic)`, you\n * implicitly create an actor system where the created actor is the root actor.\n * Any actors spawned from this root actor and its descendants are part of that\n * actor system.\n * @example\n *\n * ```ts\n * import { createActor } from 'xstate';\n * import { someActorLogic } from './someActorLogic.ts';\n *\n * // Creating the actor, which implicitly creates an actor system with itself as the root actor\n * const actor = createActor(someActorLogic);\n *\n * actor.subscribe((snapshot) => {\n * console.log(snapshot);\n * });\n *\n * // Actors must be started by calling `actor.start()`, which will also start the actor system.\n * actor.start();\n *\n * // Actors can receive events\n * actor.send({ type: 'someEvent' });\n *\n * // You can stop root actors by calling `actor.stop()`, which will also stop the actor system and all actors in that system.\n * actor.stop();\n * ```\n *\n * @param logic - The actor logic to create an actor from. For a state machine\n * actor logic creator, see {@link createMachine}. Other actor logic creators\n * include {@link fromCallback}, {@link fromEventObservable},\n * {@link fromObservable}, {@link fromPromise}, and {@link fromTransition}.\n * @param options - Actor options\n */\nfunction createActor(logic, ...[options]) {\n return new Actor(logic, options);\n}\n\n/**\n * Creates a new Interpreter instance for the given machine with the provided\n * options, if any.\n *\n * @deprecated Use `createActor` instead\n * @alias\n */\nconst interpret = createActor;\n\n/**\n * @deprecated Use `Actor` instead.\n * @alias\n */\n\nfunction resolveCancel(_, snapshot, actionArgs, actionParams, {\n sendId\n}) {\n const resolvedSendId = typeof sendId === 'function' ? sendId(actionArgs, actionParams) : sendId;\n return [snapshot, {\n sendId: resolvedSendId\n }, undefined];\n}\nfunction executeCancel(actorScope, params) {\n actorScope.defer(() => {\n actorScope.system.scheduler.cancel(actorScope.self, params.sendId);\n });\n}\n/**\n * Cancels a delayed `sendTo(...)` action that is waiting to be executed. The\n * canceled `sendTo(...)` action will not send its event or execute, unless the\n * `delay` has already elapsed before `cancel(...)` is called.\n *\n * @example\n *\n * ```ts\n * import { createMachine, sendTo, cancel } from 'xstate';\n *\n * const machine = createMachine({\n * // ...\n * on: {\n * sendEvent: {\n * actions: sendTo(\n * 'some-actor',\n * { type: 'someEvent' },\n * {\n * id: 'some-id',\n * delay: 1000\n * }\n * )\n * },\n * cancelEvent: {\n * actions: cancel('some-id')\n * }\n * }\n * });\n * ```\n *\n * @param sendId The `id` of the `sendTo(...)` action to cancel.\n */\nfunction cancel(sendId) {\n function cancel(_args, _params) {\n }\n cancel.type = 'xstate.cancel';\n cancel.sendId = sendId;\n cancel.resolve = resolveCancel;\n cancel.execute = executeCancel;\n return cancel;\n}\n\nfunction resolveSpawn(actorScope, snapshot, actionArgs, _actionParams, {\n id,\n systemId,\n src,\n input,\n syncSnapshot\n}) {\n const logic = typeof src === 'string' ? resolveReferencedActor(snapshot.machine, src) : src;\n const resolvedId = typeof id === 'function' ? id(actionArgs) : id;\n let actorRef;\n let resolvedInput = undefined;\n if (logic) {\n resolvedInput = typeof input === 'function' ? input({\n context: snapshot.context,\n event: actionArgs.event,\n self: actorScope.self\n }) : input;\n actorRef = createActor(logic, {\n id: resolvedId,\n src,\n parent: actorScope.self,\n syncSnapshot,\n systemId,\n input: resolvedInput\n });\n }\n return [cloneMachineSnapshot(snapshot, {\n children: {\n ...snapshot.children,\n [resolvedId]: actorRef\n }\n }), {\n id,\n systemId,\n actorRef,\n src,\n input: resolvedInput\n }, undefined];\n}\nfunction executeSpawn(actorScope, {\n actorRef\n}) {\n if (!actorRef) {\n return;\n }\n actorScope.defer(() => {\n if (actorRef._processingStatus === ProcessingStatus.Stopped) {\n return;\n }\n actorRef.start();\n });\n}\nfunction spawnChild(...[src, {\n id,\n systemId,\n input,\n syncSnapshot = false\n} = {}]) {\n function spawnChild(_args, _params) {\n }\n spawnChild.type = 'xstate.spawnChild';\n spawnChild.id = id;\n spawnChild.systemId = systemId;\n spawnChild.src = src;\n spawnChild.input = input;\n spawnChild.syncSnapshot = syncSnapshot;\n spawnChild.resolve = resolveSpawn;\n spawnChild.execute = executeSpawn;\n return spawnChild;\n}\n\nfunction resolveStop(_, snapshot, args, actionParams, {\n actorRef\n}) {\n const actorRefOrString = typeof actorRef === 'function' ? actorRef(args, actionParams) : actorRef;\n const resolvedActorRef = typeof actorRefOrString === 'string' ? snapshot.children[actorRefOrString] : actorRefOrString;\n let children = snapshot.children;\n if (resolvedActorRef) {\n children = {\n ...children\n };\n delete children[resolvedActorRef.id];\n }\n return [cloneMachineSnapshot(snapshot, {\n children\n }), resolvedActorRef, undefined];\n}\nfunction executeStop(actorScope, actorRef) {\n if (!actorRef) {\n return;\n }\n\n // we need to eagerly unregister it here so a new actor with the same systemId can be registered immediately\n // since we defer actual stopping of the actor but we don't defer actor creations (and we can't do that)\n // this could throw on `systemId` collision, for example, when dealing with reentering transitions\n actorScope.system._unregister(actorRef);\n\n // this allows us to prevent an actor from being started if it gets stopped within the same macrostep\n // this can happen, for example, when the invoking state is being exited immediately by an always transition\n if (actorRef._processingStatus !== ProcessingStatus.Running) {\n actorScope.stopChild(actorRef);\n return;\n }\n // stopping a child enqueues a stop event in the child actor's mailbox\n // we need for all of the already enqueued events to be processed before we stop the child\n // the parent itself might want to send some events to a child (for example from exit actions on the invoking state)\n // and we don't want to ignore those events\n actorScope.defer(() => {\n actorScope.stopChild(actorRef);\n });\n}\n/**\n * Stops a child actor.\n *\n * @param actorRef The actor to stop.\n */\nfunction stopChild(actorRef) {\n function stop(_args, _params) {\n }\n stop.type = 'xstate.stopChild';\n stop.actorRef = actorRef;\n stop.resolve = resolveStop;\n stop.execute = executeStop;\n return stop;\n}\n\n/**\n * Stops a child actor.\n *\n * @deprecated Use `stopChild(...)` instead\n * @alias\n */\nconst stop = stopChild;\n\nfunction checkStateIn(snapshot, _, {\n stateValue\n}) {\n if (typeof stateValue === 'string' && isStateId(stateValue)) {\n const target = snapshot.machine.getStateNodeById(stateValue);\n return snapshot._nodes.some(sn => sn === target);\n }\n return snapshot.matches(stateValue);\n}\nfunction stateIn(stateValue) {\n function stateIn() {\n return false;\n }\n stateIn.check = checkStateIn;\n stateIn.stateValue = stateValue;\n return stateIn;\n}\nfunction checkNot(snapshot, {\n context,\n event\n}, {\n guards\n}) {\n return !evaluateGuard(guards[0], context, event, snapshot);\n}\n\n/**\n * Higher-order guard that evaluates to `true` if the `guard` passed to it\n * evaluates to `false`.\n *\n * @category Guards\n * @example\n *\n * ```ts\n * import { setup, not } from 'xstate';\n *\n * const machine = setup({\n * guards: {\n * someNamedGuard: () => false\n * }\n * }).createMachine({\n * on: {\n * someEvent: {\n * guard: not('someNamedGuard'),\n * actions: () => {\n * // will be executed if guard in `not(...)`\n * // evaluates to `false`\n * }\n * }\n * }\n * });\n * ```\n *\n * @returns A guard\n */\nfunction not(guard) {\n function not(_args, _params) {\n return false;\n }\n not.check = checkNot;\n not.guards = [guard];\n return not;\n}\nfunction checkAnd(snapshot, {\n context,\n event\n}, {\n guards\n}) {\n return guards.every(guard => evaluateGuard(guard, context, event, snapshot));\n}\n\n/**\n * Higher-order guard that evaluates to `true` if all `guards` passed to it\n * evaluate to `true`.\n *\n * @category Guards\n * @example\n *\n * ```ts\n * import { setup, and } from 'xstate';\n *\n * const machine = setup({\n * guards: {\n * someNamedGuard: () => true\n * }\n * }).createMachine({\n * on: {\n * someEvent: {\n * guard: and([({ context }) => context.value > 0, 'someNamedGuard']),\n * actions: () => {\n * // will be executed if all guards in `and(...)`\n * // evaluate to true\n * }\n * }\n * }\n * });\n * ```\n *\n * @returns A guard action object\n */\nfunction and(guards) {\n function and(_args, _params) {\n return false;\n }\n and.check = checkAnd;\n and.guards = guards;\n return and;\n}\nfunction checkOr(snapshot, {\n context,\n event\n}, {\n guards\n}) {\n return guards.some(guard => evaluateGuard(guard, context, event, snapshot));\n}\n\n/**\n * Higher-order guard that evaluates to `true` if any of the `guards` passed to\n * it evaluate to `true`.\n *\n * @category Guards\n * @example\n *\n * ```ts\n * import { setup, or } from 'xstate';\n *\n * const machine = setup({\n * guards: {\n * someNamedGuard: () => true\n * }\n * }).createMachine({\n * on: {\n * someEvent: {\n * guard: or([({ context }) => context.value > 0, 'someNamedGuard']),\n * actions: () => {\n * // will be executed if any of the guards in `or(...)`\n * // evaluate to true\n * }\n * }\n * }\n * });\n * ```\n *\n * @returns A guard action object\n */\nfunction or(guards) {\n function or(_args, _params) {\n return false;\n }\n or.check = checkOr;\n or.guards = guards;\n return or;\n}\n\n// TODO: throw on cycles (depth check should be enough)\nfunction evaluateGuard(guard, context, event, snapshot) {\n const {\n machine\n } = snapshot;\n const isInline = typeof guard === 'function';\n const resolved = isInline ? guard : machine.implementations.guards[typeof guard === 'string' ? guard : guard.type];\n if (!isInline && !resolved) {\n throw new Error(`Guard '${typeof guard === 'string' ? guard : guard.type}' is not implemented.'.`);\n }\n if (typeof resolved !== 'function') {\n return evaluateGuard(resolved, context, event, snapshot);\n }\n const guardArgs = {\n context,\n event\n };\n const guardParams = isInline || typeof guard === 'string' ? undefined : 'params' in guard ? typeof guard.params === 'function' ? guard.params({\n context,\n event\n }) : guard.params : undefined;\n if (!('check' in resolved)) {\n // the existing type of `.guards` assumes non-nullable `TExpressionGuard`\n // inline guards expect `TExpressionGuard` to be set to `undefined`\n // it's fine to cast this here, our logic makes sure that we call those 2 \"variants\" correctly\n return resolved(guardArgs, guardParams);\n }\n const builtinGuard = resolved;\n return builtinGuard.check(snapshot, guardArgs, resolved // this holds all params\n );\n}\n\nconst isAtomicStateNode = stateNode => stateNode.type === 'atomic' || stateNode.type === 'final';\nfunction getChildren(stateNode) {\n return Object.values(stateNode.states).filter(sn => sn.type !== 'history');\n}\nfunction getProperAncestors(stateNode, toStateNode) {\n const ancestors = [];\n if (toStateNode === stateNode) {\n return ancestors;\n }\n\n // add all ancestors\n let m = stateNode.parent;\n while (m && m !== toStateNode) {\n ancestors.push(m);\n m = m.parent;\n }\n return ancestors;\n}\nfunction getAllStateNodes(stateNodes) {\n const nodeSet = new Set(stateNodes);\n const adjList = getAdjList(nodeSet);\n\n // add descendants\n for (const s of nodeSet) {\n // if previously active, add existing child nodes\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n getInitialStateNodesWithTheirAncestors(s).forEach(sn => nodeSet.add(sn));\n } else {\n if (s.type === 'parallel') {\n for (const child of getChildren(s)) {\n if (child.type === 'history') {\n continue;\n }\n if (!nodeSet.has(child)) {\n const initialStates = getInitialStateNodesWithTheirAncestors(child);\n for (const initialStateNode of initialStates) {\n nodeSet.add(initialStateNode);\n }\n }\n }\n }\n }\n }\n\n // add all ancestors\n for (const s of nodeSet) {\n let m = s.parent;\n while (m) {\n nodeSet.add(m);\n m = m.parent;\n }\n }\n return nodeSet;\n}\nfunction getValueFromAdj(baseNode, adjList) {\n const childStateNodes = adjList.get(baseNode);\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n if (baseNode.type === 'compound') {\n const childStateNode = childStateNodes[0];\n if (childStateNode) {\n if (isAtomicStateNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n const stateValue = {};\n for (const childStateNode of childStateNodes) {\n stateValue[childStateNode.key] = getValueFromAdj(childStateNode, adjList);\n }\n return stateValue;\n}\nfunction getAdjList(stateNodes) {\n const adjList = new Map();\n for (const s of stateNodes) {\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n adjList.get(s.parent).push(s);\n }\n }\n return adjList;\n}\nfunction getStateValue(rootNode, stateNodes) {\n const config = getAllStateNodes(stateNodes);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\nfunction isInFinalState(stateNodeSet, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(s => s.type === 'final' && stateNodeSet.has(s));\n }\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(sn => isInFinalState(stateNodeSet, sn));\n }\n return stateNode.type === 'final';\n}\nconst isStateId = str => str[0] === STATE_IDENTIFIER;\nfunction getCandidates(stateNode, receivedEventType) {\n const candidates = stateNode.transitions.get(receivedEventType) || [...stateNode.transitions.keys()].filter(eventDescriptor => {\n // check if transition is a wildcard transition,\n // which matches any non-transient events\n if (eventDescriptor === WILDCARD) {\n return true;\n }\n if (!eventDescriptor.endsWith('.*')) {\n return false;\n }\n const partialEventTokens = eventDescriptor.split('.');\n const eventTokens = receivedEventType.split('.');\n for (let tokenIndex = 0; tokenIndex < partialEventTokens.length; tokenIndex++) {\n const partialEventToken = partialEventTokens[tokenIndex];\n const eventToken = eventTokens[tokenIndex];\n if (partialEventToken === '*') {\n const isLastToken = tokenIndex === partialEventTokens.length - 1;\n return isLastToken;\n }\n if (partialEventToken !== eventToken) {\n return false;\n }\n }\n return true;\n }).sort((a, b) => b.length - a.length).flatMap(key => stateNode.transitions.get(key));\n return candidates;\n}\n\n/** All delayed transitions from the config. */\nfunction getDelayedTransitions(stateNode) {\n const afterConfig = stateNode.config.after;\n if (!afterConfig) {\n return [];\n }\n const mutateEntryExit = delay => {\n const afterEvent = createAfterEvent(delay, stateNode.id);\n const eventType = afterEvent.type;\n stateNode.entry.push(raise(afterEvent, {\n id: eventType,\n delay\n }));\n stateNode.exit.push(cancel(eventType));\n return eventType;\n };\n const delayedTransitions = Object.keys(afterConfig).flatMap(delay => {\n const configTransition = afterConfig[delay];\n const resolvedTransition = typeof configTransition === 'string' ? {\n target: configTransition\n } : configTransition;\n const resolvedDelay = Number.isNaN(+delay) ? delay : +delay;\n const eventType = mutateEntryExit(resolvedDelay);\n return toArray(resolvedTransition).map(transition => ({\n ...transition,\n event: eventType,\n delay: resolvedDelay\n }));\n });\n return delayedTransitions.map(delayedTransition => {\n const {\n delay\n } = delayedTransition;\n return {\n ...formatTransition(stateNode, delayedTransition.event, delayedTransition),\n delay\n };\n });\n}\nfunction formatTransition(stateNode, descriptor, transitionConfig) {\n const normalizedTarget = normalizeTarget(transitionConfig.target);\n const reenter = transitionConfig.reenter ?? false;\n const target = resolveTarget(stateNode, normalizedTarget);\n const transition = {\n ...transitionConfig,\n actions: toArray(transitionConfig.actions),\n guard: transitionConfig.guard,\n target,\n source: stateNode,\n reenter,\n eventType: descriptor,\n toJSON: () => ({\n ...transition,\n source: `#${stateNode.id}`,\n target: target ? target.map(t => `#${t.id}`) : undefined\n })\n };\n return transition;\n}\nfunction formatTransitions(stateNode) {\n const transitions = new Map();\n if (stateNode.config.on) {\n for (const descriptor of Object.keys(stateNode.config.on)) {\n if (descriptor === NULL_EVENT) {\n throw new Error('Null events (\"\") cannot be specified as a transition key. Use `always: { ... }` instead.');\n }\n const transitionsConfig = stateNode.config.on[descriptor];\n transitions.set(descriptor, toTransitionConfigArray(transitionsConfig).map(t => formatTransition(stateNode, descriptor, t)));\n }\n }\n if (stateNode.config.onDone) {\n const descriptor = `xstate.done.state.${stateNode.id}`;\n transitions.set(descriptor, toTransitionConfigArray(stateNode.config.onDone).map(t => formatTransition(stateNode, descriptor, t)));\n }\n for (const invokeDef of stateNode.invoke) {\n if (invokeDef.onDone) {\n const descriptor = `xstate.done.actor.${invokeDef.id}`;\n transitions.set(descriptor, toTransitionConfigArray(invokeDef.onDone).map(t => formatTransition(stateNode, descriptor, t)));\n }\n if (invokeDef.onError) {\n const descriptor = `xstate.error.actor.${invokeDef.id}`;\n transitions.set(descriptor, toTransitionConfigArray(invokeDef.onError).map(t => formatTransition(stateNode, descriptor, t)));\n }\n if (invokeDef.onSnapshot) {\n const descriptor = `xstate.snapshot.${invokeDef.id}`;\n transitions.set(descriptor, toTransitionConfigArray(invokeDef.onSnapshot).map(t => formatTransition(stateNode, descriptor, t)));\n }\n }\n for (const delayedTransition of stateNode.after) {\n let existing = transitions.get(delayedTransition.eventType);\n if (!existing) {\n existing = [];\n transitions.set(delayedTransition.eventType, existing);\n }\n existing.push(delayedTransition);\n }\n return transitions;\n}\nfunction formatInitialTransition(stateNode, _target) {\n const resolvedTarget = typeof _target === 'string' ? stateNode.states[_target] : _target ? stateNode.states[_target.target] : undefined;\n if (!resolvedTarget && _target) {\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-base-to-string\n `Initial state node \"${_target}\" not found on parent state node #${stateNode.id}`);\n }\n const transition = {\n source: stateNode,\n actions: !_target || typeof _target === 'string' ? [] : toArray(_target.actions),\n eventType: null,\n reenter: false,\n target: resolvedTarget ? [resolvedTarget] : [],\n toJSON: () => ({\n ...transition,\n source: `#${stateNode.id}`,\n target: resolvedTarget ? [`#${resolvedTarget.id}`] : []\n })\n };\n return transition;\n}\nfunction resolveTarget(stateNode, targets) {\n if (targets === undefined) {\n // an undefined target signals that the state node should not transition from that state when receiving that event\n return undefined;\n }\n return targets.map(target => {\n if (typeof target !== 'string') {\n return target;\n }\n if (isStateId(target)) {\n return stateNode.machine.getStateNodeById(target);\n }\n const isInternalTarget = target[0] === STATE_DELIMITER;\n // If internal target is defined on machine,\n // do not include machine key on target\n if (isInternalTarget && !stateNode.parent) {\n return getStateNodeByPath(stateNode, target.slice(1));\n }\n const resolvedTarget = isInternalTarget ? stateNode.key + target : target;\n if (stateNode.parent) {\n try {\n const targetStateNode = getStateNodeByPath(stateNode.parent, resolvedTarget);\n return targetStateNode;\n } catch (err) {\n throw new Error(`Invalid transition definition for state node '${stateNode.id}':\\n${err.message}`);\n }\n } else {\n throw new Error(`Invalid target: \"${target}\" is not a valid target from the root node. Did you mean \".${target}\"?`);\n }\n });\n}\nfunction resolveHistoryDefaultTransition(stateNode) {\n const normalizedTarget = normalizeTarget(stateNode.config.target);\n if (!normalizedTarget) {\n return stateNode.parent.initial;\n }\n return {\n target: normalizedTarget.map(t => typeof t === 'string' ? getStateNodeByPath(stateNode.parent, t) : t)\n };\n}\nfunction isHistoryNode(stateNode) {\n return stateNode.type === 'history';\n}\nfunction getInitialStateNodesWithTheirAncestors(stateNode) {\n const states = getInitialStateNodes(stateNode);\n for (const initialState of states) {\n for (const ancestor of getProperAncestors(initialState, stateNode)) {\n states.add(ancestor);\n }\n }\n return states;\n}\nfunction getInitialStateNodes(stateNode) {\n const set = new Set();\n function iter(descStateNode) {\n if (set.has(descStateNode)) {\n return;\n }\n set.add(descStateNode);\n if (descStateNode.type === 'compound') {\n iter(descStateNode.initial.target[0]);\n } else if (descStateNode.type === 'parallel') {\n for (const child of getChildren(descStateNode)) {\n iter(child);\n }\n }\n }\n iter(stateNode);\n return set;\n}\n/** Returns the child state node from its relative `stateKey`, or throws. */\nfunction getStateNode(stateNode, stateKey) {\n if (isStateId(stateKey)) {\n return stateNode.machine.getStateNodeById(stateKey);\n }\n if (!stateNode.states) {\n throw new Error(`Unable to retrieve child state '${stateKey}' from '${stateNode.id}'; no child states exist.`);\n }\n const result = stateNode.states[stateKey];\n if (!result) {\n throw new Error(`Child state '${stateKey}' does not exist on '${stateNode.id}'`);\n }\n return result;\n}\n\n/**\n * Returns the relative state node from the given `statePath`, or throws.\n *\n * @param statePath The string or string array relative path to the state node.\n */\nfunction getStateNodeByPath(stateNode, statePath) {\n if (typeof statePath === 'string' && isStateId(statePath)) {\n try {\n return stateNode.machine.getStateNodeById(statePath);\n } catch {\n // try individual paths\n // throw e;\n }\n }\n const arrayStatePath = toStatePath(statePath).slice();\n let currentStateNode = stateNode;\n while (arrayStatePath.length) {\n const key = arrayStatePath.shift();\n if (!key.length) {\n break;\n }\n currentStateNode = getStateNode(currentStateNode, key);\n }\n return currentStateNode;\n}\n\n/**\n * Returns the state nodes represented by the current state value.\n *\n * @param stateValue The state value or State instance\n */\nfunction getStateNodes(stateNode, stateValue) {\n if (typeof stateValue === 'string') {\n const childStateNode = stateNode.states[stateValue];\n if (!childStateNode) {\n throw new Error(`State '${stateValue}' does not exist on '${stateNode.id}'`);\n }\n return [stateNode, childStateNode];\n }\n const childStateKeys = Object.keys(stateValue);\n const childStateNodes = childStateKeys.map(subStateKey => getStateNode(stateNode, subStateKey)).filter(Boolean);\n return [stateNode.machine.root, stateNode].concat(childStateNodes, childStateKeys.reduce((allSubStateNodes, subStateKey) => {\n const subStateNode = getStateNode(stateNode, subStateKey);\n if (!subStateNode) {\n return allSubStateNodes;\n }\n const subStateNodes = getStateNodes(subStateNode, stateValue[subStateKey]);\n return allSubStateNodes.concat(subStateNodes);\n }, []));\n}\nfunction transitionAtomicNode(stateNode, stateValue, snapshot, event) {\n const childStateNode = getStateNode(stateNode, stateValue);\n const next = childStateNode.next(snapshot, event);\n if (!next || !next.length) {\n return stateNode.next(snapshot, event);\n }\n return next;\n}\nfunction transitionCompoundNode(stateNode, stateValue, snapshot, event) {\n const subStateKeys = Object.keys(stateValue);\n const childStateNode = getStateNode(stateNode, subStateKeys[0]);\n const next = transitionNode(childStateNode, stateValue[subStateKeys[0]], snapshot, event);\n if (!next || !next.length) {\n return stateNode.next(snapshot, event);\n }\n return next;\n}\nfunction transitionParallelNode(stateNode, stateValue, snapshot, event) {\n const allInnerTransitions = [];\n for (const subStateKey of Object.keys(stateValue)) {\n const subStateValue = stateValue[subStateKey];\n if (!subStateValue) {\n continue;\n }\n const subStateNode = getStateNode(stateNode, subStateKey);\n const innerTransitions = transitionNode(subStateNode, subStateValue, snapshot, event);\n if (innerTransitions) {\n allInnerTransitions.push(...innerTransitions);\n }\n }\n if (!allInnerTransitions.length) {\n return stateNode.next(snapshot, event);\n }\n return allInnerTransitions;\n}\nfunction transitionNode(stateNode, stateValue, snapshot, event) {\n // leaf node\n if (typeof stateValue === 'string') {\n return transitionAtomicNode(stateNode, stateValue, snapshot, event);\n }\n\n // compound node\n if (Object.keys(stateValue).length === 1) {\n return transitionCompoundNode(stateNode, stateValue, snapshot, event);\n }\n\n // parallel node\n return transitionParallelNode(stateNode, stateValue, snapshot, event);\n}\nfunction getHistoryNodes(stateNode) {\n return Object.keys(stateNode.states).map(key => stateNode.states[key]).filter(sn => sn.type === 'history');\n}\nfunction isDescendant(childStateNode, parentStateNode) {\n let marker = childStateNode;\n while (marker.parent && marker.parent !== parentStateNode) {\n marker = marker.parent;\n }\n return marker.parent === parentStateNode;\n}\nfunction hasIntersection(s1, s2) {\n const set1 = new Set(s1);\n const set2 = new Set(s2);\n for (const item of set1) {\n if (set2.has(item)) {\n return true;\n }\n }\n for (const item of set2) {\n if (set1.has(item)) {\n return true;\n }\n }\n return false;\n}\nfunction removeConflictingTransitions(enabledTransitions, stateNodeSet, historyValue) {\n const filteredTransitions = new Set();\n for (const t1 of enabledTransitions) {\n let t1Preempted = false;\n const transitionsToRemove = new Set();\n for (const t2 of filteredTransitions) {\n if (hasIntersection(computeExitSet([t1], stateNodeSet, historyValue), computeExitSet([t2], stateNodeSet, historyValue))) {\n if (isDescendant(t1.source, t2.source)) {\n transitionsToRemove.add(t2);\n } else {\n t1Preempted = true;\n break;\n }\n }\n }\n if (!t1Preempted) {\n for (const t3 of transitionsToRemove) {\n filteredTransitions.delete(t3);\n }\n filteredTransitions.add(t1);\n }\n }\n return Array.from(filteredTransitions);\n}\nfunction findLeastCommonAncestor(stateNodes) {\n const [head, ...tail] = stateNodes;\n for (const ancestor of getProperAncestors(head, undefined)) {\n if (tail.every(sn => isDescendant(sn, ancestor))) {\n return ancestor;\n }\n }\n}\nfunction getEffectiveTargetStates(transition, historyValue) {\n if (!transition.target) {\n return [];\n }\n const targets = new Set();\n for (const targetNode of transition.target) {\n if (isHistoryNode(targetNode)) {\n if (historyValue[targetNode.id]) {\n for (const node of historyValue[targetNode.id]) {\n targets.add(node);\n }\n } else {\n for (const node of getEffectiveTargetStates(resolveHistoryDefaultTransition(targetNode), historyValue)) {\n targets.add(node);\n }\n }\n } else {\n targets.add(targetNode);\n }\n }\n return [...targets];\n}\nfunction getTransitionDomain(transition, historyValue) {\n const targetStates = getEffectiveTargetStates(transition, historyValue);\n if (!targetStates) {\n return;\n }\n if (!transition.reenter && targetStates.every(target => target === transition.source || isDescendant(target, transition.source))) {\n return transition.source;\n }\n const lca = findLeastCommonAncestor(targetStates.concat(transition.source));\n if (lca) {\n return lca;\n }\n\n // at this point we know that it's a root transition since LCA couldn't be found\n if (transition.reenter) {\n return;\n }\n return transition.source.machine.root;\n}\nfunction computeExitSet(transitions, stateNodeSet, historyValue) {\n const statesToExit = new Set();\n for (const t of transitions) {\n if (t.target?.length) {\n const domain = getTransitionDomain(t, historyValue);\n if (t.reenter && t.source === domain) {\n statesToExit.add(domain);\n }\n for (const stateNode of stateNodeSet) {\n if (isDescendant(stateNode, domain)) {\n statesToExit.add(stateNode);\n }\n }\n }\n }\n return [...statesToExit];\n}\nfunction areStateNodeCollectionsEqual(prevStateNodes, nextStateNodeSet) {\n if (prevStateNodes.length !== nextStateNodeSet.size) {\n return false;\n }\n for (const node of prevStateNodes) {\n if (!nextStateNodeSet.has(node)) {\n return false;\n }\n }\n return true;\n}\n\n/** https://www.w3.org/TR/scxml/#microstepProcedure */\nfunction microstep(transitions, currentSnapshot, actorScope, event, isInitial, internalQueue) {\n if (!transitions.length) {\n return currentSnapshot;\n }\n const mutStateNodeSet = new Set(currentSnapshot._nodes);\n let historyValue = currentSnapshot.historyValue;\n const filteredTransitions = removeConflictingTransitions(transitions, mutStateNodeSet, historyValue);\n let nextState = currentSnapshot;\n\n // Exit states\n if (!isInitial) {\n [nextState, historyValue] = exitStates(nextState, event, actorScope, filteredTransitions, mutStateNodeSet, historyValue, internalQueue, actorScope.actionExecutor);\n }\n\n // Execute transition content\n nextState = resolveActionsAndContext(nextState, event, actorScope, filteredTransitions.flatMap(t => t.actions), internalQueue, undefined);\n\n // Enter states\n nextState = enterStates(nextState, event, actorScope, filteredTransitions, mutStateNodeSet, internalQueue, historyValue, isInitial);\n const nextStateNodes = [...mutStateNodeSet];\n if (nextState.status === 'done') {\n nextState = resolveActionsAndContext(nextState, event, actorScope, nextStateNodes.sort((a, b) => b.order - a.order).flatMap(state => state.exit), internalQueue, undefined);\n }\n\n // eslint-disable-next-line no-useless-catch\n try {\n if (historyValue === currentSnapshot.historyValue && areStateNodeCollectionsEqual(currentSnapshot._nodes, mutStateNodeSet)) {\n return nextState;\n }\n return cloneMachineSnapshot(nextState, {\n _nodes: nextStateNodes,\n historyValue\n });\n } catch (e) {\n // TODO: Refactor this once proper error handling is implemented.\n // See https://github.com/statelyai/rfcs/pull/4\n throw e;\n }\n}\nfunction getMachineOutput(snapshot, event, actorScope, rootNode, rootCompletionNode) {\n if (rootNode.output === undefined) {\n return;\n }\n const doneStateEvent = createDoneStateEvent(rootCompletionNode.id, rootCompletionNode.output !== undefined && rootCompletionNode.parent ? resolveOutput(rootCompletionNode.output, snapshot.context, event, actorScope.self) : undefined);\n return resolveOutput(rootNode.output, snapshot.context, doneStateEvent, actorScope.self);\n}\nfunction enterStates(currentSnapshot, event, actorScope, filteredTransitions, mutStateNodeSet, internalQueue, historyValue, isInitial) {\n let nextSnapshot = currentSnapshot;\n const statesToEnter = new Set();\n // those are states that were directly targeted or indirectly targeted by the explicit target\n // in other words, those are states for which initial actions should be executed\n // when we target `#deep_child` initial actions of its ancestors shouldn't be executed\n const statesForDefaultEntry = new Set();\n computeEntrySet(filteredTransitions, historyValue, statesForDefaultEntry, statesToEnter);\n\n // In the initial state, the root state node is \"entered\".\n if (isInitial) {\n statesForDefaultEntry.add(currentSnapshot.machine.root);\n }\n const completedNodes = new Set();\n for (const stateNodeToEnter of [...statesToEnter].sort((a, b) => a.order - b.order)) {\n mutStateNodeSet.add(stateNodeToEnter);\n const actions = [];\n\n // Add entry actions\n actions.push(...stateNodeToEnter.entry);\n for (const invokeDef of stateNodeToEnter.invoke) {\n actions.push(spawnChild(invokeDef.src, {\n ...invokeDef,\n syncSnapshot: !!invokeDef.onSnapshot\n }));\n }\n if (statesForDefaultEntry.has(stateNodeToEnter)) {\n const initialActions = stateNodeToEnter.initial.actions;\n actions.push(...initialActions);\n }\n nextSnapshot = resolveActionsAndContext(nextSnapshot, event, actorScope, actions, internalQueue, stateNodeToEnter.invoke.map(invokeDef => invokeDef.id));\n if (stateNodeToEnter.type === 'final') {\n const parent = stateNodeToEnter.parent;\n let ancestorMarker = parent?.type === 'parallel' ? parent : parent?.parent;\n let rootCompletionNode = ancestorMarker || stateNodeToEnter;\n if (parent?.type === 'compound') {\n internalQueue.push(createDoneStateEvent(parent.id, stateNodeToEnter.output !== undefined ? resolveOutput(stateNodeToEnter.output, nextSnapshot.context, event, actorScope.self) : undefined));\n }\n while (ancestorMarker?.type === 'parallel' && !completedNodes.has(ancestorMarker) && isInFinalState(mutStateNodeSet, ancestorMarker)) {\n completedNodes.add(ancestorMarker);\n internalQueue.push(createDoneStateEvent(ancestorMarker.id));\n rootCompletionNode = ancestorMarker;\n ancestorMarker = ancestorMarker.parent;\n }\n if (ancestorMarker) {\n continue;\n }\n nextSnapshot = cloneMachineSnapshot(nextSnapshot, {\n status: 'done',\n output: getMachineOutput(nextSnapshot, event, actorScope, nextSnapshot.machine.root, rootCompletionNode)\n });\n }\n }\n return nextSnapshot;\n}\nfunction computeEntrySet(transitions, historyValue, statesForDefaultEntry, statesToEnter) {\n for (const t of transitions) {\n const domain = getTransitionDomain(t, historyValue);\n for (const s of t.target || []) {\n if (!isHistoryNode(s) && (\n // if the target is different than the source then it will *definitely* be entered\n t.source !== s ||\n // we know that the domain can't lie within the source\n // if it's different than the source then it's outside of it and it means that the target has to be entered as well\n t.source !== domain ||\n // reentering transitions always enter the target, even if it's the source itself\n t.reenter)) {\n statesToEnter.add(s);\n statesForDefaultEntry.add(s);\n }\n addDescendantStatesToEnter(s, historyValue, statesForDefaultEntry, statesToEnter);\n }\n const targetStates = getEffectiveTargetStates(t, historyValue);\n for (const s of targetStates) {\n const ancestors = getProperAncestors(s, domain);\n if (domain?.type === 'parallel') {\n ancestors.push(domain);\n }\n addAncestorStatesToEnter(statesToEnter, historyValue, statesForDefaultEntry, ancestors, !t.source.parent && t.reenter ? undefined : domain);\n }\n }\n}\nfunction addDescendantStatesToEnter(stateNode, historyValue, statesForDefaultEntry, statesToEnter) {\n if (isHistoryNode(stateNode)) {\n if (historyValue[stateNode.id]) {\n const historyStateNodes = historyValue[stateNode.id];\n for (const s of historyStateNodes) {\n statesToEnter.add(s);\n addDescendantStatesToEnter(s, historyValue, statesForDefaultEntry, statesToEnter);\n }\n for (const s of historyStateNodes) {\n addProperAncestorStatesToEnter(s, stateNode.parent, statesToEnter, historyValue, statesForDefaultEntry);\n }\n } else {\n const historyDefaultTransition = resolveHistoryDefaultTransition(stateNode);\n for (const s of historyDefaultTransition.target) {\n statesToEnter.add(s);\n if (historyDefaultTransition === stateNode.parent?.initial) {\n statesForDefaultEntry.add(stateNode.parent);\n }\n addDescendantStatesToEnter(s, historyValue, statesForDefaultEntry, statesToEnter);\n }\n for (const s of historyDefaultTransition.target) {\n addProperAncestorStatesToEnter(s, stateNode.parent, statesToEnter, historyValue, statesForDefaultEntry);\n }\n }\n } else {\n if (stateNode.type === 'compound') {\n const [initialState] = stateNode.initial.target;\n if (!isHistoryNode(initialState)) {\n statesToEnter.add(initialState);\n statesForDefaultEntry.add(initialState);\n }\n addDescendantStatesToEnter(initialState, historyValue, statesForDefaultEntry, statesToEnter);\n addProperAncestorStatesToEnter(initialState, stateNode, statesToEnter, historyValue, statesForDefaultEntry);\n } else {\n if (stateNode.type === 'parallel') {\n for (const child of getChildren(stateNode).filter(sn => !isHistoryNode(sn))) {\n if (![...statesToEnter].some(s => isDescendant(s, child))) {\n if (!isHistoryNode(child)) {\n statesToEnter.add(child);\n statesForDefaultEntry.add(child);\n }\n addDescendantStatesToEnter(child, historyValue, statesForDefaultEntry, statesToEnter);\n }\n }\n }\n }\n }\n}\nfunction addAncestorStatesToEnter(statesToEnter, historyValue, statesForDefaultEntry, ancestors, reentrancyDomain) {\n for (const anc of ancestors) {\n if (!reentrancyDomain || isDescendant(anc, reentrancyDomain)) {\n statesToEnter.add(anc);\n }\n if (anc.type === 'parallel') {\n for (const child of getChildren(anc).filter(sn => !isHistoryNode(sn))) {\n if (![...statesToEnter].some(s => isDescendant(s, child))) {\n statesToEnter.add(child);\n addDescendantStatesToEnter(child, historyValue, statesForDefaultEntry, statesToEnter);\n }\n }\n }\n }\n}\nfunction addProperAncestorStatesToEnter(stateNode, toStateNode, statesToEnter, historyValue, statesForDefaultEntry) {\n addAncestorStatesToEnter(statesToEnter, historyValue, statesForDefaultEntry, getProperAncestors(stateNode, toStateNode));\n}\nfunction exitStates(currentSnapshot, event, actorScope, transitions, mutStateNodeSet, historyValue, internalQueue, _actionExecutor) {\n let nextSnapshot = currentSnapshot;\n const statesToExit = computeExitSet(transitions, mutStateNodeSet, historyValue);\n statesToExit.sort((a, b) => b.order - a.order);\n let changedHistory;\n\n // From SCXML algorithm: https://www.w3.org/TR/scxml/#exitStates\n for (const exitStateNode of statesToExit) {\n for (const historyNode of getHistoryNodes(exitStateNode)) {\n let predicate;\n if (historyNode.history === 'deep') {\n predicate = sn => isAtomicStateNode(sn) && isDescendant(sn, exitStateNode);\n } else {\n predicate = sn => {\n return sn.parent === exitStateNode;\n };\n }\n changedHistory ??= {\n ...historyValue\n };\n changedHistory[historyNode.id] = Array.from(mutStateNodeSet).filter(predicate);\n }\n }\n for (const s of statesToExit) {\n nextSnapshot = resolveActionsAndContext(nextSnapshot, event, actorScope, [...s.exit, ...s.invoke.map(def => stopChild(def.id))], internalQueue, undefined);\n mutStateNodeSet.delete(s);\n }\n return [nextSnapshot, changedHistory || historyValue];\n}\nfunction getAction(machine, actionType) {\n return machine.implementations.actions[actionType];\n}\nfunction resolveAndExecuteActionsWithContext(currentSnapshot, event, actorScope, actions, extra, retries) {\n const {\n machine\n } = currentSnapshot;\n let intermediateSnapshot = currentSnapshot;\n for (const action of actions) {\n const isInline = typeof action === 'function';\n const resolvedAction = isInline ? action :\n // the existing type of `.actions` assumes non-nullable `TExpressionAction`\n // it's fine to cast this here to get a common type and lack of errors in the rest of the code\n // our logic below makes sure that we call those 2 \"variants\" correctly\n\n getAction(machine, typeof action === 'string' ? action : action.type);\n const actionArgs = {\n context: intermediateSnapshot.context,\n event,\n self: actorScope.self,\n system: actorScope.system\n };\n const actionParams = isInline || typeof action === 'string' ? undefined : 'params' in action ? typeof action.params === 'function' ? action.params({\n context: intermediateSnapshot.context,\n event\n }) : action.params : undefined;\n if (!resolvedAction || !('resolve' in resolvedAction)) {\n actorScope.actionExecutor({\n type: typeof action === 'string' ? action : typeof action === 'object' ? action.type : action.name || '(anonymous)',\n info: actionArgs,\n params: actionParams,\n exec: resolvedAction\n });\n continue;\n }\n const builtinAction = resolvedAction;\n const [nextState, params, actions] = builtinAction.resolve(actorScope, intermediateSnapshot, actionArgs, actionParams, resolvedAction,\n // this holds all params\n extra);\n intermediateSnapshot = nextState;\n if ('retryResolve' in builtinAction) {\n retries?.push([builtinAction, params]);\n }\n if ('execute' in builtinAction) {\n actorScope.actionExecutor({\n type: builtinAction.type,\n info: actionArgs,\n params,\n exec: builtinAction.execute.bind(null, actorScope, params)\n });\n }\n if (actions) {\n intermediateSnapshot = resolveAndExecuteActionsWithContext(intermediateSnapshot, event, actorScope, actions, extra, retries);\n }\n }\n return intermediateSnapshot;\n}\nfunction resolveActionsAndContext(currentSnapshot, event, actorScope, actions, internalQueue, deferredActorIds) {\n const retries = deferredActorIds ? [] : undefined;\n const nextState = resolveAndExecuteActionsWithContext(currentSnapshot, event, actorScope, actions, {\n internalQueue,\n deferredActorIds\n }, retries);\n retries?.forEach(([builtinAction, params]) => {\n builtinAction.retryResolve(actorScope, nextState, params);\n });\n return nextState;\n}\nfunction macrostep(snapshot, event, actorScope, internalQueue) {\n let nextSnapshot = snapshot;\n const microstates = [];\n function addMicrostate(microstate, event, transitions) {\n actorScope.system._sendInspectionEvent({\n type: '@xstate.microstep',\n actorRef: actorScope.self,\n event,\n snapshot: microstate,\n _transitions: transitions\n });\n microstates.push(microstate);\n }\n\n // Handle stop event\n if (event.type === XSTATE_STOP) {\n nextSnapshot = cloneMachineSnapshot(stopChildren(nextSnapshot, event, actorScope), {\n status: 'stopped'\n });\n addMicrostate(nextSnapshot, event, []);\n return {\n snapshot: nextSnapshot,\n microstates\n };\n }\n let nextEvent = event;\n\n // Assume the state is at rest (no raised events)\n // Determine the next state based on the next microstep\n if (nextEvent.type !== XSTATE_INIT) {\n const currentEvent = nextEvent;\n const isErr = isErrorActorEvent(currentEvent);\n const transitions = selectTransitions(currentEvent, nextSnapshot);\n if (isErr && !transitions.length) {\n // TODO: we should likely only allow transitions selected by very explicit descriptors\n // `*` shouldn't be matched, likely `xstate.error.*` shouldnt be either\n // similarly `xstate.error.actor.*` and `xstate.error.actor.todo.*` have to be considered too\n nextSnapshot = cloneMachineSnapshot(snapshot, {\n status: 'error',\n error: currentEvent.error\n });\n addMicrostate(nextSnapshot, currentEvent, []);\n return {\n snapshot: nextSnapshot,\n microstates\n };\n }\n nextSnapshot = microstep(transitions, snapshot, actorScope, nextEvent, false,\n // isInitial\n internalQueue);\n addMicrostate(nextSnapshot, currentEvent, transitions);\n }\n let shouldSelectEventlessTransitions = true;\n while (nextSnapshot.status === 'active') {\n let enabledTransitions = shouldSelectEventlessTransitions ? selectEventlessTransitions(nextSnapshot, nextEvent) : [];\n\n // eventless transitions should always be selected after selecting *regular* transitions\n // by assigning `undefined` to `previousState` we ensure that `shouldSelectEventlessTransitions` gets always computed to true in such a case\n const previousState = enabledTransitions.length ? nextSnapshot : undefined;\n if (!enabledTransitions.length) {\n if (!internalQueue.length) {\n break;\n }\n nextEvent = internalQueue.shift();\n enabledTransitions = selectTransitions(nextEvent, nextSnapshot);\n }\n nextSnapshot = microstep(enabledTransitions, nextSnapshot, actorScope, nextEvent, false, internalQueue);\n shouldSelectEventlessTransitions = nextSnapshot !== previousState;\n addMicrostate(nextSnapshot, nextEvent, enabledTransitions);\n }\n if (nextSnapshot.status !== 'active') {\n stopChildren(nextSnapshot, nextEvent, actorScope);\n }\n return {\n snapshot: nextSnapshot,\n microstates\n };\n}\nfunction stopChildren(nextState, event, actorScope) {\n return resolveActionsAndContext(nextState, event, actorScope, Object.values(nextState.children).map(child => stopChild(child)), [], undefined);\n}\nfunction selectTransitions(event, nextState) {\n return nextState.machine.getTransitionData(nextState, event);\n}\nfunction selectEventlessTransitions(nextState, event) {\n const enabledTransitionSet = new Set();\n const atomicStates = nextState._nodes.filter(isAtomicStateNode);\n for (const stateNode of atomicStates) {\n loop: for (const s of [stateNode].concat(getProperAncestors(stateNode, undefined))) {\n if (!s.always) {\n continue;\n }\n for (const transition of s.always) {\n if (transition.guard === undefined || evaluateGuard(transition.guard, nextState.context, event, nextState)) {\n enabledTransitionSet.add(transition);\n break loop;\n }\n }\n }\n }\n return removeConflictingTransitions(Array.from(enabledTransitionSet), new Set(nextState._nodes), nextState.historyValue);\n}\n\n/**\n * Resolves a partial state value with its full representation in the state\n * node's machine.\n *\n * @param stateValue The partial state value to resolve.\n */\nfunction resolveStateValue(rootNode, stateValue) {\n const allStateNodes = getAllStateNodes(getStateNodes(rootNode, stateValue));\n return getStateValue(rootNode, [...allStateNodes]);\n}\n\nfunction isMachineSnapshot(value) {\n return !!value && typeof value === 'object' && 'machine' in value && 'value' in value;\n}\nconst machineSnapshotMatches = function matches(testValue) {\n return matchesState(testValue, this.value);\n};\nconst machineSnapshotHasTag = function hasTag(tag) {\n return this.tags.has(tag);\n};\nconst machineSnapshotCan = function can(event) {\n const transitionData = this.machine.getTransitionData(this, event);\n return !!transitionData?.length &&\n // Check that at least one transition is not forbidden\n transitionData.some(t => t.target !== undefined || t.actions.length);\n};\nconst machineSnapshotToJSON = function toJSON() {\n const {\n _nodes: nodes,\n tags,\n machine,\n getMeta,\n toJSON,\n can,\n hasTag,\n matches,\n ...jsonValues\n } = this;\n return {\n ...jsonValues,\n tags: Array.from(tags)\n };\n};\nconst machineSnapshotGetMeta = function getMeta() {\n return this._nodes.reduce((acc, stateNode) => {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n return acc;\n }, {});\n};\nfunction createMachineSnapshot(config, machine) {\n return {\n status: config.status,\n output: config.output,\n error: config.error,\n machine,\n context: config.context,\n _nodes: config._nodes,\n value: getStateValue(machine.root, config._nodes),\n tags: new Set(config._nodes.flatMap(sn => sn.tags)),\n children: config.children,\n historyValue: config.historyValue || {},\n matches: machineSnapshotMatches,\n hasTag: machineSnapshotHasTag,\n can: machineSnapshotCan,\n getMeta: machineSnapshotGetMeta,\n toJSON: machineSnapshotToJSON\n };\n}\nfunction cloneMachineSnapshot(snapshot, config = {}) {\n return createMachineSnapshot({\n ...snapshot,\n ...config\n }, snapshot.machine);\n}\nfunction getPersistedSnapshot(snapshot, options) {\n const {\n _nodes: nodes,\n tags,\n machine,\n children,\n context,\n can,\n hasTag,\n matches,\n getMeta,\n toJSON,\n ...jsonValues\n } = snapshot;\n const childrenJson = {};\n for (const id in children) {\n const child = children[id];\n childrenJson[id] = {\n snapshot: child.getPersistedSnapshot(options),\n src: child.src,\n systemId: child._systemId,\n syncSnapshot: child._syncSnapshot\n };\n }\n const persisted = {\n ...jsonValues,\n context: persistContext(context),\n children: childrenJson\n };\n return persisted;\n}\nfunction persistContext(contextPart) {\n let copy;\n for (const key in contextPart) {\n const value = contextPart[key];\n if (value && typeof value === 'object') {\n if ('sessionId' in value && 'send' in value && 'ref' in value) {\n copy ??= Array.isArray(contextPart) ? contextPart.slice() : {\n ...contextPart\n };\n copy[key] = {\n xstate$$type: $$ACTOR_TYPE,\n id: value.id\n };\n } else {\n const result = persistContext(value);\n if (result !== value) {\n copy ??= Array.isArray(contextPart) ? contextPart.slice() : {\n ...contextPart\n };\n copy[key] = result;\n }\n }\n }\n }\n return copy ?? contextPart;\n}\n\nfunction resolveRaise(_, snapshot, args, actionParams, {\n event: eventOrExpr,\n id,\n delay\n}, {\n internalQueue\n}) {\n const delaysMap = snapshot.machine.implementations.delays;\n if (typeof eventOrExpr === 'string') {\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `Only event objects may be used with raise; use raise({ type: \"${eventOrExpr}\" }) instead`);\n }\n const resolvedEvent = typeof eventOrExpr === 'function' ? eventOrExpr(args, actionParams) : eventOrExpr;\n let resolvedDelay;\n if (typeof delay === 'string') {\n const configDelay = delaysMap && delaysMap[delay];\n resolvedDelay = typeof configDelay === 'function' ? configDelay(args, actionParams) : configDelay;\n } else {\n resolvedDelay = typeof delay === 'function' ? delay(args, actionParams) : delay;\n }\n if (typeof resolvedDelay !== 'number') {\n internalQueue.push(resolvedEvent);\n }\n return [snapshot, {\n event: resolvedEvent,\n id,\n delay: resolvedDelay\n }, undefined];\n}\nfunction executeRaise(actorScope, params) {\n const {\n event,\n delay,\n id\n } = params;\n if (typeof delay === 'number') {\n actorScope.defer(() => {\n const self = actorScope.self;\n actorScope.system.scheduler.schedule(self, self, event, delay, id);\n });\n return;\n }\n}\n/**\n * Raises an event. This places the event in the internal event queue, so that\n * the event is immediately consumed by the machine in the current step.\n *\n * @param eventType The event to raise.\n */\nfunction raise(eventOrExpr, options) {\n function raise(_args, _params) {\n }\n raise.type = 'xstate.raise';\n raise.event = eventOrExpr;\n raise.id = options?.id;\n raise.delay = options?.delay;\n raise.resolve = resolveRaise;\n raise.execute = executeRaise;\n return raise;\n}\n\nexport { $$ACTOR_TYPE as $, createActor as A, Actor as B, interpret as C, and as D, not as E, or as F, stateIn as G, isMachineSnapshot as H, getAllOwnEventDescriptors as I, matchesState as J, pathToStateValue as K, toObserver as L, cancel as M, NULL_EVENT as N, raise as O, spawnChild as P, stop as Q, stopChild as R, STATE_DELIMITER as S, ProcessingStatus as T, cloneMachineSnapshot as U, XSTATE_ERROR as V, createErrorActorEvent as W, XSTATE_STOP as X, toTransitionConfigArray as a, formatTransition as b, createInvokeId as c, formatInitialTransition as d, evaluateGuard as e, formatTransitions as f, getDelayedTransitions as g, getCandidates as h, getAllStateNodes as i, getStateNodes as j, createMachineSnapshot as k, isInFinalState as l, mapValues as m, macrostep as n, transitionNode as o, resolveActionsAndContext as p, createInitEvent as q, resolveStateValue as r, microstep as s, toArray as t, getInitialStateNodes as u, toStatePath as v, isStateId as w, getStateNodeByPath as x, getPersistedSnapshot as y, resolveReferencedActor as z };\n","import { X as XSTATE_STOP, A as createActor } from '../../dist/raise-c17ec2bc.esm.js';\nimport '../../dev/dist/xstate-dev.esm.js';\n\n/**\n * Represents an actor created by `fromTransition`.\n *\n * The type of `self` within the actor's logic.\n *\n * @example\n *\n * ```ts\n * import {\n * fromTransition,\n * createActor,\n * type AnyActorSystem\n * } from 'xstate';\n *\n * //* The actor's stored context.\n * type Context = {\n * // The current count.\n * count: number;\n * // The amount to increase `count` by.\n * step: number;\n * };\n * // The events the actor receives.\n * type Event = { type: 'increment' };\n * // The actor's input.\n * type Input = { step?: number };\n *\n * // Actor logic that increments `count` by `step` when it receives an event of\n * // type `increment`.\n * const logic = fromTransition<Context, Event, AnyActorSystem, Input>(\n * (state, event, actorScope) => {\n * actorScope.self;\n * // ^? TransitionActorRef<Context, Event>\n *\n * if (event.type === 'increment') {\n * return {\n * ...state,\n * count: state.count + state.step\n * };\n * }\n * return state;\n * },\n * ({ input, self }) => {\n * self;\n * // ^? TransitionActorRef<Context, Event>\n *\n * return {\n * count: 0,\n * step: input.step ?? 1\n * };\n * }\n * );\n *\n * const actor = createActor(logic, { input: { step: 10 } });\n * // ^? TransitionActorRef<Context, Event>\n * ```\n *\n * @see {@link fromTransition}\n */\n\n/**\n * Returns actor logic given a transition function and its initial state.\n *\n * A “transition function” is a function that takes the current `state` and\n * received `event` object as arguments, and returns the next state, similar to\n * a reducer.\n *\n * Actors created from transition logic (“transition actors”) can:\n *\n * - Receive events\n * - Emit snapshots of its state\n *\n * The transition function’s `state` is used as its transition actor’s\n * `context`.\n *\n * Note that the \"state\" for a transition function is provided by the initial\n * state argument, and is not the same as the State object of an actor or a\n * state within a machine configuration.\n *\n * @example\n *\n * ```ts\n * const transitionLogic = fromTransition(\n * (state, event) => {\n * if (event.type === 'increment') {\n * return {\n * ...state,\n * count: state.count + 1\n * };\n * }\n * return state;\n * },\n * { count: 0 }\n * );\n *\n * const transitionActor = createActor(transitionLogic);\n * transitionActor.subscribe((snapshot) => {\n * console.log(snapshot);\n * });\n * transitionActor.start();\n * // => {\n * // status: 'active',\n * // context: { count: 0 },\n * // ...\n * // }\n *\n * transitionActor.send({ type: 'increment' });\n * // => {\n * // status: 'active',\n * // context: { count: 1 },\n * // ...\n * // }\n * ```\n *\n * @param transition The transition function used to describe the transition\n * logic. It should return the next state given the current state and event.\n * It receives the following arguments:\n *\n * - `state` - the current state.\n * - `event` - the received event.\n * - `actorScope` - the actor scope object, with properties like `self` and\n * `system`.\n *\n * @param initialContext The initial state of the transition function, either an\n * object representing the state, or a function which returns a state object.\n * If a function, it will receive as its only argument an object with the\n * following properties:\n *\n * - `input` - the `input` provided to its parent transition actor.\n * - `self` - a reference to its parent transition actor.\n *\n * @returns Actor logic\n * @see {@link https://stately.ai/docs/input | Input docs} for more information about how input is passed\n */\nfunction fromTransition(transition, initialContext) {\n return {\n config: transition,\n transition: (snapshot, event, actorScope) => {\n return {\n ...snapshot,\n context: transition(snapshot.context, event, actorScope)\n };\n },\n getInitialSnapshot: (_, input) => {\n return {\n status: 'active',\n output: undefined,\n error: undefined,\n context: typeof initialContext === 'function' ? initialContext({\n input\n }) : initialContext\n };\n },\n getPersistedSnapshot: snapshot => snapshot,\n restoreSnapshot: snapshot => snapshot\n };\n}\n\nconst instanceStates = /* #__PURE__ */new WeakMap();\n\n/**\n * Represents an actor created by `fromCallback`.\n *\n * The type of `self` within the actor's logic.\n *\n * @example\n *\n * ```ts\n * import { fromCallback, createActor } from 'xstate';\n *\n * // The events the actor receives.\n * type Event = { type: 'someEvent' };\n * // The actor's input.\n * type Input = { name: string };\n *\n * // Actor logic that logs whenever it receives an event of type `someEvent`.\n * const logic = fromCallback<Event, Input>(({ self, input, receive }) => {\n * self;\n * // ^? CallbackActorRef<Event, Input>\n *\n * receive((event) => {\n * if (event.type === 'someEvent') {\n * console.log(`${input.name}: received \"someEvent\" event`);\n * // logs 'myActor: received \"someEvent\" event'\n * }\n * });\n * });\n *\n * const actor = createActor(logic, { input: { name: 'myActor' } });\n * // ^? CallbackActorRef<Event, Input>\n * ```\n *\n * @see {@link fromCallback}\n */\n\n/**\n * An actor logic creator which returns callback logic as defined by a callback\n * function.\n *\n * @remarks\n * Useful for subscription-based or other free-form logic that can send events\n * back to the parent actor.\n *\n * Actors created from callback logic (“callback actors”) can:\n *\n * - Receive events via the `receive` function\n * - Send events to the parent actor via the `sendBack` function\n *\n * Callback actors are a bit different from other actors in that they:\n *\n * - Do not work with `onDone`\n * - Do not produce a snapshot using `.getSnapshot()`\n * - Do not emit values when used with `.subscribe()`\n * - Can not be stopped with `.stop()`\n *\n * @example\n *\n * ```typescript\n * const callbackLogic = fromCallback(({ sendBack, receive }) => {\n * let lockStatus = 'unlocked';\n *\n * const handler = (event) => {\n * if (lockStatus === 'locked') {\n * return;\n * }\n * sendBack(event);\n * };\n *\n * receive((event) => {\n * if (event.type === 'lock') {\n * lockStatus = 'locked';\n * } else if (event.type === 'unlock') {\n * lockStatus = 'unlocked';\n * }\n * });\n *\n * document.body.addEventListener('click', handler);\n *\n * return () => {\n * document.body.removeEventListener('click', handler);\n * };\n * });\n * ```\n *\n * @param callback - The callback function used to describe the callback logic\n * The callback function is passed an object with the following properties:\n *\n * - `receive` - A function that can send events back to the parent actor; the\n * listener is then called whenever events are received by the callback\n * actor\n * - `sendBack` - A function that can send events back to the parent actor\n * - `input` - Data that was provided to the callback actor\n * - `self` - The parent actor of the callback actor\n * - `system` - The actor system to which the callback actor belongs The callback\n * function can (optionally) return a cleanup function, which is called\n * when the actor is stopped.\n *\n * @returns Callback logic\n * @see {@link CallbackLogicFunction} for more information about the callback function and its object argument\n * @see {@link https://stately.ai/docs/input | Input docs} for more information about how input is passed\n */\nfunction fromCallback(callback) {\n const logic = {\n config: callback,\n start: (state, actorScope) => {\n const {\n self,\n system,\n emit\n } = actorScope;\n const callbackState = {\n receivers: undefined,\n dispose: undefined\n };\n instanceStates.set(self, callbackState);\n callbackState.dispose = callback({\n input: state.input,\n system,\n self,\n sendBack: event => {\n if (self.getSnapshot().status === 'stopped') {\n return;\n }\n if (self._parent) {\n system._relay(self, self._parent, event);\n }\n },\n receive: listener => {\n callbackState.receivers ??= new Set();\n callbackState.receivers.add(listener);\n },\n emit\n });\n },\n transition: (state, event, actorScope) => {\n const callbackState = instanceStates.get(actorScope.self);\n if (event.type === XSTATE_STOP) {\n state = {\n ...state,\n status: 'stopped',\n error: undefined\n };\n callbackState.dispose?.();\n return state;\n }\n callbackState.receivers?.forEach(receiver => receiver(event));\n return state;\n },\n getInitialSnapshot: (_, input) => {\n return {\n status: 'active',\n output: undefined,\n error: undefined,\n input\n };\n },\n getPersistedSnapshot: snapshot => snapshot,\n restoreSnapshot: snapshot => snapshot\n };\n return logic;\n}\n\nconst XSTATE_OBSERVABLE_NEXT = 'xstate.observable.next';\nconst XSTATE_OBSERVABLE_ERROR = 'xstate.observable.error';\nconst XSTATE_OBSERVABLE_COMPLETE = 'xstate.observable.complete';\n\n/**\n * Represents an actor created by `fromObservable` or `fromEventObservable`.\n *\n * The type of `self` within the actor's logic.\n *\n * @example\n *\n * ```ts\n * import { fromObservable, createActor } from 'xstate';\n * import { interval } from 'rxjs';\n *\n * // The type of the value observed by the actor's logic.\n * type Context = number;\n * // The actor's input.\n * type Input = { period?: number };\n *\n * // Actor logic that observes a number incremented every `input.period`\n * // milliseconds (default: 1_000).\n * const logic = fromObservable<Context, Input>(({ input, self }) => {\n * self;\n * // ^? ObservableActorRef<Event, Input>\n *\n * return interval(input.period ?? 1_000);\n * });\n *\n * const actor = createActor(logic, { input: { period: 2_000 } });\n * // ^? ObservableActorRef<Event, Input>\n * ```\n *\n * @see {@link fromObservable}\n * @see {@link fromEventObservable}\n */\n\n/**\n * Observable actor logic is described by an observable stream of values. Actors\n * created from observable logic (“observable actors”) can:\n *\n * - Emit snapshots of the observable’s emitted value\n *\n * The observable’s emitted value is used as its observable actor’s `context`.\n *\n * Sending events to observable actors will have no effect.\n *\n * @example\n *\n * ```ts\n * import { fromObservable, createActor } from 'xstate';\n * import { interval } from 'rxjs';\n *\n * const logic = fromObservable((obj) => interval(1000));\n *\n * const actor = createActor(logic);\n *\n * actor.subscribe((snapshot) => {\n * console.log(snapshot.context);\n * });\n *\n * actor.start();\n * // At every second:\n * // Logs 0\n * // Logs 1\n * // Logs 2\n * // ...\n * ```\n *\n * @param observableCreator A function that creates an observable. It receives\n * one argument, an object with the following properties:\n *\n * - `input` - Data that was provided to the observable actor\n * - `self` - The parent actor\n * - `system` - The actor system to which the observable actor belongs\n *\n * It should return a {@link Subscribable}, which is compatible with an RxJS\n * Observable, although RxJS is not required to create them.\n * @see {@link https://rxjs.dev} for documentation on RxJS Observable and observable creators.\n * @see {@link Subscribable} interface in XState, which is based on and compatible with RxJS Observable.\n */\nfunction fromObservable(observableCreator) {\n // TODO: add event types\n const logic = {\n config: observableCreator,\n transition: (snapshot, event) => {\n if (snapshot.status !== 'active') {\n return snapshot;\n }\n switch (event.type) {\n case XSTATE_OBSERVABLE_NEXT:\n {\n const newSnapshot = {\n ...snapshot,\n context: event.data\n };\n return newSnapshot;\n }\n case XSTATE_OBSERVABLE_ERROR:\n return {\n ...snapshot,\n status: 'error',\n error: event.data,\n input: undefined,\n _subscription: undefined\n };\n case XSTATE_OBSERVABLE_COMPLETE:\n return {\n ...snapshot,\n status: 'done',\n input: undefined,\n _subscription: undefined\n };\n case XSTATE_STOP:\n snapshot._subscription.unsubscribe();\n return {\n ...snapshot,\n status: 'stopped',\n input: undefined,\n _subscription: undefined\n };\n default:\n return snapshot;\n }\n },\n getInitialSnapshot: (_, input) => {\n return {\n status: 'active',\n output: undefined,\n error: undefined,\n context: undefined,\n input,\n _subscription: undefined\n };\n },\n start: (state, {\n self,\n system,\n emit\n }) => {\n if (state.status === 'done') {\n // Do not restart a completed observable\n return;\n }\n state._subscription = observableCreator({\n input: state.input,\n system,\n self,\n emit\n }).subscribe({\n next: value => {\n system._relay(self, self, {\n type: XSTATE_OBSERVABLE_NEXT,\n data: value\n });\n },\n error: err => {\n system._relay(self, self, {\n type: XSTATE_OBSERVABLE_ERROR,\n data: err\n });\n },\n complete: () => {\n system._relay(self, self, {\n type: XSTATE_OBSERVABLE_COMPLETE\n });\n }\n });\n },\n getPersistedSnapshot: ({\n _subscription,\n ...state\n }) => state,\n restoreSnapshot: state => ({\n ...state,\n _subscription: undefined\n })\n };\n return logic;\n}\n\n/**\n * Creates event observable logic that listens to an observable that delivers\n * event objects.\n *\n * Event observable actor logic is described by an observable stream of\n * {@link https://stately.ai/docs/transitions#event-objects | event objects}.\n * Actors created from event observable logic (“event observable actors”) can:\n *\n * - Implicitly send events to its parent actor\n * - Emit snapshots of its emitted event objects\n *\n * Sending events to event observable actors will have no effect.\n *\n * @example\n *\n * ```ts\n * import {\n * fromEventObservable,\n * Subscribable,\n * EventObject,\n * createMachine,\n * createActor\n * } from 'xstate';\n * import { fromEvent } from 'rxjs';\n *\n * const mouseClickLogic = fromEventObservable(\n * () => fromEvent(document.body, 'click') as Subscribable<EventObject>\n * );\n *\n * const canvasMachine = createMachine({\n * invoke: {\n * // Will send mouse `click` events to the canvas actor\n * src: mouseClickLogic\n * }\n * });\n *\n * const canvasActor = createActor(canvasMachine);\n * canvasActor.start();\n * ```\n *\n * @param lazyObservable A function that creates an observable that delivers\n * event objects. It receives one argument, an object with the following\n * properties:\n *\n * - `input` - Data that was provided to the event observable actor\n * - `self` - The parent actor\n * - `system` - The actor system to which the event observable actor belongs.\n *\n * It should return a {@link Subscribable}, which is compatible with an RxJS\n * Observable, although RxJS is not required to create them.\n */\nfunction fromEventObservable(lazyObservable) {\n // TODO: event types\n const logic = {\n config: lazyObservable,\n transition: (state, event) => {\n if (state.status !== 'active') {\n return state;\n }\n switch (event.type) {\n case XSTATE_OBSERVABLE_ERROR:\n return {\n ...state,\n status: 'error',\n error: event.data,\n input: undefined,\n _subscription: undefined\n };\n case XSTATE_OBSERVABLE_COMPLETE:\n return {\n ...state,\n status: 'done',\n input: undefined,\n _subscription: undefined\n };\n case XSTATE_STOP:\n state._subscription.unsubscribe();\n return {\n ...state,\n status: 'stopped',\n input: undefined,\n _subscription: undefined\n };\n default:\n return state;\n }\n },\n getInitialSnapshot: (_, input) => {\n return {\n status: 'active',\n output: undefined,\n error: undefined,\n context: undefined,\n input,\n _subscription: undefined\n };\n },\n start: (state, {\n self,\n system,\n emit\n }) => {\n if (state.status === 'done') {\n // Do not restart a completed observable\n return;\n }\n state._subscription = lazyObservable({\n input: state.input,\n system,\n self,\n emit\n }).subscribe({\n next: value => {\n if (self._parent) {\n system._relay(self, self._parent, value);\n }\n },\n error: err => {\n system._relay(self, self, {\n type: XSTATE_OBSERVABLE_ERROR,\n data: err\n });\n },\n complete: () => {\n system._relay(self, self, {\n type: XSTATE_OBSERVABLE_COMPLETE\n });\n }\n });\n },\n getPersistedSnapshot: ({\n _subscription,\n ...snapshot\n }) => snapshot,\n restoreSnapshot: snapshot => ({\n ...snapshot,\n _subscription: undefined\n })\n };\n return logic;\n}\n\nconst XSTATE_PROMISE_RESOLVE = 'xstate.promise.resolve';\nconst XSTATE_PROMISE_REJECT = 'xstate.promise.reject';\n\n/**\n * Represents an actor created by `fromPromise`.\n *\n * The type of `self` within the actor's logic.\n *\n * @example\n *\n * ```ts\n * import { fromPromise, createActor } from 'xstate';\n *\n * // The actor's resolved output\n * type Output = string;\n * // The actor's input.\n * type Input = { message: string };\n *\n * // Actor logic that fetches the url of an image of a cat saying `input.message`.\n * const logic = fromPromise<Output, Input>(async ({ input, self }) => {\n * self;\n * // ^? PromiseActorRef<Output, Input>\n *\n * const data = await fetch(\n * `https://cataas.com/cat/says/${input.message}`\n * );\n * const url = await data.json();\n * return url;\n * });\n *\n * const actor = createActor(logic, { input: { message: 'hello world' } });\n * // ^? PromiseActorRef<Output, Input>\n * ```\n *\n * @see {@link fromPromise}\n */\n\nconst controllerMap = new WeakMap();\n\n/**\n * An actor logic creator which returns promise logic as defined by an async\n * process that resolves or rejects after some time.\n *\n * Actors created from promise actor logic (“promise actors”) can:\n *\n * - Emit the resolved value of the promise\n * - Output the resolved value of the promise\n *\n * Sending events to promise actors will have no effect.\n *\n * @example\n *\n * ```ts\n * const promiseLogic = fromPromise(async () => {\n * const result = await fetch('https://example.com/...').then((data) =>\n * data.json()\n * );\n *\n * return result;\n * });\n *\n * const promiseActor = createActor(promiseLogic);\n * promiseActor.subscribe((snapshot) => {\n * console.log(snapshot);\n * });\n * promiseActor.start();\n * // => {\n * // output: undefined,\n * // status: 'active'\n * // ...\n * // }\n *\n * // After promise resolves\n * // => {\n * // output: { ... },\n * // status: 'done',\n * // ...\n * // }\n * ```\n *\n * @param promiseCreator A function which returns a Promise, and accepts an\n * object with the following properties:\n *\n * - `input` - Data that was provided to the promise actor\n * - `self` - The parent actor of the promise actor\n * - `system` - The actor system to which the promise actor belongs\n *\n * @see {@link https://stately.ai/docs/input | Input docs} for more information about how input is passed\n */\nfunction fromPromise(promiseCreator) {\n const logic = {\n config: promiseCreator,\n transition: (state, event, scope) => {\n if (state.status !== 'active') {\n return state;\n }\n switch (event.type) {\n case XSTATE_PROMISE_RESOLVE:\n {\n const resolvedValue = event.data;\n return {\n ...state,\n status: 'done',\n output: resolvedValue,\n input: undefined\n };\n }\n case XSTATE_PROMISE_REJECT:\n return {\n ...state,\n status: 'error',\n error: event.data,\n input: undefined\n };\n case XSTATE_STOP:\n {\n controllerMap.get(scope.self)?.abort();\n return {\n ...state,\n status: 'stopped',\n input: undefined\n };\n }\n default:\n return state;\n }\n },\n start: (state, {\n self,\n system,\n emit\n }) => {\n // TODO: determine how to allow customizing this so that promises\n // can be restarted if necessary\n if (state.status !== 'active') {\n return;\n }\n const controller = new AbortController();\n controllerMap.set(self, controller);\n const resolvedPromise = Promise.resolve(promiseCreator({\n input: state.input,\n system,\n self,\n signal: controller.signal,\n emit\n }));\n resolvedPromise.then(response => {\n if (self.getSnapshot().status !== 'active') {\n return;\n }\n controllerMap.delete(self);\n system._relay(self, self, {\n type: XSTATE_PROMISE_RESOLVE,\n data: response\n });\n }, errorData => {\n if (self.getSnapshot().status !== 'active') {\n return;\n }\n controllerMap.delete(self);\n system._relay(self, self, {\n type: XSTATE_PROMISE_REJECT,\n data: errorData\n });\n });\n },\n getInitialSnapshot: (_, input) => {\n return {\n status: 'active',\n output: undefined,\n error: undefined,\n input\n };\n },\n getPersistedSnapshot: snapshot => snapshot,\n restoreSnapshot: snapshot => snapshot\n };\n return logic;\n}\n\nconst emptyLogic = fromTransition(_ => undefined, undefined);\nfunction createEmptyActor() {\n return createActor(emptyLogic);\n}\n\nexport { createEmptyActor, fromCallback, fromEventObservable, fromObservable, fromPromise, fromTransition };\n","import { T as ProcessingStatus, z as resolveReferencedActor, A as createActor, U as cloneMachineSnapshot, V as XSTATE_ERROR, W as createErrorActorEvent, e as evaluateGuard, M as cancel, O as raise, P as spawnChild, R as stopChild } from './raise-c17ec2bc.esm.js';\n\nfunction createSpawner(actorScope, {\n machine,\n context\n}, event, spawnedChildren) {\n const spawn = (src, options) => {\n if (typeof src === 'string') {\n const logic = resolveReferencedActor(machine, src);\n if (!logic) {\n throw new Error(`Actor logic '${src}' not implemented in machine '${machine.id}'`);\n }\n const actorRef = createActor(logic, {\n id: options?.id,\n parent: actorScope.self,\n syncSnapshot: options?.syncSnapshot,\n input: typeof options?.input === 'function' ? options.input({\n context,\n event,\n self: actorScope.self\n }) : options?.input,\n src,\n systemId: options?.systemId\n });\n spawnedChildren[actorRef.id] = actorRef;\n return actorRef;\n } else {\n const actorRef = createActor(src, {\n id: options?.id,\n parent: actorScope.self,\n syncSnapshot: options?.syncSnapshot,\n input: options?.input,\n src,\n systemId: options?.systemId\n });\n return actorRef;\n }\n };\n return (src, options) => {\n const actorRef = spawn(src, options); // TODO: fix types\n spawnedChildren[actorRef.id] = actorRef;\n actorScope.defer(() => {\n if (actorRef._processingStatus === ProcessingStatus.Stopped) {\n return;\n }\n actorRef.start();\n });\n return actorRef;\n };\n}\n\nfunction resolveAssign(actorScope, snapshot, actionArgs, actionParams, {\n assignment\n}) {\n if (!snapshot.context) {\n throw new Error('Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.');\n }\n const spawnedChildren = {};\n const assignArgs = {\n context: snapshot.context,\n event: actionArgs.event,\n spawn: createSpawner(actorScope, snapshot, actionArgs.event, spawnedChildren),\n self: actorScope.self,\n system: actorScope.system\n };\n let partialUpdate = {};\n if (typeof assignment === 'function') {\n partialUpdate = assignment(assignArgs, actionParams);\n } else {\n for (const key of Object.keys(assignment)) {\n const propAssignment = assignment[key];\n partialUpdate[key] = typeof propAssignment === 'function' ? propAssignment(assignArgs, actionParams) : propAssignment;\n }\n }\n const updatedContext = Object.assign({}, snapshot.context, partialUpdate);\n return [cloneMachineSnapshot(snapshot, {\n context: updatedContext,\n children: Object.keys(spawnedChildren).length ? {\n ...snapshot.children,\n ...spawnedChildren\n } : snapshot.children\n }), undefined, undefined];\n}\n/**\n * Updates the current context of the machine.\n *\n * @example\n *\n * ```ts\n * import { createMachine, assign } from 'xstate';\n *\n * const countMachine = createMachine({\n * context: {\n * count: 0,\n * message: ''\n * },\n * on: {\n * inc: {\n * actions: assign({\n * count: ({ context }) => context.count + 1\n * })\n * },\n * updateMessage: {\n * actions: assign(({ context, event }) => {\n * return {\n * message: event.message.trim()\n * };\n * })\n * }\n * }\n * });\n * ```\n *\n * @param assignment An object that represents the partial context to update, or\n * a function that returns an object that represents the partial context to\n * update.\n */\nfunction assign(assignment) {\n function assign(_args, _params) {\n }\n assign.type = 'xstate.assign';\n assign.assignment = assignment;\n assign.resolve = resolveAssign;\n return assign;\n}\n\nfunction resolveEmit(_, snapshot, args, actionParams, {\n event: eventOrExpr\n}) {\n const resolvedEvent = typeof eventOrExpr === 'function' ? eventOrExpr(args, actionParams) : eventOrExpr;\n return [snapshot, {\n event: resolvedEvent\n }, undefined];\n}\nfunction executeEmit(actorScope, {\n event\n}) {\n actorScope.defer(() => actorScope.emit(event));\n}\n/**\n * Emits an event to event handlers registered on the actor via `actor.on(event,\n * handler)`.\n *\n * @example\n *\n * ```ts\n * import { emit } from 'xstate';\n *\n * const machine = createMachine({\n * // ...\n * on: {\n * something: {\n * actions: emit({\n * type: 'emitted',\n * some: 'data'\n * })\n * }\n * }\n * // ...\n * });\n *\n * const actor = createActor(machine).start();\n *\n * actor.on('emitted', (event) => {\n * console.log(event);\n * });\n *\n * actor.send({ type: 'something' });\n * // logs:\n * // {\n * // type: 'emitted',\n * // some: 'data'\n * // }\n * ```\n */\nfunction emit(/** The event to emit, or an expression that returns an event to emit. */\neventOrExpr) {\n function emit(_args, _params) {\n }\n emit.type = 'xstate.emit';\n emit.event = eventOrExpr;\n emit.resolve = resolveEmit;\n emit.execute = executeEmit;\n return emit;\n}\n\n/**\n * @remarks\n * `T | unknown` reduces to `unknown` and that can be problematic when it comes\n * to contextual typing. It especially is a problem when the union has a\n * function member, like here:\n *\n * ```ts\n * declare function test(\n * cbOrVal: ((arg: number) => unknown) | unknown\n * ): void;\n * test((arg) => {}); // oops, implicit any\n * ```\n *\n * This type can be used to avoid this problem. This union represents the same\n * value space as `unknown`.\n */\n\n// https://github.com/microsoft/TypeScript/issues/23182#issuecomment-379091887\n\n// @TODO: Replace with native `NoInfer` when TS issue gets fixed:\n// https://github.com/microsoft/TypeScript/pull/57673\n\n/** @deprecated Use the built-in `NoInfer` type instead */\n\n/** The full definition of an event, with a string `type`. */\n\n/**\n * The string or object representing the state value relative to the parent\n * state node.\n *\n * @remarks\n * - For a child atomic state node, this is a string, e.g., `\"pending\"`.\n * - For complex state nodes, this is an object, e.g., `{ success:\n * \"someChildState\" }`.\n */\n\n/** @deprecated Use `AnyMachineSnapshot` instead */\n\n// TODO: possibly refactor this somehow, use even a simpler type, and maybe even make `machine.options` private or something\n/** @ignore */\n\nlet SpecialTargets = /*#__PURE__*/function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n return SpecialTargets;\n}({});\n\n/** @deprecated Use `AnyActor` instead. */\n\n// Based on RxJS types\n\n// TODO: in v6, this should only accept AnyActorLogic, like ActorRefFromLogic\n\n/** @deprecated Use `Actor<T>` instead. */\n\n/**\n * Represents logic which can be used by an actor.\n *\n * @template TSnapshot - The type of the snapshot.\n * @template TEvent - The type of the event object.\n * @template TInput - The type of the input.\n * @template TSystem - The type of the actor system.\n */\n\n/** @deprecated */\n\n// TODO: cover all that can be actually returned\n\nfunction resolveSendTo(actorScope, snapshot, args, actionParams, {\n to,\n event: eventOrExpr,\n id,\n delay\n}, extra) {\n const delaysMap = snapshot.machine.implementations.delays;\n if (typeof eventOrExpr === 'string') {\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `Only event objects may be used with sendTo; use sendTo({ type: \"${eventOrExpr}\" }) instead`);\n }\n const resolvedEvent = typeof eventOrExpr === 'function' ? eventOrExpr(args, actionParams) : eventOrExpr;\n let resolvedDelay;\n if (typeof delay === 'string') {\n const configDelay = delaysMap && delaysMap[delay];\n resolvedDelay = typeof configDelay === 'function' ? configDelay(args, actionParams) : configDelay;\n } else {\n resolvedDelay = typeof delay === 'function' ? delay(args, actionParams) : delay;\n }\n const resolvedTarget = typeof to === 'function' ? to(args, actionParams) : to;\n let targetActorRef;\n if (typeof resolvedTarget === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n if (resolvedTarget === SpecialTargets.Parent) {\n targetActorRef = actorScope.self._parent;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n else if (resolvedTarget === SpecialTargets.Internal) {\n targetActorRef = actorScope.self;\n } else if (resolvedTarget.startsWith('#_')) {\n // SCXML compatibility: https://www.w3.org/TR/scxml/#SCXMLEventProcessor\n // #_invokeid. If the target is the special term '#_invokeid', where invokeid is the invokeid of an SCXML session that the sending session has created by <invoke>, the Processor must add the event to the external queue of that session.\n targetActorRef = snapshot.children[resolvedTarget.slice(2)];\n } else {\n targetActorRef = extra.deferredActorIds?.includes(resolvedTarget) ? resolvedTarget : snapshot.children[resolvedTarget];\n }\n if (!targetActorRef) {\n throw new Error(`Unable to send event to actor '${resolvedTarget}' from machine '${snapshot.machine.id}'.`);\n }\n } else {\n targetActorRef = resolvedTarget || actorScope.self;\n }\n return [snapshot, {\n to: targetActorRef,\n targetId: typeof resolvedTarget === 'string' ? resolvedTarget : undefined,\n event: resolvedEvent,\n id,\n delay: resolvedDelay\n }, undefined];\n}\nfunction retryResolveSendTo(_, snapshot, params) {\n if (typeof params.to === 'string') {\n params.to = snapshot.children[params.to];\n }\n}\nfunction executeSendTo(actorScope, params) {\n // this forms an outgoing events queue\n // thanks to that the recipient actors are able to read the *updated* snapshot value of the sender\n actorScope.defer(() => {\n const {\n to,\n event,\n delay,\n id\n } = params;\n if (typeof delay === 'number') {\n actorScope.system.scheduler.schedule(actorScope.self, to, event, delay, id);\n return;\n }\n actorScope.system._relay(actorScope.self,\n // at this point, in a deferred task, it should already be mutated by retryResolveSendTo\n // if it initially started as a string\n to, event.type === XSTATE_ERROR ? createErrorActorEvent(actorScope.self.id, event.data) : event);\n });\n}\n/**\n * Sends an event to an actor.\n *\n * @param actor The `ActorRef` to send the event to.\n * @param event The event to send, or an expression that evaluates to the event\n * to send\n * @param options Send action options\n *\n * - `id` - The unique send event identifier (used with `cancel()`).\n * - `delay` - The number of milliseconds to delay the sending of the event.\n */\nfunction sendTo(to, eventOrExpr, options) {\n function sendTo(_args, _params) {\n }\n sendTo.type = 'xstate.sendTo';\n sendTo.to = to;\n sendTo.event = eventOrExpr;\n sendTo.id = options?.id;\n sendTo.delay = options?.delay;\n sendTo.resolve = resolveSendTo;\n sendTo.retryResolve = retryResolveSendTo;\n sendTo.execute = executeSendTo;\n return sendTo;\n}\n\n/**\n * Sends an event to this machine's parent.\n *\n * @param event The event to send to the parent machine.\n * @param options Options to pass into the send event.\n */\nfunction sendParent(event, options) {\n return sendTo(SpecialTargets.Parent, event, options);\n}\n/**\n * Forwards (sends) an event to the `target` actor.\n *\n * @param target The target actor to forward the event to.\n * @param options Options to pass into the send action creator.\n */\nfunction forwardTo(target, options) {\n return sendTo(target, ({\n event\n }) => event, options);\n}\n\nfunction resolveEnqueueActions(actorScope, snapshot, args, actionParams, {\n collect\n}) {\n const actions = [];\n const enqueue = function enqueue(action) {\n actions.push(action);\n };\n enqueue.assign = (...args) => {\n actions.push(assign(...args));\n };\n enqueue.cancel = (...args) => {\n actions.push(cancel(...args));\n };\n enqueue.raise = (...args) => {\n // for some reason it fails to infer `TDelay` from `...args` here and picks its default (`never`)\n // then it fails to typecheck that because `...args` use `string` in place of `TDelay`\n actions.push(raise(...args));\n };\n enqueue.sendTo = (...args) => {\n // for some reason it fails to infer `TDelay` from `...args` here and picks its default (`never`)\n // then it fails to typecheck that because `...args` use `string` in place of `TDelay\n actions.push(sendTo(...args));\n };\n enqueue.sendParent = (...args) => {\n actions.push(sendParent(...args));\n };\n enqueue.spawnChild = (...args) => {\n actions.push(spawnChild(...args));\n };\n enqueue.stopChild = (...args) => {\n actions.push(stopChild(...args));\n };\n enqueue.emit = (...args) => {\n actions.push(emit(...args));\n };\n collect({\n context: args.context,\n event: args.event,\n enqueue,\n check: guard => evaluateGuard(guard, snapshot.context, args.event, snapshot),\n self: actorScope.self,\n system: actorScope.system\n }, actionParams);\n return [snapshot, undefined, actions];\n}\n/**\n * Creates an action object that will execute actions that are queued by the\n * `enqueue(action)` function.\n *\n * @example\n *\n * ```ts\n * import { createMachine, enqueueActions } from 'xstate';\n *\n * const machine = createMachine({\n * entry: enqueueActions(({ enqueue, check }) => {\n * enqueue.assign({ count: 0 });\n *\n * if (check('someGuard')) {\n * enqueue.assign({ count: 1 });\n * }\n *\n * enqueue('someAction');\n * })\n * });\n * ```\n */\nfunction enqueueActions(collect) {\n function enqueueActions(_args, _params) {\n }\n enqueueActions.type = 'xstate.enqueueActions';\n enqueueActions.collect = collect;\n enqueueActions.resolve = resolveEnqueueActions;\n return enqueueActions;\n}\n\nfunction resolveLog(_, snapshot, actionArgs, actionParams, {\n value,\n label\n}) {\n return [snapshot, {\n value: typeof value === 'function' ? value(actionArgs, actionParams) : value,\n label\n }, undefined];\n}\nfunction executeLog({\n logger\n}, {\n value,\n label\n}) {\n if (label) {\n logger(label, value);\n } else {\n logger(value);\n }\n}\n/**\n * @param expr The expression function to evaluate which will be logged. Takes\n * in 2 arguments:\n *\n * - `ctx` - the current state context\n * - `event` - the event that caused this action to be executed.\n *\n * @param label The label to give to the logged expression.\n */\nfunction log(value = ({\n context,\n event\n}) => ({\n context,\n event\n}), label) {\n function log(_args, _params) {\n }\n log.type = 'xstate.log';\n log.value = value;\n log.label = label;\n log.resolve = resolveLog;\n log.execute = executeLog;\n return log;\n}\n\nexport { SpecialTargets as S, assign as a, enqueueActions as b, sendTo as c, emit as e, forwardTo as f, log as l, sendParent as s };\n","export { createEmptyActor, fromCallback, fromEventObservable, fromObservable, fromPromise, fromTransition } from '../actors/dist/xstate-actors.esm.js';\nimport { t as toArray, S as STATE_DELIMITER, m as mapValues, f as formatTransitions, a as toTransitionConfigArray, b as formatTransition, N as NULL_EVENT, e as evaluateGuard, c as createInvokeId, g as getDelayedTransitions, d as formatInitialTransition, h as getCandidates, r as resolveStateValue, i as getAllStateNodes, j as getStateNodes, k as createMachineSnapshot, l as isInFinalState, n as macrostep, o as transitionNode, p as resolveActionsAndContext, q as createInitEvent, s as microstep, u as getInitialStateNodes, v as toStatePath, w as isStateId, x as getStateNodeByPath, y as getPersistedSnapshot, z as resolveReferencedActor, A as createActor, $ as $$ACTOR_TYPE } from './raise-c17ec2bc.esm.js';\nexport { B as Actor, I as __unsafe_getAllOwnEventDescriptors, D as and, M as cancel, A as createActor, j as getStateNodes, C as interpret, H as isMachineSnapshot, J as matchesState, E as not, F as or, K as pathToStateValue, O as raise, P as spawnChild, G as stateIn, Q as stop, R as stopChild, L as toObserver } from './raise-c17ec2bc.esm.js';\nimport { a as assign } from './log-3d9d72a9.esm.js';\nexport { S as SpecialTargets, a as assign, e as emit, b as enqueueActions, f as forwardTo, l as log, s as sendParent, c as sendTo } from './log-3d9d72a9.esm.js';\nimport '../dev/dist/xstate-dev.esm.js';\n\n/**\n * Asserts that the given event object is of the specified type or types. Throws\n * an error if the event object is not of the specified types.\n *\n * @example\n *\n * ```ts\n * // ...\n * entry: ({ event }) => {\n * assertEvent(event, 'doNothing');\n * // event is { type: 'doNothing' }\n * },\n * // ...\n * exit: ({ event }) => {\n * assertEvent(event, 'greet');\n * // event is { type: 'greet'; message: string }\n *\n * assertEvent(event, ['greet', 'notify']);\n * // event is { type: 'greet'; message: string }\n * // or { type: 'notify'; message: string; level: 'info' | 'error' }\n * },\n * ```\n */\nfunction assertEvent(event, type) {\n const types = toArray(type);\n if (!types.includes(event.type)) {\n const typesText = types.length === 1 ? `type \"${types[0]}\"` : `one of types \"${types.join('\", \"')}\"`;\n throw new Error(`Expected event ${JSON.stringify(event)} to have ${typesText}`);\n }\n}\n\nconst cache = new WeakMap();\nfunction memo(object, key, fn) {\n let memoizedData = cache.get(object);\n if (!memoizedData) {\n memoizedData = {\n [key]: fn()\n };\n cache.set(object, memoizedData);\n } else if (!(key in memoizedData)) {\n memoizedData[key] = fn();\n }\n return memoizedData[key];\n}\n\nconst EMPTY_OBJECT = {};\nconst toSerializableAction = action => {\n if (typeof action === 'string') {\n return {\n type: action\n };\n }\n if (typeof action === 'function') {\n if ('resolve' in action) {\n return {\n type: action.type\n };\n }\n return {\n type: action.name\n };\n }\n return action;\n};\nclass StateNode {\n constructor(/** The raw config used to create the machine. */\n config, options) {\n this.config = config;\n /**\n * The relative key of the state node, which represents its location in the\n * overall state value.\n */\n this.key = void 0;\n /** The unique ID of the state node. */\n this.id = void 0;\n /**\n * The type of this state node:\n *\n * - `'atomic'` - no child state nodes\n * - `'compound'` - nested child state nodes (XOR)\n * - `'parallel'` - orthogonal nested child state nodes (AND)\n * - `'history'` - history state node\n * - `'final'` - final state node\n */\n this.type = void 0;\n /** The string path from the root machine node to this node. */\n this.path = void 0;\n /** The child state nodes. */\n this.states = void 0;\n /**\n * The type of history on this state node. Can be:\n *\n * - `'shallow'` - recalls only top-level historical state value\n * - `'deep'` - recalls historical state value at all levels\n */\n this.history = void 0;\n /** The action(s) to be executed upon entering the state node. */\n this.entry = void 0;\n /** The action(s) to be executed upon exiting the state node. */\n this.exit = void 0;\n /** The parent state node. */\n this.parent = void 0;\n /** The root machine node. */\n this.machine = void 0;\n /**\n * The meta data associated with this state node, which will be returned in\n * State instances.\n */\n this.meta = void 0;\n /**\n * The output data sent with the \"xstate.done.state._id_\" event if this is a\n * final state node.\n */\n this.output = void 0;\n /**\n * The order this state node appears. Corresponds to the implicit document\n * order.\n */\n this.order = -1;\n this.description = void 0;\n this.tags = [];\n this.transitions = void 0;\n this.always = void 0;\n this.parent = options._parent;\n this.key = options._key;\n this.machine = options._machine;\n this.path = this.parent ? this.parent.path.concat(this.key) : [];\n this.id = this.config.id || [this.machine.id, ...this.path].join(STATE_DELIMITER);\n this.type = this.config.type || (this.config.states && Object.keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');\n this.description = this.config.description;\n this.order = this.machine.idMap.size;\n this.machine.idMap.set(this.id, this);\n this.states = this.config.states ? mapValues(this.config.states, (stateConfig, key) => {\n const stateNode = new StateNode(stateConfig, {\n _parent: this,\n _key: key,\n _machine: this.machine\n });\n return stateNode;\n }) : EMPTY_OBJECT;\n if (this.type === 'compound' && !this.config.initial) {\n throw new Error(`No initial state specified for compound state node \"#${this.id}\". Try adding { initial: \"${Object.keys(this.states)[0]}\" } to the state config.`);\n }\n\n // History config\n this.history = this.config.history === true ? 'shallow' : this.config.history || false;\n this.entry = toArray(this.config.entry).slice();\n this.exit = toArray(this.config.exit).slice();\n this.meta = this.config.meta;\n this.output = this.type === 'final' || !this.parent ? this.config.output : undefined;\n this.tags = toArray(config.tags).slice();\n }\n\n /** @internal */\n _initialize() {\n this.transitions = formatTransitions(this);\n if (this.config.always) {\n this.always = toTransitionConfigArray(this.config.always).map(t => formatTransition(this, NULL_EVENT, t));\n }\n Object.keys(this.states).forEach(key => {\n this.states[key]._initialize();\n });\n }\n\n /** The well-structured state node definition. */\n get definition() {\n return {\n id: this.id,\n key: this.key,\n version: this.machine.version,\n type: this.type,\n initial: this.initial ? {\n target: this.initial.target,\n source: this,\n actions: this.initial.actions.map(toSerializableAction),\n eventType: null,\n reenter: false,\n toJSON: () => ({\n target: this.initial.target.map(t => `#${t.id}`),\n source: `#${this.id}`,\n actions: this.initial.actions.map(toSerializableAction),\n eventType: null\n })\n } : undefined,\n history: this.history,\n states: mapValues(this.states, state => {\n return state.definition;\n }),\n on: this.on,\n transitions: [...this.transitions.values()].flat().map(t => ({\n ...t,\n actions: t.actions.map(toSerializableAction)\n })),\n entry: this.entry.map(toSerializableAction),\n exit: this.exit.map(toSerializableAction),\n meta: this.meta,\n order: this.order || -1,\n output: this.output,\n invoke: this.invoke,\n description: this.description,\n tags: this.tags\n };\n }\n\n /** @internal */\n toJSON() {\n return this.definition;\n }\n\n /** The logic invoked as actors by this state node. */\n get invoke() {\n return memo(this, 'invoke', () => toArray(this.config.invoke).map((invokeConfig, i) => {\n const {\n src,\n systemId\n } = invokeConfig;\n const resolvedId = invokeConfig.id ?? createInvokeId(this.id, i);\n const sourceName = typeof src === 'string' ? src : `xstate.invoke.${createInvokeId(this.id, i)}`;\n return {\n ...invokeConfig,\n src: sourceName,\n id: resolvedId,\n systemId: systemId,\n toJSON() {\n const {\n onDone,\n onError,\n ...invokeDefValues\n } = invokeConfig;\n return {\n ...invokeDefValues,\n type: 'xstate.invoke',\n src: sourceName,\n id: resolvedId\n };\n }\n };\n }));\n }\n\n /** The mapping of events to transitions. */\n get on() {\n return memo(this, 'on', () => {\n const transitions = this.transitions;\n return [...transitions].flatMap(([descriptor, t]) => t.map(t => [descriptor, t])).reduce((map, [descriptor, transition]) => {\n map[descriptor] = map[descriptor] || [];\n map[descriptor].push(transition);\n return map;\n }, {});\n });\n }\n get after() {\n return memo(this, 'delayedTransitions', () => getDelayedTransitions(this));\n }\n get initial() {\n return memo(this, 'initial', () => formatInitialTransition(this, this.config.initial));\n }\n\n /** @internal */\n next(snapshot, event) {\n const eventType = event.type;\n const actions = [];\n let selectedTransition;\n const candidates = memo(this, `candidates-${eventType}`, () => getCandidates(this, eventType));\n for (const candidate of candidates) {\n const {\n guard\n } = candidate;\n const resolvedContext = snapshot.context;\n let guardPassed = false;\n try {\n guardPassed = !guard || evaluateGuard(guard, resolvedContext, event, snapshot);\n } catch (err) {\n const guardType = typeof guard === 'string' ? guard : typeof guard === 'object' ? guard.type : undefined;\n throw new Error(`Unable to evaluate guard ${guardType ? `'${guardType}' ` : ''}in transition for event '${eventType}' in state node '${this.id}':\\n${err.message}`);\n }\n if (guardPassed) {\n actions.push(...candidate.actions);\n selectedTransition = candidate;\n break;\n }\n }\n return selectedTransition ? [selectedTransition] : undefined;\n }\n\n /** All the event types accepted by this state node and its descendants. */\n get events() {\n return memo(this, 'events', () => {\n const {\n states\n } = this;\n const events = new Set(this.ownEvents);\n if (states) {\n for (const stateId of Object.keys(states)) {\n const state = states[stateId];\n if (state.states) {\n for (const event of state.events) {\n events.add(`${event}`);\n }\n }\n }\n }\n return Array.from(events);\n });\n }\n\n /**\n * All the events that have transitions directly from this state node.\n *\n * Excludes any inert events.\n */\n get ownEvents() {\n const events = new Set([...this.transitions.keys()].filter(descriptor => {\n return this.transitions.get(descriptor).some(transition => !(!transition.target && !transition.actions.length && !transition.reenter));\n }));\n return Array.from(events);\n }\n}\n\nconst STATE_IDENTIFIER = '#';\nclass StateMachine {\n constructor(/** The raw config used to create the machine. */\n config, implementations) {\n this.config = config;\n /** The machine's own version. */\n this.version = void 0;\n this.schemas = void 0;\n this.implementations = void 0;\n /** @internal */\n this.__xstatenode = true;\n /** @internal */\n this.idMap = new Map();\n this.root = void 0;\n this.id = void 0;\n this.states = void 0;\n this.events = void 0;\n this.id = config.id || '(machine)';\n this.implementations = {\n actors: implementations?.actors ?? {},\n actions: implementations?.actions ?? {},\n delays: implementations?.delays ?? {},\n guards: implementations?.guards ?? {}\n };\n this.version = this.config.version;\n this.schemas = this.config.schemas;\n this.transition = this.transition.bind(this);\n this.getInitialSnapshot = this.getInitialSnapshot.bind(this);\n this.getPersistedSnapshot = this.getPersistedSnapshot.bind(this);\n this.restoreSnapshot = this.restoreSnapshot.bind(this);\n this.start = this.start.bind(this);\n this.root = new StateNode(config, {\n _key: this.id,\n _machine: this\n });\n this.root._initialize();\n this.states = this.root.states; // TODO: remove!\n this.events = this.root.events;\n }\n\n /**\n * Clones this state machine with the provided implementations and merges the\n * `context` (if provided).\n *\n * @param implementations Options (`actions`, `guards`, `actors`, `delays`,\n * `context`) to recursively merge with the existing options.\n * @returns A new `StateMachine` instance with the provided implementations.\n */\n provide(implementations) {\n const {\n actions,\n guards,\n actors,\n delays\n } = this.implementations;\n return new StateMachine(this.config, {\n actions: {\n ...actions,\n ...implementations.actions\n },\n guards: {\n ...guards,\n ...implementations.guards\n },\n actors: {\n ...actors,\n ...implementations.actors\n },\n delays: {\n ...delays,\n ...implementations.delays\n }\n });\n }\n resolveState(config) {\n const resolvedStateValue = resolveStateValue(this.root, config.value);\n const nodeSet = getAllStateNodes(getStateNodes(this.root, resolvedStateValue));\n return createMachineSnapshot({\n _nodes: [...nodeSet],\n context: config.context || {},\n children: {},\n status: isInFinalState(nodeSet, this.root) ? 'done' : config.status || 'active',\n output: config.output,\n error: config.error,\n historyValue: config.historyValue\n }, this);\n }\n\n /**\n * Determines the next snapshot given the current `snapshot` and received\n * `event`. Calculates a full macrostep from all microsteps.\n *\n * @param snapshot The current snapshot\n * @param event The received event\n */\n transition(snapshot, event, actorScope) {\n return macrostep(snapshot, event, actorScope, []).snapshot;\n }\n\n /**\n * Determines the next state given the current `state` and `event`. Calculates\n * a microstep.\n *\n * @param state The current state\n * @param event The received event\n */\n microstep(snapshot, event, actorScope) {\n return macrostep(snapshot, event, actorScope, []).microstates;\n }\n getTransitionData(snapshot, event) {\n return transitionNode(this.root, snapshot.value, snapshot, event) || [];\n }\n\n /**\n * The initial state _before_ evaluating any microsteps. This \"pre-initial\"\n * state is provided to initial actions executed in the initial state.\n */\n getPreInitialState(actorScope, initEvent, internalQueue) {\n const {\n context\n } = this.config;\n const preInitial = createMachineSnapshot({\n context: typeof context !== 'function' && context ? context : {},\n _nodes: [this.root],\n children: {},\n status: 'active'\n }, this);\n if (typeof context === 'function') {\n const assignment = ({\n spawn,\n event,\n self\n }) => context({\n spawn,\n input: event.input,\n self\n });\n return resolveActionsAndContext(preInitial, initEvent, actorScope, [assign(assignment)], internalQueue, undefined);\n }\n return preInitial;\n }\n\n /**\n * Returns the initial `State` instance, with reference to `self` as an\n * `ActorRef`.\n */\n getInitialSnapshot(actorScope, input) {\n const initEvent = createInitEvent(input); // TODO: fix;\n const internalQueue = [];\n const preInitialState = this.getPreInitialState(actorScope, initEvent, internalQueue);\n const nextState = microstep([{\n target: [...getInitialStateNodes(this.root)],\n source: this.root,\n reenter: true,\n actions: [],\n eventType: null,\n toJSON: null // TODO: fix\n }], preInitialState, actorScope, initEvent, true, internalQueue);\n const {\n snapshot: macroState\n } = macrostep(nextState, initEvent, actorScope, internalQueue);\n return macroState;\n }\n start(snapshot) {\n Object.values(snapshot.children).forEach(child => {\n if (child.getSnapshot().status === 'active') {\n child.start();\n }\n });\n }\n getStateNodeById(stateId) {\n const fullPath = toStatePath(stateId);\n const relativePath = fullPath.slice(1);\n const resolvedStateId = isStateId(fullPath[0]) ? fullPath[0].slice(STATE_IDENTIFIER.length) : fullPath[0];\n const stateNode = this.idMap.get(resolvedStateId);\n if (!stateNode) {\n throw new Error(`Child state node '#${resolvedStateId}' does not exist on machine '${this.id}'`);\n }\n return getStateNodeByPath(stateNode, relativePath);\n }\n get definition() {\n return this.root.definition;\n }\n toJSON() {\n return this.definition;\n }\n getPersistedSnapshot(snapshot, options) {\n return getPersistedSnapshot(snapshot, options);\n }\n restoreSnapshot(snapshot, _actorScope) {\n const children = {};\n const snapshotChildren = snapshot.children;\n Object.keys(snapshotChildren).forEach(actorId => {\n const actorData = snapshotChildren[actorId];\n const childState = actorData.snapshot;\n const src = actorData.src;\n const logic = typeof src === 'string' ? resolveReferencedActor(this, src) : src;\n if (!logic) {\n return;\n }\n const actorRef = createActor(logic, {\n id: actorId,\n parent: _actorScope.self,\n syncSnapshot: actorData.syncSnapshot,\n snapshot: childState,\n src,\n systemId: actorData.systemId\n });\n children[actorId] = actorRef;\n });\n const restoredSnapshot = createMachineSnapshot({\n ...snapshot,\n children,\n _nodes: Array.from(getAllStateNodes(getStateNodes(this.root, snapshot.value)))\n }, this);\n const seen = new Set();\n function reviveContext(contextPart, children) {\n if (seen.has(contextPart)) {\n return;\n }\n seen.add(contextPart);\n for (const key in contextPart) {\n const value = contextPart[key];\n if (value && typeof value === 'object') {\n if ('xstate$$type' in value && value.xstate$$type === $$ACTOR_TYPE) {\n contextPart[key] = children[value.id];\n continue;\n }\n reviveContext(value, children);\n }\n }\n }\n reviveContext(restoredSnapshot.context, children);\n return restoredSnapshot;\n }\n}\n\n/**\n * Creates a state machine (statechart) with the given configuration.\n *\n * The state machine represents the pure logic of a state machine actor.\n *\n * @example\n *\n * ```ts\n * import { createMachine } from 'xstate';\n *\n * const lightMachine = createMachine({\n * id: 'light',\n * initial: 'green',\n * states: {\n * green: {\n * on: {\n * TIMER: { target: 'yellow' }\n * }\n * },\n * yellow: {\n * on: {\n * TIMER: { target: 'red' }\n * }\n * },\n * red: {\n * on: {\n * TIMER: { target: 'green' }\n * }\n * }\n * }\n * });\n *\n * const lightActor = createActor(lightMachine);\n * lightActor.start();\n *\n * lightActor.send({ type: 'TIMER' });\n * ```\n *\n * @param config The state machine configuration.\n * @param options DEPRECATED: use `setup({ ... })` or `machine.provide({ ... })`\n * to provide machine implementations instead.\n */\nfunction createMachine(config, implementations) {\n return new StateMachine(config, implementations);\n}\n\n/** @internal */\nfunction createInertActorScope(actorLogic) {\n const self = createActor(actorLogic);\n const inertActorScope = {\n self,\n defer: () => {},\n id: '',\n logger: () => {},\n sessionId: '',\n stopChild: () => {},\n system: self.system,\n emit: () => {},\n actionExecutor: () => {}\n };\n return inertActorScope;\n}\n\n/** @deprecated Use `initialTransition(…)` instead. */\nfunction getInitialSnapshot(actorLogic, ...[input]) {\n const actorScope = createInertActorScope(actorLogic);\n return actorLogic.getInitialSnapshot(actorScope, input);\n}\n\n/**\n * Determines the next snapshot for the given `actorLogic` based on the given\n * `snapshot` and `event`.\n *\n * If the `snapshot` is `undefined`, the initial snapshot of the `actorLogic` is\n * used.\n *\n * @deprecated Use `transition(…)` instead.\n * @example\n *\n * ```ts\n * import { getNextSnapshot } from 'xstate';\n * import { trafficLightMachine } from './trafficLightMachine.ts';\n *\n * const nextSnapshot = getNextSnapshot(\n * trafficLightMachine, // actor logic\n * undefined, // snapshot (or initial state if undefined)\n * { type: 'TIMER' }\n * ); // event object\n *\n * console.log(nextSnapshot.value);\n * // => 'yellow'\n *\n * const nextSnapshot2 = getNextSnapshot(\n * trafficLightMachine, // actor logic\n * nextSnapshot, // snapshot\n * { type: 'TIMER' }\n * ); // event object\n *\n * console.log(nextSnapshot2.value);\n * // =>'red'\n * ```\n */\nfunction getNextSnapshot(actorLogic, snapshot, event) {\n const inertActorScope = createInertActorScope(actorLogic);\n inertActorScope.self._snapshot = snapshot;\n return actorLogic.transition(snapshot, event, inertActorScope);\n}\n\n// at the moment we allow extra actors - ones that are not specified by `children`\n// this could be reconsidered in the future\n\nfunction setup({\n schemas,\n actors,\n actions,\n guards,\n delays\n}) {\n return {\n createMachine: config => createMachine({\n ...config,\n schemas\n }, {\n actors,\n actions,\n guards,\n delays\n })\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nclass SimulatedClock {\n constructor() {\n this.timeouts = new Map();\n this._now = 0;\n this._id = 0;\n this._flushing = false;\n this._flushingInvalidated = false;\n }\n now() {\n return this._now;\n }\n getId() {\n return this._id++;\n }\n setTimeout(fn, timeout) {\n this._flushingInvalidated = this._flushing;\n const id = this.getId();\n this.timeouts.set(id, {\n start: this.now(),\n timeout,\n fn\n });\n return id;\n }\n clearTimeout(id) {\n this._flushingInvalidated = this._flushing;\n this.timeouts.delete(id);\n }\n set(time) {\n if (this._now > time) {\n throw new Error('Unable to travel back in time');\n }\n this._now = time;\n this.flushTimeouts();\n }\n flushTimeouts() {\n if (this._flushing) {\n this._flushingInvalidated = true;\n return;\n }\n this._flushing = true;\n const sorted = [...this.timeouts].sort(([_idA, timeoutA], [_idB, timeoutB]) => {\n const endA = timeoutA.start + timeoutA.timeout;\n const endB = timeoutB.start + timeoutB.timeout;\n return endB > endA ? -1 : 1;\n });\n for (const [id, timeout] of sorted) {\n if (this._flushingInvalidated) {\n this._flushingInvalidated = false;\n this._flushing = false;\n this.flushTimeouts();\n return;\n }\n if (this.now() - timeout.start >= timeout.timeout) {\n this.timeouts.delete(id);\n timeout.fn.call(null);\n }\n }\n this._flushing = false;\n }\n increment(ms) {\n this._now += ms;\n this.flushTimeouts();\n }\n}\n\n/**\n * Returns a promise that resolves to the `output` of the actor when it is done.\n *\n * @example\n *\n * ```ts\n * const machine = createMachine({\n * // ...\n * output: {\n * count: 42\n * }\n * });\n *\n * const actor = createActor(machine);\n *\n * actor.start();\n *\n * const output = await toPromise(actor);\n *\n * console.log(output);\n * // logs { count: 42 }\n * ```\n */\nfunction toPromise(actor) {\n return new Promise((resolve, reject) => {\n actor.subscribe({\n complete: () => {\n resolve(actor.getSnapshot().output);\n },\n error: reject\n });\n });\n}\n\n/**\n * Given actor `logic`, a `snapshot`, and an `event`, returns a tuple of the\n * `nextSnapshot` and `actions` to execute.\n *\n * This is a pure function that does not execute `actions`.\n */\nfunction transition(logic, snapshot, event) {\n const executableActions = [];\n const actorScope = createInertActorScope(logic);\n actorScope.actionExecutor = action => {\n executableActions.push(action);\n };\n const nextSnapshot = logic.transition(snapshot, event, actorScope);\n return [nextSnapshot, executableActions];\n}\n\n/**\n * Given actor `logic` and optional `input`, returns a tuple of the\n * `nextSnapshot` and `actions` to execute from the initial transition (no\n * previous state).\n *\n * This is a pure function that does not execute `actions`.\n */\nfunction initialTransition(logic, ...[input]) {\n const executableActions = [];\n const actorScope = createInertActorScope(logic);\n actorScope.actionExecutor = action => {\n executableActions.push(action);\n };\n const nextSnapshot = logic.getInitialSnapshot(actorScope, input);\n return [nextSnapshot, executableActions];\n}\n\nconst defaultWaitForOptions = {\n timeout: Infinity // much more than 10 seconds\n};\n\n/**\n * Subscribes to an actor ref and waits for its emitted value to satisfy a\n * predicate, and then resolves with that value. Will throw if the desired state\n * is not reached after an optional timeout. (defaults to Infinity).\n *\n * @example\n *\n * ```js\n * const state = await waitFor(someService, (state) => {\n * return state.hasTag('loaded');\n * });\n *\n * state.hasTag('loaded'); // true\n * ```\n *\n * @param actorRef The actor ref to subscribe to\n * @param predicate Determines if a value matches the condition to wait for\n * @param options\n * @returns A promise that eventually resolves to the emitted value that matches\n * the condition\n */\nfunction waitFor(actorRef, predicate, options) {\n const resolvedOptions = {\n ...defaultWaitForOptions,\n ...options\n };\n return new Promise((res, rej) => {\n const {\n signal\n } = resolvedOptions;\n if (signal?.aborted) {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n rej(signal.reason);\n return;\n }\n let done = false;\n const handle = resolvedOptions.timeout === Infinity ? undefined : setTimeout(() => {\n dispose();\n rej(new Error(`Timeout of ${resolvedOptions.timeout} ms exceeded`));\n }, resolvedOptions.timeout);\n const dispose = () => {\n clearTimeout(handle);\n done = true;\n sub?.unsubscribe();\n if (abortListener) {\n signal.removeEventListener('abort', abortListener);\n }\n };\n function checkEmitted(emitted) {\n if (predicate(emitted)) {\n dispose();\n res(emitted);\n }\n }\n\n /**\n * If the `signal` option is provided, this will be the listener for its\n * `abort` event\n */\n let abortListener;\n // eslint-disable-next-line prefer-const\n let sub; // avoid TDZ when disposing synchronously\n\n // See if the current snapshot already matches the predicate\n checkEmitted(actorRef.getSnapshot());\n if (done) {\n return;\n }\n\n // only define the `abortListener` if the `signal` option is provided\n if (signal) {\n abortListener = () => {\n dispose();\n // XState does not \"own\" the signal, so we should reject with its reason (if any)\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n rej(signal.reason);\n };\n signal.addEventListener('abort', abortListener);\n }\n sub = actorRef.subscribe({\n next: checkEmitted,\n error: err => {\n dispose();\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n rej(err);\n },\n complete: () => {\n dispose();\n rej(new Error(`Actor terminated without satisfying predicate`));\n }\n });\n if (done) {\n sub.unsubscribe();\n }\n });\n}\n\nexport { SimulatedClock, StateMachine, StateNode, assertEvent, createMachine, getInitialSnapshot, getNextSnapshot, initialTransition, setup, toPromise, transition, waitFor };\n","import { format } from \"../util\";\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\nexport default whitespace;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import { spanToJSON, getCurrentScope } from '@sentry/core';\nimport { timestampInSeconds, logger, uuid4 } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\nimport { isAutomatedPageLoadSpan, startJSSelfProfile, MAX_PROFILE_DURATION_MS, addProfileToGlobalCache } from './utils.js';\n\n/**\n * Wraps startTransaction and stopTransaction with profiling related logic.\n * startProfileForTransaction is called after the call to startTransaction in order to avoid our own code from\n * being profiled. Because of that same reason, stopProfiling is called before the call to stopTransaction.\n */\nfunction startProfileForSpan(span) {\n // Start the profiler and get the profiler instance.\n let startTimestamp;\n if (isAutomatedPageLoadSpan(span)) {\n startTimestamp = timestampInSeconds() * 1000;\n }\n\n const profiler = startJSSelfProfile();\n\n // We failed to construct the profiler, so we skip.\n // No need to log anything as this has already been logged in startProfile.\n if (!profiler) {\n return;\n }\n\n if (DEBUG_BUILD) {\n logger.log(`[Profiling] started profiling span: ${spanToJSON(span).description}`);\n }\n\n // We create \"unique\" span names to avoid concurrent spans with same names\n // from being ignored by the profiler. From here on, only this span name should be used when\n // calling the profiler methods. Note: we log the original name to the user to avoid confusion.\n const profileId = uuid4();\n\n getCurrentScope().setContext('profile', {\n profile_id: profileId,\n start_timestamp: startTimestamp,\n });\n\n /**\n * Idempotent handler for profile stop\n */\n async function onProfileHandler() {\n // Check if the profile exists and return it the behavior has to be idempotent as users may call span.finish multiple times.\n if (!span) {\n return;\n }\n // Satisfy the type checker, but profiler will always be defined here.\n if (!profiler) {\n return;\n }\n\n return profiler\n .stop()\n .then((profile) => {\n if (maxDurationTimeoutID) {\n WINDOW.clearTimeout(maxDurationTimeoutID);\n maxDurationTimeoutID = undefined;\n }\n\n if (DEBUG_BUILD) {\n logger.log(`[Profiling] stopped profiling of span: ${spanToJSON(span).description}`);\n }\n\n // In case of an overlapping span, stopProfiling may return null and silently ignore the overlapping profile.\n if (!profile) {\n if (DEBUG_BUILD) {\n logger.log(\n `[Profiling] profiler returned null profile for: ${spanToJSON(span).description}`,\n 'this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started',\n );\n }\n return;\n }\n\n addProfileToGlobalCache(profileId, profile);\n })\n .catch(error => {\n if (DEBUG_BUILD) {\n logger.log('[Profiling] error while stopping profiler:', error);\n }\n });\n }\n\n // Enqueue a timeout to prevent profiles from running over max duration.\n let maxDurationTimeoutID = WINDOW.setTimeout(() => {\n if (DEBUG_BUILD) {\n logger.log('[Profiling] max profile duration elapsed, stopping profiling for:', spanToJSON(span).description);\n }\n // If the timeout exceeds, we want to stop profiling, but not finish the span\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onProfileHandler();\n }, MAX_PROFILE_DURATION_MS);\n\n // We need to reference the original end call to avoid creating an infinite loop\n const originalEnd = span.end.bind(span);\n\n /**\n * Wraps span `end()` with profiling related logic.\n * startProfiling is called after the call to spanStart in order to avoid our own code from\n * being profiled. Because of that same reason, stopProfiling is called before the call to spanEnd.\n */\n function profilingWrappedSpanEnd() {\n if (!span) {\n return originalEnd();\n }\n // onProfileHandler should always return the same profile even if this is called multiple times.\n // Always call onProfileHandler to ensure stopProfiling is called and the timeout is cleared.\n void onProfileHandler().then(\n () => {\n originalEnd();\n },\n () => {\n // If onProfileHandler fails, we still want to call the original finish method.\n originalEnd();\n },\n );\n\n return span;\n }\n\n span.end = profilingWrappedSpanEnd;\n}\n\nexport { startProfileForSpan };\n//# sourceMappingURL=startProfileForSpan.js.map\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","module.exports = __webpack_public_path__ + \"25718a469574ade47e23567d8c543169.js\";","module.exports = __webpack_public_path__ + \"a533e643002830be2da76c9527265860.js\";","module.exports = __webpack_public_path__ + \"a52f9ac0e3d582ed7e488aa1dfc33eda.js\";","import { unit } from '@ant-design/cssinjs';\nimport { genNoticeStyle, prepareComponentToken, prepareNotificationToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\nexport default genSubStyleComponent(['Notification', 'PurePanel'], token => {\n const noticeCls = `${token.componentCls}-notice`;\n const notificationToken = prepareNotificationToken(token);\n return {\n [`${noticeCls}-pure-panel`]: Object.assign(Object.assign({}, genNoticeStyle(notificationToken)), {\n width: notificationToken.width,\n maxWidth: `calc(100vw - ${unit(token.calc(notificationToken.notificationMarginEdge).mul(2).equal())})`,\n margin: 0\n })\n };\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nimport PurePanelStyle from './style/pure-panel';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport function getCloseIcon(prefixCls, closeIcon) {\n if (closeIcon === null || closeIcon === false) {\n return null;\n }\n return closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n });\n}\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nexport const PureContent = props => {\n const {\n prefixCls,\n icon,\n type,\n message,\n description,\n btn,\n role = 'alert'\n } = props;\n let iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-icon`\n }, icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: classNames(`${prefixCls}-icon`, `${prefixCls}-icon-${type}`)\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames({\n [`${prefixCls}-with-icon`]: iconNode\n }),\n role: role\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, message), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description), btn && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-btn`\n }, btn));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n icon,\n type,\n message,\n description,\n btn,\n closable = true,\n closeIcon,\n className: notificationClassName\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"icon\", \"type\", \"message\", \"description\", \"btn\", \"closable\", \"closeIcon\", \"className\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n const noticePrefixCls = `${prefixCls}-notice`;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${noticePrefixCls}-pure-panel`, hashId, className, cssVarCls, rootCls)\n }, /*#__PURE__*/React.createElement(PurePanelStyle, {\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n eventKey: \"pure\",\n duration: null,\n closable: closable,\n className: classNames({\n notificationClassName\n }),\n closeIcon: getCloseIcon(prefixCls, closeIcon),\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n btn: btn\n })\n }))));\n};\nexport default PurePanel;","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","export function decorateOffsets(tokens) {\n let offset = 0;\n return tokens.map(token => {\n const offsetToken = token;\n offsetToken.offset = offset;\n offset += token.raw.length;\n return offsetToken;\n });\n}\nexport function isPrimitiveToken(token) {\n return (token.type === 'string'\n ||\n token.type === 'number'\n ||\n token.type === 'literal');\n}\n;\n/**\n * Returns 1 and the whitespace token, or 0\n */\nexport function jumpWhitespace(tokens, pos) {\n const token = tokens[pos];\n return (token === null || token === void 0 ? void 0 : token.type) === 'whitespace'\n ? { inc: 1, whitespaceToken: token }\n : { inc: 0 };\n}\nexport function extractNextToken(tokens, pos) {\n const whitespace = jumpWhitespace(tokens, pos);\n const token = tokens[pos + whitespace.inc];\n ++whitespace.inc;\n return {\n whitespaceToken: whitespace.whitespaceToken,\n consumedTokens: whitespace.inc,\n token,\n };\n}\nexport function nextNonWhitespaceToken(tokens, pos) {\n const whitespace = jumpWhitespace(tokens, pos);\n return tokens[pos + whitespace.inc];\n}\n","import lexer from 'json-lexer';\nimport { decorateOffsets, extractNextToken, isPrimitiveToken, jumpWhitespace, nextNonWhitespaceToken, } from './tokens.js';\nfunction getParseOptions(options) {\n return {\n includeValueTokens: false,\n ...options,\n };\n}\nexport function parse(json, options) {\n const ctx = {\n options: getParseOptions(options),\n };\n if (json.trim().length === 0)\n throw new Error(`Invalid JSON: must not be an empty string`);\n const tokens = decorateOffsets(lexer(json));\n let pos = 0;\n const before = jumpWhitespace(tokens, pos);\n pos += before.inc;\n const { consumedTokens, node } = makeJsonAny(tokens, pos, ctx);\n const valueTokens = ctx.options.includeValueTokens\n ? tokens.slice(pos, pos + consumedTokens)\n : [];\n pos += consumedTokens;\n const after = jumpWhitespace(tokens, pos);\n pos += after.inc;\n const whitespaceBefore = before.whitespaceToken;\n const whitespaceAfter = after.whitespaceToken;\n const doc = {\n root: node,\n whitespaceBefore,\n valueTokens,\n whitespaceAfter,\n };\n return doc;\n}\nfunction makeRange(startToken, endToken = startToken) {\n return {\n start: startToken.offset,\n end: endToken.offset + endToken.raw.length,\n };\n}\nfunction makeJsonPrimitive(token) {\n return token.type === 'string'\n ? { kind: 'string', token, range: makeRange(token) }\n : token.type === 'number'\n ? { kind: 'number', token, range: makeRange(token) }\n : { kind: 'literal', token, range: makeRange(token) };\n}\nfunction ensureType(tokens, pos, type, punctuation) {\n const token = tokens[pos];\n if (!token)\n throw new Error(`Failed to parse JSON as token pos ${pos}`);\n else if (token.type !== type)\n throw new Error(`Failed to parse JSON at pos ${token.offset}, ` +\n `expected ${type} got ${token.type}`);\n else if (punctuation && token.value !== punctuation)\n throw new Error(`Failed to parse JSON at pos ${token.offset} of type ${type}, ` +\n `expected punctuation ${punctuation} got ${token.value}`);\n}\nfunction readColon(tokens, pos) {\n let i = pos;\n const before = jumpWhitespace(tokens, i);\n i += before.inc;\n ensureType(tokens, i, 'punctuator', ':');\n const punctuatorToken = tokens[i++];\n const after = jumpWhitespace(tokens, i);\n i += after.inc;\n return {\n node: {\n kind: 'object-property-colon',\n range: makeRange(tokens[pos], tokens[i - 1]),\n whitespaceBefore: before.whitespaceToken,\n punctuatorToken,\n whitespaceAfter: after.whitespaceToken,\n },\n consumedTokens: i - pos,\n };\n}\n// tokens begin _inside_ the '{'\nfunction makeJsonObject(tokens, pos, ctx) {\n var _a;\n const kind = 'object';\n const children = [];\n let whitespaceAfterChildren;\n let i = pos;\n for (; i < tokens.length;) {\n const propStartToken = tokens[i];\n const firstToken = nextNonWhitespaceToken(tokens, i);\n if (firstToken.type === 'punctuator' && firstToken.value === '}') {\n const whitespace = jumpWhitespace(tokens, i);\n whitespaceAfterChildren = whitespace.whitespaceToken;\n i += whitespace.inc + 1; // Consume both whitespace and '}'\n break;\n }\n const before = jumpWhitespace(tokens, i);\n i += before.inc;\n ensureType(tokens, i, 'string');\n const keyToken = tokens[i++];\n const colon = readColon(tokens, i);\n i += colon.consumedTokens;\n const value = makeJsonAny(tokens, i, ctx);\n const valueTokens = ctx.options.includeValueTokens\n ? tokens.slice(i, i + value.consumedTokens)\n : [];\n i += value.consumedTokens;\n // Figure out if there's a comma (and another prop) or end-of-object\n const nextToken = nextNonWhitespaceToken(tokens, i);\n const nextIsComma = nextToken.type === 'punctuator' && nextToken.value === ',';\n const beforeComma = nextIsComma\n ? extractNextToken(tokens, i)\n : {};\n i += (_a = beforeComma.consumedTokens) !== null && _a !== void 0 ? _a : 0;\n children.push({\n kind: 'object-property',\n range: makeRange(propStartToken, tokens[i]),\n whitespaceBefore: before.whitespaceToken,\n keyToken,\n key: keyToken.value,\n colon: colon.node,\n valueTokens,\n whitespaceBeforeComma: beforeComma.whitespaceToken,\n comma: beforeComma.token,\n valueNode: value.node,\n });\n }\n const consumedTokens = i - pos + 1;\n return {\n node: {\n kind,\n children,\n whitespaceAfterChildren,\n range: makeRange(tokens[pos - 1], tokens[i - 1]),\n },\n consumedTokens,\n };\n}\n// tokens begin _inside_ the '['\nfunction makeJsonArray(tokens, pos, ctx) {\n var _a;\n const kind = 'array';\n const children = [];\n let whitespaceAfterChildren;\n let i = pos;\n for (; i < tokens.length;) {\n const elemStartToken = tokens[i];\n const firstToken = nextNonWhitespaceToken(tokens, i);\n if (firstToken.type === 'punctuator' && firstToken.value === ']') {\n const whitespace = jumpWhitespace(tokens, i);\n whitespaceAfterChildren = whitespace.whitespaceToken;\n i += whitespace.inc + 1; // Consume both whitespace and ']'\n break;\n }\n const before = jumpWhitespace(tokens, i);\n i += before.inc;\n const value = makeJsonAny(tokens, i, ctx);\n const valueTokens = ctx.options.includeValueTokens\n ? tokens.slice(i, i + value.consumedTokens)\n : [];\n i += value.consumedTokens;\n // Figure out if there's a comma (and another prop) or end-of-object\n const nextToken = nextNonWhitespaceToken(tokens, i);\n const nextIsComma = nextToken.type === 'punctuator' && nextToken.value === ',';\n const beforeComma = nextIsComma\n ? extractNextToken(tokens, i)\n : {};\n i += (_a = beforeComma.consumedTokens) !== null && _a !== void 0 ? _a : 0;\n children.push({\n kind: 'array-element',\n range: makeRange(elemStartToken, tokens[i]),\n whitespaceBefore: before.whitespaceToken,\n valueTokens,\n whitespaceBeforeComma: beforeComma.whitespaceToken,\n comma: beforeComma.token,\n valueNode: value.node,\n });\n }\n const consumedTokens = i - pos + 1;\n return {\n node: {\n kind,\n children,\n whitespaceAfterChildren,\n range: makeRange(tokens[pos - 1], tokens[i - 1]),\n },\n consumedTokens,\n };\n}\nfunction makeJsonAny(tokens, pos, ctx) {\n const firstToken = tokens[pos];\n if (isPrimitiveToken(firstToken))\n return {\n consumedTokens: 1,\n node: makeJsonPrimitive(firstToken),\n };\n else if (firstToken.type === 'punctuator' && firstToken.value === '{')\n return makeJsonObject(tokens, pos + 1, ctx);\n else if (firstToken.type === 'punctuator' && firstToken.value === '[')\n return makeJsonArray(tokens, pos + 1, ctx);\n throw new Error(`Failed to parse JSON at pos ${firstToken.offset}`);\n}\n","import { parse } from 'json-cst';\nexport function getParsedByString(jsonString, json) {\n const jsonDoc = parse(jsonString);\n return {\n json: json || JSON.parse(jsonString),\n jsonString,\n jsonDoc,\n };\n}\nexport function getParsedByObject(json, indent = 4) {\n const jsonString = JSON.stringify(json !== null && json !== void 0 ? json : null, null, indent);\n const ret = getParsedByString(jsonString);\n // When we get undefined as input, mimic null behavior\n if (json === undefined) {\n ret.json = undefined;\n ret.jsonString = 'undefined';\n ret.jsonDoc = undefined;\n }\n return ret;\n}\n","export function countCharUntil(text, end, char) {\n let count = 0;\n let lastPos = 0;\n let i = 0;\n for (; i < end;) {\n const found = text.indexOf(char, i);\n if (found === -1 || found >= end)\n break;\n i = found + 1;\n if (i < end) {\n ++count;\n lastPos = found;\n }\n }\n return { count, lastPos };\n}\nexport function getPosition(text, pos) {\n // Clamp to text range\n pos = Math.min(Math.max(pos, 0), text.length);\n const { count, lastPos } = countCharUntil(text, pos + 1, '\\n');\n const newlines = count;\n return {\n offset: pos,\n line: newlines + 1,\n column: Math.max(1, pos - lastPos + (count === 0 ? 1 : 0)),\n };\n}\n","import { parsePath } from './path.js';\nimport { getPosition } from './position.js';\nexport function getLocation(parsedJson, options) {\n const { jsonDoc, jsonString } = parsedJson;\n const { markIdentifier = false } = options;\n const path = parsePath(options).map(val => `${val}`);\n if (!jsonDoc) {\n // Minic null but undefined\n if (path.length === 0)\n // Found as root value\n return {\n start: { offset: 0, line: 1, column: 1 },\n end: { offset: 9, line: 1, column: 10 },\n };\n // Not found\n throw new Error(`No such path in undefined`);\n }\n const pathAsString = () => path.join('.');\n const getParentPath = (index) => '.' + path.slice(0, index).join('.');\n const explainWhere = (index) => `${getParentPath(index)} [query: ${pathAsString()}]`;\n const foundNode = path\n .reduce((node, pathItem, index) => (node === null || node === void 0 ? void 0 : node.kind) === 'object'\n ? (() => {\n const child = node.children.find(child => child.keyToken.value === pathItem);\n if (!child) {\n throw new Error(`No such property ${pathItem} in ` +\n `${explainWhere(index)}`);\n }\n return markIdentifier && index === path.length - 1\n ? child\n : child.valueNode;\n })()\n : (node === null || node === void 0 ? void 0 : node.kind) === 'array'\n ? (() => {\n const itemIndex = Number(pathItem);\n if (isNaN(itemIndex)) {\n throw new Error(`Invalid non-numeric array index \"${pathItem}\" ` +\n `in array at ${explainWhere(index)}`);\n }\n else if (itemIndex < 0 || itemIndex >= node.children.length) {\n throw new RangeError(`Index ${itemIndex} out-of-bounds in array of ` +\n `size ${node.children.length} at ` +\n `${explainWhere(index)}`);\n }\n return node.children[Number(pathItem)].valueNode;\n })()\n : (() => {\n throw new Error(`No such property ${pathItem} in ` +\n `${explainWhere(index)}`);\n })(), jsonDoc.root);\n const range = foundNode.kind === 'object-property'\n ? {\n start: foundNode.keyToken.offset,\n end: foundNode.keyToken.offset + foundNode.keyToken.raw.length,\n }\n : foundNode.range;\n return {\n start: getPosition(jsonString, range.start),\n end: getPosition(jsonString, range.end),\n };\n}\n","export function parsePath(path) {\n const pathAsPath = path;\n const pathAsDotPath = path;\n const pathAsPointerPath = path;\n if (pathAsPath.path && Array.isArray(pathAsPath.path))\n return pathAsPath.path;\n else if (typeof pathAsDotPath.dotPath === 'string')\n return parseDotPath(pathAsDotPath.dotPath);\n else if (typeof pathAsPointerPath.pointerPath === 'string')\n return parseJsonPointerPath(pathAsPointerPath.pointerPath);\n throw new TypeError(`parsePath(): Missing path argument`);\n}\nfunction parseDotPath(path) {\n if (!path.startsWith('.') && !path.startsWith('['))\n throw new SyntaxError('parsePath(): Invalid dot-path, must begin with \".\" or \"[\": ' +\n `${path}`);\n if (path === '.')\n return [];\n const bail = () => {\n throw new Error(`parsePath(): Invalid dot-path: ${path}`);\n };\n const ret = [];\n const nearest = (a, b) => a === -1 && b === -1 ? -1\n : a === -1 ? b\n : b === -1 ? a\n : a < b ? a : b;\n let pos = 0;\n while (pos !== -1 && pos < path.length) {\n if (path.charAt(pos) === '.') {\n if (path.charAt(pos + 1) === \"'\") {\n const lastPos = path.indexOf(\"'\", pos + 2);\n if (lastPos === -1)\n bail();\n ret.push(path.slice(pos + 2, lastPos));\n pos = lastPos + 1;\n }\n else {\n const posOfDot = path.indexOf('.', pos + 1);\n const posOfBracket = path.indexOf('[', pos + 1);\n const lastPos = nearest(posOfDot, posOfBracket);\n ret.push(lastPos === -1\n ? path.slice(pos + 1)\n : path.slice(pos + 1, lastPos));\n pos = lastPos;\n }\n }\n else // ['segment name'] or [number] form\n {\n if (path.charAt(pos + 1).match(/[0-9]/)) {\n const lastPos = path.indexOf(\"]\", pos + 1);\n if (lastPos === -1)\n bail();\n ret.push(path.slice(pos + 1, lastPos));\n pos = lastPos + 1;\n }\n else {\n if (path.charAt(pos + 1) !== \"'\")\n bail();\n const lastPos = path.indexOf(\"']\", pos + 2);\n if (lastPos === -1)\n bail();\n ret.push(path.slice(pos + 2, lastPos));\n pos = lastPos + 2;\n }\n }\n }\n return ret;\n}\nexport function parseJsonPointerPath(path) {\n if (!path.startsWith('/'))\n throw new SyntaxError(`parsePath(): Invalid pointer-path, must begin with \"/\": ${path}`);\n if (path === '/')\n return [];\n return path\n .slice(1)\n .split('/')\n .map(segment => parseJsonPointerSegment(segment));\n}\nexport function parseJsonPointerSegment(segment) {\n return segment.replace(/~1/g, '/').replace(/~0/g, '~');\n}\nexport function encodeJsonPointerPath(path) {\n return '/' + path\n .map(segment => encodeJsonPointerSegment(segment))\n .join('/');\n}\nexport function encodeJsonPointerSegment(segment) {\n return `${segment}`.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import * as React from 'react';\nimport { useEffect, useState, useCallback } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { toObserver, createActor } from 'xstate';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\n\nconst forEachActor = (actorRef, callback) => {\n callback(actorRef);\n const children = actorRef.getSnapshot().children;\n if (children) {\n Object.values(children).forEach(child => {\n forEachActor(child, callback);\n });\n }\n};\nfunction stopRootWithRehydration(actorRef) {\n // persist snapshot here in a custom way allows us to persist inline actors and to preserve actor references\n // we do it to avoid setState in useEffect when the effect gets \"reconnected\"\n // this currently only happens in Strict Effects but it simulates the Offscreen aka Activity API\n // it also just allows us to end up with a somewhat more predictable behavior for the users\n const persistedSnapshots = [];\n forEachActor(actorRef, ref => {\n persistedSnapshots.push([ref, ref.getSnapshot()]);\n // muting observers allow us to avoid `useSelector` from being notified about the stopped snapshot\n // React reconnects its subscribers (from the useSyncExternalStore) on its own\n // and userland subscibers should basically always do the same anyway\n // as each subscription should have its own cleanup logic and that should be called each such reconnect\n ref.observers = new Set();\n });\n const systemSnapshot = actorRef.system.getSnapshot?.();\n actorRef.stop();\n actorRef.system._snapshot = systemSnapshot;\n persistedSnapshots.forEach(([ref, snapshot]) => {\n ref._processingStatus = 0;\n ref._snapshot = snapshot;\n });\n}\n\nfunction useIdleActorRef(logic, ...[options]) {\n let [[currentConfig, actorRef], setCurrent] = useState(() => {\n const actorRef = createActor(logic, options);\n return [logic.config, actorRef];\n });\n if (logic.config !== currentConfig) {\n const newActorRef = createActor(logic, {\n ...options,\n snapshot: actorRef.getPersistedSnapshot({\n __unsafeAllowInlineActors: true\n })\n });\n setCurrent([logic.config, newActorRef]);\n actorRef = newActorRef;\n }\n\n // TODO: consider using `useAsapEffect` that would do this in `useInsertionEffect` is that's available\n useIsomorphicLayoutEffect(() => {\n actorRef.logic.implementations = logic.implementations;\n });\n return actorRef;\n}\nfunction useActorRef(machine, ...[options, observerOrListener]) {\n const actorRef = useIdleActorRef(machine, options);\n useEffect(() => {\n if (!observerOrListener) {\n return;\n }\n let sub = actorRef.subscribe(toObserver(observerOrListener));\n return () => {\n sub.unsubscribe();\n };\n }, [observerOrListener]);\n useEffect(() => {\n actorRef.start();\n return () => {\n stopRootWithRehydration(actorRef);\n };\n }, [actorRef]);\n return actorRef;\n}\n\nfunction defaultCompare(a, b) {\n return a === b;\n}\nfunction useSelector(actor, selector, compare = defaultCompare) {\n const subscribe = useCallback(handleStoreChange => {\n if (!actor) {\n return () => {};\n }\n const {\n unsubscribe\n } = actor.subscribe(handleStoreChange);\n return unsubscribe;\n }, [actor]);\n const boundGetSnapshot = useCallback(() => actor?.getSnapshot(), [actor]);\n const selectedSnapshot = useSyncExternalStoreWithSelector(subscribe, boundGetSnapshot, boundGetSnapshot, selector, compare);\n return selectedSnapshot;\n}\n\nfunction createActorContext(actorLogic, actorOptions) {\n const ReactContext = /*#__PURE__*/React.createContext(null);\n const OriginalProvider = ReactContext.Provider;\n function Provider({\n children,\n logic: providedLogic = actorLogic,\n machine,\n options: providedOptions\n }) {\n if (machine) {\n throw new Error(`The \"machine\" prop has been deprecated. Please use \"logic\" instead.`);\n }\n const actor = useActorRef(providedLogic, {\n ...actorOptions,\n ...providedOptions\n });\n return /*#__PURE__*/React.createElement(OriginalProvider, {\n value: actor,\n children\n });\n }\n\n // TODO: add properties to actor ref to make more descriptive\n Provider.displayName = `ActorProvider`;\n function useContext() {\n const actor = React.useContext(ReactContext);\n if (!actor) {\n throw new Error(`You used a hook from \"${Provider.displayName}\" but it's not inside a <${Provider.displayName}> component.`);\n }\n return actor;\n }\n function useSelector$1(selector, compare) {\n const actor = useContext();\n return useSelector(actor, selector, compare);\n }\n return {\n Provider: Provider,\n useActorRef: useContext,\n useSelector: useSelector$1\n };\n}\n\n// From https://github.com/reduxjs/react-redux/blob/720f0ba79236cdc3e1115f4ef9a7760a21784b48/src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nfunction useActor(logic, ...[options]) {\n const actorRef = useIdleActorRef(logic, options);\n const getSnapshot = useCallback(() => {\n return actorRef.getSnapshot();\n }, [actorRef]);\n const subscribe = useCallback(handleStoreChange => {\n const {\n unsubscribe\n } = actorRef.subscribe(handleStoreChange);\n return unsubscribe;\n }, [actorRef]);\n const actorSnapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n useEffect(() => {\n actorRef.start();\n return () => {\n stopRootWithRehydration(actorRef);\n };\n }, [actorRef]);\n return [actorSnapshot, actorRef.send, actorRef];\n}\n\n/** @alias useActor */\nfunction useMachine(machine, ...[options]) {\n return useActor(machine, options);\n}\n\nexport { createActorContext, shallowEqual, useActor, useActorRef, useMachine, useSelector };\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","module.exports = __webpack_public_path__ + \"211511e7b374f57ad31acaf49dbdccb1.js\";","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar method = function method(rule, value, callback, source, options) {\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default method;","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar date = function date(rule, value, callback, source, options) {\n // console.log('integer rule called %j', rule);\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n var dateObject;\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\nexport default date;","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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 var isNew = !object;\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 if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","module.exports = __webpack_public_path__ + \"bf37de323316c6ae5745fc11fd576b1c.js\";","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpPage.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpPage.scss\";\n export default content && content.locals ? content.locals : undefined;\n","module.exports = __webpack_public_path__ + \"ecff3d4bbf59ef41230960af46098e74.js\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-input-number{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpInputNumber/OpInputNumber.scss\"],\"names\":[],\"mappings\":\"AAAA,iBACE,UAAA\",\"sourcesContent\":[\".op-input-number {\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\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\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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\nexport default isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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 var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\n\n/**![eye](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EyeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'EyeOutlined';\n}\nexport default RefIcon;","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (nextState, reducerName, action) {\n // eslint-disable-next-line no-undefined\n if (nextState === undefined) {\n throw new Error('Reducer \"' + reducerName + '\" returned undefined when handling \"' + action.type + '\" action. To ignore an action, you must explicitly return the previous state.');\n }\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=validateNextState.js.map","module.exports = __webpack_public_path__ + \"2dd82c65030101b60dffccedd8741c6e.js\";","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nconst viewSize = 100;\nconst borderWidth = viewSize / 5;\nconst radius = viewSize / 2 - borderWidth / 2;\nconst circumference = radius * 2 * Math.PI;\nconst position = 50;\nconst CustomCircle = props => {\n const {\n dotClassName,\n style,\n hasCircleCls\n } = props;\n return /*#__PURE__*/React.createElement(\"circle\", {\n className: classNames(`${dotClassName}-circle`, {\n [`${dotClassName}-circle-bg`]: hasCircleCls\n }),\n r: radius,\n cx: position,\n cy: position,\n strokeWidth: borderWidth,\n style: style\n });\n};\nconst Progress = _ref => {\n let {\n percent,\n prefixCls\n } = _ref;\n const dotClassName = `${prefixCls}-dot`;\n const holderClassName = `${dotClassName}-holder`;\n const hideClassName = `${holderClassName}-hidden`;\n const [render, setRender] = React.useState(false);\n // ==================== Visible =====================\n useLayoutEffect(() => {\n if (percent !== 0) {\n setRender(true);\n }\n }, [percent !== 0]);\n // ==================== Progress ====================\n const safePtg = Math.max(Math.min(percent, 100), 0);\n // ===================== Render =====================\n if (!render) {\n return null;\n }\n const circleStyle = {\n strokeDashoffset: `${circumference / 4}`,\n strokeDasharray: `${circumference * safePtg / 100} ${circumference * (100 - safePtg) / 100}`\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(holderClassName, `${dotClassName}-progress`, safePtg <= 0 && hideClassName)\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: `0 0 ${viewSize} ${viewSize}`,\n // biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: progressbar could be readonly\n role: \"progressbar\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": safePtg\n }, /*#__PURE__*/React.createElement(CustomCircle, {\n dotClassName: dotClassName,\n hasCircleCls: true\n }), /*#__PURE__*/React.createElement(CustomCircle, {\n dotClassName: dotClassName,\n style: circleStyle\n })));\n};\nexport default Progress;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Progress from './Progress';\nexport default function Looper(props) {\n const {\n prefixCls,\n percent = 0\n } = props;\n const dotClassName = `${prefixCls}-dot`;\n const holderClassName = `${dotClassName}-holder`;\n const hideClassName = `${holderClassName}-hidden`;\n // ===================== Render =====================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(holderClassName, percent > 0 && hideClassName)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, `${prefixCls}-dot-spin`)\n }, [1, 2, 3, 4].map(i => (/*#__PURE__*/React.createElement(\"i\", {\n className: `${prefixCls}-dot-item`,\n key: i\n }))))), /*#__PURE__*/React.createElement(Progress, {\n prefixCls: prefixCls,\n percent: percent\n }));\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { cloneElement } from '../../_util/reactNode';\nimport Looper from './Looper';\nexport default function Indicator(props) {\n const {\n prefixCls,\n indicator,\n percent\n } = props;\n const dotClassName = `${prefixCls}-dot`;\n if (indicator && /*#__PURE__*/React.isValidElement(indicator)) {\n return cloneElement(indicator, {\n className: classNames(indicator.props.className, dotClassName),\n percent\n });\n }\n return /*#__PURE__*/React.createElement(Looper, {\n prefixCls: prefixCls,\n percent: percent\n });\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst antSpinMove = new Keyframes('antSpinMove', {\n to: {\n opacity: 1\n }\n});\nconst antRotate = new Keyframes('antRotate', {\n to: {\n transform: 'rotate(405deg)'\n }\n});\nconst genSpinStyle = token => {\n const {\n componentCls,\n calc\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n display: 'none',\n color: token.colorPrimary,\n fontSize: 0,\n textAlign: 'center',\n verticalAlign: 'middle',\n opacity: 0,\n transition: `transform ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`,\n '&-spinning': {\n position: 'relative',\n display: 'inline-block',\n opacity: 1\n },\n [`${componentCls}-text`]: {\n fontSize: token.fontSize,\n paddingTop: calc(calc(token.dotSize).sub(token.fontSize)).div(2).add(2).equal()\n },\n '&-fullscreen': {\n position: 'fixed',\n width: '100vw',\n height: '100vh',\n backgroundColor: token.colorBgMask,\n zIndex: token.zIndexPopupBase,\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center',\n opacity: 0,\n visibility: 'hidden',\n transition: `all ${token.motionDurationMid}`,\n '&-show': {\n opacity: 1,\n visibility: 'visible'\n },\n [componentCls]: {\n [`${componentCls}-dot-holder`]: {\n color: token.colorWhite\n },\n [`${componentCls}-text`]: {\n color: token.colorTextLightSolid\n }\n }\n },\n '&-nested-loading': {\n position: 'relative',\n [`> div > ${componentCls}`]: {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n zIndex: 4,\n display: 'block',\n width: '100%',\n height: '100%',\n maxHeight: token.contentHeight,\n [`${componentCls}-dot`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: '50%',\n margin: calc(token.dotSize).mul(-1).div(2).equal()\n },\n [`${componentCls}-text`]: {\n position: 'absolute',\n top: '50%',\n width: '100%',\n textShadow: `0 1px 2px ${token.colorBgContainer}` // FIXME: shadow\n },\n [`&${componentCls}-show-text ${componentCls}-dot`]: {\n marginTop: calc(token.dotSize).div(2).mul(-1).sub(10).equal()\n },\n '&-sm': {\n [`${componentCls}-dot`]: {\n margin: calc(token.dotSizeSM).mul(-1).div(2).equal()\n },\n [`${componentCls}-text`]: {\n paddingTop: calc(calc(token.dotSizeSM).sub(token.fontSize)).div(2).add(2).equal()\n },\n [`&${componentCls}-show-text ${componentCls}-dot`]: {\n marginTop: calc(token.dotSizeSM).div(2).mul(-1).sub(10).equal()\n }\n },\n '&-lg': {\n [`${componentCls}-dot`]: {\n margin: calc(token.dotSizeLG).mul(-1).div(2).equal()\n },\n [`${componentCls}-text`]: {\n paddingTop: calc(calc(token.dotSizeLG).sub(token.fontSize)).div(2).add(2).equal()\n },\n [`&${componentCls}-show-text ${componentCls}-dot`]: {\n marginTop: calc(token.dotSizeLG).div(2).mul(-1).sub(10).equal()\n }\n }\n },\n [`${componentCls}-container`]: {\n position: 'relative',\n transition: `opacity ${token.motionDurationSlow}`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n height: '100%',\n background: token.colorBgContainer,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-blur`]: {\n clear: 'both',\n opacity: 0.5,\n userSelect: 'none',\n pointerEvents: 'none',\n '&::after': {\n opacity: 0.4,\n pointerEvents: 'auto'\n }\n }\n },\n // tip\n // ------------------------------\n '&-tip': {\n color: token.spinDotDefault\n },\n // holder\n // ------------------------------\n [`${componentCls}-dot-holder`]: {\n width: '1em',\n height: '1em',\n fontSize: token.dotSize,\n display: 'inline-block',\n transition: `transform ${token.motionDurationSlow} ease, opacity ${token.motionDurationSlow} ease`,\n transformOrigin: '50% 50%',\n lineHeight: 1,\n color: token.colorPrimary,\n '&-hidden': {\n transform: 'scale(0.3)',\n opacity: 0\n }\n },\n // progress\n // ------------------------------\n [`${componentCls}-dot-progress`]: {\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n insetInlineStart: '50%'\n },\n // dots\n // ------------------------------\n [`${componentCls}-dot`]: {\n position: 'relative',\n display: 'inline-block',\n fontSize: token.dotSize,\n width: '1em',\n height: '1em',\n '&-item': {\n position: 'absolute',\n display: 'block',\n width: calc(token.dotSize).sub(calc(token.marginXXS).div(2)).div(2).equal(),\n height: calc(token.dotSize).sub(calc(token.marginXXS).div(2)).div(2).equal(),\n background: 'currentColor',\n borderRadius: '100%',\n transform: 'scale(0.75)',\n transformOrigin: '50% 50%',\n opacity: 0.3,\n animationName: antSpinMove,\n animationDuration: '1s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear',\n animationDirection: 'alternate',\n '&:nth-child(1)': {\n top: 0,\n insetInlineStart: 0,\n animationDelay: '0s'\n },\n '&:nth-child(2)': {\n top: 0,\n insetInlineEnd: 0,\n animationDelay: '0.4s'\n },\n '&:nth-child(3)': {\n insetInlineEnd: 0,\n bottom: 0,\n animationDelay: '0.8s'\n },\n '&:nth-child(4)': {\n bottom: 0,\n insetInlineStart: 0,\n animationDelay: '1.2s'\n }\n },\n '&-spin': {\n transform: 'rotate(45deg)',\n animationName: antRotate,\n animationDuration: '1.2s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n },\n '&-circle': {\n strokeLinecap: 'round',\n transition: ['stroke-dashoffset', 'stroke-dasharray', 'stroke', 'stroke-width', 'opacity'].map(item => `${item} ${token.motionDurationSlow} ease`).join(','),\n fillOpacity: 0,\n stroke: 'currentcolor'\n },\n '&-circle-bg': {\n stroke: token.colorFillSecondary\n }\n },\n // small\n [`&-sm ${componentCls}-dot`]: {\n '&, &-holder': {\n fontSize: token.dotSizeSM\n }\n },\n [`&-sm ${componentCls}-dot-holder`]: {\n i: {\n width: calc(calc(token.dotSizeSM).sub(calc(token.marginXXS).div(2))).div(2).equal(),\n height: calc(calc(token.dotSizeSM).sub(calc(token.marginXXS).div(2))).div(2).equal()\n }\n },\n // large\n [`&-lg ${componentCls}-dot`]: {\n '&, &-holder': {\n fontSize: token.dotSizeLG\n }\n },\n [`&-lg ${componentCls}-dot-holder`]: {\n i: {\n width: calc(calc(token.dotSizeLG).sub(token.marginXXS)).div(2).equal(),\n height: calc(calc(token.dotSizeLG).sub(token.marginXXS)).div(2).equal()\n }\n },\n [`&${componentCls}-show-text ${componentCls}-text`]: {\n display: 'block'\n }\n })\n };\n};\nexport const prepareComponentToken = token => {\n const {\n controlHeightLG,\n controlHeight\n } = token;\n return {\n contentHeight: 400,\n dotSize: controlHeightLG / 2,\n dotSizeSM: controlHeightLG * 0.35,\n dotSizeLG: controlHeight\n };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Spin', token => {\n const spinToken = mergeToken(token, {\n spinDotDefault: token.colorTextDescription\n });\n return [genSpinStyle(spinToken)];\n}, prepareComponentToken);","import * as React from 'react';\nconst AUTO_INTERVAL = 200;\nconst STEP_BUCKETS = [[30, 0.05], [70, 0.03], [96, 0.01]];\nexport default function usePercent(spinning, percent) {\n const [mockPercent, setMockPercent] = React.useState(0);\n const mockIntervalRef = React.useRef();\n const isAuto = percent === 'auto';\n React.useEffect(() => {\n if (isAuto && spinning) {\n setMockPercent(0);\n mockIntervalRef.current = setInterval(() => {\n setMockPercent(prev => {\n const restPTG = 100 - prev;\n for (let i = 0; i < STEP_BUCKETS.length; i += 1) {\n const [limit, stepPtg] = STEP_BUCKETS[i];\n if (prev <= limit) {\n return prev + restPTG * stepPtg;\n }\n }\n return prev;\n });\n }, AUTO_INTERVAL);\n }\n return () => {\n clearInterval(mockIntervalRef.current);\n };\n }, [isAuto, spinning]);\n return isAuto ? mockPercent : percent;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { debounce } from 'throttle-debounce';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Indicator from './Indicator';\nimport useStyle from './style/index';\nimport usePercent from './usePercent';\nconst _SpinSizes = ['small', 'default', 'large'];\n// Render indicator\nlet defaultIndicator;\nfunction shouldDelay(spinning, delay) {\n return !!spinning && !!delay && !isNaN(Number(delay));\n}\nconst Spin = props => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n spinning: customSpinning = true,\n delay = 0,\n className,\n rootClassName,\n size = 'default',\n tip,\n wrapperClassName,\n style,\n children,\n fullscreen = false,\n indicator,\n percent\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"spinning\", \"delay\", \"className\", \"rootClassName\", \"size\", \"tip\", \"wrapperClassName\", \"style\", \"children\", \"fullscreen\", \"indicator\", \"percent\"]);\n const {\n getPrefixCls,\n direction,\n spin\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('spin', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const [spinning, setSpinning] = React.useState(() => customSpinning && !shouldDelay(customSpinning, delay));\n const mergedPercent = usePercent(spinning, percent);\n React.useEffect(() => {\n if (customSpinning) {\n const showSpinning = debounce(delay, () => {\n setSpinning(true);\n });\n showSpinning();\n return () => {\n var _a;\n (_a = showSpinning === null || showSpinning === void 0 ? void 0 : showSpinning.cancel) === null || _a === void 0 ? void 0 : _a.call(showSpinning);\n };\n }\n setSpinning(false);\n }, [delay, customSpinning]);\n const isNestedPattern = React.useMemo(() => typeof children !== 'undefined' && !fullscreen, [children, fullscreen]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Spin');\n process.env.NODE_ENV !== \"production\" ? warning(!tip || isNestedPattern || fullscreen, 'usage', '`tip` only work in nest or fullscreen pattern.') : void 0;\n }\n const spinClassName = classNames(prefixCls, spin === null || spin === void 0 ? void 0 : spin.className, {\n [`${prefixCls}-sm`]: size === 'small',\n [`${prefixCls}-lg`]: size === 'large',\n [`${prefixCls}-spinning`]: spinning,\n [`${prefixCls}-show-text`]: !!tip,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, !fullscreen && rootClassName, hashId, cssVarCls);\n const containerClassName = classNames(`${prefixCls}-container`, {\n [`${prefixCls}-blur`]: spinning\n });\n const mergedIndicator = (_a = indicator !== null && indicator !== void 0 ? indicator : spin === null || spin === void 0 ? void 0 : spin.indicator) !== null && _a !== void 0 ? _a : defaultIndicator;\n const mergedStyle = Object.assign(Object.assign({}, spin === null || spin === void 0 ? void 0 : spin.style), style);\n const spinElement = /*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n style: mergedStyle,\n className: spinClassName,\n \"aria-live\": \"polite\",\n \"aria-busy\": spinning\n }), /*#__PURE__*/React.createElement(Indicator, {\n prefixCls: prefixCls,\n indicator: mergedIndicator,\n percent: mergedPercent\n }), tip && (isNestedPattern || fullscreen) ? (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-text`\n }, tip)) : null);\n if (isNestedPattern) {\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n className: classNames(`${prefixCls}-nested-loading`, wrapperClassName, hashId, cssVarCls)\n }), spinning && /*#__PURE__*/React.createElement(\"div\", {\n key: \"loading\"\n }, spinElement), /*#__PURE__*/React.createElement(\"div\", {\n className: containerClassName,\n key: \"container\"\n }, children)));\n }\n if (fullscreen) {\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-fullscreen`, {\n [`${prefixCls}-fullscreen-show`]: spinning\n }, rootClassName, hashId, cssVarCls)\n }, spinElement));\n }\n return wrapCSSVar(spinElement);\n};\nSpin.setDefaultIndicator = indicator => {\n defaultIndicator = indicator;\n};\nif (process.env.NODE_ENV !== 'production') {\n Spin.displayName = 'Spin';\n}\nexport default Spin;","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","import { WINDOW } from '../../../types.js';\n\n/*\n * Copyright 2020 Google LLC\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 * https://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\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n // If the document is hidden when this code runs, assume it was always\n // hidden and the page was loaded in the background, with the one exception\n // that visibility state is always 'hidden' during prerendering, so we have\n // to ignore that case until prerendering finishes (see: `prerenderingchange`\n // event logic below).\n firstHiddenTime = WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;\n};\n\nconst onVisibilityUpdate = (event) => {\n // If the document is 'hidden' and no previous hidden timestamp has been\n // set, update it based on the current event data.\n if (WINDOW.document.visibilityState === 'hidden' && firstHiddenTime > -1) {\n // If the event is a 'visibilitychange' event, it means the page was\n // visible prior to this change, so the event timestamp is the first\n // hidden time.\n // However, if the event is not a 'visibilitychange' event, then it must\n // be a 'prerenderingchange' event, and the fact that the document is\n // still 'hidden' from the above check means the tab was activated\n // in a background state and so has always been hidden.\n firstHiddenTime = event.type === 'visibilitychange' ? event.timeStamp : 0;\n\n // Remove all listeners now that a `firstHiddenTime` value has been set.\n removeEventListener('visibilitychange', onVisibilityUpdate, true);\n removeEventListener('prerenderingchange', onVisibilityUpdate, true);\n }\n};\n\nconst addChangeListeners = () => {\n addEventListener('visibilitychange', onVisibilityUpdate, true);\n // IMPORTANT: when a page is prerendering, its `visibilityState` is\n // 'hidden', so in order to account for cases where this module checks for\n // visibility during prerendering, an additional check after prerendering\n // completes is also required.\n addEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nconst getVisibilityWatcher = () => {\n if (WINDOW.document && firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n initHiddenTime();\n addChangeListeners();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import { timestampInSeconds, logger } from '@sentry/utils';\nimport { getClient, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { getActiveSpan, spanTimeInputToSeconds, getSpanDescendants, spanToJSON, removeChildSpanFromSpan } from '../utils/spanUtils.js';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { startInactiveSpan } from './trace.js';\n\nconst TRACING_DEFAULTS = {\n idleTimeout: 1000,\n finalTimeout: 30000,\n childSpanTimeout: 15000,\n};\n\nconst FINISH_REASON_HEARTBEAT_FAILED = 'heartbeatFailed';\nconst FINISH_REASON_IDLE_TIMEOUT = 'idleTimeout';\nconst FINISH_REASON_FINAL_TIMEOUT = 'finalTimeout';\nconst FINISH_REASON_EXTERNAL_FINISH = 'externalFinish';\n\n/**\n * An idle span is a span that automatically finishes. It does this by tracking child spans as activities.\n * An idle span is always the active span.\n */\nfunction startIdleSpan(startSpanOptions, options = {}) {\n // Activities store a list of active spans\n const activities = new Map();\n\n // We should not use heartbeat if we finished a span\n let _finished = false;\n\n // Timer that tracks idleTimeout\n let _idleTimeoutID;\n\n // The reason why the span was finished\n let _finishReason = FINISH_REASON_EXTERNAL_FINISH;\n\n let _autoFinishAllowed = !options.disableAutoFinish;\n\n const _cleanupHooks = [];\n\n const {\n idleTimeout = TRACING_DEFAULTS.idleTimeout,\n finalTimeout = TRACING_DEFAULTS.finalTimeout,\n childSpanTimeout = TRACING_DEFAULTS.childSpanTimeout,\n beforeSpanEnd,\n } = options;\n\n const client = getClient();\n\n if (!client || !hasTracingEnabled()) {\n return new SentryNonRecordingSpan();\n }\n\n const scope = getCurrentScope();\n const previousActiveSpan = getActiveSpan();\n const span = _startIdleSpan(startSpanOptions);\n\n // We patch span.end to ensure we can run some things before the span is ended\n // eslint-disable-next-line @typescript-eslint/unbound-method\n span.end = new Proxy(span.end, {\n apply(target, thisArg, args) {\n if (beforeSpanEnd) {\n beforeSpanEnd(span);\n }\n\n // Just ensuring that this keeps working, even if we ever have more arguments here\n const [definedEndTimestamp, ...rest] = args;\n const timestamp = definedEndTimestamp || timestampInSeconds();\n const spanEndTimestamp = spanTimeInputToSeconds(timestamp);\n\n // Ensure we end with the last span timestamp, if possible\n const spans = getSpanDescendants(span).filter(child => child !== span);\n\n // If we have no spans, we just end, nothing else to do here\n if (!spans.length) {\n onIdleSpanEnded(spanEndTimestamp);\n return Reflect.apply(target, thisArg, [spanEndTimestamp, ...rest]);\n }\n\n const childEndTimestamps = spans\n .map(span => spanToJSON(span).timestamp)\n .filter(timestamp => !!timestamp) ;\n const latestSpanEndTimestamp = childEndTimestamps.length ? Math.max(...childEndTimestamps) : undefined;\n\n // In reality this should always exist here, but type-wise it may be undefined...\n const spanStartTimestamp = spanToJSON(span).start_timestamp;\n\n // The final endTimestamp should:\n // * Never be before the span start timestamp\n // * Be the latestSpanEndTimestamp, if there is one, and it is smaller than the passed span end timestamp\n // * Otherwise be the passed end timestamp\n // Final timestamp can never be after finalTimeout\n const endTimestamp = Math.min(\n spanStartTimestamp ? spanStartTimestamp + finalTimeout / 1000 : Infinity,\n Math.max(spanStartTimestamp || -Infinity, Math.min(spanEndTimestamp, latestSpanEndTimestamp || Infinity)),\n );\n\n onIdleSpanEnded(endTimestamp);\n return Reflect.apply(target, thisArg, [endTimestamp, ...rest]);\n },\n });\n\n /**\n * Cancels the existing idle timeout, if there is one.\n */\n function _cancelIdleTimeout() {\n if (_idleTimeoutID) {\n clearTimeout(_idleTimeoutID);\n _idleTimeoutID = undefined;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n function _restartIdleTimeout(endTimestamp) {\n _cancelIdleTimeout();\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && activities.size === 0 && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_IDLE_TIMEOUT;\n span.end(endTimestamp);\n }\n }, idleTimeout);\n }\n\n /**\n * Restarts child span timeout, if there is none running it will start one.\n */\n function _restartChildSpanTimeout(endTimestamp) {\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_HEARTBEAT_FAILED;\n span.end(endTimestamp);\n }\n }, childSpanTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n function _pushActivity(spanId) {\n _cancelIdleTimeout();\n activities.set(spanId, true);\n\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartChildSpanTimeout(endTimestamp + childSpanTimeout / 1000);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n function _popActivity(spanId) {\n if (activities.has(spanId)) {\n activities.delete(spanId);\n }\n\n if (activities.size === 0) {\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartIdleTimeout(endTimestamp + idleTimeout / 1000);\n }\n }\n\n function onIdleSpanEnded(endTimestamp) {\n _finished = true;\n activities.clear();\n\n _cleanupHooks.forEach(cleanup => cleanup());\n\n _setSpanForScope(scope, previousActiveSpan);\n\n const spanJSON = spanToJSON(span);\n\n const { start_timestamp: startTimestamp } = spanJSON;\n // This should never happen, but to make TS happy...\n if (!startTimestamp) {\n return;\n }\n\n const attributes = spanJSON.data || {};\n if (!attributes[SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason);\n }\n\n logger.log(`[Tracing] Idle span \"${spanJSON.op}\" finished`);\n\n const childSpans = getSpanDescendants(span).filter(child => child !== span);\n\n let discardedSpans = 0;\n childSpans.forEach(childSpan => {\n // We cancel all pending spans with status \"cancelled\" to indicate the idle span was finished early\n if (childSpan.isRecording()) {\n childSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'cancelled' });\n childSpan.end(endTimestamp);\n DEBUG_BUILD &&\n logger.log('[Tracing] Cancelling span since span ended early', JSON.stringify(childSpan, undefined, 2));\n }\n\n const childSpanJSON = spanToJSON(childSpan);\n const { timestamp: childEndTimestamp = 0, start_timestamp: childStartTimestamp = 0 } = childSpanJSON;\n\n const spanStartedBeforeIdleSpanEnd = childStartTimestamp <= endTimestamp;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (finalTimeout + idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = childEndTimestamp - childStartTimestamp <= timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(childSpan, undefined, 2);\n if (!spanStartedBeforeIdleSpanEnd) {\n logger.log('[Tracing] Discarding span since it happened after idle span was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n logger.log('[Tracing] Discarding span since it finished after idle span final timeout', stringifiedSpan);\n }\n }\n\n if (!spanEndedBeforeFinalTimeout || !spanStartedBeforeIdleSpanEnd) {\n removeChildSpanFromSpan(span, childSpan);\n discardedSpans++;\n }\n });\n\n if (discardedSpans > 0) {\n span.setAttribute('sentry.idle_span_discarded_spans', discardedSpans);\n }\n }\n\n _cleanupHooks.push(\n client.on('spanStart', startedSpan => {\n // If we already finished the idle span,\n // or if this is the idle span itself being started,\n // or if the started span has already been closed,\n // we don't care about it for activity\n if (_finished || startedSpan === span || !!spanToJSON(startedSpan).timestamp) {\n return;\n }\n\n const allSpans = getSpanDescendants(span);\n\n // If the span that was just started is a child of the idle span, we should track it\n if (allSpans.includes(startedSpan)) {\n _pushActivity(startedSpan.spanContext().spanId);\n }\n }),\n );\n\n _cleanupHooks.push(\n client.on('spanEnd', endedSpan => {\n if (_finished) {\n return;\n }\n\n _popActivity(endedSpan.spanContext().spanId);\n }),\n );\n\n _cleanupHooks.push(\n client.on('idleSpanEnableAutoFinish', spanToAllowAutoFinish => {\n if (spanToAllowAutoFinish === span) {\n _autoFinishAllowed = true;\n _restartIdleTimeout();\n\n if (activities.size) {\n _restartChildSpanTimeout();\n }\n }\n }),\n );\n\n // We only start the initial idle timeout if we are not delaying the auto finish\n if (!options.disableAutoFinish) {\n _restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!_finished) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' });\n _finishReason = FINISH_REASON_FINAL_TIMEOUT;\n span.end();\n }\n }, finalTimeout);\n\n return span;\n}\n\nfunction _startIdleSpan(options) {\n const span = startInactiveSpan(options);\n\n _setSpanForScope(getCurrentScope(), span);\n\n DEBUG_BUILD && logger.log('[Tracing] Started span is an idle span');\n\n return span;\n}\n\nexport { TRACING_DEFAULTS, startIdleSpan };\n//# sourceMappingURL=idleSpan.js.map\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","module.exports = __webpack_public_path__ + \"3b6e7dc98c47eeafd851ca5072db4be6.js\";","'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';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","export const connectionStates = {\n DISCONNECTED: 'DISCONNECTED',\n CONNECTING: 'CONNECTING',\n CONNECTION_ERROR: 'CONNECTION_ERROR',\n CONNECTED: 'CONNECTED',\n SHOULD_RECONNECT: 'SHOULD_RECONNECT',\n};\n\nexport const callStates = {\n PREVIEW: 'PREVIEW',\n CALL: 'CALL',\n DISCONNECTED: 'DISCONNECTED',\n};\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexports.default = LoadingOutlined;\n","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { ConfigContext } from '.';\nimport Empty from '../empty';\nconst DefaultRenderEmpty = props => {\n const {\n componentName\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: `${prefix}-small`\n });\n /**\n * This type of component should satisfy the nullish coalescing operator(??) on the left-hand side.\n * to let the component itself implement the logic.\n * For example `Table.filter`.\n */\n case 'Table.filter':\n // why `null`? legacy react16 node type `undefined` is not allowed.\n return null;\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n};\nexport default DefaultRenderEmpty;","module.exports = __webpack_public_path__ + \"5861dfe4f2c7823623e82d0619c5bf06.js\";","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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\nmodule.exports = hashSet;\n","import { useRef } from 'react';\nimport get from 'lodash/get';\nimport { useOpQuery, UseOpQueryOptions } from 'utils/customHooks/useOpQuery';\nimport { ensurePayloadAndQuery } from 'utils/ensurePayloadAndQuery';\nimport uniqBy from 'lodash/uniqBy';\nimport cloneDeep from 'lodash/cloneDeep';\nimport * as Sentry from '@sentry/react';\nimport difference from 'lodash/difference';\nimport {\n CreateFinalOptions,\n CreateInitialValueQueryOptions,\n CreateMainDataQueryOptions,\n CreateOptions,\n Option,\n UseCreateInitialValueOptions,\n UseCreateMainDataOptions,\n UseCreateOptions,\n} from './types';\nimport { DEFAULT_LIMIT } from './constants';\nimport { SelectableValueTypes } from '../OpSelect/OpSelect';\n\nconst createOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n Value extends SelectableValueTypes = SelectableValueTypes,\n>({\n data,\n pathToData,\n pathToLabel,\n pathToValue,\n numerifyOptionValues,\n createDisabledOption,\n createOptionLabel,\n}: CreateOptions<T, SelectData>) => {\n const optionData: Utils.GetApiReturnType<T> = pathToData\n ? get(data, pathToData)\n : data;\n\n let options: Option<Value>[] = [];\n\n // If we have optionData, make sure that the optionData is an array\n if (optionData) {\n if (Array.isArray(optionData)) {\n options = optionData.map((record) => {\n const label = createOptionLabel?.(record) || get(record, pathToLabel);\n const optionValue = get(record, pathToValue);\n const finalOptionValue = numerifyOptionValues\n ? Number(optionValue) || optionValue\n : String(optionValue);\n\n return {\n label,\n value: finalOptionValue,\n disabled: createDisabledOption?.(record),\n record,\n };\n });\n } else {\n console.error('Data response needs to be an array for OpDataFetchSelect');\n }\n }\n\n return options;\n};\n\n/**\n * List of API endpoints that do not support queries that we still allow these won't\n * work as designed with `q` filtering the data, so we need to ultimately update these\n * endpoints in helium to support query params\n */\nconst apiEndpointsWhiteList = [\n 'globalListSupportedLanguages',\n 'listOpvideoIntercomProfileTypes',\n];\n\nconst verifyQueryOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n>(\n queryOptions: UseOpQueryOptions<T, SelectData>,\n) => {\n const { parametersArray, withQuery } = ensurePayloadAndQuery(\n queryOptions.apiEndpointName,\n queryOptions.parameters,\n );\n\n // Find the index of the queries (last object)\n const queriesIndex = parametersArray.findLastIndex(\n (param: any) => typeof param === 'object',\n );\n\n // Verify that the endpoint supports queries\n if (withQuery) {\n if (queriesIndex === -1) {\n /**\n * ensurePayloadAndQuery guarantees the presence of a queries object, so\n * capture this since something is way off\n */\n const message = `Critical: ensurePayloadAndQuery did not ensure a query object for API endpoint ${queryOptions.apiEndpointName}`;\n console.error(message);\n Sentry.captureMessage(message);\n }\n } else if (!apiEndpointsWhiteList.includes(queryOptions.apiEndpointName)) {\n /**\n * We at least need to know to add to whitelist, but should find underlying\n * issue as to why swagger is not populating the withQuery field properly\n */\n const message = `Critical: No query object allowed for the API endpoint passed to OpDataFetchSelect: \\`${queryOptions.apiEndpointName}\\`. Did you pass the wrong API endpoint? Make sure the API endpoint supports query params.`;\n console.error(message);\n Sentry.captureMessage(message);\n }\n\n return { parametersArray, queriesIndex };\n};\n\nconst createMainDataQueryOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n>({\n queryOptions,\n fetchAllInitialValues,\n debouncedQuery,\n}: CreateMainDataQueryOptions<T, SelectData>) => {\n // Make a deep clone of the query options to prevent mutation\n const clonedQueryOptions = cloneDeep(queryOptions);\n\n const { parametersArray, queriesIndex } =\n verifyQueryOptions(clonedQueryOptions);\n\n if (queriesIndex === -1) {\n // We can't do anything that requires a query object, so just return the queryOptions\n return queryOptions as UseOpQueryOptions<T>;\n }\n\n parametersArray[queriesIndex] = {\n ...(fetchAllInitialValues && { limit: DEFAULT_LIMIT }), // Will be overwritten if limit in the original query params\n ...(parametersArray[queriesIndex] as Record<string, any>),\n ...(debouncedQuery && { q: debouncedQuery }),\n };\n\n return {\n ...queryOptions,\n parameters: parametersArray,\n getAll: !fetchAllInitialValues, // getAll is still used here as a safety mechanism in order to ensure we never just show the value (e.g., id) and not the label (e.g., name). This would happen if the item data wasn't returned due to a limit. If there can ever be more than 1000 items returned, fetchAllInitialValues should be passed as true.\n } as UseOpQueryOptions<T>;\n};\n\nconst useCreateMainDataOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n>({\n createDisabledOption,\n createOptionLabel,\n queryOptions,\n pathToData,\n pathToLabel,\n pathToValue,\n fetchAllInitialValues,\n debouncedQuery,\n numerifyOptionValues, // TEMP - until we can correctly type Selects\n}: UseCreateMainDataOptions<T, SelectData>) => {\n const mainDataQueryOptions = createMainDataQueryOptions({\n queryOptions,\n fetchAllInitialValues,\n debouncedQuery,\n });\n\n const { data, isLoading, isFetching } = useOpQuery(mainDataQueryOptions);\n\n return {\n isLoading,\n isFetching,\n options: createOptions({\n data,\n pathToData,\n pathToLabel,\n pathToValue,\n numerifyOptionValues,\n createDisabledOption,\n createOptionLabel,\n }),\n };\n};\n\nconst useCreateInitialValueQueryOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n Value extends SelectableValueTypes = SelectableValueTypes,\n>({\n valueProp,\n mainDataOptions,\n queryOptions,\n fetchAllInitialValues,\n}: CreateInitialValueQueryOptions<T, SelectData, Value>) => {\n // Store the initial value in a ref to prevent a different value from subsequent renders\n const initialValue = useRef(valueProp);\n\n /**\n * Make the initial value an array if it isn't already as we need to handle\n * both singular selects and multi selects.\n */\n const initialValueArray = initialValue.current\n ? Array.isArray(initialValue.current)\n ? initialValue.current\n : [initialValue.current]\n : [];\n\n // Find if there are any initial values that are not in the main data options\n const initialValuesWithoutOptions = difference(\n initialValueArray.map(Number),\n mainDataOptions.map(({ value }) => Number(value)),\n );\n\n // Make a deep clone of the query options to prevent mutation\n const clonedQueryOptions = cloneDeep(queryOptions);\n\n const { parametersArray, queriesIndex } =\n verifyQueryOptions(clonedQueryOptions);\n\n const enabled = Boolean(\n fetchAllInitialValues &&\n initialValuesWithoutOptions.length && // Nothing to query for\n queriesIndex !== -1, // If there is no query object, we can't add the filter\n );\n\n // Prevent the query if not enabled\n if (!enabled) {\n return {\n ...queryOptions,\n queryKey: initialValueArray, // Cache buster as cached data is returned based on the queryKey\n enabled: false,\n };\n }\n\n const queryParams = parametersArray[queriesIndex] as Record<string, any>;\n\n const { queryParamOverrides = {}, filterPath = 'id' } =\n typeof fetchAllInitialValues === 'object' ? fetchAllInitialValues : {};\n\n // Merge queryParamOverrides into queryParams\n Object.assign(queryParams, queryParamOverrides);\n\n const filterRegex = new RegExp(\n `\\\\b${filterPath}:\\\\([^)]*\\\\)|\\\\b${filterPath}:[^\\\\(\\\\s]+`,\n ); // Matches patterns like id:(1,2,3), id:4, or identity.id:(1)\n const formattedFilter = `${filterPath}:(${initialValueArray})`; // Format the new filter\n\n // Check if queryParams.filter exists\n queryParams.filter = queryParams.filter\n ? // If filter exists, check if there is a filter matching the filterPath\n queryParams.filter.match(filterRegex)\n ? // If there is, replace the existing one with the new formattedFilter\n queryParams.filter.replace(filterRegex, formattedFilter)\n : // If there isn't, append the new formattedFilter to the existing filter\n `${queryParams.filter} ${formattedFilter}`\n : // If filter doesn't exist, create a new filter with the formattedFilter\n formattedFilter;\n\n // Set the parameters to the updated parametersArray\n clonedQueryOptions.parameters = parametersArray;\n\n /**\n * Safety check to make sure we get all the options, but in reality we should only\n * have a max of 50 initial values. If we have more than that we really should be\n * using a transfer component and patch calls to update the data in the db.\n */\n clonedQueryOptions.getAll = true;\n\n return clonedQueryOptions;\n};\n\nconst useCreateInitialValueOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n Value extends SelectableValueTypes = SelectableValueTypes,\n>({\n valueProp,\n mainDataOptions,\n queryOptions,\n pathToData,\n pathToLabel,\n pathToValue,\n fetchAllInitialValues,\n createDisabledOption,\n createOptionLabel,\n numerifyOptionValues, // TEMP - until we can correctly type Selects\n}: UseCreateInitialValueOptions<T, SelectData, Value>) => {\n const initialDataQueryOptions = useCreateInitialValueQueryOptions({\n valueProp,\n mainDataOptions,\n queryOptions,\n fetchAllInitialValues,\n });\n\n const { data, isLoading } = useOpQuery(initialDataQueryOptions);\n\n return {\n isLoading,\n options: createOptions({\n data,\n pathToData,\n pathToLabel,\n pathToValue,\n numerifyOptionValues,\n createDisabledOption,\n createOptionLabel,\n }),\n };\n};\n\nconst createFinalOptions = ({\n mainDataOptions,\n initialValueOptions,\n debouncedQuery,\n}: CreateFinalOptions) => {\n /**\n * In order to be able to show all disabled items when searching, we need to\n * render the main data options and the initial values data options separately\n */\n\n /**\n * When there is a search query, remove all but the disabled initial options\n * as we need those to keep the tags disabled (unless someone can find a way\n * to keep the tags disabled without the corresponding option)\n */\n const finalInitialValueOptions = debouncedQuery\n ? initialValueOptions?.filter(({ disabled }) => {\n return disabled === true;\n })\n : initialValueOptions;\n\n // Combine the main data options and the initial value options\n const finalOptions = [...mainDataOptions, ...finalInitialValueOptions];\n\n // Deduplicate finalOptions based on a unique property, e.g., 'id'\n const dedupedFinalOptions = uniqBy(finalOptions, (item) => item.value);\n\n return {\n options: dedupedFinalOptions,\n };\n};\n\nexport const useCreateOptions = <\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n Value extends SelectableValueTypes = SelectableValueTypes,\n>({\n createDisabledOption,\n createOptionLabel,\n queryOptions,\n pathToData,\n pathToLabel,\n pathToValue,\n fetchAllInitialValues,\n numerifyOptionValues, // TEMP - until we can correctly type Selects\n valueProp,\n debouncedQuery,\n}: UseCreateOptions<T, SelectData, Value>) => {\n // Used for both functions to create options\n const sharedArgs = {\n queryOptions,\n pathToData,\n pathToLabel,\n pathToValue,\n fetchAllInitialValues,\n createDisabledOption,\n createOptionLabel,\n numerifyOptionValues,\n };\n\n const {\n options: mainDataOptions,\n isLoading: isMainDataLoading,\n isFetching: isMainDataFetching,\n } = useCreateMainDataOptions({\n debouncedQuery,\n ...sharedArgs,\n });\n\n const { options: initialValueOptions, isLoading: isInitialValueDataLoading } =\n useCreateInitialValueOptions({\n valueProp,\n mainDataOptions: mainDataOptions as Option<Value>[],\n ...sharedArgs,\n });\n\n const { options: dedupedFinalOptions } = createFinalOptions({\n mainDataOptions,\n initialValueOptions,\n debouncedQuery,\n });\n\n return {\n isLoading: isMainDataLoading || isInitialValueDataLoading,\n isFetching: isMainDataFetching,\n options: dedupedFinalOptions as Option<Value>[],\n };\n};\n","// The amount of items to fetch when fetching the main data for options\nexport const DEFAULT_LIMIT = 100;\n","import LoadingOutlined from '@ant-design/icons/LoadingOutlined';\nimport { useDebouncedState } from 'utils/customHooks/useDebouncedState';\nimport { OpDataFetchSelectProps } from './types';\nimport { OpSelect, SelectableValueTypes } from '../OpSelect/OpSelect';\nimport { useCreateOptions } from './helpers';\n\nexport const OpDataFetchSelect = <\n Value extends SelectableValueTypes,\n T extends keyof Api.ClientSpec,\n SelectData = Awaited<ReturnType<Api.Client[T]>>,\n>({\n className = '',\n testId = 'op-data-fetch-select',\n gtm,\n value: valueProp,\n numerifyOptionValues = false, // TEMP - until we can correctly type Selects\n\n // Props for fetching data and creating options\n createDisabledOption,\n createOptionLabel,\n queryOptions,\n pathToData = 'json.data',\n pathToLabel = 'name',\n pathToValue = 'id',\n fetchAllInitialValues = false,\n\n // Props passed through to OpSelect\n ...opSelectProps\n}: OpDataFetchSelectProps<T, SelectData, Value>) => {\n const [debouncedQuery, setQuery] = useDebouncedState('');\n\n const { isLoading, isFetching, options } = useCreateOptions({\n numerifyOptionValues,\n createDisabledOption,\n createOptionLabel,\n queryOptions,\n pathToData,\n pathToLabel,\n pathToValue,\n fetchAllInitialValues,\n valueProp,\n debouncedQuery,\n });\n\n /** Manipulating the value so that we make sure we don't have issues in non-ts\n * files. Doing this as Select will display the value if there is no option value\n * that matches (e.g. a number value passed will not match any of the coerced\n * option values [see code above]) */\n const finalValue = !valueProp\n ? valueProp\n : Array.isArray(valueProp)\n ? valueProp.map((v) =>\n numerifyOptionValues ? Number(v) || v : String(v),\n )\n : numerifyOptionValues\n ? Number(valueProp) || valueProp\n : String(valueProp);\n\n /**\n * If the Select mode is single (default mode), and the option for the\n * value is disabled, we should disable the Select so that the value\n * can't be changed.\n */\n const firstDisabledOption = options?.find(({ disabled }) => disabled);\n const isOptionForSingleModeValueDisabled = opSelectProps.mode\n ? false\n : Boolean(firstDisabledOption && firstDisabledOption.value === valueProp);\n\n const defaultProps = {\n className: `${className}`.trim(),\n testId,\n gtm,\n showSearch: true,\n filterOption: false, // Needed so options menu doesn't close on change\n optionFilterProp: 'label', // Defaulting to label as Select should always have options and antd docs recommend using label\n notFoundContent: isFetching ? <LoadingOutlined /> : undefined, // Pass undefined to trigger default behavior\n options,\n onSearch: (value: string) => setQuery(value),\n };\n\n const overrideProps = {\n loading: isFetching,\n disabled:\n opSelectProps.disabled ||\n (isLoading && !debouncedQuery.length) || // Can't disable if there is a query as Select loses focus and typing is interrupted\n isOptionForSingleModeValueDisabled,\n ...(firstDisabledOption && { allowClear: false }), // If an option is disabled, we don't want to allow clearing\n };\n\n // We duplicate the return here to allow type narrowing to work properly\n if (opSelectProps.mode) {\n return (\n <OpSelect\n // @ts-expect-error - OpSelect can actually handle numbers just fine, but we need to retype it\n value={finalValue}\n {...defaultProps}\n {...opSelectProps}\n onChange={(value, option) => {\n // Update the value if an onChange prop was passed\n opSelectProps.onChange?.(value, option);\n\n // Reset the query so we see all options again\n setQuery('');\n }}\n mode={opSelectProps.mode} // Keep this prop to ensure type narrowing\n {...overrideProps}\n />\n );\n }\n return (\n <OpSelect\n // @ts-expect-error - OpSelect can actually handle numbers just fine, but we need to retype it\n value={finalValue}\n {...defaultProps}\n {...opSelectProps}\n onChange={(value, option) => {\n // Update the value if an onChange prop was passed\n opSelectProps.onChange?.(value, option);\n\n // Reset the query so we see all options again\n setQuery('');\n }}\n {...overrideProps}\n />\n );\n};\n","import { createContext } from 'react';\nconst RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _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 AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n if (typeof value === 'number') {\n return \"\".concat(value).concat(CALC_UNIT);\n }\n return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n _inherits(CSSCalculator, _AbstractCalculator);\n var _super = _createSuper(CSSCalculator);\n function CSSCalculator(num, unitlessCssVar) {\n var _this;\n _classCallCheck(this, CSSCalculator);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"result\", '');\n _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n var numType = _typeof(num);\n _this.unitlessCssVar = unitlessCssVar;\n if (num instanceof CSSCalculator) {\n _this.result = \"(\".concat(num.result, \")\");\n } else if (numType === 'number') {\n _this.result = unit(num);\n } else if (numType === 'string') {\n _this.result = num;\n }\n return _this;\n }\n _createClass(CSSCalculator, [{\n key: \"add\",\n value: function add(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"sub\",\n value: function sub(num) {\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n }\n this.lowPriority = true;\n return this;\n }\n }, {\n key: \"mul\",\n value: function mul(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" * \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"div\",\n value: function div(num) {\n if (this.lowPriority) {\n this.result = \"(\".concat(this.result, \")\");\n }\n if (num instanceof CSSCalculator) {\n this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n } else if (typeof num === 'number' || typeof num === 'string') {\n this.result = \"\".concat(this.result, \" / \").concat(num);\n }\n this.lowPriority = false;\n return this;\n }\n }, {\n key: \"getResult\",\n value: function getResult(force) {\n return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n }\n }, {\n key: \"equal\",\n value: function equal(options) {\n var _this2 = this;\n var _ref = options || {},\n cssUnit = _ref.unit;\n var mergedUnit = true;\n if (typeof cssUnit === 'boolean') {\n mergedUnit = cssUnit;\n } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n return _this2.result.includes(cssVar);\n })) {\n mergedUnit = false;\n }\n this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n if (typeof this.lowPriority !== 'undefined') {\n return \"calc(\".concat(this.result, \")\");\n }\n return this.result;\n }\n }]);\n return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-time-picker{width:100%}.op-time-picker>.ant-picker-input>input{color:var(--colorText) !important}.op-time-picker:hover{border-color:var(--colorTextLabel) !important}.op-time-picker:focus{border-color:var(--colorPrimaryHover)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpTimePicker/OpTimePicker.scss\"],\"names\":[],\"mappings\":\"AAAA,gBACE,UAAA,CAEA,wCACE,iCAAA,CAGF,sBACE,6CAAA,CAGF,sBACE,qCAAA\",\"sourcesContent\":[\".op-time-picker {\\n width: 100%;\\n\\n & > .ant-picker-input > input {\\n color: var(--colorText) !important;\\n }\\n\\n &:hover {\\n border-color: var(--colorTextLabel) !important;\\n }\\n\\n &:focus {\\n border-color: var(--colorPrimaryHover);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"c51840077c684be0e7e13339f85cd4a9.js\";","import { defineIntegration } from '@sentry/core';\nimport { stripUrlQueryAndFragment, addContextToFrame, GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_LINES_OF_CONTEXT = 7;\n\nconst INTEGRATION_NAME = 'ContextLines';\n\nconst _contextLinesIntegration = ((options = {}) => {\n const contextLines = options.frameContextLines != null ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addSourceContext(event, contextLines);\n },\n };\n}) ;\n\n/**\n * Collects source context lines around the lines of stackframes pointing to JS embedded in\n * the current page's HTML.\n *\n * This integration DOES NOT work for stack frames pointing to JS files that are loaded by the browser.\n * For frames pointing to files, context lines are added during ingestion and symbolication\n * by attempting to download the JS files to the Sentry backend.\n *\n * Use this integration if you have inline JS code in HTML pages that can't be accessed\n * by our backend (e.g. due to a login-protected page).\n */\nconst contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\n/**\n * Processes an event and adds context lines.\n */\nfunction addSourceContext(event, contextLines) {\n const doc = WINDOW.document;\n const htmlFilename = WINDOW.location && stripUrlQueryAndFragment(WINDOW.location.href);\n if (!doc || !htmlFilename) {\n return event;\n }\n\n const exceptions = event.exception && event.exception.values;\n if (!exceptions || !exceptions.length) {\n return event;\n }\n\n const html = doc.documentElement.innerHTML;\n if (!html) {\n return event;\n }\n\n const htmlLines = ['<!DOCTYPE html>', '<html>', ...html.split('\\n'), '</html>'];\n\n exceptions.forEach(exception => {\n const stacktrace = exception.stacktrace;\n if (stacktrace && stacktrace.frames) {\n stacktrace.frames = stacktrace.frames.map(frame =>\n applySourceContextToFrame(frame, htmlLines, htmlFilename, contextLines),\n );\n }\n });\n\n return event;\n}\n\n/**\n * Only exported for testing\n */\nfunction applySourceContextToFrame(\n frame,\n htmlLines,\n htmlFilename,\n linesOfContext,\n) {\n if (frame.filename !== htmlFilename || !frame.lineno || !htmlLines.length) {\n return frame;\n }\n\n addContextToFrame(htmlLines, frame, linesOfContext);\n\n return frame;\n}\n\nexport { applySourceContextToFrame, contextLinesIntegration };\n//# sourceMappingURL=contextlines.js.map\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\n\n/**![info-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zMiA2NjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQ1NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MnptLTMyLTM0NGE0OC4wMSA0OC4wMSAwIDAxMC05NiA0OC4wMSA0OC4wMSAwIDAxMCA5NnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(InfoCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'InfoCircleFilled';\n}\nexport default RefIcon;","import { SDK_VERSION } from './version.js';\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const versionedCarrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n return versionedCarrier[name] || (versionedCarrier[name] = creator());\n}\n\nexport { GLOBAL_OBJ, getGlobalSingleton };\n//# sourceMappingURL=worldwide.js.map\n","module.exports = __webpack_public_path__ + \"2287e0a9970175f8e26f811b688d2d36.js\";","// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nvar _react = /*#__PURE__*/ _interop_require_wildcard(require(\"react\"));\nvar _RightOutlined = /*#__PURE__*/ _interop_require_default(require(\"@ant-design/icons-svg/lib/asn/RightOutlined\"));\nvar _AntdIcon = /*#__PURE__*/ _interop_require_default(require(\"../components/AntdIcon\"));\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nvar RightOutlined = function(props, ref) {\n return /*#__PURE__*/ _react.createElement(_AntdIcon.default, _object_spread_props(_object_spread({}, props), {\n ref: ref,\n icon: _RightOutlined.default\n }));\n};\n/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */ var RefIcon = /*#__PURE__*/ _react.forwardRef(RightOutlined);\nif (process.env.NODE_ENV !== \"production\") {\n RefIcon.displayName = \"RightOutlined\";\n}\nvar _default = RefIcon;\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","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import React from 'react';\nexport function isFragment(child) {\n return child && /*#__PURE__*/React.isValidElement(child) && child.type === React.Fragment;\n}\nexport const replaceElement = (element, replacement, props) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n};\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","import Helium from './helium';\n\nconst ensureObject = (value: any) => {\n // If value is not an object or is null, return an empty object\n if (typeof value !== 'object' || !value) {\n console.error('ensureObject: Expected object, got', value);\n return {};\n }\n\n return value;\n};\n\n/**\n * @param apiEndpointName\n * @param parameters\n * @returns An object containing the following keys:\n *\n * - parametersArray: parameters with payload and query objects added if needed\n * - withPayload: 0 if no payload, 1 if has a JSON payload, 2 if has a multipart/form-data payload\n * - withQuery: 0 if no query, 1 if has query\n */\nexport const ensurePayloadAndQuery = <T extends keyof Api.ClientSpec>(\n apiEndpointName: T,\n parameters?: Parameters<Api.Client[T]>,\n): {\n parametersArray: Parameters<Api.Client[T]>;\n withPayload: 0 | 1 | 2;\n withQuery: 0 | 1;\n} => {\n const api = Helium.client[apiEndpointName] satisfies Api.Client[T];\n\n // Throw an error if an invalid api endpoint name\n if (!api) {\n throw new Error(`Invalid Helium client endpoint: \\`${apiEndpointName}\\``);\n }\n\n const parametersArray = parameters ? [...parameters] : [];\n\n const [, , pathParams, , withPayload, withQuery] =\n Helium.client.spec[apiEndpointName];\n const expectedParametersLength =\n pathParams.length +\n Number(Boolean(withPayload)) +\n Number(Boolean(withQuery));\n\n // Throw an error if too many parameters are passed in\n if (parametersArray.length > expectedParametersLength) {\n throw new Error(\n `Critical: ensurePayloadAndQuery received too many parameters for API endpoint ${apiEndpointName}`,\n );\n }\n\n if (parametersArray.length < pathParams.length) {\n // We don't even have all the path params (and we should)\n console.error(\n `ensurePayloadAndQuery: Missing path parameters for API endpoint ${apiEndpointName}`,\n );\n\n // Path param placeholders become undefined\n parametersArray.push(\n ...Array(pathParams.length - parametersArray.length).fill(undefined),\n );\n\n // Payload and query placeholders become empty objects\n if (withPayload) {\n parametersArray.push({});\n }\n\n if (withQuery) {\n parametersArray.push({});\n }\n\n return {\n parametersArray: parametersArray as Parameters<Api.Client[T]>,\n withPayload,\n withQuery,\n };\n }\n\n if (parametersArray.length < expectedParametersLength) {\n // We have at least the path params, add empty objects for payload and query as necessary\n\n // Payload and query placeholders become empty objects\n parametersArray.push(\n ...Array(expectedParametersLength - parametersArray.length).fill({}),\n );\n }\n\n // At this point, we have the right number of parameters...\n\n // Ensure payload and query are not null or undefined\n if (withPayload && withQuery) {\n // Needs both\n parametersArray[parametersArray.length - 2] = ensureObject(\n parametersArray[parametersArray.length - 2],\n );\n parametersArray[parametersArray.length - 1] = ensureObject(\n parametersArray[parametersArray.length - 1],\n );\n } else if (withPayload || withQuery) {\n // Just needs one\n parametersArray[parametersArray.length - 1] = ensureObject(\n parametersArray[parametersArray.length - 1],\n );\n }\n\n return {\n parametersArray: parametersArray as Parameters<Api.Client[T]>,\n withPayload,\n withQuery,\n };\n};\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { logger } from './logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFunction(func) {\n return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFunction(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFunction(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport { isNativeFunction, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","module.exports = __webpack_public_path__ + \"c0a8aa1d5e0611259e47c2008cb203ee.js\";","\"use client\";\n\nimport React, { useContext } from 'react';\nimport Button from '../../button';\nimport { ModalContext } from '../context';\nconst NormalCancelBtn = () => {\n const {\n cancelButtonProps,\n cancelTextLocale,\n onCancel\n } = useContext(ModalContext);\n return /*#__PURE__*/React.createElement(Button, Object.assign({\n onClick: onCancel\n }, cancelButtonProps), cancelTextLocale);\n};\nexport default NormalCancelBtn;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport Button from '../../button';\nimport { convertLegacyProps } from '../../button/buttonHelpers';\nimport { ModalContext } from '../context';\nconst NormalOkBtn = () => {\n const {\n confirmLoading,\n okButtonProps,\n okType,\n okTextLocale,\n onOk\n } = useContext(ModalContext);\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: onOk\n }, okButtonProps), okTextLocale);\n};\nexport default NormalOkBtn;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport { useLocale } from '../locale';\nimport NormalCancelBtn from './components/NormalCancelBtn';\nimport NormalOkBtn from './components/NormalOkBtn';\nimport { ModalContextProvider } from './context';\nimport { getConfirmLocale } from './locale';\nexport function renderCloseIcon(prefixCls, closeIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n}\nexport const Footer = props => {\n const {\n okText,\n okType = 'primary',\n cancelText,\n confirmLoading,\n onOk,\n onCancel,\n okButtonProps,\n cancelButtonProps,\n footer\n } = props;\n const [locale] = useLocale('Modal', getConfirmLocale());\n // ================== Locale Text ==================\n const okTextLocale = okText || (locale === null || locale === void 0 ? void 0 : locale.okText);\n const cancelTextLocale = cancelText || (locale === null || locale === void 0 ? void 0 : locale.cancelText);\n // ================= Context Value =================\n const btnCtxValue = {\n confirmLoading,\n okButtonProps,\n cancelButtonProps,\n okTextLocale,\n cancelTextLocale,\n okType,\n onOk,\n onCancel\n };\n const btnCtxValueMemo = React.useMemo(() => btnCtxValue, _toConsumableArray(Object.values(btnCtxValue)));\n let footerNode;\n if (typeof footer === 'function' || typeof footer === 'undefined') {\n footerNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NormalCancelBtn, null), /*#__PURE__*/React.createElement(NormalOkBtn, null));\n if (typeof footer === 'function') {\n footerNode = footer(footerNode, {\n OkBtn: NormalOkBtn,\n CancelBtn: NormalCancelBtn\n });\n }\n footerNode = /*#__PURE__*/React.createElement(ModalContextProvider, {\n value: btnCtxValueMemo\n }, footerNode);\n } else {\n footerNode = footer;\n }\n return /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: false\n }, footerNode);\n};","import any from \"./any\";\nimport array from \"./array\";\nimport boolean from \"./boolean\";\nimport date from \"./date\";\nimport enumValidator from \"./enum\";\nimport float from \"./float\";\nimport integer from \"./integer\";\nimport method from \"./method\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport pattern from \"./pattern\";\nimport regexp from \"./regexp\";\nimport required from \"./required\";\nimport string from \"./string\";\nimport type from \"./type\";\nexport default {\n string: string,\n method: method,\n number: number,\n boolean: boolean,\n regexp: regexp,\n integer: integer,\n float: float,\n array: array,\n object: object,\n enum: enumValidator,\n pattern: pattern,\n date: date,\n url: type,\n hex: type,\n email: type,\n required: required,\n any: any\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-range-picker{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpRangePicker/OpRangePicker.scss\"],\"names\":[],\"mappings\":\"AAAA,iBACE,UAAA\",\"sourcesContent\":[\".op-range-picker {\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","export default __webpack_public_path__ + \"assets/favicons/android-chrome-512x512.png\";","/*\n *\n * App constants\n *\n */\n\nimport {\n appMarketplaceRoute,\n alarmDashboardRoute,\n hardwareDashboardRoute,\n entryDashboardRoute,\n buildingsRoute,\n licensesRoute,\n usersTableRoute,\n userSchedulesTableRoute,\n userCustomFieldsTableRoute,\n userCredentialsManagementRoute,\n presenceReportRoute,\n usersImportRoute,\n rolesRoute,\n sitesTableRoute,\n zonesTableRoute,\n entriesTableRoute,\n entryStatesTableRoute,\n entrySchedulesTableRoute,\n acusTableRoute,\n readersTableRoute,\n activityLogsRoute,\n userActivityRoute,\n entryActivityRoute,\n userActivitySummaryRoute,\n entryActivitySummaryRoute,\n entryAccessAuditRoute,\n userAccessAuditRoute,\n portalAuditReportRoute,\n integrationsRoute,\n mobileAppSettingsRoute,\n badgeTemplatesTablePageRoute,\n intercomUserDirectoryRoute,\n quickStartRoute,\n accountPageRoute,\n releaseNotesRoute,\n masterDashboardRoute,\n masterOrgTableRoute,\n masterIdentitiesTableRoute,\n masterRolesTableRoute,\n masterAcusTableRoute,\n masterEntriesTableRoute,\n masterThirdPartyDevicesRoute,\n masterAllegionFobsRoute,\n masterFeatureFlagsTableRoute,\n masterPortalAuditReportRoute,\n masterAcuSoftwareReportRoute,\n masterReleaseNotesRoute,\n myAppsTableRoute,\n partnerRequestsTableRoute,\n alertSettingsRoute,\n lockdownTableRoute,\n camerasRoute,\n cameraDetailsRoute,\n subscriptionsTableRoute,\n visualActivityReportRoute,\n wirelessLockGatewaysTableRoute,\n wirelessLocksTableRoute,\n deviceUpdateManagement,\n partnerAcusTableRoute,\n partnerDashboardRoute,\n partnerStoreRoute,\n partnerSubscriptionRenewalsTableRoute,\n partnerOrgTableRoute,\n partnerOrgCreateRoute,\n scheduledReportsRoute,\n cameraDeeplinkRedirectRoute,\n alarmReportRoute,\n musterReportsRoute,\n accessGroupsRoute,\n activityDashboardRoute,\n videoIntercomReadersRoute,\n videoReadersRoute,\n occupancyReportRoute,\n alarmConfigurationsRoute,\n partnerThirdPartyDevicesRoute,\n partnerEntriesTableRoute,\n partnerBillingRoute,\n chatRoute,\n} from '../constants';\n\nexport const CHECK_ACCESS_TOKEN = 'app/App/CHECK_ACCESS_TOKEN';\nexport const CHECK_INVITE_TOKEN = 'app/App/CHECK_INVITE_TOKEN';\n// export const CHECK_USER_RESET_TOKEN = 'app/App/CHECK_USER_RESET_TOKEN'\nexport const INIT_STORE_FROM_COOKIE = 'app/App/INIT_STORE_FROM_COOKIE';\n\nexport const LOGIN_SSO_CALLBACK = 'app/App/LOGIN_SSO_CALLBACK';\nexport const LOGIN_SUCCESS = 'app/App/LOGIN_SUCCESS';\nexport const LOGOUT_REQUEST = 'app/App/LOGOUT_REQUEST';\nexport const LOGOUT_SUCCESS = 'app/App/LOGOUT_SUCCESS';\nexport const LOGIN_REFRESHED = 'app/App/LOGIN_REFRESHED';\n\n// new maintenance mode stuff\nexport const CHECK_FOR_MAINTENANCE_MODE = 'app/App/CHECK_FOR_MAINTENANCE_MODE';\nexport const CHECK_VERSION_NUMBER = 'app/App/CHECK_VERSION_NUMBER';\nexport const SET_MAINTENANCE_MODE = 'app/App/SET_MAINTENANCE_MODE';\nexport const SET_UPDATE_REQUIRED = 'app/App/SET_UPDATE_REQUIRED';\nexport const SET_DISABLED_ROUTES = 'app/App/SET_DISABLED_ROUTES';\nexport const CHECK_DISABLED_ROUTES = 'app/App/CHECK_DISABLED_ROUTES';\n\nexport const SET_CURRENT_ORG = 'app/App/SET_CURRENT_ORG';\nexport const SET_CURRENT_ORG_NAME = 'app/App/SET_CURRENT_ORG_NAME';\n\nexport const APP_ERROR = 'app/App/APP_ERROR';\n\nexport const SET_ORG_DROPDOWN_VISIBILITY =\n 'app/App/SET_ORG_DROPDOWN_VISIBILITY';\nexport const SET_LOCKDOWN_DROPDOWN_VISIBILITY =\n 'app/App/SET_LOCKDOWN_DROPDOWN_VISIBILITY';\n\nexport const SET_ALERT = 'app/Authenticated/SET_ALERT';\nexport const CLEAR_ALERT = 'app/Authenticated/CLEAR_ALERT';\n\nexport const INITIAL_FORM_STATE = 0;\nexport const LEAVING_FORM_STATE = 1;\nexport const SUBMITTING_FORM_STATE = 2;\nexport const LEFT_FORM_STATE = 3;\nexport const SUBMITTED_FORM_STATE = 4;\n\nexport const SET_ERROR_MESSAGE = 'app/Authenticated/SET_ERROR_MESSAGE';\n\nexport const SET_ORG_USER_PROFILE_IMAGE_URL =\n 'app/App/SET_ORG_USER_PROFILE_IMAGE_URL';\nexport const SET_IDENTITY_INFO = 'app/App/SET_IDENTITY_INFO';\n\nexport const SET_CONFIRMATION_PROPS = 'app/App/SET_CONFIRMATION_PROPS';\nexport const CHECK_INITIAL_LOGIN_FOR_EXISTING_COOKIE =\n 'app/App/CHECK_INITIAL_LOGIN_FOR_EXISTING_COOKIE';\n\nexport const SET_PUSH_NOTIFICATION_IS_ENABLED =\n 'app/App/SET_PUSH_NOTIFICATION_IS_ENABLED';\n\nexport const SET_PREFETCHED_VIDEOCALL_AUTH =\n 'app/App/SET_PREFETCHED_VIDEOCALL_AUTH';\n\nexport const PREFETCH_DEVICE_VIDEOCALL_AUTH =\n 'app/App/PREFETCH_DEVICE_VIDEOCALL_AUTH';\n\nexport const RESET_PREFETCHED_VIDEOCALL_AUTH =\n 'app/App/RESET_PREFETCHED_VIDEOCALL_AUTH';\n\nexport const SET_CURRENT_USER_PREFERENCES =\n 'app/App/SET_CURRENT_USER_PREFERENCES';\n\nexport const FETCH_GET_MFA_CREDENTIALS = 'app/App/FETCH_GET_MFA_CREDENTIALS';\n\nexport const REQUEST_SWITCH_ORG = 'app/App/REQUEST_SWITCH_ORG';\n\nexport const MENUITEMS_ROUTES = [\n partnerDashboardRoute,\n partnerStoreRoute,\n partnerOrgTableRoute,\n partnerOrgCreateRoute,\n partnerSubscriptionRenewalsTableRoute,\n partnerRequestsTableRoute,\n partnerAcusTableRoute,\n partnerThirdPartyDevicesRoute,\n partnerEntriesTableRoute,\n partnerBillingRoute,\n activityDashboardRoute,\n alarmDashboardRoute,\n entryDashboardRoute,\n hardwareDashboardRoute,\n camerasRoute,\n cameraDetailsRoute,\n cameraDeeplinkRedirectRoute,\n usersTableRoute,\n usersImportRoute,\n accessGroupsRoute,\n rolesRoute,\n userSchedulesTableRoute,\n userCustomFieldsTableRoute,\n sitesTableRoute,\n buildingsRoute,\n zonesTableRoute,\n entriesTableRoute,\n entryStatesTableRoute,\n entrySchedulesTableRoute,\n lockdownTableRoute,\n acusTableRoute,\n readersTableRoute,\n wirelessLocksTableRoute,\n wirelessLockGatewaysTableRoute,\n videoReadersRoute,\n videoIntercomReadersRoute,\n deviceUpdateManagement,\n activityLogsRoute,\n alarmReportRoute,\n userCredentialsManagementRoute,\n entryAccessAuditRoute,\n entryActivityRoute,\n entryActivitySummaryRoute,\n musterReportsRoute,\n occupancyReportRoute,\n portalAuditReportRoute,\n scheduledReportsRoute,\n userAccessAuditRoute,\n userActivityRoute,\n userActivitySummaryRoute,\n visualActivityReportRoute,\n appMarketplaceRoute,\n myAppsTableRoute,\n integrationsRoute,\n alarmConfigurationsRoute,\n subscriptionsTableRoute,\n alertSettingsRoute,\n mobileAppSettingsRoute,\n badgeTemplatesTablePageRoute,\n intercomUserDirectoryRoute,\n presenceReportRoute,\n masterDashboardRoute,\n masterOrgTableRoute,\n masterIdentitiesTableRoute,\n masterRolesTableRoute,\n masterAcusTableRoute,\n masterEntriesTableRoute,\n masterThirdPartyDevicesRoute,\n masterAllegionFobsRoute,\n masterFeatureFlagsTableRoute,\n masterPortalAuditReportRoute,\n masterAcuSoftwareReportRoute,\n masterReleaseNotesRoute,\n accountPageRoute,\n licensesRoute,\n quickStartRoute,\n releaseNotesRoute,\n chatRoute,\n];\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","module.exports = __webpack_public_path__ + \"ec901efce9bc8572f27155236a447e62.js\";","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i<t?i+7:i)-t;return this.$utils().u(e)?n:this.subtract(n,\"day\").add(e,\"day\")}}}));","'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","module.exports = __webpack_public_path__ + \"1875ecdf54e78b5f07ff1bd944cf794b.js\";","import intersection from 'lodash/intersection';\nimport { useCallback } from 'react';\nimport { useOpQuery } from './useOpQuery';\nimport { useHasFeatures } from './useHasFeatures';\n\nexport const useIsRestrictedBySiteSpecificRole = (orgId: number) => {\n const { hasFeatures: orgHasUserSitePartitioningFeature } = useHasFeatures(\n orgId,\n ['userSitePartitioning'],\n );\n\n // Determine the sites the logged in user has access to\n const { data: orgSites } = useOpQuery({\n apiEndpointName: 'listSites',\n parameters: [orgId],\n select: (heliumResponse) => heliumResponse.json.data,\n enabled: Boolean(orgId && orgHasUserSitePartitioningFeature),\n });\n\n // Need to wrap in useCallback to avoid rerenders (specifically Building > Units > edit)\n return useCallback(\n (siteIds?: number[]) => {\n const orgSiteIds = (orgSites || []).map(({ id }: { id: number }) => id);\n\n // If the org doesn't have the userSitePartitioning feature, the user is not restricted\n if (!orgHasUserSitePartitioningFeature) return false;\n\n // If the org has the feature but doesn't have access to any sites, the user is restricted\n if (!orgSiteIds.length) return true;\n\n // If the user has no site associations, the user is not restricted\n if (!siteIds?.length) return false;\n\n // If the user has site associations but none match the org's sites, the user is restricted\n return intersection(siteIds, orgSiteIds).length === 0;\n },\n [orgHasUserSitePartitioningFeature, orgSites],\n );\n};\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","module.exports = __webpack_public_path__ + \"3b544bb2c5a4e7b225a4b50235a0fd6d.js\";","export const defaultPresetColors = {\n blue: '#1677FF',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n /**\n * @deprecated Use magenta instead\n */\n pink: '#EB2F96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false,\n // Motion\n motion: true\n});\nexport default seedToken;","var ListCache = require('./_ListCache');\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\nmodule.exports = stackClear;\n","module.exports = __webpack_public_path__ + \"4502463be1912caf44ea4cb0af02b944.js\";","module.exports = __webpack_public_path__ + \"03a5f5b2b97a8fc289399d92fba810d0.js\";","module.exports = __webpack_public_path__ + \"2f55cddc8eb85b63ee5b4ce0e5488230.js\";","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SaveOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\" } }] }, \"name\": \"save\", \"theme\": \"outlined\" };\nexports.default = SaveOutlined;\n","module.exports = __webpack_public_path__ + \"191feb6103c36b202bc01ba262916cdf.js\";","var trimmedEndIndex = require('./_trimmedEndIndex');\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\nmodule.exports = baseTrim;\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n _defineProperty(this, \"formHooked\", false);\n _defineProperty(this, \"forceRootUpdate\", void 0);\n _defineProperty(this, \"subscribable\", true);\n _defineProperty(this, \"store\", {});\n _defineProperty(this, \"fieldEntities\", []);\n _defineProperty(this, \"initialValues\", {});\n _defineProperty(this, \"callbacks\", {});\n _defineProperty(this, \"validateMessages\", null);\n _defineProperty(this, \"preserve\", null);\n _defineProperty(this, \"lastValidatePromise\", null);\n _defineProperty(this, \"getForm\", function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n });\n // ======================== Internal Hooks ========================\n _defineProperty(this, \"getInternalHooks\", function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n });\n _defineProperty(this, \"useSubscribe\", function (subscribable) {\n _this.subscribable = subscribable;\n });\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n _defineProperty(this, \"prevWithoutPreserves\", null);\n /**\n * First time `setInitialValues` should update store with initial value\n */\n _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 || _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n });\n _defineProperty(this, \"destroyForm\", function (clearOnDestroy) {\n if (clearOnDestroy) {\n // destroy form reset store\n _this.updateStore({});\n } else {\n // Fill preserve fields\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n }\n });\n _defineProperty(this, \"getInitialValue\", function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n });\n _defineProperty(this, \"setCallbacks\", function (callbacks) {\n _this.callbacks = callbacks;\n });\n _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n _this.validateMessages = validateMessages;\n });\n _defineProperty(this, \"setPreserve\", function (preserve) {\n _this.preserve = preserve;\n });\n // ============================= Watch ============================\n _defineProperty(this, \"watchList\", []);\n _defineProperty(this, \"registerWatch\", function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n });\n _defineProperty(this, \"notifyWatch\", function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n });\n // ========================== Dev Warning =========================\n _defineProperty(this, \"timeoutId\", null);\n _defineProperty(this, \"warningUnhooked\", function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n });\n // ============================ Store =============================\n _defineProperty(this, \"updateStore\", function (nextStore) {\n _this.store = nextStore;\n });\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n _defineProperty(this, \"getFieldEntities\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n });\n _defineProperty(this, \"getFieldsMap\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n });\n _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n });\n _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _isListField, _ref3;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _isList, _ref2;\n if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n return;\n }\n } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n });\n _defineProperty(this, \"getFieldValue\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n });\n _defineProperty(this, \"getFieldsError\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n });\n _defineProperty(this, \"getFieldError\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n });\n _defineProperty(this, \"getFieldWarning\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n });\n _defineProperty(this, \"isFieldsTouched\", function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(function (entity) {\n return isFieldTouched(entity) || entity.isList();\n }) : fieldEntities.some(isFieldTouched);\n }\n\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref4) {\n var value = _ref4.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n });\n _defineProperty(this, \"isFieldTouched\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n });\n _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n });\n _defineProperty(this, \"isFieldValidating\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n });\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n var isListField = field.isListField();\n\n // Set `initialValue`\n if (!isListField && (!info.skipExist || originValue === undefined)) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n });\n _defineProperty(this, \"resetFields\", function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"setFields\", function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"getFields\", function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n });\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n _defineProperty(this, \"initEntityValue\", function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n });\n _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n });\n _defineProperty(this, \"registerField\", function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n });\n _defineProperty(this, \"dispatch\", function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n });\n _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref5) {\n var onStoreChange = _ref5.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n });\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n });\n _defineProperty(this, \"updateValue\", function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n });\n // Let all child Field get update.\n _defineProperty(this, \"setFieldsValue\", function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n });\n _defineProperty(this, \"setFieldValue\", function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n });\n _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n });\n _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref6) {\n var name = _ref6.name,\n errors = _ref6.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref7) {\n var fieldName = _ref7.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n });\n // =========================== Validate ===========================\n _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n // Collect result in promise list\n var promiseList = [];\n\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var _ref8 = options || {},\n recursive = _ref8.recursive,\n dirty = _ref8.dirty;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n\n // Skip if only validate dirty field\n if (dirty && !field.isFieldDirty()) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref9) {\n var warningOnly = _ref9.rule.warningOnly,\n errors = _ref9.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref10) {\n var name = _ref10.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n });\n // ============================ Submit ============================\n _defineProperty(this, \"submit\", function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n });\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change <Router history>\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Prompt> outside a <Router>\") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Redirect> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Route> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with <StaticRouter>\", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Switch> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","module.exports = __webpack_public_path__ + \"9ed8c3550b5c3c1e878d0692f0338cb7.js\";","/**\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\nmodule.exports = isArray;\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","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","module.exports = __webpack_public_path__ + \"b02d982ccb1011197a5a24800b178a0a.js\";","\"use client\";\n\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/buttonHelpers';\nfunction isThenable(thing) {\n return !!(thing === null || thing === void 0 ? void 0 : thing.then);\n}\nconst ActionButton = props => {\n const {\n type,\n children,\n prefixCls,\n buttonProps,\n close,\n autoFocus,\n emitEvent,\n isSilent,\n quitOnNullishReturnValue,\n actionFn\n } = props;\n const clickedRef = React.useRef(false);\n const buttonRef = React.useRef(null);\n const [loading, setLoading] = useState(false);\n const onInternalClose = function () {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(() => {\n let timeoutId = null;\n if (autoFocus) {\n timeoutId = setTimeout(() => {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n const handlePromiseOnOk = returnValueOfOnOk => {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, e => {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n // Do not throw if is `await` mode\n if (isSilent === null || isSilent === void 0 ? void 0 : isSilent()) {\n return;\n }\n return Promise.reject(e);\n });\n };\n const onClick = e => {\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n let returnValueOfOnOk;\n if (emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!isThenable(returnValueOfOnOk)) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n return /*#__PURE__*/React.createElement(Button, Object.assign({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: buttonRef\n }), children);\n};\nexport default ActionButton;","\"use strict\";var r=require(\"react\");module.exports=function(e,t){for(var n=[],u=2;u<arguments.length;u++)n[u-2]=arguments[u];var c=r.useRef();r.useEffect((function(){c.current=e}),[e]),r.useEffect((function(){if(null!=t){var r=setInterval((function(){c.current&&c.current.apply(c,n)}),t);return function(){return clearInterval(r)}}}),[t])};\n","module.exports = __webpack_public_path__ + \"1533058f0ce13acdaa8d5bdc7d147bef.js\";","function _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}\nexport { _nonIterableSpread as default };","'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","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.form-buttons{width:100%;padding:0.2857142857rem 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/FormButtons.scss\"],\"names\":[],\"mappings\":\"AAEA,cACE,UAAA,CACA,yBAAA\",\"sourcesContent\":[\"@use 'assets/scss/common';\\n\\n.form-buttons {\\n width: 100%;\\n padding: common.toRem(4) 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"2aa392a501973ebfcea38239a45ed8e7.js\";","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport useToken from '../useToken';\nconst useResetIconStyle = (iconPrefixCls, csp) => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls],\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce,\n layer: {\n name: 'antd'\n }\n }, () => [{\n [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useResetIconStyle;","'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","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\n\n/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RightOutlined';\n}\nexport default RefIcon;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classnames from 'classnames';\nimport React from 'react';\nvar PanelContent = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n forceRender = props.forceRender,\n className = props.className,\n style = props.style,\n children = props.children,\n isActive = props.isActive,\n role = props.role,\n customizeClassNames = props.classNames,\n styles = props.styles;\n var _React$useState = React.useState(isActive || forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n rendered = _React$useState2[0],\n setRendered = _React$useState2[1];\n React.useEffect(function () {\n if (forceRender || isActive) {\n setRendered(true);\n }\n }, [forceRender, isActive]);\n if (!rendered) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: classnames(\"\".concat(prefixCls, \"-content\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-content-active\"), isActive), \"\".concat(prefixCls, \"-content-inactive\"), !isActive), className),\n style: style,\n role: role\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-content-box\"), customizeClassNames === null || customizeClassNames === void 0 ? void 0 : customizeClassNames.body),\n style: styles === null || styles === void 0 ? void 0 : styles.body\n }, children));\n});\nPanelContent.displayName = 'PanelContent';\nexport default PanelContent;","module.exports = __webpack_public_path__ + \"6a851f05f1f4a974e02fe23eac2bad4e.js\";","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nexport var token2CSSVar = function token2CSSVar(token) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return \"--\".concat(prefix ? \"\".concat(prefix, \"-\") : '').concat(token).replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z0-9]+)/g, '$1-$2').replace(/([a-z])([A-Z0-9])/g, '$1-$2').toLowerCase();\n};\nexport var serializeCSSVar = function serializeCSSVar(cssVars, hashId, options) {\n if (!Object.keys(cssVars).length) {\n return '';\n }\n return \".\".concat(hashId).concat(options !== null && options !== void 0 && options.scope ? \".\".concat(options.scope) : '', \"{\").concat(Object.entries(cssVars).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n return \"\".concat(key, \":\").concat(value, \";\");\n }).join(''), \"}\");\n};\nexport var transformToken = function transformToken(token, themeKey, config) {\n var cssVars = {};\n var result = {};\n Object.entries(token).forEach(function (_ref3) {\n var _config$preserve, _config$ignore;\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n if (config !== null && config !== void 0 && (_config$preserve = config.preserve) !== null && _config$preserve !== void 0 && _config$preserve[key]) {\n result[key] = value;\n } else if ((typeof value === 'string' || typeof value === 'number') && !(config !== null && config !== void 0 && (_config$ignore = config.ignore) !== null && _config$ignore !== void 0 && _config$ignore[key])) {\n var _config$unitless;\n var cssVar = token2CSSVar(key, config === null || config === void 0 ? void 0 : config.prefix);\n cssVars[cssVar] = typeof value === 'number' && !(config !== null && config !== void 0 && (_config$unitless = config.unitless) !== null && _config$unitless !== void 0 && _config$unitless[key]) ? \"\".concat(value, \"px\") : String(value);\n result[key] = \"var(\".concat(cssVar, \")\");\n }\n });\n return [result, serializeCSSVar(cssVars, themeKey, {\n scope: config === null || config === void 0 ? void 0 : config.scope\n })];\n};","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","module.exports = __webpack_public_path__ + \"e5dec17f3116be7e2b2307e43cd14e86.js\";","module.exports = __webpack_public_path__ + \"e0c565aadda4787ba4ef4456c0a7ee29.js\";","import { addXhrInstrumentationHandler, addPerformanceInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { instrumentFetchRequest, spanToJSON, hasTracingEnabled, setHttpStatus, getActiveSpan, startInactiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SentryNonRecordingSpan, getClient, getCurrentScope, getIsolationScope, spanToTraceHeader, getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromClient } from '@sentry/core';\nimport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseUrl, browserPerformanceTimeOrigin, generateSentryTraceHeader, dynamicSamplingContextToSentryBaggageHeader, BAGGAGE_HEADER_NAME, stringMatchesSomePattern } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n\n/** Options for Request Instrumentation */\n\nconst responseToSpanId = new WeakMap();\nconst spanIdToEndTimestamp = new Map();\n\nconst defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n enableHTTPTimings: true,\n};\n\n/** Registers span creators for xhr and fetch requests */\nfunction instrumentOutgoingRequests(client, _options) {\n const { traceFetch, traceXHR, shouldCreateSpanForRequest, enableHTTPTimings, tracePropagationTargets } = {\n traceFetch: defaultRequestInstrumentationOptions.traceFetch,\n traceXHR: defaultRequestInstrumentationOptions.traceXHR,\n ..._options,\n };\n\n const shouldCreateSpan =\n typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_) => true;\n\n const shouldAttachHeadersWithTargets = (url) => shouldAttachHeaders(url, tracePropagationTargets);\n\n const spans = {};\n\n if (traceFetch) {\n // Keeping track of http requests, whose body payloads resolved later than the intial resolved request\n // e.g. streaming using server sent events (SSE)\n client.addEventProcessor(event => {\n if (event.type === 'transaction' && event.spans) {\n event.spans.forEach(span => {\n if (span.op === 'http.client') {\n const updatedTimestamp = spanIdToEndTimestamp.get(span.span_id);\n if (updatedTimestamp) {\n span.timestamp = updatedTimestamp / 1000;\n spanIdToEndTimestamp.delete(span.span_id);\n }\n }\n });\n }\n return event;\n });\n\n addFetchEndInstrumentationHandler(handlerData => {\n if (handlerData.response) {\n const span = responseToSpanId.get(handlerData.response);\n if (span && handlerData.endTimestamp) {\n spanIdToEndTimestamp.set(span, handlerData.endTimestamp);\n }\n }\n });\n\n addFetchInstrumentationHandler(handlerData => {\n const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n\n if (handlerData.response && handlerData.fetchData.__span) {\n responseToSpanId.set(handlerData.response, handlerData.fetchData.__span);\n }\n\n // We cannot use `window.location` in the generic fetch instrumentation,\n // but we need it for reliable `server.address` attribute.\n // so we extend this in here\n if (createdSpan) {\n const fullUrl = getFullURL(handlerData.fetchData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n createdSpan.setAttributes({\n 'http.url': fullUrl,\n 'server.address': host,\n });\n }\n\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n\n if (traceXHR) {\n addXhrInstrumentationHandler(handlerData => {\n const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n if (enableHTTPTimings && createdSpan) {\n addHTTPTimings(createdSpan);\n }\n });\n }\n}\n\nfunction isPerformanceResourceTiming(entry) {\n return (\n entry.entryType === 'resource' &&\n 'initiatorType' in entry &&\n typeof (entry ).nextHopProtocol === 'string' &&\n (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span) {\n const { url } = spanToJSON(span).data || {};\n\n if (!url || typeof url !== 'string') {\n return;\n }\n\n const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n entries.forEach(entry => {\n if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n const spanData = resourceTimingEntryToSpanData(entry);\n spanData.forEach(data => span.setAttribute(...data));\n // In the next tick, clean this handler up\n // We have to wait here because otherwise this cleans itself up before it is fully done\n setTimeout(cleanup);\n }\n });\n });\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nfunction extractNetworkProtocol(nextHopProtocol) {\n let name = 'unknown';\n let version = 'unknown';\n let _name = '';\n for (const char of nextHopProtocol) {\n // http/1.1 etc.\n if (char === '/') {\n [name, version] = nextHopProtocol.split('/') ;\n break;\n }\n // h2, h3 etc.\n if (!isNaN(Number(char))) {\n name = _name === 'h' ? 'http' : _name;\n version = nextHopProtocol.split(_name)[1] ;\n break;\n }\n _name += char;\n }\n if (_name === nextHopProtocol) {\n // webrtc, ftp, etc.\n name = _name;\n }\n return { name, version };\n}\n\nfunction getAbsoluteTime(time = 0) {\n return ((browserPerformanceTimeOrigin || performance.timeOrigin) + time) / 1000;\n}\n\nfunction resourceTimingEntryToSpanData(resourceTiming) {\n const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n\n const timingSpanData = [];\n\n timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n\n if (!browserPerformanceTimeOrigin) {\n return timingSpanData;\n }\n return [\n ...timingSpanData,\n ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n ];\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * We only export this function for testing purposes.\n */\nfunction shouldAttachHeaders(\n targetUrl,\n tracePropagationTargets,\n) {\n // window.location.href not being defined is an edge case in the browser but we need to handle it.\n // Potentially dangerous situations where it may not be defined: Browser Extensions, Web Workers, patching of the location obj\n const href = WINDOW.location && WINDOW.location.href;\n\n if (!href) {\n // If there is no window.location.origin, we default to only attaching tracing headers to relative requests, i.e. ones that start with `/`\n // BIG DISCLAIMER: Users can call URLs with a double slash (fetch(\"//example.com/api\")), this is a shorthand for \"send to the same protocol\",\n // so we need a to exclude those requests, because they might be cross origin.\n const isRelativeSameOriginRequest = !!targetUrl.match(/^\\/(?!\\/)/);\n if (!tracePropagationTargets) {\n return isRelativeSameOriginRequest;\n } else {\n return stringMatchesSomePattern(targetUrl, tracePropagationTargets);\n }\n } else {\n let resolvedUrl;\n let currentOrigin;\n\n // URL parsing may fail, we default to not attaching trace headers in that case.\n try {\n resolvedUrl = new URL(targetUrl, href);\n currentOrigin = new URL(href).origin;\n } catch (e) {\n return false;\n }\n\n const isSameOriginRequest = resolvedUrl.origin === currentOrigin;\n if (!tracePropagationTargets) {\n return isSameOriginRequest;\n } else {\n return (\n stringMatchesSomePattern(resolvedUrl.toString(), tracePropagationTargets) ||\n (isSameOriginRequest && stringMatchesSomePattern(resolvedUrl.pathname, tracePropagationTargets))\n );\n }\n }\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\nfunction xhrCallback(\n handlerData,\n shouldCreateSpan,\n shouldAttachHeaders,\n spans,\n) {\n const xhr = handlerData.xhr;\n const sentryXhrData = xhr && xhr[SENTRY_XHR_DATA_KEY];\n\n if (!xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n return undefined;\n }\n\n const shouldCreateSpanResult = hasTracingEnabled() && shouldCreateSpan(sentryXhrData.url);\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && shouldCreateSpanResult) {\n const spanId = xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span && sentryXhrData.status_code !== undefined) {\n setHttpStatus(span, sentryXhrData.status_code);\n span.end();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return undefined;\n }\n\n const fullUrl = getFullURL(sentryXhrData.url);\n const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n\n const hasParent = !!getActiveSpan();\n\n const span =\n shouldCreateSpanResult && hasParent\n ? startInactiveSpan({\n name: `${sentryXhrData.method} ${sentryXhrData.url}`,\n attributes: {\n type: 'xhr',\n 'http.method': sentryXhrData.method,\n 'http.url': fullUrl,\n url: sentryXhrData.url,\n 'server.address': host,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n },\n })\n : new SentryNonRecordingSpan();\n\n xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n spans[xhr.__sentry_xhr_span_id__] = span;\n\n const client = getClient();\n\n if (xhr.setRequestHeader && shouldAttachHeaders(sentryXhrData.url) && client) {\n addTracingHeadersToXhrRequest(\n xhr,\n client,\n // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n // we do not want to use the span as base for the trace headers,\n // which means that the headers will be generated from the scope and the sampling decision is deferred\n hasTracingEnabled() && hasParent ? span : undefined,\n );\n }\n\n return span;\n}\n\nfunction addTracingHeadersToXhrRequest(xhr, client, span) {\n const scope = getCurrentScope();\n const isolationScope = getIsolationScope();\n const { traceId, spanId, sampled, dsc } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n const sentryTraceHeader =\n span && hasTracingEnabled() ? spanToTraceHeader(span) : generateSentryTraceHeader(traceId, spanId, sampled);\n\n const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(\n dsc || (span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromClient(traceId, client)),\n );\n\n setHeaderOnXhr(xhr, sentryTraceHeader, sentryBaggageHeader);\n}\n\nfunction setHeaderOnXhr(\n xhr,\n sentryTraceHeader,\n sentryBaggageHeader,\n) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader('sentry-trace', sentryTraceHeader);\n if (sentryBaggageHeader) {\n // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n // We can therefore simply set a baggage header without checking what was there before\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader);\n }\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n}\n\nfunction getFullURL(url) {\n try {\n // By adding a base URL to new URL(), this will also work for relative urls\n // If `url` is a full URL, the base URL is ignored anyhow\n const parsed = new URL(url, WINDOW.location.origin);\n return parsed.href;\n } catch (e2) {\n return undefined;\n }\n}\n\nexport { defaultRequestInstrumentationOptions, extractNetworkProtocol, instrumentOutgoingRequests, shouldAttachHeaders, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const P1Svg = ({ ...svgProps }) => (\n <SvgWrapper\n width=\"19.058823529411764\"\n height=\"18\"\n viewBox=\"0 0 72 68\"\n fill=\"none\"\n {...svgProps}\n >\n <path\n d=\"M29.5972 5.79268L29.597 5.79291L2.97046 53.7348C2.97042 53.7348 2.97038 53.7349 2.97035 53.735C0.24937 58.6332 3.57957 65.0017 9.33256 65.0017H62.5853C68.3255 65.0017 71.6749 58.6447 68.9475 53.735C68.9475 53.7349 68.9474 53.7348 68.9474 53.7348L42.3215 5.79292L42.3213 5.79266C39.515 0.741374 32.4097 0.730182 29.5972 5.79268Z\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M22.37 33.41H28.91C31.27 33.41 33.14 33.9 34.52 34.88C35.92 35.84 36.62 37.42 36.62 39.62C36.62 41.78 35.91 43.41 34.49 44.51C33.07 45.61 31.25 46.16 29.03 46.16H26.48V53H22.37V33.41ZM28.76 42.89C31.32 42.89 32.6 41.8 32.6 39.62C32.6 38.58 32.27 37.83 31.61 37.37C30.97 36.91 29.98 36.68 28.64 36.68H26.48V42.89H28.76ZM38.9539 49.67H43.1539V38.15H39.6139V35.6C40.5939 35.42 41.4439 35.2 42.1639 34.94C42.8839 34.68 43.5739 34.34 44.2339 33.92H47.2639V49.67H50.8939V53H38.9539V49.67Z\"\n fill={svgProps.stroke || 'black'}\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const P2Svg = ({ ...svgProps }) => (\n <SvgWrapper\n width=\"19.058823529411764\"\n height=\"18\"\n viewBox=\"0 0 72 68\"\n fill=\"none\"\n {...svgProps}\n >\n <path\n d=\"M29.5972 5.79268L29.597 5.79291L2.97046 53.7348C2.97042 53.7348 2.97038 53.7349 2.97035 53.735C0.24937 58.6332 3.57957 65.0017 9.33256 65.0017H62.5853C68.3255 65.0017 71.6749 58.6447 68.9475 53.735C68.9475 53.7349 68.9474 53.7348 68.9474 53.7348L42.3215 5.79292L42.3213 5.79266C39.515 0.741374 32.4097 0.730182 29.5972 5.79268Z\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M22.37 33.41H28.91C31.27 33.41 33.14 33.9 34.52 34.88C35.92 35.84 36.62 37.42 36.62 39.62C36.62 41.78 35.91 43.41 34.49 44.51C33.07 45.61 31.25 46.16 29.03 46.16H26.48V53H22.37V33.41ZM28.76 42.89C31.32 42.89 32.6 41.8 32.6 39.62C32.6 38.58 32.27 37.83 31.61 37.37C30.97 36.91 29.98 36.68 28.64 36.68H26.48V42.89H28.76ZM38.8939 50.63C40.9739 48.65 42.5539 47.09 43.6339 45.95C44.7339 44.81 45.6139 43.72 46.2739 42.68C46.9339 41.64 47.2639 40.68 47.2639 39.8C47.2639 38.86 47.0139 38.13 46.5139 37.61C46.0139 37.07 45.3139 36.8 44.4139 36.8C43.7739 36.8 43.1739 36.98 42.6139 37.34C42.0539 37.7 41.4939 38.18 40.9339 38.78L38.6839 36.56C39.6439 35.54 40.6039 34.79 41.5639 34.31C42.5439 33.81 43.6839 33.56 44.9839 33.56C46.8439 33.56 48.3439 34.11 49.4839 35.21C50.6239 36.29 51.1939 37.74 51.1939 39.56C51.1939 41.04 50.6439 42.58 49.5439 44.18C48.4439 45.76 46.8639 47.62 44.8039 49.76C45.9639 49.62 47.0339 49.55 48.0139 49.55H52.1239V53H38.8939V50.63Z\"\n fill={svgProps.stroke || 'black'}\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const P3Svg = ({ ...svgProps }) => (\n <SvgWrapper\n width=\"19.058823529411764\"\n height=\"18\"\n viewBox=\"0 0 72 68\"\n fill=\"none\"\n {...svgProps}\n >\n <path\n d=\"M29.5972 5.79268L29.597 5.79291L2.97046 53.7348C2.97042 53.7348 2.97038 53.7349 2.97035 53.735C0.24937 58.6332 3.57957 65.0017 9.33256 65.0017H62.5853C68.3255 65.0017 71.6749 58.6447 68.9475 53.735C68.9475 53.7349 68.9474 53.7348 68.9474 53.7348L42.3215 5.79292L42.3213 5.79266C39.515 0.741374 32.4097 0.730182 29.5972 5.79268Z\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M22.37 33.41H28.91C31.27 33.41 33.14 33.9 34.52 34.88C35.92 35.84 36.62 37.42 36.62 39.62C36.62 41.78 35.91 43.41 34.49 44.51C33.07 45.61 31.25 46.16 29.03 46.16H26.48V53H22.37V33.41ZM28.76 42.89C31.32 42.89 32.6 41.8 32.6 39.62C32.6 38.58 32.27 37.83 31.61 37.37C30.97 36.91 29.98 36.68 28.64 36.68H26.48V42.89H28.76ZM45.0139 53.36C42.2339 53.36 40.0439 52.46 38.4439 50.66L40.3339 48.05C41.6939 49.37 43.1239 50.03 44.6239 50.03C45.6039 50.03 46.3839 49.82 46.9639 49.4C47.5639 48.96 47.8639 48.35 47.8639 47.57C47.8639 46.61 47.4739 45.89 46.6939 45.41C45.9339 44.93 44.5639 44.69 42.5839 44.69V41.75C44.2639 41.75 45.4539 41.52 46.1539 41.06C46.8739 40.58 47.2339 39.91 47.2339 39.05C47.2339 38.33 47.0139 37.78 46.5739 37.4C46.1339 37 45.5239 36.8 44.7439 36.8C44.0639 36.8 43.4339 36.94 42.8539 37.22C42.2939 37.5 41.7039 37.93 41.0839 38.51L39.0139 35.99C40.8939 34.37 42.8639 33.56 44.9239 33.56C46.8839 33.56 48.4439 34.02 49.6039 34.94C50.7639 35.84 51.3439 37.11 51.3439 38.75C51.3439 40.71 50.2739 42.13 48.1339 43.01V43.13C49.2939 43.47 50.2239 44.04 50.9239 44.84C51.6239 45.62 51.9739 46.61 51.9739 47.81C51.9739 48.95 51.6639 49.94 51.0439 50.78C50.4239 51.62 49.5839 52.26 48.5239 52.7C47.4639 53.14 46.2939 53.36 45.0139 53.36Z\"\n fill={svgProps.stroke || 'black'}\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const P4Svg = ({ ...svgProps }) => (\n <SvgWrapper\n width=\"19.058823529411764\"\n height=\"18\"\n viewBox=\"0 0 72 68\"\n fill=\"none\"\n {...svgProps}\n >\n <path\n d=\"M29.5972 5.79268L29.597 5.79291L2.97046 53.7348C2.97042 53.7348 2.97038 53.7349 2.97035 53.735C0.24937 58.6332 3.57957 65.0017 9.33256 65.0017H62.5853C68.3255 65.0017 71.6749 58.6447 68.9475 53.735C68.9475 53.7349 68.9474 53.7348 68.9474 53.7348L42.3215 5.79292L42.3213 5.79266C39.515 0.741374 32.4097 0.730182 29.5972 5.79268Z\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M22.37 53V33.44H28.91C30.35 33.44 31.65 33.63 32.81 34.01C33.97 34.39 34.89 35.04 35.57 35.96C36.27 36.86 36.62 38.09 36.62 39.65C36.62 41.15 36.28 42.38 35.6 43.34C34.92 44.3 34 45.02 32.84 45.5C31.7 45.96 30.43 46.19 29.03 46.19H26.48V53H22.37ZM26.48 42.89H28.76C30.06 42.89 31.02 42.62 31.64 42.08C32.26 41.52 32.57 40.71 32.57 39.65C32.57 38.55 32.23 37.79 31.55 37.37C30.89 36.93 29.92 36.71 28.64 36.71H26.48V42.89ZM46.6039 53V41.69C46.6039 41.11 46.6239 40.42 46.6639 39.62C46.7239 38.8 46.7639 38.1 46.7839 37.52H46.6639C46.4239 38.04 46.1739 38.56 45.9139 39.08C45.6539 39.6 45.3839 40.13 45.1039 40.67L42.2839 45.2H52.7239V48.35H38.3239V45.5L45.4639 33.95H50.4439V53H46.6039Z\"\n fill={svgProps.stroke || 'black'}\n />\n </SvgWrapper>\n);\n","import React from 'react';\nimport { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const P5Svg = ({ ...svgProps }) => (\n <SvgWrapper\n width=\"19.058823529411764\"\n height=\"18\"\n viewBox=\"0 0 72 68\"\n fill=\"none\"\n {...svgProps}\n >\n <path\n d=\"M29.5972 5.79268L29.597 5.79291L2.97046 53.7348C2.97042 53.7348 2.97038 53.7349 2.97035 53.735C0.24937 58.6332 3.57957 65.0017 9.33256 65.0017H62.5853C68.3255 65.0017 71.6749 58.6447 68.9475 53.735C68.9475 53.7349 68.9474 53.7348 68.9474 53.7348L42.3215 5.79292L42.3213 5.79266C39.515 0.741374 32.4097 0.730182 29.5972 5.79268Z\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M22.37 53V33.44H28.91C30.35 33.44 31.65 33.63 32.81 34.01C33.97 34.39 34.89 35.04 35.57 35.96C36.27 36.86 36.62 38.09 36.62 39.65C36.62 41.15 36.28 42.38 35.6 43.34C34.92 44.3 34 45.02 32.84 45.5C31.7 45.96 30.43 46.19 29.03 46.19H26.48V53H22.37ZM26.48 42.89H28.76C30.06 42.89 31.02 42.62 31.64 42.08C32.26 41.52 32.57 40.71 32.57 39.65C32.57 38.55 32.23 37.79 31.55 37.37C30.89 36.93 29.92 36.71 28.64 36.71H26.48V42.89ZM45.1039 53.36C44.0639 53.36 43.1339 53.24 42.3139 53C41.4939 52.76 40.7639 52.44 40.1239 52.04C39.5039 51.64 38.9439 51.19 38.4439 50.69L40.3039 48.08C40.8839 48.62 41.5139 49.08 42.1939 49.46C42.8939 49.84 43.6739 50.03 44.5339 50.03C45.1939 50.03 45.7739 49.91 46.2739 49.67C46.7939 49.41 47.1939 49.05 47.4739 48.59C47.7539 48.11 47.8939 47.52 47.8939 46.82C47.8939 45.82 47.6039 45.05 47.0239 44.51C46.4439 43.97 45.6839 43.7 44.7439 43.7C44.1839 43.7 43.7039 43.78 43.3039 43.94C42.9039 44.08 42.4139 44.33 41.8339 44.69L39.9739 43.49L40.5139 33.95H51.1339V37.4H44.0539L43.7239 41.3C44.1039 41.12 44.4639 40.99 44.8039 40.91C45.1439 40.83 45.5339 40.79 45.9739 40.79C47.0539 40.79 48.0539 41.01 48.9739 41.45C49.8939 41.87 50.6239 42.52 51.1639 43.4C51.7239 44.26 52.0039 45.37 52.0039 46.73C52.0039 48.13 51.6839 49.33 51.0439 50.33C50.4039 51.31 49.5539 52.06 48.4939 52.58C47.4539 53.1 46.3239 53.36 45.1039 53.36Z\"\n fill={svgProps.stroke || 'black'}\n />\n </SvgWrapper>\n);\n","import { ReactElement } from 'react';\nimport { P1Svg } from 'components/svgs/P1Svg';\nimport { P2Svg } from 'components/svgs/P2Svg';\nimport { P3Svg } from 'components/svgs/P3Svg';\nimport { P4Svg } from 'components/svgs/P4Svg';\nimport { P5Svg } from 'components/svgs/P5Svg';\nimport { PhoneFilledSvg } from 'components/svgs/PhoneFilledSvg/PhoneFilledSvg';\n\nexport const iconLookup: Record<string, ReactElement> = {\n // success: <CheckSquareOutlined />,\n // info: <InfoCircleOutlined />,\n // warning: <ExclamationCircleOutlined />,\n // error: <WarningOutlined />,\n intercom: <PhoneFilledSvg />,\n alarmHigh: (\n <P1Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmHighText)\"\n />\n ),\n alarmMedium: (\n <P3Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmMediumText)\"\n />\n ),\n alarmLow: (\n <P5Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmLowText)\"\n />\n ),\n p1: (\n <P1Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmHighText)\"\n />\n ),\n p2: (\n <P2Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmMediumText)\"\n />\n ),\n p3: (\n <P3Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmMediumText)\"\n />\n ),\n p4: (\n <P4Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmLowText)\"\n />\n ),\n p5: (\n <P5Svg\n className=\"icon\"\n opacity=\"1\"\n width=\"24\"\n height=\"24\"\n stroke=\"var(--colorAlarmLowText)\"\n />\n ),\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ClearAllAlertsButton.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./ClearAllAlertsButton.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { OpTextButton } from 'new-components/DLS/OpTextButton/OpTextButton';\nimport { useTranslation } from 'react-i18next';\n\nimport './ClearAllAlertsButton.scss';\n\nexport const ClearAllAlertsButton = ({ onClick }: { onClick: () => void }) => {\n const { t } = useTranslation();\n\n return (\n <div className=\"clear-all-alerts-button\">\n <OpTextButton\n className=\"clear-all-alerts-button__text-button\"\n size=\"small\"\n onClick={onClick}\n >\n {t('Clear all')}\n </OpTextButton>\n </div>\n );\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./AlertWrapper.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./AlertWrapper.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport notification from 'antd/es/notification';\nimport { clearAlert } from 'routes/AppContainer/actions';\nimport { selectAlertStack } from 'routes/AppContainer/selectors';\nimport { useSelectorJs } from 'utils/customHooks';\nimport { useTranslation } from 'react-i18next';\nimport { OpButton } from 'new-components/DLS/OpButton/OpButton';\nimport { SoundEffects, Layers, WebAudio } from 'utils/audio';\nimport { addSlideOut } from 'global/slideOuts/actions';\nimport alarmEditRouteConfig from 'routes/AlarmDashboardPage/AlarmEditPage/route';\nimport { verifyScope } from 'utils/redirects';\nimport clsx from 'clsx';\nimport { OpSpace } from 'new-components/DLS/OpSpace/OpSpace';\nimport { getOpParams } from 'utils/getOpParams';\nimport { useGetActiveScopes } from 'utils/customHooks/useGetActiveScopes';\nimport { iconLookup } from './helpers';\nimport { ClearAllAlertsButton } from './components/ClearAllAlertsButton';\n\nimport './AlertWrapper.scss';\n\ninterface Alert {\n alertId: string;\n alertTime: number;\n alertType: string;\n alertIcon?: string;\n alertButtons?: ButtonAction[];\n timeout?: number;\n alertHeader?: string;\n alertMessage: React.ReactNode | ((close: () => void) => React.ReactNode);\n}\n\ninterface ButtonAction {\n target?: {\n resourceType: string;\n resourceUid?: string;\n };\n onClick?: (close: () => void) => void;\n}\n/**\n * Keep track of which alerts are playing audio so we don't\n * play them multiple times. Without this the alert audio\n * would play when it has finished and the alertStack changes\n * at all.\n */\nconst audioByAlertId: Record<string, boolean> = {};\n\nconst AlertWrapperWithoutSuir: React.FC = () => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const alertStack: Alert[] = useSelectorJs(selectAlertStack());\n const { orgId } = getOpParams();\n\n const { activeScopes } = useGetActiveScopes(orgId);\n\n const canEditAlarms = verifyScope(\n activeScopes,\n alarmEditRouteConfig.scope,\n orgId,\n );\n\n const [api, contextHolder] = notification.useNotification();\n\n const handleAlertClosed = useCallback(\n ({ alertId, alertType }: Alert) => {\n // Handle sound effects\n if (['alarmHigh', 'alarmMedium', 'alarmLow'].includes(alertType)) {\n WebAudio.stop(\n SoundEffects.ALARM_NOTIFICATION,\n Layers.ALARM_NOTIFICATIONS,\n );\n audioByAlertId[alertId] = false;\n } else if (alertType === 'intercom') {\n WebAudio.stop(\n SoundEffects.INTERCOM_NOTIFICATION,\n Layers.INTERCOM_NOTIFICATIONS,\n );\n audioByAlertId[alertId] = false;\n }\n\n dispatch(clearAlert(alertId));\n api.destroy(alertId);\n },\n [api, dispatch],\n );\n\n const displayNotification = useCallback(\n (alert: Alert) => {\n const {\n alertIcon,\n alertType,\n alertId,\n alertMessage,\n alertButtons,\n alertHeader,\n timeout: alertTimeout,\n } = alert;\n let notifType: 'success' | 'info' | 'warning' | 'error' = 'info';\n\n switch (alert.alertType) {\n case 'error':\n case 'alarmHigh':\n case 'alarmMedium':\n case 'alarmLow':\n notifType = 'error';\n break;\n case 'warning':\n notifType = 'warning';\n break;\n case 'success':\n notifType = 'success';\n break;\n case 'intercom':\n notifType = 'info';\n break;\n default:\n notifType = 'info';\n }\n\n // TODO - verify if we need to function version (parity with old version)\n const description =\n typeof alertMessage === 'function'\n ? alertMessage(() => handleAlertClosed(alert))\n : alertMessage;\n\n const btn = alertButtons?.length && (\n <OpSpace>\n {alertButtons.map((button, index) => {\n const { resourceType, resourceUid } = button.target || {};\n\n switch (resourceType) {\n case 'alarm':\n if (resourceUid && canEditAlarms) {\n return (\n <OpButton\n key={index}\n onClick={() => {\n handleAlertClosed(alert);\n dispatch(\n addSlideOut({\n routeConfig: {\n ...alarmEditRouteConfig,\n extraData: {\n alarmIdExt: resourceUid,\n },\n },\n slideOutProps: {\n requiredExtraData: ['alarmIdExt'],\n pathname: null,\n debug:\n window.sessionStorage.getItem(\n 'op-history-debug',\n ),\n },\n }),\n );\n }}\n style={{ marginRight: 8 }}\n >\n {t('View Alarm')}\n </OpButton>\n );\n }\n return null;\n\n case 'intercomNotification':\n return (\n <OpButton\n key={index}\n onClick={() => {\n if (button.onClick) {\n button.onClick(() => handleAlertClosed(alert));\n }\n }}\n style={{ marginRight: 8 }}\n >\n {t('View Call')}\n </OpButton>\n );\n\n default:\n return null;\n }\n })}\n </OpSpace>\n );\n\n const isAlarmHigh = alertType === 'alarmHigh' || alertIcon === 'p1';\n const isAlarmMedium =\n alertType === 'alarmMedium' ||\n (alertIcon && ['p2', 'p3'].includes(alertIcon));\n const isAlarmLow =\n alertType === 'alarmLow' ||\n (alertIcon && ['p4', 'p5'].includes(alertIcon));\n const isIntercom = alertType === 'intercom';\n\n api.open({\n key: alertId,\n message: (alertHeader || alertType).toUpperCase(),\n description,\n btn,\n type: notifType,\n icon: iconLookup[alertIcon || alertType],\n placement: 'bottomRight',\n onClose: () => handleAlertClosed(alert),\n className: clsx(`alert-wrapper-notification--${notifType}`, {\n 'alert-wrapper-notification--alarmHigh': isAlarmHigh,\n 'alert-wrapper-notification--alarmMedium': isAlarmMedium,\n 'alert-wrapper-notification--alarmLow': isAlarmLow,\n 'alert-wrapper-notification--intercom': isIntercom,\n }),\n duration:\n notifType === 'error' ? 0 : alertTimeout ? alertTimeout / 1000 : 5,\n });\n\n // Handle sound effects\n if (!audioByAlertId[alertId]) {\n if (['alarmHigh', 'alarmMedium', 'alarmLow'].includes(alertType)) {\n WebAudio.play(\n SoundEffects.ALARM_NOTIFICATION,\n Layers.ALARM_NOTIFICATIONS,\n { skipIfAlreadyPlaying: true },\n );\n audioByAlertId[alertId] = true;\n } else if (alertType === 'intercom') {\n WebAudio.play(\n SoundEffects.INTERCOM_NOTIFICATION,\n Layers.INTERCOM_NOTIFICATIONS,\n { skipIfAlreadyPlaying: true },\n );\n audioByAlertId[alertId] = true;\n }\n }\n },\n [api, canEditAlarms, dispatch, t, handleAlertClosed],\n );\n\n useEffect(() => {\n alertStack.forEach((alert) => {\n displayNotification(alert);\n });\n }, [alertStack, displayNotification]);\n\n const handleCloseAll = useCallback(() => {\n alertStack.forEach((alert) => {\n handleAlertClosed(alert);\n });\n api.destroy();\n }, [alertStack, api, handleAlertClosed]);\n\n return (\n <>\n {contextHolder}\n {alertStack.length > 3 && (\n <ClearAllAlertsButton onClick={handleCloseAll} />\n )}\n </>\n );\n};\n\nexport default React.memo(AlertWrapperWithoutSuir);\n","import AlertWrapperWithoutSuir from './AlertWrapperWithoutSuir';\n\nconst AlertWrapper = () => <AlertWrapperWithoutSuir />;\n\nexport default AlertWrapper;\n","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","module.exports = __webpack_public_path__ + \"dd95c7ba45d24f75fd2ec04726836339.js\";","module.exports = __webpack_public_path__ + \"dc7ab72407b0b44ef5dae159373de53b.js\";","'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","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { messages as defaultMessages, newMessages } from \"./messages\";\nimport { asyncMap, complementError, convertFieldsError, deepMerge, format, warning } from \"./util\";\nimport validators from \"./validator/index\";\nexport * from \"./interface\";\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nvar Schema = /*#__PURE__*/function () {\n function Schema(descriptor) {\n _classCallCheck(this, Schema);\n // ======================== Instance ========================\n _defineProperty(this, \"rules\", null);\n _defineProperty(this, \"_messages\", defaultMessages);\n this.define(descriptor);\n }\n _createClass(Schema, [{\n key: \"define\",\n value: function define(rules) {\n var _this = this;\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (_typeof(rules) !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n Object.keys(rules).forEach(function (name) {\n var item = rules[name];\n _this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n }, {\n key: \"messages\",\n value: function messages(_messages) {\n if (_messages) {\n this._messages = deepMerge(newMessages(), _messages);\n }\n return this._messages;\n }\n }, {\n key: \"validate\",\n value: function validate(source_) {\n var _this2 = this;\n var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n var source = source_;\n var options = o;\n var callback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n function complete(results) {\n var errors = [];\n var fields = {};\n function add(e) {\n if (Array.isArray(e)) {\n var _errors;\n errors = (_errors = errors).concat.apply(_errors, _toConsumableArray(e));\n } else {\n errors.push(e);\n }\n }\n for (var i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n callback(errors, fields);\n }\n }\n if (options.messages) {\n var messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n var series = {};\n var keys = options.keys || Object.keys(this.rules);\n keys.forEach(function (z) {\n var arr = _this2.rules[z];\n var value = source[z];\n arr.forEach(function (r) {\n var rule = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = _objectSpread({}, source);\n }\n value = source[z] = rule.transform(value);\n if (value !== undefined && value !== null) {\n rule.type = rule.type || (Array.isArray(value) ? 'array' : _typeof(value));\n }\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule\n };\n } else {\n rule = _objectSpread({}, rule);\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = _this2.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = _this2.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule: rule,\n value: value,\n source: source,\n field: z\n });\n });\n });\n var errorFields = {};\n return asyncMap(series, options, function (data, doIt) {\n var rule = data.rule;\n var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n deep = deep && (rule.required || !rule.required && data.value);\n rule.field = data.field;\n function addFullField(key, schema) {\n return _objectSpread(_objectSpread({}, schema), {}, {\n fullField: \"\".concat(rule.fullField, \".\").concat(key),\n fullFields: rule.fullFields ? [].concat(_toConsumableArray(rule.fullFields), [key]) : [key]\n });\n }\n function cb() {\n var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n var filledErrors = errorList.map(complementError(rule, source));\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = [].concat(rule.message).map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n }\n return doIt(filledErrors);\n }\n var fieldsSchema = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(function (key) {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = _objectSpread(_objectSpread({}, fieldsSchema), data.rule.fields);\n var paredFieldsSchema = {};\n Object.keys(fieldsSchema).forEach(function (field) {\n var fieldSchema = fieldsSchema[field];\n var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n });\n var schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, function (errs) {\n var finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push.apply(finalErrors, _toConsumableArray(filledErrors));\n }\n if (errs && errs.length) {\n finalErrors.push.apply(finalErrors, _toConsumableArray(errs));\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n var res;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n var _console$error, _console;\n (_console$error = (_console = console).error) === null || _console$error === void 0 || _console$error.call(_console, error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(function () {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || \"\".concat(rule.fullField || rule.field, \" fails\"));\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && res.then) {\n res.then(function () {\n return cb();\n }, function (e) {\n return cb(e);\n });\n }\n }, function (results) {\n complete(results);\n }, source);\n }\n }, {\n key: \"getType\",\n value: function getType(rule) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n }, {\n key: \"getValidationMethod\",\n value: function getValidationMethod(rule) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n var keys = Object.keys(rule);\n var messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n }]);\n return Schema;\n}();\n// ========================= Static =========================\n_defineProperty(Schema, \"register\", function register(type, validator) {\n if (typeof validator !== 'function') {\n throw new Error('Cannot register a validator by type, validator is not a function');\n }\n validators[type] = validator;\n});\n_defineProperty(Schema, \"warning\", warning);\n_defineProperty(Schema, \"messages\", defaultMessages);\n_defineProperty(Schema, \"validators\", validators);\nexport default Schema;","module.exports = __webpack_public_path__ + \"5b6a626249d0bc43e412fffa6a9ee177.js\";","'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","module.exports = __webpack_public_path__ + \"a39d18e77a42bed1605d9b8760a065cf.js\";","\"use client\";\n\nimport * as React from 'react';\nimport { Provider as MotionProvider } from 'rc-motion';\nimport { useToken } from '../theme/internal';\nexport default function MotionWrapper(props) {\n const {\n children\n } = props;\n const [, token] = useToken();\n const {\n motion\n } = token;\n const needWrapMotionProviderRef = React.useRef(false);\n needWrapMotionProviderRef.current = needWrapMotionProviderRef.current || motion === false;\n if (needWrapMotionProviderRef.current) {\n return /*#__PURE__*/React.createElement(MotionProvider, {\n motion: motion\n }, children);\n }\n return children;\n}","// routes off of root path\nexport const loginRoute = '/signin';\nexport const loginSSORoute = '/loginSSO';\n\nexport const verifyEmailRoute = '/verifyEmail';\nexport const resetPasswordRoute = '/resetPassword';\nexport const setupAppleWalletRoute = '/setupAppleWallet';\nexport const setupMobileRoute = '/setupMobile';\nexport const setupMobileSamlRoute = '/setupMobileSaml';\nexport const cloudKeyUnlockRoute = '/cloudKeyUnlockOld';\nexport const localAdminRoute = '/localadmin';\nexport const redirectRoute = '/redirect';\nexport const intercomDirectoryQrRoute = '/intercomDirectory/qr/:qrCode';\nexport const intercomDirectoryRoute = '/intercomDirectory/:intercomDirectoryId';\nexport const mfaManagementRoute = '/mfaManagement';\n\n// app store\nexport const appMarketplaceRoute = 'appMarketplace';\nexport const appConfigurationRoute = 'appMarketplace/:appId/config';\nexport const appDetailsRoute = 'appMarketplace/:appId';\nexport const appQuantityRequestRoute = 'appMarketplace/:appId/qRequest';\nexport const licensesRoute = 'licenses';\n\n// routes off of authenticated path (i.e., /o/300/)\nexport const errorMessageRoute = 'errorMessage';\n\n// Maintenance Route\nexport const maintenanceRoute = 'maintenance';\n\n// required termsStatus\nexport const requiredTermsRoute = 'requiredTerms';\n\n// PARTNER MENU\nexport const partnerDashboardRoute = 'partner/dashboard';\nexport const partnerBillingRoute = 'partner/billing';\nexport const partnerStoreRoute = 'partner/store';\nexport const partnerOrgTableRoute = 'partner/subOrgs';\nexport const partnerOrgCreateRoute = 'partner/subOrgs/create';\nexport const partnerOrgEditRoute = 'partner/subOrgs/edit/info';\nexport const partnerOrgEditPackageRoute = 'partner/subOrgs/edit/package';\nexport const partnerAcusTableRoute = 'partner/acus';\nexport const partnerThirdPartyDevicesRoute = 'partner/thirdPartyDevices';\nexport const partnerEntriesTableRoute = 'partner/entries';\nexport const partnerAcusEditRoute = 'partner/acus/edit';\nexport const partnerRequestsTableRoute = 'partner/requests';\nexport const partnerSubscriptionRenewalsTableRoute = 'partner/renewals';\n\n// DASHBOARDS\nexport const dashboardContainerRoute = 'dashboards';\nexport const activityDashboardRoute = 'dashboards/activityDashboard';\nexport const alarmDashboardRoute = 'dashboards/alarmDashboard';\nexport const alarmEditRoute = 'dashboards/alarmDashboard/alarm/edit';\nexport const entryDashboardRoute = 'dashboards/entryDashboard';\nexport const hardwareDashboardRoute = 'dashboards/hardwareDashboard';\nexport const customDashboardsRoute = 'dashboards/custom';\nexport const customDashboardsRoute2 = 'dashboards/custom2';\nexport const mapsDashboardRoute = 'dashboards/maps';\n\n// USERS\nexport const usersTableRoute = 'users';\n\nexport const usersImportRoute = 'users/import';\n\nexport const accessGroupsRoute = 'accessGroups';\nexport const accessGroupsCreateRoute = 'accessGroups?drawer=add';\n\nexport const rolesRoute = 'roles';\n\nexport const userSchedulesTableRoute = 'userSchedules';\nexport const userSchedulesCreateRoute = 'userSchedules/create';\nexport const userSchedulesEditRoute = 'userSchedules/edit';\n\nexport const userCustomFieldsTableRoute = 'userCustomFields';\nexport const userCustomFieldsCreateRoute = 'userCustomFields/create';\nexport const userCustomFieldsEditRoute = 'userCustomFields/edit';\n\n// SITES\nexport const sitesTableRoute = 'sites';\nexport const sitesCreateRoute = 'sites/create';\nexport const sitesEditRoute = 'sites/edit';\n\nexport const lockdownTableRoute = 'lockdown';\nexport const lockdownCreateRoute = 'lockdown/create';\nexport const lockdownEditRoute = 'lockdown/edit';\nexport const lockdownEditConfigRoute = 'lockdown/edit/config';\n\nexport const zonesTableRoute = 'zones';\nexport const zonesCreateRoute = 'zones/create';\nexport const zonesEditDetailsRoute = 'zones/edit/details';\nexport const zonesEditAntiPassbackRoute = 'zones/edit/antiPassback';\n\nexport const entriesTableRoute = 'entries';\n\nexport const entryStatesTableRoute = 'entryStates';\nexport const entryStatesCreateRoute = 'entryStates/create';\nexport const entryStatesEditRoute = 'entryStates/edit';\n\nexport const entrySchedulesTableRoute = 'entrySchedules';\nexport const entrySchedulesCreateRoute = 'entrySchedules/create';\nexport const entrySchedulesEditRoute = 'entrySchedules/edit';\n\nexport const camerasRoute = 'cameras';\nexport const cameraDetailsRoute = 'cameras/details';\nexport const cameraDeeplinkRedirectRoute = 'cameras/deeplinkRedirect';\n\n// HARDWARE\nexport const acusTableRoute = 'acus';\nexport const acusCreateRoute = 'acus/create';\nexport const acusEditRoute = 'acus/edit';\nexport const acusPortsRoute = 'acus/edit/ports';\n\nexport const readersTableRoute = 'readers';\nexport const readersCreateRoute = 'readers/create';\nexport const readersEditRoute = 'readers/edit';\n\nexport const allegionReadersTableRoute = 'readers/allegion';\nexport const thirdPartyReadersEditRoute = 'readers/thirdParty/edit';\n\nexport const videoReadersRoute = 'videoReaders';\nexport const videoIntercomReadersRoute = 'videoIntercomReaders';\nexport const videoIntercomConfigurationRoute = 'voiceAssistant/configure';\n\nexport const wirelessLocksTableRoute = 'wirelessLocks';\nexport const allegionWirelessLocksTableRoute = 'wirelessLocks/allegion';\nexport const wirelessLocksEditRoute = 'wirelessLocks/edit';\nexport const wirelessLockGatewaysTableRoute = 'wirelessLockGateways';\n\nexport const deviceUpdateManagement = 'deviceUpdateManagement';\n\n// REPORTS\nexport const scheduledReportsRoute = 'reports/schedule';\nexport const scheduledReportsEditRoute = 'reports/schedule/edit';\nexport const scheduledReportsCreateRoute = 'reports/schedule/create';\nexport const scheduledReportsHistoryRoute = 'reports/schedule/history';\n\nexport const activityLogsRoute = 'reports/activityLogs';\nexport const activityInsightsRoute = 'reports/activityInsights';\nexport const musterReportsRoute = 'reports/muster';\nexport const userActivityRoute = 'reports/userActivity';\nexport const entryActivityRoute = 'reports/entryActivity';\nexport const userActivitySummaryRoute = 'reports/userActivitySummary';\nexport const entryActivitySummaryRoute = 'reports/entryActivitySummary';\nexport const entryAccessAuditRoute = 'reports/entryAccessAudit';\nexport const userAccessAuditRoute = 'reports/userAccessAudit';\nexport const portalAuditReportRoute = 'reports/portalAuditReport';\nexport const visualActivityReportRoute = 'reports/visualActivity';\nexport const presenceReportRoute = 'reports/presenceReport';\nexport const userCredentialsManagementRoute = 'reports/credentials';\nexport const alarmReportRoute = 'reports/alarm';\nexport const occupancyReportRoute = 'reports/occupancy';\n\n// INTEGRATIONS\nexport const integrationsRoute = 'integrations';\nexport const integrationsIdentityProviderGsuite =\n 'integrations/identityProviders/gsuite';\nexport const integrationsIdentityProviderAzure =\n 'integrations/identityProviders/msazuread';\nexport const integrationsIdentityProviderOkta =\n 'integrations/identityProviders/okta';\nexport const integrationsIdentityProviderOnelogin =\n 'integrations/identityProviders/onelogin';\nexport const integrationsIdentityProviderWorkday =\n 'integrations/identityProviders/workday';\nexport const integrationsIdentityProviderConfigRouteTemplate =\n 'integrations/identityProviders/_idptCode_?idptCode=_idptCode_&idptId=_idptId_';\nexport const integrationsSlackRoute = 'integrations/slack';\nexport const integrationsSdkRoute = 'integrations/sdk';\nexport const integrationsDensityRoute = 'integrations/density';\nexport const integrationsInstantCardRoute = 'integrations/instantCard';\nexport const integrationsApiRoute = 'integrations/api';\nexport const integrationsWebhooksRoute = 'integrations/webhooks';\nexport const integrationsZapierRoute = 'integrations/zapier';\nexport const integrationsSavanceRoute = 'integrations/savance';\nexport const integrationsEnvoyRoute = 'integrations/envoy';\nexport const integrationsButterflymxRoute = 'integrations/butterflymx';\nexport const integrationsCamioRoute = 'integrations/camio';\n\nexport const hookActionsTableRoute =\n 'integrations/outboundWebhooks/hookActions';\nexport const hookActionsCreateRoute =\n 'integrations/outboundWebhooks/hookActions/create';\nexport const hookActionsEditRoute =\n 'integrations/outboundWebhooks/hookActions/edit';\n\nexport const videoProvidersRoute =\n 'integrations/videoProviders/:videoProviderId';\n\nexport const samlCallbackRoute = 'saml/callback';\n\n// CONFIGURATIONS\nexport const alarmConfigurationsRoute = 'alarmConfigurations';\nexport const subscriptionsTableRoute = 'rulesEngine';\nexport const subscriptionsCreateRoute = 'rulesEngine/create';\nexport const subscriptionsEditRoute = 'rulesEngine/edit';\nexport const alertSettingsRoute = 'alertSettings';\nexport const mobileAppSettingsRoute = 'mobileApp';\nexport const mobileAppBadgeUiRoute = 'mobileApp/badgeUi';\nexport const badgeTemplatesTablePageRoute = 'badgeTemplatesTablePage';\nexport const badgeTemplatesRoute = 'badgeTemplates';\nexport const intercomUserDirectoryRoute = 'intercomUserDirectory';\n\nexport const samlSsoConfigurationRoute = 'samlSso/configure';\n\n// ADMINISTRATION\nexport const accountPageRoute = 'account';\nexport const quickStartRoute = 'quickStart';\n\n// REALEASE NOTES\nexport const releaseNotesRoute = 'releaseNotes';\n\n// super user routes (off of /master)\nexport const masterDashboardRoute = 'masterDashboard';\nexport const masterOrgTableRoute = 'orgs';\nexport const masterOrgEditRoute = 'orgs/edit';\nexport const masterOrgEditPackageRoute = 'orgs/edit/package';\nexport const masterOrgEditFeatureFlagRoute = 'orgs/edit/featureFlag';\nexport const masterOrgCreateRoute = 'orgs/create';\n\nexport const masterIdentitiesTableRoute = 'identities';\nexport const masterIdentitiesEditRoute = 'identities/edit';\nexport const masterIdentitiesEditSecurityRoute = 'identities/edit/security';\nexport const masterIdentitiesCreateRoute = 'identities/create';\n\nexport const masterRolesTableRoute = 'identitiesRoles';\nexport const masterRolesEditRoute = 'identitiesRoles/edit';\nexport const masterRolesCreateRoute = 'identitiesRoles/create';\n\n// NOTE #1: even though AuthenticatedContainer/sagas later prepends a\n// 'master/' prefix to the actual URL path, we still need something\n// here other than just 'acus', because in config/menuItems.js, we end\n// up indexing and searching for objects based on their\n// (non-master-prepended) route, and so a plain 'acus' here would\n// conflict with acusTablesRoute which also uses 'acus'\n\n// NOTE #2: we can't use anything ending in '/acus' because then\n// somehow we end up displaying the wrong title in the breadcrumb\n// (somewhere we end up matching the menuConfig for org-level ACUs,\n// and then display the breadcrumb for that)\nexport const masterAcusTableRoute = 'allAcus';\nexport const masterAcusEditRoute = 'allAcus/edit';\n\nexport const masterEntriesTableRoute = 'allEntries';\nexport const masterThirdPartyDevicesRoute = 'thirdPartyDevices';\nexport const masterAllegionFobsRoute = 'allegionFobs';\nexport const masterReleaseNotesRoute = 'masterReleaseNotes';\n\nexport const masterFeatureFlagsTableRoute = 'featureFlags';\nexport const masterFeatureFlagsEditRoute = 'featureFlags/edit';\nexport const masterFeatureFlagsCreateRoute = 'featureFlags/create';\n\nexport const masterAcuSoftwareReportRoute = 'reports/acuSoftware';\nexport const masterPortalAuditReportRoute = 'reports/masterPortalAuditReport';\n\nexport const buildingsRoute = 'buildings';\nexport const buildingsCreateRoute = 'buildings/create';\nexport const buildingsEditRoute = 'buildings/edit';\n\n// these four aren't linked to URL bar routes since they're only used in slideouts\n// and slideouts do not update the URL/html history\n// but I think thats coming in the future\nexport const floorsCreateRoute = 'buildings/edit/floors/create';\nexport const floorsEditRoute = 'buildings/edit/floors/edit';\n\nexport const unitsCreateRoute = 'buildings/floors/units/create';\nexport const unitsEditRoute = 'buildings/floors/units/edit';\n\nexport const softwareLicensesRoute = 'orgs/edit/subscription';\nexport const myAppsTableRoute = 'orgs/myApps';\nexport const requestsTableRoute = 'orgs/requests';\nexport const subscriptionRenewalSummaryRoute = 'orgs/subscriptions/:subId';\n\nexport const userCredentialsEditRoute = 'userCredentials/edit';\n\nexport const chatRoute = 'chat';\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\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\nmodule.exports = cloneRegExp;\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport useSetState from '../useSetState';\nimport parseTimeRanges from '../misc/parseTimeRanges';\nexport default function createHTMLMediaHook(tag) {\n return function (elOrProps) {\n var element;\n var props;\n if (React.isValidElement(elOrProps)) {\n element = elOrProps;\n props = element.props;\n }\n else {\n props = elOrProps;\n }\n var _a = useSetState({\n buffered: [],\n time: 0,\n duration: 0,\n paused: true,\n muted: false,\n volume: 1,\n playing: false,\n }), state = _a[0], setState = _a[1];\n var ref = useRef(null);\n var wrapEvent = function (userEvent, proxyEvent) {\n return function (event) {\n try {\n proxyEvent && proxyEvent(event);\n }\n finally {\n userEvent && userEvent(event);\n }\n };\n };\n var onPlay = function () { return setState({ paused: false }); };\n var onPlaying = function () { return setState({ playing: true }); };\n var onWaiting = function () { return setState({ playing: false }); };\n var onPause = function () { return setState({ paused: true, playing: false }); };\n var onVolumeChange = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({\n muted: el.muted,\n volume: el.volume,\n });\n };\n var onDurationChange = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n var duration = el.duration, buffered = el.buffered;\n setState({\n duration: duration,\n buffered: parseTimeRanges(buffered),\n });\n };\n var onTimeUpdate = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({ time: el.currentTime });\n };\n var onProgress = function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n setState({ buffered: parseTimeRanges(el.buffered) });\n };\n if (element) {\n element = React.cloneElement(element, __assign(__assign({ controls: false }, props), { ref: ref, onPlay: wrapEvent(props.onPlay, onPlay), onPlaying: wrapEvent(props.onPlaying, onPlaying), onWaiting: wrapEvent(props.onWaiting, onWaiting), onPause: wrapEvent(props.onPause, onPause), onVolumeChange: wrapEvent(props.onVolumeChange, onVolumeChange), onDurationChange: wrapEvent(props.onDurationChange, onDurationChange), onTimeUpdate: wrapEvent(props.onTimeUpdate, onTimeUpdate), onProgress: wrapEvent(props.onProgress, onProgress) }));\n }\n else {\n element = React.createElement(tag, __assign(__assign({ controls: false }, props), { ref: ref, onPlay: wrapEvent(props.onPlay, onPlay), onPlaying: wrapEvent(props.onPlaying, onPlaying), onWaiting: wrapEvent(props.onWaiting, onWaiting), onPause: wrapEvent(props.onPause, onPause), onVolumeChange: wrapEvent(props.onVolumeChange, onVolumeChange), onDurationChange: wrapEvent(props.onDurationChange, onDurationChange), onTimeUpdate: wrapEvent(props.onTimeUpdate, onTimeUpdate), onProgress: wrapEvent(props.onProgress, onProgress) })); // TODO: fix this typing.\n }\n // Some browsers return `Promise` on `.play()` and may throw errors\n // if one tries to execute another `.play()` or `.pause()` while that\n // promise is resolving. So we prevent that with this lock.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=593273\n var lockPlay = false;\n var controls = {\n play: function () {\n var el = ref.current;\n if (!el) {\n return undefined;\n }\n if (!lockPlay) {\n var promise = el.play();\n var isPromise = typeof promise === 'object';\n if (isPromise) {\n lockPlay = true;\n var resetLock = function () {\n lockPlay = false;\n };\n promise.then(resetLock, resetLock);\n }\n return promise;\n }\n return undefined;\n },\n pause: function () {\n var el = ref.current;\n if (el && !lockPlay) {\n return el.pause();\n }\n },\n seek: function (time) {\n var el = ref.current;\n if (!el || state.duration === undefined) {\n return;\n }\n time = Math.min(state.duration, Math.max(0, time));\n el.currentTime = time;\n },\n volume: function (volume) {\n var el = ref.current;\n if (!el) {\n return;\n }\n volume = Math.min(1, Math.max(0, volume));\n el.volume = volume;\n setState({ volume: volume });\n },\n mute: function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n el.muted = true;\n },\n unmute: function () {\n var el = ref.current;\n if (!el) {\n return;\n }\n el.muted = false;\n },\n };\n useEffect(function () {\n var el = ref.current;\n if (!el) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === 'audio') {\n console.error('useAudio() ref to <audio> element is empty at mount. ' +\n 'It seem you have not rendered the audio element, which it ' +\n 'returns as the first argument const [audio] = useAudio(...).');\n }\n else if (tag === 'video') {\n console.error('useVideo() ref to <video> element is empty at mount. ' +\n 'It seem you have not rendered the video element, which it ' +\n 'returns as the first argument const [video] = useVideo(...).');\n }\n }\n return;\n }\n setState({\n volume: el.volume,\n muted: el.muted,\n paused: el.paused,\n });\n // Start media, if autoPlay requested.\n if (props.autoPlay && el.paused) {\n controls.play();\n }\n }, [props.src]);\n return [element, state, controls, ref];\n };\n}\n","import QuestionCircleOutlined from '@ant-design/icons/QuestionCircleOutlined';\nimport { ReactNode } from 'react';\nimport clsx from 'clsx';\nimport { OpTooltip } from '../OpTooltip/OpTooltip';\n\nimport './OpInfoTooltip.scss';\n\ninterface OpInfoTooltipProps {\n title: ReactNode;\n className?: string;\n}\n\nexport const OpInfoTooltip = ({ title, className }: OpInfoTooltipProps) => {\n return (\n <OpTooltip className={clsx('op-info-tooltip', className)} title={title}>\n <QuestionCircleOutlined className=\"op-info-tooltip__icon\" />\n </OpTooltip>\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\nmodule.exports = isKeyable;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","export const SET_ORG = 'app/Billing/SET_ORG';\nexport const SET_SAVING_BILLING_SUBSCRIPTION_INFO =\n 'app/Billing/SET_SAVING_BILLING_SUBSCRIPTION_INFO';\nexport const REQUEST_LOAD_BILLING_FORM_VALUES =\n 'app/Billing/REQUEST_LOAD_BILLING_FORM_VALUES';\nexport const REQUEST_EDIT_BILLING_SUBSCRIPTION =\n 'app/Billing/REQUEST_EDIT_BILLING_SUBSCRIPTION';\nexport const SET_TOS_INFORMATION = 'app/Billing/SET_TOS_INFORMATION';\nexport const REQUEST_SIGN_TERMS_OF_SERVICE =\n 'app/Billing/REQUEST_SIGN_TERMS_OF_SERVICE';\nexport const REQUEST_GET_BILLING_INFORMATION =\n 'app/Billing/REQUEST_GET_BILLING_INFORMATION';\nexport const REQUEST_SAML_APP_LOGIN = 'app/Billing/REQUEST_SAML_APP_LOGIN';\nexport const REQUEST_ERP_SAML_APP_LOGIN =\n 'app/Billing/REQUEST_ERP_SAML_APP_LOGIN';\nexport const REQUEST_UPDATE_BILLABLE_FEATURES =\n 'app/Billing/REQUEST_UPDATE_BILLABLE_FEATURES';\nexport const INVOICES_TABLE = 'invoicesTable';\nexport const INVOICES_TABLE_PAGE_LENGTH = 25; // 2 years * 12 months/year + 1 extra\n\nexport const REQUEST_ADD_QUANTITY_FORM =\n 'app/Billing/REQUEST_ADD_QUANTITY_FORM';\nexport const GO_TO_STORE_FORM = 'app/Billing/GO_TO_STORE_FORM';\n\n// license helpers\nexport const REQUEST_ADD_USER_LICENSES =\n 'app/Billing/REQUEST_ADD_USER_LICENSES';\n","import { useCallback, useState } from 'react';\nvar useSetState = function (initialState) {\n if (initialState === void 0) { initialState = {}; }\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var setState = useCallback(function (patch) {\n set(function (prevState) {\n return Object.assign({}, prevState, patch instanceof Function ? patch(prevState) : patch);\n });\n }, []);\n return [state, setState];\n};\nexport default useSetState;\n","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { render } from \"rc-util/es/React/render\";\nimport { AppConfigContext } from '../app/context';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useNotification, { useInternalNotification } from './useNotification';\nlet notification = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n getContainer,\n rtl,\n maxCount,\n top,\n bottom,\n showProgress,\n pauseOnHover\n } = defaultGlobalConfig;\n const mergedContainer = (getContainer === null || getContainer === void 0 ? void 0 : getContainer()) || document.body;\n return {\n getContainer: () => mergedContainer,\n rtl,\n maxCount,\n top,\n bottom,\n showProgress,\n pauseOnHover\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n notificationConfig,\n sync\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = defaultGlobalConfig.prefixCls || getPrefixCls('notification');\n const appConfig = useContext(AppConfigContext);\n const [api, holder] = useInternalNotification(Object.assign(Object.assign(Object.assign({}, notificationConfig), {\n prefixCls\n }), appConfig.notification));\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return holder;\n});\nconst GlobalHolderWrapper = /*#__PURE__*/React.forwardRef((_, ref) => {\n const [notificationConfig, setNotificationConfig] = React.useState(getGlobalContext);\n const sync = () => {\n setNotificationConfig(getGlobalContext);\n };\n React.useEffect(sync, []);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const dom = /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: ref,\n sync: sync,\n notificationConfig: notificationConfig\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, global.holderRender ? global.holderRender(dom) : dom);\n});\nfunction flushNotice() {\n if (!notification) {\n const holderFragment = document.createDocumentFragment();\n const newNotification = {\n fragment: holderFragment\n };\n notification = newNotification;\n // Delay render to avoid sync issue\n act(() => {\n render(/*#__PURE__*/React.createElement(GlobalHolderWrapper, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n Promise.resolve().then(() => {\n if (!newNotification.instance && instance) {\n newNotification.instance = instance;\n newNotification.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!notification.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n switch (task.type) {\n case 'open':\n {\n act(() => {\n notification.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n });\n break;\n }\n case 'destroy':\n act(() => {\n notification === null || notification === void 0 ? void 0 : notification.instance.destroy(task.key);\n });\n break;\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setNotificationGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = notification === null || notification === void 0 ? void 0 : notification.sync) === null || _a === void 0 ? void 0 : _a.call(notification);\n });\n}\nfunction open(config) {\n const global = globalConfig();\n if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n warnContext('notification');\n }\n taskQueue.push({\n type: 'open',\n config\n });\n flushNotice();\n}\nconst destroy = key => {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n};\nconst methods = ['success', 'info', 'warning', 'error'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setNotificationGlobalConfig,\n useNotification,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n notification = null;\n };\n}\nexport default staticMethods;","/**\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\nexport default arrayPush;\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n constructor(input) {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n _defineProperty(this, \"isValid\", true);\n /**\n * Red, R in RGB\n */\n _defineProperty(this, \"r\", 0);\n /**\n * Green, G in RGB\n */\n _defineProperty(this, \"g\", 0);\n /**\n * Blue, B in RGB\n */\n _defineProperty(this, \"b\", 0);\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n _defineProperty(this, \"a\", 1);\n // HSV privates\n _defineProperty(this, \"_h\", void 0);\n _defineProperty(this, \"_s\", void 0);\n _defineProperty(this, \"_l\", void 0);\n _defineProperty(this, \"_v\", void 0);\n // intermediate variables to calculate HSL/HSV\n _defineProperty(this, \"_max\", void 0);\n _defineProperty(this, \"_min\", void 0);\n _defineProperty(this, \"_brightness\", void 0);\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._s = input._s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n getSaturation() {\n if (typeof this._s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._s = 0;\n } else {\n this._s = delta / this.getMax();\n }\n }\n return this._s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h,\n s,\n l,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h,\n s,\n v,\n a\n }) {\n this._h = h % 360;\n this._s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\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","import { consoleSandbox } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\n\nconst INTEGRATION_NAME = 'Debug';\n\n/**\n * Integration to debug sent Sentry events.\n * This integration should not be used in production.\n */\nconst _debugIntegration = ((options = {}) => {\n const _options = {\n debugger: false,\n stringify: false,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n client.on('beforeSendEvent', (event, hint) => {\n if (_options.debugger) {\n // eslint-disable-next-line no-debugger\n debugger;\n }\n\n /* eslint-disable no-console */\n consoleSandbox(() => {\n if (_options.stringify) {\n console.log(JSON.stringify(event, null, 2));\n if (hint && Object.keys(hint).length) {\n console.log(JSON.stringify(hint, null, 2));\n }\n } else {\n console.log(event);\n if (hint && Object.keys(hint).length) {\n console.log(hint);\n }\n }\n });\n /* eslint-enable no-console */\n });\n },\n };\n}) ;\n\nconst debugIntegration = defineIntegration(_debugIntegration);\n\nexport { debugIntegration };\n//# sourceMappingURL=debug.js.map\n","module.exports = __webpack_public_path__ + \"1383530217ac0068c844902d24e18e08.js\";","import { WINDOW } from '../../types.js';\nimport { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\nimport { initInteractionCountPolyfill, getInteractionCount } from './lib/polyfills/interactionCountPolyfill.js';\nimport { whenActivated } from './lib/whenActivated.js';\n\n/*\n * Copyright 2022 Google LLC\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 * https://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/** Thresholds for INP. See https://web.dev/articles/inp#what_is_a_good_inp_score */\nconst INPThresholds = [200, 500];\n\n// Used to store the interaction count after a bfcache restore, since p98\n// interaction latencies should only consider the current navigation.\nconst prevInteractionCount = 0;\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = () => {\n return getInteractionCount() - prevInteractionCount;\n};\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// A list of longest interactions on the page (by latency) sorted so the\n// longest one is first. The list is as most MAX_INTERACTIONS_TO_CONSIDER long.\nconst longestInteractionList = [];\n\n// A mapping of longest interactions by their interaction ID.\n// This is used for faster lookup.\nconst longestInteractionMap = {};\n\n/**\n * Takes a performance entry and adds it to the list of worst interactions\n * if its duration is long enough to make it among the worst. If the\n * entry is part of an existing interaction, it is merged and the latency\n * and entries list is updated as needed.\n */\nconst processEntry = (entry) => {\n // The least-long of the 10 longest interactions.\n const minLongestInteraction = longestInteractionList[longestInteractionList.length - 1];\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const existingInteraction = longestInteractionMap[entry.interactionId];\n\n // Only process the entry if it's possibly one of the ten longest,\n // or if it's part of an existing interaction.\n if (\n existingInteraction ||\n longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n (minLongestInteraction && entry.duration > minLongestInteraction.latency)\n ) {\n // If the interaction already exists, update it. Otherwise create one.\n if (existingInteraction) {\n existingInteraction.entries.push(entry);\n existingInteraction.latency = Math.max(existingInteraction.latency, entry.duration);\n } else {\n const interaction = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n id: entry.interactionId,\n latency: entry.duration,\n entries: [entry],\n };\n longestInteractionMap[interaction.id] = interaction;\n longestInteractionList.push(interaction);\n }\n\n // Sort the entries by latency (descending) and keep only the top ten.\n longestInteractionList.sort((a, b) => b.latency - a.latency);\n longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER).forEach(i => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete longestInteractionMap[i.id];\n });\n }\n};\n\n/**\n * Returns the estimated p98 longest interaction based on the stored\n * interaction candidates and the interaction count for the current page.\n */\nconst estimateP98LongestInteraction = () => {\n const candidateInteractionIndex = Math.min(\n longestInteractionList.length - 1,\n Math.floor(getInteractionCountForNavigation() / 50),\n );\n\n return longestInteractionList[candidateInteractionIndex];\n};\n\n/**\n * Calculates the [INP](https://web.dev/articles/inp) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed to\n * control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 are\n * reported as 0. Note that this will not affect your 75th percentile INP value\n * unless that value is also less than 40 (well below the recommended\n * [good](https://web.dev/articles/inp#what_is_a_good_inp_score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nconst onINP = (onReport, opts = {}) => {\n whenActivated(() => {\n // TODO(philipwalton): remove once the polyfill is no longer needed.\n initInteractionCountPolyfill();\n\n const metric = initMetric('INP');\n // eslint-disable-next-line prefer-const\n let report;\n\n const handleEntries = (entries) => {\n entries.forEach(entry => {\n if (entry.interactionId) {\n processEntry(entry);\n }\n\n // Entries of type `first-input` don't currently have an `interactionId`,\n // so to consider them in INP we have to first check that an existing\n // entry doesn't match the `duration` and `startTime`.\n // Note that this logic assumes that `event` entries are dispatched\n // before `first-input` entries. This is true in Chrome (the only browser\n // that currently supports INP).\n // TODO(philipwalton): remove once crbug.com/1325826 is fixed.\n if (entry.entryType === 'first-input') {\n const noMatchingEntry = !longestInteractionList.some(interaction => {\n return interaction.entries.some(prevEntry => {\n return entry.duration === prevEntry.duration && entry.startTime === prevEntry.startTime;\n });\n });\n if (noMatchingEntry) {\n processEntry(entry);\n }\n }\n });\n\n const inp = estimateP98LongestInteraction();\n\n if (inp && inp.latency !== metric.value) {\n metric.value = inp.latency;\n metric.entries = inp.entries;\n report();\n }\n };\n\n const po = observe('event', handleEntries, {\n // Event Timing entries have their durations rounded to the nearest 8ms,\n // so a duration of 40ms would be any event that spans 2.5 or more frames\n // at 60Hz. This threshold is chosen to strike a balance between usefulness\n // and performance. Running this callback for any interaction that spans\n // just one or two frames is likely not worth the insight that could be\n // gained.\n durationThreshold: opts.durationThreshold != null ? opts.durationThreshold : 40,\n } );\n\n report = bindReporter(onReport, metric, INPThresholds, opts.reportAllChanges);\n\n if (po) {\n // If browser supports interactionId (and so supports INP), also\n // observe entries of type `first-input`. This is useful in cases\n // where the first interaction is less than the `durationThreshold`.\n if ('PerformanceEventTiming' in WINDOW && 'interactionId' in PerformanceEventTiming.prototype) {\n po.observe({ type: 'first-input', buffered: true });\n }\n\n onHidden(() => {\n handleEntries(po.takeRecords() );\n\n // If the interaction count shows that there were interactions but\n // none were captured by the PerformanceObserver, report a latency of 0.\n if (metric.value < 0 && getInteractionCountForNavigation() > 0) {\n metric.value = 0;\n metric.entries = [];\n }\n\n report(true);\n });\n }\n });\n};\n\nexport { INPThresholds, onINP };\n//# sourceMappingURL=getINP.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-date-picker{width:100%}.op-date-picker>.ant-picker-input>input{color:var(--colorText) !important}.op-date-picker:hover{border-color:var(--colorTextLabel) !important}.op-date-picker:focus{border-color:var(--colorPrimaryHover)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpDatePicker/OpDatePicker.scss\"],\"names\":[],\"mappings\":\"AAAA,gBACE,UAAA,CAEA,wCACE,iCAAA,CAGF,sBACE,6CAAA,CAGF,sBACE,qCAAA\",\"sourcesContent\":[\".op-date-picker {\\n width: 100%;\\n\\n & > .ant-picker-input > input {\\n color: var(--colorText) !important;\\n }\\n\\n &:hover {\\n border-color: var(--colorTextLabel) !important;\\n }\\n\\n &:focus {\\n border-color: var(--colorPrimaryHover);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n // Border\n [`> span, > ${buttonTypeCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineEndColor: borderColor\n }\n }\n },\n '&:not(:first-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineStartColor: borderColor\n }\n }\n }\n }\n});\nconst genGroupStyle = token => {\n const {\n componentCls,\n fontSize,\n lineWidth,\n groupBorderColor,\n colorErrorHover\n } = token;\n return {\n [`${componentCls}-group`]: [{\n position: 'relative',\n display: 'inline-flex',\n // Border\n [`> span, > ${componentCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n '&:not(:first-child)': {\n marginInlineStart: token.calc(lineWidth).mul(-1).equal(),\n [`&, & > ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n },\n [componentCls]: {\n position: 'relative',\n zIndex: 1,\n '&:hover, &:focus, &:active': {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n },\n [`${componentCls}-icon-only`]: {\n fontSize\n }\n },\n // Border Color\n genButtonBorderStyle(`${componentCls}-primary`, groupBorderColor), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n };\n};\nexport default genGroupStyle;","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LockOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z\" } }] }, \"name\": \"lock\", \"theme\": \"outlined\" };\nexports.default = LockOutlined;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearContainerCache = clearContainerCache;\nexports.injectCSS = injectCSS;\nexports.removeCSS = removeCSS;\nexports.updateCSS = updateCSS;\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\nvar _canUseDom = _interopRequireDefault(require(\"./canUseDom\"));\nvar _contains = _interopRequireDefault(require(\"./contains\"));\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nfunction injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!(0, _canUseDom.default)()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nfunction removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !(0, _contains.default)(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nfunction clearContainerCache() {\n containerCache.clear();\n}\nfunction updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","module.exports = __webpack_public_path__ + \"aa5623ec68d23fedb9c9c115c7d99063.js\";","module.exports = __webpack_public_path__ + \"b33ef9b4202539d3690251cb8213a034.js\";","module.exports = __webpack_public_path__ + \"33d17d2cf6a71b82afeedb48f7928e56.js\";","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\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 == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar type = function type(rule, value, callback, source, options) {\n var ruleType = rule.type;\n var errors = [];\n var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\nexport default type;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _immutable = require('immutable');\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _utilities = require('./utilities');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (reducers) {\n var getDefaultState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _immutable2.default.Map;\n\n var reducerKeys = Object.keys(reducers);\n\n // eslint-disable-next-line space-infix-ops\n return function () {\n var inputState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getDefaultState();\n var action = arguments[1];\n\n // eslint-disable-next-line no-process-env\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = (0, _utilities.getUnexpectedInvocationParameterMessage)(inputState, reducers, action);\n\n if (warningMessage) {\n // eslint-disable-next-line no-console\n console.error(warningMessage);\n }\n }\n\n return inputState.withMutations(function (temporaryState) {\n reducerKeys.forEach(function (reducerName) {\n var reducer = reducers[reducerName];\n var currentDomainState = temporaryState.get(reducerName);\n var nextDomainState = reducer(currentDomainState, action);\n\n (0, _utilities.validateNextState)(nextDomainState, reducerName, action);\n\n temporaryState.set(reducerName, nextDomainState);\n });\n });\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=combineReducers.js.map","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","module.exports = __webpack_public_path__ + \"7cec85e554cfaf2464511da505025098.js\";","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","import { addHandler, maybeInstrument, supportsHistory, triggerHandlers, fill } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addHistoryInstrumentationHandler(handler) {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nexport { addHistoryInstrumentationHandler };\n//# sourceMappingURL=history.js.map\n","module.exports = __webpack_public_path__ + \"44599d9b6202ebebfcdd073edf3562e3.js\";","module.exports = __webpack_public_path__ + \"b13d991d1e4a016abea3fe5837261690.js\";","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","module.exports = __webpack_public_path__ + \"725da29f1643c2263a437c08a1454aea.js\";","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * 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\nmodule.exports = baseIsEqualDeep;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React, { useContext } from 'react';\nimport { render } from \"rc-util/es/React/render\";\nimport { AppConfigContext } from '../app/context';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n getContainer,\n duration,\n rtl,\n maxCount,\n top\n } = defaultGlobalConfig;\n const mergedContainer = (getContainer === null || getContainer === void 0 ? void 0 : getContainer()) || document.body;\n return {\n getContainer: () => mergedContainer,\n duration,\n rtl,\n maxCount,\n top\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n messageConfig,\n sync\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = defaultGlobalConfig.prefixCls || getPrefixCls('message');\n const appConfig = useContext(AppConfigContext);\n const [api, holder] = useInternalMessage(Object.assign(Object.assign(Object.assign({}, messageConfig), {\n prefixCls\n }), appConfig.message));\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return holder;\n});\nconst GlobalHolderWrapper = /*#__PURE__*/React.forwardRef((_, ref) => {\n const [messageConfig, setMessageConfig] = React.useState(getGlobalContext);\n const sync = () => {\n setMessageConfig(getGlobalContext);\n };\n React.useEffect(sync, []);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const dom = /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: ref,\n sync: sync,\n messageConfig: messageConfig\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, global.holderRender ? global.holderRender(dom) : dom);\n});\nfunction flushNotice() {\n if (!message) {\n const holderFragment = document.createDocumentFragment();\n const newMessage = {\n fragment: holderFragment\n };\n message = newMessage;\n // Delay render to avoid sync issue\n act(() => {\n render(/*#__PURE__*/React.createElement(GlobalHolderWrapper, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n // React 18 test env will throw if call immediately in ref\n Promise.resolve().then(() => {\n if (!newMessage.instance && instance) {\n newMessage.instance = instance;\n newMessage.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!message.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n const {\n type,\n skipped\n } = task;\n // Only `skipped` when user call notice but cancel it immediately\n // and instance not ready\n if (!skipped) {\n switch (type) {\n case 'open':\n {\n act(() => {\n const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n break;\n }\n case 'destroy':\n act(() => {\n message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n });\n break;\n // Other type open\n default:\n {\n act(() => {\n var _message$instance;\n const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n }\n }\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setMessageGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n });\n}\nfunction open(config) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type: 'open',\n config,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction typeOpen(type, args) {\n const global = globalConfig();\n if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n warnContext('message');\n }\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type,\n args,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nconst destroy = key => {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n};\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setMessageGlobalConfig,\n useMessage,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return typeOpen(type, args);\n };\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n message = null;\n };\n}\nexport default staticMethods;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.clear-all-alerts-button{width:400px;height:100px;position:fixed;z-index:2049;bottom:0;right:0;background:radial-gradient(farthest-side at 85% 75%, var(--colorBgContainer), transparent)}.clear-all-alerts-button button{position:fixed;bottom:4px;right:16px;z-index:2051;padding:8px 16px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/containers/AlertWrapper/components/ClearAllAlertsButton.scss\"],\"names\":[],\"mappings\":\"AAAA,yBACE,WAAA,CACA,YAAA,CACA,cAAA,CACA,YAAA,CACA,QAAA,CACA,OAAA,CACA,0FAAA,CAMA,gCACE,cAAA,CACA,UAAA,CACA,UAAA,CACA,YAAA,CACA,gBAAA\",\"sourcesContent\":[\".clear-all-alerts-button {\\n width: 400px;\\n height: 100px;\\n position: fixed;\\n z-index: 2049;\\n bottom: 0;\\n right: 0;\\n background: radial-gradient(\\n farthest-side at 85% 75%,\\n var(--colorBgContainer),\\n transparent\\n );\\n\\n button {\\n position: fixed;\\n bottom: 4px;\\n right: 16px;\\n z-index: 2051;\\n padding: 8px 16px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","/**\n * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,\n * descriptors, and functions.\n *\n * Adapted from Sucrase (https://github.com/alangpierce/sucrase)\n * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15\n *\n * @param ops Array result of expression conversion\n * @returns The value of the expression\n */\nfunction _optionalChain(ops) {\n let lastAccessLHS = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i] ;\n const fn = ops[i + 1] ;\n i += 2;\n // by checking for loose equality to `null`, we catch both `null` and `undefined`\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it\n return;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args) => (value ).call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n}\n\n// Sucrase version\n// function _optionalChain(ops) {\n// let lastAccessLHS = undefined;\n// let value = ops[0];\n// let i = 1;\n// while (i < ops.length) {\n// const op = ops[i];\n// const fn = ops[i + 1];\n// i += 2;\n// if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n// return undefined;\n// }\n// if (op === 'access' || op === 'optionalAccess') {\n// lastAccessLHS = value;\n// value = fn(value);\n// } else if (op === 'call' || op === 'optionalCall') {\n// value = fn((...args) => value.call(lastAccessLHS, ...args));\n// lastAccessLHS = undefined;\n// }\n// }\n// return value;\n// }\n\nexport { _optionalChain };\n//# sourceMappingURL=_optionalChain.js.map\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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 * 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\nmodule.exports = baseKeys;\n","/*\n * Copyright 2020 Google LLC\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 * https://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 * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nconst generateUniqueID = () => {\n return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import eq from './eq.js';\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\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\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\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\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// 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\nexport default ListCache;\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\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheSet;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-text-button__button{padding:0 !important;font-size:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormTextButton/OpFormTextButton.scss\"],\"names\":[],\"mappings\":\"AACE,6BACE,oBAAA,CACA,cAAA\",\"sourcesContent\":[\".op-form-text-button {\\n &__button {\\n padding: 0 !important;\\n font-size: 12px;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { browserTracingIntegration, WINDOW, startBrowserTracingPageLoadSpan, startBrowserTracingNavigationSpan } from '@sentry/browser';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, getClient } from '@sentry/core';\nimport { logger, getNumberOfUrlSegments } from '@sentry/utils';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n// Inspired from Donnie McNeal's solution:\n// https://gist.github.com/wontondon/e8c4bdf2888875e4c755712e99279536\n\n\nlet _useEffect;\nlet _useLocation;\nlet _useNavigationType;\nlet _createRoutesFromChildren;\nlet _matchRoutes;\nlet _stripBasename = false;\n\nconst CLIENTS_WITH_INSTRUMENT_NAVIGATION = new WeakSet();\n\n/**\n * A browser tracing integration that uses React Router v6 to instrument navigations.\n * Expects `useEffect`, `useLocation`, `useNavigationType`, `createRoutesFromChildren` and `matchRoutes` to be passed as options.\n */\nfunction reactRouterV6BrowserTracingIntegration(\n options,\n) {\n const integration = browserTracingIntegration({\n ...options,\n instrumentPageLoad: false,\n instrumentNavigation: false,\n });\n\n const {\n useEffect,\n useLocation,\n useNavigationType,\n createRoutesFromChildren,\n matchRoutes,\n stripBasename,\n instrumentPageLoad = true,\n instrumentNavigation = true,\n } = options;\n\n return {\n ...integration,\n setup() {\n _useEffect = useEffect;\n _useLocation = useLocation;\n _useNavigationType = useNavigationType;\n _matchRoutes = matchRoutes;\n _createRoutesFromChildren = createRoutesFromChildren;\n _stripBasename = stripBasename || false;\n },\n afterAllSetup(client) {\n integration.afterAllSetup(client);\n\n const initPathName = WINDOW && WINDOW.location && WINDOW.location.pathname;\n if (instrumentPageLoad && initPathName) {\n startBrowserTracingPageLoadSpan(client, {\n name: initPathName,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'pageload',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.react.reactrouter_v6',\n },\n });\n }\n\n if (instrumentNavigation) {\n CLIENTS_WITH_INSTRUMENT_NAVIGATION.add(client);\n }\n },\n };\n}\n\n/**\n * Strip the basename from a pathname if exists.\n *\n * Vendored and modified from `react-router`\n * https://github.com/remix-run/react-router/blob/462bb712156a3f739d6139a0f14810b76b002df6/packages/router/utils.ts#L1038\n */\nfunction stripBasenameFromPathname(pathname, basename) {\n if (!basename || basename === '/') {\n return pathname;\n }\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return pathname;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n const startIndex = basename.endsWith('/') ? basename.length - 1 : basename.length;\n const nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== '/') {\n // pathname does not start with basename/\n return pathname;\n }\n\n return pathname.slice(startIndex) || '/';\n}\n\nfunction getNormalizedName(\n routes,\n location,\n branches,\n basename = '',\n) {\n if (!routes || routes.length === 0) {\n return [_stripBasename ? stripBasenameFromPathname(location.pathname, basename) : location.pathname, 'url'];\n }\n\n let pathBuilder = '';\n if (branches) {\n for (const branch of branches) {\n const route = branch.route;\n if (route) {\n // Early return if index route\n if (route.index) {\n return [_stripBasename ? stripBasenameFromPathname(branch.pathname, basename) : branch.pathname, 'route'];\n }\n\n const path = route.path;\n if (path) {\n const newPath = path[0] === '/' || pathBuilder[pathBuilder.length - 1] === '/' ? path : `/${path}`;\n pathBuilder += newPath;\n\n if (basename + branch.pathname === location.pathname) {\n if (\n // If the route defined on the element is something like\n // <Route path=\"/stores/:storeId/products/:productId\" element={<div>Product</div>} />\n // We should check against the branch.pathname for the number of / seperators\n getNumberOfUrlSegments(pathBuilder) !== getNumberOfUrlSegments(branch.pathname) &&\n // We should not count wildcard operators in the url segments calculation\n pathBuilder.slice(-2) !== '/*'\n ) {\n return [(_stripBasename ? '' : basename) + newPath, 'route'];\n }\n return [(_stripBasename ? '' : basename) + pathBuilder, 'route'];\n }\n }\n }\n }\n }\n\n return [_stripBasename ? stripBasenameFromPathname(location.pathname, basename) : location.pathname, 'url'];\n}\n\nfunction updatePageloadTransaction(\n activeRootSpan,\n location,\n routes,\n matches,\n basename,\n) {\n const branches = Array.isArray(matches)\n ? matches\n : (_matchRoutes(routes, location, basename) );\n\n if (branches) {\n const [name, source] = getNormalizedName(routes, location, branches, basename);\n\n getCurrentScope().setTransactionName(name);\n\n if (activeRootSpan) {\n activeRootSpan.updateName(name);\n activeRootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, source);\n }\n }\n}\n\nfunction handleNavigation(\n location,\n routes,\n navigationType,\n matches,\n basename,\n) {\n const branches = Array.isArray(matches) ? matches : _matchRoutes(routes, location, basename);\n\n const client = getClient();\n if (!client || !CLIENTS_WITH_INSTRUMENT_NAVIGATION.has(client)) {\n return;\n }\n\n if ((navigationType === 'PUSH' || navigationType === 'POP') && branches) {\n const [name, source] = getNormalizedName(routes, location, branches, basename);\n\n startBrowserTracingNavigationSpan(client, {\n name,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'navigation',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.react.reactrouter_v6',\n },\n });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction withSentryReactRouterV6Routing(Routes) {\n if (!_useEffect || !_useLocation || !_useNavigationType || !_createRoutesFromChildren || !_matchRoutes) {\n DEBUG_BUILD &&\n logger.warn(`reactRouterV6Instrumentation was unable to wrap Routes because of one or more missing parameters.\n useEffect: ${_useEffect}. useLocation: ${_useLocation}. useNavigationType: ${_useNavigationType}.\n createRoutesFromChildren: ${_createRoutesFromChildren}. matchRoutes: ${_matchRoutes}.`);\n\n return Routes;\n }\n\n let isMountRenderPass = true;\n\n const SentryRoutes = (props) => {\n const location = _useLocation();\n const navigationType = _useNavigationType();\n\n _useEffect(\n () => {\n const routes = _createRoutesFromChildren(props.children) ;\n\n if (isMountRenderPass) {\n updatePageloadTransaction(getActiveRootSpan(), location, routes);\n isMountRenderPass = false;\n } else {\n handleNavigation(location, routes, navigationType);\n }\n },\n // `props.children` is purpusely not included in the dependency array, because we do not want to re-run this effect\n // when the children change. We only want to start transactions when the location or navigation type change.\n [location, navigationType],\n );\n\n // @ts-expect-error Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params\n return React.createElement(Routes, { ...props,} );\n };\n\n hoistNonReactStatics(SentryRoutes, Routes);\n\n // @ts-expect-error Setting more specific React Component typing for `R` generic above\n // will break advanced type inference done by react router params\n return SentryRoutes;\n}\n\nfunction wrapUseRoutes(origUseRoutes) {\n if (!_useEffect || !_useLocation || !_useNavigationType || !_matchRoutes) {\n DEBUG_BUILD &&\n logger.warn(\n 'reactRouterV6Instrumentation was unable to wrap `useRoutes` because of one or more missing parameters.',\n );\n\n return origUseRoutes;\n }\n\n let isMountRenderPass = true;\n\n const SentryRoutes\n\n = (props) => {\n const { routes, locationArg } = props;\n\n const Routes = origUseRoutes(routes, locationArg);\n\n const location = _useLocation();\n const navigationType = _useNavigationType();\n\n // A value with stable identity to either pick `locationArg` if available or `location` if not\n const stableLocationParam =\n typeof locationArg === 'string' || (locationArg && locationArg.pathname)\n ? (locationArg )\n : location;\n\n _useEffect(() => {\n const normalizedLocation =\n typeof stableLocationParam === 'string' ? { pathname: stableLocationParam } : stableLocationParam;\n\n if (isMountRenderPass) {\n updatePageloadTransaction(getActiveRootSpan(), normalizedLocation, routes);\n isMountRenderPass = false;\n } else {\n handleNavigation(normalizedLocation, routes, navigationType);\n }\n }, [navigationType, stableLocationParam]);\n\n return Routes;\n };\n\n // eslint-disable-next-line react/display-name\n return (routes, locationArg) => {\n return React.createElement(SentryRoutes, { routes: routes, locationArg: locationArg,} );\n };\n}\n\nfunction wrapCreateBrowserRouter\n\n(createRouterFunction) {\n if (!_useEffect || !_useLocation || !_useNavigationType || !_matchRoutes) {\n DEBUG_BUILD &&\n logger.warn(\n 'reactRouterV6Instrumentation was unable to wrap the `createRouter` function because of one or more missing parameters.',\n );\n\n return createRouterFunction;\n }\n\n // `opts` for createBrowserHistory and createMemoryHistory are different, but also not relevant for us at the moment.\n // `basename` is the only option that is relevant for us, and it is the same for all.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (routes, opts) {\n const router = createRouterFunction(routes, opts);\n const basename = opts && opts.basename;\n\n const activeRootSpan = getActiveRootSpan();\n\n // The initial load ends when `createBrowserRouter` is called.\n // This is the earliest convenient time to update the transaction name.\n // Callbacks to `router.subscribe` are not called for the initial load.\n if (router.state.historyAction === 'POP' && activeRootSpan) {\n updatePageloadTransaction(activeRootSpan, router.state.location, routes, undefined, basename);\n }\n\n router.subscribe((state) => {\n const location = state.location;\n if (state.historyAction === 'PUSH' || state.historyAction === 'POP') {\n handleNavigation(location, routes, state.historyAction, undefined, basename);\n }\n });\n\n return router;\n };\n}\n\nfunction getActiveRootSpan() {\n const span = getActiveSpan();\n const rootSpan = span ? getRootSpan(span) : undefined;\n\n if (!rootSpan) {\n return undefined;\n }\n\n const op = spanToJSON(rootSpan).op;\n\n // Only use this root span if it is a pageload or navigation span\n return op === 'navigation' || op === 'pageload' ? rootSpan : undefined;\n}\n\nexport { reactRouterV6BrowserTracingIntegration, withSentryReactRouterV6Routing, wrapCreateBrowserRouter, wrapUseRoutes };\n//# sourceMappingURL=reactrouterv6.js.map\n","import { useContext } from 'react';\nimport { VariantContext } from '../context';\nimport { ConfigContext, Variants } from '../../config-provider';\n/**\n * Compatible for legacy `bordered` prop.\n */\nconst useVariant = function (component, variant) {\n let legacyBordered = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var _a, _b;\n const {\n variant: configVariant,\n [component]: componentConfig\n } = useContext(ConfigContext);\n const ctxVariant = useContext(VariantContext);\n const configComponentVariant = componentConfig === null || componentConfig === void 0 ? void 0 : componentConfig.variant;\n let mergedVariant;\n if (typeof variant !== 'undefined') {\n mergedVariant = variant;\n } else if (legacyBordered === false) {\n mergedVariant = 'borderless';\n } else {\n // form variant > component global variant > global variant\n mergedVariant = (_b = (_a = ctxVariant !== null && ctxVariant !== void 0 ? ctxVariant : configComponentVariant) !== null && _a !== void 0 ? _a : configVariant) !== null && _b !== void 0 ? _b : 'outlined';\n }\n const enableVariantCls = Variants.includes(mergedVariant);\n return [mergedVariant, enableVariantCls];\n};\nexport default useVariant;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-form-link__button{padding:0;font-weight:500;height:initial !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpForm/formComponents/OpFormLink/OpFormLink.scss\"],\"names\":[],\"mappings\":\"AACE,sBACE,SAAA,CACA,eAAA,CACA,yBAAA\",\"sourcesContent\":[\".op-form-link {\\n &__button {\\n padding: 0;\\n font-weight: 500;\\n height: initial !important;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { SvgWrapper } from 'components/svgs/SvgWrapper/SvgWrapper';\n\nexport const PhoneExternalSvg = ({ ...svgProps }) => (\n <SvgWrapper viewBox=\"0 0 24 24\" {...svgProps}>\n <path d=\"M21.9999 2.51519C22.004 2.38206 21.9553 2.24758 21.8537 2.14596C21.756 2.04829 21.628 1.99948 21.5 1.99951C21.4999 1.99951 21.5 1.99951 21.5 1.99951L16.9999 1.99952C16.7237 1.99952 16.4999 2.22338 16.4999 2.49952C16.4999 2.77566 16.7237 2.99952 16.9999 2.99952L20.293 2.99951L14.1465 9.14596C13.9513 9.34122 13.9513 9.6578 14.1465 9.85307C14.3418 10.0483 14.6584 10.0483 14.8537 9.85307L20.9999 3.70686V6.99951C20.9999 7.27565 21.2237 7.49951 21.4999 7.49951C21.776 7.49951 21.9999 7.27565 21.9999 6.99951V2.51519Z\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.625 1.5C5.39788 1.5 5.07235 1.54311 4.63546 1.64354C4.19634 1.74449 3.87386 1.84551 3.65449 1.94203L3.64677 1.94543C3.48308 2.01418 3.27424 2.16708 3.02587 2.45294C2.78046 2.73539 2.51617 3.12469 2.23527 3.63107C1.73799 4.54828 1.5 5.43507 1.5 6.29688C1.5 6.55646 1.51682 6.81021 1.55022 7.05829C1.58279 7.30024 1.64208 7.57569 1.73076 7.88608C1.82386 8.21193 1.89591 8.44445 1.94778 8.59061C2.00339 8.74734 2.1087 9.03253 2.26504 9.44944C2.41722 9.85525 2.51427 10.1189 2.55066 10.2271C2.90457 11.2172 3.3215 12.094 3.79931 12.8605C4.59714 14.1431 5.69601 15.4889 7.10355 16.8964C8.5111 18.304 9.8565 19.4026 11.1391 20.2004C11.9056 20.6782 12.7828 21.0954 13.7729 21.4493C13.8811 21.4857 14.1447 21.5828 14.5506 21.735C14.9675 21.8913 15.2527 21.9966 15.4094 22.0522C15.5556 22.1041 15.7881 22.1761 16.1139 22.2692C16.4243 22.3579 16.6998 22.4172 16.9417 22.4498C17.1898 22.4832 17.4435 22.5 17.7031 22.5C18.565 22.5 19.4518 22.262 20.369 21.7647C20.8754 21.4838 21.2646 21.2195 21.5471 20.9741C21.8329 20.7258 21.9859 20.5169 22.0546 20.3533L22.0579 20.3455C22.1544 20.1261 22.2555 19.8037 22.3565 19.3645C22.4569 18.9277 22.5 18.6021 22.5 18.375C22.5 18.3187 22.4969 18.2795 22.4933 18.2543C22.4928 18.2507 22.4923 18.2476 22.4918 18.2449C22.4907 18.2437 22.4895 18.2425 22.4882 18.2412C22.4598 18.2125 22.4081 18.1684 22.3234 18.1093C22.1542 17.9914 21.8975 17.8437 21.542 17.666L21.5283 17.6591L21.5151 17.6515C21.3231 17.5403 21.0466 17.3866 20.6833 17.1894C20.3171 16.9906 19.9842 16.8072 19.6849 16.6391C19.3843 16.4704 19.1015 16.3065 18.8365 16.1475L18.8144 16.1342L18.7938 16.1187C18.762 16.0949 18.6421 16.0108 18.419 15.8568C18.2108 15.713 18.0495 15.6168 17.9311 15.5597C17.8389 15.5152 17.7652 15.5004 17.7056 15.5C17.7025 15.5006 17.6692 15.5058 17.5992 15.5457C17.5156 15.5934 17.4048 15.6762 17.2663 15.8078C16.9745 16.085 16.7069 16.3866 16.4632 16.7131C16.1899 17.0793 15.8992 17.4195 15.591 17.7332C15.4291 17.898 15.265 18.0392 15.0993 18.1418C14.9374 18.2421 14.738 18.3281 14.5156 18.3281C14.3379 18.3281 14.1574 18.2807 13.9904 18.2189C13.8443 18.1648 13.7175 18.1131 13.6201 18.0644C13.5247 18.0167 13.3822 17.9327 13.206 17.8238C13.1179 17.7694 13.0504 17.728 13.0028 17.6992C12.9789 17.6848 12.9612 17.6742 12.949 17.667C12.9452 17.6648 12.9424 17.6632 12.9406 17.6621L12.9387 17.6612L12.9293 17.656C11.4667 16.8446 10.2042 15.9113 9.14645 14.8536C8.08872 13.7958 7.15538 12.5333 6.34402 11.0707L6.33883 11.0613L6.33789 11.0594C6.33682 11.0576 6.33521 11.0548 6.33295 11.051C6.3258 11.0388 6.31523 11.0211 6.30077 10.9972C6.27198 10.9496 6.23058 10.8821 6.17616 10.794C6.06731 10.6178 5.98331 10.4753 5.9356 10.3799C5.88692 10.2825 5.83523 10.1557 5.78113 10.0096C5.71929 9.84265 5.67188 9.66215 5.67188 9.48438C5.67188 9.26196 5.7579 9.06257 5.85817 8.90073C5.96084 8.73501 6.10198 8.57086 6.26678 8.40896C6.58048 8.10076 6.92067 7.81009 7.2869 7.53678C7.61338 7.29314 7.91503 7.0255 8.19219 6.73375C8.32384 6.59517 8.40664 6.48442 8.45428 6.40084C8.49443 6.3304 8.49948 6.29712 8.49999 6.29436C8.49959 6.23478 8.48482 6.16106 8.44035 6.06894C8.38315 5.95046 8.28705 5.78924 8.14324 5.58097C7.98924 5.35794 7.90508 5.23803 7.88125 5.20625L7.86577 5.18562L7.8525 5.1635C7.6935 4.8985 7.52963 4.61566 7.36088 4.31508C7.19284 4.01575 7.00939 3.68291 6.81057 3.31667C6.61339 2.95345 6.45969 2.67689 6.34854 2.48489L6.34088 2.47166L6.33404 2.45798C6.15629 2.10249 6.0086 1.84576 5.89066 1.67663C5.83159 1.59193 5.78755 1.54022 5.7588 1.5118C5.7575 1.5105 5.75626 1.50929 5.75508 1.50817C5.75242 1.50771 5.7493 1.50721 5.7457 1.50669C5.72047 1.50309 5.68126 1.5 5.625 1.5ZM4.41142 0.66896C4.88078 0.561061 5.28962 0.5 5.625 0.5C5.78543 0.5 5.96922 0.514474 6.13232 0.579932C6.27422 0.632264 6.38439 0.724065 6.4619 0.800705C6.54904 0.886867 6.63195 0.991402 6.7109 1.10462C6.86707 1.32855 7.03741 1.62963 7.22162 1.9971C7.33881 2.20001 7.49504 2.48149 7.68943 2.83958C7.88645 3.20251 8.06758 3.53112 8.23287 3.82555C8.3932 4.11113 8.54826 4.37896 8.69807 4.62911C8.74465 4.69325 8.83615 4.82452 8.96614 5.01278C9.12441 5.24201 9.25226 5.45058 9.3409 5.63419C9.44163 5.84285 9.5 6.06523 9.5 6.29688C9.5 6.51776 9.42255 6.72149 9.32306 6.89604C9.22227 7.07287 9.08241 7.24858 8.91719 7.4225C8.6006 7.75575 8.25642 8.06103 7.88498 8.33822C7.55329 8.58575 7.24764 8.84716 6.9676 9.12229C6.83552 9.25206 6.754 9.35354 6.70824 9.4274C6.68587 9.46351 6.67643 9.4859 6.67274 9.49602C6.67536 9.51867 6.6852 9.57136 6.71887 9.66228C6.76894 9.79746 6.80579 9.88417 6.83003 9.93264C6.85523 9.98305 6.91706 10.0906 7.02696 10.2685C7.11538 10.4117 7.187 10.5283 7.21846 10.5856C7.99043 11.9772 8.86961 13.1625 9.85355 14.1464C10.8375 15.1304 12.0228 16.0095 13.4144 16.7815C13.4718 16.813 13.5884 16.8846 13.7315 16.973C13.9094 17.0829 14.017 17.1448 14.0674 17.17C14.1158 17.1942 14.2025 17.2311 14.3377 17.2811C14.4286 17.3148 14.4813 17.3246 14.504 17.3273C14.5141 17.3236 14.5365 17.3141 14.5726 17.2918C14.6465 17.246 14.7479 17.1645 14.8777 17.0324C15.1528 16.7524 15.4143 16.4467 15.6618 16.115C15.939 15.7436 16.2442 15.3994 16.5775 15.0828C16.7514 14.9176 16.9271 14.7777 17.104 14.6769C17.2785 14.5774 17.4822 14.5 17.7031 14.5C17.9348 14.5 18.1572 14.5584 18.3658 14.6591C18.5494 14.7477 18.758 14.8756 18.9872 15.0339C19.1755 15.1638 19.3067 15.2553 19.3709 15.3019C19.621 15.4517 19.8889 15.6068 20.1745 15.7671C20.4689 15.9324 20.7975 16.1136 21.1604 16.3106C21.5185 16.505 21.8 16.6612 22.0029 16.7784C22.3704 16.9626 22.6715 17.1329 22.8954 17.2891C23.0086 17.3681 23.1131 17.451 23.1993 17.5381C23.2759 17.6156 23.3677 17.7258 23.4201 17.8677C23.4855 18.0308 23.5 18.2146 23.5 18.375C23.5 18.7104 23.4389 19.1192 23.331 19.5886C23.2241 20.0538 23.1069 20.4435 22.9749 20.7445C22.8246 21.1001 22.5512 21.4264 22.2029 21.729C21.8503 22.0353 21.3965 22.3384 20.8518 22.6404L20.8478 22.6426C19.8074 23.2071 18.7574 23.5 17.7031 23.5C17.4002 23.5 17.1019 23.4804 16.8083 23.4408C16.5086 23.4005 16.1851 23.3296 15.8392 23.2308C15.5088 23.1364 15.2517 23.0574 15.075 22.9947C14.9088 22.9357 14.6159 22.8274 14.1994 22.6713C13.7789 22.5136 13.5341 22.4238 13.4513 22.3962L13.4412 22.3929C12.3916 22.018 11.4473 21.5709 10.6109 21.0496C9.24767 20.2016 7.84307 19.0502 6.39645 17.6036C4.94983 16.1569 3.79844 14.7523 2.95044 13.3891C2.4291 12.5527 1.98209 11.6083 1.60725 10.5588L1.60368 10.5488C1.57607 10.466 1.48643 10.2211 1.32871 9.80056C1.17255 9.38413 1.06432 9.0912 1.00535 8.92502C0.942629 8.74826 0.863638 8.4912 0.769238 8.1608C0.670421 7.81494 0.599504 7.49143 0.559157 7.19171C0.519637 6.89813 0.5 6.59979 0.5 6.29688C0.5 5.24264 0.792914 4.19259 1.35739 3.15218L1.35957 3.14816C1.6616 2.60344 1.96466 2.14965 2.271 1.79706C2.57357 1.44882 2.89989 1.17546 3.25546 1.02509C3.55643 0.893107 3.94619 0.775908 4.41142 0.66896Z\"\n />\n </SvgWrapper>\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","module.exports = __webpack_public_path__ + \"7259bceba25ac1476fc775122a63d249.js\";","module.exports = __webpack_public_path__ + \"a569591af2f834ec4b58f43ab7742186.js\";","module.exports = __webpack_public_path__ + \"51f903c5ce5284a63196247cffb5ca40.js\";","export const REQUEST_ALL_FEATURES = 'features/REQUEST_ALL_FEATURES';\nexport const SET_ALL_FEATURES = 'features/SET_ALL_FEATURES';\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.op-tag-input{color:var(--colorText);width:100%}.op-tag-input__mock-dropdown{background:var(--colorBgElevated);position:absolute;z-index:1050;border-radius:8px;padding:4px;margin-top:4px;box-sizing:border-box;box-shadow:0 6px 16px 0 rgba(0,0,0,.08),0 3px 6px -4px rgba(0,0,0,.12),0 9px 28px 8px rgba(0,0,0,.05)}.op-tag-input__mock-dropdown-item{background:var(--colorBgElevated);padding:7px 12px;border-radius:4px;cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./app/new-components/DLS/OpTagInput/OpTagInput.scss\"],\"names\":[],\"mappings\":\"AAAA,cACE,sBAAA,CACA,UAAA,CAEA,6BACE,iCAAA,CACA,iBAAA,CACA,YAAA,CACA,iBAAA,CACA,WAAA,CACA,cAAA,CACA,qBAAA,CACA,qGACE,CAKJ,kCACE,iCAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA\",\"sourcesContent\":[\".op-tag-input {\\n color: var(--colorText);\\n width: 100%;\\n\\n &__mock-dropdown {\\n background: var(--colorBgElevated);\\n position: absolute;\\n z-index: 1050;\\n border-radius: 8px;\\n padding: 4px;\\n margin-top: 4px;\\n box-sizing: border-box;\\n box-shadow:\\n 0 6px 16px 0 rgb(0 0 0 / 8%),\\n 0 3px 6px -4px rgb(0 0 0 / 12%),\\n 0 9px 28px 8px rgb(0 0 0 / 5%);\\n }\\n\\n &__mock-dropdown-item {\\n background: var(--colorBgElevated);\\n padding: 7px 12px;\\n border-radius: 4px;\\n cursor: pointer;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","\"use strict\";\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexports.default = PlusOutlined;\n","module.exports = __webpack_public_path__ + \"64a5f4d62507d032038dcd76d15188e1.js\";","'use strict';\nrequire('../../modules/esnext.array.find-last-index');\nvar parent = require('../../stable/array/find-last-index');\n\nmodule.exports = parent;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = __webpack_public_path__ + \"92f4aab5c66f6269c7054c8fbcb3de13.js\";","'use strict';\nmodule.exports = false;\n","// action constants\nexport const SET_OMNISELECT_LOADING = 'app/omniselect/SET_OMNISELECT_LOADING';\nexport const REQUEST_OMNISELECT_DATA = 'app/omniselect/REQUEST_OMNISELECT_DATA';\nexport const SET_OMNISELECT_LIST = 'app/omniselect/SET_OMNISELECT_LIST';\nexport const SET_OMNISELECT_OPTIONS = 'app/omniselect/SET_OMNISELECT_OPTIONS';\nexport const ADD_OMNISELECT_ADD = 'app/omniselect/ADD_OMNISELECT_ADD';\nexport const REMOVE_OMNISELECT_ADD = 'app/omniselect/REMOVE_OMNISELECT_ADD';\nexport const ADD_OMNISELECT_REMOVE = 'app/omniselect/ADD_OMNISELECT_REMOVE';\nexport const REMOVE_OMNISELECT_REMOVE =\n 'app/omniselect/REMOVE_OMNISELECT_REMOVE';\nexport const RESET_OMNISELECT_STATE = 'app/omniselect/RESET_OMNISELECT_STATE';\nexport const SET_OMNISELECT_COUNT = 'app/omniselect/SET_OMNISELECT_COUNT';\n\n// State item names\nexport const LOADING = 'loading';\nexport const LIST = 'list';\nexport const OPTIONS = 'options';\nexport const ADD = 'add';\nexport const REMOVE = 'remove';\nexport const COUNT = 'count';\n\n// other\nexport const MAX_CHANGES_PER_SUBMIT = 50;\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","module.exports = __webpack_public_path__ + \"90f3dc3c18d447104b63c156cb7fddb5.js\";","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","import { CONSOLE_LEVELS, GLOBAL_OBJ, addConsoleInstrumentationHandler, severityLevelFromString, addExceptionMechanism, safeJoin } from '@sentry/utils';\nimport { getClient, withScope } from '../currentScopes.js';\nimport { captureMessage, captureException } from '../exports.js';\nimport { defineIntegration } from '../integration.js';\n\nconst INTEGRATION_NAME = 'CaptureConsole';\n\nconst _captureConsoleIntegration = ((options = {}) => {\n const levels = options.levels || CONSOLE_LEVELS;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.includes(level)) {\n return;\n }\n\n consoleHandler(args, level);\n });\n },\n };\n}) ;\n\n/**\n * Send Console API calls as Sentry Events.\n */\nconst captureConsoleIntegration = defineIntegration(_captureConsoleIntegration);\n\nfunction consoleHandler(args, level) {\n const captureContext = {\n level: severityLevelFromString(level),\n extra: {\n arguments: args,\n },\n };\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n event.logger = 'console';\n\n addExceptionMechanism(event, {\n handled: false,\n type: 'console',\n });\n\n return event;\n });\n\n if (level === 'assert') {\n if (!args[0]) {\n const message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`;\n scope.setExtra('arguments', args.slice(1));\n captureMessage(message, captureContext);\n }\n return;\n }\n\n const error = args.find(arg => arg instanceof Error);\n if (error) {\n captureException(error, captureContext);\n return;\n }\n\n const message = safeJoin(args, ' ');\n captureMessage(message, captureContext);\n });\n}\n\nexport { captureConsoleIntegration };\n//# sourceMappingURL=captureconsole.js.map\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpText.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./OpText.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { ComponentProps } from 'react';\nimport Typography from 'antd/es/typography';\n\nimport clsx from 'clsx';\n\nimport './OpText.scss';\n\nconst { Text } = Typography;\n\ninterface OpTextProps extends ComponentProps<typeof Text> {\n children?: React.ReactNode | React.ReactNode[];\n inline?: boolean;\n size?: 'large' | 'regular' | 'small' | 'tiny';\n ellipsis?: boolean;\n className?: string;\n fontWeight?: '300' | '400' | '500' | '600' | '700';\n testId?: string;\n}\n\nexport const OpText = ({\n children,\n inline = false,\n size = 'regular',\n ellipsis = false,\n fontWeight = '400',\n testId = 'op-text',\n className,\n}: OpTextProps) => {\n const classes = clsx(\n 'op-text',\n `op-text--${fontWeight}`,\n { 'op-text--large': size === 'large' },\n { 'op-text--regular': size === 'regular' },\n { 'op-text--small': size === 'small' },\n { 'op-text--tiny': size === 'tiny' },\n { 'op-text--inline': inline },\n { 'op-text--ellipsis': ellipsis },\n className,\n );\n\n return (\n <Text className={classes} ellipsis={ellipsis} data-testid={testId}>\n {children}\n </Text>\n );\n};\n","module.exports = __webpack_public_path__ + \"5398e3b596fa15df4d84b2aa0464e5c4.js\";","export default __webpack_public_path__ + \"662c641c12f48ff6aec7309ba0db1ec5.svg\";","import { Keyframes } from '@ant-design/cssinjs';\nimport { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadow,\n colorText,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n contentPadding,\n contentBg\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n const noticeStyle = {\n padding: paddingXS,\n textAlign: 'center',\n [`${componentCls}-custom-content`]: {\n display: 'flex',\n alignItems: 'center'\n },\n [`${componentCls}-custom-content > ${iconCls}`]: {\n marginInlineEnd: marginXS,\n // affected by ltr or rtl\n fontSize: fontSizeLG\n },\n [`${noticeCls}-content`]: {\n display: 'inline-block',\n padding: contentPadding,\n background: contentBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n pointerEvents: 'all'\n },\n [`${componentCls}-success > ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error > ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning > ${iconCls}`]: {\n color: colorWarning\n },\n [`${componentCls}-info > ${iconCls},\n ${componentCls}-loading > ${iconCls}`]: {\n color: colorInfo\n }\n };\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'fixed',\n top: marginXS,\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [`${noticeCls}-wrapper`]: Object.assign({}, noticeStyle)\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: Object.assign(Object.assign({}, noticeStyle), {\n padding: 0,\n textAlign: 'start'\n })\n }];\n};\nexport const prepareComponentToken = token => ({\n zIndexPopup: token.zIndexPopupBase + CONTAINER_MAX_OFFSET + 10,\n contentBg: token.colorBgElevated,\n contentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n height: 150\n });\n return [genMessageStyle(combinedToken)];\n}, prepareComponentToken);","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"3\":\"271a6a4588971ad32471\",\"23\":\"7d325af6517cd9139d67\",\"55\":\"791e712dc1ecf0fbd3de\",\"160\":\"a42ae8b575d82349d468\",\"229\":\"5513d15a39828ad5fab1\",\"271\":\"ec3681154a65ac7d7988\",\"277\":\"1f5df10c8c26da176690\",\"355\":\"a5a31d254fd94ab1fd02\",\"385\":\"707279b5f7a591332860\",\"417\":\"f934dbcf76073114884c\",\"428\":\"03be367eda142c5fab5f\",\"472\":\"08157faaf4e36afebf9d\",\"522\":\"15082d18de0466335b5b\",\"563\":\"8d8f49430ca2da9aab6b\",\"706\":\"32e130be88bb526983c5\",\"794\":\"a2bff59330e57882a454\",\"827\":\"4b75aed32e70ebbbfcb1\",\"935\":\"890c1321161d88e4defc\",\"943\":\"07a026bb5576e135e3f3\",\"987\":\"fd2d0526289d7fa02819\",\"1008\":\"4edf8f27a07e7e523625\",\"1101\":\"788b9182f8a2951e9b2b\",\"1114\":\"bb1dd96413da7a9d83a4\",\"1276\":\"e4de5a95c5717e670a6a\",\"1396\":\"93d8b5a118f3e1394bf7\",\"1481\":\"d5408d9cf48b30d5d89e\",\"1533\":\"577cccfc7e9ace2ddc5a\",\"1598\":\"43282d75326a3298bf65\",\"1632\":\"b9d5365a109706833b6b\",\"1653\":\"c076befd78fe30935735\",\"1675\":\"d6c3fe2038815348307c\",\"1684\":\"e9bea457c7dd2b425424\",\"1732\":\"fec76a9b340f84a15003\",\"1747\":\"bdb89470cf5b23d81cbb\",\"1905\":\"4db9ea14c83675988630\",\"1927\":\"45245331ffec022bf8ff\",\"1992\":\"24065b1b8a10e24f19d9\",\"1999\":\"434b1039ead8e17b3293\",\"2032\":\"e3912e6c75bfbd6fd2d3\",\"2033\":\"3166b6080d3626afa5a0\",\"2034\":\"8e852519f70ded6db9b3\",\"2081\":\"f340d15570f2d3dc7224\",\"2173\":\"0a7883e26bab849d8a2f\",\"2209\":\"2cdbb3be2381a973f946\",\"2212\":\"dd3131953e016b0b119f\",\"2221\":\"b544f14fea3317c18b95\",\"2275\":\"7db9d23c62dd48012daf\",\"2318\":\"0dff8d623e5b6fc9b7e9\",\"2348\":\"534b22c87801111a919a\",\"2531\":\"5fa9d4839b6aff9e32e3\",\"2617\":\"10052b71c1776760f987\",\"2627\":\"049ba6e47a2575e5f377\",\"2663\":\"260d14c9e2167d0a9d88\",\"2708\":\"340196349d7d4bd8af91\",\"2729\":\"b03b0af4ccf412c38832\",\"2737\":\"c0f8314d25ec6ca0179d\",\"2819\":\"baf106708cf024b1b117\",\"2842\":\"391bb6b1652ac24dcade\",\"2852\":\"311de10ee62737348224\",\"2868\":\"f3f89cc5d45c7836a61e\",\"3039\":\"7fa49d4758c9286fe1eb\",\"3142\":\"fa548d1e3f21802daac9\",\"3208\":\"aafa082e11c70d5db099\",\"3243\":\"cb8e8bd275c9678c263c\",\"3266\":\"6ae5aae7d68f950c9b63\",\"3271\":\"e887cd05d1c0d25f3945\",\"3333\":\"3a1a361439e79abe58ac\",\"3357\":\"2d1ff617eef26aa9dedc\",\"3381\":\"4c63956e057fde14ec2c\",\"3509\":\"2a9db5f69d03673e353a\",\"3511\":\"9ffc10558c4f9b158704\",\"3568\":\"d09e58f34714790314db\",\"3764\":\"52847569b84e450259f0\",\"3790\":\"bdf5964594f3acb0f0c8\",\"3846\":\"6f7e75b6e4ba2626f8af\",\"3894\":\"24a03f8b3d8effc52a24\",\"3940\":\"421d1eaae02fa8b50461\",\"4028\":\"1b4daefd5409ca0c8c38\",\"4111\":\"435ac85a56efc4f3b314\",\"4146\":\"a71744592b9ce6e7b45c\",\"4234\":\"56da1292de56767f3e7b\",\"4240\":\"e868fd9ca7f9b27240b0\",\"4262\":\"7538a3c52a9fe209f5eb\",\"4375\":\"9b1c8e4809386f56b196\",\"4403\":\"67ad2e68756da893eabf\",\"4425\":\"dbf37dcf69013a6f48fd\",\"4493\":\"d8e6cc62559d0f820ec2\",\"4512\":\"9085556b37f4e8cbdc09\",\"4543\":\"a9f38822c2149ff5336f\",\"4545\":\"ab96d45767c92bc1ef89\",\"4713\":\"9f8e3b83325789f1c7e8\",\"4714\":\"28ca8082e23be03092c3\",\"4837\":\"32459ead9bdbfb9dd057\",\"4945\":\"8a6ca3cec5dc1dc3b73b\",\"4953\":\"6ca62a9f0a7d2909260a\",\"4964\":\"142671b3d705adf27991\",\"4975\":\"4e0b75e7cc589e0dddb6\",\"5069\":\"bb7d8ea03d997163e927\",\"5137\":\"ef0104fa80eca2f3236e\",\"5146\":\"51b9deccb021efe27639\",\"5151\":\"e777d9db6006f31d1840\",\"5154\":\"6c269a01033081b7541c\",\"5178\":\"8562290e3610a72ecc6f\",\"5265\":\"0f80c95483de47ef1f10\",\"5308\":\"b38714da0b723e7759b6\",\"5333\":\"6de7c21edc1803c23875\",\"5387\":\"bc44ad9f2733a401f416\",\"5400\":\"26563595a0d35e548839\",\"5543\":\"26feeb14c6e1f4e6b6f9\",\"5561\":\"830b3d327be244a353e4\",\"5574\":\"e19775417d1bd80a70aa\",\"5688\":\"aa271a38ab8943b828c9\",\"5737\":\"841f277db71a8326295f\",\"5740\":\"2d43860121eb3f51d0f2\",\"5748\":\"97d4354d847cf8db65b9\",\"5839\":\"4378a15e56923f61d18f\",\"5867\":\"f8befa610ac44a3c8628\",\"5901\":\"7b1d69fccef5031a9724\",\"5914\":\"665935a418ef28e7d79b\",\"5920\":\"466480554905f8178652\",\"5941\":\"f741b19539e268c454f1\",\"6035\":\"5d474cd3b94ba2a05816\",\"6146\":\"31ad9a82a31a79ff6cd1\",\"6220\":\"16648d4b1371e0bc600f\",\"6240\":\"e4964c92615e831d10c6\",\"6319\":\"9859a1919d3ae018caaa\",\"6364\":\"1531f082ce1d641db0b4\",\"6377\":\"373c7eabc83cfbfa2ca4\",\"6384\":\"c46b8f31926cda98482f\",\"6411\":\"f6cf76582aca7f8d5824\",\"6454\":\"d59522f07c443ff42044\",\"6496\":\"f7e2699c7b0031519282\",\"6554\":\"4ab3c6ef9fa422616a13\",\"6619\":\"7c7f452ef0a9371c7e63\",\"6627\":\"9b3df93795d6a6287e6f\",\"6697\":\"832b8530ee06640ee6ec\",\"6717\":\"41518ee0d1b35c3f351b\",\"6770\":\"14ea5d0dbf08eb167152\",\"6784\":\"6bcb5e6cd9c5805b20d8\",\"6805\":\"afe0d5ad2aadfa9b5ff4\",\"6813\":\"00ce94f7f1de34a103cb\",\"6823\":\"b31b7a63779f950ac558\",\"6900\":\"9cd3eb60bd0cc0daf54e\",\"6949\":\"668151d32762d2809d91\",\"6978\":\"bd753a7d953dda38a78a\",\"6994\":\"eaf6c6c55bafbd75f9be\",\"7026\":\"a9a4e9aaba79a1712a14\",\"7061\":\"b83caa4590798d629e2e\",\"7078\":\"aaaac44be43bf3592015\",\"7089\":\"7a0ee818b569596a568f\",\"7109\":\"6e04db341e8438cbca58\",\"7172\":\"09d938efc50211d383f8\",\"7207\":\"717f69e2ee2cbfaf4244\",\"7218\":\"5d8a3e6c9e79fab3eb67\",\"7291\":\"d7d0d1b91d3504bebb8f\",\"7368\":\"5fd60d05eaf35b403523\",\"7397\":\"e87faf5680a8e570d12a\",\"7404\":\"4d561f2a68b92856317a\",\"7410\":\"8080292b15e8e1ff5c65\",\"7419\":\"8be219843f85294b7036\",\"7420\":\"e2bf14cd8b737222d47b\",\"7435\":\"bb60dbd6c67b2781e28b\",\"7450\":\"0824ce2350c75b5b95de\",\"7451\":\"15096cf40478f5272a5a\",\"7670\":\"374f9ede8614c46c540b\",\"7779\":\"910cc0f32557c9e042a8\",\"7803\":\"414d8d33905a1d520d84\",\"7864\":\"02d86e4cba47b9faecfa\",\"7922\":\"47df12eb63a2ca93c46c\",\"7942\":\"ff4ebca646cc841b359b\",\"8020\":\"51e1c2177e9fe154318d\",\"8034\":\"b35a8e2a07f528524b84\",\"8114\":\"55d299fdf770dda0fec1\",\"8136\":\"f1f226ee2a306dfa9aea\",\"8158\":\"f8d291b14e2318758e6e\",\"8216\":\"257a94978b1e8eafd9f1\",\"8251\":\"4e44902c644d24d1f6ad\",\"8257\":\"1ed028451097d4e1843a\",\"8271\":\"44a3251da89eccc49d46\",\"8281\":\"80cf419166d556f98549\",\"8338\":\"3f8ebe947a8dd67bd5ac\",\"8388\":\"94a8f96b84c02c8e00d5\",\"8391\":\"9a020df159eb69819f24\",\"8507\":\"915709961771beb0ce37\",\"8520\":\"071579224d84d3b9626d\",\"8602\":\"fc4717e459f5fa002034\",\"8614\":\"2a6711b25f4542ffd867\",\"8638\":\"b844b3a0e0373644e580\",\"8642\":\"bc670a7d47a2c81ec505\",\"8644\":\"584c746f84d738362919\",\"8648\":\"310f8fe0e0f8d55565e5\",\"8650\":\"e0fac10d29d08eef569f\",\"8818\":\"0545cff8b6d1d17befb2\",\"8823\":\"750484366c4df3aa5dfb\",\"8836\":\"d706cb5f050d459c2092\",\"8869\":\"2ce3258da15841e81675\",\"8874\":\"58625110987aee6854d4\",\"8882\":\"97b18561a4e7fa1ffb23\",\"8898\":\"070b91d0b9cc1054343e\",\"8902\":\"72dc188e68db6bddca34\",\"9017\":\"e204b7ae5bf3651a739e\",\"9180\":\"3ae632b84b1eaabd7bda\",\"9255\":\"d4614186936ba9beb21f\",\"9270\":\"e9e7cf577c7b70373559\",\"9322\":\"5a6b50d1c80542da38dc\",\"9353\":\"e8cba0980914965e73f3\",\"9361\":\"7df100c42f6d6699afca\",\"9484\":\"bf79730314d971db18ad\",\"9519\":\"8ca5043de9c32df4b67f\",\"9550\":\"15f274bc73ebea374ce2\",\"9554\":\"7fa57f71b94c1ebd931d\",\"9600\":\"6e9b0c2ddc69cf91277e\",\"9621\":\"a30c2a129668f7e364e6\",\"9710\":\"58513af4cabb74ad90a1\",\"9768\":\"45888f376bb26e131b69\",\"9799\":\"d72e5d74b5370f50d534\",\"9874\":\"f878ccd7694bcd0ca25b\",\"9897\":\"f00be41ff7d239874ec2\",\"9914\":\"c85a71888d30abdb7ed9\",\"9929\":\"e74b7293446102dc4383\",\"9962\":\"12f23fdcf97bd7b43ead\"}[chunkId] + \".chunk.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t706: 0,\n\t1992: 0,\n\t2417: 0,\n\t2617: 0,\n\t4240: 0,\n\t4545: 0,\n\t5574: 0,\n\t6319: 0,\n\t8216: 0,\n\t8520: 0,\n\t8869: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkplatinum\"] = self[\"webpackChunkplatinum\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","import { ComponentProps } from 'react';\nimport ConfigProvider from 'antd/es/config-provider';\nimport theme from 'antd/es/theme';\n\ntype ThemeProps = ComponentProps<typeof ConfigProvider>['theme'];\n\nconst defaultThemeProps: ThemeProps = {\n cssVar: true,\n algorithm: theme.defaultAlgorithm,\n token: {\n // Seed tokens\n borderRadius: 12,\n controlHeight: 36,\n fontFamily: 'Graphik',\n\n // Map tokens\n borderRadiusSM: 12, // Affects elements give size \"small\"\n controlHeightSM: 32, // Affects elements give size \"small\"\n controlHeightLG: 48, // Affects elements give size \"large\"\n fontSizeLG: 14, // Affects elements give size \"large\"\n },\n\n // Override at the component level\n components: {\n Checkbox: {\n borderRadiusSM: 6,\n },\n },\n};\n\nexport const THEME: { light: ThemeProps; dark: ThemeProps } = {\n light: {\n ...defaultThemeProps,\n token: {\n ...defaultThemeProps.token,\n\n // COLORS\n // Seed tokens\n colorError: '#de1111',\n colorInfo: '#8d9399',\n colorLink: 'rgba(0, 110, 215, 1)', // #006ed7\n colorPrimary: 'rgba(0, 110, 215, 1)', // #006ed7\n colorSuccess: '#20c62f',\n colorTextBase: '#121826',\n colorWarning: '#eaa301',\n\n // Map tokens\n colorBgLayout: '#F2F5F7',\n colorBgMask: 'rgba(18,24,38,0.45)',\n colorBgSpotlight: '#363B47',\n colorBorder: '#C2C7CC',\n colorBorderSecondary: '#EBEEF0',\n colorFill: 'rgba(18,24,38,0.15)',\n colorFillSecondary: 'rgba(18,24,38,0.06)',\n colorFillTertiary: 'rgba(18,24,38,0.04)',\n colorFillQuaternary: 'rgba(18,24,38,0.02)',\n colorInfoActive: '#646b73',\n colorInfoBg: '#f2f6fb',\n colorInfoBgHover: '#E1E5EB',\n colorInfoBorder: '#D5D8DC',\n colorInfoBorderHover: '#a8aeb3',\n colorInfoHover: '#a8aeb3',\n colorInfoText: '#8d9399',\n colorInfoTextActive: '#646b73',\n colorInfoTextHover: '#9ca1a6',\n colorLinkActive: '#005CB5',\n colorLinkHover: '#0065C6',\n colorPrimaryActive: '#005CB5',\n colorPrimaryHover: '#0065C6',\n colorText: 'rgba(18,24,38,1)',\n colorTextSecondary: 'rgba(18,24,38,0.65)',\n colorTextTertiary: 'rgba(18,24,38,0.45)',\n colorTextQuaternary: 'rgba(18,24,38,0.25)',\n colorTextDisabled: 'rgba(18,24,38,0.35)',\n },\n },\n\n dark: {\n ...defaultThemeProps,\n algorithm: theme.darkAlgorithm,\n token: {\n ...defaultThemeProps.token,\n\n // COLORS\n // Seed tokens\n colorError: '#FF1F1F',\n colorInfo: '#7B8085',\n colorLink: '#1F93FF',\n colorPrimary: 'rgba(0, 110, 215, 1)', // same as light mode\n colorSuccess: '#20c62f', // same as light mode\n colorWarning: '#eaa301', // same as light mode\n\n // Map tokens\n colorBgContainer: '#121826',\n colorBgElevated: '#181f32',\n colorBgLayout: '#21283a',\n colorBgSpotlight: '#5C6A77',\n colorBorder: '#5C6A77',\n colorBorderSecondary: '#2D3642',\n colorErrorText: '#FF1F1F',\n colorLinkActive: '#78BEFF',\n colorLinkHover: '#4BA8FF',\n colorPrimaryActive: '#005CB5',\n colorPrimaryHover: '#0065C6',\n colorPrimaryText: '#1F93FF',\n colorWarningText: '#ca8e04',\n colorText: '#ffffff',\n colorTextDisabled: 'rgba(255,255,255,0.35)',\n },\n },\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./fonts.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_typography.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_typography.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_overrides.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_overrides.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_root.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_root.scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_normalize.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[13].use[2]!./_normalize.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Provider } from 'react-redux';\nimport { Store } from 'redux';\nimport { Switch } from 'react-router-dom';\nimport { CompatRoute, CompatRouter } from 'react-router-dom-v5-compat';\nimport { ConnectedRouter } from 'connected-react-router/immutable';\nimport { InitOptions } from 'i18next';\nimport i18n, { i18nInitOptions, i18nPostInit } from 'i18n/i18n';\nimport { I18nextProvider } from 'react-i18next';\nimport ConfigProvider from 'antd/es/config-provider';\nimport { THEME } from 'op-themes';\nimport { configureStore } from 'store/index';\nimport appReducer from 'routes/AppContainer/reducer';\nimport { App } from './components/App';\nimport history from '../app/history';\n\nimport 'shims';\nimport 'importMinimalAssets';\n\ni18n.init(i18nInitOptions as InitOptions);\n\ni18nPostInit(i18n);\n\n// We need to inject the app reducer for now to have uniform alerts\nconst store = configureStore({}, { app: appReducer }) as Store;\n\nconst container = document.getElementById('root');\n/**\n * Using a router so we have access to apis like useLocation which will be used in the SSO flow.\n * Right now this is still just 1 route as we want to keep the base `signin` path so that users\n * don't accidentally navigate to /login\n */\nif (container) {\n const root = createRoot(container);\n root.render(\n <I18nextProvider defaultNS=\"translation\" i18n={i18n}>\n <ConfigProvider theme={THEME.dark}>\n <Provider store={store}>\n <ConnectedRouter history={history}>\n <CompatRouter>\n <Switch>\n <CompatRoute path=\"/signin\">\n <App />\n </CompatRoute>\n </Switch>\n </CompatRouter>\n </ConnectedRouter>\n </Provider>\n </ConfigProvider>\n </I18nextProvider>,\n );\n}\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","module","exports","value","isOwn","call","tag","unmasked","e","result","formatProdErrorMessage","code","symbol_observable_default","observable","randomString","Math","random","substring","split","join","actionTypes_default","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","Error","arguments","currentReducer","currentState","currentListeners","Map","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","forEach","listener","key","set","getState","subscribe","isSubscribed","listenerId","delete","dispatch","action","obj","proto","getPrototypeOf","isPlainObject","type","replaceReducer","nextReducer","outerSubscribe","observer","observeState","observerAsObserver","next","unsubscribe","this","compose","funcs","length","arg","reduce","a","b","args","applyMiddleware","middlewares","createStore2","store","middlewareAPI","chain","map","middleware","def","promise","Promise","resolve","reject","queue","semaphore","exec","task","suspend","release","asap","push","flush","immediately","shift","array","patterns","input","some","p","matcher","predicate","_predicate","string","pattern","String","symbol","wildcard","k","matcherCreator","END","isEnd","stdChannel","_ref","closed","currentTakers","nextTakers","ensureCanMutateNextTakers","close","chan","slice","takers","taker","put","i","len","cancel","take","cb","o","r","RUNNING","CANCELLED","ABORTED","DONE","resolvePromise","cancelPromise","then","error","_effectRunnerMap","current","nextSagaId","cancelSingleTask","taskToCancel","isRunning","effectRunnerMap","T","env","_ref3","_ref3$channel","channel","maybe","takeCb","err","P","_ref2","A","effects","_ref11","digestEffect","effectId","keys","childCallbacks","R","_ref12","response","childCbs","completed","chCbAtKey","res","isErr","s","C","_ref4","_ref5","context","fn","apply","proc","_ref6","cpsCb","concat","F","_ref7","_ref8","detached","parent","taskIterator","resolved","done","createTaskIterator","meta","iterator","isSagaIterator","name","getIteratorMetaInfo","child","addTask","isAborted","abort","J","taskOrTasks","_ref9","joinSingleTask","taskToJoin","joiner","joiners","t","_ref10","S","_ref13","selector","_ref14","buffer$1","isEmpty","arr","buffer","match","data","_ref15","isCancelled","G","prop","_ref16","props","_ref17","formatLocation","fileName","lineNumber","sagaLocationAsString","sagaMeta","location","cancelledTasksAsString","sagaStack","cancelledTasks","crashedEffect","addSagaFrame","frame","clear","setCrashedEffect","effect","firstSaga","otherSagas","crashedEffectLocation","effectLocationAsString","iterator$1","parentContext","parentEffectId","isRoot","cont","finalRunEffect","finalizeRunEffect","currCb","IO","effectRunner","payload","executingContext","mainTask","status","_task","taskResult","taskError","deferredEnd","cancelledDueToErrorTasks","create","onAbort","tasks","cancelAll","getTasks","forkQueue","end","onError","id","setContext","toPromise","newTask","throw","return","label","effectSettled","sagaMonitor","effectRejected","effectResolved","effectTriggered","effectCancelled","runSaga","saga","_ref$channel","_ref$context","effectMiddlewares","_ref$onError","_len","Array","_key","rootSagaStarted","actionDispatched","runEffect","eff","_temp","boundRunSaga","options","sagaMiddleware","bind","run","accessTokenInitialState","fromJS","identity","scopes","expiresAt","processedScopes","remoteFeatureFlags","null","mfaCredentials","reducers","orgReducer","state","SET_ORG","org","savingBillingSubscriptionInfoReducer","SET_SAVING_BILLING_SUBSCRIPTION_INFO","saving","combineReducers","bannerDataInitialState","banners","activityLogsInitialState","activityRangeHours","initialState","lockdownPlanActive","lockdownPlans","showModal","initialSlideOutsState","staticReducers","global","billing","billingReducer","modal","SHOW_MODAL","HIDE_MODAL","REMOVE_BANNER_BY_KEY","get","findIndex","remove","ADD_BANNER_DATA","REMOVE_ALL_BANNERS","activityLogs","SET_ACTIVITY_RANGE_HOURS","SET_LOCKDOWN_PLANS","plans","cloudKeys","SET_CLOUD_KEYS","orgFeatures","SET_ORG_FEATURES","CLEAR_ORG_SPECIFIC_STORE_DATA","LOGOUT_SUCCESS","orgPackagePlans","SET_ORG_PACKAGE_PLANS","packages","slideOuts","ADD_SLIDE_OUT","slideOutData","REPLACE_SLIDE_OUT","pop","DELETE_SLIDE_OUT","path","filter","getIn","features","SET_ALL_FEATURES","accessToken","SET_REMOTE_FEATURE_FLAGS","setIn","orgId","merge","flags","SET_CURRENT_ORG_NAME","index","Number","orgName","SET_ACCESS_TOKEN","tokenScopeList","token","SET_PROCESSED_SCOPES","SET_MFA_CREDENTIALS","router","connectRouter","history","createReducerManager","additionalReducers","combinedReducer","keysToRemove","generateReduce","cleanedState","withMutations","temporaryState","reducerManager","getReducerMap","reloadReducers","initialReducers","assign","add","injectedReducers","readyCallback","changedReducers","invariant","isString","isFunction","Reflect","has","createSagaMiddleware","isStoreConfigured","configureStore","enhancers","routerMiddleware","injectedSagas","fromIndex","fromRight","observe","callback","opts","PerformanceObserver","supportedEntryTypes","includes","po","list","getEntries","buffered","_slicedToArray","root","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","OpTextButton","className","children","buttonProps","OpButton","clsx","getNavigationEntry","performance","getEntriesByType","NATIVE_SYMBOL","sham","setTwoToneColor","twoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","primaryColor","secondaryColor","setTwoToneColors","getTwoToneColor","colors","getTwoToneColors","calculated","___CSS_LOADER_EXPORT___","moment","defineLocale","months","standalone","format","isFormat","monthsShort","monthsParseExact","weekdays","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","L","LL","ll","LLL","lll","LLLL","llll","calendar","sameDay","hours","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","number","period","output","week","dow","doy","factory","SetCache","values","__data__","SUPPRESS_TRACING_KEY","startSpanManual","acs","getAcs","spanArguments","parseSentrySpanArguments","forceTransaction","parentSpan","customParentSpan","scope","withActiveSpan","getParentSpan","activeSpan","onlyIfParent","createChildOrRootSpan","finishAndSetSpan","isRecording","setStatus","message","startInactiveSpan","span","isolationScope","spanId","traceId","spanContext","sampled","getScopeData","sdkProcessingMetadata","childSpan","parentSpanId","client","emit","endTimestamp","_startChildSpan","dsc","parentSampled","_startRootSpan","getPropagationContext","initialCtx","isStandalone","experimental","startTime","ctx","startTimestamp","carrier","getOptions","attributes","sampleRate","transactionContext","rootSpan","setAttribute","parentSpanIsAlwaysRootSpan","ReactMajorVersion","version","fillRef","ref","node","composeRef","refs","refList","Boolean","useComposeRef","_len2","_key2","prev","every","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isReactElement","isMemo","render","$$typeof","ForwardRef","isValidElement","supportNodeRef","getNodeRef","ele","propertyIsEnumerable","defineProperty","enumerable","_default","_react","_interop_require_wildcard","_LockOutlined","_interop_require_default","_AntdIcon","_define_property","configurable","writable","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","newObj","__proto__","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","LockOutlined","createElement","target","source","ownKeys","getOwnPropertySymbols","sym","_object_spread","icon","getOwnPropertyDescriptors","defineProperties","object","enumerableOnly","symbols","forwardRef","Date","now","prepareToken","paddingInline","onlyIconSize","paddingBlock","buttonPaddingHorizontal","buttonPaddingVertical","buttonIconOnlyFontSize","prepareComponentToken","_a","_b","_c","_d","_e","_f","contentFontSize","fontSize","contentFontSizeSM","contentFontSizeLG","fontSizeLG","contentLineHeight","contentLineHeightSM","contentLineHeightLG","solidTextColor","colorBgSolid","fontWeight","defaultShadow","controlOutlineWidth","controlTmpOutline","primaryShadow","controlOutline","dangerShadow","colorErrorOutline","colorTextLightSolid","dangerColor","borderColorDisabled","colorBorder","defaultGhostColor","colorBgContainer","ghostBg","defaultGhostBorderColor","paddingContentHorizontal","lineWidth","paddingInlineLG","paddingInlineSM","onlyIconSizeSM","onlyIconSizeLG","groupBorderColor","colorPrimaryHover","linkHoverBg","textTextColor","colorText","textTextHoverColor","textTextActiveColor","textHoverBg","colorFillTertiary","defaultColor","defaultBg","defaultBorderColor","defaultBorderColorDisabled","defaultHoverBg","defaultHoverColor","defaultHoverBorderColor","defaultActiveBg","defaultActiveColor","colorPrimaryActive","defaultActiveBorderColor","max","controlHeight","paddingBlockSM","controlHeightSM","paddingBlockLG","controlHeightLG","deps","_ExportOutlined","ExportOutlined","isStrictComparable","ModalContext","Provider","ModalContextProvider","useUrlSearchParams","searchParams","useSearchParams","fromEntries","openpathLoginUrl","prod","prodeu1","dev","sandbox","mine","getPlatinumUrl","region","WINDOW","getDefaultCurrentScope","getDefaultIsolationScope","meridiemParse","isPM","meridiem","hour","minute","isLower","self","n","l","c","u","f","g","v","Base","constructor","$_root","_definition","_reset","_ids","Ids","_preferences","_refs","Manager","_cache","_valids","_invalids","_flags","_rules","_singleRules","$_terms","$_temp","ruleset","whens","describe","allow","verifyFlat","_values","alter","isArray","_inRuleset","clone","alterations","adjuster","artifact","$_setFlag","cast","description","empty","$_compile","override","example","assertOptions","_inner","single","external","method","failover","forbidden","presence","test","invalid","note","only","optional","prefs","externals","warnings","debug","checkPreferences","preferences","raw","required","strict","convert","strip","unit","valid","when","is","switch","otherwise","$_mutateRebuild","provider","provision","_assign","isSchema","register","toSibling","keep","rules","multi","_tracer","_combine","extend","base","extract","reach","fork","rule","modifiers","$","tailor","$_modify","each","tracer","validate","entry","validateAsync","entryAsync","$_addRule","_resolve","argsByName","isResolvable","$_mutateRegister","normalize","assert","validateArg","_ruleRemove","priority","unshift","schema","$_createError","messages","Report","$_getFlag","$_getRule","$_mapLabels","labels","$_match","abortEarly","_externals","snapshot","errors","restore","reset","family","rebuild","$_property","properties","$_reach","$_rootReferences","roots","$_parent","$_validate","shallow","$_super","_super","_bare","terms","init","literal","_generate","nest","localize","ancestors","schemas","break","mainstay","active","generate","any","compile","isImmutable","deny","disallow","equal","exist","not","supported","Set","Cache","isFinite","_max","_map","_list","List","size","first","_compact","tail","head","_remove","isoDate","defaults","allowUnknown","artifacts","dateFormat","escapeHtml","language","stack","wrap","nonEnumerables","noDefaults","skipFunctions","stripUnknown","for","arraySingle","deepDefault","template","details","compare","isIsoDate","isNumber","isNaN","legacy","isValues","limit","isSafeInteger","tryWithPath","append","appendPath","simple","custom","alternatives","try","RegExp","regex","date","isRef","walk","condition","local","_setTemplate","_template","replace","trim","isTemplate","process","ValidationError","stackTraceLimit","super","_original","isError","isJoi","annotate","prepare","coerce","from","alias","overrides","manifest","build","types","boolean","function","link","aliases","alt","bool","func","_types","methods","x","expression","setup","attempt","extensions","extension","expandExtension","isExpression","in","decompile","compact","_byId","_byKey","_schemaChain","entries","_collect","_get","scan","adjust","iterables","separator","prefix","ancestor","Ref","depth","updateDisplay","display","shadow","absolute","functions","fill","startsWith","toParent","min","arrays","objects","or","nameRx","items","conditional","maxArity","to","minArity","setter","arity","mapped","integer","special","entity","unknown","warn","State","Shadow","_snapshot","commit","opens","closes","toDateString","iso","toISOString","time","toTimeString","utc","toUTCString","Template","rendered","_settings","_functions","_parse","encode","indexOf","decode","wrapped","isDynamic","_part","formula","evaluate","stringify","Parser","reference","constants","arrayItems","JSON","true","false","second","day","if","msg","parseFloat","getTime","matches","mergeArrays","reports","_endedSwitch","unmatched","report","valids","examples","metas","notes","shared","tags","warning","sparse","ordered","_exclusions","_inclusions","_requireds","sort","patternLabel","errorsArray","pos","fastSplice","_","w","fillMissedErrors","fillOrderedErrors","fillDefault","operator","validateSingle","_arrayItems","order","by","unique","comparator","bigint","ignoreUndefined","dupePos","dupeValue","knownMisses","unknownMisses","isBool","sensitive","falsy","truthy","toLowerCase","isDate","parse","greater","less","timestamp","typeof","class","renameDefaults","multiple","dependencies","renames","rename","_hasPatternMatch","isPresent","rel","and","dependency","subject","instance","Keys","nand","oxor","fallthrough","with","without","xor","Sorter","after","group","nodes","peers","Dependency","present","presentWithLabels","keysToLabels","missing","missingWithLabels","paths","main","mainWithLabel","peersWithLabels","peer","peerWithLabel","schemaChain","relative","links","perspective","numberRx","precisionRx","exponentialPartRegex","leadingSignAndZerosRegex","dotRegex","trailingZerosRegex","decimalPlaces","parseInt","unsafe","extractSignificantDigits","normalizeDecimal","pow","round","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","trunc","baseDecimalPlace","pfactor","negative","sign","port","positive","precision","endsWith","tlds","base64Regex","dataUriRegex","hexRegex","withPrefix","withOptionalPrefix","withoutPrefix","ipRegex","cidr","isoDurationRegex","guidBrackets","guidVersions","uuidv1","uuidv2","uuidv3","uuidv4","uuidv5","uuidv6","uuidv7","uuidv8","guidSeparators","normalizationForms","insensitive","truncate","replacements","form","direction","toLocaleUpperCase","toLocaleLowerCase","enabled","replacement","byteAligned","reason","alphanum","base64","urlSafe","paddingRequired","case","creditCard","charAt","dataUri","domain","addressOptions","address","isValid","email","invalids","guid","hex","hostname","minDomainSegments","ip","versions","isoDuration","encoding","lowercase","invert","errorCode","uppercase","uri","scheme","encodeUri","encodeURI","allowRelative","relativeOnly","maxDomainSegments","validateTlds","async","linked","original","log","Mainstay","_snapshots","cleanup","untrace","_register","trace","ignore","finalize","Values","_lowercase","lowercases","_override","applyToDefaultsWithShallow","nullOverride","reachCopy","needsProtoHack","weakSet","weakMap","cloneWithShallow","getInternalProto","setPrototypeOf","mismatched","isDeepEqual","deepFunction","getSharedType","isSame","SeenEntry","isDeepEqualObj","valueOf","hasOwnEnumerableProperty","isSetSimpleEqual","part","skip","captureStackTrace","charCodeAt","isSafe","escapeHtmlChar","namedHtml","padStart","safeCharCodes","isInteger","generic","WeakSet","typeMap","getOwnPropertyNames","_items","before","seq","manual","_sort","mergeSort","nonAsciiRx","domainControlRx","tldSegmentRx","domainSegmentRx","URL","analyze","allowUnicode","punycode","allowFullyQualified","host","encoder","TextEncoder","ignoreLength","atextRx","binary","atomRx","fromCharCode","codes","EMPTY_STRING","FORBIDDEN_UNICODE","MULTIPLE_AT_CHAR","MISSING_AT_CHAR","EMPTY_LOCAL","ADDRESS_TOO_LONG","LOCAL_TOO_LONG","EMPTY_LOCAL_SEGMENT","INVALID_LOCAL_CHARS","DOMAIN_NON_EMPTY_STRING","DOMAIN_TOO_LONG","DOMAIN_INVALID_UNICODE_CHARS","DOMAIN_INVALID_CHARS","DOMAIN_INVALID_TLDS_CHARS","DOMAIN_SEGMENTS_COUNT","DOMAIN_SEGMENTS_COUNT_MAX","DOMAIN_FORBIDDEN_TLDS","DOMAIN_EMPTY_SEGMENT","DOMAIN_LONG_SEGMENT","v4Cidr","v6Cidr","ipv4address","ipv4Cidr","ipv6Cidr","ipv6address","ipvFuture","schemeRegex","j","O","E","D","hierPart","hierPartCapture","relativeRef","relativeRefCapture","query","queryWithSquareBrackets","fragment","rfc3986","ipv4","ipv6","ipvfuture","createRegex","allowQuerySquareBrackets","uriRegex","operators","operatorCharacters","operatorsOrder","operatorsPrefix","literals","tokenRx","settings","_parts","_subFormula","splice","calculate","exists","selection","document","getSelection","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","range","addRange","focus","LazyLoadableIntegrations","replayIntegration","replayCanvasIntegration","feedbackIntegration","feedbackModalIntegration","feedbackScreenshotIntegration","captureConsoleIntegration","contextLinesIntegration","linkedErrorsIntegration","debugIntegration","dedupeIntegration","extraErrorDataIntegration","httpClientIntegration","reportingObserverIntegration","rewriteFramesIntegration","sessionTimingIntegration","browserProfilingIntegration","WindowWithMaybeIntegration","lazyLoadIntegration","scriptNonce","bundle","sentryOnWindow","Sentry","existing","url","baseURL","cdnBaseUrl","getScriptURL","script","src","crossOrigin","referrerPolicy","waitForLoad","addEventListener","currentScript","body","parentElement","appendChild","integrationFn","deselectCurrent","clipboardToIE11Formatting","text","reselectPrevious","mark","success","createRange","textContent","ariaHidden","style","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","stopPropagation","preventDefault","clipboardData","console","window","clearData","setData","onCopy","selectNodeContents","execCommand","copyKey","navigator","userAgent","prompt","removeRange","removeChild","parseIdentityProvider","isMap","namespace","namespaceType","modelName","identityProvider","identityProviderType","start","parseCookie","str","eqIdx","endIdx","lastIndexOf","val","decodeURIComponent","getBuiltIn","genItemStyle","optionHeight","optionFontSize","optionLineHeight","optionPadding","minHeight","padding","color","lineHeight","boxSizing","antCls","componentCls","selectItemCls","slideUpEnterActive","slideUpAppearActive","slideUpLeaveActive","dropdownPlacementCls","zIndex","zIndexPopup","paddingXXS","overflow","fontVariant","backgroundColor","colorBgElevated","borderRadius","borderRadiusLG","outline","boxShadow","boxShadowSecondary","animationName","cursor","transition","motionDurationSlow","borderRadiusSM","colorTextDescription","fontSizeSM","flex","alignItems","optionActiveBg","optionSelectedColor","optionSelectedFontWeight","optionSelectedBg","colorPrimary","borderEndStartRadius","borderEndEndRadius","borderStartStartRadius","borderStartEndRadius","colorBgContainerDisabled","colorTextDisabled","paddingInlineStart","calc","controlPaddingHorizontal","mul","genSizeStyle","suffix","inputPaddingHorizontalBase","fontSizeIcon","selectHeightWithoutBorder","sub","singleInputPaddingHorizontal","suffixCls","height","insetInlineStart","insetInlineEnd","bottom","width","WebkitAppearance","alignSelf","pointerEvents","visibility","content","paddingInlineEnd","showArrowPaddingInlineEnd","colorTextPlaceholder","inputPaddingHorizontalSM","controlPaddingHorizontalSM","singleItemHeightLG","genBaseOutlinedStyle","border","lineType","borderColor","background","selectorBg","hoverBorderHover","activeBorderColor","activeOutlineColor","genOutlinedStatusStyle","genOutlinedStyle","hoverBorderColor","colorError","colorErrorHover","colorWarning","colorWarningHover","colorWarningOutline","multipleItemBg","multipleItemBorderColor","genBaseFilledStyle","bg","hoverBg","genFilledStatusStyle","genFilledStyle","colorFillSecondary","colorErrorBg","colorErrorBgHover","colorWarningBg","colorWarningBgHover","colorSplit","genBorderlessStyle","genSelectorStyle","motionDurationMid","motionEaseInOut","getSearchInputWithoutBorderStyle","margin","appearance","fontFamily","genBaseStyle","iconCls","marginTop","div","colorTextQuaternary","textAlign","verticalAlign","marginInlineEnd","fontStyle","textTransform","opacity","textRendering","colorTextTertiary","colorBgBase","paddingXS","genSelectStyle","borderElCls","focusElCls","rootPrefixCls","selectToken","paddingSM","multipleSelectItemHeight","multipleItemHeight","selectHeight","zIndexPopupBase","fontWeightStrong","controlItemBgActive","controlItemBgHover","dblPaddingXXS","dblLineWidth","multipleItemHeightSM","multipleItemHeightLG","INTERNAL_FIXED_ITEM_MARGIN","floor","clearBg","multipleSelectorBgDisabled","multipleItemColorDisabled","multipleItemBorderColorDisabled","ceil","unitless","nativeCreate","FCPThresholds","onFCP","onReport","visibilityWatcher","metric","disconnect","firstHiddenTime","reportAllChanges","_classCallCheck","TypeError","RESTART_ON_REMOUNT","DAEMON","ONCE_TILL_UNMOUNT","TYPING_DEBOUNCE_TIME","UNIT_TO_SECONDS_LOOKUP_TABLE","seconds","minutes","days","weeks","years","SECONDS_TO_UNIT_LOOKUP_TABLE","VIDEO_READER_ACU_MODEL_IDS","MERCURY_EXPANSION_BOARD_ACU_MODEL_IDS","HELIUM_LIMIT_MAX","INITIAL_ACTIVITY_RANGE_HOURS","MAX_ACTIVITY_RANGE_HOURS","CREDENTIAL_IDS","mobile","card","pin","mifare","desfire","cloud","fobAllegion","licensePlate","wallet","getCollapsedHeight","getRealHeight","scrollHeight","getCurrentHeight","offsetHeight","skipOpacityTransition","event","deadline","propertyName","getTransitionName","motion","transitionName","motionName","onAppearStart","onEnterStart","onAppearActive","onEnterActive","onLeaveStart","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","motionDeadline","BrowserMetricsAggregator","_client","_buckets","_interval","setInterval","metricType","unsanitizedName","unsanitizedUnit","unsanitizedTags","maybeFloatTimestamp","bucketKey","bucketItem","previousWeight","weight","metricBuckets","clearInterval","REQUEST_LIST_CLOUD_KEYS","REQUEST_UNLOCK_WITH_CLOUD_KEY","raf","setTimeout","caf","num","clearTimeout","requestAnimationFrame","handle","cancelAnimationFrame","rafUUID","rafIds","wrapperRaf","callRef","leftTimes","realId","textEllipsis","textOverflow","resetComponent","needInheritFontFamily","listStyle","resetIcon","svg","clearFix","genLinkStyle","colorLink","textDecoration","linkDecoration","colorLinkHover","colorLinkActive","linkHoverDecoration","linkFocusDecoration","genCommonStyle","componentPrefixCls","rootCls","resetFont","prefixSelector","rootPrefixSelector","resetStyle","resetFontStyle","genFocusOutline","lineWidthFocus","colorPrimaryBorder","outlineOffset","genFocusStyle","operationUnit","DEBUG_BUILD","__SENTRY_DEBUG__","useMemo","getValue","shouldUpdate","cacheRef","requestUnlockWithCloudKey","entryId","requestListCloudKeyCredentials","setCloudKeys","isObject","$String","$TypeError","argument","weekYear","month","year","initialValue","validateTrigger","isListField","wrapperListContext","keyManager","prefixName","parentPrefixName","fieldContext","listContext","getKey","namePath","pathName","prevValue","nextValue","isList","_ref3$value","onChange","getFieldValue","getNewValue","operations","defaultValue","newValue","indexSet","keysIndex","valueIndex","move","listValue","__","thisArg","_LeftOutlined","LeftOutlined","freeGlobal","isarray","pathToRegexp","groups","delimiter","repeat","partial","asterisk","attachKeys","regexpToRegexp","parts","arrayToRegexp","tokensToRegExp","stringToRegexp","tokensToFunction","PATH_REGEXP","tokens","defaultDelimiter","escaped","offset","capture","modifier","prevText","escapeGroup","restrictBacktrack","substr","escapeString","encodeURIComponentPretty","pretty","encodeURIComponent","segment","re","route","endsWithDelimiter","webpackContext","req","webpackContextResolve","__webpack_require__","field","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","HomeOutlinedSvg","svgProps","SvgWrapper","viewBox","genStyleHooks","genComponentStyleHook","genSubStyleComponent","usePrefix","getPrefixCls","iconPrefixCls","useContext","useToken","theme","realToken","hashId","cssVar","useCSP","csp","getResetStyles","getCommonStyle","getCompUnitless","HUE_COLORS","percent","_props$prefixCls","prefixCls","onChangeComplete","panelRender","_props$disabledAlpha","disabledAlpha","_props$disabled","disabled","components","_useComponent","Slider","_useColorState","_useColorState2","colorValue","setColorValue","alphaColor","setA","toRgbString","handleChange","getHueColor","hue","setHue","getAlphaColor","alpha","mergeCls","sharedSliderProps","defaultPanel","getHue","MULTI_VALUE","normalizeStyle","styleStr","parseStyle","interpolation","config","parentSelectors","injectHash","layer","hashPriority","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","getName","_parseStyle","_parsedStr","flattenStyleList","flattenList","fullList","item","originStyle","_keyframe","mergedStyle","trans","_trans$visit","visit","isCompoundCSSProperty","_value","appendStyle","cssKey","cssValue","styleName","formatValue","actualValue","subInjectHash","mergedKey","nextRoot","hashClassName","hashSelector","_firstPath$match","fullPath","firstPath","htmlElement","injectSelectorHash","_parseStyle3","_parseStyle4","_parsedStr2","childEffectStyle","uniqueHash","Empty","STYLE_PREFIX","useStyleRegister","info","styleFn","nonce","clientOnly","_info$order","_React$useContext","autoClear","defaultCache","mock","container","ssrInline","enableLayer","tokenKey","_tokenKey","isMergedClientSide","_useGlobalCache","cachePath","_getStyleAndHash","_getStyleAndHash2","inlineCacheStyleStr","styleHash","styleObj","_parseStyle5","_parseStyle6","parsedStyle","styleId","fromHMR","mergedCSSConfig","prepend","attachTo","nonceStr","effectLayerKeys","effectRestKeys","effectKey","instanceId","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","styleNode","dangerouslySetInnerHTML","__html","effectStyles","plain","keyStyleText","sharedAttrs","effectStyleStr","effectStyleHTML","_PrinterOutlined","PrinterOutlined","parseSlideoutUrls","search","arrayFormat","otherData","parsed","acc","curr","extraData","parsedExtraData","convertDataToSlideoutUrl","uncurryThis","toObject","hasOwn","it","contentBg","headerBg","headerPadding","collapseHeaderPaddingSM","collapseHeaderPaddingLG","collapsePanelBorderRadius","colorTextHeading","lineHeightLG","marginSM","paddingLG","contentPadding","fontHeight","fontHeightLG","borderBase","borderBottom","flexWrap","borderTop","marginInlineStart","genArrowStyle","fixedSelector","transform","paddingTop","genGhostStyle","collapseToken","colorFillAlter","_excluded","twoToneColorPalette","IconBase","onClick","restProps","svgRef","displayName","AppConfigContext","notification","useTimeoutFn","ms","ready","useRef","timeout","isReady","useCallback","useEffect","baseIsEqual","matchData","customizer","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","freeSelf","Function","METRICS_SPAN_FIELD","getMetricSummaryJsonForSpan","storage","exportKey","summary","updateMetricSummaryOnSpan","sanitizedName","count","sum","SPLIT","pathKey","Entity","opGet","keyPathStr","valueFn","opUpdate","dayjs","dayjsMinMax","dayjsUtc","dayjsTimezone","dayjsCustomParseFormat","dayjsQuarterOfTheYear","dayOfYear","opTime","combineMinimalDateTimeAndTimezone","minimalDate","minimalTime","timezone","momentTimezone","guess","separateMinimalDateTime","combinedDateAndTimeInZulu","MINIMAL_DATE_FORMAT","MINIMAL_TIME_FORMAT","getDurationSummary","minimalStartDate","minimalStartTime","minimalEndDate","minimalEndTime","startDate","endDate","deltaOffsetInMinutes","utcOffset","duration","diff","numAsDays","asDays","numHours","numMinutes","numSeconds","minutesClause","secondsClause","daysClause","hoursClause","convertMinimalDateToJSDate","isValidMinimalDate","toDate","convertMinimalTimeToJSDate","isValidMinimalTime","combineDateTime","mStart","TIME_WITH_SECONDS_FORMAT","getFormattedDate","allowShortcuts","addTime","today","yesterday","setDate","getDate","currentDateString","getMonthAbbreviation","getFormattedDateAndTime","getCompactDate","getCompactDateAndTime","DATE_TIME_WITH_SECONDS_FORMAT","getCompactDateAndTime_opTime","convertSecondsToReadableDate","secondsFromUnixEpoch","showTimezone","unixTime","finalTImeZone","tz","roundUpDateTime","momentObj","roundBy","subtract","startOf","timeCompare","timeA","timeB","ARBITRARY_DATE","isAfter","generateUnixFromNMinutesAgo","opMoment","formatSecondsToClock","calculateDateRangeFromPreset","preset","newFormValues","endTime","endOf","derivedFromPreset","noop","setToArray","createSet","iteratee","isArguments","spreadableSymbol","isConcatSpreadable","other","castPath","toKey","useForceUpdate","forceUpdate","findIndexFunc","collection","iterable","isArrayLike","DESCRIPTORS","fails","IdContext","getMenuId","uuid","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","origin","isEqual","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","focusable","includePositive","isVisible","nodeName","isFocusableElement","isContentEditable","getAttribute","tabIndexAttr","tabIndexNum","tabIndex","LEFT","KeyCode","RIGHT","UP","DOWN","ENTER","ESC","HOME","ArrowKeys","getFocusableElements","elements","querySelectorAll","getFocusNodeList","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","refreshElements","key2element","element2key","element","querySelector","PATH_SPLIT","getPathStr","keyPath","OVERFLOW_KEY","useMemoCallback","funRef","_funRef$current","uniquePrefix","toFixed","internalId","useActive","onMouseEnter","onMouseLeave","activeKey","onActive","onInactive","ret","domEvent","useDirectionStyle","level","mode","rtl","inlineIndent","paddingRight","paddingLeft","Icon","iconNode","warnItemProp","restInfo","_excluded2","_excluded3","LegacyMenuItem","_React$Component","_this$props","title","attribute","elementRef","passedProps","omit","Item","InternalMenuItem","warnKey","itemIcon","role","onKeyDown","onFocus","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","_internalRenderMenuItem","itemCls","legacyMenuItemRef","mergedDisabled","mergedEleRef","connectedKeys","getEventInfo","reverse","mergedItemIcon","_useActive","activeProps","selected","directionStyle","optionRoleProps","renderNode","component","which","isSelected","MenuItem","measure","connectedKeyPath","registerPath","unregisterPath","InternalSubMenuList","SubMenuList","parseChildren","toArray","_eventKey","_child$props","cloneProps","autoAdjustOverflow","adjustX","adjustY","placements","topLeft","points","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom","placementsRtl","getMotion","defaultMotions","popupPlacementMap","horizontal","vertical","PopupTrigger","visible","popup","popupStyle","popupClassName","popupOffset","onVisibleChange","getPopupContainer","subMenuOpenDelay","subMenuCloseDelay","builtinPlacements","triggerSubMenuAction","forceSubMenuRender","rootClassName","_React$useState","_React$useState2","innerVisible","setInnerVisible","placement","popupPlacement","targetMotion","targetMotionRef","mergedMotion","leavedClassName","removeOnLeave","motionAppear","visibleRef","stretch","popupVisible","popupAlign","mouseEnterDelay","mouseLeaveDelay","onPopupVisibleChange","forceRender","popupMotion","fresh","InlineSubMenuList","open","fixedMode","sameModeRef","destroy","setDestroy","mergedOpen","originOnVisibleChanged","onVisibleChanged","newVisible","motionClassName","motionStyle","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","_internalRenderSubMenuItem","isSubPathKey","connectedPath","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","listNode","childList","Divider","InternalMenuItemGroup","groupPrefixCls","convertItemsToNodes","MergedMenuItem","MergedMenuItemGroup","MergedSubMenu","submenu","MergedDivider","divider","opt","extra","parseItems","childNodes","mergedComponents","EMPTY_LIST","ExportMenu","_childList$","_ref$prefixCls","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","_internalComponents","_React$useMemo","_React$useMemo2","measureChildList","mounted","setMounted","containerRef","_useMergedState","useMergedState","_useMergedState2","setUUID","newId","useUUID","isRtl","postState","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","doUpdate","flushSync","_React$useState3","_React$useState4","inlineCacheOpenKeys","setInlineCacheOpenKeys","mountRef","_React$useMemo3","_React$useMemo4","mergedMode","mergedInlineCollapsed","isInlineMode","_React$useState5","_React$useState6","internalMode","setInternalMode","_React$useState7","_React$useState8","internalInlineCollapsed","setInternalInlineCollapsed","_React$useState9","_React$useState10","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","overflowKeys","setOverflowKeys","updateRef","destroyRef","refreshOverflowKeys","getKeyPath","includeOverflow","pathKeys","getSubPathKeys","getKeys","useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","useImperativeHandle","_childList$find","_elementToFocus$focus","_refreshElements","focusableElements","shouldFocusKey","find","elementToFocus","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","targetKey","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","onInternalKeyDown","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","activeRef","cleanRaf","refreshedElements","_refreshedElements","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_offsets","inlineTrigger","inline","inlineSub","horizontalSub","verticalSub","sibling","getOffset","tryFocus","menuElement","focusTargetElement","targetElement","findContainerUL","controlId","getElementById","parentKey","parentMenuElement","useAccessibility","nextOpen","privateContext","wrappedChildList","itemComponent","dir","renderRawItem","renderRawRest","omitItems","originOmitItems","maxCount","INVALIDATE","RESPONSIVE","ssr","newLastIndex","SubMenu","ItemGroup","isIndex","isLength","hasFunc","defaultTheme","defaultConfig","hashed","DesignTokenContext","React2","react","xstate","_interopDefault","React2__default","VideoStateContext_default","createContext","sendEvent","VideoStates","VideoStates2","VideoEvents","VideoEvents2","initialContext","micEnabled","micPermission","callData","roomData","deviceData","entered","exited","logger","stateMachine_default","guards","verifyMicPermission","supportsIntercom","actions","resetContext","micDisabled","micPermissionEnabled","micPermissionDisabled","updateCallData","wsUrl","opvideoDeviceId","opvideoIntercomId","resetCallData","notifyDeviceChanged","createMachine","initial","on","states","exit","raise","guard","send","actor","useMachine","videoState","machineActor","ace","define","require","isDark","cssClass","cssText","importCssString","lower","upper","RefForm","FormProvider","Field","useForm","useWatch","OpFlex","testId","flexProps","Flex","data-testid","baseIsNative","cachedGuess","zones","countries","names","guesses","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","whole","fractional","multiplier","out","arrayToInt","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","mid","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","checkedOffsets","normalizeName","addZone","packed","normalized","getZone","caller","addLink","normal0","normal1","needsOffset","isUnixTimestamp","_tzm","isMoment","unpacked","_index","lo","hi","closest","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","scoreOffsetAt","offsetAt","abs","dataVersion","_zones","_links","_names","_countries","load","country_zones","addCountries","zoneExists","didShowError","ignoreCache","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","zoneScore","change","nextOffset","startYear","getFullYear","last","lastOffset","userOffsets","zoneScores","rebuildGuess","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","z","zoneName","zoneAbbr","setDefault","momentProperties","_possibleConstructorReturn","_extends","flexDirection","App","customizePrefixCls","wrapCSSVar","cssVarCls","customClassName","appConfig","mergedAppConfig","messageApi","messageContextHolder","useMessage","notificationApi","notificationContextHolder","useNotification","ModalApi","ModalContextHolder","useModal","memoizedContextValue","Component","rootProps","useApp","defaultRootPrefixCls","getRootPrefixCls","ConfirmDialogWrapper","getContainer","runtimeLocale","mergedGetContainer","locale","Modal","confirm","createDocumentFragment","timeoutId","currentConfig","_a2","param","triggerCancel","onCancel","getIconPrefixCls","getTheme","dom","holderRender","afterClose","update","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","modalGlobalConfig","space","Hash","useInjectReducers","React","ReactReduxContext","useOpQuery","apiEndpointName","parameters","suppressErrorMessage","getAll","queryKey","queryOptions","parametersArray","withQuery","ensurePayloadAndQuery","currentIdentityLanguage","useSelector","selectCurrentIdentityLanguage","queriesIndex","findLastIndex","queryFn","filteredCount","queryRequest","statusCode","json","subResult","errorData","apiInfo","hasValidParams","useQuery","skipToken","baseSet","LayoutContext","siderHook","addSider","removeSider","accumulator","initAccum","getRoundNumber","Color","_FastColor","resets","convertHsb2Hsv","hsb","toHsb","saturation","lightness","hsbString","hsbaString","_this$toHsv","toHsv","useSyncState","_React$useReducer","currentValueRef","updater","ENUM","fullField","genWaveStyle","motionEaseOutCirc","captureErrorCause","processEvent","hint","maxValueLength","originalException","exceptionName","nativeKeys","extraErrorInfo","cause","toJSON","serializedError","oO","_extractErrorData","contexts","normalizedErrorData","_enhanceEventWithErrorData","MetricsAggregator","_bucketsTotalWeight","_flush","unref","_flushShift","_forceFlush","_captureMetrics","cutoffSeconds","flushedBuckets","bucket","buckets","cloneArrayBuffer","typedArray","isDeep","byteOffset","meridiemHour","copyObject","createSessionEnvelope","session","dsn","metadata","tunnel","sdkInfo","envelopeHeaders","sent_at","sdk","envelopeItem","createEventEnvelope","eventType","integrations","enhanceEventWithSdkInfo","eventItem","createSpanEnvelope","spans","getDsn","headers","trace_id","public_key","dscHasRequiredProps","beforeSendSpan","convertToSpanJSON","spanJson","canUseDocElement","documentElement","REACT_ELEMENT_TYPE_18","REACT_ELEMENT_TYPE_19","REACT_FRAGMENT_TYPE","isFragment","_typeof","toPrimitive","alwaysNewT","i18n","keyPrefix","getFixedT","useTranslation","ns","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","wait","i18nOptions","useSuspense","namespaces","addUsedNamespaces","isInitialized","initializedStoreOnce","memoGetT","useMemoizedT","lng","nsMode","getT","getNewT","setT","useState","joinedNS","previousJoinedNS","usePrevious","isMounted","bindI18n","bindI18nStore","boundReset","off","getOpParams","pathname","getWindowLocation","orgIdRegex","mediaDevices","toList","candidate","gtm","Button","data-gtm","variant","_defineProperties","_createClass","_defineProperty","_inherits","_setPrototypeOf","_getPrototypeOf","EventSet","handlers","called","cloneMap","normalizeHandlers","normalizeTarget","isRefObject","EventPool","handlerSets","poolName","addHandlers","dispatchEvent","hasHandlers","removeHandlers","EventTarget","pools","createByType","addTargetHandler","removeTargetHandler","createEmitter","removeEventListener","targets","canUseDOM","pool","getTarget","removeTarget","EventStack$1","ReferenceError","_assertThisInitialized","PureComponent","unsub","propTypes","arrayPush","keysFunc","symbolsFunc","typedArrayTags","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","isObjectLike","getBucketKey","simpleHash","rv","serializeMetricBuckets","metricBucketItems","tagEntries","maybeTags","sanitizeUnit","sanitizeMetricKey","sanitizeTagKey","tagValueReplacements","sanitizeTags","char","getCharOrReplacement","firstLevel","dashed","__rest","classString","danger","disableMenuItemTitleTooltip","isInlineCollapsed","siderCollapsed","Sider","tooltipTitle","tooltipProps","childrenLength","returnNode","wrapNode","renderItemChildren","overlayClassName","horizontalLineHeight","itemPaddingInline","menuArrowOffset","transformOrigin","accessibilityFocus","themeSuffix","itemColor","itemSelectedColor","groupTitleColor","itemBg","subMenuItemBg","itemSelectedBg","activeBarHeight","activeBarWidth","activeBarBorderWidth","motionEaseOut","itemHoverColor","itemDisabledColor","dangerItemColor","dangerItemHoverColor","dangerItemSelectedColor","dangerItemActiveBg","dangerItemSelectedBg","popupBg","itemHoverBg","itemActiveBg","menuSubMenuBg","horizontalItemSelectedColor","horizontalItemSelectedBg","horizontalItemBorderRadius","horizontalItemHoverBg","marginBottom","insetInline","borderBottomWidth","borderBottomColor","borderInlineEnd","insetBlock","borderInlineEndColor","getVerticalInlineStyle","itemHeight","itemMarginInline","menuArrowSize","marginXS","itemMarginBlock","itemWidth","paddingWithArrow","marginInline","marginBlock","dropdownWidth","paddingXL","motionDurationFast","collapsedWidth","collapsedIconSize","inlineItemStyle","listStylePosition","listStyleType","minWidth","maxHeight","overflowX","overflowY","genMenuItemStyle","iconSize","iconMarginInlineEnd","genSubMenuArrowStyle","getBaseStyle","subMenuItemBorderRadius","groupTitleLineHeight","groupTitleFontSize","itemBorderRadius","flexGrow","inset","borderStyle","borderWidth","borderTopWidth","paddingBottom","colorFillContent","lineWidthBold","colorBgTextHover","marginXXS","colorTextDark","setAlpha","radiusItem","radiusSubMenuItem","colorItemText","colorItemTextHover","colorItemTextHoverHorizontal","horizontalItemHoverColor","colorGroupTitle","colorItemTextSelected","colorItemTextSelectedHorizontal","colorItemBg","colorItemBgHover","colorItemBgActive","colorSubItemBg","colorItemBgSelected","colorItemBgSelectedHorizontal","colorActiveBarWidth","colorActiveBarHeight","colorActiveBarBorderSize","colorItemTextDisabled","colorDangerItemText","colorDangerItemTextHover","colorDangerItemTextSelected","colorDangerItemBgActive","colorDangerItemBgSelected","darkItemDisabledColor","darkItemColor","darkDangerItemColor","darkItemBg","darkPopupBg","darkSubMenuItemBg","darkItemSelectedColor","darkItemSelectedBg","darkDangerItemSelectedBg","darkItemHoverBg","darkGroupTitleColor","darkItemHoverColor","darkDangerItemHoverColor","darkDangerItemSelectedColor","darkDangerItemActiveBg","injectStyle","menuToken","menuHorizontalHeight","menuDarkToken","deprecatedTokens","useStyle","customTheme","contextTheme","parentPath","titleIsSpan","contextValue","useZIndex","isEmptyIcon","MENU_COMPONENTS","InternalMenu","OverrideContext","overrideObj","menu","_internalDisableMenuItemTitleTooltip","validator","useEvent","mergedSelectable","useCSSVarCls","menuClassName","mergedIcon","EllipsisOutlined","Menu","menuRef","DoubleRightOutlined","genSiderStyle","siderBg","triggerHeight","triggerColor","triggerBg","headerHeight","zeroTriggerWidth","zeroTriggerHeight","lightSiderBg","lightTriggerColor","lightTriggerBg","bodyBg","fontSizeXL","justifyContent","borderInlineStart","dimensionMaxMap","xs","sm","md","lg","xl","xxl","SiderContext","generateId","trigger","defaultCollapsed","collapsible","reverseArrow","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint","otherProps","collapsed","setCollapsed","below","setBelow","handleSetCollapsed","responsiveHandlerRef","mql","responsiveHandler","matchMedia","addListener","removeListener","uniqueId","toggle","divProps","rawWidth","siderWidth","zeroWidthTrigger","BarsOutlined","defaultTrigger","expanded","RightOutlined","triggerDom","divStyle","maxWidth","siderCls","renderSider","_toConsumableArray","OpInfoWithDismiss","dismissibleId","alertProps","setIsVisible","useLocalStorage","Alert","showIcon","closable","onClose","autoFocusButton","cancelButtonProps","cancelTextLocale","isSilent","mergedOkCancel","onConfirm","ActionButton","actionFn","autoFocus","okButtonProps","okTextLocale","okType","onOk","genModalConfirmStyle","titleFontSize","titleLineHeight","modalConfirmIconSize","modalTitleHeight","confirmBodyPadding","confirmComponentCls","confirmIconMarginInlineEnd","rowGap","confirmBtnsMarginTop","colorInfo","colorSuccess","modalToken","ConfirmContent","okText","cancelText","confirmPrefixCls","okCancel","footer","staticLocale","resetProps","InfoCircleFilled","CheckCircleFilled","CloseCircleFilled","ExclamationCircleFilled","mergedLocale","justOkText","btnCtxValue","btnCtxValueMemo","footerOriginNode","hasTitle","bodyCls","OkBtn","CancelBtn","ConfirmDialog","keyboard","centered","maskStyle","wrapClassName","bodyStyle","closeIcon","modalRender","focusTriggerAfterClose","styles","mask","maskClosable","mergedZIndex","maskTransitionName","setFormValue","page","subFilterId","SET_FORM_VALUE","setNestedFormValue","SET_NESTED_FORM_VALUE","setFormValues","SET_FORM_VALUES","setInitialFormValues","SET_INITIAL_FORM_VALUES","setIsLoading","SET_IS_LOADING","setIsEditing","isEditing","SET_IS_EDITING","setFormValidation","SET_FORM_VALIDATION","createEditItem","formValues","initialFormValues","submitFormConfig","CREATE_EDIT_ITEM","EyeInvisibleOutlined","useWinClick","clickToHide","targetEle","popupEle","inPopupOrChild","triggerOpen","openRef","popupPointerDownRef","onPointerDown","onTriggerClose","_e$composedPath","composedPath","win","targetShadowRoot","parseSampleRate","rate","useGlobalCache","cacheFn","onCacheRemove","onCacheEffect","globalCache","fullPathStr","buildCache","prevCache","_ref2$","cacheContent","polyfill","times","_ref6$","FormContext","labelAlign","itemRef","NoStyleItemContext","providerProps","FormItemPrefixContext","FormItemInputContext","NoFormStyle","formItemInputContext","newFormItemInputContext","newContext","isFormItemInput","hasFeedback","feedbackIcon","VariantContext","symbolMap","numberMap","preparse","postformat","Mask","DomWrapper","getActivationStart","navEntry","activationStart","resIndex","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","Uint8Array","symbolProto","symbolValueOf","nativeGetSymbols","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","byteLength","eq","stacked","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","plural","translate","withoutSuffix","isFuture","formatIssueTitle","issue","unionErrors","formatIssueMessage","zodError","errorKeyMap","iss","issues","errorKeys","originalEvent","exception","applyZodErrorsToEvent","$locale","yearStart","isBefore","typeTemplate","Pagination","DatePicker","TimePicker","Calendar","placeholder","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Tour","Next","Previous","Finish","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","deselectAll","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Text","edit","copy","copied","Form","defaultValidateMessages","enum","whitespace","float","regexp","mismatch","Image","preview","QRCode","expired","refresh","scanned","ColorPicker","presetEmpty","transparent","singleColor","gradientColor","i18nInstance","setI18n","getI18n","_PauseOutlined","PauseOutlined","nullRef","whenHovered","bound","isHovered","elX","elW","elY","elH","_AbstractCalculator","NumCalculator","_this","InternalTimePicker","RangePicker","InternalRangePicker","picker","addon","renderExtraFooter","bordered","mergedVariant","internalRenderExtraFooter","PurePanel","_InternalPanelDoNotUseOrYouWillBeFired","baseAssignValue","baseGet","genOTPStyle","columnGap","inputToken","onActiveChange","internalValue","inputRef","syncSelection","inputEle","select","Input","onInput","onKeyUp","onMouseDown","onMouseUp","strToArr","customSize","formatter","customStatus","domAttrs","pickAttrs","aria","attr","mergedSize","useSize","formContext","mergedStatus","proxyFormContext","nativeElement","internalFormatter","txt","valueCells","setValueCells","triggerValueCellsChange","nextValueCells","patchValue","nextCells","formattedValue","onInputChange","nextIndex","onInputActiveChange","inputSharedProps","singleValue","htmlSize","defaultIconRender","EyeOutlined","actionMap","click","hover","customDisabled","visibilityToggle","iconRender","DisabledContext","visibilityControlled","setVisible","removePasswordTimeout","useRemovePasswordTimeout","prevState","newState","inputPrefixCls","customizeInputPrefixCls","suffixIcon","iconTrigger","iconProps","getIcon","inputClassName","omittedProps","customizeSize","enterButton","addonAfter","loading","onSearch","customOnSearch","customOnChange","onCompositionStart","onCompositionEnd","composedRef","compactSize","searchIcon","SearchOutlined","btnClassName","button","enterButtonAsElement","isAntdButton","__ANT_BUTTON","cls","onPressEnter","Group","formItemContext","groupFormItemContext","onBlur","Search","TextArea","Password","OTP","requestGetInitialData","REQUEST_GET_INITIAL_DATA","setIdentityProviderTypes","identityProviderTypes","SET_IDENTITY_PROVIDER_TYPES","setIdentityProviders","identityProviders","SET_IDENTITY_PROVIDERS","requestSyncIdentityProvider","identityProviderId","REQUEST_SYNC_IDENTITY_PROVIDER","requestUpsertIdentityProvider","idpt","idpPageItems","REQUEST_UPSERT_IDENTITY_PROVIDER","requestIdpReauth","idpId","REQUEST_IDP_REAUTH","setGroupRelations","identityProviderCode","groupRelations","SET_GROUP_RELATIONS","inactivateIdp","INACTIVATE_IDP","requestCreateVideoProvider","videoProviderTypeId","apiKey","authState","supportsGroups","REQUEST_CREATE_VIDEO_PROVIDER","requestUpdateVideoProvider","videoProviderId","REQUEST_UPDATE_VIDEO_PROVIDER","OpSkeleton","skeletonProps","Skeleton","Avatar","Node","Checkbox","skeletonAvatarProps","shape","paragraph","monthsShortDot","monthsParse","monthsRegex","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","ww","hashClear","hashDelete","hashGet","hashHas","hashSet","wrapPromiseFn","openFn","closeFn","closePromise","filled","rejected","fnRef","memoFn","_fnRef$current","kTrue","konst","asyncIterator","assignWithSymbols","flatMap","mapper","once","kThrow","kReturn","makeIterator","thro","internalErr","createEmptyArray","wrapSagaDispatch","shouldTerminate","shouldCancel","shouldComplete","createAllStyleChildCallbacks","parentCallback","totalCount","completedCount","results","getMetaInfo","getLocation","instrumented","expanding","initialSize","overflowAction","pushIndex","popIndex","doubledLimit","ringBuffer","TAKE","PUT","ALL","RACE","CALL","CPS","FORK","JOIN","CANCEL","SELECT","ACTION_CHANNEL","FLUSH","GET_CONTEXT","SET_CONTEXT","makeEffect","combinator","detach","patternOrChannel","multicastPattern","channel$1","getFnCallDescriptor","fnDescriptor","_len3","_key3","spawn","_len4","_key4","_len5","_key5","delay","openpathConfig","server","PORTAL_API_URL","ENV","getAccessToken","Helium","checkForMaintenanceMode","forceCheck","mCheck","sessionStorage","getItem","setItem","maintenanceCheck","checkMaintenanceEndpoint","configUrl","maintenanceMode","windowLocation","href","ex","checkForExpiringToken","cookieToken","tempToken","jwtDecode","isUndefined","removeAccessToken","expirationTime","exp","currentTime","newToken","refreshLogin","setAccessToken","postRequestCallback","expectCode","rawResponse","parseDebugTeapot","HeliumClient","forLiveServer","DynamicHelium","createClient","baseUrl","genSharedButtonStyle","gap","backgroundImage","touchAction","letterSpacing","genHoverActiveButtonStyle","btnCls","hoverStyle","activeStyle","genCircleButtonStyle","genRoundButtonStyle","genDisabledStyle","genGhostButtonStyle","textColor","textColorDisabled","genSolidDisabledButtonStyle","genPureDisabledButtonStyle","genVariantButtonStyle","genDisabledButtonStyle","genSolidButtonStyle","genOutlinedDashedButtonStyle","genDashedButtonStyle","genFilledButtonStyle","genTextLinkButtonStyle","genDefaultButtonStyle","colorBgSolidHover","colorBgSolidActive","colorFill","genPrimaryButtonStyle","colorPrimaryTextHover","colorPrimaryTextActive","colorPrimaryBg","colorPrimaryBgHover","genDangerousStyle","colorErrorActive","colorErrorBorderHover","colorErrorBgFilledHover","colorErrorBgActive","genColorButtonStyle","genCompatibleButtonStyle","colorBgTextActive","genButtonStyle","iconOnlyCls","opacityLoading","genSizeBaseButtonStyle","baseToken","genSizeSmallButtonStyle","smallToken","genSizeLargeButtonStyle","largeToken","genBlockButtonStyle","buttonToken","reWhitespace","derivative","presetPrimaryColors","pink","magenta","presetPalettes","colorPalettes","colorKey","cur","generateColorPalettes","generateNeutralColorPalettes","wrapInStatefulComponent_1","__importDefault","Comp","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","cssinjsInstanceId","firstChild","insertBefore","_style$parentNode","hash","parentNode","createCache","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","OpFormDrawerContext","isSubmitting","setIsSubmitting","OpFormDrawerContextProvider","useOpFormDrawerContext","buildInPlacements","popupOverflow","sharedConfig","shiftY","htmlRegion","dynamicInset","getBuiltInPlacements","baseIsTypedArray","baseUnary","createNamedWrapperReducer","reducerFunction","strictMode","tableId","omniId","internalObjectKeys","hiddenKeys","MapCache","setCacheAdd","setCacheHas","OpInfo","scrollIntoView","scrollRef","useLayoutEffect","behavior","OpInfoWithoutDismiss","isFirstMount","obj1","obj2","refSet","deepEqual","circular","newLevel","pickerRef","transformRef","colorRef","onDragChange","offsetValue","calcColor","targetRef","_useColorDrag","onDragChangeComplete","disabledDrag","_useColorDrag2","dragStartHandle","onTouchStart","MapShim","getIndex","class_1","__entries__","_i","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","left","right","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","getHTMLElementContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","IndexedObject","lengthOfArrayLike","createMethod","TYPE","IS_FIND_LAST_INDEX","$this","callbackfn","that","boundFunction","findLast","useFeatureFlag","flag","heliumOrgFlags","isLoading","isLoadingHeliumOrgFlags","isPending","isPendingHeliumOrgFlags","isFetching","isFetchingHeliumOrgFlags","heliumOrgFlag","hf","featureFlag","opConfig","BLOCKS","INLINES","MARKS","_a$1","extendStatics","__extends","__spreadArray","pack","ar","SuppressedError","TOP_LEVEL_BLOCKS","PARAGRAPH","HEADING_1","HEADING_2","HEADING_3","HEADING_4","HEADING_5","HEADING_6","OL_LIST","UL_LIST","HR","QUOTE","EMBEDDED_ENTRY","EMBEDDED_ASSET","EMBEDDED_RESOURCE","TABLE","LIST_ITEM_BLOCKS","TABLE_BLOCKS","TABLE_ROW","TABLE_CELL","TABLE_HEADER_CELL","VOID_BLOCKS","CONTAINERS","LIST_ITEM","HEADINGS","TEXT_CONTAINERS","V1_NODE_TYPES","DOCUMENT","HYPERLINK","ENTRY_HYPERLINK","ASSET_HYPERLINK","V1_MARKS","BOLD","CODE","ITALIC","UNDERLINE","EMPTY_DOCUMENT","marks","hasValue","helpers","freeze","isBlock","isInline","isText","typeMismatchError","property","typeName","ObjectAssertion","_errors","catch","requiredPropertyError","of","expected","enumError","maxSizeError","minLength","minSizeError","noAdditionalProperties","unknowns","unknownPropertyError","foundErrors","serializeError","step","VOID_CONTENT","NodeAssertion","contentRule","validateData","nodeTypes","item$","dataErrors","EntityLinkAssertion","linkType","contentNodeTypes","assertLink","sys$","sys","HyperLinkAssertion","Path","assertInlineOrText","assertList","assertVoidEntryLink","assertTableCell","nodeValidator","RESOURCE_HYPERLINK","validateNode","mark$","assertText","validateRichTextDocument","createBrowserHistory","getUserConfirmation","symbolKey","previousLocation","listen","newLocation","previousSearchParams","URLSearchParams","newSearchParams","previousPRMatch","modifiedPathname","render_1","defaultMapPropsToArgs","hook","mapPropsToArgs","_middleware","ConnectedRouter","_ConnectedRouter","_interopRequireDefault","_reducer","_selectors","_immutable","_createSelectors","getAction","getHash","getRouter","getSearch","createMatchSelector","UNIFIED_LOGIN_ERROR_MESSAGE","login_time_denied","ip_address_denied","unifiedLogin","urlToOpen","newTab","bypassAuth","awareUser","finalNonce","jwt","awareClient","lookupUser","deploymentUrl","finalOptions","finalUrl","setUnifiedCookie","ok","resData","assocIndexOf","memoize","resolver","memoized","NodeType","distanceToMatch","matchPredicate","distance","ELEMENT_NODE","createMatchPredicate","el","eIndex","classList","elementClassMatchesRegex","e2","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","getId","getNode","removeNodeFromMap","hookSetter","isRevoked","patch","__rrweb_original__","isBlocked","blockClass","blockSelector","unblockSelector","checkAncestors","closestElementOfNode","blockedPredicate","isUnblocked","blockDistance","unblockDistance","Proxy","receiver","cachedImplementations","getImplementation","cached","impl","hidden","contentWindow","onRequestAnimationFrame","rest","CanvasContext","CanvasContext2","errorHandler","registerErrorHandler","handler","callbackWrapper","chars","lookup","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","ctor","contextMap","variableListFor","serializeArg","Float32Array","Float64Array","Int32Array","Uint32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","arraybuffer","bytes","DataView","HTMLImageElement","HTMLCanvasElement","toDataURL","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","restoreHandler","contextType","ctxName","getNormalizedContextName","__context","contextAttributes","preserveDrawingBuffer","patchGLPrototype","mirror","canvas","recordArgs","mutation","hookHandler","CanvasManager","pendingCanvasMutations","restoreHandlers","windowsSet","windows","shadowDoms","worker","_2","terminate","_3","snapshotInProgressMap","recordCanvas","sampling","enableManualSnapshot","initFPSWorker","frozen","unfreeze","lock","unlock","rafStamps","latestId","invokeId","processMutation","maxCanvasSize","dataURLOptions","mutationCb","addWindow","startRAFTimestamping","startPendingCanvasMutationFlusher","initCanvasFPSObserver","WeakRef","initCanvasMutationObserver","canvasContextReset","addShadowRoot","shadowRoot","resetShadowRoots","Worker","Blob","createObjectURL","onmessage","commands","fps","rafId","takeSnapshot","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","canvasElement","isManualSnapshot","timeBetweenSnapshots","lastSnapshotTime","getCanvas","matchedCanvas","searchCanvas","deref","takeCanvasSnapshots","hasNode","getContext","_4","getContextAttributes","_5","_6","COLOR_BUFFER_BIT","createImageBitmap","bitmap","_7","_8","postMessage","_9","flushPendingCanvasMutations","setLatestRAFTimestamp","flushPendingCanvasMutationFor","valuesWithType","CANVAS_QUALITY","quality","medium","DEFAULT_MAX_CANVAS_SIZE","maxCanvasWidth","maxCanvasHeight","_canvasOptions","canvasManagerResolve","_canvasManager","getCanvasManager","getCanvasManagerOptions","manager","__rrweb__","getAllKeys","isIconDefinition","normalizeAttrs","attrs","getSecondaryColor","normalizeTwoToneColors","svgBaseProps","useInsertStyles","eleRef","_useContext","mergedStyleStr","SentryError","logLevel","isValidWaveColor","getTargetWaveColor","borderTopColor","setTableUpdating","updatingMessage","SET_TABLE_LOADING","setTableHasBeenUpdated","tableHasBeenUpdated","SET_TABLE_HAS_BEEN_UPDATED","TABLE_HAS_BEEN_UPDATED","setTableDataPercentLoaded","tableDataPercentLoaded","SET_TABLE_DATA_PERCENT_LOADED","PERCENT_LOADED","setTableState","tableState","SET_TABLE_STATE","TABLE_STATE","requestUpdateTable","params","REQUEST_UPDATE_TABLE","updateDataOrder","REQUEST_UPDATE_DATA_ORDER","setPageCount","pageCount","SET_PAGE_COUNT","PAGE_COUNT","translator","words","correctGrammaticalCase","wordKey","suffixes","getPlaceholder","customizePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","timePickerLocale","getRangePlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","rangePlaceholder","transPlacement2DropdownAlign","allowClear","clearIcon","removeIcon","componentName","allowClearConfig","WEEK","WEEKPICKER","MONTH","MONTHPICKER","YEAR","YEARPICKER","QUARTER","QUARTERPICKER","TIME","TIMEPICKER","useComponents","generateConfig","customGetPopupContainer","dropdownClassName","customVariant","innerRef","rangePicker","compactItemClassnames","enableVariantCls","mergedAllowClear","contextStatus","suffixNode","ClockCircleOutlined","CalendarOutlined","contextLocale","ContextIsolator","SwapRightOutlined","prevIcon","nextIcon","superPrevIcon","superNextIcon","classNames","getPicker","consumerName","customizeGetPopupContainer","onCalendarChange","consumerStyle","mergedPicker","hasLegacyOnSelect","dropdownAlign","dateStr","showToday","WeekPicker","MonthPicker","YearPicker","QuarterPicker","generateSinglePicker","MergedDatePicker","postPureProps","PureRangePanel","_InternalRangePanelDoNotUseOrYouWillBeFired","generatePicker","genSpaceStyle","genSpaceGapStyle","spaceGapSmallSize","spaceGapMiddleSize","spaceGapLargeSize","spaceToken","LanguageSelector","languageOptions","useSupportedLanguages","nativeName","selectedLanguage","OpSelect","filterSort","sortOptionsAlphabetically","LanguageSelectorNotAuthenticated","changeLanguage","loadMarketingData","setMarketingData","setIsFetching","CONTENTFUL_API_URL","fetch","Marketing","marketingData","useMarketing","LoadingOutlined","h1","headline","bodyContent","documentToReactComponents","buttonLink","buttonText","useGetSsoAuthUrl","useOpMutation","shouldSuppressErrorMessage","useAltaLoginUrlParams","urlParams","emailParam","service","resetPassword","redirectUrl","PROTECT_NATIVE_APP_ID","VIDEO_NATIVE_APP_ID","checkIsVideoOnlyCustomer","orgNativeApps","videoNativeApps","orgNativeApp","nativeApp","nativeAppId","hasOnlyMailroomScopes","tokenScopeItem","user","mailroomScopes","userScope","filteredScopes","scopeItem","EmailForm","onSubmit","initialValues","OpForm","hasError","defaultButtons","shouldWarnChangesBeforeUnload","submit","NotYou","header","emailPrefix","onResetClick","PossibleLogins","logins","isPasswordReset","resetLogins","setSelectedLogin","handleIdpSsoLogin","loginHandler","regionName","namespaceId","loginRegion","isSsoEnabled","namespaceNickname","nickname","regionEnv","heliumEndpoint","helium","endpoint","handleLoginClick","currentTarget","handleSelectOptionClick","hasAlotOfNameSpaces","memo","login","generateButtonText","selectOptions","showSearch","renderDropdown","ul","li","data-region","data-namespace","isRedirectUrlValid","getOrgIdForRedirect","orgIdUrlParam","isDmp","dmpUser","matchedIdentity","users","orgAwareConfig","isDmpOrg","useAltaLogin","setError","isLoggingIn","setIsLoggingIn","handleAltaLogin","redirectToControlCenter","setWindowLocation","ErrorAlert","redirectToUpc","getUpcUrl","findNativeApp","getVideoOnlyCustomerRedirectUrl","videoNativeApp","protectNativeApp","opConf","PasswordForm","isShowing2fa","setIsShowing2fa","redirectOrgId","org_id","isRedirectUrlUPC","isRedirectUrlMailroom","getMailroomOrigin","password","totpCode","loginResponse","mfa","finalRegion","tokenScopeListItem","scopeListItem","checkMasterModeAccess","checkAuthIsUPCPartnerOrg","videoUrl","mailroomUrl","loginError","useUnmount","autoComplete","PasswordInput","TextButton","block","htmlType","possibleRegionEnvs","HELIUM_ENDPOINT","getPossibleLogins","regionsResponse","regions","namespacesResponse","namespaceDataResponse","envIdx","getRegionFromHeliumUrl","namespaceData","maybeData","possibleLogins","allowedNamespaces","isMobileSsoEnabled","dmpOrgIdExt","namespaceFilter","useGetLoginsForEmail","emailForm","setLogins","isSubmittingEmail","setIsSubmittingEmail","getLoginsForEmail","chosenEmail","setFields","LoginFlow","initialEmail","onForgotPassword","useLocation","setEmail","selectedLogin","onEmailSubmit","tokenData","tokenScope","isUnified","emailToFetch","currentEmailValue","needsEmail","needsNamespace","needsPassword","didForget","ForgotPasswordForm","requestResetPassword","resetUrlParams","resetUrl","ResetPasswordRequest","contextHolder","showSuccessMessage","handleSendEmail","resetPasswordResponse","ForgotPasswordFlow","onBackToSignIn","needsRequestPasswordChange","getCloudServerRegions","HeliumEndpoint","ResetPasswordFlow","backToSignin","useDispatch","handleBackToSignIn","setAlert","replaceState","handleSubmit","currentRegion","reg","changePasswordResponse","enforcePolicy","avigilonAltaIdTooltipText","UseAltaIdButton","addQueryParams","useAddQueryParams","enabledFeatureCodes","useSelectorJs","selectFeatureFlag","useAltaId","OpInfoTooltip","UnifiedLogin","forgotPassword","setForgotPassword","prodHeliumClient","prodeu1HeliumClient","devHeliumClient","sandboxHeliumClient","getSsoAuthUrlMutation","prodSsoAuthUrlMutation","overrideApiClient","prodeu1SsoAuthUrlMutation","devSsoAuthUrlMutation","sandboxSsoAuthUrlMutation","envSsoMutations","mutate","onSuccess","authUrl","showLogin","showForgotPassword","FormInputPortion","OpDivider","LoginSSOEmailForm","loginRoute","navigate","useNavigate","namespaceNicknameOptions","setNamespaceNicknameOptions","determineLoginCandidateNamespacesMutation","Select","LoginSSOAltaIdForm","isSso","sso","useIsSso","mutateAsync","tooltip","hasPortalAccess","isAltaIdForm","queryClient","QueryClient","queryCache","QueryCache","previousTheme","appColorThemeManager","getCurrentElColorTheme","handleThemeToggle","OpApp","OpPage","img","QueryClientProvider","AlertWrapper","routerActions","goForward","goBack","go","CALL_HISTORY_METHOD","onLocationChanged","LOCATION_CHANGE","isFirstRendering","updateLocation","addConsoleInstrumentationHandler","instrumentConsole","originalConsoleMethod","handlerData","_arrayWithoutHoles","CheckOutlined","getDefaultExportFromCjs","urlToolkit","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","buildAbsoluteURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","normalizePath","buildURLFromParts","relativeParts","baseParts","netLoc","pathParts","builtParts","baseURLPath","newPath","urlToolkitExports","_objectSpread2","_toPrimitive","_toPropertyKey","isFiniteNumber","Events","ErrorTypes","ErrorDetails","fakeLogger","exportedLogger","DECIMAL_RESOLUTION_REGEX","ATTR_LIST_REGEX","AttrList","parseAttrList","clientAttrs","decimalInteger","attrName","intValue","hexadecimalInteger","stringValue","hexadecimalIntegerAsNumber","decimalFloatingPoint","optionalFloat","enumeratedString","decimalResolution","lastIndex","isSCTE35Attribute","DateRange","dateRangeAttr","dateRangeWithSameId","_startDate","_endDate","_badValueForSameId","previousAttr","ID","CLASS","plannedDuration","endOnNext","LoadStats","aborted","loaded","retry","total","chunkCount","bwEstimate","parsing","buffering","ElementaryStreamTypes","BaseSegment","baseurl","_byteRange","_url","relurl","elementaryStreams","setByteRange","previous","byteRangeEndOffset","byteRange","byteRangeStartOffset","Fragment","_decryptdata","rawProgramDateTime","programDateTime","tagList","sn","levelkeys","loader","keyLoader","cc","startPTS","endPTS","startDTS","endDTS","deltaPTS","maxStartPTS","minEndPTS","stats","bitrateTest","initSegment","endList","urlId","decryptdata","NONE","getDecryptData","keyFormats","endProgramDateTime","encrypted","_this$_decryptdata","setKeyFormat","keyFormat","abortRequests","_this$loader","_this$keyLoader","setElementaryStreamInfo","clearElementaryStreamInfo","Part","partAttrs","frag","fragOffset","independent","audio","video","audiovideo","LevelDetails","PTSKnown","alignedSliding","averagetargetduration","endCC","endSN","fragments","fragmentHint","partList","dateRanges","live","ageHeader","advancedDateTime","updated","advanced","availabilityDelay","misses","startCC","startSN","startTimeOffset","targetduration","totalduration","m3u8","canBlockReload","canSkipUntil","canSkipDateRanges","skippedSegments","recentlyRemovedDateranges","partHoldBack","holdBack","partTarget","preloadHint","renditionReports","tuneInGoal","deltaUpdateFailed","driftStartTime","driftEndTime","driftStart","driftEnd","encryptedFragments","playlistParsingError","variableList","hasVariableRefs","reloaded","partSnDiff","lastPartSn","partIndexDiff","lastPartIndex","hasProgramDateTime","levelTargetDuration","drift","runTime","edge","partEnd","fragmentEnd","_this$partList","_this$fragments","age","_this$partList2","_this$partList3","base64Decode","base64encodedStr","atob","strToUtf8array","unescape","optionalSelf","KeySystems","CLEARKEY","FAIRPLAY","PLAYREADY","WIDEVINE","KeySystemFormats","keySystemFormatToKeySystemDomain","keySystemIdToKeySystemDomain","systemId","keySystemDomainToKeySystemFormat","keySystem","getKeySystemsForConfig","drmSystems","widevineLicenseUrl","keySystemsToAttempt","requestMediaKeySystemAccess","_optionalSelf$navigat","parsePlayReadyWRM","keyBytes","keyBytesUtf16","keyByteStr","xmlKeyBytes","keyData","DOMParser","parseFromString","getElementsByTagName","keyId","nodeValue","keyIdArray","subarray","swap","changeEndianness","sliceUint8","isHeader$2","isFooter","getID3Data","front","readSize","canParse$2","getTimeStamp","frames","getID3Frames","isTimeStampFrame","readTimeStamp","getFrameData","id3Data","frameData","decodeFrame","decodePrivFrame","decodeURLFrame","decodeTextFrame","owner","utf8ArrayToStr","privateData","timeStampFrame","pts33Bit","exitOnNull","decoder","getTextDecoder","decoded","idx","char2","char3","TextDecoder","Hex","UINT32_MAX$1","RemuxerTrackIdConfig","id3","bin2str","readUint16","readUint32","readSint32","readUint64","writeUint32","findBox","endbox","subresults","parseSegmentIndex","sidx","references","timescale","earliestPresentationTime","firstOffset","startByte","referencesCount","referenceIndex","referenceInfo","referenceSize","subsegmentDuration","parseInitSegment","traks","trak","tkhd","trackId","mdhd","hdlr","hdlrType","soun","vide","stsdData","parseStsd","trex","track","stsd","sampleEntries","sampleEntriesEnd","fourCC","codec","encBox","sinf","schm","frma","avcCBox","toHex","codecBox","esdsBox","skipBERInteger","objectType","firstByte","audioObjectType","hvcCBox","profileByte","profileSpace","generalProfileIdc","profileCompat","tierFlag","levelIDC","constraintIndicator","constraintString","byte","dvcCBox","profile","addLeadingZero","vpcCBox","bitDepth","av1CBox","highBitDepth","twelveBit","monochrome","chromaSubsamplingX","chromaSubsamplingY","chromaSamplePosition","colorPrimaries","transferCharacteristics","matrixCoefficients","videoFullRangeFlag","parseSinf","computeRawDurationFromSamples","trun","sampleCount","appendUint8Array","data1","data2","temp","parseSamples","timeOffset","seiSamples","videoData","samples","isHEVCFlavor","moof","moofOffset","traf","baseTime","tfdt","tfhd","tfhdFlags","defaultSampleDuration","defaultSampleSizePresent","defaultSampleSize","defaultSampleFlagsPresent","tfhdOffset","delimit","baseCodec","isHEVC","dataOffsetPresent","dataOffset","firstSampleFlagsPresent","sampleDurationPresent","sampleDuration","sampleSizePresent","sampleSize","sampleFlagsPresent","sampleCompositionOffsetsPresent","compositionOffset","trunOffset","sampleOffset","ix","naluTotalSize","naluSize","isSEIMessage","parseSEIMessageFromNALu","naluHeader","naluType","unescapedData","headerSize","pts","discardEPB","seiPtr","payloadType","payloadSize","leftOver","payPtr","providerCode","userStructure","userDataType","totalBytes","byteArray","uuidStrArray","userDataBytes","userData","EPBPositions","newLength","newData","sourceIndex","parsePssh","view","getUint32","dataSizeOrKidCount","kids","keyUriToKeyIdMap","LevelKey","clearKeyUriToKeyIdMap","formatversions","iv","keyFormatVersions","isCommonEncryption","pssh","isSupported","segmentNumber","uint8View","createInitializationVector","colonsplit","keydata","semicolonsplit","commasplit","isbase64","keyIdbytes","paddedkeyIdbytes","getKeyIdBytes","convertDataUriToArrayBytes","PlayReadyKeySystemUUID","keyids","RangeError","kidCount","setUint32","dataSize","mp4Box","mp4pssh","padded","VARIABLE_REPLACEMENT_REGEX","hasVariableReferences","substituteVariablesInAttributes","attributeNames","substituteVariables","variableReference","variableName","variableValue","addVariableDefinition","parentUrl","NAME","VALUE","QUERYPARAM","importVariableDefinition","sourceVariableList","IMPORT","getMediaSource","preferManagedMediaSource","MediaSource","ManagedMediaSource","WebKitMediaSource","sampleEntryCodesISO","a3ds","alac","alaw","dra1","dtsc","dtse","dtsh","enca","fLaC","flac","FLAC","g719","g726","m4ae","mha1","mha2","mhm1","mhm2","mlpa","mp4a","Opus","opus","samr","sawb","sawp","sevc","sqcp","ssmv","twos","ulaw","avc1","avc2","avc3","avc4","avcp","av01","drac","dva1","dvav","dvh1","dvhe","encv","hev1","hvc1","mjp2","mp4v","mvc1","mvc2","mvc3","mvc4","resv","rv60","s263","svc1","svc2","vp08","vp09","stpp","wvtt","areCodecsMediaSourceSupported","codecs","isCodecMediaSourceSupported","_MediaSource$isTypeSu","isTypeSupported","mimeTypeForCodec","videoCodecPreferenceValue","videoCodec","codecsSetSelectionPreferenceValue","codecSet","preferenceValue","CODEC_COMPATIBLE_NAMES","AUDIO_CODEC_REGEXP","getCodecCompatibleName","lowerCaseCodec","codecsToCheck","getCodecCompatibleNameLower","pickMostCompleteCodecName","parsedCodec","levelCodec","MASTER_PLAYLIST_REGEX","MASTER_PLAYLIST_MEDIA_REGEX","IS_MEDIA_PLAYLIST","LEVEL_PLAYLIST_REGEX_FAST","LEVEL_PLAYLIST_REGEX_SLOW","M3U8Parser","findGroup","mediaGroupId","isMediaPlaylist","parseMasterPlaylist","contentSteering","levels","sessionData","sessionKeys","levelsWithKnownCodecs","_level$unknownCodecs","bitrate","resolution","setCodecs","CODECS","unknownCodecs","sessionAttrs","dataId","sessionKey","parseKey","variableAttributes","contentSteeringAttributes","pathwayId","parseStartTimeOffset","stripUnknownCodecLevels","parseMasterPlaylistMedia","groupsByType","AUDIO","audioCodec","SUBTITLES","textCodec","medias","LANGUAGE","assocLang","channels","CHANNELS","characteristics","CHARACTERISTICS","instreamId","media","groupId","autoselect","forced","URI","groupCodec","assignCodec","parseLevelPlaylist","levelUrlId","multivariantVariableList","currentInitSegment","currentSN","currentPart","discontinuityCounter","prevFrag","firstPdtIndex","createNextFrag","nextByteRange","setFragLevelKeys","assignProgramDateTime","value1","value2","skipAttrs","dateRange","levelKey","mapAttrs","setInitSegment","serverControlAttrs","partInfAttrs","previousFragmentPart","preloadHintAttrs","renditionReportAttrs","fragmentLength","firstFragment","lastFragment","lastSn","fragPrev","backfillProgramDateTimes","keyTagAttributes","_keyAttrs$METHOD","_keyAttrs$KEYFORMAT","keyAttrs","decryptmethod","METHOD","decrypturi","decryptiv","decryptkeyformatversions","KEYFORMATVERSIONS","decryptkeyformat","KEYFORMAT","IV","resolvedUri","startAttributes","codecsAttributeValue","filtered","typeCodes","isCodecType","groupItem","codecProperty","codecValue","BYTERANGE","PlaylistContextType","PlaylistLevelType","mapContextToLevelType","getResponseUrl","PlaylistLoader","hls","loaders","registerListeners","startLoad","startPosition","stopLoad","destroyInternalLoaders","MANIFEST_LOADING","onManifestLoading","LEVEL_LOADING","onLevelLoading","AUDIO_TRACK_LOADING","onAudioTrackLoading","SUBTITLE_TRACK_LOADING","onSubtitleTrackLoading","unregisterListeners","createInternalLoader","PLoader","pLoader","Loader","getInternalLoader","resetInternalLoader","responseType","deliveryDirectives","_context$deliveryDire","loadPolicy","loaderContext","manifestLoadPolicy","playlistLoadPolicy","timeoutRetry","errorRetry","levelDetails","audioTracks","subtitleTracks","targetDuration","maxLowLatencyPlaylistRefresh","maxTimeToFirstByteMs","maxLoadTimeMs","legacyRetryCompatibility","loaderConfig","maxRetry","maxNumRetry","retryDelay","retryDelayMs","maxRetryDelay","maxRetryDelayMs","loaderCallbacks","networkDetails","handleTrackOrLevelPlaylist","handleMasterPlaylist","handleManifestParsingError","handleNetworkError","onTimeout","parsedResult","subtitles","captions","audioTrack","MANIFEST_LOADED","levelId","levelType","singleLevel","handlePlaylistLoaded","ERROR","NETWORK_ERROR","MANIFEST_PARSING_ERROR","fatal","UNKNOWN","MANIFEST_LOAD_TIMEOUT","MANIFEST_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","LEVEL_LOAD_ERROR","AUDIO_TRACK_LOAD_TIMEOUT","AUDIO_TRACK_LOAD_ERROR","SUBTITLE_TRACK_LOAD_TIMEOUT","SUBTITLE_LOAD_ERROR","levelIndex","_error","LEVEL_EMPTY_ERROR","LEVEL_PARSING_ERROR","getCacheAge","LEVEL_LOADED","AUDIO_TRACK_LOADED","SUBTITLE_TRACK_LOADED","sendAddTrackEvent","videoEl","Event","createEvent","initEvent","addCueToTrack","cue","cues","getCueById","addCue","textTrackCue","TextTrackCue","err2","clearCurrentCues","removeCue","removeCuesInRange","cuesFound","firstCueInRange","getFirstCueIndexAfterTime","getCuesInRange","filterSubtitleTracks","textTrackList","tracks","kind","MetadataSchema","getCueClass","VTTCue","createCueWithDataFields","Cue","MAX_CUE_ENDTIME","POSITIVE_INFINITY","MAX_VALUE","dateRangeDateToTimelineSeconds","ID3TrackController","id3Track","dateRangeCuesAppended","_registerListeners","_unregisterListeners","MEDIA_ATTACHED","onMediaAttached","MEDIA_DETACHING","onMediaDetaching","FRAG_PARSING_METADATA","onFragParsingMetadata","BUFFER_FLUSHING","onBufferFlushing","LEVEL_UPDATED","onLevelUpdated","createTrack","getID3Track","textTracks","textTrack","addTextTrack","enableEmsgMetadataCues","enableID3MetadataCues","updateId3CueEnds","_this$id3Track","startOffset","endOffset","enableDateRangeMetadataCues","ids","idsToRemove","dateTimeOffset","appendedDateRangeCues","durationKnown","nextDateRangeWithSameClass","candidateDateRange","otherDateRange","_cue","LatencyController","stallCount","_latency","timeupdateHandler","timeupdate","latency","maxLatency","liveMaxLatencyDuration","liveMaxLatencyDurationCount","targetLatency","liveSyncDuration","liveSyncDurationCount","lowLatencyMode","userConfig","maxLiveSyncOnStallIncrease","liveSyncPosition","liveEdge","estimateLiveEdge","syncPosition","edgeStalled","maxLevelUpdateAge","forwardBufferLength","bufferedRanges","_this$levelDetails","BUFFER_STALLED_ERROR","computeLatency","maxLiveSyncPlaybackRate","distanceFromTarget","playbackRate","HdcpLevels","VideoRangeValues","getSkipValue","HlsUrlParameters","msn","addDirectives","Level","_attrs","frameRate","fragmentError","loadError","realBitrate","supportedPromise","supportedResult","_avgBitrate","_audioGroups","_subtitleGroups","_urlId","addGroupId","maxBitrate","averageBitrate","videoRange","score","hasAudioGroup","hasGroup","hasSubtitleGroup","audioGroups","subtitleGroups","audioGroupIds","audioGroupId","textGroupIds","textGroupId","_this$audioGroups","_this$subtitleGroups","addFallback","updateFromToPTS","fragFrom","fragTo","fragToPTS","updateFragPTSDTS","fragStartPts","fragEndPts","fragIdx","adjustSliding","oldDetails","newDetails","delta","oldFragments","addSliding","getPartWith","partIndex","_level$details","findPart","reassignFragmentLevelIndexes","isTimeoutError","FRAG_LOAD_TIMEOUT","KEY_LOAD_TIMEOUT","getRetryConfig","isTimeout","getRetryDelay","retryConfig","retryCount","backoffFactor","backoff","getLoaderConfigWithoutReties","loderConfig","shouldRetry","loaderResponse","httpStatus","onLine","retryForHttpStatus","BinarySearch","comparisonFn","minIndex","maxIndex","currentIndex","currentElement","comparisonResult","findFragmentByPTS","fragPrevious","bufferEnd","maxFragLookUpTolerance","nextFragLookupTolerance","fragNext","bufferEdgeError","fragmentWithinToleranceTest","firstDuration","fragmentWithinFastStartSwitch","foundFragment","candidateLookupTolerance","pdtWithinToleranceTest","pdtBufferEnd","BasePlaylistController","logPrefix","timer","requestScheduled","canLoad","clearTimer","loadPlaylist","switchParams","playlistUri","foundIndex","currentGoal","hlsUrlParameters","shouldLoadPlaylist","playlist","shouldReloadPlaylist","playlistLoaded","previousDetails","elapsed","oldInit","PTSFrag","intersectionFn","newFrags","oldFrags","oldFrag","newFrag","mapFragmentIntersection","newFragIndex","newFragments","ccOffset","_currentInitSegment","oldDateRanges","deltaDateRanges","mergeDateRanges","oldParts","newParts","oldPart","newPart","mapPartIntersection","mergeDetails","endSn","lastPart","lastAdvanced","cdnAge","segments","getDeliveryDirectives","bufferInfo","mainForwardBufferInfo","reloadInterval","distanceToLiveEdgeMs","liveEdgeMaxTargetDurations","lastSegmentDuration","computeReloadInterval","estimatedTimeUntilUpdate","previousDeliveryDirectives","checkRetry","errorEvent","errorDetails","errorAction","_errorEvent$context","levelRetry","EWMA","halfLife","estimate","alpha_","estimate_","totalWeight_","sample","adjAlpha","getTotalWeight","getEstimate","zeroFactor","EwmaBandWidthEstimator","slow","fast","defaultEstimate","defaultTTFB","defaultEstimate_","minWeight_","minDelayMs_","slow_","fast_","defaultTTFB_","ttfb_","durationMs","numBytes","durationS","bandwidthInBps","sampleTTFB","ttfb","sqrt","canEstimate","getEstimateTTFB","SUPPORTED_INFO_DEFAULT","configurations","decodingInfoResults","powerEfficient","smooth","SUPPORTED_INFO_CACHE","requiresMediaCapabilitiesDecodingInfo","audioTracksByGroup","currentVideoRange","currentFrameRate","currentBw","audioPreference","audioCodecPreference","channelsPreference","maxChannels","audioChannels","audioTrackGroup","getMediaDecodingInfoPromise","mediaCapabilities","videoCodecs","audioCodecs","baseVideoConfiguration","framerate","transferFunction","contentType","_audioTracksByGroup$g","channelsNumber","configuration","decodingInfoKey","mediaConfig","spatialRendering","getMediaDecodingInfoKey","decodingInfo","logStartCodecCandidateIgnored","codeSet","findMatchingOption","option","matchesOption","isDefault","characteristicsA","characteristicsB","arrA","arrB","characteristicsMatch","audioMatchPredicate","searchDownAndUpList","searchIndex","TaskLoop","_boundTick","_tickTimer","_tickInterval","_tickCallCount","tick","onHandlerDestroying","onHandlerDestroyed","clearNextTick","hasInterval","hasNextTick","millis","doTick","tickImmediate","FragmentState","FragmentTracker","activePartLists","endListFragments","timeRanges","bufferPadding","hasGaps","BUFFER_APPENDED","onBufferAppended","FRAG_BUFFERED","onFragBuffered","FRAG_LOADED","onFragLoaded","getAppendedFrag","activeParts","activePart","appendedPTS","getBufferedFrag","fragmentEntity","detectEvictedFragments","elementaryStream","timeRange","playlistType","appendedPart","appendedPartSn","removeFragment","esData","isNotBuffered","isTimeBuffered","detectPartialFragments","fragKey","getFragmentKey","isFragHint","streamInfo","getBufferedTimes","removeParts","snToKeep","fragBuffered","force","getPartialFragment","timePadding","bestFragment","bestOverlap","isEndListAppended","lastFragmentEntity","hasFragment","hasParts","_this$activePartLists","removeFragmentsInRange","withGapOnly","unbufferedOnly","snToRemove","removeAllFragments","_fragmentEntity$range","_fragmentEntity$range2","_fragmentEntity$range3","noopBuffered","BufferHelper","isBuffered","getBuffered","maxHoleDuration","vbuffered","bufferedInfo","nextStart","buffered2","buf2len","buf2end","bufferStartNext","bufferLen","bufferStart","ChunkMetadata","transmuxing","executeStart","executeEnd","findFirstFragWithCC","_fragments$i","adjustFragmentStart","sliding","adjustSlidingStart","alignMediaPlaylistByPDT","refDetails","refFragments","refFrag","targetCC","refPDT","targetPDT","MIN_CHUNK_SIZE","FragmentLoader","partLoadTimeout","onProgress","LoadError","FRAG_LOAD_ERROR","FragmentILoader","fLoader","DefaultILoader","createGapLoadError","createLoaderContext","fragLoadPolicy","highWaterMark","resetLoader","resetIV","INTERNAL_ABORTED","loadPart","updateStatsFromPart","partLoadedData","fragStats","partStats","partTotal","estTotalParts","estLoadedParts","estRemainingBytes","fragLoading","partLoading","rangeStart","rangeEnd","_frag$decryptdata","byteRangeStart","byteRangeEnd","fragmentLen","MEDIA_ERROR","FRAG_GAP","AESCrypto","subtle","aesIV","decrypt","FastAESKey","expandKey","importKey","AESDecryptor","rcon","subMix","invSubMix","sBox","invSBox","ksRows","keySize","keySchedule","invKeySchedule","initTable","uint8ArrayToUint32Array_","arrayBuffer","newArray","subMix0","subMix1","subMix2","subMix3","invSubMix0","invSubMix1","invSubMix2","invSubMix3","xi","sx","x2","x4","x8","keyBuffer","sameKey","ksRow","invKsRow","sbox","networkToHostOrderSwap","word","inputArrayBuffer","nRounds","invSBOX","initVector","initVector0","initVector1","initVector2","initVector3","inputInt32","outputInt32","t0","t1","t2","t3","s0","s1","s2","s3","inputWords0","inputWords1","inputWords2","inputWords3","swapWord","Decrypter","removePKCS7Padding","logEnabled","softwareDecrypter","fastAesKey","remainderData","currentIV","currentResult","useSoftware","enableSoftwareAES","browserCrypto","crypto","webkitSubtle","isSync","outputBytes","paddingBytes","getUint8","removePadding","softwareDecrypt","decryptResult","webCryptoDecrypt","logOnce","currentChunk","getValidChunk","onWebCryptoError","aesKey","splitPoint","BaseStreamController","fragmentTracker","fragCurrent","transmuxer","_state","mediaBuffer","lastCurrentTime","nextLoadPosition","loadedmetadata","retryDate","fragmentLoader","levelLastLoaded","startFragRequested","decrypter","initPTS","onvseeking","onvended","onManifestLoaded","onTickEnd","resetTransmuxer","pauseBuffering","resumeBuffering","_streamEnded","getLevelDetails","_this$levelLastLoaded","onMediaSeeking","onMediaEnded","autoStartLoad","ended","maxBufferHole","resetLoadingState","tolerance","fragStartOffset","fragEndOffset","pastFragment","loadFragment","targetBufferTime","_loadFragForPlayback","_doFragLoad","fragContextChanged","_handleFragmentLoadProgress","_handleFragmentLoadComplete","resetFragmentLoading","clearTrackerIfNeeded","_this$mediaBuffer","getFwdBufferInfo","minForwardBufferLength","maxBufferLength","backtrackFragment","reduceMaxBufferLength","checkLiveUpdate","flushMainBuffer","flushScope","_loadInitSegment","decryptData","FRAG_DECRYPT_ERROR","decryptedData","FRAG_DECRYPTED","tstart","tdecrypt","completeInitSegmentLoad","fragBufferedComplete","_frag$startPTS","_frag$endPTS","_this$fragCurrent","_this$fragPrevious","NaN","TimeRanges","_this$levels","seekToStartPos","fragLoadedEndData","partsLoaded","complete","fragLoaded","chunkMeta","progressCallback","keyLoadingPromise","loadClear","keyLoadedData","KEY_LOADED","KEY_LOADING","getNextPart","_result","doFragPartsLoad","handleFragLoadError","FRAG_LOADING","loadedEndOfParts","dataOnProgress","progressive","fragLoadedData","fromPart","initialPartList","loadedPart","nextPart","handleFragLoadAborted","OTHER_ERROR","INTERNAL_EXCEPTION","_handleTransmuxerFlush","getCurrentContext","updateLevelTiming","getFragmentWithSN","bufferFragmentData","noBacktracking","_buffer","BUFFER_APPENDING","dropped","flushBufferGap","fragDuration","segmentFraction","bufferable","getLoadPosition","getFwdBufferInfoAtPos","bufferedFragAtPos","getMaxBufferLength","levelBitrate","maxBufLen","maxBufferSize","maxMaxBufferLength","threshold","reducedLength","fragOrPart","getNextFragment","fragLen","initialLiveManifestSize","getInitialLiveFragment","getFragmentAtPosition","mapToInitFragWhenRequired","isLoopLoading","trackerState","getNextFragmentLoopLoading","gapStart","nextFragment","nextbufferInfo","contiguous","independentAttrOmitted","PDTValue","seg","findFragmentByPDT","targetSN","findFragWithCC","liveStart","loadingParts","curSNIdx","fragState","nextFrag","synchronizeToLiveEdge","withinSlidingWindow","readyState","alignPlaylists","switchDetails","slidingStart","firstLevelLoad","aligned","lastFrag","shouldAlignOnDiscontinuities","referenceFrag","prevDetails","curDetails","prevFrags","curFrags","prevStartFrag","findDiscontinuousReferenceFrag","alignDiscontinuities","alignStream","alignedSlidingStart","waitForCdnTuneIn","setStartPosition","offsetInMultivariantPlaylist","onFragmentOrKeyLoadError","filterType","_this$fragCurrent2","gapTagEncountered","resetStartWhenNotLoaded","resetFragmentErrors","reduceLengthAndFlushBuffer","flushBuffer","afterBufferFlushed","bufferType","bufferedTimeRanges","resetWhenMissingContext","removeUnbufferedFrags","_this$transmuxer","parsedDuration","LEVEL_PTS_UPDATED","FRAG_PARSING_ERROR","FRAG_PARSED","recoverWorkerError","nextState","previousState","ChunkCache","chunks","dataLength","chunk","concatUint8Arrays","dummyTrack","inputTimeScale","pid","sequenceNumber","BaseAudioDemuxer","_audioTrack","_id3Track","frameIndex","cachedData","basePTS","lastPTS","resetInitSegment","trackDuration","resetTimeStamp","deaultTimestamp","resetContiguity","canParse","appendFrame","demux","lastDataIndex","initPTSFn","dts","partialData","videoTrack","demuxSampleAes","isHeaderPattern$1","getHeaderLength","getFullFrameLength","isHeader$1","probe$1","headerLength","frameLength","newOffset","initTrackConfig","samplerate","adtsObjectType","adtsExtensionSamplingIndex","adtsChannelConfig","manifestCodec","adtsSamplingRates","adtsSamplingIndex","channelCount","getAudioConfig","getFrameDuration","appendFrame$2","stamp","parseFrameHeader","_length","_sample","chromeVersion$1","BitratesMap","SamplingRateMap","SamplesCoefficients","BytesInSlot","appendFrame$1","parseHeader","samplesPerFrame","mpegVersion","mpegLayer","bitRateIndex","sampleRateIndex","paddingBit","channelMode","bitRate","sampleCoefficient","bytesInSlot","isHeaderPattern","isHeader","probe","emsgSchemePattern","getAudioBSID","bsid","numBits","bits","samplingRateCode","frameSizeCode","skipCount","lfeon","bsmod","BaseVideoParser","VideoSample","createVideoSample","units","getLastNalUnit","_VideoSample","lastUnit","pushAccessUnit","nbSamples","lastSample","ExpGolomb","bytesAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","valu","skipLZ","leadingZeroCount","skipUEG","skipEG","readUEG","clz","readEG","readBoolean","readUByte","readUShort","readUInt","skipScalingList","deltaScale","lastScale","nextScale","readSPS","numRefFramesInPicOrderCntCycle","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","profileIdc","chromaFormatIdc","picOrderCntType","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","pixelRatio","readSliceType","AvcVideoParser","parseAVCPES","pes","parseAVCNALu","spsfound","audFound","_VideoSample2","iskey","sliceType","_track$pixelRatio","_track$pixelRatio2","sps","codecarray","codecstring","pps","naluState","lastState","unitType","lastUnitStart","lastUnitType","SampleAesDecrypter","decryptBuffer","encryptedData","decryptAacSample","sampleIndex","curUnit","encryptedBuffer","decryptedBuffer","decryptAacSamples","getAvcEncryptedData","decodedData","encryptedDataLen","outputPos","inputPos","getAvcDecryptedUnit","uint8DecryptedData","decryptAvcSample","unitIndex","decryptAvcSamples","curUnits","PACKET_LENGTH","TSDemuxer","typeSupported","sampleAes","pmtParsed","_duration","_pmtId","_videoTrack","_txtTrack","aacOverFlow","videoParser","syncOffset","scanwindow","foundPat","packetStart","tsPackets","parsePID","segmentCodec","pesData","isSampleAes","videoPid","audioPid","id3Pid","audioData","unknownPID","pmtId","tsPacketErrors","stt","parsePES","parseAACPES","parseMPEGPES","parseAC3PES","parseID3PES","parsePAT","parsedPIDs","parsePMT","segmentVideoCodec","segmentAudioCodec","emitParsingError","demuxResult","extractRemainingSamples","frameMissingBytes","sampleLength","frameOverflowBytes","recoverable","frameDuration","id3Sample","tableEnd","esInfoLength","logEncryptedSamplesFoundInUnencryptedStream","mpeg","mp3","ac3","parsePos","remaining","descriptorLen","stream","pesLen","pesHdrLen","pesPts","pesDts","pesFlags","payloadStartOffset","dataLen","AAC","getSilentFrame","UINT32_MAX","MP4","avcC","btrt","dinf","dref","esds","ftyp","mdat","mdia","mfhd","minf","moov","dac3","mvex","mvhd","pasp","sdtp","stbl","stco","stsc","stsz","stts","vmhd","smhd","videoHdlr","audioHdlr","HDLR_TYPES","STTS","STSC","STCO","STSZ","VMHD","SMHD","STSD","majorBrand","avc1Brand","minorVersion","FTYP","box","DINF","upperWordDuration","lowerWordDuration","baseMediaDecodeTime","boxes","dependsOn","isDependedOn","hasRedundancy","avcc","hSpacing","vSpacing","configlen","audioStsd","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","arraylen","cts","isLeading","paddingValue","isNonSync","degradPrio","movie","toTimescaleFromBase","destScale","srcBase","toMsFromMpegTsClock","chromeVersion","safariWebkitVersion","MP4Remuxer","vendor","ISGenerated","_initPTS","_initDTS","nextAvcDts","nextAudioPts","videoSampleDuration","isAudioContiguous","isVideoContiguous","videoTrackConfig","defaultTimeStamp","resetNextTimestamp","getVideoStartPts","videoSamples","rolloverDetected","firstPts","minPTS","normalizePts","remux","accurateTimeOffset","audioTimeOffset","videoTimeOffset","hasAudio","hasVideo","enoughAudioSamples","enoughVideoSamples","_videoTrack$pixelRati","_config$pixelRatio","_videoTrack$pixelRati2","_config$pixelRatio2","generateIS","firstKeyFramePTS","firstKeyFrameIndex","findKeyframeIndex","forceKeyFrameOnDiscontinuity","audiovideoTimestampDelta","remuxAudio","audioTrackLength","remuxVideo","firstKeyFrame","flushTextTrackMetadataCueSamples","flushTextTrackUserdataCueSamples","audioSamples","initDTS","computePTSDTS","timeScale","inputSamples","outputSamples","firstDTS","lastDTS","mp4SampleDuration","maxPTS","NEGATIVE_INFINITY","sortSamples","initTime","deltadts","deltapts","inputDuration","averageSampleDuration","foundHole","foundOverlap","firstPTS","nbNalu","naluLen","dtsStep","nbUnits","sampleLen","mdatSize","MUX_ERROR","REMUX_ALLOC_ERROR","stretchedLastFrame","minDtsDelta","minPtsDelta","maxDtsDelta","maxPtsDelta","VideoSampleUnits","ptsDelta","mp4SampleLength","unitData","unitDataLen","lastFrameDuration","stretchShortVideoTrack","gapTolerance","deltaToFrameEnd","compositionTimeOffset","Mp4Sample","nextDts","nextPts","nb","getSamplesPerFrame","scaleFactor","inputSampleDuration","rawMPEG","alignedWithVideo","timeOffsetMpegTS","maxAudioFramesDrift","newStamp","fillFrame","_nbSamples","audioSample","unitLen","remuxEmptyAudio","init90kHz","silentFrame","isKeyframe","getParsedTrackCodec","muxConfig","txtTrack","captionTrack","initData","hasMoofData","segmentedData","segmentedRange","remainder","moofs","segmentValidRange","extractID3Track","emsgs","emsgInfo","schemeIdUri","presentationTimeDelta","presentationTime","eventDuration","leftPresentationTime","rightPresentationTime","parseEmsg","emitInitSegment","initTracks","lastEndTime","defaultInitPTS","generateInitSegment","encBoxes","isAudio","enc","tenc","tencKeyId","patchEncyptionData","_initData","_initData2","rawDuration","videoDuration","audioDuration","trafs","trackDefault","truns","sidxMinStart","sidxMaxEnd","sidxDuration","sidxs","subSegmentDuration","dur","getDuration","fmp4","getStartDTS","decodeTime","minDuration","isInvalidInitPts","offsetStartDTS","canGetFrameLength","canParse$1","Transmuxer","demuxer","remuxer","decryptionPromise","transmuxConfig","currentTransmuxState","configure","uintData","discontinuity","trackSwitch","initSegmentChange","defaultInitPts","initSegmentData","encryptionType","getEncryptionType","getDecrypter","emptyResult","resetMuxers","needsProbing","configureTransmuxer","resetInitialTimestamp","transmux","transmuxResults","demuxResultOrPromise","isPromise","flushRemux","remuxResult","transmuxSampleAes","transmuxUnencrypted","mux","_muxConfig$i$demux","Remuxer","Demuxer","TransmuxConfig","TransmuxState","eventemitter3","EE","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","events","listeners","ee","listenerCount","a1","a2","a3","a4","a5","removeAllListeners","prefixed","TransmuxerInterface","onTransmuxComplete","onFlush","useWorker","workerContext","onwmsg","enableWorker","forwardMessage","ev","m2tsTypeSupported","workerPath","__HLS_WORKER_BUNDLE__","scriptURL","loadWorker","blob","objectURL","injectWorker","onWorkerMessage","onerror","filename","lineno","cmd","resetWorker","revokeObjectURL","_frag$initSegment","_lastFrag$initSegment","snDiff","partDiff","transmuxResult","handleTransmuxComplete","transmuxerError","handleFlushResult","_this$workerContext","logType","subtitleOptionsIdentical","trackList1","trackList2","mediaAttributesIdentical","attrs1","attrs2","customAttributes","stableRenditionId","subtitleAttribute","subtitleTrackMatchesTextTrack","subtitleTrack","BufferableInstance","timeranges","getRange","DOMException","BufferOperationQueue","sourceBufferReference","buffers","queues","operation","pending","executeNext","insertAbort","appendBlocker","execute","onStart","onComplete","sb","updating","shiftAndExecuteNext","VIDEO_CODEC_PROFILE_REPLACE","removeSourceChildren","sourceChildren","specialCea608CharsCodes","getCharForByte","NR_ROWS","NR_COLS","rowsLowCh1","rowsHighCh1","rowsLowCh2","rowsHighCh2","backgroundColors","CaptionsLogger","verboseLevel","severity","numArrayToHexArray","numArray","hexArray","PenState","foreground","underline","italics","flash","setStyles","attribs","equals","newPenState","StyledUnicodeChar","uchar","penState","setChar","setPenState","newChar","Row","currPenState","cueStartTime","setCursor","absPos","moveCursor","relPos","newPos","backSpace","insertChar","clearFromPos","startPos","clearToEndOfRow","getTextString","setPenStyles","CaptionScreen","rows","currRow","nrRollUpRows","lastOutputScreen","setPen","setPAC","pacData","newRow","row","topRowIndex","prevLineTime","indent","prevPos","setBkgData","bkgData","setRollUpRows","nrRows","rollUp","getDisplayText","topRow","asOneRow","displayText","rowNr","rowText","getTextAndFormat","Cea608Channel","channelNumber","outputFilter","chNr","verbose","displayedMemory","nonDisplayedMemory","currRollUpRow","writeScreen","getHandler","setHandler","newHandler","setMode","newMode","insertChars","screen","outputDataUpdate","ccRCL","ccBS","ccAOF","ccAON","ccDER","ccRU","ccFON","ccRDC","ccTR","ccRTD","ccEDM","ccCR","ccENM","ccEOC","tmp","ccTO","nrCols","ccMIDROW","secondByte","colorIndex","newCue","dispatchCue","cueSplitAtTime","Cea608Parser","out1","out2","currentChannel","cmdHistory","addData","byteList","cmdFound","charsFound","hasCmdRepeated","setLastCmd","parseCmd","parseMidrow","parsePAC","parseBackgroundAttributes","parseChars","currChNr","interpretPAC","pacIndex","channelNr","charCodes","charCode1","oneCode","OutputFilter","timelineController","trackName","cueRanges","addCues","createCaptionsTrack","AllowedDirections","AllowedAlignments","isAllowedValue","allowed","lcValue","findAlignSetting","cobj","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","displayState","getCueAsHTML","WebVTT","convertCueToDOMTree","StringDecoder","parseTimeStamp","computeSeconds","Settings","dflt","defaultKey","parseOptions","keyValueDelim","groupDelim","kv","center","align","parseCue","regionList","oInput","consumeTimeStamp","ts","skipWhitespace","vals","line","lineAlign","snapToLines","consumeCueSettings","fixLineBreaks","VTTParser","oncue","onparsingerror","onflush","collectNextLine","alreadyCollectedLine","hasSubstring","LINEBREAKS","inputString","searchString","_hash","generateCueId","IMSC1_CODEC","HMSF_REGEX","TIME_UNIT_REGEX","textAlignToLineAlign","parseIMSC1","callBack","errorCallBack","ttmlList","syncTime","srcScale","toTimescaleFromScale","ttml","tt","defaultRateInfo","subFrameRate","frameRateMultiplier","tickRate","rateInfo","styleElements","collectionToDictionary","getElementCollection","regionElements","cueElements","cueElement","cueText","getTextContent","hasAttribute","parseTtmlTime","timestampParsingError","ttsNs","regionStyle","regionStyleName","getAttributeNS","getTtmlStyles","parseTTML","fromElement","parentName","childName","elementsWithId","dict","_node$childNodes","hasAttributeNS","timeAttributeValue","parseHoursMinutesSecondsFrames","parseTimeUnits","captionsOrSubtitlesFromCharacteristics","canReuseVttTextTrack","inUseTrack","manifestTrack","CapLevelController","autoLevelCapping","restrictedLevels","clientRect","streamController","setStreamController","unregisterListener","stopCapping","FPS_DROP_LEVEL_CAPPING","onFpsDropLevelCapping","MEDIA_ATTACHING","onMediaAttaching","MANIFEST_PARSED","onManifestParsed","LEVELS_UPDATED","onLevelsUpdated","BUFFER_CODECS","onBufferCodecs","droppedLevel","isLevelAllowed","HTMLVideoElement","detectPlayerSize","capLevelToPlayerSize","startCapping","mediaHeight","mediaWidth","maxLevel","getMaxLevel","nextLevelSwitch","capLevelIndex","validLevels","getMaxLevelByMediaSize","getDimensions","boundsRect","getBoundingClientRect","contentScaleFactor","ignoreDevicePixelRatio","devicePixelRatio","restrictedLevel","maxLevelIndex","squareSize","curLevel","nextLevel","LOGGER_PREFIX","EMEController","keyFormatPromise","keySystemAccessPromises","_requestLicenseFailureCount","mediaKeySessions","keyIdToKeySessionPromise","setMediaKeysQueue","CDMCleanupPromise","onMediaEncrypted","initDataType","logMessage","keySystems","getKeyFormatPromise","keySystemFormat","keySystemDomain","psshResults","parseMultiPssh","psshInfos","psshInfo","keyIdHex","keySessionContextPromise","keyContext","oldKeyIdHex","generateRequestWithPreferredKeySession","handleError","getKeySystemSelectionPromise","mediaKeys","_keySystemToKeySystem","throwIfDestroyed","attemptSetMediaKeys","keySessionContext","createMediaKeySessionContext","onWaitingForKey","onMediaDetached","requestMediaKeySystemAccessFunc","licenseXhrSetup","licenseResponseCallback","drmSystemOptions","MEDIA_DETACHED","getLicenseServerUrl","keySystemConfiguration","licenseUrl","getLicenseServerUrlOrThrow","getServerCertificateUrl","serverCertificateUrl","attemptKeySystemAccess","uniqueCodec","getMediaKeysPromise","EMEKeyError","KEY_SYSTEM_ERROR","KEY_SYSTEM_NO_ACCESS","supportedConfigurations","errMessage","protocol","mediaKeySystemConfigs","initDataTypes","persistentState","distinctiveIdentifier","sessionTypes","sessionType","audioCapabilities","robustness","audioRobustness","encryptionScheme","audioEncryptionScheme","videoCapabilities","videoRobustness","videoEncryptionScheme","createMediaKeySystemConfigurations","getSupportedMediaKeySystemConfigurations","keySystemAccess","_keySystemAccessPromises","mediaKeySystemAccess","certificateRequest","fetchServerCertificate","createMediaKeys","certificate","setMediaKeysServerCertificate","mediaKeysSession","createSession","mediaKeySessionContext","keyStatus","renewKeySession","getKeyIdString","removeSession","updateKeySession","_mediaKeySessionConte","keySession","sessionId","selectKeySystemFormat","keySystemsInConfig","loadKey","keyInfo","keyDetails","getKeySystemForKeyPromise","KEY_SYSTEM_NO_KEYS","KEY_SYSTEM_NO_CONFIGURED_LICENSE","setMediaKeysPromise","setMediaKeys","_this$config$drmSyste","_this$config$drmSyste2","generateRequestFilter","generateRequest","mappedInitData","_this$hls","licenseStatus","_onmessage","messageType","renewLicense","onkeystatuseschange","_onkeystatuseschange","onKeyStatusChange","keyUsablePromise","KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED","KEY_SYSTEM_STATUS_INTERNAL_ERROR","_context$mediaKeysSes","KEY_SYSTEM_NO_SESSION","keyStatuses","certLoader","certLoadPolicy","contex","KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED","cert","setServerCertificate","KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED","keyMessage","requestLicense","KEY_SYSTEM_SESSION_UPDATE_FAILED","unpackPlayReadyKeyMessage","xhr","licenseChallenge","xmlString","setRequestHeader","keyMessageXml","_header$querySelector","_header$querySelector2","challengeElement","challengeText","setupLicenseXHR","keysListItem","licenseXhrSetupResult","keyLoadPolicy","XMLHttpRequest","onreadystatechange","KEY_SYSTEM_LICENSE_REQUEST_FAILED","statusText","attemptsLeft","licenseXhr","emeEnabled","mediaKeysList","keySessionCount","formats","CmObjectType","CmStreamingFormat","CmcdHeaderField","CmcdHeaderMap","OBJECT","REQUEST","SESSION","STATUS","SfItem","SfToken","DICT","BARE_ITEM","BOOLEAN","BYTES","DECIMAL","INTEGER","STRING_REGEX","TOKEN","KEY","throwError","serializeInteger","isInvalidInt","roundToEven","decimalShift","EPSILON","flooredValue","serializeDecimal","roundedValue","STRING","serializeToken","serializeBareItem","serializeString","serializeBoolean","serializeDate","isView","btoa","serializeByteSequence","serializeKey","serializeParams","serializeItem","isTokenField","toRounded","toHundred","CmcdFormatters","br","bl","dl","mtp","nor","toPath","fromPath","urlToRelativePath","rtp","tb","encodeCmcd","cmcd","optionalWhiteSpace","serializeDict","encodeSfDict","formatters","processCmcd","REGEX","cloneRenditionGroups","groupCloneMap","uriReplacement","cloneId","clonedTracks","clonedTrack","performUriReplacement","stableId","perOptionKey","HOST","PARAMS","perOptionUris","perVariantUri","AGE_HEADER_LINE_REGEX","XhrLoader","xhrSetup","requestTimeout","retryTimeout","callbacks","abortInternal","onprogress","_this$callbacks","loadInternal","openAndSendXhr","readystatechange","loadprogress","loadtimeout","useResponseText","responseText","_response","responseURL","_this$context","lengthComputable","getAllResponseHeaders","getResponseHeader","FetchLoader","fetchSetup","request","getRequest","AbortController","initParams","signal","credentials","Headers","getRequestParameters","isArrayBuffer","LENGTH","FetchError","contentRange","byteRangeLength","byteRangeHeader","getByteRangeLength","contentLength","getContentLength","loadProgressively","responseData","chunkCache","reader","getReader","pump","read","Request","WHITESPACE_CHAR","Cues","captionScreen","indenting","_track$cues","cueA","cueB","hlsDefaultConfig","defaultAudioCodec","capLevelOnFPSDrop","backBufferLength","frontBufferFlushThreshold","highBufferWatchdogPeriod","nudgeOffset","nudgeMaxRetry","liveDurationInfinity","liveBackBufferLength","startLevel","startFragPrefetch","fpsDroppedMonitoringPeriod","fpsDroppedMonitoringThreshold","appendErrorMaxRetry","abrController","_hls","lastLevelLoadSec","lastLoadedFragLevel","firstSelection","_nextAutoLevel","nextAutoLevelKey","codecTiers","partCurrent","bitrateTestDelay","bwEstimator","_abandonRulesCheck","autoLevelEnabled","timeLoading","minAutoLevel","paused","ttfbEstimate","bufferStarvationDelay","loadedFirstByte","getBwEstimate","expectedLen","timeStreaming","loadRate","fragLoadedDelay","bwe","nextLoadLevel","fragLevelNextLoadedDelay","levelNextBitrate","getTimeToLoadFrag","nextAutoLevel","nextLoadLevelBitrate","abrBandWidthUpFactor","resetEstimator","FRAG_LOAD_EMERGENCY_ABORTED","initEstimator","abrEwmaDefaultEstimate","abrEwmaSlowVoD","abrEwmaFastVoD","onFragLoading","LEVEL_SWITCHING","onLevelSwitching","onLevelLoaded","MAX_AUTO_LEVEL_UPDATED","onMaxAutoLevelUpdated","_data$part","ignoreFragment","BUFFER_ADD_CODEC_ERROR","BUFFER_APPEND_ERROR","timeToFirstByteSec","bandwidth","fragSizeBits","isSwitch","timeLoadingMs","abrEwmaSlowLive","abrEwmaFastLive","abrMaxWithRealBitrate","loadedBytes","loadedDuration","fragBufferedData","processingMs","firstAutoLevel","maxAutoLevel","maxStartDelay","maxStarvationDelay","abrAutoLevel","findBestLevel","clamped","forcedAutoLevel","useEstimate","loadedFirstFrag","getAutoLevelKey","nextABRAutoLevel","getNextABRAutoLevel","getStarvationDelay","currentFragDuration","avgbw","bwFactor","abrBandWidthFactor","bwUpFactor","_bestLevel","maxLoadingDelay","bestLevel","minLevel","autoLevel","loadLevel","maxFetchDuration","selectionBaseLevel","allAudioTracks","currentCodecSet","videoPreference","trackGroup","hasDefault","hasAutoSelect","channelsKey","hasDefaultAudio","hasAutoSelectAudio","getAudioTracksByGroup","tiers","tier","minBitrate","minFramerate","maxScore","videoRanges","SDR","lesserWidthOrHeight","audioGroup","getCodecTiers","startTier","codecSets","preferStereo","hasStereo","hasCurrentVideoRange","selectedScore","preferHDR","allowedVideoRanges","mediaQueryList","badQuery","isHdrSupported","getVideoSelectionOptions","matchingVideoRanges","maxFramerate","candidateTier","getStartCodecTier","ttfbEstimateSec","levelsSkipped","_levelInfo$supportedR","levelInfo","upSwitch","useMediaCapabilities","removeLevel","avgDuration","adjustedbw","fetchDuration","bufferController","_objectUrl","operationQueue","bufferCodecEventsExpected","_bufferCodecEventsTotal","mediaSource","lastMpegAudioChunk","appendSource","appendErrors","pendingTracks","sourceBuffer","_onEndStreaming","_onStartStreaming","_onMediaSourceOpen","_onMediaEmptied","updateMediaElementDuration","checkPendingTracks","_onMediaSourceClose","_onMediaSourceEnded","mediaSrc","_initSourceBuffer","hasSourceTypes","getSourceBufferTypes","BUFFER_RESET","onBufferReset","onBufferAppending","BUFFER_EOS","onBufferEos","onFragParsed","FRAG_CHANGED","onFragChanged","codecEvents","altAudio","_ms$constructor","objectUrl","removeAttribute","MMS","disableRemotePlayback","addSource","endOfStream","resetBuffer","_this$mediaSource","removeBufferListeners","sourceBuffers","removeSourceBuffer","sourceBufferCount","trackNames","changeType","_trackCodec","currentCodecFull","currentCodec","trackCodec","nextCodec","mimeType","appendChangeType","eventData","chunkStats","bufferAppendingStart","fragBuffering","partBuffering","checkTimestampOffset","fragStart","timestampOffset","appendExecutor","sourceBufferName","QUOTA_EXCEEDED_ERR","BUFFER_FULL_ERROR","appendErrorCount","flushOperation","removeExecutor","BUFFER_FLUSHED","buffersAppendedTo","blockBuffers","trimBuffers","ending","maxBackBufferLength","targetBackBufferPosition","flushBackBuffer","frontBufferLength","maxFrontBufferLength","targetFrontBufferPosition","flushFrontBuffer","BACK_BUFFER_REACHED","LIVE_BACK_BUFFER_REACHED","numBufferedRanges","levelDuration","mediaDuration","msDuration","updateSeekableRange","setLiveSeekableRange","pendingTracksCount","createSourceBuffers","BUFFER_CREATED","BUFFER_INCOMPATIBLE_CODECS_ERROR","_track$levelCodec","addSourceBuffer","sbName","addBufferListener","_onSBUpdateStart","_onSBUpdateEnd","_onSBUpdateError","removedRanges","_this$media","_this$media$querySele","_this$mediaSource2","_this$mediaSource3","BUFFER_APPENDING_ERROR","removeStart","removeEnd","appendBuffer","onUnblocked","blockingOperations","capLevelController","errorController","playlistError","penalizedRenditions","onErrorOut","getVariantLevelIndex","_data$frag","_data$level","KEY_LOAD_ERROR","getFragRetryOrSwitchAction","_data$context","_data$context$levelDe","getPlaylistRetryOrSwitchAction","getLevelSwitchAction","restrictedHdcpLevel","hdcpLevel","keySystemError","LEVEL_SWITCH_ERROR","BUFFER_SEEK_OVER_HOLE","BUFFER_NUDGE_ON_STALL","variantLevelIndex","fragmentErrors","_data$frag2","_data$context2","fragErrorType","findAudioCodecAlternate","findVideoCodecAlternate","playlistErrorType","playlistErrorGroupId","_level$audioGroups","_level$subtitleGroups","levelCandidate","fragCandidate","_data$errorAction","sendAlternateToPenaltyBox","recoverMediaError","switchLevel","maxHdcpLevel","fpsController","isVideoPlaybackQualityAvailable","lastTime","lastDroppedFrames","lastDecodedFrames","getVideoPlaybackQuality","checkFPSInterval","checkFPS","decodedFrames","droppedFrames","currentPeriod","currentDropped","currentDecoded","droppedFPS","FPS_DROP","totalDroppedFrames","currentLevel","videoPlaybackQuality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","abrEwmaDefaultEstimateMax","minAutoBitrate","testBandwidth","steeringManifestLoadPolicy","manifestLoadingTimeOut","manifestLoadingMaxRetry","manifestLoadingRetryDelay","manifestLoadingMaxRetryTimeout","levelLoadingTimeOut","levelLoadingMaxRetry","levelLoadingRetryDelay","levelLoadingMaxRetryTimeout","fragLoadingTimeOut","fragLoadingMaxRetry","fragLoadingRetryDelay","fragLoadingMaxRetryTimeout","cueHandler","enableWebVTT","enableIMSC1","enableCEA708Captions","captionsTextTrack1Label","captionsTextTrack1LanguageCode","captionsTextTrack2Label","captionsTextTrack2LanguageCode","captionsTextTrack3Label","captionsTextTrack3LanguageCode","captionsTextTrack4Label","captionsTextTrack4LanguageCode","renderTextTracksNatively","subtitleStreamController","currentTrackId","tracksBuffered","mainDetails","SUBTITLE_TRACKS_UPDATED","onSubtitleTracksUpdated","SUBTITLE_TRACK_SWITCH","onSubtitleTrackSwitch","onSubtitleTrackLoaded","SUBTITLE_FRAG_PROCESSED","onSubtitleFragProcessed","fragEnd","endOffsetSubtitles","mediaPlaylist","currentTrack","mediaBufferTimeRanges","_track$details","mainSlidingStartFragment","mainBufferInfo","trackDetails","foundFrag","lookupTolerance","mainBufferLength","maxConfigBuffer","subtitleTrackController","groupIds","tracksInGroup","selectDefaultTrack","queuedDefaultTrack","asyncPollTrackChange","pollTrackChange","useTextTrackPolling","subtitlePollingInterval","_subtitleDisplay","onTextTracksChanged","findTrackForTextTrack","setSubtitleTrack","subtitleDisplay","toggleTrackModes","trackInActiveGroup","currentGroups","subtitlePreference","groupIndex","allIndex","findTrackId","subtitleTracksUpdated","selectDefault","allSubtitleTracks","setSubtitleOption","subtitleOption","nextTrack","lastTrack","trackLoaded","unparsedVttFrags","captionsTracks","nonNativeCaptionsTracks","cea608Parser1","cea608Parser2","lastCc","prevCC","vttCCs","presentationOffset","new","captionsProperties","textTrack1","languageCode","textTrack2","textTrack3","textTrack4","FRAG_PARSING_USERDATA","onFragParsingUserdata","onFragDecrypted","INIT_PTS_FOUND","onInitPtsFound","SUBTITLE_TRACKS_CLEARED","onSubtitleTracksCleared","initCea608Parsers","channel1","channel2","channel3","channel4","merged","cueRange","overlap","x1","y1","y2","CUES_PARSED","getExistingTrack","createNativeTrack","createNonNativeTrack","existingTrack","createTextTrack","trackProperties","closedCaptions","NON_NATIVE_TEXT_TRACKS_FOUND","_cleanTracks","hasIMSC1","inUseTracks","textTrackKind","unusedTextTracks","tracksList","captionsTrack","instreamIdMatch","closedCaptionsForLevel","_data$part$index","decrypted","trackPlaylistMedia","_parseIMSC1","_parseVTTs","_appendCues","maxAvCC","vttByteArray","parser","vttLines","toMpegTsClockFromTimescale","parsingError","cueTime","timestampMapMPEGTS","timestampMapLOCAL","inHeader","currCC","cueOffset","webVttMpegTsMapOffset","_prevCC","calculateOffset","secs","mins","cueString2millis","parseWebVTT","missingInitPTS","_fallbackToIMSC1","fragLevel","ccBytes","ccdatas","extractCea608Data","actualCCBytes","tmpByte","ccbyte1","ccbyte2","ccType","audioStreamController","videoBuffer","videoTrackCC","waitingVideoCC","bufferedTrack","switchingTrack","waitingData","flushing","bufferFlushed","cachedTrackLoadedData","AUDIO_TRACKS_UPDATED","onAudioTracksUpdated","AUDIO_TRACK_SWITCHING","onAudioTrackSwitching","onAudioTrackLoaded","onBufferCreated","onBufferFlushed","doTickIdle","_levels$trackId","seeking","clearWaitingFragment","loadPosition","atGap","atBufferSyncLimit","mainFrag","flushAudioIfNeeded","_handleTransmuxComplete","AUDIO_TRACK_SWITCHED","_id3$samples","completeAudioSwitch","mapFragment","_bufferInitSegment","FRAG_PARSING_INIT_SEGMENT","emittedID3","emittedText","variantAudioCodecs","_track$details2","audioTrackController","audioTracksUpdated","selectedTrackId","setAudioTrack","_this$groupIds","setAudioOption","audioOption","switchIndex","renditions","variantMap","currentVideoCodec","matchingVideo","findClosestLevelWithAudioGroup","withoutCodecAndChannelsMatch","emeController","cmcdController","sid","cid","useHeaders","includeKeys","initialized","starved","audioBuffer","onWaiting","onPlaying","applyPlaylistData","ot","MANIFEST","su","applyFragmentData","getObjectType","VIDEO","MUXED","getTopBandwidth","getBufferLength","createPlaylistLoader","createFragmentLoader","randomUUID","dt","contentId","_data$tracks$audio","_data$tracks$video","createData","sf","HLS","pr","bandwidthEstimate","isVideo","bs","headerMap","customHeaderMap","shards","_headerMap$find","toCmcdHeaders","toCmcdQuery","appendCmcdQuery","TIMED_TEXT","Ctor","contentSteeringController","pathwayPriority","timeToLoad","reloadTimer","started","penalizedPathways","ttl","scheduleRefresh","loadSteeringManifest","levelToRemove","errorPathway","getPathwayForGroupId","pathways","updatePathwayPriority","filterParsedLevels","pathwayLevels","getLevelsForPathway","selectedIndex","selectedLevel","levelAfterChange","defaultPathway","clonePathways","pathwayClones","audioGroupCloneMap","subtitleGroupCloneMap","pathwayClone","baseId","clonedVariants","baseLevel","clonedAudioGroupId","clonedSubtitleGroupId","clonedLevel","throughput","steeringData","VERSION","TTL","reloadUri","loadedSteeringData","steeringManifest","STEERING_MANIFEST_LOADED","retryAfter","ttlMs","deepCpy","chromeOrFirefox","LevelController","_levels","_firstLevel","_maxAutoLevel","_startLevel","currentLevelIndex","manualLevelIndex","steering","onParsedComplete","resetLevels","redundantSet","generatePathwaySet","resolutionFound","videoCodecFound","audioCodecFound","levelParsed","_audioCodec","_videoCodec","avcdata","convertAVC1ToAVCOTI","FRAMERATE","HDCP","PATHWAY","RESOLUTION","VIDEO_RANGE","pathwayCount","filterAndSortMediaOptions","filteredLevels","MANIFEST_INCOMPATIBLE_CODECS_ERROR","assignTrackIdsByGroup","unsortedLevels","valueA","valueB","firstLevelInPlaylist","_this$hls$userConfig","firstLevelBitrate","startingBwEstimate","audioOnly","edata","forceStartLoad","lastLevelIndex","lastLevel","lastPathwayId","levelSwitchingData","manualLevel","configStartLevel","_data$deliveryDirecti2","_data$deliveryDirecti","_this$currentLevel","checkMaxAutoUpdated","KeyLoader","keyUriToKeyInfo","_loader$context","createKeyLoadError","loadingFrag","_keyInfo","_keyInfo2","_keyInfo$mediaKeySess","keyLoadPromise","loadKeyHTTP","loadKeyEME","getSourceBuffer","SourceBuffer","WebKitSourceBuffer","isMSESupported","GapController","nudgeRetry","stallReported","stalled","moved","poll","activeFrag","seeked","beginSeek","_stalledDuration","hasEnoughBuffer","noBufferGap","startJump","maxStartGapJump","partialOrGap","_trySkipBufferHole","tnow","stalledDuration","_reportStall","bufferedWithHoles","_tryFixBufferStall","stalledDurationMs","_tryNudgeBuffer","bufferStarved","waiting","gapLength","startGap","startFrag","startProvisioned","moreToLoad","provisioned","targetTime","StreamController","audioCodecSwap","gapController","_forceStartLoad","fragPlaying","onvplaying","onvseeked","fragLastKbps","couldBacktrack","audioCodecSwitch","onFragLoadEmergencyAborted","onAudioTrackSwitched","checkBuffer","checkFragmentChanged","getMainFwdBufferInfo","lastDetails","_this$backtrackFragme","backtrackFrag","_loadBitrateTestFrag","followingBufferedFrag","immediateLevelSwitch","abortCurrentFrag","fetchdelay","fragPlayingCurrent","bufferedFrag","nextBufferedFrag","maxStart","startPts","onMediaPlaying","onMediaSeeked","aac","heaac","_sourceBuffer$prototy","changeTypeSupported","_curLevel$details","newLevelId","_getAudioCodec","fromAltAudio","mediaTrack","alternate","swapAudioCodec","isFirstFragment","isFirstInDiscontinuity","backtrack","ua","audioMetadata","fragCurrentLevel","LEVEL_SWITCHED","currentFrag","currentProgramDateTime","epocMs","Hls","codecsForVideoContainer","codecForAudioContainer","DefaultConfig","coreComponents","networkControllers","_emitter","_autoLevelCapping","_maxHdcpLevel","latencyController","levelController","_media","triggeringException","debugConfig","consolePrintFn","exportLoggerFunctions","enableLogs","defaultsCopy","deprecatedSettings","policyName","policyNotSet","deprecatedSetting","mergeConfig","currentLoader","ReadableStream","fetchSupported","enableStreamingMode","ConfigAbrController","ConfigBufferController","ConfigCapLevelController","ConfigErrorController","ConfigFpsController","playListLoader","id3TrackController","ConfigContentSteeringController","createController","AudioStreamControllerClass","SubtitleStreamControllerClass","ControllerClass","controllerInstance","eventObject","DESTROYING","detachMedia","attachMedia","loadSource","loadedSource","loadingSource","shouldStartCapping","newCapLevelToPlayerSize","isHdcpLevel","playingDate","_this$audioTrackContr","_this$subtitleTrackCo","audioTrackId","subtitleTrackId","SessionFlusher","flushTimeout","_pendingAggregates","_isEnabled","_intervalId","_sessionAttrs","sessionAggregates","getSessionAggregates","aggregates","sendSession","incrementSessionStatusCount","requestSession","getRequestSession","_incrementSessionStatusCount","setRequestSession","sessionStartedTrunc","setSeconds","aggregationCounts","errored","crashed","getTriggerDOMNode","canUseRef","setRef","mergedRef","_isNativeFunction","selectMergedConfig","createSelector","selectRemoteFeatureFlags","selectCurrentOrgId","opconfig","remoteFlags","remoteFlagsJS","toJS","orgSpecificConfig","mergeWith","fallback","mergedConfig","selectEnabledAcuModelIds","enabledAcuModelIds","reTrimStart","getRoot","_ele$getRootNode","getRootNode","getShadowRoot","ShadowRoot","inShadow","withTranslation","WrappedComponent","I18nextWithTranslation","forwardedRef","passDownProps","tReady","withRef","cookies","Cookies","getAltaDomain","getEnvironment","accessTokenName","cookieSettings","dataView","getBreadcrumbLogLevelFromHttpStatusCode","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","_objectWithoutProperties","I18nContext","ReportNamespaces","usedNamespaces","getUsedNamespaces","relativeTimeWithPlural","forms","oop","TextHighlightRules","JsonHighlightRules","$rules","defaultToken","inherits","Range","MatchingBraceOutdent","checkOutdent","autoOutdent","doc","getLine","column","openBracePos","findMatchingBracket","$getIndent","BaseFoldMode","FoldMode","commentRegex","foldingStartMarker","foldingStopMarker","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getFoldWidget","foldStyle","fw","getFoldWidgetRange","forceMultiline","getCommentRegionBlock","openingBracketBlock","getCommentFoldRange","isMultiLine","getSectionRange","closingBracketBlock","startIndent","startRow","startColumn","endRow","maxRow","getLength","subRange","TextMode","Mode","HighlightRules","CStyleFoldMode","WorkerClient","$outdent","$behaviour","$defaultBehaviour","foldingRules","lineCommentStart","blockComment","getNextLineIndent","tab","createWorker","attachToDocument","getDocument","setAnnotations","clearAnnotations","$id","DEFAULT_EVENT_TARGET","_wrapTimeFunction","originalCallback","mechanism","handled","_wrapRAF","_wrapXHR","originalSend","wrapOptions","originalFunction","_wrapEventTarget","globalObject","eventName","handleEvent","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","__sentry_wrapped__","_options","eventTarget","setupOnce","eventTargetOption","ErrorBoundary","OpTooltip","Tooltip","baseGetTag","_BellOutlined","BellOutlined","Subscribable","onSubscribe","onUnsubscribe","hasListeners","isServer","globalThis","isValidTimeout","timeUntilStale","updatedAt","staleTime","resolveStaleTime","resolveEnabled","matchQuery","filters","exact","fetchStatus","stale","queryHash","hashQueryKeyByOptions","partialMatchKey","isStale","matchMutation","mutationKey","hashKey","queryKeyHashFn","isPlainArray","aItems","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","replaceData","prevData","structuralSharing","keepPreviousData","previousData","addToEnd","newItems","addToStart","ensureQueryFn","fetchOptions","initialPromise","focusManager","setEventListener","focused","setFocused","isFocused","visibilityState","onlineManager","onOnline","onlineListener","offlineListener","setOnline","online","isOnline","pendingThenable","thenable","_reject","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","revert","silent","isCancelledError","createRetryer","continueFn","isRetryCancelled","isResolved","canContinue","canRun","canStart","pause","continueResolve","onPause","onContinue","promiseOrValue","onFail","cancelOptions","continue","cancelRetry","continueRetry","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","batch","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","setScheduler","createNotifyManager","Removable","clearGcTimeout","scheduleGc","gcTime","optionalRemove","updateGcTime","newGcTime","Query","defaultOptions","setOptions","getQueryCache","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","getDefaultState","setState","setStateOptions","isDisabled","getObserversCount","getCurrentResult","isStaleByTime","shouldFetchOnWindowFocus","refetch","cancelRefetch","shouldFetchOnReconnect","notify","invalidate","abortController","addSignalProperty","fetchFn","queryFnContext","persister","onFetch","onSettled","fetchState","onQueryUpdate","defaultQueryOptions","getQueryDefaults","queryInMap","defaultedFilters","findAll","queries","Mutation","mutationId","mutationCache","failureReason","isPaused","variables","submittedAt","mutationFn","restored","onMutate","runNext","onMutationUpdate","MutationCache","defaultMutationOptions","scopeFor","scopedMutations","mutationsWithSameScope","firstPendingMutation","foundMutation","resumePausedMutations","pausedMutations","infiniteQueryBehavior","pages","fetchMore","oldPages","oldPageParams","pageParams","currentPage","cancelled","fetchPage","pageParam","maxPages","addTo","oldData","getPreviousPageParam","getNextPageParam","remainingPages","initialPageParam","hasNextPage","hasPreviousPage","mount","unmount","isMutating","getQueryData","ensureQueryData","defaultedOptions","fetchQuery","revalidateIfStale","prefetchQuery","getQueriesData","setQueryData","functionalUpdate","setQueriesData","getQueryState","removeQueries","resetQueries","refetchQueries","cancelQueries","defaultedCancelOptions","promises","invalidateQueries","refetchType","throwOnError","fetchInfiniteQuery","prefetchInfiniteQuery","ensureInfiniteQueryData","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","queryDefault","setMutationDefaults","getMutationDefaults","_defaulted","refetchOnReconnect","suspense","mutations","experimental_prefetchInRender","bindMethods","shouldFetchOnMount","updateResult","shouldFetchOn","refetchOnWindowFocus","notifyOptions","prevOptions","prevQuery","shouldFetchOptionally","nextRefetchInterval","getOptimisticResult","createResult","optimisticResult","trackResult","onPropTracked","trackedResult","trackProp","getCurrentQuery","fetchOptimistic","refetchInterval","nextInterval","refetchIntervalInBackground","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","selectError","placeholderData","nextResult","isSuccess","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","finalizeThenableIfPossible","recreateThenable","prevThenable","defaultNotifyOptions","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","shouldNotifyListeners","retryOnMount","shouldLoadOnMount","refetchOnMount","difference","array1","array2","QueriesObserver","setQueries","prevObservers","newObserverMatches","defaultedQueryOptions","newObservers","newResult","hasIndexChange","getQueries","getObservers","combine","observerResult","accessedProp","prevObserversMap","replaceAt","previousResult","newTracked","fetchNextPage","fetchPreviousPage","parentResult","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","isIdle","QueryClientContext","jsx","IsRestoringContext","useIsRestoring","QueryErrorResetBoundaryContext","isReset","clearReset","createValue","useQueryErrorResetBoundary","shouldThrowError","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","ensureSuspenseTimers","originalStaleTime","willFetch","isRestoring","shouldSuspend","defaultedQueries","getCombinedResult","shouldSubscribe","subscribed","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","Observer","_experimental_beforeQuery","isNewCacheEntry","_experimental_afterQuery","finally","useMutation","mutateOptions","useInfiniteQuery","baseFlatten","isStrict","baseIsMap","nodeIsMap","bound01","isOnePointZero","isPercent","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","DEFAULT_DURATION","Wrapper","renderNotifications","Holder","staticPrefixCls","staticGetContainer","onAllRemoved","mergedCloseIcon","api","holder","keyIndex","useInternalMessage","messageConfig","holderRef","fakeResult","noticePrefixCls","restConfig","jointContent","mergedDuration","mergedOnClose","numbersPast","numbersFuture","verbalNumber","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","afterVisibleChange","animation","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","overlay","arrowContent","_props$showArrow","showArrow","triggerRef","extraProps","afterPopupVisibleChange","popupTransitionName","popupAnimation","defaultPopupVisible","autoDestroy","arrow","useGetActiveScopes","orgData","isOrgDataLoading","isAccessTokenDataLoading","activeScopes","getActiveScopes","parentOrgId","parentOrg","ThemeCache","cacheCallTimes","derivativeOption","_cache2","_cache3","updateCallTimes","_this$internalGet","internalGet","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","callTimes","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","sameDerivativeOption","allocUnsafe","processRelativeTime","OpFormButton","formItemClassName","elementProps","isDataLoading","isReadOnly","useOpFormContext","QuestionCircleOutlined","documentAll","getLineHeight","getFontSizes","fontSizes","baseSize","intSize","_actions","_arrayLikeToArray","arr2","_action$payload","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","_arrayWithHoles","setUsers","SET_USERS","setGroups","SET_GROUPS","setOrg","setNetsuitePackagePlans","SET_NETSUITE_PACKAGE_PLANS","setEntries","SET_ENTRIES","setZones","SET_ZONES","setZone","SET_ZONE","setEntryStates","SET_ENTRY_STATES","setTriggerMethods","SET_TRIGGER_METHODS","setAcus","SET_ACUS","setAllegionInviteState","SET_ALLEGION_INVITE_STATE","setScopeResources","SET_SCOPE_RESOURCES","setRoles","SET_ROLES","setIdentityProviderGroups","SET_IDENTITY_PROVIDER_GROUPS","setIdentityProviderGroupRelations","SET_IDENTITY_PROVIDER_GROUP_RELATIONS","setCredentialTypes","SET_CREDENTIAL_TYPES","setCardFormats","SET_CARD_FORMATS","setSharedUsers","SET_SHARED_USERS","setAcuPorts","SET_ACU_PORTS","setRequestTypes","SET_REQUEST_TYPES","setProtonStatuses","SET_PROTON_STATUSES","setNamespaces","SET_NAMESPACES","setOrgContainerReducer","requestPageDataGeneric","injects","REQUEST_PAGE_DATA_GENERIC","requestHeliumDataGeneric","REQUEST_HELIUM_DATA_GENERIC","requestAndSetGeneralWrapper","heliumApi","queryStringParams","setterActionType","additionalEndpointRequisites","REQUEST_AND_SET_GENERAL_WRAPPER","saveTableState","subFilter","SAVE_TABLE_STATE","slideOutSuccessful","SLIDE_OUT_SUCCESSFUL","genModalMaskStyle","animationDuration","colorBgMask","WebkitOverflowScrolling","genModalStyle","screenSMMax","titleColor","wordWrap","backgroundClip","modalHeaderHeight","modalCloseBtnSize","modalCloseIconColor","modalCloseIconHoverColor","headerMarginBottom","headerBorderBottom","bodyPadding","footerBg","footerMarginTop","footerPadding","footerBorderTop","footerBorderRadius","genRTLStyle","headerPaddingVertical","headerFontSize","fontSizeHeading5","headerLineHeight","lineHeightHeading5","modalFooterBorderColorSplit","modalFooterBorderStyle","modalFooterBorderWidth","colorIcon","colorIconHover","wireframe","paddingMD","paddingContentHorizontalLG","marginLG","_objectWithoutPropertiesLoose","sliderRef","handleColor","gradientList","toHexString","UNDEFINED","InternalItem","renderItem","responsive","responsiveDisabled","registerSize","itemKey","_props$component","mergedHidden","internalRegisterSize","overflowStyle","childNode","overflowProps","itemNode","onResize","offsetWidth","useEffectState","notifyEffectUpdate","stateValue","setStateValue","OverflowContext","InternalRawItem","_restProps","contextClassName","restContext","RawItem","defaultRenderRest","omittedItems","Overflow","updateFuncRef","_props$data","_props$itemWidth","renderRest","fullySSR","MessageChannel","port1","port2","channelUpdate","unstable_batchedUpdates","_useEffectState","_useEffectState2","containerWidth","setContainerWidth","mergedContainerWidth","_useEffectState3","_useEffectState4","itemWidths","setItemWidths","_useEffectState5","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState7","_useEffectState8","restWidth","setRestWidth","_useEffectState9","_useEffectState10","suffixWidth","setSuffixWidth","_useState","_useState2","suffixFixedStart","setSuffixFixedStart","_useState3","_useState4","displayCount","setDisplayCount","mergedDisplayCount","_useState5","_useState6","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedData","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","overflowNode","ForwardOverflow","isStyleNameSupport","styleNameList","isStyleValueSupport","isStyleSupport","styleValue","genCommonMapToken","motionUnit","motionBase","useSafeState","setValue","ignoreDestroy","hm","entryUnbind","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","sharedKey","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","Properties","getNativeImplementation","_classnames","_colors","_Context","_IconBase","_twoTonePrimaryColor","_utils","_array_like_to_array","blue","primary","_obj","spin","rotate","excluded","sourceKeys","_object_without_properties_loose","sourceSymbolKeys","_object_without_properties","_React_useContext","_React_useContext_prefixCls","iconTabIndex","svgStyle","msTransform","_normalizeTwoToneColors","_array_with_holes","_s","_arr","_n","_iterable_to_array_limit","_unsupported_iterable_to_array","_non_iterable_rest","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","wrappedFuncs","wrappedLevels","enable","disable","isEnabled","OpLink","changeRoute","useMergedPropByScreen","oriProp","setProp","curVal","calcMergedAlignOrJustify","justify","gutter","others","screens","setScreens","curScreens","setCurScreens","mergedAlign","mergedJustify","gutterRef","responsiveObserver","currentGutter","gutters","getGutter","classes","rowStyle","horizontalGutter","marginLeft","marginRight","gutterH","gutterV","rowContext","RowContext","parseAndValidatePhoneNumber","pn","parsePhoneNumber","defaultCountry","onlyUsNumbers","parsedNumber","isValidPhoneNumber","isPhoneNumber","Joi","helper","trimmedPhoneNumbers","ParseError","errorMessage","phoneNumber","isEmail","e164PhoneNumberRegExp","isE164PhoneNumber","urlRegExp","isUrl","isUrlWithProtocol","createRoot","hydrateRoot","TypeIcon","PureContent","getDefaultToken","_token$component","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","tslib_1","__importStar","Decorated","resultCache","RESULT_VALUE","memoResult","dep","flattenTokenCache","flattenToken","token2key","salt","randomSelectorKey","checkContent","supportSelector","handleElement","supportCheck","_getComputedStyle$con","_ele$parentNode","_ele","support","canWhere","supportWhere","canLogic","supportLogicProps","isClientSide","toStyleStr","customizeAttrs","attrStr","isCallable","isPrototypeOf","USE_SYMBOL_AS_UID","$Object","$Symbol","REQUEST_LIST_LOCKDOWN_PLANS","TRIGGER_LOCKDOWN_PLAN","REVERT_LOCKDOWN_PLAN","DSN_REGEX","dsnToString","withPassword","pass","projectId","publicKey","dsnFromComponents","makeDsn","lastPath","projectMatch","dsnFromString","isValidProtocol","validateDsn","exceptionFromError","stackParser","parseStackFrames","extractMessage","stacktrace","eventFromError","skipLines","reactMinifiedRegexp","getSkipFirstStackStringLines","framesToPop","getPopFirstTopFrames","eventFromException","attachStacktrace","eventFromUnknownInput","syntheticException","event_id","eventFromMessage","eventFromString","isUnhandledRejection","domException","normalizeDepth","errorFromProp","getErrorPropertyFromObject","__serialized__","getNonErrorObjectExceptionValue","eventFromPlainObject","synthetic","__sentry_template_string__","__sentry_template_values__","logentry","captureType","getObjectClassName","baseToString","fullClone","reactRender","unmountComponentAtNode","toggleWarning","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_x","_modernUnmount","_callee","_context","abrupt","_container$MARK","stop","legacyUnmount","_x2","_unmount","_callee2","_context2","initMotionCommon","animationFillMode","initMotionCommonLeave","initMotion","motionCls","inKeyframes","outKeyframes","sameLevelPrefix","animationPlayState","uid","HASH_UNDEFINED","INFINITY","funcTag","genTag","symbolTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","arrayProto","funcProto","coreJsData","maskSrcKey","funcToString","objectToString","reIsNative","getNative","symbolToString","getMapData","isHostObject","toSource","stringToPath","isSymbol","quote","isKey","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","SPACE","PAGE_UP","PAGE_DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","B","H","I","K","N","Q","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","invalidDate","toIntegerOrInfinity","structure","lastPathname","lastMatch","matchPath","isExact","constant","baseSetToString","validateJSON","lineColumnMatch","parsedJson","getParsedByString","annotation","OpCodeEditor","showAnnotation","annotations","contains","AceEditor","readOnly","editorProps","$blockScrolling","highlightActiveLine","getArrowToken","sizePopupArrow","borderRadiusXS","borderRadiusOuter","unitWidth","ay","bx","cx","cy","dx","dy","ey","fx","fy","shadowWidth","polygonOffset","arrowShadowWidth","arrowPath","arrowPolygon","genRoundedArrow","bgColor","clipPath","_multi_value_","_skip_check_","colorBlockCls","canUseDom","ReactCurrentOwner","__self","__source","q","defaultProps","_owner","jsxs","ButtonTypeMap","iconPosition","ghost","customClassNames","customStyle","autoInsertSpace","mergedType","mergedColor","colorVariantPair","mergedColorText","mergedInsertSpace","groupSize","loadingOrDelay","getLoadingConfig","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","internalRef","createRef","buttonRef","needInserted","Children","delayTimer","handleClick","sizeFullName","ctxSize","sizeCls","large","small","middle","iconType","linkButtonRestProps","fullStyle","iconClasses","iconStyle","existIcon","buttonNode","ANT_MARK","_ANT_MARK__","getMemoizedContextValue","pairs","LARGE_ARRAY_SIZE","filenameMetadataMap","parsedStacks","getMetadataForUrl","_sentryModuleMetadata","ensureMetadataStacksAreParsed","addMetadataToStackFrames","module_metadata","stripMetadataFromStackFrames","LOADING","COLUMN_WIDTHS","CSV_DATA","CSV_DATA_LOADING","CSV_DATA_PERCENT_LOADED","SET_COLUMN_WIDTHS","SET_CSV_DATA","SET_CSV_DATA_LOADING","SET_CSV_DATA_PERCENT_LOADED","requireObjectCoercible","wat","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isParameterizedString","isPrimitive","isEvent","isElement","isRegExp","isThenable","isSyntheticEvent","isVueViewModel","__isVue","_isVue","classofRaw","useMultipleSelect","prevSelectedIndex","setPrevSelectedIndex","currentSelectedIndex","configPrevSelectedIndex","startIndex","endIndex","rangeKeys","shouldSelected","rangeKey","changedKeys","getRenderPropValue","propValue","voidFunc","WatermarkContext","usePanelRef","panelSelector","watermark","panelEleRef","innerContentEle","baseFor","genPresetColor","genCss","lightColor","lightBorderColor","darkColor","DEFAULT_RETRY_AFTER","isRateLimited","limits","dataCategory","disabledUntil","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","categories","headerDelay","category","headerDate","parseRetryAfterHeader","I18nextProvider","_parseCookieHeaders","cookieHeader","_extractFetchHeaders","cookieString","_parseCookieString","_getResponseSizeFromHeaders","cookie","_shouldCaptureResponse","failedRequestStatusCodes","_isInGivenStatusRanges","failedRequestTargets","givenRequestTarget","_createEvent","requestHeaders","requestCookies","status_code","responseHeaders","responseCookies","body_size","_shouldSendDefaultPii","sendDefaultPii","requestInfo","requestInit","bodyUsed","_getRequest","_fetchResponseHandler","_wrapFetch","sentryXhrData","request_headers","_getXHRResponseHeaders","_xhrResponseHandler","RefContext","getMotionName","getScroll","sentinelStyle","entityStyle","ariaId","bodyProps","modalClassNames","modalStyles","panelRef","panel","sentinelStartRef","sentinelEndRef","_sentinelStartRef$cur","preventScroll","changeActive","contentStyle","footerNode","headerNode","closableObj","ariaProps","closeBtnIsDisabled","closerNode","MemoChildren","Content","destroyOnClose","mousePosition","dialogRef","setTransformOrigin","onPrepare","elementOffset","onAppearPrepare","onEnterPrepare","motionRef","maskProps","_props$visible","_props$keyboard","_props$focusTriggerAf","wrapStyle","wrapProps","afterOpenChange","_props$closable","_props$mask","maskAnimation","_props$maskClosable","lastOutSideActiveElementRef","wrapperRef","contentRef","animatedVisible","setAnimatedVisible","useId","onInternalClose","contentClickRef","contentTimeoutRef","onWrapperClick","wrapper","shiftKey","_contentRef$current","DialogWrap","_props$destroyOnClose","_afterClose","refContext","autoLock","runOnce","createFrame","colno","in_app","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","defaultStackLineParsers","noFnParts","col","subMatch","extractSafariExtensionDetails","isSafariExtension","isSafariWebExtension","groupKeysMap","EMPTY_KEYS","filterKeys","dataKeys","filteredKeys","flattenKeys","ListItem","renderedText","renderedEl","checked","onRemove","showRemove","liProps","labelNode","DeleteOutlined","OmitProps","TransferListBody","filteredRenderItems","globalDisabled","pagination","onScroll","onItemSelect","onItemRemove","setCurrent","mergedPagination","showSizeChanger","showLessItems","parsePagination","pageSize","setPageSize","maxPageCount","memoizedItems","paginationNode","onShowSizeChange","handleClear","defaultRender","getEnabledItemKeys","dataSource","titleText","checkedKeys","notFoundContent","showSelectAll","selectAllLabel","selectionsIcon","renderList","onItemSelectAll","handleFilter","filterOption","filterValue","setFilterValue","listBodyRef","internalHandleFilter","internalHandleClear","notFoundContentEle","filteredItems","filterItems","filterRenderItems","renderedItem","renderResult","isRenderResultPlain","matchFilter","checkStatus","checkedKeysMap","listBody","customize","listProps","check","renderListBody","bodyNode","checkBox","indeterminate","footerDom","listCls","listFooter","checkAllCheckbox","pageKeys","pageItems","availablePageItemKeys","checkedKeySet","newCheckedKeysSet","dropdown","DownOutlined","selectedCount","getSelectAllLabel","moveToLeft","moveToRight","leftArrowText","rightArrowText","leftActive","rightActive","oneWay","genTransferCustomizeStyle","listHeight","tableCls","inputCls","genTransferStatusColor","genTransferStatusStyle","genTransferListStyle","transferHeaderVerticalPadding","itemPaddingBlock","colorTextSecondary","listWidth","listWidthLG","controlItemBgActiveHover","genTransferStyle","genTransferRTLStyle","transferToken","targetKeys","selectAllLabels","operationStyle","rowKey","onSelectChange","renderEmpty","transfer","mergedDataSource","leftDataSource","rightDataSource","record","leftData","rightData","targetKeysMap","sourceSelectedKeys","targetSelectedKeys","setSourceSelectedKeys","setTargetSelectedKeys","leftKeys","rightKeys","useSelection","leftMultipleSelect","updateLeftPrevSelectedIndex","rightMultipleSelect","updateRightPrevSelectedIndex","setStateKeys","nextKeys","handleSelectChange","moveTo","moveKeys","dataSourceDisabledKeysMap","groupDisabledKeysMap","newMoveKeys","newMoveKeysMap","newTargetKeys","oppositeDirection","checkAll","prevKeys","mergedCheckedKeys","selectedKeysMap","selectedKey","isLeftDirection","holderSet","handleMultipleSelect","handleSingleSelect","holderArr","handleListStyle","listLocale","transferLocale","leftTitle","rightTitle","getTitles","mergedSelectionsIcon","Operation","urlReg","includeBoundaries","v4","v6seg","v6List","v6","v46Exact","v4exact","v6exact","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","listItemHeight","customListItemHeight","dropdownMatchSelectWidth","popupMatchSelectWidth","propDirection","customizeVariant","dropdownStyle","tagRender","getContextPopupContainer","contextDirection","virtual","contextPopupMatchSelectWidth","isMultiple","showSuffixIcon","mergedPopupMatchSelectWidth","mergedNotFound","selectProps","mergedPopupClassName","mergedClassName","memoPlacement","menuItemSelectedIcon","Option","OptGroup","ZoomState","useHasFeatures","featureCodes","heliumResponse","featureCodesArray","hasFeatures","enabledFeatures","feature","_WarningOutlined","WarningOutlined","_LoadingOutlined","createEnvelope","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","createSpanEnvelopeItem","createAttachmentEnvelopeItem","attachment","__SENTRY__","encodePolyfill","content_type","attachment_type","attachmentType","getSdkMetadataForEnvelopeHeader","metadataOrEvent","createEventEnvelopeHeaders","dynamicSamplingContext","useInsertionEffect","effectCleanups","cleanupFlag","OpRadio","radioProps","Radio","appendClass","parseValue","newClass","Arrow","arrowPos","_arrowPos$x","_arrowPos$y","arrowRef","alignStyle","autoArrow","popupPoints","targetPoints","popupTB","popupLR","targetTB","targetLR","$propertyIsEnumerable","NASHORN_BUG","descriptor","defaultState","setRect","top_1","intercomNotificationsPermission","localStorage","initialUserPreferences","videoTimestamp","preferredMeasurementUnits","playAlarmNotificationSound","alarmNotificationSoundVolume","initialStateObject","alertStack","orgDropDownVisible","lockdownDropDownVisible","currentIdentity","currentOrg","currentParentOrgId","disabledRoutes","errorCta","forceRefresh","currentOrgUserImageUrl","currentIdentityInfo","loginComplete","confirmationProps","intercomNotificationsAreEnabled","prefetchedVideocallAuthForDevices","currentUserPreferences","SET_IDENTITY_INFO","SET_ORG_USER_PROFILE_IMAGE_URL","imageUrl","SET_UPDATE_REQUIRED","SET_ERROR_MESSAGE","cta","SET_DISABLED_ROUTES","routes","SET_MAINTENANCE_MODE","SET_ALERT","alert","alertType","alertIcon","alertButtons","alertMessage","alertHeader","alertId","alertTime","CLEAR_ALERT","clearAll","LOGIN_SUCCESS","identityId","isLicenseBased","SET_CURRENT_ORG","APP_ERROR","SET_ORG_DROPDOWN_VISIBILITY","SET_LOCKDOWN_DROPDOWN_VISIBILITY","SET_CONFIRMATION_PROPS","SET_PUSH_NOTIFICATION_IS_ENABLED","SET_CURRENT_USER_PREFERENCES","SET_PREFETCHED_VIDEOCALL_AUTH","opVideoDeviceId","currentPrefetchedDevices","updatedList","device","timeUpdated","RESET_PREFETCHED_VIDEOCALL_AUTH","renderer","msh","createRule","prelude","rawCss","sheet","sh","insertRule","cssRules","selectorRule","styleMap","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","getGroupRadioStyle","getRadioBasicStyle","wrapperMarginInlineEnd","radioSize","motionEaseInOutCirc","dotColorDisabled","radioColor","radioBgColor","radioInnerPrefixCls","radioDotDisabledSize","radioSizeCalc","insetBlockStart","marginBlockStart","borderBlockStart","dotSize","getRadioButtonStyle","buttonColor","buttonPaddingInline","buttonBg","buttonCheckedBg","buttonSolidCheckedColor","buttonCheckedBgDisabled","buttonCheckedColorDisabled","buttonSolidCheckedBg","buttonSolidCheckedHoverBg","buttonSolidCheckedActiveBg","borderBlockStartWidth","borderInlineStartWidth","borderInlineEndWidth","radioFocusShadow","radioButtonFocusShadow","radioToken","controlItemBgActiveDisabled","colorWhite","dotPadding","InternalRadio","groupContext","radioOptionTypeContext","radio","radioPrefixCls","isButtonType","optionType","wrapperClassString","RadioGroup","buttonStyle","customizedValue","onRadioChange","lastValue","childrenToRender","memoizedValue","RadioButton","__ANT_RADIO","hasRequiredCookie","cookieExports","dec","keyStartIdx","keyEndIdx","__hasOwnProperty","valStartIdx","valEndIdx","tryDecode","serialize","cookieNameRegExp","cookieValueRegExp","maxAge","domainValueRegExp","pathValueRegExp","expires","__toString","httpOnly","secure","partitioned","sameSite","requireCookie","readCookie","cleanValue","cleanupCookieValue","doNotParse","defaultSetOptions","changeListeners","HAS_DOCUMENT_COOKIE","previousCookies","_checkChanges","domCookies","parseCookies","testingValue","TEST_HAS_DOCUMENT_COOKIE","hasDocumentCookie","_emitChange","_startPolling","pollingInterval","_stopPolling","doNotUpdate","addChangeListener","cookieStore","removeChangeListener","fontSizePairs","pair","lineHeights","fontSizeMD","lineHeightSM","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","withPureRenderTheme","defaultPrefixCls","getDropdownCls","postProps","popupHeight","setPopupHeight","popupWidth","setPopupWidth","setOpen","resizeObserver","interval","dropdownCls","mergedProps","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","nodeRef","wave","showWave","targetNode","showEffect","_QuestionCircleOutlined","updateSession","ipAddress","ip_address","did","username","abnormal_mechanism","ignoreDuration","environment","pageX","pageY","modalContext","handleCancel","wrapClassNameExtended","dialogFooter","mergedClosable","closeIconRender","contextZIndex","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","validateMessages","onFormChange","onFormFinish","formsRef","changedFields","newForms","validDevelopmentUrlRegEx","noteOnce","preMessage","resetWarned","warningOnce","warned","preWarningFns","frameKeys","BUNDLER_PLUGIN_APP_KEY_PREFIX","getBundleKeysForAllFramesWithFilenames","behaviour","third_party_code","_oldOnUnhandledRejectionHandler","addGlobalUnhandledRejectionInstrumentationHandler","instrumentUnhandledRejection","onunhandledrejection","__SENTRY_LOADER__","__SENTRY_INSTRUMENTED__","setModuleUrl","addHandler","maybeInstrument","instrumentFn","triggerHandlers","typeHandlers","useTheme","parentTheme","themeConfig","parentThemeConfig","inherit","themeKey","cssVarKey","mergedCssVar","prevTheme","nextTheme","captureException","captureMessage","captureContext","captureEvent","setUser","lastEventId","addEventProcessor","definePropertyModule","createPropertyDescriptor","mergedValue","formatToken","derivativeToken","restToken","overrideTokens","mergedToken","fastDuration","colorFillContentHover","colorFillQuaternary","colorBorderBg","colorBorderSecondary","colorTextLabel","colorHighlight","controlInteractiveSize","sizeXXS","sizeXS","sizeSM","sizeMD","sizeLG","sizeXL","paddingContentVerticalLG","sizeMS","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginMD","marginXL","marginXXL","sizeXXL","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXL","screenXLMin","screenXLMax","screenXXL","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","overRest","setToString","relativeTimeWithSingular","_CheckOutlined","keysIn","pickClosable","useClosableConfig","closableCollection","closableConfig","assignWithoutUndefined","objList","EmptyFallbackCloseCollection","useClosable","propCloseCollection","contextCloseCollection","fallbackCloseCollection","propCloseConfig","contextCloseConfig","mergedFallbackCloseCollection","mergedClosableConfig","ipHeaderNames","getClientIPAddress","headerName","rawValue","parseForwardedHeader","newMessages","cloned","propList","ariaPrefix","dataPrefix","ariaOnly","maxSize","_maxSize","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","getter","safe","isBracket","getTitleStyles","headingLevel","titleMarginBottom","getTitleStyle","getLinkStyles","fontFamilyCode","kbd","gold","textDecorationSkipInk","strong","ol","pre","blockquote","getEditableStyles","inputShift","insetBlockEnd","textarea","MozTransition","getCopyableStyles","genTypographyStyle","titleMarginTop","wordBreak","WebkitBoxOrient","ariaLabel","maxLength","autoSize","onSave","onEnd","enterIcon","EnterOutlined","inComposition","lastKeyCode","resizableTextArea","textArea","setSelectionRange","confirmChange","textAreaClassName","copyConfig","setCopied","copyLoading","setCopyLoading","copyIdRef","cleanCopyId","copyOptions","__awaiter","_arguments","generator","fulfilled","useMergedConfig","propConfig","templateConfig","Typography","setContentRef","typographyDirection","typography","componentClassName","defaultNode","needDom","isValidText","iconOnly","tooltips","btnLoading","tooltipNodes","iconNodes","copiedText","copyText","systemStr","copyTitle","CopyOutlined","MeasureText","spanRef","isExceed","getHeight","sliceNodes","nodeList","currLen","currentNodeList","nextLen","restLen","STATUS_MEASURE_NONE","STATUS_MEASURE_NO_NEED_ELLIPSIS","lineClipStyle","EllipsisMeasure","enableMeasure","miscDeps","onEllipsis","nodeLen","totalLen","getNodesLen","fullContent","ellipsisCutIndex","setEllipsisCutIndex","cutMidRef","measureWhiteSpaceRef","needEllipsisRef","descRowsEllipsisRef","symbolRowEllipsisRef","canEllipsis","setCanEllipsis","needEllipsis","setNeedEllipsis","ellipsisHeight","setEllipsisHeight","parentWhiteSpace","setParentWhiteSpace","nextWhiteSpace","isOverflow","baseRowsEllipsisHeight","descRowsEllipsisHeight","symbolRowEllipsisHeight","maxRowsHeight","cutMidIndex","targetMidIndex","finalContent","measureStyle","enableEllipsis","isEllipsis","ellipsis","editable","copyable","textLocale","useLocale","typographyRef","editIconRef","textProps","enableEdit","editConfig","editing","setEditing","triggerType","triggerEdit","prevEditing","onEditClick","enableCopy","onCopyClick","isLineClampSupport","setIsLineClampSupport","isTextOverflowSupport","setIsTextOverflowSupport","isJsEllipsis","setIsJsEllipsis","isNativeEllipsis","setIsNativeEllipsis","isNativeVisible","setIsNativeVisible","ellipsisConfig","expandable","isExpanded","setExpanded","defaultExpanded","mergedEnableEllipsis","needMeasureEllipsis","cssEllipsis","setCssEllipsis","canUseCssEllipsis","isMergedEllipsis","cssTextOverflow","cssLineClamp","ellipsisWidth","setEllipsisWidth","onJsEllipsis","jsEllipsis","textEle","currentEllipsis","childDiv","childRect","isEleEllipsis","IntersectionObserver","offsetParent","editConfigText","topAriaLabel","renderExpand","onExpand","onExpandClick","renderEdit","editTitle","EditOutlined","renderOperations","resizeRef","del","italic","currentContent","needed","wrapperDecorations","renderEllipsis","mergedEllipsis","TITLE_ELE_LIST","Link","Title","Paragraph","SETUP_CLIENTS","setExtra","plainBody","crashId","ReportingObserver","aCallable","tagTestId","labelValidator","ChevronDownSvg","validationError","Tag","optionFilterProp","_interopRequireWildcard","_propTypes","_reactRedux","_reactRouter","_lodash","_PureComponent","subClass","superClass","Constructor","protoProps","Derived","Super","construct","_isNativeReflectConstruct","NewTarget","stateCompareFunction","inTimeTravelling","isTimeTravelDebuggingAllowed","noTimeTravelDebugging","_getLocation","pathnameInStore","searchInStore","hashInStore","stateInStore","_history$location","pathnameInHistory","searchInHistory","hashInHistory","stateInHistory","handleLocationChange","unlisten","noInitialPop","omitRouter","Router","isRequired","basename","oneOfType","ConnectedRouterWithContext","Context","Consumer","connect","customToken","_customToken$newToken","oldTokenKey","newTokenKey","DEFAULT_PLACEMENT","pauseOnHover","showProgress","getPlacementStyle","useInternalNotification","notificationConfig","wrapAPI","btn","realCloseIcon","OpCheckbox","checkboxProps","checkboxGroupProps","Logger","isLoggingEnabled","injections","VALID_OPTIONS","HeliumDictionary","VALID_INJECTION_OBJECT_KEYS","effectiveKey","effectiveName","effectiveInitialValue","objKey","heliumData","createOrgContainerReducer","includeForm","formReducer","memoizedReducers","useDeepCompareEffect","defaultReturn","retVal","selectOrgContainerReducers","broadcastChannelMap","broadcastId","channelRef","BroadcastChannel","refCount","channelToRemove","debugInfo","DEFAULT_SUBSCRIPTION_DATA","hookEventType","clientData","dashboardWidget","RETRY_STARTING_TIMEOUT","onConnectionHandler","subscriptionData","clientRequestId","ignoreBroadcastDisconnect","broadcastChannelRef","useBroadcastChannel","ws","keepAliveTimerRef","connectionStatusForRetries","retries","retryTimerRef","_onConnectionHandler","pointer","statusCodeDetail","connectionId","subscriptionsStatus","numAccepted","wsInfo","WebSocket","socket","currentAttempt","attemptConnection","OPEN","typeError","handleOnline","onlineCBRef","onlineCB","broadcastChannel","handleMessage","command","sender","isConnected","selfQueryAll","isInSideBar","setIsInSideBar","thisContentContainer","drawer","POLLING_DELAY_TIMER","POLLING_TIMEOUT","useVideoClipPolling","currentOrgId","cameraId","shouldRun","clips","pollingDelay","setPollingDelay","pollingStart","setPollingStart","videoClip","setVideoClip","errorState","setErrorState","intervalCheck","requisites","defaultQueryParams","useInterval","VALID_OPTIONS_FOR_SLIDEOUT_PROPS","routeConfig","slideOutProps","activeSlideOuts","selectSlideOuts","requiredExtraData","openSlideout","configWithAdditionalData","addSlideOut","closeSlideout","deleteSlideOut","activeSlideoutRoutes","urlMatch1","pathNameMatch","urlMatch","PAGE","userOptions","selectUserOptionsForDropdown","siteOptions","selectSitesForMultiSelect","zoneOptions","selectZonesForMultiSelect","entryOptions","selectOptionsForEntriesMultiSelect","groupOptions","selectGroupsForMultiSelect","credentialTypesOptions","selectOptionsForCredentialTypesMultiSelect","isShowingSitePartitioningItems","useShowSitePartitioningItems","userId","credentialTypeName","actionInfo","SET_SITES","roleOptions","selectRolesForMultiSelect","acuOptions","selectAllAcuOptions","readerOptions","selectReaderOptions","filterOptions","assignedUserId","assignedRoleId","acuId","readerId","SET_READERS","INTERCOM_USER_EVENTS","INTERCOM_NON_USER_EVENTS","OXYGEN_CLIENT_ID","displayIntercomAlert","shouldAck","preFilter","acuName","opvideoIntercomName","userIds","eventTimestamp","eventMetadata","clientReceivedTs","clearAlert","WebAudio","SoundEffects","INTERCOM_NOTIFICATION","Layers","INTERCOM_NOTIFICATIONS","onMessage","oxyConnect","useOxygenSocket","displayUiNotification","originUserId","subtitleText","buttons","useValidCloudKeys","selectCloudKeys","useHasPermissionForApi","operationId","selectActiveScopes","verifyApiScope","useDebounce","debouncedValue","setDebouncedValue","selectOrgHasFeature","featureCode","selectOrgFeatures","useFeatureGate","setLoaded","useIsInMobileWebView","useMount","useMicrophonePermission","permissionStatus","setPermissionStatus","checkMicrophonePermission","permissions","getUserMedia","onchange","selectAccessTokenScopes","selectAccessToken","selectIdentityId","selectProcessedScopes","selectMfaCredentials","selectOrgsForIdentityUsersWithPortalScope","substate","includesAnyPortalScope","isParentOrg","pp","pf","selectCurrentOrgParentId","parentId","selectHasMasterModeAccess","validScopePrefixes","selectHasValidScopeWriteAccess","selectActiveItem","activeItem","allowedScopesRaw","getItemConfig","getRawMenuItems","substituteOrgIdInScope","allowedScopes","writeScopes","verifyScope","selectCurrentUser","currentOrgUser","selectCurrentUserId","currentUser","selectCurrentUserOpal","selectUserForOrg","orgUser","selectUserIdForOrg","userForOrg","SPAN_STATUS_UNSET","SPAN_STATUS_OK","SPAN_STATUS_ERROR","Popup","SemanticPopup","inverted","basic","nav","connection","mozConnection","webkitConnection","zIndexBase","opacityImage","sizeUnit","sizeStep","preserve","getComputedToken","originToken","overrideToken","getDerivativeToken","mergedDerivativeToken","componentTheme","componentTokens","mergedComponentToken","rootDesignToken","mergedTheme","baseIsMatch","getMatchData","matchesStrictComparable","separatorIndex","orgHasUserSitePartitioningFeature","areFeaturesLoading","_export","iconStyles","_dynamicCSS","_shadow","_warning","updateCSS","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","arrayOf","elementType","instanceOf","objectOf","oneOf","checkPropTypes","PropTypes","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","callee","MEMO_STATICS","TYPE_STATICS","getStatics","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","arrayMap","baseIntersection","baseRest","castArrayLikeObject","intersection","nano","ezafeNumSuffix","sortIndex","unstable_now","setImmediate","priorityLevel","scheduling","isInputPending","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_forceFrameRate","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_shouldYield","unstable_wrapCallback","maxProperties","normalizeToSize","utf8Length","unmemoize","stringified","objName","getConstructorName","stringifyValue","remainingDepth","valueWithToJSON","numAdded","visitable","visitKey","visitValue","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","cacheThemes","createTheme","derivativeArr","asyncGeneratorStep","_asyncToGenerator","_next","_throw","CSS_VAR_PREFIX","_config$scope","stylePath","_transformToken","_transformToken2","cssVarsStr","withPayload","pathParams","payloadAndQueryParams","formData","FormData","acceptLanguageHeader","finalHeaders","injectScopeHeaders","PlacementAlignMap","ArrowCenterPlacementAlignMap","DisableAutoArrowList","getPlacements","arrowWidth","arrowPointAtCenter","visibleFirst","halfArrowWidth","placementMap","placementInfo","arrowOffset","contentRadius","limitVerticalRadius","arrowOffsetHorizontal","baseOverflow","shiftX","arrowOffsetVertical","mergedOverflow","getOverflowOptions","baseMatches","baseMatchesProperty","METRIC_MAP","_last","_min","_sum","_count","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","setDefaults","getDefaults","triggerFocus","addonBefore","inputHasPrefixSuffix","showCount","hasPrefixSuffix","getAllowClear","affixWrapper","groupWrapper","SpaceContext","latestIndex","SpaceContextProvider","prepareEvent","normalizeMaxBreadth","prepared","dist","applyClientOptions","integrationNames","applyIntegrationsMetadata","debugIdMap","_sentryDebugIds","debugIdStackFramesCache","cachedDebugIdStackFrameCache","debugIdStackParserCache","filenameDebugIdMap","debugIdStackTrace","debugIdValue","parsedStack","cachedParsedStack","stackFrame","debug_id","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","getEventProcessors","isolationData","finalScopeData","attachments","eventProcessors","abs_path","debug_meta","images","code_file","applyDebugMeta","maxBreadth","breadcrumbs","normalizeEvent","parseEventHintOrCaptureContext","hintIsScopeOrFunction","captureContextKeys","hintIsScopeContext","fields","internalSet","removeIfUndefined","_paths","restPath","createEmpty","sources","internalMerge","parentLoopSet","loopSet","isArr","originValue","toPropertyKey","undef","notUndef","pat","ch","stringableFunc","multicast","localeList","generateLocale","changeConfirmLocale","newLocale","cloneLocale","getConfirmLocale","equalArrays","mapToArray","logSpanStart","op","parent_span_id","isRootSpan","infoParts","logSpanEnd","DoubleLeftOutlined","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","optionA","optionB","labelA","labelB","isWindowsFrame","startsWithSlash","oldFilename","generateIteratee","processedEvent","_oO","_processExceptionsEvent","responsiveArray","getResponsiveMap","validateBreakpoints","indexableToken","revBreakpoints","breakpointUpper","screenMin","screenMax","nextScreenMin","useResponsiveObserver","responsiveMap","subscribers","subUid","matchHandlers","pointMap","paramToken","unregister","matchMediaQuery","matchScreen","screenSizes","arraySome","cacheHas","toLength","iconWrapperCls","DEFAULT_INCLUDES","transaction","DEFAULT_REQUEST_INCLUDES","DEFAULT_USER_INCLUDES","extractPathForTransaction","customRoute","originalUrl","addRequestDataToEvent","include","includeRequest","extractedRequestData","requestData","absoluteUrl","ipHeaderName","query_string","queryParams","extractQueryParams","extractRequestData","extractedUser","extractUserData","remoteAddress","_reconstructedRoute","extractTransaction","fadeIn","fadeOut","initFadeMotion","sameLevel","animationTimingFunction","_createSuper","OpSpace","spaceProps","Space","Compact","numbersNouns","numberNoun","hundred","ten","one","numberAsNoun","__assign","__decorate","decorators","decorate","__param","paramIndex","decorator","__esDecorate","descriptorIn","contextIn","initializers","extraInitializers","accept","access","addInitializer","__runInitializers","useValue","__propKey","__setFunctionName","__metadata","metadataKey","metadataValue","__generator","sent","trys","ops","Iterator","verb","__createBinding","k2","__exportStar","__values","__read","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","AsyncIterator","resume","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","mod","__classPrivateFieldGet","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","dispose","inner","asyncDispose","_SuppressedError","suppressed","__disposeResources","fail","OpFormCheckbox","checkboxTooltip","requiredRule","isCheckboxRequired","opCheckboxId","valuePropName","htmlFor","requestOmniSelectData","apiData","setOmniSelectLoading","getList","listData","requestAndSet","resource","setOmniSelectCount","setOmniSelectList","requestAndSetOptions","optionsData","setOmniSelectOptions","takeEvery","REQUEST_OMNISELECT_DATA","iconMapFilled","IconNode","CloseIconNode","isClosable","handleClose","banner","closeText","setClosed","isShowIcon","alertCls","mergedAriaProps","motionEnter","initialOrgState","initialNetsuitePackagePlansState","netsuitePackagePlansReducer","initialEntriesState","entriesReducer","initialRolesReducer","rolesReducer","initialGroupsState","groupsReducer","initialZonesState","zonesReducer","initialZoneState","zoneReducer","initialUsersState","usersReducer","initialIdentityProvidersState","identityProvidersReducer","initialEntryStatesState","entryStatesReducer","initialAcusState","acusReducer","initialIdentityProviderGroupsState","identityProviderGroupsReducer","initialIdentityProviderGroupRelationsState","identityProviderGroupRelationsReducer","initialVideoProvidersState","videoProvidersReducer","SET_VIDEO_PROVIDERS","initialCredentialTypesState","credentialTypesReducer","initialCardFormatsState","cardFormatsReducer","initialSharedUsersState","sharedUsersReducer","initialAcuPortsState","acuPortsReducer","initialRequestTypesState","requestTypesReducer","initialProtonStatusesState","protonStatusesReducer","initialNamespacesState","namespacesReducer","initialScopeResourcesState","scopeResourcesReducer","hasLoaded","WirelessLockGatewayInviteStates","actionType","createApiQueryStringParamsFromReactTableState","sortBy","globalFilter","defaultQueryStringParams","isMultiSelect","accessor","createFilterValue","createValidCsvData","endpointName","endpointQueryStringParams","additionEndpointRequisites","gotoPage","tableColumns","dataFilter","pageIndex","createSetterAction","finalMetadata","requestUpdateDataOrder","originalMetadata","reorderedData","updaterEndpoint","endpointRequisites","payloadCallback","successMessage","iteratePayload","iteratePayloadCallback","errorDuringSend","actualEndpointRequisites","actualPayload","sendToHelium","takeLatest","_construct","REQUEST_GET_IDENTITY_PROVIDERS","OAUTH_REQUEST_CALLBACK","OAUTH_SET_AUTH_URL","REQUEST_GET_GROUPS","REQUEST_GET_GROUP_RELATIONS","logos","gsuite","msazuread","okta","onelogin","workday","workdayLogo","containerStyle","baseIsSet","nodeIsSet","isSet","fillRule","clipRule","replacementFactory","markFunctionWrapped","addNonEnumerableProperty","o_O","getOriginalFunction","__sentry_original__","urlEncode","convertToPlainObject","getOwnProperties","serializeEventTarget","CustomEvent","detail","extractedProps","extractExceptionKeysForMessage","firstKey","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","isPojo","memoVal","returnValue","css","styleElement","styleSheet","createTextNode","$0","$1","$2","isPresetSize","isValidGapNumber","getUnitOffset","offsetStr","cells","getNumberOffset","offsetX","offsetY","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","point","useAlign","onPopupAlign","offsetR","offsetB","arrowX","arrowY","scaleX","scaleY","offsetInfo","setOffsetInfo","alignCountRef","scrollerList","prevFlipRef","onAlign","_popupElement$parentE","_popupRect$x","_popupRect$y","_popupElement$parentE2","targetRect","popupElement","_win$getComputedStyle","popupPosition","originLeft","originTop","originRight","originBottom","originOverflow","placeholderElement","offsetLeft","offsetTop","_rect$x","_rect$y","popupRect","_doc$documentElement","scrollWidth","scrollTop","scrollLeft","targetHeight","targetWidth","visibleRegion","scrollRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","visibleArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","targetOffset","_getNumberOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset3","_getNumberOffset4","targetOffsetX","targetOffsetY","popupPoint","targetAlignPoint","popupAlignPoint","nextAlignInfo","nextOffsetX","nextOffsetY","getIntersectionVisibleArea","area","visibleL","visibleT","visibleR","visibleB","nextPopupY","nextPopupBottom","nextPopupX","nextPopupRight","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","supportAdjust","syncNextPopupPosition","needAdjustY","sameTB","bt","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","rl","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","lr","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupLeft","popupRight","popupTop","popupBottom","targetLeft","targetRight","targetTop","targetBottom","nextArrowX","nextArrowY","offsetX4Right","offsetY4Bottom","resetReady","ori","applyScopeDataToEvent","fingerprint","transactionName","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","applyDataToEvent","applySpanToEvent","applyFingerprintToEvent","mergedBreadcrumbs","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","propagationContext","mergeAndOverwriteScopeData","mergeVal","baseIteratee","intersectionBy","transitionSupport","CSSMotion","_props$removeOnLeave","eventProps","supportMotion","contextMotion","isSupportTransition","wrapperNodeRef","_useStatus","HTMLElement","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","statusSuffix","OpInputNumber","inputNumberProps","InputNumber","OpFormInputNumber","validateStatus","help","defaultUnitOptions","OpInputDuration","defaultUnitValue","unitOptions","minSeconds","maxSeconds","propsValue","propsOnChange","setUnit","displayValue","OpFormInputDuration","OpFormContext","CountrySelect","filterCondition","filteredCountries","short","optionLabel","phoneCode","fixedProps","emoji","optionLabelProp","OpPhoneInput","inputProps","shortCode","setShortCode","phoneUtils","getCountryCode","getFormattedE164CountryCode","phoneWithoutCountryCode","OpInput","newShortCode","newPhoneCode","OpDatePicker","DATE_TIME_FORMAT","datePickerProps","pickerValue","changedValue","dateString","OpTimePicker","TIME_FORMAT","timePickerProps","needConfirm","OpTagInput","opSelectProps","searchValue","setSearchValue","generateRangePickerPresets","OpRangePicker","showPresets","presets","rangePickerProps","finalPresets","setFinalPresets","finalValue","showTime","formatString","renderNamespace","OpSiteSpecificUserDataFetchSelect","opDataFetchSelectProps","checkSiteSpecificRoleRestriction","useIsRestrictedBySiteSpecificRole","OpDataFetchSelect","fetchAllInitialValues","queryParamOverrides","createDisabledOption","sites","createOptionLabel","fullName","OpSiteSpecificSiteDataFetchSelect","OpTransfer","appendQueriesInQueryOptions","queriesToAppend","OpDataFetchTransfer","existingItemsHeliumResponse","availableItemsHeliumResponse","availableItemsParams","existingItemsParams","createLabel","existingItemsLabel","onChangeProp","opTransferProps","availableDataSource","setAvailableDataSource","existingDataSource","setExistingDataSource","availableTotalItems","setAvailableTotalItems","existingTotalItems","setExistingTotalItems","availableItemsQuery","setAvailableItemsQuery","existingItemsQuery","setExistingItemsQuery","setTargetKeys","addedItems","removedItems","existingItemsData","uniqBy","createKey","createTitle","createDescription","createDisabled","removedItemKey","availableItemsData","debounce","addedItemsNotInDataSource","aKeyIndex","bKeyIndex","uniqueTargetKeys","moveKeysNotInRemoveKeys","newAddedItems","newRemovedItems","differenceBy","moveKeysNotInAddKeys","addedItemKey","OpTag","OpSiteSpecificUserDataFetchTransfer","existingItemsQueryOptions","opSiteSpecificUserDataFetchTransferProps","sitesData","userSiteIds","siteIds","OpText","OpTimezonePicker","timezoneOptions","timezones","OpColorPicker","colorPickerProps","createPolygonPointCoordinates","containerHeight","clientX","clientY","VideoRegion","polygonPoints","x0","y0","_x1","_y2","x3","_y3","VideoRegionSelect","privacyMaskMaxCount","detectionWindowMaxCount","detectionWindowPolygons","privacyMaskPolygons","videoWrapperRef","isFormingPolygon","setIsFormingPolygon","tempPolygonStartingPosition","setTempPolygonStartingPosition","tempPolygonEndingPosition","setTempPolygonEndingPosition","isShowingPolygonTypeChoice","setIsShowingPolygonTypeChoice","videoWidth","setVideoWidth","videoHeight","setVideoHeight","tempPolygonPoints","handleMouseMove","throttled","persist","handleMouseUp","handlePolygonTypeSelection","polygon","onMouseMove","OpVideoPlayer","isLive","controls","OpModal","replaceEmptyWithNull","layout","propsFormRef","submitButtonLabel","submitButtonIsLoading","formProps","internalFormRef","isDrawerFormSubmitting","setIsDrawerFormSubmitting","isCoreFormSubmitting","setIsCoreFormSubmitting","hasErrorPropValidator","hasErrorValidationError","handleBeforeUnload","isFieldsTouched","confirmationMessage","stringifiedInitialValues","resetFields","onFinish","rawTouchedValues","getFieldsValue","touched","touchedValues","scrollToFirstError","FormButtons","isFormLoading","isSubmitButtonLoading","resetButtonLabel","useFormInstance","opInputId","InputDuration","PhoneInput","TagInput","opDatePickerId","opTimePickerId","opPasswordInputId","inputRules","SearchInput","TextAreaInput","opFormItemTestId","opSelectId","Switch","OpSwitch","loadingPlaceholder","loadingContent","OpImage","CheckboxGroup","radioTooltip","opRangePickerId","DataFetchSelect","SiteSpecificUserDataFetchSelect","SiteSpecificSiteDataFetchSelect","DataFetchTransfer","transferProps","SiteSpecificUserDataFetchTransfer","TimezonePicker","CodeEditor","getValueProps","sliderTooltip","OpSlider","VideoCameraOutlined","HiddenItemForDataSetting","additionalProps","modalWarn","destroyAll","destroyFns","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","stringSlice","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","BILLING_SUBSCRIPTION_FORM","QUANTITY_LIMITS_FORM","SET_PAGE_DATA","DELETE_SOFTWARE_LICENSE","nativeNow","lastCalled","FIDThresholds","onFID","handleEntry","processingStart","handleEntries","takeRecords","QuestionMarkOutlinedSvg","FORM","USERS_OMNI","FILTER_ORG_USERS","REQUEST_ALARM_ACTION","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","LinkAnchor","_onClick","defaultPrevented","isModifiedEvent","_ref2$component","__RouterContext","createHref","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","classNameProp","isActiveProp","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","defaultGetContainer","uniqueKey","rootConfig","_rootConfig$getContai","shareConfig","setContainer","notificationsRef","taskQueue","setTaskQueue","oriQueue","CONTAINER_OFFSET","CONTAINER_MAX_OFFSET","containerBaseZIndexOffset","Drawer","Popover","FloatButton","consumerBaseZIndexOffset","SelectLike","Dropdown","ImagePreview","componentType","customZIndex","parentZIndex","Theme","isUpper","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","nextTick","browser","argv","prependListener","prependOnceListener","cwd","chdir","umask","createClientReportEnvelope","discarded_events","clientReportItem","RouteComponent","RouteImportPath","sagas","PASSED_PROPS","globalPrefixCls","globalIconPrefixCls","globalTheme","globalHolderRender","getGlobalPrefixCls","getGlobalIconPrefixCls","globalConfig","ProviderChildren","customCsp","autoInsertSpaceInButton","anchor","componentSize","splitter","legacyLocale","customIconPrefixCls","componentDisabled","segmented","statistic","carousel","cascader","checkbox","descriptions","skeleton","steps","image","mentions","progress","slider","breadcrumb","badge","SWITCH","avatar","table","tabs","timeline","timePicker","upload","tree","colorPicker","datePicker","warningConfig","tour","floatButtonGroup","inputNumber","treeSelect","mergedPrefixCls","baseConfig","memoedConfig","prevConfig","currentKeys","memoIconContextValue","memoTheme","algorithm","themeObj","parsedComponents","componentToken","parsedToken","ConfigProvider","antLocale","ConfigContext","SizeContext","isLegacyTheme","useConfig","addEventListenerWrap","isPrototype","nativeKeysIn","isProto","PlusSvg","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","character","characters","comment","declaration","siblings","post","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","subtitle","contentRight","propertyIsEnumerableModule","toIndexedObject","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","baseHasIn","hasPath","_nullishCoalesce","lhs","rhsFn","removeRule","kebab","VRule","newDecl","oldDecl","decl","removeProperty","setProperty","VSheet","newTree","oldTree","oldRules","newRules","_CaretRightOutlined","CaretRightOutlined","_ref$direction","gradientColors","_ArrowUpOutlined","ArrowUpOutlined","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","findStyles","injectCSS","_option$priority","mergedOrder","getOrder","isPrependQueue","innerHTML","existStyle","nodePriority","nextSibling","findExistNode","removeCSS","existNode","originOption","cachedRealContainer","placeholderStyle","syncRealContainer","_option$csp","_option$csp2","_option$csp3","newNode","relativeTimeMr","flexWrapValues","justifyContentValues","alignItemsValues","genFlexStyle","genFlexGapStyle","flexGapSM","flexGap","flexGapLG","genFlexWrapStyle","genAlignItemsStyle","genJustifyContentStyle","justifyStyle","flexToken","othersProps","ctxFlex","ctxDirection","mergedVertical","mergedCls","genClsWrap","alignCls","genClsAlign","justifyCls","genClsJustify","ColorPickerPrefixCls","generateColor","calculateColor","_containerRef$current","_targetRef$current$ge","centerOffsetX","centerOffsetY","bright","alphaOffset","hueOffset","calcOffset","unitlessCssVar","Calculator","weekEndings","popoverColor","titleMinWidth","innerPadding","popoverBg","titleBorderBottom","innerContentPadding","titlePadding","genColorStyle","popoverToken","titlePaddingBlockDist","popoverTitlePaddingBlockTop","popoverTitlePaddingBlockBottom","popoverPaddingHorizontal","byteToHex","getRandomValues","rnds8","v35","hashfunc","generateUUID","buf","_namespace","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","cnt","md5ff","md5gg","md5hh","md5ii","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","rnds","rng","ROTL","_i2","_t","_t2","getAceInstance","editorEvents","editorOptions","acequire","arrayLikeKeys","baseKeys","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","shapeCls","sizeStyle","skeletonClsLoading","backgroundPosition","genSkeletonElementCommonSize","genSkeletonElementAvatarSize","genSkeletonColor","skeletonLoadingBackground","backgroundSize","skeletonLoadingMotionDuration","genSkeletonElementInputSize","genSkeletonElementAvatar","skeletonAvatarCls","gradientFromColor","genSkeletonElementInput","skeletonInputCls","genSkeletonElementImageSize","genSkeletonElementImage","skeletonImageCls","imageSizeBase","genSkeletonElementButtonShape","buttonCls","skeletonButtonCls","genSkeletonElementButtonSize","genSkeletonElementButton","skeletonTitleCls","skeletonParagraphCls","titleHeight","blockRadius","paragraphLiHeight","controlHeightXS","paragraphMarginTop","skeletonToken","gradientToColor","colorGradientEnd","getWidth","rowList","getComponentProps","hasAvatar","hasParagraph","avatarNode","contentNode","avatarProps","getAvatarBasicProps","$title","paragraphNode","titleProps","getTitleBasicProps","paragraphProps","basicProps","getParagraphBasicProps","xmlns","isBodyOverflowing","innerHeight","innerWidth","nativeMin","isArrayLikeObject","caches","outer","computed","ModernAutoControlledComponent","_this$constructor","autoControlledProps","getAutoControlledStateFromProps","initialAutoControlledState","includeDefaults","defaultProp","getAutoControlledStateValue","newStateFromProps","computedState","someByType","findByType","isNil","numberToWordMap","numberToWord","useKeyOnly","useValueAndKey","useKeyOrValueAndKey","useMultipleProp","useTextAlignProp","useVerticalAlignProp","useWidthProp","widthClass","canEqual","valType","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","iteratees","orders","comparer","objCriteria","criteria","othCriteria","ordersLength","refObject","createShorthand","mapValueToProps","valIsString","valIsNumber","valIsFunction","valIsReactElement","valIsPropsObject","valIsPrimitiveValue","_options$defaultProps","usersProps","_options2$overridePro","overrideProps","mergedClassesNames","childKey","_options3$autoGenerat","autoGenerateKey","createShorthandFactory","createHTMLDivision","createHTMLInput","createHTMLLabel","createHTMLParagraph","_Component$handledPro","handledProps","getDefault","_Component$defaultPro","as","computedDefault","htmlInputAttrs","htmlInputProps","htmlImageProps","partitionHTMLProps","_options$htmlProps","htmlProps","_options$includeAria","includeAria","possibleAria","hasDocument","hasWindow","nativeMax","toFinite","toNumber","clientRects","getClientRects","_first2","ICONS","ICONS_AND_ALIASES","CLASS_NAME_DELITIMITER","prevClassNames","handleClassNamesChange","classNameRefs","currentClassNames","classNameRef","computeClassNames","_computeClassNamesDif","computeClassNamesDifference","forAdd","forRemoval","nodeRegistry","useClassNamesOnNode","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","EXISTS","richTextTypes","nodeToReactComponent","renderMark","renderText","preserveWhitespace","lines_1","jsxLines_1","cloneElement","nodeListToReactComponents","defaultNodeRenderers","defaultInline","defaultInlineResource","_children","defaultMarkRenderers","SUPERSCRIPT","SUBSCRIPT","STRIKETHROUGH","urn","richTextDocument","TARGET_CLS","notificationMarginEdge","animationMaxHeight","noticeCls","rightFadeIn","topFadeIn","bottomFadeIn","leftFadeIn","NotificationPlacements","placementAlignProperty","genStackChildrenStyle","childrenStyle","notificationStackLayer","genStackedNoticeStyle","colorBgBlur","backdropFilter","genPlacementStackStyle","genNoticeStyle","notificationMarginBottom","notificationBg","notificationPadding","notificationProgressBg","notificationProgressHeight","notificationIconSize","notificationPaddingVertical","notificationPaddingHorizontal","notificationCloseButtonSize","inlineSize","blockSize","genNotificationStyle","prepareNotificationToken","colorPrimaryBorderHover","notificationToken","timedEventsToMeasurements","measurements","snipLine","newLine","lineLength","safeJoin","stringMatchesSomePattern","testString","requireExactStringMatch","isMatchingPattern","_PlusOutlined","PlusOutlined","baseMerge","createAssigner","srcIndex","profiledTransactionEvents","profilesToAddToEnvelope","profiledTransaction","profile_id","start_timestamp","profileEvent","leading","trailing","_SearchOutlined","pa","pb","na","objectConstructor","staticProps","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","validateMetadata","setVersion","countryCode","v1","v2","v3","nonGeographic","nonGeographical","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","_type2","getType","Type","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","isSupportedCountry","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","_step","_iterator","allowArrayLike","_createForOfIteratorHelperLoose","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","WHITESPACE","VALID_PUNCTUATION","CAPTURING_DIGIT_PATTERN","stripIddPrefix","countryMetadata","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","carrierCode","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumber","_extractNationalNumbe","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","isNumberWithIddPrefix","numberWithoutIDD","_extractCountryCallin","shorterNumber","countryCallingCodeSource","_countryCallingCode","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","internationalFormat","SINGLE_IDD_PREFIX_REG_EXP","getExtensionDigitsPattern","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","rfcExtn","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","_objectSpread","DEFAULT_OPTIONS","formatExtension","formatNationalNumber","formatAs","chooseFormatForNumber","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","addExtension","PhoneNumber","countryOrCountryCallingCode","e164Number","E164_NUMBER_REGEXP","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","possibleCountries","_metadata","couldNationalNumberBelongToCountry","isNonGeographicCallingCode","formatRFC3966","fromCountry","iddPrefix","getIddPrefix","formatIDD","_wrapNativeSuper","Class","Parent","_Error","hasNativeReflectConstruct","EXTN_PATTERN","DIGITS","parseDigit","parseDigits","digit","parseIncompletePhoneNumber","prevParsedCharacters","emitEvent","parsePhoneNumberCharacter","getCountryByNationalNumber","nationalPhoneNumber","getCountryByCallingCode","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","hasSelectedNumberingPlan","__countryCallingCodeSource","extended","possible","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_normalizeArguments","LRUCache","ensureLimit","RegExpCache","regExp","trimAfterFirstMatch","_pZ","pZ","PZ","pNd","_pL","pL","pL_regexp","pSc","pSc_regexp","pMn","pMn_regexp","latinLetterRegexp","isLatinLetter","letter","isInvalidPunctuationSymbol","matchPhoneNumberStringAgainstPhoneNumber","phoneNumberStringContainsCallingCode","parsedPhoneNumber","POSSIBLE","VALID","containsOnlyValidXChars","STRICT_GROUPING","regExpCache","containsMoreThanOneSlashInNationalNumber","isNationalPrefixPresentIfRequired","checkNumberGroupingIsValid","EXACT_GROUPING","charAtIndex","charAtNextIndex","firstSlashInBodyIndex","secondSlashInBodyIndex","checkGroups","SECOND_NUMBER_START_PATTERN","parsePreCandidate","SLASH_SEPARATED_DATES","TIME_STAMPS","TIME_STAMPS_SUFFIX_LEADING","isValidPreCandidate","followingText","OPENING_PARENS","CLOSING_PARENS","NON_PARENS","LEAD_CLASS","LEAD_CLASS_LEADING","BRACKET_PAIR_LIMIT","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","isValidCandidate","leniency","previousChar","lastCharIndex","nextChar","EXTN_PATTERNS_FOR_MATCHING","INNER_MATCHES","leadLimit","punctuationLimit","digitBlockLimit","blockLimit","punctuation","digitSequence","PATTERN","UNWANTED_END_CHAR_PATTERN","PhoneNumberMatcher","maxTries","Leniency","parseAndVerify","extractInnerMatch","endsAt","innerMatchPattern","isFirstMatch","candidateMatch","innerMatchRegExp","_candidate","_match","candidateIndexGuess","isPossible","hasNext","AsYouTypeState","onCountryChange","onCallingCodeChange","international","missingPlus","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","complexPrefixBeforeNationalSignificantNumber","_Object$keys","setCountry","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","cleared_string","_dangling_braces","stripNonPairedParens","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","PatternParser","instructions","parsePattern","_this$context$","branches","expandSingleElementArray","OPERATOR","rightPart","startContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","PatternMatcher","matchTree","allowOverflow","matchedChars","characterString","partialMatch","restCharacters","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","narrowDownMatchingFormats","formattedCompleteNumber","setNationalNumberTemplate","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigitsPatternIndex","formatSuits","formatMatches","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPattern","_this3","_loop","getFormatFormat","createTemplateForFormat","getTemplateForFormat","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","populateTemplateWithDigits","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi3","extractedNumber","hasPlus","_extractFormattedDigitsAndPlus","_extractFormattedDigi4","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","_extractCountryCallin2","newCallingCode","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","_this$parser$input","formattedOutput","determineTheCountryIfNeeded","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","_this$state","getNonFormattedNationalNumberWithPrefix","_this$state2","_this$state3","_callingCode","ambiguousCountries","getNumber","getTemplate","getNonFormattedTemplate","WHITESPACE_IN_THE_BEGINNING_PATTERN","PUNCTUATION_IN_THE_END_PATTERN","PhoneNumberSearch","parseCandidate","last_match","services","forward","alreadyWarned","warnOnce","loadedClb","loadNamespaces","loadLanguages","preload","hasLoadedNamespace","languages","precheck","loadNotPending","backendConnector","backend","isLanguageChangingTo","getDisplayName","hiddenTextarea","SIZING_STYLE","computedStyleCache","onInternalAutoSize","setMergedValue","textareaRef","minRows","maxRows","needAutoSize","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","uiTextNode","useCache","_calculateNodeStyling","getPropertyValue","paddingSize","borderSize","nodeInfo","sizingStyle","calculateNodeStyling","singleRowHeight","resize","calculateAutoSizeStyle","_textareaRef$current","selectionStart","selectionEnd","fixFirefoxAutoScroll","resizeRafRef","mergedAutoSizeStyle","_countConfig$max","customValue","onClear","compositionRef","textareaResized","setTextareaResized","resizableTextAreaRef","getTextArea","_resizableTextAreaRef","_holderRef$current","setSelection","_getTextArea","dataCount","countConfig","useCount","mergedMax","hasMaxLength","valueLength","strategy","isOutOfRange","triggerChange","currentValue","cutValue","exceedFormatter","show","showFormatter","isPureTextArea","handleReset","dataAttrs","_getTextArea2","getPrototype","objectCtorString","converter","escape","stringifiedAttributes","attributeName","jar","getJSON","withConverter","whenActivated","prerendering","baseIndexOf","handleRef","RefFindNode","prevNode","_proto","componentDidMount","currentNode","componentDidUpdate","prevProps","componentWillUnmount","RefForward","handleRefOverride","ElementType","childWithProps","semver","isWildcard","tryParse","compareStrings","ap","bp","forceType","getTokenHash","digest","hashStr","getTokenPayload","jsonString","immediate","callNow","makePortOptionHumanReadable","portOption","isExit","openDurationSeconds","invertOutput","capTouchRssi","autoUnlockRssi","advTxPower","autoUnlockEnabled","capTouchEnabled","nfcEnabled","softwareVersionNumber","serialNumber","beaconTxPower","isTriggerRelayEnabled","bypassDurationSeconds","isAjarEnabled","ajarDurationSeconds","isForcedOpenEnabled","defaultCardNumBits","isPassThroughEnabled","defaultCardNumber","heliumRequest","isGetter","loopToGetAll","_headers","localizedErrorMessage","localizedMessage","INJECT_SCOPE_HEADERS","cursors","tokenHash","setFingerprint","heliumReceive","heliumSend","heliumRequestSaga","rawOptions","optionsSchema","yup","loadingAction","onSuccessSaga","nullable","noUnknown","withHeaders","tableSort","pathToStringArray","secondsToTimeAndUnit","secondsArray","convertUrlToBase64","urlIsCacheable","urlToFetch","FileReader","onloadend","readAsDataURL","getFileTypeFromBase64","mime","visualActivityEventMatchesActivityEvent","eventTime","vaEventTime","eventEntryId","vaEventEntryId","eventCameraIds","vaCameraId","variability","parseObjBools","parsedConfig","cloneDeep","revParseObjBools","createInstalledAppLogicForButtonClick","appId","configureUrl","setModalVideoProviderTypeId","appConfigurationRoute","parsedUrl","ipt","idptCodeLegacy","idptCode","integration","idptId","merakiVideoProviderId","videoProvidersRoute","avaVideoProviderId","determineIfIsValidJsonString","dedupeImmutable","compArr","meetsMinimumVersion","minimumVersion","skipVersionCheck","validateVersion","n1","n2","p1","p2","compareVersions","WarningContext","devUseWarning","noopWarning","deprecated","genAlertTypeStyle","iconColor","withDescriptionIconSize","withDescriptionPadding","defaultPadding","genTypeStyle","colorSuccessBorder","colorSuccessBg","colorWarningBorder","colorErrorBorder","colorInfoBorder","colorInfoBg","genActionStyle","weekStart","Ls","firstDayOfWeek","localeData","COUNTER_METRIC_TYPE","GAUGE_METRIC_TYPE","SET_METRIC_TYPE","DISTRIBUTION_METRIC_TYPE","DEFAULT_BROWSER_FLUSH_INTERVAL","DEFAULT_FLUSH_INTERVAL","MAX_WEIGHT","createCheckInEnvelope","checkIn","createCheckInEnvelopeItem","parseUrl","stripUrlQueryAndFragment","urlPath","parseColor","isInternalColor","arrowStyle","headerClass","_props$classNames","customizeClassNames","_props$styles","accordion","panelKey","openMotion","destroyInactivePanel","collapsibleHeader","collapsibleIcon","ifExtraExist","handleItemClick","collapsePanelClassNames","headerProps","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","matchKey","SET_ACU_CONFIG","SET_ACU_LOCATION_RESTRICTION","SET_ACU_MODELS","SET_ACTIVITY","SET_ALARM_ACTIVITY","SET_ALARM_CONFIGURATIONS","SET_ALLEGION_OPERATORS","SET_APPS","SET_AUDIT_LOGS_UI","SET_BADGE_CONFIGS","SET_CAMERA_STALE_SNAPSHOT","SET_CONTACT_SENSORS","SET_CREDENTIALS","SET_CUSTOM_FIELD_DROPDOWN_ITEMS","SET_CUSTOM_FIELD","SET_CUSTOM_FIELD_TYPES","SET_CUSTOM_FIELDS","SET_DASHBOARDS","SET_ENTRY_USER_SCHEDULES","SET_GENERIC_INPUTS","SET_GLOBAL_ACUS","SET_GLOBAL_IDENTITIES","SET_GLOBAL_ORGS","SET_GLOBAL_ENTRIES","SET_HOOK_EVENTS","SET_IDENTITIES","SET_IDENTITY_ROLES","SET_INVOICES","SET_OPVIDEO_DEVICE","SET_OPVIDEO_DEVICES","SET_ORG_CAMERAS","SET_PRESENCE_BUCKETS","SET_RELAYS","SET_REXS","SET_SCHEDULE_ACCESS","SET_SCHEDULE_EVENTS","SET_SCHEDULES","SET_SUBSCRIPTION","SET_SUBSCRIPTIONS","SET_THIRD_PARTY_DEVICES","SET_THIRD_PARTY_READERS","SET_USER_ACTIVITY","SET_USER_BADGE","SET_USER_CREDENTIALS","SET_USER_ENTRIES","SET_USER_GROUPS","SET_VIDEO_PROVIDER_TYPES","SET_VISUAL_ACTIVITY","SET_WIDGET_TYPES","SET_WIRELESS_LOCKS","SET_WIRELESS_LOCK_GATEWAYS","SET_WIRELESS_LOCK_PROVIDERS","SET_ZONE_ZONE_USERS","SET_ZONE_ZONE_GROUPS","ACTIVITY_REDUCER","ACU_CONFIG_REDUCER","ACU_LOCATION_RESTRICTION_REDUCER","ACU_MODELS_REDUCER","ACU_PORTS_REDUCER","ACUS_REDUCER","ALARM_ACTIVITY_REDUCER","ALARM_CONFIGURATIONS_REDUCER","ALLEGION_INVITER_REDUCER","ALLEGION_OPERATORS_REDUCER","APPS_REDUCER","AUDIT_LOGS_UI_REDUCER","BADGE_CONFIGS_REDUCER","CARD_FORMATS_REDUCER","CONTACT_SENSORS_REDUCER","CREDENTIAL_TYPES_REDUCER","CREDENTIALS_REDUCER","CUSTOM_FIELD_REDUCER","CUSTOM_FIELD_DROPDOWN_ITEMS_REDUCER","CUSTOM_FIELD_TYPES_REDUCER","CUSTOM_FIELDS_REDUCER","DASHBOARDS_REDUCER","ENTRIES_REDUCER","ENTRY_STATES_REDUCER","ENTRY_USER_SCHEDULES_REDUCER","GENERIC_INPUTS_REDUCER","GLOBAL_ACUS_REDUCER","GLOBAL_IDENTITIES_REDUCER","GLOBAL_ORGS_REDUCER","GLOBAL_ENTRIES_REDUCER","GROUPS_REDUCER","HOOK_EVENTS_REDUCER","IDENTITY_PROVIDER_TYPES_REDUCER","IDENTITY_ROLES_REDUCER","IDENTITIES_REDUCER","INVOICES_REDUCER","LOCKDOWN_PLANS_REDUCER","OPVIDEO_DEVICE_REDUCER","OPVIDEO_DEVICE_FRAGMENTS_REDUCER","OPVIDEO_DEVICES_REDUCER","ORG_CAMERAS_REDUCER","PRESENCE_BUCKETS_REDUCER","READERS_REDUCER","RELAYS_REDUCER","REXS_REDUCER","ROLES_REDUCER","SCHEDULE_ACCESS_REDUCER","SCHEDULE_EVENTS_REDUCER","SCHEDULES_REDUCER","SHARED_USERS_REDUCER","SITES_REDUCER","TRIGGER_METHODS","SUBSCRIPTION_REDUCER","SUBSCRIPTIONS_REDUCER","THIRD_PARTY_DEVICES_REDUCER","THIRD_PARTY_READERS_REDUCER","USER_ACTIVITY_REDUCER","USER_BADGE_REDUCER","USER_CREDENTIALS_REDUCER","USER_ENTRIES_REDUCER","USER_GROUPS_REDUCER","USERS_REDUCER","VIDEO_PROVIDER_TYPES_REDUCER","VIDEO_PROVIDERS_REDUCER","VISUAL_ACTIVITY_REDUCER","WIDGET_TYPES_REDUCER","WIRELESS_LOCKS_REDUCER","WIRELESS_LOCK_GATEWAYS_REDUCER","WIRELESS_LOCK_PROVIDERS_REDUCER","ZONE_REDUCER","ZONE_ZONE_USERS_REDUCER","ZONE_ZONE_GROUPS_REDUCER","ZONES_REDUCER","ORG_REDUCER","BUILDINGS_REDUCER","BUILDING_REDUCER","SET_BUILDINGS","SET_BUILDING","FLOORS_REDUCER","FLOOR_REDUCER","SET_FLOORS","SET_FLOOR","UNITS_REDUCER","SET_UNITS","SET_UNIT","SERVICE_REQUESTS_REDUCER","SET_SERVICE_REQUESTS","CAMERAS_REDUCER","SET_CAMERAS","SCHEDULED_REPORTS_REDUCER","SET_SCHEDULED_REPORTS","SCHEDULED_REPORT_REDUCER","SET_SCHEDULED_REPORT","TASK_REPORTS_REDUCER","SET_TASK_REPORTS","ORG_SOFTWARE_LICENSES_REDUCER","SET_ORG_SOFTWARE_LICENSES","TABLE_STATE_REDUCER","REQUEST_GET_CURRENT_ORG_DATA","RESET_HLS_URL","RESET_POSTER_URL","UPDATE_OPTIONS","useConfirmModal","modalFuncProps","_createForOfIteratorHelper","_regeneratorRuntime","Generator","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","invoke","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","rval","finish","delegateYield","_iterableToArrayLimit","_nonIterableRest","_callSuper","_inject","HeliumClientError","_extendableBuiltin2","what","ExtendableBuiltin","_extendableBuiltin","LiveServer","origRequest","_origRequest$payload$","origResponse","_args","generateQueryString","queryString","elem","BaseClient","_token","_op","pathTemplate","responseCode","_args2","spec","getDefaultSpec","_request","isRaw","_callee3","_args3","_context3","firePostRequestCallback","_callee4","urlpath","_flags$firePostReques","_payload$constructor","expectedLength","_args4","_context4","Accept","Authorization","getHeaders","getBuffer","inject","_x3","_x4","_x5","_x6","_x7","_callee5","_context5","_POST","_x8","_callee6","_context6","_callee7","_context7","maintenanceUrl","_GET","swaggerOp","defaultSpec","swaggerObj","responseCodes","responses","genSharedDividerStyle","sizePaddingEdgeHorizontal","textPaddingInline","orientationMargin","verticalMarginInline","dividerHorizontalGutterMargin","dividerHorizontalWithTextGutterMargin","borderBlockStartColor","borderBlockEnd","dividerToken","orientation","hasChildren","hasCustomMarginLeft","hasCustomMarginRight","memoizedOrientationMargin","innerStyle","getMultipleSelectorUnit","basePadding","containerPadding","itemLineHeight","genOverflowStyle","selectOverflowPrefixCls","genSelectionStyle","selectItemHeight","selectItemDist","getSelectItemStyle","multipleSelectorUnit","rawStyle","defineGlobalProperty","nonConfigurable","nonWritable","baseKeysIn","Ie","Ve","We","Ue","le","kt","qe","Ee","Et","Re","createDispatchHook","pe","createSelectorHook","ae","createStoreHook","shallowEqual","ke","Ae","useStore","Le","$e","Ye","He","Be","ze","Ke","Ge","Je","Te","Xe","Ze","Qe","fe","Se","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","dependsOnOwnProps","me","mapToProps","wrappedComponentName","Ce","onStateChange","addNestedSub","nt","notifyNestedSubs","handleChangeWrapper","trySubscribe","tryUnsubscribe","getListeners","pt","ct","product","Oe","ut","Pt","Me","lt","De","et","ye","Tt","ft","be","St","yt","ge","mt","ht","wt","xt","Ot","pure","areMergedPropsEqual","we","se","he","rt","xe","shouldHandleStateChanges","initMapStateToProps","initMapDispatchToProps","initMergeProps","reactReduxForwardedRef","ve","ce","getServerState","ne","ie","subscription","ue","Pe","te","de","Ne","Dt","Ct","useSyncExternalStore","oe","serverState","withTypes","Fe","Rt","equalityFn","useSyncExternalStoreWithSelector","useDebugValue","audioContext","AudioContext","WEB_AUDIO_INTERACTION_EVENTS","onInteractionHandler","audioFiles","audioLayers","getAudioFileBuffer","play","pausedAt","bufferSource","createBufferSource","loop","createGain","volume","gain","setValueAtTime","onEnded","volumeNode","startedAt","createLayerIfNeeded","destination","getEffectivePlayOptions","ALARM_NOTIFICATION","ALARM_NOTIFICATIONS","initialize","decodeAudioData","soundEffect","effectiveOptions","replaceAll","sourceName","skipIfAlreadyPlaying","sourceInfo","effectiveBuffer","adjustLayerVolume","adjustVolume","_props$defaultChecked","defaultChecked","_props$type","setRawValue","_inputRef$current","_inputRef$current2","nativeEvent","objectCreate","baseCreate","_ref$size","peek","caret","begin","alloc","dealloc","escaping","commenter","identifier","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","quarter","$utils","supportBigInt","BigInt","trimNumber","numStr","trimStr","splitNumber","integerStr","decimalStr","negativeStr","fullStr","isE","getNumberPrecision","decimalMatch","validateNumber","num2str","BigIntDecimal","nan","trimRet","numbers","decimal","decimalLen","decimalLength","getIntegerStr","getDecimalStr","padEnd","calculator","calDecimalLen","maxDecimalLength","valueStr","alignDecimal","nextDecimalLength","_trimNumber","hydrateValueStr","isInvalidate","cal","num1","num2","negate","NumberDecimal","maxPrecision","getMiniDecimal","separatorStr","cutOnly","precisionDecimalStr","numberWithoutDecimal","advancedNum","StepHandler","upNode","downNode","upDisabled","downDisabled","onStep","stepTimeoutRef","frameIds","onStepRef","setMobile","onStopStep","onStepMouseDown","up","loopStep","isMobile","handlerClassName","upClassName","downClassName","safeOnStopStep","sharedHandlerProps","unselectable","getDecupleSteps","stepStr","getDecimalValue","stringMode","decimalValue","getDecimalIfValidate","InternalInputNumber","_props$step","upHandler","downHandler","_props$changeOnWheel","changeOnWheel","_props$controls","decimalSeparator","_props$changeOnBlur","changeOnBlur","domRef","setFocus","userTypingRef","shiftKeyRef","setDecimalValue","getPrecision","userTyping","mergedParser","parsedStr","inputValueRef","mergedFormatter","mergedPrecision","initValue","setInternalInputValue","setInputValue","selectionRef","idRef","cleanUp","maxDecimal","minDecimal","lessEquals","_useCursor","beforeTxt","afterTxt","_selectionRef$current","beforeLastChar","newIndex","_useCursor2","recordCursor","restoreCursor","getRangeValue","isInRange","triggerValueUpdate","updateValue","isRangeValidate","onNextPromise","collectInputValue","inputStr","finalDecimal","nextInputStr","onInternalStep","stepDecimal","updatedValue","flushInputValue","parsedValue","onWheel","deltaY","passive","currentParsedValue","onBeforeInput","inputNumberDomRef","inputFocusRef","extendProps","originProp","groupAddon","genRadiusStyle","genInputNumberStyles","inputFontSizeSM","inputFontSizeLG","handleHoverColor","handleOpacity","handleBg","handleActiveBg","controlWidth","handleBorderColor","filledHandleBg","webkitAppearance","handleWidth","handleFontSize","genAffixWrapperStyles","inputAffixPadding","inputNumberToken","handleVisible","onBackground","upIcon","UpOutlined","downIcon","controlsTemp","inputNumberClass","wrapperClassName","TypedInputNumber","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","getGlobal","Response","getPortalContainer","_props$autoDestroy","shouldRender","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","_useDom2","defaultContainer","queueCreate","mergedContainer","childRef","renderInline","reffedChildren","createPortal","SET_FORM_ERROR_MESSAGE","DELETE_FORM_ERROR_MESSAGE","RESET_FORM_VALUES","getException","extras","getMessageForObject","commonLocale","yearFormat","dayFormat","cellMeridiemFormat","monthBeforeYear","OpRefInput","data-lpignore","allowLastPass","RefInput","lastDigit","last2Digits","preprocessEvent","selectNav","selectItems","triggerOnMount","removePasswordTimeoutRef","RotateRightOutlined","getNamePath","cloneByNamePathList","namePathList","newStore","containsNamePath","matchNamePath","subNamePath","nameUnit","isSimilar","sourceValue","targetValue","defaultGetValueFromEvent","moveIndex","toIndex","HookModal","hookAfterClose","innerConfig","setInnerConfig","newConfig","originConfig","ElementsHolder","_props","patchElement","setElements","originElements","usePatchElement","actionQueue","setActionQueue","getConfirmFunc","withFunc","modalRef","closeFunc","confirmed","destroyAction","updateAction","tagFontSize","tagLineHeight","tagIconSize","tagPaddingHorizontal","tagBorderlessBg","iconMarginInline","CheckableTag","genPresetStyle","genTagStatusStyle","cssVariableType","capitalizedCssVariableType","tagToken","InternalTag","tagProps","deprecatedVisible","tagContext","domProps","isPreset","isStatus","tagStyle","tagClassName","handleCloseClick","originProps","isNeedWave","tagNode","sharedRoutes","redirectToHome","pageNotFound","ROUTE_ORG_ID_TEMPLATE","SCOPE_ORG_ID_TEMPLATES","SCOPE_IDENTITY_ID_TEMPLATES","isCommon","valuesLength","valuesIndex","getStatusClassNames","getMergedStatus","hasTracingEnabled","maybeOptions","__SENTRY_TRACING__","enableTracing","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","addClickKeypressInstrumentationHandler","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","globalListener","getEventTarget","shouldSkipDOMEvent","_sentryId","isSimilarToLastCapturedEvent","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","useComponent","subString","rgbToRgb","rgbToHsl","hue2rgb","hslToRgb","rgbToHsv","hsvToRgb","rgbToHex","allow3Char","rgbaToHex","allow4Char","convertHexToDecimal","parseIntFromHex","numberInputToObject","AsyncContextStack","assignedScope","assignedIsolationScope","_stack","_isolationScope","withScope","_pushScope","maybePromiseResult","_popScope","getClient","getStackTop","getScope","getIsolationScope","getAsyncContextStack","registry","sentry","withSetScope","withIsolationScope","getStackAsyncContextStrategy","withSetIsolationScope","getCurrentScope","createSymbol","CHANNEL_END_TYPE","MATCH","MULTICAST","SAGA_ACTION","SELF_CANCELLATION","TASK","TASK_CANCEL","TERMINATE","SAGA_LOCATION","isSentryRequestUrl","checkDsn","removeTrailingSlash","checkTunnel","agent","opera","installedIntegrations","setupIntegrations","integrationIndex","setupIntegration","afterSetupIntegrations","afterAllSetup","processor","defineIntegration","rawChildren","rawKey","rawCollapsible","rawOnItemClick","rawDestroyInactivePanel","mergeCollapsible","mergeDestroyInactivePanel","childDestroyInactivePanel","childCollapsible","childOnItemClick","childProps","getNewChild","HOOK_MARK","warningFunc","getFieldError","getFieldWarning","getFieldsError","isFieldTouched","isFieldValidating","isFieldsValidating","setFieldValue","setFieldsValue","validateFields","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","_object_spread_props","getRawTag","assignValue","nested","_ref$atBegin","atBegin","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","lastExec","clearExistingTimeout","arguments_","_ref2$upcomingOnly","upcomingOnly","fieldContentRegExp","cookieOptions","setTime","serializeCookie","nameEQ","ca","cookie$1","lookupCookie","cacheUserLanguage","cookieMinutes","cookieDomain","querystring","found","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","removeItem","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","lookupSessionStorage","navigator$1","userLanguage","htmlTag","internalHtmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","canCookies","Browser","detectors","languageUtils","excludeCacheFor","convertDetectedLanguage","lookupFromUrlIndex","addDetector","detector","detect","detectionOrder","detected","detectorName","getBestMatchFromCodes","cacheName","getLastOfPath","cleanKey","setPath","_getLastOfPath","getPath","_getLastOfPath3","interpolate","isMissingOption","mem","defer","rej","XmlHttpRequestApi","ActiveXObjectApi","fetchApi","platform","arch","authorize","setContentTypeJSON","resourceNotExisting","requestWithFetch","crossDomain","requestWithXmlHttpRequest","getCustomRequestInfo","handleCustomRequest","I18NextLocizeBackend","allOptions","referenceLng","fallbackLng","storageExpiration","setProjectNotExisting","isProjectNotExisting","defOpt","loadPath","privatePath","getLanguagesPath","addPath","updatePath","private","translatedPercentageThreshold","failLoadingOnEmptyJSON","allowedAddOrUpdateHosts","onSaved","checkForProjectTimeout","writeDebounce","passedOpt","somethingLoaded","toGMTString","pull","isAddOrUpdateAllowed","saveMissing","updateMissing","queuedWrites","debouncedProcess","reload","currentLanguage","toLoad","toResolveHierarchy","deferred","isMissing","getLanguagesCalls","loadUrl","_clbs","clb","isReferenceLanguage","clbs","_this4","getLanguages","lngs","translated","hasRegion","supportedLngs","_this5","alreadyRequestedCheckIfProjectExists","checkIfProjectExists","_this6","_isMissing","_this7","parseErr","term","fallbackValue","_this8","_this9","isUpdate","missings","missingUrl","updatesUrl","hasMissing","hasUpdates","payloadMissing","payloadUpdate","tDescription","todo","doneOne","_info","_this10","namespaceSaved","amountOfPages","pagesDone","writePage","_this11","_getLastOfPath2","pushPath","INVISIBLE_CHARACTERS","INVISIBLE_REGEX","encodeMessage","toBytes","needsToAdd","padToWholeBytes","encodedInvisibleStartMarker","decodeMessage","textBytes","decodeFromText","_text$match","invisibleMessages","TEMPLATE_MINIMUM_LENGTH","removeInvisibles","encodeValue","decodeValue","encodedValue","invisibleMark","unwrap","decodedVal","invisibleMeta","containsHiddenMeta","lastByte","getIframeUrl","_prc$env","locizeIncontext","legacyEventMapping","committed","pendingMsgs","sendMessage","_document$getElementB","senderAPIVersion","implementation","clickHandler","requestInitialize","initInterval","selectKey","confirmResourceBundle","sendCurrentParsedContent","sendCurrentTargetLanguage","targetLng","getLng","fc","sendLocizeIsEnabled","turnOn","scriptTurnedOff","clickInterceptionEnabled","turnOff","onAddedKey","setValueOnNode","eleUniqueID","textType","txtWithHiddenMeta","subliminal","originalChildNodes","clones","dummy","replaceable","_e$data","usedEventName","usedLng","setResource","triggerRerender","metaItem","_item$node","replaceChildren","locizeSavedHandler","uninstrumentedStore","save","clean","resetHighlight","isInViewport","windowHeight","windowWidth","vertInView","horInView","mouseDistanceFromElement","mouseEvent","$n","mX","mY","ny1","ny2","nx1","nx2","maxX1","minX2","maxY1","distX","distY","hypot","docElem","getWindow","pageYOffset","clientTop","pageXOffset","clientLeft","getElementI18nKey","TEXT_NODE","originalStyles","overriddenStyles","eleToOutline","ribbonBox","_RibbonBox","logo","circleSize","logoSize","ribbon","i18nextIconUrl","RibbonLogo","btnbox","attrTitle","editIconUrl","onclick","RibbonButton","RibbonBox","arrowEle","refEle","selectNode","fallbackPlacements","rects","middlewareData","side","staticSide","_middlewareData$arrow","_y","highlight","highlightUninstrumented","_diff","getResourceBundle","resources","previousMatches","matchingItems","qualifiedKey","selectedHighlight","ignoreSelected","childIndex","Document","nextID","uniqueID","createClickHandler","srcElement","explicitOriginalTarget","topBreaksAt","topStartsAt","nOffset","getClickedElement","innerText","getElementText","jsonData","getElementNamespace","isLocizify","getFallbackNS","rectEl","_rectEl$getBoundingCl","pT","pB","pR","sizing","startLegacy","scriptEle","getLocizeDetails","oldHref","bodyList","bindLanguageChange","bindMissingKeyHandler","qsProp","locizeEditorPlugin","locizeStartStandalone","handleCorrectReadFunction","Backend","i18nextOptions","backends","handleEmptyResourcesAsFailed","cacheHitMode","ClassOrObject","backendOptions","bLen","savePosition","isLastBackend","lengthCheckAmount","savedAt","refreshExpirationTime","nextBackend","resourceStore","addResourceBundle","_this$services","locizeOptions","LOCIZE_PROJECTID","LOCIZE_APIKEY","LOCIZE_VERSION","LOCIZE_REFLNG","initReactI18next","i18nInitOptions","keySeparator","nsSeparator","escapeValue","nonExplicitSupportedLngs","i18nPostInit","addCached","listFormatter","ListFormat","listOptions","numberFormatter","NumberFormat","numberOptions","LanguageDetector","ChainedBackend","LocizeBackend","en","translation","es","fr","switchProps","genCheckboxStyle","checkboxCls","wrapperCls","checkboxSize","borderCollapse","motionEaseInBack","motionEaseOutBack","getStyle","checkboxToken","IS_PURE","SHARED","copyright","license","tryToString","_getConsoleBreadcrumbHandler","serializeAttribute","maxStringLength","_isEvent","_getDomBreadcrumbHandler","_getXhrBreadcrumbHandler","fetchData","_getFetchBreadcrumbHandler","parsedLoc","parsedFrom","parsedTo","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","makePrefixMap","prefixes","domSupport","vendorPrefixes","animationend","transitionend","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","transitionType","baseGetAllKeys","getSymbolsIn","captureReactException","componentStack","reactVersion","reactMajor","isAtLeastReact17","errorBoundaryError","seenErrors","recurse","setCause","InvalidTokenError","b64DecodeUnicode","base64UrlDecode","onInternalMotionEnd","cacheElementRef","removeMotionEvents","orgConfig","createRawMenuItems","testItem","Trans","i18nKey","tOptions","tFromProps","shouldUnescape","EMPTY_OVERRIDE","hashPrefix","tokenKeys","TOKEN_THRESHOLD","TOKEN_PREFIX","useCacheToken","_option$salt","_option$override","compute","tokenStr","overrideTokenStr","cssVarStr","_cssVar$key","actualToken","_themeKey","recordCleanToken","_hashId","tokenKeyList","cleanableKeyList","removeStyleTags","cleanTokenStyle","genButtonCompactStyle","jsValue","Iterable","isIndexed","toMap","isIterable","getSymbols","isForced","detection","POLYFILL","NATIVE","EMPTY_ERRORS","requireUpdate","resetCount","cancelRegisterFunc","_this$props2","_fieldContext$prefixN","_this$props3","_this$props3$rules","onMetaChange","_meta","getMeta","metaCache","prevStore","_this$props4","_this$props4$dependen","onReset","curValue","namePathMatch","dirty","validatePromise","triggerMetaEvent","reRender","validating","relatedFields","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateFirst","messageVariables","validateDebounce","filteredRules","getRules","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","warningOnly","_ref4$errors","prevValidating","validated","_meta2","getOnlyChild","getControlled","_this$props6","getValueFromEvent","mergedValidateTrigger","mergedGetValueProps","originTriggerFunc","valueProps","control","originTrigger","_this$props7","cancelRegister","returnChildNode","_this$getOnlyChild","eachFunc","monthsNominative","monthsSubjective","SET_OMNISELECT_COUNT","resetOmniSelectState","RESET_OMNISELECT_STATE","addOmniSelectAdd","ADD_OMNISELECT_ADD","removeOmniSelectAdd","REMOVE_OMNISELECT_ADD","removeOmniSelectRemove","REMOVE_OMNISELECT_REMOVE","addOmniSelectRemove","ADD_OMNISELECT_REMOVE","SET_OMNISELECT_LOADING","SET_OMNISELECT_LIST","LIST","SET_OMNISELECT_OPTIONS","OPTIONS","$M","$D","isoWeekYear","isoWeek","$H","$d","offsetName","DisabledContextProvider","originDisabled","DATE_FORMAT","DATE_YYYY_MM_DD_FORMAT","TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT","DATE_TIME_WITH_SECONDS_AND_TIMEZONE_FORMAT","ZULU_FORMAT","DATE_SHORT_MONTH_FORMAT","DATE_LONG_YEAR_FORMAT","DATE_SHORT_MONTH_DAY_FORMAT","DATE_FORMAT_LONG_MONTH_LONG_YEAR","DATE_FORMAT_SHORT_MONTH_LONG_YEAR","DateAndTimeTypes","MINIMAL_DATE","MINIMAL_TIME","DATE","DATETIME","createZuluStringFromLocalZuluString","zuluString","timeZoneId","createLocalZuluStringFromZuluString","dateTime","isBrowserBundle","__SENTRY_BROWSER_BUNDLE__","getSDKSource","needQuotes","CLEAR_AUTHENTICATED_CONTAINER_STORE_DATA","CHANGE_ROUTE","ROOT_CONTAINER_MOUNTED","FIRE_AUTH_REDIRECT_CHECK","FIRE_SCOPE_CHECK","REQUEST_AND_SET_IDENTITY","REQUEST_PACKAGE_UPGRADE","useDom","appendedRef","setQueue","mergedQueueCreate","appendFn","_ele$parentElement","checkInitialLoginForExistingCookie","CHECK_INITIAL_LOGIN_FOR_EXISTING_COOKIE","setOrgUserProfileImage","setIdentityInfo","setErrorMessage","requestCheckForMaintenanceMode","CHECK_FOR_MAINTENANCE_MODE","requestCheckVersionNumber","CHECK_VERSION_NUMBER","setUpdateRequired","setMaintenanceMode","setDisabledRoutes","requestLoginSSOCallback","LOGIN_SSO_CALLBACK","loginSuccess","logoutSuccess","setCurrentOrg","setIntercomNotificationsAreEnabled","setPrefetchedVideocallAuthForDevices","updatePrefetchedVideoCallAuthForOpVideoDevice","PREFETCH_DEVICE_VIDEOCALL_AUTH","resetPrefetchedVideocallAuth","setCurrentOrgName","checkDisabledRoutes","nextPath","CHECK_DISABLED_ROUTES","initStoreFromCookie","INIT_STORE_FROM_COOKIE","setConfirmationProps","setCurrentUserPreferences","requestSwitchOrg","REQUEST_SWITCH_ORG","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","cloneableTags","baseClone","isFlat","isFull","isFunc","subValue","defaultStateValue","innerValue","setInnerValue","postMergedValue","onChangeFn","setPrevValue","AbstractCalculator","Split","Editor","Renderer","VirtualRenderer","EditSession","implement","$createEditor","$editorCSS","$container","editor","$theme","_emit","$editors","setFontSize","$fontSize","setSplits","splits","$splits","getSplits","getEditor","getCurrentEditor","$cEditor","setTheme","setKeyboardHandler","keybinding","$cloneSession","getMode","undoManager","getUndoManager","setUndoManager","setTabSize","getTabSize","setUseSoftTabs","getUseSoftTabs","setOverwrite","getOverwrite","setBreakpoints","getBreakpoints","setUseWrapMode","getUseWrapMode","setUseWorker","getUseWorker","setWrapLimitRange","$wrapLimitRange","$foldData","$cloneFoldData","setSession","isUsed","getOrientation","$orientation","setOrientation","BESIDE","editorWidth","editorHeight","BELOW","argIndex","genSizeMapToken","_CloudUploadOutlined","CloudUploadOutlined","CLSThresholds","onCLS","sessionValue","sessionEntries","hadRecentInput","firstSessionEntry","lastSessionEntry","setRafState","voidElement","Action","ResultType","cond","parsedPath","hashIndex","matchRoutes","locationArg","allowPartial","flattenRoutes","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","decodePath","matchRouteBranch","matchRoutesImpl","parentsMeta","flattenRoute","relativePath","caseSensitive","computeScore","_route$path","exploded","explodeOptionalSegments","isOptional","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","pathnameBase","normalizePathname","compiledParams","regexpSource","paramName","compilePath","captureGroups","splatValue","getInvalidPathError","dest","normalizeSearch","normalizeHash","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useIsomorphicLayoutEffect","static","hookName","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","fromRouteId","useNavigateStable","dataRouterContext","locationPathname","routePathnamesJson","v7_relativeSplatPath","pathMatches","getPathContributingMatches","toArg","routePathnames","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","useNavigateUnstable","useRoutesImpl","dataRouterState","isStatic","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_dataRouterState","_future","v7_partialHydration","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","lazy","reduceRight","shouldRenderHydrateFallback","errorElement","defaultErrorElement","alreadyWarned$1","getChildren","RenderedRoute","routeContext","RenderErrorBoundary","revalidation","_renderMatches","encodeLocation","navigationType","Pop","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","useRouteError","internal","isRouteErrorResponse","preStyles","componentDidCatch","errorInfo","staticContext","_deepestRenderedBoundaryId","useRouteContext","thisRoute","Route","basenameProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","createSearchParams","__reactRouterVersion","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","locationSearch","defaultSearchParams","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","CompatRoute","CompatRouter","COMMENT","RULESET","DECLARATION","KEYFRAMES","LAYER","useStatus","getElement","_ref$motionEnter","_ref$motionAppear","_ref$motionLeave","motionLeave","motionLeaveImmediately","onLeavePrepare","asyncVisible","setAsyncVisible","_useSyncState","_useSyncState2","getStatus","setStyle","currentStatus","mountedRef","deadlineRef","getDomElement","updateMotionEndStatus","canEnd","currentActive","_useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","eventHandlers","_useStepQueue","newStep","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","nextEventHandlers","firstMountChangeRef","CollectionContext","Collection","onBatchResize","resizeIdRef","resizeInfosRef","onCollectionResize","currentId","UserFilledSvg","CameraOutlinedSvg","HomeFilledSvg","CameraFilledSvg","UserOutlinedSvg","LocationOutlinedSvg","LocationFilledSvg","DevicesOutlinedSvg","DeviceFilledSvg","PuzzleOutlinedSvg","PuzzleFilledSvg","SettingOutlinedSvg","SettingFilledSvg","AdminFilledSvg","QuestionMarkFilledSvg","DocumentOutlinedSvg","DocumentFilledSvg","FileOutlinedSvg","FileFilledSvg","AdminOutlinedSvg","UserGroupOutlineSvg","UserGroupFilledSvg","mergedOpenpathConfig","hasAppMarketplace","billingMode","seenReleaseNotesCount","seenMasterReleaseNotesCount","newReleaseNotesCount","releaseNotesJson","newMasterReleaseNotesCount","masterReleaseNotesJson","dashboardContainerRoute","selectedIcon","activityDashboardRoute","alarmDashboardRoute","entryDashboardRoute","hardwareDashboardRoute","mapsDashboardRoute","customDashboardsRoute","requiredFeatureCode","partnerDashboardRoute","partnerStoreRoute","partnerOrgTableRoute","partnerOrgCreateRoute","partnerOrgEditRoute","partnerOrgEditPackageRoute","partnerSubscriptionRenewalsTableRoute","partnerRequestsTableRoute","partnerAcusTableRoute","partnerAcusEditRoute","partnerThirdPartyDevicesRoute","partnerEntriesTableRoute","partnerBillingRoute","camerasRoute","cameraDetailsRoute","cameraDeeplinkRedirectRoute","usersTableRoute","usersImportRoute","accessGroupsRoute","rolesRoute","userSchedulesTableRoute","userSchedulesCreateRoute","userSchedulesEditRoute","userCustomFieldsTableRoute","userCustomFieldsCreateRoute","userCustomFieldsEditRoute","sitesTableRoute","sitesCreateRoute","sitesEditRoute","buildingsRoute","buildingsCreateRoute","buildingsEditRoute","zonesTableRoute","zonesCreateRoute","zonesEditDetailsRoute","zonesEditAntiPassbackRoute","entriesTableRoute","entryStatesTableRoute","ENTRY_STATES_MENU_ITEM_HIDDEN","entryStatesCreateRoute","entryStatesEditRoute","entrySchedulesTableRoute","entrySchedulesCreateRoute","entrySchedulesEditRoute","lockdownTableRoute","lockdownCreateRoute","lockdownEditRoute","lockdownEditConfigRoute","acusTableRoute","acusCreateRoute","acusEditRoute","acusPortsRoute","readersTableRoute","readersCreateRoute","readersEditRoute","allegionReadersTableRoute","thirdPartyReadersEditRoute","videoReadersRoute","videoIntercomReadersRoute","wirelessLocksTableRoute","wirelessLocksEditRoute","allegionWirelessLocksTableRoute","wirelessLockGatewaysTableRoute","deviceUpdateManagement","alarmReportRoute","userCredentialsManagementRoute","musterReportsRoute","occupancyReportRoute","scheduledReportsRoute","SCHEDULED_REPORTS_DISABLED","scheduledReportsCreateRoute","scheduledReportsEditRoute","presenceReportRoute","PRESENCE_HIDDEN","activityLogsRoute","activityInsightsRoute","SHOW_ACTIVITY_INSIGHTS_PAGE","entryActivityRoute","entryActivitySummaryRoute","userActivityRoute","userActivitySummaryRoute","visualActivityReportRoute","SHOW_VISUAL_ACTIVITY_REPORT","entryAccessAuditRoute","userAccessAuditRoute","portalAuditReportRoute","API_AUDIT_REPORT_HIDDEN","APP_MARKETPLACE_DISABLED","appMarketplaceRoute","myAppsTableRoute","integrationsRoute","INTEGRATIONS_MENU_ITEM_HIDDEN","integrationsIdentityProviderGsuite","integrationsIdentityProviderAzure","integrationsIdentityProviderOkta","integrationsIdentityProviderOnelogin","alarmConfigurationsRoute","subscriptionsTableRoute","subscriptionsCreateRoute","subscriptionsEditRoute","alertSettingsRoute","ALERTS_SETTINGS_MENU_ITEM_HIDDEN","mobileAppSettingsRoute","ADMINISTRATION_MENU_ITEM_HIDDEN","mobileAppBadgeUiRoute","badgeTemplatesTablePageRoute","intercomUserDirectoryRoute","accountPageRoute","licensesRoute","quickStartRoute","releaseNotesRoute","Badge","dot","admin","masterDashboardRoute","masterOrgTableRoute","masterOrgCreateRoute","masterOrgEditRoute","masterOrgEditPackageRoute","masterOrgEditFeatureFlagRoute","masterIdentitiesTableRoute","masterIdentitiesEditRoute","masterIdentitiesEditSecurityRoute","masterIdentitiesCreateRoute","masterRolesTableRoute","masterRolesEditRoute","masterRolesCreateRoute","masterAcusTableRoute","masterAcusEditRoute","masterEntriesTableRoute","masterThirdPartyDevicesRoute","masterAllegionFobsRoute","masterFeatureFlagsTableRoute","masterFeatureFlagsCreateRoute","masterFeatureFlagsEditRoute","masterPortalAuditReportRoute","masterAcuSoftwareReportRoute","masterReleaseNotesRoute","chatRoute","SparkIcon","SHOW_ALTA_SUPPORT_INTELLIGENCE_CHAT","requiredTermsRoute","errorMessageRoute","alarmEditRoute","isFormInstance","_init","handleCallbackErrors","onFinally","maybeHandlePromiseRejection","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","OpFormHiddenItemForDataSetting","useInternalLayoutEffect","firstMountRef","useLayoutUpdateEffect","firstMount","useFirstMountState","isFirst","MS_TO_NS","THREAD_ID_STRING","THREAD_NAME","OS_PLATFORM","OS_PLATFORM_VERSION","OS_ARCH","OS_BROWSER","OS_MODEL","OS_LOCALE","userAgentData","createProfilePayload","processed_profile","getTraceId","enrichedThreadProfile","isProcessedJSSelfProfile","EMPTY_STACK_ID","STACK_ID","stacks","thread_metadata","firstSample","timeOrigin","adjustForOriginChange","jsSample","stackId","elapsed_since_start_ns","stack_id","thread_id","stackTop","frameId","resourceId","convertJSSelfProfileToSampledFormat","transactionStartMs","transactionEndMs","runtime","os","build_number","model","manufacturer","architecture","is_emulator","applyDebugMetadata","active_thread_id","relative_start_ns","relative_end_ns","isAutomatedPageLoadSpan","addProfilesToEnvelope","profiles","findProfiledTransactionsFromEnvelope","getHighEntropyValues","platformVersion","fullVersionList","firstUa","brand","resource_paths","file","PROFILING_CONSTRUCTOR_FAILED","MAX_PROFILE_DURATION_MS","startJSSelfProfile","JSProfilerConstructor","maxSamples","sampleInterval","shouldProfileSpan","profilesSampleRate","createProfilingEvent","isValidProfile","PROFILE_MAP","getActiveProfilesCount","takeProfileFromGlobalCache","addProfileToGlobalCache","validateNum","WaveEffect","divRef","setWaveColor","setBorderRadius","setLeft","setTop","setWidth","setHeight","setEnabled","waveStyle","radius","syncPos","nodeStyle","borderLeftWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isSmallComponent","keyboardKey","getCode","eventOrKey","eventOrCode","Cancel","Help","Backspace","Tab","Clear","Enter","Shift","Control","Alt","Pause","CapsLock","Escape","Convert","NonConvert","ModeChange","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Print","Execute","PrintScreen","Insert","Delete","OS","ContextMenu","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","NumLock","ScrollLock","VolumeMute","VolumeDown","VolumeUp","Meta","AltGraph","Attn","CrSel","ExSel","EraseEof","Play","ZoomOut","Spacebar","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Tilde","GraveAccent","ExclamationPoint","AtSign","PoundSign","PercentSign","Caret","Ampersand","PlusSign","MinusSign","EqualsSign","DivisionSign","MultiplicationSign","Comma","Decimal","Colon","Semicolon","Pipe","BackSlash","QuestionMark","SingleQuote","DoubleQuote","LeftCurlyBrace","RightCurlyBrace","LeftParenthesis","RightParenthesis","LeftAngleBracket","RightAngleBracket","LeftSquareBracket","RightSquareBracket","localStorageKey","baseEl","handleSystemThemeChange","newColorScheme","initSystemThemeChangeListener","removeSystemThemeChangeListener","addDarkClass","removeDarkClass","addSystemClass","removeSystemClass","isSystemDarkMode","colorTheme","getColorThemeForProvider","uniqueMap","ArrayKeyMap","compositeKey","getCompositeKey","lastAccessBeat","accessBeat","getObjectID","objectIDMap","beat","cachedValue","genLayoutStyle","headerColor","colorBgLayout","colorBgHeader","colorBgBody","colorBgTrigger","DEPRECATED_TOKENS","isMasked","translateSingular","imageProps","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","AsyncValidationError","asyncMap","objArr","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","fieldValue","fullFields","deepMerge","getBattery","setOffsetValue","mouseMoveRef","mouseUpRef","_getPosition","touches","scrollXOffset","scrollYOffset","getPosition","rectX","rectY","onDragMove","onDragStop","baseProperty","basePropertyDeep","slideUpIn","slideUpOut","slideDownIn","slideDownOut","slideLeftIn","slideLeftOut","slideRightIn","slideRightOut","slideMotion","initSlideMotion","motionEaseOutQuint","motionEaseInQuint","hasIn","InnerLoadingIcon","iconClassName","mergedIconCls","getCollapsedWidth","getRealWidth","inverseColors","PresetStatusColorTypes","isPresetColor","isPresetStatusColor","genSize","genPickerCellInnerStyle","pickerCellCls","pickerCellInnerCls","cellHeight","cellHoverBg","cellActiveWithRangeBg","cellBgDisabled","genPanelStyle","pickerYearMonthCellWidth","pickerControlIconSize","cellWidth","pickerControlIconBorderWidth","textHeight","pickerCellPaddingVertical","withoutTimeCellHeight","pickerQuarterPanelContentHeight","timeColumnHeight","timeColumnWidth","timeCellHeight","pickerDatePanelPaddingHorizontal","pickerControlIconMargin","pickerPanelWidth","borderBlockWidth","borderInlineWidth","tableLayout","th","td","scrollbarWidth","scrollbarColor","initPickerPanelToken","pickerCellBorderGap","initPanelComponentToken","cellHoverWithRangeBg","lighten","cellRangeBorderColor","genPickerPadding","inputHeight","paddingHorizontal","genPickerStatusStyle","genPickerStyle","presetsWidth","presetsMaxWidth","pickerToken","otherArgs","useOriginId","reactId","innerId","setInnerId","nextId","seenIndex","useAction","showAction","hideAction","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","INVITE_NOT_SENT_YET","SENDING_INVITE_IN_PROGRESS","SENDING_INVITE_SUCCEEDED","SENDING_INVITE_FAILED","SENDING_INVITE_UNKNOWN_ERROR","INVITE_ACCEPTED","pluralForm","plurals","pluralize","isNullOrUndefined","SDK_VERSION","baseForOwn","isArrLike","ace_1","baseTimes","inherited","isArg","isBuff","isType","skipIndexes","Filler","onInnerResize","innerProps","outerStyle","refFunc","isScrollAtTop","isScrollAtBottom","isScrollAtLeft","isScrollAtRight","lockRef","lockTimeoutRef","scrollPingRef","isHorizontal","smoothOffset","originScroll","CacheMap","maps","parseNumber","SMOOTH_PTG","getPageXY","scrollOffset","scrollRange","onStartMove","onStopMove","spinSize","containerSize","propsThumbStyle","thumbStyle","dragging","setDragging","pageXY","setPageXY","startTop","setStartTop","isLTR","scrollbarRef","thumbRef","visibleTimeoutRef","delayHidden","enableScrollRange","enableOffsetRange","stateRef","onThumbMouseDown","onScrollbarTouchStart","scrollbarEle","thumbEle","enableScrollRangeRef","enableOffsetRangeRef","moveRafId","_stateRef$current","stateDragging","statePageY","stateStartTop","scale","newTop","tmpEnableScrollRange","tmpEnableOffsetRange","ptg","newScrollTop","scrollbarPrefixCls","MIN_SIZE","getSpinSize","EMPTY_DATA","ScrollStyle","overflowAnchor","RawList","_props$fullHeight","fullHeight","onVirtualScroll","extraRender","_useHeights","onItemAdd","updatedMark","setUpdatedMark","instanceRef","heightsRef","collectRafRef","cancelRaf","collectHeight","sync","doCollect","findDOMNode","_getComputedStyle","totalHeight","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","useVirtual","inVirtual","isRTL","componentRef","fillerInnerRef","setOffsetTop","setOffsetLeft","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_useDiffItem","onDiff","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","useDiffItem","_fillerInnerRef$curre","itemTop","_item","cacheHeight","currentItemBottom","fillerOffset","setSize","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","useOriginScroll","getVirtualScrollInfo","lastVirtualScrollInfoRef","triggerScroll","nextInfo","onScrollBar","newScrollOffset","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","onWheelDelta","offsetXY","fromHorizontal","_useFrameWheel","horizontalScroll","offsetRef","nextFrameRef","wheelValueRef","isMouseScrollRef","wheelDirectionRef","wheelDirectionCleanRef","deltaX","mergedDeltaX","mergedDeltaY","absX","absY","_virtualHandled","patchMultiple","onWheelY","onWheelX","useFrameWheel","_useFrameWheel2","onRawWheel","onFireFoxScroll","listRef","cleanUpEvents","touchedRef","touchXRef","touchYRef","intervalRef","onTouchMove","currentX","currentY","_isHorizontal","scrollHandled","onTouchEnd","_listRef$current","useMobileTouchMove","onMozMousePixelScroll","scrollingUpAtTop","scrollingDownAtBottom","componentEle","newOffsetLeft","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","_scrollTo","triggerFlash","syncState","setSyncState","targetAlign","originAlign","needCollectHeight","newTargetAlign","itemBottom","maxLen","leftHeight","_cacheHeight","lastTop","_arg$offset","useScrollTo","getScrollInfo","scrollTo","getSize","key2Index","bottomList","startKey","endKey","_heights$get","useGetSize","extraContent","listChildren","renderFunc","useChildren","componentStyle","containerProps","sizeInfo","verticalScrollBar","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","cssMapping","sourceMapping","consoleLogger","concreteLogger","deprecate","lvl","debugOnly","moduleName","baseLogger","numListeners","numTimesAdded","makeString","lastOfPathSeparatorRegExp","canNotTraverseDeeper","stackIndex","deepExtend","overwrite","regexEscape","_entityMap","looksLikeObjectPathRegExpCache","capacity","regExpMap","regExpQueue","getRegExp","regExpFromCache","regExpNew","deepFind","getCleanedCode","ResourceStore","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","addResource","addResources","deep","skipCopy","removeResourceBundle","hasResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","checkedLoadedFor","Translator","extractFromKey","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","appendNamespaceToCIMode","usedKey","exactUsedKey","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","shouldUseIntlApi","pluralSeparator","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","fk","fallbackLngs","getFallbackCodes","saveMissingTo","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsContextHandling","utils","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","optionsKeys","useOptionsReplaceForData","capitalize","LanguageUtil","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","cleanCode","isSupportedCode","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","two","few","many","PluralResolver","compatibilityJSON","PluralRules","createRules","addRule","getRule","needsPlural","pluralCategories","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","defaultData","getPathWithDefaults","Interpolator","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","regexpUnescape","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","matchedVar","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","doReduce","createCachedFormatter","Formatter","currency","datetime","relativetime","RelativeTimeFormat","iOpts","formatName","formatOptions","formatStr","optStr","trimmedKey","parseFormatStr","formatted","valOptions","formatParams","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","queueLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","removePending","loadedKeys","fcName","tried","prepareLoading","loadOne","initImmediate","partialBundledLanguages","transformOptions","I18n","inst","modules","isClone","isInitializing","defOpts","createClassOnDemand","lu","languageDetector","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","lngInLngs","setLngProps","setLng","fixedT","resultKey","setDefaultNamespace","lastLng","loadState","preResult","preloaded","newLngs","createInstance","cloneInstance","forkResourceStore","mergedOptions","configList","onAllNoticeRemoved","onNoticeClose","stackConfig","ctxCls","dictRef","latestNotice","setLatestNotice","hoverKeys","setHoverKeys","_useStack","_useStack2","_useStack2$","placementMotion","dataKey","_keys","_keys2","motionIndex","strKey","configClassName","configStyle","configClassNames","configStyles","dataIndex","stackStyle","transformX","_dictRef$current$strK","_dictRef$current$strK2","_dictRef$current$strK3","verticalOffset","_dictRef$current$keys","transformY","notice","hovering","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","REPLAY_SESSION_KEY","REPLAY_EVENT_NAME","UNABLE_TO_SEND_REPLAY","NETWORK_BODY_MAX_SIZE","CONSOLE_ARG_MAX_SIZE","REPLAY_MAX_EVENT_BUFFER_SIZE","_nullishCoalesce$1","_optionalChain$5","lastAccessLHS","NodeType$1","isShadowRoot","isNativeShadowDom","stringifyStylesheet","stringifyRule","importStringified","isCSSImportRule","statement","layerName","supportsText","mediaText","escapeImportStatement","isCSSStyleRule","selectorText","Mirror","idNodeMap","nodeMetaMap","getIds","oldNode","shouldMaskInput","maskInputOptions","maskInputValue","maskInputFn","ORIGINAL_ATTRIBUTE_NAME","getInputType","getInputValue","extractFileExtension","cachedImplementations$1","getImplementation$1","setTimeout$2","clearTimeout$2","tagNameRegex","IGNORED_NODE","genId","canvasService","canvasCtx","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","quote1","path1","quote2","path2","path3","filePath","maybeQuote","extractOrigin","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","attributeValue","getHref","transformAttribute","maskAttributeFn","collectCharacters","regEx","descriptorsStr","inParens","getAbsoluteSrcsetString","ignoreAttribute","needMaskingText","maskTextClass","maskTextSelector","unmaskTextClass","unmaskTextSelector","maskAllText","autocomplete","maskDistance","unmaskDistance","lowerIfExists","maybeAttr","serializeNodeWithId","skipChild","inlineStylesheet","maskTextFn","slimDOMOptions","inlineImages","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","keepIframeSrcFn","newlyAddedElement","preserveWhiteSpace","_serializedNode","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","DOCUMENT_TYPE_NODE","DocumentType","publicId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName","stylesheet","styleSheets","_cssText","forceMask","getImageData","originalGetImageData","pixel","is2DCanvasBlank","rr_dataURL","canvasDataURL","blankCanvas","oldValue","recordInlineImage","naturalWidth","naturalHeight","drawImage","currentSrc","rr_mediaState","rr_mediaCurrentTime","rr_scrollLeft","rr_scrollTop","rr_width","rr_height","isCustomElement","contentDocument","rr_src","customElements","isSVG","ownerSVGElement","isCustom","serializeElementNode","parentTagName","isStyle","isScript","isTextarea","previousSibling","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","serializeNode","headFavicon","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isElement$1","isShadow","iframeEl","fired","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","_optionalChain$4","throttle$1","clearTimeout$1","setTimeout$1","nowTimestamp","getWindowScroll","scrollingElement","_10","_11","_12","_13","_14","getWindowHeight","getWindowWidth","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","isSerializedStylesheet","hasShadowRoot","_18","StyleSheetMirror","styleIDMap","idStyleMap","getShadowHost","shadowHost","_19","_20","_21","DOCUMENT_FRAGMENT_NODE","inDom","rootShadowHost","getRootShadowHost","shadowHostInDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","_optionalChain$3","isNodeInLinkedList","DoubleLinkedList","addNode","__ln","removeNode","moveKey","MutationBuffer","texts","attributeMap","removes","mapRemoves","movedMap","addedSet","movedSet","droppedSet","processMutations","adds","addedIds","addList","getNextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","childSn","attachIframe","canvasManager","observeAttachShadow","attachLinkElement","isParentRemoved","isAncestorInSet","tailNode","_node","unhandledNode","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","isInputMasked","unattachedDoc","createHTMLDocument","pname","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","processedNodeManager","inOtherBuffer","targetId","isFrozen","addsSet","_isParentRemoved","_isAncestorInSet","unregisterErrorHandler","_optionalChain$2","mutationBuffers","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","__rrMutationObserver","angularZoneSymbol","__symbol__","onMutation","attributeOldValue","characterDataOldValue","initScrollObserver","scrollCb","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","initInputObserver","inputCb","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","lastInputValue","currentWindow","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","getIdAndStyleId","styleMirror","ownerNode","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","_15","_16","adoptStyleSheets","initObservers","_hooks","mutationObserver","recordDOM","mousemoveHandler","mousemoveCb","mousemove","callbackThreshold","mousemoveCallback","timeBaseline","wrappedCb","totalOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","mouseInteractionCb","mouseInteraction","disableMap","currentPointerType","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","PointerEvent","TouchStart","TouchEnd","initMouseInteractionObserver","scrollHandler","viewportResizeHandler","viewportResizeCb","lastH","lastW","initViewportResizeObserver","inputHandler","mediaInteractionHandler","mediaInteractionCb","muted","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","styleSheetRuleCb","CSSStyleSheet","argumentsList","deleteRule","replaceSync","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","styleDeclarationCb","ignoreCSSAttributes","CSSStyleDeclaration","_17","initStyleDeclarationObserver","collectFonts","fontCb","fontMap","originalFontFace","FontFace","descriptors","fontFace","fontSource","fonts","initFontObserver","selectionObserver","selectionCb","updateSelection","isCollapsed","startContainer","endContainer","initSelectionObserver","customElementObserver","customElementCb","initCustomElementObserver","pluginHandlers","plugin","plugins","_22","_23","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","_optionalChain$1","IframeManagerNoop","crossOriginIframeMirror","crossOriginIframeRootIdMap","addLoadListener","IframeManager","iframes","crossOriginIframeMap","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","IncrementalSnapshot","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","iframeMirror","ShadowDomManagerNoop","ShadowDomManager","patchAttachShadow","iframeElement","CanvasManagerNoop","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","ProcessedNodeManager","nodeMap","periodicallyClear","thisBuffer","_takeFullSnapshot","cleanFrame","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","inEmittingFrame","passEmitsToParent","tel","lastFullSnapshotEvent","NodeList","DOMTokenList","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","takeFullSnapshot","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","__RRWEB_EXCLUDE_IFRAME__","getMirror","nodeMirror","getCanvasManagerFn","_getCanvasManager","__RRWEB_EXCLUDE_SHADOW_DOM__","slimDOM","initialOffset","canvasMutationCb","CustomElement","PREFIX","_addBreadcrumb","_capture","_trace","_logger","infoTick","setConfig","captureExceptions","traceInternals","makeReplayLogger","ReplayEventTypeIncrementalSnapshot","timestampToMs","timestampToS","addBreadcrumbEvent","replay","triggerUserActivity","checkAndHandleExpiredSession","addUpdate","throttledAddEvent","INTERACTIVE_SELECTOR","getClosestInteractive","getClickTargetNode","getTargetNode","isEventWithTarget","IncrementalMutationSources","ClickDetector","slowClickConfig","_addBreadcrumbEvent","_lastMutation","_lastScroll","_clicks","_timeout","_threshold","_scollTimeout","scrollTimeout","_replay","_ignoreSelector","addListeners","cleanupWindowOpen","nowInSeconds","originalWindowOpen","_teardown","removeListeners","_checkClickTimeout","SLOW_CLICK_TAGS","ignoreElement","isClickBreadcrumb","newClick","clickBreadcrumb","clickCount","_scheduleCheckClicks","registerMutation","registerScroll","registerClick","_handleMultiClick","_getClicks","_checkClicks","timedOutClicks","mutationAfter","scrollAfter","_generateBreadcrumbs","hadScroll","hadMutation","isSlowClick","timeAfterClickMs","endReason","getCurrentRoute","createBreadcrumb","ATTRIBUTES_TO_RECORD","getAttributesToRecord","normalizedKey","getBaseDomBreadcrumb","ENTRY_TYPES","entryType","initiatorType","responseEnd","decodedBodySize","encodedBodySize","responseStatus","transferSize","getAbsoluteTime","paint","navigation","domComplete","domContentLoadedEventStart","domContentLoadedEventEnd","domInteractive","loadEventStart","loadEventEnd","redirectCount","webVitalHandler","replayPerformanceEntries","createPerformanceEntry","getLargestContentfulPaint","lastEntry","getWebVital","isLayoutShift","getCumulativeLayoutShift","layoutShifts","nodeIds","getFirstInputDelay","getInteractionToNextPaint","attributions","rating","EventBufferSizeExceededError","EventBufferArray","_totalSize","hasCheckout","hasEvents","addEvent","eventSize","eventsRet","getEarliestTimestamp","WorkerHandler","_worker","ensureReady","_ensureReadyPromise","_getAndIncrementId","EventBufferCompressionWorker","_earliestTimestamp","_sendEventToWorker","_finishRequest","EventBufferProxy","_fallback","_compression","_used","_ensureWorkerIsLoadedPromise","_ensureWorkerIsLoaded","ensureWorkerIsLoaded","_switchToCompressionWorker","addEventPromises","hasSessionStorage","isSampled","makeSession","lastActivity","segmentId","previousSessionId","saveSession","sessionSampleRate","allowBuffering","stickySession","getSessionSampleType","isExpired","initialTime","expiry","isSessionExpired","maxReplayDuration","sessionIdleExpire","shouldRefreshSession","loadOrCreateSession","sessionOptions","existingSession","sessionStringFromStorage","sessionObj","fetchSession","addEventSync","shouldAddEvent","_addEvent","eventBuffer","recordingMode","eventAfterPossibleCallback","isCustomEvent","maybeApplyCallback","beforeAddRecordingEvent","handleException","recordDroppedEvent","timestampInMs","timeouts","sessionIdlePause","initialTimestamp","isTransactionEvent","isFeedbackEvent","isBreadcrumbWithCategory","createPerformanceSpans","addNetworkBreadcrumb","_experiments","shouldFilterRequest","getBodySize","textEncoder","formDataStr","_serializeFormData","parseContentLengthHeader","getBodyString","mergeWarning","newMeta","existingWarnings","makeNetworkReplayBreadcrumb","buildSkippedNetworkRequestOrResponse","bodySize","buildNetworkRequestOrResponse","normalizedBody","exceedsSizeLimit","isProbablyJson","_strIsProbablyJson","truncatedBody","normalizeNetworkBody","getAllowedHeaders","allowedHeaders","filteredHeaders","urlMatches","urls","fullUrl","baseURI","fixedUrl","getFullUrl","_getFetchRequestArgBody","fetchArgs","getAllHeaders","allHeaders","getHeadersFromOptions","handleNetworkBreadcrumbs","networkDetailAllowUrls","networkDetailDenyUrls","networkCaptureBodies","networkRequestHeaders","networkResponseHeaders","_isXhrBreadcrumb","_isXhrHint","reqSize","resSize","_getBodySize","request_body_size","response_body_size","enrichXhrBreadcrumb","requestBodySize","responseBodySize","xhrInfo","getResponseHeaders","requestBody","requestWarning","responseBody","responseWarning","outerHTML","_parseXhrResponse","_getXhrResponseBody","_prepareXhrData","captureXhrBreadcrumbToReplay","_isFetchBreadcrumb","_isFetchHint","enrichFetchBreadcrumb","captureDetails","bodyStr","_getRequestInfo","bodyText","_tryCloneResponse","_getResponseText","_tryGetResponseText","_parseFetchResponseBody","getResponseData","_getResponseInfo","_prepareFetchData","captureFetchBreadcrumbToReplay","beforeAddNetworkBreadcrumb","createMemoryEntry","memoryEntry","jsHeapSizeLimit","totalJSHeapSize","usedJSHeapSize","memory","getHandleRecordingEmit","hadFirstEvent","_isCheckout","clickDetector","isIncrementalEvent","isIncrementalMouseInteraction","updateClickDetectorForRecordingEvent","setInitialState","shouldRecordCanvas","isRecordingCanvas","errorSampleRate","useCompressionOption","useCompression","blockAllMedia","networkDetailHasUrls","networkRequestHasHeaders","networkResponseHasHeaders","createOptionsEvent","addSettingsEvent","earliestEvent","TransportStatusCodeError","RateLimitError","rateLimits","sendReplay","replayData","recordingData","replayId","segment_id","eventContext","preparedRecordingData","payloadWithSequence","replayHeaders","sequence","prepareRecordingData","errorIds","traceIds","transport","getTransport","baseEvent","replay_start_timestamp","error_ids","trace_ids","replay_id","replay_type","replayEvent","eventHint","_integrations","preparedEvent","getSdkMetadata","prepareReplayEvent","createReplayEnvelope","sendReplayRequest","_retryCount","THROTTLED","ReplayContainer","recordingOptions","__init","__init2","__init3","__init4","__init5","__init6","performanceEntries","_lastActivity","_isPaused","_requiresManualStart","_hasInitializedCoreListeners","initialUrl","_recordingOptions","_debouncedFlush","callbackReturnValue","timerId","maxTimerId","maxWait","invokeFunc","cancelTimers","debounced","flushMinDelay","flushMaxDelay","_throttledAddEvent","durationSeconds","counter","isThrottled","_cleanup","wasThrottled","slowClickTimeout","slowClickIgnoreSelectors","experiments","_canvas","initializeSampling","requiresManualStart","_initializeSessionForSampling","_initializeRecording","_updateUserActivity","startBuffering","startRecording","canvasOptions","_stopRecording","continuousCheckout","_onMutationHandler","stopRecording","forceFlush","_removeListeners","deleteSession","_checkSession","sendBufferedReplayOrFlush","continueRecording","flushImmediate","activityTime","hasStoppedRecording","_updateSessionActivity","_maybeSaveSession","cbResult","updateUserActivity","conditionalFlush","cancelFlush","getSessionId","_clearContext","lastActiveSpan","lastRootSpan","workerUrl","customWorkerUrl","__SENTRY_EXCLUDE_REPLAY_WORKER__","_loadWorker","createEventBuffer","_addListeners","currentSession","_refreshSession","_handleVisibilityChange","_handleWindowBlur","_handleWindowFocus","_handleKeyboardEvent","isClick","getDomTarget","handleDom","handleDomListener","handleHistory","handleHistorySpanListener","isTruncated","normalizedArgs","normalizedArg","normalizeConsoleBreadcrumb","normalizeBreadcrumb","beforeAddBreadcrumb","handleBreadcrumbs","isReplayEvent","feedback","feedbackId","addFeedbackBreadcrumb","isRrwebError","isErrorEventSampled","shouldSampleForBufferEvent","handleGlobalEventListener","exceptionValue","handleHydrationError","handleBeforeSendEvent","sendResponse","replayContext","handleTransactionEvent","beforeErrorSampling","handleErrorEvent","handleAfterSendEvent","feedbackEvent","includeReplay","addGlobalListeners","_performanceCleanupCallback","addPerformanceEntry","onEntries","clearCallbacks","clearCallback","setupPerformanceObserver","_doChangeToForegroundTasks","_doChangeToBackgroundTasks","isInputElement","hasModifierKey","getKeyboardBreadcrumb","handleKeyboardEvent","_createCustomBreadcrumb","_addPerformanceEntries","_updateInitialTimestampFromEventBuffer","_popEventContext","_runFlush","addMemoryEntry","dropReason","tooShort","minReplayDuration","tooLong","_flushInProgress","_flushLock","mutationLimit","overMutationLimit","mutationBreadcrumbLimit","getOption","selectors","defaultSelectors","MEDIA_SELECTORS","DEFAULT_NETWORK_HEADERS","_initialized","Replay","__initStatic","MAX_REPLAY_DURATION","maskAttributes","unmask","unblock","maskFn","privacyOptions","getPrivacyOptions","maskAttribute","_initialOptions","_getMergedNetworkHeaders","_isInitialized","_setup","_initialize","getReplayId","_maybeLoadFromReplayCanvasIntegration","initialOptions","replaysSessionSampleRate","replaysOnErrorSampleRate","loadReplayOptionsFromClient","canvasIntegration","getIntegrationByName","inputToRGB","rgb","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","cssWithMappingToString","needLayer","dedupe","supports","alreadyImportedModules","_k","RefResizeObserver","_SettingOutlined","SettingOutlined","docX","docY","posX","posY","moveHandler","SUB_ORG_SCOPES","SUB_ORG_FEATURE_CODES","getActiveIdentityScopes","currentOrgTokenScope","parentOrgScopes","parentOrgTokenScope","packagePlans","packagePlan","package","packageFeatures","packageFeature","getParentSubOrgScopes","subOrgsScopes","getAnySubOrgScopes","orgScopes","identityScopes","validateScopes","rawAllowedScopes","injectOrgIdIntoOrgScopes","injectIdentityIdIntoScopes","requiredScope","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","transactionNamingScheme","addRequestDataOptions","integrationOptions","requestOptions","requestIncludeKeys","addReqDataUserOpt","userIncludeKeys","convertReqDataIntegrationOptsToAddReqDataOpts","payloads","_require","packagedModule","normalizeModule","packaged","defineProp","subjectString","kValue","relativeStart","relativeEnd","final","deepCopy","stringReverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","deferredCall","fcn","delayedCall","defaultTimeout","_self","supportsLookbehind","skipEmptyMatch","supportsUnicodeFlag","codePointAt","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","appName","isWin","isIE","isOldIE","isGecko","isMozilla","isOpera","isWebKit","isChrome","isSafari","isEdge","isAIR","isAndroid","isChromeOS","isIOS","strictCSP","useragent","buildDom","els","getDocumentHead","createElementNS","removeChildren","createFragment","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","hasCssString","removeElementById","cssCache","insertPendingStyles","useStrictCSP","importCssStylsheet","noScrollbar","withScrollbar","computedStyle","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","tx","ty","loadScript","onload","isAbort","qualifyURL","superCtor","super_","mixin","propagationStopped","_dispatchEvent","_eventRegistry","_defaultHandlers","defaultHandler","_signal","newCallback","setDefaultHandler","_disabled_","removeDefaultHandler","capturing","reportError","defaultEnglishMessages","nlsPlaceholders","optionsProvider","optList","setOption","optionNames","$options","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","resetOptions","setDefaultValue","setDefaultValues","optionHash","setMessages","placeholders","nls","defaultString","dollarMatch","curlyBracketMatch","net","customLoader","modePath","themePath","basePath","$moduleUrls","loadWorkerFromBlob","sharedPopups","$modes","moduleUrl","subst","setLoader","dynamicModules","$loading","$loaded","loadModule","moduleId","onLoad","loadedModule","moduleType","afterLoad","reportErrorIfPathIsNotConfigured","$require","setModuleLoader","scriptOptions","scriptUrl","_currentScript","currentDocument","scripts","m1","endColumn","compareRange","cmp","comparePoint","containsRange","intersects","isStart","setStart","setEnd","inside","insideStart","insideEnd","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","codeToKeyCode","Command","Return","Backquote","Minus","Equal","BracketLeft","Backslash","BracketRight","Quote","Period","Slash","NumpadAdd","NumpadDecimal","NumpadSubtract","NumpadDivide","NumpadMultiply","chr","$codeToKeyCode","enter","esc","mods","keyCodeToString","keyString","activeListenerOptions","pressedKeys","getListenerOptions","createComment","detectListenerOptionsSupport","EventListener","destroyer","$toDestroy","getModifierHash","resetPressedKeys","stopEvent","getButton","releaseCaptureHandler","addMouseWheelListener","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","callbackName","startX","startY","clicks","onMousedown","isNewClick","getModifierString","addCommandKeyListener","lastDefaultPrevented","getModifierState","altGr","normalizeCommandKeys","postMessageId","messageName","$idleBlocked","onIdle","$idleBlockId","blockIdle","nextFrame","$cancelT","lineMode","pasteCancelled","TextInput","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","pasted","sendingText","tempStyle","commandMode","ignoreFocusEvents","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","rowEnd","numberOfExtraLines","setNumberOfExtraLines","setAriaLabel","$textInputAriaLabel","setAriaOptions","activeDescendant","setLabel","hasFocus","resetSelection","$focusScroll","enableKeyboardAccessibility","isTransformed","curOp","commandName","isUserAction","docChanged","selectionChanged","positionToSelection","afterContextMenu","lines","prevLine","nextLine","setInputHandler","getInputHandler","sendText","fromInput","onPaste","extendLeft","extendRight","inserted","restoreStart","restoreEnd","shouldReset","onTextInput","onCompositionUpdate","inputType","handleClipboardData","forceIEMime","getData","doCopy","isCut","getCopyText","onCut","onCommandKey","isAllSelected","$readOnly","cancelComposition","useTextareaForIME","markerRange","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","getSelectionRange","msGetInputContext","getInputContext","setCommandMode","setReadOnly","setCopyWithEmptySelection","onContextMenu","moveToMouse","bringToFront","characterWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","home","down","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","extendSelectionBy","inSelection","getDocumentPosition","mousedownEvent","moveToPosition","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","unitName","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","prevScroll","canScroll","isScrollableBy","speed","scrollBy","selectEnd","selectAllEnd","selectByWordsEnd","preventParentScroll","CLASSNAME","$element","$parentNode","$init","setText","setHtml","setPosition","setClassName","hide","popupManager","PopupManager","popups","addPopup","updatePopups","removePopup","e_1","e_2","visiblepopups","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","lastT","idleTime","lastEvent","onMouseOut","waitForHover","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","labelHeight","labelWidth","spaceBelow","isAbove","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","GUTTER_TOOLTIP_LEFT_OFFSET","GUTTER_TOOLTIP_TOP_OFFSET","GutterHandler","tooltipTimeout","$gutterLayer","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","$tooltipFollowsMouse","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","$gutter","isHover","visibleTooltipRow","singular","security","annotationsInRow","$annotations","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationTypeInFold","annotationsInFold","severityRank","annotationType","summaryFoldedAnnotations","annotationsToSummaryString","annotationMessages","$useSvgGutterIcons","lineElement","iconElement","annotationLabels","tooltipElement","annotationTypes_1","annotationTypes_1_1","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","draggable","dataTransfer","effectAllowed","getReadOnly","setDragImage","getTextRange","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","copyAllowed","copyModifierState","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","animationSteps","vX","vY","showContextMenu","canExecuteCommand","canExecute","hasUndo","replaceChild","readText","writeText","ontouchstart","ontouchend","pagePos","leftOffset","hideContextMenu","handleLongTap","selectWord","touchObj","setRange","switchToSelectionMode","cursorPos","getPixelPosition","anchorPos","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","$dragDelay","$mouseMoved","focusEditor","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$scrollSpeed","mouseMoveHandler","releaseMouse","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$data","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","handleKeyboard","attach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","_array","_getCharClass","wType","nType","cType","rtlCandidate","_getCharacterType","uc","EN","ON_R","AN","R_H","RLE","DOT","doBidiReorder","textCharTypes","logicalFromVisual","bidiLevels","charTypes","impTab","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","EOF","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","prevIndex","endOfLine","$useWrapMode","$wrapData","isFullWidth","getScreenTabSize","$main","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getCursorPosition","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","leftBoundary","logicalIdx","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelectedPrev","visIdx","offsetToCol","charWidth","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","isTabStop","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","lineWidgets","widget","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","r1","fromJSON","rangeList","toSingleRange","MAX_TOKEN_COUNT","Tokenizer","splitRegex","regExps","matchMappings","ruleRegExps","matchTotal","mapping","splitterRurles","caseInsensitive","unicode","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","createSplitterRegexp","$setMaxTokenCount","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","matchAttempts","skipped","consumeLineEnd","addRules","embedRules","escapeRules","$embeds","getEmbeds","pushState","popState","normalizeRules","processState","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","tokenIndex","getCurrentTokenPosition","getCurrentTokenRange","CstyleBehaviour","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","getWrapBehavioursEnabled","recordAutoInsert","isSaneInsertion","braces","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","next_indent","getTabString","quotes","$mode","$quotes","leftChar","rightChar","rightToken","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","currentToken","nextToken","cursorPosInToken","closeDocPos","openDocPos","$matchTokenType","iterator2","bracket","wordChars","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","uncomment","shouldInsertSpace","commentWithSpace","insertInLine","testRemove","spaces","lineCommentEnd","regexpEnd","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","endRange","createModeDelegates","delegations","_loop_1","functionName","this_1","$delegator","transformAction","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","LineWidgets","widgetManager","getRowLength","$getWidgetScreenLength","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","screenRows","_inDocument","removed","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","screenWidth","coverLine","getRowLineCount","lineWidgetWidth","gutterWidth","fullWidth","scrollBar","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","textOrLines","insertMergedLines","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","startLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","SearchHighlight","clazz","setRegexp","docLen","markerLayer","renderedMarkerRanges","_search","$search","mtSearch","$isMultilineSearch","getLastSearchOptions","$multiLineForward","end_row","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","UndoManager","$keepRedoStack","$maxRev","$fromUndo","$undoDepth","addSession","allowMerge","$lastDelta","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","addSelection","rev","startNewGroup","markIgnored","getRevision","getDeltas","getChangedRanges","getChangedLines","undo","dontSelect","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","undoChanges","$syncRev","redo","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","redoChanges","nextDelta","canUndo","canRedo","bookmark","isAtBookmark","$prettyPrint","stringifyDelta","hasRedo","isClean","markClean","stringifyRange","d1","d2","i1","i2","ds1","ds2","selectionBefore","selectionAfter","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","lastEnd","isNewRow","getNextFoldTo","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","substractPoint","containsPoint","rangeAtPoint","clipped","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","getFoldsInRange","foldLines","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","added","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","fd","toggleFold","tryToUnfold","bracketPos","initState","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","closingBracket","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","prevOp","$uid","bgTokenizer","onChangeFold","$onSelectionChange","onSelectionChange","destroyed","$initOperationListeners","$lastSel","$operationResetTimer","commandEvent","currentSelection","resetCaches","$resetRowCache","cacheArray","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","editSession","breakpoints","setScrollLeft","setScrollTop","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","$searchHighlight","highlightLines","getAnnotations","inToken","wordRange","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","lineWidgetsWidth","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","$getUndoSelection","setUndoSelect","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","useWrapMode","adjustWrapLimit","desiredLimit","$printMargin","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","foldStartRow","wrapRow","screenRowOffset","getScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","getPrecedingCharacter","$wrap","firstLineNumber","useSoftTabs","$matchIterator","sr","sc","er","ec","skipCurrent","needle","$assembleRegExp","$isMultiLine","prevRange","parseReplaceString","replaceString","chCode","nextChCode_1","preserveCase","$disableFakeMultiline","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","chunkEnd","beforeMatch","matchedText","$multiLineBackward","endMargin","multiLineBackwardMatch","mtForward","mtBackward","backwards","forEachInLine","newMatch","targetIndex","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","cmdGroup","keyPart","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","trimMacro","mac","showSettingsMenu","showErrorMarker","centerSelection","gotoLine","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","passEvent","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","insertLine","curLine","newRanges","exitMultiSelectMode","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","getContainerElement","getTextAreaContainer","keyBinding","$historyTracker","_$emitInputEvent","onStartOperation","previousCommand","onEndOperation","scrollSelectionIntoView","animateScrolling","$mergeUndoDeltas","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onStartOperation","$onEndOperation","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","oldEditor","getSession","getFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","updateText","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","prevLineState","currIndent","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","showPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","fp","decimals","nnr","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","wordPairs","$toggleWordPairs","firstCondition","findLinkAt","columnPosition","previousPosition","currentPosition","wordParts_1","wordParts_1_1","sel","endPoint","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","animate","alignCursor","getCursorPositionScreen","tokenCount","matchType","bracketType","brackets","tagsRanges","navigateTo","replaced","$tryReplace","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","searchBox","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","$composition","placeholderNode","$placeholder","blurCommand","focusOnEnterKeyup","textInputAriaLabel","enableMobileMenu","$enableMobileMenu","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","displayAnnoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","decorations","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","borderRightWidth","Marker","setPadding","setMarkers","markers","elt","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","textTokens","isTextToken","tokenType","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","$fontMetrics","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","blinkInterval","smoothBlinking","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","skipEvent","coeff","VScrollBar","$scrollbarWidth","$minWidth","setScrollHeight","setInnerHeight","HScrollBar","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","RenderLoop","onRender","changes","$recursionLimit","CHAR_COUNT","USE_OBSERVER","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","font","$measureSizes","boldSize","charSizes","allowBoldFonts","$observer","setPolling","$getZoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","solve","l1","l2","det","m2","Decorator","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","dark","light","$updateDecorators","clearRect","priorities","compensateFold","compensateFoldRows","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$renderChanges","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","posLeft","setScrollMargin","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","_rows","$viewMargin","newLeft","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","alignment","$calcSteps","fromValue","toValue","x_min","STEPS","initialScroll","oldSteps","$timer","endAnimation","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textChunks","$calculateWrappedTextChunks","$ghostText","widgetDiv","lastLineDiv","hiddenTokens","hideTokensAfterPosition","chunkDiv","chunkSpan","$ghostTextWidget","pixelPosition","ghostTextHeight","textLines","displayTokens","wrapSplits","textSlice","hasPassedCursor","$themeId","setMouseCursor","attachToShadowRoot","$resizeObserver","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","webkitURL","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","callbackId","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","$normalizePath","tlns","deltaQueue","$doc","UIWorkerClient","emitSync","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undoStackDepth","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","ctrl","accel","selectionMode","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","additive","screenLead","toRemove","tmp_1","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","indentationBlock","oldWidget","gutterAnno","binarySearch","findAnnotations","annoTextLine","onmousedown","createEditSession","calcThumbStyle","toPX","MotionThumb","getValueIndex","onMotionStart","onMotionEnd","_props$vertical","findValueElement","prevStyle","setPrevStyle","nextStyle","setNextStyle","calcPrevStyle","calcNextStyle","thumbStart","_prevStyle$top","thumbActive","_nextStyle$top","motionProps","InternalSegmentedOption","_segmentedOptions$","_classNames2","_props$options","_props$className","_props$motionName","segmentedOptions","validTitle","_option$label","getValidTitle","normalizeOptions","thumbShow","setThumbShow","segmentedOption","getItemDisabledStyle","getItemSelectedStyle","segmentedTextEllipsisCss","genSegmentedStyle","trackPadding","labelHeightLG","labelHeightSM","trackBg","justifyItems","segmentedPaddingHorizontal","segmentedPaddingHorizontalSM","willChange","segmentedToken","InternalSegmented","extendedOptions","isSegmentedLabeledOptionWithIcon","restOption","genPlaceholderStyle","genInputLargeStyle","genInputSmallStyle","genBasicInputStyle","inputFontSize","genInputGroupStyle","borderSpacing","genInputStyle","colorSmallPadding","genAllowClearStyle","genAffixStyle","affixCls","affixClsDisabled","genGroupStyle","genSearchInputStyle","searchPrefixCls","borderInlineStartColor","genTextAreaStyle","textareaPrefixCls","genRangeStyle","_immutable2","_getStateName2","reducerNames","unexpectedStatePropertyNames","toSeq","keySeq","keepEmpty","measureScrollbarSize","randomId","measureEle","fallbackWidth","fallbackHeight","targetStyle","webkitScrollbarStyle","widthStyle","heightStyle","getScrollBarSize","getTargetScrollBarSize","_ExtractStyleFns","genHoverStyle","activeShadow","activeBg","affixColor","extraStyles","errorActiveShadow","colorWarningBorderHover","warningActiveShadow","genOutlinedGroupStatusStyle","addonBorderColor","addonColor","genOutlinedGroupStyle","addonBg","colorErrorText","colorWarningText","inputColor","genFilledGroupStatusStyle","genFilledGroupStyle","ManagerReferenceNodeContext","auto","basePlacements","viewport","popper","variationPlacements","modifierPhases","getNodeName","isHTMLElement","phase","initialStyles","requires","getBasePlacement","getUAString","uaData","brands","isLayoutViewport","includeScale","isFixedStrategy","visualViewport","addVisualOffsets","getLayoutRect","rootNode","isSameNode","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","getOffsetParent","isFirefox","contain","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","dpr","roundOffsetsByDPR","getOppositePlacement","getOppositeVariationPlacement","getWindowScrollBarX","isScrollParent","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","computeOffsets","basePlacement","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","axis","getSideOffsets","preventedOffsets","isAnySideFullyClipped","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","visited","requiresIfExists","depModifier","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","_ref$options","cleanupFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","NOOP","NOOP_PROMISE","Popper","_ref$placement","_ref$strategy","_ref$modifiers","referenceElement","referenceNode","popperElement","setPopperElement","setArrowElement","_usePopper","optionsWithDefaults","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","createPopper","usePopper","childrenProps","arrowProps","toIteratee","positionsMapping","placementMapping","ReferenceProxy","createReferenceProxy","PopupContent","PopupHeader","_Component","zIndexWasSynced","getPortalProps","portalProps","hoverable","normalizedOn","closeOnPortalMouseLeave","openOnTriggerClick","closeOnTriggerClick","openOnTriggerMouseEnter","closeOnTriggerMouseLeave","closeOnDocumentClick","openOnTriggerFocus","closeOnTriggerBlur","hideOnScroll","handleOpen","handlePortalMount","handlePortalUnmount","positionUpdate","renderContent","popperPlacement","popperRef","popperStyle","flowing","wide","contentRestProps","innerElement","unhandledProps","portalRestProps","popperDependencies","handleUpdate","eventsEnabled","pinned","popperModifiers","positionFixed","_popper$style","definedZIndex","mergedPortalProps","onMount","onOpen","onUnmount","Header","selectApp","selectIsLoginComplete","selectCurrentOrgName","selectCurrentIdentityInfo","identityLanguage","localStorageLanguage","browserLanguage","selectIdentityEmail","selectRefreshRequired","selectMaintenanceMode","selectDisabledRoutes","selectAlertStack","selectCurrentIdentityId","selectInviteToken","selectErrorPageMessage","selectErrorPageCallToAction","selectOrgIsLicenseBased","selectConfirmationProps","selectIntercomNotificationsAreEnabled","app","selectPrefetchedVideocallAuthForDevices","NATIVE_WEAK_MAP","createNonEnumerableProperty","OBJECT_ALREADY_INITIALIZED","facade","STATE","getterFor","InternalCheckbox","skipGroup","checkboxGroup","checkboxRef","registerValue","cancelValue","toggleOption","checkboxClass","registeredValues","setRegisteredValues","memoOptions","childrenNode","optionIndex","prevValues","__ANT_CHECKBOX","ONE_SECOND_IN_MS","dateTimestampInSeconds","timestampInSeconds","approxStartingTimeOrigin","createUnixTimestampInSecondsFunc","_browserPerformanceTimeOriginMode","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","REACT_RENDER_OP","REACT_UPDATE_OP","REACT_MOUNT_OP","monthsShortWithDots","monthsShortWithoutDots","toposort","edges","sorted","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","predecessors","nodeRep","outgoing","uniqueNodes","ScopeClass","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","newScope","_level","_session","_transactionName","_fingerprint","_requestSession","_lastEventId","setClient","setLastEventId","addScopeListener","_notifyScopeListeners","getUser","setTags","setExtras","setLevel","setTransactionName","scopeToMerge","scopeInstance","Scope","addBreadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","getLastBreadcrumb","clearBreadcrumbs","addAttachment","clearAttachments","setSDKProcessingMetadata","setPropagationContext","eventId","MAX_VERTICAL_CONTENT_RADIUS","getArrowOffsetToken","isInject","getArrowStyle","colorBg","arrowDistance","arrowPlacement","_UndoOutlined","UndoOutlined","baseFindIndex","baseIsNaN","strictIndexOf","GRANULAR_PERMISSIONS_FEATURE_ID","zoomIn","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","zoomUpOut","zoomLeftIn","zoomLeftOut","zoomRightIn","zoomRightOut","zoomDownIn","zoomDownOut","zoomMotion","initZoomMotion","getMetricsAggregatorForClient","Aggregator","globalMetricsAggregators","aggregator","newAggregator","addToMetricsAggregator","metricTags","distribution","ensureNumber","metrics","increment","gauge","ADD","REMOVE","COUNT","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","overlayNode","_children$props","_props$arrow","_props$placements","triggerVisible","setTriggerVisible","overlayRef","handleVisibleChange","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$f","focusMenu","_overlayRef$current","handleKeyDown","focusResult","openClassName","minOverlayWidthMatchTrigger","alignPoint","getMenuElement","triggerHideAction","onPopupClick","onOverlayClick","sampleSpan","samplingContext","tracesSampler","tracesSampleRate","parsedSampleRate","isBrowserClient","retId","V8_VERSION","baseColor","getSolidColor","brightness","bgBaseColor","textBaseColor","colorTextBase","colorBgSpotlight","defaultSeed","defaultAlgorithm","darkAlgorithm","mapToken","mergedMapToken","genColorMapToken","compactAlgorithm","compactSizeStep","genFontMapToken","genControlHeight","getDesignToken","seed","_internalContext","getOrgsWithPortalScopesForCurrentUser","orgsWithPortalScopes","getIsFullSupportAccessRequiredIdentityScope","identityScope","scopeWithContext","fsa","activeScope","mmScopePrefix","checkHasGeneralOrgSwitcherAccess","hasOrgWithSubOrgs","checkIfAnyOrgHasSubOrgs","orgsWithScopes","checkIsParentOrg","draggingDelete","cancelKeepAlign","forceAlign","controlSize","marginFull","marginPart","handleColorDisabled","handleSize","handleSizeHover","handleActiveColor","handleActiveOutlineColor","handleLineWidth","handleLineWidthHover","railBg","railHoverBg","trackHoverBg","dotActiveBorderColor","dotBorderColor","trackBgDisabled","genDirectionStyle","railSize","railPadding","full","handlePos","markInset","handlePosSize","draggableBorderSize","draggableBorder","genHorizontalStyle","marginPartWithMark","genVerticalStyle","sliderToken","controlSizeHover","increaseHandleWidth","toHexShortString","useRafLock","tooltipPrefixCls","legacyTooltipPrefixCls","tipFormatter","legacyTipFormatter","tooltipVisible","legacyTooltipVisible","getTooltipPopupContainer","legacyGetTooltipPopupContainer","tooltipPlacement","legacyTooltipPlacement","handleRender","contextHandleRender","internalContextDirection","hoverOpen","setHoverOpen","focusOpen","setFocusOpen","tooltipOpen","customizeTooltipPrefixCls","lockOpen","activeOpen","mergedTipFormatter","getTipFormatter","getTooltipPlacement","vert","useActiveTooltipHandle","nodeProps","proxyEvent","triggerRestPropsEvent","activeHandleRender","nextValues","getDescriptor","PROPER","CONFIGURABLE","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","_classNames","loadingIcon","checkedChildren","unCheckedChildren","innerChecked","setInnerChecked","newChecked","mergedChecked","switchClassName","genSwitchSmallStyle","trackHeightSM","trackMinWidthSM","innerMinMarginSM","innerMaxMarginSM","handleSizeSM","switchInnerCls","trackPaddingCalc","innerMaxMarginCalc","switchLoadingIconSize","genSwitchLoadingStyle","switchLoadingIconColor","switchColor","genSwitchHandleStyle","handleShadow","switchHandleCls","switchDuration","switchHandleActiveInset","genSwitchInnerStyle","trackHeight","innerMinMargin","innerMaxMargin","genSwitchStyle","trackMinWidth","switchDisabledOpacity","switchToken","heightSM","InternalSwitch","checkedProp","defaultCheckedProp","setChecked","__ANT_SWITCH","errorToString","regExpToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","printNumber","printValue","_Symbol$toStringTag","_Symbol$hasInstance","_Symbol$toStringTag2","strReg","ValidationErrorNoStack","errorOrErrors","innerErrors","hasInstance","formatError","originalPath","disableStack","errorNoStack","mixed","defined","notNull","notOneOf","notType","originalValue","castMsg","datetime_precision","datetime_offset","lessThan","moreThan","isValue","tuple","typeLen","__isYupSchema__","Condition","fromOptions","_branch","builder","Reference","isContext","isSibling","__isYupRef","isAbsent","createValidation","panic","skipAbsent","disableStackTrace","createError","nextParams","handleResult","validOrError","lastPartDebug","isTuple","innerType","ReferenceSet","resolveAll","removeItems","Schema","tests","transforms","conditions","_mutate","internalTests","_whitelist","_blacklist","exclusiveTests","_typeCheck","withMutation","recursive","nonNullable","combined","mergedSpec","prevSchema","resolveOptions","_options$strict","_options$abortEarly","_options$recursive","_options$disableStack","resolvedSchema","allowOptionality","_cast","formattedResult","_validate","initialTests","runTests","initialErrors","runOptions","panicOnce","nextOnce","nestedErrors","asNestedTest","originalParent","testOptions","_options$disableStack2","validateSync","_options$disableStack3","isValidSync","_getDefault","nullability","optionality","notRequired","isExclusive","exclusive","enums","whiteList","create$7","BooleanSchema","_raw","isTrue","isFalse","isoReg","parseDateStruct","_regexResult$7$length","_regexResult$","regexResult","millisecond","plusMinus","hourOffset","minuteOffset","rEmail","rUrl","rUUID","rIsoDateTime","isTrimmed","objStringTag","create$6","StringSchema","strValue","excludeEmptyString","allowOffset","struct","ensure","create$5","NumberSchema","isNaN$1","more","_method","avail","create$4","DateSchema","totalMinutesOffset","UTC","parseIsoDate","INVALID_DATE","prepareParam","ii","_err$path","sortByKeyOrder","parseJson","deepPartial","fieldSchema","nextArray","known","defaultSort","create$3","ObjectSchema","_sortErrors","_nodes","_excludedEdges","_options$stripUnknown","intermediateValue","innerOptions","__validating","isChanged","fieldSpec","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","excludedEdges","excludes","depPath","sortFields","additions","pick","picked","fromGetter","deepHas","unknownKeys","noAllow","transformKeys","camelCase","snakeCase","constantCase","_innerOptions2","create$2","ArraySchema","_opts","castArray","castElement","arrayErrors","_options$originalValu2","_options$originalValu","innerTypeErrors","rejector","catchValidationError","validateAt","validateSyncAt","selectPage","selectGroups","selectOrg","selectBillableFeatures","selectIdentityProviders","selectPackagePlans","selectFilteredPackagePlans","selectCurrentParentPackagePlan","plan","selectCurrentNetsuiteParentPackagePlan","selectPackageEnabledById","selectPackages","foundPackageIndex","pkg","updateIn","selectNetsuitePlanIntervals","currentPackage","netsuitePlan","selectNetsuitePlanLengths","selectOptionsForCurrenciesMultiSelect","selectEntries","orgGroups","orgSites","site","selectZones","selectZone","selectZoneEntries","selectOptionsForZoneEntriesMultiSelect","zoneEntries","zoneEntry","orgZones","selectOptionsForGroupsMultiSelect","Groups","selectEntryStates","selectTriggerMethods","enabledCodes","selectAcus","selectWirelessLockProviderIdForAllegion","selectOrgContainerReducer","wirelessLockProviders","providerObject","selectIsUserAnAllegionOperator","allegionOperatorsReducer","identityEmail","selectScopesFlat","selectScopeResources","processedCodes","newScopes","groupingCode","og","selectActivity","selectCredentialTypes","orgCredentialTypes","enabledCredentialTypes","credentialType","selectCardFormats","selectSharedUsers","selectAcuPorts","selectRequestTypes","selectProtonStatuses","selectNamespaces","reducerName","selectData","selectFilteredCount","selectTotalCount","selectOrgContainerReducerItem","itemPath","returnJs","defaultDataMapperOld","selectOptionsOld","dataMapper","idp","tooltipContent","selectEntryOptions","opvideoDeviceFragments","fragmentUnixTimestamp","fragmentLengthSec","lastClip","selectZoneOptions","selectSiteOptions","acus","acu","selectAcuGenericInputPortOptions","acuPorts","acuPort","selectVideoReaderOptions","opvideoDevices","opvideoDevice","selectVideoIntercomReaderOptionsForIntercomEvents","opvideoIntercomOpal","selectVideoIntercomReaderOptionsForNonIntercomEvents","opvideoDeviceOpal","selectAcuContactSensorPortOptions","selectAcuRexPortOptions","selectAcuRelayPortOptions","selectLockdownPlanOptions","selectCredentialTypeOptions","NameMap","kvs","_cell$match","_cell$match2","arrowContentStyle","formattedOverlayInnerStyle","toHexFormat","AggregationColor","cleared","metaColor","toHsbString","toRgb","isGradient","reTrim","lastArgs","lastThis","lastInvokeTime","maxing","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","isInvoking","leadingEdge","moveDownIn","moveDownOut","moveLeftIn","moveLeftOut","moveRightIn","moveRightOut","moveMotion","initMoveMotion","OpFormItem","menuCls","dropdownArrowDistance","dropdownEdgeChildPadding","dropdownToken","dropdownRender","memoTransitionName","dropdownTrigger","triggerActions","onInnerOpenChange","overlayClassNameCustomized","pointAtCenter","onMenuClick","validAltaAvigilonUrlRegEx","getEnvDomainRegex","parseFlex","sizes","sizeClassObj","sizeProps","propSize","rowProps","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_URL_IMPORT_20___","___CSS_LOADER_URL_IMPORT_21___","___CSS_LOADER_URL_IMPORT_22___","___CSS_LOADER_URL_IMPORT_23___","___CSS_LOADER_URL_IMPORT_24___","___CSS_LOADER_URL_IMPORT_25___","___CSS_LOADER_URL_IMPORT_26___","___CSS_LOADER_URL_IMPORT_27___","___CSS_LOADER_URL_IMPORT_28___","___CSS_LOADER_URL_IMPORT_29___","___CSS_LOADER_URL_IMPORT_30___","___CSS_LOADER_URL_IMPORT_31___","___CSS_LOADER_URL_IMPORT_32___","___CSS_LOADER_URL_IMPORT_33___","___CSS_LOADER_URL_IMPORT_34___","___CSS_LOADER_URL_IMPORT_35___","___CSS_LOADER_URL_IMPORT_36___","___CSS_LOADER_URL_IMPORT_37___","___CSS_LOADER_URL_IMPORT_38___","___CSS_LOADER_URL_IMPORT_39___","___CSS_LOADER_URL_IMPORT_40___","___CSS_LOADER_URL_IMPORT_41___","___CSS_LOADER_URL_IMPORT_42___","___CSS_LOADER_URL_IMPORT_43___","___CSS_LOADER_URL_IMPORT_44___","___CSS_LOADER_URL_IMPORT_45___","___CSS_LOADER_URL_IMPORT_46___","___CSS_LOADER_URL_IMPORT_47___","___CSS_LOADER_URL_IMPORT_48___","___CSS_LOADER_URL_IMPORT_49___","___CSS_LOADER_URL_IMPORT_50___","___CSS_LOADER_URL_IMPORT_51___","___CSS_LOADER_URL_IMPORT_52___","___CSS_LOADER_URL_IMPORT_53___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","___CSS_LOADER_URL_REPLACEMENT_20___","___CSS_LOADER_URL_REPLACEMENT_21___","___CSS_LOADER_URL_REPLACEMENT_22___","___CSS_LOADER_URL_REPLACEMENT_23___","___CSS_LOADER_URL_REPLACEMENT_24___","___CSS_LOADER_URL_REPLACEMENT_25___","___CSS_LOADER_URL_REPLACEMENT_26___","___CSS_LOADER_URL_REPLACEMENT_27___","___CSS_LOADER_URL_REPLACEMENT_28___","___CSS_LOADER_URL_REPLACEMENT_29___","___CSS_LOADER_URL_REPLACEMENT_30___","___CSS_LOADER_URL_REPLACEMENT_31___","___CSS_LOADER_URL_REPLACEMENT_32___","___CSS_LOADER_URL_REPLACEMENT_33___","___CSS_LOADER_URL_REPLACEMENT_34___","___CSS_LOADER_URL_REPLACEMENT_35___","___CSS_LOADER_URL_REPLACEMENT_36___","___CSS_LOADER_URL_REPLACEMENT_37___","___CSS_LOADER_URL_REPLACEMENT_38___","___CSS_LOADER_URL_REPLACEMENT_39___","___CSS_LOADER_URL_REPLACEMENT_40___","___CSS_LOADER_URL_REPLACEMENT_41___","___CSS_LOADER_URL_REPLACEMENT_42___","___CSS_LOADER_URL_REPLACEMENT_43___","___CSS_LOADER_URL_REPLACEMENT_44___","___CSS_LOADER_URL_REPLACEMENT_45___","___CSS_LOADER_URL_REPLACEMENT_46___","___CSS_LOADER_URL_REPLACEMENT_47___","___CSS_LOADER_URL_REPLACEMENT_48___","___CSS_LOADER_URL_REPLACEMENT_49___","___CSS_LOADER_URL_REPLACEMENT_50___","___CSS_LOADER_URL_REPLACEMENT_51___","___CSS_LOADER_URL_REPLACEMENT_52___","___CSS_LOADER_URL_REPLACEMENT_53___","___CSS_LOADER_URL_REPLACEMENT_54___","___CSS_LOADER_URL_REPLACEMENT_55___","___CSS_LOADER_URL_REPLACEMENT_56___","___CSS_LOADER_URL_REPLACEMENT_57___","___CSS_LOADER_URL_REPLACEMENT_58___","___CSS_LOADER_URL_REPLACEMENT_59___","___CSS_LOADER_URL_REPLACEMENT_60___","___CSS_LOADER_URL_REPLACEMENT_61___","___CSS_LOADER_URL_REPLACEMENT_62___","___CSS_LOADER_URL_REPLACEMENT_63___","overArg","_props$duration","_props$pauseOnHover","_props$closeIcon","forcedHovering","setHovering","setPercent","spentTime","setSpentTime","mergedHovering","mergedShowProgress","animationFrame","validPercent","_divProps$onMouseEnte","_divProps$onMouseLeav","parseTimeRanges","PreviewGroupContext","icons","countRender","showSwitch","minScale","maxScale","onZoomIn","onZoomOut","onRotateRight","onRotateLeft","onFlipX","onFlipY","toolbarRender","rotateLeft","rotateRight","flipX","flipY","toolClassName","handleActive","renderOperation","switchPrevNode","switchNextNode","flipYNode","flipXNode","rotateLeftNode","rotateRightNode","zoomOutNode","zoomInNode","toolbarNode","flipYIcon","flipXIcon","rotateLeftIcon","rotateRightIcon","zoomOutIcon","zoomInIcon","initialTransform","fixPoint","startAddWidth","offsetStart","getFixScaleEleTransPosition","_getClientSize","fixPos","isCustomPlaceholder","isLoaded","isCurrentSrc","isImageValid","getDistance","PreviewImage","imgRef","getImgRef","srcAndOnload","imageInfo","_props$movable","movable","_props$icons","_props$current","_props$count","_props$scaleStep","scaleStep","_props$minScale","_props$maxScale","_props$transitionName","_props$maskTransition","imageRender","imgCommonProps","onTransform","showLeftOrRightSwitches","showOperationsProgress","enableTransition","setEnableTransition","_useImageTransform","setTransform","updateTransform","newTransform","preState","memoState","queueState","resetTransform","dispatchZoomChange","ratio","centerX","centerY","isTouch","_imgRef$current","newRatio","newScale","mergedCenterX","mergedCenterY","diffRatio","diffImgX","diffImgY","diffOffsetLeft","diffOffsetTop","newX","newY","mergedWidth","mergedHeight","useImageTransform","_useMouseEvent","isMoving","setMoving","startPositionInfo","diffX","diffY","_startPositionInfo$cu","_imgRef$current$getBo","isRotate","fixState","onTopMouseUpListener","onTopMouseMoveListener","onMouseUpListener","onMouseMoveListener","_onMouseUpListener","_onMouseMoveListener","_onTopMouseUpListener","_onTopMouseMoveListen","scaleRatio","useMouseEvent","_useTouchEvent","isTouching","setIsTouching","touchPointInfo","updateTouchPointInfo","onTouchMoveListener","_onTouchMoveListener","_event$touches","_event$touches2","_touchPointInfo$curre","newPoint1","newPoint2","_getCenter","oldPoint1","oldPoint2","distance1","distance2","getCenter","_getCenter2","useTouchEvent","onKeyDownListener","imgNode","transitionDuration","onTouchCancel","COMMON_PROPS","ImageInternal","imgSrc","onInitialPreviewClose","onPreviewClose","_props$previewPrefixC","previewPrefixCls","_props$preview","wrapperStyle","previewSrc","_ref$visible","previewVisible","_ref$onVisibleChange","onPreviewVisibleChange","_ref$getContainer","getPreviewContainer","previewMask","maskClassName","dialogProps","isShowPreview","setShowPreview","setMousePosition","canPreview","wrapperClass","imageId","registerData","useRegisterImage","_getOffset","onPreview","PreviewGroup","_mergedItems$current","_ref$previewPrefixCls","_ref$icons","_usePreviewItems","setImages","registerImage","imgs","cloneImgs","_images$id","usePreviewItems","_usePreviewItems2","mergedItems","fromItems","keepOpenIndex","setKeepOpenIndex","prevVal","onPreviewFromImage","imageSrc","previewGroupContext","genBoxStyle","genImageMaskStyle","genPreviewOperationsStyle","previewCls","modalMaskBg","previewOperationColorDisabled","previewOperationHoverColor","operationBg","operationBgHover","previewOperationColor","previewOperationSize","genPreviewSwitchStyle","imagePreviewSwitchSize","genImagePreviewStyle","genImageStyle","backgroundRepeat","genPreviewMotion","imageToken","RotateLeftOutlined","ZoomInOutlined","ZoomOutOutlined","CloseOutlined","SwapOutlined","imageLocale","mergedRootClassName","mergedPreview","_preview","restPreviewProps","darken","ALREADY_SEEN_ERROR","_numProcessing","_outcomes","_dsn","_transport","transportOptions","hintWithEventId","_process","_captureEvent","currentScope","eventMessage","promisedEvent","capturedSpanScope","captureSession","_isClientDoneProcessing","clientFinished","transportFlushed","_setupIntegrations","integrationName","addIntegration","isAlreadyInstalled","sendEnvelope","eventOrCount","sendClientReports","hooks","cbIndex","_updateSessionFromEvent","exceptions","sessionNonTerminal","ticked","_prepareEvent","span_id","_processEvent","finalEvent","sentryError","isTransaction","beforeSendLabel","capturedSpanIsolationScope","__sentry__","beforeSend","beforeSendTransaction","processedSpans","processedSpan","spanCountBefore","spanCountBeforeProcessing","processBeforeSend","beforeSendResult","invalidValueError","_validateBeforeSendResult","spanCount","droppedSpanCount","transactionInfo","transaction_info","_clearOutcomes","outcomes","quantity","_flushOutcomes","onMouseOver","_mergeNamespaces","_locking","_locks","isLocked","FLOAT32_MAX","FLOAT32_MIN","INT32_MAX","INT32_MIN","assertInt32","assertUInt32","assertFloat32","enumTypeSymbol","setEnumType","enumObject","makeEnumType","no","localName","_opt","normalValues","normalizeEnumValue","findName","findNumber","Message","util","fromBinary","bin","makeReadOptions","readMessage","readerFactory","fromJson","jsonValue","fromJsonString","toBinary","makeWriteOptions","writer","writerFactory","writeMessage","toJson","toJsonString","prettySpaces","emitDefaultValues","varint64read","lowBits","highBits","assertBounds","middleByte","varint64write","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","minus","add1e6digit","digit1e6","newBits","uInt64ToString","toUnsigned","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","varint32write","varint32read","readBytes","protoInt64","dv","getBigInt64","getBigUint64","setBigInt64","setBigUint64","BUF_BIGINT_DISABLE","MIN","UMIN","UMAX","bi","uParse","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","int64ToString","makeInt64Support","ScalarType","LongType","WireType","scalarEquals","UINT64","FIXED64","INT64","SFIXED64","SINT64","scalarZeroValue","longType","BOOL","DOUBLE","FLOAT","isScalarZeroValue","BinaryWriter","uint32","fieldNo","int32","setFloat32","double","setFloat64","fixed32","sfixed32","sint32","sfixed64","tc","fixed64","int64","sint64","uint64","BinaryReader","textDecoder","varint64","wireType","Varint","Bit64","Bit32","LengthDelimited","StartGroup","EndGroup","zze","getFloat32","getFloat64","createExtensionContainer","repeated","fieldWrapper","unwrapField","initExtensionField","encTable","decTable","protoBase64","base64Str","bytePos","groupPos","getExtension","assertExtendee","ufs","unknownFields","uf","filterUnknownFields","listUnknownFields","readField","setExtension","readOpt","writeOpt","hasExtension","discardUnknownFields","onUnknownField","writeField","extendee","isFieldSet","oneof","clearField","implicitPresence","isMessage","actualType","wrapField","INT32","UINT32","jsonReadDefaults","ignoreUnknownFields","jsonWriteDefaults","enumAsInteger","useProtoFieldName","tokenNull","tokenIgnoredUnknownEnum","debugJsonValue","readField$1","parentType","targetArray","jsonItem","enumValue","readEnum","readScalar$1","targetMap","jsonMapKey","jsonMapValue","readMapKey","BIGINT","scalarValue","nullAsZeroValue","FIXED32","SFIXED32","SINT32","long","uLong","canEmitFieldDefaultValue","writeField$1","jsonObj","entryKey","entryValue","writeScalar$1","enumType","writeEnum","jsonArr","unknownFieldsSymbol","readDefaults","readUnknownFields","writeDefaults","writeUnknownFields","scalarType","readScalar","readScalarLTString","readMessageField","mapKey","mapVal","readMapEntry","delimited","scalarTypeInfo","writePacked","writeScalar","writeMessageField","writeMapEntry","keyValue","cloneSingularField","toU8Arr","InternalFieldList","normalizer","_fields","_normalizer","findJsonName","jsonName","jsonNames","byNumber","numbersAsc","byMember","members","localFieldName","protoName","inOneof","protoCamelCase","safeObjectProperty","safeMessageProperty","fieldJsonName","capNext","reservedObjectProperties","reservedMessageProperties","InternalOneofInfo","addField","findField","_lookup","proto3","newFieldList","fieldInfos","packedByDefault","ooname","normalizeFieldInfos","initFields","member","syntax","oneofSeen","typeRegistry","jsonKey","findExtension","findExtensionFor","lengthOrEndTagFieldNo","delimitedMessageEncoding","initPartial","sk","sourceField","va","vb","makeMessageType","makeEnum","getEnumType","makeExtension","fi","Timestamp","nanos","nanosStr","fromDate","MetricsBatch","TimeSeriesMetric","EventMetric","MetricSample","TrackType","TrackSource","VideoQuality$1","ConnectionQuality$1","ClientConfigSetting","DisconnectReason","ReconnectReason","SubscriptionError","AudioTrackFeature","Room$1","Codec","TimedVersion","ParticipantPermission","ParticipantInfo","ParticipantInfo_State","TrackInfo","ParticipantInfo_Kind","Encryption_Type","SimulcastCodecInfo","VideoLayer","DataPacket","DataPacket_Kind","UserPacket","ActiveSpeakerUpdate","SipDTMF","Transcription","ChatMessage","RpcRequest","RpcAck","RpcResponse","SpeakerInfo","TranscriptionSegment","RpcError$1","ParticipantTracks","ServerInfo","ServerInfo_Edition","ClientInfo","ClientInfo_SDK","ClientConfiguration","VideoConfiguration","DisabledCodecs","SignalTarget","StreamState","CandidateProtocol","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","UpdateParticipantMetadata","Ping","UpdateLocalAudioTrack","UpdateLocalVideoTrack","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","ReconnectResponse","Pong","SubscriptionResponse","RequestResponse","TrackSubscribed","SimulcastCodec","ICEServer","LeaveRequest_Action","RegionSettings","ConnectionQualityInfo","StreamStateInfo","SubscribedQuality","SubscribedCodec","TrackPermission","DataChannelInfo","RegionInfo","RequestResponse_Reason","hasRequiredLoglevel","LogLevel","LoggerNames","loglevel$1","loglevel","loglevelExports","definition","undefinedType","logMethods","_loggersByName","defaultLogger","bindMethod","methodName","traceForIE","replaceLoggingMethods","getLevel","methodFactory","SILENT","enableLoggingWhenConsoleArrives","defaultMethodFactory","_loggerName","realMethod","inheritedLevel","defaultLevel","userLevel","storageKey","getPersistedLevel","storedLevel","cookieName","normalizeLevel","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","resetLevel","clearPersistedLevel","enableAll","TRACE","disableAll","initialLevel","getLogger","_log","noConflict","getLoggers","livekitLogger","workerLogger","DEFAULT_RETRY_DELAYS_IN_MS","hasRequiredEvents","eventsExports","ReflectOwnKeys","ReflectApply","NumberIsNaN","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","newListener","onceWrapper","wrapFn","_onceWrap","_listeners","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","originalListener","spliceOne","rawListeners","requireEvents","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","wrapPeerConnectionEvent","eventNameToWrap","RTCPeerConnection","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","disableWarnings","oldMethod","newMethod","compactObject","isObj","isEmptyObject","walkStats","resultSet","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","logging","shimGetUserMedia$2","browserDetails","constraintsToChrome_","mandatory","ideal","oldname_","oc","mix","shimConstraints_","constraints","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","enumerateDevices","devices","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","webkitGetUserMedia","origGetUserMedia","cs","getAudioTracks","getVideoTracks","getTracks","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack$1","_ontrack","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","getReceivers","transceiver","streams","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","origRemoveTrack","removeTrack","origAddStream","addStream","origRemoveStream","removeStream","RTCRtpSender","origGetSenders","senders","shimSenderReceiverGetStats","RTCRtpReceiver","getStats","origGetReceivers","receivers","origGetStats","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","sdp","externalStream","internalStream","RTCSessionDescription","signalingState","oldStream","nativeMethod","methodObj","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","streamid","shimPeerConnection$1","webkitRTCPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","chromeShim","shimGetUserMedia","shimOnTrack","shimPeerConnection","shimGetUserMedia$1","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","nativeGetStats","onSucc","onErr","stat","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","sendEncodings","shouldPerformCheck","encodingParam","rid","scaleResolutionDownBy","getParameters","encodings","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","shimCreateAnswer","origCreateAnswer","createAnswer","firefoxShim","shimGetDisplayMedia","preferredMediaSource","getDisplayMedia","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","iceServers","newIceServers","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","webkitAudioContext","hasRequiredSdp","safariShim","sdp$1","sdpExports","SDPUtils","localCName","generateIdentifier","splitLines","splitSections","getDescription","sections","getMediaSections","matchPrefix","foundation","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","clockRate","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","writeFmtp","parseRtcpFb","parameter","writeRtcpFb","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","getDtlsParameters","sessionpart","fingerprints","writeDtlsParameters","setupType","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","wildcardRtcpFb","existingFeedback","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","writeRtcpParameters","parseMsid","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","sctp","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","sdpMid","sdpMLineIndex","shimRTCIceCandidateRelayProtocol","relayProtocol","shimMaxMessageSize","_sctp","mLine","sctpInDescription","getRemoteFirefoxVersion","canSendMMS","remoteIsFirefox","canSendMaxMessageSize","getCanSendMaxMessageSize","remoteMMS","getMaxMessageSize","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","origCreateDataChannel","createDataChannel","dataChannel","shimConnectionState","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","commonShim","shimChrome","shimFirefox","shimSafari","chromium","mozGetUserMedia","isSecureContext","supportsUnifiedPlan","RTCRtpTransceiver","detectBrowser","adapter","browserShim","adapterFactory","E2EE_FLAG","KeyProviderEvent","KeyHandlerEvent","EncryptionEvent","CryptorEvent","ConnectionErrorReason","MediaDeviceFailure","CryptorErrorReason","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","isScriptTransformSupported","RTCRtpScriptTransform","LivekitError","ConnectionError","DeviceUnsupportedError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","NegotiationError","SignalRequestError","isImmediate","getFailure","NotFound","PermissionDenied","DeviceInUse","Other","commonVersionIdentifier","getBrowser","browsersList","getMatch","osVersion","getOSVersion","CriticalTimers","VideoPreset","widthOrOptions","aspectRatio","backupCodecs","isBackupCodec","backup","AudioPresets","telephone","speech","music","musicStereo","musicHighQuality","musicHighQualityStereo","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h360fps15","h720fps5","h720fps15","h720fps30","h1080fps15","h1080fps30","recycledElements","VideoQuality","Track","loggerOptions","attachedElements","isMuted","streamState","Active","isInBackground","_currentBitrate","appVisibilityChangedListener","backgroundTimeout","handleAppVisibilityChanged","loggerName","loggerContextCb","_mediaStreamTrack","_mediaStreamID","Source","Unknown","logContext","getLogContextFromTrack","currentBitrate","mediaStreamTrack","mediaStreamID","Kind","Video","addAppVisibilityListener","attachToElement","allMediaStreamTracks","srcObject","tr","AudioPlaybackStarted","VideoPlaybackStarted","AudioPlaybackFailed","VideoPlaybackFailed","ElementAttached","detachTrack","recycleElement","ElementDetached","elm","removeAppVisibilityListener","stopMonitor","monitorInterval","timeSyncHandle","updateLoggerOptions","HTMLAudioElement","shouldCache","isWeb","mediaStream","existingTracks","autoplay","playsInline","isFireFox","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","getNewAudioContext","latencyHint","sourceToKind","Microphone","Camera","mimeTypeToVideoCodecString","getTrackPublicationInfo","infos","trackInfo","trackID","streamID","streamTrackID","trackSid","isEncrypted","StreamState$1","kindToProto","Audio","DATA","kindFromProto","sourceToProto","CAMERA","MICROPHONE","ScreenShare","SCREEN_SHARE","ScreenShareAudio","SCREEN_SHARE_AUDIO","sourceFromProto","streamStateFromProto","ACTIVE","PAUSED","Paused","ddExtensionURI","sleep","supportsTransceiver","supportsAddTrack","isSVCCodec","supportsSetSinkId","isReactNative","isCloud","serverUrl","getLKReactNativeInfo","LiveKitReactNativeGlobal","getReactNativeOs","getDevicePixelRatio","parts1","parts2","roDispatchCallback","handleResize","ioDispatchCallback","handleVisibilityChanged","getResizeObserver","intersectionObserver","getIntersectionObserver","rootMargin","emptyAudioStreamTrack","createDummyVideoStreamTrack","paintContent","beginPath","arc","PI","closePath","dummyStream","captureStream","getEmptyAudioStreamTrack","oscillator","createOscillator","dst","createMediaStreamDestination","Future","futureBase","unwrapConstraint","toHttpUrl","getDisconnectReasonFromConnectionError","Cancelled","CLIENT_INITIATED","NotAllowed","USER_REJECTED","ServerUnreachable","JOIN_FAILURE","UNKNOWN_REASON","defaultId","DeviceManager","getDevices","kind_1","requestPermissions","userMediaPromiseMap","hasDeviceInUse","noLabel","isRelevant","permissionsToAcquire","normalizeDeviceId","defaultDevice","mediaDeviceKinds","LocalTrack","_sender","_constraints","userProvidedTrack","manuallyStopped","_isUpstreamPaused","handleTrackMuteEvent","debouncedTrackMuteHandler","pauseUpstream","handleTrackUnmuteEvent","resumeUpstream","handleEnded","reacquireTrack","Ended","providedByUser","muteLock","pauseUpstreamLock","processorLock","restartLock","setMediaStreamTrack","getConstraints","dimensions","isUpstreamPaused","isUserProvided","processedTrack","getSourceTrackSettings","newTrack","processorElement","restart","replaceTrack","waitForDimensions","dims","getDeviceId","mute","setTrackMuted","unmute","userProvidedOrOptions","stopProcessor","streamConstraints","Restarted","Muted","Unmuted","needsReAcquisition","UpstreamPaused","UpstreamResumed","getRTCStatsReport","setProcessor","processor_1","showProcessedStreamLocally","processorOptions","TrackProcessorUpdate","getProcessor","keepElement","E2EEManager","EncryptionError","keyProvider","postKey","encryptionEnabled","participantIdentity","room","localParticipant","ParticipantEncryptionStatusChanged","participant","getParticipantByIdentity","KeyRatcheted","material","onWorkerError","createEncodedStreams","setupEventListeners","keyProviderOptions","setParticipantCryptorEnabled","postEnable","setSifTrailer","trailer","postSifTrailer","setupEngine","engine","RTPVideoMapUpdate","rtpMap","postRTPMap","TrackPublished","pub","encryption","ConnectionStateChanged","ConnectionState","Connected","remoteParticipants","trackPublications","TrackUnsubscribed","setupE2EEReceiver","SignalConnected","isE2EEEnabled","LocalTrackPublished","publication","setupE2EESender","SetKey","RatchetRequest","participantId","postRatchetRequest","isPublisher","enableMsg","handleReceiver","handleSender","writableStream","readable","readableStream","receiverStreams","senderStreams","QueueTaskStatus","AsyncQueue","pendingTasks","taskMutex","nextTaskIndex","taskInfo","enqueuedAt","WAITING","executedAt","COMPLETED","passThroughQueueSignals","SignalConnectionState","SignalClient","isDisconnected","DISCONNECTING","DISCONNECTED","isEstablishingConnection","CONNECTING","RECONNECTING","getNextRequestId","_requestId","useJSON","rtt","resetCallbacks","onAnswer","onLeave","onLocalTrackPublished","onLocalTrackUnpublished","onNegotiateRequested","onOffer","onRemoteMuteChanged","onSubscribedQualityUpdate","onTokenRefresh","onTrickle","Signal","requestQueue","queuedRequests","closingLock","connectionLock","abortSignal","reconnect","clearPingInterval","reconnectReason","connectOptions","toWebsocketUrl","autoSubscribe","deviceModel","browserVersion","adaptiveStream","createConnectionParams","getClientInfo","abortHandler","wsTimeout","websocketTimeout","binaryType","onopen","CONNECTED","handleWSError","resp","InternalError","shouldProcessMessage","pingTimeoutDuration","pingTimeout","pingIntervalDuration","pingInterval","startPingInterval","signalLatency","handleSignalResponse","onclose","wasClean","handleOnClose","updateState","CLOSING","race","sendOffer","offer","offerSdp","sendRequest","toProtoSessionDescription","sendAnswer","answer","answerSdp","sendIceCandidate","candidateInit","sendMuteTrack","sendAddTrack","sendUpdateLocalMetadata","metadata_1","name_1","requestId","sendUpdateTrackSettings","sendUpdateSubscription","sendSyncState","sendUpdateVideoLayers","layers","sendUpdateSubscriptionPermissions","allParticipants","trackPermissions","sendSimulateScenario","scenario","sendPing","sendUpdateLocalAudioTrack","sendLeave","DISCONNECT","message_1","fromQueue","canQueue","canPass","canPassThroughQueue","pingHandled","sd","fromProtoSessionDescription","onParticipantUpdate","participants","onSpeakersChanged","speakers","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onSubscriptionError","lastPingTimestamp","resetPingTimeout","onRequestResponse","onLocalTrackSubscribed","msgCase","setReconnected","onCloseCallback","clearPingTimeout","rsd","hasRequiredGrammar","hasRequiredParser","hasRequiredWriter","hasRequiredLib","lib","grammar","requireGrammar","grammar$1","subtype","sessionConfig","raddr","tcptype","generation","dir2","clksrcExt","mediaClockValue","rateNumerator","rateDenominator","requireParser","toIntIfInt","parseReg","needsBlank","keyLocation","rawName","attachProperties","validLine","fmtp","paramReducer","parseParams","parseFmtpConfig","parsePayloads","parseRemoteCandidates","candidates","parseImageAttributes","parseSimulcastStreamList","scid","requireWriter","makeLine","defaultOuterOrder","defaultInnerOrder","outerOrder","innerOrder","libExports","requireLib","PCEvents","PCTransport","createPC","ddExtID","pendingCandidates","restartingIce","renegotiate","trackBitrates","remoteStereoMids","remoteNackMids","negotiate","createAndSendOffer","onconnectionstatechange","oniceconnectionstatechange","onicegatheringstatechange","ondatachannel","onnegotiationneeded","onsignalingstatechange","onicecandidate","ontrack","onIceCandidate","onicecandidateerror","onIceCandidateError","onIceConnectionStateChange","onSignalingStatechange","onConnectionStateChange","onDataChannel","onTrack","isICEConnected","remoteDescription","mungedSDP","stereoMids","nackMids","sdpParsed","opusPayload","rtcpFb","extractStereoAndNackAudioFromOffer","trackbr","codecPayload","fmtpFound","maxbr","setMungedSDP","iceRestart","currentSD","ensureAudioNackAndStereo","msid","ensureVideoDDExtensionForSVC","startBitrate","createAndSetAnswer","dataChannelDict","transceiverInit","setTrackCodecBitrate","setConfiguration","rtcConfig","canRemoveTrack","getConnectionState","getICEConnectionState","getSignallingState","getLocalDescription","localDescription","getRemoteDescription","getConnectedAddress","selectedCandidatePairId","candidatePairs","selectedID","remoteCandidateId","munged","remote","originalSdp","remoteSdp","maxID","defaultVideoCodec","publishDefaults","audioPreset","dtx","forceStereo","simulcast","screenShareEncoding","stopMicTrackOnMute","backupCodec","audioDefaults","autoGainControl","echoCancellation","noiseSuppression","voiceIsolation","videoDefaults","roomOptionDefaults","dynacast","stopLocalTrackOnUnpublish","reconnectPolicy","retryDelays","_retryDelays","nextRetryDelayInMs","disconnectOnPageLeave","webAudioMix","roomConnectOptionDefaults","peerConnectionTimeout","PCTransportState","PCTransportManager","needsPublisher","isPublisherConnectionRequired","needsSubscriber","isSubscriberConnectionRequired","subscriberPrimary","connectionStates","requiredTransports","FAILED","CLOSED","NEW","publisher","subscriber","PCManager","PUBLISHER","SUBSCRIBER","onPublisherOffer","remoteOfferLock","requirePublisher","requireSubscriber","createAndSendPublisherOffer","setPublisherAnswer","triggerIceRestart","createSubscriberAnswerFromOffer","RTCSdpType","updateConfiguration","ensurePCTransportConnection","ensureTransportConnected","negotiationTimeout","addPublisherTransceiver","addPublisherTrack","createPublisherDataChannel","transports","pcTransport_1","abortController_1","pcTransport","connectTimeout","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","LocalAudioTrack","enhancedNoiseCancellation","isKrispNoiseFilterEnabled","stopOnMute","monitorSender","getSenderStats","handleKrispNoiseFilterEnable","AudioTrackFeatureUpdate","TF_ENHANCED_NOISE_CANCELLATION","handleKrispNoiseFilterDisable","checkForSilence","setDeviceId","restartTrack","deviceHasChanged","startMonitor","setAudioContext","audioStats","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","track_1","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","getByteTimeDomainData","someNoise","detectSilence","AudioSilenceDetected","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","useSimulcast","scalabilityMode","aspect","presetsForResolution","determineAppropriateEncoding","ScalabilityMode","spatial","bitratesRatio","networkPriority","midPreset","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","lowPreset","encodingsFromPresets","canSetPriority","topFramerate","notifyOnce","aEnc","bEnc","temporal","LocalVideoTrack","degradationPreference","setDegradationPreference","simulcastCodecs","statsMap","totalBitrate","senderLock","isSimulcast","signalClient","_g","vs","frameHeight","frameWidth","framesPerSecond","framesSent","firCount","pliCount","nackCount","qualityLimitationReason","qualityLimitationDurations","qualityLimitationResolutionChanges","retransmittedPacketsSent","targetBitrate","setPublishingQuality","maxQuality","qualities","LOW","HIGH","setPublishingLayers","e_3","e_3_1","e_4","_h","e_4_1","preference","addSimulcastTrack","simulcastCodecInfo","setSimulcastTrackSender","subscribedCodecs","setPublishingCodecs","codecs_1","codecs_1_1","e_5","newCodecs","setPublishingLayersForSender","e_5_1","senderEncodings","hasChanged","videoQualityForRid","subscribedQuality","maxFrameRate","MEDIUM","videoLayersFromEncodings","svc","encodingSM","resRatio","lossyDataChannel","reliableDataChannel","leaveReconnect","PCState","ConnectionQuality","CheckStatus","RTCEngine","isClosed","_isClosed","pendingReconnect","reconnectTimeout","fullReconnectOnNext","pcState","New","pendingTrackResolvers","reconnectAttempts","reconnectStart","attemptingReconnect","joinAttempts","maxJoinAttempts","shouldFailNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","dataProcessLock","dp","ActiveSpeakersUpdate","oldObj","destinationIdentities","applyUserDataCompat","DataPacketReceived","handleDataError","channelKind","maxRetransmits","ErrorEvent","handleBufferedAmountLow","LOSSY","RELIABLE","updateAndEmitDCBufferStatus","handleDisconnect","disconnectReason","getNextRetryDelay","elapsedMs","clearReconnectTimeout","regionUrlProvider","updateToken","attemptReconnect","Disconnected","waitForRestarted","onRestarted","onDisconnected","isBufferStatusLow","dcBufferStatus","DCBufferStatusChanged","dataChannelForKind","bufferedAmount","bufferedAmountLowThreshold","handleBrowserOnLine","RR_SIGNAL_DISCONNECTED","Engine","expSignalLatency","registerOnLineListener","updates","StreamStateChanged","SignalRequestResponse","latestJoinResponse","roomID","pID","signalOpts","setupSignalClientCallbacks","joinResponse","pcManager","fastPublish","clientConfiguration","Closing","deregisterOnLineListener","clearPendingReconnect","cleanupPeerConnections","cleanupClient","dcCleanup","onbufferedamountlow","onclosing","lossyDC","reliableDC","publicationTimeout","updateMuteStatus","dataSubscriberReadyState","getConnectedServerAddress","setRegionUrlProvider","participantSid","makeRTCConfiguration","TransportsCreated","publisherState","subscriberState","publisherConnectionPromise","shouldEmit","RR_SUBSCRIBER_FAILED","RR_PUBLISHER_FAILED","isSignalSevered","isPCSevered","Offline","MediaTrackAdded","serverInfo","createDataChannels","LocalTrackUnpublished","LocalTrackSubscribed","RemoteMute","leave","setServerReportedRegions","RECONNECT","RESUME","serverResponse","e2eeEnabled","encodedInsertableStreams","rtcIceServers","iceServer","rtcIceServer","credential","forceRelay","ENABLED","iceTransportPolicy","continualGatheringPolicy","createSender","createTransceiverRTCRtpSender","createRTCRtpSender","createSimulcastSender","simulcastTrack","createSimulcastTransceiverSender","resumeConnection","DISABLED","restartConnection","SignalReconnectError","RR_UNKNOWN","regionUrl","Restarting","SignalRestarted","waitForPCReconnected","resetAttempts","nextRegionUrl","getNextBestRegionUrl","Resuming","SignalResumed","Resumed","waitForPCInitialConnection","Reconnecting","sendDataPacket","packet","ensurePublisherConnected","ensureDataTransportConnected","transportName","needNegotiation","targetChannel","verifyTransport","handleClosed","rtpTypes","maybeCodec","remoteTracks","localTracks","previousAnswer","previousOffer","trackSids","trackSidsDisabled","isDesired","participantTracks","publishTracks","dataChannels","dataChannelsInfo","failNext","getInfo","RegionUrlProvider","lastUpdateAt","settingsCacheTime","attemptedRegions","getServerUrl","regionSettings","fetchRegionSettings","regionsLeft","attempted","nextRegion","regionSettingsResponse","authorization","RpcError","truncateBytes","MAX_MESSAGE_BYTES","MAX_DATA_BYTES","fromProto","toProto","builtIn","ErrorCode","ErrorMessage","maxBytes","APPLICATION_ERROR","CONNECTION_TIMEOUT","RESPONSE_TIMEOUT","RECIPIENT_DISCONNECTED","RESPONSE_PAYLOAD_TOO_LARGE","SEND_FAILED","UNSUPPORTED_METHOD","RECIPIENT_NOT_FOUND","REQUEST_PAYLOAD_TOO_LARGE","UNSUPPORTED_SERVER","UNSUPPORTED_VERSION","RemoteTrack","setMuted","setMediaStream","onRemoveTrack","playoutDelayHint","setPlayoutDelay","delayInSeconds","getPlayoutDelay","monitorReceiver","registerTimeSyncUpdate","getSynchronizationSources","rtpTimestamp","TimeSyncUpdate","RemoteAudioTrack","audioOutput","getReceiverStats","webAudioPluginNodes","sinkId","setVolume","gainNode","setTargetAtTime","_setVolume","elementVolume","getVolume","highestVolume","setSinkId","needsNewWebAudioConnection","connectWebAudio","disconnectWebAudio","setWebAudioPlugins","sourceNode","lastNode","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","debouncedHandleResize","updateDimensions","isAdaptiveStream","elementInfo","HTMLElementInfo","observeElementInfo","updateVisibility","stopObservingElementInfo","stopElementInfos","stopObserving","detachedElements","stopObservingElement","getDecoderImplementation","decoderImplementation","codecID","codecId","framesDecoded","framesDropped","framesReceived","packetsReceived","lastVisibilityChange","visibilityChangedAt","backgroundPause","pauseVideoInBackground","isPiPMode","pictureInPicture","lastVisible","VisibilityChanged","pixelDensity","getPixelDensity","currentElementWidth","currentElementHeight","lastDimensions","VideoDimensionsChanged","isPiP","isIntersecting","onVisibilityChanged","onEnterPiP","onLeavePiP","isElementInViewport","pictureInPictureElement","TrackPublication","metadataMuted","handleMuted","handleUnmuted","Publication","setTrack","updateInfo","simulcasted","SubscriptionStatus","PermissionStatus","LocalTrackPublication","ti","handleTrackEnded","getTrackFeatures","TF_AUTO_GAIN_CONTROL","TF_ECHO_CANCELLATION","TF_NOISE_SUPPRESSION","TF_STEREO","TF_NO_DTX","Participant","isAgent","AGENT","_kind","_attributes","STANDARD","audioLevel","isSpeaking","_connectionQuality","audioTrackPublications","videoTrackPublications","getTrackPublications","getTrackPublication","getTrackPublicationByName","connectionQuality","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","isLocal","joinedAt","participantInfo","_setName","_setMetadata","_setAttributes","permission","setPermissions","changed","prevMetadata","ParticipantMetadataChanged","ParticipantNameChanged","oldValues","newValues","allKeys","diffAttributes","AttributesChanged","prevPermissions","canPublish","canSubscribe","canPublishData","recorder","canPublishSources","canSubscribeMetrics","ParticipantPermissionsChanged","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","EXCELLENT","Excellent","GOOD","Good","POOR","Poor","LOST","Lost","qualityFromProto","ConnectionQualityChanged","addTrackPublication","TrackMuted","TrackUnmuted","LocalParticipant","pendingPublishing","pendingPublishPromises","participantTrackPermissions","allParticipantsAllowedToSubscribe","enabledPublishVideoCodecs","rpcHandlers","pendingAcks","pendingResponses","handleReconnecting","reconnectFuture","handleReconnected","updateTrackSubscriptionPermissions","handleDisconnected","handleSignalRequestResponse","targetRequest","pendingSignalRequests","OK","handleDataPacket","rpcRequest","handleIncomingRpcRequest","responseTimeoutMs","rpcResponse","handleIncomingRpcResponse","rpcAck","handleIncomingRpcAck","allParticipantsAllowed","perms","allTracks","allowAll","allowedTrackSids","trackPermissionToProto","onTrackUnmuted","onTrackMuted","onTrackUpstreamPaused","onTrackUpstreamResumed","onTrackFeatureUpdate","handleSubscribedQualityUpdate","roomOptions","newCodecs_1_1","newCodecs_1","publishAdditionalCodecForTrack","subscribedQualities","handleLocalTrackUnpublished","unpublished","unpublishTrack","currentPermissions","activeDeviceMap","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setMetadata","requestMetadataUpdate","setName","setCameraEnabled","publishOptions","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","setE2EEEnabled","GCM","republishAllTracks","republishPromise","pendingTrack","waitForPendingPublicationOfSource","createTracks","createScreenTracks","publishPromises","localTrack","publishTrack","publishedTracks","MediaDevicesError","screenAudioTrack","enableCameraAndMicrophone","audioProcessor","videoProcessor","extractProcessorsFromOptions","structuredClone","mergeDefaultOptions","audioCaptureDefaults","videoCaptureDefaults","AudioStreamAcquired","trackConstraints","conOrBool","mediaTrackToLocalTrack","isSafari17","videoConstraints","selfBrowserSurface","surfaceSwitching","systemAudio","preferCurrentTab","screenCaptureToDisplayMediaStreamOptions","screenVideo","contentHint","screenAudio","publishOrRepublishTrack","options_1","isRepublish","defaultConstraints","existingPublication","deviceKind","isStereoInput","isStereo","supportedSafariVersion","isE2EESimulcastSupported","e2ee","publishPromise","publish","_j","publishedTrack","capabilities","getCapabilities","hasAV1","supportsAV1","hasVP9","supportsVP9","disableDtx","stereo","disableRed","defaultRes","getDefaultDegradationPreference","trackTransceiver","primaryCodecMime","updatedCodec","serverRequested","computeTrackBackupEncodings","stopOnUnpublish","getPublicationForTrack","pubLogContext","negotiationNeeded","trackSender","unpublishTracks","restartTracks","localPubs","publishData","data_1","reliable","topic","publishDtmf","sendChatMessage","editChatMessage","editText","originalMessage","editTimestamp","performRpc","destinationIdentity","responseTimeout","publishRpcRequest","ackTimeoutId","responseTimeoutId","responsePayload","responseError","registerRpcMethod","unregisterRpcMethod","setTrackSubscriptionPermissions","callerIdentity","publishRpcAck","publishRpcResponse","handleParticipantDisconnected","pendingIdentity","setEnabledPublishCodecs","mutedOnServer","publishPromiseEntry","RemoteTrackPublication","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","prevStatus","subscriptionStatus","prevPermission","emitSubscriptionUpdateIfChanged","emitPermissionUpdateIfChanged","Unsubscribed","Subscribed","Desired","Allowed","isManualOperationAllowed","setVideoQuality","setVideoDimensions","setVideoFPS","videoQuality","prevTrack","setAllowed","setSubscriptionError","SubscriptionFailed","prevMetadataMuted","previousStatus","SubscriptionStatusChanged","previousPermissionStatus","SubscriptionPermissionChanged","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rpID","remoteParticipant","volumeMap","TrackSubscriptionPermissionChanged","TrackSubscriptionStatusChanged","previousTrack","TrackSubscriptionFailed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublicationBySid","hasMetadata","validTracks","newTracks","existingTrackOfSource","oldTrack","sendUnpublish","TrackUnpublished","setAudioOutput","Room","activeSpeakers","audioEnabled","isVideoPlaybackBlocked","bufferedEvents","isResuming","unlockDisconnect","disconnectLock","connectFuture","setAndEmitConnectionState","Connecting","connectFn","nextUrl","recreateEngine","clearConnectionFutures","connectSignal","e2eeManager","serverVersion","serverRegion","roomSid","applyJoinResponse","enabledPublishCodecs","sifTrailer","handleParticipantUpdates","otherParticipants","handleRoomUpdate","maybeCreateEngine","acquireAudioContext","connOptions","setupLocalParticipantEvents","resultingError","onPageLeave","handleDeviceChange","registerConnectionReconcile","args_1","stopTracks","startAudio","audioId","dummyAudioEl","handleAudioPlaybackStarted","handleAudioPlaybackFailed","startVideo","handleVideoPlaybackStarted","handleVideoPlaybackFailed","handleRestarting","clearConnectionReconcile","handleSignalRestarted","Reconnected","emitBufferedEvents","participantInfos","sidToIdentity","getOrCreateParticipant","handleActiveSpeakersUpdate","seenSids","speaker","getRemoteParticipantBySid","emitWhenConnected","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","streamStateUpdate","streamStates","newStreamState","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","handleSubscriptionError","handleUserPacket","handleTranscription","handleSipDtmf","handleChatMessage","handleMetrics","userPacket","DataReceived","SipDTMFReceived","bufferedSegments","_remoteParticipant","transcription","transcribedParticipantIdentity","firstReceivedTimesMap","firstReceivedTime","lastReceivedTime","extractTranscriptionSegments","transcriptionReceivedTimes","TranscriptionReceived","chatMessage","extractChatMessage","MetricsReceived","canPlaybackAudio","AudioPlaybackStatusChanged","VideoPlaybackStatusChanged","availableDevices","kinds","devicesOfKind","deviceInfo","getActiveDevice","switchActiveDevice","MediaDevicesChanged","oldRoom","roomInfo","RoomMetadataChanged","activeRecording","RecordingStatusChanged","handleConnectionQualityUpdate","onLocalParticipantMetadataChanged","onLocalParticipantNameChanged","onLocalAttributesChanged","changedAttributes","ParticipantAttributesChanged","onLocalTrackMuted","onLocalTrackUnmuted","onTrackProcessorUpdate","onPublish","onLocalTrackRestarted","LocalAudioSilenceDetected","ActiveDeviceChanged","onLocalConnectionQualityChanged","onMediaDevicesError","onLocalParticipantPermissionsChanged","onLocalChatMessageSent","setupE2EE","getSid","numParticipants","numPublishers","onTrackAdded","SignalReconnecting","updateSubscriptions","subscribedSid","trackPublication","getLocalDevices","prepareConnection","simulateScenario","postAction","canPlaybackVideo","deviceId_1","deviceConstraint","prevDeviceId","reconnectedHandler","unpackStreamId","shouldStopTracks","ParticipantDisconnected","newContextIsRunning","createParticipant","existingParticipant","ParticipantConnected","consecutiveFailures","connectionReconcileInterval","numFailures","transportsConnected","STATE_MISMATCH","simulateParticipants","useRealTracks","participantOptions","aspectRatios","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","camPub","audioPub","dummyVideo","minimizedArgs","mapArgs","confidence","shortOut","_DownOutlined","captureFeedback","associatedEventId","contact_email","associated_event_id","IconGroup","getIconAriaOptions","ariaOptions","corner","fitted","flipped","rotated","confirmModal","initMetric","wasDiscarded","_getBBox","_element$getBoundingC","_width","_height","qEnd","safeName","fsmIterator","fsm","stateUpdater","yTake","setAction","ac","q1","q2","yFork","yCancel","setTask","q3","takeLeading","takeEvery$1","takeLatest$1","takeLeading$1","getActiveKeysArray","currentActiveKey","activeKeyType","Collapse","_props$destroyInactiv","rawActiveKey","defaultActiveKey","_onChange","collapseClassName","setActiveKey","mergedChildren","Panel","reWords","upperFirst","pascalCase","kebabCase","sentenceCase","titleCase","isCommonjs","fnMap","eventNameMap","fullscreenchange","fullscreenerror","screenfull","onFullScreenEntered","returnPromise","requestFullscreen","isFullscreen","onFullScreenExit","exitFullscreen","fullscreenElement","fullscreenEnabled","KEBAB_REGEX","pfx","putRaw","rawCssRule","decls","postponed","putAt","isValidNumber","defaultCountryCode","countryObj","setConfigList","_config$onClose","_list$index","setPlacements","nextPlacements","_config$placement","originPlacements","emptyRef","placementList","placementConfigList","checkLength","i18nIsDynamicList","getAsArray","nodesToString","stringNode","childrenArray","keepArray","childPropsCount","shouldKeepChild","childChildren","renderNodes","targetString","combinedTOpts","emptyChildrenButNeedsHandling","childs","ast","renderInner","rootReactNode","mappedChildren","mapAST","hasValidReactChildren","pushTranslatedJSX","isVoid","reactNode","astNode","reactNodes","translationContent","newTarget","mergeProps","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","wrapTextNodes","fixComponentProps","componentKey","comp","generateComponents","generateArrayComponents","componentMap","generateObjectComponents","reactI18nextOptions","nodeAsString","hashTransKey","interpolationOverride","generatedComponents","useAsParent","defaultTransParent","getDirectionStyle","positionStyle","includedStart","includedEnd","UnstableContext","_getIndex","onDelete","onOffsetChange","ariaLabelForHandle","ariaLabelledByForHandle","ariaRequired","ariaValueTextFormatterForHandle","handlePrefixCls","onInternalStartMove","handleNode","draggingIndex","handlesRef","activeVisible","setActiveVisible","activeIndex","setActiveIndex","_handlesRef$current$i","hideHelp","handleProps","included","textCls","markPrefixCls","dotClassName","dots","stepDots","dotSet","dotValue","replaceCls","trackPrefixCls","offsetEnd","startPoint","trackList","startValue","endValue","tracksNode","targetTouches","_props$min","_props$max","onBeforeChange","onAfterChange","_props$allowCross","allowCross","_props$pushable","pushable","_props$included","trackStyle","handleStyle","railStyle","dotStyle","activeDotStyle","_props$tabIndex","_useRange","draggableTrack","minCount","useRange","_useRange2","rangeEnabled","rangeEditable","rangeDraggableTrack","mergedMin","mergedStep","mergedPush","markList","markObj","_useOffset","formatRangeValue","formatStepValue","stepValue","getDecimal","fixedValue","formatNextValue","alignValues","closeValue","closeDist","alignValue","targetDistValue","potentialValues","compareValue","valueDist","potentialValue","cloneValues","offsetChangedValue","needPush","pushNum","_offsetChangedValue","_changed","_offsetChangedValue2","_changed2","_offsetChangedValue3","_i3","_changed3","_offsetChangedValue4","useOffset","_useOffset2","offsetValues","rawValues","valueList","_valueList$","returnValues","pointCount","_returnValues","getTriggerValue","triggerValues","cloneNextValues","finishChange","finishValue","_useDrag","draggingValue","setDraggingValue","setDraggingIndex","setDraggingDelete","cacheValues","setCacheValues","originValues","setOriginValues","mouseMoveEventRef","mouseUpEventRef","touchEventTargetRef","flushValues","deleteMark","changeValues","deleteIndex","updateCacheValue","offsetPercent","maxStartOffset","maxEndOffset","formatStartValue","cloneCacheValues","offsetDist","sourceValues","targetValues","counts","maxDiffCount","startValues","offSetPercent","removeDist","_getPosition2","moveX","moveY","_useDrag2","onStartDrag","changeToCloseValue","valueBeforeIndex","_document$activeEleme","_document$activeEleme2","keyboardValue","setKeyboardValue","mergedDraggableTrack","sortedCacheValues","_containerRef$current2","rail","nextFocusIndex","validateNextState","getUnexpectedInvocationParameterMessage","getStateName","_getStateName3","_getUnexpectedInvocationParameterMessage3","_validateNextState3","_ref$component","_ref$validateTrigger","onValuesChange","_onFieldsChange","onFieldsChange","_onFinish","onFinishFailed","clearOnDestroy","nativeElementRef","_useForm","formInstance","_getInternalHooks","childrenRenderProps","prevFieldsRef","formContextValue","wrapperNode","_restProps$onReset","memoizeCapped","AWARE_PROXY_URL","invalidUrlRegex","normalizedBaseUrl","getAwareOrigin","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","dateTimeFormat","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","baseDifference","getAsyncContextStrategy","isDOM","getDOM","_ReactDOM$findDOMNode","fetchResponse","requestExternal","checkForVersionNumberMismatch","versionNeedsUpdate","versionUrl","checkScope","scopesByOperationId","parentOrgScope","partnerScopes","orgItem","identityItem","addFetchInstrumentationHandler","skipNativeFetchCheck","onFetchResolved","originalFetch","getUrlFromResource","hasProp","parseFetchArgs","virtualStackTrace","instrumentFetch","IS_REACT_19","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","pureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","ownProps","stateProps","dispatchProps","hasRunAtLeastOnce","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","handleSubsequentCalls","wrapMapToPropsConstant","getConstant","constantSelector","getDependsOnOwnProps","wrapMapToPropsFunc","stateOrDispatch","createInvalidArgFactory","defaultMergeProps","nullListeners","createSubscription","parentSub","subscriptionsAmount","selfSubscribed","createListenerCollection","cleanupListener","isRunningInReactNative","getUseIsomorphicLayoutEffect","ContextKey","gT","realContext","NO_SUBSCRIPTION_ARRAY","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","strictEqual","connect_default","mapStateToPropsFactory","actionCreators","boundActionCreators","actionCreator","mapDispatchToPropsFactory","hasRunOnce","nextMergedProps","wrapMergePropsFunc","mergePropsFactory","selectorFactoryOptions","ConnectFunction","propsContext","reactReduxForwardedRef2","wrapperProps2","ContextToUse","didStoreComeFromProps","didStoreComeFromContext","childPropsSelector","finalPropsSelectorFactory","subscription2","notifyNestedSubs2","overriddenContextValue","latestSubscriptionCallbackError","actualChildPropsSelector","subscribeForReact","reactListener","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","subscribeUpdates","effectFunc","effectArgs","actualChildProps","renderedWrappedComponent","Connect","forwarded","Provider_default","createReduxContextHook","useReduxContext","useReduxContext2","useStore2","useDispatch2","refEquality","useSelector2","equalityFnOrOptions","reduxContext","wrappedSelector","selectedState","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","refreshOnChange","screensRef","supportScreens","deserializer","initializer","serializer","localStorageValue","valOrFunc","eifelerRegelAppliesToNumber","bindReporter","thresholds","forceReport","getRating","$L","$u","$offset","$y","getUTCFullYear","getUTCMonth","getUTCDate","$W","getUTCDay","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","$x","$localOffset","isUTC","Clickable","htmlButtonProps","isStableColor","frontColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","UNIQUE_ID","useScrollLocker","mergedLock","scrollbarSize","stubArray","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","queryStart","parseNumbers","parseBooleans","arrayFormatSeparator","isEncodedArray","arrayValue","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","exclude","exclusionFilter","Keyframe","CLONE_DEEP_FLAG","_combineReducers3","afternoon","milliseconds","SS","SSS","HH","DD","Do","MMM","MMMM","YY","YYYY","ZZ","customParseFormat","parseTwoDigitYear","getMonth","defaultSupportedLanguages","supportedLanguages","setSupportedLanguages","fetchSupportedLanguages","defaultPageSizeOptions","_props$pageSizeOption","pageSizeOptions","changeSize","goButton","quickGo","selectComponentClass","selectPrefixCls","buildOptionText","goInputText","setGoInputText","getValidValue","mergeBuildOptionText","changeSelect","goInput","gotoButton","showSizeChangerOptions","showSizeChangerClassName","triggerNode","defaultOpen","_showSizeChanger$onCh","showTitle","onKeyPress","itemRender","pager","defaultItemRender","calculatePage","_pageSize","_props$selectPrefixCl","currentProp","_props$defaultCurrent","defaultCurrent","_props$total","pageSizeProp","_props$defaultPageSiz","defaultPageSize","_props$onChange","hideOnSinglePage","_props$showPrevNextJu","showPrevNextJumpers","showQuickJumper","_props$showTitle","_props$onShowSizeChan","_props$locale","_props$totalBoundaryS","totalBoundaryShowSizeChanger","showTotal","_props$showSizeChange","_props$itemRender","jumpPrevIcon","jumpNextIcon","paginationRef","internalInputVal","setInternalInputVal","jumpPrevPage","jumpNextPage","getItemIcon","allPages","shouldDisplayQuickJumper","handleKeyUp","newPage","hasPrev","prevHandle","nextHandle","jumpPrevHandle","jumpNextHandle","runIfEnter","restParams","handleGoTO","jumpPrev","dataOrAriaAttributeProps","totalText","jumpNext","pagerList","pagerProps","prevPage","nextPage","simplePager","pageBufferSize","prevItemTitle","nextItemTitle","jumpPrevContent","jumpNextContent","lastOne","prevButton","renderPrev","prevDisabled","nextDisabled","nextTabIndex","nextButton","renderNext","newCurrent","nextCurrent","MiniSelect","MiddleSelect","genPaginationDisabledStyle","itemActiveBgDisabled","itemActiveColorDisabled","genPaginationMiniStyle","itemSizeSM","paginationMiniOptionsMarginInlineStart","miniOptionsSizeChangerTop","paginationMiniQuickJumperInputWidth","genPaginationSimpleStyle","paginationItemPaddingInline","itemInputBg","inputOutlineOffset","genPaginationJumpStyle","paginationEllipsisLetterSpacing","textIndent","paginationEllipsisTextIndent","itemSize","paginationSlashMarginInlineEnd","paginationSlashMarginInlineStart","genPaginationItemStyle","genPaginationStyle","genPaginationFocusStyle","itemLinkBg","paginationToken","genBorderedStyle","customizeSelectPrefixCls","customLocale","useBreakpoint","mergedShowSizeChanger","iconsProps","isSmall","extendedClassName","V8_PROTOTYPE_DEFINE_BUG","objectKeys","CONSTRUCTOR","MOTION_PROP_NAMES","CSSMotionList","keyEntities","removeKey","_onVisibleChanged","changedVisible","parsedKeyObjects","prevEntity","sourceMap","removeStyleElement","_args$","_form","valueStrRef","isValidForm","namePathRef","getWatchValue","allValues","watchValue","nextValueStr","diff_match_patch","Diff_Timeout","Diff_EditCost","Match_Threshold","Match_Distance","Patch_DeleteThreshold","Patch_Margin","Match_MaxBits","DIFF_DELETE","Diff","diff_main","text1","text2","opt_checklines","opt_deadline","checklines","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","longtext","shorttext","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_lineMode_","diff_bisect_","diff_linesToChars_","chars1","chars2","linearray","lineArray","diff_charsToLines_","diff_cleanupSemantic","count_delete","count_insert","text_delete","text_insert","subDiff","text1_length","text2_length","max_d","v_offset","v_length","k1start","k1end","k2start","k2end","k1","k1_offset","k2_offset","diff_bisectSplit_","text1a","text2a","text1b","text2b","diffsb","lineHash","diff_linesToCharsMunge_","lineStart","lineArrayLength","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_commonOverlap_","text_length","best","dmp","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","best_common","prefixLength","suffixLength","hm1","hm2","equalities","equalitiesLength","lastEquality","length_insertions1","length_deletions1","length_insertions2","length_deletions2","diff_cleanupSemanticLossless","deletion","insertion","overlap_length1","overlap_length2","diff_cleanupSemanticScore_","char1","nonAlphaNumeric1","nonAlphaNumericRegex_","nonAlphaNumeric2","whitespace1","whitespaceRegex_","whitespace2","lineBreak1","linebreakRegex_","lineBreak2","blankLine1","blanklineEndRegex_","blankLine2","blanklineStartRegex_","equality1","equality2","commonOffset","commonString","bestEquality1","bestEdit","bestEquality2","bestScore","diff_cleanupEfficiency","pre_ins","pre_del","post_ins","post_del","diff_xIndex","loc","last_chars1","last_chars2","diff_prettyHtml","pattern_amp","pattern_lt","pattern_gt","pattern_para","diff_text1","diff_text2","diff_levenshtein","levenshtein","insertions","deletions","diff_toDelta","diff_fromDelta","diffsLength","decodeURI","match_main","match_bitap_","match_alphabet_","match_bitapScore_","accuracy","proximity","score_threshold","best_loc","bin_min","bin_mid","matchmask","last_rd","bin_max","rd","charMatch","patch_addContext_","start2","length1","start1","length2","patch_make","opt_b","opt_c","patches","patch_obj","patchDiffLength","char_count1","char_count2","prepatch_text","postpatch_text","diff_type","diff_text","patch_deepCopy","patchesCopy","patchCopy","patch_apply","nullPadding","patch_addPadding","patch_splitMax","start_loc","expected_loc","end_loc","index2","index1","paddingLength","patch_size","bigpatch","precontext","postcontext","patch_toText","patch_fromText","textline","textPointer","patchHeader","showReportDialog","reportDialogClosedMessageHandler","injectionPoint","split_1","DiffMatchPatch","DiffComponent","lhString","rhString","diffedLines","generateDiffedLines","setCodeMarkers","chunkType","linesToHighlight","codeEditorSettings","newMarkerSet","markerObj","cursorStart","wrapEnabled","enableBasicAutocompletion","enableLiveAutocompletion","sizeMap","mini","tiny","big","huge","massive","iconMap","TrashSvg","PhoneExternalSvg","print","cog","disk","SaveOutlined","plus","bell","PencilSvg","colorMap","ButtonWithoutSuir","labelPosition","fluid","passedThroughProps","antdSize","colorProps","finalIcon","globalHandlerLog","ev0","ev0s","ev0sf","_enhanceEventWithInitialFrame","_installGlobalOnErrorHandler","_getUnhandledRejectionError","_installGlobalOnUnhandledRejectionHandler","expandIconPosition","mergedExpandIconPosition","renderExpandIcon","panelProps","_previousCls","_previousFid","_previousLcp","_previousInp","addClsInstrumentationHandler","stopOnCallback","addMetricObserver","instrumentCls","addLcpInstrumentationHandler","instrumentLcp","addFidInstrumentationHandler","instrumentFid","addInpInstrumentationHandler","instrumentInp","addPerformanceInstrumentationHandler","durationThreshold","instrumentPerformanceObserver","getCleanupCallback","previousValue","stopListening","hasAddon","cloneEvent","resolveOnChange","PresetColors","stroke","SENTRY_API_VERSION","getBaseApiEndpoint","getEnvelopeEndpointWithUrlEncodedAuth","_getIngestEndpoint","sentry_key","sentry_version","sentry_client","_encodedAuth","getReportDialogEndpoint","dsnLike","dialogOptions","encodedOptions","modalProps","genGridColStyle","genGridStyle","gridColumns","gridColumnsStyle","genLoopGridColumnsStyle","useRowStyle","flexFlow","useColStyle","gridToken","gridMediaSizesMap","screenSize","genGridMediaStyle","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","useIcons","mergedClearIcon","getSuffixIconNode","arrowIcon","mergedSuffixIcon","mergedRemoveIcon","dashboard","sharedUser","sharedUsers","dashboards","activity","widgetTypes","userEntries","hookEvents","readers","opVideoDevices","acuConfig","opvideoDeviceListClips","GroupSizeContext","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","updateEstimate","interactionId","getInteractionCount","interactionCount","initInteractionCountPolyfill","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","maxValueLimit","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","childError","is_exception_group","exception_id","parent_id","setCacheValue","helpCls","helpItemCls","resetForm","legend","genFormSize","formItemCls","genFormStyle","genFormItemStyle","labelRequiredMarkColor","labelColor","labelFontSize","labelColonMarginInlineStart","labelColonMarginInlineEnd","itemMarginBottom","writingMode","genInlineStyle","inlineItemMarginBottom","makeVerticalLayoutLabel","verticalLabelPadding","verticalLabelMargin","makeVerticalLayout","genItemVerticalStyle","formToken","toErrorEntity","errorStatus","helpStatus","fieldId","baseClassName","collapseMotion","debounceErrors","debounceWarnings","fullKeyList","helpProps","holderProps","holderClassName","holderStyle","itemProps","itemClassName","itemStyle","formItemNameBlackList","defaultItemNamePrefixCls","getFieldId","formName","mergedId","defaultValidateStatus","toNamePathStr","rcForm","itemsRef","wrapForm","__INTERNAL__","namePathStr","scrollToField","getFieldInstance","fieldDom","getFieldDOMNode","scrollMode","InternalForm","contextForm","labelWrap","labelCol","wrapperCol","hideRequiredMark","requiredMark","feedbackIcons","restFormProps","contextValidateMessages","mergedRequiredMark","mergedColon","formClassName","fieldName","defaultScrollToFirstError","errorFields","useFormItemStatus","genFallbackStyle","_internalItemRender","formItemRender","onErrorVisibleChanged","mergedWrapperCol","subFormContext","inputDom","errorListDom","extraDom","errorList","formLocale","contextLabelAlign","contextLabelCol","contextColon","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","toTooltipProps","restTooltipProps","tooltipNode","isOptionalMark","isRenderMark","labelClassName","StatusProvider","noStyle","mergedValidateStatus","parentIsFormItemInput","parentStatus","parentHasFeedback","parentFeedbackIcon","formItemStatusContext","customIcons","customIconNode","ItemHolder","onSubItemMetaChange","formVertical","hasHelp","isOnScreen","setMarginBottom","isDebounce","getValidateState","nextVisible","MemoInput","propValueA","propValueB","isSimilarControl","FormItem","isRenderProps","notifyParentMetaChange","contextValidateTrigger","hasName","fieldKeyPathRef","subFieldErrors","setSubFieldErrors","frameRef","batchRef","useFrameState","setMeta","subMeta","uniqueKeys","prevSubFieldErrors","mergedNameKey","mergedErrors","mergedWarnings","warningList","subFieldError","getItemRef","childrenRef","nameStr","originRef","useItemRef","renderLayout","baseChildren","nextMeta","fieldKey","renderMeta","mergedName","ruleEntity","mergedControl","describedbyArr","_c2","watchingChildProps","ErrorList","hasElementType","hasMap","hasSet","hasArrayBuffer","reIsUint","onHidden","onHiddenOrPageHide","originalFunctionToString","postfix","editorOptions_1","ace_builds_1","ext_split_1","SplitComponent","isInShadow","onBeforeLoad","refEditor","splitEditor","availableOptions","debounceChangePeriod","defaultValueForEditor","valueForEditor","newAnnotations","newMarkers","handleMarkers","handleOptions","oldProps","nextProps","oldAnnotations","oldMarkers","appliedClassesArray_1","oldClass","value_1","value_2","value_3","currentMarkers","Overlay","RawPurePanel","getColorAlpha","genAlphaColor","hsba","getGradientPercentColor","filledColors","startPtg","endPtg","startColor","endColor","startRcColor","endRcColor","timeWaiting","rxTwoCNChar","isTwoCNChar","convertLegacyProps","isUnBorderedButtonVariant","spaceChildren","isPrevChildPure","isCurrentChildPure","splitCNCharsBySpace","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getSaturation","pColor","volcano","geekblue","redDark","volcanoDark","orangeDark","goldDark","yellowDark","limeDark","greenDark","cyanDark","blueDark","geekblueDark","purpleDark","magentaDark","greyDark","presetDarkPalettes","assignMergeValue","safeGet","toPlainObject","mergeFunc","isTyped","SingleObserver","sizeRef","canRef","getDom","_elementRef$current","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","formsInitialState","deleteIn","resetValues","defineBuiltIn","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","dontCallGetSet","OpSpin","spinProps","Spin","indicator","_element$props","_element$props2","inputEl","inputElement","AffixWrapperComponent","GroupWrapperComponent","WrapperComponent","GroupAddonComponent","hasAffix","groupRef","needClear","clearIconCls","affixWrapperPrefixCls","affixWrapperCls","addonCls","groupWrapperCls","mergedWrapperClassName","mergedGroupClassName","_onCompositionStart","keyLockRef","_inputRef$current3","_inputRef$current4","_inputRef$current5","_inputRef$current6","outOfRangeCls","ExecutionEnvironment","canUseWorkers","canUseEventListeners","attachEvent","canUseViewport","antStatusProcessing","antZoomBadgeIn","antZoomBadgeOut","antNoWrapperZoomBadgeIn","antNoWrapperZoomBadgeOut","antBadgeLoadingCircle","badgeFontHeight","badgeShadowSize","badgeTextColor","badgeColor","badgeColorHover","badgeShadowColor","badgeProcessingDuration","badgeRibbonOffset","badgeRibbonCornerTransform","badgeRibbonCornerFilter","indicatorZIndex","indicatorHeight","indicatorHeightSM","textFontSize","textFontSizeSM","textFontWeight","statusSize","numberPrefixCls","colorPreset","bdi","unicodeBidi","WebkitTransformStyle","WebkitBackfaceVisibility","genSharedBadgeStyle","ribbonPrefixCls","ribbonWrapperPrefixCls","statusRibbonPreset","borderBlockEndColor","genRibbonStyle","UnitNumber","originCount","prevCount","setPrevCount","onTransitionEnd","unitNodes","offsetStyle","unitNumberList","singleUnit","ScrollNumber","newProps","numberNodes","numberList","oriProps","InternalBadge","scrollNumberPrefixCls","customizeScrollNumberPrefixCls","overflowCount","showZero","numberedDisplayCount","isZero","hasStatus","showAsDot","mergedCount","isHidden","countRef","livingCount","displayCountRef","isDotRef","statusTextNode","displayNode","statusCls","badgeClassName","statusTextColor","isDot","scrollNumberCls","scrollNumberStyle","Ribbon","colorInPreset","ribbonCls","colorStyle","cornerColorStyle","oldFormat","localeMap","bn_BD","by_BY","en_GB","en_US","fr_BE","fr_CA","hy_AM","kmr_IQ","nl_BE","pt_BR","zh_CN","zh_HK","zh_TW","parseLocale","parseNoMatchNotice","getNow","getFixedDate","getEndDate","getWeekDay","weekday","getYear","getHour","getMinute","getSecond","getMillisecond","addYear","addMonth","addDate","setYear","setMonth","setHour","setMinute","setSecond","setMillisecond","date1","date2","isValidate","getWeekFirstDay","getWeekFirstDate","getWeek","getShortWeekDays","getShortMonths","localeStr","formatText","weekStr","firstWeek","collapsePanelClassName","objectIs","checkIfSnapshotChanged","latestGetSnapshot","getSnapshot","_React$useContext$pre","elementListeners","entities","_elementListeners$get","errorsInstrumented","registerSpanErrorInstrumentation","errorCallback","compactItemVerticalBorder","parentCls","genCompactItemVerticalStyle","compactCls","isShowingSitePartitioningItemsSaga","selectOrgHasFeatureCode","NAVIGATOR","TRIGGER_LABEL","FEEDBACK_WIDGET_SOURCE","sendFeedback","mergeOptions","optionOverrides","onFormOpen","onFormClose","onSubmitSuccess","onSubmitError","onFormSubmitted","themeDark","themeLight","setAttributesNS","setAttributeNS","PURPLE","DEFAULT_LIGHT","accentForeground","accentBackground","successColor","errorColor","interactiveFilter","DEFAULT_DARK","getThemedCssVariables","buildFeedbackIntegration","getModalIntegration","getScreenshotIntegration","autoInject","showBranding","isEmailRequired","isNameRequired","showEmail","showName","enableScreenshot","useSentryUser","styleNonce","colorScheme","addScreenshotButtonLabel","cancelButtonLabel","confirmButtonLabel","emailLabel","emailPlaceholder","formTitle","isRequiredLabel","messageLabel","messagePlaceholder","nameLabel","namePlaceholder","removeScreenshotButtonLabel","successMessageText","triggerLabel","triggerAriaLabel","_subscriptions","_createShadow","attachShadow","createMainStyles","_findIntegration","functionMethodName","_loadAndRenderDialog","screenshotRequired","maxTouchPoints","modalIntegration","screenshotIntegration","dialog","createDialog","_attachTo","targetEl","removeFromDom","appendToDom","_createActor","speakerDefs","speakerClipPathDef","speakerRect","FeedbackIcon","createActorStyles","Actor","createWidget","l$1","u$1","i$1","o$1","r$1","f$1","c$1","s$1","a$1","h$1","v$1","p$1","y$1","d$1","__k","__b","__e","__d","__c","__v","__i","__u","vnode","g$1","b$1","m$1","w$1","__P","__n","k$1","x$1","C$1","__r","debounceRendering","j$1","P$1","T$1","A$1","D$1","__E","q$1","__h","_sb","__s","componentWillMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","z$1","diffed","__H","__V","__N","__m","useErrorBoundary","useReducer","XMLNS$1","SentryLogo","_jsxFileName$5","DialogHeader","logoHtml","_jsxFileName$4","retrieveStringValue","defaultEmail","defaultName","screenshotInput","showScreenshotInput","setShowScreenshotInput","ScreenshotInputComponent","screenshotError","setScreenshotError","onScreenshotError","hasAllRequiredFields","missingFields","emptyFields","getMissingFields","LabelText","WIDTH","HEIGHT","XMLNS","SuccessIcon","_jsxFileName$3","Dialog","successIconHtml","setTimeoutId","handleOnSuccessClick","userKey","isolationUser","globalUser","createDialogStyles","originalOverflow","createInput","B$1","createScreenshotInputStyles","surface200","gray100","_jsxFileName","CROP_BUTTON_OFFSET","CROP_BUTTON_SIZE","DPI","constructRect","endX","endY","getContainedSize","imgClientHeight","imgClientWidth","ScreenshotEditorFactory","imageBuffer","useTakeScreenshot","onBeforeScreenshot","onScreenshot","onAfterScreenshot","monitorTypeSurfaces","onloadedmetadata","takeScreenshot","useTakeScreenshotFactory","CropCorner","onGrabButton","CropCornerFactory","canvasContainerRef","cropContainerRef","croppingRef","croppingRect","setCroppingRect","confirmCrop","setConfirmCrop","isResizing","setIsResizing","resizeCropper","cropper","imageDimensions","cropButton","makeHandleMouseMove","croppingBox","strokeStyle","strokeRect","cropCanvas","cropBoundingRect","initialPositionRef","initialX","initialY","imageSource","moveEvent","newStartX","newStartY","newEndX","newEndY","cutoutCanvas","imageBox","cutoutCtx","toBlob","SCOPE_SPAN_FIELD","_setSpanForScope","_getSpanForScope","reHasUnicode","_isSameStacktrace","currentEvent","previousEvent","currentFrames","previousFrames","frameA","frameB","_isSameFingerprint","currentFingerprint","previousFingerprint","_getExceptionFromEvent","currentMessage","previousMessage","_isSameMessageEvent","previousException","currentException","_isSameExceptionEvent","_shouldDropEvent","genTooltipStyle","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","TooltipToken","SpaceCompactItemContext","useCompactItemContext","compactItemContext","compactDirection","isFirstItem","isLastItem","NoCompactStyle","CompactItem","directionConfig","clx","ruleType","_inheritsLoose","_oldOnErrorHandler","addGlobalErrorInstrumentationHandler","instrumentError","styleTarget","HTMLIFrameElement","selectFirstValidCloudKeyId","foundValid","ck","validStart","validEnd","dividerProps","PortalInner","_this$props$mountNode","mountNode","latestDocumentMouseDownEvent","handleDocumentMouseDown","handleDocumentClick","currentMouseDownEvent","handleEscape","closeOnEscape","handlePortalMouseLeave","mouseLeaveTimer","closeWithTimeout","handlePortalMouseEnter","handleTriggerBlur","didFocusPortal","handleTriggerClick","handleTriggerFocus","handleTriggerMouseLeave","mouseEnterTimer","handleTriggerMouseEnter","_len6","_key6","openWithTimeout","eventClone","handleMount","handleUnmount","handleTriggerRef","eventPool","Inner","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","pref","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","addElementStyle","byIndex","lastIdentifiers","newList","newLastIdentifiers","baseMergeDeep","LCPThresholds","reportedMetricIDs","onLCP","timeZoneName","hour12","formatToParts","toLocaleString","$set","$timezone","DropdownButton","buttonsRender","destroyPopupOnHide","buttonPrefixCls","dropdownProps","leftButton","rightButton","leftButtonToRender","rightButtonToRender","SCOPE_ON_START_SPAN_FIELD","ISOLATION_SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","getRealPlacement","getoffsetUnit","realPlacement","offsetUnit","BUILT_IN_PLACEMENTS","_ref$builtinPlacement","dropdownPrefixCls","leftPad","fillIndex","pickProps","getRowFormat","fieldTimeFormat","fieldDateTimeFormat","fieldMonthFormat","fieldYearFormat","fieldQuarterFormat","fieldWeekFormat","fieldDateFormat","getFromDate","calendarValues","activeIndexList","mergedActiveIndex","firstValuedIndex","pickTriggerProps","useCellRender","cellRender","dateRender","monthCellRender","mergedCellRender","originNode","useFieldsInvalidate","calendarValue","isInvalidateDate","allowEmpty","fieldsInvalidates","setFieldsInvalidates","fillTimeFormat","showHour","showMinute","showSecond","showMillisecond","showMeridiem","timeFormat","showProps","use12Hours","cellYearFormat","cellQuarterFormat","cellDateFormat","fillLocale","checkShow","keyword","showTimeKeys","isStringFormat","existShowConfig","fillShowConfig","hasShowConfig","parsedShowHour","parsedShowMinute","parsedShowSecond","_parsedShowHour","_parsedShowMinute","_parsedShowSecond","existFalse","existTrue","defaultShow","getTimeProps","componentProps","_pickTimeProps","timeProps","propFormat","pickTimeProps","_pickTimeProps2","pickedProps","showTimeConfig","timeConfig","defaultOpenValue","_fillShowConfig","_fillShowConfig2","fillShowTimeConfig","showTimeFormat","baselineFormat","formatList","_fillShowConfig3","_fillShowConfig4","fillClearIcon","WEEK_DAY_COUNT","nullableCompare","oriCompareFn","isSameDecade","decade1","decade2","isSameYear","year1","year2","getQuarter","isSameMonth","month1","month2","isSameDate","isSameTime","time1","time2","isSameTimestamp","isSameWeek","weekStartDate1","weekStartDate2","quarter1","quarter2","isSameQuarter","isSameOrAfter","fillTime","tmpDate","getFn","useList","fillMode","useFilledProps","_props$picker","_props$order","_props$components","inputRender","inputReadOnly","disabledDate","minDate","maxDate","defaultPickerValue","defaultValues","pickerValues","defaultPickerValues","internalPicker","multipleInteractivePicker","complexPicker","mergedNeedConfirm","_getTimeProps","_getTimeProps2","localeTimeProps","mergedShowTime","filledProps","_useFieldFormat","firstFormat","maskFormat","useFieldFormat","_useFieldFormat2","mergedInputReadOnly","useInputReadOnly","disabledBoundaryDate","useDisabledBoundary","outsideInfo","_showTime$disabledTim","disabledTime","disabledHours","disabledMinutes","disabledSeconds","disabledMilliseconds","legacyDisabledHours","legacyDisabledMinutes","legacyDisabledSeconds","mergedDisabledHours","mergedDisabledMinutes","mergedDisabledSeconds","useInvalidate","useOpen","nextValueRef","_useDelayState","_useDelayState2","rafOpen","setRafOpen","usePickerRef","selectorRef","_selectorRef$current","_selectorRef$current2","_selectorRef$current3","usePresets","legacyRanges","useLockEffect","delayFrames","callbackRef","useRangeActive","activeListRef","lastOperationRef","nextFocus","filledActiveSet","offsetPanelDate","useRangePickerValue","modes","pickerMode","multiplePanel","timeDefaultValue","onPickerValueChange","isTimePicker","getDefaultPickerValue","_pickerValue","startPickerValue","endPickerValue","mergedStartPickerValue","setStartPickerValue","mergedEndPickerValue","setEndPickerValue","currentPickerValue","setCurrentPickerValue","nextPickerValue","prevActiveIndexRef","getEndDatePickerValue","offsetPickerValue","controlledValue","valueRef","useControlledValueFirst","EMPTY_VALUE","useUtil","dates","orderDates","useInnerValue","rangeValue","_useCalendarValue","setCalendarValue","syncWithValue","useCalendarValue","_useCalendarValue2","_useUtil","_useUtil2","getDateTexts","isSameDates","triggerCalendarChange","nextCalendarValues","_isSameDates","_isSameDates2","isSameMergedDates","isSameStart","cellTexts","useRangeValue","getCalendarValue","orderOnChange","_useUtil3","_useUtil4","_useSyncState3","_useSyncState4","submitValue","setSubmitValue","triggerSubmit","isNullValue","_clone","_clone2","startEmpty","endEmpty","validateEmptyDateRange","validateOrder","validateDates","allPassed","_isSameDates3","flushSubmit","needTriggerChange","nextSubmitValue","interactiveFinished","useShowNow","showNow","emptyDisabled","generateUnits","hideDisabledOptions","disabledUnits","pad","integerStep","useTimeInfo","_ref$hourStep","hourStep","_ref$minuteStep","minuteStep","_ref$secondStep","secondStep","_ref$millisecondStep","millisecondStep","mergedDate","getDisabledTimes","targetDate","disabledConfig","mergedDisabledMilliseconds","getAllUnits","getDisabledHours","getDisabledMinutes","getDisabledSeconds","getDisabledMilliseconds","nextHour","nextMinute","nextSecond","rowHourUnits","getMinuteUnits","getSecondUnits","getMillisecondUnits","nextTime","certainDate","getCheckHourUnits","getCheckMinuteUnits","getCheckSecondUnits","getCheckMillisecondUnits","_getDisabledTimes","_getDisabledTimes2","targetDisabledHours","targetDisabledMinutes","targetDisabledSeconds","targetDisabledMilliseconds","_getAllUnits","_getAllUnits2","targetRowHourUnits","validateDate","getHourUnits","nextDate","alignValidate","getUnitValue","setUnitValue","nextUnit","validateUnits","validateUnit","findValidateTime","Footer","onNow","_React$useContext$but","_useTimeInfo","getValidTime","extraNode","nowDisabled","nowPrefixCls","nowBtnPrefixCls","presetNode","validateNow","okNode","rangeNode","useToggleDates","panelMode","sliceList","PanelContext","usePanelContext","useInfo","panelType","hoverValue","hoverRangeValue","onHover","PickerHackContext","PanelBody","rowNum","colNum","baseDate","getCellDate","prefixColumn","rowClassName","titleFormat","getCellText","getCellClassName","headerCells","_props$cellSelection","cellSelection","_usePanelContext","contextDisabledDate","mergedDisabledDate","cellPrefixCls","onCellDblClick","rowNode","rowStartDate","currentDate","inRange","_hoverRangeValue","hoverStart","hoverEnd","HIDDEN_STYLE","superOffset","getStart","getEnd","_usePanelContext$prev","_usePanelContext$next","_usePanelContext$supe","_usePanelContext$supe2","headerPrefixCls","hidePrev","hideNext","hideHeader","disabledOffsetPrev","prevPanelLimitDate","disabledSuperOffsetPrev","disabledOffsetNext","nextPanelLimitDate","disabledSuperOffsetNext","onOffset","onSuperOffset","prevBtnCls","nextBtnCls","superPrevBtnCls","superNextBtnCls","DatePanel","_props$panelName","panelName","onModeChange","_props$mode","showWeek","panelPrefixCls","isWeek","_useInfo","_useInfo2","weekFirstDay","monthStartDate","startDateWeekDay","alignStartDate","getWeekStartDate","weekDaysLocale","shortWeekDays","monthsLocale","shortMonths","yearNode","monthNode","monthFormat","monthYearNodes","SPEED_PTG","SCROLL_DELAY","TimeColumn","optionalValue","onDblClick","changeOnScroll","ulRef","checkDelayRef","clearDelayCheck","_useScrollTo","scrollingRef","scrollRafRef","scrollDistRef","stopScroll","scrollRafTimesRef","targetLi","firstLi","doScroll","firstLiTop","targetLiTop","nextTop","_useScrollTo2","syncScroll","isScrolling","columnPrefixCls","liDistList","minDist","minDistIndex","targetUnit","unitValue","subType","isAM","TimePanelBody","_usePanelContext$onHo","_useTimeInfo2","_getUnitValue","_getUnitValue2","pickerHour","_getUnitValue3","_getUnitValue4","pickerMinute","_getUnitValue5","_getUnitValue6","pickerSecond","_getUnitValue7","_getUnitValue8","pickerMillisecond","hourUnits","getEnabled","_enabledUnits$","enabledUnits","validHour","minuteUnits","validMinute","secondUnits","validSecond","millisecondUnits","validMillisecond","meridiemUnits","amDate","pmDate","formatMeridiem","defaultLabel","triggerDateTmpl","tmpl","isNotNull","fillColumnValue","getNextHourTime","getNextMinuteTime","getNextSecondTime","getNextMillisecondTime","getMeridiemTime","sharedColumnProps","TimePanel","DefaultComponents","mergeTime","cloneDate","localeName","rowPrefixCls","rangeCls","isRangeStart","isRangeEnd","disabledInfo","nextMonthStartDate","getStartYear","getEndYear","startYearDate","endYearDate","startMonth","endMonth","decade","baseStartDate","baseStartMonth","baseStartYear","baseEndYear","baseEndDate","startYearStr","endYearStr","PickerPanel","onPanelChange","rootRef","filledLocale","setMergedMode","toggleDates","onInternalSelect","newDate","mergedPickerValue","setInternalPickerValue","triggerPanelChange","viewDate","nextMode","setPickerValue","triggerPanelEvent","triggerModeChange","hoverRangeDate","onInternalCellRender","PanelComponent","parentHackContext","pickerPanelContext","panelCls","decadeYearQueue","decadeYearMonthQueue","PopupPanel","internalOffsetDate","sharedContext","pickerProps","executeValue","PresetPanel","_props$activeOffset","activeOffset","onPresetHover","onPresetSubmit","onPanelMouseDown","isInvalid","containerOffset","setContainerOffset","filterEmpty","_arrowRef$current","isTimePickerEmptyValue","footerSubmitValue","popupPanelValue","disableSubmit","mergedNodes","containerPrefixCls","useInputProps","preserveInvalidOnBlur","_onFocus","_onBlur","onInvalid","_onKeyDown","activeHelp","allHelp","parseDate","valueTexts","defaultSize","_validateFormat","singleFormat","getProp","pickedAttrs","validateFormat","helped","onHelp","prevented","propNames","useRootProps","ClearIcon","FORMAT_KEYS","MaskFormat","replaceKeys","replaceReg","cellReg","strCells","maskCells","maskCellIndex","maskChar","textChar","anchorIndex","closetDist","closetIndex","_this$maskCells$i","_props$showActiveCls","showActiveCls","_props$preserveInvali","_React$useContext$inp","internalInputValue","focusCellText","setFocusCellText","focusCellIndex","setFocusCellIndex","forceSelectionSyncMark","forceSelectionSync","onModify","triggerInputChange","mouseDownRef","onSharedBlur","onSharedKeyDown","nextCellText","nextFillText","maskCellLen","cellFormat","offsetCellIndex","offsetCellValue","_getMaskRange","getMaskRange","_getMaskRange2","rangeDefault","currentText","currentTextNum","nextFocusValue","closeMaskIndex","getMaskCellIndex","pasteText","RangeSelector","_props$separator","onActiveOffset","_onMouseDown","inputStartRef","inputEndRef","getInput","_getInput","_ref$index","_index2","_getInput2","_getInput3","_getInput4","mergedPlaceholder","_useInputProps","getInputProps","placementRight","activeBarStyle","setActiveBarStyle","syncActiveOffset","_input$nativeElement","parentWidth","showClear","startAutoFocus","endAutoFocus","separateConfig","singleConfig","getActiveRange","_useFilledProps","_useFilledProps2","_useOpen","_useOpen2","setMergeOpen","fieldDisabled","_useInnerValue","_useInnerValue2","triggerOk","_useRangeActive","_useRangeActive2","lastOperation","nextActiveIndex","onSharedFocus","proxyDisabledTime","setModes","mergedShowNow","_useRangeValue","_useRangeValue2","triggerSubmitChange","mergedInfo","useRangeDisabledDate","_useFieldsInvalidate","_useFieldsInvalidate2","submitInvalidates","onSelectorInvalid","_useRangePickerValue","_useRangePickerValue2","triggerEvent","clonePickerValue","fillCalendarValue","triggerPartConfirm","skipFocus","hoverSource","setHoverSource","internalHoverValues","setInternalHoverValues","hoverValues","setActiveOffset","presetList","panelValue","isPopupInvalidateDate","lastOp","_activeElement","enabledIndex","MultipleDates","_props$removeIcon","formatDate","maxTagCount","selectorCls","selectionCls","overflowCls","renderSelector","omittedValues","SingleSelector","_useInputProps2","selectorNode","oriDate","Picker","pickerParam","dateStrings","filteredInfo","onInternalChange","submitInvalidate","invalidated","cleanInfo","lastPickerValue","triggerConfirm","internalHoverValue","setInternalHoverValue","selectorValues","horizontalSize","verticalSize","isPresetVerticalSize","isPresetHorizontalSize","isValidVerticalSize","isValidHorizontalSize","spaceContext","gapStyle","keepDom","maskMotion","portal","onPointerEnter","onPointerDownCapture","isNodeVisible","getPopupContainerNeedParams","setShow","AUTO","_experimental","alignRight","alignBottom","miscStyle","resizeObserverRef","_motion$onVisibleChan","hookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","parsedDateParts","era","rfc2822","weekdayMismatch","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","_isValid","createInvalid","updateInProgress","momentPropertiesLen","_isAMomentObject","_l","_locale","Moment","suppressDeprecationWarnings","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","quarters","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","isoweeks","isoweek","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","isoWeekday","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","strictRegex","getParseRegexForToken","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","HOUR","MINUTE","SECOND","MILLISECOND","WEEKDAY","daysInYear","getSetYear","makeGetSet","set$1","getMilliseconds","getSeconds","getMinutes","getHours","getDay","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setUTCFullYear","setFullYear","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","matchMeridiem","_meridiemParse","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","getLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","configFromArray","expectedWeekday","yearToUse","nowValue","_useUTC","currentDateArray","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","unitHasDecimal","orderLen","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offsetFromString","chunkOffset","cloneWithOffset","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","positiveMomentsDifference","inp","createAdder","addSubtract","isAdding","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","propertyLen","isMomentInputObject","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","isCalendarSpec","sod","calendarFormat","asFloat","zoneDelta","startOfDate","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","prioritizedLen","keepOffset","inspect","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","isDSTShifted","_isDSTShifted","dontConvert","compareArrays","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","_monthsShort","_monthsParseExact","firstDayOfYear","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME_SECONDS","TIME_MS","getMainCarrier","getSentryCarrier","isNodeEnv","createUserFeedbackEnvelope","createUserFeedbackEnvelopeItem","isPointsEq","getAlignPopupClassName","isAlignPoint","_builtinPlacements$pl","getWin","collectScroller","scrollStyle","_getWin$getComputedSt","toNum","getPxValue","getVisibleArea","initArea","HTMLBodyElement","HTMLHtmlElement","_getWin$getComputedSt2","overflowClipMargin","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleTop","eleRight","eleBottom","allPromiseFinish","promiseList","react_1","isReact16Plus","customizeIcon","customizeIconProps","WebkitUserSelect","BaseSelectContext","useBaseProps","useLock","timeoutRef","_inputNode2","activeDescendantId","_onCompositionEnd","inputNode","_inputNode","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","isTitleType","getTitle","_value$key","onPreventMouseDown","autoClearSearchValue","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","onToggleOpen","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","measureRef","inputWidth","setInputWidth","selectionPrefixCls","inputEditable","defaultRenderSelector","itemDisabled","customizeRenderSelector","isMaxTag","selectionNode","valueItem","displayLabel","strLabel","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","selectionTitle","Selector","compositionStatusRef","tokenWithEnter","onSearchSubmit","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","replacedText","MultipleSelector","msTouchAction","inputMouseDown","SelectTrigger","_props$direction","onPopupMouseEnter","popupNode","mergedBuiltinPlacements","mergedTransitionName","isNumberPopupWidth","triggerPopupRef","getPopupElement","_triggerPopupRef$curr","isValidCount","fillFieldNames","fieldNames","childrenAsData","mergedLabel","groupLabel","injectPropsWithOption","newOption","Polite","DEFAULT_OMIT_PROPS","BaseSelect","_customizeRawInputEle","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","_props$notFoundConten","getInputElement","getRawInputElement","onDropdownVisibleChange","onActiveValueChange","onSearchSplit","tokenSeparators","OptionList","_props$showAction","mergedShowSearch","selectorDomRef","blurRef","_useDelayReset","setBool","delayRef","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","mergedSearchValue","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","setRendered","innerOpen","setInnerOpen","emptyListContent","newOpen","tokenSeparator","onInternalSearch","searchText","fromTyping","isCompositing","newSearchText","separatedList","separate","restTokens","prevList","unitStr","getSeparatedContent","patchLabels","getClearLock","setClearLock","focusRef","activeTimeoutIds","onTriggerVisibleChange","customizedTrigger","onGlobalMouseDown","_triggerRef$current2","composed","useSelectTriggerControl","arrowNode","baseSelectContext","toggleOpen","_useAllowClear","onClearMouseDown","useAllowClear","_selectorRef$current4","clearNode","optionList","restArgs","_listRef$current2","clearLock","isEnterKey","cloneDisplayValues","removedDisplayValue","_listRef$current3","isSelectOptGroup","isSelectOption","_useBaseProps","onPopupScroll","flattenOptions","onActiveValue","defaultActiveFirstOption","optionRender","memoFlattenOptions","overMaxCount","onListMouseDown","getEnabledActiveIndex","setActive","fromKeyboard","flattenItem","onSelectValue","appVersion","_item$data","omitFieldNameList","getLabel","getItemAriaProps","itemData","a11yProps","itemIndex","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","optionOnly","_ref2$props","_ref$props","convertNodeToOption","valueOptions","labelOptions","setLabelOptions","labelOptionsMap","dig","isChildren","useRefFunc","funcRef","OMIT_DOM_PROPS","TypedSelect","backfill","_props$autoClearSearc","_props$dropdownMatchS","_props$listHeight","_props$listItemHeight","labelRender","labelInValue","mergedFilterOption","mergedFieldNames","parsedOptions","convert2LabelValues","draftValues","rawLabel","rawDisabled","rawTitle","_val$value","isRawValue","_option$key","setInternalValue","rawLabeledValues","_values$","isComboNoValue","_useCache","labeledValues","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","_prevValueCache$get","valueCache","optionCache","_useCache2","mergedValues","getMixedOption","firstValue","_mergedValues$","createTagOption","filteredOptions","fieldOptions","fieldLabel","customizeFilter","upperSearch","filterFunc","wrapOption","subOptions","subItem","useFilterOptions","cloneOptions","existOptions","filledSearchOptions","sorter","inputOptions","orderedFilteredOptions","displayOptions","_fillFieldNames","isGroupOption","grpLabel","newVal","_mergedValues$index","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref3$source","triggerSelect","getSelectEnt","_option$key2","_getSelectEnt","_getSelectEnt2","wrappedValue","_option","_getSelectEnt3","_getSelectEnt4","_wrappedValue","_option2","mergedSelect","selectContext","realVirtual","newRawValues","patchValues","newRawValue","isNavigator","arrayFilter","SentrySpan","_traceId","_spanId","_name","_parentSpanId","_sampled","_isStandaloneSpan","_onSpanEnded","_link","addLinks","recordException","_exception","_time","traceFlags","updateStartTime","timeInput","_status","updateName","getSpanJSON","_metrics_summary","exclusive_time","is_segment","attributesOrStartTime","isSpanTimeInput","isStandaloneSpan","spanItems","sendSpanEnvelope","transactionEvent","_convertSpanToTransaction","isFullFinishedSpan","createErrorClass","createImpl","ctorFunc","UnsubscriptionError","Subscription","initialTeardown","_parentage","_finalizers","_parentage_1","_parentage_1_1","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","teardown","_hasParent","_addParent","_removeParent","EMPTY","EMPTY_SUBSCRIPTION","isSubscription","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","errorContext","errorThrown","Subscriber","isStopped","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","_complete","_bind","ConsumerObserver","partialObserver","handleUnhandledError","SafeSubscriber","observerOrNext","context_1","Observable","_subscribe","lift","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","pipe","fns","hasLift","liftedSource","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","ConnectableObservable","subjectFactory","_subject","_refCount","_connection","getSubject","subject_1","refCounter","sharedConnection","conn","timestampProvider","performanceTimestampProvider","animationFrameProvider","ObjectUnsubscribedError","Subject","currentObservers","thrownError","AnonymousSubject","_throwIfClosed","_checkFinalizedStatuses","_innerSubscribe","asObservable","BehaviorSubject","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","_infiniteTimeWindow","_trimBuffer","adjustedBufferSize","AsyncSubject","_hasValue","_isComplete","scheduler","work","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","_execute","_delay","errorValue","activeHandles","findAndClearHandle","clearImmediate","immediateProvider","AsapAction","_scheduled","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","QueueAction","AsapScheduler","flushId","AnimationFrameAction","QueueScheduler","VirtualAction","AnimationFrameScheduler","VirtualTimeScheduler","maxFrames","frameTimeFactor","sortActions","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","NotificationKind","readableStreamLikeToAsyncGenerator","releaseLock","isReadableStreamLike","obs","fromAsyncIterable","iterable_1","iterable_1_1","asyncIterable","asyncIterable_1","asyncIterable_1_1","parentSubscription","scheduleSubscription","scheduleAsyncIterable","scheduleObservable","scheduleArray","schedulePromise","scheduleReadableStreamLike","scheduled","project","resultSelector","concurrent","onBeforeNext","innerSubScheduler","additionalFinalizer","isComplete","checkComplete","outerNext","doInnerSub","innerComplete","bufferedValue","Notification","do","nextHandler","completeHandler","nextOrObserver","toObservable","errorOrErrorFactory","errorFactory","createNext","createComplete","completeNotification","allParticipantRoomEvents","isSourceWitOptions","isSourcesWithOptions","getTrackReferences","onlySubscribedTracks","trackReferences","sourceReferences","loadFromLocalStorage","saveToLocalStorage","__objRest","RoomContext","useRoomContext","useEnsureRoom","LKFeatureContext","defaultRoomProps","useLiveKitRoom","passedRoom","onConnected","onMediaDeviceFailure","onEncryptionError","setRoom","onSignalConnected","localP","handleMediaDeviceError","mediaDeviceFailure","handleEncryptionError","connectionStateChangeListener","useTracks","setTrackReferences","setParticipants","sources_","additionalRoomEvents","onlySubscribed","observeRoomEvents","room2","trackReferencesObservable","updateOnlyOn","trackReferences2","participants2","maybeTrackReferences","requirePlaceholder","placeholderMap","sourcesThatNeedPlaceholder","sourceWithOption","withPlaceholder","sourcesOfSubscribedTracks","trackSource","placeholderNeededForThisParticipant","setB","_difference","requiredPlaceholders","trackReferencesWithPlaceholders","placeholderSource","LiveKitRoom","featureFlags","DEFAULT_ENVIRONMENT","enableStatistic","CSSINJS_STATISTIC","objs","_tokenKeys","_statistic$componentN","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","executor","PENDING","_handlers","onfulfilled","onrejected","_executeHandlers","onfinally","_setResult","RESOLVED","REJECTED","cachedHandlers","NotificationContext","isKeyable","frameElement","skipOverflowHiddenElements","scrollX","scrollY","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","cachePathMap","ATTR_CACHE_MAP","CSS_FILE_STYLE","fromCSSFile","existPath","_item$split","_item$split2","_inlineMapStyle$paren","inlineMapStyle","getStyleAndHash","_style","$findLastIndex","addToUnscopables","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isReactComponent","isPureReactComponent","ReactCurrentDispatcher","ReactCurrentBatchConfig","_currentValue","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","_payload","startTransition","unstable_act","useDeferredValue","useTransition","themeStyle","toHsl","rx","ry","shadowColor","contentColor","genSharedEmptyStyle","emptyImgHeight","emptyImgHeightMD","emptyImgHeightSM","emptyToken","emptyImgCls","defaultEmptyImg","simpleEmptyImg","imageStyle","des","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","captureAggregateMetrics","metricsEnvelope","createMetricEnvelopeItem","createMetricEnvelope","defaultLocale","fullLocale","localeFromContext","localeCode","onSuccessMessage","onErrorMessage","onSuccessCallback","onErrorCallback","queryKeysToInvalidate","_onError","_onSuccess","catchMutateAsyncError","useOpMutationOptions","useQueryClient","finalMutationFn","apiEndpointRequirements","rawPayload","rawQuery","mutationResponse","mutationArgs","rawMutateAsync","OpError","useShowArrow","aa","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","qa","oa","xlinkHref","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","ab","bb","db","eb","defaultSelected","gb","hb","ib","jb","lb","mb","namespaceURI","MSApp","execUnsafeLocalFunction","ob","gridArea","lineClamp","qb","rb","menuitem","embed","hr","keygen","wbr","ub","wb","xb","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","Wb","memoizedState","dehydrated","Xb","Zb","Yb","$b","bc","gc","hc","ic","jc","kc","lc","clz32","qc","LN2","rc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","Zc","$c","ad","bd","cd","ed","gd","hd","Uc","jd","kd","ld","nd","od","pd","qd","_reactName","_targetInst","isDefaultPrevented","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","ud","vd","Ad","screenX","screenY","zd","toElement","movementX","movementY","Bd","Dd","Fd","Hd","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Left","Up","Right","Down","Del","Win","Apps","MozPrintableKey","Nd","Od","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","Zd","documentMode","oninput","detachEvent","compareDocumentPosition","contentEditable","focusedElem","anchorNode","anchorOffset","focusNode","focusOffset","animationiteration","animationstart","af","bf","cf","df","ef","ff","gf","lf","mf","nf","Ub","qf","rf","tf","vf","wf","xa","$a","ba","je","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","mg","ng","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","bh","dh","eh","fh","gh","ih","jh","kh","nh","_reactInternals","lh","mh","oh","ph","qh","UNSAFE_componentWillReceiveProps","rh","UNSAFE_componentWillMount","_stringRef","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","ci","baseQueue","di","ei","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","ji","mi","ni","lastEffect","stores","oi","qi","ri","si","ui","vi","wi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","pingCache","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","rendering","renderingStartTime","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","bk","dk","ek","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","pendingChildren","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","fl","gl","hl","zj","$k","ml","_internalRoot","pl","ql","sl","unstable_scheduleHydration","tl","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","wl","supportsFiber","unstable_strictMode","hydrate","hydratedSources","_getVersion","_source","unstable_renderSubtreeIntoContainer","eraYearOrdinalRegex","$defineProperty","ENUMERABLE","WRITABLE","Attributes","TinyColor","originalInput","roundA","gradientType","getBrightness","isLight","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","isMonochrome","toHsvString","toHslString","toHex8","toHex8String","allowShortChar","toPercentageRgb","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","brighten","tint","shade","desaturate","saturate","greyscale","rgb1","rgb2","analogous","slices","complement","monochromatic","modification","splitcomplement","triad","polyad","tetrad","_config$useCSP","concatComponent","mergedLayer","_useToken3","_usePrefix","_genMaxMin","_statisticToken","proxyToken","defaultComponentToken","styleInterpolation","commonStyle","prefixToken","originUnitless","originCompUnitless","compUnitless","useCSSVar","_options$injectStyle","CSSVarRegister","_ref$cssVar","genCSSVarRegister","_useStyle","_useCSSVar","_useCSSVar2","_ref2$rootCls","ensureIsArray","UNTERMINATED","TERMINATED","createCacheNode","weakMapMemoize","fnNode","resultEqualityCheck","lastResult","resultsCount","cacheNode","objectCache","objectNode","primitiveCache","primitiveNode","terminatedNode","lastResultValue","clearCache","resetResultsCount","createSelectorCreator","memoizeOrOptions","memoizeOptionsFromArgs","createSelectorCreatorOptions","memoizeOptions","createSelector2","createSelectorArgs","recomputations","dependencyRecomputations","directlyPassedOptions","resultFunc","assertIsFunction","combinedOptions","argsMemoize","argsMemoizeOptions","devModeChecks","finalMemoizeOptions","finalArgsMemoizeOptions","itemTypes","assertIsArrayOfFunctions","getDependencies","memoizedResultFunc","inputSelectorResults","inputSelectorArgs","collectInputSelectorResults","resetDependencyRecomputations","resetRecomputations","createStructuredSelector","inputSelectorsObject","selectorCreator","assertIsObject","inputSelectorKeys","useDebouncedState","debouncedState","setDebouncedState","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","currBaggageObject","baggageHeaderToObject","parseBaggageHeader","baggageEntry","keyOrValue","arrayIncludes","arrayIncludesWith","memoBuilder","hasWeakSet","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorPrimaryText","colorSuccessBgHover","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorTextHover","colorErrorTextActive","colorWarningActive","colorWarningTextHover","colorWarningTextActive","colorInfoBgHover","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","overlayCls","settingOpen","autoAdjustOverflowTopBottom","autoAdjustOverflowLeftRight","upcUrl","FROZEN_DSC_FIELD","freezeDscOnSpan","spanWithMaybeDsc","getDynamicSamplingContextFromClient","getDynamicSamplingContextFromSpan","frozenDsc","traceState","traceStateDsc","dscOnTraceState","jsonSpan","maybeSampleRate","sample_rate","DownloadSvg","mergedShowArrow","tooltipRef","forcePopupAlign","noTitle","tooltipPlacements","mergedArrowPointAtCenter","memoOverlay","memoOverlayWrapper","injectFromPopover","tempOpen","childCls","customOverlayClassName","vis","Status","splitPathRe","resolvedPath","resolvedAbsolute","allowAboveRoot","normalizeArray","fromParts","toParts","samePartsLength","outputParts","truncated","splitPath","faviconsContext","administrators","remoteUnlock","guestPass","schedules","lockdown","apiIntegration","wiegandRelay","directorySync","webHooks","customEntryStates","singleSignOn","lifetimeWarranty","subOrgs","elevatorIoBoards","vms","advancedAlerts","advancedReports","customFields","customAgreements","granularPermissions","dynamicPermissions","basicRulesEngine","advancedRulesEngine","azureIdentityProvider","oktaIdentityProvider","oneloginIdentityProvider","gsuiteIdentityProvider","fifteenMinSync","groupImportFilter","manualPrivacyManagement","automatedPrivacyManagement","userEmailSupport","userPhoneSupport","syncAudit","syncNotification","customRetention","forensicReporting","userManagementUsers","occupancyManagement","merakiCameras","merakiVms","basicTechSupport","premiumTechSupport","enterpriseTechSupport","standardServiceLevelAgreement","apiIntegrationCS","customDashboards","allegionNdebLeb","badgePrinting","allegionNdebLebNonOp","cloudVideoStorage30","cloudVideoStorage60","cloudVideoStorage90","cloudVideoStorage180","scheduledReports","gSuiteUsers","activeDirectoryUsers","oktaUsers","oneLoginUsers","appMarketplace","voiceAssistant","workdayIdentityProvider","workdayUsers","alarmConfigurations","openAlarms","alarmRateLimit","musterReport","staticCloud","alarmManagement","subOrgsVideo","occupancyReport","samlSso","samlJitIdentityProvider","raveAlert","arizeBuildings","courtReserve","userSitePartitioning","events2hvac","idelerTime","elevatedLiving","yourGolfBooking","mobileCredentials","equiem","smartSpaces","hapana","yardiBluepoint","yellowbox","immixProtect","flashParking","everbridge","robinPowered","communico","invisit","mobileWallet","_getIn","SentryNonRecordingSpan","_timestamp","_attributesOrStartTime","notifyEventProcessors","PanelPickerContext","PanelPresetsContext","genColor","ColorFormat","colorSteppersPrefixCls","setStepValue","colorAlphaInputPrefixCls","alphaValue","setAlphaValue","hexReg","colorHexInputPrefixCls","hexValue","setHexValue","colorHsbInputPrefixCls","hsbValue","setHsbValue","handleHsbChange","colorRgbInputPrefixCls","rgbValue","setRgbValue","handleRgbChange","onFormatChange","colorFormat","setColorFormat","colorInputPrefixCls","steppersNode","newFormat","GradientColorSlider","onKeyDelete","sliderProps","linearCss","pointColor","onInternalDragStart","onInternalDragChange","unstableContext","handleCls","sliderContext","sortColors","GradientColorBar","onGradientDragging","colorList","colorsRef","newPointColor","nextColors","nextColor","panelPickerContext","modeOptions","gradientDragging","injectProps","getColors","isSingle","lockedColor","setLockedColor","activeColor","pickerColor","setPickerColor","forceSync","setForceSync","mergedPickerColor","fillColor","submitColor","infoType","infoValue","operationNode","showMode","clearColor","fromPicker","onPickerChange","onInternalChangeComplete","ColorPresets","colorPickerPanelPrefixCls","panelContext","presetContext","innerPanel","Presets","ColorTrigger","showText","colorTriggerPrefixCls","colorTextPrefixCls","colorTextCellPrefixCls","inactive","hexString","containerNode","toCssString","getTransBg","colorPickerInsetShadow","colorPickerAlphaInputWidth","colorPickerInputNumberHandleWidth","colorPickerHandlerSize","colorPickerPresetColorSize","colorPickerHandlerSizeSM","colorPickerSliderHeight","handleInnerSize","handleHoverSize","activeHandleStyle","genActiveStyle","outlineColor","genRtlStyle","genClearStyle","red6","genStatusStyle","genColorPickerStyle","colorPickerWidth","colorPickerPreviewSize","colorPickerToken","popupOpen","setPopupOpen","openData","setFormatValue","setColor","modeState","setModeState","setMergedColor","modeOptionList","modeSet","pushOption","modeType","localeTxt","cacheColor","setCacheColor","postColor","colorObj","postMode","useModeColor","isAlphaColor","cachedGradientColor","setCachedGradientColor","changeColor","changeFromPickerDrag","setGradientDragging","rtlCls","mergedRootCls","mergedPopupCls","popoverProps","popupOverlayInner","ReactAce","onValidate","navigateToFileEnd","updatePlaceholder","valueChanged","handleScrollMargins","margins","showPlaceholder","enableSnippets","SENTRY_XHR_DATA_KEY","addXhrInstrumentationHandler","instrumentXHR","xhrproto","originalOpen","xhrOpenThisArg","xhrOpenArgArray","__sentry_own_request__","onreadystatechangeHandler","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","sendThisArg","sendArgArray","unescapes","lexStep","isSigned","punctuator","stringStartIndex","numberString","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","arrayBufferTag","equalByTag","equalObjects","baseIsEqualDeep","AsyncValidator","replaceMessage","CODE_LOGIC_ERROR","validateRule","_validateRule","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","ruleIndex","defaultField","mergedMessage","validateRules","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w2","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_finishOnAllFailed","finishOnAllFailed","errorsList","ruleError","Deno","v8","injectQuery","searchQuery","currentQuery","_currentQuery$split2","initialRouterState","initInputToken","initComponentToken","DEFAULT_IGNORE_ERRORS","_getEventFilterUrl","_getLastValidUrl","_hint","clientOptions","internalOptions","allowUrls","denyUrls","ignoreErrors","disableErrorDefaults","ignoreTransactions","ignoreInternal","_mergeOptions","_isSentryError","possibleMessages","lastException","_getPossibleEventMessages","_isIgnoredError","_isUselessError","_isIgnoredTransaction","_isDeniedUrl","_isAllowedUrl","errorDescription","SizeContextProvider","originSize","supportsHistory","chromeVar","chrome","isChromePackagedApp","hasHistoryApi","CurrentTime","setCurrentTime","FullscreenButton","handleFullscreenToggleClick","isNotFullscreen","liveText","textShadow","LiveButton","isVideoStateMachineEnabled","useVideoState","currentVideoState","isDurationInfiniteOrLessThanTwo","humanReadableState","MicrophoneToggleButton","toggleHandler","isMicOn","setIsMicOn","handleButtonClick","PlayButton","handlePlayToggleClick","iconName","RelativeTime","millisecondsSinceEpoch","SeekBar","handleSeek","sliderContainerRef","useMouseHovered","isHovering","useHoverDirty","hoverTimeStyles","TimeDisplay","UpperControls","upperControls","isPersisted","fadeInStyles","VideoPlayer","preventedHotkeys","hiddenElements","preventVideoClick","upperControlsContent","errorProps","initialVolume","videoProps","setIsPaused","setDuration","cachedVolume","fullscreenContainerRef","controlsRef","playerContainerRef","playerContainerWidth","isHoveringVideo","isHoveringControls","isFullScreen","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","playerHeight","streamTimeout","playerContainer","fullscreenContainer","bigPauseButton","bigPlayButton","fixedLiveButton","handleMuteToggleClick","handleVolumeSliderChange","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","newCurrentTime","handleVideoClick","handleTimeUpdate","prevVolume","handlePlayerClick","tip","spinning","onTimeUpdate","BigPlayButton","VolumeButton","handleRetryClick","buttonContent","videoDownloadButtonProps","volumeContainerRef","sliderContainer","CALL_ICONS","START_CALL","PhoneFilledSvg","END_CALL","NO_ICON","PREVIEW","SURVEILLANCE","getIconKey","callState","isDangerStatus","CONNECTION_ERROR","callStates","SHOULD_RECONNECT","popupContent","SIZE","MASK","NOT_SET","SetRef","OwnerID","ensureSize","__iterate","returnTrue","wrapIndex","uint32Index","wholeSlice","isNeg","resolveBegin","resolveIndex","resolveEnd","defaultIndex","IS_COLLECTION_SYMBOL","isCollection","maybeCollection","IS_KEYED_SYMBOL","isKeyed","maybeKeyed","IS_INDEXED_SYMBOL","maybeIndexed","isAssociative","maybeAssociative","Seq","KeyedCollection","KeyedSeq","IndexedCollection","IndexedSeq","SetCollection","SetSeq","Keyed","Indexed","IS_SEQ_SYMBOL","isSeq","maybeSeq","IS_RECORD_SYMBOL","isRecord","maybeRecord","maybeImmutable","IS_ORDERED_SYMBOL","isOrdered","maybeOrdered","ITERATE_KEYS","ITERATE_VALUES","ITERATE_ENTRIES","REAL_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ITERATOR_SYMBOL","iteratorValue","iteratorResult","iteratorDone","hasIterator","maybeIterable","getIteratorFn","isIterator","maybeIterator","getIterator","iteratorFn","VALUES","ENTRIES","emptySequence","maybeIndexedSeqFromValue","fromEntrySeq","isKeysIterable","toSetSeq","ObjectSeq","seqFromValue","cacheResult","__iterateUncached","entrySeq","__iterator","__iteratorUncached","toKeyedSeq","keyedSeqFromValue","toIndexedSeq","indexedSeqFromValue","ArraySeq","notSetValue","_object","EMPTY_SEQ","CollectionSeq","_collection","iterations","IS_MAP_SYMBOL","maybeMap","isOrderedMap","maybeOrderedMap","isValueObject","maybeValue","hashCode","imul","smi","i32","defaultValueOf","hashNullish","hashNumber","STRING_HASH_CACHE_MIN_STRLEN","stringHashCache","hashString","STRING_HASH_CACHE_SIZE","STRING_HASH_CACHE_MAX_SIZE","usingWeakMap","UID_HASH_KEY","canDefineProperty","getIENodeHash","nextHash","isExtensible","hashJSObj","hashSymbol","nullish","_objHashUID","ToKeyedSequence","indexed","useKeys","_iter","_useKeys","valueSeq","this$1$1","reversedSequence","reverseFactory","mappedSequence","mapFactory","ToIndexedSequence","ToSetSequence","FromEntriesSequence","validateEntry","indexedCollection","flipFactory","flipSequence","makeSequence","flip","cacheResultThrough","filterFactory","filterSequence","sliceFactory","originalSize","sliceSize","resolvedBegin","resolvedSize","sliceSeq","isSkipping","skipWhileFactory","skipSequence","skipping","flattenFactory","flatSequence","stopped","flatDeep","currentDepth","sortFactory","defaultComparator","isKeyedCollection","maxFactory","maxCompare","zipWithFactory","keyIter","zipper","iters","zipAll","zipSequence","iterators","isDone","reify","collectionClass","arrCopy","newArr","assertNotInfinite","coerceKeyPath","parentProto","nextProto","isDataStructure","quoteString","_ignoreError","shallowCopy","collectionCopy","updateIn$1","updateInDeeply","inImmutable","wasNotSet","existingValue","nextExisting","nextUpdated","emptyMap","setIn$1","removeIn","update$1","merge$1","mergeIntoKeyedWith","mergeWith$1","merger","collections","collection$1","__ownerID","mergeIntoCollection","oldVal","mergeWithSources","mergeDeep$1","mergeDeepWithSources","mergeDeepWith$1","deepMerger","newDataStructure","oldSeq","newSeq","deepMergerWith","mergeItem","hasVal","nextVal","mergeDeep","mergeDeepWith","mergeIn","mergeDeepIn","mutable","asMutable","wasAltered","__ensureOwner","asImmutable","__altered","keyValues","_root","updateMap","deleteAll","__hash","OrderedMap","MapIterator","iterate","ownerID","makeMap","MapPrototype","ArrayMapNode","keyHash","didChangeSize","didAlter","MAX_ARRAY_MAP_SIZE","ValueNode","createNodes","isEditable","newEntries","BitmapIndexedNode","bit","popCount","keyHashFrag","updateNode","MAX_BITMAP_INDEXED_SIZE","including","expandedNodes","HashArrayMapNode","expandNodes","isLeafNode","newBitmap","newNodes","setAt","canEdit","newLen","spliceOut","spliceIn","newCount","MIN_HASH_ARRAY_MAP_SIZE","excluding","packedII","packedNodes","packNodes","HashCollisionNode","mergeIntoNode","keyMatch","EMPTY_MAP","_reverse","mapIteratorFrame","mapIteratorValue","subNode","__prev","newRoot","newSize","idx1","idx2","IS_LIST_SYMBOL","maybeList","emptyList","makeList","VNode","listNodeFor","_origin","setListBounds","newTail","_tail","getTailOffset","_capacity","updateVNode","updateList","arguments$1","seqs","iterateList","ListPrototype","removeBefore","originIndex","newChild","removingFirst","oldChild","editableVNode","removeAfter","sizeIndex","tailPos","iterateNodeOrLeaf","iterateLeaf","iterateNode","nodeHas","lowerNode","newLowerNode","rawIndex","oldOrigin","oldCapacity","newOrigin","newCapacity","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","EMPTY_ORDERED_MAP","emptyOrderedMap","updateOrderedMap","newMap","makeOrderedMap","omap","IS_STACK_SYMBOL","isStack","maybeStack","emptyStack","pushAll","_head","makeStack","EMPTY_STACK","StackPrototype","unshiftAll","IS_SET_SYMBOL","maybeSet","isOrderedSet","maybeOrderedSet","notAssociative","allEqual","keyCopier","result$1","emptySet","fromKeys","intersect","SetPrototype","union","updateSet","didChanges","mapEntries","OrderedSet","__make","__empty","EMPTY_SET","makeSet","EMPTY_RANGE","_start","_end","possibleIndex","getIn$1","searchKeyPath","hasIn$1","useTuples","toOrderedMap","toOrderedSet","toSet","toStack","__toStringMapper","singleton","concatSeq","flatten","concatFactory","partition","isKeyedIter","partitionFactory","findEntry","sideEffect","joined","initialReduction","butLast","countBy","grouper","countByFactory","entriesSequence","entryMapper","filterNot","findKey","findLastEntry","findLastKey","flatMapFactory","searchKey","groupBy","groupByFactory","isSubset","isSuperset","keyOf","keyMapper","lastKeyOf","maxBy","neg","defaultNegComparator","minBy","skipLast","skipWhile","skipUntil","takeLast","takeWhile","takeSequence","iterating","takeWhileFactory","takeUntil","keyed","murmurHashOfSize","hashMerge","hashCollection","CollectionPrototype","mapKeys","KeyedCollectionPrototype","removeNum","numArgs","spliced","interpose","interposedSequence","interposeFactory","interleave","zipped","zip","defaultZipper","zipWith","IndexedCollectionPrototype","SetCollectionPrototype","reduction","useFirst","emptyOrderedSet","EMPTY_ORDERED_SET","OrderedSetPrototype","makeOrderedSet","PairSorting","LeftThenRight","RightThenLeft","Record","hasInitialized","throwOnInvalidDefaultValues","RecordType","RecordTypePrototype","_indices","_defaultValues","recordName","RecordPrototype","recordSeq","makeRecord","getDescriptiveName","likeRecord","EMPTY_REPEAT","Repeat","fromJSWith","defaultConverter","parentValue","converted","depsEqual","targetScrollList","popupScrollList","mergedList","notifyScroll","generatePropagationContext","isBright","bgColorToken","genCollapsePanelKey","presetsValue","colorPresetsPrefixCls","activeKeys","presetColor","requestAndSetPageData","alarmIdExt","alarmData","sourceEventTimestamp","sourceEvent","visualActivity","cameras","visualActivityData","idExt","includeDeeplinks","alarmConfiguration","alarmConfigurationName","alarmSeverity","triggeredTime","triggeredAt","alarmStatus","siteName","assignedUser","hardware","alarmActionId","isNoteRequiredToAcknowledge","isNoteRequired","requestAndSetOrgUsers","filterQuery","requestAlarmAction","compactItemBorder","childCombinator","hoverEffects","compactItemBorderRadius","genCompactItemStyle","_config$offset","_config$threshold","_config$gap","getGlobalScope","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","DoStep","prepareOnly","setStep","_useNextFrame","_useNextFrame2","cancelNextFrame","STEP_QUEUE","nextStep","doNext","isCanceled","hasSubOrgsFeature","hasPartnerScope","PortalComponent","_props$action","focusDelay","blurDelay","_props$builtinPlaceme","getPopupClassNameFromAlign","mergedAutoDestroy","subPopupElements","registerSubPopup","subPopupEle","setPopupEle","externalPopupRef","setPopupRef","setTargetEle","externalForwardRef","setTargetRef","originChildProps","_getShadowRoot","_getShadowRoot2","childDOM","mergePopupMotion","mergeMaskMotion","internalOpen","setInternalOpen","setMergedOpen","lastTriggerRef","internalTriggerOpen","_lastTriggerRef$curre","clearDelay","inMotion","setInMotion","_React$useState11","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState13","_React$useState14","mousePos","setMousePos","setMousePosByEvent","_useAlign","_useAlign2","alignInfo","_useAction","_useAction2","showActions","hideActions","clickToShow","triggerAlign","alignedClassName","_React$useState15","_React$useState16","setTargetWidth","_React$useState17","_React$useState18","setTargetHeight","syncTargetSize","wrapperAction","preEvent","_originChildProps$eve","_originChildProps$onC","onPopupMouseLeave","onPopupPointerDown","hoverToShow","hoverToHide","_originChildProps$onM","_originChildProps$onC2","mergedChildrenProps","_mergedChildrenProps$","innerArrow","defaultIconPrefixCls","Variants","ConfigConsumer","omniSelectReducer","tableReducer","renderEffect","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","currentElem","MAX_TRAVERSE_HEIGHT","sepLength","nextStr","_htmlElementAsString","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","getLocationHref","getComponentName","PROMISE_RESOLVED_VOID","resolveWith","randomToken","lastMs","microSeconds","NativeMethod","channelName","messagesCallback","subFns","msgEvent","channelState","messageJson","canBeUsed","_pubkey","averageResponseTime","ObliviousSet","_to","obliviousSet","olderThen","removeTooOldValues","originalOptions","webWorkerSupport","idb","fallbackInterval","localstorage","removeTimeout","maxParallelWrites","useFastPath","OBJECT_STORE_ID","TRANSACTION_SETTINGS","durability","getIdb","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","commitIndexedDBTransaction","_readLoop","readNewMessages","lastCursorId","objectStore","keyRangeValue","IDBKeyRange","getAllRequest","onsuccess","openCursorRequest","openCursor","getMessagesHigherThan","newerMessages","useMessages","msgObj","eMIs","messagesCallbackTime","_filterMessage","msgObjA","msgObjB","IndexedDBMethod","dbName","openRequest","onupgradeneeded","createObjectStore","autoIncrement","createDatabase","writeBlockPromise","readQueuePromises","readerUuid","writeObject","oncomplete","msgObk","tooOld","deleteRequest","removeMessagesById","cleanOldMessages","getLocalStorage","ls","LocalstorageMethod","addStorageEventListener","writeObj","defaultTime","SIMULATE_CHANNELS","SimulateMethod","METHODS","OPEN_BROADCAST_CHANNELS","lastId","maybePromise","chooseMethods","useMethod","_iL","_onML","_addEL","_uMP","_befC","_prepP","_post","sendPromise","_hasMessageListeners","_addListenerObject","listenerFn","listenerObject","_startListening","_removeListenerObject","_stopListening","postInternal","listenObj","awaitPrepare","baseIsArguments","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","dynamicStyleMark","registerTheme","formatColor","colorVal","primaryActiveColor","warningColor","infoColor","getOwnPropertyDescriptorModule","referrer","Referer","noSplit","notSplit","_VideoCameraOutlined","MotionProvider","createBaseFor","fireScopeCheck","fireAuthRedirect","clearOrgSpecificStoreData","rootContainerMounted","requestPackageUpgradeWithCode","isChannel","patchHistoryMethod","_SaveOutlined","ignoreOnError","shouldIgnoreOnError","sentryWrapped","wrappedArguments","IS_NEW_UNIFICATION_AUTH_ENABLED","awareRequest","errorObject","describeUser","normalizedUrl","describeDevicePermission","listRules","listRulesPermissions","updateRule","awareRuleId","describeConfig","OverrideProvider","_CloseOutlined","divWrapper","addClassDecoratorSupport_1","noWrap","Facc","faccProps","isClassDecoratorMethodCall","Klass","Enhanced","includeRender","includeUpdates","_mountSpan","updateProps","changedProps","_updateSpan","renderSpan","EntryUnlockButton","setUserEntries","acuEntries","setAcuEntries","selectedEntryId","setSelectedEntryId","currentUserId","listUserEntriesData","listCameraEntriesData","entryName","unlockableEntryDropdownOptions","timeoutStates","LiveKitCallManager","setCallState","setConnectionState","setShouldStartLive","setErrorProps","currentTracks","roomContext","tracksTracker","participantsUnmuted","monitoringParticipantMicTracks","setMonitoringParticipantMicTracks","timeoutState","callTimeout","previewTimeout","disconnectIfNoInteractionTimeout","shouldResetTimeout","setShouldResetTimeout","enableMicrophone","MicEnabled","MicDisabled","manageAnswerOrMic","cleanUpTracks","currentStream","previousTracks","updateTracks","ConnectionSuccessful","WebRTCReconnected","startTeardown","EndCall","TeardownCompleted","getUnmutedParticipants","isOpvideoDevice","ShouldReconnect","ConnectionFailed","StartTeardown","reconnectToPreview","ConnectionStart","clearTimeoutType","clearTimeouts","reconnectAndClearTimeouts","startDisconnectIfNoInteractionTimeout","handleTimeoutExpiration","isPreviewOrSurveillance","startTimeout","callOrPreviewTimeout","setPreviewOrCallTimeout","useDisconnectCallTimeout","LiveKitVideoPlayer","roomProp","tokenProp","wsUrlProp","generateUserLiveToken","generateObserverLiveToken","shouldStartLive","noVideoDetectedTimeout","isMasterMode","hasAllParameters","startLive","startLiveDidError","fetchUserToken","didEncounterErrorWhileFetchingToken","showErrorMessageAndStopSpinner","retryHandler","UpdateCallData","clearConnectionTimeout","videoElement","startNoVideoDetectedTimeout","clipPlaybackError","useOpVideoPlayerData","startAt","endAt","unixTimestamp","isIncomingCall","playerValues","setPlayerValues","describeOpvideoDeviceErrorMessage","cameraStaleSnapshot","prevPlayerValues","IncomingCall","useHls","playerRef","autoPlay","noFragTimeout","addSecondsIntervalRef","setProgramDateTime","setupHls","opvideoDeviceHlsPlaybackUrlData","opvideoDeviceHlsPlaybackUrlErrorMessage","clipFound","cloudRetentionHours","playPromise","VideoDownloadButton","downloadUrl","VideoPlayerComponent","NewOpVideoPlayer","isClip","livekitAuth","livekitRoom","videoPlayerProps","setInitialVolume","shouldStopVideoCall","setShouldStopVideoCall","hasShownMicAlert","sethasShownMicAlert","videoStateContext","handleMicState","isMicEnabled","micPermissionStatus","opvideoIntercom","recordPreEventSeconds","recordPostEventSeconds","blurredThumbnailUrl","MicPermissionEnabled","MicPermissionDisabled","intercomCallButtonClick","StartCall","JoinCall","VideoDetails","useIntercomCallButtonClick","WebRtcButton","useUpperControlsContent","elementsToHide","videoPlayerErrorProps","endLoading","useVideoLoadingEvents","poster","WrappedOpVideoPlayer","VideoStateProvider","setIsMicrophoneEnabled","handleCallButtonClick","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","spanToTransactionTraceContext","spanToJSON","spanToTraceContext","spanTimeInputToSeconds","ensureTimestampInSeconds","spanIsSentrySpan","castSpan","spanIsOpenTelemetrySdkTraceBaseSpan","getStatusMessage","spanIsSampled","CHILD_SPANS_FIELD","ROOT_SPAN_FIELD","addChildSpanToSpan","getSpanDescendants","addSpanChildren","childSpans","getRootSpan","getActiveSpan","updateMetricSummaryOnActiveSpan","DEFAULT_BREADCRUMBS","beforeBreadcrumb","finalBreadcrumb","COMPARE_UNORDERED_FLAG","asyncTag","nullTag","proxyTag","undefinedTag","moduleExports","nativeIsBuffer","applySdkMetadata","devToolsAdapter","devTools","__xstate__","getDevTools","Mailbox","_current","enqueue","enqueued","consumed","STATE_DELIMITER","TARGETLESS_KEY","XSTATE_INIT","XSTATE_ERROR","XSTATE_STOP","createDoneStateEvent","createErrorActorEvent","actorId","createInitEvent","symbolObservable","matchesState","parentStateId","childStateId","parentStateValue","toStateValue","childStateValue","toStatePath","stateId","isMachineSnapshot","pathToStateValue","statePath","mapValues","collectionKeys","toArrayStrict","resolveOutput","toTransitionConfigArray","configLike","transitionLike","toObserver","completionHandler","createInvokeId","stateNodeId","resolveReferencedActor","machine","implementations","actors","indexStr","invokeConfig","getStateNodeById","getAllOwnEventDescriptors","ownEvents","createScheduledEventId","actorRef","idCounter","executingCustomAction","ProcessingStatus","clock","logic","mailbox","eventListeners","_processingStatus","NotStarted","_parent","_syncSnapshot","_actorScope","_systemId","system","_doneEvent","_deferred","syncSnapshot","rootActor","keyedActors","reverseKeyedActors","inspectionObservers","timerMap","scheduledEvent","scheduledEventId","_scheduledEvents","_relay","_bookId","_unregister","observerOrFn","_sendInspectionEvent","resolvedInspectionEvent","sourceRef","_send","scheduledEvents","scheduledId","_clock","createSystem","stopChild","_stop","emittedEvent","wildcardListener","allListeners","actionExecutor","saveExecutingCustomAction","Running","_initState","persistedState","restoreSnapshot","getInitialSnapshot","deferredFn","_stopProcedure","nextListenerOrObserver","completeListener","Stopped","wrappedHandler","attachDevTools","caughtError","_reportError","xstate$$type","getPersistedSnapshot","createActor","interpret","resolveCancel","actionArgs","actionParams","sendId","executeCancel","actorScope","_params","resolveSpawn","_actionParams","resolvedId","resolvedInput","cloneMachineSnapshot","executeSpawn","spawnChild","resolveStop","actorRefOrString","resolvedActorRef","executeStop","checkStateIn","isStateId","stateIn","checkNot","evaluateGuard","checkAnd","checkOr","guardArgs","guardParams","isAtomicStateNode","getProperAncestors","toStateNode","getAllStateNodes","stateNodes","nodeSet","adjList","getAdjList","initialStates","getInitialStateNodesWithTheirAncestors","initialStateNode","getValueFromAdj","baseNode","childStateNodes","childStateNode","getStateValue","isInFinalState","stateNodeSet","formatTransition","transitionConfig","normalizedTarget","reenter","isInternalTarget","getStateNodeByPath","resolvedTarget","resolveTarget","resolveHistoryDefaultTransition","isHistoryNode","getInitialStateNodes","descStateNode","getStateNode","stateKey","arrayStatePath","currentStateNode","getStateNodes","childStateKeys","subStateKey","allSubStateNodes","subStateNode","subStateNodes","transitionNode","transitionAtomicNode","subStateKeys","transitionCompoundNode","allInnerTransitions","subStateValue","innerTransitions","transitionParallelNode","getHistoryNodes","isDescendant","parentStateNode","hasIntersection","set1","set2","removeConflictingTransitions","enabledTransitions","historyValue","filteredTransitions","t1Preempted","transitionsToRemove","computeExitSet","getEffectiveTargetStates","getTransitionDomain","targetStates","findLeastCommonAncestor","statesToExit","microstep","currentSnapshot","isInitial","internalQueue","mutStateNodeSet","_actionExecutor","nextSnapshot","changedHistory","exitStateNode","historyNode","resolveActionsAndContext","exitStates","statesToEnter","statesForDefaultEntry","addDescendantStatesToEnter","addAncestorStatesToEnter","computeEntrySet","completedNodes","stateNodeToEnter","invokeDef","onSnapshot","initialActions","ancestorMarker","rootCompletionNode","getMachineOutput","enterStates","nextStateNodes","prevStateNodes","nextStateNodeSet","areStateNodeCollectionsEqual","doneStateEvent","historyStateNodes","addProperAncestorStatesToEnter","historyDefaultTransition","reentrancyDomain","anc","resolveAndExecuteActionsWithContext","intermediateSnapshot","resolvedAction","builtinAction","deferredActorIds","retryResolve","macrostep","microstates","addMicrostate","microstate","_transitions","stopChildren","nextEvent","isErrorActorEvent","selectTransitions","shouldSelectEventlessTransitions","selectEventlessTransitions","getTransitionData","enabledTransitionSet","atomicStates","always","machineSnapshotMatches","testValue","machineSnapshotHasTag","machineSnapshotCan","transitionData","machineSnapshotToJSON","can","hasTag","jsonValues","machineSnapshotGetMeta","createMachineSnapshot","persistContext","contextPart","resolveRaise","eventOrExpr","delaysMap","delays","resolvedEvent","resolvedDelay","configDelay","executeRaise","fromTransition","instanceStates","fromCallback","callbackState","sendBack","receive","XSTATE_OBSERVABLE_NEXT","XSTATE_OBSERVABLE_ERROR","XSTATE_OBSERVABLE_COMPLETE","fromObservable","observableCreator","_subscription","fromEventObservable","lazyObservable","XSTATE_PROMISE_RESOLVE","XSTATE_PROMISE_REJECT","controllerMap","fromPromise","promiseCreator","resolvedValue","emptyLogic","createEmptyActor","createSpawner","spawnedChildren","resolveAssign","assignment","assignArgs","partialUpdate","propAssignment","resolveEmit","executeEmit","SpecialTargets","resolveSendTo","targetActorRef","Internal","retryResolveSendTo","executeSendTo","sendTo","sendParent","resolveEnqueueActions","collect","enqueueActions","resolveLog","executeLog","assertEvent","typesText","memoizedData","EMPTY_OBJECT","toSerializableAction","StateNode","_machine","idMap","stateConfig","transitionsConfig","onDone","delayedTransition","formatTransitions","flat","invokeDefValues","afterConfig","delayedTransitions","configTransition","resolvedTransition","afterEvent","mutateEntryExit","getDelayedTransitions","_target","formatInitialTransition","selectedTransition","getCandidates","receivedEventType","eventDescriptor","partialEventTokens","eventTokens","partialEventToken","eventToken","resolvedContext","guardPassed","guardType","StateMachine","__xstatenode","provide","resolveState","resolvedStateValue","getPreInitialState","preInitial","preInitialState","macroState","resolvedStateId","childrenJson","snapshotChildren","actorData","childState","restoredSnapshot","reviveContext","createInertActorScope","actorLogic","getNextSnapshot","inertActorScope","SimulatedClock","_now","_flushing","_flushingInvalidated","flushTimeouts","_idA","timeoutA","_idB","timeoutB","endA","executableActions","initialTransition","defaultWaitForOptions","waitFor","abortListener","checkEmitted","emitted","isProduction","provided","startProfileForSpan","profiler","profileId","onProfileHandler","maxDurationTimeoutID","originalEnd","getCloseIcon","typeToIcon","notificationClassName","jumpWhitespace","inc","whitespaceToken","extractNextToken","consumedTokens","nextNonWhitespaceToken","getParseOptions","includeValueTokens","makeRange","startToken","endToken","makeJsonPrimitive","ensureType","readColon","punctuatorToken","whitespaceBefore","whitespaceAfter","makeJsonAny","firstToken","whitespaceAfterChildren","propStartToken","keyToken","valueTokens","beforeComma","whitespaceBeforeComma","comma","valueNode","makeJsonObject","elemStartToken","makeJsonArray","jsonDoc","offsetToken","decorateOffsets","lastPos","countCharUntil","markIdentifier","pathAsPath","pathAsDotPath","pathAsPointerPath","dotPath","bail","parseDotPath","pointerPath","parseJsonPointerSegment","parseJsonPointerPath","parsePath","explainWhere","getParentPath","foundNode","pathItem","processHoursFunction","nominative","accusative","genitive","forEachActor","stopRootWithRehydration","persistedSnapshots","systemSnapshot","useIdleActorRef","newActorRef","__unsafeAllowInlineActors","useActorRef","observerOrListener","defaultCompare","handleStoreChange","boundGetSnapshot","createActorContext","actorOptions","ReactContext","OriginalProvider","providedLogic","providedOptions","useActor","actorSnapshot","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","getAxisLength","getAlignmentAxis","expandPaddingObject","computeCoordsFromPlacement","floating","sideAxis","alignmentAxis","alignLength","commonAlign","coords","_await$platform$isEle","offsetScale","getScale","convertOffsetParentRelativeRectToViewportRelativeRect","isNode","_node$ownerDocument","isOverflowElement","isTopLayer","isContainingBlock","elementOrCss","webkit","containerType","CSS","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","traverseIframes","_node$ownerDocument2","scrollableAncestor","getCssDimensions","hasOffset","shouldFallback","unwrapElement","domElement","noOffsets","getVisualOffsets","visualOffsets","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","offsetRect","isStaticPositioned","svgOffsetParent","topLayer","clippingAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","currentNodeIsContaining","getClippingElementAncestors","firstClippingAncestor","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","crossAxis","convertValueToCoords","alignmentOffset","checkCrossAxis","limiter","detectOverflowOptions","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","_middlewareData$flip","initialPlacement","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","initialSideAxis","getExpandedPlacements","hasFallbackAxisSideDirection","getSideList","getOppositeAxisPlacements","overflowsData","sides","mainAlignmentSide","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","arrowDimensions","isYAxis","clientProp","largestPossiblePadding","minPadding","maxPadding","min$1","shouldAddOffset","platformWithCache","validMiddleware","statefulPlacement","nextX","nextY","computePosition","isAbsolute","hasTrailingSlash","isToAbs","isFromAbs","mustEndAbs","valueEqual","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","URIError","locationsAreEqual","createTransitionManager","setPrompt","nextPrompt","confirmTransitionTo","appendListener","notifyListeners","getConfirmation","PopStateEvent","HashChangeEvent","getHistoryState","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","revertPop","initialLocation","checkDOMListeners","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","toAbsoluteIndex","IS_INCLUDES","indexof","charat","strlen","sizeof","dateObject","isIterateeCall","assigner","isNew","getServerSnapshot","instRef","memoizedSelector","hasMemo","memoizedSnapshot","memoizedSelection","nextSelection","maybeGetServerSnapshot","circumference","CustomCircle","hasCircleCls","viewSize","hideClassName","setRender","safePtg","circleStyle","Looper","Indicator","antSpinMove","antRotate","genSpinStyle","contentHeight","dotSizeSM","dotSizeLG","spinDotDefault","animationDirection","animationDelay","strokeLinecap","spinToken","STEP_BUCKETS","defaultIndicator","customSpinning","fullscreen","setSpinning","shouldDelay","mergedPercent","mockPercent","setMockPercent","mockIntervalRef","isAuto","restPTG","stepPtg","usePercent","showSpinning","isNestedPattern","spinClassName","containerClassName","mergedIndicator","spinElement","setDefaultIndicator","onVisibilityUpdate","getVisibilityWatcher","TRACING_DEFAULTS","idleTimeout","finalTimeout","childSpanTimeout","functionToString","createOptions","pathToData","pathToLabel","pathToValue","numerifyOptionValues","optionData","optionValue","apiEndpointsWhiteList","verifyQueryOptions","useCreateOptions","valueProp","debouncedQuery","sharedArgs","mainDataOptions","isMainDataLoading","isMainDataFetching","mainDataQueryOptions","clonedQueryOptions","createMainDataQueryOptions","useCreateMainDataOptions","initialValueOptions","isInitialValueDataLoading","initialDataQueryOptions","initialValueArray","initialValuesWithoutOptions","filterPath","filterRegex","formattedFilter","useCreateInitialValueQueryOptions","useCreateInitialValueOptions","dedupedFinalOptions","createFinalOptions","setQuery","firstDisabledOption","isOptionForSingleModeValueDisabled","CALC_UNIT","CSSCalculator","numType","getResult","lowPriority","cssUnit","mergedUnit","contextLines","frameContextLines","htmlFilename","htmlLines","linesOfContext","applySourceContextToFrame","addSourceContext","GLOBAL_OBJ","getGlobalSingleton","creator","gbl","versionedCarrier","_RightOutlined","replaceElement","ensureObject","expectedParametersLength","isNativeFunction","supportsNativeFetch","EdgeRuntime","supportsFetch","supportsReportingObserver","confirmLoading","renderCloseIcon","CHECK_ACCESS_TOKEN","CHECK_INVITE_TOKEN","LOGOUT_REQUEST","FETCH_GET_MFA_CREDENTIALS","MENUITEMS_ROUTES","classof","orgSiteIds","baseUniq","defaultPresetColors","trimmedEndIndex","FormStore","forceRootUpdate","formHooked","subscribable","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","getFieldEntities","isMergedPreserve","isPreserve","watchList","fieldEntities","nameList","getFieldsMap","INVALIDATE_NAME_PATH","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","requiredFieldEntities","records","_requiredFieldEntitie","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","_namePath","childrenFields","getDependencyChildrenFields","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","arg2","provideNameList","TMP_SPLIT","validateNamePathList","lastValidatePromise","resultNamePathList","outOfDate","triggerNamePathList","formRef","formStore","getForm","MAX_SIGNED_31_BIT_INT","commonjsGlobal","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","changedBits","_React$Component2","observedBits","_proto2","createNamedContext","historyContext","_isMounted","_pendingLocation","computeRootMatch","MemoryRouter","Lifecycle","Prompt","_ref$when","cacheLimit","cacheCount","generatePath","Redirect","computedMatch","_ref$push","cache$1","cacheLimit$1","cacheCount$1","_options$exact","_options$sensitive","_compilePath","cacheKey","compilePath$1","context$1","isEmptyChildren","createURL","staticHandler","StaticRouter","handlePush","handleReplace","handleListen","handleBlock","_this$props$basename","_this$props$context","addBasename","_this$props2$basename","_this$props2$context","_this$props2$location","withRouter","wrappedComponentRef","remainingProps","useHistory","useParams","useRouteMatch","thing","quitOnNullishReturnValue","clickedRef","returnValueOfOnOk","handlePromiseOnOk","inlineMock","nextInline","PanelContent","token2CSSVar","serializeCSSVar","cssVars","transformToken","_config$preserve","_config$ignore","_config$unitless","defaultRequestInstrumentationOptions","traceFetch","traceXHR","enableHTTPTimings","P1Svg","P2Svg","P3Svg","P4Svg","P5Svg","iconLookup","intercom","alarmHigh","alarmMedium","alarmLow","p5","ClearAllAlertsButton","audioByAlertId","AlertWrapperWithoutSuir","canEditAlarms","alarmEditRouteConfig","handleAlertClosed","displayNotification","alertTimeout","notifType","resourceType","resourceUid","isAlarmHigh","isAlarmMedium","isAlarmLow","isIntercom","handleCloseAll","_messages","source_","series","getValidationMethod","doIt","addFullField","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchemaList","errs","finalErrors","asyncValidator","_console$error","_console","suppressValidatorError","messageIndex","MotionWrapper","needWrapMotionProviderRef","redirectRoute","intercomDirectoryQrRoute","intercomDirectoryRoute","mfaManagementRoute","appDetailsRoute","appQuantityRequestRoute","maintenanceRoute","customDashboardsRoute2","accessGroupsCreateRoute","videoIntercomConfigurationRoute","integrationsIdentityProviderConfigRouteTemplate","badgeTemplatesRoute","samlSsoConfigurationRoute","floorsCreateRoute","floorsEditRoute","unitsCreateRoute","unitsEditRoute","softwareLicensesRoute","requestsTableRoute","subscriptionRenewalSummaryRoute","userCredentialsEditRoute","reFlags","createHTMLMediaHook","elOrProps","playing","wrapEvent","userEvent","onPlay","onVolumeChange","onDurationChange","lockPlay","resetLock","seek","isDayjs","REQUEST_LOAD_BILLING_FORM_VALUES","REQUEST_EDIT_BILLING_SUBSCRIPTION","SET_TOS_INFORMATION","REQUEST_SIGN_TERMS_OF_SERVICE","REQUEST_GET_BILLING_INFORMATION","REQUEST_SAML_APP_LOGIN","REQUEST_ERP_SAML_APP_LOGIN","REQUEST_UPDATE_BILLABLE_FEATURES","INVOICES_TABLE","REQUEST_ADD_QUANTITY_FORM","GO_TO_STORE_FORM","REQUEST_ADD_USER_LICENSES","act","defaultGlobalConfig","getGlobalContext","GlobalHolder","GlobalHolderWrapper","setNotificationConfig","rootIconPrefixCls","flushNotice","holderFragment","newNotification","staticMethods","splitColorStr","parseNum","numList","parseHSVorHSL","limitRange","FastColor","matchFormat","fromHexString","fromRgbString","fromHslString","fromHsvString","_v","fromHsl","fromHsv","setR","_sc","setG","adjustGamma","getMax","getMin","getLightness","_brightness","rHex","gHex","bHex","aHex","connectNum","huePrime","chroma","secondComponent","lightnessModification","vv","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","debugger","INPThresholds","getInteractionCountForNavigation","longestInteractionList","longestInteractionMap","processEntry","minLongestInteraction","existingInteraction","interaction","onINP","prevEntry","candidateInteractionIndex","estimateP98LongestInteraction","PerformanceEventTiming","genButtonBorderStyle","buttonTypeCls","clearContainerCache","_contains","_canUseDom","isFlattenable","nextFrameId","_utilities","reducerKeys","inputState","nextDomainState","lastHref","addHistoryInstrumentationHandler","instrumentHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","skipFirstLines","cleanedLine","localStack","getLastStackFrame","stripSentryFramesAndReverse","defaultFunctionName","getFunctionName","getFramesFromEvent","_toArray","setMessageConfig","newMessage","setCloseFn","_message$instance","typeOpen","_optionalChain","generateUniqueID","legacyBordered","configVariant","componentConfig","ctxVariant","configComponentVariant","getClientSize","validSeverityLevels","severityLevelFromString","MAX_CHANGES_PER_SUBMIT","consoleHandler","genMessageStyle","messageMoveIn","messageMoveOut","noticeStyle","combinedToken","uuid4","msCrypto","getRandomByte","getFirstException","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","addContextToFrame","sourceLine","pre_context","lineIndex","context_line","post_context","checkOrSetAlreadyCaught","__sentry_captured__","arrayify","maybeArray","__webpack_module_cache__","cachedModule","__webpack_modules__","amdD","chunkId","needAttach","charset","nc","onScriptComplete","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","defaultThemeProps","THEME","appReducer"],"sourceRoot":""}